KR20070059189A - A device, method and computer program for running a modular application - Google Patents

A device, method and computer program for running a modular application Download PDF

Info

Publication number
KR20070059189A
KR20070059189A KR1020077009502A KR20077009502A KR20070059189A KR 20070059189 A KR20070059189 A KR 20070059189A KR 1020077009502 A KR1020077009502 A KR 1020077009502A KR 20077009502 A KR20077009502 A KR 20077009502A KR 20070059189 A KR20070059189 A KR 20070059189A
Authority
KR
South Korea
Prior art keywords
module
auxiliary
auxiliary module
memory
electronic device
Prior art date
Application number
KR1020077009502A
Other languages
Korean (ko)
Inventor
티모 라스타스
Original Assignee
노키아 코포레이션
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 노키아 코포레이션 filed Critical 노키아 코포레이션
Priority to KR1020077009502A priority Critical patent/KR20070059189A/en
Publication of KR20070059189A publication Critical patent/KR20070059189A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/264Remote server

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

A method of running a modular application, comprising a primary module for making function calls to one or more secondary modules, on an electronic (5) device, the method comprising: a) detecting a function call from the primary module to a secondary module; b) determining if the secondary module is stored locally at the electronic device; c) if the secondary module is stored locally, accessing the locally stored (10) secondary module to enable the function call, and d) if the secondary module is not stored locally, requesting the secondary module from a remote server, receiving the secondary module from the remote server and storing the secondary module locally and then accessing the locally stored secondary module to enable the function call.

Description

모듈 애플리케이션을 실행하는 장치, 방법 및 컴퓨터 프로그램{A device, method and computer program for running a modular application}A device, method and computer program for running a modular application

본 발명의 실시예들은 모듈 애플리케이션(modular applicaton)에 관한 것이다.Embodiments of the present invention relate to a modular applicaton.

이동 셀룰러 전화 메모리가 완전히 채워진 경우에 사용자는 애플리케이션들을 삭제하여 새로운 애플리케이션을 다운로드하여야 한다. 그러나, 사용자가 차후에 삭제된 애플리케이션을 재사용하기를 원할 경우에 사용자는 상기 삭제된 애플리케이션을 재설치하여야 한다. 사용자가 최초에 애플리케이션을 다운로드하기 위한 비용을 지불한 경우에 사용자는 상기 애플리케이션을 다운로드하기 위한 비용을 다시 지불해야 할 필요가 있을 수 있다. 이는 사용자가 새로운 애플리케이션들을 다운로드하는 것을 단념시키게 한다.If the mobile cellular phone memory is full, the user must delete the applications to download a new application. However, if the user wants to reuse the deleted application later, the user must reinstall the deleted application. If the user initially paid for downloading the application, the user may need to pay again for downloading the application. This discourages the user from downloading new applications.

또한, 사용자가 한 셀룰러 전화에 다수의 애플리케이션을 다운로드하기 위한 비용을 지불한 경우에 사용자가 대체용 이동 셀룰러 전화에 동일한 애플리케이션들을 다운로드하기 위한 비용을 지불해야 한다면 사용자는 새로운 대체용 이동 셀룰러 전화를 구입하는 것을 단념하게 된다.In addition, if the user pays for downloading multiple applications on one cellular phone, and the user has to pay for downloading the same applications on an alternative mobile cellular phone, the user purchases a new replacement mobile cellular phone. You give up on doing.

본 발명의 한 실시예에 의하면, 전자 장치를 통해, 하나 이상의 보조 모듈들에 대한 기능 호출들을 수행하는 주 모듈을 포함하는 모듈 애플리케이션을 실행하는 방법이 제공되며, 상기 방법은,According to an embodiment of the present invention, there is provided a method of executing a module application including a main module for performing function calls to one or more auxiliary modules through an electronic device, the method comprising:

a) 상기 주 모듈로부터 보조 모듈로의 기능 호출을 검출하는 단계;a) detecting a function call from the main module to the auxiliary module;

b) 상기 보조 모듈이 상기 전자 장치에 국부적으로 저장되어 있는 지를 결정하는 단계;b) determining whether the auxiliary module is stored locally in the electronic device;

c) 상기 보조 모듈이 국부적으로 저장되어 있는 경우에 상기 기능 호출을 가능하게 하도록 상기 국부적으로 저장된 보조 모듈에 액세스하는 단계; 및c) accessing the locally stored auxiliary module to enable the function call when the auxiliary module is stored locally; And

d) 상기 보조 모듈이 국부적으로 저장되어 있지 않은 경우에 원격 서버로부터 상기 보조 모듈을 요구하고, 상기 원격 서버로부터 상기 보조 모듈을 수신하며 상기 보조 모듈을 국부적으로 저장한 다음에 상기 기능 호출을 가능하게 하도록 상기 국부적으로 저장된 보조 모듈에 액세스하는 단계를 포함하는 것을 특징으로 한다.d) requesting the auxiliary module from a remote server if the auxiliary module is not stored locally, receiving the auxiliary module from the remote server and locally storing the auxiliary module to enable the function call. And accessing said locally stored auxiliary module.

본 발명의 다른 한 실시예에 의하면, 보조 모듈들에 대한 기능 호출들을 수행하기 위한 주 모듈을 포함하는 모듈 애플리케이션을 실행하는 전자 장치가 제공되고, 상기 전자 장치는, 상기 주 모듈 및 하나 이상의 보조 모듈들을 저장하는 메모리; 상기 주 모듈로부터 한 보조 모듈로의 기능 호출을 검출하는 검출 수단; 원격 서버로부터 상기 메모리에 저장되어 있지 않은 보조 모듈을 요구하는 요구 수단; 상기 원격 서버로부터 요구된 보조 모듈을 수신하고 상기 메모리 내에 상기 보조 모듈을 자동으로 저장하는 수신 수단; 및 상기 메모리에 저장된 보조 메모리에 액세스함으로써 상기 주 모듈로부터의 기능 호출을 가능하게 하는 제어 수단을 포함하는 것을 특징으로 한다.According to another embodiment of the present invention, there is provided an electronic device for executing a module application including a main module for performing function calls to auxiliary modules, wherein the electronic device comprises the main module and one or more auxiliary modules. Memory for storing the sound; Detecting means for detecting a function call from the main module to one auxiliary module; Requesting means for requesting an auxiliary module not stored in said memory from a remote server; Receiving means for receiving a requested auxiliary module from the remote server and automatically storing the auxiliary module in the memory; And control means for enabling a function call from the main module by accessing the auxiliary memory stored in the memory.

본 발명의 다른 한 실시예에 의하면, 보조 모듈들에 대한 기능 호출들을 수행하기 위한 주 모듈을 포함하는 모듈 애플리케이션을 제어하는 컴퓨터 프로그램이 제공되며, 상기 컴퓨터 프로그램은, 프로세서 내로 로드될 경우에, 주 모듈로부터 보조 모듈로의 기능 호출을 검출하는 검출 수단; 국부 저장을 위해 원격 서버로부터 국부적으로 저장되어 있지 않은 보조 모듈을 요구하는 요구 수단; 및 국부적으로 저장된 보조 모듈에 액세스함으로써 기능 호출을 가능하게 하는 제어 수단을 제공하는 것을 특징으로 한다.According to another embodiment of the present invention, there is provided a computer program for controlling a module application including a main module for making function calls to auxiliary modules, which computer program, when loaded into a processor, Detecting means for detecting a function call from the module to the auxiliary module; Requesting means for requesting an auxiliary module not locally stored from the remote server for local storage; And control means for enabling a function call by accessing a locally stored auxiliary module.

본 발명의 다른 한 실시예에 의하면, 하나 이상의 보조 모듈들에 대한 기능 호출들을 수행하는 주 모듈을 포함하는 모듈 애플리케이션을 실행하는 시스템이 제공되며, 상기 시스템은, 하나 이상의 클라이언트 장치들 및 하나의 서버를 포함하며, 각각의 클라이언트 장치는, 하나 이상의 보조 모듈들에 대한 기능 호출을 수행하는데 유용한 주 모듈을 저장하는 메모리; 원격 서버로부터 상기 메모리에 저장되어 있지 않은 보조 모듈을 요구하는 요구 수단; 상기 원격 서버로부터 요구된 보조 모듈을 수신하고 상기 메모리에 상기 보조 모듈을 자동으로 저장하는 수신 수단; 및 상기 메모리에 저장된 보조 모듈에 액세스함으로써 기능 호출을 가능하게 하는 제어 수단을 포함하며, 상기 서버는, 각각의 보조 모듈이 하나 이상의 호출가능한 기능들을 포함하는 복수 개의 보조 모듈을 저장하는 메모리; 클라이언트 장치로부터 보조 모듈을 식별하는 요구를 수신하는 수신기; 상기 메모리로부터 상기 식별된 보조 모듈을 획득하는 메모리 액세스 수단; 및 상기 클라이언트 장치로 상기 획득된 보조 모듈을 전송하는 송신기를 포함하는 것을 특징으로 한다.According to another embodiment of the present invention, there is provided a system for executing a module application comprising a main module for making functional calls to one or more auxiliary modules, the system comprising one or more client devices and one server. Each client device comprising: a memory storing a primary module useful for making a function call to one or more auxiliary modules; Requesting means for requesting an auxiliary module not stored in said memory from a remote server; Receiving means for receiving a requested auxiliary module from the remote server and automatically storing the auxiliary module in the memory; And control means for enabling a function call by accessing a subsidiary module stored in the memory, the server comprising: a memory in which each subsidiary module stores a plurality of subsidiary modules including one or more callable functions; A receiver for receiving a request to identify an auxiliary module from a client device; Memory access means for obtaining the identified auxiliary module from the memory; And a transmitter for transmitting the obtained auxiliary module to the client device.

본 발명의 다른 한 실시예에 의하면, 클라이언트 장치가 복수 개의 보조 모듈에 대한 기능 호출들을 수행하기 위한 주 모듈을 포함하는 모듈 애플리케이션을 실행할 수 있게 하는 서버가 제공되며, 상기 서버는, 하나 이상의 모듈 애플리케이션들에 대하여 복수 개의 보조 모듈을 저장하는 메모리로서, 각각의 보조 모듈은 하나 이상의 호출가능한 기능들을 포함하는 메모리; 클라이언트 장치로부터 보조 모듈을 식별하는 요구를 수신하는 수신기; 상기 메모리로부터 상기 식별된 보조 모듈을 획득하는 메모리 액세스 수단; 및 상기 클라이언트 장치로 상기 획득된 보조 모듈을 전송하는 송신기를 포함하는 것을 특징으로 한다.According to another embodiment of the present invention, a server is provided that enables a client device to execute a module application including a main module for performing function calls for a plurality of auxiliary modules, wherein the server comprises one or more module applications. Memory for storing a plurality of auxiliary modules, each auxiliary module including one or more callable functions; A receiver for receiving a request to identify an auxiliary module from a client device; Memory access means for obtaining the identified auxiliary module from the memory; And a transmitter for transmitting the obtained auxiliary module to the client device.

본 발명의 더 나은 이해를 위해, 지금부터 첨부도면들이 단지 예로써만 참조될 것이다.For a better understanding of the invention, the accompanying drawings will now be referred to by way of example only.

도 1은 모듈 애플리케이션을 개락적으로 보여주는 도면이다.1 is a schematic view of a module application.

도 2는 모듈 애플리케이션을 실행하기 위한 시스템을 보여주는 도면이다.2 shows a system for executing a module application.

도 3은 모듈 애플리케이션을 실행하는 방법을 보여주는 도면이다.3 is a diagram illustrating a method of executing a module application.

도 1에는 주 모듈(P; 4) 및 복수 개의 보조 모듈(6)을 포함하는 모듈 애플리케이션(2)이 개략적으로 도시되어 있다. 상기 보조 모듈들(6)은 보조 모듈(A), 보조 모듈(B), 보조 모듈(C) 및 보조 모듈(X)을 포함한다. 상기 보조 모듈들(6) 각각 은 상기 주 모듈(4)에 의해 호출가능한 하나 이상의 기능들을 포함한다. 상기 모듈 애플리케이션은 상기 보조 모듈들에 대한 기능 호출들을 수행하는 주 모듈(4)에 의해 실행된다. 예를 들면, 상기 주 모듈(4)이 특정 기능(x)을 호출할 경우에 상기 주 모듈(4)은 기능(x), 및 기능(x)을 포함하는 보조 모듈(X)을 식별한다.1 schematically shows a module application 2 comprising a main module P 4 and a plurality of auxiliary modules 6. The auxiliary modules 6 comprise an auxiliary module A, an auxiliary module B, an auxiliary module C and an auxiliary module X. Each of the auxiliary modules 6 includes one or more functions callable by the main module 4. The module application is executed by the main module 4 which makes function calls to the auxiliary modules. For example, when the main module 4 calls a specific function x, the main module 4 identifies the function x and the auxiliary module X comprising the function x.

상기 주 모듈(4)은 아이콘과 같은 애플리케이션의 그래픽 표현을 나타내는데 사용되는 코드, 및 상기 아이콘이 선택될 경우에 애플리케이션을 개시하는데 사용되는 코드를 포함하는 것이 전형적이다. 그러므로, 상기 주 모듈(4)은 비교적 작은 크기를 지닌다. 애플리케이션의 기능은 주로 상기 보조 모듈들(6)에 의해 제공되며 상기 보조 모듈들(6)이 포함하고 있는 기능들은 상기 주 모듈(4)에 의해 호출된다. 상기 보조 모듈들(6)은 다이내믹 링크 라이브러리(Dynamic Link Library; DLL)들이다.The main module 4 typically includes code used to represent a graphical representation of the application, such as an icon, and code used to launch the application when the icon is selected. Therefore, the main module 4 has a relatively small size. The function of the application is mainly provided by the auxiliary modules 6 and the functions contained in the auxiliary modules 6 are called by the main module 4. The auxiliary modules 6 are Dynamic Link Libraries (DLLs).

도 2에는 모듈 애플리케이션(2)을 실행하기 위한 시스템(11)이 도시되어 있다. 상기 시스템(11)은 하나 이상의 클라이언트 장치들(10) 및 하나의 원격 서버(30)를 포함한다. 상기 클라이언트 장치들(10) 각각은 프로세서(12), 메모리(14), 디스플레이(16) 및 입력 장치(18)를 포함하는 사용자 인터페이스(18) 및 상기 서버(30)와의 통신을 수행하기 위한 입력/출력 인터페이스(20)를 포함한다. 도 2에 도시된 예에서, 클라이언트 장치(101)는 핸더 포터블 이동 셀룰러 전화이고 상기 입력/출력 인터페이스(20)는 무선 송수신기에 의해 제공된다. 이러한 무선 송수신기는 셀룰러 무선 통신 네트워크를 통해 동작하게 되는 것이 전형적이지만, 상 기 무선 송수신기는 블루투스 네트워크 또는 WLAN 네트워크와 같은 애드-혹 무선 네트워크를 통해 동작하는 것이 가능하다.2 shows a system 11 for executing a module application 2. The system 11 includes one or more client devices 10 and one remote server 30. Each of the client devices 10 has a user interface 18 including a processor 12, a memory 14, a display 16 and an input device 18 and inputs for communicating with the server 30. / Output interface 20. In the example shown in FIG. 2, the client device 10 1 is a handheld portable mobile cellular telephone and the input / output interface 20 is provided by a wireless transceiver. While such a radio transceiver is typically operated through a cellular radio communication network, it is possible that the radio transceiver operates through an ad-hoc radio network such as a Bluetooth network or a WLAN network.

상기 프로세서(12)는 상기 메모리(14)로부터 판독되며 상기 메모리(14)로 기록되도록 접속된다. 상기 프로세서(12)는 또한 상기 입력/출력 인터페이스(20)로부터 입력 데이터를 수신하고 상기 입력/출력 인터페이스(20)에 출력 데이터를 제공하도록 접속된다. 그 외에도, 상기 프로세서(12)는 상기 입력 장치(18)로부터 입력 커맨드들을 수신하고 커맨드들을 상기 디스플레이(16)에 제공한다. 도 2에 도시된 예에서, 상기 이동 셀룰러 전화(10)는 가입자 식별 모듈(SIM; Subscriber Identity Module) 카드(22)를 포함한다. 이는 부호화 엔진들 및 국제 이동통신 가입자 식별정보(International Mobile Subsciber Identity; IMSI)와 같이 사용자를 식별하는 데이터를 포함하는 스마트 카드이다. 상기 가입자 식별 모듈 카드(22)는 상기 프로세서(12)에 접속된다.The processor 12 is connected to be read from and written to the memory 14. The processor 12 is also connected to receive input data from the input / output interface 20 and to provide output data to the input / output interface 20. In addition, the processor 12 receives input commands from the input device 18 and provides the commands to the display 16. In the example shown in FIG. 2, the mobile cellular telephone 10 includes a Subscriber Identity Module (SIM) card 22. This is a smart card that contains data identifying the user, such as encoding engines and International Mobile Subsciber Identity (IMSI). The subscriber identity module card 22 is connected to the processor 12.

상기 메모리(14)는 상기 프로세서(12) 내로 로드될 경우에 상기 장치(10)의 동작을 제어하는 컴퓨터 프로그램 명령어들(24)을 포함한다. 그 외에도, 상기 메모리(14)는 상기 프로세서(12) 내로 로드될 경우에 사용자가 보조 모듈들(6)로부터 기능들을 호출하는 모듈 애플리케이션을 개시를 할 수 있게 하는 주 모듈(4)을 포함한다.The memory 14 includes computer program instructions 24 that control the operation of the device 10 when loaded into the processor 12. In addition, the memory 14 includes a main module 4 which, when loaded into the processor 12, allows a user to launch a module application that calls functions from the auxiliary modules 6.

상기 서버(30)는 메모리(34)에 기록되고 메모리(34)로부터 판독되도록 접속되는 프로세서(32)로서 입력/출력 인터페이스(Tx/Rx; 33)로부터 입력 데이터를 수신하고 상기 입력/출력 인터페이스(33)로 출력 데이터를 제공하도록 접속된다. 상 기 메모리(34)는 상기 프로세서(32) 내로 로드될 경우에 상기 서버(30)의 동작을 제어하는 컴퓨터 프로그램 명령어들(36)을 포함한다.The server 30 is a processor 32 which is recorded in the memory 34 and connected to be read from the memory 34 and receives input data from the input / output interface (Tx / Rx) 33 and the input / output interface ( 33) to provide output data. The memory 34 includes computer program instructions 36 that control the operation of the server 30 when loaded into the processor 32.

모듈 애플리케이션(2)이 장치(10) 상에서 실행할 수 있게 하려면, 상기 장치(10)가 자신의 메모리(14)에 적어도 주 모듈(4)을 저장하고 있어야 한다. 이는 상기 애플리케이션(2)이 개시될 수 있게 한다. 상기 장치(10)의 메모리(14)가 상기 모듈 애플리케이션(2)에 필요한 보조 모듈들(6)을 저장하고 있지 않은 경우에, 상기 보조 모듈들(6)은 필요에 따라 원격 서버(30)로부터 상기 장치(10)의 메모리(14)로 다운로드될 수 있다. 다시 말하면, 상기 주 모듈(4)이 예를 들면 상기 보조 모듈(A)에 포함된 기능을 호출할 경우에, 단지 보조 모듈(A)만이 상기 원격 서버(30)로부터 상기 장치(10)의 메모리(14)로 다운로드된다. 이는 상기 모듈 애플리케이션(2)이 한 장치로부터 다른 한 장치로 용이하게 전송될 수 있게 하는데, 그 이유는 처음에 단지 상기 주 모듈(4)만이 전송될 필요가 있으며 상기 보조 모듈들(6)이 필요에 따라 상기 원격 서버(30)로부터 다운로드되기 때문이다. 다른 한 이점은 상기 장치(10)의 메모리(14)가 상기 모듈 애플리케이션(2)을 실행하는데 반드시 필요하지 않은 코드를 저장할 필요가 없다는 것이다. 상기 애플리케이션의 모듈 특성 때문에, 호출되는 기능들을 포함하는 단지 보조 모듈들(6)만이 상기 장치들의 메모리(14)에 다운로드됨으로써 메모리 공간을 절약한다.In order for the module application 2 to be able to run on the device 10, the device 10 must have stored at least the main module 4 in its memory 14. This allows the application 2 to be started. If the memory 14 of the device 10 does not store the auxiliary modules 6 required for the module application 2, the auxiliary modules 6 may be stored from the remote server 30 as necessary. It can be downloaded to the memory 14 of the device 10. In other words, when the main module 4 calls a function included in, for example, the sub-module A, only the sub-module A is the memory of the device 10 from the remote server 30. It is downloaded to 14. This allows the module application 2 to be easily transmitted from one device to another, since only the main module 4 only needs to be transmitted at first and the auxiliary modules 6 are needed. This is because it is downloaded from the remote server 30 according to. Another advantage is that the memory 14 of the device 10 does not need to store code that is not necessary to execute the module application 2. Because of the modular nature of the application, only auxiliary modules 6 containing the called functions are downloaded into the memory 14 of the devices, thereby saving memory space.

도 2의 예에서, 상기 모듈 애플리케이션(2)은 상기 장치(10)의 메모리(14)를 통해 그리고 상기 서버(30)의 메모리(34)를 통해 배포된다. 상기 모듈 애플리케이션(2)의 개시에 필요한 주 모듈(4)은 상기 메모리(14)에 저장된다. 상기 애플리케 이션을 실행할 경우에, 상기 주 모듈(4)에 의해 액세스되는 보조 모듈들(A,B,C,X)은 상기 메모리(34)에 영구적으로 저장된다.In the example of FIG. 2, the module application 2 is distributed through the memory 14 of the device 10 and through the memory 34 of the server 30. The main module 4 necessary for the initiation of the module application 2 is stored in the memory 14. When executing the application, auxiliary modules A, B, C, and X accessed by the main module 4 are permanently stored in the memory 34.

상기 모듈 애플리케이션(2)이 개시될 경우에, 상기 주 모듈(4)은 상기 메모리(14)로부터 상기 프로세서(12) 내로 로드된다. 이러한 예에서, 상기 주 모듈(4)은 상기 보조 모듈(X)에 포함되어 있는 기능(x)을 호출한다. 필요한 보조 모듈(X)이 상기 장치(10)의 메모리(14)에 국부적으로 저장되어 있지 않지만, 상기 장치(10)는 상기 원격 서버(30)의 메모리(34)로부터 상기 보조 모듈(X)의 카피를 획득할 수 있다. 일단 획득된 경우에, 상기 보조 모듈(X)은 상기 장치(10)의 국부 메모리(14)에 저장되며, 기능(x)이 호출된다. 미래에는, 상기 주 모듈(4)이 상기 기능(x)을 호출할 경우에, 상기 국부 메모리(14)에 저장된 보조 모듈(X)이 액세스되고 상기 서버(30)의 메모리(34)로부터 상기 보조 모듈(X)을 다운로드해야 할 필요 없이 상기 기능이 수행된다.When the module application 2 is started, the main module 4 is loaded from the memory 14 into the processor 12. In this example, the main module 4 calls the function x contained in the auxiliary module X. Although the necessary auxiliary module (X) is not stored locally in the memory (14) of the device 10, the device (10) from the memory 34 of the remote server 30 of the auxiliary module (X) A copy can be obtained. Once obtained, the auxiliary module X is stored in the local memory 14 of the device 10 and the function x is called. In the future, when the main module 4 calls the function x, the auxiliary module X stored in the local memory 14 is accessed and the auxiliary from the memory 34 of the server 30. The function is performed without the need to download module X.

도 3에는 모듈 애플리케이션을 실행하는 방법이 더 상세하게 도시되어 있다. 단계(60)에서, 상기 장치(10)는 상기 주 모듈(4)에 의한 기능 호출을 검출한다. 상기 기능 호출은 상기 기능 및 상기 호출된 기능을 포함하는 보조 모듈을 식별한다. 이러한 예에 대한 목적들로, 상기 보조 모듈(X)에 포함되어 있는 기능(x)이 호출된다고 가정하기로 한다. 상기 주 모듈(4)에 의한 기능 호출에 따라 x 및 X가 식별된다.3 illustrates a method of executing a module application in more detail. In step 60, the device 10 detects a function call by the main module 4. The function call identifies an auxiliary module containing the function and the called function. For the purposes of this example, it will be assumed that the function x contained in the auxiliary module X is called. According to the function call by the main module 4, x and X are identified.

상기 호출된 기능을 포함하는 보조 모듈(6)이 국부적으로 저장되어 있는지를 상기 장치(10)가 결정하는 단계(62)로 프로세스가 이동한다. 상기 보조 모듈(6)이 국부적으로 저장되어 있는 경우에 단계(82)로 프로세스가 점프한다. 그러나, 상기 보조 모듈(6)이 국부적으로 저장되어 있지 않은 경우에 상기 보조 모듈(6)에 대한 요구(65)가 상기 서버(30)에 전송되는 단계(64)로 프로세스가 이동한다. 상기 요구(65)는 호출된 기능을 포함하는 보조 모듈(6)을 식별한다. 현재의 예를 계속하면, 상기 요구(65)는 상기 보조 모듈(X)을 식별하게 된다. 상기 요구(65)는 또한 상기 장치(10)가 무료로 요구된 보조 모듈(6)을 다운로드할 자격이 있는지 여부를 결정하도록 상기 서버(30)에서 사용되는 가입 정보를 포함하는 것이 전형적이다. 이러한 가입 정보는 애플리케이션을 사용할 수 있게 하는 라이센스가 최초로 발급된 코드일 수 있지만 상기 가입 정보는 국제 이동통신 가입자 식별정보(IMSI)와 같은 상기 장치(10)의 사용자를 식별하는 정보 또는 국제 이동기기 식별정보(IMEI; International Mobile Equipment Identity)와 같은 상기 장치(10)를 식별하는 정보를 또한 포함할 수 있다.The process moves to step 62 in which the device 10 determines whether the auxiliary module 6 containing the called function is stored locally. If the auxiliary module 6 has been stored locally, the process jumps to step 82. However, if the auxiliary module 6 is not stored locally, the process moves to step 64 where a request 65 for the auxiliary module 6 is sent to the server 30. The request 65 identifies the auxiliary module 6 containing the called function. Continuing the present example, the request 65 will identify the auxiliary module X. The request 65 also typically includes subscription information used at the server 30 to determine whether the device 10 is entitled to download the required auxiliary module 6 for free. This subscription information may be a code originally issued with a license to enable the application, but the subscription information may be information identifying an user of the device 10, such as International Mobile Subscriber Identity (IMSI) or International Mobile Device Identification. It may also include information identifying the device 10 such as information (IMEI; International Mobile Equipment Identity).

상기 서버(30)의 메모리(34)는 가입 데이터용으로 데이터베이스와 같은 데이터 구조(38)를 저장한다. 상기 가입 데이터는 각각의 클라이언트 장치(10)에 대한 액세스 권한을 식별한다. 즉, 상기 가입 데이터는 클라이언트 장치(10)가 상기 서버(30)의 메모리(34)로부터 특정의 보조 모듈(6)을 어떤 조건하에서 다운로드할 수 있는지를 식별한다. 상기 서버의 메모리(34)는 하나 이상의 모듈 애플리케이션들(2)에 대한 모든 보조 모듈들(6)을 저장하는 것이 전형적이다.The memory 34 of the server 30 stores a data structure 38, such as a database, for subscription data. The subscription data identifies access rights for each client device 10. That is, the subscription data identifies under what conditions the client device 10 can download a particular auxiliary module 6 from the memory 34 of the server 30. The memory 34 of the server typically stores all auxiliary modules 6 for one or more module applications 2.

예를 들면, 장치(10)의 사용자가 특정의 애플리케이션(2)을 사용할 수 있는 라이센스를 전혀 지니지 않을 수 있지만, 다른 한 사용자로부터 주 모듈(4)을 수신 할 수 있다. 이러한 경우에, 사용자가 상기 애플리케이션(2)을 사용하려고 할 경우에, 상기 주 모듈(4)은 사용자의 장치(10) 상에 존재하지 않게 되는 보조 모듈들(6) 중 한 보조 모듈에 대한 기능 호출을 수행하게 된다. 그러므로, 사용자의 장치는 차후에 원격 서버(30)에 액세스하여 호출된 기능을 포함하는 보조 모듈(6)을 획득하게 된다. 그러나, 상기 서버(30)는 이러한 애플리케이션에 대하여 이러한 사용자에 관한 가입 데이터를 전혀 지니지 않게 되며 사용자가 라이센스를 구입할 때까지 상기 보조 모듈을 제공하지 않게 된다. 일단 사용자가 라이센스를 구입하게 되면, 상기 라이센스는 상기 가입 데이터에 기록된다.For example, a user of device 10 may not have a license to use a particular application 2 at all, but may receive the main module 4 from another user. In this case, if the user wants to use the application 2, the main module 4 is a function for one of the auxiliary modules 6 which is not present on the user's device 10. Will make the call. Therefore, the user's device will subsequently access the remote server 30 to obtain an auxiliary module 6 containing the called function. However, the server 30 will not have any subscription data about this user for these applications and will not provide the auxiliary module until the user purchases a license. Once a user purchases a license, the license is recorded in the subscription data.

사용자가 다른 타입의 라이센스들을 구입하는 것이 가능할 수 있다. 예를 들면, "장치 라이센스"가 구입될 수도 있고 "사용자 라이센스"가 구입될 수도 있다. 장치 라이센스는 특정 장치(10)가 여러 번 특정 모듈 애플리케이션(2)과 연관된 보조 모듈들(6)을 다운로드할 수 있게 한다. "사용자 라이센스"는 사용자가 임의의 장치(10)에 여러 번 특정 애플리케이션(2)의 보조 모듈들(6)을 다운로드할 수 있게 한다. 상기 가입 데이터가 장치 라이센스에 관한 경우에, 상기 가입 데이터는 특정 장치(10)가 특정한 보조 모듈들(6)에 액세스할 수 있게끔 기록된다. 그러므로, 상기 장치(10)는 상기 요구(65)에서 식별자를 사용하여 자체적으로 식별할 필요가 있다. 사용자 라이센스의 경우에, 상기 가입 데이터는 IMSI와 같은 사용자 식별자를 특정한 보조 모듈들(6)과 연관시키고 상기 장치(10)에 의해 전송된 요구(65)는 사용자 식별자를 포함할 필요가 있다.It may be possible for a user to purchase other types of licenses. For example, a "device license" may be purchased or a "user license" may be purchased. The device license allows a particular device 10 to download auxiliary modules 6 associated with a particular module application 2 several times. "User license" allows a user to download auxiliary modules 6 of a specific application 2 multiple times on any device 10. In the case where the subscription data relates to a device license, the subscription data is recorded such that the specific device 10 can access specific auxiliary modules 6. Therefore, the device 10 needs to identify itself using an identifier in the request 65. In the case of a user license, the subscription data associates a user identifier, such as IMSI, with certain auxiliary modules 6 and the request 65 sent by the device 10 needs to include a user identifier.

단계(66)에서, 상기 서버(30)에서, 상기 서버(30)는 상기 메모리(34)의 데이 터 구조(38)에 액세스하며 상기 가입 데이터를 검사한다. 예를 들면, 상기 요구(65)가 상기 가입 데이터 내에 상기 요구된 보조 모듈(6)과 연관된 식별자를 포함하기 때문에 상기 요구(65)가 권한부여될 경우에, 단계(70)로 프로세스가 이동한다. 그러나, 상기 가입 데이터가 상기 요구(6)에 대한 권한을 부여하지 않을 경우에, 단계(68)에서 상기 서버가 상기 장치(10)와 교섭하여 상기 장치(10)가 모듈 애플리케이션(2)에 대한 라이센스를 구입할 수 있게 한다. 라이센스가 구입되면, 단계(70)로 프로세스가 이동한다.In step 66, at the server 30, the server 30 accesses the data structure 38 of the memory 34 and checks the subscription data. For example, if the request 65 is authorized because the request 65 includes an identifier associated with the requested auxiliary module 6 in the subscription data, the process moves to step 70. . However, if the subscription data does not authorize the request 6, in step 68 the server negotiates with the device 10 so that the device 10 may not be able to access the module application 2. Make a license available for purchase. Once the license is purchased, the process moves to step 70.

단계(70)에서, 상기 서버(30)는 요구된 보조 모듈(6)의 크기를 식별하고 상기 크기를 나타내는 메시지를 상기 장치(10)에 전송한다. 상기 장치(10)는 단계(72)에서 상기 요구된 보조 모듈을 저장하기 위한 충분한 공간이 상기 장치(10)의 메모리(14)에 존재하는지의 여부를 결정한다. 충분한 공간이 존재할 경우에 단계(76)로 프로세스가 진행한다. 충분한 공간이 존재하지 않을 경우에 상기 장치(10)는 단계(74)에서 충분한 공간을 자동으로 생성한다. 이는 삭제를 위해 상기 장치(10)의 메모리(14) 내에 저장된 보조 모듈들을 선택하고 상기 보조 모듈들을 삭제함으로써 이루어진다.In step 70, the server 30 identifies the size of the required auxiliary module 6 and sends a message indicating the size to the device 10. The device 10 determines in step 72 whether there is enough space in the memory 14 of the device 10 to store the required auxiliary module. If there is enough space, the process proceeds to step 76. If there is not enough space, the device 10 automatically generates sufficient space in step 74. This is done by selecting the auxiliary modules stored in the memory 14 of the device 10 for deletion and deleting the auxiliary modules.

다수의 다른 기준은 삭제를 위해 보조 모듈들을 선택하는데 사용될 수 있다. 예를 들면, 보조 모듈이 액세스되는 빈도는 가장 빈도가 낮게 액세스된 보조 모듈 또는 모듈들을 삭제하는데 사용될 수 있다. 다른 한 예로서, 보조 모듈이 마지막으로 액세스된 이후의 시간 주기는 가장 많은 시간 주기 동안 사용되지 않은 보조 모듈 또는 모듈들을 삭제하는데 사용될 수 있다. 보조 모듈이 액세스되는 빈도 또는 보조 모듈이 액세스된 이후의 시간 주기를 결정하기 위해, 상기 메모리(14)에 저장된 보조 모듈들에 이루어진 액세스들을 기록하는 것이 필요하다. 이는 특정 시간 주기 내에 상기 메모리(14)에 저장된 보조 모듈들(6) 각각에 대한 액세스들을 기록하고 또한 보조 모듈에 대한 최종 액세스가 이루어진 일자를 기록하는 데이터 구조(25)를 상기 메모리(14) 내에 유지시킴으로써 달성된다. 또한, 특정한 보조 모듈들(6)을 "보호받아야 하는 것"으로서 플래깅(flagging)할 수 있는 것이 바람직할 수 있는데, 이는 상기 특정한 보조 모듈들(6)의 자동 삭제를 방지한다.Many other criteria can be used to select auxiliary modules for deletion. For example, the frequency at which the auxiliary module is accessed can be used to delete the least frequently accessed auxiliary module or modules. As another example, the time period since the auxiliary module was last accessed may be used to delete an auxiliary module or modules that have not been used for the most time period. In order to determine the frequency with which the auxiliary module is accessed or the time period after which the auxiliary module is accessed, it is necessary to record the accesses made to the auxiliary modules stored in the memory 14. It stores a data structure 25 in the memory 14 that records accesses to each of the auxiliary modules 6 stored in the memory 14 within a specific time period and also records the date when the last access to the auxiliary module was made. Is achieved. It may also be desirable to be able to flag certain auxiliary modules 6 as "must be protected", which prevents automatic deletion of said particular auxiliary modules 6.

상기 장치(10)는 제거를 위해 상기 장치(10)의 메모리(14) 내에 저장된 보조 모듈들과는 다른 정보를 선택함으로써 단계(74)에서 충분한 공간을 또한 생성하거나 변형적으로는 충분한 공간을 자동으로 생성할 수 있다. 이러한 시나리오에서, 상기 정보는 어떤 미래의 시점에서 상기 장치로 다운로드가능하지 않을 수 있고, 그래서 상기 정보가 상기 장치(10)에 의한 미래의 액세스를 위해 저장되거나 앞으로 상기 장치(10)로 다운로드될 경우에 상기 서버(30)에 상기 정보를 이동시킴으로써 상기 정보가 제거된다.The device 10 also generates sufficient space or alternatively automatically generates sufficient space in step 74 by selecting different information than the auxiliary modules stored in the memory 14 of the device 10 for removal. can do. In such a scenario, the information may not be downloadable to the device at some future point in time so that the information is stored for future access by the device 10 or downloaded to the device 10 in the future. The information is removed by moving the information to the server 30 at.

단계(74)에서 선택된 파일들을 삭제한 경우에, 상기 장치(10)가 상기 서버(30)에 상기 요구된 보조 모듈(6)을 다운로드하도록 지시하는 단계(76)로 프로세스가 이동한다. 상기 서버(30)는 단계(78)에서 이러한 지시를 수신하고, 상기 메모리(34)로부터 상기 요구된 보조 모듈(6)을 획득하며 이를 상기 장치(10)에 전송한다.In the case of deleting the selected files in step 74, the process moves to step 76 where the device 10 instructs the server 30 to download the requested auxiliary module 6. The server 30 receives this indication in step 78, obtains the requested auxiliary module 6 from the memory 34 and sends it to the device 10.

단계(80)에서, 상기 장치(10)는 상기 메모리(14)에 상기 수신된 보조 모듈을 국부적으로 저장한다. 그리고나서, 기능이 수행될 수 있게 하도록 상기 국부적으로 저장된 보조 모듈에 액세스가 이루어지는 단계(82)로 프로세스가 이동한다.In step 80, the device 10 locally stores the received auxiliary module in the memory 14. The process then moves to step 82 where access is made to the locally stored auxiliary module to allow the function to be performed.

여기서 이해하여야 할 점은 상기 장치에서 이루어지는 단계들(60, 62, 64, 72, 74, 76, 80, 82)이 자동으로, 다시 말하면 사용자의 개입 없이 이루어질 수 있다는 것이다. 따라서, 사용자가 모듈 애플리케이션(2)에 가입한 경우에 상기 모듈 애플리케이션이 동작하는 프로세스는 사용자에게 투명하다. 기능이 실행되기 전에 보조 모듈(6)이 상기 서버(30)로부터 상기 장치(10)로 다운로드될 필요가 있는 경우에 사용자가 기능 호출을 수행하는데 약간 지연이 있음을 알 수가 있다.It should be understood here that the steps 60, 62, 64, 72, 74, 76, 80, 82 of the device can be done automatically, ie without user intervention. Thus, the process in which the module application operates when the user subscribes to the module application 2 is transparent to the user. It can be seen that there is a slight delay for the user to make a function call if the auxiliary module 6 needs to be downloaded from the server 30 to the device 10 before the function is executed.

여기서 이해하여야 할 점은 모듈 애플리케이션(2)이 단순히 상기 주 모듈(4)을 장치(10)와 장치(10) 간에 전송함으로써 한 장치(10)로부터 다른 한 장치로 배포될 수 있다는 것이다. 상기 주 모듈(4)을 수신하는 장치(10)는 상기 보조 모듈들(6) 중 어떠한 것도 지니지 않는 것이 전형적이다. 그러나, 상기 주 모듈(4)이 활성화되고 상기 애플리케이션이 실행될 경우에, 상기 주 모듈은 기능 호출을 수행하게 된다. 그러므로, 도 3에 도시된 프로세스는 단계(68)에서 상기 애플리케이션에 제공되어 있는 가입을 통해 이루어진다. 상기 가입이 승인될 경우에, 상기 호출된 기능을 포함하는 보조 모듈(6)이 상기 장치(10)로 다운로드되고 상기 기능 호출이 실행된다. 상기 주 모듈(4)에 의한 다음 기능 호출은 이전에 다운로드된 보조 모듈일 수도 있고 이전에 다운로드된 보조 모듈이 아닐 수도 있다. 상기 주 모듈(4)에 의한 다음 기능 호출이 이전에 다운로드된 보조 모듈일 경우에, 도 2의 프로세스는 단계(62)로부터 단계(82)로 점프한다. 상기 주 모듈(4)에 의한 다음 기능 호출이 이전에 다운로드된 보조 모듈이 아닐 경우에, 도 3의 프로세스는 현재 가입한, 호출 기능을 포함하는 보조 모듈(6)을 다운로드한다. 따라서, 상기 애플리케이션(2)의 모듈들은 필요에 따라 다운로드된다.It should be understood here that the module application 2 can be distributed from one device 10 to another by simply transferring the main module 4 between the device 10 and the device 10. The device 10 receiving the main module 4 typically does not have any of the auxiliary modules 6. However, when the main module 4 is activated and the application is executed, the main module performs a function call. Therefore, the process shown in FIG. 3 takes place via a subscription provided to the application in step 68. If the subscription is approved, the auxiliary module 6 containing the called function is downloaded to the device 10 and the function call is executed. The next function call by the main module 4 may or may not be a previously downloaded auxiliary module. If the next function call by the main module 4 is a previously downloaded auxiliary module, the process of FIG. 2 jumps from step 62 to step 82. If the next function call by the main module 4 is not a previously downloaded auxiliary module, the process of FIG. 3 downloads the auxiliary module 6 containing the calling function that is currently subscribed. Thus, the modules of the application 2 are downloaded as needed.

여기서 이해하여야 할 점은 상기 컴퓨터 프로그램 명령어들(24)이 상기 프로세서(12) 내로 로드될 경우에, 도 3에 도시된 단계들(60, 62, 64, 72, 74, 76, 80, 82) 각각을 수행하기 위한 수단을 상기 장치(10) 내에 제공하는 것이다. 상기 컴퓨터 프로그램 명령어들은 컴퓨터 판독가능 매체 또는 데이터 캐리어(1)로부터 상기 메모리(14) 내로 로드될 수도 있고 상기 컴퓨터 프로그램 명령어들은 CD-ROM 또는 DVD와 같은 전자기 반송파 신호를 통해 상기 장치(10)에 도달될 수도 있다.It should be understood here that when the computer program instructions 24 are loaded into the processor 12, the steps 60, 62, 64, 72, 74, 76, 80, 82 shown in FIG. It is to provide a means in the apparatus 10 for performing each. The computer program instructions may be loaded into the memory 14 from a computer readable medium or data carrier 1 and the computer program instructions may be directed to the apparatus 10 via an electromagnetic carrier signal such as a CD-ROM or DVD. May be

상기 주 모듈(4)이 컴퓨터 판독가능 매체 또는 데이터 캐리어(1)로부터 상기 메모리(14) 내로 로드될 수도 있고 상기 프라이머리 모듈은 CD-ROM 또는 DVD와 같은 전자기 반송파 신호를 통해 상기 장치(10)에 도달될 수도 있다.The main module 4 may be loaded into the memory 14 from a computer readable medium or data carrier 1 and the primary module may be loaded via the electromagnetic carrier signal such as a CD-ROM or DVD. May be reached.

사용자가 다른 전화이지만 동일한 SIM을 사용하는 경우 모듈 애플리케이션이 이용가능하도록 상기 메모리(14)로부터 상기 SIM 카드(22)로 주 모듈을 전송하는 것이 가능할 수 있다.It may be possible to transfer the main module from the memory 14 to the SIM card 22 so that a module application is available if the user is using another phone but using the same SIM.

지금까지 본 발명의 실시예들이 다양한 예를 참조하여 설명되었지만, 여기서 이해하여야 할 점은 권리주장된 바와 같은 본 발명의 범위로부터 벗어나지 않고서도 주어진 예들에 대한 수정들이 이루어질 수 있다는 것이다.While embodiments of the present invention have been described with reference to various examples so far, it should be understood that modifications may be made to the given examples without departing from the scope of the invention as claimed.

Claims (37)

전자 장치를 통해, 하나 이상의 보조 모듈들에 대한 기능 호출들을 수행하는 주 모듈을 포함하는 모듈 애플리케이션을 실행하는 방법에 있어서,A method of executing a module application comprising a main module for performing function calls to one or more auxiliary modules via an electronic device, the method comprising: 상기 방법은,The method, a) 상기 주 모듈로부터 한 보조 모듈로의 기능 호출을 검출하는 단계;a) detecting a function call from the main module to one auxiliary module; b) 상기 보조 모듈이 상기 전자 장치에 국부적으로 저장되어 있는 지를 결정하는 단계;b) determining whether the auxiliary module is stored locally in the electronic device; c) 상기 보조 모듈이 국부적으로 저장되어 있는 경우에 상기 기능 호출을 가능하게 하도록 상기 국부적으로 저장된 보조 모듈에 액세스하는 단계; 및c) accessing the locally stored auxiliary module to enable the function call when the auxiliary module is stored locally; And d) 상기 보조 모듈이 국부적으로 저장되어 있지 않은 경우에 원격 서버로부터 상기 보조 모듈을 요구하고, 상기 원격 서버로부터 상기 보조 모듈을 수신하며 상기 보조 모듈을 국부적으로 저장한 다음에 상기 기능 호출을 가능하게 하도록 상기 국부적으로 저장된 보조 모듈에 액세스하는 단계를 포함하는 것을 특징으로 하는 방법.d) requesting the auxiliary module from a remote server if the auxiliary module is not stored locally, receiving the auxiliary module from the remote server and locally storing the auxiliary module to enable the function call. Accessing said locally stored auxiliary module to ensure that said locally stored auxiliary module is accessed. 제1항에 있어서,The method of claim 1, 상기 방법은,The method, 상기 보조 모듈을 수신 및 저장하기 전에 국부 저장 장치로부터 데이터를 제거하는 단계를 더 포함하는 것을 특징으로 하는 방법.Removing data from local storage prior to receiving and storing the auxiliary module. 제2항에 있어서, 상기 데이터는 사용자의 개입 없이 자동으로 제거되는 것을 특징으로 하는 방법.The method of claim 2, wherein the data is automatically removed without user intervention. 제1항 내지 제3항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 상기 방법은,The method, 상기 보조 모듈을 수신 및 저장하기 전에,Before receiving and storing the auxiliary module, 상기 보조 모듈의 크기에 대한 표시를 상기 서버로부터 수신하는 단계;Receiving an indication of the size of the auxiliary module from the server; 상기 보조 모듈에 대한 충분한 국부 저장 공간이 존재하는지를 결정하는 단계; 및Determining if there is sufficient local storage space for the auxiliary module; And 상기 충분한 국부 저장 공간이 존재하지 않을 경우에, 상기 보조 모듈에 대한 국부 저장 공간을 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.If there is not enough local storage space, generating a local storage space for the auxiliary module. 제4항에 있어서, 상기 국부 저장 공간의 생성은 삭제를 통한 데이터의 제거를 포함하는 것을 특징으로 하는 방법.5. The method of claim 4, wherein creating the local storage space includes removing data through deletion. 제4항 또는 제5항에 있어서, 상기 국부 저장 공간의 생성은 원격 위치로 데이터를 이동시킴을 통한 데이터의 제거를 포함하는 것을 특징으로 하는 방법.6. The method of claim 4 or 5, wherein the creation of the local storage space includes the removal of data by moving the data to a remote location. 제5항 또는 제6항에 있어서, 상기 국부적으로 저장된 데이터가 소정의 기준 또는 소정의 기준들에 따른 제거를 위해 선택되는 것을 특징으로 하는 방법.7. A method according to claim 5 or 6, wherein the locally stored data is selected for removal according to a predetermined criterion or predetermined criteria. 제7항에 있어서, 상기 선택은 자동적인 것을 특징으로 하는 방법.8. The method of claim 7, wherein said selection is automatic. 제7항 또는 제8항에 있어서,The method according to claim 7 or 8, 상기 방법은,The method, 국부적으로 저장된 데이터에 대한 액세스들을 기록하는 단계를 더 포함하며, 상기 소정의 기준 또는 기준들은 데이터가 마지막으로 액세스된 이후의 시간 지속 기간, 및 데이터에 대한 액세스들 간의 평균 시간 중 하나 이상에 의존하는 것을 특징으로 하는 방법.Recording accesses to locally stored data, wherein the predetermined criterion or criteria is dependent upon one or more of a time duration since the data was last accessed, and an average time between accesses to the data. Characterized in that the method. 제2항 내지 제9항 중 어느 한 항에 있어서, 상기 제거된 데이터는 하나 이상의 모듈 애플리케이션들 중 하나 이상의 보조 모듈들에 대응하는 것을 특징으로 하는 방법.10. The method of any one of claims 2-9, wherein the removed data corresponds to one or more auxiliary modules of one or more module applications. 제1항 내지 제10항 중 어느 한 항에 있어서, 각각의 보조 모듈은 독립된 다이내믹 링크 라이브러리(dynamic link library)인 것을 특징으로 하는 방법.11. The method of any one of the preceding claims, wherein each auxiliary module is a separate dynamic link library. 제1항 내지 제11항 중 어느 한 항에 있어서, 청구항 제1항에서 정의된 바와 같은 단계들 a), b), c) 및 d)가 자동화되어 사용자의 개입 없이 이루어지는 것을 특징으로 하는 방법.A method according to any one of the preceding claims, wherein steps a), b), c) and d) as defined in claim 1 are automated and performed without user intervention. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 전자 장치는 핸드 포터블 전자 장치이고 상기 원격 서버에 대한 요구가 무선으로 이루어지는 것을 특징으로 하는 방법.13. The method of any one of claims 1 to 12, wherein the electronic device is a hand portable electronic device and the request for the remote server is made wireless. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 기능 호출은 상기 보조 모듈을 식별하는 것을 특징으로 하는 방법.14. The method of any one of claims 1 to 13, wherein the function call identifies the auxiliary module. 제14항에 있어서, 상기 보조 모듈의 요구는 상기 서버로의 가입 정보의 전송을 포함하는 것을 특징으로 하는 방법.15. The method of claim 14, wherein the request of the auxiliary module includes the transmission of subscription information to the server. 제15항에 있어서, 상기 가입 정보는 상기 장치의 사용자를 식별하는 것을 특징으로 하는 방법.16. The method of claim 15, wherein said subscription information identifies a user of said device. 제16항에 있어서, 상기 장치는 SIM 카드를 포함하는 이동 전화이고 상기 가입 정보는 상기 삽입된 SIM 카드에 의존하는 것을 특징으로 하는 방법.17. The method of claim 16, wherein the device is a mobile phone comprising a SIM card and the subscription information is dependent on the inserted SIM card. 제1항 내지 제17항 중 어느 한 항에 있어서, 적어도 상기 주 모듈이 다른 한 장치에 전송가능한 것을 특징으로 하는 방법.18. The method according to any one of the preceding claims, wherein at least the main module is transferable to the other device. 청구항 제1항 내지 제18항 중 어느 한 항의 방법에서 사용하도록 채택되는 주 모듈.A main module adapted for use in the method of any one of claims 1 to 18. 청구항 제1항 내지 제18항 중 어느 한 항의 방법에서 사용하도록 채택되는 보조 모듈.An auxiliary module adapted for use in the method of any one of claims 1 to 18. 보조 모듈들에 대한 기능 호출들을 수행하기 위한 주 모듈을 포함하는 모듈 애플리케이션을 실행하는 전자 장치에 있어서,An electronic device executing a module application comprising a main module for performing function calls to auxiliary modules, the electronic device executing the module application. 상기 전자 장치는,The electronic device, 상기 주 모듈 및 하나 이상의 보조 모듈들을 저장하는 메모리;A memory for storing the primary module and one or more auxiliary modules; 상기 주 모듈로부터 한 보조 모듈로의 기능 호출을 검출하는 검출 수단;Detecting means for detecting a function call from the main module to one auxiliary module; 원격 서버로부터 상기 메모리에 저장되어 있지 않은 보조 모듈을 요구하는 요구 수단;Requesting means for requesting an auxiliary module not stored in said memory from a remote server; 상기 원격 서버로부터 요구된 보조 모듈을 수신하고 상기 메모리 내에 상기 보조 모듈을 자동으로 저장하는 수신 수단; 및Receiving means for receiving a requested auxiliary module from the remote server and automatically storing the auxiliary module in the memory; And 상기 메모리에 저장된 보조 모듈에 액세스함으로써 상기 주 모듈로부터의 기능 호출을 가능하게 하는 제어 수단을 포함하는 것을 특징으로 하는 전자 장치.And control means for enabling a function call from the main module by accessing the auxiliary module stored in the memory. 제21항에 있어서,The method of claim 21, 상기 전자 장치는,The electronic device, 상기 요구된 보조 모듈을 저장하기 위한 충분한 공간을 생성하도록 상기 메모리로부터 하나 이상의 모듈 애플리케이션들의 하나 이상의 저장된 보조 모듈들을 자동으로 삭제하는 수단을 더 포함하는 것을 특징으로 하는 전자 장치.And means for automatically deleting one or more stored auxiliary modules of one or more module applications from the memory to create sufficient space for storing the requested auxiliary module. 제22항에 있어서,The method of claim 22, 상기 전자 장치는,The electronic device, 삭제를 위해 상기 보조 모듈(들)을 자동으로 선택하는 수단을 더 포함하고, 상기 선택은 소정의 기준 또는 소정의 기준들에 따르는 것을 특징으로 하는 전자 장치.Means for automatically selecting said auxiliary module (s) for deletion, said selection being in accordance with a predetermined criterion or predetermined criteria. 제23항에 있어서,The method of claim 23, wherein 상기 전자 장치는,The electronic device, 상기 메모리에 대한 액세스들을 기록하는 수단을 더 포함하고, 상기 소정의 기준 또는 기준들은 한 보조 모듈이 마지막으로 액세스된 이후의 시간 지속 기간, 및 한 보조 모듈에 대한 액세스들 간의 평균 시간 중 하나 이상에 의존하는 것을 특징으로 하는 전자 장치.Means for recording accesses to the memory, wherein the predetermined criterion or criteria is based on one or more of a time duration since one auxiliary module was last accessed, and an average time between accesses to one auxiliary module. An electronic device, characterized in that dependent. 제21항 내지 제24항 중 어느 한 항에 있어서, 각각의 보조 모듈은 독립된 다이내믹 동적 링크 라이브러리(dynamic link library)인 것을 특징으로 하는 전자 장치.25. An electronic device as claimed in any one of claims 21 to 24 wherein each auxiliary module is a separate dynamic dynamic link library. 제21항 내지 제25항 중 어느 한 항에 있어서, 상기 전자 장치는 핸드 포터블한 크기로 이루어져 있으며 상기 원격 서버에 대한 요구들을 무선으로 전송하도록 동작가능한 것을 특징으로 하는 전자 장치.26. The electronic device of any of claims 21-25, wherein the electronic device is of a hand portable size and is operable to wirelessly transmit requests for the remote server. 제21항 내지 제26항 중 어느 한 항에 있어서, 상기 보조 모듈의 요구는 상기 서버로의 가입 정보의 전송을 포함하는 것을 특징으로 하는 전자 장치.27. The electronic device according to any one of claims 21 to 26, wherein the request of the auxiliary module includes transmission of subscription information to the server. 제27항에 있어서, 상기 가입 정보는 상기 장치의 사용자를 식별하는 것을 특징으로 하는 전자 장치.28. The electronic device of claim 27, wherein the subscription information identifies a user of the device. 제21항 내지 제28항 중 어느 한 항에 있어서, 상기 전자 장치는 상기 주 모듈을 다른 한 장치에 전송하도록 이루어져 있는 것을 특징으로 하는 전자 장치.29. The electronic device according to any one of claims 21 to 28, wherein said electronic device is adapted to transmit said main module to another device. 보조 모듈들에 대한 기능 호출들을 수행하기 위한 주 모듈을 포함하는 모듈 애플리케이션을 제어하는 컴퓨터 프로그램에 있어서,A computer program for controlling a module application comprising a main module for making function calls to auxiliary modules, the computer program comprising: 상기 컴퓨터 프로그램은, 프로세서 내에 로드될 경우에,The computer program, when loaded into a processor, 주 모듈로부터 한 보조 모듈로의 기능 호출을 검출하는 검출 수단;Detecting means for detecting a function call from a main module to one auxiliary module; 국부 저장을 위해 원격 서버로부터 국부적으로 저장되어 있지 않은 보조 모 듈을 요구하는 요구 수단; 및Requesting means for requesting an auxiliary module not locally stored from the remote server for local storage; And 국부적으로 저장된 보조 모듈에 액세스함으로써 기능 호출을 가능하게 하는 제어 수단을 제공하는 것을 특징으로 하는 컴퓨터 프로그램.Providing a control means for enabling a function call by accessing a locally stored auxiliary module. 제30항에 있어서,The method of claim 30, 상기 컴퓨터 프로그램은, 프로세서 내로 로드될 경우에,The computer program, when loaded into the processor, 상기 요구된 보조 모듈을 저장하기 위한 충분한 공간을 생성하도록 상기 메모리로부터 하나 이상의 모듈 애플리케이션들의 하나 이상의 저장된 보조 모듈들을 자동으로 삭제하는 수단을 더 제공하는 것을 특징으로 하는 컴퓨터 프로그램.And means for automatically deleting one or more stored auxiliary modules of one or more module applications from the memory to create sufficient space for storing the required auxiliary module. 청구항 제30항 또는 제31항에서 청구된 바와 같은 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 매체.32. A computer readable medium comprising a computer program as claimed in claim 30 or 31. 하나 이상의 보조 모듈들에 대한 기능 호출들을 수행하는 주 모듈을 포함하는 모듈 애플리케이션을 실행하는 시스템에 있어서,A system for executing a module application comprising a main module making function calls to one or more auxiliary modules, the system comprising: 상기 시스템은, 하나 이상의 클라이언트 장치들 및 하나의 서버를 포함하며,The system includes one or more client devices and one server, 각각의 클라이언트 장치는,Each client device 하나 이상의 보조 모듈들에 대한 기능 호출을 수행하는데 유용한 주 모듈을 저장하는 메모리;A memory that stores a main module useful for making a function call to one or more auxiliary modules; 원격 서버로부터 상기 메모리에 저장되어 있지 않은 보조 모듈을 요구하는 요구 수단;Requesting means for requesting an auxiliary module not stored in said memory from a remote server; 상기 원격 서버로부터 요구된 보조 모듈을 수신하고 상기 메모리에 상기 보조 모듈을 자동으로 저장하는 수신 수단; 및Receiving means for receiving a requested auxiliary module from the remote server and automatically storing the auxiliary module in the memory; And 상기 메모리에 저장된 보조 모듈에 액세스함으로써 기능 호출을 가능하게 하는 제어 수단을 포함하며,Control means for enabling a function call by accessing an auxiliary module stored in the memory, 상기 서버는,The server, 각각의 보조 모듈이 하나 이상의 호출가능한 기능들을 포함하는 복수 개의 보조 모듈을 저장하는 메모리;A memory in which each auxiliary module stores a plurality of auxiliary modules including one or more callable functions; 클라이언트 장치로부터 한 보조 모듈을 식별하는 요구를 수신하는 수신기;A receiver for receiving a request from a client device to identify a secondary module; 상기 메모리로부터 상기 식별된 보조 모듈을 획득하는 메모리 액세스 수단; 및;Memory access means for obtaining the identified auxiliary module from the memory; And; 상기 클라이언트 장치로 상기 획득된 보조 모듈을 전송하는 송신기를 포함하는 것을 특징으로 하는 시스템.And a transmitter for transmitting the obtained auxiliary module to the client device. 클라이언트 장치가 복수 개의 보조 모듈에 대한 기능 호출들을 수행하기 위한 주 모듈을 포함하는 모듈 애플리케이션을 실행할 수 있게 하는 서버에 있어서,A server that enables a client device to execute a module application that includes a main module for making function calls to a plurality of auxiliary modules. 상기 서버는,The server, 하나 이상의 모듈 애플리케이션들에 대하여 복수 개의 보조 모듈을 저장하는 메모리로서, 각각의 보조 모듈은 하나 이상의 호출가능한 기능들을 포함하는 메모리;A memory that stores a plurality of auxiliary modules for one or more module applications, each auxiliary module including one or more callable functions; 클라이언트 장치로부터 한 보조 모듈을 식별하는 요구를 수신하는 수신기;A receiver for receiving a request from a client device to identify a secondary module; 상기 메모리로부터 상기 식별된 보조 모듈을 획득하는 메모리 액세스 수단; 및Memory access means for obtaining the identified auxiliary module from the memory; And 상기 클라이언트 장치로 상기 획득된 보조 모듈을 전송하는 송신기를 포함하는 것을 특징으로 하는 서버.And a transmitter for transmitting the obtained auxiliary module to the client device. 제34항에 있어서,The method of claim 34, wherein 상기 서버는,The server, 가입 데이터를 저장하는 데이터 구조를 더 포함하며, 상기 메모리 액세스 수단에 의한 식별된 보조 모듈에 대한 액세스는 상기 가입 데이터에 의존하는 것을 특징으로 하는 서버.And a data structure for storing subscription data, wherein access to the identified auxiliary module by said memory access means is dependent on said subscription data. 제34항에 있어서, 상기 가입 데이터는 각각의 클라이언트 장치에 대하여 무료로 액세스가능한 상기 메모리에 저장된 보조 모듈들을 식별하는 것을 특징으로 하는 서버.35. The server of claim 34, wherein the subscription data identifies auxiliary modules stored in the memory that are freely accessible for each client device. 제36항에 있어서,The method of claim 36, 상기 서버는,The server, 상기 클라이언트 장치가 상기 식별된 보조 모듈에 액세스하고 클라이언트 장치가 무료로 장래 상기 식별된 보조 모듈에 액세스할 수 있다는 것을 식별하도록 상기 가입 데이터를 업데이트하는 비용을 부과하는 비용 부과 수단을 더 포함하는 것을 특징으로 하는 서버.Charging means for charging the subscription data to identify that the client device has access to the identified supplemental module and that the client device can access the identified supplemental module in the future free of charge. Server.
KR1020077009502A 2007-04-26 2004-10-28 A device, method and computer program for running a modular application KR20070059189A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020077009502A KR20070059189A (en) 2007-04-26 2004-10-28 A device, method and computer program for running a modular application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020077009502A KR20070059189A (en) 2007-04-26 2004-10-28 A device, method and computer program for running a modular application

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020097011219A Division KR20090061681A (en) 2009-05-29 2004-10-28 A device, method and computer program for running a modular application

Publications (1)

Publication Number Publication Date
KR20070059189A true KR20070059189A (en) 2007-06-11

Family

ID=38355557

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077009502A KR20070059189A (en) 2007-04-26 2004-10-28 A device, method and computer program for running a modular application

Country Status (1)

Country Link
KR (1) KR20070059189A (en)

Similar Documents

Publication Publication Date Title
KR100984599B1 (en) System and method for application disable/restore management
US7730236B2 (en) Cellular phone and portable storage device using the same
US20170310677A1 (en) System and method for protecting content in a wireless network
US20100130254A1 (en) Portable communication terminal and program executed by portable communication terminal
US20060191017A1 (en) Access control management method, access control management system and terminal device with access control management function
US20100281139A1 (en) Mobile terminal and associated storage devices having web servers, and method for controlling the same
US20020083160A1 (en) Method and apparatus for managing applications and data in a mobile device
US20030134623A1 (en) Mobile communication system
CN115002747B (en) Parameter updating method, system, terminal equipment and chip system
EP2280343A1 (en) Method and device for application archiving
US20060282658A1 (en) Boot systems and methods and related devices
US20070174348A1 (en) Databases synchronization
EP2006767A1 (en) A device, method and computer program for running a modular application
KR20070059189A (en) A device, method and computer program for running a modular application
KR20050058807A (en) Contents download method for mobile communication device
KR20090061681A (en) A device, method and computer program for running a modular application
JP2004178353A (en) Information terminal, and program for acquiring content
CN108008970A (en) Application upgrade method and device
CN114116072A (en) Shared library multiplexing method and electronic equipment
CN101529855A (en) Method of memory management in a client terminal, corresponding signal, computer program and terminal
CN103984884A (en) Method and system for licensing software
CN115017473B (en) Authorization method and electronic equipment
KR100953638B1 (en) method and system for upgrading software of mobile
CN112291601B (en) Data transmission method, electronic equipment and storage medium
KR101094622B1 (en) System-software update system and method for terminal

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20090430

Effective date: 20110422

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
NORF Unpaid initial registration fee