`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 1 of 17 PageID #: 123
`
`
`
`
`
`EXHIBIT 1
`
`EXHIBIT 1
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 2 of 17 PageID #: 124
`I 1111111111111111 11111 111111111111111 IIIII 111111111111111 lll111111111111111
`US008510395B2
`
`c12) United States Patent
`Taylor et al.
`
`(IO) Patent No.:
`(45) Date of Patent:
`
`US 8,510,395 B2
`Aug. 13, 2013
`
`(54) CONTACT LIST DISPLAY 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.
`
`EP
`WO
`
`6,484,196 Bl
`6,571,234 Bl
`6,993,327 B2 *
`7,042,879 B2
`
`11/2002 Maurille
`5/2003 Knight et al.
`1/2006 Mathis ....................... 455/414.1
`5/2006 Eschbach et al.
`(Continued)
`
`FOREIGN PATENT DOCUMENTS
`1292071
`9/2002
`9948011
`9/1999
`(Continued)
`
`OTHER PUBLICATIONS
`
`(21) Appl. No.: 12/774,700
`
`(22) Filed:
`
`May 5, 2010
`
`(65)
`
`Prior Publication Data
`
`US 2010/0325222 Al
`
`Dec. 23, 2010
`
`Related U.S. Application Data
`
`(63) Continuation of application No. 11/637,316, filed on
`Dec. 11, 2006, now abandoned.
`
`(60) Provisional application No. 60/748,988, filed on Dec.
`9, 2005.
`
`(51)
`
`(2006.01)
`(2006.01)
`
`Int. Cl.
`G06F 15116
`G06F 151173
`(52) U.S. Cl.
`USPC ............................ 709/206; 709/203; 709/223
`( 58) Field of Classification Search
`USPC ......... 709/213, 202-203, 206-207, 217-219,
`709/223-224, 229, 246
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`6,415,313 Bl
`7/2002 Yamada et al.
`6,415,318 Bl*
`7/2002 Aggarwal et al. ............. 709/206
`
`300--....
`
`International Application No. PCT/IB2006/04193, International
`Search Report and Written Opinion mailed Jun. 24, 2008.
`
`(Continued)
`
`Primary Examiner - Bharat N Barnt
`(7 4) Attorney, Agent, or Firm - Sheppard Mullun Richter &
`HamptonLLP
`
`(57)
`
`ABSTRACT
`
`A technique for contact list aggregation across networks
`involves logging into low level networks through a high level
`network. A system constructed according to the technique
`may include a network interface coupled to the different low
`level networks. The system may further include a contact
`aggregation engine coupled to the network interface and a
`network contacts database. In operation the system logs into
`one or more of the low level networks ( or facilitates login for
`a user). To the extent that the data in the network contacts
`database is not current, the contact aggregation engine
`updates the networks contacts database contact information,
`then provides an aggregated contact list including the contact
`information to a display device. A method according to the
`technique may include logging into a high level network and
`displaying contacts from the one or more low level networks
`in an aggregated contact list. The method may further include
`logging into the one or more low level networks.
`
`11 Claims, 7 Drawing Sheets
`
`User Profile dB
`"'-'
`
`High level Contacts dB
`(Optional)
`IH
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 3 of 17 PageID #: 125
`
`US 8,510,395 B2
`Page 2
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`7,389,324 B2 *
`6/2008 Masonis et al. ............... 709/206
`7,426,382 B2 *
`9/2008 Aerrabotu et al ............. 455/411
`7,496,379 B2 *
`2/2009 Kaplan et al. ................. 455/557
`7,512,619 B2 *
`3/2009 Burkhardt .................... 705/7.13
`7,523,138 B2 *
`4/2009 Gruhl et al.
`1/ l
`7,636,755 B2
`12/2009 Blattner et al.
`7,730,144 B2 *
`6/2010 Taylor et al. .................. 709/206
`7,779,076 B2
`8/2010 Heikes et al.
`7,933,957 B2
`4/2011 Daniell et al.
`8,037,212 B2
`10/2011 Taylor et al.
`8,135,774 B2 *
`3/2012 Ryabchun et al ............. 709/203
`2001/0026231 Al
`10/2001 Satoh
`2002/0063735 Al
`5/2002 Tamir et al.
`2002/0091770 Al
`7/2002 Takakura et al.
`2002/0143916 Al
`10/2002 Mendiola et al.
`2003/0028597 Al
`2/2003 Saimi et al.
`2003/0076367 Al
`4/2003 Beneze et al.
`2003/0088676 Al
`5/2003 Smith et al.
`2003/0131061 Al
`7/2003 Newton 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/0038876 Al*
`2/2005 Chaudhuri .................... 709/219
`2005/0080867 Al
`4/2005 Malik et al.
`2005/0097061 Al
`5/2005 Shapiro et al.
`2005/0108341 Al
`5/2005 Mathew et al.
`2005/0114454 Al
`5/2005 D' Angelo et 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/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
`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 Pyhalammi et al.
`2009/0125591 Al
`5/2009 Kirkpatrick
`2010/0099421 Al
`4/2010 Patel et al.
`2010/0228747 Al
`9/2010 Taylor et al.
`
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`
`FOREIGN PATENT DOCUMENTS
`0120474
`3/2001
`0143357
`6/2001
`7/2003
`03056764
`4/2004
`2004031976
`9/2004
`2004079530 A2
`5/2005
`2005045591
`8/2005
`2005074588
`8/2006
`2006083820
`6/2007
`2007063041
`10/2007
`2007110703
`2007129143
`11/2007
`2007129144
`11/2007
`2007072028
`6/2008
`2008072030
`6/2008
`
`OTHER PUBLICATIONS
`
`International Application No. PCT/IB2006/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,964, Final Office Action mailed Dec. 17, 2010.
`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, Notice of Allowance mailed Jun. 7, 2011.
`U.S. Appl. No. 11/637,964, Non-Final Office Action mailed Jul. 27,
`2010.
`U.S.Appl. No. 13/165,709, Non-Final Office Action mailed Nov. 10,
`2011.
`U.S. Appl. No. 11/637,268, Final Office Action mailed Oct. 6, 2011.
`English Abstract ofW0-2003-056764 dated Jul. 10, 2003.
`English Abstract of EP-1292071 dated Sep. 5, 2002.
`Non-Final Office Action mailed May 18, 2009 and Final Office
`Action mailed Nov. 5, 2009 in U.S. Appl. No. 11/637,316, filed Dec.
`11, 2006.
`Office Action mailed on Mar. 21, 2011 in U.S. Appl. No. 11/637,268,
`filed Dec. 11, 2006.
`Office Actions mailed on Dec. 30, 2009, Jun. 25, 2009, and Apr. 29,
`2010 in U.S. Appl. No. 11/637,514, filed Dec. 11, 2006.
`Non-Final Office Action mailed Jul. 30, 2009, in U.S. Appl. No.
`11/637,954, filed Dec. 11, 2006.
`Notice of Allowance mailed Jan. 28,2010, in U.S. Appl. No.
`11/637,954, filed Dec. 11, 2006.
`Non-Final Office Action mailed Sep. 3, 2009 and Final Office Action
`mailed Feb. 9, 2010, in U.S. Appl. No. 11/637,964, filed Dec. 11
`2006.
`
`* cited by examiner
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 4 of 17 PageID #: 126
`
`100 ~
`
`116
`
`Network
`102
`
`Server
`104
`
`IM Server
`106
`
`.
`
`IM Server
`106
`
`Client
`114-1
`
`Client
`114-2
`
`Client
`114-N
`
`FIG.1
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`> = ~ ....
`
`~
`
`~
`N
`
`0 ....
`
`~
`
`rJJ
`
`('D
`
`=-('D
`.....
`....
`0 ....
`
`-....J
`
`
`
`200~
`
`Client
`202
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 5 of 17 PageID #: 127
`
`Other
`Clients
`214-1
`
`Other
`Clients
`214-N
`
`Other
`Clients
`214-N
`
`rLJ =-~
`
`~ -N
`
`0 ....
`
`---1
`
`Server
`~
`
`FIG. 2
`
`Client
`210
`
`~
`00
`00
`
`'JI
`""'"" = w
`\0 u. = N
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 6 of 17 PageID #: 128
`
`U.S. Patent
`
`Aug. 13, 2013
`
`Sheet 3 of 7
`
`US 8,510,395 B2
`
`300--.._
`
`Display
`~
`
`Contact Aggregation Engine
`318
`
`1-------------------...J
`
`I
`I
`
`I
`I
`I
`I
`:
`
`User Profile dB
`316
`
`1
`
`High Level Contacts dB
`(Optional)
`314
`- - - - - I
`
`I - - - - - - -
`
`~--------------------
`FIG. 3
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 7 of 17 PageID #: 129
`
`U.S. Patent
`
`Aug. 13, 2013
`
`Sheet 4 of 7
`
`US 8,510,395 B2
`
`400A~
`
`1!1Q1~1~1 _ 404
`
`Add a Network'
`
`400B~
`
`FIG.4A
`
`Reload
`418
`
`Add Account
`412
`
`Signout
`416
`
`408
`
`410
`
`408
`
`406
`
`Sign Out
`414
`
`Sign Out
`414
`
`Sign Out
`414
`
`Sign Out
`414
`
`FIG. 48
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 8 of 17 PageID #: 130
`
`U.S. Patent
`
`Aug. 13, 2013
`
`Sheet 5 of 7
`
`US 8,510,395 B2
`
`500 ~
`
`Start
`
`502
`
`504
`
`Join a high level network
`
`Join a low level network
`
`Yes
`
`Maintain a contacts list associated with
`one or more of the low level networks
`
`510
`
`518
`
`Login to high level network
`
`Logout of high level network
`
`512
`
`Display contacts from the low level
`networks in an aggregated contact list
`
`No
`
`Yes
`
`End
`
`No
`
`FIG. 5
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 9 of 17 PageID #: 131
`
`U.S. Patent
`
`Aug. 13, 2013
`
`Sheet 6 of 7
`
`US 8,510,395 B2
`
`600~
`
`Start
`
`602
`
`Login to high level network
`
`604
`
`Login to low level network
`
`606
`
`Display aggregated high level (if
`any) and low level contact list
`
`Yes
`-=::>---+I
`
`Remove relevant low level contacts
`from aggregated display
`
`610
`
`No
`
`No
`
`No
`
`Yes
`
`End
`
`FIG. 6
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 10 of 17 PageID #: 132
`
`U.S. Patent
`
`Aug. 13, 2013
`
`Sheet 7 of 7
`
`US 8,510,395 B2
`
`700 ---._
`
`Comm
`Interface
`710
`
`Display
`Control
`714
`
`Display Device
`706
`
`Computer 702
`
`Processor
`708
`
`Memory
`712
`
`V 120
`
`NV Storage
`716
`
`1/0 Control
`718
`
`-
`
`-
`
`1/0 Devices
`704
`
`I
`
`I
`
`FIG. 7
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 11 of 17 PageID #: 133
`
`US 8,510,395 B2
`
`1
`CONTACT LIST DISPLAY SYSTEM AND
`METHOD
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`2
`tion the system logs into one or more of the low level networks
`( or facilitates login for a user). The network contacts database
`may include some information about contacts associated with
`the networks from, by way of example but not limitation,
`5 previous logins or data explicitly entered by a user. To the
`extent that the data in the network contacts database is not
`current, the contact aggregation engine updates the networks
`contacts database contact information, then provides an
`aggregated contact list including the contact information to a
`10 display device.
`A method according to the technique may include logging
`into a high level network and displaying contacts from the one
`or more low level networks in an aggregated contact list. The
`method may further include logging into the one or more low
`15 level networks.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`This Patent Application is a continuation of U.S. patent
`application Ser. No. 11/637,316, filed Dec. 11, 2006 now
`abandoned and entitled CONTACT LIST DISPLAY SYS(cid:173)
`TEM AND METHOD, which claims priority to U.S. Provi(cid:173)
`sional Patent App. No. 60/748,988, filed Dec. 9, 2005, which
`is incorporated herein by reference. This Patent Application is
`related to U.S. patent application Ser. Nos. 11/637,954,
`12/721,538, 11/637,268, 11/637,964, 11/637,514, by Taylor,
`et al., respectively entitled HIGH LEVEL NETWORK
`LAYER SYSTEM AND METHOD, HIGH LEVEL NET(cid:173)
`WORK LAYER SYSTEM AND METHOD, PICTURE
`PROVISIONING SYSTEM AND METHOD, MESSAGE
`HISTORY DISPLAY SYSTEM AND METHOD, and
`EVENT NOTIFICATION SYSTEM AND METHOD, filed 20
`concurrently herewith and incorporated by reference herein.
`
`BACKGROUND
`
`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-
`25 tent from an IM client at an alternative IM client.
`FIG. 3 depicts an example of a system capable of contact
`aggregation and display.
`FIGS. 4A-4B depict examples of screenshots that depicts a
`multi-network IM display.
`FIG. 5 depicts a flowchart of an example of a method for
`contact list aggregation and display.
`FIG. 6 depicts a flowchart of an example of a method for
`aggregated contact list display.
`FIG. 7 depicts a computer system suitable for implemen-
`35 tation of the techniques described with reference to FIGS.
`1-6.
`
`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
`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, 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 Internet Relay Chat (IRC).
`The foregoing examples of the related art and limitations
`related therewith are intended to be illustrative and not exclu(cid:173)
`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
`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
`45 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
`50 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
`55 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
`server 106 is coupled to the IM network 108 via any known or
`60 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
`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
`
`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 contact list aggregation across a plurality
`of different networks involves logging into low level net(cid:173)
`works through a high level network. A system constructed
`according to the technique may include a network interface
`coupled to the different low level networks. The system may 65
`further include a contact aggregation engine coupled to the
`network interface and a network contacts database. In opera-
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 12 of 17 PageID #: 134
`
`US 8,510,395 B2
`
`5
`
`3
`convenient network. The term "Internet" as used herein refers
`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
`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 35
`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- 60
`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-
`
`4
`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
`network protocols such as, by way of example but not limi-
`tation, HTTP or plain socket connections. The messages or
`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-
`l O 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
`15 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(cid:173)
`quest object to make HTTP requests to the server 104. The
`server 104 may reply with messages taken from the queue of
`20 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
`25 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
`30 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
`40 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
`45 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
`50 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
`55 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
`65 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
`
`
`
`Case 1:20-cv-01501-UNA Document 1-1 Filed 11/06/20 Page 13 of 17 PageID #: 135
`
`US 8,510,395 B2
`
`5
`
`30
`
`5
`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(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 20
`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.
`In an embodiment, the server 206 can save the content in
`one or many formats. In this way, the client 202 could make
`content available in a first IM format, the server 206 could
`convert the content into a second IM format, and the server
`206 can save the content in at least the second IM format.
`Thus, the client 210 could receive the data in the second IM
`format. The server 206 could easily store the content in the
`first IM format, as well, and make the content available to
`other clients coupled to the IM network 204. In addition, the
`server 206 could convert the content to other IM formats, such
`as those formats that are associated with the other IM net-
`works 212, and save the other IM formats. In this way, the 35
`other clients 214 may have access to the content.
`In a non-limiting embodiment, the client 202 may be able
`to view the client 210 and the clients 214 simultaneously. This
`is advantageous because IM clients typically cannot view IM
`clients from other IM networks. Advantageously, since the
`server 206 is used, the client 202 could even include, for
`example, a mobile device without a client. (Of course, this
`could be interpreted to mean that the client 202 is not an IM
`client at all, though the term client is still used for illustrative
`purposes because the client 202 is served by the server 206 in 45
`a client-server-like fashion.) In a non-limiting embodiment, if
`the client 202 does not or cannot install client software, the
`client 202 can use a browser for web-based messaging and
`display.
`FIG. 3 depicts an example of a system 300 capable of 50
`contact aggregation and display. The system 300 includes low
`level networks 302-1 to 302-N ( collectively referred to as the
`low level networks 302), a computer 304, and a display 306.
`The low level networks 302 may include, by way of example
`but not limitation, various IM networks. It may be noted that 55
`the computer 304 and the display 306 may be referred to, in
`certain implementations, as comprising a computer system.
`The computer 304 includes a network interface 308, net(cid:173)
`work login engines 310-1 to 310-N ( collectively referred to as
`network login engines 310), network contacts databases 60
`312-1 to 312-N (collectively referred to as the network con(cid:173)
`tacts database 312), a high level contacts database 314, a user
`profile database 316, and a contact aggregation engine 318.
`The network interface 308 is coupled to the low level
`networks 302. In a typical implementation, the network inter- 65
`face 308 also couples the computer 304 to a network such as
`the Internet and/or a high level network (not shown).
`
`6
`The network login engines 310 may include logic and
`storage that facilitates login to the various low level networks
`302. For example, the network login engine 310-1 may
`include a user name ( and perhaps a password, if the password
`is not requested from the user at each login) associated with
`the low level network 302-1. Conceptually, each of the net(cid:173)
`work login engines 310 is intended to represent the capability
`oflogin to the low level networks 302 in a general sense (i.e.,
`the data and logic required for any device to connect to the low
`10 level networks 302) and a user-specific sense (e.g., the data
`provided from a user that enables login to accounts associated
`with the user).
`The network contacts database 312, which is embodied in
`15 a computer-readable medium, includes contacts data associ(cid:173)
`ated with any of the networks into which a user has logged.
`When a user logs out, the data may or may not be cached ( or
`stored in non-volatile memory) for future reference, depend-
`ing upon the implementation and/or user configuration.
`The high level contacts database 314, which is embodied in
`a computer-readable medium, is an optional database that
`includes contacts associated with a high level network. The
`high level contacts database 314 is optional for at least two
`reasons. The first reason is that a system need not provide the
`25 ability to maintain high level contacts, requiring that a user
`maintain only low level contacts. The second reason is that
`even if the system provides the ability to maintain high level
`contacts, a user may opt not to maintain any high level con(cid:173)
`tacts, opting instead for low level contacts.
`The user profile database 316, which is embodied in a
`computer-readable medium, is intended to represent data
`associated with a user. The amount of data maintained is
`implementation-specific.
`The contact aggregation engine 318 is coupled to the data-
`bases 312, 314, 316, the network login engines 310, and the
`display 306. In operation, the contact aggregation engine 318
`controls the network login engines 310 to login to or facilitate
`login by a user to the various low level networks 302. The
`40 databases 312,314,316 are accessed in such a way that a list
`of contacts stored in the network contacts database 312 is
`aggregated and displayed on the display 306, as illustrated by
`the screenshots of FIGS. 4A-4B, and the flowcharts of FIGS.
`5-6.
`FIGS. 4A-4B depict examples of screenshots that depicts a
`multi-network IM display. In many cases, a user will login to
`a high level account and adjust user configurations such that
`the system will automatically login the user to various low
`level accounts. This may require storing login credentials so
`that the system can automatically login the user to each
`selected interface. FIG. 4A depicts an example of a screen-
`shot 400A for a full screen display. In the example of FIG. 4A,
`the