KR101059658B1 - 개발자 인터페이스 제공 방법 및 시스템 - Google Patents

개발자 인터페이스 제공 방법 및 시스템 Download PDF

Info

Publication number
KR101059658B1
KR101059658B1 KR1020100063582A KR20100063582A KR101059658B1 KR 101059658 B1 KR101059658 B1 KR 101059658B1 KR 1020100063582 A KR1020100063582 A KR 1020100063582A KR 20100063582 A KR20100063582 A KR 20100063582A KR 101059658 B1 KR101059658 B1 KR 101059658B1
Authority
KR
South Korea
Prior art keywords
program
component
developer interface
components
constituting
Prior art date
Application number
KR1020100063582A
Other languages
English (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 KR1020100063582A priority Critical patent/KR101059658B1/ko
Priority to US13/170,598 priority patent/US8739117B2/en
Priority to JP2011147347A priority patent/JP6190569B2/ja
Application granted granted Critical
Publication of KR101059658B1 publication Critical patent/KR101059658B1/ko
Priority to JP2016025119A priority patent/JP6267249B2/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

로딩된 프로그램을 이용하여 개발자 인터페이스를 생성하는 방법 및 시스템이 개시된다. 개발자 인터페이스 생성 방법은 로딩된 프로그램을 구성하는 복수의 컴포넌트들을 통신 인터페이스를 통해 공유하고, 공유되는 복수의 컴포넌트들 중 개발자 인터페이스를 통해 선택된 컴포넌트들을 이용하여 새로운 프로그램을 생성할 수 있다.

Description

개발자 인터페이스 제공 방법 및 시스템{METHOD AND SYSTEM FOR PROVIDING DEVELOPER INTERFACE}
본 발명은 개발자 인터페이스 제공 방법 및 시스템에 관한 것으로, 보다 구체적으로 커뮤니케이션 버스를 이용하여 등록된 컴포넌트들의 실행에 따른 개발자 인터페이스를 제공하는 방법 및 시스템에 관한 것이다.
소프트웨어 개발에 있어 매우 강조되는 한가지가 바로 재사용성이다. 개발이 완료된 소프트웨어를 다른 여러 소프트웨어에서 재사용하는 것은 추가개발이 필요없는 비용 감소, 이미 사용되고 있는데 서 오는 안정성 확보 등의 여러 가지 장점이 있다.
그 동안 소프트웨어의 재사용은 코드 또는 컴파일 완료상태의 바이너리 재사용에 국한되어 왔다. 프로그램의 개발자는 다른 개발자가 만든 코드를 재사용하기 위해 소스파일을 가져와 자신의 프로그램과 함께 컴파일하거나 프로그램(exe, dll)을 재사용하기 위해서 이 파일들을 복사하여 자신의 프로그램에서 재사용하곤 했다.
하지만, 필요에 따라 코드나 dll과 같은 개발이 완료된 코드를 넘어 이미 메모리에 로딩된 살아있는 다른 프로그램을 재사용한다면, 보다 나은 재 사용성을 제공할 수 있다.
예를 들어, 메신저 프로그램이 동작하는 상태에서 게임 프로그램이 이 메신저 프로그램을 재사용한다면, 게임 프로그램이 메신저 프로그램안에 있는 로그인된 사용자 정보를 가져와 게임안에서 로그인된 사용자 정보를 활용하여 게임안에서 해당 사용자를 초대할 수도 있을 것이다.
본 발명은 커뮤니케이션 버스를 이용하여 등록된 다수의 컴포넌트들 간의 데이터를 공유하는 방법 및 시스템을 제공한다.
본 발명은 등록된 다수의 컴포넌트들을 실행하면서 신규 컴포넌트를 추가하는 방법 및 시스템을 제공한다.
본 발명은 커뮤니케이션 버스를 이용하여 등록 중인 컴포넌트의 등록을 취소하는 방법 및 시스템을 제공한다.
본 발명은 개발자 인터페이스를 활용하여 이미 로딩된 프로그램을 구성하는 컴포넌트들을 이용하여 새로운 프로그램을 생성하는 방법 및 시스템을 제공한다.
본 발명의 일실시예에 따른 개발자 인터페이스 제공 방법은, 복수의 컴포넌트들(Components)로 구성된 프로그램 1을 로딩하는 단계, 및 상기 로딩된 프로그램 1을 구성하는 복수의 컴포넌트들 중 적어도 하나의 컴포넌트를 이용하여 프로그램 3를 생성하는 단계를 포함할 수 있다.
또한, 상기 로딩된 프로그램 1과 컴포넌트를 공유하는 하나 이상의 프로그램 2를 로딩하는 단계를 더 포함할 수 있다.
또한, 상기 프로그램 3을 생성하는 단계는, 상기 프로그램 1을 구성하는 적어도 하나의 컴포넌트와 상기 프로그램 2를 구성하는 적어도 하나의 컴포넌트를 이용하여 상기 프로그램 3을 생성할 수 있다.
또한, 상기 로딩한 프로그램 1 및 2를 구성하는 복수의 컴포넌트들을 개발자 인터페이스를 통해 노출하는 단계를 더 포함할 수 있다.
또한, 상기 프로그램 3을 생성하는 단계는, 상기 개발자 인터페이스를 통해 노출된 프로그램 1 및 2를 구성하는 복수의 컴포넌트들 중 적어도 하나의 컴포넌트 선택을 입력 받는 단계, 및 상기 선택을 입력 받은 적어도 하나의 컴포넌트들을 결합하여 상기 프로그램 3을 생성하는 단계를 포함할 수 있다.
이때, 상기 개발자 인터페이스는, XML 기반의 동적 개발자 인터페이스일 수 있다.
또한, 상기 컴포넌트의 타입은, 동적 링크 라이브러리(Dynamic Linked Library: DLL) 및 실행 프로그램(Execute Program: EXE) 중 어느 하나일 수 있다.
또한, 본 발명의 일실시예에 따른 개발자 인터페이스 시스템은, 복수의 컴포넌트들(Components)로 구성된 프로그램 1을 로딩하는 프로그램 로딩부, 및 상기 로딩된 프로그램 1을 구성하는 복수의 컴포넌트들 중 적어도 하나의 컴포넌트를 이용하여 프로그램 3을 생성하는 생성부를 포함할 수 있다.
또한, 상기 프로그램 로딩부는, 상기 로딩된 프로그램 1과 컴포넌트를 공유하는 하나 이상의 프로그램 2를 로딩할 수 있다.
또한, 상기 생성부는, 상기 프로그램 1을 구성하는 적어도 하나의 컴포넌트와 상기 프로그램 2를 구성하는 적어도 하나의 컴포넌트를 이용하여 상기 프로그램 3을 생성할 수 있다.
또한, 상기 로딩한 프로그램 1 및 2를 구성하는 복수의 컴포넌트들을 개발자 인터페이스를 통해 노출하는 인터페이스 노출부를 더 포함할 수 있다.
또한, 상기 생성부는, 상기 개발자 인터페이스를 통해 노출된 프로그램 1 및 2를 구성하는 복수의 컴포넌트들 중 적어도 하나의 컴포넌트 선택을 입력 받는 컴포넌트 선택부, 및 상기 선택을 입력 받은 적어도 하나의 컴포넌트들을 결합하여 상기 프로그램 3을 생성하는 프로그램 생성부를 포함할 수 있다.
본 발명의 일실시예에 따르면, 커뮤니케이션 버스를 이용하여 등록된 다수의 컴포넌트들 간의 데이터를 공유할 수 있다.
본 발명의 일실시예에 따르면, 등록된 다수의 컴포넌트들을 실행하면서 신규 컴포넌트를 추가할 수 있다.
본 발명의 일실시예에 따르면, 커뮤니케이션 버스를 이용하여 등록 중인 컴포넌트의 등록을 취소할 수 있다.
본 발명의 일실시예에 따르면, 커뮤니케이션 버스를 이용하여 등록 중인 컴포넌트를 조정할 수 있다.
도 1은 본 발명의 일실시예에 따른 커뮤니케이션 버스를 이용하여 컴포넌트를 등록하는 과정을 설명하기 위해 제공되는 도면이다.
도 2는 본 발명의 일실시예에 따른 본 발명의 일실시예에 따른 개발자 인터페이스 시스템의 구성을 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 개발자 인터페이스 시스템에서 생성부의 세부 구성을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따라 로딩된 프로그램을 구성하는 컴포넌트들을 이용하여 새로운 프로그램을 생성하는 방법을 설명하기 위해 제공되는 흐름도이다.
도 5는 본 발명의 일실시예에 따라 커뮤니케이션 버스를 통해 공유되는 복수의 컴포넌트들을 이용하여 새로운 프로그램을 생성하는 방법을 설명하기 위해 제공되는 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 커뮤니케이션 버스를 이용하여 컴포넌트를 등록하는 과정을 설명하기 위해 제공되는 도면이다.
도 1에서, 컴포넌트 1(30), 컴포넌트 2(40), 및 컴포넌트 4(60)는 커뮤니케이션 버스(20)를 이용하여 이미 등록된 상태이고, 컴포넌트 3(50)을 등록하려는 경우, 개발자 인터페이스 시스템(10)은 커뮤니케이션 버스(20)를 이용하여 컴포넌트 3(50)을 등록할 수 있다.
이때, 개발자 인터페이스 시스템(10)은 컴포넌트 3(50)이 신규로 등록되었음을 컴포넌트 1(30), 컴포넌트 2(40), 및 컴포넌트 4(60)에 알릴 수 있다. 그러면, 커뮤니케이션 버스(20)를 통해 이미 등록된 컴포넌트 1(30), 컴포넌트 2(40), 및 컴포넌트 4(60)와 신규로 등록된 컴포넌트 3(50)가 서로 공유될 수 있다. 일례로, 컴포넌트 1, 2, 4와 신규로 등록된 컴포넌트 3(50)을 구성하는 데이터들이 커뮤니케이션 버스(20)를 통해 상호 공유될 수 있다. 여기서, 컴포넌트 1 내지 컴포넌트 4(30~60)를 구성하는 데이터는 XML 형식의 데이터일 수 있다. 이때, XML 형식의 데이터는 DTD(Document Type Definition)를 이용하여 정의될 수 있다.
도 2는 본 발명의 일실시예에 따른 개발자 인터페이스 시스템의 구성을 도시한 도면이다.
도 2를 참고하면, 개발자 인터페이스 시스템(200)은 컴포넌트 등록부(210), 컴포넌트 공유부(220), 등록 취소부(230), 프로그램 로딩부(240), 및 생성부(250)를 포함할 수 있다.
컴포넌트 등록부(210)는 커뮤니케이션 버스(Communication Bus: 300)를 이용하여 하나 이상의 컴포넌트를 등록할 수 있다. 여기서, 컴포넌트는 클라이언트에서 동작하는 다수의 서비스에 해당하는 프로그램을 구성하는 모듈이다. 즉, 프로그램은 복수의 컴포넌트들로 구성될 수 있다. 이때, 프로그램은 게임, 메신저, 블로그 등을 포함하고, 컴포넌트(component)는 게임, 메신저, 블로그 등의 프로그램을 구성하기 위한 웹 페이지, 아바타, 배경, 텍스트, 음악, 및 게임 아이템 등의 모듈을 포함할 수 있다.
일례로, 컴포넌트 1(410) 및 컴포넌트 2(420)는 프로그램 1을 구성하는 모듈이고, 컴포넌트 3(430) 및 컴포넌트 4(440)는 프로그램 2를 구성하는 모듈일 수 있다. 이때, 컴포넌트 1(410), 및 컴포넌트 2(420)는 기등록되고, 컴포넌트 3(430)을 신규로 등록하는 경우, 컴포넌트 등록부(210)는 커뮤니케이션 버스(300)를 이용하여 컴포넌트 3(430)을 신규로 등록할 수 있다. 그리고, 컴포넌트 등록부(210)는 컴포넌트 3(430)이 신규로 등록되었음을 커뮤니케이션 버스(300)를 이용하여 컴포넌트 1(410), 컴포넌트 2(420)에 알릴 수 있다.
또한, 컴포넌트 등록부(210)는 등록된 적어도 하나의 컴포넌트가 실행 중인 경우에, 신규 컴포넌트를 추가할 수도 있다.
그러면, 컴포넌트 공유부(220)는 커뮤니케이션 버스(300)를 이용하여 등록된 컴포넌트들을 서로 공유할 수 있다. 일례로, 컴포넌트 공유부(220)는 등록된 컴포넌트들을 구성하는 XML 형식의 데이터를 커뮤니케이션 버스(300)를 통해 서로 공유할 수 있다. 도 2에 따르면, 컴포넌트 공유부(220)는 하나의 런쳐(Launcher)에서 컴포넌트 1(410) 내지 컴포넌트 4(440)이 갖고 있는 데이터들을 커뮤니케이션 버스(300)를 이용하여 서로 공유할 수 있다. 이를 위해, 컴포넌트 공유부(220)는 등록된 컴포넌트로부터 수신한 데이터를 커뮤니케이션 버스(300)를 통해 다른 컴포넌트에 전송할 수 있다.
일례로, 게임인 프로그램 1(4100)을 구성하는 컴포넌트 1(410) 및 컴포넌트 2(420)와 메신저(messenger)인 프로그램 2(4200)를 구성하는 컴포넌트 3(430) 및 컴포넌트 4(440)가 커뮤니케이션 버스(300)를 통해 공유되는 경우, 개발자 인터페이스 시스템(200)은 메신저에 사용자가 로그인하였음을 게임 상에 표시할 수 있다. 이때, 컴포넌트 3(430)은 메신저 로그 정보에 해당하는 모듈이고, 컴포넌트 4(440)는 메신저 이모티콘, 글꼴에 해당하는 디자인 모듈인 경우, 컴포넌트 3(430)은 메신저에 등록된 사용자들이 메신저에 로그인할 때마다 메신저 로그 정보를 커뮤니케이션 버스(300)에 브로드캐스팅(broadcasting)할 수 있다. 이에 따라, 컴포넌트 3(430)은 사용자가 메신저에 로그인할 때마다 메신저 정보를 컴포넌트 1(410) 및 컴포넌트 2(420)로 전달하기 위해 컴포넌트 3을 수정할 필요가 없다.
그리고, 컴포넌트 공유부(220)는 커뮤니케이션 버스(300)를 통해 수신된 메신저 로그 정보를 커뮤니케이션 버스(300)를 이용하여 컴포넌트 1(410) 및 컴포넌트 2(420)로 전달할 수 있다. 그러면, 게임 상에 메신저에 사용자가 로그인한 정보가 표시될 수 있다. 이에 따라, 컴포넌트 1(410) 및 컴포넌트 2(420)는 제공되는 라이브러리를 그대로 사용하여 메신저 정보를 수신할 수 있다. 즉, 컴포넌트 1(410) 및 컴포넌트 2(420)로 구성된 프로그램 1(4100)은 메신저 로그 정보를 수신하기 위한 프로토콜을 설계하거나, 코드를 개발하지 않아도 된다.
다른 예로, 게임인 프로그램 1(4100)이 컴포넌트 1(410) 및 컴포넌트 2(420)로 구성되고, 블로그인 프로그램 3과 컴포넌트들을 공유하는 경우, 컴포넌트 1(410)은 동작하고 있는 게임의 현재 화면을 캡쳐(Capture)하여 커뮤니케이션 버스(300)로 전달할 수 있다. 그러면, 컴포넌트 공유부(220)는 수신된 캡쳐 화면을 커뮤니케이션 버스(300)를 이용하여 프로그램 3을 구성하는 컴포넌트들로 전달할 수 있다. 이에 따라, 블로그에는 캡쳐 화면이 업로드될 수 있다.
또 다른 예로, 게임인 프로그램 1(4100)과 웹 페이지(Webpage)인 프로그램 4를 구성하는 컴포넌트들이 공유되는 경우, 프로그램 1(4100)을 구성하는 컴포넌트 1(410)은 퀘스트(Quest) 수행과 관련된 웹 페이지 요청 데이터를 커뮤니케이션 버스(300)로 전달할 수 있다. 그러면, 컴포넌트 공유부(220)는 커뮤니케이션 버스(300)를 통해 웹 페이지 요청 데이터를 수신하고, 수신한 웹 페이지 요청 데이터를 커뮤니케이션 버스(300)를 이용하여 프로그램 4를 구성하는 컴포넌트들로 전달할 수 있다. 그리고, 컴포넌트 공유부(220)는 프로그램 4에서 커뮤니케이션 버스(300)를 통해 수신된 웹 페이지를 커뮤니케이션 버스(300)를 이용하여 프로그램 1(4100)을 구성하는 컴포넌트 1(410) 및 컴포넌트(420) 중 적어도 하나로 전달할 수 있다. 그러면, 게임 상에 퀘스트 수행과 관련된 웹 페이지가 표시될 수 있다.
등록 취소부(230)는 신규 컴포넌트를 등록하는 중에 신규 컴포넌트의 등록 취소가 요청되면, 신규 컴포넌트의 등록을 취소할 수 있다. 이때, 신규 컴포넌트의 등록이 취소되더라도, 실행되고 있는 컴포넌트들은 실행 종료 없이 계속 실행될 수 있다.
프로그램 로딩부(240)는 등록된 컴포넌트들을 구성하는 프로그램들을 로딩(Loading)할 수 있다. 이때, 프로그램 로딩부(240)는 등록된 컴포넌트들을 구성하는 프로그램들 중 어느 하나의 프로그램을 로딩한 상태에서 또 다른 등록 컴포넌트를 구성하는 프로그램을 로딩할 수도 있다. 여기서, 등록된 컴포넌트들은 커뮤니케이션 버스(300)를 통해 공유되므로, 프로그램 로딩부(240)는 커뮤니케이션 버스(300)를 통해 제1 프로그램(4100)과 컴포넌트들을 공유하는 하나 이상의 프로그램을 로딩할 수 있다.
일례로, 프로그램 로딩부(240)는 게임인 프로그램 1(4100)을 로딩한 상태에서, 메신저인 프로그램 2(4200)를 로딩할 수 있다. 이때, 프로그램 1(4100)이 메인(main)으로 실행되는 상태에서 프로그램 2(4200)는 프로그램 1(4100)에 종속되어 실행될 수 있다. 즉, 프로그램 1을 메인으로 하는 하나의 런쳐(Launcher)에서 복수의 프로그램들이 실행될 수 있다.
생성부(250)는 로딩된 프로그램을 구성하는 컴포넌트들을 이용하여 새로운 프로그램을 생성할 수 있다. 일례로, 프로그램 1(4100)이 로딩된 경우, 생성부(250)는 프로그램 1(4100)을 구성하는 컴포넌트 1(410) 및 컴포넌트 2(420) 중 적어도 하나를 이용하여 프로그램 3을 생성할 수 있다.
또한, 복수의 프로그램이 로딩된 경우, 생성부(250)는 복수의 프로그램을 구성하는 컴포넌트들을 이용하여 새로운 프로그램을 생성할 수도 있다.
일례로, 프로그램 1(4100) 및 프로그램 2(4200)이 로딩된 경우, 생성부(250)는 프로그램 1(4100)을 구성하는 복수의 컴포넌트들 및 프로그램 2(4200)를 구성하는 복수의 컴포넌트들 중 하나 이상의 컴포넌트를 선택할 수 있다. 그리고, 생성부(250)는 선택한 컴포넌트들을 결합하여 새로운 프로그램 3을 생성할 수 있다.
이때, 생성부(250)는 프로그램 3을 생성하는 데 필요한 하나 이상의 신규 컴포넌트를 생성할 수도 있다. 그러면, 생성부(250)는 생성한 신규 컴포넌트와 선택한 컴포넌트들 결합하여 프로그램 3을 생성할 수도 있다.
이하에서는 도 3을 참조하여, 로딩된 프로그램을 구성하는 컴포넌트들을 이용하여 새로운 프로그램을 생성하는 과정에 대해 상세히 설명하기로 한다.
도 3은 본 발명의 일실시예에 따른 개발자 인터페이스 시스템에서 생성부의 세부 구성을 도시한 도면이다.
도 3에 따르면, 생성부(250)는 인터페이스 노출부(251), 컴포넌트 선택부(252), 프로그램 생성부(253)를 포함할 수 있다.
인터페이스 노출부(251)는 로딩된 하나 이상의 프로그램을 구성하는 컴포넌트들을 개발자 인터페이스(Developer Interface)를 통해 개발자에게 노출할 수 있다. 이때, 프로그램을 구성하는 컴포넌트의 타입(Type)은 동적 링크 라이브러리(Dynamic Linked Library: DLL), 및 실행 프로그램(Execute Program: EXE) 중 어느 하나일 수 있다.
일례로, 프로그램 로딩부(240)에서 프로그램 1(4100)을 로딩한 경우, 인터페이스 노출부(251)는 프로그램 1(4100)을 구성하는 복수의 컴포넌트들을 개발자 인터페이스를 통해 노출할 수 있다. 즉, 인터페이스 노출부(251)는 개발자 인터페이스를 통해 컴포넌트 1(410) 및 컴포넌트 2(420)를 노출할 수 있다.
다른 예로, 프로그램 로딩부(240)에서 프로그램 1 및 프로그램 2를 로딩한 경우, 인터페이스 노출부(251)는 프로그램 1(4100) 및 프로그램 2(4200)을 구성하는 복수의 컴포넌트들을 개발자 인터페이스를 통해 노출할 수 있다. 즉, 인터페이스 노출부(251)는 개발자 인터페이스를 통해 컴포넌트 1(410) 내지 컴포넌트 4(440)를 개발자에게 노출할 수 있다.
컴포넌트 선택부(252)는 개발자 인터페이스를 통해 노출된 컴포넌트들 중 하나 이상의 컴포넌트를 선택할 수 있다. 이때, 컴포넌트 선택부(252)는 노출된 컴포넌트들 중 새로운 프로그램 3을 생성하는 데 필요한 컴포넌트 선택을 개발자로부터 입력 받을 수 있다. 여기서, 개발자 인터페이스로는 XML 기반의 동적 개발자 인터페이스가 이용될 수 있다.
일례로, 컴포넌트 1(410)은 게임인 프로그램 1(4100)의 웹 제어(Web Control), 모듈이고, 컴포넌트 2(420)는 프로그램 1(4100)의 화면 크기 조정 모듈이고, 컴포넌트 3(430)은 메신저인 프로그램 2(4200)의 메신저 로그 정보에 대한 모듈이고, 컴포넌트 4(440)는 프로그램 2(4200)의 디자인 모듈인 경우, 컴포넌트 선택부(252)는 개발자 인터페이스를 통해 노출된 컴포넌트 1(410) 내지 컴포넌트 4(440) 중에서 컴포넌트 2(420) 및 컴포넌트 4(440)의 선택을 입력 받을 수 있다.
그러면, 프로그램 생성부(253)는 선택된 컴포넌트 2(420) 및 컴포넌트 4(440)를 결합하여 새로운 프로그램 3을 생성할 수 있다.
도 4는 본 발명의 일실시예에 따라 로딩된 프로그램을 구성하는 컴포넌트들을 이용하여 새로운 프로그램을 생성하는 방법을 설명하기 위해 제공되는 흐름도이다.
먼저, 프로그램 로딩부(240)는 등록된 컴포넌트들을 구성하는 하나 이상의 프로그램을 로딩할 수 있다. 일례로, 프로그램 1(4100) 및 프로그램 2(4200)가 등록된 경우, 프로그램 로딩부(240)는 프로그램 1을 로딩할 수 있다(S510). 이때, 프로그램 1(4100)은 컴포넌트 1(410) 및 컴포넌트 2(420)로 구성되고, 프로그램 2(4200)는 컴포넌트 3(430) 및 컴포넌트 4(440)로 구성될 수 있다. 여기서, 등록된 컴포넌트 1(410) 내지 컴포넌트 4(440)는 커뮤니케이션 버스(300)를 통해 공유될 수 있다.
이어, 인터페이스 노출부(251)는 로딩된 프로그램을 구성하는 컴포넌트들을 개발자 인터페이스를 통해 개발자에게 노출할 수 있다(S520). 일례로, 인터페이스 노출부(251)는 프로그램 1(4100)을 구성하는 컴포넌트 1(410) 및 컴포넌트 2(420)를 개발자 인터페이스를 통해 노출할 수 있다.
그리고, 컴포넌트 선택부(252)는 노출된 컴포넌트들 중에서 하나 이상의 컴포넌트 선택을 입력 받을 수 있다. 일례로, 컴포넌트 선택부(252)는 노출된 컴포넌트 1 및 2(410, 420) 중에서 컴포넌트 2(420)의 선택을 개발자로부터 입력 받을 수 있다.
그러면, 프로그램 생성부(253)는 선택된 컴포넌트를 이용하여 새로운 프로그램을 생성할 수 있다. 일례로, 프로그램 생성부(253)는 선택된 컴포넌트 2(420)를 이용하여 새로운 프로그램 3을 생성할 수 있다(S530). 이때, 복수의 컴포넌트 선택이 입력된 경우, 프로그램 생성부(253)는 선택된 복수의 컴포넌트들을 결합하여 새로운 프로그램 3을 생성할 수 있다.
또한, 프로그램 생성부(253)는 프로그램 3을 생성하는 데 필요한 하나 이상의 신규 컴포넌트를 생성할 수도 있다. 그러면, 프로그램 생성부(253)는 생성한 신규 컴포넌트와 선택된 컴포넌트를 결합하여 새로운 프로그램 3을 생성할 수도 있다.
지금까지 도 4에서는 하나의 프로그램이 로딩된 경우에 개발자 인터페이스를 통해 새로운 프로그램을 생성하는 과정에 대해 설명하였다. 이하에서는, 도 5를 참조하여, 복수의 프로그램이 로딩된 경우에 개발자 인터페이스를 통해 새로운 프로그램을 생성하는 과정에 대해 설명하기로 한다.
도 5는 본 발명의 일실시예에 따라 커뮤니케이션 버스를 통해 공유되는 복수의 컴포넌트들을 이용하여 새로운 프로그램을 생성하는 방법을 설명하기 위해 제공되는 흐름도이다.
도 5에 따르면, 프로그램 로딩부(240)는 등록된 컴포넌트들을 구성하는 복수의 프로그램을 로딩할 수 있다. 일례로, 프로그램 1(4100)이 로딩된 경우, 프로그램 로딩부(240)는 프로그램 1(4100)에 프로그램 2(4200)를 로딩할 수 있다(S610). 즉, 프로그램 로딩부(240)는 프로그램 1(4100)을 메인으로 실행하는 런쳐(Launcher)에서 프로그램 2(4200)를 부가적으로 실행할 수 있다.
그러면, 인터페이스 노출부(251)는 로딩된 프로그램 1(4100)을 구성하는 컴포넌트와 프로그램 2(4200)를 구성하는 컴포넌트를 개발자 인터페이스를 통해 노출할 수 있다(S620). 여기서, 개발자 인터페이스로는, XML 기반의 동적 개발자 인터페이스가 이용될 수 있다.
일례로, 인터페이스 노출부(251)는 제1 내지 제4 컴포넌트(410~440)를 개발자 인터페이스를 통해 개발자에게 노출할 수 있다. 이때, 노출되는 컴포넌트의 타입은 동적 라이브러리(DLL) 및 실행 프로그램(EXE) 중 어느 하나일 수 있다.
이어, 컴포넌트 선택부(252)는 노출된 컴포넌트들 중에서 하나 이상의 컴포넌트 선택을 입력 받을 수 있다.
그러면, 프로그램 생성부(252)는 선택된 컴포넌트를 이용하여 새로운 프로그램을 생성할 수 있다(S630). 일례로, 컴포넌트 2 및 컴포넌트 3이 선택된 경우, 프로그램 생성부(252)는 컴포넌트 2 및 3을 결합하여 프로그램 3을 생성할 수 있다.
이때, 프로그램 생성부(252)는 프로그램 3을 생성하는 데 필요한 신규 컴포넌트를 생성할 수도 있다. 그러면, 프로그램 생성부(253)는 생성한 신규 컴포넌트와 선택된 컴포넌트들을 결합하여 새로운 프로그램 3을 생성할 수도 있다. 이에 따라, 개발자가 실행 중인 프로그램에 로딩된 컴포넌트들을 제어하는 개발자 인터페이스를 제공하고, 개발자 인터페이스를 통해 선택된 컴포넌트들을 결합하여 새로운 프로그램을 생성함에 따라 컴포넌트를 재사용할 수 있다.
이상에서 설명한 바와 같이, 프로그램을 구성하는 컴포넌트들은 웹 제어, 화면 크기 조정, 메신저 로그 정보, 디자인에 대한 모듈들로 구성될 수 있을 뿐만 아니라, 배경 음악 제어(Music Control), 화면의 스킨(skin) 변경, 버튼 제어(Button Control), 텍스트 제어(Text Control), 및 탭 제어(Tab Control)에 대한 모듈들로 구성될 수도 있다. 이에 따라, 개발자가 원하는 컴포넌트들을 선택하여 결합함으로써 새로운 프로그램을 쉽고 빠르게 생성할 수 있다.
한편, 본 발명의 일 실시예에 따른 개발자 인터페이스 시스템(200)에서, 등록된 컴포넌트들은 데이터를 직렬화(Serialize), 또는 암호화하여 커뮤니케이션 버스(300)를 통해 컴포넌트 공유부(220)로 전달할 수 있다. 그러면, 컴포넌트 공유부(220)는 직렬화 또는 암호화된 데이터를 다른 컴포넌트로 전달할 수 있다. 이때, 커뮤니케이션 버스(300)를 통해 직렬화 또는 암호화된 데이터를 수신한 컴포넌트는 데이터를 직렬화 해제 또는 복호화할 수 있다.
다른 한편, 이상에서는 신규로 컴포넌트를 등록하고, 커뮤니케이션 버스를 이용하여 등록된 컴포넌트와 기등록된 컴포넌트 간에 데이터를 공유하는 과정에 대해 설명하였으나, 이외에, 본 발명의 일 실시예에 따른 개발자 인터페이스 시스템(200)은 기등록된 컴포넌트 중에서 등록 해제를 요청한 컴포넌트를 해제하는 컴포넌트 등록 해제부를 더 포함할 수도 있다. 그러면, 기등록된 컴포넌트들은 등록이 해제된 컴포넌트와 더 이상 데이터를 공유하지 않을 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
200: 개발자 인터페이스 시스템
210: 컴포넌트 등록부
220: 컴포넌트 공유부
230: 등록 취소부
240: 프로그램 로딩부
250: 생성부
251: 인터페이스 노출부
252: 컴포넌트 선택부
253: 프로그램 생성부
300: 커뮤니케이션 버스

Claims (15)

  1. 복수의 컴포넌트들(Components)로 구성된 프로그램 1을 로딩하는 단계; 및
    상기 로딩된 프로그램 1을 구성하는 복수의 컴포넌트들 중 적어도 하나의 컴포넌트를 이용하여 프로그램 3을 생성하는 단계
    를 포함하는 개발자 인터페이스 제공 방법.
  2. 제1항에 있어서,
    상기 로딩된 프로그램 1과 컴포넌트를 공유하는 하나 이상의 프로그램 2를 로딩하는 단계
    를 더 포함하는 개발자 인터페이스 제공 방법.
  3. 제2항에 있어서,
    상기 프로그램 3을 생성하는 단계는,
    상기 프로그램 1을 구성하는 적어도 하나의 컴포넌트와 상기 프로그램 2를 구성하는 적어도 하나의 컴포넌트를 이용하여 상기 프로그램 3을 생성하는 것을 특징으로 하는 개발자 인터페이스 제공 방법.
  4. 제2항에 있어서,
    상기 로딩한 프로그램 1 및 2를 구성하는 복수의 컴포넌트들을 개발자 인터페이스를 통해 노출하는 단계
    를 더 포함하는 개발자 인터페이스 제공 방법.
  5. 제4항에 있어서,
    상기 프로그램 3을 생성하는 단계는,
    상기 개발자 인터페이스를 통해 노출된 프로그램 1 및 2를 구성하는 복수의 컴포넌트들 중 적어도 하나의 컴포넌트 선택을 입력 받는 단계; 및
    상기 선택을 입력 받은 적어도 하나의 컴포넌트들을 결합하여 상기 프로그램 3을 생성하는 단계
    를 포함하는 개발자 인터페이스 제공 방법.
  6. 제4항에 있어서,
    상기 개발자 인터페이스는, XML 기반의 동적 개발자 인터페이스인 것을 특징으로 하는 개발자 인터페이스 제공 방법.
  7. 제1항에 있어서,
    상기 컴포넌트의 타입은,
    동적 링크 라이브러리(Dynamic Linked Library: DLL) 및 실행 프로그램(Execute Program: EXE) 중 어느 하나인 것을 특징으로 하는 개발자 인터페이스 제공 방법.
  8. 제1항 내지 제7항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록 매체.
  9. 복수의 컴포넌트들(Components)로 구성된 프로그램 1을 로딩하는 프로그램 로딩부; 및
    상기 로딩된 프로그램 1을 구성하는 복수의 컴포넌트들 중 적어도 하나의 컴포넌트를 이용하여 프로그램 3을 생성하는 생성부
    를 포함하는 개발자 인터페이스 시스템.
  10. 제9항에 있어서,
    상기 프로그램 로딩부는,
    상기 로딩된 프로그램 1과 컴포넌트를 공유하는 하나 이상의 프로그램 2를 로딩하는 것을 특징으로 하는 개발자 인터페이스 시스템.
  11. 제10항에 있어서,
    상기 생성부는,
    상기 프로그램 1을 구성하는 적어도 하나의 컴포넌트와 상기 프로그램 2를 구성하는 적어도 하나의 컴포넌트를 이용하여 상기 프로그램 3을 생성하는 것을 특징으로 하는 개발자 인터페이스 시스템.
  12. 제10항에 있어서,
    상기 로딩한 프로그램 1 및 2를 구성하는 복수의 컴포넌트들을 개발자 인터페이스를 통해 노출하는 인터페이스 노출부
    를 더 포함하는 개발자 인터페이스 시스템.
  13. 제12항에 있어서,
    상기 생성부는,
    상기 개발자 인터페이스를 통해 노출된 프로그램 1 및 2를 구성하는 복수의 컴포넌트들 중 적어도 하나의 컴포넌트 선택을 입력 받는 컴포넌트 선택부; 및
    상기 선택을 입력 받은 적어도 하나의 컴포넌트들을 결합하여 상기 프로그램 3을 생성하는 프로그램 생성부
    를 포함하는 개발자 인터페이스 시스템.
  14. 제12항에 있어서,
    상기 개발자 인터페이스는, XML 기반의 동적 개발자 인터페이스인 것을 특징으로 하는 개발자 인터페이스 시스템.
  15. 제10항에 있어서,
    상기 컴포넌트의 타입은,
    동적 링크 라이브러리(Dynamic Linked Library: DLL) 및 실행 프로그램(Execute Program: EXE) 중 어느 하나인 것을 특징으로 하는 개발자 인터페이스 시스템.
KR1020100063582A 2010-07-01 2010-07-01 개발자 인터페이스 제공 방법 및 시스템 KR101059658B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020100063582A KR101059658B1 (ko) 2010-07-01 2010-07-01 개발자 인터페이스 제공 방법 및 시스템
US13/170,598 US8739117B2 (en) 2010-07-01 2011-06-28 Method and system for providing developer interface
JP2011147347A JP6190569B2 (ja) 2010-07-01 2011-07-01 開発者インタフェース提供方法およびシステム
JP2016025119A JP6267249B2 (ja) 2010-07-01 2016-02-12 開発者インタフェース提供方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100063582A KR101059658B1 (ko) 2010-07-01 2010-07-01 개발자 인터페이스 제공 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101059658B1 true KR101059658B1 (ko) 2011-08-25

Family

ID=44933801

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100063582A KR101059658B1 (ko) 2010-07-01 2010-07-01 개발자 인터페이스 제공 방법 및 시스템

Country Status (3)

Country Link
US (1) US8739117B2 (ko)
JP (2) JP6190569B2 (ko)
KR (1) KR101059658B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811353B1 (en) * 2010-07-29 2017-11-07 Crimson Corporation Remotely invoking dynamic classes on a computing device
US9665601B1 (en) 2010-12-16 2017-05-30 Crimson Corporation Using a member attribute to perform a database operation on a computing device
JP6174584B2 (ja) 2011-09-12 2017-08-02 エフ・イ−・アイ・カンパニー 視射角ミル
CN103577207B (zh) * 2012-08-01 2017-06-27 阿里巴巴集团控股有限公司 一种自定义界面系统中界面组件的加载方法和装置
US10037325B2 (en) 2012-08-06 2018-07-31 Gree, Inc. Display system, display method in the system and display program for increasing a conversion rate in a social networking environment
US10530894B2 (en) * 2012-09-17 2020-01-07 Exaptive, Inc. Combinatorial application framework for interoperability and repurposing of code components

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5818445A (en) * 1992-09-09 1998-10-06 Tandem Computers Incorporated Method and system for creating computer-program-based applications with developer specified look and feel
JPH11126162A (ja) * 1997-10-22 1999-05-11 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
DE69728766T2 (de) * 1997-10-27 2005-03-31 Sony Service Center (Europe) N.V. System von Programmobjekten und Programmkomponenten mit externer Schnittstelle
US7792947B1 (en) * 1999-04-26 2010-09-07 Mainstream Scientific, Llc Apparatus and method for dynamically coordinating the delivery of computer readable media
PE20020494A1 (es) * 2000-08-11 2002-06-18 Manugistics Inc Sistema y metodo para integrar redes dispares para usarse en la comunicacion y el comercio electronicos
FR2820221B1 (fr) * 2001-02-01 2004-08-20 Cimai Technology Procede et systeme pour gerer des executables a bibliotheques partagees
KR20020083187A (ko) * 2001-04-25 2002-11-02 (주) 그라비티 온라인 게임을 지원하는 인스턴트 메신저 구동서버 및온라인 게임 지원방법과 그 프로그램 소스를 저장한기록매체
JP2002358199A (ja) * 2001-05-31 2002-12-13 Shima Masahiko コンポーネントシステム及びコンポーネント作成方法
JP4086529B2 (ja) * 2002-04-08 2008-05-14 松下電器産業株式会社 画像処理装置及び画像処理方法
JP2005182419A (ja) * 2003-12-18 2005-07-07 Toshiba Solutions Corp コンポーネント処理システム及びコンポーネント処理方法
US8522205B2 (en) * 2004-05-18 2013-08-27 Oracle International Corporation Packaging multiple groups of read-only files of an application's components into multiple shared libraries
US7415704B2 (en) * 2004-05-20 2008-08-19 Sap Ag Sharing objects in runtime systems
US20050289265A1 (en) * 2004-06-08 2005-12-29 Daniel Illowsky System method and model for social synchronization interoperability among intermittently connected interoperating devices
US7278133B2 (en) * 2004-07-23 2007-10-02 Ntt Docomo, Inc. Index-based parameter access and software for using the same
US7503040B2 (en) * 2004-09-30 2009-03-10 International Business Machines Corporation Configuring a shared library to accommodate relocatable data in a pervasive device
US7657868B2 (en) * 2005-03-14 2010-02-02 Research In Motion Limited System and method for applying development patterns for component based applications
US7752253B2 (en) * 2005-04-25 2010-07-06 Microsoft Corporation Collaborative invitation system and method
GB0517357D0 (en) * 2005-08-25 2005-10-05 Corizon Ltd User interface generation
EP1960873B1 (en) * 2005-12-17 2013-02-27 Intel Corporation Installing and executing shared applications in shared folders
US7779385B2 (en) * 2006-05-10 2010-08-17 Oracle America, Inc. Method and system for automated component product integration
JP5014871B2 (ja) * 2006-05-16 2012-08-29 パナソニック株式会社 プログラム起動装置、プログラム起動方法、起動処理プログラム及び集積回路
GB2443846B (en) * 2006-11-15 2011-12-07 Joseph Timothy Poole Computing system
US7844949B2 (en) * 2006-12-14 2010-11-30 International Business Machines Corporation Computer method and apparatus for software configuration management repository interoperation
US8561024B2 (en) * 2007-01-23 2013-10-15 International Business Machines Corporation Developing software components and capability testing procedures for testing coded software component
US20080222599A1 (en) * 2007-03-07 2008-09-11 Microsoft Corporation Web services mashup designer
WO2008124560A1 (en) * 2007-04-05 2008-10-16 Sentillion, Inc. Augmenting a virtual machine hosting environment from within a virtual machine
US7984455B2 (en) * 2007-05-30 2011-07-19 Sony Ericsson Mobile Communications Ab Enhanced native contact book application
US8464212B2 (en) * 2007-07-27 2013-06-11 Canon Kabushiki Kaisha Method, apparatus and storage medium for customizing application
US20090183182A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Dynamic Composition of Virtualized Applications
US8108831B2 (en) * 2008-02-07 2012-01-31 Microsoft Corporation Iterative component binding
US20090260004A1 (en) * 2008-04-10 2009-10-15 Palm, Inc. Computer program updates for mobile computing device
JP2010039860A (ja) * 2008-08-06 2010-02-18 Toshiba Corp コンポーネントプログラム制御装置、コンポーネントプログラムを制御する方法及びプログラム
US8239856B2 (en) * 2008-10-27 2012-08-07 International Business Machines Corporation Sharing unresolved information between software components
US9417851B2 (en) * 2009-05-13 2016-08-16 Adobe Systems Incorporated Location-based application development for runtime environments
US7970850B1 (en) * 2009-12-29 2011-06-28 International Business Machines Corporation Instant messaging based virtual file system
GB201001728D0 (en) * 2010-02-03 2010-03-24 Skype Ltd Screen sharing
US8291408B1 (en) * 2010-03-10 2012-10-16 Google Inc. Visual programming environment for mobile device applications

Also Published As

Publication number Publication date
JP2012014700A (ja) 2012-01-19
JP2016076278A (ja) 2016-05-12
US8739117B2 (en) 2014-05-27
JP6267249B2 (ja) 2018-01-24
JP6190569B2 (ja) 2017-08-30
US20120005651A1 (en) 2012-01-05

Similar Documents

Publication Publication Date Title
JP6267249B2 (ja) 開発者インタフェース提供方法およびシステム
EP2815311B1 (en) Using an application cache to update resources of installed applications
US20140351954A1 (en) Providing limited versions of applications
JP2016511905A (ja) コンパイラベースの難読化
AU2016202576B2 (en) Techniques for evaluating applications through use of an auxiliary application
US20130173684A1 (en) Web applications having end-user data isolated in the local domain
CN102622212B (zh) 业务混搭的方法及系统
Gok et al. Building Hybrid Android Apps with Java and JavaScript: Applying Native Device APIs
JP2018527664A (ja) アプリケーションのコードを保護するためのシステムおよび方法
Fylaktopoulos et al. A distributed modular platform for the development of cloud based applications
Rellermeyer et al. Engineering the cloud from software modules
KR20150090930A (ko) 게임 장면을 공유하는 게임 방법 및 게임 시스템
KR20140069525A (ko) 통합개발환경을 이용한 ui 구현 방법
US8862984B1 (en) Data contracts for network page generation code
Mesfin et al. Towards end-user development of REST client applications on smartphones
US20240031630A1 (en) Platform-agnostic media framework
Schmid et al. Real-time collaboration through web applications: an introduction to the Toolkit for Web-based Interactive Collaborative Environments (TWICE)
KR101376322B1 (ko) 휴대 단말의 어플리케이션 설치 제어 방법, 이를 이용하는 휴대 단말 및 어플리케이션 제공 서버
De Silva et al. Distributed integrated development environment for mobile platforms
KR20110103888A (ko) 사용자 설정 포맷을 가지는 콘텐츠의 액세스 및 공유 시스템 및 이의 동작 방법
US8214499B2 (en) System and method for enabling software applications as a service in a non-intrusive manner
CN108139950B (zh) 分布式扩展执行的方法及计算系统
CN115756426A (zh) 一种页面获取方法、装置、设备、存储介质及产品
Ye et al. A mashup platform for lightweight application integration
KR101105946B1 (ko) 버스를 이용한 컴포넌트 추가 방법 및 시스템

Legal Events

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

Payment date: 20140703

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160628

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170628

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180626

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 9