OPES Working Group                                         A. Barbir
   Internet Draft                                            N. Bennett
   Document: draft-barbir-opes-spcs-03.txt                     R. Penno
                                                        Nortel Networks

   H. T. Pham                                                  R. Menon
   Alcatel                                                        Intel

   J. Mysore                                                S. Sengodan
   Motorola                                                       Nokia

                                                             March 2003


      Requirements for an OPES Service Personalization Callout Server


Status of this Memo

   This document is an Internet-Draft and is subject to 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.

   Copyright Notice

   Copyright (C) The Internet Society (2003). All Rights Reserved.

Abstract

   This document provides the requirements for implementing a Framework
   for Service Personalization (FSP) in OPES intermediaries. This
   document provides a summary of modifications and required protocols
   that need to be supported by OPES intermediaries in order to allow
   for the development, deployment, and execution of a Service
   Personalization (SP) call-out server.







  Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

Table of Contents

   Status of this Memo................................................1
   Abstract...........................................................1
   Conventions used in this document..................................3
   1. Introduction....................................................3
   2. Definitions and Terminology.....................................4
   3.  Overview of Service Personalization............................9
   3.1 Subscriber Profile............................................10
   3.2 Content Profile...............................................10
   3.3 Content Selection.............................................11
   3.4 Quality of Delivery (Origin Server Selection).................11
   4. OPES Personal Content Services Call-out Server.................12
   4.1 Requirements for an OPES SP Call-out Server...................14
   4.1.1 Ability to identify a client/subscriber.....................14
   4.1.1.1 Subscriber Sessions.......................................14
   4.1.2 Protocol to communicate Subscriber Profile..................14
   4.1.3 Protocol to communicate Content Profile.....................15
   4.1.4 Storage Requirements for Subscriber/Content Profile.........16
   4.2 OPES SP Physical Boundary.....................................17
   4.3 OPES SP Sequence of Operations................................17
   4.4 Content Services..............................................18
   4.4.1 Service Characterization....................................19
   4.4.2 Service Availability........................................19
   4.4.3 In-Path Services............................................19
   4.4.4 Out-of-Path Services........................................19
   4.4.5 Service Selection...........................................19
   4.4.6 Service Reliability/Service Failure.........................19
   4.5 Privacy and Security..........................................19
   5. Example of a SP Call-out Server................................20
   5.1 Personalization Requirements from OPES Framework..............21
   5.1.1 User Profile Integrity and Security.........................21
   6. Security Considerations........................................21
   6.1 Security Considerations for SP Scenario.......................22
   7. Acknowledgments................................................22
   8. References.....................................................23
   9. Authors' Addresses.............................................23
   10. Full Copyright Statement......................................25

   Barbir, et al.       Expires September 2003                [Page 2]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server


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. Introduction

   In the Internet today, personalization and profiling services are
   provided to subscribers by portals. Portals require subscribers to
   log on to their sites, which help to identify the subscriber.
   Portals perform subscriber profiling by tracking their habits and
   preferences. In order to be able to create accurate subscriber
   profiles, the portals rely on co-located subscriber identification
   and profiling from participating web sites.

   Major drawbacks of current personalization schemes are their
   reliance on origin web servers to perform the personalization tasks.
   The approach requires content providers to store and manage
   different content for different subscribers. Current schemes lead to
   scalability and optimality issues. This is because the
   personalization task is done based on incomplete information about
   the subscriber. In particular, content provider may not be aware
   about many types of information about the subscriber. Such
   information includes: geographic location, QoS policy, device type,
   and access rate. The lack of such information could dramatically
   decrease the efficiency of any personalization task undertaken on
   behalf of the subscriber.

   A potential solution to the above problem is to shift the
   responsibility for personalizing content to an intermediary device.
   This has many advantages over current solutions, and represents an
   important value add service that could be provided by network edge
   caching proxies or other intermediary devices. In particular,
   performing personalization at the edge of the network has the
   following advantages:

   1) Devices are closer to the edge, whereby better control over
      Quality of Service (QOS) can be achieved.
   2) Personalization can occur on cached objects thus reducing the
      traffic across the network.
   3) The subscriber may have better trust when dealing with the local
      Internet provider.
   4) The same service provider can handle authorization and
      accounting.
   5) Content transformation and adaptation functions are off-loaded
      from the content source, reducing server load.

   In [OPES-FSP], a Framework for performing personalization services
   (FSP) was introduced. It aims to provide a Framework and Protocols
   for the delivery of optimal content variant for a given request

   Barbir, et al.       Expires September 2003                [Page 3]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   based on subscriber profile and policies, and content profile and
   policies. FSP defines the essential components and mechanisms that
   are needed in order to provide high quality personalized services to
   subscribers in a secure and reliable manner.

   This document establishes the requirements for developing an OPES
   Service Personalization (SP) call-out server. The document is
   organized as follows: section 2 defines the terms used throughout
   the document; section 3 provides a summary of SP, while section 4
   discusses the implementation of an OPES SP call-out server.

   GENERAL NOTES:
   -  How to get SP to know which services are available/configured for
      a given OPES intermediary, and how to invoke them? (rule module
      generation)
   -  Does the user have any say on which services providers are used
      for which services? Does the content provider? What are the
      security issues if we do allow such configurability?

2. Definitions and Terminology

   This section consists of the definitions of a number of terms used
   to refer to the roles, participants, and objects potentially
   involved in FSP implementations. Although the following uses many
   terms used in [RFC-2616] and [RFC-3040], there is no necessary
   connection to HTTP or web caching technology. FSP and this
   vocabulary are applicable to other protocols and content networks.
   Words enveloped within 'single quotes' are defined terms within this
   document.

   ACTION
   An action is a form of a policy action [RFC-3040] that results in
   the execution of a 'service module' when 'conditions' of a 'rule'
   are met.

   AUTHORITATIVE DOMAIN
   A logical domain in which the network elements have rights, either
   delegated or inherited to act authoritatively on behalf of a party.
   This logical domain may be wholly contained within the
   administrative domain [ESFNEP] of the party, or it may be a
   collection of administrative domains in which the party rights have
   been delegated.

   CACHE (REFERENCE DEFINITION  [RFC-2616])
   A program's local store of response messages and the subsystem that
   controls its message storage, retrieval, and deletion. A cache
   stores cacheable responses in order to reduce the response time and
   network bandwidth consumption on future, equivalent requests. Any
   client or server may include a cache, though a cache cannot be used
   by a server that is acting as a tunnel.



   Barbir, et al.       Expires September 2003                [Page 4]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   CACHING PROXY (REFERENCE DEFINITION  [RFC-3040])
   A proxy with a cache, acting as a server to clients, and a client to
   servers. Caching proxies are often referred to as "proxy caches" or
   simply "caches". The term "proxy" is also frequently misused when
   referring to caching proxies.

   CLIENT (REFERENCE DEFINITION  [RFC-2616])
   A program that establishes connections for the purpose of sending
   requests.

   CONDITION
   A form of a policy condition [POLICY] that is an expression, which
   is used to determine whether a 'rule' 'action' should be executed.

   CONFIGURATION PATH
   'Rule modules' and 'OPES service modules' are downloaded into an
   'OPES admin server' from 'rule authors' and 'proxylet providers',
   respectively, and then distributed to the 'OPES intermediary'. This
   flow is referred to as the configuration path, since the data being
   transferred along this path is used to provision the 'OPES
   intermediaries' for service.

   CONTENT CONSUMER
   The 'client' that is the final destination of content delivery.

   CONTENT PATH
   The content path describes the path that content requests and
   responses take through the network. Typically, content requests and
   responses flow between a client, and/or an 'intermediary', and a
   'content server'.

   CONTENT PROFILE
   A content profile consists of a set of elements that describe
   available variants for given content. The profile also includes
   policy information about allowable transformations, adaptations, and
   Digital Rights Management that are applicable for that content. The
   profile can be applicable to a specific piece of content, a set or
   class of content, or an aggregation of content from several
   locations.

   CONTENT SERVER
   The server on which content is delivered from. It may be an 'origin
   server', replica server, 'surrogate' or parent proxy.

   CONTENT SERVICE
   A service operating on and providing a value-add to content.

   DELEGATE
   A 'caching proxy' located near or at the network access point of the
   'user agent', delegated the authority to operate on behalf of, and
   typically working in close co-operation with a group of 'user
   agents'.

   Barbir, et al.       Expires September 2003                [Page 5]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server


   EDGE SERVICE NETWORK
   An 'overlay network' of 'intermediaries' layered onto an underlying
   content network [C-MODEL] that incorporate 'content services' that
   operate on messages flowing through the 'content path'.

   IN PATH
   In-Path Content Services are naturally within the message path of
   the application they are associated with. This may be an Application
   proxy, gateway, or in the extreme case, one of the end-hosts, that
   is party to the application [C-MODEL].

   INTERMEDIARY
   Intermediaries are application gateway devices located in the
   'content path' between 'client' and 'origin server'. 'Caching
   proxies' and 'surrogates' are probably the most commonly known and
   used intermediaries today.

   OPES ADMIN SERVER
   An OPES admin server performs authentication, authorization and
   accounting (AAA) functions for an OPES 'edge services network'.
   These functions include, but are not limited to downloading of
   'proxylets' and 'rule modules' from trusted parties, authorization
   and authentication of 'OPES services', the collection of accounting
   and log data, and other administrative tasks. It must be a member of
   the 'authoritative domain' of the parties it is authorizing 'content
   services'. It must be a member of the party's 'authoritative domain'
   in whose behalf it is provisioning 'content services'.

   OPES ENGINE
   An OPES engine allows new services to be defined and executed on
   'OPES intermediaries' according to the policies set up by an 'OPES
   admin server'. OPES Engine contains a message parser, and a rule
   processor that reside in the flow of content passing through the
   'OPES intermediary' collectively form a 'PEP'. The 'OPES engine'
   calls actions, which reside in either the 'proxylet run-time system'
   or as 'remote call-out stubs'.

   OPES INTERMEDIARY
   An "intermediary" device integrating a compliant 'OPES engine'. OPES
   intermediaries are typically hosted on 'delegates' or 'surrogates'.

   OPES SERVICE
   An OPES service is an authorized 'content service' performed on a
   message flowing through the 'content path' by a 'OPES service
   module'.

   OPES SERVICE MODULE
   OPES service modules are executable code modules that are executed
   ether on the local 'proxylet run-time system' or on the 'remote
   call-out server'.


   Barbir, et al.       Expires September 2003                [Page 6]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   ORIGIN SERVER (REFERENCE DEFINITION  [RFC-2616])
   The server on which a given resource resides or is to be created.

   OUT-OF-PATH
   Out-of-Path Content Services are not natively in the transport path
   of an application. In other words, they are not necessarily resident
   (or co-resident) on entities that are natively in the path of
   application flows.

   OVERLAY NETWORK A set of connected network elements layered onto
   existing underlying networks, and presented as a virtual application
   layer to both 'clients' and 'origin servers'.

   PCS CALL-OUT SERVER
   A 'remote call-out server' that performs the task of generating
   dynamic 'rule modules' that are either encoded or could be extracted
   from a 'subscriber profile', and which represent a 'subscriber's
   personalization preferences and subsequently loading them onto the
   appropriate 'OPES admin servers' or 'OPES Engines'.

   PDP See 'policy decision point'.

   PEP See 'policy enforcement point'.

   POLICY DECISION POINT (REFERENCE DEFINITION  [POLICY])
   A logical entity that makes policy decisions for itself or for other
   network elements that request such decisions.

   POLICY ENFORCEMENT POINT (REFERENCE DEFINITION  [POLICY])
   A logical entity that enforces policy decisions.

   PROXYLET
   A proxylet is 'OPES service module' that runs on the 'OPES
   intermediary' within the 'proxylet run-time system' and provides a
   service on 'content path' requests or responses.

   PROXYLET LIBRARY
   Proxylet library is a library provided to support runtime services
   in the 'proxylet runtime system'.

   PROXYLET META-DATA
   Proxylet meta-data describes the characteristics, features and
   requirements associated with a proxylet. Examples for such meta-data
   are the name of the 'proxylet', its functionality, its version
   number, where to get it, license related information, execution
   environments, etc. The meta-data can physically be separated from
   the 'proxylet' code, but it must be possible to uniquely associate
   meta-data with 'proxylets' and vice versa.

   PROXYLET PROVIDER
   Proxylet provider is the party that provides the 'proxylet' 'OPES
   service module' to the 'OPES admin server'.

   Barbir, et al.       Expires September 2003                [Page 7]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server


   PROXYLET RUN-TIME SYSTEM
   The local execution environment on an 'OPES intermediary'.
   'Proxylets' execute as local (as opposed to 'remote call-out')
   'actions' within this environment.

   REMOTE CALL-OUT
   A remote procedure call made via a 'remote call-out protocol" to a
   'remote call-out server' that is invoked as the result of an
   'action'.

   REMOTE CALL-OUT PROTOCOL
   The network protocol that encapsulates and transports a 'remote
   call-out' between an 'OPES intermediary' and a 'remote call-out
   server'.

   REMOTE CALL-OUT STUB
   A remote procedure call stub running on the 'OPES intermediary' that
   binds a 'remote call-out' to the 'OPES engine' as 'actions'. The
   stub marshals the 'action' to/from the 'remote call-out protocol'.

   REMOTE CALL-OUT SERVER
   A cooperating server that runs 'OPES service modules' as the result
   of a 'remote call-out'.

   RESOURCE
   A network data object or service that can be identified by a URI.
   Resources may be available in multiple representations ('variants')
   (e.g. multiple languages, data formats, size, resolutions) or vary
   in other ways.

   ROLE (REFERENCE DEFINITION [POLICY])
   An administratively specified characteristic of a managed element
   (for example, an interface). It is a selector for policy rules and
   'rule modules', to determine the applicability of the rule/'rule
   module' to a particular managed element.
   Note: Provisioning Class has been substituted with 'rule module' in
   this definition, as 'rule modules' are instances of Provisioning
   Classes within the OPES application domain.

   RULE
   Rules are forms of policy rules [POLICY] that contain 'conditions'
   and 'actions' that are to be executed if the 'conditions' are met.

   RULE AUTHOR
   The rule author is the party that authors and provides a 'rule
   module' to the 'OPES admin server'.

   RULE MODULE
   A rule module is a form of a policy Provisioning Class [POLICY] that
   contains a set of 'rules' and information about the rule module
   owner.

   Barbir, et al.       Expires September 2003                [Page 8]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server


   SP CALL-OUT SERVER
   A 'remote call-out server' that performs the task of generating
   dynamic 'rule modules' that are either encoded or could be extracted
   from a 'subscriber profile', and which represent a 'subscriber's
   personalization preferences and subsequently loading them onto the
   appropriate 'OPES admin servers' or 'OPES Engines'.

   SUBSCRIBER
   A human being, or user, using a 'client' or 'user agent' to connect
   to a network in order to make requests for personalized content or
   services.

   SUBSCRIBER PROFILE
   A subscriber profile consists of a set of elements that define a
   'subscriber's personalization preferences. This includes, but is not
   limited to a description of the device capabilities, Quality of
   Service (QOS), access rate, accounting information, content type
   preferences, and policies regarding allowable content. A 'subscriber
   profile' may also include 'rule modules' that allow an OPES engine
   to perform personalization.

   SURROGATE (REFERENCE DEFINITION [RFC-3040])
   A gateway co-located with an origin server, or at a different point
   in the network, delegated the authority to operate on behalf of, and
   typically working in close co-operation with, one or more origin
   servers. Responses are typically delivered from an internal cache.
   Surrogates may derive cache entries from the origin server or from
   another of the origin server's delegates. In some cases a surrogate
   may tunnel such requests. Where close co-operation between origin
   servers and surrogates exists, this enables modifications of some
   protocol requirements, including the Cache-Control directives in
   [RFC-2616]. Such modifications have yet to be fully specified.
   Devices commonly known as "reverse proxies" and "(origin) server
   accelerators" are both more properly defined as surrogates.

   TRIGGER
   See 'condition'.

   USER AGENT  [RFC-2616]
   The client that initiates a request. These are often browsers,
   editors, spiders (web-traversing robots), or other end user tools.

   VARIANT (ALSO: CONTENT VARIANT)
   A specific representation of a network data object or service
   (resource) identifiable by a URI. A 'variant' is differentiable from
   other representations of a resource due to language, data format,
   size, resolution or other distinguishing characteristics.

3.  Overview of Service Personalization


   Barbir, et al.       Expires September 2003                [Page 9]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   The details of FSP are given in [OPES-FSP]. In this section a brief
   overview of the Framework for Service Personalization (FSP) is
   provided.

   The end goal of any personalization effort is to enable content
   services on network traffic in a personalized manner. Content
   services are application-level services that provide added value to
   content over simple content delivery. Examples of such services
   include: virus scanning, content translation, packet filtering,
   content adaptation, and others. What is desired is some means of
   allowing subscribers to specify either directly or indirectly which
   services should be applied to their traffic stream, and under what
   circumstances.

   In general, personalization can occur at any point in the network
   that has access to the request, the content, the content profile,
   and the subscriber profile. Essentially, any point in the content
   path is a potential point at which personalization decisions could
   be made. The next sub-sections summarize the basic components of
   FSP.

3.1 Subscriber Profile

   In order for SP to be able to deliver to the subscriber an optimal
   content variant for their request based on the subscriber profile
   and policies, these profiles and policies must be able to completely
   describe a subscriber's personalization preferences. To this end, a
   precise definition must be developed that allows for the creation of
   a subscriber profile that also includes associated policies. The
   subscriber profile must also be able to be stored either in a
   centralized location, or be distributed across multiple locations in
   the network, including the user agent.

   The set of elements that comprise a subscriber's profile includes
   among others a description or a reference to device capabilities,
   Quality of Service (QoS), access rate, accounting information, and
   content type preferences. A subscriber profile also includes
   policies that define what constitutes acceptable content (e.g.
   topic, explicit content, linked content origin, acceptable
   manipulations, filtering policies) that the subscriber is willing to
   receive.

3.2 Content Profile

   Content profiles and policies, on the other hand, encapsulate
   information about the content. This includes information such as
   available variants at the content source, encoding method,
   dimensions (for graphics), etc. Content profiles and policies also
   include information about what is and is not allowed in terms of use
   or manipulation of that content (e.g. do not allow legal documents
   to be translated into another language). A content provider may
   provide hints to a personalization intermediary in choosing the most

   Barbir, et al.       Expires September 2003               [Page 10]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   suitable transformations to apply in some form (e.g. INFOPYRAMID
   provides one such representation).

   Content policies are an integral part of the content profile for a
   given piece of content. A content profile must encapsulate all of
   the information about the content which is needed to make any of the
   personalization decisions required for that content, including
   whether or not a given personalization transformation is allowed.

3.3 Content Selection

   Content selection involves choosing the most appropriate or optimal
   available content variant from a content source for transmission
   back to the subscriber. The choice of optimal content source in this
   context is restricted to the task of identifying the best content
   variant that could be adapted to suit the subscriber. This task is
   separate and distinct from the process of choosing the content
   source that is optimal from a network perspective, based on network
   delay, server load, or other such metrics.

   There are various criteria that can be used to determine the most
   appropriate content variant to retrieve from the content source. The
   simplest of these is choosing a variant that completely or most
   closely fits the subscriber's preferences. This is, however, only
   one possible form of content selection.
   In the event that there is no content variant that completely fits
   the subscriber's preferences, alternate content selection criteria
   may apply [OPES-FSP]. The task of selecting the most appropriate
   content variant may be performed as a function of the ease of
   translation of the content into the appropriate format provided that
   the content policy allows for the needed adaptation.
   Editor Note: Expand the notion to the case when there is no content
   variant.

3.4 Quality of Delivery (Origin Server Selection)

   This criterion only applies in the case where there are multiple
   sources from which content can be obtained, and the personalization
   framework has some influence over the content source selection. In
   this case, it makes some sense to define a Quality of Delivery
   (QoD). In the case where there is only one content source from which
   content can be obtained, or where the personalization framework has
   no influence over which site gets chosen, quality of delivery
   reduces to whatever quality the chosen content source can deliver.

   Editor Note: This section needs a bit of rewrite. Here, QoD has more
   than just availability of a variety of content sources with the same
   content represented in different quality levels - example: streaming
   media content at different bit rates and encoding quality levels. It
   also has to do with other parameters like (1) what is a subscriber's
   best access bandwidth (2) is there a cost issue (free vs. paid
   content) (3) policies in place by content source/provider vs. those

   Barbir, et al.       Expires September 2003               [Page 11]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   by the subscriber (4) device characteristics - same subscriber
   accessing same content from different user agent devices etc.)

4. OPES Personal Content Services Call-out Server

   The Open Pluggable Edge Services (OPES) framework enables the
   creation and provisioning of services executed on application data
   by participating transit intermediaries. The OPES system
   architecture supports the definition of a SP call-out server that
   could be responsible for performing personalization tasks.

   Such a server would overcome most of the technical challenges
   mentioned as barriers in [ESFNEP], and would be able to provide
   extensible services such as virus scanning, ad insertion, caching of
   personalized web pages, limited client bandwidth adaptation, request
   filtering, and creation of subscriber profiles on a per-subscriber
   basis.

   Figure 1 shows a diagram of the main components of the OPES
   framework, with the addition of a SP call-out server. In the
   diagram, the SP call-out server is represented as a separate entity.
   This arrangement allows a SP call-out server to perform
   personalization services for multiple OPES Engines, or for a single
   OPES Engine to balance personalization traffic between multiple SP
   call-out servers. From an architectural standpoint, it would also be
   possible for the OPES Engine and/or the OPES admin server to be
   modified to act as a SP call-out server. This option would, however,
   severely limit the scalability of the SP call-out server from an
   implementation perspective.

   Editor note 1:(1) the way components are laid out below, it appears
   as if the communications between the user agent and the SP call-out
   server is direct (i.e., after initial request made through the OPES
   Engine, someone (OPES Engine?) redirects the user agent to the SP
   callout server. This may be OK, as the OPES Engine does not need to
   be in the "data path" for every user agent after the initial request
   is made for content.

   Editor note 2: The notion that SP callout server may be implemented
   in the same "box" (system) as the OPES Engine is fine with a small
   number of subscribers and no other/few other callout services or
   proxylets running on the OPES Engine. For scalability, a separate SP
   callout server makes sense, depending on the complexity of
   personalization processing.

   NOTE:  We need to clarify this diagram to explicitly show potential
   locations for the implementers of the supplementary services, with
   examples. Also, we need to modify this and/or add a new diagram
   which shows the control path connections between the OPES
   engine/admin server and the SP call-out server.

   Barbir, et al.       Expires September 2003               [Page 12]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server


                     +-----------+     +--------------+
                     |    Rule   |     |   Proxylet   |
                     |    Owner  |     |    Vendor    |
                     +-----------+     +--------------+
                            A  |          |  A
                            |  |          |  |
                            |  V          V  |
                          +--------------------+
                          |     OPES           |
                          |     Admin Server   |
                          +--------------------+
       UPIF                       A  |
   +-----------+                  |  |
   | +-------+ |                  |  V
   | |       | |           +------------------+
   | |       | V           |     OPES         |
   | |  +-----------+      |     Engine       | CPIF +------------+
   | |  |  User     |----->|--- --------------|----->|  Content   |
   | |  |  Agent    |<-----|                  |<-----|  Server    |
   | |  +-----------+      |                  |      +------------+
   | |                     |   Intermediary   |
   | |  +-----------+      |                  |
   | |  |  Call-out |      |                  |
   | |  |   Server  |      |                  |
   | |  |           |      +------------------+
   | |  +-----------+        A    |     A |
   | |      A   |            |    |     | |
   | |      |   +------------+    |     | |
   | |      +---------------------+     | V
   | |                   +-------------------------------+
   | |                   |      SP Call-out Server       |
   | |                   |                               |
   | |                   |     +------------------+      |
   | |                   |     | SP Rule          |      |
   | |                   |     | Owner/Generator  |      |
   | |                   |     +------------------+      |
   | |                   +-------------------------------+
   | |                          A  |
   | +--------------------------+  |
   +-------------------------------+

                 Figure 1 - OPES SP System Architecture Components

   NOTE: The components in Figure 1 may belong to different
   administrative domains.

   Some modifications to the original OPES architecture must be made to
   enable support of a SP call-out server. The next sub-sections
   summarize the requirements on the OPES framework.


   Barbir, et al.       Expires September 2003               [Page 13]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

4.1 Requirements for an OPES SP Call-out Server

   This section discusses the added features that must be supported by
   the OPES framework to support a SP call-out server.

   An OPES SP call-out server performs the task of generating dynamic
   rules that are either encoded in, or extracted from a subscriber and
   content profile. The server must be capable of retrieving a
   subscriber profile from centralized or distributed locations across
   the Internet. The server must be capable of loading the rules onto
   an OPES engine in a dynamic fashion. The server may be capable of
   downloading of proxylets and rules from other parties at a higher
   trust level. The server must perform authorization and
   authentication for services, and other administrative tasks specific
   to personalized services on OPES intermediaries.

4.1.1 Ability to identify a client/subscriber

   In order for the OPES framework to support personalization, it is
   required that an OPES engine be able to identify the beginning of a
   traffic stream that is SP-enabled. It is assumed that the
   personalization of data streams is performed on a per session basis.
   Thus, at the beginning of a session, the OPES engine must recognize
   that the traffic is SP-enabled. The rules within the OPES engine
   must be able to relate the traffic to a certain subscriber and
   assign a special tag that uniquely associates the traffic with the
   subscriber. The SP call-out server uses this tag to locate and
   retrieve the subscriber profile.

   Editor Note: What about Session-less?

   The draft by Penno et al. [UID] proposes various schemes for
   identifying a subscriber on the Internet. This draft can be used as
   a starting point in developing a uniform scheme that can be used by
   OPES engines to identify the beginning of a personalized session for
   a given subscriber.

   The draft entitled "User Profile Information Protocol" [UPIF]
   addresses this issue from an implementation perspective. Much of the
   work contained in the draft is applicable to the SP effort.

4.1.1.1 Subscriber Sessions

   The OPES engine must be able to identify the beginning and end of a
   personalized subscriber session. At the session startup and
   termination, the OPES engine must inform the SP call-out server
   about the subscriber identity. At the termination of the session and
   at the command of the SP call-out server, the OPES engines must
   delete any dynamic rules related to the subscriber.

4.1.2 Protocol to communicate Subscriber Profile


   Barbir, et al.       Expires September 2003               [Page 14]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   In order for a SP call-out server to be able to provide
   personalization services, a protocol is needed that can retrieve the
   subscriber profile in a reliable and secure fashion.

   The protocol must meet the following requirements:

   1) The protocol must provide several security services - including
      user authentication for read/write purposes, integrity of
      request/response messages, user non-repudiation for write
      purposes, and data confidentiality of request/response messages.

   2) The protocol must be reliable.

   3) The protocol must be able to retrieve a subscriber profile that
      is stored in a distributed fashion across the Internet.

   4) The protocol may be able to support accounting services.

   In this regard, the draft by Penno et al. [UPIP] proposes a User
   Profile Information Protocol (UPIP) that could be used by the OPES
   SP call-out server to retrieve the subscriber's profile. The UPIF
   protocol could be defined as an extension of RADIUS [RFC-2866] or
   Diameter [DIAMETER] in order to provide the needed security,
   authorization and accounting capabilities. The work that Penno et
   al. have done on the "User Profile Information Protocol" (UPIP) in
   [UPIF] represents one possible implementation of these ideas, which
   may be applicable to an OPES based personalization call-out server
   (SPCS).


4.1.3 Protocol to communicate Content Profile
   In order to perform personalization services some content may need
   to be adapted to better suit a given subscriber preferences.
   However, certain content can exist in various variants. The quality
   of the adaptation of the content is highly dependent on the original
   format of the content. Additionally, not all content may be adapted
   or modified. This is due to the digital rights that are associated
   or imposed on the content by the original providers and authors.

   NOTE: These remarks are applicable to the underlying OPES framework,
   and perhaps are best addressed there, since Digital Rights
   Management (DRM) will form an essential part of any architecture
   that proposes to perform any modifications or adaptation on original
   content.

   Editor Note 1: Should DRM issues specific to personalization be
   mentioned? For instance, a user A who has viewed some content on one
   device type (say, a PC) could have the rights to view it on a
   different device type (say, a mobile phone). But, a user B may not
   have such privileges. When users are classified into categories,
   this can be included in the content profile. I.e., the content

   Barbir, et al.       Expires September 2003               [Page 15]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   profile could state that if the user is a gold user, some things can
   be done. But if the user is a silver user, a more restricted set of
   personalization can be done.

   Editor Note 2: Need to describe in more detail what Content Profile
   (Content Metadata) is; what the various representations of Content
   Profile are in use today (little?), which proprietary or standard
   forms exist etc.)

   In order to perform high quality personalization of the content, the
   adaptation process must be able to match the subscriber requirements
   or preferences with the availability of various content variants,
   and the policies regarding their use. Only then the needed set of
   transformations on the content could be fully identified. Therefore,
   an OPES engine must support a Content Profile Information Protocol
   (CPIF) that is capable of retrieving content profile that
   encapsulates this information. Requirements for this protocol are
   similar to those for the UPIF protocol.

   The support of CPIF by content providers requires changes be made to
   the way content is stored on servers. It is most probable that the
   rate of adoption of any new content storage scheme by content
   providers will be slow. For this reason, the SP framework will
   proceed with the assumption that the CPIF protocol for the immediate
   future will be non-existent, and that only a limited subset of the
   information that could potentially be encoded in a content profile
   will be available. It is likely that a large part of this content
   information will have to be inferred during the content retrieval
   process. On the other hand, it is possible for content providers to
   publish content profiles and store them in a unique location on the
   Internet. The profiles can then be accessed by the OPES based
   personalization call-out server. OPES based authorization schemes
   can be used to restrict access to legitimate entities to the content
   profiles.

4.1.4 Storage Requirements for Subscriber/Content Profile

   The subscriber/content profile may be stored partially or completely
   in the terminal or the network. The entity that is responsible for
   the storage may be a third-party entity _ especially when the
   profile is stored in the network. Some desirable features of such
   storage include:

   -  The entity that owns the storage does not have access to the
      subscriber/content profile. This implies that the entity does not
      have to be trusted.

   -  The entity that owns the storage does not have to store the
      password (or any shared secret) associated with the
      subscriber/content owner. This requirement is automatically
      implied when the first requirement is needed. However, this

   Barbir, et al.       Expires September 2003               [Page 16]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

      requirement is desirable even when the first requirement is not
      needed, i.e., in the presence of a trusted third party.

4.2 OPES SP Physical Boundary

   The OPES admin server, OPES engines and SP call-out servers
   represent separate logical components in the SP architecture. The
   OPES admin server is off the content path. The involvement of the SP
   call-out server in the data flow is limited to the beginning of a
   personalized session, with the occasional involvement when the
   subscriber preferences are modified within an active session. The SP
   call-out server is also involved in the termination of the session,
   whereby the subscriber related rules are deleted from the OPES
   engine.

   There are no assumptions made regarding the physical boundary
   between the SP call-out server and other OPES functional components.
   In particular, the following physical configurations are possible:

   -  Appliance Model: The OPES admin server, OPES device and SP call-
      out server are built into a single appliance.

   -  Toolbox Model: The OPES admin server, OPES devices including SP
      call-out server are physically separate boxes. In this case, a
      few admin servers can administer a large number of OPES devices
      and SP engines.


4.3 OPES SP Sequence of Operations

   This section describes the sequence of operations that are performed
   by the OPES SP framework as described in Figure 1 in order to
   support personalization. The process is described in the steps
   below:

   Editor Note: The current OPES model is not necessarily built on any
   "lengthier" notion of a session _ each session is merely an HTTP
   request/response sequence; every request from the user agent and
   every response from the content source to be delivered to the user
   agent are "tracked" and there are associated processing points (4
   explicitly defined ones in the current OPES model) where potential
   for rule match/actions exist.

   1) At the beginning of a session, the user agent must identify
      itself as being SP-enabled to the OPES engine. In effect, there
      must be some characteristic of a subscriber request which can be
      identified by a standard OPES rule as requiring personalization
      services (this may be accomplished by some request header
      information rule match and associated action).

   2) Once a SP-enabled request is identified, the OPES engine must
      assign a unique identifier to the subscriber which will be used

   Barbir, et al.       Expires September 2003               [Page 17]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

      to "tag" all subsequent traffic from that subscriber. This may
      involve transfer of identifier information back to the user agent
      for incorporation into subsequent communications, similar to
      existing key-exchange mechanisms.

   3) The incoming subscriber request is then routed (using an OPES
      rule or rule module) to the SP call-out server for processing.

   4) The SP call-out server recognizes the subscriber based on the
      identifier that is provided by the OPES engine. The SP call-out
      server will establish direct communications using UPIF or a
      similar protocol with the user agent to get the appropriate
      information on the location of the subscriber profile.
      Appropriate authentication schemes between the SP call-out server
      and the user agent may be needed. In the event that the
      subscriber profile is distributed across various locations on the
      Internet, the SP call-out server must be able to authenticate
      itself and any entity that is involved in the process.

   5) The SP call-out server parses the subscriber's profile to either
      extract or derive the appropriate personalization rule module.

   6) The SP call-out server then sends the personalization rule module
      that is associated with this subscriber to the OPES engine. The
      OPES engine dynamically loads and invokes the rules on subsequent
      traffic from the subscriber. (To make this happen, subsequent
      traffic needs to contain the "SP-enabled" magic word, since there
      is no notion of state maintained in the OPES Engine on each user
      agent beyond any active request/response pair.)

   7) At the end of the session, the OPES engine informs the SP call-
      out server about the termination of the session. The SP call-out
      server invokes any accounting processing that is needed on the
      subscriber profile and then sends a command to the OPES engine to
      fully delete any rules that are associated with the subscriber.
      Editor Note: How do we exactly know when a session ends? Again,
      given the current HTTP request/response model, each
      request/response sequence is a session; or, do we unload/delete
      the dynamic rules the first request from a user agent that does
      NOT contain the "SP_enabled" magic word in the header?

   8) NOTE: We haven't mentioned anything about how we know what other
      services are available, how we write the rules to route traffic
      to them as appropriate, or what happens if the subscriber profile
      changes in mid-session. Also, we need to address the security of
      the communication between the OPES intermediary and the
      Personalization call-out server.


4.4 Content Services


   Barbir, et al.       Expires September 2003               [Page 18]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

4.4.1 Service Characterization

   This is an OPES problem, but we need to know how to characterize
   services in general. Perhaps it's enough to merely state that we
   need some form of service characterization? Perhaps use the OPES
   definition for service characterization wholesale?

4.4.2 Service Availability

   How do we know which content services are available for use from a
   specific SP platform? Perhaps some of these questions are best
   stated here, and discussed in detail within the context of OPES.

4.4.3 In-Path Services

   Need to figure out how to route traffic to In-Path services.

4.4.4 Out-of-Path Services

   How to route traffic to slower services, and how does this differ
   from in path services?

4.4.5 Service Selection

   Given one or more content services that perform a specific function,
   what are the criteria used to select a specific service? Is this
   decision-making process in any way configurable by the subscriber?
   Or is it configurable by the content provider? What metrics are used
   to make a selection between multiple providers of the same content
   service?

4.4.6 Service Reliability/Service Failure

   What happens when a service fails? How do we know? What are the
   expected actions to be taken by a SP service in light of service
   failure? What sorts of reliability guarantees are in place, and how
   are they enforced?

4.5 Privacy and Security

   Privacy issues are an important component of personalization. In
   this regard, the issues of privacy that are related to shopping
   habits, the willingness to accept or refuse certain type of
   advertisement, and subscriber profiling are already addressed by the
   Platform for Privacy Preferences [W3C-P3P] at W3C. It is important
   to note that while P3P provides a technical mechanism to ensure that
   the subscriber is informed of the privacy policy of a content
   source, it does not specify any mechanism for policy enforcement.
   This is an area in which SP may play a role in strengthening the
   enforcement of privacy policies.
   Editor NOTE 1: What I'm thinking here is that through request
   anonymization, we may be able to prevent the content source from

   Barbir, et al.       Expires September 2003               [Page 19]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   gathering metrics that are undesirable to the subscriber. We have to
   be careful here, however, because this will not make some content
   providers happy. Additionally, anonymization is really more of a
   content service than it is core personalization. Maybe what we have
   is a selective anonymization based on privacy policy enforcement
   during personalization. We may wish to investigate the technical
   feasibility of this idea.

   Editor Note 2: OPES framework must address the privacy issue from
   the point of view of the content provider and the intermediaries.
   Basically, the intermediaries must be able to inform to the User
   Agent about their policies. This is because the privacy policies of
   the intermediaries may be different from the privacy policy of the
   content provider. In this case the intermediary must negotiate the
   superset.

   In performing personalization, there should be a mechanism that
   ensures that the transition of a subscriber profile across the
   Internet is done in a secure and reliable manner. There should be a
   mechanism that authorizes any entity that is interested in accessing
   a subscriber profile. The subscriber must be able be informed about
   the request to access the profile and must be able to accept or
   reject the request.

   In general, security considerations for personalization must address
   the following issues:

   1) Subscriber Profile Integrity: SP must ensure that a subscriber
      profile is unadulterated in whole or in part when it reaches a
      decision point.

   2) Content Profile Integrity: SP must ensure that a content profile
      is unadulterated in whole or in part when it reaches a decision
      point.

   3) Trust Relationships: There must be a proper mechanism that
      decides the entity that is authorized to configure, update,
      change, and delete a subscriber profile. There must be a proper
      mechanism that authorizes any entity that will perform
      personalization across the content adaptation chain. This
      includes trusted third parties and repositories.

   4) Non-repudiation of request: Non-repudiation of any subscriber
      profile configuration/update/change/deletion may be required.

   5) Data Confidentiality: Preventing eavesdroppers from gaining
      access to a subscriber profile is important. Note that this
      requirement is different from subscriber privacy.


5. Example of a SP Call-out Server


   Barbir, et al.       Expires September 2003               [Page 20]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   Here it would be useful to put a real example video on-demand or
   anti-virus.


5.1 Personalization Requirements from OPES Framework

   OPES architecture must meet the following requirements in order to
   support the personalization services as specified by the SP
   framework.

   1) The OPES admin server must be able to communicate with the SP
      call-out server to dynamically load the appropriate rules that
      are needed to perform the personalization services.

   2) The OPES engine must be able to identify a subscriber.

   3) The OPES engine must be able to associate a given rule module
      with a unique subscriber.

   4) The OPES engine must be able to accept dynamic rules that are
      generated by the SP call-out server.

   5) The OPES engine must be able to inform the SP call-out server
      about changes in the subscriber profile within an active session.

   6) The OPES engine must be able to identify the end of a subscriber
      session and must be capable of communicating this information to
      the SP call-out server.

   7) The OPES SP call-out server must be able to instruct the OPES
      engine to delete all the rules that are associated with a unique
      subscriber.

5.1.1 User Profile Integrity and Security

   The SP call-out server is the only owner of the dynamic rules that
   are associated with a given subscriber. For this reason, the OPES
   admin server must have very limited and secure capabilities for
   accessing any information that is related to a particular
   subscriber. The rules that are associated with any subscriber on an
   OPES engine must be protected and secure from any illegal access by
   any entity on the Internet.

6. Security Considerations

   All security considerations applicable to the general OPES framework
   are applicable here as well.
   In the case of SP, the additional component that is introduced is
   the subscriber profile. Consequently, certain security
   considerations apply in this regard:


   Barbir, et al.       Expires September 2003               [Page 21]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   1) Subscriber profile configuration/modification/deletion needs
      authorization
   2) Subscriber profile access needs authorization
   3) Non-repudiation needs to be provided for subscriber profile
      configuration/modification/deletion

6.1 Security Considerations for SP Scenario

   In this section, we consider the OPES SP sequence of operations
   described in Section 4.3, and discuss the security considerations
   therein. The steps below correspond to the steps in Section 4.3.

   1. When the subscriber indicates the need for personalization, this
      request may need to be authenticated. Lack of authentication
      could result in the successful launching of a denial-of-service
      (DOS) attack. For instance, a malicious entity could send several
      spurious requests indicating the need for personalization, and
      this could consume resources at the OPES engine as well as the SP
      call-out server. Rapid authentication schemes are needed in this
      case. Such authentication schemes also need to be combined with
      integrity - in other words, Message Authentication Codes (MAC)
      are preferred. Providing integrity takes care of the case where a
      malicious entity tampers with a genuine request in transit.

   2. When the unique tag assigned to the subscriber is conveyed to the
      subscriber, such notification needs to be authenticated and
      integrity protected. Else, a malicious entity could either
      generate a spurious response, or could tamper with a genuine
      response, e.g. to change the tag to that of a different
      subscriber.

   3. Authentication and integrity needs to be provided when the
      subscriber request is routed from the OPES engine to the SP call
      out server.

   4. Protocol to communicate between the SP Call-out server and the
      subscriber's user agent needs to be secure.

   5. Confidentiality may be needed when the rule module is sent back
      to the SP Call-Out server.

   6. Similarly, confidentiality may be needed here as well.

   7. Authentication and integrity are needed here.

7. Acknowledgments

   The majority of the definitions contained in this document have been
   obtained from the document entitled: "A Model for Open Pluggable
   Edge Services", by G. Tomlinson, et al. [O-MODEL]. This contribution
   is gratefully acknowledged.


   Barbir, et al.       Expires September 2003               [Page 22]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   The authors wish to acknowledge the comments and suggestions
   contributed by the members of the FSP mailing list. These people
   include: Nalin Mistry, Raffi Uddin, Wil Walkoe, Ram Dantu.(Please,
   any others that I've missed, add yourselves in...)

8. References

   [RFC-2119] Bradner, S., "Key words for use in RFCs to Indicate
      Requirement Levels", BCP 14, RFC 2119, March 1997.
   [OPES-FSP] Barbir et al., "A Framework for Service Personalization",
      draft-barbir-opes-fsp-03.txt, work in progress, March 2003.
   [RFC-2616] Fielding, R., et al., "Hypertext Transfer Protocol --
      HTTP/1.1", RFC 2616, June 1999.
   [RFC-3040]  Cooper, I., Melve, I. and G. Tomlinson, "Internet Web
      Replication and Caching Taxonomy", RFC 3040, January 2001.
   [ESFNEP]  A. Beck et al, "Example Services for Network Edge
      Proxies", draft-beck-opes-esfnep-01.txt (work in progress), June
      2001.
   [POLICY]  Westerinen, A., Schnizlein, J., Strassner, J., Scherling,
      M., Quinn, B., Perry, J., Herzog, S., Huynh, A., Carlson, M. and
      S. Waldbusser, "Policy Terminology", RFC 3198, November 2001.
   [C-MODEL]  Day, M., Cain, B., Tomlinson, G. and P. Rzewski, "A Model
      for Content Internetworking", draft-ietf-cdi-model-02.txt (work
      in progress), May 2002.
   [UID] Penno, R., "Identification of Users on the Internet", draft-
      penno-uid-00.txt, work in progress, January 2001.
   [UPIF] Penno, R., and H. T. Pham, "User Profile Information
      Protocol", draft-penno-cdnp-nacct-userid-05.txt. Work in
      progress, July 2001.
   [UPIP] Penno, R and G. Boissonnard, "Framework User Profile
      Information Protocol", draft-framework-upif-00.txt. Work in
      progress, June 2001.
   [RFC-2866] Rigney, C., "RADIUS Accounting", RFC 2866, June 2000.
   [DIAMETER] Calhoun, P., Rubens, A., Akhtar, H., and Guttman, E.,
      "The DIAMETER Base Protocol," draft-calhoun-diameter-17.txt, work
      in progress.
   [W3C-P3P] Platform for Privacy Preferences (P3P1.0) Specification,
      http://www.w3.org/TR/2000/CR-P3P-20001215.


9. Authors' Addresses

   Abbie Barbir, Ph.D.
   Nortel Networks
   3500 Carling Avenue
   Nepean Ontario K2H 8E9 Canada
   Email: Abbieb@nortelnetworks.com

   Nicholas Bennett
   Nortel Networks

   Barbir, et al.       Expires September 2003               [Page 23]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server

   3500 Carling Avenue
   Nepean Ontario K2H 8E9 Canada
   Email: nbennett@nortelnetworks.com

   Reinaldo Penno
   Nortel Networks, Inc.
   600 Technology Park Drive
   Billerica MA 01821
   Email: rpenno@nortelnetworks.com

   Rama R. Menon
   Intel Corporation
   2111 NE 25th Avenue, M/S JF3-206
   Hillsboro, OR 97124
   Email: rama.r.menon@intel.com

   Hien-Thong Pham
   Alcatel Bell
   Francis Wellesplein 1
   B-2018 Antwerp
   BELGIUM
   Phone: 3-2408630
   Email: hien-thong.pham@alcatel.be

   Senthil Sengodan, Ph.D.
   Nokia Research Center
   5 Wayside Road
   Burlington, MA 01803
   Tel: 781-993-3789
   Fax: 781-993-1907
   Email: senthil.sengodan@nokia.com

   Jayanth P. Mysore
   Network and Infrastructure Research Laboratory
   Motorola Labs
   1301 E. Algonquin Road
   Schaumburg, IL 60196
   Email: jayanth@labs.mot.com

   Editor:  (Please send comments to Editor)
   Paul Knight
   Nortel Networks
   600 Technology Park Drive
   Billerica, MA  USA
   Email: paknight-at-nortelnetworks.com

   Barbir, et al.       Expires September 2003               [Page 24]


Internet-Draft   draft-barbir-opes-spcs-03.txt           March 2003              OPES Service Personalization Callout Server


10. Full Copyright Statement

   Copyright (C) The Internet Society (2003). All Rights Reserved.

   This document and translations of it may be 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 than
   English.

   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 THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS 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.

   Acknowledgement

   Funding for the RFC editor function is currently provided by the
   Internet Society.


   Barbir, et al.       Expires September 2003               [Page 25]