WO2002015500A2 - System and method for messaging - Google Patents

System and method for messaging Download PDF

Info

Publication number
WO2002015500A2
WO2002015500A2 PCT/GB2001/003647 GB0103647W WO0215500A2 WO 2002015500 A2 WO2002015500 A2 WO 2002015500A2 GB 0103647 W GB0103647 W GB 0103647W WO 0215500 A2 WO0215500 A2 WO 0215500A2
Authority
WO
WIPO (PCT)
Prior art keywords
message
user
client
server
messages
Prior art date
Application number
PCT/GB2001/003647
Other languages
French (fr)
Other versions
WO2002015500A3 (en
Inventor
Nicholas Allan Morris Davies
Antony Green
Derek Moore
Mark Snelling
Warrick Buchanan
Shashi Patel
Phil Latham
Mark Griffiths
Original Assignee
Co3I Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Co3I Limited filed Critical Co3I Limited
Priority to AU2001278608A priority Critical patent/AU2001278608A1/en
Publication of WO2002015500A2 publication Critical patent/WO2002015500A2/en
Publication of WO2002015500A3 publication Critical patent/WO2002015500A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1822Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8011Ball

Definitions

  • the present invention relates to a message system.
  • Preferred embodiments of the invention relate to a communication and/or an amusement system.
  • aspects of the invention relate to a system that enables people to communicate, interact and play games at various sites, interconnected, for example, by a computer network, for example the Internet.
  • chat rooms A large amount of traffic handled by the Internet today arises from so-called "chat rooms" in which geographically remote users can exchange text messages and other data in close to real time.
  • a limitation of conventional chat rooms is that a user must typically access each room by directing their browser to a web page at a specific URL.
  • the page contains a first portion that generates the framework within which the chat room is displayed and an active portion that generates content on the fly to reflect messages that are posted to the chat room.
  • when a user wishes to participate in an alternative chat room they must direct their browser to an alternative location which means that they either loose contact with the first chat room, or they must open a new browser instance, which may be disadvantageous if their computer has limited resources or their display is small. This also imposes restrictions upon the control that a service provider can exercise over the framework, thereby limiting the range of content that can be presented.
  • a first aim of this invention is to provide a system for relaying messages between a plurality of users that offers greater versatility than does a conventional chat room.
  • the invention provides a system for relaying messages between a plurality of users which system includes a message server and a plurality of message clients that can exchange messages with the message server.
  • a particular advantage of this system is that it separates that the clients communicate directly with the server, thereby removing the need to use a web browser to retrieve a page located at a fixed URL.
  • each client can cooperate with a host application (most particularly, a web browser) to generate a display for a user.
  • a host application most particularly, a web browser
  • the client may be a plug-in or an object (an ActiveX control) that can be used by a web browser to generate part of a display of a web page.
  • an ActiveX control an ActiveX control
  • This allows a service provider to build a web page that includes a framework of their choice, while message processing and display are handled by the client. It will also be understood that any number of web pages at different URLs can access the message content, whereby the framework content is generated independently of the message content.
  • the client may execute on a games console, a digital television receiver, or on many other types of computer hardware that is capable of displaying a graphical image to a user.
  • the client may be embedded in an application such as game software.
  • game software This permits information (messages) to be exchanged between applications being executed by users over a network system, for example, in order that multiple players can contribute to a single game.
  • the game software may allow a user to participate in a multi-player game.
  • a message may be constituted by any discrete unit of data to be transferred form one computer system to another.
  • a message may contain a portion of text that is to be displayed as a user's utterance in a chat room; it may also contain an instruction to one or more components of a computer system, for example, to perform an action, generate a portion of a display, execute an application, for example a game, amongst many other possibilities, but the term is not restricted to these examples.
  • the first aspect of the invention further provides a message server adapted to exchange messages with a plurality of message clients, and further provides a message client adapted to exchange messages with the message server.
  • the message client is adapted to be embedded in a host application.
  • the first aspect of the invention further provides a method of exchanging messages, the method including sending a message from a first message client, receiving the message at a message server and sending a message from the message server to a further message client.
  • the system is adapted to present a display in which each participating user is represented by a graphical entity.
  • the graphical entity may be representative of a person (such a graphical entity being referred to in examples herein as an "avatar").
  • avatar a graphical entity
  • the user can choose the graphical entity by which he is to be represented in the display.
  • the system is adapted to present the user with a choice of avatars.
  • the choice presented varies in dependence upon the URL that a user has referenced in order to access the system.
  • the system can, by offering a list of available avatars, guide the user to choose an avatar which is representative of the URL. For example, if a user has entered a football chat room from the Manchester United website, he is encouraged to use an avatar having the Manchester United kit. Other users who have entered through different team sites are encouraged to choose to be shown in the chat room in different team kits.
  • a further aspect of the invention provides a system for displaying a graphical representation, in which the system is adapted to display a graphical representation according to the user's entry route into the system.
  • the graphical representation may vary depending on the user's entry route into the system.
  • the representation may display advertising areas, and the user may see adverts which depend on their entry route, for example which relate to the host web site. Other users who have taken a different route may see different adverts. Further preferred features are discussed below in respect of method aspects of the invention.
  • the message may be displayed as text close to the graphical entity that represents the user.
  • the text may be displayed as a speech bubble.
  • the system further presents a display that represents the chat room as a virtual space within which the user can interact with other users of the chat room.
  • the space represented may be a three-dimensional space, displayed, for example, in an isometric view.
  • systems that represent a user as an avatar such systems present a representation of a user existing within a ⁇ virtual environment. This feature is of particular importance and is provided independently.
  • a further aspect of the invention provides a system for displaying a graphical representation of a user in a chat room, in which the system is adapted to display the chatroom as a three-dimensional space, and/or in an isometric view.
  • the user can move the graphical representation around relative to the room,, and interact with objects and other users in the room.
  • the room may include a door to another chatroom.
  • a system embodying the invention may include multiple chat rooms, and a user may mover from one chatroom to another.
  • the user can only participate in one chatroom at a time.
  • the system may present a graphical display that allows a user to select a chat room in which to participate.
  • a graphical display may represent a space (preferably a three- dimensional space) through which a graphical representation of a user may move to select a chat room in which to participate.
  • control messages may include messages sent to the client to cause the client to change its display, or messages sent to the server to inform the server of actions carried out by the user.
  • a control message can be sent to the client in order to cause the client to launch an application.
  • the application may be a game.
  • a further aspect of the invention provides a message system comprising a message server and a client server, in which the message client is adapted to launch an application.
  • the message client is embedded in an application or device of a user and the message client is adapted to launch an application from the user's device.
  • the message client may be adapted to launch a game from a games console, a set top box, or a computer, for example.
  • the game may be a multiplatform game having a core of software comprising the game and further software which allows the game to run on any of a number of different platforms. This feature may be provided independently.
  • a system embodying the invention comprises a data store that stores persistent data relating to users of the system.
  • the data store may include data specifying the user's ability to access the system. It may also store information relating to a user's past use of the system. As a particular example, the data store may include data relating to a user's past performance in playing games in association with the system.
  • a system embodying the invention may comprise a plurality of message servers. Servers can be added as needed to handle increasing content and traffic in the system.
  • Such a system typically includes a message router for directing a message to the message server that can handle the message.
  • the message router operates independently of the message client. This can give a user the impression that all messages are handles by a unified system, effectively disguising the presence of multiple servers.
  • the servers may be at geographically diverse locations. This can help to minimise the amount of network traffic that must be conveyed over long distances.
  • Also provided by the invention is a message system comprising a plurality of servers and a message router for directing a message to a server.
  • the message router is adapted to communicate with a message client.
  • Also provided by an aspect of the invention is a method of exchanging messages, the method including sending a message from a first message client, receiving the message at a message server and sending a message from the message server to a further message client.
  • Also provided is a method of operating a chatroom the method including providing a user with a message client, receiving a message from the message client, and sending a message to a further user in response to the message from the message client.
  • a chatroom By operating the chatroom in this way, it is possible for the user to communicate with the message server and with other users communicating with the message server, without going to a URL for the chatroom.
  • the further user may be communicating with the message server using a message client, or may be at a URL for the message server.
  • the invention further provides a method of sending messages to a user comprising sending a message from a message server to a message client.
  • the user is in communication with a first server.
  • the use of the message client does not interfere with the user's communication with the first server.
  • the method further includes providing the user with a message client.
  • the invention provides a method of relaying messages between a plurality of computer users comprising downloading first code from a first server; and downloading message code from a message server.
  • the first code comprises framework code and/or the message code comprises message text.
  • the method further comprises displaying the framework code and/or the message text. This method separates the source of the framework from the source of the messages, thereby increasing the control that a service provider can exercise over the content of the display presented to the user.
  • text is downloaded and displayed from a plurality of message servers. This is in contrast to prior art chat rooms in which the message content and frame content cannot be provided independently.
  • the invention provides a method of exchanging messages in a system comprising a plurality of servers and a message router, the method comprising sending a message from the message router to a first server, sending a routing instruction to the message router, and sending a further message from the message router to a second server.
  • the method is performed by a web browser executing on a user's computer.
  • the first server is typically a web server.
  • the framework code typically includes a document for display by the browser encoded in a mark-up language. Such a document may also include other code such as script code, images, and other items that can be displayed.
  • the task of downloading and displaying messages is preferably handled by client software executing on a user's computer.
  • the client executes within the context of the web browser.
  • the client may be embodied in a plug-in or an ActiveX object.
  • the method may include an initial step of downloading the client from a remote server such as a web server. This enables the method to be executed in a manner that is largely transparent to a user.
  • the method further includes sending a user's message to a message server.
  • this task is handled by client software, and most typically by the client software defined in the last-preceding paragraph.
  • the message text is displayed in association with a graphical object associated with a user.
  • the graphical entity may represent a person (such a graphical entity being referred to as an "avatar").
  • avatar a graphical entity being referred to as an "avatar"
  • the system preferably allows the user to choose an avatar. It is envisaged that the entity displayed may be varied in dependence upon a network address from which the framework code has been retrieved.
  • the invention provides a method of displaying a user in a chat room, comprising displaying a chatroom as a three-dimensional space and/or in an isometric view.
  • the invention also provides a method of displaying a graphical representation, in which the system is adapted to display the graphical representation according to the user's entry route into the system.
  • the framework code may be varied in dependence upon the user's activities. For example, it may be varied in dependence upon the content of messages sent by or received by the user. It may be varied in dependence upon the destination of messages sent by the user or the source of messages received by the user. This can enable the method to generate a framework display that is particularly targeted to the likely interests and requirements of the user.
  • a method embodying these aspects of the invention is typically performed by a system embodying the first aspect of the invention.
  • the invention also provides a method of launching an application, the method comprising sending an instruction from a message server to instruct a message client to launch an application. Also provided by the invention is a message client being a component of a system described herein or for use in a method described herein.
  • the invention provides a message client adapted to send messages to and receive from a message server.
  • the message client is adapted to cooperate with a host application, and is preferably adapted to generate a display, preferably in dependence on the host application.
  • the message client is adapted to generate a graphical representation according to a user's method of access to the message client, preferably the message client is adapted to send information to the message server regarding the user, for example details of the host application.
  • the message client is adapted to launch an application.
  • the invention further provides a host application including a message client as described herein.
  • the invention also provides a message server being a component of the system described herein or adapted for use in a method described herein.
  • the invention further provides a message server adapted to exchange messages with a message client; preferably the message server is adapted to send a message to a message client to launch an application.
  • the message server is adapted to communicate with the message client as described herein.
  • the invention also provides a computer program and a computer program product for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein, and a computer readable medium having stored thereon a program for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein.
  • the invention also provides a signal embodying a computer program for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein, a method of transmitting such a signal, and a computer product having an operating system which supports a computer program for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein.
  • the invention provides a computer adapted to carry out a method described herein and a computer program for carrying out a method described herein.
  • Apparatus features may be applied to method features and vice versa. Any feature of one aspect of the invention may be applied to other aspects of the invention, in any appropriate combination.
  • the invention also provides a method substantially as described herein with reference to Figures 1 to 3 of the accompanying drawings, and apparatus substantially as described herein with reference to and as illustrated in the accompanying drawings.
  • Figure 1 shows an overview of a system of a first embodiment of the invention
  • Figure 2 shows a typical display generated by a client within a web browser
  • Figure 3 illustrates a zone generated by a system embodying the invention being accessed by a plurality of users through various web sites.
  • the present embodiment comprises three main components: a client 10 (that executes on each user's computer), a server 12 and a data store 14. Each client 10 and the server 12 exchange data over a switched network, most typically, the Internet 16.
  • the server 12 is connected to the Internet by a plurality of decoder/routers 20.
  • the client 10 serves as a graphic engine for generating a display for the user.
  • the client 10 presents a view of the virtual space maintained by the system to a user, showing movement, chat and interactions between the user and the virtual environment. All instructions regarding construction of the view are sent as control messages from the server to the client.
  • the client also handles the encrypted protocol used to securely transfer data over the network 16.
  • the client keeps local copies of data in a cache, where possible.
  • the server 12 maintains the state of each chat room and user on the system (for example, where the user is in the virtual space, what the user is saying, whether they are playing a game) as well as storing and retrieving data and media assets.
  • the server and associated components has a dynamically scaling architecture and is composed of multiple instances of four process types, distributed across multiple physical machines.
  • the server components include:
  • Decoders/Routers 20 that decode and route incoming and outgoing data to and from the remote clients using the encrypted protocol and pass data to the system;
  • Persistence Servers that store and retrieve user, landscape and usage data from the data store 14;
  • the data store is used to ensure data persistence.
  • the data store is made up of a distributed network of relational databases.
  • a client 10 connects to the server 12 through the switched network 16 via a local director and the decoder /routers 20.
  • the decoder/routers 20 tasks are primarily to encrypt/decrypt, compress/decompress and route messages.
  • the decoder/routers 20, after deciphering the message, will hand the message to an application server 12.
  • the application server 12 maintains the state for all the rooms that it hosts.
  • the application server 12 in turn has a connection to the data store 14.
  • the data store 14 is used to ensure data persistence.
  • the application server 12 carries out the necessary tasks to fulfill the request for the client and sends it to the decoder/routers 20.
  • the decoder/routers 20 then compresses and encrypts the message and sends it to the client 10. Data is exchanged between the client 10 and the server 12 as messages, encoded in Binary Protocol.
  • the decoder/routers 20 direct messages as they are passed to and from the server 12. As additional content is handled by the system, it is possible to provide additional servers to manage that content, the decoder/routers 20 serving to channel messages to and from the appropriate server. This function of the decoder/routers 20 gives a user the impression of an integrated system; the separate servers need not be apparent. Moreover, the servers can be in geographically diverse locations. If it is discovered that the system is particularly heavily loaded with traffic that originates from a particular geographical area, it is possible to install additional servers in that area to handle such local traffic, thereby reducing the total amount of data that must be transmitted over long distances.
  • a client 10 can be embedded in a web page using the standard syntax for using an ActiveX component.
  • the client 10 can be served from any standard web server. Once running within the web page, the client 10 will communicate with the servers 12 which supply the client 10 with the data that it needs to generate the user display, including for example zone landscape and user data.
  • the client 10 runs on port 80 in order that it can operate across firewall systems and avoid any incompatibility problems.
  • the client requires a screen area of 525 pixels by 295 pixels and has a file size of about 500k. In the present example, it is adapted to run on Internet Explorer 4+ on Windows95 + .
  • the client is served from a website that is powered by content management systems run by the company running the lobby system, and content on the page in which the client is embedded can be changed on the fly, triggered by events in the zone space. For example, if a user enters a football game zone, the embedding web page could change to show football-related news, features or merchandise.
  • a system embodying the invention can be envisaged as a providing a zone comprising an independent 3D virtual environment where people can meet either simply to chat, or arrange online games.
  • the zone includes a game launching capability.
  • a system embodying the invention can implement a virtual space that is made up of multiple, interconnected zones or chat rooms.
  • the virtual space environment can be themed.
  • the client for use in embodiments of the invention is designed as a hardware and operating system agnostic "entrance" into virtual space. It is a 'thin client' which can be embedded in multiple applications simultaneously, typically in web sites and game executables running on PCS, but also digital set top boxes and other devices connected to the Internet.
  • a visitor to the virtual space is represented on a user's display as a customisable 3D avatar 100, shown in Figures 2 and 3.
  • Visitors can move around, interact with objects in the space, "speak" (represented by speech bubbles 102) to other visitors by typing the text in a designated area 104, invite them to join a zone, challenge them at a particular game, and launch games.
  • the display of the zone itself is made up of a main floor surface 110, different furniture 112 and walls 114, link points 116 to other zones and launch points for game executables.
  • the system provides a selection of default objects with which administrators can create zones.
  • the system also allows floors, walls, objects, and avatars to be completely customized or recreated by using standard graphics packages, and imported through a suitable authoring tool to generate bespoke environments.
  • a football related zone might have a floor 210 that looks like a pitch, and avatars 200 dressed up in different football club colours.
  • a Tomb Raider (r.t.m) zone may have Lara Croft (r.t.m) avatars and use textures from the game.
  • Special areas may be provided within zones for sponsors' material to be displayed. Such areas may include floor areas, walls and advertising hoardings 212.
  • E-mail address and name are used to uniquely identify each user. Users can adopt real names should they choose and more than one user with the same real name can exist in the system at once (i.e. there can be more than one 'John Smith', but not with the same e-mail address).
  • Client sends a logon message to the server at a predetermined Internet URL.
  • the message is directed to the nearest geographically located decoder/router.
  • the decoder/router receives the message and checks the header of the message to decide which room the message is being sent to.
  • the decoder/router finds the message queue for the room and sends the message to the message queue with the decoder/router's identifier prepended to the message.
  • the server 20 reads the message from its message queue. It stores the identifier of the decoder/router that sent the message. It then reads the identity of the user who is trying to log on. The user's id is made up of their home server and a unique identifier. The server accesses the session manager at the home server to verify the logon data from the user. If all the logon data is correct the server 12 returns a session identifier (SID), otherwise an error code is returned.
  • SID session identifier
  • the decoder/router 20 returns the SID to the client 10. This SID will then be used for all future communications between the client 10 and the server 12.
  • the system supports all languages that are supported by the PC operating system, providing the visitors with a wide array of accents and symbols (according to the keyboard used).
  • the client's menus can also be localised.
  • GID group identifier
  • the system checks four times per second whether a user is still on-line. At the same time the client transmits, through a secure protocol, to all the other current users details of his or her movements within the space, changes in the virtual landscape etc.
  • a user can move in the virtual space from one room to another.
  • the system must keep track of the user's movements in order that messages for the user are routed correctly. This following describes the messages and responses that take place when a user wishes to move from one room to another. Assume that the user's current location is referred to as LON01_1000 and their desired location as SFO01_2345.
  • the message sender's client sends a message to a predetermined Internet URL.
  • the decoder /router 20 receives the message and determines that it is a move message.
  • the decoder/router 20 finds the message queue for the room SFO01_2345 and sends the message to the message queue with the decoder/router's identifier prepended to the message.
  • the server 12 reads the message from its message queue and stores the identifier of the decoder/router that send the message. It then checks to see if the user can log into the desired location SFO01_2345. If the user is allowed to log into the room then the server 12 will access the session manager at the user's home server, informing it of the new room - SFO01_2345 - for the user and that the user should now be considered as in between rooms (this will ensure that any messages are not sent to the user whilst in transition).
  • the decoder/router 20 can now move the user from the room LON01_1000.
  • the decoder/router finds the message queue for the room LON01_1000 and sends the message to the message queue with the decoder/router's identifier prepended to the message.
  • the server 12 reads the message from its message queue and stores the identifier of the decoder/router that send the message.
  • the server 12 accesses the session manager at the user's home server, informing it that the user is released from the room - LON01_1000.
  • the session manager will now treat the user as residing in room SFO01_2345 .
  • the room LON01_1000 and the room SFO01_2345 may be located on different servers, which may be located remote from each other.
  • the room LON01_1000 may be a chat room about Manchester United and may be located on a server in the UK.
  • SFO01 2345 may be a chat room about the Dallas Cowboys and may be located on a server in the US.
  • the servers may be linked in a private network. Thus the user may effectively move from one server to another by moving from room to room; the handover of servers can be invisible to the user.
  • each space is topic related.
  • a virtual space may relate to football, cinema, and so forth, essentially without restriction.
  • Within each virtual space there is almost no limit to the number of possible zones, each of which can be intended to deal with a specific subject within the theme set by the virtual space: for example, there may be a zone that relates to a specific football team in the football space, and a zone for a popular film within the cinema space.
  • the zones are represented to a user in an isometric 3D view which can be presented from any of four angles. This view is shown in Figures 2 and 3.
  • the user's avatar occupies the centre of the 3D representation of the zone, and can move about the zone by using the keyboard up/down/left/right arrows or the mouse.
  • the visitor always stays in the centre of the screen unless the 'camera' (that is, the hypothetical position from which the view of the zone is generated) is unlocked. By unlocking and moving the camera, users can see into other areas of a zone without their avatar moving.
  • Roaming restrictions can be placed on a zone to restrict a user's freedom to move through the virtual space. For example, such restrictions may prevent a user from moving from one zone to another. Users may also create private zones and restrict entrance into the zone to those whom they have invited. Users can also save a zone, or create a shortcut to an existing one.
  • Each user has a "buddy list” that lists those other users with which he or she wishes to maintain contact.
  • the buddy list enables to system to keeps the user informed as to which of those other users is currently on-line, in which location, and if he or she is playing a game.
  • Users can also send text messages to people on their buddy list; if the recipient is on-line, then the message will be delivered immediately, otherwise it will be stored in a mailbox until the recipient's next login
  • a user can send private messages to any other user that appears in their buddy list.
  • the message sender's client 10 sends a message to a predetermined Internet URL.
  • the decoder/router 20 receives the message and checks the header of the message to decide which chat room the sender us sending the message from.
  • the decoder/router 20 finds the message queue for the chat room and sends the message to the message queue with the decoder/router's identifier prepended to the message.
  • the server 12 reads the message from its message queue. It stores the identifier of the decoder/router 20 that send the message. It then reads the identity (UID) of the intended recipient of the message. Each recipient's UID is made up of their home server and a unique identifier.
  • the core server accesses the session manager at the home server and sends the message and the UID.
  • the session manager is always aware of who is logged onto the system at any time. If the user is not logged on, the message will be stored in the data store 14 where it can be read when the user next logs on. Otherwise, if the user is logged on, then the session manager stores the message in the user's message queue.
  • the client belonging to the intended recipient of the message (whether they are logged in or not) will at some point send a heartbeat message (see below) to its decoder/router 20.
  • the decoder/router 20 checks the header of the heartbeat message to decide which chat room the sender us sending the message from.
  • the decoder/router 20 finds the message queue for the room and sends the message to the message queue with the decoder/router's identifier prepended to the message.
  • the server 12 reads the message from its message queue. It stores the identifier of the decoder/router that send the message. It then carries out all the processing that is required to update the client 10 of the changes in the room since the last heartbeat, as part of these updates it will check the message flag, and if the flag is set it will retrieve the messages from the queue and include them in its response to the heartbeat.
  • a game might take place within the browser window that is displaying a representation of the zone, (this being referred to as a "browser game"), it might take place in a new browser window (especially where a large screen area is required) or it might be run as a separate executable trom the visitor's hard disk (typically a boxed game bought from a retailer).
  • the system checks communication latency time between players and advise each as to whether a game is playable. Using an on- screen indicator, such as a colour coded bar, the user is informed as to the speed of their connection to the system and can decide whether to play the game or not. (A puzzle game, for instance, requires lower connection speeds than an action game.) When a game is finished, the system takes players back to the zone through where the game was initiated.
  • an on- screen indicator such as a colour coded bar
  • Player performance and score information are stored in the system's data store alongside the player details at the end of each game.
  • compliant games are able to pass to the system player performance information such as winner/ second place/third place etc. , time to complete game, level, lap etc. , points won in a game, bonus points collected in a game, and so forth.
  • Players' high scores, and teams' performance are ranked by the system and maintained within the data store. Ranks can be aggregated so that "best of" groups can be produced (e.g. best of sports, etc.) Players will have the opportunity to challenge the person or team above them in the rankings, or accept a challenge from a person or team below them in the rankings.
  • the system will check whether all players have right to play a game, for example whether they have sufficient ranking or points to play or whether they have sufficient credit.
  • This is effectively a type of roaming restriction: for example, only those users that have a minimum rating will be allowed to participate to a particular game.
  • the client if operative to check that a user has the same version of a compliant game and give the user the option to download and upgrade to the latest version available, by directing them to the specific web sites.
  • the system supports a number of financial models which can be used by the game developer to derive income for their game.
  • financial models There may be a number of possible ways for the user to spend money on game play through the use of, for example, points, pounds or beenz which in turn can be linked to the user's game performance.
  • the system generates periodic reports, for example, on a monthly basis, and provides information on the movement of visitors through the virtual space as well as revenue generated by those visitors.
  • the reports may include: basic system usage - keeps track as to how many unique visitors per month have accessed a specific one and through which web sites; sponsorship - using data gathered from the basic system usage, provides a detailed analysis of how income pertaining to specific zones will be allocated between web site(s) hosting entrances to those zones, the owner of the zones and the game developer's; game length - gives the average length of time compliant games have been played; frequency - gives the average frequency of play with compliant games; amongst others.
  • the data store 14 is Oracle ⁇ i running on a Sun Solaris platform.
  • the data store must be able to handle numerous concurrent connections, implement transaction locking, implement synchronisation and preferably use the SQL Programming Language.
  • the data store has two main functional areas: the Persistent Server Interface and the application server data base (ASDB).
  • ASDB application server data base
  • the Persistent Server Interface is responsible for entering data into the system and allowing it to be retrieved by web pages via database calls. While the Persistent Server Interface has no control over the design of the web page, it provides customisable display functionality for data presentation.
  • the ASDB is responsible for storing and retrieving data relating to the virtual space.
  • Space data includes user details, game details, lobby/chat details, ladders, rankings, messages, and logs. Where there are multiple databases, the databases will synchronise on request. Data and actions are entered via ASDB, to ensure that the ASDB has up-to-date state information.
  • Private chat rooms are stored on the user's profile.
  • the clients communicate with the server by exchanging data encoded in Binary Protocol.
  • Data sent by the client to the server indicates the user's actions and movements to the server.
  • This data is processed by the server, which then sends response data back to the client.
  • the client interprets the response data, and updates its display as necessary.
  • the server sends data to the client to instruct it to update its display when other users of the system perform an action that must be reflected in the client's display.
  • the invention may be embodied in any, some or all of the following forms: it may be embodied in a method of operating a computer system; it may be embodied in the computer system itself; it may be embodied in a computer system when programmed with or adapted or arranged to execute the method of operating that system; and/or it may be embodied in a computer-readable storage medium having a program recorded thereon which is adapted to operate according to the method of operating the system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A system for relaying messages between a plurality of users is described. The system includes a message server 12 and a plurality of message clients 10 that can exchange messages with the message server 12. In preferred examples, the clients communicate directly with the server, thereby removing the need to use a web browser to retrieve a page located at a fixed URL.

Description

MESSAGE SYSTEM
The present invention relates to a message system. Preferred embodiments of the invention relate to a communication and/or an amusement system. Particularly, but not exclusively, aspects of the invention relate to a system that enables people to communicate, interact and play games at various sites, interconnected, for example, by a computer network, for example the Internet.
A large amount of traffic handled by the Internet today arises from so-called "chat rooms" in which geographically remote users can exchange text messages and other data in close to real time.
A limitation of conventional chat rooms is that a user must typically access each room by directing their browser to a web page at a specific URL. The page contains a first portion that generates the framework within which the chat room is displayed and an active portion that generates content on the fly to reflect messages that are posted to the chat room. This presents a limitation in the way in which a user can interact with the chat room and its other participants. Moreover, when a user wishes to participate in an alternative chat room, they must direct their browser to an alternative location which means that they either loose contact with the first chat room, or they must open a new browser instance, which may be disadvantageous if their computer has limited resources or their display is small. This also imposes restrictions upon the control that a service provider can exercise over the framework, thereby limiting the range of content that can be presented.
A first aim of this invention is to provide a system for relaying messages between a plurality of users that offers greater versatility than does a conventional chat room.
According to a first aspect, the invention provides a system for relaying messages between a plurality of users which system includes a message server and a plurality of message clients that can exchange messages with the message server.
A particular advantage of this system is that it separates that the clients communicate directly with the server, thereby removing the need to use a web browser to retrieve a page located at a fixed URL.
In preferred embodiments, each client can cooperate with a host application (most particularly, a web browser) to generate a display for a user.
For example, the client may be a plug-in or an object (an ActiveX control) that can be used by a web browser to generate part of a display of a web page. This allows a service provider to build a web page that includes a framework of their choice, while message processing and display are handled by the client. It will also be understood that any number of web pages at different URLs can access the message content, whereby the framework content is generated independently of the message content.
Alternatively, the client may execute on a games console, a digital television receiver, or on many other types of computer hardware that is capable of displaying a graphical image to a user.
As a further alternative, the client may be embedded in an application such as game software. This permits information (messages) to be exchanged between applications being executed by users over a network system, for example, in order that multiple players can contribute to a single game. In particular, the game software may allow a user to participate in a multi-player game.
In the context of this specification, a message may be constituted by any discrete unit of data to be transferred form one computer system to another. In particular, a message may contain a portion of text that is to be displayed as a user's utterance in a chat room; it may also contain an instruction to one or more components of a computer system, for example, to perform an action, generate a portion of a display, execute an application, for example a game, amongst many other possibilities, but the term is not restricted to these examples.
The first aspect of the invention further provides a message server adapted to exchange messages with a plurality of message clients, and further provides a message client adapted to exchange messages with the message server. Preferably, the message client is adapted to be embedded in a host application.
The first aspect of the invention further provides a method of exchanging messages, the method including sending a message from a first message client, receiving the message at a message server and sending a message from the message server to a further message client. In a preferred embodiment, the system is adapted to present a display in which each participating user is represented by a graphical entity. The graphical entity may be representative of a person (such a graphical entity being referred to in examples herein as an "avatar"). Preferably the user can choose the graphical entity by which he is to be represented in the display. Thus preferably the system is adapted to present the user with a choice of avatars. Preferably the choice presented varies in dependence upon the URL that a user has referenced in order to access the system. Thus the system can, by offering a list of available avatars, guide the user to choose an avatar which is representative of the URL. For example, if a user has entered a football chat room from the Manchester United website, he is encouraged to use an avatar having the Manchester United kit. Other users who have entered through different team sites are encouraged to choose to be shown in the chat room in different team kits.
A further aspect of the invention provides a system for displaying a graphical representation, in which the system is adapted to display a graphical representation according to the user's entry route into the system.
Features of the graphical representation may vary depending on the user's entry route into the system. For example, the representation may display advertising areas, and the user may see adverts which depend on their entry route, for example which relate to the host web site. Other users who have taken a different route may see different adverts. Further preferred features are discussed below in respect of method aspects of the invention.
In order to associate each user's message with that user, the message may be displayed as text close to the graphical entity that represents the user. Particularly where the graphical entity is an avatar, the text may be displayed as a speech bubble.
In preferred embodiments, the system further presents a display that represents the chat room as a virtual space within which the user can interact with other users of the chat room. Preferably, the space represented may be a three-dimensional space, displayed, for example, in an isometric view. In systems that represent a user as an avatar, such systems present a representation of a user existing within a~virtual environment. This feature is of particular importance and is provided independently. Thus a further aspect of the invention provides a system for displaying a graphical representation of a user in a chat room, in which the system is adapted to display the chatroom as a three-dimensional space, and/or in an isometric view.
Preferably, the user can move the graphical representation around relative to the room,, and interact with objects and other users in the room. For example, the room may include a door to another chatroom.
A system embodying the invention may include multiple chat rooms, and a user may mover from one chatroom to another. In the embodiments described, the user can only participate in one chatroom at a time. In such embodiments, the system may present a graphical display that allows a user to select a chat room in which to participate. Such a graphical display may represent a space (preferably a three- dimensional space) through which a graphical representation of a user may move to select a chat room in which to participate.
In a typical system embodying the invention, the message clients and message server exchange control messages to initiate action on a computer in the system. Such control messages may include messages sent to the client to cause the client to change its display, or messages sent to the server to inform the server of actions carried out by the user.
In preferred embodiments, a control message can be sent to the client in order to cause the client to launch an application. For example, the application may be a game.
This feature is of particular importance and is provided separately. Thus a further aspect of the invention provides a message system comprising a message server and a client server, in which the message client is adapted to launch an application.
In preferred embodiments, the message client is embedded in an application or device of a user and the message client is adapted to launch an application from the user's device. The message client may be adapted to launch a game from a games console, a set top box, or a computer, for example.
The game may be a multiplatform game having a core of software comprising the game and further software which allows the game to run on any of a number of different platforms. This feature may be provided independently.
Advantageously, a system embodying the invention comprises a data store that stores persistent data relating to users of the system. The data store may include data specifying the user's ability to access the system. It may also store information relating to a user's past use of the system. As a particular example, the data store may include data relating to a user's past performance in playing games in association with the system.
A system embodying the invention may comprise a plurality of message servers. Servers can be added as needed to handle increasing content and traffic in the system. Such a system typically includes a message router for directing a message to the message server that can handle the message. Advantageously, the message router operates independently of the message client. This can give a user the impression that all messages are handles by a unified system, effectively disguising the presence of multiple servers. The servers may be at geographically diverse locations. This can help to minimise the amount of network traffic that must be conveyed over long distances.
Also provided by the invention is a message system comprising a plurality of servers and a message router for directing a message to a server.
Preferably, the message router is adapted to communicate with a message client.
Also provided by an aspect of the invention is a method of exchanging messages, the method including sending a message from a first message client, receiving the message at a message server and sending a message from the message server to a further message client.
Also provided is a method of operating a chatroom, the method including providing a user with a message client, receiving a message from the message client, and sending a message to a further user in response to the message from the message client. By operating the chatroom in this way, it is possible for the user to communicate with the message server and with other users communicating with the message server, without going to a URL for the chatroom. The further user may be communicating with the message server using a message client, or may be at a URL for the message server.
The invention further provides a method of sending messages to a user comprising sending a message from a message server to a message client. In preferred embodiments of the invention, the user is in communication with a first server. Preferably the use of the message client does not interfere with the user's communication with the first server.
Preferably, the method further includes providing the user with a message client.
From another aspect, the invention provides a method of relaying messages between a plurality of computer users comprising downloading first code from a first server; and downloading message code from a message server. Preferably the first code comprises framework code and/or the message code comprises message text. Preferably the method further comprises displaying the framework code and/or the message text. This method separates the source of the framework from the source of the messages, thereby increasing the control that a service provider can exercise over the content of the display presented to the user.
Advantageously, in methods embodying the invention, text is downloaded and displayed from a plurality of message servers. This is in contrast to prior art chat rooms in which the message content and frame content cannot be provided independently.
The invention provides a method of exchanging messages in a system comprising a plurality of servers and a message router, the method comprising sending a message from the message router to a first server, sending a routing instruction to the message router, and sending a further message from the message router to a second server.
Typically, the method is performed by a web browser executing on a user's computer. In such embodiments, the first server is typically a web server. Moreover, in such embodiments, the framework code typically includes a document for display by the browser encoded in a mark-up language. Such a document may also include other code such as script code, images, and other items that can be displayed.
The task of downloading and displaying messages is preferably handled by client software executing on a user's computer. Most typically, in embodiments according to the last-preceding paragraph, the client executes within the context of the web browser. As such, the client may be embodied in a plug-in or an ActiveX object. The method may include an initial step of downloading the client from a remote server such as a web server. This enables the method to be executed in a manner that is largely transparent to a user.
In typical embodiments, the method further includes sending a user's message to a message server. Typically, this task is handled by client software, and most typically by the client software defined in the last-preceding paragraph.
In preferred embodiments of this invention, the message text is displayed in association with a graphical object associated with a user. The graphical entity may represent a person (such a graphical entity being referred to as an "avatar"). The system preferably allows the user to choose an avatar. It is envisaged that the entity displayed may be varied in dependence upon a network address from which the framework code has been retrieved.
The invention provides a method of displaying a user in a chat room, comprising displaying a chatroom as a three-dimensional space and/or in an isometric view.
The invention also provides a method of displaying a graphical representation, in which the system is adapted to display the graphical representation according to the user's entry route into the system.
The framework code may be varied in dependence upon the user's activities. For example, it may be varied in dependence upon the content of messages sent by or received by the user. It may be varied in dependence upon the destination of messages sent by the user or the source of messages received by the user. This can enable the method to generate a framework display that is particularly targeted to the likely interests and requirements of the user.
A method embodying these aspects of the invention is typically performed by a system embodying the first aspect of the invention.
The invention also provides a method of launching an application, the method comprising sending an instruction from a message server to instruct a message client to launch an application. Also provided by the invention is a message client being a component of a system described herein or for use in a method described herein.
The invention provides a message client adapted to send messages to and receive from a message server. Preferably, the message client is adapted to cooperate with a host application, and is preferably adapted to generate a display, preferably in dependence on the host application. Preferably the message client is adapted to generate a graphical representation according to a user's method of access to the message client, preferably the message client is adapted to send information to the message server regarding the user, for example details of the host application. Preferably the message client is adapted to launch an application.
The invention further provides a host application including a message client as described herein.
The invention also provides a message server being a component of the system described herein or adapted for use in a method described herein.
The invention further provides a message server adapted to exchange messages with a message client; preferably the message server is adapted to send a message to a message client to launch an application. Preferably the message server is adapted to communicate with the message client as described herein.
The invention also provides a computer program and a computer program product for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein, and a computer readable medium having stored thereon a program for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein.
The invention also provides a signal embodying a computer program for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein, a method of transmitting such a signal, and a computer product having an operating system which supports a computer program for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein.
The invention provides a computer adapted to carry out a method described herein and a computer program for carrying out a method described herein.
Apparatus features may be applied to method features and vice versa. Any feature of one aspect of the invention may be applied to other aspects of the invention, in any appropriate combination.
The invention also provides a method substantially as described herein with reference to Figures 1 to 3 of the accompanying drawings, and apparatus substantially as described herein with reference to and as illustrated in the accompanying drawings.
Preferred features of the present invention will now be described, purely by way of example, with reference to the accompanying drawings, in which:
Figure 1 shows an overview of a system of a first embodiment of the invention;
Figure 2 shows a typical display generated by a client within a web browser; and
Figure 3 illustrates a zone generated by a system embodying the invention being accessed by a plurality of users through various web sites.
System Architecture
The present embodiment comprises three main components: a client 10 (that executes on each user's computer), a server 12 and a data store 14. Each client 10 and the server 12 exchange data over a switched network, most typically, the Internet 16. The server 12 is connected to the Internet by a plurality of decoder/routers 20.
The client 10 serves as a graphic engine for generating a display for the user. The client 10 presents a view of the virtual space maintained by the system to a user, showing movement, chat and interactions between the user and the virtual environment. All instructions regarding construction of the view are sent as control messages from the server to the client.
The client also handles the encrypted protocol used to securely transfer data over the network 16. In order to speed up operation of the client 10, the client keeps local copies of data in a cache, where possible.
The server 12 maintains the state of each chat room and user on the system (for example, where the user is in the virtual space, what the user is saying, whether they are playing a game) as well as storing and retrieving data and media assets.
The server and associated components has a dynamically scaling architecture and is composed of multiple instances of four process types, distributed across multiple physical machines. The server components include:
• Decoders/Routers 20 that decode and route incoming and outgoing data to and from the remote clients using the encrypted protocol and pass data to the system;
• Application servers that handle the state of each of the multiple rooms that they host and the users inside those rooms;
• Persistence Servers that store and retrieve user, landscape and usage data from the data store 14; and
• Media Servers that manage multimedia content required by the clients such as floor tiles, avatars, sound files etc.
The data store is used to ensure data persistence. The data store is made up of a distributed network of relational databases.
Data Flow
A client 10 connects to the server 12 through the switched network 16 via a local director and the decoder /routers 20. The decoder/routers 20 tasks are primarily to encrypt/decrypt, compress/decompress and route messages. The decoder/routers 20, after deciphering the message, will hand the message to an application server 12. The application server 12 maintains the state for all the rooms that it hosts. The application server 12 in turn has a connection to the data store 14. The data store 14 is used to ensure data persistence. The application server 12 carries out the necessary tasks to fulfill the request for the client and sends it to the decoder/routers 20. The decoder/routers 20 then compresses and encrypts the message and sends it to the client 10. Data is exchanged between the client 10 and the server 12 as messages, encoded in Binary Protocol.
It will be noted that the decoder/routers 20 direct messages as they are passed to and from the server 12. As additional content is handled by the system, it is possible to provide additional servers to manage that content, the decoder/routers 20 serving to channel messages to and from the appropriate server. This function of the decoder/routers 20 gives a user the impression of an integrated system; the separate servers need not be apparent. Moreover, the servers can be in geographically diverse locations. If it is discovered that the system is particularly heavily loaded with traffic that originates from a particular geographical area, it is possible to install additional servers in that area to handle such local traffic, thereby reducing the total amount of data that must be transmitted over long distances.
Embedding a client in a web page
A client 10 can be embedded in a web page using the standard syntax for using an ActiveX component. The client 10 can be served from any standard web server. Once running within the web page, the client 10 will communicate with the servers 12 which supply the client 10 with the data that it needs to generate the user display, including for example zone landscape and user data. The client 10 runs on port 80 in order that it can operate across firewall systems and avoid any incompatibility problems.
In examples, the client requires a screen area of 525 pixels by 295 pixels and has a file size of about 500k. In the present example, it is adapted to run on Internet Explorer 4+ on Windows95 + .
In embodiments of the invention, the client is served from a website that is powered by content management systems run by the company running the lobby system, and content on the page in which the client is embedded can be changed on the fly, triggered by events in the zone space. For example, if a user enters a football game zone, the embedding web page could change to show football-related news, features or merchandise.
Embedding a client in a game executable
To embed a client within a game executable requires wrapper code in the same language as the game, typically C or C+ + . The client is written with a strong focus on ease of integration for third party developers. Functionality
A system embodying the invention can be envisaged as a providing a zone comprising an independent 3D virtual environment where people can meet either simply to chat, or arrange online games. In embodiments of the invention, the zone includes a game launching capability.
A system embodying the invention can implement a virtual space that is made up of multiple, interconnected zones or chat rooms. The virtual space environment can be themed.
The client for use in embodiments of the invention is designed as a hardware and operating system agnostic "entrance" into virtual space. It is a 'thin client' which can be embedded in multiple applications simultaneously, typically in web sites and game executables running on PCS, but also digital set top boxes and other devices connected to the Internet.
A visitor to the virtual space is represented on a user's display as a customisable 3D avatar 100, shown in Figures 2 and 3. Visitors can move around, interact with objects in the space, "speak" (represented by speech bubbles 102) to other visitors by typing the text in a designated area 104, invite them to join a zone, challenge them at a particular game, and launch games.
The display of the zone itself is made up of a main floor surface 110, different furniture 112 and walls 114, link points 116 to other zones and launch points for game executables.
To customize a zone display, the system provides a selection of default objects with which administrators can create zones. However, the system also allows floors, walls, objects, and avatars to be completely customized or recreated by using standard graphics packages, and imported through a suitable authoring tool to generate bespoke environments. For example a football related zone (see Figure 3) might have a floor 210 that looks like a pitch, and avatars 200 dressed up in different football club colours. A Tomb Raider (r.t.m) zone may have Lara Croft (r.t.m) avatars and use textures from the game. Special areas may be provided within zones for sponsors' material to be displayed. Such areas may include floor areas, walls and advertising hoardings 212. It is also possible to vary the appearance of one or more aspects of the display in dependence upon the web location that a user accessed in order to enter the space. In the football example described above, a player might be encouraged to choose an avatar which includes the club colours that correspond to a web site run by a football club that was accessed by the user in order to enter the virtual space. These alternatives are shown in the inserts to Figure 3.
It is also possible to make an object in the zone link to another zone. This can create gateways between zones.
General Features
For the purposes of this description, it is assumed that the visitor is entering the virtual space though a client embedded in a web browser running on a PC.
Before using the system, the visitor must first register. E-mail address and name are used to uniquely identify each user. Users can adopt real names should they choose and more than one user with the same real name can exist in the system at once (i.e. there can be more than one 'John Smith', but not with the same e-mail address).
Before a user can enter the virtual space he or she must to download a browser plug-in that will enable the virtual space to be represented in a display generated by the browser.
The user then logs on to the system. This proceeds as will now be described.
Client sends a logon message to the server at a predetermined Internet URL. The message is directed to the nearest geographically located decoder/router. The decoder/router receives the message and checks the header of the message to decide which room the message is being sent to. The decoder/router then finds the message queue for the room and sends the message to the message queue with the decoder/router's identifier prepended to the message.
The server 20 reads the message from its message queue. It stores the identifier of the decoder/router that sent the message. It then reads the identity of the user who is trying to log on. The user's id is made up of their home server and a unique identifier. The server accesses the session manager at the home server to verify the logon data from the user. If all the logon data is correct the server 12 returns a session identifier (SID), otherwise an error code is returned.
The decoder/router 20 returns the SID to the client 10. This SID will then be used for all future communications between the client 10 and the server 12.
Users can enter the virtual space from any web site or game executable that hosts an entrance to that virtual space. This means that the virtual space can appear in many different web sites at the same time. The implication is that a community will gather by subject matter regardless of their point of entry. Moreover, entrances to virtual
„space can be placed on any device that connects a user to the Internet.
The system supports all languages that are supported by the PC operating system, providing the visitors with a wide array of accents and symbols (according to the keyboard used). The client's menus can also be localised.
As part of the logon process, a group identifier (GID) is sent in a logon message, this is not part of the user logon details but instead identifies the client's launch point. The GID is used to control access to other rooms and to trace logon data. Therefore, a user logging onto the system from two different launch sites will have two separate GIDs.
The system checks four times per second whether a user is still on-line. At the same time the client transmits, through a secure protocol, to all the other current users details of his or her movements within the space, changes in the virtual landscape etc.
A user can move in the virtual space from one room to another. The system must keep track of the user's movements in order that messages for the user are routed correctly. This following describes the messages and responses that take place when a user wishes to move from one room to another. Assume that the user's current location is referred to as LON01_1000 and their desired location as SFO01_2345.
The message sender's client sends a message to a predetermined Internet URL. The decoder /router 20 receives the message and determines that it is a move message.
The decoder/router 20 finds the message queue for the room SFO01_2345 and sends the message to the message queue with the decoder/router's identifier prepended to the message. The server 12 reads the message from its message queue and stores the identifier of the decoder/router that send the message. It then checks to see if the user can log into the desired location SFO01_2345. If the user is allowed to log into the room then the server 12 will access the session manager at the user's home server, informing it of the new room - SFO01_2345 - for the user and that the user should now be considered as in between rooms (this will ensure that any messages are not sent to the user whilst in transition).
The decoder/router 20 can now move the user from the room LON01_1000. The decoder/router finds the message queue for the room LON01_1000 and sends the message to the message queue with the decoder/router's identifier prepended to the message. The server 12 reads the message from its message queue and stores the identifier of the decoder/router that send the message. The server 12 accesses the session manager at the user's home server, informing it that the user is released from the room - LON01_1000. The session manager will now treat the user as residing in room SFO01_2345 .
In examples of the invention, the room LON01_1000 and the room SFO01_2345 may be located on different servers, which may be located remote from each other. For example the room LON01_1000 may be a chat room about Manchester United and may be located on a server in the UK. SFO01 2345 may be a chat room about the Dallas Cowboys and may be located on a server in the US. The servers may be linked in a private network. Thus the user may effectively move from one server to another by moving from room to room; the handover of servers can be invisible to the user.
Features of virtual space from the user's point of view
Themes: each space is topic related. For example, a virtual space may relate to football, cinema, and so forth, essentially without restriction. Within each virtual space there is almost no limit to the number of possible zones, each of which can be intended to deal with a specific subject within the theme set by the virtual space: for example, there may be a zone that relates to a specific football team in the football space, and a zone for a popular film within the cinema space.
The zones are represented to a user in an isometric 3D view which can be presented from any of four angles. This view is shown in Figures 2 and 3.
Once in a zone, the user's avatar occupies the centre of the 3D representation of the zone, and can move about the zone by using the keyboard up/down/left/right arrows or the mouse. The visitor always stays in the centre of the screen unless the 'camera' (that is, the hypothetical position from which the view of the zone is generated) is unlocked. By unlocking and moving the camera, users can see into other areas of a zone without their avatar moving.
Roaming restrictions can be placed on a zone to restrict a user's freedom to move through the virtual space. For example, such restrictions may prevent a user from moving from one zone to another. Users may also create private zones and restrict entrance into the zone to those whom they have invited. Users can also save a zone, or create a shortcut to an existing one.
Each user has a "buddy list" that lists those other users with which he or she wishes to maintain contact. The buddy list enables to system to keeps the user informed as to which of those other users is currently on-line, in which location, and if he or she is playing a game. Users can also send text messages to people on their buddy list; if the recipient is on-line, then the message will be delivered immediately, otherwise it will be stored in a mailbox until the recipient's next login
A user can send private messages to any other user that appears in their buddy list. To achieve this, the message sender's client 10 sends a message to a predetermined Internet URL. The decoder/router 20 receives the message and checks the header of the message to decide which chat room the sender us sending the message from. The decoder/router 20 finds the message queue for the chat room and sends the message to the message queue with the decoder/router's identifier prepended to the message.
The server 12 reads the message from its message queue. It stores the identifier of the decoder/router 20 that send the message. It then reads the identity (UID) of the intended recipient of the message. Each recipient's UID is made up of their home server and a unique identifier. The core server accesses the session manager at the home server and sends the message and the UID. The session manager is always aware of who is logged onto the system at any time. If the user is not logged on, the message will be stored in the data store 14 where it can be read when the user next logs on. Otherwise, if the user is logged on, then the session manager stores the message in the user's message queue.
An acknowledgement is then sent back to the sender's client 10.
The client belonging to the intended recipient of the message (whether they are logged in or not) will at some point send a heartbeat message (see below) to its decoder/router 20. The decoder/router 20 checks the header of the heartbeat message to decide which chat room the sender us sending the message from. The decoder/router 20 finds the message queue for the room and sends the message to the message queue with the decoder/router's identifier prepended to the message.
The server 12 reads the message from its message queue. It stores the identifier of the decoder/router that send the message. It then carries out all the processing that is required to update the client 10 of the changes in the room since the last heartbeat, as part of these updates it will check the message flag, and if the flag is set it will retrieve the messages from the queue and include them in its response to the heartbeat.
Game-specific features of the system
Users can initiate a system-compliant single-player or multi-player game from within a zone. A game might take place within the browser window that is displaying a representation of the zone, (this being referred to as a "browser game"), it might take place in a new browser window (especially where a large screen area is required) or it might be run as a separate executable trom the visitor's hard disk (typically a boxed game bought from a retailer).
When a player attempts to initiate a game, the system checks communication latency time between players and advise each as to whether a game is playable. Using an on- screen indicator, such as a colour coded bar, the user is informed as to the speed of their connection to the system and can decide whether to play the game or not. (A puzzle game, for instance, requires lower connection speeds than an action game.) When a game is finished, the system takes players back to the zone through where the game was initiated.
Player performance and score information are stored in the system's data store alongside the player details at the end of each game.
In order that players or teams can be ranked, and appropriate performance ladders generated, compliant games are able to pass to the system player performance information such as winner/ second place/third place etc. , time to complete game, level, lap etc. , points won in a game, bonus points collected in a game, and so forth.
Players' high scores, and teams' performance are ranked by the system and maintained within the data store. Ranks can be aggregated so that "best of" groups can be produced (e.g. best of sports, etc.) Players will have the opportunity to challenge the person or team above them in the rankings, or accept a challenge from a person or team below them in the rankings.
According to a ranking or ladder system, the system will check whether all players have right to play a game, for example whether they have sufficient ranking or points to play or whether they have sufficient credit. This is effectively a type of roaming restriction: for example, only those users that have a minimum rating will be allowed to participate to a particular game.
The client if operative to check that a user has the same version of a compliant game and give the user the option to download and upgrade to the latest version available, by directing them to the specific web sites.
Financial systems
The system supports a number of financial models which can be used by the game developer to derive income for their game. There may be a number of possible ways for the user to spend money on game play through the use of, for example, points, pounds or beenz which in turn can be linked to the user's game performance.
System Reporting
The system generates periodic reports, for example, on a monthly basis, and provides information on the movement of visitors through the virtual space as well as revenue generated by those visitors. The reports may include: basic system usage - keeps track as to how many unique visitors per month have accessed a specific one and through which web sites; sponsorship - using data gathered from the basic system usage, provides a detailed analysis of how income pertaining to specific zones will be allocated between web site(s) hosting entrances to those zones, the owner of the zones and the game developer's; game length - gives the average length of time compliant games have been played; frequency - gives the average frequency of play with compliant games; amongst others.
Architecture of the data store
In this embodiment, the data store 14 is Oracleδi running on a Sun Solaris platform. The data store must be able to handle numerous concurrent connections, implement transaction locking, implement synchronisation and preferably use the SQL Programming Language.
The data store has two main functional areas: the Persistent Server Interface and the application server data base (ASDB).
The Persistent Server Interface is responsible for entering data into the system and allowing it to be retrieved by web pages via database calls. While the Persistent Server Interface has no control over the design of the web page, it provides customisable display functionality for data presentation.
The ASDB is responsible for storing and retrieving data relating to the virtual space. Space data includes user details, game details, lobby/chat details, ladders, rankings, messages, and logs. Where there are multiple databases, the databases will synchronise on request. Data and actions are entered via ASDB, to ensure that the ASDB has up-to-date state information.
The key elements of interaction between the Persistent Server Interface and the ASDB are as follows:
At system startup:
♦ retrieve lobby /chat/game parameters.
While the system is running:
♦ Create/Delete/Configure/Close permanent public/private chat rooms. Private chat rooms are stored on the user's profile.
♦ Create/Delete/Configure/Close permanent public/private lobbies. Private lobbies are stored on the user's profile.
♦ Create/Delete/Compose messages. Messages are stored in system and user profiles.
♦ Banning a user from the system. Bans are stored against the database, an attribute of the chat/lobby.
♦ Changing any details of a user's profile. Eg. Address, password, email, password, alias, buddies, games installed etc.
♦ Database updated when a user leaves the system - strong people profiling.
♦ User Registration - Creating a new profile.
♦ User Logon - Retrieving user profile, including buddy list.
Client/server interaction
In this embodiment, the clients communicate with the server by exchanging data encoded in Binary Protocol. Data sent by the client to the server indicates the user's actions and movements to the server. This data is processed by the server, which then sends response data back to the client. The client interprets the response data, and updates its display as necessary. Likewise, the server sends data to the client to instruct it to update its display when other users of the system perform an action that must be reflected in the client's display.
In any or all of the aforementioned, certain features of the present invention have been implemented using computer software. However, it will of course be clear to the skilled man that any of these features may be implemented using hardware or a combination of hardware and software. Furthermore, it will be readily understood that the functions performed by the hardware, the computer software, and such like are performed on or using electrical and like signals.
Features which relate to the storage of information may be implemented by suitable memory locations or stores. Features which relate to the processing of information may be implemented by a suitable processor or control means, either in software or in hardware or in a combination of the two. In any or all of the aforementioned, the invention may be embodied in any, some or all of the following forms: it may be embodied in a method of operating a computer system; it may be embodied in the computer system itself; it may be embodied in a computer system when programmed with or adapted or arranged to execute the method of operating that system; and/or it may be embodied in a computer-readable storage medium having a program recorded thereon which is adapted to operate according to the method of operating the system.
As used herein throughout the term "computer system" may be interchanged for "computer", "system", "equipment", "apparatus", "machine" and like terms.
It will be understood that the present invention has been described above purely by way of example, and modifications of detail can be made within the scope of the invention.
Each feature disclosed in the description, and (where appropriate) the claims and drawings may be provided independently or in any appropriate combination.

Claims

Claims
1. A system for relaying messages between a plurality of users which system includes a message server and a plurality of message clients that can exchange messages with the message server.
2. A system according to claim 1 in which each client can cooperate with a host application to generate a display for a user, and preferably the message client is adapted to display messages to the user.
3. A system according to claim 2 in which the host application is a web browser.
4. A system according to claim 2 or claim 3 in which the client is a plug-in that can be used by a web browser to generate part of a display of a web page.
5. A system according to claim 2 or claim 3 in which the client is a software object that can be used by a web browser to generate part of a display of a web page.
6. A system according to claim 1 or claim 2 in which the client is adapted to execute on one of a games console and a digital television receiver.
7. A system according to claim 1 or claim 2 in which the client is adapted to be embedded in game software.
8. A system according to claim 7 in which the game software enables a user to participate in a multi-player game.
9. A system according to any preceding claim in which the system is adapted to present a display in which each participating user is represented by a respective graphical entity.
10. A system according to claim 9 in which the graphical entity is representative of a person.
11. A system for displaying a graphical representation, in which the system is adapted to display the graphical representation according to the user's entry route into the system.
A system according to claim 10 or claim 11 in which a user's message is displayed as a speech bubble.
A system according to any preceding claim that is operable to present a display that represents the chat room as a virtual space within which the user can interact with other users of the chat room.
A system according to claim 13 in which the space represented is a three- dimensional space.
A system according to claim 14 in which the space is displayed in an isometric view.
A system for displaying a graphical representation of a user in a chat room, in which the system is adapted to display a chatroom as a three-dimensional space and/or in an isometric view.
A system accordmg to any preceding claim that includes multiple chat rooms, the system being operative to permit a user to move from one chat room to another.
A system according to claim 17 that is operable to present a graphical display that allows a user to select a chat room in which to participate.
A system according to claim 18 in which the graphical display represents a space (preferably a three-dimensional space) through which a graphical representation of a . user may move to select a chat room in which to participate.
A system according to any preceding claim in which the message clients and message server are adapted to exchange control messages to initiate action on a computer in the system.
A system according to claim 20 in which the control messages include messages sent to the client to cause the client to change its display.
A system according to claim 20 or claim 21 in which the control messages include messages sent to the server to inform the server of actions carried out by the user.
23. A system according to any one of claims 20 to 22 in which a control message can be sent to the client in order to cause the client to launch an application.
24. A message system comprising a message server and a client server, in which the message client is adapted to launch an application.
25. A system according to claim 23 or claim 24 in which the application is a game.
26. A system according to any preceding claim comprising a data store that stores persistent data relating to users of the system.
27. A system according to claim 26 in which the data store includes data specifying the user's ability to access the system.
28. A system according to claim 26 or 27 in which the data store includes data relating to a user's past use of the system.
29. A system according to claim 28 in which the data store includes data relating to a user's past performance in playing games in association with the system.
30. A system according to any preceding claim comprising a plurality of message servers.
31. A system according to claim 28 comprising a message router for directing a message to the message server that can handle the message.
32. A message system comprising a plurality of servers and a message router for directing a message to a server.
33. A message system according to claim 32 in which the message router is adapted to communicate with a message client.
34. A system according to any one of claims 30 to 33 in which the message router operates independently of the message client.
35. A system according to any one of claims 30 to 34 in which the servers are at geographically diverse locations.
36. A method of exchanging messages, the method including sending a message from a first message client, receiving the message at a message server and sending a message from the message server to a further message client.
37. A method of operating a chatroom, the method including providing a user with a message client, receiving a message from the message client, and sending a message to a further user in response to the message from the message client.
38. A method of sending messages to a user comprising sending a message from a message server to a message client.
39. A method according to claim 38, in which the user is in communication with a first server.
40. A method according to claim 38 or claim 39, further providing the user with a message client.
41. A method of relaying messages between a plurality of computer users comprising downloading first code from a first server; and downloading message code from a message server.
42. A method according to claim 41 in which the first code comprises framework code and/or the message code comprises message text.
43. A method according to claim 42 further comprising displaying the framework code and/or the message text.
44. A method according to any of claims 41 to 43 performed by a web browser executing on a user's computer.
45. A method according to any one of claims 42 to 44 in which text is downloaded and displayed from a plurality of message servers. 6. A method of exchanging messages in a system comprising a plurality of servers and a message router, the method comprising sending a message from the message router to a first server, sending a routing instruction to the message router, and sending a further message from the message router to a second server.
47. A method according to claim any one of claims 36 to 46 in which the first server is a web server.
48. A method according to any one of claims 36 to 47 in which the framework code typically includes a document for display by the browser encoded in a mark-up language.
49. A method according to claim 48 in which the document includes other code being script code, images, and other items that can be displayed.
50. A method according to any one of claims 36 to 49 in which the task of downloading and displaying messages is handled by client software executing on a user's computer.
51. A method according to any one of claims 36 to 50 in which in which the task of downloading and displaying messages is handled by client software executing within the context of the web browser.
52. A method according to claim 51 in which the client is embodied in a plug- in or an ActiveX object.
53. A method according to any one of claims 50 to 52 that includes an initial step of downloading the client from a remote server such as a web server.
54. A method according to any one of claims 36 to 53 that further includes sending a user's message to a message server.
55. A method according to claim 54 in which the task of sending a user's message to a message server is handled by client software executing on the user's computer.
56. A method according to any one of claims 50 to 53 that further includes sending a user's message to a message server, the task of sending a user's message to a message server being handled by the said client software.
57. A method according to any one of claims 36 to 56 in which the message text is displayed in association with a graphical entity associated with a user.
58. A method according to claim 57 in which a respective graphical entity is displayed for each user active on the system.
59. A method according to claim 57 or 58 in which the graphical entity represents a person.
60. A method of displaying a user in a chat room, comprising displaying a chatroom as a three-dimensional space and/or in an isometric view.
61. A method according to any one of claims 57 to 60 in which the display is varied in accordance with parameters that depend upon the user's characteristics or activities.
62. A method according to claim 60 in which the display may be varied in dependence upon the framework code.
63. A method of displaying a graphical representation, in which the system is adapted to display the graphical representation according to the user's entry route into the system.
64. A method according to any one of claims 36 to 63 in which framework code is varied in dependence upon the user's activities.
65. A method according to claim 64 in which the framework code is be varied in dependence upon the content of messages sent by or received by the user.
66. A method according to claim 64 or 65 in which the framework code is be varied in dependence upon the destination of messages sent by the user or the source of messages received by the user.
67. A method of launching an application, the method comprising sending an instruction from a message server to instruct a message client to launch an application.
68. A message client being a component of a system according to any one of claims 1 to 35 or for use in a method according to any one of claims 36 to 67.
69. A message client adapted to send messages to and receive messages from a message server.
70. A message client according to claim 68 or claim 69 adapted to cooperate with a host application.
71. A message client according to claim 69 or claim 70 adapted to generate a display.
72. A message client according to any of claims 69 to 71 adapted to generate the display in dependence on the host application.
73. A message client according to any of claims 69 to 72 adapted to generate a graphical representation according to a user's method of access to the message client.
74. A message client according to any of claims 69 to 73, in which the message client is adapted to send information to the message server regarding the user, for example details of the host application.
75. A message client according to any of claims 69 to 74 adapted to launch an application.
76. A host application including a message client according to any of claims 68 to 75.
77. A message server being a component of a system according to any one of claims 1 to 35 or adapted for use in a method according to any one of claims
36 to 67.
78. A message server adapted to exchange messages with a message client.
79. A message server according to claim 78 adapted to send a message to a message client to launch an application.
80. A message server adapted to communicate with a message client according to any of claims 68 to 75.
81. A computer adapted to carry out a method accordmg to any one of claims 36 to 67.
82. A computer program for carrying out a method according to any of claims 36 to 67.
83. A computer-readable storage medium having a program recorded thereon which is adapted to operate according to a method according to any one of claims 36 to 67.
84. A messaging apparatus being substantially as herein described having reference to Figures 1 to 3.
85. A method of exchanging messages, the method being substantially as herein described having reference to Figures 1 to 3.
PCT/GB2001/003647 2000-08-14 2001-08-14 System and method for messaging WO2002015500A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001278608A AU2001278608A1 (en) 2000-08-14 2001-08-14 System and method for messaging

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0019982.8A GB0019982D0 (en) 2000-08-14 2000-08-14 Message system
GB0019982.8 2000-08-14

Publications (2)

Publication Number Publication Date
WO2002015500A2 true WO2002015500A2 (en) 2002-02-21
WO2002015500A3 WO2002015500A3 (en) 2002-11-14

Family

ID=9897577

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2001/003647 WO2002015500A2 (en) 2000-08-14 2001-08-14 System and method for messaging

Country Status (3)

Country Link
AU (1) AU2001278608A1 (en)
GB (1) GB0019982D0 (en)
WO (1) WO2002015500A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004012151A1 (en) 2002-07-31 2004-02-05 Inchain Pty Limited Animated messaging
EP1276284A3 (en) * 2001-07-09 2005-11-16 Kabushiki Kaisha Square Enix (also trading as Square Enix Co., Ltd.) Method and device for messaging
WO2008074244A1 (en) * 2006-12-19 2008-06-26 Tencent Technology (Shenzhen) Company Limited An instant messaging method, system and apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997040514A1 (en) * 1996-04-19 1997-10-30 Juno Online Services, L.P. Electronic mail system with advertising
WO1998020410A1 (en) * 1996-11-08 1998-05-14 Compuserve Incorporated System for integrating an on-line service community with a foreign service
WO2000016208A1 (en) * 1998-09-15 2000-03-23 Ikimbo, Inc. System and method for information and application distribution
WO2000033578A1 (en) * 1998-11-30 2000-06-08 Microsoft Corporation Method and system for presenting television programming and interactive entertainment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997040514A1 (en) * 1996-04-19 1997-10-30 Juno Online Services, L.P. Electronic mail system with advertising
WO1998020410A1 (en) * 1996-11-08 1998-05-14 Compuserve Incorporated System for integrating an on-line service community with a foreign service
WO2000016208A1 (en) * 1998-09-15 2000-03-23 Ikimbo, Inc. System and method for information and application distribution
WO2000033578A1 (en) * 1998-11-30 2000-06-08 Microsoft Corporation Method and system for presenting television programming and interactive entertainment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BATH M: "Re: how to detect browser version???" NEWSGROUP, [Online] 26 February 1998 (1998-02-26), XP002195094 comp.lang.java.programmer Retrieved from the Internet: <URL:http://groups.google.com/groups?selm= 34F55B1D.1856%40Norway.EU.Net&output=gplai n> [retrieved on 2002-04-04] *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1276284A3 (en) * 2001-07-09 2005-11-16 Kabushiki Kaisha Square Enix (also trading as Square Enix Co., Ltd.) Method and device for messaging
US7761512B2 (en) 2001-07-09 2010-07-20 Kabushiki Kaisha Square Enix Message exchange
WO2004012151A1 (en) 2002-07-31 2004-02-05 Inchain Pty Limited Animated messaging
EP1535243A1 (en) * 2002-07-31 2005-06-01 Inchain Pty Limited Animated messaging
EP1535243A4 (en) * 2002-07-31 2010-07-21 Inchain Pty Ltd Animated messaging
WO2008074244A1 (en) * 2006-12-19 2008-06-26 Tencent Technology (Shenzhen) Company Limited An instant messaging method, system and apparatus

Also Published As

Publication number Publication date
GB0019982D0 (en) 2000-10-04
WO2002015500A3 (en) 2002-11-14
AU2001278608A1 (en) 2002-02-25

Similar Documents

Publication Publication Date Title
US20220266132A1 (en) Virtual environment for computer game
US10967276B2 (en) Collaborative online gaming system and method
US8190733B1 (en) Method and apparatus for virtual location-based services
US7794315B2 (en) Role play system
US7925703B2 (en) Graphical interactive interface for immersive online communities
US7695369B2 (en) Systems and methods for accessing online content during online gaming
US20070099702A1 (en) Network-based gaming system
US20070063999A1 (en) Systems and methods for providing an online lobby
US20090325712A1 (en) Player character matchmaking with distributed peer-to-peer functionality
EP2085128A1 (en) Apparatus and method of on-line abuse avoidance
US20100035692A1 (en) Avatar closet/ game awarded avatar
KR20070082395A (en) Flash game invitation system and method using url
CN101553290A (en) System and method for managing virtual worlds mapped to real locations in a mobile-enabled massively multiplayer online role playing game (MMORPG)
WO2007032364A1 (en) Online game system
JP4048347B2 (en) Three-dimensional virtual space display method, program, recording medium storing the program, and three-dimensional virtual space control device
CA2415274A1 (en) Premium acquisition game system utilizing communication network, and premium acquisition game host computer and player terminal both used in that system
WO2002015500A2 (en) System and method for messaging
JP2023103259A (en) Information processing device, data synchronization program, data synchronization method, data synchronization system, and terminal device
WO2001080499A2 (en) System and method for the provision of services for communities based on cellular phones and mobile terminals
KR101107103B1 (en) Online game channel managing method and the system thereof
KR20090010460A (en) Method, apparatus and recording medium for using character inventory of online game in common
JP2002224438A (en) Video game album preparation program, recording medium with recorded album preparation program, album preparation method, game device, video game character image trading system
KR100798259B1 (en) Online game system and method
KR100702703B1 (en) Method for Providing Joker Mode Card Game Service and Record Medium for the Same
JP2004133715A (en) Electronic mail system with janken (finger-flashing game of scissors-paper-rock) game function

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ CZ DE DE DK DK DM DZ EC EE EE ES FI FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

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)
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ CZ DE DE DK DK DM DZ EC EE EE ES FI FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 69(1) EPC DATED 24-04-2003

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP