`
`EP 0 648 038 A2
`
`8
`
`that server computer to the storage device for asso(cid:173)
`ciation with the generic server computer name. If
`however the most suitable server computer is the
`same server computer as that identified in the last
`iteration of the process then there is no need to up(cid:173)
`date the storage device and the writing means will not
`be activated.
`Once any necessary update to the storage de(cid:173)
`vice 80 has been made the messaging means 170 will
`notify the copier 90 so that the copier updates the lo(cid:173)
`cal memory 1 00 with the new list as stored in the stor(cid:173)
`age device 80.
`Hence when the dient computer requests a ma(cid:173)
`chine address for the generic server computer name
`the conversion means 70 accesses the list in memory
`100 and identifies a machine address just as it would
`if any other server computer name had been given.
`However in this instance the machine address actual(cid:173)
`ly relates to the server computer in the cluster which
`has been identified by the decision logic as the most
`suitable (eg. least heavily loaded). When this ma(cid:173)
`chine address is passed back to the client computer
`20 via the output means 110, the client computer will
`proceed to automatically access the server which is
`most suitable.
`By this approach it will be seen that a dynamic
`load levelling facility is provided which is completely
`transparent to the client program. As far as the pro(cid:173)
`gram is concerned it is requesting a machine address
`as normal and is using one of the normal TCPIIP ac(cid:173)
`cess methods to gain access to the server computer
`allocated to it.
`In many of todays computing environments (eg
`Unix, AIX (Unix is a Trade Mark of Unix Systems Lair
`oratories Inc)) an application is provided to perform
`the standard name resolution service (ie receipt of a
`computer name and conversion of that computer
`name into a full Internet address). This application is
`commonly known as a 'nameserver" application, and
`is installed on one or more computers in the logical
`network. Every other computer in the network is told
`to communicate with a specified one of these 'name(cid:173)
`server' computers when it wishes to determine an In(cid:173)
`ternet address for any other computer In the network.
`Hence a nameserver computer provides a resolution
`service to client computers by receiving from them a
`convenient name given to a particular computer (eg.
`abc.def.ghi.com), and converting it into a full Internet
`address (eg. 29.1.19.66). This Internet address is
`then used by the routing subsystem (TCPIIP) to allow
`a client user or application access to the physical
`computer (eg "abc" In this example).
`In the above example of a computer name, 'abc"
`is the physical machine, "der Is typically the site lo(cid:173)
`cation, "ghi" the organisation, and •com• one of the In(cid:173)
`ternet dasses (three such dasses are (com)mercial,
`(edu)cation, (mil)itary). Domains and sulrdomains
`can also be added as part of this computer name. Ba-
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`5
`
`sically the name takes a hierarchical form, with the
`finest resolution at the beginning and the coarsest re(cid:173)
`solution at the end; this type of naming structure will
`of course be well known to those skilled in the art.
`All TCPIIP-based applications, including remote-
`login, remote-shell, telnet, ftp, and also client-server
`applications (such as database applications), are
`aware of the nameserver facility, and will automati(cid:173)
`cally go to the designated nameserver computer to
`ask for resolution of a computer name Into an Internet
`address before attempting to make a connection to
`another computer in the network.
`If we consider Figure 1 again, the standard name(cid:173)
`server facility will include the following elements: the
`input means 30, the conversion means 70 with asso(cid:173)
`ciated memory 100, the output means 110, the list
`stored in the storage device 80, and the copier 90.
`The nameserver application is a "daemon' (back(cid:173)
`ground) process which runs on the data processing
`system; this data processing system may (but need
`not) be one of the server computers forming part of
`the cluster over which users are to be distributed. In
`Unix-type operating systems (eg. AIX by IBM Corpor(cid:173)
`ation, Ultrix by Digital Equipment Corporation, OSF/1
`by the Open Software Foundation, and HP-UX by
`Hewlett Packard, etc) this daemon process is called
`"named" (name-daemon), and when it is initialised, it
`reads a special database file (named.data) stored on
`the storage device 80 to obtain details of the comput-
`er names about which it is expected to know (over
`which it has "authority"), and the corresponding Inter(cid:173)
`net addresses ("dotted decimal", e.g. 29.1.19.66) for
`each computer name. Whilst the name daemon is op(cid:173)
`erating, it can be forced to re-read the information
`from the named.data database file by the sending of
`an inter-process signal to the name daemon process
`telling it to update its internal tables 100 from the da(cid:173)
`tabase file (named. data).
`In the preferred embodiment oft he present inven-
`lion we provide a further facility which runs on the
`same computer as
`the nameserver application
`("named'), and interfaces with it. A 'generic' comput(cid:173)
`er name
`is
`introduced
`into the database file
`(named.data), which refers not to one specific corn-
`puler, but to any one of a number of computers offer(cid:173)
`ing equivalent functionality. For example, the generic
`name might be "server.cluster.def.ghi.com•; a client
`program requesting a connection to 'server. cluster' is
`requesting connection to any one of the computers in
`the server duster.
`The further facility provided by the preferred em(cid:173)
`bodiment will be referred to hereafter as the "User
`Load Leveller" (ULL) application. This application is
`responsible for deciding which server computer in the
`cluster is currently the least heavily loaded, according
`to some appropriate metric, and for conveying this in(cid:173)
`formation to the nameserver application. Then sub(cid:173)
`sequent requests for resolution of the generic server
`
`Samsung v. Straight Path, IPR2014-01366
`Straight Path - Ex. 2002 - Page 512
`
`
`
`9
`
`EP 0 648 038 A2
`
`10
`
`computer name to an Internet address result in the
`nameserver application sending back to the client
`computer the Internet address of the server computer
`which has been deemed to be the most appropriate
`server computer for connection at that point in time.
`The ULL application consists of the following ele(cid:173)
`ments from figure 1: 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 Figure 1 the ULLapplication periodically
`(at a frequency which can varied (eg. tuned by a sys(cid:173)
`tem administrator or dynamically adjusted)) polls the
`server computers in the duster to determine how
`"busy" in some sense they are. The metric used may
`vary, depending on the type of work which is being
`handled by the duster, 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
`it is appropriate to a specific situation.
`Based on the results of this polling, and taking
`into account the situation where a server computer in
`the cluster is too busy to respond to the stet us request
`within a certain number of seconds, the ULL applica(cid:173)
`tion decides which machine is currently the least
`heavily loaded. The ULL application then modifies
`the database file (named.data) to associate the gen(cid:173)
`eric cluster machine name with the Internet address
`of this least heavily loaded machine, and sends the
`special inter-process signal via the messaging means
`170 which tells the nameserver application to re-read
`its database file. The nameserver application will
`then, in response to a name resolution request from
`a client program, resolve the generic server computer
`name into the Internet address of the most appropri(cid:173)
`ate server computer in the duster for the client pro(cid:173)
`gram to connect to.
`The process carried out by the decision logic 120
`of the preferred embodiment will now be described in
`more detail with reference to Figure 2. At step 200 the
`ULL application is initialised. A number of steps are
`carried out at initialisation. For example the applica(cid:173)
`tion: checks for multiple copies of the ULL application
`in memory; cleans up from a previous run of the ap(cid:173)
`plication (by freeing up system resources such as
`memory,locks and semaphores still held in the name
`of the previous instance of the ULL application); and
`locates the nameserver application (named) and its
`data file (named.data). The ULL application then
`parses its configuration file to read information de(cid:173)
`fined by the system administrator, such as the metric
`strings, poll periods, identities of server computers in
`the cluster, etc. Further the ULL application generates
`a number of "child" processes - one per server com(cid:173)
`puter- which are each responsible for polling the ac(cid:173)
`tivity of one designated server.
`Once the initialisation has been completed the
`process enters a main loop which executes until the
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`ULL application is terminated. At steps 210, 220, 230
`and 240 the child processes send a metric string (as
`defined by the system administrator) to each server
`computer in the duster, await responses from those
`computers, and then wait for a trigger signal from the
`main ULL application.
`Once the trigger signal has been sent by the main
`application the responses are sent by the child proc(cid:173)
`esses to the main application. The main application
`then collates the activity results received from the
`child processes (step 250), and based on predeter(cid:173)
`mined test criteria identifies the most appropriate ser(cid:173)
`ver computer (the "least busy" server computer) at
`step 260. At step 270 it is determined whether the ser-
`ver computer identified at step 260 differs from the
`current nominated server computer. If it does then the
`process advances to step 290, at which point the
`nameserver's data file (named.data) is modified.
`Further at step 300 a notification signal is sent to the
`nameserver application (named) to tell it to update its
`internal information from the data file.
`The process then proceeds to step 280. If at step
`270 it is determined that the server computer identi(cid:173)
`fied at step 260 is the same as the current nominated
`server computer then the process moves straight to
`step 280 without steps 290 and 300 being carried out.
`Writing to and reading from the data file are time con(cid:173)
`suming activities and so steps 290 and 300 should
`only be performed when necessary (ie when the
`"least busy• server computer changes).
`At step 280 the process waits until the end of the
`"poll period". This period is the predetermined interval
`(as defined by the system administrator) between
`successive studies of the server computers by the
`35 ULL application. Once the poll period has expired the
`process loops back to steps 210-240 and the main
`loop is repeated.
`Having discussed the preferred embodiment a
`few possible alterations will now be discussed. Firstly
`4C more than one generic server computer name can be
`added to the list in storage device 80 (the named.data
`file). Each generic name could be associated with a
`particular group of server computers, these groups
`being either completely separate or having a few ser-
`ver computers common to a plurality of the groups.
`Indeed one group may be a subset of another group.
`As an example consider Figure 3. A server duster410
`comprises eight server computers 400. All eight ser(cid:173)
`ver computers have access to a main body of data,
`but only four of them have access to some further
`(possibly more confidential) data.
`In this situation two generic names could be gen(cid:173)
`erated, eg. •general.duster" and •specific.duster".
`Any one ofthe eight computers (enclosed by ring 430)
`can be associated with the former generic name, but
`only the four enclosed by ring 420 can be associated
`with the latter generic name, since only those four
`have access to the further (confidential) data.
`
`45
`
`so
`
`55
`
`6
`
`Samsung v. Straight Path, IPR2014-01366
`Straight Path - Ex. 2002 - Page 513
`
`
`
`11
`
`EP 0 648 038 A2
`
`12
`
`The system administrator can then set up the
`metric string to be used when studying all eight server
`computers, or when studying only the four in ring 420;
`the metric string could be the same in both instances
`but need not be. If a dient application needs access
`to the confidential information then it would request
`access to "speclfic.duster", but if an application only
`needed access to the general information then it
`would request access to "general.duster".
`By this approach an application which only needs
`access to the general information will always be con(cid:173)
`nected to the least busy server computer, whilst an
`application which needs access to the further (confi(cid:173)
`dential) information will be given the machine address
`of the least busy server computer that can actually
`provide the necessary service; this may or may not be
`the least busy server computer in the network.
`In preferred embodiments a further feature is
`provided to enable the decision logic to temporarily
`implement a •round-robin" metric instead of the
`above described 'studying' process. The round-robin
`principle will be familiar to those skilled in the art; ba(cid:173)
`sically when adient application requests access to a
`server computer it is assigned a particular server
`computer, and when the next request is received then
`that application is assigned the next server computer
`in the duster, and so on. In this way the server com(cid:173)
`puters are rotated so that each successive server ac(cid:173)
`cess is made on a different server computer to the
`previous server access. Alternatively the server com(cid:173)
`puters can be rotated at fixed time intervals rather
`than after each access request.
`Although the round-robin technique does not
`have regard to the loading on any of the server com(cid:173)
`puters, and so there is no determination of the least
`busy server computer, there are certain situations
`(eg. where there are lots of dient applications which
`only take a short amount of database connection
`time) where a round-robin approach is acceptable. To
`implement the round robin approach the decision log(cid:173)
`ic 120 would ask the writing means 160 to update the
`storage device 80 after each access request has
`been handled (or at fixed time intervals if the alterna(cid:173)
`tive approach is used), so that the generic name is al(cid:173)
`ways associated with successive server computers in
`the cluster in turn.
`From the above description it will be clear thatthe
`system of the preferred embodiment has a number of
`advantages. Firstly the technique dynamically allo(cid:173)
`cates new dlent users and applications to the server
`computer which is least heavily loaded at the time
`they make the connection, thus ensuring an even dis(cid:173)
`tribution of users and applications across all of the
`available server computers. The client computer only
`briefly contacts the data processing system of the
`preferred embodiment to resolve the generic comput(cid:173)
`er name into a machine address. Completely stan(cid:173)
`dard access methods (eg. as provided by TCPIIP) are
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`7
`
`then used to make the connection, thus avoiding any
`proprietary protocols or any need to modify access
`methods or applications, and so providing fully trans(cid:173)
`parent user load levelling.
`Secondly the technique of the preferred embodi-
`ment does not involve any modification to the name(cid:173)
`server code - the User Load Leveller application in(cid:173)
`terfaces with the standard code (eg. "named' as ship(cid:173)
`ped with the unix/ AIX operating system). It would be
`possible to provide similar functionality to that descri(cid:173)
`bed here by producing a modified version of the
`nameserver code. However, avoiding this brings ma(cid:173)
`jor advantages from both marketing and maintenance
`points of view.
`Further the technique can be operated without re-
`quiring any modification to the server computers.
`They are accessed in a standard way after the gen(cid:173)
`eric server computer name has been used to provide
`the client computer with a machine address.
`Another advantage is that the key parameters,
`such as the time interval between polls of the server
`computers in the duster and the metric used to deter(cid:173)
`mine which server computer is least heavily loaded,
`can be altered and tuned by a local system adminis-
`trator, allowing the system to be optimised for a par(cid:173)
`ticular situation.
`The above described ULL application could be
`supplied as a separate tool to enhance the useability
`of parallel and distributed systems, or could be ship-
`ped with the nameserver application.
`
`Claims
`
`1. A data processing system for facilitating a con-
`nection of a program on a dient computer to a
`server, the server consisting of a plurality of ser(cid:173)
`ver computers with shared resources, the data
`processing system, the client computer, and the
`server computers residing in a network, the sys(cid:173)
`tem comprising:
`input means for receiving a request from the di(cid:173)
`ent computer for a machine address of a server
`computer identified by a server computer name
`sent with the request, such a machine address
`enabling a connection to be made from the dient
`computer to that server computer via the net(cid:173)
`work;
`a storage device for storing a list Identifying ser-
`ver computer names with machine addresses of
`the server computers;
`conversion means for using the list to convert the
`server computer name received by the input
`means into the machine address of the server
`computer;
`output means for sending the machine address
`from the conversion means to the dient comput(cid:173)
`er;
`
`Samsung v. Straight Path, IPR2014-01366
`Straight Path - Ex. 2002 - Page 514
`
`
`
`13
`
`EP 0 648 038 A2
`
`14
`
`the system being characterised by:
`decision logic for studying the server computers
`at predetermined intervals having regard to pre-
`determined test criteria, in order to select one of
`the server computers; and
`writing means for updating the list by associating
`the machine address for the server computer se-
`lected by the decision logic with a particular ser-
`vercomputer name contained as a generic server
`computer name in the list;
`whereby when a client computer specifies the
`generic server computer name, it receives the
`machine address of the server computer identi-
`fled by the decision logic.
`
`2. A system as claimed in Claim 1 further compris-
`ing:
`
`a copier to copy the list from the storage
`device to a piece of memory accessible by the
`conversion means;
`a messaging means, responsive to the up-
`dating of the list by the writing means, for sending
`a message to the copier requesting the copier to
`copy the updated list into the piece of local mem-
`ory.
`
`3. A system as claimed in Claim 1 orCiaim2,where-
`in the predetermined test criteria are such that the
`decision logic identifies the server computer hav-
`ing the least number of client programs logged on
`toil
`
`4. A system as claimed in any of claims 1 to 3,
`wherein the predetermined intervals are variable.
`
`5. A system as claimed in any preceding claim,
`wherein the predetermined test criteria are set by
`a user of the system.
`
`6. A system as claimed in any preceding claim,
`wherein the user can limit the number of server
`computers which the decision logic studies.
`
`7. A system as claimed In any preceding claim
`wherein a plurality of generic names are used,
`each one having a number of server computers
`whose machine addresses are associated with
`that generic name, the decision logic employing
`different sets of predetermined test criteria for
`each generic name.
`
`8. A system as claimed in Claim 7, wherein one or
`more of the server computers are associated with
`a plurality of the generic names.
`
`9. A method of operating a data processing system
`to facilitate a connection of a program on a client
`computer to a server, the server consisting of a
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`8
`
`plurality of server computers with shared re-
`sources, the data processing system, the client
`computer, and the server computers residing In a
`network, the method comprising the steps of:
`(a) receiving a requestfrom the client comput-
`er for a machine address of a server computer
`identified by a server computer name sent
`with the request, such a machine address
`enabling a connection to be made from the eli-
`ent computer to that server computer via the
`network;
`(b) storing a list identifying server computer
`names with machine addresses of the server
`computers in a storage device;
`(c) converting, with reference to the list, the
`server computer name received at step (a)
`into the machine address of the server com-
`puler;
`(d) sending the machine address identified at
`step (c) to the client computer;
`the method being characterised by the steps
`of:
`(e) employing decision logic to study the ser-
`ver computers at predetermined intervals
`having regard to predetermined test criteria, in
`order to select one of the server computers;
`and
`(f) updating the list by associating the rna-
`chine address for the server computer select-
`ed by the decision logic with a particular ser-
`ver computer name contained as a generic
`server computer name in the list;
`whereby when a client computer specifies the
`generic server computer name at step (a), it re-
`ceives the machine address of the server com-
`puler identified by the decision logic.
`
`10. A method as claimed in Claim 9 further compris-
`ing the steps of:
`copying the list from the storage device to
`a piece of memory accessible at the conversion
`step (c);
`repeating, in response to the updating of
`the list at step (f), the copying step to ensure that
`the updated list is copied into the piece of local
`memory.
`
`11. A method as as claimed in claim 9 or claim 10,
`wherein the predetermined intervals are set by a
`user of the system.
`
`12. A method as claimed in any of claims 9 to 11,
`wherein the predetermined test criteria are set by
`a user of the system.
`
`13. A method as claimed in any of claims 9 to 12,
`wherein the user can limit the number of server
`computers which the decision logic studies.
`
`Samsung v. Straight Path, IPR2014-01366
`Straight Path - Ex. 2002 - Page 515
`
`
`
`15
`
`EP 0 648 038 A2
`
`16
`
`14. A method as claimed in any of claims 9 to 13,
`wherein a plurality of generic names are used,
`each one having a number of server computers
`whose machine addresses are associated with
`that generic name, the decision logic employing
`different sets of predetermined test criteria for
`each generic name.
`
`15. A method as claimed in Claim 14, wherein one or
`more of the server computers are associated with
`a plurality of the generic names.
`
`5
`
`ro
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`9
`
`Samsung v. Straight Path, IPR2014-01366
`Straight Path - Ex. 2002 - Page 516
`
`
`
`207
`
`D
`
`~E~B~-NA_t1!
`-------,
`MACHINE
`CLIENT
`l
`ADDRESS
`COMPUTER
`~--~----~
`I
`L-
`
`I
`
`iJjU
`
`INPUT
`MEANS
`
`OUTPUT -
`MEANS·
`
`I
`
`110
`
`COPIER
`
`CONVERSION
`MEANS
`
`70
`
`10
`
`MEMORY
`
`00
`
`STORAGE
`~90 DEVICE
`
`I
`170 __... MESSAGING
`MEANS
`
`~ac
`
`v16
`
`m
`-g
`
`0 t 0
`
`~
`~
`
`Fl G. 1
`
`....
`
`0
`
`I
`I
`
`:,
`
`--
`
`--
`
`40]_
`
`130./ :
`
`WRITING
`MEANS
`
`120-- DECISION LOGIC
`.
`I
`I
`1(,140 i ~150
`I
`L------,
`60)
`:
`SERVER
`COMPUTER 3
`
`r----
`'
`SERVER
`COMPUTER 1
`____________________ __,
`
`SERVER
`COMPUTER 2
`
`Samsung v. Straight Path, IPR2014-01366
`Straight Path - Ex. 2002 - Page 517
`
`
`
`I INITIALISATION ~
`•
`
`•
`
`SEND METRIC STRING
`TO SERVER COMPUTER 3
`23()-/
`I
`
`SEND METRIC STRING
`TO SERVER COMPUTER 2
`220-'
`I
`
`t
`SEND METRIC STRING
`TO SERVER COMPUTER 1
`21 0 _..;'
`l
`
`t
`SEND METRIC STRING
`TO SERVER COMPUTER N
`240./
`I
`
`....
`....
`
`250
`
`Z60 '--
`
`COLLATE RESPONSES
`FROM SERVER COMPUTERS
`
`OETERM IN E ~LEAST BUSY"
`SERVER COMPUTER
`
`I
`
`270
`
`.
`
`NO
`
`.-
`
`WAIT UNTIL EXPIRY OF
`PREDETERMINED PERIOD
`I
`
`280
`
`FJG.2
`
`•
`~YES UPDATE STORAGE
`•
`
`m
`"CI
`0
`
`t
`0 ... co
`ie
`
`1--290
`
`DEVICE
`
`SEND MESSAGE TO NAMESERVER
`FOR UPDATE OF MEMORY
`I
`
`(300
`
`Samsung v. Straight Path, IPR2014-01366
`Straight Path - Ex. 2002 - Page 518
`
`
`
`EP 0 648 038 A2
`
`r- - ------- ----------1
`SERVER CLUSTER
`I r--- __ _c::-1 420
`:
`I
`1
`I
`I SERVER
`I
`I
`1
`1
`I COMPUTER
`I
`I
`I
`1 SERVER
`: COMPUTER
`I
`I
`1 SERVER
`I COMPUTER
`I
`I ....---------,
`I SERVER
`: COMPUTER
`L ______ j
`
`410
`
`430
`
`SERVER
`COMPUTER
`
`SERVER
`COMPUTER
`
`SERVER
`COMPUTER
`
`I
`
`400
`
`400
`
`SERVER
`COMPUTER
`
`I
`I
`I
`L - - - - - - - - - - - - - - - - - - __ _j
`
`1
`
`FIG. 3
`
`12
`
`Samsung v. Straight Path, IPR2014-01366
`Straight Path - Ex. 2002 - Page 519
`
`
`
`(19)
`
`(12)
`
`Europiiisches Patentamt
`
`European Patent Office
`
`Office europeen des brevets
`
`1111111~ IIIII ~Ill ~Ill~~~~~~ ~111111111111111~ 11~1111111111111111
`EP 1 379 039 A2
`
`(11)
`
`EUROPEAN PATENT APPLICATION
`
`(43) Date of publication:
`07.01.2004 Bulletin 2004/02
`
`(21) Application number: 03022287.1
`
`(22) Date of filing: 25.09.1996
`
`(51) lnt Cl.7: H04L 12/58, H04L 29/06
`
`(84) Designated Contracting States:
`CH DE ES Fl FR GB IE IT Ll NL SE
`
`(72) Inventor: Hutton, Glenn W.
`Miami, FL 33196 (US)
`
`(30) Priority: 25.09.1995 US 533115
`
`(62) Document number(s) of the earlier application(s) in
`accordance with Art. 76 EPC:
`96933928.2 I 0 852 868
`
`(74) Representative: Klndermann, Manfred
`Patentanwalt,
`Sperberweg 29
`71032 Bobllngen (DE)
`
`(71) Applicant: Nets peak Corporation
`Boca Raton, FL 33487 (US)
`
`Remarks:
`This application was filed on 02 - 1 0 · 2003 as a
`divisional application to the application mentioned
`under INID code 62.
`
`(54)
`
`Point-to-point communication using e-mail to establish dynamic network addresses
`
`(57)
`In a computer system having an audio trans(cid:173)
`ducer and a display device and being operatively cou(cid:173)
`pled to other computers over a computer network (24),
`such as the Internet, means are included for establish(cid:173)
`ing a point-to-point communication link between proc(cid:173)
`esses. The means provide for transmitting from a first
`processing unit (12) to the Internet an E-mail signal, in-
`
`eluding a first IP address assigned to the first processing
`unit, and for processing the E-mail signal through the
`Internet to deliver the E-mail signal to a second process(cid:173)
`ing unit (22). Further means are provided for transmit(cid:173)
`ting a second IP address to the first processing unit for
`establishing a point-to-point communication link be(cid:173)
`tween the first and second processing units through the
`Internet.
`
`12 \
`r----JL-------------------~
`
`<CONNECTREQUEST>
`
`<CONNECTOK>
`
`I
`I
`
`I
`I
`
`I v-24
`
`I
`I
`I
`I
`I
`
`I
`I
`I
`
`N
`<(
`en
`('I)
`0
`en
`r-..
`('I)
`,...
`a.
`w
`
`I L-------------------------1
`
`FIG. 2
`
`Printed by Jouve, 75001 PARIS (FR)
`
`I L-------
`
`POLLS EVERY
`3-5 SECONDS
`
`22
`
`SECOND
`PROCESSING
`UNIT
`
`Samsung v. Straight Path, IPR2014-01366
`Straight Path - Ex. 2002 - Page 520
`
`
`
`EP 1 379 039 A2
`
`2
`
`Description
`
`FIELD OF THE INVENTION
`
`[0001] The present invention relates in general to data
`processing systems, and more specifically, to an appa(cid:173)
`ratus, a method and a computer program product for fa(cid:173)
`cilitating audio communications over computer net(cid:173)
`works.
`
`BACKGROUND OF THE INVENTION
`
`5
`
`and mechanisms known as reflectors.
`[0006) A technique for matching domain names to In(cid:173)
`ternet Protocol addresses is described in the text enti-
`tled "lnternetworking With TCPIIP", 2nd Edition, by
`Douglas E. Comer, November 1992, Prentice Hall, En(cid:173)
`glewood Cliffs, New Jersey, U.S.A. Comer describes a
`domain name system and cooperative systems of name
`servers for matching domain names to network ad(cid:173)
`dresses. Each name server is a server program that
`10 supplies mapping of domain names to IP addresses.
`The system described in Comer, however, is not de(cid:173)
`signed for use with network nodes whose network
`names or name to address bindings change frequently.
`[0007)
`International Publication WO 92/19054 dis-
`15 closes a network monitoring system including an ad(cid:173)
`dress tracking module which uses passive monitoring
`of all packet communications over a local area network
`to maintain a name table of IP address mappings. The
`disclosed address tracking module is capable of moni-
`loring only a small number of nodes on a local area net(cid:173)
`work and is not suitable for use with a multitude of nodes
`over a wide area network.
`[0008) Due to the dynamic nature of temporary I P ad-
`dresses of some devices accessing the Internet, point-
`to-point communications in real-time of voice and video
`have been generally difficult to attain.
`
`20
`
`25
`
`SUMMARY OF THE INVENTION
`
`[0002] The increased popularity of on-line services
`such as AMERICA ONLINE (TM), COMPUSERVE (R),
`and other services such as Internet gateways have
`spurred applications to provide multimedia contents, in(cid:173)
`cluding video and voice clips, to online users. An exam-
`ple of an online voice clip application is VOICE E-MAIL
`FOR WINCIM and VOICE E-MAIL FOR AMERICA ON(cid:173)
`LINE (TM), available from Bonzi Software, as described
`in "Simple Utilities Send Voice E-Mail Online", MULTI(cid:173)
`MEDIA WORLD, VOL. 2, NO.9, August 1995, p. 52.
`Using such Voice E-Mail software, a user may create an
`audio message to be sent to a predetermined E-mail ad(cid:173)
`dress specified by the user.
`[0003) Generally, devices interfacing with the Internet
`and other online services may communicate with each
`other upon establishing respective device addresses.
`One type of device address is the Internet Protocol (IP)
`address, which acts as a pointer to the device associat-
`ed with the IP address. A typical device may have a Se-
`rial Line Internet Protocol or Point-to-Point Protocol
`(SLIP/PPP) account with a permanent IP address for re(cid:173)
`ceiving E-mail, voicemail, and the like over the Internet.
`E-mail and voicemail is generally intended to convey 35
`text, audio, etc., with any routing information such as an
`IP address and routing headers generally being consid(cid:173)
`ered an artifact of the communication, or even gibberish
`to the recipient.
`[0004) Devices such as a host computer or server of
`a company may include multiple modems forconnection
`of users to the Internet, with a temporary IP address al(cid:173)
`located to each user. For example, the host computer
`may have a generaiiP address "XXX.XXX.XXX", and
`each user may be allocated a successive I P address of
`XXX.XXX.XXX.1 0, XXX.XXX.XXX.11, XXX.XXX.XXX.
`12, etc. Such temporary IP addresses may be reas(cid:173)
`signed or recycled to the users, for example, as each
`user is successively connected to an outside party. For
`example, a host computer of a company may support a
`maximum of 254 IP addresses which are pooled and
`shared between devices connected to the host compu(cid:173)
`ter.
`[0005) Permanent IP addresses of users and devices
`accessing the Internet readily support point-to-point
`communications of voice and video signals over the In(cid:173)
`ternet. For example, global real-time video conferencing
`has been implemented using dedicated IP addresses
`
`30
`
`In a system for enabling point-to-point commu(cid:173)
`[0009)
`nications between a plurality of processing units over
`the Internet, means are provided for establishing a
`point-to-point communication
`link between a first
`processing unit and a second processing unit. The in-
`vention, as defined in the claims, comprises (a) means
`for transmitting from a first processing unitto the Internet
`an E-mail signal, including a first IP address assigned
`to the first processing unit, (b) means for processing the
`E-mail signal through the Internet to deliver the E-mail
`signal to a second processing unit and (c) means for
`transmitting a second IP address to the first processing
`unit for establishing a point-to-point communication link
`between the first and second processing units through
`the Internet.
`[0010) The invention is