KR20180053358A - 컴퓨팅 장치에서의 애플리케이션 실행방법 - Google Patents

컴퓨팅 장치에서의 애플리케이션 실행방법 Download PDF

Info

Publication number
KR20180053358A
KR20180053358A KR1020187010430A KR20187010430A KR20180053358A KR 20180053358 A KR20180053358 A KR 20180053358A KR 1020187010430 A KR1020187010430 A KR 1020187010430A KR 20187010430 A KR20187010430 A KR 20187010430A KR 20180053358 A KR20180053358 A KR 20180053358A
Authority
KR
South Korea
Prior art keywords
operating system
application
package
container package
computing device
Prior art date
Application number
KR1020187010430A
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 KR20180053358A publication Critical patent/KR20180053358A/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
    • 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/45516Runtime code conversion or optimisation
    • G06F9/4552Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

컴퓨팅 장치에서 애플리케이션을 실행하는 방법에 있어서, 상기 컴퓨팅 장치는 제1 운영체제(11,31) 씬웹클라이언트 운영체제 및 Chrome OS와 같은)를 실행하고, 상기 애플리케이션은 제2 운영체제(13, 33) (완성 운영체제(fully-fledged operating system), Microsoft Windows (RTM), Mac OS X (RTM), Linux (RTM)와 같은)상에서 작동하며, 상기 컴퓨팅 장치는 저장장치(7)와 프로세서(2)를 포함하며, 상기 방법은:
- 상기 제2 운영체제의 에뮬레이터(emulator) 기능을 하는 컨테이너 패키지(12, 32container package)를 상기 저장장치(7)에 로딩하고 상기 프로세서(2) 상에 상기 컨테이너 패키지(12, 32)를 실행하는 단계;
- 상기 제2 운영체제(13, 33)의 애플리케이션 코드를 각각 포함하는 적어도 하나의 애플리케이션 패키지(15, 35)를 상기 컨테이너 패키지(12, 32) 내에 설치하는 단계; 및
- 각 애플리케이션 패키지(15, 35)를 상기 프로세서 상에서 실행하되, 상기 컨테이너 패키지(12, 32)는 상기 애플리케이션 코드가 상기 제2 운영체제(13, 33)에 하는 요구를 상기 제1 운영체제(11, 31)의 상응하는 요구로 변환하는 단계; 를 포함한다.

Description

컴퓨팅 장치에서의 애플리케이션 실행방법
본 발명은 컴퓨팅 장치에서의 애플리케이션 실행 방법 및 이와 연관된 컴퓨터 판독가능 매체에 관한 것이다.
최종 사용자에게 정보기술을 제공하는 비용의 절감, 즉, 어떻게 하면 더 나은 수준의 서비스를 제공하면서 비용을 절감할 수 있는가 하는 문제는 항상 신규 또는 변형 프로젝트에 착수에 있어 중요한 성과물의 하나이다.
사용자들이 더욱 모바일 환경 하에서 그들이 선택한 장치를 사용하여, 그들의 특정 장치를 위해 만들어진 애플리케이션을 온라인/클리우드에 기반한 형태의 스토어에서 제공 및 소비하는 것이 현 추세이다. 이러한 방식은 소비자 시장 측면에서는 바람직하지만, 상업 및 기업 조직에게는 정보기술 측면에서 많은 도전을 안겨준다.
우선, 모든 기업 조직은 그들만의 기업 애플리케이션을 가지고 있을 것이고, 이들 중 일부는 레거시(legacy)로 간주되고 온라인 스토어에서 구매할 수 없는 것이지만 그들의 비즈니스에 중요한 것이다. 여기서 도전은 어떻게 이런 애플리케이션을 사용자들이 소비하고 싶어하는 방법으로, 즉 모바일 환경에서 사용자들이 선택하는 장치에서 사용할 수 있게 제공하는가 하는 것이다.
두번째 도전은 온라인에 존재하고 인터넷에 연결될 필요에 관한 것이다. 오늘날 시장에 나와있는 대부분의 솔루션은, 애플리케이션이 인터넷을 통한 실시간 스트림으로 장치에 제공되므로 사용자의 상시 연결을 요구하거나, 데이터센터 내부에서 실행되는 애플리케이션에 원격으로 연결하고 있다. 이에 따라, 인터넷 연결이 안되는 위치에서는 또는 연결이 매우 제한되거나 열악한 경우에는 문제가 된다.
한 운영체제를 위해 설계된 애플리케이션의 실행이 다른 운영체제에서 실행이 가능하게 할 수 있는 컴퓨팅 장치에서의 애플리케이션 실행 방법을 제공한다.
본 발명의 제1 측면은 컴퓨팅 장치에서 애플리케이션을 실행하는 방법을 제공하며, 여기서, 컴퓨팅 장치는 제1 운영체제를 실행하고, 애플리케이션은 제2 운영체제 상에서 작동하며, 컴퓨팅 장치는 저장장치와 프로세서를 포함한다. 상기 방법은 다음과 같은 단계를 포함한다.
- 제2 운영체제의 에뮬레이터(emulator) 기능을 하는 컨테이너 패키지(container package)를 저장장치에 로딩하고 프로세서 상에 에뮬레이션 패키지(emulation package)를 실행하는 단계;
- 제2 운영체제의 애플리케이션 코드를 각각 포함하는 적어도 하나의 애플리케이션 패키지를 컨테이너 패키지 내에 설치하는 단계; 및
- 각 애플리케이션 패키지를 프로세서 상에서 실행하는 단계―여기서, 컨테이너 패키지는 애플리케이션 코드가 제2 운영체제에 하는 요구를 제1 운영체제의 상응하는 요구로 변환함.
따라서, 2단계 패키징 프로세스를 운영함으로써, 한 운영체제를 위해 설계된 애플리케이션의 실행이 최종 사용자가 훨씬 수월하게 이용할 수 있도록 다른 운영체제에서 가능하다.
일반적으로, 제1 운영체제는 Chrome OS (RTM)와 같은 씬 웹 클라이언트(thin web client) 운영체제이다. 제2 운영체제는 Microsoft Windows (RTM), Mac OS X (RTM), Linux (RTM) 등과 같은 완성 운영체제(fully-fledged operating system)일 수 있다.
본 방법은 브라우저의 캐시 내에 컨테이너 패키지를 로딩 및/또는 에뮬레이션 패키지를 실행하는 단계를 포함할 수 있다. 일반적으로, 브라우저는 웹어셈블리(Web Assembly (WASM)) 프로토콜을 활성화하여 JIT(just in time) 컴파일레이션을 하게 하고 또한 동적 변환(dynamic translation)과 플랫폼 독립(platform independence)을 활성화 할 수 있다.
본 발명은 씬 웹 클라이언트 운영체제에서 특히 유용하다. 씬 웹 클라이언트 운영체제에서는, 예를 들어, 윈도우 애플리케이션을 실행하고자 할 경우, 이러한 윈도우 애플리케이션이원격 데스크톱 연결(예, VNC(Virtual Network Computing) 또는 RDP(Remote Desktop Protocol))로 원격 서버 상에서 실행되어 마우스 및 키보드 이벤트를 원격 서버로 전송하고 애플리케이션의 그래픽 출력을 다시 클라이언트로 전송한다는 것이 일반적인 추정이다. 이에 따라 상시적으로 온라인을 필요가 없다.
일 실시예에서, 컨테이너 패키지는 에뮬레이터를 실행하는, 각 애플리케이션 패키지를 실행하도록 구성된, 샌드박스(sandbox) 및 로컬 그래픽 단말 서버(local graphical terminal server)를 포함할 수 있다. 이 경우, 본 방법은 로컬 그래픽 단말 클라이언트 역할을 하는 프론트 엔드 프로그램(front end program)을 실행하는 단계를 더 포함할 수 있다. 일반적으로, 프론트 엔드 프로그램은 제1 운영체제 고유의 애플리케이션일 수 있다. 그러므로, 본 방법은 컴퓨팅 장치 내에서 컨테이너 패키지가 그래픽 출력을 생성하고 생성된 그래픽 출력을 로컬 그래픽 단말 서버를 통해 로컬 그래픽 단말 클라이언트로 전송하는 단계를 포함할 수 있다. 이와 유사하게, 로컬 그래픽 단말 클라이언트는 입력 이벤트(예, 키보드 이벤트 및 마우스 이벤트)를 프론트 엔드 프로그램으로부터 로컬 그래픽 단말 서버로 전송할 수 있다.
이는 샌드박스가 일반적으로 제1 운영체제와 다른 제3 운영체제를 실행하는 경우에 특히 유용할 수 있다. 이러한 구성은 제1 운영체제로 구성되는 경우보다 나은 유연성을 제공한다. 실제로, 제1 운영체제가 Chrome OS인 경우, 이러한 에뮬레이터를 고유의 프로그램으로 실행하기 어려울 수 있다. 일반적으로, 제3 운영체제는 Linux (RTM) 운영체제일 수 있다. 제2 운영체제가 Microsoft Windows (RTM)인 경우, 에뮬레이터는 The Wine Project(http://winehq.org/)에서 이용할 수 있는 WINE (RTM)과 같은 호환 레이어(compatibility layer)일 수 있다.
각 애플리케이션 패키지는 프로세서 상의 실행의 일부로서 적어도 하나의 데이터 파일을 생성할 수 있다. 본 방법은 각 데이터 파일을 다음 중의 적어도 하나 또는 그 조합에서 선택된 위치에 저장하는 단계를 포함할 수 있다.
- 선택적으로 암호화된, 컨테이너 패키지 이내;
- 컨테이너 패키지 외부의 저장장치; 및
- 일반적으로 네트워크를 통해 접근 가능한 원격 위치의, 컴퓨팅 장치의 외부.
적어도 하나의 데이터 파일이 컨테이너 패키지에 저장되는 경우, 컨테이너 패키지에 저장된 적어도 하나의 데이터 파일은 제1 운영체제에 접근 가능할 수 있다. 예를 들어, 상기 적어도 하나의 데이터 파일은 컨테이너 패키지 이내의 공유 폴더에 위치할 수 있다. 또는, 상기 적어도 하나의 데이터 파일은 각 애플리케이션 패키지를 통하는 경우를 제외하고는 컨테이너 패키지 외부로 접근 가능하지 않을 수 있다. 적어도 하나의 데이터 파일이 컴퓨팅 장치 외부에 저장되는 경우, 상기 적어도 하나의 데이터 파일은 컨테이너 패키지의 원격 공유 폴더 이내에 저장될 수도 있다.
본 발명의 제2 측면은 적절한 프로세서 상에서 실행되는 경우에 본 발명의 제1 측면에 따른 방법을 수행하도록 하는 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 제공한다.
한 운영체제를 위해 설계된 애플리케이션의 실행이 다른 운영체제에서 실행이 가능하게 할 수 있는 컴퓨팅 장치에서의 애플리케이션 실행 방법을 제공할 수 있다.
도 1은 본 발명의 제1 실시예에 따라 운영되는 컴퓨팅 장치를 개략적으로 도시한 도면이다.
도 2는 컴퓨팅 장치 내의 기능의 구성을 도시한 도면이다.
도 3은 본 발명의 제2 실시예에 따른 컴퓨팅 장치 내의 기능의 구성을 도시한 도면이다.
이하, 본 발명의 실시예를 첨부한 도면을 참조하여 예시로서 설명한다.
도 1은 본 발명의 제1 실시예에 따라 운영되는 컴퓨팅 장치를 개략적으로 도시한 도면이다.
도 2는 컴퓨팅 장치 내의 기능의 구성을 도시한 도면이다.
도 3은 본 발명의 제2 실시예에 따른 컴퓨팅 장치 내의 기능의 구성을 도시한 도면이다.
본 발명의 제1 실시예에 따라 작동하는 컴퓨팅 장치가 첨부한 도면의 도 1에 도시되어 있다. 본 실시예의 컴퓨팅 장치(1)는 Chromebook (RTM)이다. 컴퓨팅 장치(1)는 프로세서(2)를 비롯하여, 키보드(3)와 마우스 이벤트를 생성하는 터치패드(5)와 같은 여러 입력 장치, 스크린(4)과 같은 출력을 포함한다.
컴퓨팅 장치(1)는 또한 RAM(random access memory)와 플래시 대용량 저장장치를 포함하는 저장장치(7) 및 컴퓨팅 장치(1)가 인터넷과 같은 네트워크(8)에 접근 가능하게 하는 수단인 네트워크 인터페이스(6)를 포함한다.
컴퓨팅 장치의 동작이 첨부한 도면의 도 2에 도시되어 있다. 컴퓨팅 장치는 본래 제1 운영체제(11)를 실행하며, 본 예시의 경우, 앞서 설명한 모든 하드웨어(10)에 대한 접근을 제어하고 다양한 고유의 애플리케이션(16)(일반적으로 저장장치(7)에 저장되고 프로세서(2)에서 실행됨)을 포함하는 Chrome OS (RTM)이다.
그러나, 사용자는 Microsoft Windows (RTM)과 같은 제2 운영체제에서 실행되는 애플리케이션(15)을 실행하고자 할 수 있다. 이에 따라, 샌드박싱 된 가상머신(virtual machine) 형태의 컨테이너(12)가 컴퓨팅 장치(1) 상에 설치된다. 컨테이너(12)는, 일반적으로 가벼운 Linux (RTM)가 설치된, 제3 운영체제(13)을 포함한다. 컨테이너는 에뮬레이터(14) 및 각 애플리케이션(15)을 실행하는데 필요한 기타 서비스를 실행한다. 컨테이너가 설치되면, 각 애플리케이션(15)이 각 애플리케이션의 정상적인 설치 프로세스를 통하여 컨테이너 내에 설치된다. 그 결과, 각 애플리케이션(15)의 확실한 실행을 위해 필요한 모든 구성요소를 포함하는 자체 내장(self-contained) 애플리케이션 컨테이너(12)가 생성된다.
컨테이너(12)를 생성하기 위하여, Chrome OS 운영체제(11)로부터 분리되고 백그라운드에서 작동하는 샌드박싱 된 Linux 환경이 생성된다. 샌드박싱 된 Linux 환경 내에, VNC(Virtual Network Computing), RDP(Remote Desktop Protocol) 등과 같은 프로토콜을 이용하여 에뮬레이터(14)의 그래픽 출력에 대한 접근을 제공하는 윈도우 매니저를 포함하는 그래픽 단말 서버(18)가 설치되어 있다. 에뮬레이터(14)는 제2 운영체제(즉, Windows)로의 호(calls)를 해석하고 제3 운영체제(13)로의 적합한 호로 재전송한다.
일반적으로, 컨테이너는 애플리케이션이 동작할 최소로 축소된 데스크탑 환경을 제공할 것이다. 이는 키보드와 마우스 기능을 위한 애플리케이션으로의 입력, 폰트 렌더링, 그리고 최종적으로 그래픽 단말 서버(18)가 최종 사용자에게 디스플레이 인터페이스를 제공하기 위해서만 필요하다.
에뮬레이터(14)는 WINE (RTM)과 같은 호환 레이어일 수 있다. 물론, 하드웨어 및 운영체제 유형에 따라 다르게 구현될 수 있지만, 에뮬레이터, 호환 레이어 또는 재컴파일러(recompiler)일 수 있다.
추가 구성요소는 제1 운영체제(11)에서 동작하는 프론트 엔드 애플리케이션(17)이다. 프론트 엔드 애플리케이션(17)은 동일한 프로토콜을 이용하여 그래픽 단말 서버(18)와 통신하여 에뮬레이터의 그래픽 출력이 스크린(4) 상에 보이게 하고 키보드와 마우스 이벤트를 우회(pass back)하도록 한다. 프론트 엔드 애플리케이션(17)은 자동으로 설치될 수 있고 설치 프로세스 동안에 백그라운드에서 동작한다. 프론트 엔드 애플리케이션(17)은 또한 애플리케이션(15)의 설치와 시동을 위한 인터페이스를 제공할 수 있다. 프론트 엔드 애플리케이션(17)은 또한 필요한 경우 컨테이너(12)의 암호화와 복호화를 처리할 수 있다.
프론트 엔드 애플리케이션(17)은 애플리케이션(15) 관리에 사용되는 사용자 관리 인터페이스를 디스플레이하고 또한 설치된 애플리케이션(15)의 라이선스 키를 관리할 수 있다. 프론트 엔드는 자격과 정책에 가능한 근거하여 사용자가 애플리케이션을 다운로드하고 컨테이너(12) 내에 설치할 수 있도록 한다. 프론트 엔드는 또한 최종 사용자가 필요에 따라 컨테이너(12)를 시작 및 종료할 수 있도록 한다. 최종적으로, 프론트 엔드 애플리케이션(17)은 그래픽 단말 클라이언트를 작동시켜 컨테이너(12)의 콘텐츠 또는 애플리케이션(15) 및 그래픽 단말 서버(18)의 출력이 디스플레이(4) 상에 디스플레이 되도록 한다.
컨테이너와 프론트 엔드는 모두 최종 사용자에 의해 컴퓨팅 장치(1)에 설치되어야 한다. 처음에는, 컨테이너(12)는 아무 애플리케이션도 설치되지 않은 빈 컨테이너로 시작한다. 이후, 사용자가 어느 애플리케이션(15)을 설치할지 선택하고, 이러한 애플리케이션이 사용자 인터페이스에서 선택되면, 다운로드 되고 컨테이너에 설치된다. 설치 프로세스는 프론트 엔드 애플리케이션(17)에 의해 처리된다. 애플리케이션이 사용자에 의해 시작되면, 프론트 엔드 애플리케이션(17)은 컨테이너(12) 내부에서 애플리케이션(15) 특정 명령을 실행한 후 이 컨테이너(12)와의 그래픽 단말 연결을 이룬다. 애플리케이션의 디스플레이, 마우스 동작, 키보드 작동 등의 컨테이너와의 기타 모든 상호작용은 이 프로토콜에 의해 처리된다.
일반적인 설치 스크립트는 다음과 같은 기능을 갖는다.
1.개발자 모드 활성화. 이는 Linux 시스템에 대한 접근을 가능하게 (앞서 설명한 바와 같이, Android와 같은 특정 시스템에서는 예외일 수 있음) 한다. 그러나 Chromebook 장치에서는 필수이다.
2.가볍고 샌드박싱 된 Linux 시스템, 즉, 컨테이너(12) 설치. 이에 따라, 기존 시스템이 영향을 받지 않고 파일이 암호화될 수 있다.
3.컨테이너(12) 내에서, 사용자 상호작용을 위한 그래픽 단말 서버(17) 설치.
4.Windows(또는 기타 운영체제) 애플리케이션(15)을 위한 호환 레이어 또는 에뮬레이터(14) 설치.
5. 고유의 제1 운영체제(11) 하에 프론트 엔드 애플리케이션(17) 설치.
설치가 완료되면, 사용자는 사용자 인터페이스에서 실행할 애플리케이션(15)을 다음과 같은 단계를 통해 선택할 수 있다.
1.1차 실행에 한하여, 애플리케이션(15)을 다운로드하고 애플리케이션(15)의 설정 루틴(setup routine)을 실행.
2.컨테이너(12) 내에서 애플리케이션(15)과 그래픽 단말 서버(18)를 시작.
3.그래픽 단말 서버(18)로 연결하고 프론트 엔드 애플리케이션(17)에 표시.
사용자가 파일을 애플리케이션(15) 중의 하나에 저장하는 경우, 여러가지 방법으로 제시될 수 있다.
1.파일이 컨테이너(12)의 특별 공유 폴더 내에 있는 경우, 제1 운영체제(11)의 파일 시스템에서 표시될 수 있다(필요한 경우, 암호화 됨).
2.파일이 특별 원격 폴더 내에 있는 경우, 네트워크(8)을 통하여(필요한 경우, 암호화 됨) 원격 파일 스토어(예, Google Docs)와 자동으로 공유될 수 있다.
3.기타의 경우, 컨테이너 내에서만 표시되고, 암호화 될 수 있다.
이에 따라, Chrome OS가 제1 운영체제, Windows가 제2 운영체제인 경우, 컨테이너(12)는 운영체제 커널(kernel), 에뮬레이터, 및 표준 Microsoft Windows .exe 또는 .msi 기반 애플리케이션을 추가 및 설치할 능력을 포함하는 완전히 레이어를 갖춘(fully layered) 애플리케이션 컨테이너가 될 수 있다. 본 프로세스는 자체 내장(self-contained) 애플리케이션을 단일 인스톨러(installer) 내에 제공하여 설치 프로세스를 단순화하도록 설계된 것이다. 사용자는 우선 컨테이너(12)를 설치한 후, 필요한 애플리케이션을 이 컨테이너 내부로 설치하면 된다.
본 실시예에 의하면, 고유하게 설치된 애플리케이션과 완전히 동일한 방식으로 장치(1) 상에서의 애플리케이션(15) 실행이 가능하고, 또한 마우스 패드 또는 터치 스크린과 같은 일체의 로컬 리소스(local resource)의 사용이 장치(1) 상에서 가능하다. 또한, 장치(1) 상에서 사용자 데이터 파일의 국부적 저장이 숨김파일 위치 또는 표준 드라이브나 클라우드로 호스팅된 서비스로 지정되어 가능하다. 사용자는 파일이 완전히 암호화 되어 저장되도록 선택할 수 있다. 컨테이너는 표준 애플리케이션 인스톨러와 호환되므로, 사용자는 필요한 애플리케이션으로 캡처하거나 용도 변경하지 않고도 Windows의 레거시 애플리케이션을 설치할 수 있다.
각 애플리케이션(15)은 네트웨크(8)에 연결되지 않아도 장치(1)로 다운로드 되고 장치(1) 상에서 국부적으로 실행될 수 있다. 네트워크 연결은 각 애플리케이션(15) 패키지의 초기 다운로드를 수행하기 위해서만 필요하다.
최종 사용자가 Microsoft Windows 파워포인트와 엑셀을 Chrome OS를 운영하는 Chromebook 장치 상에서 실행하게 해주는 본 제품의 작동 시연 프로토타입을 제작하여 시연한 결과, 애플리케이션(15)이 표준 Windows 운영체제에서 작동하듯이 표시되고, 느껴지며 동작하였다.
본 발명의 제2 실시예가 첨부한 도면의 도 3에 도시되어 있다. 상기 실시예와 동일한 기능은 상응하는 각 참조번호에 20씩을 증가하여 표시하였다.
본 실시예에서는, 제1 운영체제(11) 내에서 직접 실행하는 대신에, 제1 운영체제(31) 상에서 작동하는 브라우저(40) 내에서 컨테이너(32)를 실행한다. 컨테이너(32)는 브라우저의 캐시(41)로 다운로드 되고 실행된다. 일반적으로, 이 브라우저(40)는 웹어셈블리(Web Assembly (WASM)) 프로토콜을 활성화하여 JIT(just in time) 컴파일레이션을 하게 하고 또한 동적 변환(dynamic translation)과 플랫폼 독립(platform independence)을 활성화 할 것이다.
1: 컴퓨팅 장치
2: 프로세서
3: 키보드
4: 스크린
5: 터치패드
6: 네트워크 인터페이스
7: 저장장치
8: 네트워크
10, 30: 하드웨어
11, 31: 제1 운영체제
12, 32: 컨테이너
13, 33: 제3 운영체제
14, 34: 에뮬레이터
15, 35: 애플리케이션
16, 36: 고유의 애플리케이션
18, 38: 그래픽 단말 서버
17, 37: 프론트 엔드 애플리케이션
40: 브라우저
41: 캐시

Claims (16)

  1. 컴퓨팅 장치에서 애플리케이션을 실행하는 방법에 있어서, 상기 컴퓨팅 장치는 제1 운영체제를 실행하고, 상기 애플리케이션은 제2 운영체제 상에서 작동하며, 상기 컴퓨팅 장치는 저장장치와 프로세서를 포함하며, 상기 방법은:
    - 상기 제2 운영체제의 에뮬레이터(emulator) 기능을 하는 컨테이너 패키지(container package)를 상기 저장장치에 로딩하고 상기 프로세서 상에 상기 컨테이너 패키지를 실행하는 단계;
    - 상기 제2 운영체제의 애플리케이션 코드를 각각 포함하는 적어도 하나의 애플리케이션 패키지를 상기 컨테이너 패키지 내에 설치하는 단계; 및
    - 각 애플리케이션 패키지를 상기 프로세서 상에서 실행하되, 상기 컨테이너 패키지는 상기 애플리케이션 코드가 상기 제2 운영체제에 하는 요구를 상기 제1 운영체제의 상응하는 요구로 변환하는 단계;
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 제1 운영체제는 Chrome OS와 같은 씬 웹 클라이언트(thin web client) 운영체제인 것을 특징으로 하는 방법.
  3. 제1항 또는 제2항에 있어서, 상기 제2 운영체제는 Microsoft Windows (RTM), Mac OS X (RTM), Linux (RTM) 등과 같은 완성 운영체제(fully-fledged operating system)인 것을 특징으로 하는 방법.
  4. 상기 항의 어느 한 항에 있어서, 브라우저의 캐시 내에 상기 컨테이너 패키지를 로딩 및/또는 상기 에뮬레이션 패키지를 실행하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 상기 항의 어느 한 항에 있어서, 상기 컨테이너 패키지는 에뮬레이터를 실행하는, 각 애플리케이션 패키지를 실행하도록 구성된, 샌드박스(sandbox) 및 로컬 그래픽 단말 서버(local graphical terminal server)를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 로컬 그래픽 단말 클라이언트 역할을 하는 프론트 엔드 프로그램(front end program)을 실행하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서, 상기 컴퓨팅 장치 내에서 상기 컨테이너 패키지가 그래픽 출력을 생성하고 상기 그래픽 출력을 상기 로컬 그래픽 단말 서버를 통해 상기 로컬 그래픽 단말 클라이언트로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제6항 또는 제7항에 있어서, 상기 로컬 그래픽 단말 클라이언트는 키보드 이벤트 및 마우스 이벤트와 같은 입력 이벤트를 상기 프론트 엔드 프로그램으로부터 상기 로컬 그래픽 단말 서버로 전송하는 것을 특징으로 하는 방법.
  9. 제5항 내지 제8항의 어느 한 항에 있어서, 상기 샌드박스는 일반적으로 상기 제1 운영체제와 다른 제3 운영체제를 실행하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 제3 운영체제는 Linux 운영체제인 것을 특징으로 하는 방법.
  11. 제5항 내지 제10항의 어느 한 항에 있어서, 상기 제2 운영체제는 Microsoft Windows (RTM)이고, 에뮬레이터는 WINE과 같은 호환 레이어(compatibility layer)인 것을 특징으로 하는 방법.
  12. 상기 항의 어느 한 항에 있어서, 각 애플리케이션 패키지는 상기 프로세서 상의 실행의 일부로서 적어도 하나의 데이터 파일을 생성하고, 상기 방법은 각 데이터 파일을
    - 선택적으로 암호화된, 상기 컨테이너 패키지 이내;
    - 상기 컨테이너 패키지 외부의 상기 저장장치; 및
    - 일반적으로 네트워크를 통해 접근 가능한 원격 위치의, 상기 컴퓨팅 장치의 외부;
    중의 적어도 하나 또는 그 조합에서 선택된 위치에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제12항에 있어서, 적어도 하나의 데이터 파일이 상기 컨테이너 패키지에 저장되고, 상기 컨테이너 패키지에 저장된 적어도 하나의 데이터 파일은 상기 제1 운영체제에 접근 가능한 것을 특징으로 하는 방법.
  14. 제12항 또는 제13항에 있어서, 적어도 하나의 데이터 파일은 상기 컨테이너 패키지에 저장되고, 각 애플리케이션 패키지를 통하는 경우를 제외하고는 상기 컨테이너 패키지 외부로 접근 가능하지 않는 것을 특징으로 하는 방법.
  15. 제12항 내지 제14항의 어느 한 항에 있어서, 적어도 하나의 데이터 파일은 상기컴퓨팅 장치 외부에 저장되고, 또한 상기 컨테이너 패키지의 원격 공유 폴더 이내에 저장되는 것을 특징으로 하는 방법.
  16. 적절한 프로세서 상에서 실행되는 경우에 상기 항의 어느 한 항의 방법을 수행하도록 하는 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체.
KR1020187010430A 2015-09-14 2016-09-13 컴퓨팅 장치에서의 애플리케이션 실행방법 KR20180053358A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1516227.4 2015-09-14
GBGB1516227.4A GB201516227D0 (en) 2015-09-14 2015-09-14 Running applications on a computer device
PCT/GB2016/052823 WO2017046578A1 (en) 2015-09-14 2016-09-13 Running applications on a computing device

Publications (1)

Publication Number Publication Date
KR20180053358A true KR20180053358A (ko) 2018-05-21

Family

ID=54363119

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187010430A KR20180053358A (ko) 2015-09-14 2016-09-13 컴퓨팅 장치에서의 애플리케이션 실행방법

Country Status (12)

Country Link
US (1) US20200233684A1 (ko)
EP (1) EP3350695A1 (ko)
JP (1) JP2018526759A (ko)
KR (1) KR20180053358A (ko)
CN (1) CN108139922A (ko)
AU (2) AU2016322044A1 (ko)
EA (1) EA201890374A1 (ko)
GB (1) GB201516227D0 (ko)
HK (1) HK1258705A1 (ko)
MX (1) MX2018002776A (ko)
WO (1) WO2017046578A1 (ko)
ZA (1) ZA201801217B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220058270A (ko) * 2020-10-30 2022-05-09 주식회사 블록오디세이 모바일 블록체인 네트워크 플랫폼 제공 방법, 모바일 디바이스 및 기록매체

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102631745B1 (ko) * 2018-10-16 2024-02-01 삼성전자주식회사 이종 운영체제의 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체
CN112961863B (zh) * 2019-06-04 2023-03-10 中国农业科学院兰州兽医研究所 猪IgA类别转换后转录本α长、短序列
US11256519B2 (en) * 2019-08-21 2022-02-22 Dell Products L.P. Using a single process to install a UEFI-supported OS or a non-UEFI supported OS on a hardware platform
US11108844B1 (en) 2020-06-09 2021-08-31 The Procter & Gamble Company Artificial intelligence based imaging systems and methods for interacting with individuals via a web environment
CN112817492A (zh) * 2021-01-12 2021-05-18 张宇翔 移动终端中应用程序管理方法及系统
CN114036369B (zh) * 2021-10-20 2024-04-30 北京字节跳动网络技术有限公司 浏览器访问应用的方法、装置、设备、介质和产品
CN114817981A (zh) * 2022-02-14 2022-07-29 统信软件技术有限公司 一种文件访问方法、计算设备及可读存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN85101171B (zh) * 1985-04-01 1988-08-17 株式会社日立制作所 虚拟机系统及其计算机系统的i/o执行方法
US7698545B1 (en) * 2006-04-24 2010-04-13 Hewlett-Packard Development Company, L.P. Computer configuration chronology generator
DE102006049646B3 (de) * 2006-10-20 2008-06-19 Siemens Ag Verfahren und Sendevorrichtung zum gesicherten Erstellen und Versenden einer elektronischen Nachricht sowie Verfahren und Empfangsvorrichtung zum gesicherten Empfangen und Verarbeiten einer elektronischen Nachricht
JP5251002B2 (ja) * 2007-05-25 2013-07-31 富士通株式会社 分散処理プログラム、分散処理方法、分散処理装置、および分散処理システム
US8627426B2 (en) * 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US9891939B2 (en) * 2011-03-03 2018-02-13 Microsoft Technology Licensing, Llc Application compatibility with library operating systems
US9495183B2 (en) * 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US9389933B2 (en) * 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
CN103379134A (zh) * 2012-04-11 2013-10-30 宏碁股份有限公司 电子装置及数据同步方法
CN103488466B (zh) * 2012-06-11 2017-02-08 联想(北京)有限公司 用于执行应用程序的方法和装置
US9842091B2 (en) * 2013-03-15 2017-12-12 Google Llc Switching to and from native web applications
WO2015088374A1 (en) * 2013-12-13 2015-06-18 Obschestvo S Ogranichennoy Otvetstvennostju "Elbrus Tehnologii" Systems and methods for cross-architecture container virtualization
CN104166586B (zh) * 2014-09-04 2017-02-15 中南大学 一种基于虚拟化技术的透明计算方法及透明计算系统
US9294492B1 (en) * 2015-03-10 2016-03-22 Iboss, Inc. Software program identification based on program behavior

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220058270A (ko) * 2020-10-30 2022-05-09 주식회사 블록오디세이 모바일 블록체인 네트워크 플랫폼 제공 방법, 모바일 디바이스 및 기록매체

Also Published As

Publication number Publication date
MX2018002776A (es) 2018-08-01
US20200233684A1 (en) 2020-07-23
EP3350695A1 (en) 2018-07-25
EA201890374A1 (ru) 2018-09-28
ZA201801217B (en) 2018-12-19
AU2016322044A1 (en) 2018-03-15
GB201516227D0 (en) 2015-10-28
WO2017046578A1 (en) 2017-03-23
JP2018526759A (ja) 2018-09-13
HK1258705A1 (zh) 2019-11-15
CN108139922A (zh) 2018-06-08
AU2022200314A1 (en) 2022-02-10

Similar Documents

Publication Publication Date Title
KR20180053358A (ko) 컴퓨팅 장치에서의 애플리케이션 실행방법
US9898278B2 (en) Release and management of composite applications on PaaS
US9552477B2 (en) Resource management in a processor
CN105593813A (zh) 用于可视化从受限环境容器提供的数据的呈现解释器
US20140082511A1 (en) Method and system for emulating desktop software applications in a mobile communication network
CN106997298B (zh) 一种应用资源获取方法及装置
US9317304B2 (en) Launching multiple applications in a processor
US8694956B2 (en) PowerShell cmdlets code generating tool for communicating to the web services
KR20230054474A (ko) 마이크로프론트엔드 시스템, 서브애플리케이션 로딩 방법, 전자 디바이스, 컴퓨터 프로그램 제품 및 컴퓨터로 판독 가능한 저장 매체
US20170031680A1 (en) Computer-implemented method and system for executing android apps natively on any environment
Nakao et al. Toward remote service invocation in android
JP2015114844A (ja) アプリケーション実行環境切替方法及び装置及びプログラム
Kemer et al. Performance comparison of scalable rest application programming interfaces in different platforms
US9465677B2 (en) Partitioned application environment
CN106233226B (zh) 在移动装置上执行的寄载应用内的服务代替的进程内俘获
JP2006276939A (ja) 仮想マシンのプログラム起動方法およびクライアントサーバシステム
US10140958B2 (en) Managing multiple systems in a computer device
KR101316677B1 (ko) 사용자 인터페이스 가상화에 의한 어플리케이션 서비스 시스템 및 방법
US20070073902A1 (en) Information processor, information processing method and program
CN114860401A (zh) 异构云桌面调度系统、方法、服务系统、装置及介质
CN113791778A (zh) 软件项目生成方法及装置、电子设备和存储介质
Gupta et al. Virtual machine for IOS devices
Spruijt et al. Application virtualization smackdown
KR100988093B1 (ko) 터미널 환경의 서버 기반 컴퓨팅 시스템에서의 프로그램 분산 처리를 위한 장치 및 프로그램 분산 처리 방법
Sabale et al. Install and Configure Apps on a Session Host

Legal Events

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