1 / 89

Web Services

Web Services. Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University A couple of additions And many deletions By Jim Fawcett CSE681 – Software Modeling and Analysis Summer 2003. Agenda. Web Services Overview Underlying Technologies

pfields
Télécharger la présentation

Web Services

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 Services Mark SapossnekCS 594 Computer Science Department Metropolitan College Boston University A couple of additions And many deletions By Jim Fawcett CSE681 – Software Modeling and Analysis Summer 2003

  2. Agenda • Web Services Overview • Underlying Technologies • Developing a Web Service • Consuming Web Services • Miscellaneous • .NET My Services

  3. Web Services OverviewBusiness Today • CEO challenges • Revamp customer service • Overhaul supply chain • Speed up the decision process • CIO challenges • Reorient IT architecture • Connect with a limitless number of external constituents • Extend processes to external constituents

  4. Web Services OverviewInternet Business Processes Span Companies

  5. Web Services Overview Technology Fabric Must Span Companies Too

  6. Web Services Overview Drivers • Companies, suppliers, partners, and customers must be able to work together • Faster than ever before • Over the Internet • Or risk “death by isolation” • Leverage Internet cost structure

  7. Web Services Overview Distributed Computing • Client/server model • Doesn‘t scale • Not secure • Distributed object model • Components: packaging and interoperability • Remoting: remote method invocation • COM, CORBA, Java RMI and EJB • Not Internet-friendly • Interoperability issues: poor/non-existent standards • Tightly coupled: still doesn‘t scale

  8. Web Services Overview Distributed Computing • 3-tier Application Architecture • Great way to build scalable Web applications • But such applications are silos • Integration is an afterthought • They can be integrated behind the firewall • Even that can be a problem • They do not provide a way to integrate across the firewall (i.e. over the Internet)

  9. Web Services Overview Portals Ads Mail Other Svcs Calendar Weather Finance News

  10. Web Services OverviewPortal Limitations • No standard way to expose functionality • Integration is expensive and error-prone • Hard to outsource • Not designed to be used outside original scope • The problem? • HTML is designed for presentation to people • Can’t repurpose it in a general, reliable way • Don’t even think about screen scraping

  11. Web Services OverviewWhat Is a Web Service? • The solution? Web Services! • A Web Service exposes functionality to a consumer • Over the Internet or intranet • A programmable URL • Functions you can call over the Internet • Based on Web standards • HTTP, XML, SOAP, WSDL, UDDI, with more to come • Can be implemented in any language on any platform • Black boxes • Component-like, reusable

  12. Web Services OverviewWhat Is a Web Service? • Web Services allow you to interconnect: • Different companies • Many/any devices • Applications • Different clients • Not just browsers • Distribution and integration of application logic • Enable the programmable Web • Not just the purely interactive Web • Web Services are loosely coupled

  13. Web Services OverviewWhat is a Web Service? • New paradigm for Internet development • Deliver applications as services • Richer, customer-driven experience • Continuous delivery of value/bits • Third-generation Internet

  14. HTML, XML HTML, XML HTML HTML Generation 1Static HTML Generation 2Web Applications Generation 3Web Services Web Services OverviewEvolution of the Web

  15. Web Services OverviewApplication Model Partner Web Service Other Web Services Partner Web Service Internet + XML End Users YourCompany.com Application Business Logic Tier Data Access and Storage Tier Other Applications

  16. Web Services OverviewSample Web Services .NET Inbox .NET Alerts .NET Calendar .NET Application Settings .NET Contacts .NET Documents .NET Lists .NET Devices .NET Categories .NET Location .NET FavoriteWebsites .NET Presence .NET Profile .NET Wallet

  17. Web Services OverviewSample Web Services • E-commerce: order books, office supplies, other products • Track packages: UPS, FedEx • Weather • Maps • Telephone redirection, customizable rules and messages

  18. Agenda • Web Services Overview • Underlying Technologies • Developing a Web Service • Consuming Web Services • Miscellaneous • .NET My Services

  19. Underlying TechnologiesXML Is the Glue XML HTML TCP/IP Technology Connecting Applications Connectivity Presentation FTP, E-mail, Gopher Innovation Web Pages Connect the Web Web Services Browse the Web Program the Web

  20. Underlying TechnologiesWeb Services Stack Directory: Publish & Find Services: UDDI Inspection: Find Services on server: DISCO Description: Formal Service Descriptions: WSDL Wire Format: Service Interactions: SOAP Universal Data Format: XML Ubiquitous Communications: Internet Simple, Open, Broad Industry Support

  21. Underlying TechnologiesWeb Services Stack • Discovery • Directory allows potential clients to locate relevant Web Services • UDDI • Inspection allows you to locate documents about Web Services located on at a given URL • DISCO • A Description language defines the format of methods provided by a Web Service • WSDL

  22. Underlying TechnologiesWeb Services Stack UDDI Directory http://www.uddi.org UDDI or other directory service Locate a Service Link to Discovery Document (XML) Inspection http://www.ibuyspy.com/ibuyspy.disco DISCO Request Discovery Document Return Discovery Document (XML) Web Service Client WSDL Description http://www.ibuyspy.com/ibuyspycs/InstantOrder.asmx?wsdl Request Service Description Web Service Return Service Description (XML) SOAP Wire Format Request Service Return Service Response (XML)

  23. Underlying TechnologiesWeb Service Wire Format • The Web Service Wire Format specifies how specific messages are exchanged • HTTP-GET • HTTP-POST • SOAP • HTTP-GET and HTTP-POST use a minimal HTTP interface to invoke Web Services • Limited support for data types • SOAP provides a robust HTTP/XML interface • Extensive support for data types

  24. XML OverviewXML Schemas • XML schemas describe the structure of an XML document • XML schemas describe the tag and attribute specifications • Simple and compound data types • XML schemas also describe constraints on the contained text • XML schemas and the DTD are mutually exclusive

  25. SOAP Overview • A lightweight protocol for exchanging information in a distributed, heterogeneous environment • It enables cross-platform interoperability • Interoperable • OS, object model, programming language neutral • Hardware independent • Protocol independent • Works over existing Internet infrastructure

  26. SOAP Overview • Guiding principle: “Invent no new technology” • Builds on key Internet standards • SOAP ≈ HTTP + XML • Submitted to W3C • The SOAP specification defines: • The SOAP message format • How to send messages • How to receive responses • Data encoding

  27. SOAP SOAP Is Not… • Objects-by-reference • Distributed garbage collection • Bi-directional HTTP • Activation • Complicated • Doesn’t try to solve every problem in distributed computing • Can be easily implemented

  28. SOAPThe HTTP Aspect • SOAP requests are HTTP POST requests POST /WebCalculator/Calculator.asmx HTTP/1.1 Content-Type: text/xml SOAPAction: “http://tempuri.org/Add” Content-Length: 386 <?xml version=“1.0”?> <soap:Envelope ...> ... </soap:Envelope>

  29. SOAPMessage Structure The complete SOAP message SOAP Message Protocol binding headers Headers <Envelope> encloses payload SOAP Envelope <Header> encloses headers SOAP Header Individual headers Headers <Body> contains SOAP message name SOAP Body Message Name & Data XML-encoded SOAP message name & data

  30. SOAPSOAP Message Format • An XML document using the SOAP schema: <?xml version=“1.0”?> <soap:Envelope ...> <soap:Header ...> ... </soap:Header> <soap:Body> <Add xmlns=“http://tempuri.org/”> <n1>12</n1> <n2>10</n2> </Add> </soap:Body> </soap:Envelope>

  31. SOAPServer Responses • Server replies with a “result” message: HTTP/1.1 200 OK ... Content-Type:text/xml Content-Length: 391 <?xml version=“1.0”?> <soap:Envelope ...> <soap:Body> <AddResult xmlns=“http://tempuri.org/”> <result>28.6</result> </AddResult> </soap:Body> </soap:Envelope>

  32. SOAPEncoding Complex Data • Data structures are serialized as XML: <soap:Envelope ...> <soap:Body> <GetStockDataResult xmlns=“http://tempuri.org/”> <result> <Description>Plastic Novelties Ltd</Description> <Price>129</Price> <Ticker>PLAS</Ticker> </result> </GetStockDataRseult> </soap:Body> </soap:Envelope>

  33. SOAPSecurity and Features • Builds on HTTP Security • HTTPS • X.509 certificates • Developers / IT choose which methods to expose explicitly • Does not pass application code • Firewall-friendly • Type safe

  34. DevelopMentor Inc. Digital Creations IONA Technologies PLC Jetform ObjectSpace Inc. Rockwell Software Inc. SAP Compaq Microsoft Rogue Wave Software Inc. Scriptics Corp. Secret Labs AB UserLand Software Inc. Zveno Pty. Ltd. IBM Hewlett Packard Intel SOAPIndustry Support

  35. SOAPExample of a SOAP Request POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI“ <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV: encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  36. SOAPExample of a SOAP Response HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV= "http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV: encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  37. SOAPExample of a SOAP Error HTTP/1.1 500 Internal Server Error Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode> SOAP-ENV: MustUnderstand </faultcode> <faultstring>SOAP Must Understand Error </faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  38. WSDLWeb Services Description Language • XML schema for describing Web Services • Service interface definition • Abstract semantics for Web Service • Service implementation definition • Concrete end points and network addresses where Web Service can be invoked • Clear delineation between abstract and concrete messages

  39. WSDLWSDL Schema Interface Implementation <definitions> <definitions> <import> <import> <types> <service> <message> <port> <portType> <binding>

  40. WSDLWSDL Schema • <definitions> are root node of WSDL • <import> allows other entities for inclusion • <types> are data definitions - xsd • <message> defines parameters of a Web Service function • <portType> defines input and output operations • <binding> specifies how each message is sent over the wire Interface <definitions> <import> <types> <message> <portType> <binding>

  41. WSDLWSDL Schema Implementation • <service> specifies details about the implementation • <port> contains the address itself <definitions> <import> <service> <port>

  42. InspectionDISCO • Inspection lets you find Web Services on a given site • A Web site publishes DISCO documents, which returns the URLs of WSDL descriptions • DISCO documents can contain references to other sites and DISCO documents • Dynamic discovery enables trees of directories to be searched

  43. UDDIOverview • UDDI = Universal Description, Discovery, and Integration • Industry Initiative to address discovery • A registration database for Web Services • Specifications • Schema for service providers and descriptions • API for publishing and searching • Developed on industry standards (XML, HTTP, TCP/IP, SOAP) • Applies to both XML and non-XML services • Implementation • Public and private instances of specification

  44. UDDIThe Vision Advanced Discovery via Portals and Marketplaces Marketplace UDDI Registries and Protocol Marketplace Marketplace Search Portal Search Portal Business Users Technical Users

  45. UDDIUDDI Information Model Provider: Information about the entity who offers a service tModel: Descriptions of specifications for services. 1…n Service: Descriptive information about a particular family of technical offerings 0…n Bindings contain references to tModels. These references designate the interface specifications for a service. Binding: Technical information about a service entry point and construction specs 0…n

  46. UDDIUDDI Schema Interface Implementation <businessEntity> <businessService> <tModel> <bindingTemplate> <businessService> <tModel> <bindingTemplate>

  47. UDDIHow UDDI Works: tModel • tModel = Technology Model • Generic meta-data structure to uniquely represent any concept or construct • Also includes interface protocol definitions • Powerful abstraction modeling system • Examples: WSDL files, XML schema, namespaces, categorization schemes

  48. UDDI<tModel> • <tModel> represents meta-data and interfaces <tModel xmlns="urn:uddi-org:api" tModelKey="UUID:AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"> <name>microsoft-com:creditcheck</name> <description xml:lang="en">Check credit limits</description> <overviewDoc> <overviewURL>http://schema.com/creditcheck.wsdl </overviewURL> </overviewDoc> <categoryBag> <keyedReference tModelKey="UUID:CD153257-086A-4237-B336-6BDCBDCC6634" keyName="Consumer credit gathering or reporting services" keyValue="84.14.16.01.00"/> <keyedReference tModelKey="UUID:C1ACF26D-9672-4404-9D70-39B756E62AB4" keyName="types" keyValue="wsdlSpec"/> </categoryBag> </tModel>

  49. UDDIProviders, Services And Bindings • Providers • Examples: Accounting Department, Corporate Application Server • Name, Description, Contact Information • Categorization and Identification Information • Services • Examples: Purchase Order services, Payroll services • Name, Description(s) • Categorization Information • Bindings • Description(s), access points, parameters • Examples: Access Point (http://...) for Web Service

  50. UDDI<bindingTemplate> • <bindingTemplate> represents data and implementation details <bindingTemplate serviceKey="33c3d124-e967-4ab1-8f51-d93d95fac91a" bindingKey="48f2bc6b-a6de-4be8-9f2b-2342aeafaaac"> <accessPoint URLType="http"> http://localhost/HelloWorld/Service1.asmx </accessPoint> <tModelInstanceDetails> <tModelInstanceInfo tModelKey="uuid:64c756d1-3374-4e00-ae83-ee12e38fae63“/> </tModelInstanceDetails> </bindingTemplate>

More Related