Internet Engineering Task Force Christian Maciocco INTERNET DRAFT Intel Corporation Expires: August 2001 Markus Hofmann Lucent Technologies OMML: OPES Meta-data Markup Language draft-maciocco-opes-omml-00.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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 as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract Proxylets are small fragments of code installed on Open Pluggable Edge Service (OPES) [1] intermediary, and executed when condition(s) expressed using the Intermediary Rule Markup Language (IRML) [2] match. This document defines: o the æproxylet:Æ URI [3] scheme used in the OPES framework o the OPES Meta-data Markup Language (OMML), an XML based language used to describe proxylet characteristics Maciocco, Hofmann [Page 1] Internet Draft Proxylet Naming scheme March 2000 Table of Contents Status of this Memo................................................1 Abstract...........................................................1 Table of Contents..................................................2 1. Introduction....................................................3 2. Proxylet URI scheme.............................................3 3. OPES Meta-data Markup Language Grammar..........................3 4. OMML Syntax.....................................................4 4.1. "proxyletInfo" element........................................4 4.2. "owner" element...............................................4 4.2.1 Attribute of "owner".........................................4 4.2.2 "name" element...............................................4 4.2.3 "id" element.................................................4 4.2.5 "version" element............................................4 4.3 Examples of the "owner", "name", "id", "version" elements......5 4.4 "info" element.................................................5 4.4.1 Attribute of "info"..........................................5 4.4.2 "location" element...........................................5 4.4.3 "protocol" element...........................................5 4.4.4 "modified-header" element....................................6 4.4.5 Attribute of "protocol"......................................6 4.4.6 "exec-environment" element...................................6 5. Example.........................................................6 7. Security Considerations.........................................7 8. Intellectual Property...........................................7 6. Acknowledgments.................................................7 7. References......................................................7 9. Disclaimer......................................................8 10. Author's Address...............................................8 12. Full Copyright Statement.......................................8 Maciocco, Hofmann Expires August 2001 [Page 2] Internet Draft Proxylet Naming scheme March 2000 1. Introduction OPES enables network services that run on intermediary located in the network, preferably at its edges. Proxylets are programs, developed in a language tailored to the specific intermediary element, which executes on the intermediary and performs actions when a pre-defined condition or pre-defined sets of conditions are met. These conditions are expressed as rules using IRML. Proxylets can be pre-installed on the intermediaries through administrative means, downloaded/fetched to/by the intermediaries or administration devices using the proxylet meta-data. This documents attempts to define the proxylet URI scheme as well as meta-data defining proxylet characteristics. This meta-data will facilitate interoperability between proxylet provider and user. This document is organized as follows: o Section 2 describes the "proxylet:" URI scheme. o Section 3 and 4 describes the proxylet DTD (Document Type Definition) [4] and syntax. o Section 5 describes usage examples. 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 [KEYWORDS]. 2. Proxylet URI scheme 2.1. Syntax The ABNF [5] grammar defined in the next section is the only authoritative syntax definition for the proxylet URI scheme. proxylet://[]/[resource-path] 2.2. ABNF Grammar The full ABNF: uri = "proxylet:" "//" [server]["/" resource-path] server = // as specified in RFC2396. In most cases ælocalhostÆ will be used to specify the server as proxylets will run locally. resource-path names a specific resource within the server. 3. OPES Meta-data Markup Language Grammar The following XML DTD defines the OMML grammar. Maciocco, Hofmann Expires August 2001 [Page 3] Internet Draft Proxylet Naming scheme March 2000 4. OMML Syntax The corresponding OMML syntax follows the rules defined by [4]. 4.1. "proxyletInfo" element The "proxyletInfo" element is the root element and MAY/MUST contain the elements defined below. 4.2. "owner" element The "owner" element specifies the owner of the proxylet. Each proxylet can have exactly one owner. 4.2.1 Attribute of "owner" Name Value ------------------ description CDATA The "description" attribute gives descriptive explanation of the service provided by the proxylet, e.g. virus checking, translation, etc. 4.2.2 "name" element The "name" element provides a descriptive name for the proxyletÆs owner. This can be a company name, a namespace, etc. The "name" element doesnÆt have to be unique among proxylet providers. 4.2.3 "id" element The "id" element MUST contain a unique identifier for the proxylet owner. The domain name of the proxylet owner MUST be used as the proxylet "id". 4.2.5 "version" element Maciocco, Hofmann Expires August 2001 [Page 4] Internet Draft Proxylet Naming scheme March 2000 The "version" attribute specifies the version of this proxylet. The version format will use a series of digit separated by colon, e.g. 1.2.3.4.5 4.3 Examples of the "owner", "name", "id", "version" elements Intel Corp. www.intel.com/developer/proxylet/vcheck 3.1.2.4.2 4.4 "info" element The "info" element provides generic information and characteristics about this proxylet that will be used by the OPES intermediary to know where to get this proxylet, determine if it can support this proxylet and what are this proxyletÆs requirements in terms of protocols supported, execution binding. 4.4.1 Attribute of "info" Name Value ------------------ date CDATA contact CDATA The "date" attributes specifies the proxylet creation date. The "contact" attributes specifies a contact information for this proxylet such as name, address, e-mail, phone number, etc. 4.4.2 "location" element The "location" element specifies the proxyletÆs fully qualified name where the domain name might be different from the "id" element. For example company A owns and develops the proxylet and so the "id" element will be A.com but company A makes this proxylet rd available through a 3 party vendor B.com where OPES intermediary will get the service from. The location element would be b.com\proxylet.pl<\location>. 4.4.3 "protocol" element The "protocol" element contains the name of the protocols attribute supported by this proxylet. Other protocols than the ones defined in the "protocol" element MUST NOT be given to the proxylet for processing. For now only "http" is supported. Future version of this document will support additional protocols. Maciocco, Hofmann Expires August 2001 [Page 5] Internet Draft Proxylet Naming scheme March 2000 4.4.4 "modified-header" element The "modified-header" element contains the name of a protocol header that MAY be modified by the proxylet during processing. 4.4.5 Attribute of "protocol" Name Value -------------------------- name CDATA The "name" attribute specifies the acronym of the supported protocol by this proxylet. 4.4.6 "exec-environment" element The "exec-environment" element specifies the execution environment required to run this proxylet. 5. Example 5.1. Proxylet information provided to an OPES Administration server. Intel Corp. www.intel.com/developer/proxylet/translate 3.1.2.4.2 www.any.com/proxylet/translate.class content-type accept-language java 2.0 5.2. Proxylet information used by IRML. IRML defines an action that will result in a proxylet being called when the rule matches. The proxylet meta-data has been transferred to / fetch by the intermediary along with the proxylet. proxylet:\\localhost\translate.class/action> Maciocco, Hofmann Expires August 2001 [Page 6] Internet Draft Proxylet Naming scheme March 2000 7. Security Considerations Although beyond the scope of this document, it is clearly necessary to define a secure mechanism for transferring OMML information and proxylets to OPES administration servers or intermediaries. This will include authenticating and authorizing OMML information and proxylet providers and intermediaries. 8. Intellectual Property The IETF 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 the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. 6. Acknowledgments The authors would like to thank all the active participants in the OPES mailing list for their thought-provoking discussion, and many of the ideas, suggestions have been incorporated into the document. Especially we want to acknowledge the following people for their significant contributions: Lily Yang, Rob Erickson, Michael Condry, Andre Beck. 7. References [1] Tomlinson, G., et al., "Extensible Proxy Services Framework", Internet-Draft, work in progress, July 2000. [2] Beck, A., and Hofmann, M., "Intermediary Rule Markup Language", Internet-Draft draft-beck-opes-irml-00.txt, work in progress, February 2001. [3] Berners-Lee, T., et al., "Uniform Resource Identifiers (URI): Generic Syntax", RFC 2396. Maciocco, Hofmann Expires August 2001 [Page 7] Internet Draft Proxylet Naming scheme March 2000 [4] Bray, T., et al., Extensible Markup Language (XML) 1.0 (Second Edition), http://www.w3.org/TR/2000/REC-xml-20001006, October 2000. [5] Crocker D., "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997. 9. Disclaimer The views and specification herein are those of the authors and are not necessarily those of their employer. The authors and their employer specifically disclaim responsibility for any problems arising from correct or incorrect implementation or use of this specification. 10. Author's Address Christian Maciocco Intel Corporation MS JF3-206 2111 NE 25th Ave. Hillsboro, OR 97124, USA Phone: +1-503-264-1770 E-Mail: Christian.maciocco @intel.com Markus Hofmann Bell Labs/Lucent Technologies Room 4F-513 101 Crawfords Corner Road Holmdel, NJ 07704, USA Phone: +1 732 332 5983 Email: hofmann@bell-labs.com 12. Full Copyright Statement Copyright (C) The Internet Society (1999). All Rights Reserved. This document and translations of it maybe copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other then English. Maciocco, Hofmann Expires August 2001 [Page 8] Internet Draft Proxylet Naming scheme March 2000 The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THEINTERNET ENGINEERING TASK FORCE DISCLIAMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMAITON HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTEIS OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC editor function is currently provided by the Internet Society. Maciocco, Hofmann Expires August 2001 [Page 9]