# Presentation: Y2P4Z5QANJE2JZ2XAB6POKN4TTZN6SIT

## W3C XP Activity

- Ray Denenberg,
- Library of Congress
- December 2000 ZIG Meeting

## The goal of XML Protocol

- Develop technologies allowing  peers to communicate....
- ...in a distributed environment...
- ...using XML as  encapsulation language.
- Extensible and simple messaging format.
- Layered architecture.

## Layering

- “XP supports applications layered on top
- as well as the capability of XP to be layered on top of (or bound to) a variety of underlying protocols.”

## Application Protocols over XP....

- XP

- P3P

- CIRC

- Z39.50

- Dienst/
- OAI

## ...and XP over lower layer protocols

- Application Protocol

- XP

- HTTP

- TCP

## Without HTTP

- Application Protocol

- XP

- TCP

## Over SMTP instead of TCP

- Application Protocol

- XP

- SMTP

## XP Alternatives

- XP

- SOAP

- XML-
- RPC

- XMI

- Eb
- XML

## Components of XP

- Envelope
- Serialization
- RPC
- Binding

## Envelope

- Outermost syntactical construct within which all other syntactical elements of the message are enclosed.
- Described via XML Schema.
- Processing Model.

## Processing Model

-  Defines what it means to properly process an XP envelope or produce a fault.
- Independent of any extensions carried within the envelope.
- Applies both to intermediaries as well as ultimate destinations of an XP envelope.
- Extensible.

## Extensibility

- Application specific payloads inside the XP envelope.
- Reference to application specific payloads outside the XP envelope.
- Nested XP envelopes as application specific data within the XP envelope.
- Reference to XP envelopes as application specific data outside the XP envelope.
- Semantics to indicate to an XP processor which extensions are optional and which are mandatory.

## RPC

- A convention for the content of the envelope when used for RPC (Remote Procedure Call) applications.
- RPC is explicitly supported, but arbitrary messaging patterns and scenarios are implicitly supported.
- (e.g one way)

## RPC Conventions

- Unique specification of the program or object and procedure or method to be called based on URI
- Provisions for matching response messages to request messages for cases in which matching is not provided by the underlying transport protocol

## RPC Conventions (continued)

- The ability to specify the parameters to a call in a request message and the results of a call in a reply messages
- Provisions for specifying errors in a reply message

## Messaging patterns

- RPC
- One way
- Publish-subscribe
- multicast
- permanently and intermittently connected scenarios

## Serialization

- mechanism for serializing data based on data models not directly representable by XML Schema types.
- object graphs and directed labeled graphs
- subordinate relationships known from attachments and manifests.

## HTTP Binding

- “A mechanism for using HTTP transport in the context of an XML Protocol. This does not mean that HTTP  is the only transport mechanism ..., nor that support for HTTP transport is mandatory. ... merely addresses the fact that HTTP transport is expected  to be widely used, .....”

## Intermediaries

- proxies,
- caches,
- store-and-forward hops,
-  gateways

## Not Supported

- Binary
- compression
- transport
- application semantics
- metadata

## XP should provide facilities (e.g. optional header elements) to encourage a common approach to:

- authentication,
- encryption,
-  reliable delivery,
-  sessions,
- transactions

## Caution: Fictitious Example

- OST /StockQuote HTTP/1.1
-            Host: www.stockquoteserver.com
-            Content-Type: text/xml; charset="utf-8"
-            Content-Length: nnnn
-            XPAction: "Some-URI"
-  <XP-ENV:Envelope
-          <XP-ENV:Body>
-               <m:GetLastTradePrice xmlns:m="Some-URI">
-                       <symbol>DIS</symbol>
-              </m:GetLastTradePrice>
-          </XP-ENV:Body>
- </XP-ENV:Envelope>

## Schedule

*September 2000*: Working Group formed
*October 2000*: requirements Working Draft
*January 2001:*  Initial Working Draft for XP
*April 2001*: Candidate Recommendation
*August 2001*: Proposed Recommendation *September 2001*: Recommendation