KR101562445B1 - 술어를 사용한 동적 장치 구성 - Google Patents

술어를 사용한 동적 장치 구성 Download PDF

Info

Publication number
KR101562445B1
KR101562445B1 KR1020137020092A KR20137020092A KR101562445B1 KR 101562445 B1 KR101562445 B1 KR 101562445B1 KR 1020137020092 A KR1020137020092 A KR 1020137020092A KR 20137020092 A KR20137020092 A KR 20137020092A KR 101562445 B1 KR101562445 B1 KR 101562445B1
Authority
KR
South Korea
Prior art keywords
profile
client device
configuration
settings
payload
Prior art date
Application number
KR1020137020092A
Other languages
English (en)
Other versions
KR20130114699A (ko
Inventor
유시-페카 맨테레
마크 윌리암 휘트모어
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20130114699A publication Critical patent/KR20130114699A/ko
Application granted granted Critical
Publication of KR101562445B1 publication Critical patent/KR101562445B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72457User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to geographic location

Abstract

구성을 위한 일반 프로파일을 클라이언트 장치에 저장하는 방법 및 장치가 기술되어 있다. 일반 프로파일은 프로파일 술어와 연관되어 있는 프로파일 페이로드를 포함할 수 있다. 프로파일 페이로드는 클라이언트 장치를 구성하기 위한 일정 범위의 가능한 설정을 지정할 수 있다. 프로파일 술어는 클라이언트 장치의 시스템 상태에 따라 구성을 위해 가능한 설정들 중 어느 것이 적용가능한지를 지정할 수 있다. 시스템 상태의 변화는 런타임 동안 동적으로 판정될 수 있다. 판정된 시스템 상태의 변화에 대해 적용가능한 프로파일 페이로드의 부분이 연관된 프로파일 술어를 통해 식별될 수 있다. 그 결과, 프로파일 페이로드의 식별된 부분을 적용함으로써 시스템 상태의 변화에 대해 클라이언트 장치의 구성이 갱신될 수 있다.

Description

술어를 사용한 동적 장치 구성{DYNAMIC DEVICE CONFIGURATION USING PREDICATES}
본 발명은 일반적으로 데이터 처리 시스템에 관한 것이다. 보다 상세하게는, 이 발명은 술어(predicate) 기반 프로파일을 사용한 동적 장치 구성에 관한 것이다.
컴퓨팅 장치가 점점 더 다목적성을 가짐에 따라, 상이한 동작 환경에 적응하도록 장치를 구성하는 일이 점점 더 복잡해지고 있다. 예를 들어, 장치는 상이한 사용자에 대해 상이한 사용자 인터페이스를 제공하거나, 상이한 위치에 있는 상이한 원격 서비스에 연결하거나, 사용자의 환경 설정(preference) 또는 장치 관리자의 요구사항에 따라 응용 프로그램(application)의 파라미터를 커스터마이즈하거나, 기타 등등을 할 수 있다. 그렇지만, 이와 동시에, 장치를 구성하는 데 있어서의 복잡도가 또한 상당히 증가하고 장치를 사용하는 것을 점점 더 어렵게 만든다.
통상적으로, 장치에 설치된 응용 프로그램에 대한 기본 설정(default setting)을 지정하기 위해 구성 파일이 장치에 사전 설치되어 있을 수 있다. 선택적으로, 장치에 저장되어 있는 설정의 수동 변경을 가능하게 해주기 위해 사용자 인터페이스가 제공되어 있을 수 있다. 그렇지만, 이용가능한 설정의 복잡도가 증가함에 따라, 수동 구성이 보통의 장치 사용자에 대해 너무 지루한 작업으로 될지도 모른다. 게다가, 대부분의 사용자는 특정의 응용 프로그램을 구성하는 데 요구되는 특별한 전문 지식을 가지고 있지 않을 수 있다. 장치에 제공되는 서비스의 관리를 위해, 수동 구성을 사용하여 중앙 집중식 정책을 시행하는 것도 역시 너무 비용이 많이 들 수 있다.
그에 따라, 최근의 사용 환경을 지원하기 위해 장치의 동작을 적응시키는 종래의 구성 관리는 장치를 사용이 불편하고, 유지에 많은 비용이 들며, 관리가 어렵고 및/또는 다른 문제로 사용할 수 없게 만들 수 있다.
본 발명은 장치에서 이용가능한 응용 프로그램/서비스에 대한 구성 설정의 동적 갱신을 가능하게 해준다. 구성 설정은 장치의 동작 상태에서 모니터링된 변화에 응답하여 구성 프로파일에 따라 자동으로 적응될 수 있다. 일 실시예에서, 구성 프로파일은 구성 설정이 다양한 동작 상태 하에서 어떻게 갱신되어야만 하는지를 지정하는 술어(예컨대, 조건 및 행위를 갖는 규칙 세트)를 포함할 수 있다. 이와 같이, 구성 프로파일은 장치의 작업 환경에 대해 사용자가 주의를 기울이는 일 없이 장치의 적절한 동작을 보장해줄 수 있다. 그에 부가하여, 관리자는 장치에서 (예컨대, 술어를 통해) 구성 프로파일 내부에 내장되어 있는 관리 정책을 시행하기 위해 구성 프로파일을 배포(deploy)할 수 있다. 선택적으로, 대응하는 응용 프로그램에 대한 특수한 구성 메커니즘은 사용자가 이들 메커니즘의 상세에 신경쓸 필요 없이 이들 응용 프로그램을 자동으로 구성하기 위해 구성 프로파일 내에 동적으로 포함될 수 있다.
일 실시예에서, 구성 프로파일은 프로파일 술어(profile predicate) 및 프로파일 페이로드(profile payload)(또는 설정 데이터)를 포함할 수 있다. 프로파일 페이로드의 적용가능성은 프로파일 술어에서의 동적으로 결정되는 조건에 기초할 수 있다. 이와 같이, 프로파일 페이로드의 일부분은 프로파일 술어에 따라 어떤 시점에서 활성(즉, 장치의 구성 설정에 있음)일 수 있다. 구성 프로파일은 사용자에게 투명하게 장치(또는 클라이언트 머신)에 자기(self)(또는 자동으로) 설치될 수 있다. 구성 프로파일의 적용은 프로파일 술어를 사용하여 장치의 현재 상태에 따라 특정의 페이로드 데이터 또는 설정을 활성화 또는 비활성화시킬 수 있다. 그 결과, 상이한 서비스/응용 프로그램에 대한 스마트한 장치 구성이 수동 작업 및 관리 노력 없이 수행될 수 있다.
본 발명의 실시예는 구성을 위한 클라이언트 장치에 일반 프로파일(generic profile)을 저장하는 방법 및 장치를 포함할 수 있다. 일반 프로파일은 프로파일 술어와 연관되어 있는 프로파일 페이로드를 포함할 수 있다. 프로파일 페이로드는 클라이언트 장치를 구성하기 위한 일정 범위의 가능한 설정을 지정할 수 있다. 일 실시예에서, 프로파일 술어는 클라이언트 장치의 시스템(또는 동작) 상태에 따라 구성을 위해 가능한 설정들 중 어느 것이 적용가능한지를 지정할 수 있다. 클라이언트 장치의 동작 상태의 변화가 런타임 동안 동적으로 결정될 수 있다. 판정된 시스템 상태의 변화에 대해 적용가능한 프로파일 페이로드의 부분이 연관된 프로파일 술어를 통해 식별될 수 있다. 그 결과, 프로파일 페이로드의 식별된 부분을 적용함으로써 시스템 상태의 변화에 대해 클라이언트 장치의 구성이 갱신될 수 있다.
다른 실시예에서, 응용 프로그램을 구성하기 위한 실행파일(executable)이 클라이언트 장치에 설치될 수 있다. 클라이언트 장치의 프로파일에서 술어는 실행파일과 연관되어 있을 수 있다. 응용 프로그램의 구성을 갱신하기 위한 실행파일을 선택하기 위해 술어에서 하나 이상의 조건이 지정될 수 있다. 클라이언트 장치의 동작 상태의 변화에 응답하여, 변경된 동작 상태에 따라 조건이 만족되는지를 판정하기 위해 술어가 평가될 수 있다. 평가가 조건이 만족된다는 것을 나타내는 경우, 응용 프로그램의 구성을 갱신하기 위해 실행하기 위한 실행파일이 선택될 수 있다.
또 다른 실시예에서, 클라이언트 장치의 설정에 대한 일반 프로파일이 구성될 수 있다. 일반 프로파일은 프로파일 술어와 연관되어 있는 프로파일 페이로드를 포함할 수 있다. 클라이언트 장치로부터 시스템 상태를 수신한 것에 응답하여, 프로파일 페이로드의 일부분이 식별될 수 있다. 프로파일 페이로드의 식별된 부분은 프로파일 술어의 대응하는 부분과 연관되어 있을 수 있다. 프로파일 페이로드의 식별된 부분과 시스템 상태 사이의 일치가 프로파일 술어의 대응하는 부분에 표시되어 있을 수 있다. 일치의 결과로서, 클라이언트 장치의 설정을 갱신하기 위해, 프로파일 페이로드의 식별된 부분이 클라이언트 장치로 송신될 수 있다.
본 발명의 다른 특징들이 첨부 도면 및 이하의 상세한 설명으로부터 명백하게 될 것이다.
유사한 참조 번호가 유사한 구성요소를 나타내고 있는 첨부 도면의 도면들에, 본 발명이 제한이 아닌 예로서 나타내어져 있다.
도 1은 술어에 의한 동적 장치 구성을 위한 네트워크화된 시스템의 일 실시예를 나타낸 블록도.
도 2는 본 명세서에 기술된 실시예에 따른, 구성을 위한 동적 프로파일을 가지는 예시적인 시스템을 나타낸 블록도.
도 3은 본 명세서에 기술된 실시예에 따른, 프로파일 페이로드 및 프로파일 술어를 포함하는 예시적인 데이터 단위를 나타낸 도면.
도 4는 본 명세서에 기술된 실시예에 따른, 장치를 동적으로 구성하는 프로세스의 일 실시예를 나타낸 흐름도.
도 5는 본 명세서에 기술된 실시예에 따른, 실행파일을 통해 응용 프로그램을 구성하는 프로세스의 일 실시예를 나타낸 흐름도.
도 6은 본 명세서에 기술된 실시예에 따른, 술어를 사용하여 클라이언트 장치를 원격으로 구성하는 프로세스의 일 실시예를 나타낸 흐름도.
도 7은 본 명세서에 기술된 실시예에서 사용될 수 있는 데이터 처리 시스템의 한 예를 나타낸 도면.
도 8은 본 명세서에 기술된 실시예와 관련하여 사용될 수 있는 전형적인 컴퓨터 시스템의 한 예를 나타낸 도면.
술어를 사용하여 장치에서 실행 중인 동작을 동적으로 구성하는 방법 및 장치가 본 명세서에 기술되어 있다. 이하의 설명에는, 본 발명의 실시예들에 대한 보다 완전한 설명한 제공하기 위해 다수의 구체적인 상세가 기술되어 있다. 그렇지만, 본 발명의 실시예가 이들 구체적인 상세 없이도 실시될 수 있다는 것이 당업자에게는 명백할 것이다. 다른 경우에, 본 발명의 실시예를 불명료하게 하는 것을 방지하기 위해, 공지된 구조 및 장치가, 상세히 도시되기 보다는, 블록도 형태로 도시되어 있다.
본 명세서에서 "일 실시예" 또는 "실시예"라는 말은 그 실시예와 관련하여 기술된 특정의 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되어 있다는 것을 의미한다. 본 명세서의 여러 곳에서 나오는 "일 실시예에서"라는 문구들 모두가 꼭 동일한 실시예를 말하는 것은 아니다.
달리 구체적으로 언급하지 않는 한, 이 설명 전체에 걸쳐, "처리" 또는 "계산" 또는 "산출" 또는 "결정" 또는 "디스플레이" 기타 등등의 용어를 이용하는 설명이, 컴퓨터 시스템의 레지스터 및 메모리 내에 물리적(전자적) 양으로 표현된 데이터를, 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 이러한 정보 저장, 전송 또는 디스플레이 장치 내의 물리적 양으로 유사하게 표현되는 다른 데이터로 조작 및 변환하는 데이터 처리 시스템 또는 유사한 전자 컴퓨팅 장치의 동작 및 프로세스를 말한다는 것을 잘 알 것이다.
여기에서 제공되는 알고리즘 및 디스플레이는 임의의 특정의 컴퓨터 또는 기타 장치에 내재적으로 관련되어 있는 것은 아니다. 여기에서의 개시 내용에 따라 다양한 범용 시스템이 프로그램과 함께 사용될 수 있거나, 필요한 머신-구현 방법 동작을 수행하도록 보다 특수화된 장치를 구성하는 것이 편리한 것으로 판명될 수 있다. 각종의 이들 시스템에 필요한 구조가 이하의 설명으로부터 드러날 것이다. 그에 부가하여, 본 발명의 실시예가 임의의 특정의 프로그래밍 언어를 참조하여 기술되어 있지 않다. 본 명세서에 기술된 본 발명의 실시예의 개시 내용을 구현하는 데 각종의 프로그래밍 언어가 사용될 수 있다는 것을 잘 알 것이다.
본 발명의 실시예가 방법으로서 또는, 데이터 처리 시스템에 의해 실행될 때, 시스템으로 하여금 방법을 수행하게 하는 실행가능 명령어를 저장하는 머신 판독가능 비일시적 저장 매체로서 구현될 수 있다. 데이터 처리 시스템 등의 장치도 역시 본 발명의 실시예일 수 있다. 본 발명의 다른 특징들이 첨부 도면 및 이하의 상세한 설명으로부터 명백하게 될 것이다.
본 발명의 적어도 어떤 실시예는 미디어를 제공하는 미디어 처리 시스템, 미디어를 저장하는 저장 장치를 포함할 수 있는 휴대용 음악 및/또는 비디오 미디어 플레이어와 같은 디지털 미디어 플레이어의 일부일 수 있고, 안테나 시스템 및 미디어 처리 시스템에 연결되어 있는 RF(radio frequency) 송수신기(예컨대, 셀룰러 전화의 RF 송수신기)를 추가로 포함할 수 있다. 어떤 실시예들에서, 원격 저장 장치에 저장된 미디어는 RF 송수신기를 통해 미디어 플레이어로 전송될 수 있다. 이 미디어는, 예를 들어, 음악 또는 기타 오디오, 정지 화상, 또는 동화상 중 하나 이상일 수 있다.
휴대용 미디어 플레이어는 터치 스크린 입력 장치, 푸시버튼 장치, 이동식 포인팅 입력 장치 또는 기타 입력 장치 등의 미디어 선택 장치를 포함할 수 있다. 이 미디어 선택 장치는 저장 장치 및/또는 원격 저장 장치에 저장된 미디어를 선택하는 데 사용될 수 있다. 적어도 어떤 실시예에서, 휴대용 미디어 플레이어는 입력 장치를 통해 선택되어, 스피커 또는 이어폰(들)을 통해 또는 디스플레이 장치 상에 제공되거나 디스플레이 장치 및 스피커 또는 이어폰(들) 둘다를 통해 제공되는 미디어의 제목 또는 기타 표시자를 디스플레이하기 위해 미디어 처리 시스템에 연결되어 있는 디스플레이 장치를 포함할 수 있다.
본 명세서에 기술된 발명의 실시예는, 예를 들어, 오락 시스템 또는 PDA(personal digital assistant), 또는 범용 컴퓨터 시스템, 또는 특수 목적 컴퓨터 시스템, 또는 다른 장치 내에 내장된 장치, 또는 미디어 플레이어를 포함하지 않는 셀룰러 전화, 또는 이들 장치의 측면 또는 기능을 겸비하고 있는 장치(예컨대, 하나의 휴대용 장치에 PDA, 오락 시스템 및 셀룰러 전화와 겸비되어 있는 아이팟® 등의 미디어 플레이어), 또는 멀티 터치 핸드헬드 장치 등의 멀티 터치 입력 장치를 포함하는 장치 또는 가전 제품 또는 멀티 터치 입력 장치를 갖는 셀 전화 및 핸드헬드 컴퓨터 등의 기타 유형의 데이터 처리 시스템의 일부일 수 있다.
일 실시예에서, 구성 프로파일은, 장치 사용자가 장치의 다양한 동작 상태에 대처하기 위해 신경쓰는 일 없이, 관리자가 장치의 동작에 구성 설정을 적용할 수 있게 해준다. 구성 프로파일은 다양한 동작 환경 및/또는 동작 상태 하에서 개별적인 설정 모음을 동적으로 사용하기 위해 장치의 응용 프로그램 또는 시스템 서비스에 유연성을 제공할 수 있다. 일 실시예에서, 구성 프로파일은, 응용 프로그램을 수정하고 재컴파일하는 일 없이, 응용 프로그램의 특정의 특성 또는 파라미터를 변경함으로써 응용 프로그램을 보다 유연하게 만들어주는 구성 데이터를 포함할 수 있다. 장치에서 실행 중인 응용 프로그램 또는 서비스는 적절히 기능하기 위해 및/또는 관리 정책에 따르기 위해 대응하는 구성 설정에 의존할 수 있다. 구성 설정은, 예를 들어, 사용자 계정 구성, 네트워크 설정, 전력 설정, 권한(privilege), 제한, 또는 응용 프로그램/서비스에 대한 기타 적용가능한 하드웨어/소프트웨어 설정을 포함할 수 있다.
장치의 동작 상태는 장치의 운영 체제를 통해 모니터링되거나 검사될 수 있는 일련의 변수에 대응할 수 있는데, 예를 들어, 동작 상태는 특정의 응용 프로그램이 실행 중인지, 몇개의 응용 프로그램이 현재 실행 중인지, 장치에 설정된 현재의 일시, 특정의 응용 프로그램이 얼마 동안 실행되고 있는지, 기본 프린터의 식별자, 네트워크 IP 주소, 장치 물리 위치, 현재의 활성 사용자(예컨대, 식별자, 사용자 그룹), 시스템이 장치에서 얼마 동안 실행되고 있는지, 또는 기타 적용가능한 하드웨어/소프트웨어 상태 등을 나타낼 수 있다. 동작 상태는 장치가 동작하고 있는 환경에 의존할 수 있다. 환경은, 예를 들어, 장치의 동작에 적용가능할 수 있는, 어느 원격 프린터가 액세스가능한지, 어느 네트워크가 인에이블되어 있는지, 어느 원격 서버가 활성인지, 또는 다른 관련 응용 프로그램 환경 파라미터 등과 같은 장치 외부에서 제어되는 다양한 파라미터 값을 포함할 수 있다.
일 실시예에서, 장치에서 동작 상태의 변화가 검출될 때, 장치의 구성 설정에 대한 갱신을 결정하기 위해 프로파일 술어가 평가될 수 있다. 프로파일 술어는 구성 프로파일에서의 연관된 프로파일 페이로드를 대응하는 구성 설정에 적용하기 위해 특정의 조건이 만족되는지를 지정하는 일련의 규칙을 포함할 수 있다. 일부 실시예에서, 코드를 실행함으로써 조건이 평가될 수 있다. 실행의 결과는 조건이 만족되는지를 나타내는 참 또는 거짓(예컨대, 이진값)의 반환값을 포함할 수 있다. 구성 프로파일에 따라 런타임 동안 상이한 조건을 구현하기 위해 규칙이 동적으로 작성될 수 있다. 일부 실시예에서, 어느 프로파일 술어가 동작 상태에서 검출된 변화에 적용가능한지를 식별하기 위해 구성 프로파일(예컨대, 장치 시스템에 저장되거나 설치된 프로파일)에 대해 검색이 수행될 수 있다. 식별된 프로파일 술어(예컨대, 규칙 세트)는 대응하는 프로파일 페이로드를 구성 설정에 적용하기 위해 만족되어야 하는 조건을 포함할 수 있다.
예를 들어, 프로파일 술어에서의 조건은 장치가 특정의 머신 모델 또는 유형에 속하는지, 장치가 회사 네트워크에 연결할 권한을 가지는지, 특정의 네트워크 인터페이스(예컨대, 이더넷 인터페이스)가 장치에 존재하거나 설치되어 있는지, 현재의 사용자 계정이 특정의 그룹(예컨대, 학교에서의 4학년 학생)에 속하는지, 응용 프로그램에 대한 프로파일 데이터가 설치되어 있는지, 또는 기타 적용가능한 조건 등을 지정할 수 있다. 프로파일 술어의 평가 또는 실행은 이들 조건이 만족되는지를 판정할 수 있다. 일 실시예에서, 조건의 지정은 부울값, 일정 범위의 값, 지정된 이산적인 (예컨대, 문자열 또는 수치) 값 세트, 또는 다른 적용가능한 값 등의 변수값에 기초할 수 있다.
프로파일 페이로드는 구성 프로파일에서의 연관된 프로파일 술어를 평가한 결과에 기초하여 장치의 구성 설정에 적용될 수 있다. 프로파일 페이로드의 적용은 장치에서 동적으로 새로운 설정을 생성하고 및/또는 기존의 설정을 갱신할 수 있다. 프로파일 페이로드는 장치에서의 (현재 실행 중이거나 실행 중이 아닐 수 있는) 특정의 응용 프로그램/서비스에 대한 구성 설정에 적용될 수 있는(또는 구성 동작을 활성화할 수 있는) 설명(예컨대, 명명법, 메니페스트, 제약조건, 디렉티브 또는 설정에 관한 다른 적용가능한 지정)을 포함할 수 있다. 선택적으로, 프로파일 페이로드는 구성 설정을 갱신하기 위해 실행될 수 있는 실행가능 코드를 포함할 수 있다.
예를 들어, 학교의 데스크톱 컴퓨터에서 구성 프로파일 내의 프로파일 술어는 4학년 학생인 사용자에 대한 사용자 인터페이스 도크 영역을 통해 특정의 픽셀 아트 응용 프로그램이 활성이고 이용가능할 것을 필요로 할 수 있다. 4학년 학생이 데스크톱 컴퓨터에 로그인하면, 특정의 픽셀 아트 응용 프로그램이 실행 중인지 여부를 판정하기 위해 프로파일 술어가 평가될 수 있다. 이 특정의 응용 프로그램이 실행 중이 아니고 및/또는 사용자 인터페이스 도크 영역에 존재하지 않는 것으로 밝혀지는 경우, 데스크톱 컴퓨터의 디스플레이 화면의 사용자 인터페이스 도크 영역에 존재하는 것에 의해 픽셀 아트 응용 프로그램을 (예컨대, 자동 응용 프로그램 검색 및 설치에 의해) 활성화시키기 위해, 대응하는 프로파일 페이로드가 적용될 수 있다.
일부 실시예에서, 프로파일 술어는 대응하는 프로파일 페이로드를 활성화시켜 특정의 동작을 수행하기 위해 응용 프로그램의 설치 및/또는 제거가 모니터링되어야만 한다는 것을 지정할 수 있다. 예를 들어, 제1 응용 프로그램의 설치는 제2 응용 프로그램이 또한 설치되고 및/또는 실행 중일 것을 필요로 할 수 있다. 한 응용 프로그램의 제거는 사용자 인터페이스 디스플레이 화면에서 도크 영역에 설치된 응용 프로그램 아이콘을 제거하는 등을 위해, 예컨대, 프로파일 페이로드에 지정되어 있는 스크립트 코드를 통해 청소(clean up) 동작을 트리거할 수 있다.
일 실시예에서, 프로파일 페이로드로부터 활성화되는 동작은 장치의 현재의 동작 상태에 의존할 수 있다. 장치의 동작 상태는, 예를 들어, 장치가 슬립 상태(sleep state)(예컨대, 에너지를 절감하기 위한 저전력 상태) 또는 어웨이크 상태(awake state)에 있는지, 사용자가 장치에 로그인 또는 로그아웃되어 있는지(또는 현재 로그인 또는 로그아웃하고 있는지), 사용자 정보(예컨대, 사용자 권한, 그룹 멤버쉽), 네트워크 설정, 위치, 시간, 또는 다른 적용가능한 상태를 나타낼 수 있다. 일 실시예에서, 장치에서 새로운 사용자 로그인을 검출할 때, 새로운 사용자가 제한된 권한을 가지는지를 판정하기 위해 프로파일 술어가 평가될 수 있다. 브라우저를 키오스크 모드에서(쿠키 또는 기타 브라우저 상태 정보를 저장/검색하는 기능이 없음) 동작하게 하기 위해 브라우저 응용 프로그램의 설정을 변경하는 것과 같이 특정의 응용 프로그램의 기능을 제한하기 위해 프로파일 페이로드가 적용될 수 있다.
일부 실시예에서, 실행 중인 응용 프로그램은 그의 설정이 새로 변경된 설정을 검색하고 적용하도록 변경되었다는 것을 통지를 받을 수 있다. 예를 들어, 프로파일 술어는 상이한 프린터에 장치의 현재의 네트워크 설정에 기초하여 관련 프로파일 페이로드에 지정된 대로 구성되도록 지시할 수 있다. 이와 같이, 모바일 장치는, 장치가 제1 물리적 위치(예컨대, 빌딩 A)로부터 제2 물리적 위치(예컨대, 빌딩 B)로 이동할 때, 상이한 프린터로 자동으로 그리고 동적으로 구성될 수 있다. 네트워크 설정에 관련된 프로파일은 휴대폰이 사용자 인터페이스를 자동으로 변경하거나(예컨대, 특정의 무선 네트워크에 참여하는 경우 특수 아이콘을 자동으로 제시함), 전화 번호(예컨대, 장치 상에 디스플레이되는 호출 버튼에 대한 응급 다이얼 번호)를 갱신하거나, 다른 적용가능한 설정을 변경할 수 있게 해줄 수 있다. 시간 기반 동작 상태는, 예를 들어, TV 셋톱 박스 장치가 하루의 상이한 시간대(time slot)에 따라 그의 시청 연령 제한(parental control) 설정을 자동으로 변경할 수 있게 해줄 수 있다.
일 실시예에서, 구성 프로파일의 설치는 원격지에 있는 프로파일 서버와의 네트워크 연결을 통해 MDM(Mobile Device Management, 모바일 장치 관리) 프로토콜 등의 관리 프로토콜에 기초할 수 있다. 다른 대안으로서 또는 선택적으로, 구성 프로파일에 대한 파일(예컨대, 각각의 응용 프로그램이 개별적인 프로파일 파일과 연관되어 있을 수 있음)이 직접(예컨대, 사용자에 의해) 장치에 설치될 수 있다. 장치에 있는 프로파일 데이터베이스는 프로파일 술어 및 관련 프로파일 페이로드를 지정하는 응용 프로그램 또는 서비스 관련 프로파일 문서를 저장할 수 있다.
일 실시예에서, 장치에서 실행 중인 응용 프로그램 또는 서비스는 응용 프로그램 또는 서비스에 대해 지정된 저장 위치로부터(로컬적으로 또는 원격적으로) 관련 구성 설정을 검색(또는 판독)할 수 있다. 활성화될 때, 응용 프로그램 또는 서비스는 완전히 기능하게 되기 전에 그의 구성 설정에의 액세스를 필요로 할 수 있다. 선택적으로, 런타임 동안, 응용 프로그램 또는 서비스는, 예를 들어, 지시받을 때, 그의 구성 설정을 재판독할 수 있다. 일 실시예에서, 구성 엔진은 구성 프로파일에 대한 변경에 응답하여 구성 프로파일을 저장하는 프로파일 데이터베이스에 따라 장치에 저장되어 있는 구성 설정을 갱신할 수 있다. 이어서, 구성 엔진은 변경에 의해 영향을 받는 응용 프로그램/서비스에 관련 구성 설정을 재판독하도록 통지하거나 지시할 수 있다.
특정의 실시예에서, 구성 프로파일은 구성 프로파일 내의 프로파일 페이로드에 동적으로 첨부될 수 있는 써드파티 플러그인 구성요소를 통해 응용 프로그램의 관리성을 확장할 수 있다. 플러그인 구성요소는 DLL(dynamically linked library, 동적 연결 라이브러리) 등의 실행가능 코드일 수 있다. 다른 대안으로서, 플러그인 구성요소는 응용 프로그램에 대한 API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스) 호출을 통해 활성화될 수 있다. 응용 프로그램에 독점적이고 및/또는 관리가 너무 복잡한 구성 메커니즘이 플러그인 구성요소를 통해 인에이블될 수 있다. 이와 같이, 응용 프로그램이 구성 프로파일에서의 플러그인 메커니즘을 통해 그 자신의 구성에 직접 참여할 수 있다.
예를 들어, 장치에서 실행 중인 사진 그래픽 응용 프로그램이 상이한 색 공간 설정 하에서 동작하도록 구성되어 있을 수 있다. 사진 그래픽 응용 프로그램에 대한 구성 설정을 명시적으로 지정하는 대신에, 장치에 설치된 구성 프로파일은 구성 프로파일에서의 프로파일 술어에 지정되어 있을 수 있는, 예컨대, 회사 정책에 의해 승인된, 요구된 색 공간에 따라 구성 설정의 갱신을 구현하는 플러그인 구성요소를 포함할 수 있다. 일 실시예에서, 사진 그래픽 응용 프로그램을 장치에 설치하는 것은 사진 그래픽 응용 프로그램을 구성하는 프로파일 술어와 연관되어 있는 프로파일 페이로드를 통해 플러그인 구성요소를 활성화시킬 수 있다. 이와 같이, 요구된 색 공간에 대한 사진 그래픽 응용 프로그램의 설정을 구성하기 위해 사진 그래픽 응용 프로그램의 제공업자에 의해 플러그인에 내장된 지식이 장치를 구성하기 위해 동적으로 적용될 수 있다.
일 실시예에서, 프로파일 서버는 클라이언트 장치를 구성하는 구성 프로파일을 배포할 수 있다. 장치로부터 수신된 동작 상태에 따라, 프로파일 서버는 장치에 대한 커스터마이즈된 프로파일을 동적으로 작성할 수 있다. 일부 실시예에서, 프로파일 서버는 장치의 현재의 동작 상태에 액세스할 필요 없이 기본 프로파일(default profile)을 장치에 제공(또는 송신)할 수 있다. 다른 대안으로서 또는 선택적으로, 프로파일 서버는 클라이언트에 대한 구성 프로파일에 어느 프로파일 술어 및 페이로드를 포함시킬지를 결정하기 위해 장치로부터 범위가 제한되어 있을 수 있는(예컨대, 설정 및/또는 상태의 모든 상세 또는 실상을 갖지는 않음) 동작 상태를 수신할 수 있다. 기본 프로파일은 장치에 대한 초기 프로파일일 수 있다. 일부 실시예에서, 각각의 장치는 관리 서버 또는 프로파일 서버가 초기 프로파일을 장치에 분배할 수 있게 해주도록 구성되어 있을 수 있다. 초기 프로파일의 활성화는 장치에서 또는 프로파일 서버로부터 개시될 수 있다. 예를 들어, 초기 프로파일에 포함된 술어가 장치에서 만족되는 경우, 초기 프로파일이 활성화될 수 있다.
프로파일 서버는 구성 프로파일을 결합 프로파일(joint profile)로서 발생하기 위해 장치로부터의 동작 상태와 결합될 수 있는 설정(예컨대, 관리자에 의해 구성됨)을 포함시킬 수 있다. 프로파일 서버는, 예를 들어, 장치에/로부터 응용 프로그램을 설치/제거하기 위해 장치에서의 결합 프로파일을 제어할 수 있다. 일 실시예에서, 프로파일 서버는 업데이트에 대한 프로파일 술어로서 새로운 규칙을 만드는 것 등의 장치에 대한 구성 프로파일의 업데이트를 작성하기 위해 장치로부터 동작 상태의 변화를 수신할 수 있다. 프로파일 서버로부터의 구성 프로파일의 배포는 MDM 프로토콜, 이메일 프로토콜, 또는 기타 적용가능한 통신 또는 메시지 프로토콜에 기초할 수 있다.
일 실시예에서, 프로파일 서버는 클라이언트 장치로 송신된 구성 프로파일을 통해 클라이언트 장치의 동작을 관리하는 정책을 밀고 나갈 수 있다. 선택적으로, 구성 프로파일은, 프로파일 서버가 정책의 변화를 참조 저장 장치의 업데이트를 통해 장치들로 전파할 수 있게 해주기 위해, 디렉토리 서버 등의 저장 장치에 대한 위치 참조를 포함할 수 있다. 정책의 예는, 예를 들어, 응용 프로그램이 특정의 그룹의 사용자(예컨대, 6학년 학생)에 의해 허용, 요구 또는 금지되는지, 어느 VPN(Virtual Private Network, 가상 사설망) 설정을 사용해야 하는지, 어느 인증서를 적용해야 하는지, 어느 응용 프로그램이 설치되어야 하는지, 어느 웹 사이트가 액세스가능한지, 장치를 사용하도록 허가된 사용자의 제한, 원격 서버로부터의 어느 서비스가 이용가능하고/허용되는지(예컨대, 연락처 서버, 메일 서버, 인쇄 서버, 메시지 서버 등), 또는 기타 적용가능한 정책 명세(policy specification)를 포함할 수 있지만, 이들로 제한되지 않는다.
일 실시예에서, 관리자는 구성 프로파일에 포함된 기존의 정책을 수정하기 위해 프로파일 서버(예컨대, 중앙 서버임)를 새로운 프로파일 술어로 갱신할 수 있다. 예를 들어, 기존의 정책에서의 프로파일 술어는, 장치가 특정의 빌딩에 물리적 위치해 있는 경우, 제1 프린터가 장치에 대한 기본 프린터로서 구성되어야만 한다는 것을 나타낼 수 있다. 이어서, 제1 프린터를 대체하기 위해 빌딩에 제2 프린터가 설치될 수 있다. 그 결과, 새로 설치된 제2 프린터가 제1 프린터 대신에 빌딩에 위치해 있는 장치에 대한 기본 프린터로서 구성되어야만 한다는 것을 지정하기 위해 프로파일 술어가 갱신될 수 있다. 프로파일 서버는, 각각의 클라이언트 장치에서의 프린터 설정의 자동 변경을 가능하게 해주기 위해, 갱신된 프로파일 술어를 갖는 갱신된 구성 프로파일을 빌딩에 있는 각각의 클라이언트 장치로 푸시할 수 있다. 갱신된 구성 프로파일은 제2 프린터에 대한 구성 데이터 또는 코드를 갖는 페이로드를 포함할 수 있다.
도 1은 술어에 의한 동적 장치 구성을 위한 네트워크화된 시스템의 일 실시예를 나타낸 블록도이다. 네트워크화된 시스템(100)은 네트워크(107)를 통해 클라이언트 장치(109) 등의 하나 이상의 장치에 연결되어 있는 프로파일 서버(101) 등의 하나 이상의 서버(또는 호스트)를 포함할 수 있다. 일 실시예에서, 네트워크(107)는 개방형 인터넷, 인트라넷, 방화벽 보호 보안 네트워크, 광대역 셀룰러 네트워크(예컨대, 3G 네트워크), 또는 기타 적용가능한 네트워크 등을 통해 프로파일 서버(101)와 클라이언트 장치(109) 사이에 (예컨대, 구성 프로파일을 푸시하기 위한) 통신 채널 또는 네트워크 연결이 설정될 수 있게 해줄 수 있다. 네트워크(107)는 유선, 무선(Wi-Fi, 블루투스, 기타 등등), 또는 이 둘의 조합일 수 있다.
프로파일 서버(101)는 일반 프로파일(105)에 기초하여 장치(109) 등의 클라이언트 장치로 구성 프로파일을 배포하는 프로파일 배포 관리자(103)를 포함할 수 있다. 일반 프로파일(105)은 클라이언트 장치의 복수의 동작 상태 또는 환경 하에서 클라이언트 장치의 (예컨대, 응용 프로그램 및/또는 서비스에서의) 동작이 어떻게 구성되어야만 하는지를 지정할 수 있다. 예를 들어, 클라이언트 장치(109)로 배포된 구성 프로파일은 클라이언트 장치(109)로부터 수신된 동작 상태 및/또는 환경을 나타내는 클라이언트 데이터에 따라 일반 프로파일(105)로부터 커스터마이즈될 수 있다.
일 실시예에서, 클라이언트 장치(109)는 구성 설정에 따라 구성된 응용 프로그램 및/또는 서비스를 실행하는 모바일 장치, 데스크톱 컴퓨터, 노트북 컴퓨터 또는 기타 클라이언트 머신일 수 있다. 구성 프로파일 관리자(111)는 클라이언트 장치(109)의 상이한 동작 상태 하에서 설정이 어떻게 지정되어야만 하는지를 지정하는 술어 및/또는 실행가능 코드를 포함할 수 있는 동적 프로파일(113)에 따라 구성 설정을 유지할 수 있다. 예를 들어, 클라이언트 장치(109)의 동작 상태의 변화가 검출될 때, 구성 프로파일 관리자(111)는 술어를 평가하거나 실행가능 코드를 실행하여 구성 설정을 갱신하는 동작을 수행할 수 있다.
도 2는 본 명세서에 기술된 실시예에 따른, 구성을 위한 동적 프로파일을 가지는 예시적인 시스템을 나타낸 블록도이다. 예를 들어, 동작 환경(201)은 도 1의 장치(109)에 대한 구성 설정을 지원할 수 있다. 일 실시예에서, 구성 프로파일 관리자(111)는 메일 응용 프로그램(211), 브라우저 응용 프로그램(213), UI 서비스(215), 네트워크 서비스(217) 또는 기타 적용가능한 사용자/시스템 레벨 프로세스 등의 장치에 설치된 및/또는 장치에서 실행 중인 프로세스를 구성하는 설정을 제공하는 동적 프로파일(113)을 유지할 수 있다. 각각의 응용 프로그램/서비스는, 예를 들어, 응용 프로그램/서비스에서 이미 지정된 설정(209)으로부터 대응하는 구성 설정을 검색 또는 판독할 수 있다. 예를 들어, 메일 응용 프로그램(211)은, 이메일 메시지를 송신 및/또는 수신하기 위해, SMTP(Simple Mail Transfer Protocol, 단순 메일 전송 프로토콜) 서버 등의 메일 배달 서버, 및/또는 IMAP(Internet Message Access Protocol, 인터넷 메시지 액세스 프로토콜) 등의 메일 검색 서버에 대한 네트워크 주소 또는 식별자의 설정을 필요로 할 수 있다. 응용 프로그램은 기동할 때 그의 설정을 결정할 수 있다. 선택적으로, 응용 프로그램은, 예를 들어, 구성 프로파일 관리자(111)에 의해 통지받을 때, 그의 설정을 동적으로 재판독할 수 있다.
동적 프로파일(113)은 장치 내에 또는 장치(예컨대, 로컬 또는 원격 연결되어 있음) 외부에 위치해 있을 수 있는 설정(209)을 포함할 수 있다. 응용 프로그램은 설정(209)으로부터 그의 대응하는 설정을 찾아내기 위한 고유 식별자와 연관되어 있을 수 있다. 다른 대안으로서, 응용 프로그램은 (예컨대, 디렉토리 검색 경로를 따라가면서) 그의 설정에 대한 내장된 이름의 파일(built in named file)(응용 프로그램의 소스 코드에서 식별됨)을 찾아낼 수 있다. 설정(209)은 연관된 장치의 동작을 위해 필요한 하드웨어, 소프트웨어 또는 기타 설정을 포함할 수 있다. 예를 들어, 설정(209)은 네트워크 설정(예컨대, 네트워크 게이트웨이에 대한 IP 주소, 네트워크 액세스 인증서 등), 현재의 활성 사용자에 대한 사용자 설정(예컨대, 그룹 식별자, 사용자 식별자 등), 프린터 설정(예컨대, 기본 프린터, 활성 프린터 등), 사용자 인터페이스 설정(예컨대, 화면 영역에 존재하는 기본 응용 프로그램 아이콘, 글자 크기, 배경색 등), 전력 설정, 또는 기타 설정을 저장할 수 있다.
일 실시예에서, 동적 프로파일(113)은 도 1의 서버(101) 등의 프로파일 서버로부터 검색 또는 수신된 프로파일을 저장하는 프로파일 데이터베이스(207)를 포함할 수 있다. 프로파일은 프로파일 페이로드와 연관되어 있는 프로파일 술어를 포함할 수 있다. 일 실시예에서, 프로파일 페이로드는 설정(113)에 구성하는 가능한 구성값을 나타낼 수 있다. 예를 들어, 장치의 동작 상태에 따라, 대응하는 프로파일 페이로드에 지정된 어느 설정 데이터가 설정(113)에 적용되어야만 하는지를 결정하기 위해 프로파일 술어가 평가될 수 있다.
상세하게는, 프로파일 술어는 장치의 하나 이상의 동작 상태 간의 논리 관계(예컨대, 논리 AND, OR 연산에 기초함)로 표현된 조건을 가지는 하나 이상의 규칙을 포함할 수 있다. 다른 대안으로서, 프로파일 술어는, 예를 들어, 어느 응용 프로그램/서비스 및/또는 어느 동작 상태가 프로파일 술어에 관련되어 있는지를 기술하는 메타 데이터를 가지는 실행파일을 포함할 수 있다. 장치의 동작 상태 및/또는 응용 프로그램/서비스의 식별자 등에 따라, 평가를 위한 프로파일 술어의 효율적인 선택을 가능하게 해주기 위해 프로파일 술어 및/또는 프로파일 페이로드가 프로파일 데이터베이스(207)에서 인덱싱되어 있을 수 있다.
구성 프로파일 관리자(111)는 새로 수신된 프로파일 및/또는 장치의 동작 상태 또는 동작 환경의 변화에 응답하여 동적 프로파일(113)을 갱신할 수 있다. 선택적으로, 구성 프로파일 관리자(111)는, 예를 들어, 사용자 요청 및/또는 주기적 자동 갱신에 기초하여, 프로파일을 검색할 수 있다. 일 실시예에서, 프로파일 검색 모듈(203)은, 기본 프로파일 또는 갱신된 프로파일을 수신하기 위해, 도 1의 프로파일 서버(101) 등의 프로파일 서버와의 네트워크 연결을 설정할 수 있다. 예를 들어, 갱신된 프로파일은 장치에 대한 구성 정책 및/또는 동작 환경의 변화(예컨대, 새로 설치된 활성 프린터)에 기초할 수 있다. 구성 프로파일 관리자(111)는, 프로파일 데이터베이스(207)를 갱신하기 위해, 수신된 프로파일로부터의 내용을 프로파일 술어 및 프로파일 페이로드로서 파싱할 수 있다.
일 실시예에서, 구성 프로파일 관리자(111)는 설정(209)을 갱신하기 위해 장치의 하나 이상의 동작 상태를 (예컨대, 운영 체제를 통해) 등록할 수 있다. 동작 상태는 동작 환경(201) 등의 운영 체제가 검출 및/또는 측정할 수 있는 장치의 동작을 기술하는 파라미터일 수 있다. 구성 프로파일 관리자(111)는 프로파일 데이터베이스(207)에 저장되어 있는 프로파일 술어에 따라 어느 동작 상태를 모니터링해야하는지를 식별할 수 있다. 일 실시예에서, 상태 모니터 모듈(205)은 등록된 동작 상태의 변화를 항상 모니터링할 수 있다. 상태 모니터 모듈(205)은, 모니터링된 동작 상태의 변화가 있을 때, 구성 프로파일 관리자(111)에 통지할 수 있다. 그에 응답하여, 구성 프로파일 관리자(111)는 프로파일 데이터베이스(207)에 저장된 프로파일 정보에 기초하여 동작 상태의 변화에 대해 설정(209)이 어떻게 갱신되어야만 하는지를 결정하기 위해 프로파일 평가 엔진(115)을 활성화시킬 수 있다.
프로파일 평가 엔진(115)은 (예컨대, 검출된 동작 상태와 프로파일 술어 사이의 일치에 기초하여) 동작 상태의 검출된 변화에 관련된 프로파일 술어를 식별할 수 있다. 예를 들어, 프로파일 평가 엔진(115)은 (예컨대, 술어가 참인 것으로 평가될 때) 설정(209)을 갱신하기 위한 연관된 프로파일 페이로드의 일부분을 결정 또는 선택하기 위해 관련된 프로파일 술어에 대해 추론 동작을 수행하는 생성 규칙 엔진을 포함할 수 있다. 프로파일 평가 엔진(115)은, 예를 들어, 적용가능한 프로파일 페이로드의 선택을 위한 값을 반환할 수 있는 관련 프로파일 술어에서의 실행파일을 실행할 수 있다. 구성 프로파일 관리자(111)는 설정(209)을 갱신하기 위해 프로파일 평가 엔진(115)으로부터 프로파일 술어의 평가의 결과를 수신할 수 있다. 일 실시예에서, 구성 프로파일 관리자(111)는 갱신을 위해, 예컨대, 특정의 로컬 또는 원격 위치에 기초하여, 응용 프로그램이 어디서 그리고 어떻게 설정(209)으로부터 그의 설정을 검색할지에 대한 지정을 포함할 수 있다.
도 3은 본 명세서에 기술된 실시예에 따른, 프로파일 페이로드 및 프로파일 술어를 포함하는 예시적인 데이터 단위를 나타낸 도면이다. 예를 들어, 도 1의 프로파일 서버(101)로부터 수신된 프로파일은 프로파일 술어(305)와 연관되어 있는 프로파일 페이로드(303)의 쌍으로서 하나 이상의 프로파일 단위(301)를 포함할 수 있다. 프로파일 술어(305)는 프로파일 페이로드(303)가 도 2의 설정(209) 등의 설정을 갱신하기 위해 어떻게 적용될 수 있는지를 판정하기 위해 평가될 수 있다. 프로파일 페이로드(303)는 도 2의 설정(209) 등의 설정에 대해 직접 갱신될 데이터(또는 값)를 포함할 수 있다. 다른 대안으로서 또는 선택적으로, 프로파일 페이로드(303)는 실행될 때 설정을 갱신할 수 있는 실행가능 이진 데이터를 포함할 수 있다. 일 실시예에서, 프로파일 페이로드는 설정을 갱신하기 위한 (예컨대, 원격 서버에 저장되어 있는) 데이터 또는 실행파일에 대한 참조 또는 링크를 포함할 수 있다. 프로파일 술어(305)는 장치의 동작 상태에 기초하여 평가될 수 있는 규칙 또는 기타 실행파일을 포함할 수 있다.
도 4는 본 명세서에 기술된 실시예에 따른, 장치를 동적으로 구성하는 프로세스의 일 실시예를 나타낸 흐름도이다. 예시적인 프로세스(400)는 하드웨어(회로, 전용 논리, 기타), 소프트웨어(전용 머신 상에서 실행되는 것 등), 또는 이 둘의 조합을 포함할 수 있는 처리 논리에 의해 수행될 수 있다. 예를 들어, 프로세스(400)가 도 1의 시스템(100)의 일부 구성요소에 의해 수행될 수 있다. 블록(401)에서, 프로세스(400)의 처리 논리는 클라이언트 장치를 구성하는 일반 프로파일을 클라이언트 장치에 저장할 수 있다. 일반 프로파일은 클라이언트 장치가 상이한 동작 상태 또는 환경 하에서 어떻게 구성되어야 하는지를 설명하고 있을 수 있다. 일반 프로파일은 프로파일 술어와 연관되어 있는 프로파일 페이로드를 포함할 수 있다. 예를 들어, 프로파일 페이로드는 클라이언트 장치를 구성하는 가능한 설정을 지정할 수 있다. 프로파일 술어는 클라이언트 장치의 동작 상태에 따라 클라이언트 장치의 구성을 위해 가능한 설정 중 어느 것을 적용할지를 선택하기 위한 제약조건, 규칙 또는 실행파일을 포함할 수 있다.
블록(403)에서, 일 실시예에서, 프로세스(400)의 처리 논리는 클라이언트 장치의 시스템 상태(또는 동작 상태)의 변화를 동적으로 판정 또는 검출할 수 있다. 장치가 물리적 위치로 이동하거나, 장치가 상이한 네트워크 주소에 바인딩될 때, 응용 프로그램이 장치에/로부터 설치/제거되거나, 응용 프로그램이 장치에서 활성화(예컨대, 실행중) 또는 비활성화(예컨대, 종료중)되거나, 사용자가 장치에/로부터 로그인/로그아웃하거나, 프로파일이 장치에/로부터 설치/제거되거나, 다른 적용가능한 이벤트가 장치에서 일어날 때 등에 변화가 검출될 수 있다.
그에 응답하여, 프로세스(400)의 처리 논리는, 블록(405)에서, 장치의 시스템 상태의 판정된 변화에 대해 적용가능한 저장된 프로파일로부터의 프로파일 페이로드의 일부분을 식별할 수 있다. 예를 들어, 장치의 변경된 시스템 상태에 따라 저장된 프로파일에서의 대응하는 프로파일 술어를 평가한 결과에 따라(예컨대, 프로파일 술어에서의 규칙에 기초하여) 프로파일 페이로드의 일부분이 선택될 수 있다. 블록(407)에서, 시스템 상태의 변화를 반영하기 위해 프로파일 페이로드의 식별된 부분이 장치의 구성 설정에 적용될 수 있다.
도 5는 본 명세서에 기술된 실시예에 따른, 실행파일을 통해 응용 프로그램을 구성하는 프로세스의 일 실시예를 나타낸 흐름도이다. 예시적인 프로세스(500)는 하드웨어(회로, 전용 논리, 기타), 소프트웨어(전용 머신 상에서 실행되는 것 등), 또는 이 둘의 조합을 포함할 수 있는 처리 논리에 의해 수행될 수 있다. 예를 들어, 프로세스(500)가 도 1의 시스템(100)의 일부 구성요소에 의해 수행될 수 있다. 블록(501)에서, 프로세스(500)의 처리 논리는 장치에서 실행 중인 응용 프로그램에 대한 클라이언트 장치에서의 구성을 갱신할 수 있는 실행파일을 설치할 수 있다. 실행파일은 응용 프로그램의 구성을 갱신하는 실행파일을 선택하는 조건을 지정하는 술어와 연관되어 있을 수 있다.
블록(503)에서, 일 실시예에서, 프로세스(500)의 처리 논리는 장치의 동작 상태의 변화에 응답하여 장치의 응용 프로그램을 구성하는 실행파일과 연관되어 있는 술어를 평가할 수 있다. 응용 프로그램 및 응용 프로그램을 구성하는 실행파일은 응용 프로그램을 제공하는 써드파티로부터 장치에 개별적으로 설치될 수 있다. 일 실시예에서, 술어는 변경된 동작 상태에 따라 응용 프로그램을 구성하는 실행파일을 선택하기 위해 조건이 만족되는지를 판정하는 장치의 동작 상태와 관련한 조건을 포함할 수 있다. 실행파일이 선택된 경우, 블록(505)에서, 장치에서의 응용 프로그램의 구성을 갱신하기 위해 실행파일이 실행될 수 있다.
도 6은 본 명세서에 기술된 실시예에 따른, 술어를 사용하여 클라이언트 장치를 원격으로 구성하는 프로세스의 일 실시예를 나타낸 흐름도이다. 예시적인 프로세스(600)는 하드웨어(회로, 전용 논리, 기타), 소프트웨어(전용 머신 상에서 실행되는 것 등), 또는 이 둘의 조합을 포함할 수 있는 처리 논리에 의해 수행될 수 있다. 예를 들어, 프로세스(600)가 도 1의 서버(101) 등의 시스템(100)의 일부 구성요소에 의해 수행될 수 있다. 블록(601)에서, 프로세스(600)의 처리 논리는 프로파일 술어(예컨대, 구성 설정의 일부분을 선택하는 조건)와 연관되어 있는 프로파일 페이로드(예컨대, 구성 설정)를 포함하는 일반 프로파일을 구성할 수 있다. 구성은, 예를 들어, 관리자가 다수의 클라이언트 장치의 구성을 관리하는 일반 프로파일의 내용을 설치/갱신할 수 있게 해주는 사용자 인터페이스에 기초할 수 있다.
블록(603)에서, 일 실시예에서, 프로세스(600)의 처리 논리는 구성 설정과 동적으로 연관되어 있는 (예컨대, 원격 연결된) 클라이언트 장치로부터 시스템 상태를 수신할 수 있다. 그에 응답하여, 프로세스(600)의 처리 논리는 수신된 시스템 상태에 대한 일반 프로파일에서 프로파일 페이로드의 일부분을 식별할 수 있다. 예를 들어, 프로세스(600)의 처리 논리는 식별된 프로파일 페이로드에 대한 프로파일 술어의 대응하는 부분을 평가함으로써 프로파일 페이로드의 식별된 부분과 시스템 상태 간에 일치가 있는지를 판정할 수 있다.
블록(605)에서, 프로세스(600)의 처리 논리는 클라이언트 장치로부터 수신된 시스템 상태에 따라 클라이언트 장치에 대한 기본 프로파일로부터 식별된 프로파일 페이로드의 일부분을 포함하는 커스터마이즈된 프로파일을 발생할 수 있다. 이어서, 블록(607)에서, 프로세스(600)의 처리 논리는, 예컨대, MDM 프로토콜에 기초하여, 클라이언트 장치의 구성 설정을 프로파일 페이로드의 식별된 부분으로 갱신하기 위해, 커스터마이즈된 프로파일을 클라이언트 장치로 송신할 수 있다.
도 7은 본 명세서에 기술된 실시예에서 사용될 수 있는 데이터 처리 시스템의 한 예를 나타낸 것이다. 도 7에 도시된 데이터 처리 시스템(700)은 하나 이상의 마이크로프로세서일 수 있거나 집적 회로의 시스템 온 칩일 수 있는 처리 시스템(711)을 포함하고, 이 시스템은 또한 처리 시스템에서 실행하기 위한 프로그램 및 데이터를 저장하는 메모리(701)를 포함한다. 시스템(700)은 또한, 예를 들어, 스피커 및 마이크를 통해 음악을 재생하거나 전화 기능을 제공하기 위한 마이크 및 스피커를 포함할 수 있는 오디오 입/출력 서브시스템(705)도 포함하고 있다. 시스템(700)은, 적어도 특정의 실시예에서, 본 명세서에 기술된 하나 이상의 프로파일을 요청하고 네트워크를 통해 통신하도록 장치를 구성하기 위해 그 프로파일을 다운로드할 수 있다. 시스템(700)은 도 1의 서버(101) 등의 서버 데이터 처리 시스템으로부터 그 프로파일을 다운로드할 수 있다. 일 실시예에서, 시스템(700)은 도 1에 도시된 장치(109)일 수 있다.
디스플레이 제어기 및 디스플레이 장치(707)는 사용자에게 시각적 사용자 인터페이스를 제공하고; 이 디지털 인터페이스는 OS X 운영 체제 소프트웨어를 실행할 때 매킨토시 컴퓨터 상에서 보여지는 것과 유사한 그래픽 사용자 인터페이스를 포함할 수 있다. 시스템(700)은 또한 다른 데이터 처리 시스템과 통신하기 위해 하나 이상의 무선 송수신기(703)를 포함한다. 무선 송수신기는 WiFi 송수신기, 적외선 송수신기, 블루투스 송수신기, 및/또는 무선 셀룰러 전화 송수신기일 수 있다. 특정 실시예에서, 부가의 구성요소(도시 생략)가 또한 시스템(700)의 일부일 수 있다는 것과, 특정 실시예에서, 도 7에 도시된 것보다 적은 수의 구성요소가 또한 데이터 처리 시스템에서 사용될 수 있다는 것을 잘 알 것이다.
데이터 처리 시스템(700)은 또한 사용자가 시스템에 입력을 제공할 수 있게 해주기 위해 제공되어 있는 하나 이상의 입력 장치(713)도 포함하고 있다. 이들 입력 장치는 키패드 또는 키보드 또는 터치 패널 또는 멀티 터치 패널일 수 있다. 데이터 처리 시스템(700)은 또한 도크(dock)에 대한 커넥터일 수 있는 선택적인 입/출력 장치(715)를 포함한다. 하나 이상의 버스(도시 생략)가 공지된 다양한 구성요소를 상호연결시키는 데 사용될 수 있다는 것을 잘 알 것이다. 도 7에 도시된 데이터 처리 시스템은 핸드헬드 컴퓨터 또는 PDA(personal digital assistant), 또는 PDA-유사 기능을 갖는 셀룰러 전화, 또는 셀룰러 전화를 포함하는 핸드헬드 컴퓨터, 또는 아이팟과 같은 미디어 플레이어, 또는 하나의 장치에 PDA 및 셀룰러 전화를 겸비하고 있는 미디어 플레이어와 같은 이들 장치의 측면들 또는 기능들을 겸비하고 있는 장치일 수 있다. 다른 실시예에서, 데이터 처리 시스템(700)은 네트워크 컴퓨터 또는 다른 장치 내에 내장된 처리 장치, 또는 도 7에 도시된 것보다 더 적은 수의 구성요소 또는 어쩌면 더 많은 수의 구성요소를 갖는 기타 유형의 데이터 처리 시스템일 수 있다.
도 8은 본 명세서에 기술된 실시예와 관련하여 사용될 수 있는 전형적인 컴퓨터 시스템의 한 예를 나타낸 것이다. 유의할 점은, 도 8이 컴퓨터 시스템의 다양한 구성요소들을 도시하고 있지만, 이러한 상세가 본 발명과 관련이 없기 때문에 도 8이 이들 구성요소를 상호연결시키는 임의의 특정의 아키텍처 또는 방식을 나타내기 위한 것이 아니라는 것이다. 또한, 보다 적은 수의 구성요소 또는 어쩌면 보다 많은 수의 구성요소를 가지는 네트워크 컴퓨터 및 기타 데이터 처리 시스템이 또한 본 발명에서 사용될 수 있다는 것을 잘 알 것이다. 도 8은 도 1에 도시된 서버 시스템을 나타낼 수 있다.
도 8에 도시된 바와 같이, 데이터 처리 시스템의 일종인 컴퓨터 시스템(800)은 마이크로프로세서(들)(805) 및 ROM(Read Only Memory)(807) 및 휘발성 RAM(809) 및 비휘발성 메모리(811)에 연결되어 있는 버스(803)를 포함한다. 마이크로프로세서(805)는, 상기한 동작들을 수행하기 위해, 메모리(807, 809, 811)로부터 명령어를 검색하고 명령어를 실행할 수 있다. 버스(803)는 이들 다양한 구성요소들을 서로 상호연결시키고 또한 이들 구성요소(805, 807, 809, 및 811)를 디스플레이 제어기 및 디스플레이 장치(813)와 주변 장치[마우스, 키보드, 모뎀, 네트워크 인터페이스, 프린터 및 공지된 기타 장치일 수 있는 입/출력(I/O) 장치 등]에 상호연결시킨다. 통상적으로, 입/출력 장치(815)는 입/출력 제어기(817)를 통해 시스템에 연결되어 있다. 휘발성 RAM(Random Access Memory)(809)은 통상적으로 메모리 내의 데이터를 리프레시 또는 유지하기 위해 계속하여 전력을 필요로 하는 동적 RAM(DRAM)으로서 구현된다.
대용량 저장 장치(811)는 통상적으로 자기 하드 드라이브 또는 자기 광 드라이브 또는 광 드라이브 또는 DVD RAM 또는 플래시 메모리 또는 시스템으로부터 전력이 제거된 후에도 데이터(예를 들어, 대량의 데이터)를 유지하는 기타 유형의 메모리 시스템이다. 통상적으로, 대용량 저장 장치(811)가 또한 랜덤 액세스 메모리일 것이지만, 꼭 그럴 필요는 없다. 도 8이 대용량 저장 장치(811)가 데이터 처리 시스템의 나머지 구성요소들에 직접 연결된 로컬 장치인 것으로 도시하고 있지만, 본 발명이 시스템으로부터 원격지에 있는 비휘발성 메모리[모뎀 또는 이더넷 인터페이스 또는 무선 네트워크 등의 네트워크 인터페이스를 통해 데이터 처리 시스템에 연결되어 있는 네트워크 저장 장치 등]를 이용할 수 있다는 것을 잘 알 것이다. 버스(803)는 공지되어 있는 다양한 브리지, 제어기, 및/또는 어댑터를 통해 서로 연결되어 있는 하나 이상의 버스를 포함할 수 있다.
"메모리"라는 용어는, 본 명세서에서 사용되는 바와 같이, DRAM(dynamic random access memory) 및 SRAM(static RAM) 등의 모든 휘발성 저장 매체를 포함하기 위한 것이다. 컴퓨터 실행가능 명령어는 자기 하드 디스크, 광 디스크 등의 비휘발성 저장 장치에 저장될 수 있고, 통상적으로, 직접 메모리 액세스 프로세스에 의해, 프로세서에 의한 소프트웨어의 실행 동안 메모리에 기입된다. 기술 분야의 당업자라면 "머신 판독가능 저장 매체"라는 용어가 프로세서에 의해 액세스가능한 임의의 유형의 휘발성 또는 비휘발성 저장 장치를 포함한다는 것을 즉각 알 것이다.
이상의 명세서에서, 본 발명이 그의 특정의 예시적인 실시예들과 관련하여 기술되어 있다. 이하의 특허청구범위에 기재된 본 발명의 보다 광의의 사상 및 범위를 벗어나지 않고 본 발명에 다양한 수정이 행해질 수 있다는 것이 명백할 것이다. 그에 따라, 본 명세서 및 첨부 도면은 제한적인 의미가 아니라 예시적인 의미로 보아야 한다.

Claims (25)

  1. 컴퓨터 구현 방법으로서,
    클라이언트 장치를 구성하기 위한 일반 프로파일(generic profile)을 상기 클라이언트 장치에 저장하는 단계 - 상기 일반 프로파일은 프로파일 술어들(profile predicates)과 연관되는 프로파일 페이로드들을 포함하고, 상기 프로파일 페이로드들은 상기 클라이언트 장치의 구성을 위한 가능한 설정들을 지정하며, 상기 프로파일 술어들은 상기 클라이언트 장치의 시스템 상태들에 따라 상기 구성을 위해 상기 가능한 설정들 중 어느 것이 적용가능한지를 지정함 -;
    상기 클라이언트 장치의 동작 상태들의 변화를 동적으로 판정하는 단계;
    상기 연관되는 프로파일 술어들을 통해 상기 시스템 상태들의 변화에 대해 적용가능한 프로파일 페이로드의 부분을 식별하는 단계; 및
    상기 시스템 상태들의 변화에 대해 상기 클라이언트 장치의 구성을 갱신하기 위해 상기 식별된 프로파일 페이로드의 부분을 적용하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 식별된 프로파일 페이로드의 부분은 실행파일(executable)을 포함하고, 상기 적용하는 단계는 상기 구성의 갱신을 위해 상기 실행파일을 실행하는 단계를 포함하는 컴퓨터 구현 방법.
  3. 제2항에 있어서, 상기 가능한 설정들은 상기 실행파일에 암시적으로(implicitly) 지정되고, 상기 실행은 상기 시스템 상태들에 대한 파라미터들을 포함하는 API(application programming interface) 호출에 기초하는 컴퓨터 구현 방법.
  4. 제1항에 있어서, 상기 일반 프로파일은 상기 클라이언트 장치에 원격으로 연결된 관리자 서버로부터 수신되는 컴퓨터 구현 방법.
  5. 제4항에 있어서, 상기 일반 프로파일은 버전을 포함하고, 상기 동작 상태들은 상기 일반 프로파일의 버전을 포함하며, 상기 변화는, 상기 일반 프로파일이 이전의 버전을 갖는 이전의(old) 일반 프로파일을 대체하기 위해 상기 관리자 서버로부터 수신되었다는 것을 나타내는 컴퓨터 구현 방법.
  6. 제1항에 있어서, 상기 동작 상태들은 응용 프로그램(application)이 상기 클라이언트 장치에 얼마 동안 설치되어 있었는지를 포함하고, 상기 구성의 갱신은 상기 설치된 응용 프로그램이 상기 클라이언트 장치로부터 제거되게 하는 컴퓨터 구현 방법.
  7. 제1항에 있어서, 상기 프로파일 페이로드들은 상기 식별된 부분을 비롯한 복수의 부분을 포함하고, 상기 복수의 부분은 조건 변수의 복수의 값과 연관되고,
    상기 식별하는 단계는 상기 동작 상태들의 변화를 이용하여 상기 프로파일 술어들을 평가하는 단계를 포함하고, 상기 평가하는 단계는 상기 조건 변수의 값들 중 하나의 값을 발생시키며, 상기 발생된 값은 상기 식별된 프로파일 페이로드의 부분에 대응하는 컴퓨터 구현 방법.
  8. 제7항에 있어서, 상기 프로파일 술어들은 규칙들의 세트를 포함하고, 상기 평가하는 단계는 상기 변화된 동작 상태들과 상기 규칙들의 세트 사이의 매칭 동작들(matching operations)에 기초하는 컴퓨터 구현 방법.
  9. 제7항에 있어서, 상기 프로파일 술어들은 실행파일을 포함하고, 상기 평가하는 단계는 상기 조건 변수에 대한 값들 중 하나의 값을 발생시키기 위해 상기 변화된 동작 상태들을 이용하여 상기 실행파일을 실행하는 단계를 포함하는 컴퓨터 구현 방법.
  10. 제7항에 있어서, 상기 식별된 프로파일 페이로드의 부분은 실행파일을 포함하고, 상기 적용하는 단계는 상기 실행파일을 호출하는 단계를 포함하는 컴퓨터 구현 방법.
  11. 제10항에 있어서, 상기 실행파일을 호출하는 단계는 상기 변화된 동작 상태들을 나타내는 입력 파라미터들을 갖는 API를 호출하는 단계를 포함하는 컴퓨터 구현 방법.
  12. 컴퓨터 구현 방법으로서,
    클라이언트 장치에 술어와 연관되는 실행파일을 설치하는 단계 - 상기 술어는 응용 프로그램의 구성을 갱신하기 위해 상기 실행파일을 선택하는 조건들을 지정함 -;
    상기 클라이언트 장치의 동작 상태의 변화에 응답하여, 상기 동작 상태의 변화에 따라 상기 조건들이 만족되는지를 판정하기 위해 상기 술어를 평가하는 단계; 및
    상기 술어의 평가에 따라 상기 실행파일이 선택되는 경우에 상기 응용 프로그램의 구성을 갱신하기 위해 상기 장치에서 상기 실행파일을 실행하는 단계
    를 포함하는 컴퓨터 구현 방법.
  13. 제12항에 있어서, 상기 클라이언트 장치는 상기 응용 프로그램의 상이한 구성들에 대한 복수의 프로파일 페이로드를 갖는 프로파일 저장소를 포함하고, 상기 설치하는 단계는 상기 프로파일 저장소의 상기 프로파일 페이로드들에 상기 실행파일을 부가하는 컴퓨터 구현 방법.
  14. 제13항에 있어서, 상기 프로파일 저장소는 상기 프로파일 페이로드들과 개별적으로 연관되는 복수의 술어를 포함하고, 상기 복수의 술어는 상기 술어를 포함하며, 상기 복수의 술어는 상기 클라이언트 장치의 상기 동작 상태에 따라 상기 응용 프로그램의 구성을 적응시키는 정책을 나타내는 컴퓨터 구현 방법.
  15. 제12항에 있어서, 상기 클라이언트 장치의 상기 동작 상태의 변화는 상기 응용 프로그램을 구성하기 위한 상기 실행파일의 설치에 의해 야기되는 컴퓨터 구현 방법.
  16. 제15항에 있어서, 상기 응용 프로그램은 상기 클라이언트 장치에서 실행 중이고, 상기 방법은, 상기 갱신된 구성을 검색하라고 상기 응용 프로그램에 통지하는 단계를 더 포함하는 컴퓨터 구현 방법.
  17. 제12항에 있어서, 상기 실행파일은 상기 응용 프로그램과 연관되는 써드파티 라이브러리(third party library)이고, 상기 응용 프로그램의 구성을 위한 상기 실행파일의 설치는 상기 응용 프로그램의 설치와 독립적인 컴퓨터 구현 방법.
  18. 컴퓨터 구현 방법으로서,
    클라이언트 장치의 설정들에 대한 일반 프로파일을 구성하는 단계 - 상기 일반 프로파일은 프로파일 술어들과 연관되는 프로파일 페이로드들을 포함함 -;
    상기 클라이언트 장치로부터 시스템 상태들을 수신하는 것에 응답하여, 상기 시스템 상태들에 따라 상기 프로파일 페이로드들의 부분을 식별하는 단계 - 상기 프로파일 페이로드들의 부분은 프로파일 술어들의 대응하는 부분과 연관되고, 상기 프로파일 술어들의 대응하는 부분은 상기 식별된 프로파일 페이로드의 부분과 상기 시스템 상태들 간의 일치를 나타냄 -; 및
    상기 클라이언트 장치의 설정들을 갱신하기 위해 상기 식별된 프로파일 페이로드의 부분을 상기 클라이언트 장치로 송신하는 단계
    를 포함하는 컴퓨터 구현 방법.
  19. 제18항에 있어서, 상기 식별하는 단계는 상기 시스템 상태들을 이용하여 상기 프로파일 술어들을 평가하는 단계를 포함하고, 상기 일치는 상기 평가의 결과에 기초하여 표시되는 컴퓨터 구현 방법.
  20. 제19항에 있어서, 상기 프로파일 술어들은 조건들을 갖는 규칙들의 세트를 포함하고, 상기 평가하는 단계는 상기 시스템 상태들을 통해 상기 조건들이 만족되는지를 판정하는 컴퓨터 구현 방법.
  21. 제20항에 있어서, 상기 프로파일 페이로드의 갱신을 수신하는 것에 응답하여, 상기 갱신된 프로파일 페이로드를 상기 클라이언트 장치로 송신하는 단계를 더 포함하는 컴퓨터 구현 방법.
  22. 제21항에 있어서, 상기 프로파일 페이로드의 갱신은 상기 클라이언트 장치에서 실행가능한 라이브러리이고, 상기 라이브러리는 상기 클라이언트 장치에서 클라이언트 응용 프로그램을 구성할 수 있는 컴퓨터 구현 방법.
  23. 머신에 의해 실행될 때, 상기 머신으로 하여금 방법을 수행하게 하는 명령어들을 갖는 머신 판독가능 비일시적 저장 매체로서,
    상기 방법은,
    클라이언트 장치를 구성하기 위한 일반 프로파일을 상기 클라이언트 장치에 저장하는 단계 - 상기 일반 프로파일은 프로파일 술어들과 연관되는 프로파일 페이로드들을 포함하고, 상기 프로파일 페이로드들은 상기 클라이언트 장치의 구성을 위한 가능한 설정들을 지정하며, 상기 프로파일 술어들은 상기 클라이언트 장치의 동작 상태들에 따라 상기 구성을 위해 상기 가능한 설정들 중 어느 것이 적용가능한지를 지정함 -;
    상기 클라이언트 장치의 동작 상태들의 변화를 동적으로 판정하는 단계;
    상기 연관되는 프로파일 술어들을 통해 시스템 상태들의 변화에 대해 적용가능한 프로파일 페이로드의 부분을 식별하는 단계; 및
    시스템 상태의 변화에 대해 상기 클라이언트 장치의 구성을 갱신하기 위해 상기 식별된 프로파일 페이로드의 부분을 적용하는 단계
    를 포함하는 머신 판독가능 비일시적 저장 매체.
  24. 머신에 의해 실행될 때, 상기 머신으로 하여금 방법을 수행하게 하는 명령어들을 갖는 머신 판독가능 비일시적 저장 매체로서,
    상기 방법은,
    초기 구성 프로파일을 장치에 설치하는 단계 - 상기 초기 구성 프로파일은 네트워크 커넥터를 통해 서버로부터 판독되고, 상기 초기 구성 프로파일은 술어를 포함함 -; 및
    상기 설치 후에 상기 술어가 만족되는 경우에만 상기 구성 프로파일의 적어도 일부를 활성화하는 단계 - 상기 활성화하는 단계는 상기 장치에서 개시됨 -
    를 포함하는 머신 판독가능 비일시적 저장 매체.
  25. 컴퓨터 시스템으로서,
    동작 상태를 갖는 상기 시스템의 설정들을 구성하기 위한 실행가능 명령어들을 저장하는 메모리;
    상기 메모리에 연결되어, 상기 설정들에 대한 프로파일을 저장하는 저장 장치 - 상기 프로파일은 술어들과 연관되는 페이로드들을 포함함 -; 및
    상기 메모리 및 상기 저장 장치에 연결되어, 상기 메모리로부터의 상기 명령어들을 실행하는 프로세서
    를 포함하고,
    상기 프로세서는,
    상기 프로파일에서 술어와 연관되는 실행파일을 설치하고 - 상기 실행파일은 상기 시스템에서 실행될 수 있는 응용 프로그램에 대한 상기 설정들을 갱신할 수 있으며, 상기 술어는 상기 응용 프로그램에 대한 상기 설정들을 갱신하기 위해 상기 실행파일을 선택하는 조건들을 지정함 -,
    상기 동작 상태의 변화에 응답하여, 상기 동작 상태의 변화에 따라 상기 조건들이 만족되는지를 판정하기 위해 상기 술어를 평가하고,
    상기 만족된 조건들에 따라 상기 실행파일이 선택되는 경우에 상기 응용 프로그램에 대한 상기 설정들을 갱신하기 위해 상기 실행파일을 실행하도록
    구성되는 컴퓨터 시스템.
KR1020137020092A 2010-12-30 2011-12-19 술어를 사용한 동적 장치 구성 KR101562445B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/982,759 US8813167B2 (en) 2010-12-30 2010-12-30 Dynamic device configuration using predicates
US12/982,759 2010-12-30
PCT/US2011/065870 WO2012091991A2 (en) 2010-12-30 2011-12-19 Dynamic device configuration using predicates

Publications (2)

Publication Number Publication Date
KR20130114699A KR20130114699A (ko) 2013-10-17
KR101562445B1 true KR101562445B1 (ko) 2015-10-21

Family

ID=45491796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137020092A KR101562445B1 (ko) 2010-12-30 2011-12-19 술어를 사용한 동적 장치 구성

Country Status (8)

Country Link
US (1) US8813167B2 (ko)
EP (1) EP2659361A2 (ko)
JP (1) JP5749814B2 (ko)
KR (1) KR101562445B1 (ko)
CN (1) CN103282885B (ko)
AU (1) AU2011352830B2 (ko)
BR (1) BR112013016711A2 (ko)
WO (1) WO2012091991A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9053487B2 (en) * 2011-08-22 2015-06-09 At&T Intellectual Property I, L.P. Methods, systems, and products for notifying of enhancements to quality of service and experience
US9621403B1 (en) * 2012-03-05 2017-04-11 Google Inc. Installing network certificates on a client computing device
JP6013061B2 (ja) * 2012-07-23 2016-10-25 株式会社東芝 情報処理装置および制御方法
JP6087530B2 (ja) * 2012-07-31 2017-03-01 パナソニックヘルスケアホールディングス株式会社 携帯端末装置、医療情報システム、プログラム
WO2014068632A1 (ja) * 2012-10-29 2014-05-08 三菱電機株式会社 設備管理装置、設備管理システム及びプログラム
US20140129686A1 (en) * 2012-11-08 2014-05-08 Nvidia Corporation Mobile computing device configured to filter and detect application profiles, a method of manufacturing the same and an external source for delivering hierarchical filtered application profiles to mobile computing devices
US9143920B2 (en) 2013-06-06 2015-09-22 Qualcomm Incorporated Fine grain position data collection
US9380077B2 (en) * 2013-08-08 2016-06-28 Iboss, Inc. Switching between networks
US9575746B2 (en) * 2013-09-16 2017-02-21 Bank Of America Corporation Computer application maturity illustration system
US8910263B1 (en) 2013-09-17 2014-12-09 Iboss, Inc. Mobile device management profile distribution
WO2015112301A1 (en) * 2014-01-24 2015-07-30 Mcafee, Inc. Automatic placeholder finder-filler
US20170052793A1 (en) * 2014-05-09 2017-02-23 Nec Corporation Automatic application control system, automatic application control method, and program recording medium
US9288235B1 (en) 2014-09-17 2016-03-15 Microsoft Technology Licensing, Llc Contextually aware device management
US10021137B2 (en) * 2014-12-27 2018-07-10 Mcafee, Llc Real-time mobile security posture
US10862747B2 (en) 2015-03-25 2020-12-08 Airwatch Llc Single user device staging
US10333778B2 (en) * 2015-03-25 2019-06-25 Airwatch, Llc Multiuser device staging
EP3220334A1 (en) * 2016-03-16 2017-09-20 Sony Mobile Communications, Inc System and method for providing generic user profiles based on user behaviour
US11444830B2 (en) * 2018-02-23 2022-09-13 Ricoh Company, Ltd. Mechanisms for cloud-based configuration and management of network devices using network mediators implemented separately from the network devices
US11456920B2 (en) * 2018-02-23 2022-09-27 Ricoh Company, Ltd. Mechanisms for cloud-based configuration and management of network devices using network mediators implemented in the network devices
US20200028879A1 (en) * 2018-07-17 2020-01-23 Microsoft Technology Licensing, Llc Queryless device configuration determination-based techniques for mobile device management
US11184223B2 (en) 2018-07-31 2021-11-23 Microsoft Technology Licensing, Llc Implementation of compliance settings by a mobile device for compliance with a configuration scenario
US11487264B2 (en) * 2018-08-10 2022-11-01 Arvus Tecnologia Ltda. Sensor and actuator based lifecycle monitoring of machines performing automated machine tasks
US10911305B2 (en) * 2018-09-28 2021-02-02 Vmware, Inc. Efficient rule processing for device management data evaluation
US11894973B2 (en) 2022-03-10 2024-02-06 Ricoh Company, Ltd. Assigning and prioritizing mediation servers for monitoring legacy devices
US11606242B1 (en) 2022-03-10 2023-03-14 Ricoh Company, Ltd. Coordinated monitoring of legacy output devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000214963A (ja) 1999-01-25 2000-08-04 Toshiba Corp コンピュ―タシステムおよび設定情報の自動設定方法
JP2001344108A (ja) 2000-05-30 2001-12-14 Fujitsu Ltd 機器の環境情報設定方法
WO2004040923A1 (en) 2002-11-01 2004-05-13 Nokia Corporation Disposable mini-applications
US20080168267A1 (en) 2007-01-09 2008-07-10 Bolen Charles S System and method for dynamically configuring a mobile device

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2521020B2 (ja) * 1993-04-05 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 情報処理システム
US5682529A (en) * 1994-03-14 1997-10-28 Apple Computer, Inc. System for dynamically accommodating changes in display configuration by notifying changes to currently running application programs to generate information by application programs to conform to changed configuration
US6289396B1 (en) * 1995-11-21 2001-09-11 Diamond Multimedia Systems, Inc. Dynamic programmable mode switching device driver architecture
JP2003256304A (ja) * 2002-02-28 2003-09-12 Toppan Forms Co Ltd パラメータ情報の提供方法及びパラメータ情報の提供システム
JP2003323363A (ja) * 2002-04-30 2003-11-14 Fujitsu Ltd 環境設定装置、環境設定プログラム、および情報処理装置
JP2003338855A (ja) * 2002-05-21 2003-11-28 Sharp Corp 通信端末装置の動作モード設定方法及び通信端末装置
JP2004054494A (ja) * 2002-07-18 2004-02-19 Sharp Corp 情報処理装置、情報処理方法、情報処理プログラム、および該プログラムを記録した記録媒体
EP1526457B1 (en) 2003-10-22 2013-03-13 Sony Deutschland GmbH Context-aware automatic service discovery and execution engine in mobile ad-hoc networks
US7860959B1 (en) * 2004-03-04 2010-12-28 Cisco Technology, Inc. Configuration objectification and version control
US7873685B2 (en) * 2004-05-13 2011-01-18 Pixar System and method for flexible path handling
JP2005327008A (ja) * 2004-05-13 2005-11-24 Nippon Telegr & Teleph Corp <Ntt> 設定情報統合管理システム及び設定情報統合管理方法
US8254921B2 (en) * 2004-08-12 2012-08-28 Qualcomm Incorporated Default configurations with differential encoding in a wireless communication system
US7636333B2 (en) * 2004-11-16 2009-12-22 Qualcomm Incorporated Method and apparatus for carrier customization in communication systems
JP2006185013A (ja) * 2004-12-27 2006-07-13 Kyocera Mita Corp 情報処理装置、それを備えた画像形成装置およびプログラム
US7716651B2 (en) * 2005-01-26 2010-05-11 Microsoft Corporation System and method for a context-awareness platform
US7373661B2 (en) * 2005-02-14 2008-05-13 Ethome, Inc. Systems and methods for automatically configuring and managing network devices and virtual private networks
US7467162B2 (en) * 2005-06-27 2008-12-16 Microsoft Corporation Pre-configured settings for portable devices
US8010997B2 (en) * 2005-06-30 2011-08-30 Microsoft Corporation Enforcing device settings for mobile devices
US8966018B2 (en) * 2006-05-19 2015-02-24 Trapeze Networks, Inc. Automated network device configuration and network deployment
US20080016182A1 (en) 2006-07-11 2008-01-17 Nokia Corporation Dynamic device profile interfaces
US9021464B2 (en) * 2006-08-07 2015-04-28 Netiq Corporation Methods, systems and computer program products for rationalization of computer system configuration change data through correlation with product installation activity
US9418367B2 (en) 2006-08-21 2016-08-16 International Business Machines Corporation Context-aware code provisioning for mobile devices
JP5089140B2 (ja) * 2006-11-14 2012-12-05 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
US8078713B1 (en) * 2008-03-05 2011-12-13 Full Armor Corporation Delivering policy settings with virtualized applications
US20090282228A1 (en) * 2008-05-06 2009-11-12 Avaya Inc. Automated Selection of Computer Options
US8024732B2 (en) * 2008-07-28 2011-09-20 Microsoft Corporation State separation for application changes
US8627306B2 (en) * 2008-08-06 2014-01-07 Caterpillar Inc. Method and system for updating an information management system configuration
US8832258B2 (en) * 2008-10-06 2014-09-09 Root Wireless, Inc. Server device and method for directing mobile devices to collect and communicate location based user quality data
US8755794B2 (en) * 2008-12-05 2014-06-17 Qualcomm Incorporated System and method of sharing information between wireless devices
JP4886807B2 (ja) * 2009-03-23 2012-02-29 東芝Itサービス株式会社 コンピュータ自動キッティングシステム
EP2239917A1 (en) 2009-04-08 2010-10-13 Research In Motion Limited Method and system for qualifying a generic trigger
US20100258630A1 (en) * 2009-04-14 2010-10-14 Research In Motion Limited Systems and methods for updating resolved content of a mobile code
US8464242B2 (en) * 2009-07-08 2013-06-11 Tranxition Corporation Virtualization of configuration settings

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000214963A (ja) 1999-01-25 2000-08-04 Toshiba Corp コンピュ―タシステムおよび設定情報の自動設定方法
JP2001344108A (ja) 2000-05-30 2001-12-14 Fujitsu Ltd 機器の環境情報設定方法
WO2004040923A1 (en) 2002-11-01 2004-05-13 Nokia Corporation Disposable mini-applications
US20080168267A1 (en) 2007-01-09 2008-07-10 Bolen Charles S System and method for dynamically configuring a mobile device

Also Published As

Publication number Publication date
US20120173682A1 (en) 2012-07-05
JP2014506363A (ja) 2014-03-13
WO2012091991A3 (en) 2012-08-23
US8813167B2 (en) 2014-08-19
JP5749814B2 (ja) 2015-07-15
KR20130114699A (ko) 2013-10-17
CN103282885B (zh) 2016-08-17
CN103282885A (zh) 2013-09-04
EP2659361A2 (en) 2013-11-06
AU2011352830A1 (en) 2013-05-09
WO2012091991A2 (en) 2012-07-05
AU2011352830B2 (en) 2016-01-21
BR112013016711A2 (pt) 2016-10-04

Similar Documents

Publication Publication Date Title
KR101562445B1 (ko) 술어를 사용한 동적 장치 구성
EP3610403B1 (en) Isolated container event monitoring
US10951608B2 (en) Managed domains for remote content and configuration control on mobile information devices
US9189607B1 (en) Mobile phone controls preprocessor
US9191393B2 (en) Internet mediation
CN107104984B (zh) 跨异质设备类型的统一策略
US20050229104A1 (en) Add-on management
US9727705B2 (en) Remotely defining security data for authorization of local application activity
US9081720B2 (en) Information processing apparatus, setting information management method and recording medium
US9405522B2 (en) Scene-sound set operating method and portable device
CN103248613A (zh) 控制应用程序访问网络的方法及装置
CN103257788A (zh) 一种windows桌面动态图标形成方法
US9354849B2 (en) Modification of compiled applications and application management using retrievable policies
US20190281438A1 (en) System and method for a dynamic connectivity update system
US8677476B2 (en) Providing remotely defined security data to a local application extension
JP2009004981A (ja) バックライト制御プログラム、情報処理装置およびバックライト制御方法
US9384344B2 (en) Authorizing local application activity using remotely defined security data
CN106559546B (zh) 控制软件使用网络联网的方法和装置
US20090254631A1 (en) Defining clippable sections of a network document and saving corresponding content

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 4