JP2024020448A - コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装 - Google Patents

コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装 Download PDF

Info

Publication number
JP2024020448A
JP2024020448A JP2023195827A JP2023195827A JP2024020448A JP 2024020448 A JP2024020448 A JP 2024020448A JP 2023195827 A JP2023195827 A JP 2023195827A JP 2023195827 A JP2023195827 A JP 2023195827A JP 2024020448 A JP2024020448 A JP 2024020448A
Authority
JP
Japan
Prior art keywords
configuration information
configuration
mobile device
server
state machine
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2023195827A
Other languages
English (en)
Inventor
カウフマン,ピーター・ジェイ
ジュン,リチャード・アイ
ラシワラ,モイズ・ズィー
デュデュグジアン,ダニエル・エス
ラヒリ,シャヤク
ボウルズ,ショーン・エイ
ジュウ,ユハーン
チーマ,アディープ・シン
サムドララ,ラマ・クリシュナ
コシュティ,ジーテンドラクマー・ジー
ダワン,ゴーラブ・ラグー
Original Assignee
マイクロソフト テクノロジー ライセンシング,エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロソフト テクノロジー ライセンシング,エルエルシー filed Critical マイクロソフト テクノロジー ライセンシング,エルエルシー
Publication of JP2024020448A publication Critical patent/JP2024020448A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal

Abstract

【課題】コンピューティング・デバイスにコンフィギュレーション・シナリオを順守させるために、コンピューティング・デバイスによってコンプライアンス設定を実装することを対象とする。【解決手段】システム100において、コンピューティング・デバイスは、コンピューティング・デバイスをコンフィギュレーション・シナリオに順守させるために、コンピューティング・デバイスによって実装するコンプライアンス設定を記述するコンフィギュレーション情報を、サーバーから受信し、コンフィギュレーション情報によって示されコンプライアンス設定を実装するコンフィギュレーション・プロセスを記述する状態機械を識別する状態機械を実行して、コンピューティング・デバイスにコンプライアンス設定を組み込む。【選択図】図1

Description

