throbber
12 United States Patent
`Walls et at
`
`10 Patent No
`45 Date of Patent
`
`US 6282569 Bi
`Aug 28 2001
`
`FOREIGN PATENT DOCUMENTS
`
`0232509
`0240145
`
`8/1987 EP
`10/1987 EP
`OTHER PUBLICATIONS
`
`Class of Distributed Directory
`et al Analysis of
`Gopal
`Algorithms Infocom 89 pp 293_302
`Local Name Server
`for Organizational
`Spahni
`et al
`Message Handling Systems Digital Communications 1988
`Zurich Seminar pp 239_246
`Anklesaria et al The Internet Gopher Protocol Network
`Working Group Mar 1993
`Primary ExaininerMajid Banankhah
`74 Attorney Agent or FirmJerry
`57
`ABSTRACT
`
`Herndon
`
`to
`
`of
`
`computers
`computer
`
`receives
`
`request
`
`enabling
`
`such
`
`The
`
`the server
`
`name server computer
`and method of operating
`connection
`program on
`computer
`for
`facilitating
`the
`of
`client computer
`server
`consisting
`server
`plurality of server computers with shared resources
`name server computer
`the client computer and
`the server
`logical network The name server
`all reside in
`from the client computer
`for
`server computer
`identified by
`computer address of
`server
`computer name sent with the request such computer address
`to be made from the client computer
`connection
`via the network
`to that server computer
`list of server
`computer names with their computer
`addresses is provided
`The name server computer uses the list
`to convert
`name received from the client computer
`computer
`into the
`computer address of the server computer and then sends the
`address to the client computer The computer
`computer
`further includes decision logic for studying the server com
`puters at predetermined intervals having regard to
`prede
`termined test criteria to select one of the server computers
`The list
`is then updated by associating the computer
`address
`for the server computer
`selected by the decision logic with
`name contained
`particular server computer
`as
`generic
`server computer name in the list Using this technique when
`client
`the generic
`computer
`computer
`server
`specifies
`address of the server com
`name it
`receives the computer
`identified by the decision logic
`
`54 NAME SERVER COMPUTER HAVING
`LOAD LEVELLING FACILITY TO SPREAD
`THE LOAD FROM CLIENT COMPUTERS
`ACROSS
`PLURALITY OF SERVER
`COMPUTERS
`
`75 Inventors
`
`Graham Derek Wallis Locks Heath
`Michael George Taylor Southampton
`Michael Platt Hambledon Andrew
`James Stanford-Clark Eastleigh all of
`GB
`
`73 Assignee
`
`International Business Machines
`
`Corp Armonk NY US
`
`Notice
`
`Subject
`
`the term of this
`to any disclaimer
`is extended or adjusted under 35
`patent
`U.S.C 154b by
`days
`
`21
`22
`
`Appl No 08/868111
`Jun
`
`Filed
`
`1997
`
`Related U.S Application Data
`
`63 Continuation of application No 08/297469
`29 1994 now abandoned
`
`filed on Aug
`
`30
`Foreign Application Priority Data
`Sep 11 1993 GB
`51 Int Cl.7
`52 U.S Cl
`
`709/224
`
`709/203
`
`9318877
`
`GO6F 12/00
`
`709/223
`
`709/226
`709/205
`58 Field of Search
`709/201 202
`204 217 218 219 226 227
`709/203
`707/202 203
`228 330 700/178
`710/100
`204 205
`
`56
`
`References Cited
`
`U.S PATENT DOCUMENTS
`
`4737983
`5155851
`5249290
`
`Frauenthal
`
`4/1988
`10/1992 Krishnan
`9/1993 Heizer
`
`et al
`
`379/221
`
`395/650
`
`395/650
`
`puter
`
`List continued on next page
`
`13 Claims Drawing Sheets
`
`2O
`
`CLIENT
`COMPUTER
`
`ERCE
`
`MACHINE
`ADDRESS
`
`I-
`
`DECISION LOGIC
`
`______
`
`SERVER
`COMPUTER
`
`5O
`
`SERVER
`COMPUTER
`
`6O-
`
`SERVER
`COMPUTER
`
`Petitioner IBM – Ex. 1016, p. 1
`
`

`
`Us 6282569 Bi
`
`Page
`
`U.S PATENT DOCUMENTS
`
`5335356
`5341477
`5408619
`
`8/1994
`
`Andersson
`
`8/1994
`
`Pitkin et
`
`4/1995
`
`Oran
`
`455/54.1
`
`395/200
`
`395/325
`
`5434914
`5475819
`5504894
`
`7/1995
`
`Fraser
`
`12/1995 Miller et
`
`4/1996
`
`Ferguson et
`
`379/219
`
`395/200.03
`
`395/650
`
`cited by examiner
`
`Petitioner IBM – Ex. 1016, p. 2
`
`

`
`COMPUTER
`SERVER
`
`6O-
`
`COMPUTER
`SERVER
`
`_____
`50-\
`
`COMPUTER
`SERVER
`
`4O\
`
`ADDRESS
`MACHINE
`
`COMPUTER
`
`CLIENT
`
`GENERICNAME
`
`__
`
`2O
`
`FIG
`
`Petitioner IBM – Ex. 1016, p. 3
`
`

