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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/264—Remote 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
Description
본 발명의 실시예들은 모듈 애플리케이션(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
상기 주 모듈(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
도 2에는 모듈 애플리케이션(2)을 실행하기 위한 시스템(11)이 도시되어 있다. 상기 시스템(11)은 하나 이상의 클라이언트 장치들(10) 및 하나의 원격 서버(30)를 포함한다. 상기 클라이언트 장치들(10) 각각은 프로세서(12), 메모리(14), 디스플레이(16) 및 입력 장치(18)를 포함하는 사용자 인터페이스(18) 및 상기 서버(30)와의 통신을 수행하기 위한 입력/출력 인터페이스(20)를 포함한다. 도 2에 도시된 예에서, 클라이언트 장치(101)는 핸더 포터블 이동 셀룰러 전화이고 상기 입력/출력 인터페이스(20)는 무선 송수신기에 의해 제공된다. 이러한 무선 송수신기는 셀룰러 무선 통신 네트워크를 통해 동작하게 되는 것이 전형적이지만, 상 기 무선 송수신기는 블루투스 네트워크 또는 WLAN 네트워크와 같은 애드-혹 무선 네트워크를 통해 동작하는 것이 가능하다.2 shows a
상기 프로세서(12)는 상기 메모리(14)로부터 판독되며 상기 메모리(14)로 기록되도록 접속된다. 상기 프로세서(12)는 또한 상기 입력/출력 인터페이스(20)로부터 입력 데이터를 수신하고 상기 입력/출력 인터페이스(20)에 출력 데이터를 제공하도록 접속된다. 그 외에도, 상기 프로세서(12)는 상기 입력 장치(18)로부터 입력 커맨드들을 수신하고 커맨드들을 상기 디스플레이(16)에 제공한다. 도 2에 도시된 예에서, 상기 이동 셀룰러 전화(10)는 가입자 식별 모듈(SIM; Subscriber Identity Module) 카드(22)를 포함한다. 이는 부호화 엔진들 및 국제 이동통신 가입자 식별정보(International Mobile Subsciber Identity; IMSI)와 같이 사용자를 식별하는 데이터를 포함하는 스마트 카드이다. 상기 가입자 식별 모듈 카드(22)는 상기 프로세서(12)에 접속된다.The
상기 메모리(14)는 상기 프로세서(12) 내로 로드될 경우에 상기 장치(10)의 동작을 제어하는 컴퓨터 프로그램 명령어들(24)을 포함한다. 그 외에도, 상기 메모리(14)는 상기 프로세서(12) 내로 로드될 경우에 사용자가 보조 모듈들(6)로부터 기능들을 호출하는 모듈 애플리케이션을 개시를 할 수 있게 하는 주 모듈(4)을 포함한다.The
상기 서버(30)는 메모리(34)에 기록되고 메모리(34)로부터 판독되도록 접속되는 프로세서(32)로서 입력/출력 인터페이스(Tx/Rx; 33)로부터 입력 데이터를 수신하고 상기 입력/출력 인터페이스(33)로 출력 데이터를 제공하도록 접속된다. 상 기 메모리(34)는 상기 프로세서(32) 내로 로드될 경우에 상기 서버(30)의 동작을 제어하는 컴퓨터 프로그램 명령어들(36)을 포함한다.The
모듈 애플리케이션(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
도 2의 예에서, 상기 모듈 애플리케이션(2)은 상기 장치(10)의 메모리(14)를 통해 그리고 상기 서버(30)의 메모리(34)를 통해 배포된다. 상기 모듈 애플리케이션(2)의 개시에 필요한 주 모듈(4)은 상기 메모리(14)에 저장된다. 상기 애플리케 이션을 실행할 경우에, 상기 주 모듈(4)에 의해 액세스되는 보조 모듈들(A,B,C,X)은 상기 메모리(34)에 영구적으로 저장된다.In the example of FIG. 2, the
상기 모듈 애플리케이션(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
도 3에는 모듈 애플리케이션을 실행하는 방법이 더 상세하게 도시되어 있다. 단계(60)에서, 상기 장치(10)는 상기 주 모듈(4)에 의한 기능 호출을 검출한다. 상기 기능 호출은 상기 기능 및 상기 호출된 기능을 포함하는 보조 모듈을 식별한다. 이러한 예에 대한 목적들로, 상기 보조 모듈(X)에 포함되어 있는 기능(x)이 호출된다고 가정하기로 한다. 상기 주 모듈(4)에 의한 기능 호출에 따라 x 및 X가 식별된다.3 illustrates a method of executing a module application in more detail. In
상기 호출된 기능을 포함하는 보조 모듈(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
상기 서버(30)의 메모리(34)는 가입 데이터용으로 데이터베이스와 같은 데이터 구조(38)를 저장한다. 상기 가입 데이터는 각각의 클라이언트 장치(10)에 대한 액세스 권한을 식별한다. 즉, 상기 가입 데이터는 클라이언트 장치(10)가 상기 서버(30)의 메모리(34)로부터 특정의 보조 모듈(6)을 어떤 조건하에서 다운로드할 수 있는지를 식별한다. 상기 서버의 메모리(34)는 하나 이상의 모듈 애플리케이션들(2)에 대한 모든 보조 모듈들(6)을 저장하는 것이 전형적이다.The
예를 들면, 장치(10)의 사용자가 특정의 애플리케이션(2)을 사용할 수 있는 라이센스를 전혀 지니지 않을 수 있지만, 다른 한 사용자로부터 주 모듈(4)을 수신 할 수 있다. 이러한 경우에, 사용자가 상기 애플리케이션(2)을 사용하려고 할 경우에, 상기 주 모듈(4)은 사용자의 장치(10) 상에 존재하지 않게 되는 보조 모듈들(6) 중 한 보조 모듈에 대한 기능 호출을 수행하게 된다. 그러므로, 사용자의 장치는 차후에 원격 서버(30)에 액세스하여 호출된 기능을 포함하는 보조 모듈(6)을 획득하게 된다. 그러나, 상기 서버(30)는 이러한 애플리케이션에 대하여 이러한 사용자에 관한 가입 데이터를 전혀 지니지 않게 되며 사용자가 라이센스를 구입할 때까지 상기 보조 모듈을 제공하지 않게 된다. 일단 사용자가 라이센스를 구입하게 되면, 상기 라이센스는 상기 가입 데이터에 기록된다.For example, a user of
사용자가 다른 타입의 라이센스들을 구입하는 것이 가능할 수 있다. 예를 들면, "장치 라이센스"가 구입될 수도 있고 "사용자 라이센스"가 구입될 수도 있다. 장치 라이센스는 특정 장치(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
단계(66)에서, 상기 서버(30)에서, 상기 서버(30)는 상기 메모리(34)의 데이 터 구조(38)에 액세스하며 상기 가입 데이터를 검사한다. 예를 들면, 상기 요구(65)가 상기 가입 데이터 내에 상기 요구된 보조 모듈(6)과 연관된 식별자를 포함하기 때문에 상기 요구(65)가 권한부여될 경우에, 단계(70)로 프로세스가 이동한다. 그러나, 상기 가입 데이터가 상기 요구(6)에 대한 권한을 부여하지 않을 경우에, 단계(68)에서 상기 서버가 상기 장치(10)와 교섭하여 상기 장치(10)가 모듈 애플리케이션(2)에 대한 라이센스를 구입할 수 있게 한다. 라이센스가 구입되면, 단계(70)로 프로세스가 이동한다.In
단계(70)에서, 상기 서버(30)는 요구된 보조 모듈(6)의 크기를 식별하고 상기 크기를 나타내는 메시지를 상기 장치(10)에 전송한다. 상기 장치(10)는 단계(72)에서 상기 요구된 보조 모듈을 저장하기 위한 충분한 공간이 상기 장치(10)의 메모리(14)에 존재하는지의 여부를 결정한다. 충분한 공간이 존재할 경우에 단계(76)로 프로세스가 진행한다. 충분한 공간이 존재하지 않을 경우에 상기 장치(10)는 단계(74)에서 충분한 공간을 자동으로 생성한다. 이는 삭제를 위해 상기 장치(10)의 메모리(14) 내에 저장된 보조 모듈들을 선택하고 상기 보조 모듈들을 삭제함으로써 이루어진다.In
다수의 다른 기준은 삭제를 위해 보조 모듈들을 선택하는데 사용될 수 있다. 예를 들면, 보조 모듈이 액세스되는 빈도는 가장 빈도가 낮게 액세스된 보조 모듈 또는 모듈들을 삭제하는데 사용될 수 있다. 다른 한 예로서, 보조 모듈이 마지막으로 액세스된 이후의 시간 주기는 가장 많은 시간 주기 동안 사용되지 않은 보조 모듈 또는 모듈들을 삭제하는데 사용될 수 있다. 보조 모듈이 액세스되는 빈도 또는 보조 모듈이 액세스된 이후의 시간 주기를 결정하기 위해, 상기 메모리(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
상기 장치(10)는 제거를 위해 상기 장치(10)의 메모리(14) 내에 저장된 보조 모듈들과는 다른 정보를 선택함으로써 단계(74)에서 충분한 공간을 또한 생성하거나 변형적으로는 충분한 공간을 자동으로 생성할 수 있다. 이러한 시나리오에서, 상기 정보는 어떤 미래의 시점에서 상기 장치로 다운로드가능하지 않을 수 있고, 그래서 상기 정보가 상기 장치(10)에 의한 미래의 액세스를 위해 저장되거나 앞으로 상기 장치(10)로 다운로드될 경우에 상기 서버(30)에 상기 정보를 이동시킴으로써 상기 정보가 제거된다.The
단계(74)에서 선택된 파일들을 삭제한 경우에, 상기 장치(10)가 상기 서버(30)에 상기 요구된 보조 모듈(6)을 다운로드하도록 지시하는 단계(76)로 프로세스가 이동한다. 상기 서버(30)는 단계(78)에서 이러한 지시를 수신하고, 상기 메모리(34)로부터 상기 요구된 보조 모듈(6)을 획득하며 이를 상기 장치(10)에 전송한다.In the case of deleting the selected files in
단계(80)에서, 상기 장치(10)는 상기 메모리(14)에 상기 수신된 보조 모듈을 국부적으로 저장한다. 그리고나서, 기능이 수행될 수 있게 하도록 상기 국부적으로 저장된 보조 모듈에 액세스가 이루어지는 단계(82)로 프로세스가 이동한다.In
여기서 이해하여야 할 점은 상기 장치에서 이루어지는 단계들(60, 62, 64, 72, 74, 76, 80, 82)이 자동으로, 다시 말하면 사용자의 개입 없이 이루어질 수 있다는 것이다. 따라서, 사용자가 모듈 애플리케이션(2)에 가입한 경우에 상기 모듈 애플리케이션이 동작하는 프로세스는 사용자에게 투명하다. 기능이 실행되기 전에 보조 모듈(6)이 상기 서버(30)로부터 상기 장치(10)로 다운로드될 필요가 있는 경우에 사용자가 기능 호출을 수행하는데 약간 지연이 있음을 알 수가 있다.It should be understood here that the
여기서 이해하여야 할 점은 모듈 애플리케이션(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
여기서 이해하여야 할 점은 상기 컴퓨터 프로그램 명령어들(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
상기 주 모듈(4)이 컴퓨터 판독가능 매체 또는 데이터 캐리어(1)로부터 상기 메모리(14) 내로 로드될 수도 있고 상기 프라이머리 모듈은 CD-ROM 또는 DVD와 같은 전자기 반송파 신호를 통해 상기 장치(10)에 도달될 수도 있다.The main module 4 may be loaded into the
사용자가 다른 전화이지만 동일한 SIM을 사용하는 경우 모듈 애플리케이션이 이용가능하도록 상기 메모리(14)로부터 상기 SIM 카드(22)로 주 모듈을 전송하는 것이 가능할 수 있다.It may be possible to transfer the main module from the
지금까지 본 발명의 실시예들이 다양한 예를 참조하여 설명되었지만, 여기서 이해하여야 할 점은 권리주장된 바와 같은 본 발명의 범위로부터 벗어나지 않고서도 주어진 예들에 대한 수정들이 이루어질 수 있다는 것이다.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)
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) |
-
2004
- 2004-10-28 KR KR1020077009502A patent/KR20070059189A/en active IP Right Grant
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 |