throbber
USOO8239852B2
`
`(12) Unlted States Patent
`(10) Patent No.:
`US 8,239,852 B2
`
`Etchegoyen
`(45) Date of Patent:
`Aug. 7, 2012
`
`(54) REMOTE UPDATE OF COMPUTERS BASED
`ON PHYSICAL DEVICE RECOGNITION
`
`(75)
`
`.
`.
`Inventor: Cralg Stephen Etchegoyen, Irv1ne, CA
`(US)
`
`(73) Assignee: Uniloc Luxembourg S.A., Luxembourg
`(LU)
`
`5,490,216 A
`51666415 A
`5,745,879 A
`5,754,763 A
`5,790,664 A
`5,925,127 A
`5,974,150 A
`
`2/ 1996 Richardson, 111
`9/1997 Kaufman
`4/1998 Wyman
`5/1998 Bereiter
`8/1998 Coley et 31.
`7/1999 Ahmad
`10/1999 Kaish et al.
`
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`AU
`
`678985
`
`6/1997
`
`.
`(Confirmed)
`
`(21) Appl. No.: 12/818,906
`.
`.
`Ffled‘
`
`Jun' 18’ 2010
`
`(22)
`
`OTHER PUBLICATIONS
`Williams, R., “A Painless Guide to CRC Error Detection Algo-
`rithms”, Ver. 3, Aug. 19, 1993.
`
`(65)
`
`Prior Publication Data
`
`(Continued)
`
`Dec. 30, 2010
`US 2010/0333081 A1
`Related US. Application Data
`(60) Provisional application No. 61/220,092, filed on Jun.
`24, 2009-
`
`Primary Examiner 7 Wei Zhen
`Assistant Examiner * Qing Chen
`74 All
`, A
`I,
`F' 7 Sean D. Burdick
`(
`)
`orney
`gen or
`Irm
`(57)
`ABSTRACT
`
`(51)
`
`Int. Cl.
`(2006.01)
`G06F 9/44
`(52) US. Cl.
`......................... 717/172- 717/168- 717/171
`(58) Field of Classification Search
`’
`717/1687178
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`'
`
`US. PATENT DOCUMENTS
`4 351 982 A
`9/1982 Miller et a1
`4,658,093 A
`4/1987 Hellman
`4,704,610 A
`11/1987 Smith et 31,
`4,796,220 A
`1/1989 Wolfe
`511555847 A * 10/1992 Klrouac et 3L ~~~~~~~~~~~~~~~ 709/221
`gégégg :
`$13343! gfiiiyet 31'
`5:414:269 A
`5/1995 Takahashi
`5,418,854 A
`5/1995 Kaufman et 31.
`5,440,635 A
`8/1995 Bellovin et a1.
`
`100
`
`A system for remotely updating a program configuration
`includes an update server in communication with a client
`deVice configured to execme a remme update Program The
`client device includes a first processor coupled to memory
`storing the program WhiCh’ executed, performs physical
`device recognition on the client device to determine its
`machine parameters, and generates unique device identifiers
`based thereon, and a first transceiver configured to send the
`identifiers to the update server. The update server is config-
`ured to collect the identifiers from the client device, and
`includes a second processor for analyzing the identifiers and
`determining an updated program configuration based on the
`collected identifiers matching known identifiers, anda second
`transceiver configured to deliver data representing the
`updatedprogram configurationto the client device for storage
`therem
`
`18 Claims, 6 Drawing Sheets
`
`I CLIENT
`I DEVICE
`
`111 1
`
`
`
`
`107
`CLIENT PROGRAM
`
`DELIVERS THE
`UPDATE TO THE
` UPDATE
`
`
`PROGRAM
`DELIVERED VIA
`
`NETWORK To
`CUSTOMER,
`UPDATES MAV BE
`BINARY
`
`ExECUTNaLEs,
`’101
`PATCHES. DLLs,
`
`
`/
`
`,
`CLIENT
`COMPUTER
`LOADS SECOND
`ORTHIRD ,
`
`MSIS0R ASSETS
`PROGRAM11I
`
`
`
`
`DATA IS RECEIVED BY THE
`
`UPDATE SERVER, THE INFO
`
`SEND RE DEVICEACCOUNT,
`GEO-LOCATION AND PROGRAM
`
`ARE INSPECTED AND A SUITABLE
`UPDATE IS SELECTED,
`ADDITIONAL DATA To BE
`CONSIDERED Is THE LOCATION
`OF THE USER WITHIN A GIVEN
`AUDIT
`PROGRAMAND/DR FEATURES
`SERVER
`THE USER IS ENTITLED To
`
`
`CLIENT SIDE
`PROGRAM SENDS
`DATA REGARDING
`
`ACCOUNT. DEVICE,
`AND PROGRAM INFO
`
`FOR AN UPDATE
`DELIVERY SERVER
`
`
`
`
`
`APPLE EXHIBIT 1 101
`
`Page 1 of 15
`
`APPLE EXHIBIT 1101
`Page 1 of 15
`
`

`

`US 8,239,852 B2
`
`Page 2
`
`2007/0169087 A1*
`2007/0198422 A1
`2007/0203846 A1
`2007/0219917 A1
`2007/0282615 A1
`2008/0065552 A1
`2008/0086423 A1
`2008/0147556 A1
`2008/0167943 A1
`2008/0228578 A1
`2008/0320607 A1
`2009/0037337 A1*
`2009/0083730 A1
`2009/0138975 A1
`
`........................... 717/168
`7/2007 Fadell
`8/2007 Prahlad et al.
`8/2007 Kavuri et al.
`9/2007 Liu et al.
`12/2007 Hamilton et al.
`3/2008 Elazar et a1.
`4/2008 Waites
`6/2008 Smith et al.
`7/2008 O’Neil et a1.
`9/2008 Mashinsky
`12/2008 Richardson
`2/2009 Baitalmal et al.
`3/2009 Richardson
`5/2009 Richardson
`
`............... 705/59
`
`EP
`EP
`EP
`EP
`W0
`W0
`W0
`W0
`W0
`W0
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`W0
`
`FOREIGN PATENT DOCUMENTS
`1 096 406
`5/2001
`1637958
`3/2006
`1637961
`3/2006
`1670188
`6/2006
`W0 9220022
`11/1992
`W0 9301550
`1/1993
`W0 9535533
`12/1995
`W0 0067095
`11/2000
`WO 01/90892
`11/2001
`WO 2005104686
`11/2005
`WO2007060516
`5/2007
`WO2008013504
`1/2008
`WO2008157639
`12/2008
`WO2009039504
`3/2009
`WO2009065135
`5/2009
`WO2009076232
`6/2009
`WO2009105702
`8/2009
`WO2009143115
`11/2009
`WO 2009158525
`12/2009
`
`OTHER PUBLICATIONS
`
`Angha, F. et al., “Securing Transportation Network Infrastructure
`with Patented Technology ofDevice LockingiDeveloped by Uniloc
`USA”,
`avail.
`at: http://www.dl<sassociates.com/admin/paperfile/
`ITS%20World%20Paper%20SubmissioniUniloc%20727.pdf,
`Oct. 24, 2006.
`Econolite, “Econolite and Uniloc Partner to Bring Unmatched Infra-
`structure Security to Advanced Traffic Control Networks with
`Launch of Strongpoint”, avail. at: http://www.econolite.com/docs/
`press/20080304,Econolite,StrongPoint.pdf, Mar. 4, 2008.
`Microsoft Corporation, “Operations Guide: Microsoft Systems Man-
`agement Server 2003,” 2003, Internet Citation retrieved on Jun. 27,
`2007. XP 002439673.
`Rivest, R. “RFC 13217The MD5 Message Digest Algorithm,” Apr.
`1992, Retrieved from the Internet on Jul. 21, 2005.
`Wikipedia: “Software Extension,” May 28, 2009, Internet Article
`retrieved on Oct. 11, 2010. XP002604710.
`H. Williams, et al., “Web Database Applications with PHP &
`MySQL”, Chapter 1, “Database Applications and the Web”, ISBN
`0-596-00041-3, O’Reilly & Associates, Inc., Mar. 2002, avail. at:
`http://docstore.mik.ua/orelly/webprog/webdb/ch01,01.htm.
`XP002603488.
`
`* cited by examiner
`
`APPLE EXHIBIT 1 101
`
`Page 2 of 15
`
`............... 717/168
`
`............. 717/173
`
`............... 713/200
`
`..................... 717/170
`
`.................. 717/173
`
`............. 717/172
`
`............... 717/173
`
`................. 713/191
`
`.................... 381/60
`
`U.S. PATENT DOCUMENTS
`Horstrnann
`12/1999
`3/2000
`Colvin
`12/2000
`Bharathan et al.
`5/2001
`Revashetti et a1.
`5/2001
`Cohen
`6/2001
`Pearce et al.
`9/2001
`Brunfeld et al.
`11/2001
`Eldering
`........................ 709/219
`* 12/2001
`Fawcett
`12/2001
`England et a1.
`9/2002
`Nash
`* 10/2002
`a1Safadi et al.
`3/2003
`Augarten
`8/2004
`Colvin
`2/2005
`Lambiase
`4/2005
`Kidder et al.
`7/2005
`Doherty et al.
`12/2005
`Tadayon et al.
`4/2006
`Su et al.
`6/2006
`Aull
`6/2006
`Cognigni et a1.
`8/2006
`Lao et al.
`3/2007
`Cronce et al.
`4/2007
`Zhang et a1.
`4/2007
`Abburi et al.
`4/2007
`Gilliam et al.
`9/2007
`Pierson et a1.
`1/2008
`Hoffman et al.
`2/2008
`Bachelder et a1.
`2/2008
`Chen et al.
`3/2008
`Bergler et al.
`12/2008
`Kiesel et a1.
`8/2009
`Zomaya et al.
`1/2010
`Lindahi et al.
`3/2010
`Ferguson et al.
`10/2001
`Colvin
`11/2001
`Hughes et al.
`Ganesan
`2/2002
`6/2002
`Kobata et a1.
`7/2002
`Lambert et al.
`10/2002
`Coley et a1.
`1/2003
`Mah et a1.
`4/2003
`Willey
`9/2003
`Cronce et al.
`* 10/2003
`Tabbara ........................ 709/313
`2/2004
`Sato et al.
`2/2004
`Merkle et al.
`3/2004
`Rodgers et a1.
`7/2004
`Ligeti et al.
`9/2004
`Owen et al.
`2/2005
`Carter et al.
`3/2005
`Roetter et a1.
`5/2005
`Stefik et al.
`6/2005
`Lewis
`8/2005
`Ziegler et al.
`* 11/2005
`Ferguson et al.
`4/2006
`Engel et al.
`5/2006
`Shankar et al.
`7/2006
`Morrison et a1.
`11/2006
`Wesinger, Jr.
`12/2006
`Takano et al.
`3/2007
`Baluja
`Bozeman
`7/2007
`
`AAAB
`
`1
`B1
`B1
`B1
`B1
`B1
`B1
`B1
`B1
`B1
`B2
`B1
`B2
`B1
`B2
`B1
`B2
`B2
`B2
`B2
`B2
`B2
`B2
`B2
`B1
`B2
`B2
`B2
`B2
`B2
`B1
`B2
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`A1
`
`*
`
`*
`
`*
`
`*
`
`*
`
`*
`
`*
`
`6,009,401
`6,044,471
`6,158,005
`6,230,199
`6,233,567
`6,243,468
`6,294,793
`6,324,519
`6,327,617
`6,330,670
`6,449,645
`6,467,088
`6,536,005
`6,785,825
`6,859,793
`6,880,086
`6,920,567
`6,976,009
`7,032,110
`7,069,440
`7,069,595
`7,085,741
`7,188,241
`7,200,237
`7,203,966
`7,206,765
`7,272,728
`7,319,987
`7,327,280
`7,337,147
`7,343,297
`7,463,945
`7,577,948
`7,653,899
`7,676,804
`2001/0034712
`2001/0044782
`2002/0019814
`2002/0082997
`2002/0099952
`2002/0161718
`2003/0014745
`2003/0065918
`2003/0172035
`2003/0195995
`2004/0024860
`2004/0030912
`2004/0059929
`2004/0143746
`2004/0187018
`2005/0034115
`2005/0055269
`2005/0108173
`2005/0138155
`2005/0172280
`2005/0262498
`2006/0072444
`2006/0095454
`2006/0161914
`2006/0265337
`2006/0282511
`2007/0072676
`2007/0168288
`
`APPLE EXHIBIT 1101
`Page 2 of 15
`
`

`

`U.S. Patent
`
`Aug. 7, 2012
`
`Sheet 1 of 6
`
`US 8,239,852 B2
`
`CLIENT
`
`
`107--
`CLIENT PROGRAM 3
`
`DEVICE
`
`
`
`................-.................................... V
`DELIVERS THE
`
`UPDATE
`UPDATE TO THE
`
`
`PROGRAM
`DELIVERED VIA i
`NETWORK TO
`
`
`CUSTOMER.
`
`
`UPDATES MAY BE
`
`
`
`BINARY
`CLIENT
`
`EXECUTABLES,
`COMPUTER
`
`
`PATCHES, DLLS,
`LOADS SECOND
`
`
`
`MSIS OR ASSETS
`OR THIRD
`
`
`
`PROGRAM
`
`
`%
`
`103 .5
`
`
`
`
`NETWORK/HTTP
`
`/HTTPS
`
`_____________
`
`CLIENT SIDE
`PROGRAM SENDS
`DATA REGARDING
`ACCOUNT, DEVICE,
`AND PROGRAM INFO
`FOR AN UPDATE
`DELIVERY SERVER
`
`
`
`AUDIT
`SERVER
`
`DATA IS RECEIVED BY THE
`
`
`UPDATE SERVER. THE INFO
`
`
`SEND RE DEVICE, ACCOUNT,
`
`
`GEO-LOCATION AND PROGRAM 3
`ARE INSPECTED AND A SUITABLE
`
`
`5
`UPDATE IS SELECTED.
`
`
`ADDITIONAL DATA TO BE
`CONSIDERED IS THE LOCATION
`
`
`OF THE USER WITHIN A GIVEN
`
`
`PROGRAM AND/OR FEATURES
`
`
`THE USER IS ENTITLED TO
`
`
`FIG. 1
`
`APPLE EXHIBIT 1 101
`
`Page 3 0f15
`
`
`
`Q U
`
`PDATE
`SERVER
`
`
`
`
`APPLE EXHIBIT 1101
`Page 3 of 15
`
`

