Internet DRAFT - draft-deason-mmusic-sdp-soap

draft-deason-mmusic-sdp-soap






MMUSIC                                                         N. Deason
Internet-Draft                                                      USCL
Expires: August 24, 2003                               February 23, 2003


                      SDP Usage for SOAP Sessions
                    draft-deason-mmusic-sdp-soap-00

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at http://
   www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on August 24, 2003.

Copyright Notice

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

Abstract

   This document defines how the Session Description Protocol (SDP) can
   be used to describe sessions of Simple Object Access Protocol (SOAP)
   messages. To achieve this it presents how existing SDP functionality
   should be utilized and defines two new SDP attributes. The usage of
   SDP for SOAP sessions within the Offer/Answer model is specifically
   discussed as this enables the Session Initiation Protocol (SIP) to be
   used to create, modify and terminate SOAP sessions.









Deason                  Expires August 24, 2003                 [Page 1]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


1. Introduction

   The Session Description Protocol SDP [1] provides a general purpose
   syntax for the description of multimedia sessions. SDP files may be
   transported between users using a variety of application protocols,
   e.g. SIP, HTTP, SMTP, etc., to enable the particpation in multimedia
   sessions.

   The flexibility of SDP means that there is more than one possible way
   that SOAP [2] message sessions could be described. Having consensus
   over a single method of operation promotes interoperability.

   As well as describing the general syntax required for describing SOAP
   sessions this document pays particular attention to the usage of SDP
   for SOAP within the Offer/Answer model. [3] The Offer/Answer model of
   SDP usage is followed by Session Initiation Protocol (SIP). [4]
   Providing this information therefore enables SOAP based sessions to
   be intiated, modified and terminated by SIP. The usage of SIP and
   SOAP within the same environment provides support for an application
   component based model for services. For example, multiparty
   conferences, created through SIP, can support floor control and
   configuration through SOAP. [5]





























Deason                  Expires August 24, 2003                 [Page 2]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


2. Terminology and Conventions

   The terms "session-level", "media-level" are used as defined in SDP.
   [1] The SDP direction attribute is defined in [6]. The key words
   MUST, MUSTNOT, REQUIRED, SHOULD, SHOULDNOT, RECOMMENDED, MAY, and
   OPTIONAL in this document are to be interpreted as described in [7].













































Deason                  Expires August 24, 2003                 [Page 3]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


3. SDP for SOAP Session Descriptions

   This section details how a SDP file describes the operation of SOAP
   sessions.

3.1 Media streams

   SOAP sessions are enumerated at the media-level. If there are
   multiple SOAP sessions each one MUST be described on a separarte "m="
   line as defined by SDP [1].

      m=<media> <port> <transport> <fmt list>

   The media type sub-field SHOULD be set to "application", "data" or
   "control", as also defined by SDP [1]. "application" signifies the
   SOAP messaging provides information expected to be displayed to the
   user (e.g. whiteboard information). "data" signifies the SOAP
   messaging carries information which will not be typically displayed
   to the user. "control" signifies that the SOAP messaging will be used
   as a control channel associated with audio and/or video streams also
   defined within the SDP message (e.g. control of a SIP Media Server).
   This list can be extended as new categories of usage emerge.

   The second sub-field is the port to which the SOAP messages should be
   sent. The usage of the port field within the Offer/Answer model for
   SDP, where this may not be initially known, is discussed in Section
   4.3.

   The third sub field is the transport protocol. The following
   transport protocols for SOAP messaging are defined "HTTP" and "BEEP".
   This may be extended through registration of new protocols with IANA.

   The forth sub-field defines media formats. For SOAP messaging this
   MUST carry the value "application/soap+xml", in accordance with the
   conventions for XML Media types set out in [8].

3.2 SDP Attributes for SOAP Sessions

   An important part of SOAP messaging session is the setup procedure.
   When SOAP message sessions are being set up over a HTTP or BEEP
   connection one end point needs to initiate the connection and the
   other needs to accept the connection. The direction attribute defined
   in [6] is used to describe these roles.

      a=direction:<role> [<source-address>]

      The <role> is one of the following:




Deason                  Expires August 24, 2003                 [Page 4]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


      passive:    The endpoint will accept an incoming connection.

      active:     The endpoint will initiate the outgoing connection.

      both:       The endpoint will both accept and incoming connection
      and will initiate an outgoing connection.

   The <source-address> is an optional set of values that describes
   where the connection will originate.

   When describing SOAP sessions in SDP the <source-address> SHOULD NOT
   be used.

      It has been proposed that the source address information be
      removed from the direction attribute. [9]

   If the value of the direction attribute is set to "both" then the
   establishment of two connections is deemed acceptable or even
   desirable. Unlike in the usage of direction attributes for setting
   TCP connections the behaviour for trying to open two connections, but
   falling back to one is not defined. An example where two associated
   HTTP connections are set up for a bidirectional SOAP session is shown
   in Section 4.3.1. Where only a single connection is wanted SDP
   carrying only the "passive" or "active" value for the direction
   attribute MUST be used.

      The operational complexity introduced by using the "both" value to
      create two connections where only one is ultimately used is
      motivated by the desire to establish TCP connections through NATs.
      Because the SOAP messages are transported at the application layer
      though HTTP or BEEP the overhead introduced for this feature is
      not warranted.


3.3 New SDP Attributes for SOAP Sessions

   The following two new attributes are defined for SDP to describe SOAP
   sessions.

3.3.1 Contact Attribute

   The contact attribute is used to provide a URL which will support a
   connection over which the SOAP messages are transported. The media
   level description of a SOAP session MUST contain a contact attribute.
   The ABNF grammar [10] for expressing the contact attribute is as
   follows:

   contact-attribute = "contact" ":" url



Deason                  Expires August 24, 2003                 [Page 5]


   The url value SHOULD be an absolute URL following the rules and ABNF
   grammar set out in RFC 1738. [11]

   Example:
   a=contact:http://www.example.com/process1?id=302940

      This SDP attribute is believed to be useful for any session that
      requires a connection described by a URL as opposed to a
      fully-qualified domain name or IP address. For example, it could
      be used within the context of IM sessions set up through SIP/SDP.
      [12] (This document currently proposes an attribute called "uri"
      for similar purposes.)


3.3.2 WSDL Attribute

   The WSDL attribue can be used to provide a WSDL document [13]
   describing the supported SOAP messaging for the session. The media
   level description of a SOAP session MAY contain a wsdl attribute. The
   ABNF grammar [10] for expressing the contact attribute is as follows:

   wsdl-attribute = "wsdl" ":" url

   The url value SHOULD be an absolute URL following the rules and ABNF
   grammar set out in RFC 1738. [11]

   Example:
   a=contact:http://schemas.example.com/schema1.wsdl

























Deason                  Expires August 24, 2003                 [Page 6]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


4. Example Usage

4.1 Basic Case

   The following example illustrates a basic case where SDP is used to
   set up a session of SOAP messaging. The recipient of this SDP is able
   to send SOAP messages to http://foo.example.com/process1. The format
   of the SOAP messages is defined in a WSDL document located at
   a=wsdl:http://schemas.example.com/MyMsgs.wsdl. Note that as the
   connection information is specified by the contact attribute the SDP
   "c=" field carries a suitable null value.

       v=0
       o=- 289083124 289083124 IN IP4 foo.example.com
       s=-
       t=0 0
       c=IN IP4 0.0.0.0
       m=data 80 HTTP application/soap+xml
       a=contact:http://foo.example.com/process1
       a=direction:passive
       a=wsdl:http://schemas.example.com/MyMsgs.wsdl


4.2 Associated Audio and SOAP Session

   The following example illustrates the case where a SOAP session is
   being set up alongside an associated audio session. In this example
   the SOAP session is being used to provide control of a Media Server
   and BEEP is the transport protocol for the SOAP messages.

       v=0
       o=mediaserver 2890844526 2890844526 IN IP4 mediaserver.example.com
       s=-
       t=0 0
       c=IN IP4 131.160.1.112
       m=audio 5004 RTP/AVP 0
       c=IN IP4 0.0.0.0
       m=control 605 BEEP application/soap+xml
       a=contact:soap.beep://mediaserver.example.com/MediaServerControl
       a=direction:passive
       a=wsdl:http://schemas.example.com/MSControl.wsdl

    The recipient of this SDP knows that they can establish a RTP
   session to 131.160.1.112:5004. In addition they can initate a BEEP
   connection to the url soap.beep://mediaserver.example.com/
   MediaServerControl [14] to perform control of a Media Server sending
   this audio stream. The format of the supported SOAP messages is
   defined by http://schemas.example.com/MSControl.wsdl.



Deason                  Expires August 24, 2003                 [Page 7]


   Note that the the connection information in the line "c=IN IP4
   131.160.1.112" applies only to the audio media. The BEEP media level
   description supplies it's own "c=" field containing a null value.

4.3 Usage within the SDP Offer/Answer model

   The following example shows the case where an offerer sends SDP for a
   SOAP over HTTP session. In this case the offer wishes to be the
   initiator of a SOAP over HTTP session. Therefore the direction
   attribute is set to active. Because they do not know where the
   answering party will want them to connect to for the session the port
   number offered in the "m=" line is set to 9 (the discard port) and
   there is no contact attribute. This behaviour follows the precedence
   of [6].

       v=0
       o=- 289083125 289083125 IN IP4 foo.example.com
       s=-
       t=0 0
       c=IN IP4 0.0.0.0
       m=data 9 HTTP application/soap+xml
       a=direction:active

    The following SDP is communicated in the answer, which supports a
   session consisting off a RPC style SOAP messaging. Within the "m="
   line corresponding to the "m=" line in the offer the port for the
   HTTP session is set to 80. The contact attribute carries the URL to
   use and the direction attribute confirms the offerer will accept the
   connection.

       v=0
       o=- 2890844526 2890844526 IN IP4 bar.example.com
       s=-
       t=0 0
       c=IN IP4 0.0.0.0
       m=data 80 HTTP application/soap+xml
       a=contact:http://bar.example.com/process2?id=4935
       a=direction:passive


4.3.1 Usage of the SDP Offer/Answer Model to create bi-directional SOAP/
      HTTP sessions

   An interesting case of the SDP Offer/Answer model is to set up
   bidirectional SOAP over HTTP connections. Typically SOAP over HTTP is
   used to perform RPC like method calls because of the synchronous
   nature of HTTP. Sessions being setup by SDP however can create 2
   associated HTTP connections between the parties to support richer
   messaging styles, such as asynchronous event notifications.




Deason                  Expires August 24, 2003                 [Page 8]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


   The offer in such an exchange would like:


       v=0
       o=- 289083126 289083126 IN IP4 foo.example.com
       s=-
       t=0 0
       c=IN IP4 0.0.0.0
       m=data 80 HTTP application/soap+xml
       a=contact:http://foo.example.com/process3?id=7949
       a=direction:both
       a=wsdl:http://schemas.example.com/messages1.wsdl

    Whereas the response would like:

       v=0
       o=- 2890844527 2890844527 IN IP4 bar.example.com
       s=-
       t=0 0
       c=IN IP4 0.0.0.0
       m=data 80 HTTP application/soap+xml
       a=contact:http://bar.example.com/process7?id=0235
       a=direction:both
       a=wsdl:http://schemas.example.com/messages1.wsdl



























Deason                  Expires August 24, 2003                 [Page 9]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


5. IANA Considerations

   The new SDP attributes defined in this document need to be registered
   with IANA. These are the contact attribute (Section 3.3.1) and the
   wsdl attribute (Section 3.3.2).














































Deason                  Expires August 24, 2003                [Page 10]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


6. Security Considerations

   The usage of SDP for SOAP sessions does not introduce any new
   security considerations. But implementors should be aware of the
   general security considerations for usage of SDP described in [1].














































Deason                  Expires August 24, 2003                [Page 11]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


References

   [1]   Handley, M. and V. Jacobson, "SDP: Session Description
         Protocol", RFC 2327, April 1998.

   [2]   Box, D., Ehnebuske, D., Kakivaya, G., Layman, A., Mendelsohn,
         N., Nielsen, H., Thatte, S. and D. Winer, "Simple Object Access
         Protocol (SOAP) 1.1", W3CNote 08, May 2000.

   [3]   Rosenberg, J. and H. Schulzinne, "An Offer/Answer Model with
         the Session Description Protocol", RFC 3264, UJune 2002.

   [4]   Rosenberg, J., Schulzinne, H., Camarillo, G., Johnston, A.,
         Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP:
         Session Initiation Protocol", RFC 3261, June 2002.

   [5]   Wu, X., Wu, X., Koskelainen, P. and H. Schulzinne, "Use of
         Session Initiation Protocol (SIP) and Simple Object Access
         Protocol (SOAP) for Conference Floor Control",
         draft-wu-sipping-floor-control-03 (work in progress), January
         2003.

   [6]   Yon, D., "Connection-Oriented Media Transport in SDP",
         draft-ietf-mmusic-sdp-comedia-04 (work in progress), July 2002.

   [7]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
         Levels", BCP 14, RFC 2119, March 1997.

   [8]   Murata, M., St. Laurent, S. and D. Kohn, "XML Media Types", RFC
         3023, January 2001.

   [9]   Rosenberg, J., "Proposed Changes to Connection Oriented Media
         Handling in the  Session Description Protocol (SDP)",
         draft-rosenberg-mmusic-comedia-fix-00 (work in progress),
         January 2003.

   [10]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
         Specifications: ABNF", RFC 2234, November 1997.

   [11]  Berners-Lee, T., Masinter, L. and M. McCahill, "Uniform
         Resource Locators (URL)", RFC 1738, December 1994.

   [12]  Campbell, B., "Instant Message Transport Sessions using the
         CPIM Message Format", draft-campbell-simple-cpimmsg-sessions-00
         (work in progress), October 2002.

   [13]  Christensen, E., Curbera, F., Meredith, G. and S. Weerawarana,
         "Web Services Description Language (WSDL) 1.1", W3CNote 15,



Deason                  Expires August 24, 2003                [Page 12]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


         March 2001.

   [14]  O'Tuathail, E. and M. Rose, "Using the Simple Object Access
         Protocol (SOAP) in Blocks Extensible Exchange Protocol (BEEP)",
         RFC 3288, June 2002.


Author's Address

   Neil Deason
   Ubiquity Software Corporation Limited
   3 Lagoon Drive
   Suite 345
   Redwood City, CA  94605
   USA

   Phone: +1 650 413 7108
   EMail: ndeason@ubiquity.net
   URI:   http://users.rcn.com/neildeason
































Deason                  Expires August 24, 2003                [Page 13]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights. Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11. Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard. Please address the information to the IETF Executive
   Director.


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

   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



Deason                  Expires August 24, 2003                [Page 14]

Internet-Draft        SDP Usage for SOAP Sessions          February 2003


   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.











































Deason                  Expires August 24, 2003                [Page 15]