throbber
US006154777A
`
`Ulllted States Patent
`Ebrahim
`
`[19]
`
`[11] Patent Number:
`[45] Date of Patent:
`
`6,154,777
`Nov. 28, 2000
`
`54
`
`SYSTEM FOR CONTEXT-DEPENDENT
`NAME RESOLUTION
`
`7/1998 Otto
`5,778.060
`5,838,682 11/1998 Dekelbaum eta].
`
`379/265
`. .. 370/401
`
`
`
`FOREIGN PATENT DOCUMENTS GOGF 12/08
`0 380 842 A3
`8/1990 Europeaii Pat. Ofi”.
`.
`G06F 13/36
`0 497 054 A2
`8/1992 European Pat. O11‘.
`G06F 13/36
`.
`U 497 054 A3
`8/1992 European Pat. Oil.
`OTHER PUBLICATIONS
`
`
`
`“The SPARC Architecture Manual”, Version 9, SPARC
`International,
`Inc., Menlo Park, California; 1994;
`"8
`M6m0WM0de1S”;PP~117439 & 256463
`primary Exanzine,-__]0hn A, Follangbcc
`Attorney, Agent, or Firm—Conley, Rose & Tayon PC; B.
`Noel Kivlju
`
`57]
`
`ABSTRACT
`
`Acontext-dependent, multiply binding name resolution sys-
`em. A name resolver is provided, connected to either a
`requester’s system or a receiver’s system, or both. Requests
`o a given service or domain name are resolved to the
`.
`.
`.
`.
`appropriate IP address. The intended recipient of the request
`is resolved based upon a combination of one or more
`redeterniined criteria,
`including:
`information about
`the
`sender (e.g. geographical
`location, specific requester
`identity, etc.); information about the intended recipient (e.g.
`load balance at the receiver, type of service, etc.); informa-
`ion contained within the request itself (e.g. type of service
`requested); or other information (time of day, date, random
`selection of recipient, e.g.). The system is implemented in
`iardware and/or software, and the resolution criteria can be
`,
`,
`made interdependent or independent.
`
`20 Claims, 6 Drawing Sheets
`
`75
`
`Inventor: Zahir Ebrahim, Mountain View, Calif.
`
`73 Assignee: Sun Mierosystenis, Inc., Palo Alto,
`(Calif.
`
`Jul'1v1996
`
`Appl. No.: 08/674,561
`_
`Flledz
`G061? 15/16
`lnt.Cl.7
`709/227
`U.S. Cl.
`
`. 340/825 2. 825.44.
`Ficld Of 50i1I‘Cll
`340/254; 379/100.15, 265, ll2, 210, 100-15;
`370/254, 401; 709/226-228, 200
`
`21
`
`22
`51
`52
`53
`
`56
`
`References cued
`U,S, PATENT DOCUMENTS
`6/1991 Tsuchiya et al.
`..
`5,025,491
`8/1992 Harvey et al.
`.
`5,136,716
`7/1993 Vacon et al.
`5,227,778
`5,274,700 12/1993 Gechter et al.
`5,335,268
`8/1994 Kelly, Jr. el al.
`5,377,323
`12/1994 Vasudevan .
`5,392,339
`2/1995 Sakai et al.
`5,506,807
`4/1996 Moore et al.
`5,577,252
`11/1996 Nelson et al.
`5,581,761
`12/1996 Riidia el iil.
`5,590,186 12/1996 Liao et al.
`5,594,921
`1/1997 Peltus .... ..
`5,617,540
`4/1997 Civanlar et al.
`5,652,574
`7/1997 Wachoo et al.
`5,703,943 12/1997 Otto
`5,777,989
`7/1998 McGarvey .
`
`.
`
`
`
`.. 340/825.52
`,
`,
`395/200.58
`34082552
`3179/210
`379/112
`395/200,55
`379/100.15
`379/220
`395/670
`395/702
`”“
`.. 3'05/200.57
`34U,825_44
`379/265
`370/254
`
`Service Resolution
`
`Requester sends request
`E
`
`
`
`Name Resolver receives request
`20
`
`
`CONTEXT-DEPENDENT RESOLUTION Q
`
`Geographical or
`point—of—origin
`based resolution
`
`Load-based
`resolution
`
`Other
`reso|ution(s)
`
`Timefl'ime Zone
`and/or Data
`
`Request-type
`based resolution
`
`Quality of
`service based
`
`resoiution
`
`
`
`Fonivard request to
`selected destination
`E
`
`
`
`1
`
`Petitioner Limelight - LNIOO4
`
`1
`
`Petitioner Limelight - LN1004
`
`

`
`U.S. Patent
`
`Nov. 28,2000
`
`Sheet 1 of6
`
`6,154,777
`
`
`
`
`
`Network
`
`
`
`Requester 1
`
`
`DNS lookup
`looks up
`"sun.com"
`
`
`Requester X
`
`
`
`Requester 2
`
`FIG. 1
`
`(Prior Art)
`
`
`
`
`
`Requester 1
`
`
`
`
`DNS lookup
`looks up
`"sun.com"
`
`
`
`Requester 2
`
`Requester X
`
`
`
`
`DeMUX
`
`Service 3
`
`F|G_ 2
`
`(Prior Art)
`
`2
`
`

`
`U.S. Patent
`
`Nov. 28,2000
`
`Sheet 2 of6
`
`6,154,777
`
`
`
`
`
`DNS Lookup looks
`up name "sun.com"
`4
`
`Requester issues
`name "sun.com"
`
`2
`
`
`
`DNS_Spoofing_s6ervice (on Host 4)
`
`FIG. 2A
`
`Service Resolution
`
`
`
`Requester sends request
`1_Q
`
`
`
`Name Resolver receives request
`E
`
`
`
`CONTEXT-DEPENDENT RESOLUTION fl
`
`
`
`
`
`
`
`Geographical or
`Point-Of-Origin
`based resolution
`
`_
`_
`Time/Time Zone
`and/or Data
`
`'-°ad'ba.3ed
`feS0|U’t|0n
`
`Request-type
`based resolution
`
`
`
`other
`reso|ution(s)
`
`
`
`Quality of
`service based
`resomtion
`
`Select a destination
`fl
`
`Q
`
`FonNard request to
`selected destination
`
`FIG. 3
`
`3
`
`

`
`U.S. Patent
`
`Nov. 28,2000
`
`Sheet 3 of6
`
`6,154,777
`
`Requester 1
`M
`Processor
`@
`
`
`UH
`
`
`
`Processor
`
`Memory
`
`m
`m
`
`
`Requester 2
`1_1Q
`
`Intranet/Internet/\Neb
`M
`
`Requester M
`E
`(Alternative)
`
`
`M
`
`
`Destination 1
`0
`2_
`Processor
`
`
`
`41
`
`2__0
`
`Memory
`E
`
`
`
`
`
`Destination 2
`
`29
`
`
`
`
`
`E
`
`Destination N
`
`
`
`FIG. 4
`
`
`
`
`
`Name
`Resolver
`
`
`
`Name Resolver
`
`
`
`M
`
`
`
`4
`
`

`
`U.S. Patent
`
`Nov. 28,2000
`
`Sheet 4 of6
`
`6,154,777
`
`
`
`Requester 1
`100
`
`
`
`190
`
` Intranet/Internet/Web
`
`Name Resolver
`@
`
`E
`
`
`
`
`
`
`Destination 1.1
`
`210
`
`Processor
`
`E
`
`Memory
`50
`
`Destination 1.2
`
`
`E
`
`
`
`
`Destination 1.N
`
`&
`
`FIG. 5
`
`Processor
`@
`
`Mem ry
`O0
`14
`
`Requester 2
`m
`
`Requester M
`E
`
`
`
`5
`
`

`
`U.S. Patent
`
`Nov. 28,2000
`
`Sheet 5 of6
`
`6,154,777
`
`GEOG1-\
`
`Requested
`
`Destination
`(sun.com.)
`
`(
`
`\
`
`
`6
`
`

`
`U.S. Patent
`
`Nov. 28,2000
`
`Sheet 6 of6
`
`6,154,777
`
`Zone 1
`
`SENDER
`
`
`
`Zone 2
`
`RESOLVER
`RECEIVER
`SYSTEM
`
`Zone 3
`
`
`
`
`
`Service Location
`Service Location
`Service Location
`Resolver 1
`Resolver 2
`Resolver 3
`
`
`
`
`
`
`Lookup2
`
`
`Destination
`
`Destination
`
`Lookup1
`
`FIG. 7
`
`7
`
`

`
`6,154,777
`
`1
`SYSTEM FOR CONTEXT-DEPENDENT
`NAME RESOLUTION
`TIACKGROUND OF TIIE INVENTION
`
`In a network (either Intranet or Internet) system, when a
`host wants to communicate with another host or locate a
`service or another host on the network,
`the address is
`typically resolved in an absolute manner; that is, the naming
`service of the network resolves a given name to a single II’
`(Internet Protocol) address. For instance, a domain name
`service (DNS) call resolves a r1ar11e to a single IP address or
`host name on the Internet.
`When there are many connections to a given host or
`service, the resulting congestion degrades the overall per-
`formance. The service provider may upgrade the service,
`e.g. to increase its capacity. In this case, in order to keep the
`modification of the service transparent to requesting hosts, a
`demultiplexer may be used, as illustrated by way of example
`in FIGS. 1-2, For instance, in FIG. 1 a call to Service 3 Will
`be uniquely resolved to that service’s IP address and trans-
`mitted there accordingly, because there is only a single
`binding in the DNS name resolver to the host of Service 3.
`In general, in a conventional system such as that illustra ed
`in FIGS. 1, 2 and 2A, there will be a single binding between
`a name and an II’ address,
`type of
`Yet another alternative is for a special
`demultiplexer, which may monitor the traffic, and from he
`di ‘erent II’ addresses can collect statistics such as response
`time and/or the load on the corresponding IP hosts, and use
`this information for load balancing by binding a reques ed
`name to an IF address for a host which is less heavily loaded.
`If Service 3 is upgraded to include Services 3.1 through
`3.Y,
`then the demultiplexcr is added (see FIG. 2);
`he
`requesting or DNS resolving host resolves the request as
`usual and sends it out over the (I11ter— or Intra—)network, but
`the demultiplexer is interposed between the network and he
`service(s),
`to route the incoming requests to one of he
`services. Note that in this case, there is still a single binding
`between the DNS and the demultiplexer.
`A problem with this approach is that the demultiplexer
`acts as a limiting factor on throughput, and additionally
`represents a single source of failure for all of the services
`that it serves. Amechanism is needed whereby such a critical
`point and bottleneck can be avoided, while still providing
`access to the services for remote users.
`An alternative ap aroach to decreasing congestion is
`through DNS spoofing, where the name resolver is fooled
`into giving out a di erent name binding, by keeping the
`name resolver updated frequently with a new name resolu-
`tion binding based on some criteria such as load distribution
`on target servers. An example of DNS spoofing is shown in
`FIG. 2A, in which a requester 2 issues a request using the
`name “sun.com”, and a DNS lookup 4 looks it up. The host
`(1, 2 or 3) to which the names is bound will depend upon
`criteria employed at the destination domain, as determined
`by DNS spoofing service 6. Such criteria may include load
`on the hosts,
`their availability, etc. The DNS spoofing
`service 6 polls the hosts 1-3 periodically or at demand, and
`binds one of them at a time to the DNS lookup name resolver
`for the name “sun.com”.
`the criteria used to achieve the
`In a spoofing service,
`binding are not related to the context of the requester; they
`rely only upon information at the destination. Thus, much
`information that could be important in making a binding is
`not utilized. In none of the known systems is caller context
`used.
`
`5
`
`10
`
`20
`
`40
`
`45
`
`LIALA
`
`60
`
`65
`
`2
`It would accordingly be advantageous to have a system
`which takes into account the context of the requester in the
`process of name resolution.
`SUMMARY OF THE INVENTION
`
`Acontext—dependent name resolution system is presented,
`which implements predetermined criteria for static or
`dymamic binding ofa "'name"‘ to any one ofseveral “objects"
`of the same type. Which “object” is selected for the binding
`is determined by a “name resolver” using context inforn1a—
`tion that is explicitly specified by the requestor in a name
`resolution lookup call to the “name resolver”. The “name
`resolver”, which is implemented as a server program, stores
`a lookup table comprising bindings of a “name” to several
`dififerent instances of an object, along with “policy” infor-
`mation which defines the criteria for selecting an instance of
`the object. For instance, the name may be an internet URL
`of the form “wwW.sun.com”, and the resolved to object may
`be an IP address of the type 192.146.85.82. Thus the “name
`resolver” will store the tuple: <www.sun.com><IP_
`address_1><II’_address_2>. .
`.
`, and will store policies on
`which IP address to bind to wWw.sun.com when a lookup
`request specifying “www.sun.com” is received by it.
`By enabling multiple binding support
`in the “name
`resolver”, several advantages are realized. First, the system
`enables new resources to be added transparently to the caller.
`When a new server is added to distribute the load for one or
`more hosts corresponding to the name “sun.com”,
`for
`instance, the II’ address for the new server is simply added
`to the tuple in the name resolver, along with any desired
`policy criteria, e.g. to use only between 9 a.m. and 5 p.m.
`Secondly, the fundamental limit to scaling which is inher-
`ent
`in today’s single binding systems is removed, by
`enabling multiple destination servers providing the same
`service to be referenced by the same “name” handle by the
`caller (for example “sun.eom”), and the name to be resolved
`by the name resolver to different physical computers servers,
`depending upon caller context. Many instances of the name
`resolver may be running on different physical computers,
`and many instances of the services may be running, and the
`requester will access the name resolver closest to him; and
`the resolved object that is closest to the requester or that can
`best serve the request (based upon some selected or prede-
`termined criteria) will be bound to the request, all transpar-
`ently to the requester. Another advantage of the system of
`the invention is that it allows resources to be easily repli-
`cated transparently to the user, eliminating any single point
`of failure in the network or at the service end point. If one
`valid destination fails, is not responding or is over—loaded,
`the name resolver is already capable of binding a “name” to
`multiple destinations, and the unavailable destination can be
`disabled iii the name resolver’s internal tables, using adrnir1—
`istrative means.
`The context that may be used as a basis for the binding is
`variable; it may include information about the requester (e.g.
`requester IP address, domain name or inferred geographical
`region), about the destination (with similar altematives),
`about
`the request
`itself (e.g.
`type or quality of service
`requested), or about independent information (e.g. time of
`day or time zone of the point of origin of the request).
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIGS. 1—2A are diagrams of present network systems
`used for destination addresses for requests.
`FIG. 3 is a flow chart illustrating a method according to
`the system of the present invention.
`
`8
`
`

`
`6,154,777
`
`3
`FIGS. 4 and 5 are diagrams of network systems incorpo-
`rating features of the present invention.
`FIG. 6 in an illustration of the operation of an embodi-
`ment of the invention using geographhbased resolution
`criteria.
`FIG. 7 is a diagram depicting zones in which domain
`name service resolvers and service location resolvers of the
`invention may be located.
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`Amethod according to the invention is illustrated in FIG.
`3, and FIGS. 4-5 shows a suitable systems implementable
`on the Internet or VVorldWide Web,
`the Internet or an
`Intranet, incorporating features of the name resolution sys-
`ten1 of the invention.
`Name resolution can include any kind of name resolution
`lookup for binding one object
`to another. This includes
`binding the name of a service to a host computer (or its IP
`address) that provides that service, and binding the type of
`service to the i1ar11e of a service providing that type of
`service. It also includes resolving a name in one domain to
`another name in the same domain, and to another name in a
`di erent domain. For the purposes of this invention,
`the
`terms “service” and “host” can be considered synonymous,
`as can “service location” and “host location”.
`The system of the invention includes three fundamental
`features that can be implemented singly or in any combi-
`nation with one another: multiple binding of destination
`addresses to names; caller context name resolution in con-
`nection with such multiple binding; and name resolution
`policy considerations, i.e. independent criteria upon which
`such resolution is based.
`
`Name Resolution: An Example
`An example of name resolution occurs, for instance, when
`a user wishes to view video, e.g. a movie, on his or her
`computer. An application running on the computer is used to
`make a procedure call
`to the name resolver to determine
`which server can serve a movie, e.g.
`service_handle=name_service_lookup(“movie“)
`where the string “movie” is passed to a server, which then
`returns the name of the service providing that movie (or it
`may return a linked list of services providing movie services,
`from which the user may be prompted to select one).
`The server may, by way of example, return a single
`service name (eg. “quicktime”)
`in the variable called
`“service handle”. Next,
`the application must determine
`which server host can provide this service to this client; to
`do this, it makes another name resolution call:
`host handle=name hostname lookup (service
`handle)
`and passes it the variable “service_handle” returned by the
`previous call. This call returns the name of a server which is
`hsted as offering this service.
`The network location of this server must now be
`determined, so that the user’s computer or workstation can
`connect to it to get the movie service, and so it makes the
`call:
`IP address=na1ne hostaddre ss
`host
`handle)
`and finally obtains an IP address of an appropriate host that
`can provide the movie service to the user.
`Further calls to this quicktime server may determine a list
`of movies that are available. Alternatively, a design may be
`
`lookup (host
`
`10
`
`20
`
`40
`
`45
`
`viLA
`
`60
`
`65
`
`4
`implemented in which the caller simply specifies the name
`of the movie he wants to see, and the name lookup returns
`to the caller the IP address of a host that is currently able to
`serve the requested movie to the caller.
`All of or some of the above steps may be combined in
`more integrated calls to the name resolver.
`In the present invention,
`in addition to the above, an
`additional parameter is passed to the name_hostaddress_
`lookup() function above (or to all the functions above); this
`parameter may be called the caller_context. This caller_
`context is used by the name resolver to help it decide which
`IP address to use. Thus, the calls would look like:
`host_IP_address=name_hostaddress_lookup(host_
`handle, caller_context).
`Caller_context is a cookie (or structure) that may include
`information such as the caller’s IP address,
`its point of
`origin, the quality of the requested service, or any other
`context that might be relevant. These contexts must be well
`specified and their format(s) standardized, so that many
`different name resolvers can interoperate properly. The
`particular caller_context formats and contents selected are
`not themselves crucial to the invention.
`The present invention uses requester context—dependent
`intelligence to determine which of several destination hosts
`should be utilized, or in other words, which of several 11’
`addresses should be used to resolve a given “name” request.
`The context—dependent intelligence, implemented as hard-
`ware or software or a combination of both, allows the
`“name” resolution to be based upon some context informa-
`tion from the requestor, and/or upon the “name” being
`resolved in a context-free manner, but optionally dependent
`upon criteria such as load balancing on the destination.
`As shown in FIG. 4, a requesters 100-120, of which there
`may be an arbitrary number, each comprise computers or
`workstations on a local network, served by a server 150. The
`requesters will typically be conventional workstations, per-
`sonal computers, or any networkable computing device,
`with local processors (130, etc.), memory (140, etc.), mass
`storage (not shown) and network connections. The server
`150 also includes a conventional processor 160, memory
`170, mass storage and necessary connections and control
`hardware and software.
`A name resolver 180 forms part of the server 150, or may
`be a separate unit.
`It may be implemented entirely in
`software, i.e. as program modules stored in mass storage
`and/or the memory 170, or it may be a stand-alone device,
`with its own logic or processor and memory, as desired.
`The server 150 is connected to a broader network 190,
`such as the Internet, an Intranet or WAN (wide-area
`network), or the WorldWide Web, via a network connection
`(e.g. a T—line) 260. 011 this network 190 is optionally another
`name resolver 200, which may be implemented in the same
`fashion or differently from the name resolver 180. Name
`resolvers 180 and 200 may both be used, or either may be
`used by itself. (See discussion of FIG. 7, below.)
`Destination hosts 210-230 may also be conventional
`computers or workstations with processors (such as 240),
`memory (such as 250), mass storage (not shown), network
`connections, etc., as needed to implement conventional
`network functions in addition to the features of the present
`invention.
`Referring to the flow chart of FIG. 3, when a requester
`(such as 100-120) sends a name resolution request to a name
`resolver 180, instead of the single binding of conventional
`systems, the name resolver 180 includes multiple binding
`tables and/or functions (implemented by appropriate logic or
`program modules) to resolve the request to a11 appropriate IP
`address for a destination host (such as 210-230 in FIG. 4).
`
`9
`
`

`
`6,154,777
`
`—D
`
`information obtained from the
`
`6
`location (e.g. partially in a local name resolver and partially
`in the destination server).
`Alternatively or iii addition, criterion B.1 may be based
`upon information at the receive end at the time of sending
`the request, and resolved at the receiver.
`C. Resolution Based Upon Request Contents
`1. type of service requested;
`2. specific information (or type of information) requested;
`3. any other implicit
`information inferred from the
`request; and/or
`4. any other explicit
`request.
`D. Resolution Dependent Upon Other Factors
`1. randomly generated selection of destination based upon
`qualified list; and/or
`2. other independently developed information.
`These resolution criteria can be used singly or in any
`desired combination with one another, as specified by the
`requester or the administrator of the destination (e.g. server
`owner or service provider). For instance, in the example of
`FIG. 6 the resolution of the destination address to sun.con1
`(Europe) could be modified if the load of sun.com (Europe)
`is larger by some predetermined threshold amount than the
`load at sun.con1 (USA)—in which case the su11.con1 (USA)
`resolution could override the default sun.com (Europe)
`resolution for requesters in Europe, either at all times or only
`during peak European hours, which correspond to 0 —peak
`hours in the United States.
`An extension of this system is in the resolution of services
`provided at the receiver network of a request. For instance,
`a given organization may have many database servers, and
`request for access to given information may in conventional
`systems be routed to the same server, because of the single
`binding nature of destination resolution. VVith multiple
`address resolution binding, multiple database servers (or
`other destination hosts) such as 210, 270, 280, etc. (see FIG.
`5) may be made available under a single name, in which case
`a local service resolution server, such as server 300 in FIG.
`5,
`is provided. The server 300 includes tables, program
`modules or the like as desired to resolve a request to any one
`of several to many IP addresses. The selection of a given
`server to receive a request can depend upon, for example,
`load at each of the servers.
`In general, the resolution systems or subsystems will be in
`one of three “zones” (see FIG. 7): the sender’s zone 1 (up to,
`e.g.,
`the sender’s firewall or Internet server);
`the name
`resolver system’s zone 2 (which may be at a server on the
`Internet, or any place outside zone 1 which is not in the
`receiver’s system; and the receiver’s zone 3. Service loca-
`tion name resolvers may be in any of zones 1-3; typically,
`destination lookup name resolvers, which may comprise
`n1ultiple—bi11ding domain name services (DNS’s), will be in
`either zone 1 or LOHC 2. It will be understood that zones, for
`the purpose of this application, are administrative
`boundaries, and need not correlate to actual network bou11d—
`aries.
`The present invention can interact with existing systems
`in a number of Ways. For instance, in secure systems where
`the source address is stripped from the request by a firewall
`(and only, e.g., the domain name remains), then the entire
`source address would not be used to resolve the destination;
`the name resolver is provided with the program instructions
`or circuitry to implement this. Note also that the DNS name
`resolution may be a distinct operation from service location,
`and thus the destination can be selected due to a combination
`of considerations including source address, requested des-
`
`An example of such a multiple binding would be the
`binding of multiple, geographically disparate destinations to
`a si11gle domain name. If, for instance, a user in Germany
`wishes to access www.sun.com (the WWW server for Sun
`Microsystems, Inc.), he or she can simply use the Uniform
`Resource Locator (URL) “http:/'/www.sun.com”). Thus, the
`user sends the request from requester (see FIG. 6), and the
`name resolver determines that the requester is in Germany.
`(See step 20 in FIG. 3). The selected destination may either
`be in the United States or elsewhere in Europe, since Sun
`Microsystems in this example has two “sun.com” locations.
`Since there is a valid European local destination, the name
`resolver
`resolves the destination address to sun.com
`(Europe), as indicated at box 30 of FIG. 3. This resolved
`destination is then selected for the request packet(s) (box 40
`of FIG. 3), and the request is forwarded to sun.com (Europe)
`(box 50 of FIG. 3).
`Following are lists of context—dependent resolution crite-
`ria applicable to the invention and usable at box 30 of FIG.
`3, where resolution may be based upon requester
`information, destination information, request contents, or
`other information:
`A. Resolution Based Upon Requester Information
`Examples of manners in which the resolution dependent
`upon requester information may be carried out include:
`1. resolution based upon the domain name of the sender;
`2. resolution based upon the inferred (looked—up) actual
`geographic region of the sender;
`3. resolution based upon other geography—related infor-
`mation of the sender:
`4. either directly ascertainable from the request (city/'
`country info, e.g.); and/or
`5. indirectly ascertainable (area code, address, etc.);
`6. resolution based upon quality of service desired by the
`requester; and
`7. resolution based upon requester’s time of day or time
`zone.
`B. Resolution Based Upon Destination Information
`Examples of manners in which the resolution dependent
`upon a specified or intended destination or receiver infor-
`mation may be carried out include:
`1. resolution based upon the load at the receiver;
`2. resolution based upon the inferred (looked—up) actual
`geographic region of the receiver;
`3. resolution based upon other geography—related infor-
`mation of the receiver:
`4. either directly ascertainable from the request (city/'
`country info, e.g.); and/or
`5. indirectly ascertainable (area code, address, etc.).
`Criterion B.1 can be resolved either based upon informa-
`tion as perceived at the sender end or based upon informa-
`tion as it exists at the receiver end, and resolved at the sender
`end. For example, the sender might frequently send requests
`to a particular server, service, geographical region or orga-
`nization. In this case, it may be advantageous to regularly
`poll one or more oftenused destinations to determine their
`level(s) of activity. Alternatively, such polling could a11to—
`matically be carried out for any destinations for which the
`sender determines that its number of requests exceeds a
`certain threshold, or for a top predetermined percentage of
`requests sent by the requester (e.g. all destinations for which
`the number of requests exceeds N1%, or the top N2 desti-
`nations to which the sender makes requests, where N1 and
`N2 are appropriate predetermined numbers). Polling can be
`implemented as program modules integral
`to the name
`resolver(s), either entirely in one or in more than one
`
`10
`
`20
`
`40
`
`45
`
`viLA
`
`60
`
`65
`
`10
`
`10
`
`

`
`6,154,777
`
`7
`tination address, and request contents, including the type of
`request made or service requested.
`The multiple binding feature of the invention allows a
`single name, Internet address (e.g. URL address such as
`http://www.sun.com) or the like to represent as many actual
`servers (or services) as desired. This has a distinct advantage
`of allowing modifications, upgrades or replications to be
`made to the destination server(s) without modification of the
`destination address or service name as used by the requester.
`Such modifications may include adding servers or services,
`or establishing a mirror site at a location geographically near
`a large source of requests, etc.
`There may be security and consistency implications of
`multiple bindings, with concomitant solutions. If a destina-
`tion address can be multiply bound, a name resolver may be
`configured to bind to an incorrect address, either deliberately
`or otherwise. While this may also be a problem with existing
`single binding, multiple binding may complicate detection
`of the problem. Thus, the system of the invention may be
`combined with programs and tables for verification that a
`given binding is valid. Very secure systems may wish to
`limit their multiple binding to a predetermined, fixed nun1—
`ber of resolution possibilities, or even maintain the current
`system of single binding as far as Internet or Web transmis-
`sion is concerned, a11d implement multiple binding only
`behind a firewall. Alternatively or in addition, encryption
`and digital signatures may be used to ensure validity of
`bindings, and of modifications or additions to the bindings.
`Variations may be had by designating a gven name
`resolution as a default resolution, and utilizing alternative
`resolutions only upon the request meeting predetermined
`criteria (such as load imbalance, geographical distance,
`specific sources of the request, etc).
`Additional bindings (i.e. additional addresses to which a
`request may resolve) may be added without the requester
`being aware of it, and indeed substitutions may be made at
`any time, again transparently to the requester.
`T. Service Selection Based Upon Caller Context
`The system of the invention may be applied more gener-
`ally to the use of caller context for name resolution. Context
`about the requesting user (e.g. in a variable called “caller,
`context”) can be passed to appropriate functions, such as:
`service_handle=name_service_lookup(“movie”,
`caller_context)
`host_handle=name_hostname_lookup(service_handle,
`caller_context)
`Here, the function service_handle executes a service name
`lookup based upon the input “movie”, as well as the infor-
`mation in the variable caller_context, outputting the value
`service_handle. Given this output as input, along with
`(again) caller context,
`the function host handle then
`returns an appropriate host name.
`An example of a possible such situation could result when
`a user desires an encryption service, and several encryption
`policies are available. The service handle function can be
`configured to return different encryption algorithm services
`based upon the specified destination (which is specified in
`caller context), or there may be an effective override in the
`caller_context by which the user can select a higher level of
`security.
`In general, as noted above, the invention may be imple-
`mented at the sender’s system or at the destination system,
`or indeed at points in between (e.g. at proxy servers). Note
`that single points of failure and bottlenecks are removed
`using the present system, and a truly distributed, multiply
`binding name resolution system is achieved.
`
`l0
`
`Z0
`
`40
`
`45
`
`viLA
`
`60
`
`65
`
`8
`
`What is claimed is:
`l. A system for name resolution comprising:
`a first service provider;
`a first requester configured to generate a request which
`indicates a destination name of a service; and
`a name resolver interposed between said first service
`provider and said first requester, wherein said name
`resolver is configured to select a destination address
`corresponding to said destination name of said service
`from a plurality of destination addresses depending
`upon at least two of either a geographical location of
`said first requester, a load of use of said first provider,
`and/or a time of said request, wherein said geographic
`location of said first requester is specified as a param-
`eter within said request.
`2. The system as recited in claim 1, wherein said name
`resolver is configured to select said destination address
`corresponding to said destination name of said service
`depending upon said date of said request and said time of
`said request and wherein said date of said request is specified
`as a parameter within said request and said time of said
`request is specified as a parameter within said request.
`3. The system as recited in claim 1, wherein said name
`resolver is further configured to select said destination
`address corresponding to said destination name of said
`service depending upon at
`least one of a quality of said
`service requested by said first requester and a type of said
`service requested by said first requester.
`4. The system as recited in claim 1, wherein said name
`resolver is further configured to select said destination
`address corresponding to said destination name of said
`service depending upon at least two of a type of service
`provided by said first server provider, a quality of service
`provided by said first server provider, a date of said service,
`and a time of said service.
`5. The system as recited in claim 1, wherein said first
`service provider is included within said first host and said
`first requester is included within said first host.
`6. The system as recited in claim 5, wherein said first
`service provider is included within said first host and said
`first requester is included within said first host.
`7. A system for resolving names comprising:
`a name resolving unit coupled to a requester for a service
`and a provider of said service, wherein said name
`resolving unit
`is configured to select a destination
`address corresponding to said destination name of said
`service from a plurality of destination addresses in
`response to a request for said service, and wherein
`said name resolving unit is configured to select said
`destination address corresponding to said destination
`name of said service depending upon at least one of
`either a geographical
`location of said requester, a
`date of said request, and/or a time of said request.
`8. The system as recited in claim 7, wherein said name
`resolving unit is configured to select said destination address
`corres

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket