KR20150063514A - 애플리케이션의 개발, 컴파일링 및 디버그 방법과 장치 - Google Patents

애플리케이션의 개발, 컴파일링 및 디버그 방법과 장치 Download PDF

Info

Publication number
KR20150063514A
KR20150063514A KR1020157011197A KR20157011197A KR20150063514A KR 20150063514 A KR20150063514 A KR 20150063514A KR 1020157011197 A KR1020157011197 A KR 1020157011197A KR 20157011197 A KR20157011197 A KR 20157011197A KR 20150063514 A KR20150063514 A KR 20150063514A
Authority
KR
South Korea
Prior art keywords
debug
compiling
code
environments
environment
Prior art date
Application number
KR1020157011197A
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 지티이 코포레이션
Publication of KR20150063514A publication Critical patent/KR20150063514A/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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 애플리케이션의 개발, 컴파일링 및 디버그 방법 및 장치를 제공한다. 그 방법은 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가지고 있고 애플리케이션을 실현하기 위한 코드를 획득하고, 여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 코드에 컴파일링을 수행하고 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경에 있어서 컴파일링된 코드에 디버그를 수행하는 단계를 포함한다. 본 발명에 의하면 개발자에 집적된 크로스 플랫폼 애플리케이션 개발 환경을 제공하고 개발자가 한 세트의 집적된 개발 환경을 이용하여 한 세트의 코드, 즉, 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드를 개발하면 서로 다른 단말 조작 시스템에서 운행 가능한 애플리케이션을 컴파일링할 수 있고 또한 서로 다른 단말과 가상 머신에서 디버그를 수행할 수 있으며, 한 세트의 애플리케이션 코드를 서로 다른 단말 환경에서 운행할 수 있는 효과를 실현할 수 있어, 대량의 부호화 및 서로 다른 환경에서의 컴파일링 디버그 시간을 절약할 수 있고 다수의 개발자의 동시 온라인 개발, 컴파일링, 디버그를 지원한다.

Description

애플리케이션의 개발, 컴파일링 및 디버그 방법과 장치{DEVELOPMENT, COMPILING AND DEBUGGING METHOD AND DEVICE FOR APPLICATION}
본 발명은 통신 분야에 관한 것으로, 특히 애플리케이션의 개발, 컴파일링 및 디버그 방법과 장치에 관한 것이다.
네트워크 기술이 고속으로 발전함에 따라 이동통신 네트워크의 기능도 점차적으로 강화되고 있고 단말 애플리케이션은 휴대폰 등 통신 단말에 여러 가지 기능을 부여하였다. 방대한 시장수요에 의하여 온라인/오프라인의 상가는 APP를 배치함으로써 사용자를 끌어모으고 있다. 많은 인터넷 기업이 앞다투어 APP를 점유한 후 다수의 전통적인 상가 역시 진입하기 시작하였다. 모바일 인터넷으로 인터넷 상업모드를 전복하는 추세 및 그 배경하에서 개인 개발자, 작업실, 대중형 아웃소싱 기업은 이미 APP 서비스 아웃소싱 시장에서 치열한 경쟁을 벌이고 있다.
지능 단말이 고속 증가됨에 따라 애플리케이션의 다운로드 역시 폭발적으로 증가되고 있다. 이동 분석 기구인 Flurry의 데이터에 의하면 APP 애플리케이션 시장에 있어서, 중국은 2012년 일사분기에 있어서 동기에 비하여 1126% 증가되었다. 그리고 중국 시장의 Android와 iOS 기기의 활성화 수량이 전세계 총량에서 차지하는 비율은 처음으로 미국을 초과하여 24%에 달하여 세계 제일이 되었고 "휴대폰 제1대국"으로 되었다. 단말 애플리케이션 시장이 폭발적으로 발전하는 상황하에서 APP의 개발의 아웃소싱 서비스 역시 경쟁이 치열한 새로운 시장으로 되었다.
3G, 4G, 충실한 무선통신 환경(Wireless Fidelity, Wifi로 약칭) 등의 이동통신 인프라가 고속으로 발전함에 따라 iOS, Android, WP(Windows Phone) 시스템을 기반으로 하는 지능 단말이 고속으로 보급되고 APP를 대표로하는 클라이언트 단말 역시 활발하게 나타나고 있으며 APP도 사용자의 완구 및 상가의 마케팅 도구로 되었다.
레스토랑에서 "위챗(WeChat)"을 이용하여 테이블 위의 QR코드를 스캔하면 할인을 받을 수 있고 심심할 때 "창바(changba)"를 열어서 친구들과 노래 할 수 있으며 APP의 사용은 점차적으로 사람들의 생활의 각 분야에 침투되고 있다.
Android, iPhone 휴대폰의 보급 및 지능 휴대폰 시장으로 진입하기 위하여 준비중인 WP7에 의하여 모바일 인터넷은 직선형의 상승 추세를 나타내고 있다. 고속 발전하는 모바일 인터넷 시장에 의하여 단말 애플리케이션의 개발 열기를 불러일으키고 있고 많은 개발자가 점차적으로 단말 애플리케이션의 개발에 참여하고 있다.
단말 애플리케이션의 개발에 있어서, 일반적으로 사용자에 서로 다른 단말 플랫폼의 애플리케이션을 제공하여야 하고, 개발자는 서로 다른 단말 플랫폼을 위하여 개발 환경을 구성하고, 각 단말 애플리케이션은 서로 다른 단말 플랫폼에서 각자의 코드를 개발 및 보수하며 서로 다른 테스트 단말 기기의 사용률이 낮아 원가를 증가시킨다. 현재 서로 다른 휴대폰 시스템 및 많은 휴대폰 브랜드에 대하여 어떻게 다수의 플랫폼에 적용되는 애플리케이션을 고속으로 개발하여 디버그할 것인가에 대하여 아직 유효한 해결책을 제시하지 못하였다.
본 발명은 최소한 관련 기술에 있어서 서로 다른 단말 조작 시스템을 대상으로 어떻게 다수의 플랫폼에 적용되는 애플리케이션을 고속으로 개발하여 디버그할 것인가에 대하여 아직 유효한 해결책을 제시하지 못한 문제를 해결할 수 있는 애플리케이션의 개발, 컴파일링 및 디버그 방법 및 장치를 제공하는 것을 그 목적으로 한다.
본 발명의 실시예의 한 방면에 의하면 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가지고 있고 애플리케이션을 실현하기 위한 코드를 획득하고, 여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 코드에 컴파일링을 수행하고 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경에 있어서 컴파일링된 코드에 디버그를 수행하는 단계를 포함하는 애플리케이션의 개발, 컴파일링 및 디버그 방법을 제공한다.
코드를 획득하는 단계가, 애플리케이션을 위하여 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드 프레임을 생성하고 코드 프레임에 근거하여 편집하여 얻은 코드를 획득하는 단계를 포함하는 것이 바람직하다.
여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 코드에 컴파일링을 수행하는 단계가, 코드에 컴파일링을 수행하는 제1 컴파일링 요구를 수신하고, 수신한 하나 혹은 다수의 컴파일링 요구에 부하 균형을 수행한 후 제1 컴파일링 요구에 근거하여 코드에 컴파일링을 수행하는 단계를 포함하고, 제1 컴파일링 요구가 하나 혹은 다수의 컴파일링 요구에 포함되는 것이 바람직하다.
코드에 컴파일링을 수행하는 제1 컴파일링 요구를 수신한 후, 상기 방법이 리소스가 전부 사용되었다고 확정되면 수신한 하나 혹은 다수의 컴파일링 요구를 배열시키는 단계를 더 포함하는 것이 바람직하다.
여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 코드에 컴파일링을 수행한 후, 상기 방법이 컴파일링 정보와 결과를 피드백하는 단계를 더 포함하는 것이 바람직하다.
컴파일링 환경에 대응되는 디버그 환경이, 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경, 여러 가지 단말의 실제 컴퓨터의 디버그 환경중의 최소한 하나를 포함하고, 각종 단말 조작 시스템은 하나 혹은 다수의 컴파일링 환경 및 그에 대응되는 하나 혹은 다수의 디버그 환경을 제공하고, 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경은 가상 머신에 의하여 실현되는 것이 바람직하다.
한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경에 있어서 컴파일링된 코드에 디버그를 수행하는 단계가, 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행하고, 여러 가지 단말의 실제 컴퓨터의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 단말의 실제 컴퓨터의 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행하는 단계를 포함하는 것이 바람직하다.
여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행하는 단계가, 코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신하고, 수신한 하나 혹은 다수의 가상 머신 운행 디버그 요구에 부하 균형을 수행한 후 제1가상 머신 운행 디버그 요구에 근거하여 코드에 디버그를 수행하는 단계를 포함하며, 여기서, 제1가상 머신 운행 디버그 요구가 하나 혹은 다수의 가상 머신 운행 디버그 요구에 포함되는 것이 바람직하다.
코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신한 후, 상기 방법이 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경에 모니터링과 통계를 수행하는 단계를 더 포함하는 것이 바람직하다.
여러 가지 단말의 실제 컴퓨터의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 단말의 실제 컴퓨터의 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행하는 단계가, 코드에 디버그를 수행하는 제1 단말 운행 디버그 요구를 수신하고, 수신한 하나 혹은 다수의 단말 운행 디버그 요구에 부하 균형을 수행한 후 제1 단말 운행 디버그 요구에 근거하여 코드에 디버그를 수행하는 단계를 포함하고, 제1 단말 운행 디버그 요구가 하나 혹은 다수의 단말 운행 디버그 요구에 포함되는 것이 바람직하다.
코드에 디버그를 수행하는 제1 단말 운행 디버그 요구를 수신한 후, 상기 방법이 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 단말의 실제 컴퓨터의 디버그 환경에 모니터링과 통계를 수행하는 단계를 더 포함하는 것이 바람직하다.
코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신한 후, 상기 방법이 가상 머신의 리소스 풀링의 현재 사용 상황에 근거하여 가상 머신이 전부 사용되었다고 확정되면 수신한 하나 혹은 다수의 가상 머신 운행 디버그 요구를 배열시키는 단계를 더 포함하고, 코드에 디버그를 수행하는 제1 단말 운행 디버그 요구를 수신한 후, 상기 방법이 단말의 실제 컴퓨터가 전부 사용되었다고 확정되면 수신한 하나 혹은 다수의 단말 운행 디버그 요구를 배열시키는 단계를 더 포함하는 것이 바람직하다.
여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행한 후 상기 방법이 가상 머신의 디버그 정보와 결과를 피드백하는 단계를 더 포함하고, 여러 가지 단말의 실제 컴퓨터의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행한 후 상기 방법이 단말의 디버그 정보와 결과를 피드백하는 단계를 더 포함하는 것이 바람직하다.
상기 한 가지 혹은 여러 가지 컴파일링 환경이 리소스 풀링의 사용 상황에 근거하여 자동적으로 할당되는 것이 바람직하다.
본 발명의 실시예의 다른 한 방면에 의하면 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가지고 있고 애플리케이션을 실현하기 위한 코드를 획득하는 획득모듈과, 여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 코드에 컴파일링을 수행하는 컴파일링 모듈과, 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경에 있어서 컴파일링된 코드에 디버그를 수행 디버그 모듈을 포함하는 애플리케이션의 개발, 컴파일링 및 디버그 장치을 제공한다.
획득모듈이, 애플리케이션을 위하여 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드 프레임을 생성하는 생성 유닛과, 코드 프레임에 근거하여 편집하여 얻은 코드를 획득하는 획득 유닛을 포함하는 것이 바람직하다.
본 발명의 실시예에 의하면 개발자에 집적된 크로스 플랫폼 애플리케이션 개발 환경을 제공하고 개발자가 한 세트의 개발 환경을 이용하여 한 세트의 코드, 즉, 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드를 개발하면, 서로 다른 단말 조작 시스템에서 운행 가능한 애플리케이션을 컴파일링할 수 있고 또한 서로 다른 단말과 가상 머신에서 디버그를 수행할 수 있으며 한 세트의 애플리케이션 코드를 서로 다른 단말 환경에서 운행할 수 있는 효과를 실현할 수 있어, 대량의 부호화 및 서로 다른 환경에서의 컴파일링 디버그 시간을 절약할 수 있고, 다수의 서로 다른 단말 조작 시스템에서 운행할 수 있는 애플리케이션을 고속으로 개발할 수 있으며, 개발 효율을 향상시키고 연구비용을 절감시키는 목표를 실현할 수 있다. 그리고 본 발명의 실시예는 다수의 개발자의 동시 온라인 개발, 컴파일링, 디버그를 지원한다.
도면은 본 발명에 대한 이해를 돕기위한 것으로 본 발명의 명세서의 일부분이고 본 발명의 실시예와 본 발명을 해석하기 위한 것으로 본 발명을 한정하는 것이 아니다.
도 1은 본 발명의 실시예에 따른 애플리케이션의 개발, 컴파일링 및 디버그 방법을 나타낸 흐름도;
도 2는 본 발명의 실시예에 따른 애플리케이션의 개발, 컴파일링 및 디버그 장치의 구조를 나타낸 블록도;
도 3은 본 발명의 바람직한 실시예에 따른 애플리케이션의 개발, 컴파일링 및 디버그 장치의 구조를 나타낸 블록도;
도 4는 본 발명의 바람직한 실시예에 따른 애플리케이션의 개발, 컴파일링 및 디버그 시스템의 구조를 나타낸 도면;
도 5는 본 발명의 바람직한 실시예에 따른 애플리케이션의 개발, 컴파일링 및 디버그 방법을 나타낸 흐름도.
여기서, 상호 충돌되지 않는 상황 하에서 본 발명 중의 실시예 및 실시예에 기재된 특징을 상호 결합할 수 있다. 아래 도면을 참조해서 실시예를 결합하여 본 발명을 설명한다.
본 발명의 실시예에 있어서 애플리케이션의 개발, 컴파일링 및 디버그 방법을 제공하는데 도 1은 본 발명의 실시예에 따른 애플리케이션의 개발, 컴파일링 및 디버그 방법을 나타낸 흐름도로 도 1에 도시한 바와 같이 하기 단계 S102 내지 단계 S106을 포함한다.
코드를 획득하고, 여기서, 코드는 애플리케이션을 실현하기 위한 것이고, 코드는 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진다(단계 S102).
여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 코드에 컴파일링을 수행한다(단계 S104).
한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경에 있어서 컴파일링된 코드에 디버그를 수행한다(단계 S106).
관련 기술에 있어서, 서로 다른 단말 조작 시스템에 대하여 어떻게 다수의 플랫폼에 적용되는 애플리케이션을 고속으로 개발하여 디버그할 것인가에 대하여 아직 유효한 해결책을 제시하지 못하였다. 본 발명의 실시예에 있어서 개발자에 집적된 크로스 플랫폼 애플리케이션 개발 환경을 제공하고 개발자가 한 세트의 개발 환경을 이용하여 한 세트의 코드, 즉, 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드를 개발하면 서로 다른 단말 조작 시스템에서 운행 가능한 애플리케이션을 컴파일링할 수 있고 또한 서로 다른 단말과 가상 머신에서 디버그를 수행할 수 있으며 한 세트의 애플리케이션 코드를 서로 다른 단말 환경에서 운행할 수 있는 효과를 실현할 수 있어, 대량의 부호화 및 서로 다른 환경에서의 컴파일링 디버그 시간을 절약할 수 있고, 다수의 서로 다른 단말 조작 시스템에서 운행할 수 있는 애플리케이션을 고속으로 개발할 수 있으며, 개발 효율을 향상시키고 연구비용을 절감시키는 목표를 실현할 수 있다. 그리고 본 발명의 실시예는 다수의 개발자의 동시 온라인 개발, 컴파일링, 디버그를 지원한다.
여기서, 상기 단계 S104에 있어서 여러 가지 컴파일링 환경을 선택하여 코드에 컴파일링을 수행할 수 있다는 것은 본 발명의 실시예에 있어서 서로 다른 컴파일링 환경에서 동시에 코드의 컴파일링을 수행할 수 있음을 말한다. 상기 실시예에 있어서, 컴파일링 환경의 선택 및 그 디버그 환경의 선택은 자동적으로 수행되고 실제응용에 있어서 관리 유닛에 의하여 자동적으로 선택될 수 있다(예를 들어 클라우드 관리에 의하여 자동적으로 선택될 수 있다).
단계 S102가 애플리케이션을 위하여 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드 프레임을 생성하고, 코드 프레임에 근거하여 편집하여 얻은 코드를 획득하는 단계를 포함하는 것이 바람직하다. 본 바람직한 실시예에 있어서, 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드 프레임을 이용하여 편집하여 코드를 획득하고, 실제에 있어서 상기 코드 프레임 역시 코드이고 애플리케이션을 운행하는 최소의 실시예이며, 개발자는 그 코드 프레임에서 코드를 수정하고 추가하여 개발하려는 애플리케이션에 대응되는 코드를 얻을 수 있고 코드의 획득 방식은 간단하고 믿음성이 있다.
아래 코드의 컴파일링 및 디버그 프로세스를 각각 설명한다.
(1) 컴파일링 프로세스
단계 S104는 코드에 컴파일링을 수행하는 제1 컴파일링 요구를 수신하고 수신한 하나 혹은 다수의 컴파일링 요구에 부하 균형을 수행한 후 제1 컴파일링 요구에 근거하여 코드에 컴파일링을 수행하는 단계를 포함하고, 여기서, 하나 혹은 다수의 컴파일링 요구에는 제1 컴파일링 요구가 포함된다. 본 바람직한 실시예에 있어서 클라우드 관리에 의하여 다수의 컴파일링 요구를 동시에 수신할 수 있으므로 수신한 다수의 컴파일링 요구에 부하 균형을 수행하여야 하고 이로 인하여 네트워크의 능력을 향상시킨다. 여기서 제1 컴파일링 요구를 수신한 후, 리소스의 전부가 사용되었다고 확정되면 수신한 하나 혹은 다수의 컴파일링 요구를 배열시킨다.
여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 코드에 컴파일링을 수행한 후, 상기 방법이 컴파일링의 정보와 결과를 피드백하는 단계를 더 포함하는 것이 바람직하다. 후속되는 디버그를 수행하도록 컴파일링 결과를 피드백한다.
컴파일링 환경에 대응되는 디버그 환경은 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경, 여러 가지 단말의 실제 컴퓨터의 디버그 환경중의 최소한 하나를 포함하고, 여기서 각종 단말 조작 시스템은 하나 혹은 다수의 컴파일링 환경 및 그에 대응되는 하나 혹은 다수의 디버그 환경을 제공하고 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경은 가상 머신에 의하여 실현된다.
상기 두 가지 디버그 환경의 경우, 그에 대응되는 디버그 방법은 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행하고(즉, 가상 머신에 의하여 디버그함), 또한 여러 가지 단말의 실제 컴퓨터의 디버그 환경으로부터 한 가지 혹은 여러 가지 단말 조작 시스템의 컴파일링 환경에 대응되는 단말의 실제 컴퓨터의 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행한다(즉, 단말에 의하여 디버그한다).
(2) 가상 머신의 디버그
여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행하는 단계는 코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신하고, 수신한 하나 혹은 다수의 가상 머신 운행 디버그 요구에 부하 균형을 수행한 후 제1가상 머신 운행 디버그 요구에 근거하여 코드에 디버그를 수행하는 단계를 포함하고, 여기서 하나 혹은 다수의 가상 머신 운행 디버그 요구에 제1가상 머신 운행 디버그 요구가 포함된다. 본 바람직한 실시예에 있어서, 모든 서비스가 이미 점용되었으면 수신한 다수의 가상 머신 운행 디버그 요구를 배열시켜 처리 효율을 향상시킨다.
코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신한 후, 상기 방법이 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경에 모니터링과 통계를 수행하는 단계를 더 포함하는 것이 바람직하다.
여기서, 가상 머신은 자동적으로 할당되고 가상 머신의 리소스 풀링의 사용 상황에 근거하여 할당되며 전부가 사용되었으면 수신한 가상 머신 운행 디버그 요구를 배열시켜야 하고 하기 단계로 실현된다: 코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신한 후 가상 머신의 리소스 풀링의 현재 사용 상황에 근거하여 가상 머신의 전부가 사용되었다고 확정되면 수신한 하나 혹은 다수의 가상 머신 운행 디버그 요구를 배열시킨다.
여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행한 후 상기 방법이 가상 머신의 디버그 정보와 결과를 피드백하는 단계를 더 포함하는 것이 바람직하다.
(3) 단말의 디버그
여러 가지 단말의 실제 컴퓨터의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행하는 단계는 코드에 디버그를 수행하는 제1 단말 운행 디버그 요구를 수신하고, 수신한 하나 혹은 다수의 단말 운행 디버그 요구에 부하 균형을 수행한 후 제1 단말 운행 디버그 요구에 근거하여 코드에 디버그를 수행하는 단계를 포함하고, 여기서, 하나 혹은 다수의 단말 운행 디버그 요구에 제1 단말 운행 디버그 요구가 포함된다.
코드에 디버그를 수행하는 제1 단말 운행 디버그 요구를 수신한 후, 상기 방법이 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 단말의 실제 컴퓨터의 디버그 환경에 모니터링과 통계를 수행하는 단계를 더 포함하는 것이 바람직하다.
코드에 디버그를 수행하는 제1 단말 운행 디버그 요구를 수신한 후, 상기 방법이 단말의 실제 컴퓨터가 전부 사용되었다고 확정되면 수신한 하나 혹은 다수의 단말 운행 디버그 요구를 배열시키는 단계를 더 포함하는 것이 바람직하다.
여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행한 후 상기 방법이 단말의 디버그 정보와 결과를 피드백하는 단계를 더 포함하는 것이 바람직하다.
상기 선택한 한 가지 혹은 여러 가지 컴파일링 환경이 리소스 풀링의 사용 상황에 근거하여 자동적으로 할당되는 것이 바람직하다.
여기서, 상기 가상 머신의 디버그와 단말의 실제 컴퓨터의 디버그에는 전후 순서가 없고 반드시 동시에 존재하여야 하는 것도 아니며 예를 들어 단말의 실제 컴퓨터의 디버그만을 수행할 수도 있고 혹은 우선 가상 머신의 디버그를 수행한 후 단말의 실제 컴퓨터의 디버그를 수행할 수도 있다. 여기서, 단말의 실제 컴퓨터의 디버그는 컴파일링하여 패키지화된 애플리케이션을 구체적인 단말 기기에 장착하는 것이다. 우선 가상 머신의 디버그를 수행한 후 단말의 실제 컴퓨터의 디버그를 수행할 경우, 단말의 실제 컴퓨터에 있어서 컴파일링하여 디버그된 애플리케이션에 재차 디버그를 수행한다.
본 발명의 실시예에 의하면 애플리케이션의 개발, 컴파일링 및 디버그 장치을 제공하는데 이 장치는 상기 애플리케이션의 개발, 컴파일링 및 디버그 방법을 실현하기 위한 것이다. 도 2는 본 발명의 실시예에 따른 애플리케이션의 개발, 컴파일링 및 디버그 장치의 구조를 나타낸 블록도로 도 2에 도시한 바와 같이 상기 장치는 획득 모듈(22)과, 컴파일링 모듈(24)과, 디버그 모듈(26)을 포함한다.
획득 모듈(22)은 코드를 획득하고, 여기서, 코드는 애플리케이션을 실현하기 위한 것이고 코드는 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가지며, 컴파일링 모듈(24)은 획득 모듈(22)에 연결되어 여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 획득 모듈(22)이 획득한 코드에 컴파일링을 수행하고, 디버그 모듈(26)은 컴파일링 모듈(24)에 연결되어 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경에 있어서 컴파일링 모듈(24)에 의하여 컴파일링된 코드에 디버그를 수행한다.
획득 모듈(22)이 애플리케이션을 위하여 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가지는 코드 프레임을 생성하는 생성 유닛과, 생성 유닛에 연결되어 코드 프레임에 근거하여 편집하여 얻은 코드를 획득하는 획득 유닛을 포함하는 것이 바람직하다.
컴파일링 모듈(24)은 코드에 컴파일링을 수행하는 제1 컴파일링 요구를 수신하는 수신유닛과, 수신유닛에 연결되어 수신한 하나 혹은 다수의 컴파일링 요구에 부하 균형을 수행한 후 제1 컴파일링 요구에 근거하여 코드에 컴파일링을 수행하는 컴파일링 유닛을 포함하고, 여기서, 하나 혹은 다수의 컴파일링 요구에 제1 컴파일링 요구가 포함된다.
컴파일링 모듈(24)이 수신유닛에 연결되어 리소스의 전부가 사용되었다고 확정되면 수신한 하나 혹은 다수의 컴파일링 요구를 배열시키는 배열 유닛을 포함하는 것이 바람직하다.
상기 장치가 컴파일링 모듈(24)에 연결되어 컴파일링 정보와 결과를 피드백하는 피드백모듈을 더 포함하는 것이 바람직하다.
컴파일링 환경에 대응되는 디버그 환경이 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경, 여러 가지 단말의 실제 컴퓨터의 디버그 환경중의 최소한 하나를 포함하고, 여기서, 각종 단말 조작 시스템이 하나 혹은 다수의 컴파일링 환경 및 그에 대응되는 하나 혹은 다수의 디버그 환경을 제공하며 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경이 가상 머신에 의하여 실현되는 것이 바람직하다.
도 3에 도시한 바와 같이 디버그 모듈(26)은 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행하는 제1 디버그 유닛(262)와, 여러 가지 단말의 실제 컴퓨터의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경을 선택하여 컴파일링된 코드에 디버그를 수행하는 제2 디버그 유닛(264)를 포함한다.
제1 디버그 유닛(262)은 코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신하는 제1수신 서브유닛과, 수신한 하나 혹은 다수의 가상 머신 운행 디버그 요구에 부하 균형을 수행한 후 제1가상 머신 운행 디버그 요구에 근거하여 코드에 디버그를 수행하는 제1 디버그 서브유닛을 포함하고, 여기서, 하나 혹은 다수의 가상 머신 운행 디버그 요구에 제1가상 머신 운행 디버그 요구가 포함된다. 디버그 모듈(26)이 제1 디버그 유닛(262)에 연결되어 가상 머신의 디버그 정보와 결과를 피드백하는 제1피드백 유닛을 더 포함하는 것이 바람직하다.
제1 디버그 유닛(262)은 제1수신 서브유닛에 연결되어 코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신한 후 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경에 모니터링과 통계를 수행하는 제1 모니터링 통계 서브유닛을 더 포함한다.
제1 디버그 유닛(262)은 제1수신 서브유닛에 연결되어 가상 머신의 리소스 풀링의 현재 사용 상황에 근거하여 가상 머신의 전부가 사용되었다고 확정되면 수신한 하나 혹은 다수의 가상 머신 운행 디버그 요구를 배열시키는 제1 배열 서브유닛을 더 포함한다.
제2 디버그 유닛(264)은 코드에 디버그를 수행하는 제1 단말 운행 디버그 요구를 수신하는 제2 수신 서브유닛과, 수신한 하나 혹은 다수의 단말 운행 디버그 요구에 부하 균형을 수행한 후 제1 단말 운행 디버그 요구에 근거하여 코드에 디버그를 수행하는 제2 디버그 서브유닛을 포함하고, 여기서, 하나 혹은 다수의 단말 운행 디버그 요구에 제1 단말 운행 디버그 요구가 포함된다. 디버그 모듈(26)이 제2 디버그 유닛(264)에 연결되어 단말의 디버그 정보와 결과를 피드백하는 제2피드백 유닛을 더 포함하는 것이 바람직하다.
제2 디버그 유닛(264)이 제2 수신 서브유닛에 연결되어 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 단말의 실제 컴퓨터의 디버그 환경에 모니터링과 통계를 수행하는 제2 모니터링 통계 서브유닛을 더 포함한다.
제2 디버그 유닛(264)이 제2 수신 서브유닛에 연결되어 단말의 실제 컴퓨터의 전부가 사용되었다고 확정되면 수신한 하나 혹은 다수의 단말 운행 디버그 요구를 배열시키는 제2배열 서브유닛을 더 포함한다.
여기서, 장치 실시예에서 설명한 애플리케이션의 개발, 컴파일링 및 디버그 장치는 상술한 방법 실시예에 대응되며 구체적인 실현 프로세스는 방법 실시예에서 상세하게 설명하였으므로 여기서는 설명을 생략한다.
본 발명의 실시예의 기술방안과 그 실현 방법을 더욱 명확히 설명하기 위하여 아래 바람직한 실시예를 결합하여 실현 프로세스를 상세하게 설명한다.
바람직한 실시예에 있어서 애플리케이션의 개발, 컴파일링 및 디버그 시스템을 제공하는데 도 4는 본 발명의 바람직한 실시예에 따른 애플리케이션의 개발, 컴파일링 및 디버그 시스템의 구조를 나타낸 도로 도 4에 도시한 바와 같이 상기 시스템은 집적 개발 환경 유닛(42)과, 클라우드 관리 유닛(44)과, 컴파일링 디버그 클라우드 유닛(46)과, 단말 클라우드 유닛(48)을 포함한다. 아래 각 유닛을 상세하게 설명한다.
집적 개발 환경 유닛(42)은 크로스 플랫폼 코드 프레임 생성 모듈(422)과, 크로스 플랫폼 코드 편집 모듈(424)과, 컴파일링 모듈(426)과, 운행 디버그 모듈(428)을 포함한다. 집적 개발 환경 유닛(42)은 개발자에 대화형 인터페이스를 제공하고 크로스 플랫폼 코드 프레임 생성 모듈(422)을 통하여 단말 애플리케이션을 위하여 코드 프레임을 생성하며, 이와 동시에 크로스 플랫폼 코드 편집 모듈(424)은 코드 파일의 편집을 지원하고, 또한 컴파일링 모듈(426)과 운행 디버그 모듈(428)을 통하여 클라우드 관리 유닛(44)에 요구를 전송한다. 크로스 플랫폼 코드 프레임 생성 모듈(422)은 크로스 플랫폼 코드 편집 모듈(424), 컴파일링 모듈(426), 운행 디버그 모듈(428)과 연결되어 디버그 요구의 컴파일링과 운행 디버그를 수행한다.
클라우드 관리 유닛(44)은 집적 개발 환경 유닛(42)의 컴파일링과 디버그에 응답하여 컴파일링, 가상 머신의 클라우드(가상기기) 환경 및 단말 클라우드의 스케줄링을 제공하며 인터페이스의 호출과 리턴을 컴파일링하고, 명령의 송신과 결과의 피드백을 디버그하며, 또한 컴파일링 디버그 요구와 정보를 컴파일링 디버그 클라우드 유닛(46)으로 송신하며, 그리고 단말 테스트의 요구 및 정보는 단말 클라우드 유닛(48)으로 송신된다. 클라우드 관리 유닛(44)은 인터페이스 서비스 모듈(442)과, 클라우드 스케줄링 모듈(444)과, 부하 균형 모듈(446)과, 모니터링 통계 모듈(448)을 포함한다. 여기서, 인터페이스 서비스 모듈(442)은 부하 균형 모듈(446)과 클라우드 스케줄링 모듈(444)에 연결되어 클라우드 컴파일링 혹은 단말의 디버그 요구 및 결과의 피드백을 시작하고 동시에 부하 균형 모듈(446)을 통하여 네트워크 기기와 서버의 대역폭을 확장시키고 처리량을 증가시키며 네트워크 데이터 처리 능력을 강화하고 네트워크의 융통성 및 이용가능성을 향상시킨다. 인터페이스 서비스 모듈(442)은 모니터링 통계 모듈(448)에 연결되어 실시간 모니터링을 수행한다.
컴파일링 디버그 클라우드 유닛(46)(상기 컴파일링 모듈(24)과 제1 디버그 유닛(262)의 기능을 실현함)은 컴파일링 환경(462)과 가상 머신(464)을 포함하고, 즉, 여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경, 디버그 환경을 포함하며, 각종 단말 조작 시스템은 1~N개의 컴파일링 환경을 제공하고 각종 단말은 1~N개의 가상 머신을 제공하며, 가상 기기를 이용하여 동일한 메인 기기에 다수의 가상 기기를 장착하고 있다. 클라우드 관리 유닛(46)에 의하여 하드웨어 기능을 최대한으로 발휘하고 이와 동시에 다수의 애플리케이션의 컴파일링과 디버그를 수행할 수 있어 클라우드 관리 유닛(46)의 컴파일링 디버그 코드요구를 수신한 후, 단말 애플리케이션의 컴파일링과 디버그를 시작하고 또한 결과를 클라우드 관리 유닛(46)에 피드백한다. 여기서, 컴파일링 환경(462)은 가상 머신(464)에 연결되고 컴파일링 환경(462)은 코드에 컴파일링을 수행하고 가상 머신(464)은 코드에 디버그를 수행한다.
단말 클라우드 유닛(48)(상기 제2 디버그 유닛(264)의 기능을 실현함)은 여러 가지 단말 기기을 제공하는데, 즉, 여러 가지 단말의 실제 컴퓨터의 디버그 환경을 제공하고 단말의 스케줄링, 호출과 스크린이 클라우드 관리 유닛(44)의 단말 디버그 요구를 수신한 후, 대응한 상황을 클라우드 관리 유닛(44)에 리턴하여 스케줄링과 호출을 수행하도록 한다.
도 5는 본 발명의 바람직한 실시예에 따른 애플리케이션의 개발, 컴파일링 및 디버그 방법을 나타낸 흐름도로 도 5에 도시한 바와 같이 상기 시스템에 기반한 애플리케이션의 개발, 컴파일링, 디버그 방법은 하기 단계를 포함한다.
개발자가 애플리케이션을 구축하고 애플리케이션 템플릿을 선택하며 메시지를 집적 개발 환경 유닛(42) 중의 크로스 플랫폼 코드 프레임 생성 모듈(422)에 송신하고 크로스 플랫폼 코드 프레임 생성 모듈(422)이 크로스 플랫폼 코드 프레임을 생성한다(단계 S502).
집적 개발 환경 유닛(42)에서 크로스 플랫폼 코드 프레임의 생성을 완성한 후, 개발자에 표시한다(단계 S504).
크로스 플랫폼 코드 편집 모듈(424)을 이용하여 크로스 플랫폼 코드에 편집, 설계를 수행한다(단계 S506).
크로스 플랫폼 코드의 편집, 설계를 완성하고 기억한다(단계 S508).
호출 컴파일링 모듈(426)이 컴파일링 요구 정보를 발기하고 요구 정보를 클라우드 관리 유닛(44)으로 송신한다(단계 S510).
집적 개발 환경 유닛(42)으로부터 송신된 컴파일링 요구 정보를 클라우드 관리 유닛(44) 중의 인터페이스 서비스 모듈(442)이 수신한다(단계 S512).
인터페이스 서비스 모듈(442)이 정보를 송수신하여 모니터링 통계 모듈(448)을 트리거하고 정보의 모니터링과 통계를 수행한다(단계 S514).
부하 균형 모듈(446)에 진입하여 네트워크의 능력을 향상시킨다(단계 S516).
단계 S514와 단계 S516은 전후 순서가 없고, 즉, 단계 S516을 단계 S512 다음에 수행할 수도 있고 클라우드 관리 유닛(44)에 액세스할 경우 우선적으로 부하 균형을 수행한다.
우선 부하 균형 모듈(446)에 진입한 후 클라우드 스케줄링 모듈(444)을 수행하여 컴파일링 디버그 클라우드 유닛(46)을 호출한다(단계 S518).
컴파일링 요구에서 컴파일링 디버그 클라우드 유닛(46) 중의 컴파일링 환경(462)를 호출하여 컴파일링한다(단계 S520).
컴파일링 정보와 결과를 클라우드 관리 유닛(44)의 인터페이스 서비스 모듈(442)을 통하여 집적 개발 환경 유닛(42)으로 피드백하여 개발자에 표시한다(단계 S522).
컴파일링에 성공하였을 경우 개발자는 운행 디버그 모듈(428)을 호출하여 가상 머신의 운행 디버그 요구를 발기하고 요구 정보를 클라우드 관리 유닛(44)으로 송신한다(단계 S524).
클라우드 관리 유닛(44) 중의 인터페이스 서비스 모듈(442)이 집적 개발 환경 유닛(42)으로부터 송신된 운행 디버그 요구 정보를 수신한다(단계 S526).
인터페이스 서비스 모듈(442)은 정보를 송수신하여 모니터링 통계 모듈(448)을 트리거하여 정보의 모니터링과 통계를 수행한다(단계 S528).
부하 균형 모듈(446)에 진입하여 네트워크의 능력을 향상시킨다(단계 S530).
단계 S528과 단계 S530은 전후 순서가 없고, 즉, 단계 S530을 단계 S526 다음에 수행할 수도 있고 클라우드 관리 유닛(44)에 액세스할 경우 우선적으로 부하 균형을 수행한다.
우선 부하 균형 모듈(446)에 진입한 후 클라우드 스케줄링 모듈(444)을 수행하여 컴파일링 디버그 클라우드 유닛(46)을 호출한다(단계 S532).
디버그 요구 정보를 운행하여 컴파일링 디버그 클라우드 유닛(46) 중의 가상 머신(464)을 호출하고 디버그를 수행한다(단계 S534).
디버그 정보와 결과를 클라우드 관리 유닛(44)의 인터페이스 서비스 모듈(442)을 통하여 집적 개발 환경 유닛(42)으로 피드백하여 개발자에 표시한다(단계 S536).
컴파일링에 성공하였을 경우 개발자는 운행 디버그 모듈(428)을 호출하고 단말의 운행 디버그 요구를 발기하며 요구 정보를 클라우드 관리 유닛(44)으로 송신한다(단계 S538).
여기서, 단계 S538과 단계 S524는 전후 순서가 없다. 즉, 단말의 디버그를 수행한 후 가상 머신의 디버그를 수행할 수도 있다.
클라우드 관리 유닛(44) 중의 인터페이스 서비스 모듈(442)이 집적 개발 환경 유닛(42)으로부터 송신된 운행 디버그 요구 정보를 수신한다(단계 S540).
인터페이스 서비스 모듈(442)은 정보를 송수신하여 모니터링 통계 모듈(448)을 트리거하여 정보의 모니터링과 통계를 수행한다(단계 S542).
부하 균형 모듈(446)에 진입하여 네트워크의 능력을 향상시킨다(단계 S544).
단계 S542와 단계 S544는 전후 순서가 없고, 즉, 단계 S544를 단계 S540 다음에 수행할 수도 있고 클라우드 관리 유닛(44)에 액세스할 경우 우선적으로 부하 균형을 수행한다.
우선 부하 균형 모듈(446)에 진입한 후 클라우드 스케줄링 모듈(444)을 수행하고 컴파일링 디버그 클라우드 유닛(46)을 호출한다(단계 S546).
디버그 요구 정보를 운행하여 단말 클라우드 유닛(48) 중의 단말 기기를 호출하고 디버그를 수행한다(단계 S548).
디버그 정보와 결과를 클라우드 관리 유닛(44)의 인터페이스 서비스 모듈(442)을 통하여 집적 개발 환경 유닛(42)에 피드백하여 개발자에 표시한다(단계 S550).
여기서, 흐름도에 나타낸 단계를 한 세트의 계산기가 명령을 수행가능한 계산기 시스템에서 수행할 수 있고 또한 흐름도에 논리적 순서를 나타내었지만 도에 도시한 단계 혹은 설명한 단계를 기타 순서에 따라 수행할 수도 있다.
상기한 바와 같이 본 발명의 상기 실시예에 의하면 애플리케이션의 개발, 컴파일링 및 디버그 방법 및 장치을 제공한다. 본 발명의 실시예에 의하면 개발자에 집적된 크로스 플랫폼 애플리케이션 개발 환경을 제공하고 개발자가 한 세트의 개발 환경을 이용하여 한 세트의 코드, 즉, 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드를 개발하면 서로 다른 단말 조작 시스템에서 운행 가능한 애플리케이션을 컴파일링할 수 있고 또한 서로 다른 단말과 가상 머신에서 디버그를 수행할 수 있으며 한 세트의 애플리케이션 코드를 서로 다른 단말 환경에서 운행할 수 있는 효과를 실현할 수 있어 대량의 부호화 및 서로 다른 환경에서의 컴파일링 디버그 시간을 절약할 수 있고 다수의 서로 다른 단말 조작 시스템에서 운행할 수 있는 애플리케이션을 고속으로 개발할 수 있으며 개발 효율을 향상시키고 연구비용을 절감시키는 목표를 실현할 수 있다. 그리고 본 발명의 실시예는 다수의 개발자의 동시 온라인 개발, 컴파일링, 디버그를 지원한다.
당업자라면 상기한 본 발명의 각 블록 혹은 각 단계를 범용 계산장치를 통하여 실현할 수 있고 단일 계산장치에 집중시키거나 혹은 다수의 계산장치로 구성된 네트워크에 분포시킬 수 있고, 또한 계산장치가 실행할 수 있는 프로그램 코드로 실현할 수 도 있으므로, 기억장치에 기억하여 계산장치에 실행시키거나 혹은 각각 집적회로 블록으로 만들거나 혹은 그 중의 다수의 블록 혹은 단계를 하나의 집적회로 블록으로 만들어 실현할 수도 있음을 알 수 있다. 따라서 본 발명은 특정된 하드웨어와 소프트웨어의 결합에 한정되지 않는다.
상기한 내용은 본 발명의 바람직한 실시예로, 본 발명을 한정하는 것은 아니다. 당업자라면 본 발명에 여러 가지 변화를 가져올 수 있다. 본 발명의 정신과 원칙을 벗어나지 않는 범위 내에서 수행하는 모든 수정, 동등교체, 개량 등은 본 발명의 보호 범위에 속한다.
본 발명의 실시예에 따른 기술방안은 APP 분야에 적용되고 개발자에 집적된 크로스 플랫폼 애플리케이션 개발 환경을 제공하고 개발자가 한 세트의 개발 환경을 이용하여 한 세트의 코드, 즉, 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드를 개발하면 서로 다른 단말 조작 시스템에서 운행 가능한 애플리케이션을 컴파일링할 수 있고 또한 서로 다른 단말과 가상 머신에서 디버그를 수행할 수 있으며 한 세트의 애플리케이션 코드를 서로 다른 단말 환경에서 운행할 수 있는 효과를 실현할 수 있어 대량의 부호화 및 서로 다른 환경에서의 컴파일링 디버그 시간을 절약할 수 있고 다수의 서로 다른 단말 조작 시스템에서 운행할 수 있는 애플리케이션을 고속으로 개발할 수 있으며 개발 효율을 향상시키고 연구비용을 절감시키는 목표를 실현할 수 있다. 그리고 본 발명의 실시예는 다수의 개발자의 동시 온라인 개발, 컴파일링, 디버그를 지원한다.

Claims (16)

  1. 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가지고 있고 애플리케이션을 실현하기 위한 코드를 획득하는 단계;
    여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 상기 코드에 컴파일링을 수행하는 단계; 및
    상기 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경에 있어서 컴파일링된 상기 코드에 디버그를 수행하는 단계를 포함하는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  2. 제1항에 있어서,
    상기 코드를 획득하는 단계는,
    상기 애플리케이션을 위하여 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드 프레임을 생성하는 단계 및
    상기 코드 프레임에 근거하여 편집하여 얻은 코드를 획득하는 단계를 포함하는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  3. 제1항에 있어서,
    여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 상기 코드에 컴파일링을 수행하는 단계는,
    상기 코드에 컴파일링을 수행하는 제1 컴파일링 요구를 수신하는 단계 및
    수신한 하나 혹은 다수의 컴파일링 요구에 부하 균형을 수행한 후 상기 제1 컴파일링 요구에 근거하여 상기 코드에 컴파일링을 수행하는 단계를 포함하되,
    상기 제1 컴파일링 요구가 상기 하나 혹은 다수의 컴파일링 요구에 포함되는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  4. 제3항에 있어서,
    상기 코드에 컴파일링을 수행하는 제1 컴파일링 요구를 수신한 후,
    리소스가 전부 사용되었다고 확정되면 수신한 하나 혹은 다수의 컴파일링 요구를 배열시키는 단계를 더 포함하는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  5. 제1항에 있어서,
    여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 코드에 컴파일링을 수행한 후,
    컴파일링 정보와 결과를 피드백하는 단계를 더 포함하는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  6. 제1항에 있어서,
    상기 컴파일링 환경에 대응되는 디버그 환경이, 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경과, 여러 가지 단말의 실제 컴퓨터의 디버그 환경중의 최소한 하나를 포함하고, 각종 단말 조작 시스템은 하나 혹은 다수의 컴파일링 환경 및 그에 대응되는 하나 혹은 다수의 디버그 환경을 제공하며, 상기 여러 가지 서로 다른 단말 조작 시스템의 디버그 환경은 가상 머신에 의하여 실현되는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  7. 제6항에 있어서,
    상기 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경에 있어서 컴파일링된 상기 코드에 디버그를 수행하는 단계는,
    여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경을 선택하여 컴파일링된 상기 코드에 디버그를 수행하는 단계와,
    여러 가지 단말의 실제 컴퓨터의 디버그 환경으로부터 상기 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 단말의 실제 컴퓨터의 디버그 환경을 선택하여 컴파일링된 상기 코드에 디버그를 수행하는 단계중의 최소한 하나를 포함하는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  8. 제7항에 있어서,
    여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 상기 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경을 선택하여 컴파일링된 상기 코드에 디버그를 수행하는 단계는,
    상기 코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신하는 단계 및
    수신한 하나 혹은 다수의 가상 머신 운행 디버그 요구에 부하 균형을 수행한 후 상기 제1가상 머신 운행 디버그 요구에 근거하여 상기 코드에 디버그를 수행하는 단계를 포함하되,
    상기 제1가상 머신 운행 디버그 요구가 상기 하나 혹은 다수의 가상 머신 운행 디버그 요구에 포함되는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  9. 제8항에 있어서,
    상기 코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신한 후,
    상기 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경에 모니터링과 통계를 수행하는 단계를 더 포함하는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  10. 제7항에 있어서,
    여러 가지 단말의 실제 컴퓨터의 디버그 환경으로부터 상기 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 단말의 실제 컴퓨터의 디버그 환경을 선택하여 컴파일링된 상기 코드에 디버그를 수행하는 단계는,
    상기 코드에 디버그를 수행하는 제1 단말 운행 디버그 요구를 수신하는 단계 및
    수신한 하나 혹은 다수의 단말 운행 디버그 요구에 부하 균형을 수행한 후 상기 제1 단말 운행 디버그 요구에 근거하여 상기 코드에 디버그를 수행하는 단계를 포함하되,
    상기 제1 단말 운행 디버그 요구는 상기 하나 혹은 다수의 단말 운행 디버그 요구에 포함되는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  11. 제10항에 있어서,
    상기 코드에 디버그를 수행하는 제1 단말 운행 디버그 요구를 수신한 후,
    상기 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 단말의 실제 컴퓨터의 디버그 환경에 모니터링과 통계를 수행하는 단계를 더 포함하는 방법.
  12. 제8항 또는 제10항에 있어서,
    상기 코드에 디버그를 수행하는 제1가상 머신 운행 디버그 요구를 수신한 후,
    가상 머신의 리소스 풀링의 현재 사용 상황에 근거하여 가상 머신이 전부 사용되었다고 확정되면 수신한 하나 혹은 다수의 가상 머신 운행 디버그 요구를 배열시키는 단계를 더 포함하고,
    상기 코드에 디버그를 수행하는 제1 단말 운행 디버그 요구를 수신한 후,
    단말의 실제 컴퓨터가 전부 사용되었다고 확정되면 수신한 하나 혹은 다수의 단말 운행 디버그 요구를 배열시키는 단계를 더 포함하는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  13. 제7항에 있어서,
    여러 가지 서로 다른 단말 조작 시스템의 디버그 환경으로부터 상기 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 가상 머신의 디버그 환경을 선택하여 컴파일링된 상기 코드에 디버그를 수행한 후,
    가상 머신의 디버그 정보와 결과를 피드백하는 단계를 더 포함하고,
    여러 가지 단말의 실제 컴퓨터의 디버그 환경으로부터 상기 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 단말의 실제 컴퓨터의 디버그 환경을 선택하여 컴파일링된 상기 코드에 디버그를 수행한 후,
    단말의 디버그 정보와 결과를 피드백하는 단계를 더 포함하는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 한 가지 혹은 여러 가지 컴파일링 환경이 리소스 풀링의 사용 상황에 근거하여 자동적으로 할당되는, 애플리케이션의 개발, 컴파일링 및 디버그 방법.
  15. 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가지고 있고 애플리케이션을 실현하기 위한 코드를 획득하는 획득모듈과,
    여러 가지 서로 다른 단말 조작 시스템의 컴파일링 환경으로부터 한 가지 혹은 여러 가지 컴파일링 환경을 선택하여 상기 코드에 컴파일링을 수행하는 컴파일링 모듈과,
    상기 한 가지 혹은 여러 가지 컴파일링 환경에 대응되는 디버그 환경에 있어서 컴파일링된 상기 코드에 디버그를 수행 디버그 모듈을 포함하는, 애플리케이션의 개발, 컴파일링 및 디버그 장치.
  16. 제15항에 있어서,
    상기 획득모듈이,
    상기 애플리케이션을 위하여 한 가지 혹은 여러 가지 단말 조작 시스템간의 호환성을 가진 코드 프레임을 생성하는 생성 유닛과,
    상기 코드 프레임에 근거하여 편집하여 얻은 코드를 획득하는 획득 유닛을 포함하는, 애플리케이션의 개발, 컴파일링 및 디버그 장치.
KR1020157011197A 2012-09-29 2013-08-29 애플리케이션의 개발, 컴파일링 및 디버그 방법과 장치 KR20150063514A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210378845.5A CN103713889B (zh) 2012-09-29 2012-09-29 一种应用的开发、编译和调试方法以及装置
CN201210378845.5 2012-09-29
PCT/CN2013/082579 WO2014048215A1 (zh) 2012-09-29 2013-08-29 一种应用的开发、编译和调试方法以及装置

Publications (1)

Publication Number Publication Date
KR20150063514A true KR20150063514A (ko) 2015-06-09

Family

ID=50386963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157011197A KR20150063514A (ko) 2012-09-29 2013-08-29 애플리케이션의 개발, 컴파일링 및 디버그 방법과 장치

Country Status (6)

Country Link
US (1) US20150227449A1 (ko)
EP (1) EP2902901A4 (ko)
JP (1) JP2015534688A (ko)
KR (1) KR20150063514A (ko)
CN (1) CN103713889B (ko)
WO (1) WO2014048215A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200078945A (ko) * 2018-12-24 2020-07-02 주식회사 구름 복수의 컴파일 주체를 이용한 코딩 시스템의 효율을 높이는 방법 및 장치
KR20210012789A (ko) * 2019-07-26 2021-02-03 서울시립대학교 산학협력단 코딩 교육 방법 및 코딩 교육 로봇

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335282A (zh) * 2014-07-30 2016-02-17 国际商业机器公司 用于应用的跨平台测试的方法和系统
CN104333587B (zh) * 2014-10-30 2018-07-17 北京思特奇信息技术股份有限公司 一种多平台事件统一处理的方法及系统
CN104331287A (zh) * 2014-10-31 2015-02-04 北京思特奇信息技术股份有限公司 一种应用发布方法及系统
CN104461905A (zh) * 2014-12-30 2015-03-25 东信和平科技股份有限公司 一种智能卡虚拟机、api库与上层应用同时调试的方法及系统
US9645814B1 (en) 2015-05-04 2017-05-09 Amazon Technologies, Inc. Generating and publishing applications for multiple platforms
CN105607896B (zh) * 2015-09-25 2018-10-02 中国铁路总公司 应用程序的开发方法和系统
US9858177B2 (en) 2015-10-30 2018-01-02 International Business Machines Corporation Automated test generation for multi-interface enterprise virtualization management environment
CN105677561B (zh) * 2015-12-31 2019-01-29 广州华多网络科技有限公司 移动产品多平台测试方法及系统
US10216509B2 (en) * 2016-03-18 2019-02-26 TUPL, Inc. Continuous and automatic application development and deployment
TWI590088B (zh) * 2016-03-23 2017-07-01 李佰聰 結合程式包創設新行動應用程式的方法、行動裝置及系統
CN105893105A (zh) * 2016-03-29 2016-08-24 乐视控股(北京)有限公司 一种针对多个编译平台的编译系统和方法
CN105955794A (zh) * 2016-04-27 2016-09-21 国网辽宁省电力有限公司信息通信分公司 一种桌面操作系统的构造方法及系统
CN105930721B (zh) 2016-04-28 2018-11-23 北京小米移动软件有限公司 一种管理应用程序的方法和装置
CN106406971B (zh) * 2016-09-26 2019-05-07 杭州迪普科技股份有限公司 一种代码文件的编译方法及装置
US10572373B2 (en) 2017-04-20 2020-02-25 International Business Machines Corporation Automated test generation for multi-interface and multi-platform enterprise virtualization management environment
US11042398B2 (en) 2018-07-09 2021-06-22 Samsung Electronics Co., Ltd. System and method for guest operating system using containers
CN109445772B (zh) * 2018-12-29 2022-05-24 山东劳动职业技术学院(山东劳动技师学院) 一种面向智能手机的软件应用框架及其开发系统
CN111176654B (zh) * 2019-11-18 2021-04-27 浙江大学 一种基于多用户缓存的物联网应用在线编译方法
CN112650500A (zh) * 2020-12-31 2021-04-13 中国农业银行股份有限公司 一种采用jupyter的自动编译方法及装置
US11580009B2 (en) * 2021-02-24 2023-02-14 Northrop Grumman Systems Corporation Systems and methods for program code defect and acceptability for use determination
EP4174639A1 (en) * 2021-06-22 2023-05-03 Beijing Baidu Netcom Science Technology Co., Ltd. Auxiliary processing method and device for software development, storage medium and program product
CN115827056B (zh) * 2023-02-01 2023-05-09 北京乐研科技股份有限公司 一种配置多种编译环境变换的方法
CN116560658B (zh) * 2023-06-29 2024-02-06 睿思芯科(深圳)技术有限公司 基于云技术的芯片集成开发系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002202886A (ja) * 2000-10-27 2002-07-19 Toshiba Corp アプリケーション開発システム、その方法およびアプリケーション開発プログラムおよびアプリケーション生成方法
JP2004280476A (ja) * 2003-03-17 2004-10-07 Matsushita Electric Ind Co Ltd プログラム開発装置、およびプログラム開発プログラム
US8180922B2 (en) * 2003-11-14 2012-05-15 Cisco Technology, Inc. Load balancing mechanism using resource availability profiles
US20090228862A1 (en) * 2008-03-04 2009-09-10 Anders Bertelrud Modularized integrated software development environments
US20090282384A1 (en) * 2008-05-12 2009-11-12 Raytheon Company Framework-Based Model-Driven Software Development
JP2010039695A (ja) * 2008-08-04 2010-02-18 Fujitsu Microelectronics Ltd マルチタスク・オペレーティング・システム及びデバッグ装置
US9323647B2 (en) * 2009-02-10 2016-04-26 Sap Se Request-based activation of debugging and tracing
US8776028B1 (en) * 2009-04-04 2014-07-08 Parallels IP Holdings GmbH Virtual execution environment for software delivery and feedback
CA2698066A1 (en) * 2009-07-31 2011-01-31 Nitobi Software Inc. System and method for remotely compiling multi-platform native applications for mobile devices
US20120284696A1 (en) * 2009-12-21 2012-11-08 Nokia Corporation Method, Apparatuses and a System for Compilation
CN101800910B (zh) * 2010-01-25 2014-04-09 中兴通讯股份有限公司 一种模拟系统、pc侧模拟器及手机侧代理客户端
EP2558921A4 (en) * 2010-04-15 2014-07-23 Itr Group Inc PLATFORM-EXTENSIVE APPLICATION FRAMEWORK
US20110265069A1 (en) * 2010-04-21 2011-10-27 Salesforce.Com Methods and systems for execution of tenant code in an on-demand service environment including utilization of shared resources and inline governor limit enforcement
US8752017B2 (en) * 2010-05-17 2014-06-10 Salesforce.Com, Inc. Method and system for remote debug protocol proxying for production debugging; selective session and user routing for debugging in multi-tenant cloud computing infrastructure
US9038038B1 (en) * 2010-06-01 2015-05-19 Google Inc. Just in time cloud compilation
US8738860B1 (en) * 2010-10-25 2014-05-27 Tilera Corporation Computing in parallel processing environments
CN102693121A (zh) * 2011-03-24 2012-09-26 叶盛誉 一种跨平台手机应用的自动开发制作系统及实现方法
US8612937B2 (en) * 2011-08-25 2013-12-17 International Business Corporation Synchronously debugging a software program using a plurality of virtual machines
US9720808B2 (en) * 2011-11-29 2017-08-01 Red Hat, Inc. Offline debugging using a replicated operating environment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200078945A (ko) * 2018-12-24 2020-07-02 주식회사 구름 복수의 컴파일 주체를 이용한 코딩 시스템의 효율을 높이는 방법 및 장치
KR20210012789A (ko) * 2019-07-26 2021-02-03 서울시립대학교 산학협력단 코딩 교육 방법 및 코딩 교육 로봇
WO2021020781A1 (ko) * 2019-07-26 2021-02-04 서울시립대학교 산학협력단 코딩 교육 방법 및 코딩 교육 로봇

Also Published As

Publication number Publication date
EP2902901A4 (en) 2016-05-11
CN103713889B (zh) 2018-07-13
WO2014048215A1 (zh) 2014-04-03
US20150227449A1 (en) 2015-08-13
CN103713889A (zh) 2014-04-09
EP2902901A1 (en) 2015-08-05
JP2015534688A (ja) 2015-12-03

Similar Documents

Publication Publication Date Title
KR20150063514A (ko) 애플리케이션의 개발, 컴파일링 및 디버그 방법과 장치
CN101930400B (zh) Sdk自动化测试系统及方法
CN112257135B (zh) 一种基于多线程的模型加载方法、装置、存储介质及终端
CN102752369B (zh) 电视应用服务的提供方法及虚拟化内容服务平台
CN113722020B (zh) 接口调用方法、装置和计算机可读存储介质
CN108228444B (zh) 一种测试方法和装置
CN111522727B (zh) 一种模拟对象测试方法、设备和系统
CN104298602A (zh) 一种调试应用程序的方法及装置
CN102375743B (zh) 一种基于模型和模板开发soa系统的方法
Park et al. Design and evaluation of mobile offloading system for web-centric devices
CN110750453B (zh) 基于html5的智能移动端测试方法、系统、服务器及存储介质
CN111258902B (zh) 基于SockJS服务器的性能测试方法和性能测试系统
CN111104281B (zh) 一种游戏性能监控方法、装置、系统及存储介质
CN110012003B (zh) 一种云应用抓屏方法和装置
CN109144840A (zh) 一种测试方法、装置及其设备
KR20130000045A (ko) 클라우드 컴퓨팅 환경하에서 멀티 단말 장치 간 서버-클라이언트 서비스 환경을 지원하는 앱 구동 체계
CN109032607A (zh) 基于lua脚本的机房监控实时数据解析引擎及脚本调试工具
CN110465093B (zh) 一种基于Unity的包体冗余资源分析方法及其装置
Wang et al. Analysis of local re-execution in mobile offloading system
CN109460280A (zh) 运行程序的方法、终端
CN113641577A (zh) 一种终端产品应用程序的调试方法、装置
CN113448583A (zh) 基于物联网的配置开发方法、装置、终端设备及介质
CN113778546A (zh) 灰度优化的方法和装置
Xu et al. Energy consumption of mobile offloading for javascript applications
CN111385837A (zh) 对无线公网通信单元进行测试的系统及方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application