WIDEX                                                          V. Stirbu
Internet-Draft                                                     Nokia
Intended status: Standards Track                              D. Raggett
Expires: April 27, 2007                                     W3C/Volantis
                                                        October 24, 2006


         Widget Description Exchange Service (WIDEX) Framework
                    draft-stirbu-widex-framework-03

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   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 April 27, 2007.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This document defines a framework used to support XML-based user
   interfaces, where the user interface and application logic may be on
   different machines, and coupled via an exchange of XML DOM events and
   update operations.






Stirbu & Raggett         Expires April 27, 2007                 [Page 1]


Internet-Draft             The WIDEX Framework              October 2006


Requirements Language

   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 [RFC2119].


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4

   2.  Architecture Paradigm  . . . . . . . . . . . . . . . . . . . .  4

   3.  The Widex Framework Definition . . . . . . . . . . . . . . . .  5
     3.1.  Overview . . . . . . . . . . . . . . . . . . . . . . . . .  5
     3.2.  Components . . . . . . . . . . . . . . . . . . . . . . . .  7
       3.2.1.  Service Discovery and Session Setup  . . . . . . . . .  8
       3.2.2.  Widex Synchronisation  . . . . . . . . . . . . . . . .  9
       3.2.3.  Transport  . . . . . . . . . . . . . . . . . . . . . .  9

   4.  Widex Synchronisation Messages . . . . . . . . . . . . . . . .  9
     4.1.  WO.Update Message  . . . . . . . . . . . . . . . . . . . .  9
     4.2.  WO.Event Message . . . . . . . . . . . . . . . . . . . . .  9
     4.3.  WO.Selector Message  . . . . . . . . . . . . . . . . . . . 10

   5.  Processing External Resources  . . . . . . . . . . . . . . . . 10
     5.1.  References to External Resources . . . . . . . . . . . . . 10
     5.2.  Synchronising with External Resources  . . . . . . . . . . 10

   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 10

   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10

   8.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11

   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 11
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 12

   Appendix A.  Topology Considerations . . . . . . . . . . . . . . . 13
     A.1.  NAT Traversal  . . . . . . . . . . . . . . . . . . . . . . 13
       A.1.1.  Scenario 1: Widex Server and Renderer Located in
               Internet . . . . . . . . . . . . . . . . . . . . . . . 14
       A.1.2.  Scenario 2: Widex Server Located in Internet . . . . . 14
       A.1.3.  Scenario 3: Widex Renderer and Server in the Same
               Network  . . . . . . . . . . . . . . . . . . . . . . . 14
     A.2.  IPv4-IPv6 Interworking Considerations  . . . . . . . . . . 15
       A.2.1.  Dual-Stack Widex Element Communicating with



Stirbu & Raggett         Expires April 27, 2007                 [Page 2]


Internet-Draft             The WIDEX Framework              October 2006


               IPv4-Only Widex Element Using IPv4 . . . . . . . . . . 16
       A.2.2.  Dual-Stack Widex Elements Communicating over IPv4
               Segment using IPv6 . . . . . . . . . . . . . . . . . . 16
       A.2.3.  IPv4-Only Widex Element communicating with an
               IPv6-Only Widex Element  . . . . . . . . . . . . . . . 16
       A.2.4.  Application Aspects of IPv6 Transition . . . . . . . . 17

   Appendix B.  Widex Framework Deployment Considerations . . . . . . 17
     B.1.  Simple Widex Elements  . . . . . . . . . . . . . . . . . . 17
     B.2.  Multimodal Widex Server  . . . . . . . . . . . . . . . . . 17
     B.3.  Multiple Rendering Engines Widex Renderer  . . . . . . . . 17
     B.4.  Hybrid . . . . . . . . . . . . . . . . . . . . . . . . . . 17

   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17
   Intellectual Property and Copyright Statements . . . . . . . . . . 19




































Stirbu & Raggett         Expires April 27, 2007                 [Page 3]


Internet-Draft             The WIDEX Framework              October 2006


1.  Introduction

   This document describes the components and interactions between them
   of the Widex framework used to support XML-based user interfaces,
   where the user interface and application logic may be on different
   machines, and coupled via an exchange of XML DOM events and update
   operations.  The framework described in this document is intended to
   fulfil the requirements described in Internet-Draft Widex
   Requirements [I-D.ietf-widex-requirements].


2.  Architecture Paradigm

   The Model-View-Controller architectural pattern (MVC) [MVC] divides
   an interactive application into three components.  The model contains
   the core functionality and data.  Views display information to the
   user.  Controllers handle user input.  Views and controllers together
   comprise the user interface.  A change-propagation mechanism ensures
   consistency between the user interface and the model.

   Figure 1 describes an extension to the MVC architecture which enables
   the situations where the user interface and the model may be on
   different machines.

        +-----------------------------+            +---------------+
        |       Widex Server          |            | Widex Renderer|
        | +-------+    .............. |            | +-----------+ |
        | |       |    .            .--------------->|           | |
        | |       |    .    View    . |  Updates   | |           | |
        | |       |    .  (Virtual) .<---------------|           | |
        | |       |    .............. |            | |           | |
        | | Model |                   |            | |   View    | |
        | |       |    +------------+ |            | |           | |
        | |       |    |            |<---------------|           | |
        | |       |    | Controller | |   Events   | |           | |
        | |       |    |            |--------------->|           | |
        | +-------+    +------------+ |            | +-----------+ |
        +-----------------------------+            +---------------+

      Figure 1: Architecture paradigm - A networked MVC architecture

   In the networked MVC architecture, the View is exported on the remote
   device while a Virtual View is maintained on the server.  The change-
   propagation mechanism that ensures consistency between the user
   interface and the model is augmented with methods which keep the View
   synchronised with the Virtual View, synchronisation being done via
   updates.  Additionally, user interactions or gestures are captured by
   the View copy and passed to the Controller as events.



Stirbu & Raggett         Expires April 27, 2007                 [Page 4]


Internet-Draft             The WIDEX Framework              October 2006


   It is quite common that the View is not needed in the Widex Server,
   but there are situations (e.g. desktop applications) in which the
   Widex Server has to maintain a real copy of the View.  Therefore, we
   call the View in the Widex Server to be Virtual.


3.  The Widex Framework Definition

3.1.  Overview

   In the context of Widex working group, the user interface is
   understood as XML [XML1.0] data describing the user interface.
   Typically, the XML data is manipulated as levels 2 and 3 in the W3C
   Document Object Model (DOM), see [DOM2.Core], [DOM3.Core], and
   [DOM2.Events] (W3C has yet to complete work on DOM3 events).  Style
   information associated with the user interface can be manipulated via
   the DOM, see [DOM2.Style].

   The Widex Framework, described in Figure 2, is based on the networked
   MVC paradigm described in Section 2.  The Widex framework is handling
   all network related issues involved in the networked MVC
   architecture, e.g. discovery and matching of Widex Elements, setting
   up sessions between Widex Elements, marshaling XML DOM updates or
   events and exchanging them over the wire.

   There are many events emitted on the Widex Renderer side that have no
   meaning for the application running in the Widex Server and in order
   to minimise the network traffic the Widex Framework MUST deliver only
   the information having remote scope.






















Stirbu & Raggett         Expires April 27, 2007                 [Page 5]


Internet-Draft             The WIDEX Framework              October 2006


   +-------------------------------+        +--------------------------+
   |        Widex Server           |        |     Widex Renderer       |
   |                               |        |                          |
   |+--------------------+         |        |         +---------------+|
   ||    Application     |         |        |         |  Rendering    ||
   ||                    |         |        |         |    Engine     ||
   ||+---++------------+ | +-----+ |        | +-----+ | +------------+||
   |||   ||+..........+| | |     | |Selector| |     | | |+..........+|||
   |||   ||.  Event   .|-->|     |----------->|     |-->|.  Event   .|||
   |||   ||. Handler  .| | |   F | |        | |   F | | |. Listener .|||
   ||| M ||+..........+| | |   r | |        | |   r | | |+..........+|||
   ||| o ||            |<--| W a |<-----------| W a |<--|  XML DOM   |||
   ||| d || Controller | | | i m | | Events | | i m | | |            |||
   ||| e ||            |-->| d e |----------->| d e |-->|   Engine   |||
   ||| l |+------------+ | | e w | |        | | e w | | +------------+||
   |||   |.............. | | x o | |        | | x o | | +------------+||
   |||   |.    View    .-->|   r |----------->|   r |-->|   View     |||
   |||   |.  (Virtual) . | |   k | |Updates | |   k | | |            |||
   |||   |.   XML DOM  .<--|     |<-----------|     |<--|  XML DOM   |||
   ||+---+.............. | |     | |        | |     | | +------------+||
   |+--------------------+ +-----+ |        | +-----+ +---------------+|
   +-------------------------------+        +--------------------------+

                    Figure 2: Widex Framework Overview

   The Widex Framework needs a mechanism by which the Widex Renderer
   determines which events have a remote scope and therefore need to be
   serialized and forwarded to the Widex Server.  The determination of
   which events have a remote scope could be achieved in one of three
   ways:

   o  prior agreement between the Widex Renderer and Widex Server
   o  a list of event names passed during session establishment
   o  the Widex Server could direct the Widex Renderer to add and remove
      event listeners during the session

   The Widex Framework enables remote event listeners to be dynamically
   attached to DOM nodes during the session using WO.Selector messages
   as described in Section 4.3.  Local event listeners that are not
   forwarded to the Widex Server may be dynamically attached through
   WO.Update messages as described in Section 4.1, and which update the
   DOM tree that is interpreted by the Widex Renderer.

   With the Model-View-Controller design pattern, updates to the
   (virtual) DOM tree held by the Widex Server are reflected as
   WO.Update messages that in turn result in the Widex Renderer updating
   its copy of the DOM tree to match the changes made by the Widex
   Server.  A similar process occurs when the Widex Server adds or



Stirbu & Raggett         Expires April 27, 2007                 [Page 6]


Internet-Draft             The WIDEX Framework              October 2006


   removes event listeners, where these changes are mediated by
   WO.Selector messages.

   With the DOM Event model it is possible to attach multiple event
   listeners for the same event.  The DOM event model defines an
   ordering in which the listeners are invoked, and provides a means to
   stop further propagation of the event, and to prevent the default
   event handler from being invoked.  In the case of a mix of local and
   remote event listeners, depending on where they are attached, a local
   event listener could stop further propagation and thereby prevent the
   remote event listener from being invoked.  The other way around is
   more complicated.  The stub used by the Widex Renderer for remote
   event listeners could itself stop further propagation, but there
   would be undue latency incurred if this was to be done by the
   corresponding event handler in the Widex Server.

   In an implementation where the Widex Server maintains an explicit XML
   DOM for the View, changes made by the Widex Server to this View
   result in DOM events, e.g.  DOM Mutation events.  The Widex Framework
   in the server (as shown in Figure 1) can listen for these events to
   generate the corresponding Widex messages.  The Widex Framework in
   the Renderer interprets these messages to reflect the changes to its
   copy of the XML DOM for the View.  Note that the Widex messages are
   independent of whether the Widex Server maintains an explicit DOM for
   the View, that is, an in-memory XML DOM tree, as this is an
   implementation dependent design choice.

3.2.  Components

   The Widex Framework has three components:

   o  Service Discovery and Session Setup
   o  Widex Sync
   o  Transport

















Stirbu & Raggett         Expires April 27, 2007                 [Page 7]


Internet-Draft             The WIDEX Framework              October 2006


                +-----------+   +--------------------------+
                |           |   |                          |
                |  Service  |   |       Widex Sync         |
                | Discovery |   |                          |
                |    and    |   +--------------------------+
                |  Session  |
                |   Setup   |   +--------------------------+
                |           |   |        Transport         |
                +-----------+   +--------------------------+

                   Figure 3: Widex Framework Components

3.2.1.  Service Discovery and Session Setup

   The Service Discovery and Session Setup component is treated by the
   Widex Framework as a black box; any service discovery mechanism being
   able to find matches between a Widex Server and a Widex Renderer and
   any session setup mechanism able to establish a session between a
   matching Widex Server and Widex Renderer can be used as part of the
   framework.

   We define a match or compatibility between a Widex Server and Widex
   Renderer when the Widex Renderer can display the user interface
   exported by the Widex Server.  Typically this means that both devices
   support the same XML DOM and XML DOM Events specifications and the
   Widex Renderer has rendering capabilities for the XML user interface
   language exported by the server.

   Quite often, the Widex Server can make better decisions on what user
   interface to export to a particular Widex Renderer if it has
   additional information about its hardware capabilities, e.g. screen
   size, color depth, input methods.

   Therefore, the Service Discovery mechanism MUST negotiate the
   following capabilities:

   o  supported XML DOM level,
   o  supported XML DOM Events level,
   o  supported XML user interface description language,
   o  supported transport mechanism.

   The Service Discovery mechanism SHOULD negotiate the following
   capabilities for the Widex Renderer:

   o  event listeners
   o  device configuration

   where examples of the device configuration includes the display



Stirbu & Raggett         Expires April 27, 2007                 [Page 8]


Internet-Draft             The WIDEX Framework              October 2006


   resolution, the color depth, and input methods.

   The Session Setup mechanism MUST be able to initiate the Widex
   Session between the Widex Server and the Widex Renderer using the
   selected transport mechanism.

3.2.2.  Widex Synchronisation

   The Widex Sync component provides the functionality that enables the
   marshaling of XML DOM updates and events.  Additionally, the Widex
   Sync component provides the control messages that determine which
   events have remote scope.

3.2.3.  Transport

   The Transport component is treated by the Widex Framework as a black
   box; any transport mechanism being able to facilitate the exchange of
   Widex Sync messages between a Widex Server and a Widex Renderer can
   be used as part of the framework.

   The Transport mechanisms MUST deliver the Widex Sync messages as
   string of bits between the Widex Server and the Widex Renderer in a
   timely, reliable and in sequence manner.


4.  Widex Synchronisation Messages

4.1.  WO.Update Message

   The WO.Update messages contain description of changes to XML DOM
   trees.  The updates can target individual nodes in order to update
   their properties and attributes, or can target parts of the DOM tree
   in order to change its structure, e.g. add/delete/replace nodes or
   branches.

   Typically, a Widex Servers can trigger WO.Update messages that
   produce the full range of mutations while Widex Renderers trigger
   WO.Update messages that target individual nodes to update their
   properties and attributes.

   WO.Update messages MUST be encoded using formats defined by REX
   [W3C.WD-rex-20060202].

4.2.  WO.Event Message

   The WO.Event messages are primarily used to carry events triggered on
   the Widex Renderer side so that they can be caught by the application
   logic event handlers on the Widex Server side.  A secondary use of



Stirbu & Raggett         Expires April 27, 2007                 [Page 9]


Internet-Draft             The WIDEX Framework              October 2006


   WO.Event messages is where the application logic itself raises events
   that may be caught by event handlers associated with the remote user
   interface.

   Note: Some UI markup languages, e.g.  Glade [1], do not have events
   defined at document level and therefore WO.Event messages MUST be
   able to serialize the events emitted by the associated libraries,
   e.g.  GTK+ [2].

4.3.  WO.Selector Message

   The WO.Selector message MUST contain sufficient information to enable
   the Widex Renderer to add or remove remote event listeners associated
   with particular nodes in the XML DOM.


5.  Processing External Resources

5.1.  References to External Resources

   User interface markup languages may contain references to external
   resources such as images and streaming audio/visual media.  The means
   by which the Widex Renderer accesses these resources is out of scope
   for the Widex Framework.

5.2.  Synchronising with External Resources

   WO.Update messages may including timing information for when they
   should be applied.  In some cases, this will involve synchronising to
   streaming media, for instance, when WO.Update is used to update a
   user interface described in SVG, where the updates need to be
   synchronized with an associated audio stream.


6.  IANA Considerations

   This document makes no request to IANA.


7.  Security Considerations

   The Widex Framework provides no security facilities (e.g.
   authentication or privacy ) of its own.  It relies on the framework
   components for all of these abilities.







Stirbu & Raggett         Expires April 27, 2007                [Page 10]


Internet-Draft             The WIDEX Framework              October 2006


8.  Acknowledgements

   The authors would like to thank Jin Yu for his contribution in
   developing this document.

   The authors would like to thank Juha Wiljakka for good input and
   comments that helped writing this document.


9.  References

9.1.  Normative References

   [DOM2.Core]
              Le Hors, A., Le Hegaret, P., Wood, L., Nicol, G., Robie,
              J., Champion, M., and S. Byrne, "Document Object Model
              (DOM) Level 2 Core Specification", W3C Recommendation,
              November 2000.

   [DOM2.Events]
              Pixley, T., "Document Object Model (DOM) Level 2 Events
              Specification", W3C Recommendation, November 2000.

   [DOM2.Style]
              Wilson, C., Le Hegaret, P., and V. Apparao, "Document
              Object Model (DOM) Level 2 Style Specification",
              W3C Recommendation, November 2000.

   [DOM3.Core]
              Le Hors, A., Le Hegaret, P., Wood, L., Nicol, G., Robie,
              J., and S. Byrne, "Document Object Model (DOM) Level 3
              Core Specification", W3C Recommendation, April 2004.

   [I-D.ietf-widex-requirements]
              Stirbu, V. and D. Raggett, "Widget Description Exchange
              Service (WIDEX) Requirements",
              draft-ietf-widex-requirements-03 (work in progress),
              September 2006.

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

   [W3C.WD-DOM-Level-3-Events-20060413]
              Pixley, T., Hegaret, P., and B. Hoehrmann, "Document
              Object Model (DOM) Level 3 Events Specification", World
              Wide Web Consortium WD WD-DOM-Level-3-Events-20060413,
              April 2006,
              <http://www.w3.org/TR/2006/



Stirbu & Raggett         Expires April 27, 2007                [Page 11]


Internet-Draft             The WIDEX Framework              October 2006


              WD-DOM-Level-3-Events-20060413>.

   [W3C.WD-rex-20060202]
              Berjon, R., "Remote Events for XML (REX) 1.0", World Wide
              Web Consortium WD WD-rex-20060202, February 2006,
              <http://www.w3.org/TR/2006/WD-rex-20060202>.

   [XML1.0]   Yergeau, F., Bray, T., Paoli, J., Sperberg-McQueen, C.,
              and E. Maler, "Extensible Markup Language (XML) 1.0 (Third
              Edition)", W3C Recommendation, February 2004.

9.2.  Informative References

   [MVC]      Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P.,
              and M. Stal, "Pattern-Oriented Software Architecture,
              Volume 1: A System of Patterns", John Wiley & Sons ,
              August 1996.

   [RFC3056]  Carpenter, B. and K. Moore, "Connection of IPv6 Domains
              via IPv4 Clouds", RFC 3056, February 2001.

   [RFC3574]  Soininen, J., "Transition Scenarios for 3GPP Networks",
              RFC 3574, August 2003.

   [RFC3750]  Huitema, C., Austein, R., Satapati, S., and R. van der
              Pol, "Unmanaged Networks IPv6 Transition Scenarios",
              RFC 3750, April 2004.

   [RFC4038]  Shin, M-K., Hong, Y-G., Hagino, J., Savola, P., and E.
              Castro, "Application Aspects of IPv6 Transition",
              RFC 4038, March 2005.

   [RFC4213]  Nordmark, E. and R. Gilligan, "Basic Transition Mechanisms
              for IPv6 Hosts and Routers", RFC 4213, October 2005.

   [RFC4214]  Templin, F., Gleeson, T., Talwar, M., and D. Thaler,
              "Intra-Site Automatic Tunnel Addressing Protocol
              (ISATAP)", RFC 4214, October 2005.

   [RFC4380]  Huitema, C., "Teredo: Tunneling IPv6 over UDP through
              Network Address Translations (NATs)", RFC 4380,
              February 2006.

   [W3C.NOTE-xup-20020528]
              Yu, J., "XUP - Extensible User Interface Protocol", W3C
              NOTE NOTE-xup-20020528, May 2002.

   [W3C.REC-SVG11-20030114]



Stirbu & Raggett         Expires April 27, 2007                [Page 12]


Internet-Draft             The WIDEX Framework              October 2006


              &#28147;, e., Jackson, D., and J. Ferraiolo, "Scalable
              Vector Graphics (SVG) 1.1 Specification", World Wide Web
              Consortium Recommendation REC-SVG11-20030114,
              January 2003,
              <http://www.w3.org/TR/2003/REC-SVG11-20030114>.

   [W3C.REC-xhtml1-20020801]
              Pemberton, S., "XHTML[TM] 1.0 The Extensible HyperText
              Markup Language (Second Edition)", World Wide Web
              Consortium Recommendation REC-xhtml1-20020801,
              August 2002,
              <http://www.w3.org/TR/2002/REC-xhtml1-20020801>.

   [W3C.REC-xml-events-20031014]
              McCarron, S., Raman, T., and S. Pemberton, "XML Events",
              World Wide Web Consortium Recommendation REC-xml-events-
              20031014, October 2003,
              <http://www.w3.org/TR/2003/REC-xml-events-20031014>.

   [W3C.WD-mmi-arch-20060414]
              Barnett, J., Bodell, M., Raggett, D., and A. Wahbe,
              "Multimodal Architecture and Interfaces", World Wide Web
              Consortium WD WD-mmi-arch-20060414, April 2006,
              <http://www.w3.org/TR/2006/WD-mmi-arch-20060414>.

