1 / 37

Web Services A new trend or a new hype?

Web Services A new trend or a new hype?. Martin Senger senger@ebi.ac.uk. Oxford Dictionary trend a general direction in which something is developing hype extravagant or intensive publicity. Abstract.

kitty
Télécharger la présentation

Web Services A new trend or a new hype?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Web ServicesA new trend or a new hype? Martin Senger senger@ebi.ac.uk Oxford Dictionary • trenda general direction in which something is developing • hypeextravagant or intensive publicity

  2. Abstract • Web Services is a technology applicable for computationally distributed problems, including access to large databases • What other technologies were/are available and how they compare with Web Services? • What problems can be found during the technology transition process? • Examples of Web Services deployed at EMBL-EBI • The main buzzwords: • Integration & Standardization & Technology transition

  3. Google (September 2002) • 2,280,000 documents about “Web Services” • 5,050 documents about “Web Services and bioinformatics” • 1,430,000 documents about “corba” • 21,300 documents about “corba and bioinformatics” • It’s noisy, polluted, un-scientific measurement • but still you get feeling that something is happening

  4. My OiBC reminiscence • OiBC 2001 • If you do not use XML, or at least if you do not claim that you use XML, you are in danger to be considered a dinosaurs • OiBC 2002 • If you do not use Web Service, or at least if you do not plan to use Web Services, you are in danger to be considered a brontosaurus • OiBC 2003 • If you do not use Grid Services, you… (let’s wait…)

  5. What are Web Services …at least what they may be

  6. Web services • A collection of XML-based technologies developed by the e-business community to address issues of: • service discovery • interoperable data exchange and/or application invocation • service compositions (workflow, business processes) • Major developers include: • Apache, IBM, HP, SUN & Microsoft (.NET) • http://www.webservices.org/

  7. W3C (working group) definition • "A Web service is a software application identified by a URI, whose interfaces and bindings are capable of being defined, described and discovered as XML artefacts. A Web service supports direct interactions with other software agents using XML based messages exchanged via internet-based protocols." • http://www.w3c.org/TR/2002/WD-wsa-reqs-20020819

  8. Dion Almaer, in an article for O'Reilly, May 2002: • Web services have been a buzzword for a while. A friend used to say: • "Web services are like high school sex. Everyone is talking about doing it, but hardly anyone is, and those that are, probably aren't doing it well.“ • These days, though, Web services are moving to college, so to speak, and lots of people are starting to "do it" more often and better than before. Tools are maturing, and creating and working with Web services isn't all that hard anymore.

  9. Web Services Architecture Let a program “click on a web page”

  10. Web Services Stack

  11. XML Messaging Using SOAP

  12. What else do we have …or did we have

  13. Traditional CGI-based approach Waiting for requests (known location, known port) Sending requests, getting results Data as name/value pairs • cgi-bin scripts: • Data transmitted as name-value pairs (HTML forms) • Transport over (state-less) HTTP protocol • no standards for keeping user sessions (state-fullness) • server side: a script is called

  14. CORBA-based approach Waiting for requests (known location, known port) Sending requests, getting results Data in binary format • CORBA: • Data transmitted as objects (at least it looks like that) • Transport (usually) over well standardised IIOP protocol • user sessions (state-fullness) very inter-operable • server side: an RPC call is made

  15. SOAP-based communication Waiting for requests (known location, known port) Sending requests, getting results Data in XML format • SOAP: • Data in a well-defined XML format • Transport over various protocols • HTTP, SMTP are the most used, perhaps because they are firewall-friendly • server side: either an RPC call or a message delivered

  16. SOAP • Simple Object Access Protocol • http://www.w3c.org/TR/SOAP/ • A lightweight protocol for exchange of information in a decentralised, distributed environment • Two different styles to use: • to encapsulate RPC calls using the extensibility and flexibility of XML • …or to deliver a whole document without any method calls encapsulated

  17. Request:getHelloMessage Request:setHelloMessage

  18. WSDL • Web Services Definition Language • http://www.w3.org/TR/wsdl/ • An XML-based language for describing Web Services • what the service does (description) • how to use it (method signatures) • where to find the service • It does not depend on the underlying protocol • But: It is not much human-readable

  19. Hello.wsdl <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://localhost:8080/axis/services/Hello" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:impl="http://localhost:8080/axis/services/Hello-impl" xmlns:intf="http://localhost:8080/axis/services/Hello" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:message name="setHelloMessageRequest"> <wsdl:part name="in0" type="xsd:string"/> </wsdl:message> <wsdl:message name="getHelloMessageResponse"> <wsdl:part name="return" type="xsd:string"/> </wsdl:message> <wsdl:message name="setHelloMessageResponse"> </wsdl:message> <wsdl:message name="getHelloMessageRequest"> </wsdl:message> <wsdl:portType name="HelloWorldService"> <wsdl:operation name="getHelloMessage"> <wsdl:input message="intf:getHelloMessageRequest"/> <wsdl:output message="intf:getHelloMessageResponse"/> </wsdl:operation> <wsdl:operation name="setHelloMessage" parameterOrder="in0"> <wsdl:input message="intf:setHelloMessageRequest"/> <wsdl:output message="intf:setHelloMessageResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="HelloSoapBinding" type="intf:HelloWorldService"> <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="getHelloMessage"> <wsdlsoap:operation soapAction=""/> <wsdl:input> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="getHelloMessage" use="encoded"/> </wsdl:input> <wsdl:output> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/services/Hello" use="encoded"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="setHelloMessage"> <wsdlsoap:operation soapAction=""/> <wsdl:input> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="setHelloMessage" use="encoded"/> </wsdl:input> <wsdl:output> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/services/Hello" use="encoded"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="HelloWorldServiceService"> <wsdl:port binding="intf:HelloSoapBinding" name="Hello"> <wsdlsoap:address location="http://localhost:8080/axis/services/Hello"/> </wsdl:port> </wsdl:service> </wsdl:definitions>

  20. UDDI (and alternatives) • Universal Description, Discovery and Integration • http://www.uddi.org • UDDI creates a platform-independent, open framework & registry for: • Describing services • Discovering businesses • Integrating business services • The UDDI may be less used than predicted, especially on the Internet level • BioMoby - an alternative for Life Sciences domain?

  21. BioMobyhttp://biomoby.org

  22. WSFL (a story about integration) • Web Services Flow Language • http://www.ibm.com/software/solutions/webservices/pdf/WSFL.pdf • An XML-based language for the description of Web Services compositions (workflow) • Coming successor - BPEL4WS • http://www.ibm.com/developerworks/webservices/library/ws-bpel/ • Workflows in bioinformatics: • W3H (DKFZ Heidelberg, Germany) • myGrid project (UK Universities, etc.) • … many many more streams of work going on

  23. Why to use Web Services …and how they compare with CORBA

  24. 1. What is similar • The programming effort and maintainability is roughly the same both for Web Services and CORBA • For CORBA I need an ORB • …but do you know anybody doing WS without a SOAP toolkit? • For CORBA I need an IDL compiler • …not always (ask Perl folks) • …for WS you use frequently stubs generated from WSDL • …similar answers for valuetype/custom encoding, etc.

  25. 2. What is (IMHO) better • WS are easier to deploy because of their firewall-friendliness • WS are quite well marketed (both from IT companies and Open Source projects) • Integration of WS into workflows seems to be very dynamic and very real topic • comparing with CORBA Components

  26. 3. What is (IMHO) worse • Peer-to-peer access is problematic • notification by “server-push” is harder to achieve • User sessions (server’s state-fullness) are less standardised • …and therefore less inter-operable • Many parts yet-to-be-done (notification, transactions, security, etc.)

  27. So what? • Don't throw the baby out with the bathwater • combine the existing projects with a new Web Services layer; in most cases it is not so difficult • Apply existing standards to new Web Services projects • think MDA – it may help, even without the whole OMG adoption process

  28. Web Services @ EMBL-EBI …use cases, use cases, use cases

  29. Roots, reasons... • EBI has a long history of distributed computing • Web Services are “in demand” • An access both to data resources and to the analyses • Compositions are important • covering semantically rich space of the EBI activities • allowing seamless access to the “third-party” services

  30. access to the EMBL Nucleotide Sequence database support for different XML formats (BSML…) coupled with a cgi-bin-based traditional access the first Web Service run at EBI (J.J.M. Riethoven) XEMBLhttp://www.ebi.ac.uk/xembl

  31. access to MEDLINE based on an approved standard (OMG) for accessing bibliographic data explores session management allowing step-by-step query refinement also part of the bioperl OpenBQShttp://industry.ebi.ac.uk/openBQS

  32. “side-by-side” design

  33. access to analysis tools based on an approved standard for accessing remote applications access to EMBOSS programs, to NCBI-Blast and WU-Blast services an example of technology collaboration (CORBA - Web Services) – “sandwich” Soaplab (Analysis Web Service)http://industry.ebi.ac.uk/soaplab

  34. access to all resources already available via SRS both explicit method calls and an access to the full SRS query language author: Alan Robinson SRS Wrapper http://www.ebi.ac.uk/collab/mygrid/service0/axis/public-api

  35. And more is coming... • more Blast wrappers • another service accessing to the EMBL nucleotide database • access to the gene ontology terms (together with their visualisation) • access to the macromolecular structure database • ...

  36. Conclusions…

  37. Distributed computing is inevitable • More accesses by programs than by clicking on hyperlinks • More technologies of distributed architecture will collaborate • The better standards we have the better results we’ll get • Web Services is not a new hype but a trend to follow • EBI is involved in the e-Science from the beginning and has no intentions to leave it

More Related