13 july 2004 caltech building stateful web services sc4devo’1 matthew j. graham cacr, caltech...

11
13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)

Upload: jonathan-townsend

Post on 16-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 13 July 2004 Caltech Building stateful web services SC4DEVO’1 Matthew J. Graham CACR, Caltech (What I have learnt)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

13 July 2004 Caltech

Workflow

• Dynamic management

WM

D S1 S2

D S1 S2

Load balancer