US20070238526A1 - Methods and devices for exchanging messages in an always-on network - Google Patents

Methods and devices for exchanging messages in an always-on network Download PDF

Info

Publication number
US20070238526A1
US20070238526A1 US11/393,901 US39390106A US2007238526A1 US 20070238526 A1 US20070238526 A1 US 20070238526A1 US 39390106 A US39390106 A US 39390106A US 2007238526 A1 US2007238526 A1 US 2007238526A1
Authority
US
United States
Prior art keywords
message
sub
submessage
agent
sync
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US11/393,901
Inventor
Girish P. Chandranmenon
Fang Hao
Scott C. Miller
Sarit Mukherjee
Tejas Naik
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Priority to US11/393,901 priority Critical patent/US20070238526A1/en
Assigned to LUCENT TECHNOLOGIES INC reassignment LUCENT TECHNOLOGIES INC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NAIK, TEJAS, CHANDRANMENON, GIRISH P., MILLER, SCOTT C., HAO, FANG, MUKHERJEE, SARIT
Publication of US20070238526A1 publication Critical patent/US20070238526A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • 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/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/402Communication between platforms, i.e. physical link to protocol
    • 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
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5566Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history by matching opponents or finding partners to build a team, e.g. by skill level, geographical area, background, play style

Definitions

  • Co-pending U.S. patent application Ser. Nos. ______, ______, and ______, incorporated by reference in full herein as if set forth in full herein, disclose methods and devices which, among other things, enables users to conduct communication sessions (e.g., on-line games) quickly and with greatly reduced airlink time/bandwidth than previously thought possible.
  • the co-pending Applications just mentioned disclose “always-on” methods and devices because even when a user of a device is inactive (e.g., her device is powered-off) an “always-on agent” may act as a proxy and continue to act on behalf of the user/user's device during a given communication session.
  • novel messages may be exchanged.
  • the present invention is directed at the generation and subsequent exchange of such messages.
  • the following discussion provides some examples of the format and content of such messages.
  • the present invention provides methods and devices that generate messages that may be exchanged between components of an “always-on” network and the like.
  • the present invention provides for methods that allow user devices and their agents exchange messages.
  • a device may generate one or more messages, where each message contains at least one sub-message.
  • the sub-message may: (a) contain information concerning the presence status of the device and its associated user; (b) indicate a subscribe/unsubscribe status to one or more services; (c) comprise an alert notification; (d) comprise a synchronization signal (“sync”); (e) contain game playing information; or (f) represent common messages, to name just some of the many types of sub-messages provided by the present invention.
  • FIG. 1 depicts a block diagram illustrating an “always-on” architecture according to one embodiment of the present invention.
  • FIG. 1 there is shown an always-on architecture 1 in accordance with one embodiment of the present invention.
  • This architecture 1 may be used by a service provider to deliver one or more services in a manner that is faster than previously thought possible while requiring a minimal amount of changes or upgrades to the provider's network.
  • a service provider may chose to implement an always-on architecture provided by the present invention in any number of ways.
  • one architecture such as architecture 1
  • another application e.g., gaming application. That is to say any third party communication applications the service provider has available may lay on top of the always-on architecture.
  • the architecture 1 in FIG. 1 comprises an always-on client 2 (“client”), applications client 2 a (e.g., “game client”), always-on proxy agent 3 (“agent”), always-on lobby 4 (“lobby”), an applications/game server/engine 5 (e.g., “game server”) and one or more other third party agents 300 .
  • client always-on client 2
  • applications client 2 a e.g., “game client”
  • agent always-on proxy agent 3
  • lobby 4 lobby
  • applications/game server/engine 5 e.g., “game server”
  • the client 2 and applications client 2 a may also comprise one or more software or firmware programs/applications that may be co-located and stored on a computer readable medium 20 of some sort (e.g., hard-drive, compact disc, memory, memory and processor) which may be, in turn, embedded within a larger device 200 , such as a wired or wireless telephone, personal digital assistant (PDA), computer, gaming device, or a device which combines one or more functions (e.g., email and voice messaging), etc., .
  • a computer readable medium 20 of some sort (e.g., hard-drive, compact disc, memory, memory and processor) which may be, in turn, embedded within a larger device 200 , such as a wired or wireless telephone, personal digital assistant (PDA), computer, gaming device, or a device which combines one or more functions (e.g., email and voice messaging), etc.
  • PDA personal digital assistant
  • the client 2 and applications client 2 a may be stored on more than one medium or stored on separate mediums.
  • the agent 3 and lobby 4 may also comprise one or more applications and may also be stored on some kind of computer readable medium 30 , 40 , respectively, that are also part of one or more wired or wireless devices, such as a server 34 or the like. Though shown as one component 34 , it should be understood that the agent 3 and lobby 4 may be separate units and need not be co-located.
  • a program/application may comprise code that controls the features and functions of a component shown in FIG. 1 . More details concerning the architecture 1 are set forth in the co-pending Applications mentioned above.
  • the device 200 may interact with the agent 3 through an interface 2 b.
  • the device 200 will be a hand-held device (or handset for short).
  • the device 200 may refer to the device 200 as simply a handset, it being understood that this is just one example of the type of device that may make use of the messages provided by the present invention.
  • the device or handset 200 generates, exchanges or forwards messages, many times it is the interface 2 b and/or client 2 /applications client 2 a that is actually involved in generating, forwarding and/or receiving messages.
  • the interface 2 b may comprise hardware, software, firmware or some combination of the three.
  • interface 2 b may comprise one or more programs/applications that may be co-located and stored on a computer readable medium 20 of some sort which may be, in turn, embedded within handset 200 .
  • a program/application may comprise code that controls the features and functions of interface 2 b.
  • the interface 2 b comprises software that works in conjunction with an air interface of handset 200 .
  • the client 2 and interface 2 b may typically handle all communications, including the exchange of messages with agent 3 .
  • the interface 2 b may be part of the client 2 .
  • the client 2 may generate messages formatted as binary User Datagram Protocol (UDP) packets (i.e., “short binary messages”) in order to minimize airlink delays and to make the implementation of the network 1 and its many agents 3,300 scalable.
  • UDP User Datagram Protocol
  • the messages generated by both the client 2 and agent 3 may be structured as follows:
  • the message header of such a message may include the following fields from the structure above.
  • the “SrcID” field e.g., 4 bytes in length. This field identifies the component that is sending or forwarding a message.
  • this field contains the identification (ID) of the handset.
  • ID is typically assigned by a provisioning server (not shown in FIG. 1 ). It may be assigned, for example, when the user subscribes to an always on service.
  • this field may contain the ID of the agent 3 which also may be assigned by a provisioning server.
  • the next field that may be part of the header is the “DstID” field. It too may be 4 bytes in length. This field may be used to identify the recipient of a message.
  • the third field that may be part of the header is a “SeqNo” field. Again, it may be 4 bytes in length. This field may be used to indicate the sequence number of a given message.
  • the next field that may be part of the header is the “Authentication” field. As with the other fields it may be 4 bytes in length. This field may be used to hold content/information to authenticate a sender of a message. It may also be used to assure that a message has not been corrupted or altered by an unauthorized third party (e.g., by sniffing).
  • the last field that will be discussed herein which may be part of the header is a “SubMsgs” field. In accordance with an exemplary embodiment of the present invention, this field may in fact comprise a sequence of one or more sub-messages.
  • sub-messages may be classified into four categories: state sync, presence update, game playing, and common sub-messages. It should be noted that the present invention places no restriction on the number or type of sub-messages that may be contained in a single message. Instead, a particular combination may be purely based on timing, performance or other considerations.
  • ACK acknowledgement
  • an ACK message itself may contain one or more sub-messages.
  • the general structure of a sub-message may take the form of:
  • the three sub-fields of the sub-message above may be further described as follows below. It should be noted that where a number of bytes is indicated as a length of a given sub-field this is merely an exemplary length. Other lengths may be substituted without changing the principles of the present invention.
  • the sub-fields are:
  • a state sync sub-message is used to synchronize the handset 200 and agent 3 , for example.
  • This type of sub-message is usually sent during a “power on” or initialization time period during which the device 200 , and in particular, the client 2 /interface 2 b, may be enabled.
  • Various information that is stored by the device 200 (and/or agent 3 if it is the agent that is being powered up) may be updated or synchronized during this time period.
  • One examples of such information are: game list(s), buddy list(s), home screen features, game screen features, and buddy screen features, to name just a few examples.
  • the handset 200 and agent 3 may lose synchronization with one another when, for example, changes occur to either one of them. For example, when a user changes the features of the device 200 the agent 3 may not automatically detect these changes. Such changes may involve adding/deleting a buddy to/from a buddy list or may be triggered when a new game is downloaded. To insure the device 200 and agent 3 are once again synchronized, the device 200 may generate and forward a message containing a sync state sub-message related to a given type of information or change. On the agent 3 side, a sync state sub-message may be generated and sent in order to refresh icons or keys on a display, keypad or the like (not shown in FIG. 1 ) that is part of the device 200 with new information collected, generated, analyzed or otherwise formatted by the agent 3 .
  • the present invention provides for the generation of a plurality of state sync sub-messages.
  • the handset 200 may generate and send a “Sync Request” sub-message to the agent 3 , along with five checksums, each checksum associated with a different type of state information.
  • the agent 3 may associate a different checksum with: (a) a most recent version of a particular type of information, and (b) a previous version of the information. For example, upon receiving a “Sync Request” sub-message from the handset 200 , the agent 3 may be operable to compare the received checksum in the sub-message with, for example, two versions of a checksum previously stored. Thereafter, the agent 3 may be further operable to determine which, if any, information is out of sync and which side (handset or agent) has the most recent version of the information.
  • the agent 3 maybe operable to generate and send a “Sync Response” sub-message back to handset 200 . If it happens that the agent 3 has the latest version of a particular type of information, the latest state/version of this information may be piggybacked (i.e., included in) as a part of the “Sync Response” sub-message. If, however, the handset 200 has the latest version, then the handset 200 may be operable to generate and send a “Sync Update” sub-message to the agent 3 after receiving the “Sync Response” sub-message from the agent 3 . Coming full circle, the agent 3 may yet be further operable to generate and send a “Sync Update Response” sub-message to the device 200 as an acknowledgement of sorts. The following are examples of the structure of some of the sync state sub-messages just discussed:
  • all of the checksums may have a length of 2 bytes by default, unless otherwise indicated.
  • sync state sub-message is a Sync Response sub-message:
  • sync state sub-message is a Sync Update sub-message:
  • the fourth type of sync state sub-message is a Sync Update Response sub-message:
  • the final, exemplary type of sync state sub-message is an Offline sub-message. This type of sub-message may be generated and sent by a handset to an agent to indicate that the handset is going offline.
  • the next type of sub-message is a “presence update” sub-message.
  • This type of sub-message may, for example, enable the handset 200 to subscribe and/or unsubscribe to receive the presence status (e.g. active/inactive) of other devices.
  • the presence status e.g. active/inactive
  • a more detailed explanation of the presence status of a device is given in co-pending U.S. patent application No. ______, mentioned above.
  • the handset 200 may receive updated presence status information after first subscribing to receive this information by generating and sending a “Subscribe” presence update sub-message to the agent 3 .
  • the agent 3 may forward the presence status of a buddy to the handset 200 by generating and sending a “Notify”, presence status sub-message.
  • the handset 200 may also provide its own presence status (e.g., active/inactive) to the agent 3 by generating and sending an “Availability Update”, presence update sub-message to the agent 3 .
  • This may be useful when, for example, a user wishes to enter, or exit, an on-line game or a group/lobby associated with such a game.
  • the third type of sub-message is a game playing sub-message.
  • This type of sub-message may be generated and sent by the device 200 to the agent 3 to: (a) play a game with an anonymous player; (b) invite a buddy(s) to play a game with the user of device 200 ; or (c) accept an invitation to play a game with a buddy, to give just a few examples.
  • ACK sub-message The last type of exemplary sub-message discussed herein is so-called a common sub-message.
  • One common sub-message is an acknowledgement (ACK) sub-message. This type of sub-message may be generated and sent by either a handset or agent. It is a generic sub-message that may be used to confirm the receipt of a message or sub-message.
  • the second type of common sub-message is a “Keepalive” sub-message. This is an optional sub-message that may be generated and sent by a handset to an agent on a periodic basis, typically during an “idle” time period (e.g., once every 5 minutes).
  • This type of sub-message enables an agent to receive and maintain the presence status of a handset. It may not be necessary for the handset to generate this type of sub-message if the handset's presence status information is available from another source.
  • the following are examples of the structure, format and content of acknowledgement and Keepalive sub-messages provided by the present invention.

