throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2009/0037337 A1
`(43) Pub. Date:
`Feb. 5, 2009
`Baitalmal et al.
`
`US 20090037337Al
`
`(54) SOFTWARE LICENSING AND
`ENFORCEMENT SYSTEM
`
`(76) Inventors:
`
`Ahmad Baitalmal, Renton, WA
`(US); Daniel J. Kolke, North Bend,
`WA (US); Jon K. Collette,
`Normandy Park, WA (U S); Casey
`Tompkins, Woodinville, WA (US)
`
`Correspondence Address:
`MORGAN, LEWIS & BOCKIUS, LLP.
`2 PALO ALTO SQUARE, 3000 EL CAMINO
`REAL
`PALO ALTO, CA 94306 (US)
`
`(21) Appl. No.:
`
`12/182,800
`
`(22) Filed:
`
`Jul. 30, 2008
`
`200
`
`|— cTent 2T0-BF0FW0Q
`|
`[BEVEEI I I I I 2__1_2__|
`
`_ _ _ _ _ _ _ _ 2_20_|
`
`(63)
`
`(60)
`
`(51)
`
`Related US. Application Data
`Continuation-in-part of application No. 12/102,854,
`?led on Apr. 14, 2008.
`Provisional application No. 60/962,877, ?led on Jul.
`31, 2007.
`Publication Classi?cation
`
`Int. Cl.
`(2006.01)
`G06Q 99/00
`US. Cl. ........................................................ .. 705/59
`
`ABSTRACT
`
`(52)
`(57)
`In an embodiment, a computer implemented method is
`described. The method is performed at one or more servers,
`hosting a marketplace application. A software application is
`received from a vendor for distribution. License terms are
`generated in response to a selection by the vendor from
`options provided by the marketplace application. The license
`terms are associated With the software application. The soft
`Ware application is made available for distribution through
`the marketplace application, in accordance With the license
`terms.
`
`_‘
`
`Client 210-A (networked mode)
`
`I
`
`I
`
`LEE/Eer- _ _ _ _l7|
`|T'C_P/E’EoTnn:s_ —i_|
`
`LLicense Authen.
`
`I
`
`Network Q
`
`Application Server
`E
`
`|
`LDAP
`Gateway 1*” 242
`
`l
`
`Auxiliary
`Services 1
`E
`
`V
`Web Server
`Engine
`
`7
`
`m /
`
`User
`Database
`E
`
`k
`
`E-Commerce Services
`Process payment &
`Authenticate license @I
`Serve Application
`
`26
`
`Synchronization, Access & Query
`Engine 260
`Conflict Management
`Record Increment
`
`I
`
`Applications Database
`E
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 1
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 1 of 178
`
`US 2009/0037337 A1
`
`Network 100
`
`\‘
`
`Client 1 10-5
`
`.
`
`M (1128) M
`
`User B
`
`.
`
`User A
`(112-A)
`
`Client
`Application
`1 14-A
`
`I
`Chem
`Application
`114-B
`
`.
`
`User N
`(112-N)
`
`Client
`Application
`1 14-N
`
`Network 120
`
`Application
`Server
`130-A
`
`Application
`Server
`130-B
`
`0
`
`Application
`Server
`130-N
`
`Figure 1
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 2
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 2 of 178
`
`US 2009/0037337 A1
`
`I
`
`|_CQpLP@t,_Data Se_c. 26l
`
`A
`
`v
`
`Network m
`
`Application Server
`m
`
`w
`|
`LDAP
`Gateway 1—" 242
`
`|
`l
`
`Auxiliary
`Services A
`E
`
`7
`
`v
`Web Server
`Engine
`E
`
`User
`Database
`m
`
`E-Commerce Services
`| Process payment a |
`|Authenticate license a |
`Serve Application
`286
`
`Synchronization, Access & Query
`Enqine 2%
`Conflict Management
`Record Increment
`
`k
`
`v
`
`Applications Database
`&
`
`Figure 2
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 3
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 3 of 178
`
`US 2009/0037337 A1
`
`Application
`Database“
`300
`
`/
`/
`/
`/
`//
`
`Application 1 @
`Record 1 E \
`\
`\
`
`0
`0
`Record N j
`
`C
`O
`I
`
`App Name Q
`
`App Title u
`
`App Host i
`
`App User 3 6
`
`App Pass a
`
`Application 2 E __
`Record 1 i Record Metadata
`o
`l
`@

`\
`'
`\
`Record N i \
`\
`o
`\
`:
`Application M E \
`Record 1 i \
`.
`\
`2
`\\ Record content N
`Record N i
`w
`
`Record Log E
`
`Record content 1
`354-1
`
`.
`:
`
`____ __——1
`
`I
`
`PEER-M- - - “370W
`MEdTaWiF__@_I
`ph_p?s3____?_|
`Pr_0l§ts____E_
`
`Figure 3
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 4
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 4 of 178
`
`US 2009/0037337 A1
`
`User
`Database“
`400
`
`User Record
`402-1
`
`User Record
`402-2
`
`
`
`
`
`User Record 402-N I, 470
`
`Map 5
`
`472
`
`‘
`User ID”>
`
`Rules for
`contacts/queries;
`Stored locally or
`in separate
`database
`
`User-Rule 1
`
`Sales Opps
`Filter DB info
`Rules
`Tasks
`Appointments
`
`User-Rule 2
`460-2
`
`I
`O
`O
`
`\
`
`l User Rule N
`460-N
`
`User-Mgmt
`462-1
`
`User Admin
`rights
`
`User access
`privileges
`
`User Record 402
`
`)
`/
`
`User ID
`
`41 lo
`
`User Metadata m
`
`Query/Contact List
`M
`
`User Client Device
`lD/Type m
`User Preferences
`M
`User Authentication
`information @
`User Personal
`22
`Information
`Name Q
`Phone 2
`Email H
`Office @
`Department M
`User Enabled
`Features i
`APP 1 m
`APP N i
`EDE
`A
`Devkit g
`Schedule events
`
`User Mgmt @
`
`
`AOP i Distribute H
`Integrate @
`
`Figure 4
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 5
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 5 of 178
`
`US 2009/0037337 A1
`
`Sync Engine
`500 ‘N
`
`Server Side
`
`Sync Data
`
`E Sync Operations l
`
`@
`Files
`1
`A
`Q
`pp
`App Table w
`App co|umn &
`Primary Key m
`
`Conflict Management
`@
`Record Increment
`2 L0
`
`Synch Rules M
`Developer Rules 2
`Default Rules A
`
`Create Acc w
`
`Create DBs w
`I
`Create Acc Dr E
`Install EAS w
`Setup Scheduler
`E
`Connect to EMS
`Ghent
`E
`
`Setup E
`
`Schema @
`
`Files E
`
`Rules
`
`is
`
`Data @
`
`Figure 5
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 6
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 6 of 178
`
`US 2009/0037337 A1
`
`Sync Engine
`600 \\
`
`Client Side
`
`Sync Data
`
`@ Sync Operations u
`
`@
`Files
`m
`App
`App Table w
`App Column m
`Primary Key w
`
`Create Acc w
`
`Create DBs w
`
`Create Acc Dir %
`
`Install EAS E
`Setup Scheduler
`w
`Connect to EMS
`Server
`@
`
`Setup Q
`Schema M
`
`Files M
`
`Rules
`
`i8
`
`Data @
`
`Figure 6
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 7
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 7 of 178
`
`US 2009/0037337 A1
`
`Application
`Server 700
`
`Memo 710
`W \
`Operatlng System
`Network Communication Module
`
`f 711
`712
`f
`
`|_ _ _ _
`| Diggay :
`'- I _.
`
`CPU(S)
`m
`
`708
`
`Comms
`|nterface
`m
`
`i- _|nput_ -:
`| Device I
`
`iLDAP Gateway Module
`f 714
`Synchronization, Access & Query Module f 716
`Synchronization Module
`f 718
`Synchronize Files Module
`f 719
`720
`Access Database Module
`f
`Search/Query Database Module
`f 722
`Conflict Management Module
`j 724
`Record Increment Module
`.1’ 726
`72
`/ 8
`
`User Database
`
`f 730
`f 732
`
`E-Commerce Services Module
`Process Payment Module
`f 734
`Authenticate License Module
`f 736
`Serve Application Module
`.f 738
`Web Server Engine Module
`Web Development Environment Module f 740
`LAMP (Linux, Apache, MySQL, PHP)
`J- 741
`Module etc.; also
`WAMP (Windows, Apa, MySQL, PHP);
`LAPP (Linux, Apa, PostgreSQL, PHP);
`Tomcat; etc.
`Python Module, Ruby, Ruby on Rails, etc. fl‘:
`Ap lication Database Management Module f
`f 746
`Add/Delete Application Module
`Synch Application Module
`f 748
`Application Database Access Module f 750
`
`
`
`User Database Management Module Add/Delete User Module
`
`f 758
`
`Edit User Information Module
`User Authentication Module
`User Permissions Module
`
`Application Database
`
`O
`O
`O
`Auxiliary Services Module(s)
`
`Figure 7
`
`f 760
`f 762
`f
`764
`f
`
`766
`I
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 8
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 8 of 178
`
`US 2009/0037337 A1
`
`Client 800
`
`\>
`
`Display
`@
`
`CPWS)
`w
`
`Memory. 810 \
`Operatlng System
`Network Communication Module
`DNS Support Module
`Receive and Process User Input Module
`Display Module
`Browser Engine Module
`Synchronization, Access & Query Module
`Synchronize Files Module
`
`
`
`808 \ Synchronization Module Local Copy of Database Module
`
`Edit Local Database Module
`
`811
`I
`f 812
`f 813
`f 814
`_f 815
`_f 816
`_f 818
`f 819
`
`5
`
`f 824
`
`Network
`Interface
`M
`
`|nput
`
`Device
`m
`
`f 826
`E-Commerce Client Module
`Download & Enable Application Module f
`Authenticate License Module
`f
`Copy Protection and Data Security Mod. f 832
`Local Web Server Engine Module
`J‘ 834
`
`f 836
`
`Web Development Envt. Module,
`Software Stack
`LAMP (Linux, Apache, MySQL, PHP)
`Module etc.; also
`WAMP (Windows, Apa, MySQL, PHP); I 838
`LAPP (Linux, Apa, PostgreSQL, PHP);
`Tomcat; etc.
`Framework Language Module
`|Python Module, Ruby, Ruby on Rails f 842
`AOP Framework Module
`.f 844
`Traffic Management Module
`I846
`Local Application Database Module
`J 848
`Add/Delete Record Module
`f 850
`Application Database Access Module f 852
`Application Database Query Module f 854
`
`Local User Database Module
`Add Delete User Module
`
`
`
`Edit User Information Module User Authentication Module
`
`User Permissions Module
`Applications database
`User database
`Figure 8
`
`‘r858
`860
`
`f
`
`f 866
`I 868
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 9
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 9 of 178
`
`US 2009/0037337 A1
`
`900
`
`\\
`
`\*
`
`Users and Groups
`
`User A
`
`Belongs to
`Group A
`
`Memberships
`Table in
`Account
`
`User B
`
`Is an Admin of
`Group A
`
`Administrator
`privileges
`
`Group A
`
`User A's
`information is
`added to the user
`out log table for
`User B.
`
`This determines if
`someone else can
`see User A's data.
`
`E.g. Manager for
`User A can see
`contacts for sales
`reps that report to
`her.
`
`Figure 9
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 10
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 10 0f 178 US 2009/0037337 Al
`
`|Application Server1005” |
`
`1000
`
`Client 1001 Network
`
`Web-based Application
`1006
`
`E.g., http://app1.com
`
`120
`
`||
`
`|
`
`| | | |
`
`@ BrowserEngine 1003
`
`E.g., http://apo1.com
`
`Web-based
`Application
`1007
`
`Software Stack
`
`1004
`
`Figure 10
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 11
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 11
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 11 of 178 US 2009/0037337 A1
`
`1100 ”\
`
`At the client, with AOP running, receive a user input
`
`// 1102
`
`@
`
`At the client, start a browser application.
`
`1104
`
`7
`
`I __________________________________________ _ _
`
`J’ 1106
`
`At the client, receive a user request to visit a web page or web-based
`application.
`User request includes a URL.
`
`1
`
`|
`
`i. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __.
`
`____________________
`
`(Optional) At the client, detect if a connection cannot be made to the I
`| web page or web-based application (e.g., the user may be offline and may not L/ 1108
`i
`have Internet connection).
`|
`
`6})
`
`At the client, local web server responds to request.
`
`/, 1110
`
`i /
`
`r ___________________________________________ _ _
`
`|
`:
`
`(Optional) At the client, run the web-based application locally on I
`the client, using the client operating system.
`i
`l
`
`r
`|@ (Optional) At the client, run open source software (e.g. Software
`Stack) in conjunction with the AOP framework.
`
`(Optional) At the client, receive a user request to navigate browser
`to a web address
`(e.g., a virtual AOP web address : http://app1.com.aop)
`Navigate the browser to the local virtual instance of the web page
`
`r
`|
`'
`:
`:
`
`I
`
`|
`'
`g3) (Optional) At the client, detect when a connection can be made to
`|
`'
`:
`emote web page or server corresponding to the local virtual instance. :
`'
`|
`l
`I
`l
`
`r
`
`“
`
`Figure 11
`
`7/ 1112
`
`, 1114
`
`/ 1116
`
`7/ 1118
`
`'
`
`.
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 12
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 12 of 178 US 2009/0037337 A1
`
`A
`1200 ’
`“‘
`
`AOP Installation
`
`Do nload
`sogtware
`@ P k
`ac ages
`1201
`
`(2) Download AOP
`Package
`1202
`—l
`
`Install Software 1203
`—
`Python and Libraries
`: Apache
`M SQL
`y
`PostgreSQL
`Tomcat
`(SOftWare Stackf
`download to client)
`
`Start AOP Install
`1204
`
`Create an Account
`2%
`
`v
`Initialize accou nt 1206
`6)
`
`Connect to Server 1207
`Authenticate user
`Verify AOP permissions
`Process Request
`
`Network
`<_@_ E =
`
`@» '—>
`
`App S
`AOP
`etup
`J21 2_
`
`Figure 12
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 13
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 13 of 178 US 2009/0037337 A1
`
`@
`
`1300 f}
`At the client, download software packages.
`
`7/ 1301
`
`At the client, download an AOP package including an installer for AOP /. 1302
`framework.
`‘”
`
`G)
`
`At the client, install the software packages.
`
`of 1303
`
`(A)
`
`At the client, start AOP package installation.
`
`7 1304
`
`Y
`At the client, collect (e.g., from user) web application account
`information.
`
`‘I, 1305
`
`I _______ __._____.__. _______ __. ___________________ _“
`
`|
`
`Account information includes domain, username and password.
`
`:
`
`l _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _.
`
`Y
`@ At the client, initialize account using AOP application.
`
`/ 1306
`
`V
`At the client, connect to a server, authenticate web application account
`information, and verify AOP permissions.
`
`V”
`
`1307
`
`7
`At the client, receive from server information required to complete the
`@
`application setup.
`
`/‘
`
`r 1308
`
`V
`At the client, complete the application setup process with the
`application fully synchronized with the web application on the server.
`
`1309
`
`*”
`
`Figure 13
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 14
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 14 of 178 US 2009/0037337 A1
`
`1400 f‘
`
`AOP Initialize Account
`
`Download 1408
`Download.Etelos.Com
`
`'ggwnéiasd giiléages
`-Famfamfam,
`-phpMyAdmin,
`-phpPGAdmin,
`-WebSvn
`
`Connect to Server w
`Authenticate user
`Verify AOP permissions
`Process Request
`
`Synchronizer
`
`_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 1
`
`Network
`
`14 6
`
`AOP lni File
`Configuration
`-Authentication
`-Appname
`-Vhost
`-Database
`-Aliases
`-Domain
`
`1405
`
`Vhost
`Write out
`.aopvhost.conf
`Files per domain
`
`1
`
`4 @ Database
`1408
`
`1404 @ M
`
`1 ‘ Database
`r 1409
`
`@ l
`
`IAOP 14
`l
`l
`l
`I
`|
`l
`:
`I
`I
`| Packages
`|
`I
`| Account
`I
`I
`I EMS M
`I
`I
`
`M
`
`_1407
`Host file
`Write out
`.aop
`hostfile
`
`I I
`
`I
`I
`I
`I
`I
`I
`I
`|
`l
`l
`I
`I
`|
`I
`I
`:
`I
`I
`J
`
`_ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _
`
`Software Stack _0
`
`Operating System 1412
`
`Figure 14
`
`AOP application and
`Software Stack are run
`on client Operating
`System
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 15
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 15 of 178 US 2009/0037337 A1
`
`1500 f3‘
`
`@
`
`At the client, install AOP framework.
`
`// 1501
`
`@
`
`At the client, set up EMS with its own database.
`
`1502
`
`@ At the client, using AOP connect to the server and authenticate user 4/” 1503
`permissions.
`
`@
`
`At the client, create an account inside EMS.
`
`if 1504
`
`At the client, configure virtual host (vhost) files to enable navigation to
`@
`the application locally.
`
`,/ 1505
`1
`
`(9
`
`At the client, save the AOP initialization (ini) file with additional
`configuration information.
`
`7/,’ 1506
`4
`
`At the client, modify the host file locally to communicate to the
`operating system that any local domains (e.g. *.aop) are run locally.
`
`f 1507
`
`At the client, download packages from a server repository (e.g.,
`G) download.etelos.com) as required by the app configuration.
`. “E1555; géciégeéiriciuaé _EA§,_Z_e_nd,_fam_farh failf, B?gliyitafnin,
`
`K1508
`’
`1509
`
`l ______________ _ pleieéqnlintvyeqsyna _____________ _ -l
`' """"""""""""""""""""""""" " :
`
`/1510
`
`Figure 15
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 16
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 16 of 178 US 2009/0037337 A1
`
`1600 ’\
`
`AOP Application Installation
`
`Connect to Server 1620
`
`Authenticate user
`Verify permission synchromzer
`Process Request
`M
`
`Fnes
`1615
`
`Data
`Schema
`1616 M
`
`l- _ _ _ _ _ _ _ _ _ _
`
`_ '— _ 1
`
`Application —16 2
`
`Vhost
`1603
`
`Network
`w
`
`A‘
`
`l AOP Framework 16 1
`|
`:
`I
`|
`|
`|
`l
`| Packages
`
`File Transfer
`v
`v
`e.g. SVN or
`Database
`rsync
`www
`1604 w 1606
`l'
`
`1 07
`
`Database
`
`|
`l
`I
`:
`I
`I
`|
`:
`
`1
`
`1608
`
`l
`| Account
`|
`l
`l
`I EMS @
`
`l
`f = : Ru es
`| M
`l
`
`Database
`k’ 1611
`
`l_ _ _ _ _ _ _ _| _ _ _ _ _ _ _ _ _ _ _ _ J
`
`<- Software Stack
`
`161
`
`Operating System 1614
`
`AOP application and
`Software Stack are run
`on client Operating
`System
`
`Figure 16
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 17
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 17 of 178
`
`US 2009/0037337 Al
`
`1 700 “A‘
`
`At the client, download and install schema for the database from the
`server.
`
`1701
`
`At the client, download files using file transfer, e.g. SVN or rsync.
`
`of 1 702
`
`CD
`
`(2)
`
`kg) At the client, download rules and insert them into the account database. H// 1
`
`At the client, download application data as part of the initial
`synchronization process.
`
`I 1704
`
`Figure 17
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 18
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 18 of 178 US 2009/0037337 A1
`
`1800 b‘ Application (AOP) initial data synchronization
`
`Connect to Sen/er 1816
`
`Synchronizer
`
`Authenticate user
`Verify permission
`Process Request
`
`it
`
`_@_
`
`: Files
`1817
`
`> Data
`1818
`
`l' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ' _ _ _ _ _ _ _ ‘I
`
`I
`l
`I
`Network |
`w |
`l
`l
`|
`I
`Synchronizer
`I
`l M Account
`l
`2
`I
`l
`l
`
`M
`
`Packages
`
`’|8—7
`
`18 8
`
`Q)
`
`3
`
`EMS m
`
`AOP Framework 1801
`-
`-
`1'
`Appllcatlon 1802 File Transfer
`Vhost
`www
`e.g. SVN or
`1803
`18 4
`rsync 1805
`t
`
`"
`Database
`1806
`
`Database
`1811
`
`f
`l->
`
`Database
`H 1812
`
`|
`l
`I
`|
`|
`l
`l
`I
`I
`I
`|
`l
`I
`l
`l
`
`|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ l
`
`=
`
`Software Stack
`
`1
`
`3
`
`Operating System 1814
`
`Figure 18
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 19
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 19 of 178 US 2009/0037337 A1
`
`1900 A‘
`
`6)
`
`At the client, start a synchronization process.
`
`f 1901
`
`f‘ 1902
`V
`(2) At the client, retrieve synchronization rules from a database and flag
`them for an initial synchronization operation.
`
`v
`At the client, send a synchronization request to the server, with
`authorization to sunchronize.
`
`f 1903
`
`"
`
`f 1904
`
`Synchronize the files using file transfer
`
`3
`
`4
`
`@ Data is sent back to initially synchronize up the client application.
`
`v
`
`r 1905
`
`Figure 19
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 20
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 20 of 178 US 2009/0037337 Al
`
`2000 ~~“*
`
`How application (AOP) runs
`
`Connect to Server
`2015
`
`Authenticate
`Verify permission
`Process Request
`
`4)
`
`AOP Launch
`Interface
`
`Launch
`Browser with
`Application
`running locally
`2017
`
`(5)"8(6) Openfile request domain.aop
`
`2002
`
`| |
`
`File Transfer
`Network
`
`
`
`|||Vhost www e.g. SVN or Database
`
`
`
`
`120
` Application 2002
`
`| || | | | | | |
`
`Account
`
`2008
`
`
`EMS 2009
`(3)
`Database
`
`
` Database
`
`2010
`
`2014
`
`a S
`
`(2)
`
`oftware Stack
`
`2012
`
`Operating System 2013
`
`r___|
`
`Figure 20
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 21
`
`User OFFLINE
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 21
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 21 of 178 US 2009/0037337 Al
`
`2100 ~ “4
`
`1) At the client, start the AOP application running, in response to a user
`
`selection.
`
`(2)
`
`At the client, from within the AOP application, start the software stack.
`
`3)
`
`At the client, from within the AOP application, start the EMS.
`
`At the client, from within the AOP application, launch a userinterface.
`~ oe eeeeeeeee
`The interface includes a desktopinterface.
`
`!
`
`At the client, detect user selection of an application, and navigate in a
`browser window to the URL associated with that application.
`
`At the client, listen with using the Web Server and servethe application
`locally to the browser window.
`Po The WebServerincludesApache.
`
`Figure 21
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 22
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 22
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 22 of 178 US 2009/0037337 Al
`
`2200 ~~
`
`Howthe client serves up a local version of the webpage
`
`HostFile
`
`2202
`
`Browser 2201 Domai
`
`File Transfer
`e.g. SVN or
`rsync
`2208
`
` Packages
`
`2209
`
`Figure 22
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 23
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 23
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 23 of 178 US 2009/0037337 Al
`
`2300 ~~«
`
`(1)
`
`At the client, determine the IP addressof the current domain.
`
`_- 2301
`
`>
`(2)
`
`Vv
`At the client, the OS Network Stack looks at the hostfile which was
`
`modified during application (AOP)startup.
`
`yr 2302
`
`At the client, address is returned.
`I (
`
`The addressis 127.0.0.1
`
`(4)
`
`(5)
`
`NN
`
`(7)
`
`The local web serverlistens at the address.
`
`The local web server receives a request.
`
`- 2304
`
`230
`
`2305
`
`The local web server compares the domain to the virtual host (vhost)
`configurationfile.
`
`2306
`
`The local web server determines the local application web root.
`
`s- 2307
`
`
`
`The local application processes the request and loads appropriate tools
`to complete the request..
`The tools include framework, database,etc.
`
`(9)
`
`The local web server serves up the local web page.
`
`7 2309
`
`Figure 23
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 24
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 24
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 24 0f 178 US 2009/0037337 Al
`
`2400 ~“«
`
`High Level View of Synchronization
`
`Changes Log 2405
`
`Conflicts Log 2408
`
`Figure 24
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 25
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 25
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 25 of 178 US 2009/0037337 Al
`
`
`
`Va(2)
`
`Collect changes from the local database in a changeslog.
`
`- 2902
`
`Send the collected changes log from the client to an application server,
`ae
`:
`wg
`which includes corresponding databasefor the application.
`
`-- 2503
`
`.
`
`(4) Synchronize and apply the changes to the server database, keeping
`connection with client alive until the sync operation is finished.
`
`_ 2504
`
`4
`
`Detect conflicts in data on the server, and if any are found grant priority to the
`server.
`
`
`
`Resolve conflicting data and store conflict resolution data in a conflict
`resolution log on the server.
`
`y- 2505
`
`
`
`6)Send conflict resolution log from the application serverto the client. - 2506
`
`(7Yat the client, apply the conflict resolution log to the client local database.
`
`y~ 2507
`
`Figure 25
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 26
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 26
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 26 of 178
`
`US 2009/0037337 Al
`
`
`
`
`
`s6o7sanlesINOJBAIaS
`
`
`
`OZJAAIOSuOeoI|ddy
`
`esegeieq
`
`£09¢
`
`SS890/d
`
`U]JAAIBS
`
`SSO00/d
`
`OL9¢
`
`9zeinbl+
`
`1092USD
`
`
`
`
`
`(01)909¢
`
`$S990JqUlJUdI|D
`
`©&)
`
`qUS|D
`
`suoiealddy
`
`esegeieq
`
`Z09¢
`
`@)
`
`
`
`sBo7}UaI|D
`
`SSd00/q
`
`aeoa©INOjWws!|DS00Z
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 27
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 27
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 27 of 178 US 2009/0037337 Al
`
`2700-4
`
`- 2701
`
`Detect changesin an application database, when a user uses the
`application.
`|___ Changescan beonserver appdatabaseorlocalappdatabase. __ 4
`
`Synchronize data by pulling data from the internal log on server and
`
`Push the data from the account log on the server to the outbound log
`on the server.
`
`ra aa aa a 7
`eee
`Keepthe synchronizerrunningfast
`
`Pause the outbound log, and wait for a user to initiate sync with the
`
`- 2704
`
`2706
`
`pushing it to an account log on the server.
`AOPapplication.
`transaction identifier (e.g. “sync block ID”) to the data.
`
`(6)Push data to a ‘server out process’ for outbound processing and add a
`
`Figure 27A
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 28
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 28
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 28 of 178 US 2009/0037337 Al
`
`(7a)
`
`(7b)
`
`(7c)
`
`At “server out process”, map data to users.
`
`At “server out process”, push userdata to usertables.
`
`-- 2707a
`
`-- 2707c
`
`- 2707d
`
`At “server out process”, perform filter function on data received. -- 2407b
`At the server, sort data by user out tables.
`
`(74)
`
`At “server out process”, run a group managementrules check.
`
`At “server out process”, identify administrator group memberships
`relationships for a user.
`
`_- 2707e
`
`At “server out process”, map additional data to administrator users
`based on group administrator of a particular user A.
`
`Figure 27B
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 29
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 29
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 29 of 178 US 2009/0037337 Al
`
`(2)
`
`At client, receive data at AOP application and pushit to “clientin
`
`process” for processing.
`
`2709
`
`(108) At “client in process”, perform filterfunction on data received using auto
`
`increment rules (flag).
`
`(106) At “client in process”, check auto incrementflagged column for conflict.
`
`IN
`
`(106)
`
`At “client in process’, if there is no conflict found, move to insert the
`
`data.
`
`
`
`At “client in process”, if a conflict is found, leave the data in the sync log
`
`(10d)
`
`for the next session.
`- 2710e
`|
`
`one.
`
`
`
`
`At “client in process”, filter the data into insert, update and delete
`operations.
`
`(41) Perform insert operations to push data into the application.
`
`NA
`
`(12) Push update and delete operations into the sync accountlog.
`
`IS
`
`a 271 1
`
`2712
`
`prevent the cycle from doubling backinto an infinite loop.
`
`During insertion, disable a trigger on that “connection”like a session,
`
`2713
`
`NA
`
`(14) The application has synchronized the received data atthe client.
`@®
`Figure 27C
`
`< 2714
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 30
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 30
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 30 of 178 US 2009/0037337 Al
`
`(15)
`
`Monitor data in the applications database for changes.
`
`At client, if the database changes, listen and push changestointernal log.
`
`2715
`
`(17)
`
`At client, synchronize by pulling data from the log and pushingit to the
`
`accountlog.
`
`elit
`
`At client, push data from the account log to the outbound log.
`
`et i18
`
`Keep the synchronizer running fast.
`
`!
`
`(19)
`
`2719
`At client, pause the outbound log and wait for the userto initiate sync
`
`with the AOP application.
`
`2720
`At client, push data to a “client out process” for outbound processing
`
`and add a transaction identifier (e.g.,“sync block ID”) to the data.
`=
`
`e—-———
`
`User information istied tosynchronizationaccount. !
`
`2721a
`
`(210)
`
`At “client out process”, push data to synchronization account out log.
`
`7 2721b
`
`7 2t22
`
`Figure 27D
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 31
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 31
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 31 of 178 US 2009/0037337 Al
`
`
`
`(242)
`
`At “server in process”, compare userin data and userout datato find
`
`duplicate transactions.
`
`(-2324a
`
`ed bytrigger and identifier (e.g., “sync_block_id”) added by sync session.
`
`Al “server in process”, analyze identifier (e.g., “_eas_syncmap_id”)
`
`-2724b
`
`(240)
`
`(242)
`
`246)
`
`(248)
`
`At “serverin process”,if a conflict is detected, the server wins and
`
`conflicts are deleted.
`
`At “serverin process”,filter insert, update and delete operations.
`
`At “serverin process”,filter auto incrementflags.
`
`At “server in process”, insert records with no conflicts.
`
`2024c
`
`-2724d
`
`-2724f
`
`x 2724g
`At “serverin process”, where records have conflicts, increment to end
`and insert.
`
`Server would win on this record and delete duplicate entry...
`
`At “serverin process”, start trigger as new records makeround trip
`back to application database.
`
`eas_sync_map_id =
`Contact10 = contact10
`Email = john@etelos vs email = john.smith@etelos.com
`
`__eas_sync_map_id
`
`Figure 27E
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 32
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 32
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 32 of 178 US 2009/0037337 Al
`
`At server, process updates and deletes into the database from the sync
`
`complete.
`
`
`accountlog. Alt server, application has sync data, and the synchronization processis
`
`2729
`
`of conflict.
`
`At server, if auto increment conflict (AIC) rules, then take another pass
`rough the process to update conflicted records at the “client in process’.
`
`Add, process and synchronize records which were previously left out because
`
`Figure 27F
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 33
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 33
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 33 of 178 US 2009/0037337 Al
`
`2800 —“
`
`Auto Increment Conflict Resolution
`
`Before
`
`Synchronized
`
`New on AOP (3)
`
`Synchronized
`
`ass
`
`Synchronized
`
`Synchronized
`2" p
`“
`pass
`Synchronized
`
`New on Server
`Synchronized
`al
`I
`(4)NewforaoP| 6)
`( 5 New on AOP
`:
`
`Update on Server
`
`(8) pdate for AOP
`
`Update (7)
`
`Synchronized
`
`New on AOP
`
`After
`
`Synchronized
`
`|
`
`2830
`
`2840
`
`(9)
`
`Figure 28
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 34
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 34
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 34 0f 178 US 2009/0037337 Al
`
`At the start of a synchronization operation, identify data that matches|, 2901
`on both server and client application (AOP) instance.
`
`2900 ~~4
`
`
`
`| 2902
`
`At the server, determine that new records have been addedon the
`
`(AOP) as newrecords.
`
`Determine there is a conflict and that identifiers associated with the new
`records already exist.
`
`v 2904
`
`Pause the process and wait for a second pass beforeinserting records.
`
`On the second pass, treat the records as an update.
`
`server. At the server, send new records from server to the client application
`
`(‘5 )At the client, send new records from client application (AOP)to the server.|_,-2905
`
`
`
`
`
`
`
`
`(9)
`All records match and are in synch with both the web server and the
`
`(7)
`
`(8)
`
`At the server, add these records and create newidentifiers for them,
`incrementing the sequenceofidentifiers in the database.
`
`|_-- 2906
`
`At the server, log the changes and package as an updatefor those
`
`records.
`
`2907
`
`Process the updated records.
`
`
`
`client application (AOP).
`
`2908
`
`2909
`
`Figure 29
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 35
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc's Exhibit 2002, page 35
`
`

`

`Patent Application Publication
`
`Feb. 5, 2009 Sheet 35 of 178 US 2009/0037337 Al
`
`3000 ~~~
`
`Provide on a computer system a local software stack configured to
`provide local web services for dynamic, web-based applications that are executed
`on the computer system when itis offline.
`
`3002
`
`3004
`”
`,
`:
`When the computersystem is offline, execute on the computer systemafirst
`dynamic, web-based application using the web services provided bythe local
`software stack, such that functionality of the first dynamic, web-based application
`when the computer system is offline is substantially similar to functionality of the
`first dynamic, web-based application when the computer system is online.
`
`Lo __ _ ___softwarestackusingTCP/IP
`
`[
`| The first web-based application is a database-driven web-basedapplication. |
`
`An architecture of the first dynamic, web-based application is not
`modified to provide the functionality when the computer system is offline
`
`In responseto detecting a network connection with an application server,
`| synchronizing with the application server changesin information associated with
`the first dynamic, web-based application due to its offline execution.
`
`In response to detecting a user instruction, initiating execution of the the first,
`dynamic web-based application when the computer system isoffline by directing a |
`web browser on the first computer system to a specified universal resource
`locator (URL) that is associated with first computer system instead of a remote
`application server.
`
`The specified URLis associated with the first computer system through a
`dynamic naming server (DNS) record on the first computer system.
`
`:
`|
`The local software stack comprises: a web server responsive to browser-
`issued commands, a database management system, and a dynamic scripting
`language
`| The web server is Apache webserver, the database management system is |
`| mySQL, and the dynamic scripting language is at least one of PHP, Python,
`Perl, or Ruby.
`|
`
`|
`
`The first dynamic, web-based application communicateswith the local
`
`3006
`
`3008
`
`3010
`
`3012
`
`3014
`
`3016
`
`3018
`
`3020
`
`3022
`
`3024
`
`Figure 30
`
`Apple v. Uniloc, IPR2017-2202
`Uniloc'

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