`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 1 of 21 PageID #: 179
`
`
`
`
`
`EXHIBIT 4
`
`EXHIBIT 4
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 2 of 21 PageID #: 180
`I 1111111111111111 11111 1111111111 11111 1111111111 lllll 111111111111111 11111111
`US008402179Bl
`
`c12) United States Patent
`Taylor et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,402,179 Bl
`Mar.19,2013
`
`(54) EVENT NOTIFICATION SYSTEM AND
`METHOD
`
`(75)
`
`Inventors: Paulo Taylor, Amsterdam (NL);
`Jan-Joost Rueb, Amsterdam (NL);
`Onno Bakker, Amsterdam (NL)
`
`(73) Assignee: Ebuddy Holding B.V., Amsterdam (NL)
`
`( *) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by O days.
`
`(21) Appl. No.: 13/554,996
`
`(22) Filed:
`
`Jul. 20, 2012
`
`Related U.S. Application Data
`
`(63) Continuation of application No. 13/165,709, filed on
`Jun. 21, 2011, now Pat. No. 8,230,135.
`
`(51)
`
`Int. Cl.
`G06F 3/00
`(2006.01)
`(2006.01)
`G06F 13/00
`(52) U.S. Cl. .......... 710/30; 710/2; 710/5; 710/8; 710/15
`(58) Field of Classification Search ........................ None
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`7/2002 Aggarwal et al.
`6,415,318 Bl
`11/2002 Maurille
`6,484,196 Bl
`5/2003 Knight et al.
`6,571,234 Bl
`1/2006 Mathis
`6,993,327 B2
`5/2006 Eschbach et al.
`7,042,879 B2
`6/2008 Masonis et al.
`7,389,324 B2
`9/2008 Aerrabotu et al.
`7,426,382 B2
`2/2009 Kaplan et al.
`7,496,379 B2
`3/2009 Burkhardt
`7,512,619 B2
`4/2009 Gruhl et al.
`7,523,138 B2
`12/2009 Blattner et al.
`7,636,755 B2
`6/2010 Taylor et al.
`7,730,144 B2
`8/2010 Heikes et al.
`7,779,076 B2
`
`7,933,957 B2
`8,037,212 B2
`8,135,774 B2
`2001/0026231 Al
`2002/0063735 Al
`2002/0091770 Al
`2002/0143916 Al
`2003/0028597 Al
`2003/0076367 Al
`2003/0088676 Al
`2003/0131061 Al
`2003/0210265 Al
`2003/0222907 Al
`2003/0225846 Al
`2004/0010808 Al
`2004/0015547 Al
`2004/0054646 Al
`2004/0054802 Al
`2004/0158609 Al
`2004/0158610 Al
`2004/0221224 Al
`2004/0243941 Al
`2005/0080867 Al
`2005/0097061 Al
`2005/0108341 Al
`2005/0114454 Al
`2005/0187781 Al
`2005/0259656 Al
`
`4/2011 Daniell et al.
`10/2011 Taylor et al.
`3/2012 Ryabchun et al.
`10/2001 Satoh
`5/2002 Tamir et al.
`7/2002 Takakura et al.
`10/2002 Mendiola et al.
`2/2003 Saimi eta!.
`4/2003 Beneze et al.
`5/2003 Smith et al.
`7/2003 Newton eta!.
`11/2003 Haimberg
`12/2003 Heikes et al.
`12/2003 Heikes et al.
`1/2004 DeCarmo
`1/2004 Griffin et al.
`3/2004 Daniell et al.
`3/2004 Beauchamp et al.
`8/2004 Daniell et al.
`8/2004 Davis et al.
`11/2004 Blattner et al.
`12/2004 Fish
`4/2005 Malik et al.
`5/2005 Shapiro et al.
`5/2005 Mathew et al.
`5/2005 D' Angelo et al.
`8/2005 Christensen
`11/2005 Dollar et al.
`(Continued)
`
`Primary Examiner - Scott Sun
`(74) Attorney, Agent, or Firm - Sheppard, Mullin, Richter
`& Hampton LLP
`
`ABSTRACT
`(57)
`A technique for user notification involves modifying a title
`associated with a process to include information about an
`event that calls for user notification. A method according to
`the technique may include running a process, processing an
`event, generating a string of characters that includes informa(cid:173)
`tion associated with the event, and displaying the string of
`characters as a title associated with the process. A system
`constructed according to the technique may include a client,
`a title array, an event processing engine, and a title provision(cid:173)
`ing engine.
`
`20 Claims, 11 Drawing Sheets
`
`Sieri
`
`I
`~ - - - - - -
`
`Proc0sseventthatcallsforuserriot1ticat1on
`
`c702
`
`1
`
`c704
`
`Prov1d•ng1hef1rstslnflgC1fchara:tersfrom,hearraytoaprocess
`
`!
`
`r-110
`
`Cs,sgthef'ffi,s>c,sgefcoacac>e<sas:aMew,assma<msw"h•heprnce.ss
`
`Prov1d,ngasecondstringc;,fcharactersfromthe<i.rro1ytotheproc:ess
`
`!
`
`c714
`
`c712
`
`I
`
`I
`
`I
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 3 of 21 PageID #: 181
`
`US 8,402,179 Bl
`Page 2
`
`U.S. PATENT DOCUMENTS
`2005/0268237 Al
`12/2005 Crane et al.
`2006/0080392 Al
`4/2006 Kawakami et al.
`2006/0095562 Al
`5/2006 Agarwal et al.
`2006/0168054 Al
`7 /2006 Burkhart et al.
`2006/0248157 Al
`11/2006 Daniell et al.
`2006/0256816 Al
`11/2006 Yarlagadda et al.
`2006/0265381 Al
`11/2006 Altaf et al.
`2006/0268828 Al
`11/2006 Yarlagadda
`2006/0271630 Al
`11/2006 Bensky et al.
`2006/0277053 Al
`12/2006 Lobb et al.
`
`2007/0043878 Al
`2007/0135099 Al
`2007/0136419 Al
`2007/0168451 Al
`2007/0168529 Al
`2007/0168558 Al
`2007/0192479 Al
`2008/0182559 Al
`2009/0125591 Al
`2010/0099421 Al
`2010/0228747 Al
`2010/0325222 Al
`
`2/2007 Carlson et al.
`6/2007 Taylor et al.
`6/2007 Taylor et al.
`7/2007 Taylor et al.
`7/2007 Taylor et al.
`7/2007 Taylor et al.
`8/2007 Felten
`7 /2008 Pyhalannni et al.
`5/2009 Kirkpatrick
`4/2010 Patel et al.
`9/2010 Taylor et al.
`12/2010 Taylor et al.
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 4 of 21 PageID #: 182
`
`100~
`
`Network
`102
`
`Server
`104
`
`(
`
`112
`
`IM Server
`106
`
`IM Server
`106
`
`Client
`114-1
`
`Client
`114-2
`
`Client
`114-N
`
`FIG.1
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 5 of 21 PageID #: 183
`
`200 ~
`
`Client
`202
`
`Other
`Clients
`214-1
`
`Other
`Clients
`214-N
`
`Other
`Clients
`214-N
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`~
`~ :-: ....
`0 ....
`
`"'\,Ci
`N
`
`~
`
`Server
`206
`
`FIG. 2
`
`Client
`210
`
`('D
`
`rJJ =-('D
`.....
`N
`0 ....
`....
`....
`
`00
`
`d r.,;_
`~ = N
`"'
`"'""'
`-....l
`\0 = "'""'
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 6 of 21 PageID #: 184
`
`U.S. Patent
`
`Mar.19,2013
`
`Sheet 3 of 11
`
`US 8,402,179 Bl
`
`CJ
`LL
`
`r
`
`0
`0
`('Y')
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 7 of 21 PageID #: 185
`
`U.S. Patent
`
`Mar.19,2013
`
`Sheet 4 of 11
`
`US 8,402,179 Bl
`
`(9
`LL
`
`r 0
`
`0
`C"")
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 8 of 21 PageID #: 186
`
`U.S. Patent
`
`Mar.19,2013
`
`Sheet 5 of 11
`
`US 8,402,179 Bl
`
`r
`
`0
`0
`(V)
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 9 of 21 PageID #: 187
`
`U.S. Patent
`
`Mar.19,2013
`
`Sheet 6 of 11
`
`US 8,402,179 Bl
`
`(9
`LL
`
`r 0
`
`0
`('V')
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 10 of 21 PageID #: 188
`
`U.S. Patent
`
`Mar.19,2013
`
`Sheet 7 of 11
`
`US 8,402,179 Bl
`
`400~
`
`Start
`
`402
`
`Run IM client process
`
`No
`
`Yes
`
`No
`
`Process event
`
`Yes
`
`408
`
`Terminate IM client process
`
`410
`
`No
`
`End
`
`Modify title associated with IM client
`process
`
`Yes
`
`414
`
`FIG.4
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 11 of 21 PageID #: 189
`
`U.S. Patent
`
`Mar.19,2013
`
`Sheet 8 of 11
`
`US 8,402,179 Bl
`
`soo--....
`
`Start
`
`Open browser
`
`502
`
`504
`
`Display in association with a browser a title associated with state of the browser
`
`506
`
`508
`
`No
`
`514
`
`Receive an event trigger
`
`Display in association with a browser a title associated with the event
`
`No
`
`Yes
`
`Close browser
`
`End
`
`FIG. 5
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 12 of 21 PageID #: 190
`
`U.S. Patent
`
`Mar.19,2013
`
`Sheet 9 of 11
`
`US 8,402,179 Bl
`
`600---.._
`
`Input Device
`602
`
`Network
`604
`
`Output Device
`606
`
`-
`
`Event
`-- -
`,.
`
`-
`
`-
`
`-
`
`Event
`-
`-
`,.
`
`-
`
`-
`
`Interface
`612
`
`,.
`
`~
`Display
`
`-- -
`
`-
`
`c_
`
`Compute r
`
`
`610
`-
`
`~
`
`Event Processing Engine
`614
`
`,.
`
`Title
`String(s)
`
`Title Provisioning Engine
`616
`
`Control
`
`,ir
`Title Array
`618
`Title Array String [O]
`Title Array String [1]
`
`. .
`.
`
`Title Array String [N]
`
`Control
`
`-.... ------. ----------. -
`
`Client
`
`__ C __ 622 __
`
`MUX
`620
`
`[;
`
`Title Generator
`626
`
`! - -
`
`r
`
`Title String
`624
`........ .., .................... .., .............. .., ..................... .., .....................
`
`L _____ _
`
`_ _____ J
`
`FIG. 6
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 13 of 21 PageID #: 191
`
`U.S. Patent
`
`Mar.19,2013
`
`Sheet 10 of 11
`
`US 8,402,179 Bl
`
`700--.._
`
`Start
`
`..
`
`Process event that calls for user notification
`
`,,.
`
`Generate a first string of characters associated with the event
`
`,,.
`
`Store the first string of characters in an array
`
`,,.
`
`Providing the first string of characters from the array to a process
`
`,,.
`
`1 702
`
`1 704
`
`1 706
`
`1 708
`
`/
`
`710
`
`Using the first string of characters as a title in association with the process
`
`Ir
`
`/
`
`712
`
`Providing a second string of characters from the array to the process
`
`Using the second string of characters as a title in association with the process
`
`v
`
`/
`
`714
`
`,,,
`End
`
`FIG. 7
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 14 of 21 PageID #: 192
`
`U.S. Patent
`
`Mar.19,2013
`
`Sheet 11 of 11
`
`US 8,402,179 Bl
`
`800 ~
`
`Comm
`Interface
`810
`
`Display
`Control
`814
`
`Display Device
`806
`
`Computer 802
`
`Processor
`808
`
`Memory
`812
`
`V a20
`
`NV Storage
`816
`
`1/0 Control
`818
`
`-
`
`-
`
`1/0 Devices
`804
`
`I
`
`I
`
`FIG. 8
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 15 of 21 PageID #: 193
`
`US 8,402,179 Bl
`
`1
`EVENT NOTIFICATION SYSTEM AND
`METHOD
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`2
`the technique may include running a process, such as, by way
`of example but not limitation, an IM client process, a browser,
`or some other process that has a title associated therewith. The
`method may further include processing an event, such as by
`5 way of example but not limitation, a new mail event, a new
`instant message event, a reminder event, a calendar event, or
`some other event, and generating a string of characters that
`includes information associated with the event. The method
`may further include displaying the string of characters as a
`10 title associated with the process. A system constructed
`according to the technique may include a client, a title array,
`an event processing engine, and a title provisioning engine.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`This application is a continuation application of U.S. Ser.
`No. 13/165,709, filed Jun. 21, 2011, now U.S. Pat. No. 8,230,
`135 entitled EVENT NOTIFICATION SYSTEM AND
`METHOD, which claims priority to U.S. Ser. No. 11/637,
`514, filed Dec. 11, 2006, entitled EVENT NOTIFICATION
`SYSTEM AND METHOD, which claims priority to U.S.
`Provisional Patent Application Ser. No. 60/748,988, filed
`Dec. 9, 2005, which are incorporated herein by reference.
`This Patent Application is related to U.S. patent application 15
`Ser. Nos. 12/721,538, filed Mar. 10, 2010, entitled HIGH
`LEVEL NETWORK LAYER SYSTEM AND METHOD,
`which is a continuation of U.S. Pat. No. 7,730,144, filed Dec.
`11, 2006; 11/637,268, filed Dec. 11, 2006, entitled PICTURE
`PROVISIONING SYSTEM AND METHOD; 11/637,964 20
`filed Dec. 11, 2006, entitled MESSAGE HISTORY DIS(cid:173)
`PLAY SYSTEMAND METHOD; and 11/637,316 filed Dec.
`11, 2006, entitled CONTACT LIST DISPLAY SYSTEM
`AND METHOD.
`
`Embodiments of the inventions are illustrated in the fig(cid:173)
`ures. However, the embodiments and figures are illustrative
`rather than limiting; they provide examples of the invention.
`FIG.1 depicts an example ofa system for providing instant
`messages to clients via a web interface.
`FIG. 2 depicts an example of a system for displaying con(cid:173)
`tent from an IM client at an alternative IM client.
`FIGS. 3A-3D depict examples of screenshots with IM noti(cid:173)
`fication functionality.
`FIG. 4 depicts a flowchart of an example of a method for
`changing a title associated with a titlebar.
`FIG. 5 depicts a flowchart of an example of a method for
`displaying an event-related title.
`FIG. 6 depicts an example ofa system for programmed text
`30 event-specific title provisioning.
`FIG. 7 depicts a flowchart of an example of a method for
`displaying programmed text titles.
`FIG. 8 depicts a computer system suitable for implemen(cid:173)
`tation of the techniques described above with reference to
`35 FIGS. 1-7.
`
`BACKGROUND
`
`25
`
`Instant messaging requires the use of a client program that
`hooks up an instant messaging service and differs from e-mail
`in that conversations are then able to happen in real time.
`Most services offer a presence information feature, indicating
`whether people on one's list of contacts are currently online
`and available to chat. This may be called a contact list. In early
`instant messaging programs, each letter appeared as it was
`typed, and when letters were deleted to correct typos this was
`also seen in real time. This made it more like a telephone
`conversation than exchanging letters. In modern instant mes(cid:173)
`saging programs, the other party in the conversation generally
`only sees each line of text right after a new line is started. Most
`instant messaging applications also include the ability to set a
`status message, roughly analogous to the message on a tele(cid:173)
`phone answering machine.
`Popular instant messaging services on the public Internet
`include .NET Messenger Service, MSN Messenger, AOL
`Instant Messenger, Excite/Pal, Gadu-Gadu, Google Talk, 45
`iChat, ICQ, Jabber, Qnext, QQ, Meetro, Skype, Trillian and
`Yahoo! Messenger. These services owe many ideas to an
`older (and still popular) online chat medium known as Inter(cid:173)
`net Relay Chat (IRC).
`The foregoing examples of the related art and limitations 50
`related therewith are intended to be illustrative and not exclu-
`sive. Other limitations of the related art will become apparent
`to those of skill in the art upon a reading of the specification
`and a study of the drawings.
`
`DETAILED DESCRIPTION
`
`In the following description, several specific details are
`40 presented to provide a thorough understanding of embodi(cid:173)
`ments of the invention. One skilled in the relevant art will
`recognize, however, that the invention can be practiced with(cid:173)
`out one or more of the specific details, or in combination with
`other components, etc. In other instances, well-known imple(cid:173)
`mentations or operations are not shown or described in detail
`to avoid obscuring aspects of various embodiments, of the
`invention.
`FIG. 1 depicts an example of a system 100 for providing
`instant messages to clients via a web interface. In the example
`of FIG. 1, the system 100 includes a network 102, a server
`104, and an Instant Messenger (IM) server 106, and an IM
`network 108. The server104 is coupled to the network at least
`by way of port 80. The two way communication via port 80 is
`represented in the example of FIG. 1 as an arrow 110. The
`55 server 104 is coupled to the IM server 106 via one or more
`other ports. The two way communication via the other ports is
`represented in the example of FIG. 1 as an arrow 112. The IM
`server 106 is coupled to the IM network 108 via any known or
`convenient mechanism. Indeed, the IM server 106 may be
`60 thought of as part of the IM network 108. The network 102
`couples a plurality of clients 114-1 to 114-N (referred to
`collectively as clients 114) to the server 104. In the example
`of FIG. 1, the server 104 includes an event queue 116.
`The network 102 may include by way of example but not
`65 limitation LAN, WAN, VLAN, WLAN, Internet, cellular net(cid:173)
`work, phone network, radio network, or some other known or
`convenient network. The term "Internet" as used herein refers
`
`SUMMARY
`
`The following embodiments and aspects thereof are
`described and illustrated in conjunction with systems, tools,
`and methods that are meant to be exemplary and illustrative,
`not limiting in scope. In various embodiments, one or more of
`the above-described problems have been reduced or elimi(cid:173)
`nated, while other embodiments are directed to other
`improvements.
`A technique for user notification involves modifying a title
`associated with a process to include information about an
`event that calls for user notification. A method according to
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 16 of 21 PageID #: 194
`
`US 8,402,179 Bl
`
`3
`to a network of networks that uses certain protocols, such as
`TCP/IP, and possibly other protocols such as the hypertext
`transfer protocol (HTTP) for hypertext markup language
`(HTML) documents that make up the World Wide Web (the
`web). The physical connections of the Internet and the pro(cid:173)
`tocols and communication procedures are well known, but
`any convenient physical connections or protocols could be
`used.
`The server 104 may include a multiple servers. Indeed, it
`may be desirable, depending upon details of a particular 10
`implementation, to install several servers to cope with the
`number of simultaneous users the system 100 supports. It
`may further be desirable, depending upon details of a particu-
`lar implementation, for the server 104 to have a high CPU
`throughput, together with large amounts of RAM, to handle a
`large number of users. It may further be desirable, depending
`upon details of a particular implementation, to accomplish
`resource sharing via thread handling where a pool of threads
`is shared and used by one or more of the clients 114 for
`client-server communication and between the server 104 and
`the IM server 106.
`The server 104 may include one or more of an application
`server, database server, web server, banners server, and con(cid:173)
`tent server, or any combination thereof. To make the most of
`the techniques described herein, the server 104 should,
`though is not required to, include at least one application
`server. The other servers can have supporting roles in, by way
`of example but not limitation, serving static content or adver(cid:173)
`tising (e.g., barmers), storing usage data, or fulfilling some
`other known or convenient function.
`The server 104 may act as a proxy server between the
`clients 114 and the IM server 106. The server 104 receives
`communications from the clients 114 on http port 80, and
`responds to the clients 114 on http port 80. Communications
`from the clients 114 that are bound for the IM network 108,
`however, must also come through http port 80 to the server
`104, and are then forwarded to the IM server 106. In this way,
`the server 104 acts as a carrier of the data from users to the IM
`network 108 using a mechanism that controls and manages
`the data ( e.g., text messages, display images, emoticons,
`audio/video streams, etc.) sent between one of the clients 114
`and the server 104, and vice versa.
`The IM server 106 may be any known or convenient IM
`server that is compatible with IM. Events, messages, or other
`appropriate data from the IM server 106 are collected in the 45
`event queue 116 of the server 104. The events may be col(cid:173)
`lected in association with a variety of protocols including by
`way of example but not limitation port 1863, port 5050, port
`5222, port 5190, etc.
`The IM network 108 may include one or a combination of
`networks selected from MSN Messenger, Yahoo! Messenger,
`AIM AOL, ICQ, QQ, Jabber, Google Talk, IRC, or some other
`known or convenient IM network.
`The clients 114 may include any known or convenient
`device, including by way of example but not limitation, a Web
`browser, mobile client, PDA, game console, TV box, native
`application, etc. The clients poll the server 104 for events. The
`events can be removed from the event queue 116 and trans(cid:173)
`lated into text, JavaScript, XML, or some other known or
`convenient format that one or more of the clients 114 need or 60
`expect in order to process data associated with the event.
`To interact with the IM network 108, the clients 114 send
`data to the server 104. The data, which may include com(cid:173)
`mands, is processed and translated into corresponding data
`that will be sent to the appropriate IM network. In an embodi- 65
`ment, the appropriate IM network may be determinable based
`upon the protocol encoded in a message.
`
`4
`Messages or actions from the clients 114 are collected over
`network protocols such as, by way of example but not limi(cid:173)
`tation, HTTP or plain socket connections. The messages or
`actions are transformed to an appropriate protocol format to
`5 be sent over a compliant port from the clients 114 to the server
`104, with the IM protocol on the application side. In a non(cid:173)
`limiting embodiment, the compliant port is http port 80. How(cid:173)
`ever, any port having similar characteristics to those of a
`typical port 80 could be used.
`The latest available browsers, as of December 2005, enable
`the use of a technique calledAJAX (Asynchronous JavaScript
`And XML). With AJAX, appropriately configured clients 114
`can execute actions and poll for messages or events using only
`JavaScript. The method is based on using an XMLHttpRe-
`15 quest object to make HTTP requests to the server 104. The
`server 104 may reply with messages taken from the queue of
`the corresponding session in XML (or another) format that
`are parsed and displayed according to the message content.
`For clients 114 that include a browser, when accessing the
`20 server 104 the browser typically uses hidden HTML frames to
`update information on visible frames. The visible frames
`display appropriate information while the hidden frames are
`reloaded in short periods of time. In each refresh that hits the
`server 104, the browser identifies the current messaging ses-
`25 sion and checks if new events or messages associated with the
`session are in the event queue 116. When new information
`arrives and needs to be displayed in some form, the browser
`makes use of, for example, JavaScript code to update the
`visible frames and windows with new messages or events
`30 keeping the information up to date in the screen. In this way,
`automatic refreshing can take place in a hidden frame.
`In another embodiment, certain of the clients 114 with
`browsers may not make use of refreshes. For example, a form
`of updating the screen without using a refresh technique is to
`35 keep one single HTTP socket request alive for the whole
`period of a messaging session without actually closing the
`socket connection. In this example, information is initially
`loaded and displayed in one single visible frame. While
`events and messages are being received by the server 104,
`40 JavaScript code can be injected into the HTML document
`through the same HTTP socket kept alive and managed by the
`server 104. For each event or message, the browser can inter(cid:173)
`pret the JavaScript code injected and the corresponding parts
`of the HTML document and windows will be updated.
`In another embodiment, certain of the clients 114 with
`browsers may make use of manual refreshes. Some relatively
`unsophisticated browsers, such as WAP and xHTML brows(cid:173)
`ers often available on mobile phones, do not support hidden
`frames and/or JavaScript (and others may be configured such
`50 that they do not support hidden frames and/or JavaScript). In
`such cases, the information displayed has to be updated
`manually by the user. Manual updating enables any mobile
`phone, PDA, TV Set or any device with a browser to connect
`to the server 104 and use the messaging platforms made
`55 available by the server 104 assuring the communication
`between the clients 114 and the IM server 106.
`Message history can be stored by most IM clients on a local
`computer. For alternative web and mobile-based clients local
`storage may not be possible. In a non-limiting embodiment,
`the server 104, may have the capability to store message
`history from IM conversations done via one or more of the
`clients 114. The message history can be accessed and
`searched at any time via the server 104 by one or more of the
`clients 114
`FIG. 2 depicts an example of a system 200 for displaying
`content from an IM client at an alternative IM client. In the
`example of FIG. 2, the system 200 includes a client 202, an
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 17 of 21 PageID #: 195
`
`US 8,402,179 Bl
`
`5
`
`5
`IM network 204, a server 206, an IM network 208, a client
`210, other IM networks 212-1 to 212-N (referred to collec(cid:173)
`tively as other IM networks 212), and other clients 214-1 to
`214-N (referred to collectively as other clients 214).
`For illustrative purposes, it is assumed that the client 202
`has content that is compatible with the IM network 204.
`However, the client 210 is capable ofreading content format(cid:173)
`ted to be compatible with the IM network 208. Thus, in
`operation, the server 206 collects content from the client 202
`(either through the IM network 204, as shown in FIG. 2, or
`directly from the client 202, such as is shown by way of
`example in FIG. 1 ). The server 206 then formats the content as
`appropriate for use on the IM network 208. Once the content
`is properly formatted, it can be made available to the client
`210 (either through the IM network 208, as shown in FIG. 2,
`or directly to the client 210, such as is shown by way of
`example in FIG. 1). Depending upon the embodiment and/or
`implementation, the content may also be formatted as appro(cid:173)
`priate for one or more of the other IM networks 212, to be 20
`made available for one or more of the other clients 214.
`As is well-understood, different devices provide different
`functionality. For example, a desktop typically provides
`greater storage, greater display area, and greater power than a
`cell phone. Thus, at best, an IM client must work under the
`constraints imposed by a particular device. Depending upon
`the device, certain functionality may be more useful. For
`example, a device may have inferior capabilities with respect
`to notifying a user when a message is received.
`The device capabilities may limit the way in which a user
`can be notified when a message is received. The environment
`in which a user operates may provide another limitation. For
`example, a user at work may not want to play a noise or have
`a popup window show up every time a message is received.
`Similarly, a user who gets lots of messages may not want to
`hear the noise or see the popup windows because of the great
`frequency with which it occurs. Advantageously, notification
`can take place in a title bar, which is great for devices that have
`inferior notification functionality, and great for users who
`want a subtle notification.
`FIGS. 3A-3D depict examples of screenshots 300 with IM
`notification functionality. The bar may be a titlebar, a taskbar,
`or some other menu or display item. In the example of FIG.
`3A, the taskbar includes a process identified by the taskbar
`item 302. For illustrative purposes, the process is a Firefox®
`web browser that is at the site www.ebuddy.com. The screen(cid:173)
`shot appears as a conventional screen might look. However,
`when a new message arrives, the taskbar changes.
`In the example of FIG. 3B, the taskbar includes the Fire(cid:173)
`fox® web browser process, but the taskbar item 304 appears
`differently. Specifically, rather than depicting the site www.e(cid:173)
`buddy.com, the taskbar item 304 now indicates that a new
`message is available. The IM notification functionality may
`be cool on a desktop, but can be particularly useful in other 55
`implementations.
`For example, notifying a userwhennew messages arrive or
`events happen can gracefully be done by a native IM appli(cid:173)
`cation. However, for alternative web clients this is more dif(cid:173)
`ficult given the nature of control from within a browser to the
`Operating System. There is less control for alerts like flashing
`windows etc. from browsers. In such cases, it may be particu(cid:173)
`larly advantageous for a server to be able to provide a user
`with alerts for new messages or events using the title bar, task
`bar, or other display area of a browser.
`In the example of FIG. 3C, the Firefox® browser is open,
`and the taskbar item 306 indicates the current site is www.e-
`
`6
`buddy.com. The titlebar 308 includes similar information. Ifa
`new message is received, then both the title bar and the taskbar
`can be changed.
`In the example of FIG. 3D, the taskbar includes the Fire-
`fox® web browser with a changed taskbar item 310. The
`titlebar 312 is also changed to indicate a new message has
`been received. The exact information in a title bar, taskbar, or
`other display area is implementation specific. Thus, the title(cid:173)
`bar 312 is simply illustrative. When an event, message, or
`10 other data is available to the client, the titlebar 312 may
`change to show information about the event. If properly con(cid:173)
`figured, the taskbar item 310 and the titlebar 312 could even
`display different information (though in a typical implemen(cid:173)
`tation the text is identical, albeit often necessarily shortened
`15 on the taskbar).
`The title can be used to notify users of certain events by
`changing the title of the IM client. The changing of the text in
`the taskbar and/or titlebar may stand out from other taskbars
`and/or with fixed texts.
`FIG. 4 depicts a flowchart 400 of an example of a method
`for changing a title associated with a titlebar (and an associ(cid:173)
`ated taskbar item, if applicable). In the example of FIG. 4, the
`flowchart 400 starts at module 402 where an IM client process
`is running. The IM client process may include, by way of
`25 example but not limitation, a browser.
`In the example of FIG. 4, the flowchart 400 continues to
`decision point 404 where it is determined whether an event
`has been received. If it is determined that an event has not
`been received (404-N), then the flowchart 400 continues to
`30 decision point 406 where it is determined whether to termi(cid:173)
`nate the IM client process. Ifit is determined that the IM client
`process is to be terminated (406-Y), then the flowchart 400
`continues to module 408 where the IM client process is ter(cid:173)
`minated, and the flowchart 400 ends. If, on the other hand, it
`35 is determined that the IM client process is not to be terminated
`( 406-N) then the flowchart 400 loops back to decision point
`404, as described above.
`In the example of FIG. 4, eventually, assuming the IM
`client process is not terminated ( 408), it is determined that an
`40 event has been received (404-Y), and the flowchart 400 con(cid:173)
`tinues to module 410 where the event is processed. Events are
`processed in a known or convenient manner.
`In the example of FIG. 4, the flowchart 400 continues to
`decision point 412 where it is determined whether notifica-
`45 tion is called for. Events may or may not result in notification
`of a user, depending upon the event, embodiment, implemen(cid:173)
`tation, device limitations, and/or user's IM client configura(cid:173)
`tion. If it is determined that user notification is called for
`(412-Y), then the flowchart 400 continues to module 414
`50 where a title associated with the IM client process is modified.
`If, on the other hand, it is determined that user notification is
`not called for (412-N), or in any case after module 414, the
`flowchart 400 loops back to decision point 406, as described
`above.
`Modifying the title ( 414) presumably modifies the display
`in the applicable titlebar and/or the display in the applicable
`taskbar item. Conventional browsers typically do not allow
`setting a title in a titlebarthat is different from the correspond(cid:173)
`ing taskbar item. However, a display area could display infor-
`60 mation different from that of the title, if configured appropri(cid:173)
`ately. Moreover, future browsers may include functionality
`that allows displaying different titles in the titlebar and the
`taskbar.
`The title of the application may or may not keep the
`65 changed value until the user takes some action ( e.g., clicking
`on the taskbar item associated with the IM client process). For
`example, the original title could be displayed after a certain
`
`
`
`Case 1:20-cv-01501-UNA Document 1-4 Filed 11/06/20 Page 18 of 21 PageID #: 196
`
`US 8,402,179 Bl
`
`5
`
`15
`
`7
`amount of time has passed (e.g., a "new message" title could
`last for 10 seconds before reverting to the original title). FIG.
`5 depicts a flowchart 500 of an example of a method for
`displaying an event-related title. In the example of FIG. 5, the
`flowchart 500 starts at module 502 where a browser is opened.
`In the example of FIG. 5, the flowchart 500 continues to
`module 504 a title associated with state of a browser is dis(cid:173)
`played in association with the browser. The state of the
`browser may include, for example, a current site for which the
`browser is displaying a page, as is shown in FIGS. 3A and 3C.
`In general, the title associated with state of the browser
`includes any title that would normally be displayed in as