KR101301333B1 - 모바일 장치 관리 프록시 시스템 - Google Patents
모바일 장치 관리 프록시 시스템 Download PDFInfo
- Publication number
- KR101301333B1 KR101301333B1 KR1020097015702A KR20097015702A KR101301333B1 KR 101301333 B1 KR101301333 B1 KR 101301333B1 KR 1020097015702 A KR1020097015702 A KR 1020097015702A KR 20097015702 A KR20097015702 A KR 20097015702A KR 101301333 B1 KR101301333 B1 KR 101301333B1
- Authority
- KR
- South Korea
- Prior art keywords
- client
- proxy
- mobile
- service
- state
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/567—Integrating service provisioning from a plurality of service providers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5681—Pre-fetching or pre-delivering data based on network characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 범용 프록시 모바일 장치 관리 아키텍처이다. 아키텍처는 백엔드 시스템으로부터 서비스를 찾는 모바일 클라이언트를 위한 프록시 역할을 한다. 모바일 클라이언트와 연관된 상태 정보의 가상 클라이언트 이미지는 저장되어, 모바일 클라이언트가 프록시와 상호작용하는 경우, 가상 이미지는 가장 최신 클라이언트 상태로 업데이트된다. 상태의 변경에 기초하여, 프록시 시스템은 모바일 클라이언트를 대신해서 백엔드 시스템의 하나 이상의 임의의 서비스를 비동기적으로 액세스한다. 모바일 클라이언트가 프록시에 연결되는 경우, 프록시는 가상 이미지의 상태와 연관된 가장 최신 서비스를 가지고, 모바일 클라이언트의 상태를 업데이트한다. 업데이트와 액세스는 프록시와 모바일 클라이언트 장치 사이의 프론트엔드및 프록시와 백엔드 시스템 사이의 백인드에서 비동기로 일어난다.
프록시 시스템, 모바일 클라이언트 관리, 가상 상태 이미지, 비동기 액세스
Description
본 발명은 범용 프록시 모바일 장치 관리 아키텍처에 관한 것으로, 보다 구체적으로 엔터프라이즈 백엔드 시스템으로부터 서비스를 찾는 모바일 클라이언트를 위한 모바일 클라이언트 장치 프록시 관리 서버에 관한 것이다.
셀룰러 및 IP 기반 기술의 융합은 휴대용 장치로 기술을 합병하기 위한 촉매제 역할을 하고 있다. 예를 들어, 휴대폰과 같은 모바일 클라이언트는 현재 인터넷과 같은 IP 네트워크상의 IP 기반 서비스에 액세스할 수 있다. 유사하게, 휴대용 컴퓨터와 같은 컴퓨팅 시스템은 목적지로 전화를 걸기 위해 인터넷을 통해 음성 통화를 만드는 것을 용이하게 하는 모바일 클라이언트 기술을 포함할 수 있다. 이는 주로 주요 네트워크를 연결하는 수단을 포함하는 네트워크 서비스 제공자로 인해, 두 영역에 있는 사용자가 서로의 서비스에 액세스할 수 있기 때문이다.
사용자가 데이터 및 프로그램과의 상호작용을 위해 각각 다른 요구사항 집합을 갖는 복수의 컴퓨팅 장치를 가지는 것이 일상화될 것이다. 기업 환경(corporate environment)에 있어서, 직원이 보다 많이 이동을 하고, 따라서 여행을 하는 동안 정기적으로 장치가 오프라인이 됨에 따라, 최신 설정 및 정보를 관리하는 것이 중요해지고 있다. 따라서, 가령 새로운 장비로 직원이 기업 환경에 재 연결해야할 경우, 운영체제, 통신 성능 등과 같은 특정 장치의 특성은 직원에 의한 필요한 액세스를 방해하는 제한이 되지 않는 것이 바람직하다.
기업은 또한 오늘날 사용되는 많은 다양한 컴퓨팅 시스템으로 이러한 문제를 해결해야 한다. 사용자는 엔터프라이즈(enterprise)로 많은 다양한 유형의 컴퓨터를 가져올 수 있고, 적절한 권한이 주어질 수 있고, 백엔드 시스템에 의해 제공되는 서비스에 쉽게 액세스할 수 있다. 그러나, 일상적인 작업을 위한 투명한 연결(transparent connectivity)을 제공하기 위해서는 모바일 클라이언트에 대한 지원 역시도 이용가능하여야 한다. 예를 들어, 스마트폰의 장치 및 사용자 프레즌스 지원 통신(user presence-enabled communications)은 작업의 흐름을 간단하게 하고 생산성을 향상시키기 위해 엔터프라이즈에 유용할 수 있다. 그러나, 엔터프라이즈에 대한 이러한 모바일 클라이언트의 능력을 쉽게 식별하고, 클라이언트가 온라인인지 오프라인인지에 대한 클라이언트 정보를 검출 및 관리할 수 있는 적절한 메커니즘이 필요하다.
따라서, 비즈니스는 많은 다양한 유형의 장비를 위한 개방형 표준 기반 인프라스트럭처(open-standards-based infrastructure)의 관점에서 엔터프라이즈 지원을 제공하기 위해 시스템의 통합으로 이동하고 있다. 그러나, 종래의 해결방법은 엔터프라이즈 백엔드 시스템에 의해 제공될 수 있는 이종 모바일 클라이언트 기술 및 많은 다양한 서비스를 지원하기 위한 확장가능성, 동질성(homogenous) 및 스케일러블(scalable) 아키텍처가 부족하다.
다음은 기재된 발명의 일부 특성의 기본적인 이해를 제공하기 위해 간략화된 요약을 제시한다. 이 요약은 광범위한 개요가 아니며, 핵심/중요 요소를 식별하거나 또는 본 발명의 범위를 서술하기 위함이 아니다. 유일한 목적은 이후에 제시되는 보다 상세한 설명에 대한 서두의 간단한 형태로 일부 개념을 제시하는 것이다.
기재된 아키텍처는 유연하고, 확장가능하고, 로버스트(robust)한 모바일 클라이언트 (또는 클라이언트 장치) 관리 시스템이다. 이 시스템은 백엔드 시스템으로부터 서비스를 찾는 모바일 클라이언트를 위한 프록시 역할을 한다. 프록시 시스템은 모바일 클라이언트와 연관된 상태 정보의 가상 클라이언트 이미지를 포함한다. 모바일 클라이언트가 프록시와 상호작용하는 경우, 프록시 서버는 클라이언트의 가상 이미지를 검증하고, 백엔드 시스템으로부터 클라이언트에 대한 최신 업데이트를 가져오는 프로세스를 최적화하기 위해 가상 이미지와 상호작용한다. 또한, 상태에 대한 변경에 기초하여, 프록시 시스템은 모바일 클라이언트를 대신해서 백엔드 시스템의 하나 이상의 임의의 서비스를 자동적으로 및 비동기로 액세스한다. 모바일 클라이언트가 프록시에 연결되는 경우, 프록시는 가상 이미지의 상태와 연관된 최신 서비스를 가질 것이다.
프록시 아키텍처는 가상 이미지의 클라이언트 상태를 업데이트하기 위해 프록시에 의해 처리될 수 있는 형식으로 이종 서비스를 추상화하는 추상화 구성요소(예를 들어, 서비스 드라이버)를 사용하여 임의의 서비스를 액세스하고 처리할 수 있다. 따라서, 아키텍처는 확장가능하고 스케일러블하다. 또한, 기업 엔터프라이즈에 사용됨에 따라, 예를 들어 아키텍처는 많은 수의 모바일 클라이언트가 서비스에 액세스하기 위해 연결되는 곳에서의 로드(load) 밸런싱을 용이하게 한다. 복수의 프록시 관리 시스템이 클라이언트 서비스에 대한 수요 충족을 위한 스케일 업(scale up)과, 수요가 줄어드는 경우의 스케일 다운(scale down)을 동적으로 행하기 위해 사용될 수 있다. 즉, 클라이언트는 특정의 프록시 장치 관리 시스템에 연결하도록 요구되지 않는다.
보다 구체적으로, 프록시는 임의의 백엔드 시스템으로부터 작업 유닛으로 제출된 태스크(tasks)를 수신하고 처리하는 태스크 실행 엔진을 포함하는 장치 관리 시스템이다. 모바일 클라이언트의 상태 정보는 가상 클라이언트 이미지로 저장될 수 있으며, 이러한 이미지는, 예를 들어 복수의 프록시 시스템과 관련하여 저장될 수 있다. 따라서, 복수의 프록시 관리 시스템은 필요한 경우 이미지를 액세스할 수 있다. 이 시스템은, 예를 들어 (장치가 오프라인인 경우) 가상 장치 이미지에 기초하여 백엔드 시스템 작업 및 네트워크 액세스 보호를 위해 필요한 임의의 작업을 평가하는 능력을 용이하게 한다. 이 태스크 엔진은 가상 클라이언트 이미지의 상태에 변경에 기초하여 원하는 서비스에 액세스하기 위해 백엔드 시스템과 비동기적으로 작동한다.
시스템은 자주 사용될 수 있고 비휘발성인 장치 구성 서비스 제공자 값의 캐시(a cache of device configuration service provider values)를 유지할 수도 있다. 검증에 따라, 캐싱된 정보는 이미지의 검증과 별도로 또는 조합하여 검증될 수도 있다. 태스크 실행 엔진은 “태스크” 객체를 사용하여 작업 유닛을 장치와 반대로 수행되도록 추상화하기 때문에, 임의의 백엔드 시스템과 인터페이스할 수 있다. 따라서, 각각의 백엔드 시스템에 프록시를 연결하는 임의의 수의 드라이버는 작업 유닛을 장치와 반대로 수행하도록 큐잉할 수 있다. 또한, 엔진은 작업 유닛을 일괄처리(batch)할 수 있다.
프록시 시스템은 연관된 모바일 장치가 연결되기 전에 하나 이상의 태스크에 대한 평가 테스트를 수행하기 위해 가상 장치 아이덴티티(virtual device identity)를 사용할 수 있다. 이 메커니즘은, 클라이언트 장치가 언제 중요한 업데이트가 필요한지, 예를 들어 관리 지점(management endpoint)으로의 연락이 취해져야만 하는지를 결정하는 것을 용이하게 한다. 프록시 태스크 엔진은 복수의 임의의 백엔드 시스템과 비동기로 상호작용하며, 따라서 클라이언트가 온라인 또는 오프라인이냐에 관계없이 드라이버가 어느 때나 작업을 제출할 수 있게 한다. 또한, 태스크 엔진은 프로세싱을 시작할 수 있기 전에 모든 드라이버가 응답하기를 기다릴 필요가 없다.
전술되고 관련된 목적을 성취하기 위해, 기재된 발명의 임의의 예시적인 특성은 다음의 상세한 설명과 첨부된 도면과 함께 본 명세서에 기술된다. 이러한 특성은 나타나며, 본 명세서에 기재된 원리가 사용될 수 있는 다양한 방법 중 몇몇에 나타나며, 이러한 모든 특성 및 그 균등물을 포함하도록 의도된다. 다른 장점 및 새로운 특성이 도면과 함께 다음의 상세한 설명으로부터 명확해 질 것이다.
도 1은 기재된 발명에 따른 모바일 클라이언트 프록시 서비스를 제공하기 위한 컴퓨터 구현 프록시 장치 관리 시스템을 도시하는 도면.
도 2는 본 발명에 따른 프록시 장치 관리를 위한 보다 구체적인 시스템을 도시하는 도면.
도 3은 모바일 클라이언트 프록시 서비스를 용이하게 하는 다른 프록시 장치 관리 시스템을 도시하는 도면.
도 4는 스케줄링 및 동기화 프로세싱을 사용하는 다른 프록시 장치 관리 시스템을 도시하는 도면.
도 5는 본 발명에 따른 예시적인 디렉토리 서비스 액세스 및 동기화와 연관된 흐름을 도시하는 도면.
도 6은 하나 이상의 프록시 기능을 자동화하는 것을 용이하게 하는 머신 학습 및 추론 구성요소를 사용하는 프록시 장치 관리 시스템을 도시하는 도면.
도 7은 프록시 시스템을 통해 모바일 장치를 관리하는 방법을 도시하는 도면.
도 8은 프록시에 의해 서비스 및 모바일 장치를 처리하는 방법을 도시하는 도면.
도 9는 모바일 장치에 대한 업데이트를 사용하기 전에 장치 이미지 추상화 상에 평가 테스트를 수행하는 방법을 도시하는 도면.
도 10은 본 발명에 따른 백엔드 서비스에 대해 비동기 액세스를 스케줄링하는 방법을 도시하는 도면.
도 11은 프록시 장치 관리 프로세싱을 위해 학습 및 추론 프로세싱을 사용하는 방법을 도시하는 도면.
도 12는 기재된 아키텍처에 따라 모바일 장치 프록시 프로세싱을 제공하기 위해 동작가능한 컴퓨팅 시스템의 블록도.
도 13은 백엔드 서비스를 위해 프록시 서버에 의해 모바일 클라이언트 업데이트를 용이하게 하는 예시적인 컴퓨팅 환경의 개략적인 블록도.
일반적으로, 기재된 아키텍처는 엔터프라이즈 백엔드 시스템으로부터 서비스를 찾는 모바일 클라이언트를 위한 모바일 클라이언트 장치 프록시 관리 서버이다. 모바일 클라이언트와 연관된 클라이언트 상태 정보는 서버에 저장되고, 예를 들어 모바일 클라이언트가 프록시와 상호작용하는 경우, 장치의 클라이언트 상태는 최신 클라이언트 상태로 업데이트된다. 상태의 변경에 기초하여, 프록시 시스템은 모바일 클라이언트를 대신하여 백엔드 시스템의 하나 이상의 임의의 서비스에 비동기적으로 액세스한다. 모바일 클라이언트가 프록시에 연결되는 경우, 프록시는 가상 이미지의 상태와 연관된 최신 서비스를 가질 것이다. 유사하게, 프록시 시스템은 클라이언트의 비동기적 연결을 용이하게 하는데, 즉 클라이언트는 언제든지 연결될 수 있고, 프록시로부터 최신 상태 정보를 수신하거나/수신하고 프록시에 추가 상태 정보를 전달할 수 있다.
본 발명이 도면을 참조하여 설명될 것이며, 동일한 참조번호는 전체에 걸쳐 유사한 요소를 지칭하는데 사용된다. 다음의 상세한 설명에서, 설명의 목적으로, 완벽한 이해를 제공하기 위해 다양한 구체적인 상세한 설명이 기재된다. 그러나, 본 발명은 이러한 구체적인 상세한 설명 없이도 실시될 수 있다는 것이 명백하다. 다른 예로서, 잘 알려진 구조 및 장치가 설명을 용이하게 하기 위해 블록도의 형태로 도시된다.
도면을 참조하면, 도 1은 기재된 본 발명에 따르는 모바일 클라이언트 프록시 서비스를 제공하기 위한 컴퓨터 구현된 프록시 장치 관리 시스템(100)을 도시한다. 시스템(100)은, 예를 들어 모바일 클라이언트(106)를 대신하여 엔터프라이즈 백엔드 시스템의 임의의 서비스(104)를 비동기적으로 액세스하기 위한 프록시 구성요소(102)를 포함한다. 시스템(100)은 또한 위 임의의 서비스를 액세스하고, 그 서비스를 모바일 클라이언트의 상태와 연관된 처리를 위한 태스크로 추상화하는 드라이버를 포함하는 드라이버 구성요소(108)도 포함한다. 일 실시예에 있어서, 프록시 구성요소(102) 및 드라이버 구성요소(108)는 프록시 장치 관리 시스템(100)을 구성한다.
다른 실시예에 있어서, 드라이버 구성요소(108)는 개별적일 수 있고, 장치 관리 시스템(100)으로부터의 원격 구성요소일 수 있다. 예를 들어, 드라이버 구성요소(108)의 드라이버 각각은 각각의 백엔드 서비스 (또는 그 서비스가 제공되는 시스템)의 부분일 수 있고, 따라서 프록시 구성요소(102)가 각각의 서비스에 대해 연결을 요청하는 경우, 대응하는 서비스 위치의 백엔드 드라이버는 그 액세스를 용이하게 한다.
또 다른 실시예에 있어서, 새로운 드라이버를 제공하거나 및/또는 요구하며 새로운 백엔드 시스템이 온라인상에 들어오는 경우, 드라이버 구성요소(108)는 프록시 구성요소(102)에 의해 향후에 자동화 및 비동기 처리를 위한 드라이버의 자동 업로드 및 설치를 용이하게 할 수 있다.
도 2는 본 발명에 따른 프록시 장치 관리를 위한 보다 자세한 시스템(200)을 도시한다. 시스템(200)은 하나 이상의 모바일 클라이언트(모바일 클라이언트1, 모바일 클라이언트2 ,..., 모바일 클라이언트M으로 표시됨, 여기서 M은 양의 정수; 206)를 대신해서 대응하는 서비스(서비스1, 서비스2,..., 서비스N으로 표시됨)를 제공하는 하나 이상의 백엔드 시스템(백엔드 시스템1, 백엔드 시스템2 ,..., 백엔드 시스템N으로 표시됨, 여기서 N은 양의 정수; 204)에 액세스하도록 장치 프록시 서버(202)를 포함한다. 각각의 클라이언트(206)는 대응하는 클라이언트 상태(클라이언트 상태1, 클라이언트 상태2 ,..., 클라이언트 상태M으로 표시됨)를 포함한다. 클라이언트 상태는 운영체제 유형, 버전, 하드웨어 구성, 애플리케이션 버전, 사용자 정보, 데이터 버전 등과 같은 클라이언트 정보를 포함한다. 프록시 서버(202)는 백엔드 시스템(204)에 액세스하도록 프록시 서버(202)를 구동하는 프록시 구성요소(예를 들어, 태스크 실행 엔진; 102)를 포함한다. 프록시 서버(202)는 또한 각각의 백엔드 서버(백엔드 시스템1 -N으로 표시됨; 204)에 대한 액세스를 용이하게 하는 각각의 백엔드 시스템(204)을 위한 드라이버(드라이버1 -N으로 표시됨; 208)를 포함하는 드라이버 구성요소(108)를 포함한다. 서버(202)는 각각의 클라이언트(206)를 위한 클라이언트 상태의 가상 이미지(212)(클라이언트 상태1 -M의 이미지 로 표시됨)를 저장하기 위한 연관된 데이터저장소(210)를 포함할 수도 있다. 데이터저장소(210)는 자주 필요하고 비휘발성인 장치 구성 서비스 제공자(configuration service provider; CSP) 값의 캐시 역할을 할 수 있다.
제1 동작에 있어서, 제1 모바일 클라이언트(214)가 프록시(202)에 연결되는 경우, 제1 클라이언트 상태(216)가 전달되어 프록시 데이터저장소(210)에 저장된다. 프록시 구성 요소(102)는 제1 클라이언트(214)에 의해 필요한 또는 요청되는 서비스를 제공하기 위해 백엔드 시스템(204) 중 어느 것이 액세스되어야 하는지를 결정한다. 일단 결정되면, 드라이버 구성요소(108)는 대응하는 백엔드 시스템(204) 및 대응하는 서비스를 액세스하기 위한 연관된 드라이버(208)를 제공한다. 선택된 서비스는 원하는 서비스 정보를 다시 드라이버 구성요소(108)에 제공하는데, 이는 서비스 정보를 프록시 서버(202)에 의해 실행되는 임의의 태스크로 추상화하며, 저장된 제1 클라이언트 상태의 이미지(212)를 업데이트하고, 제1 클라이언트 상태(216)를 업데이트한다(제1 클라이언트(214)가 연결된 경우).
제2 동작에 있어서, 상기 제1 동작이 완료된 후, 제1 클라이언트(214)는 오프라인 된다(예를 들어, 클라이언트 사용자가 제1 클라이언트(214)의 전원을 끄거나, 범위 밖으로 가는 등). 이후, 일 실시예에 있어서, 프록시 서버(202)는 (저장된 이미지(212)의 제1 클라이언트 이미지에 저장된 드라이버 정보에 기초하여) 제1 클라이언트(214)에 대해 이전에 사용되었던 것과 같은 동일한 드라이버를 사용하여 백엔드 시스템(204)에 비동기로 연결되고, 저장된 이미지(212)의 현존하는 제1 클라이언트 이미지에 대한 업데이트가 존재하는지를 검출하고, 프록시 서버(202)에 연관되어 저장된 제1 클라이언트 이미지에 데이터를 업로드한다. 결국, 제1 클라이언트(214)가 엔터프라이즈 백엔드 서비스를 얻기 위해, 백엔드 시스템(204)을 통해 연결되는 것보다 프록시 서버(202)로 재연결하는 경우, 원하는 정보는 프록시 서버(202)의 저장된 이미지(212)내의 제1 클라이언트 이미지로부터 쉽게 사용가능하다.
그러나, 제1 클라이언트(214)는 여전히 프록시 서버(202)를 통해 하나 이상의 백엔트 시스템(204)에 연결될 수 있다는 것에 유의하여야 한다. 제1 클라이언트 상태(216)를 위해 저장된 가상 이미지(212)는 그 당시 절대적인 최신의 것이 아닐 수 있다. 이는 프록시 서버(202)에 의한 업데이트 처리를 겪을 수 있는 가상 클라이언트 이미지(212)의 다중성 때문이다. 즉, 제2 클라이언트(218)에 대한 데이터저장소(210)의 클라이언트 상태의 가상 이미지가 처리되고 있는 동안, 백엔드 시스템(204)이 제1 클라이언트 상태의 가상 이미지로 이동해야 하는 업데이트를 수신할 수 있다. 따라서, 데이터저장소(210)상의 제1 클라이언트의 가상 이미지는 오래된 것(aged)일 수 있다. 제1 클라이언트(214)가 (예를 들어, 사용자 설정에 기초하여) 제1 클라이언트 상태(216)가 가장 최신일 것을 요구하는 경우, 제1 클라이언트(214)는 가장 최신 정보를 얻기 위해 백엔드 시스템(204)으로 라우팅될 수 있거나, 프록시 서버(202)가 제1 클라이언트 상태(216)의 전부 또는 일부를 위해 업데이트 동작을 수행하도록 강제할 수 있다. 각각의 경우에, 제1 클라이언트 상태(212)의 가상 이미지가 업데이트될 수 있다.
실제 동작의 보다 구체적인 설명으로, 프록시 서버(202)는 (모바일 장치를 위한) 프론트엔드(frontend) 상에서 비동기로 작동할 뿐만 아니라 (백엔드 시스템을 위한) 백엔드(backend) 상에서 비동기로 작동한다. 즉, 하나 이상의 클라이언트(206)가 대응하는 가상 클라이언트 이미지(212)로부터 업데이트를 수신하기 위해 접속하고 있는 동안, 프록시 서버(202)는 백엔드 상에서 액세스 및 업데이트 동작을 수행하고 있을 수 있다. 이를 지원하기 위해, 프록시 서버(202)는 저장된 가상 이미지 상태(212)에 고속 판독/기록 액세스를 제공하기 위한 캐시 서브시스템을 포함할 수 있다. 따라서, 이러한 동작과 연관된 로드(load)를 처리하기 위해 복수의 프록시 서버 시스템(202)이 사용될 수 있다. 로드 밸런스, 스케일링(scaling) 및 캐싱(caching)이 이하에서 기술될 것이다.
프록시 서버(202)의 프록시 구성요소(102)는 많은 임의의 백엔드 시스템(204)에서 작동할 수 있는데, 왜냐하면 프록시 서버(202)가 작업이 모바일 클라이언트와 반대로 수행되도록 "태스크" 객체를 사용하여 작업 유닛(또는 태스크)으로 작업을 추상화할 수 있기 때문이다. 따라서, 프록시 구성요소(102)를 각각의 백엔드 시스템(204)에 연결하는 임의의 수의 드라이버(208)는 대응하는 모바일 클라이언트 (및 클라이언트 장치)를 위해 처리해야 할 작업을 큐잉(queue)할 수 있다. 따라서, 프록시 구성요소(102)(또는 프록시 엔진)는 일괄처리(batch)로 태스크를 처리할 수 있다. 따라서, 프록시 서버(202)는 많은 백엔드 시스템(204)이 중앙 프록시 구성요소(102)에 작업 유닛을 제출할 수 있게 하는 태스크 지향 추상화(task-oriented abstraction)를 용이하게 한다.
프록시 서버(202)는 각각의 클라이언트가 연결되기 전에 태스크의 평가 테스 트를 수행하기 위해 (장치 식별 정보를 포함하는) 가상 클라이언트 이미지(212)를 사용할 수 있다. 따라서, 이 메커니즘은 클라이언트가 중요한 업데이트를 필요로 하는지와 관리 지점 (또는 백엔드 시스템(204))에 즉시 연결되도록 강제되어야 하는지를 결정하기 위해 사용될 수 있다.
상기 기술된 바와 같이, 프록시 구성요소(102)는 다중 백엔드 시스템(204)과 비동기로 작동한다. 이는 클라이언트가 연결되었는지에 관계없이 언제든지 드라이버(208)가 작업을 제출할 수 있게 한다. 또한, 프록시 구성요소(102)는 백엔드 시스템(204)으로부터의 서비스 처리를 시작할 수 있기 전에, 모든 드라이버가 응답하기를 기다릴 필요가 없다. 즉, 제1 백엔드 시스템(220) 및 제2 백엔드 시스템(222)에 연관된 드라이버는 제3 백엔드 시스템(224)의 드라이버가 응답하기 전에 데이터 처리를 위해 사용될 수 있다.
도 3은 모바일 클라이언트 프록시 서비스를 용이하게 하는 다른 프록시 장치 관리 시스템(300)을 도시한다. 시스템(300)의 프록시 서버(202)는 클라이언트(106)의 상태를 업데이트하는 것과 연관된 태스크를 실행하기 위한 태스크 실행 엔진(task execution engine; TEE, 304)을 포함하는 프록시 엔진(302)을 포함한다. 프록시 엔진(302)은 다중의 액세스 구성요소(예를 들어, 멀티플렉서 또는 "mux"; 306)를 포함할 수도 있고, 따라서 통신은 복수의 드라이버(308)를 통해 대응하는 복수의 서비스(310)에 발생할 수 있다. 그러나, MUX(306)의 포함은 선택적이다. 여기서는 적어도 세 개의 서비스가 제공된다. 디렉토리 서비스(312)(예를 들어, 마이크로소프트사의 Active Directory™) 및 연관된 디렉토리 서비스 드라이 버(314), 업데이트 서비스(316)(예를 들어, 마이크로소프트사의 Window Server Update Services™) 및 연관된 업데이트 서비스 드라이버(318), 및 메시징 서비스(320)(예를 들어, SMS 단문 메시지 서비스, MMS 멀티미디어 메시지 서비스, 인스턴트 메시지 등) 및 연관된 메시징 서비스 드라이버(322). 비록 단지 세 개의 서비스 및 드라이버가 도시되었으나, 더 많은 서비스 및 연관된 드라이버가 구현될 수 있다. 또한, 상기한 바와 같이, 복수의 프록시 엔진(302)은 단일 프록시 엔진(302)에 의해 효과적으로 처리될 수 없는 프론트엔드에서의 모바일 장치의 수요 변경 및 백엔드 서비스에서의 수요의 변경을 처리하기 위해 동적으로 사용될 수 있다.
멀티플렉서(306)는 서비스(310)와의 통신을 용이하게 한다. TEE(304)는 클라이언트(106)로부터 클라이언트 상태를 얻고, 어느 부분이 업데이트되어야 할지를 결정하기 위해 그 상태를 처리하고, 원하는 업데이트에 기초하여 적절한 서비스(310)에 대한 액세스를 요청할 수 있다. TEE(304)는 드라이버(308)를 통해 서비스(310)로 라우팅하기 위해 MUX(306)에 요청을 보낸다. 이후에, 업데이트는 태스크로의 추상화 처리를 위해 드라이버(308)로 다시 전달되고, 이어서 클라이언트 가상 이미지 데이터저장소(210) 및/또는 클라이언트(102)로의 삽입을 위해 TEE(304)에 의해 처리되기 위해 MUX(306)로 전달된다. 마찬가지로, 태스크 실행은 클라이언트(102)가 온라인 또는 오프라인인지에 관계없이 일어날 수 있다. 오프라인의 경우, 태스크 실행은 데이터저장소(210)의 클라이언트 상태 이미지에 반대로 일어난다. 따라서, 클라이언트(102)가 프록시 엔진(302)에 연결될 때, 클라이언트 상 태에 대한 업데이트가, 서비스(310) 보다는 데이터저장소(210)의 가상 클라이언트 상태 이미지로부터 일어난다. 유사하게, 태스크 실행은 프록시(202)가 백엔드 서비스(310)에 연결되었는지에 관계없이 일어날 수 있다. 실행을 위해 태스크가 프록시 엔진(302)에 큐잉되어 있는 한, 이미지 업데이트 프로세싱이 일어날 수 있다.
기재된 모바일 장치 프록시 관리 시스템은 범용 시스템이며, 즉 백엔드 서비스는 서비스를 제공하는 백엔드 시스템의 유형에 관계없이 프록시 서버(202)에 의해 호스팅되거나 제공될 수 있고, 액세스 및 처리될 수 있다. 예를 들어, 백엔드 시스템은, 예를 들어 많은 다양한 유형의 운영체제(예를 들어, Unix, Linux, Window, Apple 등) 및 파일 구조, 프로토콜 및 데이터 포맷을 사용하여 서비스를 제공할 수 있다. 드라이버(308)는 서비스 정보를 TEE(304)에 의해 실행가능한 임의의 태스크로 추상화하기 위해 변환 프로세싱을 수행한다. 반대로, 종래의 아키텍처는 확장가능하지 않고, 모바일 장치에서 백엔드 시스템으로 일 대 일(one-to-one)로 대응하는 하드 코딩된 구현을 제공한다. 기재된 아키텍처는 프론트엔드 및 백엔드 모두에서 비동기 동작으로 다 대 다(many to many) 확장가능 구현을 제공한다.
도 4는 스케줄링 및 동기화 프로세싱을 사용하는 다른 범용 프록시 장치 관리 시스템(400)을 도시한다. 여기서, 드라이버 구성요소(108)는 각각의 디렉토리 서비스(312), 업데이트 서비스(316) 및 메시지 서비스(320)에 대한 디렉토리 서비스 드라이버(314), 업데이트 서비스 드라이버(318) 및 메시지 서비스 드라이버(322), 를 포함한다. 또한, 시스템(400)은 확장가능하고, 따라서 제3의 드라이 버(402)가 다른 백엔드 서비스(404)를 위한 드라이버 구성요소(108)의 일부로 제공될 수 있다.
프록시 엔진(406)은 전술한 기능을 갖는 TEE(304) 및 MUX(306)를 포함한다. 또한, 프록시 엔진(406)은 클라이언트(106)와 서버(202)의 가상 상태 이미지 사이의 프론트엔드 상의 상태 및 백엔드 시스템과 서버(202)의 가상 상태 이미지 사이의 프록시(202)의 백엔드 상의 상태를 동기화하기 위한 동기화 구성요소(408)를 포함한다. 스케줄러 구성요소(410)는 서버(202)가 백엔드 및/또는 프론트엔드 상에서 동기화를 수행할 때의 스케줄링을 용이하게 한다. 예를 들어, 일 실시예에 따라, 동기화는 시간적 정보(예를 들어, 최종 업데이트로부터의 시간, 날짜, 요일 등)에 기초할 수 있다. 다른 실시예에 있어서, 스케줄링은 상태 데이터의 버전에 따른다. 스케줄링은 각각의 클라이언트의 규칙, 클라이언트의 집합, 클라이언트의 카테고리, 장치 정보, 클라이언트의 상태, 백엔드 시스템 정책의 변화, 백엔드 데이터 등에 따라 용이해 질 수 있다.
여기서, TEE(304)는 두 개의 데이터저장소(엔진 데이터 저장소(412), 히스토리 데이터저장소(414))와 인터페이스한다. 엔진 데이터저장소(412)는, 예를 들어 클라이언트, 규칙, 실행을 위한 태스크 및 동기화를 위한 스케줄링에 관한 정보를 포함할 수 있다. 히스토리 데이터저장소(414)는 프록시 서버(202)에 연결하는 복수의 클라이언트를 위한 클라이언트 가상 상태 이미지 데이터의 저장을 용이하게 할 수 있다. 데이터저장소(412, 414)는 고속 실행 및 처리를 위해 캐시 메모리(예를 들어, DRAM)일 수 있다. 따라서, 프록시 서버(202)는 복수의 프록시 서버를 위 해 데이터를 저장하는 원격 데이터저장소(도시되지 않음)에 액세스할 수 있으며, 이후에, 이중 선택된 일부가 캐싱 및 비동기 처리를 위해 적절한 프록시 서버에 업로딩된다.
캐싱 기능은 사용자 환경설정, 상태, 컨텍스트 또는 기타 매트릭스의 기능이 사용자의 경험을 강화하고,데스크톱 컴퓨터에 비교할 때 휴대용 장치의 일부 본래 제약(예를 들어, 대역폭, 메모리, 처리능력, 디스플레이 리얼 에스테이트(display real estate)을 상쇄하는 사전 패칭(pre-fetching) 및/또는 사전 캐싱 정보를 제공할 수 있다. 예를 들어, 장치 성능 및 사용자 관련 매트릭스에 기초하여 낮은 값으로 간주되는 가상 이미지 데이터는 새로운 컨텐츠를 위한 공간을 만들기 위해 저장소로부터 선택적으로 제거될 수 있다(aged out).
예시적인 일 실시예에 있어서, 프록시 서버는 장치 관리를 위한 오픈 모바일 연합(Open Mobile Alliance for Device Management; OM ADM)을 지원하며, 서버(202)와 클라이언트 사이의 통신은 SyncML 프로토콜에 따를 수 있다. OMA DM은 휴대폰 및 이동가능 휴대용 컴퓨팅 장치와 같은 모바일 클라이언트 및 장치의 관리를 특정한다. SyncML은 오픈 시스템을 위해 제안된 XML(Extensible Markup Language) 기반 프로토콜이다. SyncML은 임의의 네트워크 상의 장치 및 애플리케이션을 동기화하기 위한 공통 언어이다. XML을 이용함으로써, SyncML은 임의의 모바일 장치에서 네트워킹된 정보의 동기화를 위해 사용될 수 있으며, 모바일 정보는 임의의 네트워킹된 애플리케이션으로 동기화될 수 있다. 이메일, 일정, 할 일 리스트, 연락처 정보, 장치 정보, 애플리케이션 정보 및 기타 원하는 데이터와 같은 개인정보가 일관되고, 액세스가능하고 최신 것으로 될 수 있다. 또한, SyncML은, 예를 들어 고정 네트워크, 적외선, 케이블 또는 블루투스 상에서 동기화를 가능하게 한다.
도 5는 본 발명에 따르는 예시적인 디렉토리 서비스 액세스 및 동기화와 연관된 흐름도를 도시한다. 스케줄러(410)는 백엔드 시스템 디렉토리 서비스(312)에 대한 동기화 세션을 시작할 수 있고, 따라서 프록시 엔진(406)은 디렉토리 서비스 드라이버(314)에 정보를 보낸다. 드라이버(314)는 드라이버 랩퍼 모듈(driver wrapper module; 500)을 통해 정보를 묶고(bundle), 디렉토리 서비스 그룹 정책 드라이버(502)를 통해 묶은 정보를 디렉토리 서비스(312)로 보낸다. 디렉토리 서비스(312)는 원하는 업데이트된 서비스 정보 또는 작업을 다시 드라이버(314)로 반환하며, 이는 작업을 하나 이상의 태스크로 추상화한다. 이 태스크은 언랩핑(unwrapping)하기 위해 드라이버 랩퍼(500)를 통해 전달되고, 이후에 실행하기 위해 프록시 엔진(406)을 통해 엔진 데이터베이스(412)로 전달된다. supra에 기술된 바와 같이, 하나 이상의 태스크가 나중에 처리되기 위해 큐잉될 수도 있다. 따라서, 태스크 순위지정(prioritization) 관리는 프록시 엔진(406)에 사용될 수 있다.
클라이언트(106)는 프로토콜(예를 들어, SyncML)을 통해 XML 기반 데이터를 전달하기 위해 프록시 엔진(406)의 프록시 엔진 층(예를 들어, SyncML; 504)에 대한 연결을 시작할 수 있다. 이 층(504)은 처리를 위해 XML 데이터를 TEE(304)로 전달한다. TEE(304)는 엔진 데이터베이스(412)로부터 태스크 정보를 뽑고(pull), 층(504)을 통해 클라이언트(106)를 업데이트하기 위해 및 액티버티 히스토리 데이터베이스(activity history database; 414) 상에 저장된 가상 이미지(도시되지 않음)를 업데이트하기 위해 태스크를 실행한다. 층(504)에서, 실행된 태스크 데이터는 다시 XML로 변환되고, 프로토콜을 통해 클라이언트(106)로 보내진다. 클라이언트(106) 및 가상 상태 이미지는 가장 최신 클라이언트 상태로 모두 업데이트된다. 일 실시예에 있어서, 프록시가 캐시에 업데이트된 상태를 유지하는 동안, 모바일 장치는 우선 업데이트될 수 있다. 따라서, 캐싱된 정보는 프록시 서버의 가상 상태 이미지에 포함된다.
도 6은 하나 이상의 특성을 자동화하는 것을 용이하게 하는 머신 학습 및 추론(machine learning and reasoning; MLR) 구성요소(602)를 사용하는 프록시 장치 관리 시스템(600)을 도시한다. 여기서, 프록시 서버(604)는 상태 관련 태스크를 처리하기 위한 프록시 엔진(302), 관련된 백엔드 시스템 및 서비스(104)에 액세스하기 위한 드라이버를 제공하는 드라이버 구성요소(108), 동기화를 스케줄링하는 스케줄러 구성요소(410) 및 백엔드 서비스(104)의 복수의 액세스를 위한 MUX(306)를 포함한다. 또한, 서버(602)는, 예를 들어 고속 데이터 액세스 및 클라이언트 상태 정보의 처리를 위한 캐시 구성요소(606)를 포함할 수 있다. 예를 들어, 캐시 구성요소(606)는, 예를 들어 가상 이미지 상태에 기초하여 (장치가 오프라인인 경우) 네트워크 액세스 보호를 위해 필요한 백엔드 시스템 작업 및 임의의 작업의 사전 평가 테스트를 용이하게 한다. 사전 평가 테스트는 클라이언트가 중요한 업데이트가 필요한지를 결정하기 위해 사용될 수 있으며, 관리 종점을 즉시 연결하도록 강제할 수 있다.
캐시 구성요소(606)는 자주 사용될 수 있고 비휘발성인 장치 구성 서비스 제공자 값을 유지할 수도 있다.
(예를 들어, 선택과 연결된) 주요 아키텍처는 그 다양한 특성을 수행하기 위해 다양한 MLR 기반 기법을 사용할 수 있다. 예를 들어, 언제 백엔드 서비스(104)에 비동기적으로 접속할 것인지를 결정하기 위한 프로세스는 자동화 분류기 시스템 및 프로세스를 통해 용이해질 수 있다.
분류기는 입력 특성 벡터(x=(x1, x2, x3, x4, xn)를 분류 레이블 class(x)로 맵핑하는 함수이다. 분류기는 입력이 클래스에 속하는 컨피던스(confidence), 즉 f(x) = confidence( class(x))를 출력할 수도 있다. 이러한 분류는 사용자가 자동적으로 수행되기를 원하는 동작을 추론하거나 예측하기 위해 확률 및/또는 기타 통계적 분석(예를 들어, 하나 이상의 사람에 대한 기대값을 최대화하기 위해 분석 유틸리티 및 비용으로 인수분해)을 사용할 수 있다.
본 명세서에서 사용된 바와 같이, "추론하는 것" 및 "추론"이란 용어는 일반적으로 이벤트 및/또는 데이터를 통해 캡처되는 관찰의 집합으로부터 시스템, 환경 및/또는 사용자의 상태를 추론하거나 상태에 대해 추론하는 프로세스를 지칭한다. 추론은, 예를 들어 특정 컨텍스트 또는 동작을 식별하는데 사용될 수 있고, 상태의 분산 확률(probability distribution over state)을 생성할 수 있다. 추론은 확률적이며, 즉 데이터 및 이벤트의 고려에 기초한 관심있는 상태의 분산 확률의 계산이다. 추론은 이벤트 및/또는 데이터의 집합으로부터 높은 수준의 이벤트를 포함 하기 위해 사용되는 기술을 지칭할 수도 있다. 이벤트가 시간적 근사에 가깝게 관련되는지와 관계없이 그리고 하나 또는 몇몇 개의 이벤트 및 데이터 소스로부터 이벤트 및 데이터가 유래했는지에 관계없이, 이러한 추론은 관찰된 이벤트 및/또는 저장된 이벤트 데이터의 집합으로부터의 새로운 이벤트 또는 동작의 구성을 야기한다.
지원 벡터 머신(support vector machine; SVM)은 사용될 수 있는 예시적인 분류기이다. SVM은 최적화된 방법으로 트리거링되지 않은 이벤트로부터의 트리거링 입력 이벤트를 나누는, 가능한 입력의 공간에서 초곡면(hypersurface)을 구함으로써 동작한다. 직관적으로, 이는 근접한 데이터를 테스트하기 위한 정확한 분류를 만드나 트레이닝 데이터와 동일하지는 않다. 기타 지시가 있는 및 지시가 없는 모델 분류 접근법(other directed and undirected model classification approaches)은, 예를 들어 다양한 형태의 통계적 회귀(statistical regression), 나이브 베이즈(naive Bayes), 베이지안 네트워크(Bayesian networks), 결정 트리, 뉴럴 네트워크(neural networks), 퍼지 논리 모델(fuzzy logic models)을 포함하며, 독립적인 다른 패턴을 나타내는 기타 통계적 분류 모델이 사용될 수 있다. 본 명세서에 사용되는 분류는 순위 및/또는 우선 순위를 할당하기 위해 사용되는 방법을 포함한다.
본 명세서로부터 쉽게 이해할 수 있는 바와 같이, 본 아키텍처는 (예를 들어, 일반적인 트레이닝 데이터를 통해) 명확하게 트레이닝될 수 있고, (예를 들어, 사용자 행동을 관찰하고 부수적인 정보를 수신함을 통해) 함축적으로 트레이닝될 수 있는 분류기를 사용할 수 있다. 예를 들어, SVM은 분류기 구성기 및 특성 선택 모듈 내의 학습 또는 트레이닝 위상을 통해 구성된다. 따라서, 분류기(들)는 사전정의된 기준에 따라 수많은 기능을 자동적으로 학습하고 수행하도록 사용될 수 있다.
예를 들어, 클라이언트 장치의 유형에 기초하여, MLR 구성요소(602)는 동기화가 기타 장치 유형처럼 자주 수행될 필요가 없을 수 있다는 것을 학습하고 추론할 수 있다. 다른 예에 있어서, MRL 구성요소(602)는 어떤 장치 상태가 업데이트되어야 하는지를 우선 순위를 매기기 위한 수단으로 클라이언트 장치의 사용자 환경설정을 판독하기 위해 학습할 수 있다. 학습하고 추론하는 것은 스케줄링을 조절하고, 기타 엔터프라이즈 프록시 서버와 관련된 프록시 서버(604)의 로드를 가리키고, 대역폭과 로드에 기초하여 언제 다른 프록시 서버에 대해 스케일 업 하는지 등에 사용될 수 있다.
동기화는 이벤트 트리거 기반(event trigger-based)일 수도 있다. 이러한 유형의 구현에 있어서, 클라이언트 장치는 클라이언트 상태 변경을 모니터링하는 에이전트 또는 유사한 소프트웨어 모듈을 포함할 수 있고, 변경의 범위가 사전정의되거나 구성된 트리가 기준을 충족하는 경우, 에이전트는 프록시 서버(604)에 동기화 요청을 트리거링한다. 이후에, 이 상태 업그레이드가 그 클라이언트를 위한 프록시 서버(604)의 가상 상태 이미지로 이루어진다. 대응하는 클라이언트가 서버(604)에 연결하는 경우, 클라이언트는 가장 최근 업데이트를 수신한다.
MLR 구성요소(602)에 의해 제공될 수 있는 몇몇 예시의 유연함 및 백엔드 동 기화를 획득하기 위한 방법들이 있다. 다른 예는 주어진 클라이언트 또는 연결된 모든 클라이언트에 대한 업데이트를 위해 백엔드 시스템을 주기적으로 폴링(polling)하는 프록시 서버를 포함한다. 다른 예는 서버(604)에 업데이트 요청을 큐잉(queuing)하는 백엔드 시스템을 포함하며, 이 서버는 FCFS(First Come First Serve) 기반으로 요청을 선택한다. 또한, MLR 구성요소(602)는 학습되고 추론된 행동에 기초하여 요청을 수신하여 우선 순위를 매긴다.
도 7은 프록시 시스템을 통해 모바일 장치를 관리하는 방법을 도시한다. 설명을 간단하게 하기 위한 목적으로, 본 명세서에 도시된 하나 이상의 방법론은, 예를 들어 순서도의 형태에 일련의 동작으로 도시되고 설명되며, 청구대상 발명은 동작의 순서에 제한되지 않고, 따라서 일부 동작은 다른 순서로 발생할 수 있고, 본 명세서에 도시되고 설명되는 다른 동작과 동시에 발생할 수 있다. 예를 들어, 본 기술분야의 당업자는, 방법론이 다른 상태도와 같은 일련의 상호관련된 상태 또는 이벤트로 나타날 수 있다는 것을 알 수 있다. 또한, 도시된 모든 동작이 본 발명에 따른 방법을 구현하기 위해 요구되는 것은 아니다.
700에서, 백엔드 시스템의 임의의 서비스가 프록시 서버에 의해 모바일 장치 대신 액세스된다. 702에서, 백엔드 시스템으로부터의 서비스 정보는 서비스 드라이버를 통해 프록시 서버에서 실행을 위한 태스크로 추상화된다. 704에서, 모바일 장치의 장치 상태의 추상 이미지가 프록시 서버에 저장되며, 이미지는 서비스 정보를 포함한다. 706에서, 모바일 장치의 장치 상태의 이미지는 임의의 서비스와 연관된 변경에 기초하여 업데이트된다.
도 8은 프록시 서버에 의해 서비스 및 모바일 장치를 처리하는 방법을 도시한다. 800에서, 복수의 모바일 장치의 상태의 장치 상태 이미지 추상화가 프록시 서버에서 생성된다. 802에서, 임의의 백엔드 시스템에 대한 액세스는 하나 이상의 이미지 추상화를 위해 서비스 드라이버를 통해 초기화된다. 804에서, 임의의 백엔드 시스템과 연관된 서비스는 비동기로 액세스 된다. 806에서, 하나 이상의 모바일 장치에 대한 서비스 정보가 서비스 드라이버를 통해 반환된다. 808에서, 서비스 정보가 서비스 드라이버를 통해 프록시 서버에서 실행을 위한 임의의 태스크로 추상화된다. 810에서, 모바일 장치에 대한 각각의 이미지 추상화는 태스크의 실행에 기초하여 업데이트된다. 812에서, 모바일 장치가 프록시 서버에 연결되는 경우, 그 장치는 각각의 이미지 추상화로부터 비동기적으로 업데이트된다. 814에서, 새로운 장치 정보가 업데이트 프로세스 동안 모바일 장치로부터 수신된다. 816에서, 온라인인 경우, 백엔드 서비스가 새로운 장치 정보에 기초하여 새로운 서비스 정보에 비동기로 액세스된다.
도 9는 모바일 장치에 대한 업데이트를 사용하기 전에, 장치 이미지 추상화 상에 평가 테스트를 수행하는 방법을 도시한다. 900에서, 모바일 장치 상태 이미지 추상화는 모바일 장치에 대해 생성되고 프록시 서버에 저장된다. 902에서, 임의의 백엔드 서비스가 이미지 추상화를 위해 서비스 드라이버를 통해 비동기적으로 액세스된다. 904에서, 서비스가 드라이버로 수신되고, 프록시 서버에서 실행을 위한 태스크로 추상화된다. 906에서, 하나 이상의 태스크가 모바일 방치에 사용되어야 하는지를 결정하기 위해, 태스크의 평가 테스트가 이미지 추상화에 반하여 수행 된다. 908에서, 하나 이상의 태스크가 모바일 장치에 대한 이미지 추상화에 반하여 테스트 결과에 기초하여 사용되거나 버려진다(dropped).
도 10은 본 발명에 따르는 백엔드 서비스에 대한 비동기 액세스를 스케줄링하는 방법을 도시한다. 1000에서, 스케줄링 정보는 프록시에서 복수의 모바일 장치 상태 이미지를 업데이트하기 위해 프록시에 제공된다. 1002에서, 스케줄링 정보에 기초하여, 프록시 서버가 서비스 드라이버를 통해 백엔드 서비스에 대한 액세스를 시작한다. 1004에서, 하나 이상의 백엔드 시스템으로부터의 서비스 정보가 서비스 드라이버로 수신되고, 태스크로 추상화되고, 프록시에서 태스크 실행 처리를 위해 큐잉된다. 1006에서, 태스크은 존재하는 프록시 상태 이미지에 반하여 실행된다. 1008에서, 업데이트된 이미지가 저장된다. 1010에서, 하나 이상의 연관된 모바일 장치가 프록시 서버에 비동기적으로 연결되고, 대응하는 이미지로부터 업데이트된 상태를 수신한다.
도 11은 프록시 장치 관리 프로세싱을 위해 학습 및 추론하는 프로세싱을 사용하는 방법을 도시한다. 1100에서, 프록시 서버가 이미지 생성 및 비동기 백엔스 서비스 프로세싱 및 모바일 장치 상태 업데이트를 위해 배치된다. 1102에서, 학습 및 추론은 프록시 서버 프로세스에 사용된다. 1104에서, 모바일 장치 및 서비스 액세스의 존재하는 비동기 프로세싱의 관점에서 프록시 서버는 학습 및 추론에 기초하여 제공되는 새로운 스케줄링을 자동적으로 채택한다. 1106에서, 모바일 장치 및 서비스 액세스의 존재하는 비동기 프로세싱의 관점에서, 프록시 서버는 학습 및 추론에 기초하여 새로운 이미지 업데이트 프로세스 및 서비스 액세스를 자동적으로 채택한다. 1108에서, 제1 프록시 서버의 모바일 장치 및 서비스 액세스의 존재하는 비동기 프로세싱의 관점에서, 서비스 프로세싱은 학습 및 추론에 기초하여 추가의 프록시 서버에 대해 스케일링된다.
본 명세서에 사용된 바와 같이, "구성요소" 및 "시스템"이라는 용어는 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 또는 실행 중인 소프트웨어인 컴퓨터 관련 엔티티(entity)를 지칭한다. 예를 들어, 구성요소는 이에 한정되는 것은 아니나 프로세서상에서 실행 중인 프로세스, 프로세서, 하드 디스크 드라이브, (광 및/또는 자기 저장 매체의) 복수의 스토리지 드라이브, 객체, 실행가능한 것, 실행중인 스레드, 프로그램 및/또는 컴퓨터이다. 예시의 방법으로, 서버상에 실행 중인 애플리케이션 및 서버 양자 모두는 구성요소가 될 수 있다. 하나 이상의 구성요소가 프로세서 및/또는 실행 중인 스레드 내에 상주할 수 있고, 구성요소는 하나의 컴퓨터상에 위치될 수 있고 및/또는 두 개 이상의 컴퓨터 사이에 분산될 수 있다.
도 12를 참조하면, 기재된 아키텍처에 따르는 프로세싱 중인 모바일 장치 프록시를 제공할 수 있는 컴퓨팅 시스템(1200)의 블록도가 도시된다. 다양한 특징을 위한 추가의 내용을 제공하기 위해, 도 12 및 다음의 논의는 본 발명이 구현될 수 있는 다양한 특징의 적절한 컴퓨팅 시스템(1200)의 간략하고 일반적인 설명을 제공한다. 상기 설명이 하나 이상의 컴퓨터상에서 실행할 수 있는 일반적인 내용의 컴퓨터 실행가능 명령어지만, 당업자는 본 발명이 기타 프로그램 모듈의 조합 및/또는 하드웨어 및 소프트웨어의 조합으로 구현될 수도 있다는 것을 인식할 것이다.
일반적으로, 프로그램 모듈은 특정 태스크(task)를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 본 발명이 각각이 하나 이상의 연관된 장치에 구동적으로 연결될 수 있는 단일 프로세서 또는 멀티 프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터 및 PC, 휴대용 컴퓨팅 장치, 마이크로 프로세서 기반 또는 프로그램가능 소비자 전자장치(consumer electronics) 등을 포함하는 다른 컴퓨터 시스템 구성으로 실시될 수 있다는 것이 당업자에게 명백하다.
또한 본 발명의 도시된 특징은 통신 네트워크를 통해 연결된 원격 프로세싱 장치에 의해 특정 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 스토리지 장치에 위치될 수 있다.
컴퓨터는 일반적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터에 의해 접근가능한 임의의 사용가능 매체일 수 있으며, 휘발성 및 비휘발성 매체, 착탈식 및 비착탈식 매체를 포함한다. 이에 한정되는 것은 아난 예시의 방법으로, 컴퓨터 판독가능 매체는 컴퓨터 스토리지 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 스토리지 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성 매체, 착탈식 및 비착탈식 매체를 포함한다. 컴퓨터 스토리지 매체는, 이에 한정되는 것은 아니나, RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD 또는 기타 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 기타 자기 저장 장치 또는 컴퓨터에 의해 액세스가능하고 원하는 정보를 저장하는데 사용될 수 있는 임의의 기타 매체를 포함한다.
도 12를 다시 참조하면, 다양한 특성을 구현하기 위한 예시적인 컴퓨팅 시스템(1200)은 컴퓨터(1202)를 포함하며, 컴퓨터(1202)는 프로세싱 유닛(1204), 시스템 메모리(1206) 및 시스템 버스(1208)를 포함한다. 시스템 버스(1208),는 이에 한정되는 것은 아니나 프로세싱 유닛(1204)에 대한 시스템 메모리(1206)를 포함하는 시스템 구성요소를 위한 인터페이스를 제공한다. 프로세싱 유닛(11204)은 상업적으로 사용가능한 다양한 프로세서 중 임의의 것일 수 있다. 듀얼 프로세서 및 기타 멀티 프로세서 아키텍처가 프로세싱 유닛(1204)으로 사용될 수도 있다.
시스템 버스(1208)는 상업적으로 사용가능한 다양한 버스 아키텍처 중 임의의 것을 사용하는 (메모리 컨트롤러가 있거나 또는 없는) 메모리 버스, 주변장치 버스 및 로컬 버스와 더 상호연결될 수 있는 여러 유형의 버스 구조체 중 임의의 것일 수 있다. 시스템 메모리(1206)는 ROM(1210) 및 RAM(1212)을 포함한다. BIOS(basic input/output system)는 ROM, EPROM, EEPROM과 같은 비휘발성 메모리(1210)에 저장되며, BIOS는 시동하는 동안 컴퓨터(1202) 내의 요소들 간에 정보를 전달하는 것을 돕는 기본 루틴을 포함한다. RAM(1212)은 데이터를 캐싱하기 위해 정적 RAM과 같은 고속 RAM을 포함할 수도 있다.
컴퓨터(1202)는 내부 HDD(예를 들어, EIDE, SATA; 1214)를 더 포함하며, 내부 HDD(1214)는 적절한 섀시(chassis)(도시되지 않음), FDD(예를 들어, 착탈식 디 스켓(1218)으로부터 판독/기록하기 위함; 1216) 및 광 디스크 드라이브(예를 들어, CD-ROM 디스크(1222)를 판독하거나, DVD와 같은 고용량 광학 매체를 판독/기록하기 위함;1220)에 외부 사용을 위해 구성될 수도 있다. HDD(1214), 자기 디스크 드라이브(1216) 및 광 디스크 드라이브(1220)는 HDD 인터페이스(1224), 자기 디스크 드라이브 인터페이스(1226) 및 광 드라이브 인터페이스(1228)에 의해 각각 시스템 버스(1208)에 연결될 수 있다. 외부 드라이브 구현을 위한 인터페이스(1224)는 USB(Universal Serial Bus) 및 IEEE 1394 인터페이스 기술 중 적어도 하나 또는 양자 모두를 포함한다. 기타 외부 드라이브 연결 기술이 본 발명 내에 포함된다.
드라이브 및 그와 연관된 컴퓨터 판독가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어 등의 비휘발성 스토리지를 제공한다. 컴퓨터(1202)를 위해, 드라이브 및 매체는 적절한 디지털 형식으로 임의의 데이터의 스토리지를 공급한다. 상기 컴퓨터 판독가능 매체의 설명이 HDD, 착탈식 자기 디스켓 및 CD 또는 DVD와 같은 착탈식 광 매체를 참조하나, 집(zip) 드라이브, 자기 카세트, 플래시 메모리 카드, 카트리지 등과 같은 컴퓨터에 의해 판독가능한 다른 유형의 매체 또한 예시적인 동작 환경에서 사용될 수 있고, 이러한 매체의 임의의 것이 기재된 발명의 방법을 수행하기 위한 컴퓨터 실행가능 명령어들을 포함할 수 있다는 것이 본 기술분야의 당업자에게 명백하다.
수많은 프로그램 모듈이 운영체제(1230), 하나 이상의 애플리케이션 프로그램(1232), 기타 프로그램 모듈(1234) 및 프로그램 데이터(1236)를 포함하는 드라이브 및 RAM(1212)에 저장될 수 있다. 운영체제, 애플리케이션, 모듈 및/또는 데이 터의 일부 또는 전부가 RAM(1212)에 캐싱될 수도 있다. 본 발명은 상업적으로 사용가능한 다양한 운영체제 또는 운영체제의 조합으로 구현될 수 있다.
애플리케이션(1232) 및/또는 모듈(1234)은, 몇 가지만 언급하자면 프록시 구성요소(102), 드라이버 구성요소(108), 프록시 서버(202), 태스크 실행 엔진(304), MUX(300), 프록시 엔진(406), 동기화 구성요소(408), 스케줄러 구성요소(410), 드라이버 랩퍼(500), 정책 드라이버(502), 레이어(504), MLR 구성요소(602) 및 캐시 구성요소(606)와 연관된, 본 명세서에 기술된 기능 및 능력을 포함할 수 있다.
사용자는 하나 이상의 유선/무선 입력 장치(예를 들어, 키보드(1238) 및 마우스(1240)와 같은 포인팅 장치)를 통해 컴퓨터(102)로 명령어 및 정보를 입력할 수 있다. 기타 입력 장치(도시되지 않음)는 마이크, IR 원격 컨트롤, 조이스틱, 게임 패드, 스타일러스 펜, 터치 스크린 등을 포함할 수 있다. 기타 입력 장치는 주로 시스템 버스(1208)에 연결된 입력 장치 인터페이스(1242)를 통해 프로세싱 유닛(1204)에 연결되나, 병렬 포트, IEEE 1394 시리얼 포트, 게임 포트, USB 포트, IR 인터페이스 등과 같은 기타 인터페이스에 의해 연결될 수도 있다.
모니터(1244) 또는 다른 유형의 디스플레이 장치는 비디오 어댑터(1246)와 같은 인터페이스를 통해 시스템 버스(1208)에 연결될 수도 있다. 모니터(1244) 외에, 컴퓨터는 일반적으로 스피커, 프린터 등과 같은 주변장치 출력 장치(도시되지 않음)를 포함한다.
컴퓨터(1202)는 원격 컴퓨터(들)(1248)와 같은 하나 이상의 원격 컴퓨터에 유선 및/또는 무선 통신을 통해 논리적 연결을 사용하여 네트워킹된 환경에서 작동 한다. 원격 컴퓨터(들)(1248)는 워크스테이션, 서버 컴퓨터, 라우터, PC, 휴대용 컴퓨터, 마이크로프로세서 기반 엔터테인먼트 어플라이언스(entertainment appliance), 피어 디바이스(peer device) 또는 기타 일반적인 네트워크 노드일 수 있고, 일반적으로 컴퓨터(1202)에 관련하여 기술된 많은 또는 모든 요소를 포함할 수 있으나, 간결함을 위해서 단지 메모리/스토리지 장치(1250)만이 도시된다. 도시된 논리적 연결은 LAN(1252) 및/또는 WAM(1254)와 같은 더 큰 네트워크에 대한 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷과 같은 엔터프라이즈-와이드(enterprise-wide) 컴퓨터 네트워크를 용이하게 하며, 이는 모두, 들어 인터넷과 같은 글로벌 통신 네트워크에 연결될 수 있다.
LAN 네트워킹 환경에 사용되는 경우, 컴퓨터(1202)는 유선/무선 통신 네트워크 인터페이스 또는 어댑터(1256)를 통해 로컬 네트워크(1252)에 연결된다. 어댑터(1256)는 LAN(1252)에 대한 유선 또는 무선 통신을 용이하게 할 수 있고, 이는 무선 어댑터(1256)와 통신하기 위해 배치된 무선 액세스 포인트를 포함할 수도 있다.
WAN 네트워킹 환경에 사용되는 경우, 컴퓨터(1202)는 모뎀(1258)을 포함할 수 있거나, WAN(1254) 상의 통신 서버에 연결되거나, 인터넷과 같은 방법으로 WAN(1254) 상의 통신을 설정하기 위한 기타 수단을 가진다. 내부 또는 외부에 있을 수 있고, 유선 또는 무선 장치인 모뎀(1258)은 시리얼 포트 인터페이스(1242)를 통해 시스템 버스(1208)에 연결된다. 네트워킹 환경에서, 컴퓨터(1202)와 관련되 어 설명되는 프로그램 모듈 또는 그 일부는 원격 메모리/스토리지 장치(1205)에 저장될 수 있다. 도시된 네트워크 연결은 예시적이며, 컴퓨터들 사이의 통신 링크를 설정하는 기타 수단이 사용될 수 있다.
컴퓨터(1202)는 프린터, 스캐너, 데스크톱 및/또는 휴대용 컴퓨터, PDA, 통신 위성, 장치의 일부 또는 무선 검출가능 태그와 연관된 위치(예를 들어, 키오스트(kiosk), 신문 배포대, 화장실) 및 전화와 같은 무선 통신에 구동적으로 배치된 임의의 무선 장치 또는 엔티티와 통신하도록 동작가능하다. 이는 적어도 Wi-Fi 및 블루투스(Bluetooth™) 무선 기술을 포함한다. 따라서, 통신은 종래의 네트워크로 사전정의된 구조 또는 적어도 두 개의 장치들 사이의 간단한 ad hoc 통신일 수 있다.
도 13을 참조하면, 백엔드 서비스를 위한 프록시 서버에 의해 모바일 클라이언트 업데이트를 용이하게 하는 예시적인 컴퓨팅 환경(1300)의 개략적인 블록도가 도시된다. 시스템(1300)은 하나 이상의 클라이언트(1320)를 포함한다. 클라이언트(1320)는 하드웨어 및/또는 소프트웨어(예를 들어, 스레드, 프로세스, 컴퓨팅 장치)일 수 있다. 클라이언트(들)(1320)는, 예를 들어 본 발명을 사용함으로써 쿠키(들) 및/또는 관련된 컨텍스트의 정보를 포함할 수 있다(house).
시스템(1300)은 하나 이상의 서버(들)(1304)도 포함한다. 서버(들)(1304)는 하드웨어 및/또는 소프트웨어(예를 들어, 스레드, 프로세스, 컴퓨팅 장치)일 수 있다. 서버(1304)는, 예를 들어 아키텍처를 사용함으로써 변환을 수행하는 스레드를 포함할 수 있다. 클라이언트(1302)와 서버(1304) 사이의 가능한 일 통신은 두 개 이상의 컴퓨터 프로세스 사이에 전송되도록 적용된 데이터 패킷의 형태일 수 있다. 데이터 패킷은, 예를 들어 쿠키 및/또는 연관된 컨텍스트의 정보를 포함할 수 있다. 시스템(1300)은 클라이언트(들)(1302) 및 서버(들)(1304) 사이의 통신을 용이하게 하도록 사용될 수 있는 통신 프레임워크(1306)(예를 들어, 인터넷과 같은 글로벌 통신 네트워크)를 포함한다.
통신은 (광섬유를 포함하는) 유선 및/또는 무선 기술을 통해 용이하게 될 수 있다. 클라이언트(들)(1302)는 클라이언트(들)(1302) 근처에 정보(예를 들어, 쿠키(들) 및/또는 연관된 컨텍스트 정보)를 저장하도록 사용될 수 있는 하나 이상의 클라이언트 데이터 저장소(들)(1308)에 구동적으로 연결된다. 유사하게, 서버(들)(1304)는 서버(1304) 근처에 정보를 저장하도록 사용될 수 있는 하나 이상의 서버 데이터 저장소(들)(1310)에 구동적으로 연결된다.
상기 기술된 것은 기재된 본 발명의 예시를 포함한다. 물론, 구성요소 및/또는 방법론의 가능한 모든 조합을 설명하는 것은 불가능하나, 본 기술분야의 당업자는 더 많은 조합 및 치환이 가능하다는 것을 알 것이다. 따라서, 본 발명은 첨부된 특허청구범위의 사상과 범위 내의 이러한 모든 대체물, 수정 및 변경을 포함한다. 또한, 상세한 설명 및 특허청구범위에서 사용되는 “포함하는(includes)”이라는 용어를 확장하기 위해, 이러한 용어는, 특허청구범위에서의 접속사로 사용되는 경우 “포함하는(comprising)”이라고 해석됨으로써 “포함하는(comprising)”이라는 용어와 유사한 방법으로 포함된다.
Claims (20)
- 컴퓨터 구현된 장치 관리 시스템으로서,컴퓨터 실행가능 구성요소(component)를 실행하는 프로세서와,컴퓨터 실행가능 구성요소를 저장하는 메모리를 포함하고,상기 컴퓨터 실행가능 구성요소는,모바일 클라이언트와의 상호작용에 응답하여 상기 모바일 클라이언트의 상태에 대한 가상 클라이언트 이미지를 저장하고, 상기 모바일 클라이언트를 대신하여 백엔드 시스템(backend system)의 임의의 서비스(arbitrary service)를 액세스하기 위한 프록시 구성요소; 및상기 백엔드 시스템으로부터 상기 임의의 서비스의 서비스 정보를 수신하고, 상기 임의의 서비스에 대응하는 서비스 드라이버를 통해 상기 임의의 서비스의 서비스 정보를 태스크(tasks)로 추상화하는 드라이버 구성요소 - 상기 태스크는 상기 프록시 구성요소에 의한 실행을 위한 것이며 상기 모바일 클라이언트의 상태를 업데이트하는 것과 연관됨 - 를 포함하며,상기 프록시 구성요소는 상기 모바일 클라이언트를 위해 저장되었던 상기 모바일 클라이언트의 상태에 대한 가상 클라이언트 이미지를 액세스하고, 상기 모바일 클라이언트의 상태를 업데이트하는 것과 연관된 상기 태스크를 실행하며, 상기 모바일 클라이언트의 상태를 업데이트하는 것과 연관된 상기 태스크의 실행에 기초하여 상기 모바일 클라이언트의 상태에 대한 업데이트된 가상 클라이언트 이미지를 저장하는장치 관리 시스템.
- 제1항에 있어서,상기 모바일 클라이언트의 상태에 대한 상기 업데이트된 가상 클라이언트 이미지는 상기 모바일 클라이언트에 대한 상태 업데이트 및 상기 모바일 클라이언트를 위해 상기 드라이버 구성요소에 의해 사용되는 상기 서비스 드라이버에 대한 드라이버 정보를 포함하고,상기 프록시 구성요소는 상기 업데이트된 가상 클라이언트 이미지에 기초하여 상기 임의의 서비스를 액세스하는장치 관리 시스템.
- 제1항에 있어서,상기 프록시 구성요소는,상기 태스크를 실행하고 상기 모바일 클라이언트가 오프라인인 경우에 상기 모바일 클라이언트의 상태에 대한 상기 업데이트된 가상 클라이언트 이미지를 저장하며,상기 모바일 클라이언트가 상기 상태에 대한 변경을 수신하기 위해 상기 프록시 구성요소를 액세스하는 경우에, 상기 모바일 클라이언트의 상태에 대한 상기 업데이트된 가상 클라이언트 이미지로부터 상기 모바일 클라이언트의 상기 상태를 자동으로 업데이트하도록 구성되는장치 관리 시스템.
- 제1항에 있어서,상기 드라이버 구성요소를 통해 상기 백엔드 시스템의 상기 임의의 서비스에 대한 액세스를 제공하기 위한 다중 액세스 구성요소를 더 포함하는장치 관리 시스템.
- 제1항에 있어서,상기 백엔드 시스템은 디렉토리 서비스, 업데이트 서비스 및 메시징 서비스를 포함하는 서비스들을 포함하는장치 관리 시스템.
- 제1항에 있어서,상기 드라이버 구성요소는 상기 프록시 구성요소에 의한 실행을 위해 상기 태스크를 큐잉하도록(to queue) 구성되는장치 관리 시스템.
- 제1항에 있어서,상기 프록시 구성요소에 의해 실행될 상기 태스크 중 하나 이상이 중단되어야 하는지 여부를 판정하기 위해 상기 모바일 클라이언트를 위해 저장되었던 상기 모바일 클라이언트의 상태에 대한 상기 가상 클라이언트 이미지에 대하여 상기 태스크의 평가 테스트를 용이하게 하는 캐시 구성요소(cache component)를 더 포함하는장치 관리 시스템.
- 제1항에 있어서,상기 프록시 구성요소가 태스크 처리를 위해 상기 서비스를 액세스하는 경우에 스케줄링을 하기 위한 스케줄링 구성요소(scheduling component)를 더 포함하는장치 관리 시스템.
- 제1항에 있어서,상기 모바일 클라이언트는 오픈 모바일 연합(Open Mobile Alliance; OMA) XML 기반 프로토콜을 사용하여 상기 프록시 구성요소와 통신하는장치 관리 시스템.
- 제1항에 있어서,상기 모바일 클라이언트의 사용자가 자동적으로 수행되기를 원하는 동작을 추론하기 위해 확률 기반 분석(probabilistic-based analysis) 및 통계 기반 분석(statistical-based analysis) 중 적어도 하나를 사용하는 머신 학습 및 추론 구성요소(machine learning and reasoning component)를 더 포함하는장치 관리 시스템.
- 컴퓨터 구현된 방법으로서,모바일 장치와의 상호작용에 응답하여 프록시 서버에서 상기 모바일 장치의 장치 상태에 대한 가상 이미지를 저장하는 단계; 및상기 모바일 장치를 대신하여 상기 프록시 서버로부터 하나 이상의 백엔드 시스템의 임의의 서비스를 액세스하는 단계;상기 프록시 서버에서 상기 임의의 서비스의 서비스 정보를 수신하는 단계;상기 임의의 서비스에 대응하는 서비스 드라이버를 통해 상기 임의의 서비스의 서비스 정보를 태스크로 추상화하는 단계 - 상기 태스크는 상기 프록시 서버에서의 실행을 위한 것이고 상기 모바일 장치의 장치 상태를 업데이트하는 것과 연관됨 - ;상기 프록시 서버에서 상기 모바일 장치를 위해 저장되었던 상기 모바일 장치의 장치 상태에 대한 가상 이미지를 액세스하는 단계;상기 프록시 서버에서 상기 모바일 장치의 장치 상태를 업데이트하는 것과 연관된 태스크를 실행하는 단계; 및상기 모바일 장치의 장치 상태를 업데이트하는 것과 연관된 태스크의 실행에 기초하여 상기 프록시 서버에서 상기 모바일 장치의 장치 상태에 대한 업데이트된 가상 이미지를 저장하는 단계를 포함하는컴퓨터 구현 방법.
- 제11항에 있어서,상기 태스크들을 일괄처리(in batches)로 처리하는 단계를 더 포함하는컴퓨터 구현 방법.
- 제11항에 있어서,상기 태스크를 실행하고 상기 모바일 장치가 오프라인인 경우에 상기 모바일 장치의 장치 상태에 대한 상기 업데이트된 가상 이미지를 저장하는 단계를 더 포함하는컴퓨터 구현 방법.
- 제11항에 있어서,상기 임의의 서비스들에 대응하는 상기 서비스 드라이버를 사용하여 실행될 상기 태스크를 큐잉(queuing)하는 단계를 더 포함하는컴퓨터 구현 방법.
- 제11항에 있어서,상기 프록시 서버로부터 복수의 백엔드 시스템을 비동기적으로 액세스하는 단계 - 상기 복수의 백엔드 시스템은 상기 임의의 서비스와 연관됨 - 를 더 포함하는컴퓨터 구현 방법.
- 제11항에 있어서,상기 임의의 서비스가 상기 모바일 장치에 대해 호환가능한지를 결정하기 위해 상기 모바일 장치를 위해 저장되었던 상기 모바일 장치의 장치 상태에 대한 상기 가상 이미지에 대하여 상기 태스크의 평가 테스트를 수행하는 단계를 더 포함하는컴퓨터 구현 방법.
- 제16항에 있어서,상기 평가 테스트에 기초하여 상기 모바일 장치의 상기 장치 상태의 업데이트를 지연시키는 단계를 더 포함하는컴퓨터 구현 방법.
- 제11항에 있어서,상기 모바일 장치의 장치 상태를 업데이트하기 전에 상기 장치 상태의 컨디션 평가(condition evaluation)를 위해 장치 구성 값을 캐싱하는 단계를 더 포함하는컴퓨터 구현 방법.
- 제11항에 있어서,상기 모바일 장치가 상기 프록시 서버에 연결되는 경우에 상기 모바일 장치의 장치 상태에 대한 상기 업데이트된 가상 이미지로부터 상기 모바일 장치의 상기 장치 상태를 자동적으로 업데이트하는 단계를 더 포함하는컴퓨터 구현 방법.
- 실행될 때 서버로 하여금 컴퓨터 구현된 방법을 수행하게 하는 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체로서,상기 컴퓨터 구현된 방법은,모바일 장치와의 상호작용에 응답하여 서버 컴퓨터에서 상기 모바일 장치의 장치 상태에 대한 가상 이미지를 저장하는 단계; 및상기 모바일 장치를 대신하여 상기 서버 컴퓨터로부터 하나 이상의 백엔드 시스템의 임의의 서비스를 액세스하는 단계;상기 서버 컴퓨터에서 상기 임의의 서비스의 서비스 정보를 수신하는 단계;상기 임의의 서비스에 대응하는 서비스 드라이버를 통해 상기 임의의 서비스의 서비스 정보를 태스크로 추상화하는 단계 - 상기 태스크는 상기 서버 컴퓨터에서의 실행을 위한 것이고 상기 모바일 장치의 장치 상태를 업데이트하는 것과 연관됨 - ;상기 서버 컴퓨터에서 상기 모바일 장치를 위해 저장되었던 상기 모바일 장치의 장치 상태에 대한 가상 이미지를 액세스하는 단계;상기 서버 컴퓨터에서 상기 모바일 장치의 장치 상태를 업데이트하는 것과 연관된 태스크를 실행하는 단계; 및상기 모바일 장치의 장치 상태를 업데이트하는 것과 연관된 태스크의 실행에 기초하여 상기 서버 컴퓨터에서 상기 모바일 장치의 장치 상태에 대한 업데이트된 가상 이미지를 저장하는 단계를 포함하는컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/698,639 | 2007-01-26 | ||
US11/698,639 US7987471B2 (en) | 2007-01-26 | 2007-01-26 | Mobile device management proxy system |
PCT/US2007/088919 WO2008091472A1 (en) | 2007-01-26 | 2007-12-27 | Mobile device management proxy system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090111824A KR20090111824A (ko) | 2009-10-27 |
KR101301333B1 true KR101301333B1 (ko) | 2013-08-29 |
Family
ID=39644776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097015702A KR101301333B1 (ko) | 2007-01-26 | 2007-12-27 | 모바일 장치 관리 프록시 시스템 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7987471B2 (ko) |
EP (1) | EP2106669B1 (ko) |
JP (1) | JP4875756B2 (ko) |
KR (1) | KR101301333B1 (ko) |
CN (1) | CN101589599B (ko) |
TW (1) | TWI441477B (ko) |
WO (1) | WO2008091472A1 (ko) |
Families Citing this family (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1466261B1 (en) | 2002-01-08 | 2018-03-07 | Seven Networks, LLC | Connection architecture for a mobile network |
US7917468B2 (en) | 2005-08-01 | 2011-03-29 | Seven Networks, Inc. | Linking of personal information management data |
US8468126B2 (en) | 2005-08-01 | 2013-06-18 | Seven Networks, Inc. | Publishing data in an information community |
US7853563B2 (en) | 2005-08-01 | 2010-12-14 | Seven Networks, Inc. | Universal data aggregation |
WO2006045102A2 (en) | 2004-10-20 | 2006-04-27 | Seven Networks, Inc. | Method and apparatus for intercepting events in a communication system |
US7706781B2 (en) | 2004-11-22 | 2010-04-27 | Seven Networks International Oy | Data security in a mobile e-mail service |
FI117152B (fi) | 2004-12-03 | 2006-06-30 | Seven Networks Internat Oy | Sähköpostiasetusten käyttöönotto matkaviestimelle |
US7752633B1 (en) | 2005-03-14 | 2010-07-06 | Seven Networks, Inc. | Cross-platform event engine |
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
WO2006136660A1 (en) | 2005-06-21 | 2006-12-28 | Seven Networks International Oy | Maintaining an ip connection in a mobile network |
US7769395B2 (en) | 2006-06-20 | 2010-08-03 | Seven Networks, Inc. | Location-based operations and messaging |
US20080104269A1 (en) * | 2006-10-30 | 2008-05-01 | Research In Motion Limited | Method and apparatus for web browser page fragmentation |
US8805425B2 (en) | 2007-06-01 | 2014-08-12 | Seven Networks, Inc. | Integrated messaging |
US8693494B2 (en) | 2007-06-01 | 2014-04-08 | Seven Networks, Inc. | Polling |
US8364181B2 (en) | 2007-12-10 | 2013-01-29 | Seven Networks, Inc. | Electronic-mail filtering for mobile devices |
US9002828B2 (en) | 2007-12-13 | 2015-04-07 | Seven Networks, Inc. | Predictive content delivery |
US8107921B2 (en) | 2008-01-11 | 2012-01-31 | Seven Networks, Inc. | Mobile virtual network operator |
US8862657B2 (en) | 2008-01-25 | 2014-10-14 | Seven Networks, Inc. | Policy based content service |
US20090193338A1 (en) | 2008-01-28 | 2009-07-30 | Trevor Fiatal | Reducing network and battery consumption during content delivery and playback |
US9141483B1 (en) | 2008-03-27 | 2015-09-22 | Dropbox, Inc. | System and method for multi-tier synchronization |
US8787947B2 (en) | 2008-06-18 | 2014-07-22 | Seven Networks, Inc. | Application discovery on mobile devices |
US8078158B2 (en) | 2008-06-26 | 2011-12-13 | Seven Networks, Inc. | Provisioning applications for a mobile device |
US8560713B2 (en) * | 2008-07-31 | 2013-10-15 | Sap Ag | Method and system for mediating enterprise service access for smart devices |
US8224850B2 (en) * | 2008-08-13 | 2012-07-17 | Motorola Mobility, Inc. | Method and system for determining users that satisfy desired conditions |
US8181178B2 (en) * | 2008-08-14 | 2012-05-15 | Yahoo! Inc. | Online batch execution |
US8767688B2 (en) * | 2008-09-23 | 2014-07-01 | Lu Qian | Virtual network image system for wireless local area network services |
US8909759B2 (en) | 2008-10-10 | 2014-12-09 | Seven Networks, Inc. | Bandwidth measurement |
US9014640B2 (en) * | 2008-10-31 | 2015-04-21 | Qualcomm Incorporated | Wake-up trigger for implementation of target actions |
US9467518B2 (en) * | 2009-02-16 | 2016-10-11 | Communitake Technologies Ltd. | System, a method and a computer program product for automated remote control |
US9665729B2 (en) * | 2009-04-13 | 2017-05-30 | Microsoft Technology Licensing, Llc | Revocation of application on mobile device |
CN101924645B (zh) * | 2009-06-12 | 2013-07-10 | 华为技术有限公司 | 一种设备管理方法、装置及系统 |
US20110047253A1 (en) * | 2009-08-19 | 2011-02-24 | Samsung Electronics Co. Ltd. | Techniques for controlling gateway functionality to support device management in a communication system |
EP3651028A1 (en) | 2010-07-26 | 2020-05-13 | Seven Networks, LLC | Mobile network traffic coordination across multiple applications |
US8838783B2 (en) | 2010-07-26 | 2014-09-16 | Seven Networks, Inc. | Distributed caching for resource and mobile network traffic management |
WO2012018556A2 (en) | 2010-07-26 | 2012-02-09 | Ari Backholm | Mobile application traffic optimization |
GB2495877B (en) | 2010-07-26 | 2013-10-02 | Seven Networks Inc | Distributed implementation of dynamic wireless traffic policy |
US9330196B2 (en) | 2010-11-01 | 2016-05-03 | Seven Networks, Llc | Wireless traffic management system cache optimization using http headers |
US8843153B2 (en) | 2010-11-01 | 2014-09-23 | Seven Networks, Inc. | Mobile traffic categorization and policy for network use optimization while preserving user experience |
CN103620576B (zh) | 2010-11-01 | 2016-11-09 | 七网络公司 | 适用于移动应用程序行为和网络条件的缓存 |
US8484314B2 (en) | 2010-11-01 | 2013-07-09 | Seven Networks, Inc. | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US8326985B2 (en) | 2010-11-01 | 2012-12-04 | Seven Networks, Inc. | Distributed management of keep-alive message signaling for mobile network resource conservation and optimization |
US9060032B2 (en) | 2010-11-01 | 2015-06-16 | Seven Networks, Inc. | Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic |
WO2012060995A2 (en) | 2010-11-01 | 2012-05-10 | Michael Luna | Distributed caching in a wireless network of content delivered for a mobile application over a long-held request |
US8166164B1 (en) | 2010-11-01 | 2012-04-24 | Seven Networks, Inc. | Application and network-based long poll request detection and cacheability assessment therefor |
US8495195B1 (en) * | 2010-11-04 | 2013-07-23 | Sprint Communications Company L.P. | Cookie preservation when switching devices |
EP2636268B1 (en) | 2010-11-22 | 2019-02-27 | Seven Networks, LLC | Optimization of resource polling intervals to satisfy mobile device requests |
CN103404193B (zh) | 2010-11-22 | 2018-06-05 | 七网络有限责任公司 | 调校数据传输以优化为通过无线网络的传输建立的连接 |
WO2012094675A2 (en) | 2011-01-07 | 2012-07-12 | Seven Networks, Inc. | System and method for reduction of mobile network traffic used for domain name system (dns) queries |
US9038915B2 (en) | 2011-01-31 | 2015-05-26 | Metrologic Instruments, Inc. | Pre-paid usage system for encoded information reading terminals |
US20130007625A1 (en) * | 2011-03-21 | 2013-01-03 | Victor Lozinski | Apparatus, system, and method for connecting mobile devices to a backend server in an enterprise software environment and initiating a business process |
US20120271903A1 (en) | 2011-04-19 | 2012-10-25 | Michael Luna | Shared resource and virtual resource management in a networked environment |
GB2505585B (en) | 2011-04-27 | 2015-08-12 | Seven Networks Inc | Detecting and preserving state for satisfying application requests in a distributed proxy and cache system |
GB2493473B (en) | 2011-04-27 | 2013-06-19 | Seven Networks Inc | System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief |
US8984581B2 (en) | 2011-07-27 | 2015-03-17 | Seven Networks, Inc. | Monitoring mobile application activities for malicious traffic on a mobile device |
US10592865B2 (en) * | 2011-08-05 | 2020-03-17 | Genband Us Llc | Methods, systems, and computer readable media for managing social interaction histories |
US8781475B1 (en) | 2012-08-24 | 2014-07-15 | Utility Associates, Inc. | Method for switching from a first cellular network to a second cellular network |
WO2013086225A1 (en) | 2011-12-06 | 2013-06-13 | Seven Networks, Inc. | A mobile device and method to utilize the failover mechanisms for fault tolerance provided for mobile traffic management and network/device resource conservation |
US8918503B2 (en) | 2011-12-06 | 2014-12-23 | Seven Networks, Inc. | Optimization of mobile traffic directed to private networks and operator configurability thereof |
US9009250B2 (en) * | 2011-12-07 | 2015-04-14 | Seven Networks, Inc. | Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation |
US9277443B2 (en) | 2011-12-07 | 2016-03-01 | Seven Networks, Llc | Radio-awareness of mobile device for sending server-side control signals using a wireless network optimized transport protocol |
US9324055B2 (en) * | 2011-12-08 | 2016-04-26 | Microsoft Technology Licensing, Llc | Techniques to manage remote events |
US9832095B2 (en) | 2011-12-14 | 2017-11-28 | Seven Networks, Llc | Operation modes for mobile traffic optimization and concurrent management of optimized and non-optimized traffic |
US9021021B2 (en) | 2011-12-14 | 2015-04-28 | Seven Networks, Inc. | Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system |
US8861354B2 (en) | 2011-12-14 | 2014-10-14 | Seven Networks, Inc. | Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization |
CN102448147B (zh) * | 2011-12-21 | 2014-12-03 | 华为技术有限公司 | 一种无线业务接入方法和装置 |
US8909202B2 (en) | 2012-01-05 | 2014-12-09 | Seven Networks, Inc. | Detection and management of user interactions with foreground applications on a mobile device in distributed caching |
US9203864B2 (en) | 2012-02-02 | 2015-12-01 | Seven Networks, Llc | Dynamic categorization of applications for network access in a mobile network |
US9326189B2 (en) | 2012-02-03 | 2016-04-26 | Seven Networks, Llc | User as an end point for profiling and optimizing the delivery of content and data in a wireless network |
US8812695B2 (en) | 2012-04-09 | 2014-08-19 | Seven Networks, Inc. | Method and system for management of a virtual network connection without heartbeat messages |
US20130268656A1 (en) | 2012-04-10 | 2013-10-10 | Seven Networks, Inc. | Intelligent customer service/call center services enhanced using real-time and historical mobile application and traffic-related statistics collected by a distributed caching system in a mobile network |
US9313252B2 (en) * | 2012-04-20 | 2016-04-12 | Microsoft Technology Licensing, Llc | Binding crud-type protocols in distributed agreement protocols |
EP2850552B1 (en) | 2012-05-16 | 2019-05-08 | Okta, Inc. | Systems and methods for providing and managing distributed enclaves |
GB2503441A (en) | 2012-06-26 | 2014-01-01 | Ibm | Managing mobile devices using other mobile devices based on loation |
US8775631B2 (en) | 2012-07-13 | 2014-07-08 | Seven Networks, Inc. | Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications |
EP2704396B1 (en) * | 2012-09-04 | 2019-07-31 | Tata Consultancy Services Limited | System and method facilitating communication in an adaptive virtual environment |
US9161258B2 (en) | 2012-10-24 | 2015-10-13 | Seven Networks, Llc | Optimized and selective management of policy deployment to mobile clients in a congested network to prevent further aggravation of network congestion |
US20140177497A1 (en) | 2012-12-20 | 2014-06-26 | Seven Networks, Inc. | Management of mobile device radio state promotion and demotion |
US9271238B2 (en) | 2013-01-23 | 2016-02-23 | Seven Networks, Llc | Application or context aware fast dormancy |
US8874761B2 (en) | 2013-01-25 | 2014-10-28 | Seven Networks, Inc. | Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
CN103974312A (zh) * | 2013-02-05 | 2014-08-06 | 中国移动通信集团公司 | 一种无线局域网wlan设备测试方法、装置及系统 |
US8750123B1 (en) | 2013-03-11 | 2014-06-10 | Seven Networks, Inc. | Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network |
US9559902B2 (en) * | 2013-06-02 | 2017-01-31 | Microsoft Technology Licensing, Llc | Distributed state model for system configuration synchronization |
US9065765B2 (en) | 2013-07-22 | 2015-06-23 | Seven Networks, Inc. | Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network |
US10025836B2 (en) | 2013-12-12 | 2018-07-17 | Mobile Iron, Inc. | Application synchronization |
US20150312102A1 (en) * | 2014-02-18 | 2015-10-29 | Seven Networks, Inc. | Policy management for signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
US9954728B2 (en) * | 2014-04-11 | 2018-04-24 | Arxan Technologies, Inc. | Management of mobile devices in a network environment |
US9661440B2 (en) | 2014-07-25 | 2017-05-23 | Qualcomm Incorporated | Methods and systems for triggering efficient application synchronization |
CN104881327B (zh) * | 2015-06-01 | 2018-08-24 | 曙光信息产业(北京)有限公司 | 集群的作业流管理方法和装置 |
US9606817B1 (en) | 2015-06-23 | 2017-03-28 | Symantec Corporation | Systems and methods for virtualizing internet of things (IoT) devices |
US10136247B2 (en) * | 2015-10-20 | 2018-11-20 | Microsoft Technology Licensing, Llc | Physical and virtual phone mobility |
US10331434B2 (en) * | 2016-12-21 | 2019-06-25 | Quanta Computer Inc. | System and method for remotely updating firmware |
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 |
US11811604B2 (en) * | 2021-03-17 | 2023-11-07 | Stripe, Inc. | Cross-platform contract validation |
WO2024103083A1 (en) | 2022-11-14 | 2024-05-23 | Xephor Solutions GmbH | Computing system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103881A1 (en) * | 2000-09-11 | 2002-08-01 | Francois Granade | Method and system for integrating applications and mobile networks |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233577B1 (en) * | 1998-02-17 | 2001-05-15 | Phone.Com, Inc. | Centralized certificate management system for two-way interactive communication devices in data networks |
US6311206B1 (en) * | 1999-01-13 | 2001-10-30 | International Business Machines Corporation | Method and apparatus for providing awareness-triggered push |
US6480901B1 (en) * | 1999-07-09 | 2002-11-12 | Lsi Logic Corporation | System for monitoring and managing devices on a network from a management station via a proxy server that provides protocol converter |
AU2001248164A1 (en) * | 2000-03-31 | 2001-10-15 | Mdsi Mobile Data Solutions, Inc. | Enterprise scheduling system for scheduling mobile service representatives |
JP2002007238A (ja) * | 2000-06-21 | 2002-01-11 | Nec Corp | 移動通信システム及びそのゲートウェイ選択方法 |
US6895444B1 (en) * | 2000-09-15 | 2005-05-17 | Motorola, Inc. | Service framework with local proxy for representing remote services |
US6944760B2 (en) * | 2001-05-24 | 2005-09-13 | Openwave Systems Inc. | Method and apparatus for protecting identities of mobile devices on a wireless network |
KR100682377B1 (ko) * | 2001-05-25 | 2007-02-15 | 삼성전자주식회사 | 유기 전계발광 디바이스 및 이의 제조 방법 |
US20030017826A1 (en) * | 2001-07-17 | 2003-01-23 | Dan Fishman | Short-range wireless architecture |
US7149813B2 (en) * | 2001-08-14 | 2006-12-12 | Microsoft Corporation | Method and system for synchronizing mobile devices |
US6697839B2 (en) * | 2001-11-19 | 2004-02-24 | Oracle International Corporation | End-to-end mobile commerce modules |
US20040215711A1 (en) * | 2002-03-14 | 2004-10-28 | Openwave Systems Inc. | Mobile services platform architecture |
JP4149199B2 (ja) * | 2002-06-05 | 2008-09-10 | 富士通株式会社 | 携帯端末補助装置、データ同期方法および携帯端末装置 |
AU2003284292A1 (en) * | 2002-10-21 | 2004-05-13 | Bitfone Corporation | System with required enhancements to syncml dm environment to support firmware updates |
US8356067B2 (en) * | 2002-10-24 | 2013-01-15 | Intel Corporation | Servicing device aggregates |
US8694620B2 (en) * | 2003-09-08 | 2014-04-08 | Microsoft Corporation | System and method for an OMA DM extension to manage mobile device configuration settings |
US7324473B2 (en) * | 2003-10-07 | 2008-01-29 | Accenture Global Services Gmbh | Connector gateway |
US7523155B2 (en) * | 2004-03-18 | 2009-04-21 | International Business Machines Corporation | Method, system and program product for using open mobile alliance (OMA) alerts to send client commands/requests to an OMA DM server |
US7995506B2 (en) * | 2004-03-23 | 2011-08-09 | Flash Networks Ltd. | System and method for integrating information services through cellular network |
US20050220080A1 (en) * | 2004-04-01 | 2005-10-06 | Nokia Corporation | System, method, computer program product, and business method for device group management using virtual device domain |
US7730482B2 (en) * | 2004-06-08 | 2010-06-01 | Covia Labs, Inc. | Method and system for customized programmatic dynamic creation of interoperability content |
KR100641238B1 (ko) * | 2004-07-09 | 2006-11-02 | 엘지전자 주식회사 | 장치 관리 시스템 및 그 시스템에서의 장치관리 명령스케줄링 방법 |
US7844964B2 (en) * | 2004-09-23 | 2010-11-30 | Hewlett Packard Development Company, L.P. | Network for mass distribution of configuration, firmware and software updates |
WO2006049276A1 (ja) * | 2004-11-08 | 2006-05-11 | iWaveDesign, Inc. | データ伝送システム |
US20060217111A1 (en) * | 2005-02-11 | 2006-09-28 | Sunil Marolia | Network for customer care and distribution of firmware and software updates |
US20060200814A1 (en) * | 2005-03-02 | 2006-09-07 | Nokia Corporation | Software distribution with activation control |
US20060200503A1 (en) * | 2005-03-03 | 2006-09-07 | Nokia Corporation | Modifying back-end web server documents at an intermediary server using directives |
US7716661B2 (en) * | 2005-03-16 | 2010-05-11 | Microsoft Corporation | Embedded device update service |
EP1705832A3 (en) * | 2005-03-22 | 2011-08-03 | Hewlett-Packard Development Company, L.P. | Device profile retrieval in a management network |
CA2604902C (en) * | 2005-04-18 | 2013-06-11 | Research In Motion Limited | System and method for enabling group subscription for asynchronous push-based applications on a wireless device |
US20060282516A1 (en) * | 2005-04-18 | 2006-12-14 | Taylor Sean P | System and method for discovering component applications |
EP1872522B1 (en) * | 2005-04-18 | 2012-12-05 | Research In Motion Limited | System and method for enabling asynchronous push-based applications on a wireless device |
-
2007
- 2007-01-26 US US11/698,639 patent/US7987471B2/en not_active Expired - Fee Related
- 2007-12-27 JP JP2009547249A patent/JP4875756B2/ja not_active Expired - Fee Related
- 2007-12-27 WO PCT/US2007/088919 patent/WO2008091472A1/en active Application Filing
- 2007-12-27 EP EP07869964.2A patent/EP2106669B1/en active Active
- 2007-12-27 CN CN2007800505269A patent/CN101589599B/zh active Active
- 2007-12-27 KR KR1020097015702A patent/KR101301333B1/ko active IP Right Grant
-
2008
- 2008-01-04 TW TW097100422A patent/TWI441477B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103881A1 (en) * | 2000-09-11 | 2002-08-01 | Francois Granade | Method and system for integrating applications and mobile networks |
Also Published As
Publication number | Publication date |
---|---|
US7987471B2 (en) | 2011-07-26 |
EP2106669A1 (en) | 2009-10-07 |
WO2008091472A1 (en) | 2008-07-31 |
EP2106669A4 (en) | 2013-02-06 |
CN101589599B (zh) | 2013-02-13 |
KR20090111824A (ko) | 2009-10-27 |
JP2010517165A (ja) | 2010-05-20 |
CN101589599A (zh) | 2009-11-25 |
JP4875756B2 (ja) | 2012-02-15 |
EP2106669B1 (en) | 2014-11-12 |
TWI441477B (zh) | 2014-06-11 |
TW200838213A (en) | 2008-09-16 |
US20080183800A1 (en) | 2008-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101301333B1 (ko) | 모바일 장치 관리 프록시 시스템 | |
US9306975B2 (en) | Transmitting aggregated information arising from appnet information | |
US9680699B2 (en) | Evaluation systems and methods for coordinating software agents | |
US8601530B2 (en) | Evaluation systems and methods for coordinating software agents | |
US7752255B2 (en) | Configuring software agent security remotely | |
US8595322B2 (en) | Target subscription for a notification distribution system | |
US7836123B2 (en) | System and method for non-HTTP session based publish/subscribe support using pre-emptive subscriptions | |
US20130067015A1 (en) | Counting and reseting broadcast system badge counters | |
US8224930B2 (en) | Signaling partial service configuration changes in appnets | |
US8984579B2 (en) | Evaluation systems and methods for coordinating software agents | |
US11765120B2 (en) | Message queue architecture and interface for a multi-application platform | |
US8694462B2 (en) | Scale-out system to acquire event data | |
US8607336B2 (en) | Evaluation systems and methods for coordinating software agents | |
US20080068381A1 (en) | Using network access port linkages for data structure update decisions | |
US20080071898A1 (en) | Using network access port linkages for data structure update decisions | |
US8055797B2 (en) | Transmitting aggregated information arising from appnet information | |
US20080071793A1 (en) | Using network access port linkages for data structure update decisions | |
US8601104B2 (en) | Using network access port linkages for data structure update decisions | |
WO2018089339A1 (en) | Method and system for affinity load balancing |
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: 20160720 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170719 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180730 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190729 Year of fee payment: 7 |