[0001] モバイル・デバイス管理(MDM:Mobile device management)とは、従業員が生産性を維持し企業方針に違反しないことを確保する方法である。多くの組織は、MDM製品/サービスを使用して、それらの従業員の活動を管理する。MDMは、主に、企業データー分離、電子メールの安全性確保、デバイス上における企業文書の安全性確保、企業方針の施行、ならびに種々の部類のラップトップおよびハンドヘルドを含むモバイル・デバイスの統合および管理を扱う。組織のネットワークにおける全てのモバイル・デバイスのデーターおよびコンフィギュレーション設定を管理ならびに保護することによって、MDMはサポート・コストおよび事業リスクを減らすことができる。
[0002] この摘要は、以下で詳細な説明において更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を識別することを意図するのではなく、特許請求する主題の範囲を限定するために使用されることを意図するのでもない。
[0003] 本明細書において説明する実施形態は、コンピューティング・デバイスにコンフィギュレーション・シナリオを順守させるために、コンピューティング・デバイスによってコンプライアンス設定を実装することに関する。実例をあげると、コンピューティング・デバイスは、サーバーから、コンフィギュレーション情報を受信することができる。コンフィギュレーション情報は、コンピューティング・デバイスにコンフィギュレーション・シナリオを順守させることを、コンピューティング・デバイスによって実施するためのコンプライアンス設定を記述する。更に、コンピューティング・デバイスは、コンプライアンス設定を実装するコンフィギュレーション・プロセスを記述するコンフィギュレーション情報によって示される(例えば、識別子によって)状態機械を識別することができる。状態機械は、コンピューティング・デバイスにコンプライアンス設定を組み込む(configure)ために実行することができる。状態機械を実行すると、依存性(dependencies)と
共にコンフィギュレーション情報に含まれるペイロードを、状態機械によって指令される順序で処理し、コンピューティング・デバイスを構成することができる。
[0004] 本発明の更に他の特徴および利点、ならびに本発明の種々の実施形態の構造および動作について、添付図面を参照しながら以下で詳しく説明する。尚、本発明は、本明細書において説明する具体的な実施形態には限定されないことを注記しておく。このような実施形態は、本明細書では、例示の目的に限って提示されるに過ぎない。本明細書に含まれる教示に基づけば、他の実施形態も当業者には明らかであろう。
[0005] 添付図面は、本明細書に組み込まれその一部を形成し、実施形態を図示する。更に、添付図面は、説明と併せて実施形態の原理を更に説明し、当業者が実施形態を実施および使用することを可能にする役割を果たす。
図1は、実施形態例にしたがって、コンピューティング・デバイスにコンフィギュレーション・シナリオを順守させるために、コンピューティング・デバイスによってコンプライアンス設定を実装するシステムのブロック図を示す。 図2Aは、図1のシステムの更に詳細な例であり、実施形態例にしたがって、コンピューティング・デバイスにコンフィギュレーション・シナリオを順守させるために、コンピューティング・デバイスによってコンプライアンス設定を実装するシステムのブロック図を示す。 図2Bは、図1のシステムの更に詳細な例であり、実施形態例にしたがって、コンピューティング・デバイスにコンフィギュレーション・シナリオを順守させるために、コンピューティング・デバイスによってコンプライアンス設定を実装するシステムの他のブロック図を示す。 図3は、実施形態例にしたがって、コンピューティング・デバイスにコンフィギュレーション・シナリオを順守させるために、コンピューティング・デバイスによってコンプライアンス設定を実装する方法例のフローチャートを示す。 図4は、実施形態例にしたがって、しかるべくモバイル・デバイスが構成されたか否か判定する方法例のフローチャートを示す。 図5は、実施形態例にしたがって、コンフィギュレーション結果を格納および送信する方法例のフローチャートを示す。 図6は、実施形態にしたがって、コンフィギュレーション情報に伴うエラーの訂正を要求する方法例のフローチャートを示す。 図7は、実施形態にしたがって、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報を受信する方法例のフローチャートを示す。 図8は、実施形態を実施することができる例示的なユーザー・デバイスのブロック図である。 図9は、実施形態を実施するために使用することができるコンピューティング・デバイス例のブロック図である。
[0016] 本発明の特徴および利点は、以下に明記する詳細な説明を、添付図面と併せて検討することによって、一層明らかになるであろう。図面において、同様の参照記号は全体を通じて対応する要素を識別する。図面において、同様の参照番号は総じて同一の、機能的に同様な、および/または構造的に同様な要素を示す。要素が最初に出てくる図面は、対応する参照番号における最も左側にある桁(1つまたは複数)によって示される。
1.導入
[0017] 本明細書および添付図面は、本発明の特徴を組み込んだ1つ以上の実施形態を開示する。本発明の範囲は、開示する実施形態に限定されるのではない。開示する実施形態は、単に本発明を例示するに過ぎず、開示する実施形態を修正した変形も、本発明によって包含される。本発明の実施形態は、添付する特許請求の範囲によって定められるものとする。
[0018] 明細書において「一実施形態」(one embodiment)、「実施形態」(an embodiment)、「実施形態例」(an example embodiment)等に言及するときは、その記載される実施形態が、特定の特徴、構造、または特性を含むのはもっともであるが、あらゆる実施形態が必ずしもその特定の特徴、構造、または特性を含まなくてもよいことを示す。更に、このような語句は必ずしも同じ実施形態を指すわけではない。更にまた、ある実施形態に関して特定の特徴、構造、または特性が記載されるとき、そのような特徴、構造、または特性を、明示的に記載されているか否かには関係なく、他の実施形態と関連付けて実現する(effect)ことは、当業者の知識の範囲内でできることを具申する。
[0019] 以下に多数の例示的な実施形態について説明する。尚、本明細書において示す章/副章の見出しはいずれも、限定であることを意図するのではないことを注記しておく。この文書全体を通じて実施形態について説明するが、あらゆる種類の実施形態がいずれの章/副章の下にも含まれることが可能である。更に、いずれの章/副章において開示さ
れる実施形態も、同じ章/副章および/または異なる章/副章において説明される他のいずれの実施形態とでも、任意の仕方で組み合わせることができる。
II.デバイス・コンプライアンスを管理するシステムおよび方法
[0020] 今日の企業用モバイル・デバイス管理(MDM)プロセスの典型的な構造(construct)では、モバイル・デバイスのコンフィギュレーションを実行および監視し、大量
のデーターを格納し、連続的なエラー・チェックおよび予防保全を行う役割を担わせるために、MDMサーバーを使用する。このような機能は、数百台、数千台、数万台、数百万台、数億台、更に多くのデバイスを含む、企業の多数のデバイスのために実行される場合もある。その結果、サーバーは、企業のネットワークのモバイル技術リソースの全てが正しく構成され、セキュリティおよび他の重要なプロトコルの制限(confines)内で機能し、アップデートを実装しそれに適合しているか否か判定するために、数え切れない程の「コンピューティング・カロリー」(computing calories)を頻繁に切り替える(churn)(例え
ば、大量の処理パワーを使用する)。
[0021] これが意味するのは、サーバーが、企業のネットワーク上にある多くの個々のモバイル・デバイスと通信し、コンフィギュレーション・プロセスおよび報告の必要性を最終的に監視しなければならないことにより、大きな負担がかかるということである。このシナリオでは、デバイス数、純然なトラフィック(sheer traffic)、およびコンフィギ
ュレーション・ボリュームが単に与えられるだけであり、企業にとってスケーラビリティは非常に困難である。言い換えると、サーバーは、膨大な量の管理すべき作業を有する。更に、コンフィギュレーションの施行が効率化されておらず、その特性(nature)がデバイスに特定的であるために、このコンフィギュレーション・プロセスは、他の場合には防げたかもしれないエラーを孕むおそれがある。
[0022] これらの欠点(limitations)は、デバイス管理プロセスにおけるサーバーの関
与を変更することによって、最終的に改善することができる。例えば、実施形態では、サーバーは、モバイル・デバイスにそれ自体のコンフィギュレーションを実行するように要求することによって、生産性向上を体験することができる。本明細書において説明する実施形態では、サーバーはコンフィギュレーションの詳細をモバイル・デバイスに供給することができ、モバイル・デバイスが、一般化された状態機械として作用することによって、コンフィギュレーション・プロセスを駆動することができる。これらおよびその他の実施形態については、以下で図1に関して更に詳しく説明する。尚、本明細書において説明する実施形態は、Apple iOS(登録商標)およびGoogle Android(商標)のような任意のオペレーティング・システム/コンピューティング・プラットフォームに適用できること、そして本明細書においてMicrosoft(登録商標)Windows(登録商標)および/またはそのコンポーネントに言及するのは、説明および例示の目的のために過ぎず、限定と解釈してはならないことを注記しておく。
[0023] 図1は、実施形態例にしたがって、コンピューティング・デバイスにコンフィギュレーション・シナリオを順守させるために、コンピューティング・デバイスによってコンプライアンス設定を実装するコンプライアンス施行システム100のブロック図である。図1に示すように、システム100は、サーバー102、コンピューティング・デバイス104、および1つ以上のデーター・ストア108を含み、これらは企業ネットワーク110を通じて通信可能に結合されている。サーバー102は、コンプライアンス・エンジン122を含む。コンピューティング・デバイス104は、コンプライアンス・エージェント120を含む。1つのコンピューティング・デバイス104が示されているが、サーバー102によって供給されたコンプライアンス設定を有する任意の数のコンピューティング・デバイスがシステム100内に存在してもよく、数十台、数百台、数千台、数万台、数百万台、数億台、そしてそれよりも多い数のコンピューティング・デバイスが含
まれてもよい。データー・ストア(1つまたは複数)108は、1つ以上の物理メモリーおよび/または記憶デバイスを含んでもよい。データー・ストア(1つまたは複数)108は、本明細書において記載する、および/または本開示の利益を有する当業者によって理解される、任意の種類の物理メモリーおよび/または記憶デバイスであってもよい。企業ネットワーク110は、企業の1箇所以上の場所にある企業デバイス(例えば、コンピューティング・デバイス104および図示しない他のコンピューティング・デバイス)を他の企業デバイスに相互接続する目的で、そして企業デバイスがコンピューティング・リソースにアクセスするおよび/またはコンピューティング・リソースを共有することを可能にするために、企業によって敷設されたプライベート・コンピューター・ネットワークを含む。
[0024] コンピューティング・デバイス104は、企業の1人以上の構成員(例えば、従業員)によって利用されるデバイス、またそうでなければアクセス可能なデバイスである。本明細書において使用する場合、「企業」(enterprise)という用語は、業務、非営利団体、および政府機関を含む、多種多様の組織の内任意のものを広く指す。コンピューティング・デバイス104のユーザーを、本明細書では、「企業ユーザー」または単に「ユーザー」と呼んでもよい。コンピューティング・デバイス104は、例えばそして限定ではなく、デスクトップ・コンピューター、ラップトップ・コンピューター、タブレット・コンピューター、ネットブック、スマート・フォン等を含むことができる。コンピューティング・デバイス104の更に他の例については、図8および図9を参照して以下で説明する。
[0025] データー・ストア(1つまたは複数)108は、コンピューティング・デバイス104および/または1つ以上の他のコンピューティング・デバイスについてのコンフィギュレーション情報112を格納するように構成することができる。実施形態では、コンフィギュレーション情報112をサーバー102のメモリーにローカルに格納してもよい。コンフィギュレーション情報112は、コンピューティング・デバイス104および/またはコンピューティング・デバイス104のユーザーに対する1つ以上のコンプライアンス設定を指定することができ、特定のコンフィギュレーション・シナリオにしたがってコンピューティング・デバイス112上にインストールするためのデーター、1つ以上のファイル等を含むことができる。例えば、コンフィギュレーション情報112の第1コンプライアンス設定は、コンピューティング・デバイス104の第1ユーザーに関連付けられてもよく、コンフィギュレーション情報112の第2コンプライアンス設定は、コンピューティング・デバイス104の第2ユーザーに関連付けられてもよい。コンプライアンス設定の例には、コンピューティング・デバイス104によって実装される暗号設定、コンピューティング・デバイス104によって実装されるセキュリティ設定、コンピューティング・デバイス104上にインストールするために必要とされるアプリケーションまたはオペレーティング・システムの少なくとも1つの最小バージョン等が含まれるが、これらに限定されるのではない。暗号設定(1つまたは複数)は、コンピューティング・デバイス104に含まれる記憶デバイスを暗号化すべきか否か(例えば、BitLocker(商標)のような、しかしこれには限定されない暗号化プログラムによって)指定することができる。セキュリティ設定は、コンピューティング・デバイス104によって実装されるパスワード・ポリシー(例えば、パスワード長を最短で10文字、12文字等に設定する)、コード署名をコンピューティング・デバイス104によって実装すべきか否か、信頼プラットフォーム・モジュール(TPM)をコンピューティング・デバイス104によって実装すべきか否か等を指定することができる。尚、以上で説明したコンプライアンス設定は純粋に例示であること、そして他のコンフィギュレーション設定が使用されてもよいことを注記しておく。
[0026] サーバー102は、コンフィギュレーション・シナリオに関して、コンピュー
ティング・デバイス104を含むコンピューティング・デバイスのコンプライアンスを管理するように構成することができる。このようなコンピューティング・デバイスは、静止デバイス(例えば、デスクトップ・コンピューター)、および/またはモバイル・デバイス(例えば、スマート・フォン、ラップトップ、タブレット・コンピューター、ウェアラブル・コンピューティング・デバイス(例えば、Google(登録商標)Glass(商標)、仮想現実ヘッドセットのようなスマート・グラスを含む頭部装着デバイス、スマート・ウォッチ等)等)を含むことができる。モバイル・デバイスを管理するとき、サーバー102をモバイル・デバイス・マネージャ(MDM)と呼ぶこともできる。コンフィギュレーション・シナリオは、1組の離散ポリシー程度に単純であっても、仮想プライベート・ネットワーク(VPN)接続のための構成程度に複雑であてもよい。ポリシー(例えば、データー・ポリシーおよび/またはセキュリティ・ポリシー)は、企業によって指定することができる。ポリシーは、1つ以上のコンプライアンス設定(1つまたは複数)にしたがって指定されてもよい。コンプライアンス設定(1つまたは複数)は、企業のアドミニストレーター(例えば、IT(情報技術)アドミニストレーター)、あるいは企業ユーザーの代わりにコンピューティング・デバイス104をデプロイ、維持、および/または構成する役割を担うことができる、企業内の他の人によって指定されてもよい。
[0027] 図1に示すように、サーバー102はコンプライアンス・エンジン122を備えている。コンプライアンス・エンジン122は、コンピューティング・デバイス104に供給するコンフィギュレーション情報112を決定し、決定したコンフィギュレーション情報112をコンピューティング・デバイス104に供給することができる。例えば、サーバー102は、コンプライアンス・マニフェストの形態で、または特定の1組のデバイスへのデプロイのためのコンフィギュレーション設定を示す他の文書の形態で、コンフィギュレーション情報112を受信および/またはコンフィギュレーション情報112にアクセスすることができる。サーバー102は、ネットワーク110を通じてデーター・ストア108からコンフィギュレーション情報112を入手し、コンフィギュレーション情報112を、コンピューティング・デバイス104のような、指示されたデバイスにネットワーク110を通じて供給することができる。ネットワーク110を通じたコンフィギュレーション情報112の送信は、図1において、破線112によって示されている。コンフィギュレーション情報112は、コンピューティング・デバイス104にコンフィギュレーション・シナリオを順守させるために、コンピューティング・デバイス104(および必要に応じて他のデバイス)によって実装するためのコンプライアンス設定を指定することができる。
[0028] コンピューティング・デバイス104は、コンフィギュレーション情報112によって指定されたコンプライアンス設定(1つまたは複数)を実装するように構成することができる。図1に示すように、コンピューティング・デバイス104はコンプライアンス・エージェント120を備えている。コンピューティング・デバイス104は、コンプライアンス・エージェント120を実行するように構成することができ、コンプライアンス・エージェント120は、コンピューティング・デバイス104上でコンフィギュレーション・シナリオに対するコンプライアンス設定を実装するコンフィギュレーション・プロセスを記述する状態機械を識別し実行することによって、受信したコンフィギュレーション情報112によって指定されたコンプライアンス設定を実装するように構成される。例えば、コンプライアンス・エージェント120は、状態機械118を、コンフィギュレーション情報112によって示された状態機械として識別し、コンフィギュレーション・シナリオを順守するためのコンプライアンス設定をコンピューティング・デバイス104に組み込むために、状態機械118を実行することができる。
[0029] 実施形態によれば、種々の方法で状態機械118を生成することができる。例えば、構築プロセスの間に、1つ以上の文書を生成し(例えば、開発者によって)、コン
ピューティング・デバイス104上でコンパイルし格納してもよい。例えば、サーバーがユーザー・インターフェース(UI)を消費およびレンダリングする(例えば、サーバー102においてコンプライアンス・エンジン122によって生成されるアドミン・コンソールにおいて)ことを可能にするコンフィギュレーション・シナリオを記述する1つ以上のファイル、ならびに状態機械が、構築の間に生成される。このUIは、ITアドミンが特定のコンフィギュレーション・シナリオについてのコンフィギュレーション情報を入力することを可能にし、次いでコンフィギュレーション情報をコンピューティング・デバイス104に送ることができる。コンフィギュレーション情報は、特定のコンフィギュレーション・シナリオにしたがってコンピューティング・デバイスのセキュリティおよび機能的挙動を変更するために、本明細書において説明するように、コンフィギュレーション・サービス・プロバイダ(CSP)を利用してコンピューティング・デバイス104によって処理される。CSPとは、デバイス上においてコンフィギュレーション設定を読み出す、設定する、変更する、または削除するためのインターフェースである。更に、状態機械(例えば、状態機械118)を処理するとき、状態機械によって指令される順序にしたがってCSPが呼び出され、サーバーによって供給されるコンフィギュレーション情報を使用して、コンピューティング・デバイスにおいて所望の状態を実現する。
[0030] 状態機械118にしたがってコンフィギュレーション設定を実装した後、コンプライアンス・エージェント120は承認(例えば、「アラート」)をコンプライアンス・エンジン122に出す(provide)ことができる。承認は、コンピューティング・デバイ
スがコンフィギュレーション設定を実装したこと、または障害が発生したことを示す。コンフィギュレーション設定の実装成功を示す承認を受けると、コンプライアンス・エンジン112は、コンピューティング・デバイス104を、コンフィギュレーション・シナリオを順守するものとして指定することができる。コンプライアンス・エンジン112は、種々の方法で承認を維持することができる。
[0031] 例えば、サーバー102は、ユーザー-デバイス・ペアリング毎に、特定のユーザー-デバイス・ペアリングが順守しているか否かについての指定を含むコンプライアンス・レコード106を維持することができる。例えば、コンプライアンス・レコード106は、複数のエントリーを含み、各エントリーが特定のユーザー-デバイス対を指定する、データー構造(例えば、テーブル)と、そのユーザー-デバイス対が順守しているか否かに関する指示とを含むことができる。サーバー102は、更に、ユーザー-デバイス・ペアリング毎に実装されたコンフィギュレーション設定のローカル・コンフィギュレーション・リファレンス114を維持するように構成することができる。コンフィギュレーション・リファレンス114は、複数のエントリーを含み、各エントリーが特定のユーザー-デバイス対を指定する、データー構造(例えば、テーブル)と、その対によって実装されたコンフィギュレーション設定とを含むことができる。尚、以上で説明したコンフィギュレーション・リファレンス114および/またはコンプライアンス・レコード106の構造および/または編成は純粋に例示であること、そして他の構造および/または編成が使用されてもよいことを注記しておく。コンフィギュレーション・リファレンス114およびコンプライアンス・レコード106は、サーバー102によって任意の場所にそして任意の方法で、維持することができ、データー・ストア108または他の場所に格納することを含む。
[0032] コンプライアンス・エンジン122は、コンピューティング・デバイス(1つまたは複数)104がコンプライアンス規則を順守し続けているか否か、リファレンス114を使用して判定するように構成することができる。このようにすることによって、コンプライアンス・エンジン122は、コンピューティング・デバイス(1つまたは複数)104によって実装されたコンフィギュレーション設定を判定するために、単にリファレンス114にアクセスすれば済み、コンピューティング・デバイス(1つまたは複数)1
04にそれらのコンフィギュレーション設定について問い合わせる必要がない。コンプライアンス・エンジン122は、何らかの適したトリガリング・イベントを検出したときに、コンピューティング・デバイス(1つまたは複数)104が順守し続けているか否か、判定することができる。トリガリング・イベントには、所定の時間期間の経過、アドミニストレーター、監査人、および/またはコンピューティング・デバイス104および/または他のコンピューティング・デバイスが1つ以上のコンプライアンス設定および/または要件を順守しているか否かを管理する、確認することを望む、またそうでなければ知る/確認することに関心がある他の人および/またはエンティティからの要求が含まれる。デバイスがコンプライアンス設定/要件を順守しているか否か判定する要求は、数百台、数千台、または数百万台のデバイスを含む任意の数のデバイスに関係付けることもできる。したがって、コンフィギュレーション・リファレンス114および/またはコンプライアンス・レコード106からこのようなコンプライアンス情報にアクセスすることによって、対象の各デバイスに別個にプールしなければならないことに関して、サーバー102によって大量の処理パワーを消費しなくても済む。
[0033] 実施形態では、図1のシステム100は、種々の方法で実装することができる。実例をあげると、図2Aは、実施形態例によるシステム200の詳細なブロック図を示す。システム200はシステム100の一例である。図2Aに示すように、システム200は、サーバー102とコンピューティング・デバイス204とを含む。コンピューティング・デバイス204は、図1を参照して先に説明したような、コンピューティング・デバイス104の一例である。更に図2Aに示すように、コンピューティング・デバイス204は、コンプライアンス・エージェント220、状態機械(SM)データー・ストア224、およびコンフィギュレーション情報(CI)データー・ストア222を含む。状態機械データー・ストア224およびコンフィギュレーション情報データー・ストア222は、各々、本明細書において記載する任意の種類の物理メモリーおよび/または記憶デバイスを含む、および/または本開示から利益が得られる当業者には理解されるような、1つ以上の物理メモリーおよび/または記憶デバイス(1つまたは複数)を含むことができる。コンプライアンス・エージェント220は、図1を参照して先に説明したような、コンプライアンス・エージェント120の一例である。
[0034] サーバー102は、コンピューティング・デバイス204に供給するコンフィギュレーション情報112を決定し、決定したコンフィギュレーション情報112をコンピューティング・デバイス204に供給するように構成される。例えば、ユーザーに新たにプロビジョニングされたコンピューティング・デバイスにユーザーが最初にログインするとき、サーバー102は、このコンピューティング・デバイスおよび/またはユーザーに関連付けられたデバイス・コンフィギュレーション情報112を引き出し、コンフィギュレーション情報112をコンピューティング・デバイスに供給することができる。加えて、または代わりに、サーバー102は、そのコンピューティング・デバイスおよび/またはユーザーに関連付けられたコンフィギュレーション情報112を引き出し、ソフトウェアまたはファームウェア(デバイス・ドライバーを含む)が新たにコンピューティング・デバイスにインストールされるとき、新たなハードウェアがコンピューティング・デバイスに追加されるとき、ソフトウェアおよび/またはファームウェアが更新されるもしくはコンピューティング・デバイスから削除されるとき、ハードウェアがコンピューティング・デバイスから取り外されるとき、および/またはコンピューティング・デバイスのコンフィギュレーションを変更する他のイベントの間に、コンフィギュレーション情報112をコンピューティング・デバイスに供給することができる。
[0035] 図1を参照して説明したコンピューティング・デバイス104と同様、コンピューティング・デバイス204は、コンプライアンス・エージェント220を実行するように構成することができ、コンプライアンス・エージェント220は、コンフィギュレー
ション情報112によって指定されるコンフィギュレーション設定を実装するように構成される。更に具体的には、コンプライアンス・エージェント220は、所望のコンフィギュレーション・シナリオに基づいて、該当する状態機械を消費する。サーバー102は、「コンフィギュレーション・シナリオ識別子」をコンフィギュレーション情報112内に設け、コンピューティング・デバイス204に該当する状態機械を指定することができる。コンプライアンス・エージェント220は、この識別子を利用して、オーケストレーター(orchestrator)が従うための正しい状態機械を発見することができる。以下で更に詳しく説明するように、サーバー102によって供給されたコンフィギュレーション情報112は、次いで、コンプライアンス・エージェント220によって、状態機械に基づいて該当するCSPに供給される。
[0036] 図2Aに示すように、コンプライアンス・エージェント220は、コンフィギュレーション・マネージャ206とオーケストレーター・エンジン208とを含む。更に、コンフィギュレーション・マネージャ206は、コンプライアンス・コンフィギュレーション情報ハンドラー228と、コンフィギュレーション情報エラー・チェッカー210とを含む。
[0037] コンプライアンス・コンフィギュレーション情報ハンドラー228は、コンフィギュレーション情報112(例えば、SyncMLまたはCDM(Content Delivery Network)を通じたコンピューティング・デバイス204への配信)に、サーバー102のコンプライアンス・エンジン122からアクセスし、コンフィギュレーション情報112をコンフィギュレーション情報データー・ストア222に格納するように構成することができる(図2Aにおいて、サーバー112、コンプライアンス・コンフィギュレーション情報ハンドラー228、およびコンフィギュレーション情報データー・ストア222間の破線112によって図示する通り)。他の例として、コンフィギュレーション情報112はJavaScript Object Notation(JSON)によって供給することもできる。コンフィギュレーション情報112は、サーバーによってコンピューティング・デバイスに直接配信することができ、またはサーバーが、コンピューティング・デバイスに、どこでコンフィギュレーション情報112を入手するか、CDN(以下で更に詳しく説明する)を通じて、命令することもできる。
[0038] コンフィギュレーション情報112は、任意の適した形態を有することができる。実施形態によれば、コンフィギュレーション情報112は、拡張可能マークアップ言語(XML)ファイルによって表されてもよく、コンプライアンス設定に関連付けられたペイロードと、このペイロードのダウンロードおよび処理のための対応するユニフォーム・リソース識別子(URI)とを含む。例えば、CDN格納ペイロード(CDN stored payload)は、ペイロードの非同期ダウンロードおよび処理のためのURIを示す別個のタグを含むことができる。更に例示すると、1組の別々のポリシー(例えば、ポリシーCSPによって提示される)についての単純なコンフィギュレーション・シナリオであれば、XMLファイルに、1つのペイロードだけが含まれればよい場合もある。更に複雑なコンフィギュレーション・シナリオ(例えば、VPN接続に対するコンフィギュレーション)では、XMLファイル内に複数のペイロードを指定する必要がある場合もある。例えば、VPNコンフィギュレーション・シナリオでは、プロファイル・ペイロードおよび証明書ペイロード(certificate payload)を供給する場合もある。これらのシナリオ・コンフィギュ
レーション・ファイルは、コンピューティング・デバイスとの同期セッションを試す前に、サーバーによって作成することができる。これによって、サーバーと相互作用するコンピューティング・デバイス毎に要求に応じて同じファイルを作成することを回避し、もっと有用な作業を実行するためにサーバーを利用可能のまま残しておくことにより、スケーラビリティを高める。
[0039] 以下に、ポリシーCSPによって設定されるポリシーを示すシナリオ・コンフィギュレーションXMLファイルの例を示す。このファイルは複数の宣言型コンフィギュレーション・ペイロードを含む。尚、このシナリオ・コンフィギュレーションXMLファイル例の「id」、「checksum」および「OSDefinedScenario」属性が一意の識別子を構成することを注記しておく。更に、注記するのは、この例における「OSDefinedScenario」属性が、これは公開されたコンフィギュレーション・シナリオであることを示すということであり、これが意味するのは、このコンフィギュレーション・シナリオが、このコンフィギュレーション・シナリオをどのように構成するか指令する宣言型コンフィギュレーション・シナリオ状態機械を、拠り所にするということである。この状態機械は、オペレーティング・システム(OS)ビルドが宣言型コンフィギュレーション・シナリオ状態機械Windows(登録商標)マニフェストをコンパイルした後に、レジストリーに格納することができる。更に、この挙動が状態機械において指定することもできるので、各ペイロードが不可分である(atomic)べきか指定しなくてもよい場合、または文書全体が不可分であるべきか指定しなくてもよい場合もある。加えて、以下のXMLファイルは、いくつかのコンピューティング・デバイスの広いポリシーを設定し、暗号化機能の例(即ち、Microsoft(登録商標)BitLocker(商標))を構成する。
Figure 2024020448000002
[0040] 以下に、MDMによって定められたコンフィギュレーション・シナリオを記述するマルチペイロードXMLファイルの一例を示す。この例では、宣言型コンフィギュレーション・シナリオ状態機械がないので、以下のとおりとなる。
Figure 2024020448000003
[0041] コンプライアンス・コンフィギュレーション情報ハンドラー228は、更に、(例えば、Hypertext Transfer Protocol(HTTP)GETメソッド要求を使用して)コンフィギュレーション情報112をサーバー102に要求し、コンフィギュレーション情報112をコンフィギュレーション情報エラー・チェッカー210に供給するように構成することができる。
[0042] コンフィギュレーション情報エラー・チェッカー210は、コンフィギュレーション情報112を解析し、コンフィギュレーション情報112におけるエラー(例えば、XMLコンフィギュレーション・シナリオ・ファイルにおけるXMLコード、属性、URIに伴うエラー等)を判定し、エラーの訂正をサーバー102に要求するように構成することができる。実例をあげると、コンフィギュレーション情報112がXMLファイル
として表される、先に論じた例では、コンフィギュレーション情報エラー・チェッカー210は、XMLコードを解析および確認し、URIをレジストリー位置に格納し、何らかのエラーが検出された場合、同期してエラーをサーバー102に報告し、サーバー102によってエラーを修復する(amend)ように要求することができる(図2Aにおいて、破線
216によって図示する通り)。従来では、MDMサーバーが、コンフィギュレーション情報には不一致もエラーもないことを確認する(ensure)。しかしながら、クライアント・デバイスが不一致およびエラーを検出することによって、MDMサーバーに直ちにフィードバックを供給することが可能になり、コンフィギュレーション情報におけるいずれのエラーも早い訂正(correction)を可能にする。
[0043] コンプライアンス・コンフィギュレーション情報ハンドラー228は、更に、格納したコンフィギュレーション情報112をサーバー102に送信し、コンフィギュレーション情報をサーバー102に送ったことに応答して、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報をサーバー102から受信するように構成することができる。例えば、コンプライアンス・コンフィギュレーション情報ハンドラー228は、コンフィギュレーション情報データー・ストア222に格納されているコンフィギュレーション情報データー112をサーバー102に送ることによって、そのステータス(例えば、期限切れまたは古い)を確認するように構成することができ、サーバー102によって判定された、格納されているコンフィギュレーション情報112のステータスに基づいて、サーバー102は、コンプライアンス・コンフィギュレーション情報ハンドラー228に、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報を供給することができる。その後、コンプライアンス・コンフィギュレーション情報ハンドラー228は、受信した更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報を、コンフィギュレーション情報データー・ストア222に格納することができる(図2Aにおいて破線214によって図示する通り)。以下で説明するように、コンプライアンス・エージェント220のオーケストレーター・エンジン208は、コンフィギュレーション情報112において受信されたコンフィギュレーション設定を実装するように構成され、それに基づいてコンフィギュレーション結果226を生成する。
[0044] 具体的には、図2Bは、実施形態例によるシステム230の詳細なブロック図を示す。システム230は、システム100の更に他の例である。図2Bに示すように、システム230はサーバー102とコンピューティング・デバイス244とを含む。コンピューティング・デバイス244は、図1のコンピューティング・デバイス104の更に他の例である。更に、コンピューティング・デバイス244は、コンプライアンス・エージェント240、SMデーター・ストア224、およびコンフィギュレーション情報データー・ストア222を含む。コンプライアンス・エージェント240は、図1を参照して先に説明したような、コンプライアンス・エージェント120の更に他の例である。
[0045] 図1を参照して説明したコンピューティング・デバイス104と同様、コンピューティング・デバイス244はコンプライアンス・エージェント240を実行する。コンプライアンス・エージェント240は、コンフィギュレーション情報112によって指定されたコンフィギュレーション設定を実装するように構成される。図2Bに示すように、コンプライアンス・エージェント240は、コンフィギュレーション・マネージャ206とオーケストレーター・エンジン208とを含む。コンフィギュレーション・マネージャ206は、コンプライアンス・コンフィギュレーション情報ハンドラー228と、設定実装トリガラー(triggerer)232とを含む。オーケストレーター・エンジン208は、
状態機械セレクター234と状態機械実行エンジン236とを含む。コンプライアンス・エージェント240のこれらの機能的特徴(features)については、以下で説明する。
[0046] 設定実装トリガラー232は、オーケストレーター・エンジン208を作動させて、コンフィギュレーション情報112によって記述されたコンプライアンス設定をコンピューティング・デバイス244に実装するように構成される。例えば、図2Bに示すように、設定実装トリガラー232は、トリガー218を状態機械セレクター234に供給する。更に具体的には、図2Aを参照して先に説明したように、トリガー218は、コンフィギュレーション情報エラー・チェッカー210がコンフィギュレーション情報112を解析および確認した後に、タスクのスケジューリングを行わせることができる(そして、スケジューリングされたタスクは、「DeclaredConfiguration」(CSP)によって起動することができる)。実施形態によれば、タスクはアクティビティ・キューに格納され、アクティビティ・キューに格納されている未処理のタスクが全て処理された後に、処理することができる。
[0047] 状態機械セレクター234は、設定実装トリガラー232からトリガーを受け取り、コンプライアンス設定をコンピューティング・デバイス244に実装するように構成される。実施形態では、状態機械セレクター234は、コンフィギュレーション情報112によって示され、コンプライアンス設定を実装するコンフィギュレーション・プロセスを記述する状態機械を識別する。トリガー218を受け取った後、状態セレクター機械(state selector machine)234は、格納されているコンフィギュレーション情報112をコンフィギュレーション情報データー・ストア222から入手し、格納されているコンフィギュレーション情報112の属性を消費した後、状態機械118がコンフィギュレーション情報112と関連付けられていると判定することができる。実例をあげると、コンフィギュレーション情報112は、特定の状態機械に対して識別子を指定することができる。
[0048] 状態機械セレクター234は、更に、状態機械118を状態機械実行エンジン236に供給するように構成することができる。状態機械実行エンジン236は、コンピューティング・デバイス244に、コンフィギュレーション情報112に記述されているコンプライアンス設定を組み込むために、状態機械118を実行するように構成される。例えば、状態機械セレクター234は、依存性と共にコンフィギュレーション情報112に含まれるペイロードを、状態機械118によって指令される順序で処理することができる(図2Aを参照して説明した通り)。あるいは、コンフィギュレーション情報112と関連付けられた状態機械がない場合、コンフィギュレーション情報112によって指定されたペイロードは、コンフィギュレーション情報112によって指令された順序で処理される。更に、状態機械セレクター234は、状態機械118のマニフェストを入手するために、状態機械データー・ストア224にアクセスすることができる。マニフェストは、状態機械118とその依存性とを含むことができる。
[0049] 宣言型コンフィギュレーション・シナリオ状態機械マニフェストのXMLファイルの例を、以下に再現する。
Figure 2024020448000004

[0050] 状態機械実行エンジン236は、更に、コンフィギュレーション結果226(例えば、URIおよび値、イベント、最後のエラー・コード、ステータス等を有するXMLファイル)をコンフィギュレーション情報データー・ストア222に格納するように構成することができる。例えば、コンフィギュレーション結果226は、図1に関して先に説明した1つ以上のコンプライアンス・レコード106および/またはコンフィギュレーション・リファレンス114を含むことができる。コンプライアンス・コンフィギュレーション情報ハンドラー228は、コンフィギュレーション結果226をコンフィギュレーション情報データー・ストア222から入手し、サーバー102によって分析するために、コンフィギュレーション結果226をコンプライアンス・エンジン122に供給する(図2Bにおいて、破線226によって図示する通り)ように構成することができる。コン
フィギュレーション結果226がエラーを含む場合、サーバー102は、コンプライアンス・コンフィギュレーション情報ハンドラー228に、確認情報112の早期バージョンを供給し、モバイル・デバイスに対するあらゆる誤った変更を取り消すようにすることができ、オーケストレーター・エンジン208に、コンピューティング・デバイスの状態を状態機械の実行前の状態にロールバックさせるように指令することによって、誤った変更を取り消すことを含む。
[0051] 例えば、本明細書において説明する実施形態によれば、状態機械は、コンフィギュレーション・シナリオについて指示するコンフィギュレーションを含む(contain)こ
ともできる。更に例示すると、状態はエンティティ「FromState」、「Activity」、および「ToState」によって記述することもできる。Activityは、コンフィギュレーション・シナリオ・オーナー(1つまたは複数)によって所有および作成された実行可能コードの形態を有することができる。更に、Activityは、次のステップに進むときに使用するために、実行時に異なるToState状態に戻ることができる。ActivityがToStateを変更しない場合、デフォルトのToStateが使用され、状態機械のデーター表現内に指定される。Activityは、このActivityに誘導される(marshalled)XMLとして表現された入力データーおよび出力データーを予め定めておくこともできる。これによって、個々のActivityを別々に開発および検査できることを確保する。ActivityにToStateを変更させることができると、状態機械に対する実行時の調節に対応できる。状態機械は、コンフィギュレーション・シナリオを構成、確認、リフレッシュ、および削除するために使用することもできる。
[0052] システム100、200、および230は、その機能を実行するために、種々の方法で動作することができる。実例をあげると、図3は、実施形態例にしたがって、コンピューティング・デバイスにコンフィギュレーション・シナリオを順守させるために、コンピューティング・デバイスによってコンプライアンス設定を実装する方法のフローチャート300を示す。図1、図2A、および図2Bを引き続き参照しながら、図3について説明する。しかしながら、フローチャート300、ならびに図1、図2A、および図2Bのシステム100、200、および230に関する以下の論述に基づけば、他の構造および動作の実施形態も当業者には明白であろう。
[0053] 図3に示すように、フローチャート300はステップ302において開始する。ステップ302において、サーバーからコンフィギュレーション情報を受信する。コンフィギュレーション情報は、モバイル・デバイスにコンフィギュレーション・シナリオを順守させるために、モバイル・デバイスによって実装するコンプライアンス設定を記述する。例えば、図1、図2A、および図2Bを引き続き参照すると、コンプライアンス・コンフィギュレーション情報ハンドラー228が情報112をサーバー102のコンプライアンス・エンジン122から受信する。
[0054] ステップ304において、コンフィギュレーション情報を格納する。例えば、図1、図2A、および図2Bを引き続き参照すると、コンプライアンス・コンフィギュレーション情報ハンドラー228はコンフィギュレーション情報112をコンフィギュレーション情報データー・ストア222に格納する。
[0055] ステップ306において、モバイル・デバイスにコンプライアンス設定を実装するトリガーを受信する。例えば、図1、図2A、および図2Bを引き続き参照すると、設定実装トリガラー(triggerer)232が、トリガー218をオーケストレーター・エン
ジン208の状態機械セレクター234に供給し、コンフィギュレーション情報112によって記述されたコンプライアンス設定のコンピューティング・デバイス244内におけ
る実装を開始する。
[0056] ステップ308において、コンプライアンス設定を実装するコンフィギュレーション・プロセスを記述するコンフィギュレーション情報によって示された状態機械を識別する。例えば、図1、図2A、および図2Bを引き続き参照すると、トリガー218を受信した後、状態セレクター機械(state selector machine)234は、格納されているコンフィギュレーション情報112をコンフィギュレーション情報データー・ストア222から入手し、状態機械118がコンフィギュレーション情報112と関連付けられていると判定する。
[0057] ステップ310において、図1、図2A、および図2Bを引き続き参照すると、状態機械を実行して、モバイル・デバイスにコンプライアンス設定を組み込む。例えば、図1、図2A、および図2Bを引き続き参照すると、状態機械セレクター234は状態機械118(またはそれに対するポインター)を状態機械実行エンジン236に供給し、状態機械実行エンジン236は状態機械118を実行して、コンフィギュレーション情報112に記述されたコンプライアンス設定をコンピューティング・デバイス244に組み込む。
[0058] 図4は、実施形態例にしたがって、モバイル・デバイスがコンフィギュレーション情報にしたがってしかるべく構成されたか否か判定する方法のフローチャート400を示す。図1、図2A、および図2Bを引き続き参照しながら、図4について説明する。しかしながら、フローチャート400、ならびに図1、図2A、および図2Bのシステム100、200、および230に関する以下の論述に基づけば、他の構造および動作の実施形態も当業者には明白であろう。
[0059] 図4に示すように、フローチャート400はステップ402を含む。ステップ402において、状態機械を実行して、モバイル・デバイスがコンフィギュレーション情報にしたがってしかるべく構成されたか否か判定する。例えば、図1、図2A、および図2Bを引き続き参照すると、状態機械実行エンジン236は、コンピューティング・デバイス244のコンフィギュレーションを変更せずに状態機械118を実行し、コンピューティング・デバイス244が正しいコンフィギュレーション状態にあることを評価する。具体的には、本明細書において説明する実施形態によれば、状態機械は2つのモード、「構成」(Configure)モードおよび「分析」(Analyze)モードのいずれかで実行することができる。構成モードでは、コンフィギュレーション情報に基づいてコンピューティング・デバイスを構成する(先に説明した通り)。分析モードでは、コンピューティング・デバイスへの変更を行わずに、コンピューティング・デバイスの評価を実行し、このデバイスが実際に正しいコンフィギュレーション状態にあることを確認する。例えば、状態機械は、コンピューティング・デバイスの1つ以上の現在の設定および/または他の情報(特定のハードウェア/ソフトウェア/ファームウェア・コンフィギュレーションに関する)を引き出すように構成される(例えば、オペレーティング・システムのバージョン番号、他のアプリケーションのバージョン番号、DLL(ダイナミック-リンク・ライブラリー)ファイルのような、ファイルにおけるエントリー等を判定し、1つ以上のファイルの存在または不在を判定する等)。状態機械は、引き出した情報を、状態機械によって維持されているまたはアクセス可能な、コンピューティング・デバイスについての正しいコンフィギュレーション情報と比較することができる。全ての情報が一致した場合、状態機械は、コンピューティング・デバイスが特定のコンフィギュレーションに準拠していることを示すとしてよい。全ての情報が一致しない場合、状態機械は、コンピューティング・デバイスが準拠していないことを示すとしてよい。
[0060] 先に説明したように、状態機械によって実行された個々のコンフィギュレーシ
ョンの結果をコンプライアンス・エンジンに送信することができる。例えば、図5は、実施形態にしたがってコンフィギュレーション結果を格納および送信する方法のフローチャート500を示す。図1、図2A、および図2Bを引き続き参照しながら、図5について説明する。しかしながら、フローチャート500、ならびに図1、図2A、および図2Bのシステム100、200、および230に関する以下の論述に基づけば、他の構造および動作の実施形態も当業者には明白であろう。
[0061] 図5に示すように、フローチャート500はステップ502において開始する。ステップ502において、状態機械を実行することによって生成されたコンフィギュレーション結果を、コンフィギュレーション情報データー・ストアに格納する。例えば、図1、図2A、および図2Bを引き続き参照すると、状態機械実行エンジン236は、コンフィギュレーション結果226をコンフィギュレーション情報データー・ストア222に格納する。実施形態では、コンフィギュレーション結果226は1つ以上の指示を含むことができる。実例をあげると、コンフィギュレーション結果226は、オーケストレーター・エンジン208がコンフィギュレーション設定(1つまたは複数)のインストールに成功したこと、インストールが進行中であること、または障害が発生しコンフィギュレーション設定(1つまたは複数)のインストールに失敗したことの指示を出すのでもよい。障害が発生した場合、コンフィギュレーション結果226は、1つ以上のエラー(エラー・コードおよび/または記述によって)、イベント追跡(例えば、デバッギングに使用することができる、状態機械実行についての情報のロギング)、および/または状態機械によって生成された他の診断データーを表に纏めることによって、というようにして、障害の指示を含むことができる。
[0062] ステップ504および506において、コンフィギュレーション情報データー・ストアからコンフィギュレーション結果を入手し(ステップ504)、サーバーに送信する(ステップ506)。例えば、図1、図2A、および図2Bを引き続き参照すると、コンプライアンス・コンフィギュレーション情報ハンドラー228が、コンフィギュレーション結果226をコンフィギュレーション情報データー・ストア222から入手し、サーバー102によって分析するために、コンフィギュレーション結果226をコンプライアンス・エンジン122に供給する。コンフィギュレーション結果226がエラーを含む場合、サーバー102は、モバイル・デバイスに対するあらゆる誤った変更を取り消すように、コンプライアンス・コンフィギュレーション情報ハンドラー228に確認情報112の早期のバージョンを供給することができる。これには、コンピューティング・デバイスの状態を状態機械の実行前の状態にロールバックさせるように、オーケストレーター・エンジン208に指令することによって、誤った変更を取り消すことを含む。実例をあげると、状態機械を実行する前に、または状態機械の実行中に、コンピューティング・デバイスの現在の状態を保存することができ(例えば、設定のバージョン、状態機械の実行前に存在していたファイル等の内影響を受けたものを保存する)、コンピューティング・デバイスを、保存した状態情報に復帰させることによって、保存された状態をコンピューティング・デバイスに再構成することができる。あるいは、障害状態の詳細な分析を実行できるように、判明している直前の、即ち、最後の正しい状態にロールバックしないように、コンピューティング・デバイスに命令することもできる。実例をあげると、「開発者モード」(または他の名称によって)と呼ばれる他のモードを定めてもよく、このモードでは、コンピューティング・デバイスは、エラーの場合、判明している最後の正しい状態にロールバックしない。
[0063] 更に、状態機械の実行中にエラーに遭遇した場合、コンプライアンス・エージェントが、以前の状態にロールバックするのではなく、このエラーを訂正しようと試みてもよいことを注記しておく。実例をあげると、図6は、実施形態例にしたがって、コンフィギュレーション情報に伴うエラーを訂正する要求を行う方法のフローチャート600を
示す。図1、図2A、および図2Bを引き続き参照しながら、図6について説明する。しかしながら、フローチャート600、ならびに図1、図2A、および図2Bのシステム100、200、および230に関する以下の論述に基づけば、他の構造および動作の実施形態も当業者には明白であろう。
[0064] フローチャート600はステップ602から開始する。ステップ602において、コンフィギュレーション情報を解析する。例えば、オーケストレーター・エンジン208が、受信したエラー・コード/エラー記述に対応する1つ以上のコンフィギュレーション設定についてのコンフィギュレーション情報112を解析するように構成することができる。
[0065] ステップ604において、コンフィギュレーション情報に伴うエラーを判定する。実施形態では、解析中に、オーケストレーター・エンジン208が、受信したエラー・コード/エラー記述に対応する1つ以上のコンフィギュレーション設定を判定することができる。
[0066] ステップ606において、サーバーにエラーの訂正を要求する。実施形態では、コンプライアンス・エージェント240が、エラーの訂正を要求するために、エラー情報(例えば、エラー・コード、エラー記述、イベント追跡等)をコンプライアンス122に送信することができる。
[0067] 実例をあげると、図1、図2A、および図2Bを引き続き参照し、コンフィギュレーション情報112がXMLファイルによって表される、先に論じた例では、コンフィギュレーション情報エラー・チェッカー210がこのXMLファイルを解析および確認し、URIをレジストリー位置に格納し、何らかのエラーが検出された場合、同期してエラーをサーバー102に報告し、サーバー102に直ちにエラーを修復するように要求することができる。
[0068] 尚、エラー訂正要求に応答して、および/または任意の他の時点において、コンプライアンス・エンジン122は、更新コンフィギュレーション情報をコンプライアンス・エージェントに供給できることを注記しておく。実例をあげると、図7は、実施形態例にしたがって、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報を受信する方法のフローチャート700を示す。図1、図2A、および図2Bを引き続き参照しながら、図7について説明する。しかしながら、フローチャート700、ならびに図1、図2A、および図2Bのシステム100、200、および230に関する以下の論述に基づけば、他の構造および動作の実施形態も当業者には明白であろう。
[0069] 図7に示すように、フローチャート700はステップ702から開始する。ステップ702において、コンフィギュレーション情報をコンフィギュレーション情報データー・ストアに格納する。例えば、図2Aおよび図2Bを引き続き参照して、コンフィギュレーション情報112をコンフィギュレーション情報データー・ストア222に格納する。
[0070] ステップ704において、格納されているコンフィギュレーション情報をサーバーに送信する。実施形態では、コンプライアンス・エージェント240がコンフィグレーション112をサーバー102におけるコンプライアンス・エンジン122に、エラーのため(先に説明した通り)、アップデートのチェックのため、および任意の他の理由を含む、何らかの理由で送信することができる。実例をあげると、コンプライアンス・コンフィギュレーション情報ハンドラー228が、コンフィギュレーション情報データー・ストア222に格納されているコンフィギュレーション情報112のステータスを確認する
(例えば、期限切れまたは古い)のでもよい。ハンドラー228が、コンフィギュレーション情報112にエラーが含まれる、期限切れである、古い等を判定した場合、ハンドラー228はコンフィギュレーション情報112(またはその一部)をサーバー102に送信することができる。
[0071] ステップ706において、コンフィギュレーション情報をサーバーに送ったことに応答して、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報をサーバーから受信する。格納されているコンフィギュレーション情報112についてサーバー102によって判定されたステータスに基づいて、サーバー102は、コンプライアンス・コンフィギュレーション情報ハンドラー228に、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報を提供することができる。したがって、コンプライアンス・コンフィギュレーション情報ハンドラー228は、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報によって、コンフィギュレーション情報データー・ストア222を更新することができる。
[0072] したがって、実施形態は、コンフィギュレーション設定を多数のデバイスにプッシュする効率を高め、これらがコンフィギュレーション設定を受信し実装したことに基づいて、このようなデバイスの要求に対する順守を追跡し続ける。
[0073] 実施形態は、より多くの役割をクライアント・デバイスに委譲してこれら自体を所望の状態にすることによって、クライアント/サーバーのレイテンシー(データー転送命令の後における、データー転送が開始するまでの遅延)を低減する。各クライアント・デバイスは、サーバーからのコンフィギュレーション設定を実装する要求を受け入れ、直ちにサーバーに戻す(turn back) 。要求は、非同期でクライアント・デバイスによって処理される。クライアント・デバイスが要求を完了したとき、そのクライアント・デバイスによるコンフィギュレーション設定の実装の成功または失敗を示すアラートを、サーバーに送るセッションを開始する。また、実施形態は、サーバーがクライアント・デバイスの状態を連続的に監視し、断片的に所望のデバイス状態を維持する必要性をなくすことによって、クライアントとサーバー・デバイスとの間におけるネットワーク・アクティビティを減らす。実施形態では、サーバーは、各クライアントに、所望の状態を(コンフィギュレーション設定の形態で)供給し、クライアントが設定を維持することを予測する(そして、そうすることができない場合、サーバーによって促されることなく、サーバーに通知する)。また、実施形態は、サービス・プロバイダー(例えば、ソフトウェアおよび/またはハードウェア・プロバイダー)に、それら自体の製品のためにプロセスを管理させることを必要とせずに、クライアント・デバイスに設定を組み込むために、サーバーによって開始される均一な方法を提供する。
III.モバイル・デバイスおよび静止デバイスの実施形態例
[0074] 以上で説明したシステムおよび方法は、図1~図7を参照して説明したデバイス・コンプライアンス管理の実施形態を含み、ハードウェアで、あるいはソフトウェアおよび/またはファームウェアの一方もしくは双方と組み合わせたハードウェアで実装することができる。例えば、コンプライアンス・エンジン112、コンプライアンス・エージェント120、オーケストレーター・エンジン208、コンフィギュレーション情報エラー・チェッカー210、コンプライアンス・エージェント220、コンプライアンス・コンフィギュレーション情報ハンドラー228、設定実装トリガラー232、状態機械セレクター234、状態機械実行エンジン236、コンプライアンス・エージェント240、および/または本明細書において説明したコンポーネントの各々、更にはフローチャート300、400、500、600、および700は、各々、1つ以上のプロセッサーにおいて実行されコンピューター読み取り可能記憶媒体に格納されるように構成されたコンピューター・プログラム・コード/命令として実装することができる。あるいは、コンプラ
イアンス・エンジン112、コンプライアンス・エージェント120、オーケストレーター・エンジン208、コンフィギュレーション情報エラー・チェッカー210、コンプライアンス・エージェント220、コンプライアンス・コンフィギュレーション情報ハンドラー228、設定実装トリガラー232、状態機械セレクター234、状態機械実行エンジン236,コンプライアンス・エージェント240、および/または本明細書において説明したコンポーネントの各々、更にはフローチャート300、400、500、600、および700は、ハードウェア・ロジック/電気回路として実装されてもよい。実施形態では、コンプライアンス・エンジン112、コンプライアンス・エージェント120、オーケストレーター・エンジン208、コンフィギュレーション情報エラー・チェッカー210、コンプライアンス・エージェント220、コンプライアンス・コンフィギュレーション情報ハンドラー228、設定実装トリガラー232、状態機械セレクター234、状態機械実行エンジン236,コンプライアンス・エージェント240、および/または本明細書において説明したコンポーネントの各々、更にはフローチャート300、400、500、600、および700は、1つ以上のSoC(システム・オン・チップ)に実装することもできる。SoCは、プロセッサー(例えば、中央処理ユニット(CPU)、マイクロコントローラー、マイクロプロセッサー、ディジタル信号プロセッサー(DSP)等)、メモリー、1つ以上の通信インターフェース、および/または更に他の回路の内1つ以上を含む集積回路チップを含み、随意に、機能を実行するために、受信したプログラム・コードを実行することおよび/または埋め込みファームウェアを含むこともできる。
[0075] 更に、サーバー102、コンピューティング・デバイス(1つまたは複数)104、コンピューティング・デバイス204、およびコンピューティング・デバイス244は、各々、種々のデバイス型で実装することができる。実例をあげると、図8は、全体的にコンポーネント802として示す、種々の随意のハードウェアおよびソフトウェア・コンポーネントを含む例示的なモバイル・デバイス800のブロック図を示す。コンプライアンス・エンジン112、コンプライアンス・エージェント120、オーケストレーター・エンジン208、コンフィギュレーション情報エラー・チェッカー210、コンプライアンス・エージェント220、コンプライアンス・コンフィギュレーション情報ハンドラー228、設定実装トリガラー232、状態機械セレクター234、状態機械実行エンジン236,コンプライアンス・エージェント240、および/またはフローチャート300、400、500、600、および700の内、任意の数の特徴/エレメントならびにそれらの組み合わせは、当業者には知られているように、モバイル・デバイスの実施形態に含まれるコンポーネント802として、更には追加のおよび/または代わりの機能/エレメントとして実装することができる。尚、コンポーネント802はいずれも、コンポーネント802の他のいずれとも通信することができるが、図示を容易にするために、全ての接続は示されていないことを注記しておく。モバイル・デバイス800は、本明細書のどこかで説明したまたは言及した種々のモバイル・デバイス、あるいはそうでなければ知られている種々のモバイル・デバイスの内任意のもの(例えば、セル・フォン、スマート・フォン、ハンドヘルド・コンピューター、パーソナル・ディジタル・アシスタント(PDA)等)とすることができ、セルラーまたは衛星ネットワークのような1つ以上の通信ネットワーク804を通じて、1つ以上のモバイル・デバイスとのワイヤレス双方向通信、あるいはローカル・エリアまたはワイド・エリア・ネットワークとのワイヤレス双方向通信を可能にすることができる。
[0076] 図示するモバイル・デバイス800は、信号コード化、画像処理、データー処理、入力/出力処理、電力制御、および/またはその他の機能というようなタスクを実行する、プロセッサー回路810と呼ばれるコントローラーまたはプロセッサーを含むことができる。プロセッサー回路810は、中央処理ユニット(CPU)、マイクロコントローラー、マイクロプロセッサー、および/または他の物理ハードウェア・プロセッサー回
路として、1つ以上の物理ハードウェア電気回路デバイス・エレメントおよび/または集積回路デバイス(半導体材料チップまたはダイ)に実装される電気および/または光回路である。プロセッサー回路810は、1つ以上のアプリケーション814、オペレーティング・システム812のプログラム・コード、メモリー820に格納されている任意のプログラム・コード等というような、コンピューター読み取り可能媒体に格納されているプログラム・コードを実行することができる。オペレーティング・システム812は、コンポーネント802の割り当ておよび使用法、ならびに1つ以上のアプリケーション・プログラム814(別名、アプリケーション、「アプリ」等)に対するサポートを制御することができる。アプリケーション・プログラム814は、共通のモバイル・コンピューティング・アプリケーション(例えば、電子メール・アプリケーション、カレンダー、連絡先管理、ウェブ・ブラウザー、メッセージング・アプリケーション)、および任意の他のコンピューティング・アプリケーション(例えば、ワード・プロセッシング・アプリケーション、マッピング・アプリケーション、メディア・プレーヤー・アプリケーション)を含むことができる。
[0077] 図示のように、モバイル・デバイス800はメモリー820を含むことができる。メモリー820は、非リムーバブル・メモリー822および/またはリムーバブル・メモリー824を含むことができる。非リムーバブル・メモリー822は、RAM、ROM、フラッシュ・メモリー、ハード・ディスク、または他の周知のメモリー記憶技術を含むことができる。リムーバブル・メモリー824は、フラッシュ・メモリー、またはGSM通信システムにおいて周知のサブスクライバー識別モジュール(SIM)カード、または「スマート・カード」のような、他の周知のメモリー記憶技術を含むことができる。メモリー820は、オペレーティング・システム812およびアプリケーション814を実行するためのデーターおよび/またはコードを格納するために使用することができる。データーの例には、ウェブ・ページ、テキスト、画像、音響ファイル、ビデオ・データー、あるいは1つ以上の有線またはワイヤレス・ネットワークを通じて1つ以上のネットワーク・サーバーまたは他のデバイスに送られる他のデーター集合、および/または1つ以上のネットワーク・サーバーまたは他のデバイスから受信される他のデーター集合を含むことができる。メモリー820は、国際モバイル・サブスクライバー識別(IMSI)のようなサブスクライバー識別子、および国際モバイル機器識別子(IMEI)のような機器識別子を格納するために使用することができる。このような識別子は、ユーザーおよび機器を識別するために、ネットワーク・サーバーに送信することができる。
[0078] 多数のプログラムをメモリー820に格納することができる。これらのプログラムには、オペレーティング・システム812、1つ以上のアプリケーション・プログラム814、ならびに他のプログラム・モジュールおよびプログラム・データーが含まれる。このようなアプリケーション・プログラムまたはプログラム・モジュールの例には、例えば、図1~図7を参照して説明したデバイス・コンプライアンス管理の実施形態を含む、前述のシステムを実装するためのコンピューター・プログラム・ロジック(例えば、コンピューター・プログラム・コードまたは命令)を含むことができる。
[0079] モバイル・デバイス800は、タッチ・スクリーン832、マイクロフォン834、カメラ836、物理キーボード838、および/またはトラックボール840というような1つ以上の入力デバイス830、ならびにスピーカー852およびディスプレイ854のような1つ以上の出力デバイス850をサポートすることができる。
[0080] 他の可能な出力デバイス(図示せず)には、圧電または他の触覚出力デバイスを含むことができる。デバイスの中には、1つよりも多い入力/出力機能を提供できる(serve)ものもある。例えば、タッチ・スクリーン832およびディスプレイ854を組み
合わせて1つの入力/出力デバイスにすることができる。入力デバイス830は、自然ユ
ーザー・インターフェース(NUI)を含むことができる。
[0081] 当技術分野において十分に理解されているように、ワイヤレス・モデム(1つまたは複数)860をアンテナ(1つまたは複数)(図示せず)に結合することができ、プロセッサー回路810と外部デバイスとの間における双方向通信をサポートすることができる。モデム(1つまたは複数)860は、包括的に示されており、モバイル通信ネットワーク804および/または他の無線系モデム(例えば、Bluetooth764および/またはWi-Fi762)と通信するためのセルラー・モデム866を含むことができる。セルラー・モデム866は、GSM、3G、4G、5G等のような任意の適した通信規格または技術にしたがって通話(phone call)(そして随意にデーター送信)を可能にするように構成することができる。ワイヤレス・モデム(1つまたは複数)860の少なくとも1つは、通例、1つのセルラー・ネットワーク内、セルラー・ネットワーク間、またはモバイル・デバイスと公衆電話交換網(PSTN)との間におけるデーターおよび音声通信のためのGSMネットワークのような、1つ以上のセルラー・ネットワークとの通信に合わせて構成される。
[0082] モバイル・デバイス800は、更に、少なくとも1つの入力/出力ポート880、電源882、汎地球測位システム(PGS)受信機のような衛星ナビゲーション・システム受信機884、加速度計886、および/またはUSBポート、IEEE1394(FireWire)ポート、および/またはRS-232ポートとすることができる物理コネクター890も含むことができる。当業者には認められるであろうが、任意のコンポーネントが存在しないことが可能であり、他のコンポーネントが付加的に存在することも可能であるので、図示するコンポーネント802は必須ではなく、全てを含むのでもない。
[0083] 更に、図9は、実施形態を実施することができるコンピューティング・デバイス900の例示的な実施態様を示し、この実施態様は、コンピューティング・デバイス104、コンピューティング・デバイス204、コンピューティング・デバイス244、サーバー102を含む。本明細書において提供するコンピューティング・デバイス900の説明は、例示の目的に限って行われるのであり、限定することは意図していない。関連技術(1つまたは複数)において習熟した者には分かるであろうが、実施形態は更に他の種類のコンピューター・システムにおいて実施することもできる。
[0084] 図9に示すように、コンピューティング・デバイス900は、プロセッサー回路902と呼ばれる1つ以上のプロセッサー、システム・メモリー904、およびバス906を含む。バス906は、システム・メモリー904からプロセッサー回路902までを含む種々のシステム・コンポーネントを結合する。プロセッサー回路902は、中央処理ユニット(CPU)、マイクロコントローラー、マイクロプロセッサー、および/または他の物理ハードウェア・プロセッサー回路として、1つ以上の物理ハードウェア電気回路デバイス・エレメントおよび/または集積回路デバイス(半導体材料チップまたはダイ)に実装される電気および/または光回路である。プロセッサー回路902は、オペレーティング・システム930、アプリケーション・プログラム932、他のプログラム934等のプログラム・コードというような、コンピューター読み取り可能媒体に格納されているプログラム・コードを実行することができる。バス906は、様々な型式のバス構造の内任意のものの1つ以上を表し、メモリー・バスまたはメモリー・コントローラー、周辺バス、加速グラフィック・ポート、および種々のバス・アーキテクチャの内任意のものを使用するプロセッサーまたはローカル・バスを含む。システム・メモリー904は、リード・オンリー・メモリー(ROM)908およびランダム・アクセス・メモリー(RAM)910を含む。基本入力/出力システム912(BIOS)はROM908に格納されている。
[0085] また、コンピューティング・デバイス900は、次のドライブ、ハード・ディスクから読み出しハード・ディスクに書き込むためのハード・ディスク・ドライブ914、リムーバブル磁気ディスク918から読み出しリムーバブル磁気ディスク918に書き込むための磁気ディスク・ドライブ916、およびCD ROM、DVD ROM、または他の光媒体のようなリムーバブル光ディスク922から読み出しリムーバブル光ディスク922に書き込むための光ディスク・ドライブ920の内1つ以上を有する。ハード・ディスク・ドライブ914、磁気ディスク・ドライブ916、および光ディスク・ドライブ920は、それぞれ、ハード・ディスク・ドライブ・インターフェース924、磁気ディスク・ドライブ・インターフェース926、および光ドライブ・インターフェース928によって、バス906に接続されている。これらのドライブおよびその関連するコンピューター読み取り可能媒体は、コンピューター読み取り可能な命令、データー構造、プログラム・モジュール、およびコンピューターについてのその他のデーターの不揮発性格納に対応する(provide)。ハード・ディスク、リムーバブル磁気ディスク、およびリムーバ
ブル光ディスクについて説明したが、フラッシュ・メモリー・カード、ディジタル・ビデオ・ディスク、RAM、ROM、およびその他のハードウェア記憶媒体のような、他の種類のハードウェア・ベースのコンピューター読み取り可能記憶媒体も、データーを格納するために使用することができる。
[0086] ハード・ディスク、磁気ディスク、光ディスク、ROM、またはRAM上に多数のプログラム・モジュールを格納することができる。これらのプログラムには、オペレーティング・システム930、1つ以上のアプリケーション・プログラム932、他のプログラム934、およびプログラム・データー936が含まれる。アプリケーション・プログラム932または他のプログラム934は、例えば、図1~図7を参照して説明したデバイス・コンプライアンス管理の実施形態を含む、前述のシステムを実装するためのコンピューター・プログラム・ロジック(例えば、コンピューター・プログラム・コードまたは命令)を含むことができる。
[0087] ユーザーは、キーボード938およびポインティング・デバイス940のような入力デバイスを介して、コマンドおよび情報をコンピューティング・デバイス900に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー、タッチ・スクリーンおよび/またはタッチ・パッド、音声入力を受けるための音声認識システム、ジェスチャ入力を受けるためのジェスチャ認識システム等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、バス906に結合されたシリアル・ポート・インターフェース942を介してプロセッサー回路902に接続されるが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)のような他のインターフェースによって接続されてもよい。
[0088] また、ビデオ・アダプター846のようなインターフェースを介して、表示画面944もバス906に接続されている。表示画面844は、コンピューティング・デバイス900の外部にあっても、その中に組み込まれてもよい。表示画面944は、情報を表示するだけでなく、ユーザー・コマンドおよび/または他の情報を受け取る(例えば、接触、指のジェスチャ、仮想キーボード等によって)ためのユーザー・インターフェースとなることも可能である。表示画面944に加えて、コンピューティング・デバイス900はスピーカーおよびプリンターのような他の周辺出力デバイス(図示せず)も含むことができる。
[0089] コンピューティング・デバイス900は、アダプターまたはネットワーク・インターフェース950、モデム952、またはネットワークを通じて通信を確立するため
の他の手段を介して、ネットワーク948(例えば、インターネット)に接続される。モデム952は、内蔵型でも外付け型でもよく、図9に示すように、シリアル・ポート・インターフェース942を介してバス906に接続することができ、またはパラレル・インターフェースを含む他の型のインターフェースを使用して、バス906に接続することもできる。
[0090] 本明細書において使用する場合、「コンピューター・プログラム媒体」、「コンピューター読み取り可能媒体」、および「コンピューター読み取り可能記憶媒体」という用語は、通常、ハード・ディスク・ドライブ914に関連付けられたハード・ディスク、リムーバブル磁気ディスク918、リムーバブル光ディスク922、RAM、ROM、フラッシュ・メモリー・カード、ディジタル・ビデオ・ディスク、zipディスク、MEM、ナノテクノロジー・ベースの記憶デバイスというような他の物理ハードウェア媒体、および更に別の型式の物理/有形ハードウェア記憶媒体(図9のシステム・メモリー904を含む)というような、物理ハードウェア媒体を指すために使用される。このようなコンピューター読み取り可能記憶媒体は、通信媒体から区別され、これらとは重なり合わない(通信媒体を含まない)。通信媒体は、通例、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターを、搬送波のような変調データー信号内に具体化する。「変調データー信号」という用語は、その特性の内1つ以上が、信号内に情報をエンコードするような方法で設定または変更された信号を意味する。一例として、そして限定ではなく、通信媒体は、音響、RF、赤外線、およびその他のワイヤレス媒体というようなワイヤレス媒体と、有線媒体とを含む。また、実施形態はこのような通信媒体も対象とする。
[0091] 先に注記したように、コンピューター・プログラムおよびモジュール(アプリケーション・プログラム932および他のプログラム934を含む)は、ハード・ディスク、磁気ディスク、光ディスク、ROM、RAM、またはその他のハードウェア記憶媒体上に格納することができる。このようなコンピューター・プログラムは、ネットワーク・インターフェース950、シリアル・ポート・インターフェース952、または任意の他の型式のインターフェースを介して受信することもできる。このようなコンピューター・プログラムは、アプリケーションによって実行またはロードされると、コンピューティング・デバイス900が、本明細書において論じた実施形態の機能(features)を実現することを可能にする。したがって、このようなコンピューター・プログラムは、コンピューティング・デバイス900のコントローラーを表す。
[0092] また、実施形態は、任意のコンピューター読み取り可能媒体上に格納されたコンピューター・コードまたは命令を含むコンピューター・プログラム製品も対象にする。このようなコンピューター・プログラム製品は、ハード・ディスク・ドライブ、光ディスク・ドライブ、メモリー・デバイス・パッケージ、携帯用メモリー・スティック、メモリー・カード、およびその他の型式の物理ストレージ・ハードウェアを含む。
IV.追加の例示的な実施形態
[0093] 実施形態では、モバイル・デバイスは、少なくとも1つのプロセッサー回路と、少なくとも1つのプロセッサー回路によって実行されるように構成されたプログラム・コードを格納する少なくとも1つのメモリーとを備える。プログラム・コードは、モバイル・デバイスにコンフィギュレーション・シナリオを順守させるために、モバイル・デバイスによって実装するコンプライアンス設定を記述するコンフィギュレーション情報を、サーバーから受信し、コンフィギュレーション情報を格納するように構成されたコンフィギュレーション・マネージャと、コンフィギュレーション・マネージャから、コンプライアンス設定をモバイル・デバイス内に実装するトリガーを受信し、コンフィギュレーション情報によって示され、コンプライアンス設定を実装するコンフィギュレーション・プロ
セスを記述する状態機械を識別し、この状態機械を実行して、モバイル・デバイスにコンプライアンス設定を組み込むように構成されたオーケストレーター・エンジンとを備える。
[0094] 前述のモバイル・デバイスの実施形態において、オーケストレーター・エンジンが、更に、状態機械を実行して、モバイル・デバイスがコンフィギュレーション情報にしたがってしかるべく構成されているか否か判定するように構成される。
[0095] 前述のモバイル・デバイスの実施形態において、オーケストレーター・エンジンが、更に、状態機械を実行することによって生成されたコンフィギュレーション結果をコンフィギュレーション情報データー・ストアに格納するように構成され、コンフィギュレーション・マネージャが、更に、コンフィギュレーション結果をコンフィギュレーション情報データー・ストアから入手し、コンフィギュレーション結果をサーバーに送信するように構成される。
[0096] 前述のモバイル・デバイスの実施形態において、コンフィギュレーション・マネージャが、更に、コンフィギュレーション情報を解析し、コンフィギュレーション情報に伴うエラーを判定し、エラーの訂正をサーバーに要求するように構成される。
[0097] 前述のモバイル・デバイスの実施形態において、コンフィギュレーション・マネージャが、更に、コンフィギュレーション情報をコンフィギュレーション情報データー・ストアに格納し、格納したコンフィギュレーション情報をサーバーに送信し、コンフィギュレーション情報をサーバーに送ったことに応答して、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報をサーバーから受信するように構成される。
[0098] 前述のモバイル・デバイスの実施形態において、状態機械が、モバイル・デバイス上の状態機械データー・ストアに格納される。
[0099] 前述のモバイル・デバイスの実施形態において、コンフィギュレーション情報が、サーバーから、拡張可能マークアップ言語(XML)ファイルで受信され、拡張マークアップ言語(XML)ファイルが、コンプライアンス設定に関連付けられたペイロードと、ペイロードのダウンロードおよび処理のための対応するユニフォーム・リソース識別子(URI)とを含む。
[0100] 他の実施形態において、方法は、モバイル・デバイスにコンフィギュレーション・シナリオを順守させるために、モバイル・デバイスによって実装するコンプライアンス設定を記述するコンフィギュレーション情報を、サーバーから受信するステップと、コンフィギュレーション情報を格納するステップと、モバイル・デバイスにおいてコンプライアンス設定を実装するトリガーを受信するステップと、コンフィギュレーション情報によって示され、コンプライアンス設定を実装するコンフィギュレーション・プロセスを記述する状態機械を識別するステップと、状態機械を実行して、モバイル・デバイスにコンプライアンス設定を組み込むステップとを含む。
[0101] 実施形態において、前述の方法は、更に、状態機械を実行して、モバイル・デバイスがコンフィギュレーション情報にしたがってしかるべく構成されているか否か判定するステップを含む。
[0102] 実施形態において、前述の方法は、更に、状態機械を実行することによって生成されたコンフィギュレーション結果をコンフィギュレーション情報データー・ストアに
格納するステップと、コンフィギュレーション情報データー・ストアからコンフィギュレーション結果を入手するステップと、コンフィギュレーション結果をサーバーに送信するステップとを含む。
[0103] 実施形態において、前述の方法は、更に、コンフィギュレーション情報を解析するステップと、コンフィギュレーション情報に伴うエラーを判定するステップと、エラーの訂正をサーバーに要求するステップとを含む。
[0104] 実施形態において、前述の方法は、更に、コンフィギュレーション情報をコンフィギュレーション情報データー・ストアに格納するステップと、格納したコンフィギュレーション情報をサーバーに送信するステップと、コンフィギュレーション情報をサーバーに送ったことに応答して、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報をサーバーから受信するステップとを含む。
[0105] 前述の方法の実施形態において、状態機械が、モバイル・デバイス上の状態機械データー・ストア上に格納される。
[0106] 前述の方法の実施形態において、コンフィギュレーション情報が、サーバーから、拡張マークアップ言語(XML)ファイルで受信され、拡張マークアップ言語(XML)ファイルが、コンプライアンス設定に関連付けられたペイロードと、ペイロードのダウンロードおよび処理のための対応するユニフォーム・リソース識別子(URI)とを含む。
[0107] 他の実施形態において、コンピューター読み取り可能記憶媒体は、それ自体にプログラム命令が記録されており、プログラム命令がモバイル・デバイスの少なくとも1つの処理回路によって実行されると、方法を実行する。この方法は、サーバーから、モバイル・デバイスにコンフィギュレーション・シナリオを順守させるために、モバイル・デバイスによって実装するコンプライアンス設定を記述するコンフィギュレーション情報を受信するステップと、コンフィギュレーション情報を格納するステップと、モバイル・デバイスにおいてコンプライアンス設定を実装するトリガーを受信するステップと、コンフィギュレーション情報によって示され、コンプライアンス設定を実装するコンフィギュレーション・プロセスを記述する状態機械を識別するステップと、状態機械を実行して、モバイル・デバイスにコンプライアンス設定を組み込むステップとを含む。
[0108] 前述の方法の実施形態において、状態機械を実行して、モバイル・デバイスがコンフィギュレーション情報にしたがってしかるべく構成されているか否か判定するステップを含む。
[0109] 前述の方法の実施形態において、この方法が、更に、状態機械を実行することによって生成されたコンフィギュレーション結果をコンフィギュレーション情報データー・ストアに格納するステップと、コンフィギュレーション情報データー・ストアからコンフィギュレーション結果を入手するステップと、コンフィギュレーション結果をサーバーに送信するステップとを含む。
[0110] 前述の方法の実施形態において、コンフィギュレーション情報を解析するステップと、コンフィギュレーション情報に伴うエラーを判定するステップと、エラーの訂正をサーバーに要求するステップとを含む。
[0111] 前述の方法の実施形態において、コンフィギュレーション情報をコンフィギュレーション情報データー・ストアに格納するステップと、格納したコンフィギュレーショ
ン情報をサーバーに送信するステップと、コンフィギュレーション情報をサーバーに送ったことに応答して、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報をサーバーから受信するステップとを含む。
[0112] 前述の方法の実施形態において、コンフィギュレーション情報が、サーバーから、拡張マークアップ言語(XML)ファイルで受信され、拡張マークアップ言語(XML)ファイルが、コンプライアンス設定に関連付けられたペイロードと、ペイロードのダウンロードおよび処理のための対応するユニフォーム・リソース識別子(URI)とを含む。
V.結論
[0113] 以上、種々の実施形態について説明したが、これらは例として提示されたに過ぎず限定ではないことは理解されてしかるべきである。尚、これらの実施形態の主旨および範囲から逸脱することなく、形態および詳細において種々の変更を行えることは、当業者には明白であろう。したがって、実施形態の広さ(breadth)および範囲は、前述した例
示的な実施形態のいずれによっても限定されず、以下の特許請求の範囲およびその均等のみにしたがって定められてしかるべきである。

