EP1421484A2 - Dynamically downloading and executing system services on a wireless device - Google Patents

Dynamically downloading and executing system services on a wireless device

Info

Publication number
EP1421484A2
EP1421484A2 EP02723514A EP02723514A EP1421484A2 EP 1421484 A2 EP1421484 A2 EP 1421484A2 EP 02723514 A EP02723514 A EP 02723514A EP 02723514 A EP02723514 A EP 02723514A EP 1421484 A2 EP1421484 A2 EP 1421484A2
Authority
EP
European Patent Office
Prior art keywords
wireless device
virtual machine
application
system service
receiving
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP02723514A
Other languages
German (de)
English (en)
French (fr)
Inventor
Stephen A. Sprigg
Brian Minear
Mahesh Moorthy
Paul Jacobs
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of EP1421484A2 publication Critical patent/EP1421484A2/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Definitions

  • system services including virtual machines, viewers and plug-ins
  • Java applets run on a device that has a Java virtual machine loaded. Consequently, a device that intends to execute the Java applet will install the Java virtual machine on the device.
  • the virtual machine, or other system service needs to be integrated into the device it is executing on, the installation is performed in advance of trying to download or execute applet or other application wanting to take advantage of the system service.
  • Some devices particularly wireless devices, however, have a constrained environment.
  • Memory including secondary storage and primary for active programs and data, and processing is more scarce than on other larger computer systems. Consequently, it is advantageous to only download or install some system services, such as virtual machines, on an as needed basis. ; Unfortunately, on these constrained devices, system services are required to be installed or loaded into memory and take up valuable resources even when not used. Furthermore, users who want to use applications on devices that do not already have the application's supporting system services are hampered or prevented from doing so because the system services were not already installed on the device.
  • the present invention satisfies the shortcomings in the art by providing a system and method for dynamically downloading and installing system services, such as virtual machines, viewers, plug-ins, flash-players, other executable content or data, in a device based on the needs of the application running on the device.
  • system services such as virtual machines, viewers, plug-ins, flash-players, other executable content or data
  • the present invention involves downloading a system service onto a wireless device to be used with an application also being downloaded.
  • the system service may be downloaded automatically when the application is downloaded without user intervention.
  • the present invention also detects whether a virtual machine is present when an application is loaded into the device's memory for execution and loads and executes the virtual machine, if necessary, so the application may run in the virtual machine's environment.
  • Figure 1 depicts one exemplary embodiment of the environment in which the present invention may be practiced
  • Figure 2 depicts the process involved with downloading an application which uses a system service consistent with an exemplary embodiment of the present invention.
  • Figure 3 depicts the process of loading and executing a virtual machine installed on the wireless device in response to loading an application, which uses the virtual machine.
  • FIG. 1 depicts one exemplary embodiment of the environment in which the present invention may be practiced.
  • the device 100 communicates with the server 105 using a wireless network 125.
  • the device 100 may be a wireless device that may transmit and/or receive data and/or voice.
  • the wireless device 100 may request various pieces of information from the server, including applications 110 and system services 115, such as a virtual machine 120, used by the wireless device.
  • the wireless device 110 may contain a processor and memory, primary and secondary,
  • the wireless device's 100 architecture may also contain an assortment of other components (either not shown or specifically indicated). Such components include, but are not limited to: a display, speaker, microphone, and buttons allowing alphanumeric and symbol inputs.
  • the wireless device may also contain a battery, multiple storage mechanisms, such as ROMs, RAMs, and flash memory, an operating system and a compilation component to aid in the execution of applications, system services, other executable code and manipulation of data, on the device.
  • the server may make a request for the applications and system services for the wireless device from other systems and then download the requested files or may transfer the request to another system for direct transfer of requested files to the wireless device.
  • Fig. 1 is one exemplary environment for the present invention.
  • the device may include other types of systems, including wireless and non- wireless devices.
  • the device may communicate with the server and other systems by a multiple of network types and communication architectures, including wireless and non- wireless, private and public, switched and non-switched, direct links, and any combination thereof.
  • FIG. 2 depicts the process involved with downloading an application which uses a system service consistent with an exemplary embodiment of the present invention.
  • a device such as the wireless device 100, requests an application from the server 105 (Step 200). This request may have been initiated because a user requests a specific application, such as a game, from the wireless device.
  • the device may be configured such that the applications available to the user are not all resident on the device itself, but a representation of those applications that the user may access.
  • This request may be non-user initiated and may include those tasks for system maintenance and for tasks not involving direct user interaction.
  • the request may be for types of files other than applications, including data, system services, or other types of information.
  • the device then receives the application from the server and stores it (Step 205).
  • the server sends the requested application to the device.
  • the application may not be physically stored at the server; yet, the server may receive the request and initiate the application download to the device.
  • the device then checks the application to determine whether the application uses a system service (Step 210).
  • the application may include a reference, or some identifier, indicating that a systems service is used with the application. This reference may be included with the application or associated with the application in some other manner.
  • the application is a Java applet and requires the use of a Java virtual machine (a system service) to execute.
  • the device may contain a software platform, such as BrewTM, described above.
  • the device using the software platform, determines that a Java virtual machine is used by the applet by checking whether there are any references by the applet to an object class indicating a Java virtual machine.
  • each object class is represented by a unique 32-bit identifier and this identifier can be used to determine which object classes are referenced.
  • the device determines if the system service is already installed on the device (Step
  • this is performed by checking the internal tables listing the object classes installed on the device. Using the 32-bit identifier referenced by the downloaded application, the internal tables are checked to determine if the referenced object class is installed, or using the above example, whether the Java virtual machine is already installed on the device.
  • Step 220 If the system service is not installed, then the "no" branch is followed and the system proceeds to download the system service (Step 220). Following the above example, if the Java virtual machine used by the downloaded application is not installed in the device, then the device makes a request to the server to download the Java virtual machine. Additionally, if other system services are needed, they may also be downloaded to the device.
  • the downloading of a system service may be independent of whether the application was downloaded or not (i.e., the downloading of the system service may be initiated because of applications installed at the factory or otherwise transferred onto the device).
  • the system service is already installed in Step 210 or after it is downloaded in Step 220, then the system service is available for when the application is executed. It will be recognized by those skilled in the art that the system service may be downloaded onto the device but not loaded in the device for execution.
  • the invention also embodies the process where the server, or other system, performs the determination as to whether system services are needed and downloads the system service based on whether the device already has the system service installed or not.
  • Figure 3 depicts the process of loading and executing a virtual machine installed on the wireless device in response to loading an application which uses the virtual machine.
  • the process begins by having an application selected from those applications available to the wireless device (Step 300). This selection may be performed by a user wishing to execute the application. The selection, however, may be performed without user intervention by the device or in some other automated manner.
  • the device loads the application into memory (Step 305) for execution. (Depending on the environment in which the application is executing, the loading of the application may be considered part of the application's execution).
  • the loader (the component loading the application for execution) requests the virtual machine services (Step 310).
  • the loader may perform this using an Applications Programming Interface (API) mechanism built in the software platform, described above, identifying the virtual machine using a unique class identifier.
  • API Applications Programming Interface
  • the application may be a Java applet requiring the use of a Java virtual machine to execute on the wireless device.
  • a loader loading the Java applet on the device for execution may request Java virtual machine services by using a BrewTM API mechanism identifying the Java virtual machine by a unique identifier.
  • this identifier is a 32 bit class identifier.
  • the device determines whether the virtual machine system service is loaded into memory (Step 315).
  • the device may do this by checking the object classes loaded into memory. It is preferable that an identifier associated with each object class be used in order to track those system services, applications, executable files, data, other data types or object classes that are loaded.
  • the device or specifically in one embodiment the Brew software platform, makes the determination as to whether the virtual machine requested by the loader is in memory already.
  • Step 320 the device loads the virtual machine. If the virtual machine is not already installed on the wireless device, the virtual machine may be downloaded onto the wireless device from an external source, such as a server or other computer system which has access to the virtual machine software.
  • an external source such as a server or other computer system which has access to the virtual machine software.
  • system service may require an additional execution or start step following its loading.
  • the system service, or virtual machine in this embodiment should be in a state in the device that is accessible to the downloaded application when executed or possibly other processes.
  • Step 325 the application then runs in the virtual machine environment (Step 325). If the system service is not, a virtual machine, the application can now use the system service downloaded for the application. In the Java virtual machine example, the Java applet executes in the Java virtual machine environment.
  • the virtual machine passes system services' requests made by the application or the virtual machine to the software platform (Step 330).
  • figure 3 discusses an application using a virtual machine during execution, that this is for exemplary purposes and the dynamic loading of other system services, other than the virtual machine, other executable content, and data used with applications, are considered within the scope of the present invention.
  • the present invention allows for the dynamic download and execution of system services on a device.
  • an applet requiring a virtual machine is downloaded to a wireless device.
  • a software platform on the device determines that a virtual machine is used by the applet during execution. Without additional user interaction, the virtual machine is downloaded to the wireless device. This allows those applets requiring a virtual machine to be used with devices that don't have the virtual machine already installed.
  • Another embodiment of the present invention allows the dynamic loading of a system service, such as a virtual machine, when an application is being loaded that uses the system service. In this embodiment, it is performed using a unique identifier associated with the system service that allows the device to determine if the system service is loaded.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
EP02723514A 2001-03-19 2002-03-18 Dynamically downloading and executing system services on a wireless device Withdrawn EP1421484A2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US27760701P 2001-03-19 2001-03-19
US277607P 2001-03-19
PCT/US2002/008394 WO2002075527A2 (en) 2001-03-19 2002-03-18 Dynamically downloading and executing system services on a wireless device

Publications (1)

Publication Number Publication Date
EP1421484A2 true EP1421484A2 (en) 2004-05-26

Family

ID=23061612

Family Applications (1)

Application Number Title Priority Date Filing Date
EP02723514A Withdrawn EP1421484A2 (en) 2001-03-19 2002-03-18 Dynamically downloading and executing system services on a wireless device

Country Status (15)

Country Link
EP (1) EP1421484A2 (es)
JP (1) JP2004537086A (es)
KR (1) KR100587749B1 (es)
CN (1) CN1256666C (es)
AR (1) AR035784A1 (es)
AU (1) AU2002254289B2 (es)
BR (1) BR0208206A (es)
CA (1) CA2441870C (es)
HK (1) HK1068981A1 (es)
IL (2) IL157959A0 (es)
MX (1) MXPA03008532A (es)
NZ (1) NZ528277A (es)
PE (1) PE20030003A1 (es)
TW (1) TWI246833B (es)
WO (1) WO2002075527A2 (es)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8737981B2 (en) * 2002-12-19 2014-05-27 Qualcomm Incorporated Downloadable configuring application for a wireless device
FR2849704A1 (fr) * 2003-01-02 2004-07-09 Thomson Licensing Sa Dispositifs et procedes de decision conditionnelle d'execution de services recus et de constitution de messages d'informations associes a des services, et produits associes
US20050060704A1 (en) * 2003-09-17 2005-03-17 International Business Machines Corporation Managing processing within computing environments including initiation of virtual machines
US7552433B2 (en) 2003-11-12 2009-06-23 Hewlett-Packard Development Company, L.P. Non-platform-specific unique indentifier generation
US7509658B2 (en) 2004-01-30 2009-03-24 Research In Motion Limited System and method for adaptable provisioning of generic application content
US8387039B2 (en) 2004-01-30 2013-02-26 Research In Motion Limited System and method for customized provisioning of application content
EP2088505A1 (en) 2004-02-02 2009-08-12 Research In Motion Limited Computer system and method for adaptable provisioning of generic application content
EP1560114A1 (en) * 2004-02-02 2005-08-03 Research In Motion Limited Computer system and method for customized provisioning of application content
US8549166B2 (en) * 2004-03-01 2013-10-01 Qualcomm Incorporated Execution of unverified programs in a wireless, device operating environment
WO2006009287A1 (ja) * 2004-07-20 2006-01-26 Star Game's Corporation 自動変換用プログラムおよびプログラム変換サーバ
JP4579287B2 (ja) * 2005-02-25 2010-11-10 シャープ株式会社 データ管理システム、データ管理方法、サーバ装置、受信装置、制御プログラムおよびそれを記録したコンピュータ読み取り可能な記録媒体
CN101283572A (zh) 2005-03-01 2008-10-08 方瑞公司 对移动设备的应用程序更新部署
JP2006260440A (ja) * 2005-03-18 2006-09-28 Nomura Research Institute Ltd 携帯端末のためのアプリケーションシステム
US8000680B2 (en) * 2006-01-11 2011-08-16 Samsung Electronics Co., Ltd Security management method and apparatus in multimedia middleware, and storage medium therefor
EP2053504A1 (en) * 2007-08-09 2009-04-29 France Telecom System and method for managing processing resources
US8811968B2 (en) 2007-11-21 2014-08-19 Mfoundry, Inc. Systems and methods for executing an application on a mobile device
KR20090132374A (ko) * 2008-06-20 2009-12-30 삼성전자주식회사 디스플레이장치 및 서버와, 디스플레이장치의 시스템 제어프로그램 업데이트 방법
KR200453971Y1 (ko) * 2009-07-10 2011-06-09 (주)아모레퍼시픽 화장품 용기용 볼 투입 장치
CN102487380B (zh) * 2010-12-01 2016-09-07 中兴通讯股份有限公司 桌面虚拟化终端托管方法及系统
US9275162B2 (en) 2011-03-22 2016-03-01 Blackberry Limited Pre-caching web content for a mobile device
US9401917B2 (en) 2011-06-03 2016-07-26 Blackberry Limited Pre-caching resources based on a cache manifest
US9317689B2 (en) * 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
JP5814889B2 (ja) * 2012-08-27 2015-11-17 株式会社コナミデジタルエンタテインメント ゲームの選択制御方法、ゲームソフトウエアの配信制御方法及びゲームソフトウエアの配信サーバ
CN104714890A (zh) * 2015-04-13 2015-06-17 东信和平科技股份有限公司 一种跨平台检测智能卡的方法及系统
US10255092B2 (en) * 2016-02-09 2019-04-09 Airwatch Llc Managed virtual machine deployment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US6349408B1 (en) * 1998-03-23 2002-02-19 Sun Microsystems, Inc. Techniques for implementing a framework for extensible applications
US6571389B1 (en) * 1999-04-27 2003-05-27 International Business Machines Corporation System and method for improving the manageability and usability of a Java environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO02075527A2 *

Also Published As

Publication number Publication date
CN1526096A (zh) 2004-09-01
AR035784A1 (es) 2004-07-14
IL157959A0 (en) 2004-03-28
WO2002075527A2 (en) 2002-09-26
HK1068981A1 (en) 2005-05-06
WO2002075527A3 (en) 2004-04-01
KR100587749B1 (ko) 2006-06-09
TWI246833B (en) 2006-01-01
PE20030003A1 (es) 2003-01-21
KR20030084886A (ko) 2003-11-01
CN1256666C (zh) 2006-05-17
CA2441870C (en) 2010-02-23
IL157959A (en) 2008-07-08
JP2004537086A (ja) 2004-12-09
WO2002075527A9 (en) 2004-06-17
CA2441870A1 (en) 2002-09-26
MXPA03008532A (es) 2004-06-30
AU2002254289B2 (en) 2006-12-07
BR0208206A (pt) 2006-02-21
NZ528277A (en) 2007-06-29

Similar Documents

Publication Publication Date Title
US7165099B2 (en) Dynamically downloading and executing system services on a wireless device
CA2441870C (en) Dynamically downloading and executing system services on a wireless device
AU2002254289A1 (en) Dynamically downloading and executing system services on a wireless device
EP3128421B1 (en) Method, device, and system for achieving java application installation by cloud compilation
EP1584007B1 (en) System to automatically process components on a device
US8225296B2 (en) Method for selecting plug-in code modules in a computing device
RU2339076C2 (ru) Выполнение неверифицированных программ в операционной среде устройства радиосвязи
JPH1083308A (ja) スタブ検索及びローディング・サブシステム、スタブ検索及びローディング方法並びにスタブ検索及びローディング用記録媒体
JP2001522113A (ja) 分散ウェブアプリケーションサーバ
US7444624B2 (en) Method for the secure interpretation of programs in electronic devices
KR20010034514A (ko) 원격 메소드를 식별하는 해시 판정 방법 및 시스템
EP1461695A2 (en) Modified class loaders and their utilisation method
JP2011227912A (ja) デバイス上におけるレジストリベースの自動インストール及びコンポーネントハンドリングのためのシステム
JP2005174347A (ja) ネットワークサービスを実行するための自己インストールソフトウェアコンポーネントを提供するシステム、方法、プログラム、装置
JP4724660B2 (ja) 組み込みシステムの中に統合されるソフトウェアコンポーネントを管理する方法
CN109408256B (zh) 应用调用方法和装置
CN112256351B (zh) Feign组件的实现方法、微服务调用方法及装置
US7958496B2 (en) Method of and system for application service exchange across different execution environments
CN115994004A (zh) 一种应用程序接口调用方法及装置
JP2002538516A (ja) インテリジェント・エイジェントにてダイナミックコマンドの機能を拡張する方法及び装置
CN111694730B (zh) 一种消除错误引用控件资源的方法及装置
CN117170723A (zh) Java代码热处理方法及装置、介质、设备
JP3242376B2 (ja) 暗黙的なエージェント再配置を用いてリモート・ネットワーク・コンポーネントへのアクセスを自動的にローカライズするためのシステムおよび方法
JP4638505B2 (ja) 電子デバイス内の安全なプログラム解釈方法
JPH07168703A (ja) プロセス実行方式

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20031014

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

17Q First examination report despatched

Effective date: 20080215

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20100910