throbber
(12) United States Patent
`Tuttle et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,407,722 B2
`Mar. 26, 2013
`
`USOO8407722B2
`
`(54) ASYNCHRONOUS MESSAGING USINGA
`NODE SPECIALIZATION ARCHITECTURE
`IN THE DYNAMIC ROUTING NETWORK
`(75) Inventors: Timothy Tuttle, San Francisco, CA
`US): Karl E. Rumelhart, Palo Alt
`A ser
`umenart, Falo Allo,
`
`(*) Notice:
`
`(73) Assignee: Shaw Parsing L.L.C., Las Vegas, NV
`(US)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 1127 days.
`(21) Appl. No.: 11/396,251
`
`(22) Filed:
`(65)
`
`Mar. 30, 2006
`Prior Publication Data
`
`Oct. 11, 2007
`US 2007/O239822 A1
`Related U.S. Application Data
`(63) Continuation of application No. 10/105,018, filed on
`Mar 21, 2002, now Pat. No. 7,051,070, which is a
`continuation-in-part of application No. 10/017,182,
`filed on Dec. 14, 2001, now Pat. No. 7.043.525.
`s
`s
`sw - s
`(Continued)
`
`(51) Int. Cl.
`(2006.01)
`G06F 3/00
`(2006.01)
`G06F 15/16
`(52) U.S. Cl. ........................................ 719/316; 709/206
`(58) Field of Classification Search .................. 709/203,
`709/219; 719/309
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,230,048 A * 7/1993 Moy ................................. 707/1
`5,535,335 A
`7, 1996 Cox et al.
`5,692, 193 A 11/1997 Jagannathan et al.
`
`Receive
`Message
`
`identify
`Message
`Category
`
`lock Up
`
`Nisodes of the as
`t
`lities
`
`Tansmit
`
`- 4
`
`ea.
`
`5,699,523. A 12/1997 Li et al.
`$295 s A
`f 3. R E.
`5,754,939 A
`5/1998 Herz et al.
`(Continued)
`FOREIGN PATENT DOCUMENTS
`O 733983 A2
`9, 1996
`0 749 081 A1 12, 1996
`(Continued)
`
`EP
`EP
`
`OTHER PUBLICATIONS
`Franklin et al., “Dissemination-Based Information Systems.” IEEE
`Data Engineering Bulletin, vol. 19, No. 3, Sep. 1996, 9 pages.
`(Continued)
`
`Primary Examiner — Andy Ho
`Assistant Examiner — Tuan Dao
`(74) Attorney, Agent, or Firm — Sterne, Kessler, Goldstein
`& Fox PL.L.C.
`
`ABSTRACT
`(57)
`A network routes update messages containing updates to
`properties of live objects from input sources to clients having
`the objects. When the clients receive live objects, the clients
`identify the objectIDs associated with the objects and register
`the objectIDs with the routing network. The routing network
`is adapted to selectively send update messages to nodes in the
`network and the nodes forward the messages to the clients.
`One implementation uses a hierarchy of registries to indicate
`which nodes and clients receive which update messages.
`Another implementation assigns update messages to one or
`more of N categories and nodes to one or more of M types,
`and the gateways maintain mapping between categories and
`types. To ensure that clients receive all of the update messages
`for which they register, the clients connect to client proxies
`that in turn connect to at least one node of each type.
`
`37 Claims, 12 Drawing Sheets
`
`-N
`010
`
`a
`
`a
`
`a
`
`Deterine Clients
`
`E.
`
`ansmit
`
`a
`
`s
`Traini
`E -
`
`Clients
`
`107
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 1 of 29
`
`

`

