METHOD AND DEVICES FOR RELAYED PEER-TO-PEER COMMUNICATIONS BETWEEN TERMINALS IN MOBILE NETWORKS
The present invention relates to a method and devices for peer-to-peer communications in mobile networks and especially to relayed peer-to-peer communications between mobile terminals operable in public land mobile networks (PLMN).
Current cellular network implementations, in particular 2nd generation and 2.5 generation cellular networks do not allow for terminal end-to-end communications with exception of voice call communications and message communications. The capability of mobile terminals to communicate over cellular network increases continuously, especially processing capabilities and storage capabilities. In parallel with an increasing demand in complex terminal client applications terminal end-to-end peer-to-peer data communication is an issue of complex applications operating in client-server environment and implemented completely on terminals.
Particularly, packet switched data services such as for instance general packet radio services (GPRS) available in global system for mobile communication (GSM) and implemented in state of the art mobile terminals have been introduced and standardized with regard to client-server interoperability constituted between a client mobile terminals being part of a cellular network and server devices being part of a packet switched fixed network such as the internet. Both cellular networks (or public land mobile networks PLMNs) and the fixed networks are interconnected via appropriate gateway network entities. More particularly, current GPRS implementations make use of network address translation (NAT) which is in principle a technique to translate network addresses of terminal devices in a private network being based on private address allocation into at least one public address which is applicable in a public network, such as especially the internet. Conventionally, NAT technique is usually well known in local area networks (LANs) environments connecting local terminal device via data routing network entities (i.e. for instance a router, a gateway, an access server etc.) capable for NAT with a wide area network (WAN) that is particularly the internet.
In brief summary, current implementation of packet switched networks in mobile communications is adequately adapted for data communications with fixed server devices in fixed packet switched networks for instance comprising typically browsing WAP/WEB pages, retrieving email communication and like client-server application scenarios. Nevertheless the
current implementation of packet switched networks in mobile communications does not allow for direct terminal peer-to-peer data communications between two mobile terminal devices, since especially the employed NAT technique prevents initiation of direct terminal peer-to-peer connections.
Nowadays state of the art mobile terminal devices capable for mobile communications are typically able to perform complex applications, which take advantages in data communications with other mobile terminal devices having such capabilities as stated above for data exchange. Those applications follow the conventional paradigm of fixed multi-user client-server applications. That means that such applications may be download as client applications on mobile terminal devices and when a user wishes to participate in the data exchange capability the applications connect to dedicated server entities in fixed networks, the address of which is conventionally hard-coded or soft-coded in the applications. The dedicated server entities are conventionally hosted on a network device. Once connection to a coded dedicated server entity is established, the user is allowed for communication with one or more participants also being in communication with the dedicated server entity. For this, the coded dedicated server entity usually provides a so-called server lobby area or a likewise procedure in which for instance currently present participants are listed by identifiers such as nicknames. The user is enabled to choose one or more present participants to be invited for data exchange. Be informed that participants shall be understood as users' mobile terminal devices being connected to the dedicated service device and performing client applications that correspond to the aforementioned client application or that are at least similar in function.
This introduced conventional solution following the traditional paradigm suffers in several disadvantages concerning the usability and the network environment. The usability addresses user operations and is a primary issue of such applications. Following situation shall be outlined as a way of illustration: two particular but arbitrarily selected users wish to exchange data using their mobile terminal devices provided with corresponding client applications for data exchange between each other. The particular users have to agree beforehand with a moment in time to meet on a dedicated server entity and with their identifiers to allow recognition of each other on the server entity. Misunderstandings and disagreements are nearly inevitable interdependent. Moreover, the agreement between the users is time and cost expensive.
The network environment addresses the dedicated server entity especially technical requirement thereof. When following the conventional solution, each such terminal application as stated above, requires a separate dedicated server entity set-up therefor. That means, that once a dedicated server entity is not available any more the application is simultaneously not operable
any more. The bounding of applications to particular dedicated server entities is normally disadvantageous in a fast changing technical and economical environment, since operation of such dedicated server entities have to be maintained and operators of the dedicated server entities may stop services due to economical or technical reasons implying a loss of the communication function of applications requiring the dedicated server entities.
An object of the present invention is to provide peer-to-peer connectivity between at least two terminals in cellular networks. Especially, an object of the present invention is to provide quasi peer-to-peer connectivity via data packet switched communication services applicable for exchanging data between several mobile terminals capable for data communication via data packet switched communication services in cellular networks.
A further object of the present invention is to overcome the hitherto used agreement requirements, which have to be made between users that whish to participate in the data exchange, by a user-friendly procedure minimizing the user interaction required for making use of the peer-to-peer connectivity.
The objects of the present invention are solved by method for network devices, terminal devices and systems to allow for quasi peer-to-peer data exchange between several mobile terminals operable cellular networks by relaying data to be communicated peer-to-peer via data relay services.
The objects of the present invention are also solved by devices, network devices, terminals, mobile terminals and systems applicable to operate the aforementioned methods according to embodiments of the invention.
Advantageously, the inventive peer-to-peer connectivity between mobile tenninals in mobile networks is operable with any application operable on the mobile terminals. The inventive peer- to-peer connectivity uses a generic data relay entity which allows for exchanging arbitrary data contents and substituting the plurality of separate dedicated and specialized server entities as described above. Those skilled in the art will appreciate that the inventive concept improves the usability and the operational efforts on side of the server operators. The peer-to-peer connectivity according to the present invention implements further a semi-automatic notification mechanism including transmitting of information and configuration data relating to the peer-to-peer connectivity.
According to a first aspect of the present invention, a method for enabling quasi peer-to-peer connectivity between mobile terminals subscribed in cellular networks by the means of a relay entity is provided. A quasi peer-to-peer communication is established. Several mobile terminals participate in the established quasi peer-to-peer communication to communicate data with each other in a kind of broadcast communication. This means, data is received from one mobile terminal, which is one out of a set of mobile terminals, which all participate in a common quasi peer-to-peer data communication for exchanging data with each other. Information about destination mobile terminals is retrieved/identified. The destination mobile terminals are all mobile terminals out of the set of mobile terminals except that one mobile tenninal, which has previously transmitted the data. The data is replayed/replicated such that the data can be transmitted to the destination mobile terminals on the basis of the retrieved information. Additionally, the relay entity is responsible for message communication processing relating to the aforementioned establishment of the employed quasi peer-to-peer data communication. Indeed, the processing of the message communication comprises receiving of messages, processing them in accordance with the contents of the received messages and generating corresponding messages in fonn of requests and acknowledgements on the basis of instructions comprised in received messages. More detailed processing operations are described below.
According to an embodiment of the invention, a relay session is associated with the quasi peer- to-peer communication for handing data communication between the set of mobile terminals. The relay session requires to be established first to enable the quasi peer-to-peer communication between the set of mobile terminals, which is performed by an initiating mobile terminal. The relay session forms a basic management entity for associating the mobile terminals out of the set of mobile terminals with the relay session and with the quasi peer-to-peer communication, in which the mobile terminals out of the set of mobile terminals participate.
According to another embodiment of the invention, the establishment of the relay session is carried out by receiving an initiation request for initiation of the relay session from an initiating mobile terminal. The initiation request comprises at least information about mobile terminals, which shall be invited to participate in the quasi peer-to-peer data communication and relay session, respectively, and an instruction to initiate and establish a new relay session forming the relay session. Finally, an acknowledgement is transmitted to the initiating mobile terminal comprising session information relating to the established relay session.
It shall be noted that the inviting mobile terminal and at least a subset of the invited mobile terminals form after successful establishment the set of mobile terminals participating in the quasi peer-to-peer data communication.
According to a further embodiment of the invention, acknowledgements from the invited mobile terminals are received in response to the invitation requests. The acknowledgements inform about acceptance or rejection of the invitation by the addressed invited mobile terminals.
According to yet another embodiment of the invention, the initiation request comprises one or more information out of a set of information comprising an identity information relating to the initiating mobile terminal; an information about an application operable with the quasi peer-to- peer data communication; an information about the invited mobile terminals such a identity information; an authentication information; an encryption information; and an information relating to communication properties of the quasi peer-to-peer data communication.
According to an additional embodiment of the invention, the mobile terminals authenticate before participating in the quasi peer-to-peer communication.
According to an embodiment of the invention, the mobile terminals operate over data packet switched services for communicating said data, in particular over general packet radio service (GPRS).
According to another embodiment of the invention, the mobile terminals communicate via at least one of suitable transmission protocols comprising for instance transmission control protocol (TCP) and user datagram protocol (UDP).
According to a second aspect of the present invention, a method for allowing a mobile terminal for quasi peer-to-peer data connectivity with at least one other mobile terminal is provided. A quasi peer-to-peer communication is established between the mobile terminal and the at least one other mobile terminal. The mobile terminal and the at least one other mobile terminal participate in the established quasi peer-to-peer communication to communicate data with each other in a kind of broadcast communication. On the one hand, data which are to be communicated to the at least one other mobile terminal are transmitted to a relay entity, which is responsible for passing on the data to the at least one other mobile terminal. On the other hand, data, which originate from the at least one other mobile terminal, are received from the relay entity, which has passed on the data received from the other one mobile terminal. Message communication, which relates to the aforementioned establishment of the quasi peer-to-peer data communication is processed by the relay entity. Indeed, the processing of the message communication comprises receiving of messages, processing in accordance with the contents of the received messages and generating
corresponding messages in form of requests and acknowledgements on the basis of instructions comprised in received messages. More detailed processing operations are described below.
According to an embodiment of the invention, an initiation request is transmitted to the relay entity, in order to establish the quasi peer-to-peer data communication. The initiation request comprises at least information about the at least one other mobile terminal, which is intended to be invited to participate in the quasi peer-to-peer data communication, and instructions to establish the quasi peer-to-peer data communication. Afterwards an acknowledgement is received from the relay entity. The acknowledgement comprises at least session information associated with a relay session. The relay session is associated with the quasi peer-to-peer data communication to enable the handling of the data communicated via the quasi peer-to-peer data communication between the mobile terminal and the at least one other mobile terminal. Therefore, data, which are to be communicated to the at least one other mobile terminal are preferably provided with the session information.
According to another embodiment of the invention, invitation request is received from the relay entity. The invitation request requests to participate in a quasi peer-to-peer data communication. An acknowledgement is transmitted to the relay entity in consequence of the invitation request, The acknowledgement informs the relay entity about acceptance or rejection of the invitation, h case of acceptance the mobile terminal becomes participant in the quasi peer-to-peer data communication.
According to another embodiment of the invention, the initiation request, the invitation request and/or the acknowledgement are communicated via a peer-to-peer communication mechanism, particularly via a peer-to-peer messaging mechanism such as short message service (SMS), smart messaging over SMS, enhanced message service (EMS), multimedia message service (MMS), peer-to-peer instant messaging services etc.
According to a further embodiment of the invention, the mobile terminal and/or said at least one other mobile terminal authenticate at the relay entity preferably before data communicating over the quasi peer-to-peer communication in which the mobile terminals participate.
According to an additional embodiment of the invention, the mobile terminals communicate over data packet switched services for communicating the data with the relay entity. Suitable data packet switched services maybe GPRS.
According to yet another embodiment of the invention, the mobile terminals communicate via at least one of suitable transmission protocols comprising for instance TCP and UDP.
According to a third aspect of the invention, a method for enabling quasi peer-to-peer data connectivity in a system is provided. The system comprises at least two mobile terminals each of which capable for communicating in a cellular network. Further, the system also comprises a relay entity. Each of the mobile terminals is further adapted to perform operations in accordance with the method for allowing a mobile terminal for quasi peer-to-peer data connectivity with at least one other mobile terminal as aforementioned. The relay entity serves for data relay services and is adapted to perform operations in accordance with the method for enabling quasi peer-to- peer connectivity between mobile terminals subscribed in cellular networks as aforementioned.
According to a fourth aspect of the invention, computer program product for executing a method for executing a method for enabling quasi peer-to-peer connectivity between at least two mobile terminals in cellular communication networks is provided. The computer program product comprises program code sections for carrying out the steps of the method according to an aforementioned embodiment of the invention, when the program is run on a controller, processor-based device, a computer, a terminal, a network device, a mobile terminal, or a mobile communication enabled terminal. Alternatively, an application specific integrated circuit (ASIC) may implement one or more instructions that are adapted to realize the aforementioned steps of the method of an aforementioned embodiment of the invention, i.e. equivalent with the aforementioned computer program product.
According to a fifth aspect of the invention, a computer program product is provided, which comprises program code sections stored on a machine-readable medium for carrying out the steps of the method according to an aforementioned embodiment of the invention, when the computer program product is run on a controller, processor-based device, a computer, a terminal, a network device, a mobile terminal, or a mobile communication enabled terminal.
According to a sixth aspect of the invention, a software tool is provided. The software tool comprises program portions for carrying out the operations of the aforementioned methods when the software tool is implemented in a computer program and/or executed.
According to a seventh aspect of the invention, a computer data signal embodied in a carrier wave and representing instructions is provided which when executed by a processor cause the steps of the method according to an aforementioned embodiment of the invention to be carried out.
According to a eighth aspect of the invention, a relay entity for enabling quasi peer-to-peer connectivity between mobile terminals in cellular communication networks is provided. The relay entity comprises at least a network interface, a protocol handler module and a redirector module. The network interface is adapted for receiving requests and data associated with a quasi peer-to-peer communication and for transmitting responses and said data associated with said quasi peer-to-peer communication. The protocol handler module is adapted to handle and/or manage requests received from the mobile terminals and requests to be transmitted to mobile terminals. The requests comprise at least initiation requests from an initiating mobile terminal, and invitation requests to be transmitted to invited mobile terminals. The redirector module is adapted to handle and manage the data associated with the quasi peer-to-peer communication on the basis of the relay session that is associated with a quasi peer-to-peer communication. The data received from one mobile terminal are transmitted to all remaining ones of said mobile terminals with exception of that one mobile terminal from which the data have been received. This operation may be denoted as passing on of the data and may require a buffering of the data in a suitable buffer storage and a replaying/replicating of the data for transmission to the remaining mobile terminals. The redirector module may be configured by the protocol handler module in accordance with the requests handled thereby.
According to an ninth aspect of the invention, a mobile terminal enabled for quasi peer-to-peer connectivity in a cellular communication network with at least one other mobile terminal is provided. The mobile terminal comprises at least a cellular communication interface and a peer- to-peer communication module interfacing between said cellular communication interface and at least one application.
On the one hand, the cellular communication interface is adapted to transmit data to be communicated to the at least one other mobile terminal by transmitting the data to a relay entity. On the other hand, the cellular communication interface is adapted to receive data originating from the at least one other mobile terminal by receiving the data from the relay entity. The data are associated with a quasi peer-to-peer communication established between the mobile terminal and the at least one other mobile terminal.
Supplementary, the cellular communication interface is adapted to transmit messages relating to an establishing of the quasi peer-to-peer data communication to be communicated to the at least one other mobile terminal by transmitting the data to said relay entity; and to receive the message relating to the establishing originating from the at least one other mobile terminal by receiving
the message from the relay entity. In particular, the message communication includes initiation requests, invitation requests and acknowledgements.
The peer-to-peer communication module is adapted to generate and transmit the requests to the relay entity, to supply the data provided by the at least one application to be transmitted to the one other mobile terminal to the cellular communication interface; and to supply the data originating from the at least one other mobile terminal and provided by the communication interface to the at least one application.
According to an embodiment of the invention, the mobile terminal comprises also a dispatcher module, which is adapted to parse messages received via a peer-to-peer communication mechanism. The dispatcher module determines whether a received message is a request for invitation. In case this applies, parsing results are supplied to the at least one application such that the at least one application is enabled to use a quasi peer-to-peer communication in which the mobile terminal can participate on the basis of the request for invitation.
According to another embodiment of the invention, the mobile terminal comprises additionally a dispatcher database, which is dedicated to register applications operable with the mobile terminal. The dispatcher database stores information relating to associations of application identifiers with applications. The application identifiers are employed to identify applications, which may be addressed by said request for invitation.
According to a tenth aspect of the invention, a system for enabling quasi peer-to-peer connectivity is provided, wherein the system comprises at least two mobile terminals and a relay entity. Each of the mobile terminals is capable for communicating in a cellular network and corresponds to a mobile terminal enabled for quasi peer-to-peer connectivity in a cellular communication network with at least one other mobile terminal as aforementioned. The relay entity serves for data relay services and corresponds to a relay entity for enabling quasi peer-to- peer connectivity between mobile terminals in cellular communication networks as aforementioned.
The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention, and together with the description, serve to explain the principles of the invention. In the drawings,
Fig. 1 schematically shows a block diagram of a system allowing for quasi peer-to-peer connectivity between two portable terminals according to an embodiment of the present invention;
Fig. 2a schematically shows a first sequence diagram illustrating operations of devices in the system allowing for quasi peer-to-peer connectivity according to an embodiment of the present invention;
Fig. 2b schematically shows a second sequence diagram illustrating operations of devices in the system allowing for quasi peer-to-peer connectivity according to an embodiment of the present invention;
Fig. 3 a schematically shows a block diagram of components comprised by a network device serving data relay services according to an embodiment of the present invention;
Fig. 3b schematically shows a block diagram of components comprised by a network device serving information about terminals to be invited according to an embodiment of the present invention;
Fig. 3c schematically shows a block diagram of components comprised by a mobile terminal according to an embodiment of the present invention; and
Fig. 3d schematically shows a block diagram of components comprised by a mobile terminal according to an embodiment of the present invention.
A brief introduction into the inventive concept will be given with reference to Fig. 1, which shows a schematic architecture of a system allowing for quasi peer-to-peer connectivity between mobile terminals. The depicted system architecture is based on a selection of network devices and entities participating in the peer-to-peer data communication as proposed by the inventive concept framework.
With reference to Fig. 1, the system according to an embodiment of the invention comprises two terminals A and B and relay R. The terminals A and B represent an arbitrary number of terminals, which may participate in the quasi peer-to-peer connectivity in accordance with the inventive concept framework of the present invention. The quasi peer-to-peer connectivity shall be represented by and understood intellectually as a quasi end-to-end communication connection
10, respectively, wliich is operable as a communication connection between terminals A and B allowing for data communication between those terminals A and B.
Terminal A as well as terminal B shall represent illustratively any kind or type of mobile terminals, which are operable with cellular networks and which are capable for wireless data communication. Such terminals may be mobile phones, communicators, personal digital assistants (PDAs), organizers, mobile computers or any consumer electronics (CE) having the aforementioned capabilities. In particular, the terminals being utilized in conjunction with the present invention should support data communication via data packet switched services. Typical public land mobile networks support data packet switched services. For instance, GSM (global system for system for mobile communications) supports packet switched services by the means of GPRS (general packet radio system) or EDGE (enhanced data rates for GSM evolution). Third-generation mobile communication systems such as UMTS (universal system for mobile telecommunications), IMT-2000 (international mobile telephony), Multicarrier-CDMA (code division multiple access) are typically based one packet switched services for data communication.
The present invention should neither be limited to a certain type of a terminal, a certain public land mobile network nor to any number of terminals participating in a quasi peer-to-peer communication connection on the basis of the inventive quasi peer-to-peer connectivity.
The quasi peer-to-peer connectivity according to the present invention allows for establishing a quasi peer-to-peer communication environment between a set of terminals comprising an arbitrary number of terminals. Arbitrary data contents conveyed by one of the terminals in such a quasi peer-to-peer communication environment are transmitted to all remaining terminals of the environment. This means, the illustrated quasi peer-to-peer communication connection 10 can also be established between three or more terminals, which will be apparent when reading the description referring to the following drawings, hideed, relay R serves for switching transparently the data between the terminals participating in the quasi peer-to-peer communication. The inventive quasi peer-to-peer connectivity may be understood as a virtual communication connection between the terminals participating in the inventive quasi peer-to-peer connectivity. Data communicated via this virtual communication connection is actually communicated via data communication connections between relay R and the participating terminals.
In order to improve the readability of the description, the term "quasi peer-to-peer" will be abbreviated as "q-p2p".
Referring back to Fig. 1, the q-p2p connectivity between terminal A and terminal B allows terminal A and terminal B to communicate arbitrary data, contents, signals, information and the like between them. The data communication is preferably operable with data packets on the basis of data packet switched services for communication in cellular networks. As explained above, direct connectivity between terminals employing data packet switched services is not supported in today's public land mobile networks (PLMNs). In order to overcome this restriction and nevertheless to allow data packet switched services for data communication in a peer-to-peer terminal end-to-end manner between at least two terminals in cellular networks, relay R is introduced into the data flow. Relay R is a network service and functional network entity, respectively, which serves as a data relay service operating switching, relaying and mediating of arbitrary data, respectively. This means that relay R may be a generic server application entity hosted on any arbitrary network server device interposed in the communication path between the terminals participating in the data relay service. Relay R may be part of the fixed network inside a public land mobile network (PLMN) or may be connected to the public land mobile network (PLMN) via a wide area network (WAN) such as the Internet. Terminals A and B connect to relay R communicate wirelessly via one or more radio access networks (RAN) of the one or more cellular networks with relay R. Access points in the cellular networks serve to switch data traffic between cellular networks and relay R.
Assuming that the quasi peer-to-peer connection 10 between terminals A and B is established, relay R receives for instance on the one hand data packets of arbitrary contents from terminal A. Then, relay R replicates or replays the received data packets, in order to finally transmit the replicated data packets to the remaining ten inals participating in the q-p2p communication connectivity (i.e. all terminals except terminal A). Herein terminal B shall represent all remaining participating terminals. Therefore, a data communication connection 11 is established between terminal A and relay R and a data communication connection 12 is established between relay R and terminal B. Correspondingly, relay R receives the data from terminal A via the data communication connection 11 and transmits the replicated data via the data communication connection 12 to terminal B.
Further, relay R receives for instance on the other hand data packet of arbitrary contents from terminal B, then replicates or replays the received data packets and transmits the replicated data packets to the remaining terminals participating in the q-p2p connectivity (i.e. all terminals except terminal B). Herein terminal A shall represent all remaining participating terminals. Correspondingly, the data communication connection 11 and the data communication connection 12 serve in turn for data communication, respectively. Therefore, the data communication
connection 11 as well as the data communication connection 12 may be adapted to support packet switched services for data communication.
Relay R is responsible for transmitting received data to those terminals only, to which the data are intended, i.e. those terminals, which participate in the q-p2p communication connection 10 with the exception of the data transmitting terminal, from which the data originates. Prerequisites or pre-condition have to be made on side of relay R to ensure the operation according to the inventive concept. Such prerequisites or pre-conditions are issues that will be discussed below.
Additionally, relay R may be connected via a data communication connection to a database DB, which supports the selection of terminals for participating in a q-ρ2p com ectivity according to an embodiment of the present invention. Herein the database DB is illustratively depicted in form of an external database entity connected to relay R via a network-based connection 20. Alternatively, the database DB may be implemented or locally connected to relay R. The function and operation of the database DB will be described with reference to the invitation procedure being part of the initiation procedure of a relay session for enabling q-p2p connectivity between terminals.
The operation of relay R is described now in detail with reference to Fig. 2a. It shall be assumed that the inventive q-p2p connectivity is employed to establish a q-ρ2p communication connection between terminal A, terminal B, and terminal C. Further it shall be also assumed that terminal A provides data for quasi peer-to-peer transmission to both terminals B and C. Those skilled in the art will appreciate that data provided by anyone of the terminals participating in the q-p2p connectivity illustrated in Fig. 2a are handled in an equal or at least similar way. The invention is not limited to the operation of relay R described with respect to Fig. 2a depicting operational steps of relay R in an illustrative way.
In an operation SI 00, terminal A provides data for being transmitted to terminal B and C. The data have arbitrary contents. The data may be generated and/or provided by any application perfonned on terminal A. The invention shall not be limited to any certain data, data contents or application providing the data for transmission.
In an operation SI 10, the provided data is transmitted from terminal A to relay R with the intention to be passed on to tenninals B and C. Terminal A, terminal B and terminal C participate in a common q-p2p communication connection established therebetween. The transmission of the data may be performed by a data packet switched service which is operable with the data communication connection to relay R. Moreover, an adequate transmission protocol is employed
for the data communication with relay R such as transmission control protocol (TCP), user datagram protocol (UDP) or any applicable connection-oriented bearer protocol.
In an operation S120, relay R receives the data from terminal A. The received data may be buffered by relay R before passing on to the terminals B and C, to which the received data are intended. The receiving relay R is capable to identify the sender/originator of the received data, i.e. herein terminal A as data sender/originator. The identification may be based on a corresponding identifier of terminal A received in conjunction with data for example coded for instance in the header of the transfer protocol employed for data transmission from terminal A to relay R. A valid identification may be obtained from a terminal identifier, a session identifier or any other identifier, which identifies the transmitting terminal, i.e. preferably uniquely in the given context.
Relay R runs one or more relay sessions to manage the data relay service, which enables the inventive q-p2p connectivity between mobile terminals. Each session is associated with one determined q-p2p data communication connection as described above, which is associated with several terminals participating in the q-p2p data communication connection, i.e. herein terminals A, B and C. In particular, relay R is able to identify on the basis of a relay session those terminals, which participate in a q-p2p data communication connection, hi turn this implies that a corresponding relay session is identifiable in accordance with information about one participating terminal, which may be the identifier of the data sender/originator.
In an operation SI 30, relay R retrieves information about destination terminals to which the received data have to be passed on. Relay R identifies the relay session in which the terminal A participates and on the basis of knowledge about the relay session the information about the participating terminals, especially address information about the participating terminals, are retrieved. With reference to Fig. 2a, the remaining participating terminals are identified as terminals B and C.
hi an operation SI 40, relay R replicates or replays the received data for transmission to the terminals participating in the q-p2p connectivity, herein terminals A, B and C. As a result relay R transmits in an operation SI 50 the replicated data to terminals B and C, which have been identified by relay R as remaining terminals participating in the q-ρ2p data communication connection and corresponding relay session, respectively.
Those skilled in the art will appreciate on the basis of the description above and the operational sequence according to an embodiment of the present invention, that data provided by terminal B
and being intended for terminal A and terminal C will be handled in an analogous way. This means, data provided by terminal B and transmitted thereby to relay R, is replicated / replayed and transmitted to terminal A and terminal C, wliich have been identified previously as participants in the q-p2p communication connection. The same applies to data provided by terminal C and being intended for terminal A and B.
The establishment of a relay session, which enables relay R to provide data relay services according to an embodiment of the present invention, and the participation of terminals in such a relay session will be described in detail with reference to Fig. 2b.
Fig. 2b illustrates a sequence diagram, which comprises operations to be performed by terminal A, relay R and terminal B in a time sequence. A first set of operations relates to an invitation procedure, whereas a second set of operations relates to an establishment procedure. Those skilled in the art will appreciate that the invitation procedure and establishment procedure are applicable with any kind of terminal which is capable for communication with relay R, preferably via one or more cellular networks supporting data packet switched services.
A q-p2p communication connection of the basis of the inventive q-p2p connectivity is intended for being established between several terminals, herein terminals A and B for the way of illustration. Assume that the invitation procedure originates as the inviting and initiating terminal, respectively, herein ten inal A.
As aforementioned, the connection between tenninal A and relay R shall be switched via the cellular network(s) and public land mobile network(s) (PLMN), respectively, into which terminal A is subscribed. Different data transfer mechanism and data transmission protocols may be employed for data communication between terminals in the cellular network(s) and a relay entity. Terminals as well as the relay entity have to support adequately the chosen transport mechanism and the chosen transmission protocol. The present invention shall neither be limited to any particular data transfer mechanism nor to any distinct data transmission protocol since a broad number of both transport mechanisms and transmission protocols are available in the enlightened network environment for data communication. For instance, the data transfer mechanism may be an unreliable packet-based transport mechanism or a reliable stream-based transport mechanism and the transmission protocol may support encryption or may be transparent to intermediate network nodes.
It shall be assumed that terminal A is informed about an address information of relay R, on the basis of which the communication connection can be established. For instance such an address
information may be provided to users of the terminals in question, who whishes to use the data relay service, by the help of a WEB or WAP page, as an over-the-air service message or by any suitable manner allowing provision of corresponding information.
In an operation S200, the inviting / initiating terminal A transmits an initiation request and initiation message to relay R, respectively. The initiation message signalizes to relay R that terminal A wants to invite one or more other terminals to participate in a q-p2p connectivity according to an embodiment of the present invention and to establish a q-p2p communication connection for enabling the q-p2p connectivity. The establishing of a q-p2p communication connection will require an initiation and establishment of a relay session.
The transmission of the initiation request is preferably operable with any available terminal peer- to-peer communication mechanism provided by the cellular network(s). Current cellular networks provide a number of messaging services, for instance short message service (SMS), smart messaging (SM) being based on SMS, enhanced message service (EMS), multimedia message service (MMS) and instant messaging, but also any other peer-to-peer bearer channel could be used. In principle the amount of data of such an initiation request is small. It shall be noted that both the inviting terminal as well as the receiving relay entity has to support adequately the selected peer-to-peer communication mechanism.
Alternatively, the initiation request may as well be transmitted via the communication connection and communication channel, respectively, which will be utilized subsequently for data communication in conjunction with the q-p2p communication connection as described with respect to Fig. 2a.
The initiation request may comprise authentication information. Such authentication information relating to the terminals using the data relay service is useful to limit the number of tenninals to a predetermined selection of terminals (closed user group), to realize a commercial data relay service (charging purpose), to realize a reliable and secure communication flow between terminals and relay, etc.
In an operation S210, relay R receives the initiation request from terminal A. The initiation request may comprises at least one information out of the set of information comprising for instance: information about the identity of the inviting terminal (terminal identifier, subscriber identifier/information, telephone number, user identifier/name etc.);
- information about the application which will handle the data communicated via the intended q-p2p communication connection (application identifier, application name etc.); information about the invited terminals (i.e. intended to be invited); authentication information of the inviting terminal; - encryption information to enable encryption of data to be communicated via the intended q-p2p communication connection; and - information about the transfer mechanism, the transmission protocol, communication channel properties etc relating to the communication connecting between terminals and relay.
The information about the invited terminals (i.e. terminals intended to be invited) may comprise a list of identifiers (subscriber information, telephone numbers) each of which identifying a terminal, which should be invited. Such a terminal identifier should be applicable for addressing subsequent invitation requests and invitation messages to the invited terminals.
The transmission of the subsequent invitation requests to the invited terminals are analogously operable with any available terminal peer-to-peer communication mechanism provided by the cellular network(s). Current cellular networks provide a number of messaging services, for instance short message service (SMS), smart messaging (SM) being based on SMS, enhanced message service (EMS), multimedia message service (MMS) and instant messaging, but also any other peer-to-peer bearer channel could be used. It shall be noted that both the invited terminals as well as the relay entity have to support adequately the selected peer-to-peer communication mechanism.
Alternatively to the direct coding of invited terminals as described above, the identification of terminals for being invited can be operated and supported by the database DB illustrated in Fig. 1, respectively.
A first approach for supporting the identification of terminals to be invited is based on a grouping mechanism. Information about groups of predetermined terminals is stored in the database DB. The aforementioned initiation request comprises at least identification information relating to the initiating / inviting terminal. On the basis of the identification information, that group is selectable, of which the inviting terminal is part. In order to prevent conflicts, each terminal may be allowed to be part of only one group.
In accordance with a further approach, each group of predetermined terminals is associated with a group identifier, which for instance is also included in the initiation request e.g. as information about the invited terminals or as a separate information. In accordance with the group identifier the corresponding group is selectable. The group identifies can be appreciated as referencing information for retrieving information about the invited terminals, comprising identification information of the invited terminals, address information of the invited terminals etc.
Yet another approach for supporting the identification of terminals to be invited is based on a filtering mechanism. The database DB maintains and handles several sets of individual information, each set of individual information being associated with a potential tenninal to be invited (i.e. associated with user of the terminal to be invited). Such a set of individual information is preferably pre-configured by the user of the potential terminal and may particularly relate to preferences and properties defined by the user of the potential terminal. The preferences and properties shall be applicable to filter rules being comprised in the initiation request (e.g. as information about the invited terminals), such that one or more matching potential terminals can be selected by a filter operation from the plurality of potential terminals maintained by the database DB.
In an example use case a multiplayer gaming environment may be considered to enlighten the filter mechanism. This aspect of the present invention intends to help individual users to find each other for interacting in the multiplayer gaming environment. A user, who intends to participate in a multiplayer gaming environment with other users, may form the starting point. The user may not be in knowledge about potentially interested other users or the user may be interested in interacting with frequent changing other users sharing the same or similar interests. The database DB is informed about preferences, properties and presets associated with each user administrated by the database DB. The preferences, properties and presets may comprise one or more gaming applications or gaming application categories, time schedules, gaming skills, difficulty level, information about the terminal used for gaming, information about the transfer mechanism, the transmission protocol, communication channel properties, encryption information etc.
By matching the preferences, properties and presets associated with users administrated at the database DB with the filter rules provided by the inviting terminal, potential matching users and terminals for being invited can be obtained. The users taking the advantage of the database DB configures their data including e.g. preferences, properties and presets to the database DB, which stores these data (assuming that no other scat players are already enrolled). The configuration of
the database DB may be operable with WEB-based or WAP-based registration and configuration service.
On the basis of the information comprised by the initiation request and/or obtained with the help of information included in the initiation request, relay R is able to generate the subsequent invitation requests and messages, respectively, intended for the terminals to be invited.
In an operation S220, relay R generates one or more individual invitation requests or invitation messages to be transmitted to the invited terminals, hi general, the individual invitation requests may comprise any information included in the original initiation request received from the inviting terminal, herein terminal A and the individual invitation requests may comprise additionally information provided and/or generated by relay R. In particular, the individual invitation requests may comprises at least one information out of the set of information comprising for instance: information about the identity of the inviting terminal; information about the application; session information relating to the intended relay session (session identifier); address information of relay R (network address information required for packet switched data communication between invited terminal and relay); encryption information; and information about the transfer mechanism, the transmission protocol, communication channel properties etc.
The session information and session identifier may be associated uniquely to one relay session and/or one terminal, respectively. As stated above, data communication in the context of a q-p2p communication connection has to be associated to a distinct relay session such that the switching function described with respect to the operations SI 20 to SI 50 is operable. Each data packet received by relay R comprises an identifier, such as a terminal identifier or a session identifier, on the basis of which the received data packet is assignable to a relay session.
Each terminal participating in a determined relay session may be associated with the same session identifier or each terminal participating in a detem ined relay session may be associated with an individual session identifier, wherein the individual session identifiers differ. As long as each session identifier is assigned to one relay session, conflicts are prevented.
For ensuring an unambiguous session identifier the session identifier may be defined cryptographically or the session identifier may be a random value, a global user identifier (GUID) or nay hash based value on the basis of an identification of the initiating terminal is obtainable.
In an operation S230, the individual invitation messages are transmitted to the terminal intended to be invited to participate in a common relay session for q-p2p connectivity. As aforementioned the individual invitation messages may comprise session identifiers, which differ or which correspond to each other.
In an operation S235, relay R waits for acknowledgements from the invited terminals. The acknowledgements may indicate that the invited terminals accept the invitation to participate or reject the invitation to participate. Relay R waits preferably for a predefined period of time. Expected acknowledgements from invited tenninals, which have not been received during the predefined period of time, are considered and handled as rejections of the invitation.
In an operation S240, invited terminal B receives the individual invitation request and individual invitation message from relay R, respectively. Terminal B recognizes the invitation request as a request whether to join in the q-p2p communication connection with inviting terminal A or not. As aforementioned, the invitation request may comprise all information which terminal B requires to establish a communication connection to relay R and to participate in the relay session with at least inviting terminal A. an operation S250, terminal B (and the user thereof, respectively) accepts the invitation and generates an acknowledgement to indicate the acceptance to relay R.
In an operation S260, the acknowledgement is transmitted by terminal B to relay R. As aforementioned, the transmission of the acknowledgement to relay R is analogously operable with any available terminal peer-to-peer communication mechanism provided by the cellular network(s).
In an operation S270, relay R receives the individual acknowledgements from the invited terminals (such as terminal B) and collects them. After the reception of all expected individual acknowledgements (i.e. from each of the invited terminals) or after exceeding of the predefined period of time for waiting, the collection operation is finished.
In an operation S280, relay R generates one or more acknowledgements. At least inviting terminal A may have to receive an acknowledgement in order to inform inviting terminal A about the success of the invitation procedure.
In an operation S290, relay R transmits the one or more generated acknowledgements to the inviting tenninal A and, if required or wished, to the invited terminals having accepted to participate, respectively. As aforementioned, the transmissions of the acknowledgements are analogously operable with any available terminal peer-to-peer communication mechanism provided by the cellular network(s).
In an operation S300, finally relay R initiates and establishes a new relay session, respectively, in which inviting terminal A and all invited terminals, which have accepted the invitation (terminal B herein), participate. The one or more session identifiers, which have been transmitted by relay R to the terminals, are assigned to the initiated new relay session in order to enable the relay service (i.e. q-p2p data communication between the participating terminals) as described above with reference to Fig. 2a. Relay R identifies the participating terminals on the basis of identifiers, such as the session identifier(s), as belonging to the initiated new relay session.
In an operation S310, inviting terminal A receives the acknowledgement, which informs terminal A about the success of the invitation comprising for instance information about the terminals having accepted the invitation. In case of success of the invitation initiated by terminal A, the acknowledgement comprises information required to establish subsequently the communication connection to relay R for q-p2p communication with the participating terminals. In particular, the acknowledgement may comprises at least one information out of the set of information comprising for instance:
- session infonnation relating to the intended relay session (session identifier); and address information of relay R (network address information required for packet switched data communication between invited terminal and relay).
In an operation S320, the remaining participating terminals may optionally receive acknowledgements, which indicate to the participating terminals that the relay session is initiated and established. Moreover, the acknowledgements may comprise information required to establish subsequently the communication connection to relay R for q-p2p communication with the participating terminals. In particular, the acknowledgement may comprises at least one information out of the set of information comprising for instance:
- session information relating to the intended relay session (session identifier); - address information of relay R (network address information required for packet switched data commimication between invited terminal and relay) - encryption information; and - information about the transfer mechanism, the transmission protocol, communication channel properties etc.
In operations S330 and S340, the participating terminals initiate and establish individual communication connections to relay R. This means, each established communication connection between a participating terminal and relay R results in a commimication channel between both parties, upon which data communication between both parties is performable and which will be employed for data transmissions described with reference to following operations.
It shall be noted that conditions may be defined, which have to be satisfied, for successful invitation. For example, the inviting terminal may preset a minimum number of terminals, which have to be accept the invitation and/or the inviting terminal may preset a maximum number of terminals allowed to participate in the intended relay session. Moreover, the inviting terminal may preset at least one distinct predefined participating terminal to participate. Further conditions are applicable.
It shall be further noted that the filtering mechanism illustrated above may be used directly by the inviting terminal previous to the generation and transmission of the initiation request. This means, the inviting terminal (terminal A) retrieves by the help of the database DB potential terminals for being invited. A corresponding initiation request comprises a list of information about the terminals to be invited, which has been retrieved before from the database DB offering the filter mechanism service.
Fig. 3 a schematically shows a block diagram of components comprised in a relay entity according to an embodiment of the present invention. A relay entity implementation may be based on the components illustrated in Fig. 3 a such that the relay entity is operable with data relay services according to an embodiment of the present invention.
The relay entity and relay instance, respectively, offering data relay services according to an embodiment of the present invention may be implemented on any network device/host, particularly any device/host connected to a packet switched network. The relay entity/instance may be implemented on the network device/host on the basis of software components and/or hardware components. Moreover, one or more independent relay entities and relay instances,
respectively, may be hosted by one dedicated single network device/host which may allow for traffic load balancing or which may allow for assignment different relay entities/instances with pre-defined utilization requirements.
In detail, a relay entity may be composed illustratively of functional / structural components, which are depicted in the block diagram of Fig. 3 a. The functional components include a network interface 30, a protocol handler module 31, a session database 33 and one or more instances of a redirector module 32.
The network interface 30 is adapted on the one side to receive incoming requests and messages, respectively, and data traffic to be relayed from one terminal participating in the q-p2p connectivity and on the other side to transmit outgoing requests and messages, respectively and relayed data traffic to the one or more other terminals also participating in the q-p2p connectivity.
The incoming request, which comprises requests for inviting terminals to a q-ρ2p communication connection and initiating a new relay session therefor, respectively, and acknowledges for participating in an established relay session, are handled by the protocol handler module 31. The protocol handler module 31 is further adapted to respond to the incoming messages accordingly. An embodiment of the request / message framework is described in detail above. The protocol handler module 31 configures the session database 33, which stores information about relay sessions, in particular information about session identifiers associated with relay sessions and information about terminals participating in relay sessions for data relay services. Moreover, the protocol handles module 31 may create and configure an instance of a redirector module 32, which may be fixly associated to one determined relay session. The instance of the redirector module 32 associated to a determined relay session is bound to the data traffic flow of each participating terminal. An instance of the redirector module 32 is configured as such when a relay session is initiated/established.
An instance of the redirector module 32 handles data traffic flows originating from terminals, which participate in a q-p2p communication connection. Therefore, the instance of the redirector module 32 is configured such that data traffic flows from terminals participating in a relay session (in a quasi peer-to-peer connectivity) are bound to the corresponding instance of the redirector module 32. That means, data traffic incoming from a terminal identified as a terminal participating in a certain established relay session is (automatically) replicated/replay by the instance of the redirector module 32 and (automatically) transmitted to the remaining terminals participating in the certain relay session identified on the basis of the tenninal from which the data traffic originates. The identification of the relay session is obtainable form the data traffic
originating from a tenninal, wherein the data traffic comprises for instance the aforementioned session identifier or any other identifier. Access to the session database 33 providing the required information for operating data relay services may be required.
Alternatively, the implementation of a relay entity/instance may comprise one redirector module 32 responsible for all relay sessions and all q-p2p communication connections.
A participating tenninal may effect the termination of its participation in a q-p2p communication by disconnecting from the relay entity serving data relay services. The instance of the redirector module 32 maintains always the data relay service. In case a terminal disconnects, the instance of the redirector module 32 recognizes the termination of the participation and discards the bounding of the data traffic of this terminal such that data traffic is not replayed/replicated to this terminal any more. In case that there only one or none participating terminal present in a q-p2p communication connection, i.e. in a relay session, the instance of the redirector module 32 indicates to the protocol handler module 31 to discard the relay session completely from the relay entity/instance comprising the conesponding instance of the redirector module 32 and information about the relay session stored in the session database 33.
h order to provide a suitable usability of the inventive q-ρ2p connectivity, operations, which require user interactions, should be minimized as best as possible. The terminal implementations illustrated in Fig. 3c and 3d represent example implementations, which allow for provision of user- friendly and applicable usability.
Figure 3b depicts an implementation of a network device serving information about potential terminal s to be invited. The depicted network device corresponds to the database DB illustrated in Fig. 1. The network device may be constituted by functional / structure components including a network interface 60, a protocol handler module 61, a filter module 62, a configuration module 63 and a database 70. The protocol handler module 61 is adapted to receive data communication with the illustrated network device and supply received data to the filter module 62 and configuration module 63. In turn, the protocol handler module 61 supports the generation and transmission of responses in response to received requests processed by the filter module 62 and the configuration module 63, respectively.
The filter module 62 is adapted to perform the operations for selecting potential terminals to be invited in accordance with filter rules provided to the filter module 62 included in a corresponding request. Data about the preferences, properties and presets relating to users of terminals and the terminals of the users are stored in the database 70, which is accessible by the
filter module 62 for performing the filter mechanism. The filter module 62 may support several filter algorithms in accordance with which the filter operations are operable.
The configuration module 63 allows users to define the required preferences, properties and presets, with of which the filter mechanism is operable.
The network interface 60 and the protocol handler module 61 may support a plurality of transmission protocols, bearers and transfer mechanisms, for instance including message bearers (SMS, MMS, instant messaging, etc), WAP services, WEB services, database management protocols etc.
Fig. 3 c schematically shows a block diagram of components comprised in a terminal according to an embodiment of the present invention. A terminal implementation may comprise the components depicted illustratively in Fig. 3 c to enable the terminal to perform at least semi- automatically the operations required on an invited terminal for utilizing and taking advantages of the q-p2p communication.
As described above, once an initiating terminal has successfully effected the invitation of counterpart terminals for a new relay session to allow q-p2p connectivity, the participating terminal initiate and establish the communication connection to the relay. The initiation and invitation requests may be delivered using any peer-to-peer communication mechanisms, which comprise SMS, EMS, MMS and any other types of instant messaging mechanisms including also future mechanisms.
The following example terminal implementation is based on the assumption that a peer-to-peer messaging mechanism is employed for conveying initiation and invitation requests.
In detail, the block diagram illustrates a network interface 40, a message dispatcher module 41, a dispatcher database 42, a message handler module 43 and a set of applications 45.
The message handler module 43 shall represent the conventional module in the terminal, which is responsible for handling messages being based on the peer-to-peer messaging mechanism that is applied for initiation / invitation request and acknowledgement conveyance. Such peer-to-peer messages received by the network interface 40 of the terminal are conventionally passed on to the message handler module 43. In order to at least semi-automate the handling of invitation requests received by invited terminals from the relay entity, a dispatcher module 41 is interposed between network interface 40 and message handler module 43 to handle invitation requests accordingly.
The message dispatcher module 41 is adapted to handle all invitation requests received by the terminal via its network interface 40. In detail, the message dispatcher module 41 is adapted to recognize an invitation request and to pass on the received and identified invitation request to a corresponding client application, which preferably takes advantages of the q-ρ2p communication to be established by the invitation request. The passing on is generally accomplished by registering corresponding client applications to the message dispatcher module 41 for instance at installation time of the client applications.
The fact that several separate client applications may make use of the peer-to-peer connectivity requires that invitation requests comprise information for which application the invitation (relating to a participation in a q-p2p communication) shall be directed, which especially may be achieved by an application identifier included in the invitation request. In parallel the message dispatcher module 41 maintains information about associations of application identifiers and corresponding applications out of a set of registered clients applications 45 installed on the terminal. The association information may be stored in a dispatcher database 42 managed by the message dispatcher module 41 accordingly.
By the means of the application identifier coded in an invitation request and the association information the message dispatcher module 41 is able to identify the client application determined by the application identifier, to initiate the determined client application (if required) and to pass on the invitation message to the determined client application. The determined client application is responsible in the following to handle the invitation message accordingly, i.e. to decode and interpret the invitation message. In detail, the client application may be responsible to generate or to initiate the generation of the response acknowledgment in consequence to the invitation request. Moreover, the client application may be responsible to initiate and establish the communication connection to the relay entity and to employ the established communication connection with the relay entity for data communication with the one or more terminals participating in the q-p2p communication.
Furthermore, the message dispatcher module 41 may be responsible to indicate the received invitation message to the user of the terminal asking the user to accept or rej ect the invitation. A corresponding notification may be prompt by a display of the terminal to the user informing about sender of the invitation request and a designation of the determined client application (e.g. a clear text identification / application name). Moreover, the message dispatcher module 41 generates and causes the generation and transmission of the response acknowledgement informing about the decision of the user of the invited terminal.
Fig. 3d schematically shows a block diagram of further components comprised in a terminal according to an embodiment of the present invention. A terminal implementation may comprise the further components depicted illustratively in Fig. 3d to enable a terminal to perform the operations required for taking advantages of the inventive quasi peer-to-peer connectivity with at least one other terminal.
hi detail, the block diagram illustrates a set of applications 50, a relay library 51 and a network interface 52. The relay library 51 is primarily intended to support communication with a relay entity serving for data relay services in accordance with an embodiment of the invention. In particular, the relay library 51 is intended to support establishment of a communication connection with the relay entity as well as managing requests/responses relating to an invitation procedure and initiation / establishment procedure described in detail with reference to Fig. 2b. On the one side, the relay library 51 provides an application program interface (API), on the basis of which client application linked thereto accesses functions provided by the relay library 51. On the other side, the relay library 51 is linked to the network libraries / components, which allow communications with the relay entity via the (over-to-air) network interface of the terminal.
Referring to an inviting terminal, which invites terminals to participate a new relay session on a relay entity, the library 51 may provide a method for communicating an invitation message to the one or more terminals, for instance designated as "InviteTerminals(relay address information, invitation information)", which may require an address information of the relay entity and infonnation on the basis of which the invitation procedure is operable. Address information relating to the terminals intended to be invited may be selected from a local address directory of the terminal such as a telephone directory, a contact directory, etc.
Referring to a terminal, which receives an invitation request to be invited in participating in a q- p2p communication, the relay library 51 may provide a method for parsing invitation messages received by the terminal for instance designated as "Parsehτvitation(invitation message)", which results to well fonned information about the initiating terminal, the application involved in the q- p2p communication, the relay entity, information about the relay session etc.
Referring to an invited terminal wishing to participate in an established relay session, the relay library 51 may provide a method for acknowledging the participation for instance designated as "Acknowledgehivitation (relay address information, [Accept / Reject])", which may require an address information of the relay to be contacted and session related information and accept / reject notification.
Again referring to an invited terminal wishing to participate in an established relay session, the relay library 51 may provide a method for establishing a communication connection to the relay entity for instance designated as "CreateConnection(relay address information, session related infonnation)", which may require an address information of the relay to be contacted and session related information, especially a session identifier for participating in the relay session identified on the basis of the session related information.
In case q-p2p communication is available for a terminal, the relay library 51 may provide methods for transmitting and receiving arbitrary data for instance designated as "P2PTransmit(arbitrary data, [session related information])" and "arbitrary data = P2PReceive([session related information])", respectively.
Those skilled in the art will appreciate that the methods presented illustratively above outline only principles of a relay library implementation on the basis of coarse features. The relay library may also provide a soft configurable portion to code relay related information, especially relay address information. Moreover methods of the relay library may support a configuration of the transfer mechanism, transfer protocol, authentication etc applicable with communication connections to the relay entity and the q-p2p communication connections, respectively.
Such a relay library may be public available for being used by application programmers to allow their applications for q-p2p connectivity according to an embodiment of the invention by linking the relay library together with their client applications.
Example contents of the initiation / invitation requests and acknowledgements from terminal to relay and relay to terminals are presented above, respectively. As also aforementioned, the message and acknowledgements may be communicated via a peer-to-peer communication mechanism comprises among others short message service (SMS), which may be formatted as a smart message (SM). The following brief description relates to message and acknowledgement framework coded by the means of a short message. It shall be understood that the invention is not limited thereto.
An invitation message on the basis of a short message has to be distinguished at the receiving from conventional short messages. As explained above, the terminals may implement a so-called dispatcher module that receives the invitation message in the background. In an example implementation, the short message inbox application of the terminal may be augmented to act as a dispatcher module. The inbox application recognizes the message type to be an invitation
message, and based on that it may activate a plug-in module designed to parse and interpret the invitation message. The plug-in module may be adapted to ask the user of the invited terminal whether he wants to accept the invitation and start the application described therein. The plug-in module may further deliver the contents of the invitation message to the client application determined by the invitation message, establish the communication connection to the relay entity and offer the established communication connection to the determined client application for taking advantages of the q-ρ2ρ communication connection.
hi a particular case, the invitation message operable with SMS may be formatted as a Smart Message (SM), similar to a picture message. The invitation message should be allocated a specific port number (such as port number 49123) used to distinguish the invitation message from other types of smart messages. Traditional SMS based messages do not have a port number at all since the port number specification is only used for smart messages. The wireless datagram protocol (WDP) from WAP Forum should be used to interpret the port number.
A conventional SMS message is specified to hold up to 140 bytes of data. Commonly this is used to provide for 160 characters of text using a 7-bit alphabet. The WDP user data header (originating and destination port number) takes 7 bytes, leaving 133 bytes for user data content in a single short message coded as invitation message for coding information relating to the invitation to a q-p2p communication connection.
The invitation message content may be formatted as a binary message in a type-length-value (TLN) fashion, giving the type, length and value fields in a triplet. Each type and length field is 8 bits long, and the length of the value can vary according to the length field (maximum 256 bytes). The types could be, for example, the ones listed in the table depicted below. Additional types maybe added if necessary.
Type Description
0x01 invitation message 0x02 acknowledgement 0x11 application display name 0x12 application identifier 0x13 relay entity address (URI) 0x14 relay entity port 0x15 session identifier (token) 0x16 client application download address (URI)
Ox 17 textual comment Ox 18 expiration time Ox 19 invited terminal identifies 0x20 parameter relating to q-p2p communication
Basing of the aforementioned considerations and assumptions the invitation message can now be coded and structured.
Conclusively, the concept of the quasi peer-to-peer connectivity of the present invention has been described on the basis of embodiments relating to the operation and implementation of relay entities and mobile terminals, which allow establishment and utilization of a quasi peer-to-peer communication between several mobile terminals, the data communication of which is relayed by a corresponding relay entity operating a relay session associated to the quasi peer-to-peer communication. The inventive concept enables to realize quasi peer-to-peer communications between terminals using data packet switched services for data communication therebetween.
This inventive concept offers several advantages in operation. The relay entity according to the present invention performs its data relay services for allowing quasi peer-to-peer communication between mobile terminals on the basis of a protocol framework for initiating a relay session and participating terminals therein. The data relay service itself handle arbitrary data contents that means that client applications operated on the mobile terminals may communicate any data via the established quasi peer-to-peer communication connection between them. The relay entity represents a generic relay entity supporting exchange of entirely different data between mobile terminals; the relay entity and data relay service, respectively, according to the present invention does not perform any action on the relayed data but simply replays the data to be exchanged for transmission to each remaining terminal participating in a quasi peer-to-peer communication.
h accordance with the inventive network architecture, the relay entity may be implemented as a public available; a closed community; a home-based; a client application specific relay entity and data relay service, respectively or the like. The relay entity or data relay service may be part of a fixed network inside a public land mobile network (PLMN) offering data relay service for terminals of the PLMN. Alternatively the relay entity or data relay service may be connected to a fixed network outside of the PLMNs in which the mobile terminals are subscribed and inter- coupled via any network connection (such as the internet) to the PLMNs. The relay entity and data relay service, respectively, is preferably connected to a fixed packet switched network. The mobile terminals working over a packet switched service such as GPRS may use conventional access points such as gateway GPRS support nodes (GGSN) for transmitting and receiving data
packets to and from the fixed packet switched network connecting to the relay entity and data relay service, respectively.
The communication connection to the relay entity is preferably initiated and established by the terminals that wish to participate in quasi peer-to-peer connectivity. Since each terminal initiates its own communication connection, policing network entities such as firewalls, or traffic managing entities such as NAT routers which may block incoming data traffic do not represent any problem in data traffic handling which may otherwise block incoming data traffic.
Moreover, the generic relay entity and data relay service is not limited in use to any transfer mechanisms and data transmission protocols. Both relay entity and terminals have only to support the employed transfer mechanism and data transmission protocol. Transmission control protocol (TCP) or user datagram protocol (UDP) represent typical transmission protocols employed in conjunction with packet switched data transmission. For example, the communication between a mobile terminal and a relay entity may be completely operated over TCP comprising protocol message communication and quasi peer-to-peer data communication, hi an alternative example, the protocol message communication between a mobile terminal and a relay entity may be operated over TCP, whereas the quasi peer-to-peer data communication may be operated over UDP, a port of which may be assigned by the relay entity and communicated to the mobile terminal. Of course different and future transmission protocols and transfer mechanisms may be utilized for protocol message and/or quasi peer-to-peer data communication in a similar or same way.
Typical client applications taking advantages of a quasi peer-to-peer connectivity according to the present invention are among others game client applications supporting multi-player environments. Such multi-player game client applications take advantages of a peer-to-peer coimectivity according to the present invention using the generic relay entity in substitution of specific game application related multi-player servers. The quasi peer-to-peer connectivity allows for establishing direct terminal end-to-end data communication required in multi-player environment. The generic relay entity and generic data relay service, respectively, offering the relaying of arbitrary data is applicable to several (game) client applications exchanging completely different data contents since the generic relay entity simply multiplies arbitrary data contents upon the participating mobile terminals without processing, modifying and the like thereof. The quasi peer-to-peer connectivity allows to realize the direct (relayed) data communication between the participating mobile terminals over a period of time in which an established quasi peer-to-peer communication connection is used for communicating continuously data therebetween.
Although the invention has been described with reference to particular embodiments thereof, it will be apparent to those skilled in the art that modifications to the described embodiments may be made without departing from the spirit of the invention. Accordingly, the scope of the invention is only defined by the attached claims.