KR20230079348A - 클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체 - Google Patents

클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체 Download PDF

Info

Publication number
KR20230079348A
KR20230079348A KR1020237004762A KR20237004762A KR20230079348A KR 20230079348 A KR20230079348 A KR 20230079348A KR 1020237004762 A KR1020237004762 A KR 1020237004762A KR 20237004762 A KR20237004762 A KR 20237004762A KR 20230079348 A KR20230079348 A KR 20230079348A
Authority
KR
South Korea
Prior art keywords
virtual machine
encoding
code
task
cloud
Prior art date
Application number
KR1020237004762A
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 KR20230079348A publication Critical patent/KR20230079348A/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체를 제공하는 바, 컴퓨터 기술분야에 관한 것이며, 특히 클라우드 코드 개발, 온라인 코딩 기술분야에 관한 것이다. 본 발명을 실시하기 위한 구체적인 실시 방안으로는, 클라이언트는 에이전트 모듈과 원격 서버 모듈을 포함하고; 원격 서버 모듈은 사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 사용자가 입력한 코드를 클라우드 서버에 동기화시키며; 클라우드 서버는 원격 서버 모듈에 대응하는 인코딩용 가상 머신을 구축하고; 원격 서버 모듈이 스트림 동기화 방식으로 동기화시킨 코드를 가상 머신에 기록하며; 인코딩용 가상 머신을 이용하여 코드를 실행하고, 대응하는 태스크를 생성하며; 에이전트 모듈은클라우드 서버에서 태스크를 풀 방식으로 획득하고, 태스크를 원격 서버 모듈에 송신하며; 원격 서버 모듈은 또한 태스크를 실행하도록 구성됨으로써, 클라우드 코드의 개발을 구현하였고, 스트림 동기화 방식으로 클라이언트가 클라우드 서버와의 코드 일치성을 향상시켰으며, 클라우드 코드의 개발의 응답 속도를 향상시켰다.

Description

클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체
본 발명은 2021년 11월 26일에 중국 특허국에 제출한, 출원 번호가 202111422652.0이고 발명의 명칭이 “클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체”인 중국 특허 출원의 우선권을 주장하는 바, 이의 전부 내용은 참조로서 본 발명에 인용된다.
본 발명은 컴퓨터 기술분야에 관한 것으로, 상세하게는, 클라우드 코드 개발, 온라인 코딩 기술에 관한 것이다.
클라우드 코드 개발은 클라우드 일체화의 백엔드 클라우드 서비스를 제공하는 것으로, 종래의 프론트엔드 개발 모드와 비교하면, 클라우드 코드 개발은 데이터베이스, 저장, 함수, 정적 호스팅 등 기본 기능을 포함한 완전한 백엔드 클라우드 서비스를 제공할 수 있어, 프론트엔드의 하드웨어 리소스를 대폭 절약할 수 있고, 사용자는 심지어 스마트폰을 통해 고속 연산 성능 코드의 개발을 구현할 수 있다. 또한, 컴퓨터 기술이 발전됨에 따라, 코드의 개발은 점차적으로 본래의 단일 아키텍처 모드로부터, 느슨하게 결합(loose-coupling)되고 독립적으로 배포 가능한 많은 작은 어셈블리 유닛 또는 서비스로 구성된 복수 개의 서비스 애플리케이션으로 분할되고 있고, 클라우드 코드 개발은 협력으로 개발된 시나리오에 훌륭하게 적응할 수 있다.
본 발명은 클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체를 제공한다.
본 발명의 일 측면에 따르면, 본 발명은 클라우드 코드 개발 시스템을 제공하는 바, 상기 클라우드 코드 개발 시스템은,
클라이언트와 클라우드 서버를 포함하고, 상기 클라이언트는 에이전트(Agent) 모듈과 원격 서버 모듈을 포함하며;
상기 원격 서버 모듈은 사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 사용자가 입력한 코드를 상기 클라우드 서버에 동기화시키도록 구성되고;
상기 클라우드 서버는, 상기 원격 서버 모듈에 대응하는 인코딩용 가상 머신을 구축하고; 상기 원격 서버 모듈이 스트림 동기화 방식으로 동기화한 코드를 상기 가상 머신에 기록하며; 상기 인코딩용 가상 머신을 이용하여 상기 코드를 실행하고, 대응하는 태스크를 생성하도록 구성되고;
상기 에이전트 모듈은, 상기 클라우드 서버에서 상기 태스크를 풀(pull) 방식으로 획득하고, 상기 태스크를 상기 원격 서버 모듈에 송신하도록 구성되며;
상기 원격 서버 모듈은, 상기 태스크를 실행하도록 더 구성된다.
본 발명의 다른 일 측면에 따르면, 클라이언트에 적용되는 클라우드 코드 개발 방법을 제공하는 바, 상기 방법은,
사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 코드를 클라우드 서버에 동기화시키는 것;
상기 클라우드 서버에서 태스크를 풀 방식으로 획득하는 것, - 여기서, 상기 태스크는 상기 클라우드 서버에서의 인코딩용 가상 머신이 상기 코드에 기반하여 생성한 것임 -;
상기 태스크를 실행하는 것을 포함한다.
본 발명의 다른 일 측면에 따르면, 클라우드 서버에 적용되는 클라우드 코드 개발 방법을 제공하는 바, 상기 방법은,
인코딩용 가상 머신을 구축하는 것;
스트림 동기화 방식으로 동기화된 코드를 상기 가상 머신에 기록하는 것;
상기 인코딩용 가상 머신을 이용하여 상기 코드를 실행하고, 대응하는 태스크를 생성하는 것을 포함한다.
본 발명의 다른 일 측면에 따르면, 클라이언트에 적용되는 클라우드 코드 개발 장치를 제공하는 바, 상기 장치는,
사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 코드를 클라우드 서버에 동기화시키도록 구성되는 원격 서버 모듈;
상기 클라우드 서버에서 태스크를 풀 방식으로 획득하고, 상기 태스크를 상기 원격 서버 모듈에 송신하도록 구성되는 에이전트 모듈을 포함하고,
상기 태스크는 상기 클라우드 서버에서의 인코딩용 가상 머신이 상기 코드에 기반하여 생성한 것이고,
상기 원격 서버 모듈은, 상기 태스크를 실행하도록 더 구성된다.
본 발명의 다른 일 측면에 따르면, 클라우드 서버에 적용되는 클라우드 코드 개발 장치를 제공하는 바, 상기 장치는,
인코딩용 가상 머신을 구축하도록 구성되는 가상 머신 구축 모듈;
스트림 동기화 방식으로 동기화된 코드를 상기 가상 머신에 기록하도록 구성되는 코드 동기화 모듈;
상기 인코딩용 가상 머신을 이용하여 상기 코드를 실행하고, 대응하는 태스크를 생성하도록 구성되는 태스크 생성 모듈을 포함한다.
본 발명의 다른 일 측면에 따르면, 전자 기기를 제공하는 바, 상기 전자 기기는,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서와 통신 연결되는 메모리를 포함하고,
상기 메모리에 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되어 있고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 본 발명의 어느 하나의 클라우드 코드 개발 방법을 실행하게 한다.
본 발명의 다른 일 측면에 따르면, 컴퓨터 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 저장매체를 제공하는 바, 상기 컴퓨터 명령은 상기 컴퓨터가 본 발명의 어느 하나의 클라우드 코드 개발 방법을 실행하게 한다.
본 발명의 다른 일 측면에 따르면, 컴퓨터 프로그램을 포함하는 컴퓨터 프로그램 제품을 제공하는 바, 상기 컴퓨터 프로그램은 프로세서에 의해 실행 시 본 발명의 어느 하나의 클라우드 코드 개발 방법을 구현한다.
본 발명의 실시예에서, 클라우드 코드의 개발을 구현하였고, 코드 파일의 동기화 방식에 비교하여, 스트림 동기화 방식은 클라이언트가 클라우드 서버와의 코드 일치성을 향상시켰고, 클라우드 코드 개발의 응답 속도를 향상시킬 수 있다.
본 명세서의 발명의 설명에 기재된 내용은 본 발명의 실시예의 관건적인 또는 중요한 특징을 명시하려는 것도 아니고, 본 발명의 범위를 한정하려는 것도 아님을 이해하여야 한다. 본 발명의 기타 특징은 본 명세서의 하기 설명을 통해 더 용이하게 이해될 수 있을 것이다.
본 발명의 실시예 및 종래기술의 기술적 방안을 보다 명확하게 설명하기 위하여, 이하에서는 실시예 및 종래기술에서 요구되는 도면을 간략히 소개한다. 하지만, 이하에서 설명되는 도면은 단지 본 발명의 일부 실시예일 뿐, 본 발명이 속하는 기술분야의 통상의 지식을 가진자라면, 그 어떠한 창조적인 노동을 들이지 않는 전제하에서도 이러한 도면에 기반하여 다른 도면을 얻을 수 있는 것은 분명하다.
도 1은 본 발명의 제1 실시예에 따른 개략도이고;
도 2는 본 발명의 제2 실시예에 따른 개략도이고;
도 3은 본 발명의 Agent 설치 방법에 따른 개략도이고;
도 4는 본 발명의 제3 실시예에 따른 개략도이고;
도 5는 본 발명의 제4 실시예에 따른 개략도이고;
도 6은 본 발명의 클라이언트에 적용되는 클라우드 코드 개발 방법에 따른 개략도이고;
도 7은 본 발명의 클라우드 서버에 적용되는 클라우드 코드 개발 방법에 따른 개략도이고;
도 8은 본 발명의 실시예에 따른 클라우드 코드 개발 방법을 구현하기 위한 전자 기기의 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 예시적인 실시예에 대해 설명하기로 한다. 이해를 돕기 위해, 하기 설명에 본 발명의 실시예의 다양한 세부사항이 포함될 수 있으나, 이들은 단지 예시적인 것으로 이해해야 한다. 따라서, 본 발명이 속하는 기술분야의 통상의 지식을 가진자라면, 본 명세서에 기재된 실시예는 본 발명의 범위 및 사상을 벗어나지 않으면서도 다양한 변경 및 수정을 행할 수 있음을 알 수 있을 것이다. 마찬가지로, 명료하고 간결하게 하기 위해서, 하기 설명에서는 공지된 기능 및 구조에 대한 설명이 생략되었다.
클라우드 코드 개발 관련 기술에서는, 클라이언트 로컬에서 IDE(Integrated Development Environment, 통합 개발 환경)을 사용하여 사용자가 입력한 코드를 획득하고, 사용자가 작성한 코드 파일이 완성된 후, Samba(서버 메시지 블록, Server Message Block, SMB) 또는 FTP(File Transfer Protocol, 파일 전송 프로토콜) 방식으로 코드 파일을 클라우드 서버에 동기화시키고, 클라우드 서버에서, 클라이언트가 송신한 코드 파일에 기반하여 클라우드 서버의 로컬의 코드 파일을 업데이트함으로써, 클라우드 코드의 개발을 구현한다. 하지만, 상기 방식을 사용한 경우, 코드 파일에 접속하는 속도가 느리고, 인덱스의 구축이 느리고, 검색 속도가 느리며 안전성이 낮은 등 문제가 존재하고, IDE의 고레벨 기능, 예를 들면, Intellisense(지능 제시) 기능 등을 사용할 수 없다.
이에 감안하여, 본 발명의 실시예는 클라우드 코드 개발 시스템을 제공하는 바, 도 1을 참조하면, 상기 클라우드 코드 개발 시스템은,
클라이언트(11)와 클라우드 서버(12)를 포함하고, 상기 클라이언트(11)는 에이전트 모듈(111)과 원격 서버 모듈(112)을 포함하며;
상기 원격 서버 모듈(112)은 사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 사용자가 입력한 코드를 상기 클라우드 서버에 동기화시키도록 구성되고;
상기 클라우드 서버(12)는, 상기 원격 서버 모듈에 대응하는 인코딩용 가상 머신을 구축하고; 상기 원격 서버 모듈이 스트림 동기화 방식으로 동기화한 코드를 상기 가상 머신에 기록하며; 상기 인코딩용 가상 머신을 이용하여 상기 코드를 실행하고, 대응하는 태스크를 생성하도록 구성되고;
상기 에이전트 모듈(111)은 상기 클라우드 서버에서 상기 태스크를 풀 방식으로 획득하고, 상기 태스크를 상기 원격 서버 모듈(112)에 송신하도록 구성되며;
상기 원격 서버 모듈(112)은, 상기 태스크를 실행하도록 더 구성된다.
클라이언트에 에이전트 모듈(Agent)과 원격 서버 모듈(Remote-Server)이 설치되어 있고, 클라우드 서버에 Remote-Server에 대응하는 인코딩용 가상 머신이 구축되어 있다. Remote-Server는 사용자가 클라이언트에 입력한 코드를 획득하고, 스트림 동기화 방식으로 코드를 클라우드 서버에 대응하는 인코딩용 가상 머신에 동기화시킨다. 인코딩용 가상 머신은 수신된 코드를 실행하고, 그에 상응하는 태스크를 생성한다. Agent는 클라우드 서버 내의 인코딩용 가상 머신에서 태스크를 풀 방식으로 획득하고, 태스크를 원격 서버 모듈에 송신하여 실행시킨다. 상기 태스크는 IDE의 고레벨 기능 태스크, 예를 들면, 코드 점프(Code jump), 코드 자동 완성(Code auto-completion), 코드 호버 프롬프트(Code hover prompt) 등일 수 있다.
관련 기술에 따른 코드 파일 동기화와 달리, 본 발명의 실시예에 따른 Remote-Server는 스트림 동기화 방식으로 클라우드 서버와의 코드 동기화를 구현하고, 코드 파일의 작성이 완료될 때까지 기다린 후 코드 파일의 형식으로 클라우드 서버에 동기화시킬 필요 없이, Remote-Server에서 데이터 스트림 방식으로 사용자가 입력한 코드(코드삭제, 오버라이트 등 경우를 포함함)를 클라우드 서버 내의 인코딩용 가상 머신에 직접 동기화함으로써, 클라우드 서버와 클라이언트 로컬의 코드가 고도로 일치되고, 코드 엑세스 속도가 빠르며, 인덱스의 구축이 빠르고, 검색 속도가 빠르다. 또한, Agent는 클라우드 서버에서 태스크를 풀 방식으로 획득하여 Remote-Server로 보내어 Remote-Server에서 실행시킴으로써, IDE의 고레벨 기능의 사용을 구현할 수 있고, 코드 점프, 코드 자동 완성, 코드 호버 프롬프트 등 기능이 원활하게 구현될 수 있다.
일 예에서, 클라우드 서버는 원격 조작이 필요한 호스트일 수 있고, 본 발명의 실시예의 클라우드 코드 개발 시스템을 적용함으로써, 클라우드 코드 개발의 체험을 로컬에서의 체험과 일치하게 하고, 임의의 조작이 필요한 호스트에 대한 원격 조작을 구현하고, 클라우드 프로그램 등의 디버그와 작성 등 조작을 지원할 수 있어, 복수 개의 호스트의 일괄 관리를 구현할 수 있다.
클라우드 서버는 슈도 단말기(pseudo terminal)의 방식으로 코드의 실행을 구현할 수 있고, 가능한 일 실시형태에서, 상기 원격 서버 모듈은 구체적으로, 단말기 시뮬레이터를 구축하고; 상기 단말기 시뮬레이터를 통해 사용자가 입력한 코드를 획득하고; 실시간 전이중(full duplex) 동기화 통신 방식을 이용하여 상기 코드를 상기 클라우드 서버의 인코딩용 가상 머신에 송신하도록 구성되고;
상기 클라우드 서버는 수신된 상기 코드를 상기 인코딩용 가상 머신의 마스터 슈도 단말기(master pseudo terminal)에 입력하고, 상기 마스터 슈도 단말기의 파일 디스크립터를 차단하고, 상기 마스터 슈도 단말기를 통해 상기 코드를 슬레이브 슈도 단말기(slave pseudo terminal)에 매핑하고, 상기 슬레이브 슈도 단말기를 통해 상기 코드를 상기 인코딩용 가상 머신의 명령 프로세서에 입력하도록 상세하게 구성된다.
일 예에서, Remote-Server는 VS code(Visual Studio Code, 소스 코드 에디터의 일종임)에 기반하여 개발한 IDE일 수 있다. Remote-Server는 원격의 fork-pty 함수를 호출함으로써, 가상 머신에서 슈도 단말기를 구축할 수 있다. fork-pty 함수는 먼저 openpty 함수를 호출하여 사용할 수 있는 마스터 슈도 단말기를 획득하고, 만약 마스터 슈도 단말기 획득에 성공하였다면, 새로운 하나의 프로세스를 생성하고, 상기 프로세스는 마스터 슈도 단말기의 파일 디스크립터를 꺼버리고, 다음 login_tty 함수를 호출하여 인코딩용 가상 머신에서 슬레이브 슈도 단말기를 스타트하고, 마스터 슈도 단말기를 이용하여 사용자가 입력한 코드를 슬레이브 슈도 단말기에 매핑하고, 슬레이브 슈도 단말기는 코드를 인코딩용 가상 머신의 명령 프로세서에 입력함으로써, 코드의 실행을 구현하는 바, 예를 들면, 도 2에 도시한 바와 같고, 그 중 TCP/IP은 네트워크 연결 프로토콜이고, Bash는 인코딩용 가상 머신의 명령 프로세서를 나타내며, Websocket는 전이중 통신 프로토콜이다.
본 발명의 실시예에서, 단말기 시뮬레이터를 통해 사용자가 입력한 코드를 획득하고, 실시간 전이중 동기화 통신 방식을 이용하여 단말기 시뮬레이터를 통해 수집한 코드를 마스터 슈도 단말기에 송신하고, 마스터 슈도 단말기의 파일 디스크립터를 차단하며, 마스터 슈도 단말기는 코드의 실행을 담당하지 않고, 마스터 슈도 단말기에 입력한 코드를 슬레이브 슈도 단말기에 매핑하여, 슬레이브 슈도 단말기가 코드를 인코딩용 가상 머신의 명령 프로세서에 입력함으로써, 코드의 실행을 구현하는 바, 본 발명에서은 데이터 스트림의 방식으로 코드 동기화를 행하고, 클라우드 서버와 클라이언트 로컬의 코드가 고도로 일치하고, 코드에 대한 엑세스 속도가 빠르며, 인덱스의 구축이 빠르고, 검색 속도가 빠르다.
클라이언트를 처음으로 사용하여 클라우드 코드를 개발할 경우, 클라이언트에 Agent 및 Remote-Server를 설치해야 한다. 일 예에서, 먼저 클라이언트에 Agent를 설치하고, Agent가 설치된 후, Agent를 이용하여 클라이언트 로컬에 Remote-Server를 설치할 수 있다. 클라이언트 로컬에 Remote-Server를 설치하는 과정에서, Agent는 또한 클라우드 서버에 요청을 보내여, 클라우드 서버에서 Remote-Server에 대응하는 인코딩용 가상 머신을 구축할 수 있다.
일 예에서, Agent의 설치 과정은 도 3에 도시한 바와 같이, 설치를 시작한 경우, 먼저 Platform(플랫폼) 인터페이스, Agent 인터페이스, Registe Agent(클라이언트 등록) 인터페이스를 요청하여, 초기화 작업을 행한다. 현재 기기에 Agent가 설치되어 있는지 여부를 판단하고, 만약 설치되어 있다면 설치를 중지하고; 만약 설치되어 있지 않는다면 설치 환경을 검사한다. 먼저 클라이언트 로컬의 JDK(Java Development Kit, 소프트웨어 개발 키트의 일종임) 버전이 요구되는 버전(도면에서는 1.6 버전를 예로 듬) 보다 높은지 여부를 판단하고, 만약 요구되는 버전보다 높지 않는다면, 클라우드 서버에 Patchelf(동적 라이브러리와 실행 가능 프로그램을 변경하는데 쓰이는 툴의 일종임)가 필요되는 지 여부를 판정하고, 만약 Patchelf가 필요된다면, 제1 버전에 대응하는 JDK(도면에서는 JDK1.8_Patch를 예로 듬)를 설치하고, 만약 Patchelf가 필요되지 않는다면, 제2 버전에 대응하는 JDK(도면에서는 JDK1.8_noPatch를 예로 듬)를 설치한다. 만약 클라이언트 로컬의 JDK 버전이 요구되는 버전보다 높다면, Agent 소프트웨어 패키지(클라이언트 설치 패키지)를 스타트하고, 클라이언트에 codeserver(코드 서버)가 설치되어 있는지 여부를 판단하고, 만약 codeserver가 설치되어 있다면, vscode-server에 codeserver 플러그인를 복사하고 그의 사용자를 설정(Configure)하고; 만약 codeserver가 설치되어 있지 않는다면, Patchelf가 필요되는지 여부를 판단하고, 만약 Patchelf가 필요된다면, vscode-server-Patchelf를 다운로드하고, 만약 필요되지 않는다면 vscode-server-noPatchelf를 다운로드한다. vscode-server를 스타트하고 Host(호스트) 정보 및 IP 정보 등 정보를 상부에 보고하여, 설치를 완성한다.
Agent의 설치가 완성되면, 사용자는 Agent를 이용하여 클라이언트 로컬의 Remote-Server과 클라우드 서버에서의 인코딩용 가상 머신을 관리할 수 있다. 가능한 일 실시형태에서, 상기 에이전트 모듈은 또한 상기 원격 서버 모듈과 상기 원격 서버 모듈에 대응하는 인코딩용 가상 머신을 관리하도록 구성되고, 상기 관리에는 업그레이드, 백트래킹, 리스타트, 삭제, 새로운 추가 및 상태 검사 중 적어도 하나를 포함한다.
Remote-Server와 인코딩용 가상 머신에 대한 Agent의 관리에는 업그레이드, 백트래킹, 리스타트, 삭제, 새로운 추가 및 상태 검사 중 적어도 하나를 포함할 수 있다. 일 예에서, Remote-Server와 인코딩용 가상 머신의 새로운 추가를 예로 들면, 사용자는 Agent를 통해 클라이언트 로컬에 Remote-Server를 구축할 수 있고, 동시에 Agent는 상기 Remote-Server를 클라우드 서버에 등록하게 되고, 클라우드 서버는 Remote-Server에 대한 등록 정보를 수신하면, 상응하게 상기 Remote-Server에 대응하는 인코딩용 가상 머신을 구축하게 된다. 일 예에서, Remote-Server와 인코딩용 가상 머신의 백트래킹을 예로 들면, 사용자가 코드를 어느 한 시점으로 백트래킹하기를 원하는 경우, 사용자는 Agent를 통해 인코딩용 가상 머신에 대한 백트래킹 명령을 클라우드 서버에 송신하고, 클라우드 서버에는 인코딩용 가상 머신의 백트래킹에 수요되는 데이터(예를 들면, 인코딩용 가상 머신의 미러 이미지(mirror image) 등 )가 저장되어 있으므로, 클라우드 서버는 상기 데이터를 이용하여 인코딩용 가상 머신에 대한 백트래킹을 행하고, 인코딩용 가상 머신은 백트래킹한 후 그에 상응하는 백트래킹 태스크가 생성하게 되는데, Agent는 상기 백트래킹된 태스크를 풀 방식으로 획득하여 Remote-Server로 보내여 Remote-Server에서 실행함으로써, Remote-Server의 백트래킹을 구현한다.
본 발명의 실시예에서, Agent를 이용하여 클라이언트 로컬의 Remote-Server와 클라우드 서버 내의 인코딩용 가상 머신을 관리할 수 있어, Remote-Server와 클라우드 서버에 대한 관리를 편리하게 하고, Agent를 이용하여 Remote-Server와 클라우드 서버의 업그레이드, 백트래킹, 리스타트, 삭제, 새로운 추가 및 상태 검사 등을 구현함으로써, 클라우드 코드 개발의 유용성을 향상시켰다.
가능한 일 실시형태에서, 상기 에이전트 모듈은 구체적으로, 상기 인코딩용 가상 머신에 핑요청(PINGREQ)을 주기적으로 송신하고, 상기 인코딩용 가상 머신의 응답 메시지를 수신하면, 상기 인코딩용 가상 머신을 사용할 수 있음으로 판단하고; 연속된 사전 설정 횟수의 주기 내에 상기 인코딩용 가상 머신의 응답 메시지를 수신하지 못하면, 상기 인코딩용 가상 머신을 사용할 수 없음으로 판단하고, 상기 인코딩용 가상 머신에 대한 복구 메시지를 상기 클라우드 서버에 송신하도록 구성되고;
상기 클라우드 서버는, 상기 인코딩용 가상 머신을 이용하여 상기 핑요청에 응답하고, 응답 메시지를 상기 클라이언트에 송신하며; 상기 복구 메시지에 응답하여, 상기 인코딩용 가상 머신을 복구하도록 더 구성된다.
일 예에서, Agent는 Client-server 아키텍처(architecture)의 설계를 사용할 수 있다. 예를 들면, 도 4에 도시한 바와 같이, 클라이언트에서의 Agent의 설치가 완료되면, Agent는 클라우드 서버에서 먼저 등록을 실시하여 합법적인 엑세스와 컨트롤 권한을 획득하도록 한다. Remote-Server와 인코딩용 가상 머신을 성공적으로 설치한 후, Agent는 주기적으로 인코딩용 가상 머신에 핑요청을 보낼 수 있는데, 핑요청에 대한 인코딩용 가상 머신의 응답 메시지를 수신하면, 상기 인코딩용 가상 머신을 사용할 수 있음으로 판정한다. 만약 연속된 사전 설정 횟수의 주기(상기 사전 설정 횟수는 실제 상황에 따라 맞춤 설정을 할 수 있는 바, 예를 들면, 3회, 4회 또는 5회 등으로 설정할 수 있음) 내에 인코딩용 가상 머신의 응답 메시지가 수신되지 않는다면, Agent는 상기 인코딩용 가상 머신을 이상으로 판정하고, Agent는 이상인 인코딩용 가상 머신 복구를 표시하는 복구 메시지를 클라우드 서버에 송신할 수 있고, 클라우드 서버는 복구 메시지를 수신하면, 그에 상응하는 인코딩용 가상 머신을 복구한다. 일 예에서, 클라우드 서버는 리스타트 또는 이송 등 방식으로 무효된 인코딩용 가상 머신을 복구함으로써 클라우드 코드 개발 순서에 따라 진행되도록 확보할 수 있고; 클라우드 서버는 먼저 인코딩용 가상 머신의 리스타트를 시도해 보고, 만약 인코딩용 가상 머신의 호스트머신 등 원인으로 상기 인코딩용 가상 머신의 리스타트에 실패하였다면, 상기 인코딩용 가상 머신의 미러 이미지 파일을 이용하여, 사용할 수 있는 호스트머신에서 상기 인코딩용 가상 머신을 다시 구축하고, 상기 새로 구축한 인코딩용 가상 머신과 Remote-Server의 대응 관계를 다시 매핑하여, 인코딩용 가상 머신의 이송을 구현할 수 있다.
본 발명의 실시예에서, Agent는 핑요청을 이용하여 클라우드 서버 내의 인코딩용 가상 머신의 상태를 획득할 수 있고, 또한 복구 메시지를 통해 사용할 수 없는 인코딩용 가상 머신을 복구할 수 있으므로, 클라우드 코드 개발이 순서에 따라 진행되도록 확보할 수 있고, 클라우드 코드 개발의 유용성을 향상시킬 수 있다.
가능한 일 실시형태에서, 상기 클라우드 서버는, 상기 인코딩용 가상 머신을 이용하여 상기 태스크의 태스크 알림(notificatione)을 알림 큐(queue)에 추가하도록 더 구성되고;
상기 에이전트 모듈은 구체적으로, 상기 인코딩용 가상 머신의 알림 큐에서 태스크 알림을 풀 방식으로 획득하고, 상기 태스크 알림에 기반하여, 상기 인코딩용 가상 머신에서 상기 태스크를 풀 방식으로 획득하여, 상기 태스크를 상기 원격 서버 모듈에 송신하며; 상기 원격 서버 모듈의 태스크 실행 상황을 획득하고, 상기 태스크 실행 상황을 상기 인코딩용 가상 머신에 송신하도록 구성되도록 구성되며;
상기 클라우드 서버는, 상기 인코딩용 가상 머신을 이용하여 상기 태스크 실행 상황에 따라 상기 인코딩용 가상 머신 내의 태스크를 업데이트하도록 구성된다.
일 예에서, 예를 들면, 도 4에 도시한 바와 같이, 인코딩용 가상 머신은 코드를 실행하는 과정에서 대응하는 태스크를 생성하고, 예를 들면, 태스크는 코드 점프, 코드 자동 완성, 코드 호버 프롬프트 등일 수 있다. 인코딩용 가상 머신은 태스크의 태스크 알림을 알림 큐에 추가할 수 있고, Agent는 알림 큐에서 태스크 알림을 획득하고, 태스크 알림에 기반하여, 인코딩용 가상 머신에서 태스크를 풀 방식으로 획득하여 클라이언트 로컬의 Remote-Server에 보내어 실행할 수 있으며, Remote-Server에서 태스크의 실행이 완료되면, Agent는 Remote-Server의 태스크 실행 상황에 따라, 인코딩용 가상 머신 내의 태스크를 업데이트할 수 있다.
본 발명의 실시예에서, 인코딩용 가상 머신은 태스크의 태스크 알림을 알림 큐에 추가하고, Agent는 알림 큐에서 태스크 알림을 풀 방식으로 획득하는 것으로 Agent가 편리하게 태스크 알림을 획득할 수 있고; Agent가 태스크 알림에 기반하여 태스크를 획득하는 것은, Agent가 태스크 큐에서 태스크를 풀 방식으로 직접 획득하는 것에 비하여, 더 편리하게 태스크를 관리할 수 있고, 결국 태스크의 실행 효율을 향상시켰으며; 또한, Agent가 인코딩용 가상 머신에 태스크 실행 상황을 회신함으로써, 인코딩용 가상 머신이 태스크 실행 상황에 따라 자체의 태스크를 실시간 업데이트할 수 있게 하여 태스크의 관리 및 실행에 편리하고, 결국 태스크의 실행 효율을 향상시켰다.
클라우드 코드 개발의 안전 성능을 한층 더 향상시키기 위해 가능한 일 실시형태에서, 도 5를 참조하면, 상기 시스템은, 상기 클라이언트와 상기 클라우드 서버 사이에서 테이터 메시지를 전송하도록 구성되는 역방향 프록시 서버(13)을 더 포함한다.
역방향 프록시 서버(Reverse proxy server)는 클라우드 서버의 에이전트 서비스를 제공하는 바, 일 예에서, 역방향 프록시 서버는 Nginx(Enginex라고도 함, 하나의 고성능 역방향 프록시 웹 서버의 일종임)일 수 있다. 클라우드 서버가 제공하는 모든 서비스는 역방향 프록시 서버에 마운트(mount)하게 되고, 외부에 노출된 것은 역방향 프록시 서버의 주소일 뿐, 클라우드 서버의 주소는 인터넷에 직접 노출되지 않으므로, 클라우드 서버의 안전성을 향상시킬 수 있다. 또한, 역방향 프록시 서버는 로드 밸런싱과 데이터 전송의 역할을 함으로써, 클라우드 서버 간의 로드 밸런싱을 향상시키고, 데이터가 정확하게 전송되도록 확보할 수 있다.
본 발명의 실시예는 또한 클라이언트에 적용되는 클라우드 코드 개발 방법을 더 제공하는 바, 도 6을 참조하면, 상기 방법은 하기 단계(S601) 내지 단계(S603)을 포함한다. 즉,
단계(S601), 사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 코드를 클라우드 서버에 동기화시키고;
단계(S602), 상기 클라우드 서버에서 태스크를 풀 방식으로 획득하는 바, 상기 태스크는 상기 클라우드 서버에서의 인코딩용 가상 머신이 상기 코드에 기반하여 생성한 것이고;
단계(S603), 상기 태스크를 실행한다.
가능한 일 실시형태에서, 상기 사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 코드를 클라우드 서버에 동기화시키는 것은,
단말기 시뮬레이터를 구축하고, 상기 단말기 시뮬레이터를 통해 사용자가 입력한 코드를 획득하는 것;
실시간 전이중 동기화 통신 방식을 이용하여 상기 코드를 상기 클라우드 서버의 인코딩용 가상 머신에 송신하는 것을 포함한다.
가능한 일 실시형태에서, 상기 방법은,
상기 인코딩용 가상 머신에 핑요청을 주기적으로 송신하는 것;
상기 인코딩용 가상 머신의 응답 메시지를 수신하면, 상기 인코딩용 가상 머신을 사용할 수 있음으로 판단하는 것;
연속된 사전 설정 횟수의 주기 내에 상기 인코딩용 가상 머신의 응답 메시지를 수신하지 못하면, 상기 인코딩용 가상 머신을 사용할 수 있음으로 판단하며, 상기 인코딩용 가상 머신에 대한 복구 메시지를 상기 클라우드 서버에 송신하는 것을 더 포함한다.
가능한 일 실시형태에서, 상기 상기 클라우드 서버에서 태스크를 풀 방식으로 획득하는 것은,
상기 인코딩용 가상 머신의 알림 큐에서 태스크의 태스크 알림을 풀 방식으로 획득하는 것;
상기 태스크 알림에 기반하여, 상기 인코딩용 가상 머신에서 상기 태스크를 풀 방식으로 획득하는 것을 더 포함한다.
상기 방법은,
상기 태스크의 태스크 실행 상황을 획득하고, 상기 태스크 실행 상황을 상기 인코딩용 가상 머신에 송신하는 것을 더 포함한다.
본 발명의 실시예는 또한 클라우드 서버에 적용되는 클라우드 코드 개발 방법을 더 제공하는 바, 도 7을 참조하면, 상기 방법은 하기 단계(S701) 내지 단계(S703)을 포함한다. 즉,
단계(S701), 인코딩용 가상 머신을 구축하고;
단계(S702), 스트림 동기화 방식으로 동기화된 코드를 상기 가상 머신에 기록하며;
단계(S703), 상기 인코딩용 가상 머신을 이용하여 상기 코드를 실행하고, 대응하는 태스크를 생성한다.
가능한 일 실시형태에서, 상기 스트림 동기화 방식으로 동기화된 코드를 상기 가상 머신에 기록하는 것은,
수신된 상기 코드를 상기 인코딩용 가상 머신의 마스터 슈도 단말기에 입력하고, 상기 마스터 슈도 단말기의 파일 디스크립터를 차단하고, 상기 마스터 슈도 단말기를 통해 상기 코드를 슬레이브 슈도 단말기에 매핑하고, 상기 슬레이브 슈도 단말기를 통해 상기 코드를 상기 인코딩용 가상 머신의 명령 프로세서에 입력하는 것을 포함한다.
가능한 일 실시형태에서, 상기 방법은,
상기 인코딩용 가상 머신을 이용하여 클라이언트가 송신한 핑요청에 응답하고, 응답 메시지를 상기 클라이언트에 송신하는 것;
상기 인코딩용 가상 머신 복구를 표시하는 복구 메시지에 응답하여, 상기 인코딩용 가상 머신을 복구하는 것을 더 포함한다.
가능한 일 실시형태에서, 상기 방법은,
상기 인코딩용 가상 머신을 이용하여 상기 태스크의 태스크 알림을 알림 큐에 추가하는 것;
상기 인코딩용 가상 머신을 이용하여 클라이언트가 송신한 태스크 실행 상황에 따라 상기 인코딩용 가상 머신 내의 태스크를 업데이트하는 것을 더 포함한다.
본 발명의 실시예는 클라이언트에 적용되는 클라우드 코드 개발 장치를 더 제공하는 바, 상기 장치는,
사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 코드를 클라우드 서버에 동기화시키도록 구성되는 원격 서버 모듈;
상기 클라우드 서버에서 태스크를 풀 방식으로 획득하고, 상기 태스크를 상기 원격 서버 모듈에 송신하도록 구성되는 에이전트 모듈을 포함하고,
상기 태스크는 상기 클라우드 서버에서의 인코딩용 가상 머신이 상기 코드에 기반하여 생성한 것이고,
상기 원격 서버 모듈은, 상기 태스크를 실행하도록 더 구성된다.
가능한 일 실시형태에서, 상기 원격 서버 모듈은 구체적으로, 단말기 시뮬레이터를 구축하고; 상기 단말기 시뮬레이터를 통해 사용자가 입력한 코드를 획득하고; 실시간 전이중 동기화 통신 방식을 이용하여 상기 코드를 상기 클라우드 서버의 인코딩용 가상 머신에 송신하도록 구성된다.
가능한 일 실시형태에서, 상기 에이전트 모듈은 상기 원격 서버 모듈과 상기 원격 서버 모듈에 대응하는 인코딩용 가상 머신을 관리하도록 더 구성되고, 상기 관리에는 업그레이드, 백트래킹, 리스타트, 삭제, 새로운 추가 및 상태 검사 중 적어도 하나를 포함한다.
가능한 일 실시형태에서, 상기 에이전트 모듈은 구체적으로, 상기 인코딩용 가상 머신에 핑요청을 주기적으로 송신하고, 상기 인코딩용 가상 머신의 응답 메시지를 수신하면, 상기 인코딩용 가상 머신을 사용할 수 있음으로 판단하고; 연속된 사전 설정 횟수의 주기 내에 상기 인코딩용 가상 머신의 응답 메시지를 수신하지 못하면, 상기 인코딩용 가상 머신을 사용할 수 없음으로 판단하며, 상기 인코딩용 가상 머신에 대한 복구 메시지를 상기 클라우드 서버에 송신하도록 구성된다.
가능한 일 실시형태에서, 상기 에이전트 모듈은 구체적으로, 상기 인코딩용 가상 머신의 알림 큐에서 태스크 알림을 풀 방식으로 획득하고, 상기 태스크 알림에 기반하여, 상기 인코딩용 가상 머신에서 상기 태스크를 풀 방식으로 획득하여, 상기 태스크를 상기 원격 서버 모듈에 송신하며; 상기 원격 서버 모듈의 태스크 실행 상황을 획득하고, 상기 태스크 실행 상황을 상기 인코딩용 가상 머신에 송신하도록 상세하게 구성된다.
본 발명의 실시예는 또한 클라우드 서버에 적용되는 클라우드 코드 개발 장치를 제공하는 바, 상기 장치는,
인코딩용 가상 머신을 구축하도록 구성되는 가상 머신 구축 모듈;
스트림 동기화 방식으로 동기화된 코드를 상기 가상 머신에 기록하도록 구성되는 코드 동기화 모듈;
상기 인코딩용 가상 머신을 이용하여 상기 코드를 실행하고, 대응하는 태스크를 생성하도록 구성되는 태스크 생성 모듈을 포함한다.
가능한 일 실시형태에서, 상기 코드동기화 모듈은 구체적으로, 수신된 상기 코드를 상기 인코딩용 가상 머신의 마스터 슈도 단말기에 입력하고, 상기 마스터 슈도 단말기의 파일 디스크립터를 차단하고, 상기 마스터 슈도 단말기를 통해 상기 코드를 슬레이브 슈도 단말기에 매핑하고, 상기 슬레이브 슈도 단말기를 통해 상기 코드를 상기 인코딩용 가상 머신의 명령 프로세서에 입력하도록 구성된다.
가능한 일 실시형태에서, 상기 장치는,
상기 인코딩용 가상 머신을 이용하여 클라이언트가 송신한 핑요청에 응답하고, 응답 메시지를 상기 클라이언트에 송신하도록 구성되는 핑응답(PINGRESP) 모듈;
상기 인코딩용 가상 머신 복구를 표시하는 복구 메시지에 응답하여, 상기 인코딩용 가상 머신을 복구하도록 구성되는 가상 머신 복구 모듈을 더 포함한다.
가능한 일 실시형태에서, 상기 장치는,
상기 인코딩용 가상 머신을 이용하여 상기 태스크의 태스크 알림을 알림 큐에 추가하도록 구성되는 태스크 알림 추가 모듈;
상기 인코딩용 가상 머신을 이용하여 클라이언트가 송신한 태스크 실행 상황에 따라 상기 인코딩용 가상 머신 내의 태스크를 업데이트하도록 구성되는 태스크 업데이트 모듈을 더 포함한다.
본 발명의 기술적 방안에서 관련되는 사용자 개인 정보의 수집, 저장, 사용, 가공, 전송, 제공 및 공개 등 처리는, 모두 관련 법규의 규정에 부합하며, 공서양속을 위반하지 않는다.
본 발명의 실시예에 따르면, 본 발명은 전자 기기, 판독 가능 저장 매체 및 컴퓨터 프로그램 제품을 더 제공한다.
여기서, 전자 기기는,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서와 통신 연결되는 메모리를 포함하고,
상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되어 있고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 본 발명에서 기술한 어느 하나의 클라우드 코드 개발 방법을 실행하도록 한다.
컴퓨터 프로그램 제품은 컴퓨터 프로그램을 포함하고, 상기 컴퓨터 프로그램은 프로세서에 의해 실행 시 본 발명에서 기술한 어느 하나의 클라우드 코드 개발 방법을 구현한다.
도 8은 본 발명의 실시예의 실시에 이용 가능한 예시적 전자 기기(800)의 개략적 블록도이다. 전자 기기는 랩톱 컴퓨터, 데스크탑 컴퓨터, 워크스테이션, 개인용 디지털 어시스턴트, 서버, 블레이드 서버, 메인프레임 컴퓨터 및 기타 적절한 컴퓨터와 같은 다양한 형식의 디지털 컴퓨터를 표현하고자 한다. 전자 기기는 또한, 개인 디지털 프로세서, 셀룰러 폰, 스마트 폰, 웨어러블 기기 및 기타 유사한 컴퓨팅 장치와 같은 다양한 형태의 이동 장치를 표시한다. 본 명세서에서 표시하는 어셈블리 유닛 및 이들의 연결과 관계, 그리고 이들의 기능은 단지 예시적인 것일 뿐, 본 명세서에 기재된 내용 및/또는 청구된 본 발명의 구현을 제한하고자 하는 것이 아니다.
도 8에 도시한 바와 같이, 기기(800)는 컴퓨팅 유닛(801)을 포함하고, 컴퓨팅 유닛(801)은 읽기 전용 메모리(ROM)(802)에 저장된 컴퓨터 프로그램 또는 저장 유닛(808)에서 랜덤 액세스 메모리(RAM)(803)로 로딩된 컴퓨터 프로그램에 기반하여, 다양하고 적절한 동작과 프로세싱을 실행할 수 있다. RAM(803)에는 기기(800)의 작업에 필요되는 다양한 프로그램과 데이터가 더 저장될 수 있다. 컴퓨팅 유닛(801), ROM(802) 및 RAM(803)은 버스(804)를 통해 서로 연결된다. 입력/출력(I/O) 인터페이스(805)도 버스(804)에 연결된다.
기기(800)의 복수 개의 어셈블리 유닛은 I/O 인터페이스(805)에 연결되고, 상기 어셈블리 유닛은, 입력 유닛(806) - 예를 들면, 키보드, 마우스 등 -; 출력 유닛(807) - 예를 들면, 다양한 유형의 디스플레이, 스피커 등 -; 저장 유닛(808) - 예를 들면, 자기 디스크, 광 디스크 등 -; 및 통신 유닛(809) - 예를 들면, 랜카드, 모뎀, 무선 통신 트랜시버 등 -; 을 포함한다. 통신 유닛(809)는 기기(800)가 인터넷과 같은 컴퓨터 통신망 및/또는 다양한 전기 통신망을 통해 기타 기기와 정보/데이터를 교환할 수 있도록 한다.
컴퓨팅 유닛(801)은 프로세싱 기능과 컴퓨팅 기능을 가진 다양한 범용 및/또는 특정 용도 프로세싱 컴포넌트일 수 있다. 컴퓨팅 유닛(801)의 일부 예시는 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 다양한 특정 용도 인공 지능(AI) 컴퓨팅 칩, 다양한 기계 학습 모델 알고리즘을 실행하는 컴퓨팅 유닛, 디지털 신호 프로세서(DSP), 및 임의의 적절한 프로세서, 컨트롤러, 마이크로컨트롤러 등을 포함하지만 이에 제한되지 않는다. 컴퓨팅 유닛(801)은 본 명세서의 위에서 기술한 각 방법과 프로세싱, 예를 들면, 클라우드 코드 개발 방법을 실행한다. 예를 들면, 일부 실시예에서, 클라우드 코드 개발 방법은 컴퓨터의 소프트웨어 프로그램으로 구현될 수 있고, 상기 컴퓨터의 소프트웨어 프로그램은 기계 판독 가능 매체, 예를 들면, 저장 유닛(808)에 유형적으로 포함될 수 있다. 일부 실시예에서, 컴퓨터 프로그램의 일부 또는 전부는 ROM(802) 및/또는 통신 유닛(809)를 통해 기기(800)에 로딩 및/또는 설치될 수 있다. 컴퓨터 프로그램이 RAM(803)에 로딩되고, 컴퓨팅 유닛(801)에 의해 실행된 경우, 본 명세서에 기재된 클라우드 코드 개발 방법의 하나 또는 복수 개의 단계를 실행할 수 있다. 대안적으로, 기타 실시예에서, 컴퓨팅 유닛(801)은 기타 임의의 적절한 방식(예를 들면, 펌웨어에 의한 방식임)을 통해 클라우드 코드 개발 방법을 실행하도록 구성될 수 있다.
본 명세서에 기재된 시스템과 기술의 다양한 실시 형태는 디지털 전자 회로 시스템, 집적 회로 시스템, 현장 프로그래머블 게이트 어레이(FPGA), 특정 용도 집적 회로(ASIC), 특정 용도 표준 제품(ASSP), 시스템 온 칩(SOC), 복합 프로그래밍 가능 논리 소자(CPLD), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합에 의해 구현될 수 있다. 이러한 다양한 실시 형태는, 하나 또는 복수 개의 컴퓨터 프로그램에서 실시하는 것을 포함할 수 있는 바, 상기 하나 또는 복수 개의 컴퓨터 프로그램은 적어도 하나의 프로그래밍 가능 프로세서를 포함하는 프로그래밍 가능 시스템에 의해 실행 및/또는 해석될 수 있고, 상기 프로그래밍 가능 프로세서는 특정 용도 또는 범용 프로그래밍 가능 프로세서일 수 있고, 상기 프로그래밍 가능 프로세서는 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치로부터 데이터와 명령을 수신하고, 데이터와 명령을 상기 저장 시스템, 상기 적어도 하나의 입력 장치 및 상기 적어도 하나의 출력 장치에 전송할 수 있다.
본 발명의 방법을 실시하기 위한 프로그램 코드는 하나 또는 복수 개의 프로그래밍 언어의 임의의 조합으로 작성될 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 특정 용도 컴퓨터 또는 기타 프로그래밍 가능 프로세싱 장치의 프로세서 또는 컨트롤러에 제공되어, 프로그램 코드가 프로세서 또는 컨트롤러에 의해 실행시 흐름도 및/또는 블록도에서 규정한 특정 기능/작업이 수행되도록 한다. 프로그램 코드는 기계에서 전부 실행될 수도 있고, 기계에서 부분적으로 실행될 수도 있으며, 독립된 소프트웨어 패키지로서 기계에서 부분적으로 실행될수 있고, 원격 시스템에서 부분적으로 실행되거나 원격 시스템에서 전면적으로 실행되거나 서버에서 전부 실행될 수 있다.
본 발명의 문맥에서, 기계 판독 가능 매체는 유형적인 매체일 수 있는 바, 상기 매체는 명령 실행 시스템, 장치 또는 기기에 제공되어 사용되는 프로그램이거나 명령 실행 시스템, 장치 또는 기기와 조합되어 사용되는 프로그램을 포함하거나 저장할 수 있다. 기계 판독 가능 매체는 기계 판독 가능한 신호 매체 또는 기계 판독 가능한 저장 매체일 수 있다. 기계 판독 가능 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 기기, 또는 상기 내용의 임의의 적절한 조합을 포함할 수 있지만 이에 제한되지 않는다. 기계 판독 가능 저장 매체의 더 구체적인 예로는 하나 또는 복수 개의 케이블을 기반으로 하는 전기적 연결, 휴대용 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거 및 프로그래밍 가능 읽기 전용 메모리(EPROM 또는 플래시 메모리임), 광섬유, 휴대용 컴팩트 디스크 읽기 전용 메모리(CD-ROM), 광학 저장 장치, 자기 저장 장치 또는 상기 내용의 적절한 조합을 포함한다.
본 명세서에서 설명한 시스템과 기술은, 사용자와의 인터랙션을 제공하기 위해 컴퓨터에서 실시할 수 있 는 바, 상기 컴퓨터는 사용자에게 정보를 디스플레이하도록 구성되는 디스플레이 장치(예를 들면, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터); 및 키보드와 포인팅 장치(예를 들면, 마우스 또는 트랙볼)를 구비하고, 사용자는 상기 키보드와 포인팅 장치를 통해 입력을 컴퓨터에게 제공한다. 기타 종류의 장치도 사용자와의 인터랙션을 제공하기 위한 것에 사용될 수 있는 바, 예를 들면, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백(예를 들면, 시각 피드백, 청각 피드백, 또는 촉각 피드백임)일 수 있고; 임의의 형태(음향 입력, 음성 입력 또는 촉각 입력을 포함)로 사용자로부터 오는 입력을 수신할 수 있다.
본 명세서에서 설명한 시스템과 기술은 백엔드 어셈블리 유닛을 포함하는 컴퓨팅 시스템(예를 들면, 데이터 서버로서의 컴퓨팅 시스템임) 또는 미들웨어 어셈블리 유닛을 포함하는 컴퓨팅 시스템(예를 들면, 애플리케이션 서버임) 또는 프론트 엔드 어셈블리 유닛을 포함하는 컴퓨팅 시스템(예를 들면, 그래픽 사용자 인터페이스 또는 웹 브라우저가 구비된 사용자 컴퓨터이고, 사용자는 상기 그래픽 사용자 인터페이스 또는 웹 브라우저를 통해 본 명세서에서 설명한 시스템 및 기술적 실시형태와 인터렉션할 수 있음) 또는 이러한 백엔드 어셈블리 유닛, 미들웨어 어셈블리 유닛 또는 프론트 엔드 어셈블리 유닛의 임의의 조합을 포함한 컴퓨팅 시스템에서 실시할 수 있다. 시스템의 어셈블리 유닛들은, 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들면, 통신 네트워크임)에 의해 상호 연결될 수 있다. 통신 네트워크의 예시로는 근거리 통신망(LAN), 광역망(WAN) 및 인터넷을 포함한다.
컴퓨터 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 보통 서로 멀리 떨어져 있고 일반적으로 통신 네트워크를 통해 인터랙션한다. 상응하는 컴퓨터에서 실행되고 서로 간에 클라이언트-서버 관계를 가진 컴퓨터 프로그램을 통해 클라이언트와 서버의 관계가 이루어진다. 서버는 클라우드 서버일 수도 있고, 분산 시스템 서버 또는 블록체인이 결합된 서버일 수도 있다.
본 명세서에서 예시한 다양한 형태의 프로세스를 사용하여, 단계를 재정렬, 추가 또는 삭제할 수 있음을 이해해야 한다. 예를 들면, 본 발명에 기재된 각 단계는 병렬적으로 실행되거나 순차적으로 실행되거나 서로 다른 순서로 실행될 수 있는 바, 본 발명에 개시된 기술적 방안의 원하는 결과를 구현할 수 있는 것이라면, 본 명세서는 이에 대해 제한하지 않는다.
본 발명의 보호 범위는 본 명세서에 기재된 발명의 구체적인 실시 형태에 의해 제한되지 않는다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 설계 요구 사항과 기타 요인에 기반하여 다양한 수정, 조합, 하위 조합 및 교체를 실시할 수 있음을 이해해야 한다. 본 발명의 기술 사상 및 원칙을 벗어나지 않는 범위 내에서 실시한 모든 수정, 동등 교체 및 개선 등은 모두 본 발명의 보호 범위 내에 포괄된다.

Claims (19)

  1. 클라우드 코드 개발 시스템에 있어서,
    클라이언트와 클라우드 서버를 포함하고, 상기 클라이언트는 에이전트 모듈과 원격 서버 모듈을 포함하며;
    상기 원격 서버 모듈은 사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 사용자가 입력한 코드를 상기 클라우드 서버에 동기화시키도록 구성되고;
    상기 클라우드 서버는, 상기 원격 서버 모듈에 대응하는 인코딩용 가상 머신을 구축하고; 상기 원격 서버 모듈이 스트림 동기화 방식으로 동기화한 코드를 상기 가상 머신에 기록하며; 상기 인코딩용 가상 머신을 이용하여 상기 코드를 실행하고, 대응하는 태스크를 생성하도록 구성되고;
    상기 에이전트 모듈은, 상기 클라우드 서버에서 상기 태스크를 풀(pull) 방식으로 획득하고, 상기 태스크를 상기 원격 서버 모듈에 송신하도록 구성되고;
    상기 원격 서버 모듈은, 상기 태스크를 실행하도록 더 구성되는, 클라우드 코드 개발 시스템.
  2. 제1항에 있어서,
    상기 원격 서버 모듈은 구체적으로, 단말기 시뮬레이터를 구축하고; 상기 단말기 시뮬레이터를 통해 사용자가 입력한 코드를 획득하고; 실시간 전이중 동기화 통신 방식을 이용하여 상기 코드를 상기 클라우드 서버의 인코딩용 가상 머신에 송신하도록 구성되고;
    상기 클라우드 서버는 구체적으로, 수신된 상기 코드를 상기 인코딩용 가상 머신의 마스터 슈도(pseudo) 단말기에 입력하고, 상기 마스터 슈도 단말기의 파일 디스크립터를 차단하고, 상기 마스터 슈도 단말기를 통해 상기 코드를 슬레이브 슈도 단말기에 매핑하고, 상기 슬레이브 슈도 단말기를 통해 상기 코드를 상기 인코딩용 가상 머신의 명령 프로세서에 입력하도록 구성되는, 클라우드 코드 개발 시스템.
  3. 제1항에 있어서,
    상기 에이전트 모듈은 상기 원격 서버 모듈과 상기 원격 서버 모듈에 대응하는 인코딩용 가상 머신을 관리하도록 더 구성되고, 상기 관리에는 업그레이드, 백트래킹, 리스타트, 삭제, 새로운 추가 및 상태 검사 중 적어도 하나를 포함하는, 클라우드 코드 개발 시스템.
  4. 제1항에 있어서,
    상기 에이전트 모듈은 구체적으로, 상기 인코딩용 가상 머신에 핑요청(PINGREQ)을 주기적으로 송신하고, 상기 인코딩용 가상 머신의 응답 메시지를 수신하면, 상기 인코딩용 가상 머신을 사용할 수 있음으로 판단하고; 연속된 사전 설정 횟수의 주기 내에 상기 인코딩용 가상 머신의 응답 메시지를 수신하지 못하면, 상기 인코딩용 가상 머신을 사용할 수 없음으로 판단하며, 상기 인코딩용 가상 머신에 대한 복구 메시지를 상기 클라우드 서버에 송신하도록 구성되며;
    상기 클라우드 서버는, 상기 인코딩용 가상 머신을 이용하여 상기 핑요청에 응답하고, 응답 메시지를 상기 클라이언트에 송신하며; 상기 복구 메시지에 응답하여, 상기 인코딩용 가상 머신을 복구하도록 더 구성되는, 클라우드 코드 개발 시스템.
  5. 제1항에 있어서,
    상기 클라우드 서버는, 상기 인코딩용 가상 머신을 이용하여 상기 태스크의 태스크 알림을 알림 큐에 추가하도록 더 구성되고;
    상기 에이전트 모듈은 구체적으로, 상기 인코딩용 가상 머신의 알림 큐에서 태스크 알림을 풀 방식으로 획득하고, 상기 태스크 알림에 기반하여, 상기 인코딩용 가상 머신에서 상기 태스크를 풀 방식으로 획득하여, 상기 태스크를 상기 원격 서버 모듈에 송신하며; 상기 원격 서버 모듈의 태스크 실행 상황을 획득하고, 상기 태스크 실행 상황을 상기 인코딩용 가상 머신에 송신하도록 구성되며;
    상기 클라우드 서버는, 상기 인코딩용 가상 머신을 이용하여 상기 태스크 실행 상황에 따라 상기 인코딩용 가상 머신 내의 태스크를 업데이트하도록 구성되는, 클라우드 코드 개발 시스템.
  6. 제1항에 있어서,
    상기 시스템은 상기 클라이언트와 상기 클라우드 서버 사이에서 테이터 메시지를 전송하도록 구성되는 역방향 프록시 서버를 더 포함하는, 클라우드 코드 개발 시스템.
  7. 클라이언트에 적용되는 클라우드 코드 개발 방법에 있어서,
    사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 코드를 클라우드 서버에 동기화시키는 것;
    상기 클라우드 서버에서 태스크를 풀 방식으로 획득하는 것, - 여기서, 상기 태스크는 상기 클라우드 서버에서의 인코딩용 가상 머신이 상기 코드에 기반하여 생성한 것임 -;
    상기 태스크를 실행하는 것을 포함하는, 클라우드 코드 개발 방법.
  8. 제7항에 있어서,
    상기 사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 코드를 클라우드 서버에 동기화시키는 것은,
    단말기 시뮬레이터를 구축하고, 상기 단말기 시뮬레이터를 통해 사용자가 입력한 코드를 획득하는 것;
    실시간 전이중 동기화 통신 방식을 이용하여 상기 코드를 상기 클라우드 서버의 인코딩용 가상 머신에 송신하는 것을 포함하는, 클라우드 코드 개발 방법.
  9. 제7항에 있어서,
    상기 방법은,
    상기 인코딩용 가상 머신에 핑요청을 주기적으로 송신하는 것;
    상기 인코딩용 가상 머신의 응답 메시지를 수신하면, 상기 인코딩용 가상 머신을 사용할 수 있음으로 판단하는 것;
    연속된 사전 설정 횟수의 주기 내에 상기 인코딩용 가상 머신의 응답 메시지를 수신하지 못하면, 상기 인코딩용 가상 머신을 사용할 수 없음으로 판정하고, 상기 인코딩용 가상 머신에 대한 회복 메시지를 상기 클라우드 서버에 송신하는 것을 더 포함하는, 클라우드 코드 개발 방법.
  10. 제7항에 있어서,
    상기 클라우드 서버에서 태스크를 풀 방식으로 획득하는 것은,
    상기 인코딩용 가상 머신의 알림 큐에서 태스크의 태스크 알림을 풀 방식으로 획득하는 것;
    상기 태스크 알림에 기반하여, 상기 인코딩용 가상 머신에서 상기 태스크를 풀 방식으로 획득하는 것을 포함하고,
    상기 방법은,
    상기 태스크의 태스크 실행 상황을 획득하고, 상기 태스크 실행 상황을 상기 인코딩용 가상 머신에 송신하는 것을 더 포함하는, 클라우드 코드 개발 방법.
  11. 클라우드 서버에 적용되는 클라우드 코드 개발 방법에 있어서,
    상기 방법은,
    인코딩용 가상 머신을 구축하는 것;
    스트림 동기화 방식으로 동기화된 코드를 상기 가상 머신에 기록하는 것;
    상기 인코딩용 가상 머신을 이용하여 상기 코드를 실행하고, 대응하는 태스크를 생성하는 것을 포함하는, 클라우드 코드 개발 방법.
  12. 제11항에 있어서,
    상기 스트림 동기화 방식으로 동기화된 코드를 상기 가상 머신에 기록하는 것은,
    수신된 상기 코드를 상기 인코딩용 가상 머신의 마스터 슈도 단말기에 입력하고, 상기 마스터 슈도 단말기의 파일 디스크립터를 차단하고, 상기 마스터 슈도 단말기를 통해 상기 코드를 슬레이브 슈도 단말기에 매핑하고, 상기 슬레이브 슈도 단말기를 통해 상기 코드를 상기 인코딩용 가상 머신의 명령 프로세서에 입력하는 것을 포함하는, 클라우드 코드 개발 방법.
  13. 제11항에 있어서,
    상기 방법은,
    상기 인코딩용 가상 머신을 이용하여 클라이언트가 송신한 핑요청에 응답하고, 응답 메시지를 상기 클라이언트에 송신하는 것;
    상기 인코딩용 가상 머신 복구를 표시하는 복구 메시지에 응답하여, 상기 인코딩용 가상 머신을 복구하는 것을 더 포함하는, 클라우드 코드 개발 방법.
  14. 제11항에 있어서,
    상기 방법은,
    상기 인코딩용 가상 머신을 이용하여 상기 태스크의 태스크 알림을 알림 큐에 추가하는 것;
    상기 인코딩용 가상 머신을 이용하여 클라이언트가 송신한 태스크 실행 상황에 따라 상기 인코딩용 가상 머신 내의 태스크를 업데이트하는 것을 더 포함하는, 클라우드 코드 개발 방법.
  15. 클라이언트에 적용되는 클라우드 코드 개발 장치에 있어서,
    상기 장치는,
    사용자가 입력한 코드를 획득하고, 스트림 동기화 방식으로 상기 코드를 클라우드 서버에 동기화시키도록 구성되는 원격 서버 모듈;
    상기 클라우드 서버에서 태스크를 풀 방식으로 획득하고, 상기 태스크를 상기 원격 서버 모듈에 송신하도록 구성되는 에이전트 모듈을 포함하고,
    상기 태스크는 상기 클라우드 서버에서의 인코딩용 가상 머신이 상기 코드에 기반하여 생성한 것이고,
    상기 원격 서버 모듈은, 상기 태스크를 실행하도록 더 구성되는, 클라우드 코드 개발 장치.
  16. 클라우드 서버에 적용되는 클라우드 코드 개발 장치에 있어서,
    상기 장치는,
    인코딩용 가상 머신을 구축하도록 구성되는 가상 머신 구축 모듈;
    스트림 동기화 방식으로 동기화된 코드를 상기 가상 머신에 기록하도록 구성되는 코드 동기화 모듈;
    상기 인코딩용 가상 머신을 이용하여 상기 코드를 실행하고, 대응하는 태스크를 생성하도록 구성되는 태스크 생성 모듈을 포함하는, 클라우드 코드 개발 장치.
  17. 전자 기기에 있어서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 통신 연결되는 메모리를 포함하고,
    상기 메모리에 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되어 있고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 제7항 내지 제14항 중 어느 한 항에 따른 방법을 실행하도록 하는, 전자 기기.
  18. 컴퓨터 명령이 저장되어 있는 비일시적 컴퓨터 판독 가능 저장매체에 있어서,
    상기 컴퓨터 명령은 상기 컴퓨터가 제7항 내지 제14항 중 어느 한 항에 따른 방법을 실행하도록 하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  19. 컴퓨터 프로그램을 포함하는 컴퓨터 프로그램 제품에 있어서,
    상기 컴퓨터 프로그램이 프로세서에 의해 실행 시 제7항 내지 제14항 중 어느 한 항에 따른 방법을 구현하는, 컴퓨터 프로그램 제품.
KR1020237004762A 2021-11-26 2022-06-20 클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체 KR20230079348A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202111422652.0A CN114089974B (zh) 2021-11-26 2021-11-26 云端代码开发系统、方法、装置、设备及存储介质
CN202111422652.0 2021-11-26
PCT/CN2022/099898 WO2023093016A1 (zh) 2021-11-26 2022-06-20 云端代码开发系统、方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
KR20230079348A true KR20230079348A (ko) 2023-06-07

Family

ID=80305049

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237004762A KR20230079348A (ko) 2021-11-26 2022-06-20 클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체

Country Status (5)

Country Link
EP (1) EP4209894A4 (ko)
JP (1) JP2024500263A (ko)
KR (1) KR20230079348A (ko)
CN (1) CN114089974B (ko)
WO (1) WO2023093016A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114089974B (zh) * 2021-11-26 2023-08-22 北京百度网讯科技有限公司 云端代码开发系统、方法、装置、设备及存储介质
CN114640659B (zh) * 2022-03-29 2023-09-19 北京白海科技有限公司 一种云端编码辅助方法、装置、电子设备及存储介质
CN116820526B (zh) * 2023-08-25 2023-11-24 建信金融科技有限责任公司 操作系统升级方法、装置、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959484B2 (en) * 2012-06-21 2015-02-17 Microsoft Corporation System for hosted, shared, source control build
CN103067502A (zh) * 2012-12-31 2013-04-24 博彦科技(上海)有限公司 一种开发测试云的硬件系统
US9459849B2 (en) * 2014-01-17 2016-10-04 International Business Machines Corporation Adaptive cloud aware just-in-time (JIT) compilation
US9880816B2 (en) * 2014-11-27 2018-01-30 Sap Se Simulator with local resource capabilities
CN107295045A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种消息处理方法及装置
CN110502212B (zh) * 2018-05-16 2023-07-11 南京慕测信息科技有限公司 一种面向多语言的高并发在线开发支撑方法
CN110471654A (zh) * 2019-07-17 2019-11-19 深圳文理子科技有限公司 通信协议的云端开发系统及计算机软件程序产品
US11157242B2 (en) * 2019-09-30 2021-10-26 Salesforce.Com, Inc. Systems, methods, and apparatuses for local web components development within a cloud based computing environment
CN111773691A (zh) * 2020-07-03 2020-10-16 珠海金山网络游戏科技有限公司 云游戏服务系统、云客户端及数据处理方法
CN113377363B (zh) * 2021-07-14 2022-03-08 深圳市集贤科技有限公司 对多种电控端私有协议自动生成源代码的云端实现方法
CN114089974B (zh) * 2021-11-26 2023-08-22 北京百度网讯科技有限公司 云端代码开发系统、方法、装置、设备及存储介质

Also Published As

Publication number Publication date
EP4209894A4 (en) 2024-01-17
JP2024500263A (ja) 2024-01-09
EP4209894A1 (en) 2023-07-12
CN114089974B (zh) 2023-08-22
CN114089974A (zh) 2022-02-25
WO2023093016A1 (zh) 2023-06-01

Similar Documents

Publication Publication Date Title
Randazzo et al. Kata containers: An emerging architecture for enabling mec services in fast and secure way
KR20230079348A (ko) 클라우드 코드 개발 시스템, 방법, 장치, 기기 및 저장 매체
JP7421511B2 (ja) アプリケーションをデプロイするための方法及び装置、電子機器、読み取り可能な記憶媒体並びにコンピュータプログラム
EP3822777A1 (en) Methods for processing mini program, and related devices
US10574724B2 (en) Automatic discovery of management nodes and generation of CLI using HA module
CN112988223B (zh) 框架集成方法、装置、电子设备及存储介质
CN112925652B (zh) 应用资源部署方法、装置、电子设备和介质
WO2024077885A1 (zh) 容器集群的管理方法、装置、设备及非易失性可读存储介质
KR20230024416A (ko) 클라우드 플랫폼 간 가상 머신 마이그레이션 방법, 장치, 저장 매체 및 전자 장치
KR20210042283A (ko) 애플릿용 데이터 처리 방법, 장치, 기기 및 매체
KR20220151585A (ko) 업무 데이터 처리 방법, 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램
WO2023221416A1 (zh) 信息生成方法、装置、设备以及存储介质
KR20210110779A (ko) 미니프로그램 능력을 제공하는 방법, 장치, 전자 기기 및 저장 매체
WO2023093127A1 (zh) 一种监控集群的方法、装置及电子设备
CN113821352A (zh) 一种远程服务的调用方法和装置
CN112948018B (zh) 用于小程序的动态库加载方法、装置、设备及介质
WO2024001240A1 (zh) 多种技术栈的任务集成方法及装置
WO2024021554A1 (zh) 数据迁移方法和装置
CN110019059B (zh) 一种定时同步的方法和装置
US11558207B2 (en) Method and apparatus for starting up blockchain system, and non-transitory computer-readable storage medium
WO2023083071A1 (zh) 视图交互方法、装置、电子设备及计算机可读介质
US20180329782A1 (en) Data Migration For A Shared Database
US20210216310A1 (en) Emulation of an environment set by a sourced script written in a different scripting language
CN109271310B (zh) 移动应用程序网络功能的开发测试方法和装置
EP3872630A2 (en) Request processing method and apparatus, electronic device, and computer storage medium