`Glasser et al.
`
`US006519639B1
`US 6,519,639 B1
`Feb. 11,2003
`
`(10) Patent N0.:
`(45) Date 0f Patent:
`
`(54) SYSTEM AND METHOD FOR ACTIVITY
`EATNVBOIEEIEORTING IN A
`
`Primary Examiner—Moustafa M. Meky
`(74) Attorney, Agent, or F irm—Woodcock Washburn LLP
`
`(75) Inventors: Daniel S. Glasser, Seattle, WA (US);
`Stephen M. Li?ick, Seattle, WA (US)
`
`ABSTRACT
`
`57
`(
`)
`-
`-
`-
`-
`-
`-
`A
`system for momtormg user activity in an mstant messag
`(73) Assignee; Microsoft Corporation, Redmond, WA ing session on a computer network periodically sends an
`(US)
`activity message to other participants in the instant messag
`f th,
`th t
`d, 1 _
`S b, t t
`ing session if the user has actively entered data during a ?rst
`u ec 0 an 1sc a1mer, e erm o
`is
`_
`_
`_
`_
`_
`patelnt is eXtZnded or adjusted under 35
`predetermined time mterval. The system periodically sends
`U_S,C, 154(b) by 0 days,
`a neW activity message at intervals corresponding to the ?rst
`predetermined time interval so long as the user is actively
`entering data during each time interval. If the user has not
`entered data during the ?rst predetermined time interval, the
`system Will not send an activity message. Other participants
`in the instant messa in Session receive the activit messa e
`g g
`y
`g
`and generate an acnvlty_n_ldlcator or} Fhelr respect“? (115‘
`plays. The computer receiving the activity message displays
`an activity indicator on the computer display in response to
`receipt of an activity message and starts a timer to measure
`a second predetermined time interval. If another activity
`message is not received Within the second predetermined
`
`( * ) N t,
`0 ice:
`
`(21) APPL NOJ 09/359,337
`(22) Filed:
`Jul_ 21’ 1999
`51
`I t C] 7
`.............................................. ..
`(
`)
`n .
`.
`709/224- 709/204- 709/205
`(52) U s C]
`(58) Field of Search ............................... .. 709/200, 201,
`709/203, 217, 218, 219, 223, 224, 227,
`228, 229, 204
`
`G06F 13/00
`
`(56)
`
`_
`References Clted
`U.S. PATENT DOCUMENTS
`
`6260148 B1 * 7/2001 Aggalwal et aL ________ __ 713/201
`6,288,715 B1 * 9/2001 Bain et a1. ................ .. 345/211
`6,301,609 B1 * 10/2001 Aravamudan et a1. .... .. 709/207
`
`time interval, the activity indicator is deleted from the
`display.
`
`* cited by examiner
`
`54 Claims, 6 Drawing Sheets
`
`150
`
`Establish / 152
`communication link
`
`Us
`entered data
`
`Send activity message
`
`f 155
`
`f 160
`
`Start timer
`
`User-entered
`data
`'2
`
`Set activity ?ag
`
`f 164
`
`Facebook and WhatsApp Exhibit No. 1005
`Page 1
`
`
`
`Facebook and WhatsApp Exhibit No. 1005
`Page 2
`
`
`
`U.S. Patent
`
`Feb. 11, 2003
`
`Sheet 2 0f 6
`
`US 6,519,639 B1
`
`/ 21
`
`f 36
`
`CPU
`
`4
`
`>4
`
`>
`
`DISPLAY
`
`/ 22
`
`MEMORY
`
`‘
`
`"
`
`f 102
`
`USER INPUT
`DEVICE
`
`/ 106
`
`TIMERS
`
`"
`
`f 104
`
`USER ACTIVITY
`MONITOR
`
`/ 108
`
`f 40
`
`MESSAGE
`PROCESSOR
`
`‘
`" \
`23
`
`‘
`'
`
`NETWORK
`INTERFACE
`
`Fig. 2
`
`Facebook and WhatsApp Exhibit No. 1005
`Page 3
`
`
`
`Facebook and WhatsApp Exhibit No. 1005
`Page 4
`
`
`
`U.S. Patent
`
`Feb. 11,2003
`
`Sheet 4 6f 6
`
`US 6,519,639 B1
`
`150
`
`Establish
`communication link
`
`_/ 152
`
`@ A:
`
`154
`
`User
`entered data
`f)
`
`Send activity message
`
`f 156
`
`i
`
`Start timer
`
`f 160
`
`V
`
`Set activity flag
`
`User-entered
`data
`
`Fig. 4A
`
`Facebook and WhatsApp Exhibit No. 1005
`Page 5
`
`
`
`U.S. Patent
`
`Feb. 11,2003
`
`Sheet 5 6f 6
`
`US 6,519,639 B1
`
`Generate and send _/ 172
`activity message to all
`recipients
`
`i
`
`_/ 174
`
`Reset activity flag
`
`Fig. 4B
`
`Facebook and WhatsApp Exhibit No. 1005
`Page 6
`
`
`
`U.S. Patent
`
`Feb. 11, 2003
`
`Sheet 6 0f 6
`
`US 6,519,639 B1
`
`Start
`
`200
`
`‘
`Establish
`communication
`link
`
`_/ 20?
`
`/204
`
`Start timer
`
`Receive activity
`message
`
`Delete activity
`indicator
`
`V
`
`Display activity
`indicator
`
`_/-210
`
`Fig. 5
`
`Facebook and WhatsApp Exhibit No. 1005
`Page 7
`
`
`
`US 6,519,639 B1
`
`1
`SYSTEM AND METHOD FOR ACTIVITY
`MONITORING AND REPORTING IN A
`COMPUTER NETWORK
`
`TECHNICAL FIELD
`
`The present invention is related generally to computer
`networks and, more particularly, to a system and method for
`monitoring user activity and reporting the same in a com
`puter netWork.
`
`BACKGROUND OF THE INVENTION
`
`Computer networks, such as the Internet, are extensively
`used for storage and retrieval of a vast reservoir of infor
`mation. Person-to-person communication, in the form of
`electronic mail (e-mail), has also become Widely accepted as
`a replacement for conventional mail and facsimile. Any
`individual Who has access to the Internet can establish an
`e-mail account and communicate With other individuals on
`the Internet.
`A neW form of e-mail communication, knoWn as instant
`messaging, is gaining popularity among users of the Inter
`net. As shoWn in a recent popular movie, “You’ve Got
`Mail,” tWo individuals can engage in an ongoing electronic
`communication Without the need for entering the message
`recipient’s e-mail address for each individual transmission.
`The advantage of instant messaging is that tWo or more
`individuals may engage in an ongoing electronic “chat” by
`simply typing the message on the keyboard and pressing the
`“Enter” button on the computer keyboard or by clicking on
`a “Send” icon on the computer display screen.
`Unlike telephonic communication, When participants
`knoW that a person is speaking, participants in an instant
`messaging session do not knoW that somebody is preparing
`a message for transmission. Without a cue that the other
`person is transmitting information, it is difficult to have a
`smooth conversational ?oW. One mechanism that addresses
`this problem is employed by a UNIX “talk” program, Which
`performs a character-by-character transmission of an instant
`message. That is, each time individual types of a single
`character on the computer keyboard, that character is trans
`mitted to all other participants in the instant messaging
`session. Because other participants are essentially Watching
`the person type, there are clear cues that a user is “talking.”
`HoWever, this approach has several limitations. First,
`character-by-character transmission greatly increases the
`How of netWork traf?c because each character requires one
`or more data packets to be sent to each participant in the
`instant messaging session. In addition, many users do not
`like to be “Watched” as they type, as their typing errors and
`incomplete thoughts are transmitted before they can be
`corrected. Finally, message recipients are often distracted by
`Watching the ?ickering screen in Which characters appear
`one time as a complete message is formed. Therefore, it can
`be appreciated that there is a signi?cant need for a system
`and method that Will provide the desired noti?cation of user
`activity in a computer netWork. The present invention pro
`vides this, and other advantages, as Will be apparent from the
`folloWing detailed description and accompanying ?gures.
`
`15
`
`25
`
`35
`
`45
`
`55
`
`SUMMARY OF THE INVENTION
`
`The present invention is embodied in a system and
`method for detecting user operation of a user input device
`and providing an activity noti?cation to other computers in
`a computer netWork. This is particularly useful in an instant
`
`65
`
`2
`messaging session Where tWo or more participants may be
`preparing messages for other participants in the instant
`messaging session. The system comprises a user input
`device, such as a keyboard, microphone, mouse, or the like,
`and an activity monitor to detect user activation of the user
`input device. The activity monitor Will generate a signal
`indicative of user activation of the input device. A timer
`measures a ?rst predetermined time interval and, if user
`activity is detected Within the ?rst predetermined time
`interval, a message processor generates an activity message
`at the end of the ?rst predetermined time interval and
`transmits the activity message to at least one recipient With
`Whom the user is communicating via the computer netWork.
`When the user initially activates the user input device to
`begin composing a message, the activity message processor
`can immediately send an activity message Without Waiting
`for the expiration of the ?rst predetermined time interval. So
`long as user activity continues to occur in each subsequent
`?rst predetermined time interval, an activity message is sent
`to the at least one recipient at the end of each time interval.
`If no user activity occurs during a particular time interval,
`the activity message processor Will not send an activity
`message at the end of that time interval. If the user subse
`quently begins activity on the user input device again, the
`activity message processor can send an immediate activity
`message or, alternatively, Wait for the expiration of the ?rst
`predetermined time interval to send the activity message.
`The recipient receives and processes the activity message
`to thereby generate an activity indicator, Which may be
`conveniently displayed on the computer display. The activity
`indicator may be in the form of a textual status message, a
`graphical icon, or a combination of the tWo. In this manner,
`the user of the recipient machine is aWare that another
`individual is actively preparing a message for transmission
`via the computer netWork.
`Since the activity message is only transmitted When a user
`is actively operating the user input device, the recipient
`computer must have a Way of determining When some other
`user is no longer active. The recipient computer uses a timer
`to measure a second predetermined time interval. In one
`embodiment, the second predetermined time interval is
`longer than the ?rst predetermined time interval. If an
`activity message is not received Within the second prede
`termined time interval, the recipient machine can delete the
`activity indicator from the display, thereby providing the
`user of the recipient computer With an indication that the
`other participant is no longer actively entering data on their
`user input device. In this manner, the recipient machine does
`not rely on any status message indicating nonactivity, but
`simply presumes that a nonactive status is appropriate if a
`subsequent activity message is not received. This technique
`also minimiZes processing of activity messages by the
`recipient computer since only the ?rst activity message need
`result in a display of the activity indicator. If subsequent
`activity messages are received Within the second predeter
`mined time interval, the recipient computer does not need to
`alter the display to indicate the continued active status. If the
`activity message is not received Within the second prede
`termined time interval, the recipient computer can delete the
`status indicator from the display. Alternatively, the message
`sender can de?ne the second predetermined time interval by
`sending data Within the text message and/or the activity
`message. This programmability alloWs the sender to alter the
`predetermined time period.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 illustrates a computer system that includes com
`ponents to implement the system of the present invention.
`
`Facebook and WhatsApp Exhibit No. 1005
`Page 8
`
`
`
`US 6,519,639 B1
`
`3
`FIG. 2 is a functional block diagram of computer system
`components used to implement the system of the present
`invention.
`FIG. 3 is a functional block diagram illustrating the
`operation of the system of FIG. 2 for multiple participants in
`instant messaging session.
`FIGS. 4A and 4B together form a ?oWchart illustrating the
`operation of the system to monitor user input and to generate
`and transmit a user activity message.
`FIG. 5 is a ?oWchart illustrating the operation of the
`system to receive and process user activity messages.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`FIG. 1 and the folloWing discussion are intended to
`provide a brief, general description of a suitable computing
`environment in Which the invention may be implemented.
`Although not required, the invention Will be described in the
`general context of computer-executable instructions, such as
`program modules, being executed by a personal computer.
`Generally, program modules include routines, programs,
`objects, components, data structures, etc. that perform par
`ticular tasks or implement particular abstract data types.
`Moreover, those skilled in the art Will appreciate that the
`invention may be practiced With other computer system
`con?gurations, including hand-held devices, multiprocessor
`systems, microprocessor-based or programmable consumer
`electronics, netWork PCs, minicomputers, mainframe
`computers, and the like. The invention may also be practiced
`in distributed computing environments Where tasks are
`performed by remote processing devices that are linked
`through a communications netWork. In a distributed com
`puting environment, program modules may be located in
`both local and remote memory storage devices.
`With reference to FIG. 1, an exemplary system for imple
`menting the invention includes a general purpose computing
`device in the form of a conventional personal computer 20,
`including a central processing unit (CPU) 21, a system
`memory 22, and a system bus 23 that couples various system
`components including the system memory to the processing
`unit 21. The system bus 23 may be any of several types of
`bus structures including a memory bus or memory
`controller, a peripheral bus, and a local bus using any of a
`variety of bus architectures. The system memory 22 includes
`read only memory (ROM) 24 and random access memory
`(RAM) 25. Abasic input/output system 26 (BIOS), contain
`ing the basic routines that helps to transfer information
`betWeen elements Within the personal computer 20, such as
`during start-up, may be stored in ROM 24.
`The personal computer 20 further includes input/output
`devices 27, such as a hard disk drive 28 for reading from and
`Writing to a hard disk, not shoWn, a magnetic disk drive 29
`for reading from or Writing to a removable magnetic disk 30,
`and an optical disk drive 31 for reading from or Writing to
`a removable optical disk 32 such as a CD ROM or other
`optical media. The hard disk drive 28, magnetic disk drive
`29, and optical disk drive 31 are connected to the system bus
`23 by a hard disk drive interface 33, a magnetic disk drive
`interface 34, and an optical drive interface 35, respectively.
`The drives and their associated computer-readable media
`provide nonvolatile storage of computer readable
`instructions, data structures, program modules and other
`data for the personal computer 20. Although the exemplary
`environment described herein employs a hard disk, a remov
`able magnetic disk 30 and a removable optical disk 32, it
`should be appreciated by those skilled in the art that other
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`4
`types of computer readable media Which can store data that
`is accessible by a computer, such as magnetic cassettes, ?ash
`memory cards, digital video disks, Bernoulli cartridges,
`random access memories (RAMs), read only memories
`(ROM), and the like, may also be used in the exemplary
`operating environment. Other I/O devices 27, such as a
`display 36, keyboard 37, mouse 38, sound board 39 may be
`included in the personal computer 20 and operate in a knoWn
`manner. Still other I/O devices 27, such as a joystick,
`speakers and the like may also be included in the personal
`computer 20. For the sake of brevity, these components are
`not illustrated in FIG. 1.
`The personal computer 20 may also include a netWork
`interface 40 to permit operation in a netWorked environment
`using logical connections to one or more remote computers,
`such as a remote computer 41. The remote computer 41 may
`be another personal computer, a server, a router, a netWork
`PC, a peer device or other common netWork node, and
`typically includes many or all of the elements described
`above relative to the personal computer 20, although only a
`memory storage device 42 has been illustrated in FIG. 1. The
`logical connections depicted in FIG. 1 include a local area
`netWork (LAN) 43 and a Wide area netWork
`44. Such
`netWorking environments are commonplace in of?ces,
`enterprise-Wide computer netWorks, intranets and the Inter
`net.
`When used in a LAN netWorking environment, the per
`sonal computer 20 is connected to the LAN 43 through the
`netWork interface 40. When used in a WAN netWorking
`environment, the personal computer 20 typically includes a
`modem 45 or other means for establishing communications
`over the WAN 44, such as the Internet. The modem 45,
`Which may be internal or external, permits communication
`With remote computers 46—50. In a netWorked environment,
`program modules depicted relative to the personal computer
`20, or portions thereof, may be stored in the remote memory
`storage device 42 via the LAN 51 or stored in a remote
`memory storage device 52 via the WAN 44. It Will be
`appreciated that the netWork connections shoWn are exem
`plary and other means of establishing a communications link
`betWeen the computers may be used.
`The present invention is embodied in the system 100
`illustrated in the functional block diagram of FIG. 2. For the
`sake of clarity, some components illustrated in FIG. 1 are not
`shoWn in FIG. 2 because they do not relate directly to the
`implementation of the system 100. Some components illus
`trated in FIG. 2 are actually implemented by a series of
`instructions stored in the system memory 22 and executed
`by the CPU 21. HoWever, for the sake of clarity, each of
`these components is illustrated as a separate block into block
`diagram because each performs a separate function.
`In addition to the CPU 21 and the system memory 22, the
`system 100 includes the display 36 and netWork interface 40,
`Which are all coupled together by the system bus 23. The
`system 100 can use the modem 45 (see FIG. 1) in place of
`or in addition to the netWork interface 40. HoWever, for the
`sake of brevity, the present description Will refer to the
`netWork interface 40. In addition to these components, the
`system 100 includes a user input device 102, such as the
`keyboard 37. HoWever, as Will be described beloW, the user
`input device 102 may take other forms, such as the mouse
`38 or an audio input device 122 (see FIG. 3) coupled to the
`sound board 39 and speech recognition softWare program.
`A user activity monitor 104 detects user operation of the
`user input device 102 and generates signals in response
`thereto. A timer 106 operates in conjunction With the user
`
`Facebook and WhatsApp Exhibit No. 1005
`Page 9
`
`
`
`US 6,519,639 B1
`
`5
`activity monitor 104 to measure a time period since the last
`user activity. A typical computer 20 (see FIG. 1) includes
`several timers, Which may be part of the CPU 21. The use
`of one or more timers 106 in the system 100 is described in
`greater detail beloW. The programming instructions to oper
`ate the timers 106 to measure one or more predetermined
`time periods is Well knoWn and need not be described herein.
`Amessage processor 108 forms one or more data packets
`for transmission on the LAN 43 (see FIG. 1) or WAN 44
`using the netWork interface 40. The message processor 108
`may send user-entered data, such as a message typed in by
`the user on the keyboard 37. The formation of data packets
`to send text messages over a computer netWork is Within the
`knoWledge of one skilled in the art in need not be described
`in greater detail herein. In addition, the message processor
`108 transmits user activity messages via the netWork inter
`face 39. The formation of activity messages and content
`thereof Will be described in greater detail beloW.
`The message processor 108 also processes data packets
`received from a remote computing platform. For example,
`the message processor 108 receives and processes data
`packets received from another participant in an instant
`messaging session, including text messages and activity
`messages. The operation of the message processor 108 to
`receive and process text messages is knoWn to those skilled
`in the art and need not be described in detail herein. The
`operation of the system 100 for received activity messages
`Will be described in greater detail beloW.
`The system 100 monitors user activity during the instant
`messaging session and sends periodic activity messages to
`other participants in the instant messaging session. In one
`embodiment, the timer 106 measures a ?rst predetermined
`time period and, if user activity of the user input device 102
`occurred Within the ?rst predetermined time period, the
`message processor 108 automatically generates an activity
`message and transmits it to the other participants in the
`instant messaging session. Thus, each participant in the
`instant messaging session is aWare that another participant is
`actively communicating. For example, the timer 106 can
`measure ?ve second intervals. During each ?ve second
`interval, the user activity monitor 104 monitors the user
`input device 102 and detects user at operation or activation
`thereof. If user activity occurred Within the ?ve second
`interval, the message processor 108 Will generate an activity
`message and transmit it over the netWork interface 40 to
`each participant in the instant messaging session.
`The user activity monitor 104 is typically a series of
`computer instructions stored in the system memory 22 and
`executed by the CPU 21. One example of a user activity
`monitor is a computer screen saver, Which blanks or other
`Wise alters data for the display 36 if the user does not
`activate the keyboard 37 or the mouse 38 for some prede
`termined delay time, such as, by Way of example, ten
`minutes. Each time the screen saver program detects user
`activity, it resets the timer. The primary difference betWeen
`the user activity monitor 104 and a screen saver program is
`it that the time period measured by the timer 106 is generally
`much shorter than the typical screen saver delay time.
`Screen saver programs form no part of the present invention,
`but are described as an example of a technique for moni
`toring keyboard activity. The user activity monitor 104 may
`be implemented using similar monitoring techniques, but for
`a shorter time interval, such as ?ve seconds. HoWever, the
`user activity monitor 104 does not alter data for the display
`36 if no activity occurs Within the ?ve second time interval.
`Rather, the message processor 108 does nothing if no
`activity occurs Within the ?ve second time interval and
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6
`generates an activity message if activity does occur Within
`the ?ve second time interval. The user activity monitor 104
`may also be implemented using hardWare interrupts Wherein
`the user activity monitor detects the generation of interrupts
`from I/O devices, such as the keyboard 37 or mouse 38.
`Similarly, the user activity monitor 104 can monitor user
`activity on input devices, such as a joystick (not shoWn) or
`the audio input device 122 (see FIG. 3) of a multi-media
`board, such as the sound board 39.
`As noted above, the message processor 108 Will generate
`and transmit an activity message if user activity Was
`detected during the last time interval measured by the timer
`106. If no user activity Was detected during the last time
`interval, the message processor 108 Will not generate an
`activity message. Thus, the system 100 does not create
`excessive netWork traffic by transmitting a data packet
`corresponding to each character typed by the user, but only
`periodically sends an activity message indicating that the
`user is actively operating user input device 102.
`The user enters data With the user input device 102 (e.g.,
`the keyboard 37) to form a message for transmission. The
`data entered by the user is stored in a buffer, Which is
`typically part of the memory 22. The user can terminate data
`entry and cause the message processor 108 to form data
`packets and transmit the message by activating a selected
`control on the user input device 102. For example, if user
`input device is the keyboard 37, the user types in the desired
`message and presses the “Enter” key on the keyboard.
`Alternatively, the user may terminate the message input
`mode and transmit the text message by manipulating the
`mouse 38 to position a cursor (not shoWn) on a “Send”
`button on the display 36.
`
`Once a text message has been transmitted, the message
`processor 108 Will not transmit additional activity messages
`until the user once again activates the user input device 102
`to generate another text message. If the data entered by the
`user is the start of a text message, the message processor 108
`can generate and transmit an activity message immediately
`rather than Wait for the time interval measured by the timer
`106 to expire. For example, the message processor 108 can
`generate an activity message the ?rst time the user activates
`the keyboard 37 to type a message. Thus, the system can
`provide an immediate activity message When the user begins
`to enter a message (via the user input device 102) and Will
`subsequently send a periodic activity messages at the end of
`time interval measured by the timer 106 so long as user
`activity occurred during the last time interval. Similarly, the
`message processor 108 can immediately send an activity
`message if the user has entered a partial text message into
`the buffer and then stopped entering data for some time
`greater than the ?rst predetermined time interval and sub
`sequently enters additional data into the buffer.
`
`The activity message itself is transmitted in a conven
`tional email form using the multipurpose Internet mail
`extensions (MIME) format. The activity message has the
`folloWing form:
`MIME-Version: 1.0
`Content-Type: text/x-msmsgscontrol
`TypingUser: <name of sending user>
`<blank line>
`<blank line>
`The text message itself is also transmitted in a conven
`tional email form using the MIME format. The text message
`has the folloWing form:
`
`Facebook and WhatsApp Exhibit No. 1005
`Page 10
`
`
`
`US 6,519,639 B1
`
`7
`
`MIME-Version: 1.0
`Content-Type: text/plain; charset=UTF-8
`To: <name of receiving users>
`<blank line>
`<message body>
`Each recipient receives and processes the activity mes
`sages and text messages. The text messages are processed in
`a conventional fashion and need not be described in greater
`detail herein. The activity messages are processed to indicate
`to each recipient that one or more participants in the instant
`messaging session are actively entering data via their respec
`tive user input devices 102.
`FIG. 3 illustrates an instant messaging session betWeen
`three participants. It should be understood that each partici
`pant in the instant messaging session has a computer plat
`form containing the components illustrated in the FIG. 2.
`FIG. 3 illustrates three computers 20, identi?ed as Comput
`ers A—C, Which are each coupled to a computer netWork 120,
`such as the Internet. As those skilled in the art can
`appreciate, the Computers A—C can be coupled to the
`computer netWork 120 by a variety of means, such as the
`modem 45 (see FIG. 1), netWork connections such as an
`Ethernet connection, or any other conventional netWork
`connection. It is further noted that the Computers A—C need
`not have the same type of netWork connection. For example,
`the Computer A may be connected to the computer netWork
`120 via the modem 45 Within the computer system 20, While
`the computer C may be coupled to the computer netWork by
`high-speed netWork connection, such as an Ethernet con
`nection.
`For purposes of the folloWing discussion, it is assumed
`that the users of the Computers A—C are coupled to the
`computer netWork 120 and engaged in an instant messaging
`session. In accordance With the principles of the present
`invention, if one or participant (e.g., the user of computer A)
`enters text message data using the keyboard 37, the system
`100 Within that computer (e.g., the Computer A) Will gen
`erate an activity message and transmit it to the other com
`puters in the instant messaging session (e.g., the Computers
`B—C). If the user of the Computer C is also typing a message
`on the keyboard 37, an activity message Will be generated by
`the system 100 Within the Computer C and transmitted to the
`Computers A—B.
`It should be noted that the Computer C also includes an
`audio input device 122, such as a microphone, coupled to
`one of the input/output devices 27 (see FIG. 1), such as the
`sound board 39 or other multimedia interface (not shoWn).
`In this example, the user of the Computer C can enter user
`data for a message using the keyboard 37 or the microphone
`122. The audio data can be converted into text data by a
`conventional voice recognition softWare program and trans
`mitted as text data. Alternatively, the message processor 108
`can create data packets for the audio data and transmit audio
`data instead of text data. In either event, the user entry of
`data is detected by the user activity monitor 104 (see FIG.
`2) and the message processor 108 Within the Computer C
`Will send the activity message to the Computers A—B.
`The activity messages received by Computers A—C are
`processed by the message processor 108. As soon as an
`activity message is received, the message processor 108
`generates an activity indicator and displays it on the display
`36. The activity indicator may take the form of a text
`indicator 124, as illustrated on the display 36 of the Com
`puter A. Alternatively, the display indicator may take the
`form of a graphic icon 126, as illustrated on the display 36
`of the Computer C. The activity indicator may also be a
`combination of graphic icon and text indicator.
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`8
`The computer receiving the activity message must inde
`pendently determine When another participant is no longer
`actively entering data via the user input device 102.
`Although it is possible for a computer to transmit a status
`message indicating inactivity, such a status message is
`undesirable because it increases the traf?c volume on the
`computer netWork to transmit periodic messages indicating
`that nothing is happening. Furthermore, if a status message
`is not received, it may be due to the fact that the computer
`is no longer coupled to the netWork and is thus unable to
`transmit status messages. Therefore, the present invention
`provides a technique in Which a recipient computer inde
`pendently measures the time interval from the receipt of the
`last activity message and Will assume that a user is no longer
`active if a neW activity message is not received Within a
`predetermined time interval. Returning again to FIG. 2, the
`message processor 108 also resets one of the timers 106
`upon receipt of an activity message. The timer 106 is set to
`measure a second predetermined time interval and can be
`reset to measure a neW time interval When an activity
`message is received.
`Those skilled in the art Will appreciate that timer functions
`may vary from one system to another. For example, the
`Windows@ operating system alloWs the user to select a time
`interval and continuously measure the selected time interval
`until halted by the user. Each time the time interval expires,
`the operating system generates a signal, such as an interrupt,
`and restarts the time interval measurement. With a timer of
`this sort, the system 100 simply starts a timer to measure the
`second predetermined time interval. If a neW activity mes
`sage is not received before the expiration of the second
`predetermined time interval, the message processor 108 Will
`delete the activity indicator from the display 36. For
`example, the timer 106 may measure a six second time
`interval. The message processor 108 Will delete the activity
`indicator from the display 36 at the end of the six second
`time interval unless a neW activity message is received. In
`the example described above, in activity message than is
`generated and transmitted every ?ve seconds (i.e., the ?rst
`predetermined time interval). So long as the user is actively
`entering data, an activity message is transmitted every ?ve
`seconds and thus received just before the expiration of the
`six second time interval. Those skilled in the art Will
`appreciate that the system 100 is not limited to the time
`periods presented in the examples above. The ?ve second
`and six second time intervals measured by the timer 106 may
`be set to other convenient values. Although the ?rst and
`second predetermined time intervals may be set to any
`values, it is convenient to make the second predetermined
`time interval longer than the ?r