`I 1111111111111111 11111 1111111111 1111111111 1111111111 11111 111111111111111111
`
`US 9,471,287 B2
`
`(10)Patent No.:
`c12) United States Patent
`(45)Date of Patent:
`
`*Oct. 18, 2016
`
`
`
`Rempell et al.
`
`(54)SYSTEMS AND METHODS FOR
`
`
`INTEGRATING WIDGETS ON MOBILE
`DEVICES
`
`(52)U.S. Cl.
`CPC ............... G06F 8/34 (2013.01); G06F 3/0482
`
`
`(2013.01); G06F 3/04842 (2013.01); G06F
`
`
`
`
`9/4443 (2013.01); H04L 511046 (2013.01);
`
`H04L 65/60 (2013.01); H04L 67102 (2013.01)
`
`(58)Field of Classification Search
`(72) Inventors: Steven H. Rempell, Novato, CA (US);
`
`
`
`
`CPC ....................................................... G06F 3/048
`
`
`David Chrobak, Clayton, CA (US);
`
`
`See application file for complete search history.
`
`Ken Brown, San Martin, CA (US)
`
`
`
`
`
`
`
`(71)Applicant: Express Mobile, Inc., Novato, CA (US)
`
`
`
`(56)
`(73)Assignee: Express Mobile, Inc., Novato, CA (US)
`
`
`
`
`
`
`
`
`
`
`
`References Cited
`
`( *) Notice: Subject to any disclaimer, the term ofthis
`
`
`
`
`
`patent is extended or adjusted under 35
`2004/0055017 Al 3/2004 Delpuch et al.
`
`
`
`
`U.S.C. 154(b) by O days.
`
`2004/0163020 Al 8/2004 Sidman
`2004/0199614 Al* 10/2004 Shenfield ................ H04L 29/06
`
`
`
`
`
`This patent is subject to a terminal dis
`709/220
`claimer.
`
`U.S. PATENT DOCUMENTS
`
`(Continued)
`
`(21)Appl. No.: 14/708,074
`
`
`
`May 8, 2015 (22)Filed:
`
`(65)
`
`
`
`Prior Publication Data
`
`
`
`US 2015/0317130Al Nov. 5, 2015
`
`
`
`
`
`Related U.S. Application Data
`
`OTHER PUBLICATIONS
`
`Stina Nylander et al. "The Ubiquitous Interactor-Device Indepen
`
`
`
`
`
`dent Access to Mobile Services" (Computer-Aided Design for User
`
`
`
`
`Interfaces IV, Proceedings of the Fifth International Conference on
`
`
`
`Jan. CADUI'2004, Computer-Aided Design of User Interfaces
`
`2004, pp. 271-282). *
`
`(63) Continuation of application No. 12/936,395, filed as
`
`
`
`
`
`application No. PCT/US2009/039695 on Apr. 6,
`Primary Examiner - Jennifer To
`
`
`
`2009, now Pat. No. 9,063,755.
`
`
`Assistant Examiner - Xuyang Xia
`
`
`(60) Provisional application No. 61/123,438, filed on Apr.
`
`
`(74)Attorney, Agent, or Firm - Steven R. Vosen
`
`
`7, 2008, provisional application No. 61/113,471, filed
`on Nov. 11, 2008, provisional application No.
`(57)
`ABSTRACT
`
`61/166,651, filed on Apr. 3, 2009.
`
`(Continued)
`
`G06F 9/44
`
`(51)Int. Cl.
`(2013.01)
`G06F 3/048
`(2006.01)
`(2006.01)
`H04L 29108
`(2013.01)
`G06F 3/0484
`(2013.01)
`(2006.01)
`(2006.01)
`
`G06F 3/0482
`
`H04L 29106
`
`H04L 12158
`
`Embodiments of a system and method are described for
`
`
`
`
`
`generating 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
`
`100�
`
`llQ Authoring
`Platform
`
`r., ,;;;;: I �
`I ill Memory I �
`
`Content
`
`
`
`1 � Processor I
`
`:==�
`
`Booking, Exh. 1031, Page 1
`
`
`
`US 9,471,287 B2
`Page 2
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`7/2005 Benedetti
`2005/01499.35 A1
`2005/0273705 A1* 12, 2005 McCain .................. GO6F 17 24
`T15,234
`
`2006, OO63518 A1
`
`3, 2006 Paddon et al.
`
`OTHER PUBLICATIONS
`
`Stina Nylander et at. “The Ubiquitous Interactor Device Indepen
`dent Access to Mobile Services” (Computer-Aided Design for User
`Interfaces IV, Proceedings of the Fifth international Conference on
`Computer-Aided Design of User Interfaces CADUT2004, Jan.
`2004, pp. 271-282).
`
`International Search Report and Written Opinion —PCT/US2009/
`039695–Aug. 21, 2009.
`International Preliminary Report on Patentability and Written Opin
`ion PCT/US2009/039695 Oct. 21, 2010.
`Rempell et al, co-pending U.S. Appl. No. 14,708,087, filed May 8,
`2015.
`Rempell et al, co-pending U.S. Appl. No. 14,708,094, filed May 8,
`2015.
`Rempell et al, co-pending U.S. Appl. No. 14,708,097, filed May 8,
`2015.
`Rempell et al, co-pending U.S. Appl. No. 14,708, 100, filed May 8,
`2015.
`Rempell et al, co-pending U.S. Appl. No. 14,708, 108, filed May 8,
`2015.
`
`* cited by examiner
`
`Booking, Exh. 1031, Page 2
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 1 of 18
`
`US 9,471,287 B2
`
`OO N
`
`
`
`11 O Authoring
`Platform
`1 11 Memory
`
`112 Authoring
`
`114 Device
`Routines
`
`3 Processor
`
`5 Screen
`
`Network
`interface
`
`123 Memory
`
`125 Processor
`
`13 Network
`interface
`
`-
`
`40
`Server
`ful
`4 Network
`
`Interface
`
`a
`
`---
`
`133 Memory
`
`s
`
`135 Processor
`
`O
`
`FG. A
`
`Booking, Exh. 1031, Page 3
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 2 of 18
`
`US 9,471,287 B2
`
`OO N
`
`
`
`O Authoring
`Platform
`
`
`
`
`
`Device
`
`C-1, R-1
`
`Booking, Exh. 1031, Page 4
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 3 of 18
`
`US 9,471,287 B2
`
`2OO y
`
`Players
`
`
`
`Authoring
`Patform
`
`Applications
`
`Load Registry
`
`120
`
`Server
`
`3.
`
`Registry
`
`220
`- WebComponent
`Registry
`
`Applications
`
`2O R
`SSe
`p
`Director
`
`N
`
`Player-
`
`3
`
`evice
`
`F.G. 2A
`
`Web
`Content
`
`s:
`
`Content
`Recuest
`
`Deploy
`Registry
`
`Proxy
`HTTP/XM
`Request
`and
`Response
`23O
`
`
`
`Web Service
`
`Booking, Exh. 1031, Page 5
`
`
`
`U.S. Patent
`
`US 9,471,287 B2
`
`
`
`4ÖSS3DO)
`
`| |-legel
`
`Booking, Exh. 1031, Page 6
`
`
`
`
`
`ULOE
`
`HLOE
`
`
`
`U.S. Patent
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 5 of 18
`
`US 9,471,287 B2
`US 9,471,287 B2
`
`
`
`60E
`
`BL0€|LOE[eLOe
`PLOELOE
`KRloeNo0€
`5VeDis
`LOE
`ise
`
`PEOE
`
`GE0E
`
`PEOE
`
`SEOE
`
`JEOE
`
`BEeoe
`
`YEOE
`
`lEOE
`
`Booking, Exh. 1031, Page 7
`
`Booking, Exh. 1031, Page 7
`
`
`
`U.S. Patent
`
`US 9,471,287 B2
`
`
`
`
`
`?608 p.608
`
`
`
`
`
`D608 q608 e608
`
`%
`
`608
`
`Booking, Exh. 1031, Page 8
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 7 of 18
`
`US 9,471,287 B2
`
`
`
`S&S
`
`st ExSessi šes as Sesiasting Ci SS assista
`Essexiesii is is age S.Essicises is is sistics
`sts as specisit age fiel:
`{} x's Saise age Sesiasig Saig SSS
`stic tise sexiste sies
`sectse S&SE:Sisies:
`assessessfire &se isses:
`Xscists Sississists
`R is S&Eiit Site is is series
`
`3O9b 1
`
`309b.5
`
`FG. 3C
`
`Booking, Exh. 1031, Page 9
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 8 of 18
`
`US 9,471,287 B2
`
`
`
`Š SSS
`
`3.
`s
`s
`S.
`
`Šiši-SS
`See ESS
`jSS38
`Sessi
`Eise
`SeSt.
`tags: S.
`
`is same'araws. :
`
`FG. 3D
`
`Booking, Exh. 1031, Page 10
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 9 of 18
`
`US 9,471,287 B2
`
`309
`
`
`
`309e9
`
`FG.3E
`
`Booking, Exh. 1031, Page 11
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 10 of 18
`
`US 9,471,287 B2
`
`
`
`319a
`
`is
`SSS is is
`Sississiest-SSEse:Siegss.setSEFe:Eoss
`Siassiss-Seisa Esa-sassissists
`S Sistest-sease E-SSESSaSS
`siastisest-Seti apiciuste-targas E
`Siassist-SetRapissie -8.3sš
`S$2:38:8siesis. ESSSSg-Sass,geSiasise:
`SSSSSSSSSS Š
`Siasiss-OiseER:
`Sisses
`SeSSS
`Flesher2
`Neather
`SSEiss
`SSESS
`Báciegsgeisiesis
`ESSESS...SeSats
`SSSE3SSSSSSS:
`FB&Siegsge:ER:
`
`Y
`
`319C
`
`319C
`
`319e
`
`gets::
`is
`Riigits-Spig
`Ssss;
`SE&SS
`Seases -Riigi Ees
`Siassissists
`Š
`
`FG, 3F
`
`Booking, Exh. 1031, Page 12
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 11 of 18
`
`US 9,471,287 B2
`
`
`
`Booking, Exh. 1031, Page 13
`
`
`
`U.S. Patent
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 12 of 18
`
`US 9,471,287 B2
`US 9,471,287 B2
`
`GUEgy
`
`G62S
`
`
`
`PILGECEPULIGTASWOSPLARLY
`
`
`
`
`
`
`
`yousyepyAsparsyaiy7
`
`UMOIS]Was]7B
`
`
`
`
`
`VODld
`39Old
`a9Dis
`Bz0s|8zos|2720S
`
`
`JcOS)=PCOS)=6c0S
`ezogFv
`
`009
`00S
`
`S‘Dls
`
`Booking, Exh. 1031, Page 14
`
`Booking, Exh. 1031, Page 14
`
`
`
`
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 13 of 18
`
`US 9,471,287 B2
`
`7OO
`
`"Nell asses
`
`
`
`7O1b
`
`S.
`
`FG. 7
`
`Booking, Exh. 1031, Page 15
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 14 of 18
`
`US 9,471,287 B2
`
`3OO N
`
`8O1
`Website System
`
`
`
`
`
`O3
`SMS Server
`
`
`
`Content Server
`
`FG. 9
`
`Booking, Exh. 1031, Page 16
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 15 of 18
`
`US 9,471,287 B2
`
`
`
`
`
`
`
`isis
`fist
`&esters&y
`
`SS&
`
`St& S
`
`
`
`
`
`
`
`O2
`O3
`O14
`
`1 O5
`
`&y& 88sts
`its Sisse
`if &c. &
`is 8. Rg88
`
`
`
`3O Y.
`
`S&:
`
`sers
`
`re
`yassi:
`at Sea 4O
`
`Booking, Exh. 1031, Page 17
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 16 of 18
`
`US 9,471,287 B2
`
`ae
`a)
`
`§..,iBOL...
`
`SOLOA648
`
`GRESCIK
`
`ACHSSHAUST
`
`ADSAAOPRAY
`
`queveidy
`
`
`
`AcigeneeapgBaer
`
`Punee
`
`Was
`
`
`
`GUTOuE‘WdA
`
`edpenioudalyseeseceegensgsessg
`
`
`
`puevopeoynddy
`
`seubleadtut
`
`CURBeAIGX
`
`Bagheey
`
`sedesopaueuens
`
`cugeoidy
`
`
`
`DIDIPEPOPIPODPPYEE
`
`333Z23y3
`
`
`
`
`
`quaquESGhueudg
`
`
`
`Bunweags“safe4)
`
`
`
`SODAS]SHQCA
`
`
`
`ABoepecnaogcauesedty
`
`i
`
`PaOSnnasaaoa¢
`
`0&1
`
`LLDis
`
`Booking, Exh. 1031, Page 18
`
`Booking, Exh. 1031, Page 18
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 17 of 18
`
`US 9,471,287 B2
`
`
`
`
`
`juebyJes(sseippygiflueBy19s}sepesydtAOOL
`
`
`
`
`
`LOLITASETDETD
`
`
`
`
`
`japory‘ayeyypuLy
`
`
`jusbyJeshBusy
`‘ezIgueelg
`
`‘woddngacy)
`
`
`
` (018
`
`sua
`
`|SsaippydiGuisn
`JGeiedo/jeLies
`uor®\peuluueled
`
`
`
`021
`
`SORSHOOBILUD
`
`aes
`SS
`
`&
`
`&
`
`SSSIPDYdl
`
`geeqeied
`
`HewesAsiaseneieda4owsaidy
`
`
`
`
`
`
`(oyeledg(sus‘nunydem‘wy‘epel‘Loeb
`
`
`
`aiidqepdouidypues
`
`ClOls
`
`Booking, Exh. 1031, Page 19
`
`Booking, Exh. 1031, Page 19
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 18 of 18
`
`US 9,471,287 B2
`
`
`
`
`
`S&S
`
`S&SSSSSSSSSSSSSSSSSSSSSSSSSSS
`
`guery for
`&fice Ca3Sexistics
`sperator acticae
`
`
`
`
`
`
`
`
`
`SS
`S.
`
`
`
`
`
`S&reate
`
`
`
`Response irector
`
`
`
`evice Appropriate isyer instaii
`
`tiery and Receive
`R. for Narciag layey
`
`13O3
`
`Bayer foie
`fata: base
`
`
`
`Player Briti Process
`{Senerate RiaysFS for a
`AEast actic inpatientations
`
`F.G. 13
`
`Booking, Exh. 1031, Page 20
`
`
`
`US 9,471,287 B2
`
`1.
`SYSTEMIS AND METHODS FOR
`INTEGRATING WIDGETS 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
`capabilities.
`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 expen
`sive proposition, thus limiting the ability of service provid
`ers 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
`
`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
`network;
`FIG. 1B is schematic of an alternative embodiment sys
`tem for providing programming instructions to device over
`a network;
`FIG. 2A is a schematic of an embodiment of system
`illustrating the communications between different system
`components;
`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
`collector;
`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
`certain components, aspects or features shown therein, with
`reference symbols common to more than one Figure indi
`cating like components, aspects or features shown therein.
`
`MODE(S) FOR CARRYING 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
`
`35
`
`45
`
`50
`
`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 dis
`play, select a component of a web service included in said
`database, associate said object with said selected compo
`nent, and produce code that, when executed on the platform,
`40
`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-independent; 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 com
`ponent of a web service included in said database; associ
`55
`ating said object with said selected component; and produc
`ing 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 depen
`dencies. 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
`fragmentation.
`
`60
`
`65
`
`Booking, Exh. 1031, Page 21
`
`
`
`US 9,471,287 B2
`
`3
`device 130 over a network N. In one embodiment, device
`130 is a wireless device, and network N includes wireless
`communication to the device. Alternatively, system 100 may
`provide 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 network N, 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
`network, 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
`indicated 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
`(Express 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 ref
`erence 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
`
`40
`
`45
`
`4
`devices using routines provided on a platform. Thus as an
`example, routines 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 transmission 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 program the operation of device 130. In another embodi
`ment, 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 interface 130 for storage in memory 133.
`In an alternative embodiment, analytics information from
`devices 130 may be returned from device 130, through
`network N and server 120, back to authoring platform 110.
`as indicated by line B, for later analysis. Analytics informa
`tion 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
`processor 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
`processor 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 sys
`tem 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 mul
`tiple 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 plat
`form 110 and one or more devices 130 may be stored,
`routed, updated, or controlled by more than one server 120.
`In particular, 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 communi
`cation 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
`
`5
`
`10
`
`15
`
`25
`
`30
`
`35
`
`50
`
`55
`
`60
`
`65
`
`Booking, Exh. 1031, Page 22
`
`
`
`US 9,471,287 B2
`
`5
`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 differ
`ent sets of instructions, that is having one of a variety of
`different “device platforms. Differing device platforms may
`result, for example and without limitation, to different
`operating systems, different versions of an operating system,
`or different versions of virtual machines on the same oper
`ating system. In some embodiments, devices 130 are pro
`vided with some programming from authoring system 100
`that is particular 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 independent of device platform.
`Thus in one embodiment, device 130 utilizes a Player and an
`Application to execute programming from authoring plat
`form 110. A device having the correct 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
`numbers, 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 111 a 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 pro
`vided to device 130 for each page of display or a some
`number of pages. A Player need be provided once or updated
`as necessary, 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
`
`40
`
`45
`
`6
`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, instructions for accepting input from input device 139,
`instructions for interacting with a user of device 130, and/or
`instructions for otherwise operating the device. Such as to
`place a telephone call.
`The Application is preferably code in a device-indepen
`dent 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-independent 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
`embodiment, 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
`interface (“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, or an 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 information in memory 133, to navigate to
`another display or service, or to perform other actions, such
`as dialing a telephone number.
`In certain embodiments, the applicant model used in
`developing and providing Applications is a PDL. The PDL
`can be conceptually viewed as a device, operating system
`and virtual machine agnostic representation of Java serial
`ized objects. In certain embodiments, the PDL is the com
`mon 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.e-
`clipse.org/). At publish time the Java code is translated into
`
`10
`
`15
`
`25
`
`30
`
`35
`
`50
`
`55
`
`60
`
`65
`
`Booking, Exh. 1031, Page 23
`
`
`
`7
`a PDL. This translation may also occur in real-time during
`the execution of any Web Services or backend business logic
`that interacts with the user.
`One embodiment for compacting data that may be used is
`described in co-pending 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 database. 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
`compressed 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
`operating system independence. Since the reassembled
`primitives of the Application no longer have any dependen
`cies from the original programming language (Java) that
`they were defined in. The PDL architecture takes full advan
`tage 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
`30
`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 with other languages is inherent based on the
`various