KR100846203B1 - 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체 - Google Patents

모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체 Download PDF

Info

Publication number
KR100846203B1
KR100846203B1 KR1020060080063A KR20060080063A KR100846203B1 KR 100846203 B1 KR100846203 B1 KR 100846203B1 KR 1020060080063 A KR1020060080063 A KR 1020060080063A KR 20060080063 A KR20060080063 A KR 20060080063A KR 100846203 B1 KR100846203 B1 KR 100846203B1
Authority
KR
South Korea
Prior art keywords
mobile application
information
generating
platform
resource data
Prior art date
Application number
KR1020060080063A
Other languages
English (en)
Other versions
KR20080018025A (ko
Inventor
황선규
Original Assignee
(주)지앤씨인터렉티브
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)지앤씨인터렉티브 filed Critical (주)지앤씨인터렉티브
Priority to KR1020060080063A priority Critical patent/KR100846203B1/ko
Publication of KR20080018025A publication Critical patent/KR20080018025A/ko
Application granted granted Critical
Publication of KR100846203B1 publication Critical patent/KR100846203B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Abstract

모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한 프로그램을 기록한 기록매체가 개시된다. 본 발명의 바람직한 일 실시예에 따르면, 모바일 어플리케이션(mobile application)의 구성 정보를 입력받고, 입력받은 구성 정보에 상응하는 메타데이터(metadata)와 메타데이터에 의한 리소스 데이터를 독출하여, 독출된 리소스 데이터 중 입력받은 구성 정보에 따른 최적의 리소스 데이터를 선택하여 선택된 리소스 데이터를 이용하여 소스 코드를 생성하는 것을 특징으로 하는 모바일 어플리케이션의 생성 방법이 제공된다.
본 발명에 따르면, 모바일 어플리케이션이 동작하는 플랫폼, 모바일 장치의 성능, API 등의 환경이 달라지는 경우에도 각각의 환경에 적합한 모바일 어플리케이션을 생성할 수 있는 장점이 있다.
모바일, 어플리케이션, J2ME, JAVA, WIPI, 플랫폼, Platform

Description

모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한 프로그램을 기록한 기록매체{Method for generating mobile application and record media recorded program for realizing the same}
도 1은 본 발명의 바람직한 일 실시예에 따른 모바일 어플리케이션의 생성 방법을 구현하기 위한 프로그램의 구성을 도시한 블록도.
도 2는 본 발명의 바람직한 일 실시예에 따른 모바일 어플리케이션이 생성되는 순서를 도시한 순서도.
도 3은 본 발명의 바람직한 일 실시예에 따라 소스 코드의 생성 과정을 상세히 도시한 도면.
도 4 내지 도 7은 본 발명의 바람직한 일 실시예에 따라 실제 구현된 모바일 어플리케이션의 생성 프로그램의 사용자 인터페이스 화면을 도시한 도면.
본 발명은 모바일 어플리케이션(mobile application)의 생성 방법 및 이를 구현하기 위한 프로그램을 기록한 기록매체에 관한 것으로서, 보다 상세하게는 플 랫폼(platform)과 모바일 장치의 성능, API 등의 모바일 어플리케이션이 구동되는 환경에 적합한 모바일 어플리케이션을 자동 생성하는 방법 및 이를 구현하기 위한 프로그램을 기록한 기록매체에 관한 것이다.
먼저 종래의 모바일 어플리케이션을 생성하는 방법에 대해 살펴본다.
모바일 어플리케이션(mobile application)은 휴대 전화, PMP(Portable Multimedia Player) 등과 같은 휴대용 디지털 처리 장치에서 동작하는 응용 프로그램을 말하는 것으로, 종래의 모바일 어플리케이션은 먼저 모바일 어플리케이션이 동작하는 플랫폼의 종류에 의해 생성 방법이 정해진다.
플랫폼(platform)이란 응용 프로그램인 어플리케이션이 실행될 수 있는 기초를 이루는 시스템을 말하는 것으로, 모바일 어플리케이션이 실행될 수 있는 대표적인 플랫폼으로는 BREW(Binary Runtime Environment for Wireless), J2ME(Java 2 Platform Micro Edition), MIDP(Mobile Information Device Profile), WIPI(Wireless Internet Platform for Interoperability), GVM(General Virtual Machine) 등의 다양한 플랫폼이 있다.
이러한 다양한 플랫폼들은 각각 서로 다른 환경을 제공하며, 특히 MIDP, WIPI는 기본적으로 J2ME 표준규격을 따르고 있으나, 이 경우에도 조금씩 다른 환경을 제공하므로, 모바일 어플리케이션을 개발하는 경우 각각의 플랫폼에서 모두 모바일 어플리케이션이 동작할 수 있게 하기 위해서는 각각의 플랫폼별로 모바일 어플리케이션을 생성하여야 한다.
특히, 국내의 경우 각각의 이동 통신사별로 서로 다른 플랫폼을 사용할 뿐만 아니라 API(Application Program Interface)가 각각 달라 모바일 어플리케이션의 개발자는 플랫폼뿐만 아니라 API별로 다시 모바일 어플리케이션을 수정하여 제작하여야 한다.
또한, 모바일 어플리케이션이 동작하는 모바일 장치의 경우 모바일 장치별로 디스플레이 장치(예를 들면, LCD의 크기와 해상도 등)의 성능이 다르고, 사운드의 출력 방법, 메모리의 크기 등이 다르므로 모바일 장치의 성능에 따라 다시 모바일 어플리케이션을 수정하여 제작하여야 한다.
따라서, 모바일 어플리케이션을 개발하는 경우 먼저 특정 플랫폼과 API, 모바일 장치의 성능 등을 기준으로 모바일 어플리케이션을 제작하고 플랫폼, API, 모바일 장치의 성능 등이 달라질 때마다 각각의 경우에 따라 개발자가 일일이 모바일 어플리케이션을 수정하는 작업을 수행하여야 하는 문제점이 있다.
또한, 이러한 모바일 어플리케이션의 개발 과정을 수행함에 따라 모바일 어플리케이션의 개발에 많은 인력과 시간이 소요되는 문제점이 있다.
그리고 모바일 어플리케이션의 수정을 플랫폼, API, 모바일 장치의 성능에 따라 모바일 어플리케이션의 개발자가 일일이 수정하여야 하므로 개발자가 실수하는 경우 등에는 플랫폼, API, 모바일 장치의 성능에 적합하지 않은 모바일 어플리케이션이 생성되는 경우가 발생하는 문제점이 있다.
상기한 바와 같은 종래의 문제점을 해결하기 위해, 본 발명은 모바일 어플리 케이션이 동작하는 플랫폼, API, 모바일 장치의 성능에 따라 각각의 환경에 적합한 모바일 어플리케이션을 생성할 수 있는 모바일 어플리케이션의 생성 방법을 제안하는 것이다.
또한, 각각의 환경에 적합한 모바일 어플리케이션을 생성하여 모바일 어플리케이션의 개발에 시간과 비용을 절감할 수 있는 모바일 어플리케이션의 생성 방법을 제안하는 것이다.
그리고 각각의 환경에 적합한 모바일 어플리케이션을 생성하여 모바일 어플리케이션의 개발자의 실수를 최소화할 수 있는 모바일 어플리케이션의 생성 방법을 제안하는 것이다.
본 발명의 또 다른 목적들은 이하의 실시예에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.
상기한 바와 같은 목적을 달성하기 위해, 본 발명의 일 측면에 따르면, 모바일 어플리케이션의 생성 방법이 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 모바일 어플리케이션(mobile application)의 구성 정보를 입력받는 단계(a); 상기 입력받은 구성 정보에 상응하는 메타데이터(metadata)와 상기 메타데이터에 의한 리소스 데이터를 독출하는 단계(b); 상기 독출된 리소스 데이터 중 상기 입력받은 구성 정보에 따른 최적의 리소스 데이터를 선택하는 단계(c); 및 상기 선택된 리소스 데이터를 이용하여 소스 코드를 생성하는 단계(d)를 포함하는 것을 특징으로 하는 모바일 어플리케이션의 생성 방법이 제공된다.
상기 모바일 어플리케이션의 구성 정보는 모바일 어플리케이션이 동작하는 플랫폼(platform) 정보, 모바일 장치의 성능 정보 및 API(Application Program Interface) 정보일 수 있으며, 상기 모바일 장치의 성능 정보는 모바일 장치의 디스플레이 정보, 사운드 출력 방식 정보, 메모리 정보 중 적어도 하나 이상일 수 있다.
상기 선택된 리소스 데이터를 이용하여 소스 코드를 생성하는 단계는 라이브러리(library) 파일을 이용하여 수행될 수 있다.
또한, 상기 선택된 리소스 데이터를 이용하여 소스 코드를 생성하는 단계는 상기 생성된 소스 코드가 상기 입력된 환경 설정 정보에서 실행될 수 있는 소스 코드인지 검사하는 단계를 더 포함할 수 있으며, 상기 생성된 소스 코드를 컴파일(compile)하는 단계를 더 포함할 수 있다.
상기 선택된 리소스 데이터를 이용하여 소스 코드를 생성하는 단계는 상기 선택된 리소스 데이터를 이용하여 소스 코드를 생성하는 것은 미리 특정 언어로 구성된 문장에서 선택된 리소스 데이터에 해당하는 문장을 치환, 추가 또는/그리고 삭제하는 과정을 통해 수행될 수 있다.
본 발명의 다른 측면에 의하면, 모바일 어플리케이션의 생성 방법을 구현하기 위한 프로그램을 기록한 기록매체가 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 모바일 어플리케이션의 생성 방법이 구현되도록, 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서, 모바일 어플리케이션(mobile application)의 구성 정보를 입력받는 단계(a); 상기 입력받은 구성 정보에 상응하는 메타데이터(metadata)와 상기 메타데이터에 의한 리소스 데이터를 독출하는 단계(b); 상기 독출된 리소스 데이터 중 상기 입력받은 구성 정보에 따른 최적의 리소스 데이터를 선택하는 단계(c); 및 상기 선택된 리소스 데이터를 이용하여 소스 코드를 생성하는 단계(d)를 포함하는 것을 특징으로 하는 모바일 어플리케이션의 생성 방법을 구현하기 위한 프로그램을 기록한 기록매체가 제공된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
먼저 도 1을 참조하여 본 발명의 바람직한 일 실시예에 따른 모바일 어플리케이션의 생성 프로그램의 구성을 살펴본다.
도 1은 본 발명의 바람직한 일 실시예에 따른 모바일 어플리케이션의 생성 방법을 구현하기 위한 프로그램의 구성을 도시한 블록도이다. 하기의 블록 구성도는 모바일 어플리케이션의 생성 프로그램의 구성을 기능별로 도시한 것으로, 실제적인 구현예는 이에 제한되지 않음은 자명하다.
도 1에 도시된 바와 같이, 본 발명의 바람직한 일 실시예에 따른 모바일 어 플리케이션의 생성 방법을 구현하기 위한 프로그램은 환경 설정부(100), 메타데이터 저장부(110), 리소스 저장부(120), 소스 코드 생성부(130) 및 컴파일링부(140)를 포함할 수 있다.
환경 설정부(100)는 본 발명의 바람직한 일 실시예에 의한 모바일 어플리케이션 생성 프로그램의 사용자에 의해 모바일 어플리케이션의 환경 설정 정보를 입력받는다.
모바일 어플리케이션의 환경 설정 정보는 예를 들면, 플랫폼(platform) 정보, 모바일 장치의 성능 정보, API(Application Program Interface) 정보일 수 있다.
플랫폼(platform) 정보는 응용 프로그램인 어플리케이션이 실행될 수 있는 기초를 이루는 시스템인 플랫폼을 정의하는 정보를 말한다.
예를 들면, 모바일 어플리케이션이 실행될 수 있는 플랫폼으로는 BREW(Binary Runtime Environment for Wireless), J2ME(Java 2 Platform Micro Edition), MIDP(Mobile Information Device Profile), WIPI(Wireless Internet Platform for Interoperability), GVM(General Virtual Machine) 등의 다양한 플랫폼이 있다. 이러한 플랫폼은 어플리케이션이 동작할 수 있게 하는 기초이므로 플랫폼 정보에 따라 생성되는 모바일 어플리케이션도 달라지게 된다.
모바일 장치의 성능 정보는 모바일 장치를 구성하는 디스플레이 정보, 사운드 출력 방식 정보, 메모리 정보를 포함하는 정보이다.
디스플레이 정보는 예를 들면, 모바일 장치의 LCD 크기와 해상도 정보일 수 있으며, 사운드 출력 방식 정보는 모바일 장치에 따라 재생 가능한 음원 정보(예를 들면, ma2, ma3, mmf 등)일 수 있다.
메모리 정보는 데이터가 저장될 수 있는 모바일 장치의 저장 수단인 메모리의 크기 정보로서 특히 모바일 어플리케이션이 동작하기 위해 모바일 어플리케이션이 저장되는 힙 메모리(Heap Memory)의 크기 정보일 수 있다.
이러한 모바일 장치의 성능 정보에 따라 생성되는 모바일 어플리케이션이 모바일 장치에 적합하게 표시되고 또한 모바일 장치에 저장되어 실행될 수 있도록 모바일 어플리케이션을 생성할 수 있게 된다.
이러한 모바일 장치의 성능 정보의 입력은 예를 들면, 모바일 장치의 모델 번호를 입력함으로써 수행될 수 있다. 모바일 장치의 모델 번호에 따른 LCD 크기, 해상도, 사운드 출력 방식 정보 및 메모리 정보를 미리 저장함으로써 모바일 장치의 모델 번호의 입력으로 LCD 크기, 해상도, 사운드 출력 방식 정보 및 메모리 정보를 독출하여 독출된 정보를 이용하여 모바일 어플리케이션을 생성할 수 있다.
API(Application Program Interface) 정보는 모바일 어플리케이션과 플랫폼을 상호 통신하여 어플리케이션이 동작하게 하는 방법에 관한 정보이다.
또한, 전술한 플랫폼 정보와 API 정보는 예를 들면, 이동 통신사의 정보를 입력함으로써 수행되게 할 수 있다. 일반적으로 플랫폼은 이동 통신사에 각각 특정 플랫폼으로 통일되어 사용된다. 그리고 API는 모바일 어플리케이션과 플랫폼을 상호 통신하여 어플리케이션이 동작하게 하는 방법이므로 플랫폼의 종류에 따라 API가 결정되는 것이 일반적이다.
따라서 이동 통신사별 플랫폼 정보와 API 정보를 미리 저장하면 이동 통신사의 정보만을 입력함으로써 플랫폼의 종류와 플랫폼에 따른 API 정보를 이용하여 모바일 어플리케이션을 생성할 수 있다.
메타데이터 저장부(110)는 모바일 어플리케이션이 구동하는 플랫폼, 모바일 장치의 성능 및 API 정보에 따른 모바일 어플리케이션의 구성(configuration)을 정의하는 데이터인 메타데이터(metadata)가 저장된다.
리소스 저장부(120)는 플랫폼별, 모바일 장치의 성능별, API별 정보가 메타데이터에 상응하여 각각 저장된다.
리소스 데이터는 모바일 어플리케이션의 환경 설정을 정의하는 데이터인 메타데이터에 상응하는 각각의 플랫폼, 모바일 장치의 성능 정보, API 정보를 나타내는 데이터이다.
메타데이터는 예를 들면, 모바일 어플리케이션 개발자가 특정 플랫폼, 모바일 장치의 성능 및 API를 기준으로 미리 생성한 모바일 어플리케이션을 구성하는 데이터일 수 있다.
소스 코드 생성부(130)는 메타데이터를 참조하여 메타데이터에 상응하는 리소스 데이터를 독출하여 모바일 어플리케이션의 소스 코드(source code)를 생성한다.
소스 코드(source code)는 텍스트 편집기나 비주얼(visual) 개발 도구로 작성된 프로그램 문장들로 구성된다. 이러한 소스 코드는 하나의 파일 형태로 생성되어 저장되는 것이 일반적이다.
모바일 어플리케이션의 소스 코드 생성은 라이브러리(library) 파일을 이용하여 수행될 수 있다.
라이브러리 파일은 다른 프로그램들과 링크(link)되기 위하여 존재하는 하나 이상의 서브루틴이나 함수들이 저장된 파일들의 모음이다.
이러한 라이브러리에 포함된 다수의 서브루틴과 함수들은 독출된 각각의 리소스 데이터를 이용하여 서브루틴이나 함수들에 의한 연산을 수행하여 소스 코드를 생성한다.
소스 코드 생성부(130)는 라이브러리 파일에 포함된 각각의 서브루틴이나 함수들에 의해 실행된 결과들을 조합하여 특정 언어로 구성된 문장을 편집하고 생성하여 텍스트 형태의 소스 코드를 생성할 수 있다.
특히, 메타데이터가 미리 생성한 모바일 어플리케이션을 구성하는 데이터인 경우 라이브러리에 포함된 서브루틴이나 함수들에 의한 연산은 메타데이터 중 특정 데이터를 독출된 리소스 데이터로 치환하거나, 삭제 또는 추가하는 연산일 수 있다.
컴파일링부(140)는 소스 코드 생성부에서 생성된 텍스트 형태의 소스 코드를 기계어로 변환하는 컴파일링(compiling) 과정을 수행한다.
컴파일 과정을 통해 텍스트 형태의 소스 코드를 기계어로 변환함으로써 모바일 장치에서 실행될 수 있는 목적 코드(object code)가 생성되고 목적 코드는 일반적으로 컴퓨터 등의 디지털 처리 장치에서 실행 파일의 형태로 표시된다.
이러한 모바일 어플리케이션 생성 프로그램의 구성과 기능을 참조하여 본 발명의 바람직한 일 실시예에 따라 모바일 어플리케이션이 생성되는 과정을 살펴본다.
도 2는 본 발명의 바람직한 일 실시예에 따른 모바일 어플리케이션이 생성되는 순서를 도시한 순서도이다.
도 2에는 미도시하였으나, 먼저 모바일 어플리케이션을 구성하는 각각의 데이터를 정의하는 메타데이터가 메타데이터 저장부(110)에 저장된다.
또한 모바일 어플리케이션을 구성하는 각각의 데이터를 정의하는 메타데이터는 미리 특정 플랫폼, 플랫폼, 모바일 장치의 성능 및 API 정보를 기준으로 생성된 모바일 어플리케이션의 구성 데이터일 수 있다.
한편, 플랫폼, 모바일 장치의 성능, API 정보 등의 환경 설정 정보가 환경 설정부(100)에 입력되면(S200), 입력받은 환경 설정 정보에 해당하는 메타데이터를 독출한다(S202).
독출된 메타데이터에 의해 메타데이터에 상응하는 리소스 데이터가 독출된다(S204).
라이브러리 파일에 의해 독출된 리소스 데이터가 조합되어 모바일 어플리케이션의 소스 코드가 생성된다(S206).
모바일 어플리케이션의 소스 코드의 생성은 전술한 바와 같이 라이브러리에 포함되는 서브루틴 또는 함수들의 실행에 의해 수행된다.
또한 이러한 서브루틴 또는 함수들의 실행에 의한 결과들은 입력된 환경 정 보를 참조하여 다시 조합된다. 서브루틴 또는 함수들의 실행 결과의 조합에 의한 소스 코드의 생성은 바람직하게는 특정 컴퓨터 언어로 구성된 문장을 편집하고 생성하는 방법에 의해 수행될 수 있다. 소스 코드 생성의 과정은 도 3의 설명에서 보다 상세하게 살펴보기로 한다.
특정 언어로 구성된 문장을 편집되어 조합된 소스 코드는 기계어로 변환하는 컴파일 과정이 수행되어(S208), 특정 플랫폼과 특정 성능을 가진 모바일 장치에서 실행될 수 있는 모바일 어플리케이션이 생성된다.
이하에서는 도 3을 참조하여 본 발명의 본 발명의 바람직한 일 실시예에 따른 소스 코드 생성 과정을 보다 상세하게 살펴보기로 한다.
도 3은 본 발명의 바람직한 일 실시예에 따라 모바일 어플리케이션의 소스 코드 생성 과정을 상세히 도시한 도면이다.
도 3에 도시된 바와 같이, 소스 코드의 생성을 위해서는 전술한 바와 같이 먼저 소스 코드 생성부는 입력받은 모바일 어플리케이션의 환경 설정 정보에 따른 상응하는 메타데이터를 독출한다.
메타데이터는 데이터에 대한 정의나 설명을 나타내는 속성 데이터이다. 따라서 도 3에 예시된 바와 같이 구성 정보에 따른 상응하는 메타데이터는 모바일 어플리케이션에 포함되는 콘텐츠의 크기, 사운드의 형태, 디스플레이 화면의 크기, 힙 메모리의 크기 및 플랫폼의 종류를 나타내는 데이터일 수 있다.
또한 리소스 데이터는 예를 들면, LCD의 높이를 기준으로 112, 144, 146, 178, 200, 240, 290 등의 다양한 종류가 존재하는 경우 112, 144, 146, 178, 200, 240, 290 등의 크기를 나타내는 정보가 각각이 리소스 데이터가 된다.
따라서, 메타데이터가 독출되면 메타데이터에 의해 정의된 각각의 콘텐츠의 크기, 사운드의 형태, 디스플레이 화면의 크기, 힙 메모리의 크기 및 플랫폼의 종류별 리소스 데이터가 독출된다.
리소스 데이터의 독출은 예를 들면, 메타데이터가 데이터의 헤더(header) 또는 태그(tag)로서 존재하여 리소스 데이터를 독출할 수 있다.
이러한 메타데이터와 메타데이터에 의한 리소스 데이터의 독출은 모바일 어플리케이션 생성을 위한 기초 구조를 정의하는 configuration 작업에 해당한다(S300).
독출된 리소스 데이터는 도 3에서 도시한 콘텐츠의 크기, 제공되는 사운드의 형태, 디스플레이 화면의 크기, 힙 메모리의 크기 및 플랫폼의 종류를 입력된 환경 설정 정보를 고려하여 환경 설정 정보에 맞는 최적의 리소스 데이터를 선택한다(S302, S304, S306, S308, S310).
선택된 최적의 리소스 데이터들을 조합하여(S312), 소스 코드를 생성한다(S314).
최적의 리소스 데이터를 선택하는 것은 다양한 최적화(optimization) 방법에 의해 수행될 수 있다.
리소스 데이터의 선택을 위한 최적화 방법은 다양한 최적화 알고리즘이 이용될 수 있으며, 또한 소스 코드 생성에 있어서도 실행 시간을 줄이기 위한 인라인 함수, 레지스터 변수의 사용이나 코드의 크기를 줄이기 위한 기본 워드의 크기를 줄이는 방법 등의 다양한 최적화 방법이 이용될 수 있다.
최종적으로 선택된 리소스 데이터를 조합하는 것은 미리 특정 언어로 구성된 문장에서 선택된 리소스 데이터에 해당하는 텍스트를 치환하거나 추가 또는 삭제하는 과정을 통해 수행될 수 있다. 이러한 텍스트를 치환하거나 추가 또는 삭제하는 편집 과정을 통해 텍스트 형태의 소스 코드를 생성할 수 있다.
예를 들면, 특정 플랫폼과 특정 모바일 장치를 기준으로 미리 생성되어 저장된 모바일 어플리케이션을 다른 플랫폼에서 실행될 수 있는 모바일 어플리케이션으로 생성하기 위해 소스 코드에서 플랫폼과 관련된 코드를 검색하여 독출된 리소스 데이터를 표시하는 코드로 치환하거나 추가 또는 삭제하는 것이다.
한편, 코드의 치환하거나 추가 또는 삭제하는 과정을 통해 소스 코드가 생성되면 생성된 소스 코드의 오류를 검사하는 과정을 더 수행할 수 있다. 이러한 코드의 오류 검사 과정을 통해 컴파일링 과정 전에 입력된 환경 설정 정보에 적합한 소스 코드가 생성되었는지 확인할 수 있다.
이러한 모바일 어플리케이션의 생성 과정을 예를 통해 살펴보면, 모바일 어플리케이션의 개발자가 먼저 MIDP 플랫폼에서 실행되는 모바일 어플리케이션을 제작하고, 제작된 모바일 어플리케이션의 소스 코드는 본 발명에 의한 프로그램의 메타데이터 저장부(110)에 저장된다.
개발된 모바일 어플리케이션을 MIDP 플랫폼에서 실행될 수 있는 어플리케이 션으로 생성되기 위해서 본 발명의 바람직한 일 실시예에 따른 모바일 어플리케이션 생성 프로그램은 플랫폼 정보에 WIPI를 입력받는다.
입력된 플랫폼 정보에 따라 메타데이터 중 플랫폼과 관련된 데이터를 메타데이터 저장부(110)에서 독출하고, 플랫폼과 관련된 자원이 저장된 리소스 저장부(120)에서 입력된 WIPI 플랫폼 관련 리소스 데이터를 독출한다.
독출된 리소스 데이터를 이용하여 라이브러리 파일에 의한 서브루틴 또는/그리고 함수의 실행으로 MIDP 플랫폼 관련 데이터는 WIPI 플랫폼 관련 데이터로 변환한다.
서브루틴 또는/그리고 함수들의 실행 결과는 특정 언어로 구성된 문장을 치환하거나 추가 또는 삭제하는 방법에 조합되어 소스 코드를 생성한다.
생성된 소스 코드는 기계어로 번역하는 과정인 컴파일링을 수행함으로써 WIPI 플랫폼에서 동작할 수 있는 모바일 어플리케이션이 최종적으로 생성된다.
따라서, 종래와 같이 플랫폼, 모바일 장치의 성능, API 등에 따라 모바일 어플리케이션 개발자가 일일이 모바일 어플리케이션을 수정하는 것이 아니라, 모바일 어플리케이션 개발자는 플랫폼, 모바일 장치의 성능, API 등의 정보를 입력하기만 하면 각각의 플랫폼, 모바일 장치의 성능, API 등에 적합한 모바일 어플리케이션이 생성되게 된다.
본 발명의 바람직한 일 실시예에 따른 이러한 모바일 어플리케이션 생성 프로그램이 실제 구현된 프로그램의 사용자 인터페이스(user interface) 화면을 도시 한 도 4 내지 도 7을 참조하여 모바일 어플리케이션 생성 프로그램의 실제 구현예를 살펴본다.
먼저 도 4는 본 발명의 바람직한 일 실시예에 따른 이러한 모바일 어플리케이션 생성 프로그램의 기본 디렉토리(directory) 구조를 도시한 도면이다.
도 4에서 metadata 디렉토리는 환경 설정 설정에 따른 메타데이터가 저장되는 디렉토리이다. Batman begins 디렉토리는 생성하고자 하는 모바일 어플리케이션이 플랫폼, 모바일 장치의 성능, API 정보에 따라 각각 서브 디렉토리(sub-directory)를 생성하여 각각 저장되는 디렉토리이다.
BatmanResource 디렉토리는 플랫폼 정보, 모바일 장치의 성능에 따른 이미지, 사운드 등의 각종 데이터 파일이 저장되는 디렉토리이다.
Framework Version4 디렉토리는 각 플랫폼, 모바일 장치의 성능, API 등에 따른 변수와 메소드(method)를 정의하는 클래스 파일이 저장되는 디렉토리이다.
도 5는 도 4에서의 Batman begins 디렉토리의 구조를 도시한 것이다. Batman begins 디렉토리는 특정 모바일 어플리케이션 예를 들면, 모바일 게임 어플리케이션을 생성하고자 하는 경우 생성하고자 하는 모바일 게임 어플리케이션이 생성되고 저장되는 프로젝트별로 생성되는 프로젝트 디렉토리이다.
도 5에서 bin 디렉토리는 src 디렉토리에 있는 JAVA파일을 컴파일한 Class파일이 저장되어진 디렉토리이고, build 디렉토리는 각 Platform 또는 모바일 장치의 성능별 또는 이동 통신사별로 분리 저장되어서 컴파일까지 완료된 파일이 저장되는 디렉토리이다.
dist 디렉토리는 서비스 가능한 파일로 압축/변환된 JAR/JAD파일이 저장되는 디렉토리이고 framework 디렉토리는 도 4의 framework 디렉토리의 JAVA파일이 복사되어 저장되는 디렉토리이다. 실제 생성된 소스 코드를 컴파일하는 경우 프로젝트 디렉토리에 있는 framework 디렉토리를 참조하여 최종적으로 완성된 모바일 어플리케이션을 생성한다.
resources 디렉토리는 프로젝트에 따른 리소스 데이터인 이미지, 사운드 파일 등이 저장되는 디렉토리이다.
src 디렉토리는 framework의 파일을 제외한 어플리케이션을 제작할 소스 코드가 저장되는 디렉토리이며, build.XML 파일은 컴파일을 해주는 정보 파일이다. 특히 본 구현예에서는 바람직하게는 대표적인 JAVA 툴(tool)인 eclipse와 Ant를 상호 연동하여 컴파일을 수행할 수 있다.
도 6은 도 5의 build 디렉토리의 구조를 도시한 것이다. 도 5에서 설명한 바와 같이 eclipse와 연동되는 Ant를 이용하여 컴파일을 통하여 도 6과 같이 각각의 Platform, 모바일 장치의 성능별, 이동 통신사별로 디렉토리를 생성하여 컴파일까지 완료된 모바일 어플리케이션 파일이 분리되어 저장될 수 있다.
도 7은 도 6의 WIPI 플랫폼 중 하나의 디렉토리 구조를 도시한 것이다. classes 디렉토리는 컴파일이 완료된 class파일이 저장되는 디렉토리이고, obfuscated 디렉토리는 최적화(optimization)된 클래스 파일이 저장되는 디렉토리이다. source 디렉토리는 전처리기(preprocessor)를 통해 각각의 Platform, 모바일 장치의 성능 등에 따라 분리된 java파일이 저장되는 디렉토리이다.
도 4 내지 도 7의 구현예를 통해 살펴본 바와 같이, 본 발명의 바람직한 일 실시예에 따른 모바일 어플리케이션 생성 프로그램은 특정 플랫폼, 모바일 장치의 성능 등에 따라 각각의 플랫폼, 각각의 모바일 장치의 성능에 따라 적합하게 실행될 수 있는 모바일 어플리케이션을 자동으로 생성하여 각각의 플랫폼, 각각의 모바일 장치의 성능별로 나누어 저장한다.
따라서 모바일 어플리케이션의 개발자는 하나의 모바일 어플리케이션만을 먼저 생성하면 모바일 어플리케이션이 실행되는 플랫폼이 달라지거나 모바일 장치의 성능이 달라지는 경우에도 일일이 프로그램을 수정할 필요없이 서로 다른 플랫폼이나 성능을 가진 모바일 장치에서 동작할 수 있는 모바일 어플리케이션을 자동으로 생성하여 제공할 수 있게 된다.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
이상에서 설명한 바와 같이, 본 발명에 의한 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한 프로그램을 기록한 기록매체에 의하면, 모바일 어플리케이션이 동작하는 플랫폼, API, 모바일 장치의 성능 등의 환경이 달라지는 경우에도 각각의 환경에 적합한 모바일 어플리케이션을 생성할 수 있는 장점이 있다.
또한, 각각의 환경에 적합한 모바일 어플리케이션을 생성하여 모바일 어플리케이션의 개발에 시간과 비용을 절감할 수 있는 장점이 있다.

Claims (12)

  1. 모바일 어플리케이션(mobile application)의 구성 정보를 입력받는 단계(a);
    상기 입력받은 구성 정보에 상응하는 메타데이터(metadata)와 상기 메타데이터에 의한 리소스 데이터를 독출하는 단계(b);
    상기 독출된 리소스 데이터 중 상기 입력받은 구성 정보에 따른 최적의 리소스 데이터를 선택하는 단계(c); 및
    미리 특정 언어로 구성된 문장에서 선택된 리소스 데이터에 해당하는 문장을 치환, 추가 및 삭제 중 적어도 하나를 수행하여 소스 코드를 생성하는 단계(d)를 포함하는 것을 특징으로 하는 모바일 어플리케이션의 생성 방법.
  2. 제1항에 있어서,
    상기 모바일 어플리케이션의 구성 정보는 모바일 어플리케이션이 동작하는 플랫폼(platform) 정보, 모바일 장치의 성능 정보 및 API(Application Program Interface) 정보인 것을 특징으로 하는 모바일 어플리케이션의 생성 방법.
  3. 제2항에 있어서,
    상기 모바일 장치의 성능 정보는 모바일 장치의 디스플레이 정보, 사운드 출력 방식 정보, 메모리 정보 중 적어도 하나 이상인 것을 특징으로 하는 모바일 어 플리케이션의 생성 방법.
  4. 제1항에 있어서,
    상기 단계(d)는,
    라이브러리(library) 파일을 이용하여 수행되는 것을 특징으로 하는 모바일 어플리케이션의 생성 방법.
  5. 제1항에 있어서,
    상기 단계(d)는
    상기 생성된 소스 코드가 입력된 환경 설정 정보에서 실행될 수 있는 소스 코드인지 검사하는 단계를 더 포함하는 것을 특징으로 하는 모바일 어플리케이션의 생성 방법.
  6. 제1항에 있어서,
    상기 단계(d)는,
    상기 생성된 소스 코드를 컴파일(compile)하는 단계를 더 포함하는 것을 특징으로 하는 모바일 어플리케이션의 생성 방법.
  7. 삭제
  8. 모바일 어플리케이션의 생성 방법이 구현되도록, 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록 매체에 있어서,
    모바일 어플리케이션(mobile application)의 구성 정보를 입력받는 단계(a);
    상기 입력받은 구성 정보에 상응하는 메타데이터(metadata)와 상기 메타데이터에 의한 리소스 데이터를 독출하는 단계(b);
    상기 독출된 리소스 데이터 중 상기 입력받은 구성 정보에 따른 최적의 리소스 데이터를 선택하는 단계(c); 및
    미리 특정 언어로 구성된 문장에서 선택된 리소스 데이터에 해당하는 문장을 치환, 추가 및 삭제 중 적어도 하나를 수행하여 소스 코드를 생성하는 단계(d)를 포함하는 것을 특징으로 하는 모바일 어플리케이션의 생성 방법을 구현하기 위한 프로그램을 기록한 기록매체.
  9. 제8항에 있어서,
    상기 모바일 어플리케이션의 구성 정보는 모바일 어플리케이션이 동작하는 플랫폼(platform) 정보, 모바일 장치의 성능 정보 및 API(Application Program Interface) 정보인 것을 특징으로 하는 모바일 어플리케이션의 생성 방법을 구현하기 위한 프로그램을 기록한 기록매체.
  10. 제8항에 있어서,
    상기 단계(d)는,
    라이브러리(library) 파일에 의해 수행되는 것을 특징으로 하는 모바일 어플리케이션의 생성 방법을 구현하기 위한 프로그램을 기록한 기록매체.
  11. 제8항에 있어서,
    상기 단계(d)는
    상기 생성된 소스 코드를 컴파일(compile)하는 단계를 더 포함하는 것을 특징으로 하는 모바일 어플리케이션의 생성 방법을 구현하기 위한 프로그램을 기록한 기록매체.
  12. 삭제
KR1020060080063A 2006-08-23 2006-08-23 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체 KR100846203B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060080063A KR100846203B1 (ko) 2006-08-23 2006-08-23 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060080063A KR100846203B1 (ko) 2006-08-23 2006-08-23 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체

Publications (2)

Publication Number Publication Date
KR20080018025A KR20080018025A (ko) 2008-02-27
KR100846203B1 true KR100846203B1 (ko) 2008-07-14

Family

ID=39385259

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060080063A KR100846203B1 (ko) 2006-08-23 2006-08-23 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체

Country Status (1)

Country Link
KR (1) KR100846203B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101610830B1 (ko) 2009-11-05 2016-04-11 삼성전자주식회사 어플리케이션 실행 장치 및 방법
KR102360646B1 (ko) * 2021-07-09 2022-02-10 주식회사 스윙투앱 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000058858A (ko) * 2000-07-03 2000-10-05 김희석 휴대통신단말기용 콘텐츠 프로그램 전송방법 및 그 실행방법
KR20020022854A (ko) * 2000-09-21 2002-03-28 박병형 패턴과 컴포넌트를 이용한 프로그램 코드 자동 생성방법
KR20020031511A (ko) * 2000-10-20 2002-05-02 김영돈, 정춘보 다수의 하드웨어에서 실행가능한 pda 어플리케이션제작방법
KR100374296B1 (en) * 2002-09-11 2003-03-03 Itgen Co Ltd System for developing application program for mobile terminal and mobile terminal including application program developed by the same
KR20040022929A (ko) * 2002-09-10 2004-03-18 주식회사 마노디오 응용 프로그램 실시간 자동 생성 시스템 및 방법
KR20050007901A (ko) * 2003-07-12 2005-01-21 주식회사 지어소프트 무선인터넷플랫폼이 탑재된 이동통신단말기에서실행가능한 바이너리코드를 생성하는 방법 및 시스템
KR20050040875A (ko) * 2005-03-02 2005-05-03 (주)인피넥스 다양한 단말기 및 플랫폼에서 구현 가능한 인터넷무료자동접속 어플리케이션 및 통합적 접속시스템을 기반으로 하는통합관리솔루션 개발.
KR20050072554A (ko) * 2004-01-07 2005-07-12 주식회사 엑스씨이 컨텐츠 리소스로부터 모바일 컨텐츠용 프로그램을 자동생성하기 위한 웹 기반 시스템 및 방법
US20060129972A1 (en) * 2004-11-30 2006-06-15 Tyburski John C Application developer and method for generating platform independent code

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000058858A (ko) * 2000-07-03 2000-10-05 김희석 휴대통신단말기용 콘텐츠 프로그램 전송방법 및 그 실행방법
KR20020022854A (ko) * 2000-09-21 2002-03-28 박병형 패턴과 컴포넌트를 이용한 프로그램 코드 자동 생성방법
KR20020031511A (ko) * 2000-10-20 2002-05-02 김영돈, 정춘보 다수의 하드웨어에서 실행가능한 pda 어플리케이션제작방법
KR20040022929A (ko) * 2002-09-10 2004-03-18 주식회사 마노디오 응용 프로그램 실시간 자동 생성 시스템 및 방법
KR100374296B1 (en) * 2002-09-11 2003-03-03 Itgen Co Ltd System for developing application program for mobile terminal and mobile terminal including application program developed by the same
KR20050007901A (ko) * 2003-07-12 2005-01-21 주식회사 지어소프트 무선인터넷플랫폼이 탑재된 이동통신단말기에서실행가능한 바이너리코드를 생성하는 방법 및 시스템
KR20050072554A (ko) * 2004-01-07 2005-07-12 주식회사 엑스씨이 컨텐츠 리소스로부터 모바일 컨텐츠용 프로그램을 자동생성하기 위한 웹 기반 시스템 및 방법
US20060129972A1 (en) * 2004-11-30 2006-06-15 Tyburski John C Application developer and method for generating platform independent code
KR20050040875A (ko) * 2005-03-02 2005-05-03 (주)인피넥스 다양한 단말기 및 플랫폼에서 구현 가능한 인터넷무료자동접속 어플리케이션 및 통합적 접속시스템을 기반으로 하는통합관리솔루션 개발.

Also Published As

Publication number Publication date
KR20080018025A (ko) 2008-02-27

Similar Documents

Publication Publication Date Title
US7610545B2 (en) Annotations for tracking provenance
TWI536263B (zh) 將作業系統之原始應用程式介面投射至其它程式語言
KR101224813B1 (ko) 관계 모델링
US9524279B2 (en) Help document animated visualization
JP5350428B2 (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
KR20140067018A (ko) 메타데이터를 이용하여 운영 체제의 네이티브 애플리케이션 프로그래밍 인터페이스를 기술하는 기법
JP6479184B2 (ja) コンピュータ実行可能なモデルリバースエンジニアリング方法及び装置
Bolin Closure: The definitive guide: Google tools to add power to your JavaScript
Freeman Essential TypeScript 5
Naujokat et al. Domain-specific code generator modeling: a case study for multi-faceted concurrent systems
CN113553035A (zh) 一种通用的前端ui组件库的设计和构建方法
JP4652680B2 (ja) コンパイル方法および装置、ならびにコンパイラ
JP3562435B2 (ja) コンポーネントの自動生成装置
Roldán React Design Patterns and Best Practices: Design, build and deploy production-ready web applications using standard industry practices
KR100846203B1 (ko) 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체
WO2007116490A1 (ja) ソースコード生成プログラム、ソースコード生成方法およびソースコード生成装置
KR100417655B1 (ko) 최적화과정을참조하면서동작검증을행하도록디버그정보를생성하는디버그정보생성장치및프로그래머가최적화과정을의식하면서동작검증을할수있는디버그장치로이루어지는프로그램개발시스템
JP7247593B2 (ja) 生成装置、ソフトウェアロボットシステム、生成方法及び生成プログラム
Schröpfer et al. A Generic Projectional Editor for EMF Models.
JP5399601B2 (ja) 実装コード開発システム、及び実装コード開発プログラム
JP7059757B2 (ja) Api処理方法、端末、api処理プログラム
CN106445483A (zh) 生成行动应用程序的方法和系统
Beaudoux et al. Using Model Driven Engineering technologies for building authoring applications
JP6827610B1 (ja) 開発支援装置、プログラム及び開発支援方法
EP4336348A1 (en) Iterative and interactive method for code conversion

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130708

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140708

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160808

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee