Chapter 1 - Introduction to Web Services
Transcription
Chapter 1 - Introduction to Web Services
Chapter 1 - Introduction to Web Services Objectives After completing this unit, you will be able to: Describe the basic design for Web service interaction. Explain how Web services can be applied to support various business models. Identify the core Web service technology standards. 1.1 A Conceptual Look at Services Sample copy standard interfaces (serial, monolithic/proprietary design Property of Web Age Solutions Inc. parallel, USB) expensive fixed architecture and capabilities competitive pricing technology locked component-based design vendor locked adaptable to technology innovation vendor-neutral A Conceptual Look at Services The evolution that has taken place in the computing industry is analogous to the evolution that service orientation represents for enterprise systems. It is about transitioning from closed, proprietary solutions to open, standards-based solutions. This carries with it a host of benefits with respect to flexibility and cost. Chapter 1 - Introduction to Web Services 1.2 Defining Services The ‘S’ in SOA is embodied as the configurable enterprise assets that comprise the various layers. Abstractly, services can be described as follows: ◊ Performs one or more well-defined functions. ◊ Is loosely coupled and self contained. ◊ Is almost always stateless. Various enterprise elements can function as services: ◊ CICS/IMS mainframe systems ◊ Distributed computing components (CORBA, EJB, DCOM, etc.) ◊ Messaging systems (MSMQ, IBM MQ, etc.) ◊ Packaged applications (ERP, CRM, etc.) ◊ Home-grown applications ◊ Web services (most popular) Sample copy 1.3 Service Communication Analogy Analogy: Calling an automated system to get flight information or the status of a bank transaction. What? Sequence of prompts, keystrokes, and voice responses Inc. Property of Web Age Solutions necessary to achieve the desired goal ◊ ◊ How? Communication mechanism selection (landline, cellular, or VOIP) ◊ Where? Phone number dialed to initiate call Parallel: Sending electronic messages to a remote system in order to achieve a desired goal. ◊ What? Typically an XML-based interface format. ◊ How? Typically XML messages sent via HTTP. ◊ Where? Some network address (IP, Web, etc.). 2 Chapter 1 - Introduction to Web Services 1.4 Three Key Service Questions What? ◊ What capabilities does this service provide? ◊ What requirements does this service have for potential consumers? ◊ What data, if any, will this service return? How? ◊ How should messages be formatted for this service? ◊ How should messages be submitted to this service (i.e. the transport protocol)? Where? ◊ Where is the service located (IP address or endpoint URL)? Sample copy 1.5 Connecting the Dots What? ◊ How? ◊ Service interface Service binding Where? Property of/ endpoint Web Age Solutions Inc. Service address ◊ Interface Service Binding Service Provider Service Consumer 3 Chapter 1 - Introduction to Web Services 1.6 SOA: Runtime Implementation Interface ◊ Describes the generic interface. ◊ Consist of generic operations and messages that describe a service. ◊ Contains no information on how to invoke the service. Binding ◊ Contains information on how to bind a service to a specific implementation. ◊ Binds operations to actual methods. Address/Endpoint ◊ Describes binding of communication information for calling a service. ◊ Binds service name to implementation details. Sample copy SOA: Runtime Implementation At runtime, only the Binding and Service information is used. The Interface, Binding and Service definitions exist as Web Services Definition Language (WSDL) files. WSDL is discussed in the next few slides. 1.7 Web What Is aAge Web Service? Property of Solutions Inc. “Loosely coupled software components that encapsulate discrete functionality and that are accessible over standard Internet protocols.” – The Stencil Group “Web Services are a new breed of Web application. They are selfcontained, self-describing, modular applications that can be published, located, and invoked across the Web.” – IBM’s Tutorial on Web Services 4 Chapter 1 - Introduction to Web Services Any Anyapplication applicationthat thataccepts acceptsXML-formatted XML-formattedrequests requestsfrom fromother other systems systemsacross acrossaanetwork network(Internet (InternetororIntranet) Intranet)via vialightweight, lightweight, vendor-neutral vendor-neutralcommunications communicationsprotocols. protocols. 1.8 Enterprise Assets as Services Typically, a Web service is used as a mechanism to expose functionality made available by another application. As such, a Web service operates as a standards-based façade or wrapper for accessing non-standardized middleware components. Web Server Web Service middleware XML Response Sample copy Listener XML Request Enterprise Asset Enterprise Assets as Services Property of Web Age Solutions Inc. Listener: Intercepts the client request and routes Web service requests to the appropriate service. Web Service: Unmarshalls the XML sent by the client, parses the parameters and method call, and invokes the client request via the underlying middleware. Then the Web service retrieves the result from the middleware layer, encodes it in XML, marshalls the XML document, and sends the response back to the client. Middleware: (This layer is optional.) The middleware layer acts as an intermediary between the Web service and the business service that the client is ultimately interested in accessing. Enterprise Asset: The resource the client is ultimately trying to access. 5 Chapter 1 - Introduction to Web Services 1.9 Typical Development Workflow 1. A service provider will create an interface that captures the data format, operations, and input/output message structure. Service Provider design Interface Interface 2. Next, the business logic for the service is implemented and put into production. Service Provider develop Service Implementation Production Environment deploy Sample copy 3. The production service is then registered in a service registry. Service Provider register Interface Interface Service Registry Typical Development Workflow This development workflow represents a top-down approach to service development (WSDL is created first). A bottom-up approach (existing system is exposed as a service) is also possible. Property1.10ofTypical Web Age Solutions Inc. Development Workflow A client developer will locate the service in the registry, download the interface file, learn about the service, and then build the client application. 6 Chapter 1 - Introduction to Web Services Client Developer ver disco Interface Interface Interface Interface develop ins pe ct Service Registry Client Application At runtime, the client application invokes the service by sending an appropriately formatted message to the designated endpoint. Client Application XML S S Production Environment Sample copy Typical Development Workflow The URL where the service request should be posted may be supplied to the consumer in one of several ways: • Hard coded in the client • Obtained from the registry • Obtained from within the service interface file Property1.11 of Advantages Web Age Solutions Inc. of Web Services Deliver new IT solutions faster and at a lower cost by focusing code development on core business and using Web services applications for non-core business programming. Protect investment in IT legacy systems by using Web services to wrap legacy software systems for integration with modern IT systems. Integrate business processes with customers and partners at lower cost. Web services makes this integration feasible by allowing businesses to share processes without sharing technology. With lower costs, even small 7 Chapter 1 - Introduction to Web Services business will be able to participate in B2B integration. Enter new markets and widen customer base. Web services listed in registries can be “discovered” and thus are “visible” to the entire Web community. 1.12 Web Service Business Models Web Services make it possible for businesses to externalize automated business processes. ◊ This is a step after Web-enabling business processes. In a more advanced scenario, buyers and sellers can discover each other and connect dynamically to execute transactions. The following business models can be easily implemented using Web services: Sample copy ◊ Business Information ◊ Internal System Integration ◊ Business Process Externalization ◊ Business Aggregation Web Service Business Models Web enabling business processes allowed customers to directly take part in such processes. For example, customers could directly manage their orders without having to fax it or place the order on the phone. The process was still inefficient. The customer may have to place that order first in an internal system. Once the order is approved, she needs to place that order again in the supplier's Web site. Property of Web Age Solutions Inc. If the supplier makes the order taking process available over Web services, the internal application can directly place the order once the order is approved internally. 1.13 Web Service Business Models Following models are presented in a progressive order of complexity. A business can implement simpler models first before considering a more complex one. 1. Business Information: Provide read-only information to consumers. 8 Chapter 1 - Introduction to Web Services Example: Corporate news, financial report, weather forecast. 2. Internal System Integration: A business may have automated sales process, order taking Web site and warehouse management system. But they may not be integrated. Diverse systems within the same business can communicate using Web services. 3. Business Process Externalization: Allow automated systems of partner or customer organizations to communicate with an application. 4. Business Aggregation: Multiple travel agent systems can adhere to the same Web service specification. This allows an automated system to look for the cheapest ticket. 1.14 Example: Internal System Integration Acme Inc. has these automated systems: Sample copy ◊ Sales: Allows sales agents to set prices and discounts for preferred buyer organizations. ◊ Order taking Web site: Allows customers to browse through products and place orders. ◊ Warehouse: Orders placed in the Web site are sent to the warehouse. Each system is sophisticated and mature in its own right. Significant problems remain. When a new product is entered in the Sales system, who enters it in the Property Web Age Solutions Inc. Web site andof the warehouse? ◊ ◊ When the price or description of an item is changed, who updates the Web site? Solution: Have each system offer a service called "AddProduct". When a product is added to the Sales system, it can invoke this service in the Web site and warehouse system. A standardized specification will allow additional systems to participate in the process. The Sales system does not need to contain external system specific business logic. ◊ Similarly, the Web system can offer a service called "UpdateProduct". 9 Chapter 1 - Introduction to Web Services 1.15 Example: Business Process Externalization Acme Inc. is a printing company. Currently, staff from the client organizations need to upload documents via Acme's Web site and place a print order. See things from a client organization's point of view. They are probably receiving orders for a book or course material over their own Web site. Each order requires a staff member to upload documents using Acme's Web site and place an order. ◊ The process is time consuming and error prone. Once in a while, a staff uploads the wrong documents. Acme can externalize the order taking process using a Web service. The order-taking application of the client can invoke this service as soon as a new order is placed. Proper documents are sent over as a part of the service invocation. Sample copy 1.16 Web Services Standards We will now take a brief look at some of the basic standards: ◊ SOAP ◊ WSDL ◊ UDDI WS-I Property of Web Age Solutions Inc. ◊ 1.17 Binding via SOAP The message format most often used for the binding portion of a Web service is SOAP (Simple Object Access Protocol). ◊ A simple, lightweight XML-based data format for exchanging information in a distributed environment. ◊ Messages exchanged in a request and response pattern. ◊ SOAP is managed by the W3C: http://www.w3.org/TR/soap/. SOAP can be used with multiple communication protocols: 10 Chapter 1 - Introduction to Web Services ◊ HTTP, SMTP, FTP, JMS, etc. (HTTP is most common). SOAP is language and platform neutral. XML Client Web Service Binding via SOAP SOAP specifies the XML request and response message format only. It does not describe any network communication protocol. A message constructed in SOAP format can be communicated over any protocol: HTTP, FTP, SMTP or JMS. 1.18 SOAP in Protocol Stack Sample copy SOAP HTTP/JMS/SMTP Data payload format Client server handshake, authentication, encryption TCP/IP protocol Property of Web AgeNetwork Solutions Inc. SOAP in Protocol Stack SOAP covers just the request and response data. We will learn shortly how a SOAP message contains the following key information: 1. The operation that needs to be invoked corresponding to the request. 2. The input or output data for the message. SOAP also covers more advanced issues such as: 1. Encryption of certain pieces of request or response data. Note: This is different from HTTPS, which encrypts the entire request/response data. 11 Chapter 1 - Introduction to Web Services 2. User identity and credentials (password). 1.19 SOAP Structure A SOAP message consists of three parts: 1. An envelope that contains a message and specifies processing instructions. 2. An optional header section for transmitting auxiliary information such as client preferences, security, or transaction semantics. 3. A mandatory body section that carries the message payload. The SOAP specification also defines the following: ◊ A set of encoding rules for expressing instances of application-defined data types. ◊ A convention for representing remote procedure calls and responses. Sample copy 1.20 SOAP Message Architecture Protocol Headers The complete SOAP Message Standard Protocol (HTTP, SMTP, etc.) SOAP Envelope <Envelope> encloses payload SOAP Message Property of Web Age Solutions Inc. <Header> encloses headers SOAP Header Headers SOAP Body Message Name & Data Individual headers <Body> contains SOAP Message Name & Data XML Encoded SOAP Message Name & Data 12 Chapter 1 - Introduction to Web Services SOAP Message Architecture There are three components to the SOAP spec: 1. The SOAP envelope. 2. A set of encoding rules. 3. A means of interaction between request and response. Think about a SOAP message as an actual letter: 1. The document is enclosed in an envelope. 2. The envelope is transmitted via mail system (the transport). 3. The HTTP header data acts as the address which provides routing information so that the message is delivered to the appropriate server resource. 4. The “last mile service” is provided by the XML encoding. Sample copy 1.21 Applying SOAP SOAP is an XML-based document that contains a message payload to be exchanged between parties. Although there are various alternatives (REST, XML-RPC, JSON, etc.), SOAP has emerged as the de facto standard for Web service exchanges. ◊ More ‘enterprise grade’ extensions and capabilities (security, transactions, reliable delivery, etc.). ◊ Strong vendor tool support. Property of Web Age Solutions Inc. Extensive literature on the subject, including best practice guidelines. ◊ 1.22 Interface via WSDL The message format most often used for the binding portion of a Web service is WSDL (Web Services Description Language) ◊ An XML-based language the defines a service interface. ◊ Describes how to locate and invoke a service. ◊ Managed by the W3C: http://www.w3.org/TR/wsdl. The WSDL document specifies the location of the service and the 13 Chapter 1 - Introduction to Web Services operations (or methods) the service exposes. ◊ For every operation, the input/output message format is also specified. WSDL is essentially the IDL of Web services. ◊ Makes a neutral declaration of one or more services. ◊ Describes how a client can interact with those services. Interface via WSDL Here, “location” means information about how a consumer can invoke the service. For example, for an implementation of a service that can be invoked by posting a SOAP message, the consumer needs to know the URL. 1.23 WSDL Structure Sample copy A WSDL file has two major sections: 1. An abstract description of operations and their input/output data. 2. A concrete definition of how to bind to the service on a given port. An abstract description contains programming language and protocolneutral description of operation names and message formats. Information about a concrete implementation includes enough detail for a consumer to actually invoke the service. Property of Web Age Solutions Inc. WSDL Structure A WSDL file can contain a purely abstract service description. A specific service implementation can provide its own WSDL that imports the abstract WSDL and supplies concrete details. 1.24 Applying WSDL WSDL is an XML-based document that describes the service being provided. ◊ The provider records this document with the registry. ◊ It provides information on what the service is about, where it resides, and how it can be invoked. 14 Chapter 1 - Introduction to Web Services ◊ It is extensible, allowing for services other than SOAP to be declared. In a Web services exchange, the WSDL serves as a contract between client and service. ◊ Changes made to the service implementation do not have to impact the client and vice-versa. Applying WSDL In the WSDL document, the following information is defined: • What are services? • What are the ports (network endpoints/address) in each service? • What is the protocol binding for each port? • What is the portType (operation/method) in each binding? • What is the operation type (one way, request-response, solicit-response, or notification)? • What are the messages (parameters) for the operation? • What is the data type of the parameter? Sample copy 1.25 Locating a Service How do you currently find businesses and/or services on the Web? ◊ Type in the address (URL) directly. Use a search engine. Property of Web Age Solutions Inc. Web Services work the same way. ◊ ◊ Type in the address (URL) directly. ◊ Query a registry (a search engine for services). 1.26 UDDI Overview UDDI (Universal Discovery Description Integration) is a specification for publishing and discovering service information. ◊ It represents a search engine for online businesses and services that are registered with the registry. 15 Chapter 1 - Introduction to Web Services The goal of the UDDI project is to accelerate the interoperability and adoption of Web Services through standards-based specifications for service description and discovery. ◊ Service providers publish the service description and the Service Requestors search for the required services and obtain binding information to connect to the actual service. ◊ UDDI is based on XML and SOAP. For the most part, public registries have died in favor of private registries within intranets and B2B extranets. ◊ Xmethods.com is one of the few remaining UDDI registries. 1.27 UDDI Terminology Sample copy UDDI terminology involves two main terms: 1. Business ◊ General term referring to an organization or operating concern. ◊ Defined in the UDDI registry. ◊ The business information is primarily used to answer “who, what, where, and how”. 2. Service ◊ Service refer to Web services. Property of Web Age Solutions Inc. Businesses act as a container for services. ◊ ◊ A business is first registered in the registry and the various services are then listed under that particular business. UDDI Terminology “Who” and “what” refer to general information about the products and services. “Where” involves registering information about the URL or email address (or other address) through which each type of service is accessed. “How” refers to registering references to information about interfaces and other properties of a given service. 16 Chapter 1 - Introduction to Web Services 1.28 UDDI Structure UDDI is often compared to a phone book that stores various classifications of information. ◊ White Pages • ◊ Yellow Pages • ◊ Allows searches for businesses by name or some other unique identifier such as a DUNS, Thomas Register, or other ID. UDDI also supports the categorization of businesses by industry, product/service offering, and location. Green Pages • Supports the registration and searching of businesses by the service types and capabilities they provide. Sample copy 1.29 Applying UDDI SOAP processor SOAP request Client application SOAP response Web server UDDI registry service Property of Web Age Solutions Inc. UDDI database UDDI registry node Applying UDDI The service invocation process is simple: 1. The client queries a UDDI registry node. 2. The server returns a list of records matching request. 17 Chapter 1 - Introduction to Web Services 3. The client identifies a specific service of interest. 4. The server provides the client with binding information so the client can invoke service methods. 1.30 WS-I Overview Early work with Web services ran into significant problems with service interoperability. ◊ Differences in SOAP messaging formats. ◊ Differences in data type encoding within SOAP. The Web Services Interoperability (WS-I) organization was created in 2002 by a vendor consortium to address this problem. ◊ Its goal is to promote Web service interoperability across platforms, operating systems, and programming languages. ◊ It delivers practical guidance, best practices, and resources for developing interoperable services solutions in the form of ‘profiles’. Sample copy With so many variables in a service-oriented exchange, risk mitigation through the adoption of WS-I basic profiles becomes essential. WS-I Overview The WS-I Web site can be accessed at http://www.ws-i.org/ Property of 1.31 Web Age Solutions Inc. WS-I Deliverables WS-I’s deliverables provide resources for Web services developers to create interoperable Web services and verify that their results are compliant with WS-I guidelines. They include: ◊ Profiles • ◊ Provide implementation guidelines for how related Web services specifications should be used together for best interoperability. Sample Applications • Demonstrate Web services applications that are compliant with WS-I 18 Chapter 1 - Introduction to Web Services guidelines. ◊ Testing Tools • Test whether the messages exchanged with a Web service conform to WS-I guidelines. WS-I Deliverables Profiles: To date, WS-I has finalized the Basic Profile, Attachments Profile, and Simple SOAP Binding Profile. More information can be found at http://www.ws-i.org/deliverables/. The WS-I Basic Profile is an outline of requirements to which WSDL and Web service protocol (SOAP/HTTP) traffic must comply in order to claim WS-I conformance. 1.32 Summary Sample copy The service aspect of SOA comes in many different forms: ◊ Packaged applications (COTS) ◊ Home-grown solutions ◊ Mainframe systems ◊ Web services Web services represent the most popular approach to service enabling an enterprise. ◊ Web services facilitate various business models: Property of Web Age Solutions Inc. Business Information ◊ ◊ Internal system integration ◊ Business Process Externalization ◊ Business Aggregation Technology standards play a big part in Web services, especially SOAP, WSDL, and UDDI. WS-I is a vendor-neutral organization dedicated to promoting service interoperability. 19