`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