`
`(12) Unlted States Patent
`(10) Patent No.:
`US 9,471,287 B2
`
`Rempell et al.
`(45) Date of Patent:
`*Oct. 18, 2016
`
`(54) SYSTEMS AND METHODS FOR
`INTEGRATING WIDGETS ON MOBILE
`DEVICES
`_
`.
`(71) Appl1cant: Express Moblle, Inc., Novato, CA (US)
`(72)
`Inventors: Steven H. Rempell, Novato, CA (US);
`David Chrobak, Clayton, CA (US);
`Ken Brown, San Martin, CA (US)
`
`(52) US. 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
`/
`CPC ......................................................... G06F 3 048
`See apphcat1on file for complete search h1story.
`
`(73) Assignee: Express Mobile, Inc., Novato, CA (US)
`
`(56)
`
`References Cited
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`Pawnt is mended 0r adjuswd under 35
`U.S.C. 154(b) by 0 days.
`.
`.
`.
`.
`.
`Th1s patent 1s subject to a termmal d1s-
`1
`'
`.
`C a1mer
`(21) Appl. No.: 14/708,074
`
`U'S' PATENT DOCUMENTS
`2004/0055017 A1
`3/2004 Delpuch et a1.
`2004/0163020 A1
`8/2004 Sidman
`2004/0199614 A1 * 10/2004 Shenfield ................ H04L 29/06
`709/220
`
`.
`(Cont1nued)
`
`OTHER PUBLICATIONS
`
`(22)
`
`Filed:
`
`May 8, 2015
`
`(65)
`
`Prior Publication Data
`
`NOV. 5’ 2015
`US 2015/0317130 A1
`Related US. Application Data
`
`(63) Continuation of application No. 12/936,395, filed as
`application No. PCT/US2009/039695 on Apr. 6,
`2009, now Pat. No. 9,063,755.
`.
`.
`.
`.
`Prov1s1onal apphcat1on No. 61/123,438, filed on Apr.
`7, 2008, provisional application No. 61/113,471, filed
`on Nov.
`11, 2008, provisional application No.
`61/166,651, filed on Apr. 3, 2009.
`
`(60)
`
`(51)
`
`Int. Cl.
`G06F 3/048
`G06F 9/44
`H04L 29/08
`G06F 3/0484
`G06F 3/0482
`H04L 29/06
`H04L 12/58
`
`(2013.01)
`(2006.01)
`(2006.01)
`(2013.01)
`(2013.01)
`(2006.01)
`(2006.01)
`
`Stina Nylander et al. “The Ubiquitous InteractoriDevice 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)
`
`.
`Primary Examiner 7 Jenn1fer To
`A ' 1
`IE
`'
`7X
`X'
`5515 an
`xammer
`1a
`uyang
`(74) Attorney, Agent, or Firm 7 Steven R' Vosen
`
`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.
`
`28 Claims, 18 Drawing Sheets
`
`1013 \
`
`Lin/Authoring
`Platform
`
`.111 Memory
`
`WWW"
`m Device
`Routines
`
`3 Processor
`11; Screen
`—‘
`m Input
`
`Device—
`
`
`
`
`
`Content
`
`m Server
`141 Network
`Interface
`‘i 3 Memory
`JAE Processor
`
`
`
`+3.... 1 ___.
`
`A
`
`_
`
`_
`
`Server
`129
`1.2.1 Nerwork
`Inrerrace
`123 Memory
`
`:i
`
`ll; Processor
`
`
`
`
`
`
`Interface
`
`
`
`131 Memory
`fl Processor
`
`Adobe Inc. v.
`
`
`
`Express Mobile, |nc.,
`|PR2021 -XXXXX
`
`US. Pat. 9,471,287
`
`Exhibit 1001
`
`
`
`Exhibit 1001
`
`Page 01 of 40
`
`Exhibit 1001
`Page 01 of 40
`
`
`
`US 9,471,287 B2
`
`Page 2
`
`Opinion iPCT/US2009/
`
`. 14/708,094, filed May 8,
`
`International Search Report and Written
`0396957Aug. 21, 2009.
`International Preliminary Report on Patentability and Written Opin-
`ioniPCT/US2009/0396954Oct. 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
`2015.
`Rempell et al, co-pending U.S. Appl. No
`2015.
`Rempell et al, co-pending U.S. Appl. No
`2015.
`Rempell et al, co-pending U.S. Appl. No
`2015.
`
`. 14/708,097, filed May 8,
`
`. 14/708,100, filed May 8,
`
`. 14/708,108, filed May 8,
`
`* cited by examiner
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`7/2005 Benedetti
`2005/0149935 A1
`2005/0273705 A1* 12/2005 McCain .................. G06F 17/24
`715/234
`
`2006/0063518 A1
`
`3/2006 Paddon et al.
`
`OTHER PUBLICATIONS
`
`Stina Nylander et at. “The Ubiquitous InteractoriDeVice 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).
`
`Exhibit 1001
`
`Page 02 of 40
`
`Exhibit 1001
`Page 02 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 1 of 18
`
`US 9,471,287 B2
`
`100
`
`N
`
`110 Authoring
`Platform
`
`5 111 Memory
`
`11 Authoring
`
`1.1.4: Device
`Routines
`
`3 113 Processor
`
`5 115
`
`Screen
`
`1 Network
`
`Interface
`
`123 Memory
`
`iii Processor
`
`3
`
`-
`
`3-15- Processor 3
`
`1 o
`1
`— Server
`1
`1 Network '
`
`:
`
`i
`
`interface .
`
`V
`
`”
`
`1
`
`1 Network
`
`interface g
`
`133 Memory 3
`7
`
`HG, 1A
`
`Exhibit 1001
`
`Page 03 of 40
`
`Exhibit 1001
`Page 03 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 2 of 18
`
`US 9,471,287 B2
`
`100
`
`\
`
`
`
`Authoring
`Piatferm
`
`Device 2
`
`
`130— 2
`
`
`
`A434
`
`
`130—1
`
`
`
`Device 1
`
`C—1, R4
`
`Exhibit 1001
`
`Page 04 of 40
`
`Exhibit 1001
`Page 04 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 3 of 18
`
`US 9,471,287 B2
`
`200
`
`N
`
`Players
`
`
`
`Authoring
`Platform
`
`Applications
`
`Load Registry
`
`.LZQ
`
`Server
`
`Registry
`
`Applications
`
`V
`Web
`Content
`
`
`
`2-19-
`WebComponent
`Registry
`
`Deploy
`Registry
`
`m R
`
`es onse
`p
`
`Playerj
`
`'
`
`1 3
`
`"
`
`Device
`
`a
`
`Director
`
`Content
`
`Request
`
`Proxy
`HTTP/XML
`
`Req uest
`and
`
`Response
`
`2.3.0.
`
`Web Service
`
`FlG. 2A
`
`Exhibit 1001
`
`Page 05 of 40
`
`Exhibit 1001
`Page 05 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 4 of 18
`
`US 9,471,287 B2
`
`
`
`8:60SELEE
`
`II
`
`
`
`co:8__&<3mm:
`
`22w“9.8%aim.
`
`
`
`
`
`memcmEboEms._m:t_>
`
`
`
`
`
`UcmEwes.mc_vme.—\3VW563NNmmmfl.
`
`535
`
`«£522
`
`9:2on
`
`839$
`
`me
`
`W,mmmmw
`
`mm”GE
`
`Lemmwooi
`flag:3.:33a#53521
`
`
`
`
`
`EngEouchums._m=t_>
`
`
`
`9:5mequ35.30
`
`
`
`32>mama29%m
`
`mum>wfla,
`
`Emmm
`
`Exhibit 1001
`
`Page 06 of 40
`
`Exhibit 1001
`Page 06 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 5 of 18
`
`US 9,471,287 B2
`
`mom.;;:s;:s;
`
`
`
`fi§§§§§§§§w
`
`\\\\
`
`3%20m
`
`
`
`.//r\m__
`
`mmOm
`
`nmom
`
`umom
`
`Umom
`
`mmom
`
`hmom
`
`mmom
`
`gmom
`
`_mom
`
`mwxmom
`
`Rom
`
`-<m.QE
`
`50m20mEomn:onn.
`
`
`
`yr;_om”r:oom
`
`Exhibit 1001
`
`Page 07 of 40
`
`Exhibit 1001
`Page 07 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 6 of 18
`
`US 9,471,287 B2
`
`Nmmom
`
`mmmom
`
`#mmom
`
`wmomUmomumomnoomgem
`
`SS».,§:S§,\,w~w~.§.
`
` mom
`
`mm6E
`
`Exhibit 1001
`
`Page 08 of 40
`
`Exhibit 1001
`Page 08 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 7 of 18
`
`US 9,471,287 B2
`
`309b
`
`‘ ‘ WWW
`
`309b1
`
`309b3
`
`309b4
`
`309b5
`
`{Sam Mama-i We Raga: remafimg CEIEE'ESE‘S Harrie
`Sam Exfiemai WEED Page: Lflfi‘fifififlfi in: a New Wénazmw
`Sets & sg‘sefiifia Page mew
`Sam Exifismai Ween gage :‘egfifiafififig the "$4313 Frame
`Sam {fie Ram; Page mew
`flag-Hm Jiafia'fifilfifif gmmm
`Pagaafiesuzm Sage Ewe-mat
`Examte am fimfifmflm
`Sam @- Sfiefiifi: SEER EH; 3 Page View
`'Exififimfificafififi
`Exit Wagasr
`mace P‘fiflfifl (13$!
`
`Semfi Swag; ma: FIRE
`Semi 533% m. .FiRIE m‘ americ Keys
`
`FEG. 3C
`
`Exhibit 1001
`
`Page 09 of 40
`
`Exhibit 1001
`Page 09 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 8 of 18
`
`US 9,471,287 B2
`
`8,
`
`“8%
`
`\\§\\‘“{\\\"
`
`8
`
`Sflififi Rafi
`
`,2
`
`Si: mi’éfi R3 . 822%
`
`3
`
`.33
`138
`
`5:1
`#3
`
`.3
`1:3
`
`HG. ED
`
`Exhibit 1001
`
`Page 10 of 40
`
`Exhibit 1001
`Page 10 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 9 of 18
`
`US 9,471,287 B2
`
`309gN
`
`309e1
`
`309e3
`
`309e11
`
`309e12
`
`30997
`
`309e10
`
`30992
`
`'
`
`'
`
`\\\\\\\\<§\\\\\\\\\\
`
`309e8
`
`309e4
`
`30985
`
`309e6
`
`309e9
`
`E:3(3.l3EE
`
`Exhibit 1001
`
`Page 11 of 40
`
`Exhibit 1001
`Page 11 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 10 of 18
`
`US 9,471,287 B2
`
`..
`
`3 1 9C
`
`31 9d
`
`31 96
`
`
`
`RSS- Bispiair Us:
`Miamgast4mseirfien-agg-tflirezfiona
`fiageatues’psxemmrflimam{‘Fampmfii
`EEMpfluest—G‘flfiiagflagte “gamma 5
`iflfigzflne‘BE-Getm apCEEufier—Pamwfi E
`‘fifiagwfiuflgtmmamfimsfia{—Faagmaw
`mafiauest—Gemmsmte {-53.23%}.-
`
`\“mes‘wxxx'xximmkxmukx&E&\m.kx§x\i\m\n\ms
`fifiagfiugat-‘mhgatflm
`§3iem§ea
`= Semi '5 m S
`Weamafl
`EWemhw'
`M’sfiéfi
`swims
`BAEEEQE: sugm‘Frieads
`Fmszfiéasz 5:.591' Siam s
`Fgfimimgafiemm
`Fgficiéefiagefififii
`
`.
`
`mfiamagem‘ifiumn
`Rinngne—l’hmfi
`Saamfimi
`33mm
`
`35.225513: Ringimes
`¥ §§§a§ssmxme
`:\\\mmm>.mm.\\\
`
`FiG. 3F
`
`319
`
`3 1 9 a
`
`Exhibit 1001
`
`Page 12 of 40
`
`Exhibit 1001
`Page 12 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 11 0f 18
`
`US 9,471,287 B2
`
`mw@E
`
`
`
`\\\\\\\\\\\\\\\\\\\\\\\\\§\\\\\\\\\\\\3§
`
`mom
`
`
`
`{230$
`
`E»I.“
`
`m;
`
`
`
`”lo;W/00m
`
`m:
`
`Exhibit 1001
`
`Page 13 0f40
`
`Cw m
`
`
`
`.§§Mm\fifiw
`BIKESIEEgasivmfi\
`
`egantfinékS.”
`
`dxfifiuv
`
`fi
`
`Exhibit 1001
`Page 13 of 40
`
`
`
`etaPNU
`
`s
`
`US 9,471,287 B2
`
`
`
`
`
`u3%NNN:NNN.NNgtNNNNN.NNNNNNE.
`
`mNNNNNNNMNNNN...NNN§”
`
`U—oow
`
`fifiwathmmmmMNNN
`
`
`
`fiwfimmmmwfiufim6;
`
`
`
`mafimflmfifimN,UwEmN828£8mom
`
`.£8£8£838A/\
`
`
`
`
`
`
`
`fiswuuamflwflagmNHMELfimfififimdfifiam.W8,NNNNNNN.H._.1.Wawn—flawWfi
`
`+tyr!n08
`
`
`
`NNN_..<96EEgg:
`
`Exhibit 1001
`
`Page 14 of 40
`
`Exhibit 1001
`Page 14 of 40
`
`
`
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 13 of 18
`
`US 9,471,287 B2
`
`700
`
`701a
`
`\\\\\\\\5
`
`
`701 b
`
`HG. 7
`
`701C1
`
`701 C2
`
`701d
`
`701e
`
`\§
`\§
`
`701C —>
`
`Exhibit 1001
`
`Page 15 of 40
`
`Exhibit 1001
`Page 15 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 14 of 18
`
`US 9,471,287 B2
`
`N 8
`
`01
`
`800
`
`
`
`SMS Server
`
`Website System 03
`
`
`Content Server
`
`05
`
`Exhibit 1001
`
`Page 16 of 40
`
`FEG. g
`
`Exhibit 1001
`Page 16 of 40
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 15 of 18
`
`US 9,471,287 B2
`
`‘ «Accumufih
`
`
` F3331! $fiumes
`
`"
`
`
`
`
`Matias
`Can-mm
`Gateway
`
`
`
`m: “
` 1011
`
`1012
`1013
`
`1014
`
`1015
`
`
`
`130
`
`Haw? rgquagts
`
`Gunman: Server
`fer Feed Dam
`HIT? 3G F933
`
`“x
`
`£1.11is
`1%
`
`
`1018
`
`1019
`
`1020
`
` 1021
`
`Dynam'n
`Gmmm; Serum
`
`,
`
`, 1022
`
`Skis nt
`
`Exhibit 1001
`
`Page 17 of 40
`
`Exhibit 1001
`Page 17 of 40
`
`
`
`U.S. Patent
`
`()ct 18,2016
`
`Sheet16 0f18
`
`US 9,471,287 B2
`
`ugmx22»
`
`«finmvuu«ans
`
`:1»;
`
`{mm}:m:A.x.
`m:
`
`exgaax
`
`3333Q...»
`
`$396»
`
`
`
`mu;gum.
`
`nnmgfififi
`
`86330Ken
`
`23¢th
`
`gafifix
`
`meF
`
`mmPF
`
`«fig3%.;£3£3«x:
`
`x!r.zat\ckttxx‘.:z3...t\c\t‘é‘é::rficcxtzxtxztrc
`
`$€§Stt>§
`
`
`
`
`
`.mmmmaw
`
`@mP_..new353%?w..«E:3§:§<
`:5;QrJana
`
`Rafi,éfiwmy:385$
`
`Ecaamn5
`
`
`
`«magma£322
`
`S.@E
`
`Exhibit 1001
`
`Page 18 of 40
`
`Exhibit 1001
`Page 18 of 40
`
`
`
`
`
`
`
`
`
`
`%hS
`
`US 9,471,287 B2
`
`Emamama:m“qume£deWEE
`
`§w“wwwm
`
`
`
` mmmmbwmEmmnmfig»\\\\§2Emma
`
`
`
`mHmwfimuda“mmmmmfi.mEhEmmMnuggmmaammhmungmfihfiwm
`
`azagm
`
`mummmkmfifimmm
`
`.3\\\\“\\\\M.
`
`R\\\\k\\k\\\k\k\\\.
`é
`
`EEEan
`
`wmflmmEma
`
`EEGmgmmfigmmi
`
`mfimmax
`
`
`
`gmSwamfimnfiwmww
`
`tkk.m
`
`.FSEs.+U
`
`
`Dam€meEmaMmmmfimqmfiammflEggSwamiatm
`
`am”
`
`Exhibit 1001
`
`Page 19 of 40
`
`
`
`mfifimmfl“mam._,.§m§”WEE“mmfi“gmm
`
`
`
`
`
`
`
`my.0:
`
`Exhibit 1001
`Page 19 of 40
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Oct. 18, 2016
`
`Sheet 18 of 18
`
`US 9,471,287 B2
`
`Receive HTTP Header
`\w\\V\X\m\mm\w\\\\mm\\mmm\m\m\\\x\\wxm\\w\w\\x\\\x\xx\mm \‘
`
`
`3x55xx533x33$33X;1x3:533$33x53§xx53xx51¢,“5X>xxtcy33$wi§sstxx>$$$,
`Jr/I/r/I/r
`\VL\\\\\\\\\\\\\\\\\\m\N\\\\\\\\“\\\\\\\\x\w\\\\\\\\
`
`
`Query Ear
`flevice Chamefierisfics
`Operatnr and: Lacale
`
`////////”III/”.471””II/”r/rtlz/x/l/rIrir/x/r/r/zt/ N .1 O
`130‘!
`
`Generate
`
`JAE:
`
`8,
`
`
`
`
`nespamse Dwecim
`
`
`
`, 1303
`
`Device Appmpriate Player insult:
`
`Query and Raceive
`URL ior Maiching Hays?
`
`Mayer Profite
`Esta base
`
`
`
`Mayer Build Process
`Generate Players far :13
`Absiractign Simplamantafiom
`
`F5613
`
`Exhibit 1001
`
`Page 20 of 40
`
`Exhibit 1001
`Page 20 of 40
`
`
`
`US 9,471,287 B2
`
`1
`SYSTEMS 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
`
`Intemet-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
`
`5
`
`10
`
`20
`
`25
`
`30
`
`35
`
`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, 45
`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.
`
`50
`
`55
`
`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-
`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 60
`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.
`
`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
`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
`
`Exhibit 1001
`
`Page 21 of 40
`
`Exhibit 1001
`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 routinesithat
`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
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`
`devices using routines provided on a platform. Thus as an
`example, routines 114 may include Java API’s 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 1201). 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
`
`Exhibit 1001
`
`Page 22 of 40
`
`Exhibit 1001
`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 anApplication
`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-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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-
`specificithat 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”ithat 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
`
`Exhibit 1001
`
`Page 23 of 40
`
`Exhibit 1001
`Page 23 of 40
`
`
`
`US 9,471,287 B2
`
`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 US. 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 Re