Claims (15)

  1. モバイル・デバイスであって、
    少なくとも1つのプロセッサー回路と、
    前記少なくとも1つのプロセッサー回路によって実行されるように構成されたプログラム・コードを格納する少なくとも1つのメモリとを備え、
    前記プログラム・コードが、
    前記モバイル・デバイスにコンフィギュレーション・シナリオを順守させるために、前記モバイル・デバイスによって実装するコンプライアンス設定を記述するコンフィギュレーション情報を、サーバーから受信し、
    前記コンフィギュレーション情報を格納するように構成されたコンフィギュレーション・マネージャと、
    前記コンフィギュレーション・マネージャから、前記コンプライアンス設定を前記モバイル・デバイス内に実装するトリガーを受信し、
    前記コンフィギュレーション情報によって示され、前記コンプライアンス設定を実装するコンフィギュレーション・プロセスを記述する状態機械を識別し、
    前記状態機械を実行して、前記モバイル・デバイスに前記コンプライアンス設定を組み込むように構成されたオーケストレーター・エンジンと、
    を備える、モバイル・デバイス。
  2. 請求項1記載のモバイル・デバイスにおいて、前記オーケストレーター・エンジンが、更に、
    前記状態機械を実行して、前記モバイル・デバイスが前記コンフィギュレーション情報にしたがってしかるべく構成されているか否か判定するように構成される、モバイル・デバイス。
  3. 請求項1記載のモバイル・デバイスにおいて、
    前記オーケストレーター・エンジンが、更に、前記状態機械を実行することによって生成されたコンフィギュレーション結果をコンフィギュレーション情報データー・ストアに格納するように構成され、前記コンフィギュレーション・マネージャが、更に、前記コンフィギュレーション結果を前記コンフィギュレーション情報データー・ストアから入手し、前記コンフィギュレーション結果を前記サーバーに送信するように構成される、モバイル・デバイス。
  4. 請求項1記載のモバイル・デバイスにおいて、前記コンフィギュレーション・マネージャが、更に、
    前記コンフィギュレーション情報を解析し、
    前記コンフィギュレーション情報に伴うエラーを判定し、前記エラーの訂正を前記サーバーに要求するように構成される、モバイル・デバイス。
  5. 請求項1記載のモバイル・デバイスにおいて、前記コンフィギュレーション・マネージャが、更に、
    前記コンフィギュレーション情報をコンフィギュレーション情報データー・ストアに格納し、前記格納したコンフィギュレーション情報を前記サーバーに送信し、
    前記コンフィギュレーション情報を前記サーバーに送ったことに応答して、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報を前記サーバーから受信するように構成される、モバイル・デバイス。
  6. 請求項1記載のモバイル・デバイスにおいて、前記状態機械が、前記モバイル・デバイス上の状態機械データー・ストアに格納される、モバイル・デバイス。
  7. 請求項1記載のモバイル・デバイスにおいて、前記コンフィギュレーション情報が、前記サーバーから、拡張可能マークアップ言語(XML)ファイルで受信され、前記拡張マークアップ言語(XML)ファイルが、前記コンプライアンス設定に関連付けられたペイロードと、前記ペイロードのダウンロードおよび処理のための対応するユニフォーム・リソース識別子(URI)とを含む、モバイル・デバイス。
  8. 方法であって、
    モバイル・デバイスにコンフィギュレーション・シナリオを順守させるために、前記モバイル・デバイスによって実装するコンプライアンス設定を記述するコンフィギュレーション情報を、サーバーから受信するステップと、
    前記コンフィギュレーション情報を格納するステップと、
    前記モバイル・デバイスにおいて前記コンプライアンス設定を実装するトリガーを受信するステップと、
    前記コンフィギュレーション情報によって示され、前記コンプライアンス設定を実装するコンフィギュレーション・プロセスを記述する状態機械を識別するステップと、
    前記状態機械を実行して、前記モバイル・デバイスに前記コンプライアンス設定を組み込むステップとを含む、方法。
  9. 請求項8記載の方法であって、更に、
    前記状態機械を実行して、前記モバイル・デバイスが前記コンフィギュレーション情報にしたがってしかるべく構成されているか否か判定するステップを含む、方法。
  10. 請求項8記載の方法であって、更に、
    前記状態機械を実行することによって生成されたコンフィギュレーション結果をコンフィギュレーション情報データー・ストアに格納するステップと、
    前記コンフィギュレーション情報データー・ストアから前記コンフィギュレーション結果を入手するステップと、
    前記コンフィギュレーション結果を前記サーバーに送信するステップとを含む、方法。
  11. 請求項8記載の方法であって、更に、
    前記コンフィギュレーション情報を解析するステップと、
    前記コンフィギュレーション情報に伴うエラーを判定するステップと、
    前記エラーの訂正を前記サーバーに要求するステップとを含む、方法。
  12. 請求項8記載の方法であって、更に、
    前記コンフィギュレーション情報をコンフィギュレーション情報データー・ストアに格納するステップと、
    前記格納したコンフィギュレーション情報を前記サーバーに送信するステップと、
    前記コンフィギュレーション情報を前記サーバーに送ったことに応答して、更新コンフィギュレーション情報および/または追加のコンフィギュレーション情報を前記サーバーから受信するステップとを含む、方法。
  13. 請求項8記載の方法において、前記状態機械が、前記モバイル・デバイス上の状態機械データー・ストア上に格納される、方法。
  14. 請求項8記載の方法において、前記コンフィギュレーション情報が、前記サーバーから、拡張マークアップ言語(XML)ファイルで受信され、前記拡張マークアップ言語(XML)ファイルが、前記コンプライアンス設定に関連付けられたペイロードと、前記ペイロードのダウンロードおよび処理のための対応するユニフォーム・リソース識別子(UR
    I)とを含む、方法。
  15. コンピューター・プログラム・ロジックが記録されているコンピューター読み取り可能媒体を含むコンピューター・プログラム製品であって、
    プロセッサーが請求項8~14のいずれか1項を実行することを可能にするコンピューター・プログラム・ロジック手段を備える、コンピューター・プログラム製品。
JP2023195827A 2018-07-31 2023-11-17 コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装 Pending JP2024020448A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/051,145 2018-07-31
US16/051,145 US11184223B2 (en) 2018-07-31 2018-07-31 Implementation of compliance settings by a mobile device for compliance with a configuration scenario
PCT/US2019/039507 WO2020027954A1 (en) 2018-07-31 2019-06-27 Implementation of compliance settings by a mobile device for compliance with a configuration scenario
JP2021505190A JP7389791B2 (ja) 2018-07-31 2019-06-27 コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2021505190A Division JP7389791B2 (ja) 2018-07-31 2019-06-27 コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装

Publications (1)

Publication Number Publication Date
JP2024020448A true JP2024020448A (ja) 2024-02-14

Family

ID=67297388

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021505190A Active JP7389791B2 (ja) 2018-07-31 2019-06-27 コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装
JP2023195827A Pending JP2024020448A (ja) 2018-07-31 2023-11-17 コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2021505190A Active JP7389791B2 (ja) 2018-07-31 2019-06-27 コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装

Country Status (6)

Country Link
US (3) US11184223B2 (ja)
EP (1) EP3807754A1 (ja)
JP (2) JP7389791B2 (ja)
KR (1) KR20210027400A (ja)
CN (1) CN112867988A (ja)
WO (1) WO2020027954A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200028879A1 (en) 2018-07-17 2020-01-23 Microsoft Technology Licensing, Llc Queryless device configuration determination-based techniques for mobile device management
US10977877B2 (en) 2019-04-17 2021-04-13 Raytheon Technologies Corporation Engine gateway with engine data storage
US11492132B2 (en) 2019-04-17 2022-11-08 Raytheon Technologies Corporation Gas turbine engine configuration data synchronization with a ground-based system
EP3726324B1 (en) 2019-04-17 2023-03-01 Raytheon Technologies Corporation Gas turbine engine communication gateway with internal sensors
US11913643B2 (en) 2019-04-17 2024-02-27 Rtx Corporation Engine wireless sensor system with energy harvesting
EP3726323B1 (en) 2019-04-17 2023-03-08 Raytheon Technologies Corporation Gas turbine engine communication gateway with integral antennas
US11208916B2 (en) 2019-04-17 2021-12-28 Raytheon Technologies Corporation Self-healing remote dynamic data recording
EP3726325B1 (en) 2019-04-17 2022-08-24 Raytheon Technologies Corporation Gas turbine engine with dynamic data recording
EP3726480A1 (en) * 2019-04-17 2020-10-21 United Technologies Corporation Remote updates of a gas turbine engine
JP2023134179A (ja) * 2022-03-14 2023-09-27 オムロン株式会社 検査システム
US11914457B2 (en) 2022-03-30 2024-02-27 Bank Of America Corporation System for early detection of operational failure in component-level functions within a computing environment

Family Cites Families (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546629B2 (en) 2002-03-06 2009-06-09 Check Point Software Technologies, Inc. System and methodology for security policy arbitration
US7644432B2 (en) * 2003-10-10 2010-01-05 Bea Systems, Inc. Policy inheritance through nested groups
WO2005064498A1 (en) 2003-12-23 2005-07-14 Trust Digital, Llc System and method for enforcing a security policy on mobile devices using dynamically generated security profiles
MX2007003315A (es) 2004-09-23 2007-11-15 Airclic Inc Metodo de automatizacion de proceso movil.
US7516478B2 (en) 2005-06-03 2009-04-07 Microsoft Corporation Remote management of mobile devices
US8626128B2 (en) 2011-04-07 2014-01-07 Microsoft Corporation Enforcing device settings for mobile devices
US9332424B2 (en) * 2005-08-05 2016-05-03 Qualcomm Incorporated Centrally managed solution for all device management activities
US8825907B2 (en) * 2005-09-15 2014-09-02 Gendband US LLC Incorporating a mobile device into a peer-to-peer network
US7870490B2 (en) * 2005-11-15 2011-01-11 Microsoft Corporation On-the-fly device configuration and management
US7685263B2 (en) 2006-12-19 2010-03-23 Blue Coat Systems, Inc. Method and system for configuring a device with a wireless mobile configurator
US7987471B2 (en) * 2007-01-26 2011-07-26 Microsoft Corporation Mobile device management proxy system
US8997091B1 (en) * 2007-01-31 2015-03-31 Emc Corporation Techniques for compliance testing
US8185096B2 (en) * 2007-02-05 2012-05-22 Boadin Technology, LLC Systems and methods for multi-modal mobile media services
US20080201705A1 (en) * 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US8781491B2 (en) * 2007-03-02 2014-07-15 Aegis Mobility, Inc. Management of mobile device communication sessions to reduce user distraction
US20090049518A1 (en) * 2007-08-08 2009-02-19 Innopath Software, Inc. Managing and Enforcing Policies on Mobile Devices
US7676573B2 (en) * 2008-02-08 2010-03-09 Microsoft Corporation Node monitor client cache synchronization for mobile device management
US8010842B2 (en) 2008-08-08 2011-08-30 Innopath Software, Inc. Intelligent mobile device management client
US8261354B2 (en) * 2008-09-17 2012-09-04 International Business Machines Corporation System, method and program product for dynamically performing an audit and security compliance validation in an operating environment
US8286220B2 (en) 2008-09-23 2012-10-09 Zscaler, Inc. Browser access control
US9781148B2 (en) * 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
US20100205159A1 (en) * 2009-02-10 2010-08-12 Jun Li System and method for managing data
US8898748B2 (en) 2009-05-21 2014-11-25 Mobile Iron, Inc. Remote verification for configuration updates
US8750178B2 (en) * 2009-06-01 2014-06-10 Qualcomm Incorporated Connection manager for a wireless communication device
US8336080B2 (en) * 2009-06-26 2012-12-18 Symbol Technologies, Inc. Methods and apparatus for rating device security and automatically assessing security compliance
US20110246499A1 (en) * 2010-03-30 2011-10-06 Yuval Carmel Method and system for evaluating compliance within a configuration-management system
US8473743B2 (en) 2010-04-07 2013-06-25 Apple Inc. Mobile device management
US8719780B2 (en) * 2010-06-29 2014-05-06 Oracle International Corporation Application server with a protocol-neutral programming model for developing telecommunications-based applications
US8359016B2 (en) 2010-11-19 2013-01-22 Mobile Iron, Inc. Management of mobile applications
US9557983B1 (en) 2010-12-29 2017-01-31 Emc Corporation Flexible storage application deployment mechanism
US8813167B2 (en) * 2010-12-30 2014-08-19 Apple Inc. Dynamic device configuration using predicates
US20120216281A1 (en) * 2011-02-22 2012-08-23 PCTEL Secure LLC Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
US9369433B1 (en) * 2011-03-18 2016-06-14 Zscaler, Inc. Cloud based social networking policy and compliance systems and methods
US9065800B2 (en) * 2011-03-18 2015-06-23 Zscaler, Inc. Dynamic user identification and policy enforcement in cloud-based secure web gateways
WO2012161125A1 (ja) * 2011-05-20 2012-11-29 日本放送協会 受信機、プログラム及び受信方法
JPWO2012161118A1 (ja) * 2011-05-20 2014-07-31 日本放送協会 端末連携システム、受信機及び受信方法
US9071518B2 (en) 2011-07-01 2015-06-30 Fiberlink Communications Corporation Rules based actions for mobile device management
US9037642B2 (en) * 2011-08-29 2015-05-19 Fiberlink Communications Corporation Platform for deployment and distribution of modules to endpoints
US10165007B2 (en) * 2011-09-15 2018-12-25 Microsoft Technology Licensing, Llc Securing data usage in computing devices
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US9756501B2 (en) * 2011-10-24 2017-09-05 Blackberry Limited System and method for wireless device configuration
US9084179B2 (en) * 2011-11-25 2015-07-14 Bandwidthx Inc. Mobile wireless device with intelligent network access selection
US8713646B2 (en) * 2011-12-09 2014-04-29 Erich Stuntebeck Controlling access to resources on a network
US9378390B2 (en) * 2012-03-30 2016-06-28 Nokia Technologies Oy Method and apparatus for policy adaption based on application policy compliance analysis
US20140064068A1 (en) * 2012-08-30 2014-03-06 Qualcomm Incorporated Interactions between ran-based and legacy wlan mobility
US20140108558A1 (en) * 2012-10-12 2014-04-17 Citrix Systems, Inc. Application Management Framework for Secure Data Sharing in an Orchestration Framework for Connected Devices
US20140109176A1 (en) * 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US10382275B1 (en) * 2012-10-22 2019-08-13 Amazon Technologies, Inc. Automated infrastructure configuration
CN103001955B (zh) * 2012-11-22 2017-05-31 南京中兴软件有限责任公司 业务下载加速的方法与系统、业务状态的维护方法与装置
US20140148140A1 (en) * 2012-11-29 2014-05-29 Lg Cns Co., Ltd. Policy-based mobile device management system (mdms) based on access history information
US9420002B1 (en) * 2013-03-14 2016-08-16 Mark McGovern Authorization server access system
US9473417B2 (en) * 2013-03-14 2016-10-18 Airwatch Llc Controlling resources used by computing devices
US10652242B2 (en) * 2013-03-15 2020-05-12 Airwatch, Llc Incremental compliance remediation
US9819682B2 (en) 2013-03-15 2017-11-14 Airwatch Llc Certificate based profile confirmation
US8850049B1 (en) * 2013-03-29 2014-09-30 Citrix Systems, Inc. Providing mobile device management functionalities for a managed browser
US9985850B2 (en) * 2013-03-29 2018-05-29 Citrix Systems, Inc. Providing mobile device management functionalities
WO2015006578A1 (en) * 2013-07-10 2015-01-15 Ciaran Hynes Method and apparatus for limiting the use of a mobile communications device
US9705919B1 (en) 2013-07-12 2017-07-11 Palo Alto Networks, Inc. Security policy enforcement for mobile devices based on device state
US9894099B1 (en) * 2013-07-12 2018-02-13 Palo Alto Networks, Inc. Automatically configuring mobile devices and applying policy based on device state
US20150052616A1 (en) * 2013-08-14 2015-02-19 L-3 Communications Corporation Protected mode for securing computing devices
US9723487B2 (en) * 2013-08-19 2017-08-01 American Megatrends, Inc. Mobile device security system
US20150244743A1 (en) * 2014-02-21 2015-08-27 Airwatch Llc Risk assessment for managed client devices
WO2015061715A1 (en) * 2013-10-24 2015-04-30 Internet Infrastructure Services Corporation Methods of dynamically securing electronic devices and other communications through environmental and system measurements leveraging tailored trustworthy spaces
US20160277448A1 (en) * 2013-10-30 2016-09-22 Nec Corporation Management system, management method and management server for communication terminals, terminal control method, and communication terminal
US9614745B2 (en) * 2014-01-09 2017-04-04 Citrix Systems, Inc. Systems and methods for cloud-based probing and diagnostics
US9432405B2 (en) * 2014-03-03 2016-08-30 Microsoft Technology Licensing, Llc Communicating status regarding application of compliance policy updates
WO2015152894A1 (en) * 2014-04-01 2015-10-08 Hewlett-Packard Development Company, L.P. Device-type based content management
US9848330B2 (en) 2014-04-09 2017-12-19 Microsoft Technology Licensing, Llc Device policy manager
US9584515B2 (en) * 2014-04-30 2017-02-28 Citrix Systems, Inc. Enterprise system authentication and authorization via gateway
US10924554B2 (en) * 2014-05-05 2021-02-16 Citrix Systems, Inc. Application customization
SG11201610148UA (en) 2014-06-13 2017-01-27 Uber Technologies Inc Enforcing policies based on information received from external systems
US9900801B2 (en) * 2014-08-08 2018-02-20 Parallel Wireless, Inc. Congestion and overload reduction
US20160042010A1 (en) * 2014-08-11 2016-02-11 Cox Communications, Inc. Systems and Methods of Facilities Location
US9647897B2 (en) * 2014-08-20 2017-05-09 Jamf Software, Llc Dynamic grouping of managed devices
US9749311B2 (en) 2014-09-24 2017-08-29 Oracle International Corporation Policy based compliance management and remediation of devices in an enterprise system
US9444849B2 (en) * 2014-10-06 2016-09-13 The Boeing Company Enforcing policy compliance on a device
US9762557B2 (en) * 2014-10-28 2017-09-12 Microsoft Technology Licensing, Llc Policy settings configuration with signals
US10063594B2 (en) 2014-12-16 2018-08-28 OPSWAT, Inc. Network access control with compliance policy check
US10509898B2 (en) * 2015-01-21 2019-12-17 Jim Barney et al. Enhanced security authentication methods, systems and media
US10979280B2 (en) * 2015-08-12 2021-04-13 Airwatch Llc Managing devices through secondary communication channels
US10452497B2 (en) * 2015-08-14 2019-10-22 Oracle International Corporation Restoration of UI state in transactional systems
US10419514B2 (en) * 2015-08-14 2019-09-17 Oracle International Corporation Discovery of federated logins
US10021542B2 (en) * 2015-08-28 2018-07-10 Airwatch Llc Providing access to applications with varying enrollment levels
US10296765B2 (en) * 2015-09-30 2019-05-21 International Business Machines Corporation Multi-level security enforcement
US9967287B2 (en) * 2015-10-27 2018-05-08 Airwatch Llc Detection of offline attempts to circumvent security policies
EP3193256B1 (en) * 2016-01-12 2018-08-01 Politechnika Poznanska A fault-tolerant data processing computer system and method for implementing a distributed two-tier state machine
US9990222B2 (en) * 2016-03-18 2018-06-05 Airwatch Llc Enforcing compliance rules against hypervisor and virtual machine using host management component
US10552823B1 (en) * 2016-03-25 2020-02-04 Early Warning Services, Llc System and method for authentication of a mobile device
US10389705B2 (en) 2016-03-30 2019-08-20 Airwatch Llc Associating user accounts with enterprise workspaces
US10225740B2 (en) * 2016-05-12 2019-03-05 Zscaler, Inc. Multidimensional risk profiling for network access control of mobile devices through a cloud based security system
US20170329966A1 (en) * 2016-05-13 2017-11-16 Qualcomm Incorporated Electronic device based security management
US10595202B2 (en) * 2016-05-23 2020-03-17 Citrix Systems, Inc. Dynamic access to hosted applications
US10003670B2 (en) 2016-06-17 2018-06-19 Airwatch Llc Remote provisioning and enrollment of enterprise devices with on-premises domain controllers
US20180063088A1 (en) * 2016-09-01 2018-03-01 Airwatch Llc Hypervisor network profiles to facilitate vpn tunnel
WO2018081629A1 (en) * 2016-10-28 2018-05-03 Tala Security, Inc. Application security service
US10362095B2 (en) * 2016-11-04 2019-07-23 Airwatch Llc Distributed network diagnostics of enterprise devices utilizing device management
US10243946B2 (en) * 2016-11-04 2019-03-26 Netskope, Inc. Non-intrusive security enforcement for federated single sign-on (SSO)
US10505983B2 (en) * 2016-11-09 2019-12-10 Airwatch Llc Enforcing enterprise requirements for devices registered with a registration service
US20180157457A1 (en) * 2016-12-01 2018-06-07 Airwatch Llc Enforcing display sharing profiles on a client device sharing display activity with a display sharing application
US10402558B2 (en) * 2016-12-16 2019-09-03 Blackberry Limited Device restrictions during events
US10652278B2 (en) * 2016-12-19 2020-05-12 Forescout Technologies, Inc. Compliance monitoring
US10547712B2 (en) * 2017-03-14 2020-01-28 Vmware, Inc Reserving physical resources based upon a physical identifier
US11228591B2 (en) * 2017-03-29 2022-01-18 MobileIron, Inc. Correlating mobile device and app usage with cloud service usage to provide security
US10620941B2 (en) * 2017-04-11 2020-04-14 Dell Products L.P. Updating and rolling back known good states of information handling systems
US11316897B2 (en) * 2017-05-19 2022-04-26 Vmware, Inc. Applying device policies using a management token
US11227032B1 (en) * 2017-05-24 2022-01-18 Amazon Technologies, Inc. Dynamic posture assessment to mitigate reverse engineering
US10437625B2 (en) * 2017-06-16 2019-10-08 Microsoft Technology Licensing, Llc Evaluating configuration requests in a virtual machine
US10104710B1 (en) * 2017-06-19 2018-10-16 Global Tel*Link Corporation Dual mode transmission in a controlled environment
US11243756B1 (en) * 2017-08-14 2022-02-08 Amazon Technologies, Inc. Extensible resource compliance management
KR102387657B1 (ko) * 2017-08-23 2022-04-19 삼성전자주식회사 Usb 인터페이스를 통해 외부 장치와 연결하는 방법 및 그를 위한 전자 장치
WO2019083909A1 (en) * 2017-10-24 2019-05-02 Antenna Audio, Inc. SYSTEMS AND METHODS FOR MULTIMEDIA GUIDED TOURS
US10810055B1 (en) * 2017-12-14 2020-10-20 Amazon Technologies, Inc. Request simulation for ensuring compliance
US10776495B2 (en) * 2018-05-10 2020-09-15 Microsoft Technology Licensing, Llc Systems and methods for attributing security vulnerabilities to a configuration of a client device
US11271812B2 (en) * 2018-06-29 2022-03-08 Forescout Technologies, Inc. Segmentation management including visualization, configuration, simulation, or a combination thereof
US20200028879A1 (en) 2018-07-17 2020-01-23 Microsoft Technology Licensing, Llc Queryless device configuration determination-based techniques for mobile device management
US10802821B2 (en) * 2018-07-24 2020-10-13 Vmware, Inc. Firmware management

Also Published As

Publication number Publication date
EP3807754A1 (en) 2021-04-21
US20240064058A1 (en) 2024-02-22
JP2021533454A (ja) 2021-12-02
US20200044916A1 (en) 2020-02-06
CN112867988A (zh) 2021-05-28
US11184223B2 (en) 2021-11-23
KR20210027400A (ko) 2021-03-10
WO2020027954A1 (en) 2020-02-06
US11750444B2 (en) 2023-09-05
US20210351978A1 (en) 2021-11-11
JP7389791B2 (ja) 2023-11-30

Similar Documents

Publication Publication Date Title
JP7389791B2 (ja) コンフィギュレーション・シナリオ順守のためのモバイル・デバイスによるコンプライアンス設定の実装
US11140230B2 (en) Method and procedure for dynamic services orchestration that runs within an on-device software container
US11595392B2 (en) Gateway enrollment for internet of things device management
US20220276910A1 (en) Dynamically integrating a client application with third-party services
CN109478266B (zh) 对于数据库供应的资源分配
CN106575305B (zh) 反向代理服务器内的服务
US9071518B2 (en) Rules based actions for mobile device management
US20120036498A1 (en) Mobile application performance management
US9876703B1 (en) Computing resource testing
JP2017528844A (ja) 企業システム内の装置の変更イベントの管理
US20150304404A1 (en) System architecture, subsystem, and method for opening telecommunications network capability
CN112805980A (zh) 用于移动设备管理的基于无查询设备配置确定的技术
US10459905B2 (en) Centralized hierarchical configuration system for applications in a distributed network
CN111818179A (zh) 用户请求的处理方法、装置、计算设备和介质
US10073689B2 (en) Managing application lifecycles within a federation of distributed software applications
US20240036807A1 (en) Solution to avoid duplicated app notification sounds
US9569433B1 (en) Mobile application analytics
US10911305B2 (en) Efficient rule processing for device management data evaluation
US20230198845A1 (en) Systems and methods of configuring monitoring operations for a cluster of servers
US20230385430A1 (en) Techniques for providing security-related information
US20240004734A1 (en) Event processing systems and methods

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231215

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231215