[go: up one dir, main page]

KR20100105210A - Mobile terminal with mobile platform managed and updated in module type, method for operating the mobile platform, managing module and updating the module - Google Patents

Mobile terminal with mobile platform managed and updated in module type, method for operating the mobile platform, managing module and updating the module Download PDF

Info

Publication number
KR20100105210A
KR20100105210A KR1020090024115A KR20090024115A KR20100105210A KR 20100105210 A KR20100105210 A KR 20100105210A KR 1020090024115 A KR1020090024115 A KR 1020090024115A KR 20090024115 A KR20090024115 A KR 20090024115A KR 20100105210 A KR20100105210 A KR 20100105210A
Authority
KR
South Korea
Prior art keywords
module
update
mobile platform
information
interface
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.)
Granted
Application number
KR1020090024115A
Other languages
Korean (ko)
Other versions
KR101064737B1 (en
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 KR1020090024115A priority Critical patent/KR101064737B1/en
Publication of KR20100105210A publication Critical patent/KR20100105210A/en
Application granted granted Critical
Publication of KR101064737B1 publication Critical patent/KR101064737B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은, 모듈 형태로 관리 및 업데이트가 이루어지는 모바일 플랫폼이 탑재된 이동통신 단말, 그 모바일 플랫폼 구동 방법, 모듈 관리 방법 및 모듈 업데이트 방법에 관한 것이다. The present invention relates to a mobile communication terminal equipped with a mobile platform managed and updated in a module form, a mobile platform driving method, a module management method, and a module update method.

본 발명에 따르면, 모듈 매니저를 통해 단말 바이너리로부터 독립된 고유의 플랫폼 코드 바이너리 형태로 이루어져 모바일 플랫폼을 구성하는 단위 기능을 수행하는 각각의 모듈을 제어한다. 또한, 각각의 모듈 간에 또는 어플리케이션에서 상기 각각의 모듈을 사용할 수 있도록 인터페이스를 제공한다. 그리고 모듈 업데이터를 통해 상기 각각의 모듈을 상위 버전으로 업데이트한다. According to the present invention, the module manager controls each module that performs unit functions constituting the mobile platform by being formed in a unique platform code binary form independent from the terminal binary. It also provides an interface to use each module between each module or in an application. Each module is updated to a higher version through a module updater.

따라서, 모바일 플랫폼에 새로운 기능의 추가, 변경, 삭제가 용이하여 단말 출시 이후, 모바일 플랫폼 기능 개선, 통신 사업자의 신규 서비스 제공 목적으로 새로운 기능 모듈을 추가, 변경할 수 있다.Therefore, it is easy to add, change, and delete new functions to the mobile platform, and after the terminal is released, new function modules may be added and changed for the purpose of improving the mobile platform function and providing new services of the telecommunications carrier.

Description

모듈 형태로 관리 및 업데이트가 이루어지는 모바일 플랫폼이 탑재된 이동통신 단말, 그 모바일 플랫폼 구동 방법, 모듈 관리 방법 및 모듈 업데이트 방법{Mobile terminal with mobile platform managed and updated in module type, method for operating the mobile platform, managing module and updating the module}Mobile communication terminal equipped with a mobile platform that is managed and updated in the form of a module, a method for operating the mobile platform, a module management method and a module update method {Mobile terminal with mobile platform managed and updated in module type, method for operating the mobile platform, managing module and updating the module}

본 발명은, 모듈 형태로 관리 및 업데이트가 이루어지는 모바일 플랫폼이 탑재된 이동통신 단말, 그 모바일 플랫폼 구동 방법, 모듈 관리 방법 및 모듈 업데이트 방법에 관한 것이다. The present invention relates to a mobile communication terminal equipped with a mobile platform managed and updated in a module form, a mobile platform driving method, a module management method, and a module update method.

최근 이동통신 단말기의 성능향상 및 고객의 다양한 컨버전스 니즈(Needs)에 따라 기능 폰(Feature Phone) 및 스마트 폰에서 'General Purpose OS(Operating System)'의 탑재가 시도되고 있어 모바일 플랫폼도 그에 따른 변화가 요구되고 있다. Recently, due to the performance improvement of mobile communication terminals and various convergence needs of customers, the installation of 'General Purpose OS (Operating System)' has been attempted in feature phones and smart phones, and the mobile platform has changed accordingly. It is required.

이러한 고객의 다양한 필요성에 부합하는 특화된 단말의 등장은 모든 기능을 탑재한 거대한 모바일 플랫폼의 탑재가 부담으로 작용하게 한다. 따라서, 단말 특성에 따라 필요한 기능만을 조합한 경량화된 모바일 플랫폼이 필요하다. The emergence of specialized terminals to meet the diverse needs of these customers puts a burden on the deployment of a huge mobile platform with all functions. Therefore, there is a need for a lightweight mobile platform combining only necessary functions according to terminal characteristics.

이동통신 단말의 성능 향상과 더불어 Windows Mobile, Embedded Linux와 같은 범용 OS 탑재 단말이 늘고 있다. 이러한 추세는 다양한 범용 OS위에 모바일 플랫폼을 쉽게 포팅할 수 있도록 플랫폼의 구조적 개선을 요구한다. In addition to the performance improvement of mobile communication terminals, the number of terminals equipped with general purpose OS such as Windows Mobile and Embedded Linux is increasing. This trend requires the structural improvement of the platform so that mobile platforms can be easily ported onto various general-purpose operating systems.

도 1은 종래의 모바일 플랫폼 구조이고, 도 2는 종래 모바일 플랫폼의 바이너리 구조를 나타낸다.1 illustrates a conventional mobile platform structure, and FIG. 2 illustrates a binary structure of a conventional mobile platform.

도 1에 따르면, 종래 모바일 플랫폼은 롬 바이너리(ROM Binary)(11), EFS 바이너리(13), APP 1, 2, 3(15), APM(Application Performance Management) 모듈(17), 다운로더(Downloader)(19), KIKA(21), Native system software(23) 및 커널(25) 및 HAL(Hardware Adaptation Layer)(27)로 구성된다. According to FIG. 1, a conventional mobile platform includes a ROM binary 11, an EFS binary 13, APP 1, 2, and 3 15, an application performance management (APM) module 17, and a downloader. (19), KIKA 21, Native system software 23 and kernel 25, and Hardware Adaptation Layer (HAL) 27.

도 2에 따르면, Native system software(23) 및 커널(25)은 하나의 바이너리 플랫폼 코드를 사용하고, 이 바이너리 플랫폼 코드는 이동통신 단말의 바이너리 코드를 링크한다. 즉 플랫폼 코드가 단말 바이너리에 정적(static)으로 링크되어 단말 부팅시 플랫폼 코드가 메모리에 로딩되는 구조이다. According to Fig. 2, the native system software 23 and the kernel 25 use one binary platform code, which links the binary code of the mobile communication terminal. In other words, the platform code is statically linked to the terminal binary so that the platform code is loaded into the memory when the terminal is booted.

도 3a는 종래 모바일 플랫폼의 패키지 종류를 나타내고, 도 3b는 패키지 상호 관계를 나타낸다. Figure 3a shows the package type of the conventional mobile platform, Figure 3b shows the package interrelationship.

도 3a에 따르면, 종래의 모바일 플랫폼은 모듈들이 패키지 단위로 구분되어 있다. 최상위 패키지는 CP(Contens Provider)가 제공하는 패키지(29)로서 wec 패키지(31), java 패키지(33), org 패키지(35)가 존재하고, 내부 구현되는 패키지(37)로서 com 패키지(39), ams 패키지(41), javax 패키지(43)가 있다. According to FIG. 3A, in the conventional mobile platform, modules are divided into package units. The top-level package includes a wec package 31, a java package 33, and an org package 35 as a package 29 provided by a CP (Contens Provider), and a com package 39 as an internally implemented package 37. , ams package 41, and javax package 43.

그러나 도 3b에 보인 것처럼, 패키지들(31, 33, 35, 39, 41, 43) 간의 상호 관계가 상하 관계를 분별하기 어렵고 수평적으로도 복잡하게 얽혀있어 동적으로 기능 단위의 모듈을 추가, 수정, 삭제하기 어려운 구조이다. However, as shown in FIG. 3B, the interrelationships between the packages 31, 33, 35, 39, 41, and 43 are difficult to discern between upper and lower relations, and are horizontally and intricately intertwined, thereby dynamically adding and modifying modules of functional units. It is a structure that is difficult to delete.

또한, 종래 모바일 플랫폼의 커널(kernel)은 커널의 모든 기능이 오브젝트(object)로 구성되어 하나의 바이너리로 링크되는 구조이다. 즉 종래 모바일 플랫폼의 커널은 모든 기능이 하나의 바이너리로 구성되도록 되어있는 것이다. 여기에는 'Target O/S'에 따라 코드가 달라져야 하는 부분들도 함께 빌드되어 바이너리에 포함된다. 그리고 H/W 의존성(Dependency)이 있는 모듈 및 그래픽 모듈도 모두 커널에 포함되어 상호간 함수 호출이 직접 이루어진다. In addition, the kernel of the conventional mobile platform is a structure in which all functions of the kernel are composed of objects and linked to one binary. In other words, the kernel of the conventional mobile platform is that all the functions are configured as one binary. Here, the parts that need to be changed according to 'Target O / S' are also built and included in the binary. In addition, both the module with the H / W dependency and the graphic module are included in the kernel to make mutual function calls directly.

따라서, 이러한 커널 구조의 모바일 플랫폼은 기능간 구분이 모호하고, 하위 레이어 참조 코드가 존재하며, 타겟에 맞는 커널 재빌드가 필요한 문제점이 있다.Therefore, the mobile platform of such a kernel structure has a problem that the distinction between functions is ambiguous, lower layer reference code exists, and a kernel rebuild suitable for a target is required.

이상과 같이, 과거 이동통신 단말의 저사양 문제로 종래의 모바일 플랫폼은 단말 제조사 바이너리에 링크되는 구조로 설계된다. 따라서, 모바일 플랫폼의 일부 기능을 개선 또는 추가하기 위해서 모바일 플랫폼 전체 빌드, 제조사 배포, 단말제조사 바이너리 링크 등의 여러 단계를 거처야만 하는 시간적/비용적 문제가 발생한다. 즉 이동통신 단말 출시 후 기능 단위 업데이트 및 기능 추가가 사실상 힘든 상황인 것이다. As described above, due to the low specification of the past mobile communication terminal, the conventional mobile platform is designed in a structure that is linked to the terminal manufacturer binary. Therefore, in order to improve or add some functions of the mobile platform, a time / cost problem occurs that must go through various steps such as the entire mobile platform build, manufacturer distribution, and terminal manufacturer binary link. In other words, it is difficult to update the function unit and add the function after the release of the mobile communication terminal.

이러한 모바일 플랫폼의 구조적 문제는 다양한 3rd Part 솔루션 업체 또는 개인이 플랫폼 기능 확장에 사실상 참여를 어렵게 만들었다. 이는 최근 심화된 모바일 플랫폼 부문 경쟁에서 도태될 수 있음을 의미한다.Structural problems of these mobile platforms has made a variety of 3 rd Part solution providers or individuals difficult to practically participate in the platform extensions. This means that they can be eliminated from the recent fierce competition in the mobile platform sector.

본 발명이 이루고자 하는 기술적 과제는, 모듈 형태로 관리 및 업데이트가 이루어지는 모바일 플랫폼이 탑재된 이동통신 단말, 그 모바일 플랫폼 구동 방법, 모듈 관리 방법 및 모듈 업데이트 방법을 제공하는 것이다. The technical problem to be achieved by the present invention is to provide a mobile communication terminal equipped with a mobile platform that is managed and updated in a module form, a mobile platform driving method, a module management method, and a module update method.

본 발명의 한 특징에 따르면, 모바일 플랫폼이 탑재된 이동통신 단말이 제공된다. 이동통신 단말은, 상기 모바일 플랫폼을 구성하는 각각의 모듈-여기서 각각의 모듈은 상기 모바일 플랫폼을 구성하는 단위 기능들 각각이 단말 바이너리로부터 독립된 고유의 플랫폼 코드 바이너리 형태로 구현한 것임-을 제어하고, 상기 각각의 모듈 간에 또는 어플리케이션에서 상기 각각의 모듈을 사용할 수 있도록 인터페이스를 제공하는 모듈 매니저; 및 상기 각각의 모듈을 상위 버전으로 업데이트하는 모듈 업데이터를 포함한다. According to one aspect of the invention, there is provided a mobile communication terminal equipped with a mobile platform. The mobile communication terminal controls each module constituting the mobile platform, wherein each module implements each of the unit functions constituting the mobile platform in a unique platform code binary form independent of the terminal binary. A module manager providing an interface to use each module between the respective modules or in an application; And a module updater for updating each module to a higher version.

본 발명의 다른 특징에 따르면, 모바일 플랫폼 구동 방법이 제공된다. 모바일 플랫폼 구동 방법은, 모듈 매니저-여기서 모듈 매니저는 단말 바이너리로부터 독립된 고유의 플랫폼 코드 바이너리 형태로 이루어져 모바일 플랫폼을 구성하는 각각의 모듈을 제어함-가 오이엠(OEM, Original Equipment Manufacturer) 계층 모듈로부터 플랫폼 구동을 요청받는 단계; 상기 각각의 모듈들에 대한 정보를 관리하는 모듈 정보 테이블 및 하드웨어 적응 계층(HAL, Hardware Adaptation Layer) 목록이 저장된 하드웨어 적응 계층 인터페이스 정보 테이블을 초기화하는 단계; 및 커널 모듈을 로딩하여 모바일 플랫폼을 구동하는 단계를 포함한다. According to another feature of the invention, a method for driving a mobile platform is provided. In the mobile platform driving method, the module manager, where the module manager is formed in a unique platform code binary form independent from the terminal binary and controls each module constituting the mobile platform, is a platform from an original equipment manufacturer (OEM) layer module. Receiving a request for driving; Initializing a hardware adaptation layer interface information table storing a module information table and a hardware adaptation layer (HAL) list for managing information about the respective modules; And driving the mobile platform by loading the kernel module.

본 발명의 또 다른 특징에 따르면, 모듈 관리 방법이 제공된다. 모듈 관리 방법은, 모듈 매니저-여기서 모듈 매니저는 단말 바이너리로부터 독립된 고유의 플랫폼 코드 바이너리 형태로 이루어져 모바일 플랫폼을 구성하는 각각의 모듈을 제어함-가 특정 모듈의 로딩을 요청받는 단계; 할당받은 메모리에 상기 특정 모듈의 모듈 로딩 정보 및 모듈 바이너리를 기록하고, 상기 특정 모듈을 로딩하는 단계; 및 상기 모듈 매니저가 메모리에 로딩한 상기 각각의 모듈에 대한 정보를 관리하는 모듈 풀 및 상기 이동통신 단말에 설치된 상기 각각의 모듈들에 대한 정보를 관리하는 모듈 정보 테이블에 상기 특정 모듈에 대한 모듈 로딩 정보를 갱신하는 단계를 포함한다. According to another feature of the invention, a module management method is provided. The module management method includes a module manager, wherein the module manager is formed in a unique platform code binary form independent from the terminal binary to control each module constituting the mobile platform; Recording module loading information and module binaries of the specific module in the allocated memory, and loading the specific module; And a module pool for managing information on the respective modules loaded by the module manager into a memory and a module loading table for the specific module in a module information table managing information on the respective modules installed in the mobile communication terminal. Updating the information.

본 발명의 또 다른 특징에 따르면, 모듈 업데이트 방법이 제공된다. 모듈 업데이트 방법은, 모듈 업데이터-여기서 모듈 업데이터는 단말 바이너리로부터 독립된 고유의 플랫폼 코드 바이너리 형태로 이루어져 모바일 플랫폼을 구성하는 각각의 모듈의 업데이트 기능을 수행함-가 모듈 업데이터 구동을 요청받는 단계; 및 기 저장된 하위 버전의 모듈은 삭제하고 상위 버전의 모듈을 다운로드하여 저장하는 단계를 포함한다. According to another feature of the invention, a module update method is provided. The module update method may include: receiving a module updater, wherein the module updater is formed in a unique platform code binary form independent from the terminal binary to perform an update function of each module constituting the mobile platform; And deleting the previously stored lower version module and downloading and storing the higher version module.

본 발명에 의하면, 모바일 플랫폼에 정적으로 탑재되는 모듈 범위를 최소화하여 단말 바이너리 교체없이 모바일 플랫폼의 기능 업데이트가 용이하다. According to the present invention, it is easy to update the function of the mobile platform without replacing the terminal binary by minimizing the range of modules statically mounted on the mobile platform.

따라서, 모바일 플랫폼에 새로운 기능의 추가, 변경, 삭제가 용이하여 단말 출시 이후, 모바일 플랫폼 기능 개선, 통신 사업자의 신규 서비스 제공 목적으로 새로운 기능 모듈을 추가, 변경할 수 있다.Therefore, it is easy to add, change, and delete new functions to the mobile platform, and after the terminal is released, new function modules may be added and changed for the purpose of improving the mobile platform function and providing new services of the telecommunications carrier.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Throughout the specification, when a part is said to "include" a certain component, it means that it can further include other components, without excluding other components unless specifically stated otherwise. In addition, the terms “… unit”, “… unit”, “module”, etc. described in the specification mean a unit that processes at least one function or operation, which may be implemented by hardware or software or a combination of hardware and software. have.

본 명세서에서 모바일 플랫폼은 이동통신 단말에 탑재되어 모바일 표준 플랫폼 규격에 따라 작성된 응용프로그램을 실행시킬 수 있는 단말의 실행 환경(Runtime Execution Environment)을 의미한다. 모바일 플랫폼은 응용프로그램 관리와 API(Application Programing Interface) 관리 기능을 포함한다. In the present specification, the mobile platform refers to a runtime execution environment of a terminal that can be mounted on a mobile communication terminal and execute an application program created according to a mobile standard platform standard. The mobile platform includes application management and application programming interface (API) management.

본 발명의 실시예에 따르면, 모바일 플랫폼은 기능 단위로 세분화되어 기능 별로 모듈화된 구조로 이루어진다. According to an embodiment of the present invention, the mobile platform is divided into functional units and has a modular structure for each function.

이하, 도면을 참조로 하여 본 발명의 실시예에 따른 모듈 형태로 관리 및 업데이트가 이루어지는 모바일 플랫폼이 탑재된 이동통신 단말, 그 모바일 플랫폼 구동 방법, 모듈 관리 방법 및 모듈 업데이트 방법에 대하여 설명한다. Hereinafter, a mobile communication terminal equipped with a mobile platform managed and updated in a module form according to an embodiment of the present invention, a mobile platform driving method, a module management method, and a module update method will be described with reference to the drawings.

도 4는 본 발명의 실시예에 따른 모바일 플랫폼의 기능 별로 모듈화된 구조를 나타낸 개념도이다.4 is a conceptual diagram illustrating a modular structure for each function of a mobile platform according to an embodiment of the present invention.

도 4에 보인 바와 같이, 모바일 플랫폼은 기능별로 모듈화된 구조로 이루어진다. 이때, 기능별로 모듈화된 구조는 수평적 모듈화와 수직적 모듈화로 이루어진다. As shown in FIG. 4, the mobile platform has a modular structure for each function. At this time, the modular structure for each function consists of horizontal modularity and vertical modularity.

수평적 모듈화는 모바일 플랫폼에 대한 단위 기능을 정의하고 단위 기능을 모듈화하여 구현하는 것이다. 이렇게 하면, 단말의 종류, 하드웨어 특성에 따라 선별적으로 선택된 모듈들로 구성된 모바일 플랫폼을 단말에 탑재할 수 있다. 또한, 모바일 플랫폼에 새로운 기능의 추가, 변경, 삭제가 용이하다. 따라서, 단말 출시 이후, 모바일 플랫폼 기능 개선, 통신 사업자의 신규 서비스 제공 목적으로 새로운 기능 모듈을 추가, 변경할 수 있다.Horizontal modularization defines the unit functions for the mobile platform and implements the unit functions modularly. In this way, the mobile platform configured with modules selectively selected according to the type and hardware characteristics of the terminal may be mounted on the terminal. In addition, it is easy to add, change, or delete new functions on the mobile platform. Therefore, after launching the terminal, a new function module may be added and changed for the purpose of improving the mobile platform function and providing a new service for the communication service provider.

수직적 모듈화는 프로세스, 메모리 및 이벤트 등을 관리하는 커널 계층(Kernel Layer)(101), 네트워크, IO(InputOutput), 미디어 등 플랫폼의 중추적 기능을 담당하며 API 기능을 수행하는 시스템 계층(System Layer)(103) 및 어플리케이션이 사용하는 API의 표준을 담당하는 API 계층(Layer)(105)으로 계층화된 것이다. 이때, 각 계층은 복수의 단위 기능을 포함하고, 각각의 단위 기능은 하나의 모듈(107)로 구현된다.Vertical modularization plays a pivotal role in the platform such as Kernel Layer 101, which manages processes, memory, and events, network, InputOutput (IO), media, etc. 103) and an API layer 105 that is responsible for the standard of the API used by the application. In this case, each layer includes a plurality of unit functions, and each unit function is implemented by one module 107.

여기서, 모듈(107)은 모바일 플랫폼을 구성하는 각 기능별로 분류된 독립된 플랫폼 코드 바이너리라 정의한다. 따라서, 종래에 플랫폼 코드가 단말 바이너리에 정적(static)으로 링크되던 것과 달리 본 발명의 실시예에 따른 모바일 플랫폼은 각 모듈에 따른 단말 탑재 바이너리를 선별적으로 선택할 수 있는 구조로 이루어진다. Here, the module 107 is defined as an independent platform code binary classified for each function constituting the mobile platform. Accordingly, unlike the conventional platform code is statically linked to the terminal binary, the mobile platform according to the embodiment of the present invention has a structure capable of selectively selecting the terminal-mounted binary according to each module.

모바일 플랫폼을 기능 단위로 세분화하여 동적 라이브러리로 구성할 수 없는 기능을 분류하고 이를 모듈(107)로 구현한다. 즉 정적으로 탑재되는 모듈 범위를 최소화하여 단말 바이너리 교체없이 모바일 플랫폼의 일부 기능을 업데이트할 수 있게 한다. The mobile platform is divided into functional units to classify functions that cannot be configured as dynamic libraries and implement them as modules 107. In other words, by minimizing the range of statically loaded modules, some functions of the mobile platform can be updated without replacing the terminal binary.

각 모듈(107)은 모듈 출력(export) 인터페이스 및 모듈 입력(import) 인터페이스를 제공한다. 즉 모듈(107)은 다른 모듈이나 어플리케이션에서 사용할 수 있도록 모듈(107)에서 제공하는 함수를 출력하는 모듈 출력(export) 인터페이스를 제공한다. 또한, 모듈(107)은 다른 모듈의 인터페이스를 사용할 경우 다른 모듈로부터 함수를 입력받을 모듈 입력(import) 인터페이스를 제공한다.Each module 107 provides a module export interface and a module import interface. That is, the module 107 provides a module export interface for outputting a function provided by the module 107 so that it can be used by another module or application. In addition, the module 107 provides a module import interface to receive a function from another module when using the interface of another module.

또한, C, JAVA 인터페이스를 모두 지원하는 모바일 플랫폼의 기능은 하나의 모듈(107)로 구성하여 API 계층(105)으로 분류한다. 즉 같은 기능을 수행하며 C와 JAVA 인터페이스를 제공하는 소스들을 한 곳으로 모아 하나의 라이브러리(library)로 생성될 수 있게 한다. In addition, the functions of the mobile platform supporting both the C and JAVA interfaces are classified into the API layer 105 by configuring a single module 107. In other words, it can perform the same function and create a library by gathering the sources that provide the C and JAVA interfaces.

도 5는 본 발명의 실시예에 따른 모바일 플랫폼의 구성도이다. 5 is a block diagram of a mobile platform according to an embodiment of the present invention.

도 5에 보인 바와 같이, 이동통신 단말에 탑재되는 모바일 플랫폼은 EFS 바이너리(Embeded File System Binaries)(301), ROM 바이너리(303), APM(Application Performance Management) 모듈(305), API(Application Programming Interface) 계층 모듈(311), 시스템 계층 모듈(323), 커널 계층 모듈(331) 및 OEM(Original Equipment Manufacturer) 계층 모듈(341)을 포함한다. As shown in FIG. 5, the mobile platform mounted in the mobile communication terminal includes an EFS binary (Embeded File System Binaries) 301, a ROM binary 303, an application performance management (APM) module 305, and an application programming interface (API). ) Layer module 311, system layer module 323, kernel layer module 331, and original equipment manufacturer (OEM) layer module 341.

모바일 플랫폼 위에서 동작하는 응용 프로그램 파일들은 EFS 바이너리(301) 및 롬 바이너리(ROM Binary)(303)에 포함된다.Application files running on the mobile platform are included in the EFS binary 301 and the ROM binary 303.

EFS 바이너리(Embeded File System Binaries)(301)는 사용자 접근이 용이한 코드 영역으로서, 이동통신 단말에 기본적인 어플리케이션 프로그램을 저장한다. 단문메시지, 사진, 벨소리, 게임 등 사용자 접근이 용이한 코드 영역이다. 이동통신 단말기에서 다양한 서비스를 제공하기 위해서는, 이동통신단말기에 기본적인 어플리케이션 프로그램을 저장한다. 또한, 사전에 사업자와 개발자등 협의에 의해 설정되는 사이즈를 가지는 영역으로 파일 시스템 형식을 취하는 메모리의 한 영역이다.The EFS binary (Embeded File System Binaries) 301 is a code area that is easily accessible to the user, and stores basic application programs in the mobile communication terminal. It is a code area that is accessible to users such as short messages, pictures, ringtones, and games. In order to provide various services in the mobile communication terminal, a basic application program is stored in the mobile communication terminal. In addition, it is an area having a size that is set in advance by consultation with operators and developers.

ROM 바이너리(303)는 이동통신 단말의 동작에 핵심적인 기능을 담당하는 운영체제(OS) 및 필수 어플리케이션(Application)들이 저장되는 사용자 접근이 제한되는 코드(Code) 영역이다. OEM 계층 모듈(341)의 플랫폼 액티베이터(Activator)(345)는 ROM 바이너리(303)에 정적으로 링크된다.The ROM binary 303 is a code area in which a user's access to an operating system (OS) and essential applications, which are essential for the operation of the mobile communication terminal, is stored. The platform activator 345 of the OEM layer module 341 is statically linked to the ROM binary 303.

어플리케이션 수행 관리(Application Performance Management, 이하 'APM'으로 통칭함) 모듈(305)은 어플리케이션 1, 2(307, 309)의 다운로드, 등록, 저장, 삭 제 등을 제어하고 관련 API 및 컴포넌트들의 추가, 갱신을 제어한다. 어플리케이션 1, 2(307, 309)은 이메일, 위치 기반, 게임들, 캐릭터 벨, 비디오 스트리밍, MMS(Multimedia Message Service) 등의 모바일 플랫폼 기반위에서 동작하는 다양한 서비스 어플리케이션들이다. Application Performance Management (hereinafter referred to as 'APM') module 305 controls the download, registration, storage, deletion, etc. of the applications 1, 2 (307, 309) and add related APIs and components, Control the update. Applications 1 and 2 (307, 309) are various service applications that operate on the mobile platform base such as email, location-based, games, character bell, video streaming, multimedia message service (MMS).

API(Application Programming Interface) 계층 모듈(311)은 어플리케이션 1, 2(307, 309)의 실행을 위한 API 함수를 포함하며, 각각의 모듈들을 포함한다. 각각의 모듈은 Display 모듈(313), Network 모듈(315), Handset 모듈(317), Termres 모듈(319) 및 File 모듈(321) 등을 포함할 수 있다. The application programming interface (API) layer module 311 includes API functions for executing applications 1 and 2 (307 and 309), and includes respective modules. Each module may include a Display module 313, a Network module 315, a Handset module 317, a Termres module 319, a File module 321, and the like.

이때, API 계층 모듈(311)은 어플리케이션 1, 2(307, 309)이 운영체제에 특정 처리를 위해 호출할 수 있는 함수의 집합으로서, 핸드셋 하드웨어를 제어하는 API 및 어플리케이션 1, 2(307, 309)에서 실질적으로 사용되는 API들을 포함한다.At this time, the API layer module 311 is a set of functions that applications 1 and 2 (307, 309) can call to the operating system for specific processing, and API and application 1, 2 (307, 309) for controlling handset hardware. Includes APIs that are used in practice.

시스템 계층 모듈(323)은 CDMA 망에서는 Rex OS를 지칭하는 것으로 간단한 단말기 운영체제 기능과 통신 기능 및 각종 디바이스 드라이버가 포함된다. 네트워크, IO(Input/Output), 미디어 등 모바일 플랫폼의 중추적 기능을 담당하며 API 기능을 수행하는 시스템 모듈(325) 및 File 모듈(321)을 포함한다. 여기서, 시스템 모듈(325)은 모바일 플랫폼이 제공하는 HAL(Hardware Adaptation Layer) API(329)를 관리한다.The system layer module 323 refers to a Rex OS in a CDMA network, and includes a simple terminal operating system function, a communication function, and various device drivers. It includes a system module 325 and a file module 321 that are responsible for the pivotal functions of the mobile platform such as a network, IO (Input / Output), media, and perform API functions. Here, the system module 325 manages a hardware adaptation layer (HAL) API 329 provided by the mobile platform.

커널 계층 모듈(331)은 모바일 플랫폼의 전체 실행 과정에서 가장 핵심적인 연산이 이루어지는 부분으로서, 메모리에 상주하여 프로세스, 메모리를 관리하고 이동통신 단말기의 장치들을 제어하고 입출력을 처리한다.The kernel layer module 331 is the most essential operation in the entire execution process of the mobile platform. The kernel layer module 331 resides in a memory, manages processes and memory, controls devices of a mobile communication terminal, and processes input / output.

커널 계층 모듈(331)은 모바일 플랫폼에서 기본이 되는 필수 기능들을 각각 모듈로 구현하여 하나의 독립된 계층으로 구성한다. 커널 계층 모듈(331)은 예를 들어, Memory Manager, Thread Manager, Timer, Class Loader 등과 같은 기본 기능들을 제공한다. 커널 계층 모듈(331)은 커널 모듈(333) 및 모듈 매니저(337)를 포함한다. The kernel layer module 331 implements essential functions, which are basic in the mobile platform, as modules, and configures one independent layer. The kernel layer module 331 provides basic functions such as a memory manager, a thread manager, a timer, a class loader, and the like. The kernel layer module 331 includes a kernel module 333 and a module manager 337.

여기서, 커널 모듈(333)은 모바일 플랫폼이 제공하는 HAL API(335)를 관리한다. 이때, 커널 모듈(333)은 도면에는 도시하지 않았지만, 커널 계층 모듈(331)을 구성하는 각각의 기능이 모듈 형태로 구현된 코어 모듈, 쓰레드(Thread) 모듈, 타겟 모듈 중 하나를 포함할 수 있다. 코어 모듈은 모바일 플랫폼 고유의 기능을 수행하는 모듈이고, 쓰레드 모듈은 이동통신 단말에 탑재된 운영체제가 지원하는 쓰레드를 활용하기 위해 지정되며, 타겟 모듈은 이동통신 단말의 CPU(Central Processing Unit)에 따라 코드를 달리해야 하는 커널 기능을 만족시키기 위해 지정된다.Here, the kernel module 333 manages the HAL API 335 provided by the mobile platform. In this case, although not shown in the figure, the kernel module 333 may include one of a core module, a thread module, and a target module, each of the functions constituting the kernel layer module 331 implemented in a module form. . The core module is a module that performs functions specific to the mobile platform, and the thread module is designated to utilize threads supported by an operating system installed in the mobile communication terminal, and the target module is determined according to the central processing unit (CPU) of the mobile communication terminal. Specified to satisfy kernel functionality that requires different code.

또한, 모듈 매니저(337)는 모바일 플랫폼을 구성하는 각 기능별 모듈의 로드(load), 언로드(unload) 등 라이프 사이클(life cycle)을 관리하는 모바일 플랫폼 커널 모듈이다. 모듈 매니저(337)는 HAL 인터페이스(339)를 포함한다. HAL 인터페이스(339)는 모바일 플랫폼과 OEM이 정적(static)으로 링크되지 않는 구조에서 모바일 플랫폼이 OEM이 제공하는 HAL API를 호출할 수 있도록 하기 위한 메모리 상의 자료 구조를 의미한다.In addition, the module manager 337 is a mobile platform kernel module that manages a life cycle such as load and unload of modules for each function constituting the mobile platform. Module manager 337 includes a HAL interface 339. The HAL interface 339 refers to an in-memory data structure that allows the mobile platform to call the HAL API provided by the OEM in a structure in which the mobile platform and the OEM are not statically linked.

OEM(Original Equipment Manufacturer) 계층 모듈(341)은 플랫폼 이식에 있 어서 하드웨어 독립성을 지원할 수 있도록 하는 추상화 계층인 핸드셋 적용 계층(HAL) 모듈(343) 및 플랫폼 액티베이터(Activator)(345)를 포함한다. The original equipment manufacturer (OEM) layer module 341 includes a handset application layer (HAL) module 343 and a platform activator 345, an abstraction layer that enables hardware independence in platform porting.

여기서, HAL 모듈(343)은 모바일 플랫폼의 하드웨어 독립성을 유지하기 위한 추상화 계층으로, 상위 계층들이 HAL 모듈(343) 위에서 시스템 계층 모듈(323)과 무관하게 동작하도록 지원한다. HAL은 단말기 제조사를 위한 API를 정의한 것으로 단말기 제조사마다 서로 다른 기기들을 지원하기 위해 HAL이라고 하는 추상화 계층을 도입한다. 그리고 이 HAL이 단말기에 포팅되면 바로 모바일 플랫폼 실행 엔진을 탑재할 수 있다. 즉 데스크탑 윈도우즈 환경에서는 HAL을 WIN 32에 맞게 포팅하면 에뮬레이터가 바로 되는 것이다.Here, the HAL module 343 is an abstraction layer for maintaining hardware independence of the mobile platform, and supports upper layers to operate independently of the system layer module 323 on the HAL module 343. HAL defines APIs for handset manufacturers and introduces an abstraction layer called HAL to support different devices. And when this HAL is ported to the handset, it can be equipped with a mobile platform execution engine. In a desktop Windows environment, porting the HAL to WIN 32 makes the emulator straight away.

또한, 플랫폼 액티베이터(345)는 이동통신 단말에 탑재되는 WIPI(Wireless Internet Platform for Interoperability) 실행 바이너리이다. 플랫폼 액티베이터(345)는 운영체제(OS, Oriented System)와의 이벤트 교류 및 모바일 플랫폼이 제공하는 HAL이 위치하는 곳이며 OS가 제공하는 바이너리 포맷으로 구성된다. 또한, 모듈 매니저(337)를 로딩하는 역할을 수행한다. 그리고 커널 계층 모듈(331)과 통신하기 위한 HAL 인터페이스(347)를 제공한다. In addition, the platform activator 345 is a wireless Internet platform for interoperability (WIPI) executable binary mounted on the mobile communication terminal. The platform activator 345 is the place where the HAL provided by the mobile platform and the event exchange with the operating system (OS, Oriented System) is located and is configured in a binary format provided by the OS. In addition, the module manager 337 serves to load. And a HAL interface 347 for communicating with the kernel layer module 331.

이와 같이 구성된 모바일 플랫폼의 동작에 대해 설명한다. 모바일 플랫폼의 동작은 단말 부팅시 플랫폼 구동 흐름과, 어플리케이션 API 호출 흐름/HAL 호출 흐름, OEM에서 플랫폼 제공 HAL API 호출 흐름으로 이루어진다. 이때, 아래 반괄호 순번은 도면에 표시된 순번과 일치하며, 도면에서는 각 모듈 간의 통신을 순번이 매겨진 화살표로 나타낸다. The operation of the mobile platform configured as described above will be described. The operation of the mobile platform is composed of platform driving flow, terminal API call flow / HAL call flow, and platform-provided HAL API call flow from the OEM. In this case, the lower parenthesis order is consistent with the order shown in the figure, and the communication between the modules is indicated by an ordered arrow.

1) 이동통신 단말의 부팅시 OEM 계층 모듈(341)이 플랫폼 액티베이터(345)에게 모바일 플랫폼의 구동을 요청한다.1) Upon booting of the mobile communication terminal, the OEM layer module 341 requests the platform activator 345 to drive the mobile platform.

2) 플랫폼 액티베이터(345)는 모듈 매니저(337)를 로딩하고 HAL 인터페이스(347) 포인터를 전달한다.2) The platform activator 345 loads the module manager 337 and passes the HAL interface 347 pointer.

3) 로딩된 모듈 매니저(337)는 OEM이 제공하는 HAL 인터페이스(347) 포인터를 통해 필요한 기본 HAL API를 검색(look up) 한다.3) The loaded module manager 337 looks up the required basic HAL API through the HAL interface 347 pointer provided by the OEM.

4) 모듈 매니저(337)는 모바일 플랫폼 동작에 필요한 기본 모듈들을 로딩하고 모바일 플랫폼을 초기화한다.4) The module manager 337 loads basic modules required for the mobile platform operation and initializes the mobile platform.

5) 모듈 매니저(337)는 APM 모듈(305)을 구동시켜 단말 부팅 작업을 완료한다.5) The module manager 337 drives the APM module 305 to complete a terminal booting operation.

6) 어플리케이션 2(309)이 구동되고 어플리케이션 2(309)는 모바일 플랫폼이 제공하는 API를 호출한다. 예를 들어, File API가 호출된다.6) Application 2 309 is run and Application 2 309 calls the API provided by the mobile platform. For example, the File API is called.

7) 이때, 해당되는 API 기능이 작동하는 시스템 계층 모듈(323)의 기능 모듈이 호출된다. 예를 들어, File 모듈(321)이 호출된다. 만약, 시스템 계층 모듈(323)의 기능 모듈이 로딩되어 있지 않은 경우 모듈 매니저(337)가 기능 모듈을 로딩한다.7) At this time, the function module of the system layer module 323 that the corresponding API function is called. For example, the File module 321 is called. If the function module of the system layer module 323 is not loaded, the module manager 337 loads the function module.

8) 시스템 계층 모듈(323)의 File 모듈(321)은 모듈 매니저(337)에게 HAL API 호출을 요청한다.8) The File module 321 of the system layer module 323 requests the HAL API call from the module manager 337.

9) 모듈 매니저(337)는 3)에서 검색한 HAL API를 호출한다.9) The module manager 337 calls the HAL API retrieved from 3).

10) OEM 계층 모듈(341)의 플랫폼 액티베이터(345)는 모바일 플랫폼과의 연 동 기능 수행을 위해 모바일 플랫폼이 제공하는 HAL API를 호출한다. 모바일 플랫폼이 제공하는 HAL API Wrapper를 플랫폼 액티베이터(345)가 구현한다.10) The platform activator 345 of the OEM layer module 341 calls the HAL API provided by the mobile platform to perform an interworking function with the mobile platform. The platform activator 345 implements the HAL API wrapper provided by the mobile platform.

11) 플랫폼 액티베이터(345)는 모듈 매니저(337)를 통해 플랫폼 제공 HAL API를 호출하여 기능을 수행한다.11) The platform activator 345 calls the platform-provided HAL API through the module manager 337 to perform a function.

그러면, 이상 기술한 모바일 플랫폼이 모듈 형태로 관리 및 업데이트가 이루어지게 하는 구성에 대해 상세히 설명한다. Then, the configuration in which the mobile platform described above is managed and updated in a module form will be described in detail.

도 6은 본 발명의 실시예에 따른 모듈 관리 및 업데이트를 위한 구성을 나타낸다. 6 shows a configuration for module management and updating according to an embodiment of the present invention.

도 6에 보인 바와 같이, 모듈 매니저(337)는 모듈 매니저 인터페이스(337a), 모듈 풀(337b), 모듈 정보 테이블(337c), HAL 인터페이스(339) 및 제어 매니저(337e)를 포함한다. As shown in FIG. 6, the module manager 337 includes a module manager interface 337a, a module pool 337b, a module information table 337c, a HAL interface 339 and a control manager 337e.

모듈 매니저 인터페이스(337a)는 어플리케이션에서 또는 모듈 간에 모듈 사용을 위해 필요한 인터페이스로 정의된다. 모듈 매니저 인터페이스(337a)는 모듈에 대한 리스트 조회, 모듈 정보 조회, 모듈 다운로드, 생성을 위한 인터페이스를 포함한다. The module manager interface 337a is defined as an interface required for module use in an application or between modules. The module manager interface 337a includes an interface for list inquiry, module information inquiry, module download, and generation for the module.

모듈 리스트 조회는, 단말에 설치되어 있는 모듈의 리스트 정보를 제공한다. 이때, 리스트에 포함되어야 하는 모듈은 설치가 완료된 모듈이다. 즉 모듈의 다운로드가 완료되지 않거나 모듈의 설치가 완료되지 않은 경우는 리스트에 포함되지 않는다. 단말에 설치되는 모듈 각각은 유일한 식별자(identifier)를 가지게 되며 모듈의 ID가 식별자 역할을 수행한다. 즉, 어플리케이션은 모듈 ID를 통해 모듈에 접근하게 되므로 모듈 리스트 포맷은 모듈 아이디가 연속적으로 나열된 문자열 형태로 구성된다. The module list inquiry provides list information of modules installed in the terminal. At this time, the module to be included in the list is a module that has been installed. That is, if the download of the module is not completed or the installation of the module is not completed, it is not included in the list. Each module installed in the terminal has a unique identifier, and the ID of the module serves as an identifier. That is, since the application accesses the module through the module ID, the module list format is configured in the form of a string in which the module IDs are continuously listed.

여기서, 모듈 매니저는 모듈 리스트 조회가 요청되면, 단말에 설치된 모듈을 검색하여, 유효한 모듈 들로만 구성된 모듈 리스트를 구성하여 제공한다. Here, when a module list inquiry is requested, the module manager searches for a module installed in the terminal and constructs and provides a module list including only valid modules.

모듈 정보 조회는, 모듈 리스트 조회 후 단말에 설치되어 있는 특정 모듈의 정보를 제공하는 기능이다. 즉 단말에 설치되어 있는 모듈의 정보를 제공한다. 제공되는 모듈의 정보는 아래 표 1과 같다. The module information inquiry is a function of providing information of a specific module installed in the terminal after the module list inquiry. That is, it provides information of the module installed in the terminal. Information on the modules provided is shown in Table 1 below.

정보Information 설명Explanation idid 모듈 아이디. 16진수 값으로 구성되는 identifierModule ID. Identifier consisting of hexadecimal values namename 사용자가 인지할 수 있는 모듈 이름User-recognized module name versionversion 설치된 모듈 버전 xx.xx 형태로 구성Configured as installed module version xx.xx sizesize 설치된 모듈 크기. Byte 단위Module size installed. Byte unit statestate 모듈이 로딩되어 있는지의 여부Whether the module is loaded

여기서, 어플리케이션 또는 모듈이 모듈 정보 조회를 위한 파라미터를 구성하여 파라미터 전달과 함께 특정 모듈에 대한 정보를 요청하면, 모듈 매니저는 단말에 설치된 모듈을 검색하여, 유효한 모듈을 조사한다. 그리고 유효한 모듈의 이름, 버전, 크기, 로딩 여부로 구성된 모듈 정보를 제공한다. Here, when an application or a module configures a parameter for querying module information and requests information on a specific module along with parameter transfer, the module manager searches for a valid module by searching for a module installed in the terminal. It provides module information consisting of the name, version, size and loading status of a valid module.

모듈 로딩 기능은, 모듈에서 다른 모듈을 사용하기 위해 제공하는 기능이다. 어플리케이션의 DLL의 인터페이스 검색 기능과 유사하지만, 본 기능은 모듈에만 한정된다. The module loading function is a function provided to use another module in a module. It is similar to the interface search function of an application DLL, but this function is limited to a module only.

모듈 다운로드 기능은, 제공하는 모듈 정보를 토대로 신규 모듈의 다운로드 및 단말에 이미 설치되어 있는 모듈의 업그레이드 기능을 제공한다. 모듈 다운로드를 직접 수행하는 주체는 모듈 업데이터가 담당한다. 어플리케이션이 모듈 다운로드를 요청하면 모듈 업데이터가 구동되고 모듈 업데이터에게 다운로드 요청 모듈 정보가 전달된다. 모듈 다운로드 요청은 두 개 이상이 가능하다. 즉, 어플리케이션에서 여러 모듈 리스트를 구성하여 다운로드를 요청할 수 있다.The module download function provides a download function of a new module and an upgrade function of a module already installed in the terminal based on the provided module information. The module updater is responsible for directly performing the module download. When the application requests the module download, the module updater is started and the download request module information is transmitted to the module updater. There can be more than one module download request. That is, the application may construct a list of modules and request a download.

이때, 모듈 다운로드 API에서 구성해야 하는 함수 파라미터는 "[모듈 아이디1]#[모듈 버전1],[모듈 아이디2]#[모듈 버전2]"으로 구성된다. At this time, the function parameter to be configured in the module download API is composed of "[module ID1] # [module version1], [module ID2] # [module version2]".

여기서, 어플리케이션이 다운로드 요청한 모듈 정보 파라미터를 구성하고 다운로드시 자신이 중지되야 함을 파라미터로 구성하여 모듈의 다운로드를 요청하면, 모듈 매니저는 모듈 정보가 유효한지 확인한다. 모듈 정보가 유효하고 다운로드 요청한 모듈이 이미 설치되어 있지 않으면 모듈 업데이터 구동에 필요한 파라미터를 지정하여 모듈 업데이터를 구동시킬 것을 APM 모듈에게 요청한다. 이때, APM 모듈은 어플리케이션을 중지시키고 모듈 업데이터를 구동한다. Here, if the application configures the module information parameter requested to download and configures the parameter to be stopped at the time of downloading, the module manager checks whether the module information is valid. If the module information is valid and the module requested for download is not already installed, the APM module is requested to run the module updater by specifying the parameters necessary to drive the module updater. At this time, the APM module stops the application and drives the module updater.

모듈 풀(337b)은 메모리에 로딩된 즉 모듈 매니저(337)가 로딩한 각각의 모듈(107)들에 대한 정보를 관리하는 자료로서 연결 리스트로 관리된다. The module pool 337b is managed in a linked list as data that manages information about each module 107 loaded in the memory, that is, loaded by the module manager 337.

모듈 정보 테이블(337c)은 단말에 설치된 각각의 모듈(107)들에 대한 정보를 관리하는 자료로서 연결 리스트로 관리된다. The module information table 337c is a data for managing information on each module 107 installed in the terminal and is managed in a linked list.

HAL 인터페이스(339)는 OEM 계층 모듈(341)이 제공하는 HAL API를 호출할 수 있도록 하기 위한 메모리 상의 자료 구조이다. HAL interface 339 is an in-memory data structure for calling the HAL API provided by OEM layer module 341.

각각의 모듈(107)은 단말 바이너리에 정적으로 링크되는 구조가 아니다. 따라서 각각의 모듈(107)은 HAL API의 주소를 알고 있지 않다. 이러한 점을 고려하여 HAL 인터페이스(339)는 각각의 모듈(107)이 OEM 계층 모듈(341)이 제공하는 HAL 인터페이스의 기능 테이블(Function table)을 통해 API를 호출할 수 있도록 설계된다.Each module 107 is not a structure that is statically linked to the terminal binary. Thus, each module 107 does not know the address of the HAL API. In this regard, the HAL interface 339 is designed so that each module 107 can call the API through the function table of the HAL interface provided by the OEM layer module 341.

모듈 매니저(337)가 사용하는 HAL 인터페이스 목록은 다음 표 2와 같이 정의될 수 있다. The HAL interface list used by the module manager 337 may be defined as shown in Table 2 below.

HAL 인터페이스HAL interface HAL 인터페이스 명HAL interface name 설명Explanation Interface HALInterface HAL hal_interfacehal_interface OEM 제공 HAL 인터페이스의 Look-up을 위해 필요한 인터페이스Interface required for look-up of OEM-supplied HAL interfaces System HALSystem HAL hal_systemhal_system 모듈 로딩에 필요한 메모리 할당을 위해 필요한 인터페이스Interface needed for memory allocation for module loading File HALFile HAL hal_filehal_file 모듈 정보 파일, 모듈 바이너리 파일에 접근하기 위해 필요한 인터페이스Interface needed to access module information file, module binary file

또한, 제어 매니저(337e)는 모듈 매니저 인터페이스(337a), 모듈 풀(337b), 모듈 정보 테이블(337c) 및 HAL 인터페이스(339)의 동작을 제어한다. 그리고 모듈 업데이터(349)와 연동하고, 모듈 업데이터(349)는 각각의 모듈(107)에 대한 업데이트 관련 제반 동작을 수행한다. 모듈 매니저(337)는 HAL 인터페이스를 제공하고, 모듈 정보를 관리하며, 모듈의 동적 로딩 및 언로딩을 수행한다. 모듈 매니저(337)는 단말에 설치된 모듈의 리스트를 조회하고 특정 모듈의 정보를 조회한다. The control manager 337e also controls the operation of the module manager interface 337a, the module pool 337b, the module information table 337c, and the HAL interface 339. In addition, the module updater 349 interworks with the module updater 349, and the module updater 349 performs update-related operations for each module 107. The module manager 337 provides a HAL interface, manages module information, and performs dynamic loading and unloading of modules. The module manager 337 inquires a list of modules installed in the terminal and inquires information of a specific module.

모듈 업데이터(349)는 모바일 플랫폼의 모듈 업데이트를 위한 시스템 어플리케이션으로서, EFS 바이너리(301)에 저장된다. 따라서 모듈 업데이터 자체의 업데이트 역시 일반 어플리케이션의 업데이트 기능을 사용하여 동일하게 업데이트 가능하다.The module updater 349 is a system application for module update of the mobile platform and is stored in the EFS binary 301. Therefore, the update of the module updater itself can be updated in the same way using the update function of the general application.

모듈 업데이터(349)는 모바일 플랫폼을 구성하는 각각의 모듈(107)을 상위 버전으로 업데이트 가능하게 한다. 또한, 업데이트에 필요한 커널 계층 모듈(331)의 일부 모듈 및 플랫폼 액티베이터(345)를 제외한 모든 모듈(107)을 업데이트한다. The module updater 349 makes it possible to update each module 107 constituting the mobile platform to a higher version. In addition, all modules 107 except for the platform activator 345 and some modules of the kernel layer module 331 required for the update are updated.

모듈 업데이트 서버(351)는 사용자가 단말을 통해 접속해서 어플리케이션을 다운로드 받을 수 있도록 해주는 시스템으로서, 각 모듈(107)의 최신 버전을 저장한다. 모듈 업데이터(349)는 모듈 업데이트 서버(351)에 접속하여 각 모듈의 최신 버전을 다운로드 받는다. The module update server 351 is a system that allows a user to access an application through a terminal to download an application, and stores the latest version of each module 107. The module updater 349 accesses the module update server 351 to download the latest version of each module.

이하, 도 7 내지 도 10은 모듈 매니저(337)의 세부적인 동작을 나타낸다. 7 to 10 show detailed operations of the module manager 337.

먼저, 도 7은 본 발명의 실시예에 따른 모바일 플랫폼 구동 과정을 나타낸 흐름도이다. First, FIG. 7 is a flowchart illustrating a process of driving a mobile platform according to an embodiment of the present invention.

도 7에 보인 바와 같이, 플랫폼 액티베이터(345)는 초기화 함수(MH_pltStart)를 통해 OEM 계층 모듈(341)이 플랫폼 구동을 요청하면, 모듈 매니저(337)에게 모듈 매니저 초기화를 요청한다(S101). As shown in FIG. 7, when the OEM layer module 341 requests platform driving through the initialization function MH_pltStart, the platform activator 345 requests the module manager 337 to initialize the module manager (S101).

모듈 매니저(337)는 HAL 인터페이스 정보 테이블 및 모듈 정보 테이블을 초기화한다(S103). 그리고 플랫폼 액티베이터(345)에게 모듈 매니저 초기화 완료를 알린다(S105). The module manager 337 initializes the HAL interface information table and the module information table (S103). The platform activator 345 notifies the module manager initialization completion (S105).

플랫폼 액티베이터(345)는 모듈 매니저(337)에게 플랫폼 구동을 요청한다(S107). 모듈 매니저(337)는 커널 모듈(333)을 로딩(S109)하여 커널 모듈(333)에게 플랫폼 구동을 요청한다(S111).The platform activator 345 requests the module manager 337 to drive the platform (S107). The module manager 337 loads the kernel module 333 (S109) and requests the kernel module 333 to drive the platform (S111).

도 8은 본 발명의 실시예에 따른 HAL 인터페이스 제공 과정을 나타낸다.8 illustrates a process of providing a HAL interface according to an embodiment of the present invention.

도 8에 보인 바와 같이, 플랫폼 액티베이터(345)가 모듈 매니저(337)에게 모듈 매니저 초기화를 요청(S201)한다. 이때, "hal_interface" 인터페이스의 기능 테이블(Function Table) 포인터가 파라미터로 전달된다.As shown in FIG. 8, the platform activator 345 requests the module manager 337 to initialize the module manager (S201). At this time, a function table pointer of the "hal_interface" interface is passed as a parameter.

모듈 매니저(337)는 HAL 인터페이스 정보 테이블을 초기화한다(S203).The module manager 337 initializes the HAL interface information table (S203).

모듈 매니저(337)는 S201 단계에서 전달받은 "hal_interface" 인터페이스를 사용하여 OEM 계층 모듈(341)에게 HAL 인터페이스 리스트를 요청한다(S205). The module manager 337 requests the HAL interface list from the OEM layer module 341 using the "hal_interface" interface received in step S201 (S205).

OEM 계층 모듈(341)은 자신이 제공하는 HAL 인터페이스를 리스트로 구성하여 모듈 매니저에게 반환한다(S207).The OEM layer module 341 composes the list of HAL interfaces provided by the OEM layer to the module manager (S207).

모듈 매니저(337)는 반환 받은 HAL 인터페이스 리스트를 HAL 인터페이스 정보 테이블에 등록한다(S209).The module manager 337 registers the returned HAL interface list in the HAL interface information table (S209).

이후, 클라이언트 모듈이 특정 HAL 인터페이스 검색을 모듈 매니저(337)에게 요청한다(S211). 이때, HAL 인터페이스의 이름이 문자열 형태로 파라미터로 전달된다. 여기서, 클라이언트 모듈은 모듈 매니저(337)에게 특정 동작을 요청하는 임의의 모듈로서, 모듈 매니저 자신이 될 수도 있다.Thereafter, the client module requests the module manager 337 to search for a specific HAL interface (S211). At this time, the name of the HAL interface is passed as a parameter in the form of a string. Here, the client module is any module that requests a specific operation from the module manager 337, and may be the module manager itself.

모듈 매니저(337)는 HAL 인터페이스 정보 테이블을 조회(S213)한다. 그리고 요청 받은 HAL 인터페이스의 검색을 위한 정보 획득 여부를 판단한다(S215).The module manager 337 queries (S213) the HAL interface information table. In operation S215, it is determined whether information for retrieving the requested HAL interface is obtained.

이때, 검색에 실패한 경우, 실패 응답을 클라이언트 모듈에게 알린다(S217). At this time, if the search fails, the failure response is notified to the client module (S217).

그러나, 검색에 성공한 경우, 모듈 매니저(337)는 요청 받은 HAL 인터페이스의 검색을 OEM 계층 모듈(341)에게 요청한다(S219).However, if the search is successful, the module manager 337 requests the OEM layer module 341 to search for the requested HAL interface (S219).

OEM 계층 모듈(341)은 요청 받은 HAL 인터페이스의 기능 테이블을 구성(S211)하고 이를 모듈 매니저(337)에게 반환한다(S223).The OEM layer module 341 configures the function table of the requested HAL interface (S211) and returns it to the module manager 337 (S223).

모듈 매니저(337)는 반환 받은 HAL 인터페이스 주소를 HAL 인터페이스 정보 테이블에 등록(S225)한 후 클라이언트 모듈에게 성공을 알리는 검색 응답을 반환한다(S227).The module manager 337 registers the returned HAL interface address in the HAL interface information table (S225), and then returns a search response indicating success to the client module (S227).

이와 같이, 모듈 매니저(337)는 모바일 플랫폼을 구성하는 각각의 모듈(107)이 HAL API를 사용할 수 있도록 HAL 인터페이스를 검색하고 검색한 HAL 인터페이스를 제공한다. As such, the module manager 337 retrieves and retrieves the HAL interface so that each module 107 constituting the mobile platform can use the HAL API.

도 9는 본 발명의 실시예에 따른 모듈 매니저 초기화 과정을 나타낸다. 즉 모듈 매니저 초기화시 모듈 정보 테이블 로딩 과정을 나타낸다.9 illustrates a module manager initialization process according to an embodiment of the present invention. In other words, it shows the module information table loading process when initializing the module manager.

도 9에 보인 바와 같이, 모듈 매니저(337)는 플랫폼 액티베이터(345)가 요청(S301)한 모듈 매니저 초기화 성공 여부를 판단한다(S303). As shown in FIG. 9, the module manager 337 determines whether the platform manager 345 has succeeded in initializing the module manager requested by step S301 (S303).

성공한 경우, 모듈 정보 테이블(337c)을 초기화(S305)하고 EFS 바이너리(301)에 저장되어 있는 모듈 정보 파일들을 검색(S307)하여 모듈 정보 파일의 존재 유무를 판단한다(S309). 여기서, 모듈 정보 파일은 모듈 정보가 지정된 프로토콜로 저장된 파일이다. 모듈은 모듈 정보 파일과 함께 저장되어 모듈 관리 및 모듈 업데이트가 가능하다. 따라서 신규 모듈 또는 단말에 탑재되어 있는 모듈 보다 상위 버전의 모듈의 다운로드 시에도 모듈 정보 파일이 함께 다운로드된다.If successful, the module information table 337c is initialized (S305), and the module information files stored in the EFS binary 301 are searched (S307) to determine whether the module information file exists (S309). Here, the module information file is a file stored in a protocol in which module information is designated. Modules are stored with module information files for module management and module update. Therefore, even when downloading a module of a higher version than a module mounted in a new module or terminal, the module information file is downloaded together.

모듈 정보 파일이 존재하는 경우, 모듈 정보 파일의 유효성을 확인(S311)하여 유효한지 여부를 판단한다(S313). 즉 EFS 바이너리(301)에 저장되어 있는 모듈 정보 파일과 모듈 바이너리 파일의 매핑 여부와 모듈 정보 파일의 포맷이 정상적인지를 판단한다. If the module information file exists, the validity of the module information file is checked (S311) to determine whether it is valid (S313). That is, it is determined whether the module information file and the module binary file stored in the EFS binary 301 are mapped and whether the format of the module information file is normal.

유효한 경우, 검색된 모듈 정보 파일을 모듈 정보 테이블(337c)에 등록한다(S315). 그리고 플랫폼 액티베이터(345)에게 모듈 매니처 초기화에 성공하였음을 알린다(S317). If valid, the found module information file is registered in the module information table 337c (S315). In addition, the platform activator 345 notifies that the module manager initialization is successful (S317).

한편, S303 단계에서 모듈 매니저 초기화 성공에 실패한 경우, EFS 바이너리(301)에 저장된 모듈 정보 파일이 하나도 존재 하지 않는 경우 및 모듈 정보 파일이 유효한 파일이 아닌 경우 플랫폼 구동 실패로 간주(S319)하고 플랫폼 액티베이터(345)에게 이를 보고한다(S321).On the other hand, if the module manager initialization is not successful in step S303, if no module information file stored in the EFS binary (301) and if the module information file is not a valid file is considered as a platform driving failure (S319) and platform activator This is reported to (345) (S321).

이와 같이, 모듈 매니저(337)는 자신의 초기화 과정에서 단말에 설치된 모듈 정보 파일들을 조회하여 각 모듈의 정보들로 모듈 정보 테이블(337c)을 구성한다. In this way, the module manager 337 inquires the module information files installed in the terminal during its initialization process to configure the module information table 337c with the information of each module.

도 10은 본 발명의 실시예에 따른 모듈 정보 테이블 갱신 과정을 나타낸다. 10 illustrates a module information table update process according to an embodiment of the present invention.

도 10에 보인 바와 같이, 모듈 업그레이드(S401)가 이루어지면 모듈 업데이터(349)는 모듈 매니저(337)에게 모듈 업데이트를 통보한다(S403). 이때 추가, 갱신된 모듈 아이디를 파라미터로 전달한다.As shown in FIG. 10, when the module upgrade S401 is made, the module updater 349 notifies the module manager 337 of the module update (S403). In this case, the added and updated module ID is transmitted as a parameter.

모듈 매니저(337)는 모듈 정보 테이블(337c)을 조회(S405)하여 업데이트된 모듈의 로딩 여부를 판단한다(S407).The module manager 337 inquires the module information table 337c (S405) and determines whether the updated module is loaded (S407).

이미 로딩이 된 경우, 모듈 업데이터(349)에게 이미 로딩되었음을 보고 한다(S409). If already loaded, the module updater 349 reports that it is already loaded (S409).

그러나 로딩 되지 않은 경우, 모듈 정보 파일을 검색(S411)하여 모듈 정보 파일의 존재 유무를 판단한다(S413). However, if it is not loaded, the module information file is searched (S411) to determine whether the module information file exists (S413).

모듈 정보 파일이 존재하지 않는 경우, 모듈 업데이터(349)에게 모듈 업데이트 실패를 보고한다(S415).If the module information file does not exist, the module update failure is reported to the module updater 349 (S415).

그러나 모듈 정보 파일이 존재하는 경우, 모듈 정보 파일을 리드(S417)하여 모듈 정보 파일이 유효한 파일인지를 판단한다(S419). 즉 정상적인 파일 포맷인지를 확인한다.However, if the module information file exists, the module information file is read (S417) to determine whether the module information file is a valid file (S419). In other words, check if the file format is normal.

유효하지 않은 파일인 경우, 모듈 업데이터(349)에게 모듈 업데이트 실패를 보고한다(S421). If the file is invalid, the module update failure is reported to the module updater 349 (S421).

그러나 유효한 파일인 경우, 모듈 정보 파일을 모듈 정보 테이블(337c)에 추가, 갱신한다(S423). 그리고 모듈 매니저(337)는 모듈 업데이터(349)에게 성공을 반환한다(S425).However, if the file is valid, the module information file is added to the module information table 337c and updated (S423). The module manager 337 returns success to the module updater 349 (S425).

이와 같이, 모듈 매니저(337)는 추가, 갱신된 모듈 정보 파일들을 조회하여 각 모듈의 정보들로 모듈 정보 테이블(337c)을 갱신한다. In this way, the module manager 337 queries the added and updated module information files and updates the module information table 337c with the information of each module.

도 11은 본 발명의 실시예에 따른 모듈 로딩 과정을 나타낸다.11 illustrates a module loading process according to an embodiment of the present invention.

도 11에 보인 바와 같이, 클라이언트 모듈로부터 특정 모듈의 로딩이 요청(S501)되면 모듈 매니저(337)는 모듈 정보 테이블(337c)을 조회(S503)하여 상기 특정 모듈의 로딩 여부를 판단한다(S505, S507). As shown in FIG. 11, when a loading of a specific module is requested from the client module (S501), the module manager 337 determines whether to load the specific module by inquiring (S503) the module information table 337c (S505). S507).

이미 로딩된 경우, 상기 특정 모듈을 메모리에 로드하지 않고 모듈 풀(337b)에서 상기 특정 모듈의 자료구조를 갱신(S509)한 후 종료한다. If it is already loaded, the module module 337b updates the data structure of the specific module in step S509 without loading the specific module into memory and terminates.

그러나 로딩되지 않은 경우, 모듈 매니저(337)는 모듈 로딩 정보를 위한 메모리 할당을 OEM 계층 모듈(341)에게 요청한다(S511). 여기서, 모듈 로딩 정보는 메모리에 로딩된 모듈을 관리하기 위한 정보이다. However, if not loaded, the module manager 337 requests the OEM layer module 341 to allocate memory for module loading information (S511). Here, the module loading information is information for managing a module loaded in the memory.

OEM 계층 모듈(341)은 요청한 메모리 크기만큼 메모리를 할당(S513)한 후 모듈 매니저(337)에게 메모리 할당 응답을 전송한다(S515).The OEM layer module 341 allocates the memory as much as the requested memory size (S513) and then transmits a memory allocation response to the module manager 337 (S515).

모듈 매니저(337)는 할당 받은 메모리에 모듈 로딩 정보를 기록(S517)하고, EFS 바이너리(301)에서 상기 특정 모듈의 모듈 바이너리를 검색한다(S519).The module manager 337 records module loading information in the allocated memory (S517), and retrieves the module binary of the specific module from the EFS binary (301) (S519).

검색 결과, 상기 모듈 바이너리의 존재 유무를 판단(S521)하여 존재하는 경우 모듈 매니저(337)는 상기 모듈 바이너리를 읽어(S523) 상기 모듈 바이너리가 유효한지를 판단한다(S525).As a result of the search, it is determined whether the module binary exists (S521), and if present, the module manager 337 reads the module binary (S523) and determines whether the module binary is valid (S525).

유효하지 않은 경우, 클라이언트 모듈에게 상기 특정 모듈의 로딩 실패를 보고한다(S527)If it is not valid, the client module reports the loading failure of the specific module (S527).

유효한 경우, 모듈 매니저(337)는 상기 특정 모듈 로딩에 필요한 메모리의 할당을 OEM 계층 모듈(341)에게 요청한다(S529). OEM 계층 모듈(341)은 요청한 메모리 크기만큼 메모리를 할당(S531)한 후 응답한다(S533). If valid, the module manager 337 requests the OEM layer module 341 to allocate the memory required for loading the specific module (S529). The OEM layer module 341 allocates the memory as much as the requested memory size (S531) and responds (S533).

모듈 매니저(337)는 할당 받은 메모리에 해당 모듈 코드를 로딩한다(S535). The module manager 337 loads the corresponding module code in the allocated memory (S535).

모듈 매니저(337)는 모듈이 등록한 모듈 초기화 함수를 호출한다(S537). The module manager 337 calls a module initialization function registered by the module (S537).

모듈 매니저(337)는 모듈 로딩 정보를 갱신하여 모듈 풀(337b)에 등록(S539)한 후 모듈 정보 테이블(337c)을 갱신(S541)하고 모듈 로딩을 완료한다(S543).The module manager 337 updates the module loading information to register it in the module pool 337b (S539), then updates the module information table 337c (S541) and completes module loading (S543).

도 12는 본 발명의 실시예에 따른 모듈 언로딩 과정을 나타낸다. 즉 어플리케이션 종료 시점에 사용이 끝난 모듈들을 언 로드 처리하는 과정을 나타낸다.12 illustrates a module unloading process according to an embodiment of the present invention. That is, the process of unloading the used modules at the end of the application is shown.

도 12에 보인 바와 같이, 클라이언트 모듈은 특정 어플리케이션의 종료를 모듈 매니저(337)에게 통보한다(S601). 이때, 종료할 어플리케이션 아이디 및 모듈 로딩 리스트 포인터가 파라미터로 전달된다.As shown in FIG. 12, the client module notifies the module manager 337 of the termination of a specific application (S601). At this time, the application ID to be terminated and the module loading list pointer are transmitted as parameters.

모듈 매니저(337)는 전달 받은 모듈 로딩 리스트를 탐색(S603)하여 로딩된 모듈의 존재 유무를 판단한다(S605).The module manager 337 searches for the received module loading list (S603) and determines whether there is a loaded module (S605).

로딩된 모듈이 존재하지 않으면 절차를 종료한다. 즉 모듈 매니저(337)는 아무런 처리도 하지 않는다.If the loaded module does not exist, the procedure is terminated. In other words, the module manager 337 does nothing.

그러나 로딩된 모듈이 존재하는 경우, 모듈 매니저(337)는 탐색된 모듈의 모듈 로딩 정보 중 모듈 로더 리스트에서, 어플리케이션 아이디에 해당하는 엔트리를 제거한다(S607). However, if there is a loaded module, the module manager 337 removes an entry corresponding to the application ID from the module loader list among the module loading information of the found module (S607).

모듈 매니저(337)는 종료된 어플리케이션 엔트리가 모두 삭제되었는지를 판단(S609)하여 남은 엔트리가 없을 때까지 S607 단계를 반복한다. 즉 탐색된 모듈을 로딩한 프로그램/DLL/모듈이 하나도 없음을 확인한다. The module manager 337 determines whether all terminated application entries have been deleted (S609), and repeats step S607 until there are no remaining entries. In other words, make sure that none of the programs / DLLs / modules have loaded the searched modules.

이후, 모듈 매니저(337)는 해당 모듈이 사용한 메모리를 OEM 계층 모듈(341)에게 반환(S611)하고 해당 모듈의 모듈 로딩 정보를 모듈 풀(337b)에서 제거(S613)한다. 그리고 모듈 정보 테이블(337c)을 갱신한다(S615).Thereafter, the module manager 337 returns the memory used by the corresponding module to the OEM layer module 341 (S611) and removes the module loading information of the corresponding module from the module pool 337b (S613). The module information table 337c is updated (S615).

도 13은 본 발명의 실시예에 따른 어플리케이션에 의한 Java Class 참조 과정을 나타낸다. 즉 어플리케이션에서 특정 모듈이 제공하는 클래스(Class)를 참조하는 시나리오를 나타낸다. 13 illustrates a Java class reference process by an application according to an embodiment of the present invention. That is, it represents a scenario in which an application refers to a class provided by a specific module.

도 13에 보인 바와 같이, 클라이언트 모듈이 Class 참조를 클래스 로더(Class Loader)에게 요청한다(S701).As shown in FIG. 13, the client module requests a class reference from a class loader (S701).

클래스 로더는 모듈 매니저(337)에게 클래스 엔트리 검색(Class Entry Look-up)을 요청한다(S703). 이때 해당 클래스 명이 파라미터로 전달된다.The class loader requests a class entry look-up from the module manager 337 (S703). The class name is passed as a parameter.

모듈 매니저(337)는 모듈 정보 테이블(337c)을 조회(S705)하여 요청된 클래스의 존재 유무를 판단한다(S707). 이때, 클래스가 존재하지 않는 경우 NULL 값을 클래스 로더에게 반환한다(S709).The module manager 337 inquires the module information table 337c (S705) and determines whether the requested class exists or not (S707). At this time, if the class does not exist, returns a NULL value to the class loader (S709).

그러나 클래스가 존재하는 경우, 모듈 매니저(337)는 클래스가 포함된 모듈 정보를 획득(S711)하여 해당 모듈의 메모리 로딩을 개시한다(S713).However, if the class exists, the module manager 337 acquires module information including the class (S711) and starts loading the memory of the corresponding module (S713).

해당 모듈의 메모리 로딩 성공 여부를 판단(S715)하여, 실패한 경우에는 NULL 값을 클래스 로더에게 반환한다(S717). It is determined whether the memory loading of the module is successful (S715), and when it fails, a NULL value is returned to the class loader (S717).

그러나 메모리 로딩에 성공한 경우, 모듈 매니저(337)는 로딩된 모듈에게 클래스 엔트리 검색을 요청하고, 모듈은 자신의 클래스 테이블(Class Table)을 조회하여 요청된 클래스 엔트리(Class Entry)의 주소를 모듈 매니저(337)에게 반환한다(S719). However, if the memory loading is successful, the module manager 337 requests the loaded module to search for a class entry, and the module queries its class table to find the address of the requested class entry. It returns to (337) (S719).

모듈 매니저(337)는 클래스 로더에게 요청된 클래스 엔트리의 주소를 반환한다(S721). 그리고 클래스 로더는 클라이언트 모듈에게 클래스 엔트리의 주소를 반환한다(S723).The module manager 337 returns the address of the class entry requested to the class loader (S721). The class loader returns the address of the class entry to the client module (S723).

도 14는 본 발명의 실시예에 따른 어플리케이션에 의한 C API 호출 과정을 나타낸다. 즉 어플리케이션에서 한국무선인터넷 표준화 포럼(KWISF: Korea Wireless Internet Standardization Forum) 표준 WIPI-C API를 호출하는 시나리오를 나타낸다.14 illustrates a C API call process by an application according to an embodiment of the present invention. In other words, it represents a scenario in which the application calls the Korea Wireless Internet Standardization Forum (KWISF) standard WIPI-C API.

도 14에 보인 바와 같이, 어플리케이션은 자신의 구동 시점에 'Stub' 코드를 통하여 커널 모듈(333)에게 WIPI-C 인터페이스 검색을 요청한다(S801). 그러면 커널 모듈(333)은 모듈 매니저(337)에게 WIPI-C 인터페이스 검색을 요청한다(S803).As shown in FIG. 14, the application requests the kernel module 333 to search for the WIPI-C interface through the 'Stub' code at its driving time (S801). The kernel module 333 requests the module manager 337 to search for the WIPI-C interface (S803).

모듈 매니저(337)는 모듈 정보 테이블(337c)을 조회(S805)하여 요청된 WIPI-C 인터페이스가 포함 되었는지 여부 즉 검색 성공 여부를 확인한다(S807).The module manager 337 checks the module information table 337c (S805) and checks whether the requested WIPI-C interface is included, that is, whether the search is successful (S807).

검색에 실패한 경우, 모듈 매니저(337)는 커널 모듈(333)에게 구동 실패를 반환(S809)하고 커널 모듈(333)은 어플리케이션에게 구동 실패를 반환한다(S811).If the search fails, the module manager 337 returns a driving failure to the kernel module 333 (S809), and the kernel module 333 returns a driving failure to the application (S811).

그러나 검색에 성공한 경우, 모듈 매니저(337)는 WIPI-C 인터페이스가 포함된 모듈 정보를 획득한다(S813). 그리고 해당 모듈을 메모리에 로딩한다(S815). However, if the search is successful, the module manager 337 obtains module information including the WIPI-C interface (S813). The module is loaded into the memory (S815).

로딩에 실패한 경우(S817), 모듈 매니저(337)는 커널 모듈(333)에게 구동 실패를 반환(S819)하고 커널 모듈(333)은 어플리케이션에게 구동 실패를 반환한다(S821).If loading fails (S817), the module manager 337 returns a driving failure to the kernel module 333 (S819), and the kernel module 333 returns a driving failure to the application (S821).

그러나 로딩에 성공한 경우(S817), 모듈 매니저(337)는 로딩된 모듈에게 WIPI-C 인터페이스 검색을 요청하고 모듈은 자신의 WIPI-C 인터페이스 주소를 모듈 매니저(337)에게 반환한다(S823). 그러면 모듈 매니저(337)는 커널 모듈(333)에게 WIPI-C 인터페이스 주소를 반환(S825)하고, 커널 모듈(333)은 어플리케이션에게 WIPI-C 인터페이스 주소를 반환한다(S827). However, if the loading is successful (S817), the module manager 337 requests the loaded module to search for the WIPI-C interface and the module returns its WIPI-C interface address to the module manager 337 (S823). Then, the module manager 337 returns the WIPI-C interface address to the kernel module 333 (S825), and the kernel module 333 returns the WIPI-C interface address to the application (S827).

이후, 어플리케이션은 반환 받은 WIPI-C 인터페이스 주소를 참조하여 WIPI-C API를 호출한다. Then, the application calls the WIPI-C API by referring to the returned WIPI-C interface address.

다음, 도 15 내지 도 23은 모듈 업데이터(349)의 세부적인 동작을 나타낸다. Next, FIGS. 15 to 23 show detailed operations of the module updater 349.

모듈 업데이트의 요청 경로는 세가지 실시예가 있다. 즉 업데이트용 플랫폼 메뉴를 통한 업데이트, 콜백 SMS(short Message Service) 수신에 의한 업데이트 및 어플리케이션에서의 업데이트 요청에 의한 업데이트 각각의 경우에 해당한다. 여기서, 업데이트용 플랫폼 메뉴를 통한 업데이트는 모듈 업데이트 서버로부터의 무선 업데이트, 외부 저장 장치에 저장되어 있는 모듈로의 업데이트, PC(Personal Computer)와의 USB(Universal Serial Bus) 통신에 의한 업데이트에 이 메뉴가 사용될 수 있다. The request path of the module update has three embodiments. In other words, this is the case of an update through an update platform menu, an update by receiving a callback short message service (SMS), and an update by an update request from an application. Here, the update through the platform menu for update is performed by the wireless update from the module update server, the update to the module stored in the external storage device, and the update by the universal serial bus (USB) communication with the personal computer (PC). Can be used.

도 15는 본 발명의 제1 실시예에 따른 모듈 업데이트 과정을 나타낸 순서도이다. 즉 모듈 업데이터(349)가 업데이트 구동 타입에 따라 모듈 업데이트를 수행하는 과정을 나타낸다. 15 is a flowchart illustrating a module update process according to the first embodiment of the present invention. That is, the module updater 349 shows a process of performing a module update according to the update driving type.

도 15에 보인 바와 같이, 모듈 업데이터(349)가 구동되면 모듈 업데이터(349)는 구동 타입을 체크한다(S901). As shown in FIG. 15, when the module updater 349 is driven, the module updater 349 checks the driving type (S901).

여기서, 구동 타입은 'UPDATE_REQUEST_FROM_WIPI type', 'UPDATE_REQUEST_FROM_CBSMS', 'UPDATE_REQUEST_FROM_APP' 각각으로 정의된다. 이때, 'UPDATE_REQUEST_FROM_WIPI type'은 업데이트용 플랫폼 메뉴를 통한 업데이트를 나타낸다. 'UPDATE_REQUEST_FROM_CBSMS'는 콜백 SMS 수신에 의한 업데이트를 나타낸다. 'UPDATE_REQUEST_FROM_APP'는 어플리케이션에서의 업데이트 요청에 의한 업데이트를 나타낸다. 이때, 구동 타입이 'UPDATE_REQUEST_FROM_CBSMS', 'UPDATE_REQUEST_FROM_APP'인 경우에는 모듈 업데이터(349) 구동시 파라미터로 '업데이트 요청 모듈 리스트'를 전달받는다. Here, the driving type is defined as 'UPDATE_REQUEST_FROM_WIPI type', 'UPDATE_REQUEST_FROM_CBSMS', and 'UPDATE_REQUEST_FROM_APP', respectively. At this time, 'UPDATE_REQUEST_FROM_WIPI type' indicates an update through the update platform menu. 'UPDATE_REQUEST_FROM_CBSMS' indicates an update by receiving a callback SMS. 'UPDATE_REQUEST_FROM_APP' indicates an update by an update request from an application. In this case, when the driving type is 'UPDATE_REQUEST_FROM_CBSMS' and 'UPDATE_REQUEST_FROM_APP', the 'update request module list' is transmitted as a parameter when the module updater 349 is driven.

따라서, 모듈 업데이터(349)는 구동 타입이 메뉴에 의한 것인지를 판단(S903)한 후, 메뉴에 의한 경우 즉 'UPDATE_REQUEST_FROM_WIPI type'으로 구동되는 경우에는 모듈 업데이트 서버(351)로부터 최신 버전 모듈 리스트를 획득한다(S905). Therefore, the module updater 349 determines whether the driving type is based on the menu (S903), and when the menu is driven by the menu, that is, when the module is updated to 'UPDATE_REQUEST_FROM_WIPI type', obtains the latest version module list from the module update server 351. (S905).

그러면, 모듈 업데이터(349)는 모듈 업데이터(349) 구동시 파라미터로 전달받은 '업데이터 요청 모듈 리스트' 또는 모듈 업데이트 서버(351)로부터 획득한 최신 버전 모듈 리스트를 토대로 '업데이트 대상 모듈 리스트'를 생성한다(S907). Then, the module updater 349 generates an 'update target module list' based on the 'update data request module list' received as a parameter when the module updater 349 is driven or the latest version module list obtained from the module update server 351. (S907).

모듈 업데이터(349)는 '업데이트 대상 모듈 리스트'의 모듈이 버전이 지정되어 요청된 업데이트 요청인지 확인한다(S909). The module updater 349 checks whether a module of the 'update target module list' is a requested update request by specifying a version (S909).

이때, 업데이트 메뉴를 통한 모듈 업데이터(349) 구동의 경우에는 모듈 업데이트 서버(351)로부터 최신 버전의 모듈 리스트를 조회하여 '업데이트 요청 모듈 리스트'가 구성되므로 '업데이트 대상 모듈 리스트'의 모든 모듈이 버전이 지정된 업데이트 요청이다. 그러나 콜백 SMS 또는 어플리케이션으로부터 업데이트 요청이 되는 경우에는 모듈 지정 없이 최신 버전으로의 업데이트 요청도 가능하다. At this time, in the case of driving the module updater 349 through the update menu, the module requesting the list of modules of the latest version is queried from the module update server 351, so that the module of 'update request module list' is configured. This is a specified update request. However, when an update request is made from a callback SMS or an application, an update request to the latest version is possible without specifying a module.

버전이 지정된 업데이트 요청에 대해서 모듈 업데이터(349)는 해당 모듈이 단말에 탑재되어 있는지 여부를 조회한다(S911). In response to the versioned update request, the module updater 349 inquires whether the corresponding module is mounted in the terminal (S911).

단말에 탑재되어 있는 경우, 모듈 업데이터(349)는 버전을 조회(S913)하여 업데이트 요청된 모듈 버전보다 하위 버전이 단말에 탑재되어 있는지를 판단한다(S915). If the terminal is installed in the terminal, the module updater 349 inquires a version (S913) and determines whether a lower version is installed in the terminal than the module version requested to be updated (S915).

하위 버전이 단말에 탑재된 경우, 해당 모듈은 '업데이트 대상 모듈 리스트'에 추가한다(S917). 또한, 버전이 지정되지 않고 업데이트 요청된 모듈 역시 '업데이트 대상 모듈 리스트'에 추가 한다. 또한, 단말에 탑재되어 있지 않은 모듈 역시 '업데이트 대상 모듈 리스트'에 추가한다.If the lower version is mounted on the terminal, the corresponding module is added to the 'update target module list' (S917). In addition, the module that is requested to update without a version is also added to 'Update target module list'. In addition, the module not mounted in the terminal is also added to the 'update target module list'.

한편, 업데이트 요청 모듈의 버전보다 상위 버전 또는 동일 버전의 모듈이 단말에 탑재되어 있는 경우, 모듈 업데이트가 불필요하므로 '업데이트 대상 모듈 리스트'에 추가하지 않는다.On the other hand, when a module having a higher version or the same version than the version of the update request module is mounted in the terminal, the module update is unnecessary, and thus it is not added to the update target module list.

모듈 업데이터(349)는 다음 모듈이 존재하는지를 판단(S919)하여 '업데이트 대상 모듈 리스트'의 모든 모듈에 대해서 S911 단계부터 그 이후의 과정을 반복 수행한다.The module updater 349 determines whether the next module exists (S919), and repeats the subsequent steps from step S911 on all modules of the 'update target module list'.

다음 모듈이 존재하지 않는 경우, 모듈 업데이터(349)는 '업데이트 대상 모듈 리스트'에 포함되어 있는 모듈의 모듈 정보를 모듈 업데이트 서버(351)로부터 획득한다(S921). 이때, 모듈 정보에는 모듈 명, 모듈 버전, 인터페이스 리스트, 크기 등이 포함되어 있다. If the next module does not exist, the module updater 349 obtains module information of the module included in the "update target module list" from the module update server 351 (S921). In this case, the module information includes a module name, a module version, an interface list, a size, and the like.

이때, 콜백 SMS 또는 어플리케이션에서 의해서 모듈 업데이트가 요청된 경우에는, 실제로 모듈 업데이트 서버(351)에 존재하지 않는 버전의 모듈로 업데이트가 요청될 가능성이 있다. 따라서, 모듈 업데이터 구동 타입이 콜백 SMS 또는 어플리케이션인 경우에는 업데이트 대상 모듈의 업데이트 요청 버전을 모듈 업데이트 서버에 있는 최신 버전과 비교하는 과정이 추가 되어야 한다.At this time, when a module update is requested by the callback SMS or an application, there is a possibility that an update is requested to a version of a module that does not actually exist in the module update server 351. Therefore, when the module updater driving type is callback SMS or application, a process of comparing the update request version of the update target module with the latest version in the module update server should be added.

즉 모듈 업데이터(349)는 구동 타입이 메뉴에 의한 것인지를 판단(S923)하여 메뉴 타입이 아닌 콜백 SMS 또는 어플리케이션에 의해서 모듈 업데이트가 요청된 경우, 버전 지정 업데이트 요청인지를 판단한다(S925). That is, the module updater 349 determines whether the driving type is based on the menu (S923), and when the module update is requested by a callback SMS or an application other than the menu type (S925), the module updater 349 determines.

버전 지정 업데이트 요청이 아닌 경우, 해당 모듈이 단말에 탑재하는지를 판단한다(S927). If it is not a version designation update request, it is determined whether the corresponding module is mounted on the terminal (S927).

단말에 탑재된 경우, 단말에 탑재된 모듈의 버전을 조회(S929)하여 업데이트 요청 버전보다 작은지를 판단한다(S931). 작은 경우, EFS 바이너리 용량을 체크한다(S935). If it is mounted on the terminal, it is determined whether the version of the module mounted on the terminal is smaller than the update request version (S929) (S931). If small, the EFS binary capacity is checked (S935).

또한, S925 단계에서 판단 결과 버전 지정 업데이트 요청인 경우, 업데이트 요청 버전이 모듈 업데이트 서버에 저장된 모듈의 버전보다 작거나 같은지를 판단한다(S933). 작거나 같은 경우, EFS 바이너리 용량을 체크한다(S935).In addition, if it is determined in step S925 that the version designation update request, it is determined whether the update request version is less than or equal to the version of the module stored in the module update server (S933). If less than or equal to, check the EFS binary capacity (S935).

또한, 메뉴 타입인 경우 역시 EFS 바이너리 용량을 체크한다(S935).Also, in the case of the menu type, the EFS binary capacity is also checked (S935).

또한, S927 단계에서 모듈이 단말에 탑재된 경우 역시 EFS 바이너리 용량을 체크한다(S935). In addition, when the module is mounted in the terminal in step S927, the EFS binary capacity is also checked (S935).

그리고 모듈 업데이트 서버(351)로부터 해당 모듈의 모듈 바이너리를 다운로드(S937)하여 설치한다(S939). 이때, 모듈 업데이트시 단말의 EFS 영역에 모듈을 다운로드 할 공간이 확보되지 않은 경우 어플리케이션 삭제 메뉴에 진입하여 EFS 저장 공간을 확보한 후에 모듈을 다운로드 하도록 한다. EFS 저장 공간이 확보되어 있는 경우 모듈 업데이터(349)는 업데이트 대상 모듈에 대해서 모듈을 다운로드하여 단말의 EFS 바이너리에 저장하고 단말에 탑재된 하위 버전의 모듈은 삭제한다.The module binary of the module is downloaded from the module update server 351 (S937) and installed (S939). At this time, if there is no space to download the module in the EFS area of the terminal during module update, enter the application deletion menu to secure the EFS storage space and download the module. When the EFS storage space is secured, the module updater 349 downloads the module for the update target module, stores the module in the EFS binary of the terminal, and deletes the lower version module mounted on the terminal.

한편, 업데이트 요청 버전이 모듈 업데이트 서버(351)에 저장된 모듈의 버전보다 큰 경우에는 업데이트 요청된 모듈의 버전이 모듈 업데이트 서버(351)에 존재하지 않는 것이므로 업데이트가 불가능하다. 또한 단말에 탑재된 모듈의 버전이 업데이트 요청 버전보다 큰 경우에는, 모듈 업데이트가 불필요하다. 따라서 이와 같은 경우에는 해당 모듈은 업데이트 처리가 되지 않고 '업데이트 대상 모듈 리스트'의 다음 모듈로 업데이트 처리를 계속 수행한다(S941). On the other hand, if the update request version is larger than the version of the module stored in the module update server 351, the update is not possible because the version of the requested module does not exist in the module update server 351. In addition, when the version of the module mounted on the terminal is larger than the update request version, the module update is unnecessary. Therefore, in this case, the corresponding module is not updated, and the update processing continues to the next module of the 'update target module list' (S941).

그리고 '업데이트 대상 모듈 리스트'의 모든 모듈에 대해서 업데이트 처리가 완료되면 모듈 업데이트를 완료한다. When the update process is completed for all modules in the "Update target module list", the module update is completed.

도 16은 본 발명의 제2 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 즉 사용자가 플랫폼에서 제공하는 모듈 업데이트 메뉴에 진입하여 모듈을 업데이트 할 수 있는 기능을 제공한다. 16 is a flowchart illustrating a module update process according to a second embodiment of the present invention. That is, the user can enter the module update menu provided by the platform and provide a function to update the module.

도 16에 보인 바와 같이, 사용자가 보관함에서 모듈 업데이터(349)를 구동(S1001)하여 무선 모듈 업데이트를 선택한다(S1003). 그러면, 보관함은 모듈 업데이터(349)에게 모듈 업데이터 구동을 요청한다(S1005). As shown in FIG. 16, the user drives the module updater 349 in the storage box (S1001) to select a wireless module update (S1003). Then, the storage box requests the module updater 349 to drive the module updater (S1005).

모듈 업데이터(349)는 모듈 업데이트 서버(351)에게 최신 모듈 정보 리스트 조회를 요청한다(S1007). 즉 모듈 ID와 버전 리스트를 조회한다. 그러면 모듈 업데이트 서버(351)는 최신 모듈 정보 리스트를 모듈 업데이터(349)로 전송한다(S1009). The module updater 349 requests the module update server 351 for querying the latest module information list (S1007). In other words, it retrieves module ID and version list. Then, the module update server 351 transmits the latest module information list to the module updater 349 (S1009).

모듈 업데이터(349)는 모듈 매니저(337)에게 단말에 탑재된 모듈의 버전을 조회(S1011)하여 전달받는다(S1013). The module updater 349 receives and transmits the version of the module mounted in the terminal to the module manager 337 (S1011) and receives it (S1013).

모듈 업데이터(349)는 모듈 업데이트 서버(351)로부터 전달받은 최신 버전의 모듈 정보와 단말에 탑재되어 있는 플랫폼 모듈 정보를 비교하여 업데이트 대상 모듈 리스트를 생성한다(S1015). The module updater 349 compares the latest version of the module information received from the module update server 351 with the platform module information mounted in the terminal to generate an update target module list (S1015).

모듈 업데이터(349)는 사용자에게 업데이트 대상 모듈 개수를 알려주고 업데이트할지 여부를 결정하도록 한다(S1017). The module updater 349 notifies the user of the number of modules to be updated and allows the user to determine whether to update (S1017).

이때, 사용자가 모듈 업데이트를 선택하면 모듈 업데이터(349)는 업데이트 대상 모듈 리스트에 포함된 모듈 정보를 모듈 업데이트 서버(351)에 요청(S1019)하여 전달받는다(S1021). At this time, when the user selects the module update, the module updater 349 requests and transmits the module information included in the update target module list to the module update server 351 (S1019) (S1021).

모듈 업데이터(349)는 S1021에서 전달받은 모듈 정보의 크기만큼의 저장 공간이 EFS 바이너리에 있는지 용량을 체크한다(S1023). The module updater 349 checks the capacity of the storage space corresponding to the size of the module information received in S1021 in the EFS binary (S1023).

그리고 모듈 업데이터(349)는 모듈 업데이트 서버(351)로부터 모듈을 다운로드(S1025)하여 설치한다(S1027). 즉 하위 버전의 모듈을 EFS 바이너리에서 삭제하고, 다운로드 한 상위 버전의 모듈을 설치한다. The module updater 349 downloads the module from the module update server 351 (S1025) and installs it (S1027). That is, delete the lower version module from the EFS binary and install the downloaded higher version module.

모듈 업데이터(349)는 사용자에게 업데이트가 완료되었음을 알리는 화면을 디스플레이(S1029)하고, 구동을 종료한다.The module updater 349 displays a screen informing the user that the update is completed (S1029), and ends the driving.

도 17은 본 발명의 제3 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 즉 콜백 SMS 수신에 의한 업데이트 과정을 나타낸다.17 is a flowchart illustrating a module update process according to a third embodiment of the present invention. That is, it shows the update process by receiving a callback SMS.

도 17에 보인 바와 같이, 모듈 업데이트 서버(351)에서 업데이트할 모듈 정보가 포함된 콜백 SMS를 이동통신 단말로 전송한다(S1101). 그러면 이동통신 단말의 문자 메시지 핸들러는 콜백 SMS 수신 화면을 출력(S1103)하여 사용자에게 표시한다. As shown in FIG. 17, the module update server 351 transmits a callback SMS including module information to be updated to the mobile communication terminal (S1101). Then, the text message handler of the mobile communication terminal outputs the callback SMS reception screen (S1103) and displays it to the user.

사용자가 콜백 SMS에서 모듈 업데이트를 선택(S1105)하여 모듈 업데이터(349)를 구동하면, 문자 메시지 핸들러는 모듈 업데이터(349)에게 모듈 업데이트 구동을 요청한다(S1107). When the user selects the module update in the callback SMS (S1105) to drive the module updater 349, the text message handler requests the module updater 349 to drive the module update (S1107).

모듈 업데이터(349)는 콜백 SMS로부터 모듈 정보를 추출(S1109)하여 추출한 모듈 정보와 단말에 탑재되어 있는 모듈 정보를 비교하여 업데이트 대상 모듈 리스트를 생성한다(S1111). The module updater 349 extracts module information from the callback SMS (S1109), and compares the extracted module information with the module information mounted on the terminal to generate an update target module list (S1111).

모듈 업데이터(349)는 사용자에게 업데이트 대상 모듈 개수를 알려주고 업데이트할지 여부를 결정하도록 한다(S1113).The module updater 349 informs the user of the number of modules to be updated and allows the user to determine whether to update (S1113).

사용자가 업데이트를 선택하면, 모듈 업데이터(349)는 업데이트 대상 모듈 리스트에 포함된 모듈 정보를 모듈 업데이트 서버에 조회(S1115)하여 전달받는다(S1117). When the user selects the update, the module updater 349 receives the module information included in the update target module list by inquiring (S1115) the module information server (S1117).

모듈 업데이터(349)는 모듈 업데이트 서버(351)로부터 전달받은 모듈 정보의 모듈 버전과 업데이트 대상 모듈 리스트에 포함된 업데이트 요청 모듈 버전을 비교한다(S1119). The module updater 349 compares the module version of the module information received from the module update server 351 with the update request module version included in the update target module list (S1119).

모듈 업데이터(349)는 조회한 모듈크기만큼의 저장공간이 EFS 바이너리에 있는지 확인한다(S1121). The module updater 349 checks whether the storage space corresponding to the size of the inquired module is in the EFS binary (S1121).

모듈 업데이터(349)는 모듈 업데이트 서버(351)로부터 모듈을 다운로드(S1123)하여 설치한다(S1125). 즉 모듈 업데이터(349)는 다운로드한 상위 버전의 모듈을 EFS 바이너리에 저장하고 하위 버전의 모듈은 EFS 바이너리에서 삭제한다. The module updater 349 downloads the module from the module update server 351 (S1123) and installs it (S1125). That is, the module updater 349 stores the downloaded upper version module in the EFS binary and deletes the lower version module from the EFS binary.

그리고 모듈 업데이터(349)는 사용자에게 업데이트가 완료되었음을 알리고 종료한다(S1127). The module updater 349 notifies the user of the completion of the update and ends (S1127).

도 18은 본 발명의 제4 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 즉 어플리케이션에서의 업데이트 요청에 의한 업데이트 과정을 나타낸다.18 is a flowchart illustrating a module update process according to a fourth embodiment of the present invention. That is, the update process by the update request from the application is shown.

도 18에 보인 바와 같이, 실행을 개시(S1201)한 어플리케이션은 모듈 매니저(337)에게 단말에 탑재된 모듈 리스트를 조회(S1203, S1205)하여 전달받는다(S1207, S1209). 어플리케이션은 전달받은 모듈 리스트를 검색하여 어플리케이션에서 필요한 모듈이 존재하는지를 판단한다(S1211). 이때, 존재하는 경우, 모듈 매니저(337)에게 모듈 버전을 조회(S1213)하여 전달(S1215)받고 존재하지 않는 경우에는 모듈 버전 조회는 하지 않는다. As shown in FIG. 18, the application which has started execution (S1201) is sent to the module manager 337 by inquiring (S1203, S1205) a list of modules mounted in the terminal (S1207, S1209). The application searches the received module list to determine whether a module required by the application exists (S1211). In this case, if there is a module version 337, the module version 337 is inquired (S1213), and received (S1215). If it does not exist, the module version inquiry is not performed.

이후, 어플리케이션은 APM 모듈(305)에게 모듈 업데이트를 요청(S1217)하고 어플리케이션은 실행을 중지한다(S1219). 그리고 APM 모듈(305)은 모듈 업데이터(349)에게 모듈 업데이트 구동을 요청한다(S1221). Thereafter, the application requests the module update from the APM module 305 (S1217) and the application stops executing (S1219). The APM module 305 requests the module updater 349 to drive the module update (S1221).

모듈 업데이터(349)는 어플리케이션으로부터 업데이트 요청된 모듈 버전 정보와 단말에 탑재되어 있는 모듈 버전 정보를 비교하여 업데이트 대상 모듈 리스트를 생성한다(S1223). 그리고 모듈 업데이터(349)는 사용자에게 업데이트할 모듈 개수를 알려주고 업데이트할지 여부를 결정하도록 한다(S1225). The module updater 349 generates an update target module list by comparing the module version information requested for the update from the application with the module version information mounted in the terminal (S1223). The module updater 349 informs the user of the number of modules to be updated and determines whether to update (S1225).

사용자가 업데이트를 선택하면, 모듈 업데이터(349)는 업데이트 대상 모듈 리스트에 포함된 모듈 정보를 모듈 업데이트 서버(351)에 조회(S1227)하여 전달받는다(S1229). When the user selects the update, the module updater 349 inquires the module information included in the update target module list to the module update server 351 (S1227) and receives it (S1229).

모듈 업데이터(349)는 모듈 업데이트 서버(351)에서 조회한 모듈 버전과 업데이트 대상 모듈 리스트에 포함된 모듈 버전을 비교한다(S1231). The module updater 349 compares the module version inquired by the module update server 351 with the module version included in the update target module list (S1231).

모듈 업데이터(349)는 조회한 모듈 크기만큼의 저장공간이 EFS 바이너리에 있는지 확인한다(S1233). The module updater 349 checks whether the storage space corresponding to the size of the inquired module exists in the EFS binary (S1233).

모듈 업데이터(349)는 모듈을 다운로드(S1235)하여 설치(S1237)하고 어플리케이션에 모듈 업데이트가 완료되었음을 알린다(S1239, S1241). 그러면 어플리케이션은 실행을 재개시한다(S1243).The module updater 349 downloads and installs the module (S1235) (S1237) and informs the application that the module update is completed (S1239, S1241). The application then resumes execution (S1243).

한편, 사용자가 모듈 업데이트 메뉴에서 'hidden' 메뉴에 진입한 경우 USB를 통한 업데이트 또는 외부 저장 장치를 통한 업데이트를 선택할 수 있다. 여기서, 'hidden' 메뉴 진입은 다음과 같이 이루어진다. 즉 사용자가 보관함의 메뉴를 통해 모듈 업데이터를 구동한 후 최초 화면에서 롱 키로 '*'를 입력한 후에 비밀번호를 입력하여 'hidden' 메뉴로 진입할 수 있다. 이때, 'hidden' 메뉴에서는 USB 또는 외부 저장 장치를 선택할 수 있는 UI(UserInterface)를 제공한다. Meanwhile, when the user enters the 'hidden' menu in the module update menu, the user may select update through USB or update through an external storage device. Here, the 'hidden' menu entry is performed as follows. That is, the user can enter the 'hidden' menu by driving the module updater through the menu of the storage box, entering '*' with the long key on the initial screen, and then entering the password. In this case, the 'hidden' menu provides a UI (UserInterface) for selecting a USB or an external storage device.

먼저, 도 19는 본 발명의 제5 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 즉 PC와의 USB 통신에 의한 업데이트 과정을 나타낸다. 이때, PC에 모듈 업데이트를 위한 소프트웨어(이하, 'PC S/W'라 통칭함)가 존재해야 하며, 모듈 업데이터에서 USB를 통한 모듈 업데이트를 선택할 때 이 PC S/W가 PC상에서 구동되어 있어야 한다.First, FIG. 19 is a flowchart illustrating a module update process according to a fifth embodiment of the present invention. That is, the update process by USB communication with a PC is shown. At this time, software for module update (hereinafter referred to as 'PC S / W') must exist in PC, and this PC S / W must be running on PC when selecting module update through USB in module updater. .

도 19에 보인 바와 같이, 사용자가 보관함에서 모듈 업데이터(349)를 구동한다(S1301). 그리고 모듈 업데이터(349)의 'hidden' 메뉴에 진입하여 'hidden' 메뉴에서 USB 업데이트를 선택한다(S1303). 그러면 보관함은 모듈 업데이터(349)에게 모듈 업데이터 구동을 요청한다(S1305).As shown in FIG. 19, the user drives the module updater 349 in the storage box (S1301). Then, the module updater 349 enters the 'hidden' menu and selects the USB update from the 'hidden' menu (S1303). The library then requests the module updater 349 to drive the module updater (S1305).

모듈 업데이터(349)는 PC와의 통신을 위해 사용자에게 포트(Port)와 접속 스피드(Connection Speed)를 입력하도록 사용자 화면(UI)를 출력(S1307)하여 입력받는다(S1309).The module updater 349 outputs and receives a user screen UI (S1307) so as to input a port and a connection speed to the user for communication with the PC (S1309).

모듈 업데이터(349)는 입력된 포트와 접속 스피드로 PC에 접속하도록 OEM 계층 모듈(341)에게 커넥트를 요청한다(S1311). OEM 계층 모듈(341)은 PC S/W와 접속(S1313)하고 모듈 업데이터(349)에게 응답한다(S1315). The module updater 349 requests the OEM layer module 341 to connect to the PC at the input port and the connection speed (S1311). The OEM layer module 341 connects to the PC S / W (S1313) and responds to the module updater 349 (S1315).

모듈 업데이터(349)는 커넥트 성공 여부를 판단한다(S1317). 이때, 커넥트에 실패한 경우 즉 PC S/W가 PC에 저장되어 있지 않은 경우, 사용자에게 USB를 통한 업데이트가 불가함을 알리고 모듈 업데이터(349)를 종료한다. The module updater 349 determines whether the connection is successful (S1317). At this time, if the connection fails, that is, if the PC S / W is not stored in the PC, the user is notified that the update via the USB and the module updater 349 is terminated.

그러나 커넥트에 성공한 경우에는, 모듈 업데이터(349)는 PC S/W로 PC에 저장된 모듈 리스트(모듈ID)를 요청한다(S1319).However, if the connection is successful, the module updater 349 requests the module list (module ID) stored in the PC to the PC S / W (S1319).

PC S/W가 PC에 저장되어 있는 모듈 리스트를 모듈 업데이터(349)로 전송한다(S1321). PC S/W는 지정된 폴더에 있는 플랫폼 모듈 리스트를 모듈 업데이터에 전달한다. 이때, 모듈이 저장되지 않은 경우 모듈 업데이터(349)에 모듈이 존재하지 않음을 알린다.The PC S / W transfers the module list stored in the PC to the module updater 349 (S1321). PC S / W sends the platform updater the list of platform modules in the specified folder. In this case, if the module is not stored, the module updater 349 notifies that the module does not exist.

모듈 업데이터(349)는 사용자에게 PC에 저장되어 있는 모듈 개수를 알려주고 업데이트할지 여부를 결정하도록 한다(S1323).The module updater 349 informs the user of the number of modules stored in the PC and determines whether to update (S1323).

사용자가 업데이트를 선택하면, 모듈 업데이터(349)는 모듈 리스트에 포함된 모듈 정보 파일을 PC S/W로 요청(S1325)하여 전달받는다(S1327).When the user selects the update, the module updater 349 requests and transmits the module information file included in the module list to the PC S / W (S1325) (S1327).

그리고 모듈 업데이터(349)는 모듈 매니저(337)에게 단말에 탑재된 모듈의 버전을 조회(S1329)하여 전달받는다(S1331). 모듈 업데이터(349)는 전달받은 단말에 탑재된 모듈 정보와 PC S/W로부터 전달받은 모듈 정보를 비교한다(S1333). 즉 모듈 업데이터는 모듈 버전 정보와 단말에 탑재되어 있는 모듈 버전을 비교하여 단말에 탑재된 버전보다 상위 버전의 모듈이 PC에 저장되어 있는 경우 모듈 업데이트 처리를 하도록 한다. EFS 바이너리와 PC에 저장되어 있는 모듈 버전이 같거나 PC에 하위 버전이 저장되어 있는 경우 업데이트가 불필요하므로 업데이트하지 않는다. In addition, the module updater 349 inquires the version of the module mounted in the terminal to the module manager 337 (S1329) and receives the received information (S1331). The module updater 349 compares the module information mounted in the received terminal with the module information received from the PC S / W (S1333). That is, the module updater compares the module version information with the module version mounted in the terminal and performs a module update process when a module having a higher version than the version mounted in the terminal is stored in the PC. If the EFS binary and the module version stored in the PC are the same or if the lower version is stored in the PC, the update is unnecessary, so do not update it.

모듈 업데이터(349)는 조회한 모듈크기만큼의 저장공간이 EFS 바이너리에 있는지 확인한다(S1335). The module updater 349 checks whether the storage space corresponding to the size of the inquired module is in the EFS binary (S1335).

모듈 업데이터(349)는 PC S/W에게 모듈 바이너리를 다운로드(S1337)하여 설치한다(S1339). 즉 모듈 업데이터는 PC S/W에 PC에 저장되어 있는 모듈 정보 파일([모듈 아이디].mdf)을 요청하여 단말 EFS에 임시 모듈 정보 파일([모듈 아이디].tdf)을 생성한다. 모듈 업데이터는 업데이트 대상 모듈에 대해서 버전 복사에 필요한 공간을 확보하고 PC에 있는 모듈 바이너리([모듈 아이디].jar)를 리드하여 단말 EFS에 임시 모듈 바이너리([모듈 아이디].tmp)를 생성한다. 임시 모듈 바이너리 파일 생성이 완료되면 바이너리 파일 내의 wrddj, wrddc 파일을 리드하여 임시 모듈 정보 파일([모듈 아이디].tdf)에 쓰기(write)한다. 임시 모듈 정보 파일에 쓰기가 완료되면 임시 모듈 바이너리 파일과 임시 모듈 정보 파일을 리네임(rename)한다. 그리고 사용자에게 업데이트가 완료되었음을 알린다(S1341). The module updater 349 downloads and installs the module binary to the PC S / W (S1337) (S1339). That is, the module updater requests the module information file ([module ID] .mdf) stored in the PC to the PC S / W and creates a temporary module information file ([module ID] .tdf) in the terminal EFS. The module updater secures the space required for the version copy for the module to be updated and reads the module binary ([module ID] .jar) in the PC to generate a temporary module binary ([module ID] .tmp) in the terminal EFS. When the temporary module binary file generation is completed, the wrddj and wrddc files in the binary file are read and written to the temporary module information file ([module ID] .tdf). After writing to the temporary module information file, the temporary module binary file and the temporary module information file are renamed. Then, the user is notified that the update is completed (S1341).

도 20은 본 발명의 제6 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 즉 외부 저장 장치에 저장되어 있는 모듈로의 업데이트 과정을 나타낸다. 이때, 외부 저장 장치에 모듈이 저장되는 경우에는 모듈 업데이터(349)에서 지정한 폴더에 모듈 정보 파일과 함께 저장되어야 한다.20 is a flowchart illustrating a module update process according to a sixth embodiment of the present invention. That is, the process of updating to the module stored in the external storage device. In this case, when the module is stored in the external storage device, the module should be stored together with the module information file in the folder designated by the module updater 349.

도 20에 보인 바와 같이, 사용자가 보관함에서 모듈 업데이터(349)를 구동한다(S1401). 그리고 모듈 업데이터(349)의 'hidden' 메뉴에 진입하여 외부 저장 장치를 통한 모듈 업데이트 기능을 선택한다(S1403). 보관함은 모듈 업데이터(349)에게 모듈 업데이터 구동을 요청한다(S1405). As shown in FIG. 20, the user drives the module updater 349 in the storage box (S1401). The module updater 349 enters a 'hidden' menu and selects a module update function through an external storage device (S1403). The library requests the module updater 349 to drive the module updater (S1405).

모듈 업데이터(349)는 외부 저장 장치가 부착되어 있는지 조회한다(S1407). 부착되지 않은 경우, 외부 저장 장치가 부착되어 있지 않음을 알리고 모듈 업데이터(349)를 종료한다. 그러나 부착된 경우, 모듈 업데이터(349)는 외부 저장 장치에 존재하는 모듈을 조회하여 모듈이 존재하는지를 판단한다(S1409). 모듈이 존재하지 않는 경우, 사용자에게 업데이트할 모듈이 없음을 알리고 모듈 업데이터(349)를 종료한다. 그러나 모듈이 존재하는 경우, 모듈 업데이터(349)는 사용자에게 외부 저장 장치에 저장되어 있는 모듈 개수를 알려주고 업데이트할지 여부를 결정하도록 한다(S1411).The module updater 349 inquires whether an external storage device is attached (S1407). If not attached, it notifies that the external storage device is not attached and terminates the module updater 349. However, if attached, the module updater 349 queries the module existing in the external storage device to determine whether the module exists (S1409). If the module does not exist, the user is informed that there is no module to update and the module updater 349 terminates. However, if the module exists, the module updater 349 informs the user of the number of modules stored in the external storage device and determines whether to update (S1411).

사용자가 업데이트를 선택하면, 모듈 업데이터(349)는 'MH_fileList()' 함수를 이용해서 외부 저장 장치의 모듈 저장 폴더에 저장된 모든 파일 리스트 조회를 OEM 계층 모듈에게 요청(S1413)하여 전달받는다(S1415). When the user selects the update, the module updater 349 requests the OEM hierarchical module to retrieve all the file list stored in the module storage folder of the external storage device using the 'MH_fileList ()' function (S1413) (S1415). .

모듈 업데이터(349)는 외부 저장 장치에 모듈 바이너리 및 모듈 정보 파일이 모두 존재하는 모듈을 대상으로 모듈 업데이트를 수행한다. 모듈 업데이터(349)는 외부 저장 장치에 저장되어 있는 모듈 정보 파일을 리드하여 모듈 정보 파일을 복사한다(S1417). 즉 모듈 업데이터는 외부 저장 장치에 저장되어 있는 모듈 정보 파일([모듈 아이디].mdf)을 리드하여 EFS 바이너리에 임시 모듈 정보 파일([모듈 아이디].tdf)을 생성한다. The module updater 349 performs a module update for a module in which both the module binary and the module information file exist in the external storage device. The module updater 349 reads the module information file stored in the external storage device and copies the module information file in operation S1417. That is, the module updater reads the module information file ([module ID] .mdf) stored in the external storage device and creates a temporary module information file ([module ID] .tdf) in the EFS binary.

모듈 업데이터(349)는 모듈 매니저(337)에게 단말에 탑재되어 있는 모듈 버전을 조회(S1419)하여 전달받는다(S1421). The module updater 349 receives and transmits the module version installed in the terminal to the module manager 337 (S1419) (S1421).

모듈 업데이터(349)는 단말에 탑재되어 있는 모듈 버전과 외부 저장 장치에 있는 모듈 버전을 비교한다(S1423). 즉 모듈 업데이터는 임시 모듈 정보 파일에 포함된 모듈 버전 정보와 단말에 탑재되어 있는 모듈 버전을 비교하여 단말에 탑재된 버전보다 상위 버전의 모듈이 외부 저장 장치에 저장되어 있는 경우 모듈 업데이트 처리를 하도록 한다. EFS 바이너리와 외부 저장 장치에 저장되어 있는 모듈 버전이 같거나 외부 저장 장치에 하위 버전이 저장되어 있는 경우 업데이트가 불필요하다.The module updater 349 compares the module version mounted in the terminal with the module version in the external storage device (S1423). That is, the module updater compares the module version information included in the temporary module information file with the module version mounted in the terminal and performs a module update process when a module having a higher version than the version mounted in the terminal is stored in the external storage device. . If the module version stored in the EFS binary and the external storage device is the same or if a lower version is stored in the external storage device, no update is required.

모듈 업데이터(349)는 업데이트할 모듈크기만큼의 저장공간이 EFS에 있는지 확인한다(S1425). The module updater 349 checks whether the storage space corresponding to the module size to be updated is in the EFS (S1425).

모듈 업데이터(349)는 외부 저장 장치로부터 모듈을 복사하여 설치한다(S1427). 즉 모듈 업데이터는 업데이트 대상 모듈에 대해서 버전 복사에 필요한 공간을 확보하고 외부 저장 장치에 저장되어 있는 모듈 바이너리([모듈 아이디].jar)를 리드하여 EFS 바이너리에 임시 모듈 바이너리([모듈 아이디].tmp)를 생성한다. 그리고 임시 모듈 바이너리 파일 생성이 완료되면 바이너리 파일 내의 wrddj, wrddc 파일을 리드하여 임시 모듈 정보 파일([모듈 아이디].tdf)에 쓰기(write)한다. 임시 모듈 정보 파일에 쓰기가 완료되면 임시 모듈 바이너리 파일과 임시 모듈 정보 파일을 리네임(rename)한다. 그리고 사용자에게 설치 완료를 알린다(S1429). The module updater 349 copies and installs the module from the external storage device (S1427). In other words, the module updater reserves the space required for version copy for the module to be updated and reads the module binary ([module id] .jar) stored in the external storage device to the temporary module binary ([module id] .tmp) in the EFS binary. ) When the temporary module binary file generation is completed, the wrddj and wrddc files in the binary file are read and written to the temporary module information file ([module ID] .tdf). After writing to the temporary module information file, the temporary module binary file and the temporary module information file are renamed. Then, the user is notified of the completion of installation (S1429).

도 21은 본 발명의 제7 실시예에 따른 모듈 업데이트 과정을 나타낸다. 즉 하위 버전 모듈 위치에 따른 업데이트를 나타낸다.21 illustrates a module update process according to a seventh embodiment of the present invention. In other words, it indicates the update according to the location of the lower version module.

도 21에 보인 바와 같이, 모듈 업데이터(349)는 업데이트가 요청되면 업데이트 대상 모듈의 종류를 체크한다(S1501). 이때, 종류는 업데이트 대상 모듈이 저장된 위치의 종류를 나타낼 수 있다. As shown in FIG. 21, when an update is requested, the module updater 349 checks the type of an update target module (S1501). In this case, the type may indicate the type of the location where the update target module is stored.

모듈 업데이터(349)는 업데이트 대상 모듈이 EFS 바이너리(301)에 저장된 모듈인 경우(S1503), 저장된 하위 버전의 모듈은 업데이트시 기존 모듈은 삭제한다(S1505). 그리고 다운로드한 상위 버전의 모듈이 저장된다(S1507). 이후 모듈 로딩 시에는 EFS 바이너리(301)에 저장된 상위 버전의 모듈이 로드(S1509)되게 된다.When the module to be updated is the module to be updated in the EFS binary 301 (S1503), the module updater 349 deletes the existing module when the lower version of the module is updated (S1505). The downloaded higher version module is stored (S1507). Subsequently, when the module is loaded, the higher version module stored in the EFS binary 301 is loaded (S1509).

또한, 모듈 업데이터(349)는 업데이트 대상 모듈이 정적(Static) 모듈인 경우 즉 코드(code) 영역에 정적으로 적재된 모듈인 경우(S1511), 다운로드한 상위 버전의 모듈을 EFS 바이너리(301)에 저장한다(S1513). 이후 모듈 로딩 시 코드 영역에 있는 하위 버전이 아닌 EFS 바이너리(301)에 저장된 업데이트된 버전이 우선적으로 로드되도록 한다(S1509).In addition, when the module to be updated is a static module, that is, a module statically loaded in a code area (S1511), the module updater 349 may download the downloaded higher version module to the EFS binary 301. Save (S1513). Thereafter, when the module is loaded, the updated version stored in the EFS binary 301, rather than the lower version in the code region, is loaded first (S1509).

또한, 모듈 업데이터(349)는 업데이트 대상 모듈이 신규 모듈인 경우 즉 단말에 탑재되어 있지 않은 모듈을 다운로드 하는 경우(S1515), 신규로 다운로드 한 모듈을 EFS 바이너리(301)에 저장(S1517)하고 모듈 매니저(337)가 신규 모듈에 대해서도 버전 관리 기능을 제공하도록 한다. 이후 모듈 로딩시 EFS 바이너리(301)에 저장된 모듈이 로드(S1509)되게 된다.In addition, when the module to be updated is a new module, that is, when a module that is not mounted on the terminal is downloaded (S1515), the module updater 349 stores the newly downloaded module in the EFS binary 301 (S1517). The manager 337 also provides a version control function for the new module. Thereafter, when the module is loaded, the module stored in the EFS binary 301 is loaded (S1509).

도 22는 본 발명의 제8 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 즉 HAL 모듈 업데이트 과정을 나타낸다. 모듈 업데이터(349)는 개방형 운영체제(Open O/S)를 지원 하는 단말에서는 모바일 플랫폼을 구성하는 각각의 모듈(107)과 같이 HAL 모듈(343)도 업데이트가 가능하도록 지원한다22 is a flowchart illustrating a module update process according to an eighth embodiment of the present invention. That is, the HAL module update process is shown. The module updater 349 supports to update the HAL module 343 as well as each module 107 constituting the mobile platform in a terminal supporting an open operating system (Open O / S).

도 22에 보인 바와 같이, 모듈 업데이터(349)는 업데이트 대상 모듈의 모듈 정보 파일 조회(S1601) 후 파일 타입을 체크(S1603)하여 업데이트 대상 모듈이 HAL 모듈(343)인지를 판단한다(S1605). As shown in FIG. 22, the module updater 349 determines whether the update target module is the HAL module 343 by checking the file type (S1603) after querying the module information file (S1601) of the update target module (S1605).

즉 모듈 정보 파일에 포함된 'Type'의 값이 '10'인 경우, 플랫폼 모듈 업데이트 처리를 한다(S1607). 그러나 'Type'의 값이 '11인' 경우, HAL 모듈(343)의 업데이트 처리를 한다. HAL 모듈(343)의 업데이트 처리 과정은 다음과 같다.That is, when the value of 'Type' included in the module information file is '10', the platform module update process is performed (S1607). However, when the value of 'Type' is '11', the HAL module 343 is updated. The update process of the HAL module 343 is as follows.

모듈 업데이터(349)는 S1601 단계에서 HAL 모듈(343)이 업데이트 대상 모듈에 포함되어 모듈 정보 파일(mdf)을 임시 파일 형태로 획득한다. 모듈 정보 파일에 포함되어 있는 정보 중 'Type'이 '11' 값을 가지면 HAL 모듈(343)을 의미하며 플랫폼 모듈과 별도로 업데이트 처리가 된다.The module updater 349 obtains the module information file mdf in the form of a temporary file by including the HAL module 343 in the update target module in step S1601. If 'Type' has a value of '11' among the information included in the module information file, it means the HAL module 343 and is updated separately from the platform module.

모듈 업데이터(349)는 'MH_infGetInfo(M_Char *name, MH_InterfaceInfo *pInfo) API'를 사용하여 HAL 모듈(343)로부터 업데이트 대상 모듈 아이디에 해당 하는 HAL 모듈(343)의 모듈 인터페이스 정보를 획득한다(S1609, S1611). 모듈 인터페이스 정보에는 해당 모듈의 버전 정보가 포함되어 있다. The module updater 349 obtains module interface information of the HAL module 343 corresponding to the update target module ID from the HAL module 343 using the 'MH_infGetInfo (M_Char * name, MH_InterfaceInfo * pInfo) API' (S1609, S1611). The module interface information includes version information of the module.

모듈 업데이터(349)는 단말로부터 조회한 HAL 모듈(343) 인터페이스 정보에 포함된 모듈 버전과 S1601 단계에서 획득한 모듈 정보 파일에 포함된 모듈 버전을 비교(S1613)하여 업데이트 요청 버전이 단말에 탑재된 버전보다 상위인지를 판단한다(S1615). 즉 현재 단말에 있는 HAL 모듈(343)의 버전이 업데이트 할 모듈 버전 보다 하위 버전인 경우에만 업데이트가 이루어지도록 한다. The module updater 349 compares the module version included in the HAL module 343 interface information inquired from the terminal with the module version included in the module information file acquired in step S1601 (S1613), and the update request version is mounted on the terminal. It is determined whether it is higher than the version (S1615). That is, the update is performed only when the version of the HAL module 343 in the current terminal is a lower version than the module version to be updated.

S1615 판단 결과 상위 버전이 아닌 경우, HAL 모듈(343)의 업데이트가 불필요한 경우이므로 임시 모듈 정보 파일 즉 업데이트 대상 모듈 정보 파일을 삭제하고 해당 모듈의 업데이트를 종료한다. If it is determined that the S1615 is not the higher version, since the update of the HAL module 343 is unnecessary, the temporary module information file, that is, the update target module information file is deleted, and the update of the corresponding module is terminated.

S1615 판단 결과 상위 버전인 경우, 즉 HAL 모듈(343)의 업데이트가 결정되면 모듈 업데이터(349)는 업데이트 대상 모듈 바이너리를 획득한다(S1617). 즉 업데이터 대상 모듈의 임시 모듈 바이너리를 획득한다. 정상적으로 임시 모듈 바이너리를 획득하면 'MH_infInstall(M_Char *name, M_Char *path') API'를 호출(S1619)하고 HAL 모듈(343)은 상위 버전의 HAL 모듈(343)을 설치(S1621)하고 결과 값을 모듈 업데이터(349)에게 전달한다(S1623).If it is determined that the S1615 is the higher version, that is, if the update of the HAL module 343 is determined, the module updater 349 obtains the update target module binary (S1617). In other words, obtain the temporary module binary of the update target module. When the temporary module binary is normally acquired, the 'MH_infInstall (M_Char * name, M_Char * path') API 'is called (S1619), and the HAL module 343 installs the higher version HAL module 343 (S1621) and the result value is obtained. The module is transmitted to the module updater 349 (S1623).

모듈 업데이터(349)는 HAL 모듈(343)로부터 정상적으로 HAL 모듈설치 결과를 수신하면 업데이트 대상 모듈 정보 파일 즉 임시 모듈 정보 파일을 삭제한다(S1625). 그리고 'MH_infInstall' 함수의 반환값이 1인 경우 단말을 재부팅한다(S1627).When the module updater 349 receives the HAL module installation result from the HAL module 343 normally, the module updater 349 deletes the update target module information file, that is, the temporary module information file (S1625). If the return value of the 'MH_infInstall' function is 1, the terminal is rebooted (S1627).

이때, 모듈 업데이트를 위해 상위 버전의 모듈은 임시 파일 형태로 EFS에 저장하고 정상적으로 저장이 완료되면 하위 버전의 모듈을 삭제하고 상위 버전의 모듈을 설치하게 된다. 따라서 모듈 업데이트 시에 EFS 바이너리에 상위 버전 모듈의 크기만큼의 용량이 확보 되어야 한다. 도 23은 메모리 저장 공간이 부족한 경우의 처리 과정을 나타낸다. At this time, the module of the higher version is stored in the EFS in the form of a temporary file to update the module, and when the saving is completed normally, the module of the lower version is deleted and the higher version module is installed. Therefore, at the time of module update, the capacity of the higher version module should be secured in the EFS binary. 23 shows a processing process when the memory storage space is insufficient.

도 23은 본 발명의 제9 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 23 is a flowchart illustrating a module update process according to a ninth embodiment of the present invention.

도 23에 보인 바와 같이, 모듈 업데이트 서버(351)로부터 업데이트 대상 모듈 정보를 획득(S1701)하면 모듈 업데이터(349)는 모듈 사이즈를 체크한다(S1703). 그리고 모듈 사이즈만큼의 EFS 바이너리 용량이 확보되는지를 확인한다(S1705). As shown in FIG. 23, when obtaining update target module information from the module update server 351 (S1701), the module updater 349 checks the module size (S1703). Then, it is checked whether the EFS binary capacity of the module size is secured (S1705).

EFS 바이너리에 모듈 다운로드 공간이 확보되지 않은 경우, 모듈 업데이터(349)는 사용자에게 컨텐츠를 삭제하여 저장공간을 확보할지 여부를 확인하는 다이얼로그를 출력한다(S1709). If the module download space is not secured in the EFS binary, the module updater 349 outputs a dialog to the user to confirm whether to delete the contents to secure the storage space (S1709).

이때, 사용자가 '아니오'를 선택(S1711)한 경우 절차를 종료한다. At this time, if the user selects 'No' (S1711), the procedure ends.

그러나 사용자가 "예"를 선택(S1711)한 경우 모듈 업데이터(349)는 컨텐츠 삭제를 위해 삭제 가능한 어플리케이션 리스트를 출력한다(S1713). However, if the user selects "Yes" (S1711), the module updater 349 outputs a list of applications that can be deleted for content deletion (S1713).

사용자는 어플리케이션 리스트에서 삭제할 어플리케이션을 선택해서 삭제 요청한다(S1715). The user selects an application to delete from the application list and requests deletion (S1715).

모듈 업데이터(349)는 삭제 요청된 어플리케이션 삭제 후 저장 공간 확보 여부를 체크한다(S1717). The module updater 349 checks whether the storage space is secured after deleting the requested application (S1717).

이때, 저장공간이 확보 되지 않은 경우 사용자에게 컨텐츠 삭제 여부 다이얼로그를 다시 출력하여 어플리케이션 삭제 처리를 반복한다(S1709, S1711, S1713, 1715, S1717). At this time, if the storage space is not secured, the application delete process is output again to the user and the application deletion process is repeated (S1709, S1711, S1713, 1715, and S1717).

그러나 저장 공간이 확보된 경우 모듈 다운로드를 계속한다. However, if space is available, module download continues.

또한, S1701 단계에서 EFS 바이너리 용량이 모듈 사이즈보다 크거나 같은 경우 및 어플리케이션 삭제를 통해 저장 공간을 확보한 경우, 모듈 업데이터(349)는 모듈 바이너리를 다운로드(S1719)하여 설치(S1721)함으로써 모듈 업데이트를 수행한다.In addition, when the EFS binary capacity is greater than or equal to the module size in step S1701 and when the storage space is secured through application deletion, the module updater 349 downloads the module binary (S1719) and installs it (S1721) to update the module. To perform.

한편, 모바일 플랫폼이 제공하는 기본적인 API 외에 동적으로 모듈을 추가하거나 갱신할 수 있는 모듈 개발 인터페이스가 정의된다. 모듈은 인터페이스라는 외부와 통신하는 통로를 가진다. 인터페이스란 "함수와, 변수로 이루어진 group에 이름, 버전을 부여하여 관리하는 단위"를 말한다. 인터페이스는 API를 추가/갱신하는데 있어서 기본 단위가 된다. Meanwhile, in addition to the basic API provided by the mobile platform, a module development interface for dynamically adding or updating a module is defined. The module has a passage for communicating with the outside called an interface. An interface is a "unit that assigns a name and version to a group of functions and variables." Interfaces are the basic unit for adding and updating APIs.

도 24는 본 발명의 실시예에 따른 모듈 개발 인터페이스 구성을 나타낸다. 24 illustrates a module development interface configuration according to an embodiment of the present invention.

도 24에 보인 바와 같이, 모듈 개발 인터페이스(401)는 모듈 엔트리 정의 API(403), 모듈 엔트리 리스트 정의 API(405), 모듈 초기화 API(407), 모듈 종료 API(409) 및 모듈 notify API(411)를 포함한다. As shown in FIG. 24, the module development interface 401 includes a module entry definition API 403, a module entry list definition API 405, a module initialization API 407, a module exit API 409, and a module notify API 411. ).

모듈 엔트리 정의 API(403)는 출력(Export)할 인터페이스의 엔트리(entry)를 정의한다. 모듈 개발 시 반드시 지정되어야 하는 항목으로서, 엔트리 정의에 필요한 항목은 인터페이스 구조체 포인터, 인터페이스 이름 및 인터페이스 버전(Major, Minor)을 포함한다. The module entry definition API 403 defines an entry of an interface to export. An item that must be specified when developing a module. An item for defining an entry includes an interface structure pointer, an interface name, and an interface version (Major, Minor).

모듈 엔트리 리스트 정의 API(405)는 정의한 모듈 엔트리의 리스트를 지정한다. 모듈에는 두 개 이상의 인터페이스 엔트리 정의가 가능하다. The module entry list definition API 405 specifies a list of defined module entries. A module can define more than one interface entry.

모듈 초기화 API(407)는 모듈이 로딩될 때 한번 호출되어야 할 함수를 정의한다. 여기서 정의한 함수를 이용하여 모듈 개발자는 모듈이 사용되기 전 필요한 초기화를 수행할 수 있다. 선언되지 않으면, 로딩시 초기화 함수는 불리지 않는다.The module initialization API 407 defines a function that should be called once when the module is loaded. Using the function defined here, the module developer can perform the initialization required before the module is used. If not declared, the initialization function is not called at loading time.

모듈 종료 API(409)는 모듈이 메모리에서 해제될 때 한번 불려져야 될 함수를 정의한다. 여기서 정의한 함수를 이용하여 모듈 개발자는 모듈이 종료되기 전 필요한 조치(예, 리소스 해제)를 할 수 있다. 선언되지 않으면 모듈 언로딩 시 종료 함수는 불리지 않는다.The module exit API 409 defines a function that should be called once when the module is released from memory. Using the function defined here, the module developer can take necessary actions (eg, release resources) before the module terminates. If not declared, the exit function is not called when unloading the module.

모듈 notify API(411)는 모듈을 사용하는 어플리케이션이 구동/종료될 때 모듈에게 어플리케이션이 구동/종료되었음을 알려주는 함수를 정의한다. 여기서 정의한 함수를 이용하여 모듈 개발자는 모듈을 사용하는 어플리케이션이 구동/종료되었을 때 필요한 조치를 할 수 있다. 선언되지 않으면 모듈 notify 함수는 불리지 않는다. The module notify API 411 defines a function that notifies the module that the application has been started / ended when the application using the module is started / ended. Using the function defined here, the module developer can take necessary actions when the application using the module is started / closed. If not declared, the module notify function is not called.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. The embodiments of the present invention described above are not only implemented by the apparatus and method but may be implemented through a program for realizing the function corresponding to the configuration of the embodiment of the present invention or a recording medium on which the program is recorded, The embodiments can be easily implemented by those skilled in the art from the description of the embodiments described above.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

도 1은 종래의 모바일 플랫폼 구조이다.1 is a conventional mobile platform structure.

도 2는 종래 모바일 플랫폼의 바이너리 구조를 나타낸다.2 illustrates a binary structure of a conventional mobile platform.

도 3a는 종래 모바일 플랫폼의 패키지 종류를 나타내고, 도 3b는 패키지 상호 관계를 나타낸다. Figure 3a shows the package type of the conventional mobile platform, Figure 3b shows the package interrelationship.

도 4는 본 발명의 실시예에 따른 모바일 플랫폼의 기능 별로 모듈화된 구조를 나타낸 개념도이다.4 is a conceptual diagram illustrating a modular structure for each function of a mobile platform according to an embodiment of the present invention.

도 5는 본 발명의 실시예에 따른 모바일 플랫폼의 구성도이다. 5 is a block diagram of a mobile platform according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 모듈 관리 및 업데이트를 위한 구성을 나타낸다. 6 shows a configuration for module management and updating according to an embodiment of the present invention.

도 7은 본 발명의 실시예에 따른 모바일 플랫폼 구동 과정을 나타낸 흐름도이다. 7 is a flowchart illustrating a process of driving a mobile platform according to an embodiment of the present invention.

도 8은 본 발명의 실시예에 따른 HAL 인터페이스 제공 과정을 나타낸다.8 illustrates a process of providing a HAL interface according to an embodiment of the present invention.

도 9는 본 발명의 실시예에 따른 모듈 매니저 초기화 과정을 나타낸다. 9 illustrates a module manager initialization process according to an embodiment of the present invention.

도 10은 본 발명의 실시예에 따른 모듈 정보 테이블 갱신 과정을 나타낸다. 10 illustrates a module information table update process according to an embodiment of the present invention.

도 11은 본 발명의 실시예에 따른 모듈 로딩 과정을 나타낸다.11 illustrates a module loading process according to an embodiment of the present invention.

도 12는 본 발명의 실시예에 따른 모듈 언로딩 과정을 나타낸다. 12 illustrates a module unloading process according to an embodiment of the present invention.

도 13은 본 발명의 실시예에 따른 어플리케이션에 의한 Java Class 참조 과정을 나타낸다. 13 illustrates a Java class reference process by an application according to an embodiment of the present invention.

도 14는 본 발명의 실시예에 따른 어플리케이션에 의한 C API 호출 과정을 나타낸다. 14 illustrates a C API call process by an application according to an embodiment of the present invention.

도 15는 본 발명의 제1 실시예에 따른 모듈 업데이트 과정을 나타낸 순서도이다.15 is a flowchart illustrating a module update process according to the first embodiment of the present invention.

도 16은 본 발명의 제2 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 16 is a flowchart illustrating a module update process according to a second embodiment of the present invention.

도 17은 본 발명의 제3 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 17 is a flowchart illustrating a module update process according to a third embodiment of the present invention.

도 18은 본 발명의 제4 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 18 is a flowchart illustrating a module update process according to a fourth embodiment of the present invention.

도 19는 본 발명의 제5 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 19 is a flowchart illustrating a module update process according to a fifth embodiment of the present invention.

도 20은 본 발명의 제6 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 20 is a flowchart illustrating a module update process according to a sixth embodiment of the present invention.

도 21은 본 발명의 제7 실시예에 따른 모듈 업데이트 과정을 나타낸다. 21 illustrates a module update process according to a seventh embodiment of the present invention.

도 22는 본 발명의 제8 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 22 is a flowchart illustrating a module update process according to an eighth embodiment of the present invention.

도 23은 본 발명의 제9 실시예에 따른 모듈 업데이트 과정을 나타낸 흐름도이다. 23 is a flowchart illustrating a module update process according to a ninth embodiment of the present invention.

도 24는 본 발명의 실시예에 따른 모듈 개발 인터페이스 구성을 나타낸다. 24 illustrates a module development interface configuration according to an embodiment of the present invention.

Claims (27)

모바일 플랫폼이 탑재된 이동통신 단말에 있어서, In the mobile communication terminal equipped with a mobile platform, 상기 모바일 플랫폼을 구성하는 각각의 모듈-여기서 각각의 모듈은 상기 모바일 플랫폼을 구성하는 단위 기능들 각각이 단말 바이너리로부터 독립된 고유의 플랫폼 코드 바이너리 형태로 구현한 것임-을 제어하고, 상기 각각의 모듈 간에 또는 어플리케이션에서 상기 각각의 모듈을 사용할 수 있도록 인터페이스를 제공하는 모듈 매니저; 및Each module constituting the mobile platform, wherein each module controls each of the unit functions constituting the mobile platform in a form of a unique platform code binary independent from the terminal binary, and between the respective modules. Or a module manager providing an interface to use each module in an application; And 상기 각각의 모듈을 상위 버전으로 업데이트하는 모듈 업데이터Module updater to update each module to higher version 를 포함하는 모바일 플랫폼이 탑재된 이동통신 단말. Mobile communication terminal equipped with a mobile platform comprising a. 제1항에 있어서, The method of claim 1, 상기 모듈 매니저는, The module manager, 상기 각각의 모듈에 대한 모듈 리스트 조회, 모듈 정보 조회, 모듈 다운로드 및 생성 중 적어도 하나를 위한 인터페이스를 구현하는 모듈 매니저 인터페이스;A module manager interface for implementing an interface for at least one of module list query, module information query, module download and generation for each module; 상기 모듈 매니저가 메모리에 로딩한 상기 각각의 모듈에 대한 정보를 관리하는 모듈 풀;A module pool managing information about each module loaded by the module manager into memory; 상기 이동통신 단말에 설치된 상기 각각의 모듈들에 대한 정보를 관리하는 모듈 정보 테이블; A module information table for managing information about each module installed in the mobile communication terminal; 상기 각각의 모듈이 하드웨어 적응 계층(HAL, Hardware Adaptation Layer) 인터페이스를 호출할 수 있도록 오이엠(OEM, Original Equipment Manufacturer) 계층 모듈과 인터페이스를 수행하고, 하드웨어 적응 계층 인터페이스 목록이 저장된 하드웨어 적응 계층 인터페이스 정보 테이블을 포함하는 하드웨어 적응 계층 인터페이스; 및A hardware adaptation layer interface information table that interfaces with an original equipment manufacturer (OEM) layer module so that each module can call a hardware adaptation layer (HAL) interface and stores a hardware adaptation layer interface list. A hardware adaptation layer interface comprising a; And 상기 모듈 매니저 인터페이스, 상기 모듈 풀, 상기 모듈 정보 테이블 및 상기 하드웨어 적응 계층 인터페이스의 동작을 제어하는 제어 매니저A control manager controlling operations of the module manager interface, the module pool, the module information table, and the hardware adaptation layer interface 를 포함하는 모바일 플랫폼이 탑재된 이동통신 단말.Mobile communication terminal equipped with a mobile platform comprising a. 제2항에 있어서, The method of claim 2, 상기 모듈 매니저 인터페이스는, The module manager interface, 모듈 아이디가 연속적으로 나열된 형태로 모듈 리스트를 제공하는 모듈 리스트 조회 응용 프로그래밍 인터페이스(API, Application Programming Interface);A module list inquiry application programming interface (API) providing a list of modules in a form in which module IDs are sequentially listed; 모듈 아이디, 모듈 이름, 모듈 버전, 모듈 크기 및 모듈 로딩 여부 중 적어도 하나를 포함하는 특정 모듈에 대한 모듈 정보를 제공하는 모듈 정보 조회 응용 프로그래밍 인터페이스;A module information inquiry application programming interface for providing module information about a specific module including at least one of a module ID, a module name, a module version, a module size, and whether the module is loaded; 특정 모듈을 메모리에 로딩하기 위한 모듈 로딩 응용 프로그래밍 인터페이스; 및A module loading application programming interface for loading a particular module into memory; And 신규 모듈의 다운로드 및 이미 설치된 모듈의 업그레이드를 위한 모듈 다운로드 응용 프로그래밍 인터페이스Module download application programming interface for downloading new modules and upgrading already installed modules 를 포함하는 모바일 플랫폼이 탑재된 이동통신 단말. Mobile communication terminal equipped with a mobile platform comprising a. 제2항 또는 제3항에 있어서, The method according to claim 2 or 3, 상기 제어 매니저는, The control manager, 상기 오이엠 계층 모듈로부터 모바일 플랫폼 구동이 요청되는 경우, 상기 하드웨어 적응 계층 인터페이스 정보 테이블 및 상기 모듈 정보 테이블을 초기화하여 커널 모듈에게 모바일 플랫폼 구동을 요청하고, When the mobile platform is requested to run from the OEM layer module, the hardware adaptation layer interface information table and the module information table are initialized to request a kernel module to run the mobile platform. 상기 초기화에 성공한 경우, 상기 오이엠 계층 모듈로부터 전달받은 하드웨어 적응 계층 인터페이스 리스트를 상기 하드웨어 적응 계층 인터페이스 정보 테이블에 등록하고 기 저장된 모듈 정보 파일을 조회하여 상기 모듈 정보 테이블에 등록하는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.If the initialization is successful, the mobile platform, the hardware adaptation layer interface list received from the OEM layer module is registered in the hardware adaptation layer interface information table, and the previously stored module information file is searched and registered in the module information table. The mounted mobile communication terminal. 제4항에 있어서, The method of claim 4, wherein 상기 제어 매니저는, The control manager, 상기 각각의 모듈로부터 상기 하드웨어 적응 계층 인터페이스 검색이 요청되는 경우 상기 하드웨어 적응 계층 인터페이스 정보 테이블을 검색하여 획득한 정보를 토대로 상기 오이엠 계층 모듈로부터 상기 각각의 모듈이 요청한 하드웨어 적응 계층 인터페이스의 주소를 반환받아 제공하는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.When the hardware adaptation layer interface search is requested from each module, the address of the hardware adaptation layer interface requested by each module is returned from the OS layer module based on the information obtained by searching the hardware adaptation layer interface information table. Mobile communication terminal equipped with a mobile platform, characterized in that providing. 제4항에 있어서, The method of claim 4, wherein 상기 제어 매니저는, The control manager, 상기 모듈 업데이터로부터 모듈 업데이트가 통보되는 경우, 업데이트된 모듈 아이디를 전달받아 해당 모듈의 모듈 정보 파일을 검색하여 상기 모듈 정보 테이블에 등록하여 상기 모듈 정보 테이블을 갱신하는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.When the module update is notified from the module updater, the mobile platform is installed, wherein the updated module ID is received and the module information file of the corresponding module is searched and registered in the module information table to update the module information table. Mobile communication terminal. 제4항에 있어서, The method of claim 4, wherein 상기 제어 매니저는, The control manager, 특정 모듈의 로딩이 요청되는 경우, 상기 모듈 정보 테이블을 조회하여 상기 특정 모듈의 로딩 여부를 판단하여 로딩된 경우 상기 모듈 풀에 상기 특정 모듈의 자료 구조를 갱신하고, 로딩되지 않은 경우 메모리에 상기 특정 모듈을 로딩하고 상기 특정 모듈의 모듈 로딩 정보를 상기 모듈 풀 및 상기 모듈 정보 테이블에 등록하는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.When the loading of a specific module is requested, the module information table is queried to determine whether the specific module is loaded, and when loaded, the data structure of the specific module is updated in the module pool. Loading a module and registering the module loading information of the particular module in the module pool and the module information table. 제4항에 있어서, The method of claim 4, wherein 상기 제어 매니저는, The control manager, 특정 어플리케이션의 종료가 통보된 경우, 전달받은 상기 특정 어플리케이션의 아이디 및 모듈 로딩 리스트를 토대로 모듈 로딩 정보를 검색하여 상기 특정 어플리케이션의 아이디에 해당하는 엔트리를 삭제하고 상기 모듈 풀 및 상기 모듈 정보 테이블에서 상기 모듈 로딩 리스트에 포함된 모듈들의 모듈 로딩 정보를 제거하 는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.When the termination of the specific application is notified, the module loading information is searched based on the received ID of the specific application and the module loading list, and an entry corresponding to the ID of the specific application is deleted and the module pool and the module information table are deleted. Mobile communication terminal equipped with a mobile platform, characterized in that for removing the module loading information of the modules included in the module loading list. 제4항에 있어서, The method of claim 4, wherein 상기 제어 매니저는, The control manager, 어플리케이션에서 특정 모듈이 제공하는 클래스(Class)를 참조하는 기능 및 상기 어플리케이션에 의한 C API 호출 기능을 제공하는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.A mobile communication terminal equipped with a mobile platform, characterized in that the application provides a function of referring to a class provided by a specific module and a C API call function by the application. 제1항에 있어서, The method of claim 1, 상기 모듈 업데이터는, The module updater, 사용자에 의한 업데이트 메뉴 선택, 모듈 업데이트 서버로부터 업데이트 정보가 포함된 콜백 문자 메시지 수신 및 어플리케이션에 의한 업데이트 요청 중 하나를 포함하는 경로를 통해 업데이트를 요청받아 범용 시리얼 버스 또는 외부 저장 장치와 연결을 통해 유선으로 또는 상기 모듈 업데이트 서버에 접속하여 무선으로 상기 각각의 모듈에 대한 업데이트를 수행하는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.Wired through a connection with a universal serial bus or an external storage device that receives an update request via a path including one of selecting an update menu by a user, receiving a callback text message containing update information from a module update server, and requesting an update by an application. A mobile communication terminal equipped with a mobile platform, characterized in that for performing an update for each module by wirelessly or accessing the module update server. 제1항에 있어서, The method of claim 1, 상기 모듈 업데이터는, The module updater, 업데이트 대상 모듈이 EFS(Embeded File System) 바이너리에 저장된 경우 기 저장된 하위 버전의 모듈은 삭제하고 상위 버전의 모듈을 다운로드하여 저장하고, 상기 업데이트 대상 모듈이 코드 영역에 정적으로 저장된 모듈인 경우 다운로드한 상위 버전의 모듈을 상기 EFS 바이너리에 저장하고 모듈 로딩시 상기 EFS 바이너리에 저장된 모듈을 로딩하고, 상기 업데이트 대상 모듈이 신규 모듈인 경우 신규로 다운로드한 모듈을 상기 EFS 바이너리에 저장하여 로딩하는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.If the update target module is stored in the embedded file system (EFS) binary, the previously saved lower version module is deleted and the higher version module is downloaded and stored. If the update target module is a statically stored module in the code area, Storing a module of a version in the EFS binary and loading the module stored in the EFS binary when the module is loaded, and when the update target module is a new module, storing and loading a newly downloaded module in the EFS binary. Mobile communication terminal equipped with a mobile platform. 제10항 또는 제11항에 있어서, The method according to claim 10 or 11, wherein 상기 모듈 업데이터는, The module updater, 모듈 업데이트가 구동된 경우, 구동 타입이 상기 업데이트 메뉴 선택에 의한 것인 경우 상기 모듈 업데이트 서버에 최신 버전의 모듈 리스트를 조회하여 업데이트 대상 모듈 리스트를 구성하여 상기 최신 버전보다 하위 버전이 단말에 탑재되거나 탑재되지 않은 경우 해당 모듈을 업데이트하고, 상기 구동 타입이 상기 콜백 문자 메시지 수신 또는 상기 어플리케이션에 의한 업데이트에 의한 것인 경우 파라미터 형태로 취득한 업데이트 요청 모듈 리스트를 토대로 업데이트 대상 모듈 리스트를 구성하여 상기 최신 버전보다 하위 버전이 단말에 탑재되거나 탑재되지 않은 경우 해당 모듈을 업데이트하는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.When the module update is driven, if the drive type is by selecting the update menu, the module update server is queried for the latest version of the module list to construct an update target module list, and a lower version than the latest version is mounted on the terminal. If the module is not loaded, update the corresponding module, and if the driving type is caused by receiving the callback text message or updating by the application, construct an update target module list based on the update request module list acquired in the form of the parameter to the latest version. A mobile communication terminal equipped with a mobile platform, characterized in that for updating the module when a lower version is mounted on the terminal or not. 제12항에 있어서, The method of claim 12, 상기 모듈 업데이터는, The module updater, 모듈 업데이트시 상기 모듈을 다운로드 할 메모리 용량이 부족한 경우, 사용자에 의해 선택된 어플리케이션을 삭제하여 메모리 용량을 확보한 후 상기 모듈을 다운로드하는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.If the memory capacity to download the module is insufficient when updating the module, the mobile communication terminal equipped with a mobile platform, characterized in that to download the module after securing the memory capacity by deleting the application selected by the user. 제12항에 있어서, The method of claim 12, 상기 모듈 업데이터는, The module updater, 모듈 업데이트가 요청된 업데이트 대상 모듈의 모듈 정보 파일을 조회하여 하드웨어 적응 계층(HAL, Hardware Adaptation Layer) 파일인 경우, 하드웨어 적응 계층 모듈로부터 모듈 인터페이스 정보를 획득하여 업데이트 요청 버전이 기 탑재된 버전보다 상위인 경우 상기 하드웨어 적응 계층 파일을 설치하는 것을 특징으로 하는 모바일 플랫폼이 탑재된 이동통신 단말.In the case of a hardware adaptation layer (HAL) file by querying the module information file of the update target module for which the module update is requested, the module request information is obtained from the hardware adaptation layer module so that the update request version is higher than the previously installed version. In the case of the mobile communication terminal equipped with a mobile platform, characterized in that for installing the hardware adaptation layer file. 제1항에 있어서, The method of claim 1, 상기 모바일 플랫폼이 제공하는 기본적인 응용 프로그래밍 인터페이스 외에 동적으로 모듈을 추가하거나 갱신할 수 있도록 하는 모듈 개발 인터페이스를 더 포함하고, In addition to the basic application programming interface provided by the mobile platform further includes a module development interface for dynamically adding or updating modules, 상기 모듈 개발 인터페이스는,The module development interface, 상기 각각의 모듈이 출력할 인터페이스의 엔트리를 정의하는 모듈 엔트리 정의 응용 프로그래밍 인터페이스;A module entry definition application programming interface defining an entry of an interface for each module to output; 정의한 모듈 엔트리의 리스트를 지정하는 모듈 엔트리 리스트 정의 응용 프로그래밍 인터페이스;A module entry list definition application programming interface specifying a list of defined module entries; 상기 각각의 모듈이 로딩될 때 한번 호출되어야 할 함수를 정의하는 모듈 초기화 응용 프로그래밍 인터페이스;A module initialization application programming interface defining a function to be called once when each module is loaded; 상기 각각의 모듈이 메모리에서 해제될 때 한번 불려져야 될 함수를 정의하는 모듈 종료 응용 프로그래밍 인터페이스; 및A module exit application programming interface defining a function to be called once when each module is released from memory; And 상기 각각의 모듈을 사용하는 어플리케이션이 구동되거나 종료될 때 상기 각각의 모듈에게 어플리케이션이 구동되거나 종료되었음을 알려주는 함수를 정의 하는 모듈 통지 응용 프로그래밍 인터페이스Module notification application programming interface defining a function for informing each module that the application has been started or terminated when an application using the respective module is started or terminated. 를 포함하는 모바일 플랫폼이 탑재된 이동통신 단말.Mobile communication terminal equipped with a mobile platform comprising a. 모듈 매니저-여기서 모듈 매니저는 단말 바이너리로부터 독립된 고유의 플랫폼 코드 바이너리 형태로 이루어져 모바일 플랫폼을 구성하는 각각의 모듈을 제어함-가 오이엠(OEM, Original Equipment Manufacturer) 계층 모듈로부터 플랫폼 구동을 요청받는 단계;A module manager, wherein the module manager comprises a platform code binary form independent from the terminal binary to control each module constituting the mobile platform; receiving a request for platform operation from an original equipment manufacturer (OEM) layer module; 상기 각각의 모듈들에 대한 정보를 관리하는 모듈 정보 테이블 및 하드웨어 적응 계층(HAL, Hardware Adaptation Layer) 목록이 저장된 하드웨어 적응 계층 인터페이스 정보 테이블을 초기화하는 단계; 및Initializing a hardware adaptation layer interface information table storing a module information table and a hardware adaptation layer (HAL) list for managing information about the respective modules; And 커널 모듈을 로딩하여 모바일 플랫폼을 구동하는 단계Loading Kernel Modules to Run Mobile Platforms 를 포함하는 모바일 플랫폼 구동 방법.Mobile platform driving method comprising a. 제16항에 있어서, The method of claim 16, 상기 요청받는 단계 이후, After the step of receiving the request, 상기 오이엠 계층 모듈로부터 하드웨어 적응 계층 인터페이스 리스트를 전달받아 상기 하드웨어 적응 계층 인터페이스 정보 테이블에 등록하는 단계; 및Receiving a hardware adaptation layer interface list from the OEM layer module and registering the hardware adaptation layer interface information table in the hardware adaptation layer interface information table; And EFS(Embeded File System) 바이너리에 저장된 모듈 정보 파일을 조회하여 상기 모듈 정보 테이블에 등록하는 단계Searching for module information files stored in an embedded file system (EFS) binary and registering them in the module information table 를 더 포함하는 모바일 플랫폼 구동 방법.Mobile platform driving method further comprising a. 제17항에 있어서, The method of claim 17, 상기 하드웨어 적응 계층 인터페이스 정보 테이블에 등록하는 단계 이후, After registering in the hardware adaptation layer interface information table, 특정 하드웨어 적응 계층 인터페이스 검색이 요청된 경우, 상기 하드웨어 적응 계층 인터페이스 정보 테이블을 검색하는 단계;Retrieving the hardware adaptation layer interface information table when a specific hardware adaptation layer interface search is requested; 상기 하드웨어 적응 계층 인터페이스 정보 테이블을 검색하여 획득한 정보를 토대로 상기 오이엠 계층 모듈에게 상기 특정 하드웨어 적응 계층 인터페이스를 요청하는 단계; 및 Requesting the OEM layer module for the specific hardware adaptation layer interface based on the information obtained by searching the hardware adaptation layer interface information table; And 상기 오이엠 계층 모듈로부터 상기 특정 하드웨어 적응 계층 인터페이스의 주소를 전달받아 상기 하드웨어 적응 계층 인터페이스 정보 테이블에 등록하는 단계Receiving the address of the specific hardware adaptation layer interface from the OEM layer module and registering the address in the hardware adaptation layer interface information table 를 더 포함하는 모바일 플랫폼 구동 방법.Mobile platform driving method further comprising a. 모듈 매니저-여기서 모듈 매니저는 단말 바이너리로부터 독립된 고유의 플랫폼 코드 바이너리 형태로 이루어져 모바일 플랫폼을 구성하는 각각의 모듈을 제어함-가 특정 모듈의 로딩을 요청받는 단계;A module manager, wherein the module manager is formed in a unique platform code binary form independent from the terminal binary to control each module constituting the mobile platform; 할당받은 메모리에 상기 특정 모듈의 모듈 로딩 정보 및 모듈 바이너리를 기록하고, 상기 특정 모듈을 로딩하는 단계; 및Recording module loading information and module binaries of the specific module in the allocated memory, and loading the specific module; And 상기 모듈 매니저가 메모리에 로딩한 상기 각각의 모듈에 대한 정보를 관리하는 모듈 풀 및 상기 이동통신 단말에 설치된 상기 각각의 모듈들에 대한 정보를 관리하는 모듈 정보 테이블에 상기 특정 모듈에 대한 모듈 로딩 정보를 갱신하는 단계Module loading information for the particular module in a module pool for managing information about each module loaded by the module manager into a memory and for each module installed in the mobile communication terminal. Steps to update 를 포함하는 모듈 관리 방법.Module management method comprising a. 제19항에 있어서, The method of claim 19, 상기 요청받는 단계와 상기 로딩하는 단계 사이에, Between the requesting step and the loading step, 상기 모듈 정보 테이블을 조회하여 상기 특정 모듈이 이미 로딩된 것으로 판단된 경우, 상기 모듈 풀에 상기 특정 모듈의 자료구조를 갱신하고 종료하는 단계Querying the module information table, if it is determined that the specific module has already been loaded, updating and terminating the data structure of the specific module in the module pool; 를 더 포함하는 모듈 관리 방법.Module management method further comprising. 제19항 또는 제20항에 있어서, 21. The method according to claim 19 or 20, 상기 갱신하는 단계 이후, After the updating step, 특정 어플리케이션의 종료로 인한 모듈 언로딩을 요청받는 단계;Receiving a request for module unloading due to termination of a specific application; 특정 모듈을 로드한 어플리케이션 정보로 구성된 모듈 로더 리스트에서 상기 특정 어플리케이션의 아이디에 해당하는 엔트리를 삭제하는 단계; Deleting an entry corresponding to the ID of the specific application from a module loader list including application information loading a specific module; 상기 특정 모듈의 모듈 로딩 정보를 상기 모듈 풀 및 상기 모듈 정보 테이블에서 제거하는 단계Removing module loading information of the specific module from the module pool and the module information table 를 더 포함하는 모듈 관리 방법.Module management method further comprising. 모듈 업데이터-여기서 모듈 업데이터는 단말 바이너리로부터 독립된 고유의 플랫폼 코드 바이너리 형태로 이루어져 모바일 플랫폼을 구성하는 각각의 모듈의 업데이트 기능을 수행함-가 모듈 업데이터 구동을 요청받는 단계; 및A module updater, wherein the module updater is formed in a unique platform code binary form independent from the terminal binary to perform an update function of each module constituting the mobile platform; And 기 저장된 하위 버전의 모듈은 삭제하고 상위 버전의 모듈을 다운로드하여 저장하는 단계Delete the previously saved lower version module and download and save the higher version module 를 포함하는 모듈 업데이트 방법.Module update method comprising a. 제22항에 있어서, The method of claim 22, 상기 저장하는 단계는, The storing step, 구동 타입이 업데이트 메뉴 선택에 의한 것인지, 콜백 문자 메시지 수신에 의한 것인지 또는 어플리케이션에 의한 업데이트 요청인지를 판단하는 단계;Determining whether the driving type is by selecting an update menu, by receiving a callback text message, or by an application; 업데이트 메뉴 선택에 의한 것인 경우 모듈 업데이트 서버에 최신 버전의 모듈 리스트를 조회하여 업데이트 대상 모듈 리스트를 구성하는 단계;Querying the module update server for a list of modules of the latest version when the update menu is selected, and constructing an update target module list; 상기 구동 타입이 상기 콜백 문자 메시지 수신 또는 상기 어플리케이션에 의한 업데이트에 의한 것인 경우 파라미터 형태로 취득한 업데이트 요청 모듈 리스트를 토대로 업데이트 대상 모듈 리스트를 구성하는 단계; 및Constructing an update target module list based on an update request module list acquired in the form of a parameter when the driving type is due to receiving the callback text message or updating by the application; And 상기 업데이트 대상 모듈 리스트에 포함된 모듈의 버전보다 하위 버전이 단말에 탑재되거나 해당 모듈이 탑재되지 않은 경우 해당 모듈을 다운로드할 것을 결정하는 단계Determining whether to download a corresponding module if a version lower than a version of a module included in the update target module list is loaded in the terminal or if the corresponding module is not loaded; 를 포함하는 모듈 업데이트 방법.Module update method comprising a. 제23항에 있어서, 24. The method of claim 23, 상기 결정하는 단계 이후, After the determining step, 상기 모듈을 다운로드 할 메모리 용량이 충분한지를 판단하는 단계;Determining whether a memory capacity for downloading the module is sufficient; 상기 메모리 용량이 충분하지 않은 경우, 삭제 가능한 어플리케이션 리스트를 사용자에게 출력하는 단계;If the memory capacity is not sufficient, outputting a list of erasable applications to a user; 사용자에 의해 선택된 어플리케이션을 삭제하여 메모리 용량을 확보하는 단계; 및 Deleting the application selected by the user to secure a memory capacity; And 상기 해당 모듈을 다운로드하여 저장하는 단계Downloading and storing the corresponding module 를 더 포함하는 모듈 업데이트 방법.Module update method further comprising a. 제22항 내지 제24항 중 어느 한 항에 있어서, The method according to any one of claims 22 to 24, 상기 요청받는 단계는, The requesting step, 사용자에 의한 업데이트 메뉴 선택, 모듈 업데이트 서버로부터 업데이트 정보가 포함된 콜백 문자 메시지 수신 및 어플리케이션에 의한 업데이트 요청 중 하나를 포함하는 경로와, 범용 시리얼 버스 또는 외부 저장 장치와 연결을 통해 유선으로 또는 상기 모듈 업데이트 서버에 접속하여 무선으로 업데이트할 것을 요청받는 것을 특징으로 하는 모듈 업데이트 방법.A path including one of selecting an update menu by a user, receiving a callback text message with update information from a module update server, and requesting an update by an application, and by wire or via the connection with a universal serial bus or an external storage device. Module update method characterized in that the request to update by wireless access to the update server. 제22항에 있어서, The method of claim 22, 상기 저장하는 단계는, The storing step, 모듈 업데이트가 요청된 업데이트 대상 모듈의 모듈 정보 파일을 조회하는 단계;Querying a module information file of an update target module for which a module update is requested; 상기 모듈 정보 파일이 하드웨어 적응 계층(HAL, Hardware Adaptation Layer) 파일인 경우, 하드웨어 적응 계층 모듈로부터 모듈 인터페이스 정보를 획득하는 단계; 및If the module information file is a hardware adaptation layer (HAL) file, obtaining module interface information from a hardware adaptation layer module; And 업데이트 요청 버전이 기 탑재된 버전보다 상위인 경우 상기 하드웨어 적응 계층 파일을 설치하는 단계Installing the hardware adaptation layer file when the update request version is higher than the pre-loaded version. 를 더 포함하는 모듈 업데이트 방법.Module update method further comprising a. 제22항에 있어서, The method of claim 22, 상기 저장하는 단계는, The storing step, 모듈 업데이트가 요청된 업데이트 대상 모듈이 현재 단말에 저장된 위치를 확인하는 단계;Confirming, by the module to which the module is requested to be updated, a location currently stored in the terminal; EFS(Embeded File System) 바이너리에 저장된 경우 기 저장된 하위 버전의 모듈은 삭제하고 상위 버전의 모듈을 다운로드하여 저장하는 단계;Deleting the previously stored lower version module and downloading and storing the upper version module when the EFS binary is stored; 코드 영역에 정적으로 저장된 모듈인 경우 다운로드한 상위 버전의 모듈을 상기 EFS 바이너리에 저장하고 모듈 로딩시 상기 EFS 바이너리에 저장된 모듈을 로딩하도록 하는 단계; 및If the module is statically stored in a code area, storing the downloaded higher version module in the EFS binary and loading the module stored in the EFS binary when the module is loaded; And 업데이트 대상 모듈이 신규 모듈인 경우 상기 신규 모듈을 다운로드하여 상기 EFS 바이너리에 저장하여 로딩되도록 하는 단계If the module to be updated is a new module, downloading the new module and storing and loading the new module in the EFS binary 를 포함하는 모듈 업데이트 방법.Module update method comprising a.
KR1020090024115A 2009-03-20 2009-03-20 Mobile communication terminal equipped with a mobile platform that is managed and updated in the form of a module, a method for operating the mobile platform, a module management method, and a module update method Active KR101064737B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090024115A KR101064737B1 (en) 2009-03-20 2009-03-20 Mobile communication terminal equipped with a mobile platform that is managed and updated in the form of a module, a method for operating the mobile platform, a module management method, and a module update method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090024115A KR101064737B1 (en) 2009-03-20 2009-03-20 Mobile communication terminal equipped with a mobile platform that is managed and updated in the form of a module, a method for operating the mobile platform, a module management method, and a module update method

Publications (2)

Publication Number Publication Date
KR20100105210A true KR20100105210A (en) 2010-09-29
KR101064737B1 KR101064737B1 (en) 2011-09-16

Family

ID=43009375

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090024115A Active KR101064737B1 (en) 2009-03-20 2009-03-20 Mobile communication terminal equipped with a mobile platform that is managed and updated in the form of a module, a method for operating the mobile platform, a module management method, and a module update method

Country Status (1)

Country Link
KR (1) KR101064737B1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101224382B1 (en) * 2011-06-24 2013-01-21 주식회사 안랩 Update apparatus and method
WO2013066938A1 (en) * 2011-10-31 2013-05-10 Nokia Corporation Wireless programming
KR101410356B1 (en) * 2012-01-31 2014-07-01 이달수 Template providing system for setting addition functions
WO2015174609A1 (en) * 2014-05-15 2015-11-19 에스케이플래닛 주식회사 Method for updating library, and terminal and system therefor
US9307347B2 (en) 2012-06-01 2016-04-05 Nokia Technologies Oy Wireless programming
US9369959B2 (en) 2011-10-31 2016-06-14 Nokia Technologies Oy Wirelessly transferring data to a packaged electronic device
US11238151B2 (en) 2018-10-31 2022-02-01 Korea Internet & Security Agency Method and apparatus for patching binary having vulnerability
WO2024128401A1 (en) * 2022-12-13 2024-06-20 쿠팡 주식회사 Electronic device and information provision method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101629565B1 (en) * 2014-09-30 2016-06-14 주식회사 엘지유플러스 Event Application Control System, Event Management Server and Method, Mobile and Event Practicing Method
KR102519132B1 (en) * 2020-09-18 2023-04-07 한국전자기술연구원 System and method for operating self-growing software based on microservice

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101016649B1 (en) * 2003-11-27 2011-02-25 주식회사 케이티 Automatic reinstallation method and system of mobile platform application
KR100767785B1 (en) 2005-06-22 2007-10-18 (주)에이티솔루션 Application update system for mobile terminal
KR20070109310A (en) * 2006-05-10 2007-11-15 엘지전자 주식회사 Mobile communication terminal and memory control method and software module update method
KR20080037450A (en) * 2006-10-26 2008-04-30 웹싱크 주식회사 Update system and method of software execution module

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101224382B1 (en) * 2011-06-24 2013-01-21 주식회사 안랩 Update apparatus and method
WO2012177080A3 (en) * 2011-06-24 2013-04-04 Ahnlab, Inc. Update apparatus and method
WO2013066938A1 (en) * 2011-10-31 2013-05-10 Nokia Corporation Wireless programming
US9369959B2 (en) 2011-10-31 2016-06-14 Nokia Technologies Oy Wirelessly transferring data to a packaged electronic device
USRE47394E1 (en) 2011-10-31 2019-05-14 Wsou Investments, Llc Wirelessly transferring data to a packaged electronic device
KR101410356B1 (en) * 2012-01-31 2014-07-01 이달수 Template providing system for setting addition functions
US9307347B2 (en) 2012-06-01 2016-04-05 Nokia Technologies Oy Wireless programming
WO2015174609A1 (en) * 2014-05-15 2015-11-19 에스케이플래닛 주식회사 Method for updating library, and terminal and system therefor
US11238151B2 (en) 2018-10-31 2022-02-01 Korea Internet & Security Agency Method and apparatus for patching binary having vulnerability
WO2024128401A1 (en) * 2022-12-13 2024-06-20 쿠팡 주식회사 Electronic device and information provision method thereof

Also Published As

Publication number Publication date
KR101064737B1 (en) 2011-09-16

Similar Documents

Publication Publication Date Title
KR101064737B1 (en) Mobile communication terminal equipped with a mobile platform that is managed and updated in the form of a module, a method for operating the mobile platform, a module management method, and a module update method
CN106227579B (en) Docker container construction method and Docker management console
EP3974962A1 (en) Method, apparatus, electronic device, readable storage medium and program for deploying application
US9779111B2 (en) Method and system for configuration of virtualized software applications
JP6192534B2 (en) Virtual application extension point
JP5294892B2 (en) Image forming apparatus, apparatus, control method, and program
CN101425017B (en) Installation method and system of updated software for server components
US10810017B2 (en) Systems and methods for handling firmware driver dependencies in host operating systems while applying updates from bootable image file
US11016785B2 (en) Method and system for mirror image package preparation and application operation
KR102702525B1 (en) Method and device for creating a mirror image file, and computer-readable storage medium
EP3267308B1 (en) Application loading method and device
US20170046151A1 (en) System and method for adding and storing groups of firmware default settings
US10268628B2 (en) Method for extracting BIOS attributes for BIOS management and system therefor
US20140237463A1 (en) Dynamically generate and execute a context-specific patch installation procedure on a computing system
US10216510B2 (en) Silent upgrade of software with dependencies
US11269676B2 (en) Managed virtual appliances
US9916149B2 (en) Information processing apparatus, control method for information processing apparatus, and storage medium of program for executing control method
US11900089B2 (en) Automatically configuring and deploying a software operator in a distributed computing environment from a package
US20240394030A1 (en) Deriving a container from a package set
CN114385251A (en) Operating system booting method, system, terminal and storage medium based on memory
CN116685946A (en) Reloading of updated shared libraries without stopping application execution
US11340882B2 (en) Systems and methods for enforcing update policies while applying updates from bootable image file
US20200150945A1 (en) Systems and methods for support of selective processor microcode updates
US9983862B2 (en) Systems and methods for download and installation of drivers for unmanaged information handling resources
CN113050962A (en) Mobile service upgrading method, device and terminal

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

N231 Notification of change of applicant
PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

FPAY Annual fee payment

Payment date: 20160901

Year of fee payment: 6

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

FPAY Annual fee payment

Payment date: 20190807

Year of fee payment: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 10

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 11

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 12

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 13

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 14

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 15

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 15