URIs

   [1]  <http://glade.gnome.org/index.html>

   [2]  <http://www.gtk.org/>


Appendix A.  Topology Considerations

   In this section we introduce short scenarios to illustrate how Widex
   services can be deployed in some environments.  Each of the
   enviroments are posing particular challenges and implementers should
   choose the appropriate mechanism to overcome those, as components of
   the Widex Framework.

   The section should provide an introduction to implementers on the
   kind of problems that are induced by the network topology.

A.1.  NAT Traversal

   In the following sections we will describe some of the common
   scenarios involving Widex Elements and NAT traversal.




Stirbu & Raggett         Expires April 27, 2007                [Page 13]


Internet-Draft             The WIDEX Framework              October 2006


A.1.1.  Scenario 1: Widex Server and Renderer Located in Internet

   In this scenario both the Server and Renderer are located somewhere
   in the Internet and are globally accessible via public IP addresses
   and/or Fully Qualified Domain Name (FQDN).

                               **************
                  +--------+  *  Public      *  +--------+
                  | Widex  |--*    Network   *--| Widex  |
                  | Server |  *              *  |Renderer|
                  +--------+   **************   +--------+

          Figure 4: Widex Server and Renderer Located in Internet

A.1.2.  Scenario 2: Widex Server Located in Internet

   In this scenario the Server is located somewhere in the Internet, has
   a globally routable, public IP address (and/or FQDN), and the client
   is behind a NAT device.  The access network is a network where
   private IP addresses are used and NAT is required in order to access
   the public network, e.g. a home network, a hotspot.

                   +--------+   **************
                   | Widex  |  *  Public      *
                   | Server |--*    Network   *
                   +--------+  *              *
                                **************
                                       /
                                  +--------+
                                  |  NAT   |
                                  +--------+
                                      /
                              **************
                             *  Private     *  +--------+
                             *    Network   *--| Widex  |
                             *              *  |Renderer|
                              **************   +--------+

                Figure 5: Widex Server located in Internet

A.1.3.  Scenario 3: Widex Renderer and Server in the Same Network

   In this scenario the Server is located behind the same NAT device as
   the Renderer.







Stirbu & Raggett         Expires April 27, 2007                [Page 14]


Internet-Draft             The WIDEX Framework              October 2006


                               **************
                              *   Public     *
                              *    Network   *
                              *              *
                               **************
                                     |
                                 +--------+
                                 |  NAT   |
                                 +--------+
                                     |
                               **************
                 +--------+   *  Local Area  *   +--------+
                 | Widex  |---*    Network   *---| Widex  |
                 | Server |   *              *   |Renderer|
                 +--------+    **************    +--------+

      Figure 6: Widex Renderer and Server in the same private network

   The network might be managed in which case a centralised service
   discovery and session setup mechanism should be used, or unmanaged
   and a peer-to-peer service discovery and session setup mechanism
   should be used.

A.2.  IPv4-IPv6 Interworking Considerations

   The global deployment of IPv6 is underway, creating an IPv4/IPv6
   Internet consisting of IPv4-only and dual-stack IPv4/IPv6 networks
   and nodes RFC 4213 [RFC4213].  There may also be IPv6-only nodes.  It
   is highly probable that there will be situations when IPv4-only Widex
   entities will want to communicate with dual-stack IPv4/IPv6 Widex
   entities.  Also, a valid scenario is where two dual-stack IPv4/IPv6
   Widex entities are communicating over a network that includes an
   IPv4-only segment.  In these scenarios, it is expected that at least
   one Widex Element will be attached to an unmanaged network or to a
   3GPP network; IPv6 transition scenarios for unmanaged networks are
   described in RFC 3750 [RFC3750] and for 3GPP networks are described
   in RFC 3574 [RFC3574].

   A good guideline, when talking about migrating from IPv4 to IPv6, is
   to select such protocols that do not have big issues with NAT
   traversal and IPv6 transition mechanisms.

   In the following sections, we will describe some of the common
   scenarios involving Widex Elements and IPv4-IPv6 interworking.







Stirbu & Raggett         Expires April 27, 2007                [Page 15]


Internet-Draft             The WIDEX Framework              October 2006


A.2.1.  Dual-Stack Widex Element Communicating with IPv4-Only Widex
        Element Using IPv4

                  +---------+                 +---------+
                  |  Widex  |                 |  Widex  |
                  | Element |   ***********   | Element |
                  +---------+  *           *  +---------+
                  |IPv4/IPv6|--* IPv4/IPv6 *--|IPv4-only|
                  +---------+  *           *  +---------+
                                ***********

    Figure 7: Dual-stack WE communicating with IPv4 only WE using IPv4

A.2.2.  Dual-Stack Widex Elements Communicating over IPv4 Segment using
        IPv6

   +---------+                                               +---------+
   |  Widex  |                                               |  Widex  |
   |  Server |   ***********    ***********    ***********   | Renderer|
   +---------+  *           *  *           *  *           *  +---------+
   |IPv4/IPv6|--* IPv4/IPv6 *--* IPv4-only *--* IPv4/IPv6 *--|IPv4/IPv6|
   +---------+  *           *  *           *  *           *  +---------+
                 ***********    ***********    ***********

    Figure 8: Dual-stack WE communicating over IPv4 segment using IPv6

   When dual-stack Widex Elements communicate using IPv6 over an IPv4-
   only segment, tunneling mechanisms such as 6to4 [RFC3056], ISATAP
   [RFC4214] or Teredo [RFC4380] MAY be used by the intermediate nodes
   or by the nodes hosting the Widex Elements to tunnel the IPv6 traffic
   over the IPv4-only segment.

A.2.3.  IPv4-Only Widex Element communicating with an IPv6-Only Widex
        Element

    +---------+                                              +---------+
    |  Widex  |                                              |  Widex  |
    | Element |   ***********   +----------+   ***********   | Element |
    +---------+  *           *  | Protocol |  *           *  +---------+
    |IPv4-only|--* IPv4-only *--|Translator|--* IPv6-only *--|IPv6-only|
    +---------+  *           *  |   /ALG   |  *           *  +---------+
                  ***********   +----------+   ***********

         Figure 9: IPv4-Only WE communicating with an IPv6-Only WE

   Protocol translation / Application Level Gateway (ALG) functionality
   is necessary in the network in order to enable the communication
   between an IPv4-only Widex Element with an IPv6-only Widex Element.



Stirbu & Raggett         Expires April 27, 2007                [Page 16]


Internet-Draft             The WIDEX Framework              October 2006


   This is not a typical case as the assumption is that IPv6-only nodes
   will not be common in the near future.

A.2.4.  Application Aspects of IPv6 Transition

   Application developers, implementing the Widex framework and
   services, which want to enable IPv6 support in implementations
   running on IPv6 hosts or want to develop IP version-independent
   implementations SHOULD consider recommendations written in RFC 4038
   [RFC4038].


Appendix B.  Widex Framework Deployment Considerations

   This section describes the possible scenarios for deploying the Widex
   Framework.

B.1.  Simple Widex Elements

   In this scenario both devices running the Widex Server and the Widex
   Renderer are using the same platform.

B.2.  Multimodal Widex Server

   In this scenario the application running in the Widex Server is a
   multi-modal application compliant with W3C's Multimodal Architecture
   and Interfaces [W3C.WD-mmi-arch-20060414], enabling him to interact
   with several Widex Renderers.

B.3.  Multiple Rendering Engines Widex Renderer

   In this scenario the Widex Renderer has support for multiple
   rendering engines, enabling it to interact with several types of
   Widex Servers.

B.4.  Hybrid

   In this scenario the application running in the Widex Server is a
   multi-modal application and at the same time the Widex Renderer has
   multiple rendering capabilities.  It is the job of the Service
   Discovery and Session Setup component to determine which is the most
   appropriate modality of interaction.









Stirbu & Raggett         Expires April 27, 2007                [Page 17]


Internet-Draft             The WIDEX Framework              October 2006


Authors' Addresses

   Vlad Stirbu
   Nokia
   Visiokatu 3
   Tampere  33720
   Finland

   Phone: +358 7180 08000
   Email: vlad.stibu@nokia.com


   Dave Raggett
   W3C/Volantis
   35 Frome Road
   Bradford on Avon, Wiltshire  BA15 2EA
   United Kingdom

   Phone: +44 1225 866240
   Email: dsr@w3.org































Stirbu & Raggett         Expires April 27, 2007                [Page 18]


Internet-Draft             The WIDEX Framework              October 2006


Full Copyright Statement

   Copyright (C) The Internet Society (2006).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights 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; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).





Stirbu & Raggett         Expires April 27, 2007                [Page 19]