[0001] The present invention relates in general to messaging techniques, and more particularly, to techniques for establishing peer-to-peer instant messaging communications between wireless devices.
[0002] The Internet and many on-line information services provide electronic mail, conferencing and chat services, and an ability to access remote computers for sending and retrieving files. Electronic mail, perhaps the most widely used of Internet and on-line service applications, has an inherent asynchronous or “off-line” time delay characteristic.
[0003] Instant messaging, or simply chat, provides informal communications among users of data network facilities. Instant messaging allows two or more users to converse by exchanging (for example) text messages, typically through a channel or a virtual chat room maintained on one or more instant messaging servers, and conventionally accessed via an on-line service or using general purpose client software executing at a user terminal, workstation or personal computer. Only chat participants connected, for example, through a telephone line modem, to the on-line service or other chat environment provided by one or more chat servers can take part in an instant messaging session.
[0004] Instant messaging (IM) allows a user to launch a message to another user. Variants of IM permit a notice to be sent to others, e.g., located on a buddy list, when a particular user logs onto a server, even without joining a chat or other multi-person conversation. Users announce their availability to receive messages by electing options or submitting system parameters in advance. The sender of an instant message determines who will receive the message.
[0005] Instant messaging allows users to exchange information synchronously. Examples of Internet based instant messaging are Internet Relay Chat (IRC), America Online Instant Messenger, Yahoo Messenger, VPBuddy, Sametime and Jabber. All these technologies are client/server based, with the users typically employing personal computers connected to the internet to use the instant messaging system.
[0006] More and more pervasive devices are being used to connect to the Internet. Examples are Internet Appliance devices, ThinClients, Handhelds and cellular phones. Wireless communication connects these devices to the Internet, however, the same concept for instant messaging is applied; that is, the instant messaging remains client/server based.
[0007] Thus, a drawback to existing instant messaging services is their continual reliance on the presence of an instant messaging server or server directory to facilitate the IM communication between clients, even when the clients comprise wireless devices. A need therefore exists in the art for an instant messaging technique for wireless devices which allows dependence on server based communications to be reduced.
[0008] The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method of establishing instant messaging communication between wireless devices. The method includes: employing an instant messaging server to identify for a first wireless device at least one additional wireless device belonging to a same piconet as the first wireless device; and establishing direct instant messaging communication between the first wireless device and a second wireless device, wherein the second wireless device is one device of the at least one additional wireless device belonging to the same piconet, and wherein the direct instant messaging communication between the first wireless device and the second wireless device comprises direct wireless communication therebetween.
[0009] In another aspect, an instant messaging method is provided which includes: establishing connection of a first wireless client to an instant messaging server; sending a request from the first wireless client to the instant messaging server for identification of available wireless clients for instant messaging; receiving available wireless client information at the first wireless client from the instant messaging server; and establishing direct wireless connection between the first wireless client and a second wireless client using the available wireless client information received from the instant messaging server, wherein the direct wireless connection allows direct wireless communication between the first wireless client and the second wireless client.
[0010] Systems and computer program products corresponding to the above-summarized methods are also described and claimed herein.
[0011] To restate, provided herein are techniques for establishing direct instant messaging communication between wireless devices. In accordance with the present invention, an instant messaging (IM) session is transferred from a client/server model to a peer-to-peer communication model once information is exchanged that some or all IM session participants are part of a same wireless network, such as a piconet. Advantageously, by transitioning the IM session to direct peer-to-peer communication, less server resources are employed. Once the peer-to-peer IM session communication is established, no further communication to the server is needed for participants to communicate. Thus, messages between the participants no longer need to be stored and forwarded through an IM server. This frees up the server allows messages to pass directly over an established radio frequency link, thereby saving server and network resources. In addition, there is a lower message transmission latency between participants of the IM session. Should the server's network go down, the participants can still communicate within the IM session. Also, once the peer-to-peer IM session is established, better security is provided through the limited message distribution through the wireless network, such as a piconet.
[0012] Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.
[0013] The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
[0014]
[0015]
[0016]
[0017]
[0018] Generally stated, provided herein is a technique for initiating an instant messaging (IM) session on a client/server paradigm and transforming the IM session into a peer-to-peer communication once information is exchanged that some or all chat participants are part of a same wireless network. Before describing certain embodiments of the technique in accordance with aspects of the present invention, various terms are defined:
[0019] Peer-to-Peer: Peer-to-peer is a communications model in which each party has similar capabilities and either party can initiate a communication session. Other models with which it might be contrasted include a client/server model and a master/slave model. In certain cases, peer-to-peer communications is implemented by giving each communication node both server and client capabilities. In recent usage, peer-to-peer has come to describe applications in which users can use the Internet to exchange files with each other directly or through a mediating server. However, in the context of the present invention, peer-to-peer is used to describe applications in which users can communicate with each other directly, without using a mediating server such as an IM server wired to a network.
[0020] Client/Server: Client/server describes the relationship between two computer programs in which one program, the client, makes a service request from another program, the server, which fulfills the request. Although the client/server idea can be used by programs within a single computer, it is more often used in a network. In a network, the client/server model provides a convenient way to interconnect programs that are distributed across different locations. Computer transactions using the client server model are very common. For example, to check a bank account from a personal computer, a client program in the computer forwards a request to a server program at the bank. That program may in turn forward the request to its own client program that sends a request to a database server at another bank computer to retrieve the account balance. The balance is returned back to the bank data client, which in turn serves it back to the client in the personal computer, which displays the information for the individual. The client/server model has become one of the central ideas of network computing. Most business applications written today use the client/server model. So does the Internet's main program TCP/IP. In marketing, the term has been used to distinguish distributed computing by smaller dispersed computers from the “monolithic” centralized computing of mainframe computers. But this distinction has largely disappeared as mainframes and their applications have also turned to the client/server model and become part of network computing.
[0021] In the usual client/server model, one server, sometimes called a daemon, is activated and awaits client requests. Typically, multiple client programs share the services of a common server program. Both client programs and server programs are often part of a larger program or application. Relative to the Internet, a Web browser is a client program that requests services, e.g., the sending of Web pages or files, from a Web server in another computer somewhere on the Internet. The Web server technically is called a Hypertext Transport Protocol or HTTP server. Similarly, a computer with TCP/IP installed allows a user to make client requests for files from File Transfer Protocol (FTP) servers in other computers on the Internet.
[0022] Other program relationship models include master/slave, with one program being in charge of all other programs, and peer-to-peer, with either of two programs able to initiate a transaction.
[0023] Piconet: A network of devices connected in an ad hoc fashion using direct connection wireless technology, such as Bluetooth technology. A piconet is formed when at least two devices, such as a portable PC and a cellular phone, connect. A Bluetooth-based piconet can today support up to eight devices. When a piconet is formed, one device acts as a master while the others act as slaves for the duration of the piconet connection. A piconet is sometimes called a PAN (i.e., Pico Area Network). “Piconet” is a combination of the prefix “pico”, meaning very small or one trillionth, and network. Broadly stated, a piconet is used herein to mean any wireless network with direct peer-to-peer capabilities. Typically, a piconet has a range characteristic and a frequency or bandwidth characteristic. The range refers to the distance with which, for example, the radio frequency signals may carry (with 300 feet being an example today), while frequency or bandwidth refers to the frequency at which users are communicating using their wireless devices. Further, a piconet can be established between the same type of wireless devices or different types of wireless devices.
[0024] Bluetooth Technology: The Bluetooth standard is an open wireless communication technology that forms small piconets. The Bluetooth standard is described in a publication by Brent A. Miller and Chatschik Bisdikian entitled “Bluetooth Revealed”, published by Prentice Hall, ISBN: 013090294-2 (2001), which is hereby incorporated herein by reference in its entirety.
[0025] Jabber: Jabber is an open instant messaging program or protocol described, for example, by D. J. Adams in a publication entitled “Programming Jabber”, published by O'Reilly & Associates, ISBN 0596002025 (2001); and in an article by Doc Searls entitled, “The Next Bang: The Explosive Combination of Embedded Linux, XML and Instant Messaging” Linux Journal, No. 77 (September 2000), both of which are hereby incorporated herein by reference in their entirety.
[0026] Briefly described, with Jabber every user interacts through a local server that transfers messages to and through any number of other servers, each with its own domain. Jabber identifiers are also expressed like email: yourname@domain.com. Clients and servers converse among themselves through XML streams. In client/server conversations, the XML stream is always initiated by the client to the server. The architecture can support simple clients (e.g., a direct telnet connection) as well as AIM, ICQ and other proprietary clients. Since it is built on XML, Jabber is extensible and able to express just about any kind of structured data. Jabber's own protocol consists of XML fragments passed over XML streams between clients and servers. There are three primary protocols that define the basic types of XML fragments used in Jabber: Messages, Presence and Info/Query. Server-to-server communication involves routing these protocol elements over an XML stream from one server to another (there are no special server-to-server protocols or features). A Module API lets the server use external modules to handle message filtering, storage facilities (off-line messages, rosters, user info), user authentication and other functions. A Service API allows integration of security, special connections for alternate clients and message logging. Transport servers are used to bridge the Jabber protocol to other services, such as IRC, ICQ and AIM.
[0027] Instant Messaging: Instant messaging (IM) is a mode of communication which allows users to exchange information substantially synchronously. As noted initially, examples of internet-based instant messaging are Internet Relay Chat (IRC), America Online Instant Messenger, Yahoo Messenger, VPBuddy, Sametime and Jabber. As a further detailed example, IRC protocol is discussed in an article by J. Oikarinen and D. Reed entitled: “Internet Relay Chat Protocol”, IETF (May, 1993).
[0028]
[0029]
[0030] As a conventional IM example, client
[0031] client
[0032] client
[0033] In accordance with an aspect of the present invention, two or more clients might exchange their metadata, which in one example would be their respective Bluetooth Device Address (BD_ADDR) and Access Code (CAC,DAC)information. This data identifies a piconet that each client is a member of. The clients can then check to see if they are part of the same piconet, and if so, the clients can continue the IM communication in a direct, peer-to-peer mode, with the IM server no longer being used.
[0034] client
[0035] client
[0036]
[0037] Assuming that the partner client is in the same piconet, then the client establishes direct wireless communication to the partner client
[0038]
[0039] One embodiment for establishing a piconet connection from client
SEND: <steam:stream SEND: to=″client2.jabber.com″ SEND: xmlns=″jabber:client1″ SEND: xmlns=″http://etherx.jabber.com/streams″> RECV: <stream:stream RECV: xmlns=″http://ehterx.jabber.com/streams″> RECV: id=″39ABA7D2″ RECV: xmlns=″jabber:client1″ RECV: from=″client1.jabber.com″>
[0040] Various modes of communication using the concepts of the present invention and implemented using the Jabber protocol, are presented below.
[0041] Shift from client server to peer-to-peer: This example assumes three clients are connected to a server. Two of the clients are in the same piconet, while the third client and the server are in the wired Internet. Below is an example of client
SEND: <steam:stream SEND: to=″server.jabber.com″ SEND: xmlns=″jabber:client″ SEND: xmlns=″http://etherx.jabber.com/streams″> RECV: <stream:stream RECV: xmlns=″http://ehterx.jabber.com/streams″> RECV: id=″39ABA7D2″ RECV: xmlns=″jabber:client″ RECV: from=″server.jabber.com″> SEND: <iq id=″1″ type=″set″> SEND: <query xmlns=jabber:iq:auth″> SEND: <username>user1</username> SEND <resource>r_user1</resource> SEND: <piconet_id>BD_ADDR,CAC,DAC</piconet_id> SEND: <digest>. . .</digest> SEND: </query> SEND: </iq> And so on. . .
[0042] This is almost the standard authentication protocol. The SEND line <piconet_id>is added to provide information on the piconet this client currently is residing in. The second client is also authenticating with the server and also provides a piconet id. The third client authenticates as well but omits the line with the piconet id information since client
[0043] Note that a Bluetooth access code comprises a 4 byte preamble, a 64 byte sync word and a 4 byte trailer. The channel access code is an access code that identifies a piconet. This code is included in all packets exchanged on the piconet. Using the algorithm in the Bluetooth Baseband specification, a programer can test the channel access codes to find out if they are using the same piconet.
[0044] Client/Server example: A user
SEND: <message to=″user3@client3/r_user3″type=″chat″> SEND: <body>This is an invitation to a client server chat</body> SEND: </message>
[0045] The server receives the stream, parses it and delivers it to client
RECV: <message from=″user3@client3/r_user3″type=″chat″> RECV: <body>This is an invitation to a client server chat</body> RECV: </message>
[0046] Peer-To-Peer example: A user
SEND: <message to=″user3@client3/r_user3″type=″chat″> SEND: <body>This is an invitation to a peer-to-peer chat</body> SEND: </message>
[0047] Client
[0048] Those skilled in the art will understand that the present invention can be included in an article of manufacture (e.g., one or more computer program products) having, for instance, computer usable media. The media has embodied therein, for instance, computer readable program code means for providing and facilitating the capabilities of the present invention. The article of manufacture can be included as a part of a computer system or sold separately.
[0049] Additionally, at least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform the capabilities of the present invention can be provided.
[0050] The flow diagrams depicted herein are just examples. There may be many variations to these diagrams or the steps (or operations) described therein without departing from the spirit of the invention. For instance, the steps may be performed in a differing order, or steps may be added, deleted or modified. All of these variations are considered a part of the claimed invention.
[0051] Although preferred embodiments have been depicted and described in detail herein, it will be apparent to those skilled in the relevant art that various modifications, additions, substitutions and the like can be made without departing from the spirit of the invention and these are therefore considered to be within the scope of the invention as defined in the following claims.