home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_s_z / draft-wall-acap-vsothers-00.txt < prev    next >
Text File  |  1996-09-12  |  23KB  |  561 lines

  1.  
  2. Network Working Group                                            M. Wall
  3. Internet Draft                                           Carnegie Mellon
  4. Document: draft-wall-acap-vsothers-00.txt                 September 1996
  5.  
  6.  
  7.              The Application Configuration Access Protocol
  8.                in the Context of Other Internet Protocols
  9.  
  10. Status of this Memo
  11.  
  12.    This document is an Internet Draft.  Internet Drafts are working
  13.    documents of the Internet Engineering Task Force (IETF), its Areas,
  14.    and its Working Groups.  Note that other groups may also distribute
  15.    working documents as Internet Drafts.
  16.  
  17.    Internet Drafts are draft documents valid for a maximum of six
  18.    months.  Internet Drafts may be updated, replaced, or obsoleted by
  19.    other documents at any time.  It is not appropriate to use Internet
  20.    Drafts as reference material or to cite them other than as a
  21.    ``working draft'' or ``work in progress''.
  22.  
  23.    To learn the current status of any Internet-Draft, please check the
  24.    1id-abstracts.txt listing contained in the Internet-Drafts Shadow
  25.    Directories on ds.internic.net, nic.nordu.net, ftp.isi.edu, or
  26.    munnari.oz.au.
  27.  
  28.    A revised version of this draft document will be submitted to the RFC
  29.    editor as a Proposed Standard for the Internet Community.  Discussion
  30.    and suggestions for improvement are requested.  This document will
  31.    expire before April 1997.  Distribution of this draft is unlimited.
  32.  
  33. 1.   Abstract
  34.  
  35.    The Application Configuration Access Protocol (ACAP) provides a
  36.    client/server-based mechanism for remote access of structured list
  37.    information appropriate to common uses by internet clients. This
  38.    document contrasts the approach ACAP takes to the problem of remote
  39.    storage of client information to the possible use of existing
  40.    protocols for this same purpose.
  41.  
  42. 2.   Introduction: The Key Characteristics of ACAP
  43.  
  44.    The Application Configuration Access Protocol provides a
  45.    client/server-based mechanism for remote access of structured list
  46.    information appropriate to common uses by internet clients. It is a
  47.    user- and client- based approach, one we believe has unique merit.
  48.  
  49.    The question arises, however: Why another internet protocol? We at
  50.  
  51.  
  52.  
  53. M. Wall                                                         [Page 1]
  54.  
  55. Internet DRAFT          ACAP VS. OTHER PROTOCOLS      September 11, 1996
  56.  
  57.  
  58.    Project Cyrus at Carnegie Mellon University have tried to explain the
  59.    use for the protocol, why we came to the conclusion a new protocol
  60.    was required (based on years of experience in internet client/server
  61.    development), and an explanation of the functional aspects of the
  62.    protocol in the white paper "The Application Configuration Access
  63.    Protocol and User Mobility on the Internet"
  64.    (http://andrew2.andrew.cmu.edu/cyrus/acap/white-paper.html).
  65.  
  66.    The legitimate question also comes up in this context, though --
  67.    couldn't the required functionality in ACAP be achieved with another,
  68.    existing protocol?  This document summarizes the alternative
  69.    protocol-based (and some non-protocol-based) approaches available
  70.    through current technology by way of illuminating the unique approach
  71.    of ACAP and why we feel its functional capacities have to be
  72.    implemented as a separate protocol.
  73.  
  74.    The key characteristics of ACAP are:
  75.  
  76.    * ACAP is designed to accommodate disconnected use
  77.  
  78.    * ACAP is designed to allows server data (and data structures) to be
  79.    writable by user/clients
  80.  
  81.    * ACAP is designed to handle potentially (though not necessarily)
  82.    large sets of data
  83.  
  84.    * ACAP is designed to allow granularity in access to data through an
  85.    Access Control List mechanism
  86.  
  87.    * ACAP is designed to allow per-user storage of information
  88.    (accommodating problems of mobile, disconnected, and "kiosk"-model
  89.    users)
  90.  
  91.    * ACAP is designed to allow client definition of data fields,
  92.    allowing user-side flexibility
  93.  
  94.    * ACAP is designed with per-user security and authenticated operation
  95.    states
  96.  
  97.    * ACAP is structured to enable server-side searching.
  98.  
  99.    The ACAP White Paper goes into some detail as to why these are
  100.    considered required features. Here we concentrate on how other
  101.    protocols stack up against these features. (Table 1 below provides a
  102.    checklist of key protocol features among the various approaches that
  103.    have been suggested may partially accomplish ACAP's functional
  104.    goals).
  105.  
  106.  
  107.  
  108.  
  109. M. Wall                                                         [Page 2]
  110.  
  111. Internet DRAFT          ACAP VS. OTHER PROTOCOLS      September 11, 1996
  112.  
  113.  
  114.    The other protocols and approaches to which we are comparing ACAP in
  115.    this document include: LDAP (Lightweight Directory Access Protocol)
  116.    and directory services in general; DHCP (Dynamic Host Configuration
  117.    Protocol); SNMP (Simple Network Management Protocol); HTTP (Hypertext
  118.    Transfer Protocol); DNS (Domain Naming Service); distributed
  119.    filesystems, such as NFS and AFS; and traditional database-style
  120.    implementations, such as SQL.
  121.  
  122.    We believe in the concept of 'the right tool for the right job'. We
  123.    have no love for re-implementing the wheel, but in researching the
  124.    available options in the context of Project Cyrus, we discovered this
  125.    particular type of precision screwdriver, and trying to get one of
  126.    these other protocols -- designed for very different forms of
  127.    transactions -- is like using a heavy-duty hammer or a wrench to get
  128.    this particular screw attached.
  129.  
  130.    Let us look, then, at the job for which each of the above approaches
  131.    was intended by way of an introduction to their flaws in trying to
  132.    apply them to ACAP's job.
  133.  
  134. 3.   Protocol Comparison Chart
  135.  
  136.       Table 1
  137.       Protocol Characteristic Chart
  138.       Internet Client/Server Data Access - Protocols and Approaches
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165. M. Wall                                                         [Page 3]
  166.  
  167. Internet DRAFT          ACAP VS. OTHER PROTOCOLS      September 11, 1996
  168.  
  169.  
  170.                                           PROTOCOL/APPROACH
  171.                       +------------------------------------------------------+
  172.                       |ACAP |LDAP, | DHCP | SNMP | HTTP | DNS  |NFS,AFS|Data-|
  173.          FEATURE      |     |et al |      |      |      |      | et al |bases|
  174.                       +------------------------------------------------------+
  175.    Disconnected use   | Yes | No   | No   | No   | No   | No*1 | No*2  | No*3|
  176.                       +------------------------------------------------------+
  177.    Client-writable    | Yes | Yes  | No   | Yes*4| No   | No   | Yes   | Yes |
  178.                       +------------------------------------------------------+
  179.    Potentially Large  | Yes | Yes  | No   | ?    | No   | No   | Yes   | Yes |
  180.                       +------------------------------------------------------+
  181.    Access Control List| Yes | Yes  | No   | Yes  | No   | No   | Yes   | No  |
  182.                       +------------------------------------------------------+
  183.    User Storage       | Yes | No   | No   | No   | ?    | No   | Yes   | No  |
  184.                       +------------------------------------------------------+
  185.    Client-Definable   | Yes | No   | No   | No   | ?    | Yes*5| Yes   | Yes |
  186.                       +------------------------------------------------------+
  187.    Per-user  Security | Yes | Yes  | ?    | No   | ?    | No   | Yes   | Yes |
  188.                       +------------------------------------------------------+
  189.    Server-searching   | Yes | Yes  | No   | ?    | No   | No   | No*6  | Yes |
  190.                       +------------------------------------------------------+
  191.    client/server      | Yes | Yes  | Yes  | Yes  | Yes  | Yes  | No    | No  |
  192.                       +------------------------------------------------------+
  193.    non-proprietary    | Yes | Yes  | Yes  | Yes  | Yes  | Yes  | No    | No  |
  194.                       +------------------------------------------------------+
  195.  
  196.    Yes = has this characteristic
  197.    No = does not have this characteristic
  198.    ? = not fully implemented or unclear if this could support this feature
  199.    * = qualified yes or no, see footnote
  200.  
  201.    This chart addresses capabilities, not necessarily typical use
  202.    (such as SNMP's client-writing capability).
  203.  
  204.    NOTES:
  205.  
  206.    1. Only via the cache, which is static and non-authoritative.
  207.    2. Typically limited scalability; limited real use.
  208.    3. Transaction-locking models make this highly implementation-dependent.
  209.    4. The MIB is typically authoritative, however.
  210.    5. Usually used for limited local override, i.e. trusting a hosts file.
  211.    6. Some filesystems can search, but usually without much structure.
  212.    Most don't except through OS extensions, anyway.
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221. M. Wall                                                         [Page 4]
  222.  
  223. Internet DRAFT          ACAP VS. OTHER PROTOCOLS      September 11, 1996
  224.  
  225.  
  226. 4.   Considerations of Applying Other Protocols to ACAP
  227.  
  228.  
  229.    LDAP and Directory Services (CSO, Whois++, etc.)
  230.  
  231.    ACAP is designed with per-user and client-side control over entries
  232.    in mind, while directory service protocols are designed (inherently)
  233.    for server-side authority and administrative control.
  234.  
  235.    Directory services are designed for fast lookup of relatively static,
  236.    public data. Structures are defined by the server, and as such the
  237.    server controls the administrative aspects of the client/server
  238.    relationship. The authority for the database is entirely server-
  239.    administered. In other words, if a client were to have a need for a
  240.    non-pre-defined namespace or storagespace on a server, the server's
  241.    administrator would have to re-define a field in the database. In
  242.    many implementations of directory services, this cannot be done
  243.    "live" and requires partial reconstruction of the database. LDAP in
  244.    particular was designed for "Lightweight" access to the complex X.500
  245.    directory structures, in part as a response to the difficulty in
  246.    getting viable implementations of X.500 directory services just for
  247.    the base directory information for which it was intended (oft cited
  248.    as being too complex for the immediate job at hand.)
  249.  
  250.    Given the rapid pace at which client-side options change even within
  251.    a single application, not to mention the diversity of multiple
  252.    applications being used for similar tasks, the directory services
  253.    approach is singularly ill-suited to supporting dynamic client-side
  254.    data definitions. Extending this problem area to include the issue of
  255.    handling different data types, the structured directory service is
  256.    hampered even more in its ability to accommodate the diverse nature
  257.    of user data.
  258.  
  259.    Let's consider a couple of practical problems. Directory servers
  260.    don't have per-user quotas for control of option storage space; ACAP
  261.    does.  None of the popular directory protocols supports disconnected
  262.    operation, which is essential for typical client use patterns (ACAP
  263.    does). Meaningful inheritance patterns and hierarchies -- such as
  264.    site, system, group, user, etc. -- are non-existent in the directory
  265.    services mentioned. Per-user identification mechanisms, where they
  266.    exist at all, are cumbersome to deploy per-user on a large scale.
  267.    ACAP by contrast allows fairly easy per-user credential control for
  268.    thousands of users. In short, directory service protocols are missing
  269.    many of the features which are fundamental to practical application
  270.    configuration information.
  271.  
  272.    We know of at least one vendor that is attempting to extend LDAP to
  273.    include a structured option space for a single client. This approach
  274.  
  275.  
  276.  
  277. M. Wall                                                         [Page 5]
  278.  
  279. Internet DRAFT          ACAP VS. OTHER PROTOCOLS      September 11, 1996
  280.  
  281.  
  282.    probably has merit for extremely well- and narrowly-defined
  283.    client/server arrangements, but because it requires pre-defined
  284.    cooperation between data structures on client and server side, and is
  285.    limited to a single, specific client, is a special case solution.
  286.    ACAP attempts to provide a generalized solution to the specific
  287.    problems of internet client/server applications, rather than
  288.    piggybacking (like a Swiss Army Knife) onto a less flexible protocol
  289.    designed for a different purpose.
  290.  
  291.    One side question that frequently comes up in comparing ACAP to LDAP
  292.    and other directory services protocols is the application of IMSP,
  293.    ACAP's predecessor, to the use of applications which use
  294.    addressbooks. ACAP will also have obvious usefulness for this
  295.    function. Rather than being a competing "directory" service, it's
  296.    better to divide the universe of the semantically ambiguous phrase
  297.    "addressbooks" into two distinct types and uses of data.  LDAP and
  298.    directory services provide authoritative, institution- and
  299.    enterprise-wide data about users and "top-down" definitions of groups
  300.    of users. It's somewhat analogous to the company directory or the
  301.    Phone Book (the big paper thing next to your telephone.)
  302.  
  303.    The use of ACAP for addressbooks (as we've discovered from several
  304.    years of experience with IMSP, ACAP's predecessor, which was fully
  305.    implemented for this purpose) has very different characteristics.
  306.    ACAP/IMSP addressbooks are for the user's own view, organization, and
  307.    annotation of their address information - "bottom up". To return to
  308.    the analogy above, if LDAP et al are "Phone Books" then ACAP is the
  309.    user's "black book" or "rolodex"- a personal repository, with access
  310.    control and groups defined from the user/client's perspective.  There
  311.    are many reasons why a user might want to have a differing
  312.    addressbook from the official one: quick reference, re-organization
  313.    of data, renaming of individual user or group characteristics -- such
  314.    as "Doofus" for an alias to the Boss' email address, "Softball team"
  315.    for a quick grouping of people on the company softball team, or "Joe
  316.    at Work and "Joe at Home" to distinguish between multiple email
  317.    addresses in a way that makes sense to the user.
  318.  
  319.    Our experience with IMSP is that one of its stunning (and unforseen)
  320.    successes was the capability that allowed users to arbitrarily define
  321.    and share addressbook information of this 'personal' nature --
  322.    lessons incorporated in the definition of the ACAP specification.
  323.  
  324.    From a client-implementer's perspective, this is a key difference.
  325.    Rather than having to know something about the server's view of the
  326.    universe, the option space in ACAP is free and open to unforseen uses
  327.    (allowing for namespace conventions). For example, if a client
  328.    implementer wanted to include information on a user's favorite color
  329.    -- so, perhaps, mail from that user appeared in that color or some
  330.  
  331.  
  332.  
  333. M. Wall                                                         [Page 6]
  334.  
  335. Internet DRAFT          ACAP VS. OTHER PROTOCOLS      September 11, 1996
  336.  
  337.  
  338.    other level of service that might be too "silly" to impose on a
  339.    formal database structure -- ACAP allows this information to be
  340.    associated with any other dataset data in an ACAP dataset at the
  341.    implementer's option.
  342.  
  343.    LDAP and other directory services should be highly complimentary to
  344.    ACAP and vice versa. The experience of users of the fully-implemented
  345.    clients supporting IMSP -- which provides both IMSP and LDAP access
  346.    -- strongly suggest that this is the case in real life. But for the
  347.    purposes of user-storage and client-defined data, LDAP does not fill
  348.    the need that ACAP does.
  349.  
  350.    DHCP
  351.  
  352.    DHCP was designed to address the specific problem of boot-time
  353.    bootstrap information for a given, single machine. As the name
  354.    implies, it's a protocol designed for "host configuration". All data
  355.    is administrator- and server-specified. It is not intended or
  356.    constructed with the features necessary for per-user (in contrast to
  357.    per-machine) configuration on the "fly" as applications are launched
  358.    sequentially or in parallel, often by multiple users on the same
  359.    machine (also in sequence or parallel, depending on the Operating
  360.    System).
  361.  
  362.    We have done an implementation of a DHCP server locally and found the
  363.    protocol to be wholly unsuitable for application configuration work
  364.    in practice: it's not user-writable and has no working features
  365.    designed to support user-writing with the full suite of features
  366.    (security, access control at a granular layer, user-defined options,
  367.    server vs. client override, etc.)
  368.  
  369.    SNMP
  370.  
  371.    SNMP was designed (originally largely within our development group at
  372.    Carnegie Mellon University) for device monitoring and control -
  373.    "network management". It lacks most features required for user
  374.    configuration data management, and in particular the scalability of
  375.    data and access models requisite for large-volume manipulation and
  376.    retrieval of data. Like DHCP, it's not designed to store per-user
  377.    data, and presently has little security in practice. ASN.1 MIBs
  378.    produce similar problems of structural inflexibility to X.500.
  379.  
  380.    HTTP
  381.  
  382.    HTTP is largely structured for document access -- storage and
  383.    transport with semantics ("hypertext"). Its main application --
  384.    albeit as successful an application as you could imagine -- is a
  385.    specific form of document delivery, oriented to presentation of data
  386.  
  387.  
  388.  
  389. M. Wall                                                         [Page 7]
  390.  
  391. Internet DRAFT          ACAP VS. OTHER PROTOCOLS      September 11, 1996
  392.  
  393.  
  394.    to users rather than interpreted use by client programs. It is
  395.    presently underspecified for uses outside of HTML.  While much work
  396.    is being done at present to extend and solidify http, its fatal flaw
  397.    in this context is a complete lack of data strucutre. Information is
  398.    not intended to be machine-parseable; it's not structured, as ACAP
  399.    is, for structured subsets of collections of data.
  400.  
  401.    DNS
  402.  
  403.    DNS is simply designed to provide a return of pairs of IP addresses
  404.    and names, for the parsing and interpretation of domain and node
  405.    names. For a given entity 'domain name', it can hold a set of tagged
  406.    values, albeit a restricted set in practice: IP addresses, CNames, MX
  407.    records. But DNS is limited to 256 tags, which have to be understood
  408.    by prior agreement between client and server, so the data format is
  409.    nowhere near flexible enough for ACAP-style information.
  410.  
  411.    It provides an internet-wide hierarchy of unique tagged fields, with
  412.    the engineering goal of providing very fast access to very small
  413.    amounts of data. The typical ACAP application has no need for a net-
  414.    wide hierarchy and needs moderately fast access to larger sets of
  415.    data, with the data itself being much larger than a typical DNS
  416.    entry.  DNS typically provides a single-return value, while ACAP is
  417.    intended to be almost always used for multiple returns from the
  418.    server. DNS only provides "disconnected" access in the sense that
  419.    data is statically cached and used in absence of contact with the
  420.    server; and is also not written to be user-writable.
  421.  
  422.    Distributed Filesystems (AFS, NFS, DFS, etc.)
  423.  
  424.    Distributed filesystems are intended for storage of (mostly)
  425.    unstructured user data. We have no small experience with building
  426.    internet applications on top of distributed filesystems; our current
  427.    messaging system (AMS -- see the ACAP White Paper for a further
  428.    discussion) is layered on top of AFS (the Andrew File System, now
  429.    owned and maintained by Transarc). Structure can be imposed onto a
  430.    filesystem for the purpose of supporting an application, but of
  431.    course this adds an additional layer of complexity to the
  432.    client/server transaction and quite a bit of pre-configuration at all
  433.    layers.  Since there is no "universal" file system -- for many
  434.    reasons well beyond the scope of this document -- any filesystem
  435.    approach has the inherent flaw of being unsuitable for some operating
  436.    systems due to the tight coupling of OS-specific filesystems with
  437.    modern operating systems.
  438.  
  439.    In many, many typical uses of internet client/server application use,
  440.    the user has no need, interest, or access to a distributed file
  441.    system. They're simply out of reach to the average user. And finally
  442.  
  443.  
  444.  
  445. M. Wall                                                         [Page 8]
  446.  
  447. Internet DRAFT          ACAP VS. OTHER PROTOCOLS      September 11, 1996
  448.  
  449.  
  450.    we would note the obvious: even the more relatively "usual"
  451.    distributed filesystems are proprietary, and none could be described
  452.    as "standards-based". The core of our approach with ACAP has been to
  453.    liberate the application, and the user, from reliance on any
  454.    particular filesystem.
  455.  
  456.    Distributed and Traditional Databases (SQL, Z39.50, etc.)
  457.  
  458.    The popular approach of a traditional database application is not
  459.    really appropriate for the purposes of application configuration.
  460.    Database systems are almost entirely proprietary, even though
  461.    "standard" query languages are available. Aside from some performance
  462.    issues, which may simply be questions of implementation, databases do
  463.    not lend themselves to disconnected operation due to their extremely
  464.    high data integrity protections. Typically remote access, when done,
  465.    is done through remote procedure calls, rather than protocol, with
  466.    all the attendant problems of RPCs. Finally, the structure of queries
  467.    in client/server databases shares many of the same characteristics of
  468.    the structured directory service problem: data structure is
  469.    authoritatively defined on the 'server' (database) side, requiring
  470.    administrator intervention for new applications, fields, and data
  471.    types.
  472.  
  473. 6.   Conclusions
  474.  
  475.    Internet client application options are probably the most important
  476.    type of configuration information to the vast majority of users of
  477.    the internet.  Other protocols were simply not designed to deal with
  478.    this type of data and typical use, as evidenced by the lack of key
  479.    features somewhat peculiar to application configuration. ACAP is a
  480.    carefully-engineered IETF-style solution to the application
  481.    configuration problem, rather than a retrofit of a protocol designed
  482.    for another purpose.
  483.  
  484. 7.   Acknowledgements
  485.  
  486.    Thanks to Chris Newman and Ned Freed of Innosoft, John Myers and Sam
  487.    Weiler of Carnegie Mellon, and two reviewers who wished to remain
  488.    anonymous for comments and suggestions, some of which have been
  489.    incorporated into this document without specific attribution.
  490.  
  491. 8.    References
  492.  
  493.    Myers, J., "ACAP", internet-drafts/draft-myers-acap-spec-00.txt
  494.  
  495.    Wall, M., "The Application Configuration Access Protocol and User
  496.    Mobility on the Internet", http://andrew2.andrew.cmu.edu/acap/acap-
  497.    white-paper.html
  498.  
  499.  
  500.  
  501. M. Wall                                                         [Page 9]
  502.  
  503. Internet DRAFT          ACAP VS. OTHER PROTOCOLS      September 11, 1996
  504.  
  505.  
  506. 9.   Author's Address
  507.  
  508.    Matthew Wall
  509.    Carnegie-Mellon University
  510.    5000 Forbes Ave.
  511.    Pittsburgh PA, 15213-3890
  512.  
  513.    Email: wall@cmu.edu
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557. M. Wall                                                        [Page 10]
  558.  
  559.  
  560.  
  561.