![]() |
IMS General Web Services Base Profile Version 1.0 Final Specification |
Copyright © 2005 IMS Global Learning
Consortium, Inc. All Rights Reserved.
The IMS Logo is a registered trademark of IMS/GLC
Document Name: IMS General Web Services Base Profile
Revision: 19 December 2005
| Date
Issued: |
19
December 2005 |
| Latest
version: |
http://www.imsglobal.org/gws/gwsv1p0/imsgws_profilesv1p0.html |
| Register
comments or implementations: |
http://www.imsglobal.org/developers/ims/imsforum/categories.cfm?catid=20 |
|
IPR and Distribution Notices Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation. IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on IMS's procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf. Copyright © IMS Global Learning Consortium 2006. All Rights Reserved. If you wish to distribute this document or use this document to implement a product or service, you must complete a valid license registration with IMS and receive an email from IMS granting the license. To register, follow the instructions on the IMS website: http://www.imsglobal.org/specificationdownload.cfm. This document may be copied and furnished to others by Licensee organizations registered on the IMS website provided that the above copyright notice and this paragraph are included on all such copies. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to IMS, except as needed for the purpose of developing IMS specifications, under the auspices of a chartered IMS work group. Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/gws/gwsv1p0/gwsv1p0speclicense.html. The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns. THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION. |
|
The General Web Service Base Profile provides a basic structure for the definition of Web Services. It consists of a set of non-proprietary Web services specifications, along with clarifications and amendments to those specifications that promote interoperability. The General Web Services Base Profile addresses the most common problems experienced when implementing web service specifications. The General Web Services Base Profile defines the selection of mechanisms within referenced specifications that are well understood, widely implemented and useful.
The General Web Services Base Profile promotes interoperability for web service based specification implementations on different software and vendor platforms. The Base Profile focuses on a core set of web service specifications and the most common problems experienced implementing the identified web service specifications. It is not a goal of the General Web Services Base Profile to create a plug-and-play architecture for web services or to guarantee complete interoperability. The General Web Services Base Profile addresses interoperability in the application layer, in particular, the description of behaviors exposed via Web Services.
The General Web Service Base Profile is derived from the Web Services Interoperability Basic Profile v1.1 and the Web Services Interoperability Simple SOAP Binding Profile v1.0. The IMS Global Learning Consortium (IMS/GLC) recommendations for the General Web Service Base Profile are to adopt:
The General Web Service Base Profile can be extended by the adoption of one or more support General Web Service profiles. Other IMS General Web Service documents describe profiles for Addressing (transport-neutral web service addressing), Attachments (sending non-XML documents with the SOAP messages) and Security (secure data exchange).
In principle, the SOAP-based binding for the web services supports many communications messaging models (the Information Model for an IMS/GLC specification is defined independently of the messaging nature, i.e., this is determined by the form of the Web Services Description Language binding). At the current time only one messaging model is supported:
Further messaging models will be added as and when required, i.e., asynchronous, polled, and publish and subscribe. There are three methods by which the functional capability of the base profile can be extended:
The IMS General Web Service documentation is augmented with a substantial set of support tools that enables organizations to create their own Web Services Description Language bindings based upon the IMS General Web Service. Other materials enable .NET and J2EE implementations to be built based upon reference implementations of the IMS General Web Service.
The objective of the General Web Services activity is to provide a framework for guiding project teams looking to use web services as part of IMS Global Learning Consortium (IMS/GLC) specification development. A General Web Services service binding will provide a methodology and an application profile that meets the following criteria:
The General Web Services Base Profile (GWSBP) provides a basic structure for the definition of Web Services. It consists of a set of non-proprietary Web Services specifications, along with clarifications and amendments to those specifications that promote interoperability. The General Web Services Base Profile addresses the most common problems experienced implementing web service specifications. The General Web Services Base Profile defines the selection of mechanisms within referenced specifications that are well understood, widely implemented and useful. The General Web Services Base Profiles will contain syntax conventions consistent with IMS Specification Development Methodology [SpecDev, 03] and Abstract Framework [AbsASCs, 03], [AbsGloss, 03], [AbsWhite, 03].
The General Web Services Base Profile promotes interoperability across web service based specification implementations on different software and vendor platforms. The Base Profile is focused on a core set of web service specifications and the most common problems experienced implementing the identified Web Service specifications. It is not a goal of the General Web Services Base Profile to create a plug-and-play architecture for web services or to guarantee complete interoperability. The General Web Services Base Profile addresses interoperability in the application layer, in particular, the description of behaviors exposed via Web Services. The General Web Services Base Profile assumes the interoperability of the lower layer protocols is sufficient.
Included in this document is a set of recommendations and best practices including how to extend the General Web Services Base Profile. The extensions will have guidance for creating Web Services binding for the Abstract Framework's common services layer such as error handling, security, manifest, context and routing. IMS/GLC has defined a complementary set of profiles that build upon the Base Profile to incorporate more of the Web Services standards and specification developed by the World Wide Web Consortium (W3C). Therefore, this document should be read in conjunction with the set of IMS General Web Services extension profiles [GWS, 05a], [GWS, 05b], [GWS, 05c] and the IMS General Web Services WSDL Binding Guidelines [GWS, 05d]. The terms of reference for the creation of both documents are defined in the original project charter [GWS, 03a].
The structure of this document is:
| [AbsASCs,
03] |
IMS
Abstract Framework: Applications, Services & Components
v1.0, Ed. C.Smythe, IMS/GLC, July
2003. |
| [AbsGloss, 03] |
IMS
Abstract Framework: Glossary v1.0, Ed. C.Smythe,
IMS/GLC, July 2003. |
| [AbsWhite, 03] |
IMS
Abstract Framework: White Paper v1.0, Ed. C.Smythe,
IMS/GLC, July 2003. |
| [APG,
05a] |
IMS
Application Profile Guidelines Whitepaper: Part 1 Management
Overview, S.Wilson and K.Riley, Version 1.0,
IMS/GLC, October 2005. |
| [APG,
05b] |
IMS
Application Profile Guidelines Whitepaper: Part 2 Technical
Manual, S.Wilson and K.Riley, Version 1.0,
IMS/GLC, October 2005. |
| [BPEL,
03] |
Business Process Execution Language for Web
Services, T.Andrews, F.Curbera, H.Dholakia, Y.Goland,
J.Klein, F.Leymann.K.Liu, D.Roller, D.Smith, S.Thatte,
I.Trickovic and S. Weerawarana, V1.1, BEA Systems, IBM,
Microsoft, SAP and Siebel Systems, May 2003. |
| [Cockburn, 01] |
Writing Effective Use-case,
A.Cockburn, Addison-Wesley, 2001, ISBN
0-201-70225-8. |
| [ebXML,
01] |
Message Service Specification ebXML
Transport, Routing & Packaging, ebXML,
Version 1.0, May 2001. |
| [GWS,
03a] |
General Web Services Project Team
Charter, C.Schroeder, R.Kleinman and S.Griffin,
IMS/GLC, June 2003. |
| [GWS,
05a] |
IMS
General Web Services Addressing Profile Final Release,
C.Schroeder, J.Simon and C.Smythe, V1.0 IMS/GLC,
December 2005. |
| [GWS,
05b] |
IMS
General Web Services Attachments Profile Final Release,
C.Schroeder, J.Simon and C.Smythe, V1.0 IMS/GLC,
December 2005. |
| [GWS,
05c] |
IMS
General Web Services Security Profile Final Release,
C.Schroeder, J.Simon and C.Smythe, V1.0 IMS/GLC,
December 2005. |
| [GWS,
05d] |
IMS
General Web Services WSDL Binding Guidelines Final
Release, C.Schroeder, J.Simon and C.Smythe, V1.0
IMS/GLC, December 2005. |
| [GWS,
05e] |
IMS
Binding Auto-generation Toolkit Manual, C.Smythe, V1.0
IMS/GLC, December 2005. |
| [GWS,
05f] |
IMS
General Web Services UML to WSDL Binding Auto-generation
Guidelines Public Draft, C.Schroeder, S.Raju and C.Smythe,
V1.0 IMS/GLC, January 2005 |
| [MTOM,
05] |
SOAP Message Transmission Optimization
Mechanism, http://www.w3.org/TR/2004/CR-soap12-mtom-20040826/,
August 2004. |
| [SOAP,
01a] |
SOAP Messages with Attachments,
W3C, W3C Note 11, December 2000. |
| [SOAP,
03a] |
SOAP Version 1.2 Part 1: Messaging
Framework, W3C, W3C Final Specification, June
2003. |
| [SOAP,
03b] |
SOAP Version 1.2 Part 2: Adjuncts,
W3C, W3C Final Specification, June 2003. |
| [SpecDev,
03] |
IMS
Specification Development Methods & Best Practices Draft
v5.0, C.Smythe, IMS/GLC, Sept 2003. |
| [WSA,
03] |
Web
Services Architecture, D.Booth, H.Haas, F.McCabe,
E.Newcomer, M.Champion, C.Ferris and D.Orchard, http://www.w3.org/TR/ws-arch/
W3C, W3C Working Draft, August 2003. |
| [WSAddress, 04] |
W3C
WS-Addressing Submission, http://www.w3.org/Submission/2004/SUBM-ws-addressing-20040810,
W3C, August 2004. |
| [WSDL,
01] |
Web
Services Description Language, http://www.w3.org/TR/2001/NOTE-wsdl-20010315,
Version 1.1, W3C, W3C Note, March 2001. |
| [WSDL,
04] |
Web
Services Description Language, Version 2.0,
W3C, W3C Working Draft 3, August 2004. |
| [WSI,
03] |
Web
Services Interoperability Basic Profile Version 1.0a, Eds
K.Ballinger, D.Ehnebuske, M.Gudgin, M.Nottingham and P.Yendluri,
Web Services-Interoperability Organization, August
2003. |
| [WSI,
04a] |
Web
Services Interoperability Basic Profile Version 1.1, Eds
K.Ballinger, D.Ehnebuske, C.Ferris, M.Gudgin, C.K.Liu,
M.Nottingham and P.Yendluri, Web Services-Interoperability
Organization, August 2004. |
| [WSI,
04b] |
WS-I Attachments Profile Version 1.0,
Eds C.Ferris, A.Karmarkar and C.K.Liu, Web
Services-Interoperability Organization, August
2004. |
| [WSI,
04c] |
WS-I Conformance Claim Attachment Mechanisms
Version 1.0, Eds M.Nottingham and C. von Riegen, Web
Services-Interoperability Organization, November
2004. |
| [WSI,
04d] |
WS-I Simple SOAP Binding Profile Version
1.0, Ed M.Nottingham, Web Services-Interoperability
Organization, August 2004. |
| [WSR,
03] |
Web
Services Reliability (WS-Reliability), Version 1, OASIS
Specification, OASIS, January 2003. |
| [XML,
04] |
Extensible Markup Language (XML) 1.0 (Third
Edition), T.Bray, J.Paoli, C.M.Sperberg-McQueen, E.Maler
and F.Yergeau, W3C, W3C Recommendation, February
2004. |
| [XSD,
01] |
XML
Schema Part 0: Primer, Ed. D.C.Fallside, W3C, W3C
Recommendation, May 2001. |
All IMS service-oriented specifications will be defined in the context of the IMS Abstract Framework [AbsWhite, 03], [AbsASC, 03], [AbsGloss, 03]. Web services are one possible binding of an IMS service-oriented specification. Section 4 of this document describes how an IMS specification as defined by an Information Model is related to web services through the appropriate 'Infrastructure Binding'.
The IMS International Conformance Program is responsible for defining how a particular information model and binding is constrained to support a particular domain in the form of an Application Profile Guidelines [APG, 05a], [APG, 05b]. Support for Conformance Testing will be added where appropriate, e.g., the WS-I enables conformance statements to be added to a WSDL file.
The IMS Binding Auto-generation Toolkit document describes how the Unified Modelling Language (UML) is to be used to document an IMS information model [GWS, 05e]. The UML description is designed to facilitate the corresponding bindings, i.e., the UML description is not designed from the perspective of implementation as an Application Programming Interface (API). The UML description is also made available as an XML Metadata Interface (XMI) file; this enables tools to import the UML description and generate the corresponding code stubs. IMS has developed XML Stylesheet Language Transformations (XSLT) files to support automated UML conversion to WSDL, etc. The usage of these XSLTs and the corresponding tool is explained in the IMS Binding Auto-generation Toolkit Manual [GWS, 05e].
The Web Service Architecture (WSA) is a normative document that seeks to provide a context and model for understanding Web services and to facilitate placing Web services specifications and technologies within a larger Web Services framework and with other technologies outside of WSA. The WSA's goal is to promote interoperability through the common definition of a web service and its core concepts and relationships. The purpose of WSA is not to specify how Web services are implemented or to impose restrictions on combination or coordination of Web services. WSA provides discussion of the WSA's core concepts and relationships from various perspectives. Where appropriate, IMS will use the WSA in the IAF.
For more information on the Web Services Architecture, go to W3C Web Services Architecture (http://www.w3.org/TR/ws-arch/).
The IMS GWS Base Profile is based upon the WS-I Basic Profile v1.1 [WSI, 04a] and the WS-I Simple SOAP Binding Profile v1.0 [WSI, 04d]. The WS-I Basic Profile is shown in Table 2.1.
It is recognized that SOAP v1.2 and WSDL v2.0 are available as later versions of the SOAP and WSDL specifications respectively. SOAP v1.2 and WSDL v2.0 will be considered for future revisions.. It should be noted, that from the perspective of adopted specifications, the combination of the WS-I Basic Profile v1.1 and Simple SOAP Binding Profile v1.0 is identical to the WS-I Basic Profile v1.0a [WSI, 03].
XML 1.0 (Third Edition) is the core data representation technology adopted for the binding of IMS specifications [XML, 04]. An IMS data-model oriented information model can be defined as a hierarchy. Hierarchical models are convenient for representing data consisting of many elements and sub-elements. XML is perfectly suited for representing hierarchical models.
XML Schema Definition (XSD) is the primary XML binding control document format of IMS (at present these bindings are working to the May 2001 version of XML Schema) [XSD, 01]. The XSD defines elements, their content models, and attributes. It also defines the standard IMS vocabularies. The XSD defines the element types and attribute groups separately from the elements. The key recommendations for XML Schema with respect to the Base Profile are:
SOAP is a messaging protocol for XML documents which can be used for exchanging structured and typed information between peers in a decentralized, distributed environment [SOAP, 03a], [SOAP, 03b]. It is a stateless, one-way message exchange mechanism, but applications can create more complex interaction patterns (e.g., request/response, request/multiple responses, etc.) by combining such one-way exchanges with features provided by an underlying transport protocol and/or application-specific information. SOAP provides the framework by which application-specific information may be conveyed in an extensible manner. Also, SOAP provides a full description of the expected actions taken by a SOAP processor on receiving a SOAP message.
A SOAP message contains two SOAP-specific sub-elements within the overall Envelope: the 'Header' and 'Body'. The contents of these elements are application defined and not a part of the SOAP specifications, although the latter does have something to say about how such elements must be handled. The 'Header' is optional. Headers have been designed in anticipation of various uses for SOAP, many of which will involve the participation of other SOAP processing nodes along a message's path from a sender to an ultimate receiver, to allow SOAP processors to exchange information to provide value-added services. These form the mechanism by which SOAP messages may be extended in an application-specific manner. The 'Body' is the mandatory element within an Envelope and this is where the main information conveyed in a SOAP message must be carried. The immediate child elements of a 'Header' are called header blocks, and represent some logical grouping of data that can be targeted at SOAP nodes encountered in the path of a message from a sender to a receiver.
The SOAP envelope is the container for the messages to be exchanged between the systems. These messages need to be physically transmitted across the communications system using an appropriate transport mechanism. In many cases the Hypertext Transport Protocol (HTTP) is used as this transport mechanism. The key recommendations for XML Schema with respect to the Base Profiles are:
Web Services Addressing (WS-Addressing) defines two interoperable constructs that convey information that is typically provided by transport protocols and messaging systems. These constructs normalize this underlying information into a uniform format that can be processed independently of transport or application. The two constructs are 'endpoint references' and 'message information' headers. Both of these constructs are designed to be extensible and re-usable so that other specifications can build on and leverage endpoint references and message information headers.
A Web service endpoint is a (referenceable) entity, processor, or resource where Web service messages can be targeted. Endpoint references convey the information needed to identify/reference a Web service endpoint, and may be used in several different ways: endpoint references are suitable for conveying the information needed to access a Web service endpoint, but are also used to provide addresses for individual messages sent to and from Web services. To deal with this last usage case this specification defines a family of message information headers that allows uniform addressing of messages independent of underlying transport. These message information headers convey end-to-end message characteristics including addressing for source and destination endpoints as well as message identity.
Attachments for SOAP messages are available in several forms:
The equivalent attachments recommendations for IMS GWS are defined in the IMS GWS Attachments Profile document [GWS, 05b].
A WSDL document defines services as collections of network endpoints, or ports. In WSDL, the abstract definition of endpoints and messages is separated from their concrete network deployment or data format bindings. This allows the reuse of abstract definitions: messages, which are abstract descriptions of the data being exchanged, and port types that are abstract collections of operations. The concrete protocol and data format specifications for a particular port type constitute a reusable binding. A port is defined by associating a network address with a reusable binding and a collection of ports defines a service. Hence, a WSDL document uses the following elements in the definition of network services:
The key recommendations for WSDL with respect to the Base Profile are:
WS-Security defines a standard way to incorporate security information into a SOAP message using existing security standards for confidentiality, integrity, non-repudiation, authentication and authorization. WS-Security provides a method for representing security information in a SOAP message. WS-Security defines a way to pass security tokens, such as a simple username, SAML, X.509 certificates and Kerberos tickets, a mechanism using XML Signature to digitally sign all or part of a SOAP message, a mechanism using XML Encryption to encrypt part of a SOAP message and a method for attaching signature and encryption headers to a SOAP message. The equivalent security profile for IMS GWS is defined in the IMS GWS Security Profile [GWS, 05c].
IMS plans to adopt the appropriate message and service choreography specifications, as opposed to creating its own. The underlying message choreography support in the GWS bindings are detailed in Section 5 of this document. Reliable messaging is only supported as a feature of the underlying communications infrastructure, e.g., through the usage of the Transmission Control Protocol (TCP). When stable, the following specifications will be adopted:
The IMS GWS Base Profile is defined in Table 3.1. The only difference between this profile and that of the WS-I Basic Profile/Simple SOAP Binding Profile is that the UDDI specification is not included in the profile.
Table 3.2 summarizes the set of rules used in the WS-I Basic Profile v1.1 and their equivalent adoption status for the IMS GWS Base Profile. Within Table 3.2 the following conventions are used: