(58)【調査した分野】(Int.Cl.,DB名)
前記第1のエンロールメントポリシーを特定するステップは、前記第1のデバイスのオペレーティングシステムまたはタイプに基づき、前記第1のデバイスの前記タイプは、ワークステーション、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイスおよびウェアラブルデバイスからなる群から選択される、請求項1に記載の方法。
前記第1のエンロールメントルールセットおよび前記第2のエンロールメントルールセットは、前記複数の電子デバイスをエンロールすることができる前記システム内のユーザに関連する情報、前記システムの一人以上のユーザによってエンロールされることができるデバイスのタイプに関連する情報、および前記一人以上のユーザによって前記システムにエンロールされることができる前記デバイスの最大数に関連する情報のうちの1つ以上を指定する、請求項1〜7のいずれか1項に記載の方法。
前記第1のエンロールメントルールセットおよび前記第2のエンロールメントルールセットは、前記複数の電子デバイスを前記システムにエンロールするために適用される特定の認証機構に関連する情報を指定する、請求項1〜8のいずれか1項に記載の方法。
前記第1のエンロールメントルールセットおよび前記第2のエンロールメントルールセットは、前記複数の電子デバイスのジオロケーションに関連する情報を指定する、請求項1〜9のいずれか1項に記載の方法。
前記1つ以上の電子デバイスは、ヘッドレスデバイスを備え、前記ヘッドレスデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーIP(VoIP)電話を含む、請求項12または13に記載のシステム。
【発明を実施するための形態】
【0037】
発明の詳細な説明
以下の記載では、説明を目的として、本発明の実施例が完全に理解されるように具体的な詳細が記載されている。しかし、これらの具体的な詳細がなくてもさまざまな実施例は実施可能であるということは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。
【0038】
本発明の特定の実施例では、通信ネットワーク内の異種の電子デバイスの認証およびエンロールメントを制御するデバイスエンロールメントシステムが開示される。いくつかの例では、デバイスエンロールメントシステムは、デバイスエンロールメントサービスを企業に提供するための企業内のサブシステムとして実現されてもよい。他の例では、デバイスエンロールメントシステムは、デバイスエンロールメントサービスを企業に提供することができるそれ自体スタンドアロンのサービスとして実現されてもよい。
【0039】
いくつかの実施例では、デバイスエンロールメントシステムは、通信ネットワーク内の特定のデバイスを検出し、デバイスのタイプに基づいてデバイスに適用されるべきエンロールメントポリシーのタイプを特定し、エンロールメントポリシーに従って一組のルールをデバイスに適用し、ルールによって指定された1つ以上の基準がデバイスによって満たされる場合にデバイスをエンロールするよう構成されてもよい。いくつかの例では、デバイスは、ユーザに関連付けられるデバイスであってもよい。例えば、デバイスは、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、携帯電話、タブレットなどを含んでもよい。他の例では、デバイスは、いかなるユーザにも関連付けられないヘッドレスデバイスであってもよい。例えば、ヘッドレスデバイスは、ゲートウェイデバイス、温度センサ、酸素センサ、心電図記録(Electrocardiography:EKG)センサ、カメラまたは医療用検知機器を含んでもよい。ヘッドレスデバイスは、例えば、サーモスタット、セキュリティシステム、煙探知器、冷蔵庫、食洗機、洗濯機、乾燥器、自動湯沸かし器、エアコン、集中型暖房炉またはオーブンレンジも含んでもよい。いくつかの例では、ヘッドレスデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーIP(VoIP)電話を含んでもよい。いくつかの実施例では、ヘッドレスデバイスは、グラフィカルユーザインターフェイスが無いデバイスであってもよい。
【0040】
少なくともいくつかの実施例によれば、デバイスエンロールメントシステムは、固定されたゲートウェイデバイスを介した信頼できる接続によって通信ネットワーク内の一組の1つ以上のデバイスに接続されてもよい。いくつかの局面では、ゲートウェイデバイスは、デバイスエンロールメントシステムに登録および/またはエンロールされたデバイスであってもよい。
【0041】
いくつかの例では、一組の1つ以上のデバイスは、サーモスタット、セキュリティシステム、煙探知器、冷蔵庫、食洗機、洗濯機、乾燥器、自動湯沸かし器、エアコン、集中型暖房炉またはオーブンレンジなどの、家庭のローカルエリアネットワーク(local area network:LAN)内のデバイスを含んでもよい。一組の1つ以上のデバイスは、温度センサ、酸素センサ、心電図記録(EKG)センサ、カメラまたは医療用検知機器などの、病院のLAN内のデバイスを含んでもよい。一組の1つ以上のデバイスは、いくつかの例では、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーIP(VoIP)電話などの、会社のLAN内のデバイスであってもよい。
【0042】
いくつかの局面では、ゲートウェイデバイスは、一組の1つ以上のデバイスにおける特定のデバイスを検出し、デバイスエンロールメントシステムのためにデバイスのエンロールメントを起動するよう構成されてもよい。いくつかの実施例では、デバイスエンロールメントシステムは、ゲートウェイデバイスからエンロールメント要求を受信し、デバイスの認証およびエンロールメントを実行するよう構成されてもよい。
【0043】
図1は、本発明の特定の実施例に係るコンピューティング環境100の簡略ハイレベル図を示す。示されているように、コンピューティング環境100は、1つ以上のリモートユーザデバイス102(1)〜102(N)(集合的にユーザデバイス102)と、通信ネットワーク106を介してデバイスエンロールメントシステム108に通信可能に結合された1つ以上のリモートヘッドレスデバイス104(1)〜104(N)(集合的にヘッドレスデバイス104)とを含む。いくつかの実施例では、デバイスエンロールメントシステム108は、通信ネットワーク106内のデバイス102,104の認証およびエンロールメントを企業のために管理してもよい。上記のように、いくつかの例では、デバイスエンロールメントシステム108は、企業内のサブシステムとして実現されてもよい。他の例では、デバイスエンロールメントシステム108は、デバイスエンロールメントサービスを企業に提供するそれ自体スタンドアロンのサービスとしても実現されてもよい。デバイスエンロールメントシステム108は、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、1つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および/もしくは組み合わせとして実現されてもよい。
【0044】
いくつかの例では、ユーザデバイス102は、ユーザ(例えばユーザ_1...ユーザ_M)に関連付けられる1つ以上の電子デバイスを含んでもよい。例えば、ユーザデバイス102は、さまざまなタイプのものであってもよく、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、携帯電話、タブレットなどを含むが、それらに限定されるものではない。ユーザデバイスは、別のデバイス上で実行されるワークスペースなどのエンドポイントデバイスも含んでもよい。ワークスペースは、ワークスペースを実行するデバイス上の企業データおよびアプリケーションへのアクセスを提供するための制御された環境であってもよい。例えば、セキュリティ上安全なコンテナアプリケーションがユーザデバイス102上で実行されてもよい。ユーザデバイス102は、企業によって発行されるデバイス(例えば会社のデバイス)またはユーザのパーソナルデバイス(例えば「自分自身のデバイスの持ち込み(bring your own device:BYOD)」)も含んでもよいが、それらに限定されるものではない。
【0045】
いくつかの例では、ヘッドレスデバイス104は、いかなるユーザにも関連付けられない電子デバイスを含んでもよい。特定の例では、ヘッドレスデバイス104は、通信ネットワーク106を介してデバイスエンロールメントシステム108に接続するローカルエリアネットワーク(LAN)内の一組の1つ以上のデバイスを含んでもよい。例えば、ヘッドレスデバイス104は、家庭のローカルエリアネットワーク(LAN)内の一組の1つ以上のデバイスを含んでもよい。これらのデバイスは、サーモスタット、セキュリティシステム、煙探知器、冷蔵庫、食洗機、洗濯機、乾燥器、自動湯沸かし器、エアコン、集中型暖房炉またはオーブンレンジを含んでもよいが、それらに限定されるものではない。ヘッドレスデバイス104は、病院のLAN内の一組の1つ以上のデバイスを含んでもよい。これらのデバイスは、温度センサ、酸素センサ、心電図記録(EKG)センサ、カメラまたは医療用検知機器を含んでもよいが、それらに限定されるものではない。ヘッドレスデバイス104は、会社のLAN内の一組の1つ以上のデバイスも含んでもよい。これらのデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーIP(VoIP)電話を含んでもよいが、それらに限定されるものではない。
【0046】
通信ネットワーク106は、デバイス102,104とデバイスエンロールメントシステム108との間の通信を容易にする。通信ネットワーク106は、さまざまなタイプのものであり得て、1つ以上の通信ネットワークを含み得る。例えば、通信ネットワーク106は、インターネット、ワイドエリアネットワーク(wide area network:WAN)、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)ネットワーク、パブリックまたはプライベートネットワーク、有線ネットワーク、無線ネットワークなど、およびそれらの組み合わせを含み得るが、それらに限定されるものではない。単一のTCP接続、IEEE802.XXプロトコル一式、TCP/IP、IPX、SAN、AppleTalk、Bluetooth(登録商標)および他のプロトコルを介して全二重通信チャネルを提供するウェブソケットなどの有線プロトコルおよび無線プロトコルを両方とも含む通信を容易にするために、さまざまな通信プロトコルが使用されてもよい。一般に、通信ネットワーク106は、ユーザデバイス102とヘッドレスデバイス104とデバイスエンロールメントシステム108との間の通信を容易にする任意の通信ネットワークまたはインフラストラクチャを含んでもよい。
【0047】
いくつかの実施例では、デバイスエンロールメントシステム108は、ユーザデバイス102およびヘッドレスデバイス104の認証およびエンロールメントを実行するよう構成されてもよい。いくつかの例では、デバイスエンロールメントシステム108は、通信ネットワーク106内のデバイス102,104を最初に検出するよう構成されてもよい。デバイスエンロールメントシステム108がデバイス102,104を検出することができる方法はさまざまである。例えば、デバイスエンロールメントシステム108は、デバイス102,104を一意に特定するデバイス識別子に基づいて当該デバイスを特定するよう構成されてもよい。例えば、デバイス識別子は、MAC(メディアアクセス制御)アドレス、固有デバイス識別子(unique device identifier:UDID)、または他のデバイス識別子を含んでもよい。そして、デバイスエンロールメントシステム108は、デバイス102,104が通信ネットワーク106に接続したときにデバイス識別子に基づいて当該デバイスを検出するよう構成されてもよい。デバイス102,104を検出するために他の技術もデバイスエンロールメントシステム108によって使用されてもよい。例えば、デバイスエンロールメントシステム108は、デバイス102,104のジオロケーションまたは当該デバイスに関連付けられる他の情報に基づいてデバイス102,104を検出するよう構成されてもよい。
【0048】
上記のようにデバイス102,104を検出すると、いくつかの実施例では、デバイスエンロールメントシステム108は、デバイス102,104を認証するよう構成されてもよい。デバイスエンロールメントシステム108が特定のデバイス102または104を認証することができる方法はさまざまである。例えば、デバイスエンロールメントシステム108は、特定の認証機構を利用して、ユーザに関連付けられるデバイス(例えばユーザデバイス102)を認証し、異なる認証機構を利用して、いかなるユーザにも関連付けられないデバイス(例えばヘッドレスデバイス104)を認証してもよい。デバイスエンロールメントシステム108がユーザデバイス102およびヘッドレスデバイス104を認証することができる態様については、それぞれ
図2および
図3との関連で詳細に説明する。
【0049】
デバイス102,104を成功裏に認証すると、いくつかの実施例では、デバイスエンロールメントシステム108は、デバイス102,104に適用されるべきエンロールメントポリシーのタイプを決定して当該デバイスをエンロールするよう構成されてもよい。実施例では、デバイスエンロールメントシステム108は、最初に特定のデバイス102または104のタイプを決定することによってエンロールメントポリシーのタイプを決定してもよい。例えば、特定のデバイスがユーザデバイス102であるとデバイスエンロールメントシステム108が判断すると、デバイスエンロールメントシステム108は、当該デバイスのための第1のエンロールメントポリシーを特定してもよい。そして、デバイスエンロールメントシステム108は、第1のエンロールメントポリシーに従って第1のエンロールメントルールセットをユーザデバイスに適用し、第1のエンロールメントポリシーに基づいてユーザデバイスをエンロールするよう構成されてもよい。特定の実施例では、デバイスエンロールメントシステム108は、特定のデバイスがヘッドレスデバイス104であると判断してもよい。この場合、デバイスエンロールメントシステム108は、当該ヘッドレスデバイスのための異なるエンロールメントポリシーを特定してもよい。そして、デバイスエンロールメントシステム108は、エンロールメントポリシーに従って第2のエンロールメントルールセットをヘッドレスデバイス104に適用し、エンロールメントポリシーに基づいてヘッドレスデバイスをエンロールするよう構成されてもよい。いくつかの例では、ユーザデバイスをエンロールするためにデバイスエンロールメントシステム108によって使用されるエンロールメントポリシーは、ヘッドレスデバイスをエンロールするためにデバイスエンロールメントシステムによって使用されるエンロールメントポリシーとは異なっていてもよい。デバイスエンロールメントシステムがユーザデバイスまたはヘッドレスデバイスをエンロールすることができる態様については、
図2〜
図4との関連で詳細に説明する。一旦成功裏にエンロールされると、リモートデバイス102,104は、デバイスエンロールメントシステム108と通信して、デバイスエンロールメントシステムに接続されたターゲットシステム(例えば企業)のリソースへのアクセスを取得してもよい。
【0050】
図2は、本発明の実施例に係るデバイスエンロールメントシステムの環境200の簡略ハイレベル図を示す。デバイスエンロールメントシステム210は、
図1で説明したデバイスエンロールメントシステム104と同一または類似のものであってもよい。
図2に示される実施例では、デバイスエンロールメントシステム210は、デバイス認証エンジン212と、デバイスエンロールメントポリシー特定エンジン214と、デバイスエンロールメントエンジン216とを含む。デバイス認証エンジン212、デバイスエンロールメントポリシー特定エンジン214およびデバイスエンロールメントエンジン216は、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、1つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および/もしくは組み合わせとして実現されてもよい。
図2に示されるデバイスエンロールメントシステム210のさまざまなコンポーネントは、単に例示の目的で示されており、本発明の実施例の範囲を限定するよう意図されるものではない。代替的な実施例は、
図2に示されるものよりも多くのコンポーネントもしくは少ないコンポーネントおよび/または多くのデバイスもしくは少ないデバイスを含んでもよい。
【0051】
図2に示される実施例は、デバイスエンロールメントシステム210が、ユーザに関連付けられるデバイスの認証およびエンロールメントを実行することができる態様を示している。例えば、上記のように、ユーザデバイスは、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、携帯電話、タブレットなど、または人間のユーザに関連付けられるその他のタイプのデバイスを含んでもよい。
【0052】
示されているように、コンピューティング環境200は、通信ネットワーク208を介してデバイスエンロールメントシステム210に通信可能に結合されるユーザデバイス202を含む。通信ネットワーク208は、
図1における通信ネットワーク106と同一または類似のものであってもよい。いくつかの実施例では、デバイスエンロールメントシステム210は、最初に、通信ネットワーク208に接続されたユーザデバイス202を検出するよう構成されてもよい。デバイスエンロールメントシステム210がデバイスを検出することができる態様については、
図1との関連で説明する。
【0053】
そして、デバイス認証エンジン212は、ユーザデバイス202を認証するよう構成されてもよい。いくつかの例では、デバイス認証エンジン212は、最初に、ユーザ/デバイス情報データベース220に記憶されたユーザについての情報に基づいて、ユーザデバイス202に関連付けられるユーザが登録されたユーザであるか否かを判断してもよい。いくつかの例では、ユーザ/デバイス情報データベース220は、ユーザおよびユーザに関連付けられるデバイスについての情報を記憶してもよく、当該情報は、リモートデバイス上のオペレーティングシステムのタイプ、オペレーティングシステムのバージョン、リモートデバイスが別のデバイスで運営管理される場合にはホスト識別子、デバイスタイプ、IMEI(国際移動体装置識別(International Mobile Equipment Identity))番号、リモートデバイスのモデル、リモートデバイスのサービスプロバイダ(例えばキャリア)、デバイス名、デバイス状態、またはリモートデバイスについての他の情報を含む。
【0054】
いくつかの例では、デバイス認証エンジン212は、エンロールメント要求をユーザデバイス202に送信することによってユーザデバイス202を認証してもよい。次いで、デバイス認証エンジン212は、ユーザデバイス202でのエンロールメント要求とのユーザの対話の結果として、ユーザデバイス202を認証してもよい。デバイス認証エンジン212がエンロールメント要求をユーザデバイス202に送信することができる方法はさまざまである。例えば、デバイスエンロールメントシステム210の管理者がエンロールメント要求を起動し、当該管理者は、エンロールメント要求を電子メールメッセージでデバイス202に送信してもよい。別の例として、デバイス認証エンジン212は、エンロールメント要求をユーザデバイス202のエンロールメントアプリケーション206に自動的に送信してもよく、ユーザデバイス202のユーザは、エンロールメントアプリケーションにログインしてエンロールメント要求を閲覧してもよい。
【0055】
いくつかの実施例では、デバイス認証エンジン212は、ユーザデバイス202の認証に使用されるべき特定の認証機構を指定してもよい。例えば、デバイス認証エンジン212は、ユーザデバイス202を認証するためにユーザ資格情報の形式の認証情報がユーザデバイス202のユーザによって指定されなければならないことをエンロールメント要求において指定してもよい。他の例では、デバイス認証エンジン212は、エンロールメント要求においてワンタイムパスワードをユーザデバイス202のユーザに割り当ててもよい。次いで、ユーザは、当該ワンタイムパスワードを使用して、デバイスエンロールメントシステムからデジタル証明書を取得してもよく、デバイス認証エンジン212は、当該証明書を使用してユーザデバイス202を認証してもよい。
【0056】
いくつかの例では、ユーザデバイス202に関連付けられるユーザは、ユーザデバイス202のブラウザアプリケーション204を介してデバイスエンロールメントシステムから受信されたエンロールメント要求を閲覧してもよい。例えば、ユーザは、ブラウザアプリケーションを介して電子メールメッセージでエンロールメント要求を閲覧してもよい。または、例えば、ユーザは、ユーザデバイス202のエンロールメントアプリケーション206を用いてエンロールメント要求を閲覧してもよい。いくつかの例では、エンロールメント要求は、エンロールメント要求と対話するためにユーザが選択し得るエンロールメントユニフォームリソースロケータ(Uniform Resource Locator:URL)などのエンロールメントリンクを指定してもよい。次いで、ユーザは、エンロールメントリンクを選択して、ユーザおよび/またはユーザデバイス202を特定するユーザ資格情報(例えばユーザ名およびパスワード)などの認証情報を提供してもよい。次いで、ユーザデバイス202は、ユーザ資格情報をデバイスエンロールメントシステム210に送信してもよい。次いで、デバイス認証エンジン212は、ユーザデバイス210からユーザ資格情報を受信し、ユーザ資格情報に基づいてユーザデバイス210を認証するよう構成されてもよい。
【0057】
ユーザデバイス202を成功裏に認証すると、デバイスエンロールメントシステム210は、ユーザデバイス202をエンロールするよう構成されてもよい。いくつかの実施例では、デバイスエンロールメントポリシー特定エンジン214は、最初に、ユーザデバイスに関連付けられるエンロールメントポリシーを特定するよう構成されてもよい。いくつかの例では、デバイス(例えばユーザデバイス202)のためのエンロールメントポリシーは、デバイスのタイプに基づいて特定されてもよい。例えば、デバイスエンロールメントポリシー特定エンジン214は、ユーザデバイス202のための第1のエンロールメントポリシーを特定するよう構成されてもよい。他の例では、
図3との関連で詳細に説明するように、デバイスエンロールメントポリシー特定エンジン214は、いかなるユーザにも関連付けられないヘッドレスデバイスのための異なるエンロールメントポリシーを特定するよう構成されてもよい。
【0058】
デバイスのためのエンロールメントポリシーが特定されると、デバイスエンロールメントエンジン216は、エンロールメントポリシーに従って一組のルールをユーザデバイス202に適用してもよい。当該ルールは、ユーザデバイス202をデバイスエンロールメントシステムにエンロールするためにユーザデバイス202が満たさなければならないさらなる基準を指定してもよい。いくつかの例では、ユーザデバイス202のエンロールに関連付けられるルールは、ヘッドレスデバイスのエンロールに関連付けられるルールとは異なっていてもよい。
【0059】
いくつかの実施例では、当該ルールは、ポリシールールデータベース218に記憶されてもよい。当該ルールは、例えば、デバイスエンロールメントシステムにエンロール可能なユーザのタイプ、当該システムによってエンロール可能なデバイスのタイプ、エンロール可能なデバイスの許可されるオペレーティングシステムプラットフォーム(アンドロイド(登録商標)、iOS(登録商標)、ウインドウズ(登録商標))、デバイスに関連付けられるオペレーティングシステムの許可されるバージョン(例えば最小、最大)、特定のユーザが当該システムにエンロールすることができるデバイスの最大数などを指定してもよい。特定の例では、当該ルールは、デバイスの認証に使用される特定の認証技術、特定のユーザ群および/またはユーザに使用される認証のタイプなども指定してもよい。例えば、デバイスエンロールメントシステム208は、企業内の販売グループに属するユーザを企業内の他のユーザに対して認証するために、より強力な認証技術を適用してもよい。
【0060】
いくつかの例では、当該ルールは、デバイスのジオロケーションに関連する情報を指定してもよい。ジオロケーション情報は、例えば、デバイスの物理的位置、デバイスの地理的位置(例えば緯度、経度)などを含んでもよい。
【0061】
いくつかの例では、エンロールメントルールは、デバイスのために許可され得るさまざまなタイプのエンロールメントも指定してもよい。例えば、エンロールメントルールは、デバイスにインストールされたセキュアワークスペースアプリケーションがデバイスエンロールメントシステムに登録する場合にユーザのパーソナルデバイスのための(例えば(BYOD)のための)MAMベースのエンロールメントを指定してもよい。企業アプリケーションのカタログは、デバイスに関連付けられるユーザのためにポリシーによって何が許可されるかに基づいて、デバイスが利用できる状態にされてもよい。他の例では、エンロールメントルールは、会社所有のデバイスのためにMDMおよびMAMベースのエンロールメントを指定してもよい。なぜなら、会社は、一般に、デバイス上のセキュアワークスペースを制御することよりもデバイスを制御することを望む場合があるからである。特定の例では、エンロールメントルールは、デバイスの最初のエンロールメントおよびその後のデバイスエンロールメントシステムとのデバイスの通信のために証明書ベースの認証スキームを指定してもよく、またはデジタル証明書をデバイスに発行する認証局(Certificate Authority:CA)などのエンティティを選択することを許可してもよい。
【0062】
図2に示される実施例では、例えば、デバイスのためのエンロールメントポリシーによって規定された一組のルールをユーザデバイス202が満たす場合に、デバイスエンロールメントエンジン216は、ユーザデバイス202をエンロールしてもよい。例えば、デバイスエンロールメントエンジン216は、ユーザデバイスのために特定されたエンロールメントポリシーに従って一組のルールをユーザデバイス202に適用して、特定のタイプのエンロールメントがデバイスのユーザに許可されるか否かを判断し、登録することをユーザが許可されるデバイスの数が閾値限界の範囲内であるか否かを判断し、デバイスのタイプおよびデバイスのオペレーティングシステムバージョンが、デバイスのために特定されたエンロールメントポリシーに従っているか否かを判断する、などしてもよい。
【0063】
ユーザデバイス202をエンロールするためのルールによって指定されたさらなる基準をユーザデバイス202が満たすとデバイスエンロールメントエンジン216が判断すると、デバイスエンロールメントエンジン216は、デバイス202をデバイスエンロールメントシステムにエンロールしてもよい。いくつかの例では、デバイスエンロールメントエンジン216は、ユーザデバイス202のためにデジタル証明書を生成し、当該デジタル証明書をユーザデバイス202に送信してもよい。ユーザデバイス202は、署名した証明書をデバイスエンロールメントエンジン216に提供してもよい。次いで、デバイスエンロールメントエンジン216は、署名したデジタル証明書を用いてユーザデバイス202を登録および/またはエンロールしてもよい。
【0064】
図2に示される実施例では、デバイスエンロールメントシステム218によってユーザに関連付けられるデバイス(例えばユーザデバイス202)を認証およびエンロールするためのプロセスについて説明した。代替的な実施例では、
図3および
図4に示されるように、デバイスエンロールメントシステム218は、いかなるユーザにも関連付けられないリモートヘッドレスデバイスを認証およびエンロールするよう構成されてもよい。
【0065】
図3は、本発明の一実施例に係る、デバイスエンロールメントシステムが、いかなるユーザにも関連付けられないヘッドレスデバイスを認証およびエンロールする態様を示す環境300の簡略ハイレベル図を示す。示されているように、コンピューティング環境300は、通信ネットワーク208を介してデバイスエンロールメントシステム210に通信可能に結合された1つ以上のリモートヘッドレスデバイス302(1)〜302(N)(集合的にヘッドレスデバイス302)を含む。上記のように、ヘッドレスデバイス302は、ゲートウェイデバイス、温度センサ、酸素センサ、心電図記録(EKG)センサ、カメラまたは医療用検知機器を含んでもよい。ヘッドレスデバイス302は、例えば、サーモスタット、セキュリティシステム、煙探知器、冷蔵庫、食洗機、洗濯機、乾燥器、自動湯沸かし器、エアコン、集中型暖房炉またはオーブンレンジも含んでもよい。いくつかの例では、ヘッドレスデバイス302は、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーIP(VoIP)電話を含んでもよい。また上記したように、いくつかの実施例では、ヘッドレスデバイス302は、家庭のLAN、病院のLANまたは会社のLAN内の一組の1つ以上のデバイスを含んでもよい。
【0066】
デバイスエンロールメントシステム210は、
図2との関連で説明したデバイスエンロールメントシステムと同一または類似のものであってもよい。例えば、デバイスエンロールメントシステム210は、デバイス認証エンジン212と、デバイスエンロールメントポリシー特定エンジン214と、デバイスエンロールメントエンジン216とを含んでもよい。いくつかの例では、デバイス認証エンジン212、デバイスエンロールメントポリシー特定エンジン214およびデバイスエンロールメントエンジン216は、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、1つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および/もしくは組み合わせとして実現されてもよい。
【0067】
いくつかの実施例では、デバイスエンロールメントシステム210は、最初に、通信ネットワーク208に接続されたヘッドレスデバイス302を検出するよう構成されてもよい。通信ネットワーク208は、
図1で説明した通信ネットワーク106と同一または類似のものであってもよい。そして、デバイス認証エンジン212は、ヘッドレスデバイス302を認証するよう構成されてもよい。いくつかの例では、デバイス認証エンジン212は、最初にヘッドレスデバイス302を事前登録することによってヘッドレスデバイス302を認証してもよい。ヘッドレスデバイス302を事前登録することは、例えば、ヘッドレスデバイス302に関連付けられる識別子に基づいてヘッドレスデバイス302を特定することを含んでもよい。例えば、ヘッドレスデバイス302のための識別子は、ユーザ/デバイス情報データベース220に記憶されてもよい。当該識別子は、MAC(メディアアクセス制御)アドレス、固有デバイス識別子(UDID)、またはヘッドレスデバイス302に関連付けられる他のデバイス識別子であってもよい。
【0068】
いくつかの実施例では、デバイス認証エンジン212は、共有鍵および当該識別子をヘッドレスデバイス302に送信することによってヘッドレスデバイス302を認証してもよい。当該共有鍵は、例えば、ヘッドレスデバイス302との安全な通信のためにデバイス認証エンジン212によって使用され得る事前共有鍵またはパスワードを含んでもよい。ヘッドレスデバイス302は、当該共有鍵および識別子を受信し、当該共有鍵で当該識別子を暗号化し、暗号化された識別子をデバイス認証エンジン212に送信してもよい。デバイス認証エンジン212は、ヘッドレスデバイス302から暗号化された識別子を受信し、当該識別子を復号化し、復号化された識別子がヘッドレスデバイス302に関連付けられる元の識別子と一致するか否かを判断してもよい。一致が見つけられると、いくつかの実施例では、デバイス認証エンジン212は、ヘッドレスデバイス302を認証してもよい。
【0069】
ヘッドレスデバイス302を成功裏に認証すると、デバイスエンロールメントシステム210は、ヘッドレスデバイス302のエンロールメントに進んでもよい。いくつかの実施例では、デバイスエンロールメントポリシー特定エンジン214は、ヘッドレスデバイス302に関連付けられるエンロールメントポリシーを特定するよう構成されてもよい。ヘッドレスデバイス302のためのエンロールメントポリシーが特定されると、デバイスエンロールメントエンジン216は、エンロールメントポリシーに従って、ユーザ/デバイス情報データベース220に記憶された一組のルールをヘッドレスデバイス302に適用してもよい。上記のように、当該ルールは、ヘッドレスデバイス302をデバイスエンロールメントシステムにエンロールするためにヘッドレスデバイス302が満たさなければならないさらなる基準を指定してもよい。
【0070】
例えば、デバイスエンロールメントエンジン216によってヘッドレスデバイス302に適用される一組のルールは、ヘッドレスデバイス302のジオロケーションがデバイスエンロールメントシステムからの予め定められた距離の範囲内であるか否かを判断すること、特定のタイプのエンロールメントがヘッドレスデバイス302のために許可されるか否かを判断すること、ヘッドレスデバイス302のタイプおよびヘッドレスデバイス302のオペレーティングシステムバージョンが、ヘッドレスデバイス302のために特定されたエンロールメントポリシーに従っているか否かを判断すること、などを含んでもよい。
【0071】
ルールによって指定されたさらなる基準をヘッドレスデバイス302が満たすとデバイスエンロールメントエンジン216が判断すると、デバイスエンロールメントエンジン216は、ヘッドレスデバイス302をエンロールしてもよい。いくつかの例では、デバイスエンロールメントエンジン216は、証明書エンロールメントペイロードをヘッドレスデバイス302に送信してもよい。当該ペイロードは、デバイスエンロールメントシステムを特定する情報および共有鍵を含んでもよい。ペイロードを受信すると、ヘッドレスデバイス302は、証明書署名要求(certificate signing request:CSR)をデバイスエンロールメントシステムに送信してもよい。CSRは、認証局(CA)がデジタル証明書を発行する目的でCAが必要とする情報を有効化するためにヘッドレスデバイス302がデバイスエンロールメントシステムのCAに送信し得るフォーマット済みの暗号化されたメッセージであってもよい。CSRにおける共有鍵が一致する場合、デバイスエンロールメントシステムは、CAによってCSRを処理し、署名した証明書をヘッドレスデバイス302に提供してプロビジョニングしてもよい。次いで、ヘッドレスデバイス302は、秘密鍵で署名されたデバイスフィンガープリントをデバイスエンロールメントシステムに送信してもよい。デバイスエンロールメントシステムは、当該デバイスフィンガープリントを処理し、フィンガープリントからの識別子が署名した証明書と一致するか否かを判断してもよい。一致があるとデバイスエンロールメントシステムが判断すると、デバイスエンロールメントシステムは、ヘッドレスデバイス302をエンロールしてもよい。
【0072】
図2および
図3に示される実施例では、通信ネットワーク208を介してデバイスエンロールメントシステム210に直接接続されたデバイス(例えばユーザデバイスおよびヘッドレスデバイス)を示した。
図4に示される代替的な実施例では、デバイス(例えばユーザデバイスおよびヘッドレスデバイス)は、固定されたゲートウェイデバイスを介した信頼できる接続によって通信ネットワーク208に接続されてもよい。いくつかの実施例では、ゲートウェイデバイスは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、1つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および/もしくは組み合わせとして実現されてもよい。特定の実施例では、ゲートウェイデバイスは、デバイスエンロールメントシステムに登録および/またはエンロールされたデバイスであってもよい。ゲートウェイデバイスは、通信ネットワーク内の新たなデバイスを検出し、デバイスエンロールメントシステムへのデバイスのエンロールメントを起動するよう構成されてもよい。いくつかの実施例では、デバイスエンロールメントシステムは、ゲートウェイデバイスからエンロールメント要求を受信し、デバイスの認証およびエンロールメントを実行するよう構成されてもよい。デバイスエンロールメントシステムがゲートウェイデバイスに接続されたデバイスのエンロールメントおよび認証を実行することができる態様については、
図4との関連で詳細に説明する。
【0073】
図4は、本発明の一実施例に係る、デバイスエンロールメントシステムが、固定されたゲートウェイデバイスを介して接続されたデバイスを認証およびエンロールする態様を示す環境400の簡略ハイレベル図を示す。示されているように、コンピューティング環境400は、通信ネットワーク408を介してデバイスエンロールメントシステム210に通信可能に結合された1つ以上のユーザデバイス402−1および402−2(集合的にユーザデバイス402)を含む。コンピューティング環境400は、固定されたゲートウェイデバイス406を介してデバイスエンロールメントシステム210に通信可能に結合された1つ以上のヘッドレスデバイス404−1および404−2(集合的にヘッドレスデバイス404)も含む。2つのユーザデバイスおよび2つのヘッドレスデバイスを有する例示的なシステム環境400が示されているが、他の実施例では任意の数のデバイスがサポートされてもよい。ユーザデバイス402は、
図1および
図2との関連で説明したユーザデバイスと同一または類似のものであってもよい。同様に、ヘッドレスデバイス404は、
図1および
図3との関連で説明したヘッドレスデバイスと同一または類似のものであってもよい。通信ネットワーク408は、
図1〜
図3との関連で説明した通信ネットワークと同一または類似のものであってもよい。
【0074】
いくつかの実施例では、デバイスエンロールメントシステム210は、ユーザデバイス402およびヘッドレスデバイス404の認証およびエンロールメントを管理してもよい。デバイスエンロールメントシステム210は、
図2および
図3との関連で説明したデバイスエンロールメントシステムと同一または類似のものであってもよい。例えば、デバイスエンロールメントシステム210は、デバイス認証エンジン212と、デバイスエンロールメントポリシー特定エンジン214と、デバイスエンロールメントエンジン216とを含んでもよい。いくつかの例では、デバイス認証エンジン212、デバイスエンロールメントポリシー特定エンジン214およびデバイスエンロールメントエンジン216は、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、1つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および/もしくは組み合わせとして実現されてもよい。
【0075】
図4に示される実施例では、ユーザデバイス402は、通信ネットワーク408を介してデバイスエンロールメントシステム210に直接接続されるように示されている。これらのデバイスは、
図2において説明したものと同様の態様でデバイスエンロールメントシステム210によって認証およびエンロールされてもよい。ヘッドレスデバイス404は、固定されたゲートウェイデバイス406を介してデバイスエンロールメントシステム210に接続されるように示されている。
図4に示される実施例は、ゲートウェイデバイス406に接続されたヘッドレスデバイス404を示しているが、他の実施例では、ユーザデバイス402もゲートウェイデバイス406に接続されてもよく、ゲートウェイデバイス406は、ユーザデバイス(例えば402−1または402−2)を検出し、デバイスエンロールメントシステム210へのユーザデバイス402のエンロールメントを起動するよう構成されてもよい。
【0076】
いくつかの実施例では、ゲートウェイデバイス406は、ヘッドレスデバイス(例えば404−1または404−2)を検出し、デバイスエンロールメントシステム210へのヘッドレスデバイス404のエンロールメントを起動するよう構成されてもよい。例えば、ゲートウェイデバイス406は、デバイスを一意に特定するデバイス識別子に基づいてヘッドレスデバイス404を特定するよう構成されてもよい。上記のように、デバイス識別子は、MAC(メディアアクセス制御)アドレス、ユニークデバイス識別子(UDID)、または他のデバイス識別子を含んでもよい。次いで、ゲートウェイデバイス406は、ヘッドレスデバイス404がゲートウェイデバイス406に接続したときにデバイス識別子に基づいてヘッドレスデバイス404を検出するよう構成されてもよい。
【0077】
ヘッドレスデバイス404を検出すると、ゲートウェイデバイス406は、エンロールメント要求をデバイスエンロールメントシステム210に送信するよう構成されてもよい。いくつかの例では、エンロールメント要求は、ヘッドレスデバイス404に関連付けられるフィンガープリント情報およびゲートウェイデバイス406を特定するゲートウェイ証明書を含んでもよい。フィンガープリント情報は、例えば、デバイスのための識別子またはゲートウェイデバイス406によって生成されるデバイスのための識別子を含んでもよい。
【0078】
いくつかの実施例では、デバイス認証エンジン212は、ヘッドレスデバイス404に関連付けられるフィンガープリント情報を備えるデジタル証明書をゲートウェイデバイスから受信し、当該デジタル証明書を検証し、デジタル証明書がヘッドレスデバイス404に関連付けられる識別子と一致する場合にヘッドレスデバイス404を認証することによって、ヘッドレスデバイス404の認証を実行してもよい。
【0079】
デバイスエンロールメントポリシー特定エンジン214は、ヘッドレスデバイス404のためのエンロールメントポリシーを特定するよう構成されてもよい。そして、デバイスエンロールメントポリシー特定エンジン214は、ヘッドレスデバイス404に関連付けられるエンロールメントポリシーがゲートウェイデバイス406によって許可されるか否か、および、ヘッドレスデバイスがデバイスエンロールメントシステムに事前登録されたデバイスであるか否かを判断するよう構成されてもよい。ヘッドレスデバイスに関連付けられるエンロールメントポリシーがゲートウェイデバイスによって許可される場合、および、ヘッドレスデバイスがデバイスエンロールメントシステムに事前登録されたデバイスである場合、いくつかの実施例では、デバイスエンロールメントエンジン216は、ヘッドレスデバイス406をエンロールするよう構成されてもよい。そして、デバイスエンロールメントエンジン216は、フィンガープリント情報から決定されるヘッドレスデバイス406のタイプが、デバイスの事前登録中に記録されたデバイスのタイプと一致するか否かを検証するよう構成されてもよい。デバイスタイプが一致する場合、いくつかの実施例では、デバイスエンロールメントエンジン216は、デバイスエンロールメントシステムへのヘッドレスデバイス404の登録および/またはエンロールに進んでもよい。
【0080】
ヘッドレスデバイスがデバイスエンロールメントシステムに事前登録されたデバイスでない場合、特定の実施例では、デバイスエンロールメントエンジン216は、ゲートウェイデバイス406に関連付けられるエンロールメントポリシーを評価して、デバイスエンロールメントシステムにエンロールされることをゲートウェイデバイス406によって許可されるデバイスの数およびタイプを決定するように構成されてもよい。いくつかの例では、デバイスエンロールメントエンジン216は、ポリシールールデータベース218に記憶されたルールに基づいて、ゲートウェイデバイス406に関連付けられるエンロールメントポリシーを評価してもよい。これらのルールは、例えば、ゲートウェイデバイスに関連付けられるデバイスグループ、ゲートウェイデバイスの物理的位置、ゲートウェイデバイスの消費者のライセンスタイプなどを決定することを含んでもよい。ルールが満たされる場合、デバイスエンロールメントエンジン216は、デバイスのためのゲートウェイ生成登録識別子を受入れて、ヘッドレスデバイス404をデバイスエンロールメントシステムにエンロールしてもよい。
【0081】
図5〜
図7は、本発明の特定の実施例に従ってデバイスエンロールメントサービスを提供するそれぞれのプロセス500,600および700を示す例示的なフロー図を示す。これらのプロセスは、論理フロー図として示されており、その各オペレーションは、ハードウェア、コンピュータ命令またはそれらの組み合わせで実現され得る。コンピュータ命令の文脈では、オペレーションは、1つ以上のプロセッサによって実行されたときに記載されているオペレーションを実行する、1つ以上のコンピュータ読取可能な記憶媒体に記憶されたコンピュータによって実行可能な命令を表わしてもよい。一般に、コンピュータによって実行可能な命令は、特定の機能を実行するかまたは特定のデータタイプを実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。オペレーションが記載されている順序は、限定として解釈されるよう意図されるものではなく、任意の数の記載されているオペレーションを任意の順序でおよび/または並列に組み合わせてプロセスを実現してもよい。
【0082】
また、プロセスのうちのいくつか、いずれかまたは全ては、実行可能な命令で構成された1つ以上のコンピュータシステムの制御下で実行されてもよく、1つ以上のプロセッサ上で集合的に実行されるコード(例えば実行可能な命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として、ハードウェアによって、またはそれらの組み合わせによって実現されてもよい。上記のように、当該コードは、例えば1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態でコンピュータ読取可能な記憶媒体に記憶されてもよい。コンピュータ読取可能な記憶媒体は、非一時的であってもよい。いくつかの例では、少なくとも
図2(など)に示される(例えばデバイス認証エンジン、デバイスエンロールメントポリシー特定エンジンおよびデバイスエンロールメントエンジンを少なくとも利用する)デバイスエンロールメントシステム210は、
図5〜
図7のプロセス500,600および700をそれぞれ実行してもよい。
【0083】
図5は、ユーザに関連付けられるデバイスにデバイスエンロールメントサービスを提供するための例示的なプロセス500のフロー図を示す。プロセス500は、ステップ502から開始してもよく、ステップ502において、ユーザデバイス(例えばユーザデバイス202)がデバイスエンロールメントシステム210によって検出される。ステップ504において、デバイスエンロールメントシステムは、エンロールメント要求をユーザデバイスに送信する。
図2との関連で説明するように、いくつかの例では、デバイスエンロールメントシステムの管理者は、エンロールメント要求を起動して、当該エンロールメント要求を電子メールメッセージとしてユーザデバイスに送信してもよい。他の例では、デバイスエンロールメントシステム自体が、エンロールメント要求をユーザデバイス上のエンロールメントアプリケーションに自動的に送信してもよく、ユーザデバイスのユーザは、当該エンロールメントアプリケーションにログインしてエンロールメント要求を閲覧してもよい。
【0084】
ステップ506において、デバイスエンロールメントシステムは、ユーザデバイスのユーザを特定するユーザ資格情報(例えばユーザ名およびパスワード)を受信する。ステップ508において、デバイスエンロールメントシステムは、受信されたユーザ資格情報とユーザについてユーザ/デバイス情報データベース(例えば220)に記憶された情報とを比較することによってユーザデバイスの認証が成功しているか否かを判断する。ユーザデバイスの認証が成功していない場合、ステップ510において、デバイスエンロールメントシステムは、デバイスのエンロールメントを拒否する。
【0085】
認証が成功している場合、いくつかの実施例では、デバイスエンロールメントシステムは、ユーザデバイスのためのエンロールメントポリシーを特定する。ステップ514において、デバイスエンロールメントシステムは、エンロールメントポリシ−に従って一組のエンロールメントルールをユーザデバイスに適用する。これらのルールは、例えば、特定のタイプのエンロールメントがデバイスのユーザのために許可されるか否かを判断すること、ユーザが登録することを許可されるデバイスの数が閾値限界の範囲内であるか否かを判断すること、デバイスのタイプおよびデバイスのオペレーティングシステムバージョンが、デバイスのために特定されたエンロールメントポリシーに従っているか否かを判断すること、などを含んでもよい。
【0086】
ステップ516において、デバイスエンロールメントシステムは、ルールによって指定されたさらなる基準をユーザデバイスが満たすか否かを判断する。ルールによって指定されたさらなる基準をユーザデバイスが満たさない場合、ステップ510において、デバイスエンロールメントシステムは、ユーザデバイスのエンロールメントを拒否する。ルールによって指定されたさらなる基準をユーザデバイスが満たす場合、いくつかの実施例では、ステップ518において、デバイスエンロールメントシステムは、ユーザデバイスをエンロールする。
【0087】
図6は、いかなるユーザにも関連付けられないヘッドレスデバイスにデバイスエンロールメントサービスを提供するための例示的なプロセス600のフロー図を示す。プロセス600は、ステップ602から開始してもよく、ステップ602において、ヘッドレスデバイス(例えばヘッドレスデバイス302)がデバイスエンロールメントシステム210によって検出され、デバイスエンロールメントシステムに事前登録される。ステップ604において、デバイスエンロールメントシステムは、共有鍵および識別子をヘッドレスデバイスに送信する。上記のように、共有鍵は、ヘッドレスデバイスと安全に通信するためにデバイスエンロールメントシステムによって使用され得る事前共有鍵またはパスワードを含んでもよい。ステップ606において、デバイスエンロールメントシステムは、暗号化された識別子をヘッドレスデバイスから受信する。ステップ608において、デバイスエンロールメントシステムは、識別子を復号化する。
【0088】
いくつかの実施例では、ステップ610において、デバイスエンロールメントシステムは、復号化された識別子が、ヘッドレスデバイスに関連付けられる識別子と一致するか否かを判断する。復号化された識別子が、ヘッドレスデバイスに関連付けられる識別子と一致しない場合、デバイスエンロールメントシステムは、デバイスのエンロールメントを拒否する。復号化された識別子が、ヘッドレスデバイスに関連付けられる識別子と一致する場合、いくつかの実施例では、ステップ612において、デバイスエンロールメントシステムは、ヘッドレスデバイスを認証する。
【0089】
ステップ614において、デバイスエンロールメントシステムは、ヘッドレスデバイスに関連付けられるエンロールメントポリシーを特定する。ステップ616において、デバイスエンロールメントシステムは、エンロールメントポリシーに従って、一組のルールをヘッドレスデバイスに適用する。当該一組のルールは、例えば、ヘッドレスデバイスのジオロケーションが、デバイスエンロールメントシステムから予め定められた距離の範囲内であるか否かを判断すること、特定のタイプのエンロールメントがヘッドレスデバイスのために許可されるか否かを判断すること、ヘッドレスデバイスのタイプおよびヘッドレスデバイスのオペレーティングシステムバージョンが、ヘッドレスデバイス302のために特定されたエンロールメントポリシーに従っているか否かを判断すること、などを含んでもよい。
【0090】
ステップ618において、デバイスエンロールメントシステムは、ルールによって指定されたさらなる基準をヘッドレスデバイスが満たすか否かを判断する。ルールによって指定されたさらなる基準をヘッドレスデバイスが満たさない場合、ステップ622において、デバイスエンロールメントシステムは、ヘッドレスデバイスのエンロールメントを拒否する。ルールによって指定されたさらなる基準をヘッドレスデバイスが満たす場合、いくつかの実施例では、ステップ620において、デバイスエンロールメントシステムは、ヘッドレスデバイスをエンロールする。
【0091】
図7は、本発明の実施例に従ってゲートウェイデバイスに接続されたヘッドレスデバイスにデバイスエンロールメントサービスを提供するための例示的なプロセス700のフロー図を示す。プロセス700は、ステップ702から開始してもよく、ステップ702において、デバイスエンロールメントシステムは、ゲートウェイデバイスを検出する。ステップ704において、デバイスエンロールメントシステムは、ゲートウェイデバイスをエンロールする。ステップ706において、デバイスエンロールメントシステムは、ヘッドレスデバイスをエンロールするためのエンロールメント要求をゲートウェイデバイスから受信する。ステップ708において、デバイスエンロールメントシステムは、ヘッドレスデバイスを認証する。いくつかの実施例では、ヘッドレスデバイスの認証は、ヘッドレスデバイスに関連付けられるフィンガープリント情報を備えるデジタル証明書をゲートウェイデバイスから受信し、当該デジタル証明書を検証し、当該デジタル証明書がヘッドレスデバイスに関連付けられる識別子と一致する場合にヘッドレスデバイスを認証することを含んでもよい。
【0092】
いくつかの実施例では、ステップ710において、デバイスエンロールメントシステムは、ヘッドレスデバイスに関連付けられるエンロールメントポリシーを特定する。ステップ712において、デバイスエンロールメントシステムは、ヘッドレスデバイスが事前登録されたデバイスであるか否かを判断する。デバイスが事前登録されたデバイスである場合、ステップ714において、デバイスエンロールメントシステムは、デバイスをエンロールする。ヘッドレスデバイスが事前登録されたデバイスでないとデバイスエンロールメントシステムが判断した場合、特定の実施例では、デバイスエンロールメントシステムは、ゲートウェイデバイスに関連付けられるエンロールメントポリシーを評価して、デバイスエンロールメントシステムにエンロールされることをゲートウェイデバイスによって許可されるデバイスの数およびタイプを決定する。上記のように、デバイスエンロールメントエンジンは、ポリシールールデータベース(例えば218)に記憶されたルールに基づいて、ゲートウェイデバイスに関連付けられるエンロールメントポリシーを評価してもよい。これらのルールは、例えば、ゲートウェイデバイスに関連付けられるデバイスグループ、ゲートウェイデバイスの物理的位置、ゲートウェイデバイスの消費者のライセンスタイプなどを決定することを含んでもよい。
【0093】
ステップ718において、デバイスエンロールメントシステムは、ヘッドレスデバイスのためのエンロールメント基準が満たされるか否かを判断する。エンロールメント基準が満たされる場合、ステップ720において、デバイスエンロールメントシステムは、デバイスをエンロールする。ヘッドレスデバイスがエンロールメント基準を満たさないとデバイスエンロールメントシステムが判断する場合、デバイスエンロールメントシステムは、デバイスのエンロールメントを拒否する。
【0094】
図8は、実施例を実現するための分散型システム800の簡略図を示す。示されている実施例では、分散型システム800は、1つ以上のクライアントコンピューティングデバイス802,804,806および808を含み、それらは、1つ以上のネットワーク810を介してウェブブラウザ、所有権付きクライアント(例えばオラクルフォームズ(Oracle Forms))などのクライアントアプリケーションを実行および動作させるよう構成される。サーバ812は、リモートクライアントコンピューティングデバイス802,804,806および808とネットワーク810を介して通信可能に結合されてもよい。
【0095】
さまざまな実施例では、サーバ812は、デバイスエンロールメントサービスを提供するサービスおよびアプリケーションなどの1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。特定の実施例では、サーバ812は、非仮想および仮想環境を含むことができる他のサービスまたはソフトウェアアプリケーションも提供してもよい。いくつかの実施例では、これらのサービスは、ウェブに基づくサービスもしくはクラウドサービスとして、またはSoftware as a Service(SaaS)モデルの下で、クライアントコンピューティングデバイス802,804,806および/または808のユーザに対して提供されてもよい。クライアントコンピューティングデバイス802,804,806および/または808を動作させるユーザは、次いで、1つ以上のクライアントアプリケーションを利用してサーバ812と対話して、これらのコンポーネントによって提供されるサービスを利用してもよい。
【0096】
図8に示される構成では、システム800のソフトウェアコンポーネント818,820および822は、サーバ812上で実現されるものとして示されている。他の実施例では、システム800のコンポーネントのうちの1つ以上および/またはこれらのコンポーネントによって提供されるサービスは、クライアントコンピューティングデバイス802,804,806および/または808のうちの1つ以上によって実現されてもよい。クライアントコンピューティングデバイスを動作させるユーザは、次いで、1つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを用いてもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現されてもよい。分散型システム800とは異なってもよいさまざまな異なるシステム構成が可能であることが理解されるべきである。
図8に示される実施例は、したがって、実施例のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されるものではない。
【0097】
クライアントコンピューティングデバイス802,804,806および/または808は、さまざまなタイプのコンピューティングシステムを含んでもよい。例えば、クライアントコンピューティングデバイスは、携帯可能な手持ち式のデバイス(例えばiPhone(登録商標)、セルラー電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(personal digital assistant:PDA))またはウェアラブルデバイス(例えばGoogle Glass(登録商標)頭部装着型ディスプレイ)を含んでもよく、Microsoft Windows Mobile(登録商標)などのソフトウェア、および/もしくは、iOS、Windows Phone、Android、BlackBerry 10、Palm OSなどのさまざまなモバイルオペレーティングシステムを実行する。デバイスは、さまざまなインターネット関連アプリ、電子メール、ショートメッセージサービス(short message service:SMS)アプリケーションなどのさまざまなアプリケーションをサポートしてもよく、さまざまな他の通信プロトコルを使用してもよい。クライアントコンピューティングデバイスは、汎用パーソナルコンピュータも含んでもよく、一例として、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/またはLinux(登録商標)オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む。クライアントコンピューティングデバイスは、例えばGoogle Chrome OSなどのさまざまなGNU/Linuxオペレーティングシステムを限定を伴うことなく含む、さまざまな市場で入手可能なUNIX(登録商標)またはUNIXのようなオペレーティングシステムのいずれかを実行するワークステーションコンピュータであり得る。クライアントコンピューティングデバイスは、ネットワーク810を介して通信することができる、シンクライアントコンピュータ、インターネットにより可能化されるゲームシステム(例えばKinect(登録商標)ジェスチャ入力デバイスを伴うかまたは伴わないMicrosoft Xboxゲームコンソール)および/または個人メッセージ伝達デバイスなどの電子デバイスも含んでもよい。
【0098】
図8の分散型システム800は4つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなど、他のデバイスがサーバ812と対話してもよい。
【0099】
分散型システム800におけるネットワーク810は、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、AppleTalkなどを限定を伴うことなく含む、さまざまな入手可能なプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであってもよい。単に一例として、ネットワーク810は、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)、トークンリングに基づくネットワーク、ワイドエリアネットワーク、インターネット、仮想ネットワーク、仮想プライベートネットワーク(virtual private network:VPN)、イントラネット、エクストラネット、公衆交換電話網(public switched telephone network:PSTN)、赤外線ネットワーク、無線ネットワーク(例えば米国電気電子学会(IEEE)1002.11のプロトコル一式、Bluetooth(登録商標)、および/もしくはその他の無線プロトコルのうちのいずれかの下で動作するネットワーク)、ならびに/またはこれらの任意の組み合わせおよび/もしくは他のネットワークであり得る。
【0100】
サーバ812は、1つ以上の汎用コンピュータ、専用のサーバコンピュータ(一例としてPC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせで構成されてもよい。サーバ812は、仮想オペレーティングシステムを実行する1つ以上の仮想マシン、または仮想化を伴う他のコンピューティングアーキテクチャを含み得る。論理ストレージデバイスの1つ以上の柔軟なプールを仮想化してサーバのために仮想ストレージデバイスを維持することができる。仮想ネットワークを、サーバ812によって、ソフトウェア定義のネットワーク接続を用いて制御することができる。さまざまな実施例において、サーバ812は、前述の開示に記載される1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。例えば、サーバ812は、本開示の実施例に従って上記の処理を実行するためのサーバに対応してもよい。
【0101】
サーバ812は、上記のもののうちのいずれかを含むオペレーティングシステム、および任意の市場で入手可能なサーバオペレーティングシステムを実行してもよい。サーバ812は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまなさらなるサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかも実行してもよい。例示的なデータベースサーバは、オラクル、マイクロソフト、サイベース、IBM(インターナショナルビジネスマシンズ)などから市場で入手可能なものを含むが、それらに限定されるものではない。
【0102】
いくつかの実現例では、サーバ812は、クライアントコンピューティングデバイス802,804,806および808のユーザから受信されるデータフィードおよび/またはイベント更新情報を解析および整理統合するための1つ以上のアプリケーションを含んでもよい。一例として、データフィードおよび/またはイベント更新情報は、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能計量ツール(例えばネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムのイベントを含んでもよい、1つ以上の第三者情報源および連続データストリームから受信される、Twitter(登録商標)フィード、Facebook(登録商標)更新情報またはリアルタイムの更新情報を含んでもよいが、それらに限定されるものではない。サーバ812は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス802,804,806および808の1つ以上の表示デバイスを介して表示するための1つ以上のアプリケーションも含んでもよい。
【0103】
分散型システム800は、1つ以上のデータベース814および816も含んでもよい。これらのデータベースは、在庫情報などの情報および本発明の実施例によって使用される他の情報を記憶するための機構を提供してもよい。データベース814および816は、さまざまな位置にあってもよい。一例として、データベース814および816のうちの1つ以上は、サーバ812に局在する(および/またはサーバ812に常駐する)非一時的な記憶媒体にあってもよい。代替的に、データベース814および816は、サーバ812から遠隔にあり、ネットワークに基づくかまたは専用の接続を介してサーバ812と通信してもよい。一組の実施例では、データベース814および816は、記憶域ネットワーク(storage-area network:SAN)にあってもよい。同様に、サーバ812に帰する機能を実行するための任意の必要なファイルが、適宜、サーバ812上においてローカルに、および/または遠隔で記憶されてもよい。一組の実施例では、データベース814および816は、SQLフォーマットされたコマンドに応答してデータを記憶、更新および検索取得するように適合される、オラクルによって提供されるデータベースなどのリレーショナルデータベースを含んでもよい。
【0104】
いくつかの実施例では、上記のデバイスエンロールメントサービスは、クラウド環境を介してサービスとして提供されてもよい。
図9は、本開示の実施例に従って、サービスがクラウドサービスとして提供されてもよいシステム環境900の1つ以上のコンポーネントの簡略ブロック図である。
図9における示されている実施例では、システム環境900は、1つ以上のクライアントコンピューティングデバイス904,906および908を含み、1つ以上のクライアントコンピューティングデバイス904,906および908は、使用パターンに応答してドキュメント(例えばウェブページ)を動的に修正するためのサービスを含むクラウドサービスを提供するクラウドインフラストラクチャシステム902と対話するようにユーザによって使用されてもよい。クラウドインフラストラクチャシステム902は、サーバ812のための上記のものを含んでもよい1つ以上のコンピュータおよび/またはサーバを備えてもよい。
【0105】
図9に示されるクラウドインフラストラクチャシステム902は図示されるもの以外のコンポーネントを有してもよいことが理解されるべきである。さらに、
図9に示される実施例は、本発明の実施例を組み込んでもよいクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施例では、クラウドインフラストラクチャシステム902は、図に示されるよりも多いコンポーネントもしくは少ないコンポーネントを有してもよく、2つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有してもよい。
【0106】
クライアントコンピューティングデバイス904,906および908は、802,804,806および808に対して上記されたものと同様のデバイスであってもよい。クライアントコンピューティングデバイス904,906および908は、ウェブブラウザ、所有権付きクライアントアプリケーション(例えばオラクルフォームズ)、または何らかの他のアプリケーションなどのクライアントアプリケーションを動作させるよう構成されてもよく、当該クライアントアプリケーションは、クラウドインフラストラクチャシステム902と対話して、クラウドインフラストラクチャシステム902によって提供されるサービスを使用するようにクライアントコンピューティングデバイスのユーザによって使用されてもよい。例示的なシステム環境900が3つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなどの他のデバイスがクラウドインフラストラクチャシステム902と対話してもよい。
【0107】
ネットワーク910は、クライアント904,906および908とクラウドインフラストラクチャシステム902との間におけるデータの通信および交換を容易にしてもよい。各ネットワークは、ネットワーク1210に対して上記されたものを含む、さまざまな市場で入手可能なプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであってもよい。
【0108】
特定の実施例では、クラウドインフラストラクチャシステム902によって提供されるサービスは、オンデマンドでクラウドインフラストラクチャシステムのユーザに利用可能にされるサービスのホストを含んでもよい。デバイス管理に関連するサービスに加えて、オンラインデータストレージおよびバックアップソリューション、ウェブに基づく電子メールサービス、運営管理されるオフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理される技術サポートサービスなどを限定を伴うことなく含むさまざまな他のサービスも提供されてもよい。クラウドインフラストラクチャシステムによって提供されるサービスは、動的にスケーリングしてそのユーザのニーズを満たすことができる。
【0109】
特定の実施例では、クラウドインフラストラクチャシステム902によって提供されるあるサービスのある具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザに利用可能にされる任意のサービスは、「クラウドサービス」と称される。典型的には、パブリックなクラウド環境においては、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスのサーバおよびシステムとは異なる。例えば、クラウドサービスプロバイダのシステムは、アプリケーションを運営管理してもよく、ユーザは、インターネットなどの通信ネットワークを介して、オンデマンドで、アプリケーションをオーダーし使用してもよい。
【0110】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、ストレージ、運営管理されるデータベース、運営管理されるウェブサーバ、ソフトウェアアプリケーション、またはクラウドベンダーによってユーザに提供されるかもしくは他の態様で当該技術分野において公知であるような他のサービスに対する保護されたコンピュータネットワークアクセスを含んでもよい。例えば、サービスは、クラウド上のリモートストレージに対するインターネットを介してのパスワード保護されたアクセスを含むことができる。別の例として、サービスは、ネットワーク接続された開発者による個人的な使用のために、ウェブサービスに基づく運営管理されたリレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含むことができる。別の例として、サービスは、クラウドベンダーのウェブサイトにおいて運営管理される電子メールソフトウェアアプリケーションに対するアクセスを含むことができる。
【0111】
特定の実施例では、クラウドインフラストラクチャシステム902は、セルフサービスの、サブスクリプションに基づく、弾性的にスケーラブルで、信頼性があり、非常に利用可能性があり、およびセキュリティ上安全な態様で顧客に対して配送されるアプリケーション、ミドルウェア、データベースサービス提供一式を含んでもよい。そのようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクル・パブリック・クラウド(Oracle Public Cloud)である。
【0112】
クラウドインフラストラクチャシステム902は、「ビッグデータ」関連の計算および解析ツールも提供してもよい。「ビッグデータ」という語は、一般に、大量のデータを視覚化し、傾向を検出し、および/またはその他の態様でデータと対話するようにアナリストおよび研究者によって記憶および操作され得る非常に大きなデータセットを指すように用いられる。このビッグデータおよび関連のアプリケーションは、インフラストラクチャシステムによって、多数のレベルにおいて、および異なるスケールで運営管理および/または操作され得る。そのようなデータを表示するため、またはデータもしくはデータが表現するものに対する外部の力をシミュレートするために、並列に連結された何十、何百または何千ものプロセッサがそのようなデータに対して作用することができる。これらのデータセットは、データベース状にもしくはさもなければ構造モデルに従って編成されたものなどの構造化データ、および/または非構造化データ(例えば電子メール、画像、データブロブ(バイナリラージオブジェクト)、ウェブページ、複合イベント処理)を含み得る。より多くの(またはより少ない)計算リソースを比較的迅速に対象に集中させることができる実施例の機能を活用することによって、クラウドインフラストラクチャシステムは、会社、政府機関、研究組織、私人、同じ考えを持った個人もしくは組織のグループ、または他のエンティティからの要求に基づいて大きなデータセットに対してタスクを実行することにさらに利用できるであろう。
【0113】
さまざまな実施例では、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステム902によって提供されるサービスに対する顧客のサブスクリプションを自動的にプロビジョニングし、管理し、およびトラッキングするように適合されてもよい。クラウドインフラストラクチャシステム902は、クラウドサービスをさまざまな展開モデルを介して提供してもよい。例えば、サービスは、クラウドインフラストラクチャシステム902が(例えばオラクル社によって所有される)クラウドサービスを販売する組織によって所有され、サービスが一般大衆または異なる業界企業に対して利用可能にされるパブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム902が単一の組織に対してのみ動作され、その組織内における1つ以上のエンティティに対してサービスを提供してもよいプライベートクラウドモデルの下で提供されてもよい。また、クラウドサービスは、クラウドインフラストラクチャシステム902およびクラウドインフラストラクチャシステム902によって提供されるサービスが、関連するコミュニティにおけるいくつかの組織によって共有されるコミュニティクラウドモデルの下で提供されてもよい。また、クラウドサービスは、2つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。
【0114】
いくつかの実施例では、クラウドインフラストラクチャシステム902によって提供されるサービスは、Software as a Service(SaaS)カテゴリ、Platform as a Service(PaaS)カテゴリ、Infrastructure as a Service(IaaS)カテゴリ、またはハイブリッドサービスを含む他のサービスのカテゴリの下で提供される1つ以上のサービスを含んでもよい。顧客は、サブスクリプションオーダーを介して、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスをオーダーしてもよい。クラウドインフラストラクチャシステム902は、次いで、処理を実行して、顧客のサブスクリプションオーダーにおけるサービスを提供する。
【0115】
いくつかの実施例では、クラウドインフラストラクチャシステム902によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含んでもよいが、それらに限定されるものではない。いくつかの例では、アプリケーションサービスは、クラウドインフラストラクチャシステムによってSaaSプラットフォームを介して提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに入るクラウドサービスを提供するよう構成されてもよい。例えば、SaaSプラットフォームは、オンデマンドアプリケーション一式を統合された開発および展開プラットフォーム上で構築し配送する機能を提供してもよい。SaaSプラットフォームは、SaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御してもよい。SaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムにおいて実行されるアプリケーションを利用することができる。顧客は、別のライセンスおよびサポートを購入する必要なくアプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスが提供されてもよい。その例としては、大きな組織に対する売上実績管理、企業統合、および事業柔軟性に対するソリューションを提供するサービスが挙げられるが、それらに限定されるものではない。
【0116】
いくつかの実施例では、プラットフォームサービスは、クラウドインフラストラクチャシステム902によってPaaSプラットフォームを介して提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに入るクラウドサービスを提供するよう構成されてもよい。プラットフォームサービスの例としては、(オラクルなどの)組織が既存のアプリケーションを共有の共通のアーキテクチャにおいて整理統合することができるサービス、およびプラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能を挙げることができるが、それらに限定されるものではない。PaaSプラットフォームは、PaaSサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御してもよい。顧客は、クラウドインフラストラクチャシステム902によって提供されるPaaSサービスを、別のライセンスおよびサポートを購入する必要なく取得することができる。プラットフォームサービスの例としては、オラクル・ジャバ・クラウド・サービス(Oracle Java Cloud Service:JCS)、オラクル・データベース・クラウド・サービス(Oracle Database Cloud Service:DBCS)などが挙げられるが、それらに限定されるものではない。
【0117】
PaaSプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを使用することができ、展開されたサービスを制御することもできる。いくつかの実施例では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス(例えばオラクル・フュージョン・ミドルウェアサービス)、およびJavaクラウドサービスを含んでもよい。一実施例では、データベースクラウドサービスは、組織がデータベースリソースをプールし、顧客にDatabase as a Serviceをデータベースクラウドの形式で提供することを可能にする共有のサービス展開モデルをサポートしてもよい。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発および展開するためのプラットフォームをクラウドインフラストラクチャシステムにおいて提供してもよく、Javaクラウドサービスは、顧客がJavaアプリケーションを展開するためのプラットフォームをクラウドインフラストラクチャシステムにおいて提供してしてもよい。
【0118】
さまざまな異なるインフラストラクチャサービスがIaaSプラットフォームによってクラウドインフラストラクチャシステムにおいて提供されてもよい。インフラストラクチャサービスは、ストレージ、ネットワーク、ならびにSaaSプラットフォームおよびPaaSプラットフォームによって提供されるサービスを利用する顧客に対する他の基礎的計算リソースなどの基本的な計算リソースの管理および制御を容易にする。
【0119】
特定の実施例では、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステムの顧客に対してさまざまなサービスを提供するよう用いられるリソースを提供するためのインフラストラクチャリソース930も含んでもよい。一実施例では、インフラストラクチャリソース930は、サーバ、ストレージ、ならびにPaaSプラットフォームおよびSaaSプラットフォームによって提供されるサービスを実行するためのネットワーク接続リソース、ならびに他のリソースなどの、ハードウェアの予め統合され最適化された組み合わせを含んでもよい。
【0120】
いくつかの実施例では、クラウドインフラストラクチャシステム902におけるリソースは、複数のユーザによって共有され、要求につき動的に再割り当てされてもよい。また、リソースは、ユーザに対してさまざまな時間ゾーンで割り当てられてもよい。例えば、クラウドインフラストラクチャシステム902は、第1の時間ゾーンにおける第1のユーザセットがクラウドインフラストラクチャシステムのリソースをある特定の時間の間利用することを可能にし、次いで、異なる時間ゾーンに位置する別のユーザセットに対する同じリソースの再割り当てを可能にし、それによって、リソースの利用を最大化してもよい。
【0121】
特定の実施例では、クラウドインフラストラクチャシステム902のさまざまなコンポーネントまたはモジュールによって共有されてクラウドインフラストラクチャシステム902によるサービスのプロビジョニングを可能にするある数の内部共有サービス932が提供されてもよい。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよびリカバリサービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含んでもよいが、それらに限定されるものではない。
【0122】
特定の実施例では、クラウドインフラストラクチャシステム902は、クラウドインフラストラクチャシステムにおいてクラウドサービス(例えばSaaS、PaaS、およびIaaSサービス)の包括的な管理を提供してもよい。一実施例では、クラウド管理機能は、クラウドインフラストラクチャシステム902によって受信される顧客のサブスクリプションをプロビジョニングし、管理し、およびトラッキングする機能などを含んでもよい。
【0123】
一実施例では、
図9に示されるように、クラウド管理機能は、オーダー管理モジュール920、オーダーオーケストレーションモジュール922、オーダープロビジョニングモジュール924、オーダー管理および監視モジュール926、ならびにアイデンティティ管理モジュール928などの1つ以上のモジュールによって提供されてもよい。これらのモジュールは、1つ以上のコンピュータおよび/もしくはサーバを含んでもよく、またはそれらを用いて提供されてもよく、それらは、汎用コンピュータ、専用のサーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および/もしくは組み合わせであってもよい。
【0124】
例示的な動作では、ステップ934において、クライアントデバイス904、906または908などのクライアントデバイスを用いる顧客は、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスを要求し、クラウドインフラストラクチャシステム902によって提供される1つ以上のサービスに対するサブスクリプションに対するオーダーを行なうことによって、クラウドインフラストラクチャシステム902と対話してもよい。特定の実施例では、顧客は、クラウドUI912、クラウドUI914および/またはクラウドUI916などのクラウドユーザインターフェイス(UI)にアクセスし、サブスクリプションオーダーをこれらのUIを介して行なってもよい。顧客がオーダーを行なうことに応答してクラウドインフラストラクチャシステム902によって受信されるオーダー情報は、顧客を識別する情報、およびクラウドインフラストラクチャシステム902によって提供される、その顧客が利用することを意図する1つ以上のサービスを含んでもよい。
【0125】
ステップ936において、顧客から受信されたオーダー情報は、オーダーデータベース918に保存されてもよい。これが新たなオーダーである場合には、当該オーダーに対して新たなレコードが作成されてもよい。一実施例では、オーダーデータベース918は、クラウドインフラストラクチャシステム918によって動作されるいくつかのデータベースのうちの1つであり得、他のシステム要素と連携して動作され得る。
【0126】
ステップ938において、オーダー情報は、オーダー管理モジュール920に転送されてもよく、当該オーダー管理モジュール920は、オーダーを検証すること、および検証次第そのオーダーを予約することなど、オーダーに関連する請求および課金機能を実行するよう構成されてもよい。
【0127】
ステップ940において、オーダーに関する情報は、オーダーオーケストレーションモジュール922に通信されてもよく、当該オーダーオーケストレーションモジュール922は、顧客によってなされたオーダーに対してサービスおよびリソースのプロビジョニングをオーケストレーションするよう構成される。いくつかの例では、オーダーオーケストレーションモジュール922は、オーダープロビジョニングモジュール924のサービスをプロビジョニングに使用してもよい。特定の実施例では、オーダーオーケストレーションモジュール922は、各オーダーに関連付けられるビジネスプロセスの管理を可能にし、ビジネス論理を適用して、オーダーがプロビジョニングに進むべきか否かを判断する。
【0128】
図9に示される実施例に示されているように、ステップ942において、新たなサブスクリプションに対するオーダーを受信すると、オーダーオーケストレーションモジュール922は、オーダープロビジョニングモジュール924に対して、リソースを割り当てて、サブスクリプションオーダーを満たすのに必要とされるリソースを構成するよう、要求を送信する。オーダープロビジョニングモジュール924は、顧客によってオーダーされたサービスに対するリソースの割り当てを可能にする。オーダープロビジョニングモジュール924は、クラウドインフラストラクチャシステム900によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするよう用いられる物理的インプリメンテーション層との間にある抽象化レベルを提供する。これにより、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか、サービスおよびリソースが予めプロビジョニングされて要求時にのみ割り当てられる/あてがわれるかなどの、インプリメンテーション詳細からオーダーオーケストレーションモジュール924を分離することができる。
【0129】
ステップ944において、サービスおよびリソースがプロビジョニングされると、要求されたサービスが使用できる状態であることを示す通知が、加入している顧客に送信されてもよい。いくつかの例では、顧客が要求されたサービスの使用を開始することを可能にする情報(例えばリンク)が顧客に送信されてもよい。
【0130】
ステップ946において、顧客のサブスクリプションオーダーは、オーダー管理および監視モジュール926によって管理およびトラッキングされてもよい。いくつかの例では、オーダー管理および監視モジュール926は、加入したサービスの顧客使用に関する使用統計を収集するよう構成されてもよい。例えば、統計は、使用されるストレージの量、転送されるデータの量、ユーザの人数、ならびにシステムアップ時間およびシステムダウン時間の量などについて収集されてもよい。
【0131】
特定の実施例では、クラウドインフラストラクチャシステム900は、アイデンティティ管理モジュール928を含んでもよく、当該アイデンティティ管理モジュール928は、クラウドインフラストラクチャシステム900におけるアクセス管理および承認サービスなどのアイデンティティサービスを提供するよう構成される。いくつかの実施例では、アイデンティティ管理モジュール928は、クラウドインフラストラクチャシステム902によって提供されるサービスを利用することを望む顧客についての情報を制御してもよい。そのような情報は、そのような顧客のアイデンティティを認証する情報、およびそれらの顧客がさまざまなシステムリソース(例えばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対してどのアクションを実行することが承認されるかを記述する情報を含み得る。アイデンティティ管理モジュール928は、各顧客についての記述的情報ならびにどのように誰によってその記述的情報がアクセスおよび修正され得るかについての情報の管理も含んでもよい。
【0132】
図10は、本発明の実施例を実現するために使用され得る例示的なコンピュータシステム1000を示す。いくつかの実施例では、コンピュータシステム1000は、上記のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現するよう用いられてもよい。
図10に示されるように、コンピュータシステム1000は、多数の周辺サブシステムとバスサブシステム1002を介して通信する処理サブシステム1004を含むさまざまなサブシステムを含む。これらの周辺サブシステムは、処理加速ユニット1006、I/Oサブシステム1008、ストレージサブシステム1018および通信サブシステム1024を含んでもよい。ストレージサブシステム1018は、有形のコンピュータ読取可能な記憶媒体1022およびシステムメモリ1010を含んでもよい。
【0133】
バスサブシステム1002は、コンピュータシステム1000のさまざまなコンポーネントおよびサブシステムに意図されるように互いに通信させるための機構を提供する。バスサブシステム1002は単一のバスとして概略的に示されているが、バスサブシステムの代替的実施例は、複数のバスを利用してもよい。バスサブシステム1002は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。例えば、そのようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、エンハンストISA(Enhanced ISA:EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association:VESA)ローカルバス、およびIEEE P1386.1規格に従って製造される中二階バスとして実現され得る周辺コンポーネントインターコネクト(Peripheral Component Interconnect:PCI)バスなどを含んでもよい。
【0134】
処理サブシステム1004は、コンピュータシステム1000の動作を制御し、1つ以上の処理ユニット1032,1034などを備えてもよい。処理ユニットは、単一コアもしくはマルチコアプロセッサを含む1つ以上のプロセッサ、プロセッサの1つ以上のコア、またはそれらの組み合わせを含んでもよい。いくつかの実施例では、処理サブシステム1004は、グラフィックスプロセッサ、デジタル信号プロセッサ(digital signal processor:DSP)などの1つ以上の特殊用途コプロセッサを含み得る。いくつかの実施例では、処理サブシステム1004の処理ユニットの一部または全ては、特定用途向け集積回路(application specific integrated circuit:ASIC)またはフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)などのカスタマイズされた回路を用いて実現され得る。
【0135】
いくつかの実施例では、処理サブシステム1004における処理ユニットは、システムメモリ1010またはコンピュータ読取可能な記憶媒体1022に記憶された命令を実行することができる。さまざまな実施例では、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、複数の同時に実行されるプログラムまたはプロセスを維持することができる。任意の所与のときに、実行されるべきプログラムコードの一部または全ては、システムメモリ1010、および/または、場合によっては1つ以上のストレージデバイスを含むコンピュータ読取可能な記憶媒体1010に常駐することができる。好適なプログラミングを介して、処理サブシステム1004は、使用パターンに応答してドキュメント(例えばウェブページ)を動的に修正するための上記のさまざまな機能を提供することができる。
【0136】
特定の実施例では、コンピュータシステム1000によって実行される処理全体を加速させるように、カスタマイズされた処理を実行するため、または処理サブシステム1004によって実行される処理の一部をオフロードするための処理加速ユニット1006が設けられてもよい。
【0137】
I/Oサブシステム1008は、コンピュータシステム1000に情報を入力するため、および/または、コンピュータシステム1000からもしくはコンピュータシステム1000を介して情報を出力するためのデバイスおよび機構を含んでもよい。一般に、「入力デバイス」という語の使用は、コンピュータシステム1000に情報を入力するための全ての考えられ得るタイプのデバイスおよび機構を含むよう意図される。ユーザインターフェイス入力デバイスは、例えば、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれるタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御して入力デバイスと対話することを可能にするMicrosoft Kinect(登録商標)モーションセンサ、Microsoft Xbox(登録商標)360ゲームコントローラ、ジェスチャおよび話し言葉コマンドを用いて入力を受信するためのインターフェイスを提供するデバイスなどのモーション感知および/またはジェスチャ認識デバイスも含んでもよい。ユーザインターフェイス入力デバイスは、ユーザから目の活動(例えば写真を撮っている間および/またはメニュー選択を行なっている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(例えばGoogle Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識デバイスも含んでもよい。また、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(例えばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでもよい。
【0138】
ユーザインターフェイス入力デバイスの他の例としては、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスが挙げられるが、それらに限定されるものではない。また、ユーザインターフェイス入力デバイスは、例えば、コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィー、医療超音波検査デバイスなどの医療画像化入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、例えば、MIDI(楽器デジタルインターフェイス(Musical Instrument Digital Interface))キーボード、デジタル楽器などの音声入力デバイスも含んでもよい。
【0139】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスなどの非ビジュアルディスプレイなどを含んでもよい。ディスプレイサブシステムは、陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)またはプラズマディスプレイを使うものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という語の使用は、コンピュータシステム1000からユーザまたは他のコンピュータに情報を出力するための全ての考えられ得るタイプのデバイスおよび機構を含むよう意図される。例えば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまな表示デバイスを含んでもよいが、それらに限定されるものではない。
【0140】
ストレージサブシステム1018は、コンピュータシステム1000によって使用される情報を記憶するためのリポジトリまたはデータストアを提供する。ストレージサブシステム1018は、いくつかの実施例の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形の非一時的なコンピュータ読取可能な記憶媒体を提供する。処理サブシステム1004によって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)がストレージサブシステム1018に記憶されてもよい。当該ソフトウェアは、処理サブシステム1004の1つ以上の処理ユニットによって実行されてもよい。ストレージサブシステム1018は、本発明に従って使用されるデータを記憶するためのリポジトリも提供してもよい。
【0141】
ストレージサブシステム1018は、揮発性および不揮発性メモリデバイスを含む1つ以上の非一時的なメモリデバイスを含んでもよい。
図10に示されるように、ストレージサブシステム1018は、システムメモリ1010と、コンピュータ読取可能な記憶媒体1022とを含む。システムメモリ1010は、プログラム実行中に命令およびデータを記憶するための揮発性メインランダムアクセスメモリ(random access memory:RAM)および固定命令が記憶される不揮発性リードオンリメモリ(read only memory:ROM)またはフラッシュメモリを含む複数のメモリを含んでもよい。いくつかの実現例では、起動中などにコンピュータシステム1000内の要素間における情報の転送を助ける基本的なルーティンを含むベーシックインプット/アウトプットシステム(basic input/output system:BIOS)は、一般に、ROMに記憶されてもよい。RAMは、一般に、処理サブシステム1004によって現在動作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ1010は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含んでもよい。
【0142】
一例として、限定を伴うことなく、
図10に示されるように、システムメモリ1010は、アプリケーションプログラム1012を記憶してもよく、当該アプリケーションプログラム1012は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(relational database management system:RDBMS)など、プログラムデータ1014およびオペレーティングシステム1016を含んでもよい。一例として、オペレーティングシステム1016は、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/もしくはLinux(登録商標)オペレーティングシステム、さまざまな市場で入手可能なUNIX(登録商標)またはUNIXのようなオペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むがそれらに限定されない)、ならびに/または、iOS、Windows(登録商標) Phone、Android(登録商標) OS、BlackBerry(登録商標) 10 OS、およびPalm(登録商標) OSオペレーティングシステムなどのモバイルオペレーティングシステムのさまざまなバージョンを含んでもよい。
【0143】
コンピュータ読取可能な記憶媒体1022は、いくつかの実施例の機能を提供するプログラミングおよびデータ構造を記憶してもよい。処理サブシステム1004によって実行されたときにプロセッサに上記の機能を提供させるソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム1018に記憶されてもよい。一例として、コンピュータ読取可能な記憶媒体1022は、ハードディスクドライブ、磁気ディスクドライブ、CD ROM、DVD、ブルーレイ(登録商標)ディスクなどの光ディスクドライブ、または他の光学式媒体などの不揮発性メモリを含んでもよい。コンピュータ読取可能な記憶媒体1022は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含んでもよいが、それらに限定されるものではない。コンピュータ読取可能な記憶媒体1022は、フラッシュメモリベースのSSD、企業フラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(solid-state drive:SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAM、DRAMベースのSSD、磁気抵抗RAM(magnetoresistive RAM:MRAM)SSDなどの揮発性メモリに基づくSSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含んでもよい。コンピュータ読取可能な媒体1022は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータのストレージをコンピュータシステム1000に提供してもよい。
【0144】
特定の実施例では、ストレージサブシステム1000は、コンピュータ読取可能な記憶媒体1022にさらに接続可能なコンピュータ読取可能記憶媒体リーダ1020も含んでもよい。システムメモリ1010とともに、およびオプションとしてシステムメモリ1010との組み合わせで、コンピュータ読取可能な記憶媒体1022は、コンピュータ読取可能な情報を記憶するための、遠隔の、ローカルな、固定された、および/またはリムーバブルなストレージデバイスに記憶媒体を加えたものを包括的に表わしてもよい。
【0145】
特定の実施例では、コンピュータシステム1000は、1つ以上の仮想マシンを実行するためのサポートを提供してもよい。コンピュータシステム1000は、仮想マシンの構成および管理を容易にするためのハイパーバイザなどのプログラムを実行してもよい。各仮想マシンは、割り当てられたメモリ、計算(例えばプロセッサ、コア)、I/Oおよびネットワーク接続リソースであってもよい。各仮想マシンは、一般に、それ自体のオペレーティングシステムを実行し、当該オペレーティングシステムは、コンピュータシステム1000によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同一であってもよく、または異なっていてもよい。したがって、場合によっては、複数のオペレーティングシステムがコンピュータシステム1000によって同時に実行されてもよい。各仮想マシンは、一般に、他の仮想マシンから独立して実行される。
【0146】
通信サブシステム1024は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム1024は、他のシステムとコンピュータシステム1000との間のデータの送受のためのインターフェイスとして働く。例えば、通信サブシステム1024は、コンピュータシステム1000が1つ以上のクライアントデバイスとの情報の送受のためにインターネットを介したクライアントデバイスへの通信チャネルを確立することを可能にしてもよい。
【0147】
通信サブシステム1024は、有線通信プロトコルおよび/または無線通信プロトコルをサポートしてもよい。例えば、特定の実施例では、通信サブシステム1024は、(例えばセルラー電話技術、3G、4GもしくはEDGE(グローバル進化のための高速データレート)などの先進データネットワーク技術、WiFi(IEEE802.11ファミリー規格、もしくは他のモバイル通信技術、またはそれらの任意の組み合わせを用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)送受信機コンポーネント、グローバルポジショニングシステム(global positioning system:GPS)受信機コンポーネント、ならびに/または他のコンポーネントを含んでもよい。いくつかの実施例では、通信サブシステム1024は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続(たとえばイーサネット)を提供することができる。
【0148】
通信サブシステム1024は、さまざまな形式でデータを送受信することができる。例えば、いくつかの実施例では、通信サブシステム1024は、構造化されたおよび/または構造化されていないデータフィード1026、イベントストリーム1028、イベント更新情報1030などの形式で入力通信を受信してもよい。例えば、通信サブシステム1024は、ソーシャルメディアネットワークおよび/またはTwitter(登録商標)フィード、Facebook(登録商標)更新情報、Rich Site Summary(RSS)フィードなどのウェブフィード、および/もしくは1つ以上の第三者情報源からのリアルタイム更新情報などの他の通信サービスのユーザからリアルタイムでデータフィード1026を受信(または送信)するよう構成されてもよい。
【0149】
特定の実施例では、通信サブシステム1024は、連続データストリームの形式でデータを受信するよう構成されてもよく、当該連続データストリームは、明示的な端部を有さない本質的に連続的または無限であってもよい、リアルタイムイベントのイベントストリーム1028および/またはイベント更新情報1030を含んでもよい。連続データを生成するアプリケーションの例としては、例えば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(例えばネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通監視などを挙げることができる。
【0150】
また、通信サブシステム1024は、構造化されたおよび/または構造化されていないデータフィード1026、イベントストリーム1028、イベント更新情報1030などを、コンピュータシステム1000に結合される1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するよう構成されてもよい。
【0151】
コンピュータシステム1000は、手持ち式の携帯デバイス(例えばiPhone(登録商標)携帯電話、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(例えばGoogle Glass(登録商標)頭部装着型ディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまなタイプのもののうちの1つであり得る。
【0152】
常に変化するコンピュータおよびネットワークの性質のため、
図10に示されるコンピュータシステム1000の記載は、単に具体的な例として意図される。
図10に示されるシステムよりも多いまたは少ないコンポーネントを有する多くの他の構成が可能である。本明細書における開示および教示に基づいて、当業者は、さまざまな実施例を実現する他の態様および/または方法を理解するであろう。
【0153】
本発明の具体的な実施例について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本発明の範囲内に包含される。本発明の実施例は、特定の具体的なデータ処理環境内でのオペレーションに限定されるものではなく、複数のデータ処理環境内で自由に動作できる。また、特定の一連のトランザクションおよびステップを用いて本発明の実施例について説明してきたが、本発明の範囲は、記載されている一連のトランザクションおよびステップに限定されるものではない、ということが当業者に明らかであるべきである。上記の実施例のさまざまな特徴および局面は、個々にまたは一緒に使用されてもよい。
【0154】
さらに、ハードウェアとソフトウェアとの特定の組み合わせを用いて本発明の実施例について説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも本発明の範囲内であることが認識されるべきである。本発明の実施例は、ハードウェアのみで実現されてもよく、またはソフトウェアのみで実現されてもよく、またはそれらの組み合わせを用いて実現されてもよい。本明細書に記載されているさまざまなプロセスは、任意の組み合わせで同一のプロセッサまたは異なるプロセッサ上で実現され得る。したがって、コンポーネントまたはモジュールが特定のオペレーションを実行するよう構成されるものとして記載されている場合、このような構成は、例えばオペレーションを実行するように電子回路を設計することによって、オペレーションを実行するように(マイクロプロセッサなどの)プログラム可能な電子回路をプログラミングすることによって、またはそれらの任意の組み合わせによって、達成されることができる。プロセスは、従来のプロセス間通信技術を含むがそれに限定されないさまざまな技術を用いて通信することができ、プロセスの異なる対は、異なる技術を使用してもよく、またはプロセスの同一の対は、異なるときに異なる技術を使用してもよい。
【0155】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかし、特許請求の範囲に記載されているより広範な精神および範囲から逸脱することなく、追加、減算、削除、ならびに他の変形および変更がそれに対してなされてもよい、ということは明白であろう。したがって、具体的な本発明の実施例について説明してきたが、これらは限定的であるよう意図されるものではない。さまざまな変形例および等価物は、以下の特許請求の範囲の範囲内である。
【0156】
実施例において、デバイスエンロールメントシステムは、デバイス認証エンジンとデバイスエンロールメントポリシー特定エンジンとデバイスエンロールメントエンジンとを備えるものとして実現されてもよく、デバイス認証エンジン、デバイスエンロールメントポリシー特定エンジンおよびデバイスエンロールメントエンジンは、上記のデバイス認証エンジン212、デバイスエンロールメントポリシー特定エンジン214およびデバイスエンロールメントエンジン216と類似のものであり得る。デバイス認証エンジンは、通信ネットワーク内の複数の電子デバイスを検出し、複数の電子デバイスを認証し、複数の電子デバイスの第1のデバイスが人間のユーザに関連付けられることを判断し、複数の電子デバイスの第2のデバイスが、いずれか一人のユーザに専用でないヘッドレスデバイスであることを確認するよう構成されてもよい。デバイスエンロールメントポリシー特定エンジンは、当該判断に基づいて、第1のデバイスに関連付けられる第1のエンロールメントポリシーを特定し、当該確認およびヘッドレスデバイスのジオロケーションに基づいて、第2のデバイスに関連付けられる第2のエンロールメントポリシーを特定するよう構成されてもよい。デバイスエンロールメントエンジンは、第1のエンロールメントポリシーに従って第1のエンロールメントルールセットを第1のデバイスに適用し、第2のエンロールメントポリシーに従って第2のエンロールメントルールセットを第2のデバイスに適用し、第1のエンロールメントポリシーに基づいて第1のデバイスをエンロールし、第2のエンロールメントポリシーに基づいて第2のデバイスをエンロールするよう構成されてもよい。いくつかの実施例では、デバイスエンロールメントポリシー特定エンジンは、第1のデバイスのオペレーティングシステムまたはタイプに基づいて第1のエンロールメントポリシーを特定するようさらに構成されてもよく、第1のデバイスのタイプは、ワークステーション、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイスおよびウェアラブルデバイスからなる群から選択される。いくつかの実施例では、ヘッドレスデバイスは、温度センサ、酸素センサ、心電図記録(EKG)センサ、カメラまたは医療用検知機器を含む。いくつかの実施例では、デバイスエンロールメントポリシー特定エンジンは、固定されたゲートウェイを介した信頼できる接続に基づいて第2のエンロールメントポリシーを特定するようさらに構成されてもよい。いくつかの実施例では、デバイス認証エンジンは、エンロールメント要求を複数の電子デバイスに送信し、エンロールメント要求に応答して複数の電子デバイスから資格情報を受信し、資格情報に基づいて複数の電子デバイスを認証するようさらに構成されてもよい。いくつかの実施例では、デバイス認証エンジンは、複数の電子デバイスがシステムに事前登録されることを判断し、当該判断に基づいて、共有鍵および識別子を1つ以上の電子デバイスに送信し、暗号化された識別子および共有鍵を1つ以上の電子デバイスから受信し、暗号化された識別子および共有鍵を復号化し、当該復号化に基づいてデジタル証明書を複数の電子デバイスに送信する、ことによって1つ以上の電子デバイスを認証するようさらに構成されてもよい。いくつかの実施例では、第1のエンロールメントルールセットおよび第2のエンロールメントルールセットは、複数の電子デバイスをエンロールすることができるシステム内のユーザに関連する情報、システムの一人以上のユーザによってエンロールされることができるデバイスのタイプに関連する情報、および一人以上のユーザによってシステムにエンロールされることができるデバイスの最大数に関連する情報のうちの1つ以上を指定してもよい。いくつかの実施例では、第1のエンロールメントルールセットおよび第2のエンロールメントルールセットは、複数の電子デバイスをシステムにエンロールするために適用される特定の認証機構に関連する情報を指定してもよい。いくつかの実施例では、第1のエンロールメントルールセットおよび第2のエンロールメントルールセットは、複数の電子デバイスのジオロケーションに関連する情報を指定してもよい。
【0157】
少なくともいくつかの実施例によれば、デバイスエンロールメントシステムは、デバイス認証エンジンとデバイスエンロールメントポリシー特定エンジンとデバイスエンロールメントエンジンとを備えるものとして実現され、デバイス認証エンジン、デバイスエンロールメントポリシー特定エンジンおよびデバイスエンロールメントエンジンは、上記のデバイス認証エンジン212、デバイスエンロールメントポリシー特定エンジン214およびデバイスエンロールメントエンジン216と類似のものであり得る。デバイス認証エンジンは、通信ネットワーク内の1つ以上の電子デバイスに接続されたゲートウェイデバイスを検出するよう構成され、ゲートウェイデバイスのエンロールメント時に、1つ以上の電子デバイスをシステムにエンロールするためのエンロールメント要求をゲートウェイデバイスから受信し、1つ以上の電子デバイスを認証するよう構成されてもよい。デバイスエンロールメントポリシー特定エンジンは、ゲートウェイデバイスのために規定されるエンロールメントポリシーを特定するよう構成されてもよい。デバイスエンロールメントエンジンは、ゲートウェイデバイスをエンロールし、エンロールメントポリシーに従って1つ以上の電子デバイスをエンロールし、1つ以上のエンロールされたデバイスがシステムのリソースにアクセスすることを可能にする情報をゲートウェイデバイスに送信するよう構成されてもよい。いくつかの実施例では、デバイス認証エンジンは、1つ以上の電子デバイスに関連付けられるフィンガープリント情報を備えるデジタル証明書をゲートウェイデバイスから受信し、デジタル証明書を検証し、デジタル証明書に基づいて1つ以上の電子デバイスを認証するようさらに構成されてもよい。いくつかの実施例では、デバイスエンロールメントエンジンは、エンロールメントポリシーによって規定されるエンロールメントルールセットを1つ以上の電子デバイスに適用し、エンロールメントルールセットに従って1つ以上の電子デバイスをエンロールするようさらに構成されてもよい。いくつかの実施例では、エンロールメントルールセットは、1つ以上の電子デバイスをエンロールすることができるシステム内のユーザに関連する情報、システムの一人以上のユーザによってエンロールされることができるデバイスのタイプに関連する情報、および一人以上のユーザによってシステムにエンロールされることができるデバイスの最大数に関連する情報のうちの1つ以上を指定する。いくつかの実施例では、1つ以上の電子デバイスは、ヘッドレスデバイスを備え、ヘッドレスデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーIP(VoIP)電話を含む。