Abstract

Components of an “always-on” network exchange messages to, among other things, allow an agent to monitor the “presence status” of an associated user. By monitoring the presence status of the user, the agent may act as a proxy for the user when the user becomes inactive.

Description

  • Co-pending U.S. patent application Ser. Nos. ______, ______, and ______, incorporated by reference in full herein as if set forth in full herein, disclose methods and devices which, among other things, enables users to conduct communication sessions (e.g., on-line games) quickly and with greatly reduced airlink time/bandwidth than previously thought possible. In general, the co-pending Applications just mentioned disclose “always-on” methods and devices because even when a user of a device is inactive (e.g., her device is powered-off) an “always-on agent” may act as a proxy and continue to act on behalf of the user/user's device during a given communication session.
  • BACKGROUND OF THE INVENTION
  • To carry out the features and functions described in the co-pending Applications mentioned above novel messages may be exchanged. The present invention is directed at the generation and subsequent exchange of such messages. The following discussion provides some examples of the format and content of such messages.
  • SUMMARY OF THE INVENTION
  • The present invention provides methods and devices that generate messages that may be exchanged between components of an “always-on” network and the like. For example, the present invention provides for methods that allow user devices and their agents exchange messages. In one exemplary method, a device may generate one or more messages, where each message contains at least one sub-message. The sub-message may: (a) contain information concerning the presence status of the device and its associated user; (b) indicate a subscribe/unsubscribe status to one or more services; (c) comprise an alert notification; (d) comprise a synchronization signal (“sync”); (e) contain game playing information; or (f) represent common messages, to name just some of the many types of sub-messages provided by the present invention.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 depicts a block diagram illustrating an “always-on” architecture according to one embodiment of the present invention.
  • DETAILED DESCRIPTION OF THE INVENTION. WITH EXAMPLES
  • Referring now to FIG. 1 there is shown an always-on architecture 1 in accordance with one embodiment of the present invention. This architecture 1 may be used by a service provider to deliver one or more services in a manner that is faster than previously thought possible while requiring a minimal amount of changes or upgrades to the provider's network.
  • While the discussion which follows will focus on on-line gaming, it should be understood that the architectures provided by the present invention may be used for any number of services; that is, they are not limited to just gaming services, applications or activities.
  • In addition, it should be understood that a service provider may chose to implement an always-on architecture provided by the present invention in any number of ways. For example, one architecture (such as architecture 1) may be implemented such that it is underneath another application (e.g., gaming application). That is to say any third party communication applications the service provider has available may lay on top of the always-on architecture.
  • To provide the always-on features and functions described in the co-pending Applications mentioned above, such as presence management/proxying, real-time launching of services, and game playing the components shown in FIG. 1 need to exchange messages with one another.
  • The architecture 1 in FIG. 1 comprises an always-on client 2 (“client”), applications client 2 a (e.g., “game client”), always-on proxy agent 3 (“agent”), always-on lobby 4 (“lobby”), an applications/game server/engine 5 (e.g., “game server”) and one or more other third party agents 300. Besides hardware implementations, the client 2 and applications client 2 a may also comprise one or more software or firmware programs/applications that may be co-located and stored on a computer readable medium 20 of some sort (e.g., hard-drive, compact disc, memory, memory and processor) which may be, in turn, embedded within a larger device 200, such as a wired or wireless telephone, personal digital assistant (PDA), computer, gaming device, or a device which combines one or more functions (e.g., email and voice messaging), etc., . Alternatively, the client 2 and applications client 2 a may be stored on more than one medium or stored on separate mediums. Likewise, the agent 3 and lobby 4 may also comprise one or more applications and may also be stored on some kind of computer readable medium 30, 40, respectively, that are also part of one or more wired or wireless devices, such as a server 34 or the like. Though shown as one component 34, it should be understood that the agent 3 and lobby 4 may be separate units and need not be co-located. When stored on one or more mediums, a program/application may comprise code that controls the features and functions of a component shown in FIG. 1. More details concerning the architecture 1 are set forth in the co-pending Applications mentioned above.
  • More specifically, in one embodiment of the present invention, the device 200 may interact with the agent 3 through an interface 2 b. Many times the device 200 will be a hand-held device (or handset for short). To simplify the explanation which follows we may refer to the device 200 as simply a handset, it being understood that this is just one example of the type of device that may make use of the messages provided by the present invention. In addition, though in our discussion we may state that the device or handset 200 generates, exchanges or forwards messages, many times it is the interface 2 b and/or client 2/applications client 2 a that is actually involved in generating, forwarding and/or receiving messages.
  • Like the client 2 and applications client 2 a, the interface 2 b may comprise hardware, software, firmware or some combination of the three. When embodied in software/firmware, interface 2 b may comprise one or more programs/applications that may be co-located and stored on a computer readable medium 20 of some sort which may be, in turn, embedded within handset 200. When stored on one or more mediums, a program/application may comprise code that controls the features and functions of interface 2 b. In yet an additional embodiment of the invention, the interface 2 b comprises software that works in conjunction with an air interface of handset 200.
  • Continuing, within handset 200 the client 2 and interface 2 b may typically handle all communications, including the exchange of messages with agent 3. In one alternative embodiment of the invention, the interface 2 b may be part of the client 2. For the sake of simplicity, we shall assume this is the case for the remainder of this discussion. However, it should be realized that this is an optional feature of the present invention. In accordance with an embodiment of the present invention, the client 2 may generate messages formatted as binary User Datagram Protocol (UDP) packets (i.e., “short binary messages”) in order to minimize airlink delays and to make the implementation of the network 1 and its many agents 3,300 scalable. In general, the messages generated by both the client 2 and agent 3 may be structured as follows:
      • MsgLen|Ver|#SubMsgs|SrcID|DstID|SeqNo|Authentication|(SubMsgs)*
        where the asterisk indicates one or more submessages.
  • The message header of such a message may include the following fields from the structure above. First, the “SrcID” field (e.g., 4 bytes in length). This field identifies the component that is sending or forwarding a message. In messages sent from the handset 200 to the agent 3, this field contains the identification (ID) of the handset. The ID is typically assigned by a provisioning server (not shown in FIG. 1). It may be assigned, for example, when the user subscribes to an always on service. In messages sent from the agent 3 to the handset 200, this field may contain the ID of the agent 3 which also may be assigned by a provisioning server.
  • The next field that may be part of the header is the “DstID” field. It too may be 4 bytes in length. This field may be used to identify the recipient of a message. The third field that may be part of the header is a “SeqNo” field. Again, it may be 4 bytes in length. This field may be used to indicate the sequence number of a given message. The next field that may be part of the header is the “Authentication” field. As with the other fields it may be 4 bytes in length. This field may be used to hold content/information to authenticate a sender of a message. It may also be used to assure that a message has not been corrupted or altered by an unauthorized third party (e.g., by sniffing). The last field that will be discussed herein which may be part of the header is a “SubMsgs” field. In accordance with an exemplary embodiment of the present invention, this field may in fact comprise a sequence of one or more sub-messages.
  • The following discussion will highlight some examples of sub-messages so that the reader may gain an understanding of the present invention. In general, sub-messages may be classified into four categories: state sync, presence update, game playing, and common sub-messages. It should be noted that the present invention places no restriction on the number or type of sub-messages that may be contained in a single message. Instead, a particular combination may be purely based on timing, performance or other considerations.
  • Further, it should be noted that if a particular message contains at least one sub-message that requires an acknowledgement (“ACK”) message, then one ACK message should be generated by the recipient of the message. Depending on the type and requirement of each sub-message, an ACK message itself may contain one or more sub-messages.
  • In accordance with one embodiment of the invention, the general structure of a sub-message may take the form of:
      • SubMsgLen|SubMsgType|SubMsgPayload
  • The three sub-fields of the sub-message above may be further described as follows below. It should be noted that where a number of bytes is indicated as a length of a given sub-field this is merely an exemplary length. Other lengths may be substituted without changing the principles of the present invention. The sub-fields are:
      • “SubMsgLen”: (2 bytes): This sub-field indicates a length of the sub-message.
      • “SubMsgType”: (1 byte): This sub-field indicates a sub-message type.
      • “SubMsgPayload”: This sub-field is for message specific data.
  • We now turn to a more detailed discussion of the state sync, presence update, game playing, and common sub-messages mentioned above.
  • In accordance with one embodiment of the present invention, a state sync sub-message is used to synchronize the handset 200 and agent 3, for example. This type of sub-message is usually sent during a “power on” or initialization time period during which the device 200, and in particular, the client 2/interface 2 b, may be enabled. Various information that is stored by the device 200 (and/or agent 3 if it is the agent that is being powered up) may be updated or synchronized during this time period. One examples of such information are: game list(s), buddy list(s), home screen features, game screen features, and buddy screen features, to name just a few examples.
  • As is known by those skilled in the art, the handset 200 and agent 3 may lose synchronization with one another when, for example, changes occur to either one of them. For example, when a user changes the features of the device 200 the agent 3 may not automatically detect these changes. Such changes may involve adding/deleting a buddy to/from a buddy list or may be triggered when a new game is downloaded. To insure the device 200 and agent 3 are once again synchronized, the device 200 may generate and forward a message containing a sync state sub-message related to a given type of information or change. On the agent 3 side, a sync state sub-message may be generated and sent in order to refresh icons or keys on a display, keypad or the like (not shown in FIG. 1) that is part of the device 200 with new information collected, generated, analyzed or otherwise formatted by the agent 3.
  • The present invention provides for the generation of a plurality of state sync sub-messages. In accordance with one embodiment of the invention, at the beginning of a synchronization process, the handset 200 may generate and send a “Sync Request” sub-message to the agent 3, along with five checksums, each checksum associated with a different type of state information.
  • In accordance with the present invention, the agent 3 may associate a different checksum with: (a) a most recent version of a particular type of information, and (b) a previous version of the information. For example, upon receiving a “Sync Request” sub-message from the handset 200, the agent 3 may be operable to compare the received checksum in the sub-message with, for example, two versions of a checksum previously stored. Thereafter, the agent 3 may be further operable to determine which, if any, information is out of sync and which side (handset or agent) has the most recent version of the information.
  • Once it has received a Sync Request, the agent 3 maybe operable to generate and send a “Sync Response” sub-message back to handset 200. If it happens that the agent 3 has the latest version of a particular type of information, the latest state/version of this information may be piggybacked (i.e., included in) as a part of the “Sync Response” sub-message. If, however, the handset 200 has the latest version, then the handset 200 may be operable to generate and send a “Sync Update” sub-message to the agent 3 after receiving the “Sync Response” sub-message from the agent 3. Coming full circle, the agent 3 may yet be further operable to generate and send a “Sync Update Response” sub-message to the device 200 as an acknowledgement of sorts. The following are examples of the structure of some of the sync state sub-messages just discussed:
      • SYNC REQUEST: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: SYNC
        • Sync request payload (Each entry is optional)
          • Type of Sync (1 byte): GameList
            • Checksum (2 bytes)
          • Type of Sync (1 byte): BuddyList
            • Checksum
          • Type of Sync (1 byte): HomeScreen
            • Checksum
          • Type of Sync (1 byte): GameScreen
            • Checksum
          • Type of Sync (1 byte): BuddyScreen
            • Checksum
  • In accordance with an embodiment of the invention, all of the checksums may have a length of 2 bytes by default, unless otherwise indicated.
  • The next type of sync state sub-message is a Sync Response sub-message:
      • SYNC RESPONSE: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: SYNC-RESPONSE
        • Sequence number of corresponding request
        • sync update payload
          • Type of update (1 byte): GameList
            • Result (1 byte):
            •  0: Ok (no sub-message, etc., follows)
            •  1: out of sync, handset version is more recent (no other sub-message, etc., follows)
            •  2: out of sync, agent version is more recent (hence an update may follow)
            • Number of games
            • List of games:
            •  (gameIndex, name (string: length, bytes), . . . )
          • Type of update (1 byte): BuddyList
            • Result (1 byte):
            •  0: Ok (no sub-message, etc., follows)
            •  1: out of sync, handset version is more recent (no other sub-message, etc.,follows)
            •  2: out of sync, agent version is more recent (an update may follow)
            • Number of buddies (for gaming only)
            • List of buddies:
            •  (buddyIndex, NAI, ScreenName, . . . )
          • Type of update (1 byte): HomeScreen
            • Result: (1 byte)
            •  0: Ok (no sub-message, etc., follows)
            •  1: out of sync, handset version is more recent (no sub-message, etc., follow)
            •  2: out of sync, UA version is more recent (hence an update may follow)
            •  Number of icons on screen (1byte)
            •  List of icons:
            •  {iconIndex, gameIndex, #buddies, (buddyIndex1, buddyIndex 2) . . . ,}
          • Type of update (1 byte): GameScreen
            • Result (1 byte):
            •  0: Ok (no sub-message, etc., follows)
            •  1: out of sync, handset version is more recent (no sub-message, etc., follows)
            •  2: out of sync, agent version is more recent (hence an update may follow)
            • Number of icons on screen (1 byte)
            • List of icons:
            •  {iconIndex, gameIndex, #buddies, (buddyIndex1, buddyIndex2 . . . )}
          • Type of update (1 byte): BuddyScreen
            • Result (1byte):
            •  0: Ok (no sub-message, etc., follows)
            •  1: out of sync, handset version is more recent (no sub-message, etc., follows)
            •  2: out of sync, agent version is more recent (hence an update may follow)
            • Number of icons on screen (1 byte)
            • List of buddy icons or names (each buddy may be shown as a row, along with associated games):
            •  {rowIndex, buddyIndex, #games, (gameIndex1, gameIndex2, . . . ) }
  • The next type of sync state sub-message is a Sync Update sub-message:
      • SYNC UPDATE: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
      • Message length
      • Message type: SYNC-UPDATE
      • Sync update payload (same as a Sync Response message)
  • The fourth type of sync state sub-message is a Sync Update Response sub-message:
      • SYNC UPDATE RESPONSE: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
      • Message length
      • Message type: SYNC-UPDATE-ACK
      • Sequence number of corresponding update
      • Sync Update Confirm Payload: may be the same as the payload of a Sync Request sub-message.
  • The final, exemplary type of sync state sub-message is an Offline sub-message. This type of sub-message may be generated and sent by a handset to an agent to indicate that the handset is going offline.
      • OFFLINE: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
      • Message length
      • Message type: OFFLINE
  • The next type of sub-message is a “presence update” sub-message. This type of sub-message may, for example, enable the handset 200 to subscribe and/or unsubscribe to receive the presence status (e.g. active/inactive) of other devices. A more detailed explanation of the presence status of a device is given in co-pending U.S. patent application No. ______, mentioned above.
  • In accordance with an embodiment of the present invention, the handset 200 may receive updated presence status information after first subscribing to receive this information by generating and sending a “Subscribe” presence update sub-message to the agent 3. Alternatively, if the handset 200 generates an “Unsubscribe” sub-message it will not receive presence update information. Conversely, the agent 3 may forward the presence status of a buddy to the handset 200 by generating and sending a “Notify”, presence status sub-message.
  • In a further embodiment of the invention, the handset 200 may also provide its own presence status (e.g., active/inactive) to the agent 3 by generating and sending an “Availability Update”, presence update sub-message to the agent 3. This may be useful when, for example, a user wishes to enter, or exit, an on-line game or a group/lobby associated with such a game.
  • The following are examples of the structure, format and content of the presence update sub-messages just mentioned. It should be noted for the sake of completeness, that some of these sub-messages may require an acknowledgement message.
      • SUBSCRIBE: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: SUBSCRIBE
        • AlertType (1 byte): Presence
          • Number of buddies (2bytes)
          • BuddyIndex1, BuddyIndex2,
      • UNSUBSCRIBE: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: UNSUBSCRIBE
        • AlertType: Presence
          • Number of buddies
          • BuddyIndex1, BuddyIndex2,
      • NOTIFY: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: NOTIFY
        • AlertType: Presence
          • UserID
          • PresenceInfo ( using one or more types of encoding)
      • AVAILABILITY UPDATE: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message Type: AVAILABILITY
        • ProfileID (1 byte): may include, for example, the values: OME, WORK, INTRANSIT, INGAME, NA
  • The third type of sub-message is a game playing sub-message. This type of sub-message may be generated and sent by the device 200 to the agent 3 to: (a) play a game with an anonymous player; (b) invite a buddy(s) to play a game with the user of device 200; or (c) accept an invitation to play a game with a buddy, to give just a few examples.
  • The following are examples of the structure, format and content of some specific game playing sub-messages provided by the present invention. Again, it should be noted for the sake of completeness that some of these sub-messages may require an acknowledgement message.
      • PlayWithBuddy: This sub-message may be generated and sent by a handset to an agent to play a specified game with a specified buddy. It may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: PLAY-WITH-BUDDY
        • GameIndex (2 bytes)
        • List of buddies to invite
          • Number of buddies (2 bytes)
          • BuddyIndex1, BuddyIndex2,
      • PlayGameWithAnyone: This sub-message may be generated and sent by a handset to an agent to play a specified game with any available player. It may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: PLAY-WITH-ANY
        • GameIndex
      • Game Invite Alert: This sub-message may be generated and sent by an agent to a handset/user may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: GAME-INVITE-ALERT
        • UserID of the inviting player
        • GameIndex
      • Game Invite Reply: This sub-message may be generated and sent by a handset to an agent. It may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: GAME-INVITE-RESPONSE
        • Sequence number of the corresponding Game Invite Alert
        • Response (1byte): 0: accept; 1: reject
      • Matching Status Report: This sub-message may be generated and sent by an agent to a handset/user. It may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: MATCHING-STATUS
        • Number of currently matched players (1 byte)
      • Game Start: This sub-message may be generated and sent by an agent to a handset/user. It may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: GAME-START
        • Lobby ID (4 bytes)
        • Game server address (4 bytes)
        • Game session ID
  • The last type of exemplary sub-message discussed herein is so-called a common sub-message. One common sub-message is an acknowledgement (ACK) sub-message. This type of sub-message may be generated and sent by either a handset or agent. It is a generic sub-message that may be used to confirm the receipt of a message or sub-message. The second type of common sub-message is a “Keepalive” sub-message. This is an optional sub-message that may be generated and sent by a handset to an agent on a periodic basis, typically during an “idle” time period (e.g., once every 5 minutes). This type of sub-message enables an agent to receive and maintain the presence status of a handset. It may not be necessary for the handset to generate this type of sub-message if the handset's presence status information is available from another source. The following are examples of the structure, format and content of acknowledgement and Keepalive sub-messages provided by the present invention.
      • ACK: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: ACK
        • Sequence number of corresponding message being acknowledged
      • Keepalive: may comprise the following sub-fields (with exemplary, recommended lengths noted in parentheses):
        • Message length
        • Message type: KEEPALIVE
  • Up until now, the discussion has focused on those messages that may be exchanged between a handset and an agent. However, interfaces between the client 2 and game client 2 a, between the agent 3 and lobby 4, and between the lobby 4 and game server 5 are also provided by the present invention.
  • The above discussion sets forth some examples of methods and devices provided by the present invention for enabling the exchange of messages between components of an always-on network. The true scope of the present invention, however, is provided by the claims that follow where it should be noted that the term “device” is meant to include devices, like device 200 for example, and/or their associated users.

Claims (14)

1. A method for exchanging messages between a client device and an always on agent comprising:
generating one or more messages, each message comprising at least one submessage,
wherein the at least one submessage comprises a presence status that indicates whether a device is active or inactive.
1. The method as in claim 1 wherein the at least one submessage comprises either a subscribe or unsubscribe submessage.
2. The method as in claim 1 wherein the at least one submessage comprises an alert notification submessage.
3. The method as in claim 1 further comprising forwarding the one or more messages to the always on agent.
4. The method as in claim 1 wherein the at least one submessage comprises a synchronization submessage.
5. The method as in claim 1 wherein the at least one submessage comprises a game playing submessage.
6. The method as in claim 1 wherein the at least one submessage comprises a common submessage.
7. A device for exchanging messages with an always on agent operable to:
generate one or more messages, each message comprising at least one submessage,
wherein the at least one submessage comprises a presence status that indicates whether a device is active or inactive.
8. The device as in claim 8 wherein the at least one submessage comprises either a subscribe or unsubscribe submessage.
9. The device as in claim 8 wherein the at least one submessage comprises an alert notification submessage.
10. The device as in claim 8 further operable to forward the one or more messages to the always on agent.
11. The device as in claim 8 wherein the at least one submessage comprises a synchronization submessage.
12. The device as in claim 8 wherein the at least one submessage comprises a game playing submessage.
13. The device as in claim 8 wherein the at least one submessage comprises a common submessage.
US11/393,901 2006-03-31 2006-03-31 Methods and devices for exchanging messages in an always-on network Abandoned US20070238526A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/393,901 US20070238526A1 (en) 2006-03-31 2006-03-31 Methods and devices for exchanging messages in an always-on network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/393,901 US20070238526A1 (en) 2006-03-31 2006-03-31 Methods and devices for exchanging messages in an always-on network

Publications (1)

Publication Number Publication Date
US20070238526A1 true US20070238526A1 (en) 2007-10-11

Family

ID=38576013

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/393,901 Abandoned US20070238526A1 (en) 2006-03-31 2006-03-31 Methods and devices for exchanging messages in an always-on network

Country Status (1)

Country Link
US (1) US20070238526A1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090132720A1 (en) * 2006-11-13 2009-05-21 Bally Gaming, Inc. Method and system for providing download and configuration job progress tracking and display via host user interface
US9058716B2 (en) 2011-06-06 2015-06-16 Bally Gaming, Inc. Remote game play in a wireless gaming environment
US9120007B2 (en) 2012-01-18 2015-09-01 Bally Gaming, Inc. Network gaming architecture, gaming systems, and related methods
US9275512B2 (en) 2006-11-10 2016-03-01 Bally Gaming, Inc. Secure communications in gaming system
US9443377B2 (en) 2008-05-30 2016-09-13 Bally Gaming, Inc. Web pages for gaming devices
US9466172B2 (en) 2006-11-13 2016-10-11 Bally Gaming, Inc. Download and configuration management engine for gaming system
US9483911B2 (en) 2008-04-30 2016-11-01 Bally Gaming, Inc. Information distribution in gaming networks
US9613487B2 (en) 2007-11-02 2017-04-04 Bally Gaming, Inc. Game related systems, methods, and articles that combine virtual and physical elements
US9786123B2 (en) 2006-04-12 2017-10-10 Bally Gaming, Inc. Wireless gaming environment
US9792770B2 (en) 2012-01-18 2017-10-17 Bally Gaming, Inc. Play for fun network gaming system and method
US11083962B2 (en) * 2018-08-31 2021-08-10 Gree, Inc. System, method, and device for processing game

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020052968A1 (en) * 2000-01-31 2002-05-02 Rudy Bonefas Messaging method and apparatus for routing messages in a client server environment over multiple wireless and wireline networks
US20030009530A1 (en) * 2000-11-08 2003-01-09 Laurent Philonenko Instant message presence protocol for facilitating communication center activity
US20030023690A1 (en) * 2001-07-26 2003-01-30 Sunit Lohtia Method and apparatus for providing selective delivery of notifications to users of multiple devices over a network
US20030037113A1 (en) * 2000-11-08 2003-02-20 Yevgeniy Petrovykh Method and apparatus for anticipating and planning communication-center resources based on evaluation of events waiting in a communication center master queue
US6557041B2 (en) * 1998-08-24 2003-04-29 Koninklijke Philips Electronics N.V. Real time video game uses emulation of streaming over the internet in a broadcast event
US20050004974A1 (en) * 2002-10-16 2005-01-06 Xerox Corporation Device model agent
US20050015494A1 (en) * 2003-05-15 2005-01-20 Maria Adamczyk Data architectures for managing quality of service and/or bandwidth allocation in a regional/access network (RAN)
US20050119976A1 (en) * 2003-11-14 2005-06-02 Crossflux Inc. System and method for managing the performance of digital media in computer networks
US20060026304A1 (en) * 2004-05-04 2006-02-02 Price Robert M System and method for updating software in electronic devices
US20070010330A1 (en) * 2005-01-04 2007-01-11 Justin Cooper System and method forming interactive gaming over a TV network
US7299009B2 (en) * 2004-02-25 2007-11-20 Nokia Corporation Blue-tooth assisted wireless local area network (WLAN) home network systems
US20080052718A1 (en) * 2004-08-21 2008-02-28 Telefonaktiebolaget Lm Ericsson (Publ) Resource Management

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6557041B2 (en) * 1998-08-24 2003-04-29 Koninklijke Philips Electronics N.V. Real time video game uses emulation of streaming over the internet in a broadcast event
US20020052968A1 (en) * 2000-01-31 2002-05-02 Rudy Bonefas Messaging method and apparatus for routing messages in a client server environment over multiple wireless and wireline networks
US20030009530A1 (en) * 2000-11-08 2003-01-09 Laurent Philonenko Instant message presence protocol for facilitating communication center activity
US20030037113A1 (en) * 2000-11-08 2003-02-20 Yevgeniy Petrovykh Method and apparatus for anticipating and planning communication-center resources based on evaluation of events waiting in a communication center master queue
US20030023690A1 (en) * 2001-07-26 2003-01-30 Sunit Lohtia Method and apparatus for providing selective delivery of notifications to users of multiple devices over a network
US20050004974A1 (en) * 2002-10-16 2005-01-06 Xerox Corporation Device model agent
US20050015494A1 (en) * 2003-05-15 2005-01-20 Maria Adamczyk Data architectures for managing quality of service and/or bandwidth allocation in a regional/access network (RAN)
US20050119976A1 (en) * 2003-11-14 2005-06-02 Crossflux Inc. System and method for managing the performance of digital media in computer networks
US7299009B2 (en) * 2004-02-25 2007-11-20 Nokia Corporation Blue-tooth assisted wireless local area network (WLAN) home network systems
US20060026304A1 (en) * 2004-05-04 2006-02-02 Price Robert M System and method for updating software in electronic devices
US20080052718A1 (en) * 2004-08-21 2008-02-28 Telefonaktiebolaget Lm Ericsson (Publ) Resource Management
US20070010330A1 (en) * 2005-01-04 2007-01-11 Justin Cooper System and method forming interactive gaming over a TV network

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9786123B2 (en) 2006-04-12 2017-10-10 Bally Gaming, Inc. Wireless gaming environment
US9275512B2 (en) 2006-11-10 2016-03-01 Bally Gaming, Inc. Secure communications in gaming system
US9466172B2 (en) 2006-11-13 2016-10-11 Bally Gaming, Inc. Download and configuration management engine for gaming system
US9082258B2 (en) * 2006-11-13 2015-07-14 Bally Gaming, Inc. Method and system for providing download and configuration job progress tracking and display via host user interface
US20090132720A1 (en) * 2006-11-13 2009-05-21 Bally Gaming, Inc. Method and system for providing download and configuration job progress tracking and display via host user interface
US9613487B2 (en) 2007-11-02 2017-04-04 Bally Gaming, Inc. Game related systems, methods, and articles that combine virtual and physical elements
US9483911B2 (en) 2008-04-30 2016-11-01 Bally Gaming, Inc. Information distribution in gaming networks
US9443377B2 (en) 2008-05-30 2016-09-13 Bally Gaming, Inc. Web pages for gaming devices
US9058716B2 (en) 2011-06-06 2015-06-16 Bally Gaming, Inc. Remote game play in a wireless gaming environment
US9898889B2 (en) 2011-06-06 2018-02-20 Bally Gaming, Inc. Remote game play in a wireless gaming environment
US9120007B2 (en) 2012-01-18 2015-09-01 Bally Gaming, Inc. Network gaming architecture, gaming systems, and related methods
US9792770B2 (en) 2012-01-18 2017-10-17 Bally Gaming, Inc. Play for fun network gaming system and method
US10403091B2 (en) 2012-01-18 2019-09-03 Bally Gaming, Inc. Play for fun network gaming system and method
US11083962B2 (en) * 2018-08-31 2021-08-10 Gree, Inc. System, method, and device for processing game
US20210331068A1 (en) * 2018-08-31 2021-10-28 Gree, Inc. System, method, and device for processing game
US11890537B2 (en) * 2018-08-31 2024-02-06 Gree, Inc. System, method, and device for processing game

Similar Documents

Publication Publication Date Title
US20070238526A1 (en) Methods and devices for exchanging messages in an always-on network
US10425782B2 (en) Voice messaging method and mobile terminal supporting voice messaging in mobile messenger service
US6699125B2 (en) Game server for use in connection with a messenger server
US9354777B2 (en) Method for creating a peer-to-peer immediate messaging solution without using an instant messaging server
KR100800278B1 (en) System for providing continuity between messaging clients and method therefor
US9119067B2 (en) Embodiments of a system and method for securely managing multiple user handles across multiple data processing devices
AU2012262053B2 (en) System and method for secure instant messaging
KR101662352B1 (en) System and method for managing multiple queues of non-persistent messages in a networked environment
US9078128B2 (en) System and method for secure identity service
US8825878B2 (en) Instant messaging device/server protocol
US20060194596A1 (en) System and method for direct peer to peer mobile messaging
KR101301434B1 (en) Voice instant messaging between mobile and computing devices
US20090227375A1 (en) Method and apparatus for employing cell phones as video game controllers
US20020062345A1 (en) Thin instant messaging proxy interface with persistent sessions
US20130297794A1 (en) Split channel authenticity queries in multi-party dialog
US7593988B2 (en) Systems and methods for multiparty session invite
US9462069B2 (en) Presence management proxying methods and devices
Salin Mobile instant messaging systems-a comparative study and implementation
CN101610160A (en) A kind of control device and method of selecting user terminal to release advertising information
KR100397286B1 (en) real time chatting system between plural people through computers connected via network and method for the same, and storage medium storing program implementing the same method
Griwodz et al. RELAY—On the Performance and Resource Utilisation of Time-Dependent Large-Scale Distributed Systems

Legal Events

Date Code Title Description
AS Assignment

Owner name: LUCENT TECHNOLOGIES INC, UNITED STATES

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHANDRANMENON, GIRISH P.;HAO, FANG;MILLER, SCOTT C.;AND OTHERS;REEL/FRAME:018008/0012;SIGNING DATES FROM 20060512 TO 20060619

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION