LiquidHub, Inc.
Suite 300
Wayne, PA 19087
484.654.1400
www.liquidhub.com
ViewPoints
Topics covered in this paper include:
Defining Web Services Web Services Architecture and Characteristics XML as a Foundation for Web Services Standard Protocols of Web Services Value Proposition of Web Services Challenges facing Web Services Action Steps
1. Executive Overview
As discussed in previous Horizons White Papers, Service Oriented Architecture (SOA) is becoming the IT architecture of the future. While not groundbreaking technology in and of itself, SOA fundamentally shifts how businesses and IT organizations attack business problems and the technology architecture that is constructed to solve these problems. Service Oriented Architecture can be thought of as a collection of applications, or services, that are connected via a communications network that can be either inter- or intra-company. While this architecture framework is not new, emergence of applications called Web services in SOA is truly exciting. Figure 1 below demonstrates how business logic is exposed via a business service layer.
ViewPoints
Previous attempts at a service oriented architecture where hampered by several factors. A lack of commonly accepted interface definitions, the inability of applications to dynamically portray their functionality and communication methods, and a multitude of data and transport mechanisms, made true service architectures unattainable. The emergence of a class of applications called Web services over the last two to three years, addresses these hurdles by providing standards around the transportation, messaging/data of services, and the description of services. In addition, Web services capitalizes on the reuse of applications/code. The transportation of services relies on Internet technologies such as HTTP and HTTPS, which allows for exchange of information between services. The actual data being passed between services are encoded in a format known as Extensible Markup Language (XML). Each Web service also contains descriptive text that other services utilize to interpret the functions the service is capable of, based on messages the service can send and/or receive. In addition, Web service descriptive text can include software that makes the service definition available in a searchable format. Many IT organizations are striving for stronger governance, common architectures, and uniformed development platforms. SOA and Web services, however, should not be thought of as simply an IT initiative. Rather, business drivers such as the power of consumers (customers ability to access data and the volume of data that is available), a need for more efficient value-chains, and an ever increasing need for speed to market is really what is at the root of the SOA and Web services initiative. Leading business and IT research concedes that true SOA and end-to-end Web services architectures that span both application-to-application (A2A) and business-to-business (B2B) integration are still three to five years from reality. This, however, should not be seen as a reason for a wait-and-see approach. Rather, leading businesses and IT organizations are currently defining their Service Oriented Architectures, inventorying their list of applications, and identifying business processes or existing systems that can be used to prototype a Web service applications. The balance of this document presents a more detailed discussion on Web services and the components that make up Web services. A more detailed discussion of XML is included to highlight the importance of this encoding standard to the emergence of Web services. Finally, the value proposition of Web services, current challenges, and some suggested action steps are provided.
ViewPoints
approach and inherent simplicity, Web services are positioned to make a significant impact on Enterprise Architectures. Web services are not revolutionary, but evolutionary, providing an incremental step in future implementation of Internet technologies. As IT organizations continue to evolve their Internet and IT infrastructures, there is an increased realization of the growing need for sharing applications and data across and outside of the enterprise. Todays software development metrics are mostly concerned with speed-to-market of new or extended applications. Evolving metrics used to measure the success of software development are developing. These include how quickly and seamlessly business processes, data, information and knowledge can be leveraged across the enterprise, regardless of the source, in order to make real-time decisions. This new paradigm has been coined the Time-to-Share objective. It measures how quickly business process, data, information and knowledge can be shared (inter or intra organizationally) as opposed to time-to-market, which measure how quick an application could be made available. The realization that many organizations today have a strong foundation of applications and data stores is driving the idea of accessibility being more critical than availability.
ViewPoints
2.3. Architecture Overview
The Web services framework is categorized into three typical systems or runtime environment components that have been identified in prior A2A protocols. XML is the common component by which the environment components communicate. The promise of the Web services architecture framework is that each environment layer is defined through W3C standards and made accessible through mature Internet-transport technologies. The layers of the Web services framework environment are:
Figure 2: Web Services Layers Service Transport Network protocols that include, but are not limited to HTTP and HTTPS that enable Service Requester and Provider components to exchange Service Messages. Service Messaging Mechanism for encoding and decoding Web services messages to be transported between Service Providers and Requesters. Messages are encoded via XML in accordance with the Simple Object Access Protocol (SOAP) specification. Service Description Mechanism that allows a Web Service to define the actions it is capable of performing via messages it can receive and/or send. This information is readily available to Service Requesters and is defined in accordance with the Web Services Description Language (WSDL). The Service Description layer may also include Universal Description and Discovery Interface (UDDI) software that makes Web Service and Service Provider WSDL information available in a published and searchable format. The Service Description layer is not a required layer in a Web services environment. Service Provider - Software that hosts access to a service such as an Application Server. Service Requester Any application that requires specific data or functionality offered by a Service Provider and ultimately presents the results to the consumer such as a portal, for example. Note that, while not a requirement of a functional Web Service, the Service Description layer provides functionality to detect and inspect a service prior to its use. Since service requester and provider specifications were built at the same time by the same W3C group, Web services promises to offer more service connectivity without prior service knowledge.
ViewPoints
It is also important to understand that while the W3C Web Services Working groups publish the specifications, vendor implementations provide extensions to distinguish their software in the market place bringing additional value to their customers implementations. Examples of these extensions can be seen in enhancements that IBM, Microsoft, and other vendors have provided making Web services more secure, more reliable, and more transaction-centric. Often, such enhancements are added to the W3C specifications. Typically, the base functionality described in the W3C specifications is supported along with vendor-specific extensions that support interoperability across vendor implementations.
Figure 3: Web services Operation & Flow In the scenario described in Figure 3, the interactions between the roles and operations are defined as follows: A Service Provider host defines a service description for a Web service and then publishes it to a service requestor or service registry (registry can be private or public depending on the intended usage of the service). The Service Requestor is an organization that requires certain functions to be satisfied or an application that is looking for and invoking or initiating an interaction with a Web service. A Service Requestor seeks to find the service description (also known as meta data) of Web services via the Service Registry. The Registry contains enough information for a Requestor to bind to a Provider. The bind operation is the process that allows an application to connect to a Web Service at a particular network address and start interacting with it. The Service Registry is accessible and searchable by Requestors and contains service descriptions published by Providers. Requestors use the Registry to find the service descriptions of Web services. The descriptions provide the information necessary for Providers and Requestors to bind.
ViewPoints
Synchronous Web Services Also known as simple Web services, synchronous Web services implement a call-and-response Remote Procedure Call (RPC) mode of interaction. In this mode, the caller invokes the Web service, and the business logic behind the Web service executes its behavior while the caller waits for the business logic to complete its operation and return a response or result before proceeding. This is known as a synchronous mode of communication. When the business logic is complete, the Web service will return the results to the calling program or the Web services consumer. During the time that the Web services business logic is executing, the Web services consumer thread is blocked and cannot do any other work. Synchronous processing is appropriate for simple coarse-grained business processes, like tax rate calculations. In other more complicated situations, such as inventory management, document routing (e.g., EDI or industry specific XML formats), or resource intensive transactions that span multiple applications, the blocking time for the Web services consumer could be unacceptable. In these situations, releasing threads (i.e., freeing up connections to services and applications) is important as many processes/services are running concurrently within one large system. Figure 4 below illustrates a simple (synchronous) Web service for tax rate calculations.
ViewPoints
the request. The client in this case does not need the result of the service call, not even an error response, to continue. The Web service Requestor can be instructed to check back with the Provider after an elapsed amount of time, to determine if processing is complete. For certain processing, where the duration is unknown or variable, the Web service can be configured as a listener, meaning the Requestor listens for a completion message or sends callbacks to the producer until processing has completed. Some examples where asynchronous, also known as complex Web services, are appropriate include: Settling payments; Obtaining a credit score or rating; Performing intensive computing tasks; or Responding to data mining requests Figure 5 illustrates an asynchronous Web service using a message-driven bean (provides for asynchronous message processing) for executing business logic and JMS (Java Messaging Service) to effect acceptance and delivery of client arguments or data.
ViewPoints
3.2. XML Model
XML is a text-based markup language, a subset of Standard Generalized Markup Language (SGML) and is similar in appearance to HTML. XML (as with HTML) has its base functionality controlled and maintained by World Wide Web Consortium (W3C) working groups. XML as a flexible text-base markup language does not contain a fixed tag set and allows tags to be defined by the application thus emphasizing the meaning of data. XML describes the structure of data where as HTML describes how data should be displayed. Data defined through XML documents can optionally use a component known as a Data Type Definition (DTD), Extensible-Data Reduction or an XML Schema Definition (XSD) to describe the data and provide meaning by describing and enforcing the data tag structure for an XML document. Following this thought process, there exists the concept of a document type within XML. Further, a component known as Extensible Stylesheet Language (XSL) can be applied to an XML document to transform documents to HTML or other output formats for presentation or transformation to other XML formats. Figure 6 presents an overview of the XML model components.
Figure 6: XML Components Model The structure of the document creates the concept of a document type that is effectively defined by the data structure it contains. XML documents of known document types can be processed by special purpose programs that can programmatically check the data structure of a given document type. Such special purpose programs are referred to as parsers and are used to ensure XML documents conform to the structure of the document type as well as to ensure the existence of elements, attributes and that the order in which they appear is valid. These XML document structures are comprised of a simple and consistent identification of XML textual structure.
Elements
XML, like HTML is comprised of elements, or textual units that are structural components. Like HTML, XML is comprised of different types of elements using different names. Unlike HTML, an XML author can select names for different types of elements. However there is no way to express the meaning associated with an element name other than its relationship to other elements within the document. XML is not concerned with the semantics of elements, as these are completely application dependent. Elements are used to describe fragments of content that comprise the document, typically more than a few words in length. It is up to the authors of the XML document and its associated vocabularies to choose meaningful
ViewPoints
names for the elements they identify and to define their proper use in text markup. As will be described later, less significant information or behavioural attributes are described using attributes. Within an XML Document, each element needs to be marked (or tagged) in some manner similar to HTML. XML elements are made up of a start tag, an end tag, and information, or content, between them. The example in Figure 7, below, is a simple structure representing a collection of DVDs. Within the collection we identify DVDs, their titles, genre, rating, and runtime information. XML terminology defines the document type as digitalversatiledisks consisting of a number of digitalversatiledisk element occurrences having embedded title, genre, rating, and runtime elements. <?xml version=1.0?> <digitalversatiledisks> <digitalversatiledisk> <title released=2002>Pirates of the Caribbean</title> <genre>Action/Adventure</genre> <rating>PG-13</rating> <runtime>143</runtime> </digitalversatiledisk> <digitalversatiledisk> <title released=2003>The School of Rock</title> <rating>PG-13</rating> <runtime>108</runtime> </digitalversatiledisk> </digitalversatiledisks> Figure 7: DVD Collection Example The DVD Collection example is considered to be a well-formed XML document based on the following list of rules: An XML document has one or more elements with a single element containing all other elements nested within it and in which each element is completely contained by its parent element. Tags marking the start and end of an element must be present except for special cases in which they are combined (e.g., when the tag contains no other tags an empty tag).
Attributes
It is often necessary to describe details regarding an element that the name and content is unable to convey. Attributes are used to provide this functionality as a string of text following the element opening tag text and a space. The attribute is then followed by an equal sign, single or double quotes and the associated attribute value. In the example, the title element contains an attribute named released that provides the year the movie title was released. Typically, attributes are used when the need exists to restrict the potential values. Attributes may also be useful when the value modifies the associated element in a fashion that would effect processing, yet is not part of the element content.
ViewPoints
through standardized XML Elements and Attributes. This standard use should include mechanisms that enable applications to alter functionality based upon the information. XML will lead HTML to XHTML that contains elements of HTML and conforms to the rules of XML. In addition to syntax, XHTML explicitly provides meaning to its defined tags. XML is useful for a variety of data exchange applications and is a foundation technology for such enterprise strategies as Web services and likely has a future in your enterprise.
11
ViewPoints
Types: XML types corresponding to the various arguments and return types. Message: An abstract typed definition of the data being communicated. Operation: An abstract description of an operation provided by the Web service. Port Type: A collection of operations supported by one or more endpoints. Binding: A concrete protocol and data format specification for a particular port type. Port: A single endpoint defined as a combination of a binding and network address. Service: A collection of related endpoints.
12
ViewPoints
Current applications often support a network-object interaction model where objects of strictly defined types are transferred between components using a request-response interaction pattern. Such object interactions require an understanding of the object model within which they live. For this reason, object interaction methods are not suited for multi-application interoperability or cross-organizational interactions that must be long lived. XML permits data to be very portable and, therefore, Web services can leverage the lightweight XMLbased protocol named the Simple Object Access Protocol (currently SOAP version1.2) for invoking services across the Internet and exchanging information in a decentralized and distributed environment. The transport mechanism for SOAP is provided by ubiquitous Web protocols such as HTTP/HTTPS, which enables negotiation of Internet firewalls much better than existing protocols such as RMI, IIOP, or DCOM. The usage of SOAP does not dictate a programming or implementation model. Rather, it defines the modular packaging model and the mechanisms used for encoding data within these modules. The four parts of a SOAP message are as follows: The envelope defines a framework used to describe the contents of a message how it should be processed. A set of encoding rules that is used to express instances of data types defined by various applications. A convention for representing remote procedure calls and responses (e.g., parameters passed to and from services). A binding convention for exchanging messages using an underlying protocol such as HTTP/HTTPS and SMTP.
13
ViewPoints
In an effort to avoid creating the rigid legacy applications of the future, organizations must consider the longevity and sustained growth of proposed business solutions. They will need to clearly define solutions that are flexible and capable of scaling with the current, the future, and even the unanticipated demands of business. Organizations must also consider how proposed business solutions fit in an enterprise Time-to-Share model. Business processes and associated domains of data, information, and knowledge may need to be leverageable, that is, shared and accessible, to the organization not today, but sometime in the life of the business solution. Creating solutions that facilitate this kind of information openness extends the useful life of business solutions. It is extremely rare to see computing heavyweights such as IBM, Microsoft, Sun, BEA, Oracle, HP, and others agree on anything yet, in this case, they all concur. Web services will be the native language of the next generation of Internet-based applications. Web services promises to simplify integration across many aspects of the enterprise by providing interoperability among distributed business systems that span diverse hardware and software platforms. Also, the accessibility of applications through organizations firewalls is made possible by leveraging ubiquitous Web protocols (HTTP/HTTPS). Finally, the usage of the XML data model will enable crossplatform and cross-language integration between heterogeneous distributed applications. By leveraging these attributes, Web services offer the following value propositions to organizations considering this architecture: Organizations can reduce the costs associated with component and cross-system integrations. Software development costs and the resource costs will both decrease as complexities are removed. Longer-term, an organizations technical training needs will decrease as Web services becomes an enterprise wide standard. The facilitation of less complex interaction in B2C and B2B interactions and thus increase an organizations capacity for building and sustaining relationships with customers and partners. Improvement of organizational efficiencies by the delivery of more timely services created with less resources. More flexibility in organizations as they pursue new business models, new markets, or new partnerships. A business services model may even expose untapped revenue streams in the legacy business value chain. Foundation services for a portal framework that needs to encompass content, business systems, and internal or external (non-) syndicated services. Web services technology is very new. In order for organizations to participate in the Web services landscape, an investment in terms of time and money will be required to drive the adoption of Web services technologies and to conduct the initial training required for long-term success. Web services are in an evolutionary phase and, therefore, organizations must first prove the fundamental principles of Web services to skeptics both within IT and on the business side. A tangible method for displaying the benefits of Web services, is to incorporate them into upcoming development efforts.
14
ViewPoints
By demonstrating the value of reusability, abstraction of business logic from the integration layer, and exposing existing business processes via services, IT organizations can make the case for Web services. After successful pilot development efforts, IT organizations can begin to provide standards for designing, developing, and deploying Web services for future development efforts. IT organizations should also focus on governance to ensure the adoption of proven standards being driven by the various standard boards. Complying with industry standards mitigates the risk of misapplying this technology and incurring extra cost in both development and execution of software systems.
Compatibility
One of the promises of Web services as described above is the ability for a Web service to describe its functionality and interface points to other services. In reality, however, will this descriptive text truly reflect the inner workings of a Web service application? Developers seeking to join one or more Web services may discover incompatibility issues when attempting to link Web services from various applications or providers. Strong IT governance is needed to ensure consistent Web services descriptive text. The bigger challenge facing Web services development will be intra- organizational integration in which the IT leaders of several organizations have to enforce standards for Web services compatibility.
15
ViewPoints
for organizations to recognize the merits of Web services and their application within their associated business environment. Web services have the ability to be embedded in existing applications thus introducing Web services architecture and benefits can prove to be a significant benefit for organizations when carefully implemented. The following six suggested action steps are based on the actions currently undertaken by leading businesses and IT organizations.
Action Steps
Define your organizations Services Oriented Architecture. To maximize the benefit of Web services, leading IT organizations are setting a strategy in place rather than letting business units or developers develop Web services on an as- needed basis. Initial strategy for identifying Web services candidates should focus on identifying processes or applications with a high probability for reuse. While the overall strategy is being developed, identify a business need or current initiative that can be solved via Web services exposure of an existing application, or a newly created Web service. To avoid introducing new types of defects, enforce existing development standards in terms of security architecture, testing/quality assurance, and on-going applications management. It is important to consider Web services applications and to treat them as such during the development life cycle. Evaluate your current integration framework and contrast it to an emerging trend known as the Enterprise Service Bus (ESB). The concept of an ESB, which utilizes standards-based interfaces for secure and reliable integration, is complementary to an overall Web services strategy. In the areas of services discovery (discussed above), an ESB allows for an enterprise wide accessible solution for services registration and discovery. The ESB combines messaging, web services, data transformation, and intelligent routings. The powerful combination of these components lays the foundation for loosely coupled application integration across distributed networks, see figure 9 below.
Figure 9: The Enterprise Service Bus Connects entire Enterprise (Adapted from IBM) Get involved in the Web services standards development efforts in your industry. Staying abreast of on-going standards development can minimize costly rework to adhere to late developing standards and also makes your company a more attractive trading partner to other organizations. Determine your integration platform based on your in-house skills and software already in use (do not expect immediate resolution of IP disputes discussed above). Create a change management plan for addressing the inevitable role changes of both your business and IT resources. Business leaders will have to become more involved in industry trends regarding cooperation among trading partners while IT leaders must stay current on the latest technical developments in Web services.
16
ViewPoints
Adopting an SOA is a long-term commitment but unlike big-bang implementations of the past, there is incremental return on investment as organizations adopt an SOA and begin service enabling their organizations. The level of returns and adoption of an SOA does not grow linearly over time, but rather has the capacity of exponential growth as more and more areas of an enterprises business and IT organizations adopt the SOA concepts and Web services are created in higher volumes. Web services is not a silver bullet to solve all of ITs current dilemmas but used correctly and in conjunction with widely accepted standards such as XML, they can provide tremendous benefits to IT organizations and the businesses they support. References: W3C Web services: Definition http://www.w3.org/2003/Talks/0317-ws-intro/slide27-0.html IBM Web services Glossary http://www-306.ibm.com/software/solutions/webservices/glossary.html The Stencil Group, Defining Web services http://www.stencilgroup.com/ideas_scope_200106wsdefined.html Secure, Reliable, Transacted Web services: Architecture and Composition http://msdn.Microsoft.com/library/en-us/dnwebsrv/html/wsoverview.asp Web services Conceptual Architecture (WSCA 1.0) http://www-306.ibm.com/software/solutions/webservices/pdf/WSCA.pdf Microsoft XML 3.0 XML Microsoft XML 3.0 XML Developers Guide, XML Glossary http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk30/htm/xmgloxmlglossary.asp Violleau,Thierry, Java Technology and XML - Part 1, An Introduction to APIs for XML Processing http://java.sun.com/developer/technicalArticles/xml/JavaTechandXML/ (November 2001) Text Encoding Initiative: A Gentle Introduction to XML http://www.tei-c.org/Guidelines2/gentleintro.html XML Beginners Guide http://www.xml.org/xml/resources_focus_beginnerguide.shtml Understanding XML http://java.sun.com/webservices/docs/1.0/tutorial/doc/IntroXML.html BEA Weblogic Platform 7, by Jatinder Prem (SAMS 2004)
17