Communication infrastructure arrangement for multiuser
Abstract
This invention relates to a communication infrastructure arrangement in and a computer readable program product for a data processing system for multi-user applications, i.e. applications for multiple clients, enabling simultaneous communication across an application communication network (1) between several clients joined in at least one client group (CG). At least one distributed multi-user application is provided on the application communication network (1). Each multi-user application has nodes (AC, ASNS, ACG, AR, AS, APDB, ALS, ANMS, CAS, CGH) and databases (11, DB1, APDB) for handling each client group (CG). A set of attributes (7, 8, CGDB) for each client group (CG) determines the function and usage of the client group. At least one session (13) is provided, in which the attributes are listed. The selection of attributes is made to fit the intended function of the client group (CG) and the capabilities of the application communication network (1).

Term
No projected expiry on record.
- Priority and filed
- Granted
- Today
39 claims: 20 independent, 19 dependent
- 1Patentkrav 1. En kommunikationsinfrastrukturanordning i ett databearbetningssystem för fleranvändarapplikationer, dvs. applikationer för flera klienter, som möjliggör simultan kommunikation över ett applikationskommunikationsnätverk (1) mellan flera klienter som är med i åtmistone en klientgrupp (CG), vilken infrastrukturanordning innefattar a. åtminstone en distribuerad fleranvändarapplikation på applikationskommunikationsnätverket (1), varje fleranvändarapplikation har noder (AC, ASNS, ACG, AR, AS, APDB, ALS, ANMS, CAS, CGH) och databaser (11, DBI, APDB) för hantering av varje klientgrupp (CG); b. en uppsättning attribut (7, 8, CGDB) för varje klientgrupp (CG) som avgör klientgruppens funktion och användning, där åtminstone en av attributen väljs bland följande:Mottagare, Källa, Medlemskapsskyddsmod, Händelsedistributionsmod, Namn och alias, Distributionsmod, Avslutningsvillkor, Klientprofil, Föräldrar, Förfäder, Barn, Ättlingar;c. åtminstone en session (13), i vilken attributen listas;d. urvalet av attribut som görs så att det passar klientgruppens (CG) avsedda funktion och kapaciteten i applikationskommunikationsnätverket (1), vilken infrastrukturanordning är kännetecknad av att den vidare innefattar: e. en mottagarklientgrupp för distribution av identiska data till alla medlemmar i klientgruppen, mottagarklientgruppen har en associerad nätverksadress (t.ex. en IP-multicast) eller en 520 129 applikationsadress, och en applikationsserver (AS) för distribution av applikationsdata till applikationsklienter och klientgrupper (CG) i enlighet med förfrågningar, begäranden eller prenumerationer, sådana förfrågningar, begäranden eller prenumerationer kan uttryckas i termer av prenumerationer på applikationsdataenheter (9) med applikationstaggar.
- 2En kommunikationsinfrastrukturanordning i enlighet med krav 1, kännetecknad av att varje attribut fastställs oberoende av de andra attributen.
- 3En kommunikationsinfrastrukturanordning i enlighet med krav 1 eller 2, kännetecknad av att klientgruppsadressen är antingen en nätverksadress eller en applikationsadress, och en avsändare som känner till klientgruppsadressen skickar data till alla medlemmar i gruppen.
- 4En kommunikationsinfrastrukturanordning i enlighet med något av de föregående kraven, kännetecknad av att en källklientgrupp är ägare eller källa till applikationsdataenheterna, källklientgruppen fungerar som dataenhetens avsändare.
- 5En kommunikationsinfrastrukturanordning i enlighet med krav 4, kännetecknad av att en pseudoklient som är källklientgrupp har åtminstone en aktiv medlem som använder klientgruppen som alias, t.ex. för att tillhandahålla en beständig tjänst till sessionen.
- 6En kommunikationsinfrastrukturanordning i enlighet med något av de föregående kraven, kännetecknad av att några klienter är behöriga 520 129 klienter och har speciella rättigheter, den behöriga gruppen kallas mastergrupp, obehöriga klienter har föreskrivna begränsningar avseende operationer som ska utföras.
- 7En kommunikationsinfrastrukturanordning i enlighet med krav 6, kännetecknad av ett säkerhetssystem där endast behöriga klienter accepteras som medlemmar för att skydda rätten att bli medlem i och/eller lämna klientgruppen.
- 8En kommunikationsinfrastrukturanordning i enlighet med krav 6 eller 7, kännetecknad av att de behöriga klienterna är ägare till klientgruppen eller till någon medlem i klientgruppen.
- 9En kommunikationsinfrastrukturanordning i enlighet med något av kraven 6 till 8, kännetecknad av att säkerhetssystemen har åtminstone två medlemskapsskyddsmod, av vilka ett är säkert och ska vara stängt för obehöriga klienter och öppet endast för behöriga klienter och det andra är fritt för alla klienter att gå med eller gå ur, som de önskar.
- 10En kommunikationsinfrastrukturanordning i enlighet med något av de föregående kraven, kännetecknad av en klientgruppshanterare (CGH) som tillhandahåller information till medlemmarna i klientgruppen (CG) om grupphändelser, såsom klienter som går med eller går ur, att dataenheter skapas eller tas bort, dataprenumerationer etc.
- 11En kommunikationsinfrastrukturanordning i enlighet med krav 10, kännetecknad av att klientgruppshanteraren (CGH) har åtminstone två distributionsmod, av vilka det finns åtminstone ett som kallas Utförligt, 520 129 där medlemmarna får information, och ett annat är Tyst, där åtminstone några medlemmar i klientgruppen inte kan få någon sådan information.
- 12En kommunikationsinfrastrukturanordning i enlighet med krav 11, kännetecknad av att det finns flera utförliga mod, i vilka medlemmarna kan förses med olika mängder och/eller slag av information, föreskrivet i de enskilda utförliga moden.
- 13En kommunikationsinfrastrukturanordning i enlighet med något av kraven 10 till 12, kännetecknad av att klientgruppshanteraren (CGH) lagrar ett namn eller alternativa namn på klientgruppen, så att nätverksadressen eller en applikationsadress kan identifiera en klientgrupp för att stödja operationer på klient grupp er.
- 14En kommunikationsinfrastrukturanordning i enlighet med något av de föregående kraven, kännetecknad av applikationstaggar som fungerar som klientgruppsidentifierarmedel för att identifiera klientgruppen.
- 15En kommunikationsinfrastrukturanordning i enlighet med något av de föregående kraven, kännetecknad av en applikationsserver (AS) som distribuerar applikationsdata till applikationsklienter och klientgrupper (CG) i enlighet med förfrågningar, begäranden och prenumerationer.
- 16En kommunikationsinfrastrukturanordning i enlighet med något av kraven 14 och 15, kännetecknad av att förfrågningarna, begärandena och prenumerationerna uttrycks i termer av prenumerationer på applikationsdataenheter (9) med applikationstaggar. 520 129
- 17En kommunikationsinfrastrukturanordning i enlighet med något av kraven 10 till 16, kännetecknad av att klientgruppshanteraren (CGH) innefattar en databas (DBI), som innehåller data om klientgrupper, där data för varje klientgrupp innefattar listan över medlemmar och en lista över klientgruppens attribut.
- 18En kommunikationsinfrastrukturanordning i enlighet med krav 17, kännetecknad av att databasen (DBI) också innefattar en lista över inbjudna medlemmar, och en lista över klientgruppsägare.
- 19En kommunikationsinfrastrukturanordning i enlighet med något av de föregående kraven, kännetecknad av att en nätverksadress eller en applikationsadress identifierar en klientgrupp, en klientgrupp har också ett namn som är känt av applikationen och lagrat i en applikationssessionsnamnserver (ASNS) eller i klientgruppshanterare (CGH).
- 20En kommunikationsinfrastrukturanordning i enlighet med något av de föregående kraven, kännetecknad av att åtminstone en av klientgruppema också har ett eller flera alternativa namn som kallas alias.
- 21En datorläsbar programprodukt som innefattar ett medium som kan användas av en dator med datorläsbar kod innefattad, för att åstadkomma att en dator lagrar en oförutsägbar mängd tidsvärderat data eller loggdata i ett filsystem i ett datoroperativsystem som kör ett applikationsprogram, nämnda datorläsbara kod innefattar:datorläsbara program och kodenheter som är konfigurerade för att åstadkomma att en enhet med beräkningskapacitet installerar en mjukvarumiljö och användargränssnitt för hantering av mjukvaru520 129 komponenter för att tillhandahålla kommunikationsinfrastruktur i ett databearbetningssystem för fleranvändarapplikationer, dvs. applikationer för multipla klienter, som möjliggör simultan kommunikation över ett applikationskommunikationsnätverk (1) mellan flera klienter som tillsammans är med i åtminstone en klientgrupp (CG), vilken programprodukt innefattar a. datorläsbara program och kodenheter konfigurerade att åstadkomma åtminstone en distribuerad fleranvändarapplikation på applikationskommuniktionsnätverket (1), varje fleranvändarapplikation har noderna (AC, ASNS, ACG, AR, AS, APDB, ALS, ANMS, CAS, CGH) och databaser (11, DBI APDB) för hantering av varje klientgrupp (CG);b. datorläsbara program och kodenheter konfigurerade att åstadkomma en mängd attribut (7, 8, CGDB) för varje klientgrupp (CG) som bestämmer klientgruppens funktion och användning, varvid attributen är åtminstone ett av följande: Mottagare, Källa, Medlemskapsskyddsmod, Händelsedistributionsmod, Namn och alias, Distributionsmod, Avslutningsvillkor, Klientprofil, Föräldrar, Förfäder, Barn, Ättlingar;c. dator läsbara program och kodenheter konfigurerade att åstadkomma åtminstone en session (13) i vilken attributen listas;d. urvalet av attribut görs så att det passar den avsedda funktionen för klientgruppen (CG) och kapaciteten i applikationskommunikationsnätverket (1), vilken programprodukt är kännetecknad av e. datorläsbara program och kodenheter konfigurerade att åstadkomma en mottagarklientgrupp för distribution av identiska data till alla medlemmar i klientgruppen, mottagarklientgruppen har 520 129 en associerad nätverksadress (t.ex. en IP-multicast) eller en applikationsadress och datorläsbara program och kodenheter konfigurerade att åstadkomma en applikationsserver (AS) för distribution av applika5 tionsdata till applikationsklienter och klientgrupper (CG) i enlighet med förfrågningar, begäranden och prenumerationer, sådana förfrågningar, begäranden och prenumerationer kan uttryckas i termer av prenumerationer på applikationsdataenheter (9) med applikationstaggar.
- 22En datorläsbar programprodukt i enlighet med krav 21, kännetecknad av att varje attribut bestäms oberoende av de andra attributen. 15 23. En datorläsbar programprodukt i enlighet med krav 22, kännetecknad av att klientgruppsadressen är antingen en nätverksadress eller en applikationsadress, och en avsändare som känner till klientgruppsadressen skickar data till alla medlemmar i gruppen. 20 24. En datorläsbar programprodukt i enlighet med något av kraven 21 till
- 2323, kännetecknad av datorläsbara program och kodenheter konfigurerade att åstadkomma en källklientgrupp som är ägare eller källa till applikationsdataenhetema, källklientgruppen fungerar som dataenhetens avsändare.
- 2425. En datorläsbar programprodukt i enlighet med krav 24, kännetecknad av datorläsbara program och kodenheter konfigurerade att åstadkomma en pseudoklient som är en källklientgrupp med åtminstone en aktiv 520 129 medlem som använder klientgruppen som alias, t.ex. för att tillhandahålla en beständig tjänst till sessionen.
- 2526. En datorläsbar programprodukt i enlighet med något av kraven 21 till 25, kännetecknad av att några klienter är behöriga klienter och har speciella rättigheter, den behöriga gruppen kallas mastergruppen, obehöriga klienter har föreskrivna begränsningar avseende operationer som ska utföras.
- 2627. En datorläsbar programprodukt i enlighet med krav 26, kännetecknad av datorläsbara program och kodenheter konfigurerade att åstadkomma ett säkerhetssystem där endast behöriga klienter accepteras som medlemmar för att skydda rätten att bli medlem i och/eller lämna klient gruppen.
- 2728. En datorläsbar programprodukt i enlighet med krav 26 eller 27, kännetecknad av att de behöriga klienterna är ägare till klientgruppen eller till någon medlem i klientgruppen.
- 2829. En datorläsbar programprodukt i enlighet med något av kraven 26 till 28, kännetecknad av att säkerhetssystemen har åtminstone två medlemskapsskyddsmod, av vilka ett är säkert och ska vara stängt för obehöriga klienter och öppet endast för behöriga klienter och det andra är fritt för alla klienter att gå med eller gå ur, som de önskar.
- 2930. En datorläsbar programprodukt i enlighet med något av kraven 21 till 29, kännetecknad av datorläsbara program och kodenheter konfigurerade att åstadkomma en klientgruppshanterare (CGH) som tillhandahåller information till medlemmarna i klientgruppen (CG) om 520 129 , grupphändelser, såsom klienter som går med eller går ur, att dataenheter skapas eller tas bort, dataprenumerationer etc.
- 3031. En datorläsbar programprodukt i enlighet med krav 30, kännetecknad av att klientgruppshanteraren (CGH) har åtminstone två distributionsmod, av vilka det finns åtminstone ett som kallas Utförligt, där medlemmarna får information, och ett annat är Tyst, där åtminstone några medlemmar i klientgruppen inte kan få någon sådan information.
- 3132. En datorläsbar programprodukt i enlighet med krav 31, kännetecknad av att det finns flera utförliga mod, i vilka medlemmarna kan förses med olika mängder och/eller slag av information, föreskrivet i de enskilda utförliga moden.
- 3233. En datorläsbar programprodukt i enlighet med något av kraven 29 till 32, kännetecknad av att klientgruppshanteraren (CGH) lagrar ett namn eller alternativa namn på klientgruppen, så att en nätverksadress eller en applikationsadress kan identifiera en klientgrupp för att stödja operationer på klientgrupper.
- 3334. En datorläsbar programprodukt i enlighet med något av kraven 21 till 33, kännetecknad av datorläsbara program och kodenheter konfigurerade att åstadkomma applikationstaggar som fungerar som klientgruppsidentifierarmedel för att identifiera klientgruppen.
- 3435. En datorläsbar programprodukt i enlighet med något av kraven 21 till 34, kännetecknad av datorläsbara program och kodenheter konfigurerade att åstadkomma en applikationsserver (AS) som distribuerar 520 129 applikationsdata till applikationsklienter och klientgrupper (CG) i enlighet med förfrågningar, begäranden och prenumerationer.
- 3536. En datorläsbar programprodukt i enlighet med något av kraven 33 till 35, kännetecknad av att förfrågningarna, begärandena och prenumerationerna uttrycks i termer av prenumerationer på applikationsdataenheter (9) med applikationstaggar.
- 3637. En datorläsbar programprodukt i enlighet med något av kraven 31 till 42, kännetecknad av att klientgruppshanteraren (CGH) innefattar en databas (DBI), som innehåller data om klientgrupper, där data för varje klientgrupp innefattar listan över medlemmar och en lista över klientgruppens attribut.
- 3738. En datorläsbar programprodukt i enlighet med krav 37, kännetecknad av att databasen (DBI) också innefattar en lista över inbjudna medlemmar, och en lista över klientgruppsägare.
- 3839. En datorläsbar programprodukt i enlighet med något av kraven 21 till 38, kännetecknad av att en nätverksadress eller en applikationsadress identifierar en klientgrupp, en klientgrupp har också ett namn som är känt av applikationen och lagrat i en applikationssessionsnamnserver (ASNS) eller i klientgruppshanterare (CGH).
- 3940. En datorläsbar programprodukt i enlighet med något av kraven 21 till 39, kännetecknad av att åtminstone en av klientgrupperna också har ett eller flera alternativa namn som kallas alias. 520 129 SPELKONSOL 520 129
Independent claims39
325 paragraphs in 34 sections, as filed
(54) NAME Communication infrastructure device in and a computer-readable software product for a multi-user application data processing system (56) PUBLISHING QUOTES:
EP A 0 800 329 (H04Q 11/04) (57) SUMMARY:
This view addresses a communications infrastructure device and a computer readable software product for a multi-user application data processing system, ie. multi-user applications, which enable simultaneous communication over an application communication network (1) between several clients who are members of at least one client group (CG) together. At least one distributed multi-user application is provided on the application communication network (1). Each multi-user application has nodes (AC, ASNS, ACG, AR, AS, APDB, ALS, ANMS, CAS, CGH) and databases (11, DBI, APDB) for managing each client group (CG). A set of attributes (7, 8, CGDB) for each client group (CG) determines the client group's function and usage. At least one session (13) is provided in which the attributes are listed. The selection of attributes is made to fit the intended function of the client group (CG) and the application communication network (1).
capacity in
<img file="SE520129C2_D0001.tif" />
<td> /^7</td><td> 7</td><td> /</td><td colspan="2">zT <10</td><td></td>
<td>Γ SESSIONS * PROFILE</td><td colspan="2">CLIENT- PROFILE</td><td>\ i - \ We in \ ? 3 | ----- η</td><td>IP PROTOCOL datagram</td><td></td>
<td rowspan="2">9 J APPL'Ί DATA * \ 1 ENH.</td><td>nAtv-</td><td></td><td></td><td colspan="2">KOMM.PROT.</td>
<td>PROT.</td><td></td><td>kNJcgh] /</td><td colspan="2">NATVERKSPROT,</td>
<td></td><td></td><td> 1</td><td></td><td colspan="2">APPL.TRANSP PROT. (APPL.TAGGAR)</td>
CLIENT CRUPPSPATABAS CGDB
CLIENT GROUP ZENTIFIER list of members, e.g. oxxsA parents, ancestors, descendants, owners, masters, attributes
The figures within the rest are indicative of international identification code, INID code. Letters in clamps indicate international document code.
520 129
SUMMARY
This view addresses a communications infrastructure device and a computer readable software product for a multi-user application data processing system, ie. multi-user applications, which enable simultaneous communication over an application communication network (1) between several clients who are members of at least one client group (CG) together. At least one distributed multi-user application is provided on the application communication network (1). Each multi-user application has nodes (AC, ASNS, ACG, AR, AS, APDB, ALS, ANMS, CAS, CGH) and databases (11, DBI, APDB) for managing each client group (CG). A set of attributes (7, 8, CGDB) for each client group (CG) determines the client group's function and usage. At least one session (13) is provided in which the attributes are listed. The selection of attributes is made to fit the intended function of the client group (CG) and the capacity of the application communication network (1).
The present invention mainly addresses a communication infrastructure device according to the preamble of claim 1.
520 129
Technical field of the invention
The application of the invention is network-built virtual environments where multiple, geographically dispersed users interact in real time. An application is defined here as a distributed computing process that processes a network-built virtual environment. Such applications are aimed at a sense of realism and an intensified (in-depth) experience in a virtual world. They are used for military and industrial team training, collaboration in design and construction, multi-participant games, virtual shopping, virtual conferences, customer support at a distance and distance studies. The application session ends under predefined conditions.
A distributed computing process that processes a network-built virtual environment is hereafter referred to as an application.
An application session is an instance of an application that starts at a given time, clients enter and leave the virtual world, and the application session ends in predefined conditions.
There are some concurrent applications for this application. One of them is PCT / SE00 / 00932 "Application Access Server" with priority date 199905-10 from both SE 9901694-1 and US 09/307712.
At the same time with this application are the co-applicant applications SE. .Profiles) "Automatic configuration of a flexible
520 129: · ί Α / Η 'J · /?
communication infrastructure for MULTI USER application "and SE ... Name server" Name service for network-built MULTI USER application ".
Some of the elements shown and discussed in this application are discussed in more detail in the consecutive applications, which are hereby incorporated by reference in their entirety for all purposes.
For the term IP multicast, see the appendix at the end of the description.
Description of the Related Art
PCT / DE00 / 00932 is a co-applicant application, which describes real-time performance in a communication network with a large number of participants. A server unit is provided which includes receiver means for receiving information from the client units. The server device stores status information received from each of the client devices and forwards this information to nodes in the network. It also transmits at least some of the stored information to the clients. In this way, the entire status of an application can be stored in one or more devices on the network. This eliminates the need for each client to store the entire status, which in turn leads to reduced memory and bandwidth requirements for each client.
The Direct Play Application Programming interface from Microsoft uses the concept of hierarchical player groups. Some of the terms in this proposal are published in an article DirectPlay) B. Bargen and P. Donnelly, “Inside
DirectX ”, Microsoft Press 1998. However, this reference describes only one application interface, hereinafter referred to as the API, and not a complete application network.
520 129 http: //gamasutra.eom/features/20000621/aronson _01.htm is an article by Jesse Aronson, "Using Grouping for Network Gaming", published on the Internet on June 21, 2000, and deals with the use of client groups in games with multiple player.
Object of the invention
A client group is a set of clients that have been registered as a group in an application network.
An object of the invention is to provide a communication infrastructure for efficient multicasting of application data including simultaneous distribution of identical data to a well-defined client group.
Another object of the invention is to provide a communication infrastructure that can facilitate the authorization of client groups and individual clients in client groups.
It is an object of the invention to provide a communication infrastructure for Security, ie. control access to application data through private communication to client groups.
Another object of the invention is to provide a communication infrastructure for creating and managing persistent logical roles in the application that owns application data and application data streams. A client group can be a pseudo-client who owns and controls game data but does not correspond to a real client machine or human
520 129
Another object of the invention is to provide a shared communication infrastructure for creating and managing shared application data and application data streams with a controlled collective ownership.
Another object of the invention is to provide a communication infrastructure for distribution of information about the status of members to a client group.
Summary of the Invention
The invention is intended to use client groups in a distributed multi-user application on an application communication network that has nodes and databases for managing client groups.
Client Group Attribute
A client group (CG) can have a variety of attributes that determine the client group's functions and usage. The attributes are listed in this section. Each attribute can be set independently of the other attributes. The selection of attributes is made to fit the client's CG intended function and the capacity of the application network. The attributes are: Receiver, Source,
Membership Protection Mode, Event Distribution Mode, Name and Alias,
Distribution Mode, Termination Terms; Client Profile, Parents, Ancestors, Children, Descendants.
RECEIVER
A recipient client group is used to distribute identical data to all members of a client group. A recipient client group has an associated network address (eg, an IP multicast) or an application address. A client group or client address is either a network address or one
520 129 Ί = Η? ·: · ':?
ί application address. A sender who knows the address can send data to all members of the group.
SOURCE
A source client group is the owner or source of application data units. The client group acts as the sender of the data unit. A pseudo-client is a source client group with one or more active members who use the client group as an alias, for example, to provide a persistent service to the session. A pseudo-client may also have passive members who do not participate in secondary data. A passive member can become active, for example when an active client leaves.
MEDLEMSKAPSSKYDDSMOD
The right to join and / or leave a client group can be protected by a security system where only authorized clients are accepted as members. Membership protection mode is then closed. Alternatively, it can be free for all clients to join or exit as they wish. Membership protection mode is then open. There may be more than these two modes.
HÄNDELSEDISTRIBUTIONSMOD
The members of a client group can get information about all group events such as clients joining, leaving, data units that are created and removed, data subscription etc. Event distribution mode is then Detailed. Alternatively, members receive no such information. Event distribution mode is then Silent.
NAMES AND ALIAS
A network address or application address can identify a client group.
A client group can also have a name that is known by the application and optional
520 129 is stored in an application session name server or in CGH as described below. A client group may also have one or more alternative names called aliases. All means for identifying the client group including those mentioned here are called group identifiers.
DISTRIBUTIONSMOD
Suppose a player sends a data unit to a client group that uses the client group identifier for addressing. The method of sending the data unit to the members of the client group is called the client group distribution mode.
Possible distribution modes are:
1st Unicast where the sender retrieves a list of individual addresses of the members of the group and sends a copy of the data unit to each member.
2nd Broadcast where the sender sends the data unit to all participants in the session with a tag indicating that the data unit is intended only for the members of the client group. All members of the client group receive the data unit. IP and LAN broadcasts belong to this category.
3rd IP multicast where the client group is associated with an IP multicast address. IP multicast is described in Appendix at the end of the description.
4th Application multicast where the application network described below provides an application-level multicast feature. The sender client sends a copy of the data unit to an application router. The data unit has a tag that identifies the client group. This tag is an application address for the client group. The application router system sends the data unit over the application network and makes copies as needed. All members of the client group receive the data unit.
520 129 ί; C: 7
Ί
5th Central server multicast where an application content server receives a copy of the data unit from the sender client and distributes a copy of the data unit to all members of the group.
CLIENT PROFILE
A client profile consisting of a variety of application network parameters is completed and stored before the client group is created. The client profile is not part of this invention and is further described in a co-applicant application SE .... {Profiles}. The client profile is used to initialize and complete the programmable application network and the client date before a given client group joins the multi-user application session. A user who wants to create a client group negotiates the use of a particular client profile with the service provider.
CHILDREN
A client group can be a member of other client groups. The amount of clients and client groups that are members of a client group C is called the client group's children.
LINEAGE
A client group C child may also have other client groups as members. This creates a hierarchy of client groups with C as the top node. The amount of all client groups that are either members of C or members of a member or appear somewhere under C in the hierarchy is called C's descendants.
PARENTS
A client group can be a member of other client groups. The amount of client groups that have a given client group C as a member is called the client group's C parents.
520 129
FATHERS
The amount of all client groups that have a given client group C as a descendant is called C's ancestor.
Brief description of the figures
For a fuller understanding of the present invention and for further objects and advantages thereof, reference is now made to the following description of an embodiment of the one shown in the accompanying figures.
Fig. 1 shows a programmable application network (PAN) suitable for network-built virtual environments of the invention;
FIGS. 2A to 2D are flow charts showing how the invention works;
FIG. 3 shows a possible implementation of a client group manager (CGH); and FIG. 4 shows IP multicasting where the arrows show data paths and refer to Appendix.
Detailed description of a preferred embodiment
Application Network (AN) 1
Referring to FIG. 1, an application network 1 is suitable to support network-built virtual environments. The application network 1 includes a communication network 2, which includes communication links and routers for communication protocols for general use, such as Internet protocols. The application network 1 also includes several nodes, such as AC, ASNS, ACG, AR, AS, APDB, ALS, ANMS, CAS, CGH, which are intended to support an application session 13. All of these nodes do not need to be present in a given application session 13. Multiple instances of a given node may occur.
520 129
The application network 1 can be programmed or configured to support a given application session 13 and a given set of clients by setting the application network parameters such that sufficient bandwidth, network addresses, server memory, server computing power, application content generation capacity, application session name server capacity, etc.
The nodes in a programmable application network 1 are described below.
Klientgrupphanterare
There may be at least one, preferably several, client group manager CGH which is a particular agent of this invention. The client group manager CGH includes a database DBI containing data about the client groups. This data includes for each client group the list of members and a list of client group attributes. The DBI database may also include a list of invited members (see below), a list of client group owners (see below) and possibly other data.
Client group manager CGH supports operations on client groups described below. Examples of operations are client joining and creating object group. A detailed description of the client group manager CGH is given below, and is illustrated in FIGS. 2A through 2D and FIG. 3. Each client group manager CGH can handle multiple application sessions 13. A given application session 13 can use multiple client group managers CHG. Each client group manager CGH in the session can optionally manage a separate part of the client group database. Several client group managers CGH can also manage the same database DBI according to any known method for managing distributed databases.
520 129 ίο
The Client Group Manager (CGH) has at least two distribution modes for the client groups, of which there is at least one called Comprehensive, when members get information, and another is Silent, since at least some members of the group cannot get any information. Thus, there are several elaborate modes in which members may be provided with different amounts and / or types of information, prescribed in the individual elaborate modes. One of the elaborate modes can provide the client groups with all sorts of information, while another elaborate mode can provide the client groups with this mode perhaps only clients who join and clients who leave, as these properties are particularly interesting. The client group manager CGH stores a name or alternative names for the group, so that a network address or application address can identify a client group, to support operations on client groups.
Application Lobby Server (ALS) (optional)
The application lobby server ALS is optional and is used to set up the application session. All optional nodes are illustrated with dashed lines. You can also set up the application session in an application router AR or in a client permission server CAS. The application lobby server can be provided as an external node and thus does not need to be connected to the programmable application network 1, which is marked by a dashed connection.
Participants 5 can register at the application lobby server ALS and negotiate to start an application session. An application service provider 6 can use the application lobby server ALS to authenticate participants and manage accounting. The application lobby server ALS can set up client groups as part of the initialization of an application session 13 using, for example, session profile 7, see SE- .. {Profiles}. The application lobby server ALS can optionally specify a client profile 8 for each initialized client group, see SE- .. {Profiles}.
520 129
A session profile 7 consists of a variety of application network parameters that are valid for the application session 13. The session profile is used to initialize and prepare the programmable application network before an application session starts.
A client profile 8 consists of a plurality of application network parameters that are valid for a participant in an application session 13. The client profile is used to initialize and prepare the programmable application network and the client computer before a given client joins the application session.
A variety of client profiles can be associated with a session profile. Each application is optionally linked to one or more client profiles and application session profiles.
A session profile 7 consisting of a plurality of application network parameters is prepared and stored before session 13 starts. The session profile 7 is used to initialize and prepare the programmable application network 1 before launching a multi-user application. A user who wants to initiate an application session 13 negotiates the use of a particular session profile 7 with an application service provider 6. Session profile 7 may include definitions of client groups that should be created when session 13 is initialized.
Application Network Management System (ANMS)
The application network management system ANMS is used to initialize application sessions that may have been negotiated in an application lobby server ALS. The application network management system ANMS is used for reservation of resources, optionally in the communication network 1 and in AS, AR, ACG and ASNS nodes (see below). The application network management system ANMS can also be used for handling error conditions. The application network management system 520 ANMS uses the session profile 7 and the client profile 8 to configure the programmable application network 1.
Application Client (AC)
An application client AC is a local instance of the computer process that simulates the network-built virtual environment. For example, an application client AC can be a Windows / UNIX process or thread. A computer process can run one or more application clients AC. Thus, an application client AC is a logical instance of a game or simulation and is not always identical to any specific computer process, thread, program or machine. The client computers or, for example, a game console running the application client have means for receiving input from the user and displaying the application's output as graphics, video, audio or haptics (physical emotion indication). The application client AC can subscribe to, receive and process tagged application data units 9 and send tagged application data units 9.
The session profile 7 and the client profile 8 are used to configure the application client AC to communicate in accordance with the session and client profiles 7, 8. The application client AC may be a member of one or more client groups CG. The application client AC can be a member of one or more client groups CG. The application client AC can dynamically create and delete client groups. It can also manage membership and attributes of client groups.
Application Router (AR)
An application router AR routes application data units 9. Routing is dependent on the application tags (see below) that each application data unit 9 has. The participants CG are then connected to the application router through the application client AC and from there to the programmable
520 129 Application Network 1. Since client groups can optionally be connected to other nodes, such as ALS and CAS, they have the same reference CG. The application router AR receives datagram 10 containing application data units 9 from the Communication Network 2. The application router AR reads the application tags on the application data units 9 and returns the application data units 9 over the Communication Network 2 with a network address that depends on the application tags and possibly also on client and client group subscriptions.
Computer memory 3 for routing tables and for client and client group subscriptions and processing resources is reserved for an application session 9 in accordance with session profile 7 and for an application client or client group in accordance with client profile 8. An application router AR can optionally multicaste to client groups 4 using the client group application address as the multicast address .
The application router AR also supports optional client group operations, such as e.g. "Client joins client group". The application router AR can keep records of each client's client group membership. If the application router AR receives a data unit 9 addressed to client group 4, it can be routed to all members of the client group. The application router AR can also route messages regarding client group operations to the client group manager CGH that has been assigned to manage the client group.
Application Server (AS)
An application server AS stores received application data and stores application data. The application server AS distributes application data to different application clients, no ldipritoninner CG in consultation with request requests or subscriptions.
520 129
Such requests, requests, and subscriptions can be expressed in terms of subscriptions to application data units 9 provided with application tags (see below). The computer memory 11 for application data and for subscriptions and processing resources is reserved for an application session 13 according to the session profile 7 and for an application client or client group according to the client profile 8.
Application Content Generator (ACG)
An application content generator ACG is a server that generates content for an application session 13. It can e.g. be a game server in play with multiple players who decide on kills, collisions and injuries. It can also be responsible for running avatars that appear to be human-controlled but handled by artificial intelligence. The application content generator ACG receives and processes application data units 9 and sends application data units 9 which have application tags. The computer memory 11 for application data and processing resources is reserved for an application session according to the session profile and for an application client according to the client profile. The application content generator ACG can dynamically create and remove client groups. It can also handle client groups membership and attributes.
Application Session Name Server (ASNS) (optional)
The optional application session name server ASNS maps application session names to application tags and vice versa, and responds to operations such as naming, deleting names, and querying names. It is described in detail in a co-applicant application SE ... (Fredriks). Computer memory for application databases and processing resources is reserved for an application session 13 in accordance with session profile 7 and for an application client in accordance with client profile 8.
The application session name server ASNS can have a database that links client group identifiers to each other. Applikationssessionsnamnservem
520 129
For example, ASNS can have a register for each client group that stores the client group name and application address.
Accounting system (AccS) (optional)
An optional accounting system AccS can measure the characteristics of an application session 13 including the start and stop time of session 13 and the time each client joins and leaves. The session profile 7 and client profile 8 are known by the accounting system AccS and provide a description of the network resources used by the session and by each client. The AccS accounting system calculates the price for clients, application service providers and operators in accordance with the service's business model.
Client group membership can be used for accounting. The fact that client A is a member of client group B may indicate that A is using resources. That Client A is a member of Client Group C may indicate that A provides a service to application session 13. A can thus be charged for A being a member of B and receiving a bonus for A being a member of C. The accounting system AccS can retrieve client group membership data from the client group manager. CGH.
Client Access Server (CAS) (optional)
Clients can log in to the optional client access server CAS before joining an application session 13. The client access server CAS can be connected to a user database and report optional to the accounting system AccS. The Client Access Server CAS is used to ensure that clients correspond to known users who have a customer account.
Application Profile Database (APDB)
Standard session profiles and client profiles are stored in the APDB application profile database. Any type of application (eg computer game
Quake III Arena) may have one or more associated session profiles and
520 129 client profiles in the APDB database. Each session 13 or client profile 7 may have a name so that they can be retrieved by reference to the name.
communication Protocol
network Protocols
The communication network normally uses several packet-based communication protocols, such as IP protocol 10. The communication network 2 transports datagrams in the communication protocol 10 from sender to receiver. A datagram normally consists of a head and a payload. A header may comprise one or more network addresses used by routers in the communication network 2 to send the datagram to the receiver. Protocols are often layered so that the payload in one protocol layer may include one or more datagrams in the next protocol layer. Application data units 9 are transported as payloads in the network protocol charts.
The communication network 2 may have a multicast function, e.g. IPmulticasting. Client groups can correspond to multicast addresses in the communication network.
Application Transport Protocol
The application may include its own communication protocol. The application datagram is referred to here as application data unit 9. An application data unit 9 consists of a header containing several application tags and a payload. The payload consists of application-specific data such as positions, avatar properties, coded voice data, etc. The application transport protocol can have a multicast function. The client groups can correspond to the application addresses in the application network.
application Tags
An application tag is a field in a package header or in a header of an application data unit 9. It consequently consists of a set of bits. One
520 129 application tags have a type that is marked by the corresponding field's position in the protocol or by flags in the protocol that indicate the type of the tag. If an application tag is a field in a public communication protocol, it can be a network address, a multicast address, or a port number. In connection with the co-applicant application PCT / SE00 / 00932, it is an object identifier, a client identifier, a group identifier or a power object key. Application tags should be as short as possible to save network bandwidth. An application address is an application tag that can be used to transfer data to clients or client groups participating in the application.
The application session 13 is normally a simulation of a virtual world. This world includes application objects that are meaningful to human users such as human participants, avatars controlled by humans, avatars controlled by AI, fixed roles in the game that can be exchanged between users (king, judge ...), objects in the virtual world, properties with objects and avatars, groups and teams of avatars, groups of objects, groups of groups, places in the virtual world, media streams (speech, video) and collections of media streams. All such articles can be identified with sets of application tags.
General client group operations in the application network 1
Client group operations are described here using a pseudo-function call. This description does not refer to any computer programming language, library, or application interface API. It is used as convenient shorthand to refer to client group operations in this proposal. The author, sender, target, and recipient parameters are clients or client groups. Any client or client group identifier that includes names, aliases and addresses can be used to refer to the client or client group.
520 129
Creating a Client Group (FIG. 2A)
Operation: Create_ClientGroup [ES12] (author, identifier, attribute, profile, owner, master)
A client group can be created by e.g. the optional application lobby server ALS when a session 13 has been initiated using e.g. session profile
7th A client group 5 can also be created by one of the clients or application content generator ACG during the session, e.g. using an API. Anyone who creates a client group can optionally enter the name, alias and address of the client group. Attributes in accordance with the client group attribute section can be optionally defined. A client profile can be optionally determined.
A set of owners can be optionally defined. A set of masters can be optionally defined. Normally, the author is also the owner of the client group. Owners are clients who have the right to perform certain client group operations on the group, such as Ta_bort_ client group. Masters are clients who have the right to perform certain client group operations related to the operation
Gå_med_i_klientgrupp.
S1 Creating a client group means that the author sends one or more application control messages to configure different nodes in the system.
S2, S3 The client group manager CGE1 can reject the operation if the sender does not have the right to perform the operation, or if system resources are missing.
S4 Client group manager CGH receives a message that configures client group manager CGH so that a new database register is set
520 129 up for the client group, and the parameters (identifier, attribute, profile, owner, masters) of the Create_Client group operation are stored.
Application routers are configured with routing tables for the client group, either directly by the originator or by the client group manager CGH.
Application servers are configured with memory allocation and database records for the client group either directly by the originator or by the client group manager CGH.
The ASNS client database name database is configured with records and identifiers for the client group either directly by the originator or by the client group manager CGH.
Application clients can be informed about the creation of the client group either directly by the originator or by the client group manager CGH.
CONDITIONS OF CLOSING
The closing conditions determine the circumstances under which a client group is removed. Possible closing conditions are:
1st termination after a set time
2nd quit only when the application session ends
3rd termination as a result of an action performed by a specific set of qualified clients
4th termination when the number of members is less than N, where N is a natural number
520 129
Several closing conditions can be combined.
Below is an example of termination condition 3.
Removing a client group (Fig 2B)
Operation: Ta_bort_ client group (sender, target)
510 The sender is a client or client group 4. The target is a client group to be deleted. A client group can be removed by one of the clients or application content generator ACG during the session, e.g. using an API.
511 Removing a client group means that the sender sends one or more application control messages to configure different nodes in the system.
512 The client group manager CGH can reject the operation if the sender does not have the right to perform the operation.
513 Client group manager CGH receives a message that results in the deletion of the database record for the target client group.
514 The client group manager CGH notifies the group members and owners that the group has been deleted.
515 AR, AS, ASNS is notified that the client group has been deleted, either directly by the sender or by the client group manager CGH.
520 129
Walking_ (Fig 2C)
Operation: Go_with_i_client group (sender, target, group, optional parameters)
520 A sender who can be a client or a client group performs the operation Go_with_in_customer group. The goal is a client or client group that will become a member of the group. The sender can be identical to the target.
521 Gå_med_i_kli<sup>one</sup>tgroup means that the sender sends one or more application control messages to configure different nodes in the system.
522 The client group manager CGH can reject the operation if the sender does not have the right to perform the operation or if system resources are missing.
523 The client group manager CGH receives a message that configures the client group manager CGH so that the database is updated with the new members of the group. The group's attributes can be modified according to the optional parameters.
524 The application routers AR are configured with updated routing tables for the client group either directly by the originator or by the client group manager CGH.
525 The application servers AS are configured with updated memory allocation and database records for the client group, either directly by the originator or by the client group manager CGH.
526 Application clients can be informed about new members of the client group either directly by the sender or by the client group manager CGH. Especially the target clients should be informed that they have become members of
520 129 group. The sender should receive a message from the client group manager CGH indicating whether the operation was successful or failed.
Go_with_i_client group is handled differently depending on client group protection mode.
Open protection mode
The request to join is immediately accepted as described above.
Closed protection mode
The client group manager CGH ensures that the request to join is approved. There are several ways to insure this.
1st Inbjudningsmetod
A competent client A issues an invitation to a client B to join client group C. The client group manager's CGH database Dl lists qualified clients explicitly or implicitly. The group of competent clients is called the master group. Eligible clients can, for example, be the client group owner or any member of the client group. Client group manager CGH receives a message that client B has been invited. The message may include a timeout T indicating that client group CGH should keep client B in the list of invited clients for a time T. Client B receives a message from client A or client group manager CGH indicating that client B is invited to join the client group. Client B can now join the client group by using the operation Go_with_i_client group. The client group manager CGH accepts the operation Go_with_i_client group if client B is included in the list of invited clients for the client group. The invitation method requires a new operation:
520 129
Operation: Invite_in_tiH_client group (sender, target, group, optional parameters)
When the target is the client or client group that issues the invitation and the target is the client or client group that is invited to join the group.
A special case of the invitation method is when a client who wants to join a protected client group requests an invitation from a member of the master group. The recipient of the request decides whether an invitation should be sent.
2nd requesting Method
A client B who wants to join a client group C issues a request to join the group to the master group for client group C. The request can be sent directly from B to one or more members of the master group. The request can also be sent to the client group manager CGH. The client group manager CGH forwards the request to one or more members of the master group. A member of the master group responds by either rejecting or approving the request. The approval or rejection is sent as a message to the client group manager CGH. If the request is approved, the client group manager CGH will perform the same operation as for a successful Go_with_i_client group operation. Client A is notified that the request has been approved or rejected. The request method requires three new operations:
Operation: Request_go_with_in_customer group (sender, optional message, group, optional parameters)
Operation: Approve_go_with_in_customer group (sender, message, group, optional parameters)
Operation: Reject_go_with_in_customer group (sender, target, group, optional parameters)
520 129
3rd Forced method
A competent client A calls the operation Go_with_i_client group and causes client B to join client group C. The client group manager's CGH database Dl lists qualified clients explicitly or implicitly. For example, qualified clients can be content servers in application session 13. Go_with_in_customer group is processed as described above. You can choose that clients who join in accordance with the forced method should not be able to leave without the permission of a competent client.
Exit (Fig 2D)
Operation: Go_ur_ client group (sender, target, group, optional parameters)
530 A sender that can be a client or client group performs the operation Go_ur_ client group. The goal is a client or client group that should no longer be a member of the group. The sender can be identical to the target.
531 Go_ur_ client group means that the sender sends one or more application control messages to configure different nodes in the system.
532 The client group manager CGH can reject the operation if the sender does not have the right to perform the operation.
533 The client group manager CGH receives a message that configures the client group manager CGH to update the database. The group's attributes can be modified according to the optional parameters.
520 129
S34 Application routers are configured with updated routing tables for the client group either directly by the originator or by the client group manager CGH.
S3 5 Application servers are configured with updated memory allocation and database records for the client group either directly by the originator or by the client group manager CGH.
S36 Application clients can be informed of members leaving either directly by the sender or by the client group manager CGH. In particular, target clients should be informed that they have ceased to be members of the group. The sender should receive a message from the client group manager CGH indicating whether the operation was successful or failed.
The client group manager CGH can optionally check if the sender has the right to let the target leave the group. The client group manager rejects unauthorized walking operations.
Subscribe
Operation: Subscribe_to_data (subscriber, recipient, data scripts, parameters)
The subscriber is the client or client group that issues the subscription. The recipient is a client or client group. The members of the client group receive the result of the subscription. The data descriptors specify the application data to be delivered to the client group. Data scripts are normally application tags or names of data units that can be translated into application tags using, for example, application session name server ASNS. The parameters specify the priority, the update frequency or the timeout for the subscription.
520 129
The operation means that the subscriber sends one or more application control messages to configure different nodes in the system.
The client group manager CGH receives an optional message that includes the subscription to the CGH database.
The application routers AR are optionally configured with routing tables indicating that the members of the client group should receive the data units indicated in the subscription in accordance with the subscription parameters.
Routers in the communications network (eg, IP routers) may be configured with routing data indicating that the members of the client group are members of an IP multicast group to which data units addressed to the specific client group are distributed.
The application servers AS are optionally configured with subscription tables indicating that the members of a client group should receive the data units indicated in the subscription in accordance with the subscription parameters.
The clients and application content generator ACG are optionally configured with subscription tables indicating that client group members should receive the data units indicated in the subscription in accordance with the subscription parameters.
Creating a data unit belonging to a client group
Operation: Create_data device (author, data device identifier, parameters)
The author is a client or client group that will be the source of the data unit. The application network units such as AS, AR and ASNS can
520 129 register the client group as the data unit owner. The data device identifier is usually a name or alias that identifies the data device. The parameters further specify priority, security class, network service etc.
The operation means that the originator sends one or more application control messages to configure different nodes in the system.
The client group manager CGH receives an optional message.
The client group manager can be registered as the owner of the data unit in the CGH database DBI. The client group manager CGH can return a data unit identifier or tag value to be used to identify the project.
The application routers AR are optionally configured with tables indicating that the members of a client group have the right to send the data unit according to the parameters. The author or client group manager CGH can send this message.
Routers in the communications network (eg IP routers) may be configured with routing data indicating that the members of the client group are sources of an IP multicast group.
The application servers AS are optionally configured with tables indicating that the members of a client group have the right to send the data unit according to the parameters. The author or client group manager CGH can send this message.
Clients and the application content generator ACG are optionally configured with tables indicating that the client group is the source of the data unit.
520 129
SEND DATA UNITS
Operation: Send_data (sender, receiver, data unit descriptors, payload, parameters)
The sender is a client or client group that is the source of the data unit. The sender may have created the data unit using the Create_data unit operation. The optional receiver is a client, a client group, or an application network node such as an application router AR or an application server AS. The receiver receives a copy of the data device.
The data unit descriptors specify the data unit head including the tags. The payload is application data, which is to be transported. The parameters further specify priority, security class, network service etc.
The operation means that the sender sends one or more data units to different nodes in the system.
The application routers AR route the data unit according to the recipient address and any subscriptions.
Routers in the communication network (eg IP routers) optionally route the data unit according to the IP address.
The application servers AS optionally store the data unit according to the parameters and also forward the data unit according to subscriptions.
Clients and application content generator ACG optionally receive the data unit according to the recipient address and its subscriptions.
520 129
DISCONNECT FROM MEMBERS
Operation: Disconnect_from_ members (sender, target, parameters)
The sender is a client or client group. The goal is a client group. The parameters further specify the conditions for the operation.
The operation means that the sender sends one or more application control messages to configure different nodes in the system.
The application network management system ANMS receives a request to disconnect members of the client group from the session. It checks if the operation and sender are authorized and disconnects from members of the client group or sends an error message back to the sender. Disconnection can mean a negotiation between the application lobby server ALS and the application network management system ANMS.
Disconnection usually means that all affected nodes in the application network have been notified that a client has been disconnected.
SEND MESSAGE TO MEMBERS
Operation: Send_message (sender, recipient, parameters)
The sender is a client or client group, which is the source of the message. The recipient is a client or client group. All members of the recipient receive a copy of the message. The sender does not have to know the member list for each client group. The parameters further specify priority, security class, network service etc.
The operation means that the sender sends one or more data units to different nodes in the system.
520 129
The application routers AR rout the data unit according to the recipient address.
The routers in the communication network 2 (eg IP routers) optionally route the data unit according to the IP addressing.
Clients and the application content generator ACG optionally receive the data unit according to the recipient address.
GET INFORMATION ABOUT A CLIENT GROUP
Operation: Get_customer group information (sender, target, parameters)
The sender is a client or client group requesting information about the target. The goal is a client group. The parameters further specify the requested information.
The operation means that the sender sends one or more data units to different nodes in the system.
A) The client group manager CGH optionally responds to the request by sending appropriate records from the client group database DB 1 to the sender. Application session name server ASNS answers questions about client group identifiers in accordance with Ref. SE - .. {Name Server}
B) Members of the client group answer freely, e.g. by confirming their membership.
SPECIAL CLIENT GROUP OPERATIONS IN THE APPLICATION NETWORK 1 TO SET MEMBERSHIP PROTECTION MODE
520 129
Operation: Membership protection mode (sender, target, master, parameters)
The sender is a client or client group. The goal is a client group. The master is a client or client group. The parameters specify the choice of protection mode. Normally, there is a parameter that describes the selected mode, e.g. open or closed.
The operation means that the sender sends one or more data units to different nodes in the system.
The client group manager CGH responds to the operation by setting the appropriate attribute in the client group database. The master is added to the master group in the client group.
SET EVENT DISTRIBUTION MODE
Operation: Event Distribution Mode (Sender, Target, Parameters)
The sender is a client or client group. The goal is a client group. The parameters specify the choice of event distribution mode. Normally, there is a parameter that describes the selected mode, e.g. elaborate or silent.
The operation means that the sender sends one or more data units to different nodes in the system.
The client group manager CGH responds to the operation by setting the appropriate attribute in the client group database. Client group status modifications, such as members joining and leaving, are sent in accordance with event distribution mode.
NAMES AND ALIAS OPERATIONS
520 129
Application session name server ASNS responds to client operations name operations described in ref SE -... {Name Server}. The name server for the client groups can optionally be merged with the client group manager CGH.
TO SET CLOSING CONDITIONS
Operation: Termination conditions (sender, target, parameters)
The sender is a client or client group. The goal is a client group. The parameters specify the choice of termination conditions.
The termination conditions for a client group can optionally be set in the client profile 8. The termination conditions can also be set dynamically by an operation that sends a message to the client group manager CGH with the request to set a new termination condition. The client group manager CGH responds by either accepting or rejecting the request depending on whether the requesting client is authorized. The operation means that the sender sends one or more data units to different nodes in the system.
The client group manager CGH will now monitor if the closing condition is met. If the closing condition is met, the client group is removed in accordance with the Ta_bort_ client group operation.
MEMBERSHIP SINFORMATION
Operation: Download Parents (target)
Operation: Download Child (group)
A client or client group can use the operations to request information from the client group manager CGH. CGH SV by sending a list of all client groups where the target is a member and a list of all members of the group.
520 129 ;
OPERATIONS RELATING TO THE Hierarchical
CLIENT GROUPS
The Go_med_i_client group and the Go_ur_ client group operations can support the construction of client group hierarchies. The client group manager CGH can optionally accept that a client group joins a client group. As a special case, clients can only be allowed to join client groups. If hierarchical client groups are allowed, the client group manager CGH can respond to the following requests:
Operation: DownloadFathers (target)
The client group manager CGH returns a list of all ancestors to the target.
Operation: Download Descendants (Target)
The client group manager CGH returns a list of all descendants to the target.
SUPER CLIENTS
A special solution for managing authorization to perform client group operations is to designate certain clients as super clients. This can be done via a "client status" parameter in the client profile or alternatively via an API command.
The client group manager CGH can optionally keep a client status register. The application router AR can optionally keep client status records and ensure that client status is flagged correctly in client group operation messages.
Super clients would have the right to perform all client group operations on all groups. They can thus be assumed to be the owners and masters of all client groups.
520 129
CLIENT GROUP ALL
An application network can optionally always have a default client group that includes all clients in the session.
CUSTOMER GROUP MANAGER DETAILS CGH
The client group manager CGH communicates with clients, ACG, AR, AS during the session. The application network management system ANMS and any application lobby server ALS can configure the client group manager CGH when a session is initialized. For example, ANMS can process the session profile and appropriate client profiles and set up initial client groups in the client group manager CGH using the client group operations described above.
ARCHITECTURE DESIGN
FIG. 3 shows an embodiment of a client group manager CGH. Datagrams containing operations and requesting coding in accordance with application transport protocol (eg GTP in ref PCT / SE00 / 00932) and possibly transported by a communication protocol (eg TCP / IP) are received by Network Interface and Protocol Manager 20. This device 20 sends the client group manager's CGH operations (see above) to the Authorization Manager 21. The authorization manager checks if the operation is allowed using information from the client group database CGDB 22. Rejected operations are sent to the error manager 23. The error manager 23 sends messages about the error to suitable clients and client groups, as described above. Authorized operations are sent from the authorization manager 21 to the operations manager 24. This unit 24 processes client group operations as described in this document. Data on client group members and attributes is retrieved from client group database 22 as needed. Content of
520 129 client group database 22 can be modified as a result of the operations described in this document.
CLIENT GROUP DATABASE (CGDB) 22
The client group database CGDB includes a session database for each session 13.1 The session database contains a client group record for each client group. The client group record can consist of the following fields:
1st Klientgruppsidentifierare
2nd A list of members
3rd An optional list of parents
4th An optional list of ancestors
5th An optional list of descendants
6th An optional list of owners
7th An optional list of masters
Eighth An optional list according to the section 'client group attribute'
Lists of clients in the client group record may have flags that show whether a listed item is a client or client group. The list can use all formats for client and client group identification.
Examples of advantageous use of the invention
EFFECTIVE MULTICASTING OF APPLICATION DATA
Suppose we have a voice chat application where the virtual world consists of several meeting rooms. Users control avatars and choose a meeting room where the avatar stops. The user speaks in a microphone that causes the corresponding application client to send a voice channel over the application network.
520 129
All clients who enter a meeting room join a client group that corresponds to the meeting room. The client group identifier is a multicast address in the application transport protocol. Clients send each voice packet with an application tag that is the client group identifier. The application routers are configured to multicast all data units that transport a client group identifier to the members of the client group. This means that the voice channels are effectively multicast to the clients who are in the same meeting room.
SECURITY THAT ALLOWS PRIVATE COMMUNICATION
A group of users want to use a meeting room in the virtual world for a private meeting. No newcomer should be able to listen to the conversation in the meeting room without being invited. The application provides a set of free meeting rooms that are available on request for private meetings. A client is a chat manager and assigns private meeting rooms upon request.
A private meeting room corresponds to a client group with protection mode closed. An empty room has the chat manager as the only member of the client group's master group. A group of clients decides that the group members want to use a private room. They elect a chairman. The chairman asks the chat manager for a private room. The chat manager selects an empty private room and invites the chair to the master group. The chairman joins and invites the other group members. All members join. They are now all in the private room and have a secret conversation. A new client enters the room. He can see the other clients but not listen to the conversation, as he is not a member of the client group that corresponds to the private meeting room. It is not possible for the new client to join the closed group directly.
520 129
The new client can ask the chairman for an invitation to join the group. If the chairman decides to invite, the new client can join the group.
Managing enduring roles in a multi-player, enduring game
The virtual world of a large multiplayer game consists of several countries. Each country has a general who leads the army. The army consists of players who are currently playing the game as soldiers. The general is always needed to make military decisions and to deal with a variety of critical objects in the virtual world including a treasure chest, a magic sword and the key to the dragon caves. The game goes on day and night, but no human player can play the general all the time The role of general must be switched between multiple players.
The general is represented by a special client group (a pseudo-client) who is the source (owner) of game data and has exactly one member at any given moment. The central content server is always part of the "general" master group and the client who plays the role of general is a member of the master group and the only member of the client group. As the only member of the client group, he can handle items owned by the "general". He can take money from the treasure, swing the magic sword and even open the door to the dragon cave. When the player leaves the game, he leaves the client group "general". The content server or player leaving may invite a new player to take on the role of general.
MANAGING SHARED APPLICATION DATA
Four players fly fighter planes in a simulated air war. They are all in the same team. The simulation includes a radio communication system from others
520 129 World War II, where all players use the same channel simultaneously to shout things like "Bandits at four o'clock!"
The four players form a client group that owns a "multicast channel", ie. a current object in accordance with Ref. PCT / SE00 / 00,932th The collectively owned channel consists of data units with a specific tag that identifies the channel. Any member of the client group can broadcast on the channel at any time and they all subscribe to the channel. Voice mixing is performed locally in each player's machine.
DISTRIBUTING INFORMATION ON STATUS FOR
THE CLIENT GROUP MEMBERS
A virtual exhibition consists of a simulated exhibition hall where companies show their products in booths. Visitors walk around and enter the stands they are interested in. People who work for the various companies receive an alarm signal on the mobile phone as soon as someone enters their booth. A representative of the company then arrives at the stand and meets the customer.
Each booth is a client group. A visitor who enters the booth becomes a member of the client group. A computer application in the mobile phone subscribes to the client group status. The client group manager CGH sends a message to the mobile phone every time the number of members goes from zero to a positive number. This message triggers an alarm in the mobile phone.
Those skilled in the art will recognize that the present invention is not limited to the embodiments shown in the accompanying figures and the foregoing detailed description, which are presented by way of illustration only, but may be implemented in a number of ways, and defined by the following claims.
520 129
APPENDIX
A brief description of IP multicasting
IP multicasting is a method of distributing data to multiple users in a network. Data is only delivered to a selected group called the host group. This group is defined by a multicast address. The source sends a copy of the data to the multicast address. The network takes care of duplicating data as needed and delivering it to all members of the host group. Network resources are preserved because data is copied only at branch points where it is strictly necessary. Multicasting is thus economical and scalable.
Unicasting, where the source sends a copy of data to each user, is wasted with network bandwidth and server resources. With broadcasting, each host captures data even if it is intended only for a small group. The concept of IP multicasting is shown in FIG. 4.
ISPs have been reluctant to utilize multicasting due to differences in governance and charging of the use of network resources. A multicast packet, which comes from one ISP domain to another, can cause an explosion of traffic when the packet is duplicated in downstream branches. Such explosions cannot be predicted as there is no central node that keeps the host group in order. End users who are charged a unit charge do not pay extra to receive multicast traffic. Thus, it will be much easier to use IP multicasting if each subscriber's network usage can be monitored.
520 129
Patent Application. No. 0003927-1
2002-11-21
Contents34
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
17 members in 10 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 0003927 | Sweden | A | |
| SE20000003927 | – | – | – |
Members17
| Document | Office | Kind | |
|---|---|---|---|
| SE0003927D0 | Sweden | D0 | |
| SE0003927L | Sweden | L | |
| WO0235769A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU9618601A | Australia | A | |
| NO20031870D0 | Norway | D0 | |
| SE520129C2This record | Sweden | C2 | |
| NO20031870L | Norway | L | |
| EP1334584A1 | European Patent Office (EPO) | A1 | |
| KR20030079923A | Republic of Korea | A | |
| IL155478A0 | Israel | A0 | |
| IL155478D0 | Israel | D0 | |
| CN1471774A | China | A | |
| US2004030787A1 | United States of America | A1 | |
| JP2004512767A | Japan | A | |
| CN1231016C | China | C | |
| AU2001296186B2 | Australia | B2 | |
| JP3927908B2 | Japan | B2 |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Patent has lapsedLapsedNUG | NUG |
Numbers
- Publication, DOCDB
- 520129
- Publication, EPODOC
- SE520129
- Application
- 3927
- Application, DOCDB
- 0003927
- Application, EPODOC
- SE20000003927
Titles2
- Swedish
- Kommunikationsinfrastrukturanordning i och en datorläsbar programprodukt för ett databearbetningssystem för fleranvändarapplikationer
- English
- Communication infrastructure device in and a computer-readable software product for a multi-user application data processing system
Classification
- CPC, 4
- H04L12/1813
- H04L12/185
- H04L67/131
- H04L9/40
- IPC, 3
- H04L12 18
- H04L29 06
- H04L12 56