A messaging system and associated computer program product. The messaging system includes a plurality of browsers connected through a common server. The server includes a message engine for receiving from a first user browser a request to enter chat mode with a second user browser; then receiving asynchronously from the second user browser a request to download any content from the common server or any other intranet or Internet server; and responding to the request from the second user browser with content modified to instantiate a chat session between the first and second user browsers.

Patent
   8423613
Priority
Feb 12 2004
Filed
Jan 15 2010
Issued
Apr 16 2013
Expiry
Apr 04 2025

TERM.DISCL.
Extension
417 days
Assg.orig
Entity
Large
1
50
EXPIRED
1. A computer system comprising a processor and a computer readable physically tangible storage coupled to the processor, said storage storing program code which upon being executed by the processor performs a method for establishing a chat session between two users in a network system, including a first user desiring to establish a chat session with a second user which does not have a chat application open, said method comprising:
said first user downloading from said server browser executable code for initiating a chat session;
said first user executing said browser executable code to display at a first browser window a chat invitation form including a header field, an instruction field, one or more fields for entering user identifiers, and a message field;
said first user entering to said chat invitation form one or more user identifiers including a user identifier for said second user, and optionally a message to said message field;
receiving at said server from said first user a request to enter chat mode with said second user;
receiving asynchronously at said server from said second user an http request to download content from said server or any other intranet or Intranet server, said second user not currently executing a chat applet instance and being unaware of said request from said first user to enter chat mode;
said server responding to said http request from said second user with an http response including said content modified with a chat user interface to open a second browser window including a header field, a messages field, and a response field, wherein content of said second browser window causes a chat applet instance to download for execution at said second user;
executing said chat applet instance at said second user to instantiate a chat session between said first user and said second user; and
establishing a persistent connection between said second browser and said server to establish a channel for message exchange between said first and second browsers with said server acting as proxy.
3. A computer program product, comprising a computer readable physically tangible storage having a computer readable program code stored therein, said computer readable program code upon being executed by a processor of a computer causes the computer to perform a method for establishing a chat session between two users in a network system, including a first user desiring to establish a chat session with a second user which does not have a chat application open, said method comprising:
said first user downloading from said server browser executable code for initiating a chat session;
said first user executing said browser executable code to display at a first browser window a chat invitation form including a header field, an instruction field, one or more fields for entering user identifiers, and a message field;
said first user entering to said chat invitation form one or more user identifiers including a user identifier for said second user, and optionally a message to said message field;
receiving at said server from said first user a request to enter chat mode with said second user;
receiving asynchronously at said server from said second user an http request to download content from said server or any other intranet or Intranet server, said second user not currently executing a chat applet instance and being unaware of said request from said first user to enter chat mode;
said server responding to said http request from said second user with an http response including said content modified with a chat user interface to open a second browser window including a header field, a messages field, and a response field, wherein content of said second browser window causes a chat applet instance to download for execution at said second user;
executing said chat applet instance at said second user to instantiate a chat session between said first user and said second user; and
establishing a persistent connection between said second browser and said server to establish a channel for message exchange between said first and second browsers with said server acting as proxy.
2. The computer system of claim 1, said method further comprising:
authenticating said first user to a message engine at said server to enable unicast messaging capabilities; and thereafter
serving to said first user, in response to an asynchronous message from said first user requesting server content, a user interface to a collaboration tool for conveying text and/or multimedia messages with respect to said first user and an administration server.
4. The computer program product of claim 3, further comprising:
authenticating said first user to a message engine at said server to enable unicast messaging capabilities; and thereafter
serving to said first user, in response to an asynchronous message from said first user requesting server content, a user interface to a collaboration tool for conveying text and/or multimedia messages with respect to said first user and an administration server.

This application is a continuation application claiming priority to Ser. No. 10/777,799, filed Feb. 12, 2004, now U.S. Pat. No. 7,650,380, issued Jan. 19, 2010.

1. Technical Field of the Invention

This invention relates to messaging and collaboration in a corporate Intranet environment using an HTTP proxy server.

2. Background Art

Advances and developments in packet networks, consumer premises equipment, network servers, and client software provide a synergistic environment for the development of new communication modes and complexities. Networks such as private intranets and the Internet have become features of private and public telecommunications infrastructures. E-mail is now a standard form of communication and information exchange, and instant messaging has become prevalent as a private extension to chat groups. Instant messaging services enable online or network connected parties to generate and deliver text messages to one another over the network. Some such services allow users to select other persons as collaborators and assign these collaborators to groups, automatically register a person when on-line, advertise the user's selected collaborators to the user when those collaborators register on-line, advertise the user's presence on-line to others who have selected the user as a collaborator, and participate in instant messaging communications between two on-line users.

One messaging solution utilizes instant messaging services and communication protocols to locate a registered user, query the user for a proposed message disposition or other action, and coordinate services among a plurality of communication devices, modes, and channels. A user proxy is registered to the user with an instant messaging system as a personal communication services platform. The user creates collaboration groups and defines specific attributes to associates within each group. Included within each associate definition is a user-selected priority assignment. If an associate is assigned a low priority by the user, the associate will never discern whether the user is online or offline, instead the associate will always communicate and interact with the user via the user proxy. If, however, the associate is assigned a high priority by the user, the associate will discern the user's online status any time he is registered on line. Associates assigned a highest priority by the user are able to interface with the user directly when the user is online, and interface with the user proxy when the user is offline.

Thus, in today's corporate environment there is a well known and addressed business need for messaging and collaboration software, such as Lotus Sametime, Microsoft Netmeeting, and the like. These solutions share the following characteristics. First, the user is required to explicitly start the client messaging application. Second, the user can explicitly terminate the messaging application instead of switching to ‘Do Not Disturb’ mode. Third, the client messaging application requires a separate login procedure.

In accordance with an aspect of the invention, there is provided a method for operating a server for managing message communications in a network system by first receiving from a first user a request to enter chat mode with a second user; second receiving asynchronously from the second user a request to download any content from said server or any other server; and responding to the request from the second user with the content modified to instantiate a chat session between the first and second users.

In accordance with a further aspect of the invention, a messaging system includes first and second user browsers, a common server, and a network interconnecting them. A message engine at the common server receives from the first user browser a request to enter chat mode with the second user browser; then receives asynchronously from the second user browser a request to download any content from the common server or any other server; and then responds to the request with content modified to instantiate a chat session between the first and second user browsers.

In accordance with an aspect of the invention, there is provided a computer program product configured to be operable to manage message communications in a network system by first receiving from a first user a request to enter chat mode with a second user; second receiving asynchronously from the second user a request to download any content from that or any other server; and responding to the request from the second user with the content modified to instantiate a chat session between the first and second users.

In accordance with an additional aspect of the invention, there is provided a program storage device for storing computer executable code for managing message communications in a network system by first receiving from a first user a request to enter chat mode with a second user; second receiving asynchronously from the second user a request to download any content from that or any other server; and responding to the request from the second user with the content modified to instantiate a chat session between the first and second users.

Other features and advantages of this invention will become apparent from the following detailed description of the presently preferred embodiment of the invention, taken in conjunction with the accompanying drawings.

FIG. 1 is system diagram illustrating the architecture of a chat environment.

FIG. 2 is a schematic representation of the sequence of HTTP requests and responses during chat initiation in accordance with the preferred embodiment of the invention.

FIG. 3 illustrates schematically a chat invitation form.

FIG. 4 illustrates schematically a chat user interface.

FIG. 5 is a high level system diagram illustrating a program storage device readable by a machine, tangibly embodying a program of instructions executable by a machine to perform method steps for dynamically assigning I/O priority.

In accordance with the preferred embodiment of the invention, a multimedia broadcast, unicast and real-time messaging functionality is provided for users of a corporate network which does not use any client software other than an HTTP browser, does not require a separate sign on, and may be configured by the network administrator to prevent users from disabling the messaging functionality delivered via the browser.

Referring to FIG. 1, a system diagram illustrates the architecture of the preferred embodiment of the invention. Host 10 includes HTTP proxy server 12 and message engine 14. Communication link 31 connects host 10 to a POP3/IMAP server 16, and link 33 to admin server 18. Links 45 connect host 10 to users/groups storage 20, link 35/37 to user A browser 22, link 41 to user B browser 24, and link 43 to user C browser 26.

Message engine (ME) is put at HTTP proxy server 12 since proxy servers can be and usually are enforced for all browsers 22-26 in a corporate environment. Message engine 14 may be implemented as a software module which looks and acts as an HTTP proxy server from the browsers' point of view.

To enable unicast messaging capabilities, a user 22 must authenticate with the message engine 14. This may be done in a number of ways: (1) the user may be required to authenticate with the HTTP proxy server as part of an organization's network security procedure; or (2)if an SSO engine is implemented, its user authentication mechanism can be used; or (3) the user authentication may be substituted with the client machine authentication, which is a trivial task for static IP addresses; or (4) a dynamic host configuration protocol (DHCP) server assigning IP addresses to client machines can keep track of hardware address of network cards (MAC addresses); or (5) if none of (1)-(4) is implemented, a user can be explicitly asked to authenticate with the ME 14 on the first attempt to use it.

Content which is sent to a user, say 22, is, generally speaking, a user interface to a collaboration tool with the ability to convey text and/or multimedia messages (including audio-video-stream) in one or both directions. Thus, the content can include HTML, Java applets, Javascript, and so forth.

As will be more fully described hereafter, a content page 37 sent to a user A will be returned to browser 22 as a response to a next HTTP request 35 from a browser, whatever the actual HTTP request 35 was. Message 37 can either replace altogether the content of an original response to request 35, or modify it by causing browser 22 to open a separate window with the message text.

To further improve the timely delivery of message 37, proxy server 12 may set a short time to live to all, or most popular, pages served. This is done by setting the time in the header of HTML pages in cache.

In accordance with the present invention, the following functionality may be implemented.

First, message broadcast for all or a group of users in a corporate Intranet. This functionality is primarily intended for the delivery of urgent public announcement messages 31, 33, ranging from weather, fire or civil defense alerts to corporate-level announcements. User groups 20 can be organized according either to the organizational chart (departments, divisions, etc.) or to actual user location (building, floor, etc.) For broadcast functionality, user authentication with the message engine 14 is not required.

Second, message unicast for a particular user. This functionality is primarily intended for delivery of urgent messages 31, 33, such as urgent e-mails, short messages, reminders, etc.

Third, chat mode. When user C wishes to open a chat session with user A, he sends a request 43 to message engine 14 used by both browsers 22, 26. ME 14 signals the HTTP proxy server 12, which then incorporates a chat user interface into the next HTTP response 37 served in response to an HTTP request 35 to user A's browser 22. Chat functionality is implemented in executable client-side code and in the ME 14 server side module.

Referring to FIG. 2, a schematic representation of the sequence of HTTP requests and responses during chat initiation is presented.

Prior to step 43, user C points browser 26 to a known chat URL residing on a local Intranet server 10, and downloads an executable piece of content (a Java applet). Upon downloading and executing the code, browser 26 displays a chat invitation form 50 (FIG. 3), which in this exemplary embodiment includes header field or panel 51, instruction field 52, one or more fields 53-55 for entering the user IDs of users 22, 24 to chat with, and a message field 56. A TCP connection 43, 44 is established with message engine 14. User C enters the userID of, say, user A, enters a message in data field 56, and in step 43 submits the request.

Table 1 illustrates a sample format for chat message 43.

TABLE 1
SAMPLE CHAT MESSAGE FORMAT
CHAT-START userC@mail.some-corp.com
INVITE userID=userA@mail.some-corp.com
CHAT-MSG Hi%2CBob,%2Chow%2Csales%2Care%2Cdoing
CHAT-END

Some time after User C submitted chat invitation 43 (form 50) to message engine 14, user A asynchronously submits some HTTP request 35 to download any document or other content from the corporate Intranet or the Internet. At this stage, user A does not know about user C's intention to initiate the chat, but rather is performing some normal activity.

Table 2 illustrates a sample HTTP request 35.

TABLE 2
SAMPLE HTTP REQUEST SUBMITTED BY USER A
GET /index.html HTTP/1.1
Accept: text/plain,text/html,*/*;q=0.3
Host: www.cnn.com
User-Agent: Mozilla
Connection: Keep-Alive

When HTTP proxy server 12 detects the HTTP request 35 from user A (with which user C desires to chat), it accesses the URL requested by user A and serves it as response message 37 to browser 22, modifying it as illustrated by the bold highlighted material in Table 3, at lines 42-44. The modification is added immediately after the <body> flag, and cause another browser window 60 (FIG. 4) to open at browser 22, including a header field 61, a messages field 62, and a response field 63. The contents of this browser 22 window cause a chat applet instance to download from host 10 and execute at browser 22. This applet establishes a TCP connection with server 12, thus establishing a channel 35, 37, 43, 44 for message exchange between two chat clients 22, 26, with chat server 12 acting as proxy.

TABLE 3
MODIFIED HTTP RESPONSE FROM PROXY SERVER TO USER B
Last-modified: Mon, 28 Jul 2003 18:59:47 GMT
Expires: Mon, 28 Jul 2003 19:00:47 GMT
Cache-control: private, max-age=60
Content-type: text/html
Transfer-Encoding: chunked
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01
Transitional//EN”>
<html lang=“en”>
<head>
   <meta http-equiv=“content-type” content=“text/html;
charset=iso-8859-1”>
   <meta http-equiv=“refresh” content=“1800”>
   <title>CNN.com</title>
   <link rel=“Start” href=“/”>
   <link rel=“Search” href=“/search/”>
   <link rel=“stylesheet”
href=“http://i.cnn.net/cnn/.element/ssi/css/1.0/main.css”
type=“text/css”>
   <script language=“JavaScript1.2”
src=“http://i.cnn.net/cnn/.element/ssi/js/1.0/main.js”
type=“text/javascript”></script>
<script language=“JavaScript1.1”
src=“http://ar.atwola.com/file/adsWrapper.js”></script>
<style type=“text/css”>
<!--
.aoltextad text-align: justify; font-size: 12px; color: black;
font-family: Georgia, sans-serif
-->
</style>
<script language=“JavaScript1.1” type=“text/javascript”
src=“http://ar.atwola.com/file/adsPopup2.js”></script>
<script language=“JavaScript”>
document.adoffset = 0;
document.adPopupDomain = ‘www.cnn.com’;
document.adPopupFile = ‘/cnn_adspaces/adsPopup2.html’;
document.adPopupInterval = ‘P24’;
document.adPopunderInterval = ‘P24’;
adSetOther(‘&TVAR=’+escape(‘class=us.low’));
</script>
</head>
<body class=“cnnMainPage”>
<script language=javascript>
 window.open(‘http://proxy-chat.some-corp.com/index.jsp’);
</script>
<a name=“top_of_page”></a>
<a href=“#ContentArea”><img
src=“http://i.cnn.net/cnn/images/1.gif” alt=“Click here to skip
to main content.” width=“10” height=“1” border=“0”
align=“right”></a>
<table width=“770” border=“0” cellpadding=“0” cellspacing=“0”
style=“speak: none”>

User A's response 44 to user C will be delivered by chat proxy server 12 to user C's chat client over the TCP connection 43, 44 client browser 26 has previously established with chat server 12 based on the CHAT-RESPOND field value of the chat response message example of Table 4, at line 2.

TABLE 4
CHAT RESPONSE MESSAGE EXAMPLE
CHAT-START userA@mail.some-corp.com
CHAT-RESPOND userC@mail.come-corp.com
CHAT-MSG Not%2Cvery%2Chow%2Clately...
CHAT-END

It will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the invention. FIG. 5 depicts a computer system comprising a computer 102 and a computer program product or program element, or a program storage or memory device 100 such as a computer readable storage medium 110, magnetic or optical wire, tape or disc 106, 108, or the like, for storing computer readable program code (i.e., a program of instructions) readable by a machine as is illustrated by line 104, or controlling the operation of a computer 102, such as a host system 10 or storage controller 31 or processor coupled to the computer readable storage medium 110, according to the method of the invention and/or to structure its components in accordance with the system of the invention (i.e., execution of the program code by the processor causes the processor of the computer to perform the method of the invention).

Further, each step of the method may be executed on any general purpose computer, such as IBM Systems designated as zSeries, iSeries, xSeries, and pSeries, or the like and pursuant to one or more, or a part of one or more, program elements, modules or objects generated from any programming language, such as C++, Java, Pl/1, Fortran or the like. And still further, each said step, or a file or object or the like implementing each said step, may be executed by special purpose hardware or a circuit module designed for that purpose.

Accordingly, the scope of protection of this invention is limited only by the following claims and their equivalents.

Vilshansky, Gregory, Andreev, Dmitrii

Patent Priority Assignee Title
9998883, Sep 30 2015 Glass pane for collaborative electronic communication
Patent Priority Assignee Title
5414818, Apr 06 1990 EMC Corporation Method and apparatus for controlling reselection of a bus by overriding a prioritization protocol
5715406, Apr 06 1990 EMC Corporation Controlled bus reselection interface and method
5768515, Jul 08 1996 Microsoft Technology Licensing, LLC Method for generating and storing two segments of HTTP message headers with different lifetimes and combining them to form a single response header
5796393, Nov 08 1996 Meta Platforms, Inc System for intergrating an on-line service community with a foreign service
5862330, Jul 16 1996 Alcatel Lucent Technique for obtaining and exchanging information on wolrd wide web
5964836, Sep 11 1997 International Business Machines Corporation Apparatus, methods and computer program products for managing web-page-embedded sessions with a host-based application
6101570, Jul 28 1998 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Method and apparatus for fair bus arbitration in multiple initiator SCSI systems
6122723, Aug 20 1998 International Business Machines Corporation Switching multi-initiator SCSI devices to a singular target bus
6144991, Feb 19 1998 HANGER SOLUTIONS, LLC System and method for managing interactions between users in a browser-based telecommunications network
6157963, Mar 24 1998 NetApp, Inc System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients
6212548, Jul 30 1998 TUMBLEWEED HOLDINGS LLC System and method for multiple asynchronous text chat conversations
6301609, Jul 07 1999 Alcatel Lucent Assignable associate priorities for user-definable instant messaging buddy groups
6336135, May 24 1996 International Business Machines Corporation Gateway for converting synchronous client/server protocols into asynchronous messaging protocols and storing session state information at the client
6338086, Jun 11 1998 Microsoft Technology Licensing, LLC Collaborative object architecture
6442590, May 27 1999 YODLEE, INC Method and apparatus for a site-sensitive interactive chat network
6499053, Jun 30 1999 ACTIVISION PUBLISHING, INC Master/slave architecture for a distributed chat application in a bandwidth constrained network
6519629, Sep 15 1998 CROSS ATLANTIC CAPITAL PARTNERS, INC System for creating a community for users with common interests to interact in
6606644, Feb 24 2000 International Business Machines Corporation System and technique for dynamic information gathering and targeted advertising in a web based model using a live information selection and analysis tool
6785708, Oct 30 1996 NYTELL SOFTWARE LLC Method and apparatus for synchronizing browse and chat functions on a computer network
6857006, Sep 16 1998 MITSUI & CO , LTD Multimedia direct communication system linked with HTTP protocol
7000019, Oct 17 2000 Hewlett Packard Enterprise Development LP Establishment of a deferred network communication session
7080120, Jan 19 2001 DIGITAL ORCHID INC ; DAOU, DANIEL System and method for collaborative processing of distributed applications
7171473, Nov 17 1999 RPX Corporation System using HTTP protocol for maintaining and updating on-line presence information of new user in user table and group table
7243124, Sep 16 2002 Oracle International Corporation Architecture for general purpose near real-time business intelligence system with client devices and methods therefor
7263526, Oct 30 1996 NYTELL SOFTWARE LLC Method and apparatus for embedding chat functions in a web page
7363342, Jul 08 2003 Microsoft Technology Licensing, LLC Method and apparatus for providing web services in a collaborative computing system
7392306, Apr 07 2000 Meta Platforms, Inc Instant messaging client having an embedded browser
7401117, Jun 10 2002 International Business Machines Corporation System and method for composite business interactions in electronic commerce
7668917, Sep 16 2002 Oracle International Corporation Method and apparatus for ensuring accountability in the examination of a set of data elements by a user
7725128, Sep 06 2006 Gula Consulting Limited Liability Company Integrated instant messaging and web browsing client and related methods
20010027474,
20020055975,
20020062348,
20020073210,
20020086706,
20020095336,
20020099847,
20020103943,
20020111942,
20030014485,
20030140103,
20030225833,
20050147086,
20050171999,
20060010201,
20060010205,
20060026237,
20060173959,
20060253535,
20080046510,
/
Executed onAssignorAssigneeConveyanceFrameReelDoc
Jan 15 2010International Business Machines Corporation(assignment on the face of the patent)
Date Maintenance Fee Events
Nov 25 2016REM: Maintenance Fee Reminder Mailed.
Apr 16 2017EXP: Patent Expired for Failure to Pay Maintenance Fees.


Date Maintenance Schedule
Apr 16 20164 years fee payment window open
Oct 16 20166 months grace period start (w surcharge)
Apr 16 2017patent expiry (for year 4)
Apr 16 20192 years to revive unintentionally abandoned end. (for year 4)
Apr 16 20208 years fee payment window open
Oct 16 20206 months grace period start (w surcharge)
Apr 16 2021patent expiry (for year 8)
Apr 16 20232 years to revive unintentionally abandoned end. (for year 8)
Apr 16 202412 years fee payment window open
Oct 16 20246 months grace period start (w surcharge)
Apr 16 2025patent expiry (for year 12)
Apr 16 20272 years to revive unintentionally abandoned end. (for year 12)