Apparatus and method for instant messaging collaboration

Information

  • Patent Grant
  • 8402095
  • Patent Number
    8,402,095
  • Date Filed
    Thursday, February 28, 2008
    16 years ago
  • Date Issued
    Tuesday, March 19, 2013
    11 years ago
Abstract
An apparatus and method for instant message transmission includes a message center coupled to one or more servers and to an event engine by a network. An instant message is transmitted to the message center by the event engine over the network. An algorithm determines the optimum path for the transmission of the instant message. Users may share identical data via instant messaging, and may make changes to the data as it is streamed in real-time to designated users over the network. It is emphasized that this abstract is provided to comply with the rules requiring an abstract that will allow a searcher or other reader to quickly ascertain the subject matter of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. 37 CFR 1.72(b)
Description
FIELD OF THE INVENTION

The present invention relates generally to the field of computer-facilitated communications; more particularly, to instant messaging between users logged into a computer network.


BACKGROUND OF THE INVENTION

A paramount concern in a modern enterprise is the ability to quickly respond to changing information. Electronic messaging systems such as instant messaging and e-mail have provided convenient tools for contacting people or groups of people efficiently. These systems provide a fast and inexpensive method for individuals to communicate and collaborate. Reliance on electronic communication has increased markedly in recent years. As technology advances, it is certain that organizations will become more dependent on immediate access to information to excel in a competitive environment.


It is also important for members of an organization to be able to effectively share identical screen images in real-time, such as text and graphics, among one or more client computers. Users typically share these images with one another using e-mail or instant message attachments. A practice known as “screen sharing” or “window sharing” is also used to allow for the display of identical information on computer screens or windows which are mutually connected in a distributed system. Nevertheless, these solutions have shortcomings. For one, instant messaging is not used for screen sharing. Instead, users are typically connected via a slow connect medium, which adversely affects the instantaneous quality of instant messaging. Furthermore, when users send large attachments, there is an overall slowdown in the speed and reliability of their networks as server capacity is consumed at high levels. In addition, instant messaging systems are generally not scalable. There is typically only one path for a message to take over a network, and past systems have lacked the intelligence to find a more optimum path for the instant messages.


Consequently, if there is too much traffic on a particular path, the recipient of an instant message may be subjected to a substantial delay.


Still another major shortcoming of existing instant messaging systems is that they do not provide a secure medium for confidential communication. Instant messaging has been traditionally conducted over the Internet, with communications sent via clear text. This type of insecure forum is often unacceptable for high-security business information. Finally, most instant messaging systems cannot track the presence of an individual throughout an organization. If an emergency happens within the organization, for example, there is no way to automatically alert the proper individuals using existing instant messaging technology.


What is needed is a comprehensive instant messaging system that allows for encrypted communication, collaborative screen sharing using the instant messaging system, and extensibility. Furthermore, an instant messaging system that is able to track the presence of individuals within an organization and to alert those individuals automatically if a predetermined event occurs would also be beneficial.





BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood more fully from the detailed description that follows and from the accompanying drawings, which, however, should not be taken to limit the invention to the specific embodiments shown, but are for explanation and understanding only.



FIG. 1 is a block diagram illustrating an enterprise computing runtime environment according to one embodiment of the present invention.



FIG. 2 is a block diagram illustrating message center architecture according to one embodiment of the present invention.



FIG. 3 is a block diagram illustrating instant messaging collaboration according to one embodiment of the present invention.



FIG. 4 is a flow chart illustrating the steps of an instant messaging process according to one embodiment of the present invention.



FIG. 5 is a flow chart illustrating the steps of an instant messaging collaboration process according to one embodiment of the present invention.



FIG. 6 is a flow chart illustrating one example operation according to one embodiment of the present invention.



FIG. 7 is a flow chart illustrating the steps of a peer-to-peer instant messaging collaboration process according to one embodiment of the present invention.



FIG. 8 illustrates a computer system according to one embodiment of the present invention.





DETAILED DESCRIPTION OF THE INVENTION

A system and method for instant messaging collaboration is described. In the following description, numerous specific details are set forth, such as the architecture of a message center, details regarding particular types of instant messaging collaboration, and the use of the invention for sharing business reports, in order to provide a thorough understanding of the present invention. However, persons having ordinary skill in the computer arts will appreciate that these specific details may not be needed to practice the present invention.


According to one embodiment of the present invention, an instant messaging system is provided that allows users to transmit messages instantaneously to any user located in a list of users contained in the instant messaging system. The system is able to track the presence of users that are using the instant message system within an organization, and to send users alerts about changing information within the organization. For example, if the instant messaging system is used in an oil refinery and there is a dangerous condition occurring in the refinery, an instant message may be sent to the appropriate people within the refinery so that they are able to immediately respond to the event. The system also provides for instant messaging through e-mail if users are not using the instant messaging system.


In one embodiment, the instant messaging system allows users to plug in their own security, such as bit encryption, so that confidential information may be transmitted between users in a highly secure manner. In another embodiment, a proprietary instant messenger allows for peer-to-peer collaboration, completely bypassing a server for instant messaging. In this manner, users of the system may communicate directly with one another and share identical screen images without having to communicate through the Internet, or with any other server, for that matter. If an image on one user's screen changes, this change may be streamed in real-time to all other participants in the instant messaging collaboration. The instant messaging system of the present invention is also extensible, such that message deliveries can be farmed out to back-up servers to send instant messages to users if network traffic necessitates this type of transmission.


Referring now to FIG. 1, there is shown a block diagram illustrating an enterprise computing runtime environment according to one embodiment of the present invention. There is shown in FIG. 1 a simplistic view of an enterprise computing runtime environment 101 containing a plurality of enterprise systems that are often utilized in an organization. In FIG. 1, these enterprise systems include “back office” applications 102 for enterprise resource planning (ERP), “front-office” applications 103 for customer relationship management (CRM), customized legacy systems 104, and multidimensional/relational database management systems (RDBMS) 105. Of course, a variety of other applications (not shown in this view) may also exist in the enterprise computing runtime environment 101. These disparate systems may be coupled to one another using a local area network (LAN) 106, a wide area network (WAN) or any other such networking environments commonplace in offices, enterprise-wide computer networks, the intranet, and the Internet. Further, network 106 may include a wireless network, such that one or more computers may operate over a wireless LAN.


As is known in the art, the existing enterprise systems contain a variety of different data about the organization. For example, the ERP system 102 may contain data regarding essential business functions including payroll, manufacturing, general ledger, and human resources, whereas the CRM system 103 may contain core information regarding the organization's customers. As data in these various systems changes (e.g., a sale is made, a new employee is hired, payroll is processed, etc.), one or more message queuing systems 107 may be used to allow these various applications 102, 103, 104, etc., to exchange information on the data being stored in their systems. To this end, one implementation of the present invention employs a message queue server (e.g., the Microsoft RTM message Queue Server (MSMQ) (not shown in this view), although other message queuing systems may be used as well, to provide loosely-coupled and reliable network (across servers) communication services based on a message-queuing model. In MSMQ, messages are sent to a queue, where the message is retained in storage until it is removed and used by another application. In this manner, loosely-coupled applications can share data to provide an enterprise-wide view of information, such as data and business transactions.


An enterprise link 110 is coupled to the enterprise computing runtime environment 101 through a network connection, such as the Internet 111. Of course, as is noted above, the network connection may also be a LAN, a WAN, a wireless network, or any other system of connections that allows one or more computers to exchange information. The enterprise link 110 integrates, in real-time, the disparate data in the message queues. The enterprise link 110 of the present invention is maintained active. It continuously accepts raw data feeds 121, 122, 123, etc., from the existing enterprise systems, and then reformats, synchronizes, and consolidates the data.


In a traditional model, the data in the message queues is usually processed through the dataflow system when a specified number of records had built up within the message queues (i.e., the data is then transmitted in batch mode). According to an algorithm contained within the data flow system of the present invention, however, individual records are processed through to the enterprise link 110 the moment that they appear; that is, the program continuously checks for new messages and handles them in real-time. In this manner, real-time data flow is transmitted through the raw data feeds 121, 122, 123 via the message queues.


It should be noted that although a message queuing system is used in one embodiment, the enterprise link 110 may also obtain data from the enterprise computing runtime environment 101 in a variety of other ways. These sources of data may be, for example, HyperText Transport Protocol (“HTTP”) requests and/or Application Programming Interface (“API”) calls and/or Web Services calls. In these alternative embodiments, the enterprise link 110 contains a web server (not shown in this view) to process the HTTP requests and/or another application or server to process the API and/or Web Service calls.


Regardless of how the enterprise link 110 receives the raw data feeds (e.g., 121-123) the enterprise link 110 transmits the data it receives from the enterprise computing runtime environment 101 via a network connection 160 to an active data cache (ADC) 120. Alternatively, the data may be transmitted to the ADC 120 via some other connection. The ADC 120 comprises a high-performance, memory-based persistent cache which stores the data (e.g., as shown by stars 131, 132, and 133) it receives from the enterprise link 110. The ADC 120 contains code which may be implemented in software such as Java™, Perl, C++, or other types of programming languages that can be stored on a computer-readable medium (e.g., a disk) to manage the data that is actively changing within the enterprise computing runtime environment 101 and to make the data accessible to the end-user in real-time. In this manner, the data represented by stars 131, 132, and 133 in the ADC 120 is constantly changing such that it is synchronized in real-time with the data in the enterprise computing runtime environment 101. The data 131, 132, and 133 in the ADC 120 may also be made persistent to disk 140, as disk 140 is optionally used for backup, restore, and recovery purposes.


An active designer 154 is the component module of the enterprise link 110 that determines the particular data that is contained within the ADC 120. Active designer 154 determines the process by which the data 131, 132, and 133 is transmitted to the ADC 120. As is shown in FIG. 1, the active designer 154 is also connected to the enterprise computing runtime environment 101 via the Internet 111. The active designer 154 essentially contains one or more lists of data flow definitions that define which operations are to be performed on the data that is transmitted to the active designer 154 through the network connection 111. Again, the code for the data flow definitions may be implemented in software such as JAVA™, Perl, C++, C#, or other types of programming languages that can be stored on a computer-readable medium.


By way of example, when sales data arrives at the ERP 102, the active designer 154 may contain a set of data flow definitions on how to retrieve, transform, and display this data. Each data flow definition may include executable software code instructing the enterprise link 110 to retrieve, by way of example, the data within the salesperson field whenever a sale is made, to describe how many sales that salesperson has made for the day, etc., and then to transmit this data to the ADC 120.


In the embodiment of FIG. 1, the ADC 120 is connected to a message center 170 through the Internet 111. Alternatively, connections to the message center 170 may be made through the intranet, a LAN, a WAN, or any of the other conventional network connections. The message center 170 is essentially a broadcast center in that it transmits instant messages about important data that is actively changing within the enterprise computing runtime environment 101. When the ADC 120 receives a transmission about changing data and/or an event that occurred within the enterprise computing runtime environment 101, it transmits this data to an event engine 180. The event engine 180 may be coupled to the ADC 120 through the Internet, the intranet, a LAN, a WAN, or any of the other network connections. The event engine 180 contains an algorithm for determining that an instant message about the particular event needs to be transmitted to the message center 170. If the event engine 180 determines that a message about the particular event must be transmitted to the message center 170, it transmits this data to an Application Programmer's Interface (API) contained within the message center architecture. The message center 170 then executes instantaneous message delivery to one or more users, as will be described in more detail herein. In addition, the message center 170 allows for instant messaging collaboration among one or more users as will also be described herein. A monitoring service such as a switchboard (not shown in this view), may also track a user of the instant messaging system and will notify a user who is a recipient of an instant message.


Referring now to FIG. 2 there is shown a block diagram of the message center architecture according to one embodiment of the present invention. The main server component 200 of the message center 170 includes the API layer 201 which may interface with a variety of outside components in an enterprise computing runtime environment through an event engine 202. The event engine 202 may be coupled to the main server component 200 via a network connection 203, such as an intranet or Internet network or any other type of network connection as described herein. The main server component 200 also includes a presence component 209 and a user manager 204. The presence component 209 determines the state of individual instant messenger users 220 and 230; that is, whether users 220 and 230 are on-line or off-line, and variations of how contactable a particular user is. Of course, it should be noted that although only two users 220 and 230 are illustrated in FIG. 2, the number of users may vary. In some instances, hundreds or thousands of users may simultaneously use the instant messaging system described herein.


The presence component 209 may determine, for example, that a user is off-line, and therefore may not receive an instant message. The presence component may also determine that even though a user may not be using instant messaging, that the user has an e-mail address, where the instant message may be sent to be viewed the next time the user checks e-mail. The user manager 204 allows the server component 200 to obtain log-in information for various users. The user manager 204 also maintains lists of users that the server component 200 may communicate with via instant messaging. Local user information 205, including the name and e-mail address of users, may also be contained within the server component 200 of the message center architecture.


A variety of plug-ins 206, 207, and 208, may be connected to the message center 170 to allow the message center 170 to contact instant messaging users 220 and 230. In the embodiment illustrated by FIG. 2, the plug-ins 206, 207, and 208 include a proprietary instant messaging plug-in 206 and a Simple Mail Transfer Protocol (SMTP) plug-in 207 that interfaces directly with a mail server 211. Of course, a variety of other plug-ins may be used as well. A Microsoft instant messaging plug-in 208 allows the message center to interface with Microsoft's instant messaging server 210. The server component 200 logs on to Microsoft's instant messaging server 210 as a peer. The server component 200 has its own user that may log into the Microsoft instant messaging server 210 through a network connection such as the Internet 215.


Components of the enterprise computing runtime environment may use the event engine 202 to transmit messages through the API layer 201 directly to the Microsoft instant messaging server 210 through plug-in 208. The Microsoft instant messaging server 210 may then use the Internet 215 to transmit the instant message to a user 220. For instance, if an instant message needs to be sent to user 220 within an organization, the event engine 202 immediately transmits this message to the server component 200. The user manager 204 resolves the user's e-mail address on the Microsoft instant messaging server 210. The server component 200 employs the presence component 209 to determine whether or not user 220 is on-line. If user 220 is not on-line, then a message is transmitted back to the message center 170 indicating that the user is not on-line and thus cannot be contacted. Alternatively, the server component 200 may send the instant message to the user 220 via e-mail through the SMTP mail protocol plug-in 207 for the user 220 to receive next time the user checks his in-box. If the user 220 is on-line, however, then the plug-in 208 immediately transmits the message via the Internet 215 to the Microsoft instant messaging server 210. The Microsoft instant messaging server 210 then transmits the message to the user 220.


In another embodiment of the present invention, a user 230 may receive instant messages without using the Microsoft instant messaging server 210. For example, the proprietary instant messaging plug-in 206 allows instant messages to be transmitted from the event engine 202 to users who are logged into a proprietary server 240. If a message arrives at the server component 200 from the event engine 202 for the user 230, the user manager 204 is able to resolve the user's 230 e-mail address and transmit the message to the user 230 via the mail server plug-in 207. In addition, the message center is able to determine how the user 230 is logged on to the system. That is, it recognizes that the user 230 is logged on using the proprietary server 240 and therefore is able to send the message to the user 230 via the proprietary instant messaging plug-in 206.


Instant messages may be sent using the proprietary instant messaging plug-in 206 and the SMTP plug-in 207 simultaneously. Or, alternatively, an algorithm within the server component 200 may contain a set of rules to determine the best mode of instant message transmission. For example, if a message arrives at the message center for user 220, an algorithm may dictate that the instant message first try to be sent via the Microsoft instant messaging server 210, next through the proprietary server 240, and, if this fails, through the SMTP plug-in 207 via the mail server 211.


In another embodiment, an algorithm may be used to try to transmit the instant message through the proprietary server 240 first, the Microsoft instant messaging server 210 second, and the mail server 211 last. The proprietary server 240 may be connected to the server component 200 and to the users 230 and 220 via a standard Transmission Control Protocol/Internet Protocol (TCP/IP) connection 216. Thus, the proprietary server 240 allows messages to be transmitted using bit-encryption or other highly secure transmission methods. The users 220 and 230 may also be connected to each other via the TCP/IP connections 216 and to the mail server 211 via the TCP/IP connection 216.


In addition, two components of the proprietary server 240 allow for the farming out of network traffic to multiple in-house servers. A presence component 251 of the proprietary server 240 is able to detect the presence of users 220 and 230 of the system, that is, whether or not users 220 and 230 are logged on to the proprietary server 240. A message component 252 of the proprietary server 240, handles message delivery to users 220 and 230.


If multiple messages are transmitted to the proprietary server 240 it may farm them out to back-up servers 241, 242, 243, etc., via the TCP/IP connection 216 located in-house if network traffic is too extensive. In this way, the instant messaging system is scalable. If hundreds of users in an organization need to receive an instant message, these messages may be farmed out to as many back-up servers 241, 242, 243, etc., as necessary and then transmitted to the appropriate users. Furthermore, users 220 and 230 may also communicate directly, without going through a proprietary server 240. This type of direct connection may be brokered by the proprietary server 240. In this case, the proprietary server 240 may set up a direct connection between user 220 and user 230 if the proprietary server is unable to connect to the users 220 and/or 230.


The proprietary server sets up with direct communication using an algorithm. According to the algorithm, the proprietary server 240 sends user 220 the IP address of user 230 (or vice versa). User 220 and user 230 then try to connect directly, bypassing the proprietary server for communication. If the communication is successful, the users 220 and 230 partake in instant message collaboration. If not, the instant message may be brokered back to the proprietary server 240. Thus, the instant messaging system can not only provide collaboration to users 220 and 230, the instant messaging system may also find the optimum path for the instant messages to use within the system.


Referring now to FIG. 3, there is shown a block diagram illustrating instant messaging collaboration according to one embodiment of the present invention. When a user 301 receives a message via the server component 320 of the message center via network connection 321, a chat window or some other icon appears on the user's 301 client computer screen 304. When the user 301 selects the chat window, a new window appears on the client computer screen 304 which contains data that the sender wants the user 301 to see.


In one example, the data may be in the form of a report 306 which is displayed in a specified format, such as a graph. The data may be active. That is, as data changes within the enterprise computing runtime environment these changes are immediately made available to the user 301 (or any user specified by the algorithm contained within the event engine) in real-time via the server component 320 of the message center. At this point, the user's 301 client computer is communicating directly with the server component 320 via connection 321.


Hosted inside the user's 301 client computer is the data. User 301 may click on the chat window to view the data on the user's client computer screen 304. Moreover, the user 301 may share the data with users 302 and 303 via the proprietary server 350. If the user 301 decides to share the data with users 302 and 303, the user 301 may use a viewer 335 to display a drop-down screen 340. A space 345 for text entry in the drop-down screen 340 is provided as well as a conversation window 355 to allow for instant messaging, that is, for “chatting” with users 302 and 303 via the proprietary server 350. The user 301 may send the data comprising the graphical report 306 in the form of an instant message to users 302 and 303 through the proprietary server 350. This message is streamed through the propriety server 350 via the instant messaging protocol. Icons appear on users' 302 and 303 client computer screens 370 and 371, indicating that they are the recipients of an instant message. When the users 302 and 303 click on the icons, they are able to see the exact data, in this example, the graphical report 306, that is shown on user's 301 computer screen. Users 302 and 303 are able to click on their viewers 375 and 385, to display drop-down screens 380 and 390. Spaces for text entry 381 and 391 and conversation windows 382 and 392 may be used to convey messages to users 301, 302, and 303 involved in the instant messaging collaboration in the manner described herein.


In addition, users 301, 302, and 303 are able to annotate the data in real-time in order to make changes to the data or insert comments. As a user 301, for example, annotates the data, the annotated data is streamed in real-time to users 302 and 303 who are involved in the instant messaging collaboration via the proprietary server 350. Furthermore, users 302 and/or 303 may also make changes to the data in real-time, which may be streamed through the proprietary server 350 to the users 301, 302, and 303.


Another feature of the present invention allows for client computers that have pen-enabled data input. For example, a user 301 may circle a portion of the graphical report 306 with a pen-type device coupled to user's 301 client computer. This circle appears in real-time on users' 302 and 303 computer screens in accordance with one embodiment of the present invention. Spaces for pen-enabled entries 346, 383, and 393, such as handwriting recognition windows, may be located on users 301, 302, and 303 drop-down screens 340, 380, and 390. This feature permits instant messaging collaboration to be conducted using tablet personal computers where the main data entry device is not a keyboard but, a pen-type device.


Referring now to FIG. 4, there is shown a flow chart illustrating the steps of an instant messaging process according to one embodiment of the present invention. An event engine receives data in the form of a graphical report from an ADC (block 401). The event engine determines that the data needs to be transmitted instantaneously to a user via the message center (block 402). The presence component of the message center determines that the user is logged on to the Microsoft instant messaging server and the proprietary server (block 403). The message center determines that the optimum path for the data is first through the proprietary server and second through the Microsoft instant messaging server (block 404). The user manager in the message center resolves the user's e-mail address (block 405). The data is streamed to the user in the form of an instant message through the proprietary server via the instant messaging protocol (block 406). The user successfully receives the data in real-time from the proprietary server (block 407).



FIG. 5 is a flow chart illustrating the steps of an instant messaging collaboration process according to one embodiment of the present invention. A first user receives an instant message including an active report from the message center via the proprietary server (block 501). A chat window appears on the first user's client computer screen (block 502). The first user selects the chat window. Active data in the form of a sales report instantaneously downloads to the first user's computer screen (block 503).


In this example, the first user decides to share the sales report with a second and third user, and thus selects the viewer feature on the user's computer screen (block 504). A drop-down menu is displayed on the first user's computer screen (block 505). The first user utilizes a keypad to type in a message in the conversation window of the drop-down menu and sends this message as well as the sales report to the second and third users through the proprietary server using the instant messaging protocol (block 506).


Continuing with this example, the second and third users receive the exact data that is displayed on the first user's computer screen (block 507). The first user annotates the sales data by using a pen-type device to circle a portion of the data (block 508). This change in the data is instantaneously streamed in real-time to the second and third users (block 509) who are involved in an instant messaging collaboration via the proprietary server with the first user. The second and third users use drop-down menus on their respective computer screens to communicate with the users involved in the collaboration (block 510). The second and third users make changes to the active data report, pen-enabled or otherwise (block 511). These changes are streamed to the users involved in the instant messaging collaboration (block 512).


A flow chart illustrating one example operation according to one embodiment of the present invention is shown in FIG. 6. A proprietary server receives from the message center multiple instant messages to be received by hundreds of recipient users (block 601). The proprietary server detects the presence of the recipient users who are logged on to the proprietary server (block 602). According to an algorithm contained within the proprietary server, the proprietary server farms out some of the instant messages to second, third, fourth, etc. back-up servers (block 603). The back-up servers transmit the instant messages to recipient users via a message component in the back-up servers (block 605).



FIG. 7 is a flow chart illustrating the steps of a peer-to-peer instant messaging collaboration process according to one embodiment of the present invention. A proprietary server receives an instant message from a first user for a second user (block 701). Since the IP address that the proprietary server has for the first user may be different than the IP address that a peer of the first user would use (because of Network Address Translation (NAT)), the first user also sends the proprietary server the IP address of his client computer along with the instant message (block 702). The proprietary server sends the second user both IP addresses of the first user (block 703). According to an algorithm contained within the client computer of the second user, the client computer determines an optimum path for instant messaging collaboration between the first user and the second user (block 704). If the second user determines the optimum path is through direct peer-to-peer collaboration (block 705), the second user sends the first user his IP address (block 706). The second user then connects to the first user directly via the IP address using the TCP/IP connection, completely bypassing the proprietary server (block 707). The users communicate directly, engaging in direct peer-to-peer instant messaging collaboration (block 708) via the TCP/IP connection. Alternatively, if the second user determines that he is unable to directly connect to the first user (block 709), the second user sends the IP address of his client computer to the proprietary server (block 710). The second user's IP address is passed to the first user via the proprietary server (block 711). According to an algorithm contained within the client computer of the first user, an optimum path for instant messaging collaboration is determined (block 712). If the optimum path is a direct connection, the first user and the second user connect directly via the IP address using the TCP/IP connection (block 713).


Referring now to FIG. 8 there is shown a computer system 800 according to one embodiment of the present invention. The computer system 800 includes a processor 802 that executes a program that includes instructions that cause the algorithm to perform the steps of the invention. The processor 802 is coupled through a bus 801 to a random access memory (RAM) 803, a read only memory (ROM) 804, and a mass storage device 805. The ROM 804 may store the program to execute the steps of the invention. The RAM 803 may be used as an interim storage space for storing an instant message before it is transmitted to a user, or, for example, for storing an instant message before it is downloaded by a user, for example. Mass storage device 805 could be a disk or tape drive for storing data and instructions.


A display device 806 for providing visual output is also coupled to bus 801 for communicating information and command selections to processor 802. Keyboard 807 is coupled to bus 801 for communicating information and command selections to processor 802. Another type of input device is cursor control unit 808, which may be a device such as a mouse or trackball, for communicating direction commands that control cursor movement on display 809.


For example, the cursor control unit 808 may be used to click on a box that will display the instant messages and/or active data transmitted to the computer system 800. Yet another type of input device is a pen-type device 810, for making pen-enabled annotations to a document or for entering messages in handwriting recognition windows (not shown in this view) on drop-down menus on the display 809.


Processor 802 is shown coupled through bus 801 to an input/output (I/O) interface 811, which can be used to control and transfer data to electronic devices connected to computer 800, such as other computers, tape records, and the like.


Network interface device 812 is coupled to bus 801 and provides a physical and logical connection between computer system 800 and network medium, such as the Internet. Depending on the network environment in which computer 800 is used, this connection is typically to a server computer, but it can also be to a network router or to another client computer. Note that the architecture of FIG. 8 is provided only for purposes of illustration, and that a client computer is used in conjunction with the present invention is not limited to this specific architecture.


In the foregoing, a system and method for instant messaging collaboration has been described. Although the present invention has been described with reference to specific exemplary embodiments, it should be understood that numerous changes in the disclosed embodiments can be made in accordance with the disclosure herein without departing from the spirit and scope of the invention. The preceding description, therefore, is not meant to limit the scope of the invention. Rather, the scope of the invention is to be determined only by the appended claims and their equivalents.

Claims
  • 1. A method for conducting message transmission in a system that comprises an event engine coupled to an enterprise computing runtime environment and to a message center through a network, the method comprising: receiving raw enterprise data from a plurality of enterprise applications that are desired to be monitored;formatting the raw enterprise data received from the plurality of enterprise applications to create a message;transmitting the message to the event engine;receiving the message at the event engine over the network, the message containing data synchronized in real-time to data in the enterprise computing runtime environment, and the message generated according to a change in the data in the enterprise computing runtime environment;determining with the event engine whether the data is to be transmitted instantly to at least one user coupled to the message center via the network;determining with at least one server coupled to the message center an optimum path for transmitting the data to the at least one user using a set of rules that identifies an order in which a proprietary instant message server, an external instant message server and an email transmission should be tried to contact the at least one user, wherein: the external instant message server is accessed via the internet by the at least one server as a peer; andthe proprietary instant message server is accessed via an in-house connection; andsending a message containing the data to the at least one user through the at least one server coupled to the message center through the network using the determined optimum path.
  • 2. The method of claim 1 further comprising tracking a logon state of the at least one user.
  • 3. The method of claim 1 further comprising: maintaining a list of users that includes the at least one user in the message center that are eligible for communication by instant message transmission; andresolving an e-mail address associated with the one or more users from the list of users.
  • 4. The method of claim 1 wherein the optimum path is provided through a mail server.
  • 5. The method of claim 1 wherein the optimum path is provided through a MicrosoftQY instant messaging server.
  • 6. The method of claim 1 wherein the optimum path is provided through a proprietary server.
  • 7. The method of claim 6 further comprising providing encryption for the message transmission through the proprietary server.
  • 8. The method of claim 6 wherein the proprietary server allows for the farming out of instant message transmission to back-up servers, the back-up servers providing for message transmission to the one or more users.
  • 9. The method of claim 1 further comprising: establishing a direct connection to the at least one user; andsending the message to the at least one user via the direction connection.
  • 10. The method of claim 1, wherein the changes are made utilizing a pen-type device.
  • 11. The method of claim 1 wherein the network is a Transmission Control Protocol/Internet Protocol (TCP/IP) network.
  • 12. The method of claim 1 wherein the network includes the Internet.
  • 13. The method of claim 1, wherein determining with the least one server coupled to the message center the optimum path for transmitting the data to the at least one user is further based on a presence of the at least one user.
  • 14. A system comprising: a network;an enterprise link engine, configured to: receive raw enterprise data from a plurality of enterprise applications that are desired to be monitored;format the raw enterprise data received from the plurality of enterprise applications to create a message; andtransmit the message to the event engine;an event engine coupled with the network, the event engine configured to: receive the message over the network, the message containing data synchronized in real-time to data in an enterprise computing runtime environment, and the message generated according to a change in the data in the enterprise computing runtime environment, anddetermine whether the data is to be transmitted instantly to at least one user coupled to the message center via the network; andat least one server of a message center, coupled with the network, configured to: determine an optimum path for transmitting the data to the at least one user using a set of rules that identifies an order in which a proprietary instant message server, an external instant message server and an email transmission should be tried to contact the at least one user, wherein: the external instant message server is accessed via the internet by the at least one server as a peer; andthe proprietary instant message server is accessed via an in-house connection; andsend a message containing the data to the at least one user through the at least one server coupled to the message center through the network using the determined optimum path.
  • 15. A machine-readable memory having stored thereon instructions which, when executed by a processor, cause the processor to: receive raw enterprise data from a plurality of enterprise applications that are desired to be monitored;format the raw enterprise data received from the plurality of enterprise applications, wherein the formatted raw enterprise data is synchronized in real-time to data in an enterprise computing runtime environment, and the data indicates a change in data of the enterprise computing runtime environment;determine whether the data is to be transmitted instantly to at least one user;determine an optimum path for transmitting the data to the at least one user using a set of rules that identifies an order in which a proprietary instant message server, an external instant message server and an email transmission should be tried to contact the at least one user, wherein: the external instant message server is accessed via the internet by the at least one server as a peer; andthe proprietary instant message server is accessed via an in-house connection; andsend a message containing the data to the at least one user using the determined optimum path.
CROSS-REFERENCES TO RELATED APPLICATIONS

The present application is a divisional of, and claims priority to, U.S. patent application Ser. No. 10/289,162, filed Nov. 5, 2002, entitled “Apparatus and Method For Instant Messaging Collaboration,” which claims benefit of U.S. Provisional Application No. 60/410,989, filed Sep. 16, 2002, entitled “Business Intelligence System,” all of which are incorporated by reference in their entirety for all purposes.

US Referenced Citations (358)
Number Name Date Kind
4403286 Fry et al. Sep 1983 A
5010478 Deran Apr 1991 A
5033009 Dubnoff Jul 1991 A
5283894 Deran Feb 1994 A
5289372 Guthrie et al. Feb 1994 A
5510980 Peters Apr 1996 A
5544329 Engel et al. Aug 1996 A
5553215 Kaethler Sep 1996 A
5592608 Weber et al. Jan 1997 A
5613131 Moss et al. Mar 1997 A
5615362 Jensen et al. Mar 1997 A
5654726 Mima et al. Aug 1997 A
5717895 Leedom et al. Feb 1998 A
5721847 Johnson Feb 1998 A
5754774 Bittinger et al. May 1998 A
5758337 Hammond May 1998 A
5765164 Prasad et al. Jun 1998 A
5778372 Cordell et al. Jul 1998 A
5781911 Young et al. Jul 1998 A
5784275 Sojoodi et al. Jul 1998 A
5787409 Seiffert et al. Jul 1998 A
5809267 Moran et al. Sep 1998 A
5812840 Schwartz Sep 1998 A
5831609 London et al. Nov 1998 A
5831615 Drews et al. Nov 1998 A
5835721 Donahue et al. Nov 1998 A
5857201 Wright, Jr. et al. Jan 1999 A
5862325 Reed et al. Jan 1999 A
5864669 Osterman et al. Jan 1999 A
5881239 Desgrousilliers Mar 1999 A
5890174 Khanna et al. Mar 1999 A
5893126 Drews et al. Apr 1999 A
5893150 Hagersten et al. Apr 1999 A
5898434 Small et al. Apr 1999 A
5918009 Gehani et al. Jun 1999 A
5922044 Banthia Jul 1999 A
5926177 Hatanaka et al. Jul 1999 A
5928327 Wang et al. Jul 1999 A
5930794 Linenbach et al. Jul 1999 A
5943620 Boltz et al. Aug 1999 A
5974236 Sherman Oct 1999 A
6023694 Kouchi et al. Feb 2000 A
6025844 Parsons Feb 2000 A
6031978 Cotner et al. Feb 2000 A
6035324 Chang Mar 2000 A
6038558 Powers et al. Mar 2000 A
6055548 Comer et al. Apr 2000 A
6070197 Cobb et al. May 2000 A
6073242 Hardy et al. Jun 2000 A
6075530 Lucas et al. Jun 2000 A
6088481 Okamoto et al. Jul 2000 A
6092102 Wagner Jul 2000 A
6094681 Shaffer et al. Jul 2000 A
6112236 Dollin et al. Aug 2000 A
6125177 Whittaker Sep 2000 A
6141659 Barker et al. Oct 2000 A
6170019 Dresel et al. Jan 2001 B1
6175859 Mohler Jan 2001 B1
6182116 Namma et al. Jan 2001 B1
6185582 Zellweger et al. Feb 2001 B1
6189069 Parkes et al. Feb 2001 B1
6201539 Miller et al. Mar 2001 B1
6204846 Little et al. Mar 2001 B1
6205474 Hurley Mar 2001 B1
6208990 Suresh et al. Mar 2001 B1
6219042 Anderson et al. Apr 2001 B1
6226750 Trieger May 2001 B1
6233578 Machihara et al. May 2001 B1
6239797 Hills et al. May 2001 B1
6240444 Fin et al. May 2001 B1
6243698 Powers et al. Jun 2001 B1
6243713 Nelson et al. Jun 2001 B1
6256649 Mackinlay et al. Jul 2001 B1
6256676 Taylor et al. Jul 2001 B1
6260114 Schug Jul 2001 B1
6269393 Yost et al. Jul 2001 B1
6292803 Richardson et al. Sep 2001 B1
6301601 Helland et al. Oct 2001 B1
6301609 Aravamudan et al. Oct 2001 B1
6304546 Natarajan et al. Oct 2001 B1
6314463 Abbott et al. Nov 2001 B1
6317737 Gorelik et al. Nov 2001 B1
6336135 Niblett et al. Jan 2002 B1
6341312 French et al. Jan 2002 B1
6348933 Walls et al. Feb 2002 B1
6363363 Haller et al. Mar 2002 B1
6393421 Paglin May 2002 B1
6397217 Melbin May 2002 B1
6430576 Gates et al. Aug 2002 B1
6430604 Ogle et al. Aug 2002 B1
6449344 Goldfinger et al. Sep 2002 B1
6467052 Kaler et al. Oct 2002 B1
6480847 Linenbach et al. Nov 2002 B1
6501956 Weeren et al. Dec 2002 B1
6510457 Ayukawa et al. Jan 2003 B1
6513047 Talley Jan 2003 B1
6519568 Harvey et al. Feb 2003 B1
6519601 Bosch Feb 2003 B1
6523046 Liu et al. Feb 2003 B2
6532465 Hartley et al. Mar 2003 B2
6535227 Fox et al. Mar 2003 B1
6542165 Ohkado Apr 2003 B1
6546425 Hanson et al. Apr 2003 B1
6567796 Yost et al. May 2003 B1
6567814 Bankier et al. May 2003 B1
6574618 Eylon et al. Jun 2003 B2
6574639 Carey et al. Jun 2003 B2
6591277 Spence et al. Jul 2003 B2
6591278 Ernst Jul 2003 B1
6598167 Devine et al. Jul 2003 B2
6606596 Zirngibl et al. Aug 2003 B1
6640234 Coffen et al. Oct 2003 B1
6647272 Asikainen Nov 2003 B1
6651055 Kilmer et al. Nov 2003 B1
6651142 Gorelik et al. Nov 2003 B1
6654790 Ogle et al. Nov 2003 B2
6664978 Kekic et al. Dec 2003 B1
6668173 Greene Dec 2003 B2
6678719 Stimmel Jan 2004 B1
6687360 Kung et al. Feb 2004 B2
6701485 Igra et al. Mar 2004 B1
6714982 McDonough et al. Mar 2004 B1
6731314 Cheng et al. May 2004 B1
6745193 Horvitz et al. Jun 2004 B1
6766418 Alexander et al. Jul 2004 B1
6775267 Kung et al. Aug 2004 B1
6775298 Aggarwal Aug 2004 B1
6782424 Yodaiken Aug 2004 B2
6789083 Thelen Sep 2004 B2
6789090 Miyake et al. Sep 2004 B1
6792456 Hellerstein et al. Sep 2004 B1
6807562 Pennock et al. Oct 2004 B1
6807583 Hrischuk et al. Oct 2004 B2
6832341 Vijayan Dec 2004 B1
6839737 Friskel Jan 2005 B1
6870830 Schuster et al. Mar 2005 B1
6898625 Henry et al. May 2005 B2
6901592 Mar et al. May 2005 B2
6907422 Predovic Jun 2005 B1
6915457 Miller Jul 2005 B1
6920607 Ali et al. Jul 2005 B1
6937713 Kung et al. Aug 2005 B1
6938221 Nguyen Aug 2005 B2
6941345 Kapil et al. Sep 2005 B1
6941351 Vetrivelkumaran et al. Sep 2005 B2
6954757 Zargham et al. Oct 2005 B2
6954902 Noma et al. Oct 2005 B2
6996768 Elo et al. Feb 2006 B1
7003568 Chikada et al. Feb 2006 B1
7003731 Rhoads et al. Feb 2006 B1
7024474 Clubb et al. Apr 2006 B2
7028092 MeLampy et al. Apr 2006 B2
7031314 Craig et al. Apr 2006 B2
7032006 Zhuk Apr 2006 B2
7035923 Yoakum et al. Apr 2006 B1
7058953 Willard et al. Jun 2006 B2
7089311 Devine et al. Aug 2006 B2
7096432 Huapaya et al. Aug 2006 B2
7113934 Levesque et al. Sep 2006 B2
7113964 Bequet et al. Sep 2006 B1
7120139 Kung et al. Oct 2006 B1
7139797 Yoakum et al. Nov 2006 B1
7171473 Eftis et al. Jan 2007 B1
7174339 Wucherer et al. Feb 2007 B1
7177909 Stark et al. Feb 2007 B2
7188160 Champagne et al. Mar 2007 B2
7197565 Abdelaziz et al. Mar 2007 B2
7221658 Armstrong et al. May 2007 B1
7222294 Coffen et al. May 2007 B2
7233979 Dickerman et al. Jun 2007 B2
7243124 Gardner et al. Jul 2007 B1
7243127 Tabayoyon, Jr. et al. Jul 2007 B2
7243130 Horvitz et al. Jul 2007 B2
7269625 Willhide et al. Sep 2007 B1
7269627 Knauerhase Sep 2007 B2
7272660 Powers et al. Sep 2007 B1
7275215 Werndorfer et al. Sep 2007 B2
7283805 Agrawal Oct 2007 B2
7284034 Matsa et al. Oct 2007 B2
7296217 Earnshaw et al. Nov 2007 B1
7299257 Boyer et al. Nov 2007 B2
7310532 Knauerhase et al. Dec 2007 B2
7313593 Pulito et al. Dec 2007 B1
7313617 Malik et al. Dec 2007 B2
7353455 Malik Apr 2008 B2
7359938 Davies et al. Apr 2008 B1
7373428 Armstrong et al. May 2008 B1
7379963 Khare et al. May 2008 B1
7386588 Mousseau et al. Jun 2008 B2
7389351 Horvitz Jun 2008 B2
7392478 Aureglia et al. Jun 2008 B2
7398327 Lee Jul 2008 B2
7401158 Beauchamp et al. Jul 2008 B2
7406569 van de Waerdt Jul 2008 B2
7412481 Nicholls et al. Aug 2008 B2
7412486 Petrack et al. Aug 2008 B1
7412518 Duigou et al. Aug 2008 B1
7412645 Kotler et al. Aug 2008 B2
7415502 Vishik et al. Aug 2008 B2
7426059 Broda et al. Sep 2008 B2
7433922 Engstrom Oct 2008 B2
7436939 Packingham Oct 2008 B1
7436947 Ordille et al. Oct 2008 B2
7454423 Powers et al. Nov 2008 B2
7461378 Beyda Dec 2008 B2
7464139 Malik Dec 2008 B2
7487437 Aureglia et al. Feb 2009 B2
7552204 Bobde et al. Jun 2009 B2
7554938 Smith et al. Jun 2009 B1
7627666 DeGiulio et al. Dec 2009 B1
7631047 Adamczyk Dec 2009 B1
7657616 Poling et al. Feb 2010 B1
7664817 Watanabe et al. Feb 2010 B2
7668915 Couts et al. Feb 2010 B2
7668917 Netsch et al. Feb 2010 B2
7725523 Bolnick et al. May 2010 B2
7814208 Stephenson et al. Oct 2010 B2
7899879 Broda Mar 2011 B2
7904823 Beauchamp et al. Mar 2011 B2
7912899 Beauchamp et al. Mar 2011 B2
7925771 Ping et al. Apr 2011 B1
7936815 Dankworth et al. May 2011 B2
7941542 Broda et al. May 2011 B2
7945846 Beauchamp et al. May 2011 B2
8001185 Nicholls et al. Aug 2011 B2
8165993 Broda et al. Apr 2012 B2
8255454 Broda Aug 2012 B2
20010034733 Prompt et al. Oct 2001 A1
20010039616 Kumagai et al. Nov 2001 A1
20010040945 Fujino et al. Nov 2001 A1
20010049683 Yoshikawa Dec 2001 A1
20010049721 Blair et al. Dec 2001 A1
20020013853 Baber et al. Jan 2002 A1
20020023143 Stephenson et al. Feb 2002 A1
20020032602 Lanzillo et al. Mar 2002 A1
20020038217 Young Mar 2002 A1
20020038362 Bhatia et al. Mar 2002 A1
20020056000 Coussement May 2002 A1
20020057657 La Porta et al. May 2002 A1
20020057678 Jiang et al. May 2002 A1
20020059425 Belfiore et al. May 2002 A1
20020059472 Wollrath et al. May 2002 A1
20020065894 Dalal et al. May 2002 A1
20020073236 Helgeson et al. Jun 2002 A1
20020075303 Thompson et al. Jun 2002 A1
20020078208 Crump et al. Jun 2002 A1
20020083067 Tamayo et al. Jun 2002 A1
20020083072 Steuart Jun 2002 A1
20020083118 Sim Jun 2002 A1
20020095465 Banks et al. Jul 2002 A1
20020103909 Devine et al. Aug 2002 A1
20020107864 Battas et al. Aug 2002 A1
20020107905 Roe et al. Aug 2002 A1
20020107957 Zargham et al. Aug 2002 A1
20020116362 Li et al. Aug 2002 A1
20020116461 Diacakis et al. Aug 2002 A1
20020120697 Generous et al. Aug 2002 A1
20020120765 Boehmke Aug 2002 A1
20020138640 Raz et al. Sep 2002 A1
20020143710 Liu Oct 2002 A1
20020147777 Hackbarth et al. Oct 2002 A1
20020152402 Tov et al. Oct 2002 A1
20020165849 Singh et al. Nov 2002 A1
20020178035 Lajouanie Nov 2002 A1
20020178353 Graham Nov 2002 A1
20020184187 Bakalash et al. Dec 2002 A1
20020194393 Hrischuk et al. Dec 2002 A1
20020198985 Fraenkel et al. Dec 2002 A1
20020199203 Duffy et al. Dec 2002 A1
20030004742 Palmer et al. Jan 2003 A1
20030009603 Ruths et al. Jan 2003 A1
20030014513 Ruths et al. Jan 2003 A1
20030018719 Ruths et al. Jan 2003 A1
20030023691 Knauerhase Jan 2003 A1
20030028597 Salmi et al. Feb 2003 A1
20030028682 Sutherland Feb 2003 A1
20030028683 Yorke et al. Feb 2003 A1
20030033329 Bergman et al. Feb 2003 A1
20030037103 Salmi et al. Feb 2003 A1
20030037113 Petrovykh Feb 2003 A1
20030041108 Henrick et al. Feb 2003 A1
20030071850 Geidi Apr 2003 A1
20030074393 Peart Apr 2003 A1
20030088633 Chiu et al. May 2003 A1
20030093585 Allan May 2003 A1
20030101201 Saylor et al. May 2003 A1
20030101223 Pace et al. May 2003 A1
20030105837 Kamen et al. Jun 2003 A1
20030110249 Buus et al. Jun 2003 A1
20030112948 Brown et al. Jun 2003 A1
20030115186 Wilkinson et al. Jun 2003 A1
20030120805 Couts et al. Jun 2003 A1
20030126136 Omoigui Jul 2003 A1
20030131069 Lucovsky et al. Jul 2003 A1
20030131142 Horvitz et al. Jul 2003 A1
20030154177 Holland et al. Aug 2003 A1
20030158873 Sawdon et al. Aug 2003 A1
20030182428 Li et al. Sep 2003 A1
20030182461 Stelting et al. Sep 2003 A1
20030187971 Uliano et al. Oct 2003 A1
20030204741 Schoen et al. Oct 2003 A1
20030208543 Enete et al. Nov 2003 A1
20030217081 White et al. Nov 2003 A1
20030217142 Bobde et al. Nov 2003 A1
20030218631 Malik Nov 2003 A1
20030220860 Heytens et al. Nov 2003 A1
20030229722 Beyda Dec 2003 A1
20030235279 Richomme Dec 2003 A1
20040002360 Chun et al. Jan 2004 A1
20040002958 Seshadri et al. Jan 2004 A1
20040003090 Deeds Jan 2004 A1
20040010543 Grobman Jan 2004 A1
20040019695 Fellenstein et al. Jan 2004 A1
20040024822 Werndorfer et al. Feb 2004 A1
20040030762 Silverthorne et al. Feb 2004 A1
20040031054 Dankworth et al. Feb 2004 A1
20040039776 Ballard Feb 2004 A1
20040039800 Black et al. Feb 2004 A1
20040049477 Powers et al. Mar 2004 A1
20040054802 Beauchamp et al. Mar 2004 A1
20040060001 Coffen et al. Mar 2004 A1
20040073596 Kloninger et al. Apr 2004 A1
20040080504 Salesky et al. Apr 2004 A1
20040087300 Lewis May 2004 A1
20040146044 Herkerdorf et al. Jul 2004 A1
20040152477 Wu et al. Aug 2004 A1
20040254998 Horvitz Dec 2004 A1
20050004984 Simpson Jan 2005 A1
20050055329 Bakalash et al. Mar 2005 A1
20050086211 Mayer Apr 2005 A1
20050102294 Coldewey May 2005 A1
20050102611 Chen May 2005 A1
20050114534 Lee May 2005 A1
20050125377 Kotler Jun 2005 A1
20050144114 Ruggieri et al. Jun 2005 A1
20050187982 Sato Aug 2005 A1
20060089939 Broda et al. Apr 2006 A1
20060161540 Schmitz et al. Jul 2006 A1
20060206589 Lentini et al. Sep 2006 A1
20060259626 Stone-Kaplan et al. Nov 2006 A1
20070192495 Marais Aug 2007 A1
20080004904 Tran Jan 2008 A1
20080043256 Broda et al. Feb 2008 A1
20080046505 Netsch et al. Feb 2008 A1
20080046506 Broda Feb 2008 A1
20080046510 Beauchamp et al. Feb 2008 A1
20080046536 Broda Feb 2008 A1
20080046556 Nicholls et al. Feb 2008 A1
20080046568 Broda et al. Feb 2008 A1
20080046803 Beauchamp et al. Feb 2008 A1
20080046837 Beauchamp et al. Feb 2008 A1
20080077656 Broda Mar 2008 A1
20080148289 Nicholls et al. Jun 2008 A1
20080209490 Dankworth et al. Aug 2008 A1
20090031205 Aureglia et al. Jan 2009 A1
20090037803 Bauchot Feb 2009 A1
20110167169 Ping et al. Jul 2011 A1
20120060078 Beauchamp et al. Mar 2012 A1
Foreign Referenced Citations (1)
Number Date Country
WO 0163466 Aug 2001 WO
Non-Patent Literature Citations (186)
Entry
Long, Allan Christian et al., “PDA and Gesture Use in Practice: Insights for Designers of Pen-based User Interfaces,” University of California at Berkeley, 1997.
“Middleware—The Essential Component for Enterprise Client/Server Applications,” International Systems Group, Inc., Feb. 1997.
Pioch, Nicholas, “A Short IRC Primer,” Jan. 1, 1997.
Stephanidis, Constantine et al., “Design Representations and Development Support for User Interface Adaptation,” Institute of Computer Science Foundation for Research and Technology, 1995.
“An Introduction to Messaging and Queuing,” IBM Corp., Jun. 1995.
“Relational OLAP: An Enterprise-Wide Data Delivery Architecture,” MicroStrategy, Inc., 1994.
“Guidelines for Implementing and Using the NBS Data,” Federal Information Processing Standards, Publication 74, Apr. 1, 1981.
“ILOG Views 2D Graphics: The C++ Library for Interactive 2D Graphics,” ILOG.
“Sametime 3 Features and Benefits,” IBM.
“Scripting Support for Web Page Printing Sample,” Microsoft Corp., 2004.
Oikarinen, Jarkko et al., “Internet Relay Chat Protocol,” Network Working Group, May 1993.
“Report of Novelty Search,” PATENTEC, dated Oct. 16, 2003.
Using Microsoft Excel 97 Manual. Bestseller Edition. Que Corporation, 1997.
Microsoft Excel Print Screen Images (figs. 1-6).
“Introduction to Dynamic HTML,” http://msdn2.microsoft.com/en-us/library/ms533044(d=printer).aspx, downloaded Jul. 17, 2007.
Excel 2000, publ. by Microsoft in 1999, screen captures pp. 1-12.
Extensible Markup Language (XML) 1.0 (Second Edition), Oct. 6, 2000, printed from w3.org.
Ünal, A., “Electronic Commerce and Multi-enterprise Supply/Value/Business Chains,” Information Sciences, Aug. 2000, pp. 63-68, vol. 127, Issues 1-2, NH Elsevier.
Karn, P. et al., “The ESP Triple DES Transform,” Network Working Group, Request for Comments: 1851, Category: Experimental, Sep. 1995, pp. 1-11.
Goldsmith, D. et al., “UTF-7: A Mail-Safe Transformation Format of Unicode,” Network Working Group, Request for Comments: 2152, Obsoletes: RFC 1642, Category: Informational, May 1997, pp. 1-15.
Notice of Allowance for U.S. Appl. No. 12/035,376, mailed Jan. 25, 2011, 8 pages.
Notice of Allowance for U.S. Appl. No. 10/391,128, mailed Dec. 30, 2010, 3 pages.
Notice of Allowance for U.S. Appl. No. 10/390,978, mailed Jan. 4, 2011, 4 pages.
Office Action for U.S. Appl. No. 10/289,231: Notice of Allowance mailed Nov. 5, 2010, 9 pages.
Office Action for U.S. Appl. No. 11/763,134: Final Office Action mailed Nov. 24, 2010, 25 pages.
Office Action for U.S. Appl. No. 11/299,441: Office Action mailed Oct. 26, 2010, 31 pages.
Office Action for U.S. Appl. No. 10/391,073: Notice of Allowance mailed Oct. 27, 2010, 10 pages.
Notice of Allowance for U.S. Appl. No. 12/035,376 mailed Mar. 18, 2011, 6 pages.
Notice of Allowance for U.S. Appl. No. 10/391,544 mailed Oct. 28, 2010, 5 pages.
Final Office Action for U.S. Appl. No. 11/299,441 mailed Mar. 7, 2011, 30 pages.
Advisory Action for U.S. Appl. No. 11/299,441 mailed May 18, 2011, 3 pages.
U.S. Appl. No. 11/299,441, filed Dec. 12, 2005, Advisory Action mailed Sep. 2, 2010, 3 pages.
U.S. Appl. No. 11/299,441, filed Dec. 12, 2005, Office Action mailed Aug. 9, 2011, 35 pages.
“Report of Novelty Search,” PATENTEC, dated Apr. 4, 2004.
“Steel-Belted Radius/Enterprise Edition,” Funk Software, Inc., 2004.
“Jabber: About: Technology Overview,” Jabber Software Foundation, Dec. 12, 2003.
Smith, Jan, “Browser Basics: Printing,” http://www.jegsworks.com/Lessons/web/basics/printing,htm, Feb. 10, 2003.
Perfetti, Christine et al., “Macromedia Flash: A New Hope for Web Applications.” User Interface Engineering, 2002.
Weiss, Aaron, “The Document Object Model Dissected,” Jupitermedia Corporation, 2002.
“Protecting the Enterprise from Rogue Protocols,” Akonix Systems, Inc., 2002.
“Informatica Applications: Leverage Your Enterprise Information for Better Decision Making,” Informatica Corporation, 2002.
“Informatica Applications: Informatica Customer Relationship Analytics,” Informatica Corporation, 2002.
“Brocade Rapidly Implements Customer and Sales Analytics,” Informatica Corporation, 2002.
Howlett, Dennis et al., “Delivering Value Back to the Business: A Guide to Successful Portal Selection and Implementation.” TIBCO Software, 2002.
“Sametime for iSeries 2.5,” Lotus Software, IBM Corporation, 2002.
“Business Intelligence Software: Engendering a Quiet Revolution in the Business Place,” MicroStrategy, Dec. 20, 2002.
Woods, Bob, “CypherGuard Secures MSN, Windows IM,” JupiterMedia Corporation, Oct. 3, 2002.
“Business Transformation Through End-to-End Integration,” IBM, Aug. 2002.
“The Sagent Analytic Advantage,” Sagent Technology Inc., May 2002.
Watson, Hugh J., “Recent Developments in Data Warehousing,” Communications of the Association for Information Systems, pp. 1-25, vol. 8, 2001.
“The Business Intelligence Industry's Leading Products and Services,” Business Objects, 2001.
Brewster, Stephen, “Windowing Systems,” Glasgow Interactive Systems Group, 2001.
“Express Communicator,” White Paper, ACD Systems Ltd., May 2001.
“Business Rules Powering Business and E-Business,” White Paper, ILOG, May 2001.
“A Data Warehouse Tutorial,” Paretoanalysts, Dec. 27, 2001.
“The Sagent Performance Story,” Sagent Technology, Inc., Oct. 2001.
“Achieving Global Business Visibility With the webMethods Integration Platform,” webMethods, Inc., Sep. 2001.
Bernstein, Philip A. et al., “Data Warehouse Scenarios for Model Management,” Microsoft Corporation, 2000.
“Implementing the RosettaNet eBusiness Standard: Automating High-tech Supply Chains Using Business Ware for RosettaNet,” Vitria Technology Inc., 2000.
Wang, Wenjie et al., “Instant Messaging Insight,” Computer Science Department, New York Unuversity, Nov. 22, 2000.
“X Window System: Getting Started,” Stanford University, Oct. 26, 2000.
Day, Mark et al., “A Model for Presences and Instant Messaging,” Network Working Group, Request for Comments 2778, The Internet Society, Feb. 2000.
“The Basics of the Browser,” Santa Clara County Office of Education Internet Institutue (SCCOE), 1999.
Corke, Randy, “Keeping Data Warehouse Current: Automating Incremental Updates with Data Movement,” DM Direct, May 1999.
Moran, Brian et al., “Getting to Know OLAP and MDX,” Windows IT Pro, Instant Doc #5112, Apr. 1999.
Handley, Mark et al., “SIP: Session Initiation Protocol,” Network Working Group, Request for Comments 2543, The Internet Society, Mar. 1999.
“MQSeries Link for R/3,” IBM, 1998.
Tsai, Michael, “The Personal Computing Paradigm,” ATPM Inc., 1998.
Schoedl, Arno, “Issues for Implementing User Interface Software,” Georgia Institute of Technology, Sep. 26, 1998.
“Print Without Pop Up Window Using Javascript,” Experts Exchange, posted Nov. 3, 2002.
“Adding Printing Capabilities,” Interactivetools.com, posted Oct. 19, 2002.
Loo, Thomas et al., “How Can I Print a Document That is Not Currently Loaded Into a Frame or Window?” Synop Software, Apr. 24, 2002.
Howlett, Jake, “Further Control of Printing,” Codestore, Jan. 3, 2002.
Cimino, Steve, “How Can I Print a Web Page in ASP?”, Internet.com Corp., posted Jul. 27, 2001.
“JavaScript: MSIE 5 Unable to Print Child Window.” Experts Exhange, posted Jun. 7, 2000.
Nonsenko, Andrew, “Scripting Support for Web Page Printing,” Microsoft Corporation, Mar. 28, 2000.
Movva, Ramu et al., “MSM Messenger Service 1.0 Protocol,” Internet Draft, Aug. 1999.
Richardson, Tristan et al., “The RFB Protocol,” ORL Cambridge, Jul. 16, 1998.
Gwinn, Allen, “Simple Network Paging Protocol—Version 3—Two-Way Enhanced,” Network Working Group, Oct. 1995.
Dabke, P, “Enterprise Integration Via Corba-Based Information Agents,” IEEE Internet Computing, Sep./Oct. 1999, pp. 49-57, vol. 3, Issue 5.
Habraken, J. “Ten Minute Guide to Microsoft Excel 2002,” Sep. 27, 2001, Que, Section, “Lesson 6, Performing Calculations with Functions.”
Roman, S. “Writing Excel Macros with VBA: Second Edition,” Jun. 25, 2002, Chapter 6: Functions and Subroutines.
Anton, Jesse et al., “Web Catching for Database Applications with Oracle Cache”, Jun. 4-6, 2002, pp. 594-599.
Office Action for U.S. Appl. No. 10/237,559, dated Feb. 1, 2008; 12 pages total.
Final Office Action for U.S. Appl. No. 10/289,155, dated Jan. 29, 2008; 14 pages total.
Office Action for U.S. Appl. No. 10/289,155, dated Jul. 28, 2008, 12 pages total.
Office Action for U.S. Appl. No. 10/289,162, dated Nov. 30, 2007; 12 pages total.
Office Action of U.S. Appl. No. 10/289,231, dated Nov. 6, 2008, 10 pages total.
Office Action of U.S. Appl. No. 10/289,231 dated Apr. 30, 2009, 10 pages total.
Office Action for U.S. Appl. No. 10/390,978, dated Mar. 5, 2009, 19 pages total.
Office Action for U.S. Appl. No. 10/390,978, dated Sep. 4, 2009, 24 pages total.
Office Action for U.S. Appl. No. 10/391,073, dated Jan. 4, 2008; 8 pages total.
Office Action for U.S. Appl. No. 10/391,073, dated Sep. 12, 2008, 10 pages total.
Office Action for U.S. Appl. No. 10/391,073, dated Feb. 12, 2009, 8 pages total.
Final Office Action for U.S. Appl. No. 10/391,073, dated Jul. 30, 2009, 9 pages total.
Advisory Action for U.S. Appl. No. 10/391,073, dated Sep. 18, 2009, 3 pages total.
Office Action for U.S. Appl. No. 10/391,128, dated Oct. 6, 2008, 20 pages total.
Final Office Action for U.S. Appl. No. 10/391,128, dated May 13, 2009, 18 pages total.
Office Action for U.S. Appl. No. 10/391,128, dated Oct. 27, 2009, 20 pages total.
Final Office Action for U.S. Appl. No. 10/391,544, dated Sep. 17, 2008, 15 pages total.
Final Office Action for U.S. Appl. No. 10/391,544, dated Aug. 28, 2009, 18 pages total.
Office Action for U.S. Appl. No. 11/299,441, dated Feb. 5, 2008, 19 pages total.
Office Action for U.S. Appl. No. 11/299,441, dated Sep. 11, 2009, 22 pages total.
Office Action for U.S. Appl. No. 10/390,978, dated Sep. 1, 2005, 15 pages total.
Final Office Action for U.S. Appl. No. 10/390,978, dated May 18, 2006, 13 pages total.
Office Action for U.S. Appl. No. 10/390,978, dated Feb. 21, 2007, 16 pages total.
Final Office Action for U.S. Appl. No. 10/390,978, dated Jun. 25, 2007, 17 pages total.
Office Action for U.S. Appl. No. 10/390,978, dated Jan. 9, 2008, 16 pages total.
Final Office Action for U.S. Appl. No. 10/390,978, dated Sep. 3, 2008, 17 pages total.
Advisory Action for U.S. Appl. No. 10/390,978, dated Nov. 3, 2008, 3 pages total.
Final Office Action for U.S. Appl. No. 10/390,978, dated Sep. 4, 2009, 24 pages total.
Office Action for U.S. Appl. No. 10/390,978, dated Dec. 14, 2009, 25 pages total.
Office Action of U.S. Appl. No. 10/289,231, dated Dec. 9, 2005, 17 pages total.
Final Office Action of U.S. Appl. No. 10/289,231, dated Apr. 11, 2006, 15 pages total.
Office Action of U.S. Appl. No. 10/289,231, dated Nov. 30, 2006, 13 pages total.
Final Office Action of U.S. Appl. No. 10/289,231, dated Apr. 16, 2007, 15 pages total.
Office Action of U.S. Appl. No. 10/289,231, dated Apr. 15, 2008, 12 pages total.
Final Office Action of U.S. Appl. No. 10/289,231, dated Dec. 14, 2009, 9 pages total.
Office Action for U.S. Appl. No. 10/289,155, dated May 18, 2006; 11 pages total.
Final Office Action for U.S. Appl. No. 10/289,155, dated Mar. 27, 2007; 12 pages total.
Advisory Action for U.S. Appl. No. 10/289,155, dated May 31, 2007; 3 pages total.
Office Action for U.S. Appl. No. 10/289,155, dated Aug. 6, 2007; 11 pages total.
Advisory Action for U.S. Appl. No. 10/289,155, dated Apr. 14, 2008; 3 pages total.
Final Office Action for U.S. Appl. No. 10/289,155, dated Jan. 6, 2009; 11 pages total.
Notice of Allowance for U.S. Appl. No. 10/289,155, dated Jun. 11, 2009; 9 pages total.
Notice of Allowance for U.S. Appl. No. 10/289,155, dated Sep. 29, 2009; 7 pages total.
Office Action for U.S. Appl. No. 10/391,128, dated Jul. 20, 2007, 9 pages total.
Final Office Action for U.S. Appl. No. 10/391,128, dated Mar. 19, 2008, 12 pages total.
Advisory Action for U.S. Appl. No. 10/391,128, dated Jul. 21, 2008, 3 pages total.
Advisory Action for U.S. Appl. No. 10/391,128, dated Jul. 20, 2009, 3 pages total.
Office Action for U.S. Appl. No. 10/391,544, dated Sep. 8, 2006, 12 pages total.
Advisory Action for U.S. Appl. No. 10/391,544, dated Dec. 3, 2008, 6 pages total.
Office Action for U.S. Appl. No. 10/391,544, dated Feb. 3, 2009, 16 pages total.
Advisory Action for U.S. Appl. No. 10/391,544, dated Dec. 11, 2009, 2 pages total.
Notice of Allowance for U.S. Appl. No. 10/391,544, dated Mar. 25, 2010, 12 pages total.
Office Action for U.S. Appl. No. 10/452,665, dated Dec. 7, 2006, 8 pages total.
Final Office Action for U.S. Appl. No. 10/452,665, dated May 9, 2007, 7 pages total.
Final Office Action for U.S. Appl. No. 11/299,441, dated Oct. 3, 2008, 18 pages total.
Advisory Action for U.S. Appl. No. 11/299,441, dated Dec. 16, 2008, 3 pages total.
Office Action for U.S. Appl. No. 11/299,441, dated Feb. 4, 2009, 19 pages total.
Office Action for U.S. Appl. No. 11/299,441, dated Jan. 5, 2010, 27 pages total.
Office Action for U.S. Appl. No. 10/391,073, dated Feb. 8, 2007; 7 pages total.
Final Office Action for U.S. Appl. No. 10/391,073, dated Jun. 21, 2007; 7 pages total.
Advisory Action for U.S. Appl. No. 10/391,073, dated Oct. 28, 2008; 3 pages total.
Office Action for U.S. Appl. No. 10/391,073, dated Jan. 19, 2010; 9 pages total.
Office Action for U.S. Appl. No. 11/763,134, dated Jun. 3, 2010; 21 pages total.
Office Action for U.S. Appl. No. 10/289,231, dated Apr. 12, 2010, 12 pgs.
Office Action for U.S. Appl. No. 10/390,978, dated Jun. 17, 2010, 28 pgs.
Final Office Action for U.S. Appl. No. 10/391,073, dated Jun. 17, 2010; 9 pgs.
Advisory Action for U.S. Appl. No. 10/391,073, dated Aug. 23, 2010; 2 pgs.
Final Office Action for U.S. Appl. No. 10/391,128, dated Jul. 7, 2010, 25 pages total.
Notice of Allowance for U.S. Appl. No. 10/391,544, dated Aug. 13, 2010, 10 pages total.
Final Office Action for U.S. Appl. No. 11/299,441, dated Jun. 25, 2010, 28 pages total.
Final Office Action for U.S. Appl. No. 10/390,978, dated Jun. 17, 2010, 28 pages total.
Office Action of U.S. Appl. No. 10/289,139 dated Dec. 9, 2005, 14 pages total.
Final Office Action of U.S. Appl. No. 10/289,139 dated Apr. 11, 2006, 16 pages total.
Office Action of U.S. Appl. No. 10/289,139 dated Nov. 30, 2006, 14 pages total.
Notice of Allowance of U.S. Appl. No. 10/289,139 dated May 1, 2007, 6 pages total.
Office Action of U.S. Appl. No. 10/289,142 dated Dec. 20, 2005, 9 pages total.
Final Office Action of U.S. Appl. No. 10/289,142 dated Apr. 24, 2006, 12 pages total.
Office Action of U.S. Appl. No. 10/289,142 dated Dec. 4, 2006, 9 pages total.
Final Office Action of U.S. Appl. No. 10/289,142 dated May 30, 2007, 10 pages total.
Notice of Allowance of U.S. Appl. No. 10/289,142 dated Jan. 4, 2008, 9 pages total.
Notice of Allowance of U.S. Appl. No. 10/289,142 dated May 2, 2008, 5 pages total.
Office Action of U.S. Appl. No. 10/390,945 dated Feb. 9, 2007, 8 pages total.
Final Office Action of U.S. Appl. No. 10/390,945 dated Jul. 5, 2007, 9 pages total.
Notice of Allowance of U.S. Appl. No. 10/390,945 dated Jan. 9, 2008, 7 pages total.
Notice of Allowance of U.S. Appl. No. 10/390,945 dated Jun. 9, 2008, 7 pages total.
Office Action of U.S. Appl. No. 10/289,162 dated Dec. 21, 2005, 12 pages total.
Final Office Action of U.S. Appl. No. 10/289,162 dated Apr. 20, 2007, 8 pages total.
Notice of Allowance of U.S. Appl. No. 10/289,162 dated Nov. 30, 2007, 12 pages total.
Notice of Allowance of U.S. Appl. No. 10/289,162 dated Apr. 16, 2008, 17 pages total.
Office Action of U.S. Appl. No. 10/237,559 dated Jan. 31, 2005, 11 pages total.
Office Action of U.S. Appl. No. 10/237,559 dated Aug. 8, 2005, 11 pages total.
Final Office Action of U.S. Appl. No. 10/237,559 dated Dec. 30, 2005, 10 pages total.
Office Action of U.S. Appl. No. 10/237,559 dated Jan. 11, 2007, 10 pages total.
Final Office Action of U.S. Appl. No. 10/237,559 dated Aug. 15, 2007, 13 pages total.
Advisory Action of U.S. Appl. No. 10/237,559 dated Oct. 25, 2007, 3 pages total.
Office Action of U.S. Appl. No. 10/237,559 dated Feb. 1, 2008, 12 pages total.
Notice of Allowance of U.S. Appl. No. 10/237,559 dated Aug. 21, 2008, 9 pages total.
Office Action of U.S. Appl. No. 12/035,376 dated Sep. 15, 2010, 9 pages total.
U.S. Appl. No. 11/763,134, filed Jun. 14, 2007, Office Action mailed Jun. 21, 2012, 31 pages.
U.S. Appl. No. 10/452,665, filed May 30, 2003, Notice of Allowance mailed May 30, 2012, 8 pages.
U.S. Appl. No. 11/299,441, filed Dec. 12, 2005, Notice of Allowance mailed Dec. 19, 2011, 16 pages.
U.S. Appl. No. 10/452,665, filed May 30, 2003, Notice of Allowance mailed Apr. 10, 2012, 3 pages.
U.S. Appl. No. 10/452,665, filed May 30, 2003, Notice of Allowance mailed Feb. 7, 2012, 5 pages.
Related Publications (1)
Number Date Country
20080155020 A1 Jun 2008 US
Provisional Applications (1)
Number Date Country
60410989 Sep 2002 US
Divisions (1)
Number Date Country
Parent 10289162 Nov 2002 US
Child 12039471 US