Web Services and the Future of Electronic Business Networking Jyrki Haajanen Helsinki 02.10.2002 Hajautetut sovellukset -seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Abstract This paper presents Web Services and their relations to pragmatic present day and near future business networking applications. One of the most intensive research areas in academia is the emerging next generation web. This research studies the ways to add intelligence to the present day web by introducing new ways of describing the data and services residing on the web with data of data so-called metadata. This data can be used to describe the content, purpose and means of use of both data and services. These descriptions could then be used by artificial intelligence solutions, such as autonomous agents, to produce search engines with better hit rates through application of semantics and to enable automatic location and usage of services. The part of research and applications that is related to services is often referred as Web Services. This paper gives an introduction to the topic and relates it to electronic business networking which is one of the top research fields in business economics. Then we will move on and introduce the eBusiness standards briefly and sketch out the development trends in business networking and it's information technology support. Next we will cover the application areas for the web services followed by some introductory examples of the existing technologies such as Simple Object Access Protocol (SOAP), Web Services Description Language (WSDL), and Universal Description, Discovery and Integration (UDDI). Finally we will cover some proposed future visions and draw conclusions of our study. Contents Introduction * Web Services * SOAP * WSDL * The Web Services Description Language (WSDL) is a XML based format for describing the details of a web-service in a structured way. WSDL is based on the XML based message content and SOAP protocol wrapping these messages and providing a reliable transportation layer. The SOAP protocol, because it can be run over HTTP, is very powerful – it can securely operate through firewalls. * UDDI * Conclusions * Introduction Currently companies all over the world are struggling to adapt to a major change in the way how business is done. Earlier in the markets single companies were in competition with other companies. Nowadays, the competition occurs among groups of companies co-operating in providing the products and services to their customers. These groups typically cover the full value and supply chains from the raw material producer to the manufacturer and its subcontractors, and to the wholesaler and finally the retailer. This way of doing business is called Business Networking. Typically the companites will have to integrate the processes of their daily business to maximize the efficiency of their network. This will often also include the integration of the information systems in the companies. Before the intercompanyu process and information system integration can occur the intraorganizational system integration has to be done. Typically the actors, single nodes in a Business Network, are involved in many such networks which complicates things for them. The integration of the processes and the information systems is a complicated task and there are many approaches to the topic. Many software vendors have their specific solutions for both intra- and interenterprise application integration. There also exist many consotia of companies intended for creating XML based electronic business standards. However, traditionally this field has been very hard to fully cover since there are hundreds of different standard proposals. Currently a few of these standards are close to become dominant although it is still too early to say anything final on this issue. Often the eBusiness standards are classified to horizontal and vertical. The horizontal standards aim for defining a generic set of formats and means to conduct business in any industry, where as the vertical standards aim to provide these for a single field of industry. ebXML is one of the best known examples of the horizontal approach. The RosettaNet, developed within electronics industry, is typical example of the vertical approach. Web Services The Web Services is one of the hot topics in current Internet and Web technology development. Basically the vision behind this trend is transition from traditional centered and single implementation software applications to applications that are composed from service components residing on the web [Gla01a, b, c, d]. This resembles the software component paradigm very popular in the late 90's – now the components are just directly accessible on the web. The key issue is to provide information of the services, called metadata, so that they can be automatically identified to be useful, located, and used by computers with minimal human attention. The Web Services are closely related to the larger vision of the future Web often references as the Semantic Web. The Metadata will typically present multiple conceptual layers. Baseline is usually the format of the messages or data to be exchanged when using the service. Then we need a layer defining the means of exchanging this data, what is the format and means to used in invoking the service. Next we need information of locating the service. Typically two areas of use for the Web Services are predicted: 1) Publishing of existing legacy systems on the web. This approach is based on the fact that it is relatively easy to define a component that provides a web service interface to existing service. 2) Extension of the Software Component paradigm. This is a quite revolutionary vision that presents that in the future the software applications will be domposed of different service entities residing on remote locations on the web. The composition platform might be a browser or a small software framework in the users computer, or maybe accesible as a Web Service. The Web Services reside on the recent development in structured documents and related Internet and Web technologies. In the following section these technologies are briefly described. XML XML is a system for defining, validating, and sharing document formats on the Web. In practice, it is a meta language for defining other languages. XML instance documents are text files that look like HTML, but are actually quite far from it. XML is all about structuring the data, instead of structuring the presentation as in HTML. W3C has introduced a whole family of XML related standards and recommendations, including the foundational XML 1.0 specification, dating originally to 1998. XML has been introduced mainly to improve the functionality of the Web. It gives system designers flexibility by allowing them to define their own document types, instead of sticking to fixed formats like HTML. XML is a subset of SGML (Standard Generalized Markup Language), which is an even more complete standard -- in fact, far too complex to be used as a Web standard. Most of SGML has been discarded while constructing XML, but all the core functionality has been retained, making XML a powerful tool for serving and processing information using the Web. In addition to enhancing the possibilities of authoring information on the Web XML serves also as system independent information storage format. In the past years, all applications have had their own formats for storing data. These formats have not been interoperable, often not even between two instances of the same application, operating on different platforms. XML removes barriers from this kind of compatibility. For instance, it could be possible to edit sound data in a word processor, if needed (not that this is a very good example). As a data format XML is text based. One rationale is that methods of sharing textual information over completely different computing systems are already well standardized. Also, textual data is human readable and can always be viewed and edited in a simple text editor, if needed. An extra storage space requirement imposed by text format can be easily overcome using the widespread compression ("zip") programs. SOAP The Simple Object Access Protocol (SOAP) is an open standard that supports the interoperability of autonomous systems. Since it can be run over the Hypertext Transfer Protocol (HTTP), it helps to resolve the communication problems that occur when the applications have to operate through the firewalls of different organizations. Furthermore, Secure Socket Layer (SSL) can be applied on SOAP messaging to encrypt the content. SOAP supports RPC for invoking services on the service. SOAP messages can contain data packed in XML format, so they provide an ideal platform for implementing a tailored messaging service. Due to the XML approach the SOAP messages are easy to understand when compared to their binary correspondents such as CORBA, DCOM and RMI. The character-based nature of the messages introduces the requirement for encoding and decoding at the ends of communication, however this is relatively light task when compared to the cost of the transmission itself. WSDL The Web Services Description Language (WSDL) is a XML based format for describing the details of a web-service in a structured way. WSDL is based on the XML based message content and SOAP protocol wrapping these messages and providing a reliable transportation layer. The SOAP protocol, because it can be run over HTTP, is very powerful – it can securely operate through firewalls. The WSDL is based on the following major elements that can be used to define a web-service in full coverage [CCM01]: types, that provides the data type definitions to describe the messages that will be exchanged. message, an abstract definition of the data that is transmitted. It consists of logical parts that are associated with a definition within some type system. This element states what services are available in combination to the portType element. portType, which is a set of abstract operations, each of them referring to an input and output message. This element states what services are available in combination to the message element. binding, which specifies the concrete protocol and data format specifications for the operations and messages defined by a particular portType. This element states how the operations can be invoked. port, which defines a single communication endpoint by specifying an address for binding. service, which aggregates a set of related ports to a single service. This element states where the service can be accessed. It is recommended to give the service definitions in separate files specifying the data types, the abstract service definitions, and the concrete binding of the services. This enables more efficient reuse of the existing services and also helps in managing the definitions. Figure 1 shows an example of this convention. In the figure the data type is defined in the stockquote.xsd XML Schema file. This data type definition is then used in the abstract service definition at the stockquote.wsdl WSDL file. Finally this service is bind to a concrete address in the file stockquoteservice.wsdl. The arrows present how the files are referenced by each other, file names and usage are presented in bold. Figure 1: Data type, abstract service and service binding definitions in WSDL [CCM01]. In principle the WSDL provides means for platform independence through the extra abstraction level at the message and transport protocol. However, this is partly hampered by the developer specific features in concrete SOAP and WSDL implementations. The situation will probably improve over time. The process of using WSDL for presenting web services can use alternative paths depending on the situation where the technology is used. If we are creating a web service from scratch we should use the WSDL in describing the data to be interchanged and the abstract service model and then the binding to concrete implementation. If we are building from a legacy service, then we can produce the WSDL description based on the legacy implementation. In both cases we can use WSDL to produce the stubs for the client side automatically. WSDL's approach to web service definition has a declarative character. The providers describe their service and the intended means of use for the users. This differs quite a lot from e.g. the negotiation approach used in ebXML. WSDL is an excellent solution for companies providing services for a large set of customers in a market situation resembling monopoly. It is also a good starting point for shifting to an open environment by bringing the legacy applications available on the web. UDDI The Universal Description, Discovery and Integration (UDDI) project aims to develop a common methodology for registry based business service modelling, locating and automated use over Internet. The main forces behind the initiative started at year 2000 are IBM, Microsoft and Ariba. Currently hundreds of companies are involved in the project. [UDD01] UDDI is widely considered to be a central part of the Web services concept [HKT02]. The main role for UDDI is in publishing and locating the services on the web. UDDI development is done by a consortium of industrial companies. The roots of the UDDI development lay in the ebXML project run by several international standardisation organisations and companies in the industry. Some of these companies got frustrated on the slow advancement in the ebSML project and decided to go for their own solution which became UDDI. Both UDDI and ebXML are followers of the XML/edi project that analysed the failure of EDI (Electronic Data Interchange) standard to become dominant in the markets and proposed a set of features that a new XML based cross-enterprise communications standard should include based on the EDI experiences.[Viite taustoihin] [WeD00] The UDDI is intended to provide a global registry service to collect and provide information, in standard XML format, of the business process integration capabilities of various companies. The basic functions provided to companies are 1) publish – How to register a Web Service 2) locate – How to find a registered Web Service that applies to the desired purpose3) bind – How to connect to the service and use it. Companies seeking new business partners, or refreshing their capability knowledge of existing partners, can pose queries on the data base formed of these capability and service type & interface descriptions. The UDDI specification states that the searches are open to anyone without registration to UDDI project. When a potential partner is identified and validated the co-operation transactions can be executed based on the web Services published and described in UDDI format. Myths of UDDI reference is not limited to creating markets among earlier unfamiliar organizations Typically the electronic business networking solution are categorized in two main approaches vertical meaning industry specific approach, such as e.g. RosettaNet, and to horizontal meaning a cross-industry based solution. UDDI belongs to the latter category – it is open to anyone and does not require use of any industry specific standards or presentation formats as long as teh UDDI format is self is followed. UDDI itself is divided to three directories for presenting information published and required to different purposes of use. The developers have selected to follow an analogy from the traditional phonebooks found in every household. UDDI is a horizontal initiative intended to provide a net marketplace that is not restricted to any single business communication technology or branch of industry. Typically UDDI is considered as a service for large or upper medium sized companies. UDDI registers follow an analogy familiar from the phone books, the three directories are called white, yellow, and green pages. White pages provide basic information of the companies such as their names, contact information, industry branch and key services. The yellow pages are organized by standardized industry codes and geographical location. The green pages collect information of the enterprises technical capabilities and means of doing electronic business networking. The registrys are maintained on peer-to-peer basis by several operators, these operator nodes are mirrored from time to time. The UDDI version 2.0 data model defines five data elements (Figure 2) that are used to describe a business, its services and the methods of making business: businessEntity contains descriptive information about the business itself, such as the name and contact information. In the XML document describing a business, this is the top-level element, which can contain one or more businessService elements. businessService describes one service offered by the business. It contains bindingTemplate elements, including possible pointers to respective WSDL concrete description files (Figure 3). Figure 2: UDDI data types. tModel models a technology or service type. Typically, this would correspond to a WSDL abstract description file (a service interface), describing a specification implemented by a given Web service. bindingTemplate references one or more tModels and maps them with a businessService, offering the technical details necessary to use the Web service. Typically, this would correspond to a WSDL concrete description (a service implementation). publisherAssertion describes a relationship between businesses. This is a new addition, introduced in UDDI 2.0. Figure 3: Mapping WSDL description to UDDI data. The project has been active since autumn 2000 and some companies such as Microsoft and IBM are hosting their registery services. Several products and tools for software developers have appeared, many of them working as complete web service toolkits. Here listed are some tools that focus on interacting with UDDI registries [HKT02]: UDDI Software Development Kit by Microsoft has been available since December 2000. It offers Visual Basic components for interacting with the registry. UDDI4J is a public license Java class library made available by IBM. It provides an API to interact with any UDDI registry, including functions for making searches or updating information in the registry. JAXR (Java API for XML Registries) is a standard API for accessing Registries. This library, still under development, attempts to unify accessing UDDI and ebXML Registries at the API level. jUDDI is an open source Java-based implementation of a UDDI registry and a toolkit for developers to build access to UDDI registries within their own applications. Conclusions References [Apa01a] The Apache Software Foundation, "Apache HTTP Server Project", http://httpd.apache.org/, 2001. [Apa01b] The Apache Software Foundation, "Apache SOAP", http://xml.apache.org/soap/, 2001. [Apa01c] The Apache Software Foundation, "Jakarta Tomcat", http://jakarta.apache.org/tomcat/, 2001. [Apa01d] The Apache Software Foundation,"Xalan-Java version 2.1.0", http://xml.apache.org/ xalan-j/, 2001. [Apa01e] The Apache Software Foundation,"Xerces Java Parser Readme", http://xml.apache.org/ xerces-j/, 2001. [ASU86] Aho, Sethi, Ullman, "Compilers, principles, techniques, and tools", Addison-Wesley, Reading, 1986. [Bec00] Bechhofer, S. et al., "An informal description of Standard OIL and Instance OIL", http://www.ontoknowledge.org/oil/downl/oil-whitepaper.pdf, 2000. [BHL01] Berners-Lee T., Hendler J., Lassila O., "The Semantic Web", Scientific American, May 2001, http://www.sciam.com/2001/0501issue/0501berners-lee.html, 2001. [Box01] Don Box, "A Young Person's Guide to The Simple Object Access Protocol: SOAP Increases Interoperability Across Platforms and Languages", http://msdn.microsoft.com/library/periodic/period00/soap0300.htm, 2001. [CCM01] Christensen, Curbera, Meredith, Weerawarana,"Web Services Description Language (WSDL) 1.1", http://msdn.microsoft.com/xml/general/wsdl.asp, 2001. [Com01] Commerce Net, eCo Framework website, Commerce Net, http://eco.commerce.net/, 2001. [DAM01a] DAML organization, "Annotated DAML+OIL (March 2001) Ontology Markup", http://www.daml.org/2001/03/daml+oil-walkthru.html, 2001 [DAM01b] DAML organization,"DAML-S: Semantic Markup For Web Services", http://www.daml.org/services/daml-s/2001/05/daml-s.html, 2001. [Den01] Denker G. et al., "Accessing Information and Services on the DAML-Enabled Web", Proc. Second Int'l Workshop Semantic Web (SemWeb'2001), Hongkong, China, May, 2001. [ebb01] ebXML Business Process Team, "Business Process and Business Information Analysis Overview v1.0", ebXML Org, http://www.ebxml.org/specs/index.htm#technical_reports, 2001. [ebr01] ebXML Registry Project Team, "Using UDDI to find ebXML Registry/Repository", http://www.ebxml.org/specs/rrUDDI.pdf, 2001. [ebt01] ebXML Technical Architecture Team, "Technical Architecture Specification v1.0.4", ebXML Org, http://www.ebxml.org/specs/index.htm#technical_specifications, 2001. [FeM01] Fensel, Musen, "The Semantic Web: A Brain for Humankind", IEEE Intelligent Systems, vol 16, no 2, p. 24-25, 2001. [Fen00?] Fensel D., "Relating Ontology Languages and Web Standards"., http://www.cs.vu.nl/~dieter/ftp/paper/mod2000.pdf, 2000?. [Gla00a] Graham Glass, "The Web services (r)evolution, Part 1 - Applying Web services to applications", http://www-106.ibm.com/developerworks/library/ws-peer1/?dwzone=ws, 2000. [Gla00b] Graham Glass, "The Web services (r)evolution, Part 2 - Hello world, Web service-style", http://www-106.ibm.com/developerworks/library/ws-peer2/?dwzone=ws, 2000. [Gla01a] Graham Glass, "The Web services (r)evolution, Part 3 - How SOAP works", http://www-106.ibm.com/developerworks/library/ws-peer3/?dwzone=ws, 2001. [Gla01b] Graham Glass, "The Web services (r)evolution, Part 4 - Web Services Description Language (WSDL)", http://www-106.ibm.com/developerworks/library/ws-peer4/?dwzone=ws, 2001. [Haa99] Haajanen Jyrki, "Uudelleenkäyttävä ohjelmistoprosessi tutkimusorganisaatiossa", pro gradu, Helsingin yliopisto, Tietojenkäsittelytieteen laitos, C-1999-60, 1999. [Hef01] Heflin J., "Towards the Semantic Web: Knowledge Representation in a Dynamic Distributed Environment"Ph.D. Thesis, University of Maryland, College Park., http://www.cs.umd.edu/projects/plus/SHOE/pubs/#heflin-thesis, 2001. [HeM00] "Hendler J., McGuinness D.", "The DARPA Agent Markup Language'". , IEEE Intelligent Systems, Vol. 15, No. 6, November/December 2000, p 67-73., http://www.computer.org/intelligent/ex2000/pdf/x6067.pdf, 2000. [HKT02] Jyrki Haajanen , Ville Kotovirta, Renne Tergujeff, Robin Berglund, "B2B eBusiness Technology Survey and Evaluation of a Logistics Service Business Case", RESEARCH REPORT TTE1-2002-2, VTT Information Technology, Espoo, 2002. [HoF00] Horrocks I., Fensel D., "The Ontology Inference Layer OIL", http://www.ontoknowledge.org/oil/TR/oil.long.html, 2000. [IBMU02] IBM Corporation, "UDDI Business Registry", https://www-3.ibm.com/services/uddi/protect/registry.html, 2002. [Kot99] Alan Kotok,"XML and EDI Lessons Learned and Baggage to Leave Behind", XML.com, http://www.xml.com/lpt/a/1999/08/edi/index.html, 1999. [Lau99] Laurent, Simon St., "Describing your Data: DTDs and XML Schemas", XML.com, http://www.xml.com/pub/a/1999/12/dtd/, 1999. [MSU02] Microsoft Corporation, "Microsoft UDDI", http://uddi.microsoft.com/, 2002. [MSZ01] McIlraith S., Son T.C. and Zeng H., "Semantic Web Services", IEEE Intelligent Systems, Special Issue on the Semantic Web, Volume 16, No. 2, pp. 46-53, March/April, 2001. [Par00] Parallel Understanding Systems Group, "A SHOE Tutorial", http://www.cs.umd.edu/projects/plus/SHOE/tutorial.html, 2000. [SAA00] SAA Consultants Ltd, "XML Overview", REIMSnet, http://www.reims.net/Resource_Zones/xml/xml_overview.html, 2000. [SPY00] Altova, "DTD & schema dialects", XML Spy, http://www.xmlspy.com/features_schema.html, 2000. [UDD01] UDDI Organization, "UDDI Organization Website", http://www.uddi.org/, 2001. [W3C00a] World Wide Web Consortium, "XHTML™ 1.0: The Extensible HyperText Markup Language", http://www.w3.org/TR/xhtml1/, 2000. [W3C00b] World Wide Web Consortium, "Simple Object Access Protocol (SOAP) 1.1 - W3C Note 08 May 2000", http://www.w3.org/TR/2000/NOTE-SOAP-20000508/, 2001. [W3C00c] World Wide Web Consortium, "XML Protocol Comparisons", http://www.w3.org/2000/03/29-XML-protocol-matrix.html, 2000. [W3C00d] World Wide Web Consortium, "Resource Description Framework (RDF) Schema Specification 1.0", http://www.w3.org/TR/rdf-schema/, 2000. [W3C01a] World Wide Web Consortium, "Extensible Markup Language (XML)", http://www.w3.org/XML/, 2001. [W3C01b] World Wide Web Consortium, "XML Schema", http://www.w3.org/XML/Schema, 2001. [W3C01c] World Wide Web Consortium, "Extensible Style sheet Language (XSL)", http://www.w3.org/Style/XSL/, 2001. [W3C01d] World Wide Web Consortium, "Semantic Web Activity Statement", http://www.w3.org/2001/sw/Activity, 2001. [W3C01e] World Wide Web Consortium, "Web Ontology (WebOnt) Working Group", http://www.w3.org/2001/sw/WebOnt/, 2001. [W3C01f] World Wide Web Consortium, "HyperText Markup Language", http://www.w3.org/MarkUp/, 2001. [W3C01g] World Wide Web Consortium, "HTML Working Group Roadmap", http://www.w3.org/MarkUp/xhtml-roadmap/, 2001. [W3C99a] World Wide Web Consortium, "Resource Description Framework (RDF) Model and Syntax Specification", http://www.w3.org/TR/REC-rdf-syntax/, 1999. [W3C99b] World Wide Web Consortium, "The Cambridge Communiqué", http://www.w3.org/TR/1999/NOTE-schema-arch-19991007, 1999. [W3C99c] World Wide Web Consortium, "HTML 4.01 Specification", http://www.w3.org/TR/html4/, 1999. [W3C99d] World Wide Web Consortium, "Cascading Style Sheets, level 1", http://www.w3.org/TR/REC-CSS1, 1999. [WeD00] David Webber, Anthony Dutton, "Understanding ebXML, UDDI, XML/EDI", XML Org, http://www.xml.org/feature_articles/2000_1107_miller.shtml, 2000. [Wil01] Frederik Willaert, "XML Based Frameworks and Standards for B2B Ecommerce", Katholieke Universiteit Leuven, Masters thesis, http://www.ebxml.org/documents/ebxml-thesis.pdf, 2001.