Internet DRAFT - draft-butterfield-active-uri
draft-butterfield-active-uri
A. Butterfield
Internet Draft 1060 Research
Document: draft-butterfield-active-uri-01.txt R. Perry
Expires: December 2004 Hewlett Packard
June 2004
The "active" URI scheme
Status of this Memo
By submitting this Internet-Draft, I certify that any applicable
patent or other IPR claims of which I am aware have been disclosed,
or will be disclosed, and any of which I become aware will be
disclosed, in accordance with RFC 3668.
This document may not be modified, and derivative works of it may
not be created, except to publish it as an RFC and to translate it
into languages other than English.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than a "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Abstract
A new URI scheme, "active", is defined. It allows processing results
to be referenced uniquely and invariantly by compounding their
dependencies into a URI.
Conventions used in this document
The key words "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 [1].
Butterfield Expires - December 2004 [Page 1]
INTERNET DRAFT The "active URI scheme June 2004
1. Description
In a declarative resource processing pipeline it is helpful for all
resources, whether external or internal intermediate results, to be
identified by URI. An _active_ URI may uniquely specify the
resulting resource of a process, such a URI can embody a processing
specification and may be used as a request for a generative process.
This document defines a new URI scheme that allows specification of
a generative resource process. The URIs are of the form:
active:<processURI>*(+<inputName>@<inputURI>)
The <processURI> is a URI that uniquely identifies a processing
step. Any reserved characters must be escaped.
The <inputName> is an identifier for a named input to the processing
step. It is not necessarily unique within the scope of the URI.
The <inputURI> is a URI that uniquely identifies an input resource
to the processing step. Any reserved characters must be escaped. The
URI may be another _active_ URI, making recursion possible.
Zero or more inputName-inputURI pairs are allowed.
The "active" URI scheme has no relative URI forms.
2. Syntax
activeURI := _active:_ processURI *( input )
processURI := absoluteURI | relativeURI
input := _+_ inputName _@_ inputURI
inputName := *( alphanum )
inputURI := absoluteURI | relativeURI
where "alphanum" is imported from [RFC2396] and "absoluteURI" and
_relativeURI_ are imported from [RFC2396] represented using URL
escaped encoding of [RFC2396] as necessary.
Character encoding of the active URI MUST force nested _inputURI_s
to escape invalid characters if they are not within the character
set.
3. Interoperability
There are no known interoperability issues.
Butterfield Expires - December 2004 [Page 2]
INTERNET DRAFT The "active URI scheme June 2004
4. Comparisions
Syntactic similarities can be drawn to the generic URIs query
component syntax. However the key differences are:
1) Symantically the inputs are not queries to a resource.
2) All inputURIs must be URIs, not alphanumeric.
3) Recursive nesting of URIs must be defined.
5. Examples
An _active_ URI might define an XSLT transform on an XML document:
active:xslt+stylesheet@foo.xsl+operand@bar.xml
or conversion to upper-case of a data[RFC2397] URI:
active:toUpper+operand@data:text/plain,foobar
6. History
This idea was originally prototyped in June 2002 within a working
implementation of a research project within Hewlett Packard Labs.
The idea was first used as a way of identifying intermediate results
in XML pipelines.
1060 Research acquired the intellectual property from this research
project in July 2003. The idea has since been refined for use in a
generalized resource processing pipeline where unique and invariant
references to derived results is key to an efficient caching
strategy. _active_ URIs are used as the internal addressing model
of 1060 NetKernel which is open source and available from:
http://www.1060.org
7. Security
The active: URI scheme is currently intended for local processing
only so there are no exceptional security considerations that are
particular to this URI. Active URI specified processes are no
different to any other local mechanism for specifying a process. By
formalizing a request for processing into an active URI it is
possible to programmatically analyse the request in a structured way
for possible security issues.
Security related to any nested URIs should be given the
consideration they would normally have.
Butterfield Expires - December 2004 [Page 3]
INTERNET DRAFT The "active URI scheme June 2004
8. References
1 Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997
[RFC2396] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", RFC2396, August
1998.
[RFC2397] Masinter, L., "The data URL scheme", RFC2397, August 1998
Copyright (C) The Internet Society (2004). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
This document and the information contained herein are provided on
an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Author's Addresses
Tony Butterfield
1060 Research Limited
23 Horse Street
Chipping Sodbury
Bristol BS37 6DA
United Kingdom
Email: tab@1060.org
Butterfield Expires - December 2004 [Page 4]