`US 8,407,722 B2
`Page 2
`
`Related U.S. Application Data
`(60) Provisional application No. 60/256,613, filed on Dec.
`18, 2000, provisional application No. 60/276,847,
`filed on Mar. 16, 2001, provisional application No.
`60/278.303, filed on Mar. 21, 2001, provisional appli-
`cation No. 60/279,608, filed on Mar. 28, 2001, provi-
`sional application No. 60/280,627, filed on Mar. 29,
`2001.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,822,543 A 10, 1998 Dunn et al.
`5,845,324. A 12/1998 White et al.
`5,878.420 A
`3, 1999 de la Salle
`5,886,643 A
`3/1999 Diebboll et al.
`5.919,247 A
`7/1999 Van Hoffet al.
`5,933,429 A
`8, 1999 Bubenik et al.
`5,938,733 A
`8/1999 Heimsoth et al.
`5,964,839 A 10/1999 Johnson et al.
`5.974.457 A 10/1999 Waclawsky et al.
`6,018,619 A
`1/2000 Allard et al.
`6,029, 175 A
`2/2000 Chow et al.
`6,052,447 A
`4/2000 Golden et al.
`$95,493 A
`4.299 Ries et al.
`6,091,724. A * 7/2000 Chandra et al. ............... 370,390
`6,094,681. A
`7/2000 Shaffer et al.
`6,112,240 A
`8/2000 Pogue et al.
`6,138,158 A 10/2000 Boyle et al.
`6,173.406 B1
`1/2001 Wang et al.
`6,233,600 B1
`5/2001 Salas et al.
`6.253,167 B1
`6/2001 Matsuda et al.
`6.256,747 B1
`7/2001 Inohara et al.
`6.292,835 B1
`9/2001 Huang et al.
`$38,292 B 1929. Lecheler
`6,314.459 B1 * 1 1/2001 Freeman ....................... 709.220
`6,324,587 B1 * 1 1/2001 Trenbeath et al. ............ T19,310
`6,363,421 B2
`3/2002 Barker et al.
`6,366,926 B1* 4/2002 Pohlmann et al. ......... TO7 104.1
`6.405,245 B1
`6/2002 Burson et al.
`6,408,282 B1
`6/2002 Buist
`6,418.448 B1
`7/2002 Sarkar
`6,418.467 B1
`7/2002 Schweitzer et al.
`6,446,257 B1
`9/2002 Pradhan et al.
`6,449,638 B1
`9/2002 Wecker et al.
`6.460.036 B1
`10/2002 Herz
`6,484.143 B1
`11/2002 Swildens et al.
`6,502,131 B1
`12/2002 Vaid et al.
`6,510,323 B1* 1/2003 Stocker et al. ................ 455,466
`6,539.427 B1
`3/2003 Natarajan et al.
`6,553,413 B1
`4/2003 Leighton et al.
`6,560,611 B1
`5/2003 E.
`6,567,411 B2
`5/2003 Dahlen
`6,577.328 B2
`6/2003 Matsuda et al.
`6,606,596 B1
`8/2003 Zirngiblet al.
`6,606,643 B1
`8/2003 Emens et al.
`6,609,138 B1
`8/2003 Merriam
`6,654,804 B1
`1 1/2003 Fleming
`6,658,652 B1
`12/2003 Alexander et al.
`6,687,729 B1
`2/2004 Sievert et al.
`6,691, 165 B1
`2/2004 Bruck et al.
`6,725,446 B1
`4/2004 Hahn et al.
`6,728,747 B1
`4/2004 Jenkins et al.
`6,751,663 B1
`6, 2004 Farrell et al.
`6,760,324 B1
`7/2004 Scott et al.
`6,769,009 B1
`7/2004 Reisman
`6,789,115 B1
`9/2004 Singer et al.
`6,792.458 B1
`9, 2004 Muret et al.
`6,829,642 B1
`12/2004 Giroir et al.
`6.832.222 B1
`12/2004 Zimowski
`6836,886 B2 12/2004 Tuerke et al.
`6,871,346 B1
`3/2005 Kumbalimutt et al.
`6,918,084 B1
`7/2005 Slaughter et al.
`6,970,924 B1 1 1/2005 Chu et al.
`7,020,082 B2
`3/2006 Bhagavath et al.
`
`5, 2006 Tuttle et al.
`7,043,525 B2
`5/2006 Tuttle et al.
`7,051,070 B2
`9/2006 Fijolek et al.
`7,107,326 B1
`7,127,720 B2 10/2006 Canoet al.
`2:3: R
`1399; Sith et al.
`7207043 B2
`4/2007 Blythe et al.
`7.209.959 B1 * 4/2007 Campbell et al. ............. TO9,219
`232 R
`38 Estable et al.
`7,277.917 B2 10/2007 Tuttle et al.
`7,293,074 B1 * 1 1/2007 Jellinek et al. ................ TO9.218
`7.350,213 B2
`3/2008 Deutesfeld et al.
`7,412,518 B1
`8/2008 Duigou et al.
`7,426,721 B1
`339 Sarash et al.
`7.430,610 B2
`9/2008 Pace et al.
`7,516,177 B2
`4/2009 Knapp et al.
`7,565,359 B2
`7/2009 Nazem et al.
`2001/0012299 A1
`8, 2001 Dahlen
`2001/0047426 A1 11, 2001 Hunter
`2002/0010757 A1
`1/2002 Grank et al.
`2002fOO13852 A1
`1/2002 Janik
`2002/0024536 A1
`2/2002 Kahan et al.
`2002.0056004 A1
`5, 2002 Smith et al.
`2002/0073.165 A1
`6/2002 McNulty et al.
`2002fOO78251 A1
`6, 2002 Lewis
`2002fOO87630 A1* 7, 2002 Wu ............................... TO9,203
`2002fO095399 A1
`7, 2002 Devine et al.
`2002/0120717 A1* 8, 2002 Giotta ........................... TO9,219
`2002fO165977 A1* 11/2002 Novaes ......................... TO9,238
`2003, OO26254 A1
`2/2003 Sim
`2003/004111.0 A1
`2/2003 Wenocur et al.
`2003/O120817 A1
`6, 2003 Ott et al.
`2003. O1401 11 A1
`7, 2003 Pace et al.
`2004/0139433 A1
`7/2004 Blythe et al.
`2004/0199926 A1 10/2004 Gilgen et al.
`2004/0215493 A1 10/2004 Koppes et al.
`2005/0027815 A1
`2/2005 Christodoulou et al.
`2005/0033841 A1
`2/2005 McCarthy et al.
`2005/0125557. A
`6/2005 Vasudevanet al.
`2005/0278726 A1 12/2005 Cano et al.
`2006/0031282 A1
`2/2006 Tuttle et al.
`2006, OO31283 A1
`2/2006 Tuttle et al.
`2006/0041681 A1
`2/2006 Rumelhart
`2006/0075.279 A1
`4/2006 Cameros et al.
`2006/01 17318 A1
`6/2006 Rumelhart et al.
`2006/0265488 A1 11/2006 Tuttle et al.
`2007/0033293 A1
`2/2007 Rumelhart
`2007/0050519 A1
`3, 2007 Cano et al.
`2007/0061811 A1
`3/2007 Rumelhart et al.
`2009/0077173 A1
`3/2009 Lowery et al.
`FOREIGN PATENT DOCUMENTS
`O 889 421 A1
`1, 1999
`EP
`WO97, 16796 A1
`5, 1997
`WO
`WOO1,63837 A2
`8, 2001
`WO
`WO WO 2005/046184 A1
`5, 2005
`OTHER PUBLICATIONS
`Nagami et al., “Toshiba's Flow Attribute Notification Protocol
`(FANP) Specification.” Apr. 1997, RFC 2129, Internet RFC/STD/
`FYI/BCP Archives online), retrieved on May 16, 2002. Retrived
`from the Internet: <landfield.com/rfcs/rfc2129.html>, 16 pages.
`Strom et al., “Gryphon: An Information Flow Based Approach to
`Message Brokering.” International Symposium on Software Reli
`ability Engineering 98, 1998, 2 pages.
`Sturman et al., “Reflection in the Gryphon Message Brokering Sys
`tem.” Reflection Workshop of the 13. Sup,th ACM Conference on
`Object Oriented Program Systems, Languages and Applications
`(OOPSLA '98), 1998, 5 pages.
`International DOI Foundation, “Introduction to the Digital Object
`Identifier,” online). Apr. 1998 retrieved on May 16, 2002).
`Retrieved from the Internet: <doi.org/introduction.html>, 4 pages.
`Aksoy et al., “Research in Data Broadcast and Dissemination”. Proc.
`1st Int’l Conf. on Advanced Multimedia Content Processing, Osaka
`University, Osaka, Japan, Nov. 1998.
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 2 of 29
`
`

`

`US 8,407,722 B2
`Page 3
`
`Banavar et al., “An Efficient Multicast Protocol for Content-Based
`Publish-Subscribe Systems.” Proc. of the 19th International Confer
`ence on Distributed Computing Systems, 1999, 9 pages.
`Banavar et al., “Information Flow Based Event Distribution
`Middleware.” Proceedings of the 1999 ICDCS Workshop on Elec
`tronic Commerce and Web-Based Applications, 1999, 8 pages.
`Aguilera et al., “Matching Events in a Content-based Subscription
`System.” Eighteenth ACM Symposium on Principles of Distributed
`Computing (PODC 99), Atlanta, GA. May 4-6, 1999, 9 pages.
`Banavar et al., “A Case for Message Oriented Middleware.” Distrib
`uted Computing, 13. Sup,th International Symposium, Bratislava,
`Slavak Republic, Sep. 27-29, 1999, 18 pages.
`Aguilera et al., “Efficient Atomic Broadcast Using Deterministic
`Merge.” Symposium on Principles of Distributed Computing, 2000,
`10 pages.
`Opyrchal et al., “Exploiting IP Multicast in Content-Based Publish
`Subscribe Systems.” Proceedings of the IFIP ACM International
`Conference on Distributed Systems Platforms (Middleware 2000),
`Apr. 2000, 23 pages.
`Caplin Systems Ltd., White Paper “Real Time Text Protocol
`(RTTP).” Version 1.1, Sep. 2000, 11 pages.
`Reuters, "Reuters Market Data Systems and the Trading Solutions
`Architecture.” Version 1.0, Jan. 12, 2001, 51 pages.
`Ramamrithan et al., “Dissemination of Dynamic Data on the
`Internet,” online). Powerpoint Presentation, Spring 2001, retrieved
`on Feb. 6, 2002), 5 pages. Retrieved from the Internet <.cs.umbc.edu/
`courses graduate/CMSC691T/spring. Sub-2001/rlist amit.ppt).
`ComputerLetter, vol. 17. No. 23, Jul. 16, 2001, pp. 1-8.
`ComputerLetter, vol. 17. No. 31, Sep. 24, 2001, pp. 1-6.
`ComputerLetter, vol. 17. No. 35, Nov. 5, 2001, pp. 1-6.
`Tuttle et al., “Upstream Delivery of Information in a Digital Net
`work”, U.S. Appl. No. 09/901,582, filed Jul. 9, 2001.
`“Repackaging the Net'. ComputerLetter, vol. 17, No. 35, Nov. 5,
`2001, pp. 1-5.
`"Reckoning with IP, ComputerLetter, vol. 17. No. 37, Nov. 19.
`2001, pp. 1-6.
`“Persistence Counts”. ComputerLetter, vol. 17, No. 23, Jul. 16, 2001,
`pp. 1, 5-7.
`Zhao et al.; "A Workflow-centric Study of Organizational Knowledge
`Distribution.” Proceedings of the 33rd Hawaii International Confer
`ence on System Sciences; 2000; pp. 1-10; IEEE.
`Gribble, et al.; "The Ninja Architecture for Robust Internet-scale
`Systems and Services.” ComputerNetworks; 2001; pp. 473-497; vol.
`35; Elsevier Science B.V.
`Carmona, David; “Programming the Thread Pool in the .NET Frame
`work'; 'Online Jun. 2002, pp. 1-17, XP002357234; retrieved on
`Dec. 1, 2005 from the Internet: URL:http://msdn.microsoft.com/
`library/default.asp?url=/library/en-us/dndotnet/hmtl/progthrepool.
`asp>, pp. 1-17.
`Welsh, Matthew D.; "An Architecture for Highly Concurrent, Well
`Conditioned Internet Services': URL: http://www.eecs.harvard.edu/
`{mdw?papers/mdw-phdthesis/pdf>, 2005, pp. 48-54, 101, and 113
`114.
`Written Opinion of the International Searching Authority for Inter
`national Application No. PCT/US2005/029162, recorded Jan. 17,
`2006, 7 pages.
`Written Opinion of the International Searching Authority for Inter
`national Application No. PCT/US2005/029021, recorded Dec. 14,
`2005, 10 pages.
`
`Written Opinion of the International Searching Authority for Inter
`national Application No. PCT/US2005/029158, recorded Jan. 25,
`2006, 7 pages.
`Non-Final Office Action dated Oct. 26, 2009, U.S. Appl. No.
`1 1/205.263, Rumelhart et al., filed Aug. 15, 2005.
`Final Office Action dated Nov. 24, 2009, U.S. Appl. No. 1 1/205.237,
`Rumelhart et al., filed Aug. 15, 2005.
`Non-Final Office Action dated May 3, 2005, 8 pages in U.S. Appl.
`No. 10/017,182, Tuttle et al., filed Dec. 14, 2001.
`Notice of Allowance dated Jan. 3, 2006, U.S. Appl. No. 10/105,018,
`Tuttle et al., filed Mar. 21, 2002.
`Notice of Allowance dated Jul. 5, 2006, U.S. Appl. No. 10/105,018,
`Tuttle et al., filed Mar. 21, 2002.
`Non-Final Office Action dated Aug. 9, 2005, U.S. Appl. No.
`10/213,269, Cano et al., filed Aug. 5, 2002.
`Final Office Action dated Jan. 26, 2006, U.S. Appl. No. 10/213,269,
`Cano et al., filed Aug. 5, 2002.
`Notice of Allowance dated Jun. 6, 2006, U.S. Appl. No. 10/213.269,
`Cano et al., filed Aug. 5, 2002.
`Non-Final Office Action dated Feb. 3, 2009, U.S. Appl. No.
`1 1/205,233, Rumelhart et al., filed Aug. 15, 2005.
`Non-Final Office Action dated Aug. 6, 2009, U.S. Appl. No.
`1 1/205,233, Rumelhart et al., filed Aug. 15, 2005.
`Non-Final Office Action dated Apr. 22, 2008, U.S. Appl. No.
`1 1/205.237, Cameros et al., filed Aug. 15, 2005.
`Non-Final Office Action dated Apr. 29, 2009, U.S. Appl. No.
`1 1/205.237, Cameros et al., filed Aug. 15, 2005.
`Final Office Action dated Nov. 25, 2008, U.S. Appl. No. 1 1/205.237,
`Cameros et al., filed Aug. 15, 2005.
`Notice of Allowance dated May 22, 2007, U.S. Appl. No. 1 1/347,802,
`Tuttle et al., filed Feb. 3, 2006.
`Non-Final Office Action dated Jan. 26, 2007, U.S. Appl. No.
`1 1/347,802, Tuttle et al., filed Feb. 3, 2006.
`Non-Final Office Action dated Mar. 6, 2009, U.S. Appl. No.
`1 1/515,233, Rumelhart et al., filed Aug. 31, 2006.
`Final Office Action dated Oct. 7, 2009, U.S. Appl. No. 1 1/515,233,
`Rumelhart et al., filed Aug. 31, 2006.
`Non-Final Office Action dated Jan. 7, 2010, U.S. Appl. No.
`1 1/205,233, Rumelhart et al., filed Aug. 15, 2005.
`Non-Final Office Action dated Feb. 22, 2010, U.S. Appl. No.
`1 1/515,233, Rumelhart et al., filed Aug. 31, 2006.
`Final Office Action dated Mar. 23, 2010, U.S. Appl. No. 1 1/205.263,
`Rumelhart et al., filed Aug. 15, 2005.
`U.S. Appl. No. 13/617,168, Tuttle et al., “Asynchronous Messaging
`Using A Node Specialization Architecture in the Dynamic Routing
`Network.” filed Sep. 14, 2012.
`Non-Final Rejection mailed Aug. 9, 2005 for U.S. Appl. No.
`10/213,269, filed Aug. 5, 2002; 11 pages.
`Final Rejection mailed Jan. 26, 2006 for U.S. Appl. No. 10/213,269,
`filed Aug. 5, 2002; 8 pages.
`Notice of Allowance mailed Jun. 6, 2006 for U.S. Appl. No.
`10/213,269, filed Aug. 5, 2002; 4 pages.
`Non-Final Rejection mailed Aug. 26, 2010 for U.S. Appl. No.
`11/515.366, filed Aug. 31, 2006; 16 pages.
`Final Rejection mailed Feb. 17, 2011 for U.S. Appl. No. 1 1/515.366,
`filed Aug. 31, 2006; 30 pages.
`Notice of Allowance mailed Nov. 10, 2005 for U.S. Appl. No.
`10/017,182, filed Dec. 14, 2001; 6 pages.
`* cited by examiner
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 3 of 29
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 1 of 12
`
`US 8,407,722 B2
`
`0 || ||
`
`
`
`
`
`
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 4 of 29
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 2 of 12
`
`US 8,407,722 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`?senbax|| 36ed qÐNA
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 5 of 29
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 3 of 12
`
`US 8,407,722 B2
`
`$ (61-)
`
`
`
`
`
`GOES GEES GEG) GEG? GÐ) GE? G? G?)} v\!
`
`
`
`
`
`
`
`0 || ||
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 6 of 29
`
`

`

`U.S. Patent
`
`Mar.26, 2013
`
`Sheet 4 of 12
`
`US 8,407,722 B2
`
`
`
`€seyeqL\ius\V4!vepue|yeOoy\dsLeNoy
`Z=XeL0616FO9ds
`
`$dlO9$|J2Q}004
`§=6syods=|e007
`
`OLY
`
`cL?
`
`OLY
`
`$2100S
`leqeseg
`
`seio9g
`
`OP
`
`
`
`siapleyPUeLYeEO
`
`
`
`sAoqmoysejeg
`
`siaBpogv7
`
`SJUBEID4S
`
`
`
`siaBueysexes
`
`SVPUe|HeO
`
`PETITIONERS - AMERICAN/SOUTHWEST,Exhibit 1001
`Page 7 of 29
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 7 of 29
`
`
`
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 5 of 12
`
`US 8,407,722 B2
`
`
`
`O)
`O
`h
`
`O
`CO
`
`-
`
`O.
`C
`
`.
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 8 of 29
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 6 of 12
`
`US 8,407,722 B2
`
`
`
`
`
`
`
`Terminate
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`61O
`
`612
`
`Parse Page
`and identify
`Object IDs
`
`Connect to
`Routing
`Network
`
`Register
`Object IDs
`With
`Network
`
`Message
`Received
`from Network
`?
`
`
`
`Update
`ldentified
`Object
`
`Fig. 6
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 9 of 29
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 7 of 12
`
`US 8,407,722 B2
`
`710A
`
`71OB
`
`71OC
`
`71 OD
`
`Information
`ProVider
`
`
`
`
`
`Dynamic
`Content
`Provider
`
`O O.
`
`O.
`
`Global Load Balancer
`
`16
`
`Cluster Load Balancer
`
`- - - - - - -
`Cluster Load
`Balancer 720A
`
`|
`
`724A
`
`I
`
`Cluster Load
`Balancer 722A
`
`Cluster Load Balancer
`
`
`
`Global Load Balancer
`
`71
`
`712A
`
`712B
`
`712C
`Fig. 7
`
`712D
`
`712E
`
`712F
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 10 of 29
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 8 of 12
`
`US 8,407,722 B2
`
`
`
`Receive
`Message
`
`Extract DS
`
`Look up
`Registered
`Nodes
`
`Transmit
`Message to
`Registered Nodes
`if any
`
`Look up
`Registered
`Clients
`
`Transmit
`Message to
`Registered
`Clients
`
`Fig. 8
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 11 of 29
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 9 of 12
`
`US 8,407,722 B2
`
`
`
`Node of Type 1
`732
`
`Node of Type 2
`732
`
`Client Proxy
`
`Client 1
`
`Client 2
`
`110
`
`Fig. 9
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 12 of 29
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 10 of 12
`
`US 8,407,722 B2
`
`
`
`Receive
`Message
`
`identify
`Message
`Category
`
`Look Up
`Nodes of the
`Message
`Category
`
`Transmit
`Message to
`ldentified Nodes
`
`Determine Clients
`Registered for the
`Message and Client
`Proxies Connected
`to the Clients
`
`Transmit
`Message to
`Client Proxy
`
`Transmit
`Message to
`Registered
`Clients
`
`Fig. 10
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 13 of 29
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 11 of 12
`
`US 8,407,722 B2
`
`
`
`Node of Type 1
`
`Node of Type 2
`
`Client 1
`
`110
`
`Client Proxy
`736
`
`Fig. 11
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 14 of 29
`
`

`

`U.S. Patent
`
`Mar. 26, 2013
`
`Sheet 12 of 12
`
`US 8,407,722 B2
`
`
`
`Node of Type 1
`
`Node of Type 2
`
`Node of Type 3
`
`Client 1
`
`Client 1
`
`110
`
`Fig. 12
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 15 of 29
`
`

`

`US 8,407,722 B2
`
`1.
`ASYNCHRONOUS MESSAGING USINGA
`NODE SPECIALIZATION ARCHITECTURE
`IN THE DYNAMIC ROUTING NETWORK
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`This application is a continuation of U.S. application Ser.
`No. 10/105,018 filed Mar. 21, 2002 (now U.S. Pat. No. 7,051,
`070), which is a continuation-in-part of U.S. application Ser.
`No. 10/017,182 filed Dec. 14, 2001 now U.S. Pat. No. 7,043,
`525, which claims the benefit of U.S. Provisional Application
`No. 60/256,613, filed Dec. 18, 2000, U.S. Provisional Appli
`cation No. 60/276,847, filed Mar. 16, 2001, U.S. Provisional
`Application No. 60/278.303, filed Mar. 21, 2001, U.S. Pro
`visional Application No. 60/279,608, filed Mar. 28, 2001, and
`U.S. Provisional Application No. 60/280,627, filed Mar. 29,
`2001, all of which are hereby incorporated by reference
`herein.
`
`10
`
`15
`
`BACKGROUND
`
`2
`sions, cellular telephones, personal digital assistants and
`other handheld devices, and special-purpose web-browsing
`appliances. Client devices typically employ a program called
`a “web browser' for interpreting the HTML or other display
`instructions in the web page and displaying the content
`accordingly. Most web browsers include special functional
`ity, such as a Java Virtual Machine, for executing JAVAR)
`applets and/or other applets or scripts embedded in the web
`pageS.
`A client device specifies a web page or other document on
`the web using a Uniform Resource Locator (URL). A URL
`has the form “service://server/path/file.” Here “service'
`refers to the protocol to be used, such as the file transfer
`protocol (FTP) or the hypertext transport protocol (HTTP).
`“Server' is the IP address of the server containing the page,
`and “path/file’specifies the particular web page on the server.
`The Web suffers from a substantial limitation with respect
`to dynamically updating content in a web page at a client
`device. The Web’s only mode of operation is for a client
`device to first request a page from a server and then for the
`server to send the requested page to the client device. Once
`the server delivers the page to the client, it typically termi
`nates its connection to the client, and does not retain any
`information about the client or the page that was sent. For this
`reason, servers are typically “stateless. As a result, client
`devices drive and control the flow of information around the
`Web. While client-side control is appropriate in some situa
`tions, it does not permit efficient updating of data at the client
`devices. For example, ifa web page contains information that
`may change, such as the score of a baseball game or a stock
`quote, the server has no way to inform the client devices that
`are viewing the page of the change. Instead, the client devices
`must ask the server for the updated information. However, the
`client devices do not know when the information on the web
`page has changed, and thus do not know to ask for the update.
`There are some simple web programming techniques that
`attempt to update content on client device-side web pages.
`One approach that web designers use is to rely on the client
`devices to periodically re-request web pages. This updating
`can be performed as the result of user action (such as pressing
`the “refresh' button) or can be automated to occur on a
`particular schedule (such as by using the HTML Meta
`Refreshtag to cause the client device to request the page every
`X seconds). Although this technique provides client devices
`with more up-to-date information, it is very wasteful of
`resources. In particular, the web server must resend the page
`even if nothing has changed, and, even when something has
`changed, it must resend the entire web page rather than just
`the updated information, which may be only a very small part
`of the page. Further, attempting to reduce unnecessary
`requests by decreasing the request rate results in decreasing
`the currency of the data. This is an unalterable trade off in a
`client-driven approach.
`The performance of automatic refreshing can be improved
`Somewhat by putting information that may change in a sepa
`rate frame from information that is less likely to change, and
`only refreshing the separate frame. A few web designers even
`write custom JAVA applets to limit refreshing to individual
`components on a page, such as the score of a Soccer game. A
`willingness to go to such effort illustrates the serious drain of
`resources caused by frequent refreshing. Nevertheless, even
`custom JAVA applets are not a meaningful attack on this
`problem. Custom applets require a large separate develop
`ment effort for each item on each page that might need to be
`updated. More importantly, most custom applets still update
`content based upon client-driven requests, although it is pos
`sible to design an applet that accepts “pushed' messages. This
`
`25
`
`30
`
`35
`
`40
`
`45
`
`1. Field of the Invention
`This invention pertains in general to transferring informa
`tion through digital networks and in particular to transferring
`information for remotely updating content at client devices
`through the digital networks.
`2. Background Art
`The Internet is a digital network of computers. An indi
`vidual computer on the Internet is typically identified by an
`internet protocol (IP) address. A computer on the Internet
`sends a packet of information to another computer by routing
`the packet to a logical port at the destination computer's IP
`address. The destination computer interprets the packet
`according to one of several possible protocols determined by
`the port to which the packet was sent.
`The World WideWeb (the “Web’) is a collection of tech
`nology and content available on the Internet that allows the
`content to be routed from server computers to particular des
`tination computers. The Web includes a large number of web
`pages residing on many different servers. Web pages contain
`one or more files, or references to one or more files, specify
`ing instructions for presenting the web page and content, Such
`as text, images, applets, video, and/or audio.
`Web pages use a variety of definitional and programming
`languages to control how information is presented. The most
`fundamental of these is the Hypertext Markup Language
`(HTML). HTML uses a system of “tags' to specify how
`content should be displayed. Recent advances in HTML
`introduce “style sheets” which help separate content infor
`50
`mation from display information. HTML has also been modi
`fied and extended to provide new capabilities. For example,
`Extensible Markup Language (XML) adds semantic content
`to web pages. In addition, Dynamic HTML (DHTML) adds
`Some dynamic content to web pages.
`A web page may also include one or more programs for
`controlling how the web page is displayed. For example,
`JAVAR) applets and JAVASCRIPTR) scripts may be used to
`control the display of a web page. In addition, DHTML uses
`Scripts to control the dynamic content. Thus, a web page
`designer can use applets and scripts to produce animation
`effects or modify the display based on user interaction. For
`example, the designer can write a script that changes the color
`of a piece of text when a user clicks on a button.
`Devices that display/execute web pages are often called
`“client devices” or simply "clients.” Client devices include
`personal computers, web-enabled set-top boxes and televi
`
`55
`
`60
`
`65
`
`PETITIONERS - AMERICAN/SOUTHWEST, Exhibit 1001
`Page 16 of 29
`
`

`

`US 8,407,722 B2
`
`3
`solution is not scalable to provide updated information for
`large numbers of client devices and for large numbers of web
`pageS.
`Therefore, there is a need in the art for an efficient way to
`provide dynamic content to a web page at a client device.
`
`DISCLOSURE OF THE INVENTION
`
`4
`client proxies. The client proxies, in turn, transmit the mes
`sages to the clients that have registered for the messages.
`The features and advantages described in this Summary and
`the following detailed description are not all-inclusive, and
`particularly, many additional features and advantages will be
`apparent to one of ordinary skill in the art in view of the
`drawings, specification, and claims hereof.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a high-level block diagram illustrating an envi
`ronment containing a dynamic content routing network;
`FIG. 2 is an interaction diagram illustrating interactions
`among a server, information provider, dynamic content pro
`vider, client, and routing network to update a property of a live
`object on a web page;
`FIG. 3 is a high-level diagram graphically indicating the
`many-to-many mapping performed by the routing network;
`FIG. 4 illustrates two different web pages containing sports
`Scores;
`FIG. 5 is a block diagram illustrating an input source and
`the tools available to it for generating the update messages;
`FIG. 6 is a flow chart illustrating the steps performed by an
`embodiment of an activation module:
`FIG. 7 is a block diagram illustrating a lower-level view of
`the routing network according to an embodiment of the
`present invention;
`FIG. 8 is a flow chart illustrating steps performed by a
`gateway and a node in a cluster to perform object-based
`routing of a message received from an input source in an
`embodiment using a hierarchy of registries;
`FIG. 9 is a block diagram illustrating a high-level view of
`the routing network in an embodiment adapted to use mes
`sage categories, node types, and client proxies;
`FIG. 10 is a flow chart illustrating steps performed by a
`gateway, a node that stores client registration information,
`and a pass-through client proxy to perform object-based rout
`ing of a message received from an input source:
`FIG. 11 is a block diagram illustrating a high-level view of
`the routing network for an embodiment in which the client
`proxy stores the client registration information; and
`FIG. 12 is a block diagram illustrating a high-level view of
`the routing network for an embodiment in which the nodes
`adopt client proxy functionality.
`The figures depict an embodiment of the present invention
`for purposes of illustration only. One skilled in the art will
`readily recognize from the following description that alterna
`tive embodiments of the structures and methods illustrated
`herein may be employed without departing from the prin
`ciples of the invention described herein.
`
`DETAILED DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`
`FIG. 1 is a high-level block diagram illustrating an envi
`ronment 100 containing a dynamic content routing network
`110 (hereafter referred to as the “routing network”). The
`environment 100 also contains a server 112 in communica
`tion with a client 114, an information provider 108, and a
`dynamic content provider 116. Although a typical environ
`ment 100 will have hundreds of servers 112 and information
`providers 108, thousands (or even millions) of clients 114,
`and multiple dynamic content providers 116, FIG. 1 illus
`trates only one of each of these entities in order to enhance the
`clarity of this description.
`The server 112, client 114, information provider 108,
`dynamic content provider 116, and routing network 110 are
`
`The above need is met by a dynamic content routing net
`work that routes messages containing data for updating prop
`erties of live objects to clients displaying web pages or other
`representations of data containing the live objects. The web
`server that initially provides the web pages to the clients does
`not need to track which clients are currently displaying the
`live objects. Instead, the information provider or a dynamic
`content provider (generically referred to as an "input source”)
`that provided the live object simply sends an update message
`to the routing network. This routing utilizes bandwidth effi
`ciently because the update messages are provided to the cli
`ents only when the live objects change.
`The routing network is adapted to selectively send mes
`sages to the nodes in the network. In one embodiment, a
`hierarchy of registrations is used. Each gateway in the routing
`network maintains the mappings between the live: objects
`and the nodes that have registered for the live objects. Each
`node in the routing network, in turn, maintains the mappings
`between the live objects and the clients that display them. An
`input source provides a message to a gateway in each cluster
`in the routing network. Each gateway forwards to each node
`only messages that reference the objects for which it has
`registered. Each node forwards to each client only messages
`that reference the objects for which it has registered. Adding
`node functionality to the gateway and client functionality to
`the node advantageously allows the routing network to decide
`which nodes should receive an update message. As a result,
`messages are sent to only nodes that have registered for the
`messages. Furthermore, each node receives all the messages
`that the clients connected to that node are interested in.
`In another embodiment, all messages from an input source
`are assigned to one or more of N categories. Also, the nodes
`are assigned to one or more of M types, and mappings are
`created between message categories and node types. Each
`gateway keeps track of these mappings. When a gateway
`receives messages from input sources, the gateway identifies
`the categories of the messages and routes the messages to the
`nodes of the types to which the categories are mapped. To
`ensure that clients have access to the messages they need,
`clients are allowed to communicate with nodes of several
`types using client proxies connected between the clients and
`the nodes. There are at least two ways to implement the cl

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket