`(12) Patent Application Publication (10) Pub. No.: US 2006/0077941 A1
`Alagappan et al.
`(43) Pub. Date:
`Apr. 13, 2006
`
`US 20060077941A1
`
`(54) USER INTERFACE SYSTEM AND METHOD
`FOR IMPLEMENTATION ON MULTIPLE
`TYPES OF CLIENTS
`(76) Inventors: Meyyappan Alagappan, Sunnyvale,
`CA (US); Stephen Paul Paddon,
`Portland, OR (US); Thomas Sherwin
`Paddon, Brisbane, CA (US); Alexander
`Flavio Panelli, Palo Alto, CA (US)
`Correspondence Address:
`MORRISON & FOERSTER LLP
`12531 HIGH BLUFF DRIVE
`SUTE 100
`SAN DIEGO, CA 92130-2040 (US)
`(21) Appl. No.:
`11/151,798
`
`(22) Filed:
`
`Jun. 13, 2005
`Related U.S. Application Data
`(63) Continuation-in-part of application No. 10/963,929,
`filed on Oct. 12, 2004.
`
`(60) Provisional application No. 60/611,353, filed on Sep.
`20, 2004.
`
`Publication Classification
`
`(51) Int. Cl.
`(2006.01)
`H04Q 7/24
`(52) U.S. Cl. .............................................................. 370/338
`
`(57)
`
`ABSTRACT
`
`A method and system for implementing a user interface for
`providing a data service in a mobile client using a server
`with knowledge of the clients hardware and software capa
`bilities to modify data content and display rules for an
`improved user interface on the client. Data may be cached
`on the client to improve application response time and
`provide a standalone application capability for the client.
`The automatic conversion of newly developed applications
`to a plurality of clients with differing hardware and software
`capabilities reduces application Software development and
`maintenance costs. Software updates and bug fixes can be
`deployed with the same method and system.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CONTENT
`SERVICE
`PROVIDER
`
`0.111
`
`NETWORK
`
`O105
`
`FIREWALL
`O110
`
`SERVER
`
`0.108
`
`CONTENT
`SERVICE
`PROVIDER
`0.111
`
`
`
`
`
`
`
`U
`ENGINE
`
`01.04
`
`O103
`
`O102
`
`PNC 1119
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 1 of 16
`
`US 2006/0077941 A1
`
`
`
`Z01.0? aun61-I
`
`| sol,?, ?, ?0>|EANES
`
`
`€0.1,080 || 0
`
`XMRIONALEN
`
`§04.0
`
`
`
`
`
`
`
`1NELNO3)
`
`EKOIARHEIS
`
`(IEC)]]AO(ld
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 2 of 16
`
`US 2006/0077941 A1
`
`pz aun61-I
`
`oz aun61-I
`
`qz aun61-I
`
`ez aun61-I
`
`|edI3Aell
`
`Az eun61-I
`
`az aun61-I
`
`
`
`
`
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 3 of 16
`
`US 2006/0077941 A1
`
`ILNENITO
`
`ETIROIN)
`
`(TWNIIN NEL
`
`9090
`
`>|E|ARTEISIINEITO
`
`
`
`NO||L\/OINT) INWOO
`
`17090090
`
`ETIROIN)
`
`„LNENIT! O
`
`
`
`(TVNI'N HEL
`
`
`
`·LNEJLNOC)
`
`EKOIARIES
`
`?IECHAORJd
`
`ETIROIN)
`
`(TWNIIN HEL
`
`£090
`
`
`
`5555>|E/ARHES/LNE IT,OEKOIARIES
`
`LNE.L.NOO
`
`JLNEVITO
`
`NOIJIVOINTINWOO}}=ICIIAO?!d
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 4 of 16
`
`US 2006/0077941 A1
`
`LINELLNO O1 NELLNO O
`
`EKOV-!>IELNI I NEITO
`Z070
`
`, ! !10170
`
`
`
`NOI LOETES
`
`0190T
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 5 of 16
`
`US 2006/0077941 A1
`
`
`
`
`
`0090 SDNISSE OORHd èJE/\>|ES
`
`
`
`
`
`2090
`
`‘S LES ET/TH CIENIEWOO LYHEANOO
`
`
`
`LNBITO OL NOISSIWSNVRH1.
`
`
`
`}}OH V LVQ TVGOTS) ONW ‘LNB LNOO
`
`ÇÕG?
`
`G ?un61-I
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 6 of 16
`
`US 2006/0077941 A1
`
`1090
`
`
`
`>IETICIN\/H LINEAE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 7 of 16
`
`US 2006/0077941 A1
`
`
`
`
`
`SONISSE OOXHCH HEA>JES
`
`0090
`
`
`
`
`
`00/0 €) NISSE OORHc] | NE||TO
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Z ?un61-I
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 8 of 16
`
`US 2006/0077941 A1
`
`
`
`
`
`0090 €)NISSE OORHd 1 NEITO
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`8 aun61-I
`
`
`
`Patent Application Publication Apr.
`13, 2006 Sheet 9 of 16
`
`US 2006/0077941 A1
`
`
`
`9 NISSE OO}} d \}EAXHES
`
`0090
`
`6 aun61-J
`
`
`
`
`
`0060 €)NISSE OORHc|| || NEITO
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 10 of 16
`
`US 2006/0077941 A1
`
`
`
`1001
`CHECK ASSOCIATED CONTENT DENTIFIERS
`FOR CONTEN ADDRESSES
`
`1002
`REOUEST CONTENT FROM CONTENT
`PROVIDERS
`
`1003
`RECEIVE AND PROCESSES CONTENT
`
`1004
`COMBINE RULE SET AND CONTENT
`
`Figure 10
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 11 of 16
`
`US 2006/0077941 A1
`
`
`
`CREATE
`RULESET FILE
`1101
`
`CREATE
`DISPLAY PAGES
`1102
`
`LINK
`DISPLAY PAGES
`1103
`
`INSERT DISPLAY
`COMPONENTS
`1104
`
`SELECT DISPLAY
`COMPONENT
`PROPERTIES
`1105
`
`SELECT DISPLAY
`PAGE PROPERTIES
`1106
`
`Figure 11
`
`
`
`Patent Application Publication Apr. 13,2006 Sheet 12 of 16
`
`US 2006/0077941 A1
`
`
`eozt<<]SUOIJE}SSCS)<up0Zl
`
`
`
`
`
`SOCL<<§efoyjen juayeayes"j4ayeD1jes}"*
`war<ee[Dd[@ADA]
`7}ainbiy 80-OL-0L38SWd€0-SL-S
`~~GANAIS499/98ZOzI
`
`
`
`Aouebiowz
`
`sjueinejysey
`
`S|9}0H
`
`90z1
`
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 13 of 16
`
`US 2006/0077941 A1
`
`
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 14 of 16
`
`US 2006/0077941 A1
`
`
`
`C)
`9
`2
`C)
`(V)
`w
`()
`
`O)
`(V)
`
`
`
`US 2006/0077941 A1
`
`G? aun61-I
`
`Patent Application Publication Apr. 13, 2006 Sheet 15 of 16
`
`INORI-I/O.L.DISQOTLNE.L.NOO
`ILNENITOEKOIARIES
`ZO?0Ž?G?>]=|Cl|AO\ld
`
`?709||
`
`ARHOINE IN
`
`
`
`
`
`TORJ1NOOINOJ-IJOL
`
`
`
`Patent Application Publication Apr. 13, 2006 Sheet 16 of 16
`
`US 2006/0077941 A1
`
`8090
`
`E?OIAEO
`IndN. In
`
`AWTldS | 0
`
`'OISOOT(IEARES
`
`5555
`
`9? aun61-I
`
`
`
`
`
`
`
`
`
`US 2006/0077941 A1
`
`Apr. 13, 2006
`
`USER INTERFACE SYSTEMAND METHOD FOR
`IMPLEMENTATION ON MULTIPLE TYPES OF
`CLIENTS
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`0001. This application is a continuation in part of U.S.
`patent application Ser. No. 10/963,929, filed on Oct. 12,
`2004, entitled “SYSTEM AND METHOD FOR DEVEL
`OPING AND DEPLOYING DEVICE INDEPENDENT
`APPLICATIONS” which is hereby incorporated herein in its
`entirety by reference. This application takes priority from
`U.S. application No. 60/611,353, filed on Sep. 20, 2004
`entitled SYSTEM AND METHOD FOR DEVELOPING
`AND DEPLOYING DEVICE INDEPENDENT APPLICA
`TIONS” which is hereby incorporated herein by reference.
`
`TECHNICAL FIELD
`0002 This invention relates to user interfaces for appli
`cations for clients in client-server computer systems. More
`particularly, but not by way of limitation, this invention
`enables the implementation of user interfaces for a plurality
`of server-based applications on a plurality of client types
`with fast performance and reduced upfront development
`time.
`
`BACKGROUND ART
`0003 Client-server computing systems typically use
`servers to provide services to a client. The client is often
`Smaller, less capable, less expensive, and more mobile than
`an associated server. One server usually provides services to
`multiple clients, whereas a client can often obtain services
`from multiple servers. The communication link between a
`client and a server may be of any appropriate type, including
`wired or wireless. In particular, wireless clients offer the
`opportunity for tether-free mobility, and usually have self
`contained power sources such as batteries. Communication
`bandwidth is usually restricted more for a wireless connec
`tion than it is for a cabled connection. Moreover, providing
`batteries for Suitable client operating time constrains the
`power that can be consumed by the client. In the interest of
`providing more mobility and greater battery lifetimes for
`clients, it is important to reduce the computational burden
`required of clients to perform their functions. Such minimal
`clients are sometimes referred to as “thin clients.” A thin
`client for wireless use is often implemented to reduce
`memory and processor requirements for reduced power
`consumption, size, and cost—while at the same time, con
`serving wireless communication bandwidth for communi
`cation with a server or other devices over a communication
`channel (often wireless).
`0004 The term mobile data communication device can
`refer to a wireless communication device that provides
`access to wireless data services when in communication
`with a server. Examples of such devices include “smart” cell
`phones, wireless enabled notebook computers or PDAs,
`alphanumeric pagers, and many others that are limited only
`by the imagination. Over the past several years, wireless
`data services have proliferated more and more among
`mobile communication device users, especially, for example
`“smart” cell phone users. Popular wireless data services for
`cell phone users currently include, among others, e-mail
`
`exchange (including graphics), short message service, inter
`net browsing, and paid mobile access to databases. Emerg
`ing services further include, position location based services,
`wireless advertising, wireless 'e-community” services—to
`name a few—with the list being constantly expanded.
`Expanding the user popularity and commercial potential of
`wireless data services generally depends on their widespread
`deployment with minimal development, deployment, and
`operating costs.
`0005. An aspect of the rapidly evolving field of wireless
`data services that hinders widespread deployment and devel
`opment cost reduction, is the plurality of Software platform
`standards for clients (sometimes referred to as “real time
`operating systems,” or “RTOS’s), and the diversity of hard
`ware and user interface capabilities for wireless terminals
`serving as clients. Cell phone service providers, for
`example, often endeavor to support cell phones from manu
`facturers espousing different software platform standards
`such as WAP (the “Wireless Applications Protocol stan
`dard), J2ME (a mobile version of Java(R), BREW (from
`QUALCOMM, Inc.), and others. Wireless data enabled PDA
`manufacturers often alternatively use software platforms
`such as Palm OSR (from Palm Computing, Inc.), Windows
`CE(R) and Windows Handheld(R) (both from Microsoft, Inc.),
`and Symbian R (a European standard), among others. Addi
`tionally, devices for user data input, and visual displays can
`vary greatly in capabilities from product to product. Devices
`for user data input include keyboards ranging from aug
`mented phone dial pads to full QWERTY (also called ASCII
`herein) keyboards, as well as others such as touch screens.
`Displays can be monochrome or color, of various resolutions
`and aspect ratios, different character set capabilities, differ
`ent vector graphics capabilities, and different levels of
`grayscale or color depth as expressed in bits.
`0006 Although the standard software platforms
`described above were created to facilitate device indepen
`dent client applications, the incompatibility problem largely
`remains in that there are multiple standards and multiple
`devices. Hence, applications cannot be created for only one
`standard or hardware device given the diversity of software
`standards and user interface hardware options for the range
`of mobile communication devices to be provided with
`wireless data service. For example, client application soft
`ware to run on two different manufacturers’ phones might
`need to be written in both BREWR) (for a first manufactur
`er's phone) and J2ME (for a second manufacturer's phone).
`Further aggravating the software development problem is
`the fact that the first manufacturer, for example, may provide
`mobile communication devices with a number of different
`options for display sizes, further requiring additional ver
`sions of software.
`0007 Deploying one application to multiple platforms
`can require that software developers write multiple client
`applications where each application is specific to a particular
`platform. This is the case even though the functionality of
`the application and often the interface itself is intended to be
`the same regardless of the underlying software platform or
`user interface hardware. Thus wireless data application
`developers often invest significant time and resources in
`developing and maintaining applications that are platform,
`and often device, specific. When a program error is discov
`ered in one version of an application, the error must often be
`fixed in other platform and/or device dependent versions of
`
`
`
`US 2006/0077941 A1
`
`Apr. 13, 2006
`
`the same application, and then deployed separately to mul
`tiple server systems. Each time an application is ported to a
`new application environment, a team of developers is
`required to invest their time and energy in developing,
`maintaining, and upgrading the Software. It is not uncom
`mon for companies to employ completely separate teams of
`developers to develop and maintain these different versions
`of the same application. Consequently, a significant waste of
`resources can be incurred as a result of current application
`development methods for wireless data applications. And
`this problem is not limited to wireless data service environ
`ments, but can arise in other data service environments
`where it is desirable to deploy client-server applications that
`accommodate many types of clients.
`
`DISCLOSURE OF THE INVENTION
`0008. The current invention provides a method and sys
`tem for implementing a user interface for providing a data
`service in a mobile client using a server with knowledge of
`the client’s hardware and software capabilities (hereinafter
`referred to jointly as “device characteristics') to modify data
`content and display rules for an improved user interface on
`the client. Data may be cached on the client to improve
`application response time and to provide standalone appli
`cation capabilities for the client. The automatic conversion
`of newly developed applications for a plurality of clients
`with differing client device characteristics reduces applica
`tion Software development and maintenance costs. Software
`updates and bug fixes for previously deployed applications
`can be deployed to mobile communication devices using the
`same method and system, through data downloads when a
`client device accesses an application.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0009 FIG. 1 is a block diagram illustrating an overview
`of an exemplary wireless network in accordance with one
`embodiment of the present invention.
`0010 FIG. 2 illustrates display pages of a exemplary
`mobile application in another embodiment of the invention.
`0011
`FIG. 3 is a diagram illustrating a high level view of
`a wireless data service being deployed to a client in accor
`dance with one embodiment of the invention.
`0012 FIG. 4 illustrates an application server in accor
`dance with one embodiment of the invention.
`0013 FIG. 5 is a flowchart describing server processing
`in accordance with an embodiment of the invention.
`0014 FIG. 6 illustrates a client in accordance with
`another embodiment of the invention.
`0.015
`FIG. 7 is a flowchart illustrating client processing
`in accordance with one embodiment of the invention.
`0016 FIG. 8 is a flowchart showing client processing in
`accordance with another embodiment of the invention.
`0017 FIG. 9 is a flowchart showing client processing in
`accordance with a further embodiment of the invention.
`0018 FIG. 10 is a flowchart illustrating an operation of
`a content adapter in accordance with an embodiment of the
`invention.
`
`FIG. 11 is a flowchart showing the development of
`0.019
`an application in accordance with an embodiment of the
`invention.
`0020 FIG. 12 illustrates an exemplary client display
`screen for an exemplary application in a further embodiment
`of the invention.
`0021
`FIG. 13 illustrates a computer display screen of an
`application development tool in an embodiment of the
`invention.
`0022 FIG. 14 illustrates another computer display screen
`of an application development tool in an embodiment of the
`invention.
`0023 FIG. 15 illustrates an exemplary hardware archi
`tecture of a server in an embodiment of the invention.
`0024 FIG. 16 illustrates an exemplary hardware archi
`tecture of a client in another embodiment of the invention.
`
`MODES OF CARRYING OUT THE INVENTION
`0025. One embodiment of the present invention is
`directed toward a novel system and method to enable
`software developers for a client-server environment to effi
`ciently develop, deploy, and maintain an instance of an
`application that can be configured to operate on different
`types of client devices, including mobile communication
`devices such as mobile phones, Smart phones, personal
`digital assistants, and two-way paging systems. In accor
`dance with one embodiment of the present invention, devel
`opers are provided with the tools and features to develop and
`deploy applications that are, at least to some extent, device
`independent. In one or more implementations, these goals
`can be accomplished with little or no modification to exist
`ing infrastructure and without a need for a manufacturers
`modification of client devices.
`0026.
`Before describing the invention in detail, it is
`useful to describe an example environment in which the
`invention can be implemented. The example environment
`described is that of a wireless communication network.
`More particularly, the example environment described is a
`wireless communication network configured to provide
`wireless data services to one or more network users. FIG. 1
`is a block diagram illustrating an overview of this example
`wireless network in accordance with one embodiment of the
`present invention. The illustrated wireless network includes
`one or more mobile communication devices 0102, one or
`more mobile base stations 0101, and a communication
`network 0105. Also illustrated are a server 0108, a firewall
`0110, and content service providers 0111, which can be
`included to interface to the wireless communication network
`in accordance with one embodiment of the invention.
`0027. In one implementation of the example environment
`illustrated in FIG. 1, the clients, in this example mobile
`communication devices 0102, can be implemented as Smart
`phones, which can be implemented as a wireless phone (for
`example, a cellular telephone) with data features. For ease of
`description and to illustrate various features, the invention is
`from time to time described herein in terms of clients
`implemented as smartphones 0102. However, after reading
`this description it will become apparent to one of ordinary
`skill in the art how to implement the various features and
`
`
`
`US 2006/0077941 A1
`
`Apr. 13, 2006
`
`functions of the invention with other mobile communication
`devices and with other client devices in general.
`0028. In operation, mobile communication devices 0102
`are in wireless communication with one or more base
`stations 0101. A base station 01 01 may be implemented as
`a conventional cellular telephone base station, or another
`type of relay or base station Such as, for example, a wireless
`access point in a wireless local area network. In this and
`other environments other devices may be utilized to allow a
`client to access a server Such as, for example, a router or
`gateway or other like device.
`0029. In a conventional cellular network, base stations
`0101 can in certain implementations be described as having
`three components. The cell sites, which are often referred to
`as base transceiver stations or BTS's, communicate directly
`with the mobile communication devices 0102. Base station
`controllers or BSC's (not shown) control the base trans
`ceiver stations either overland links (typically) or over radio
`links. Mobile switching centers or MSCs (not shown), often
`called mobile telephone switching offices, control the base
`station controllers, usually over land links. There is no fixed
`ratio of BTS to BSC to MSC, required, and these base
`station functions may be combined into a single site. Often
`cellular phone systems, and other wireless mobile data
`systems, have multiple base stations 0101. This provides for
`data communication service handoff from one base station to
`another as a mobile data terminal roves among the base
`stations respective coverage areas.
`0030 Smart phones 0102 can be implemented utilizing
`one or more of several types of real time operating systems
`(RTOS) 0103 running on an internal processor such as, for
`example a baseband or other processor (also referred to as
`“microprocessor or “microcontroller'). operating system
`0.103 can interface applications running on the internal
`digital processor with hardware operably connected with the
`processor, such as, for example, a radio frequency (RF)
`modem, a keypad, a visual display, baseband, mixed-signal
`and analog circuitry, and others. Various Smartphones 0102
`can be implemented using various different configurations of
`hardware and Software, including, for example, different
`types or versions of operating systems 0103 and different
`configurations of user interfaces (for example, keypads and
`displays).
`0031. In FIG. 1, each of two base stations 0101 is
`illustrated as being in wireless connection with a respective
`one of two mobile communication devices 0102. Because
`base Stations 01 01 are connected via network 0105 in FIG.
`1, mobile communication devices 0102 can communicate
`with one another through the base stations 0101 and network
`0105, or sometimes directly. Of course additional base
`stations 0101 and additional mobile communication devices
`0102 (and various alternatives of either) can be eliminated,
`substituted, or added as well.
`0032 Network 0105 may be implemented as any type or
`combination of types of communication network, including
`local area and wide area networks of varying configurations
`and protocols. For example, base stations 0101 are some
`times connected using the asynchronous transfer mode
`(ATM) standard protocol. Often, at least a part of network
`0105 may be implanted with an Internet Protocol (IP V.4 or
`IP V.6) protocol. In some environments, such as the cellular
`environment, for example, the cellular network is designed
`
`to connect to the existing phone system, also called the
`Public Switched Telephone Network or PSTN (not illus
`trated), or to other data network voice or data networks. The
`connection to the PSTN is similar to the connection of other
`telephone Switching equipment such as a Public Branch
`Exchange (PBX).
`0033. In the example environment illustrated in FIG. 1,
`one or more mobile communication devices 0102 can
`include a UI engine 0104 that can be implemented as an
`application that is interfaced with, or running "on top of.”
`operating system 0103 in a mobile communication device
`0102. In can also be implemented in various other software
`embodiments, or as hardware, firmware, or other logical
`components. In an embodiment of the present invention, UI
`engine 0104 can be implemented so as to improve the user
`interface performance for wireless data applications.
`0034. Also illustrated in the example environment of
`FIG. 1 are content service providers 0111. One or more
`content service providers 0111 can interface with the wire
`less communication network to provide one or more items of
`content to network users. For example, with increasing
`capabilities of contemporary mobile communication termi
`nals 0102, various content items such as games, ring tones,
`screen savers, photographs, movies, and other applications
`and content items (generally referred to herein as “content)
`are often made available to users for download onto clients
`such as mobile communication devices 0102. As illustrated,
`content service providers 0111 can be connected to network
`0105 in various different ways to enable downloading of
`content to the clients 0102.
`0035) In addition to downloading content via the wireless
`link, content can be downloaded to the mobile communica
`tion device 0102 using other means Such as, for example a
`direct connection. One example of a direct connection can
`be a synchronization operation between the mobile commu
`nication device 0102 and a user's personal computer where
`the content was previously downloaded to or otherwise
`resides on the computer and is Subsequently downloaded to
`the mobile communication device 0102 during a synchro
`nization or other operation. After reading this description it
`will become apparent to one of ordinary skill how other
`content delivery mechanisms can be implemented.
`0036). In the present invention, server 0108 can be imple
`mented so as to Support applications for UI engine 0104 on
`clients 0102. In one embodiment, this can be accomplished
`by retrieving application content from service providers
`0111 and processing content. One or more content service
`providers 0111 can be in communicative contact with the
`example environment. They can access network 0105 and
`one or more servers 0108 in a number of different ways. For
`example, a content service provider 0111 may have a con
`nection to server 0108 other than through the network 0105.
`Additionally, a content service provider 0.111 may be in
`communicative contact with a server 0108 via network
`0105. Although content service provider 0111 is illustrated
`as being somewhat directly connected to network 0105,
`other communication channels, connections or interface
`techniques can be provided to allow communication
`between content service provider 0.111 and server 0108.
`0037 Content service provider 0111 provides data ser
`vices to clients 0102. Content services providers 0111 are
`often implemented as servers, and can use similar hardware
`
`
`
`US 2006/0077941 A1
`
`Apr. 13, 2006
`
`and operating system software to server 0108. Types of data
`services are too numerous to list, but can include, for
`example: news, weather, driving directions, horoscope,
`stock quotes, hotel and restaurant information, etc. In addi
`tion to these information services type of data services,
`content service providers 0111 can also provide other con
`tent to one or more clients 0102 such as, for example,
`applications and application programs, media content, soft
`ware plug-ins and modules, games and gaming applications
`suitable for running on a client device 0102, and other forms
`of content or other information that may be useful or of
`interest to the user with his or her client device 0102. Thus,
`as used in this document, the term “content” is used to refer
`to any of a number of different forms of information, data,
`application, media or other content that may be provided
`from a content service provider 0111 to a client device such
`as a mobile communication device 0102. This content can be
`in various forms and include one or more of a plurality of
`different data or information types including, for example,
`Software or other code, graphics, textual information, audio
`information, image information, and video information.
`0038 Having thus described an example environment in
`which the present invention can be applied, the present
`invention will now be described in greater detail in terms of
`this example environment. After reading this description, it
`will become apparent to one of ordinary skill in the art how
`to implement the invention in its various forms and embodi
`ments in this or alternative environments in which it may be
`desirable to utilize the features and aspects of the present
`invention.
`0.039 When a user determines that he or she desires to
`obtain content for his or her mobile communication device
`0102, one technique for carrying out these wishes is to
`identify the content (for example, a particular application)
`and to indicate a request for the content Such as, for example,
`by entering appropriate keystrokes or other inputs to request
`a download of the content. Upon receiving a user request, UI
`Engine 0104, in one embodiment transmits an event to a
`server 0108 communicatively connected to the network. The
`event, in one embodiment includes device characteristics
`about the requesting device and the content. These device
`characteristics can include, for example, information Such as
`an identification of the requested content along with other
`useful information Such as, for example, information to
`identify the mobile communication device 0102 for which
`the request is made. For example, the event may include an
`identification of the brand, model, type or class of mobile
`communication device 0102 for which the content is being
`requested. Additional examples of device characteristics are
`provided below. Upon receipt, a rule set is appropriately
`applied to the content based on device characteristics from
`the requesting client device 0102 (e.g., device type, class,
`brand, model, carrier, application, application state, and so
`on), thus formatting or otherwise preparing the content for
`execution on the mobile communication device 0102. This
`process of combining a rule set with content is described in
`greater detail below with reference to FIG. 4.
`0040. When a user downloads content to mobile com
`munication device 01 02, one embodiment of the invention
`provides the capability to download a UI Engine 0104
`configured for the specific mobile communication device
`0102 or class of mobile communication device 0102. In one
`embodiment, this can be downloaded transparently before a
`
`first component of the application (for example a splash
`screen) is downloaded. Thus, a UI Engine 0104 can be
`prepared and downloaded to the client device 0102 for the
`particular content item requested. As such, one or more UI
`Engines 0104 may be installed and running on a given client
`device 0102 in this particular embodiment. Thus, for
`example, it is not necessary that a given UI Engine 0104
`perform any or all of the functionality that may be tradi
`tionally or conventionally associated with UI Engines 0104
`in implementations of client devices 0102 such as, for
`example, mobile communication devices 0102. As such, the
`term “UI Engine' should not be construed as limited to a
`conventional or traditional UI Engine.
`0041 Mobile communication device 0102 can be con
`figured so as to execute UI Engine 0104 which, in one
`embodiment as mentioned above, is specific to that mobile
`communication device 01 02, or to that class of devices to
`which mobile communication device 0102 belongs. In one
`embodiment, UI Engine 0104 can be created once per device
`and configured so as to be able execute various application
`interfaces. As such, in this embodiment, mobile communi
`cation device 0102 can perform specified functions by
`downloading a UI component that can include a rule set for
`the desired content item along with any associated content
`data or information.
`0042. As stated above, in accordance with one embodi
`ment of the invention, features and functionality can be
`provided to facilitate the development, deployment, and
`performance of content bearing applications to mobile com
`munication device 0102 users. FIG. 2 illustrates exemplary
`application display pages as they could appear on a mobile
`communication device display in accordance with one
`embodiment of the invention. In this particular illustrated
`example, FIG. 2a shows an example initial display page for
`a hypothetical application (i.e., content) used to retrieve and
`provide information to a user of a mobile communication
`device 0102 in a number of different categories as listed on
`the exemplary Screen shot. The categories shown in this
`example are emergency services, gas stations, restaurants,
`and hotels.
`0.043 FIG. 2b shows an example of the screen in FIG.
`2a, but with one of the categories, in this case “restaurants.”
`being highlighted. This selection can be made, for example,
`through a user actuation of an input device such as a
`keyboard, keypad, joystick, touchscreen, touchpad, mouse,
`Voice command interpreter, or other user interface. This is
`generally referred to as a user input. Through an appropriate
`user input, the user selects the category for which he or she
`desires more information. For example, in the example
`illustrated in FIG. 2b, once the appropriate category is
`highlighted, a simple user action Such as, for example,
`pressing an Enter key or other action via a user interface, can
`facilitate selection of the highlighted category. An event
`need not be selected by first highlighting a category as
`illustrated in the above example. Indeed, an event can be
`generated via a number of different user inputs including, for
`example, a direct selection of the desired category via the
`available user interface. In other embodiments, an event can
`also be generated by server action or via another device.
`0044) This selection generates an event that can be used
`to facilitate retrieval of additional content as specified by the
`event. Thus, in the example illustrated in FIG.2b, when the
`
`
`
`US 2006/0077941 A