METHOD AND SYSTEM FOR PROVIDING MESSAGING TO MULTIPLE CLIENTS
BACKGROUND OF THE INVENTION This invention relates generally to a computer-based method and a system for providing alert reports to multiple clients that have established a connection with a server host. Automated registration and de-registration of the clients for the alert reports is also provided.
The proliferation of computer networks, including the Internet, has resulted in the development of numerous network applications that provide useful information for news, entertainment, education and other purposes. For example, an application may allow users to monitor financial markets, and to place trades for stocks and the like (e.g., day trading). In such a case, it is helpful for the user to be informed of news reports that may affect the market. Conventionally, some application providers generate news messages that appear on the user's computer screen. For example, this may be achieved using an e-mail program such as Simple Mail Transfer Protocol (SMTP) or other application-level e-mail program, to e- mail messages to the users. However, the users must sign up for such a service by providing the server host with the e-mail address, and typically other identifying information, such as name, address and so forth. Moreover, e-mail may experience a delay of several minutes, and consume resources of the server host and the network by sending a separate copy of the message to each recipient. In particular, e-mail is handled by various e-mail servers on the Internet, and there is no guarantee that the e-mail will arrive within a certain amount of time since they are not under the control of the e-mail sender. In many cases where time is critical, these delays and uncertainties are unacceptable. In another approach, members log onto a chat room to exchange messages.
However, this requires the user to actively monitor the chat room. Moreover, such systems are designed for user-to-user messages, rather than multicast of a message (with a link) to all users at once.
Accordingly, it would be desirable to provide a method and system for providing reports (messages) from a server host to multiple users at respective client hosts at the same time that avoids the delays and uncertainties of conventional e-mail. The method and system should provide essentially instant messaging, where the full control of all aspects
of the alert delivery is placed in the sender's hands. The method and system should provide automatic registration and de-registration of the users, and efficiently use server and network resources. The method and system should use a multicast distribution scheme to send messages to the clients that takes advantage of the existing connection between the server and the clients. The method and system should also enable the users to link to a relevant web site to obtain additional information regarding the subject of the report.
The present invention provides a method and system having the above and other advantages.
SUMMARY OF THE INVENTION Accordingly, it is an object of this invention to solve the problems with existing systems described above.
It is an object of the invention to provide a method and system for automatically registering and de-registering clients at a server to receive messages such as alert reports upon the establishment and termination, respectively, of connections between the clients and the server. For example, such connections may be made according to the Transmission Control Protocol(TCP)/Internet Protocol (IP).
It is another object of the invention to provide a method and system for communicating an alert report from the server to the currently-registered clients simultaneously without repeating the alert report. Preferably, this is achieved by encoding the reports in datagrams, e.g., using the User Datagram Protocol (UDP)/IP, that are multicast to the clients using the IP addresses of the clients that were obtained from the previously- established connections. UDP is a connectionless transport layer protocol. IP is a network layer protocol.
These objects and other advantages are provided by a method and system for providing a uniform multicast messaging service wherein a brief message, concerning a subject matter and containing a reference to further detailed information, may be simultaneously issued to multiple clients. The system includes a client and server component which share a well-defined protocol. The client component is capable of deciphering multicast messages and representing the message content to the user. The server component provides a common client registration and message multicast point. The server relays all messages to all currently-registered clients. For simplicity, clients of the system do not
originate messages, since they exist to provide a notification to the clients.
Moreover, client registration is automatically achieved by simply completing the connection between the client and server, e.g., using TCP/IP, while client deregistration is automatically achieved by simply disconnecting from the server, e.g., closing the TCP/IP connection.
Thus, the client is always active and registered whenever it is executed by the user. The client only deregisters if the user exits the application.
BRIEF DESCRIPTION OF THE DRAWINGS For a fuller understanding of the invention, reference is made to the following description taken in connection with the accompanying drawings, in which:
FIG. 1 is a diagram representing a system architecture in accordance with the present invention;
FIG. 2 is a flow diagram showing a process of registering and de-registering clients at a server in accordance with the present invention; FIG. 3 is a flow diagram showing a process of generating and multicasting alert report messages at a server in accordance with the present invention; and
FIG. 4 is a flow diagram showing a process of receiving and displaying alert report messages at a client in accordance with the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The preferred embodiments of the invention are now described with reference to the drawings in the figures.
FIG. 1 is a diagram representing a system architecture in accordance with the present invention. The system includes a server 110 that coimnunicates with a number of clients, such as an example client 150, via a computer network 105 such as the Internet. The server also communicates with other clients/users that are not specifically shown. An administrator interface 120 communicates with the server 110 to provide information regarding the alert reports. For example, the interface 120 may include a keyboard that enables an administrator to type in a report to convey breaking news or other information to the currently-connected clients. For instance, for a server that provides a day-trader application to enable clients to buy and sell stocks, the reports may include announcements and tips, usually during the stock market hours. Such reports may include "We think there is
a large upside to buying XYZ stock at $66 a share", "The market is oversold, look for a bounce by lunchtime hours", or "The biotech newsletter issue of the month has been posted on the site." The ability to keep clients informed in this manner with time-sensitive alerts is important in enabling the site to attract clients, often on a paying basis. The invention may use a single transaction protocol, wherein a message transaction is provided by an alert report generator 112 that comprises, in an example embodiment, an ASCII text subject line that mentions the subject of the alert, an ASCII field separator, and a URL that provides a reference to further information for the subject. A relevant URL may be associated with a report, e.g., based on a manual input by the administrator. For example, the message "GE to post earnings" may be associated with the URL "www.ge.com". The reports, e.g., alerts, may be sent by the administrator via a simple on-screen form that is provided by the application. Any administrator with access to the form can type in and send the alert. Moreover, the alerts can be sent at anytime there is something to tell the clients. A client registration function 114 automatically registers each client when the client connects to the server. The IP address of the client is obtained during the establishment of the TCP/IP connection and stored for subsequent use. There is no need for storage of the IP addresses to be maintained external to the running server process.
A multicast function 116 distributes any alert reports to the currently- connected (registered) clients as soon as the reports are received from the administrator. In particular, the reports are multicast as UDP datagrams using the existing TCP/IP connection established during the initial registration. UDP/IP is a connectionless service that provides quick delivery without the need for overhead processes such as congestion control and confirmation of delivery that connection-oriented services such as TCP provide. With IP multicast on the server side, each client connection is also a multicast listener on the server. Input is provided to all client connections through the UDP packet containing the message, and the message is then written to the client connection and subsequently displayed on the user's desktop.
A web site function 118 provides content that the clients may access. For example, for a day trading web site application, the web site function 118 may provide realtime displays of stock market data, access to research, and so forth.
The example client 150 includes a user interface 160 such as a keyboard that allows the user to type in commands to connect to the web site offered by the server 110. Typically, this is achieved using a browser function 152 that runs an Internet browser.
A timestamp function 154 appends a timestamp to all received alert reports. An alert report processor 156 processes and displays the data to the user, e.g., on a display 170, by appending a message transactions subject line to a text display that is presented to the user. The subject line or a portion thereof is underlined to indicate further information is available to the user by clicking on the subject text. That is, the subject line provides a hyperlink to an address (URL) such as a web page that provides further information regarding the subject of the report. The display is part of the client application, which may be a Microsoft Windows™ application that contains a text widget (also referred to as a list box) which supports representing textual data to the user.
The client display supports directing the user to the URL contained in the message transaction, e.g., at a designated web site 180, by automating the user's preferred browser installed on the user's computer. This automation may be activated, e.g., whenever the user clicks on the underlined subject text in the client's on-screen text display.
FIG. 2 is a flow diagram showing a process of registering and de-registering clients at a server in accordance with the present invention. At decision block 200, a determination is made as to whether the server has established a connection with a new client. If so, the new client is registered (210), and a record of registered clients is updated, including client IP addresses (220). The establishment of a connection between the server and the client may be achieved using the TCP three-way handshaking process, as known to those skilled in the art. When the connection is established, e.g., using a TCP segment with the bit SYN=1, both the server and the client allocate buffers and variables to the connection. Advantageously, no specific action is required by the client to become registered. At decision block (230), a determination is made as to whether a connection with the client has been terminated (either by the server or client). If so, the terminated client is de-registered (240), and the record of registered clients is updated accordingly (220). Again, no action is required by the client to terminate the registration once the connection terminates. When the connection ends, the resources allocated by the server and client are de-allocated. For
example, to close the connection, the client or server may send a special TCP segment with the bit FLN=l.
Moreover, there is no need for the server to store the registration information of the clients after their registration has been terminated since the clients will be re-registered when they subsequently re-connect to the server.
FIG. 3 is a flow diagram showing a process of generating and multicasting alert report messages at a server in accordance with the present invention. At decision block 300, a determination is made as to whether a new alert report has been issued, e.g., by the site administrator. If so, an alert report message is generated as described above and provided in one or more UDP datagrams (310). The IP addresses of the currently registered clients are obtained (320), and the UDP datagrams are multicast to the currently-registered clients based on their IP addresses (330). The process is repeated as subsequent alert reports are issued such that the alert reports are multicast to all currently-registered clients.
FIG. 4 is a flow diagram showing a process of receiving and displaying alert report messages at a client in accordance with the present invention. When the user desires to browse the web site or other information offered by the server, the client requests a connection with the server (400), e.g., using TCP/IP. The client browses the website (410) until a new alert report is received from the server (420). The alert report message is processed, e.g., by adding a time stamp and processing the received UDP datagrams (430) to recover the subject line and URL, and a display of the subject line of the message with a hyperlink is provided (440). The client may use its browser to select the hyperlink, and thereby comiect to the hyperlinked website (450).
Accordingly, it can be seen that the present invention provides a method and system for transmitting alert report messages from a server to a number of clients that are currently connected to the server. In a particular embodiment, a client application connects to the server via TCP/IP and maintains the connection. An alert report administrator issues an alert by sending an alert report message to the server. This message is then multicast simultaneously to all registered clients. In particular, the multicast and receipt of the messages is performed over the TCP/IP connection that was established during the initial registration. However, a connectionless transport protocol such as UDP is used (e.g. UDP/IP). At the client, the alert report is processed to provide a notification on the user's
personal computer (PC) display. The alert notification takes the form of a report that is displayed to the user. That report includes a date/time stamp, a brief message subject, and a URL. If the user clicks on, or otherwise selects, the alert report, the client navigates the user's pre-existing web browser application to the URL identified in the alert report message. While the invention has been described and illustrated in connection with preferred embodiments, many variations and modifications as will be evident to those skilled in this art may be made without departing from the spirit and scope of the invention, and the invention is thus not to be limited to the precise details of methodology or construction set forth above as such variations and modification are intended to be included within the scope of the invention.