[go: up one dir, main page]

WO2008118367A1 - System and method for configuring a device with a device-specific version of a software application - Google Patents

System and method for configuring a device with a device-specific version of a software application Download PDF

Info

Publication number
WO2008118367A1
WO2008118367A1 PCT/US2008/003753 US2008003753W WO2008118367A1 WO 2008118367 A1 WO2008118367 A1 WO 2008118367A1 US 2008003753 W US2008003753 W US 2008003753W WO 2008118367 A1 WO2008118367 A1 WO 2008118367A1
Authority
WO
WIPO (PCT)
Prior art keywords
configuration data
server
application
memory
data
Prior art date
Application number
PCT/US2008/003753
Other languages
French (fr)
Inventor
Robert Johnson
Joseph Godcharles
Kenneth Black
Original Assignee
Exclaim
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Exclaim filed Critical Exclaim
Publication of WO2008118367A1 publication Critical patent/WO2008118367A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/64Retargetable

Definitions

  • the present invention relates generally to a system and method for configuring a hardware device with a device-specific version of software for execution on the hardware device.
  • the present invention may be used to distribute handset-specific software applications to cellular telephone handsets or to PDA/handheld computing devices.
  • a broad range of electronic devices presently include microprocessors capable of executing a software application.
  • a single instance of the software application is suitable for execution on a broad range of different devices, e.g. a broad range of different personal computers. This is possible because the different devices are similar in execution-relevant capabilities and parameters.
  • the various devices differ so significantly that substantial customization of the software application is required for each of the different devices. Examples of such heterogeneous devices include cellular/wireless telephone handsets and PDA/handheld computing devices (collectively "handsets").
  • Telephone handsets that are presently commercially available have distinctly different operating parameters that are relevant to execution of a software application.
  • Such parameters include the operating system platform (e.g., BREW or JAVA), the operating system version, the amount of available memory/RAM, the display screen dimensions, the color depth of the screen, etc.
  • Such software applications are available for use and execution on such devices.
  • Such software applications when downloaded to and stored on a particular device, include configuration settings and logic for many devices other than the actual device on which the application resides. While this permits downloading and installing of a single instance of a software application on a variety of different devices, this increases the application size, unnecessarily consumes limited memory resources on the device, lengthens file download times, etc.
  • different "builds" of the software is often required for each set of operating parameters to be supported, e.g., for different phone models, operating systems, etc. This adds to the programming, debugging and certification processes for each new software application. Complicating the certification process is that it is usually performed by an independent third party, such as the National Software Testing Labs of Blue Bell, Pennsylvania.
  • the same (or nearly identical) device hardware may be differently configured for each wireless telephone service carrier ("carrier”), or it may be desirable to include or exclude certain functionality of the device to comply with business practices or technical requirements of the respective carrier. Accordingly, additional carrier-specific "builds" of a single software application may be required as a function of the carrier.
  • the present invention provides a system and method for configuring a hardware device with a device-specific version of a software application.
  • the software application is specially-configured to be generic to various different devices.
  • the software application may be incomplete and not executable at the device, or may be executable, e.g. to provide limited functionality, but not customized for the device.
  • the application excludes configuration logic and settings for a particular device, carrier network, etc.
  • configuration logic is managed by a separate server that identifies and returns to the device configuration data including device- specific settings for the specific device on which a single instance of the application will be executed.
  • the configuration data configures a specific device according to the unique capabilities of the specific device, requirements of the wireless service carrier whose network is used by the device, etc.
  • the configuration data may include flags, parameters, settings, etc. (collectively, "flags") for use in configuration the application for a specific device, and may further include application resource files including data, such as images, text strings, etc., for use by the application when executing on a specific device.
  • flags for use in configuration the application for a specific device
  • application resource files including data, such as images, text strings, etc., for use by the application when executing on a specific device.
  • different devices receive the same generic software application, but each unique device receives different configuration data from the database server to configure the device with a device-specific version of the software application.
  • the instances of application and the configuration data stored in the memory of a specific device collectively provide an executable device-specific version of the application that corresponds to an identity of that specific device.
  • the method and system involves downloading the generic software application to the device, the application interrogating the device to obtain data identifying characteristics of the device, the application causing transmission of such identifying data to a server, the server referencing a database and/or other service or data providers to identify device-specific and carrier specific configuration data, and the server transmitting the device-specific configuration data to the device.
  • the present invention may be used to configure heterogeneous cellular telephone handsets with a software application permitting a user of the handset to interface with an online photo-album service to upload, download and/or view digital photographic images and/or albums.
  • Figure 1 is a block diagram showing diagrammatically a system in accordance with the present invention
  • Figure 2 is a flow diagram illustrating an exemplary method for configuring a device with a device-specific version of a software application in accordance with the present invention, shown from the device's perspective;
  • Figure 3 is a flow diagram illustrating an exemplary method for configuring a device with a device-specific version of a software application in accordance with the present invention, shown from the server's perspective;
  • Figure 4 is a block diagram showing diagrammatically an exemplary database server in accordance with the present invention.
  • the present invention provides a system and method for configuring a hardware device, such as a cellular/wireless telephone, with a device-specific version of a generic software application for providing desired functionality to a variety of different devices.
  • a hardware device such as a cellular/wireless telephone
  • the present invention may be used to configure heterogeneous cellular telephone handsets with a software application permitting a user of the handset to interface with an online photo-album service to upload, download and/or view digital photographic images and/or albums.
  • FIG. 1 is a block diagram showing diagrammatically a simplified system 10 in accordance with the present invention, in the exemplary context of cellular telephone devices. Actual network topology should be expected to be significantly more complex.
  • the exemplary system includes a conventional cellular/wireless telephone handset device 20, such as a RAZR V3m telephone manufactured and/or distributed by Motorola, Inc. of Schaumburg, Illinois.
  • the handset is conventional commercially available hardware in that it includes a display screen, keypad, microprocessor, memory, and telecommunications hardware enabling it to communicate via a 3G, GSM, TDMA, CDMA, iDEN or other wireless communications network 30.
  • the system further includes a specially- configured database server 120 storing a specially-configured database.
  • the system 10 further includes an application server 50 and a lookup server 60.
  • Each server 120, 50, 60 is shown diagrammatically as a single logical server for illustrative purposes only.
  • the functionality of one or more of servers 120, 50, 60 may be consolidated in a single or fewer servers.
  • Each server 120, 50, 60 includes conventional hardware and software. Accordingly, each server 120, 50, 60 includes at least a microprocessor, a memory operably connected to the microprocessor, and hardware and software for communicating via a communications network, as well known in the art.
  • each server 120, 50, 60 is able to communicate with the handsets via TCP/IP and/or other related data protocols (e.g. WAP) running over the air interface protocols (3G, GSM, TDMA 1 CDMA, iDEN).
  • WAP related data protocols
  • 3G, GSM, TDMA 1 CDMA, iDEN air interface protocols
  • only one of these servers may be configured to be able to communicate with the handsets, and may therefore act as a bridge between the handsets and the other servers.
  • application server 50 is configured to store in its memory and download (transmit) to the handset 20 a software application that is specially-configured as discussed in greater detail below.
  • software application is being used in a broad sense herein, and may include either programming code that is executable by the handset/device, e.g. to perform limited functionality such as to permit connection with a server for configuration purposes, or programming code that is incomplete that thus is not immediately executable by the handset/device.
  • the application server 50 may be maintained and operated by an existing wireless services carrier for supporting cellular telephones, such as Verizon Wireless, Cingular, Nextel, T-Mobile, etc.
  • the application server 50 may be configured to process a purchase transaction conducted by a user via handset 20, etc., and then responsively download the purchased software application to the handset 20 via the network 30. Any suitable conventional communications technologies may be used for this purpose, as will be appreciated by those skilled in the art.
  • Lookup server 60 is configured to store in its memory a database that associates carrier identity and country of origin data with MDN and/or MIN telephone numbers. As discussed in greater detail below, transmitting a properly formatted query including an MDN and/or MIN to lookup server 60 provides a response that includes a carrier identity, e.g. Verizon Wireless, and an identification of the corresponding country of origin, e.g. U.S.A.
  • a carrier identity e.g. Verizon Wireless
  • U.S.A e.g.
  • Various commercial services presently exist to provide the functionality of the lookup server. One such service is SimpleWire of Southfield, Michigan. Any suitable conventional technologies may be used for this purpose, as will be appreciated by those skilled in the art.
  • the lookup server functionality may be incorporate into a single logical server with the database server functionality.
  • Database server 120 is specially-configured in accordance with the present invention to perform at least two specific functions.
  • the first of the database server's functions involves identifying the phone model of the handset 20 (e.g., Motorola RAZR V3m), and thus the capabilities and/or operating parameters (collectively, "capabilities") of the handset (e.g., maximum file name length, whether bitmap and/or * .jpg format images may be displayed on the phone, whether bitmap and/or *.jpg format images may be used for wallpaper backgrounds, the directory path name for wallpaper images & camera images, supported image MIME types, language capabilities whether the device can play video clips, etc.) and referencing the database to identify device-specific configuration data for the handset as a function of the model/capabilities of the handset.
  • the device-specific configuration data may include device capability flags for use by the software application when executing on a specific device and/or application resource file data, such as images, text, etc., for use by the software application when executing on a specific device.
  • the second of the database server's functions involves identifying the carrier and country of origin for the handset 20, and referencing the database to identify carrier- specific configuration data for the handset as a function of the carrier and country of origin of the handset.
  • the carrier-specific configuration data may include carrier capability flags for use by the software application when executing on a specific device and/or application resource file data, such as images, text, etc., for use by the software application when executing on a specific device.
  • the carrier may require that that the device be permitted/forbidden to transmit image files, permitted/forbidden to transmit using the HTTP protocol, permitted/forbidden to transmit using an MMS protocol such as the MM1 protocol, etc.
  • the lookup server could be queried to identify other context-relevant information.
  • the database server 120 is configured to transmit to the handset device-specific configuration data to be used to configure a generic software application for the specific respective phone model, carrier and country of origin of the handset 20, as discussed in greater detail below with reference to Figure 3.
  • FIG. 2 is a flow diagram 70 illustrating, from the device's perspective, an exemplary method for configuring a device with a device-specific version of a software application.
  • the device-specific version is customized for a specific instance of a device, e.g., for a specific cellular phone model, using a specific wireless carrier, in a specific country, having a specific service level agreement, etc.
  • the exemplary method begins with downloading of a specially- configured software application to the handset 20.
  • the application may be purchased and downloaded from the carrier's deck via application server 50, using conventional technology, as shown at step 72.
  • the application is stored in the memory of the handset 20.
  • the application is configured to permit a user of the handset 20 to interact with an online photo-album service, such as the commercially available online album services of dotphoto, webshots, Kodak, and others, to upload, download and/or view digital photographic images and/or albums via the device.
  • an online photo-album service such as the commercially available online album services of dotphoto, webshots, Kodak, and others, to upload, download and/or view digital photographic images and/or albums via the device.
  • the application may be configured to provide any desired functionality.
  • the software application is specially- configured not only to provide the desired functionality, but also to carry out the method for configuring the device described herein.
  • the application includes software code that is comprehensive for a variety of different devices, e.g. cellular telephones.
  • the specially-configured software application does not include, or does not need to include, configuration logic or settings for a specific device. Accordingly, the identical software application may be downloaded to many different devices, and yet the application file is relatively small in size, and does not include a significant amount of data for configuring the application for devices other than the device to which it is downloaded.
  • the application is configured to communicate with a server to identify device-specific information required for configuring the application for a specific device, e.g. a Motorola RAZR V3m operating on the Verizon Wireless network in the United States. More specifically, the application is configured to communicate with a database server 120 that identifies device-specific configuration data, and to configure a specific instance of the application on a specific device in accordance with the configuration data.
  • the configuration data may include flags for toggling certain functionality, etc.
  • the configuration data may include a device capability flag for toggling, i.e. turning on or off, a corresponding function of the generic software application as a function of capabilities of a specific device.
  • the configuration data may include a device capability flag for turning on functionality permitting transmission of images via the HTTP protocol.
  • the configuration data may include application resource data, such as image data, a textual string, etc. (e.g. for presenting customized menus of options, in various languages, etc.) that are returned from the server in an application resource file.
  • application resource data such as image data, a textual string, etc. (e.g. for presenting customized menus of options, in various languages, etc.) that are returned from the server in an application resource file.
  • a generic software application capable of displaying high- resolution graphics via the device may be transmitted to the device, but the application may be customized to display only lower resolution graphics according to device capability flags set in the corresponding configuration data transmitted to a specific device for that specific device.
  • the configuration data may include an application resource file including data to be used by the application when executing on the specific device.
  • the configuration data may include the lower resolution graphics provided in an application resource file transmitted from the database server 120 to the handset 20.
  • the application is generic as to different handsets, but is customizable to create a device-specific version of the software application that is customized for the capabilities, carrier and country of origin of a specific handset.
  • a generic software application capable of transmitting images via either the HTTP or MMS protocols may be transmitted to the device, but the application may be customized according to flags set in a corresponding configuration data file for a specific device so that only MMS is used by the application executing on that device, either because of phone capability, or carrier preference.
  • this may allow a carrier having a business arrangement involving charges for using the device for sending an MMS message, but not an HTTP message, to ensure that charges are captured for all image messages send from the device.
  • the application is then executed at the handset 20, as shown at step 74.
  • the application first checks for a startup data file stored locally in the memory of the handset 20, as shown at step 76.
  • the application server 50 may be configured to automatically transmit such a startup data file in addition to the application in response to a request from a device for download of the application.
  • the startup data file may include parameters such as maximum file name length, whether bitmap and/or *.jpg format images may be displayed on the phone, default application language capabilities, default images and text strings, etc.
  • the startup data file may initially include default data for rendering the application executable, e.g. to provide limited, generic functionality, the default data in the startup data file does not provide a device-specific version of the application for any specific device.
  • the default data in the initial startup data file includes flags requiring that the device communicate with the server to obtain configuration data. In certain embodiments, there may not be any settings data in the startup data file during the initial execution of the application.
  • the application then interrogates the handset's memory and underlying operating system (OS) software to obtain data responses that identify characteristics of the device, as shown at step 78.
  • OS operating system
  • the application is specially-configured to request data responses that may be used to identify a particular user's handset as a specific model of phone, etc.
  • the data responses sought by interrogation may include: an identification of the operating system used by the particular device, an identification of the version of the operating system being used by the device, an identification of an amount of memory/RAM available on the device, display screen dimensions of the device, color depth of the display screen, a platform identification code (PIC), and MIN, and an MDN.
  • PIC platform identification code
  • the interrogation may return response data indicating only the operating system, the operating system version, available RAM, and screen dimensions, but may not give a definitive answer with respect to other pertinent data such as PIC, MIN, or MDN.
  • the application then causes transmission of the response data via the communications network 30 to the database server 120, as shown at step 80.
  • This data may be transmitted from the handset 20 to the database server 120 using conventional communications technology.
  • the handset 20 then receives device-specific configuration settings data back from the database server 120, as shown at step 82.
  • the identification of appropriate device-specific configuration data is discussed below with reference to Figure 3.
  • This data may be transmitted via the communications network 30 from the database server 120 to the handset 20 using conventional communications technology.
  • This configuration data is stored in the startup data file in the local memory of the handset 20 for future reference and use in executing the application on that specific device, as shown at step 84.
  • the application executes the application as a function of the configuration data received, as shown at step 88. More specifically, the application reads the configuration data from the device's memory and specially configures the generic software application to be a device-specific version of the software application that corresponds to the phone model, carrier and country of origin for the respective handset 20. Accordingly, for example, for a Motorola RAZR V3x handset on the Verizon
  • FIG. 3 is a flow diagram illustrating an exemplary method 100 for configuring a device with a device-specific version of a software application in accordance with the present invention, shown from the server's perspective.
  • the exemplary method begins with the application server's 50 receipt of a request for transmission of the software application to the handset 20, as shown at step 102.
  • the handset When the application is executed at the handset, the handset is interrogated (see discussion above with reference to steps 74-82 of Figure 2). When the handset is interrogated, response data is sought. The response data identifies identifying characteristics of the phone/device.
  • the identifying characteristics of the phone may have various forms.
  • One of such forms is an industry-standard platform identification code ("PIC"), which explicitly identifies a specific phone model.
  • PIC is assigned by the phone's manufacturer and/or an industry-governing entity such that the PIC unique identifies a specific phone model for industry use.
  • the database typically includes many-to-one mappings of platform identification codes to corresponding application settings. Accordingly, phone models having different PICs may be properly configured with identical configuration data. For example, various Motorola RAZR models may have different PICs, yet be capable of using identical application settings.
  • the phone identification parameters may include other information, such as operating system (OS) platform (e.g., JAVA or BREW), OS version, RAM size, display screen dimensions, and display screen color depth.
  • OS operating system
  • BREW JAVA or BREW
  • OS version e.g., JAVA or BREW
  • RAM size e.g., RAM size
  • display screen dimensions e.g., display screen color depth
  • display screen color depth e.g., a phone model
  • the database of the database server 120 may then be referenced to identify corresponding application settings that are appropriate for the device 20.
  • Carrier identification parameters include country of origin and carrier data corresponding to the handset 20.
  • the database server 120 receives the response data from the handset, as shown at step 104. Accordingly, the database server 120 references the database stored in its memory and identifies the handset as a function of the response data, as shown at step 106. If the response data includes an industry-standard PIC, the database lookup is straightforward and the phone model of the handset and associated configuration data are easily identified. If the response data does not include a PIC, one or more of the other identifying characteristics must be matched against the database to identify (implicitly or explicitly) a phone model of the handset, and associated configuration data. The phone model may be identified either implicitly or explicitly.
  • the exact phone model may be identified explicitly as the Motorola RAZR V3x.
  • the exact phone model may not be identified explicitly, but rather it may be identified only implicitly, such that it is known only that it is a phone model corresponding to a particular set of configuration data.
  • the database server 120 references the database to identify handset- specific configuration data, as shown at step 108.
  • handset-specific settings may relate to image sizes and MIME types, button graphics to be used, etc. If there is no match for the response data, or if there is only a partial match, the database server 120 may be configured to transmit default configuration data to the handset.
  • response data including the respective phone's MIN and/or an MDN is also sought.
  • the MDN is a conventional (usually 10-digit in the U.S.) telephone number of a type used to ring a specific telephone
  • the MIN is a unique 24-bit number assigned by the carrier to each phone it sells or includes in service plans. Accordingly, the response data likely includes an MIN and/or an MDN.
  • the database server 120 queries a lookup server 60 (see Figure 1) to identify a carrier and a country of origin corresponding to the MIN and/or MDN provided in the response data, as shown at step 110.
  • Lookup server 60 is configured to store in its memory a database that associates carrier identity and country of original data with cellular telephone numbers. More specifically, the database associates MIN (Mobile Identification Number) and/or MDN (Mobile Directory Number) numbers with a wireless service carrier and a country of origin. Since each carrier is assigned or associated with specific MDN and MIN numbers for specific regions, carrier and region/country (collectively "country") information can be derived from the MDN and MIN numbers. Accordingly, transmitting a properly formatted query including an MDN and/or MIN to a lookup server 60 will provide a response that includes a carrier identity, e.g. Verizon Wireless, and an identification of the corresponding country of origin, e.g. U.S.A. As discussed above, commercially available services exist to provide the functionality of the lookup server 60.
  • MIN Mobile Identification Number
  • MDN Mobile Directory Number
  • the database server's query to the lookup server 60 returns to the database server 120 an identification of the carrier and country of origin for the specific handset 20.
  • the database server 120 then references its database to identify carrier- specific configuration data for the carrier and country of origin as function of the MDN and/or MIN provided in the response data, as shown at step 112. For example, if the lookup server 60 identifies Verizon Wireless as the carrier and US as the country of origin for a specific MDN, the database may identify carrier-specific configuration data to configure the generic software application to send all image-based messages using only the MMS protocol, consistent with Verizon's preferences.
  • the database may specify carrier-specific configuration data to configure the application to send all image-based messages using only the HTTP protocol, consistent with Cingular's preferences.
  • the database server 120 may be configured to transmit default configuration data to the handset, e.g. to specify that all image-based messages are sent via the HTTP protocol.
  • the phone-specific capabilities may indicate that a specific phone supports access to a Gallery directory on the phone to see images taken with the phone's camera, but the carrier's requirements may be require that this feature be disabled, e.g. because or privacy concerns.
  • the carrier- specific configuration data may be given higher priority than the phone-specific configuration data, and result in sending to the device configuration data that will override phone capabilities according to the carrier-specific configuration data.
  • the database server 120 then transmits the carrier-specific configuration data and the handset-specific configuration data to the handset 20, as shown at step 114, and the method ends, as shown at step 116.
  • This configuration data may include not only device capability flags and carrier capability flags, but also any application resource data including graphics, text or other data other that those included in the original application.
  • This configuration data is received by the handset 20 in step 86 of Figure 2.
  • This configuration data may be transmitted via the communications network 30 from the database server 120 to the handset 20 using conventional communications technology (see Figure 1).
  • the generic software application and device-specific configuration data is then stored in the memory of the device 20.
  • the generic software application and the device-specific configuration data provide an executable, device-specific version of the application that corresponds to the identity of the handset on which they are stored in the memory.
  • the handset 20 is thereby configured in accordance with the configuration data sent by the database server 120, as discussed above.
  • the handset device 20 is configured with a device-specific, e.g., carrier-specific and phone model-specific, version of the application, although only a generic version of the application is transmitted by the application server 50.
  • This post-download configuration of the software application for a specific device eliminates the need for device-specific and carrier-specific builds of a software application. Further, it eliminates the need to enable an application server to download different device-specific versions of a software application intended to provide similar functionality.
  • this arrangement allows for a single, centralized update of the database at the database server 120 to accommodate new phones/devices when released. For example, this may be achieved by simply adding a new platform identification code (PIC) to the database as corresponding to an existing set of application settings.
  • PIC platform identification code
  • the generic software application does not need to be modified in any way, provided that the new phone is capable of using the same configuration data and same software as any existing phone.
  • FIG. 4 is a block diagram showing diagrammatically an exemplary database server 120 in accordance with the present invention.
  • the database server of Figure 4 includes a general purpose microprocessor (CPU) 122 and a bus 124 employed to connect and enable communication between the microprocessor 122 and the components of the database server 120 in accordance with known techniques.
  • the database server 120 typically includes a user interface adapter 126, which connects the microprocessor 122 via the bus 124 to one or more interface devices, such as a keyboard 128, mouse 130, and/or other interface devices 132, which can be any user interface device, such as a touch sensitive screen, digitized entry pad, etc.
  • the bus 124 also connects a display device 134, such as an LCD screen or monitor, to the microprocessor 122 via a display adapter 136.
  • the bus 124 also connects the microprocessor 122 to memory 138 and long-term storage 1120 (collectively, "memory") which can include a hard drive, diskette drive, tape drive, etc.
  • the database server 120 may communicate with other computers or networks of computers, for example via a communications channel, network card or modem 142.
  • the database server 120 may be associated with such other computers in a local area network (LAN) or a wide area network (WAN).
  • the database server 120 may be a server in a client/server arrangement. All of these configurations, as well as the appropriate communications hardware and software, are known in the art.
  • database server 120 stores in its memory microprocessor executable instructions. These instructions may include microprocessor-executable instructions stored in the memory and executable by the microprocessor to carry out any combination of the steps described above.
  • a computer program product recorded on a computer readable medium for configuring a device with a device-specific version of a generic software application capable of providing desired functionality to a plurality of different devices.
  • This computer program product may be used to configure a server for operation as discussed above.
  • This computer program product may include computer readable code for referencing a database to identify a device-specific set of configuration data that is associated in the database with identifying characteristics data received from the device; and computer readable code for transmitting, via a communications network, the device-specific set of configuration data to the device.
  • the handset/device may include hardware and components similar to those set forth in Figure 4 and discussed above. Accordingly, the device may include a microprocessor for executing programs, a memory operatively connected to said microprocessor for storing microprocessor-executable instructions, and micro- processor-executable instructions stored in said memory and executable by said microprocessor to carry out any combination of the steps described above.
  • a computer program product recorded on a computer readable medium for configuring a device with a device-specific version of a generic software application capable of providing desired functionality to a plurality of different devices.
  • This computer program product may be used to configure a handset for operation as discussed above.
  • This computer program product may include computer readable code for transmitting data identifying characteristics of the device to a server via a communications network, computer readable code for receiving configuration data from the server via the communications network, and computer readable code for storing the configuration data in the memory of the device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)

Abstract

A software application is specially-configured to be generic to various different computing devices, and to require configuration data to configure the application for a specific wireless telephone or other device. The application is provided to the device separately from the configuration data. Configuration data for various different devices is stored at a database server. The configuration data is stored in the database in association with identifying characteristics of one or more devices to which the configuration data shall be applied. Identifying characteristics sent from a particular device to the database server permits identification of configuration data specifically for the particular device. The device receives only the configuration data it requires. The instances of the application and configuration data stored in the memory of a specific device collectively provide an executable device-specific version of the application that corresponds to an identity of that specific device.

Description

SYSTEM AND METHOD FOR CONFIGURING A DEVICE WITH A DEVICE-SPECIFIC VERSION OF A SOFTWARE APPLICATION
CROSS-REFERENCE TO RELATED APPLICATION
This application claims the benefit of U.S. Provisional Patent Application No. 60/896,688, filed March 23, 2007, the entire disclosure of which is hereby incorporated herein by reference.
FIELD OF THE INVENTION
The present invention relates generally to a system and method for configuring a hardware device with a device-specific version of software for execution on the hardware device. The present invention may be used to distribute handset-specific software applications to cellular telephone handsets or to PDA/handheld computing devices.
DISCUSSION OF THE RELATED ART
A broad range of electronic devices presently include microprocessors capable of executing a software application. In certain circumstances, a single instance of the software application is suitable for execution on a broad range of different devices, e.g. a broad range of different personal computers. This is possible because the different devices are similar in execution-relevant capabilities and parameters. In other circumstances, the various devices differ so significantly that substantial customization of the software application is required for each of the different devices. Examples of such heterogeneous devices include cellular/wireless telephone handsets and PDA/handheld computing devices (collectively "handsets").
Telephone handsets that are presently commercially available have distinctly different operating parameters that are relevant to execution of a software application. Such parameters include the operating system platform (e.g., BREW or JAVA), the operating system version, the amount of available memory/RAM, the display screen dimensions, the color depth of the screen, etc.
Various software applications are available for use and execution on such devices. Such software applications, when downloaded to and stored on a particular device, include configuration settings and logic for many devices other than the actual device on which the application resides. While this permits downloading and installing of a single instance of a software application on a variety of different devices, this increases the application size, unnecessarily consumes limited memory resources on the device, lengthens file download times, etc. Further, to accommodate the differences in operating parameters, different "builds" of the software is often required for each set of operating parameters to be supported, e.g., for different phone models, operating systems, etc. This adds to the programming, debugging and certification processes for each new software application. Complicating the certification process is that it is usually performed by an independent third party, such as the National Software Testing Labs of Blue Bell, Pennsylvania.
Further, the same (or nearly identical) device hardware may be differently configured for each wireless telephone service carrier ("carrier"), or it may be desirable to include or exclude certain functionality of the device to comply with business practices or technical requirements of the respective carrier. Accordingly, additional carrier-specific "builds" of a single software application may be required as a function of the carrier.
Further still, as new cellular telephone devices, or new versions of cellular telephone devices, are introduced to the marketplace, a new "build" is often required. Often, the need for a new build is identified only after a consumer downloads and installs the most recent/closest matching build of the application, and finds that it does not work. Accordingly, many consumers become frustrated and are unable to use the application during the period of time that is required to develop an appropriate new build of the software, and to have the new build certified. Even after a new build has been certified, it is difficult to effectively and/or efficiently distribute the new build to individual handset users, since installation of such software on such devices is largely performed according to a decentralized "pull" distribution model in which the download is initiated by the user.
SUMMARY OF THE INVENTION
The present invention provides a system and method for configuring a hardware device with a device-specific version of a software application. The software application is specially-configured to be generic to various different devices. In other words, the software application may be incomplete and not executable at the device, or may be executable, e.g. to provide limited functionality, but not customized for the device. In either case, the application excludes configuration logic and settings for a particular device, carrier network, etc. Instead, configuration logic is managed by a separate server that identifies and returns to the device configuration data including device- specific settings for the specific device on which a single instance of the application will be executed. The configuration data configures a specific device according to the unique capabilities of the specific device, requirements of the wireless service carrier whose network is used by the device, etc. The configuration data may include flags, parameters, settings, etc. (collectively, "flags") for use in configuration the application for a specific device, and may further include application resource files including data, such as images, text strings, etc., for use by the application when executing on a specific device. In accordance with the present invention, different devices receive the same generic software application, but each unique device receives different configuration data from the database server to configure the device with a device-specific version of the software application. The instances of application and the configuration data stored in the memory of a specific device collectively provide an executable device-specific version of the application that corresponds to an identity of that specific device.
More specifically, the method and system involves downloading the generic software application to the device, the application interrogating the device to obtain data identifying characteristics of the device, the application causing transmission of such identifying data to a server, the server referencing a database and/or other service or data providers to identify device-specific and carrier specific configuration data, and the server transmitting the device-specific configuration data to the device. For example, the present invention may be used to configure heterogeneous cellular telephone handsets with a software application permitting a user of the handset to interface with an online photo-album service to upload, download and/or view digital photographic images and/or albums.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will now be described by way of example with reference to the following drawings in which:
Figure 1 is a block diagram showing diagrammatically a system in accordance with the present invention;
Figure 2 is a flow diagram illustrating an exemplary method for configuring a device with a device-specific version of a software application in accordance with the present invention, shown from the device's perspective;
Figure 3 is a flow diagram illustrating an exemplary method for configuring a device with a device-specific version of a software application in accordance with the present invention, shown from the server's perspective; and
Figure 4 is a block diagram showing diagrammatically an exemplary database server in accordance with the present invention.
DETAILED DESCRIPTION
The present invention provides a system and method for configuring a hardware device, such as a cellular/wireless telephone, with a device-specific version of a generic software application for providing desired functionality to a variety of different devices. For example, the present invention may be used to configure heterogeneous cellular telephone handsets with a software application permitting a user of the handset to interface with an online photo-album service to upload, download and/or view digital photographic images and/or albums.
Figure 1 is a block diagram showing diagrammatically a simplified system 10 in accordance with the present invention, in the exemplary context of cellular telephone devices. Actual network topology should be expected to be significantly more complex. As shown in Figure 1 , the exemplary system includes a conventional cellular/wireless telephone handset device 20, such as a RAZR V3m telephone manufactured and/or distributed by Motorola, Inc. of Schaumburg, Illinois. The handset is conventional commercially available hardware in that it includes a display screen, keypad, microprocessor, memory, and telecommunications hardware enabling it to communicate via a 3G, GSM, TDMA, CDMA, iDEN or other wireless communications network 30.
In accordance with the present invention, the system further includes a specially- configured database server 120 storing a specially-configured database. In the exemplary embodiment of Figure 1 , the system 10 further includes an application server 50 and a lookup server 60. Each server 120, 50, 60 is shown diagrammatically as a single logical server for illustrative purposes only. Optionally, the functionality of one or more of servers 120, 50, 60 may be consolidated in a single or fewer servers.
Each server 120, 50, 60 includes conventional hardware and software. Accordingly, each server 120, 50, 60 includes at least a microprocessor, a memory operably connected to the microprocessor, and hardware and software for communicating via a communications network, as well known in the art. In the exemplary context of handsets operating in a cellular telephone network environment embodiment, each server 120, 50, 60 is able to communicate with the handsets via TCP/IP and/or other related data protocols (e.g. WAP) running over the air interface protocols (3G, GSM, TDMA1 CDMA, iDEN). Optionally, only one of these servers may be configured to be able to communicate with the handsets, and may therefore act as a bridge between the handsets and the other servers.
In accordance with the present invention, application server 50 is configured to store in its memory and download (transmit) to the handset 20 a software application that is specially-configured as discussed in greater detail below. It should be noted that the term "software application" is being used in a broad sense herein, and may include either programming code that is executable by the handset/device, e.g. to perform limited functionality such as to permit connection with a server for configuration purposes, or programming code that is incomplete that thus is not immediately executable by the handset/device. By way of example, the application server 50 may be maintained and operated by an existing wireless services carrier for supporting cellular telephones, such as Verizon Wireless, Cingular, Nextel, T-Mobile, etc. For example, the application server 50 may be configured to process a purchase transaction conducted by a user via handset 20, etc., and then responsively download the purchased software application to the handset 20 via the network 30. Any suitable conventional communications technologies may be used for this purpose, as will be appreciated by those skilled in the art.
Lookup server 60 is configured to store in its memory a database that associates carrier identity and country of origin data with MDN and/or MIN telephone numbers. As discussed in greater detail below, transmitting a properly formatted query including an MDN and/or MIN to lookup server 60 provides a response that includes a carrier identity, e.g. Verizon Wireless, and an identification of the corresponding country of origin, e.g. U.S.A. Various commercial services presently exist to provide the functionality of the lookup server. One such service is SimpleWire of Southfield, Michigan. Any suitable conventional technologies may be used for this purpose, as will be appreciated by those skilled in the art. Optionally, the lookup server functionality may be incorporate into a single logical server with the database server functionality.
Database server 120 is specially-configured in accordance with the present invention to perform at least two specific functions. The first of the database server's functions involves identifying the phone model of the handset 20 (e.g., Motorola RAZR V3m), and thus the capabilities and/or operating parameters (collectively, "capabilities") of the handset (e.g., maximum file name length, whether bitmap and/or *.jpg format images may be displayed on the phone, whether bitmap and/or *.jpg format images may be used for wallpaper backgrounds, the directory path name for wallpaper images & camera images, supported image MIME types, language capabilities whether the device can play video clips, etc.) and referencing the database to identify device-specific configuration data for the handset as a function of the model/capabilities of the handset. The device-specific configuration data may include device capability flags for use by the software application when executing on a specific device and/or application resource file data, such as images, text, etc., for use by the software application when executing on a specific device.
The second of the database server's functions involves identifying the carrier and country of origin for the handset 20, and referencing the database to identify carrier- specific configuration data for the handset as a function of the carrier and country of origin of the handset. The carrier-specific configuration data may include carrier capability flags for use by the software application when executing on a specific device and/or application resource file data, such as images, text, etc., for use by the software application when executing on a specific device. By way of example, the carrier may require that that the device be permitted/forbidden to transmit image files, permitted/forbidden to transmit using the HTTP protocol, permitted/forbidden to transmit using an MMS protocol such as the MM1 protocol, etc. In other contexts, the lookup server could be queried to identify other context-relevant information.
The database server 120 is configured to transmit to the handset device-specific configuration data to be used to configure a generic software application for the specific respective phone model, carrier and country of origin of the handset 20, as discussed in greater detail below with reference to Figure 3.
Figure 2 is a flow diagram 70 illustrating, from the device's perspective, an exemplary method for configuring a device with a device-specific version of a software application. The device-specific version is customized for a specific instance of a device, e.g., for a specific cellular phone model, using a specific wireless carrier, in a specific country, having a specific service level agreement, etc. Referring now to Figures 1 and 2, the exemplary method begins with downloading of a specially- configured software application to the handset 20. The application may be purchased and downloaded from the carrier's deck via application server 50, using conventional technology, as shown at step 72. The application is stored in the memory of the handset 20. In this exemplary embodiment, the application is configured to permit a user of the handset 20 to interact with an online photo-album service, such as the commercially available online album services of dotphoto, webshots, Kodak, and others, to upload, download and/or view digital photographic images and/or albums via the device. However, the application may be configured to provide any desired functionality.
In accordance with the present invention, the software application is specially- configured not only to provide the desired functionality, but also to carry out the method for configuring the device described herein. For this purpose, the application includes software code that is comprehensive for a variety of different devices, e.g. cellular telephones. In contrast to at least most conventional software applications, the specially-configured software application does not include, or does not need to include, configuration logic or settings for a specific device. Accordingly, the identical software application may be downloaded to many different devices, and yet the application file is relatively small in size, and does not include a significant amount of data for configuring the application for devices other than the device to which it is downloaded.
Consistent with the present invention, the application is configured to communicate with a server to identify device-specific information required for configuring the application for a specific device, e.g. a Motorola RAZR V3m operating on the Verizon Wireless network in the United States. More specifically, the application is configured to communicate with a database server 120 that identifies device-specific configuration data, and to configure a specific instance of the application on a specific device in accordance with the configuration data. As discussed above, the configuration data may include flags for toggling certain functionality, etc. For example, the configuration data may include a device capability flag for toggling, i.e. turning on or off, a corresponding function of the generic software application as a function of capabilities of a specific device. For example, if the device is capable of transmitting images via the HTTP protocol, the configuration data may include a device capability flag for turning on functionality permitting transmission of images via the HTTP protocol.
The configuration data may include application resource data, such as image data, a textual string, etc. (e.g. for presenting customized menus of options, in various languages, etc.) that are returned from the server in an application resource file. By way of further example, a generic software application capable of displaying high- resolution graphics via the device may be transmitted to the device, but the application may be customized to display only lower resolution graphics according to device capability flags set in the corresponding configuration data transmitted to a specific device for that specific device. Additionally, the configuration data may include an application resource file including data to be used by the application when executing on the specific device. For example, the configuration data may include the lower resolution graphics provided in an application resource file transmitted from the database server 120 to the handset 20. In this manner, the application is generic as to different handsets, but is customizable to create a device-specific version of the software application that is customized for the capabilities, carrier and country of origin of a specific handset. Accordingly, for example, a generic software application capable of transmitting images via either the HTTP or MMS protocols may be transmitted to the device, but the application may be customized according to flags set in a corresponding configuration data file for a specific device so that only MMS is used by the application executing on that device, either because of phone capability, or carrier preference. For example, this may allow a carrier having a business arrangement involving charges for using the device for sending an MMS message, but not an HTTP message, to ensure that charges are captured for all image messages send from the device.
The application is then executed at the handset 20, as shown at step 74. The application first checks for a startup data file stored locally in the memory of the handset 20, as shown at step 76. For example, the application server 50 may be configured to automatically transmit such a startup data file in addition to the application in response to a request from a device for download of the application. By way of example, the startup data file may include parameters such as maximum file name length, whether bitmap and/or *.jpg format images may be displayed on the phone, default application language capabilities, default images and text strings, etc. While the startup data file may initially include default data for rendering the application executable, e.g. to provide limited, generic functionality, the default data in the startup data file does not provide a device-specific version of the application for any specific device. Instead, it is data that is intended to provide settings that are appropriate to allow the application to communicate with the server to obtain configuration logic for a specific device. The default data in the initial startup data file includes flags requiring that the device communicate with the server to obtain configuration data. In certain embodiments, there may not be any settings data in the startup data file during the initial execution of the application.
The application then interrogates the handset's memory and underlying operating system (OS) software to obtain data responses that identify characteristics of the device, as shown at step 78. Accordingly, the application is specially-configured to request data responses that may be used to identify a particular user's handset as a specific model of phone, etc. For example, the data responses sought by interrogation may include: an identification of the operating system used by the particular device, an identification of the version of the operating system being used by the device, an identification of an amount of memory/RAM available on the device, display screen dimensions of the device, color depth of the display screen, a platform identification code (PIC), and MIN, and an MDN. This type of data is typically stored in a memory of such devices, and is retrievable, as will be appreciated by those skilled in the art. Conventional programming techniques may be used to interrogate the device and retrieve such response data.
It should be noted, however, that not all devices will make available all such data responses. For example, the interrogation may return response data indicating only the operating system, the operating system version, available RAM, and screen dimensions, but may not give a definitive answer with respect to other pertinent data such as PIC, MIN, or MDN.
The application then causes transmission of the response data via the communications network 30 to the database server 120, as shown at step 80. This data may be transmitted from the handset 20 to the database server 120 using conventional communications technology.
The handset 20 then receives device-specific configuration settings data back from the database server 120, as shown at step 82. The identification of appropriate device-specific configuration data is discussed below with reference to Figure 3. This data may be transmitted via the communications network 30 from the database server 120 to the handset 20 using conventional communications technology. This configuration data is stored in the startup data file in the local memory of the handset 20 for future reference and use in executing the application on that specific device, as shown at step 84.
Then handset 20 then executes the application as a function of the configuration data received, as shown at step 88. More specifically, the application reads the configuration data from the device's memory and specially configures the generic software application to be a device-specific version of the software application that corresponds to the phone model, carrier and country of origin for the respective handset 20. Accordingly, for example, for a Motorola RAZR V3x handset on the Verizon
Wireless network in the United States, the application settings data could be used to configure the generic software application to (1) require that all outgoing transmission of image files be sent using the MMS protocol and not the HTTP protocol, and to (2) enable control of the camera hardware on the RAZR V3x and specify all camera control information specific to that camera (e.g. supported resolutions, flash control, etc.). Figure 3 is a flow diagram illustrating an exemplary method 100 for configuring a device with a device-specific version of a software application in accordance with the present invention, shown from the server's perspective. In this exemplary embodiment, there are logically distinct servers, as best shown in Figure 1. As shown in Figure 3, the exemplary method begins with the application server's 50 receipt of a request for transmission of the software application to the handset 20, as shown at step 102.
When the application is executed at the handset, the handset is interrogated (see discussion above with reference to steps 74-82 of Figure 2). When the handset is interrogated, response data is sought. The response data identifies identifying characteristics of the phone/device.
The identifying characteristics of the phone may have various forms. One of such forms is an industry-standard platform identification code ("PIC"), which explicitly identifies a specific phone model. The PIC is assigned by the phone's manufacturer and/or an industry-governing entity such that the PIC unique identifies a specific phone model for industry use. The database typically includes many-to-one mappings of platform identification codes to corresponding application settings. Accordingly, phone models having different PICs may be properly configured with identical configuration data. For example, various Motorola RAZR models may have different PICs, yet be capable of using identical application settings.
Alternatively the phone identification parameters may include other information, such as operating system (OS) platform (e.g., JAVA or BREW), OS version, RAM size, display screen dimensions, and display screen color depth. The combination of one of more of these parameters may be used by the database server to reference the database and implicitly identify a corresponding phone model. The database of the database server 120 may then be referenced to identify corresponding application settings that are appropriate for the device 20.
Carrier identification parameters include country of origin and carrier data corresponding to the handset 20.
When the handset is interrogated, response data identifying a PIC or other handset identifying characteristics are sought. The database server 120 receives the response data from the handset, as shown at step 104. Accordingly, the database server 120 references the database stored in its memory and identifies the handset as a function of the response data, as shown at step 106. If the response data includes an industry-standard PIC, the database lookup is straightforward and the phone model of the handset and associated configuration data are easily identified. If the response data does not include a PIC, one or more of the other identifying characteristics must be matched against the database to identify (implicitly or explicitly) a phone model of the handset, and associated configuration data. The phone model may be identified either implicitly or explicitly. For example, the exact phone model may be identified explicitly as the Motorola RAZR V3x. Alternatively, the exact phone model may not be identified explicitly, but rather it may be identified only implicitly, such that it is known only that it is a phone model corresponding to a particular set of configuration data. After the handset is identified, the database server 120 references the database to identify handset- specific configuration data, as shown at step 108. For example, such handset-specific settings may relate to image sizes and MIME types, button graphics to be used, etc. If there is no match for the response data, or if there is only a partial match, the database server 120 may be configured to transmit default configuration data to the handset.
When the handset is interrogated, response data including the respective phone's MIN and/or an MDN is also sought. As will be appreciated by those skilled in the art, the MDN is a conventional (usually 10-digit in the U.S.) telephone number of a type used to ring a specific telephone, and the MIN is a unique 24-bit number assigned by the carrier to each phone it sells or includes in service plans. Accordingly, the response data likely includes an MIN and/or an MDN.
If an MIN or MDN is received from the handset 20 by the database server 120 in step 104, then the database server 120 queries a lookup server 60 (see Figure 1) to identify a carrier and a country of origin corresponding to the MIN and/or MDN provided in the response data, as shown at step 110.
Lookup server 60 is configured to store in its memory a database that associates carrier identity and country of original data with cellular telephone numbers. More specifically, the database associates MIN (Mobile Identification Number) and/or MDN (Mobile Directory Number) numbers with a wireless service carrier and a country of origin. Since each carrier is assigned or associated with specific MDN and MIN numbers for specific regions, carrier and region/country (collectively "country") information can be derived from the MDN and MIN numbers. Accordingly, transmitting a properly formatted query including an MDN and/or MIN to a lookup server 60 will provide a response that includes a carrier identity, e.g. Verizon Wireless, and an identification of the corresponding country of origin, e.g. U.S.A. As discussed above, commercially available services exist to provide the functionality of the lookup server 60.
Accordingly, the database server's query to the lookup server 60 returns to the database server 120 an identification of the carrier and country of origin for the specific handset 20. The database server 120 then references its database to identify carrier- specific configuration data for the carrier and country of origin as function of the MDN and/or MIN provided in the response data, as shown at step 112. For example, if the lookup server 60 identifies Verizon Wireless as the carrier and US as the country of origin for a specific MDN, the database may identify carrier-specific configuration data to configure the generic software application to send all image-based messages using only the MMS protocol, consistent with Verizon's preferences. However, if the lookup server 60 identifies Cingular as the carrier and US as the country of origin for the MDN returned in the response data, the database may specify carrier-specific configuration data to configure the application to send all image-based messages using only the HTTP protocol, consistent with Cingular's preferences.
If there is no MDN/MIN in the response data, or if there is no response or an incomplete response from the lookup server 60, the database server 120 may be configured to transmit default configuration data to the handset, e.g. to specify that all image-based messages are sent via the HTTP protocol.
It should be noted that there may be conflicts between the handset capabilities and the carrier requirements. For example, the phone-specific capabilities may indicate that a specific phone supports access to a Gallery directory on the phone to see images taken with the phone's camera, but the carrier's requirements may be require that this feature be disabled, e.g. because or privacy concerns. In this manner, the carrier- specific configuration data may be given higher priority than the phone-specific configuration data, and result in sending to the device configuration data that will override phone capabilities according to the carrier-specific configuration data.
The database server 120 then transmits the carrier-specific configuration data and the handset-specific configuration data to the handset 20, as shown at step 114, and the method ends, as shown at step 116. This configuration data may include not only device capability flags and carrier capability flags, but also any application resource data including graphics, text or other data other that those included in the original application. This configuration data is received by the handset 20 in step 86 of Figure 2. This configuration data may be transmitted via the communications network 30 from the database server 120 to the handset 20 using conventional communications technology (see Figure 1).
As discussed above with reference to step 88 of Figure 2, the generic software application and device-specific configuration data is then stored in the memory of the device 20. Collectively, the generic software application and the device-specific configuration data provide an executable, device-specific version of the application that corresponds to the identity of the handset on which they are stored in the memory. The handset 20 is thereby configured in accordance with the configuration data sent by the database server 120, as discussed above. Thus, the handset device 20 is configured with a device-specific, e.g., carrier-specific and phone model-specific, version of the application, although only a generic version of the application is transmitted by the application server 50. This post-download configuration of the software application for a specific device eliminates the need for device-specific and carrier-specific builds of a software application. Further, it eliminates the need to enable an application server to download different device-specific versions of a software application intended to provide similar functionality.
Further still, this arrangement allows for a single, centralized update of the database at the database server 120 to accommodate new phones/devices when released. For example, this may be achieved by simply adding a new platform identification code (PIC) to the database as corresponding to an existing set of application settings. The generic software application does not need to be modified in any way, provided that the new phone is capable of using the same configuration data and same software as any existing phone. This may eliminate the need for recertification of the application code, or may simplifying certification because review may be limited to the applicability of the code for a specific PIC/phone, rather than to the functionality of the code itself (which may have been already certified for a different phone model.) This significantly shortens the time-to-market of the software for a new phone/device, and is likely to eliminate consumer dissatisfaction associated with unavailability of software applications for newly released phone models.
Figure 4 is a block diagram showing diagrammatically an exemplary database server 120 in accordance with the present invention. As is well known in the art, the database server of Figure 4 includes a general purpose microprocessor (CPU) 122 and a bus 124 employed to connect and enable communication between the microprocessor 122 and the components of the database server 120 in accordance with known techniques. The database server 120 typically includes a user interface adapter 126, which connects the microprocessor 122 via the bus 124 to one or more interface devices, such as a keyboard 128, mouse 130, and/or other interface devices 132, which can be any user interface device, such as a touch sensitive screen, digitized entry pad, etc. The bus 124 also connects a display device 134, such as an LCD screen or monitor, to the microprocessor 122 via a display adapter 136. The bus 124 also connects the microprocessor 122 to memory 138 and long-term storage 1120 (collectively, "memory") which can include a hard drive, diskette drive, tape drive, etc.
The database server 120 may communicate with other computers or networks of computers, for example via a communications channel, network card or modem 142. The database server 120 may be associated with such other computers in a local area network (LAN) or a wide area network (WAN). The database server 120 may be a server in a client/server arrangement. All of these configurations, as well as the appropriate communications hardware and software, are known in the art.
Software programming code for carrying out the inventive method is typically stored in memory. Accordingly, database server 120 stores in its memory microprocessor executable instructions. These instructions may include microprocessor-executable instructions stored in the memory and executable by the microprocessor to carry out any combination of the steps described above.
Also provided is a computer program product recorded on a computer readable medium for configuring a device with a device-specific version of a generic software application capable of providing desired functionality to a plurality of different devices. This computer program product may be used to configure a server for operation as discussed above. This computer program product may include computer readable code for referencing a database to identify a device-specific set of configuration data that is associated in the database with identifying characteristics data received from the device; and computer readable code for transmitting, via a communications network, the device-specific set of configuration data to the device.
The handset/device may include hardware and components similar to those set forth in Figure 4 and discussed above. Accordingly, the device may include a microprocessor for executing programs, a memory operatively connected to said microprocessor for storing microprocessor-executable instructions, and micro- processor-executable instructions stored in said memory and executable by said microprocessor to carry out any combination of the steps described above.
Also provided is a computer program product recorded on a computer readable medium for configuring a device with a device-specific version of a generic software application capable of providing desired functionality to a plurality of different devices. This computer program product may be used to configure a handset for operation as discussed above. This computer program product may include computer readable code for transmitting data identifying characteristics of the device to a server via a communications network, computer readable code for receiving configuration data from the server via the communications network, and computer readable code for storing the configuration data in the memory of the device. While there have been described herein the principles of the invention, it is to be understood by those skilled in the art that this description is made only by way of example and not as a limitation to the scope of the invention. Accordingly, it is intended by the appended claims, to cover all modifications of the invention which fall within the true spirit and scope of the invention.

Claims

We claim:
1. A method for configuring a device with a device-specific version of a generic software application, the device having a microprocessor and a memory for storing microprocessor-executable instructions, the method comprising the device: storing in the memory an application comprising microprocessor-executable instructions capable of providing desired functionality to a plurality of different devices;transmitting data identifying characteristics of the device to a server via a communications network; receiving configuration data from the server via the communications network; and storing the configuration data in the memory of the device; the application and the configuration data stored in the memory collectively providing an executable device-specific version of the application that corresponds to an identify of the device.
2. The method of claim 1 , wherein the application stored in the memory of the device lacks configuration logic for configuring the application for the device.
3. The method of claim 1 , wherein transmitting data identifying characteristics of the device comprises: interrogating the memory to obtain response data; and transmitting such response data as the data identifying characteristics of the device.
4. The method of claim 1 , wherein the configuration data comprises: a device capability flag configured to toggle a corresponding function of the application as a function of a capabilities of the device.
5. The method of claim 1 , wherein the configuration data comprises: a carrier capability flag configured to toggle a corresponding function of the application as a function of requirements of a wireless service carrier supporting the device.
6. The method of claim 1 , wherein the configuration data comprises: an application resource file comprising data to be used by the application when executing on the device.
7. The method of claim 7, wherein the data comprises at least one of an image file and a textual string.
8. The method of claim 1 , wherein the device comprises a wireless telephone handset.
9. The method of claim 1 , wherein the configuration data configures the device to transmit images using the MM1 protocol.
10. The method of claim 1 , wherein the server comprises a respective memory, and wherein the server references a database stored in the respective memory to identify the configuration data, the configuration data being stored in the database in association with the identifying characteristics.
11. The method of claim 10, wherein the server transmits a query to a lookup server as a function of the identifying characteristics received from the device, the server receiving a response from the lookup server, the configuration data being stored in the database in association with the response.
12. The method of claim 11 , wherein the identifying characteristics received from the device comprises at least one of an MIN and an MDN, and wherein the response comprises at least one of a carrier identity and a country of origin associated with the device.
13. A method for configuring a device with a device-specific version of a generic software application using a server having a microprocessor and a memory, the device having a respective microprocessor and a respective memory for storing microprocessor-executable instructions, the method comprising: storing in the memory of the server a database storing a set of configuration data for each of a plurality of different devices, each set being stored in said database in association with identifying characteristics of a respective device, each set of configuration data being capable of configuring the generic software application stored on the certain device to provide an executable device-specific version of the application that corresponds to an identity of the certain device, the server receiving, via a communications network, data identifying characteristics of a certain device, the data having been transmitted to the server by the certain device; the server referencing the database stored in its memory to identify a device-specific set of configuration data that is associated in the database with the identifying characteristics data received from the certain device; the server transmitting, via the communications network, the device- specific set of configuration data to the certain device.
14. The method of claim 13, further comprising: the server transmitting to a lookup server, via the communications network, a query as a function of the identifying characteristics received from the certain device; and the server receiving a response from the lookup server, at least a portion of the configuration data being stored in the database in association with the response.
15. The method of claim 14, wherein the identifying characteristics received from the certain device comprises at least one of an MIN and an MDN, and wherein the response comprises at least one of a carrier identity and a country of origin for the certain device.
16. The method of claim 13, wherein the configuration data comprises: a device capability flag configured to toggle a corresponding function of the application as a function of a capabilities of the certain device.
17. The method of claim 13, wherein the configuration data comprises: a carrier capability flag configured to toggle a corresponding function of the application as a function of requirements of a wireless service carrier supporting the certain device.
18. The method of claim 13, wherein the configuration data comprises: an application resource file comprising data to be used by the application when executing on the certain device.
19. The method of claim 18, wherein the data comprises at least one of an image file and a textual string.
20. The method of claim 13, wherein the certain device comprises a wireless telephone handset.
21. The method of claim 13, wherein the configuration data configures the certain device to transmit images using the MM1 protocol.
22. A networked computer system for configuring a device with a device- specific version of a generic software application configured to provide desired functionality to a plurality of different devices, the system comprising: a server having a microprocessor and a memory, the server storing in its memory a database storing a set of configuration data for each of the plurality of different devices, each set being stored in said database in association with identifying characteristics of a respective device, each set of configuration data being capable of configuring the generic software application for a certain device to provide an executable device-specific version of the application that corresponds to an identity of the certain device, the server being configured to reference the database to identify a device-specific set of configuration data that is associated in the database with identifying characteristics data received from the certain device, and to transmit the device-specific set of configuration data to the certain device in response to receipt of identifying characteristics data from the certain device; and a device having a respective microprocessor and a respective memory, the device storing in its memory the generic software application, the application being configured to retrieve from the device and transmit to the server data identifying characteristics of the device, and to be executable by the device as a device- specific version of the application that corresponds to an identity of the device, the device-specific version being a function of the configuration data received from the server.
23. The system of claim 22, wherein the server is further configured to: transmit a query to a lookup server as a function of the identifying characteristics received from the certain device; and identify at least a portion of the configuration data as a function of a response to the query received from the lookup server.
24. The method of claim 23, wherein the identifying characteristics received from the certain device comprises at least one of an MIN and an MDN, and wherein the response comprises at least one of a carrier identity and a country of origin for the certain device.
25. A device configurable with a device-specific version of a generic software application capable of providing desired functionality to a plurality of different devices, the device comprising: a microprocessor for executing programs; a memory operatively connected to said microprocessor for storing microprocessor-executable instructions; and micro-processor-executable instructions stored in said memory and executable by said microprocessor to carry out the method of claim 1.
26. A computer program product recorded on a computer readable medium for configuring a device with a device-specific version of a generic software application capable of providing desired functionality to a plurality of different devices, the device having a microprocessor and a memory for storing microprocessor-executable instructions, said computer program product comprising:
computer readable code for transmitting data identifying characteristics of the device to a server via a communications network; computer readable code for receiving configuration data from the server via the communications network; and computer readable code for storing the configuration data in the memory of the device; the application and the configuration data stored in the memory collectively providing an executable device-specific version of the application that corresponds to an identify of the device.
27. A server for configuring a device with a device-specific version of a generic software application for providing desired functionality to a plurality of different devices, the server comprising: a microprocessor for executing programs; a memory operatively connected to said microprocessor for storing microprocessor-executable instructions; and micro-processor-executable instructions stored in said memory and executable by said microprocessor to carry out the method of claim 13.
28. A computer program product recorded on a computer readable medium for configuring a device with a device-specific version of a generic software application capable of providing desired functionality to a plurality of different devices, said computer program product comprising:
computer readable code for referencing a database to identify a device-specific set of configuration data that is associated in the database with identifying characteristics data received from the device; and computer readable code for transmitting, via a communications network, the device-specific set of configuration data to the device.
PCT/US2008/003753 2007-03-23 2008-03-21 System and method for configuring a device with a device-specific version of a software application WO2008118367A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US89668807P 2007-03-23 2007-03-23
US60/896,688 2007-03-23

