`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 1 of 21 PageID #: 158
`
`
`
`
`
`EXHIBIT 3
`
`EXHIBIT 3
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 2 of 21 PageID #: 159
`I 1111111111111111 11111 1111111111 11111 11111 1111111111 11111 lll111111111111111
`US008230135B2
`
`c12) United States Patent
`Taylor et al.
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 8,230,135 B2
`Jul. 24, 2012
`
`(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.
`
`7,389,324 B2
`7,426,382 B2
`7,496,379 B2
`7,523,138 B2
`7,636,755 B2
`7,730,144 B2
`7,779,076 B2
`7,933,957 B2
`8,037,212 B2
`2001/0026231 Al *
`2002/0091770 Al
`2002/0143916 Al
`2003/0076367 Al
`
`6/2008 Masonis et al.
`9/2008 Aerrabotu et al.
`2/2009 Kaplan et al.
`4/2009 Gruhl et al.
`12/2009 Blattner et al.
`6/2010 Taylor et al.
`8/2010 Heikes et al.
`4/2011 Daniell
`10/2011 Taylor et al.
`10/2001 Satoh .............................. 341/87
`7/2002 Takakura et al.
`10/2002 Mendiola et al.
`4/2003 Beneze et al.
`(Continued)
`
`(21) Appl. No.: 13/165,709
`
`(22) Filed:
`
`Jun.21,2011
`
`(65)
`
`Prior Publication Data
`
`US 2012/0036517 Al
`
`Feb. 9, 2012
`
`Related U.S. Application Data
`
`(62) Division of application No. 11/637,514, filed on Dec.
`11, 2006, now Pat. No. 8,037,212.
`
`(60) Provisional application No. 60/748,988, filed on Dec.
`9, 2005.
`
`(51)
`
`Int. Cl.
`G06F 3/00
`(2006.01)
`(2006.01)
`G06F 13/00
`(52) U.S. Cl. ..................... 710/22; 710/8; 710/5; 710/36
`(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
`5/2006 Eschbach et al.
`7,042,879 B2
`
`400-
`
`EP
`
`FOREIGN PATENT DOCUMENTS
`1292071
`9/2002
`(Continued)
`
`OTHER PUBLICATIONS
`
`International Application No. PCT/IB2006/04193, International
`Search Report and Written Opinion mailed Jun. 24, 2008.
`
`(Continued)
`
`Primary Examiner - Scott Sun
`(7 4) Attorney, Agent, or Firm - Sheppard Mullin Richter &
`HamptonLLP
`
`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
`
`Start
`
`402
`
`Run IM client process
`
`410
`
`Tennlnate IM client process
`
`Eod
`
`Modify title associated wtth IM client
`process
`
`Yes
`
`414
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 3 of 21 PageID #: 160
`
`US 8,230,135 B2
`Page 2
`
`................. 709/204
`
`U.S. PATENT DOCUMENTS
`2003/0088676 Al
`5/2003 Smith et al.
`2003/0210265 Al
`11/2003 Haimberg
`2003/0222907 Al
`12/2003 Heikes et al.
`2003/0225846 Al
`12/2003 Heikes et al.
`2004/0010808 Al
`1/2004 Decarmo
`2004/0015547 Al *
`1/2004 Griffin et al.
`2004/0054646 Al
`3/2004 Daniell et al.
`2004/0054802 Al
`3/2004 Beauchamp et al.
`2004/0158609 Al
`8/2004 Daniell et al.
`2004/0158610 Al
`8/2004 Davis et al.
`2004/0221224 Al
`11/2004 Blattner et al.
`2004/0243941 Al
`12/2004 Fish
`2005/0080867 Al
`4/2005 Malik et al.
`2005/0097061 Al
`5/2005 Shapiro et al.
`5/2005 D' Angelo et al.
`2005/0114454 Al
`2005/0187781 Al
`8/2005 Christensen
`2005/0259656 Al
`11/2005 Dollar et al.
`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/0256816 Al
`11/2006 Y arlagadda 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
`2/2007 Carlson et al.
`2007/0135099 Al
`6/2007 Taylor et al.
`2007/0136419 Al
`6/2007 Taylor et al.
`2007/0168451 Al
`7/2007 Taylor et al.
`2007/0168529 Al
`7/2007 Taylor et al.
`2007/0168558 Al
`7/2007 Taylor et al.
`2007/0192479 Al
`8/2007 Felten
`2008/0182559 Al
`7/2008 Pyhalarnmi et al.
`2009/0125591 Al
`5/2009 Kirkpatrick
`2010/0099421 Al
`4/2010 Patel et al.
`2010/0228747 Al
`9/2010 Taylor et al.
`2010/0325222 Al
`12/2010 Taylor et al.
`
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`
`FOREIGN PATENT DOCUMENTS
`9948011
`9/1999
`0120474
`3/2001
`0143357
`6/2001
`03056764
`7/2003
`2004031976
`4/2004
`2005045591
`5/2005
`2005074588
`8/2005
`
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`
`2006083820
`2007063041
`2007110703
`2007129143
`2007129144
`2007072028
`2008072030
`
`8/2006
`6/2007
`10/2007
`11/2007
`11/2007
`6/2008
`6/2008
`
`OTHER PUBLICATIONS
`
`International Application No. PCT/IB32006/04200, International
`Search Report and Written Opinion mailed Oct. 23, 2007.
`International Application No. PCT/IB2006/04204, International
`Search Report and Written Opinion mailed Jan. 8, 2008.
`International Application No. PCT/IB2006/04205, Corrected Inter(cid:173)
`national Search Report and Written Opinion mailed Apr. 4, 2008.
`International Application No. PCT/IB2006/04264, International
`Search Report and Written Opinion mailed Jun. 30, 2008.
`International Application No. PCT/US2012/000046, International
`Search Report and Written Opinion mailed Apr. 2, 2012.
`U.S. Appl. No. 11/637,268, Final Office Action mailed Oct. 6, 2011.
`U.S. Appl. No. 11/637,268, Non-Final Office Action mailed Mar. 21,
`2011.
`U.S. Appl. No. 11/637,316, Final Office Action mailed Nov. 5, 2009.
`U.S. Appl. No. 11/637,316, Non-Final Office Action mailed May 18,
`2009.
`U.S.Appl. No.11/637,514, Final Office Action mailed Dec. 30, 2009.
`U.S.Appl. No. 11/637,514, Final Office Action mailed Jan. 18, 2011.
`U.S.Appl. No. 11/637,514, Final Office Action mailed Oct. 27, 2010.
`U.S. Appl. No. 11/637,514, Non-Final Office Action mailed Apr. 29,
`2010.
`U.S. Appl. No. 11/637,514, Non-Final Office Action mailed Jun. 25,
`2009.
`U.S.Appl. No. 11/637,514, Notice of Allowance mailed Jun. 7, 2011.
`U.S. Appl. No. 11/637,954, Non-Final Office Action mailed Jul. 30,
`2009.
`U.S. Appl. No. 11/637,954,Notice of Allowance mailed Jan. 28,
`2010.
`U.S.Appl. No.11/637,964, Final Office Action mailed Dec. 17, 2010.
`U.S. Appl. No. 11/637,964, Final Office Action mailed Feb. 9, 2010.
`U.S. Appl. No. 11/637,964, Non-Final Office Action mailed Jul. 27,
`2010.
`U.S. Appl. No. 11/637,964, Non-Final Office Action mailed Sep. 3,
`2009.
`U.S.Appl. No. 11/774,700, Final OfficeActionmailedApr. 20, 2011.
`
`* cited by examiner
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 4 of 21 PageID #: 161
`
`U.S. Patent
`
`Jul. 24, 2012
`
`Sheet 1 of 11
`
`US 8,230,135 B2
`
`•
`
`•
`
`•
`
`.
`(.!) -LL
`
`-NI
`..-.:t' = ..-u..-
`
`C:
`Q)
`
`I
`
`r
`0 -
`
`0
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 5 of 21 PageID #: 162
`
`U.S. Patent
`
`Jul. 24, 2012
`
`Sheet 2 of 11
`
`US 8,230,135 B2
`
`•
`•
`•
`
`N .
`
`(!)
`LL
`
`r
`
`g
`
`N
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 6 of 21 PageID #: 163
`
`U.S. Patent
`
`Jul. 24, 2012
`
`Sheet 3 of 11
`
`US 8,230,135 B2
`
`l
`
`l
`I
`t ·t
`~ . t -
`I ,
`
`]
`
`I
`
`j;
`
`~ .
`-
`C!)
`u.
`
`I
`I l
`i j
`
`' \
`
`r i-· ·
`
`·•
`
`r
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 7 of 21 PageID #: 164
`
`U.S. Patent
`
`Jul. 24, 2012
`
`Sheet 4 of 11
`
`US 8,230,135 B2
`
`'.-"
`l-+-ll-+--+-++-++-+--+-~-+-t-l-+-f.-l-+,l.-,!.4-l!--l-.--++-;~..;.+-+-1-i-H-+-+-++-i..;..~1-1-1-1---1-..+ . ..il 1
`
`.
`C) -LL.
`
`!
`
`:
`' '
`
`r
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 8 of 21 PageID #: 165
`
`U.S. Patent
`
`Jul. 24, 2012
`
`Sheet 5 of 11
`
`us 8,230,135 82
`
`r
`
`0
`0
`('I")
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 9 of 21 PageID #: 166
`
`300~
`
`.~~: 1t ;\
`
`t-;;;c+----+----+---+--Ulr"'"'"t! • ...,.,.,.•OZ)
`
`a •-----,-,.--(cid:127)
`1s.-1-)
`19.,_,._c.....,,;,1
`Ill! -•tu•..._...,.
`t;; _ _,,, _ _,., • ...,jit,-.___
`til>JJ11>_1_, ___ _
`b11~i---.(cid:173)
`t:it....,.._i
`b "'·"•~--l·--.,
`t,.,.... _____ _ , ,
`ts-.;
`t ! l - ( - )
`A l~ - 'b~ . - <I,._
`• Kyft.1.«laii,1 (Z)
`b~
`b,tQ('.)1J!oW,_..._,..
`
`-' --_: .:'1~]11--+~--+---+---l'----1---1---t----t-l
`:~~~12:===~ll:::r===r===l===i===r:===i===i===P.
`____ [ __
`~
`...._
`,,,;,._... __
`_..,..._
`
`. .., ..... -~ ...
`----..... _ ---
`
`+---+---+---+---t-- ---+--
`
`Fkf@Ff I
`
`iMI
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 10 of 21 PageID #: 167
`
`U.S. Patent
`
`Jul. 24, 2012
`
`Sheet 7 of 11
`
`US 8,230,135 B2
`
`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-3 Filed 11/06/20 Page 11 of 21 PageID #: 168
`
`U.S. Patent
`
`Jul. 24, 2012
`
`Sheet 8 of 11
`
`US 8,230,135 B2
`
`500~
`
`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-3 Filed 11/06/20 Page 12 of 21 PageID #: 169
`
`U.S. Patent
`
`Jul. 24, 2012
`
`Sheet 9 of 11
`
`US 8,230,135 B2
`
`600 ~
`
`Input Device
`~
`
`Network
`§SM
`
`Output Device
`§.Q§
`
`L
`
`Computer
`
`__ :vent ___ ::_nt ___ -~splay _ c_ _!10_
`,.
`,
`r
`I
`I
`I
`I
`I
`
`Interface
`§.1.Z
`
`,.
`
`Event Processing Engine
`2-li
`.._______
`
`1--f-
`
`I
`I
`I
`I
`I
`I
`
`·
`_____
`
`Title Provisioning Engine
`§1§
`
`I
`I
`I
`j
`I
`I
`I
`I
`Control , •.•••.•••••.••.•.••.•• ~ •• C ... ~~: .. .,
`I
`I
`I
`j
`'
`I
`I
`j
`j
`Title Generator
`~
`t
`l
`i
`.__ I
`f
`I
`----.----
`i
`f - - - - - - -...... i
`I
`I
`__ l __ ~
`Title String
`1
`i
`22.1
`I
`I
`•••• .!
`••.• '-.•• -•• -.•• -•• -••. -.• -••• -•. -••• -.. -••• -•• -••• -•• --'
`I
`I
`L _______________ J
`
`Title
`String(s)
`
`Control
`
`Client
`
`I
`
`, ,
`
`Title Array
`fila
`Title Array String [OJ
`
`~ - '
`
`MUX
`§2.Q
`
`Title Array String [1 J
`
`:
`
`t - - - - i
`
`t----4
`
`•
`
`¥
`
`Title Array String [N}
`
`t----4.._____,
`
`FIG. 6
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 13 of 21 PageID #: 170
`
`U.S. Patent
`
`Jul. 24, 2012
`
`Sheet 10 of 11
`
`US 8,230,135 B2
`
`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
`
`'
`
`r 102
`
`1 104
`
`r 106
`
`r 708
`
`Providing the first string of characters from the array to a process
`
`·~
`Using the first string of characters as a title In association with the process
`
`r 710
`
`,,
`
`,
`
`112
`
`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
`
`,
`
`714
`
`(
`
`,
`End
`
`FIG. 7
`
`)
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 14 of 21 PageID #: 171
`
`U.S. Patent
`
`800~
`
`Jul. 24, 2012
`
`Sheet 11 of 11
`
`US 8,230,135 B2
`
`Comm
`Interface
`filQ
`
`Display
`Control
`e.M.
`
`Display Device
`~
`
`Computer~
`
`Processor
`filW.
`
`Memory
`l1l
`
`,,- a20
`
`NV Storage
`lli
`
`1/0 Control
`fil.a
`
`,....
`
`,-
`
`1/0 Dev\ces
`~
`
`I
`
`I
`
`FIG. 8
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 15 of 21 PageID #: 172
`
`US 8,230,135 B2
`
`1
`EVENT NOTIFICATION SYSTEM AND
`METHOD
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`5
`
`2
`method may further include processing an event, such as by
`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
`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 Patent Application is a divisional application of 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. 10
`60/7 48,988, filed Dec. 9, 2005, which are incorporated herein
`by reference. This Patent Application is related to U.S. patent
`application 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 filed Dec. 11, 2006, entitled MES(cid:173)
`SAGE HISTORY DISPLAY SYSTEM AND METHOD; and
`11/637,316 filed Dec. 11, 2006, entitled CONTACT LIST 20
`DISPLAY SYSTEM AND METHOD.
`
`BACKGROUND
`
`Embodiments of the inventions are illustrated in the fig(cid:173)
`ures. However, the embodiments and figures are illustrative
`15 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
`25 displaying an event-related title.
`FIG. 6 depicts an example ofa system for programmed text
`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
`FIGS. 1-7.
`
`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 30
`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 35
`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 40
`include .NET Messenger Service, MSN Messenger, AOL
`Instant Messenger, Excite/Pal, Gadu-Gadu, Google Talk,
`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- 45
`net Relay Chat (IRC).
`The foregoing examples of the related art and limitations
`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 50
`and a study of the drawings.
`
`DETAILED DESCRIPTION
`
`In the following description, several specific details are
`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-
`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
`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
`55 server 106 is coupled to the IM network 108 via any known or
`convenient mechanism. Indeed, the IM server 106 may be
`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
`60 of FIG. 1, the server 104 includes an event queue 116.
`The network 102 may include by way of example but not
`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
`65 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
`
`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
`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
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 16 of 21 PageID #: 173
`
`US 8,230,135 B2
`
`3
`(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
`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(cid:173)
`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., banners), 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 30
`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
`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- 55
`lated into text, JavaScript, XML, or some other known or
`convenient format that one or more of the clients 114 need or
`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(cid:173)
`ment, the appropriate IM network may be determinable based
`upon the protocol encoded in a message.
`Messages or actions from the clients 114 are collected over 65
`network protocols such as, by way of example but not limi(cid:173)
`tation, HTTP or plain socket connections. The messages or
`
`4
`actions are transformed to an appropriate protocol format to
`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-
`5 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
`10 can execute actions and poll for messages or events using only
`JavaScript. The method is based on using an XMLHttpRe(cid:173)
`quest object to make HTTP requests to the server 104. The
`server 104 may reply with messages taken from the queue of
`15 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
`server 104 the browser typically uses hidden HTML frames to
`update information on visible frames. The visible frames
`20 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(cid:173)
`sion and checks if new events or messages associated with the
`session are in the event queue 116. When new information
`25 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
`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
`keep one single HTTP socket request alive for the whole
`period of a messaging session without actually closing the
`35 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,
`JavaScript code can be injected into the HTML document
`through the same HTTP socket kept alive and managed by the
`40 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
`45 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
`that they do not support hidden frames and/or JavaScript). In
`such cases, the information displayed has to be updated
`50 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
`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
`60 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
`IM network 204, a server 206, an IM network 208, a client
`210, other IM networks 212-1 to 212-N (referred to collec-
`
`
`
`Case 1:20-cv-01501-UNA Document 1-3 Filed 11/06/20 Page 17 of 21 PageID #: 174
`
`US 8,230,135 B2
`
`5
`
`5
`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-
`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 10
`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 15
`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
`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 35
`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, 40
`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
`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(cid:173)
`buddy.com. The title bar 308 includes similar information. Ifa 65
`new message is received, then both the title bar and the taskbar
`can be changed.
`
`6
`In the example of FIG. 3D, the taskbar includes the Fire(cid:173)
`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
`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
`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
`20 flowchart 400 starts at module 402 where an IM client process
`is running. The IM client process may include, by way of
`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
`25 has been received. If it is determined that an event has not
`been received (404-N), then the flowchart 400 continues to
`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
`30 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
`is determined that the IM client process