![Page 1: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/1.jpg)
13 July 2004 Caltech
Building stateful web services
SC4DEVO’1
Matthew J. GrahamCACR, Caltech
(What I have learnt)
![Page 2: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/2.jpg)
13 July 2004 Caltech
Concept: VOStatistics
•“a prototype knowledge-based statistical toolkit implemented within the VO paradigm for the entire astronomical community.”
•easily extensible (legacy code)•distributed•open source client GUI (interactive)•http://www.vostat.org
![Page 3: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/3.jpg)
13 July 2004 Caltech
Considering state
• What is state?
• Do we really need it?
• Isn’t it just about server-side code?
• How hard is it to do?
![Page 4: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/4.jpg)
13 July 2004 Caltech
• Operation• Data• Result• Lifetime • History
Basic model
Webservice
Client
Factory
Session
![Page 5: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/5.jpg)
13 July 2004 Caltech
Toolkits
• Java (http://www.javaskyline.com/webservices):– Apache and Axis (http://www.apache.org)– Globus (http://www.globus.org)
• C#:– .Net; Mono (http://www.go-mono.com)– OGSI.NET / WSRF.NET
(http://www.cs.virginia.edu/~gsw2c/wsrf.net.html)• Perl:
– SOAP::Lite (http://www.soaplite.com)– OGSI::Lite / WSRF::Lite
(http://www.sve.man.ac.uk/Research/AtoZ/ILCT)• Python:
– SOAPpy / ZSI (http://pywebsvcs.sourceforge.net)– PyGlobus
![Page 6: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/6.jpg)
13 July 2004 Caltech
MMPWS
• “Stateless”– public double getAnswer(double x, double
exp)
• “Stateful”– public void setValue(double x)– public double getAnswer(double exp) – public void setPower(double exp)– public double getAnswer()
![Page 7: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/7.jpg)
13 July 2004 Caltech
Clients
• Java (using WSDL2Java):MMPWSLocator mmpwsl = new MMPWSLocator();mmpwsl.setValue(3.14);System.out.println(mmpwsl.getAnswer(0.5));
• Perl (using SOAP::Lite):my $mmpws = SOAP::Lite ->
service(“http://…/blah.wsdl”);$mmpws->setValue(3.14);$print $mmpws->getAnswer(0.5);
• Python (using SOAPpy):server = SOAPProxy(“http://…/blah.wsdl”)server.setValue(3.14)print server.getAnswer(0.5)
![Page 8: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/8.jpg)
13 July 2004 Caltech
Discussion points
• Invocation– Syntax / Discovery
• Data– Virtual
• Workflow– Data / Dynamic management
• Asynchronous activity– Mechanism
• Security– Mechanism
![Page 9: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/9.jpg)
13 July 2004 Caltech
Invocation
• <Invocation> <Method> <Data> <Location> <Format> <Subset> <Row> / <Column> / <Plane> <VOTable> / <FITS> <Argument> <Key> … <Value> <Qualifier>
• getInvocationDescription(…)
![Page 10: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/10.jpg)
13 July 2004 Caltech
Data
• Location• Virtual
– Description– Instantiation: When? How? Managed? -
“grazing”– Persistence
• Workflow– Data client location:
WM
D S S
![Page 11: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)](https://reader035.vdocuments.site/reader035/viewer/2022071805/56649ccf5503460f9499a87d/html5/thumbnails/11.jpg)
13 July 2004 Caltech
Workflow
• Dynamic management
WM
D S1 S2
D S1 S2
Load balancer