Publications (1)

Publication Number Publication Date
WO2008118367A1 true WO2008118367A1 (en) 2008-10-02

Family

ID=39788828

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/003753 WO2008118367A1 (en) 2007-03-23 2008-03-21 System and method for configuring a device with a device-specific version of a software application

Country Status (1)

Country Link
WO (1) WO2008118367A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130042300A1 (en) * 2010-04-23 2013-02-14 Giesecke & Devrient Gmbh Method for configuring an application for an end device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1003097A2 (en) * 1998-10-30 2000-05-24 Lucent Technologies Inc. Method and apparatus for storing data as liquid information
US20030028864A1 (en) * 2001-01-29 2003-02-06 Matt Bowen System, method and article of manufacture for successive compilations using incomplete parameters
US20040250238A1 (en) * 2003-06-04 2004-12-09 Singh Uma Kant Cross-platform development for devices with heterogeneous capabilities
US20060168355A1 (en) * 2005-01-24 2006-07-27 Michael Shenfield System and method for provisioning component applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1003097A2 (en) * 1998-10-30 2000-05-24 Lucent Technologies Inc. Method and apparatus for storing data as liquid information
US20030028864A1 (en) * 2001-01-29 2003-02-06 Matt Bowen System, method and article of manufacture for successive compilations using incomplete parameters
US20040250238A1 (en) * 2003-06-04 2004-12-09 Singh Uma Kant Cross-platform development for devices with heterogeneous capabilities
US20060168355A1 (en) * 2005-01-24 2006-07-27 Michael Shenfield System and method for provisioning component applications

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KORHONEN J.: "Introduction to 3G Mobile Communication", ARCHTECH. HOUSE, INC.: NORWOOD, MA, 2003, pages 366 *
VAN ROMPAEY K. ET AL.: "CoWare- a design environmental for heterogeneous hardware/software systems", PROCEEDINGS EURO-DAC '96, DESIGN AUTOMATION CONFERENCE 1996 WITH EURO-VHDL '96 AND EXHIBITION. GENEVA: EURO-DAC, 1996, pages 252 - 257, XP010198607, Retrieved from the Internet <URL:http://www.embedded.eecs.berkeley/edu/Respep/Research/classes/ee249/fall99/ee249/papers/coware.pdf> *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130042300A1 (en) * 2010-04-23 2013-02-14 Giesecke & Devrient Gmbh Method for configuring an application for an end device
US9582684B2 (en) * 2010-04-23 2017-02-28 Giesecke & Devrient Gmbh Method for configuring an application for an end device

Similar Documents

Publication Publication Date Title
RU2422882C2 (en) System, apparatus and method for dynamic setup and configuration of applications
US9332424B2 (en) Centrally managed solution for all device management activities
US8538398B2 (en) Method and system for customizing a user interface of a mobile device
CN101371225B (en) Method and device for operating user equipment in a communication system
US7974613B1 (en) Device capability determination for a mobile device
CN100458689C (en) Controlling settings for mobile telecommunications apparatus
US20020178241A1 (en) Framework for a dynamic management system
US20120144456A1 (en) Method of receiving, storing, and providing device management parameters and firmware updates to application programs within a mobile device
US8270961B2 (en) Method of configuring a mobile telephone to interact with external services
US8387039B2 (en) System and method for customized provisioning of application content
JP2011227912A (en) System for automatic installation of registry base on device and for component handing
US20140220958A1 (en) Network system, terminal customization method, and customization service method
CN103906034A (en) Mobile application providing method and mobile application providing server
KR20140061943A (en) System and method for advertisement message integrated management
KR100663497B1 (en) Service Information Notification Method on Mobile Terminal
US20060277535A1 (en) Downloading software applications
CN101316399A (en) A method, system and device for updating the appearance of a communication terminal
US20080172443A1 (en) Automatic Internet Connection Device
WO2008118367A1 (en) System and method for configuring a device with a device-specific version of a software application
CN100412787C (en) Method and apparatus for obtaining communication settings using an application descriptor
CN106550102A (en) A kind of data processing method, device and SIM
KR100654541B1 (en) Wireless Content Management System and Method
KR100673259B1 (en) How to download wireless content
KR20050032156A (en) Method for processing download descriptor in mobile communication terminal and mobile communication terminal therefor
JP2007515084A (en) Multimedia message transmission system and transmission method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08742193

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: LOSS OF RIGHTS COMMUNICATION (EPO F1205A OF 25.01.10)

122 Ep: pct application non-entry in european phase

Ref document number: 08742193

Country of ref document: EP

Kind code of ref document: A1