home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / rfc / 3 / rfc2258.txt < prev    next >
Encoding:
Text File  |  2003-06-11  |  34.1 KB  |  844 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         J. Ordille
  8. Request for Comments: 2258                Bell Labs, Lucent Technologies
  9. Category: Informational                                     January 1998
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                       Internet Nomenclator Project
  16.  
  17.  
  18. Status of this Memo
  19.  
  20.    This memo provides information for the Internet community.  It does
  21.    not specify an Internet standard of any kind.  Distribution of this
  22.    memo is unlimited.
  23.  
  24. Copyright Notice
  25.  
  26.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  27.  
  28. Abstract
  29.  
  30.    The goal of the Internet Nomenclator Project is to integrate the
  31.    hundreds of publicly available CCSO servers from around the world.
  32.    Each CCSO server has a database schema that is tailored to the needs
  33.    of the organization that owns it.  The project is integrating the
  34.    different database schema into one query service.  The Internet
  35.    Nomenclator Project will provide fast cross-server searches for
  36.    locating people on the Internet.  It augments existing CCSO services
  37.    by supplying schema integration, more extensive indexing, and two
  38.    kinds of caching -- all this in a system that scales as the number of
  39.    CCSO servers grows.  One of the best things about the system is that
  40.    administrators can incorporate their CCSO servers into Nomenclator
  41.    without changing the servers. All Nomenclator needs is basic
  42.    information about the server.
  43.  
  44.    This document provides an overview of the Nomenclator system,
  45.    describes how to register a CCSO server in the Internet Nomenclator
  46.    Project, and how to use the Nomenclator search engine to find people
  47.    on the Internet.
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Ordille                      Informational                      [Page 1]
  59.  
  60. RFC 2258              Internet Nomenclator Project          January 1998
  61.  
  62.  
  63. 1.  Introduction
  64.  
  65.    Hundreds of organizations provide directory information through the
  66.    CCSO name service protocol [3]. Although the organizations provide a
  67.    wealth of information about people, finding any one person can be
  68.    difficult because each organization's server is independent.  The
  69.    different servers have different database schemas (attribute names
  70.    and data formats).  The 300+ CCSO servers have more than 900
  71.    different attributes to describe information about people. Very few
  72.    common attributes exist.  Only name and email occur in more than 90%
  73.    of the servers [4].  No special support exists for cross-server
  74.    searches, so searching can be slow and expensive.
  75.  
  76.    The goal of the Internet Nomenclator Project is to provide fast,
  77.    integrated access to the information in the CCSO servers.  The
  78.    project is the first large-scale use of the  Nomenclator system.
  79.    Nomenclator is a more general system than a white pages directory
  80.    service.  It is a scalable, extensible information system for the
  81.    Internet.
  82.  
  83.    Nomenclator answers descriptive (i.e. relational) queries.  Users can
  84.    locate information about people, organizations, hosts, services,
  85.    publications, and other objects by describing their attributes.
  86.    Nomenclator achieves fast descriptive query processing through an
  87.    active catalog, and extensive meta-data and data caching.  The active
  88.    catalog constrains the search space for a query by returning a list
  89.    of data repositories where the answer to the query is likely to be
  90.    found.  Meta-data and data caching keep frequently used query
  91.    processing resources close to the user, thus reducing communication
  92.    and processing costs.
  93.  
  94.    Through the Internet Nomenclator Project, users can query any CCSO
  95.    server, regardless of its attribute names or data formats, by
  96.    specifying the query to Nomenclator (see Figure 1).  Nomenclator
  97.    provides a world view of the data in the different servers.  Users
  98.    express their queries in this world view.  Nomenclator returns the
  99.    answer immediately if it has been cached by a previous query. If not,
  100.    Nomenclator uses its active catalog to constrain the query to the
  101.    subset of relevant CCSO servers.  The speed of the query is
  102.    increased, because only relevant servers are contacted. Nomenclator
  103.    translates the global query into local queries for each relevant CCSO
  104.    server.  It then translates the responses into the format of the
  105.    world view.
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Ordille                      Informational                      [Page 2]
  115.  
  116. RFC 2258              Internet Nomenclator Project          January 1998
  117.  
  118.  
  119.    --------------------------------------------------------------------
  120.  
  121.  
  122.                      +-------------+             +-------------+
  123.                      |             |             |             |
  124.          World View  |             | Local View  |             |
  125.          Query       |             | Query       |  Relevant   |
  126.          ----------->|             |------------>|             |
  127.                      | Nomenclator |             |  CCSO       |
  128.                      |             |             |             |
  129.          <-----------|             |<------------|  Server     |
  130.           World View |             |  Local View |             |
  131.           Response   |             |  Response   |             |
  132.                      +-------------+             +-------------+
  133.  
  134.  
  135.  
  136.                       Figure 1:  A Nomenclator Query
  137.  
  138.                   Nomenclator translates queries to and from
  139.                   the language of the relevant CCSO servers.
  140.  
  141.    --------------------------------------------------------------------
  142.  
  143.    The Internet Nomenclator Project makes it easier for users to find a
  144.    particular CCSO server, but it does not send all queries to that
  145.    server.  When Nomenclator constrains the search for a query answer,
  146.    it screens out irrelevant queries from ever reaching the server.
  147.    When Nomenclator finds an answer in its cache, it screens out
  148.    redundant queries from reaching the server.  The server becomes
  149.    easier to find and use without experiencing the high loads caused by
  150.    exhaustive and redundant searches.
  151.  
  152.    The Internet Nomenclator Project creates the foundation for a much
  153.    broader heterogeneous directory service for the Internet.  The
  154.    current version of Nomenclator provides integrated access to CCSO and
  155.    relational database services. The Nomenclator System Architecture
  156.    supports fast, integrated searches of any collection of heterogeneous
  157.    directories.  The Internet Nomenclator Project can be enhanced to
  158.    support additional name services, or provide intergated query
  159.    services for other application domains. The project is starting with
  160.    CCSO services, because the CCSO services are widely available and
  161.    successful.
  162.  
  163.    Section 2 describes the Nomenclator system in more detail.  Section 3
  164.    explains how to register a CCSO server as part of the project.
  165.    Section 4 briefly describes how to use Nomenclator.  Section 5
  166.    provides a summary.
  167.  
  168.  
  169.  
  170. Ordille                      Informational                      [Page 3]
  171.  
  172. RFC 2258              Internet Nomenclator Project          January 1998
  173.  
  174.  
  175. 2.  Nomenclator System
  176.  
  177.    Nomenclator is a scalable, extensible information system for the
  178.    Internet. It supports descriptive (i.e. relational) queries.  Users
  179.    locate information about people, organizations, hosts, services,
  180.    publications, and other objects by describing their attributes.
  181.    Nomenclator achieves fast descriptive query processing through an
  182.    active catalog, and extensive meta-data and data caching.
  183.  
  184.    The active catalog constrains the search space for a query by
  185.    returning a list of data repositories where the answer to the query
  186.    is likely to be found.  Components of the catalog are distributed
  187.    indices that isolate queries to parts of the network, and smart
  188.    algorithms for limiting the search space by using semantic,
  189.    syntactic, or structural constraints.  Meta-data caching improves
  190.    performance by keeping frequently used characterizations of the
  191.    search space close to the user, thus reducing active catalog
  192.    communication and processing costs.  When searching for query
  193.    responses, these techniques improve query performance by contacting
  194.    only the data repositories likely to have actual responses, resulting
  195.    in acceptable search times.
  196.  
  197.    Administrators make their data available in Nomenclator by supplying
  198.    information about the location, format, contents, and protocols of
  199.    their data repositories.  Experience with Nomenclator shows that
  200.    gathering a small amount of information from data owners can have a
  201.    substantial positive impact on the ability of users to retrieve
  202.    information.  For example, each CCSO administrator provides a mapping
  203.    from the local view of data (i.e. the local schema) at the CCSO
  204.    server to Nomenclator's world view.  The administrator also supplies
  205.    possible values for any attributes with small domains at the data
  206.    repository (such as the "city" or "state_or_province" attributes).
  207.    With this information, Nomenclator can isolate queries to a small
  208.    percentage of the CCSO data repositories, and provide an integrated
  209.    view of their data.  Nomenclator provides tools that minimize the
  210.    effort that administrators expend in characterizing their data
  211.    repositories.  Nomenclator does not require administrators to change
  212.    the format of their data or the access protocol for their database.
  213.  
  214. 2.1 Components of a Nomenclator System
  215.  
  216.    A Nomenclator system is comprised of a distributed catalog service
  217.    and a query resolver (see Figure 2).  The distributed catalog service
  218.    gathers meta-data about data repositories and makes it available to
  219.    the query resolver. Meta-data includes constraints on attribute
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Ordille                      Informational                      [Page 4]
  227.  
  228. RFC 2258              Internet Nomenclator Project          January 1998
  229.  
  230.  
  231.    values at a data repository, known patterns of data distribution
  232.    across several data repositories, search and navigation techniques,
  233.    schema and protocol translation techniques, and the differing schema
  234.    at data repositories.
  235.  
  236.    --------------------------------------------------------------------
  237.  
  238.  
  239.                      +-------------+             +-------------+
  240.                      |             |             |             |
  241.          World View  |             |  Meta Data  |             |
  242.          Query       |             |  Request    | Distributed |
  243.          ----------->|   Query     | ----------->|             |
  244.                      |   Resolver  |             |  Catalog    |
  245.                      |             |             |             |
  246.          <-----------|   (caches)  | <-----------|  Service    |
  247.           World View |             |  Meta Data  |             |
  248.           Response   |             |  Response   |             |
  249.                      +-------------+             +-------------+
  250.  
  251.  
  252.  
  253.                    Figure 2: Components of a Nomenclator System
  254.  
  255.    --------------------------------------------------------------------
  256.  
  257.    Query resolvers at the user sites retrieve, use, cache, and re-use
  258.    this meta-data in answering user queries.  The catalog is "active" in
  259.    two ways. First, some meta-data moves from the distributed catalog
  260.    service to each query resolver during query processing.  Second, the
  261.    query resolver uses the initial meta-data, in particular the search
  262.    and navigation techniques, to generate additional meta-data that
  263.    guides query processing.  Typically, one resolver process serves a
  264.    few hundred users in an organization, so users can benefit from
  265.    larger resolver caches.
  266.  
  267.    Query resolvers cache techniques for constraining the search space
  268.    and the results of previously constrained searches (meta-data), and
  269.    past query answers (data) to speed future query processing.  Meta-
  270.    data and data caching tailor the query resolver to the specific needs
  271.    of the users at the query site.  They also increase the scale of a
  272.    Nomenclator system by reducing the load from repeated searches or
  273.    queries on the distributed catalog service, data repositories, and
  274.    communications network.
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Ordille                      Informational                      [Page 5]
  283.  
  284. RFC 2258              Internet Nomenclator Project          January 1998
  285.  
  286.  
  287.    The distributed catalog service is logically one network service, but
  288.    it can be divided into pieces that are distributed and/or replicated.
  289.    Query resolvers access this distributed, replicated service using the
  290.    same techniques that work for multiple data repositories.
  291.  
  292.    A Nomenclator system naturally includes many query resolvers.
  293.    Resolvers are independent, but renewable, query agents that can be as
  294.    powerful as the resources available at the user site.  Caching
  295.    decreases the dependence of the resolver on the distributed catalog
  296.    service for frequently used meta-data, and on data repositories for
  297.    frequently used data.  Caching thus improves the number of users that
  298.    can be supported and the local availability of the query service.
  299.  
  300. 2.2 Meta-Data Techniques
  301.  
  302.    The active catalog structures the information space into a collection
  303.    of relations about people, hosts, organizations, services and other
  304.    objects. It collects meta-data for each relation and structures it
  305.    into "access functions" for locating and retrieving data.  Access
  306.    functions respond to the question: "Where is data to answer this
  307.    query?"  There are two types of responses corresponding to the two
  308.    types of access functions.  The first type of response is: "Look over
  309.    there." "Catalog functions" return this response; they constrain the
  310.    query search by limiting the data repositories contacted to those
  311.    having data relevant to the query. Catalog functions return a
  312.    referral to data access functions that will answer the query or to
  313.    additional catalog functions to contact for more detailed
  314.    information.  The second response to "Where?" is: "Here it is!" "Data
  315.    access functions" return this response; they understand how to obtain
  316.    query answers from specific data repositories.  They return tuples
  317.    that answer the query.  Nomenclator supplies access functions for
  318.    common name services, such as the CCSO service, and organizations can
  319.    write and supply access functions for data in their repositories.
  320.  
  321.    Access functions are implemented as remote or local services.  Remote
  322.    access functions are services that are available through a standard
  323.    remote procedure call interface.  Local access functions are
  324.    functions that are supplied with the query resolver.  Local access
  325.    functions can be applied to a variety of indexing and data retrieval
  326.    tasks by loading them with meta-data stored in distributed catalog
  327.    service.  Remote access functions are preferred over local ones when
  328.    the resources of the query resolver are inadequate to support the
  329.    access function.  The owners of data may also choose to supply remote
  330.    access functions for privacy reasons if their access functions use
  331.    proprietary information or algorithms.  Local functions are preferred
  332.    whenever possible, because they are highly replicated in resolver
  333.    caches.  They can reduce system and network load by bringing the
  334.    resources of the active catalog directly to the users.
  335.  
  336.  
  337.  
  338. Ordille                      Informational                      [Page 6]
  339.  
  340. RFC 2258              Internet Nomenclator Project          January 1998
  341.  
  342.  
  343.    Remote access functions are simple to add to Nomenclator and local
  344.    access functions are simple to apply to new data repositories,
  345.    because the active catalog provides "referrals" that describe the
  346.    conditions for using access functions.  For simplicity, this document
  347.    describes referral techniques for exact matching of query strings.
  348.    Extensions to these techniques in Nomenclator support matching query
  349.    strings that contain wildcards or word-based matching of query
  350.    strings in the style of the CCSO services.
  351.  
  352.    Each referral contains a template and a list of references to access
  353.    functions.  The template is a conjunctive selection predicate that
  354.    describes the scope of the access functions.  Conjunctive queries
  355.    that are within the scope of the template can be answered with the
  356.    referral.  When a template contains a wildcard value ("*") for an
  357.    attribute, the attribute must be present in any queries that are
  358.    processed by the referral.  The system follows the following rule:
  359.  
  360.      Query Coverage Rule:
  361.  
  362.      If the set of tuples satisfying the selection predicate in a query
  363.      is covered by (is a subset of) the set of tuples satisfying the
  364.      template, then the query can be answered by the access functions in
  365.      the reference list of the referral.
  366.  
  367.    For example, the query below:
  368.  
  369.      select * from People where country = "US" and surname = "Ordille";
  370.  
  371.  
  372.    is covered by the following templates in Lines (1) through (3), but
  373.    not by the templates in Lines (4) and (5):
  374.  
  375.  
  376.       (1) country = "US" and surname = "*"
  377.  
  378.       (2) country = "US" and surname = "Ordille"
  379.  
  380.       (3) country = "US"
  381.  
  382.       (4) organization = "*"
  383.  
  384.       (5) country = "US" and surname = "Elliott"
  385.  
  386.    Referrals form a generalization/specialization graph for a relation
  387.    called a "referral graph."  Referral graphs are a conceptual tool
  388.    that guides the integration of different catalog functions into our
  389.    system and that supplies a basis for catalog function construction
  390.    and query processing.  A "referral graph" is a partial ordering of
  391.  
  392.  
  393.  
  394. Ordille                      Informational                      [Page 7]
  395.  
  396. RFC 2258              Internet Nomenclator Project          January 1998
  397.  
  398.  
  399.    the referrals for a relation.  It is constructed using the
  400.    subset/superset relationship: "S is a subset of G."  A referral S is
  401.    a subset of referral G if the set of queries covered by the template
  402.    of S is a subset of the set of queries covered by the template of G.
  403.    S is considered a more specific referral than G; G is considered a
  404.    more general referral than S.  For example, the subset relationship
  405.    exists between the pairs of referrals with the templates listed
  406.    below:
  407.  
  408.  
  409.       (1) country = "US" and surname = "Ordille"
  410.           is a subset of
  411.           country = "US"
  412.  
  413.       (2) country = "US" and surname = "Ordille"
  414.           is a subset of
  415.           country = "US" and surname = "*"
  416.  
  417.       (3) country = "US" and surname = "*"
  418.           is a subset of
  419.           country ="US"
  420.  
  421.       (4) country = "US"
  422.           is a subset
  423.           "empty template"
  424.  
  425.    but it does not exist between the pairs of referrals with the
  426.    following templates:
  427.  
  428.       (5) country = "US"
  429.           is not a subset of
  430.           department = "CS"
  431.  
  432.       (6) country = "US" and name = "Ordille"
  433.           is not a subset of
  434.           country = "US" and name = "Elliott"
  435.  
  436.    In Lines (1) and (2), the more general referral covers more queries,
  437.    because it covers queries that list different values for surname.  In
  438.    Line (3), the more general referral covers more queries, because it
  439.    covers queries that do not constrain surname to a value.  In Line
  440.    (4), the specific referral covers only those queries that constrain
  441.    the country to "US" while the empty template covers all queries.
  442.  
  443.    During query processing, wildcards in a template are replaced with
  444.    the value of the corresponding attribute in the query.  For any query
  445.    covered by two referrals S and G such that S is a subset of G, the
  446.    set of tuples satisfying the template in S is covered by the set of
  447.  
  448.  
  449.  
  450. Ordille                      Informational                      [Page 8]
  451.  
  452. RFC 2258              Internet Nomenclator Project          January 1998
  453.  
  454.  
  455.    tuples satisfying the template in G.  S is used to process the query,
  456.    because it provides the more constrained (and faster) search space.
  457.    The referral S has a more constrained logical search space than G,
  458.    because the set of tuples in the scope of S is no larger, and often
  459.    smaller, than the set in the scope of G. Moreover, S has a more
  460.    constrained physical search space than G, because the data
  461.    repositories that must contacted for answers to S must also be
  462.    contacted for answers to G, but additional data repositories may need
  463.    to be contacted to answer G.
  464.  
  465.    In constraining a query, a catalog function always produces a
  466.    referral that is more specific than the referral containing the
  467.    catalog function.  Wildcards ("*") in a template indicate which
  468.    attribute values are used by the associated catalog function to
  469.    generate a more specific referral.  In other words, catalog functions
  470.    always follow the rule:
  471.  
  472.       Catalog Function Constrained Search Rule:
  473.  
  474.       Given a referral R with a template t and a catalog function cf,
  475.       and a query q covered by t, the result of using cf to process q,
  476.       cf(q), is a referral R' with template t' such that q  is covered
  477.       by t' and R' is more specific than R.
  478.  
  479.    Catalog functions make it possible to import a portion of the indices
  480.    for the information space into the query resolver.  Since they
  481.    generate referrals, the resolver can cache the most useful referrals
  482.    for a relation and call the catalog function as needed to generate
  483.    new referrals.
  484.  
  485.    The resolver query processing algorithm obtains an initial set of
  486.    referrals from the distributed catalog service.  It then navigates
  487.    the referral graph, calling catalog functions as necessary to obtain
  488.    additional referrals that narrow the search space. Sometimes, two
  489.    referrals that cover the query have the relationship of general to
  490.    specific to each other.  The resolver eliminates unnecessary access
  491.    function processing by using only the most specific referral along
  492.    each path of the referral graph.
  493.  
  494.    The search space for the query is initially set to all the data
  495.    repositories in the relation.  As the resolver obtains referrals to
  496.    sets of relevant data repositories (and their associated data access
  497.    functions) it forms the intersection of the referrals to constrain
  498.    the search space further.  The intersection of the referrals includes
  499.    only those data repositories listed in all the referrals.
  500.    Intersection combines independent paths through the referral graph to
  501.    derive benefit from indices on different attributes.
  502.  
  503.  
  504.  
  505.  
  506. Ordille                      Informational                      [Page 9]
  507.  
  508. RFC 2258              Internet Nomenclator Project          January 1998
  509.  
  510.  
  511. 2.3 Meta-Data and Data Caching
  512.  
  513.    A Nomenclator query resolver caches the meta-data that result from
  514.    calling catalog functions.  It also caches the responses for queries.
  515.    If the predicate of a new query is covered by the predicate of a
  516.    previous query, Nomenclator calculates the response for the new query
  517.    from the cached response of the old query.  Nomenclator timestamps
  518.    its cache entries to provide measures of the currentness of query
  519.    responses and selective cache refresh.  The timestamps are used to
  520.    calculate a t-bound on query responses [5][1].  A t-bound is the time
  521.    after which changes may have occurred to the data that are not
  522.    reflected in the query response. It is the time of the oldest cache
  523.    entry used to calculate the response.  Nomenclator returns a t-bound
  524.    with each query response.  Users can request more current data by
  525.    asking for responses that are more recent than this t-bound. Making
  526.    such a request flushes older items from the cache if more recent
  527.    items are available.  Query resolvers calculate a minimum t-bound
  528.    that is some refresh interval earlier than the current time.
  529.    Resolvers keep themselves current by replacing items in the cache
  530.    that are earlier than the minimum t-bound.
  531.  
  532. 2.4 Scale and Performance
  533.  
  534.    Three performance studies of active catalog and meta-data caching
  535.    techniques are available [5].  The first study shows that the active
  536.    catalog and meta-data caching can constrain the search effectively in
  537.    a real environment, the X.500 name space.  The second study examined
  538.    the performance of an active catalog and meta-data caching for single
  539.    users on a local area network.  The experiments showed that the
  540.    techniques to eliminate data repositories from the search space can
  541.    dramatically improve response time.  Response times improve, because
  542.    latency is reduced.  The reduction of latency in communications and
  543.    processing is critical to large-scale descriptive query optimization.
  544.    The experiments also showed that an active catalog is the most
  545.    significant contributor to better response time in a system with low
  546.    load, and that meta-data caching functions to reduce the load on the
  547.    system.  The third study used an analytical model to evaluate the
  548.    performance and scaling of these techniques for a large Internet
  549.    environment.  It showed that meta-data caching plays an essential
  550.    role in scaling the distributed catalog service to millions of users.
  551.    It also showed that constraining the search space with an active
  552.    catalog contributes significantly to scaling data repositories to
  553.    millions of users.  Replication and data caching also contribute to
  554.    the scale of the system in a large Internet environment.
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Ordille                      Informational                     [Page 10]
  563.  
  564. RFC 2258              Internet Nomenclator Project          January 1998
  565.  
  566.  
  567. 3.  Registering a CCSO Server
  568.  
  569.    The Internet Nomenclator Project supports the following home page:
  570.  
  571.       http://cm.bell-labs.com/cs/what/nomenclator
  572.  
  573.    The home page provides a variety of information and services.
  574.  
  575.    Administrators can register their CCSO servers through services on
  576.    this home page.  The registration service collects CCSO server
  577.    location information, contact information for the administrator of
  578.    the CCSO server, implicit and explicit constraints on entries in the
  579.    server's database, and a mapping from the local schema of the CCSO
  580.    server to the schema of the world view.
  581.  
  582.    The implicit and explicit constraints on the server's database are
  583.    the fuel for Nomenclator's catalog functions.  The registration
  584.    center currently collects constraints on organization name,
  585.    department, city, state or province name, country, phone number,
  586.    postal code, and email address.  These constraints are automatically
  587.    incorporated into Nomenclator's distributed catalog service.  They
  588.    are used by catalog functions in query resolvers to constrain
  589.    searches to relevant CCSO servers.  For example, a database only
  590.    contains information about the computer science and electrical
  591.    engineering departments at a French university.  The department,
  592.    organization and country attributes are constrained.  Nomenclator
  593.    uses these constraints to prevent queries about other departments,
  594.    organizations or countries from being sent to this CCSO server.
  595.  
  596.    The mapping from the local schema of the CCSO server to the schema of
  597.    the world view allows Nomenclator to translate queries and responses
  598.    for the CCSO server.  The registration center currently collects this
  599.    mapping by requesting an example of how to translate a typical entry
  600.    in the CCSO server into the world view schema and, optionally, an
  601.    example of how to translate a canonical entry in the world view
  602.    schema into the local schema of the CCSO server [4].  These examples
  603.    are then used to generate a mapping program that is stored in the
  604.    distributed catalog service.  The CCSO data access function in the
  605.    query resolver interprets these programs to translate queries and
  606.    responses communicated with that CCSO server.  We plan to release the
  607.    mapping language to CCSO server administrators, so administrators can
  608.    write and maintain the mapping for their servers.  We have
  609.    experimented with more than 20 mapping programs.  They are seldom
  610.    more than 50 lines, and are often shorter.  It typically takes one or
  611.    two lines to map an attribute.
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Ordille                      Informational                     [Page 11]
  619.  
  620. RFC 2258              Internet Nomenclator Project          January 1998
  621.  
  622.  
  623. 4.  Using Nomenclator
  624.  
  625.    The Internet Nomenclator Project currently provides a centralized
  626.    query service on the Internet.  The project runs a Nomenclator query
  627.    resolver that is accessible through its Web page (see the URL in
  628.    Section 3) and the Simple Nomenclator Query Protocol (SNQP) [2].
  629.  
  630.    The service answers queries that are a conjunction of string values
  631.    for attributes.  A variety of matching techniques are supported
  632.    including exact string matching, matching with wildcards, and word-
  633.    based matching in the style of the CCSO service.  Our web interface
  634.    uses the Simple Nomenclator Query Protocol (SNQP) [2].  Programmers
  635.    can create their own interfaces by using this protocol to communicate
  636.    with the Nomenclator query resolver.  They will require the host name
  637.    and port number for the query resolver which they can obtain from the
  638.    Nomenclator home page.  SNQP, and hence the web interface, are
  639.    defined for US-ASCII.  Support for other character sets will require
  640.    further work.
  641.  
  642.    Subsequent phases of the project will provide enhanced services such
  643.    as providing advice about the cost of queries and ways to constrain
  644.    queries further to produce faster response times, and allowing users
  645.    to request more current data.  We also plan to distribute query
  646.    resolvers, so users can benefit from running query resolvers locally.
  647.    Local query resolvers reduce latency for the user, and distribute
  648.    query processing load throughout the network.
  649.  
  650. 5.  Summary
  651.  
  652.    The Internet Nomenclator Project augments existing CCSO services by
  653.    supplying schema integration and fast cross-server searches. The key
  654.    to speed in descriptive query processing is an active catalog, and
  655.    extensive meta-data and data caching.  The Nomenclator system is the
  656.    result of research in distributed systems [5][6][7][4].  It can be
  657.    extended to incorporate other name servers, besides the CCSO servers,
  658.    and to address distributed search and retrieval challenges in other
  659.    application domains. In addition to providing a white pages service,
  660.    the Internet Nomenclator Project will evaluate how an active catalog,
  661.    meta-data caching and data caching perform in very large global
  662.    information system.  The ultimate goal of the project is to refine
  663.    these techniques to provide the best possible global information
  664.    systems.
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Ordille                      Informational                     [Page 12]
  675.  
  676. RFC 2258              Internet Nomenclator Project          January 1998
  677.  
  678.  
  679. 6.  Security Considerations
  680.  
  681.    In the Internet Nomenclator Project, the participants' data are
  682.    openly available and read-only. Since the risk of tampering with
  683.    queries and responses is considered low, this version of Nomenclator
  684.    does not define procedures for protecting the information in its
  685.    queries and responses.
  686.  
  687. 7.  References
  688.  
  689.  
  690.    [1]   H. Garcia-Molina, G. Wiederhold. "Read-Only Transactions in
  691.          a Distributed Database,"  ACM Transactions on Database Systems
  692.          7(2), pp. 209-234.  June 1982.
  693.  
  694.    [2]   Elliott, J., and J. Ordille, "The Simple Nomenclator Query
  695.          Protocol (SNQP)," RFC 2259, January 1998.
  696.  
  697.    [3]   S. Dorner, P. Pomes. "The CCSO Nameserver: A Description,"
  698.          Computer and Communications Services Office Technical Report,
  699.          University of Illinois, Urbana, USA. 1992. Avaialble in the
  700.          current "qi" distribution from
  701.          <URL:ftp://uiarchive.cso.uiuc.edu/local/packages/ph>
  702.  
  703.    [4]   A. Levy, J. Ordille. "An Experiment in Integrating Internet
  704.          Information Sources," AAAI Fall Symposium on AI Applications in
  705.          Knowledge Navigation and Retrieval, November 1995.
  706.          <URL:http://cm.bell-labs.com/cm/cs/doc/95/11-01.ps.gz>
  707.  
  708.    [5]   J. Ordille. "Descriptive Name Services for Large Internets,"
  709.          Ph. D. Dissertation. University of Wisconsin. 1993.
  710.          <URL:http://cm.bell-labs.com/cm/cs/doc/93/12-01.ps.gz>
  711.  
  712.    [6]   J. Ordille, B. Miller. "Distributed Active Catalogs and
  713.          Meta-Data Caching in Descriptive Name Services," Thirteenth
  714.          International IEEE Conference on Distributed Computing Systems,
  715.          pp. 120-129.  May 1993.
  716.          <URL:http://cm.bell-labs.com/cm/cs/doc/93/5-01.ps.gz>
  717.  
  718.    [7]   J. Ordille, B. Miller. "Nomenclator Descriptive Query
  719.          Optimization in Large X.500 Environments," ACM SIGCOMM
  720.          Symposium on Communications Architectures and Protocols, pp.
  721.          185-196, September 1991.
  722.          <URL:http://cm.bell-labs.com/cm/cs/doc/91/9-01.ps.gz>
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Ordille                      Informational                     [Page 13]
  731.  
  732. RFC 2258              Internet Nomenclator Project          January 1998
  733.  
  734.  
  735. 8.  Author's Address
  736.  
  737.    Joann J. Ordille
  738.    Bell Labs, Lucent Technologies
  739.    Computing Sciences Research Center
  740.    700 Mountain Avenue, Rm 2C-301
  741.    Murray Hill, NJ 07974  USA
  742.  
  743.    EMail: joann@bell-labs.com
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Ordille                      Informational                     [Page 14]
  787.  
  788. RFC 2258              Internet Nomenclator Project          January 1998
  789.  
  790.  
  791. 9.  Full Copyright Statement
  792.  
  793.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  794.  
  795.    This document and translations of it may be copied and furnished to
  796.    others, and derivative works that comment on or otherwise explain it
  797.    or assist in its implementation may be prepared, copied, published
  798.    and distributed, in whole or in part, without restriction of any
  799.    kind, provided that the above copyright notice and this paragraph are
  800.    included on all such copies and derivative works.  However, this
  801.    document itself may not be modified in any way, such as by removing
  802.    the copyright notice or references to the Internet Society or other
  803.    Internet organizations, except as needed for the purpose of
  804.    developing Internet standards in which case the procedures for
  805.    copyrights defined in the Internet Standards process must be
  806.    followed, or as required to translate it into languages other than
  807.    English.
  808.  
  809.    The limited permissions granted above are perpetual and will not be
  810.    revoked by the Internet Society or its successors or assigns.
  811.  
  812.    This document and the information contained herein is provided on an
  813.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  814.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  815.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  816.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  817.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Ordille                      Informational                     [Page 15]
  843.  
  844.