O. Pfeiffer
   Internet Draft                                             ESAcademy
   Document: draft-pfeiffer-remoteaccess-00.txt             P. Lukowicz
   Expires: July 2003                                               ETH
   Category: Best Current Practice                         January 2003


                     Remote Access to Embedded Devices


Status of this Memo

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

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

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

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


Abstract

   The aim of this document is to standardize remote access options to
   parameters of embedded devices with limited resources.  Typically
   such devices are based on 8-bit or 16-bit microcontrollers with
   limited memory (64K or less) and a low operating frequency (20 MHz or
   less).  The protocol described in this document uses existing markup
   formats to specify modifiable parameters of embedded devices and
   existing protocols to transfer these parameters between clients and
   servers.


Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC-2119 [2].



Pfeiffer                 Expires - July 2003                 [Page 1]


                  Remote Access to Embedded Devices      January 2003


Table of Contents

   1. Introduction...................................................2
      1.1 Terminology and Abbreviations..............................3
   2. Remote Access Parameter Description Format (RAPDF).............5
      2.1 RAPDF Outline..............................................5
      2.2 Storing the RAPDF..........................................6
   3. Protocols and Formats Used.....................................7
   4. General RAPDF Usage Example....................................7
   Security Considerations...........................................8
   References........................................................8
   Appendix A û RAPDF Examples.......................................9
   Author's Addresses...............................................12


1. Introduction

   Remote access to embedded devices in our homes, factories, and
   vehicles or to personal mobile electronic appliances becomes reality.
   The RFC2324 [3] published on April 1st, 1998 was a humorous approach:
   getting a coffee machine online and needing a Hyper Text Coffee Pot
   Control Protocol (HTCPCP/1.0) seemed to be funny at that time.

   Today RFC2324 does not sound as funny anymore - it is closer to
   reality today than it was on its publishing date.  There is a clear
   drive in the industry to Internet-enable embedded device like climate
   control units and appliances - and coffee machines.

   There are attempts by several companies to Internet-enable their
   products û with some companies inventing their own proprietary
   protocols and methods on how to allow remote access via the Internet.

   Unfortunately this approach is not user-friendly.  Users have to get
   acquainted with different methods and tools on how to access their
   devices via email, web or other services û and none of them are
   compatible with each other.

   The goal of this document is to find a common ground for remote
   access functionality û from the client viewpoint.  No matter what
   kind of embedded system is connected to the Internet the client
   should be able to expect some standardized methods for the remote
   access using common services like email, regular web browsers or
   minimized web browsers for PDAs or mobile phones,.

   This document does not invent any new Internet technologies - it just
   RECOMMENDS how existing protocols and methods should be used to offer
   users standardized methods for remote access.




Pfeiffer                 Expires - July 2003                 [Page 2]


                  Remote Access to Embedded Devices      January 2003


   For the scope of this document it does not matter how an embedded
   device is connected to the Internet.  Connection can be directly or
   via a specialized gateway for embedded devices that might use a
   simple serial link or other lower cost network or fieldbus to
   exchange information with the embedded devices.  However, this
   document assumes that there is at least one Internet node that
   manages one or more embedded device(s) and that offers the
   standardized protocols and methods described in this document to
   allow remote access to the embedded device(s).  We distinguish
   between three types of devices:

   1) Remote Access Client (RAC): the system that attempts to access an
      embedded device over the Internet.
   2) Remote Access Server (RAS): the system that manages the internet
      access to one or multiple embedded device and
   3) Remote Access Device (RAD): the device that is to be accessed
      through the Internet.

   In some implementations, the RAS might be implemented directly with
   one RAD. In others, one RAS will be able to handle multiple RADs.


1.1 Terminology and Abbreviations

   RAD û Remote Access Device
   The embedded device(s) that can be accessed via the Internet.

   RAS û Remote Access Server
   This is the access point for the Remote Access Client.  The RAS
   manages one or multiple Remote Access Devices and provides the
   Internet connectivity.  The RAS can be part of an embedded device or
   part of a gateway connecting several Remote Access Devices to the
   Internet.

   RAC û Remote Access Client
   A software or hardware client used to provide remote access to a
   Remote Access Server.  This can be a web browser, email client, PDA
   or any other internet connected device.

   RAPDF û Remote Access Parameter Description Format
   A format that describes all Remote Access Devices and their
   configurable parameters connected to a single Remote Access Server.









Pfeiffer                 Expires - July 2003                 [Page 3]


                  Remote Access to Embedded Devices      January 2003




                                     +------------+
   +------------+                    !   RAS A    !
   !    RAC     ! <--> INTERNET <--> ! with RAPDF !
   +------------+                    +------------+
                                     !   RAD 1    !
                                     +------------+

   FIGURE 1 û Remote Access to a RAS/RAD combination device

   Figure 1 shows a Remote Access Device (RAD 1) that directly
   implements a Remote Access Server (RAS A).  The RAS A can directly
   serve RAPDF information to a Remote Access Client (RAC).


                                     +------------+
   +------------+                    ! Web server !
   !   RAS B    ! <--> INTERNET <--> ! with RAPDF !
   +------------+                    ! info from  !
         !                           ! RAD 2-4    !
     E N !   +------------+          +------------+
     m e +---!   RAD 2    !
     b t !   +------------!
     e w !
     d o !   +------------+
     d r +---!   RAD 3    !
     e k !   +------------!
     d   !
         !   +------------+
         +---!   RAD 4    !
             +------------!

   FIGURE 2 û Remote Access to devices on a local, embedded network

   Figure 2 shows how one Remote Access Server (RAS B) can handle
   multiple Remote Access Devices (RAD 2-4).  The RADs can be connected
   to the RAS via a local, low-cost serial network or fieldbus.
   Depending on resources available to RAS and RAD, the RAS MAY retrieve
   the RAPDF information from a web server instead from the RAD itself,
   after the appropriate URL was reported to the RAS by each RAD.










Pfeiffer                 Expires - July 2003                 [Page 4]


                  Remote Access to Embedded Devices      January 2003


2. Remote Access Parameter Description Format (RAPDF)

   Every remote access devices has certain parameters/variables that we
   want to be able to read or write through an Internet connection.

   All accessible parameters (both, read and write) of a certain device
   MUST be defined using the Remote Access Parameter Description Format
   (RAPDF).


2.1 RAPDF Outline

   RAPDF is based on HTML 4.0 [4] and obeys the following rules:

   1.)   The header section MUST include the META tag

   <META name=ötypeö content=öRAPDF 1.0ö>


   2.)   The body section MUST include AT LEAST ONE HTML FORM. The name
   of the form and the action identifies exactly one RAD (Remote Access
   Device). For example:

   <FORM name=öRemote Access to MyHomeDeviceö
   action="mailto:remote@mail.com?subject=RAPDF" method="post">
   ...
   </FORM>

   Additionally, it is RECOMMENDED to use the <LABEL> tag to ensure
   proper display of the formsÆ name:

   <LABEL for=öra_my_formö>MyHomeDevice</LABEL>
   <FORM name=öRemote Access to MyHomeDeviceö
   action="mailto:remote@mail.com?subject=RAPDF" method="post"
   id=öra_my_formö>
   ...
   </FORM>


   3.)   For every parameter of the embedded device the form contains a
   dedicated field The tags LABEL and ID MUST be used to associate a
   name with the corresponding parameter:

   <LABEL for="ra_temp_lr">Living Room Temperature</LABEL>
   <INPUT name="temp_living_room" type="text" id="ra_temp_lr">

   <INPUT name="light_living" type="checkbox" value="Living Room"
   id="ra_light_lr">
   <LABEL for="ra_light_lr">Living Room Lights</LABEL>


Pfeiffer                 Expires - July 2003                 [Page 5]


                  Remote Access to Embedded Devices      January 2003


   <LABEL for="ra_safety">Select the device to shut off</LABEL>
   <SELECT name="safety_shutoff" id="ra_safety">
     <OPTION>None</OPTION>
     <OPTION>Water Heater</OPTION>
     <OPTION>Furnace</OPTION>
     <OPTION>Stove</OPTION>
   </SELECT>


   4.)   The usage of formatting tags such as paragraphs, tables, inline
   graphics or tables has no effect on the automatic interpretation of
   an RAPDF.  Devices or processing tools that work automatically on a
   RAPDF MAY ignore all formatting tags (especially if implemented on
   medium to low performance systems).


   5.)   It is recommended to use FIELDSET and LEGEND where appropriate.
   See the Appendix for examples.


   6.)   The ôreadonlyö tag is supported for inputs and marks parameters
   of the embedded device that cannot be changed. Example:

   <LABEL for="ra_temp">Current Temperature</LABEL>
   <INPUT name="temp" type="text" id="ra_temp_lr" readonly>

   Note that there is no particular language specified for an RAPDF.
   The description in the <LABEL> section can be provided in any
   language.

   The primary identifier to match a parameter to the RAPDF is the
   ônameö of each <FORM>, <INPUT> or <SELECT> element.  These variable
   names MUST remain the same in any language, as these would be most
   likely hard-coded into the firmware of the RAD.

   Also note that any other HTML tags for formatting or links may be
   used outside or within a FORM. However, each FORM MUST be associated
   with a RAD.


2.2 Storing the RAPDF

   Manufacturers of Remote Access Devices MUST provide the RAPDF
   information along with their devices.

   As code and data space in many embedded devices is limited, it is
   recommended to provide the RAPDF information on HTTP servers [5] on
   the Internet.  This way an embedded device does not need to store the



Pfeiffer                 Expires - July 2003                 [Page 6]


                  Remote Access to Embedded Devices      January 2003


   entire RAPDF information locally.  Storing the URL indicating where
   to find the RAPDF is sufficient for such cases.

   If the embedded device integrates a Remote Access Server (RAS)
   directly and its CPU performance and disk storage capacity is
   sufficient in size, the RAPDF MAY be stored and made available by the
   device itself.


3. Protocols and Formats Used

   Which protocols are used to exchange the RAPDF information between
   the RAD, RAS and RAC is not specified in this document.  Depending on
   the application a variation of existing email or web protocols MAY be
   used.  Also depending on the application additional security
   protocols should be used to prohibit unauthorized access.

   The information flow and formats used are:

   Information sent from the RAS to the RAC MUST be in RAPDF.  This
   ensures support of a wide variety of existing and future clients.

   Information sent from the RAC to the RAS MUST be the regular POST
   reply used for HTML forms (see [4] and [5]).

   Information flow between RAD and RAS is application and manufacturer
   specific.  Either the RAD provides the RAS with the entire RAPDF or
   it provides the RAS with information where to get the RAPDF (for
   example by giving it a URL to the RAPDF info)


4. General RAPDF Usage Example

   To illustrate how Remote Access MAY be implemented in accordance to
   this document, here is an example:

   In an automated home, one RAS provides access to several RAD, such as
   thermostats, light controls, etc.  The RAS is configured to recognize
   a list of authorized users.

   Using a RAC, an authorized user requests the RAPDF from the RAS.  The
   RAS assembles the RAPDF information by either getting the data from
   the RAD themselves û or if they are minimal implementations,
   retrieves the RAPDF information from the manufacturerÆs web page
   (using a URL reported by the RAD).

   Once the RAPDF is assembled and the current data values / settings
   inserted, the RAS transmits the RAPDF to the RAC who requested it.



Pfeiffer                 Expires - July 2003                 [Page 7]


                  Remote Access to Embedded Devices      January 2003


   If the user requests changes to the data values / settings, the new
   values are transmitted back to the RAS who is in charge of applying
   them.


Security Considerations

   This document does not address the security issue, as it focuses on
   the data format exchanged between the RAC and RAS, not on the
   protocols used to exchange the data. Depending on the security level
   required by the application, an appropriate secure transmission
   protocol SHOULD be used.


References


   1  Bradner, S., "The Internet Standards Process -- Revision 3", BCP
      9, RFC 2026, October 1996.

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

   3  L. Masinter, ôHyper Text Coffee Pot Control Protocol
      (HTCPCP/1.0)ö, RFC2324, April 1998.

   4  Dave Ragget, Arnaud Le Hors, Ian Jacobs, ôHTML 4.01ö,
      www.w3.org/TR/html4, December 1999.

   5  R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P.
      Leach, T. Berners-Lee, ôHypertext Transfer Protocol -- HTTP/1.1ô,
      RFC2616, June 1999.



















Pfeiffer                 Expires - July 2003                 [Page 8]


                  Remote Access to Embedded Devices      January 2003


Appendix A û RAPDF Examples

   NOTE: Additional examples are available at:
   http://www.embeddedinternetworking.com/remoteaccess/


   A.1 RAPDF Example with minimal formatting

   <HTML>

   <HEAD>
   <meta http-equiv="Content-Type" content="text/html; charset=windows-
   1252">
   <META name=ötypeö content=öRAPDF 1.0ö>
   <TITLE>Remote Access to Home Control Center</TITLE>
   </HEAD>

   <BODY>

   <LABEL for="ra_form_name">Remote Access to Home Control
   Center</LABEL>
   <FORM name=öRemote Access to MyDeviceö
   action="remote@mail.com?subject=RAPDF%20Command%20Set" method="post"
   id="ra_form_name">
   <P>
     <LABEL for="ra_temp_lr">Living Room Temperature</LABEL>
     <INPUT name="temp_living_room" type="text" id="ra_temp_lr"><br>
     <LABEL for="ra_temp_mb">Master Bedroom Temperature</LABEL>
     <INPUT name="temp_master_bedroom" type="text" id="ra_temp_mb"><br>
     <LABEL for="ra_temp_gr">Guest Room Temperature</LABEL>
     <INPUT name="temp_guest_bedroom" type="text" id="ra_temp_gr"><br>
   </P>
   <P>
     <INPUT name="light_living" type="checkbox" value="Living Room"
   id="ra_light_lr">
     <LABEL for="ra_light_lr">Living Room Lights</LABEL><br>
     <INPUT name="light_kitchen" type="checkbox" value="Kitchen"
   id="ra_light_ki">
     <LABEL for="ra_light_ki">Kitchen Lights</LABEL><br>
     <INPUT name="light_bath" type="checkbox" value="Bathroom"
   id="ra_light_ba">
     <LABEL for="ra_light_ba">Bathroom Lights</LABEL><br>
   </P>
   <P>
     <LABEL for="ra_safety">Safety Shut-off</LABEL><br>
     <SELECT name="safety_shutoff" id="ra_safety">
      <OPTION>None</OPTION>
      <OPTION>Water Heater</OPTION>
      <OPTION>Furnace</OPTION>


Pfeiffer                 Expires - July 2003                 [Page 9]


                  Remote Access to Embedded Devices      January 2003


      <OPTION>Stove</OPTION>
     </SELECT>
   </P>
   <P>
     <INPUT name="time_method" type="radio" value="Once">
     <LABEL for="ra_time_now">Activate settings now</LABEL><br>
     <INPUT name="time_method" type="radio" value="Daily">
     <LABEL for="ra_time_daily">Activate settings every 24
   hours</LABEL><br>
     <INPUT name="time_method" type="radio" value="Weekly">
     <LABEL for="ra_time_weekly">Activate settings every 7
   days</LABEL><br>
   </P>
   <P>
    <INPUT type="submit" value="Send Settings"> <INPUT type="reset"
   value="Reset Values">
   </P>
   </FORM>

   </BODY>

   </HTML>


   A.2 RAPDF Example with FIELDSET and LEGEND

   <HTML>

   <HEAD>
   <META http-equiv="Content-Type" content="text/html; charset=windows-
   1252">
   <META name=ötypeö content=öRAPDF 1.0ö>
   <TITLE>Remote Access to Home Control Center</TITLE>
   </HEAD>

   <BODY>

   <LABEL for="ra_form_name">Remote Access to Home Control
   Center</LABEL>
   <FORM name=öRemote Access to MyDeviceö
   action="mailto:ra@mail.com?subject=RAPDF%20Command%20Set"
   method="post" id="ra_form_name">

    <FIELDSET>
     <LEGEND>Climate Control Settings</LEGEND>
     <LABEL for="ra_temp_lr">Living Room Temperature</LABEL>
     <INPUT name="temp_living_room" type="text" id="ra_temp_lr"><br>
     <LABEL for="ra_temp_mb">Master Bedroom Temperature</LABEL>
     <INPUT name="temp_master_bedroom" type="text" id="ra_temp_mb"><br>


Pfeiffer                 Expires - July 2003                [Page 10]


                  Remote Access to Embedded Devices      January 2003


     <LABEL for="ra_temp_gr">Guest Room Temperature</LABEL>
     <INPUT name="temp_guest_bedroom" type="text" id="ra_temp_gr"><br>
    </FIELDSET>

    <FIELDSET>
     <LEGEND>Light Controls</LEGEND>
     <INPUT name="light_living" type="checkbox" value="Living Room"
   id="ra_light_lr">
     <LABEL for="ra_light_lr">Living Room Lights</LABEL><br>
     <INPUT name="light_kitchen" type="checkbox" value="Kitchen"
   id="ra_light_ki">
     <LABEL for="ra_light_ki">Kitchen Lights</LABEL><br>
     <INPUT name="light_bath" type="checkbox" value="Bathroom"
   id="ra_light_ba">
     <LABEL for="ra_light_ba">Bathroom Lights</LABEL><br>
    </FIELDSET>

    <FIELDSET>
     <LEGEND>Safety Shut Off</LEGEND>
     <LABEL for="ra_safety">Select the device to shut off</LABEL><br>
     <SELECT name="safety_shutoff" id="ra_safety">
      <OPTION>None</OPTION>
      <OPTION>Water Heater</OPTION>
      <OPTION>Furnace</OPTION>
      <OPTION>Stove</OPTION>
     </SELECT>
    </FIELDSET>

    <FIELDSET>
     <LEGEND>Timing Information</LEGEND>
     <INPUT name="time_method" type="radio" value="Once">
     <LABEL for="ra_time_now">Activate settings now</LABEL><br>
     <INPUT name="time_method" type="radio" value="Daily">
     <LABEL for="ra_time_daily">Activate settings every 24
   hours</LABEL><br>
     <INPUT name="time_method" type="radio" value="Weekly">
     <LABEL for="ra_time_weekly">Activate settings every 7
   days</LABEL><br>
    </FIELDSET>

    <INPUT type="submit" value="Send Settings"> <INPUT type="reset"
   value="Reset Values">

   </FORM>

   </BODY>

   </HTML>



Pfeiffer                 Expires - July 2003                [Page 11]


                  Remote Access to Embedded Devices      January 2003



Author's Addresses

   Olaf Pfeiffer
   Embedded Systems Academy
   50 Airport Parkway
   San Jose, California 95110
   Email: opfeiffer@esacademy.com

   Dr. Paul (Pawel) Lukowicz
   ETH (swiss Federal Institute of Technology) Zurich
   Wearable Computing Lab
   Gloriastrasse 35
   CH-8092 Zurich
   Email: lukowicz@ife.ee.ethz.ch




































Pfeiffer                 Expires - July 2003                [Page 12]