draft-ietf-opes-end-comm-01.txt   draft-ietf-opes-end-comm-02.txt 
Network Working Group A. Barbir Network Working Group A. Barbir
Internet-Draft Nortel Networks Internet-Draft Nortel Networks
Expires: March 12, 2004 September 12, 2003 Expires: March 18, 2004 September 18, 2003
OPES processor and end points communications OPES processor and end points communications
draft-ietf-opes-end-comm-01 draft-ietf-opes-end-comm-02
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026. all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that other Task Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts. groups may also distribute working documents as Internet-Drafts.
skipping to change at page 1, line 30 skipping to change at page 1, line 30
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at http:// The list of current Internet-Drafts can be accessed at http://
www.ietf.org/ietf/1id-abstracts.txt. www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on March 12, 2004. This Internet-Draft will expire on March 18, 2004.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved. Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract Abstract
This memo documents tracing requirements for Open Pluggable Edge This memo documents tracing requirements for Open Pluggable Edge
Services (OPES). Services (OPES).
skipping to change at page 2, line 23 skipping to change at page 2, line 23
4. Requirements for OPES processors . . . . . . . . . . . . . . 8 4. Requirements for OPES processors . . . . . . . . . . . . . . 8
5. Requirements for callout servers . . . . . . . . . . . . . . 9 5. Requirements for callout servers . . . . . . . . . . . . . . 9
6. Privacy considerations . . . . . . . . . . . . . . . . . . . 10 6. Privacy considerations . . . . . . . . . . . . . . . . . . . 10
6.1 Tracing and Trust Domains . . . . . . . . . . . . . . . . . 10 6.1 Tracing and Trust Domains . . . . . . . . . . . . . . . . . 10
7. How to Support Tracing . . . . . . . . . . . . . . . . . . . 11 7. How to Support Tracing . . . . . . . . . . . . . . . . . . . 11
7.1 Tracing and OPES System Granularity . . . . . . . . . . . . 11 7.1 Tracing and OPES System Granularity . . . . . . . . . . . . 11
7.2 Requirements for In-Band Tracing . . . . . . . . . . . . . . 12 7.2 Requirements for In-Band Tracing . . . . . . . . . . . . . . 12
7.2.1 Tracing Information Granularity and Persistence levels 7.2.1 Tracing Information Granularity and Persistence levels
Requirements . . . . . . . . . . . . . . . . . . . . . . . . 12 Requirements . . . . . . . . . . . . . . . . . . . . . . . . 12
7.3 Protocol Binding . . . . . . . . . . . . . . . . . . . . . . 13 7.3 Protocol Binding . . . . . . . . . . . . . . . . . . . . . . 13
7.4 Tracing scenarios and examples . . . . . . . . . . . . . . . 13 8. Tracing Examples . . . . . . . . . . . . . . . . . . . . . . 14
8. Optional Notification . . . . . . . . . . . . . . . . . . . 14 8.1 Single OPES Processor: Detailed Trace . . . . . . . . . . . 14
9. IANA considerations . . . . . . . . . . . . . . . . . . . . 16 8.2 Single OPES Processor: Partial Trace . . . . . . . . . . . . 15
10. Security Considerations . . . . . . . . . . . . . . . . . . 17 8.3 Multiple OPES Processors: Full Trace . . . . . . . . . . . . 15
Normative References . . . . . . . . . . . . . . . . . . . . 18 8.4 Multiple OPES Processors: Partial Trace . . . . . . . . . . 16
Informative References . . . . . . . . . . . . . . . . . . . 19 9. Optional Notification . . . . . . . . . . . . . . . . . . . 18
Author's Address . . . . . . . . . . . . . . . . . . . . . . 19 10. IANA considerations . . . . . . . . . . . . . . . . . . . . 20
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 11. Security Considerations . . . . . . . . . . . . . . . . . . 21
Intellectual Property and Copyright Statements . . . . . . . 21 Normative References . . . . . . . . . . . . . . . . . . . . 22
Informative References . . . . . . . . . . . . . . . . . . . 23
Author's Address . . . . . . . . . . . . . . . . . . . . . . 23
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 24
Intellectual Property and Copyright Statements . . . . . . . 25
1. Introduction 1. Introduction
The Open Pluggable Edge Services (OPES) architecture [8] enables The Open Pluggable Edge Services (OPES) architecture [8] enables
cooperative application services (OPES services) between a data cooperative application services (OPES services) between a data
provider, a data consumer, and zero or more OPES processors. The provider, a data consumer, and zero or more OPES processors. The
application services under consideration analyze and possibly application services under consideration analyze and possibly
transform application-level messages exchanged between the data transform application-level messages exchanged between the data
provider and the data consumer. provider and the data consumer.
skipping to change at page 3, line 26 skipping to change at page 3, line 26
the execution of service applications local to the OPES processor. the execution of service applications local to the OPES processor.
Alternatively, the OPES processor can distribute the responsibility Alternatively, the OPES processor can distribute the responsibility
of service execution by communicating and collaborating with one or of service execution by communicating and collaborating with one or
more remote callout servers. As described in [8], an OPES processor more remote callout servers. As described in [8], an OPES processor
communicates with and invokes services on a callout server by using a communicates with and invokes services on a callout server by using a
callout protocol. callout protocol.
The work specify the requirements for providing tracing functionality The work specify the requirements for providing tracing functionality
for the OPES architecture [8]. This document specifies tracing for the OPES architecture [8]. This document specifies tracing
mechanisms that the OPES architecture could provide that enable data mechanisms that the OPES architecture could provide that enable data
provider application to detect inappropriate clinet centric actions provider application to detect inappropriate client centric actions
by OPES entities. The work focus on developing tracing requirements by OPES entities. The work focus on developing tracing requirements
that can be used to fulfil the notification and Non-Blocking that can be used to fulfill the notification and Non-Blocking
requirements [2]. requirements [2].
In the OPES architecture document [8], there is a requirement of In the OPES architecture document [8], there is a requirement of
relaying tracing information in-band. This work investigates this relaying tracing information in-band. This work investigates this
possibility and discusses possible methods that could be used to possibility and discusses possible methods that could be used to
detect faulty OPES processors or callout servers by end points in an detect faulty OPES processors or callout servers by end points in an
OPES flow. OPES flow.
The document is organized as follows: Section 2 defines OPES Domain The document is organized as follows: Section 2 defines OPES Domain
and OPES System. Section 3 discusses entities that are traceable in and OPES System. Section 3 discusses entities that are traceable in
an OPES Flow. Sections 4 and 5 discuss tracing requirements for OPES an OPES Flow. Sections 4 and 5 discuss tracing requirements for OPES
systems and callout servers. Section 6 focus on Tracing and Trust systems and callout servers. Section 6 focus on Tracing and Trust
Domains. Section 7 discusses how to support tracing and provides uses Domains. Section 7 discusses how to support tracing and provides uses
cases. Section 8 examines Optional Notofication. Section 9 looks cases. Section 8 provides some examples of traces. Section 9 examines
into IANA considerations. Section 10 examines security Optional Notification. Section 9 looks into IANA considerations.
considerations. Section 10 examines security considerations.
2. OPES Domain and OPES System 2. OPES Domain and OPES System
This sections clarifies the terms OPES system and OPES Domain [8]. This sections clarifies the terms OPES system and OPES Domain [8].
These terms are needed in order to define what is traceable in an These terms are needed in order to define what is traceable in an
OPES Flow [8]. OPES Flow [8].
An OPES domain describes the collection of OPES entities that a An OPES domain describes the collection of OPES entities that a
single provider operates. OPES domains can be based on trust or other single provider operates. OPES domains can be based on trust or other
operational boundaries. All elements of an "OPES Domain" MUST be in operational boundaries. All entities of an "OPES Domain" MUST be in
the same trust domain. This would be independent of any specific OPES the same trust domain. This would be independent of any specific OPES
flow. Flow.
An OPES system consists of a limited set of OPES entities, parts of a An OPES system consists of a limited set of OPES entities, parts of a
single or of multiple OPES operators domains, organized by (or on single or of multiple OPES domains, organized by (or on behalf) of
behalf) of either a data provider application or a data consumer either a data provider application or a data consumer application to
application to perform authorized services on a given application perform authorized services on a given application message. Each OPES
message. Each OPES entity in an OPES system MUST be directly entity in an OPES system MUST be directly addressable at the IP level
addressable on IP level by a data consumer application. by a data consumer application.
An OPES system can be formed in a recursive manner. An OPES system An OPES system can be formed in a recursive manner. An OPES system
can start with either a data provider application or a data consumer can start with either a data provider application or a data consumer
application (for a given message). The OPES system then includes any application (for a given message). The OPES system then includes any
OPES entity trusted by (accepting authority from) an entity that is OPES entity trusted by (accepting authority from) an entity that is
already in the OPES system. The trust and authority delegation is already in the OPES system. The trust and authority delegation is
viewed in the context of the given application message. viewed in the context of the given application message.
As implied by the above definition, some OPES entities in the system As implied by the above definition, some OPES entities in the system
may not participate in the processing of a given message. MAY not participate in the processing of a given message.
An OPES domain MUST not be an OPES sub-system. An OPES domain MUST An OPES domain MUST not be an OPES sub-system. An OPES domain MUST
require external resources to provide services. An OPES domain is a require external resources to provide services. An OPES domain is a
part of an OPES system belonging to a given operator. OPES domains part of an OPES system belonging to a given operator. OPES domains
have no incidence on the structure of an OPES system, but they may have no incidence on the structure of an OPES system, but they may
influence its organization for different reasons such as security, influence its organization for different reasons such as security,
payment, quality of service, delivery parameters among others. payment, quality of service, delivery parameters among others.
In Figure 1 an OPES Flow is shown that traverses across various OPES In Figure 1 an OPES Flow is shown that traverses across various OPES
Domains. A data consumer application MUST be able to recive tracing Domains starting from a data provider application. A data consumer
information on per message basis that enable it to determine the set application MUST be able to receive tracing information on per
of transformations that were perfomed on the data for a particular message basis that enable it to determine the set of transformations
OPES Flow. The formation of an OPES flow can be static or dynamic, that were performed on the data for a particular OPES Flow. The
meaning that the determination of which OPES Domains will participate formation of an OPES Flow can be static or dynamic, meaning that the
in a given OPES Flow (per message basis) can be a function of determination of which OPES Domains will participate in a given OPES
business arrangements. Flow (per message basis) can be a function of business arrangements.
+------------------------------------------+ +------------------------------------------+
| Data Consumer Application | | Data Consumer Application |
+------------------------------------------+ +------------------------------------------+
^ ^
| |
+-------------------------------------------+ +-------------------------------------------+
| OPES System | O | | OPES System | O |
| | | | | |
| +-------------------------+ | P | | +-------------------------+ | P |
skipping to change at page 6, line 10 skipping to change at page 6, line 10
| | | |
+-------------------------------------------+ +-------------------------------------------+
Figure 1: OPES System Figure 1: OPES System
3. OPES Tracing 3. OPES Tracing
Before discussing what is traceable in an OPES flow, it is beneficial Before discussing what is traceable in an OPES flow, it is beneficial
to define what tracing means. Tracing is defined as the inclusion of to define what tracing means. Tracing is defined as the inclusion of
necessary information within a message in an OPES flow that could be necessary information within a message in an OPES flow that could be
used to identify the set of transformations or adpatations that have used to identify the set of transformations or adaptations that have
been performed on its content in an OPES System before its delivery been performed on its content in an OPES System before its delivery
to an end point (the data consumer application). to an end point (for example, the data consumer application).
o OPES trace: application message information about OPES entities in o OPES trace: application message information about OPES entities in
an OPES System that adapted that message. an OPES System that adapted that message.
o OPES tracing: the process of including, manipulating, and o OPES tracing: the process of including, manipulating, and
interpreting an OPES trace in an OPES System. interpreting an OPES trace in an OPES System.
To emphasize, the above definition means that OPES tracing SHOULD be To emphasize, the above definition means that OPES tracing SHOULD be
performed on per message basis. Trace format is dependent on the performed on per message basis. Trace format is dependent on the
application protocol that is being adapted by OPES. Data consumer application protocol that is being adapted by OPES. Data consumer
skipping to change at page 6, line 39 skipping to change at page 6, line 39
o Providers may be hesitant to reveal information about their o Providers may be hesitant to reveal information about their
internal network infrastructure. internal network infrastructure.
o Within a service provider network, OPES processors may be o Within a service provider network, OPES processors may be
configured to use non-routable, private IP addresses. configured to use non-routable, private IP addresses.
o A Data consumer applications would prefer to have a single point o A Data consumer applications would prefer to have a single point
of contact regarding the trace information. of contact regarding the trace information.
o TBD
3.1 What is traceable in an OPES Flow? 3.1 What is traceable in an OPES Flow?
This section focuses on identifying the traceable entities in an OPES This section focuses on identifying the traceable entities in an OPES
Flow. Tracing information MUST be able to provide a data consumer Flow. Tracing information MUST be able to provide a data consumer
application with useful information without tracing the exact OPES application with useful information without tracing the exact OPES
Processor or callout servers that adapted the data. It is up to the Processor or callout servers that adapted the data. It is up to the
OPES service provider to have maintained appropriate internal OPES service provider to have maintained appropriate internal
detailed traces to find the answer to the data consumer applications detailed traces to find the answer to the data consumer applications
inquiry. inquiry.
skipping to change at page 7, line 20 skipping to change at page 7, line 18
o An OPES processor SHOULD add its entry to the trace. o An OPES processor SHOULD add its entry to the trace.
o An OPES service SHOULD add its entry to the trace. o An OPES service SHOULD add its entry to the trace.
o An OPES entity MAY manage trace information from entities that are o An OPES entity MAY manage trace information from entities that are
under its control. For example, an OPES processor may add or under its control. For example, an OPES processor may add or
remove callout service entries in order to manage the size of a remove callout service entries in order to manage the size of a
trace. Other considerations include: trace. Other considerations include:
* The OPES processor may have a fixed configuration that enable * The OPES processor MAY have a fixed configuration that enable
it to respond to tracing inquires. it to respond to tracing inquires.
* The OPES processor may insert a summary of the services that it * The OPES processor MAY insert a summary of the services that it
controls. The summary can be used to respond to tracing controls. The summary can be used to respond to tracing
inquiries. inquiries.
* The OPES processor may package tracing information related to * The OPES processor MAY package tracing information related to
the entities that it control based on the policy of a given the entities that it control based on the policy of a given
OPES System. OPES System.
From an OPES context, a good tracing approach is similar to a trouble From an OPES context, a good tracing approach is similar to a trouble
ticket ready for submission to a known address. The trace in itself ticket ready for submission to a known address. The trace in itself
is not necessarily a detailed description of what has happened. It is is not necessarily a detailed description of what has happened. It is
the resposibility of the operator to resolve the problems. the responsibility of the operator to resolve the problems.
3.2 Requirements for Information Related to Traceable Entities? 3.2 Requirements for Information Related to Traceable Entities?
The requirements for information as related to entities that are The requirements for information as related to entities that are
terceable in an OPES flow are: traceable in an OPES flow are:
o The privacy policy at the time it dealt with the message o The privacy policy at the time it dealt with the message
o Identification of the party responsible for setting and enforcing o Identification of the party responsible for setting and enforcing
that policy that policy
o Information pointing to a technical contact o Information pointing to a technical contact
o Information that identifies, to the technical contact, the OPES o Information that identifies, to the technical contact, the OPES
processors involved in processing the messag processors involved in processing the message.
o TBD
4. Requirements for OPES processors 4. Requirements for OPES processors
In order to facilitate compliance, the concept of an "OPES system" In order to facilitate compliance, the concept of an "OPES system"
being traceable, requires that each OPES processor MUST support being traceable, requires that each OPES processor MUST support
tracing. Policy can be set that defines which domain has tracing. Policy can be set that defines which domain has
authorization to turn on tracing and its granularity. An OPES authorization to turn on tracing and its granularity. An OPES
provider can have its private policy for trace information, but it provider can have its private policy for trace information, but it
MUST support tracing mechanisms and it MUST reveal it's policy. MUST support tracing mechanisms and it MUST reveal its policy.
The requirements for OPES processors that are applicatble to tracing The requirements for OPES processors that are applicable to tracing
are: are:
o Each OPES processor MUST belong to a single OPES Domain. o Each OPES processor MUST belong to a single OPES Domain.
o Each OPES processor MUST have a Unique Identity in that Domain. o Each OPES processor MUST have a Unique Identity in that Domain.
o Each OPES processor MUST support tracing, policy can be used to o Each OPES processor MUST support tracing, policy can be used to
turn tracing on and.to determine granuality. turn tracing on and to determine its granularity.
o TBD
5. Requirements for callout servers 5. Requirements for callout servers
If it is the task of an OPES processor to add trace records to In an OPES system, it is the task of an OPES processor to add trace
application messages, then callout servers that uses the OCP protocol records to application messages. In this case, the callout servers
are not affected by tracing requirements. In order for an OCP that uses the OCP protocol [5] are not affected by tracing
protocol to be tracing neutral, the OPES server SHOULD be able to requirements. In order for an OCP protocol to be tracing neutral, an
meet the following requirements: OPES processor in an OPES system MUST be able to meet the following
requirements:
o Callout services adapt payload regardless of the application o Callout services adapt payload regardless of the application
protocol in use and leave header adjustment to OPES processor. protocol in use and leave header adjustment to OPES processor.
o OPES processor SHOULD be able to trace it's own invocation and o OPES processor SHOULD be able to trace it's own invocation and
service(s) execution since they understand the application service(s) execution since they understand the application
protocol. protocol.
o Callout servers MAY be able to add their own OPES trace records o Callout servers MAY be able to add their own OPES trace records
to application level messages. to application level messages.
o TBD
6. Privacy considerations 6. Privacy considerations
6.1 Tracing and Trust Domains 6.1 Tracing and Trust Domains
A trust domain may include several OPES systems and entities. Within A trust domain may include several OPES systems and entities. Within
a trust domain, there MUST be at least support for one trace entry a trust domain, there MUST be at least support for one trace entry
per system. Entities outside of that system may or may not see any per OPES system. Entities outside of that system may or may not see
traces, depending on domain policies or configuration. For example, any traces, depending on domain policies or configuration. For
if an OPES system is on the content provider "side", end-users are example, if an OPES system is on the content provider "side",
not guaranteed any traces. If an OPES system is working inside end-users are not guaranteed any traces. If an OPES system is working
end-user domain, the origin server is not guaranteed any traces inside end-user domain, the origin server is not guaranteed any
related to user requests. traces related to user requests.
7. How to Support Tracing 7. How to Support Tracing
In order to support tracing, the following aspects must be addressed: In order to support tracing, the following aspects must be addressed:
o There MUST be a System Identifier that identify a domain that is o There MUST be a System Identifier that identify a domain that is
employing an OPES system. employing an OPES system.
o An OPES processor MUST be able to be uniquely identified (MUST o An OPES processor MUST be able to be uniquely identified (MUST
have an Identifier) within a system. have an Identifier) within a system.
o An OPES processor MUST add its identification to the trace. o An OPES processor SHOULD add its identification to the trace.
o An OPES processor SHOULD add to the trace identification of every o An OPES processor SHOULD add to the trace identification of every
callout service that received the application message. callout service that received the application message.
o An OPES processor MUST add to the trace identification of the o If the policy in an OPES system requires an OPES processor to turn
"system/entity" it belongs to. "System" ID MUST make it possible tracing on, then the OPES processor MUST add to the trace
to access "system" privacy policy. identification of the "system or entity" it belongs to. "System"
ID MUST make it possible to access "system" privacy policy.
o An OPES processor MAY group the above information for sequential o An OPES processor MAY group the above information for sequential
trace entries having the same "system/entity" ID. In other words, trace entries having the same "system/entity" ID. In other words,
trace entries produced within the same "system/entity" MAY be trace entries produced within the same "system or entity" MAY be
merged/aggregated into a single less detailed trace entry. merged or aggregated into a single less detailed trace entry.
o An OPES processor MAY delegate trace management to a callout o An OPES processor MAY delegate trace management to a callout
service within the same "system/entity". service within the same "system or entity".
TBD
7.1 Tracing and OPES System Granularity 7.1 Tracing and OPES System Granularity
There are two distinct uses of traces. First, is to SHOULD enable the There are two distinct uses of traces. First, a trace SHOULD enable
"end (content producer or consumer) to detect OPES processor presence the "end (content producer or consumer) to detect OPES processor
within end's trust domain. Such "end" should be able to see a trace presence within end's trust domain. Such "end" should be able to see
entry, but does not need to be able to interpret it beyond a trace entry, but does not need to be able to interpret it beyond
identification of the trust domain(s). identification of the trust domain(s).
Second, the domain administrator SHOULD be able to take a trace entry Second, the domain administrator SHOULD be able to take a trace entry
(possibly supplied by an "end? as an opaque string) and interpret it. (possibly supplied by an "end? as an opaque string) and interpret it.
The administrator must be able to identify OPES processor(s) involved The administrator must be able to identify OPES processor(s) involved
and may be able to identify applied adaptation services along with and may be able to identify applied adaptation services along with
other message-specific information. That information SHOULD help to other message-specific information. That information SHOULD help to
explain what OPES agent(s) were involved and what they did. It may be explain what OPES entities were involved and the actions that they
impractical to provide all the required information in all cases. performed. It may be impractical to provide all the required
This document view a trace record as a hint, as opposed to an information in all cases. This document view a trace record as a
exhaustive audit. hint, as opposed to an exhaustive audit.
Since the administrators of various trust domains can have various Since the administrators of various trust domains can have various
ways of looking into tracing, they MAY require the choice of freedom ways of looking into tracing, they MAY require the choice of freedom
in what to put in trace records and how to format them. Trace records in what to put in trace records and how to format them. Trace records
should be easy to extend beyond basic OPES requirements. Trace should be easy to extend beyond basic OPES requirements. Trace
management algorithms should treat trace records as opaque data to management algorithms should treat trace records as opaque data to
the extent possible. the extent possible.
It is not expected that entities in one trust domain to be able to It is not expected that entities in one trust domain to be able to
get all OPES-related feedback from entities in other trust domains. get all OPES-related feedback from entities in other trust domains.
For example, if an end-user suspects that a served is corrupted by a For example, if an end-user suspects that a service was corrupted by
callout service, there is no guarantee that the use will be able to a callout service, then, there is no guarantee that the user will be
identify that service, contact its owner, or debug it _unless_ the able to identify that service, contact its owner, or debug it, unless
service is within my trust domain. This is no different from the the service is within its trust domain. This is no different from the
current situation where it is impossible, in general, to know the current situation where it is impossible, in general, to know the
contact person for an application on an origin server that generates contact person for an application on an origin server that generates
corrupted HTML; and even if the person is known, one should not corrupted HTML; and even if the person is known, one should not
expect that person to respond to end-user queries. expect that person to respond to end-user queries.
7.2 Requirements for In-Band Tracing 7.2 Requirements for In-Band Tracing
The OPES architecture [8] states that traces must be in-band. The The OPES architecture [8] states that traces must be in-band. The
support of this design specification is dependent on the specifics of support of this design goal is dependent on the specifics of the
the message application level protocol that is being used in an OPES message application level protocol that is being used in an OPES
flow. In-band tracing limits the type of application protocols that flow. In-band tracing limits the type of application protocols that
OPES can support. The details of what a trace record can convey is OPES can support. The details of what a trace record can convey is
also dependent on the choice of the application level protocol. also dependent on the choice of the application level protocol.
For these reasons, the work will document requirements for For these reasons, this work documents requirements for application
application protocols that need to support OPES traces. However, the protocols that need to support OPES traces. However, the architecture
architecture does not prevent implementers of developing out-of-band does not prevent implementers of developing out-of-band protocols and
protocols and techniques to address the above limitation. techniques to address the above limitation.
7.2.1 Tracing Information Granularity and Persistence levels 7.2.1 Tracing Information Granularity and Persistence levels
Requirements Requirements
In order to be able to trace entities that have acted on an In order to be able to trace entities that have acted on an
application message in an OPES flow, there may be requirements to application message in an OPES flow, there may be requirements to
keep information that is related to the following: keep information that is related to the following:
o Message-related informatio: All data that describes specific o Message-related information: All data that describes specific
actions performed on the message SHOULD be provided with that actions performed on the message SHOULD be provided with that
message, as there is no other way to find message level details message, as there is no other way to find message level details at
later. a later stage.
o Session related information: Session level data MUST be preserved o Session related information: Session level data MUST be preserved
for the duration of the session. OPES processor is responsible for for the duration of the session. OPES processor is responsible for
inserting notifications if session-level information changes. inserting notifications if session-level information changes.
o End-point related data: What profile is activated? Where to get o End-point related data: What profile is activated? Where to get
profile details? Where to set preferences? profile details? Where to set preferences?
o TBD
7.3 Protocol Binding 7.3 Protocol Binding
How tracing is added is application protocol-specific and will be The task of adding tracing information is application protocol
documented in separate drafts. This work documents what tracing specific. Separate documents will address HTTP and other protocols.
information is required and some common tracing elements. This work documents what tracing information is required and some
common tracing elements.
7.4 Tracing scenarios and examples 8. Tracing Examples
TBD This section provides some examples of tracing that could be
generated by an OPES System. The examples are based on HTTP [3] and
use HTTP extension headers as given in [6]. In [6] trace entries are
supplied using HTTP extension message headers. These headers are
defined using #list constructs. A valid HTTP message may contain
multiple entries of each header. In an OPES Systems, these headers
MUST be used to represent the trace entries.
8. Optional Notification In [6], the following HTTP extensions are defined:
OPES-System = "OPES-System" ":" #trace-entry
OPES-Processor = "OPES-Processor" ":" #trace-entry
OPES-Service = "OPES-Service" ":" #trace-entry
trace-entry = opes-agent-id *( ";" parameter )
opes-agent-id = absoluteURI
8.1 Single OPES Processor: Detailed Trace
This example consider the case of an OPES System consisting of a
single OPES Processor that is capable of locally performing three
OPES services. A data consumer application may receive the following
HTTP response message header after OPES adaptations have been
applied:
HTTP/1.1 200 OK
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-type: application/octet-stream
OPES-System: http://www.example-opes-systemA.com/
opes?session=ac79a7901549f56
OPES-Service: http:// www.example-opes-systemA.com /?sid=123
OPES-Service: http:// www.example-opes-systemA.com /cat/?sid=124
OPES-Service: http:// www.example-opes-systemA.com /cat/?sid=125
In this example, the trace has identified the OPES System and all the
OPES services that were performed on the data consumer application
original request.
8.2 Single OPES Processor: Partial Trace
In this example, the OPES System consisting of a two OPES Processor.
Each Processor is capable of locally performing many OPES services. A
data consumer application may receive the following HTTP response
message header after OPES adaptations have been applied:
HTTP/1.1 200 OK
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-type: application/octet-stream
OPES-System: http://www.example-opes-systemA.com/
opes?session=ac79a7901549f56
OPES-Service: http:// www.example-opes-systemA.com /?sid=123
OPES-Service: http:// www.example-opes-systemA.com /cat/?sid=124 ;
Mode = Aggregate
In this example, several OPES services may be performed on the
request. However, the trace has one entry that fully identifies one
service and the other services are identified through a common ID.
The OPES system is expected to be able to detail the other services
when queried by the data consumer application.
8.3 Multiple OPES Processors: Full Trace
In this example, the OPES System consisting of a two OPES Processors.
Each processor is capable of locally performing two OPES services. A
data consumer application may receive the following HTTP response
message header after OPES adaptations have been applied:
HTTP/1.1 200 OK
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-type: application/octet-stream
OPES-System: http://www.example-opes-systemA.com/
opes?session=ac79a7901549f56
OPES-Service: http:// www.example-opes-Service-Provider1.com /cat/
?sid=123
OPES-Service: http:// www.example-opes-Service-Provider1.com /cat/
?sid=124
OPES-Service: http:// www.example-opes-Service-Provider2.com /xxx/
?sid=111
OPES-Service: http:// www.example-opes-Service-Provider2.com /xxx/
?sid=112
In this example, the trace has identified the OPES System and all the
OPES services that were performed on the data consumer application
original request.
8.4 Multiple OPES Processors: Partial Trace
In this example, the OPES System consisting of a two OPES Processors.
Each processor is capable of locally performing several OPES
services. A data consumer application may receive the following HTTP
response message header after OPES adaptations have been applied:
HTTP/1.1 200 OK
Date: Wed, 15 Nov 1995 06:25:24 GMT
Last-Modified: Wed, 15 Nov 1995 04:58:08 GMT
Content-type: application/octet-stream
OPES-System: http://www.example-opes-systemA.com/
opes?session=ac79a7901549f56
OPES-Service: http:// www.example-opes-Service-Provider1.com /cat/
?sid=123
OPES-Service: http:// www.example-opes-Service-Provider1.com /cat/
?sid=124 ; Mode A
OPES-Service: http:// www.example-opes-Service-Provider2.com /xxx/
?sid=111
OPES-Service: http:// www.example-opes-Service-Provider2.com /xxx/
?sid=112 ; Mode B
In this example, several OPES services may be performed on the
request. However, the trace partially indicates the services that
were performed. The OPES system is expected to be able to detail the
other services when queried by the data consumer application.
9. Optional Notification
This section examines IAB [2] considerations (3.1) and (3.2) This section examines IAB [2] considerations (3.1) and (3.2)
regarding notification in an OPES architecture. regarding notification in an OPES architecture.
Notification propagates in opposite direction of tracing and cannot Notification propagates in opposite direction of tracing and cannot
be attached to application messages that it notifies about. be attached to the application messages that it notifies about.
Notification can be done out-band and may require the development of Notification can be done out-band and may require the development of
a new protocol. The direction of data flow for tracing and a new protocol. The direction of data flow for tracing and
notification are depicted in Figure 2. notification are depicted in Figure 2.
Notification Notification
+----------------------------------------------- +-----------------------------------------------
| | | |
| V | V
+---------------+ +-------+ +---------------+ +---------------+ +-------+ +---------------+
| | | | | Data Provider | | | | | | Data Provider |
skipping to change at page 15, line 4 skipping to change at page 19, line 4
allow Optional Notification. For example, an OPES System can adopt a allow Optional Notification. For example, an OPES System can adopt a
mechanism that uses a flag that would allow a data consumer and a mechanism that uses a flag that would allow a data consumer and a
data provider application to signal to each other that they are data provider application to signal to each other that they are
interested to receive an explicit notification if an OPES service is interested to receive an explicit notification if an OPES service is
applied to a specific message. The value of this optional flag/field applied to a specific message. The value of this optional flag/field
can be a URI that identifies notification method plus parameters. If can be a URI that identifies notification method plus parameters. If
a processor understands the method, it would be able to further a processor understands the method, it would be able to further
decode the field and send a notification. The specification of the decode the field and send a notification. The specification of the
field name and format for an application protocol can be stated in field name and format for an application protocol can be stated in
the associated binding document. The details of the notification the associated binding document. The details of the notification
protocol is beyond the scope of this Working Group. protocol is beyond the scope of this document.
For example, the following HTTP header: For example, the following HTTP header:
o OPES-Notify: URI *(pname=pvalue) OPES-Notify: URI *(pname=pvalue)
Or, Or,
o My-OPES-Notify: foo=bar q=0.5 My-OPES-Notify: foo=bar q=0.5
can be used. can be used.
9. IANA considerations 10. IANA considerations
TBD This work does not require any IANA consideration since any actions
will be addressed in [6].
10. Security Considerations 11. Security Considerations
TBD The security considerations for OPES are documented in [7]. This
document is a requirement document for tracing and as such does not
develop any new protocols that require security considerations.
Normative References Normative References
[1] McHenry, S., et. al, "OPES Scenarios and Use Cases", [1] A. Barbir et al., "OPES Use Cases and Deployment Scenarios",
Internet-Draft TBD, May 2002. Internet-Draft http://www.ietf.org/internet-drafts/
draft-ietf-opes-scenarios-01.txt, Auguest 2002.
[2] Floyd, S. and L. Daigle, "IAB Architectural and Policy [2] Floyd, S. and L. Daigle, "IAB Architectural and Policy
Considerations for Open Pluggable Edge Services", RFC 3238, Considerations for Open Pluggable Edge Services", RFC 3238,
January 2002. January 2002.
[3] Fielding, R., Gettys, J., Mogul, J., Nielsen, H., Masinter, L., [3] Fielding, R., Gettys, J., Mogul, J., Nielsen, H., Masinter, L.,
Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol -- Leach, P. and T. Berners-Lee, "Hypertext Transfer Protocol --
HTTP/1.1", RFC 2616, June 1999. HTTP/1.1", RFC 2616, June 1999.
[4] OPES working group, "OPES Service Authorization and Enforcement [4] A. Barbir et al., "Policy, Authorization and Enforcement
Requirements", Internet-Draft TBD, May 2002. Requirements of OPES", Internet-Draft http://www.ietf.org/
internet-drafts/draft-ietf-opes-authorization-02.txt, February
2003.
[5] OPES working group, "OPES Ruleset Schema", Internet-Draft TBD, [5] Rousskov, A., "OPES Callout Protocol Core", Internet-Draft
May 2002. http://www.ietf.org/internet-drafts/
draft-ietf-opes-ocp-core-01.txt, August 2003.
[6] A. Beck et al., "Requirements for OPES Callout Protocols", [6] Rousskov, A., "HTTP adaptation with OPES", Internet-Draft TBD,
Internet-Draft http://www.ietf.org/internet-drafts/ September 2003.
draft-ietf-opes-protocol-reqs-03.txt, December 2002.
[7] A. Barbir et al., "Security Threats and Risks for Open Pluggable [7] A. Barbir et al., "Security Threats and Risks for Open Pluggable
Edge Services", Internet-Draft http://www.ietf.org/ Edge Services", Internet-Draft http://www.ietf.org/
internet-drafts/draft-ietf-opes-threats-00.txt, October 2002. internet-drafts/draft-ietf-opes-threats-02.txt, February 2003.
[8] A. Barbir et al., "An Architecture for Open Pluggable Edge [8] A. Barbir et al., "An Architecture for Open Pluggable Edge
Services (OPES)", Internet-Draft http://www.ietf.org/ Services (OPES)", Internet-Draft http://www.ietf.org/
internet-drafts/draft-ietf-opes-architecture-04, December 2002. internet-drafts/draft-ietf-opes-architecture-04, December 2002.
[9] A. Barbir et al., "OPES Treatment of IAB Considerations", [9] A. Barbir et al., "OPES Treatment of IAB Considerations",
Internet-Draft http://www.ietf.org/internet-drafts/ Internet-Draft http://www.ietf.org/internet-drafts/
draft-ietf-opes-iab-01.txt, February 2004. draft-ietf-opes-iab-01.txt, February 2004.
Informative References Informative References
[10] Westerinen, A., Schnizlein, J., Strassner, J., Scherling, M., [10] Westerinen, A., Schnizlein, J., Strassner, J., Scherling, M.,
Quinn, B., Herzog, S., Huynh, A., Carlson, M., Perry, J. and S. Quinn, B., Herzog, S., Huynh, A., Carlson, M., Perry, J. and S.
Waldbusser, "Terminology for Policy-Based Management", RFC Waldbusser, "Terminology for Policy-Based Management", RFC
3198, November 2001. 3198, November 2001.
[11] L. Cranor, et. al, "The Platform for Privacy Preferences 1.0 [11] L. Cranor, et. al, "The Platform for Privacy Preferences 1.0
(P3P1.0) Specification", W3C Recommendation 16 http:// (P3P1.0) Specification", W3C Recommendation 16 http://
www.w3.org/TR/2002/REC-P3P-20020416/ , April 2002. www.w3.org/TR/2002/REC-P3P-20020416/ , April 2002.
[12] "Hit Metering", RFC .
Author's Address Author's Address
Abbie Barbir Abbie Barbir
Nortel Networks Nortel Networks
3500 Carling Avenue 3500 Carling Avenue
Nepean, Ontario K2H 8E9 Nepean, Ontario K2H 8E9
Canada Canada
Phone: +1 613 763 5229 Phone: +1 613 763 5229
EMail: abbieb@nortelnetworks.com EMail: abbieb@nortelnetworks.com
Appendix A. Acknowledgements Appendix A. Acknowledgements
TBD Several people has contributed to this work. Many thanks to: Alex
Rousskov, Hilarie Orman, Oscar Batuner, Markus Huffman, Martin
Stecher, Marshall Rose and Reinaldo Penno.
Intellectual Property Statement Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and IETF's procedures with respect to rights in standards-track and
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/