WO1999066429A1 - Reseau d'environnement virtuel - Google Patents
Reseau d'environnement virtuel Download PDFInfo
- Publication number
- WO1999066429A1 WO1999066429A1 PCT/US1999/013829 US9913829W WO9966429A1 WO 1999066429 A1 WO1999066429 A1 WO 1999066429A1 US 9913829 W US9913829 W US 9913829W WO 9966429 A1 WO9966429 A1 WO 9966429A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- distributed database
- network
- server
- hierarchical distributed
- database
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/282—Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Definitions
- the invention relates generally to networks of computers and, in particular, to distributing and maintaining a database over a network which is able to be accessed by millions of clients simultaneously.
- network applications are designed to communicate using either client-server interaction or peer-to-peer interaction.
- client-server interaction in general provides a possibility for high reliability and accessibility, the client-server interaction can not be scaled to serve large numbers of users on the order of more than a million.
- Problems with scalability of the client-server interaction can conventionally be partially fixed by applying replication of the server's database. Replication, however, can lead to data inconsistency among the replicated services.
- Data inconsistencies on the replicated server are conventionally addressed by using a method to prevent data inconsistency or using a method to resolve the data inconsistency.
- a method to prevent data inconsistency typically involves locking, which takes time to execute, permits only one client to access the locked data, and can cause dead locks.
- the client determines that to fulfill the user's command, the client needs to update a common data state of the sever. To ensure no one else can change the common data state of the server while the client is accessing it, the client requests a lock on the data from the server. If the data is not already locked by someone else, the server locks the data and sends out a message to the client stating the client and only the client can now change the data. If the data is already locked, the client must wait for the lock to be released. Once the server acknowledges that the data is locked for exclusive use by the client, the client sends the modification for the data to the server. The server sends the changed data back to the client. Finally, the client sends a lock release message to the server.
- Locking is time consuming and limits the number of clients that can modify the data at any one time to one in a real-time environment. This is unacceptable because it provides a finite number of maximum clients, which is determined by: (the average time to modify data)*(the maximum number of modifications need per timeslot)/(the minimum time slot size for real-time performance).
- Locking can also cause deadlocks.
- client A locks data A and then determines that it needs data B.
- Client B at the same time locks data B and then determines that it needs data A to continue. Both clients A and B end up waiting forever, unless some deadlocking prevention is added.
- Deadlocking prevention is time consuming and affects real-time performance.
- the conventional methods to prevent data inconsistency can not be used in a real-time environment because of the disruption that the deadlocks cause to the client-server interaction.
- resolving data inconsistency typically uses transaction time stamps.
- Such a method results in lengthy rollbacks of the client-server interactions causing a break in the real-time environment and possibly overloading the system if too many rollbacks occur.
- the rollbacks cause unacceptable behavior in a virtual environment as experienced by the affected users. For example, a user walks through a door in a virtual environment, and the user's client determines that the door is open, but later finds out that the door was locked by another user just before the user walked through the door. The client and server then need to drag the user back out of the room just entered because the user's being in the room does not consist with what other users presume to be accurate for the virtual environment. Hence, in the user's view of the virtual environment, events will be abstract when the user is bounced back through the door.
- networked applications can be designed to communicate using peer-to-peer interaction.
- Peer-to-peer interaction creates problems with controlling ownership and maintaining continuous data states when the users of the networked application log off.
- peer-to-peer interaction also has problems with being scalable similar to that of the client-server interaction as discussed above.
- Distributed database refers to a database maintained and distributed over a plurality of computers connected via a network.
- Hierarchical distributed database refers to a distributed database having a hierarchical arrangement to its distribution.
- Network refers to a system of connected computers. Non-limiting examples of a network include: a local area network ("LAN”); a wide area network; a broad band network, such as the network connecting automatic teller machines (“ATMs"); and the Internet.
- LAN local area network
- ATMs automatic teller machines
- “Client” refers to a computer application running on one or more computers and accessing a network.
- Server refers to a computer for controlling interactions on a network.
- Virtual environment refers to a three-dimensional graphics computer application, a virtual reality computer application, or a virtual computer environment.
- “User” refers to a human interacting with a computer.
- “Computer” refers to a computer, a general purpose computer, an interactive television, a hybrid combination of a computer and an interactive television, and any apparatus comprising a processing unit, memory, the capability to receive input, and the capability to generate output.
- One or more computers connected with a network can maintain a virtual environment accessible by one or more clients. It is an object of the invention to provide a distributed database for access by many users in real-time, where the distributed database is both scalable and hierarchical.
- Another object of the invention is to provide a network and a server for maintaining a distributed database.
- a further object of the invention is to maintain a virtual environment over a network using a distributed database.
- Yet another object of the invention is to provide a distributed database accessible by many users via a network.
- An additional object of the invention is to provide a system for maintaining a virtual environment using a network of servers that not only distributes the load of the virtual environment among the servers but also keeps the cohesion of the virtual environment as high as possible.
- Still another object of the present invention is to provide a network that is scalable to accommodate an expanding hierarchical distributed database.
- the apparatus of the invention includes a network for maintaining a hierarchical distributed database comprising: a plurality of servers connected to the network, each server comprising a partitionable relational database; and a plurality of clients connected to the network, each client accessing the hierarchical distributed database; wherein the hierarchical distributed database comprises the partitionable relational databases of the plurality of servers, the partitionable relational databases being arranged hierarchically; wherein each client accesses the hierarchical distributed database by connecting to one of the servers; and wherein each client can access the hierarchical distributed database without waiting for another client to finish accessing the hierarchical distributed database.
- the apparatus of the invention also includes a server connected to a network, the network comprising: a hierarchical distributed database, the hierarchical distributed database being distributed over the network and arranged hierarchically; and the server comprising a partitionable relational database comprising a data table, the partitionable relational database being connected hierarchically to the hierarchical distributed database, the data table comprising at least one key-value pair comprising a key data structure and a value data structure, each value data structure comprising a data structure or a link for linking to the hierarchical distributed database hierarchically arranged below the partitionable relational database.
- the method of the invention includes a method for maintaining over a network a hierarchical distributed database having a plurality of partitionable relational databases, comprising the steps of: providing a plurality of servers and a plurality of clients; arranging the partitionable relational databases of hierarchical distributed database in a hierarchy; assigning each of the partitionable relational databases of hierarchical distributed database to the plurality of servers; and permitting simultaneous access to the hierarchical distributed database by the plurality of clients.
- Figure 1 illustrates the components of a server for the invention.
- Figure 2 illustrates a partitionable relational database for the server illustrated in Figure 1.
- Figure 3 illustrates an example of a partitionable relational database using the invention.
- Figure 4 illustrates the functionality of the server executable kernel of Figure 1.
- Figure 5 illustrates a hierarchical distributed database with two levels of servers, namely top level servers and second level servers.
- Figure 6 illustrates server connections for the hierarchical distributed database of Figure 5.
- Figure 7 illustrates alternative server connections for the hierarchical distributed database of Figure 5.
- Figure 8 illustrates server connections for the hierarchical distributed database of the invention.
- a hierarchical distributed database is maintained over a network comprising clients and servers.
- the hierarchical distributed database is scalable and is able to support a virtual environment simultaneously accessible in real-time by a plurality of clients.
- a client in the network interacts only with a set of related data.
- the relation can be on any scale.
- one server can maintain a database of rooms in a building, and additional servers can maintain things in the rooms in the building, and so on.
- This configuration both distributes the load of the database and keeps the total network load of a single transaction limited to only a fraction of the network.
- the clients can view the part of the database that is relevant to them and only that part, thus making the system scalable.
- the network of the invention is expandable to serve an ever increasing hierarchical distributed database, such as a virtual environment, by increasing the size of the network.
- a server 1 for the invention is illustrated and comprises several components.
- the multicast data transmission protocol 2 of the server 1 provides for transmitting data over the network to the hierarchical distributed database and receiving data over the network from the hierarchical distributed database.
- the multicast data transmission protocol minimizes network traffic of transactions and data streams.
- a client requests to be updated on changes to a particular data, the client will be registered as a receiver of the particular data.
- data changes rapidly, and a client must continually request the data by, for example, reading or polling the data.
- a client can simply register for updates on the changes to the data.
- a state change in the virtual environment is distributed in a single event, like a selective broadcast, over the network to the client who has requested the information. For example, if two clients on server 2 have requested information on the change in data on server 1 , server 1 only needs to send the requested data to server 2, and server 2 then forwards the data to the two clients on server 2.
- This feature of the invention advantageously decreases traffic on the network when there are many clients.
- the partitionable relational database 3 is a component of the hierarchical distributed database assigned to the server 1.
- the partitionable relational database 3 of the server 1 is stored in the memory of the computer comprising the server 1.
- the partitionable relational database 3 of server 1 of Figure 1 comprises at least one table.
- the at least one table comprises a root data table 10 and zero or more additional data tables 11.
- the root data table 10 and the data tables 11 each comprise an ordered list of one or more key- valued pairs.
- the key 12 of the key- value pair functions as an address for the key-value pair.
- the value 13 of the key- value pair can be any type of data structure.
- Examples of the value 13 include: a web page for an Internet site; a file written in the hypertext markup language ("HTML"), the virtual reality markup language (“VRML”), or VRML2; a virtual environment description; a user description; an avatar description; an avatar position; a binary data file; text; and a numerical value.
- “Avatar” refers to the representation of a user within a virtual environment.
- the value 13 of the key- value pair can also be a link for linking, or a pointer for pointing, to a table located on the same server or located anywhere in the network.
- Figure 3 illustrates an example of a partitionable relational database using the invention. The various connections between the tables of the database are illustrated. For example, the table "Info stored on server" has a link to the table "Users and Info.”
- the authentication system 4 of the server 1 in Figure 1 authenticates data transmissions received by the server 1 over the network.
- the authentication system 4 is connection based and, as such, the client is authenticated when first connecting to the network.
- the client then has an authentication key it uses throughout the session on the network.
- the authentication key is used, for example, when connecting to another server in the network.
- the authentication key maps the client to its client information on the server, which can then confirm who the client is and use this client information for access control.
- the distributed access control system 5 of the server 1 provides for accessing the hierarchical distributed database on the network by securing ownership and access to data contained within the hierarchical distributed database. Every access to any data, such as tables and key-value pairs, can be restricted to, for example, read, modify, delete, and administrator. For all data, access can be granted or denied by default, and an access table lists those clients with default access. An access table is a list of clients or groups of clients who have been granted or denied a specific type of access to the respective data.
- a client requesting to perform actions on a data, such as read or modify is validated for access according to the default of the access table. Once validation is completed, information about the validation is added to the authentication key of the client.
- the distributed atomic transaction interface 6 of the server 1 provides for interfacing with the network and enables the real-time interaction with the hierarchical distributed database.
- An atomic transaction is a transaction that is performed in a single step. For example, for the atomic transaction of a client command to modify a data entity, the server responds positively or negatively after performing the action in a single step, without performing other actions at the same time. This feature of the invention prevents locking, which occurs in conventional networks.
- the distributed atomic transaction interface 6 includes support for security.
- the server executable kernel 7 of the server 1 is a program running on the computer of the server 1 for overseeing the operations of the server 1.
- the kernel 7 is responsible for overseeing the multicasting, routing, and connections of the server 1 to clients and to other servers and for maintaining the partitionable relational database 3 of the server 1.
- Figure 4 illustrates the functionality of the kernel 7 within the server 1.
- Figure 5 illustrates the hierarchical distributed database of the invention.
- the hierarchical distributed database of Figure 5 has two layers, a top layer for top level servers and a second layer for second level servers.
- the top layer is shown with one top level server, and the second layer is show with two second level servers.
- the top level server in Figure 5 has two tables, a "Users and info” table and a "regions handled by network” table.
- the second level server on the right side of Figure 5 has three tables, a "Users on server” table, a "Region 1" table, and a "Users in region” table.
- the second level server on the left side of Figure 5 has five tables, a "Users on server” table, a
- the hierarchical distributed database of the invention is arranged in a hierarchical fashion. Further, the hierarchical distributed database of the invention is distributed and maintained on a plurality of servers.
- Figure 6 illustrates an abstracted view of the relationship between the servers and the connections in Figure 5.
- the two second level servers, Server 2 and Server 3 are connected to the top level server, Server 1.
- the entry point for a client to access the hierarchical distributed database is through the top level server, Server 1, and then down the database to either Server 2 or Server 3, depending on the services and information needed.
- Figure 7 illustrates an alternative to the relationship shown in Figure 6.
- Server 3 is connected to Server 2, and not to Server 1 , as in Figure 6.
- Figure 8 illustrates an alternative to the relationship shown in Figures 6 and 7.
- the servers in Figure 8 are no longer arranged in a hierarchical fashion.
- the distributed database in Figure 8 is still hierarchical.
- top level servers are the entry points by which clients can access the hierarchical distributed database.
- a client After entering the hierarchical database via a top level server, a client can logically "walk down" the structure of the database to access information relevant to the client's processing needs.
- the top level servers are designated as the servers located close to the tables needed by clients.
- the internal representation of the database in the client is not restricted to being hierarchical.
- the internal representation maintained by the client of the hierarchical distributed database maintained by the servers can be any internal representation based on the client's needs or on the construction of the client's databases.
- a server in the network only needs to be connected to the servers in the network that have tables to which the tables in the server have links.
- a limitless network can be created by logically arranging the tables of the hierarchical distributed database such that no single table is larger than one server can handle and by connecting the clients to the top level servers.
- the hierarchical distributed database is scalable and can support a few clients, over a million clients, and up to a limitless number of clients.
- a real-time virtual environment can be created for simultaneous real-time access by a few clients, by over a million clients, by millions of clients, and up to a limitless number of clients.
- Each user of the virtual environment has a client for accessing the hierarchical distributed database of the invention. Further, with the invention, real-time interaction between users in the virtual environment occurs.
- a single server can be accessed by multiple clients, and a single server can maintain a state within the virtual environment.
- a single server can maintain a state within the virtual environment.
- many users represented by avatars can interact within a room of a virtual environment.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
L'invention concerne un réseau connectant des clients et des serveurs de manière à maintenir une base de données à répartition hiérarchique. On configure la base de données à répartition hiérarchique en utilisant des bases de données relationnelles pouvant être segmentées, chacune de ces bases de données pouvant être attribuée à un serveur du réseau. Grâce à la base de données à répartition hiérarchique, on peut créer un environnement virtuel permettant un accès simultané à des millions de clients.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU46958/99A AU4695899A (en) | 1998-06-19 | 1999-06-18 | Network for a virtual environment |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US9995498A | 1998-06-19 | 1998-06-19 | |
US09/099,954 | 1998-06-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1999066429A1 true WO1999066429A1 (fr) | 1999-12-23 |
Family
ID=22277401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1999/013829 WO1999066429A1 (fr) | 1998-06-19 | 1999-06-18 | Reseau d'environnement virtuel |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU4695899A (fr) |
WO (1) | WO1999066429A1 (fr) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001067787A2 (fr) * | 2000-03-03 | 2001-09-13 | Qualcomm Incorporated | Procede et appareil pour participer a des services de communication de groupe dans un systeme de communication existant |
WO2002001414A2 (fr) * | 2000-06-12 | 2002-01-03 | Reliable Network Solutions | Systeme de traitement de donnees d'un reseau informatique reparti |
WO2004013753A2 (fr) * | 2002-07-26 | 2004-02-12 | Peter Herold | Dispositif et procede de traitement de donnees pour un acces multi-utilisateur interactif a de grandes quantites de donnees |
US7890129B2 (en) | 2001-05-15 | 2011-02-15 | Eric Rosen | Method and apparatus for delivering information to an idle mobile station in a group communication network |
US8542091B2 (en) | 2007-04-26 | 2013-09-24 | Hitachi, Ltd. | Control of transmitter peak power and duty ratio in a wireless system to maintain average transmitter power and increase communication range |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998020430A1 (fr) * | 1996-11-01 | 1998-05-14 | Peerdirect Inc. | Systeme de base de donnees reparties independante |
-
1999
- 1999-06-18 WO PCT/US1999/013829 patent/WO1999066429A1/fr active Application Filing
- 1999-06-18 AU AU46958/99A patent/AU4695899A/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998020430A1 (fr) * | 1996-11-01 | 1998-05-14 | Peerdirect Inc. | Systeme de base de donnees reparties independante |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001067787A2 (fr) * | 2000-03-03 | 2001-09-13 | Qualcomm Incorporated | Procede et appareil pour participer a des services de communication de groupe dans un systeme de communication existant |
WO2001067787A3 (fr) * | 2000-03-03 | 2003-03-06 | Qualcomm Inc | Procede et appareil pour participer a des services de communication de groupe dans un systeme de communication existant |
US6928294B2 (en) | 2000-03-03 | 2005-08-09 | Qualcomm, Incorporated | Method and apparatus for enabling group communication services in an existing communication system |
CN100448316C (zh) * | 2000-03-03 | 2008-12-31 | 高通股份有限公司 | 在现有的通信系统中参与小组通信服务的方法和设备 |
WO2002001414A2 (fr) * | 2000-06-12 | 2002-01-03 | Reliable Network Solutions | Systeme de traitement de donnees d'un reseau informatique reparti |
WO2002001414A3 (fr) * | 2000-06-12 | 2003-11-20 | Reliable Network Solutions | Systeme de traitement de donnees d'un reseau informatique reparti |
US7890129B2 (en) | 2001-05-15 | 2011-02-15 | Eric Rosen | Method and apparatus for delivering information to an idle mobile station in a group communication network |
US8359053B2 (en) | 2001-05-15 | 2013-01-22 | Qualcomm Incorporated | Method and apparatus for delivering information to an idle mobile station in a group communication network |
US8644873B2 (en) | 2001-05-15 | 2014-02-04 | Qualcomm Incorporated | Method and apparatus for delivering information to an idle mobile station in a group communication network |
WO2004013753A2 (fr) * | 2002-07-26 | 2004-02-12 | Peter Herold | Dispositif et procede de traitement de donnees pour un acces multi-utilisateur interactif a de grandes quantites de donnees |
WO2004013753A3 (fr) * | 2002-07-26 | 2004-08-26 | Peter Herold | Dispositif et procede de traitement de donnees pour un acces multi-utilisateur interactif a de grandes quantites de donnees |
US8542091B2 (en) | 2007-04-26 | 2013-09-24 | Hitachi, Ltd. | Control of transmitter peak power and duty ratio in a wireless system to maintain average transmitter power and increase communication range |
Also Published As
Publication number | Publication date |
---|---|
AU4695899A (en) | 2000-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6826606B2 (en) | Method and apparatus for communicating among a network of servers | |
US6785726B1 (en) | Method and apparatus for delivering local and remote server events in a similar fashion | |
US6922724B1 (en) | Method and apparatus for managing server load | |
US9807097B1 (en) | System for managing access to protected resources | |
US6789112B1 (en) | Method and apparatus for administering a server having a subsystem in communication with an event channel | |
US7925751B1 (en) | Mechanism for controlled sharing of files in a clustered application environment | |
EP1141828B1 (fr) | Appareil et procede de determination d'un voisinage de programme pour un noeud client dans un reseau client-serveur | |
EP1785858B1 (fr) | Arbitrage d'un serveur dorsal approprié pour recevoir des canaux d'une session client | |
US6973455B1 (en) | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator | |
US20050166260A1 (en) | Distributed policy enforcement using a distributed directory | |
EP1755041A2 (fr) | Procédés pour l'exécution de programmes distribués avec association de type fichier dans un réseau client-serveur | |
US20050240622A1 (en) | Multi-connection control system | |
US20050050319A1 (en) | License control for web applications | |
Craft | Resource management in a decentralized system | |
Burns | Data management in a distributed file system for Storage Area Networks | |
US20040024766A1 (en) | System for distributing files and transmitting/receiving distributed files | |
WO1999066429A1 (fr) | Reseau d'environnement virtuel | |
US20030105871A1 (en) | Method and system for modifying lock properties in a distributed environment | |
ord Neuman | Scale in distributed systems | |
Hemmes et al. | Cacheable decentralized groups for grid resource access control | |
EP1297412B1 (fr) | Systeme et procede d'envoi de donnees operationnelles dans un reseau de serveurs | |
Van Steen | Distributed systems principles and paradigms | |
AU2001257513B2 (en) | A system and method for directing runtime data in a server network | |
EP1411429A2 (fr) | Appareil et méthode pour déterminer un voisinage de programme pour un noeud client au sein d'un réseau client-serveur | |
Bomer et al. | Long energy efficient Huffman sequences |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU CA JP |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
122 | Ep: pct application non-entry in european phase |