`US008989715B2
`
`(12) United States Patent
`Carion et al.
`
`(Io) Patent No. :
`(45) Date of Patent:
`
`US 8,989,715 B2
`*Mar. 24, 2015
`
`(54) METHOD AND SYSTEM FOR RENDERING
`CONTENT ON A WIRELESS DEVICE
`
`(71) Applicant: Phunware,
`
`Inc., Austin, TX (US)
`
`(72)
`
`Inventors:
`
`Pierre Carion, La Jolla, CA(US);
`Kevin Smith, San Diego, CA (US)
`
`Phunware,
`
`Inc., Austin, TX (US)
`
`(73) Assignee:
`( * ) Notice:
`
`the term of this
`Subject to any disclaimer,
`is extended or adjusted under 35
`patent
`U.S.C. 154(b) by 0 days.
`to a terminal
`
`This patent
`claimer.
`
`is subject
`
`dis-
`
`(21) Appl. No. : 13/S65, 9S7
`
`(22)
`
`Filed:
`
`Apr. 1S, 2013
`
`(65)
`
`Prior Publication Data
`
`US 2013/0339425 Al
`
`Dec. 19, 2013
`
`Related U.S.Application Data
`(63) Continuation of application No. 11/888, 803, filed on
`Aug. I, 2007, now Pat. No. 8,478,245.
`
`(51)
`
`Int. Cl.
`H04L 29/08
`G06F 9/44
`(52) U.S. Cl.
`CPC ..........
`
`(2006.01)
`(2006.01)
`
`.... H04L 67/10 (2013.01); G06F 9/4443
`(2013.01)
`455/414. 1; 709/203
`
`USPC
`(58) Field of ClassiTication Search
`USPC .................... 709/246; 455/414. 1—414.4, 566;
`715/200, 234—240, 744—747
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,060, 140
`5,430,836
`6,336,124
`6,343,318
`6,345,279
`
`A
`A *
`B1
`B1
`B1
`
`10/1991 Brown et al.
`7/1995 Wolf et al.
`1/2002 Alam et al.
`1/2002 Hawkins et al.
`2/2002 Li et al.
`
`(Continued)
`
`. .. 715/744
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`KR
`
`1571547 Al
`20070003418 A
`(Continued)
`OTHER PUBLICATIONS
`
`9/2005
`1/2007
`
`U.S. Appl. No. 12/001, 001, filed Dec. 7, 2011, Clavel et al.
`(Continued)
`
`Kashif Siddiqui
`Primary Examiner
`Wilson Sonsini Goodrich&
`(74) Attorney, Agent, orFirm
`Rosati
`
`ABSTRACT
`(57)
`A method of rendering
`content on a wireless device. The
`wireless device sends a message to a server
`an
`requesting
`application and identifies itself with its rendering capabilities.
`The wireless receives an identification of a custom configu-
`ration ofa plurality ofrendering blocks of the wireless device
`associated with the application. The custom configuration
`configures the plurality ofrendering blocks ofthe device. The
`wireless device receives compiled content
`from the applica-
`tion executing on the server that
`render commands
`includes
`expressed in a syntax that is device generic but has parameters
`specific to the rendering capabilities ofthe wireless device. A
`reader of the wireless device processes the compiled content
`blocks of a
`to individual
`and issues commands
`rendering
`graphical user interface based on the rendering commands of
`the compiled content and based on the custom configuration.
`20 Claims, 9 Drawing Sheets
`
`100B
`
`Device
`Genenc
`
`Device
`Specific
`
`Request/Identification
`Actions
`
`Compiled Content
`
`Server
`130
`
`108a
`
`Engine/Reader
`114
`
`Configuration Data
`112
`
`Graphical User Interface
`108
`
`Abstraction Layer
`106
`
`J2ME/BREW
`104
`
`Hardware
`102
`
`Netflix v. GoTV
`IPR2023-00757
`Netflix Ex. 1001
`
`
`
`US 8,989,715 B2
`Page 2
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`6,401,085 Bl
`6,457,030 Bl
`6,490,627 Bl
`6,795,710 Bl
`6,884, 172 Bl
`6,996,537 B2
`7,222, 154 B2
`7,286, 562 Bl
`7,287,064 Bl
`7,506,070 B2
`7,568,201 B2
`7,580,703 Bl
`7,599,665 B2
`7,627,354 B2
`7,636,792 Bl
`7,647,076 Bl
`7,671,869 B2
`7,801,891 B2
`7,979,350 Bl
`8,009,619 Bl
`8, 103,865 B2
`8,478,245 B2
`2002/0018487 Al
`2002/0103881 Al
`2002/0109718 Al
`2002/0131404 Al
`2003/0009495 Al
`2003/0018521 Al
`2003/0106022 Al
`2003/0120637 Al
`2003/0151621 Al *
`2003/0182419 Al
`2004/0133848 Al
`2004/0210907 Al
`2004/0236860 Al
`2004/0252197 Al
`2005/0172295 Al
`2005/0223352 Al
`2006/0031387 Al
`2006/0123053 Al
`2006/0129632 Al
`2006/0236308 Al
`2007/0067373 Al
`2007/0078009 Al
`2007/0123229 Al
`2007/0124721 Al
`2007/0130156 Al
`2007/0130333 Al
`2008/0016176 Al
`2008/0072139 Al
`2008/0090513 Al
`2008/0134018 Al *
`2008/0201225 Al
`2009/0037329 Al
`2009/0037391 Al
`2009/0177663 Al
`2009/0220068 Al
`2009/0227274 Al
`2009/0259940 Al
`2010/0174974 Al
`
`6/2002
`9/2002
`12/2002
`9/2004
`4/2005
`2/2006
`5/2007
`10/2007
`10/2007
`3/2009
`7/2009
`8/2009
`10/2009
`12/2009
`12/2009
`I/2010
`3/2010
`9/2010
`7/2011
`8/2011
`I/2012
`7/2013
`2/2002
`8/2002
`8/2002
`9/2002
`I/2003
`I/2003
`6/2003
`6/2003
`8/2003
`9/2003
`7/2004
`10/2004
`11/2004
`12/2004
`8/2005
`10/2005
`2/2006
`6/2006
`6/2006
`10/2006
`3/2007
`4/2007
`5/2007
`5/2007
`6/2007
`6/2007
`I/2008
`3/2008
`4/2008
`6/2008
`8/2008
`2/2009
`2/2009
`7/2009
`9/2009
`9/2009
`10/2009
`7/2010
`
`et al.
`
`Gershman et al.
`Adams et al.
`Kalra et al.
`Creemer
`Lloyd et al.
`Minear et al.
`Dowling
`Vargo et al.
`Haldar et al.
`Tran et al.
`Suryanarayana
`Veselov et al.
`Sinivaara
`Khazaka et al.
`Ho
`Lavine et al.
`Arnold et al.
`Hu et al.
`Carion et al.
`Clavel et al.
`Carion et al.
`Carion et al.
`Chen et al.
`Granade et al.
`Mansour et al.
`Mehta et al.
`Adjaoute
`Kraft et al.
`Goodacre et al.
`Chithambaram et al.
`McEvilly et al.
`Barr et al.
`Hunt et al.
`Lau et al.
`Logston et al.
`Fraley et al.
`Goring et al.
`Nishida
`Hamzeh et al.
`Scannell
`Blume et al.
`Lamb et al.
`Higgins et al.
`Lockton et al.
`Pousti
`Cowing et al.
`et al.
`Tenhunen
`Bhalla et al.
`Leitner
`Salinas et al.
`Collins et al.
`Kembel et al.
`Maharajh et al
`Coppinger et al.
`Agrawal et al.
`Hulaj et al.
`Vialle et al.
`Adler et al.
`Moraes
`Brisebois et al.
`
`. ... ... ... ..
`
`. .. 345/744
`
`. .. 715/234
`
`FOREIGN PATENT DOCUMENTS
`
`KR
`WO
`
`20080022697 A
`WO 2002/103963 Al
`
`3/2008
`12/2002
`
`OTHER PUBLICATIONS
`U.S. Appl. No. 12/018, 141, filed Jan. 22, 2008, Clavel et al.
`et al. UIML; An XML Language
`for Building Device-
`Abrams,
`Independent User Interfaces. XML Conference Proceedings. Pro-
`ceedings of XML, XX, XX, Dec. I, 1999.
`
`Interfaces with UIML.
`Ali, et al. Building Multi-Platform User
`Retrieved from the Internet: May 17, 2004. URL; arxiv. org/ftp/cs/
`papers/0111/0111024. pdf.
`et al; "An Architecture
`for Building Multi-device Thin-
`Grundy,
`Client Web User Interfaces" Advanced Information Systems Engi-
`neering, vol. 234812002, Jan. I, 2002, pp. 728-732, XP002511217.
`search report and written opinion dated Feb. 17, 2009
`International
`for PCT/US2008/009302.
`International Search Report and Written Opinion mailed Oct. 6, 2009
`for International PCT Application No. PCT/US2009/001514, 6 pgs.
`International Search Report and Written Opinion mailed Oct. 6, 2009
`PCT Application No. PCT/US2009/001516,
`for
`International
`10 pgs.
`search report dated Jan. 30, 2009 for PCT Application
`International
`No. US2008/009303.
`Mir Farooq Ali et al: "Building Multi-Platform User Interfaces with
`UIML" Internet Citation,
`[online] XP002280476 Retrieved from the
`I I I/O I I 1024.pdf&
`Internet:
`URL:http;//arxiv.
`org/ftp/cs/papers/0
`[Retrieved on May 17, 2004].
`Office action dated Jan. 4, 2013 for U. S. Appl. No. 12/018, 141.
`Office action dated Jan. 7, 2010 for U. S. Appl. No. 12/098, 670.
`Office action dated Feb. 7, 2011 for U.S. Appl. No. 11/888,799.
`Office action dated Feb. 16, 2010 for U. S. Appl. No. 11/977, 186.
`Office action dated Mar. 9, 2012 for U.S. Appl. No. 12/018, 141.
`Office action dated Apr. 8, 2011 for U. S. Appl. No. 12/001, 001.
`Office action dated May 12, 2009 for U. S. Appl. No. 11/977, 186.
`Office action dated Jun. 14, 2012 for U.S. Appl. No. 11/888, 803.
`Office action dated Jun. 21, 2010 for U.S. Appl. No. 11/977, 212.
`Office action dated Jun. 25, 2010 for U.S. Appl. No. 11/888, 799.
`Office action dated Jun. 29, 2010 for U.S. Appl. No. 12/098, 670.
`Office action dated Jul. 7, 2011 for U.S. Appl. No. 12/018, 141.
`Office action dated Jul. 9, 2010 for U.S. Appl. No. 11/977, 186.
`Office action dated Jul. 30, 2010 for U.S. Appl. No. 11/977,229.
`Offirce action dated Aug. 19, 2010 for U. S. Appl. No. I I/977, 186.
`Office action dated Sep. 2, 2009 for U.S. Appl. No. 11/977, 186.
`Office action dated Sep. 17, 2009 for U.S. Appl. No. 11/977,212.
`Office action dated Oct. 31, 2011 for U.S. Appl. No. 12/001, 001.
`Office action dated Dec. 3, 2008 for U.S. Appl. No. 11/977, 186.
`for Device Indepen-
`Simon, et al. Tool-Supported Single Authority
`Proceedings of the 7th International Con-
`dence and Multimodality
`Interaction with Mobile Devices &
`ference on Human Computer
`[Online] Sep. 19, 2005, Sep. 22, 2005 pp. 91-98,
`Services.
`XP002511216 Retrieved from the Internet; URL; http//portal.
`acm.
`orgicitation. cfm?Id=1085777. 1085793& [Retrieved
`Jan. 19,
`on
`2009] abstract.
`et al. Synchronised Model-Based Design of Multiple
`Vanderdonckt,
`[online] Sep. 10, 2004,pp. 1-8,
`User
`Interfaces.
`Internet Article,
`XP0025 11218Retrieved from the Internet: URL: http: //web. archive.
`i sys. uc1.ca.be/bchi/mem-
`org/web/20040910043454/http;//www.
`on Jan. 20,
`bers/qli/pubNanderdonckt-IHM200I.
`pdf& [retrieved
`2009].
`Written Opinion mailed Feb. I, 2010 for International PCT Aplica-
`tion No. PCT/US2008/009302,
`8 pgs.
`Written Opinion mailed Feb. I, 2010 for International PCT Aplica-
`tion No. PCT/US2008/009303, 8 pgs.
`Xiegert, et al: "Device Independent Web Applications
`The Author
`[Lecture
`Once Display Everywhere Approach" Web Engineering;
`Science;. LNCS], Springer-Verlag,
`Notes
`in Computer
`Berlin/
`Heidelberg, vol. 3140, Jul. 7, 2004, pp. 244-255, XP019009054.
`Ziegert, et al. Device Independent Web Applications
`The Author
`[Lecture
`Once Display Everywhere Approach. Web Engineering;
`Science; LNCS], Springer-Verlag,
`Notes
`in Computer
`Berlin/
`Jul. 7, 2004; 3140;244-255.
`Heidelberg.
`Office action dated Oct. 23, 2013 for U.S. Appl. No. 12/018, 141.
`Notice of allowance
`dated Dec. 17, 2014 for U.S. Appl. No.
`12/018, 141.
`
`* cited by examiner
`
`
`
`U.S. Patent
`U.S. Patent
`
`Mar. 24, 2015
`Mar.24, 2015
`
`Sheet 1 of 9
`Sheet 1 of 9
`
`US 8,989,715 B2
`US 8,989,715 B2
`
`¥bSeno
`
`<<
`ey
`
`
`
`U.S. Patent
`U.S. Patent
`
`Mar. 24, 2015
`Mar.24, 2015
`
`Sheet 2 of 9
`Sheet 2 of 9
`
`US 8,989,715 B2
`US 8,989,715 B2
`
`BBol"]HORDESy
`
`
`
`Jake"]uOqOBS
`
`
`
`queuespepdwo5
`
`
`
`uOREOYHUapsanbap
`
`suey
`
`
`
`JepeayyauBuz
`
`PTE
`
`
`
`Beguojeinbyuoy
`
`ety
`
`
`
`BOBLeU]Jaspwoes
`
`Sor
`
`aoaed
`
`aoAad]ft'oUBUat)
`
`oyioads
`
`aa
`oS—|
`
`S-aYNDI4
`
`901
`
`Made/awer
`
`POF
`
`
`
`SEMPe}
`
`cor
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 24, 2015
`
`Sheet 3 of 9
`
`US 8,989,715 B2
`
`20QA
`
`Client and Application
`
`Identification Message
`
`identification
`Custom Configuration
`Identification
`
`and Application
`
`Request Custom Configuration
`AppIIcation
`
`Information
`
`and/or
`
`Download Custom Configuration
`
`Client
`
`210
`
`Request
`
`for first page
`
`Download Application Page
`
`220
`
`Send Acknowledgement
`
`224
`
`Push Content Update
`
`
`
`U.S. Patent
`
`Mar. 24, 2015
`
`Sheet 4 of 9
`
`IJS 8,989,715 B2
`
`User Interaction
`
`New Page
`na&
`
`21G
`
`230
`
`User Interaction
`
`New Page
`
`New Page
`
`FIGURE 28
`
`
`
`U.S. Patent
`U.S. Patent
`
`Mar. 24, 2015
`Mar.24, 2015
`
`Sheet 5 of 9
`Sheet 5 of 9
`
`US 8,989,715 B2
`US 8,989,715 B2
`
`
`
`
`
`sinduyuopng
`
`JONeosuel
`
`Ore
`
`oct
`
`BIRECA-UON
`
`Alcweyy
`
`O¢e
`
`BREA,
`
`Aroulayy
`
`ore
`
`
`
`Agjdsigy
`
`ose
`
`JOSS890i¢
`
`OSE
`
`
`
`JaeyeadsBUOYCOOH
`
`Oozeoge
`
`£SYN
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Mar. 24, 2015
`Mar. 24, 2015
`
`Sheet 6 of 9
`Sheet6 of 9
`
`US 8,989,715 B2
`US 8,989,715 B2
`
`BupepuayJeypUSp
`
`ye019
`
`32Pl
`
`palo
`
`JOANUSP]
`
`
`
`BuvspuayJoyunuap|
`
`Buepuery
`
`dalqUsp}
`
`vaeNnold
`
`
`
`
`
`
`
`FaBegpayduiog
`
`uoydusosac]
`
`aa
`+
`
`|
`
`
`
`
`
`
`U.S. Patent
`U.S. Patent
`
`Mar. 24, 2015
`Mar.24, 2015
`
`Sheet 7 of 9
`Sheet 7 of 9
`
`US 8,989,715 B2
`US 8,989,715 B2
`
`EIS
`
`ysyu0g
`
`
`
`JaAjOSgynoAe]
`
`oss
`
`40Auesqr]
`
`uanjemBbyuo9g
`
`Be
`
`O+s
`
`§Send
`
`
`
`
`
`ssoursng
`
`jofuziqry]
`
`suoneniddy
`
`oo
`
`D
`in
`
`joAveiqr]
`
`Sona]
`
`SOHO
`
`095
`
`ayejduiay
`
`auibuq
`
`OSS
`
`Bulpo2eg
`
`WalsAS
`
`02S
`
`
`
`
`
`
`
`U.S. Patent
`
`Mar. 24, 2015
`
`Sheet 8 of 9
`
`US 8,989,715 B2
`
`Sending a message to a server identifying
`the desired
`and the wireless cfevice capability
`application
`610
`
`of a custom configuration of a
`Receiving an identification
`plurality of rendering blocks of the wireless device
`62Q
`
`if the
`Requesting the identified custom configuration
`is not present on the wireless device
`custom configuration
`636
`
`content generated in part from
`Receiving compiled
`execution of the application
`by the server
`640
`
`Using a graphical user interface to generate renderable
`content based on the compiled content and the custom
`configuration
`650
`
`Rendering the renderabie
`
`content on the wireless device
`660
`
`
`
`U.S. Patent
`
`Mar. 24, 2015
`
`Sheet 9 of 9
`
`US 8,989,715 B2
`
`Receiving a message from a client requesting
`an application
`the client's capability
`identifying
`7'I 0
`
`and
`
`Identifying
`
`a custom configuration
`720
`
`for the requested application
`
`- Setup
`
`Sending a message to the client
`
`identifying
`ZK
`
`the custom configuration
`
`If requested by the client, sending the custom configuration
`~74
`
`Executing the requested application
`7M
`
`Dynamic ~~
`
`=~Application~V-
`
`YES
`
`Generating
`
`a template for the executed application
`760
`
`Translating
`
`received informatio~ into discrete lovv level basic commands
`776
`
`Sending the discrete Ion level basic commands
`780
`
`to the client
`
`FIGURE 7
`
`
`
`US 8,989,715 B2
`
`1
`METHOD AND SYSTEM FOR RENDERING
`CONTENT ON A WIRELESS DEVICE
`
`CROSS REFERENCE
`
`This application is a continuation of U.S. patent applica-
`tion Ser. No. 11/888, 803, filed Aug. I, 2007, now U.S. Pat.
`No. 8,478,245, which is incorporated herein by reference in
`its entirety.
`
`TECHNICAL FIELD
`
`invention relate to the field of
`Embodiments of the present
`systems. More particularly,
`embodi-
`wireless communication
`ments of the present
`invention relate to a method and system
`for rendering applications on a wireless device.
`
`BACKGROUND ART
`
`of wireless
`and increase
`The widespread
`in popularity
`devices have led to an increase in the number of wireless
`the use of cellular
`device types in the world. For example,
`(PDAs), PalmPilots,
`assistants
`phones,
`personal
`digital
`IPods, etc. , have become prevalent
`BlackBerrys,
`in
`laptops,
`the market. The increase in the number of wireless devices
`has also increased the demand for various applications
`to run
`on various wireless devices.
`The market
`is fractured among many manufacturers with
`types of wireless devices including brands, models,
`different
`etc. For example, each year new manufacturers
`generations,
`enter
`the market
`and existing manufacturers
`provide new
`models and new versions for existing wireless devices. Each
`wireless device is unique based on its brand, model, rendering
`capability, battery life, processing power, display resolution,
`size, etc. , collectively
`color capability,
`as
`known
`display
`wireless device attributes.
`since each wireless device is unique, each
`Unfortunately,
`application must be tailored in accordance with the wireless
`to fully utilize the capabilities ofthe wireless
`device attributes
`to utilize the entire display of the wire-
`device. For example,
`the application must be tailored to render
`less device,
`the
`application in accordance with the display size and resolution
`of the wireless device.
`the increase in the number of applications,
`Unfortunately,
`the types of wireless devices
`and the need to tailor each
`application to a given wireless device type has increased the
`cost of developing applications. With ever increasing number
`of models
`and brands of wireless devices,
`the number of
`required to accommo-
`and application versions
`applications
`date all of these different wireless devices has increased as
`well. Since each application must be specific to a given wire-
`less device type with a given brand and model, applications
`developed from the ground up for each wire-
`are substantially
`less device type. Unfortunately,
`from
`developing applications
`the ground up for each wireless device has increased the cost
`ofdeveloping and customizing each application to accommo-
`date each wireless device brand and model.
`the increase in cost of developing
`Moreover,
`applications
`due to the need to tailor each application to all the specific
`brands and models of wireless devices has hindered and lim-
`ited the number of titles that a software vendor can produce
`simply do not have the time or
`annually. Software developers
`to take even a single application
`the resources
`a
`through
`customized quality assurance and debugging process, much
`less each application for each type ofwireless device, thereby
`limiting the number of titles that a software vendor can pro-
`duce.
`
`10
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`all the required versions of a
`the task of producing
`Also,
`title is not only time consuming and laborious but it also tends
`and patches to existing titles. In general, a
`to limit upgrades
`wireless device runs the application locally and renders
`the
`to
`requires a patch/update
`result. Thus, updating applications
`be specially developed
`for and provided
`to each wireless
`device individually. For example, updating/patching
`an appli-
`to access the
`cation may require
`the wireless device user
`application provider's website via the wireless device and to
`to determine
`in order
`navigate
`through multiple
`pages
`the user
`whether an update is ready. When an update is ready,
`actively initiates the update process. As a result, many users
`due to this laborious pro-
`may not update their applications
`cess.
`
`SUMMARY
`
`a need has arisen to enable software vendors
`Accordingly,
`regardless of the wireless
`to provide generic
`applications
`device type,
`from having
`thereby relieving software vendors
`for each given wireless device type.
`to tailor their applications
`a need has arisen to not only relieve
`Moreover,
`software
`for a given wireless
`from tailoring their applications
`vendors
`device type but to provide an output
`is device specific
`that
`based on the wireless device attributes where the output
`is
`is
`from a generic
`generated
`Furthermore,
`application.
`it
`to update and patch various applications with-
`advantageous
`out a need to access each wireless device individually.
`It will
`become apparent
`to those skilled in the art after reading the
`detailed description of the present
`invention that the embodi-
`ments of the present
`satisfy the above mentioned
`invention
`needs.
`of the present
`software
`Embodiments
`relieve
`invention
`from tailoring their applications based on each wire-
`vendors
`the output of a
`less device type because the server
`tailors
`generic application based on the wireless device capability.
`Moreover, embodiments of the present
`invention execute the
`requested application on the server. Thus providing software
`updates and patches for a generic application can be done by
`on the server,
`the generic
`application
`patching/updating
`thereby eliminating the need to update/patch
`each application
`on each wireless device.
`According to one embodiment of the present
`invention,
`wireless device includes an engine/reader. The engine/reader
`is operable to communicate with a server and receive a series
`of low level basic commands
`layout content, position,
`that
`etc. for rendering application content on the wireless device.
`commands of a generic syntax
`The engine/reader
`interprets
`that are device specific in their parameters.
`The wireless device may also include
`user
`a graphical
`interface including a plurality of rendering blocks. A custom
`the appearance of
`configuration may be used to customize
`content generated by a requested application rendered on the
`rendering blocks. In other words, a custom configuration may
`be a set of low level
`for preprogramming
`the
`instructions
`plurality of rendering
`blocks to operate and look a certain
`way. The graphical user interface is operable for rendering
`and for
`basic commands
`received from the engine/reader
`the operation and appearance of the requested
`customizing
`application based on the custom configuration. The wireless
`the embodi-
`device has software stored therein to implement
`ments of the present
`invention.
`In one embodiment,
`are provided by
`generic applications
`It is
`and are stored on a remote server.
`software vendors
`are not device specific.
`these applications
`appreciated that
`Once a wireless device in communication with the server
`is sent via the engine/
`a message
`an application,
`requests
`
`a
`
`
`
`US 8,989,715 B2
`
`reader of the wireless device to the server. The message may
`for a specific application as well as infor-
`include a request
`mation identifying the wireless device type and its capability.
`In response to the message from the wireless device,
`the
`server accesses the requested
`by accessing a
`application
`library of applications. The library of applications
`contains
`that on one level operate regardless ofthe
`generic applications
`device type. The requested
`is executed on the
`application
`the server may identify a custom configu-
`server. Moreover,
`ration to be used for the requested application and the device
`type. The custom configuration
`is the theme and determines
`certain graphical appearances ofthe requested application.
`In
`the custom configuration provides the "look and
`other words,
`feel" of the content of the requested application. The server
`may send a message to the wireless device identifying
`the
`to be used. If the identified
`custom configuration
`custom
`is present on the wireless device it
`is used
`configuration
`custom configuration
`is
`otherwise
`the identified
`locally,
`from the server to the wireless device. The cus-
`downloaded
`is specific to the display and audio capa-
`tom configuration
`bilities of the wireless device and is also specific to the wire-
`less device.
`(e.g.,
`The server may determine
`the device capabilities
`capability of the wireless device) based on the
`rendering
`received identification message and by accessing a library of
`device profiles. The library of device profiles includes
`infor-
`the specific wireless device capabilities.
`mation about
`During the execution of an application,
`the server deter-
`the executed application produces dynamic or
`mines whether
`static pages. Ifdynamic data is produced, a template engine of
`the server merges dynamic data provided by a business
`logic
`screens of the requested application pro-
`unit and template
`on the server. Business
`vided by executing the application
`logic facilitates dynamic
`exchange between the
`information
`application executing and the templates. Thus,
`the template
`engine provides a high level template (e.g., extensible markup
`language (XML) format) that includes the merged screens of
`the requested application and dynamic data provided by the
`logic. Accordingly,
`is a high
`business
`the resultant
`output
`level generic template or page description.
`communicates with a
`the template
`engine
`Additionally,
`device profile of the wireless device and may eliminate con-
`tent of the requested application that
`is not supported by the
`device based on the capabilities of the wireless
`wireless
`ifthe server determines
`device. For example,
`that the wireless
`related to audio
`device has no audio capability,
`the content
`may be eliminated from the template. On the other hand, if a
`the template engine is bypassed and
`static page is produced,
`the static page is supplied to a layout solver directly.
`solver of the server
`The layout
`then tailors the template
`based on the device profile and device capability.
`In one
`the layout solver also tailors static data based on the
`example,
`device profile and device capability. The layout solver trans-
`static page into a series of basic
`lates the template
`and/or
`commands based on the device profile and device capabili-
`ties. Basic commands
`are written in a device independent
`tailored based on the wireless device capability.
`syntax but
`the basic commands
`are low level compilation
`Accordingly,
`operable to render objects using the plurality of rendering
`blocks of the wireless device. For example, basic commands
`may be used to layout page content of the requested applica-
`solver receives a generic tem-
`tion. Accordingly,
`the layout
`plate and/or static data of the requested application and trans-
`based on the
`to application
`specific
`lates
`commands
`it
`device's capability. Basic commands
`to
`are then transmitted
`the wireless device for rendering.
`
`6
`
`10
`
`16
`
`20
`
`26
`
`30
`
`36
`
`40
`
`46
`
`60
`
`66
`
`60
`
`66
`
`The engine/reader ofthe wireless device receives the basic
`that are tailored and are specific to the wireless
`commands
`device based on device's attributes
`and capabilities. The syn-
`tax of these commands
`is device generic. The graphical user
`interface of the wireless device uses the received basic com-
`the received
`to render
`and the custom configuration
`mands
`page. Each command is typically associated with an opera-
`block of the wireless
`tion to be performed by a rendering
`content, etc., for operation of
`device and carries parameters,
`block. Basic commands
`are used to layout
`that
`rendering
`content, position and etc. of the application while the custom
`is used to customize the "look and feel" of the
`configuration
`requested application (e.g., background
`color). The engine/
`reader may receive messages
`from the server
`and content
`interaction by the user or it may send/receive
`without
`further
`in response to user interaction.
`messages
`software vendors do not need to tailor their
`As a result,
`application to each wireless device. In other words, software
`vendors can develop a generic application because the output
`of the generic application is tailored based on each wireless
`device type using the server. Moreover, since applications
`and
`for rendering
`basic commands
`are performed
`applications
`and generated on the server, providing patches and updates
`can be facilitated by updating the server,
`thereby eliminating
`the need to access each wireless device individually.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`in
`
`system in
`invention
`
`FIG. 1A shows an exemplary
`communication
`accordance with one embodiment of the present
`including wireless clients and a remote server.
`FIG. 1B shows
`device protocol
`an exemplary wireless
`of the present
`stack in accordance with one embodiment
`invention.
`FIGS. 2A and 2B show an exemplary
`communication
`sequence between a wireless device and a remote server
`accordance with one embodiment of the present
`invention.
`FIG. 3 shows an exemplary wireless device block diagram
`in accordance with one embodiment of the present
`invention.
`FIG. 4 shows
`received
`compiled
`an exemplary
`page
`of the
`in accordance with one embodiment
`description
`invention.
`present
`FIG. 5 shows an exemplary remote server block diagram in
`accordance with one embodiment of the present
`invention.
`FIG. 6 shows an exemplary computer controlled flow dia-
`gram for rendering content on a wireless device in accordance
`with one embodiment of the present
`invention.
`FIG. 7 shows an exemplary computer controlled flow dia-
`gram of a server implemented method for processing data for
`a wireless device in accordance with one embodiment of the
`invention.
`present
`
`DETAILED DESCRIPTION
`
`to embodiments of
`Reference will now be made in detail
`examples ofwhich are illustrated in the
`the present
`invention,
`be
`drawings. While
`the
`invention
`will
`accompanying
`it will be
`described in conjunction with these embodiments,
`understood that they are not intended to limit the invention to
`the invention is intended
`these embodiments. On the contrary,
`to cover alternative, modifications
`and equivalents, which
`may be included within the spirit and scope ofthe invention as
`in the follow-
`defined by the appended claims. Furthermore,
`ing detailed description of the present
`numerous
`invention,
`specific details are set forth in order to provide a thorough
`of the present
`it will be
`invention. However,
`understanding
`inven-
`to one ordinary skill
`in the art that the present
`evident
`
`
`
`US 8,989,715 B2
`
`tion may be practiced without
`these specific details. In other
`instances, well known methods,
`procedures,
`components,
`and circuits have not been described in detail as not to unnec-
`essarily obscure aspects of the invention.
`Notation and Nomenclature
`Some portions of the detailed descriptions which follow
`in terms of procedures,
`logic blocks,
`are presented
`steps,
`processing, and other symbolic representations of operations
`on data bits that can be performed
`on computer memory.
`These descriptions
`are the means used by
`and representations
`those skilled in the art to most effectively convey the sub-
`stance of their work to others skilled in the art. A procedure,
`computer executed step, logic block, process, etc., is here, and
`sequence of steps
`generally, conceived to be a self-consistent
`or instructions
`leading to a desired result. The steps are those
`of physical quantities.
`requiring physical manipulations
`though not necessarily,
`these quantities
`take the
`Usually,
`form ofelectrical or magnetic signals capable of being stored,
`combined, compared, and otherwise manipulated
`transferred,
`system. It has proven convenient
`in a computer
`at times prin-
`cipally for reasons of common usage,
`to refer to these signals
`terms, num-
`characters,
`as bits, values, elements,
`symbols,
`bers, or the like.
`that all of these and
`It should be borne in mind, however,
`similar terms are to be associated with the appropriate physi-
`labels applied to
`cal quantities
`and are merely convenient
`these quantities. Unless
`as
`stated otherwise
`specifically
`from following discussions,
`that
`it is appreciated
`apparent
`invention, discussions utilizing terms
`the present
`throughout
`such as "processing" or "creating" or "transferring"
`or
`"executing" or "determining" or "instructing" or "issuing" or
`"halting" or "clearing" or "accessing" or "aggregating" or
`"obtaining" or "selecting" or "initiating" or "receiving" or
`"analyzing" or "generating" or "constructing" or "output-
`ting" or "collecting" or "monitoring" or "outputting" or "stor-
`ing" or "sending" or "receiving" or "identifying" or using" or
`"rendering" or "translating" or "providing" or the like, refer
`to the action and processes of a computer
`system, or similar
`and trans-
`electronic
`device,
`that manipulates
`computing
`(electronic) quantities
`forms data represented
`as physical
`system's
`registers
`and memories
`within the computer
`into
`other data similarly represented as physical quantities within
`or registers or other
`system memories
`such
`the computer
`or display devices.
`information
`transmission
`storage,
`A Method and System for Rendering Content on a Wireless
`Device
`The increase in the number ofwireless devices has led to an
`increase in demand for different applications. However, each
`to be tailored to a given wireless
`needs
`given application
`device type based on the wireless device capability. Embodi-
`ments of the present
`invention relieve software vendors
`from
`tailoring their applications based on each wireless device type
`because the server tailors the output of a generic application
`based on the wireless device capability. Moreover, embodi-
`ments of the present
`invention execute the requested applica-
`tion on the server. Thus providing
`software updates
`and
`can be done by patching/
`for a generic application
`patches
`thereby elimi-
`updating the generic application on the server,
`each application
`on each
`nating the need to update/patch
`wireless device.
`Referring now to FIG. 1A, an exemplary communication
`of the
`system 100A in accordance with one embodiment
`and a remote
`including wireless
`clients
`present
`invention
`one or more wireless
`is shown.
`In one embodiment,
`server
`devices 110 are coupled to a server 130 through a network
`120. The wireless device 110 may be any mobile wireless
`electronic device, e.g., a cellular phone, a personal
`digital
`
`a BlackBerry,
`a
`(PDA), a pager, a smart phone,
`assistant
`laptop and the like. It is appreciated that the wireless device
`described herein is exemplary and is not intended to limit the
`scope ofthe present
`invention. Network 120 includes wireless
`communication
`capability.
`According to an embodiment of the present
`the
`invention,
`It is generic in
`remote server executes a generic application.
`is not specific to any device or any set of device
`that
`it
`capabilities. The server will eventually translate the output of
`to a device specific set of commands
`for
`the application
`to the device 110 for rendering. Likewise,
`the
`transmission
`device 110 sends user
`and other data to the remote
`input
`server 130 for processing.
`According to one embodiment of the present
`a
`invention,
`access to a
`wireless device initiates
`a message requesting
`given generic application stored on the server 130.It is appre-
`ciated that the wireless device in this embodiment
`has stored
`therein a software program or "client" that enables the wire-
`of the present
`less device to implement
`the embodiments
`to the wireless
`invention. This client may be downloaded
`device 110 using well known conventional methods.
`The server 130 in response to the received message may
`access the requested application that is generic regardless of
`the server 130 generates a
`the wireless device type. However,
`device specific result
`from the generic application,
`thereby
`tailoring the output of the generic application based on the
`in one example is a series of
`wireless device type. The result
`basic commands, precompiled and ready for audio and video
`rendering by the wireless device. During application execu-
`information is sent to the wireless device for
`tion, page layout
`display and audio rendering using the basic commands. Also,
`user input and other state information is



