INTELLIGENTLY DETECTING THE LEADER OF A CO-BROWSING SESSION
Managing a co-browsing session of multiple users where there are multiple roles that each user may have, and each respective user has a role. Software manages a computer system to: (i) monitor the co-browsing session to detect a condition; and (ii) responsive to detection of the condition, change the role(s) of at least one user. The change of role(s) is made automatically and without human intervention.
Latest IBM Patents:
The present invention relates generally to the field of co-browsing web sessions where the co-browsers act in various “roles,” and more specifically to co-browsing web sessions where at least one co-browser has the role of “leader.”
BACKGROUND OF THE INVENTIONOnline communications are an important collaboration technique for real time collaboration, which is also known as chat communications, and information sharing between individuals. In a real time collaboration (also referred to as a collaborative browsing session or co-browsing session), participants each participate on respective computers and communicate with each other through a network. Although chat sessions may include a large group of participants, chat sessions may consist of as few as two participants. Chat sessions are utilized for a variety of different types of environments. For example chat sessions may be used for customer service support, business consultation, academic meetings, and more. These chat sessions provide a quick means to exchange information which may be difficult to exchange through more traditional avenues of real time collaboration. It is common for participants to discuss specific content, such as a webpage or document, in an online chat. In this scenario, a participant may send a uniform resource locater (URL) to the other participants in the chat session, and may focus the chat on a specific section of content in the webpage.
It is known to have co-browsing chat sessions where multiple users (see the DEFINITIONS sub-section of the DETAILED DESCRIPTION section) co-operatively browse a computer network, such as the internet. These co-browsing sessions: (i) may be performed through a “chat type” interface; (ii) are usually co-operative in nature; (iii) may have different predesignated “roles” for the co-browser users; (iv) may use a system of roles that includes the roles of “leader” and “non-leader;” and/or (v) may allow only one user to assume the role of leader at any given time during the co-browsing session. For co-browsing systems with leaders, it is a known technique to change the leader of the session by a specific and overt request from one of the users of the co-browsing session.
SUMMARYAccording to an aspect of the present invention, there is a method for managing a co-browsing session of multiple users where each respective user has at least one role selected from a set of at least two possible roles. The method includes the following steps (not necessarily in the following order): (i) monitoring the co-browsing session to detect a condition; and (ii) responsive to detection of the condition, changing the role(s) of at least one user. At the changing step, the change of role(s) is made automatically and without human intervention. At least the changing step is performed by computer software running on computer hardware.
According to a further aspect of the present invention, there is a method of allocating a leader of a collaborative browsing session that includes a multiple users, including a first user. The users interactively access a computer network to perform the collaborative browsing session. The method includes the following steps (not necessarily in the following order): (i) detecting a hierarchical relationship between and among the users; and (ii) assigning at least one role, of a plurality of possible roles, with respect to the collaborative browsing session to the first user based, at least in part, upon the hierarchical relationship.
The DETAILED DESCRIPTION section will be divided into the following sub-sections: (i) The Hardware and Software Environment; (ii) Operation of Embodiment(s) of the Present Invention; and (iii) Definitions.
I. THE HARDWARE AND SOFTWARE ENVIRONMENTAs will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer-readable medium(s) having computer readable program code/instructions embodied thereon.
Any combination of computer-readable media may be utilized. Computer-readable media may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of a computer-readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer-readable signal medium may include a propagated data signal with computer-readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer-readable signal medium may be any computer-readable medium that is not a computer-readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java (note: the term(s) “Java” may be subject to trademark rights in various jurisdictions throughout the world and are used here only in reference to the products or services properly denominated by the marks to the extent that such trademark rights may exist), Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on a user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The present invention will now be described in detail with reference to the Figures.
As shown in
Server computer sub-system 102 may be a laptop computer, tablet computer, netbook computer, personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with the client sub-systems via network 114. Software 240 is a representative software module, and is a collection of machine readable instructions and data that is used to create, manage and control certain software functions that will be discussed in detail below.
Server computer sub-system 102 is capable of communicating with other computer sub-systems via network 114 (see
It should be appreciated that
As shown in
Memory 208 and persistent storage 210 are computer-readable storage media. In general, memory 208 can include any suitable volatile or non-volatile computer-readable storage media. It is further noted that, now and/or in the near future: (i) external device(s) 214 may be able to supply, some or all, memory for sub-system 102; and/or (ii) devices external to sub-system 102 may be able to provide memory for use by sub-system 102.
Software module 240 is in many respects representative of the various software modules of the present invention and is stored in persistent storage 210 for access and/or execution by one or more of the respective computer processors 204, usually through one or more memories of memory 208. Persistent storage 210 is at least more persistent than a signal in transit is, but the persistent storage may, of course, be substantially less persistent than permanent storage. Mod 240 may include both machine readable and performable instructions and/or substantive data (that is, the type of data stored in a database). In this particular embodiment, persistent storage 210 includes a magnetic hard disk drive. To name some possible variations, persistent storage 210 may include a solid state hard drive, a semiconductor storage device, read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, or any other computer-readable storage media that is capable of storing program instructions or digital information.
The media used by persistent storage 210 may also be removable. For example, a removable hard drive may be used for persistent storage 210. Other examples include optical and magnetic disks, thumb drives, and smart cards that are inserted into a drive for transfer onto another computer-readable storage medium that is also part of persistent storage 210.
Communications unit 202, in these examples, provides for communications with other data processing systems or devices external to sub-system 102, such as client sub-systems 106, 108, 110, 112. In these examples, communications unit 202 includes one or more network interface cards. Communications unit 202 may provide communications through the use of either or both physical and wireless communications links. Any software modules discussed herein may be downloaded to a persistent storage device (such as persistent storage device 210) through a communications unit (such as communications unit 202).
I/O interface(s) 206 allows for input and output of data with other devices that may be connected locally in data communication with server computer 200. For example, I/O interface 206 provides a connection to external device set 214. External device set 214 will typically include devices such as a keyboard, keypad, a touch screen, and/or some other suitable input device. External device set 214 can also include portable computer-readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention, for example, mod 240, can be stored on such portable computer-readable storage media. In these embodiments the relevant software may (or may not) be loaded, in whole or in part, onto persistent storage device 210 via I/O interface set 206. I/O interface set 206 also connects in data communication with display device 212.
Display device 212 provides a mechanism to display data to a user and may be, for example, a computer monitor or a smart phone display screen.
The programs described herein are identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature herein is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
II. OPERATION OF EMBODIMENT(S) OF THE PRESENT INVENTIONTurning now to
Processing begins at step S401 where computer system 100 (see
Processing proceeds to step S402 where initiate s-m 302 (see
At the time of the initiation of S402, user A (who started the co-browsing session) and users B and C are present, but user D (who happens to be the manager of A, B and C) is not yet present because she has been held up in an important business meeting. In the session covered by process 400 of
Alternative embodiments of the present invention may have different roles than the leader/non-leader roles of the present invention. As just one example, an alternative co-browsing system might have the following roles: (i) web page chooser, who chooses the web page active for the co-browsing session on an ongoing basis; (ii) spokesperson, who is responsible for typing in information into the co-browsing web page if it requires information to be provided by the user(s); (iii) highlighter, who highlights portions of the co-browsing web page on an ongoing basis in order to direct attention of the co-browsers to appropriate portions of the co-browsing web page; (iv) chatting observer; and (v) non-chatting observer. As will be appreciated from this example: (i) there may be more than two “roles;” and (ii) a single user may occupy more than one role at a time (depending upon how the role is designed by the system designer).
Processing proceeds to step S403 where co-browse sub-mod 312 (see
As shown in
As shown in
Returning to
The applicable conditions, to be detected by s-s-m 322, are defined by condition definition s-s-m 320. In this example, the conditions that will cause an automatic change in leader (that is, the conditions that may be detected at step S407) are as follows: (i) text analysis on chat or conference transcript indicates that a change in leaders would be helpful; (ii) a non-leader participant has a web page open that is deemed more relevant than the co-browsing web page chosen by the leader; (iii) a non-leader participant highlights information on the co-browsing web page; (iv) a newly-joining participant, who meets predetermined leadership criteria, joins an ongoing co-browsing session; (v) passage of time; (vi) predetermined scheduling of leader changes; (vii) calendar information for the leader; and/or (viii) combinations of the forgoing conditions. This list of conditions is just one possible example and does not reflect all possible conditions that a system designer may choose in order to cause a responsive change in leadership. The various conditions on this list will each be discussed below in more detail after discussion of steps S405 and S406.
If a leader change condition is not detected at step S407 then processing proceeds back to step S403. If a leader change condition is detected at step S407, then processing proceeds instead to step S405, where the participant in the leader role is automatically changed by effect change s-s-m 324 (see
As shown in
Eight (8) examples of possible leadership change conditions were identified above in the discussion of step S407. These leadership change conditions will now be discussed in more detail in the following paragraphs.
Condition (i): text analysis on chat or conference transcript indicates that a change in leaders would be helpful.
With respect to condition (i), the text analysis could be “text analytics,” or it could be a form of analysis less formal and/or analytically rigorous than proper text analytics.
Condition (ii): a non-leader participant has a web page open that is deemed more relevant than the co-browsing web page chosen by the leader.
Moving to
Condition (iii): a non-leader participant highlights information on the co-browsing web page. This condition is not shown in any of the screenshots 500a, b, c, but it means that a change would occur when one of the non-leader participants uses her I/O device to highlight, or otherwise draw attention to, something on a web page that is being co-browsed. In some embodiments, the role of highlighter may be separate from the role of leader. In a further variation, it may be that a non-leader highlighter needs to highlight repeatedly or frequently (according to some pre-defined standard for repeatedness and/or frequency) before the leadership role actually switches, as contrasted with a simpler scheme where a single instance of highlighting is sufficient to cause a role switch.
Condition (iv): a newly-joining participant, who meets predetermined leadership criteria, joins an ongoing co-browsing session. As shown by chat windows 504 and 512, in the example of
Condition (v): passage of time. To explain more fully, a co-browsing session has a leader for a set period of time, and then the leader is automatically changed when that set period is exhausted. This condition may be useful for adversarial co-browsing sessions like debates and/or negotiations. In a variation on this condition, a leader's term could be measured in mouseclicks, number of pages visited, number of chat comments generated, or the like, rather than, or in addition to the mere passage of time.
Condition (vi): predetermined scheduling of leader changes. The co-browsers could, prior to the start of a co-browsing session, schedule who is to be a leader during the co-browsing session as it progresses. For example, user A could be scheduled as leader from 1:00 pm to 1:15 pm, followed by user C from 1:15 pm, followed by user D from 1:45 pm to the end of the schedule co-browsing session at 2:00 pm.
Condition (vii): calendar information for the leader. For this example, the co-browsing software would access the “calendar information” of various users. If a user's calendar showed that a conflict would occur between an item (for example, a meeting, a scheduled teleconference) on that user's calendar and the co-browsing session, then this could be used as a condition to automatically change the leader from the user with the conflict to one of the other users who does not have such a conflict. This change might automatically occur, for example, five (5) minutes before the conflict would spring into existence; and/or
Condition (viii) combinations of the forgoing conditions. A system designer could use various combinations, or sub-combinations, of the foregoing conditions (as well as other possible conditions not appearing on this non-exclusive list) in order to build relatively complex algorithms for determining which user appears to be best suited for the role of leader (or other predetermined role) at any given time during the chat. As a simple example, leadership changes based on highlighting (see Condition (iii), above) could be prevented if the current leader is in a higher pay category than the user who is doing the highlighting.
Although the foregoing embodiment(s) of the present invention have been discussed in terms of the role of “leader,” other embodiments of the present invention may help change co-browsers between other role(s), other than leader/non-leader.
The flowchart and block diagrams in the foregoing Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
III. DEFINITIONSPresent invention: should not be taken as an absolute indication that the subject matter described by the term “present invention” is covered by either the claims as they are filed, or by the claims that may eventually issue after patent prosecution; while the term “present invention” is used to help the reader to get a general feel for which disclosures herein that are believed as maybe being new, this understanding, as indicated by use of the term “present invention,” is tentative and provisional and subject to change over the course of patent prosecution as relevant information is developed and as the claims are potentially amended.
Embodiment: see definition of “present invention” above—similar cautions apply to the term “embodiment.”
And/or: non-exclusive or; for example, A and/or B means that: (i) A is true and B is false; or (ii) A is false and B is true; or (iii) A and B are both true.
User: includes, but is not necessarily limited to, the following: (i) a single individual human; (ii) an artificial intelligence entity with sufficient intelligence to act as a user; and/or (iii) a group of related users.
Role(s): one or more roles.
Claims
1. A method for managing a co-browsing session of multiple users where each respective user has at least one role selected from a set of at least two possible roles, the method comprising:
- monitoring the co-browsing session to detect a condition; and
- responsive to detection of the condition, changing the role(s) of at least one user;
- wherein:
- at the changing step, the change of role(s) is made automatically and without human intervention; and
- at least the changing step is performed by computer software running on computer hardware.
2. The method of claim 1 wherein the set of possible roles includes the following possible roles:
- leader role; and
- non-leader role.
3. The method of claim 1 wherein the condition is based upon one of the following: (i) a text analysis on chat or conference transcript; (ii) a web page is opened by one of the users; (iii) highlighting performed by one of the users; (iv) joining of the co-browsing session by a new user; (v) passage of time; (vi) predetermined scheduling of role changes; or (vii) calendar information of at least one user.
4. A computer program product for managing a co-browsing session of multiple users where each respective user has at least one role selected from a set of at least two possible roles, the computer program product comprising:
- one or more computer-readable storage media; and
- program instructions stored on the one or more computer-readable storage media;
- wherein:
- the program instructions include program instructions to: (i) monitor the co-browsing session to detect a condition, and (ii) responsive to detection of the condition, change the role(s) of at least one user; and
- the program instructions related to changing the role(s) of at least one user are programmed to change the role(s) automatically and without human intervention.
5. The product of claim 4 wherein the set of possible roles includes the following possible roles:
- leader role; and
- non-leader role.
6. The product of claim 4 wherein the condition is based upon one of the following: (i) a text analysis on chat or conference transcript; (ii) a web page is opened by one of the users; (iii) highlighting performed by one of the users; (iv) joining of the co-browsing session by a new user; (v) passage of time; (vi) predetermined scheduling of role changes; or (vii) calendar information of at least one user.
7. A method of allocating a leader of a collaborative browsing session that includes a plurality of users, including a first user, with the plurality of users interactively accessing a computer network to perform the collaborative browsing session, the method comprising:
- detecting a hierarchical relationship between and among the users; and
- assigning at least one role, of a plurality of possible roles, with respect to the collaborative browsing session to the first user based, at least in part, upon the hierarchical relationship.
8. The method of claim 7 wherein:
- at the detecting step, the first user is detected as being a highest ranked user in the hierarchical relationship of the plurality of users; and
- at the assigning step, based upon the detection of the first user as the highest ranked user, the first user is assigned to a role of leader of the collaborative browsing session.
Type: Application
Filed: Feb 18, 2013
Publication Date: Aug 21, 2014
Patent Grant number: 9313282
Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION (Armonk, NY)
Inventor: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application Number: 13/769,492
International Classification: H04L 12/26 (20060101);