`
`(12) United States Patent
`Rempell et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 9,063,755 B2
`Jun. 23, 2015
`
`(54) SYSTEMS AND METHODS FOR
`PRESENTING INFORMATION ON MOBILE
`DEVICES
`
`(75) Inventors: Steven H. Rempell, Novato, CA (US);
`David Chrobak, Clayton, CA (US); Ken
`Brown, San Martin, CA (US)
`(73) Assignee: Express Mobile, inc., Novato, CA (US)
`(*) Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 154 days.
`12/936,395
`Apr. 6, 2009
`PCT/US2009/039695
`
`(21) Appl. No.:
`(22) PCT Filed:
`(86). PCT No.:
`S371 (c)(1),
`Nov. 3, 2010
`(2), (4) Date:
`(87) PCT Pub. No.: WO2009/126591
`PCT Pub. Date: Oct. 15, 2009
`
`(65)
`
`Prior Publication Data
`US 2011 FO1 O7227A1
`May 5, 2011
`
`Related U.S. Application Data
`(60) Provisional application No. 61/166.651, filed on Apr.
`3, 2009, provisional application No. 61/113,471, filed
`on Nov. 11, 2008, provisional application No.
`61/123,438, filed on Apr. 7, 2008.
`(51) Int. Cl.
`G06F 3/048
`G06F 9/44
`G06F 9/45
`
`(2013.01)
`(2006.01)
`(2006.01)
`
`(52) U.S. Cl.
`CPC .................................... G06F 9/4443 (2013.01)
`(58) Field of Classification Search
`CPC ....................................................... GO6F 3/048
`USPC .......................................................... 71.5/738
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`2004/0055017 A1* 3/2004 Delpuchet al. ............... 725/110
`2004/0163020 A1* 8, 2004 Sidman ..........
`... 714,100
`2005, 01499.35 A1* 7, 2005 Benedetti ....
`... 718, 102
`2005/0273705 A1* 12/2005 McCain .........
`T15,513
`2006/0063518 A1
`3/2006 Paddon et al. ................ 455,418
`
`OTHER PUBLICATIONS
`
`Stina Nylander etal. “The Ubiquitous Interactor-Device Independent
`Access to MobileServices” (Computer-Aided Design for User Inter
`faces IV, Proceedings of the Fifth International Conference on Com
`puter-Aided Design of User Interfaces CADUI 2004, Jan. 2004, pp.
`271-282).*
`* cited by examiner
`Primary Examiner — Jennifer To
`Assistant Examiner — Xuyang Xia
`(74) Attorney, Agent, or Firm — Steven R. Vosen
`(57)
`ABSTRACT
`Embodiments of a system and method are described for gen
`erating and distributing programming to mobile devices over
`a network. Devices are provided with Players specific to each
`device and Applications that are device independent.
`Embodiments include a full-featured WYSIWYG authoring
`environment, including the ability to bind web components to
`objects.
`
`28 Claims, 18 Drawing Sheets
`
`OO y
`
`A
`Server
`110 Authoring — 120
`Platform
`------------------------121 Network
`11 Memory
`Interface
`
`12 Auerns
`
`114 Devi
`Routines
`
`"s.
`
`13 Processor
`
`17 input
`Device
`
`Content
`140 Server
`14 Network
`terface
`
`143 Memory
`
`145 Processor
`
`123 Memory
`
`25 Processor
`
`
`
`131 Network
`Interface
`
`133 Memory
`
`Processor
`
`137 Screen
`139 input
`device
`
`Booking, Exh. 1030, Page 1
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 1 of 18
`
`US 9,063,755 B2
`
`OO N
`
`
`
`1 O Authoring
`Patform
`111 Memory
`112 Authoring
`Too
`
`114 Device
`Routines
`
`3 Processor
`11
`
`-------------------------- . 121 Network
`interface
`B-1
`
`31 Metwork
`interface
`
`FG. A
`
`Booking, Exh. 1030, Page 2
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 2 of 18
`
`US 9,063,755 B2
`
`
`
`OO N 1 O Authoring
`
`C-1, R-1
`
`Booking, Exh. 1030, Page 3
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 3 of 18
`
`US 9,063,755 B2
`
`2OO N
`
`Players
`y
`
`
`
`O.
`Authoring
`Platform
`
`Lpad Registry
`
`Applications
`
`
`
`Access
`
`Y. W. W.
`
`W. W. W.
`
`W.
`
`W. W.
`
`W. W. W. W. W. W. W.
`
`W. W. W.
`
`W. W.
`
`W.
`
`W. W.
`
`W.
`
`W. W.
`
`W. W.
`
`W. Y
`
`Registry
`
`220
`WebComponent
`Registry
`
`W
`Applications
`
`Deploy
`Registry
`
`Web
`
`Request
`
`Proxy
`HTP/XM
`Request
`and
`Response
`230
`
`
`
`Web Service
`
`FG. 2A
`
`
`
`210 Response
`Director
`
`Booking, Exh. 1030, Page 4
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 4 of 18
`
`US 9,063,755 B2
`
`
`
`JOSS3DO)
`
`8 Z '91-'
`
`Booking, Exh. 1030, Page 5
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 5 of 18
`
`US 9,063,755 B2
`
`60€
`
`PEG#
`poncrivecenctat
`ncevtnprioenrt.Be
`CLG
`
`
`
`‘BipaghyUioemeg
`
`YLOE
`
`SLOE
`
`
`PLOE|SLOEJELOE
`PLOELOE
`LoeN00¢
`VeDs
`
`SLi
`
`Booking, Exh. 1030, Page 6
`
`Booking, Exh. 1030, Page 6
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 6 of 18
`
`US 9,063,755 B2
`
`LE60E
`
`CeE60E
`
`EP60E
`
`veE6O0E
`
`F60EP60E N60€
`
`960EP6OE
`2960E
`
`MLE
`
`IL0E
`
`déOld
`
`Booking, Exh. 1030, Page 7
`
`Booking, Exh. 1030, Page 7
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 7 of 18
`
`US 9,063,755 B2
`
`--
`309b
`
`SS
`
`
`
`Soto Exterisai Nei Page sepiacing Crest Fame
`{SE} xSassages age 388.8 is a Se; iii.38
`Sato a specific page Fiest
`$8 Exissates age Sesiacing Saci Fiasis
`$goto the next Page view
`Execisie JavaScriptiletics
`assessessie age is ext:
`Execisie & Applicatics
`G8 is a Specisi: Side is a Page siew
`£isis:
`Exit Player
`Piace psafe Cai
`Sessi Sising 8 FIRE
`Sasi Siig is ERE { SYasic says
`
`* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
`
`is:se Sisie
`
`309b3
`
`Object Selected Audio Settings
`ar, R. Sise
`
`309b.4
`
`Šssascaissatastise Seigs
`Stsiastiaissaries
`Sisatiss Esty Sssssssss
`Eisaite Series listeres
`Sisi is R.
`Tessia Cities as RE
`iiie SS-Seister Cities
`
`
`
`
`
`Object Selected: Text Field
`
`FG. 3C
`
`Booking, Exh. 1030, Page 8
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 8 of 18
`
`US 9,063,755 B2
`
`
`
`Š S. S
`
`w
`
`Šiš
`
`Sco Sigis
`SSESS
`Šišiliš'
`
`
`
`FG. 3D
`
`Booking, Exh. 1030, Page 9
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 9 of 18
`
`US 9,063,755 B2
`
`309e
`
`
`
`
`
`
`
`309e2
`
`eis (aparter at set Servi
`Y
`Attributes Exposed
`S
`S
`
`
`
`
`
`
`
`seat Siege
`sex.
`S
`309es tagse assie
`
`as :
`
`
`
`w
`
`309e11
`
`309e12
`
`309e8
`
`
`
`Seise
`Retsie's
`
`. ... is
`
`ite fee
`N
`s
`8
`S
`"r
`Sesii:
`r
`S. . . . . . . . . . . . . .a & S
`. . . . . . . . . . . . . . . . . . . . . . sas
`. .
`
`Operatio:
`
`3O9e1 O
`
`309e9
`
`FG.3E
`
`Booking, Exh. 1030, Page 10
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 10 of 18
`
`US 9,063,755 B2
`
`319
`
`319¢
`
`¥
`
`319d
`
`319e
`
`Gencrate Ui Ghiectsne
`
`i
`
`
`
`it
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`FRAcTONS aotteads
`FRActions.set Status
`FRActONSsondh
`FRAcTIONS.Qcrn
`FRActORsunogdPhate
`
`
`
`AlTopiG.gethrTopie
`RingTare-Tapts
`Searchal
`Search
`Search -Ringiones
`jNapsinsge
`
`
`
`Select Results Page. 319b
`
`
`
`
`
`(Rap
`ay
`
`Mapinest-Directions..getivvreactions
`4
`
`
`NapGuest-GeiMaptinster-Bas.oant
`
`Activation Gntions
`Mapes!inetMaphister-Pan mans
`oe
`Mapiiuest-GcethianCliuster-Pasane
`
`
`
`
`319a
`Naniiuest-Geitlaninster-Pasoaniy
`
`NapiwestGailiaptieaterFan:ethaplinete
`
`E
`EN
`<
`TONYca
`
` Manchest‘POL SPO!
`Bicteres
`
`
`SendSu§
`Weathers
`
`
`
`
`
`
`
`FIG. 3F
`
`Booking, Exh. 1030, Page 11
`
`Booking, Exh. 1030, Page 11
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 11 of 18
`
`US 9,063,755 B2
`
`
`
`/8 ||
`
`Booking, Exh. 1030, Page 12
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 12 of 18
`
`US 9,063,755 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`?ZOG
`
`pZOG
`
`DZOG CIZOGZ09
`
`Booking, Exh. 1030, Page 13
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 13 of 18
`
`US 9,063,755 B2
`
`700
`
`7O 1 a
`
`
`
`701b.
`
`701 d
`
`FG. 7
`
`Booking, Exh. 1030, Page 14
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 14 of 18
`
`US 9,063,755 B2
`
`8OO N
`
`8O1
`Website System
`
`8O3.
`SMS Server "
`
`805
`Content Server
`
`
`
`Promo Code
`
`805
`Content Server
`
`FG. 9
`
`Booking, Exh. 1030, Page 15
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 15 of 18
`
`US 9,063,755 B2
`
`OOO N
`
`
`
`
`
`
`
`
`
`
`
`
`
`isis
`Qafter
`$8$8y
`
`OO
`
`
`& 8:::::::::8: O
`
`
`
`O2
`O3
`O4.
`
`1 O 5
`
`
`
`
`
`Atemiss RaF
`& Es:
`
`
`
`O6
`
`Of
`
`O8
`O 9
`O2)
`
`O2
`
`
`
`
`
`
`
`
`
`is:
`
`iyassi: V.
`Carter Serger
`
`
`
`
`
`Sassasax assawaxas
`
`
`
`
`
`F.G. 1 O
`
`Booking, Exh. 1030, Page 16
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 16 of 18
`
`US 9,063,755 B2
`
`
`
`88 || ||
`
`65 ? ?
`
`s
`
`&zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzºzzzzzzzzzzzzzzzzzzz
`
`sy Syssssssssssss
`
`%
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Booking, Exh. 1030, Page 17
`
`
`
`
`
`
`
`jepory‘ayeyypuis
`
`SSaippydi
`
`
`
`
`
`“4SUIULIBIOG
`
`IGEwcdoseiies
`
`ssoippy@]Buren
`
`Baay
`
`eypeUupsuUeleg
`
`BUGct
`
`
`
`
`quaby1067ASeiRYdijwebyies)epeaydiLH
`MOWEDASEaseqeieda4owusa:dy
`
`
`
`
`Uonuedg.(sius‘wunasdeams‘un‘opel‘ioe
`eseqeieq
`
`(oj@‘eziguealoS=soyoeuigesuodsey_,-
`
`“E0TLSoysuepeieus
`
`wobysssryBush
`‘poddnscw)
`Ap—
`::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
`
`U.S. Patent
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 17 of 18
`
`US 9,063,755 B2
`US 9,063,755 B2
`
`
`
`
`
`
`
`
`
`
`
`
`
`%%g%%%
`
`OOCL
`
`
`
`
`
`
`
`BBZe
`
`
`a
`
`
`
`14Mendodynuas
`
`
`
`ClOls
`
`Booking, Exh. 1030, Page 18
`
`Booking, Exh. 1030, Page 18
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jun. 23, 2015
`
`Sheet 18 of 18
`
`US 9,063,755 B2
`
`Receive
`
`easier
`
`SSSSSSSSSSSSS3&SSSSSSSSSSSSSS3&SSSSSSSSSSSSSS3&S
`
`
`
`SSSSSSSSSS&S
`
`Exisery for
`& ice &&isities
`Operator aid acaie
`
`
`
`S&reate
`
`
`
`
`
`2 O
`
`Respoise Eirector
`
`
`
`tiery and Receive
`JRi. for atching Player
`
`
`
`
`
`
`
`
`
`Bewice Appropriate isye iristaii
`
`payer Profile
`at&tas
`
`
`
`305 \
`
`Player Build Process
`Generate Fayets for a:
`Asfact: it pi&;8&ntatios
`
`FG, 3
`
`Booking, Exh. 1030, Page 19
`
`
`
`US 9,063,755 B2
`
`1.
`SYSTEMS AND METHODS FOR
`PRESENTING INFORMATION ON MOBILE
`DEVICES
`
`TECHNICAL FIELD
`
`The present invention generally relates to providing soft
`ware for mobile devices, and more particularly to a method
`and system for authoring Applications for devices.
`
`BACKGROUND ART
`
`Internet-connected mobile devices are becoming ever
`more popular. While these devices provide portability to the
`Internet, they generally do not have the capabilities of non
`mobile devices including computing, input and output capa
`bilities.
`In addition, the mobility of the user while using such
`devices provides challenges and opportunities for the use of
`the Internet. Further, unlike non-mobile devices, there are a
`large number of types of devices and they tend to have a
`shorter lifetime in the marketplace. The programming of the
`myriad of mobile devices is a time-consuming and expensive
`proposition, thus limiting the ability of service providers to
`update the capabilities of mobile devices.
`Thus there is a need in the art for a method and apparatus
`that permits for the efficient programming of mobile devices.
`Such a method and apparatus should be easy to use and
`provide output for a variety of devices.
`
`DISCLOSURE OF INVENTION
`
`10
`
`15
`
`25
`
`30
`
`In certain embodiments, a system is provided to generate
`code to provide content on a display of a platform. The system
`includes a database of web services obtainable over a network
`and an authoring tool. The authoring tool is configured to
`define an object for presentation on the display, select a com
`ponent of a web service included in said database, associate
`said object with said selected component, and produce code
`that, when executed on the platform, provides said selected
`component on the display of the platform.
`In certain other embodiments, a method is provided for
`providing information to platforms on a network. The method
`includes accepting a first code over the network, where said
`first code is platform-dependent; providing a second code
`over the network, where said second code is platform-inde
`pendent; and executing said first code and said second code
`on the platform to provide web components obtained over the
`network.
`In certain embodiments, a method for displaying content
`on a platform utilizing a database of web services obtainable
`over a network is provided. The method includes: defining an
`object for presentation on the display; selecting a component
`of a web service included in said database; associating said
`object with said selected component; and producing code
`that, when executed on the platform, provides said selected
`component on the display of the platform.
`In one embodiment, one of the codes is a Player, which is
`a thin client architecture that operates in a language that
`manages resources efficiently, is extensible, Supports a robust
`application model, and has no device specific dependencies.
`In another embodiment, Player P is light weight and extends
`the operating system and/or virtual machine of the device to:
`Manage all applications and application upgrades, and
`resolve device, operating system, VM and language fragmen
`tation.
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`In another embodiment, one of the codes is an Application
`that is a device independent code that interpreted by the
`Player.
`These features together with the various ancillary provi
`sions and features which will become apparent to those
`skilled in the art from the following detailed description, are
`attained by the system and method of the present invention,
`preferred embodiments thereof being shown with reference
`to the accompanying drawings, by way of example only,
`wherein:
`
`BRIEF DESCRIPTION OF DRAWINGS
`
`FIG. 1A is an illustrative schematic of one embodiment of
`a system including an authoring platform and a server for
`providing programming instructions to a device over a net
`work;
`FIG.1B is schematic of an alternative embodiment system
`for providing programming instructions to device over a net
`work;
`FIG. 2A is a schematic of an embodiment of system illus
`trating the communications between different system com
`ponents;
`FIG. 2B is a schematic of one embodiment of a device
`illustrating an embodiment of the programming generated by
`authoring platform;
`FIGS. 3A and 3B illustrate one embodiment of a publisher
`interface as it appears, for example and without limitation, on
`a screen while executing an authoring tool;
`FIG. 3C illustrates an embodiment of the Events Tab'
`FIG. 3D illustrates one embodiment of an Animation Tab:
`FIG.3E illustrates one embodiment of Bindings Tab:
`FIG.3F illustrates one embodiment of a pop-up menu for
`adding web components;
`FIG. 4A shows a publisher interface having a layout on a
`canvas; and FIG. 4B shows a device having the resulting
`layout on a device Screen;
`FIG. 5 shows a display of launch strips:
`FIG. 6A is a display of a Channel Selection List:
`FIG. 6B is a display of a Widget Selection List;
`FIG. 6C is a display of a Phone List:
`FIG. 7 shows a display of a mash-up:
`FIG. 8 is a schematic of an embodiment of a push capable
`system;
`FIG. 9 is a schematic of an alternative embodiment of a
`push capable system;
`FIG. 10 is a schematic of one embodiment of a feed col
`lector;
`FIG. 11 is a schematic of an embodiment of a Mobile
`Content Gateway;
`FIG. 12 is a schematic of one embodiment of a system that
`includes a response director, a user agent database, an IP
`address database, and a file database; and
`FIG. 13 is a schematic of another embodiment of a system
`that includes a response director, a user agent database, an IP
`address database, and a file database.
`Reference symbols are used in the Figures to indicate cer
`tain components, aspects or features shown therein, with
`reference symbols common to more than one Figure indicat
`ing like components, aspects or features shown therein.
`
`MODE(S) FORCARRYING OUT THE
`INVENTION
`
`FIG. 1A is an illustrative schematic of one embodiment of
`a system 100 including an authoring platform 110 and a
`server 120 for providing programming instructions to a
`
`Booking, Exh. 1030, Page 20
`
`
`
`3
`device 130 over a network N. In one embodiment, device 130
`is a wireless device, and network N includes wireless com
`munication to the device. Alternatively, system 100 may pro
`vide access over network N to other information, data, or
`content, such as obtainable as a web service over the Internet.
`In general, a user of authoring platform 110 may produce
`programming instructions or files that may be transmitted
`over network N to operate device 130, including instructions
`or files that are sent to device 130 and/or server 120. The result
`of the authoring process is also referred to herein, and without
`limitation, as publishing an Application.
`Embodiments include one or more databases that store
`information related to one or more devices 130 and/or the
`content provided to the devices. It is understood that such
`databases may reside on any computer or computer system on
`networkN, and that, in particular, the location is not limited to
`any particular server, for example.
`Device 130 may be, for example and without limitation, a
`cellular telephone or a portable digital assistant, includes a
`network interface 131, a memory 133, a processor 135, a
`screen 137, and an input device 139. Network interface 131 is
`used by device 130 to communication over a wireless net
`work, such as a cellular telephone network, a WiFi network or
`a WiMax network, and then to other telephones through a
`public switched telephone network (PSTN) or to a satellite, or
`over the Internet. Memory 133 includes programming
`required to operate device 130 (such as an operating system or
`virtual machine instructions), and may include portions that
`store information or programming instructions obtained over
`network interface 131, or that are input by the user (such as
`telephone numbers or images from a device camera (not
`shown). In one embodiment screen 137 is a touch screen,
`providing the functions of the screen and input device 139.
`Authoring platform 110 includes a computer or computer
`system having a memory 111, a processor 113, a screen 115,
`and an input device 117. It is to be understood that memory
`111, processor 113, screen 115, and input device 117 are
`configured such a program stored in the memory may be
`executed by the processor to accept input from the input
`device and display information on the screen. Further, the
`program stored in memory 111 may also instruct authoring
`platform 110 to provide programming or information, as indi
`cated by the line labeled “A” and to receive information, as
`indicated by the line labeled “B”
`Memory 111 is shown schematically as including a stored
`program referred to herein, and without limitation, as an
`authoring tool 112. In one embodiment, authoring tool 112 is
`a graphical system for designing the layout of features as a
`display that is to appear on screen 137. One example of
`authoring tool 112 is the CDERTM publishing platform (Ex
`press Mobile, Inc., Novato, Calif.).
`In another embodiment, which is not meant to limit the
`scope of the present invention, device 130 may include an
`operating system having a platform that can interpret certain
`routines. Memory 111 may optionally include programming
`referred to herein, and without limitation, as routines 114 that
`are executable on device 130.
`Routines 114 may include device-specific routines—that
`is, codes that are specific to the operating system, program
`ming language, or platform of specific devices 130, and may
`include, but are not limited to, Java, Windows Mobile, Brew,
`Symbian OS, or Open Handset Alliance (OHA). Several
`examples and embodiments herein are described with refer
`ence to the use of Java. It is to be understood that the invention
`is not so limited, except as provided in the claims, and that one
`skilled in the art could provide Players for devices using
`routines provided on a platform. Thus as an example, routines
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 9,063,755 B2
`
`5
`
`10
`
`15
`
`4
`114 may include Java APIs and an authoring tool System
`Development Kit (SDK) for specific devices 130.
`Server 120 is a computer or computer system that includes
`a network interface 121, a memory 123. and a processor 125.
`Is to be understood that network interface 121, memory 123,
`and processor 125 are configured such that a program stored
`in the memory may be executed by the processor to: accept
`input and/or provide output to authoring platform 110; accept
`input and/or provide output through network interface 121
`over network N to network interface 131; or store information
`from authoring platform 110 or from device 130 for transmis
`sion to another device or system at a later time.
`In one embodiment, authoring platform 110 permits a user
`to design desired displays for screen 137 and actions of device
`130. In other words, authoring platform 110 is used to pro
`gram the operation of device 130. In another embodiment,
`authoring platform 110 allows a user to provide input for the
`design of one or more device displays and may further allow
`the user to save the designs as device specific Applications.
`The Applications may be stored in memory 123 and may then
`be sent, when requested by device 130 or when the device is
`otherwise accessible, over network N, through network inter
`face 130 for storage in memory 133.
`In an alternative embodiment, analytics information from
`devices 130 may be returned from device 130, through net
`work N and server 120, back to authoring platform 110, as
`indicated by line B, for later analysis. Analytics information
`includes, but is not limited to, user demographics, time of day,
`and location. The type of analytic content is only limited by
`which listeners have been activated for which objects and for
`which pages. Analytic content may include, but is not limited
`to, player-side page view, player-side forms-based content,
`player-side user interactions, and player-side object status.
`Content server 140 is a computer or computer system that
`includes a network interface 141, a memory 143. and a pro
`cessor 145. It is to be understood that network interface 141,
`memory 143, and processor 145 are configured such that a
`stored program in the memory may be executed by the pro
`cessor to accepts requests R from device 130 and provide
`content C over a network, such as web server content the
`Internet, to device 130.
`FIG.1B is schematic of an alternative embodiment system
`100 for providing programming instructions to device 130
`over a network N that is generally similar to the system of
`FIG. 1A. The embodiment of FIG. 1B illustrates that system
`100 may include multiple servers 120 and/or multiple devices
`130.
`In the embodiment of FIG. 1B, system 100 is shown as
`including two or more servers 120, shown illustratively and
`without limitation as servers 120a and 120b. Thus some of the
`programming or information between authoring platform
`110 and one or more devices 130 may be stored, routed,
`updated, or controlled by more than one server 120. In par
`ticular, the systems and methods described herein may be
`executed on one or more server 120.
`Also shown in FIG. 1B are a plurality of devices 130,
`shown illustratively and without limitation as device 130-1,
`130-1,... 130-N. System 100 may thus direct communication
`between individual server(s) 120 and specific device(s) 130.
`As described subsequently, individual devices 130 may be
`provided with program instructions which may be stored in
`each device's memory 133 and where the instructions are
`executed by each device's processor 135. Thus, for example,
`server(s) 120 may provide device(s) 130 with programming
`in response to the input of the uses of the individual devices.
`Further, different devices 130 may be operable using different
`sets of instructions, that is having one of a variety of different
`
`Booking, Exh. 1030, Page 21
`
`
`
`5
`“device platforms. Differing device platforms may result,
`for example and without limitation, to different operating
`systems, different versions of an operating system, or differ
`ent versions of virtual machines on the same operating sys
`tem. In some embodiments, devices 130 are provided with
`Some programming from authoring system 100 that is par
`ticular to the device.
`In one embodiment, system 100 provides permits a user of
`authoring platform 110 to provide instructions to each of the
`plurality of devices 130 in the form of a device- or device
`platform specific instructions for processor 135 of the device,
`referred to herein and without limitation as a “Player, and a
`device-independent program, referred to herein and without
`limitation as an "Application' Thus, for example, authoring
`platform 110 may be used to generate programming for a
`plurality of devices 130 having one of several different device
`platforms. The programming is parsed into instructions used
`by different device platforms and instructions that are inde
`pendent of device platform. Thus in one embodiment, device
`130 utilizes a Player and an Application to execute program
`ming from authoring platform 110. A device having the cor
`rect Player is then able to interpret and be programmed
`according to the Application.
`In one alternative embodiment, the Player is executed the
`first time by device 130 (“activated') through an Application
`directory. In another alternative embodiment, the Player is
`activated by a web browser or other software on device 130.
`In yet another alternative embodiment, Player is activated
`through a signal to device 130 by a special telephone num
`30
`bers, such as a short code.
`When the Application and the Player are provided to
`memory 133, the functioning of device 130 may occur in
`accordance with the desired programming. Thus in one
`embodiment, the Application and Player includes program
`ming instructions which may be stored in memory 133 and
`which, when executed by processor 135, generate the
`designed displays on screen 137. The Application and Player
`may also include programming instructions which may be
`stored in memory 133 and which provide instructions to
`processor 135 to accept input from input device 139.
`Authoring tool 112 may, for example, produce and store
`within memory 111a plurality of Players (for different
`devices 130) and a plurality of Applications for displaying
`pages on all devices. The Players and Applications are then
`stored on one or more servers 120 and then provided to
`individual devices 130. In general, Applications are provided
`to device 130 for each page of display or a some number of
`pages. A Player need be provided once or updated as neces
`sary, and thus may be used to display a large number of
`Applications. This is advantageous for the authoring process,
`since all of the device-dependent programming is provided to
`a device only once (or possibly for Some Small number of
`upgrades), permitting a smaller Application, which is the
`same for each device 130.
`Thus, for example and without limitation, in one embodi
`ment, the Player transforms device-independent instructions
`of the Application into device-specific instructions that are
`executable by device 130. Thus, by way of example and
`without limitation, the Application may include Java pro
`gramming for generating a display on Screen 137, and the
`Player may interpret the Java and instruct processor 135 to
`produce the display according to the Application for execu
`tion on a specific device 130 according to the device platform.
`The Application may in general include, without limitation,
`instructions for generating a display on Screen 137, instruc
`tions for accepting input from input device 139, instructions
`
`45
`
`35
`
`40
`
`50
`
`55
`
`60
`
`65
`
`US 9,063,755 B2
`
`10
`
`15
`
`25
`
`6
`for interacting with a user of device 130, and/or instructions
`for otherwise operating the device. Such as to place a tele
`phone call.
`The Application is preferably code in a device-independent
`format, referred to herein and without limitation as a Portable
`Description Language (PDL). The device's Player interprets
`or executes the Application to generate one or more pages'
`(Applications Pages') on a display as defined by the PDL.
`The Player may include code that is device-specific—that it,
`each device is provided with a Player that is used in the
`interpretation and execution of Applications. Authoring tool
`112 may thus be used to design one or more device-indepen
`dent Applications and may also include information on one or
`more different devices 130 that can be used to generate a
`Player that specific devices may use to generate displays from
`the Application.
`In one embodiment, system 100 provides Players and
`Applications to one server 120, as in FIG. 1A. In another
`embodiment, system 100 provides Players to a first server
`120a and Applications to a second server 120b, as in FIG. 1B.
`In one embodiment, authoring tool 112 may be used to
`program a plurality of different devices 130, and routines 114
`may include device-specific routines. In another embodi
`ment, the Player is of the type that is commonly referred to as
`a “thin client’ that is, software for running on the device as
`a client in client-server architecture with a device network
`which depends primarily on a central server for processing
`activities, and mainly focuses on conveying input and output
`between the user and the server.
`In one embodiment, authoring platform 110 allows user to
`arrange objects for display on screen. A graphical user inter
`face (“GUI. or “UI) is particularly well suited to arranging
`objects, but is not necessary. The objects may correspond to
`one or more of an input object, an output object, an action
`object, or may be a decorative display, Such as a logo, or
`background color or pattern, such as a solid or gradient fill. In
`another embodiment, authoring platform 110 also permits a
`user to assign actions to one or more of an input object, an
`output object, oran action object. In yet another embodiment,
`authoring platform 110 also permits a user to bind one or
`more of an input object, an output object, or an action object
`with web services or web components, or permits a user to
`provide instructions to processor 135 to store or modify infor
`mation in memory 133, to navigate to another display or
`service, or to perform other actions, such as dialing a tele
`phone number.
`In certain embodiments, the applicant model used in devel
`oping and providing Applications is a PDL. The PDL can be
`conceptually viewed as a device, operating system and virtual
`machine agnostic representation of Java serialized objects. In
`certain embodiments, the PDL is the common language for
`authoring tool 112, the Application, and Player. Thus while
`either designing the Application with the authoring tool 112,
`or programming with the SDK, the internal representation of
`the programming logic is in Java. In one embodiment the
`SDK is used within a multi-language Software development
`platform comprising an IDE and a plug-in system to extend it,
`such as the Eclipse Integrated Development Environment
`(see, for example, http://www.eclipse.org/). At publish time
`the Java code is translated into a PDL. This translation may
`also occur in real-time during the execution of any Web Ser
`vices or backend business logic that interacts with the user.
`One embodiment for compacting data that may be used is
`described in U.S. Pat. No. 6,546,397 to Rempell (“Rempell”),
`the contents of which are incorporated herein by reference. In
`that patent the compressed data is described as being a data
`
`Booking, Exh. 1030, Page 22
`
`
`
`7
`base. The terminology used here is a PDL, that is the “internal
`database' of Rempell is equivalent to the PDL of the present
`Application.
`The use of a PDL, as described in Rempell, permits for
`efficient code and data compaction. Code, as well as vector,
`integer and Boolean data may be compacted and then com
`pressed resulting in a size reduction of 40 to 80 times that of
`the original Java serialized objects. This is important not only
`for performance over the network but for utilizing the virtual
`memory manager of the Player more efficiently. As an
`example, the reassembled primitives of the Java objects may
`first undergo logical compression, followed by LZ encoding.
`The use of a PDL also provides virtual machine and oper
`ating system independence. Since the reassembled primitives
`of the Application no longer have any dependencies from the
`original programming language (Java) that they were defined
`in. The PDL architecture takes full advantage of this by
`abstracting all the virtual machine and/or operating system
`interfaces from the code that processes the PDL.
`In one embodiment, the PDL is defined by the means of
`nested arrays of primitives. Accordingly, the use of a PDL
`provides extensibility and compatibility, with a minimal
`amount of constraints in extending the Player seamlessly as
`market demands and device capabilities continue to grow.
`Compatibility wi