KR20140121101A - 분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법 - Google Patents

분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법 Download PDF

Info

Publication number
KR20140121101A
KR20140121101A KR1020130037328A KR20130037328A KR20140121101A KR 20140121101 A KR20140121101 A KR 20140121101A KR 1020130037328 A KR1020130037328 A KR 1020130037328A KR 20130037328 A KR20130037328 A KR 20130037328A KR 20140121101 A KR20140121101 A KR 20140121101A
Authority
KR
South Korea
Prior art keywords
build
native
server
dispatcher
build server
Prior art date
Application number
KR1020130037328A
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 KR1020130037328A priority Critical patent/KR20140121101A/ko
Publication of KR20140121101A publication Critical patent/KR20140121101A/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
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • 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
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Landscapes

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

Abstract

본 발명은 분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법에 관한 것으로, 클라우드 빌드 시스템의 디스패쳐에서 분산 빌드하는 방법은, 웹 앱을 수신하고, 적용할 운영체제의 종류를 확인하고, 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색하고, 검색된 빌드 서버 중에서 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택하고, 선택된 빌드 서버로 웹 앱을 송신하여 네이티브 앱의 생성을 요청하고, 빌드 서버로부터 생성된 네이티브 앱을 수신하면, 웹 앱을 송신한 사용자에게 수신한 네이티브 앱을 송신한다.

Description

분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법{Cloud build system and method using the dispatcher and the dispatcher for distributed builds}
본 발명은 웹 앱을 네이티브 앱으로 생성하는 기술에 관한 것으로, 특히, 클라우드 빌드 시스템을 통해 웹 앱을 개발자가 원하는 다양한 운영체제에 대응하는 네이티브 앱으로 생성할 때, 네이티브 앱을 생성하는 빌드 서버를 효과적으로 선택하여 네이티브 앱을 분산하여 생성하는 기술이다.
본 발명은 지식경제부 및 한국산업기술평가관리원의 산업융합원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호 : 10041707, 과제명 : 두 개 이상의 웹 앱(APP)을 추가 개발없이 즉시 조합하여 기능 확장된 앱을 생성·실행하는 서비스 지원 소프트웨어 개발].
최근, 스마트 폰(smart phone)이 널리 보급되면서, 스마트 폰에서 사용할 수 있는 다양한 앱(application)들에 대한 관심이 증폭되고 있다.
이와 관련하여 스마트 폰 제조사나 모바일 서비스 업체는 스마트 폰에서 구동 가능한 다양한 앱을 사용자들이 손쉽게 구매할 수 있도록 하는 앱 스토어(store)를 운영하고 있다.
이러한 앱 스토어는 개발자가 앱을 개발하여 이를 스토어에 등록하면, 구매자가 앱 스토어에 접속하여 무료 또는 유료로 상기 앱을 다운로드 받는 형식으로 운영되고 있다.
최근에는 오픈 소스(open source) 형태의 스마트 폰 운영체제(operation system)가 등장하고, 이에 따라 일반인들도 다양한 앱들을 손쉽게 개발할 수 있게 됨으로써, 앱 스토어의 규모가 매우 커지고 있다.
이렇게 앱 스토어의 규모가 커지면서, 앱 개발에 대한 관심도 증가하고 있다. 그러나 무엇보다 앱 시장이 커지면서 다양한 사람들이 다양한 디바이스로 동일한 서비스를 제공받기를 원하고 있어, 기존 개발 방법으로는 더 이상 비용과 시간이라는 측면에서 사용자들을 만족시키기가 점점 불가능한 일이 되고 있다.
다양한 디바이스로 동일한 서비스를 제공받을 수 있는 대안으로는 웹 표준 기술을 이용하는 방법이다. HTML5로 대표되는 차세대 웹 표준 기술은 이제 그 어떤 플랫폼보다 더 다양하고 광범위한 기능을 제공할 뿐만 아니라 지금도 지속적으로 새로운 기능을 추가하고 있다. 텍스트와 이미지 그리고 문서간 링크 서비스 정도만을 지원하던 웹 기술은 이제 2D, 3D, 벡터 그래픽은 물론 고화질 동영상, 사운드, 고속 동기 통신 프로토콜, 데이터베이스 그리고 하루가 다르게 발전하는 자바스크립트 엔진 등 수많은 기능들을 개발자들에게 제공한다. 따라서 표준 기술을 지원하는 브라우저만 있다면 단 한 벌의 코드만으로 다양한 디바이스에서 실행되는 고품질의 앱을 개발할 수 있는 최상의 개발 솔루션으로서의 면모를 갖춰가고 있다.
반면, 디바이스에서 제공되는 SDK 환경에서 개발된 각각의 운영체제에서만 동작하는 네이티브 앱은 많은 장점에도 불구하고 앞서 설명된 성능 외적 요인으로 인한 단점을 노출하고 있다. 그러나 현실적인 문제는 웹 기술이 많은 발전을 했음에도 불구하고 단기간 내에 네이티브 앱 마켓이 사라지진 않을 것이란 것이다. 이는 그 자체로서 거대한 시장이고 지금도 계속 성장하고 있으며 사용자들에게 최상의 환경을 제공하고 있기 때문에 대부분의 사람들은 유사한 서비스가 웹으로 제공된다고 하더라도 접근성이 우월한 웹 스토어를 결코 떠나지 않을 것이다. 따라서 네이티브 기술과 웹 기술을 접목시킨 하이브리드 앱 개발 기술이 이 어려운 문제의 해결책을 제공할 수 있다.
하이브리드 앱 개발 플랫폼 중 2009년 초 공개된 하이브리드 앱 개발 프레임워크인 'Phone Gap'은 HTML로 만들어진 웹페이지를 아이폰 앱으로 만들어주는 기술로서, 단지 앱 스토어에 올릴 수 있을 뿐만 아니라 아이폰의 카메라를 사용할 수 있으며, 주소록에 접근하고, GPS 센서의 위치 정보를 자바스크립트를 통해서 받아올 수 있는 퍼포먼스를 보여준다. 그러나 상기 'Phone Gap'의 경우 브라우저 컴포넌트를 사용하여 웹 앱 파일을 구동시키는 구조로 인해 구현과 확장이 용이하지만 브라우저로 웹 앱을 구동시키는 것과 완전히 동일한 형태이기 때문에 웹 앱이 갖는 미묘한 성능 문제를 피할 수 없다는 게 단점이다.
이를 해결하기 위해 하이브리드 앱 개발 플랫폼 중 'Titanium'은 웹 기술을 이용하여 네이티브 앱을 개발하는 방식을 이용하고 있다. 즉, 개발언어는 HTML, 자바스크립트지만 결과물은 네이티브인 방식이다. 이 방식의 장점은 근본적으로 네이티브 자원을 활용해 네이티브와 동일한 성능을 보여 줄 수 있다는데 있다. 그러나 모바일 플랫폼과 데스크탑 플랫폼의 차이가 매우 크기 때문에 'Titanium'의 경우 동일한 개발 환경을 제공하지 못하고 있으며, 모바일용, 데스크탑용 API가 각각 존재한다.
하이브리드 앱 개발 플랫폼 중 가장 최근에 발표된 'Appspresso'는 이클립스 기반의 통합 IDE를 제공하고 jQueryMobile, Sencha Touch 등 모바일 자바스크립트 프레임워크 템플릿 생성 도구 및 이동통신사 중심의 웹앱 표준인 WAC Waikiki API를 지원한다. 'Appspresso'는 기본적으로 'Phone Gap'과 동일한 구조를 가진다. 즉 웹 앱을 네이티브로 만들기 위해 브라우저 컴포넌트에 의존하는 형태이다. 그러나 'Appspresso'는 플랫폼 별 프로젝트 템플릿의 형태로 제공되는 'Phone Gap'과 다르게 통합 개발 환경을 제공해 개발 편리성을 매우 높였으며, 디바이스 자원에 접근하기 위해 제공되는 자바스크립트 인터페이스, 즉 디바이스 API로 WAC의 Waikiki API를 지원하여, WAC API로 개발된 웹앱을 코드 수정없이 'Appspresso'을 이용해 iOS나 안드로이드 네이티브 앱으로 만들 수 있다.
하지만, 웹 앱을 여러 운영체제의 네이티브 앱으로 변환하는 방법은 제공하는 컴파일러 별로 처리 가능한 운영체제의 종류가 한정적이어서 일반 개인 개발자가 웹 앱을 여러 운영체제 각각의 네이티브 앱으로 변환하는 것은 쉬운 일이 아니다.
따라서, 웹 앱을 사용자가 원하는 네이티브 앱으로 빠르고 손쉽게 변환하는 시스템이 요구된다.
종래의 하이브리드 앱 개발 기술의 한 예로, 한국공개특허 제2013-0017337호 "하이브리드 앱 개발 플랫폼 구조 및 그 테스트 방법, 그리고 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체"이 제안되었다. 상기 선행기술에서는 테스트를 위한 단말기(타겟 장치)에 런 타임(run time) 모듈을 구축한 후에, 최초 1회만 설치되는 앱에서 IP 및 포트 정보를 제공하여 설치 후, 서버를 통한 접속을 통해 계속적으로 수정되는 소스를 빌드에 단지 1회의 설치로 수정된 소스를 설치된 앱에 반영하여 개발된 앱의 테스트 시간을 줄일 수 있는 하이브리드 앱 개발 플랫폼 구조 및 그 테스트 방법이 개시되었다.
종래의 하이브리드 앱 개발 기술은 1회 설치후 단말기에서는 별도의 업데이트가 필요없는 기술에 관한 것으로서, 하이브리드 앱의 개발에 관하여 설명하고는 있으나, 개발자는 웹 앱을 네이티브 앱으로 변환하는 기술을 숙지하고, 시스템을 제어하여 변환해야 했다.
따라서, 개인 개발자가 웹 앱을 개발자가 원하는 네이티브 앱으로 빠르고 손쉽게 변환하는 시스템이 요구된다.
한국공개특허 제2013-0017337호 (공개일 2013.02.20)
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법을 제공하는 것을 목적으로 한다.
구체적으로, 본 발명은 클라우드 빌드 시스템을 통해 웹 앱을 개발자가 원하는 다양한 운영체제에 대응하는 네이티브 앱으로 생성할 때, 빌드 서버를 분산하여 네이티브 앱을 생성하는 기술을 제공하는 것을 목적으로 한다.
또한, 본 발명은 웹 앱을 수신하면 적용할 운영체제의 종류를 확인하고, 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색하고, 검색된 빌드 서버 중에서 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택하고, 선택된 빌드 서버로 웹 앱을 송신하여 네이티브 앱의 생성을 요청하는 클라우드 빌드 시스템의 디스패쳐를 제공하는 것을 목적으로 한다.
또한, 본 발명은 웹 앱을 수신하면 적용할 운영체제의 종류를 확인하고, 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 검색되지 않으면, 확인된 운영체제의 종류 별로 각각 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택하고, 확인된 운영체제의 종류별로 선택된 빌드 서버로 웹 앱을 송신하여 확인된 운영체제의 종류별로 네이티브 앱을 생성하도록 요청하는 클라우드 빌드 시스템의 디스패쳐를 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 적어도 하나의 빌드 서버 및 디스패쳐를 포함하는 클라우드 빌드 시스템은, 웹 앱을 수신하고, 적용할 운영체제의 종류를 확인하고, 상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색하고, 상기 검색된 빌드 서버 중에서 상기 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택하고, 상기 선택된 빌드 서버로 상기 웹 앱을 송신하여 네이티브 앱의 생성을 요청하는 상기 디스패쳐; 및 상기 디스패쳐로부터 상기 웹 앱을 수신하면, 상기 웹 앱을 상기 확인된 운영체제의 종류 각각에 대응하는 네이티브 앱으로 생성하는 상기 빌드 서버를 포함한다.
이때, 상기 디스패쳐는, 상기 빌드 서버로부터 상기 생성된 네이티브 앱을 수신하면, 상기 웹 앱을 송신한 사용자에게 상기 수신한 네이티브 앱을 송신할 수 있다.
이때, 상기 디스패쳐는, 상기 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택할 때, 상기 검색된 빌드 서버 중에서 네이티브 앱을 생성하기 위한 대기 리스트가 가장 짧은 빌드 서버를 선택할 수 있다.
이때, 상기 디스패쳐는, 상기 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택할 때, 각 빌드 서버의 네이티브 앱을 생성하기 위한 대기 리스트, 상기 각 빌드 서버에서 네이티브 앱을 생성하는 처리하는 속도, 각 빌드 서버에 부여된 사용자의 우선순위 또는 상기 각 빌드 서버에서 상기 사용자가 원하는 컴파일 기법으로 네이티브 앱을 생성할 수 있는지 여부 중에서 적어도 하나를 고려하여 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택할 수 있다.
이때, 상기 디스패쳐는, 상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 검색되지 않으면, 상기 확인된 운영체제의 종류 별로 각각 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택하고, 상기 확인된 운영체제의 종류별로 선택된 빌드 서버로 상기 웹 앱을 송신하여 상기 확인된 운영체제의 종류별로 네이티브 앱을 생성하도록 요청할 수 있다.
본 발명의 일 실시 예에 따른 분산 빌드를 제어하는 클라우드 빌드 시스템의 디스패쳐는, 웹 앱을 수신하고, 적용할 운영체제의 종류를 적어도 하나 확인하는 빌드 요청 수신부; 상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색하는 빌드 서버 검색부; 상기 검색된 빌드 서버 중에서 상기 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택하는 빌드 서버 선택부; 및 상기 선택된 빌드 서버로 상기 웹 앱을 송신하고, 상기 선택된 빌드 서버로부터 상기 웹 앱을 이용하여 생성된 네이티브 앱을 적어도 하나 수신하는 빌드 처리부를 포함한다.
이때, 상기 빌드 서버 선택부는, 상기 검색된 빌드 서버 중에서 네이티브 앱을 생성하기 위한 대기 리스트가 가장 짧은 빌드 서버를 선택할 수 있다.
이때, 상기 빌드 서버 선택부는, 각 빌드 서버의 네이티브 앱을 생성하기 위한 대기 리스트, 상기 각 빌드 서버에서 네이티브 앱을 생성하는 처리하는 속도, 각 빌드 서버에 부여된 사용자의 우선순위 또는 상기 각 빌드 서버에서 상기 사용자가 원하는 컴파일 기법으로 네이티브 앱을 생성할 수 있는지 여부 중에서 적어도 하나를 고려하여 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택할 수 있다.
이때, 상기 빌드 처리부는, 상기 웹 앱을 송신한 사용자에게 상기 수신된 네이티브 앱을 송신할 수 있다.
이때, 상기 빌드 요청 수신부는, 상기 웹 앱을 송신한 사용자로부터 수신하여 상기 적용할 운영체제의 종류를 확인하거나 또는 상기 웹 앱의 기설정 영역에 기재된 정보를 통해 상기 적용할 운영체제의 종류를 확인할 수 있다.
이때, 상기 빌드 서버 검색부는 상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 검색되지 않으면, 상기 확인된 운영체제의 종류 각각을 처리할 수 있는 빌드 서버를 검색하고, 상기 빌드 서버 선택부는 상기 확인된 운영체제의 종류 별로 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택할 수 있다.
본 발명의 일 실시 예에 따른 클라우드 빌드 시스템의 디스패쳐에서 분산 빌드하는 방법은, 웹 앱을 수신하는 단계; 적용할 운영체제의 종류를 적어도 하나 확인하는 단계; 상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색하는 단계; 상기 검색된 빌드 서버 중에서 상기 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택하는 단계; 상기 선택된 빌드 서버로 상기 웹 앱을 송신하는 단계; 및 상기 선택된 빌드 서버로부터 상기 웹 앱을 이용하여 생성된 네이티브 앱을 적어도 하나 수신하는 단계를 포함한다.
이때, 상기 빌드 서버를 선택하는 단계는, 상기 검색된 빌드 서버 중에서 네이티브 앱을 생성하기 위한 대기 리스트가 가장 짧은 빌드 서버를 선택할 수 있다.
이때, 상기 빌드 서버를 선택하는 단계는, 각 빌드 서버의 네이티브 앱을 생성하기 위한 대기 리스트, 상기 각 빌드 서버에서 네이티브 앱을 생성하는 처리하는 속도, 각 빌드 서버에 부여된 사용자의 우선순위 또는 상기 각 빌드 서버에서 상기 사용자가 원하는 컴파일 기법으로 네이티브 앱을 생성할 수 있는지 여부 중에서 적어도 하나를 고려하여 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택할 수 있다.
이때, 상기 웹 앱을 송신한 사용자에게 상기 수신된 네이티브 앱을 송신하는 단계를 더 포함할 수 있다.
이때, 상기 적용할 운영체제의 종류를 확인하는 단계는, 상기 웹 앱을 송신한 사용자로부터 수신하여 확인하거나 또는 상기 웹 앱의 기설정 영역에 기재된 정보를 통해 확인할 수 있다.
이때, 상기 빌드 서버를 검색하는 단계는, 상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 검색되지 않으면, 상기 확인된 운영체제의 종류 각각을 처리할 수 있는 빌드 서버를 검색할 수 있다. 그리고, 상기 빌드 서버를 선택하는 단계는, 상기 확인된 운영체제의 종류 별로 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택할 수 있다.
본 발명은 웹 앱을 수신하면 적용할 운영체제의 종류를 확인하고, 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색하고, 검색된 빌드 서버 중에서 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택하고, 선택된 빌드 서버로 웹 앱을 송신하여 네이티브 앱의 생성을 요청하는 분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법에 관한 것으로, 개발자는 네이티브 앱을 생성하는 기술을 숙지하지 않아도 된다. 또한, 웹 앱을 네이티브 앱으로 생성하는 작업을 분산해서 처리하기 때문에 보다 빠른 생성이 가능하다.
도 1은 본 발명의 일 실시예에 따른 클라우드 분산 시스템의 개략적인 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 클라우드 분산 시스템의 디스패쳐의 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 디스패쳐에서 웹 앱을 네이티브 앱으로 분산 빌드하는 일 예를 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 디스패쳐에서 웹 앱을 네이티브 앱으로 분산 빌드하는 다른 예를 도시한 흐름도이다.
상기 목적 외에 본 발명의 다른 목적 및 특징들은 첨부 도면을 참조한 실시 예에 대한 설명을 통하여 명백히 드러나게 될 것이다.
본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서는, 본 발명의 일 실시 예에 따른 분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법을 첨부된 도 1 내지 도 4를 참조하여 상세히 설명한다.
상세한 설명에 앞서 본 발명에서 웹 앱이란 웹에서 실행될 수 있는 어플리케이션을 의미하고, 네이티브 앱이란 특정 운영체제에서만 동작하는 어플리케이션을 의미한다.
도 1은 본 발명의 일 실시예에 따른 클라우드 분산 시스템의 개략적인 구성을 도시한 도면이다.
도 1을 참조하면, 클라우드 분산 시스템(100)은 디스패쳐(dispatcher)(110), 서브버전(SVN; Sebversion)(130) 및 빌드 서버(160, 170, 180)들을 포함할 수 있다.
SVN(130)은 자유 소프트웨어 버전 관리 시스템을 나타내며, 소프트웨어의 버전을 관리하고, 팀이 같이 코드를 관리할 수 있게 해주는 등의 기능을 가진 시스템이다. 본 발명에 따라 사용자(120) 또는 사용자(120)가 포함된 팀에서 개발한 웹 앱을 저장할 수 있다.
디스패쳐(110)는 사용자(120) 또는 SVN(130)으로부터 웹 앱을 수신하고, 적용할 운영체제의 종류를 확인하고, 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색하고, 검색된 빌드 서버 중에서 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택하고, 선택된 빌드 서버로 웹 앱을 송신하여 네이티브 앱의 생성을 요청한다.
디스패쳐(110)는 빌드 서버로부터 생성된 네이티브 앱을 수신하면, 웹 앱을 송신한 사용자(120) 또는 SVN(130)으로 수신한 네이티브 앱을 송신한다.
디스패쳐(110)는 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택할 때, 사용자(120)가 요구하는 모든 종류의 네이티브 앱으로 변환 가능한 빌드 서버 중에서 네이티브 앱을 생성하기 위한 대기 리스트가 가장 짧은 빌드 서버를 선택할 수 있다.
다른 방법으로, 디스패쳐(110)는 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택할 때, 각 빌드 서버의 네이티브 앱을 생성하기 위한 대기 리스트, 각 빌드 서버에서 네이티브 앱을 생성하는 처리하는 속도, 각 빌드 서버에 부여된 사용자의 우선순위 또는 각 빌드 서버에서 사용자가 원하는 컴파일 기법으로 네이티브 앱을 생성할 수 있는지 여부 중에서 적어도 하나를 고려하여 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택할 수 있다. 이때, 빌드 서버에서 사용하는 대표적인 컴파일 기법에는 'Phone Gap', 'Titanium' 또는 'Appspresso' 등이 있다.
한편, 디스패쳐(110)는 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 검색되지 않으면, 확인된 운영체제의 종류 별로 각각 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택하고, 확인된 운영체제의 종류별로 선택된 빌드 서버로 웹 앱을 송신하여 확인된 운영체제의 종류별로 네이티브 앱을 생성하도록 요청할 수 있다.
빌드 서버(160, 170, 180)는 디스패쳐(110)로부터 웹 앱을 수신하면, 대기 리스트(162, 172, 182)에 저장하고, 대기 리스트(162, 172, 182)에 저장된 순서대로 웹 앱을 확인된 운영체제의 종류 각각에 대응하는 네이티브 앱으로 생성한다.
빌드 서버(160, 170, 180)에서 웹 앱을 네이티브 앱으로 생성하는 방법은 웹 앱이 각 운영체제에서 동작하도록 포장하는 것을 의미할 수 있다.
한편, 빌드 서버(160, 170, 180)에서 네이티브 앱으로 생성하는 웹 앱은 하나일 수도 있지만 복수의 웹 앱으로 구성될 수도 있다. 즉, 빌드 서버(160, 170, 180)에서 복수의 웹 앱을 묶어서 하나의 네이티브 앱으로 생성할 수도 있다.
한편, 클라우드 분산 시스템(100)은 웹 앱을 이용하여 네이티브 앱으로 생성하는 것 외에도, 네이티브 앱을 다른 종류의 운영체제에서 동작하는 네이티브 앱으로 생성할 수도 있다
따라서, 디스패쳐(dispatcher)(110)는 사용자(120) 또는 SVN(130)으로부터 네이티브 앱을 수신하고, 수신한 네이티브 앱을 빌드 서버(160, 170, 180)들 중 적어도 하나로 송신하여 다른 종류의 운영체제에서 동작하는 네이티브 앱을 생성할 것을 요청할 수도 있다.
도 2는 본 발명의 일 실시예에 따른 클라우드 분산 시스템의 디스패쳐의 구성을 도시한 도면이다.
도 2를 참조하면, 디스패쳐(110)는 제어부(210), 빌드 요청 수신부(212), 빌드 서버 검색부(214), 빌드 서버 선택부(216), 빌드 처리부(218), 통신부(220), 입력부(230) 및 저장부(240)를 포함할 수 있다.
통신부(220)는 유선 또는 무선으로 데이터를 송수신한다. 통신부(220)는 사용자(120), SVN(130) 및 빌드 서버(160, 170, 180)들과 통신하여 웹 앱과 네이티브 앱을 송수신한다.
입력부(230)는 디스패쳐(110)의 사용자와의 인터페이스를 제공하는 장치로서, 사용자의 입력을 수신한다. 본 발명의 실시예에 따라 입력부(230)는 디스패쳐(110)의 사용자로부터 웹 앱을 적용할 운영체제의 종류를 입력받을 수 있다.
저장부(240)는 디스패쳐(110)의 전반적인 동작을 제어하기 위한 운영체제 및 응용 프로그램을 저장하고, 또한 본 발명에 따라 요청받은 웹 앱과 생성된 네이티브 앱을 저장 할 수 있다.
빌드 요청 수신부(212)는 사용자(120) 또는 SVN(130)으로부터 웹 앱을 수신하고, 적용할 운영체제의 종류를 적어도 하나 확인할 수 있다. 이때, 적용할 운영체제의 종류는 웹 앱을 송신한 사용자로(120)부터 입력부(230)를 통해 수신하여 확인하거나 또는 웹 앱의 기설정 영역에 기재된 정보를 통해 적용할 운영체제의 종류를 확인할 수 있다.
빌드 서버 검색부(214)는 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색한다.
빌드 서버 검색부(214)는 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 검색되지 않으면, 확인된 운영체제의 종류 각각을 처리할 수 있는 빌드 서버를 검색할 수 있다.
빌드 서버 선택부(216)는 검색된 빌드 서버 중에서 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택한다.
이때, 빌드 서버 선택부(216)는 검색된 빌드 서버 중에서 네이티브 앱을 생성하기 위한 대기 리스트가 가장 짧은 빌드 서버를 선택할 수 있다.
다른 방법으로, 빌드 서버 선택부(216)는 각 빌드 서버의 네이티브 앱을 생성하기 위한 대기 리스트, 각 빌드 서버에서 네이티브 앱을 생성하는 처리하는 속도, 각 빌드 서버에 부여된 사용자의 우선순위 또는 각 빌드 서버에서 사용자가 원하는 컴파일 기법으로 네이티브 앱을 생성할 수 있는지 여부 중에서 적어도 하나를 고려하여 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택할 수도 있다.
한편, 빌드 서버 검색부(214)의 확인결과 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 검색되지 않으면, 빌드 서버 선택부(216)는 확인된 운영체제의 종류 별로 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택할 수 있다.
빌드 처리부(218)는 선택된 빌드 서버로 웹 앱을 송신하고, 선택된 빌드 서버로부터 웹 앱을 이용하여 생성된 네이티브 앱을 적어도 하나 수신한다.
빌드 처리부(218)는 웹 앱을 송신한 사용자(120) 또는 SVN(130)으로 수신된 네이티브 앱을 송신한다.
제어부(210)는 디스패쳐(110)의 전반적인 동작을 제어할 수 있다. 그리고, 제어부(210)는 빌드 요청 수신부(212), 빌드 서버 검색부(214), 빌드 서버 선택부(216) 및 빌드 처리부(218)의 기능을 수행할 수 있다. 제어부(210), 빌드 요청 수신부(212), 빌드 서버 검색부(214), 빌드 서버 선택부(216) 및 빌드 처리부(218)를 구분하여 도시한 것은 각 기능들을 구별하여 설명하기 위함이다. 따라서 제어부(210)는 빌드 요청 수신부(212), 빌드 서버 검색부(214), 빌드 서버 선택부(216) 및 빌드 처리부(218) 각각의 기능을 수행하도록 구성된(configured) 적어도 하나의 프로세서를 포함할 수 있다. 또한, 제어부(210)는 빌드 요청 수신부(212), 빌드 서버 검색부(214), 빌드 서버 선택부(216) 및 빌드 처리부(218) 각각의 기능 중 일부를 수행하도록 구성된(configured) 적어도 하나의 프로세서를 포함할 수 있다.
이하, 상기와 같이 구성된 본 발명에 따른 방법을 아래에서 도면을 참조하여 설명한다.
도 3은 본 발명의 일 실시예에 따른 디스패쳐에서 웹 앱을 네이티브 앱으로 분산 빌드하는 일 예를 도시한 흐름도이다.
도 3을 참조하면, 디스패쳐(110)는 사용자 또는 SVN으로부터 네이티브 앱으로 생성할 웹 앱을 수신한다(S310).
그리고, 디스패쳐(110)는 웹 앱을 적용할 운영체제의 종류를 적어도 하나 확인한다(S312). 이때, 디스패쳐(110)는 웹 앱을 송신한 사용자로부터 수신하여 적용할 운영체제의 종류를 확인하거나 또는 웹 앱의 기설정 영역에 기재된 정보를 통해 적용할 운영체제의 종류를 확인할 수 있다.
그리고, 디스패쳐(110)는 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색한다(S314).
그리고, 디스패쳐(110)는 검색된 빌드 서버 중에서 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택한다(S316). 이때, 디스패쳐(110)는 검색된 빌드 서버 중에서 네이티브 앱을 생성하기 위한 대기 리스트가 가장 짧은 빌드 서버를 선택할 수 있다. 다른 방법으로, 디스패쳐(110)는 각 빌드 서버의 네이티브 앱을 생성하기 위한 대기 리스트, 각 빌드 서버에서 네이티브 앱을 생성하는 처리하는 속도, 각 빌드 서버에 부여된 사용자의 우선순위 또는 각 빌드 서버에서 사용자가 원하는 컴파일 기법으로 네이티브 앱을 생성할 수 있는지 여부 중에서 적어도 하나를 고려하여 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택할 수도 있다.
그리고, 디스패쳐(110)는 선택된 빌드 서버로 웹 앱을 송신하여 네이티브 앱의 생성을 요청한다(S322). 이후, 디스패쳐(110)는 선택된 빌드 서버로부터 웹 앱을 이용하여 생성된 네이티브 앱을 적어도 하나 수신하면(S324), 웹 앱을 송신한 사용자 또는 SVN으로 수신된 네이티브 앱을 송신한다(S326).
도 4는 본 발명의 일 실시예에 따른 디스패쳐에서 웹 앱을 네이티브 앱으로 분산 빌드하는 다른 예를 도시한 흐름도이다.
도 4를 참조하면, 디스패쳐(110)는 사용자 또는 SVN으로부터 네이티브 앱으로 생성할 웹 앱을 수신한다(S410).
그리고, 디스패쳐(110)는 웹 앱을 적용할 운영체제의 종류를 적어도 하나 확인한다(S412). 이때, 디스패쳐(110)는 웹 앱을 송신한 사용자로부터 수신하여 적용할 운영체제의 종류를 확인하거나 또는 웹 앱의 기설정 영역에 기재된 정보를 통해 적용할 운영체제의 종류를 확인할 수 있다.
그리고, 디스패쳐(110)는 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 존재하는지 검색한다(S414).
S414단계의 검색결과 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 존재하면, 디스패쳐(110)는 검색된 빌드 서버 중에서 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택한다(S416). 이때, 디스패쳐(110)는 검색된 빌드 서버 중에서 네이티브 앱을 생성하기 위한 대기 리스트가 가장 짧은 빌드 서버를 선택할 수 있다. 다른 방법으로, 디스패쳐(110)는 각 빌드 서버의 네이티브 앱을 생성하기 위한 대기 리스트, 각 빌드 서버에서 네이티브 앱을 생성하는 처리하는 속도, 각 빌드 서버에 부여된 사용자의 우선순위 또는 각 빌드 서버에서 사용자가 원하는 컴파일 기법으로 네이티브 앱을 생성할 수 있는지 여부 중에서 적어도 하나를 고려하여 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택할 수도 있다.
S414단계의 검색결과 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 존재하지 않으면, 디스패쳐(110)는 확인된 운영체제의 종류 각각을 처리할 수 있는 빌드 서버를 검색한다(S418).
그리고, 디스패쳐(110)는 확인된 운영체제의 종류 별로 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택한다(S420).
S416단계 또는 S420단계 이후, 디스패쳐(110)는 선택된 빌드 서버로 웹 앱을 송신하여 네이티브 앱의 생성을 요청한다(S422). 이후, 디스패쳐(110)는 선택된 빌드 서버로부터 웹 앱을 이용하여 생성된 네이티브 앱을 적어도 하나 수신하면(S424), 웹 앱을 송신한 사용자 또는 SVN으로 수신된 네이티브 앱을 송신한다(S426).
본 발명의 일 실시 예에 따른 클라우드 빌드 시스템 및 디스패쳐에서 분산 빌드하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (18)

  1. 적어도 하나의 빌드 서버 및 디스패쳐를 포함하는 클라우드 빌드 시스템에 있어서,
    웹 앱을 수신하고, 적용할 운영체제의 종류를 확인하고, 상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색하고, 상기 검색된 빌드 서버 중에서 상기 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택하고, 상기 선택된 빌드 서버로 상기 웹 앱을 송신하여 네이티브 앱의 생성을 요청하는 상기 디스패쳐; 및
    상기 디스패쳐로부터 상기 웹 앱을 수신하면, 상기 웹 앱을 상기 확인된 운영체제의 종류 각각에 대응하는 네이티브 앱으로 생성하는 상기 빌드 서버를 포함하는
    디스패쳐를 이용한 클라우드 빌드 시스템.
  2. 제1항에 있어서,
    상기 디스패쳐는,
    상기 빌드 서버로부터 상기 생성된 네이티브 앱을 수신하면, 상기 웹 앱을 송신한 사용자에게 상기 수신한 네이티브 앱을 송신하는
    디스패쳐를 이용한 클라우드 빌드 시스템.
  3. 제1항에 있어서,
    상기 디스패쳐는,
    상기 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택할 때,
    상기 검색된 빌드 서버 중에서 네이티브 앱을 생성하기 위한 대기 리스트가 가장 짧은 빌드 서버를 선택하는
    디스패쳐를 이용한 클라우드 빌드 시스템.
  4. 제1항에 있어서,
    상기 디스패쳐는,
    상기 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택할 때,
    각 빌드 서버의 네이티브 앱을 생성하기 위한 대기 리스트, 상기 각 빌드 서버에서 네이티브 앱을 생성하는 처리하는 속도, 각 빌드 서버에 부여된 사용자의 우선순위 또는 상기 각 빌드 서버에서 상기 사용자가 원하는 컴파일 기법으로 네이티브 앱을 생성할 수 있는지 여부 중에서 적어도 하나를 고려하여 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택하는
    디스패쳐를 이용한 클라우드 빌드 시스템.
  5. 제1항에 있어서,
    상기 디스패쳐는,
    상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 검색되지 않으면, 상기 확인된 운영체제의 종류 별로 각각 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택하고, 상기 확인된 운영체제의 종류별로 선택된 빌드 서버로 상기 웹 앱을 송신하여 상기 확인된 운영체제의 종류별로 네이티브 앱을 생성하도록 요청하는
    디스패쳐를 이용한 클라우드 빌드 시스템.
  6. 웹 앱을 수신하고, 적용할 운영체제의 종류를 적어도 하나 확인하는 빌드 요청 수신부;
    상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색하는 빌드 서버 검색부;
    상기 검색된 빌드 서버 중에서 상기 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택하는 빌드 서버 선택부; 및
    상기 선택된 빌드 서버로 상기 웹 앱을 송신하고, 상기 선택된 빌드 서버로부터 상기 웹 앱을 이용하여 생성된 네이티브 앱을 적어도 하나 수신하는 빌드 처리부를 포함하는
    분산 빌드를 제어하는 클라우드 빌드 시스템의 디스패쳐.
  7. 제6항에 있어서,
    상기 빌드 서버 선택부는,
    상기 검색된 빌드 서버 중에서 네이티브 앱을 생성하기 위한 대기 리스트가 가장 짧은 빌드 서버를 선택하는
    분산 빌드를 제어하는 클라우드 빌드 시스템의 디스패쳐.
  8. 제6항에 있어서,
    상기 빌드 서버 선택부는,
    각 빌드 서버의 네이티브 앱을 생성하기 위한 대기 리스트, 상기 각 빌드 서버에서 네이티브 앱을 생성하는 처리하는 속도, 각 빌드 서버에 부여된 사용자의 우선순위 또는 상기 각 빌드 서버에서 상기 사용자가 원하는 컴파일 기법으로 네이티브 앱을 생성할 수 있는지 여부 중에서 적어도 하나를 고려하여 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택하는
    분산 빌드를 제어하는 클라우드 빌드 시스템의 디스패쳐.
  9. 제6항에 있어서,
    상기 빌드 처리부는,
    상기 웹 앱을 송신한 사용자에게 상기 수신된 네이티브 앱을 송신하는
    분산 빌드를 제어하는 클라우드 빌드 시스템의 디스패쳐.
  10. 제6항에 있어서,
    상기 빌드 요청 수신부는,
    상기 웹 앱을 송신한 사용자로부터 수신하여 상기 적용할 운영체제의 종류를 확인하거나 또는
    상기 웹 앱의 기설정 영역에 기재된 정보를 통해 상기 적용할 운영체제의 종류를 확인하는
    분산 빌드를 제어하는 클라우드 빌드 시스템의 디스패쳐.
  11. 제6항에 있어서,
    상기 빌드 서버 검색부는,
    상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 검색되지 않으면, 상기 확인된 운영체제의 종류 각각을 처리할 수 있는 빌드 서버를 검색하고,
    상기 빌드 서버 선택부는,
    상기 확인된 운영체제의 종류 별로 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택하는
    분산 빌드를 제어하는 클라우드 빌드 시스템의 디스패쳐.
  12. 웹 앱을 수신하는 단계;
    적용할 운영체제의 종류를 적어도 하나 확인하는 단계;
    상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버를 검색하는 단계;
    상기 검색된 빌드 서버 중에서 상기 웹 앱을 네이티브 앱으로 생성할 빌드 서버를 선택하는 단계;
    상기 선택된 빌드 서버로 상기 웹 앱을 송신하는 단계; 및
    상기 선택된 빌드 서버로부터 상기 웹 앱을 이용하여 생성된 네이티브 앱을 적어도 하나 수신하는 단계를 포함하는
    클라우드 빌드 시스템의 디스패쳐에서 분산 빌드하는 방법.
  13. 제12항에 있어서,
    상기 빌드 서버를 선택하는 단계는,
    상기 검색된 빌드 서버 중에서 네이티브 앱을 생성하기 위한 대기 리스트가 가장 짧은 빌드 서버를 선택하는
    클라우드 빌드 시스템의 디스패쳐에서 분산 빌드하는 방법.
  14. 제12항에 있어서,
    상기 빌드 서버를 선택하는 단계는,
    각 빌드 서버의 네이티브 앱을 생성하기 위한 대기 리스트, 상기 각 빌드 서버에서 네이티브 앱을 생성하는 처리하는 속도, 각 빌드 서버에 부여된 사용자의 우선순위 또는 상기 각 빌드 서버에서 상기 사용자가 원하는 컴파일 기법으로 네이티브 앱을 생성할 수 있는지 여부 중에서 적어도 하나를 고려하여 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택하는
    클라우드 빌드 시스템의 디스패쳐에서 분산 빌드하는 방법.
  15. 제12항에 있어서,
    상기 웹 앱을 송신한 사용자에게 상기 수신된 네이티브 앱을 송신하는 단계를 더 포함하는
    클라우드 빌드 시스템의 디스패쳐에서 분산 빌드하는 방법.
  16. 제12항에 있어서,
    상기 적용할 운영체제의 종류를 확인하는 단계는,
    상기 웹 앱을 송신한 사용자로부터 수신하여 확인하거나 또는
    상기 웹 앱의 기설정 영역에 기재된 정보를 통해 확인하는
    클라우드 빌드 시스템의 디스패쳐에서 분산 빌드하는 방법.
  17. 제12항에 있어서,
    상기 빌드 서버를 검색하는 단계는,
    상기 확인된 운영체제의 종류를 모두 처리 가능한 빌드 서버가 검색되지 않으면, 상기 확인된 운영체제의 종류 각각을 처리할 수 있는 빌드 서버를 검색하고,
    상기 빌드 서버를 선택하는 단계는,
    상기 확인된 운영체제의 종류 별로 가장 빨리 네이티브 앱을 생성할 수 있는 빌드 서버를 선택하는
    클라우드 빌드 시스템의 디스패쳐에서 분산 빌드하는 방법.
  18. 제12항 내지 제17항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020130037328A 2013-04-05 2013-04-05 분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법 KR20140121101A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130037328A KR20140121101A (ko) 2013-04-05 2013-04-05 분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130037328A KR20140121101A (ko) 2013-04-05 2013-04-05 분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20140121101A true KR20140121101A (ko) 2014-10-15

Family

ID=51992746

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130037328A KR20140121101A (ko) 2013-04-05 2013-04-05 분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR20140121101A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107911482A (zh) * 2017-12-11 2018-04-13 北京小米移动软件有限公司 目标应用打开方法及装置
KR20200078945A (ko) * 2018-12-24 2020-07-02 주식회사 구름 복수의 컴파일 주체를 이용한 코딩 시스템의 효율을 높이는 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107911482A (zh) * 2017-12-11 2018-04-13 北京小米移动软件有限公司 目标应用打开方法及装置
KR20200078945A (ko) * 2018-12-24 2020-07-02 주식회사 구름 복수의 컴파일 주체를 이용한 코딩 시스템의 효율을 높이는 방법 및 장치

Similar Documents

Publication Publication Date Title
US10129264B2 (en) Method and apparatus for implementing document sharing between user groups
US9195522B2 (en) Method and device for controlling communication between applications in a web runtime environment
US10063996B2 (en) Methods and systems for providing geospatially-aware user-customizable virtual environments
CN104106048B (zh) 使用应用高速缓存来更新已安装应用的资源
US9524089B1 (en) Common web component
US20170359701A1 (en) Sticker distribution system for messaging apps
EP2784666B1 (en) Method and device for displaying service pages for executing applications
JP2017533503A5 (ko)
KR101850203B1 (ko) 기기간 어플리케이션 연동 방법 및 시스템
US9978091B2 (en) Method and system for tracking marketing channel of application
US10789111B2 (en) Message oriented middleware with integrated rules engine
CN109376316B (zh) 动态加载路由的方法、***和服务器
EP3572995B1 (en) Case management by a state machine
KR101907837B1 (ko) 애플리케이션 활성화 프레임워크
US20160140092A1 (en) Content reproducing apparatus
US9253228B2 (en) Cloud computing method, computing apparatus and server using the same
JP2015180991A (ja) 画像形成装置、画像形成装置の制御方法およびプログラム
JP2017054507A (ja) 通信セッション上でイメージを利用して位置情報を提供する情報提供システムおよび方法
JP6587997B6 (ja) タイムマシン機能のためのスライディングウィンドウ管理方法およびシステム
US9569552B2 (en) Code based configuration of mobile devices
JP6979769B2 (ja) セットトップボックスが有するアプリケーションの管理方法およびシステム、並びに、ローカルネットワークを利用した機器間連結方法
JP7002198B2 (ja) 端末を利用したセットトップボックスの入出力システムおよび入出力方法。
KR20140121101A (ko) 분산빌드를 위한 디스패쳐 및 디스패쳐를 이용한 클라우드 빌드 시스템 및 그 방법
US10839037B2 (en) Connected application experience
CN107003867A (zh) 使用区段以用于跨平台的应用的定制

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination