Web Services Event Descriptions (WS-EventDescriptions)

Editor's Draft $Date: 2010/01/12 17:14:28 $

Latest version:
http://www.w3.org/TR/ws-event-descriptions
Previous version:
http://www.w3.org/TR/2009/WD-ws-event-descriptions-20090317
Editors:
Doug Davis, IBM
Ashok Malhotra, Oracle
Katy Warr, IBM
Wu Chou, Avaya

Abstract

This specification describes a mechanism by which an endpoint can advertise the structure and contents of the events it might generate.

Status of this Document

This document is an editors' copy that has no official standing.

Table of Contents

1 Composable Architecture
2 Introduction
   2.1 Requirements
3 Notations and Terminology
   3.1 Notational Conventions
   3.2 Considerations on the Use of Extensibility Points
   3.3 XML Namespaces
   3.4 Terminology
   3.5 Compliance
4 Advertising Event Information
   4.1 Event Types & Event Descriptions
        4.1.1 Retrieving Event Descriptions
        4.1.2 Bindings for Event Descriptions
5 Acknowledgements
6 References
   6.1 Normative References
   6.2 Informative References

Appendices

A XML Schema for EventDescriptions
B Change Log


1 Composable Architecture

By using the XML, SOAP [SOAP11], [SOAP12], and WSDL [WSDL11] extensibility models, the Web service specifications (WS-*) are designed to be composed with each other to provide a rich set of tools to provide security in the Web services environment.

2 Introduction

This specification describes a mechanism by which an endpoint can advertise the structure and contents of the events it might generate.

3 Notations and Terminology

This section specifies the notations, namespaces, and terminology used in this specification.

3.1 Notational Conventions

The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC 2119].

This specification uses the following syntax to define normative outlines for messages:

  • The syntax appears as an XML instance, but values in italics indicate data types instead of values.

  • Characters are appended to elements and attributes to indicate cardinality:

    • "?" (0 or 1)

    • "*" (0 or more)

    • "+" (1 or more)

  • The character "|" is used to indicate a choice between alternatives.

  • The characters "(" and ")" are used to indicate that contained items are to be treated as a group with respect to cardinality or choice.

  • The characters "[" and "]" are used to call out references and property names.

  • Ellipsis (i.e. "...") indicate a point of extensibility.

  • XML namespace prefixes (see Table 3-1) are used to indicate the namespace of the element being defined.

This specification can be used in terms of XML Information Set (Infoset) [XML Infoset], even though the specification uses XML 1.0 terminology. Valid Infoset for this specification is the one serializable in XML 1.0, hence the use of XML 1.0.

3.5 Compliance

An implementation is not compliant with this specification if it fails to satisfy one or more of the MUST or REQUIRED level requirements defined herein. A SOAP Node MUST NOT use the XML namespace identifier for this specification (listed in 3.3 XML Namespaces) within SOAP Envelopes unless it is compliant with this specification.

Normative text within this specification takes precedence over the XML Schema and WSDL descriptions, which in turn take precedence over outlines, which in turn take precedence over examples.

Unless otherwise noted, all IRIs are absolute IRIs and IRI comparison MUST be performed according to [RFC 3987] section 5.3.1.

4 Advertising Event Information

There are many use cases in which it is necessary for an endpoint to advertise the structure and contents of the events that it might generate. For example, a subscriber might wish to know the shape of the events that are generated in order to properly formulate a filter to limit the number of notifications that are transmitted, or to ensure it can successfully process the type of events that are transmitted.

There are many ways in which an endpoint could describe and advertise the structure of the events for which it will issue notifications. To provide a basic level of interoperability, this specification defines the following mechanism, in 4.1 Event Types & Event Descriptions, for describing and advertising event information.

This specification only defines a mechanism by which events can be described and advertised. How these events, and the properties of these events that are described within an Event Descriptions document, are serialized for transmission is out of scope of this specification; but are expected to be fully described in any specification that uses this one.

4.1 Event Types & Event Descriptions

A key concept in the description and advertisement of event information is the "Event Type". An Event Type is a description of the syntactic structure and value space of the set of events that share that type. Event Types are independent of the pub/sub protocol used and the format of the notifications used to transmit those events.

Event Types are described within an EventDescriptions element where they contain a complete description of an event. A key aspect of this description is the associated XML Schema Global Element Declaration (GED) for each event. EventDescriptions element has the following form:

The XML Schema for the EventDescriptions element can be found in A XML Schema for EventDescriptions. The following describes additional, normative constraints on the outlined listed above:

/wsevd:EventDescriptions

This element contains the declarations of all the Event Types that apply to a given context.

/wsevd:EventDescriptions@targetNamespace

This attribute defines the namespace affiliation of the Event Types declared within the EventDescriptions element. Its value MUST be an absolute IRI [RFC 3987]. It SHOULD be dereferenceable.

/wsevd:EventDescriptions/wsevd:types

This element encloses data type definitions that are relevant to the declared Event Types.

/wsevd:EventDescriptions/wsevd:types/xs:schema

As described earlier, an Event Type is defined by a Global Element Declaration (GED) in XML Schema. This element contains collections of imported and inlined schema components that describe the GEDs that are used to define Event Types.

/wsevd:EventDescriptions/wsevd:eventType

This element describes a specific Event Type.

/wsevd:EventDescriptions/wsevd:eventType/@name

This attribute provides a name for this Event Type which MUST be unique amongst all the Event Types defined by the enclosing wsevd:EventDescriptions element. In conjunction with a Prefix that is associated with the value of /wsevd:EventDescriptions/@targetNamespace namespace URI, the value of this attribute MAY be used as the LocalPart of a QName that identifies this Event Type outside the context of the enclosing wsevd:EventDescriptions element.

/wsevd:EventDescriptions/wsevd:eventType/@element

This attribute refers to a GED defined or imported in the /wsevd:EventDescriptions/wsevd:types element. The referenced GED serves as the definition of this Event Type.

/wsevd:EventDescriptions/wsevd:eventType/@actionURI

This OPTIONAL attribute provides a value for the 'action' property which, depending upon the format of the notification used to transmit the Event, serve as a potential aid to identifying the semantics implied by the message. When not present the implied value of this attribute is the concatenation of the wsevd:EventDescriptions' targetNamespace attribute and the wsevd:eventType name attribute separated by the '/' character.

The following is an example of an EventDescriptions element that could serve as a description of the Event Type used in Example 4-2.

Lines (12-14) describe an Event Type with a QName of "{http://www.example.org/oceanwatch/notifications}:WindReportEvent". The GED for this Event Type is defined on line (08) as being of type "{http://www.example.org/oceanwatch}:WindReportType".

The sample EventDescriptions in Example 4-1 might describe the following notification:

4.1.1 Retrieving Event Descriptions

Although there are many ways in which an endpoint can make its EventDescriptions available, this specification RECOMMENDS the use of the mechanisms described in WS-MetadataExchange [WS-MetadataExchange]. This specification defines the following IRI to serve as the Dialect IRI for the wsevd:EventDescriptions element.

The value of the @Identifier attribute for this Metadata Section MUST be equal to the value of its wsevd:EventDescriptions/@targetNamespace.

5 Acknowledgements

This specification has been developed as a result of joint work with many individuals and teams, including: Ashok Malhotra (Oracle Corp.), Asir Vedamuthu (Microsoft Corp.), Bob Freund (Hitachi, Ltd.), Doug Davis (IBM), Fred Maciel (Hitachi, Ltd.), Geoff Bullen (Microsoft Corp.), Gilbert Pilz (Oracle Corp.), Greg Carpenter (Microsoft Corp.), Jeff Mischkinsky (Oracle Corp.), Katy Warr (IBM), Li Li (Avaya Communications), Mark Little (Red Hat), Prasad Yendluri (Software AG), Ram Jeyaraman (Microsoft Corp.), Sreedhara Narayanaswamy (CA), Sumeet Vij (Software AG), Vikas Varma (Software AG), Wu Chou (Avaya Communications), Yves Lafon (W3C).

6 References

6.1 Normative References

RFC 2119
Key words for use in RFCs to Indicate Requirement Levels , S. Bradner, Author. Internet Engineering Task Force, March 1997. Available at http://www.ietf.org/rfc/rfc2119.txt.
RFC 3987
Internationalized Resource Identifiers (IRIs) , M. Duerst and M. Suignard, Authors. Internet Engineering Task Force, January 2005. Available at http://www.ietf.org/rfc/rfc3987.txt.

6.2 Informative References

SOAP11
W3C Note, "Simple Object Access Protocol (SOAP) 1.1" , D. Box, et al, Editors. World Wide Web Consortium (W3C), 8 May 2000. Available at http://www.w3.org/TR/2000/NOTE-SOAP-20000508/.
SOAP12
W3C Recommendation, "SOAP Version 1.2 Part 1: Messaging Framework" , M. Gudgin, M. Hadley, N. Mendelsohn, J-J. Moreau, H. Frystyk Nielson, Editors. World Wide Web Consortium (W3C), 27 April 2007. Available at http://www.w3.org/TR/soap12-part1/.
WS-Addressing
W3C Recommendation, "Web Services Addressing 1.0 (WS-Addressing)" , M. Gudgin, M. Hadley, T. Rogers, Editors. World Wide Web Consortium (W3C), 9 May 2006. Available at http://www.w3.org/TR/ws-addr-core.
WS-MetadataExchange
W3C Working Group Draft, "Web Services Metadata Exchange (WS-MetadataExchange) 1.1" , D. Davis, et al., Editors. World Wide Web Consortium (W3C), 15 September 2009. Available at http://www.w3.org/TR/ws-metadata-exchange.
WSDL11
W3C Note, "Web Services Description Language (WSDL) 1.1" , E. Christensen, et al., Editors. World Wide Web Consortium (W3C), 15 March 2001 Available at http://www.w3.org/TR/2001/NOTE-wsdl-20010315.
XML Infoset
W3C Recommendation, "XML Information Set (Second Edition)" , J. Cowan, R. Tobin, Editors. World Wide Web Consortium (W3C), 4 February 2004. Available at http://www.w3.org/TR/xml-infoset.
XMLSchema - Part 1
W3C Recommendation, "XML Schema Part 1: Structures (Second Edition)" , H. Thompson, et al., Editors. World Wide Web Consortium (W3C), 28 October 2004. Available at http://www.w3.org/TR/xmlschema-1/.
XMLSchema - Part 2
W3C Recommendation, "XML Schema Part 2: Datatypes (Second Edition)" , P. Biron, A. Malhotra, Editors. World Wide Web Consortium (W3C), 28 October 2004. Available at http://www.w3.org/TR/xmlschema-2/.

A XML Schema for EventDescriptions

A normative copy of the XML Schema [XMLSchema - Part 1], [XMLSchema - Part 2] description for the EventDescriptions element can be retrieved from the following address:

A non-normative copy of the XML schema is listed below for convenience.

<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'
           targetNamespace='http://www.w3.org/2009/09/ws-evd'
           elementFormDefault='qualified' attributeFormDefault='unqualified'>
  <xs:element name='EventDescriptions'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='types'>
          <xs:annotation>
            <xs:documentation>Data type definitions that are relevant to described notifications.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
            </xs:sequence>
            <xs:anyAttribute namespace='##other' processContents='lax'/>
          </xs:complexType>
        </xs:element>
        <xs:element name='eventType' maxOccurs='unbounded'>
          <xs:complexType>
            <xs:sequence>
              <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
            </xs:sequence>
            <xs:attribute name='name' type='xs:NCName' use='required'/>
            <xs:attribute name='element' type='xs:QName' use='required'/>
            <xs:attribute name='actionURI' type='xs:anyURI' use='optional'/>
            <xs:anyAttribute namespace='##other' processContents='lax'/>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='targetNamespace' type='xs:anyURI' use='required'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>
</xs:schema>

B Change Log

Data Author Description
2009/03/04 DD Initial version