KR20160019410A - Data management for an application with multiple operation modes - Google Patents

Data management for an application with multiple operation modes Download PDF

Info

Publication number
KR20160019410A
KR20160019410A KR1020157031149A KR20157031149A KR20160019410A KR 20160019410 A KR20160019410 A KR 20160019410A KR 1020157031149 A KR1020157031149 A KR 1020157031149A KR 20157031149 A KR20157031149 A KR 20157031149A KR 20160019410 A KR20160019410 A KR 20160019410A
Authority
KR
South Korea
Prior art keywords
application
mode
mobile device
data
version
Prior art date
Application number
KR1020157031149A
Other languages
Korean (ko)
Other versions
KR101730984B1 (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
Priority claimed from US13/886,889 external-priority patent/US9280377B2/en
Priority claimed from US14/021,227 external-priority patent/US10284627B2/en
Application filed by 사이트릭스 시스템스, 인크. filed Critical 사이트릭스 시스템스, 인크.
Publication of KR20160019410A publication Critical patent/KR20160019410A/en
Application granted granted Critical
Publication of KR101730984B1 publication Critical patent/KR101730984B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/084Access security using delegated authorisation, e.g. open authorisation [OAuth] protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/088Access security using filters or firewalls
    • H04W4/001
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring

Abstract

다수의 모드들을 가진 애플리케이션을 관리하기 위한 방법 및 시스템이 개시된다. 모바일 디바이스를 관리하는 디바이스 관리자(device manager)는 모바일 디바이스를 모니터링할 수 있다. 디바이스 관리자는 관리 모드(managed mode)(또는 다수의 관리 모드들) 및 비관리 모드(unmanaged mode)로 실행되는 제 1 타입의 애플리케이션이 모바일 디바이스상에 설치됨을 검출할 수 있다. 애플리케이션이 디바이스에서 실행될 때, 애플리케이션은, 예컨대, 위치, 사용자, 역할, 업계 입지(industry presence) 또는 다른 미리 정의된 컨텍스트에 기초하여, 선택된 애플리케이션 모드 따라 실행된다. A method and system for managing an application having multiple modes is disclosed. A device manager that manages the mobile device may monitor the mobile device. The device manager may detect that a first type of application running in a managed mode (or multiple management modes) and an unmanaged mode is installed on the mobile device. When an application is executed on a device, the application is executed according to the selected application mode, e.g., based on location, user, role, industry presence or other predefined context.

Description

다수의 동작 모드들을 가진 애플리케이션용 데이터 관리{DATA MANAGEMENT FOR AN APPLICATION WITH MULTIPLE OPERATION MODES}[0001] DATA MANAGEMENT FOR APPLICATION WITH MULTIPLE OPERATION MODES [0002]

[001] 본 출원은 "Data Management for an Application with Multiple Operation Modes"란 명칭으로 2013년 9월 9일에 출원된 미국 출원 일련번호 제 14/021,227호"의 우선권을 주장하며, 이어서 이 출원은 "Policy-Based Application Management"란 명칭으로 2013년 8월 2일에 출원된 가출원 제61/861,736호, "Data Management for an Application with Multiple Operation Modes"란 명칭으로 2013년 8월 2일에 출원된 가출원 제61/861,758호 및 "Systems and Methods for Enterprise Mobility Management"란 명칭으로 2013년 3월 29일에 출원된 가출원 제61/806,557호의 우선권을 주장하며 "Application with Multiple Operation Modes"란 명칭으로 2013년 5월 2일에 출원된 미국 특허 출원번호 제 13/886,889호의 일부 계속 출원이며, 이들 출원 각각은 그 전체가 인용에 의해 본원에 통합된다.This application claims priority to U.S. Serial No. 14 / 021,227, filed on September 9, 2013 entitled " Data Management for an Application with Multiple Operation Modes, " Provisional Application No. 61 / 861,736, filed on August 2, 2013 entitled " Policy-Based Application Management ", filed on August 2, 2013, entitled " Data Management for an Application with Multiple Operation Modes & 61 / 861,758, entitled " Application with Multiple Operation Modes, " filed on March 29, 2013, entitled " Systems and Methods for Enterprise Mobility Management, And U.S. Patent Application Serial No. 13 / 886,889 filed on February 2, each of which is incorporated herein by reference in its entirety.

[002] 모바일 컴퓨팅 디바이스들의 사용이 계속 증가하고 있다. 특히, 비지니스 및 다른 기업들은 개인들이 다양한 기업 자원들에 원격적으로 액세스하도록 하기 위하여 모바일 컴퓨팅 디바이스들에 의존해 오고 있었다. 이러한 자원들은 예컨대 전자 메일 서비스들, 파일 서비스들, 데이터, 및 기업의 컴퓨터 시스템들에 의해 제공되는 다른 전자 자원들을 포함할 수 있다.[002] The use of mobile computing devices continues to increase. In particular, businesses and other companies have relied on mobile computing devices to allow individuals to remotely access various corporate resources. Such resources may include, for example, electronic mail services, file services, data, and other electronic resources provided by enterprise computer systems.

[003] 이러한 비지니스적 용도의 위반 행위로, 개인들은 그들의 모바일 컴퓨팅 디바이스들을 비지니스 수단 및 개인용 수단 모두로 사용하기 시작했다. 예컨대, 기업의 종업원은 동일한 모바일 컴퓨팅 디바이스로 기업의 이메일 계정 및 개인 이메일 계정에 액세스할 수 있다. 따라서, 모바일 컴퓨팅 디바이스의 특정 기능은 비즈니스적 측면 및 개인적 측면을 공유할 수 있다. 그러나, 비즈니스 정보는 종종 보안 통신 및 저장을 요구한다. 부가적으로, 모바일 디바이스에 저장된 비즈니스 정보는 관리를 필요로 할 수 있다. 따라서, 디바이스 관리자가 모바일 디바이스에 저장된 정보를 관리하는 것이 요구된다. [003] With this breach of business use, individuals have begun to use their mobile computing devices for both business and personal use. For example, an employee of an enterprise may access an enterprise email account and a personal email account with the same mobile computing device. Thus, certain functions of mobile computing devices may share business and personal aspects. However, business information often requires secure communication and storage. Additionally, business information stored in the mobile device may require management. Therefore, it is required that the device manager manage the information stored in the mobile device.

[004] 하기 설명은 본원에서 설명된 다양한 양상들의 간략화된 요약을 제시한다. 이러한 요약은 포괄적인 개요가 아니며, 중요하거나 핵심적인 엘리먼트들을 식별하거나, 청구항들의 범위를 서술하고자 할 의도도 아니다. 이하의 요약은 단순히 이하에서 제공된 더욱 상세한 설명을 소개하기 위한 서두로서 일부 개념들을 간략화된 형태로 제시한다. [004] The following description presents a simplified summary of the various aspects set forth herein. This summary is not a comprehensive overview, nor is it intended to identify key or critical elements or to delineate the scope of the claims. The following summary merely presents some concepts in a simplified form as a prelude to introduce the more detailed description provided below.

[005] 다수의 동작 모드들을 가진 애플리케이션을 관리하기 위한 방법 및 시스템이 본원에서 설명된다. 모바일 디바이스를 관리하는 디바이스 관리자는 모바일 디바이스를 모니터링할 수 있다. 디바이스 관리자는 비관리 모드(unmanaged mode) 및 관리 모드(managed mode)로 실행되는 미리 결정된 타입의 애플리케이션이 모바일 디바이스상에 설치됨을 검출할 수 있다. 동작 모드는 디바이스 컨텍스트(device context) 또는 디바이스 관련 정보(device-related information)에 기초할 수 있다. 예컨대, 애플리케이션은 사용자 크리덴셜(user credential)들이 신뢰성이 있는 사용자로서 사용자를 인증할 때 제 1 관리 모드로 실행될 수 있고, 그렇지 않은 경우 애플리케이션은 제 2 덜 보안적인 모드(less-secure mode)로 실행될 수 있다. 동작 모드는 또한 디바이스의 물리적 위치, 네트워크 위치, 사용자 크리덴셜들, 사용자 역할(user roles)들, 위치 타입(location types)들(예컨대, 직장 환경 타입들로서 또한 지칭되는, 헬스케어, 금융 기관, 학교, 정부 기관들 등) 등에 기초하여 선택될 수 있다. 애플리케이션은 3가지 이상의 동작 모드로 실행가능할 수 있고, 액세스, 보안, 자원 등의 여러 레벨을 제공하는 다수의 상이한 관리 모드들로 실행가능할 수 있다.[005] A method and system for managing an application having a plurality of operating modes is described herein. The device manager managing the mobile device can monitor the mobile device. The device manager may detect that a predetermined type of application running in an unmanaged mode and a managed mode is installed on the mobile device. The mode of operation may be based on device context or device-related information. For example, an application may be run in a first management mode when user credentials authenticate a user as a trusted user, otherwise the application may be run in a second less secure mode . The mode of operation may also be a physical location of the device, a network location, user credentials, user roles, location types (e.g., healthcare, financial institutions, schools , Government agencies, etc.). An application may be executable in three or more modes of operation and may be executable in a number of different modes of administration providing multiple levels of access, security, resources, and so on.

[006] 이들 및 추가적인 양상들은 이하에서 더 상세하게 논의되는 개시내용들의 장점과 함께 인식될 것이다.[006] These and additional aspects will be recognized in connection with the advantages of the disclosure discussed in greater detail below.

[007] 본원에서 설명되는 양상들 및 이의 장점들의 더 완전한 이해는 첨부 도면들을 고려하여 하기의 설명을 참조함으로써 획득될 수 있으며, 첨부 도면들에서 유사한 참조 번호는 유사한 특징을 표시한다.
[008] 도 1은 예시적인 실시예에 따라 사용될 수 있는 예시적인 컴퓨터 시스템 아키텍처를 도시한 것이다.
[009] 도 2는 예시적인 실시예에 따라 사용될 수 있는 예시적인 원격-액세스 시스템 아키텍처를 도시한 것이다.
[0010] 도 3은 예시적인 실시예에 따라 사용될 수 있는 예시적인 가상화 (하이퍼바이저(hypervisor)) 시스템 아키텍처를 도시한 것이다.
[0011] 도 4는 예시적인 실시예에 따라 사용될 수 있는 예시적인 클라우드 기반의 시스템 아키텍처를 도시한 것이다.
[0012] 도 5는 예시적인 실시예에 따라 사용될 수 있는 예시적인 기업 모빌리티 관리 시스템(enterprise mobility management system)을 도시한 것이다.
[0013] 도 6은 예시적인 실시예에 따라 사용될 수 있는 다른 예시적인 기업 모빌리티 관리 시스템을 도시한 것이다.
[0014] 도 7은 예시적인 실시예에 따른 모바일 디바이스의 샘플 인터페이스(sample interface)를 도시한 것이다.
[0015] 도 8은 예시적인 실시예에 따른 애플리케이션에 대한 애플리케이션 모드를 결정하는 것을 설명하기 위한 순서도이다.
[0016] 도 9는 예시적인 실시예에 따른 애플리케이션에 대한 계정 타입 컨텍스트(account type context)를 결정하는 것을 설명하기 위한 순서도이다.
[0017] 도 10은 예시적인 실시예에 따른 애플리케이션에 대한 위치 컨텍스트(location context)를 결정하는 것을 설명하기 위한 순서도이다.
[0018] 도 11은 예시적인 실시예에 따른 애플리케이션에 대한 미리 결정된 애플리케이션 상태 컨텍스트(predetermine application status context)를 결정하는 것을 설명하기 위한 순서도이다.
[0019] 도 12는 예시적인 실시예에 따른 애플리케이션에 대한 네트워크 연결 컨텍스트(network connection context)를 결정하는 것을 설명하기 위한 순서도이다.
[0020] 도 13은 예시적인 실시예에 따른 애플리케이션에 대한 세팅 컨텍스트(settings context)를 결정하는 것을 설명하기 위한 순서도이다.
[0021] 도 14는 예시적인 실시예에 따른 애플리케이션에 대한 애플리케이션 모드를 전환하는 것을 설명하기 위한 순서도이다.
[0022] 도 15는 예시적인 실시예에 따른 다수의 동작 모드들로 애플리케이션을 관리하는 것을 설명하기 위한 순서도이다.
[0023] 도 16은 예시적인 실시예에 따른 멀티-모드 애플리케이션을 관리하는 것을 설명하기 위한 순서도이다.
[0024] 도 17은 예시적인 실시예에 따른 앱 스토어(app store)를 설명하기 위한 순서도이다.
A more complete understanding of aspects and advantages herein may be obtained by reference to the following description taken in conjunction with the accompanying drawings, in which like reference numerals identify similar features.
[008] FIG. 1 illustrates an exemplary computer system architecture that may be used in accordance with an exemplary embodiment.
[009] FIG. 2 illustrates an exemplary remote-access system architecture that may be used in accordance with an exemplary embodiment.
[0010] FIG. 3 illustrates an exemplary virtualization (hypervisor) system architecture that may be used in accordance with an illustrative embodiment.
[0011] FIG. 4 illustrates an exemplary cloud-based system architecture that may be used in accordance with an illustrative embodiment.
[0012] FIG. 5 illustrates an exemplary enterprise mobility management system that may be used in accordance with an exemplary embodiment.
[0013] FIG. 6 illustrates another exemplary enterprise mobility management system that may be used in accordance with an exemplary embodiment.
[0014] FIG. 7 illustrates a sample interface of a mobile device according to an exemplary embodiment.
[0015] FIG. 8 is a flow diagram illustrating the determination of an application mode for an application in accordance with an exemplary embodiment.
[0016] FIG. 9 is a flowchart illustrating the determination of an account type context for an application according to an exemplary embodiment.
[0017] FIG. 10 is a flow diagram illustrating the determination of a location context for an application according to an exemplary embodiment.
[0018] FIG. 11 is a flowchart illustrating the determination of a predetermined predetermine application status context for an application according to an exemplary embodiment.
[0019] FIG. 12 is a flowchart illustrating the determination of a network connection context for an application according to an exemplary embodiment.
[0020] FIG. 13 is a flowchart illustrating the determination of a settings context for an application according to an exemplary embodiment.
[0021] FIG. 14 is a flow diagram illustrating switching application modes for an application according to an exemplary embodiment.
[0022] FIG. 15 is a flow diagram illustrating the management of an application in multiple operating modes in accordance with an exemplary embodiment.
[0023] FIG. 16 is a flowchart illustrating the management of a multi-mode application according to an exemplary embodiment.
[0024] FIG. 17 is a flowchart illustrating an app store according to an exemplary embodiment.

[0025] 다양한 실시예들의 이하의 설명에서는 실시예들의 일부분을 형성하며, 본원에서 설명된 양상들이 실시될 수 있는 예시적인 다양한 실시예들로 도시되는 앞서 식별된 첨부 도면들을 참조한다. 본원에서 설명된 범위로부터 벗어나지 않고, 다른 실시예들이 활용될 수 있고 구성 및 기능이 수정될 수 있다는 것이 이해되어야 한다. 다양한 양상들은 다른 실시예들을 가능하게 하며 다양한 상이한 방식들로 실시되거나 또는 수행될 수 있다. BRIEF DESCRIPTION OF THE DRAWINGS [0025] The following description of the various embodiments forms part of the embodiments and, together with the above identified embodiments, is shown by way of illustration various embodiments in which the aspects described herein may be practiced. It is to be understood that other embodiments may be utilized and that the structure and function may be modified without departing from the scope of the invention as described herein. The various aspects enable other embodiments and may be practiced or carried out in various different ways.

[0026] 이하에서 더 상세히 설명된 요지에 대한 일반적인 도입부로서, 본원에서 설명된 양상들은 특히 다수의 동작 모드들로 실행될 수 있는 애플리케이션들과 함께 사용되는, 모바일 컴퓨팅 디바이스들의 관리 모바일 애플리케이션들을 사용하여 기업 컴퓨팅 시스템의 자원들에 원격 액세스하는 것을 제어하는 것에 관한 것이다. 액세스 관리자는 기업 자원들에 대한 액세스를 요청하는 모바일 애플리케이션이 그 자체적으로 정확하게 식별되고 모바일 컴퓨팅 디바이스에 설치된 이후에 나중에 변경되지 않았는지의 여부를 결정하는 타당성 검증 프로세스(validation process)를 수행할 수 있다. 이러한 방식으로, 액세스 관리자는 기업 자원에 대한 액세스를 요청하는 모바일 디바이스가 신뢰성을 가질 수 있도록 보장하며 이들 기업 자원들을 보호하기 위하여 사용되는 보안 메커니즘들을 우회(circumvent)하는 것을 시도하지 않는다. 결과적으로, 기업과 연관된 개인들은 사전 승인된 애플리케이션들을 사용하여 그들의 개인 모바일 디바이스들로 기업 자원들을 유리하게 활용할 수 있다.[0026] As a general introduction to the subject matter described in greater detail below, the aspects described herein may be used in conjunction with applications that may be executed in a number of modes of operation, To controlling remote access to resources of a computing system. The access manager may perform a validation process that determines whether a mobile application requesting access to enterprise resources is itself correctly identified and that it has not been modified since it was installed on the mobile computing device . In this manner, the access manager does not attempt to circumvent security mechanisms used to secure mobile devices that request access to corporate resources and to protect these enterprise resources. As a result, individuals associated with the enterprise can leverage corporate resources with their personal mobile devices using pre-approved applications.

[0027] 본원에서 사용된 어법 및 전문 용어가 설명을 위한 것이며 제한으로서 간주되지 않아야 한다는 것이 이해되어야 한다. 오히려, 본원에서 사용되는 문구들 및 용어들은 가장 넓게 해석되고 가장 넓은 의미가 부여되어야 한다. "포함하는" 및 "구성하는"과 이의 변형들의 사용은 이후에 리스트되는 항목들 및 이의 균등물들 뿐만아니라 추가 항목들 및 이의 균등물들을 포함하는 것으로 의도된다. 용어들 "장착된", "연결된", "커플링된", "포지셔닝된", "관여된"과 유사한 용어들의 사용은 직접적 및 간접적 장착, 연결, 커플링, 포지셔닝 및 관여를 포함하는 것으로 의도된다.[0027] It is to be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting. Rather, the phrases and terminology used herein are to be interpreted as broadest and to the broadest meaning. The use of "comprising" and "comprising" and variations thereof is intended to include the items listed thereafter and equivalents thereof as well as additional items and equivalents thereof. The use of terms like "mounted "," coupled ", "coupled "," positioned ", "engaged ", including direct and indirect mounting, connection, coupling, positioning, do.

[0028] 컴퓨팅 아키텍처[0028] Computing architecture

[0029] 컴퓨터 소프트웨어, 하드웨어 및 네트워크들은 특히 스탠드얼론(standalone), 네트워크화, 원격-액세스(원격 데이크탑으로도 알려짐), 가상화 및/또는 클라우드-기반 환경들을 비롯하여 다양한 상이한 시스템 환경들에서 활용될 수 있다. 도 1은 스탠드 얼론 및/또는 네트워크화 환경에서, 본원에서 설명된 하나 이상의 예시적인 양상들을 구현하기 위하여 사용될 수 있는 시스템 아키텍처 및/또는 데이터 프로세싱 디바이스의 일례를 예시한다. 다양한 네트워크 노드들(103, 105, 107 및 109)은 광역 통신망(WAN)(101), 예컨대 인터넷을 통해 상호 연결될 수 있다. 사설 인트라넷들, 기업 네트워크들, LAN들, 도시권 통신망(MAN)들, 무선 네트워크들, 개인 네트워크(PAN)들 등을 포함하는 다른 네트워크들이 또한 또는 대안적으로 사용될 수 있다. 네트워크(101)는 예시적 목적이며, 더 적은 수의 컴퓨터 네트워크들로 또는 추가 네트워크들로 대체될 수 있다. 근거리 통신망(LAN)은 임의의 공지된 LAN 토폴로지 중 하나 이상을 가질 수 있으며, 이더넷과 같은 다양한 상이한 프로토콜들 중 하나 이상을 사용할 수 있다. 디바이스들(103, 105, 107, 109) 및 다른 디바이스들(도시안됨)은 트위스트 페어 와이어들, 동축 케이블, 광섬유들, 라디오 파들 또는 다른 통신 매체를 통해 네트워크들 중 하나 이상의 네트워크에 연결될 수 있다. [0029] Computer software, hardware and networks can be utilized in a variety of different system environments, particularly in standalone, networked, remote-access (also known as remote desktops), virtualization and / or cloud- have. 1 illustrates an example of a system architecture and / or data processing device that may be used to implement one or more of the exemplary aspects described herein in a standalone and / or networked environment. The various network nodes 103, 105, 107, and 109 may be interconnected via a wide area network (WAN) 101, e.g., the Internet. Other networks may also or alternatively be used, including private intranets, enterprise networks, LANs, metropolitan area networks (MANs), wireless networks, personal networks (PANs) The network 101 is for illustrative purposes and may be replaced with fewer computer networks or with additional networks. A local area network (LAN) may have one or more of any known LAN topologies and may use one or more of a variety of different protocols, such as Ethernet. The devices 103,105, 107,109 and other devices (not shown) may be connected to one or more of the networks via twisted pair wires, coaxial cables, optical fibers, radio waves or other communication media.

[0030] 본원에서 사용되고 도면들에 도시된 바와같은 용어 "네트워크"는 원격 저장 디바이스들이 하나 이상의 통신 경로들을 통해 함께 커플링되는 시스템들 뿐만아니라 가끔씩 저장 능력을 가지는 이러한 시스템들에 커플링될 수 있는 스탠드-얼론 디바이스들을 지칭한다. 결과적으로, 용어 "네트워크"는 "물리적 네트워크" 뿐만아니라 "콘텐츠 네트워크"를 포함하며, "콘텐츠 네트워크"는 모든 물리적 네트워크들에 걸쳐 상주하는 데이터로 구성되며, 단일 엔티티로 여겨질 수 있다. [0030] The term "network " as used herein and shown in the figures refers to a system in which remote storage devices are coupled together via one or more communication paths, as well as systems Refers to stand-alone devices. Consequently, the term "network" includes not only a "physical network ", but also a" content network ", wherein the "content network" consists of data residing across all of the physical networks.

[0031] 컴포넌트들은 데이터 서버(103), 웹 서버(105) 및 클라이언트 컴퓨터들(107, 109)을 포함할 수 있다. 데이터 서버(103)는 본원에서 설명된 하나 이상의 예시적인 양상들을 수행하기 위한 제어 소프트웨어 및 데이터베이스들의 전체 액세스, 제어 및 관리를 제공한다. 데이터 서버(103)는 웹 서버(105)에 연결될 수 있으며, 웹 서버(105)를 통해 사용자들은 요청된 데이터와 상호작용하여 이 데이터를 획득한다. 대안적으로, 데이터 서버(103)는 그 자체적으로 웹 서버로서 작용할 수 있고 인터넷에 직접 연결될 수 있다. 데이터 서버(103)는 네트워크(101)(예컨대, 인터넷)를 통해, 직접 또는 간접 연결을 통해 또는 일부 다른 네트워크를 통해 웹 서버(105)에 연결될 수 있다. 사용자들은 웹 서버(105)에 의해 호스팅되는 하나 이상의 외부적으로 노출된 웹 사이트들을 통해 데이터 서버(103)에 연결하기 하여 원격 컴퓨터들(107, 109)을 사용하여, 예컨대 웹 브라우저들을 사용하여 데이터 서버(103)와 상호작용할 수 있다. 클라이언트 컴퓨터들(107, 109)은 데이터 서버(103)에 저장된 데이터에 액세스하기 위하여 데이터 서버(103)와 협력하여 사용될 수 있거나 또는 다른 목적들을 위해 사용될 수 있다. 예컨대, 클라이언트 디바이스(107)로부터, 사용자는 기술분야에서 공지된 인터넷 브라우저를 사용하여 또는 컴퓨터 네트워크(예컨대, 인터넷)를 통해 웹 서버(105) 및/또는 데이터 서버(103)와 통신하는 소프트웨어 애플리케이션을 실행함으로써 웹 서버(105)에 액세스할 수 있다. [0031] The components may include a data server 103, a web server 105 and client computers 107, 109. The data server 103 provides full access, control, and management of control software and databases for performing one or more exemplary aspects described herein. The data server 103 may be connected to the web server 105 and through the web server 105 users interact with the requested data to obtain this data. Alternatively, the data server 103 may act as a web server by itself and may be directly connected to the Internet. The data server 103 may be connected to the web server 105 via the network 101 (e.g., the Internet), directly or indirectly, or some other network. Users can connect to the data server 103 via one or more externally exposed web sites hosted by the web server 105 and use the remote computers 107 and 109 to retrieve data Server 103. < / RTI > Client computers 107 and 109 may be used in conjunction with data server 103 to access data stored in data server 103 or may be used for other purposes. For example, from the client device 107, a user may use a software application that communicates with the web server 105 and / or the data server 103 using an Internet browser known in the art or via a computer network (e.g., the Internet) And can access the Web server 105 by executing it.

[0032] 서버들 및 애플리케이션들은 동일한 물리적 머신들상에 결합될 수 있고, 개별적인 가상 또는 논리 어드레스들을 보유할 수 있거나 또는 개별 물리 머신들상에 상주할 수 있다. 도 1은 사용될 수 있는 네트워크 아키텍처의 단지 하나의 예를 예시하며, 당업자는, 본원에서 추가로 설명되는 바와같이, 사용된 특정 네트워크 아키텍처 및 데이터 프로세싱 디바이스들이 변화될 수 있으며, 이들이 제공하는 기능이 부차적이라는 것을 인식할 것이다. 예컨대, 웹 서버(105) 및 데이터 서버(103)에 의해 제공되는 서비스들은 단일 서버상에서 결합될 수 있다.[0032] Servers and applications may be coupled on the same physical machines and may have separate virtual or logical addresses or may reside on separate physical machines. 1 illustrates only one example of a network architecture that may be used and one of ordinary skill in the art will recognize that the particular network architecture and data processing devices used, as further described herein, may be varied, . For example, the services provided by the web server 105 and the data server 103 may be combined on a single server.

[0033] 각각의 컴포넌트(103, 105, 107, 109)는 임의의 타입의 공지된 컴퓨터, 서버 또는 데이터 프로세싱 디바이스일 수 있다. 데이터 서버(103)는 예컨대 레이트 서버(rate server)(103)의 전체 동작을 제어하는 프로세서(111)를 포함할 수 있다. 데이터 서버(103)는 RAM(113), ROM(115), 네트워크 인터페이스(117), 입력/출력 인터페이스들(119)(예컨대, 키보드, 마우스, 디스플레이, 프린터 등) 및 메모리(121)를 더 포함한다. I/O(119)는 데이터 또는 파일들을 판독하고, 기록하며, 디스플레이하며 그리고/또는 프린트하기 위한 다양한 인터페이스 유닛들 및 드라이브들을 포함할 수 있다. 메모리(121)는 데이터 프로세싱 디바이스(103)의 전체 동작을 제어하기 위한 운영체제 소프트웨어(123), 본원에서 설명된 양상들을 수행하도록 데이터 서버(103)에 명령하기 위한 제어 로직(125), 및 본원에서 설명된 양상들과 함께 사용될 수 있거나 또는 본원에서 설명된 양상들과 함께 사용되지 않을 수 있는 2차 기능, 지원 기능 및/또는 다른 기능을 제공하는 다른 애플리케이션 소프트웨어(127)를 추가로 저장할 수 있다. 제어 로직은 또한 데이터 서버 소프트웨어(125)로서 본원에서 지칭될 수 있다. 데이터 서버 소프트웨어의 기능은 제어 로직으로 코딩된 규칙들에 기초하여 자동적으로 만들어지거나 또는 시스템내에 입력을 제공하는 사용자에 의해 수동적으로 만들어지거나 또는 사용자 입력(예컨대, 질의들, 데이터 업데이트들 등)에 기초한 자동 프로세싱의 조합으로 만들어진 동작들 또는 결정들을 지칭할 수 있다.[0033] Each component 103, 105, 107, 109 may be any type of well-known computer, server, or data processing device. The data server 103 may comprise a processor 111 for controlling the overall operation of a rate server 103, for example. The data server 103 further includes a RAM 113, a ROM 115, a network interface 117, input / output interfaces 119 (e.g., keyboard, mouse, do. I / O 119 may include various interface units and drives for reading, writing, displaying, and / or printing data or files. The memory 121 includes operating system software 123 for controlling the overall operation of the data processing device 103, control logic 125 for instructing the data server 103 to perform the aspects described herein, Additional application software 127 may be stored that provides secondary functions, support functions, and / or other functions that may be used with the described aspects or may not be used with the aspects described herein. The control logic may also be referred to herein as data server software 125. The functionality of the data server software may be automatically generated based on rules coded in the control logic or may be manually generated by the user providing input in the system or may be based on user input (e.g., queries, data updates, etc.) May refer to actions or decisions made in combination with automatic processing.

[0034] 제 1 데이터베이스(129) 및 제 2 데이터베이스(131)를 포함하는 메모리(121)는 또한 본원에서 설명된 하나 이상의 양상들의 수행시에 사용되는 데이터를 저장할 수 있다. 일부 실시예들에서, 제 1 데이터베이스는 (예컨대, 개별 테이블, 보고 등으로서) 제 2 데이터베이스를 포함할 수 있다. 즉, 시스템 설계에 따라, 정보는 단일 데이터베이스에 저장될 수 있거나 또는 상이한 논리적, 가상적 또는 물리적 데이터베이스들로 분리될 수 있다. 디바이스들(105, 107, 109)은 디바이스(103)와 관련하여 설명된 것과 유사한 또는 상이한 아키텍처를 가질 수 있다. 당업자는 본원에서 설명된 데이터 프로세싱 디바이스(103)(또는 디바이스들(105, 107, 109))의 기능이 예컨대 다수의 컴퓨터들에 걸쳐 프로세싱 로드를 분배하기 위하여, 즉 지리적 위치, 사용자 액세스 레벨, 서비스 품질(QoS) 등에 기초하여 트랜잭션(transaction)들을 분리하기 위하여, 다수의 데이터 프로세싱 디바이스들에 걸쳐 확산될 수 있다는 것을 인식할 것이다. [0034] The memory 121, including the first database 129 and the second database 131, may also store data used in performing one or more aspects described herein. In some embodiments, the first database may comprise a second database (e.g., as an individual table, report, etc.). That is, depending on the system design, the information may be stored in a single database or may be separated into different logical, virtual or physical databases. The devices 105, 107, and 109 may have similar or different architectures as those described in connection with the device 103. Those skilled in the art will appreciate that the functionality of the data processing device 103 (or devices 105, 107, 109) described herein may be used, for example, to distribute the processing load across multiple computers, And may be spread across multiple data processing devices to separate transactions based on quality of service (QoS) and the like.

[0035] 하나 이상의 양상들은 본원에서 설명되는 바와같이 컴퓨터-사용가능 또는 판독가능 데이터 및/또는 컴퓨터-실행가능 명령들로, 예컨대 하나 이상의 컴퓨터들 또는 다른 디바이스들에 의해 실행되는 하나 이상의 프로그램 모듈들로 구현될 수 있다. 일반적으로, 프로그램 모듈들은 컴퓨터 또는 다른 디바이스의 프로세서에 의해 실행될 때 특정 태스크(task)들을 수행하거나 또는 특정 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함한다. 모듈들은 실행을 위해 나중에 컴파일링되는 소스 코드 프로그래밍 언어로 쓰여질 수 있거나 또는 HTML 또는 XML와 같은 (그러나, 이에 제한되지 않음) 스크립팅 언어(scripting language)로 쓰여질 수 있다. 컴퓨터 실행가능 명령들은 비휘발성 저장 디바이스와 같은 컴퓨터 판독가능 매체상에 저장될 수 있다. 하드 디스크들, CD-ROM들, 광 저장 디바이스들, 자기 저장 디바이스들 및/또는 이들의 임의의 조합을 포함하는 임의의 적절한 컴퓨터 판독가능 저장 매체가 활용될 수 있다. 더욱이, 본원에서 설명된 바와 같은 데이터 또는 이벤트들을 나타내는 다양한 전송(비-저장) 매체는 금속 와이어들, 광섬유들, 및/또는 무선 전송 매체(예컨대, 에어(air) 및/또는 공간)와 같은 신호-전도 매체(signal-conducting media)를 통해 이동하는 전자기 파들의 형태로 소스와 목적지사이에서 이동될 수 있다. 본원에서 설명된 다양한 양상들은 방법, 데이터 프로세싱 시스템 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 다양한 기능들은 소프트웨어, 펌웨어 및/또는 하드웨어 또는 하드웨어 균등물들, 예컨대 집적회로들, 필드 프로그램가능 게이트 어레이(FPGA)들 등으로 전체적으로 또는 부분적으로 구현될 수 있다. 특정 데이터 구조들이 본원에서 설명된 하나 이상의 양상들을 더 효과적으로 구현하기 위하여 사용될 수 있으며, 이러한 데이터 구조들은 본원에서 설명된 컴퓨터 실행가능 명령들 및 컴퓨터-사용가능 데이터의 범위내에 있는 것으로 고려된다.[0035] One or more aspects may be implemented as computer-usable or readable data and / or computer-executable instructions, as described herein, such as one or more program modules . ≪ / RTI > Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a computer or other device's processor do. The modules may be written in a source code programming language compiled later for execution or written in a scripting language such as but not limited to HTML or XML. Computer-executable instructions may be stored on a computer-readable medium, such as a non-volatile storage device. Any suitable computer readable storage medium can be utilized including hard disks, CD-ROMs, optical storage devices, magnetic storage devices, and / or any combination thereof. Moreover, the various transmission (non-storing) media representing the data or events as described herein may be implemented as a signal such as metal wires, optical fibers, and / or wireless transmission media (e.g., air and / Can be moved between the source and destination in the form of electromagnetic waves traveling through the signal-conducting media. The various aspects described herein may be implemented as a method, a data processing system, or a computer program product. Thus, the various functions may be implemented in whole or in part by software, firmware and / or hardware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGAs), and the like. Certain data structures may be used to more effectively implement one or more aspects described herein, and such data structures are contemplated to be within the scope of computer-usable instructions and computer-usable data described herein.

[0036] 도 2를 추가로 참조하면, 본원에서 설명된 하나 이상의 양상들은 원격-액세스 환경에서 구현될 수 있다. 도 2는 본원에서 설명된 하나 이상의 예시적인 양상들에 따라 사용될 수 있는 예시적인 컴퓨팅 환경(200)의 범용 컴퓨팅 디바이스(201)를 포함하는 예시적인 시스템 아키텍처를 도시한다. 범용 컴퓨팅 디바이스(201)는 클라이언트 액세스 디바이스들에 가상 머신들을 제공하도록 구성된 단일-서버 또는 멀티-서버 데스크탑 가상화 시스템(예컨대, 원격 액세스 또는 클라우드 시스템)에서 서버(206a)로서 사용될 수 있다. 범용 컴퓨팅 디바이스(201)는 랜덤 액세스 메모리(RAM)(205), 판독-전용 메모리(ROM)(207), 입력/출력(I/O) 모듈(209) 및 메모리(215)를 비롯하여 서버 및 이와 연관된 컴포넌트들의 전체 동작을 제어하기 위한 프로세서(203)를 가질 수 있다.[0036] With further reference to FIG. 2, one or more aspects described herein may be implemented in a remote-access environment. FIG. 2 illustrates an exemplary system architecture including a general purpose computing device 201 of an exemplary computing environment 200 that may be used in accordance with one or more illustrative aspects described herein. The general purpose computing device 201 may be used as a server 206a in a single-server or multi-server desktop virtualization system (e.g., a remote access or cloud system) configured to provide virtual machines to client access devices. The general purpose computing device 201 includes a server 205 and a server 208 including a random access memory (RAM) 205, a read-only memory (ROM) 207, an input / output (I / O) module 209, And a processor 203 for controlling the overall operation of the associated components.

[0037] I/O 모듈(209)은 마우스, 키패드, 터치 스크린, 스캐너, 광 판독기, 및/또는 스타일러스(또는 다른 입력 디바이스(들)) ― 이를 통해 범용 컴퓨팅 디바이스(201)의 사용자는 입력을 제공할 수 있음 ―를 포함할 수 있으며, 또한 오디오 출력을 제공하기 위한 스피커 및 문자, 시청각 및/또는 그래픽 출력을 제공하기 위한 비디오 디스플레이 디바이스 중 하나 이상을 포함할 수 있다. 소프트웨어는 본원에서 설명된 바와 같은 다양한 기능들을 수행하기 위하여 범용 컴퓨팅 디바이스(201)를 특수 목적 컴퓨팅 디바이스로 구성하기 위한 명령들을 프로세서(203)에 제공하도록 메모리(215) 및/또는 다른 스토리지내에 저장될 수 있다. 예컨대, 메모리(215)는 컴퓨팅 디바이스(201), 예컨대 운영체제(217), 애플리케이션 프로그램들(219) 및 연관된 데이터베이스(221)에 의해 사용된 소프트웨어를 저장할 수 있다.The user of the general-purpose computing device 201 receives input (s) via the mouse, keypad, touch screen, scanner, optical reader, and / or stylus (or other input device , And may also include one or more of a speaker for providing audio output and a video display device for providing text, audiovisual and / or graphical output. The software may be stored in the memory 215 and / or other storage to provide the processor 203 with instructions for configuring the general purpose computing device 201 as a special purpose computing device to perform various functions as described herein . For example, memory 215 may store software used by computing device 201, e.g., operating system 217, application programs 219, and associated database 221.

[0038] 컴퓨팅 디바이스(201)는 단말들(240)(또한 클라이언트 디바이스들로 지칭됨)과 같은 하나 이상의 원격 컴퓨터들에의 연결들을 지원하는 네트워크화 환경에서 동작할 수 있다. 단말들(240)은 범용 컴퓨팅 디바이스(103 또는 201)와 관련하여 앞서 설명된 엘리먼트들 모두 또는 많은 엘리먼트들을 포함하는, 퍼스널 컴퓨터들, 모바일 디바이스들, 랩탑 컴퓨터들, 태블릿들 또는 서버들일 수 있다. 도 2에 도시된 네트워크 컴포넌트들은 근거리 통신망(LAN)(225) 및 광역 통신망(WAN)(229)을 포함하나, 또한 다른 네트워크들을 포함할 수 있다. LAN 네트워킹 환경에서 사용될 때, 컴퓨팅 디바이스(201)는 네트워크 인터페이스 또는 어댑터(223)를 통해 LAN(225)에 연결될 수 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨팅 디바이스(201)는 모뎀(227), 또는 컴퓨터 네트워크(230)(예컨대, 인터넷)와 같이 WAN(229)를 통해 통신들을 설정하기 위한 다른 광역 네트워크 인터페이스를 포함할 수 있다. 도시된 네트워크 연결들이 예시적이며 컴퓨터들 사이에 통신 링크를 설정하는 다른 수단이 사용될 수 있다는 것이 인식될 것이다. 컴퓨팅 디바이스(201) 및/또는 단말들(240)은 또한 배터리, 스피커, 및 안테나들(도시안됨)과 같은 다양한 다른 컴포넌트들을 포함하는 모바일 단말들(예컨대, 모바일 전화들, 스마트폰들, PDA들, 노트북들 등)일 수 있다.[0038] The computing device 201 may operate in a networked environment that supports connections to one or more remote computers, such as terminals 240 (also referred to as client devices). Terminals 240 may be personal computers, mobile devices, laptop computers, tablets or servers, including all or a combination of the elements described above in connection with the general purpose computing device 103 or 201. The network components shown in FIG. 2 include a local area network (LAN) 225 and a wide area network (WAN) 229, but may also include other networks. When used in a LAN networking environment, the computing device 201 may be connected to the LAN 225 via a network interface or adapter 223. When used in a WAN networking environment, the computing device 201 may include a modem 227 or other wide area network interface for establishing communications over the WAN 229, such as a computer network 230 (e.g., the Internet) have. It will be appreciated that the network connections shown are exemplary and other means of establishing a communication link between the computers may be used. Computing device 201 and / or terminals 240 may also be coupled to mobile terminals (e.g., mobile phones, smart phones, PDAs, etc.) including batteries, speakers, and various other components such as antennas , Notebooks, etc.).

[0039] 본원에서 설명된 양상들은 또한 다수의 다른 범용 또는 특수 목적 컴퓨팅 시스템 환경들 또는 구성들로 운용가능할 수 있다. 본원에서 설명된 양상들과 함께 사용하기에 적합할 수 있는 다른 컴퓨팅 시스템들, 환경들 및/또는 구성들의 예들은 퍼스널 컴퓨터들, 서버 컴퓨터들, 핸드-헬드 또는 랩탑 디바이스들, 멀티프로세서 시스템들, 마이크로프로세서-기반 시스템들, 셋톱 박스들, 프로그램가능 가전제품들, 네트워크 PC들, 미니컴퓨터들, 메인프레임 컴퓨터들, 앞의 시스템들 또는 디바이스들 중 임의의 것을 포함하는 분산형 컴퓨팅 환경들 등을 포함하나 이들에 제한되지 않는다. [0039] The aspects described herein may also be operational with many other general purpose or special purpose computing system environments or configurations. Examples of other computing systems, environments, and / or configurations that may be suitable for use with the aspects described herein include, but are not limited to, personal computers, server computers, hand-held or laptop devices, Microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the preceding systems or devices, But are not limited to these.

[0040] 도 2에 도시된 바와같이, 하나 이상의 클라이언트 디바이스들(240)은 하나 이상의 서버들(206a-206n)(일반적으로 본원에서 "서버(들)(206)"로 지칭됨)과 통신할 수 있다. 일 실시예에서, 컴퓨팅 환경(200)은 서버(들)(206)와 클라이언트 머신(들)(240) 사이에 설치된 네트워크 기기를 포함할 수 있다. 네트워크 기기는 클라이언트/서버 연결들을 관리할 수 있으며, 일부 경우들에서 복수의 백엔드 서버들(206) 사이의 클라이언트 연결들을 로드 밸런싱할 수 있다. As shown in FIG. 2, one or more client devices 240 may communicate with one or more servers 206a-206n (generally referred to herein as "server (s) 206") . In one embodiment, computing environment 200 may include a network device installed between server (s) 206 and client machine (s) The network device may manage client / server connections and, in some cases, may load balance client connections between the plurality of backend servers 206.

[0041] 클라이언트 머신(들)(240)은 일부 실시예들에서 단일 클라이언트 머신(240) 또는 클라이언트 머신들(240)의 단일 그룹으로 지칭될 수 있는 반면에, 서버(들)(206)는 단일 서버(206) 또는 서버들(206)의 단일 그룹으로 지칭될 수 있다. 일 실시예에서, 단일 클라이언트 머신(240)은 2개 이상의 서버(206)와 통신하는 반면에, 다른 실시예에서 단일 서버(206)는 2개 이상의 클라이언트 머신(240)과 통신한다. 또 다른 실시예에서, 단일 클라이언트 머신(240)은 단일 서버(206)와 통신한다.The client machine (s) 240 may be referred to in some embodiments as a single group of client machines 240 or client machines 240, while the server (s) May be referred to as a single group of servers 206 or servers 206. In one embodiment, a single client machine 240 communicates with two or more servers 206, while in another embodiment, a single server 206 communicates with two or more client machines 240. In yet another embodiment, a single client machine 240 communicates with a single server 206.

[0042] 일부 실시예들에서, 클라이언트 머신(240)은 이하의 비-제한적인 항목들, 즉 클라이언트 머신(들); 클라이언트(들); 클라이언트 컴퓨터(들); 클라이언트 디바이스(들); 클라이언트 컴퓨팅 디바이스(들); 로컬 머신; 원격 머신; 클라이언트 노드(들); 엔드포인트(들) 또는 엔드포인트 노드(들) 중 어느 하나에 의해 참조될 수 있다. 일부 실시예들에서, 서버(206)는 이하의 비-제한적인 항목들, 즉 서버(들); 로컬 머신; 원격 머신; 서버 팜(들) 또는 호스트 컴퓨팅 디바이스(들) 중 어느 하나에 의해 참조될 수 있다.[0042] In some embodiments, client machine 240 includes the following non-limiting items: client machine (s); Client (s); Client computer (s); Client device (s); Client computing device (s); Local machine; Remote machine; Client node (s); May be referred to by either endpoint (s) or endpoint node (s). In some embodiments, server 206 may include the following non-limiting items: server (s); Local machine; Remote machine; May be referred to by either the server farm (s) or the host computing device (s).

[0043] 일 실시예에서, 클라이언트 머신(240)은 가상 머신일 수 있다. 가상 머신은 임의의 가상 머신일 수 있는 반면에, 일부 실시예들에서, 가상 머신은 타입 1 또는 타입 2 하이퍼바이저(hypervisor), 예컨대 Citrix Systems, IBM, VMware에 의해 개발된 하이퍼바이저 또는 임의의 다른 하이퍼바이저에 의해 관리되는 임의의 가상 머신일 수 있다. 일부 양상들에서, 가상 머신은 하이퍼바이저에 의해 관리될 수 있는 반면에, 양상들에서 가상 머신은 서버(206)상에서 실행되는 하이퍼바이저 또는 클라이언트(240)상에서 실행되는 하이퍼바이저에 의해 관리될 수 있다.[0043] In one embodiment, client machine 240 may be a virtual machine. While in some embodiments the virtual machine may be a type 1 or type 2 hypervisor, such as a hypervisor developed by Citrix Systems, IBM, VMware, or any other And may be any virtual machine managed by the hypervisor. In some aspects, the virtual machine may be managed by the hypervisor, while in aspects the virtual machine may be managed by the hypervisor running on the server 206 or by the hypervisor running on the client 240 .

[0044] 일부 실시예들은 서버(206)상에서 원격적으로 실행되는 애플리케이션 또는 다른 원격적으로 위치한 머신에 의해 생성되는 애플리케이션 출력을 디스플레이하는 클라이언트 디바이스(240)를 포함한다. 이들 시스템들에서, 클라이언트 디바이스(240)는 애플리케이션 윈도우, 브라우저 또는 다른 출력 윈도우에서 출력을 디스플레이하기 위하여 가상 머신 수신기 프로그램 또는 애플리케이션을 실행할 수 있다. 일례에서 애플리케이션은 데스크탑인 반면에, 다른 예에서 애플리케이션은 데스크탑을 생성하거나 또는 제시하는 애플리케이션이다. 데스크탑은 로컬 및/또는 원격 애플리케이션들이 통합될 수 있는 운영체제의 인스턴스(instance)에 대한 사용자 인터페이스를 제공하는 그래픽 쉘(graphical shell)을 포함할 수 있다. 본원에서 설명된 바와같은 애플리케이션들은 운영체제(그리고, 또한 선택적으로 데스크탑)의 인스턴스가 로드된 후 실행되는 프로그램들이다.[0044] Some embodiments include a client device 240 that displays an application output that is generated by an application that is run remotely on the server 206 or another remotely located machine. In these systems, the client device 240 may execute a virtual machine receiver program or application to display output in an application window, browser, or other output window. In one example, the application is a desktop, while in another example, the application is an application that creates or presents a desktop. The desktop may include a graphical shell that provides a user interface to an instance of the operating system in which local and / or remote applications may be integrated. Applications, such as those described herein, are programs that run after an instance of the operating system (and optionally also the desktop) is loaded.

[0045] 일부 실시예들에서, 서버(206)는 서버(206)상에서 실행되는 애플리케이션에 의해 생성되는 디스플레이 출력을 제시하기 위하여 클라이언트상에서 실행되는 씬-클라이언트(thin-client) 또는 원격-디스플레이 애플리케이션에 데이터를 송신하기 위하여 원격 프리젠테이션 프로토콜 또는 다른 프로그램을 사용한다. 씬-클라이언트 또는 원격-디스플레이 프로토콜은 프로토콜들의 이하의 비-제한적인 리스트, 즉 플로리다, 포트 로더데일에 있는 Citrix Systems, Inc.에 의해 개발된 ICA(Independent Computing Architecture) 프로토콜 또는 Redmond, Washington에 있는 Microsoft Corporation에 의해 제조된 RDP(Remote Desktop Protocol) 중 어느 하나일 수 있다. [0045] In some embodiments, server 206 may be a thin-client or remote-display application running on a client to present a display output generated by an application executing on server 206 Use a remote presentation protocol or other program to transmit the data. The thin-client or remote-display protocol may include the following non-limiting list of protocols: Independent Computing Architecture (ICA) protocol developed by Citrix Systems, Inc. in Fort Lauderdale, Florida or Microsoft Corporation Or RDP (Remote Desktop Protocol) manufactured by the same manufacturer.

[0046] 원격 컴퓨팅 환경은 예컨대 클라우드 컴퓨팅 환경에서 서버들(206a-206n)이 서버 팜(206)으로 논리적으로 함께 그룹핑되도록 2개 이상의 서버(206a-206n)를 포함할 수 있다. 서버 팜(206)은 지리적으로 분산된 반면에 함께 논리적으로 그룹핑되는 서버들(206) 또는 서로 근접하게 배치되는 반면에 함께 논리적으로 그룹핑되는 서버들(206)을 포함할 수 있다. 일부 실시예들에서, 서버 팜(206) 내의 지리적으로 분산된 서버들(206a-206n)은 WAN(광역), MAN(대도시) 또는 LAN(지역)을 사용하여 통신할 수 있으며, 여기서 상이한 지리적 지역들은 상이한 대륙들; 상이한 대륙 영역들; 상이한 국가들; 상이한 주들; 상이한 도시들; 상이한 캠퍼스들; 상이한 방들; 또는 전술한 지리적 위치들의 임의의 조합으로 특징지워질 수 있다. 일부 실시예들에서 서버 팜(206)은 단일 엔티티로서 관리될 수 있는 반면에, 다른 실시예들에서 서버 팜(206)은 다수의 서버 팜들을 포함할 수 있다.[0046] The remote computing environment may include two or more servers 206a-206n, for example, in a cloud computing environment where the servers 206a-206n are logically grouped together into a server farm 206. [ The server farm 206 may include servers 206 that are geographically dispersed while logically grouped together, or servers 206 that are logically grouped together while being placed close together. In some embodiments, the geographically dispersed servers 206a-206n within the server farm 206 may communicate using WAN (wide area), MAN (metropolitan), or LAN (area), where different geographic areas Different continents; Different continental areas; Different countries; Different states; Different cities; Different campuses; Different rooms; Or any combination of the above geographic locations. In some embodiments, the server farm 206 may be managed as a single entity, while in other embodiments, the server farm 206 may comprise multiple server farms.

[0047] 일부 실시예들에서, 서버 팜은 실질적으로 유사한 타입의 운영체제 플랫폼(예컨대, WINDOWS, UNIX, LINUX, iOS, ANDROID, SYMBIAN 등)을 실행하는 서버들(206)을 포함할 수 있다. 다른 실시예들에서, 서버 팜(206)은 제 1 타입의 운영체제 플랫폼을 실행하는 하나 이상의 서버들의 제 1 그룹 및 제 2 타입의 운영체제 플랫폼을 실행하는 하나 이상의 서버들의 제 2 그룹을 포함할 수 있다.[0047] In some embodiments, the server farm may include servers 206 executing substantially similar types of operating system platforms (eg, WINDOWS, UNIX, LINUX, iOS, ANDROID, SYMBIAN, etc.). In other embodiments, the server farm 206 may include a first group of one or more servers running a first type of operating system platform and a second group of one or more servers running a second type operating system platform .

[0048] 서버(206)는 필요에 따라 임의의 타입의 서버로서, 예컨대 파일 서버, 애플리케이션 서버, 웹 서버, 프록시 서버, 어플라이언스, 네트워크 어플라이언스, 게이트웨이, 애플리케이션 게이트웨이, 게이트웨이 서버, 가상화 서버, 전개 서버, SSL VPN 서버, 방화벽, 웹 서버, 애플리케이션 서버로서 또는 마스터 애플리케이션 서버, 액티브 디렉토리를 실행하는 서버, 또는 방화벽 기능, 애플리케이션 기능 또는 로드 밸런싱 기능을 제공하는 애플리케이션 가속 프로그램을 실행하는 서버로서 구성될 수 있다. 다른 서버 타입들이 또한 사용될 수 있다.The server 206 may be any type of server as required, such as a file server, an application server, a web server, a proxy server, an appliance, a network appliance, a gateway, an application gateway, a gateway server, An SSL VPN server, a firewall, a web server, an application server, or a server running a master application server, a server running Active Directory, or a server running an application acceleration program providing firewall function, application function or load balancing function. Other server types may also be used.

[0049] 일부 실시예들은 클라이언트 머신(240)으로부터의 요청들을 수신하며, 제 2 서버(106b)에 요청을 포워드하며 그리고 제 2 서버(106b)로부터의 응답으로 클라이언트 머신(240)에 의해 생성되는 요청에 응답하는 제 1 서버(106a)를 포함한다. 제 1 서버(106a)는 클라이언트 머신(240)이 이용할 수 있는 애플리케이션들의 목록 뿐만아니라 애플리케이션들의 목록내에서 식별되는 애플리케이션을 호스팅하는 애플리케이션 서버(206)와 연관된 어드레스 정보를 획득할 수 있다. 이후, 제 1 서버(106a)는 웹 인터페이스를 사용하여 클라이언트의 요청에 대한 응답을 제시할 수 있으며, 식별된 애플리케이션에 대한 액세스를 클라이언트(240)에 제공하기 위하여 클라이언트(240)와 직접 통신할 수 있다. 하나 이상의 클라이언트들(240) 및/또는 하나 이상의 서버들(206)은 네트워크(230), 예컨대 네트워크(101)를 통해 데이터를 전송할 수 있다.[0049] Some embodiments receive requests from the client machine 240, forward requests to the second server 106b, and generate requests from the client machine 240 in response from the second server 106b And a first server 106a that responds to the request. The first server 106a may obtain address information associated with the application server 206 hosting the application identified in the list of applications as well as a list of applications available to the client machine 240. [ The first server 106a may then use the web interface to present a response to the request of the client and may communicate directly with the client 240 to provide access to the identified application have. One or more clients 240 and / or one or more servers 206 may transmit data over the network 230, e.g.,

[0050] 도 2는 예시적인 데스크탑 가상화 시스템의 고레벨 아키텍처를 도시한다. 도시된 바와같이, 데스크탑 가상화 시스템은 하나 이상의 클라이언트 액세스 디바이스들(240)에 가상 데스크탑들 및/또는 가상 애플리케이션들을 제공하도록 구성된 적어도 하나의 가상화 서버(206)를 포함하는 단일-서버 또는 멀티-서버 시스템 또는 클라우드 시스템일 수 있다. 본원에서 사용되는 바와같이, 데스크탑은 하나 이상의 애플리케이션들이 호스팅되고 그리고/또는 실행되는 그래픽 환경 또는 공간을 지칭한다. 데스크탑은 로컬 및/또는 원격 애플리케이션들이 통합될 수 있는 운영체제의 인스턴스에 대한 사용자 인터페이스를 제공하는 그래픽 쉘을 포함할 수 있다. 애플리케이션들은 운영체제(그리고 선택적으로 또한 데스크탑)의 인스턴스가 로드된 이후에 실행되는 프로그램들을 포함할 수 있다. 운영체제의 각각의 인스턴스는 물리적(예컨대, 디바이스당 하나의 운영체제) 또는 가상적(예컨대, 단일 디바이스상에서 실행되는 OS의 많은 인스턴스들)일 수 있다. 각각의 애플리케이션은 로컬 디바이스상에서 실행될 수 있거나 또는 원격적으로 위치한 디바이스(예컨대 원격 디바이스)상에서 실행될 수 있다.[0050] FIG. 2 illustrates a high-level architecture of an exemplary desktop virtualization system. As shown, the desktop virtualization system may include a single-server or multi-server system 200 that includes at least one virtualization server 206 configured to provide virtual desktops and / or virtual applications to one or more client access devices 240 Or a cloud system. As used herein, a desktop refers to a graphical environment or space in which one or more applications are hosted and / or executed. The desktop may include a graphics shell that provides a user interface to an instance of the operating system in which local and / or remote applications may be integrated. Applications may include programs that run after the instance of the operating system (and optionally also the desktop) is loaded. Each instance of the operating system may be physical (e.g., one operating system per device) or virtual (e.g., many instances of an OS running on a single device). Each application may be executed on a local device or may be executed on a remotely located device (e.g., a remote device).

[0051] 도 3을 추가로 참조하면, 컴퓨터 디바이스(301)는 가상화 환경의 가상화 서버, 예컨대, 단일-서버, 멀티-서버 또는 클라우드 컴퓨팅 환경으로서 구성될 수 있다. 도 3에 예시된 가상화 서버(301)는 도 2에 예시된 서버(206)의 하나 이상의 실시예에 의해, 또는 다른 공지된 컴퓨팅 디바이스에 의해 구현 및/또는 전개될 수 있다. 가상화 서버(301)에 포함된 것은 하나 이상의 물리적 디스크(304), 하나 이상의 물리적 디바이스(306), 하나 이상의 물리적 프로세서(308) 및 하나 이상의 물리적 메모리(316)를 포함할 수 있는 하드웨어 계층이다. 일부 실시예에서, 펌웨어(312)는 물리적 메모리(316)의 메모리 엘리먼트 내에 저장될 수 있고, 하나 이상의 물리적 프로세서(308)에 의해 실행될 수 있다. 가상화 서버(301)는 또한 물리적 메모리(316)의 메모리 엘리먼트에 저장되고 하나 이상의 물리적 프로세서(308)에 의해 실행될 수 있는 운영 체제(314)를 더 포함할 수 있다. 또한, 하이퍼바이저(302)는 물리적 메모리(316)의 메모리 엘리먼트에 저장될 수 있고 하나 이상의 물리적 프로세서(308)에 의해 실행될 수 있다.[0051] Still referring to FIG. 3, the computer device 301 may be configured as a virtualization server in a virtualized environment, such as a single-server, multi-server, or cloud computing environment. The virtualization server 301 illustrated in FIG. 3 may be implemented and / or deployed by one or more embodiments of the server 206 illustrated in FIG. 2, or by other known computing devices. Included in the virtualization server 301 is a hardware layer that may include one or more physical disks 304, one or more physical devices 306, one or more physical processors 308, and one or more physical memory 316. In some embodiments, the firmware 312 may be stored in a memory element of the physical memory 316 and may be executed by one or more physical processors 308. The virtualization server 301 may further include an operating system 314 that is stored in a memory element of the physical memory 316 and may be executed by one or more physical processors 308. [ The hypervisor 302 may also be stored in a memory element of the physical memory 316 and may be executed by one or more physical processors 308. [

[0052] 하나 이상의 물리적 프로세서(308) 상에서 실행시키는 것은 하나 이상의 가상 머신(332A-C, 일반적으로 332)일 수 있다. 각각의 가상 머신(332)은 가상 디스크(326A-C) 및 가상 프로세서(328A-C)를 포함할 수 있다. 일부 실시예에서, 제 1 가상 머신(332A)은, 가상 프로세서(328A)를 이용하여, 툴 스택(tools stack)(324)를 포함하는 제어 프로그램(320)을 실행할 수 있다. 제어 프로그램(320)은 제어 가상 머신, Dom0, Domain 0, 또는 시스템 운영 및/또는 제어용으로 사용되는 다른 가상 머신으로서 참조될 수도 있다. 일부 실시예에서, 하나 이상의 가상 머신(332B-C)은, 가상 프로세서(328B-C)를 이용하여, 게스트 운영 체제(330A-B)를 실행시킬 수 있다.[0052] It may be one or more virtual machines 332A-C, generally 332, to execute on one or more physical processors 308. Each virtual machine 332 may include virtual disks 326A-C and virtual processors 328A-C. In some embodiments, the first virtual machine 332A may execute a control program 320 that includes a tools stack 324 using the virtual processor 328A. The control program 320 may be referred to as a control virtual machine, Dom0, Domain 0, or other virtual machine used for system operation and / or control. In some embodiments, one or more virtual machines 332B-C may execute guest operating systems 330A-B using virtual processors 328B-C.

[0053] 가상화 서버(301)는 가상화 서버(301)와 통신하는, 하드웨어의 하나 이상의 피스(piece)들을 구비하는 하드웨어 계층(310)을 포함할 수 있다. 일부 실시예에서, 하드웨어 계층(310)은 하나 이상의 물리적 디스크(304), 하나 이상의 물리적 디바이스(306), 하나 이상의 물리적 프로세서(308) 및 하나 이상의 메모리(216)를 포함할 수 있다. 물리적 컴포넌트(304, 306, 308, 316)는, 예컨대, 임의의 상술한 컴포넌트를 포함할 수 있다. 물리적 디바이스(306)는, 예컨대, 네트워크 인터페이스 카드, 비디오 카드, 키보드, 마우스, 입력 디바이스, 모니터, 디스플레이 디바이스, 스피커, 광학 드라이브, 스토리지 드라이브, 범용 직렬 버스 연결, 프린터, 스캐너, 네트워크 엘리먼트(예컨대, 라우터, 방화벽, 네트워크 어드레스 변환기, 로드 밸런서, VPN(virtual private network) 게이트웨이, DHCP(Dynamic Host Configuration Protocol) 라우터 등), 또는 가상화 서버(301)와 통신하거나 연결하는 임의의 디바이스를 포함할 수 있다. 하드웨어 계층(310)의 물리적 메모리(316)는 임의의 타입의 메모리를 포함할 수 있다. 물리적 메모리(316)는 데이터를 저장할 수 있고, 일부 실시예에서 하나 이상의 프로그램, 또는 실행 가능한 명령 세트를 저장할 수 있다. 도 3은 펌웨어(312)가 가상화 서버(301)의 물리적 메모리(316) 내에 저장된 실시예를 도시한다. 물리적 메모리(316)에 저장된 프로그램 또는 실행 가능한 명령들은 가상화 서버(301)의 하나 이상의 프로세서(308)에 의해 실행될 수 있다.[0053] The virtualization server 301 may include a hardware layer 310 having one or more pieces of hardware in communication with the virtualization server 301. In some embodiments, hardware layer 310 may include one or more physical disks 304, one or more physical devices 306, one or more physical processors 308, and one or more memory 216. The physical components 304, 306, 308, and 316 may include, for example, any of the above-described components. The physical device 306 may be any type of device such as a network interface card, a video card, a keyboard, a mouse, an input device, a monitor, a display device, a speaker, an optical drive, a storage drive, a universal serial bus connection, (DHCP), a network address translator, a load balancer, a virtual private network (VPN) gateway, a Dynamic Host Configuration Protocol (DHCP) router, etc.) or any device that communicates with or connects to the virtualization server 301. The physical memory 316 of the hardware layer 310 may comprise any type of memory. The physical memory 316 may store data, and in some embodiments may store one or more programs, or a set of executable instructions. Figure 3 illustrates an embodiment where the firmware 312 is stored in the physical memory 316 of the virtualization server 301. [ Programs or executable instructions stored in physical memory 316 may be executed by one or more processors 308 of virtualization server 301. [

[0054] 가상화 서버(301)는 또한 하이퍼바이저(302)를 포함할 수 있다. 일부 실시예에서, 하이퍼바이저(302)는 가상화 서버(301) 상의 프로세서(308)에 의해 실행되어 임의의 개수의 가상 머신(332)를 생성 및 관리하는 프로그램일 수 있다. 하이퍼바이저(302)는 가상 머신 모니터 또는 플랫폼 가상화 소프트웨어로 참조될 수 있다. 일부 실시예에서, 하이퍼바이저(302)는 컴퓨팅 머신 상에서 실행되는 가상 머신을 모니터링하는 하드웨어 및 실행 가능한 명령들의 임의의 조합일 수 있다. 하이퍼바이저(302)는 타입 2 하이퍼바이저일 수 있고, 운영 체제(314) 내에서 실행되는 하이퍼바이저는 가상화 서버(301) 상에서 실행될 수 있다. 다름으로 가상 머신이 하이퍼바이저의 상위 레벨에서 실행된다. 일부 실시예에서, 타입 2 하이퍼바이저는 사용자의 운영 체제의 컨텍스트 내에서 실행되어, 타입 2 하이퍼바이저는 사용자의 운영 체제와 상호 작용을 한다. 다른 실시예에서, 가상화 환경의 하나 이상의 가상화 서버(201)는 대신에 타입 1 하이퍼바이저(도시되지 않음)를 포함할 수 있다. 타입 1 하이퍼바이저는 하드웨어 계층(310) 내의 자원 및 하드웨어를 직접 액세스함으로써 가상화 서버(301) 상에서 실행될 수 있다. 즉, 타입 2 하이퍼바이저(302)는 도시된 바와 같이 호스트 운영 체제(314)를 통해 시스템 자원을 액세스하지만, 타입 1 하이퍼바이저는 호스트 운영 체제(314) 없이 모든 시스템 자원에 직접 액세스할 수 있다. 타입 1 하이퍼바이저는 가상화 서버(301)의 하나 이상의 물리적 프로세서(308) 상에서 직접 실행될 수 있고, 물리적 메모리(316)에 저장된 프로그램 데이터를 포함할 수 있다.[0054] The virtualization server 301 may also include a hypervisor 302. In some embodiments, the hypervisor 302 may be a program that is executed by the processor 308 on the virtualization server 301 to create and manage any number of virtual machines 332. The hypervisor 302 may be referred to as a virtual machine monitor or platform virtualization software. In some embodiments, the hypervisor 302 may be any combination of hardware and executable instructions for monitoring a virtual machine running on the computing machine. The hypervisor 302 may be a type 2 hypervisor and the hypervisor running within the operating system 314 may be running on the virtualization server 301. The difference is that the virtual machine runs at the higher level of the hypervisor. In some embodiments, the Type 2 hypervisor is executed within the context of the user's operating system, and the Type 2 hypervisor interacts with the user's operating system. In another embodiment, one or more virtualization servers 201 in a virtualized environment may instead include a type 1 hypervisor (not shown). The Type 1 hypervisor can be run on the virtualization server 301 by directly accessing resources and hardware within the hardware layer 310. [ That is, although the Type 2 hypervisor 302 accesses system resources through the host operating system 314 as shown, the Type 1 hypervisor can directly access all system resources without the host operating system 314. [ The type 1 hypervisor may execute directly on one or more physical processors 308 of virtualization server 301 and may include program data stored in physical memory 316. [

[0055] 일부 실시예에서, 하이퍼바이저(302)는 가상 자원을, 운영 체제(330) 또는 제어 프로그램(320)이 시스템 자원에 직접 액세스하도록 시뮬레이션하는 임의의 방식으로 가상 머신(332) 상에서 실행되는 운영 체제(330) 또는 제어 프로그램(320)에 제공할 수 있다. 시스템 자원은 물리적 디바이스(306), 물리적 디스크(304), 물리적 프로세서(308), 물리적 메모리(316) 및 가상화 서버(301) 하드웨어 계층(310)에 포함된 임의의 다른 컴포넌트를 포함할 수 있으나 이에 제한되는 것은 아니다. 하이퍼바이저(302)는 가상 하드웨어를 에뮬레이션하고, 물리적 하드웨어를 파티셔닝하고, 물리적 하드웨어를 가상화하고, 및/또는 컴퓨팅 환경에 대한 액세스를 제공하는 가상 머신을 실행시키기 위해 사용될 수 있다. 또 다른 실시예에서, 하이퍼바이저(302)는 가상화 서버(301) 상에서 실행되는 가상 머신(332)에 대한 메모리 파티셔닝 및 프로세서 스케쥴링을 제어한다. 하이퍼바이저(302)는 켈리포니아 팔로 알토의 VMWare, Inc.에 의해 제조된 것들; 그 개발이 오픈 소스 Xen.org 커뮤니티에 의해 감독되는 오픈 소스 상품인 XEN 하이퍼바이저; 마이크로소프트에 의해 제공되는 virtual PC, HyperV, 또는 VirtualServer 또는 기타 하이퍼바이저를 포함할 수 있다. 일부 실시예에서, 가상화 서버(301)는, 게스트 운영 체제가 실행될 수 있는 가상 머신 플랫폼을 생성하는 하이퍼바이저(302)를 실행시킨다. 이들 실시예에서, 가상화 서버(301)는 호스트 서버로서 참조될 수 있다. 이러한 가상화 서버의 예로서 플로리다, 포트 로더데일의 Citrix Systems, Inc.에 의해 제공되는 XEN SERVER를 들 수 있다.[0055] In some embodiments, the hypervisor 302 executes virtual resources on virtual machine 332 in any manner that simulates direct access to system resources by operating system 330 or control program 320 To the operating system 330 or the control program 320. The system resources may include physical devices 306, physical disks 304, physical processors 308, physical memory 316 and any other components included in the virtualization server 301 hardware layer 310, But is not limited to. The hypervisor 302 may be used to execute virtual machines that emulate virtual hardware, partition physical hardware, virtualize physical hardware, and / or provide access to a computing environment. In another embodiment, the hypervisor 302 controls memory partitioning and processor scheduling for the virtual machine 332 running on the virtualization server 301. [ The hypervisor 302 is manufactured by VMWare, Inc. of Palo Alto, California; The XEN hypervisor, an open source product whose development is overseen by the open source Xen.org community; A virtual PC provided by Microsoft, HyperV, or a VirtualServer or other hypervisor. In some embodiments, the virtualization server 301 executes a hypervisor 302 that creates a virtual machine platform on which the guest operating system can run. In these embodiments, the virtualization server 301 may be referred to as a host server. An example of such a virtualization server is XEN SERVER provided by Citrix Systems, Inc. of Fort Lauderdale, Florida.

[0056] 하이퍼바이저(302)는 게스트 운영 체제(330)가 실행되는 하나 이상의 가상 머신(332B-C, 일반적으로 332)을 생성할 수 있다. 일부 실시예에서, 하이퍼바이저(302)는 가상 머신 이미지를 로드하여 가상 머신(332)을 생성할 수 있다. 다른 실시예에서, 하이퍼바이저(302)는 가상 머신(332) 내에서 게스트 운영 체제(330)를 실행시킬 수 있다. 또 다른 실시예에서, 가상 머신(332)은 게스트 운영 체제(330)를 실행시킬 수 있다.[0056] The hypervisor 302 may create one or more virtual machines 332B-C, generally 332, in which the guest operating system 330 is running. In some embodiments, the hypervisor 302 may load the virtual machine image to create the virtual machine 332. In another embodiment, the hypervisor 302 may execute the guest operating system 330 within the virtual machine 332. [ In another embodiment, the virtual machine 332 may execute the guest operating system 330. [

[0057] 가상 머신(332)을 생성하는 것에 추가하여, 하이퍼바이저(302)는 하나 이상의 가상 머신(332)의 실행을 제어할 수 있다. 다른 실시예에서, 하이퍼바이저(302)는 가상화 서버(301)에 의해 제공되는 하나 이상의 하드웨어 자원)(예컨대, 하드웨어 계층(310) 내에서 사용 가능한 임의의 하드웨어 자원)의 추상화로 하나 이상의 가상 머신(332)을 제시할 수 있다. 다른 실시예에서, 하이퍼바이저(302)는 가상 머신(332)이 가상화 서버(301)에서 사용 가능한 물리적 프로세서(308)를 액세스하는 방식을 제어할 수 있다. 물리적 프로세서(308)에 대한 액세스를 제어하는 것은, 가상 머신(332)이 프로세서(308)에 대한 액세스를 가져야 하는지 여부 및 물리적 프로세서 기능이 가상 머신(332)에 제공되는 방식을 결정하는 것을 포함할 수 있다.[0057] In addition to creating the virtual machine 332, the hypervisor 302 may control the execution of one or more virtual machines 332. In an alternative embodiment, the hypervisor 302 may be an abstraction of one or more hardware resources provided by the virtualization server 301 (e.g., any hardware resources available within the hardware layer 310) 332). In another embodiment, the hypervisor 302 may control how the virtual machine 332 accesses the physical processor 308 available in the virtualization server 301. [ Controlling access to the physical processor 308 includes determining whether the virtual machine 332 should have access to the processor 308 and how the physical processor functionality is provided to the virtual machine 332 .

[0058] 도 3에 도시된 바와 같이, 가상화 서버(301)는 하나 이상의 가상 머신(332)을 호스팅 또는 실행할 수 있다. 가상 머신(332)은, 프로세서(308)에 의해 실행된 경우, 물리적 컴퓨터의 동작을 모방하여, 가상 머신(332)이 물리적 컴퓨팅 디바이스와 매우 유사하게 프로그램 및 프로세스를 실행할 수 있도록 하는 실행 가능한 명령들의 세트이다. 도 3은 가상화 서버(301)가 3 개의 가상 머신(332)을 호스팅하는 것을 실시예를 나타내고 있으나, 다른 실시예에서, 가상화 서버(301)는 임의의 개수의 가상 머신(332)를 호스팅할 수 있다. 하이퍼바이저(302)는, 일부 실시예에서, 각각의 가상 머신(332)에 물리적 하드웨어, 메모리, 프로세서 및 상기 가상 머신(332)에 사용 가능한 다른 시스템 자원의 고유한 가상 뷰(unique virtual view)를 제공한다. 일부 실시예에서, 고유한 가상 뷰는 하나 이상의 가상 머신 퍼미션(permission), 하나 이상의 가상 머신 식별자에 대한 정책 엔진(policy engine)의 애플리케이션, 가상 머신에 액세스하는 사용자, 가상 모신 상에서 실행되는 애플리케이션, 가상 머신에 의해 액세스되는 네트워크 또는 다른 임의의 원하는 기준에 기반할 수 있다. 예컨대, 하이퍼바이저(302)는 하나 이상의 비보안(unsecure) 가상 머신(332) 및 하나 이상의 보안 가상 머신(332)을 생성할 수 있다. 비보안 가상 머신(332)은 보안 가상 머신(332)은 액세스 허용될 수 있는 프로그램, 자원, 하드웨어, 및 메모리 위치를 액세스하는 것이 제한될 수 있다. 다른 실시예에서, 하이퍼바이저(302)는 각각의 가상 머신(332)에 물리적 하드웨어, 메모리, 프로세서 및 가상 머신(332)에 사용 가능한 다른 시스템 자원에 대한 실질적으로 유사한 뷰를 제공할 수 있다.[0058] As shown in FIG. 3, the virtualization server 301 may host or execute one or more virtual machines 332. The virtual machine 332 is operable to execute executable instructions that, when executed by the processor 308, allow the virtual machine 332 to execute programs and processes in much the same manner as physical computing devices, Set. 3 illustrates an embodiment in which the virtualization server 301 hosts three virtual machines 332. In another embodiment, the virtualization server 301 can host any number of virtual machines 332 have. The hypervisor 302 may in some embodiments provide a unique virtual view of each virtual machine 332 to physical hardware, memory, processor, and other system resources available to the virtual machine 332 to provide. In some embodiments, the unique virtual view may include one or more virtual machine permissions, an application of a policy engine for one or more virtual machine identifiers, a user accessing a virtual machine, an application executing on a virtual machine, A network accessed by the machine, or any other desired criteria. For example, the hypervisor 302 may create one or more unsecured virtual machines 332 and one or more secure virtual machines 332. The insecure virtual machine 332 may be restricted from accessing the program, resources, hardware, and memory locations that the secure virtual machine 332 can access. In another embodiment, the hypervisor 302 may provide each virtual machine 332 with a substantially similar view of physical hardware, memory, processor, and other system resources available to the virtual machine 332. [

[0059] 각각의 가상 머신(332)은 가상 디스크(326A-C, 일반적으로 326) 및 가상 프로세서(328A-C, 일반적으로 328)을 포함할 수 있다. 가상 디스크(326)는, 일부 실시예에서, 가상화 서버(301)의 하나 이상의 물리적 디스크(304) 또는 가상화 서버(301)의 하나 이상의 물리적 디스크(304)의 일부분에 대한 가상화된 뷰(virtualized view)이다. 물리적 디스크(304)에 대한 가상화된 뷰는 하이퍼바이저(302)에 의해 생성, 제공 및 관리될 수 있다. 일부 실시예에서, 하이퍼바이저(302)는 각각의 가상 머신(332)에 물리적 디스크(304)의 고유한 뷰(unique view)를 제공한다. 따라서, 이들 실시예에서, 각각의 가상 머신(332)에 포함된 특정 가상 디스크(326)는 다른 가상 디스크(326)과 비교하여 고유할 수 있다.[0059] Each virtual machine 332 may include virtual disks 326A-C (typically 326) and virtual processors 328A-C (typically 328). The virtual disk 326 may in some embodiments be a virtualized view of one or more physical disks 304 of the virtualization server 301 or a portion of one or more physical disks 304 of the virtualization server 301, to be. A virtualized view of the physical disk 304 may be created, provisioned and managed by the hypervisor 302. In some embodiments, the hypervisor 302 provides a unique view of the physical disk 304 to each virtual machine 332. Thus, in these embodiments, the particular virtual disk 326 included in each virtual machine 332 may be unique compared to the other virtual disk 326. [

[0060] 가상 프로세서(328)는 가상화 서버(301)의 하나 이상의 물리적 프로세서(308)의 가상화된 뷰일 수 있다. 일부 실시예에서, 물리적 프로세서(308)의 가상화된 뷰는 하이퍼바이저(302)에 의해 생성, 제공 및 관리될 수 있다. 일부 실시예에서, 가상 프로세서(328)은 하나 이상의 물리적 프로세서(308)와 실질적으로 전부 동일한 특징을 가질 수 있다. 다른 실시예에서, 가상 프로세서(308)는 물리적 프로세서(308)의 변형된 뷰(modified view)를 제공하여, 가상 프로세서(328)의 특징 중 적어도 일부가 대응하는 물리적 프로세서(308)의 특징과 다르도록 할 수 있다.[0060] The virtual processor 328 may be a virtualized view of one or more physical processors 308 of the virtualization server 301. In some embodiments, the virtualized view of the physical processor 308 may be created, provided, and managed by the hypervisor 302. In some embodiments, the virtual processor 328 may have substantially the same characteristics as the one or more physical processors 308. The virtual processor 308 provides a modified view of the physical processor 308 such that at least some of the features of the virtual processor 328 are different from the corresponding physical processor 308 features .

[0061] 도 4를 추가로 참조하면, 본원에서 설명된 일부 양태들은 클라우드 기반의 환경에서 구현될 수 있다. 도 4는 클라우드 컴퓨팅 환경(또는 클라우드 시스템)(400)의 일례를 도시한다. 도 4에 도시된 바와 같이, 클라이언트 컴퓨터(411-414)는 클라우드 관리 서버(410)와 통신하여 클라우드 시스템의 컴퓨팅 자원(예컨대, 호스트 서버(403), 스토리지 자원(404) 및 네트워크 자원(405))에 액세스할 수 있다.[0061] Referring additionally to FIG. 4, some aspects described herein may be implemented in a cloud-based environment. 4 illustrates an example of a cloud computing environment (or cloud system) 4, client computers 411-414 communicate with the cloud management server 410 to communicate computing resources (e.g., host server 403, storage resources 404, and network resources 405) of the cloud system, ). ≪ / RTI >

[0062] 관리 서버(410)는 하나 이상의 물리적 서버 상에서 구현될 수 있다. 관리 서버(410)는, 예컨대, 플로리다, 포트 로더데일의 Citrix Systems, Inc.의 CLOUDSTACK 또는, 특히 OPENSTACK을 실행시킬 수 있다. 관리 서버(410)는 클라우드 하드웨어 및 소프트웨어 자원, 예컨대 호스트 컴퓨터(403), 데이터 스토리지 디바이스(404), 네트워크 디바이스(405)를 포함하는 다양한 컴퓨팅 자원을 관리할 수 있다. 클라우드 하드웨어 및 소프트웨어 자원은 사설 및/또는 공중 컴포넌트를 포함할 수 있다. 예컨대, 클라우드는 사설 네트워크를 통해 그리고또는 하나 이상의 특정 고객들 또는 클라이언트 컴퓨터들(411-414)에 의해 사용될 사설 클라우드로서 구성될 수 있다. 다른 실시예에서, 공중 클라우드 또는 하이브리드 사설-공중 클라우드는 개방형 또는 하이브리드 네트워크를 이용하여 다른 고객들에 의해 사용될 수 있다.[0062] The management server 410 may be implemented on one or more physical servers. The management server 410 may, for example, execute CLOUDSTACK or, in particular, OPENSTACK from Citrix Systems, Inc. of Fort Lauderdale, Florida. The management server 410 may manage various computing resources including cloud hardware and software resources, such as host computer 403, data storage device 404, and network device 405. [ Cloud hardware and software resources may include private and / or public components. For example, the cloud may be configured as a private cloud to be used by a private network and / or by one or more specific customers or client computers 411-414. In another embodiment, the public cloud or hybrid private-public cloud may be used by other customers using an open or hybrid network.

[0063] 관리 서버(410)는 클라우드 운영자 및 클라우드 고객이 클라우드 시스템과 상호 작용할 수 있도록 하는 사용자 인터페이스를 제공하도록 구성될 수 있다. 예컨대, 관리 서버(410)는 API 세트 및/또는 하나 이상의 클라우드 운영자 콘솔 애플리케이션(예컨대, 웹 기반의 스탠드얼론 애플리케이션)에, 클라우드 운영자가 클라우드 자원을 관리하고, 가상화 계층을 구성하고, 고객 계정을 관리하고, 다른 클라우드 운영 작업들을 수행할 수 있도록 하는 사용자 인터페이스를 제공할 수 있다. 관리 서버(410)는 또한 API 세트 및/또는 하나 이상의 클라우드 운영자 콘솔 애플리케이션에, 클라이언트 컴퓨터(411-414)를 통해 엔드 유저(end user)로부터 클라우드 컴퓨팅 요청, 예컨대, 클라우드 내에 가상 머신을 생성, 수정 또는 제거하기 위한 요청을 수신하도록 구성된 사용자 인터페이스를 제공할 수 있다. 클라우드 컴퓨터(411-414)는 인터넷 또는 다른 통신 네트워크를 통해 관리 서버(410)에 연결할 수 있고, 관리 서버(410)에 의해 관리되는 하나 이상의 컴퓨팅 자원에 대한 액세스를 요청할 수 있다. 클라이언트 요청에 대한 응답으로, 관리 서버(410)는 클라이언트 요청에 기초하여 클라우드 시스템의 하드웨어 계층의 물리적 자원을 선택 및 공급하도록 구성된 자원 관리자를 포함할 수 있다. 예컨대, 관리 서버(410) 및 클라우드 시스템의 추가적인 컴포넌트들은, 고객에게 연산 자원(computational resource), 데이터 스토리지 서비스, 네트워크 기능 및 컴퓨터 플랫폼 및 애플리케이션 지원을 제공하는, 네트워크(예컨대, 인터넷)를 이용하여, 클라이언트 컴퓨터(411-414)에서 고객들에 대한 가상 머신 및 그 동작 환경(예컨대, 하이퍼바이저, 스토리지 자원, 네트워크 엘리먼트에 의해 제공되는 서비스 등)을 제공, 생성 및 관리하도록 구성될 수 있다. 클라우드 시스템은 또한, 보안 시스템, 개발 환경, 사용자 인터페이스 등을 포함하는 다양한 특정 서비스들을 제공하도록 구성될 수 있다.[0063] The management server 410 may be configured to provide a user interface that allows the cloud operator and cloud customer to interact with the cloud system. For example, the management server 410 may provide a set of APIs and / or one or more cloud operator console applications (e.g., web-based standalone applications) to a cloud operator to manage cloud resources, configure the virtualization layer, And provide a user interface that allows other cloud operations to be performed. The management server 410 may also provide a set of APIs and / or one or more cloud operator console applications, via the client computers 411-414, to create and modify a cloud computing request, e.g., a virtual machine in the cloud, from an end user. Or to receive a request to remove the user interface. The cloud computers 411-414 may connect to the management server 410 via the Internet or other communications network and may request access to one or more computing resources managed by the management server 410. [ In response to the client request, the management server 410 may include a resource manager configured to select and supply physical resources of the hardware layer of the cloud system based on the client request. For example, the management server 410 and the additional components of the cloud system may use a network (e.g., the Internet) to provide the customer with computational resources, data storage services, network capabilities, Create, and manage virtual machines and their operating environment (e.g., hypervisor, storage resources, services provided by network elements, etc.) for customers at client computers 411-414. The cloud system may also be configured to provide various specific services, including security systems, development environments, user interfaces, and the like.

[0064] 특정 클라이언트(411-414)는 관련이 있을 수 있고, 예컨대, 서로 다른 클라이언트 컴퓨터가 동일한 최종 사용자들을 대표하는 가상 머신을 생성하거나, 서로 다른 사용자가 동일한 회사 또는 조직에 관계될 수 있다. 다른 예에서, 특정 클라이언트(411-414)는 관련이 없을 수 있고, 예컨대, 사용자들은 서로 다른 회사 또는 조직에 관계될 수 있다. 관련이 없는 클라이언트에 대해, 임의의 특정 사용자의 가상 머신 또는 스토리지에 대한 정보는 다른 사용자들에게 숨겨질 수 있다.[0064] Certain clients 411-414 may be related, for example, different client computers may create virtual machines that represent the same end users, or different users may be involved in the same company or organization. In another example, the particular client 411-414 may be unrelated and, for example, the users may be related to different companies or organizations. For unrelated clients, information about any particular user's virtual machine or storage may be hidden by other users.

[0065] 이제 클라우드 컴퓨팅 환경의 물리적 하드웨어 계층을 참조하면, 가용 존(availability zone)(401-402)(또는 존(zone))은 물리적 컴퓨팅 자원의 함께 배치된 세트(collocated set)를 참조할 수 있다. 존은 컴퓨팅 자원의 전 클라우드의 다른 존으로부터 지리적으로 떨어져 있을 수 있다. 예컨대, 존(401)은 캘리포니아에 위치한 제 1 클라우드 데이터센터일 수 있고, 존(402)은 플로리다에 위치한 제 2 클라우드 데이터센터일 수 있다. 관리 서버(410)는 가용 존들 중 하나에, 또는 떨어진 위치에 위치할 수 있다. 각각의 존은, 게이트웨이를 통해, 관리 서버(410)와 같은, 존 외부의 디바이스와 인터페이싱하는 내부 네트워크를 포함할 수 있다. 클라우드의 최종 사용자들(예컨대, 클라이언트(411-414))은 존들 사이를 구분할 수 있거나, 구분할 수 없을 수 있다. 예컨대, 최종 사용자들은 특정 양의 메모리, 처리 성능 및 네트워크 기능을 갖는 가상 머신의 생성을 요청할 수 있다. 관리 서버(410)는 사용자의 요청에 대해 응답하고, 가상 머신이 존(401) 또는 존(402)의 자원을 사용하여 생성되는지 여부를 사용자가 모르게 가상 머신을 생성하기 위한 자원을 할당할 수 있다. 다른 실시예에서, 클라우드 시스템은 최종 사용자가, 가상 머신(또는 다른 클라우드 자원)이 특정 존에, 또는 존 내의 특정 자원(403-405) 상에 할당되는 것을 요청하도록 할 수 있다.[0065] Referring now to the physical hardware layer of the cloud computing environment, an availability zone 401-402 (or zone) can refer to a collocated set of physical computing resources have. A zone can be geographically separated from other zones of the former cloud of computing resources. For example, zone 401 may be a first cloud data center located in California, and zone 402 may be a second cloud data center located in Florida. The management server 410 may be located in one of the available zones, or in a remote location. Each zone may include an internal network that interfaces with devices outside the zone, such as the management server 410, via a gateway. The end users of the cloud (e.g., clients 411-414) may or may not be able to distinguish between zones. For example, end users can request the creation of a virtual machine with a certain amount of memory, processing power, and network capabilities. The management server 410 may respond to the user's request and allocate resources for creating the virtual machine without the user knowing whether the virtual machine is created using the resources of the zone 401 or the zone 402 . In another embodiment, the cloud system may allow an end user to request that a virtual machine (or other cloud resource) be allocated to a particular zone or to a particular resource 403-405 within the zone.

[0066] 이러한 예에서, 각각의 존(401-402)은 다양한 물리적 하드웨어 컴포넌트(또는 컴퓨팅 자원)(403-405), 예컨대, 물리적 호스팅 자원(또는 처리 자원), 물리적 네트워크 자원, 물리적 스토리지 자원, 스위치, 및 클라우드 컴퓨팅 서비스를 고객에게 제공하기 위해 사용될 수 있는 추가적인 하드웨어 자원의 배치를 포함할 수 있다. 클라우드 존(401-402)의 물리적 호스팅 자원은, 상술한 가상화 서버(301)와 같은 하나 이상의 컴퓨터 서버(403)을 포함할 수 있고, 그것은 가상 머신 인스턴스를 생성 및 호스팅하도록 구성될 수 있다. 클라우드 존(401 또는 402)의 물리적 네트워크 자원은, 방화벽, 네트워크 어드레스 변환기, 로드 밸런서, VPN(virtual private network) 게이트웨이, DHCP(Dynamic Host Configuration Protocol) 라우터 등과 같은 네트워크 서비스를 클라우드 고객에게 제공하도록 구성된 하드웨어 및/또는 소프트웨어를 포함하는 하나 이상의 네트워크 엘리먼트(405)(예컨대, 네트워크 서비스 공급자)를 포함할 수 있다. 클라우드 존(401-402)의 스토리지 자원은 스토리지 디스크(예컨대, SSD(solid state drive), 자기 하드 디스크 등) 및 다른 스토리지 디바이스를 포함할 수 있다.[0066] In this example, each zone 401-402 includes a variety of physical hardware components (or computing resources) 403-405, such as physical hosting resources (or processing resources), physical network resources, Switches, and placement of additional hardware resources that can be used to provide the customer with cloud computing services. The physical hosting resources of the cloud zones 401-402 may include one or more computer servers 403, such as the virtualization server 301 described above, which may be configured to create and host virtual machine instances. The physical network resources of the cloud zone 401 or 402 may be hardware configured to provide network services such as a firewall, a network address translator, a load balancer, a virtual private network (VPN) gateway, a Dynamic Host Configuration Protocol And / or one or more network elements 405 (e.g., network service providers) that include software. The storage resources of the cloud zones 401-402 may include storage disks (e.g., solid state drives (SSDs), magnetic hard disks, etc.) and other storage devices.

[0067] 도 4에 도시된 예시적인 클라우드 컴퓨팅 환경은 또한 (예컨대, 도 1 내지 도 3에 도시된 바와 같은) 가상화 계층과, 가상 머신을 생성 및 관리하고 클라우드의 물리적 자원을 이용하여 고객에게 다른 서비스를 제공하도록 구성된 추가적인 하드웨어 및/또는 소프트웨어 자원을 포함할 수 있다. 가상화 계층은 도 3에서 상술한 바와 같은 하이퍼바이저와, 네트워크 가상화, 스토리지 가상화 등을 제공하는 다른 컴포넌트들을 포함할 수 있다. 가상화 계층은 물리적 자원 계층과 별개의 계층으로 될 수 있거나, 물리적 자원 계층과 동일한 하드웨어 및/또는 소프트웨어 자원의 일부 또는 전부를 공유할 수 있다. 예컨대, 가상화 계층은 각각의 가상화 서버(403)에 설치된 하이퍼바이저와 물리적 컴퓨팅 자원을 포함할 수 있다. 공지된 클라우드 시스템, 예컨대 WINDOWS AZURE (Microsoft Corporation of Redmond Washington), AMAZON EC2 (Amazon.com Inc. of Seattle, Washington), IBM BLUE CLOUD (IBM Corporation of Armonk, New York) 등이 대안적으로 사용될 수 있다.[0067] The exemplary cloud computing environment shown in FIG. 4 may also include a virtualization layer (e.g., as shown in FIGS. 1-3), a virtual machine that creates and manages virtual machines and utilizes the physical resources of the cloud Or may include additional hardware and / or software resources configured to provide services. The virtualization layer may include a hypervisor as described above in FIG. 3 and other components that provide network virtualization, storage virtualization, and the like. The virtualization layer may be a separate layer from the physical resource layer, or may share some or all of the same hardware and / or software resources as the physical resource layer. For example, the virtualization layer may include a hypervisor and physical computing resources installed in each virtualization server 403. Known cloud systems such as WINDOWS AZURE (Microsoft Corporation of Redmond Washington), AMAZON EC2 (Amazon.com Inc. of Seattle, Washington), IBM BLUE CLOUD (IBM Corporation of Armonk, New York) .

[0068] 기업용 모바일 관리 아키텍처[0068] Enterprise Mobile Management Architecture

[0069] 도 5는 BYOD 환경에서 사용하기 위한 기업용 모바일 기술 아키텍처(500)를 나타낸 것이다. 상기 아키텍처는 모바일 디바이스(502)의 사용자가 모바일 디바이스(502)의 기업 자원 또는 개인 자원을 모두 액세스하고, 모바일 디바이스(502)를 개인적 용도로 사용할 수 있도록 한다. 사용자는 기업에 의해 사용자에게 제공된 모바일 디바이스(502) 또는 사용자에 의해 구매된 모바일 디바이스(502)를 이용하는 이와 같은 기업 서비스(508) 또는 기업 자원(504)을 액세스할 수 있다. 사용자는 모바일 디바이스(502)를 비즈니스적 용도로만 이용하거나, 비즈니스적 및 개인적 용도로 활용할 수 있다. 모바일 디바이스는 iOS 운영 체제, 안드로이드(Android) 운영 체제 등에서 실행될 수 있다. 기업은 모바일 디바이스(504)를 관리하기 위한 정책을 구현하도록 선택할 수 있다. 정책은, 모바일 디바이스가 식별되고, 보안 또는 보안 검증되고, 기업 자원에 선택적 또는 모든 액세스가 제공되는 방식에 대해, 방화벽 또는 게이트웨이를 통해 주입될 수 있다. 정책은 모바일 디바이스 관리 정책, 모바일 애플리케이션 관리 정책, 모바일 데이터 관리 정책 또는 모바일 디바이스, 애플리케이션 및 데이터 관리 정책의 일부 조합일 수 있다. 모바일 디바이스 관리 정책의 적용을 통해 관리되는 모바일 디바이스(504)는 관리(managed) 디바이스로서 참조될 수 있다.[0069] Figure 5 illustrates an enterprise mobile technology architecture 500 for use in a BYOD environment. The architecture allows a user of the mobile device 502 to access both the enterprise or personal resources of the mobile device 502 and to use the mobile device 502 for personal use. A user may access such enterprise services 508 or enterprise resources 504 using a mobile device 502 provided to the user by the enterprise or a mobile device 502 purchased by the user. The user may use the mobile device 502 for business purposes only, or for business and personal purposes. The mobile device may be run on an iOS operating system, an Android operating system, or the like. The enterprise may choose to implement a policy for managing the mobile device 504. The policies may be injected through a firewall or gateway for the manner in which the mobile device is identified, secured or secured, and is provided with optional or full access to enterprise resources. The policies may be some combination of mobile device management policies, mobile application management policies, mobile data management policies or mobile device, application and data management policies. The mobile device 504 managed through application of the mobile device management policy can be referred to as a managed device.

[0070] 일부 실시예에서, 모바일 디바이스의 운영 체제는 관리 파티션(managed partition)(510) 및 비관리 파티션(unmanaged partition)(512)로 분리될 수 있다. 관리 파티션(510)은 그것에 적용되어 관리 파티션 상에서 실행되는 애플리케이션 및 관리 파티션에 저장되는 데이터를 안전하게 보장하는 정책들을 가질 수 있다. 관리 파티션 상에서 실행되는 애플리케이션은 보안 애플리케이션일 수 있다. 다른 실시예에서, 모든 애플리케이션은 애플리케이션으로부터 따로 수신된 하나 이상의 정책 파일의 세트에 따라 실행될 수 있고, 그것은 하나 이상의 보안 파라미터, 특징, 자원 제한 및/또는 상기 애플리케이션이 상기 디바이스 상에서 실행되는 중 모바일 디바이스 관리 시스템에 의해 시행되는 다른 액세스 제어를 정의한다. 이들 각각의 정책 파일(들)에 따라 동작시킴에 의해, 각각의 애플리케이션은 하나 이상의 다른 애플리케이션 및/또는 자원과 통신하는 것이 허용 또는 제한될 수 있고, 이에 따라 가상 파티션을 생성할 수 있다. 따라서, 본원에서 사용된 바와 같이, 파티션은 물리적으로 파티셔닝된 메모리의 부분(물리적 파티션), 논리적으로 파티셔닝된 메모리의 부분(논리적 파티션) 및/또는 본원에서 설명된 바와 같은 다중 앱에 걸쳐 하나 이상의 정책 및/또는 정책 파일들의 시행 결과로 생성된 가상 파티션(가상 파티션)을 참조할 수 있다. 달리 언급하면, 관리 앱(managed app)에 대해 정책을 시행함으로써, 이들 앱들은 다른 관리 앱 및 신뢰된 기업 자원과만 통신이 가능하도록 제한될 수 있고, 이에 따라 비관리 앱 및 디바이스에 의해 뚫리지 않는(impenetrable) 가상 파티션을 생성할 수 있다.[0070] In some embodiments, the operating system of the mobile device may be separated into a managed partition 510 and an unmanaged partition 512. The management partition 510 may have policies that apply to it to securely secure data stored in the application and management partition running on the management partition. An application running on the management partition may be a security application. In other embodiments, all applications may be executed according to a set of one or more policy files received separately from the application, which may include one or more security parameters, features, resource limits, and / or mobile device management Define other access controls enforced by the system. By operating in accordance with each of these policy file (s), each application can be allowed or restricted to communicate with one or more other applications and / or resources, thereby creating a virtual partition. Thus, as used herein, a partition may be a portion of a physically partitioned memory (a physical partition), a portion of a logically partitioned memory (a logical partition), and / or one or more policies across multiple apps And / or virtual partitions (virtual partitions) created as a result of enforcement of policy files. In other words, by enforcing policies on managed apps, these apps can be restricted to only communicate with other managed apps and trusted enterprise resources, which can lead to unmanaged apps and devices (impenetrable) virtual partitions.

[0071] 보안 애플리케이션은 이메일 애플리케이션, 웹 브라우징 애플리케이션, SaaS(software-as-a-service) 액세스 애플리케이션, 윈도우 애플리케이션 액세스 애플리케이션(Windows Application access application) 등일 수 있다. 보안 애플리케이션은 보안 네이티브 애플리케이션(514), 보안 애플리케이션 론처(secure application launcher)(518)에 의해 실행되는 보안 원격 애플리케이션(522), 보안 애플리케이션 론처(518)에 의해 실행되는 가상화 애플리케이션(526) 등일 수 있다. 보안 네이티브 애플리케이션(514)은 보안 애플리케이션 래퍼(secure application wrapper)(520)에 의해 래핑될(wrapped) 수 있다. 보안 애플리케이션 래퍼(520)는 보안 네이티브 애플리케이션이 디바이스 상에서 실행되는 경우 모바일 디바이스(502) 상에서 실행되는 통합 정책을 포함할 수 있다. 보안 애플리케이션 래퍼(520)는, 모바일 디바이스(520) 상에서 실행되는 보안 네이티브 애플리케이션(514)을 기업에서 호스팅되는 자원에 포인팅하는 메타 데이터를 포함할 수 있고, 보안 네이티브 애플리케이션(514)은 보안 네이티브 애플리케이션(514)의 실행 중에 요청된 작업을 완료할 것을 필요로 할 수 있다. 보안 애플리케이션 론처(518)에 의해 실행되는 보안 원격 애플리케이션(522)은 보안 애플리케이션 론처 애플리케이션(518) 내애서 실행될 수 있다. 보안 애플리케이션 론처(518)에 의해 실행되는 가상화 애플리케이션(526)은 모바일 디바이스(502) 상의 자원 또는 기업 자원(504)의 자원 등을 이용할 수 있다. 보안 애플리케이션 론처(518)에 의해 실행되는 가상화 애플리케이션(526)에 의해 모바일 디바이스(502) 상에서 사용되는 자원은 사용자 상호 작용 자원, 처리 자원 등을 포함할 수 있다. 사용자 상호 작용 자원은 키보드 입력, 마우스 입력, 카메라 입력, 촉각 입력(tactile input), 오디오 입력, 비주얼 입력, 제스처 입력 등을 수집 및 전송하기 위해 사용될 수 있다. 처리 자원은 사용자 인터페이스를 제공하고, 기업 자원(504)로부터 수신된 데이터를 처리하는 등을 위해 사용될 수 있다. 보안 애플리케이션 론처(518)에 의해 실행되는 가상화 애플리케이션(526)에 의해 기업 자원(504)에서 사용된 자원은 사용자 인터페이스 생성 자원, 처리 자원 등을 포함할 수 있다. 사용자 인터페이스 생성 자원은 사용자 인터페이스를 구성하고, 사용자 인터페이스를 변경하고, 사용자 인터페이스를 리프레시 하는 등을 위해 사용될 수 있다. 처리 자원은 정보를 생성하고, 정보를 읽고, 정보를 업데이트하고, 정보를 삭제하는 등을 위해 사용될 수 있다. 예컨대, 가상화 애플리케이션은 GUI와 연관된 사용자 상호 작용을 기록하고 서버 애플리케이션에 통신할 수 있고, 서버 애플리케이션은 사용자 상호 작용 데이터를 서버 상에서 동작하는 애플리케이션에 대한 입력으로서 사용할 것이다. 이러한 구성에서, 기업은 서버 측 상에서 애플리케이션 및 애플리케이션에 연관된 데이터, 파일 등을 유지하기 위해 선정할 수 있다. 기업이 모바일 디바이스 상에서의 전개를 위해 안전하게 보장함에 의해 여기서의 원칙에 따라 일부 애플리케이션을 "모바일화(mobilize)"하도록 선정할 수 있는 한편, 이러한 구성은 또한 특정 애플리케이션에 대해 선정될 수도 있다. 예컨대, 일부 애플리케이션이 모바일 디바이스 상에서의 사용을 위해 안전하게 보장될 수 있는 한편, 다른 애플리케이션은 모바일 디바이스 상에서의 전개를 위해 준비되거나 적절하지 않을 수 있어 기업은 가상화 기술을 통해 준비되지 않은 애플리케이션에 대한 모바일 사용자 액세스를 제공하도록 선정할 수 있다. 다른 예로서, 기업은 대규모이고 복잡한 데이터 세트를 갖는 대규모의 복잡한 애플리케이션(예컨대, 물질 자원 계획 애플리케이션)을 가질 수 있고, 모바일 디바이스 용으로 애플리케이션을 커스터마이징 하는 것이 매우 어렵거나, 아니면 바람직하기 않을 수 있어, 기업은 가상화 기술을 통해 애플리케이션에 대한 액세스를 제공하도록 선정할 수 있다. 또 다른 예로서, 기업은, 기업에 의해 보안 모바일 환경에서 조차 너무 민감한 것으로 간주되는 고도로 안전이 보장된 데이터(예컨대, 인적 자원 데이터, 고객 데이터, 엔지니어링 데이터)를 유지하는 애플리케이션을 가질 수 있고, 기업은 이러한 애플리케이션 및 데이터를 모바일 액세스하는 것을 허용하기 위해 가상화 기술을 이용하도록 선정할 수 있다. 기업은 모바일 디바이스 상에 완전히 보안되고 완전히 기능적인 애플리케이션 및 서버 측 상에서 더욱 적절하게 동작되는 것으로 간주되는 애플리케이션에 대한 액세스를 허용하는 가상화 애플리케이션을 제공하기 위해 선정할 수 있다. 일 실시예에서, 가상화 애플리케이션은 일부 데이터, 파일 등을 보안 스토리지 위치들 중 하나의 모바일 폰 상에 저장할 수 있다. 기업은 예컨대 특정 정보가 폰 상에 저장되는 것을 허용하고 다른 정보에 대해서는 허용하지 않도록 선정할 수 있다.[0071] The security application may be an email application, a web browsing application, a software-as-a-service (SaaS) access application, a Windows application access application, or the like. The security application may be a secure native application 514, a secure remote application 522 executed by a secure application launcher 518, a virtualization application 526 executed by a secure application launcher 518, . The secure native application 514 may be wrapped by a secure application wrapper 520. The security application wrapper 520 may include an integration policy that runs on the mobile device 502 when the secure native application is running on the device. The secure application wrapper 520 may include metadata that points to a secure native application 514 running on the mobile device 520 to a resource hosted in the enterprise and the secure native application 514 may include a secure native application 514, < / RTI > The secure remote application 522 executed by the secure application launcher 518 may be executed within the secure application launcher application 518. [ The virtualization application 526 executed by the security application launcher 518 may utilize resources on the mobile device 502 or resources of the enterprise resources 504. [ The resources used on the mobile device 502 by the virtualization application 526 executed by the security application launcher 518 may include user interaction resources, processing resources, and the like. User interaction resources may be used to collect and transmit keyboard input, mouse input, camera input, tactile input, audio input, visual input, gesture input, and the like. The processing resources may be used for providing a user interface, processing data received from the enterprise resources 504, and so on. The resources used in the enterprise resource 504 by the virtualization application 526 executed by the security application launcher 518 may include user interface generation resources, processing resources, and the like. User Interface Creation Resources can be used to configure the user interface, change the user interface, refresh the user interface, and so on. Processing resources can be used for generating information, reading information, updating information, deleting information, and the like. For example, a virtualization application may record user interaction associated with a GUI and communicate to a server application, which will use the user interaction data as input to an application running on the server. In this configuration, the enterprise can select on the server side to maintain data and files associated with the application and application. While the enterprise may be selected to "mobilize" some applications in accordance with the principles herein by securely ensuring for deployment on a mobile device, such a configuration may also be selected for a particular application. For example, some applications may be securely secured for use on a mobile device, while other applications may not be prepared or appropriate for deployment on a mobile device, You can choose to provide access. As another example, an enterprise may have a large and complex application (e.g., a material resource planning application) having a large and complex data set, and it may be very difficult or undesirable to customize the application for the mobile device, Enterprises can choose to provide access to applications through virtualization technology. As yet another example, an enterprise may have applications that maintain highly secure data (e.g., human resource data, customer data, engineering data) that are deemed too sensitive by the enterprise even in a secure mobile environment, May choose to use virtualization technology to allow mobile access to these applications and data. An enterprise can be selected to provide a fully secure and fully functional application on a mobile device and a virtualization application that allows access to applications that are considered to operate more properly on the server side. In one embodiment, the virtualization application may store some data, files, etc. on a mobile phone of one of the secure storage locations. An entity may, for example, choose to allow specific information to be stored on the phone and not allow other information.

[0072] 가상화 애플리케이션과 관련하여, 본원에서 설명된 바와 같이, 모바일 디바이스는 GUI를 제시하고, 이후 GUI와의 사용자 상호 작용을 기록/통과(pass-through)하도록 설계된 가상화 애플리케이션을 가질 수 있다. 애플리케이션은 사용자 상호 작용을 서버 측에 통신하여 서버 측 애플리케이션에 의해 애플리케이션에 대한 사용자 상호 작용으로서 사용되도록 할 수 있다. 이에 대한 응답으로, 서버 측의 애플리케이션은 모바일 디바이스에 새로운 GUI를 다시 전송할 수 있다. 예컨대, 새로운 GUI는 정적 페이지, 동적 페이지, 애니메이션 등일 수 있고, 이에 따라 원격에 위치한 자원에 대한 액세스를 제공할 수 있다.[0072] In connection with virtualization applications, as described herein, a mobile device may have a virtualization application designed to present a GUI and then to pass / write user interaction with the GUI. The application may communicate user interaction to the server side and may be used by the server side application as user interaction with the application. In response, the server-side application can resend a new GUI to the mobile device. For example, the new GUI may be a static page, a dynamic page, an animation, etc., and thus may provide access to remotely located resources.

[0073] 보안 애플리케이션은 모바일 디바이스의 관리 파티션(510)의 보안 데이터 컨테이너(528)에 저장된 데이터를 액세스할 수 있다. 보안 데이터 컨테이너에 저장된 데이터는 보안 래핑 애플리케이션(secure wrapped applications)(514), 보안 애플리케이션 론처(522)에 의해 실행되는 애플리케이션, 보안 애플리케이션 론처(522)에 의해 실행되는 가상화 애플리케이션(526) 등에 의해 액세스될 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 파일, 데이터베이스 등을 포함할 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 특정 보안 애플리케이션(530), 보안 애플리케이션(532) 사이에 공유된 것 등에 제한된 데이터를 포함할 수 있다. 보안 애플리케이션에 제한된 데이터는 보안 범용 데이터(534) 및 고도 보안 데이터(538)를 포함할 수 있다. 보안 범용 데이터는 AES 128 비트 암호화 등과 같은 강한 형태의 암호화를 이용할 수 있고, 고도 보안 데이터(538)는 AES 254 비트 암호화와 같은 매우 강한 형태의 암호화를 이용할 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 디바이스 관리자(524)로부터 명령을 수신함에 따라 디바이스로부터 삭제될 수 있다. 보안 애플리케이션은 이중 모드 옵션(540)을 가질 수 있다. 이중 모드 옵션(540)은 사용자가 비보안 모드에서 보안 애플리케이션을 동작시키기 위한 옵션을 제공할 수 있다. 비보안 모드에서, 보안 애플리케이션은 모바일 디바이스(502)의 비관리 파티션(512) 상의 비보안 데이터 컨테이너(542)에 저장된 데이터를 액세스할 수 있다. 비보안 데이터 컨테이너에 저장된 데이터는 개인용 데이터(544)일 수 있다. 비보안 데이터 컨테이너(542)에 저장된 데이터는 또한 모바일 디바이스(502)의 비관리 파티션(512) 상에서 실행되는 비보안 애플리케이션(548)에 의해 액세스될 수도 있다. 보안 데이터 컨테이너(528)에 저장된 데이터가 모바일 디바이스(502)로부터 삭제된 경우, 비보안 데이터 컨테이너(542)에 저장된 데이터는 모바일 디바이스(502) 상에 남아있을 수 있다. 기업은 모바일 디바이스로부터 기업에 의해 소유되거나, 라이센싱되거나, 제어되는, 선택되거나 모든 데이터, 파일 및/또는 애플리케이션(기업 데이터)을 삭제하되, 사용자에 의해 소유되거나, 라이센싱되거나, 제어되는, 개인 데이터, 파일 및/또는 애플리케이션(개인용 데이터)을 두거나 보존하기를 원할 수 있다. 이 동작은 선택적 지움(selective wipe)으로서 참조될 수 있다. 본원에서 설명된 양태들에 따라 구성된 기업 및 개인 데이터로, 기업은 선택적 지움을 수행할 수 있다.[0073] The security application may access data stored in the secure data container 528 of the management partition (510) of the mobile device. The data stored in the secure data container may be accessed by secure wrapped applications 514, an application executed by security application launcher 522, a virtualization application 526 executed by secure application launcher 522, . The data stored in secure data container 528 may include files, databases, and the like. The data stored in the secure data container 528 may include data that is restricted to specific security applications 530, shared between security applications 532, and the like. The data restricted to the security application may include security general purpose data 534 and highly secure data 538. [ Secure general purpose data may utilize strong forms of encryption such as AES 128-bit encryption, and the highly secure data 538 may utilize very strong forms of encryption, such as AES 254-bit encryption. The data stored in the secure data container 528 may be deleted from the device upon receipt of an instruction from the device manager 524. The security application may have dual mode option 540. [ The dual mode option 540 may provide an option for the user to operate the secure application in the unsecured mode. In the unsecured mode, the security application can access data stored in the non-secure data container 542 on the unmanaged partition 512 of the mobile device 502. The data stored in the non-secure data container may be personal data 544. [ The data stored in the insecure data container 542 may also be accessed by an insecure application 548 running on the unmanaged partition 512 of the mobile device 502. If the data stored in the secure data container 528 is deleted from the mobile device 502, the data stored in the insecure data container 542 may remain on the mobile device 502. An enterprise may delete personal data, files and / or applications (enterprise data) that are owned, licensed, or controlled by the enterprise from the mobile device, but which are owned, licensed, You may want to keep or preserve files and / or applications (personal data). This operation can be referred to as a selective wipe. With enterprise and personal data configured in accordance with the aspects described herein, the enterprise can perform selective erasure.

[0074] 모바일 디바이스는 기업에서 기업 자원(504) 및 기업 서비스(508), 공중 인터넷(548) 등에 연결할 수 있다. 모바일 디바이스는 가상 사설 네트워크 연결을 통해 기업 자원(504) 및 기업 서비스(508)에 연결할 수 있다. 마이크로VPN(microVPN) 또는 애플리케이션 특정 VPN(application-specific VPN)으로도 참조되는, 가상 사설 네트워크 연결은 특정 애플리케이션(550), 특정 디바이스, 모바일 디바이스 상의 특정 보안 영역 등(552)에 특정적일 수 있다. 예컨대, 폰의 보안 영역의 각각의 래핑 애플리케이션은 애플리케이션 특정 VPN을 통해 기업 자원에 액세스할 수 있고, VPN에 대한 액세스는, 아마도 사용자 또는 디바이스 속성 정보와 함께, 애플리케이션과 연관된 속성에 기초하여 허가될 수 있다. 가상 사설 네트워크 연결은 마이크로소프트 익스체인지(Microsoft Exchange) 트래픽, 마이크로소프트 액티브 디렉터리(Microsoft Active Directory) 트래픽, HTTP 트래픽, HTTPS 트래픽, 애플리케이션 관리 트래픽 등을 운반할 수 있다. 가상 사설 네트워크 연결은 싱글 사인 온(single-sign-on) 인증 프로세스(554)를 지원하고 활성화할 수 있다. 싱글 사인 온 프로세스들은 사용자가 나중에 인증 서비스(558)에 의해 검증되는, 인증 크리덴셜들의 단일 세트를 제공하도록 한다. 인증 서비스(558)는 그 후 사용자에게, 사용자가 각각의 개별적인 기업 자원(504)에 대한 인증 크리덴셜들을 제공할 것을 필요로 하지 않고, 다중 기업 자원(504)에 대한 액세스를 허가할 수 있다.The mobile device may connect to enterprise resources 504, enterprise services 508, public Internet 548, and the like in the enterprise. The mobile device may connect to the enterprise resources 504 and enterprise services 508 via a virtual private network connection. A virtual private network connection, also referred to as a micro VPN (microVPN) or an application-specific VPN, may be specific to a particular application 550, a specific device, a particular security area 552 on a mobile device, For example, each wrapping application in the secure area of the phone may access enterprise resources via an application specific VPN, and access to the VPN may be authorized based on attributes associated with the application, possibly with user or device attribute information have. Virtual private network connections can carry Microsoft Exchange traffic, Microsoft Active Directory traffic, HTTP traffic, HTTPS traffic, and application management traffic. The virtual private network connection may support and activate the single-sign-on authentication process 554. Single sign-on processes allow a user to provide a single set of authentication credentials that are later verified by authentication service 558. The authentication service 558 may then permit the user to access the multiple enterprise resources 504 without requiring the user to provide authentication credentials for each individual enterprise resource 504. [

[0075] 가상 사설 네트워크 연결은 액세스 게이트웨이(560)에 의해 설정 및 관리될 수 있다. 액세스 게이트웨이(560)는 기업 자원(504)을 모바일 디바이스(502)로 전달하는 것을 관리, 가속화 및 향상시키는 성능 향상 기능을 포함할 수 있다. 액세스 게이트웨이는 또한, 모바일 디바이스(502)가 공중 인터넷(548) 상에서 실행되는 공중으로 사용 가능하고 비보안인 애플리케이션을 액세스 가능하도록 하고, 모바일 디바이스(502)로부터 공중 인터넷(548)으로 트래픽을 재라우팅할 수도 있다. 모바일 디바이스는 전송 네트워크(562)를 통해 게이트웨이를 액세스하도록 연결할 수 있다. 전송 네트워크(562)는 유선 네트워크, 무선 네트워크, 클라우드 네트워크, 로컬 영역 네트워크, 도시 영역 네트워크, 광역 네트워크, 공중 네트워크, 사설 네트워크 등일 수 있다.[0075] The virtual private network connection may be established and managed by the access gateway 560. The access gateway 560 may include performance enhancement functions to manage, accelerate, and enhance delivery of enterprise resources 504 to the mobile device 502. The access gateway also allows the mobile device 502 to access the publicly available and insecure applications running on the public Internet 548 and to re-route traffic from the mobile device 502 to the public Internet 548 It is possible. The mobile device may connect to access the gateway via the transport network 562. [ The transmission network 562 may be a wired network, a wireless network, a cloud network, a local area network, an urban area network, a wide area network, a public network, a private network, and the like.

[0076] 기업 자원(504)은 이메일 서버, 파일 공유 서버, SaaS 애플리케이션, 웹 애플리케이션 서버, 윈도우 애플리케이션 서버 등을 포함할 수 있다. 이메일 서버는 익스체인지(Exchange), 로터스 노트(Lotus Notes) 서버 등을 포함할 수 있다. 파일 공유 서버는 셰어파일(ShareFile) 서버 등을 포함할 수 있다. SaaS 애플리케이션은 세일즈포스(Salesforce) 등을 포함할 수 있다. 윈도우 애플리케이션 서버는 로컬 윈도우 운영 체제 상에서 실행되는 것이 의도된 애플리케이션을 제공하도록 구성된 임의의 애플리케이션 서버 등을 포함할 수 있다. 기업 자원(504)은 전제 기반(premise-based) 자원, 클라우드 기반 자원 등일 수 있다. 기업 자원(504)은 모바일 디바이스(502)에 의해 직접 액세스되거나, 액세스 게이트웨이(560)를 통해 액세스될 수 있다. 기업 자원(504)은 전송 네트워크(562)를 통해 모바일 디바이스(502)에 액세스될 수 있다. 전송 네트워크(562)는 유선 네트워크, 무선 네트워크, 클라우드 네트워크, 로컬 영역 네트워크, 도시 영역 네트워크, 광역 네트워크, 공중 네트워크, 사설 네트워크 등일 수 있다.The enterprise resource 504 may include an email server, a file sharing server, a SaaS application, a web application server, a Windows application server, and the like. The email server may include an Exchange, a Lotus Notes server, and the like. The file sharing server may include a ShareFile server or the like. SaaS applications can include Salesforce. The Windows application server may include any application server or the like configured to provide an application intended to run on a local Windows operating system. The enterprise resource 504 may be a premise-based resource, a cloud-based resource, or the like. The enterprise resources 504 may be accessed directly by the mobile device 502 or through the access gateway 560. [ The enterprise resource 504 may be accessed to the mobile device 502 via the transport network 562. The transmission network 562 may be a wired network, a wireless network, a cloud network, a local area network, an urban area network, a wide area network, a public network, a private network, and the like.

[0077] 기업 서비스(508)는 인증 서비스(558), 위협 감지 서비스(564), 디바이스 관리 서비스(524), 파일 공유 서비스(568), 정책 관리 서비스(570), 사회 통합 서비스(social integration services)(572), 애플리케이션 제어기 서비스(574) 등을 포함할 수 있다. 인증 서비스(558)는 사용자 인증 서비스, 디바이스 인증 서비스, 애플리케이션 인증 서비스, 데이터 인증 서비스 등을 포함할 수 있다. 인증 서비스(558)는 인증서를 이용할 수 있다. 인증서는, 기업 자원(504) 등에 의해 모바일 디바이스(502) 상에 저장될 수 있다. 모바일 디바이스(502) 상에 저장된 인증서는 모바일 디바이스 상의 암호화된 위치에 저장될 수 있고, 인증서는 인증 시점에서의 사용 등을 위해 모바일 디바이스(502) 상에 일시적으로 저장될 수 있다. 위협 감지 서비스(564)는 침입 감지 서비스, 비허가 액세스 시도 감지 서비스 등을 포함할 수 있다. 비허가 액세스 시도 감지 서비스는 디바이스, 애플리케이션, 데이터 등을 액세스하기 위한 비허가된 시도를 포함할 수 있다. 디바이스 관리 서비스(524)는 구성, 프로비저닝, 보안, 지원, 모니터링, 보고 및 사후 서비스를 포함할 수 있다. 파일 공유 서비스(568)는 파일 관리 서비스, 파일 스토리지 서비스, 파일 협업 서비스 등을 포함할 수 있다. 정책 관리자 서비스(570)는 디바이스 정책 관리자 서비스, 애플리케이션 정책 관리자 서비스, 데이터 정책 관리자 서비스 등을 포함할 수 있다. 사회 통합 서비스(572)는 연락처 통합 서비스, 협업 서비스, 페이스북(Facebook), 트위터(Twitter) 및 링크드인(LinkedIn)과 같은 소셜 네트워크와의 통합 등을 포함할 수 있다. 애플리케이션 제어기 서비스(574)는 관리 서비스, 프로비저닝 서비스, 전개 서비스, 할당 서비스, 취소 서비스, 래핑 서비스 등을 포함할 수 있다.The enterprise service 508 includes an authentication service 558, a threat detection service 564, a device management service 524, a file sharing service 568, a policy management service 570, a social integration services ) 572, application controller services 574, and the like. The authentication service 558 may include a user authentication service, a device authentication service, an application authentication service, a data authentication service, and the like. The authentication service 558 may use the certificate. The certificate may be stored on mobile device 502 by enterprise resource 504, and so on. The certificate stored on the mobile device 502 may be stored in an encrypted location on the mobile device and the certificate may be temporarily stored on the mobile device 502 for use at an authentication point, The threat detection service 564 may include an intrusion detection service, a non-authorized access detection service, and the like. Unauthorized access attempt detection services may include unauthorized attempts to access devices, applications, data, and so on. The device management service 524 may include configuration, provisioning, security, support, monitoring, reporting, and post-service. The file sharing service 568 may include a file management service, a file storage service, a file collaboration service, and the like. The policy manager service 570 may include a device policy manager service, an application policy manager service, a data policy manager service, and the like. The social integration service 572 may include integration with social networks such as contact integration services, collaboration services, Facebook, Twitter and LinkedIn. The application controller service 574 may include a management service, a provisioning service, a deployment service, an assignment service, a revocation service, a wrapping service, and the like.

[0078] 기업 모바일 기술 아키텍처(500)는 애플리케이션 스토어(578)을 포함할 수 있다. 애플리케이션 스토어(578)는 비-래핑된(unwrapped) 애플리케이션(580), 사전-래핑된(pre-wrapped) 애플리케이션(582) 등을 포함할 수 있다. 애플리케이션은 애플리케이션 제어기(574)로부터 애플리케이션 스토어(578)에 채워질 수 있다. 애플리케이션 스토어(578)는 액세스 게이트웨이(560)를 통해 모바일 디바이스(502)에 의해, 공중 인터넷(548) 등을 통해 액세스될 수 있다. 애플리케이션 스토어에는 사용하기에 직관적이고 용이한 사용자 인터페이스가 제공될 수 있다. 애플리케이션 스토어(578)는 소프트웨어 개발 킷(584)에 대한 액세스를 제공할 수 있다. 소프트웨어 개발 킷(584)은 사용자에게, 본 설명에서 상술한 바와 같이 애플리케이션을 래핑함으로써 사용자에 의해 선택된 애플리케이션의 안전을 보장하도록 하는 기능을 제공할 수 있다. 그 후 소프트웨어 개발 킷(584)을 이용하여 래핑된 애플리케이션은, 애플리케이션 제어기(574)를 이용하여 애플리케이션 스토어(578)에 그것을 채움으로써 모바일 디바이스(502)에 사용 가능하도록 만들 수 있다.[0078] The enterprise mobile technology architecture 500 may include an application store 578. The application store 578 may include a non-unwrapped application 580, a pre-wrapped application 582, and the like. The application may be populated from the application controller 574 to the application store 578. The application store 578 may be accessed by the mobile device 502 via the access gateway 560, via the public Internet 548, and the like. The application store can be provided with an intuitive and easy to use user interface. The application store 578 may provide access to the software development kit 584. The software development kit 584 may provide a function to the user to ensure the safety of the application selected by the user by wrapping the application as described above in this description. The wrapped application using the software development kit 584 may then be made available to the mobile device 502 by filling it into the application store 578 using the application controller 574. [

[0079] 기업 모바일 기술 아키텍처(500)는 관리 및 분석 기능(588)을 포함할 수 있다. 관리 및 분석 기능(588)은 자원이 이용되는 방식, 자원이 이용되는 빈도 등에 관한 정보를 제공할 수 있다. 자원은 디바이스, 애플리케이션, 데이터 등을 포함할 수 있다. 자원이 이용되는 방식은 어떤 디바이스가 어떤 애플리케이션을 다운로드하는지, 어떤 애플리케이션이 어떤 데이터를 액세스하는지 등을 포함할 수 있다. 자원이 이용되는 빈도는 애플리케이션이 얼마나 자주 다운로드 되었는지, 데이터의 특정 세트가 몇 번 애플리케이션에 의해 액세스 되었는지 등을 포함할 수 있다.[0079] Enterprise mobile technology architecture 500 may include management and analysis functions 588. The management and analysis function 588 may provide information about the manner in which resources are used, the frequency with which they are used, and so on. Resources may include devices, applications, data, and the like. The manner in which the resource is used may include what device is downloading which application, which application is accessing which data, and so on. The frequency with which the resource is used may include how often the application was downloaded, how many times a particular set of data was accessed by the application, and so on.

[0080] 도 6은 다른 예시적인 기업 모바일 관리 시스템(600)을 나타낸다. 도 5를 참조하여 상술한 모바일 관리 시스템(500)의 일부 컴포넌트들은 단순성을 위해 생략되었다. 도 6에 도시된 시스템(600)의 아키텍처는 도 5에 관해 상술한 시스템(500)의 아키텍처와 많은 측면에서 유사하고, 이전에 언급되지 않은 추가적인 특징들을 포함할 수 있다.[0080] FIG. 6 illustrates another exemplary enterprise mobile management system 600. Some components of the mobile management system 500 described above with reference to FIG. 5 have been omitted for simplicity. The architecture of system 600 shown in FIG. 6 is similar in many respects to the architecture of system 500 described above with respect to FIG. 5, and may include additional features not previously discussed.

[0081] 이 경우, 좌측은 관리 모바일 디바이스(602) 및 클라이언트 에이전트(604)를 나타내고, 이들은 (액세스 게이트웨이(Access Gateway) 및 앱 제어기(App Controller) 기능을 포함하는) 게이트웨이 서버(606)로 상호 작용을 하여, 우측에 도시된 것과 같은 다양한 기업 자원(608) 및 익스체인지, 쉐어포인트(Sharepoint), PKI 자원, 커버로스(Kerberos) 자원, 인증서 발급 서비스와 같은 서비스(609)를 액세스한다. 세부적으로 도시되지는 않았지만, 관리 모바일 디바이스(602)는 또한 애플리케이션을 선택하고 다운로드하기 위한 기업 애플리케이션 스토어(스토어프론트(StoreFront))와 상호 작용할 수도 있다.In this case, the left side represents the management mobile device 602 and the client agent 604, which are interconnected by a gateway server 606 (including an access gateway and an app controller function) And access services 609 such as various corporate resources 608 as shown on the right and Exchange, Sharepoint, PKI resources, Kerberos resources, and certificate issuing services. Although not shown in detail, the management mobile device 602 may also interact with a corporate application store (StoreFront) for selecting and downloading applications.

[0082] 클라이언트 에이전트(604)는, HDX/ICA 디스플레이 원격 프로토콜을 이용하여 액세스될 수 있는, 기업 데이터 센터에서 호스팅되는 윈도우 앱/데스크탑에 대한 UI(사용자 인터페이스) 매개자(intermediary)로서 동작할 수 있다. 클라이언트 에이전트(604)는 또한 모바일 디바이스(602) 상에, 네이티브 iOS또는 안드로이드 애플리케이션과 같은 네이티브 애플리케이션의 설치 및 관리를 지원한다. 예컨대, 앞선 도면에 도시된 관리 애플리케이션(610)(메일, 브라우저, 래핑 애플리케이션)은 모두 디바이스 상에서 국부적으로 실행되는 네이티브 애플리케이션이다. 클라이언트 에이전트(604) 및 본 아키텍처의 애플리케이션 관리 프레임워크는, 기업 자원/서비스(608)에 대한 연결 및 SSO(single sign on)와 같은 정책 기반 관리 능력 및 특징을 제공하기 위해 동작한다. 클라이언트 에이전트(604)는 기업에 대한, 보통 다른 게이트웨이 서버 컴포넌트에 대해 SSO 및 액세스 게이트웨이(Access Gateway, AG)에 대한 주된 사용자 인증을 처리한다. 클라이언트 에이전트(604)는 모바일 디바이스(602) 상의 관리 애플리케이션(610)의 행위를 제어하기 위해 게이트웨이 서버(606)로부터 정책을 획득한다.[0082] The client agent 604 may act as a user interface (UI) intermediary for a Windows app / desktop hosted in an enterprise data center, which may be accessed using the HDX / ICA display remote protocol . The client agent 604 also supports the installation and management of native applications, such as native iOS or Android applications, on the mobile device 602. For example, the management application 610 (mail, browser, wrapping application) shown in the preceding figures are all native applications that are executed locally on the device. The client agent 604 and the application management framework of this architecture operate to provide policy based management capabilities and features, such as connectivity to enterprise resources / services 608 and single sign on (SSO). The client agent 604 handles the main user authentication to the SSO and the Access Gateway (AG) for the enterprise, usually for other gateway server components. The client agent 604 obtains the policy from the gateway server 606 to control the behavior of the management application 610 on the mobile device 602.

[0083] 네이티브 애플리케이션(610)과 클라이언트 에이전트(604) 사이의 보안 IPC 링크(612)는 관리 채널을 나타내고, 클라이언트 에이전트가, 각각의 애플리케이션을 "래핑하는(wrapping)" 애플리케이션 관리 프레임워크(614)에 의해 시행될 정책을 공급하는 것을 허용한다. IPC 채널(612)은 또한 클라이언트 에이전트(604)가, 기업 자원(608)에 대한 연결 및 SSO를 가능하도록 하는 크리덴셜들 및 인증 정보를 공급하도록 허용한다. 마지막으로, IPC 채널(612)은 애플리케이션 관리 프레임워크(614)가, 온라인 및 오프라인 인증과 같은 클라이언트 에이전트(604)에 의해 구현되는 사용자 인터페이스 기능을 호출하는 것을 허용한다.The secure IPC link 612 between the native application 610 and the client agent 604 represents a management channel and the client agent includes an application management framework 614 that "wraps" each application, To provide a policy to be enforced by. The IPC channel 612 also allows the client agent 604 to supply credentials and authentication information to enable connection to the enterprise resource 608 and SSO. Finally, the IPC channel 612 allows the application management framework 614 to invoke user interface functions implemented by the client agent 604, such as online and offline authentication.

[0084] 클라이언트 에이전트(604)와 게이트웨이 서버(606) 사이의 통신은 필수적으로 각각의 네이티브 관리 애플리케이션(610)을 래핑하는 애플리케이션 관리 프레임워크(614)로부터 관리 채널의 연장이다. 애플리케이션 관리 프레임워크(614)는 클라이언트 에이전트(604)로부터 정책 정보를 요청하고, 다음으로 그것을 게이트웨이 서버(606)로부터 요청한다. 애플리케이션 관리 프레임워크(614)는 인증을 요청하고, 클라이언트 에이전트(604)는 게이트웨이 서버(606)(넷스케일러 액세스 게이트웨이(NetScaler Access Gateway)로도 알려짐)의 게이트웨이 서비스부에 로깅한다. 클라이언트 에이전트(604)는 또한 게이트웨이 서버(606) 상의 서비스를 지원하는 호출을 할 수 있고, 이것은 로컬 데이터 볼트(vault)(616)에 대한 암호화 키를 도출하기 위한 입력 재료를 생성하거나, PKI로 보호되는 자원에 대한 직접 인증을 가능할 수 있도록 하는 클라이언트 인증서를 제공할 수 있으며, 이에 대해서는 더욱 상세하게 후술하도록 한다.[0084] Communication between the client agent 604 and the gateway server 606 is essentially an extension of the management channel from the application management framework 614 that wraps each native management application 610. The application management framework 614 requests policy information from the client agent 604 and then requests it from the gateway server 606. [ The application management framework 614 requests authentication and the client agent 604 logs to the gateway service portion of the gateway server 606 (also known as the NetScaler Access Gateway). The client agent 604 may also make a call supporting the service on the gateway server 606 and may generate an input material to derive an encryption key for the local data vault 616, A client certificate may be provided that allows for direct authentication of the resource being accessed, as will be described in more detail below.

[0085] 더욱 상세하게, 애플리케이션 관리 프레임워크(614)는 각각의 관리 애플리케이션(610)을 "래핑(wraps)"한다. 이것은 명시적인 빌드(build) 단계를 통해 또는 후빌드(post-build) 처리 단계를 통해 통합될 수 있다. 애플리케이션 관리 프레임워크(614)는, 보안 IPC 채널을 초기화하고 애플리케이션에 대한 정책을 획득하기 위해 애플리케이션(610)의 처음 런치 때에 클라이언트 에이전트(604)와 "페어링(pair)"할 수 있다. 애플리케이션 관리 프레임워크(614)는, 클라이언트 에이전트 로긴 의존성 및 로컬 OS 서비스가 사용될 수 있는 방법 또는 이들이 애플리케이션(610)과 상호 작용을 할 수 있는 방법을 제한하는 일부 봉쇄 정책 국부적으로 적용할 수 있는 정책의 관련 부분을 시행할 수 있다.[0085] More specifically, the application management framework 614 "wraps" each management application 610. This can be integrated through an explicit build step or through a post-build processing step. The application management framework 614 may "pair" with the client agent 604 at the initial launch of the application 610 to initialize the secure IPC channel and obtain a policy for the application. The application management framework 614 may include client agent logon dependencies and some containment policies that limit how the local OS services can be used or how they can interact with the application 610. [ The relevant part may be enforced.

[0086] 애플리케이션 관리 프레임워크(614)는, 인증 및 내부 네트워크 액세스를 이용하기 위해 보안 IPC 채널(612)을 통해 클라이언트 에이전트(604)에 의해 제공되는 서비스를 사용할 수 있다. 사설 및 공유된 데이터 볼트(616)(컨테이너)에 대한 키 관리는 또한 관리 애플리케이션(610) 및 클라이언트 에이전트(604) 사이의 적절한 상호 작용에 의해 관리될 수도 있다. 볼트(616)는 온라인 인증 후에만 사용 가능할 수 있거나, 정책에 의해 허용되는 경우 오프라인 인증 후에 사용 가능하도록 이루어질 수 있다. 볼트(616)의 처음 사용은 온라인 인증을 필요로 하고, 오프라인 액세스는 많으면 온라인 인증이 다시 요구되기 전의 정책 리프레시 기간에 제한될 수 있다.[0086] The application management framework 614 may use the services provided by the client agent 604 over the secure IPC channel 612 to utilize authentication and internal network access. Key management for the private and shared data vault 616 (container) may also be managed by appropriate interaction between the management application 610 and the client agent 604. The bolt 616 may be available only after on-line authentication, or may be made available after off-line authentication if allowed by policy. The initial use of the bolt 616 requires on-line authentication, and a large number of off-line accesses may be limited to the policy refresh period before online authentication is again required.

[0087] 내부 자원에 대한 네트워크 액세스는 액세스 게이트웨이(606)를 통해 개개의 관리 애플리케이션(610)으로부터 직접 발생될 수 있다. 애플리케이션 관리 프레임워크(614)는 각각의 애플리케이션(610)에 대해 네트워크 액세스를 조율할 책임이 있다. 클라이언트 에이전트(604)는 이어지는 온라인 인증에서 획득한 이차적인 크리덴셜들에 제한되는 적절한 시간을 제공함으로써 이러한 네트워크 연결을 이용할 수 있다. 역방향 웹 프록시 연결(reverse web proxy connection) 및 종단 VPN 스타일 터널(end-to-end VPN-style tunnel)(618)과 같은 네트워크 연결의 다중 모드가 사용될 수 있다.[0087] Network access to internal resources may be generated directly from the individual management application 610 through the access gateway 606. The application management framework 614 is responsible for coordinating network access for each application 610. The client agent 604 may utilize this network connection by providing an appropriate time limited to secondary credentials obtained in subsequent online authentication. Multiple modes of network connection may be used, such as a reverse web proxy connection and an end-to-end VPN-style tunnel 618.

[0088] 메일 및 브라우저 관리 애플리케이션(610)은 특별한 지위를 가지고, 임의의 래핑 애플리케이션에게 일반적으로 사용 가능하지 않을 수 있는 기능을 사용할 수 있다. 예컨대, 메일 애플리케이션은 특별한 백그라운드 네트워크 액세스 메커니즘을 사용할 수 있고, 이것은 메일 애플리케이션이 완전한 AG 로그온을 필요로 하지 않고 연장된 시간 기간 동안 익스체인지를 액세스할 수 있도록 한다. 브라우저 애플리케이션은 다중 사설 데이터 볼트를 사용하여 서로 다른 종류의 데이터를 분리할 수 있다.[0088] The mail and browser management application 610 may have a special status and may use functions that may not be generally available to any wrapping application. For example, the mail application may use a special background network access mechanism, which allows the mail application to access the exchange for extended periods of time without requiring a complete AG logon. Browser applications can use multiple private data vaults to separate different types of data.

[0089] 이러한 아키텍처는 다양한 다른 보안 특징들의 통합을 지원한다. 예컨대, 일부 경우의 (게이트웨이 서비스를 포함하는) 게이트웨이 서버(606)는 AD 패스워드를 유효화할 필요가 없을 것이다. AD 패스워드가 일부 상황에서 일부 사용자에게 인증 인자로서 사용되는지 여부는 기업의 재량에 달려 있을 수 있다. 사용자가 온라인 또는 오프라인에 있는 경우(즉, 네트워크에 연결 또는 비연결된 경우) 서로 다른 인증 방법들이 사용될 수 있다.[0089] This architecture supports the integration of various other security features. For example, in some cases the gateway server 606 (including the gateway service) will not need to validate the AD password. Whether the AD password is used as an authentication factor for some users in some situations may depend on the discretion of the enterprise. Different authentication methods may be used if the user is online or offline (i.e., connected or disconnected from the network).

[0090] 스텝 업 인증(Step up authentication)은 게이트웨이 서버(606)가, 강한 인증을 필요로 하는 고도로 분류된 데이터에 대한 액세스를 허용하는 관리 네이티브 애플리케이션(610)을 식별하고, 이러한 수단이 이전의 약한 레벨의 로긴 후에 사용자에 의해 재인증이 필요함을 의미한다고 할지라도, 이러한 애플리케이션들에 대한 액세스가 오로지 적절한 인증을 수행한 후에만 허용된다는 점을 보장할 수 있는 특징이다.[0090] Step up authentication allows the gateway server 606 to identify a management native application 610 that allows access to highly classified data requiring strong authentication, It is a feature that ensures that access to these applications is allowed only after proper authentication has been performed, even if the re-authentication is required by the user after a weak level of login.

[0091] 이러한 해결 방안의 다른 보안 특징은 모바일 디바이스(602) 상의 데이터 볼트(616)(컨테이너)의 암호화이다. 볼트(616)는 암호화되어, 파일, 데이터베이스 및 구성을 포함하는 모든 디바이스 상의 데이터가 보호된다. 온라인 볼트에 대해, 키가 서버(게이트웨이 서버(606)) 상에 저장될 수 있고, 오프라인 볼트에 대해, 키의 로컬 복사본이 사용자 패스워드에 의해 보호될 수 있다. 데이터가 보안 컨테이너(616)에서 디바이스(602) 상에 국부적으로 저장된 경우, 최소 AES 256 암호화 알고리즘이 사용되는 것이 바람직하다.[0091] Another security feature of this solution is the encryption of the data vault 616 (container) on the mobile device 602. The vault 616 is encrypted to protect data on all devices, including files, databases, and configurations. For an online vault, a key may be stored on the server (gateway server 606), and for an offline vault, a local copy of the key may be protected by a user password. If data is stored locally on the device 602 in the secure container 616, then a minimum AES 256 encryption algorithm is preferably used.

[0092] 다른 보안 컨테이너 특징이 또한 구현될 수 있다. 예컨대, 로깅 기능이 포함될 수 있고, 애플리케이션(610) 내부에서 일어나는 모든 보안 이벤트는 기록되고 백엔드에 보고된다. 만일 애플리케이션(610)이 훼손을 감지한 경우와 같은 경우, 데이터 지움이 지원될 수 있고, 연관된 암호화 키가 랜덤 데이터로 쓰여질 수 있고, 사용자 데이터가 파괴된 파일 시스템 상에 아무런 힌트도 나기지 않을 수 있다. 스크린샷 보호는, 애플리케이션이 임의의 데이터가 스크린샷에 저장되는 것을 방지할 수 있는 다른 특징이다. 예컨대, 키 윈도우의 숨겨진 속성은 YES로 설정될 수 있다. 이것은 스크린 상에 현재 디스플레이되는 임의의 컨텐트가 숨겨지도록 만들고, 이에 따라 모든 컨텐트가 일반적으로 존재하는 공백 스크린샷을 만든다.[0092] Other security container features may also be implemented. For example, a logging function may be included, and all security events occurring within the application 610 are logged and reported to the backend. If the application 610 detects corruption, data erasure may be supported, the associated encryption key may be written as random data, and the user data may not have any hint on the destroyed file system have. Screen shot protection is another feature that allows an application to prevent arbitrary data from being stored in the screenshot. For example, the hidden attribute of the key window may be set to YES. This causes any content currently displayed on the screen to be hidden, thereby creating a blank screen shot in which all content normally exists.

[0093] 임의의 데이터가, 예컨대 그것을 외부 애플리케이션에 복사 또는 송신함으로써, 애플리케이션 컨테이너의 외부로 국부적으로 전송되는 것을 방지하는 것과 같이, 로컬 데이터 전송이 방지될 수 있다. 키보드 캐시 특징은 민감한 텍스트 필드에 대해 자동 교정 기능을 디스에이블하도록 동작할 수 있다. SSL 인증서 유효화는 애플리케이션이 특별히 서버 SSL 인증서를 키체인에 저장하는 대신에 유효화하도록 동작 가능할 수 있다. 암호화 키 생성 특징은, 디바이스 상의 데이터를 암호화하기 위해 사용되는 키가 (만일 오프라인 액세스가 필요한 경우) 사용자에 의해 공급되는 암호문(passphrase)을 이용하여 생성되도록 사용될 수 있다. 그것은 만일 오프라인 액세스가 불필요한 경우 랜덤하게 생성되고 서버측에 저장된 다른 키와 XOR될 수 있다. 키 도출 함수는 사용자 패스워드로부터 생성된 키가 암호학적인 해시를 생성하는 대신에 KDF(키 도출 함수, 특히 PBKDF2)를 사용하도록 동작할 수 있다. 후자는 키를 브루트 포스(brute force) 또는 딕셔너리 공격(dictionary attack)에 취약하도록 만든다.[0093] Local data transmission can be prevented, such as by preventing any data from being transmitted locally to the outside of the application container, eg, by copying or transmitting it to an external application. The keyboard cache feature may be operable to disable the auto-correction function for sensitive text fields. SSL certificate validation may be operable to enable an application to specifically validate server SSL certificates instead of storing them in the keychain. The encryption key generation feature can be used to generate a key that is used to encrypt data on the device (if offline access is required) using a passphrase supplied by the user. It can be XORed with other keys randomly generated and stored on the server side if offline access is unnecessary. The key derivation function may operate to use a KDF (key derivation function, in particular PBKDF2) instead of generating a cryptographic hash from the user password. The latter makes the key vulnerable to brute force or dictionary attack.

[0094] 또한, 하나 이상의 초기화 벡터가 암호화 방법에 사용될 수 있다. 초기화 벡터는 동일한 암호화된 데이터의 다중 복사본을 생성하여 서로 다른 암호문 출력을 생성하고, 재생 및 암호 해독 공격을 모두 방지한다. 이것은 또한 공격자가, 데이터를 암호화하기 위해 사용된 구체적인 초기 벡터가 알려지지 않은 경우 도난된 암호화 키로 어떤 데이터든 해독하는 것 까지도 방지할 수 있다. 또한, 인증 후 해독이 사용될 수 있고, 애플리케이션 데이터는 사용자가 애플리케이션 내에서 인증된 후에만 해독될 수 있다. 다른 특징이 메모리의 민감한 데이터에 관련될 수 있고, 필요한 경우에 한해 (디스크가 아닌) 메모리에 유지될 수 있다. 예컨대, 로긴 크리덴셜들은 로긴 후 메모리로부터 제거되고, 오브젝티브 C 인스턴스 변수들 내부의 암호화 키 및 다른 데이터는 쉽게 참조될 수 있기 때문에 저장되지 않는다. 대신에, 메모리는 이들에 대해 수동적으로 할당될 수 있다.[0094] Also, one or more initialization vectors may be used for the encryption method. The initialization vector generates multiple copies of the same encrypted data to generate different ciphertext outputs and prevents both playback and decryption attacks. This also prevents an attacker from decrypting any data with a stolen encryption key if the concrete initial vector used to encrypt the data is not known. In addition, post-authentication decryption can be used and the application data can only be decrypted after the user is authenticated in the application. Other features may be related to sensitive data in the memory, and may be retained in memory only (if not in the disk) as needed. For example, loggin credentials are removed from memory after login, and encryption keys and other data within Objective C instance variables are not stored because they can be easily referenced. Instead, the memory can be manually assigned to them.

[0095] 비활성 타임아웃이 구현될 수 있고, 정책적으로 정의된 기간의 비활성 이후 사용자의 세션은 종료된다.[0095] An inactivity timeout may be implemented, and the user's session is terminated after the inactivity of the policy-defined period.

[0096] 애플리케이션 관리 프레임워크(614)로부터의 데이터 유출은 다른 방식으로 방지될 수 있다. 예컨대, 애플리케이션(610)이 백그라운드로 들어간 경우, 메모리는 소정의(설정 가능한) 시간 이후에 삭제될 수 있다. 백그라운드된 경우, 포그라운드 프로세스를 고정하기 위해 애플리케이션의 최종 표시 화면의 스냅샷이 찍힐 수 있다. 스크린샷은 기밀 데이터를 포함하고 있을 수 있으므로 제거되어야 한다.[0096] Data leaks from the application management framework 614 may be prevented in other manners. For example, when the application 610 enters the background, the memory may be deleted after a predetermined (configurable) time period. In the background, a snapshot of the application's final display screen may be taken to freeze the foreground process. Screenshots may contain confidential data and should be removed.

[0097] 다른 보안 특징은 하나 이상의 애플리케이션에 액세스하기 위해 AD(active directory)(622) 패스워드의 사용 없이 OTP(one time password)(620)의 사용에 관련된다. 일부의 경우에, 일부 사용자는 그들의 AD 패스워드를 알지 못한다(또는 아는 것이 허용되지 않는다). 따라서 이들 사용자들은 SecurID와 같은 하드웨어 OTP 시스템을 이용하는 것과 같이 OTP(620)를 이용하여 인증을 할 수 있다(OTP는 Entrust 또는 Gemalto와 같은 서로 다른 제조사에 의해 공급될 수 있다). 일부의 경우에, 사용자가 사용자 ID로 인증을 한 후, 텍스트는 OTP(620)으로 사용자에게 송신된다. 일부 경우에, 이것은 오로지 단일 필드가 있는 프롬프트를 포함하는 온라인 사용에 대해서만 구현될 수 있다.[0097] Another security feature relates to the use of one time password (OTP) 620 without the use of an active directory (AD) 622 password to access one or more applications. In some cases, some users do not (or are not allowed to) know their AD password. Thus, these users can authenticate using the OTP 620, such as using a hardware OTP system such as SecurID (the OTP can be supplied by different manufacturers such as Entrust or Gemalto). In some cases, after the user authenticates with the user ID, the text is sent to the user at OTP 620. In some cases, this can only be implemented for online use that includes prompts with a single field.

[0098] 오프라인 패스워드는, 오프라인 사용이 기업 정책을 통해 허용되는, 이들 애플리케이션(610)에 대한 오프라인 인증에 대해 구현될 수 있다. 예컨대, 기업은 스토어프론트(StoreFront)가 이러한 방식으로 액세스되는 것을 원할 수 있다. 이 경우에, 클라이언트 에이전트(604)는 사용자가 커스텀 오프라인 패스워드를 설정하고 AD 패스워드는 사용되지 않도록 요청할 수 있다. 게이트웨이 서버(606)는, 표준 윈도우 서버 패스워드 복잡도 요구사항에 의해 설명되는 바와 같은, 최소 길이, 문자 클래스 구성, 패스워드의 연령에 관한 패스워드 기준을 제어 및 시행하기 위한 정책을 제공할 수 있고, 이들 요구사항은 변경될 수 있다.[0098] Offline passwords may be implemented for offline authentication for these applications 610, where offline use is allowed through corporate policies. For example, an enterprise may want StoreFront to be accessed in this manner. In this case, the client agent 604 may request that the user set a custom offline password and that the AD password is not used. The gateway server 606 may provide policies for controlling and enforcing password criteria for the minimum length, character class configuration, age of passwords as described by standard Windows server password complexity requirements, The matter may change.

[0090] 다른 특징은 (애플리케이션 관리 프레임워크 마이크로 VPN기능을 통해 PKI로 보호된 웹 자원을 액세스하기 위한 목적의) 이차적인 크리덴셜들으로서 특정 애플리케이션(610)에 대한 클라이언트 측 인증서의 가능화(enablement)에 관련된다. 예컨대, @WorkMail과 같은 애플리케이션은 이러한 인증서를 이용할 수 있다. 이 경우에, 액티브싱크(ActiveSync) 프로트콜을 이용하는 인증서 기반의 인증이 지원될 수 있고, 클라이언트 에이전트(604)로부터의 인증서는 게이트웨이 서버(606)에 의해 검색되어 키체인에서 사용될 수 있다. 각각의 관리 애플리케이션은, 게이트웨이 서버(606)로 정의되는 라벨에 의해 식별되는 하나의 연관된 클라이언트 인증서를 가질 수 있다.[0090] Another feature is the ability to enable client-side certificates for a particular application 610 as secondary credentials (for purposes of accessing PKI-protected web resources via the application management framework micro VPN function) ). For example, applications such as @WorkMail can use these certificates. In this case, certificate based authentication using the ActiveSync protocol may be supported, and the certificate from the client agent 604 may be retrieved by the gateway server 606 and used in the keychain. Each management application may have an associated client certificate identified by a label defined by the gateway server 606. [

[00100] 게이트웨이 서버(606)는 기업 특별 용도의 웹 서비스와 상호 작용하여 클라이언트 인증서의 발행을 지원하여 관련된 관리 애플리케이션이 내부의 PKI 보호 자원에 인증하는 것을 허용할 수 있다.[00100] The gateway server 606 may interact with a corporate-specific web service to support the issuance of client certificates to allow an associated management application to authenticate to internal PKI protected resources.

[00101] 클라이언트 에이전트(604) 및 애플리케이션 관리 프레임워크(614)는 내부의 PKI 보호된 네트워크 자원에 인증하기 위한 클라이언트 인증서를 획득 및 사용하는 것을 지원하기 위해 강화될 수 있다. 다양한 레벨의 보안 및/또는 분리 요구사항을 맞추기 위해, 2 이상의 인증서가 지원될 수 있다. 인증서는 메일 및 브라우저 관리 애플리케이션에 의해, 그리고 궁극적으로 임의의 래핑 애플리케이션에 의해 사용될 수 있다(이들 애플리케이션은, https 요청을 중재하기 위한 애플리케이션 관리 프레임워크에 합리적인, 웹 서비스 스타일 통신 패턴을 이용할 수 있다).[00101] The client agent 604 and application management framework 614 may be enhanced to support obtaining and using a client certificate for authenticating to an internal PKI protected network resource. In order to meet various levels of security and / or separation requirements, more than one certificate may be supported. Certificates can be used by mail and browser management applications, and ultimately by any wrapping application (these applications can use web services style communication patterns, which is reasonable for application management frameworks to mediate https requests) .

[00102] iOS 상에서 애플리케이션 관리 클라이언트 인증서 지원은 PKCS 12 BLOB(Binary Large Object)를 각각의 사용 기간에 대해 각각의 관리 애플리케이션의 iOS 키체인에 임포트(import)하는 것에 의존할 수 있다. 애플리케이션 관리 프레임워크 클라이언트 인증서 지원은 사설 인-메모리(in-memory) 키 스토리지와 함께 HTTPS 구현을 이용할 수 있다. 클라이언트 인증서는 iOS 키체인에서는 절대로 존재하지 않을 것이고, 잠재적으로 강하게 보호되는 "온라인 전용(online-only)" 데이터 값에 있는 경우를 제외하고는 지속되지 않을 것이다.[00102] Application management client certificate support on iOS may rely on importing a PKCS 12 Binary Large Object (BLOB) into the iOS keychain of each management application for each usage period. Application management framework Client certificate support can take advantage of the HTTPS implementation with private in-memory key storage. Client certificates will never exist in the iOS keychain, and will not last except in potentially strongly protected "online-only" data values.

[00103] 상호 SSL은 또한 모바일 디바이스(602)가 기업에 인증하는 것 및 그 반대의 경우를 요구함으로써 추가적인 보안을 제공하도록 구현될 수 있다. 게이트웨이 서버(606)에 대한 인증을 위한 가상 스마트 카드 또한 구현될 수 있다.[00103] The inter-SSL may also be implemented to provide additional security by requiring the mobile device 602 to authenticate to the enterprise and vice versa. A virtual smart card for authentication to the gateway server 606 may also be implemented.

[00104] 제한된 그리고 전체 Kerberos 지원은 추가 특징들일 수 있다. 전체 지원 특징은 AD 패스워드 또는 트러스티드 클라이언트 인증서를 사용하여 AD(622)에 대해 전체 Kerberos 로그인을 수행하고 HTTP Negotiate 인증 난제들에 응답하기 위하여 Kerberos 서비스 티켓들을 획득하는 능력과 관련된다. 제한된 지원 특징은 AFEE에서의 강제 위임(constrained delegation)과 관련되며, 여기서 AFEE는 Kerberos 프로토콜 전환을 인보크하는 것을 지원하며, 따라서 이는 HTTP Negotiate 인증 난제들에 응답하여 (강제 위임 대상인) Kerberos 서비스 티켓들을 획득하여 사용할 수 있다. 이러한 메커니즘은 리버스 웹 프록시(CVPN으로도 지칭됨) 모드에서 그리고 http(https가 아님) 연결들이 VPN 및 마이크로 VPN 모드에서 프록시될 때 작동한다. [00104] Limited and full Kerberos support may be additional features. The full support feature relates to the ability to perform a full Kerberos login to the AD 622 using an AD password or a trusted client certificate and to obtain Kerberos service tickets to respond to HTTP Negotiate authentication challenges. The limited support feature relates to constrained delegation in the AFEE, where AFEE supports invoking the Kerberos protocol conversion, so it can be used to send Kerberos service tickets (mandatory delegation) in response to HTTP Negotiate authentication challenges Can be obtained and used. This mechanism works in reverse web proxy (also called CVPN) mode and when http (not https) connections are proxied in VPN and micro VPN mode.

[00105] 다른 특징은 애플리케이션 컨테이너 로킹 및 지움과 관련되며, 이는 자일-브레이크(jail-break) 또는 루팅 검출시 자동적으로 발생하며 관리 콘솔로부터 푸시 커맨드로서 발생할 수 있으며 그리고 애플리케이션(610)이 실행되지 않을 때 조차 원격 지움 기능을 포함할 수 있다. [00105] Another feature relates to application container locking and erasing, which occurs automatically upon jail-break or routing detection and can occur as a push command from the management console, and the application 610 may not be executed Even when it is possible to include remote wipe function.

[00106] StoreFront 및 App 제어기의 멀티-사이트 아키텍처 또는 구성이 지원될 수 있으며, 이는 사용자들로 하여금 실패의 경우에 여러 상이한 위치들 중 하나의 위치로부터 서비스받도록 한다.[00106] A multi-site architecture or configuration of StoreFront and App controllers may be supported, which allows users to be served from one of several different locations in case of failure.

[00107] 일부 경우들에서, 관리 애플리케이션들(610)은 API(예컨대, OpenSSL)를 통해 인증서 및 개인 키에 액세스하도록 허용될 수 있다. 기업의 트러스티드 관리 애플리케이션들(610)은 애플리케이션의 클라이언트 인증서 및 개인 키를 사용하여 특정 공개 키 동작들을 수행하도록 허용될 수 있다. 예컨대, 애플리케이션이 브라우저와 같이 동작하며 인증서 액세스가 요구되지 않을 때, 애플리케이션이 "나는 누구인가"에 대한 인증서를 판독할 때, 애플리케이션이 보안 세션 토큰을 구축하기 위하여 인증서를 사용할 때, 그리고 애플리케이션이 중요한 데이터에 대한 디지털 서명(예컨대, 트랜잭션 로그) 또는 일시적 데이터 암호화를 위해 개인 키들을 사용할 때, 다양한 사용의 경우들이 식별되어 처리될 수 있다. [00107] In some cases, management applications 610 may be allowed to access the certificate and private key via an API (e.g., OpenSSL). The enterprise's trusted management applications 610 may be allowed to perform certain public key operations using the application's client certificate and private key. For example, when an application acts as a browser and does not require certificate access, when an application reads a certificate for "who am I", when an application uses a certificate to establish a secure session token, When using private keys for digital signatures (e.g., transaction logs) or temporary data encryption of data, a variety of use cases can be identified and processed.

[00108] 예시적인 실시예(들)[00108] The exemplary embodiment (s)

[00109] 도 7은 모바일 디바이스의 샘플 인터페이스를 예시하며, 도 8-14는 애플리케이션에 대한 동작 모드를 결정하기 위한 방법들의 샘플 실시예들을 예시한다. 도 8-14에 도시된 방법들은 다양한 실시예들에서 임의의 적절한 방식으로 결합될 수 있다. 도 7에 도시된 샘플 인터페이스는 디바이스(107, 109, 240, 502 및/또는 602)와 같은 모바일 디바이스상에서 디스플레이될 수 있으며, 도 8-14에 도시된 방법들은 이러한 모바일 디바이스에 의해 구현될 수 있다.[00109] FIG. 7 illustrates a sample interface of a mobile device, and FIGS. 8-14 illustrate sample embodiments of methods for determining an operational mode for an application. The methods shown in Figs. 8-14 may be combined in any suitable manner in various embodiments. The sample interface shown in Figure 7 may be displayed on a mobile device such as devices 107, 109, 240, 502 and / or 602, and the methods shown in Figures 8-14 may be implemented by such mobile device .

[00110] 도 8에서, 애플리케이션에 대한 애플리케이션 모드를 결정하기 위한 예시적인 방법 단계들의 흐름도가 도시된다. 도 8의 방법은 단계(802)에서 시작할 수 있으며, 단계(802)에서 복수의 애플리케이션들이 제시된다. 예컨대, 복수의 애플리케이션들이 모바일 디바이스상에서 사용자에게 제시될 수 있다. 도 7은 모바일 디바이스(예컨대, 태블릿, 스마트폰 등)상에 디스플레이되는 사용자 인터페이스(700)가 애플리케이션들 A(700), B(701), C(702) 및 E(703)을 사용자에게 제시하는 실시예를 예시한다. 이는 단순히 예이며, 복수의 애플리케이션들이 임의의 적절한 방식으로 제시될 수 있다. 일 실시예에서, 복수의 애플리케이션들은 이메일 애플리케이션들, 웹 브라우징, 애플리케이션들, SaaS(software-as-a-service) 액세스 애플리케이션들 등을 포함할 수 있다.[00110] In FIG. 8, a flow diagram of exemplary method steps for determining an application mode for an application is shown. The method of FIG. 8 may begin at step 802, where a plurality of applications are presented at step 802. For example, a plurality of applications may be presented to a user on a mobile device. Figure 7 illustrates a user interface 700 that is displayed on a mobile device (e.g., a tablet, smart phone, etc.) that presents applications A 700, B 701, C 702 and E 703 to the user An embodiment is illustrated. This is merely an example, and a plurality of applications can be presented in any suitable manner. In one embodiment, the plurality of applications may include email applications, web browsing, applications, software-as-a-service (SaaS) access applications, and the like.

[00111] 도 8의 방법은 단계(802)로부터 단계(804)로 진행할 수 있으며, 단계(804)에서, 복수의 애플리케이션들 중 하나의 애플리케이션에 대한 선택이 수신된다. 도 7에 도시된 실시예를 참조하여, 모바일 디바이스의 사용자는 예컨대 모바일 디바이스의 디스플레이를 눌러서 애플리케이션을 선택함으로써, 제시된 애플리케이션들 중 하나를 선택할 수 있다. 이는 단순히 예이며, 애플리케이션은 이의의 적절한 방식으로 선택될 수 있다.[00111] The method of FIG. 8 may proceed from step 802 to step 804, and at step 804, a selection for one of a plurality of applications is received. With reference to the embodiment shown in FIG. 7, a user of the mobile device can select one of the presented applications, for example, by pressing the display of the mobile device to select the application. This is merely an example, and the application may be selected in an appropriate manner.

[00112] 도 8의 방법은 단계(804)로부터 단계(806)로 진행할 수 있으며, 단계(806)에서, 선택된 애플리케이션들에 대한 컨텍스트는 선택된 애플리케이션을 실행하는 디바이스의 하나 이상의 동작 파라미터들에 기초하여 결정된다. 예컨대, 컨텍스트는 애플리케이션에 의해 액세스될 계정, 모바일 디바이스의 위치 또는 애플리케이션을 실행하는 모바일 디바이스의 네트워크 연결 상태에 기초할 수 있거나 또는 임의의 다른 동작 파라미터에 기초할 수 있다. 이하에서 추가로 설명된 도 9-13의 방법들은 예시적인 컨텍스트들이 설명되는 다양한 실시예들을 예시한다.[00112] The method of FIG. 8 may proceed from step 804 to step 806, where at step 806, the context for the selected applications may be determined based on one or more operating parameters of the device executing the selected application . For example, the context may be based on the account to be accessed by the application, the location of the mobile device, or the network connection state of the mobile device executing the application, or may be based on any other operational parameter. The methods of FIGS. 9-13 further described below illustrate various embodiments in which the exemplary contexts are described.

[00113] 도 8의 방법은 단계(804)로부터 단계(806)로 진행할 수 있으며, 단계(806)에서, 선택된 애플리케이션에 대한 동작 모드는 컨텍스트에 기초하여 결정된다. 일 실시예에서, 동작 모드들은 예컨대 사용자가 직장-관련 활동을 수행할지 개인 활동을 수행할지의 경우에 대한 디바이스의 업무 모드 및 비업무 모드를 각각 나타내는 관리 모드 및 비관리 모드를 포함할 수 있다. 업무 모드는 기업 자원들에 대한 액세스를 제공할 수 있으며, 하나 이상의 콘텐츠 필터들 및/또는 제약들을 포함할 수 있는 반면에, 비업무 모드는 단지 비기업 관련 자원들에만 액세스를 허용하는 콘텐츠 필터들/제약들(또는 이 콘텐츠 필터들/제약들이 없음) 및/또는 정책들(또는 비정책)을 적용할 수 있다. [00113] The method of FIG. 8 may proceed from step 804 to step 806, and at step 806, the mode of operation for the selected application is determined based on the context. In one embodiment, the operating modes may include a management mode and an unmanaged mode, respectively, which represent a business mode and a non-business mode of the device, respectively, for example when the user performs job-related activities or personal activities. The business mode may provide access to corporate resources and may include one or more content filters and / or constraints, while the non-business mode may include content filters / Constraints (or no such content filters / constraints) and / or policies (or non-policy).

[00114] 게다가, 예컨대 사용자에 의해 제공된 크리덴셜들의 세트들 또는 다양한 사용자들의 상이한 보안 레벨들, 크리덴셜들의 세트에 의해 식별된 상이한 사용자 역할들(예컨대, 관리자 대 직원 종업원들), 디바이스가 동작하는 지리적 위치들, 네트워크 위치들, 동작 환경(예컨대, 헬스케어-관련 관리 모드 대 금융 산업 관리 모드)에 기초하여 또는 임의의 다른 맥락 결정에 기초하여 상이한 관리 모드들이 존재할 수 있다. 일부 모드들은 다수의 컨텍스트들, 예컨대 위치 및 역할에 기초할 수 있다. 하나의 이러한 조합에서, 제 1 관리 모드는 헬스케어 제공자에 적용가능한 정책들을 제공할 수 있는 반면에, 제 2 관리 모드는 환자에 적용가능한 정책들을 적용할 수 있다. 2명의 사용자들 사이에서 디바이스가 전달되기 때문에, 사용자(또는 사용자 행동에 기초한 소프트웨어)는 디바이스가 상이한 역할을 가진 사용자에게 전달될 때 모드 변화를 개시할 수 있다. 새로운 사용자는 예컨대 더 보안적인 모드로 변화할 때 모드들을 변경하도록 적절한 크리덴셜들로 진입하도록 요구받을 수 있다. 헬스케어 제공자 모드는 다양한 환자 기록들, 자원들, 스케줄링 세부사항들, 금용 기록들 및 다른 정보에 대한 액세스를 제공할 수 있는 반면에, 환자 모드는 예컨대 HIPPA 및 다른 사생활 고려사항들에 기초하여 그 환자의 정보에만 제한될 수 있다. 문맥적 결정들의 다른 조합들이 또한 사용될 수 있다. [00114] In addition, it is possible to use different sets of credentials, such as sets of credentials provided by a user or different security levels of various users, different user roles (eg, manager-to-employee employees) identified by a set of credentials, Different management modes may exist based on geographic locations, network locations, operational environment (e.g., healthcare-related management mode versus financial industry management mode) or based on any other context determination. Some modes may be based on multiple contexts, e.g., location and role. In one such combination, the first management mode may provide policies applicable to the healthcare provider, while the second management mode may apply policies applicable to the patient. Because the device is delivered between two users, the user (or software based on user behavior) can initiate a mode change when the device is delivered to a user with a different role. A new user may be required to enter appropriate credentials to change modes, for example, when changing to a more secure mode. The healthcare provider mode may provide access to a variety of patient records, resources, scheduling details, financial records and other information, while a patient mode may provide access to various patient records, resources, scheduling details, It may be limited to patient information only. Other combinations of contextual determinations may also be used.

[00115] 일 실시예에서, 결정된 컨텍스트는 동작 모드를 결정하기 위하여, 저장된 정책과 비교될 수 있다. 모바일 디바이스(502)와 같은 모바일 디바이스는 애플리케이션에 대한 동작 모드를 결정하기 위하여 사용되는 하나 이상의 정책들을 저장할 수 있다. 일 실시예에서, 정책들은 예컨대 도 5를 참조로 하여 앞서 설명된 정책 관리자(570)에 원격적으로 저장될 수 있거나 또는 디바이스상에 국부적으로 저장될 수 있다. 일례로, 컨텍스트는 보안 계정에 액세스하도록 구성된 선택된 애플리케이션, 예컨대 보안 이메일 계정에 액세스하도록 구성된 이메일 애플리케이션을 포함할 수 있다. 이러한 컨텍스트는 저장된 정책과 비교될 수 있다. 예컨대, 저장된 정책은 보안 이메일 계정에 액세스하도록 구성되는 이메일 애플리케이션이 관리 애플리케이션으로서 실행되어야 함을 정의할 수 있다. 저장된 정책은 디바이스 사용자의 개인 계정에 액세스하도록 구성될 때 이메일 애플리케이션이 비관리 모드에서 동작중일 수 있음을 추가로 표시할 수 있다. 추가 컨텍스트들 및 정책들은 도 9-13과 관련하여 설명될 것이다.[00115] In one embodiment, the determined context may be compared with a stored policy to determine the mode of operation. A mobile device, such as mobile device 502, may store one or more policies used to determine the mode of operation for the application. In one embodiment, the policies may be remotely stored, for example, in the policy manager 570 described above with reference to FIG. 5, or may be stored locally on the device. In one example, the context may include a selected application configured to access a secure account, e.g., an email application configured to access a secure email account. This context can be compared to stored policies. For example, a stored policy may define that an email application configured to access a secure email account should be run as a management application. The stored policy may further indicate that the email application may be operating in unmanaged mode when configured to access the device user's personal account. Additional contexts and policies will be described with respect to Figs. 9-13.

[00116] 도 8의 방법은 단계(806)로부터 단계(808)로 진행할 수 있으며, 단계(808)에서, 선택된 애플리케이션은 결정된 동작 모드로 실행된다. 예컨대, 동작 모드는 비관리 모드로서 결정될 수 있거나 또는 다수의 관리 모드들 중 하나의 모드로서 결정될 수 있으며, 선택된 애플리케이션은 결정된 모드로 실행될 수 있다. [00116] The method of FIG. 8 may proceed from step 806 to step 808, where, at step 808, the selected application is executed in a determined mode of operation. For example, the operating mode may be determined as an unmanaged mode, or may be determined as one of a plurality of management modes, and the selected application may be executed in the determined mode.

[00117] 일 실시예에서, 관리 동작 모드는 도 5를 참조로 하여 앞서 설명된 바와같이 모바일 디바이스(502)의 관리 파티션(510)의 부분으로서 애플리케이션을 실행하는 것을 포함할 수 있다. 따라서, 관리 애플리케이션은 보안 네이티브 애플리케이션들(514), 보안 애플리케이션 론처(518)에 의해 실행되는 보안 원격 애플리케이션들(522), 보안 애플리케이션 론처(518)에 의해 실행되는 가상화 애플리케이션들(526) 등으로서 실행될 수 있다.[00117] In one embodiment, the management mode of operation may include running the application as part of the management partition 510 of the mobile device 502 as described above with reference to FIG. Accordingly, the management application may be executed as secure native applications 514, secure remote applications 522 executed by the security application launcher 518, virtualized applications 526 executed by the secure application launcher 518, .

[00118] 일 실시예에서, 관리 모드로 실행되는 애플리케이션은 모바일 디바이스의 관리 파티션(510)(물리적, 논리적 또는 가상 파티션)의 보안 데이터 컨테이너(528)에 저장된 데이터에 액세스할 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 특정 보안/관리 애플리케이션(530)에 제약되는 데이터, 다른 보안/관리 애플리케이션들 등 사이에서 공유되는 데이터 등을 포함할 수 있다. 보안 애플리케이션에 제약된 데이터는 보안 범용 데이터(534) 및 고보안 데이터(538)를 포함할 수 있다. 상이한 레벨들 및 타입들의 보안 특징들은 보안 데이터의 레벨들을 구별하기 위하여 사용될 수 있다. 일 실시예에서, 관리 모드로 실행되는 애플리케이션은 보안 데이터 컨테이너(528)의 데이터를 세이브하거나 수정하거나 또는 제거할 수 있다. 세이브되거나 또는 수정된 데이터는 보안 데이터 컨테이너(528)에 저장된 다른 데이터와 유사하게 암호화될 수 있다.[00118] In one embodiment, an application running in the management mode may access data stored in the secure data container 528 of the management partition (physical, logical or virtual partition) 510 of the mobile device. Data stored in secure data container 528 may include data constrained to specific security / management application 530, data shared among other security / management applications, and the like. The data constrained to the security application may include security generic data 534 and high security data 538. The security features of the different levels and types may be used to distinguish the levels of security data. In one embodiment, an application running in the management mode may save, modify, or remove data in the secure data container 528. [ The saved or modified data may be encrypted similar to other data stored in secure data container 528. [

[00119] 일 실시예에서, 관리 모드로 실행되는 애플리케이션은 도 5와 관련하여 앞서 설명된 바와같이 가상 사설 네트워크 연결들을 통해 기업 자원들(504) 및 기업 서비스들(508)에 연결될 수 있다. 가상 사설 네트워크 연결들은 특정 애플리케이션, 예컨대 선택된 애플리케이션, 특정 디바이스들, 모바일 디바이스상의 특정 보안 영역들 등에 특정한 마이크로 VPN들일 수 있다. 예컨대, 폰의 보안 영역의 래핑된 애플리케이션들은 애플리케이션 특정 VPN를 통해 기업 자원들에 액세스할 수 있으며, 따라서 VPN에 대한 액세스는 가능한 경우에 사용자 또는 디바이스 속성 정보 및 정책 정보와 함께 애플리케이션과 연관된 속성들에 기초하여 승인될 것이다.[00119] In one embodiment, an application running in the management mode may be connected to enterprise resources 504 and enterprise services 508 via virtual private network connections as described above in connection with FIG. Virtual private network connections may be specific micro VPNs for a particular application, such as a selected application, specific devices, specific security areas on a mobile device, and so on. For example, applications wrapped in the security zone of the phone can access enterprise resources via an application specific VPN, so that access to the VPN is possible with attributes associated with the application, along with user or device attribute information and policy information, Will be approved on a basis.

[00120] 일 실시예에서, 관리 모드로 실행되는 애플리케이션은 애플리케이션으로부터 전송된 데이터를 암호화할 수 있다. 예컨대, 관리 모드로 실행되는 애플리케이션은 네트워크를 통해 컴퓨팅 디바이스와 통신할 수 있으며, 애플리케이션으로부터 디바이스로 전송된 데이터는 암호화될 수 있다. 게다가, 컴퓨팅 디바이스로부터 애플리케이션으로 통신된 데이터가 또한 암호화될 수 있으며, 관리 모드로 실행되는 애플리케이션은 수신된 데이터를 암호해독하도록 구성될 수 있다.[00120] In one embodiment, an application running in the management mode may encrypt data transmitted from the application. For example, an application running in the management mode can communicate with the computing device via the network, and the data transferred from the application to the device can be encrypted. In addition, data communicated from the computing device to the application may also be encrypted, and an application running in the management mode may be configured to decrypt the received data.

[00121] 일 실시예에서, 관리 모드로 실행되는 애플리케이션은 보안 포털에 액세스할 수 있다. 예컨대, 애플리케이션은 네트워크, 예컨대 마이크로 VPN를 통해 컴퓨팅 디바이스에 연결할 수 있으며, 비관리 모드로 실행되는 애플리케이션들과 같은 비보안 애플리케이션들에 의해 액세스되지 않을 수 있는 보안 포털에 액세스할 수 있다. [00121] In one embodiment, an application running in the management mode can access the secure portal. For example, an application may connect to a computing device via a network, e.g., a micro VPN, and may access a security portal that may not be accessed by non-security applications, such as applications running in an unmanaged mode.

[00122] 일 실시예에서, 비관리 동작 모드는 도 5와 관련하여 앞서 설명된 바와같이 모바일 디바이스(502)의 비관리 파티션(512)(물리적, 논리적 또는 가상 파티션)의 부분으로서 애플리케이션을 실행하는 것을 포함할 수 있다. 비관리 모드에서, 애플리케이션은 모바일 디바이스((502)의 비관리 파티션(512)상의 비보안 데이터 컨테이너(542)에 저장된 데이터에 액세스할 수 있다. 비보안 데이터 컨테이너에 저장된 데이터는 개인 데이터(544)일 수 있다.[00122] In one embodiment, the unmanaged mode of operation is to run the application as part of the unmanaged partition 512 (physical, logical, or virtual partition) of the mobile device 502, as described above with respect to FIG. 5 ≪ / RTI > In an unmanaged mode, an application may access data stored in an insecure data container 542 on an unmanaged partition 512 of the mobile device 502. The data stored in the insecure data container may be personal data 544 have.

[00123] 일 실시예에서, 2개 이상의 관리 모드가 가능한 경우에, 덜 보안적인 관리 모드로 실행되는 애플리케이션은 더 보안적인 관리 모드로 실행되는 애플리케이션과 유사하게 실행될 수 있으나 후자의 모든 양상들을 포함하지 않을 수 있다. 예컨대, 도 5를 참조로하여 기술된 바와같이, 덜 보안적인 관리 모드로 실행되는 애플리케이션은 정보가 암호화된 네트워크를 통해 애플리케이션으로부터 전송되게 할 수 있으나, 애플리케이션은 보안 데이터 컨테이너(528)에 액세스하지 못할 수 있다. 다른 예에서, 덜 보안적인 관리 모드로 실행되는 애플리케이션은 보안 데이터 컨테이너(528)에 대해 액세스할 수 있으나, 가상 사설 네트워크 연결들을 통해 기업 자원들(504) 및 기업 서비스들(508)에 연결하지 못할 수 있다. 따라서, 결정된 컨텍스트에 따라, 덜 보안적인 관리 모드로 실행되는 애플리케이션은 더 보안적인 관리 모드로 실행되는 애플리케이션의 양상들 및 비관리 모드로 실행되는 애플리케이션의 양상들을 포함할 수 있다.[00123] In one embodiment, where two or more management modes are possible, an application running in a less secure management mode may be executed similar to an application running in a more secure management mode, but not all aspects of the latter . For example, as described with reference to FIG. 5, an application running in a less secure management mode may cause information to be transmitted from the application over the encrypted network, but the application may not be able to access the secure data container 528 . In another example, an application running in a less secure management mode may access the secure data container 528, but may not be able to connect to enterprise resources 504 and enterprise services 508 via virtual private network connections . Thus, depending on the determined context, an application running in a less secure administrative mode may include aspects of an application running in a more secure administrative mode and aspects of an application running in an unmanaged mode.

[00124] 도 9-13에서, 애플리케이션에 대한 컨텍스트 및 동작 모드를 결정하기 위한 예시적인 방법 단계들의 흐름도들이 도시된다. 일 실시예에서, 도 8의 단계들(806 및 808)은 도 9-13 중 어느 하나 이상의 도면의 방법 단계들을 포함할 수 있다. 도 9의 방법은 단계(902)에서 시작하며, 단계(902)에서, 선택된 애플리케이션에 의해 액세스될 계정이 검출된다. 예컨대, 선택된 애플리케이션은 이메일 애플리케이션을 포함할 수 있으며, 이메일 애플리케이션이 액세스하도록 구성되는 이메일 계정이 검출될 수 있다. 이러한 예에서, 이메일 애플리케이션은 다수의 이메일 계정들, 예컨대 기업 이메일 계정 및 개인 이메일 계정에 액세스할 수 있을 것이며, 이메일 애플리케이션이 실행시에 액세스하도록 구성되는 계정은 액세스될 컨텍스트 계정으로 결정될 수 있다. [00124] In Figures 9-13, flowcharts of exemplary method steps for determining the context and mode of operation for an application are shown. In one embodiment, steps 806 and 808 of FIG. 8 may include the method steps of any one or more of FIGS. 9-13. The method of FIG. 9 begins at step 902, and at step 902, an account to be accessed by the selected application is detected. For example, the selected application may include an email application, and an email account configured to access the email application may be detected. In this example, the email application will be able to access a number of email accounts, such as a corporate email account and a personal email account, and the account configured to access the email application at run time can be determined to be a context account to be accessed.

[00125] 도 9의 방법은 단계(902)로부터 단계(904)로 진행할 수 있으며, 단계(904)에서, 액세스될 계정의 계정 타입이 결정될 수 있다. 계정 타입은 선택된 애플리케이션에 대한 컨텍스트를 포함할 수 있다. 예컨대, 선택된 애플리케이션은 이메일 애플리케이션을 포함할 수 있으며, 이메일 애플리케이션은 기업 계정에 액세스하도록 구성될 수 있다. 다른 예에서, 이메일 애플리케이션은 개인 계정에 액세스하도록 구성될 수 있다.[00125] The method of FIG. 9 may proceed from step 902 to step 904, and at step 904, the account type of the account to be accessed may be determined. The account type may include the context for the selected application. For example, the selected application may include an email application, and the email application may be configured to access a corporate account. In another example, an email application may be configured to access an individual account.

[00126] 도 9의 방법은 단계(904)로부터 단계(906)로 진행할 수 있으며, 단계(906)에서, 계정 타입은 계정 타입 정책과 비교될 수 있다. 예컨대, 정책은 기업 계정에 액세스해야 하는 이메일 애플리케이션이 관리 모드로 실행되어야 하며 개인 계정에 액세스해야 하는 이메일 애플리케이션이 비관리 모드로 실행되어야 함을 정의할 수 있다. 도 9의 방법은 단계(906)로부터 단계(908)로 진행할 수 있으며, 단계(908)에서 동작 모드는 비교에 기초하여 결정될 수 있다.[00126] The method of FIG. 9 may proceed from step 904 to step 906, and at step 906, the account type may be compared to an account type policy. For example, the policy may define that the email application that needs to access the corporate account must be running in managed mode and that the email application that needs to access the personal account must run in unmanaged mode. The method of FIG. 9 may proceed from step 906 to step 908, and in step 908 the operating mode may be determined based on the comparison.

[00127] 도 10의 방법은 단계(1002)에서 시작할 수 있으며, 단계(1002)에서, 모바일 디바이스에 대한 위치가 결정된다. 예컨대, 정책은 모바일 디바이스(502)와 같은 모바일 디바이스는 도 10의 방법을 구현할 수 있으며, 모바일 디바이스에 대한 위치가 결정될 수 있다. 위치는 GPS, 신호 삼각측량(triangulation), 또는 임의의 다른 적절한 또는 그렇지 않은 경우에 공지된 방식에 의해 결정될 수 있다. 위치는 선택된 애플리케이션에 대한 컨텍스트를 포함할 수 있다.[00127] The method of FIG. 10 may begin at step 1002, and at step 1002, a location for the mobile device is determined. For example, a policy may be implemented by a mobile device, such as mobile device 502, according to the method of FIG. 10, and a location for the mobile device may be determined. The location may be determined by GPS, signal triangulation, or any other suitable or otherwise known method. The location may include the context for the selected application.

[00128] 도 10의 방법은 단계(1002)로부터 단계(1004)로 진행할 수 있으며, 단계(1004)에서, 결정된 위치는 위치 정책과 비교될 수 있다. 예컨대, 정책은 선택된 애플리케이션이 특정 위치에 있을 때, 예컨대 회사 건물에 있을 때 더 보안적인 관리 모드로 실행됨을 정의할 수 있다. 일 실시예에서, 정책은 선택된 애플리케이션이 특정 위치에 있을 때, 예컨대 결정된 위치가 미국내에 있으나 회사 건물에서 떨어져 있을 때 덜 보안적인 관리 모드로 실행됨을 정의할 수 있다. 예컨대, 덜 보안적인 관리 모드는 선택된 애플리케이션으로 그리고 선택된 애플리케이션으로부터의 통신을 암호화할 수 있으나 자원들(504)과 같은 기업 자원들에 대한 액세스를 허용할 수 없다. 다른 실시예에서, 정책은 선택된 애플리케이션이 특정 위치에 있을 때, 예컨대 결정된 위치가 미국 밖에 있을 때 비관리 모드로 실행됨을 정의할 수 있다. 도 10의 방법은 단계(1004)로부터 단계(1006)로 진행할 수 있으며, 단계(1006)에서, 동작 모드는 비교에 기초하여 결정된다. [00128] The method of FIG. 10 may proceed from step 1002 to step 1004, and at step 1004, the determined location may be compared to a location policy. For example, the policy may define that when the selected application is in a specific location, e.g., in a corporate building, it runs in a more secure management mode. In one embodiment, the policy may define that when the selected application is in a particular location, for example, it runs in a less secure administrative mode when the determined location is within the United States but away from the corporate building. For example, a less secure management mode may encrypt communication with selected applications and selected applications, but not access to enterprise resources such as resources 504. [ In another embodiment, the policy may define that when the selected application is in a particular location, for example, it runs in an unmanaged mode when the determined location is outside the United States. The method of FIG. 10 may proceed from step 1004 to step 1006, and at step 1006, the mode of operation is determined based on the comparison.

[00129] 대안적으로 또는 물리적 위치에 추가하여, 네트워크 위치는 액세스가 허락되는지의 여부를 결정하기 위하여 마찬가지로 또는 대신에 사용될 수 있다. 예컨대, 네트워크 위치는 사용자가 데이터 센터 (또는 사전-승인된 WiFi 액세스 포인트) 내에 있는지 또는 데이터 센터 외부에 있는지의 여부를 지칭할 수 있다. 적절한 액세스 모드들은 이러한 결정에 기초할 수 있다.[00129] Alternatively or in addition to the physical location, the network location may be used as well, or instead, to determine whether access is allowed. For example, the network location may refer to whether the user is within the data center (or a pre-approved WiFi access point) or outside the data center. Appropriate access modes may be based on this determination.

[00130] 도 11의 방법은 단계(1102)에서 시작할 수 있으며, 단계(1102)에서, 미리 결정된 애플리케이션이 디바이스상에서 실행중인의 여부가 모니터링된다. 예컨대, 모바일 디바이스(502)와 같은 모바일 디바이스는 도 11의 방법을 구현할 수 있으며, 모바일 디바이스는 미리 결정된 애플리케이션들이 실행중인지의 여부를 결정하기 위하여 모니터링될 수 있다. 미리 결정된 애플리케이션은 도 6을 참조로 하여 설명된 클라이언트 에이전트(604)와 같이 모바일 디바이스상에서 실행될 수 있는 임의의 애플리케이션을 포함할 수 있다. 모니터링된 미리 결정된 애플리케이션은 선택된 애플리케이션에 대한 컨텍스트를 포함할 수 있다.[00130] The method of FIG. 11 may begin at step 1102, and at step 1102, it is monitored whether a predetermined application is running on the device. For example, a mobile device, such as mobile device 502, may implement the method of FIG. 11 and the mobile device may be monitored to determine whether predetermined applications are running. The predetermined application may include any application that may be executed on the mobile device, such as the client agent 604 described with reference to FIG. The monitored predetermined application may include a context for the selected application.

[00131] 도 11의 방법은 단계(1102)로부터 단계(1104)로 진행할 수 있으며, 단계(1104)에서, 모니터링된 애플리케이션은 정책과 비교된다. 예컨대, 정책은 클라이언트 에이전트(604)와 같은 미리 결정된 애플리케이션이 실행중일 때 선택된 애플리케이션이 관리 모드로 실행되고 미리 결정된 애플리케이션이 실행중이 아닐 때 선택된 애플리케이션이 비관리 모드로 실행됨을 정의할 수 있다. 도 11의 방법은 단계(1104)로부터 단계(1106)로 진행할 수 있으며, 단계(1106)에서, 동작 모드는 비교에 기초하여 결정된다.[00131] The method of FIG. 11 may proceed from step 1102 to step 1104, where, at step 1104, the monitored application is compared to a policy. For example, the policy may define that when the predetermined application, such as the client agent 604, is running, the selected application is run in the administrative mode and the selected application is running in the unmanaged mode when the predetermined application is not running. The method of FIG. 11 may proceed from step 1104 to step 1106, and at step 1106, the mode of operation is determined based on the comparison.

[00132] 도 12의 방법은 단계(1202)에서 시작할 수 있으며, 단계(1202)에서, 하나 이상의 네트워크 연결들이 검출된다. 예컨대, 모바일 디바이스(502)와 같은 모바일 디바이스는 도 12의 방법을 구현할 수 있으며, 모바일 디바이스가 만든 네트워크 연결들이 검출될 수 있다. 일례로, 네트워크 연결들은 셀룰라 네트워크에의 연결, WIFI 네트워크에의 연결, 또는 무선 근거리 통신망(WLAN)에의 연결 등을 포함할 수 있다. 하나 이상의 네트워크 연결들은 선택된 애플리케이션에 대한 컨텍스트를 포함할 수 있다.[00132] The method of FIG. 12 may begin at step 1202, and at step 1202, one or more network connections are detected. For example, a mobile device such as mobile device 502 may implement the method of FIG. 12, and network connections created by the mobile device may be detected. In one example, network connections may include connecting to a cellular network, connecting to a WIFI network, or connecting to a wireless local area network (WLAN). One or more network connections may include a context for the selected application.

[00133] 도 12의 방법은 단계(1202)로부터 단계(1204)로 진행할 수 있으며, 단계(1204)에서, 검출된 네트워크 연결들이 네트워크 연결 정책과 비교된다. 예컨대, 정책은 모바일 디바이스가 회사 내부의 WLAN과 같은 인터넷 네트워크에 연결될 때 선택된 애플리케이션이 관리 모드로 실행되고 모바일 디바이스가 단지 셀룰라 네트워크 또는 WIFI 네트워크와 같은 무선 네트워크에 연결될 때 선택된 애플리케이션이 비관리 모드로 실행됨을 정의할 수 있다. 도 12의 방법은 단계(1204)로부터 단계(1206)로 진행할 수 있으며, 단계(1206)에서, 동작 모드가 비교에 기초하여 결정된다.[00133] The method of FIG. 12 may proceed from step 1202 to step 1204, where, in step 1204, the detected network connections are compared to a network connection policy. For example, the policy may be that when the selected application is run in the management mode and the mobile device is connected to a wireless network, such as a cellular network or a WIFI network, when the mobile device is connected to an Internet network such as a WLAN inside the company, Can be defined. The method of FIG. 12 may proceed from step 1204 to step 1206, and at step 1206, the mode of operation is determined based on the comparison.

[00134] 도 13의 방법은 단계(1302)에서 시작할 수 있으며, 단계(1302)에서 모바일 디바이스에 대한 하나 이상의 세팅들이 검출된다. 예컨대, 모바일 디바이스(502)와 같은 모바일 디바이스는 도 13의 방법을 구현할 수 있으며, 모바일 디바이스에 대한 하나 이상의 세팅들이 검출될 수 있다. 일례로, 모바일 디바이스가 모바일 디바이스를 사용하는 동안 요구되는 PIN와 같은 로크 스크린(lock screen)을 가지는지의 여부가 검출될 수 있거나 또는 모바일 디바이스가 탈옥(jailbroken)/정착(root)되었는지의 여부, 예컨대 모바일 디바이스가 애프터-마켓(after-market) 수정들을 수신하였는지의 여부가 검출될 수 있다. 하나 이상의 세팅들은 선택된 애플리케이션에 대한 컨텍스트를 포함할 수 있다.[00134] The method of FIG. 13 may begin at step 1302, and at step 1302 one or more settings for the mobile device are detected. For example, a mobile device such as mobile device 502 may implement the method of FIG. 13, and one or more settings for the mobile device may be detected. For example, whether a mobile device has a lock screen, such as a PIN required during use of the mobile device, can be detected, or whether the mobile device is jailbroken / rooted, For example, it can be detected whether the mobile device has received after-market corrections. One or more settings may include a context for the selected application.

[00135] 도 13의 방법은 단계(1302)로부터 단계(1304)로 진행할 수 있으며, 단계(1304)에서, 검출된 세팅들은 세팅 정책과 비교된다. 예컨대, 정책은 모바일 디바이스가 로크 스크린을 갖지 않거나 또는 모바일 디바이스가 탈옥/정착된 경우에 선택된 애플리케이션이 관리 모드로 실행되지 않을 수 있음을 정의할 수 있다. 도 13의 방법은 단계(1304)로부터 단계(1306)로 진행할 수 있으며, 단계(1306)에서, 동작 모드는 비교에 기초하여 결정된다. 일 실시예에서, 선택된 애플리케이션을 미리 결정된 모드로 실행할 때, 특정 정책들을, 예컨대 모바일 디바이스가 선택된 애플리케이션을 관리 모드로 실행하도록 허용되기 전에 모바일 디바이스가 로크 스크린을 가지는 요건들을 사용자에게 알리는 표시자가 모바일 디바이스상에 디스플레이될 수 있다. 도 9-13은 복수의 컨텍스트들을 설명하며, 임의의 다른 적절한 컨텍스트 및 대응 정책이 구현될 수 있다. [00135] The method of FIG. 13 may proceed from step 1302 to step 1304, where the detected settings are compared with a setting policy. For example, the policy may define that the selected application may not be running in the management mode if the mobile device does not have a lock screen or if the mobile device is jailbroken / settled. The method of FIG. 13 may proceed from step 1304 to step 1306, and at step 1306, the mode of operation is determined based on the comparison. In one embodiment, when the selected application is run in a predetermined mode, an indicator that notifies the user of the requirements that the mobile device has a lock screen, e.g., before the mobile device is allowed to run the selected application in the management mode, Lt; / RTI > Figures 9-13 illustrate a plurality of contexts, and any other suitable context and corresponding policies may be implemented.

[00136] 일 실시예에서, 도 9-13에서 설명된 컨텍스트들 중 하나 이상은 결합될 수 있으며, 이들 컨텍스트들은 선택된 애플리케이션에 대한 정책과 비교될 수 있다. 예컨대, 선택된 애플리케이션에 대한 컨텍스트들은 기업 이메일 계정으로서 액세스될 계정 타입 및 셀룰라 네트워크로서 액세스될 검출된 네트워크 연결을 포함할 수 있다. 이러한 예에서, 정책은 기업 계정이 셀룰라 네트워크를 통해 액세스되도록 시도될 때 선택된 애플리케이션이 관리 모드로 실행되어야 함을 정의할 수 있다. 정책은 이러한 방식으로 정의될 수 있는데, 왜냐하면 선택된 애플리케이션이 기업 이메일 계정과의 통신을 암호화할 수 있고 따라서 셀룰라 네트워크를 통해 보안 트래픽을 송신할 때의 위험이 완화될 수 있기 때문이다.[00136] In one embodiment, one or more of the contexts described in FIGS. 9-13 may be combined, and these contexts may be compared to a policy for the selected application. For example, the contexts for the selected application may include an account type to be accessed as a corporate email account and a detected network connection to be accessed as a cellular network. In this example, the policy may define that the selected application should be run in the management mode when the enterprise account is attempted to be accessed through the cellular network. Policies can be defined in this way because the selected application can encrypt communications with corporate email accounts and thus mitigate the risk of sending secure traffic over the cellular network.

[00137] 다른 예에서, 선택된 애플리케이션에 대한 컨텍스트들은 미국 밖에 있는 것으로 결정된 위치 및 회사 내부의 WLAN을 사용한 네트워크 연결을 포함할 수 있다. 정책은 결정된 위치가 미국 밖에 있고 네트워크 연결이 회사 내부의 WLAN로 이루어질 때 선택된 애플리케이션이 관리 모드로 실행되는 것을 정의할 수 있다. 정책은 회사 내부의 WLAN을 사용한 네트워크 연결이 미국 밖의 보안 통신들과 연관된 위험을 완화시키기 때문에 이러한 방식으로 정의될 수 있다.[00137] In another example, the contexts for the selected application may include a location determined to be outside the United States and a network connection using a WLAN within the company. The policy can define that the selected application runs in managed mode when the determined location is outside the United States and the network connection is made to the WLAN inside the company. Policies can be defined this way because network connections using corporate internal WLANs mitigate the risks associated with secure communications outside the United States.

[00138] 일 실시예에서, 도 9-13에서 설명된 것과 같은 하나 이상의 컨텍스트들은 우선순위를 포함할 수 있다. 예컨대, 선택된 애플리케이션에 대한 컨텍스트는 모바일 디바이스가 탈옥/정착된다는 결정을 포함할 수 있으며, 정책은 다른 컨텍스트들이 무엇을 표시하던지 간에 컨텍스트가 탈옥/정착된 모바일 디바이스를 표시할 때 선택된 애플리케이션이 단지 비관리 모드로 실행되는 것을 정의할 수 있다. 따라서, 탈옥/정착된 모바일 디바이스는 모바일 디바이스가 회사 내부의 WLAN에 연결될 때 조차 또는 선택된 애플리케이션들이 기업 계정에 액세스하는 것을 시도중인 경우에 선택된 애플리케이션이 비관리 모드로 실행되게 할 것이다.[00138] In one embodiment, one or more contexts such as those described in FIGS. 9-13 may include priorities. For example, the context for the selected application may include a determination that the mobile device is jailbroken / settled, and the policy is such that when the context displays the mobile device being jailbroken / fixed, whatever other contexts may indicate, Mode can be defined. Thus, the jailbroken / settled mobile device will cause the selected application to run in an unmanaged mode even when the mobile device is connected to a WLAN within the company or when the selected applications are attempting to access the enterprise account.

[00139] 일 실시예에서, 정책은 도 9-13에 설명된 것과 같이 복수의 컨텍스트들에 기초하여, 선택된 애플리케이션이 덜 보안적인 관리 모드로 실행됨을 표시할 수 있다. 예컨대, 선택된 애플리케이션에 대한 컨텍스트들은 기업 이메일 계정으로서 액세스될 계정 타입 및 셀룰라 네트워크로서 액세스될 검출된 네트워크 연결을 포함할 수 있다. 이러한 예에서, 정책은 기업 계정이 셀룰라 네트워크를 통해 액세스되도록 시도될 때 선택된 애플리케이션이 덜 보안적인 관리 모드로 실행되어야 함을 정의할 수 있다. 덜 보안적인 관리 모드는 선택된 애플리케이션으로 그리고 선택된 애플리케이션으로부터의 통신을 암호화할 수 있으나 자원들(504)과 같은 기업 자원들에 대한 액세스를 허용하지 않을 수 있다. 정책은 이러한 방식으로 정의될 수 있는데, 왜냐하면 기업 이메일 계정을 사용한 암호화된 통신이 저위험 통신일 수 있고 기업 자원들에 대한 액세스를 허용하는 것이 고위험 통신일 수 있기 때문이다. [00139] In one embodiment, the policy may indicate that the selected application is running in a less secure administrative mode, based on the plurality of contexts as described in FIGS. 9-13. For example, the contexts for the selected application may include an account type to be accessed as a corporate email account and a detected network connection to be accessed as a cellular network. In this example, the policy may define that the selected application should be run in a less secure administrative mode when the enterprise account is attempted to be accessed through the cellular network. The less secure management mode may encrypt communications with selected applications and selected applications but may not allow access to enterprise resources such as resources 504. [ Policies can be defined in this way because encrypted communications using corporate e-mail accounts can be low-risk communications and allowing access to corporate resources can be a high-risk communication.

[00140] 도 14에서, 애플리케이션에 대한 동작 모드를 전환하기 위한 예시적인 방법 단계들의 흐름도가 도시된다. 예컨대, 도 14의 방법 단계들은 도 8의 방법 단계들을 뒤따를 수 있다. 도 14의 방법은 단계(1402)에서 시작할 수 있으며, 단계(1402)에서, 하나 이상의 컨텍스트들은 선택된 애플리케이션이 실행중인 동안 모니터링될 수 있다. 일 실시예에서, 도 9-13를 참조로 하여 설명된 컨텍스트들 중 하나 이상의 컨텍스트가 모니터링될 수 있다. 예컨대, 선택된 애플리케이션을 실행하는 모바일 디바이스는 셀룰라 네트워크에 연결될 수 있으며, 선택된 애플리케이션이 실행중인 동안 모바일 디바이스는 회사 내부의 WLAN과 새로운 네트워크 연결을 만들 수 있다. [00140] In FIG. 14, a flow diagram of exemplary method steps for switching operational modes for an application is shown. For example, the method steps of FIG. 14 may follow the method steps of FIG. The method of FIG. 14 may begin at step 1402, and at step 1402, one or more contexts may be monitored while the selected application is running. In one embodiment, the context of one or more of the contexts described with reference to Figures 9-13 may be monitored. For example, the mobile device running the selected application may be connected to the cellular network, and while the selected application is running, the mobile device may make a new network connection with the internal WLAN.

[00141] 도 14의 방법은 단계(1402)로부터 단계(1404)로 진행할 수 있으며, 단계(1404)에서, 선택된 애플리케이션에 대한 동작 모드의 변화는 모니터링에 기초하여 검출된다. 달리 언급하면, 모바일 디바이스는 정보의 변화를 검출할 수 있으며, 이러한 변화는 특정 동작 모드를 선택하기 위한 기반이 된다. 예컨대, 선택된 애플리케이션은 비관리 모드로 실행중일 수 있으며, 일단 선택된 애플리케이션을 실행하는 모바일 애플리케이션이 회사 내부의 WLAN에 연결되면 정책은 선택된 애플리케이션에 대한 동작 모드가 관리 모드로 전환되어야 함을 정의할 수 있다. 도 14의 방법은 단계(1404)로부터 단계(1406)로 진행할 수 있으며, 단계(1406)에서, 선택된 애플리케이션에 대한 동작 모드가 전환된다.[00141] The method of FIG. 14 may proceed from step 1402 to step 1404, wherein, at step 1404, a change in the operating mode for the selected application is detected based on the monitoring. In other words, a mobile device can detect a change in information, and this change is the basis for selecting a particular mode of operation. For example, the selected application may be running in an unmanaged mode, and once the mobile application running the selected application is connected to a WLAN within the company, the policy may define that the operational mode for the selected application should be switched to the managed mode . The method of FIG. 14 may proceed from step 1404 to step 1406, and at step 1406, the mode of operation for the selected application is switched.

[00142] 일 실시예에서, 모바일 디바이스 관리자와 같은 관리자는 하나 이상의 모바일 디바이스들을 관리할 수 있다. 이러한 예에서, 모바일 디바이스는 등록된 디바이스로서 지칭될 수 있다. 일 실시예에서, 모바일 디바이스는 도 6의 클라이언트 에이전트(604)와 같이 관리 모드로 설치된 소프트웨어에 기초하여 관리될 수 있다.[00142] In one embodiment, an administrator, such as a mobile device manager, may manage one or more mobile devices. In this example, the mobile device may be referred to as a registered device. In one embodiment, the mobile device may be managed based on software installed in a management mode, such as the client agent 604 of FIG.

[00143] 일 실시예에서, 클라이언트 에이전트(604)는 연결 관리 소프트웨어 개발 키트(SDK), 연결 관리자(520), 연결/상태 애플리케이션 프로그래밍 인터페이스(API), 가상화 서비스들의 세트, 런타입 SDK, 플랫폼 SDK 및 클라이언트 코어를 더 포함할 수 있다. In one embodiment, the client agent 604 includes a connection management software development kit (SDK), a connection manager 520, a connection / status application programming interface (API), a set of virtualization services, And a client core.

[00144] 클라이언트 에이전트 아키텍처에서의 가상화 서비스는 예컨대 그래픽 서비스, 데스크탑 통합 서비스, 멀티미디어 서비스, 입력/출력 서비스들, 스마트 카드 서비스, 프린팅 서비스 등을 포함할 수 있다. 런타입 SDK는 예컨대 ICA 엔진을 포함하는 독립형 컴퓨팅 아키텍처(ICA) 런타임 SDK일 수 있다. 플랫폼 SDK는 예컨대 ICA 플랫폼 SDK 또는 다른 플랫폼 SDK일 수 있으며, 다양한 서브컴포넌트들, 예컨대 가상 채널 SDK, 구성 및 로드 관리자, 트레이스 서브컴포넌트(trace subcomponent), 플랫폼 추상(platform abstraction) SDK 등을 포함할 수 있다. 클라이언트 코어는 예컨대 단말 서비스들(예컨대, 코어 ICA 프로토콜을 가진 Winstation 드라이버), 압축 및 우선순위화를 수행하도록 구성된 리듀서 서브컴포넌트(reducer subcomponent), 멀티-스트림 ICA, 세션 신뢰도를 가진 TCP 스택, 프록시 및 SSL에 원격적으로 액세스하기 위한 코어 프로토콜, 및 UDP 서브컴포넌트를 포함할 수 있다. 클라이언트 코어는 또한 플랫폼-특정 서브컴포넌트들, 예컨대 그래픽 스마트 카드 및 스레드 지원(thread support), 구성 및 로드 관리자 라이브러리들, SSL SDK 등의 구현들을 포함할 수 있다. The virtualization service in the client agent architecture may include, for example, a graphics service, a desktop integration service, a multimedia service, input / output services, a smart card service, a printing service, and the like. The run-type SDK may be, for example, a stand-alone computing architecture (ICA) runtime SDK that includes an ICA engine. The platform SDK may be, for example, an ICA platform SDK or other platform SDK, and may include various subcomponents, such as a virtual channel SDK, configuration and load manager, trace subcomponent, platform abstraction SDK, have. The client core may include, for example, terminal services (e.g., a Winstation driver with a core ICA protocol), a reducer subcomponent configured to perform compression and prioritization, a multi-stream ICA, a TCP stack with session reliability, A core protocol for remote access to SSL, and a UDP subcomponent. The client core may also include implementations such as platform-specific subcomponents, such as graphics smart cards and thread support, configuration and load manager libraries, SSL SDK, and the like.

[00145] 모바일 디바이스는 예컨대 클라이언트 에이전트(604)를 사용하여 기업 시스템에 등록될 수 있다. 예컨대, 등록된 클라이언트 디바이스(602)에서, 클라이언트 에이전트(604)는 다양한 기업 자원들(608) 및 서비스들(609)에 액세스하기 위하여 게이트웨이 서버(606) 또는 다른 액세스 게이트웨이와 상호작용할 수 있다. 디바이스를 등록하는 것은 BYOD(bring your own device) 및 관련 기술들을 수반할 수 있으며, MDM 또는 유사한 시스템에 참여하는 것을 수반할 수 있다. 회사 계정(또는 다른 단체 계정)에 디바이스를 등록하는 것은 디바이스에 인증서들을 푸시(push)하는 것 및 기업 시스템의 디바이스 관리 서버에 디바이스를 등록하는 것을 수반할 수 있다. 등록 이후에, 디바이스는 디바이스에 푸시되는 모바일 디바이스 경험 기술(애플리케이션 관리 프레임워크) 정책들 및/또는 모바일 디바이스 관리(MDM)을 사용하는 회사 관리자(또는 다른 단체 관리자)에 의해 운영될 수 있다. 등록된 디바이스는 또한 관리 디바이스들로서 지칭될 수 있다. 달리 언급하면, 등록 이후에, 디바이스는 본원에서 설명된 바와같은 관리 디바이스가 될 수 있다. 특정 예들에서, 기업 시스템에 디바이스를 등록하기 위하여, 클라이언트 에이전트(604) 및/또는 애플리케이션 등록 토큰은 디바이스상에 다운로드되어 설치될 수 있다. 애플리케이션 등록 토큰은 회사 또는 디바이스가 등록될 다른 단체의 인증서로부터 유도될 수 있다. 클라이언트 에이전트(604) 및 애플리케이션 등록 토큰을 다운로드한 이후에, 디바이스 사용자는 토큰을 열고 디바이스에 회사 계정(또는 다른 단체 계정)을 추가하도록 프롬프트될 수 있다.[00145] The mobile device may be registered with the enterprise system using, for example, the client agent 604. [ For example, at the registered client device 602, the client agent 604 may interact with the gateway server 606 or other access gateway to access various corporate resources 608 and services 609. [ Registering a device may involve BYOD (bring your own device) and related technologies, and may involve participating in an MDM or similar system. Registering a device in a company account (or other corporate account) may involve pushing certificates to the device and registering the device with the device management server of the enterprise system. After registration, the device may be operated by a company manager (or other group manager) using mobile device experience description (application management framework) policies and / or mobile device management (MDM) that are pushed to the device. Registered devices may also be referred to as management devices. In other words, after registration, the device may be a management device as described herein. In certain instances, in order to register the device with the enterprise system, the client agent 604 and / or the application registration token may be downloaded and installed on the device. The application registration token may be derived from the certificate of the company or other entity to which the device is to be registered. After downloading the client agent 604 and the application registration token, the device user may be prompted to open the token and add a company account (or other corporate account) to the device.

[00146] 일 실시예에서, 도 5의 모바일 디바이스(502)와 같은 등록된 모바일 디바이스는 도 5의 디바이스 관리자(524)와 같은 서비스에 의해 관리될 수 있다. 디바이스 관리자(524)는 구성, 프로비저닝, 보안, 지원, 모니터링, 보고 및 해체(decommissioning)를 포함하는 서비스들을 제공할 수 있다. 예컨대, 디바이스 관리자(524)는 어떤 애플리케이션들이 등록/관리 모바일 디바이스상에 설치된지를 모니터링할 수 있다. 이러한 예에서, 디바이스 관리자(524)는 블랙-리스트 애플리케이션들의 리스트를 저장/액세스할 수 있으며, 등록/관리 모바일 디바이스상에의 블랙-리스트 애플리케이션의 설치를 추가로 결정할 수 있다. 블랙-리스트 애플리케이션은 의심스러운 멀웨어(suspected malware) 또는 임의의 다른 적절한 애플리케이션인 애플리케이션을 포함할 수 있다. 다른 예에서, 디바이스 관리자(524)는 등록된 모바일 디바이스에 대한 동작 상태를 모니터링할 수 있다. 이러한 예에서, 디바이스 관리자(524)는 등록된 모바일 디바이스가 탈옥/정착되었음을 결정할 수 있다. 디바이스 관리자(524)는 이들 결정들에 기초하여, 등록된 디바이스에 대하여 다양한 관리 활동들을 수행할 수 있다.[00146] In one embodiment, a registered mobile device, such as the mobile device 502 of FIG. 5, may be managed by a service such as the device manager 524 of FIG. The device manager 524 may provide services including configuration, provisioning, security, support, monitoring, reporting and decommissioning. For example, the device manager 524 may monitor which applications are installed on the registration / management mobile device. In this example, the device manager 524 may store / access the list of black-list applications and may further determine the installation of the black-list application on the registration / management mobile device. The black-listing application may include applications that are suspected malware or any other suitable application. In another example, the device manager 524 may monitor the operational status for the registered mobile device. In this example, device manager 524 may determine that the registered mobile device has been jailbroken / settled. The device manager 524 may perform various management activities on the registered device based on these determinations.

[00147] 다른 예에서, 디바이스 관리자(524)는 모바일 디바이스에 대한 네트워크 연결을 모니터링할 수 있다. 이러한 예에서, 디바이스 관리자(524)는 등록된 모바일 디바이스가 셀룰라 네트워크, 무선 근거리 통신망(WLAN), 근거리 통신망(LAN), 이들의 조합, 또는 임의의 다른 적절한 네트워크에 연결됨을 결정할 수 있다. 다른 예에서, 디바이스 관리자(524)는 모바일 디바이스에 대한 위치를 모니터링할 수 있다. 이러한 예에서, 디바이스 관리자(524)는 모바일 디바이스에 대한 지리적 위치, 예컨대 위도 및 경도, 국가, 주, 임의의 적절한 지역, 또는 모바일 디바이스에 대한 임의의 다른 적절한 위치를 결정할 수 있다.[00147] In another example, the device manager 524 may monitor the network connection to the mobile device. In this example, the device manager 524 may determine that the registered mobile device is connected to a cellular network, a wireless local area network (WLAN), a local area network (LAN), a combination thereof, or any other suitable network. In another example, the device manager 524 may monitor the location for the mobile device. In this example, device manager 524 may determine the geographical location for the mobile device, e.g., latitude and longitude, country, state, any suitable region, or any other suitable location for the mobile device.

[00148] 다른 예에서, 디바이스 관리자(524)는 특정 애플리케이션이 모바일 디바이스상에서 실행중인지의 여부를 모니터링할 수 있다. 이러한 예에서, 디바이스 관리자(524)는 도 6의 클라이언트 에이전트(604)와 같은 특정 애플리케이션이 모바일 디바이스상에서 실행중인지의 여부를 결정할 수 있다. 디바이스 관리자(524)는 이들 결정들에 기초하여 등록된 디바이스에 대하여 다양한 관리 활동들을 수행할 수 있다.[00148] In another example, the device manager 524 may monitor whether a particular application is running on the mobile device. In this example, the device manager 524 may determine whether a particular application, such as the client agent 604 of FIG. 6, is running on the mobile device. The device manager 524 may perform various management activities on the registered devices based on these determinations.

[00149] 일 실시예에서, 앞서 설명된 바와같이, 등록된 모바일 디바이스상에 설치된 애플리케이션은 관리 모드 또는 비관리 모드로 실행될 수 있다. 일 실시예에서, 도 5를 참조로하여 앞서 설명된 바와같이, 관리 동작 모드는 모바일 디바이스(502)의 관리 파티션(510)의 부분으로서 애플리케이션을 실행하는 것을 포함할 수 있다. 일 실시예에서, 관리 모드로 실행되는 애플리케이션은 모바일 디바이스의 관리 파티션(510)의 보안 데이터 컨테이너(528)에 저장된 데이터에 액세스할 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 다른 보안 애플리케이션들 사이에서 공유되는 특정 보안 애플리케이션(530)에 제약된 데이터 등을 포함할 수 있다. 보안 애플리케이션에 제약된 데이터는 보안 범용 데이터(534) 및 고보안 데이터(538)를 포함할 수 있다. 보안 범용 데이터는 AES 128-비트 암호화 등과 같은 고강도 암호화를 사용할 수 있는 반면에, 고보안 데이터(538)는 AES 254-비트 암호화와 같은 초고강도 암호화를 사용할 수 있다. 다른 타입들의 암호화가 사용될 수 있으며, 다른 레벨들 및 다른 타입들의 보안 조치들이 원하는 레벨 및/또는 원하는 타입의 보안 뿐만아니라 상이한 키 복원 특징들에 기초하여 적용될 수 있다. 일 실시예에서, 관리 모드로 실행되는 애플리케이션은 보안 데이터 컨테이너(528)에 데이터를 세이브하거나 이 데이터를 수정하거나 또는 제거할 수 있다. 세이브되거나 또는 수정된 데이터는 보안 데이터 컨테이너(528)에 저장된 다른 데이터와 유사하게 암호화될 수 있다.[00149] In one embodiment, as described above, an application installed on a registered mobile device may be run in a managed mode or an unmanaged mode. In one embodiment, the management mode of operation may include running the application as part of the management partition 510 of the mobile device 502, as described above with reference to Fig. In one embodiment, an application running in the management mode may access data stored in the secure data container 528 of the management partition 510 of the mobile device. The data stored in the secure data container 528 may include data constrained to a particular secure application 530 that is shared among other secure applications. The data constrained to the security application may include security generic data 534 and high security data 538. Secure general purpose data may use high strength encryption such as AES 128-bit encryption, while high security data 538 may use ultra high strength encryption such as AES 254-bit encryption. Other types of encryption may be used, and other levels and other types of security measures may be applied based on different key recovery features as well as the desired level and / or desired type of security. In one embodiment, an application running in the management mode may save or modify data in the secure data container 528 or remove it. The saved or modified data may be encrypted similar to other data stored in secure data container 528. [

[00150] 일 실시예에서, 관리 모드는 기업 모드를 포함할 수 있으며, 비관리 모드는 개인 모드를 포함할 수 있다. 예컨대, 애플리케이션이 관리 모드 또는 기업 모드로 실행중일 때, 애플리케이션은 보안 서버상에 저장된 자원들(예컨대, 기업 데이터)에 대해 액세스할 수 있다. 관리 모드로 실행되는 디바이스 관리자(524)는 기업과 연관될 수 있다. 이러한 예에서, 관리 모드로 실행되는 애플리케이션은 기업 데이터에 액세스하는 애플리케이션을 승인하는 하나 이상의 서버들(예컨대, 게이트웨이 서버(606))과 통신할 수 있을 것이다. 애플리케이션이 비관리 모드 또는 개인 모드로 실행될 때, 애플리케이션은 기업 데이터에 대해 액세스하지 못할 수 있다.[00150] In one embodiment, the management mode may include an enterprise mode, and the unmanaged mode may include an individual mode. For example, when an application is running in a management mode or an enterprise mode, the application can access resources (e.g., enterprise data) stored on the security server. The device manager 524 running in the management mode may be associated with the enterprise. In this example, an application running in administrative mode may communicate with one or more servers (e.g., gateway server 606) that authorize applications accessing enterprise data. When an application is run in unmanaged mode or in private mode, the application may not be able to access enterprise data.

[00151] 일 실시예에서, 관리 모드 또는 비관리 모드로 실행될 수 있는 애플리케이션은 애플리케이션과 연관된 데이터를 저장하기 위한 저장 정책들을 레버리지(leverage)할 수 있다. 도 15에서, 다수의 모드들로 실행되는 애플리케이션을 관리하기 위한 예시적인 방법 단계들의 흐름도가 도시된다. 도 15는 단계(1502)에서 시작할 수 있으며, 단계(1502)에서, 애플리케이션은 관리 모드 또는 비관리 모드 중 하나로 모바일 디바이스상에서 실행된다. 예컨대, 앞서 설명된 바와같이, 관리 모드 또는 비관리 모드로 실행될 수 있는 애플리케이션은 이들 모드들 중 하나의 모드로 실행될 수 있다.[00151] In one embodiment, an application that may be run in a managed mode or an unmanaged mode may leverage storage policies for storing data associated with an application. In FIG. 15, a flow diagram of exemplary method steps for managing an application running in multiple modes is shown. 15 may begin at step 1502, where at step 1502, the application is run on the mobile device in one of the managed or unmanaged modes. For example, as described above, an application that may be run in a management mode or an unmanaged mode may be run in one of these modes.

[00152] 도 15의 프로세스는 단계(1502)로부터 단계(1504)로 진행할 수 있으며, 단계(1504)에서, 애플리케이션과 연관된 데이터를 저장하기 위한 요청이 수신된다. 예컨대, 애플리케이션이 관리 모드로 실행될 때, 데이터, 예컨대 보안 서버(예컨대, 게이트웨이 서버(606))로부터 액세스되는 보안 데이터를 저장하기 위한 요청이 수신될 수 있다. 이러한 예에서, 앞서 설명된 바와같이, 보안 데이터는 기업 데이터를 포함할 수 있다. 다른 예로서, 애플리케이션이 비관리 모드로 실행중일 때, 개인 데이터와 같은 데이터를 저장하기 위한 요청이 수신될 수 있다.[00152] The process of FIG. 15 may proceed from step 1502 to step 1504, and at step 1504, a request to store data associated with the application is received. For example, when an application is run in the management mode, a request may be received to store security data accessed from data, e.g., a secure server (e.g., gateway server 606). In this example, as described above, the security data may include enterprise data. As another example, when an application is running in an unmanaged mode, a request to store data such as personal data may be received.

[00153] 도 15의 프로세스는 단계(1504)로부터 단계(1506)로 진행할 수 있으며, 단계(1506)에서, 데이터는 저장 프로토콜에 따라 모바일 디바이스상에 저장된다. 저장 프로토콜은 요청된 데이터가 모바일 디바이스상에 저장될 방식을 정의할 수 있다. 예컨대, 애플리케이션이 관리 모드로 실행중일 때, 데이터는 제 1 프로토콜에 따라 저장될 수 있으며, 애플리케이션이 비관리 모드로 실행중일 때, 데이터는 제 2 프로토콜에 따라 저장될 수 있다.[00153] The process of FIG. 15 may proceed from step 1504 to step 1506, where, at step 1506, the data is stored on the mobile device according to the storage protocol. The storage protocol may define how the requested data is to be stored on the mobile device. For example, when the application is running in the management mode, the data can be stored according to the first protocol, and when the application is running in the unmanaged mode, the data can be stored according to the second protocol.

[00154] 일 실시예에서, 제 1 저장 프로토콜은 요청된 데이터가 제 1 데이터 컨테이너, 예컨대 보안 데이터 컨테이너(예컨대, 보안 데이터 컨테이너(528))에 저장될 수 있음을 정의할 수 있다. 이러한 예에서, 제 1 데이터 컨테이너에 저장된 데이터는 애플리케이션이 비관리 모드로 실행중인 동안 애플리케이션에게 액세스가능하지 않을 수 있다. 일 실시예에서, 제 2 저장 프로토콜은 요청된 데이터가 제 1 데이터 컨테이너와 상이한 제 2 데이터 컨테이너에 저장될 수 있음을 정의할 수 있다. 제 2 데이터 컨테이너는 예컨대 개인 데이터를 저장하는 범용 데이터 컨테이너를 포함할 수 있다. [00154] In one embodiment, the first storage protocol may define that the requested data may be stored in a first data container, e.g., a secure data container (e.g., secure data container 528). In this example, the data stored in the first data container may not be accessible to the application while the application is running in the unmanaged mode. In one embodiment, the second storage protocol may define that the requested data may be stored in a second data container that is different from the first data container. The second data container may comprise, for example, a universal data container storing personal data.

[00155] 일 실시예에서, 제 1 저장 프로토콜은 요청된 데이터가 저장 전에 암호화될 수 있음을 정의할 수 있다. 이러한 예에서, 데이터는 제 1 키를 사용하여 암호화될 수 있으며, 일부 실시예들에서, 제 1 키는 디바이스를 관리하는 디바이스 관리자(예컨대, 디바이스 관리자(524))와 연관될 수 있다. 일 실시예에서, 제 2 저장 프로토콜은 제 1 키와 상이한 제 2 키를 사용하여 저장전에 요청된 데이터가 암호화될 수 있음을 정의할 수 있다. 또 다른 예로, 제 1 저장 프로토콜은 요청된 데이터가 암호화되지 않은 채 저장될 수 있음을 정의할 수 있다.[00155] In one embodiment, the first storage protocol may define that the requested data may be encrypted before being stored. In this example, the data may be encrypted using the first key, and in some embodiments, the first key may be associated with a device manager (e.g., device manager 524) that manages the device. In one embodiment, the second storage protocol may define that the requested data may be encrypted before being stored using a second key different from the first key. As another example, the first storage protocol may define that the requested data can be stored unencrypted.

[00156] 저장된 데이터는 저장 프로토콜이 변화되거나 또는 수정될 때 자동적으로 업데이트될 수 있다. 예컨대, 데이터 저장을 위하여 사용되는 암호화 방식을 제 1 타입의 암호화로부터 제 2 타입의 암호화로 변경시키는 정책이 업데이트될 수 있다. 이러한 상황이 발생할 때, 모바일 디바이스는 제 1 타입의 암호화에 기초하여 저장된 데이터를 자동적으로 암호해독할 수 있으며, 새로운 또는 변경된 정책을 사용하여 제 2 타입의 암호화에 기초하여 저장된 데이터를 재암호화할 수 있다. 이러한 방식에서, 저장된 데이터는 항상 현재의 저장 정책에 따라 유지될 수 있다.[00156] The stored data may be automatically updated when the storage protocol is changed or modified. For example, the policy for changing the encryption scheme used for data storage from encryption of the first type to encryption of the second type may be updated. When such a situation occurs, the mobile device can automatically decrypt the stored data based on the first type of encryption and re-encrypt the stored data based on the second type of encryption using the new or changed policy have. In this way, the stored data can always be maintained according to the current storage policy.

[00157] 일 실시예에서, 제 1 저장 프로토콜은 요청된 데이터가 관리 계정과 연관되어 저장될 수 있음을 정의할 수 있다. 관리 모드로 실행되는 애플리케이션은 관리 계정과 연관될 수 있다. 예컨대, 관리 모드로 실행되는 동안 보안 모드에 대한 액세스를 허용하는 클라우드 저장 애플리케이션은 보안 데이터에 대한 액세스를 획득하기 위하여 사용되는 관리 계정과 연관될 수 있다. 요청된 데이터는 관리 계정에 연관되어 저장될 수 있다. 일 실시예에서, 제 1 저장 프로토콜은 저장된 요청된 데이터가 디바이스 관리자(524)에 의해 관리될 수 있음을 정의할 수 있다.[00157] In one embodiment, the first storage protocol may define that the requested data may be stored in association with a managed account. An application running in administrative mode can be associated with a managed account. For example, a cloud storage application that allows access to a secure mode while running in an administrative mode may be associated with a managed account used to obtain access to secure data. The requested data can be stored in association with the management account. In one embodiment, the first storage protocol may define that the stored requested data may be managed by the device manager 524.

[00158] 따라서, 애플리케이션이 관리 모드로 실행중인 동안, 앞서 설명된 바와같이, 데이터는 제 1 프로토콜에 따라 저장될 수 있다. 애플리케이션이 비관리 모드로 실행중인 동안, 앞서 설명된 바와같이, 데이터는 제 2 프로토콜에 따라 저장될 수 있다.[00158] Thus, while the application is running in the management mode, the data can be stored according to the first protocol, as described above. While the application is running in the unmanaged mode, as described above, the data may be stored according to the second protocol.

[00159] 일부 실시예들에서, 저장 타입 및/또는 저장 위치는 사용중인 동작 모드에 따를 수 있다. 예컨대, 저장 프로토콜 또는 정책은 데이터가 클라우드-기반 스토리지에 저장될 것을 특정할 수 있다. 저장 프로토콜 또는 정책은 동작 모드에 기초하여, 기업 또는 비기업 클라우드 스토리지가 사용되어야 함을 추가로 특정할 수 있다. 관리 모드에 있을 때, 데이터는 미리 정의된 레벨의 보안이 제공되는 기업 또는 다른 클라우드 스토리지에 기업 또는 정책에 의해 선택된 대로 세이브될 수 있다. 대안적으로, 관리 모드에 있을 때, 데이터는 예컨대 사용자에 의해 선택된 덜 보안적인 클라우드 저장 서비스 또는 위치에 세이브되거나 또는 저장될 수 있다. 예시적인 실시예들은 하이브리드 저장 정책들을 포함할 수 있으며, 하이브리드 저장 정책들에서, 모바일 디바이스 또는 애플리케이션의 특정 환경들에 기초하여, 데이터는 앱이 비관리 모드로 실행중일 때 국부적으로 저장될 수 있으며, 데이터는 앱이 관리 모드로 실행중일 때 클라우드 스토리지에 저장될 수 있으며, 그 반대의 경우도 마찬가지다.[00159] In some embodiments, the storage type and / or storage location may depend on the operating mode in use. For example, a storage protocol or policy may specify that data is to be stored in a cloud-based storage. The storage protocol or policy may further specify that corporate or non-enterprise cloud storage should be used based on the mode of operation. When in management mode, the data can be saved to a company or other cloud storage that is provided with a predefined level of security as selected by the enterprise or policy. Alternatively, when in the management mode, the data may be saved or stored in a less secure cloud storage service or location selected by the user, for example. Exemplary embodiments may include hybrid storage policies, and in hybrid storage policies, based on specific environments of the mobile device or application, the data may be stored locally when the app is running in an unmanaged mode, Data can be stored in cloud storage while your app is running in managed mode, and vice versa.

[00160] 도 15의 프로세스는 단계(1506)로부터 단계(1508)로 진행할 수 있으며, 단계(1508)에서, 애플리케이션의 모드를 디스에이블하기 위한 신호가 수신된다. 예컨대, 애플리케이션의 관리 모드를 디스에이블하기 위한 신호가 수신될 수 있다. 일 실시예에서, 디바이스 관리자(524)는 등록된 모바일 디바이스를 모니터링하며, 모바일 디바이스에 대한 상태를 검출하며, 모바일 디바이스상에 설치된 애플리케이션의 관리 모드를 디스에이블하기 위한 신호를 송신할 수 있다. 예컨대, 디바이스 관리자(524)는 등록된 모바일 디바이스가 탈옥/정착됨을 검출할 수 있으며, 검출에 기초하여 애플리케이션의 관리 모드를 디스에이블할 것을 결정할 수 있다. 또 다른 실시예에서, 디바이스 관리자(524)는 블랙 리스트 애플리케이션이 등록된 모바일 디바이스상에 설치되었음을 검출할 수 있으며, 검출에 기초하여 애플리케이션의 관리 모드를 디스에이블할 것을 결정할 수 있다. [00160] The process of FIG. 15 may proceed from step 1506 to step 1508, and at step 1508, a signal is received to disable the mode of the application. For example, a signal may be received to disable the management mode of the application. In one embodiment, the device manager 524 may monitor the registered mobile device, detect the status for the mobile device, and send a signal to disable the management mode of the application installed on the mobile device. For example, the device manager 524 may detect that the registered mobile device is jailbroken / fixed and may decide to disable the management mode of the application based on detection. In another embodiment, the device manager 524 may detect that the blacklist application has been installed on the registered mobile device and may decide to disable the management mode of the application based on detection.

[00161] 또 다른 실시예에서, 디바이스 관리자(524)는 애플리케이션과 연관된 관리 계정이 만료되거나 또는 제거되었음을 검출할 수 있으며, 검출에 기초하여 애플리케이션의 관리 모드를 디스에이블할 것을 결정할 수 있다. 예컨대, 관리 모드로 실행되는 동안 보안 데이터에 대한 액세스를 허용하는 클라우드 저장 애플리케이션은 보안 데이터에 대한 액세스를 획득하기 위하여 사용되는 관리 계정과 연관될 수 있다. 디바이스 관리자(524)는 관리 계정이 만료되었거나 또는 제거되었음을 검출할 수 있으며, 검출에 기초하여 클라우드 저장 애플리케이션의 관리 모드를 디스에이블하기 위한 신호를 송신할 수 있다. 일 실시예에서, 애플리케이션의 관리 모드를 디스에이블하기 위한 신호가 수신될 때, 애플리케이션은 관리 모드로 실행되지 않는 애플리케이션으로 변환될 수 있다.[00161] In yet another embodiment, the device manager 524 may detect that the management account associated with the application has expired or been removed and may decide to disable the management mode of the application based on detection. For example, a cloud storage application that allows access to secure data while running in an administrative mode may be associated with a managed account used to obtain access to secure data. The device manager 524 may detect that the management account has expired or has been removed and may send a signal to disable the management mode of the cloud storage application based on the detection. In one embodiment, when a signal is received to disable the management mode of the application, the application may be converted to an application that is not running in the management mode.

[00162] 일 실시예에서, 애플리케이션의 관리 모드를 디스에이블하기 위한 수신된 신호에 기초하여, 제 1 프로토콜에 따라 저장된 데이터가 선택적으로 제거될 것이 결정될 수 있다. 예컨대, 제 1 프로토콜에 따라 저장된 데이터는 디스에이블될 관리 모드와 연관될 수 있으며, 제 1 프로토콜에 따라 저장된 데이터는 관리 모드를 디스에이블하는 부분으로서 선택적으로 제거될 수 있다.[00162] In one embodiment, it may be determined that based on the received signal for disabling the management mode of the application, the stored data according to the first protocol is selectively removed. For example, data stored according to the first protocol may be associated with a management mode to be disabled, and data stored according to the first protocol may be selectively removed as a portion that disables the management mode.

[00163] 도 15의 프로세스는 단계(1508)로부터 단계(1510)로 진행할 수 있으며, 단계(1510)에서, 프로토콜에 따라 모바일 디바이스상에 저장된 데이터의 위치가 결정된다. 예컨대, 디바이스 관리자(524)는 등록된 모바일 디바이스를 모니터링할 수 있으며, 제 1 프로토콜에 따라 저장되는 데이터의 위치를 결정할 수 있다. 제 1 프로토콜에 따라 저장된 데이터는 제 1 모드로 실행되는 특정 애플리케이션, 예컨대 관리 모드로 실행되는 애플리케이션과 연관된 데이터를 포함할 수 있다. 일 실시예에서, 위치 결정된 데이터는 애플리케이션에 대한 기업 데이터를 포함할 수 있다.[00163] The process of FIG. 15 may proceed from step 1508 to step 1510 where, at step 1510, the location of the data stored on the mobile device is determined according to the protocol. For example, the device manager 524 may monitor the registered mobile device and may determine the location of the data to be stored according to the first protocol. Data stored in accordance with the first protocol may include data associated with a particular application running in the first mode, e.g., an application running in the management mode. In one embodiment, the positioned data may include enterprise data for the application.

[00164] 일 실시예에서, 제 1 프로토콜에 따라 저장된 데이터는 계정에 기초하여 위치가 결정될 수 있다. 예컨대, 계정은 관리 계정과 연관될 수 있다. 애플리케이션은 관리 모드로 실행될 수 있으며, 저장된 데이터는 관리 계정과 연관될 수 있다. 이러한 실시예에서, 제 1 프로토콜에 따라 저장된 데이터는 관리 계정과 연관될 수 있으며, 제 1 프로토콜에 따라 저장된 데이터는 관리 계정에 기초하여 위치가 결정될 수 있다.[00164] In one embodiment, the data stored according to the first protocol may be located based on an account. For example, an account may be associated with a managed account. The application may be run in a management mode, and the stored data may be associated with a managed account. In this embodiment, the data stored according to the first protocol may be associated with a management account, and the data stored according to the first protocol may be located based on the management account.

[00165] 또 다른 실시예에서, 제 1 프로토콜에 따라 저장된 데이터는 저장 컨테이너에 기초하여 위치가 결정될 수 있다. 예컨대, 도 5의 보안 데이터 컨테이너(528)와 같은 보안 저장 컨테이너는 제 1 프로토콜에 따라 저장된 데이터와 연관될 수 있다. 애플리케이션은 관리 모드로 실행될 수 있으며, 제 1 프로토콜에 따라 저장된 데이터는 보안 데이터 컨테이너에 저장될 수 있다. 이러한 실시예에서, 제 1 프로토콜에 따라 저장된 데이터는 보안 데이터 컨테이너에 저장될 수 있으며, 제 1 프로토콜에 따라 저장된 데이터는 보안 저장 컨테이너의 저장에 기초하여 위치가 결정될 수 있다.[00165] In yet another embodiment, the data stored according to the first protocol may be located based on the storage container. For example, a secure storage container, such as secure data container 528 of FIG. 5, may be associated with data stored according to the first protocol. The application can be run in the management mode, and the stored data according to the first protocol can be stored in the secure data container. In this embodiment, the data stored according to the first protocol may be stored in the secure data container, and the stored data according to the first protocol may be located based on the storage of the secure storage container.

[00166] 또 다른 실시예에서, 제 1 프로토콜에 따라 저장된 데이터는 암호화에 기초하여 위치가 결정될 수 있다. 예컨대, 제 1 프로토콜에 따라 저장된 데이터는 제 1 키를 사용하는 암호화와 같은 특정 암호화를 사용하여 암호화될 수 있다. 애플리케이션은 관리 모드로 실행될 수 있으며, 제 1 프로토콜에 따라 저장된 데이터는 특정 암호화에 기초하여 암호화될 수 있다. 이러한 실시예에서, 제 1 프로토콜에 따라 저장된 데이터는 데이터에 대한 암호화에 기초하여 위치가 결정될 수 있다. 일례로, 제 1 키는 디바이스 관리자(524)와 연관될 수 있다.[00166] In another embodiment, the data stored according to the first protocol may be located based on encryption. For example, data stored according to the first protocol may be encrypted using a particular encryption, such as encryption using the first key. The application may be run in the management mode, and the stored data according to the first protocol may be encrypted based on the specific encryption. In this embodiment, the data stored according to the first protocol may be located based on the encryption for the data. In one example, the first key may be associated with the device manager 524.

[00167] 도 15의 프로세스는 단계(1510)로부터 단계(1512)로 진행할 수 있으며, 단계(1512)에서, 위치 결정된 데이터가 선택적으로 제거될 수 있다. 예컨대, 디바이스 관리자(524)는 등록된 모바일 디바이스를 모니터링하고, 등록된 모바일 디바이스상에서 제 1 프로토콜에 따라 저장된 데이터의 위치를 결정하며 선택적으로 위치 결정된 데이터를 제거할 수 있다. 일 실시예에서, 위치 결정된 데이터를 선택적으로 제거하는 것은 모바일 디바이스상에 저장된 임의의 다른 데이터를 제거하지 못한다. 예컨대, 위치 결정된 데이터가 애플리케이션에 대한 기업 데이터를 포함하는 경우에, 애플리케이션에 대한 개인 데이터는 제거되지 않을 수 있다. 대안적으로, 제 1 프로토콜에 따라 저장된 데이터에 대한 액세스는 디바이스가 재등록하거나 또는 애플리케이션이 관리 모드로 다시 실행될 수 있을 때까지 로크되거나 또는 차단될 수 있다. [00167] The process of FIG. 15 may proceed from step 1510 to step 1512, and at step 1512, the positioned data may be selectively removed. For example, the device manager 524 may monitor the registered mobile device, determine the location of the stored data according to the first protocol on the registered mobile device, and remove the selectively positioned data. In one embodiment, selectively removing the positioned data does not remove any other data stored on the mobile device. For example, if the positioned data includes corporate data for an application, the personal data for the application may not be removed. Alternatively, access to data stored in accordance with the first protocol may be locked or blocked until the device can re-register or the application can be run again in the management mode.

[00168] 도 16에서, 다수의 모드들로 실행될 수 있는 애플리케이션에 대한 계정을 관리하기 위한 예시적인 방법 단계들의 흐름도가 도시된다. 도 16의 프로세스는, 관리 모드로 실행되는 애플리케이션이 기업 자원들에 액세스할 수 있게 구성하기 위하여, 설치된 애플리케이션이 다수의 모드들로 실행될 수 있다는 것을 검출할 때에 사용될 수 있다. 게다가, 자원들은 특정 이벤트들에 기초하여 사전에 프로비저닝될 수 있으며 (예컨대, 새로운 종업원이 회사 생활을 시작하고 자원들은 새로운 종업원 절차들의 부분으로서 사전에 프로비저닝될 수 있으며), 따라서 관리 앱들의 처음 실행을 가속시킬 수 있다. 도 16은 단계(1602)에서 시작할 수 있으며, 단계(1602)에서, 모바일 디바이스는 새로운 애플리케이션들에 대해 모니터링된다. 예컨대, 앞서 설명된 바와같이, 디바이스 관리자(524)는 등록된 모바일 디바이스, 예컨대 모바일 디바이스(502)를 모니터링할 수 있다. 디바이스 관리자는 모바일 디바이스상에 설치된 애플리케이션을 모니터링할 수 있다. 일 실시예에서, 디바이스 관리자는 새로운 애플리케이션들의 설치를 위하여 모바일 디바이스를 주기적으로 모니터링할 수 있다.[00168] In FIG. 16, a flow diagram of exemplary method steps for managing an account for an application that may be executed in multiple modes is shown. The process of FIG. 16 can be used in detecting that an installed application can be executed in multiple modes, in order to configure an application running in the management mode to access corporate resources. In addition, resources may be provisioned in advance based on specific events (e.g., a new employee may start a company life and resources may be pre-provisioned as part of the new employee procedures) Can be accelerated. 16 may begin at step 1602, where at step 1602 the mobile device is monitored for new applications. For example, device manager 524 may monitor a registered mobile device, e.g., mobile device 502, as described above. The device manager can monitor applications installed on the mobile device. In one embodiment, the device manager may periodically monitor the mobile device for installation of new applications.

[00169] 도 16의 프로세스는 단계(1602)로부터 단계(1604)로 진행할 수 있으며, 단계(1604)에서, 관리 모드 및 비관리 모드로 실행될 수 있는 애플리케이션이 모바일 디바이스상에 설치된 것이 검출된다. 예컨대, 디바이스 관리자(524)는 등록된 모바일 디바이스를 모니터링할 수 있으며, 관리 모드 및 비관리 모드로 실행될 수 있는 애플리케이션이 모바일 디바이스상에 설치됨을 결정할 수 있다. 디바이스 관리자는 애플리케이션과 연관된 메타-데이터에 기초하여 또는 임의의 다른 적절한 검출 방식에 기초하여, 설치된 애플리케이션이 관리 모드 및 비관리 보드로 실행될 수 있음을 검출할 수 있다. [00169] The process of FIG. 16 may proceed from step 1602 to step 1604, and at step 1604 it is detected that an application capable of running in a managed mode and an unmanaged mode has been installed on the mobile device. For example, the device manager 524 may monitor the registered mobile device and may determine that an application capable of running in the management mode and the unmanaged mode is installed on the mobile device. The device manager may detect that an installed application may be run on the managed mode and on the unmanaged board based on the meta-data associated with the application or on any other suitable detection scheme.

[00170] 도 16의 프로세스는 단계(1604)로부터 단계(1606)로 진행할 수 있으며, 단계(1606)에서, 자원은 검출된 애플리케이션과 통신하도록 프로비저닝된다. 예컨대, 게이트웨이 서버(예컨대, 게이트웨이 서버(560))와 같은 자원은 애플리케이션이 관리 모드로 실행중일 때 검출된 애플리케이션과 통신하도록 프로비저닝될 수 있다.[00170] The process of FIG. 16 may proceed from step 1604 to step 1606, where at step 1606, the resources are provisioned to communicate with the detected application. For example, a resource such as a gateway server (e.g., gateway server 560) may be provisioned to communicate with an application detected when the application is running in the management mode.

[00171] 일 실시예에서, 관리는 클라우드 저장 자원을 포함할 수 있다. 클라우드 저장 자원은 기업 데이터와 같은 보안 데이터를 저장할 수 있다. 이러한 예에서, 클라우드 저장 자원은 관리 모드로 실행되는 검출된 애플리케이션과 통신하도록 프로비저닝될 수 있으며, 따라서 관리 모드로 실행되는 검출된 애플리케이션은 프로비저닝 이후에 클라우드 저장 자원에 저장된 보안 데이터에 액세스할 수 있다. [00171] In one embodiment, management may include cloud storage resources. Cloud storage resources can store security data such as corporate data. In this example, the cloud storage resource can be provisioned to communicate with the detected application running in the management mode, so that the detected application running in the management mode can access the security data stored in the cloud storage resource after provisioning.

[00172] 일 실시예에서, 자원을 프로비저닝하는 것은 애플리케이션에 대한 계정을 생성하는 것을 포함할 수 있다. 이러한 실시예에서, 도 16의 프로세스는 단계(1604)로부터 단계(1606)로 진행할 수 있으며, 단계(1606)에서, 모바일 디바이스로부터의 식별 정보와 연관되는 애플리케이션에 대한 계정이 생성된다. 예컨대, 등록된 모바일 디바이스는 모바일 디바이스와 연관되고 그리고/또는 모바일 디바이스의 사용자와 연관된 식별 정보를 가질 수 있다. 일 실시예에서, 식별 정보는 기업에 대한 액티브 디렉토리에 대한 로그인 및 패스워드와 같은 기업 크리덴셜을 포함할 수 있다. 다른 실시예에서, 식별 정보는 기업과 연관된 토큰을 포함할 수 있다. 예컨대, 등록된 모바일 디바이스는 등록된 모바일 디바이스 및/또는 등록된 모바일 디바이스에 대한 사용자를 식별하는 기업 서버로부터 토큰, 예컨대 SAML(Security Assertion Markup Language) 토큰 또는 임의의 다른 적절한 토큰을 수신할 수 있다. 식별 정보는 임의의 다른 적절한 식별 정보를 포함할 수 있다. 디바이스 관리자(예컨대, 디바이스 관리자(524))는 토큰과 같은, 모바일 디바이스상의 식별에 액세스할 수 있거나 또는 모바일 디바이스는 식별 정보를 제공할 수 있다.[00172] In one embodiment, provisioning a resource may include creating an account for the application. In this embodiment, the process of FIG. 16 may proceed from step 1604 to step 1606 where, at step 1606, an account is created for the application associated with the identification information from the mobile device. For example, the registered mobile device may be associated with the mobile device and / or may have identification information associated with the user of the mobile device. In one embodiment, the identification information may include a corporate credential, such as a login and password for the Active Directory to the enterprise. In another embodiment, the identification information may include a token associated with the enterprise. For example, the registered mobile device may receive a token, e.g., a Security Assertion Markup Language (SAML) token, or any other suitable token, from the enterprise server that identifies the user to the registered mobile device and / or the registered mobile device. The identification information may include any other suitable identification information. The device manager (e.g., device manager 524) may access the identification on the mobile device, such as a token, or the mobile device may provide identification information.

[00173] 일 실시예에서, 식별 정보와 연관되는, 관리 모드 및 비관리 모드로 실행될 수 있는 애플리케이션에 대한 계정이 생성될 수 있다. 이러한 예에서, 식별 정보는 사용자 크리덴셜들, 예컨대 기업 크리덴셜들, 토큰 또는 임의의 다른 적절한 식별 정보를 포함할 수 있다. 일 실시예에서, 애플리케이션에 대해 식별 정보와 연관된 계정이 이미 존재하지 않는다는 결정에 기초하여 계정이 생성될 수 있다. 예컨대, 서버는 식별 정보에 기초하여 애플리케이션에 대한 계정을 탐색할 수 있으며, 계정은 서버가 계정의 검색을 실패하는 것에 기초하여 생성될 수 있다. [00173] In one embodiment, an account may be created for an application that may be executed in a management mode and an unmanaged mode, associated with the identification information. In this example, the identification information may include user credentials, such as corporate credentials, tokens, or any other appropriate identifying information. In one embodiment, an account may be created based on a determination that an account associated with the identification information for the application does not already exist. For example, the server may search the account for the application based on the identification information, and the account may be created based on the server failing to retrieve the account.

[00174] 일 실시예에서, 생성된 계정은 관리 모드로 실행되는 애플리케이션과 통신하도록 구성되는 자원과 연관될 수 있다. 예컨대, 관리 모드로 실행되는 애플리케이션들과 통신하도록 구성되는 클라우드 저장 자원과 생성된 계정이 연관될 수 있다. [00174] In one embodiment, the generated account may be associated with a resource configured to communicate with an application running in a management mode. For example, the generated account may be associated with a cloud storage resource configured to communicate with applications running in the management mode.

[00175] 도 16의 프로세스는 단계(1606)로부터 단계(1608)로 진행할 수 있으며, 단계(1608)에서, 계정은 식별 정보에 기초하여 식별될 수 있다. 예컨대, 사용자, 예컨대 기업과 연관된 사용자에 대한 계정은 식별 정보, 예컨대 사용자에 대한 크리덴셜들에 기초하여 식별될 수 있다. 식별된 계정은 기업 액티브 디렉토리 계정, 기업 자원 권리들과 연계된 계정 또는 임의의 다른 적절한 기업 계정을 포함할 수 있다. 일 실시예에서, 기업 자원들은, 앞서 설명된 바와같이, 식별된 계정들에 사인 온(sign on)함으로써, 등록된 모바일 디바이스상에서 액세스될 수 있다. [00175] The process of FIG. 16 may proceed from step 1606 to step 1608, and at step 1608, the account may be identified based on the identification information. For example, an account for a user, e.g., a user associated with a company, can be identified based on identification information, e.g., credentials for the user. The identified account may include an enterprise Active Directory account, an account associated with corporate resource rights, or any other appropriate corporate account. In one embodiment, enterprise resources can be accessed on the registered mobile device by signing on to identified accounts, as described above.

[00176] 도 16의 프로세스는 단계(1608)로부터 단계(1610)로 진행할 수 있으며, 단계(1610)에서, 생성된 계정은 식별된 계정과 링크될 수 있다. 예컨대, 관리 모드 및 비관리 모드로 실행될 수 있는 애플리케이션에 대해 생성된 계정은 액티브 디렉토리 계정과 같은 기업 계정과 링크될 수 있다. 링크를 사용하여, 관리 모드로 실행되는 애플리케이션은 식별된 계정에 대한 액세스 권리들에 기초하여 시스템 자원들에 액세스할 수 있다. 예컨대, 관리 모드로 실행되는 애플리케이션과 통신하도록 구성되는 자원이 클라우드 저장 자원을 포함하는 경우에, 관리 모드로 실행되는 애플리케이션은 링크에 기초하여 클라우드 저장 자원의 보안 데이터에 액세스할 수 있다.[00176] The process of FIG. 16 may proceed from step 1608 to step 1610, and at step 1610, the generated account may be linked with the identified account. For example, an account created for an application that can run in both the administrative mode and the unmanaged mode may be linked to a corporate account, such as an Active Directory account. Using the link, an application running in administrative mode can access system resources based on access rights to the identified account. For example, if the resource configured to communicate with the application running in the management mode comprises a cloud storage resource, the application running in the management mode can access the security data of the cloud storage resource based on the link.

[00177] 일 실시예에서, 도 16에 따라 관리 모드로 실행될 수 있는 애플리케이션에 대한 계정이 생성된 이후에, 애플리케이션은 생성된 계정에 기초하여 보안 데이터에 액세스할 수 있다. 예컨대, 사용자는 관리 모드로 실행되는 애플리케이션과 사용자에 대한 크리덴셜, 예컨대 로그인 및 패스워드 또는 토큰을 사용하여, 생성된 계정에 로그인할 수 있다. 게이트웨이 서버(560)와 같은 서버는 관리 모드로 실행되는 애플리케이션이 사용자에게 제공된 크리덴셜들에 기초하여 생성된 계정에 로그인하도록 할 수 있다. 애플리케이션은 기업 데이터, 예컨대 사용자에 대한 이메일 또는 보안 문서들에 대한 액세스를 요청할 수 있다. 서버는 링크된 계정에 기초하여 애플리케이션에 대한 액세스를 허락할 수 있다. 예컨대, 링크된 계정은 사용자에 대한 액세스 권리들을 포함하는 계정 및/또는 액티브 디렉토리 계정을 포함할 수 있다. 애플리케이션은 링크된 계정에 포함되는 액세스 권리들에 따라 기업 데이터에 액세스하도록 허락될 수 있다.[00177] In one embodiment, after an account is created for an application that can be executed in the management mode according to FIG. 16, the application can access the secure data based on the created account. For example, a user may log in to a created account using a credential, e.g., a login and a password or a token, for the application and the user running in the administration mode. A server, such as gateway server 560, may allow an application running in the management mode to log into an account created based on the credentials provided to the user. The application may request access to enterprise data, e. G., E-mail or secure documents for the user. The server may grant access to the application based on the linked account. For example, the linked account may include an account and / or an Active Directory account that includes access rights to the user. The application may be allowed to access enterprise data according to the access rights included in the linked account.

[00178] 일 실시예에서, 애플리케이션은 BYOD(bring your own device)을 포함할 수 있으며, 디바이스 관리자(524)는 애플리케이션을 변경하고 그리고/또는 구성할 수 있다. 예컨대, 변경 및/또는 구성은 애플리케이션이 관리 모드로 실행될 수 있도록 애플리케이션을 조절하는 것을 포함할 수 있다. 예컨대, 애플리케이션은 애플리케이션이 관리 모드로 실행되는 동안 애플리케이션에 의해 저장된 데이터가 암호화되거나 또는 보안 데이터 컨테이너에 저장되도록 변경 및/또는 구성될 수 있다. 또 다른 예에서, 애플리케이션은 애플리케이션이 관리 모드로 실행중인 동안 애플리케이션이 하나 이상의 보안 자원들(예컨대, 게이트웨이 서버(560))과 통신할 수 있도록 변경 및/또는 구성될 수 있다. 이러한 예에서, 앞서 설명된 바와같이, 보안 자원은 관리 모드로 실행되는 애플리케이션과 통신하도록 프로비저닝된 클라우드 저장 자원을 포함할 수 있다.[00178] In one embodiment, the application may include a bring-your-own device (BYOD) and the device manager 524 may modify and / or configure the application. For example, the modification and / or configuration may include adjusting the application so that the application can be run in the management mode. For example, the application may be altered and / or configured such that data stored by the application is encrypted or stored in the secure data container while the application is running in the management mode. In another example, an application may be altered and / or configured such that an application may communicate with one or more security resources (e.g., gateway server 560) while the application is running in a management mode. In this example, as described above, the security resource may include a cloud storage resource that is provisioned to communicate with an application running in the management mode.

[00179] 일 실시예에서, 애플리케이션 스토어는 다수의 동작 모드들로 실행될 수 있는 애플리케이션을 제공할 수 있다. 애플리케이션 스토어는 다운로드가능한 애플리케이션들을 모바일 디바이스들에 제공할 수 있다. 예컨대, 모바일 디바이스는 다운로드가능한 애플리케이션들의 리스트를 요청할 수 있으며, 애플리케이션 스토어는 요청된 리스트를 제공할 수 있다. 이후, 모바일 디바이스는 애플리케이션 스토어로부터 리스트된 애플리케이션들 중 하나를 다운로드하여 다운로드된 애플리케이션을 설치할 수 있다.[00179] In one embodiment, an application store can provide an application that can be executed in a number of modes of operation. The application store can provide downloadable applications to mobile devices. For example, the mobile device may request a list of downloadable applications, and the application store may provide the requested list. The mobile device may then download one of the listed applications from the application store and install the downloaded application.

[00180] 일 실시예에서, 애플리케이션 스토어는 애플리케이션의 복수의 버전들을 제공할 수 있으며, 다수의 동작 모드들로 실행될 수 있는 버전을 제공할 수 있다. 예컨대, 앞서 설명된 바와같이, 애플리케이션 스토어는 관리 모드 또는 비관리 모드로 실행될 수 있는 애플리케이션의 버전을 제공할 수 있다.[00180] In one embodiment, an application store may provide multiple versions of an application, and may provide a version that can be executed in multiple operating modes. For example, as described above, an application store may provide a version of an application that may be run in a managed or unmanaged mode.

[00181] 도 17에서, 다수의 모드들로 실행될 수 있는 다운로드가능 애플리케이션을 제공하기 위한 예시적인 방법 단계들의 흐름도가 일 실시예에 따라 도시된다. 도 17은 단계(1702)에서 시작할 수 있으며, 단계(1702)에서, 다운로드가능 애플리케이션들에 대한 요청이 수신된다. 예컨대, 모바일 디바이스(502)와 같은 모바일 디바이스는 애플리케이션 스토어로부터 다운로드가능 애플리케이션의 리스트를 요청할 수 있다. [00181] In FIG. 17, a flow diagram of exemplary method steps for providing a downloadable application that can be executed in multiple modes is illustrated in accordance with one embodiment. Figure 17 may begin at step 1702, and at step 1702, a request for downloadable applications is received. For example, a mobile device, such as mobile device 502, may request a list of downloadable applications from an application store.

[00182] 도 17의 프로세스는 단계(1702)로부터 단계(1704)로 진행할 수 있으며, 단계(1704)에서, 모바일 디바이스가 다수의 모드들로 애플리케이션을 실행하도록 구성되는지의 여부가 결정된다. 예컨대, 모바일 디바이스가 관리 모드 및 비관리 모드로 애플리케이션을 실행하도록 구성되는지의 여부가 결정될 수 있다.[00182] The process of FIG. 17 may proceed from step 1702 to step 1704, and at step 1704 it is determined whether the mobile device is configured to run the application in multiple modes. For example, it may be determined whether the mobile device is configured to run an application in a management mode and an unmanaged mode.

[00183] 일 실시예에서, 모바일 디바이스가 관리 모드 및 비관리 모드로 애플리케이션을 실행할 수 있는 애플리케이션 관리 프레임워크로 구성될 수 있는지의 여부가 결정될 수 있다. 모바일 디바이스가 애플리케이션 관리 프레임워크(614)와 같은 애플리케이션 관리 프레임워크로 구성되는지의 여부가 결정될 수 있다.[00183] In one embodiment, it may be determined whether the mobile device can be configured with an application management framework capable of running applications in a managed mode and an unmanaged mode. It may be determined whether the mobile device is configured with an application management framework such as application management framework 614. [

[00184] 일 실시예에서, 모바일 디바이스가 관리 모드 및 비관리 모드로 애플리케이션을 실행할 수 있는 애플리케이션 관리 프레임워크로 구성되는지의 여부를 결정하는 것은 애플리케이션 관리 프레임워크와 연관된 관리 애플리케이션이 모바일 디바이스상에 설치됨을 검출하는 것을 포함할 수 있다. 예컨대, 애플리케이션 관리 프레임워크(614)와 같은 애플리케이션 관리 프레임워크와 연관되는 클라이언트 에이전트(604)와 같은 관리 애플리케이션이 모바일 디바이스상에 설치되는지의 여부가 검출될 수 있다. 클라이언트 에이전트(604)와 같은 애플리케이션이 모바일 디바이스상에 설치됨을 검출하는 것은 모바일 디바이스가 관리 모드 및 비관리 모드로 애플리케이션을 실행할 수 있는 애플리케이션 관리 프레임워크로 구성된다는 결정을 허용할 수 있다. [00184] In one embodiment, determining whether the mobile device is configured with an application management framework capable of executing applications in a management mode and an unmanaged mode includes determining if a management application associated with the application management framework is installed on the mobile device For example. For example, it may be detected whether a management application, such as client agent 604, associated with an application management framework, such as application management framework 614, is installed on the mobile device. Detecting that an application, such as the client agent 604, is installed on the mobile device may allow the determination that the mobile device is configured with an application management framework that is capable of running the application in both the managed mode and the unmanaged mode.

[00185] 일 실시예에서, 모바일 디바이스가 관리 모드 및 비관리 모드로 애플리케이션을 실행할 수 있는 애플리케이션 관리 프레임워크로 구성되는지의 여부를 결정하는 것은 모바일 디바이스가 애플리케이션 관리 프레임워크와 연관된 디바이스 관리자에 의해 관리된다는 것을 검출하는 것을 포함할 수 있다. 예컨대, 애플리케이션 관리 프레임워크(614)와 같은 애플리케이션 관리 프레임워크와 연관되는 디바이스 관리자(524)와 같은 디바이스 관리자가 모바일 디바이스를 관리하는지의 여부가 검출될 수 있다. 디바이스 관리자(524)와 같은 디바이스 관리자가 모바일 디바이스를 관리한다는 것을 검출하는 것은 모바일 디바이스가 관리 모드 및 비관리 모드로 애플리케이션을 실행할 수 있는 애플리케이션 관리 프레임워크로 구성된다는 결정을 허용할 수 있다. [00185] In one embodiment, determining whether the mobile device is configured with an application management framework capable of executing applications in a management mode and an unmanaged mode means that the mobile device is managed by the device manager associated with the application management framework ≪ / RTI > For example, whether a device manager, such as device manager 524, associated with an application management framework, such as application management framework 614, manages the mobile device can be detected. Detecting that a device manager, such as the device manager 524, manages the mobile device may allow a determination that the mobile device is configured with an application management framework that is capable of running the application in a managed mode and an unmanaged mode.

[00186] 도 17의 프로세스는 단계(1704)로부터 단계(1706)로 진행할 수 있으며, 단계(1706)에서, 다운로드가능한 애플리케이션들의 리스트는 결정에 기초하여 모바일 디바이스에 송신될 수 있다. 예컨대, 모바일 디바이스가 관리 모드 및 비관리 모드로 애플리케이션을 실행할 수 있는 애플리케이션 관리 프레임워크로 구성되는 것으로 결정될 때, 관리 모드 및 비관리 모드로 실행가능한 애플리케이션의 제 1 버전을 포함하는 다운로드가능 애플리케이션들의 리스트가 제공될 수 있다. 다른 예에서, 모바일 디바이스가 관리 모드 및 비관리 모드로 애플리케이션을 실행할 수 있는 애플리케이션 관리 프레임워크로 구성되지 않는 것으로 결정될 때, 관리 모드 및 비관리 모드로 실행가능한 애플리케이션의 제 1 버전을 제외하는 다운로드가능 애플리케이션들의 리스트가 제공될 수 있다. 예컨대, 앞서 설명된 바와같이, 애플리케이션은 파일 공유 애플리케이션을 포함할 수 있으며, 파일 공유 애플리케이션의 제 1 버전은 관리 모드 및 비관리 모드 모두에서 실행가능한 애플리케이션을 포함할 수 있다. [00186] The process of FIG. 17 may proceed from step 1704 to step 1706, and at step 1706, a list of downloadable applications may be transmitted to the mobile device based on the determination. For example, when it is determined that the mobile device is configured with an application management framework capable of running applications in a management mode and an unmanaged mode, a list of downloadable applications including a first version of an application executable in a management mode and an unmanaged mode May be provided. In another example, when it is determined that the mobile device is not configured as an application management framework capable of running applications in the management mode and the non-management mode, it is possible to download the first version of the application executable in the management mode and the non- A list of applications may be provided. For example, as described above, an application may include a file sharing application, and a first version of the file sharing application may include applications executable in both a managed mode and an unmanaged mode.

[00187] 일 실시예에서, 관리 모드 및 비관리 모드로 실행가능한 애플리케이션의 제 1 버전은 모바일 디바이스상의 애플리케이션 관리 프레임워크, 예컨대 애플리케이션 관리 프레임워크(614)와 연관될 수 있다. 애플리케이션의 제 1 버전은 모바일 디바이스에 의해 구현되는 애플리케이션 관리 프레임워크와의 연관성에 기초하여 선택될 수 있다. 예컨대, 애플리케이션 스토어는 관리 모드 및 비관리 모드로 실행가능한 애플리케이션의 복수의 버전들을 포함할 수 있으며, 애플리케이션의 제 1 버전은 애플리케이션 관리 프레임워크에 의한 실행 및/또는 관리를 위하여 제 1 버전이 구성되기 때문에 리스팅을 위해 선택될 수 있다. 주어진 모바일 디바이스의 애플리케이션 관리 프레임워크에 기초하여 애플리케이션의 적절한 버전을 선택함으로써, 단일 애플리케이션 스토어는 디바이스에 의해 구현되는 애플리케이션 관리 프레임워크와 관계없이 다양한 모바일 디바이스들에 애플리케이션을 제공할 수 있다. 따라서, 각각의 애플리케이션 관리 프레임워크 제공자는 전용 애플리케이션 스토어를 유지할 필요가 없으며, 애플리케이션 개발자들은 단순히 애플리케이션의 하나 이상의 버전들을 분배를 위한 단일 애플리케이션 스토어에 적용할 수 있다. [00187] In one embodiment, a first version of an application executable in a managed mode and an unmanaged mode may be associated with an application management framework, such as an application management framework 614, on the mobile device. The first version of the application may be selected based on an association with an application management framework implemented by the mobile device. For example, an application store may include multiple versions of an application executable in a management mode and an unmanaged mode, and a first version of the application may be configured such that a first version is configured for execution and / or management by an application management framework So it can be selected for listing. By selecting the appropriate version of the application based on the application management framework of a given mobile device, a single application store can provide applications to various mobile devices regardless of the application management framework implemented by the device. Thus, each application management framework provider need not maintain a dedicated application store, and application developers can simply apply one or more versions of the application to a single application store for distribution.

[00188] 일 실시예에서, 관리 모드 및 비관리 모드로 실행가능한 애플리케이션의 제 1 버전은 디바이스 관리자(524)와 같은 모바일 디바이스를 관리하는 디바이스 관리자와 연관될 수 있다. 애플리케이션의 제 1 버전은 디바이스 관리자와의 연관성에 기초하여 선택될 수 있다. 예컨대, 애플리케이션 스토어는 관리 모드 및 비관리 모드로 실행가능한 애플리케이션의 복수의 버전들을 포함할 수 있으며, 애플리케이션의 제 1 버전은 모바일 디바이스를 관리하는 디바이스 관리자와의 연관성에 기초하여 리스팅을 위해 선택될 수 있다. [00188] In one embodiment, a first version of an application executable in a management mode and an unmanaged mode may be associated with a device manager that manages a mobile device, such as device manager 524. The first version of the application may be selected based on the association with the device manager. For example, an application store may include multiple versions of an application executable in a management mode and an unmanaged mode, and a first version of the application may be selected for listing based on an association with a device manager managing the mobile device have.

[00189] 일 실시예에서, 다운로드가능 애플리케이션들의 리스트에 기초하여, 모바일 디바이스는 애플리케이션을 다운로드하여 설치할 수 있다. 예컨대, 리스트가 관리 모드 및 비관리 모드로 실행가능한 애플리케이션의 버전을 포함하는 실시예에서, 모바일은 애플리케이션의 버전을 다운로드하여 애플리케이션의 버전을 설치할 수 있다. 이후, 모바일 디바이스는 관리 모드 또는 비관리 모드로, 설치된 애플리케이션을 실행할 수 있다.[00189] In one embodiment, based on the list of downloadable applications, the mobile device may download and install the application. For example, in an embodiment where the list includes a version of an application executable in a management mode and an unmanaged mode, the mobile may download a version of the application and install a version of the application. Thereafter, the mobile device may run the installed application in a managed mode or an unmanaged mode.

[00190] 또 다른 실시예에서, 등록된 모바일 디바이스상에 설치된 애플리케이션이 외부 애플리케이션을 포함할 수 있다. 예컨대, 등록된 모바일 디바이스는 기업 애플리케이션 스토어와 같은, 등록된 모바일 디바이스에 대한 디바이스 관리자(예컨대, 디바이스 관리자(524))와 연계된 기업 소스보다 오히려, 범용 애플리케이션 스토어와 같은, 모바일 디바이스의 디바이스 관리자(예컨대, 디바이스 관리자(524))와 연계되지 않는 외부 소스로부터 애플리케이션을 수신할 수 있다. 일 실시예에서, 외부 애플리케이션은 기업 애플리케이션 스토어와 연관되지 않은 범용 애플리케이션을 포함할 수 있다.[00190] In another embodiment, an application installed on a registered mobile device may include an external application. For example, the registered mobile device may be a device manager (e.g., a device manager) of a mobile device, such as a general purpose application store, rather than an enterprise source associated with a device manager (e.g., device manager 524) (E.g., device manager 524). ≪ RTI ID = 0.0 > In one embodiment, the external application may include a general purpose application that is not associated with the enterprise application store.

[00191] 일 실시예에서, 외부 애플리케이션은 기업 계정 및/또는 기업 서버에 사인 온할 것을 요청할 수 있다. 기업 계정은 기업을 위한 액티브 디렉토리와 연관된 계정과 같은, 기업과 연관된 계정을 포함할 수 있다. 예컨대, 외부 애플리케이션은 이메일 클라이언트를 포함할 수 있으며, 이메일 클라이언트는 기업 이메일 계정에 사인 온할 것을 요청할 수 있다. 또 다른 예에서, 외부 애플리케이션은 클라우드 저장 애플리케이션을 포함할 수 있으며, 클라우드 저장 애플리케이션은 게이트웨이 서버와 같은 기업 자원들에 대한 액세스를 허용하는 서버에 사인 온할 것을 요청할 수 있다. [00191] In one embodiment, the external application may request to sign on to the corporate account and / or the enterprise server. A corporate account can include an account associated with a business, such as an account associated with Active Directory for a business. For example, the external application may include an email client and the email client may request to sign on to the corporate email account. In another example, the external application may include a cloud storage application, and the cloud storage application may request to sign on to a server that allows access to enterprise resources, such as a gateway server.

[00192] 일 실시예에서, 도 5의 등록된 모바일 디바이스(502)와 같은 등록된 모바일 디바이스는 외부 애플리케이션이 설치되게 할 수 있으며, 외부 애플리케이션은 도 5의 게이트웨이 서버(560)와 같은 서버에 기업 계정에 액세스하기 위한 요청을 제출할 수 있다. 이는 BYOA(bring your own application) 실시예의 예를 포함할 수 있다.[00192] In one embodiment, a registered mobile device, such as the registered mobile device 502 of FIG. 5, may cause an external application to be installed and an external application may be installed on the same server as the gateway server 560 of FIG. You can submit a request to access your account. This may include an example of a BYOA (bring your own application) embodiment.

[00193] 일 실시예에서, 관리 모바일 디바이스상에 설치된 BYOA(bring your own application)는 모바일 디바이스를 관리하는 디바이스 관리자에 의해 변경 및/또는 구성될 수 있다. 예컨대, 모바일 디바이스(502)상에 설치된 BYOA(bring your own application)는 디바이스 관리자(524)에 의해 변경될 수 있다. 변경 및/또는 구성은 애플리케이션이 관리 모드로 실행될 수 있도록 애플리케이션을 조절하는 것을 포함할 수 있다. 예컨대, 애플리케이션은 애플리케이션이 관리 모드로 실행중인 동안 애플리케이션에 의해 저장된 데이터가 암호화되거나 또는 보안 데이터 컨테이너에 저장되도록 변경 및/또는 구성될 수 있다. 또 다른 예에서, 애플리케이션은 애플리케이션이 관리 모드로 실행중인 동안 애플리케이션이 하나 이상의 보안 자원들(예컨대, 게이트웨이 서버(560))과 통신할 수 있도록 변경 및/또는 구성될 수 있다.[00193] In one embodiment, the bring-in own application (BYOA) installed on the management mobile device may be changed and / or configured by the device manager managing the mobile device. For example, the BYOA (bring your own application) installed on the mobile device 502 may be changed by the device manager 524. The modification and / or configuration may include adjusting the application so that the application can be run in the management mode. For example, the application may be altered and / or configured such that data stored by the application is encrypted or stored in the secure data container while the application is running in the management mode. In another example, an application may be altered and / or configured such that an application may communicate with one or more security resources (e.g., gateway server 560) while the application is running in a management mode.

[00194] 비록 요지가 구성적 특징들 및/또는 방법적 동작들에 특정한 언어로 설명되었을지라도, 첨부된 청구항들에서 정의된 요지가 반드시 앞서 설명된 특정 특징들 또는 동작들로 제한되는 것이 아니라는 것이 이해되어야 한다. 오히려, 앞서 설명된 특정 특징들 및 동작들은 하기의 청구항들의 예시적인 구현들로서 설명되며, 다른 실시예들이 실시될 수 있다. 예컨대, 다양한 다른 실시예들이 하기의 설명을 포함하나 이에 제한되지 않는다.[00194] Although the subject matter has been described in language specific to structural features and / or methodical acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above Should be understood. Rather, the specific features and acts described above are described as exemplary implementations of the following claims, and other embodiments may be practiced. For example, various other embodiments include, but are not limited to, the following description.

[00195] 일 실시예는 모바일 디바이스상에서, 관리 모드인 제 1 모드로 애플리케이션을 실행하는 단계; 모바일 디바이스상에서, 비관리 모드인 제 2 모드로 애플리케이션을 실행하는 단계 ― 상기 애플리케이션은 상기 애플리케이션이 제 1 모드로 실행중일 때와 상호 배타적인 시간에 제 2 모드로 실행됨 ―; 애플리케이션과 연관된 데이터를 저장하기 위한 요청을 수신하는 단계; 애플리케이션이 관리 모드로 실행중일 때 제 1 프로토콜에 따라 데이터를 저장하는 단계; 및 애플리케이션이 비관리 모드로 실행중일 때 제 2 프로토콜에 따라 데이터를 저장하는 단계를 포함하는 방법을 포함할 수 있다. 이러한 실시예에서, 제 1 프로토콜은 제 1 데이터 컨테이너에 데이터를 저장하는 것을 포함할 수 있으며, 제 2 프로토콜은 제 1 데이터 컨테이너와 상호 배타적인 제 2 데이터 컨테이너에 데이터를 저장하는 것을 포함할 수 있다. 이러한 실시예는 애플리케이션이 비관리 모드로 실행될 때 제 1 데이터 컨테이너에 액세스하는 것을 제약하는 단계를 더 포함할 수 있다. 이러한 실시예는 데이터를 저장하기 전에 제 1 키로 그 데이터를 암호화하는 것을 포함하는 제 1 프로토콜 및 데이터를 저장하기 전에 제 2 키로 데이터를 암호화하는 것 및 암호해독된 데이터를 저장하는 것 중 적어도 하나를 포함하는 제 2 프로토콜을 더 포함할 수 있다. 일부 경우들에서, 관리 모드로 실행되는 애플리케이션은 그 애플리케이션으로부터 분리되고 복수의 애플리케이션들에 적용가능한 하나 이상의 정책 파일들에 따라 디바이스 관리자에 의해 관리된다. 일부 양상들은 또한 애플리케이션의 관리 모드를 디스에이블하기 위한 신호를 디바이스 관리자로부터 수신하는 단계를 포함할 수 있다. 이러한 상황이 발생할 때, 실시예는, 수신된 신호에 응답하여, 제 1 프로토콜에 따라 저장된 데이터의 위치를 결정하고 위치 결정된 데이터를 선택적으로 제거할 수 있다. 제 1 프로토콜에 따라 저장된 데이터의 위치를 결정하는 것은 애플리케이션과 연관된 관리 계정을 결정하는 단계 및 관리 계정에 기초하여 데이터의 위치를 결정하는 단계를 포함할 수 있다. 일부 경우들에서, 제 1 프로토콜에 따라 저장된 데이터의 위치를 결정하는 단계는 제 1 프로토콜에 따라 데이터를 저장하는 컨테이너의 위치를 결정하는 단계를 더 포함한다. 일부 양상들에서, 제 1 프로토콜에 따라 저장된 데이터의 위치를 결정하는 단계는 제 1 프로토콜과 연관된 암호화 키를 결정하는 단계; 및 결정된 암호화 키에 기초하여 데이터의 위치를 결정하는 단계를 더 포함한다. 일부 실시예들에서, 디바이스 관리자는 모바일 디바이스상에 설치된 블랙 리스트 애플리케이션을 식별하는 것에 응답하여 관리 모드를 디스에이블한다. 디바이스 관리자는 애플리케이션과 연관된 관리 계정이 만료되었음을 검출하는 것에 응답하여 관리 모드를 디스에이블할 수 있다. 디바이스 관리자는 모바일 디바이스가 탈옥 또는 정착되었음을 검출하는 것에 응답하여 관리 모드를 디스에이블할 수 있다. 일부 경우들에서, 위치 결정된 데이터를 선택적으로 제거하는 단계는 모바일 디바이스상에 저장된 애플리케이션과 연관된 개인 데이터를 제거하지 않는다.[00195] One embodiment includes executing an application on a mobile device in a first mode that is a managed mode; Executing an application on a mobile device in a second mode that is an unmanaged mode, the application running in a second mode at a time that is mutually exclusive with when the application is running in the first mode; Receiving a request to store data associated with an application; Storing data according to a first protocol when the application is running in a management mode; And storing the data according to a second protocol when the application is running in an unmanaged mode. In this embodiment, the first protocol may include storing data in a first data container, and the second protocol may include storing data in a second data container that is mutually exclusive with the first data container . This embodiment may further comprise restricting access to the first data container when the application is run in an unmanaged mode. This embodiment includes a first protocol that includes encrypting the data with a first key before storing the data and at least one of encrypting the data with the second key and storing the decrypted data prior to storing the data And a second protocol including a second protocol. In some cases, the application running in the management mode is managed by the device manager in accordance with one or more policy files that are separate from the application and applicable to the plurality of applications. Some aspects may also include receiving a signal from the device manager to disable the management mode of the application. When such a situation occurs, the embodiment can, in response to the received signal, determine the location of the stored data according to the first protocol and selectively remove the positioned data. Determining the location of the stored data according to the first protocol may include determining a management account associated with the application and determining the location of the data based on the management account. In some cases, determining the location of the stored data according to the first protocol further comprises determining the location of the container storing the data according to the first protocol. In some aspects, determining the location of the stored data in accordance with the first protocol comprises: determining an encryption key associated with the first protocol; And determining the location of the data based on the determined encryption key. In some embodiments, the device manager disables the management mode in response to identifying a blacklist application installed on the mobile device. The device manager may disable the management mode in response to detecting that the management account associated with the application has expired. The device manager may disable the management mode in response to detecting that the mobile device has jailbroken or established. In some cases, selectively removing the positioned data does not remove the personal data associated with the application stored on the mobile device.

[00196] 다른 실시예는 프로세서를 포함하는 컴퓨팅 디바이스를 포함할 수 있으며, 컴퓨팅 디바이스는 제 1 모드로 애플리케이션을 실행하며 ― 제 1 모드는 애플리케이션으로부터 분리되고 컴퓨팅 디바이스상에서 실행되는 다수의 애플리케이션들의 동작들을 관리하기 위하여 사용가능한 하나 이상의 정책 파일들의 제어하에서 동작하는 관리 모드임 ―; 제 2 모드로 애플리케이션을 실행하며 ― 상기 애플리케이션은 상기 애플리케이션이 제 1 모드로 실행중일 때와 상호 배타적인 시간에 제 2 모드로 실행됨 ―; 애플리케이션과 연관된 데이터를 저장하기 위한 요청을 수신하며; 그리고 애플리케이션이 제 1 모드로 실행중일 때 제 1 프로토콜에 따라 데이터를 저장하고 애플리케이션이 제 2 모드로 실행중일 때 제 2 프로토콜에 따라 데이터를 저장하도록 구성된다. 일부 양상에서, 제 1 프로토콜은 제 1 데이터 컨테이너에 데이터를 저장하는 것을 포함하며, 제 2 프로토콜은 제 1 데이터 컨테이너와 상이한 제 2 데이터 컨테이너에 데이터를 저장하는 것을 포함한다. 일부 실시예들에서, 컴퓨팅 디바이스는 애플리케이션이 비관리 모드로 실행될 때 제 1 데이터 컨테이너에 액세스하는 것을 제약하도록 추가로 구성된다. 일부 실시예들에서, 제 1 프로토콜은 데이터를 저장하기 전에 제 1 키로 그 데이터를 암호화하는 것을 포함하며, 제 2 프로토콜은 데이터를 저장하기 전에 제 2 키로 데이터를 암호화하는 것 및 암호해독된 데이터를 저장하는 것 중 적어도 하나를 포함한다. 일부 실시예들에서, 제 1 모드는 제 1 관리 모드이며, 제 2 모드는 제 1 관리 모드와 상이한 적어도 하나의 정책 파일에 따라 관리되는 제 2 관리 모드이다. [00196] Another embodiment may include a computing device including a processor, wherein the computing device executes the application in a first mode, the first mode comprising: separating operations from a plurality of applications separated from the application and executing on the computing device A management mode operating under control of one or more policy files available for management; Executing an application in a second mode, the application executing in a second mode at a time that is mutually exclusive with when the application is running in the first mode; Receive a request to store data associated with the application; And to store the data according to the first protocol when the application is running in the first mode and to store the data according to the second protocol when the application is running in the second mode. In some aspects, the first protocol comprises storing data in a first data container, and the second protocol comprises storing data in a second data container different from the first data container. In some embodiments, the computing device is further configured to restrict access to the first data container when the application is run in an unmanaged mode. In some embodiments, the first protocol includes encrypting the data with a first key before storing the data, the second protocol encrypting the data with a second key before storing the data, and encrypting the decrypted data Or < / RTI > In some embodiments, the first mode is a first management mode, and the second mode is a second management mode managed according to at least one policy file different from the first management mode.

[00197] 또 다른 실시예는 컴퓨터-실행가능 명령들을 저장한 하나 이상의 비-일시적 컴퓨터-판독가능 저장 매체를 포함할 수 있으며, 명령들은 데이터 프로세싱 시스템의 하나 이상의 프로세서들에 의해 실행될 때, 시스템으로 하여금, 제 1 모드로 애플리케이션을 실행하며 ― 제 1 모드는 관리 모드임 ―; 제 2 모드로 애플리케이션을 실행하며 ― 제 2 모드는 비관리 모드이며, 상기 애플리케이션은 상기 애플리케이션이 제 1 모드로 실행중일 때와 상호 배타적인 시간에 제 2 모드로 실행됨 ―; 애플리케이션과 연관된 데이터를 저장하기 위한 요청을 수신하며; 애플리케이션이 관리 모드로 실행중일 때 제 1 프로토콜에 따라 데이터를 저장하고 애플리케이션이 비관리 모드로 실행중일 때 제 2 프로토콜에 따라 데이터를 저장하도록 한다.[00197] Yet another embodiment may include one or more non-transient computer-readable storage media storing computer-executable instructions, wherein the instructions, when executed by one or more processors of the data processing system, To execute an application in a first mode, the first mode being a management mode; Wherein the second mode is an unmanaged mode and the application is run in a second mode at a time that is mutually exclusive with when the application is running in the first mode; Receive a request to store data associated with the application; Stores the data according to the first protocol when the application is running in the management mode and stores the data according to the second protocol when the application is running in the unmanaged mode.

[00198] 또 다른 예시적인 실시예에서, 방법은 새로운 소프트웨어 애플리케이션이 모바일 디바이스상에서 설치됨을 결정하기 위하여 모바일 디바이스를 주기적으로 모니터링하는 단계; 애플리케이션이 제 1 모드 및 제 2 모드 모두에서 실행될 수 있음을 검출하는 단계 ― 제 1 모드는 애플리케이션으로부터 분리되고 컴퓨팅 디바이스상에서 실행되는 다수의 애플리케이션들의 동작들을 관리하기 위하여 사용가능한 하나 이상의 정책 파일들의 제어하에서 동작하는 관리 모드임 ―; 자원이, 단지 애플리케이션이 제 1 모드로 실행중일 때만 애플리케이션과 통신하고 애플리케이션이 제 2 모드로 실행중일 때 애플리케이션과 통신하지 않게 구성되도록 애플리케이션과 통신하도록 그 자원을 프로비저닝하는 단계를 포함할 수 있다. 일부 양상들에서, 자원은 보안 데이터를 저장하는 클라우드 저장 자원을 포함한다. 일부 양상들에서, 자원을 프로비저닝하는 단계는 애플리케이션이 제 1 모드로 실행중인 동안 애플리케이션이 클라우드 데이터 저장 자원에 저장된 보안 데이터에 액세스하도록 클라우드 데이터 저장 자원을 프로비저닝하는 단계를 포함한다. 일부 양상들에서, 모바일 디바이스는 디바이스 관리자에 의해 관리되며, 디바이스 관리자는 하나 이상의 정책 파일들을 운영한다. 일부 양상들에서, 자원을 프로비저닝하는 단계는 모바일 디바이스로부터 식별 정보와 연관된 애플리케이션에 대한 자원을 가진 계정을 생성하는 단계; 식별 정보에 기초하여 관리 계정의 위치를 결정하는 단계; 및 생성된 계정에 관리 계정을 링크하는 단계를 더 포함한다. 일부 양상들에서, 제 2 모드는 제 1 모드와 상이한 하나 이상의 정책 파일들의 제어하에서 동작하는 제 2 관리 모드이다. 일부 양상들에서, 제 1 모드는 제 1 사용자 역할과 연관되며, 제 2 모드는 제 1 사용자 역할과 상이한 제 2 사용자 역할과 연관된다. 일부 양상들에서, 제 1 모드는 제 1 직장 환경 타입과 연관되며, 제 2 모드는 제 2 직장 환경 타입과 연관된다. 일부 양상들에서, 방법은 애플리케이션이 제 1 모드로 실행중임을 검출하는 단계; 및 애플리케이션이 생성된 계정에 기초하여 보안 데이터에 액세스하도록 허용하는 단계를 포함한다. 일부 양상들에서, 방법은 제 1 모드로 실행되는 애플리케이션으로부터의 요청을 수신하는 단계 ― 요청은 보안 데이터에 액세스하기 위한 요청을 포함함 ―; 및 생성된 계정에 기초하여 보안 데이터에 대한 애플리케이션 액세스를 승인하는 단계를 포함한다. 일부 양상들에서, 애플리케이션은 기업에 의해 디바이스에 분배된다.[00198] In another exemplary embodiment, the method includes periodically monitoring a mobile device to determine that a new software application is installed on the mobile device; Detecting that the application can be executed in both the first mode and the second mode, the first mode comprising the steps of, under the control of one or more policy files available to manage the operations of the plurality of applications separate from the application and run on the computing device Operating mode in which it operates; The resource may comprise provisioning the resource to communicate with the application only when the application is running in the first mode and to communicate with the application so that it is configured not to communicate with the application when the application is running in the second mode. In some aspects, the resource includes a cloud storage resource that stores security data. In some aspects, provisioning the resource includes provisioning the cloud data storage resource so that the application accesses secure data stored in the cloud data storage resource while the application is running in the first mode. In some aspects, the mobile device is managed by a device manager, which manages one or more policy files. In some aspects, provisioning the resource comprises creating an account from the mobile device with resources for the application associated with the identification information; Determining a location of the management account based on the identification information; And linking the managed account to the created account. In some aspects, the second mode is a second management mode that operates under control of one or more policy files that are different from the first mode. In some aspects, the first mode is associated with a first user role, and the second mode is associated with a second user role that is different from the first user role. In some aspects, the first mode is associated with a first workplace environment type, and the second mode is associated with a second workplace environment type. In some aspects, the method includes detecting that an application is running in a first mode; And allowing the application to access the secure data based on the created account. In some aspects, the method includes receiving a request from an application running in a first mode, the request including a request to access secure data; And authorizing application access to the secure data based on the created account. In some aspects, the application is distributed to the device by the enterprise.

[00199] 또 다른 예시적인 실시예에서, 프로세서를 가진 디바이스는 새로운 소프트웨어 애플리케이션이 모바일 디바이스상에서 설치됨을 결정하기 위하여 모바일 디바이스를 주기적으로 모니터링하며; 애플리케이션이 제 1 모드 및 제 2 모드 모두에서 실행될 수 있음을 검출하며 ― 제 1 모드는 애플리케이션으로부터 분리되고 컴퓨팅 디바이스상에서 실행되는 다수의 애플리케이션들의 동작들을 관리하기 위하여 사용가능한 하나 이상의 정책 파일들의 제어하에서 동작하는 관리 모드임 ―; 자원이, 단지 애플리케이션이 제 1 모드로 실행중일 때만 애플리케이션과 통신하고 애플리케이션이 제 2 모드로 실행중일 때 애플리케이션과 통신하지 않게 구성되도록 애플리케이션과 통신하도록 그 자원을 프로비저닝하도록 구성된다. 일부 양상들에서, 자원은 보안 데이터를 저장하는 클라우드 저장 자원을 포함한다. 일부 양상들에서, 자원을 프로비저닝하는 것은 애플리케이션이 제 1 모드로 실행중인 동안 애플리케이션이 클라우드 데이터 저장 자원에 저장된 보안 데이터에 액세스하도록 클라우드 데이터 저장 자원을 프로비저닝하는 것을 포함한다. 일부 양상들에서, 모바일 디바이스는 디바이스 관리자에 의해 관리되며, 디바이스 관리자는 하나 이상의 정책 파일들을 운영한다. 일부 양상들에서, 자원을 프로비저닝하는 것은 모바일 디바이스로부터 식별 정보와 연관된 애플리케이션에 대한 자원을 가진 계정을 생성하는 것; 식별 정보에 기초하여 관리 계정의 위치를 결정하는 것; 및 생성된 계정에 관리 계정을 링크하는 것을 더 포함한다. 일부 양상들에서, 제 2 모드는 제 1 모드와 상이한 하나 이상의 정책 파일들의 제어하에서 동작하는 제 2 관리 모드이다. 일부 양상들에서, 제 1 모드는 제 1 사용자 역할과 연관되며, 제 2 모드는 제 2 사용자 역할과 연관된다. 일부 양상들에서, 디바이스는 애플리케이션이 제 1 모드로 실행중임을 검출하고; 그리고 애플리케이션이 생성된 계정에 기초하여 보안 데이터에 액세스하도록 추가로 구성된다. [00199] In another exemplary embodiment, a device with a processor periodically monitors a mobile device to determine that a new software application is installed on the mobile device; Detecting that the application is executable in both the first mode and the second mode, the first mode being operable under control of one or more policy files available to manage operations of the plurality of applications separate from the application and run on the computing device Management mode; The resources are configured to communicate with the application only when the application is running in the first mode and to provision the resources to communicate with the application such that the application is configured not to communicate with the application when the application is running in the second mode. In some aspects, the resource includes a cloud storage resource that stores security data. In some aspects, provisioning the resource includes provisioning the cloud data storage resource so that the application accesses the secure data stored in the cloud data storage resource while the application is running in the first mode. In some aspects, the mobile device is managed by a device manager, which manages one or more policy files. In some aspects, provisioning the resource comprises creating an account from the mobile device with resources for the application associated with the identification information; Determining the location of the managed account based on the identification information; And linking the managed account to the created account. In some aspects, the second mode is a second management mode that operates under control of one or more policy files that are different from the first mode. In some aspects, the first mode is associated with a first user role and the second mode is associated with a second user role. In some aspects, the device detects that the application is running in the first mode; And the application is further configured to access the secured data based on the created account.

[00200] 또 다른 예시적인 실시예에서, 하나 이상의 비-일시적 컴퓨터-판독가능 저장 매체는 컴퓨터-실행가능 명령들을 저장하며, 컴퓨터 -실행가능 명령들은, 데이터 프로세싱 시스템의 하나 이상의 프로세서들에 의해 실행될 때, 시스템으로 하여금, 새로운 소프트웨어 애플리케이션이 모바일 디바이스상에서 설치됨을 결정하기 위하여 모바일 디바이스를 주기적으로 모니터링하는 것; 애플리케이션이 제 1 모드 및 제 2 모드 모두에서 실행될 수 있음을 검출하는 것 ― 제 1 모드는 애플리케이션으로부터 분리되고 컴퓨팅 디바이스상에서 실행되는 다수의 애플리케이션들의 동작들을 관리하기 위하여 사용가능한 하나 이상의 정책 파일들의 제어하에서 동작하는 관리 모드임 ―; 및 자원이, 단지 애플리케이션이 제 1 모드로 실행중일 때만 애플리케이션과 통신하고 애플리케이션이 제 2 모드로 실행중일 때 애플리케이션과 통신하지 않게 구성되도록 애플리케이션과 통신하도록 그 자원을 프로비저닝하는 것을 수행하도록 한다.[00200] In another exemplary embodiment, the one or more non-transient computer-readable storage media stores computer-executable instructions, the computer-executable instructions being executable by one or more processors of the data processing system Periodically monitoring the mobile device to determine that a new software application is to be installed on the mobile device; Detecting that the application can be executed in both the first mode and the second mode - the first mode is a process of detecting, under control of one or more policy files available to manage operations of a plurality of applications separated from the application and executing on the computing device Operating mode in which it operates; And the resource is configured to communicate with the application only when the application is running in the first mode and to provision the resource to communicate with the application so that it is configured not to communicate with the application when the application is running in the second mode.

Claims (20)

방법으로서,
모바일 디바이스로부터, 다운로드가능한 애플리케이션들의 리스트에 대한 요청을 수신하는 단계;
상기 모바일 디바이스가 비관리 모드(unmanaged mode) 및 관리 모드(managed mode) 모두에서 애플리케이션을 실행시킬 수 있는 애플리케이션 관리 프레임워크(application management framework)로 구성되는지의 여부를 결정하는 단계; 및
상기 모바일 디바이스에, 다운로드가능한 애플리케이션들의 리스트를 송신하는 단계를 포함하고,
상기 애플리케이션 관리 프레임워크가 가용(capable)으로 결정될 때, 상기 리스트는 상기 비관리 모드 및 상기 관리 모드 모두로 실행가능한 상기 애플리케이션의 제 1 버전을 포함하고, 그리고
상기 애플리케이션 관리 프레임워크가 비가용으로 결정될 때, 상기 리스트는 상기 애플리케이션의 상기 제 1 버전을 제외하고, 상기 비관리 모드로 실행가능하고 상기 관리 모드로 실행 불가능한 상기 애플리케이션의 제 2 버전을 포함하는, 방법.
As a method,
Receiving, from the mobile device, a request for a list of downloadable applications;
Determining whether the mobile device is comprised of an application management framework capable of running an application in both an unmanaged mode and a managed mode; And
Sending a list of downloadable applications to the mobile device,
When the application management framework is determined to be capable, the list includes a first version of the application executable in both the unmanaged mode and the managed mode, and
Wherein the list includes a second version of the application executable in the unmanaged mode and not executable in the managed mode except for the first version of the application when the application management framework is determined to be unavailable, Way.
제 1 항에 있어서,
상기 모바일 디바이스가, 비관리 모드 및 관리 모드 모두로 애플리케이션을 실행시킬 수 있는 애플리케이션 관리 프레임워크로 구성되는지의 여부를 결정하는 상기 단계는, 애플리케이션 관리 프레임워크와 연관된 관리 애플리케이션(managed application)이 상기 모바일 디바이스상에 설치됨을 검출하는 단계를 더 포함하는, 방법.
The method according to claim 1,
Wherein the step of determining whether the mobile device is configured with an application management framework capable of running an application in both an unmanaged mode and an administrative mode comprises: And detecting that the device is installed on the device.
제 1 항에 있어서,
상기 다운로드가능한 애플리케이션의 상기 제 1 버전은 상기 애플리케이션 관리 프레임워크와 연관되는, 방법.
The method according to claim 1,
Wherein the first version of the downloadable application is associated with the application management framework.
제 3 항에 있어서,
상기 모바일 디바이스에, 다운로드가능한 애플리케이션들의 리스트를 송신하는 상기 단계는 상기 비관리 모드 및 상기 관리 모드 모두로 실행가능한 상기 애플리케이션의 복수의 버전들 중에서 상기 애플리케이션의 상기 제 1 버전을 선택하는 단계를 더 포함하고,
상기 애플리케이션의 상기 제 1 버전은 상기 애플리케이션 관리 프레임워크와의 연관성에 기초하여 선택되는, 방법.
The method of claim 3,
The step of sending a list of downloadable applications to the mobile device further comprises selecting the first version of the application from among a plurality of versions of the application executable in both the unmanaged mode and the managed mode and,
Wherein the first version of the application is selected based on an association with the application management framework.
제 1 항에 있어서,
상기 모바일 디바이스가, 비관리 모드 및 관리 모드 모두로 애플리케이션을 실행시킬 수 있는 애플리케이션 관리 프레임워크로 구성되는지의 여부를 결정하는 상기 단계는, 상기 모바일 디바이스가 상기 애플리케이션 관리 프레임워크와 연관된 디바이스 관리자에 의해 관리됨을 검출하는 단계를 더 포함하는, 방법.
The method according to claim 1,
Wherein the step of determining whether the mobile device is configured with an application management framework capable of running an application in both an unmanaged mode and a managed mode comprises the step of determining whether the mobile device is configured by a device manager associated with the application management framework The method further comprising:
제 5 항에 있어서,
상기 다운로드가능한 애플리케이션의 상기 제 1 버전은 상기 디바이스 관리자와 연관되는, 방법.
6. The method of claim 5,
Wherein the first version of the downloadable application is associated with the device manager.
제 6 항에 있어서,
상기 모바일 디바이스에, 다운로드가능한 애플리케이션들의 리스트를 송신하는 상기 단계는 상기 비관리 모드 및 상기 관리 모드 모두로 실행가능한 상기 애플리케이션의 복수의 버전들 중에서 상기 애플리케이션의 상기 제 1 버전을 선택하는 단계를 더 포함하고,
상기 애플리케이션의 상기 제 1 버전은 상기 디바이스 관리자와의 연관성에 기초하여 선택되는, 방법.
The method according to claim 6,
The step of sending a list of downloadable applications to the mobile device further comprises selecting the first version of the application from among a plurality of versions of the application executable in both the unmanaged mode and the managed mode and,
Wherein the first version of the application is selected based on an association with the device manager.
제 1 항에 있어서,
상기 애플리케이션의 상기 제 1 버전은, 관리 애플리케이션으로서 동작하도록, 상기 모바일 디바이스의 사용자를 고용한 기업에 의해 수정된 비관리 애플리케이션을 포함하는, 방법.
The method according to claim 1,
Wherein the first version of the application comprises an unmanaged application modified by an enterprise employing a user of the mobile device to operate as a management application.
컴퓨팅 디바이스로서,
프로세서를 포함하고,
상기 컴퓨팅 디바이스는 적어도,
모바일 디바이스로부터, 다운로드가능한 애플리케이션들의 리스트에 대한 요청을 수신하고;
상기 모바일 디바이스가, 비관리 모드 및 관리 모드 모두로 애플리케이션을 실행시킬 수 있는 애플리케이션 관리 프레임워크로 구성되는지의 여부를 결정하며; 그리고
상기 모바일 디바이스에, 다운로드가능한 애플리케이션들의 리스트를 송신하도록 구성되며,
상기 애플리케이션 관리 프레임워크가 가용으로 결정될 때, 상기 리스트는 상기 비관리 모드 및 상기 관리 모드 모두로 실행가능한 상기 애플리케이션의 제 1 버전을 포함하고, 그리고
상기 애플리케이션 관리 프레임워크가 비가용으로 결정될 때, 상기 리스트는 상기 애플리케이션의 상기 제 1 버전을 제외하고, 상기 비관리 모드로 실행가능하고 상기 관리 모드로 실행 불가능한 상기 애플리케이션의 제 2 버전을 포함하는, 컴퓨팅 디바이스.
As a computing device,
A processor,
The computing device may, at least,
Receiving, from the mobile device, a request for a list of downloadable applications;
Determine whether the mobile device is configured as an application management framework capable of running an application in both an unmanaged mode and a managed mode; And
To the mobile device, a list of downloadable applications,
When the application management framework is determined to be available, the list includes a first version of the application executable in both the unmanaged mode and the managed mode, and
Wherein the list includes a second version of the application executable in the unmanaged mode and not executable in the managed mode except for the first version of the application when the application management framework is determined to be unavailable, Computing device.
제 9 항에 있어서,
상기 모바일 디바이스가, 비관리 모드 및 관리 모드 모두로 애플리케이션을 실행시킬 수 있는 애플리케이션 관리 프레임워크로 구성되는지의 여부를 결정하는 것은 애플리케이션 관리 프레임워크와 연관된 관리 애플리케이션이 상기 모바일 디바이스상에 설치됨을 검출하는 것을 더 포함하는, 컴퓨팅 디바이스.
10. The method of claim 9,
Determining whether the mobile device is configured with an application management framework capable of running applications in both an unmanaged mode and a managed mode includes detecting that a management application associated with the application management framework is installed on the mobile device Lt; / RTI > computing device.
제 9 항에 있어서,
상기 다운로드가능한 애플리케이션의 상기 제 1 버전은 상기 애플리케이션 관리 프레임워크와 연관되는, 컴퓨팅 디바이스.
10. The method of claim 9,
Wherein the first version of the downloadable application is associated with the application management framework.
제 11 항에 있어서,
상기 모바일 디바이스에, 다운로드가능한 애플리케이션들의 리스트를 송신하는 것은 상기 비관리 모드 및 상기 관리 모드 모두로 실행가능한 상기 애플리케이션의 복수의 버전들 중에서 상기 애플리케이션의 상기 제 1 버전을 선택하는 것을 더 포함하고,
상기 애플리케이션의 상기 제 1 버전은 상기 애플리케이션 관리 프레임워크와의 연관성에 기초하여 선택되는, 컴퓨팅 디바이스.
12. The method of claim 11,
Wherein sending a list of downloadable applications to the mobile device further comprises selecting the first version of the application from among a plurality of versions of the application executable in both the unmanaged mode and the managed mode,
Wherein the first version of the application is selected based on an association with the application management framework.
제 9 항에 있어서,
상기 모바일 디바이스가, 비관리 모드 및 관리 모드 모두로 애플리케이션을 실행시킬 수 있는 애플리케이션 관리 프레임워크로 구성되는지의 여부를 결정하는 것은 상기 모바일 디바이스가 상기 애플리케이션 관리 프레임워크와 연관된 디바이스 관리자에 의해 관리됨을 검출하는 것을 더 포함하는, 컴퓨팅 디바이스.
10. The method of claim 9,
Wherein determining whether the mobile device is configured with an application management framework capable of running an application in both an unmanaged mode and an administrative mode includes detecting that the mobile device is managed by a device manager associated with the application management framework The computing device further comprising:
제 13 항에 있어서,
상기 다운로드가능한 애플리케이션의 상기 제 1 버전은 상기 디바이스 관리자와 연관되는, 컴퓨팅 디바이스.
14. The method of claim 13,
Wherein the first version of the downloadable application is associated with the device manager.
제 14 항에 있어서,
상기 모바일 디바이스에, 다운로드가능한 애플리케이션들의 리스트를 송신하는 것은 상기 비관리 모드 및 상기 관리 모드 모두로 실행가능한 상기 애플리케이션의 복수의 버전들 중에서 상기 애플리케이션의 상기 제 1 버전을 선택하는 것을 더 포함하고,
상기 애플리케이션의 상기 제 1 버전은 상기 디바이스 관리자와의 연관성에 기초하여 선택되는, 컴퓨팅 디바이스.
15. The method of claim 14,
Wherein sending a list of downloadable applications to the mobile device further comprises selecting the first version of the application from among a plurality of versions of the application executable in both the unmanaged mode and the managed mode,
Wherein the first version of the application is selected based on an association with the device manager.
제 9 항에 있어서,
상기 애플리케이션의 상기 제 1 버전은, 관리 애플리케이션으로서 동작하도록, 상기 모바일 디바이스의 사용자를 고용한 기업에 의해 수정된 비관리 애플리케이션을 포함하는, 컴퓨팅 디바이스.
10. The method of claim 9,
Wherein the first version of the application comprises an unmanaged application modified by an enterprise employing a user of the mobile device to operate as a management application.
컴퓨터-실행가능 명령들을 저장한 하나 이상의 비-일시적인 컴퓨터-판독가능 저장 매체로서,
상기 명령들은, 데이터 프로세싱 시스템의 하나 이상의 프로세서들에 의해 실행될 때, 상기 시스템으로 하여금,
모바일 디바이스로부터, 다운로드가능한 애플리케이션들의 리스트에 대한 요청을 수신하는 것;
상기 모바일 디바이스가, 비관리 모드 및 관리 모드 모두에서 애플리케이션을 실행시킬 수 있는 애플리케이션 관리 프레임워크로 구성되는지의 여부를 결정하는 것; 및
상기 모바일 디바이스에, 다운로드가능한 애플리케이션들의 리스트를 송신하는 것을 수행하도록 하며,
상기 애플리케이션 관리 프레임워크가 가용으로 결정될 때, 상기 리스트는 상기 비관리 모드 및 상기 관리 모드 모두에서 실행가능한 상기 애플리케이션의 제 1 버전을 포함하고, 그리고
상기 애플리케이션 관리 프레임워크가 비가용으로 결정될 때, 상기 리스트는 상기 애플리케이션의 상기 제 1 버전을 제외하고, 상기 비관리 모드로 실행가능하고 상기 관리 모드로 실행 불가능한 상기 애플리케이션의 제 2 버전을 포함하는, 하나 이상의 비-일시적인 컴퓨터 판독가능 저장 매체.
18. One or more non-transient computer-readable storage media storing computer-executable instructions,
The instructions, when executed by one or more processors of a data processing system,
Receiving, from the mobile device, a request for a list of downloadable applications;
Determining whether the mobile device is configured as an application management framework capable of running applications in both an unmanaged mode and a managed mode; And
Cause the mobile device to perform transmitting a list of downloadable applications,
When the application management framework is determined to be available, the list includes a first version of the application executable in both the unmanaged mode and the managed mode, and
Wherein the list includes a second version of the application executable in the unmanaged mode and not executable in the managed mode except for the first version of the application when the application management framework is determined to be unavailable, At least one non-transient computer readable storage medium.
제 17 항에 있어서,
상기 모바일 디바이스가, 비관리 모드 및 관리 모드 모두로 애플리케이션을 실행시킬 수 있는 애플리케이션 관리 프레임워크로 구성되는지의 여부를 결정하는 것은 애플리케이션 관리 프레임워크와 연관된 관리 애플리케이션이 상기 모바일 디바이스상에 설치됨을 검출하는 것을 더 포함하는, 하나 이상의 비-일시적인 컴퓨터 판독가능 저장 매체.
18. The method of claim 17,
Determining whether the mobile device is configured with an application management framework capable of running applications in both an unmanaged mode and a managed mode includes detecting that a management application associated with the application management framework is installed on the mobile device One or more non-transient computer readable storage media.
제 18 항에 있어서,
상기 다운로드가능한 애플리케이션의 상기 제 1 버전은 상기 애플리케이션 관리 프레임워크와 연관되는, 하나 이상의 비-일시적인 컴퓨터 판독가능 저장 매체.
19. The method of claim 18,
Wherein the first version of the downloadable application is associated with the application management framework.
제 19 항에 있어서,
상기 모바일 디바이스에, 다운로드가능한 애플리케이션들의 리스트를 송신하는 것은 상기 비관리 모드 및 상기 관리 모드 모두로 실행가능한 상기 애플리케이션의 복수의 버전들 중에서 상기 애플리케이션의 상기 제 1 버전을 선택하는 것을 더 포함하고,
상기 애플리케이션의 상기 제 1 버전은 상기 애플리케이션 관리 프레임워크와의 연관성에 기초하여 선택되는, 하나 이상의 비-일시적인 컴퓨터 판독가능 저장 매체.
20. The method of claim 19,
Wherein sending a list of downloadable applications to the mobile device further comprises selecting the first version of the application from among a plurality of versions of the application executable in both the unmanaged mode and the managed mode,
Wherein the first version of the application is selected based on an association with the application management framework.
KR1020157031149A 2013-03-29 2013-09-17 Data management for an application with multiple operation modes KR101730984B1 (en)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201361806557P 2013-03-29 2013-03-29
US61/806,557 2013-03-29
US13/886,889 2013-05-03
US13/886,889 US9280377B2 (en) 2013-03-29 2013-05-03 Application with multiple operation modes
US201361861758P 2013-08-02 2013-08-02
US201361861736P 2013-08-02 2013-08-02
US61/861,758 2013-08-02
US61/861,736 2013-08-02
US14/021,227 US10284627B2 (en) 2013-03-29 2013-09-09 Data management for an application with multiple operation modes
US14/021,227 2013-09-09
PCT/US2013/060047 WO2014158222A1 (en) 2013-03-29 2013-09-17 Data management for an application with multiple operation modes

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020177010876A Division KR101992740B1 (en) 2013-03-29 2013-09-17 Data management for an application with multiple operation modes

Publications (2)

Publication Number Publication Date
KR20160019410A true KR20160019410A (en) 2016-02-19
KR101730984B1 KR101730984B1 (en) 2017-04-27

Family

ID=55448790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157031149A KR101730984B1 (en) 2013-03-29 2013-09-17 Data management for an application with multiple operation modes

Country Status (2)

Country Link
KR (1) KR101730984B1 (en)
WO (1) WO2014158222A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210046979A (en) * 2019-10-21 2021-04-29 주식회사 시큐센 Method to Provide Application Security Service Based on Cloud Computing

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6688485B2 (en) 2016-07-15 2020-04-28 株式会社リコー Service providing system, service transfer system, service providing method, and program
CN114826705A (en) * 2022-04-12 2022-07-29 国网湖北省电力有限公司信息通信公司 APT attack determination method and system based on independent component analysis method and storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020192B2 (en) * 2003-02-28 2011-09-13 Michael Wright Administration of protection of data accessible by a mobile device
US9936333B2 (en) * 2010-08-10 2018-04-03 Microsoft Technology Licensing, Llc Location and contextual-based mobile application promotion and delivery
US8359016B2 (en) 2010-11-19 2013-01-22 Mobile Iron, Inc. Management of mobile applications
EP2523107B1 (en) * 2011-04-19 2018-11-07 LG Electronics Inc. Mobile terminal and system for managing applications using the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210046979A (en) * 2019-10-21 2021-04-29 주식회사 시큐센 Method to Provide Application Security Service Based on Cloud Computing

Also Published As

Publication number Publication date
WO2014158222A1 (en) 2014-10-02
KR101730984B1 (en) 2017-04-27
WO2014158222A8 (en) 2015-10-15

Similar Documents

Publication Publication Date Title
US10965734B2 (en) Data management for an application with multiple operation modes
US10701082B2 (en) Application with multiple operation modes
KR101992740B1 (en) Data management for an application with multiple operation modes
KR101877732B1 (en) Validating the identity of a mobile application for mobile application management
KR101769527B1 (en) Providing an enterprise application store
KR101738400B1 (en) Mobile device locking with context
EP3092565A1 (en) Providing mobile application management functionalities
KR101730984B1 (en) Data management for an application with multiple operation modes

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant