KR20080069148A - 이기종간 프로그램 연동 방법 및 그 장치 - Google Patents

이기종간 프로그램 연동 방법 및 그 장치 Download PDF

Info

Publication number
KR20080069148A
KR20080069148A KR1020080006846A KR20080006846A KR20080069148A KR 20080069148 A KR20080069148 A KR 20080069148A KR 1020080006846 A KR1020080006846 A KR 1020080006846A KR 20080006846 A KR20080006846 A KR 20080006846A KR 20080069148 A KR20080069148 A KR 20080069148A
Authority
KR
South Korea
Prior art keywords
target
api
target api
apis
heterogeneous
Prior art date
Application number
KR1020080006846A
Other languages
English (en)
Other versions
KR100870972B1 (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 이쓰리넷(주)
Publication of KR20080069148A publication Critical patent/KR20080069148A/ko
Application granted granted Critical
Publication of KR100870972B1 publication Critical patent/KR100870972B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 프로그램 연동 방법 및 그 장치에 관한 것으로, 특히 이기종간 프로그램 연동 방법 및 그 미들웨어 플랫폼 레이어에 관한 것이다. 본 발명의 일 측면에 따르면, 이기종간 연동형 미들웨어 플랫폼 레이어가 서로 다른 기종에 사용되는 목적 API와 대상 API를 서로 연동하는 방법에 있어서, (a) 미리 설정된 기능을 기준으로 상기 목적 API에 상응하는 상기 대상 API를 추출하는 단계; (b) 상기 기능에 대응하는 상기 목적 API 수와 상기 대상 API 수를 추출하는 단계; 및 (c) 상기 목적 API 수와 상기 대상 API 수를 서로 대응시켜 상기 대상 API를 상기 목적 API에 매핑하는 단계를 포함하는 이기종간 프로그램 연동 방법을 제시할 수 있다. 본 발명에 따른 이기종간 프로그램 연동 방법 및 그 미들웨어 플랫폼 레이어는 종래 개발된 3D 게임을 다른 기종에 포팅하는 기간을 단축할 수 있는 효과가 있다.
연동형, 플랫폼, 미들웨어 플랫폼 레이어.

Description

이기종간 프로그램 연동 방법 및 그 미들웨어 플랫폼 레이어{Method for generating cross platform program and Middleware platform layer thereof}
본 발명은 프로그램 연동 방법 및 그 장치에 관한 것으로, 특히 이기종간 프로그램 연동 방법 및 그 미들웨어 플랫폼 레이어에 관한 것이다.
종래의 WIPI 플랫폼은 자바 언어의 장점을 수용하며 네이티브 바이너리의 실행 성능을 갖도록 개발된 것이다. 기존의 무선인터넷 플랫폼은 VM 기술과 네이티브 바이너리 기술로 구별된다. 두 가지 기술은 상호배타적인 특성을 가지고 있다. 즉, 일측 기술의 장점이 다른 기술의 단점이 되고, 일측 기술의 단점이 다른 기술의 장점이 되는 것이다.
VM 기술은 말 그대로 가상 기계를 사용해 프로그램을 동작시키는 것이다. 작성된 프로그램을 소프트웨어 CPU에서 동작할 수 있는 중간 코드로 변환하면 가상 기계가 해당 코드를 실제 CPU용 기계어로 번역해 실행시키는 방식이다.
이러한 기술은 자바를 통해 일반화돼 있으며 자바 가상머신은 무선인터넷 플랫폼에도 이미 적용되어 있다. 또한, C 언어의 축소판인 Mini-C를 이용한 GVM 기술이 국내에서 개발되어 서비스되고 있다.
또 다른 기술인 네이티브 바이너리 기술은 일반적으로 우리가 프로그램을 작성하고 컴파일하여 실행시키는 방법과 동일한 과정을 밟는다. 즉, 개발된 프로그램을 프로그램이 실행될 CPU에서 동작되는 기계어로 만들어 실행시키는 것이다. 이 기술을 이용한 무선인터넷 플랫폼이 퀄컴의 브루 플랫폼이다. VM 기반의 무선인터넷 플랫폼은 소프트웨어 CPU를 이용해 중간 코드를 실행 과정에 번역(Interpreting)하는 부담을 안고 있으며 이는 CPU 성능과 자원이 제한된 휴대전화기에서 사용자가 상대적으로 매우 느린 속도를 경험하게 된다. 그러나 VM 기술은 상대적인 시스템 안정성을 제공하며 완벽한 보안을 제공하는 장점을 가지고 있다.
반면, 네이티브 바이너리를 이용하는 플랫폼은 VM 기술과 달리 탑재된 CPU의 성능을 100% 활용할 수 있으므로 VM에 비해 매우 빠른 실행속도를 제공한다. 그러나 지금의 네이티브 바이너리를 사용하는 기술은 개발언어로 C/C++를 사용하고 있어 프로그램 개발자에 의해 악의적인 메모리 접근 등을 통한 시스템 안정성을 위해할 수 있는 요소를 갖고 있다. WIPI 플랫폼은 이러한 대조되는 두 가지 기술의 장점을 갖는 플랫폼으로 계획되고 개발됐다. 즉, 자바 언어의 장점을 수용하며 네이티브 바이너리의 실행 성능을 갖도록 하는 것이다.
따라서, WIPI 플랫폼은 C/C++와 자바를 기본 언어로 채택해 프로그램 개발이 가능하고, 단말기에 탑재되는 애플리케이션은 네이티브 바이너리로 만들어져 실행 성능을 보장받는다. 여기서 C/C++ 언어는 네이티브 바이너리를 생성하는 데 아 무런 문제가 없으나, 자바 언어는 기본적으로 가상 기계를 대상으로 하기 때문에 자바를 컴파일하여 단말기에서 직접 실행가능한 실행 바이너리를 어디선가 만들어야 한다. 이러한 기능을 수행하는 WIPI 구성요소가 바로 COD(Compile On Demand)다.
최근에 와서, 게임 폰의 등장으로 인한 본격적인 프리미엄급 게임 서비스의 필요성이 대두되고 있다. WIPI와 기존 Open GL 및 Direct X기반의 API를 Open GL ES기반으로 연동하고, 단말기 상에서의 게임 구동 시 유효한 성능을 구현할 수 있는 기능이 필요하다.
게임 미들웨어를 단말기에 동적 링크(Dynamic Link)방식으로 구현함으로써 게임 개발을 용이하게 하고, 단말기 환경에 최적화된 성능의 게임 엔진이 필요하다. 향후 단말기의 진화 및 구조적 개선을 염두에 두고 다양한 외부 개발환경을 수용할 수 있는 우수한 확장성을 갖춘 미들웨어(Middleware)의 설계가 필요하다.
본 발명은 종래 개발된 3D 게임을 다른 기종에 포팅하는 기간을 단축할 수 있는 이기종간 프로그램 연동 방법 및 그 미들웨어 플랫폼 레이어를 제공한다.
또한, 본 발명은 다양한 모바일 게임을 제공함으로써 모바일 게임 산업의 부흥을 도모할 수 있는 이기종간 프로그램 연동 방법 및 그 미들웨어 플랫폼 레이어를 제공한다.
본 발명이 제시하는 이외의 기술적 과제들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 이기종간 연동형 미들웨어 플랫폼 레이어가 서로 다른 기종에 사용되는 목적 API와 대상 API를 서로 연동하는 방법에 있어서, (a) 미리 설정된 기능을 기준으로 상기 목적 API에 상응하는 상기 대상 API를 추출하는 단계; (b) 상기 기능에 대응하는 상기 목적 API 수와 상기 대상 API 수를 추출하는 단계; 및 (c) 상기 목적 API 수와 상기 대상 API 수를 서로 대응시켜 상기 대상 API를 상기 목적 API에 매핑하는 단계를 포함하는 이기종간 프로그램 연동 방법을 제시할 수 있다.
여기서, 상기 단계 (c)는, (c-1) 상기 대상 API의 구조와 상기 목적 API의 구조를 서로 비교하는 단계; 및 (c-2) 상기 대상 API의 구조가 상기 목적 API 구조 와 동일한 경우 상기 대상 API를 상기 목적 API에 직접 매핑하는 단계를 더 포함할 수 있다.
여기서, 상기 단계 (c)는, (c-3) 상기 대상 API의 구조가 상기 목적 API 구조와 유사한 경우 상기 목적 API에 필요한 인자를 상기 대상 API로부터 추출하여 상기 목적 API에 매핑하는 단계를 더 포함할 수 있다.
여기서, 상기 단계 (c)는, (c-4) 하나의 상기 대상 API가 하나의 상기 목적 API에 대응하는 경우 상기 대상 API를 상기 목적 API에 매핑하는 단계를 더 포함할 수 있다.
여기서, 상기 단계 (c)는, (c-5) 복수의 상기 대상 API가 하나의 상기 목적 API에 대응하는 경우 상기 하나의 목적 API에 필요한 인자를 상기 복수의 대상 API로부터 추출하여 상기 하나의 목적 API에 매핑하는 단계를 더 포함할 수 있다.
여기서, 상기 단계 (c)는, (c-5) 하나의 상기 대상 API가 복수의 상기 목적 API에 대응하는 경우 상기 복수의 목적 API에 필요한 인자를 상기 하나의 대상 API로부터 추출하여 상기 복수의 목적 API에 매핑하는 단계를 더 포함할 수 있다.
여기서, 상기 단계 (c)는, (c-6) 복수의 상기 대상 API가 복수의 상기 목적 API에 대응하는 경우 상기 복수의 목적 API에 필요한 인자를 상기 복수의 대상 API로부터 추출하여 상기 복수의 목적 API에 매핑하는 단계를 더 포함할 수 있다.
여기서, 상기 대상 API 또는 상기 목적 API는 DirectX, Open GL 및 Renderware 중 어느 하나일 수 있다.
여기서, 상기 대상 API는 상기 이기종간 연동형 미들웨어 플랫폼 레이어와 결합된 메모리에 저장될 수 있다.
본 발명의 다른 측면에 따르면, 서로 다른 기종에 사용되는 목적 API와 대상 API를 서로 연동하는 이기종간 연동형 미들웨어 플랫폼 레이어에 있어서, 미리 설정된 기능을 기준으로 상기 목적 API에 상응하는 상기 대상 API를 추출하여, 상기 기능에 대응하는 상기 목적 API 수와 상기 대상 API 수를 추출하는 API 추출부; 및 상기 목적 API 수와 상기 대상 API 수를 서로 대응시켜 상기 목적 API에 상기 대상 API를 매핑하는 API 매핑부를 포함하는 이기종간 연동형 미들웨어 플랫폼 레이어를 제시할 수 있다.
여기서, 상기 API 매핑부는 상기 대상 API의 구조와 상기 목적 API의 구조를 서로 비교하고, 상기 대상 API의 구조가 상기 목적 API 구조와 동일한 경우 상기 대상 API를 상기 목적 API에 매핑할 수 있다.
여기서, 상기 API 매핑부는 상기 대상 API의 구조가 상기 목적 API 구조와 유사한 경우 상기 목적 API에 필요한 인자를 상기 대상 API로부터 추출하여 상기 목적 API에 매핑할 수 있다.
여기서, 상기 API 매핑부는 상기 대상 API가 상기 목적 API에 대응하는 경우 상기 목적 API의 생성에 필요한 인자를 상기 대상 API로부터 추출하여 상기 목적 API에 매핑할 수 있다.
여기서, 상기 대상 API 또는 상기 목적 API는 DirectX, Open GL 및 Renderware 중 어느 하나일 수 있다.
여기서, 상기 대상 API로부터 추출되며, 상기 목적 API의 생성에 필요한 인 자를 메모리에 저장할 수 있다.
본 발명에 따른 이기종간 프로그램 연동 방법 및 그 미들웨어 플랫폼 레이어는 종래 개발된 3D 게임을 다른 기종에 포팅하는 기간을 단축할 수 있는 효과가 있다.
또한, 본 발명에 따른 이기종간 프로그램 연동 방법 및 그 미들웨어 플랫폼 레이어는 다양한 모바일 게임을 제공함으로써 모바일 게임 산업의 부흥을 도모할 수 있는 효과가 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일 치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명에 따른 이기종간 연동형 미들웨어 플랫폼 레이어는 이기종간 연동형 프로그램 생성 장치에 포함될 수 있으며, 이하에서는 전체적인 구조를 설명하기 위해서 이기종간 연동형 프로그램 생성 장치를 중심으로 설명한다.
도 1은 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치를 포함하는 이기종 기기의 블록 구성도이다. 도 1을 참조하면, 어플리케이션(110), 미들웨어 어댑테이션 레이어(120), 라이브러리(130), 프레임워크(140), 미들웨어 플랫폼 엔진(150), 이기종 Run-time 엔진(160), 핸드셋 어댑테이션 레이어(HAL : Handset Adaptation Layer)(170), 핸드셋 하드웨어와 네이티브 시스템 소프트웨어(180) 및 필요 API(190)가 도시된다.
어플리케이션(110)은 이기종간 실행될 프로그램의 최상위 계층의 프로그램으로서, 예를 들면, 게임 프로그램이 될 수 있다. 이하에서, 자세한 설명이 필요한 경우 게임 프로그램을 위주로 설명한다. 또한, 설명의 편의를 위해서 PC 환경에서 실행되는 프로그램을 모바일 환경(예를 들면, 휴대폰, 게임폰, 포스트PC 등의 환경)에서 실행되는 프로그램으로 변경하는 경우를 중심으로 설명한다. 물론, 본 발명은 그 역의 과정에 대해서도 구현될 수 있음은 당연하다.
미들웨어 어댑테이션 레이어(120)는 이기종간 프로그램의 연동을 위해 마련되는 레이어이다. 미들웨어 어댑테이션 레이어(120)는 미리 설정된 기능을 기준으로 목적 API에 상응하는 대상 API를 추출하여, 해당 기능에 대응하는 목적 API 수와 대상 API 수를 추출하는 API 추출부를 포함할 수 있다. 또한, 게임 미들웨어 어댑테이션 레이어(120)는 목적 API 수와 대상 API 수를 서로 대응시켜 목적 API에 대상 API를 매핑하는 API 매핑부를 포함할 수도 있다. 여기서, 대상 API는 변경전 API이며, 목적 API는 대상 API를 이용하여 생성된 API이다. 대상 API 또는 상기 목적 API는 DirectX, Open GL, Open GL ES 및 Renderware과 같은 함수들 중 어느 하나일 수 있다.
미들웨어 어댑테이션 레이어(120)는 Direct x를 Open GL ES에 매핑하는 경우 Windows기반에서 설계된 일반 PC게임을 쉽게 포팅할 수 있도록 Direct X 모듈을 지원한다. 모바일 3D의 대부분이 Open GL ES로 되어 있어 이를 컨버전할 수 있다.
또한, Open GL를 Open Gl ES에 매핑하는 경우 미들웨어 어댑테이션 레이어(120)는 Linux기반에서 설계된 게임 및 기타 Open GL로 개발된 게임 및 콘텐츠를 쉽게 포팅 할 수 있도록 지원한다. Open GL ES의 경우 Open GL의 일부 기능만을 지원하므로 지원하지 않는 기능을 추가할 수 있다.
또한, Renderware를 Open GL ES에 매핑하는 경우 미들웨어 어댑테이션 레이 어(120)는 PS2, PS3, X-BOX, GameCube등의 콘솔기기 및 PC와 PSP, N-Gage등의 Cross-Platform 개발환경인 Renderware로 개발된 게임을 쉽게 포팅할 수 있도록 지원한다. 미들웨어 어댑테이션 레이어(120)는 플레이스테이션게임 및 기타 플랫폼 게임을 쉽게 컨버젼하기 위해서 지원할 수 있다.
또한, Open GL ES 기반 확장 라이브러리를 지원하는 경우 미들웨어 어댑테이션 레이어(120)는 Open GL ES칩이 내장된 휴대폰 및 모바일 단말기에 기본 API를 기반으로 확장된 기능과 성능 향상을 위하여 개발 라이브러리를 제공할 수 있다.
라이브러리(130)는 변경된 후의 프로그램에서 실행될 라이브러리의 집합이다. 예를 들면, 라이브러리(130)는 이동 통신 단말기 및 포스트PC 플랫폼에 최적화된 게임 라이브러리가 될 수 있다. 라이브러리(130)의 종류는 그래픽, 애니메이션, 사운드, Physics, AI, Ext 등이 될 수 있다.
프레임워크(140)는 모바일 환경의 프레임워크, 즉, 플랫폼, H/W, I/F 등을 지칭한다.
미들웨어 플랫폼 엔진(150)은 미들웨어 엔진과 모바일 환경의 엔진을 선택하는 엔진 셀렉터로 구성된다. 여기서, 미들웨어 엔진은 복수의 대상 API에 인덱스 번호를 부여하여 메모리에 저장하는 저장 모듈부, 생성될 목적 API 생성에 필요한 대상 API에 상응하는 인덱스 번호를 호출하는 인덱스 호출부, 인덱스 번호에 상응하는 대상 API를 이용하여 목적 API를 생성하는 API 생성부를 포함할 수 있다.
여기서, 저장 모듈부는 대상 API로부터 목적 API가 실행되는 플랫폼에 필요한 코드를 추출하여 메모리에 저장할 수 있다. 이 경우 인덱스 호출부는 인덱스에 상응하는 코드를 더 추출하고, API 생성부는 대상 API의 코드를 조합하여 목적 API를 생성할 수 있다.
즉, 미들웨어 플랫폼 엔진(150)은 미들웨어 어댑테이션 레이어(120)에서 API별, 기능별, 구조별로 선택된 각각의 함수들로부터 목적 API를 생성할 수 있다.
이기종 Run-time 엔진(160), 핸드셋 어댑테이션 레이어(170) 및 핸드셋 하드웨어와 네이티브 시스템 소프트웨어(180)는 각각 모바일 환경에서 기존에 구현되어 있는 각각의 계측이다. 즉, 이들은 모바일 환경의 구현을 위해 마련된 H/W와 S/W이며, 이들은 필요 API(190)인 2D API, 3D API, M&U API, Eglx API, 확장 API와 연동된다.
도 2는 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치의 동작을 도시한 블록 구성도이다. 도 2를 참조하면, 대상 API(210), 제2 플랫폼 구조(220)가 도시된다. 제2 플랫폼 구조(220)는 미들웨어 어댑테이션 레이어(225),미들웨어 어댑테이션 레이어를 위한 엔진 구조(230), 미들웨어 플랫폼 엔진(240), 소프트웨어 3D 엔진(250), 목적 API(260)를 포함한다. 상술한 바와의 차이점을 위주로 설명한다.
대상 API(210)는 DirectX(213), Open GL/Open GL ES(215) 및 Renderware(217)이 될 수 있다. 대상 API(210)에서 사용되는 함수 구조와 메모리 구조는 목적 API(260)에서 사용되는 함수 구조와 메모리 구조와 서로 다르다. 따라서, 미들웨어 어댑테이션 레이어(225), 미들웨어 어댑테이션 레이어를 위한 엔진 구조(230), 미들웨어 플랫폼 엔진(240)에서 함수의 구조를 변경하여 대상 API(210)를 제2 플랫폼 구조(220)에 맞게 목적 API(260)를 생성한다.
미들웨어 어댑테이션 레이어를 위한 엔진 구조(230)는 미들웨어 어댑테이션 레이어(225)에 목적 API(260)에 맞게 추출된 대상 API(210)의 각각의 함수를 미들웨어 플랫폼 엔진(240)을 위한 구조로 변경한다.
미들웨어 플랫폼 엔진(240)은 미들웨어 엔진(243)과 엔진 셀렉터(245)를 포함할 수 있다. 미들웨어 엔진(243)은 상술한 바와 같이 대상 API의 각각의 함수를 이용하여 목적 API를 생성한다. 생성된 목적 API는 엔진 셀렉터(245)에 의해 상응하는 소프트웨어 3D 엔진(250)에서 실행될 수 있도록 한다.
소프트웨어 3D 엔진(250)은 엔진 셀렉터(245)로부터 이에 상응하는 API를 입력받아 목적 API(260)을 실행한다. 여기서, 소프트웨어 3D 엔진(250)은 3D의 경우 실행하는 엔진이며, 본 발명이 3D에 한정되지 않음은 당연하다.
도 3은 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치가 구동되는 이기종 기기의 블록 구성도이다. 상술한 바와의 차이점을 위주로 설명한다.
미들웨어 플랫폼 엔진(150)에 의해 생성된 목적 API는 제2 플랫폼 구조(350)에서 실행된다. 제2 플랫폼 구조(350)는 HAL 또는 핸드셋 하드웨어와 네이티브 시스템 소프트웨어(353), PDA 또는 모바일 셋(356), OS(Window/Linux/Unix/Mac)을 선택적으로 채택하여 구동될 수 있다.
따라서, 목적 API는 미들웨어 플랫폼 엔진(150)에 의해 제2 플랫폼 구 조(350)에 상응하여 변경될 수 있다.
이상에서 이기종간 연동형 프로그램 생성 장치를 일반적으로 도시한 블록 구성도를 설명하였으며, 이하에서는 첨부 도면을 참조하여, 본 발명에 따른 이기종간 연동형 프로그램 생성 장치에서 API 함수가 변형되는 구체적인 실시예를 설명하기로 한다. 본 발명이 이러한 실시예에 한정되지 않음은 당연하다.
도 4는 본 발명의 제1실시예에 따른 이기종간 연동형 프로그램 생성 장치가 API 함수를 생성하는 방법을 도시한 도면이다.
본 발명의 제1실시예는 하나의 대상 API(210)가 하나의 목적 API에 대응하는 경우 하나의 목적 API에 필요한 인자(420)를 대상 API의 인자(410)로부터 추출하여 하나의 목적 API를 생성하는 경우이다. 여기서, 인자(410)는 대상 API(210)의 함수 또는 코드로부터 추출되어 목적 API를 형성하는데 필요한 구성 요소가 될 수 있다. 목적 API에 필요한 인자(420)는 미들웨어 플랫폼 엔진(240)에 의해서 목적 API 생성에 이용될 수 있다.
하나의 대상 API(210)가 하나의 목적 API에 대응하는 경우 하나의 API의 함수 또는 코드를 분석하여 필요한 인자만을 추출함으로써, 간편하게 목적 API를 생성할 수 있다.
또한, 이러한 인자들을 추출하기 위해서 API 추출부 또는 미들웨어 플랫폼 엔진(240)은 대상 API의 구조와 목적 API의 구조를 서로 비교할 수 있다. 비교 결 과 그 구조가 같은 경우 미들웨어 플랫폼 엔진(240)은 대상 API를 바로 목적 API로 변환할 수 있다. 또한, 비교 결과 그 구조가 서로 동일하지는 않고, 유사한 경우 API 추출부 또는 미들웨어 플랫폼 엔진(240)은 유사한 인자를 추출하고 이를 이용하여 목적 API를 생성할 수 있다.
또한, 여기서 추출된 인자(410, 420)는 메모리에 저장되어 필요시 메모리로부터 호출되어 사용될 수 있다. 추출된 인자(410, 420)는 그 전체가 메모리에 저장될 수도 있고, 인덱스 또는 메모리 주소가 메모리에 저장되어 필요시 해당 인덱스 또는 메모리 주소에 의해 호출될 수 있다.
도 5는 본 발명의 제2실시예에 따른 이기종간 연동형 프로그램 생성 장치가 API 함수를 생성하는 방법을 도시한 도면이다.
본 발명의 제2실시예는 하나의 대상 API(210)가 복수의 목적 API에 대응하는 경우 복수의 목적 API에 필요한 인자(520, 525)를 대상 API의 인자(510)로부터 추출하여 복수의 목적 API를 생성하는 경우이다. 여기서, 인자(510)는 대상 API(210)의 함수 또는 코드로부터 추출되어 목적 API를 형성하는데 필요한 구성 요소인 인자(520, 525)로 활용될 수 있다.
여기서, 하나의 대상 API(210)로부터 추출된 인자(510)는 복수의 목적 API에 대응되는 경우를 설명하였으나, 복수의 인자(520, 525)가 하나의 목적 API를 형성할 수도 있다.
도 6은 본 발명의 제3실시예에 따른 이기종간 연동형 프로그램 생성 장치가 API 함수를 생성하는 방법을 도시한 도면이다.
본 발명의 제3실시예는 복수의 대상 API(210)가 하나의 목적 API에 대응하는 경우 하나의 목적 API에 필요한 인자(520)를 복수의 대상 API의 인자(610, 615)로부터 추출하여 하나의 목적 API를 생성하는 경우이다.
또한, 도 7은 복수의 대상 API(210)가 복수의 목적 API에 대응하는 경우 복수의 목적 API에 필요한 인자(720, 725)를 복수의 대상 API의 인자(710, 715)로부터 추출하여 복수의 목적 API를 생성하는 경우이다. 물론, 상술한 바와 같이 목적 API에 필요한 복수의 인자(720, 725)들은 하나의 목적 API를 형성할 수도 있다.
도 8은 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치 중 프로그램 개발 툴의 블록 구성도이다. 도 8을 참조하면, 원천 데이터 리소스(810, 850), 리소스 컨버터(820), 툴(830), 소스 컨버터(840), 익스포터(860), API 연결 List(870), 프로그램 소스(880)가 도시된다. 프로그램이 게임 프로그램인 경우를 중심으로 설명한다.
본 발명의 실시예에 따른 프로그램 개발 툴은 대상 API로부터 소정의 기능에 상응하는 함수를 추출하는 함수 추출부와, 함수에 해당하는 메모리 주소를 생성하는 메모리 주소 생성부와, 메모리 주소를 호출하여 목적 API를 생성시 필요한 대상 API의 함수를 추출하고 이를 이용하여 목적 API를 생성하는 API 변환부를 포함할 수 있다.
여기서, 목적 API를 생성하는 필요한 함수는 블록의 형태로 별도로 정해져서 메모리에 저장된다. 이후 저장된 함수의 메모리 주소를 호출하고 필요한 함수를 추출하여 목적 API를 생성할 수 있다.
원천 데이터 리소스(810, 850)는 변경되기 전의 데이터들로서 3D Object, Image, Sound, 3D Max/Light wave 등이 될 수 있다.
리소스 컨버터(820)는 대상 API의 함수의 리소스를 목적 API가 적용되는 플랫폼 포맷으로 변환한다. 리소스 컨버터(820)는 이기종기기에서 동작하는 프로그램(예를 들면, 게임)의 2D, 3D, 애니메이션, Moving Picture, 사운드 등의 리소스(Resource)를 제2 플랫폼 포맷(예를 들면, 모바일용 포맷)으로 변환하고, 최적화 하는 기능을 제공한다.
툴(830)은 애니메이션, 맵, effect, UI와 관련된 데이터를 제2 플랫폼 포맷에 적합하게 변환한다. 예를 들면, 툴(830)의 애니메이션 툴은 3D Max, Lightwave등에서 제작된 애니메이션을 Mesh별로 결합한다.
툴(830)의 매핑 툴은 배경과 관련하여 Map Tile Pattern 설정을 툴상에서 지정할 수 있으며, 지정된 Map Tile을 맵상에 자동으로 조합하여 Cel단위로 지정해준다. 또한, 매핑 툴은 제작하려고 하는 맵의 사이즈를 2에 n승 단위로 세팅하여, 세팅된 지형의 고저를 Bitmap Pixel의 RGB값을 이용하는 방법과 툴상에 지원하는 브러쉬로 이용하는 방법에 의해 Cell별로 고저를 설정할 수 있다. 또한, 매핑 툴은 지형의 Cell별로 Vertex 컬러 세팅을 지원하며, 이는 Character에 영향을 줄 수 있다. 또한, 매핑 툴은 포그 및 라이트 설정기능(맵 별로 라이트의 밝기와 컬러를 지 정할 수 있으며, 포그의 색상 농도를 지정 가능한 기능)을 가질 수 있다. 이 경우 매핑 툴은 맵을 구성하는 오브젝트를 Cell단위로 할당하여 배치할 수 있다. 또한, 매핑 툴은 Cell 단위로 속성(이동불가, 이동가, 안전지대)을 지정할 수 있으며, 이러한 기능에 의해서, 오브젝트 객체별로 이동경로를 지정할 수 있다. 예를 들면, 몹, NPC, 캐릭터 각각의 객체별로 독립적인 이동경로가 지정될 수 있다.
툴(830)의 UI 툴은 인터페이스 제작 시 프로그래머의 개입을 최소화하였으며, 그래픽데이터 사용량을 최적화할 수 있다. 이 중 리소스 툴은 TGA, BMP 및 각종 파일을 지원하며, Bitmap에서 필요한 리소스들을 원하는 사이즈로 잘라서 ID를 부여한다. 또한, 리소스 툴은 인터페이스에 필요한 리소스의 자동조합 패턴을 생성 버턴의 액션을 지정한다.
또한, UI 툴 중 인터페이스 툴은 게임을 구성하는 인터페이스를 폴더 별로 구분하여 관리하고, 인터페이스를 구성한다. 또한, 인터페이스 툴은 상술한 리소스 툴에서 지정한 ID와 패턴을 이용하여, 원하는 인터페이스를 제작한다. 인터페이스 툴은 인터페이스의 초기 오픈 위치를 부여하고, 단축키를 부여하며, 인터페이스에 포함되는 모든 텍스트들을 별도의 파일 별로 관리하고, 각 인터페이스 별로 Alpha Blend의 정도를 설정할 수 있다.
소스 컨버터(840)는 대상 API의 라이브러리를 목적 API가 적용되는 플랫폼 포맷으로 변환한다. 소스 컨버터(840)는 Direct X, Open GL, Renderware Graphic 라이브러리를 모바일용 게임 미들웨어 플랫폼 구조에 맞게 자동 변환하는 기능을 제공한다. 소스 컨버터(840)는 Direct X, Renderware, Open GL의 라이브러리를 미 들웨어 플랫폼의 라이브러리로 변환한다. (예를 들면, DirectX-> Open GLes/ Renderware-> Open GLes)
익스포터(860)는 대상 API의 콘텐츠를 목적 API가 적용되는 플랫폼 포맷으로 변환한다. 익스포터(860)는 모바일 3D게임에서 사용되는 2D그래픽, 3D그래픽, 동영상등의 그래픽을 포팅하고자 하는 모바일 환경에서 제공하고 있는 포맷으로 변환하는 기능을 제공한다. 예를 들면, 익스포터(860)는 3Max에서는 3D로 제작된 그래픽을 모바일에 사용할 3D포맷으로 변경해주는 기능을 하며, Photoshop, AVI등의 각종 콘텐츠를 모바일용 포맷으로 변환하는 Explorer 프로그램을 제공한다.
API 연결 List(870)는 Direct X, Renderware, Open GL의 라이브러리를 미들웨어 플랫폼의 라이브러리로 연결하는 API 연결 List값 등이 될 수 있다.
프로그램 소스(880)는 변경되기 전 프로그램 소스들이다. 예를 들면, 프로그램 소스(880)는 게임 프로그램 소스 및 콘텐츠 프로그램 소스 등이 될 수 있다. 여기서, 프로그램 소스(880)는 후술할 도 11의 컴파일러에서 컴파일시 생성되는 변경되기 전의 데이터들이 될 수 있다. API 연결 List(870)와 프로그램 소스(880)는 서로 선택적으로 구비될 수 있다.
도 9는 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치 중 프로그램 개발 툴에 의한 프로그램 개발 환경을 도시한 도면이다. 도 9를 참조하면, 본 발명의 실시예에 따른 기획자(910), 프로그래머(920), 디자이너(930)의 참여 기능별 구성이 도시된다.
기획자(910)는 text 입력, 메뉴 프레임 구성, 키 이벤트 처리, 시뮬레이션 테스트, 데이터 로딩, 메모리 관리(915)를 담당한다.
프로그래머(920)는 게임엔진을 개발하고, 폰 테스트를 수행한다.
디자이너(930)는 키 이벤트 처리, 메뉴/화면구성, 이미지 수정, 화면 배치, 시뮬레이션 테스트(935)를 수행한다.
기획자(910), 프로그래머(920), 디자이너(930)는 상술한 바와 같은 UI 툴 & 게임 에디터(940)인 프로그램 개발 툴을 통해서 효율적으로 게임 프로그램을 개발할 수 있다. UI 툴 & 게임 에디터(940)에서 개발된 게임은 게임 플레이 엔진(950)에 의해 게임 프로그램(960)으로 생성된다.
도 10은 본 발명의 실시예에 따른 프로그램 개발 툴의 블록 구성도이다. 도 10을 참조하면, 클래스 계층 구조(1010), UI툴(1020), 익스포터(Exporter)(1030), 오브젝트(Object)(1040), 이벤트(Event)(1050), Time Line(1060), 시뮬레이터(Simulator)(1070)이 도시된다.
클래스 계층 구조(1010)는 동일한 기능과 리소스의 상속 및 재사용이 가능한 클래스 계층 구조로 설계된다.
UI툴(1020)은 기존의 이미지 데이터와 그래픽 데이터들을 모아서 데이터를 생성한다.
익스포터(1030)는 이미지(BMP, PNG), 그래픽, 텍스트, 사운드에 해당하는 원시 소스를 받아서 제2 플랫폼 포맷에 맞게 재가공하여, UI 툴 & 게임 에디 터(940)에 사용가능한 오브젝트(1040)를 생성한다. 이러한 오브젝트는 Time Line(1060)에 배열되어 프레임에 배치된 리소스와 이벤트(1050)을 시간의 흐름에 따라 시뮬레이터(1070)에서 구동이 가능하도록 한다.
시뮬레이터(1070)는 게임개발에 있어서 직접 단말기 상에 프로그램을 업로드하여 발생하는 문제를 사전에 해결할 수 있도록 디버깅 기능 및 게임 플레이가 가능하다.
도 11은 본 발명의 실시예에 따른 프로그램 개발 툴의 중간언어 및 컴파일 과정을 도시한 도면이다. 도 11을 참조하면, 스캐너(1110, 1140, 1170), 파서(1120, 1150, 1180), 중간언어 생성부(1130), 어셈블러 생성부(1160), 이진화 코드 생성부(1190)가 도시된다.
스캐너(1110, 1140, 1170)와 파서(1120, 1150, 1180)는 중간언어 생성, 어셈블러 생성, 이진화 코드 생성을 위해서 C/CPP 또는 전용 언어코드를 읽어 들여 스캔 후 문법 지시적 변환에 의해 파싱 과정에서 직접 코드를 생성하거나 ASP 등의 중간 표현을 구성한 후 이러한 중간 표현으로부터 해당 작업을 수행할 수 있다.
중간언어 생성부(1130)는 컴파일러의 전단부에서 소스 프로그램을 입력으로 받아 중간 언어를 생성한다. 소스 프로그램은 어휘 분석과 구문 분석 과정을 거처 중간 표현을 생성하게 되며 중간언어 생성부(1130)에 의해 중간 언어로 번역된다. 이때 중간언어 생성부(1130)는 문장의 의미를 분석하고 옳은가를 검사하는 의미 분석 과정을 병행한다. 의미 분석을 수행함으로서 적절한 코드의 생성이 가능하게 되 며 또한 문법적으로는 옳으나 의미적으로는 틀린 문장을 검사할 수 있다. 의미 분석 상에 발생한 에러를 컴파일러 사용자에게 알려 줌으로써 에러 수정을 용이하게 한다. 문법적 및 의미적으로 옳은 문장은 중간 언어로 번역될 수 있다. 중간 언어를 생성하는 방법에는 문접-지시적 변환에 의해 파싱 과정에서 직접 코드를 생성하는 방법과 파스 트리나 AST 등 중간 표현을 구성한 후 이러한 중간 표현으로부터 중간 코드를 생성하는 방법으로 나눌 수 있다. 본 발명의 실시예에 따르면, 중간 표현으로 AST를 사용하고 중간 언어로 게임전용 중간 언어를 사용하였으나, 본 발명이 이에 한정되지 않음은 당연하다.
어셈블러 생성부(1160)는 중간언어 생성과 같은 과정을 거쳐서 어셈블러를 생성하고, 이진화 코드 생성부(1190)도 같은 과정에 의해서 이진화 코드를 생성한다.
도 12는 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치의 메모리 사용 구성도이다. 도 12를 참조하면, 제1 플랫폼 함수(1210), 미들웨어 플랫폼 엔진(1220), 제2 플랫폼 구조(1230)가 도시된다.
제1 플랫폼 함수(1210)와 미들웨어 플랫폼 엔진(1220)는 상술한 바와 같이 각각 API 함수(DirectX, Open GL, Open GL ES 및 Renderware 등)와 본 발명에 따른 엔진이다.
제2 플랫폼 구조(1230)는 H/W와 S/W에 따라 그 구조 및 메모리의 구조가 서로 다르기 때문에 사용되는 미들웨어 플랫폼 엔진(1220)에 호환되는지에 따라 구동 하는 메모리 구조가 다르게 할당된다. 예를 들면, 멀티라이트, 범퍼 맵과 같은 경우 OPEN GL ES에서는 지원하지 않으므로, 이러한 경우 H/W에서 사용되는 구조와 메모리 구조를 사용할 수 없다. 이 경우 S/W에서 사용되는 구조와 메모리 구조를 별도로 할당하여 사용할 수 있다.
도 13은 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치의 UI 툴과 메모리의 관계를 도시한 도면이다. 도 13을 참조하면, UI 명령에 필요한 공동 메모리(1310), UI 실행명령어(1320), 함수 API(1333, 1336, 1339)가 도시된다.
UI 툴에서 만들어진 명령대로 함수를 호출하고, 호출된 함수들은 포인터만을 가지고 접근한다. 이 경우 기본적인 정보 교환은 UI 명령에 필요한 공동 메모리(1310)를 통해 수행된다. 즉, UI 명령에 필요한 공동 메모리(1310)는 변수나 구조가 전달되는 매개체로서 역할을 한다.
따라서, UI 실행명령어(1320)는 UI 명령에 필요한 공동 메모리(1310)를 참조하며, 필요한 함수 API(1333, 1336, 1339)를 호출한다.
상술한 본 발명의 실시예에 따른 이기종간 프로그램 연동 방법, 이기종간 연동형 프로그램 개발 방법은 기록매체에 저장된 후 소정의 장치, 예를 들면, 이동 통신 단말기와 결합하여 수행될 수 있다. 여기서, 기록매체는 하드 디스크, 비디오 테이프, CD, VCD, DVD와 같은 자기 또는 광 기록매체이거나 또는 오프라인 또는 온 라인 상에 구축된 클라이언트 또는 서버 컴퓨터의 데이터베이스일 수도 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치를 포함하는 이기종 기기의 블록 구성도.
도 2는 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치의 동작을 도시한 블록 구성도.
도 3은 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치가 구동되는 이기종 기기의 블록 구성도.
도 4는 본 발명의 제1실시예에 따른 이기종간 연동형 프로그램 생성 장치가 API 함수를 생성하는 방법을 도시한 도면.
도 5는 본 발명의 제2실시예에 따른 이기종간 연동형 프로그램 생성 장치가 API 함수를 생성하는 방법을 도시한 도면.
도 6은 본 발명의 제3실시예에 따른 이기종간 연동형 프로그램 생성 장치가 API 함수를 생성하는 방법을 도시한 도면.
도 7은 본 발명의 제4실시예에 따른 이기종간 연동형 프로그램 생성 장치가 API 함수를 생성하는 방법을 도시한 도면.
도 8은 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치 중 프로그램 개발 툴의 블록 구성도.
도 9는 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치 중 프로그램 개발 툴에 의한 프로그램 개발 환경을 도시한 도면.
도 10은 본 발명의 실시예에 따른 프로그램 개발 툴의 블록 구성도
도 11은 본 발명의 실시예에 따른 프로그램 개발 툴의 중간언어 및 컴파일 과정을 도시한 도면.
도 12는 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치의 메모리 사용 구성도.
도 13은 본 발명의 실시예에 따른 이기종간 연동형 프로그램 생성 장치의 UI 툴과 메모리의 관계를 도시한 도면.
<도면의 주요부분에 대한 부호의 설명>
110 : 어플리케이션
120 : 미들웨어 어댑테이션 레이어
130 : 라이브러리
140 : 프레임워크
150 : 미들웨어 플랫폼 엔진
160 : 이기종 Run-time 엔진
170 : 핸드셋 어댑테이션 레이어
180 : 핸드셋 하드웨어와 네이티브 시스템 소프트웨어
190 : 필요 API

Claims (15)

  1. 이기종간 연동형 미들웨어 플랫폼 레이어가 서로 다른 기종에 사용되는 목적 API와 대상 API를 서로 연동하는 방법에 있어서,
    (a) 미리 설정된 기능을 기준으로 상기 목적 API에 상응하는 상기 대상 API를 추출하는 단계;
    (b) 상기 기능에 대응하는 상기 목적 API 수와 상기 대상 API 수를 추출하는 단계; 및
    (c) 상기 목적 API 수와 상기 대상 API 수를 서로 대응시켜 상기 대상 API를 상기 목적 API에 매핑하는 단계를 포함하는 이기종간 프로그램 연동 방법.
  2. 제1항에 있어서,
    상기 단계 (c)는,
    (c-1) 상기 대상 API의 구조와 상기 목적 API의 구조를 서로 비교하는 단계; 및
    (c-2) 상기 대상 API의 구조가 상기 목적 API 구조와 동일한 경우 상기 대상 API를 상기 목적 API에 직접 매핑하는 단계를 더 포함하는 것을 특징으로 하는 이기종간 프로그램 연동 방법.
  3. 제2항에 있어서,
    상기 단계 (c)는,
    (c-3) 상기 대상 API의 구조가 상기 목적 API 구조와 유사한 경우 상기 목적 API에 필요한 인자를 상기 대상 API로부터 추출하여 상기 목적 API에 매핑하는 단계를 더 포함하는 것을 특징으로 하는 이기종간 프로그램 연동 방법.
  4. 제1항에 있어서,
    상기 단계 (c)는,
    (c-4) 하나의 상기 대상 API가 하나의 상기 목적 API에 대응하는 경우 상기 대상 API를 상기 목적 API에 매핑하는 단계를 더 포함하는 것을 특징으로 하는 이기종간 프로그램 연동 방법.
  5. 제1항에 있어서,
    상기 단계 (c)는,
    (c-5) 복수의 상기 대상 API가 하나의 상기 목적 API에 대응하는 경우 상기 하나의 목적 API에 필요한 인자를 상기 복수의 대상 API로부터 추출하여 상기 하나의 목적 API에 매핑하는 단계를 더 포함하는 것을 특징으로 하는 이기종간 프로그 램 연동 방법.
  6. 제1항에 있어서,
    상기 단계 (c)는,
    (c-5) 하나의 상기 대상 API가 복수의 상기 목적 API에 대응하는 경우 상기 복수의 목적 API에 필요한 인자를 상기 하나의 대상 API로부터 추출하여 상기 복수의 목적 API에 매핑하는 단계를 더 포함하는 것을 특징으로 하는 이기종간 프로그램 연동 방법.
  7. 제1항에 있어서,
    상기 단계 (c)는,
    (c-6) 복수의 상기 대상 API가 복수의 상기 목적 API에 대응하는 경우 상기 복수의 목적 API에 필요한 인자를 상기 복수의 대상 API로부터 추출하여 상기 복수의 목적 API에 매핑하는 단계를 더 포함하는 것을 특징으로 하는 이기종간 프로그램 연동 방법.
  8. 제1항에 있어서,
    상기 대상 API 또는 상기 목적 API는 DirectX, Open GL 및 Renderware 중 어느 하나인 것을 특징으로 하는 이기종간 프로그램 연동 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 대상 API는 상기 이기종간 연동형 미들웨어 플랫폼 레이어와 결합된 메모리에 저장되는 것을 특징으로 하는 이기종간 프로그램 연동 방법.
  10. 서로 다른 기종에 사용되는 목적 API와 대상 API를 서로 연동하는 이기종간 연동형 미들웨어 플랫폼 레이어에 있어서,
    미리 설정된 기능을 기준으로 상기 목적 API에 상응하는 상기 대상 API를 추출하여, 상기 기능에 대응하는 상기 목적 API 수와 상기 대상 API 수를 추출하는 API 추출부; 및
    상기 목적 API 수와 상기 대상 API 수를 서로 대응시켜 상기 목적 API에 상기 대상 API를 매핑하는 API 매핑부를 포함하는 이기종간 연동형 미들웨어 플랫폼 레이어.
  11. 제10항에 있어서,
    상기 API 매핑부는 상기 대상 API의 구조와 상기 목적 API의 구조를 서로 비교하고, 상기 대상 API의 구조가 상기 목적 API 구조와 동일한 경우 상기 대상 API를 상기 목적 API에 매핑하는 것을 특징으로 하는 이기종간 연동형 미들웨어 플랫폼 레이어.
  12. 제11항에 있어서,
    상기 API 매핑부는 상기 대상 API의 구조가 상기 목적 API 구조와 유사한 경우 상기 목적 API에 필요한 인자를 상기 대상 API로부터 추출하여 상기 목적 API에 매핑하는 것을 특징으로 하는 이기종간 연동형 미들웨어 플랫폼 레이어.
  13. 제10항에 있어서,
    상기 API 매핑부는 상기 대상 API가 상기 목적 API에 대응하는 경우 상기 목적 API의 생성에 필요한 인자를 상기 대상 API로부터 추출하여 상기 목적 API에 매핑하는 것을 특징으로 하는 이기종간 연동형 미들웨어 플랫폼 레이어.
  14. 제10항에 있어서,
    상기 대상 API 또는 상기 목적 API는 DirectX, Open GL 및 Renderware 중 어느 하나인 것을 특징으로 하는 이기종간 연동형 미들웨어 플랫폼 레이어.
  15. 제10항 내지 제14항 중 어느 한 항에 있어서,
    상기 대상 API로부터 추출되며, 상기 목적 API의 생성에 필요한 인자를 메모리에 저장하는 것을 특징으로 하는 이기종간 연동형 미들웨어 플랫폼 레이어.
KR1020080006846A 2007-01-22 2008-01-22 이기종간 프로그램 연동 방법 및 그 장치 KR100870972B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070006770 2007-01-22
KR20070006770 2007-01-22

Publications (2)

Publication Number Publication Date
KR20080069148A true KR20080069148A (ko) 2008-07-25
KR100870972B1 KR100870972B1 (ko) 2008-12-01

Family

ID=39644652

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020080006847A KR100876607B1 (ko) 2007-01-22 2008-01-22 이기종간 프로그램 연동 방법 및 그 장치
KR1020080006845A KR100876606B1 (ko) 2007-01-22 2008-01-22 이기종간 연동형 프로그램 개발 방법 및 그 개발 장치
KR1020080006846A KR100870972B1 (ko) 2007-01-22 2008-01-22 이기종간 프로그램 연동 방법 및 그 장치
KR1020080006844A KR100876605B1 (ko) 2007-01-22 2008-01-22 이기종간 연동형 프로그램 생성 장치

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020080006847A KR100876607B1 (ko) 2007-01-22 2008-01-22 이기종간 프로그램 연동 방법 및 그 장치
KR1020080006845A KR100876606B1 (ko) 2007-01-22 2008-01-22 이기종간 연동형 프로그램 개발 방법 및 그 개발 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020080006844A KR100876605B1 (ko) 2007-01-22 2008-01-22 이기종간 연동형 프로그램 생성 장치

Country Status (7)

Country Link
US (1) US20110247016A1 (ko)
JP (1) JP2010517134A (ko)
KR (4) KR100876607B1 (ko)
CN (1) CN101641690A (ko)
DE (1) DE112008000242T5 (ko)
GB (1) GB2458607A (ko)
WO (4) WO2008091103A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101254756B1 (ko) * 2011-07-26 2013-04-15 김재식 복수의 운영체제와 호환 가능한 가상머신 생성 방법 및 가상머신 프로그램을 저장한 기록매체
KR101355443B1 (ko) * 2010-02-26 2014-01-28 에스케이플래닛 주식회사 모바일 그래픽 처리 장치 및 방법, 그를 위한 컴퓨터 판독 가능한 기록매체

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8317606B2 (en) 2008-12-04 2012-11-27 Disney Enterprises, Inc. Live authoring method for real time development of video games
US8176124B2 (en) 2008-12-04 2012-05-08 Disney Enterprises, Inc. Communication hub for video game development systems having a video game development tool and video game platforms with communication libraries
EP2193828B1 (en) 2008-12-04 2012-06-13 Disney Enterprises, Inc. Communication hub for video game development systems
CA2777594A1 (en) * 2009-10-15 2011-04-21 Web Impact Inc. System and method for managing applications for multiple computing endpoints and multiple endpoint types
KR101120614B1 (ko) * 2010-01-06 2012-03-20 인크로스 주식회사 어플리케이션 가공방법
US20110319157A1 (en) * 2010-06-25 2011-12-29 Yury Kuznetsov Gaming point exchange system and method
CN102375815A (zh) * 2010-08-10 2012-03-14 鸿富锦精密工业(深圳)有限公司 应用于嵌入式设备的三维网络用户接口及其实现方法
CN101950257B (zh) * 2010-09-26 2014-12-17 中兴通讯股份有限公司 一种手机应用开发方法和系统
EP2625623B1 (en) 2010-10-08 2018-07-18 Meetoo Limited Multi-phased and partitioned content preparation and delivery
KR101157485B1 (ko) * 2010-12-09 2012-06-20 국방과학연구소 Mil-std-1553b를 지원하는 통합 미들웨어 시스템, 장치 및 방법
US8615744B2 (en) * 2011-02-09 2013-12-24 Beek Fund B.V. L.L.C. Methods and system for managing assets in programming code translation
US8788243B2 (en) 2011-02-14 2014-07-22 Disney Enterprises, Inc. Performance metrics gathering from multiple video game platforms
KR101831693B1 (ko) * 2011-03-08 2018-02-23 삼성전자주식회사 멀티 소프트웨어 플랫폼 기반의 휴대용 단말기에서 플랫폼 간 정보를 동기화하는 방법 및 장치
CN102541567A (zh) * 2012-01-05 2012-07-04 深圳市天拓立方通讯科技有限公司 一种2d手机游戏引擎及兼容手机操作系统的方法
US8910115B2 (en) * 2012-04-02 2014-12-09 Kony Solutions, Inc. Systems and methods for application development
JP2015534737A (ja) * 2012-08-02 2015-12-03 コリア・アドバンスト・インスティテュート・オブ・サイエンス・アンド・テクノロジー インタラクティブ放送プログラムの製作および実行のためのシステムおよび方法
US10049030B2 (en) * 2012-09-18 2018-08-14 Infosys Limited System and method for test output evaluation of a JAVA component
KR101525510B1 (ko) * 2013-03-07 2015-06-03 에스피테크놀러지 주식회사 저작도구와 통합개발환경의 연동을 위한 장치와 그 제어 방법
US9778924B2 (en) * 2013-06-06 2017-10-03 Wipro Limited Platform for enabling creation and use of an API for a specific solution
CN103365665A (zh) * 2013-07-25 2013-10-23 成都品果科技有限公司 一种基于虚拟指令的应用程序移植方法
KR101598819B1 (ko) * 2013-12-02 2016-03-02 한국과학기술연구원 타겟 독립적인 디버깅 정보를 이용한 코드 변환 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체
CN104090765A (zh) * 2014-07-16 2014-10-08 福建天晴数码有限公司 一种手机游戏转网页游戏的方法及装置
CN104090845B (zh) * 2014-07-31 2017-05-10 深圳第七大道科技有限公司 一种游戏自动测试方法、系统及相关设备
CN104796670A (zh) * 2015-04-23 2015-07-22 安徽省道一电子科技有限公司 基于流水线架构的跨平台多路实时视频处理系统架构
CN105005495B (zh) * 2015-06-23 2018-08-24 珠海金山网络游戏科技有限公司 一种游戏引擎
CN108984225B (zh) * 2018-06-19 2023-05-30 上海掌门科技有限公司 快速启动寄宿应用的方法及设备
CN111199329A (zh) * 2018-11-20 2020-05-26 深圳市茁壮网络股份有限公司 一种中间件的移植方法及系统
CN112114789B (zh) * 2019-06-20 2024-02-06 腾讯科技(深圳)有限公司 一种业务开发方法及设备
KR102341419B1 (ko) * 2019-12-23 2021-12-21 주식회사 인포마인드 판매 관리 장치 및 판매 관리 방법
CN111338813B (zh) * 2020-02-10 2023-05-12 北京字节跳动网络技术有限公司 一种动态生成中间件的方法、装置、介质和电子设备
US10951738B1 (en) 2020-08-06 2021-03-16 Bank Of America Corporation Automatic API integration
CN112882690B (zh) * 2021-01-28 2024-04-19 抖音视界有限公司 一种应用开发方法及装置
CN115080006A (zh) * 2021-03-15 2022-09-20 武汉斗鱼网络科技有限公司 一种数据调用方法及相关设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026238A (en) * 1997-08-18 2000-02-15 Microsoft Corporatrion Interface conversion modules based upon generalized templates for multiple platform computer systems
JP2000057082A (ja) * 1998-08-12 2000-02-25 Nec Corp 上位アプリケーション資産を継承した新機種外部機器制御方式
JP4130713B2 (ja) * 1998-10-21 2008-08-06 松下電器産業株式会社 プログラム変換装置
KR20030012269A (ko) * 2001-07-31 2003-02-12 주식회사 배틀탑 네트워크 기반의 유무선 통신기기를 이용한 게임통합서비스 시스템
US7392483B2 (en) * 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US7305629B2 (en) * 2002-09-26 2007-12-04 International Business Machines Corporation Consolidation of computer documentation
KR100463839B1 (ko) * 2002-12-17 2004-12-29 한국전자통신연구원 홈네트워크 환경에서 이기종 제어 미들웨어를 지원하는정보기기간의 협동 서비스 시스템 및 방법
JP2004246690A (ja) * 2003-02-14 2004-09-02 Canon Inc プログラム移植支援システム
KR20040095858A (ko) * 2003-04-28 2004-11-16 김지훈 유무선 인터넷 상에서의 일체형 게임서비스 제공방법
KR20040102679A (ko) * 2003-05-29 2004-12-08 (주)이즈메이커 개인용 컴퓨터에서 모바일 화면을 동일하게 사용하는 게임방법 및 시스템
KR20040102997A (ko) * 2003-05-30 2004-12-08 이노에이스(주) 가상머신 및 플레이어를 탑재하는 플랫폼시스템
GB0316531D0 (en) * 2003-07-15 2003-08-20 Transitive Ltd Method and apparatus for performing native binding
KR100561682B1 (ko) * 2003-10-10 2006-03-15 에스케이 텔레콤주식회사 그룹 별 api 관리를 지원하는 모바일 플랫폼이 탑재된이동 통신 단말 및 모바일 플랫폼에서의 api 제어 방법
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
KR100703717B1 (ko) * 2004-12-06 2007-04-06 한국전자통신연구원 프로세서간 통신을 이용한 프로그램간 연동 방법
GB2426840A (en) * 2005-06-04 2006-12-06 Transitive Ltd Method of executing program code where a portion of the target code calls a native code portion which then calls a second target code portion.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101355443B1 (ko) * 2010-02-26 2014-01-28 에스케이플래닛 주식회사 모바일 그래픽 처리 장치 및 방법, 그를 위한 컴퓨터 판독 가능한 기록매체
KR101254756B1 (ko) * 2011-07-26 2013-04-15 김재식 복수의 운영체제와 호환 가능한 가상머신 생성 방법 및 가상머신 프로그램을 저장한 기록매체

Also Published As

Publication number Publication date
KR20080069146A (ko) 2008-07-25
KR100870972B1 (ko) 2008-12-01
GB2458607A (en) 2009-09-30
KR100876606B1 (ko) 2008-12-31
US20110247016A1 (en) 2011-10-06
GB0912816D0 (en) 2009-08-26
WO2008091104A1 (en) 2008-07-31
WO2008091101A1 (en) 2008-07-31
KR20080069149A (ko) 2008-07-25
KR100876607B1 (ko) 2008-12-31
WO2008091103A1 (en) 2008-07-31
JP2010517134A (ja) 2010-05-20
KR20080069147A (ko) 2008-07-25
WO2008091105A1 (en) 2008-07-31
CN101641690A (zh) 2010-02-03
DE112008000242T5 (de) 2009-12-24
KR100876605B1 (ko) 2008-12-31

Similar Documents

Publication Publication Date Title
KR100870972B1 (ko) 이기종간 프로그램 연동 방법 및 그 장치
Burnette Hello, Android introducing Google's mobile development platform: 2nd
CN1120416C (zh) 采用外观类进行软件翻译的内观编辑器系统和方法
US7765539B1 (en) System and method for trans-compiling video games
US20130227522A1 (en) Integrated Application Localization
US20030131148A1 (en) Cross-platform software development with a software development peripheral
US8762963B2 (en) Translation of programming code
US20070169018A1 (en) Method and an apparatus for translating programming language code
US20070169017A1 (en) Method and apparatus for translating an application programming interface (API) call
EP3752914B1 (en) Techniques for native runtime of hypertext markup language graphics content
CN102508648A (zh) 一种图形引擎实现方法
KR20110077591A (ko) 위피 기반 어플리케이션을 위한 멀티 플랫폼 변환 장치 및 방법
Fahy et al. Using open source libraries in cross platform games development
KR100846203B1 (ko) 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체
CN111290746A (zh) 对象访问方法、装置、设备及存储介质
Joseph et al. Software Framework Of An All-In-One Transpiler For Development Of WORA Applicatons
Hang Android Optical Character Recognition Solution Based on TacoTaco Framework
Jackson et al. Setting Up Your Java 9 IDE: An Introduction to NetBeans 9
KR20130133472A (ko) 프로그램 개발 방법 및 개발 장치
Pedersen Hydra: loosely coupling the graphics pipeline to facilitate digital preservation.
Sharma Development Platforms for Mobile Applications: Status and Trends
Vaughan Windows Phone 7.5 Unleashed
Tufró Developing Mobile Games with Moai SDK
Kaisanlahti Applicability of Common Lisp in Game Development
KR20100042681A (ko) 멀티 디바이스 게임 플레이 지원 방법 및 그 장치

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20111121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20121121

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee