`Rempell et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 9,471,287 B2
`*Oct. 18, 2016
`
`US009471287B2
`
`(54) SYSTEMS AND METHODS FOR
`INTEGRATING WIDGETS ON MOBILE
`DEVICES
`
`(71) Applicant: Express Mobile, Inc., Novato, CA (US)
`(72) 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 0 days.
`This patent is Subject to a terminal dis-
`laimer.
`Ca1
`(21) Appl. No.: 14/708,074
`(22) Filed:
`May 8, 2015
`(65)
`Prior Publication Data
`
`(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 51/046 (2013.01);
`H04L 65/60 (2013.01); H04L 67/02 (2013.01)
`(58) Field of Classification Search
`f
`CPC ..... ................................... G06F 3/048
`See application file for complete search history.
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`2004/0055017 A1
`3/2004 Delpuch et al.
`2004/0163020 A1
`8/2004 Sidman
`2004/01996.14 A1* 10, 2004 Shenfield ................ HO4L 29,06
`TO9.220
`
`(Continued)
`
`OTHER PUBLICATIONS
`
`Nov. 5, 2015
`US 2015/031713O A1
`Related U.S. Application Data
`(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 — X
`Xi
`R. V.
`(60) Provisional application No. 61/123,438, filed on Apr. 't al
`yong s
`(74) Attorney, Agent, or Firm — Steven R. Vosen
`7, 2008, provisional application No. 61/113,471, filed
`on Nov. 11, 2008, provisional application No.
`61/166,651, filed on Apr. 3, 2009.
`
`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
`Computer-Aided Design of User Interfaces CADUI 2004, Jan.
`2004, pp. 271-282).*
`
`(Continued)
`
`ABSTRACT
`(57)
`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.
`
`(51) Int. Cl.
`G06F 3/048
`G06F 9/44
`H04L 29/08
`G06F 3/0484
`G06F 3/0482
`H04L 29/06
`H04L 2/58
`
`(2013.01)
`(2006.01)
`(2006.01)
`(2013.01)
`(2013.01)
`(2006.01)
`(2006.01)
`
`28 Claims, 18 Drawing Sheets
`
`00 y
`
`
`
`10 Authoring
`Piatforr
`11 Memory
`12 Authoring
`
`Sewer
`12
`----------------------121 Network
`interface
`123 Memory
`12 Memory
`
`25. Processor
`
`114 Device
`Routies
`
`3 Processor
`
`is screen
`- 17 liput
`evice
`H
`
`Content
`140 server
`4. Network
`interface
`
`143 Memory
`
`145 processor
`
`Page 1 of 40
`
`GOOGLE EXHIBIT 1001
`
`
`
`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
`
`Page 2 of 40
`
`
`
`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
`
`Page 3 of 40
`
`
`
`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
`
`Page 4 of 40
`
`
`
`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
`
`Page 5 of 40
`
`
`
`U.S. Patent
`netaPs”U
`
`61028,1
`
`001f04mehS
`
`US 9,471,287 B2
`us 9,471,287 32
`
`t39%“:8me3mm;
`
`56mmmufltm
`
`H35e3:83Nfl355%1
`
`
`
`WUSQDGlam.
`
`Page 6 of 40
`
`
`£533in:
`
`
`EEEEOUchumZEELSEmma,
`
`mczcwmwafl£5.30
`
`
`
`32>mama29%m
`
`| |-legel
`
`
`
`muswa3&5:
`
`4ÖSS3DO)
`
`my
`
`@53on
`
`839$
`
`chums.
`
`Ea;V
`
`Wrmmmmw
`
`mmgal
`
`
`
`
`
`39:3230822EELS
`
`Ucm35.2mEUmeHEW565Nmmmw
`
`Page 6 of 40
`
`
`
`U.S. Patent
`nu
`m
`m
`
`00
`
`0
`
`US 9,471,287 B2
`us 9,471,287 32
`
`
`
`mom
`
`
`,1.figWMWMM%%w,“‘11..“cm0gswm0m5.\Mm_mom
`a».//r\m__
`awwmom
`
`
`JUmomm,...V»\\\MW\\VN.MumOm
`SLmOm
`mm“mom
`
`
`D1;_0mL_omU_omQ_Omyr:
`S.”15m8m
`
`Page 7 of 40
`
`
`
`.QmOM
`
`mmOm
`
`
`
`mmom
`
`Page 7 of 40
`
`
`
`U.S. Patent
`
`US 9,471,287 B2
`
`
`
`
`
`?608 p.608
`
`
`
`
`
`D608 q608 e608
`
`%
`
`608
`
`Page 8 of 40
`
`
`
`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
`
`Page 9 of 40
`
`
`
`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
`
`Page 10 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 9 of 18
`
`US 9,471,287 B2
`
`309
`
`
`
`309e9
`
`FG.3E
`
`Page 11 of 40
`
`
`
`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
`
`Page 12 of 40
`
`
`
`U.S. Patent
`US. Patent
`
`Oct. 18, 2016
`Oct. 18, 2016
`
`Sheet 11 of 18
`Sheetll 0f18
`
`US 9,471,287 B2
`us 9,471,287 32
`
`
`
`mm?mmw
`
`up?mrv
`
`
`
`
`
`filo?w/of3/a;3/00m
`
`
`
`
`
`
`
`xxx
`
`
`..\\\\\\.\\.\\\4\\v.xxxxxxxxxxxxxx
`
`
`
`xvxxxxxxvxxxxxx.
`
`mommF¢FFv
`
`x§§§mxfififiv
`
`
`
`mV.9...“<.v®E
`
`mFF
`
`Page 13 of 40
`
`Page 13 of 40
`
`
`
`hS
`
`US 9,471,287 B2
`us 9,471,287 32
`
`m“mummwm§@§$wm...mmm.mfi.mEmegymm«Mg.m.m%w4&mea«a33
`
`mwaw:
`
`$595gum\\\\w
`
`
`
`
`
`fig\xwfimmmmwfiufiH&$33M.
`Uw.0:
`
`LNomUmomQNom
`
`£8£8
`£8£8A/\
`
`md;
`
`U.S. Patent
`tnuetaPS”U
`
`6xmmW§§m§va3m§§¢aawfiwafim
`8,W‘wwmafiW.WamuguanEgg?“gag
`
`mfiw.
`
`<©GE
`
`rs‘y‘+s‘aaaEg‘+,+‘r‘u.‘ttEsu.‘E.‘u.‘u.‘hate.ss‘u.‘u.c.‘ahat.sg‘u.,k.‘y.‘atEséaesstVf
`
`009
`oom
`
`
`
`
`
`
`
`
`
`Page 14 of 40
`
`Page 14 of 40
`
`
`
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 13 of 18
`
`US 9,471,287 B2
`
`7OO
`
`"Nell asses
`
`
`
`7O1b
`
`S.
`
`FG. 7
`
`Page 15 of 40
`
`
`
`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
`
`Page 16 of 40
`
`
`
`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
`
`Page 17 of 40
`
`
`
`US. Patent
`
`Oct. 18, 2016
`
`Sheet16 0f18
`
`us 9,471,287 32
`
`v3.5250«1:.
`
`
`
`3w5.3K.ONr
`
`wm—_
`
`mMFF
`
`_«a
`
`«Lei.M?9%.”.
`m;
`
`Shamans“
`
`
`
`3353an»)
`
`Mfine.mam.m332%MW.
`“atom§wu3=nfi
`
`9508.3”
`
`nengfiufiw
`
`Lungs3E
`
`2.32am
`
`anaemia
`
`
`
`Eaten3&8ch
`
`
`
`mamawwfivmmmmaw
`
`$3.mwumz‘.
`
`
`
`..Bafl&dfififim@
`
`
`
`a:Esamgdaafi..man."
`
`.5gm4‘
`
`#2335ES:EEQEE‘
`
`
`
`Sagan£332
`
`
`...
`
`2.@E
`
`Page 18 of 40
`
`Page 18 of 40
`
`
`
`
`
`
`
`
`US. Patent
`
`Oct. 18, 2016
`
`Sheet 17 0f 18
`
`us 9,471,287 32
`
`mEEhflmm
`
`Ewfimmchmmhmu
`
`gammaammmnmmfi
`
`
`
`mmfimmhmfifimwmfl
`
`“mug6mgWEE
`
`
`Emma.Emamama:
`Em“mmwmmmmfiw
`
`”mangmmafia
`
`
`
`EEmQmm;mmmgfimmmumafimfimx
`
`
`
`
`
`
`mmwflwmfi.“Em.mmfifimmg”WEE“mum““Emw
`
`mmwfiflflmm
`
`
`
`$3.33gmflmmmEmmwwmmw
`
`my.0;
`
`_|_
`
`Emm.“3%an?a?mEmmi3%Eummmfit:
`
`00NF
`
`
`
`\wmmmm“m.&,m.0N—\V~V§x§k§§§¥§§§x\R‘Vékww$§kxx§§k$$§§§§§§§x§§§$§fikfl§§k§x
`
`Page 19 of 40
`
`
`
`
`
`wxwfixwxwwflwww«wmwkxfiwwav‘xmw\Vw.~\~\§\&«%
`
`Page 19 of 40
`
`
`
`
`
`
`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
`
`Page 20 of 40
`
`
`
`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
`
`Page 21 of 40
`
`
`
`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
`
`Page 22 of 40
`
`
`
`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
`
`Page 23 of 40
`
`
`
`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 defin