`

`U.S. Patent
`
`Aug. 7, 2012
`
`Sheet 2 of 6
`
`US 8,239,852 B2
`
`
`
`LOADING CLIENT
`DEVICE(S) WITH A
`COMPUTER PROGRAM
`
`_ FOR PERFORMING A .
`'
`REMOTE UPGRADE
`.
`
`
`
`
`
`
`
`i
`
`I
`
`PERFORMING
`PHYSICAL DEVICE
`RECOGNITION ON THE
`
`220
`
`_CL_IENT D_EVICE(S) To _
`DETERMINE MACHINE
`'PARAMETERS'
`
`'
`
`'
`
`230
`
`240
`
`250
`
`GENERATING UNIQUE
`
`DEVICE IDENTIFIERS,
`
`AT LEAST IN PART,
`
`
`
`
`.
`EROMTHE
`.
`.
`DETERMINED MACHINE
`
`
`
`
`-
`
`
`
`- PARAMETERS -
`
`_
`
`-
`
`' SENGDIN TI-IE UNQEIU
`IDENTIFIERS TO AT
`LEAST ONE OF AN
`
`AUDIT SERVER AND AN -
`
`'
`
`. UPDATE SERVER.
`
`RECEIVING AN
`UPDATED PROGRAM
`
`CONFIGURATIONFROM3
`
`_THE UPDATESERVER
`
`'
`
`FIG. 2
`
`APPLE EXHIBIT 1 101
`
`Page 4 of 15
`
`APPLE EXHIBIT 1101
`Page 4 of 15
`
`

`

`US. Patent
`
`Aug. 7, 2012
`
`Sheet 3 of6
`
`US 8,239,852 B2
`
`320
`
`302
`
`MEANS FOR LOADING CLIENT DEVICE(S)
`WITH A COMPUTER PROGRAM FOR
`
`PERFORMING REMOTE UPDATE
`
`
`
`
`
`
`
`MEANS FOR PERFORMING PHYSICAL
`
`DEVICE RECOGNITION ON CLIENT
`
`DEVICES TO DETERMINE MACHINE
`PARAMETERS
`
`
`
`
`
`
`
`
`
`
`
`MEANS FOR GENERATING UNIQUE
`DEVICE IDENTIFIERS, AT LEAST IN PART,
`FROM THE DETERMINED MACHINE
`PARAMETERS
`
`
`
`
`
`
`MEANS FOR SENDING UNIQUE
`
`
`IDENTIFIERS TO AT LEAST ONE OF AN
`----------------------
`AUDIT SERVER AND AN UPDATE SERVER
`
`c -s 1saI.elcpsan:n c :
`
`rstienc,s1s a I
`
`mununvnu-J
`
`
`
`MEANS FOR RECEIVING AN UPDATED
`
`
`PROGRAM CONFIGURATION FROM THE
`»»»»»»»»»»»»»»»»»»»»» .
`UPDATE SERVER
`
`
`
`FIG. 3
`
`308
`
`APPLE EXHIBIT 1 101
`
`Page 5 0f 15
`
`APPLE EXHIBIT 1101
`Page 5 of 15
`
`

`

`U.S. Patent
`
`Aug. 7, 2012
`
`Sheet 4 of 6
`
`US 8,239,852 B2
`
`COLLECTING UNIQUE
`IDENTIFIERS FROM AT
`LEAST ONE OF THE
`
`:
`
`.-
`
`.
`
`'
`
`-
`
`_
`
`'AUDI'T SERVERAND
`
`' .THE CLIENT DEVICE(S)
`
`ANALYZING THE
`
`UNIQUE IDENTIFIERS
`
`
`
`DETERMINING AND
`UPDATED PROGRAM
`CONFIGURATION FOR
`
`THE CLIENT- DEVICES- j
`
`DELIVERING THE
`UPDATED PROGRAM
`
`. CONFIGURATIONTO
`' THE CLIENT DEVICES
`
`FIG. 4
`
`APPLE EXHIBIT 1 101
`
`Page 6 0f 15
`
`APPLE EXHIBIT 1101
`Page 6 of 15
`
`

`

`US. Patent
`
`Aug. 7, 2012
`
`Sheet 5 of6
`
`US 8,239,852 B2
`
`50
`
`520
`
`502
`
`MEANS FOR COLLECTING UNIQUE
`IDENTIFIERS FROM AT LEAST ONE OF AN
`
`MEANS FOR ANALYZING
`THE UNIQUE IDENTIFIERS
`
`AUDIT SERVICE AND CLIENT DEVICE(S)
`
`
`
`
`MEANS FOR DETERMINING AN UPDATED
`
`PROGRAM CONFIGURATION FOR THE
`
`
`
`
`
`CLIENT DEVICE(S)
`
`MEANS FOR DELIVERING THE UPDATED
`
`PROGRAM CONFIGURATION FOR THE
`
`
`
`
`
`CLIENT DEVICE(S)
`
`
`
`FIG. 5
`
`APPLE EXHIBIT 1 101
`
`Page 7 0f 15
`
`APPLE EXHIBIT 1101
`Page 7 of 15
`
`

`

`US. Patent
`
`Aug. 7, 2012
`
`Sheet 6 of6
`
`US 8,239,852 B2
`
`610
`
`
`
`WW
`
`
`
`VARIABLE KEY
`PORTION
`
`SYSTEM KEY
`PORTION
`
`FIG. 6
`
`APPLE EXHIBIT 1 101
`
`Page 8 0f 15
`
`APPLE EXHIBIT 1101
`Page 8 of 15
`
`

`

`US 8,239,852 B2
`
`1
`REMOTE UPDATE OF COMPUTERS BASED
`ON PHYSICAL DEVICE RECOGNITION
`
`This application claims priority to US. Provisional Appli-
`cation No. 61/220,092 which was filed Jun. 24, 2009 and
`which is fully incorporated herein by reference.
`
`BACKGROUND
`
`1. Field of the Invention
`
`The present invention relates to computers and, in particu-
`lar, to methods, apparatus and systems for maintaining appro-
`priate configuration updates to software/hardware configura-
`tion through the use of physical device recognition to tailor
`configuration updates.
`2. Description of the Related Art
`Monitoring changes and updates to the plurality of com-
`puter programs resident on a client device is a difficult task for
`the typical user to consistently perform. In addition, the latest
`update from a vendor may not be appropriate considering the
`hardware, software or physical/geo-location of the client
`device. Thus, there is a need in the art for a tool that will
`automate the program configuration update process and opti-
`mize the suggested updated program configuration to match
`the environment of the client device.
`
`The present invention is directed toward a system, method
`and apparatus for remote updating of the configuration of a
`computer. One embodiment of the invention is system for
`remote updating a computer configuration, comprising: a cli-
`ent device configured to load a computer program to perform
`a remote update; a processor, at the client device, configured
`to perform physical device recognition on the client device to
`determine machine parameters, wherein unique device iden-
`tifiers are generated for the client device, at least in part, based
`on the determined machine parameters; a transceiver config-
`ured to send the unique device identifiers to at least one of an
`auditing server and an update server via Internet; an update
`server configured to collect the unique device identifiers from
`at least one client device; a processor, at the update server,
`configured to analyzed the unique identifiers at the update
`server, wherein the analyzed unique identifiers determine an
`updated program configuration; and a transceiver, at the
`update server, configured to deliver the updated program
`configuration to the client device via Internet.
`In accordance with one aspect of the embodiments
`described herein, there is provided an apparatus for remote
`update of a program, comprising: means for loading a client
`device with a computer program configured to perform a
`remote update; means for performing physical device recog-
`nition on the client device to determine machine parameters;
`means for generating unique device identifier based at least in
`part on the determined machine parameters; means for send-
`ing the unique device identifier to at least one of an auditing
`server and an update server; and means for receiving an
`updated program configuration from the update server.
`In accordance with another aspect of the embodiments
`described herein, there is provided a method for remote
`update of a program, comprising: collecting unique identifi-
`ers from at least one of an audit server and client device at an
`
`update server; analyzing the unique identifiers; determining
`an updated program configuration for the client device from
`the analyzed unique identifiers; and delivering the updated
`program configuration to the client.
`In accordance with another aspect of the embodiments
`described herein, there is provided a tangible computer read-
`able medium having stored thereon, computer-executable
`instructions that, ifexecuted by a computing device, cause the
`
`2
`
`computing device to perform a method comprising: loading a
`client device with a computer program configured to perform
`a remote update; performing physical device recognition on
`the client device to determine machine parameters; generat-
`ing unique device identifier based at least in part on the
`determined machine parameters; sending the unique device
`identifier to at least one of an auditing server and an update
`server; and receiving an updated program configuration from
`the update server.
`In accordance with another aspect of the embodiments
`described herein, there is provided an apparatus for remote
`updating of a program, comprising: means for collecting
`unique identifiers from at least one of an audit server and
`client device; means for analyzing the unique identifiers;
`means for determining an updated program configuration for
`the client device from the analyzed unique identifiers; and
`means for delivering the updated program configuration to
`the client.
`
`In accordance with another aspect of the embodiments
`described herein, there is provided a tangible computer read-
`able medium having stored thereon, computer-executable
`instructions that, ifexecuted by a computing device, cause the
`computing device to perform a method comprising: collect-
`ing unique identifiers from at least one of an audit server and
`client device; analyzing the unique identifiers; determining
`an updated program configuration for the client device from
`the analyzed unique identifiers; and delivering the updated
`program configuration to the client.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`FIG. 1 is a schematic diagram of a system for remote
`updating of a client device by an update server in accordance
`with an embodiment of the invention.
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`FIG. 2 is a flow diagram ofa method for remote updating of
`a client device in accordance with an embodiment of the
`
`invention implemented on the client device.
`FIG. 3 is a block diagram of an apparatus according to the
`invention that may be configured as a client device, or as a
`processor or similar device for use within a client device.
`FIG. 4 is a flow diagram ofa method for remote updating of
`a client device in accordance with an embodiment of the
`
`invention implemented on the update server.
`FIG. 5 is a block diagram of an apparatus according to the
`invention that may be configured as an update server, or as a
`processor or similar device for use within an update server.
`FIG. 6 is a block diagram of memory allocation for a
`unique device identifier used in the various exemplary
`embodiments of the invention.
`
`DETAILED DESCRIPTION
`
`In accordance with the present technology, there is pro-
`vided a system, method and apparatus for the remote update
`of computer software licenses through the use of physical
`device recognition. In particular, FIG. 1 shows an exemplary
`schematic diagram for a system for remote updating ofat least
`one client device 100 by an update server 120 in accordance
`with an exemplary embodiment of the invention. In particu-
`lar, FIG. 1, shows an exemplary system having at least one
`computing/network client device 100 that is in operative
`communication via the Internet 102 with an audit server 110
`
`and an update server 120. While only one client device 100 is
`illustrated in FIG. 1, it will be understood that a given system
`may comprise any number of client devices and use any
`
`APPLE EXHIBIT 1 101
`
`Page 9 of 15
`
`APPLE EXHIBIT 1101
`Page 9 of 15
`
`

`

`US 8,239,852 B2
`
`10
`
`15
`
`20
`
`25
`
`30
`
`3
`number of apparatuses and methods of the invention as
`described herein. Further details regarding the system of FIG.
`1 are provided below.
`FIG. 2 provides an exemplary flow diagram of a method for
`remotely updating a client device. In particular, in step 210 of 5
`FIG. 2, the loading of at least one client device with a com-
`puter program for remote updating is performed. Physical
`device recognition of at least one of a software, hardware and
`geo-location environment ofthe client device is performed to
`determine machine parameters in step 220. Step 230 involves
`generating unique device identifiers, at least in part, from the
`determined machine parameters. The unique device identifi-
`ers are sent to at least one of an audit server 110 and an update
`server 120, as shown in FIG. 1, in step 240. In step 250, the
`client device 100 receives an updated program configuration
`from the update server 120, as shown in FIG. 1.
`FIG. 3 illustrates an exemplary apparatus that may be con-
`figured as a client device, comprising: a transceiver 304, a
`processor 306 and a memory 308; or as a processor 306; or as
`a similar device for use within a client device 100, as shown
`in FIG. 1, which provides the means for implementing the
`method, as disclosed in FIG. 2, on the client device 100. In
`particular, apparatus 300 may comprise means for loading
`320 a client device with a computer program for performing
`a remote update. In addition, the apparatus 300 may comprise
`means for performing 320 physical device recognition of one
`or more machine parameters of the client device. The
`machine parameters may comprise a combination of at least
`one user-configurable parameter and at least one non-user-
`configurable parameter ofthe client device. Further, the appa-
`ratus 300 may comprise a means for generating 340 a device
`identifier for the device based at least in part on the collected
`one or more machine parameters. Furthermore, apparatus 3 00
`may comprise means for sending unique identifiers to at least
`one of an audit server and an update server. Moreover, appa-
`ratus 300 may comprise means for receiving 360 an updated
`program configuration from the update server.
`In addition, apparatus 300 may further comprise a means
`for determining the geo-location code for the device and for
`associating the geo-location code with a unique device iden-
`tifier; and a software identifier to generate an audit number.
`The geo-location code may comprise, but is not limited to an
`Internet protocol (IP) address.
`The apparatus 300 may further comprise a means for gen-
`erating a device identifier by implementing or executing at
`least one irreversible transformation such that the machine
`
`35
`
`40
`
`45
`
`parameters cannot be derived from the device identifier. Addi-
`tionally, at least one of the irreversible transformations may
`comprise, but is not limited to a cryptographic hash function.
`It is noted that apparatus 300 may optionally include a
`processor module 306 having at least one processor, in the
`case of apparatus 300 configured as computing device, rather
`than as a processor. Processor module 306, in such case, may
`be in operative communication with means for determining
`the geo-location code; means for generating a device identi-
`fier by implementing or executing at least one irreversible
`transformation and components thereof, via a bus 302 or
`similar communication coupling. Processor 306 may effect
`initiation and scheduling of the processes or functions per-
`formed by means for generating a device identifier by imple-
`menting or executing at least one irreversible transformation,
`and components thereof.
`In related aspects, apparatus 300 may include a transceiver
`module 304 for communicating with means for generating a
`device identifier by implementing or executing at least one
`irreversible transformation, and components thereof. A stand
`
`50
`
`55
`
`60
`
`65
`
`4
`
`alone receiver and/or stand alone transmitter may be used in
`lieu of or in conjunction with the transceiver 304.
`In addition, apparatus 300 may optionally include a means
`for storing information, such as, for example, a computer
`readable medium or memory device/module 308. Further, the
`memory device/module 308 may be operatively coupled to
`the other components of apparatus 300 via bus 302 or the like.
`The computer readable medium or memory device 308 may
`be adapted to store computer readable instructions and data
`for effecting the methods of FIG. 2; and, as shown in FIG. 3,
`the processes and behavior of means 320-360; means for
`determining the geo-location code; means for generating a
`device identifier by implementing or executing at least one
`irreversible, and components thereof; or processor 306 (in the
`case of apparatus 300 being configured as a computing
`device) or the methods disclosed herein.
`In yet further related aspects, the memory module 3 08 may
`optionally include executable code for the processor module
`304 configured to: (a) determine machine parameters of a
`client device, the machine parameters comprising a combi-
`nation of at least one user-configurable parameter and at least
`one non-user-configurable parameter of the device; (b) gen-
`erate a device identifier for the device based, at least in part,
`on the machine parameters; and (c) determine whether an
`Internet connection is available for the client device. One or
`
`more of steps (a)-(c) may be performed by a processor mod-
`ule in lieu of or in conjunction with the means described
`above.
`
`FIG. 4 shows an exemplary flow diagram of a method for
`remote updating of a client device in accordance with an
`embodiment of the invention on the update server 120, as
`shown in FIG. 1. In particular, in step 410 the unique identi-
`fiers are collected by update server 120 from at least one ofthe
`audit server 110 and the client device 100, as shown FIG. 1.
`The unique identifiers are then analyzed on the update server
`in step 420. Step 430 involves determining an updated pro-
`gram configuration for the client device from the analysis of
`the unique identifiers. The updated program configuration is
`delivered to the client device in step 440.
`FIG. 5 shows an exemplary apparatus that may be config-
`ured as either an update server, or as a processor or similar
`device for use within the update server. an exemplary appa-
`ratus diagram that may be configured as an update server
`comprising: a transceiver 504, a processor 506 and a memory
`508; or as a processor 506; or as a similar device for use within
`an update server 120, as shown in FIG. 1, which provides the
`means for implementing the method, as disclosed in FIG. 4,
`on the update server 120, as disclosed in FIG. 1. In particular,
`apparatus 500 may comprise means for collecting 520 unique
`identifiers from at least one of an audit server and at least one
`
`client device with a computer program for performing a
`remote update. In addition, the apparatus 300 may comprise
`means for analyzing 530 the unique identifiers that are deter-
`mined, at least in part, from the machine parameter. The
`machine parameters may comprise a combination of at least
`one user-configurable parameter and at least one non-user-
`configurable parameter ofthe client device. Further, the appa-
`ratus 500 may comprise a means for determining 540 an
`updated program configuration for the device based, at least
`in part, on the collected one or more machine parameters.
`Furthermore, apparatus 500 may comprise means for deliv-
`ering the updated program configuration for the client device
`100 from the update server 120, as shown in FIG. 1.
`It is noted that apparatus 500 may optionally include a
`processor module 506 having at least one processor, in the
`case of apparatus 500 configured as a computing device,
`rather than as a processor. In related aspects, apparatus 500
`
`APPLE EXHIBIT 1101
`
`Page 10 of 15
`
`APPLE EXHIBIT 1101
`Page 10 of 15
`
`

`

`US 8,239,852 B2
`
`5
`may include a transceiver module 504 for communicating
`with means for generating a device identifier by implement-
`ing or executing at least one irreversible transformation, and
`components thereof. A stand alone receiver and/or stand
`alone transmitter may be used in lieu of or in conjunction with
`the transceiver 504.
`
`In addition, apparatus 500 may optionally include a means
`for storing information, such as, for example, a computer
`readable medium or memory device/module 508. Further, the
`memory device/module 508 may be operatively coupled to
`the other components of apparatus 500 via bus 302 or the like.
`The computer readable medium or memory device 508 may
`be adapted to store computer readable instructions and data
`for effecting the methods of FIG. 4; and, as shown in FIG. 5,
`the processes and behavior of means 520-550, and compo-
`nents thereof; or processor 506 (in the case of apparatus 300
`being configured as a computing device).
`In yet further related aspects, the memory module 508 may
`optionally include executable code for the processor module
`506 configured to: (a) collect unique identifiers from at least
`one of an audit server and client device; (b) analyze the
`collected unique identifiers; (c) determine an updated pro-
`gram configuration for the client device; and (d) deliver the
`updated program configuration to the client device(s). One or
`more of steps (a)-(d) may be performed by a processor mod-
`ule in lieu of or in conjunction with the means described
`above.
`FIG. 6, discloses, for one or more embodiments described
`herein, an exemplary format for a unique device identifier
`600, which may further include two components: (1) a vari-
`able key portion; and (2) a system key portion. The variable
`key portion may be generated at the time of registration of
`client device 100 by reference to a variable platform param-
`eter, such as, but not limited to: a reference to system time
`information, location and/or other parameters that are vari-
`able in nature may be utilized in other embodiments. The
`system key portion may include the above described param-
`eters expected to be unique to the client device 100, that are
`for example, but not limited to: hard disk volume name, user
`name, computer name, userpassword, hard disk initialization
`date, or combinations thereof. The variable key portion and/
`or system key portion may be combined with the IP address
`and/or other platform parameters ofthe client device 100. It is
`noted that unique device identifiers, or portions thereof, may
`be encrypted to add an additional layer of specificity and
`security.
`With respect to the system, method and apparatus of the
`invention, the following paragraphs provide additional detail
`regarding the implementation of each of the embodiments
`discussed above.
`
`The machine parameters may further include, but are not
`limited to: user account information, program information
`(e. g., serial number); location of a user within a given appli-
`cation program, and features of the software/hardware the
`user is entitled to use. As shown in FIG. 1, block 107, the
`updated program configuration delivered to the client device
`may include, but is not limited to: binary, executables, paths,
`dlls, miss or assets.
`The client device 100 may be, but is not limited to, a
`personal computer, a server computer, a laptop computer, a
`tablet computer, a personal digital assistant, a mobile phone,
`a wireless communication device, an onboard vehicle com-
`puter, a game console, or any other machine/device capable of
`communication with a computer network, such as but not
`limited to the Internet. In related aspects, in wireless commu-
`nications, Over The Air (OTA) Push or the like may be imple-
`mented to download onto or upgrade (e.g., configuration/
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`settings, etc.) client network devices. OTA Push involves the
`use of wireless phone numbers (MS-ISDN) rather than IP.
`The client device 100 may comprise software (e.g., an
`operating system or other applications) that requires a license
`to be authorized for use. The client device 100 may further
`comprise an auditing tool or application. The auditing appli-
`cation may be any program or application that collects iden-
`tifying information regarding the client device 100 and/or
`software on the client device 100. The auditing application
`may comprise a stand alone application or an applet running
`within a web browser on the client device 100 (e.g., an applet
`comprising executable code for a Java Virtual Machine).
`The auditing application may be embedded in or associated
`with another software application, including, but not limited
`to software. For example, the auditing application may be
`embedded in or associated with a tool bar of a software
`
`application, for example, but not limited to a web browser.
`The auditing application may prompt the user to register with
`an online software registration service, or may run in the
`background with little or no interaction with the user of the
`client device 100.
`
`The auditing application may include a registration routine
`that collects information regarding client device 100 by
`checking a number of parameters which are expected to be
`unique to the client device environment. The parameters
`checked may include, but are not limited to: hard disk volume
`name, user name, device name, user password, hard disk
`initialization date, etc. The collected information may
`include, but is not limited to: information that identifies the
`hardware comprising the platform on which the web browser
`runs, such as, CPU number, or other unique parameters asso-
`ciated with the firmware in use. The system information may
`further include, but is not limited to: system configuration
`information, amount of memory, type of processor, software
`or operating system serial number, etc.
`In the alternative, or in addition, the parameters checked
`may include, but are not limited to virtual machine specifica-
`tions. Examples of virtual machine specifica

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