- From: Mark Nottingham <mnot@akamai.com>
- Date: Wed, 15 Aug 2001 15:29:08 -0700
- To: ietf-provreg@cafax.se
- Cc: XML Distributed Applications List <xml-dist-app@w3.org>
[ I'm posting this message to both the PROVREG
<ietf-provreg@cafax.se> and XMLP <xml-dist-app@w3.org> lists, to
promote discussion. AFAIK both lists accept posts from
non-subscribed addresses; please trim the distribution if your
message would only be interesting to one, or if the discussion
starts to take up too much bandwidth. Thanks. ]
I got up at the PROVREG meeting in London to point out some
similarities in that group's work and the XMLP WG in the W3C.
This note is intended to generate discussion of SOAP as a potential
framework for use by PROVREG, as well as to stimulate feedback to the
XML Protocol WG regarding SOAP's suitability for such uses.
* Introduction
The IETF Provisioning Registry (PROVREG) Working Group has been
chartered [1] to provide a "protocol that enables a registrar to
access multiple registries." Furthermore, the group "... will
consider support for multiple operational choices, such as for
transport and security; it will create no new transport or security
protocols."
The W3C XML Protocol Working Group has been chartered [2] to provide
a framework for XML messaging, using SOAP [3] as a starting point.
Although SOAP is commonly believed to be only
'RPC-using-XML-over-HTTP', the group is bound to deliver
transport-agnostic services which enable a wide variety of
applications beyond RPC.
Superficially, it appears that XMLP may provide a framework with
which to implement a PROVREG protocol, with a number of advantages
and efficiencies, as such uses are within the scope of its charter.
This note seeks to examine the requirements of PROVREG from the
perspective of SOAP, both to bring XMLP's work to the attention of
PROVREG, and to generate feedback to XMLP about the suitability of
SOAP for uses such as PROVREG's. Additionally, it attempts to point
out the requirements and context of PROVREG to XMLP, in the hope that
it will serve as a use case for XMLP.
This note does not propose a SOAP-based registry protocol, and only
represents the thoughts of the author. Discussion should be directed
to the provreg mailing list [4] and the xml-dist-app [5] mailing list
as appropriate.
* XMLP Context and Deliverables
The XML Protocol Working group is charged with delivering a framework
for XML messaging, based on the SOAP submission. There are four
defined deliverables;
1. A Message Envelope, which contains the XML message
2. A Serialization Mechanism, to represent data structures as XML
3. A Transport Binding, to move messages around; initially, HTTP
4. An RPC Convention, to enable applications which require this common
funtionality
However, the charter implies a more abstract architecture which, in
combination with these basic deliverables, has the following
attributes;
- A message processing model, which allows common functionality to be
modularised.
SOAP's processing model enables common functions like encryption,
application of policy, caching, message routing, etc. to be
standardized as Modules. This promotes interoperability and reduces
the amount of replicated code - and specification - necessary to
enable a service.
Currently, a few modules have been defined, including one for XML
Digital Signatures [6], which also encompasses encryption, and
SOAP-RP [7], which enables multi-hop routing in SOAP.
- Intermediary targetting, to allow message processing to be
distributed across nodes.
SOAP is unique, in that it allows message functionality to be
targetted at particular intermediary nodes. This allows, for
example, a caching Module to be applied at a particular place in
the network, or likewise a non-repudiation Module to be invoked
between two unknown parties. SOAP's intermediary targetting
operates as a modification of the message processing model (the
'actor' attribute).
- Transport abstraction, allowing XML messages to be bound to and
moved around by a variety of protocols.
One of the core requirements for XML Protocol is to be able to bind
messages to an arbitrary "underlying protocol", whether it be HTTP,
BEEP, TCP or UDP. This, more than anything, frames XMLP (and
therefore SOAP) as an XML messaging framework, rather than a
purpose-specific protocol. SOAP originally defined a HTTP binding;
more recently, a BEEP binding [8] has been drafted, with discussion
of bindings to TCP and SMTP in the near future.
- A framework for message exchange patterns, to allow business
protocols to be defined.
One of the consequences of transport abstraction is the ability to
build application message exchange patterns that are separate from
the underlying protocols' messaging patterns. For example, while
HTTP has a request-response pattern, SOAP applications may use it
as part of a larger, orchestrated service that spans multiple HTTP
connections or even multiple underlying protocols.
- A means of propogating status and error information, through
Faults.
* PROVREG Context and Requirements
PROVREG is charged with delivering a business protocol that enables
registration. The target application is the registration of domain
names, but the group is also considering other uses of a registration
mechanism.
PROVREG's preliminary requirements [9] include:
Communications Interfaces
Registries, registrars, and registrants interact using a wide
spectrum of communications interfaces built upon multiple
protocols, including transport layer protocols such as TCP and
application layer protocols such as SMTP. The protocol SHOULD be
serviceable over multiple standard communications protocols.
Extensibility
Extensibility is a measure of the extent to which a protocol can
be adapted for future uses that were not readily evident when the
protocol was originally designed. The protocol SHOULD provide
features that at a minimum allow for the management of new object
types without requiring revisions to the protocol itself.
The initial specification of a PROVREG protocol is the Extensible
Provisioning Protocol (EPP) [10]. EPP describes itself as;
EPP is an XML protocol that can be layered over multiple transport
protocols. Protected using lower-layer security protocols, clients
exchange identification, authentication, and option information,
and then engage in a series of client-initiated command-response
exchanges. All EPP commands are atomic and idempotent.
EPP provides four basic service elements: service discovery,
commands, responses, and an extension framework that supports
definition of managed objects and the relationship of protocol
requests and responses to those objects.
EPP abstracts out the transport by allowing multiple mappings; the
first [11] is onto TCP. Establishing a mapping to BEEP has been
discussed.
* Recommendations
Both of these efforts are works in progress; XMLP is more than
halfway through a clarification process which will culminate in SOAP
1.2; PROVREG is just staring to gather consensus about its
requirements, and is still entertaining candidates for a protocol.
Fundamentally, this note is intended to generate cross-discussion
between the groups, to introduce the work in SOAP to PROVREG, and to
gather feedback about SOAP from PROVREG.
In particular, PROVREG may benefit from considering SOAP, in part or
whole, as a framework for its deliverables. If there is sufficient
interest, an I-D outlining how EPP could use SOAP may be generated.
Otherwise, PROVREG may benefit from individual works in XMLP,
including the concepts surrounding the transport abstraction, the
transport bindings themselves, and XMLP's tentative use of XML
Infoset to describe a protocol.
Likewise, if after consideration SOAP is felt inappropriate to
PROVREG's purposes, or if it is deemed unintelligable, this feedback
is valueable to XMLP, as uses such as PROVREG should be addressable
by the output of the Working Group.
I'd ask that, to start, interested PROVREG WG members read the SOAP
1.2 working draft [12], and generate feedback to both lists as
appropriate. I'll be happy to draft an I-D (with help, hopefully) if
there's interest.
[1] http://www.ietf.org/html.charters/provreg-charter.html
[2] http://www.w3.org/2000/09/XML-Protocol-Charter
[3] http://www.w3.org/TR/SOAP/
[4] To subscribe; mailto:ietf-provreg-request@cafax.se
Archives; http://www.cafax.se/ietf-provreg/maillist/
[5] To subscribe; mailto:xml-dist-app-request@w3.org
Archives; http://lists.w3.org/Archives/Public/xml-dist-app/
[6] http://www.w3.org/TR/SOAP-dsig/
[7] http://www.gotdotnet.com/team/xml_wsspecs/soap-rp/default.html
[8] http://search.ietf.org/internet-drafts/draft-etal-beep-soap-03.txt
[9] http://www.ietf.org/internet-drafts/draft-ietf-provreg-grrp-reqs-03.txt
[10] http://www.ietf.org/internet-drafts/draft-ietf-provreg-epp-04.txt
[11] http://www.ietf.org/internet-drafts/draft-ietf-provreg-epp-tcp-02.txt
[12] http://www.w3.org/TR/soap12/
--
Mark Nottingham, Research Scientist
Akamai Technologies (San Mateo, CA USA)
Received on Wednesday, 15 August 2001 18:29:29 UTC