KR20200008498A - 애플리케이션의 액세스를 제어하기 위한 방법 및 디바이스 - Google Patents
애플리케이션의 액세스를 제어하기 위한 방법 및 디바이스 Download PDFInfo
- Publication number
- KR20200008498A KR20200008498A KR1020190049299A KR20190049299A KR20200008498A KR 20200008498 A KR20200008498 A KR 20200008498A KR 1020190049299 A KR1020190049299 A KR 1020190049299A KR 20190049299 A KR20190049299 A KR 20190049299A KR 20200008498 A KR20200008498 A KR 20200008498A
- Authority
- KR
- South Korea
- Prior art keywords
- application
- access
- server
- hoi
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2129—Authenticate client device independently of the user
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 개시는 애플리케이션에 대한 액세스를 제어하는 방법에 관한 것이다. 본 개시의 실시예에 따르면, 서버는 디바이스로부터 서로 다른 운영체제(OS)에서 각각 실행되는 적어도 하나의 애플리케이션을 관리하는 하이브리드 운영 체제 인터페이스(HOI)로의 액세스 요청을 수신하고, 수신된 HOI로의 액세스 요청에 기초하여 디바이스의 인증을 수행하며, 상기 디바이스가 인증됨에 따라, 상기 적어도 하나의 애플리케이션 중 상기 디바이스로부터 액세스 요청된 애플리케이션을 결정하여 상기 결정된 애플리케이션의 실행에 따른 데이터를 상기 디바이스에 전송할 수 있다.
Description
본 개시의 실시예들은 애플리케이션 관리 시스템, 보다 구체적으로는 애플리케이션의 액세스를 처리하기 위한 방법, 디바이스 및 서버와 관련될 수 있다.
많은 기업들(enterprises)은 (예를 들어 협력사, 파트너십, 교육 기관 등) 사용자들로 하여금 기업 네트워크를 통해 이메일, 고객 관계 관리(customer relationship management)(CRM), 문서 관리, 기업 리소스 관리(enterprise resource planning)(ERP)를 위한 소프트웨어 애플리케이션들 및 하드웨어와 같은, 기업 리소스에 액세스할 수 있도록 한다. 사용자들은 디바이스를 사용하여 기업 네트워크에 액세스할 수 있다. 일부 경우들에서는, 사용자 디바이스에서 실행되는 애플리케이션들은 기업 네트워크를 통해 데이터를 교환하고 이 중 일부 데이터는 사용자 디바이스의 메모리에 저장된다. 따라서, 기업들과 사용자에 대한 보안 문제가 발생한다.
또한, 사용자는, 다수의 운영 체제(OS) 또는 다수의 플랫폼의 애플리케이션에 액세스하는 동안, 제 1 OS 상에서 실행되는 애플리케이션을 사용하여 작업을 하고 제 2 OS 상에서 실행되는 애플리케이션을 통해 데이터를 공유하길 원할 수 있다. 제 1 OS 및 제 2 OS 간에 데이터를 공유하기 위해서, 사용자는 먼저 제 2 OS의 다른 애플리케이션으로 스위칭(switch) 한 다음, 제 1 OS에서 실행 중인 애플리케이션을 통해 파일을 전송해야 하며 따라서 사용자 경험을 감소시킨다. 또한, 상기 방법은 클라우드 상에서 사용자 디바이스가 전체 데스크탑 및 모바일 디바이스에 로그인을 하도록 하며 따라서 관리자의 보안 문제를 야기한다. 또한, 사용자는 다수의 플랫폼의 애플리케이션에 액세스 할 때 마다, 매번 로그인 요청을 받게 된다.
따라서, 상술한 단점 또는 다른 단점을 해소하거나 적어도 유용한 대안을 제공함이 바람직하다.
본 개시의 실시예들은, 애플리케이션의 액세스를 처리하기 위한 방법, 디바이스 및 서버를 제공하기 위한 것이다.
또한, 본 개시의 실시예들은, 적어도 하나의 사용자 디바이스로부터 하이브리드 운영 체제 인터페이스(HOI)로의 액세스 요청을 수신하기 위한 것이다.
또한, 본 개시의 실시예들은, 디바이스가 인증됨에 따라 액세스될 적어도 하나의 애플리케이션을 식별하기 위한 것이다.
또한, 본 개시의 실시예들은, 적어도 하나의 식별된 애플리케이션과 관련된 메타데이터를 검색하기 위한 것이다.
또한, 본 개시의 실시예들은, 적어도 하나의 식별된 애플리케이션을 분류하여 디바이스에 제공하기 위한 것이다.
또한, 본 개시의 실시예들은, OS 인스턴스 상의 애플리케이션의 인스턴스에 기초하여 적어도 하나의 애플리케이션 간에 데이터를 공유하기 위한 것이다.
본 개시의 일 실시예에 따른 서버가 애플리케이션에 대한 액세스를 제어하는 방법은: 디바이스로부터 서로 다른 운영체제(OS)에서 각각 실행되는 적어도 하나의 애플리케이션을 관리하는 하이브리드 운영 체제 인터페이스(HOI)로의 액세스 요청을 수신하는 단계; 상기 수신된 HOI로의 액세스 요청에 기초하여 상기 디바이스의 인증을 수행하는 단계; 상기 디바이스가 인증됨에 따라, 상기 적어도 하나의 애플리케이션 중 상기 디바이스로부터 액세스 요청된 애플리케이션을 결정하는 단계; 및 상기 결정된 애플리케이션의 실행에 따른 데이터를 상기 디바이스에 전송하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 상기 HOI로의 액세스 요청은, 상기 적어도 하나의 애플리케이션 중 상기 액세스 요청된 애플리케이션의 식별 정보를 포함할 수 있다.
본 개시의 일 실시예에 따른 서버가 애플리케이션에 대한 액세스를 제어하는 방법은: 상기 액세스 요청이 수신됨에 따라, 상기 디바이스에 상기 실행 가능한 적어도 하나의 애플리케이션의 메타데이터를 전송하는 단계를 더 포함하고, 상기 디바이스로부터 액세스 요청된 애플리케이션은, 상기 전송된 메타데이터를 기초로 결정될 수 있다.
본 개시의 일 실시예에 따른 서버가 애플리케이션에 대한 액세스를 제어하는 방법은: 상기 적어도 하나의 애플리케이션을, OS 종류 또는 디바이스 타입 중 적어도 어느 하나에 기초하여 분류하는 단계, 및 상기 분류 정보를 전송하는 단계를 더 포함할 수 있다.
본 개시의 일 실시예에 따른 서버가 애플리케이션에 대한 액세스를 제어하는 방법은: 상기 서버의 OS의 인스턴스 상에 상기 액세스 요청된 애플리케이션의 인스턴스가 활성화 상태인지 여부를 식별하는 단계; 및 상기 액세스 요청된 애플리케이션의 인스턴스가 활성화 상태인 경우, 상기 애플리케이션의 인스턴스에 대응하는 사용자 인터페이스(UI)를 사용자 디바이스에 전송하고 상기 애플리케이션의 인스턴스가 비활성 상태인 경우, 상기 애플리케이션에 대응하는 OS 인스턴스를 호출하는 단계를 더 포함할 수 있다.
본 개시의 일 실시예에 따른 서버가 애플리케이션에 대한 액세스를 제어하는 방법은: 상기 디바이스로부터 상기 실행 중인 애플리케이션과 다른 애플리케이션 간의 데이터 공유 요청을 수신하는 단계; 상기 수신된 데이터 공유 요청에 따라, 상기 실행 중인 애플리케이션에서 발생된 데이터가 저장된 메모리의 메모리 경로 정보를 결정하는 단계; 및
상기 결정된 메모리 경로 정보를 기초로 상기 발생된 데이터를 상기 다른 애플리케이션과 공유하는 단계를 더 포함할 수 있다.
본 개시의 일 실시예에 따른 애플리케이션의 실행에 따른 데이터를 상기 디바이스에 전송하는 단계는: 상기 실행 중인 애플리케이션에 대한 이벤트 명령을 상기 디바이스로부터 수신하는 단계; 및 상기 이벤트 명령에 기초하여 처리된 데이터를 상기 디바이스에 전송하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 디바이스가 애플리케이션에 대한 액세스를 제어하는 방법은: 사용자 입력에 기초하여 액세스 대상이 되는, 서로 다른 운영체제(OS)에서 각각 실행되는 적어도 하나의 애플리케이션을 관리하는 하이브리드 운영 체제 인터페이스(HOI)를 결정하는 단계; 상기 결정된 HOI로의 액세스 요청을, 상기 HOI를 포함하는 서버로 전송하는 단계; 및 상기 액세스 요청을 기초로, 상기 디바이스가 상기 서버에 인증됨에 따라, 상기 적어도 하나의 애플리케이션 중에서 결정된 애플리케이션의 실행에 따른 데이터를 상기 서버로부터 수신하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 디바이스가 애플리케이션에 대한 액세스를 제어하는 방법은: 상기 서버에 상기 실행 중인 애플리케이션과 다른 애플리케이션 간의 데이터 공유 요청을 전송하는 단계를 더 포함하고; 상기 데이터 공유 요청에 따라, 상기 실행 중인 애플리케이션에서 발생된 데이터가 저장된 메모리의 메모리 경로 정보를 기초로, 상기 데이터가 상기 다른 애플리케이션에 공유될 수 있다.
본 개시의 일 실시예에 따른 애플리케이션에 대한 액세스를 제어하기 위한 서버는 하나 이상의 인스트럭션들을 저장하는 메모리; 통신부; 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는, 디바이스로부터 서로 다른 운영체제(OS)에서 각각 실행되는 적어도 하나의 애플리케이션을 관리하는 하이브리드 운영 체제 인터페이스(HOI)로의 액세스 요청을 수신하도록 상기 통신부를 제어하고,
상기 수신된 HOI로의 액세스 요청에 기초하여 상기 디바이스의 인증을 수행하고,
상기 디바이스가 인증됨에 따라, 상기 적어도 하나의 애플리케이션 중 상기 디바이스로부터 액세스 요청된 애플리케이션을 결정하며, 상기 결정된 애플리케이션의 실행에 따른 데이터를 상기 디바이스에 전송하도록 상기 통신부를 제어할 수 있다.
본 개시의 일 실시예에 따른 프로세서에 의해 실행되었을 때 상기 프로세서가 애플리케이션에 대한 액세스를 제어하는 방법을 수행하도록 명령하는 프로그램 명령들을 저장하는 기록 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 애플리케이션에 대한 액세스를 제어하는 동작은: 디바이스로부터 서로 다른 운영체제(OS)에서 각각 실행되는 적어도 하나의 애플리케이션을 관리하는 하이브리드 운영 체제 인터페이스(HOI)로의 액세스 요청을 수신하는 동작; 상기 수신된 HOI로의 액세스 요청에 기초하여 상기 디바이스의 인증을 수행하는 동작; 상기 디바이스가 인증됨에 따라, 상기 적어도 하나의 애플리케이션 중 상기 디바이스로부터 액세스 요청된 애플리케이션을 결정하는 동작; 및 상기 결정된 애플리케이션의 실행에 따른 데이터를 상기 디바이스에 전송하는 동작을 포함할 수 있다.
도 1a는 본 개시의 일 실시예에 따른 애플리케이션의 액세스를 처리하는 시스템의 개략도이다.
도 1b는 본 개시의 일 실시예에 따른 애플리케이션의 액세스를 처리하는 시스템의 개략도이다.
도 2는 본 개시의 일 실시예에 따른 서버의 구조를 나타낸 블록도이다.
도 3은 본 개시의 다른 실시예에 따른 서버의 구조를 나타낸 블록도이다.
도 4는 본 개시의 일 실시예에 따른 HOI 제어부의 구조를 나타낸 블록도이다.
도 5는 본 개시의 일 실시예에 따른 애플리케이션의 액세스를 처리하기 위한 방법을 나타내는 도면이다.
도 6은 본 개시의 다른 실시예에 따른 애플리케이션의 액세스를 처리하기 위한 방법을 나타내는 흐름도이다.
도 7은 본 개시의 또 다른 실시예에 따른 애플리케이션의 액세스를 처리하기 위한 방법을 나타내는 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 애플리케이션을 스트리밍하는 방법을 나타내는 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 애플리케이션을 스트리밍하기 위한 다양한 동작을 나타내는 흐름도이다.
도 10은 상이한 플랫폼의 애플리케이션 간에 데이터를 공유하는 방법을 설명하기 위한 예시도이다.
도 11은 본 개시의 일 실시예에 따른 상이한 플랫폼의 애플리케이션 간에 데이터를 공유하는 방법을 설명하기 위한 예시도이다.
도 12는 본 개시의 일 실시예에 따른 가상 컨테이너를 나타내는 예시도이다.
도 13a는 본 개시의 일 실시예에 따른 디바이스의 디스플레이 상에서 애플리케이션이 표시되는 것을 나타내는 예시도이다.
도 13b는 본 개시의 다른 실시예에 따른 디바이스의 디스플레이 상에서 애플리케이션이 표시되는 것을 나타내는 예시도이다.
도 13c는 본 개시의 또 다른 실시예에 따른 디바이스의 디스플레이 상에서 애플리케이션이 표시되는 것을 나타내는 예시도이다.
도 14는 본 개시의 일 실시예에 따른 디바이스가 애플리케이션의 액세스를 처리하는 방법을 나타내는 흐름도이다.
도 15는 본 개시의 일 실시예에 따른 디바이스의 구조를 나타낸 블록도이다.
도 1b는 본 개시의 일 실시예에 따른 애플리케이션의 액세스를 처리하는 시스템의 개략도이다.
도 2는 본 개시의 일 실시예에 따른 서버의 구조를 나타낸 블록도이다.
도 3은 본 개시의 다른 실시예에 따른 서버의 구조를 나타낸 블록도이다.
도 4는 본 개시의 일 실시예에 따른 HOI 제어부의 구조를 나타낸 블록도이다.
도 5는 본 개시의 일 실시예에 따른 애플리케이션의 액세스를 처리하기 위한 방법을 나타내는 도면이다.
도 6은 본 개시의 다른 실시예에 따른 애플리케이션의 액세스를 처리하기 위한 방법을 나타내는 흐름도이다.
도 7은 본 개시의 또 다른 실시예에 따른 애플리케이션의 액세스를 처리하기 위한 방법을 나타내는 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 애플리케이션을 스트리밍하는 방법을 나타내는 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 애플리케이션을 스트리밍하기 위한 다양한 동작을 나타내는 흐름도이다.
도 10은 상이한 플랫폼의 애플리케이션 간에 데이터를 공유하는 방법을 설명하기 위한 예시도이다.
도 11은 본 개시의 일 실시예에 따른 상이한 플랫폼의 애플리케이션 간에 데이터를 공유하는 방법을 설명하기 위한 예시도이다.
도 12는 본 개시의 일 실시예에 따른 가상 컨테이너를 나타내는 예시도이다.
도 13a는 본 개시의 일 실시예에 따른 디바이스의 디스플레이 상에서 애플리케이션이 표시되는 것을 나타내는 예시도이다.
도 13b는 본 개시의 다른 실시예에 따른 디바이스의 디스플레이 상에서 애플리케이션이 표시되는 것을 나타내는 예시도이다.
도 13c는 본 개시의 또 다른 실시예에 따른 디바이스의 디스플레이 상에서 애플리케이션이 표시되는 것을 나타내는 예시도이다.
도 14는 본 개시의 일 실시예에 따른 디바이스가 애플리케이션의 액세스를 처리하는 방법을 나타내는 흐름도이다.
도 15는 본 개시의 일 실시예에 따른 디바이스의 구조를 나타낸 블록도이다.
본 개시의 다양한 실시예가 첨부 도면을 참조하여 더 상세히 설명된다. 그러나, 본 개시는 많은 다른 형태로 구현될 수 있으며, 이하의 설명에서 제시되는 임의의 특정 구조 또는 기능에 한정되는 것으로 해석되어서는 안된다. 대조적으로, 이 실시예들은 본 개시의 설명을 상세하고 완전하게 하기 위해 제공된다. 본 개시의 설명에 따르면, 본 개시의 범위는 본 실시 예가 독립적으로 또는 다른 임의의 실시예와 함께 구현되는지 여부에 관계없이 본 명세서에 개시된 본 개시의 임의의 실시예를 포함함이 당업자에게 자명할 것이다. 예를 들어, 본 명세서에 개시된 방법 및 디바이스는 본 명세서에서 개시된 임의의 실시예를 사용함으로써 실제로 구현될 수 있다. 또한, 본 개시의 임의의 실시예는 첨부된 청구항들에 제시된 하나 이상의 엘리먼트들을 사용하여 구현될 수 있다.
본 개시에서 사용되는 용어는 개시된 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당업자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 개시된 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 개시된 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
제 1, 제 2 등과 같이 서수를 포함하는 용어는 다양한 엘리먼트를 설명하는데 사용될 수 있지만, 엘리먼트라는 용어에 의해 한정되지는 않는다. 용어들은 하나의 엘리먼트를 다른 엘리먼트로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제 1 엘리먼트는 제 2 엘리먼트로 명명될 수 있고, 유사하게 제 2 엘리먼트도 제 1 엘리먼트로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 항목들의 조합 또는 복수의 관련된 항목들 중의 어느 하나의 항목을 포함한다.
개시된 명세서에서 어떤 부분이 어떤 엘리먼트를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 엘리먼트를 제외하는 것이 아니라 다른 엘리먼트를 더 포함할 수 있음을 의미한다. 또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 엘리먼트를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 엘리먼트들, 객체지향 소프트웨어 엘리먼트들, 클래스 엘리먼트들 및 태스크 엘리먼트들과 같은 엘리먼트들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 엘리먼트들과 "부"들 안에서 제공되는 기능은 더 작은 수의 엘리먼트들 및 "부"들로 결합되거나 추가적인 엘리먼트들과 "부"들로 더 분리될 수 있다.
또한, 본 개시의 모든 "부"는 적어도 하나의 프로세서에 의해 제어될 수 있으며 본 개시의 "부"가 수행하는 동작을 적어도 하나의 프로세서가 수행할 수도 있다.
그리고 도면에서 본 개시의 실시예들을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
"예시적인"이라는 단어는 본 명세서에서 "예시 또는 예증으로서 사용된"의 의미로 사용된다. 본 명세서에서 "예시적인"것으로 설명된 임의의 실시예는 반드시 바람직한 것으로서 해석되거나 다른 실시예들보다 이점을 갖는 것으로 해석되어서는 안된다.
본 개시의 실시예들은 기능 또는 기능을 수행하는 블록의 관점에서 설명될 수 있다. 본 개시의 '부' 또는 '모듈' 등으로 지칭될 수 있는 블록은 논리 게이트, 집적 회로, 마이크로 프로세서, 마이크로 컨트롤러, 메모리, 수동 전자 부품, 능동 전자 부품, 광학 컴포넌트, 하드와이어드 회로(hardwired circuits) 등과 같은 아날로그 또는 디지털 회로에 의해 물리적으로 구현되고, 선택적으로 펌웨어 및 소프트웨어에 의해 구동될 수 있다.
본 개시의 실시예는 적어도 하나의 하드웨어 디바이스 상에서 실행되는 적어도 하나의 소프트웨어 프로그램을 사용하여 구현될 수 있고 엘리먼트를 제어하기 위해 네트워크 관리 기능을 수행할 수 있다.
본 개시의 실시예들에 따르면, 사용자는 상이한 플랫폼 또는 OS (예를 들어, Linux® 플랫폼, Windows® 플랫폼, Android® 플랫폼 등)에서 동작하는 애플리케이션에 액세스하기 위해 디바이스 또는 모드를 스위칭할 필요가 있을 수 있다. 본 개시에 실시예들에 따르면, 사용자는 어떠한 변경 없이 상이한 플랫폼 또는 OS의 애플리케이션에 액세스 할 수 있다. 사용자에게는 데스크탑 및 모바일 애플리케이션을 포함하는, 보안이 보장된, 비즈니스 작업 공간이 제공된다. 본 개시에 실시예들에 따르면, 사용자의 작업 공간을 유지 및 관리하는 관리자 (즉, IT 관리자)의 작업이 단순화될 수 있다. 또한, 사용자에게 역할 기반 액세스를 제공하도록 관리자 정책 지원이 향상될 수 있다.
본 개시의 실시예들에 따르면, 애플리케이션이 동일한 OS (또는 플랫폼) 또는 다른 OS (또는 플랫폼)에서 동작하는지에 관계없이, 디바이스 또는 모드를 스위칭하지 않고서 애플리케이션 간에 데이터를 공유할 수 있다.
본 개시의 실시예들에 따르면, 디바이스는 서버의 백그라운드 구현을 알지 못해도 간단한 방식으로 애플리케이션과 직접 인터랙팅 할 수 있다. 또한, 디바이스는 가상 데스크탑 인프라(VDI) 및 가상 모바일 인프라(VMI) 중 적어도 하나에서 실행되는 가상화된 애플리케이션에 원격으로 액세스 할 수 있다.
본 개시의 일 실시예에 따르면, 디바이스(100)의 사용자는 VDI/VMI 애플리케이션 중 하나에 로그인할 수 있다. 디바이스(100)가 인증되면 세션이 생성되고 이후부터는 VDI/VMI(또는 플랫폼)와 관계없이 모든 애플리케이션에 대해 세션이 유지되어 사용자는 모든 애플리케이션에 쉽게 액세스 할 수 있다. 또한, IT 관리자는 서버(102) 상의 모든 플랫폼에 정책을 적용할 수 있다. 따라서, IT 관리자는 시스템을 정확하고 빠르게 관리할 수 있다.
본 개시의 실시예들에서, 공유 및 복사 기능은 드래그 앤 드롭(drag and drop)과 통합될 수 있으며 따라서 디바이스는 애플리케이션에 빠르게 액세스 할 수 있다. 본 개시의 실시예들에 따른 방법은 다양한 도메인 (예를 들어, 은행 도메인, 금융 도메인, 헬스 케어 도메인, 보안 도메인 등)에서 사용될 수 있다.
본 개시의 운영 체제(OS) 및 플랫폼은 본 개시에서 상호 교환 가능하게 사용될 수 있다. 또한 본 개시의 하이브리드 운영 체제 인터페이스(Hybrid Operating System Interface)(HOI)는 하드웨어 또는 소프트웨어로 구현될 수 있으며 적어도 하나의 프로세서에 의해 제어될 수 있다.
본 개시의 액세스 대상이 되는 HOI 또는 애플리케이션은 서버 상에 존재하여 동작 (또는 실행)되는 것으로 서버 상에 존재하는 것과 동일한 HOI 또는 애플리케이션은 세션 연결되어 있는 디바이스에 존재할 수 있다.
이하 첨부된 도면을 참고하여 본 개시의 실시예들을 상세히 설명하기로 한다.
도 1a는 본 개시의 일 실시예에 따른 애플리케이션의 액세스를 처리하는 시스템의 개략도이다.
본 개시의 일 실시예에 따르면, 시스템(104a)은 디바이스(100) 및 서버(102)를 포함할 수 있다. 다만, 이는 일 실시예일 뿐, 시스템(104a)은 전술한 엘리먼트들 이외에 더 많은 엘리먼트들을 포함할 수 있다. 사용자의 디바이스(100)는 적어도 하나의 애플리케이션에 액세스하기 위한 요청을 서버(102)에 전송할 수 있다. 애플리케이션은 특정한 작업을 수행하기 위해 만들어진 응용 프로그램으로 예를 들어, 메시징 애플리케이션, 소셜 네트워킹 애플리케이션, 쇼핑 애플리케이션, 게임 애플리케이션, 채팅 애플리케이션, 멀티미디어 애플리케이션, 티켓 예약 애플리케이션, 비디오 애플리케이션, 음악 애플리케이션, 이메일 애플리케이션, 금융 관련 애플리케이션 등을 포함할 수 있다. 또한 애플리케이션은 실행되는 기기 환경에 따라 모바일 애플리케이션, 데스크탑 애플리케이션 등으로 분류될 수도 있다. 애플리케이션은 상이한 플랫폼 (예를 들어, Linux® 플랫폼, Windows® 플랫폼, Android® 플랫폼 등) 또는 상이한 OS에서 실행될 수 있다.
본 개시의 일 실시예에 따르면, 서버(102)는 디바이스(100)로부터 적어도 하나의 하이브리드 운영 체제 인터페이스(Hybrid Operating System Interface)(HOI)로의, 사용자에 의한, 액세스 요청을 수신할 수 있다. 액세스 요청을 수신한 후에, 서버(102)는 디바이스(100)를 인증할 수 있다. 예를 들어, 서버(102)는 디바이스(100)의 액세스 요청에 포함된 디바이스(100)의 인증 정보를 기초로 디바이스(100)를 인증할 수 있다. 디바이스(100)를 인증함에 따라, 서버(102)는 실행 가능한 적어도 하나의 애플리케이션을 식별할 수 있다.
본 개시의 일 실시예에 따르면, 서버(102)는 식별된 적어도 하나의 애플리케이션과 관련된 메타데이터를 검색할 수 있다. 본 개시의 일 실시예에 따른 메타데이터는 사용자가 액세스하고자 하는 애플리케이션과 관련된 정보의 집합일 수 있으며 예를 들어, 식별된 애플리케이션의 그래픽 표현, 아이콘, 애플리케이션의 명칭 및 애플리케이션의 식별 정보 등을 포함할 수 있다. 서버(102)는, 검색된 적어도 하나의 애플리케이션과 관련된 메타데이터를 디바이스(100)에 전송할 수 있다. 서버(102)는, 디바이스(100)로부터 액세스 요청된 애플리케이션을 메타데이터에 기초하여 결정할 수 있다. 다만, 이는 일 예일뿐, 액세스 요청에 애플리케이션 식별자가 포함된 경우, 서버(102)는 메타데이터에 대한 검색 없이 액세스 요청된 애플리케이션을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 서버(102)는, 정책에 기초하여, 적어도 하나의 식별된 애플리케이션의 액세스를 제어하고 애플리케이션과 관련된 데이터를 업데이트 할 수 있다. 본 개시의 일 실시예에 따르면, 본 개시의 정책은 IT 관리자가 상이한 플랫폼 (예를 들어, Linux® 플랫폼, Windows® 플랫폼, Android® 플랫폼, Knox® 플랫폼 등), 상이한 OS 및 상이한 플랫폼 또는 OS 상에서 동작하는 애플리케이션을 식별하고 관리하기 위한 것일 수 있다.
본 개시의 일 실시예에 따르면, 서버(102)는, 정책에 근거하여, 메타데이터에 기초하여 액세스 요청된 애플리케이션을 식별하고 식별된 애플리케이션의 액세스를 제어할 수 있다. 일반적으로, 정책을 업데이트하기 위해서는 플랫폼 별 업데이트가 필요 하였으나, 본 개시의 실시예들에 따르면 정책은 IT 관리자에 의해 실시간으로 업데이트될 수 있으며 액세스 대상이 되는 적어도 하나의 애플리케이션은, 정책에 기초하여, 자동으로 또는 수동으로 업데이트될 수 있다. 따라서, 본 개시의 실시예들에 따른 IT 관리자는 작업을 단순화 할 수 있고 보안 위험을 감소시킬 수 있다.
본 개시의 일 실시예에 따르면, 서버(102)는 실행 가능한 적어도 하나의 애플리케이션을 OS 종류 또는 디바이스(100) 타입 중 적어도 어느 하나에 기초하여 분류할 수 있고, 분류 정보를 메타데이터와 함께 디바이스(100)로 전송할 수 있다.
본 개시의 일 실시예에 따르면, 서버(102)는 다양한 이벤트에 기초하여 OS의 기본 동작을 제어할 수 있다 (서버 내의 다양한 엘리먼트의 상세한 동작은 도 3에서 상세히 설명된다).
디바이스(100)는 예를 들어, 셀룰러폰, 스마트폰, 개인 휴대 정보 단말기(PDA), 태블릿 컴퓨터, 랩탑 컴퓨터, 스마트 시계, 스마트 유리 (smart glass) 등일 수 있지만, 이에 한정되는 것은 아니다.
도 1b는 본 개시의 일 실시예에 따른 애플리케이션의 액세스를 처리하는 시스템의 개략도이다.
도 1b를 참조하면, 시스템(104b)은 적어도 하나의 디바이스(100a 내지 100n) 및 서버(102)를 포함할 수 있다. 적어도 하나의 디바이스(100a 내지 100n)는 적어도 하나의 애플리케이션에 대한 액세스 요청을 서버(102)에 전송할 수 있다. 또한 적어도 하나의 디바이스(100a 내지 100n) (이하에서, 디바이스의 라벨은 100으로 표기)로부터 적어도 하나의 애플리케이션에 대한 액세스 요청에 따라, 서버(102)는 도 1a에서 설명된 바와 같이 애플리케이션에 대한 액세스를 처리하기 위한 다양한 동작 및 기능을 수행할 수 있다. 또한 서버(102)는 적어도 하나의 디바이스(100a 내지 100n)의 인증 정보를 관리하고 HOI에 대한 액세스 요청이 수신되면 저장된 인증 정보를 기초로 액세스를 요청한 디바이스를 인증할 수 있다.
도 1a 및 도 1b는 시스템(104a 및 104b)의 다양한 하드웨어 컴포넌트를 도시하지만, 다른 실시예들 또한 이에 한정되는 것은 아니다. 본 개시의 일 실시예에 따르면, 시스템(104a 및 104b)은 더 적은 또는 더 많은 수의 컴포넌트를 포함할 수 있다. 또한, 각 컴포넌트의 라벨 또는 명칭은 단지 예시적인 것이며, 본 개시의 범위를 제한하지 않는다.
도 1a 및 도 1b의 화살표는 디바이스(100)와 서버(102) 간에 데이터가 전송됨을 나타내는 표시이며 모든 데이터 통신은 각 디바이스 내의 통신부를 통해 이루어질 수 있다.
도 2는 본 개시의 일 실시예에 따른 서버의 구조를 나타낸 블록도이다.
도 2를 참조하면, 서버(102)는 메모리(104), 통신부(106) 및 프로세서(206)를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 메모리(202)는 적어도 하나의 애플리케이션과 관련된 메타데이터, 실행 중인 애플리케이션으로부터 처리된 데이터 정보, 서버의 여러 엘리먼트를 제어하기 위한 명령 등을 저장할 수 있다. 본 개시의 실시예들에 따른, 서버의 여러 엘리먼트는 메인 제어부, 관리 제어부, HOI 제어부 등을 포함할 수 있다. 서버의 여러 엘리먼트에 관한 동작은 도 3 및 도 4를 참조하여 보다 구체적으로 후술하도록 한다.
또한, 통신부(204)는 다른 디바이스와 통신을 가능하게 하는 적어도 하나의 엘리먼트를 포함할 수 있으며, 예를 들어 근거리 통신 모듈, 유선 통신 모듈 및 무선 통신 모듈 중 적어도 하나를 포함할 수 있다. 서버(102)는 디바이스(100)와 통신부(204)를 통해 데이터를 전송할 수 있다.
본 개시의 일 실시예에 따르면, 프로세서(206)는 메모리(202)에 저장된 명령을 실행하고 다양한 프로세스를 수행할 수 있다. 또한 프로세서(206)는, 메모리(202)에 저장된, 여러 엘리먼트를 제어하기 위한 명령을 수행할 수 있다. 서버(102) 내의 여러 엘리먼트는 본 개시의 실시예들을 수행하기 위해 동작 가능하며 여러 엘리먼트가 수행하는 각각의 동작은 프로세서(206)에 의해 수행 가능할 수 있다. 또한, 메모리(202) 및 통신부(204)는 프로세서(206)와 연결되어 인터랙팅할 수 있다. 프로세서(206)의 동작은 도 3 내지 도 11을 참조하여 보다 구체적으로 후술하도록 한다.
도 3은 본 개시의 다른 실시예에 따른 서버의 구조를 나타낸 블록도이다.
도 3을 참조하면, 서버(102)는 메인 제어부(302), HOI 제어부(304), 관리 제어부(306), 이벤트 서버(308), HOI(312a-312n) (이하, 310), 프로세서(208), 통신부(204) 및 메모리(202)를 포함할 수 있다.
메인 제어부(302)는 디바이스(100)로부터 액세스 요청을 수신할 수 있다. 이 경우 메인 제어부(302)는 HOI 제어부(304)와 디바이스(100) 간의 인터페이스 역할을 할 수 있다. 예를 들어, 메인 제어부(302)는 디바이스(100)로부터 수신한 액세스 요청을 해석한 다음 HOI 제어부(304) 및 이벤트 서버(308)에 수신한 액세스 요청을 전송할 수 있다.
HOI 제어부(304)는 디바이스(100)로부터 적어도 하나의 HOI(예를 들어, 312a 내지 312n) 및 애플리케이션 (즉, 모바일 애플리케이션 또는 데스크탑 애플리케이션)에 액세스하기 위한 사용자의 액세스 요청을 수신하고 액세스 요청 및 디바이스(100)를 인증할 수 있다. 이후 HOI 제어부(304)는 액세스 요청 및 디바이스(100)를 인증함에 따라, 실행 가능한 적어도 하나의 애플리케이션을 식별할 수 있다. 인증 처리는 도 8을 참조하여 보다 구체적으로 후술하도록 한다. 또한, HOI 제어부(304)는 식별된 적어도 하나의 애플리케이션과 관련된 메타데이터를 검색할 수 있으며 검색된 메타데이터를 디바이스(100)에 전송할 수 있다. 이후 HOI 제어부(304)는, 메타데이터에 기초하여, 디바이스(100)로부터 액세스 요청된 애플리케이션을 결정할 수 있다.
본 개시의 일 실시예에 따르면, 정책은 IT 관리자에 의해 실시간으로 업데이트될 수 있으며 HOI 제어부(304)는 정책에 기초하여, 적어도 하나의 식별된 애플리케이션에 대한 액세스를 제어하고 애플리케이션과 관련된 데이터를 업데이트 할 수 있다.
본 개시의 일 실시예에 따르면, HOI 제어부(304)는 적어도 하나의 애플리케이션을 관리하는 HOI(예를 들어, 312a)를 관리할 수 있다. 또한, HOI 제어부(304)는 디바이스(100)와 관련된 세션 및 디바이스(100)와 서버(102) 사이의 인증 토큰을 식별하기 위한 세션 데이터베이스(DB) (도시되지 않음)를 유지할 수 있다.
본 개시의 일 실시예에 따르면, HOI 제어부(304)는, 서버(102)의 OS의 인스턴스 상에 액세스 요청된 애플리케이션의 인스턴스가 활성화 상태인지 여부에 따라, 통신부(204)를 통해 애플리케이션의 인스턴스에 대응하는 사용자 인터페이스(UI)를 디바이스(100)에 전송하거나 애플리케이션에 대응하는 OS 인스턴스를 호출할 수 있다 (UI를 전송하거나 OS 인스턴스를 호출하는 동작은 도 8에서 상세히 설명된다).
본 개시의 일 실시예에 따르면, HOI 제어부(304)는, 실행 중인 애플리케이션에서 발생된 데이터가 저장된 메모리(202) 내의 메모리 경로 정보에 기초하여, 적어도 하나의 애플리케이션에 걸쳐 데이터를 공유할 수 있다. 본 개시의 일 실시예에 따르면, 적어도 하나의 애플리케이션 중 제 1 애플리케이션으로부터 파일 공유 요청을 수신하고 메모리(202)로부터 메모리 경로 정보 메시지를 수신하여 적어도 하나의 애플리케이션 중 제 2 애플리케이션에 메모리 경로 정보를 공유함으로써, 서로 다른 애플리케이션 간에 데이터가 공유될 수 있다 (서로 다른 애플리케이션 간에 데이터를 공유하는 동작은 도 10 및 도 11에서 상세히 설명된다).
본 개시의 일 실시예에 따르면, HOI 제어부(304)는 다양한 이벤트에 기초하여 OS의 기본 동작을 제어할 수 있다. 기본 동작은 비즈니스 로직, 시작 작업, 중지 작업 및 재시작 작업 등을 포함할 수 있다. 이벤트는 사용자 요청 또는 애플리케이션 내에 기 설정된 정책에 따라 발생할 수 있다. 예를 들어, 이벤트는 create/start/stop/resume_machine 이벤트, modify_machine_config 이벤트, set/get_user_personalisations 이벤트, install/get_applications 이벤트, set/get_shared_data_disk_location 이벤트, start_application 이벤트, read_display_buffer 이벤트, inject_remote_events 이벤트 등일 수 있으며 이에 제한되는 것은 아니다.
본 개시의 일 실시예에 따르면, create/start/stop/resume_machine 이벤트에서, OS 및 하드웨어(가상) 레벨이 호출되어 서버(102)를 시작, 중지 또는 재시작 할 수 있다. modify_machine_config 이벤트에서, 할당된 RAM, 데이터 디스크 크기, CPU 및 VBox와 같은 다른 파라미터 가상화 도구가 편집될 수 있다. set/get_user_personalisations 이벤트에서는, 모든 애플리케이션의 테마/색 구성표와 같은 사용자 기본 설정이 설정될 수 있다. instal/get_applications 이벤트에서는, 지원되는 애플리케이션 패키지의 URI 주소가 획득되어 임의의 애플리케이션이 설치되거나 특정 OS에 설치된 모든 애플리케이션의 메타데이터 목록이 리턴될 수 있다. 이 경우, 메타데이터 목록은 아이콘 및 애플리케이션의 명칭 등을 포함할 수 있다. set/get_shared_data_disk_location 이벤트에서는, 공유 데이터 디스크 위치가 설정 (또는 획득)될 수 있으며 공유 데이터 디스크 위치는 데이터 공유하기 위해 필요할 수 있다.
본 개시의 일 실시예에 따르면, start_application 이벤트에서는, 애플리케이션의 명칭을 통해 시작(start) 대상이 되는 애플리케이션을 식별하고 식별된 애플리케이션을 플랫폼에 따라 시작할 수 있다. read_display_buffer 이벤트에서는, OS의 UI 디스플레이를 위한 정보가 사용자 디바이스(100)로 전송될 수 있으며 inject_remote_events에서는 UI 이벤트 (예를 들어, 터치 이벤트, 스크롤 이벤트, 키 이벤트 등)가 OS에 주입되어 실행될 수 있다.
본 개시의 일 실시예에 따르면, 메인 제어부(302)는 디바이스(100)의 애플리케이션과 관련된 메타데이터를 HOI 제어부(304)에 요청할 수 있다. 이 경우, HOI 제어부(304)는 사용자가 가입한 모든 HOI 인스턴스 상에 get_installed_application을 호출한다. 각 OS 상에서, HOI는 설치된 애플리케이션의 메타데이터를 판독하여 HOI 제어부(304)에 리턴할 수 있다. 이후에 HOI 제어부(304)는 애플리케이션의 메타데이터를 통합하여 메인 제어부(302)로 리턴하며, 메인 제어부(302)는 애플리케이션에 대한 결과를 통신부(204)를 통해 디바이스(100)로 전송할 수 있다. 또한, 이벤트 주입 API를 제외하고, HOI 제어부(304)는 모든 HOI(310) API의 실행을 담당할 수 있다.
본 개시의 일 실시예에 따르면, 이벤트 서버(308)는 UI 이벤트를 OS 인스턴스에 주입하는 역할을 하며, OS 인스턴스 주입에 따라 변경된 UI 정보를 스트리밍 서버(310)로 전송할 수 있다.
또한, 이벤트 서버(308)는 UI 이벤트의 언어를 특정 플랫폼과 대응되도록 번역할 수 있다. 예를 들어, 이벤트 서버(308)는 UI 이벤트가 Android® 플랫폼의 언어 형태인 경우, 호스팅된 플랫폼의 언어로 번역할 수 있다. 마찬가지로, UI 이벤트가 Windows® 플랫폼의 언어인 경우, 이벤트 서버(308)는 Android® 플랫폼의 언어로 번역할 수 있다.
본 개시의 일 실시예에 따르면, 관리 제어부(306)는 임의의 정책을 OS의 적절한 컴포넌트들에 주입할 수 있다. 이 경우, 정책이 적절한 컨포넌트들에 주임됩으로써, 관리자는 서버(102) 상의 OS 및 애플리케이션을 제어할 수 있으며 이로써 보안이 향상될 수 있다.
도 3은 서버(102)의 다양한 엘리먼트를 도시하지만, 이에 한정되는 것은 아니라는 것을 이해해야 한다. 본 개시의 일 실시예에 따르면, 서버(102)는 더 적은 또는 더 많은 수의 컴포넌트를 포함할 수 있다. 또한, 컴포넌트의 라벨 또는 명칭은 단지 예시적인 것이며, 본 개시의 범위를 제한하지 않는다. 도 3의 적어도 하나의 엘리먼트는 서버(102)에서 애플리케이션의 액세스를 처리하기 위해 동일하거나 실질적으로 유사한 기능을 수행하기 위해 함께 조합될 수 있다.
도 4는 본 개시의 일 실시예에 따른 HOI 제어부의 구조를 나타낸 블록도이다.
도 4를 참조하면, HOI 제어부(304)는 요청 파서(402), 매니저(404) 및 세션 DB(406)를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 세션 DB(406)는 디바이스(100) 및 디바이스(100)에 맵핑/할당된 HOI(예를 들어, 312a)의 세션 관한 정보 및 디바이스(100)의 인증 정보 또는 인증 토큰을 저장할 수 있다. HOI 제어부(304)는 세션 DB(406)를 관리하고 HOI에 대한 액세스 요청이 수신되면 세션 DB(406)에 저장된 인증 정보를 기초로 액세스 요청한 디바이스를 인증할 수 있다. 또한, 디바이스가 인증됨에 따라 세션이 생성될 수 있다. 이 경우, HOI 제어부(304)는 디바이스로부터 사용자에 의한 이벤트가 발생하면 세션 DB(406)에 저장된 인증 토큰에 기초하여 디바이스를 인증할 수 있다.
본 개시의 일 실시예에 따르면, 요청 파서(402)는 메인 제어부(302)의 요청을 분석하여 파싱하고 HOI 제어부(304)로 리턴할 수 있다. 또한 매니저(404)는 실제로 HOI 제어부(304)에 의해 요청된 API를 호출하는 역할을 할 수 있다.
도 4는 HOI 제어부(304)의 다양한 엘리먼트를 도시하지만, 다른 실시예가 이에 한정되는 것은 아니라는 것을 이해해야한다. 다른 실시예에서, 서버(102)는 더 적은 또는 더 많은 수의 엘리먼트를 포함할 수 있다. 또한, 각 엘리먼트의 라벨 또는 명칭은 단지 예시적인 것이며, 본 발명의 범위를 제한하지 않는다. HOI 제어부(304)에서 애플리케이션들의 액세스를 제어하기 위해 적어도 하나의 엘리먼트가 함께 결합되어 동일하거나 실질적으로 유사한 기능을 수행할 수 있다.
도 5는 본 개시의 일 실시예에 따른 애플리케이션의 액세스를 처리하기 위한 방법을 나타내는 도면이다.
도 5를 참조하면, 시스템(500)은 디바이스(100), 서버(102), 사내 데이터센터(518), 녹스(Knox®) 서버(520), 녹스 인증 서버(522) 및 클라우드(524)를 포함할 수 있다.
디바이스(100)는, 인터넷을 통해, 녹스 서버(300)에 HOI(예를 들어, 312a)에 대한 액세스 요청(502)을 전송할 수 있다. 이후 액세스 요청에 기초하여, 녹스 서버(520) 및 녹스 인증 서버(522)에서 디바이스(100)의 인증(504)이 수행될 수 있다. 또한 인증(504)이 완료되면, 녹스 인증 서버(522)와 사내 데이터센터(518) 사이에 VPN(Virtual Private Network) 연결(506)이 설정될 수 있다. 이 경우, 녹스 서버(520) 및 녹스 인증 서버(522)는 디바이스(100)와 서버(102)의 백엔드 인프라 스트럭처 사이의 통신을 용이하게 하는 역할을 할 수 있다. 녹스 서버(520) 및 녹스 인증 서버(522)는 웹 서버로도 지칭될 수 있다. 웹 서버는, 사용자 계정을 생성하고, 판독하고, 업데이트하며 삭제 작업을 관리하는 미들웨어(미도시)를 포함할 수 있다. 또한, 녹스 서버(520) 및 녹스 인증 서버(522)는 HOI(예를 들어, 312a) 및 애플리케이션에 대한 사용자의 액세스와 관련하여 비즈니스 로직을 구현할 수 있다.
녹스 서버(520) 및 녹스 인증 서버(400)는 디바이스(100) 인증 메커니즘 및 데이터 액세스 메커니즘과 관련된 정보를 저장할 수 있고 서버(102)는 다양한 플랫폼의 가상 OS를 제공할 수 있다.
VPN 연결(506)이 설정된 후, 녹스 인증 서버(522)는 가상 머신 인스턴스(Virtual Machine Instance)(VM 인스턴스)(508)를 생성하고 시작할 수 있다. VM 인스턴스(508) 정보가 생성되면 녹스 인증 서버(522)는 녹스 서버(520)로 녹스 인증 서버(522)가 생성한 VM 인스턴스 정보(510)를 전송할 수 있다.
서버(102)는 클라우드(524) 상에서 애플리케이션에 대한 비디오 스트림(512)을 녹스 서버(520)에 전송할 수 있다. 이후, 비디오 출력(514)이 녹스 서버(520)로부터 디바이스(100)로 전송될 수 있다. 본 개시의 일 실시예에 따르면, 디바이스(100)로부터의 입력(516)이 서버(102)로 전송될 수 있다.
도 6은 본 개시의 다른 실시예에 따른 애플리케이션의 액세스를 처리하기 위한 방법을 나타내는 흐름도이다.
단계 S602에서, 서버(102)는 사용자의 HOI(예를 들어, 312a)로의 액세스 요청을 디바이스(100)로부터 수신할 수 있다. 이 경우, HOI(예를 들어, 312a)로의 액세스 요청은 사용자가 액세스 하고자 하는 애플리케이션의 식별 정보를 포함하거나 포함하지 않을 수 있다.
단계 S604에서, 서버(102)는 HOI(예를 들어, 312a)로의 액세스 요청이 수신되면 디바이스(100)를 인증할 수 있다. 본 개시의 일 실시예에 따르면, 디바이스(100)를 인증하기 위한 인증 정보는 미리 결정되어 세션 DB(406)에 데이터베이스 형태로 저장되어 있을 수 있다. 서버(102)는 세션 DB(406)에 저장된 인증 정보와 디바이스(100) 정보를 비교하여 일치하면 애플리케이션을 실행할 준비를 할 수 있다. 이 경우, 서버(102)는 서버(102) 상에서 실행 가능한 적어도 하나의 애플리케이션을 식별하고 식별된 실행 가능한 적어도 하나의 애플리케이션과 관련된 메타데이터를 검색할 수 있다. 반대로, 서버(102)는 세션 DB(406)에 저장된 인증 정보와 디바이스(100) 정보가 일치하지 않으면 디바이스(100)를 인증하기 위한 절차를 요구할 수 있다. 디바이스(100)를 인증하기 위한 절차는 기기간 인증을 위한 기존의 다양한 기술들이 이용될 수 있음에 따라, 이에 대한 설명은 생략하도록 한다.
단계 S606에서, 서버(102)는 디바이스(100)가 인증됨에 따라 실행 가능한 적어도 하나의 애플리케이션 중 액세스 요청된 애플리케이션을 결정할 수 있다. 이 경우, 서버(102)는 서버(102)는 서버(102) 상에서 실행 가능한 적어도 하나의 애플리케이션을 식별하고 식별된 실행 가능한 적어도 하나의 애플리케이션과 관련된 메타데이터를 검색할 수 있다.
본 개시의 일 실시예에 따르면, HOI(예를 들어, 312a)로의 액세스 요청에 액세스 하고자 하는 애플리케이션의 식별 정보가 포함된 경우, 서버(102)는 식별 정보를 기초로, 실행 가능한 애플리케이션 중에서 액세스 요청된 애플리케이션을 결정할 수 있다. 반대로, 본 개시의 일 실시예에 따르면, HOI(예를 들어, 312a)로의 액세스 요청에 액세스 하고자 하는 애플리케이션의 식별 정보가 포함되지 않은 경우, 서버(102)는 식별된 실행 가능한 적어도 하나의 애플리케이션과 관련된 메타데이터를 디바이스(100)로 전송할 수 있다. 이후에 사용자가 디바이스(100)를 통해 특정 애플리케이션에 대한 액세스 요청을 서버(102)에 전송하고 서버(102)는 액세스 요청된 애플리케이션을 결정할 수 있다.
단계 S608에서, 서버(102)는 결정된 애플리케이션을 실행하고 실행에 따른 데이터를 디바이스(100)에 전송할 수 있다.
본 개시의 일 실시예에 따르면, 서버(102)는 HOI(예를 들어, 312a)로의 액세스 요청이 있기 전, 실행 가능한 애플리케이션을 OS 종류 또는 디바이스 타입 중 적어도 어느 하나에 기초하여 분류할 수 있다. 예를 들어, 서버(102)는 모바일 디바이스(미도시)의 애플리케이션과 데스크탑(미도시)의 애플리케이션을 분류할 수 있다. 이후에 서버(102)는 분류 정보를 디바이스(100)에 전송할 수 있다. 실행 가능한 애플리케이션을 분류하는 동작은 HOI(예를 들어, 312a)로의 액세스 요청이 수신된 이후에도 실시간으로 수행되어 분류 정보가 디바이스(100)로 전송될 수 있다.
도 7은 본 개시의 또 다른 실시예에 따른 애플리케이션의 액세스를 처리하기 위한 다른 방법을 나타내는 흐름도이다.
단계 S702에서, 서버(102)는 사용자의 HOI(예를 들어, 312a)로의 액세스 요청을 디바이스로부터 수신할 수 있다. 이 경우, 액세스 요청에는 액세스 하고자 하는 애플리케이션의 식별 정보가 포함되지 않을 수 있다.
단계 S704에서, 서버(102)는 디바이스를 인증하고 디바이스를 인증함에 따라 실행 가능한 적어도 하나의 애플리케이션을 식별할 수 있다.
다음으로 단계 S706에서, 서버(102)는 식별된 실행 가능한 적어도 하나의 애플리케이션과 관련된 메타데이터를 검색할 수 있다. 본 개시의 일 실시예에 따른 메타데이터는 사용자가 액세스하고자 하는 애플리케이션과 관련된 정보의 집합일 수 있으며 예를 들어, 식별된 애플리케이션의 그래픽 표현, 아이콘, 애플리케이션의 명칭 및 애플리케이션의 식별 정보, 애플리케이션의 리스트 등을 포함할 수 있다.
단계 S708에서, 서버(102)는 디바이스로 식별된 적어도 하나의 애플리케이션과 관련된 메타데이터를 제공할 수 있다. 이 경우 서버(102)는 애플리케이션을 OS 종류 또는 디바이스 타입 중 적어도 어느 하나에 기초하여 분류하고 분류 정보를 디바이스에 전송할 수 있다. 본 개시의 일 실시예에 따르면, 디바이스는 서버(102)에 의해 제공된 메타데이터를, 분류 정보에 기초하여, 디스플레이의 아이콘과 같은 사용자가 인식 가능한 형태로 사용자에게 제시할 수 있다. 이후에, 사용자는 디바이스(100)를 통해 특정 애플리케이션에 대한 액세스 요청을 서버(102)로 전송하고 서버(102)는 액세스 요청된 애플리케이션을 결정하고 실행할 수 있다.
도 8은 본 개시의 일 실시예에 따른 애플리케이션을 스트리밍하는 방법을 나타내는 흐름도이다.
단계 S802에서, 서버(102)는 디바이스부터 로그인 요청을 수신할 수 있다. 로그인 요청이 수신됨에 따라 서버(102)는 디바이스(100)에 로그인을 위한 인증 수단을 요구할 수 있다. 본 개시의 일 실시예에 따르면, 서버(102)에 대한 로그인은 디바이스의 인증과 대응될 수 있다. 인증 수단은 비밀 번호, 패턴, 음성, 지문, 홍채 또는 안면 인식 등일 수 있으며, 이에 제한되는 것은 아니다. 이후, 사용자는 서버(102)의 인증 수단 요구에 따라, 미리 결정된 인증 수단에 대응하는 인증 정보를 디바이스에 입력하고 서버(102)는 사용자가 입력한 인증 정보를 수신할 수 있다.
단계 S804에서, 서버(102)는 사용자로부터 인증 정보가 입력되면 디바이스의 인증 여부를 결정할 수 있다. 서버(102)는 사용자로부터 인증 정보가 입력되면, 미리 결정된 디바이스를 인증하기 위한 인증 정보와 입력된 인증 정보를 비교한 이후 양자가 일치하면 디바이스와 연결을 위한 세션을 생성할 수 있다. 입력된 인증 정보와 미리 결정된 인증 정보가 일치하지 않는 경우, 서버(102)는 디바이스에 로그인을 위한 인증 수단을 다시 요구할 수 있다.
단계 S806에서, 서버(102)는 디바이스가 인증되면 디바이스와 연결을 위한 세션을 생성하고 세션 토큰을 생성할 수 있다. 이후에, 디바이스는 생성된 세션 토큰을 사용하여 애플리케이션에 대한 액세스를 요청하거나 실행 중인 애플리케이션을 종료하라는 요청 등과 같은, 별개의 요청을 추가적인 인증 절차를 거치지 않고서 서버(102)에 전송할 수 있다.
다음으로 단계 S808에서, 서버(102)는 애플리케이션에 대한 액세스 요청을 수신할 수 있다. 이 경우, 액세스 요청은 애플리케이션의 식별 정보가 포함된 액세스 요청일 수 있다. 반대로, 액세스 요청은 서버(102)에 의해 메타데이터가 제공되고 이후 사용자가 액세스 요청한 애플리케이션에 대응하는 액세스 요청일 수 있다.
단계 S810에서, 서버(102)는 액세스 요청된 애플리케이션의 인스턴스가 서버(102)의 OS 인스턴스 상에서 활성화 상태인지 여부를 결정할 수 있다.
단계 S812에서, 서버(102)는 액세스 요청된 애플리케이션의 인스턴스가 활성화 상태인 경우, 액세스 요청된 애플리케이션을 스트리밍하고 액세스 요청된 애플리케이션의 인스턴스에 대응하는 사용자 인터페이스(UI)를 디바이스에 전송할 수 있다. 이후에, 디바이스는 전송된 UI를 디바이스의 디스플레이를 통해 표시할 수 있다.
반대로, 단계 S814에서, 서버(102)는 액세스 요청된 애플리케이션의 인스턴스가 비활성 상태인 경우, 액세스 요청된 애플리케이션에 대응하는 HOI를 활성화 시켜 액세스 요청된 애플리케이션에 대응하는 OS를 호출할 수 있다. 단계 S816에서, 서버(102)는 OS가 호출되면 액세스 요청된 애플리케이션을 론칭하여 스트리밍하고 사용자 인터페이스(UI)를 디바이스에 전송할 수 있다. 이후에, 디바이스는 전송된 UI를 디바이스의 디스플레이를 통해 표시할 수 있다.
도 8의 흐름도의 다양한 동작, 액션, 블록, 단계 등은 제시된 순서, 다른 순서로 또는 동시에 수행될 수 있다. 또한, 본 개시의 실시예에서, 본 개시의 범위를 벗어나지 않으면서, 동작, 액션, 블록, 단계 등의 일부는 생략되거나, 추가되거나, 수정될 수 있다.
도 9는 본 개시의 일 실시예에 따른 애플리케이션을 스트리밍하기 위한 다양한 동작을 나타내는 흐름도이다.
단계 S902에서, 디바이스(100)로부터 서버(102)의 메인 제어부(302)로 로그인 요청이 전송될 수 있다. 로그인 요청에 대응되는 사용자, 디바이스(100) 및 서버(102)의 동작은 단계(S802)와 대응될 수 있다.
단계 S904에서, 서버(102)의 메인 제어부(302)는 HOI 제어부(304)로 하여금 사용자가 입력한 인증 정보 및 미리 결정된 인증 정보에 기초하여 디바이스(100)의 인증을 결정하도록 요청할 수 있다. 이 경우, 디바이스(100)의 인증 여부를 결정하는 것은 단계(S804)와 대응될 수 있다. 단계 S906에서, HOI 제어부(304)는 디바이스(100)가 인증되면 디바이스(100) 인증이 완료되었음을 알릴 수 있다.
단계 S908에서, 인증이 완료되면 디바이스(100)와 연결을 위한 세션이 생성되고 메인 제어부(302)는 세션 토근 및 실행 가능한 적어도 하나의 애플리케이션과 관련된 메타데이터를 디바이스(100)에 전송할 수 있다.
단계 S910에서, 사용자는 전송된 메타데이터를 기초로, 특정 애플리케이션에 대한 액세스 요청을 디바이스(100)를 통해 전송할 수 있다.
단계S912에서, 액세스 요청 관련 정보가 메인 제어부(302)로 전송될 수 있다.
단계 S914에서, 메인 제어부(302)는 세션 토큰을 확인하여 디바이스(100)와 세션이 연결되어 있음을 확인하고 액세스 요청된 애플리케이션에 대응하는 OS 인스턴스 요청을 HOI 제어부(304)로 전송할 수 있다.
단계 S916에서, HOI 제어부(304)는 액세스 요청된 애플리케이션 인스턴스가 활성화 상태인지 여부를 결정하여, HOI(예를들어, 312a)로 애플리케이션 인스턴스가 활성화 상태인 경우, HOI 제어부(304)로 액세스 요청된 애플리케이션에 대응 OS 인스턴스를 리턴하고 애플리케이션 인스턴스가 비활성 상태인 경우, 액세스 요청된 애플리케이션에 대응 OS 인스턴스를 호출하여 리턴하라는 요청을 전송할 수 있다.
다음으로 단계 S918에서, HOI(예를 들어, 312a)는 HOI 제어부(304)의 요청에 따라 OS 인스턴스를 HOI 제어부(304)로 리턴할 수 있다. 이 경우, 단계(S916 및 S918)는 단계(S810 및 S814)와 대응될 수 있다. 단계 S920에서, OS 인스턴스가 리턴되면 HOI 제어부(304)는 액세스 요청된 애플리케이션을 실행하라는 요청을 HOI(예를 들어, 312a)에 전송할 수 있다.
단계 S922에서, 액세스 요청된 애플리케이션이 HOI(예를 들어, 312a) 상에서 실행되면 HOI(예를 들어, 312a)는 UI 정보 변경에 따른, 변경된 디스플레이 정보를 스트리밍 서버(310)로 전송할 수 있다.
다음으로 단계 S924에서, 스트리밍 서버(310)는 변경된 디스플레이 정보를 디바이스(100)에 전송하고 디바이스(100)는 전송된 디스플레이 정보에 기초하여 디바이스(100)의 디스플레이에 UI 정보를 표시할 수 있다.
단계 S926에서, 디바이스(100)는 UI 이벤트 (예를 들어, 터치 이벤트, 스크롤 이벤트, 키 이벤트 등)가 발생하는 경우 메인 제어부(302)로 발생된 UI 이벤트를 전송할 수 있다.
다음으로 단계 S928에서, 메인 제어부(302)는 세션을 인증하고, 인증에 기초하여 발생된 UI 이벤트를 이벤트 서버(308)로 전송할 수 있다.
단계 S930에서, 이벤트 서버(308)는 이벤트를 HOI(예를 들어, 312a)에 주입하고 단계 S932에서, HOI(예를 들어, 312a)는 발생된 UI 이벤트에 의한 UI 정보 변겨에 따른, 변경된 디스플레이 정보를 스트리밍 서버(910)로 전송할 수 있다.
다음으로 단계 S934에서, 스트리밍 서버(310)는 변경된 디스플레이 정보를 디바이스(100)에 전송하고 디바이스(100)는 전송된 디스플레이 정보에 기초하여 디바이스(100)의 디스플레이에 UI 정보를 표시할 수 있다.
단계 S936에서는, 디바이스(100)는 사용자가 실행 중인 애플리케이션을 종료하면 메인 제어부(302)로 실행 중인 OS를 중지하고 애플리케이션을 종료하라는 요청을 전송할 수 있다. 다음으로 단계 S938에서, 메인 제어부(302)는 애플리케이션 종료 요청이 전송되면 세션을 종료하고 실행 중인 OS 중지 및 애플리케이션 종료 명령을 전송할 수 있다.
단계 S940에서, HOI 제어부(304)는 HOI(예를 들어, 312a)에 실행 중인 OS 중지 및 애플리케이션 종료 명령을 전송할 수 있다.
다음으로 단계 S942에서, HOI(예를 들어, 312a)는 OS 중지 및 애플리케이션 종료가 완료되었다는 메시지를 HOI 제어부(304)로 전송할 수 있다.
도 9의 흐름도의 다양한 동작, 액션, 블록, 단계 등은 제시된 순서, 다른 순서로 또는 동시에 수행될 수 있다. 또한, 본 개시의 실시예에서, 본 개시의 범위를 벗어나지 않으면서, 동작, 액션, 블록, 단계 등의 일부는 생략되거나, 추가되거나, 수정될 수 있다.
도 10은 상이한 플랫폼의 애플리케이션 간에 데이터를 공유하는 방법을 설명하기 위한 예시도이다.
서로 다른 플랫폼 (또는 디바이스, OS)에서 실행되는 애플리케이션 간에 데이터를 공유하려면 각 플랫폼에서 인증을 수행하고, 인증이 완료된 후에 한 플랫폼에서의 파일을 다른 플랫폼으로 전송함에 따라 사용자는 한 플랫폼에서 다른 플랫폼으로 파일을 전송할 수 있다. 이 경우, 데이터를 서로 공유하는 플랫폼 모두에서 인증이 수행되어야 하고 사용자 경험이 감소될 수 있다.
일부 경우들에서, 로컬 시스템 상에 존재하는 데이터는 VDI를 통해 액세스될 수 있지만, 사용자 디바이스 상에 데이터를 직접 다운로드하지 않으면 VMI 기반 애플리케이션에서 공유되지 않을 수 있다.
도 10의 제 1 디바이스(1002) 및 제 2 디바이스(1004)는 서로 다른 플랫폼에 기초하여 동작하고 있으며 (예를 들어 제 1 디바이스는 VDI 기반의 Windows® 플랫폼, 제 2 디바이스는 VMI 기반의 Android® 플랫폼으로 동작) 사용자는, 서버(102)를 통해, 제 1 디바이스(1002) 상에서 실행 중인 애플리케이션에서 발생한 데이터를 제 2 디바이스(1004) 상에서 실행 중인 애플리케이션에 공유할 수 있다. 사용자가 제 2 디바이스(1004) 상의 애플리케이션에 제 1 디바이스(1002) 상의 애플리케이션에서 발생한 데이터를 공유하길 원하는 경우, 데이터가 공유되기 위해서는 다음의 과정이 필요할 수 있다.
도 10을 참조하면, 서버(102)는 제 1 디바이스(1002)에 제 1 디바이스(1002) 상에서 실행 가능한 제 1 애플리케이션을 실행하고 제 1 애플리케이션과 관련된 리포트를 생성하라는 요청(1006)을 전송할 수 있다. 이 경우, 리포트는 실행되는 애플리케이션에 대한 이전에 실행되었던 기록 및 실행중 발생되었던 데이터를 포함할 수 있다. 이후에 제 1 디바이스(1002)로부터 생성된 리포트(1008)가 서버(102)로 전송될 수 있다. 서버(102)는 제 2 디바이스(1004)로 제 1 디바이스(1002)로부터 수신된 리포트(1010)를 전송하고, 제 2 디바이스(1004)는 전송된 리포트를 기초로 데이터(1012)를 공유할 수 있다.
도 11은 본 개시의 일 실시예에 따른 상이한 플랫폼의 애플리케이션 간에 데이터를 공유하는 방법을 설명하기 위한 예시도이다.
본 개시의 일 실시예에 따르면, 도 11의 제 1 애플리케이션 및 제 2 애플리케이션은 서버(102)의 서로 다른 HOI(예를 들어, 312a)에서 실행될 수 있다. 제 1 애플리케이션 및 제 2 애플리케이션은, 서로 다른 플랫폼에 기초하는, 제 1 HOI(1102) 및 제 2 HOI(1104)에서 실행될 수 있다 (예를 들어 제 1 HOI(1102)는 Windows® 플랫폼, 제 2 HOI(1104)는 Android® 플랫폼으로 동작) 할 수 있다.
본 개시의 일 실시예에 따르면, 사용자의 요청으로 도 11의 제 1 애플리케이션에서 발생된 데이터가 도 11의 제 2 애플리케이션으로 공유될 수 있다. 예를 들어, Windows® 플랫폼의 애플리케이션에서 생성된 데이터는 android® 플랫폼의 전자 메일 애플리케이션에 공유될 수 있다. 본 개시의 실시예에 따라, 서로 다른 플랫폼에서 실행되는 애플리케이션 간에 데이터를 공유할 때 디바이스(100)의 씬 클라이언트에 임의의 데이터 복사본을 생성하지 않고서 데이터 공유가 가능할 수 있다. 이로써, 네트워크 상의 데이터 사용량 및 보안 위험이 감소할 수 있다.
본 개시의 일 실시예에 따르면, 사용자는 제 1 애플리케이션 및 제 2 애플리케이션 간에 제 1 애플리케이션에서 발생된 데이터를 공유하기 위해 서버(102)에 데이터 공유 요청을 전송할 수 있다. 이 경우 서로 다른 플랫폼에서 실행되는 애플리케이션 간에 데이터를 공유하기 위해서는 다음의 과정이 필요할 수 있다.
도 11을 참조하면, 서버(102)는 사용자로부터 데이터 공유 요청을 수신하면 서버(102) 상에서 제 1 애플리케이션을 실행 중인 제 1 HOI(1102)에 데이터 공유하고 제 1 애플리케이션과 관련된 리포트를 생성하라는 요청(1106)을 전송할 수 있다. 이 경우, 리포트는 제 1 애플리케이션에 대한 이전에 실행되었던 기록 및 실행중 발생되었던 데이터를 포함할 수 있다. 이후에 제 1 HOI(1102)는 메모리(202)로 리포트(1108)를 업로드하고 메모리(202)는 리포트가 저장된 메모리 내의 메모리 경로 정보(1109)를 리턴할 수 있다. 메모리 경로 정보가 리턴되면 제 1 HOI(1102)는 메모리(202)로부터 리턴된 메모리 경로 정보(1110)를 서버(102)로 전송할 수 있다. 이후에 서버(102)는 메모리 경로 정보를 전송하기 위해 제 2 애플리케이션이 어느 HOI(예를 들어, 312a)에서 실행 중인지를 검색하여 제 2 HOI(1104)에서 제 2 애플리케이션이 실행중임을 결정(1112)할 수 있다. 제 2 HOI(1104)에서 제 2 애플리케이션이 실행중임을 결정하면 서버(102)는 제 1 HOI로부터 전송된 메모리 경로 정보(1114)를 제 2 HOI(1104)로 전송할 수 있다. 이후에 제 2 HOI(1104)는 메모리 경로 정보를 기초로 메모리(202)에서 제 1 HOI(1102)로부터 업로드 된 리포트(1116)를 다운로드 할 수 있다.
도 12는 본 개시의 일 실시예에 따른 가상 컨테이너를 나타내는 예시도이다.
본 개시의 일 실시예에 따르면, 가상 컨테이너(1202)는 서버(102) 상에서 실행 가능한 적어도 하나의 애플리케이션을 모두 표시할 수 있는, 디바이스(100) 상에서 동작하는, 애플리케이션일 수 있다. 도 12를 참조하면 가상 컨테이너(1202)는 디바이스(100)의 디스플레이에 표시될 수 있고 모바일 애플리케이션(1204) 및 데스크탑 애플리케이션(1206)을 단일 보기에서 모두 보여줄 수 있기 때문에 디바이스(100) 사용자는 간단하게 애플리케이션과 인터랙팅할 수 있다. 이 경우, 보여지는 애플리케이션은 서버(102)에 의해 OS 종류 또는 디바이스 타입 중 적어도 어느 하나에 기초하여 분류된 분류 정보에 기초한 것일 수 있다. 가상 컨테이너(1202)에 표시되는 애플리케이션은, 서버(102) 상에서 실행 가능한 애플리케이션과 관련된 메타데이터가 업데이트 됨으로써, 실시간으로 변경될 수 있다. 사용자는 가상 컨테이너(1202) 상에서 이벤트 발생(예를 들어, 아이콘을 클릭) 시킴으로써 특정 애플리케이션에 대한 액세스 요청을 서버(102)로 전송할 수 있다.
도 13a는 본 개시의 일 실시예에 따른 디바이스의 디스플레이 상에서 애플리케이션이 표시되는 것을 나타내는 예시도이다.
도 13a를 참조하면, 가상 컨테이너(1202)는 모바일 애플리케이션(1204) 및 데스크탑 애플리케이션(1206)을 포함할 수 있다. 또한, 디바이스(100)의 디스플레이는 사용자가 서버(102)에 로그인을 하는 경우 로그인 UI(1302)를 표시할 수 있다. 본 개시의 일 실시예에 따르면, 로그인 UI(1302)는 비밀번호를 입력하는 형태일 수 있으나, 이에 제한되는 것은 아니다.
도 13b는 본 개시의 다른 실시예에 따른 디바이스의 디스플레이 상에서 애플리케이션이 표시되는 것을 나타내는 예시도이다.
도 13b를 참조하면, 사용자는 모바일 애플리케이션(1204) 중에서 액세스 애플리케이션(1304)을 선택할 수 있다. 사용자의 선택에 따라, 디바이스(100)의 디스플레이는 서버(102) 상에서 실행되는 액세스 애플리케이션(1304)의 UI(1306)를 표시할 수 있다.
도 13c는 본 개시의 또 다른 실시예에 따른 디바이스의 디스플레이 상에서 애플리케이션이 표시되는 것을 나타내는 예시도이다.
도 13c를 참조하면, 사용자는 데스크탑 애플리케이션(1206) 중에서 계산기 애플리케이션(1308)을 선택할 수 있다. 사용자의 선택에 따라, 디바이스(100)의 디스플레이는 서버(102) 상에서 실행되는 계산기 애플리케이션(1308)의 UI(1310)를 표시할 수 있다.
도 14는 본 개시의 일 실시예에 따른 디바이스가 애플리케이션의 액세스를 처리하는 방법을 나타내는 흐름도이다.
본 개시의 일 실시예에 따르면, 디바이스(100)는 사용자 입력에 기초하여 액세스 대상이 되는 HOI를 결정할 수 있다(S1402). 이 경우, 사용자의 HOI(예를 들어, 312a)로의 액세스를 위한 입력 (예를 들어, 디바이스(100)의 디스플레이에 표시되는 아이콘 클릭)은 액세스 하고자 하는 애플리케이션의 식별 정보를 포함하거나 포함하지 않을 수 있다.
다음으로, 디바이스(100)는 사용자의 액세스 요청을 서버(102)로 전송할 수 있다(S1404). 사용자의 액세스 요청이 수신되면 서버(102)는 단계(S602 내지 S608)를 거쳐 특정 애플리케이션을 서버(102) 상에서 실행하고 실행에 따른 데이터를 디바이스(100)로 전송할 수 있다.
다음으로, 서버(102) 전송한 애플리케이션 실행에 따른 데이터를 디바이스(100)는 수신할 수 있다(S1406). 이후에, 디바이스(100)는 수신된 데이터에 대응하는 UI정보를 디스플레이에 표시할 수 있다.
도 15는 본 개시의 일 실시예에 따른 디바이스의 구조를 나타낸 블록도이다.
도 15를 참조하면, 디바이스(100)는 메모리(1502), 통신부(1504), 디스플레이(1506) 및 프로세서(1508)을 포함할 수 있다.
본 개시의 일 실시예에 따르면, 메모리(1502)는 디바이스(100)에 설치된 애플리케이션과 관련된 데이터를 저장할 수 있으며 가상 컨테이너(1202)와 관련된 데이터를 저장할 수도 있다. 통신부(1504)는 다른 디바이스(미도시) 또는 서버(102)와 통신할 수 있고 디스플레이(1506)는, 디바이스(100)에서 동작하는 모든 UI 정보를 포함하여, 서버(102)로부터 수신된 모든 데이터 정보를 표시할 수 있다. 프로세서(1508)는 디바이스(100)의 메모리(1502), 통신부(1504) 및 디스플레이(1506) (또는 존재하는 경우 다른 엘리먼트)의 동작을 제어하고 디바이스(100) 내의 모든 컴퓨터 계산을 담당할 수 있다. 이 경우, 메모리(1502), 통신부(1504) 및 디스플레이(1506)는 프로세서(1508)와 연결되어, 제어 명령과 관련된 데이터를 전송 받기 위해, 프로세서(1508)와 인터랙팅 할 수 있다.
본 개시에 따른, 프로세서(208)는 도 1 내지 도 15를 참조하여 전술한 서버의 동작을 수행하도록 구현될 수 있다.
또한 본 개시에 따른, 제 1 디바이스(1002) 및 제 2 디바이스(1004)는 디바이스(100)와 대응될 수 있고 제 1 HOI(1102) 및 제 2 HOI(1104)는 HOI(예를 들어, 312a)와 대응될 수 있다.
본 개시에 따른, 통신부는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 기기와 통신을 수행할 수 있다. 통신부는 와이파이칩, 블루투스 칩, 무선 통신 칩, NFC 칩 중 적어도 하나를 포함할 수 있다.
와이파이 칩, 블루투스 칩은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행할 수 있다. 와이파이 칩 또는 블루투스 칩을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. NFC 칩은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
한편, 상술한 본 개시의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 매체에 저장될 수 있다.
매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
Claims (17)
- 서버가 애플리케이션에 대한 액세스를 제어하는 방법에 있어서,
디바이스로부터 서로 다른 운영체제(OS)에서 각각 실행되는 적어도 하나의 애플리케이션을 관리하는 하이브리드 운영 체제 인터페이스(HOI)로의 액세스 요청을 수신하는 단계;
상기 수신된 HOI로의 액세스 요청에 기초하여 상기 디바이스의 인증을 수행하는 단계;
상기 디바이스가 인증됨에 따라, 상기 적어도 하나의 애플리케이션 중 상기 디바이스로부터 액세스 요청된 애플리케이션을 결정하는 단계; 및
상기 결정된 애플리케이션의 실행에 따른 데이터를 상기 디바이스에 전송하는 단계를 포함하는, 애플리케이션에 대한 액세스를 제어하는 방법. - 제 1 항에 있어서, 상기 HOI로의 액세스 요청은,
상기 적어도 하나의 애플리케이션 중 상기 액세스 요청된 애플리케이션의 식별 정보를 포함하는, 애플리케이션에 대한 액세스를 제어하는 방법. - 제 1 항에 있어서,
상기 액세스 요청이 수신됨에 따라, 상기 디바이스에 상기 실행 가능한 적어도 하나의 애플리케이션의 메타데이터를 전송하는 단계를 더 포함하고,
상기 디바이스로부터 액세스 요청된 애플리케이션은, 상기 전송된 메타데이터를 기초로 결정되는, 애플리케이션에 대한 액세스를 제어하는 방법. - 제 1 항에 있어서,
상기 적어도 하나의 애플리케이션을, OS 종류 또는 디바이스 타입 중 적어도 어느 하나에 기초하여 분류하는 단계, 및
상기 분류 정보를 전송하는 단계를 더 포함하는, 애플리케이션에 대한 액세스를 제어하는 방법. - 제 1 항에 있어서, 상기 서버의 OS의 인스턴스 상에 상기 액세스 요청된 애플리케이션의 인스턴스가 활성화 상태인지 여부를 식별하는 단계; 및
상기 액세스 요청된 애플리케이션의 인스턴스가 활성화 상태인 경우, 상기 애플리케이션의 인스턴스에 대응하는 사용자 인터페이스(UI)를 사용자 디바이스에 전송하고 상기 애플리케이션의 인스턴스가 비활성 상태인 경우, 상기 애플리케이션에 대응하는 OS 인스턴스를 호출하는 단계를 더 포함하는, 애플리케이션에 대한 액세스를 제어하는 방법. - 제 1 항에 있어서,
상기 디바이스로부터 상기 실행 중인 애플리케이션과 다른 애플리케이션 간의 데이터 공유 요청을 수신하는 단계;
상기 수신된 데이터 공유 요청에 따라, 상기 실행 중인 애플리케이션에서 발생된 데이터가 저장된 메모리의 메모리 경로 정보를 결정하는 단계; 및
상기 결정된 메모리 경로 정보를 기초로 상기 발생된 데이터를 상기 다른 애플리케이션과 공유하는 단계를 더 포함하는, 애플리케이션에 대한 액세스를 제어하는 방법. - 제 1 항에 있어서, 상기 애플리케이션의 실행에 따른 데이터를 상기 디바이스에 전송하는 단계는:
상기 실행 중인 애플리케이션에 대한 이벤트 명령을 상기 디바이스로부터 수신하는 단계; 및
상기 이벤트 명령에 기초하여 처리된 데이터를 상기 디바이스에 전송하는 단계를 포함하는, 애플리케이션에 대한 액세스를 제어하는 방법. - 디바이스가 애플리케이션에 대한 액세스를 제어하는 방법에 있어서,
사용자 입력에 기초하여 액세스 대상이 되는, 서로 다른 운영체제(OS)에서 각각 실행되는 적어도 하나의 애플리케이션을 관리하는 하이브리드 운영 체제 인터페이스(HOI)를 결정하는 단계;
상기 결정된 HOI로의 액세스 요청을, 상기 HOI를 포함하는 서버로 전송하는 단계; 및
상기 액세스 요청을 기초로, 상기 디바이스가 상기 서버에 인증됨에 따라, 상기 적어도 하나의 애플리케이션 중에서 결정된 애플리케이션의 실행에 따른 데이터를 상기 서버로부터 수신하는 단계를 포함하는, 애플리케이션에 대한 액세스를 제어하는 방법. - 제 8 항에 있어서,
상기 서버에 상기 실행 중인 애플리케이션과 다른 애플리케이션 간의 데이터 공유 요청을 전송하는 단계를 더 포함하고;
상기 데이터 공유 요청에 따라, 상기 실행 중인 애플리케이션에서 발생된 데이터가 저장된 메모리의 메모리 경로 정보를 기초로, 상기 데이터가 상기 다른 애플리케이션에 공유되는, 애플리케이션에 대한 액세스를 제어하는 방법. - 애플리케이션에 대한 액세스를 제어하기 위한 서버로서,
하나 이상의 인스트럭션들을 저장하는 메모리;
통신부; 및
상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
상기 프로세서는,
디바이스로부터 서로 다른 운영체제(OS)에서 각각 실행되는 적어도 하나의 애플리케이션을 관리하는 하이브리드 운영 체제 인터페이스(HOI)로의 액세스 요청을 수신하도록 상기 통신부를 제어하고,
상기 수신된 HOI로의 액세스 요청에 기초하여 상기 디바이스의 인증을 수행하고,
상기 디바이스가 인증됨에 따라, 상기 적어도 하나의 애플리케이션 중 상기 디바이스로부터 액세스 요청된 애플리케이션을 결정하며,
상기 결정된 애플리케이션의 실행에 따른 데이터를 상기 디바이스에 전송하도록 상기 통신부를 제어하는, 애플리케이션에 대한 액세스를 제어하기 위한 서버. - 제 10 항에 있어서, 상기 HOI로의 액세스 요청은,
상기 적어도 하나의 애플리케이션 중 상기 액세스 요청된 애플리케이션의 식별 정보를 포함하는, 애플리케이션에 대한 액세스를 제어하기 위한 서버. - 제 10항에 있어서, 상기 적어도 하나의 프로세서는,
상기 액세스 요청이 수신됨에 따라, 상기 디바이스에 상기 실행 가능한 적어도 하나의 애플리케이션의 메타데이터를 전송하도록 상기 통신부를 제어하고,
상기 디바이스로부터 액세스 요청된 애플리케이션을, 상기 전송된 메타데이터를 기초로 결정하는, 애플리케이션에 대한 액세스를 제어하기 위한 서버. - 제 10 항에 있어서, 상기 적어도 하나의 프로세서는,
상기 적어도 하나의 애플리케이션을, OS 종류 또는 디바이스 타입 중 적어도 어느 하나에 기초하여 분류하고,
상기 분류 정보를 전송하도록 상기 통신부를 제어하는, 애플리케이션에 대한 액세스를 제어하기 위한 서버. - 제 10 항에 있어서, 상기 적어도 하나의 프로세서는,
상기 서버의 OS의 인스턴스 상에 상기 액세스 요청된 애플리케이션의 인스턴스가 활성화 상태인지 여부를 식별하고,
상기 액세스 요청된 애플리케이션의 인스턴스가 활성화 상태인 경우, 상기 애플리케이션의 인스턴스에 대응하는 사용자 인터페이스(UI)를 사용자 디바이스에 전송하도록 상기 통신부를 제어하고,
상기 애플리케이션의 인스턴스가 비활성 상태인 경우, 상기 애플리케이션에 대응하는 OS 인스턴스를 호출하는, 애플리케이션에 대한 액세스를 제어하는 방법. - 제 10 항에 있어서, 상기 적어도 하나의 프로세서는,
상기 디바이스로부터 상기 실행 중인 애플리케이션과 다른 애플리케이션 간의 데이터 공유 요청을 수신하도록 상기 통신부를 제어하고,
상기 수신된 데이터 공유 요청에 따라, 상기 실행 중인 애플리케이션에서 발생된 데이터가 저장된 메모리의 메모리 경로 정보를 결정하며,
상기 결정된 메모리 경로 정보를 기초로 상기 발생된 데이터를 상기 다른 애플리케이션과 공유하는, 애플리케이션에 대한 액세스를 제어하는 방법. - 제 10 항에 있어서, 상기 적어도 하나의 프로세서는,
상기 실행 중인 애플리케이션에 대한 이벤트 명령을 상기 디바이스로부터 수신하고, 상기 이벤트 명령에 기초하여 처리된 데이터를 상기 디바이스에 전송하도록 상기 통신부를 제어하는, 애플리케이션에 대한 액세스를 제어하는 방법. - 프로세서에 의해 실행되었을 때 상기 프로세서가 애플리케이션에 대한 액세스를 제어하는 방법을 수행하도록 명령하는 프로그램 명령들을 저장하는 기록 매체를 포함하는 컴퓨터 프로그램 제품으로서, 상기 애플리케이션에 대한 액세스를 제어하는 동작은:
디바이스로부터 서로 다른 운영체제(OS)에서 각각 실행되는 적어도 하나의 애플리케이션을 관리하는 하이브리드 운영 체제 인터페이스(HOI)로의 액세스 요청을 수신하는 동작;
상기 수신된 HOI로의 액세스 요청에 기초하여 상기 디바이스의 인증을 수행하는 동작;
상기 디바이스가 인증됨에 따라, 상기 적어도 하나의 애플리케이션 중 상기 디바이스로부터 액세스 요청된 애플리케이션을 결정하는 동작; 및
상기 결정된 애플리케이션의 실행에 따른 데이터를 상기 디바이스에 전송하는 동작을 포함하는, 컴퓨터 프로그램 제품.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2019/007340 WO2020017767A1 (en) | 2018-07-16 | 2019-06-18 | Method and device for controlling access of application |
EP19837931.5A EP3818682B1 (en) | 2018-07-16 | 2019-06-18 | Method and device for controlling access of application |
US16/444,395 US11263036B2 (en) | 2018-07-16 | 2019-06-18 | Method and device for controlling access of application |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201841026526 | 2018-07-16 | ||
IN201841026526 | 2018-07-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200008498A true KR20200008498A (ko) | 2020-01-28 |
Family
ID=69370384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190049299A KR20200008498A (ko) | 2018-07-16 | 2019-04-26 | 애플리케이션의 액세스를 제어하기 위한 방법 및 디바이스 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP3818682B1 (ko) |
KR (1) | KR20200008498A (ko) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101754466B (zh) * | 2008-12-10 | 2012-09-05 | 运软网络科技(上海)有限公司 | 移动虚拟化的基础设施以及基础平台 |
US9270674B2 (en) * | 2013-03-29 | 2016-02-23 | Citrix Systems, Inc. | Validating the identity of a mobile application for mobile application management |
US9699262B2 (en) * | 2013-10-29 | 2017-07-04 | Srinivas Bharadwaj | Integrated viewing of local and remote applications in various multiplatform environments |
JP2016048413A (ja) * | 2014-08-27 | 2016-04-07 | 株式会社東芝 | システム、仮想デスクトップ環境選択方法および情報処理装置 |
-
2019
- 2019-04-26 KR KR1020190049299A patent/KR20200008498A/ko unknown
- 2019-06-18 EP EP19837931.5A patent/EP3818682B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3818682A4 (en) | 2021-08-25 |
EP3818682B1 (en) | 2024-02-07 |
EP3818682A1 (en) | 2021-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11070543B2 (en) | Multi-persona management and devices | |
US20210218797A1 (en) | Data Management for an Application with Multiple Operation Modes | |
US10878218B2 (en) | Device fingerprinting, tracking, and management | |
EP3541104B1 (en) | Data management for an application with multiple operation modes | |
US10165079B2 (en) | Providing a persona-based application experience | |
US10523714B2 (en) | Device policy composition and management system | |
US11263036B2 (en) | Method and device for controlling access of application | |
US11277366B2 (en) | Computing system with an email privacy filter and related methods | |
US10324745B2 (en) | Thin client with managed profile-specific remote virtual machines | |
US10579411B2 (en) | Loading and running virtual working environments in a mobile device management system | |
US20210182440A1 (en) | System for preventing access to sensitive information and related techniques | |
US11381563B1 (en) | Automated methods and systems for granting complex permissions | |
US11778539B2 (en) | Role-based access control system | |
US20220100874A1 (en) | Data loss protection on secondary displays | |
EP3374858A1 (en) | Creating and modifying applications from a mobile device | |
US11757976B2 (en) | Unified application management for heterogeneous application delivery | |
KR20200008498A (ko) | 애플리케이션의 액세스를 제어하기 위한 방법 및 디바이스 | |
US20230169195A1 (en) | Database systems and methods for securely sharing a record within a conversation | |
US12143917B2 (en) | Role-based access control system | |
US11968177B2 (en) | Systems and methods for verifying a firewall for a cloud provider | |
US20180077130A1 (en) | Binary experimentation on running web servers | |
US20230421556A1 (en) | Distribution of secure client devices | |
WO2021099919A2 (en) | Systems, methods and computer program products for application environment synchronization between remote devices and on-premise devices |