You are on page 1of 17

Introduction to Web Services

What is a Web Services? The promise of web services is to enable a distributed environment in which any number ofapplications, or application components, can interoperate seamlessly among and betweenorganizations in a platformneutral, language-neutral fashion. This interoperation bringsheterogeneity to the world of distributed computing once and for all. A web service is a piece of business logic, located somewhere on the Internet, that isaccessible through stan dard-based Internet protocols such as HTTP or SMTP. Using a webservice could be as simple as logging into a site or as complex as f acilitating a multi-organization business negotiation. Given this definition, several technologies used in recent years could have been classified asweb service technology, but were not. These technologies include win32 technologies, J2EE,CORBA, and CGI scripting. The major difference between these technologies and the newbreed of technology that are labeled as web services is their standardization. This new breedof technology is based on standardized XML (as opposed to a proprietary binary standard)and supported globally by most major technology firms. XML provides a language -neutralway for representing data, and the global cor porate support ensures that every major newsoftware technology will have a web services strategy within the next couple years. Whencombined, the software integration and interoperability possibilities for software programsleveraging the web services model are staggering. A web service has special behavioral characteristics: 

XML-based By using XML as the data representation layer for all web services protocols andtechnologies that are created, these technologies can be interoperable at their corelevel . As a data transport, XML eliminates any networking, operating system, orplatform binding that a protocol has.  Loosely coupled A consumer of a web service is not tied to that web service directly; the web serviceinterface can change over time without compromising the client's ability to interactwith the service. A tightly coupled system implies that the client and server logic areclosely tied to one another, implying that if one interface changes, the other must alsobe updated. Adopting a loosely coupled architecture tends to make software systemsmore manageable and allows simpler integration between different systems.  Coarse-grained Object-oriented technologies such as Java expose their services through individualmethods . An individual method is too fine an operation to provide any usefulcapability at a corporate level. Building a Java program from scratch requires thecreation of several

Bothtechnologies are distributed and accessible through a variety of RPC mechanisms. such as whenrepresenting a current address.NET component. Web services su pport the transparent exchange of documents to facilitatebusiness integration. In fact. The Major Web Services Technologies Several technologies have been introduced under the web service rubric and many more willbe introduced in coming years. Component development throughEnterprise JavaBeans (EJBs) and .but also complex documents. theweb service vision of seamless worldwide business integration is not be feasib le unless thecore technologies are supported by every major software company in the world. the client blocks and waits for the service to complete itsoperation before continuing. or they can be complex. and FTP. It alsodefines encoding and binding standards for encoding non-XML RPC invocations inXML for transport. while synchronous clients receive their result when the service hascompleted. three primary technologies have emerged as worldwide standardsthat make up the core of today's web services technology. Web services technologyprovides a natural way of defining coarse-grained services that access the right amountof business logic. or by translating incoming invocations into an invocation of anEJB or a .  Ability to be synchronous or asynchronous Synchronicity refers to the binding of the client to the execution of the service. Asynchronous clients retrieve their result at alater point in time. including SMTP. Businesses and theinterfaces that they expose should be coarse grained. SOAP provides a . Insynchronous invocations.  Supports document exchange One of the key advantages of XML is its generic way of representing not only data. Aweb service supports RPC by providing services of its own. functions. Asynchronous operations al low a client to invoke aservice and then execute other functions. These technologies are:  Simple Object Access Protocol (SOAP) SOAP provides a standard packaging structure for transporting XML documents overa variety of standard Internet technologies. HTTP. Over the past two years. the web service paradigm has grown so quickly thatseveral competing technologies are attempting to provide the same capability. and methods on remoteobjects using an XML -based protocol. Remote procedures expose input and outputparameters that a web ser vice must support.  Supports Remote Procedure Calls (RPCs) Web services allow clients to invoke procedures. These documents can be simple.fine-grained methods that are then composed into a coarse grainedservice that is cons umed by either a client or another service. Asynchronous capability is a key factor in enabling loosely coupledsystems. equivalent to those of atraditional component.NET Components has increasingly become a part ofarchitectures and enterprise deployments over the past couple of years. representing an entire book orRFQ. However.

Each provides a standard forthe next step in the advancement of web services.).  Universal Description. access. andintegration purposes.  Web Service Description Language (WSDL) WSDL is an XML technology that describes the interface of a web service in astandardized w ay. In the past.and web service access points. and Integration (UDDI) UDDI provides a worldwide registry of web services for advertisement. one of the big promise s of web services is seamless. identifiers. Discovery. . The WSDL document contains information about how tocontact the web serv ice and the format of request messages in XML schema. integrate. web services. the nature ofthe invocation (in only. business relationships. The client queriesa UDDI registry fo r the service either by name.NET clients can invoke EJBs exposedthrough SOAP. discovery.NET Components exposed throughSOAP. in/out. Once located. Figure provide a diagram that demonstrates the relationship between these threetechnologies. category. etc. and Java clients can invoke . identifier. . WSDL. WSDL allowsdisparate clients t o automatically understand how to interact with a web service. heterogeneous clients andservers can suddenly become interoperable. WSDL. categories. the client obtains information about the location of a WSDLdocument from the UDDI registry. WSDL. thesetechnologies are revolutionary because they are the first standard technologies to offer thepromise of a dynamic business. and UDDI) can be described asfollows: an application acting in the role of a web services client needs to locate anotherapplication or a piece of business logic located somewhere on the network.standard infrastructure for enabling the dynamic business of tomorrow. or their discovery. technologies provided features equivalent toSOAP. or thespecifications implemented by the web service. The relationship between t hese pieces (SOAP. any one of these technologies is only evolutionary. or specificationsupported. Individually.simple structure for doing RPC: documentexchange. their description. By having a standard transport mechanism. and UDDI in other languages. specification metadata. The clientcreates a SOAP message in accordance with the XML schema found in the WSDL and sendsa request to the host (where the service is). but they weren't supported by every majorcorporation and did not have a core language as flexible as XML.However. UDDI provides a structure forrepresenting businesses. and invoke new services from unknowncompanies dynamically without the need for human intervention. Business analysts and technologists use UDDI to discoveravailable web services by searching for names. WSDL standardizes how a web service represents the input andoutput parameters of an invocation externally. and the service's protocol binding. and UDDI to provide a dynamic. Combined. automatic business integration:a piece of software will discover. Dynamic integration of thisnature require s the combined involvement of SOAP. the function's structure.

com are dedicated to hosting simple webservices. web sites such as www. such as those used by the travel industry. until now. discrete web services such as a currency conversion servicethat converts dollars to Euros or a natural language translation service that converts English toFrench . When bookingthrough traditional travel agent networks. It's difficult to integrate thebackend systems of each business to provide the advertised portal services reliably andquickly. Today.Application HTTP Request SOAP CLIENT HTTP Response SOAP PROCESSOR Discrete Business Logic UDDI Registry Service Practical Applications for Web Services Because of the cross-platform interoperability promised by SOAP and web services.xmethods.'s site. The net result (no pun intended) is that a person booking a flight on SouthwestAirline's web site can reserve a car from Dollar without leaving the airline's site.00. Dollar uses the Microsoft SOAP Toolkit tointegrate its online booking system with Southwest Airlines Co. the cost per transaction is about $1. Web -based portals. and Southwest's site runs on a Compaq OpenVMSserver. oftencombine the offerings of multiple companies' products and services and present them with aunified look and feel to the consumer accessing the portal. The resultingsavings for Dollar are a lower cost per transaction. Inc. Let's use the concept of a Busin ess-to-Consumer (B2C) portal. Web services technology is already being used in the integration between Dollar Rent A CarSystems . and Southwest Airlines Co. have only been a dream of distributed-computing proponents. . If the booking is done online throughSouthwest and other airline sites. This scenario becomes more exciting when we see real companies using web services toautomate and streamline their business processes. It's easy to see the use for simple.00 per transaction. we canprovide practical business solutions to problems that. this cost can be up to $5. Dollar's bookingsystem runs on a Sun Solaris server.

enabling customers to access applications remotely via the Web. Though many Unix applications already work using the SaaS model. With a well -designed implementation and properly priced licenses. Now it has become commonplace for many business tasks. financials. and management characteristics. human resource management . multi-tenant architecture) than to a one -to-one model. The equipped program has no intrinsic value loaded on a computer that is turne d off for the night. Advantages:        Pay per use Anytime." is software that is deployed over the internet and/or is deployed to run behind a firewall on a local area network or personal computer. anywhere accessibility Pay as you go Instant scalability Security Reliability APIs SaaS was initially widely deployed for sales force automation and Customer Relationship Management (CRM). while the work license is inoperative. Activities managed from central locations rather than at each customer's site.Software as a service Software as a service sometimes referred to as "software on demand. for example. or (increasingly) at no charge. ERP software. in a "pay -as-yougo" model. and service desk management. including accounting software. With SaaS. EULA applications did not have this flexibility before SaaS. A licensed copy of a word processor. collaboration. Software and business professionals generally associate the term SaaS with business software. Application delivery typically closer to a one-to-many model (single instance. through a subscription. and as a possibly lower -cost way for businesses to use software as needed rather than license every application on every device. . The same employee would need another fully paid license to write or edit a report at home on their own computer. commercially available software. had to reside on each machine in order to create a document on that machine. computerized billing. invoicing. This approach to application delivery is part of the utility computing model where all of the technology is in the "cloud" ac cessed over the Internet as a service. on -demand SaaS provides license benefits without the associated complexity and the potential high cost to equip devices with applications they may not need. partnering. content management. including architecture. a provider licenses an application to customers either as a service on demand. and management of. document management. Key characteristics: y y y Network-based access to. pricing.

" whose key attributes are configurability. which obviates the need for end -users to download patches and upgrades. since the user community drives the software publisher to support best practic e Benefits: y y y y y y y y Save money by not having to purchase servers or other software to support use. SaaS providers generally price applications on a per -user basis and/or per business basis. but are also recur ring. SaaS revenue streams to the vendor are therefore lower initially than traditional software license fees. Each level is distinguished from the previous one by the addition of one of those three attributes: y Level 1 .Ad-hoc/custom: Each customer has a customized version of the hosted application that runs as its own instance on the host's servers. as well as smaller providers like Wave Accounting (free accounting) and Freshbooks (freemium time tracking and invoicing). multi-tenant efficiency. SaaS sometimes provides: y y y More feature requests from users. with revenue being derived from alternate sources such as advertising. and scalability. Customers can deploy SaaS services/products within hours rather than weeks or months. Migrating a traditional non -networked or client±server application to this level of SaaS typically requires the least . since th ere is frequently no marginal cost for requesting new features Faster new feature releases. since the entire community of users benefits Embodiment of recognized best practices.y y Centralized feature updating. sometimes with a relatively small minimum number of users and often with additional fees for extra bandwidth and storage. Focus Budgets on competitive advantage rather than infrastructure (Low Total Cost of Ownership) Monthly obligation rather than up front capital cost Reduced need to predict scale of demand and infrastructure investment up front as available capacity matches demand Multi-Tenant efficiency Flexibility and scalability Reliability Implementation: One of the companies that sells that kind of service classifies SaaS into four "maturity levels. Frequent integration into a larger network of communicating software²either as part of a mashup or a plugin to a platform as a service. and therefore viewed as more predictable. much like maintenance fees for licensed software. Faster Implementation. Some SaaS applications are free to the user. Examples of free SaaS applications include large players such as Gmail and Google Docs. In addition to characteristics mentioned above. or upgrade fees for enhanced functionality (often referred to as "freemium").

SaaS application development may use various types of software components and frameworks. other virtualization techniques applied to SaaS include application virtualization and virtual appliances. multi-tenant-efficient: This adds multi tenancy to the second level. while simplifying common code base maintenance and updating. Level 4 . This enables more efficient server resource use without apparent difference to the end user. This lets the vendor meet different customer needs through detailed configuration options. . SaaS can also take advantage of Service Oriented Architecture to let software applications communicate with each other.Configurable: This adds greater program flexibility through configurable metadata. multi-tenant-efficient: The fourth and final SaaS maturity level adds scalability through a multitier architecture that supports a load-balanced farm of identical application instances that run on a variable number of servers. s o a single program instance serves all customers. Enterprise Resource Planning (ERP) Software providers leverage SOA in building their SaaS offerings. either in addition to multi-tenancy. content storage on the service. grid computing software. Combining multi -tenancy and virtualization provides still greater flexibility to tune the system for optimal performance. Level 3 . but ultimately faces scalability limits.Scalable. Examples include components for subscription management. exposing its functionality to other applications via public brokers. and can also act as a service requester. On the other hand. SaaS and SOA: Much like other software. so many customers use separate instances of the same application code. y y SaaS architectures may also use virtualization. and non-proprietary format data backups and restores of data stored on the service . Software as a secure service (SaSS) is a variation of SaaS that provides security in the link to t he service. or in place of it. y Level 2 . The provider can adjust system capacity to match demand by adding or removing servers without further altering the software architecture. configurable.development effort. In addition to full operating system-level virtualization. incorporating data and functionality from other services. and reduces operating costs by consolidating server hardware and administration. much programming may be requir ed to construct a more efficient multi-tenant application. and complete SaaS platform products. Each software service can act as a service provider. A principal virtualization benefit is that it can increase system capacity without additional programming. These tools can reduce time -to-market and the cost of converting a traditional on-premise software product or building and deploying a new SaaS solution.Configurable. web application frameworks.

 XML messaging: This layer is responsible for encoding messages in a common XML format so that messages can be understood at either end. Web Service Protocol Stack A second option for viewing the web service architecture is to examine the emerging web service protocol stack. Simple Mail Tra nsfer Protocol (SMTP). Currently. 1.  Service registry: This is a logically centralized directory of services. Web Service Roles: There are three major roles within the web service architecture:  Service provider: This is the provider of the web service.Web Service Architecture There are two ways to view the web service architecture. such as Blocks Extensible Exchange Protocol (BEEP). The requestor utilizes an existing web service by opening a network connection and sending an XML request. Currently.  Service requestor: This is any consumer of the web service. this layer includes hypertext transfer protocol (HTTP).  Service transport: This layer is responsible for transporting messages between applications. It therefore serves as a centralized clearinghouse for companies and their services. The service provider implements the service and makes it available on the Internet. and newer protocols. The stack is still evolving. but currently has four main layers. this layer includes XML -RPC and SOAP. Service Registry 1 Service Requestor 2 Service Provider 2. file transfer protocol (FTP). Following is a brief description of each layer. . the second is to examine the emerging web service protocol stack. The first is to examine the individual roles of each web service actor. The registry provides a central place where developers can publish new services or find existing ones.

In an environment in which only a few companies participate. Service description: This layer is responsible for describing the public interface to a specific web service. Companies invoke the services of other companies to accomplish a business transaction. managing the discovery of business partners manually would be simple. Discovery. and Integration (UDDI) Project provides a standardized method for publishing and discovering information about web services. UDDI focuses on the process of discovery in the service-oriented architecture. Service Discovery UDDI Service Description WSDL Service Invocation SOAP Transport HTTP  UDDI: The Universal Description. and providing easy publish/find functionality. along . The UDDI Project is an industry initiative that attempts to create a platform -independent. as the number of companies that you need to interact with grows.  Service discovery: This layer is responsible for centralizing services into a common registry. discovering businesses. As web services evolve. however. After all. and additional technologies may be added to each layer. service description is handled via the Web Service Description Language (WSDL). open framework for describing services. Currently. Currently. and Integration (UDDI). additional layers may be added. Web services are becoming the basis for electronic commerce of all forms. how difficult would it be to figure out if one of your few business partners has an access point that adheres to your requirements? This model breaks down. and integrating business services. service discovery is handled via Universal Description. Discovery.

WSDL defines out -of-the-box binding extensions for SOAP 1.with the number and types of interfaces they export. HTTP GET. Prior to the UDDI project. including business name. and where to find it. identifiers about a contact information. Conceptually. Nor was there a uniform method that detailed how to integrate the systems and processes that are already in place at and between business partners.  Green pages: Technical information that describes the behaviors and supported functions of a web service hosted by your business.1. and or tax IDs. unique identifiers such as D -U-N-S numbers information allows others to discover your your business identification. WSDL has created separate definitions and terminology for defining a web service. This information allows others to discover your web service based upon its categorization (such as being in the manufacturing or car sales business). How do you discover all the business partners that you can do business with? If you attempted to account for them manually. This information includes pointers to the grouping information of web services and where the web services are located. HTTP POST. Nothing attempted to cover b oth the business and development aspects of publishing and locating information associated with a piece of software on a global scale. . and MIME. address. you could never be sure that you discovered every partner. and an abstract way to declare a binding to a concrete protocol and data format. WSDL also provides the ability to define a binding that attaches an abstract set of message definitions to a concrete protocol or data format. the legal format for input and output messages for the web service. a business can register three types of information into a UDDI registry. how to invoke its operations. This web service based upon  Yellow pages: Information that describes a web service using different categorizations (taxono mies). the communication endpoint where that web service exists. but they provide a good summary of what UDDI can store for a business:  White pages: Basic contact information and company. A bindingextension is a type of binding defined for a major protocol. The web service implementation has to adhere to the guidelines defined in the WSDL file but has some flexibility over specifics. no industry -wide approach was available for businesses to reach their customers and partners with information about their products and web services. UDDI is a single conceptual registry distributed among many nodes that replicate the p articipating businesses' data with one another.  Web Service Description Language: WSDL describes what a service does. The UDDI registry of services (hosted by different businesses on the Internet) attempts to solve this problem. Everything defined within a WSDL file is abstract: it's just the definition of parameters and constraints for how communication should occur at runtime. The specification does not call o ut these types specifically.

That's the real beauty behind SOAP." Perhaps the "S" should stand for "straightforward." The basic approach of expressing data as XML and transporting it across the Internet using HTTP is simple. it is conceivable that implementation code can be gener ated from a WSDL definition and that WSDL definitions can be created automatically from existing implementation code. a full understanding of the details and rules of SOAP is not for the faint of heart. Both techniques are a boon to developers and nondevelopers alike and lend credibility to the notion of truly dynamic computing models. In the SOAP protocol. SOAP is fully capable of describing a remote procedure call or method invocation. Perhaps the "S" should stand for "simpler.Since WSDL is just an abstract description of a web service's interface. the "S" in SOAP stands for "simple. It's an RPC mechanism. and is conceptually understood by less technical people. From a programming perspective. MIME encoding. is familiar to most IT people. It's a document exchange protocol.  Simple: For starters. However. . It's an interoperability standard. if an action is indicated in the SOAP document  Object: The "O" in SOAP stands for "object" and has to do with its roots as a way of invoking COM objects across the Internet. using WSDL to generate code is one of its biggest values. It's a universal business-to-business communications language. It's everything you would ever need." In SOAP. the idea of expressing a SOAP document wit h attachments using the email and MIME metaphor is simple. Every aspect of a SOAP request is intended to be completely self -describing and largely based on a conglomeration of proven. It's not nearly enough. everything that goes across the wire is expressed in terms of HTTP or SMTP headers. nothing is hidden intentionally. For instance. Methods of generating WSDL from existing compone nts have also been discovered. yet they can communicate as long as each side of the conversation ca n: o Send and receive data transmissions across a network using either HTTP or SMTP1 o Understand MIME encoding rules and base the means of constructing and deconstructing binary attachments on those rules o Construct and deconstruct XML documents that conform to the enveloping and encoding rules established by SOAP o Perform the required action. Is MIME simple? It is simple only because it uses a data formatting convention that is already in widespread use. It's a wire protocol. As with its close cousin XML-RPC. the platforms and programming languages on both sides of a SOAP conversation are independent of one another. and a special XML grammar for encoding application data and objects.  Simple Object Access Protocol: Simple Object Access Protocol (SOAP) means various things to different people. well-established conventions.

Other bindings. HTTP is simple. .  Protocol: Put all these factors together and we have a protocol. SOAP is an XML based protocol used to exchange information throughout a distributed environment. or SOAP over JMS (for improved reliability). These protocols were chosen because they are almost universally available. This layer is responsible for actually transporting XML messages between two computers. so SOAP conversations can easily cross corporate boundaries. the document exchange model is the default method of exchanging data between two endpoints. It's possible to create a SOAP binding for almost any protocol ² however. RPCs demand greater efficiency and reliability than document retrieval does. This is good if you want to easily integrate remote applications. An RPC call is a specialized case of combining multiple one -way asynchronous messages into a request response. most firewalls allow HTTP traffic. for the time being. Access: A key feature of SOAP and web services is their accessibility.  Message-Based Document Exchange and RPC : SOAP has its roots in synchronous remote procedure calls over HTTP ²although you wouldn't know it by reading the specification these days. In particular. and that binding would most likely be HTTP or SMTP. Actually. such as SOAP over RMI. but it does raise a number of security concerns. Most firewalls have been trained to allow HTTP sessions and SMTP exchanges. stable. Furthermore. In fact. a number of critics have argued that HTTP is not ideal for web services. This allows XMLRPC or SOAP messages to masquerade as HTTP messag es. there is also an asynchronous. and widely deployed. are emerging. HTTP is the most popular option for service transport. While HTTP does get the job done. Currently. The initial developers of SOAP intended for all SOAP conversations to be carried out via a "binding" to another lower -level protocol.  TRANSPORT: The bottom of the web service protocol stack is service transport. message-based document exchange model. the specification seems to go out of its way to distance itself from that association. and is now being reworked to support RPCs. HTTP was originally designed for remote document retrieval. Although special provisions are available for performing synchronous RPC calls in SOAP. HTTP is the de facto binding (and most widely used).

Conceptually. With the service description in hand. provided by the web service prov ider. and a requestor. Providers define service descri ptions for services and publish them to a registry.com/developerWorks). finding which services are available.) for the web serv ice's implementation. Participant Roles: The SOA is based upon the interactions between three roles: a provider. A requestor then uses a registry to find service descriptions for services they are interested in using.e. This set of technologies currently consists of SOAP. etc. WSDL. creates a service request for) to a service. The originator was IBM and the introduction mechanism was an article by the IBM Web Services Architecture team on the developerWorks web site (http://www. The components of the SOA are our good friends. though other components may be ad ded in the future. It is expressed in XML and is governed by one or more standards. The SOA is an instance of a composite computing model. Additional documents provide categorization and other metadata to facilitate discovery. and thus something that can be used to further our understan ding of it.SOA The composite computing model defines a vision for what computing should be. This description includes the datatypes.  Service description: The interface for a web service. SOA seemed to appear almost out of nowhere in September 2000. Since then. The key requirement is that it be on a network -accessible platform. a registry (or broker). operations. protocol bindings and network location (i. the requestor binds (i. the URL. In a typical scenario.ibm. . a provider hosts the implementation for a service. Each web service is made up of two parts:  Service: The implementation for a web service. A service can be as minuscule as a JavaScript file or as elaborate as a 30 -year-old.e. and binding to those services. industrial-strength COBOL application running on a mainframe. The interactions between these roles involve publishing information about a service. web services.. and UDDI. the SOA model is comprised of three roles performing three fundamental interactions. Service oriented architecture (SOA) represents a way to achieve this vision using the set of technologies that make up the Web Services Technology Stack.. this group has used it as a way to extol the virtues of web services to nontechnical users.

SOAP UDDI Provider Provider SERVICE-ORIENTED ARCHITECTURE  Provider: In the SOA. which by definition:  Has an XMLized description  Has a concrete implementation that encapsulates its behavior Almost any piece of logic can be exposed as a service in an SOA ² from a single component to a full-blown. this software asset is exposed as a web service. or via other technologies (such as SMTP). Likewise. In most cases.Requestor Find Registry UDDI Provider Bind Publish WSDL. a provider is considered the owner of a service. or it may just receive messages and de liver asynchronous replies. it is a software asset that others regard as a network-accessible service. From a composite computing perspective. the service may implement a request/response protocol. through a JMS message queue. h ow the service is exposed is up to the provider. . you can access it through SOAP over HTTP. mainframe-based business process. such as loan processing.

a requestor is a business that discovers and invokes software assets provided by one or more providers. a registry lets you look up a service and then find its programmatic interface. such as. some fundamental ambiguities exist in basic terms such as "provider.As is often the case in modern software development.  Registry (broker) A registry. . Registries often sound abstract. or the computer (or computers) on which the software runs? The meaning is almost always clear from the context. and contact information ("white pages" data)  Data describing policies.?" In short. your software) to ask questions such as.  Requestor In the service-oriented architecture. such as another web service Again. is it a browser of some sort. During the development cyc le for a web service. manages repositories of information on providers and their software assets." Does it mean the organization providing the service. more properly. etc. a broker represents a searchable registry of service descriptions. an organization. information needed to make use of the service ("green pages" data) A service broker usually offers intellig ent search capabilities and business classification or taxonomy data (called "yellow pages" data). At runtime. place orders. you can ask more questions. an application can tap into a registry (local or remote) to obtain service descriptions and create dynamic bindings to services. a requestor is an application that looks for and initiates an interaction with a provider. a programmer (or tool) can use the information in registries to create static bindings to services. "How do I interact with their service to find prices. "Who sells widgets?" Once you have an answer to that question. or a piece of software? If it's software. From a composite computing perspective. From a composite computing perspective. This information includes:  Business data such as name. but they solve a very concrete problem. or is it another kind of software? Again. the answer depends on the context. there's a lot of ambiguity: is a requestor a person. the software itself. This role could be played by:  A person using a web browser  Computational entities without a user interface. business processes. or a broker. description. They allow you (or. published by providers. and software bindings²in other words.

xmethods. These providers are usually standards organizations. the service provider is an application that uses a specialized set of APIs to publish the service description. FTP. using email. particularly since http://www. and binding. though others exist (for example.1. There is no registry as such.1 Publishing Providers publish information (or metadata) about services to a registry. software vendors.2. ebXML R).xmethods. In the web services world. the most frequently used registry is UDDI. According to IBM's Web Services Conceptual Architecture document.com/. The service requestor retrieves the service description direc tly from the service provider by using an HTTP GET request. This model has a registry (the public web repository). the service provider delivers the service description and simultaneously makes the service available to a requestor.Participant Interactions Having defined the roles that participants in web services can play. we'll look in more detail at how they interact. HTTP GET request: This mechanism is currently used at http://www. Dynamic discovery is the most interesting and versatile publishing model. The direct publishing method is a historical artifact and of little interest to us. several different mechanisms are used to publish service descriptions: Direct: The service requestor retrieves the service description directly from the service provider. UDDI and other protocols designed to support dynamic discovery are at the center of the web services landscape. Provider Registry Here s my Service Publishing for dynamic discovery . and developers. we see th is means of publishing as transitional²a temporary tool to get us from direct publishing to dynamic discovery. service location. though only in a limited sense.  2. Dynamic discovery: This mechanism uses local and public registries to store and retrieve service descriptions programmatically. There are three fundamental types of interaction: publishing. Publishing with a GET request is more interesting. the requestor is responsible for locating services an d retrieving their descriptions. Here. However. Contextually. or a distribution CD.com/ has been on the forefront of web services development. a public repository of web services that developers can use to test their wares.

2 Service location (finding) Given that registries or brokers publish services.2. These queries are formatted in a well-defined. 2. such as SOAP or XML -RPC. the APIs by which the service is accessed.1. The criteria used to find a service include the quality of service (How quickly can the ser vice respond? How good are its results?).. the requestor is an application that uses a specialized set of APIs to query a public or private registry for service descriptions. SMTP. etc. and everything else that a requestor needs to use a service.) that a service supports. supported protocols (Can my client talk to your service?). and the service taxonomy (What kind of service?). In context.2. Service location is closely associated with dynamic discovery. optionally. Web service description documents (WSDL documents) specify the network protocols (i.50/ pound .e.3 Binding The binding interaction involves the requestor and provider and. Requestor Where can I find ? Registry Look Here Service location  2. the registry. It's easy to imagine other criteria that you could use to locate a service. MIME. how do you locate services that you wish to use? Requestors find services using a registry or broker. In this context. binding is what an application does when it uses the service description to create a message to be sent to the service provider.1. standard XML format and transmitted using an XML messaging format. Requestor How do I access? Here s how Registry Provider What is the price of tea in China ? $ 1. HTTP.