`
`International Bureau
`WORLD INTELLECTUAL PROPERTY ORGANIZATION
`
`
`
`INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
`
`(51) International Patent Classification 5 1
`
`(11) International Publication Number:
`
`W0 94/11814
`
`0061‘ 9/46
`
`(43) International Publication Date:
`
`26 May 1994 (26.05.94)
`
`(21) International Application Number:
`
`PCT/GB93/02315
`
`(22) International Filing Date:
`
`10 November 1993 (10.11.93)
`
`(74) Agent: BURT, Roger, James; IBM United Kingdom Li-
`mited, Intellectual Property Department, Hursley Park,
`Winchester, Hampshire $021 2.IN (GB).
`'
`
`(30) Priority data:
`92235217
`
`I
`
`10 November 1992 (10.11.92) GB
`
`(81) Designated States: JP, US, European patent (AT,VBE, CH,
`ISDEE), DK, ES, FR, GB, GR, IE, IT, LU, MC, NL, PT,
`
`(71) Applicant (for all designated States except US): INTERNA-
`TIONAL BUSINESS MACHINES CORPORATION Published
`[US/US]; Armonk, NY 10504 (US).
`With international search report.
`Before the expiration of the time limit for amending the
`claims and to be republished in the event of the receipt of
`amendments.
`
`(72) Inventors; and
`(75) Inventors/Applicants (for US only) : ALDRED, Barry, Keith
`[03/GB]; Dolphins, Malmesbury Gardens, Winchester,
`Hampshire SO22 5LE (GB). BONSALL, Gordon, Willi-
`am [GB/GB]; 2 Court Road, Kings Worthy, Winchester,
`Hampshire 8023 7Q] (GB). LAMBERT, Howard [GB/
`GB]; 22 Nordik Gardens, Hedge End, Southampton,
`Hampshire 503 4LQ (GB). MITCHELL, Harry, Davidd
`[GB/GB]; 18 The Hermitage, Richmond Upon Thames,
`Surrey TW10 6SH (GB).
`
`(54) Title: COLLABORATIVE WORKING IN A NETWORK
`
`APP FROG
`
`13
`
`29
`
`(ALL MGR
`
`32
`
`20
`
`summer SYSTEM
`
`'
`
`big/iii:
`
`
`
`32};ng "”“3
`omvra
`
`lSON nevus
`25 omvea
`
`R5232 oevncr
`6 nmvm
`
`A programmable workstation for collaborative working in a network comprises a conventional operating system and a ne~
`twork control program layer. Additionally, the workstation includes a collaborative application support subsystem for interfacing
`with application programs. The subsystem is responsive to predetermined application program calls to create a logical network
`model of a collaborative environment The model comprises sharing sets of application programs, which share data and resources
`across nodes and logical dedicated data channels connecting members of the sharing set. The subsystem cooperates with the ne-
`twork layer to establish the physical links necessaryto implement the model in a physical network, transparently to the applica-
`tion a-ro ram.
`
`Petitioner Valve - Ex. 1009, Cover Page 1
`
`Petitioner Riot Games, Inc. - Ex. 1009, Cover-l
`
`(57) Abstract
`
`.'_'__:::::___‘_".:__-_::015L- _ _ _-__~__~_______ _____
`-
`I
`OTHER DEVICE
`21 omvens
`
`2‘
`
`25
`
`Petitioner Valve - Ex. 1009, Cover Page 1
`
`
`
`Viet Nam
`
`
`
`
`
`United Kingdom
`
`
`Georgia
`Guinea
`
`Greece
`
`Hungary
`
`Ireland
`Italy
`Japan
`
`Kenya
`
`Kyrgystan
`
`Democratic People‘s Republic
`
`of Korea
`
`
`Republic of Korea
`
`
`Kazakhstan
`
`
`Liechtenstein
`
`Sri lanka
`Luxembourg
`
`
`Latvia
`Monaco
`
`
`Republic of Moldova
`Madagascar
`
`
`Mali
`
`
`Mongolia
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FOR THE PURPOSES OF INFORMATION ONLY
`
`
`
`
`
`
`Codes used to identi
`fy States party to the PCI‘ on the front pages of pamphlets publishing international
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`applications under the PCT.
`
`
`
`
`
`
`
`AT
`AU
`
`BB
`
`BE
`
`BF
`
`36
`
`BJ
`
`BR
`
`BY
`
`CA
`
`CF
`
`CG
`
`CH
`
`CI
`
`CM
`
`CN
`CS
`
`CZ
`
`DE
`
`DK
`
`ES
`
`FI
`
`FR
`
`GA
`
`
`
`
`
`
`
`
`
`Austria
`Australia
`
`Barbados
`
`Belgium
`
`Burkina Faso
`
`Bulgaria
`
`Benin
`
`Brazil
`
`Belarus
`
`'
`Canada
`
`Central African Republic
`
`
`
`Congo
`Switzerland
`
`Cote d'lvoire
`
`Cameroon
`
`China
`
`Czechoslovakia
`
`
`Czech Republic
`Germany
`
`
`Denmark
`Spain
`Finland
`
`France
`Gabon
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Mauritania
`Malawi
`
`Niger
`
`Netherlands
`
`Norway
`
`New Zealand
`
`Poland
`
`Portugal
`
`Romania
`
`Russian Federation
`
`Sudan
`
`Sweden
`
`Slovenia
`
`Slovakia
`Senegal
`Chad
`Togo
`
`Tajikistan
`
`Trinidad and Tobago
`
`Ukraine
`
`
`
`United States of America
`
`Uzbekistan
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Petitioner Valve - Ex. 1009, Cover Page 2
`
`Petitioner Riot Games, Inc. - EX. 1009, Cover-2
`
`Petitioner Riot Games, Inc. - Ex. 1009, Cover-2
`
`Petitioner Valve - Ex. 1009, Cover Page 2
`
`
`
`
`
`
`
`
`
`
`
`the business community and
`Personal computers are now widespread throughout
`
`
`
`
`
`
`
`
`
`
`many are able to intercommunicate, either through fixed connections e.g.
`
`
`
`
`
`
`
`
`
`
`local area networks, or through dynamically established links e.g.
`ISDN or
`
`
`
`
`
`
`
`
`
`async lines over the public switched telephone network. Increasingly,
`
`
`
`
`
`
`
`
`
`connected personal computers can be used to enhance collaborative working
`
`
`
`
`
`
`
`
`
`
`
`
`between remote individuals; a typical example being the use of desk top
`
`
`
`
`
`
`
`
`.conferencing software. Successful collaborative work generally requires
`
`
`
`
`
`
`
`
`
`
`more than a simple data link between the participants; voice capabilities
`
`
`
`
`
`
`
`
`
`
`are normally essential and video links are frequently required. Thus remote
`
`
`
`
`
`
`
`
`
`
`
`collaborative working can often be regarded as an extension to the
`
`
`
`
`
`
`
`
`
`
`traditional telephone call - it being enhanced with the data and programs
`
`
`
`
`
`
`
`
`
`
`
`available at the desktop via the personal computer - and, on occasions,
`
`
`
`
`enriched with video services.
`
`
`
`
`
`
`
`these
`
`
`
`WO 94/11814
`
`
`
`PCT/GB93/02315
`
`
`
`
`
`l
`
`
`
`
`
`
`COLLABORATIVE WORKING IN A NETWORK
`
`
`DESCRIPTION
`
`
`
`
`
`
`
`
`
`
`
`
`This invention relates to collaborative working in a network and more
`
`
`
`
`
`
`
`
`
`
`
`
`specifically to a programmable workstation and a method for use in such a
`
`
`
`collaborative working environment.
`
`
`
`
`
`
`Background of the Invention
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ranging
`A broad spectrum of collaborative applications can be envisaged,
`
`
`
`
`
`
`
`
`
`
`
`from utilities taking advantage of the data and applications on a
`
`
`
`
`
`
`
`
`
`
`
`workstation, e.g. sharing of screen windows and files,
`through to new
`
`
`
`
`
`
`
`
`
`collaborative applications designed to meet
`the needs of specific classes
`
`
`
`
`
`
`
`
`
`of remote user e.g.
`just—in-time education,
`remote presentations, executive
`
`
`
`
`
`
`
`
`
`
`
`broadcasts or help desk. The common requirements behind these examples are:
`
`
`
`
`
`
`
`
`
`0
`
`
`
`0
`
`
`
`0
`
`
`
`
`
`
`
`
`
`
`
`the support of a wide variety of personal computer platforms - both
`
`
`
`hardware and software.
`
`
`
`
`
`
`
`
`
`operation over the existing communication networks.‘
`A
`
`
`
`
`
`
`
`group communications and multi-media data services.
`
`
`
`
`
`
`
`
`
`Although desk top conferencing systems employing multi-media devices and
`
`
`
`
`
`
`
`
`
`
`communications channels exist, generally they are provided with a fixed set
`
`
`
`
`
`
`
`
`
`of system software and utility_applications which is insufficiently
`
`
`
`
`
`
`
`SUBSTITUTE SHEET
`
`Petitioner Valve - Ex. 1009, Page 1
`
`Petitioner Riot Games, Inc. - EX. 1009, p. 1
`
`Petitioner Riot Games, Inc. - Ex. 1009, p. 1
`
`Petitioner Valve - Ex. 1009, Page 1
`
`
`
`
`wo 94/11814
`
`
`
`'
`
`.
`
`'
`
`PCT/GB93/02315
`
`
`
`
`
`flexible to meet
`
`
`
`
`
`
`
`
`the needs of all potential applications.
`
`
`
`2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Accordingly the present invention provides a programmable workstation for
`
`
`
`
`
`
`
`
`
`
`
`collaborative working in a network of workstatiOns forming the nodes of the
`
`
`
`
`
`
`
`
`
`
`,network,
`the network being connected by physical links for the transmission
`
`
`
`
`of data between nodes;
`
`
`
`
`
`
`the workstation comprising an operating system;
`
`
`
`
`
`
`
`
`
`
`a network control program layer,
`running on the operating system, for
`
`
`
`
`
`
`
`
`
`controlling physical routing of multi-media data between nodes, and
`
`
`
`
`
`
`
`a collaborative application support program_1ayer for interfacing
`
`
`
`
`
`
`
`
`
`
`with application programs running on the workstation and responsive to
`
`
`
`
`
`
`
`
`
`predetermined application program calls to create a logical network model
`
`
`
`
`
`
`
`
`
`of a collaborative environment
`comprising sharing sets of application
`
`
`
`
`
`
`
`
`
`
`
`programs, which share data and resources within and across nodes, and
`
`
`
`
`
`
`
`
`
`
`logical dedicated data channels connecting members of a sharing Set of
`
`
`
`
`
`
`
`
`
`
`
`application programs, each data channel being defined by a sending port and
`
`
`
`
`
`
`
`
`
`
`the
`a receiving port each associated with an application program,
`
`
`
`
`
`
`
`
`collaborative application support program layer being adapted to cooperate
`
`
`
`
`
`
`
`
`
`
`
`with the network control program layer to establish the physical links
`
`
`
`
`
`
`
`
`
`
`necessary to implement the logical network model in a physical network,
`
`
`
`
`
`transparently to the application programs.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the invention also provides A method in which,
`According to another aspect,
`
`
`
`
`
`
`
`
`
`
`
`
`in response to a predetermined program call by a first application program
`
`
`
`
`
`
`
`
`
`
`
`through which data is being transferred, via receiving and sending ports of
`
`
`
`
`
`
`
`
`
`
`the first application, between two other applications,
`the receiving port
`
`
`
`
`
`
`
`
`
`
`
`of the first application is reversibly directly connected to its sending
`
`
`
`
`
`
`
`
`
`
`
`port so that the data transfer bypasses the first application programs.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The invention will now be described by way of example only with reference
`
`
`
`
`
`
`to Figures 1-25 of the accompanying drawings.
`
`
`
`
`
`
`
`Detailed Description of the Invention
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`lIn Figure 1 are shown two programmable workstations 10 and 12 connected by
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`link 11 in a network, such as a LAN or WAN.
`The principal components of
`
`
`
`
`
`
`
`
`
`the workstations are conventionally described as layers, starting with the
`
`
`
`
`
`
`
`
`
`
`
`hardware 13.
`The hardware which is not illustrated in detail, consists of
`
`
`
`
`
`
`
`
`
`
`
`
`
`a processor unit with main memory, secondary storage such as a disk file, a
`
`
`
`
`
`
`
`
`
`
`
`display unit and input/output devices such as keyboard and mouse. Device
`
`
`
`
`
`
`
`
`
`
`
`
`support software 14 enables the hardware devices to function within a known
`
`
`
`
`
`
`
`
`
`operating system 15, such as IBM's Operating System/2 (05/2).
`I
`i
`
`
`
`
`
`
`
`
`
`SUBSTITUTE SHEET
`
`
`
`Petitioner Valve - Ex. 1009, Page 2
`
`Petitioner Riot Games, Inc. - EX. 1009, p. 2
`
`Petitioner Riot Games, Inc. - Ex. 1009, p. 2
`
`Petitioner Valve - Ex. 1009, Page 2
`
`
`
`
`WO 94/11814
`
`
`
`
`PCP/GB93/02315
`
`
`
`3
`
`
`
`
`
`
`
`
`
`
`
`
`
`is
`Also part of a conventional workstation, when used in a network,
`
`
`
`
`
`
`
`
`
`
`networking software 16 for supporting connection to the network 11 and
`
`
`
`
`
`
`
`communication over the network between workstations.
`.Typical networking
`
`
`
`
`
`
`
`
`
`
`
`
`
`software 16 could be the Netbios program product from IBM.
`Up to this
`
`
`
`
`
`
`
`
`
`
`point all that has been described is a conventional networking workstation
`
`
`
`
`
`
`capable of executing application programs 18.
`
`
`
`
`
`
`
`
`
`'
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`the present invention, each workstation also includes
`In order to implement
`
`
`
`
`
`
`
`
`
`collaborative application support system software 17 which facilitates the
`
`
`
`
`
`
`
`
`development of application programs for creating a distributed
`
`
`
`
`
`
`
`
`collaborative working environment.
`In this environment, end-users of the
`
`
`
`
`
`
`
`
`
`
`workstation may communicate with users of other workstations in the network
`
`
`
`
`
`
`
`
`
`
`
`over multi-media channels and may work collaboratively on shared data and
`
`tasks.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The overall.structure of support system 17 in relation to other software
`
`
`
`
`
`
`
`
`
`
`
`components of the workstation with which it interfaces directly is shown in
`
`
`
`
`
`
`
`
`
`
`
`
`Figure 2. Further details of the internal structure of the support system
`
`
`
`
`
`
`
`
`
`
`
`are shown in Figure 10. Broadly speaking,
`the main functional components of
`
`
`
`
`
`
`
`
`
`
`
`
`system 17 lie between two interfaces 20 and 21, illustrated by dashed
`
`lines.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`An application programming interface 20 allows applications 18 to request
`
`
`
`
`
`
`
`
`
`
`
`support services.
`A device driver interface 21 allows the system to
`
`
`
`
`
`
`
`
`
`support an extensible range of software and hardware communications sub-
`
`
`
`
`
`
`
`
`
`
`
`systems through device drivers such as token ring driver 25,
`ISBN driver
`
`
`
`
`
`
`
`
`
`
`
`
`26, R5232 driver 27 and other device drivers 28.
`Link support modules
`
`
`
`
`
`
`
`
`
`
`(Figure
`228, 229 interface with the device drivers. These are replaceable,
`
`
`
`
`
`
`
`
`
`
`
`10 shows only a possible selection) depending on the hardware options
`
`
`
`
`
`
`
`
`
`
`
`
`available at the workstation, and serve to isolate the support system from
`
`
`
`
`
`
`
`
`
`
`
`needing to know precisely which hardware is present. Through an implicit
`
`
`
`
`
`
`
`
`resources interface,
`(not illustrated) details of the communications
`
`
`
`
`
`
`
`
`
`
`
`
`network, such as node addresses and directory data may be requested by both
`
`
`
`
`
`
`
`
`
`
`
`the support system,
`the applications and the device drivers from resource
`
`
`files 29.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The API 20 allows applications 18 to initiate peer applications and share
`
`
`
`
`
`
`
`
`
`
`
`'resources, on a variety of hardware and software platforms,
`located on
`
`
`
`
`
`
`
`
`
`
`nodes across a diverse and complex communications networks.
`It allows them
`
`
`
`
`
`
`
`
`
`to define multiple dedicated logical data channels between shared
`
`
`
`
`
`
`
`
`
`applications, suitable to a broad range of multi—media traffic,
`
`
`
`
`
`
`
`
`independently of the structure of the underlying physical network.
`
`
`
`
`
`It
`
`
`
`
`
`
`SUBSTITUTE SHEET
`
`
`
`Petitioner Valve - Ex. 1009, Page 3
`
`Petitioner Riot Games, Inc. - EX. 1009, p. 3
`
`Petitioner Riot Games, Inc. - Ex. 1009, p. 3
`
`Petitioner Valve - Ex. 1009, Page 3
`
`
`
`
`WO 94/11814
`
`
`
`'
`
`PCT/GB93/02315
`
`
`
`4
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`allows them to serialise, synchronise, merge or copy the data streaming
`
`
`
`
`
`
`
`
`
`
`
`
`between shared applications.
`It also allows them to support a range of
`
`
`
`
`
`
`
`
`
`
`
`attached devices and to allow the interception and redirection of the
`
`
`device data.
`
`
`
`
`
`
`
`
`
`The support system includes other components to assist application
`
`
`
`
`
`
`
`
`
`
`
`interfacing to
`. development such as an extensible set of logical devices 30,
`
`
`
`
`
`
`
`
`
`
`
`external applications and devices. Also provided is a set of end-user
`
`
`
`
`
`
`
`
`
`
`utilities, written to the API (not illustrated), which can also invoked
`
`
`
`
`
`
`from applications through a command interface.
`
`
`
`
`
`
`
`
`
`
`NetworkI nodes and applications.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`At
`the programming model presented by the API consists
`the highest level,
`
`
`
`
`
`
`
`
`
`
`
`
`of a communicating set of nodes. A node is the addressable entity
`
`
`
`
`
`
`
`
`
`
`representing a user, and comprises an instance of the support system
`
`
`
`
`
`
`
`
`
`
`
`software, and a set of resources such as application programs, data etc.
`
`
`
`
`
`
`
`
`
`
`Usually a node is typically a dedicated programmable workstation 10,
`
`
`
`
`
`
`
`
`
`
`
`
`capable of communicating with its peers;
`in a multi—user system a node is
`
`
`
`
`associated with each user.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Nodes are either supported nodes or non-supported nodes;
`
`
`
`
`
`
`
`
`
`
`is one where the support system software 17 is being executed.
`
`
`
`
`
`
`
`
`collection of inter-communicating supported nodes is called a supported
`
`network.
`
`A
`
`
`
`
`
`a supported node
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ideally all node names should be unique but
`Nodes are identified by name;
`
`
`
`
`
`
`
`
`
`
`
`
`duplicates can be tolerated as long as their associated nodes are never
`
`
`
`
`
`
`
`
`
`
`
`required to inter-communicate. The choice of node naming scheme is not
`
`
`
`
`
`
`
`
`
`directly relevant to the present invention, although a hierarchical system
`
`
`
`
`
`
`
`
`
`
`
`
`
`such as that defined by the Internet protocol has many benefits. It is
`
`
`
`
`
`
`
`
`
`
`
`fundamental to the architecture that a node can dynamically join or leave
`
`
`the network.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Nodes can contain logical devices 30. A logical device is a software
`
`
`
`
`
`
`
`
`
`
`
`extension to the support system that allows an application to manipulate or
`
`
`
`
`
`
`
`
`
`
`manage software or equipment,
`in a manner consistent with other entities in
`
`
`
`
`
`
`
`
`
`
`
`the architecture. There is an extensive range of possible logical devices
`
`
`
`
`
`
`
`
`including: presentation windows, printers, disk drives, modems, and
`
`
`application programs.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Multiple applications can be executed at a node, subject to the constraints
`
`
`
`
`
`I SUBSTITUTE SHEET
`
`Petitioner Valve - Ex. 1009, Page 4
`
`Petitioner Riot Games, Inc. - EX. 1009, p. 4
`
`Petitioner Riot Games, Inc. - Ex. 1009, p. 4
`
`Petitioner Valve - Ex. 1009, Page 4
`
`
`
`
`
`
`wo 94/11814
`
`
`
`.
`
`'
`
`
`PCT/GB93/02315
`
`
`
`
`
`5
`
`
`
`
`
`
`
`
`
`
`imposed there by the operating and windowing system. Applications are
`
`
`
`
`
`
`
`
`
`
`
`
`either aware or unaware; an aware application uses the services of the API;
`
`
`
`
`
`
`
`
`
`
`
`an unaware application does not. Both aware and_unaware applications will
`
`
`
`
`
`
`
`generally be executing simultaneously at a node;
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`when the support system is fully active at a node, one particular aware
`
`
`
`
`
`
`
`
`
`
`
`application must be running at that node. This application plays a unique
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`role at that node and is known as call manager 32. Many call managers may
`
`
`
`
`
`
`
`
`
`
`
`
`
`be available for execution at a particular node but only one can execute at
`
`
`
`
`
`
`
`
`
`
`
`
`
`-a time. The distinguishing feature of a call manager is that it responds to
`
`
`
`
`
`
`
`
`
`
`
`certain events generated by the support system; for example, it resolves
`
`
`
`
`
`
`
`
`
`
`
`
`any requests that are not directed specifically at an instance of an
`
`
`
`
`
`
`
`
`
`
`application, and optionally it may also handle resource management for the
`
`
`
`
`
`
`
`
`
`
`node. Call manager responsibility can be transferred from one call manager
`
`
`
`
`
`
`
`
`
`
`
`
`to'another; also the role can be combined with user application function if
`
`
`
`that is appropriate.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The support software 17 may request that the resources of one node are made
`
`
`
`
`
`
`
`
`
`
`
`available for communication between two other nodes;
`this is termed passive
`
`
`
`
`
`
`
`
`
`
`
`
`operation and permission is controlled by the call manager at the passive
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`node. As an example, consider two nodes A and B on a LAN, with a third node
`
`
`
`
`
`
`
`
`
`
`
`C connected to B by an asynchronous communications link. If applications at
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`A and C wish to communicated the traffic will need to be routed via B. The
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`consent of the call manager at B is required for this use of its node.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Aware applications can share data and resources with other aware
`
`
`
`
`
`
`
`
`
`
`applications at the same or different nodes. A collection of applications
`
`
`
`
`
`
`
`
`
`
`
`
`sharing is called a sharing set. An aware application initiates a share
`
`
`
`
`
`
`
`
`
`
`
`request, naming an application sharing set, a target application and a
`
`
`
`
`
`
`
`
`
`
`
`destination node. This request is first passed by the support software to
`
`
`
`
`
`
`
`
`
`
`
`
`the call manager at the sending node, which will typically transfer it to
`
`
`
`
`
`
`
`
`
`
`
`the call manager at the destination node. Usually this second call manager
`
`
`
`
`
`
`
`
`
`
`
`will launch the requested application and the source application will be
`
`
`
`
`
`
`
`
`
`
`
`informed. The participation of-the call managers in this process allows
`
`
`
`
`
`
`
`
`
`
`
`
`both local control of the sharing process and other actions to be initiated
`
`
`
`
`
`
`
`
`
`
`
`
`
`if necessary. The call managers play a vital role in resolving the names
`
`
`
`
`
`
`
`
`
`
`used by applications to idnetify other nodes and applications. The sharing
`
`
`
`
`
`
`
`
`
`
`
`mechanism can be cascaded; for example, if two applications are already
`
`
`
`
`
`
`
`
`
`
`
`
`sharing, one of them can initiate a share with a third application naming
`
`
`
`
`
`
`
`
`
`
`
`
`the same sharing set, with the result that all three applications are then
`
`
`
`
`sharing with each other.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SUBSTITUTE SHEET
`Petitioner Valve - Ex. 1009, Page 5
`
`
`
`Petitioner Riot Games, Inc. - EX. 1009, p. 5
`
`Petitioner Riot Games, Inc. - Ex. 1009, p. 5
`
`Petitioner Valve - Ex. 1009, Page 5
`
`
`
`
`WO 94/11814
`
`
`
`PCT/GB93/02315
`
`
`
`6
`
`
`
`
`
`
`
`
`
`
`
`
`
`Applications may also make local share requests on behalf of other
`
`
`
`
`
`
`
`
`
`
`applications thereby allowing membership control of the sharing set to be
`
`
`
`
`
`
`
`
`
`
`
`
`delegated; Facilities exist for either the issuer, or the'target of the
`
`
`
`
`
`
`
`
`
`
`
`
`share request,
`to name the application sharing set. These names are not
`
`
`
`
`
`
`
`
`
`
`
`
`required to be unique:
`thus multiple sharing sets with the same name can
`
`exist.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Individual applications can cease sharing at any time, withdrawing from a
`
`
`
`
`
`
`
`
`
`
`
`
`sharing set; the other applications in the set are informed of the
`
`
`
`
`
`
`
`
`
`
`This
`withdrawal. Figure 3 shows a number of applications A-E sharing.
`
`
`
`
`
`
`
`
`
`
`
`
`results in two sharing sets,
`irrespective of the order in which the shares
`
`
`
`
`
`
`
`were requested, as illustrated in Figure 4.
`
`
`
`
`
`
`
`
`
`
`Communications. channels and ports
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`As illustrated in the schematic example of Figure 5, applications in a
`
`
`
`
`
`
`
`
`
`
`
`
`sharing set such as 40, 41 and 42 can establish data communication links
`
`
`
`
`
`
`
`
`
`
`
`
`
`with each other known as channels. Channels such as 43 and 44 are
`
`
`
`
`
`
`
`logically dedicated and uni-directional pipes, with application specified
`
`
`
`
`
`
`
`
`
`transmission characteristics.
`A channel is always defined by the sending
`
`
`
`
`
`
`
`
`
`
`
`application and it goes from a sending application to a receiving
`
`
`
`
`
`
`
`
`
`
`
`
`application._ The ends of channels are known as ports;
`thus all channels
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`have one sending port and one receiving port.
`A sending port such as 45
`
`
`
`
`
`
`
`
`
`
`
`
`sends data packets down the channel; a receiving port such as 46 receives
`
`
`
`
`
`
`
`
`
`
`
`
`
`data packets from the channel in the order in which they were sent. There
`
`
`
`
`
`
`
`
`
`
`
`
`may be no direct mapping between the logical channel structure seen by the
`
`
`
`
`
`
`
`
`
`aware applications and the physical communication network in existence
`
`
`
`between the nodes.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`An application may establish multiple channels to another application as a
`
`
`
`
`
`
`
`
`
`
`
`convenient way to separate data traffic of different types. The system
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`network manager 31, Fig. 2 may map some or all of the logical channels on
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`to a single physical link such as link 11, Fig.
`1 but this will be
`
`
`
`
`invisible to the application.
`
`
`
`
`
`
`
`
`
`
`
`
`Channels have a number of quality of service characteristics, initially
`
`
`
`
`
`
`
`
`
`
`negotiated with the support system 17 during the creation process, which
`
`
`
`
`
`
`
`
`
`allow data transmission characteristics to be tailored to the requirements
`
`
`
`
`
`
`
`
`of the expected traffic. These characteristics include encryption,
`
`
`
`
`
`
`
`
`
`compression hints. Encryption allows the data to be encrypted during
`
`
`
`
`
`
`
`
`transmission along the channel; compression hints allow the system the
`
`
`
`
`
`
`
`
`
`option of compressing the data over narrow bandwidth links.
`
`
`
`
`
`
`
`
`
`
`
`
`
`SpBSTITUTE SHEET
`
`Petitioner Valve - Ex. 1009, Page 6
`
`Petitioner Riot Games, Inc. - EX. 1009, p. 6
`
`Petitioner Riot Games, Inc. - Ex. 1009, p. 6
`
`Petitioner Valve - Ex. 1009, Page 6
`
`
`
`WO 94/11814
`
`
`
`
`PCT/GB93/02315
`
`
`
`7
`
`
`
`
`
`
`
`
`
`
`
`
`
`Quality of service parameters are defined according to signal type, which
`
`
`
`
`
`
`
`
`
`
`distinguishes analog from digital data. They need not be specified
`
`
`
`
`
`
`
`
`
`
`
`
`
`explicitly, but can be notified to the support system in terms of data
`classes. This mechanism allows video channels, voice channels and other
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`data channels to be sensibly established. Channel characteristics can be
`
`
`
`
`
`
`
`re-negotiated after channel creation. The data transmission characteristics
`are implemented in the real network by means of the data transformation
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`manager 32, Fig. 2 in response to the characteristics specified in the
`
`
`
`
`
`
`channe1_creation calls over the API.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Four types of channel are supported: standard, merged, synchronous and
`
`
`
`
`
`
`
`
`
`
`
`serialised. Standard channels are the default case;
`the other types are
`
`
`
`
`
`
`
`
`
`
`
`used in conjunction with collections of channels, known as channel sets.
`
`
`
`
`
`
`
`
`
`
`
`Through a merged channel set data packets are combined from multiple
`channels and delivered to each receiving application through a single port.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`There is no guarantee that each application receives all the data packets
`
`
`
`
`
`
`
`
`
`
`
`
`in the same sequence, only that each application receives all the packets.
`
`
`
`
`
`
`
`
`
`
`
`Through a serialising channel set data packets are combined from different
`
`
`
`
`
`
`
`
`
`
`channels, serialised, and deliVered to each application such that each
`
`
`
`
`
`
`
`
`
`
`receiving port receives the same sequence of data. Through a synchronising
`
`
`
`
`
`
`
`
`
`
`
`
`channel set data is synchronised, so that the data packets on separate
`
`
`
`
`
`
`
`
`
`
`
`
`channels are tied together in time (for example voice with video), but
`
`
`
`
`
`
`
`
`
`delivered through the individual ports belonging to the channels.
`
`
`
`
`
`An example of data serialisation is illustrated by a shared drawing board
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`application illustrated in Figure 6.
`Two identical applications, A and B
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`(50 and 52), allow their users to draw on a single shared surface.
`In order
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`that the users at A and B see identical results, all the drawing orders at
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`A must be sent to B via ports 53 and 54, and vice versa via ports.55 and
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`56,
`in such a way that the sequence processed at A and B is identical. This
`
`
`
`
`
`
`
`
`
`
`
`
`
`is accomplished by each transmitting their own_data both to each other and
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`to themselves, over two channels 57 and 58 which are members of a common
`
`
`
`
`serialising channel set 59.'
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`with reference to Figure 4, data synchronisation is illustrated by an
`
`
`
`
`
`
`
`
`
`
`
`application A (60),
`that needs to send lip-synchronised video and voice to
`
`
`
`
`
`
`
`
`
`
`
`
`
`application B (61). Two channels 62 and 63 are used-for the transmission,
`
`
`
`
`
`
`
`
`
`
`
`each being a member of the same synchronising channel set 64.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Channels can be explicitly created by an API call to the support system,
`
`
`
`
`
`
`
`
`
`specifying the required channel characteristics, and new channels can also
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`be added to an existing port. The latter mechanism allows a port to be
`
`
`
`‘ SUBSTITUTE SHEET
`
`Petitioner Valve - Ex. 1009, Page 7
`
`
`
`Petitioner Riot Games, Inc. - EX. 1009, p. 7
`
`Petitioner Riot Games, Inc. - Ex. 1009, p. 7
`
`Petitioner Valve - Ex. 1009, Page 7
`
`
`
`
`WO 94/11814
`
`
`
`PCT/GB93/02315
`
`
`
`8
`
`
`
`
`
`
`
`
`
`
`
`shared across channels belonging to different channel sets; for example
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`data can be sent from a single port to one set of destinations belonging to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`a merged channel set, and to a second set of destinations belonging to a
`
`
`
`
`
`
`
`
`
`
`serialised channel set. Digital channels and analog channels cannot be
`
`
`
`
`
`
`
`
`
`
`
`
`
`members of the same channel set. A channel can be deleted,
`the channel
`
`
`
`
`
`
`
`
`
`being uniquely identified by specifying its sending and receiving ports.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Channels can be implicitly created as a consequence of an application
`
`
`
`
`
`
`
`
`
`
`
`
`being, or becoming, a member of an application sharing set. For example, if
`
`
`
`
`
`
`
`
`
`
`
`unshared applications already ahve a merged or serialized channel, and the
`
`
`
`
`
`
`
`
`
`
`
`channel set name iused is identical across these applications,
`then when
`
`
`
`
`
`
`
`
`
`
`the applications share with each other,
`the additional channels required
`
`
`
`
`
`
`
`
`
`‘will be created automatically. Applications are notified of channels
`
`
`
`
`
`implicitly created in this way.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`type: event, command or null. Event ports
`Ports have an assigned connect
`
`
`
`
`
`
`
`
`
`
`
`
`generate an event when data is either available or is required; command
`
`
`
`
`
`
`
`
`
`
`
`
`
`ports allow the application to drive the receipt or supply of data to the
`
`
`
`
`
`
`
`
`
`
`
`
`
`port. Null ports are reserved for ports that are unable to supply data to
`
`
`
`
`
`
`
`
`
`
`
`an application e.g. ports associated with analogue channels, such as the
`
`
`
`
`
`
`
`
`
`
`
`sending port of a video camera. Ports can be controlled through
`
`
`
`
`
`
`
`
`
`
`"signal_port" commands sent to their port event handler. These can be
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`issued to the local port and can be passed to any other port in the
`
`
`
`
`
`
`
`
`
`
`
`channel. Normally,
`the singal commands for channel ports will be sent to
`
`
`
`
`
`
`
`
`
`
`
`the port event handler of the application either supplying or receiving
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`data, and may be used for example to stop, start, decrease or increase the
`
`
`
`
`
`
`
`
`
`
`
`
`
`data flow. The order of signals between a source and target is maintained.
`
`
`
`
`
`
`
`
`
`
`
`Signals sent to receiving ports in a serialising channel set are serialised
`
`
`
`
`
`
`
`
`
`
`themselves, so that all sources receive the same sequence of commands.
`
`
`
`
`
`
`
`
`
`
`
`
`Other typical signals are “rewind" or "pause” to a tape drive, or ”change
`
`
`
`
`
`
`paper size" to a printer device.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`User exits can be optionally associated with ports. This aIIOWS monitoring
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`or manipulation of the data, after it has been supplied to a sending port,
`
`
`
`
`
`
`
`
`
`
`
`
`
`or before being presented by a receiving port.
`In the case of synchronised
`
`
`
`
`
`
`
`
`
`
`channels, synchronisation is performed from after the data leaves the
`
`
`
`
`
`
`
`
`
`
`
`
`
`sending port user exit, and up to the data being presented to the receiving
`
`
`
`port user exit.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`The overall structure of a standard sending command port is shown in Figure
`
`
`
`
`
`
`
`
`
`
`
`
`
`8.
`In response to a ”send_data" command from an application, data is queued
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`in a buffer 71 of port 70.
`The application empties the buffer to send data
`
`
`
`SUBSTITUTE SHEET
`
`Petitioner Valve - Ex. 1009, Page 8
`
`Petitioner Riot Games, Inc. - EX. 1009, p. 8
`
`Petitioner Riot Games, Inc. - Ex. 1009, p. 8
`
`Petitioner Valve - Ex. 1009, Page 8
`
`
`
`
`WO 94/11814
`
`
`
`
`PCT/GB93/02315
`
`
`
`
`
`9
`
`
`
`
`
`
`
`
`
`
`
`Incoming
`asynchronously over a channel 73 via a user exit 72.
`
`
`
`
`
`
`
`
`
`"signal_port" commands are received by the port event handler 74,
`
`
`
`
`
`
`
`
`
`
`
`independently of channel 73 on line 75 and can be retransmitted outwardly
`
`
`
`on line 76.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Receiving ports are effectively the mirror image of the corresponding
`
`
`
`
`
`
`
`
`
`
`
`*sending port. For a standard receiving event port the structure is
`
`
`
`
`
`
`
`
`
`
`
`
`
`similar, but in this case the event handler p