Interactive client computer communication
Two way communication is provided in a one to many pub/sub environment. A community of users admitted to the community by subscription authorization receive messages (preferably Instant Messages) published from a requesting user. The request message is sent to a robot user (program application) that represents the community of users but appears to the community as simply another user. The robot user publishes the request message (using a pub/sub service) to the community of users. A user in the community of users receives messages to the community according to his personal message filter. The user responds to the requesting user with a response message. The response message includes information identifying the request message.
Latest IBM Patents:
- Shareable transient IoT gateways
- Wide-base magnetic tunnel junction device with sidewall polymer spacer
- AR (augmented reality) based selective sound inclusion from the surrounding while executing any voice command
- Confined bridge cell phase change memory
- Control of access to computing resources implemented in isolated environments
The invention disclosed in this application is related in subject matter to application Ser. No. 10/207,711 “INTERACTIVE FILTERING ELECTRONIC MESSAGES RECEIVED FROM A PUBLICATION/SUBSCRIPTION SERVICE” by Goodman et al., issuing as U.S. Pat. No. 7,720,910 and assigned to the assignee of this application. The disclosure of the foregoing application is incorporated herein by reference.
COPYRIGHT NOTICEA portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
REFERENCE TO A COMPUTER PROGRAM LISTING APPENDIX SUBMITTED ON A COMPACT DISKComputer program listings incorporated herein by reference are submitted herewith on one compact disk (Copy 1) and one duplicate compact disk (Copy 2) as follows:
Disk One of One:
The present invention is related to systems and methods for distributing data, more particularly to systems and methods for distributed computer users to enter into a two way electronic conversations using Publication/Subscription services.
BACKGROUND OF THE INVENTIONThere are several ways that a requester can solicit help from a group of listeners today. He could use e-mail to send a request to a predetermined group of listeners who could each make a decision whether to engage in e-mail conversation with the requester. The problem is that e-mail's persist and have an indeterminate turn around, thus a listener may happen to see the requesters e-mail “immediately” but another listener may see the e-mail hours (or months) later. Conversing by e-mail would be very frustrating. The requester may enter a chat room to make his request, the problem is that all the members of the chat room are peers so it would be difficult to assure that listeners were interested enough to engage in conversation on a requesters subject and even if they were, the chat room would be cluttered with many users messages pertaining to many subjects all interspersed. The requester could open an instant message (IM) session with one listener at a time but he'd have to know which listener to direct the request to and wait a period for response to the listener to decide that the listener wasn't responding. Prior art methods often require the requester know the ID of the members of the community, know their interest and skills, share conversation with other requesters, take a long time to negotiate to find the appropriate listener, allow only one to one communication and the like.
In
Networked clients comprise applications for communication. E-mail applications provide for sending a message to a mail server that then makes the recipient aware of the waiting message. The recipient then can elect to open the message and view it at his client machine. E-mail messages can be sent to a single recipient or can contain a list of several recipients (one to many). One to many e-mail transactions are popular with advertisers and the use of one to many e-mails has been dubbed “SPAM-ing”. Recently Instant Messaging (IM) has gained popularity in the form of sending text messages directly to another client. A first user composes an IM and selects a second user as the target. A message is then sent directly to the second user and appears on his display as either a message or the notification of a message. IMs are typically one to one messages.
A pub/sub service 304 receives messages originating from a content service and delivers them to client subscribers. An example message published includes a topic string, a set of property name-value pairs, and a body. A subscriber identifies a topic string pattern and properties test, and receives matching messages according to a standard, for instance JAVA Message Service (JMS).
SUMMARY OF THE INVENTIONAn IBM marketing representative is typing away at his THINKPAD in an Atlanta, Ga. hotel room. A software developer at the Santa Teresa, Calif. Lab looks up at the clock—10 PM, only twelve hours away from product code freeze. A secretary in Somers, New York is scrambling to decipher an obscure LOTUS Notes error message she received while accessing an executive's calendar.
What do these three employees have in common? They each open their Sametime Connect Instant Messaging “buddy lists” and click on the “SkillTap” Bot. A Bot is an automated assistant (robot). Bot active agents are discussed in U.S. patent application Ser. No. 10/002,685 “Accessing Information Using An Instant Messaging System” assigned to IBM and incorporated herein by reference. The SkillTap Bot can instantly deliver requests for help concurrently to an entire community of online employees. Immediately, coworkers who have elected to see SkillTap Instant Messages containing keywords of interest to them are presented an alert box with the message—they can quickly choose to respond if appropriate, or discard the alert if they are unable to deal with the request for any reason (no question asked . . . entirely anonymous so far and on a volunteer basis only).
An employee casually reading mail at home in Seattle, Wash. sees an alert pop-up on his screen from the marketing rep—“Customer in Atlanta requires immediate assistance with enabling SSL LDAP authentication under IHS/Websphere on Netfinity 4000/Linux”. The words “Websphere”, “Linux”, and “Atlanta” are highlighted in red, based on filtering rules the Seattle employee had defined. He clicks a button to initiate a Sametime Instant Message discussion with the customer rep. “Been there, done that”, “family in Atlanta area”, “help at the customer site Friday, stay the weekend with family, fly you back Monday”—solutions converge quickly. The marketing rep gets a good nights sleep. The responder gets a change of scenery, some customer experience, and moves up a notch on the “Top Guns” SkillTap Scoreboard. Life is good.
So, how does this thing work, you ask? From the “requester” side, you need nothing installed beyond the Sametime Connect Instant Message client, which most employees are already using for daily instant messaging communication with other employees. Using the “People” menu, select “Add . . . ” and type in Sametime User name “skilltap@us.ibm.com” to add the SkillTap Bot to your buddy list. When you have an important problem that requires immediate assistance, simply click on the Bot and ask him your question. Be sure to include enough details in the message that only users filtering on the important keywords will receive the message (e.g. Java, Websphere, AIX, SP2, zSeries, LDAP, DB2, Domino, MQ, etc.). Also, be aware that this message is potentially being delivered to a large number of users, so remember to follow basic rules of etiquette. Finally, when you are really stuck, keep in mind that no question is too simple—just think of the SkillTap community as a large room of coworkers who have all indicated a willingness to help—so, go ahead, just ask!
To be able to see questions posted by other employees, and to actively participate as a “responder”, you must first download program applications to your PC. The applications are the Sash weblication called “Shotgun” and the “SkillTap” weblication, from the Web site. Next, refer to the Shotgun documentation to understand how the SkillTap application is enabled under the Shotgun client, and how to define “filters” to control which SkillTap instant messages you will receive. Once you have defined the filter words and expressions that are of interest to you (e.g. Java, Perl, Linux, AIX, zSeries, DB2, MQ, Lotus Notes, Power, wireless,etc.), just sit back and wait for coworkers to ask for your help.
Web Pub/Sub services provide for a single publisher to publish messages to large numbers of clients. The present invention (herein called “SkillTap”) utilizes Pub/Sub Applications to publish an Instant Message (IM) from a requester to subscribers of a Pub/Sub channel (listeners). The listeners, running a special SkillTap application, each receive the message as an IM. In one embodiment, the published message is displayed in a special SkillTap alert window. If a listener decides to engage in conversation with the requester, he responds to the IM. The requester receives IM's from each responder in separate windows and elects one responder to converse with at a time. When the conversation is over, the requester is optionally prompted for Frequently Asked Question (FAQ) database information and/or and evaluation of the session with the listener of the conversation. Message filters are employed to allow listeners to only be alerted to messages that contain content of interest. Message throttles are employed to limit number of listeners engaging the requester.
SUMMARY OF SOME OF THE EMBODIMENTSIn one embodiment, a two way electronic conversation with a cooperating community of users includes the steps of: retrieving a list of approved subscribers comprising a community of users; receiving a first message from a first user, the message directed to the community of users; publishing by way of a pub/sub service, the first message to users in the community of users according to the list of approved subscribers; and transmitting a second message comprising first message identifying information from a second user to the first user wherein the second user is a member of the community of users.
In another embodiment, electronic instant message conversation includes the steps of: receiving a first message from a first user, the first user having a first network address; creating a first instant message comprising the first message and the first network address; transmitting the first instant message by way of an instant message application from the first user to a second user; retrieving additional information related to the first user; and presenting the first instant message and the additional information to the second user.
In a variation of the embodiment, the additional information comprises any one of first user name, first user title, first user address, first user telephone number, first user value, first user job responsibility, first user secretary.
In another variation, the additional information comprises any one of a text file, a video file, an audio file, a network link such as a URL.
In another version, the message is translated to any one of a telephone message, a video display, an audio message or a mechanical actuator.
In another embodiment, messages sent from one user to another user optionally are provided with additional information identifying information about the user. Optionally, the message is appended with files for other media (telephone, text, video or audio for example). Optionally, the message is dynamically translated to other media such as text to voice, voice to text, text decompression and the like.
In another embodiment, a message initiator is identified in a system for instant message using a pub/sub server, the method comprising the steps of: Incorporating user identifying information in a message to be published; Transmitting the message to a pub/sub server; and Publishing the message to subscribers of the pub/sub server providing user information to a subscriber.
In a variation of the embodiment, the providing step includes the further step of acquiring user information based on user identifying information in the message.
In another variation, the embodiment further comprises the step of: Transforming information to or from any one of instant message, text, audio, video or voice into the digital message.
In another embodiment, electronic conversation message response traffic includes the steps of: setting response throttle characteristics in an application storage; transmitting a first electronic conversation message from a first user to a second user transmitting a second electronic conversation message from the second user to the first user; identifying the second electronic conversation message as a conversation session related to the response throttle characteristics; and presenting the second electronic conversation message to the first user according to the response throttle characteristics.
In a variation of the embodiment, the filtering step includes any one of limiting the number of responses presented to the user to a predetermined number, limiting the response time for presenting responses to the user, prioritizing presentation of previous responders over new responders or presenting only messages from predefined senders.
In another embodiment, information is created and saved at the conclusion of an electronic conversation session comprising the steps of: initiating an electronic conversation between a first user and a second user wherein the electronic conversation session is uniquely identified; completing the electronic conversation; creating information about the conversation; recording the information; and ending the electronic conversation session.
In one version of the embodiment the information comprises any one of a FAQ entry, billing information, customer information or evaluation information about the user or the conversation. Optionally the information is presented when initiating new conversations. Thus, the evaluation information contributes to a record that summarizes the user's expertise or rates the quality of his accumulated conversations and the record is used in creating an accumulated evaluation which is presented whenever the user engages in a new conversation.
In another embodiment, value recognition is created in a system for instant messages using a pub/sub server comprising the steps of: Initiating a message exchange with subscribers by way of a pub/sub server; Receiving a response message from a first subscriber; creating a value rating for the first subscriber, the value rating indicating the value of the exchange of messages from the first subscriber.
In a version of the embodiment, the value rating is an aggregate of value rating accumulated from value ratings directed to the first subscriber.
In another version, the embodiment comprises the further step of presenting the value rating with responses from the subscriber.
In another embodiment a dynamic database is accessed in a cooperating community of users comprising the steps of: retrieving a list of approved subscribers comprising a community of users; receiving a first message from a first user, the message directed to the community of users; querying a dynamic database according to text in the first message wherein the dynamic database is modifiable by members of the community of users; and transmitting a second message comprising results of the dynamic database query to the first user.
In another embodiment, dynamic database elements are generated (wherein the data base is optionally a FAQ data base) in a system for instant message using a pub/sub server comprising the steps of: Transmitting a request message for publication to the pub/sub server Receiving a response message from a first subscriber; Selecting a data base element generation GUI option; Editing the data base element generation GUI; and incorporating the edited database element in a data base available to subscribers.
In a variation of the embodiment, the data base GUI includes elements of the response message.
In another variation, the data base GUI automatically includes elements of the request message.
In yet another variation, the data base GUI includes options for displaying a preexisting data base element.
In another embodiment special users are sought in a cooperating community of users (the special users having predetermined attributes) comprising the steps of: specifying attributes of the special users in a first electronic conversation message; retrieving an approved subscribers list of the users in a cooperating community of users; publishing the first electronic conversation message to the users in a cooperating community of users according to the approved subscribers list; returning a second message from a special user, the second message identifying the special user; and associating the second message with the first electronic conversation message in order to identify a unique conversation session between the first user and the special user.
In another embodiment expertise is sought (in a system for instant message using a pub/sub server) comprising the steps of: Transmitting a request message for publication to the pub/sub server; Receiving a response message from a first subscriber the response message indicating the level of expertise of the first subscriber.
In another embodiment expertise is sought (in a system for instant message using a pub/sub server) comprising the steps of: receiving a request message from a channel of a pub/sub server; Filtering the request message at by a filtering application according to subscriber criteria; Presenting the request message to the subscriber based on the filtering criteria.
In another embodiment expertise is sought in a system for instant message using a pub/sub server comprising the steps of: Transmitting a request message for publication to the pub/sub server; Receiving a response message from a first subscriber the response message indicating the level of expertise of the first subscriber.
In another embodiment, expertise is sought in a system for instant message using a pub/sub server comprising the steps of: receiving a request message from a channel of a pub/sub server; Filtering the request message at by a filtering application according to subscriber criteria; Presenting the request message to the subscriber based on the filtering criteria.
In another embodiment, real time Data Base elements are generated in a system for instant message using a pub/sub server (wherein the data is optionally a FAQ database) comprising the steps of: Transmitting a request message for publication to the pub/sub server from a first client; Directing the request to an automated data base query application; transmitting a response message from the data base query application to the first client; Publishing the request message to active subscribers after transmitting the data base query.
It is therefore an object of the present invention to provide a method for sending a message from a requester via a pub/sub service to many anonymous listeners.
It is another object of the invention to allow listeners to screen IM messages from a requester using message content filtering.
It is another object of the invention enable a listener to initiate a conversation session with the requester.
It is still a further object of the invention to represent the community of users using a program agent appearing as a user.
The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following written description.
The present invention provides a method for one to many communication preferably by way of Instant Messaging technology. It utilizes a novel combination of Pub/Sub service which publishes a service to subscribers wherein the subscribers elect a service channel and message filtering in order to customize the type of information presented to the subscriber. The novel combination is described in U.S. patent application Ser. No. 10/207,711 “INTERACTIVE FILTERING ELECTRONIC MESSAGES RECEIVED FROM A PUBLICATION/SUBSCRIPTION SERVICE” assigned to IBM and incorporated herein by reference.
Refer to
The pub/sub service 304 acts as both a subscription manager 310 and a content distribution agent 311. Applications implementing the pub/sub service role 304 accept subscription requests 307 from subscribers 305 and, subject to any applicable authentication or access control policies, accept or reject subscription requests; and distribute content 308 to valid subscribers 305.
The actual content sent to each subscriber 305–306 by the pub-sub service 304 will be determined by the subscription process 310 and through the message selection process 311.
Applications implementing some aspect of the pub/sub system may act in different roles in different circumstances. For example, an application implementing the pub/sub service role 304 may itself act as a subscriber, subscribing to and receiving content from another instance of the pub-sub service. Similarly, an application acting in the subscriber role may act as a content producer if the end-user of the application wishes to publish a message to the service.
The pub/sub system provides for communication among applications implementing the application roles. There are two primary communications in the pub/sub system: messages are sent from content providers to pub/sub services; and pub/sub services send messages to subscribers 308, 312.
Content providers 301–303 may generate messages from any content source, and subscribers may dispose of messages in any manner they choose. For example, a content provider may simply be a gateway between a raw content source, such as e-mail or web pages, to the pub-sub service. Similarly, a subscriber 305, 306 may act as a gateway between the pub-sub service and an external service such as NNTP or e-mail.
More specifically, Clients 305–306 have downloaded App 1 (321) and App 2 (323) which enable message filtering 420 for message published 311 by a Pub/Sub service 304. One component of Service A (301) includes an automated IM user (Bot) 402 which communicates to other applications 403–404 using IM technology. Service A (301) associates the Bot with a Pub/Sub channel. The Bot is represented to the community by an IM ID as if it were another user. Clients can be requesters or listeners or both. Requesters initiate requests to Service A's Bot exactly as in any IM initial event. Service A's Bot ID is associated with a Pub/Sub channel which has a plurality of subscriber clients (listeners). Listeners have subscribed to the Bot channel because they have common interests. The subscribers' IM ID's are preferably unknown to the requester. SkillTap associates subscribers with a channel by use of a table holding the information at the SkillTap server.
Service A's Bot (402) receives an IM from a requester's 305 IM session 403 and publishes it 311 to the active subscribers of the Pub/Sub channel associated with the Bot including client 2 (306). The requester's 305 IM window may then be closed. The Pub/Sub service 304 distributes messages to SkillTap applications running on client machines. One of these applications, App 2 provides filtering techniques on incoming messages to eliminate messages that are not of interest to the client 2. App 2 (323) presents the request message to the listener user's display at client 2 (306). In one embodiment, the display at client 2 is like an IM display. If the listener is interested in responding, he transmits a response special IM by typing text in the displayed window. App 2 (323) uses IM 404 to transmit the message to the requester at client 1 (305). App 1 at client 1 (305) intercepts the response message and opens up a special IM window on the requester's display. This completes the negotiation from the requester for an IM session with a group of listeners. Communication between the two special IM windows continues until one window is closed.
It should be noted that in the preferred embodiment, the SkillTap client provides a “special IM” GUI that is used to provide the special SkillTap features. In the preferred embodiment, the initial request uses a standard IM GUI which is closed after transmitting the request. The requester receives responses from listeners in standard IM GUI. Thus a requester needs any IM service to initiate a SkillTap request and a special SkillTap IM application for the listening function. Another embodiment would provide all IM services in the special SkillTap IM application. These and other embodiments of the present invention could be created by one skilled in the art after learning the example embodiments herein.
Example of a Preferred Embodiment
In the example that follows, Brian has installed an IM (instant messaging) application on his PC. He adds a user name “SkillTap@us.ibm.com” to his IM buddy list. In this case, SkillTap is not the name of a person, it is the name of an automated user robot (Bot) that receives and sends IMs as if it were any other user. The Bot also communicates with a Pub/Sub service as a content provider. Brian sends a request to “listeners” for information. Brian doesn't know who is listening specifically but he does know that they subscribe to the SkillTap Service. Mike, a “listener” has downloaded an application called Shotgun. Shotgun in this case is an IBM SASH Weblication from an IBM Web site. Mike has also downloaded the SkillTap weblication. The SkillTap application is enabled under the Shotgun client. Mike uses Shotgun Documentation to understand how the SkillTap application works. Mike has defined Shotgun Filters for his SkillTap channel to limit messages to topics of his interest and expertise. the Filters base their decision to present messages directed to SkillTap to listeners based on the content of the messages.
Shotgun receives IMs directed to predetermined services (SkillTap Bot in this case) and enables the service to publish messages via channels to subscribers (listeners in this case). Listeners may respond by returning an IM to the requester (Brian). The return messages opens an IM window on Brian's computer which initiates the IM conversation between Brian and Mike. In another embodiment, the return message opens a chat room and Brian selectively engages in IM conversations with multiple listeners via the chat room. The chat room enables multiple listeners to participate in the conversation, it allows multiple listeners to view the conversation between Brian and Mike or optionally only provides Brian with a single instance of an IM window to converse with multiple listeners wherein each listener only sees conversation directed to him. Many other window variations would be useful and become obvious in light of the present invention.
An embodiment is demonstrated in the following example. In
In the resulting IM window shown in
In
In
In
If the listener wants to proceed, he hits “Yes” and the window depicted in
In
In the next window of the example,
In one embodiment, users can see their relative value rating by asking SkillTap for their standing. Mike, for instance could see that he is currently the 10th rated listener overall.
In another embodiment of the present invention, a SkillTap application optionally receives messages or publishes messages other than IMs. Messages can be transmitted/received using any media including for example: telephone, wireless, personal devices, voice to text, text to voice or automated applications. Messages can include attachments of image, audio, video, program applications, network invoking mechanisms (including hyperlinks, Web URLs) and the like.
In one embodiment, SkillTap comprises a throttling means to limit the number of messages. Responses to the requester are limited by any of a predetermined number of messages, a predetermined time window, a predetermined algorithm of priority (based on message content) or message sender's credentials and the like.
In another embodiment, SkillTap prioritizes publication of the request such that an initial publication goes to one set of listeners, a second publication goes to another set of listeners. The decision to publish to sets of listeners is either time based, response based, or explicitly requested by the requester.
In a preferred embodiment, SkillTap first sends the request to an active agent that queries a database for responses. The database is preferably a FAQ database but in another implementation, may be a query on cached responses accumulated from other SkillTap sessions.
In a preferred implementation, SkillTap requests include keywords to direct SkillTap action. A question to listeners uses “Ask”; a question to FAQ uses “FAQ”, an IM to SkillTap to set parameters or controls uses “PARM”. In another implementation, SkillTap interacts with the requester. For example, the requester submits a question using “Ask” and SkillTap responds with a list of groups for the request to be directed to such as “All”, “US”, “Japan”, “Hardware”, “Programmer”, “Marketing”, “FAQ”. The requester responds with his selection and SkillTap then broadcasts the request to the selected group of listeners.
A User “A” wishes to participate in skilltap group communication. He downloads to his client a local skilltap application 1901. He also downloads a shotgun application (may be part of the download of skilltap). Shotgun provides the GUI for subscribing to a channel of skilltap and for setting up message options such as filters, throttles and the like for skilltap messages. The Shotgun server maintains a list of subscribers for each channel. When a new subscriber joins the channel, he is authenticated and authorized and his network address is added to the list of approved subscriber for the channel (the channel's community of users). A user can use the GUI at any time to join or leave a Channel or alter his options. The user uses the GUI to get authorization to subscribe and/or publish for each channel. He is authenticated and approved based on credentials required by the specific implementation.
In
The local skilltap application is personalized 2003 with information 2006 useful for communications sessions. Information includes identifying information such as User “A”s Name, nickname, phone number(s), Fax number(s), Job Title, Expertise and the like. Local Skilltap also records the user's preferences for SkillTap such as if he wants anonymity or warning if he is about to break anonymity, his alias name, whether he wants to invoke a FAQ active agent robot as one of the recipients of his messages, default global filters for incoming messages, optional filters which can be invoked by a skilltap GUI may be nicknamed so the user associate their function easily. The Skilltap GUI settings identify whether the user wants to be alerted to incoming messages, whether he wants prompts and whether he wants a help function. The user then closes his setup GUI window 2004 and he is ready to go. In the preferred embodiment, anyone who wants to participate in SkillTap must download skilltap and perform the setup for their client. In another embodiment, Skilltap at the remote server, performs subscription and publishes IMs to subscribers who use standard IM applications to respond. The response IM is sent to the skilltap service as if it were the requester. The requester opens and closes an IM session with SkillTap as in other embodiments but in this embodiment, SkillTap service opens a second standard IM session to subscribers who respond in the second IM session. SkillTap then opens a third standard IM session with the initiator as a surrogate for the responder. The Skilltap service forwards the IM to the requester on behalf of the user. Thus, no local copy of skilltap is required.
When User “A” wishes to initiate a conversation
Referring to
Subscriber “B” is one of the subscribers to the SkillTap channel User “A” is using. Subscriber “B” has setup his local SkillTap application (as described for User “A” 1901) to Filter incoming messages, Throttle the incoming message activity and setup preferences for incoming communication. As part of the setup Subscriber “B” can elect to be warned of incoming messages by enabling 2208 an alert mechanism. In one embodiment, Alert options 2209 include whether the alert is an audible signal, a visual signal or a displayed icon.
When the Standard IM message “A” is published to Subscriber “B”, the Local SkillTap application 1905 alerts 2210 him of the incoming message. The Alert in one embodiment is includes electing to display information about User “A”, a Topic, or the full text message. A second alert in the embodiment (not shown) allows the user to elect whether or not to display other media such as a Browser URL site.
In
If Subscriber “B” wishes to respond 1909 (join a conversation with User “A”)
In
In one embodiment, an active agent responds to the publication of User “A”s initial message providing responses by querying a FAQ database. User “A” may or may not be informed that the responder is a robot Bot.
Referring to
In rating the Subscriber, the SkillTap application prompts User “A” for evaluation categories and ratings 2604. SkillTap in a preferred embodiment, aggregates ratings for the subscriber (may be a simple averaging of scores accumulated from all requests to subscriber “B”) into a single rating. This score is optionally presented with any response from Subscriber “B”. It can also be used by filters to prioritize responses from subscribers. In one embodiment, evaluations of subscribers is also related to topic such that the same subscriber may have a value rating of 5 for computers and 3 for programs. The topics are pre-assigned by SkillTap.
If the user elects 2603 to create a FAQ, SkillTap provides an editable GUI containing the messages from the conversations from all subscribers responding to the request or in another embodiment 2606, the GUI only displays the Subscriber “B” information. The GUI can optionally display related FAQ information as a result of a user query and can prompt User “A” to step him through the FAQ creation steps. When the user is satisfied with his new FAQ entry, SkillTap saves the results 2607 in the FAQ database. In one embodiment 2608 SkillTap associates User “A” with the FAQ entry such that when the FAQ is queried in the future, the users can see who the expert was that created the entry and how to contact him (network ID/Address, Phone etc). When the user is done, he closes his special SkillTap conversation GUI window 2609.
The referenced Computer Program Listing Appendix on compact disc includes files demonstrating implementations of aspects of the present invention:
In the JAVA Version:
ShotgunApplication.java—Abstract super class which encompasses base functionality for all shotgun applications.
ShotgunApplicationConfigParser.java—Configuration parser code for all shotgun applications.
ShotgunApplicationHistory.java—Recent broadcasts container and logic.
ShotgunApplicationHistoryItem.java—Individual recent broadcast listing UI and logic.
ShotgunApplicationSendForm.java—The common UI and logic for all shotgun applications broadcast forms.
ShotgunApplicationSettingsPage.java—The common UI and logic for all shotgun applications subscription forms.
ShotgunChannelsDisplayPage.java—UI for browse channels page.
ShotgunChannelsDisplayPageTableEntry.java—Logic for a single browse channel entry.
ShotgunChannelsParser.java—Parsing logic for the list of available channels.
ShotgunConstants.java—Common shotgun constants.
ShotgunPlugIn.java—The core shotgun logic which forwards messages to shotgun applications, and broadcasts messages from shotgun applications.
ShotgunPlugInSettingsPage.java—Configuration UI for the shotgun plugin.
ShotgunSOAP.java—Logic for making all shotgun related soap calls.
ShotgunXMLParser.java—Parsing logic for shotgun blasts, and applications list.
SkilltapAccessProxy.java—WebService proxy object for ease of making SkillTap WebService calls.
SkilltapPlugIn.java—Main class which handles all SkillTap logic for how to handle messages that are received from Shotgun and from the main bus.
SkilltapRequest.java—Object to describe a single SkillTap request, storing information including what the request is, who made the request, and on which channel.
SkilltapSendForm.java—Extends ShotgunApplicationSendForm to add specific elements for publishing to a SkillTap channel.
In the SASH Version:
auth.htm—Legacy version of “login.htm”.
BasicFilter.htm—Filter builder GUI.
channels.htm—Channel subscription management GUI.
docs.htm—Code to automatically point to latest. documentation.
HelperWindows.js—Code to help manage dialog windows (Channel/filter UIs).
info.htm—Help UI.
login.htm—Authentication GUI and method calls for authentication.
logviewer.htm—GUI management and views of debug log.
notify.htm—Alert GUI.
plugin-runner.exe—Runs plugins based on command line as passed from Shotgun.
Shotgun_main.htm—Main code module for Shotgun UI and function and PUB/SUB management.
startup.html—Code to manage startup process.
xorcrypt.js—Encryption libraries.
shotgun_util.js—Common utilities for dealing with shotgun XML messages.
ChatClient.htm—The original SkillTap UI and application and Sametime functionality.
faq_editor.htm-UI for editing, view information and submitting FAQs.
main.htm—Main SkillTap code and Sametime functionality.
resp.htm—Session feedback UI.
While the preferred embodiment of the invention has been illustrated and described herein, it is to be understood that the invention is not limited to the precise construction herein disclosed, and the right is reserved to all changes and modifications coming within the scope of the invention as defined in the appended claims.
Claims
1. A method for initiating an electronic conversation with a cooperating community of users, the method comprising the steps of:
- receiving a subscription from at least one user of a community of users at a pub/sub service, the received subscription to a channel of said pub/sub service, the channel having a topic of interest to said community of users, each non-publishing user of said community of users being unidentified to other users in said community of users during the electronic conversation, said user being authenticated by said pub/sub service as being willing to receive questions about said topic of said channel;
- receiving at said pub/sub service a first message to be published from a first user to said community of users, said first message having a first user address of said first user and a text portion including a question related to the topic of interest, retrieving by said pub/sub service a list of authenticated users in said community of users for receiving said first message; and
- publishing said first message by way of said pub/sub service to each user in said community of users as determined by said retrieved list, according to a predetermined plan, such that a second user in said community of users, by filtering said text portion of said first message at said second user for a specific topic of interest, is enabled to send an answer to a question in said first message of said specific topic of interest by a second message from said second user to said first user using said first user address, said filtering at said second user allowing messages of said specific interest of interest to the second user to be received by said second user while blocking other messages.
2. The method according to claim 1, wherein any one of said first message or said second message is any one of an instant message (IM) or an email message.
3. The method according to claim 1, comprising the further step of authorizing said first user to publish messages to said community of unidentified users.
4. The method according to claim 1, comprising the further step of approving said second user as a subscriber to said community of unidentified users.
5. The method according to claim 1, wherein said pub/sub channel is programmably represented to users as any one of a channel icon, or a Bot.
6. The method according to claim 1, wherein said predetermined plan comprises permitting publication of messages containing a predetermined keyword or phrase.
7. The method according to claim 6, wherein said keyword is any one of ask, find or help.
8. The method according to claim 1, comprising the further steps of:
- receiving at a computer terminal said first published message; and
- displaying said first message to said second user at said computer terminal according to filtering criteria, said filtering criteria consisting of any one of message topic, sub-topic, message content keyword, message content phrase, message content boolean match or message content type.
9. The method according to claim 1, wherein said first message identifying information consists of any one of text of said first message, a program created identifier, information about said first user, information about said second user or a sequence number.
10. The method according to claim 1, comprising the further steps of:
- receiving at a computer terminal said first published message; and
- displaying said first message to said second user at said computer terminal in a special GUI window.
11. The method according to claim 1, wherein the first message comprises the first message identifying information, wherein the first message further comprises information identifying said first user, said method comprising the further steps of:
- receiving channel subscription requests from users requesting subscription to the selected pub/sub channel;
- approving a plurality of users requesting subscription to the selected pub/sub channel;
- saving user addresses of the approved plurality of users as the list; and
- associating the list with said selected pub/sub channel.
12. The method according to claim 1, comprising the further step of providing the message receiving application program to the respective users.
13. A system for initiating an electronic conversation with a cooperating community of users, the system comprising:
- a network; and
- a pub/sub service computer system in communication with the network, the pub/sub service computer system comprising a pub/sub service including:
- a function receiving a subscription from at least one user of a community of users, the received subscription to a channel of said pub/sub service, the channel having a topic of interest to said community of users, each non-publishing user of said community of users being unidentified to other users in said community of users during the electronic conversation, said user being authenticated by said pub/sub service as being willing to receive questions about said topic of said channel;
- a function in said pub/sub service receiving a first message to be published from a first user to said community of users, said first message having a first user address of said first user and a text portion including a question related to the topic of interest;
- a function in said pub/sub service retrieving a list of authenticated users in said community of users for receiving said first message; and
- a function in said pub/sub service publishing said first message to each user in said community of users as determined by said retrieved list, according to a predetermined plan, such that a second user in said community of users, by receiving said first message and filtering said text portion of said first message at said second user for a specific topic of interest, is enabled to send an answer to a question in said first message of said specific topic of interest by second message from said second user to said first user using said first user address, said filtering at said second user allowing messages of said specific interest to the second user to be received by said second user while blocking other messages.
14. The system according to claim 13, wherein any one of said first message or said second message is any one of an instant message (IM) or an email message.
15. The system according to claim 13, wherein the pulp/sub service further includes a function authorizing said first user to publish messages to said community of unidentified users.
16. The system according to claim 13, wherein the pub/sub service further includes a function approving said second user as a subscriber to said community of unidentified users.
17. The system according to claim 13, wherein said pub/sub channel is programmably represented to users as any one of a channel icon, or a Bot.
18. The system according to claim 13, wherein said predetermined plan comprises permitting publication of messages containing a predetermined keyword or phrase.
19. The system according to claim 18, wherein said keyword is any one of ask, find or help.
20. The system according to claim 13, wherein the pub/sub service further includes:
- a function receiving at a computer terminal said first published message; and
- a function displaying said first message to said second user at said computer terminal according to filtering criteria, said filtering criteria consisting of any one of message topic, sub-topic, message content keyword, message content phrase, message content boolean match or message content type.
21. The system according to claim 13, wherein said first message identifying information consists of any one of text of said first message, a program created identifier, information about said first user, information about said second user or a sequence number.
22. The system according to claim 13, wherein the pub/sub service further includes:
- a function receiving at a computer terminal said first published message; and
- a function displaying said first message to said second user at said computer terminal in a special GUI window.
23. The system according to claim 13, comprising providing the message receiving application program to the respective users.
24. A computer program product for initiating an electronic conversation with a cooperating community of users, the computer program product comprising:
- a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising the steps of:
- receiving a subscription from at least one user of a community of users at a pub/sub service, the received subscription to a channel of said pub/sub service, the channel having a topic of interest to said community of users, each non-publishing user of said community of users being unidentified to other users in said community of users during the electronic conversation, said user being authenticated by said pub/sub service as being willing to receive questions about said topic of said channel;
- receiving at said pub/sub service a first message to be published from a first user to said community of users, said first message having a first user address of said first user and a text portion including a question related to the topic of interest;
- retrieving by said pub/sub service a first of authenticated users in said community of users for receiving said first message; and
- publishing said first message by way of said pub/sub service to each user in said community of users as determined by said retrieved list, according to a predetermined plan, such that a second user in said community of users, by filtering said text portion of said first message at said second user for a specific topic of interest, is enabled to send an answer to a question in said first message of said specific topic of interest by second message from said second user to said first user using said first user address, said filtering at said second user allowing messages of said specific interest of interest to the second user to be received by said second user while blocking other messages.
25. The computer program product according to claim 24, wherein any one of said first message or said second message is any one of an instant message (IM) or an email message.
26. The computer program product according to claim 24, said method comprising the further step of authorizing said first user to publish messages to said community of unidentified users.
27. The computer program product according to claim 24, said method comprising the further step of approving said second user as a subscriber to said community of unidentified users.
28. The computer program product according to claim 24, wherein said pub/sub channel is programmably represented to users as any one of a channel icon, or a Bot.
29. The computer program product according to claim 24, wherein said predetermined plan comprises permitting publication of messages containing a predetermined keyword or phrase.
30. The computer program product according to claim 29, wherein said keyword is any one of ask, find or help.
31. The computer program product according to claim 24, said method comprising the further steps of:
- receiving at a computer terminal said first published message; and
- said first message to said second user at said computer terminal according to filtering criteria, said filtering criteria consisting of any one of message topic, sub-topic, message content keyword, message content phrase, message content boolean match or message content type.
32. The computer program product according to claim 24, wherein said first message identifying information consists of any one of text of said first message, a program created identifier, information about said rust user, information about said second user or a sequence number.
33. The computer program product according to claim 24, said method comprising the further steps of:
- receiving at a computer terminal said first published message; and
- displaying said first message to said second user at said computer terminal in a special GUI window.
34. The computer program product according to claim 24, said method comprising the further step of providing the message receiving application program to the respective users.
5636344 | June 3, 1997 | Lewis |
5778367 | July 7, 1998 | Wesinger et al. |
5870552 | February 9, 1999 | Dozier et al. |
5893911 | April 13, 1999 | Piskiel et al. |
5915240 | June 22, 1999 | Karpf |
6018716 | January 25, 2000 | Denardo et al. |
6018730 | January 25, 2000 | Nichols et al. |
6028601 | February 22, 2000 | Machiraju et al. |
6128655 | October 3, 2000 | Fields et al. |
6138120 | October 24, 2000 | Gongwer et al. |
6154781 | November 28, 2000 | Bolam et al. |
6158007 | December 5, 2000 | Moreh et al. |
6185603 | February 6, 2001 | Henderson et al. |
6209100 | March 27, 2001 | Robertson et al. |
6223165 | April 24, 2001 | Lauffer |
6226359 | May 1, 2001 | Montgomery et al. |
6234587 | May 22, 2001 | Gerum et al. |
6236991 | May 22, 2001 | Frauenhofer et al. |
6268856 | July 31, 2001 | Bruck et al. |
6286001 | September 4, 2001 | Walker et al. |
6301609 | October 9, 2001 | Aravamudan et al. |
6324587 | November 27, 2001 | Trenbeath et al. |
6341960 | January 29, 2002 | Frasson et al. |
6421709 | July 16, 2002 | McCormick et al. |
6438580 | August 20, 2002 | Mears et al. |
6442529 | August 27, 2002 | Krishan et al. |
6442590 | August 27, 2002 | Inala et al. |
6477708 | November 5, 2002 | Sawa |
6486851 | November 26, 2002 | Weaver |
6495851 | December 17, 2002 | Yasuda |
6496851 | December 17, 2002 | Morris et al. |
6519629 | February 11, 2003 | Harvey et al. |
6535586 | March 18, 2003 | Cloutier et al. |
6539421 | March 25, 2003 | Appelman et al. |
6574658 | June 3, 2003 | Gabber et al. |
6587668 | July 1, 2003 | Miller et al. |
6609103 | August 19, 2003 | Kolls |
6651086 | November 18, 2003 | Manber et al. |
6677968 | January 13, 2004 | Appelman |
6699125 | March 2, 2004 | Kirmse et al. |
6732101 | May 4, 2004 | Cook |
6750881 | June 15, 2004 | Appelman |
6771154 | August 3, 2004 | O'Neal |
6807562 | October 19, 2004 | Pennock et al. |
6807675 | October 19, 2004 | Maillard et al. |
6832245 | December 14, 2004 | Isaacs et al. |
6941345 | September 6, 2005 | Kapil et al. |
6981223 | December 27, 2005 | Becker et al. |
6993564 | January 31, 2006 | Whitten, II |
7073129 | July 4, 2006 | Robarts et al. |
7152094 | December 19, 2006 | Jannu et al. |
7155475 | December 26, 2006 | Agnoli et al. |
7194004 | March 20, 2007 | Thomsen |
7209964 | April 24, 2007 | Dugan et al. |
7287057 | October 23, 2007 | Lagarde et al. |
7305442 | December 4, 2007 | Lundy |
7319882 | January 15, 2008 | Mendiola et al. |
7539763 | May 26, 2009 | Toyota et al. |
7596578 | September 29, 2009 | Marks |
20010034015 | October 25, 2001 | Raichur et al. |
20010034763 | October 25, 2001 | Jacobs et al. |
20010049721 | December 6, 2001 | Blair et al. |
20010056422 | December 27, 2001 | Benedict, Jr. et al. |
20020007453 | January 17, 2002 | Nemovicher |
20020023131 | February 21, 2002 | Wu et al. |
20020032771 | March 14, 2002 | Gledje |
20020040374 | April 4, 2002 | Kent |
20020052919 | May 2, 2002 | Morris et al. |
20020062391 | May 23, 2002 | Densmore |
20020072039 | June 13, 2002 | Rtischev et al. |
20020099777 | July 25, 2002 | Gupta et al. |
20020131407 | September 19, 2002 | Muhonen |
20020138588 | September 26, 2002 | Leeds |
20030023692 | January 30, 2003 | Moroo |
20030028525 | February 6, 2003 | Santos et al. |
20030061365 | March 27, 2003 | White et al. |
20030070176 | April 10, 2003 | Parker et al. |
20030093480 | May 15, 2003 | Lagarde et al. |
20030131073 | July 10, 2003 | Lucovsky et al. |
20030158913 | August 21, 2003 | Agnoli et al. |
20030208543 | November 6, 2003 | Enete et al. |
20030212800 | November 13, 2003 | Jones et al. |
20030217105 | November 20, 2003 | Zircher et al. |
20030220972 | November 27, 2003 | Montet et al. |
20040002049 | January 1, 2004 | Beavers et al. |
20040010808 | January 15, 2004 | deCarmo |
20040015554 | January 22, 2004 | Wilson |
20040044635 | March 4, 2004 | Gordon et al. |
20040080534 | April 29, 2004 | Quach |
20050086309 | April 21, 2005 | Galli et al. |
20080307040 | December 11, 2008 | So |
1130845 | September 2001 | EP |
1365553 | November 2003 | EP |
WO00/077661 | December 2000 | WO |
- Microsoft Corporation (Microsoft), Internet Explorer 4.0 Accessibility, Oct. 1997.
- Nguyen, T,Office Actions for U.S. Appl. No. 10/207,711, filed Jul. 26, 2002.
- Nguyen, T,Office Actions for U.S. Appl. No. 10/732,020, filed Dec. 10, 2003.
- Nguyen, T,Office Actions for U.S. Appl. No. 11/197,964, filed Aug. 5, 2005.
- Nguyen, T,Office Actions for U.S. Appl. No. 11/197,933, filed Aug. 5, 2005.
- Nguyen. T,Office Actions for U.S. Appl. No. 11/197,998, filed Aug. 5, 2005.
- Patel, D,Office Actions for U.S. Appl. No. 10/73027, filed Dec. 8, 2003.
- Patel, D,Office Actions for U.S. Appl. No. 11/226,593, filed Sep. 14, 2005.
- Patel, D,Office Actions for U.S. Appl. No. 11/234,987, filed Sep. 26, 2005.
- Patel, D,Office Actions for U.S. Appl. No. 11/245,577, filed Oct. 7, 2005.
- Whipple, B,Office Actions for U.S. Appl. No. 10/685,860, filed Oct. 15, 2003.
- Nguyen, T, Office Actions filed after Mar. 31, 2009 for U.S. Appl. No. 10/207,711, filed Jul. 26, 2002.
- Nguyen, T, Office Actions filed after Mar. 31, 2009 for U.S. Appl. No. 10/732,020, filed Dec. 10, 2003.
- Nguyen, T, Office Actions filed after Mar. 31, 2009 for U.S. Appl. No. 11/197,964, filed Aug. 5, 2005.
- Nguyen, T, Office Actions filed after Mar. 31, 2009 for U.S. Appl. No. 11/197,933, filed Aug. 5, 2005.
- Nguyen, T, Office Actions filed after Mar. 31, 2009 for U.S. Appl. No. 11/197,998, filed Aug. 5, 2005.
- Patel, D, Office Actions filed after Mar. 31, 2009 for U.S. Appl. No. 10/730,227, filed Dec. 8, 2003.
- Patel, D, Office Actions filed after Mar. 31, 2009 for U.S. Appl. No. 11/226,593, filed Sep. 14, 2005.
- Patel, D, Office Actions filed after Mar. 31, 2009 for U.S. Appl. No. 11/234,987, filed Sep. 26, 2005.
- Patel, D, Office Actions filed after Mar. 31, 2009 for U.S. Appl. No. 11/245,577, filed Oct. 7, 2005.
- Whipple, B, Office Actions filed after Mar. 31, 2009 for U.S. Appl. No. 10/685,860, filed Oct. 15, 2003.
- Patel, Dhairya A, Final Action dated Feb. 22, 2010 for U.S. Appl. No. 10/730,227, filed Dec. 8, 2003.
- Patel, Dhairya A, Final Rejection dated Jul. 22, 2010 for U.S. Appl. No. 11/245,577, filed Oct. 7, 2005.
- Patel, Dhairya A, Rejection dated Aug. 18, 2010 for U.S. Appl. No. 10/730,227, filed Dec. 8, 2003.
- Patel, Dhairya A, Advisory Action dated Sep. 13, 2010 for U.S. Appl. No. 11/234,987, filed Sep. 26, 2005.
- Patel, Dhairya A, Advisory Action dated Oct. 5, 2010 for U.S. Appl. No. 11/245,577, filed Oct. 7, 2005.
- Patel, Dhairya A, Final Office Action dated Dec. 23, 2010 for U.S. Appl. No. 10/730,227, filed Dec. 8, 2003.
- Patel, Dhairya A, Office Action dated Feb. 2, 2011 for U.S. Appl. No. 10/685,860, filed Oct. 15, 2003.
- Patel, Dhairya A, Examiner's Answer, Feb. 16, 2011 for U.S. Appl. No. 11/234/987, filed Sep. 26, 2005.
Type: Grant
Filed: Jul 26, 2002
Date of Patent: Sep 1, 2015
Patent Publication Number: 20040019637
Assignee: International Business Machines Corporation (Armonk, NY)
Inventors: Brian D. Goodman (New Haven, CT), Konrad C. Lagarde (Milford, CT), Eben P. Stewart (Hamden, CT), Michael Van Der Meulen (Woodbridge, CT), Jessica Wu (Danbury, CT)
Primary Examiner: Dhairya A Patel
Application Number: 10/207,685
International Classification: G06F 15/16 (20060101); H04L 12/58 (20060101); H04L 29/06 (20060101);