`
`PREDETERMINEDPERIOD
`
`WAITUNTILEXPIRYO
`
`F
`
`2801
`
`300
`
`FMEMORY
`ONAMESERVER
`
`UPDATEO
`SENDMESSAGET
`_____
`
`FOR
`
`NO
`
`270
`
`DEVICE
`
`UPDATESTORAGE
`
`YES
`
`CHANGE
`
`ANY
`
`SERVERCOMPUTER
`
`DETERMINELEASTBUSY
`
`FROMSERVERCOMPUTERS
`
`COLLATERESPONSES
`
`250
`
`260
`
`-240
`
`230
`
`220
`
`210
`
`SERVERCOMPUTER
`SENDMETRICSTRING
`
`TO
`
`SERVERCOMPUTER
`SENDMETRICSTRING
`
`TO
`
`SERVERCOMPUTER
`SENDMETRICSTRING
`
`TO
`
`SERVERCOMPUTER
`SENDMETRICSTRING
`
`TO
`
`FIG
`
`______
`
`INITIALISATION
`
`Petitioner IBM – Ex. 1016, p. 4
`
`

`
`U.S Patent
`
`Aug 28 2001
`
`Sheet
`
`of
`
`US 6282569 Bi
`
`FIG
`
`SERVER CLUSTER
`
`410
`
`sERVER
`
`SERVER
`COMPUTER
`
`__________________________________________________________________________________
`
`COMPUTERf
`SERVER
`COMPUTER
`_________
`
`__________________________________________________________________________________
`
`SERVER
`COMPUTER
`_________
`
`SERVER
`COMPUTER
`
`____________________________________________________________________________________
`
`SERVER
`COMPUTER
`__________
`
`40O4
`
`SERVER1
`COMPUTER
`
`
`
`_______________________________________________________________________________________________________________________________________________________
`
`SERVER
`COMPUTER
`_________
`__________
`
`Petitioner IBM – Ex. 1016, p. 5
`
`

`
`US 6282569 Bi
`
`NAME SERVER COMPUTER HAVING
`LOAD LEVELLING FACILITY TO SPREAD
`THE LOAD FROM CLIENT COMPUTERS
`ACROSS
`PLURALITY OF SERVER
`COMPUTERS
`
`is
`
`for
`
`connection
`
`of
`
`Local Area
`
`the
`
`it
`
`continuation of application Ser No
`The application
`08/297469 filed Aug 29 1994 now abandoned
`The present
`invention relates to
`data processing system
`program on
`facilitating the
`client
`to
`server the server consisting of
`plurality of
`computer
`server computers with shared resources
`The data processing system the client computer and the
`network This network
`are all resident on
`server computers
`need not be one physical network
`such as
`Network LAN for instance it may consist of
`number of
`LANS or WANS wide area networks connected together
`eg via bridges to form single logical network However
`the same network protocol will be employed throughout
`typical example of such
`network
`protocol being TCP/IP
`which will be familiar to those skilled in the art
`In many environments
`is increasingly found that
`number of server computers
`are connected together using
`LAN It
`some form of network eg
`is often the case that
`several users of client computers will be connected to one
`such server computer whilst other server computers
`stand
`idle An example of this is when such computers are situated
`in workers offices connected by for example
`token ring
`LAN using the standard TCP/IP network protocol When
`workers are away from their offices their computers will
`usually stand idle
`In such situations
`
`it
`
`few of
`
`the
`
`computers
`
`other
`
`to
`
`is
`
`is
`
`is
`
`is commonly the case that
`in the network
`are heavily loaded whilst
`in the network
`lightly loaded
`computers
`are very
`for the client com
`response and performance
`giving poor
`puters using the heavily loaded server computers Hence
`problem of how to enable the client user load to be
`there is
`spread more evenly
`the available computing
`across
`in manner which is transparent
`to
`resources of the server
`is to be
`and its programs If
`the client computer
`transparency
`standard protocols need to be observed in order
`achieved
`variety of connection meth
`can use
`that client computers
`ods without modification of any programs being required
`technique which has been developed
`to
`prior art
`some sort of load spreading is called Static load
`provide
`each
`on each
`levelling With this technique
`application
`designated server to which it always
`has
`client computer
`connects Hence
`there are 200 potential
`for example if
`pre
`clients
`of
`five server computers
`server having
`group of say 40 of the clients will be told or
`specified
`etc On average
`to machine
`configured to always connect
`it may be argued that
`reasonably even load
`this will give
`across all of the server computers However
`in practice it
`large number of
`often the case that using this technique
`connected
`one
`users of client
`computers
`are
`server
`stands com
`computer while an ad acent
`server computer
`pletely idle eg given the above example there could easily
`be 40 users on one server computer whilst
`the other
`server
`stand idle Hence in situations where the user
`computers
`loading changes from time to time the prior art static load
`levelling technique is not particularly satisfactory What
`more dynamic technique
`required in such instances
`which can respond to changing user loads and thus direct
`new users to the most suitable eg least heavily loaded
`in the server
`server computers
`be
`found in other
`Other prior art
`can
`techniques
`environments such as those where job allocation is an issue
`
`batch
`
`from the client
`
`to the
`
`is
`
`is inappropriate
`
`internal
`
`type of
`
`is possible
`program on
`message-passing
`
`client computer sub
`For instance in batch processing
`central server which deter
`task to
`mits an encapsulated
`mines which one of several possible servers is quiet enough
`to be able to handle the task The task is sent to that server
`and the results are then sent back to the client
`is processed
`results file or by electronic mail With
`e.g as
`brief connection
`processing system there is
`to the central
`server while the job is transferred
`server allocated by the central server After this brief con-
`and has no more interaction
`10 nection the client disconnects
`with the submitted task until
`it has been completed and the
`results have been passed back to the client by some means
`However
`in the situation with which we are currently
`the dynamic load levelling technique
`concerned
`that
`is required must be able to deal with interactive sessions
`Rather
`between
`phone conversation the connection
`like
`and
`the program on the client computer
`particular server
`for the duration of the conversation
`computer will persist
`session Hence the batch processing concept
`in the present situation
`code within
`to write some
`specific
`client computer which contains
`to route work from that client
`systems
`server program Such systems
`corresponding
`program to
`25 are dedicated only to that particular client program and the
`connection
`and load-levelling methods
`are not accessible to
`other client-server applications Often such systems operate
`specific host server computer
`by the client connecting to
`and from there the work will be sent
`to another server
`for
`30 processing Clearly this technique can result in large bottle
`the host server computer
`necks arising at
`Hence such
`is not suitable
`in the present
`technique
`one very specific
`situation since it only supports
`client-server connection whereas we need
`technique that
`35 will allow any client-server connection method using the
`network protocol to be connected to
`in way
`quiet server
`is completely transparent
`to the client program Further
`connection
`the above technique relies on an initial
`to the
`central host server computer which then passes the request
`40 on to another server computer as described above this can
`serious bottleneck
`potentially create
`is an object of
`the present
`invention to provide
`technique which facilitates
`connection
`between
`client
`on
`program and
`in way that
`server computer
`server
`takes into account
`the current status of the server computers
`forming the server This technique must observe standard
`network protocols and should operate in manner which is
`access
`to the client program requesting
`transparent
`invention provides
`Accordingly the present
`data pro-
`connection of
`program on
`50 cessing system for facilitating
`client computer
`of
`the server consisting
`server
`plurality of server computers with shared resources
`the data
`and
`client
`the
`system the
`computer
`server
`network the system comprising
`residing in
`computers
`from the client computer
`input means for receiving
`for machine address of
`identified by
`server computer
`server computer name sent with the request such machine
`to be made from the client
`connection
`address enabling
`to that server computer via the network
`computer
`storage
`names
`60 device for storing
`identifying server computer
`list
`with machine addresses of the server computers conversion
`the server computer name
`means for using the list
`to convert
`received by the input means into the machine address of the
`the machine
`server computer output means for sending
`address from the conversion means to the client computer
`the system being characterised by decision logic for study-
`at predetermined intervals having
`ing the server computers
`
`It
`
`that
`
`It
`
`to
`
`processing
`
`request
`
`20
`
`45
`
`55
`
`65
`
`Petitioner IBM – Ex. 1016, p. 6
`
`

`
`US 6282569 Bi
`
`to select one of
`regard to predetermined test criteria in order
`the server computers and writing means for updating the list
`the machine address for the server computer
`by associating
`logic with
`selected
`by the decision
`server
`name contained
`server computer
`computer
`as
`generic
`name in the list whereby when
`client computer
`specifies
`receives the machine
`the generic server computer name it
`address of the server computer
`identified by the decision
`
`particular
`
`the list
`
`from
`
`test
`
`intervals
`
`other server computers
`
`access
`
`logic
`Typically the conversion means will access
`local piece of storage the data processing
`system having
`from the storage device to that piece
`to copy the list
`copier
`of memory In preferred embodiments the data processing
`messaging means responsive to
`system further comprises
`the updating of the list by the writing means for sending
`the
`the copier
`the copier
`message to
`to copy
`requesting
`into the piece of local memory
`updated list
`test criteria can be used in
`Any manner of predetermined
`system of the invention for example the
`the data processing
`amount of
`time the number of processes
`idle processor
`running the amount of free memory the load average etc
`However
`in preferred embodiments the predetermined
`criteria are such that
`the decision logic identifies the server
`computer having the least number of client programs logged
`on to it
`In preferred embodiments the predetermined
`are variable and will either be set by
`user of the system eg
`be adjusted dynamically
`the system administrator or will
`The user will also set
`the predetermined test criteria to be
`used by the decision logic
`Further in preferred embodiments the user can limit
`the
`number of server computers which the decision logic stud
`for instance some of the server
`ies This may be useful if
`have
`computers
`not got access
`to all of the resources
`that
`have
`to and so would not be
`to be associated with the
`
`suitable
`
`provides
`
`facilitate
`
`receiving
`
`request
`
`ing server computer
`in
`
`invention
`
`to
`
`list
`
`computers
`as server
`server computer name
`generic
`In some embodiments it may be advantageous
`to use
`plurality of generic names Each server name would then
`number of server computers whose machine
`have
`addresses are associated with that generic name the decision
`test criteria
`logic employing different sets of predetermined
`for each generic name In such embodiments one or more of
`the server computers can be associated with plurality of the
`generic names
`Viewed
`from
`second aspect
`the present
`method of operating
`data processing
`system to
`connection of
`program on
`client computer
`the
`of
`plurality of server
`server
`server
`consisting
`computers with shared
`resources the data processing
`system the client computer and the server computers
`resid
`network the method comprising the steps of
`ing in
`for machine
`from the client computer
`address of
`identified by
`server computer
`server computer
`name sent with the request such machine address enabling
`to be made from the client computer
`connection
`to that
`via the network
`server computer
`identify
`storing
`names with machine addresses of the
`converting with
`storage device
`server computers
`name received at
`the server computer
`reference to the list
`into the machine address of the server computer
`step
`sending the machine address identified at step
`to the
`client computer the method being characterised by the steps
`logic to study the server com
`of
`employing decision
`intervals having regard to predeter
`puters at predetermined
`mined test criteria in order to select one of
`and IT updating
`by associating
`the
`
`computer
`invention that computer will be the data
`utilising the present
`processing system Of the preferred embodiment
`Hence when
`client computer 20
`program running on
`is illustrated wishes to
`for clarity only one client computer
`server computer 40 50 60 in the cluster
`to
`obtain access
`it will communicate with the data processing
`system 10 in
`Internet machine address for the desired
`
`order to obtain
`
`computers
`
`list
`
`the server
`
`the
`
`Internet addressing is part of the TCP/IP protocol
`65 server
`With the prior art
`computer would
`the
`client
`technique
`server computer name in this communication that
`
`specify
`
`full
`
`machine
`selected by the
`the server computer
`address for
`particular server computer name con
`decision logic with
`generic server computer name in the list whereby
`tained as
`server com
`when
`the generic
`client computer
`specifies
`puter name at step
`it receives the machine address of the
`identified by the decision logic
`server computer
`The present
`invention will be described further by way
`of example only with reference to an embodiment thereof as
`drawings in which
`illustrated in the accompanying
`FIG is
`block diagram illustrating the data processing
`system of the preferred embodiment
`FIG is
`flow diagram illustrating how the decision
`logic in the data processing system of the preferred embodi
`and
`ment operates
`FIG illustrates
`particular embodiment where two
`computer names are used
`generic
`in the preferred embodiment we will consider
`ation where the server
`in question is
`high performance
`database server which has
`its data distributed across
`20 network of server computers this server network
`cluster Database applications
`being
`being referred to as
`are required to connect
`run by users on client computers
`one of the server computers
`to enable them to
`in the cluster
`the data in the database server By the nature of the
`access
`25 database system it does not matter which server computer
`the client connects toall of the data is accessible from any
`in the cluster In the preferred embodiment
`server computer
`and the client computers
`the server computers
`connected using TCP/IP on
`token ring Local Area Net-
`30 work
`For
`is highly desirable to have
`large number of users it
`number of users on each of the server computers
`in the
`to and hence
`than all users connecting
`server cluster rather
`overloading just one or
`few of the server computers With
`widely varying user workload profile for
`the database
`server this problem can only be solved by providing some
`new
`form of load levelling process which will allocate
`instances to server computers in the cluster
`client application
`that are most suitable for the client connection eg because
`they are more lightly loaded than other server computers
`Clearly this process must be dynamic
`able to respond to
`time Since the database
`load conditions
`changing
`over
`on the client computers
`are typically complex
`applications
`code form it would be
`and often are supplied only in object
`45 very difficult or impossible for the system administrator to
`is done
`them and so it
`is essential
`that this allocation
`manner which
`
`the situ
`
`hereafter
`
`to
`
`are all
`
`inter
`
`alter
`
`in
`
`is entirely transparent
`
`to
`
`the client
`
`10
`
`is
`
`35
`
`40
`
`application
`in which the data processing system of the
`The manner
`50 preferred embodiment solves the above problems will now
`be described with reference to FIG
`Each client
`network
`using the TCP/IP
`in
`computer
`typically be many such
`client
`there will
`protocol
`computers will have been informed by the network admin
`is to communicate with
`istrator that
`particular computer
`when it wishes
`name of another
`address When
`in the network
`
`it
`
`to convert
`
`computer
`machine
`
`into
`
`55
`
`60
`
`Petitioner IBM – Ex. 1016, p. 7
`
`

`
`US 6282569 Bi
`
`access
`
`at
`
`was specific to ooe particular server computer
`in the cluster
`The input means 30 of the data processing system 10 would
`to the con
`name and pass it
`receive this server computer
`version means 70
`storage device 80 of the data processing system list
`In
`is maintained which identifies server computer names with
`particular Internet addresses When the conversion means is
`initiated the copier 90 copies this list
`from the storage device
`80 into
`local memory 100 accessible by the
`piece of
`conversion means 70 Hence the
`conversion means will
`in memory 100 to find the Internet address of
`the list
`name
`associated with the
`the
`server computer
`computer
`passed to it by the input means 30 This Internet address will
`then be provided
`by the conversion means to the output
`means 110 for transmission back to the client computer 20
`Once the client computer
`has the Internet address it can
`then make direct contact with the server computer
`residing
`address provided in FIG this is server
`the Internet
`is used any of the
`Since the TCP/IP protocol
`computer
`access methods that use this protocol can be used to access
`the server computer
`When using the data processing
`system of the preferred
`embodiment the program running on the client computer 20
`name that
`will not use the server computer
`it previously
`generic server computer name will be used
`used Instead
`This generic server name will either have been placed in the
`programs configuration file or alternatively the user of the
`program will specify the generic name when running the
`program
`Within the data processing system decision logic 120 is
`provided which periodically studies the server computers
`in
`the cluster having regard to some predetermined
`test criteria
`called the metric string In the preferred embodi
`hereafter
`list of questions which when
`ment
`the metric string is
`answered by the various
`server computers will enable the
`logic to decide which server
`is most
`computer
`decision
`client connection
`the most suitable perhaps
`suitable
`for
`being the least heavily leaded server computer The metric
`string can
`be altered as the system administrator deems
`on what criteria the administrator
`appropriate depending
`wishes to be used to select
`server computer
`In the preferred embodiment the decision logic actually
`number of child processes
`each one being respon
`sets up
`sible for sending
`the metric string to
`particular server
`from the server com
`and receiving
`the
`
`computer
`
`response
`
`is
`
`is
`
`last
`
`puter
`Once the responses have been received the decision logic
`will collate the responses decide which server computer
`most suitable and then request
`the writing means 160 to
`address of
`that server
`pass the
`to the
`computer
`Internet
`storage device for association with the generic server com
`puter name If however
`the most suitable server computer
`same server
`the
`identified in the
`as that
`computer
`iteration of the process then there is no need to update the
`storage device and the writing means will not be activated
`Once any necessary update to the storage device 80 has
`been made the messaging means 170 will notify the copier
`90 so that
`the copier updates the local memory 100 with the
`as stored in the storage device 80
`new list
`Hence when the client computer
`machine
`requests
`address for the generic server computer name the conversion
`means 70 accesses
`in memory 100 and identifies
`the list
`address just as it would if any other server com
`machine
`puter name had been given However
`in this instance the
`machine address actually
`in
`relates to the server computer
`the cluster which has been identified by the decision logic as
`the most suitable eg least heavily loaded When
`this
`
`machine address is passed back to the client computer 20 via
`the output means 110 the client computer will proceed to
`the server which is most suitable
`automatically access
`By this approach it will
`be seen
`dynamic load
`that
`levelling facility is provided which is completely transparent
`to the client program As far as the program is concerned it
`machine address as normal and is using one
`is requesting
`of the normal TCP/IP access methods to gain access
`to the
`allocated to it
`
`full
`
`it
`
`full
`
`10
`
`30
`
`40
`
`45
`
`server computer
`eg Unix
`environments
`In many of todays computing
`AIX Unix is
`Trade Mark of Unix Systems Laboratories
`Inc an application
`is provided
`to perform the standard
`name resolution service ie receipt of
`computer name and
`name into
`conversion
`computer
`of
`that
`Internet
`known as
`address This application is commonly
`nameserver application and is installed on one or more
`in the logical network Every other computer
`in
`computers
`the network
`is told to communicate with
`specified one of
`computers when it wishes to determine
`these nameserver
`in the network
`an Internet address for any other computer
`20 Hence
`nameserver
`resolution service
`computer provides
`from them
`convenient
`to client computers by receiving
`name called Uniform Resource Locator or URL given to
`particular computer eg abc.def.ghi.com and converting
`Internet address eg 29.1.19.66 This Internet
`into
`25 address is then used by the routing subsystem TCP/IP to
`allow
`access
`client user or application
`to the physical
`computer eg abc in this example
`computer name abc is the
`In the above example of
`physical machine del is typically the site location ghi
`the organisation and com one of the Internet classes three
`are commercial
`education military
`such classes
`Domains and sub-domains
`can also be added as part of this
`computer name Basically the name takes
`hierarchical
`form with the finest
`the beginning and the
`resolution at
`the end this type of naming structure
`35 coarsest resolution at
`will of course be well known to those skilled in the art
`All TCP/IP-based
`
`applications including remote-login
`ftp and also client-server applications
`remote-shell
`telnet
`such as database applications
`are aware of the nameserver
`and will automatically
`go to the designated
`facility
`nameserver
`computer
`computer
`to ask for resolution of
`to make
`name into an Internet address before attempting
`connection
`in the network
`to another computer
`If we consider FIG again the standard nameserver
`include the following elements the input means
`facility will
`30 the conversion means 70 with associated memory 100
`the output means 110 the list stored in the storage device 80
`and the copier 90
`is daemon background
`The nameserver application
`50 process which runs on the data processing system this data
`processing system may but need not be one of the server
`forming part of the cluster over which users are
`computers
`systems eg AIX
`to be distributed In Unix-type operating
`by IBM Corporation Ultrix by Digital Equipment
`55 Corporation OSF/1 by the Open Software Foundation and
`HP-UX by Hewlett Packard
`etc this daemon process
`called named name-daemon and when it
`is initialised it
`stored on the
`reads
`special database file named.data
`storage device 80 to obtain details of the computer
`to know over which
`60 about which it
`it has
`is expected
`authority and the corresponding Internet addresses
`dotted decimal e.g 29.1.19.66 for each computer name
`the name daemon is operating it can be forced to
`Whilst
`re-read the information from the named.data database file by
`to the name daemon
`the sending of an inter-process
`tables 100 from the
`
`is
`
`names
`
`65
`
`signal
`
`to update its internal
`process telling it
`database file named.data
`
`Petitioner IBM – Ex. 1016, p. 8
`
`

`
`US 6282569 Bi
`
`into the
`
`at
`
`application
`
`is responsible
`in the cluster
`
`invention we
`In the preferred embodiment of the present
`further facility which runs on the same computer
`provide
`application named and
`as the nameserver
`interfaces
`name is introduced
`with it
`generic computer
`database file named.data which refers not
`to one specific
`number of computers offering
`to any one of
`computer but
`name
`functionality For example the generic
`equivalent
`be server.cluster.def.ghi.com
`might
`client program
`connection
`to server cluster
`is
`requesting
`requesting
`to any one of the computers
`connection
`in the server cluster
`by the preferred embodi
`The further facility provided
`as the User Load Lev
`ment will be referred to hereafter
`eller ULL application This application
`for
`deciding which server computer
`is currently
`to some appropriate
`least heavily loaded according
`the
`metric and for conveying this information to the nameserver
`application Then subsequent
`requests for resolution of the
`name to an Internet
`address result
`server computer
`generic
`sending back
`in the nameserver
`to the client
`application
`the Internet address of the server computer which
`computer
`has been deemed to be the most appropriate server computer
`for connection
`in time
`that point
`The ULL application
`consists of the following elements
`from FIG the decision logic 120 with child processes 130
`140 150 the writing means 160 and the messaging means
`170 As described earlier with reference to FIG the ULL
`frequency which can varied
`periodically at
`eg tuned by
`system administrator or dynamically
`adjusted polls the
`computers
`server
`in the
`cluster
`to
`how busy in some sense they are The metric
`determine
`on the type of work which is
`used may vary depending
`being handled by the cluster but may for example include
`the number of
`login sessions number of application
`instances running number of idle cpu cycles since the last
`poll etc The metric can
`be altered to ensure that
`specific situation
`appropriate to
`Based on the results of
`this polling and
`server computer
`
`account
`
`the situation where
`
`it
`
`is
`
`taking
`
`into
`
`in the cluster
`
`certain
`
`for the
`
`is
`
`is too busy to respond to the status request within
`the ULL application
`number
`decides which
`of seconds
`is currently the least heavily loaded The ULL
`machine
`then modifies the database file named.data to
`application
`associate the generic cluster machine name with the Internet
`address of this least heavily loaded machine and sends the
`signal via the messaging means 170
`special
`inter-process
`which tells the nameserver application
`to re-read its database
`file The nameserver application will
`then in
`response to
`name resolution request
`from client program resolve the
`name into the Internet
`address of
`server computer
`generic
`the most appropriate
`in the cluster
`server computer
`to
`client program to connect
`The
`carried out by the decision logic 120 of the
`process
`preferred embodiment will now be described in more detail
`with reference to FIG At step 200 the ULL application
`number of steps are carried out at initialisation
`initialised
`For example the application checks for multiple copies of
`the ULL application
`in memory cleans up from previous
`run of the application by freeing up system resources such
`as memory locks and semaphores still held in the name of
`instance of the ULL application and locates
`the previous
`application named and its data file
`nameserver
`The ULL application
`named.data
`then parses its configu
`read information
`by the system
`ration file
`defined
`administrator such as the metric strings poll periods iden
`tities of server computers in the cluster etc Further the ULL
`number of child processesone
`application
`generates
`per server computerwhich are each responsible for polling
`the activity of one designated server
`
`the
`
`to
`
`processes
`
`trigger
`
`If
`
`to
`
`it
`
`to update its internal
`
`to specific.cluster but
`
`if
`
`to the general
`
`information
`
`Once the initialisation has been completed
`the
`process
`enters main loop which executes until the ULL application
`is terminated At steps 210 220 230 and 240 the child
`send
`metric string as defined by the system
`to each server computer
`in the cluster await
`administrator
`responses from those computers and then wait for
`signal from the main ULL application
`Once the
`trigger signal has been sent by the main
`the responses are sent by the child processes to
`application
`the main application The main application
`then collates the
`activity results received from the child processes step 250
`test criteria identifies the most
`and based on predetermined
`the least busy server
`appropriate server computer
`computer at step 260 At step 270 it
`is determined whether
`identified at step 260 differs from the
`the server computer
`nominated
`it does then the
`current
`computer
`server
`process advances to step 290 at which point
`the nameserv
`ers data file named.data is modified Further at step 300
`the nameserver
`is sent
`notification signal
`application
`20 named to tell
`information from the
`data file
`The process then proceeds to step 280 If at step 270 it
`is determined
`identified at step 260
`the server computer
`that
`is the same as the current nominated
`then
`server computer
`the process moves straight to step 280 without steps 290 and
`300 being carried out Writing to and reading from the data
`activities and so steps 290 and 300
`file are time consuming
`should only be performed when necessary
`ie when the
`least busy server computer changes
`the end of the poll
`At step 280 the process waits until
`period This period is the predetermined interval as defined
`by the system administrator between successive studies of
`the server computers by the ULL application Once the poll
`period has expired the process loops back to steps 210240
`and the main loop is repeated
`few pos
`discussed the preferred embodiment
`Having
`sible alterations will now be discussed Firstly more than one
`name can be added to th

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