(57)【要約】【課題】  複雑なイベント処理及びビジネス活動モニタをサポートするサービス指向アーキテクチャを実施するシステム及び方法を提供する。【解決手段】  エンタープライズサービスバス（ＥＳＢ）は、１又は複数の装置の第１のリストを生成し、第１の装置に関連するユーザから、前記第１のリストの中の第２の装置の選択を受信し、前記ユーザからの前記選択に関連する機能を有する第２のリストを生成し、前記第１の装置から前記第２のリストの中の前記機能のうちの１つを実行する要求を受信し、前記第１の装置から受信した前記要求の第１の通信プロトコルを前記第２の装置により使用される第２の通信プロトコルに変換して変換された要求を生成し、前記要求の第１のメッセージフォーマットを第２のメッセージフォーマットに変換し、前記変換された要求を前記第２の装置へ送信する。【選択図】  図１Ａ
2014106979.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する方法であって、
１又は複数のコンピューティング装置を用いて、第１の装置の位置と、ネットワーク内で前記第１の装置の位置から一定距離範囲内にある１又は複数の装置の第１のリストとを識別するステップと、
前記１又は複数のコンピューティング装置を用いて、前記第１の装置に関連するユーザから前記第１のリストの中の第２の装置の選択を受信するステップと、
前記１又は複数のコンピューティング装置を用いて、前記ユーザにより選択された第２の装置に関連する機能を有する第２のリストを生成するステップと、
前記１又は複数のコンピューティング装置を用いて、前記第１の装置から、前記第２のリストの中の前記機能のうちの１つを実行する第１の要求を受信するステップと、
前記１又は複数のコンピューティング装置を用いて、前記第１の装置から受信した前記第１の要求の第１の通信プロトコルを前記第２の装置により用いられる第２の通信プロトコルに変換するステップであって、変換された要求を生成する、ステップと、
前記１又は複数のコンピューティング装置を用いて、前記第１の要求の第１のメッセージフォーマットを前記第２の装置により用いられる第２のメッセージフォーマットに変換するステップと、
前記１又は複数のコンピューティング装置を用いて、前記の変換された第１の要求を前記第２の装置へ送信するステップと、
を有する方法。
【請求項２】
前記第１の装置から、主題に関連する１又は複数種類のメディアについての第２の要求を受信するステップと、
グローバルインデックスと一致する前記第２の要求に基づき、前記要求が向けられている１又は複数のリソースサーバを決定するステップであって、前記１又は複数のリソースサーバは１又は複数種類の第２の装置と関連する、ステップと、
前記第２の要求の第１の通信プロトコルと、前記１又は複数のリソースサーバの１又は複数種類の第２の通信プロトコルとを決定するステップと、
前記第２の要求の第１のメッセージフォーマットと、前記１又は複数のリソースサーバの１又は複数種類の第２のメッセージフォーマットとを決定するステップと、
前記第１の通信プロトコルからの前記第２の要求を前記１又は複数のリソースサーバの前記１又は複数種類の第２の通信プロトコルの各々に変換するステップと、
前記第１のメッセージフォーマットからの前記第２の要求を前記１又は複数のリソースサーバの前記１又は複数種類の第２のメッセージフォーマットの各々に変換するステップと、
前記１又は複数のリソースサーバから、前記の変換された第２の要求と一致する前記１又は複数種類のメディアを読み出すステップと、
前記第１の装置へ、前記の変換された第２の要求と一致する前記１又は複数種類のメディアを送信するステップと、
を更に有する請求項１に記載の方法。
【請求項３】
前記第１の装置にＩＰ（internet  protocol）アドレスと名称を割り当て及び前記ＩＰアドレスをリストに追加することにより、使用のために前記第１の装置を登録するステップと、
前記第２の装置に装置識別子と名称を割り当て及び前記装置識別子をリストに追加することにより、前記ネットワーク内での使用のために前記第２の装置を登録するステップと、
を更に有する請求項１に記載の方法。
【請求項４】
前記変換された第１の要求及び前記変換された第２の要求に関連する装置使用エントリを記録するステップであって、前記装置使用エントリは、要求種類、前記第１の装置のＩＰアドレス、前記第１の装置に関連するユーザのユーザ識別子、前記第２の装置のユニークな装置識別子、並びに前記変換された第１の要求及び前記変換された第２の要求に含まれるメディアの種類を有する、ステップと、
を更に有する請求項２に記載の方法。
【請求項５】
前記第２の装置により実行される少なくとも１つのトランザクションに関連する装置使用エントリを読み出すステップと、
前記少なくとも１つのトランザクションに関連する請求情報を決定するステップと、
各トランザクションに関連する前記請求情報に基づき請求書を生成するステップと、
を更に有する請求項２に記載の方法。
【請求項６】
１又は複数の装置の前記第１のリストから選択された前記第２の装置のうちのどれが一定時間空いているかを決定するステップと、
１又は複数の装置の前記第１のリストから選択された前記第２の装置のうちのどれが空いているかを示す、前記第１の装置に対する通知を生成するステップと、
を更に有する請求項１に記載の方法。
【請求項７】
前記１又は複数のリソースサーバに格納された前記１又は複数種類のメディアを決定するステップと、
メタデータの濃度に基づき、前記１又は複数種類のメディアに関連するメタデータを決定するステップと、
前記１又は複数のリソースサーバ内でローカルデータベースインデックスを生成するステップであって、前記ローカルデータベースインデックスは、前記メタデータと、前記メタデータに関連する前記１又は複数種類のメディアが格納されている位置を指すポインタリファレンスとを保持する、ステップと、
を更に有する請求項２に記載の方法。
【請求項８】
１又は複数種類のメディアを有する要求を受信するステップと、
前記メディア内のテキストを識別するステップと、
前記テキストに基づきグローバルデータベースインデックスを編集するステップであって、前記グローバルデータベースインデックスは、前記要求に関連する前記メディアが格納されている位置を指すポインタリファレンスを有する、ステップと、
を更に有する請求項７に記載の方法。
【請求項９】
前記１又は複数のリソースサーバに関連する前記１又は複数種類の第２の装置のＡＰＩ（Application  Programming  Interface）に関する１又は複数種類の更新を決定するステップと、
前記１又は複数種類の第２の装置の前記ＡＰＩの前記１又は複数種類の更新が実行される前に、前記１又は複数種類の第２の装置に対する要求を受信するために前記第１の装置に公開される標準インタフェースが更新されるべきであると示す通知を送信するステップと、
を更に有する請求項２に記載の方法。
【請求項１０】
１又は複数のプロセッサと、
メモリに格納され前記１又は複数のプロセッサにより実行可能であるエンタープライズサービスバスであって、前記エンタープライズサービスバスは、１又は複数の装置の第１のリストを生成し、第１の装置に関連するユーザから、前記第１のリストの中の第２の装置の選択を受信し、前記ユーザから、前記の選択された第２の装置に関連する機能を有する第２のリストを生成し、前記第１の装置から、前記第２のリストの中の前記機能のうちの１つを実行する第１の要求を受信し、前記第１の装置から受信した前記第１の要求の第１の通信プロトコルを前記第２の装置により用いられる第２の通信プロトコルに変換して変換された要求を生成し、前記第１の要求の第１のメッセージフォーマットを前記第２の装置により用いられる第２のメッセージフォーマットに変換し、前記変換された第１の要求を前記第２の装置へ送信するよう構成される、エンタープライズサービスバスと、前記１又は複数のプロセッサにより実行可能なアプリケーションサービスであって、前記アプリケーションサービスは、ネットワーク内の前記第１の装置の位置を識別し、前記エンタープライズサービスバスに前記第１の装置の前記位置から一定距離範囲内にある１又は複数の装置の前記第１のリストを提供するよう構成される、アプリケーションサービスと、
を有するシステム。
【請求項１１】
前記エンタープライズサービスバスは、前記ネットワーク内の前記第１の装置から１又は複数種類のメディアについての第２の要求を受信し、前記第２の要求を前記アプリケーションサービスへ送信し、前記第２の要求が向けられている１又は複数のリソースサーバの決定を受信し、前記第２の要求の第１の通信プロトコルと、前記１又は複数のリソースサーバの１又は複数種類の第２の通信プロトコルとを決定し、前記第２の要求の第１のメッセージフォーマットと、前記１又は複数のリソースサーバの１又は複数種類の第２のメッセージフォーマットとを決定し、前記第１の通信プロトコルからの前記第２の要求を前記１又は複数のリソースサーバの前記１又は複数種類の第２の通信プロトコルの各々に変換し、前記第１のメッセージフォーマットからの前記第２の要求を前記１又は複数のリソースサーバの前記１又は複数種類の第２のメッセージフォーマットの各々に変換し、前記１又は複数のリソースサーバから、前記の変換された第２の要求と一致する前記１又は複数種類のメディアを読み出し、前記第１の装置へ、前記１又は複数種類のメディアを送信するよう更に構成され、
前記アプリケーションサービスは、前記エンタープライズサービスバスから前記第２の要求を受信し、グローバルインデックスに一致する前記第２の要求に基づき前記第２の要求が向けられている前記１又は複数のリソースサーバを決定し、前記１又は複数のリソースサーバの決定を前記エンタープライズサービスバスへ送信し、前記１又は複数のリソースサーバは１又は複数種類の第２の装置に関連する、よう更に構成される、
請求項１０に記載のシステム。
【請求項１２】
前記アプリケーションサービスは、前記変換された第１の要求及び前記変換された第２の要求に関連する装置使用エントリを記録するよう更に構成され、前記装置使用エントリは、要求種類、前記第１の装置のＩＰアドレス、前記第１の装置に関連するユーザのユーザ識別子、前記第２の装置のユニークな装置識別子、並びに前記変換された第１の要求及び前記変換された第２の要求に含まれるメディアの種類を有する、請求項１１に記載のシステム。
【請求項１３】
前記アプリケーションサービスは、前記第２の装置により実行される少なくとも１つのトランザクションに関連する装置使用エントリを読み出し、前記少なくとも１つのトランザクションに関連する請求情報を決定し、各トランザクションに関連する前記請求情報に基づき請求書を生成するよう更に構成される、請求項１１に記載のシステム。
【請求項１４】
前記エンタープライズサービスバスは、前記１又は複数のリソースサーバに格納された前記１又は複数種類のメディアを決定し、メタデータの濃度に基づき、前記１又は複数種類のメディアに関連するメタデータを決定し、前記１又は複数のリソースサーバ内でローカルデータベースインデックスを生成するよう更に構成され、前記ローカルデータベースインデックスは、前記メタデータと、前記メタデータに関連する前記１又は複数種類のメディアが格納されている位置を指すポインタリファレンスとを保持する、請求項１１に記載のシステム。
【請求項１５】
前記エンタープライズサービスバスは、１又は複数種類のメディアを有する要求を受信し、前記メディア内のテキストを識別し、前記テキストに基づきグローバルデータベースインデックスを編集するよう更に構成され、前記グローバルデータベースインデックスは、関連する前記１又は複数種類のメディアが格納されている位置を指すポインタリファレンスを有する、請求項１４に記載のシステム。
【請求項１６】
前記アプリケーションサービスは、前記１又は複数のリソースサーバに関連する前記１又は複数種類の第１の装置のＡＰＩ（Application  Programming  Interface）に関する１又は複数種類の更新を決定し、前記１又は複数種類の第２の装置の前記ＡＰＩの前記１又は複数種類の更新が実行される前に、前記１又は複数種類の第２の装置に対する要求を受信するために前記第１の装置に公開される標準インタフェースが更新されるべきであると示す通知を送信するよう更に構成される、請求項１１に記載のシステム。
【請求項１７】
コンピュータ可読プログラムを有するコンピュータにより使用可能な媒体を有するコンピュータプログラムであって、前記コンピュータ可読プログラムは、コンピュータで実行されると、該コンピュータに、
第１の装置の位置と、ネットワーク内で前記第１の装置の位置から一定距離範囲内にある１又は複数の装置の第１のリストとを識別し、
前記第１の装置に関連するユーザから前記第１のリストの中の第２の装置の選択を受信し、
前記ユーザにより選択された第２の装置に関連する機能を有する第２のリストを生成し、
前記第１の装置から、前記第２のリストの中の前記機能のうちの１つを実行する第１の要求を受信し、
前記第１の装置から受信した前記第１の要求の第１の通信プロトコルを前記第２の装置により用いられる第２の通信プロトコルに変換し、変換された要求を生成し、
前記第１の要求の第１のメッセージフォーマットを前記第２の装置により用いられる第２のメッセージフォーマットに変換し、
前記の変換された第１の要求を前記第２の装置へ送信させる、コンピュータプログラム。
【請求項１８】
前記コンピュータに、更に、
前記第１の装置から、主題に関連する１又は複数種類のメディアについての第２の要求を受信し、
グローバルインデックスと一致する前記第２の要求に基づき、前記要求が向けられている１又は複数のリソースサーバを決定し、前記１又は複数のリソースサーバは１又は複数種類の第２の装置と関連し、
前記第２の要求の第１の通信プロトコルと、前記１又は複数のリソースサーバの１又は複数種類の第２の通信プロトコルとを決定し、
前記第２の要求の第１のメッセージフォーマットと、前記１又は複数のリソースサーバの１又は複数種類の第２のメッセージフォーマットとを決定し、
前記第１の通信プロトコルからの前記第２の要求を前記１又は複数のリソースサーバの前記１又は複数種類の第２の通信プロトコルの各々に変換し、
前記第１のメッセージフォーマットからの前記第２の要求を前記１又は複数のリソースサーバの前記１又は複数種類の第２のメッセージフォーマットの各々に変換し、
前記１又は複数のリソースサーバから、前記の変換された第２の要求と一致する前記１又は複数種類のメディアを読み出し、
前記第１の装置へ、前記の変換された第２の要求と一致する前記１又は複数種類のメディアを送信させる、請求項１７に記載のコンピュータプログラム。
【請求項１９】
前記コンピュータに、さらに、
前記変換された第１の要求及び前記変換された第２の要求に関連する装置使用エントリを記録させ、前記装置使用エントリは、要求種類、前記第１の装置のＩＰアドレス、前記第１の装置に関連するユーザのユーザ識別子、前記第２の装置のユニークな装置識別子、並びに前記変換された第１の要求及び前記変換された第２の要求に含まれるメディアの種類を有する、請求項１８に記載のコンピュータプログラム。
【請求項２０】
前記コンピュータに、さらに、
前記１又は複数のリソースサーバに格納された前記１又は複数種類のメディアを決定し、
メタデータの濃度に基づき、前記１又は複数種類のメディアに関連するメタデータを決定し、
前記１又は複数のリソースサーバ内でローカルデータベースインデックスを生成させ、前記ローカルデータベースインデックスは、前記メタデータと、前記メタデータに関連する前記１又は複数種類のメディアが格納されている位置を指すポインタリファレンスとを保持する、請求項１８に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書は、複雑なイベント処理及びビジネス活動モニタをサポートするサービス指向アーキテクチャを実施するシステム及び方法に関する。特に、本願明細書は、装置及び装置のクラウドと通信するアプリケーションプログラミングインタフェース又は統一サーバに関する。
【背景技術】
【０００２】
消費者は、種々の消費者電子機器の選択肢を有する。しかしながら、消費者は異なるベンダの装置を用いるために、問題が生じる。各ベンダの装置は特定の方法で動作するので、消費者がそれらの装置と相互作用し及びそれらの装置を調整することを困難にする。結果として、食い違いが装置の連携を遅らせてしまう。
【０００３】
例えば、会社が会議室で会議を開くとき、従業員はモバイル装置を用い、会議室はスライドを投影するプロジェクタを有し、他のユーザは彼らのラップトップを用いてその会議に遠隔から接続する。遠隔ユーザは、ビデオ会議ソフトウェアを用いてリアルタイムにスライドを見ることができる。しかしながら、ソフトウェアは機能不良になることが多く、会議のアクセスコードが全ての参加者に送られていない、等である。さらに、この設定は、ユーザがイベントの前に会議室に来て、ラップトップにプレゼンテーションをダウンロードする等の必要がある。これは、時間を浪費し、装置が技術的困難を経験するときには会議が遅れてしまう。
【０００４】
ある解決策は、各装置のＡＰＩ（application  programming  interface）と接続するアプリケーションを開発することである。各ベンダの装置はその他の競合者と異なるＡＰＩを有するので、アプリケーション開発者が全ての可能なＡＰＩを調整し、効率的にアプリケーションを開発することは困難である。
【０００５】
さらに、クラウドは特定の装置に接続されるので、装置中心データのみがクラウドに登録され得る。その結果、全てのユーザ−マシン間相互作用は個々のクラウドで分裂してしまう。その結果、システムが、ユーザが異種装置の集合で生成し得るデータ及び使用パターンの総体的眺望を得られないので、各クラウドのコンテンツ値は低い。
【０００６】
また、各装置は、非公開に設けられた場合に消費者が設置し管理する又は公的に使用される場合に接続する異なるバックエンド又はサーバを有するので、装置のバックエンドを更新することは困難である。各装置は異なるバックエンドを有するので、ユーザは各装置のバックエンドを別個に更新しなければならない。さらに、各装置に関するデータは別個のシステムに存在るので、装置データのフラグメント化を生じ、装置データを相関させる機会を排除してしまう。
【０００７】
ある解決策は、全て同一の企業により製造された商品のホストを購入することである。例えば、消費者は、モバイルの必要性のためにｉＰｈｏｎｅを、ラップトップにはＭａｃｉｎｔｏｓｈを、ＷｉＦｉ装置を管理するためにＡｐｐｌｅ  Ａｉｒｐｏｒｔを、そしてテレビを観るためにＡｐｐｌｅＴＶを購入できる。しかしながら、これらの商品は、他の装置よりも高価であり、ビジネスには向かない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本開示は、異種装置間で要求を変換するシステムにより、従来技術の欠点を克服する。
【課題を解決するための手段】
【０００９】
一実施形態では、システムは、エンタープライズサービスバス及びＮＡａａＳ（network  appliance  as  a  service）アプリケーションサービスを有する。エンタープライズサービスバスは、ＮＡａａＳアプリケーションサービスに、ネットワーク内の１又は複数種類の装置を識別し、各装置にＩＰアドレス及び名称を割り当てることにより前記ネットワーク内で使用するために前記１又は複数種類の装置を登録し、前記ＩＰアドレスをＩＰアドレスリストに追加する。エンタープライズサービスバスは、第１の装置のために１又は複数の装置の第１のリストを生成し、前記第１の装置に関連するユーザから、前記第１のリストの中の第２の装置の選択を受信し、前記ユーザからの前記選択に関連する機能を有する第２のリストを生成し、前記第１の装置から前記第２のリストの中の前記機能のうちの１つを実行する要求を受信し、前記第１の装置から受信した前記要求の第１の通信プロトコルを前記第２の装置により使用される第２の通信プロトコルに変換して変換された要求を生成し、前記要求の第１のメッセージフォーマットを第２のメッセージフォーマットに変換し、前記変換された要求を前記第２の装置へ送信する。別の実施形態では、ＮＡａａＳアプリケーションサービスは、ネットワーク内の第１の装置の位置を識別し、エンタープライズサービスバスに前記第１の装置の位置から一定距離範囲内にある１又は複数の装置の第１のリストを提供する。
【００１０】
別の実施形態では、エンタープライズサービスバスは、ＮＡａａＳアプリケーションサービスに、グローバルインデックスと一致する要求に基づき、第１の装置から受信した要求が向けられている１又は複数のリソースサーバを決定するよう指示する。エンタープライズサービスバスは、前記要求の第１の通信プロトコルを前記１又は複数のリソースサーバにより使用される１又は複数種類の第２の通信プロトコルに変換し、前記要求の第１のメッセージフォーマットを前記１又は複数のリソースサーバにより使用されｕｒ１又は複数種類の第２のメッセージフォーマットに変換して変換された要求を生成し、前記要求の第１のメッセージフォーマットを１又は複数種類の第２のメッセージフォーマットに変換し、前記変換された要求を前記ＮＡａａＳアプリケーションサービスへ送信し、前記ＮＡａａＳアプリケーションサービスは、前記１又は複数のリソースサーバからの前記変換された要求と一致する１又は複数種類のメディアを読み出す。
【００１１】
他の態様は、上述の及び他の新規な態様のための対応する方法、システム、装置及びコンピュータプログラムを有する。
【００１２】
有利なことに、システムは、クライアントアプリケーションの開発及び保守を簡略化し高速化し、さらに一貫したユーザ経験を可能にする統一ＡＰＩを提示し、ミドルウェアサーバ及び一箇所で全てを記録するミドルウェアサーバのアプリケーション関連サービスを提供する。このように、情報は、異なるベンダからの全ての装置に渡って相関付けられ、より高い価値のサービスを提供する。さらに、システムは、ネットワーク内の全ての装置にアクセスするシングルサインオンを生成する。本願明細書に記載される特徴及び利点は網羅的ではなく、図面及び説明を参照して多くの追加の特徴及び利点が明らかになるだろう。さらに、留意すべき点は、本願明細書で用いられる語は、基本的に読み易さ及び説明的目的で選択されており、本願明細書に開示された事項の範囲を制限しない。
【図面の簡単な説明】
【００１３】
本発明は、例を用いて説明され、添付の図面に限定されるものではない。図中、同様の参照符号は同様の要素を表すために用いられる。
【図１Ａ】統一通信をサポートするサービス指向アーキテクチャを実装するシステムの一実施形態を示すハイレベルブロック図である。
【図１Ｂ】統一通信をサポートするサービス指向アーキテクチャを実装するシステムの別の実施形態を示すハイレベルブロック図である。
【図２Ａ】エンタープライズサービスバスの一実施形態を示すブロック図である。
【図２Ｂ】ＮＡａａＳ（Network  Appliance  as  a  Service）アプリケーションサービスの一実施形態を示すブロック図である。
【図３】ユーザにサービス概観を提供するウェブページを表示するユーザインタフェースの一実施形態のグラフィック表現である。
【図４】協調コンピューティング装置で閲覧するためのメディアタイプを選択するユーザインタフェースの一実施形態のグラフィック表現である。
【図５】表示のためにメディアを送信する位置を選択するユーザインタフェースの一実施形態のグラフィック表現である。
【図６】ユーザ装置の位置の又はその設定距離内の装置リストを表示するユーザインタフェースの一実施形態のグラフィック表現である。
【図７】ユーザ装置１０２から選択された協調コンピューティング装置へ送信するコマンドリストを表示するユーザインタフェースの一実施形態のグラフィック表現である。
【図８】協調コンピューティング装置で文書を表示するソースを選択する選択肢リストを表示するユーザインタフェースの一実施形態のグラフィック表現である。
【図９】メディアリストを表示するユーザインタフェースの一実施形態のグラフィック表現である。
【図１０】メディアリストを表示するユーザインタフェースの別の実施形態のグラフィック表現である。
【図１１】ユーザのために電子カレンダ内のイベントを生成するユーザインタフェースの一実施形態のグラフィック表現である。
【図１２】カレンダイベントのために予約された１又は複数の装置のためにアップロードするメディアを選択するユーザインタフェースの一実施形態のグラフィック表現である。
【図１３】カレンダ内に生成されたイベントの概観を提供するユーザインタフェースの一実施形態のグラフィック表現である。
【図１４】協調コンピューティング装置の構成設定を指定するため及び構成設定をオン又はオフにするためのユーザインタフェースの一実施形態のグラフィック表現である。
【図１５】１又は複数種類の装置間の通信を管理する方法の一実施形態のフロー図である。
【図１６Ａ】異種装置間の相互接続性を制御する方法の一実施形態のフロー図である。
【図１６Ｂ】異種装置間の相互接続性を制御する方法の別の実施形態のフロー図である。
【図１７】装置により実行される各トランザクションについて決定される請求情報に基づき請求書を生成する方法の一実施形態のフロー図である。
【図１８】１又は複数のリソースサーバのグローバルデータベースインデックスをコンパイルする方法の一実施形態のフロー図である。
【図１９】１又は複数のリソースサーバの要求を変換する方法の一実施形態のフロー図である。
【図２０】カレンダイベントのために予約された１又は複数の装置を制御する方法の一実施形態のフロー図である。
【図２１】カレンダイベントのために予約された１又は複数の装置を制御する方法の別の実施形態のフロー図である。
【図２２】カレンダイベントのための１又は複数の通知を生成する方法の一実施形態のフロー図である。
【発明を実施するための形態】
【００１４】
以下に、複雑なイベント処理及びビジネス活動モニタをサポートするサービス指向アーキテクチャを実施するシステム及び方法を説明する。以下の説明では、説明を目的として、本発明の実施形態の完全な理解を提供するために、多くの詳細事項が説明される。しかしながら、当業者は、実施形態がそのような特定の詳細にかかわらず実施できることを理解するだろう。他の例では、本発明を不明瞭にしないために、構造及び装置がブロック図で示される。例えば、本発明は、以下の一実施形態では、スマートフォン及び特定のソフトウェア及びハードウェアのようなユーザ装置を参照して説明される。しかしながら、以下の説明は、データ及びコマンドを受信可能な如何なる種類のコンピューティング装置、並びにサービスを提供する如何なる周辺装置にも適用される。
【００１５】
本願明細書において「一実施形態」又は「ある実施形態」等のような表現は、実施形態と関連して記載された特定の機能、構造又は特徴が少なくとも１つの実施形態に含まれることを意味する。明細所内の種々の文の中の「一実施形態では」という表現の出現は、必ずしも全て同じ実施形態を参照していない。
【００１６】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットに対する動作のアルゴリズム及び象徴的表現の観点で提供される。これらのアルゴリズムの説明及び表現は、データ処理技術の当業者により、業務内容を最も効率的に他の当業者に伝えるために用いられる手段である。アルゴリズムは、ここでは及び概して、所望の結果を生じる自己矛盾のないステップシーケンスであると考えられる。ステップは、物理量の物理的操作を必要とするステップである。通常、必ずしも必要ではないが、これらの量は、格納され、転送され、結合され、比較され及びその他の場合には操作され得る電気信号又は磁気信号の形式を取る。基本的に一般的に用いられるという理由で、これらの信号をビット、値、要素、シンボル、文字、語、数値、等として表すことが便利であることが分かっている。
【００１７】
しかしながら、これらの及び類似の語の全ては、適切な物理量に関連付けられ、これらの量に適用される便宜的ラベルに過ぎない。特に断りのない限り、以下の議論から明らかなように、以下の説明を通じて、「処理」、「計算」又は「演算」又は「決定」又は「表示」等の語を用いた議論は、コンピュータシステム又は同様の電子コンピューティング装置の動作及び処理を表す。コンピュータシステム又は同様の電子コンピューティング装置は、コンピュータシステムのレジスタ及びメモリ内にある物理（電子）量として表されたデータを操作し、コンピュータシステムのメモリ若しくはレジスタ又は情報記憶、送信又は表示装置等の中の物理量として同様に表される他のデータに変換する。
【００１８】
本発明は、本願明細書の動作を実行する装置にも関する。この装置は、所要の目的のために特に構成されても良く、又はコンピュータに格納されたコンピュータプログラムにより選択的に起動され又は再構成される汎用目的コンピュータを有しても良い。このようなコンピュータプログラムは、フロッピディスク、光ディスク、ＣＤ−ＲＯＭ及び磁気ディスクを含む任意の種類のディスク、ＲＯＭ（read-only  memory）、ＲＡＭ（random  access  memory）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光カード、不揮発性メモリを有するＵＳＢキーを含むフラッシュメモリ、又は電子命令を格納するのに適する任意の種類の媒体のような、各々がコンピュータシステムバスに結合された、しかしこれらに限定されないコンピュータ可読記憶媒体に格納されても良い。
【００１９】
幾つかの実施形態は、完全なハードウェアの実施形態、完全なソフトウェアの実施形態又はハードウェアとソフトウェア要素の両方を含む実施形態の形式を取り得る。好適な実施形態は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがこれらに限定されないソフトウェアで実装されても良い。
【００２０】
さらに、幾つかの実施形態は、コンピュータ又は任意の命令実行システムにより又はそれと関連して使用するためのプログラムコードを提供するコンピュータにより使用可能な又はコンピュータにより読み取り可能な媒体からアクセス可能なコンピュータプログラムプロダクトの形式を取り得る。本発明の目的のために、コンピュータにより使用可能な又はコンピュータにより読み取り可能な媒体は、命令実行システム、機器又は装置により若しくはそれらと関連して使用するためのプログラムを有し、格納し、通信し、伝達し又は転送することが可能な任意の機器であっても良い。
【００２１】
プログラムコードを格納し及び／又は実行するのに適するデータ処理システムは、システムバスを通じてメモリ要素に直接又は間接に結合される少なくとも１つのプロセッサを有する。メモリ要素は、プログラムコードの実際の実行中に用いられるローカルメモリ、大容量記憶装置、及び実行中にコードが大容量記憶装置から読み出されなければならない回数を低減するために少なくとも特定のプログラムコードの一時的記憶を提供するキャッシュメモリを含み得る。入力／出力又はＩ／Ｏ装置（キーボード、ディスプレイ、ポインティングデバイス等を含むがこれらに限定されない）は、直接に又は介入するＩ／Ｏ制御部を通じてシステムに結合され得る。
【００２２】
ネットワークアダプタも、介入する私設若しくは公衆ネットワークを通じてデータ処理システムを他のデータ処理システムに又は遠隔プリンタ若しくは記憶装置に結合するために、システムに結合されても良い。モデム、ケーブルモデム及びEthernet(登録商標)カードは、現在利用可能な種類のネットワークアダプタのうちの少数の例に過ぎない。
【００２３】
最後に、本願明細書で提示されるアルゴリズム及びディスプレイは、本質的に、任意の特定のコンピュータ又は他の機器にも関連しない。種々の汎用システムが、本願明細書の教示に従ってプログラムと共に用いられても良く、所要の方法ステップを実行するために更に特定の装置を構成することが都合が良いことがあり得る。種々のこれらのシステムの所要の構造は、以下の説明から明らかである。さらに、本願明細書は、任意の特定のプログラミング言語を参照して記載されない。理解されるべきことに、種々のプログラミング言語が、本願明細書に記載された種々の実施形態の教示を実施するために用いられても良い。
【００２４】
＜システム概要＞
図１Ａは、複雑なイベント処理及びビジネス活動モニタをサポートするサービス指向アーキテクチャを実施するシステム１００のハイレベルブロック図を示す。システム１００の図示の実施形態は、ユーザ装置１０２ａ１０２ｎ、協調コンピューティング装置１０３ａ−１０３ｎ、ネットワーク１０４、ウェブサーバ１２０、ＮＡａａＳ（Network  Appliance  As  A  Service）ミドルウェアサーバ１０１、及びＮＡａａＳアプリケーションサーバ１２３を有する。図１Ａ及び以下の図では、参照符号の後の文字は、例えば「１０２ａ」は、特定の参照符号を有する要素への参照である。文章中の、後続の文字を有しない参照符号、例えば「１０２」は、その参照符号を付された要素の任意の又は全ての例への全般的な参照である。
【００２５】
ネットワーク１０４は、従来型の有線又は無線であり、スター型、トークンリング型又は当業者に知られている他の構成のような任意の数の構成を有しても良い。さらに、ネットワーク１０４は、ＬＡＮ（local  area  network）、ＷＡＮ（wide  area  network）（例えば、インターネット）、及び／又は複数のサービスが通信できる任意の他の相互接続されたデータ経路を有しても良い。更に別の実施形態では、ネットワーク１０４は、ピアツーピアネットワークであっても良い。ネットワーク１０４は、種々の異なる通信プロトコルでデータを送信する通信ネットワークの一部に結合され又はそれを含んでも良い。更に別の実施形態では、ネットワーク１０４は、Ｂｌｕｅｔｏｏｔｈ(登録商標)通信ネットワーク又はＳＭＳ（short  messaging  service）、ＭＭＳ（multimedia  messaging  service）、ＨＴＴＰ（hypertext  transfer  protocol）、直接データ接続、ＷＡＰ、電子メール等を介してデータを送信及び受信するセルラ通信ネットワークを有しても良い。１つのネットワーク１０４のみが複数のユーザ装置１０２ａ−１０２ｎ、複数の協調コンピューティング装置１０３ａ−１０３ｎ、ウェブサーバ１２０、ＮＡａａＳサーバ１２３及びＮＡａａＳミドルウェアサーバ１０１に結合されるが、実際には、任意の数のネットワーク１０４がこれらのエンティティに接続できる。
【００２６】
ユーザ装置１０２ａ−１０２ｎは、特定ユーザに関連付けられた装置である。例えば、会社は、自身の従業員にモバイル装置又はラップトップを供給する。ユーザ装置１０２ａ−１０２ｎの各々は、それぞれ信号線１１２ａ−１１２ｎを介してネットワーク１０４に結合される。ユーザ装置１０２は、メモリ、プロセッサ及び通信能力を有する任意のコンピューティング装置である。例えば、ユーザ装置１０２は、タブレットコンピュータ、パーソナルデジタルアシスタント、スマートフォン、フューチャフォン等であり得る。ユーザ装置１０２は、無線で又は有線接続を通じてネットワーク１０４と通信できる。ユーザ装置１０２は、エンタープライズサービスバス１０７により処理されるべきメッセージを生成する１又は複数のユーザアプリケーション（図示しない）を有する。
【００２７】
ユーザ装置１０２は、データをＮＡａａＳミドルウェアサーバ１０１へ送信し及びそれから受信するよう適応される。例えば、ユーザ装置１０２は、プレゼンテーションプログラム文書の画像を複数の協調コンピューティング装置１０３ａ−１０３ｎのうちの少なくとも１つで投影するコマンドを、ＮＡａａＳミドルウェアサーバ１０１へ送信する。ユーザ装置１０２は、エンタープライズサービスバス１０７により提供される情報を閲覧するためのディスプレイを有する。例えば、ユーザ装置１０２は、ユーザ装置１０２で表示するために、複数の協調コンピューティング装置１０３ａ−１０３ｎを一覧表にするＮＡａａＳミドルウェアサーバ１０１からグラフィカルデータを受信する。
【００２８】
ユーザ装置１０２が他のユーザ装置１０２又は協調コンピューティング装置１０３とＮＡａａＳミドルウェアサーバ１０１を介して相互作用できるように、ユーザ装置１０２は自身の位置を決定する。ユーザ装置１０２は、自身の位置を決定するために装置自体に含まれるＧＰＳ（global  positioning  system）回路を用いることにより、自身の位置情報を決定する。ユーザ装置１０２の位置を屋内で決定するために、ユーザ装置１０２は、無線周波数、超音波信号又は不可視光通信を用いる。例えば、ユーザ装置１０２は、無線アクセスポイントを通じて、受信信号強度の測定に基づき、自身の位置を決定する。ユーザ装置１０２は、ＭＡＣ（media  access  control）アドレス及びインターネット上の位置の組を有するデータベースにアクセスする。位置を決定するために、ユーザ装置１０２は、アクセスポイントＭＡＣアドレスに対応する位置をデータベースから読み出す。
【００２９】
別の実施形態では、ユーザ装置１０２は、ＳＮＭＰ、ＩＣＭＰ、Bonjour等のような特定のプロトコルを用いてネットワーク１０４を介して機能する装置発見処理を実行する。例えば、ユーザ装置１０２は、ＮＡａａＳミドルウェアサーバ１０１に装置を発見するよう問い合わせる。ＮＡａａＳミドルウェアサーバ１０１は、ＳＮＭＰ又はＩＣＭＰプロトコルを用いて、装置を発見し、発見した装置をそれらのＩＰ（internet  protocol）アドレス及びＭＡＣ（media  access  control）アドレス等と共にユーザ装置１０２に報告する。
【００３０】
協調コンピューティング装置１０３ａ−１０３ｎは、特定の位置及び／又は特定の機能を関連付けられた装置である。協調コンピューティング装置１０３ａ−１０３ｎは、会議室に割り当てられ、又は会議に割り当てられ得る。例えば、プロジェクタ及び対話型ホワイトボードは、ビル内の複数の会議室のうち選択された会議室に割り当てられ得る。協調コンピューティング装置１０３ａ−１０３ｎの各々は、それぞれ信号線１１３ａ−１１３ｎを介してネットワーク１０４に結合される。協調コンピューティング装置１０３は、メモリ及びプロセッサを有する任意のコンピューティング装置である。例えば、協調コンピューティング装置１０３は、プロジェクタ、モニタ、テレビジョン、対話型ホワイトボード、ウェブカメラ、マイクロフォン、ラウドスピーカ、ＣＤ／ＤＶＤプレイヤ、電子ペーパ装置、電子リーダ、デスクトップコンピュータ、タブレット、スマートフォン等であり得る。
【００３１】
協調コンピューティング装置１０３は、データをＮＡａａＳミドルウェアサーバ１０１へ送信し及びそれから受信するよう適応される。例えば、会議室内のプロジェクタは、ＮＡａａＳミドルウェアサーバ１０１からプレゼンテーションプログラム文書を受信できる。別の例では、ウェブカメラ、マイクロフォン及びモニタを有する第１の位置にあるビデオ会議装置は、リアルタイムオーディオビデオ同期通信データストリームをキャプチャし、それをＮＡａａＳミドルウェアサーバ１０１内のエンタープライズサービスバス１０７を通じて第２の位置にある別のビデオ会議装置へ送信できる。
【００３２】
ＮＡａａＳミドルウェアサーバ１０１は、メモリ及びプロセッサを有する任意のコンピューティング装置であり、信号線１１６を介してネットワーク１０４に接続される。ＮＡａａＳミドルウェアサーバ１０１は、エンタープライズサービスバス１０７を有する。エンタープライズサービスバスは、図２Ａを参照して以下に詳細に記載される。
【００３３】
エンタープライズサービスバス１０７は、互いに独立に通信するよう配置される異種装置及びそれらの対応するリソースサーバの１又は複数のネットワークとの標準的インタフェースを提供するソフトウェア及びルーチンを有する。一実施形態では、エンタープライズサービスバス１０７は、起動支援、ルーティング（例えば、コンテンツに基づくルーティング、静的／動的ルーティング、ポリシに基づくルーティング、ルールに基づくルーティング）、プロセスコレオグラフィ、サービスオーケストレーション、複雑なイベント処理、セキュリティ及び管理（例えば、モニタリング、ロギング）を含む１又は複数のサービスを実行する。エンタープライズサービスバス１０７は、サービスを実施するＮＡａａＳアプリケーションサービス１０６にあるコード内に含まれるメソッドを呼び出す。例えば、エンタープライズサービスバス１０７は、ＮＡａａＳアプリケーションサービスに、ユーザを認証し、装置使用エントリを登録し、メディアを格納し、メディアを分析し、ユーザのスキルに関連するキーワードをインデックス付けし、ユーザクエリと一致するスキルを有するユーザプロファイルについてデータベースを検索するよう命令する。
【００３４】
ユーザ装置１０２ａ−１０２ｎ又は協調コンピューティング装置１０３ａ―１０３ｎは、特定の通信プロトコルを介して特定のメッセージングフォーマットを用いて、エンタープライズサービスバス１０７を通じて互いに通信し及びサービス要求を送信する。メッセージフォーマットは、メッセージの構造及び形式を定める。例えば、メッセージフォーマットは、ＳＯＡＰ（Simple  Object  Access  Protocol）、ＸＭＬ（eXtensible  Markup  Language）等を有する。通信プロトコルは、シンタックス、セマンティクス、及び通信の同期を規定するルールセットを定める。例えば、通信プロトコルは、ＦＴＰ（File  Transfer  Protocol）、ＨＴＴＰ（Hypertext  Transfer  Protocol）、ＭＱ（Message  Queue）、ＨＯＰ（Internet  Inter-Orb  Protocol）等を有する。エンタープライズサービスバス１０７及びＮＡａａＳアプリケーションサービス１０６は別個のサーバに存在するとして図示されたが、一実施形態では、それらは同一のサーバに存在する。
【００３５】
ＮＡａａＳアプリケーションサーバ１２３は、メモリ及びプロセッサを有する任意のコンピューティング装置であり、信号線１２４を介してネットワーク１０４に接続される。ＮＡａａＳアプリケーションサーバ１２３は、より高レベルのサービスを提供するためにアプリケーションとして抽出されエンタープライズサービスバス１０７により組み立てられた実装サービスの集合であるＮＡａａＳアプリケーションサービス１０６を有する。ＮＡａａＳアプリケーションサービス１０６は、図２Ｂを参照して以下に詳細に記載される。
【００３６】
ウェブサーバ１２０は、メモリ及びプロセッサを有する任意のコンピューティング装置であり、信号線１２２を介してネットワーク１０４に接続される。ウェブサーバ１２０は、ユーザインタフェースエンジン１２１を有する。ウェブサーバ１２０は図１Ａに別個のサーバとして示されるが、幾つかの実施形態では、ユーザインタフェースエンジン１２１は、ユーザ装置１０２に格納されるか又はスタンドアロン型アプリケーションとして機能しても良い。
【００３７】
ユーザインタフェースエンジン１２１は、ユーザインタフェースを表示するためにグラフィカルデータを生成するソフトウェア及びルーチンである。一実施形態では、ユーザインタフェースエンジン１２１は、ユーザインタフェースを表示するグラフィカルデータを生成する後述の機能を提供するために、プロセッサにより実行可能な命令セットである。別の実施形態では、ユーザインタフェースエンジン１２１は、メモリに格納され、プロセッサによりアクセス可能且つ実行可能である。
【００３８】
ユーザインタフェースエンジン１２１は、協調コンピューティング装置１０３を制御するために、情報を表示するためのグラフィカルデータを生成する要求を受信する。例えば、ユーザインタフェースエンジン１２１は、特定の位置において利用可能な協調コンピューティング装置１０３又は各協調コンピューティング装置１０３と関連する機能を一覧表示するウェブページを表示するためのグラフィカルデータを生成する。ユーザは情報を入力し、ユーザインタフェースエンジン１２１はその情報をエンタープライズサービスバス１０７へ送信し、実行されるべき動作を決定する。例えば、ユーザ装置１０２が、要求に含まれる画像を投影するためにプロジェクタに命令を送信する場合、ユーザインタフェースエンジン１２１は、その要求をエンタープライズサービスバス１０７へ送信する。エンタープライズサービスバス１０７は、その要求をプロジェクタへ送信し、その要求に対して他の動作を実行するようＮＡａａＳアプリケーションサービス１０６に命令する。図３−１４は、例示的なユーザインタフェースを有する。
【００３９】
別の実施形態では、ユーザインタフェースエンジン１２１は、検索ユーザインタフェースを表示するためのグラフィカルデータを生成する要求を受信する。例えば、ユーザインタフェースエンジン１２１は、１又は複数の語のクエリを入力するためのテキストボックスを有するウェブページを表示するためのグラフィカルデータを生成する。ユーザはクエリを入力し、ユーザインタフェースエンジン１２１はそのクエリをエンタープライズサービスバス１０７へ送信し、エンタープライズサービスバス１０７はＮＡａａＳアプリケーションサービス１０６へ要求を送信する。検索ユーザインタフェースは、要求元による検索クエリを入力するための入力を有しても良い。検索クエリは、テキスト情報、視覚情報又は聴覚情報を有しても良い。
【００４０】
ＮＡａａＳアプリケーションサービス１０６は、１又は複数のリソースサーバから一致する検索結果を読み出し、その検索結果をエンタープライズサービスバス１０７へ送信する。エンタープライズサービスバス１０７は、その検索結果をユーザ装置１０２へ送信する。一実施形態では、ユーザインタフェースエンジン１２１は、１又は複数のプロファイル及び１又は複数のメディア種類を、エンタープライズサービスバス１０７を介して要求元へ送信する。検索ユーザインタフェースの一例は、図９−１０を参照して以下に詳細に記載される。
【００４１】
図１Ｂは、複雑なイベント処理及びビジネス活動モニタをサポートするサービス指向アーキテクチャを実施するシステム１１０の別のハイレベルブロック図を示す。システム１１０の図示の実施形態は、第１層としてユーザ装置１０２ａ−１０２ｎ、第２層としてエンタープライズサービスバス１０７、並びに第３層としてＮＡａａＳアプリケーションサービス１０６、協調コンピューティング装置１０３ａ−１０３ｎ及びそれらの対応するリソースサーバ１０５ａ−１０５ｎを有する。リソースサーバ１０５ａ−１０５ｎの各々は、協調コンピューティング装置１０３ａ−１０３ｎが要求に応答してトランザクションを実行するときはいつでも、メディア種類のコピーを格納し、対応する協調コンピューティング装置１０３ａ−１０３ｎと関連付けられたメディア種類をインデックス付けする。例えば、プロジェクタリソースサーバは投影されたプレゼンテーションプログラム文書を格納し、ビデオ会議リソースサーバはビデオ会議のビデオ録画を格納し、対話型ホワイトボードサーバは対話型ホワイトボードの画像を格納する。
【００４２】
エンタープライズサービスバス１０７レイヤは、ユーザ装置１０２ａ−１０２ｎレイヤから到来する要求を処理し、それらの要求を処理のためにＮＡａａＳアプリケーションサービス１０６へ、並びに協調コンピューティング装置１０３ａ−１０３ｎ及びそれらの対応するリソースサーバ１０５ａ−１０５ｎへ中継する。一実施形態では、エンタープライズサービスバス１０７レイヤは、エンタープライズサービスレイヤ１０７に接続してメッセージを送信し応答を受信するユーザ装置１０２ａ−１０２ｎにあるユーザアプリケーションにインタフェースを提供する１又は複数のポートを有する。別の実施形態では、エンタープライズサービスバス１０７レイヤは、ＮＡａａＳアプリケーションサービス１０６レイヤ、並びに協調コンピューティング装置１０３ａ−１０３ｎ及びそれらの対応するリソースサーバ１０５ａ−１０５ｎを有するレイヤと通信するために１又は複数のポートを有する。一実施形態では、エンタープライズサービスバス１０７にあるポートは、ユーザアプリケーションの特定メッセージフォーマット及び通信プロトコルのメッセージ及び通信のみを処理する特定のポート種類であっても良い。別の実施形態では、エンタープライズサービスバス１０７にあるポートは、エンタープライズサービスバス１０７との汎用インタフェースを含み、任意のメッセージフォーマット及び通信プロトコルの組合せを処理できる汎用ポート種類であっても良い。
【００４３】
＜エンタープライズサービスバス＞
図２Ａを参照すると、エンタープライズサービスバス１０７の一例がより詳細に示される。図２Ａは、プロセッサ２４０、メモリ２４５、通信ユニット２５０及びエンタープライズサービスバス１０７を有するサーバ１０１のブロック図である。
【００４４】
プロセッサ２４０、メモリ２４５、通信ユニット２５０及びエンタープライズサービスバス１０７は、バス２２０に通信可能に結合される。バス２２０は、ＩＳＡ（industry  standard  architecture）バス、ＰＣＩ（peripheral  component  interconnect）バス、ＵＳＢ（universal  serial  bus）又は同様の機能を提供する従来知られている特定の他のバスを含む１又は複数のバスを表しても良い。
【００４５】
プロセッサ２４０は、論理演算ユニット、マイクロプロセッサ、汎用制御部、又は計算を実行しディスプレイ装置に電子表示信号を提供する特定の他のプロセッサアレイを有する。プロセッサ２４０は、信号線２３１を介してサーバ１０１の他のコンポーネントと通信するためにバス２２０に結合される。プロセッサ２４０は、データ信号を処理し、ＣＩＳＣ（complex  instruction  set  computer）アーキテクチャ、ＲＩＳＣ（reduced  instruction  set  computer）アーキテクチャ、又は命令セットの組合せを実施するアーキテクチャを含む種々のコンピューティングアーキテクチャを有しても良い。図２Ａには単一のプロセッサのみを示したが、複数のプロセッサが含まれても良い。処理能力は、画像表示のサポート、画像のキャプチャ及び送信に限られても良い。処理能力は、種々の種類の特徴抽出及びサンプリングを含むより複雑なタスクを実行するために十分であっても良い。当業者には、他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、物理的構成が可能であることが明らかである。
【００４６】
メモリ２４５は、プロセッサ２４０により実行され得る命令及び／又はデータを格納する。メモリ２４５は、信号線２３３を介してＮＡａａＳミドルウェアサーバ１０１の他のコンポーネントと通信するためにバス２２０に結合される。命令及び／又はデータは、本願明細書に記載した技術のいずれか及び／又は全てを実行するコードを有しても良い。メモリ２４５は、ＤＲＡＭ（dynamic  random  access  memory）素子、ＳＲＡＭ（static  random  access  memory）素子、フラッシュメモリ又は従来知られている特定の他のメモリ素子であっても良い。一実施形態では、メモリ２４５は、不揮発性メモリ、又は同様の永久記憶装置、及び媒体ハードディスクドライブ、フロッピディスクドライブ、ＣＤ−ＲＯＭ装置、ＤＶＤ−ＲＯＭ装置、ＤＶＤ−ＲＡＭ装置、ＤＶＤ−ＲＷ装置、フラッシュメモリ装置又は従来知られているより永久的に情報を格納する特定の他の大容量記憶装置のような媒体も含む。
【００４７】
通信ユニット２５０は、プロセッサ２４０に接続することにより、ネットワーク１０４及び他の処理システムからデータを受信し及びそれへ送信するハードウェアである。通信ユニット２５０は、画像、ビデオ又は文書のようなデータを、複数のユーザ装置１０２ａ−１０２ｎから受信する。通信ユニット２５０は、ウェブサーバ１２０から特定のサブジェクトに関連するメディアに対する要求を受信する。通信ユニット２５０は、ウェブサーバ１２０から１又は複数のメディア種類に対する要求も受信する。通信ユニット２５０は、複数の協調コンピューティング装置１０３ａ−１０３ｎへ情報を送信する。例えば、通信ユニット２５０は、画像、文書又はビデオを表示するためのグラフィカルデータを送信する。通信ユニット２５０は、信号線２３５を介してＮＡａａＳミドルウェアサーバ１０１の他のコンポーネントと通信するためにバス２２０に結合される。
【００４８】
一実施形態では、通信ユニット２５０は、ユーザ装置１０２、協調コンピューティング装置１０３、リソースサーバ１０５、ＮＡａａＳアプリケーションサーバ１２３、ウェブサーバ１２０又は別の通信チャネルとの直接物理接続のためのポートを有する。例えば、通信ユニット２５０は、ＥＳＢ１０７との有線通信のためにＲＪ１４又は類似のポートを有する。別の実施形態では、通信ユニット２５０は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、Ｂｌｕｅｔｏｏｔｈ（登録商標）又は別の適切な無線通信方法のような１又は複数の無線通信方法を用いて、ユーザ装置１０２又は任意の他の通信チャネルとデータを交換するために無線通信機を有する。
【００４９】
更に別の実施形態では、通信ユニット２５０は、ＳＭＳ（short  messaging  service）、ＭＭＳ（multimedia  messaging  service）、ＨＴＴＰ（hypertext  transfer  protocol）、直接データ接続、ＷＡＰ、電子メール又は他の適切な種類の電子通信等を介してセルラネットワークでデータを送信及び受信するセルラ通信トランシーバを有する。更に別の実施形態では、通信ユニット２５０は、有線ポート及び無線通信機を有する。通信ユニット２５０は、当業者に理解されるように、ＴＣＰ／ＩＰ、ＦＴＰ、ＨＴＴＰ、ＨＴＴＰＳ及びＳＭＴＰのような標準的ネットワークプロトコルを用いてファイル及び／又はメディアオブジェクトを分配するために、ネットワークへの他の従来型接続も提供する。
【００５０】
データ記憶２５５は、ＮＡａａＳミドルウェアサーバ１０１の機能のためにデータを格納する非一時的メモリである。データ記憶２５５は、信号線２３７を介してサーバ１０１の他のコンポーネントと通信するためにバス２２０に結合される。
【００５１】
一実施形態では、データ記憶２５５は、プロトコル変換のために通信プロトコル及びメッセージフォーマットのライブラリを格納する。データ記憶２５５が格納する通信プロトコル及びメッセージフォーマットは、例えば、ＳＯＡＰ（Simple  Object  Access  Protocol）、ＸＭＬ（eXtensible  Markup  Language）、ＪＭＳ（Java(登録商標)  Message  Service）、ＦＴＰ（File  Transfer  Protocol）、ＨＴＴＰ（Hypertext  Transfer  Protocol）、ＭＱ（Message  Queue）、ＨＯＰ（Internet  Inter-Orb  Protocol）、ＲＥＳＴ（Representational  State  Transfer）、ＪＳＯＮ（JavaScript(登録商標)  Object  Notation）、ＤＣＯＭ（Distributed  Component  Object  Model）等を含む。幾つかの実施形態では、プロトコル適応エンジン２０５は、プロトコル及びメッセージフォーマットにアクセスし、受信側と互換性のあるプロトコル及びメッセージフォーマットに要求を変換する。
【００５２】
エンタープライズサービスバス１０７は、ワークフローエンジン２０１、装置管理エンジン２０３、プロトコル適応エンジン２０５、メッセージ変換エンジン２０７、及びメッセージ拡張エンジン２０９３を有する。エンタープライズサービスバス１０７のこれらのコンポーネントは、バス２２０を介して互いに通信可能に結合される。
【００５３】
ワークフローエンジン２０１は、基本エンタープライズサービスバス機能を実行し及びＮＡａａＳミドルウェアサーバ１０１のコンポーネントとシステム１００の他のコンポーネントとの間の通信を処理するソフトウェア及びルーチンである。一実施形態では、ワークフローエンジン２０１は、要求を受信し、その要求をルーティングし、幾つかのステップを実行し、及びＮＡａａＳアプリケーションサービス１０６及び協調コンピューティング装置１０３及びそれらの対応するリソースサーバ１０５ａ−１０５ｎと相互作用して該要求を満たす後述の機能を提供するためにプロセッサ２４０により実行可能な命令セットである。いずれの実施形態でも、ワークフローエンジン２０１は、プロセッサ２４０、通信ユニット２５０及びＮＡａａＳミドルウェアサーバ１０１の他のコンポーネントと信号線２２２を介して連携し及び通信するよう適応される。
【００５４】
ワークフローエンジン２０１は、要求を受信し、その要求を処理し、ＮＡａａＳアプリケーションサービス１０６及び協調コンピューティング装置１０３及びそれらの対応するリソースサーバ１０５ａ−１０５ｎと通信して該要求を完了する。例えば、ワークフローエンジン２０１は、ユーザ装置１０２から、協調コンピューティング装置１０３の１つに画像を投影する要求を受信する。ワークフローエンジン２０１は、ＮＡａａＳアプリケーションサービス１０６の一部であるユーザ管理サービス２１０と相互作用し、装置使用分析サービス２１２にコマンド、ユーザ装置１０２に関連付けられたユーザのユーザ識別子、要求の日時、及びユーザ装置１０２のＩＰアドレスを記録するよう命令し、メディアレポジトリサービス２０６と相互作用することによりユーザがレポジトリに送信した画像をコピーし、画像の光学文字認識を実行し、及びメディア分析サービス２０８と相互作用することにより画像にキーワードをインデックス付けすることにより、ユーザ装置１０２に関連付けられたユーザを認証し、並びに画像を投影するために協調コンピューティング装置１０３へ送信する。
【００５５】
ワークフローエンジン２０１は、通信ユニット２５０を介して情報を受信し、エンタープライズサービスバス１０７の適切なコンポーネント又はシステム１００のコンポーネントへ情報を送信する。一実施形態では、ワークフローエンジン２０１は、協調コンピューティング装置１０３へメディアを送信する要求を受信する。ワークフローエンジン２０１は、１又は複数の種類のメディアを受信できる。ワークフローエンジン２０１は、協調コンピューティング装置１０３へメディアをルーティングし又は送信する。例えば、ワークフローエンジン２０１は、ユーザ装置１０２（例えば、スマートフォン）から、協調コンピューティング装置１０３（例えば、プロジェクタ又はモニタ）により表示するために画像を受信する。
【００５６】
別の実施形態では、ワークフローエンジン２０１は、特定領域又は主題のメディアリストに対する要求をウェブサーバ１２０から受信する。ワークフローエンジン２０１は、要求に含まれる検索語に基づきデータ記憶２６８の検索を実行するために、要求をＮＡａａＳアプリケーションサービス１０６へ送信する。ＮＡａａＳアプリケーションサービス１０６が一致した結果を返すと、ワークフローエンジン２０１は、その結果を、ウェブサーバ１２０へ要求を提出したユーザ装置１０２における要求元へ送信する。一実施形態では、要求のコンテキストを決定するのに応答して、ワークフローエンジン２０１は、グローバルインデックスと一致する要求に基づき、要求が向けられた１又は複数のリソースサーバ１０５を決定する。ワークフローエンジン２０１は、データ記憶２６８に格納されたグローバルインデックスにアクセスする。
【００５７】
要求元は、主題に関連する１又は複数のメディア種類について検索クエリを提供しても良い。例えば、要求元は、Ｌｉｎｕｘ(登録商標)に関連するメディアを発見することを要求しても良い。検索クエリは、テキストを有しても良い。例えば、要求元は、ウェブサーバ１２０のユーザインタフェースエンジン１２１により生成された検索ユーザインタフェースのテキスト入力ボックスに単語「Ｌｉｎｕｘ」を与える。検索クエリは、視覚情報を有しても良い。例えば、要求元は、Ｔｕｘ、つまりＬｉｎｕｘのマスコットの画像又はビデオを与えても良い。検索クエリは、音声情報を有しても良い。例えば、要求元は、単語「Ｌｉｎｕｘ」と言っている音声のオーディオを与えても良い。ワークフローエンジン２０１は、処理のためにＮＡａａＳアプリケーションサービス１０６へ検索クエリを送信する。
【００５８】
別の実施形態では、ワークフローエンジン２０１は、要求を受信し、プロトコル適応エンジン２０５へその要求を送信し、プロトコル適応エンジン２０５にその要求を検索エンジン２２１へ送信するよう命令する。ここで、検索エンジン２２１は、ＮＡａａＳアプリケーションサービス１０６の１つである。一実施形態では、ワークフローエンジン２０１は、変換のために、第１の通信プロトコルの第１の装置に関連付けられたＡＰＩ（Application  Programming  Interface）から要求を受信する。一実施形態では、要求は、エンタープライズサービスバス１０７のメッセージキューにバッファリングされ、ワークフローエンジン２０１は、キュー内の要求を処理するために定期的にメッセージキューをポーリングする。ワークフローエンジン２０１は、要求のコンテキストを決定する。例えば、ＨＴＴＰは、最初の行に例えば「category」を要求する。「SEARCH」は、ワークフローエンジン２０１に、要求が１又は複数のリソースサーバの検索であるというコンテキストを与える。２番目の行は例えば「service」である。「video」は、ワークフローエンジン２０１に、要求がビデオ録画の格納に関連する１又は複数のリソースサーバ向けであるというコンテキストを与える。３番目の行は例えば「type」である。「video  device  X」は、ワークフローエンジン２０１に、１又は複数のリソースサーバが「video  device  X」タイプに関連付けられているというコンテキストを更に与える。４番目の行は例えば「arguments」である。{“userid”:  “u_０６１３９０２”,  “URL”:  “１０.１５４.２５.９”,  “date”:  “１１/２１/２０１２”,  “filename”:  “iOS”}は、ワークフローエンジン２０１のためにコンテキストを更に制限する。リソースサーバ１０５と通信するためにプロトコルが変換される必要がある状況では、ワークフローエンジンは、プロトコル適応エンジン２０５に、要求を適切に変換するよう命令する。
【００５９】
装置管理エンジン２０３は、１又は複数種類の装置の位置、１又は複数種類の装置に関連する機能、及び１又は複数種類の装置の状態を決定するコード及びルーチンである。一実施形態では、装置管理エンジン２０３は、１又は複数種類の装置に関連する位置、機能及び状態を決定する後述の機能を提供するために、プロセッサにより実行可能な命令セットである。別の実施形態では、装置管理エンジン２０３は、メモリ２４５に格納され、プロセッサ２４０によりアクセス可能且つ実行可能である。いずれの実施形態でも、装置管理エンジン２０３は、プロセッサ２４０、通信ユニット２５０、制御部２０２及びＮＡａａＳミドルウェアサーバ１０１の他のコンポーネントと信号線２２３を介して連携し及び通信するよう適応される。
【００６０】
一実施形態では、装置管理エンジン２０３は、ＮＡａａＳアプリケーションサービス１０６と通信し、１又は複数種類の装置の位置を決定する。例えば、装置管理エンジン２０３は、ユーザ装置１０２からクエリを受信し、ユーザ装置１０２の位置を発見し、協調コンピューティング装置１０３の位置を発見する。装置管理エンジン２０３は、ＮＡａａＳアプリケーションサービス１０６の一部である位置サービスと相互作用し、ユーザ装置１０２の位置を既知の位置と照合する。別の実施形態では、装置管理エンジン２０３は、協調コンピューティング装置１０３の位置をユーザ装置１０２へ送信する。
【００６１】
一実施形態では、装置管理エンジン２０３は、ＳＮＭＰ、ＩＣＭＰ、Bonjour等のような特定のプロトコルを用いてネットワーク１０４を介して機能する装置発見処理を実行する。例えば、装置管理エンジン２０３は、ＳＮＭＰ又はＩＣＭＰプロトコルを用いて、装置を、該装置のＩＰ（internet  protocol）アドレス及びＭＡＣ（media  access  control）アドレス等と共に発見する。別の実施形態では、装置管理エンジン２０３は、装置自体に含まれるＧＰＳ（global  positioning  system）回路を用いることにより、装置の位置情報を決定する。別の実施形態では、装置が無線周波数、超音波信号又は不可視光通信を用いるとき、装置管理エンジン２０３は、屋内で装置位置を決定する。例えば、装置は、無線アクセスポイントを通じて、受信信号強度の測定に基づき、自身の位置を決定する。装置管理エンジン２０３は、ＭＡＣ（media  access  control）アドレス及びインターネット上の位置の組を有するデータベースにアクセスする。位置を決定するために、装置管理エンジン２０３は、アクセスポイントＭＡＣアドレスに対応する位置をデータベースから読み出す。
【００６２】
一実施形態では、装置管理エンジン２０３は位置サービス２９９からユーザ装置１０２の位置を受信し、装置管理エンジン２０３は、ＮＡａａＳアプリケーションサービス１０６の一部である装置目録サービス２６５に、特定の位置にある装置のリストを提供するよう要求する。次に、装置管理エンジン２０３は、ＮＡａａＳアプリケーションサービス１０６の一部である装置管理サービス２１２が、装置の可用性に基づき装置のリストをフィルタリングすることを要求する。
【００６３】
一実施形態では、ユーザ装置１０２からの要求は、協調コンピューティング装置１０３に関連する位置を指定する。例えば、ユーザは、日本の東京にある第１の会議室に居る人々に米国のカリフォルニア州にある第２の会議室からプレゼンテーションを行うことを予定しているために、第１の会議室内の装置について知りたいと望む。別の実施形態では、ユーザは、ある位置におけるカレンダイベントを生成し、該イベントの位置で利用可能な装置のリストを知りたいと望む。一実施形態では、位置サービス２９９は、要求に関連する位置を、ＮＡａａＳアプリケーションサービス１０６のデータ記憶２６８から分かる位置と照合する。位置識別子は、位置サービス２９９により装置管理エンジン２０３へ送信される。別の実施形態では、装置管理エンジン２０３が装置目録サービス２６５に問い合わせるためにユーザ装置１０２の位置識別子を用いるのに応答して、装置目録サービス２６５は、ネットワーク１０４にある全ての装置のリストを装置管理エンジン２０３に提供する。更に別の実施形態では、装置管理エンジン２０３は、利用可能な装置のリストを特定領域に限定するよう装置管理サービス２１２に問い合わせ、装置管理サービス２１２は、装置管理エンジン２０３へ情報を返送する。例えば、協調コンピューティング装置１０３のリストからの利用可能なプロジェクタの位置は、日本の東京にあるビル内の第１の会議室に存在すると特定できる。
【００６４】
一実施形態では、装置管理エンジン２０３は、複数の装置の各々に関連する機能のリストを決定する。例えば、機能リストは、電源入、電源断、投影、ズーム、拡張、自動合焦、印刷、双方向ビデオ録画及び送信、双方向オーディオ録音及び送信、言語翻訳、テキストから音声への変換、音声からテキストへの変換、等を含む。
【００６５】
一実施形態では、装置管理エンジン２０３は、１又は複数の装置の現在状態を決定する。例えば、会議室にあるプロジェクタの状態は、使用中、故障中、空き、電源オフ、等と決定され得る。別の実施形態では、装置管理エンジン２０３は、ユーザにより予約された１又は複数の装置が一定時間空いていると決定する。一実施形態では、装置管理エンジン２０３は、ＮＡａａＳアプリケーションサービス１０６の一部である装置管理サービス２１２と相互作用し、装置の状態を更新する。
【００６６】
一実施形態では、装置管理エンジン２０３は、ワ―クフローエンジン２０１からカレンダイベントのアクセス制御リストを受信し、カレンダイベントに参加する人々に関連する１又は複数のユーザ装置１０２を決定する。装置管理エンジン２０３は、アクセス制御リストを用いて、装置目録サービス２６５に問い合わせることにより、１又は複数のユーザ装置１０２を決定する。例えば、装置管理エンジン２０３は、アクセス制御リスト内のユーザ識別子を用い、装置目録サービス２６５にカレンダイベントに参加するユーザに関連する装置のリストについて問い合わせる。装置目録サービス２６５は、装置管理エンジン２０３に、カレンダイベントに参加するユーザに関連する１又は複数のユーザ装置１０２の装置識別子のリストを提供する。
【００６７】
一実施形態では、装置管理エンジン２０３は、１又は複数のユーザ装置１０２の位置を決定し、その結果として、カレンダイベントの開始前に、ユーザ装置１０２を持ち運ぶユーザの位置を決定する。例えば、装置管理エンジン２０３は、カレンダイベントの開始の５分前のユーザ装置の位置を決定する。別の実施形態では、装置管理エンジン２０３は、カレンダイベントの開催地から閾距離範囲内にいる１又は複数のユーザの位置を決定する。例えば、第１のユーザは開催地近くの近隣ビルに居て、第２のユーザはカレンダイベントが予定されている開催地から５マイル離れて道路交通の中に居ても良い。装置管理エンジン２０３は、ＮＡａａＳアプリケーションサービス１０６内の装置目録サービス２６５及び場所サービス２９９と相互作用し、決定された位置情報を格納する。
【００６８】
一実施形態では、アクセス制御リスト内の全てのユーザが開催地に存在していると決定されると、装置管理エンジン２０３は、通知サービス２６９と相互作用し、カレンダイベントを開始するよう示唆する通知を生成する。別の実施形態では、アクセス制御リスト内の少なくとも１人のユーザが開催地に存在しないと決定されると、装置管理エンジン２０３は、通知サービス２６９と相互作用し、イベントを開始を遅らせる通知を生成する。
【００６９】
プロトコル適応エンジン２０５は、プロトコルを適応し変換するソフトウェア及びルーチンである。一実施形態では、プロトコル適応エンジン２０５は、プロトコルを適応し変換する後述の機能を提供するために、プロセッサにより実行可能な命令セットである。いずれの実施形態でも、プロトコル適応エンジン２０５は、プロセッサ２４０、通信ユニット２５０及びＮＡａａＳミドルウェアサーバ１０１の他のコンポーネントと信号線２２４を介して連携し及び通信するよう適応される。
【００７０】
一実施形態では、プロトコル適応エンジン２０５は、第１の通信プロトコルでワークフローエンジン２０１から要求を受信し、適応及び変換を実行して通信プロトコルを要求元の受信側に適合させる。例えば、プロトコル適応エンジン２０５は、ＨＴＴＰ要求をユーザ装置１０２から受信し、プロジェクタを「オフにする」。プロジェクタはＴＣＰを用いて通信する。プロトコル適応エンジン２０５は、ＨＴＴＰ要求をＴＣＰエンドポイントへ転送されるよう適応し、「オフにする」ＨＴＴＰ要求を対応するＴＣＰコマンドに変換する。
【００７１】
一実施形態では、プロトコル適応エンジン２０５は、１又は複数のリソースサーバに関連する１又は複数種類の第２の通信プロトコルを識別する。例えば、プロトコル適応エンジン２０５は、プロジェクタ装置に関連する第１のリソースサーバ１０５ａが通信プロトコルとしてＴＣＰ（Transmission  Control  Protocol）を用い、対話型ホワイトボードに関連する第２のリソースサーバ１０５ｂが通信プロトコルとしてＳＮＭＰ（Simple  Network  Management  Protocol）を用いる、等を識別する。別の実施形態では、プロトコル適応エンジン２０５は、１又は複数のリソースサーバ１０５ａ−１０５ｎの各々について、データ記憶２５５に１又は複数のプロトコルを格納する。
【００７２】
一実施形態では、プロトコル適応エンジン２０５は、第１の通信プロトコルからの要求を、それぞれ１又は複数の協調コンピューティング装置１０３ａ−１０３ｎ及びリソースサーバ１０５ａ−１０５ｎに関連する１又は複数種類の第２の通信プロトコルの各々に変換する。例えば、プロトコル適応エンジン２０５は、ＨＴＴＰプロトコルからの要求を、プロジェクタ装置に関連する第１のリソースサーバ１０５ａが理解できるＴＣＰプロトコルに変換し、ＨＴＴＰプロトコルを、対話型ホワイトボードに関連する第２のリソースサーバ１０５ｂが理解できるＳＮＭＰプロトコルに変換する、等である。更に別の実施形態では、ワークフローエンジン２０１は、プロトコル適応エンジン２０５に渡されるべき要求を受信し、プロトコル適応エンジン２０５は、変換した要求をエンタープライズサービスバス１０７内のメッセージキューに送信する。メッセージキューから、変換された要求は、適切なリソースサーバ１０５及びそれらのＡＰＩへルーティングされる。
【００７３】
メッセージ変換エンジン２０７は、メッセージフォーマットを変換するソフトウェア及びルーチンである。一実施形態では、メッセージ変換エンジン２０７は、メッセージフォーマットを変換する後述の機能を提供するために、プロセッサ２４０により実行可能な命令セットである。いずれの実施形態でも、メッセージ変換エンジン２０７は、プロセッサ２４０、通信ユニット２５０及びＮＡａａＳミドルウェアサーバ１０１の他のコンポーネントと信号線２２５を介して連携し及び通信するよう適応される。
【００７４】
一実施形態では、メッセージ変換エンジン２０７は、ユーザ装置１０２から協調コンピューティング装置１０３へ向かう要求の中のメッセージフォーマットを変換する。例えば、メッセージ変換エンジン２０７は、ＸＭＬ（eXtensible  Markup  Language）のペイロードをＪＳＯＮ（JavaScript  Object  Notation）に変換する。
【００７５】
上述の例を続けると、要求は、メッセージ変換エンジン２０７及びメッセージ拡張エンジン２０９に渡されるべきＪＳＯＮメッセージを有する。
【数１】
2014106979.tif 000003
【００７６】
ここで、「naaasprotocol」はプラットフォームのウェブＡＰＩバージョンであり、「PJS」はプロジェクタ装置を示し、「SOLEIL」はプロジェクタの種類であり、「url」はプロジェクタの装置ＩＰアドレスであり、「ricohuserid_opt」は装置を操作するユーザのＩＤである。一実施形態では、メッセージ変換エンジン２０７は、ＪＳＯＮメッセージをＸＭＬに変換する。
【００７７】
別の実施形態では、メッセージ変換エンジン２０７は、リソースサーバ１０５に問い合わせるためにメッセージフォーマットを変換する。例えば、メッセージ変換エンジン２０７は、ＪＳＯＮ（JavaScript  Object  Notation）のメッセージ規格を有する要求を識別し、第１のリソースサーバ１０５ａのためにＪＳＯＮをＸＭＬ（eXtensible  Markup  Language）に変換する。リソースが異なるメッセージフォーマットを用いるリソースサーバに関連するとき、メッセージ変換エンジン２０７は、メッセージを複数のフォーマットに変換する。
【００７８】
メッセージ拡張エンジン２０９は、メッセージフを拡張するソフトウェア及びルーチンである。一実施形態では、メッセージ拡張エンジン２０９は、メッセージを拡張する後述の機能を提供するために、プロセッサ２４０により実行可能な命令セットである。いずれの実施形態でも、メッセージ拡張エンジン２０９は、プロセッサ２４０、通信ユニット２５０及びＮＡａａＳミドルウェアサーバ１０１の他のコンポーネントと信号線２２６を介して連携し及び通信するよう適応される。
【００７９】
メッセージ拡張エンジン２０９は、協調コンピューティング装置１０３と相互作用するために、要求に元々存在しなかった情報を追加することにより、メッセージを拡張できる。例えば、上述の例を続けると、ユーザが追加認証情報を要求するプロジェクタで画像を投影したいと望む場合、メッセージ拡張エンジン２０９は、要求内のユーザ識別子を用いてデータ記憶２５５からパスワードのような追加認証情報を受信し、メッセージに追加する。メッセージが準備できると、メッセージ拡張エンジン２０９は、メッセージをエンタープライズサービスバス１０７内のワークフローエンジン２０１へ送信する。ワークフローエンジン２０１は、メディア、ユーザプロファイル等をリソースサーバ１０５から読み出すために、メッセージを協調コンピューティング装置１０３又はＮＡａａＳアプリケーションサービス１０６へ送信する。
【００８０】
＜ＮＡａａＳアプリケーションサービス１０６＞
図２Ｂは、ＮＡａａＳアプリケーションサービス１０６、プロセッサ２６２、メモリ２６４、通信ユニット２６６及びデータ記憶２６８を有するＮＡａａＳアプリケーションサーバ１２３の一実施形態を示す。ＮＡａａＳアプリケーションサーバ１２３の一部のコンポーネントは、図２Ａを参照して上述したのと同様の機能及び形式を有するので、同様の機能を示すために同様の参照符号及び用語を用いる。例えば、通信バス２２０、プロセッサ２４０、メモリ２２５及び通信ユニット２５０は、図２Ａを参照して上述したものと同様であるので、これらは重複して記載されない。
【００８１】
一実施形態では、データ記憶２６０は、装置使用エントリ、メディアインデックス、メディア及びユーザプロファイルを格納する。装置使用エントリは、協調コンピューティング装置１０３で実行されるトランザクション、及び該トランザクションに関連するユーザ識別子を記述する。幾つかの実施形態では、装置使用エントリは、複数のユーザ識別子を有する。例えば、装置使用エントリは、発表者、例えば協調コンピューティング装置１０３からの画像を投影するためにユーザ装置１０２から要求を送信する第１のユーザのユーザ識別子、及びメディアの作者のユーザ識別子を有する。装置使用エントリは、要求の種類（例えば、投影、電源オン、電源オフ、等）、要求及びサービスの交換に関与する装置の種類（例えば、スマートフォン、プロジェクタ、等）、装置のＩＰアドレス、装置のリソース消費の指標（例えば、時間、電力、等）、使用される装置の機能の種類（例えば、自動合焦、拡張、画像化、等）、交換されるメディアの種類（例えば、プレゼンテーションプログラム文書、テキスト文書、表計算文書、ビデオ録画、オーディオ録音、画像、等）等を有する。
【００８２】
データ記憶２６０は、メディアインデックスを格納する。一実施形態では、メディアインデックスは、各メディアのメタデータを含む各メディアのレコードを有する。例えば、メタデータは、クラウドから元のメディア（例えば、単なるプレゼンテーションのスライドの画像の変わりにプレゼンテーション全体）にアクセスするためのポインタデータ、メディアの作者、等を有しても良い。一実施形態では、メタデータは、画像のテキストバージョンのような、メディア分析サービス２１７からの結果も有する。一実施形態では、データ記憶２６０は、要求に含まれるメディアのコピーも格納する。例えば、データ記憶２６０は、メディアレポジトリサービス２１４からメディアのコピーを受信する。
【００８３】
データ記憶２６０は、メユーザプロファイルを格納する。一実施形態では、ユーザプロファイルは、各ユーザのレコードを有する。各ユーザのレコードは、ユーザのグラフィック表現（例えば、ユーザの写真）、名前、タイトル、ユーザに関連するキーワード、ユーザに関連するメディア（例えば、ユーザにより作成されたメディア又はユーザにより発表されたメディア）、ユーザに関連するプレゼンテーション、等を有しても良い。一実施形態では、ユーザに関連するキーワードは、キーワードのリストを有する。ＮＡａａＳアプリケーションサーバ１０６は、より高レベルのサービスを提供するためにエンタープライズサービスバス１０７により組み立てられた個々のＡＰＩ（application  programming  interface）を有する低レベルのサービスの集合である。例えば、ユーザ装置１０２によりエンタープライズサービスバス１０７へ送信される「投影」コマンドは、ＮＡａａＳアプリケーションサービス１０６内のモジュールを呼び出す。該モジュールは、ユーザ装置を認証し、メディア内のテキストを識別し、データ記憶２６０に文書を保存する。サービスは、互いに通信しない。その代わり、サービスは、エンタープライズサービスバス１０７から命令を受信し、要求されたタスクを完了し、適切な場合にはデータ記憶２６０にデータを保存し、エンタープライズサービスバス１０７へ情報を返す。
【００８４】
ＮＡａａＳアプリケーションサーバ１０６は、より高レベルのサービスを提供するためにエンタープライズサービスバス１０７により組み立てられた個々のＡＰＩ（application  programming  interface）を有する低レベルのサービスの集合である。例えば、ユーザ装置１０２によりエンタープライズサービスバス１０７へ送信される「投影」コマンドは、ＮＡａａＳアプリケーションサービス１０６内のモジュールを呼び出す。該モジュールは、ユーザ装置１０２を認証し、メディア内のテキストを識別し、データベースインデックスを生成し、データ記憶２６８にデータベースインデックスと一緒に文書を保存する。サービスは、互いに通信しない。その代わり、サービスは、エンタープライズサービスバス１０７から命令を受信し、要求されたタスクを完了し、適切な場合にはデータ記憶２６８にデータを保存し、エンタープライズサービスバス１０７へ情報を返す。
【００８５】
一実施形態では、サービスは、ユーザ管理サービス２１１、装置目録サービス２６５、位置サービス２９９、装置管理サービス２１２、装置使用分析サービス２１３、メディアレポジトリサービス２１５、メディア分析サービス２１７、インデックス付けサービス２８７、カレンダモジュール２８６、請求サービス２６７、検索エンジン２２１、サーバ保守サービス２２７、通知サービス２６９を有する。当業者は、エンタープライズサービスバス１０７が要求を完了するために追加サービスを有し得ることを理解するだろう。
【００８６】
ユーザ管理サービス２１１は、ネットワーク１０４にユーザを登録し及びユーザ認証を実行するソフトウェア及びルーチンである。一実施形態では、ユーザ管理サービス２１１は、ユーザを登録する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、ユーザ管理エンジン２１１は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、ユーザ管理サービス２１１は、プロセッサ２６２及び通信ユニット２６６と信号線２７１を介して連携し及び通信するよう適応される。
【００８７】
ユーザ管理サービス２１１は、ユーザ情報を受信し、ユーザプロファイルを生成する。例えば、ユーザ管理サービス２１１は、名前、職位、ジョブコード、電子メールアドレス、電話番号、ユーザ名、パスワード、ユーザの網膜スキャン、ユーザの指紋スワイプ、等を受信する。ユーザ管理サービス２１１は、登録情報に基づきユーザのログイン証明書（credential）を生成し、ユーザのためにデータ記憶２６８にログイン証明書を格納する。ユーザ管理サービス２１１は、ユニークな識別子をユーザに関連付ける。これは、ユーザの姓名、ユーザの電子メールアドレス、一連の数字、従業員番号、等であり得る。ユニークな識別子は、システムにおけるユーザの活動を追跡するために用いられる。
【００８８】
一実施形態では、ログイン証明書は、同一のログイン証明書を用いて１つの特性（property）で複数の独立した装置及びサービスへのアクセス制御を提供するシングルサインオンとして生成される。例えば、ユーザは、ユーザ証明書でログインし、全ての登録サービスの各々でログインを促されることなく、全ての登録サービスへのアクセスを得る。別の例では、ユーザは、プロジェクタ、対話型ホワイトボード等のような異なる種類の装置に、同一のユーザ証明書を用いてログインする。一実施形態では、ユーザ管理サービス２１１は、ビジネスに関連付けられたＬＤＡＰ（Lightweight  Directory  Access  Protocol）サーバ（図示しない）内の階層的構造を有する組織的レコードセットとして、ユーザのログイン証明書を格納する。ユーザ管理サービス２１１は、登録中又は他のときに受信されるユーザの選択（プレファレンス）も管理する。例えば、ユーザは、ログイン証明書に関連付けるために画像をアップロードできる。
【００８９】
一実施形態では、ユ―ザ装置１０２及び／又は協調コンピューティング装置１０３は、システム１００でユーザを認証するために用いられるログイン情報とは異なるログイン情報を用い、ユーザ管理サービス２１１は、ユーザ又は管理者からログイン情報を受信し、該情報をユーザプロファイルに追加する。例えば、ユーザのラップトップは、ユーザが該ラップトップのコンテンツにアクセスできる前に入力される必要のある４桁コードを有する。ユーザ管理サービス２１１は、ユーザプロファイルに情報を追加する。
【００９０】
ユーザ管理サービス２１１は、認証を実行する。例えば、ユーザは、ユーザ装置１０２のユーザインタフェースにログイン証明書を入力する。ユーザ装置１０２は、ログイン証明書をエンタープライズサービスバス１０７へ送信する。エンタープライズサービスバス１０７は、ユーザ管理サービス２１１がログイン証明書に基づきユーザを認証するよう要求する。ユーザ管理サービス２１１は、ユーザ装置１０２に関連するユーザを識別し、ログイン証明書をユーザプロファイルと比較し、ログイン証明書が正しいという確認又はログインエラーが生じたという通知をエンタープライズサービスバス１０７へ返送する。確認は、ユーザに関連するユーザ識別情報を含む。
【００９１】
一実施形態では、認証のためのログイン要求が正しいユーザ名及びパスワードを有しない場合、ログイン要求は拒否される。別の実施形態では、ユーザ管理サービス２１１は、ユーザが彼又は彼女のユーザ名及び／又はパスワードを忘れたときにアカウントの復旧で用いられる。幾つかの例では、ユーザ管理サービス２１１は、ログイン要求に含まれる補助的情報を分析することにより潜在的な不正認証を検出する。例えば、ログイン要求に関連するユーザ名がもはや会社で雇用されていないユーザのユーザ名である又はロボットの疑いがある場合、ユーザ管理サービス２１１は、ログイン要求を潜在的な不正として識別する。ユーザ管理サービス２１１は、補助的情報をユーザの過去の認証情報と比較することにより潜在的な不正認証を検出する。例えば、認証のためのログイン要求がユーザが以前からログイン要求を送信しようと試みたことのない国又は装置（例えば、未登録装置）から生じている場合、ユーザ管理サービス２１１は、ログイン要求を潜在的な不正として識別する。一実施形態では、潜在的な不正認証の試みは、不成功の認証の試みを有する。
【００９２】
装置目録サービス２６５は、装置をネットワーク１０４に登録するコード及びルーチンである。一実施形態では、装置目録サービス２６５は、装置を登録する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、装置目録サービス２６５は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、装置目録サービス２６５は、プロセッサ２６２及び通信ユニット２６６と信号線２９３を介して連携し及び通信するよう適応される。
【００９３】
装置目録サービス２６５は、ワークフローエンジン２０１からネットワーク１０４内の装置を追加し、削除し、及び更新する要求を受信する。装置目録サービス２６５は、１又は複数種類のユーザ装置１０２ａ−１０２ｎ及び１又は複数種類の協調コンピューティング装置１０３ａ−１０３ｎを登録する要求を受信する。一実施形態では、装置目録サービス２６５は、装置の種類及び装置のＩＰアドレス（又はＭＡＣアドレス）をネットワーク１０４に登録し、装置固有の装置識別子を生成する。例えば、型番号１０４２を有するプロジェクタが登録され、「ｐｒｊ１０４２ｕ１」のような装置識別子を割り当てられる。一実施形態では、装置目録サービス２６５は、データ記憶２６８に格納された特定のユーザ名の下に、１又は複数種類のユーザ装置１０２ａ−１０２ｎを登録する要求を受信する。例えば、ユーザは、タブレットＰＣ、スマートフォン等のような個人の装置を登録し、該装置を従業員識別子、ユーザ識別子等のような識別の形式と関連付けることができる。一実施形態では、装置目録サービス２６５は、位置サービス２９９により提供される位置識別子をインポートすることにより、装置に位置をマッピングする。別の実施形態では、装置目録サービス２６５は、特定の位置で又は特定の空間範囲内で使用するために、１又は複数種類の協調コンピューティング装置１０３ａ−１０３ｎを登録する要求を受信する。例えば、プロジェクタはビルの１階での使用のために登録でき、対話型ホワイトボードは会議室内での使用のために登録できる。ビルの１階及び会議室は、それぞれそれらに関連する位置識別子を有する。装置目録サービス２６５は、データ記憶２６８に装置登録情報（例えば、ＩＰアドレス、装置識別子、等）を格納する。
【００９４】
別の実施形態では、装置目録サービス２６５は、以下に詳述する位置サービス２９９により生成される位置識別子を用いて位置に関連付けられた装置を識別する。位置識別子は、データ記憶２６８に格納するために、エンタープライズサービスバス１０７内の装置管理エンジン２０３から受信される。例えば、プロジェクタは日本の東京にあるビル内の会議室に登録でき、該会議室は位置識別子を有する。ユーザは、カリフォルニア州のサンフランシスコから、ユーザが登録されたユーザであることを示すログイン証明書を用いてプロジェクタにアクセスできる。更に別の実施形態では、装置目録サービス２６５は、登録された装置に関連する情報を更新する要求を受信する。例えば、ユーザは、プロジェクタの名称、対話型ホワイトボードの位置、及びビデオ会議装置のファームウェアバージョン、等を変更できる。
【００９５】
位置サービス２９９は、１又は複数種類の装置の位置情報を提供し格納するコード及びルーチンである。一実施形態では、位置サービス２９９は、装置位置情報を格納する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、位置サービス２９９は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、位置サービス２９９は、プロセッサ２６２及び通信ユニット２６６と信号線２９８を介して連携し及び通信するよう適応される。
【００９６】
一実施形態では、エンタープライズサービスバス１０７の装置管理エンジン２０３は、位置サービス２９９と相互作用し、名称、地理的座標、等を含む位置情報を格納する。別の実施形態では、位置サービス２９９は、装置が登録され又は位置に割り当てられる前に、該位置を登録する要求を受信する。例えば、ユーザは、カリフォルニア州のメンロパークからの別のユーザがシンガポールの位置に登録された装置へメディアを送信できる前に、シンガポールにある新しい支所の位置を登録しても良い。
【００９７】
装置管理サービス２１２は、ネットワーク１０４内の装置を予約し及び外装置へのアクセスを許可するコード及びルーチンである。一実施形態では、装置管理サービス２１２は、装置を予約する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、装置管理サービス２１２は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、装置管理サービス２１２は、プロセッサ２６２及び通信ユニット２６６と信号線２７２を介して連携し及び通信するよう適応される。
【００９８】
一実施形態では、装置管理サービス２１２は、人々のグループ、例えば会社の従業員により共有される１又は複数種類の協調コンピューティング装置１０３ａ−１０３ｎを予約するための要求を装置管理エンジン２０３から受信する。例えば、ユーザである従業員は、カレンダイベントでの使用のために（例えば、ビジネス会議のために）彼のユーザ名又はユーザ識別子の下でプロジェクタ、対話型ホワイトボード等を一時的に予約できる。別の例では、ユーザである従業員は、装置を予約するために、ユーザ識別子と一緒に装置識別子を供給できる。装置管理エンジン２０３は、グループのユーザに対して、ユーザ管理サービス２１１により生成されたユーザのログイン証明書を用いて予め登録された１又は複数種類の協調コンピューティング装置１０３ａ−１０３ｎへのアクセス要求を許可する。例えば、ユーザは、プロジェクタ、ウェブカメラ、対話型ホワイトボード等のような協調コンピューティング装置１０３ａ−１０３ｎに、１つの且つ同一のユーザ名及びパスワードを用いてアクセスする。
【００９９】
一実施形態では、装置管理サービス２１２は、カレンダイベントのために予約された１又は複数種類の協調コンピューティング装置１０３ａ−１０３ｎへのアクセスを許可する。例えば、装置管理サービス２１２は、１０ＡＭのカレンダイベント「Staff  Meeting」のために予約された「conference  room  ４C」内のプロジェクタへのアクセスを許可する。別の実施形態では、装置管理サービス２１２は、装置管理エンジン２０３を介してユーザであるカレンダイベントの主催者から確認を受信し、カレンダイベントで示された開始時間（又は終了時間）に協調コンピューティング装置１０３ａ−１０３ｎの電源を入れ（又は電源を切り）及び接続（又は切断）する。
【０１００】
装置使用分析サービス２１３は、ネットワーク１０４内での要求に関連する装置使用エントリを記録するソフトウェア及びルーチンである。一実施形態では、装置使用分析サービス２１３は、装置使用エントリを記録する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、装置使用分析サービス２１３は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、装置使用分析サービス２１３は、プロセッサ２６２及び通信ユニット２６６と信号線２７３を介して連携し及び通信するよう適応される。
【０１０１】
装置使用分析サービス２１３は、要求及び外要求に関連するユーザ識別子を受信し、該要求に関連するメタデータを装置使用エントリとして記録する。要求に関連するユーザがメディアの作者と異なる場合、装置使用エントリは、発表者及びメディアの作者の両者のユーザ識別子を有する。例えば、医者は、該医者のユーザ装置１０２（例えばラップトップ）から協調コンピューティング装置１０３（例えばプロジェクタ）へ送信されるスライドを用いることにより、病院で研修医に対して内科患者に関する講演をする。医者がプロジェクタにスライドを表示させたいと望む度に、医者はラップトップからプロジェクタへスライドの画像を表示する要求を送信する。エンタープライズサービスバス１０７は、要求をユーザ管理サービス２１１へ送信する。ユーザ管理サービス２１１は、ユーザ装置１０２に関連するユーザを識別する。エンタープライズサービスバス１０７は、ユーザ管理サービス２１１から認証の確認及びユーザの同一性を受信し、要求及びユーザ識別子を装置使用分析サービス２１３へ送信する。装置使用分析サービス２１３は、装置使用エントリを記録する。一実施形態では、装置使用エントリは、ユーザ装置１０２に関連するユーザのユーザ識別子、メディアの作者（異なる場合）、協調コンピューティング装置１０３で実行される動作セット、協調コンピューティング装置１０３のユニークな装置識別子、及びデータ記憶２６８に格納されたメディアを参照するユニークな識別子（又はメディアに関連するメタデータ）を有する。
【０１０２】
メディアレポジトリサービス２１５は、要求に関連するメディアをデータ記憶２６８に格納するコード及びルーチンである。一実施形態では、メディアレポジトリサービス２１５は、メディアを格納する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、メディアレポジトリサービス２１５は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、メディアレポジトリサービス２１５は、プロセッサ２６２及び通信ユニット２６６と信号線２７５を介して連携し及び通信するよう適応される。
【０１０３】
幾つかの実施形態では、協調コンピューティング装置１０３は、メディアを格納するバックエンドサーバを欠いている。他の実施形態では、データ記憶２６８は、要求の中にメディアのコピー、例えばPowerPointプレゼンテーションからの画像を有する。これらの例では、メディアレポジトリサービス２１５は、メディアを有する要求をエンタープライズサービスバス１０７から受信する。メディアレポジトリサービス２１５は、メディアに関連するユニークな識別子を生成し、データ記憶２６８にメディアを格納する。一実施形態では、メディアレポジトリサービス２１５は、ワークフローエンジン２０１から１又は複数種類のメディアを受信して協調コンピューティング装置１０３の装置識別子に関連付け、メディア及び関連する装置識別子をデータ記憶２６８に格納する。別の実施形態では、メディアレポジトリサービス２１５は、１又は複数種類のメディアのユーザ識別子と一緒に装置識別子を受信する。
【０１０４】
メディア分析サービス２１７は、メディアを分析するコード及びルーチンである。一実施形態では、メディア分析サービス２１７は、メディアを分析する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、メディア分析サービス２１７は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、メディア分析サービス２１７は、プロセッサ２６２及び通信ユニット２６６と信号線２７７を介して連携し及び通信するよう適応される。
【０１０５】
メディア分析サービス２１７は、要求に関連するメディアをエンタープライズサービスバス１０７から受信する。例えば、メディア分析サービス２１７は、スライドからキャプチャされた画像を受信する。メディア分析サービス２１７は、画像に対して光学文字認識を適用し、画像に関連するテキストを識別する。メディア分析サービス２１７は、データ記憶２６０にテキストを格納する。一実施形態では、メディア分析サービス２１７は、手書き、タイプ又は印刷されたテキストを含む画像からのコンテンツを機械符号化テキストに変換する。
【０１０６】
一実施形態では、メディア分析サービス２１７は、ビデオ及び／又はオーディオデータを受信する。メディア分析サービス２１７は、ビデオ会議装置から受信したビデオ及び／又はオーディオデータに関連するユーザを識別しても良い。例えば、ビデオは、上述の例の、対話型ホワイトボードの前でプレゼンテーションを行っている医者を含んでも良い。メディア分析サービス２１７は、ビデオデータに対する顔認識の実行又はオーディオデータに対する音声認識の実行に基づき、医者を識別しても良い。別の実施形態では、メディアは、イベントに参加する聴衆メンバにより提供され得る。メディア分析サービス２１７は、イベントを決定する。例えば、メディア分析サービス２１７は、プレゼンテーションを決定する。メディア分析サービス２１７は、イベントの聴衆メンバを決定する。幾つかの実施形態では、メディア分析サービス２１７は、ユーザ装置１０２の位置に基づき、聴衆メンバの出席を決定する。メディア分析サービス２１７は、どの聴衆メンバがイベントに参加したかを決定する。一実施形態では、メディア分析サービス２１７は、ビデオデータに対する顔認識の実行又はオーディオデータに対する音声認識の実行に基づき、どの聴衆メンバがイベントに参加したかを決定する。
【０１０７】
一実施形態では、メディア分析サービス２１７は、イベントのビデオデータ又はプレゼンテーションをエンタープライズサービスバス１０７から受信する。例えば、ビデオは、情報を提示するために対話型ホワイトボードの前にいる人物を含む。メディア分析サービス２１７は、１又は複数のビデオフレームに対して光学文字認識を実行しても良い。例えば、メディア分析サービス２１７は、対話型ホワイトボードで提示される情報に対して光学文字認識を実行する。別の実施形態では、メディア分析サービス２１７は、オーディオデータを受信する。メディア分析サービス２１７は、音声−テキスト技術を用いることにより、オーディオデータからテキストを識別しても良い。
【０１０８】
インデックス付けサービス２８７は、複数のリソースサーバ１０５ａ−１０５ｎの１又は複数のデータベースインデックスを生成するソフトウェア及びルーチンである。一実施形態では、インデックス付けサービス２８７は、データベースインデックスを生成するする後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、インデックス付けサービス２８７は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、インデックス付けサービス２８７は、プロセッサ２６２及び通信ユニット２６６と信号線２４５を介して連携し及び通信するよう適応される。
【０１０９】
一実施形態では、インデックス付けサービス２８７は、１又は複数のリソースサーバ１０５に格納された１又は複数種類のメディアを決定する。１又は複数のリソースサーバ１０５は、１又は複数種類の協調コンピューティング装置１０３に関連する。例えば、協調コンピューティング装置１０３（例えばプロジェクタ）に関連するリソースサーバ１０５は、ユーザ装置１０２（例えばラップトップ）から協調コンピューティング装置１０３へ送信されるスライドを格納する。インデックス付けサービス２８７は、１又は複数種類のメディアに関連するメタデータを識別子、データベース記憶２６８におけるデータベースインデックスを生成する。データベースインデックは、メタデータ、及びメタデータに関係する１又は複数種類のメディアが格納されている位置への参照ポインタを保持する。一実施形態では、インデックス付けサービス２８７は、データ記憶２６８にデータベースインデックスを格納する。
【０１１０】
インデックス付けサービス２８７は、メタデータの濃度（cardinality）に基づきデータベースインデックスを生成する。濃度は、メタデータの特異性を表す。濃度が低いほど、メタデータ中に存在する重複が多い。一実施形態では、インデックス付けサービス２８７は、インデックスを生成するために、高濃度のメタデータ（例えば、ユーザ識別子、ユーザ名、従業員識別子、電子メールアドレス、タイトル、特定のキーワード、等）を識別する。例えば、インデックス付けサービス２８７は、プロジェクタにスライドを送信したユーザに関連するユーザ識別子を識別し、ユーザ識別子及び該ユーザ識別子に関連するスライドが格納されている位置を指すポインタを保持するデータベースインデックスを生成する。別の実施形態では、インデックス付けサービス２８７は、標準的濃度のメタデータ（例えば、装置名、装置種類、装置識別子、ＩＰアドレス、メディア種類、位置、イベントの日付、等）を識別する。例えば、インデックス付けサービス２８７は、スライドを投影したプロジェクタに関連する装置識別子を識別し、装置識別子及び該装置識別子に関連するスライドが格納されている位置を指すポインタを保持するデータベースインデックスを生成する。更に別の実施形態では、インデックス付けサービス２８７は、低濃度のメタデータ（例えば、現従業員、元従業員、準従業員、上級従業員、等）を識別する。例えば、インデックス付けサービス２８７は、スライドが準従業員である従業員により投影されたことを識別し、技能レベル及び該技能レベルに関連するスライドが格納されている位置を指すポインタを保持するデータベースインデックスを生成する。
【０１１１】
一実施形態では、ワークフローエンジン２０１は、ワークフローエンジン２０１のためにメディアを分析したメディア分析サービス２１７から識別されたテキストを受信する。例えば、メディア分析サービス２１７は、ワ―クフローエンジン２０１により送信されたビデオ及び／又はオーディオデータからテキストを抽出する。ワークフローエンジン２０１は、インデックス付けサービス２８７へテキストを送信する。インデックス付けサービス２８７は、メディア内のキーワードを識別し、メディア内のキーワードに関連するデータをインデックス付けし、キーワード及びリソースサーバ１０５内のメディアへのポインタを有するグローバルインデックスを生成する。一実施形態では、インデックス付けサービス２８７は、キーワードをユーザプロファイルに関連付ける。一実施形態では、インデックス付けサービス２８７は、１又は複数のメディア部分を決定する。インデックス付けサービス２８７は、スライドショーのうちの１又は複数のスライドのタイトル、目次、概要、主要情報部分、等を決定する。インデックス付けサービス２８７は、テキストの位置、テキストのフォーマット、スライドショーの中のスライドの位置、等に基づき１又は複数のスライドの一部を決定する。例えば、スライド又はスライドショーのタイトルは、スライドショーの最初のスライドの一番上に太字で現れ得る。タイトルは、スライド又は他のスライドにある他の文字と比べて大きいサイズを有するテキストを有し得る。別の例では、スライドショーの始めに位置するスライドは、スライドショーの概要を有し得る。別の例では、インデックス付けサービス２８７は、１又は複数の黒丸の点を有するテキストの識別に基づき、主要情報部分を決定する。
【０１１２】
インデックス付けサービス２８７は、キーワードの重みを決定する。一実施形態では、インデックス付けサービス２８７は、部分に基づき重みを決定する。例えば、インデックス付けサービス２８７は、スライドショーのタイトルからのキーワードに対して、スライドショーの他の部分（例えばテキスト）よりも高い重みを決定する。別の実施形態では、インデックス付けサービス２８７は、キーワードに関連するカウントに基づき重みを決定する。例えば、インデックス付けサービス２８７は、各キーワードがメディア内に現れる回数を識別する。
【０１１３】
一実施形態では、インデックス付けサービス２８７は、関連するコンテンツを決定する。例えば、インデックス付けサービス２８７は、キーワードの類義語を決定する。一実施形態では、インデックス付けサービス２８７は、類語辞典内で検索を実行する。別の例では、インデックス付けサービス２８７は、知識グラフに基づき関連するコンテンツを決定する。
【０１１４】
インデックス付けサービス２８７は、複数のリソースサーバ１０５ａ−１０５ｎのデータベースインデックス内のキーワード及び類義語をインデックス付けする。一実施形態では、インデックス付けサービス２８７は、無関係な語を除外することにより、キーワード及び類義語をインデックス付けする。無関係な語は、一般的な語（例えば、「ａ」、「ｔｈｅ」）を有しても良い。別の実施形態では、インデックス付けサービス２８７は、インデックスの最多数のキーワードを選択する。インデックス付けサービス２８７は、各キーワードの重みに基づき、最多数のキーワードを選択しても良い。一実施形態では、インデックスサービス２８７は、キーワード及び類義語のインデックスをデータ記憶２６８に格納する。例えば、インデックス付けサービス２８７は、データベースの１又は複数のテーブル内のデータベースインデックスをデータ記憶２６８に格納する。一実施形態では、キーワードのインデックスは、キーワードとメディアとの間の関連を記述するデータを有する。例えば、インデックスは、メディアに関連するキーワード及びポインタデータ（例えば、ＵＲＬ（uniform  resource  locator）又は文書／ファイル識別子）を有するレコードを含む。ポインタデータは、リソースサーバ１０５（又は協調コンピューティング装置１０３がメディアを格納するリソースサーバ１０５に関連付けられていない場合、データベース記憶２６８）にあるメディアの場所を特定するためのデータを有しても良い。一実施形態では、キーワードは複数のメディアに関連付けられても良い。
【０１１５】
一実施形態では、インデックス付けサービス２８７は、グローバルデータベースインデックスを生成し維持する。グローバルデータベースインデックスは、１又は複数のリソースサーバ１０５に対して別個に生成されたデータベースインデックスを有するマスタインデックスである。インデックス付けサービス２８７は、１又は複数のリソースサーバ１０５内で生じる１又は複数種類の更新を決定し、１又は複数のリソースサーバのデータベースインデックスを読み出し、グローバルインデックスを編集する。グローバルインデックスは、１又は複数のリソースサーバ１０５のデータベースインデックス、及びその結果としてデータベースインデックスに関連する１又は複数のソースマテリアルの位置を指すポインタリファレンスを保持する。グローバルインデックスは、１又は複数のリソースサーバ１０５に関連するメディアのキーワードも保持する。したがって、検索エンジン２２１は、キーワードのグローバルインデックスを問い合わせ、１又は複数のリソースサーバ１０５からメディアを読み出すためにポインタリファレンスを受信できる。
【０１１６】
１又は複数のソースマテリアルは、１又は複数のリソースサーバ１０５内で生じる１又は複数種類の更新に関連する。１又は複数種類の更新は、プレゼンテーションプログラム文書、テキスト文書、表計算文書、ビデオ録画、オーディオ録音、画像等のうちの少なくとも１つを格納し、削除し、又は移動することを含む。例えば、グローバルデータベースインデックスは、プロジェクタ装置に関連する第１のリソースサーバ１０５ａからのユーザ識別子に基づく第１のデータベースインデックス、及びビデオ会議装置に関連する第２のリソースサーバ１０５ｂからの装置識別子に基づく第２のデータベースインデックス、等を有する。別の実施形態では、インデックス付けサービス２８７は、１又は複数のリソースサーバ１０５ａ−１０５ｎ内のデータベースインデックスを指すポインタリファレンスを有するグローバルデータベースインデックスを生成する。一実施形態では、インデックス付けサービス２８７は、データ記憶２６８にグローバルデータベースインデックスを格納する。
【０１１７】
インデックス付けサービス２８７は、１又は複数のキーワードに基づき作者又は発表者のユーザプロファイルを更新する。作者又は発表者のユーザプロファイルは、該作者又は発表者に関連するメディアのコンテンツに関連するキーワードのリストを有しても良い。インデックス付けサービス２８７は、ユニークなユーザ識別子に関連するユーザプロファイルのキーワードリストに１又は複数のキーワードを追加することにより、ユーザプロファイルを更新する。一実施形態では、作者のユーザプロファイルは、作者又は発表者に関連するメディアを記述するメタデータを有する。メタデータは、キーワードのリスト、プレゼンテーション情報（例えば、日付、位置及び装置情報）、メディア情報（例えば、ＵＲＬ（uniform  resource  locator）又は作成されたメディアの文書／ファイル識別子）等を有する。作者が複数のイベントで同一のプレゼンテーション情報を与える場合、一実施形態では、プレゼンテーション情報は、プレゼンテーションに関連する複数の日付及び位置を有する。
【０１１８】
カレンダモジュール２８６は、ユーザのためにカレンダに１又は複数のイベントを生成するコード及びルーチンである。一実施形態では、カレンダモジュール２８６は、カレンダにイベントを生成するする後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、カレンダモジュール２８６は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、カレンダモジュール２８６は、プロセッサ２６２及び通信ユニット２６６と信号線２８２を介して連携し及び通信するよう適応される。
【０１１９】
一実施形態では、カレンダモジュール２８６は、ワークフローエンジン２０１を介してユーザから、ユーザに関連する１又は複数のカレンダ内に１又は複数のイベントを作成する要求を受信する。１又は複数のカレンダ（例えば、個人カレンダ、請求書支払カレンダ、等）及び該カレンダに関連するイベントデータ（例えば、タイトル、開始時間、終了時間、開始日、終了日、出席者数、等）は、データ記憶２６８に格納される。例えば、カレンダモジュール２８６は、「Tuesday」の「１０ＡＭ」から「１１ＡＭ」の間の時間枠にイベント「Staff  Meeting」を生成する要求をユーザから受信する。一実施形態では、カレンダモジュール２８６は、イベントに関連付けられるべき出席者のリストを、ワークフローエンジン２０１を介してユーザから受信する。ユーザは、名前、ユーザ識別子、従業員識別子等を用いて、イベントに出席者を招待することにより、出席者リストを生成する。例えば、チームリーダは、イベント「Staff  Meeting」に出席するよう技術部門のメンバを招待できる。一実施形態では、カレンダモジュール２８６は、出席者リストに基づきカレンダイベントに対するアクセス制御リストを生成し、アクセス制御リストをデータ記憶２６８に格納する。別の実施形態では、カレンダモジュール２８６は、エンタープライズサービスバス１０７内のワークフローエンジン２０１へアクセス制御リストを送信する。ワークフローエンジン２０１は、アクセス制御リスト内の人々に関連する装置を決定する装置管理エンジン２０３へアクセス制御リストを送信する。一実施形態では、カレンダモジュール２８６は、イベントが行われる位置の選択をユーザから受信し、位置の選択をワークフローエンジン２０１へ送信する。ワークフローエンジン２０１は、選択された位置で利用可能な協調コンピューティング装置を決定する装置管理エンジン２０３へ位置の選択を送信する。例えば、ユーザは、ビルの３階にある第１の利用可能な会議室「conference  room  ３０１」を選択できる。
【０１２０】
請求サービス２６７は、ユーザに対する請求書を生成するコード及びルーチンである。一実施形態では、請求サービス２６７は、請求書情報を生成し格納する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、請求サービス２６７は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、請求サービス２６７は、プロセッサ２６２及び通信ユニット２６６と信号線２９１を介して連携し及び通信するよう適応される。
【０１２１】
装置使用データは、装置使用分析エンジン２１３によりデータ記憶２６８に格納される。ワークフローエンジン２０１は、装置使用分析エンジン２１３から装置使用に関連するデータを受信し、該データを請求サービス２６７に提供する。一実施形態では、請求サービス２６７は、単一の装置の装置使用に関連する請求情報を決定する。例えば、請求サービス２６７は、患者の脊椎を画像化するためにＭＲＩ（Magnetic  Resonance  Imaging）装置を使用する請求情報が２０００ドルであると決定する。請求サービス２６７は、次に、装置使用に関連する請求情報に基づき請求書を生成し、該請求書をワークフローエンジン２０１へ送信し、又は該請求書をデータ記憶２６８に格納する。別の実施形態では、請求サービス２６７は、複数の協調コンピューティング装置１０３にアクセスするユーザ装置１０２に関連する請求情報を決定する。例えば、請求サービス２６７は、プリンタ、プロジェクタ、会議サービス等にアクセスするユーザ装置１０２に対する１１月の１ヶ月分の請求書を生成する。
【０１２２】
検索エンジン２２１は、１又は複数の語の検索クエリに関連するメディアを識別するソフトウェア及びルーチンである。一実施形態では、検索エンジン２２１は、検索クエリに関連するメディアを識別する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、検索エンジン２２１は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、検索エンジン２２１は、プロセッサ２６２及び通信ユニット２６６と信号線２４９を介して連携し及び通信するよう適応される。
【０１２３】
検索エンジン２２１は、１又は複数のリソースサーバ１０５ａ−１０５ｎについての１又は複数の検索クエリをワークフローエンジン２０１から受信する。一実施形態では、検索クエリは、検索サーバ１２０で生じる。検索エンジン２２１は、データベースインデックスから、検索クエリ内の１又は複数の語と一致する１又は複数のキーワードを識別し、要求が向けられている１又は複数のリソースサーバを決定し、１又は複数のリソースサーバの決定をワークフローエンジン２０１へ送信する。例えば、検索エンジン２２１は、検索クエリ内の１又は複数の語と一致する１又は複数のキーワードを識別するために、グローバルデータベースインデックスにアクセスし、１又は複数のリソースサーバがプロジェクタ、対話型ホワイトボード等と関連することを決定する。一実施形態では、検索エンジン２２１は、検索クエリ内の語との正確な一致を検索することにより、キーワードを識別する。別の実施形態では、検索エンジン２２１は、検索クエリ内の語と同様のキーワードを検索することにより、キーワードを識別する。例えば、要求元が語「オープンソースオペレーティングシステム」を与えた場合、検索エンジン２２１は、データベースインデックスからキーワードとして「Linux」を識別しても良い。
【０１２４】
一実施形態では、検索エンジン２２１は、ワークフローエンジン２０１から検索クエリを受信する。一実施形態では、検索エンジン２２１は、キーワード及びメディアの作者若しくは発表者のユーザプロファイルに関連する１又は複数種類のメディアを識別する。別の実施形態では、データベースインデックスは、キーワードとメディアとの間の関連を記述するデータを有する。例えば、「Linux」のような検索クエリの語が受信された場合、検索エンジン２２１は、ユーザ識別子、装置識別子、イベントの日付等をデータベースインデックスとして識別し、該データベースインデックスを用いて、検索クエリの語「Linux」について１又は複数のリソースサーバ１０５ａ−１０５ｎからプレゼンテーションプログラム文書、テキスト、文書、表計算文書、ビデオファイル、オーディオファイル、画像等のうちの１又は複数を読み出し、読み出した情報をエンタープライズサービスバス１０７へ送信する。
【０１２５】
一実施形態では、検索エンジン２２１は、キーワードが読み出したメディア内に現れる回数を識別する。例えば、検索エンジン２２１は、キーワードが１又は複数のスライドの画像内に又は対話型ホワイトボード上に現れる回数を決定する。別の例では、検索エンジン２２１は、オーディオ（オーディオは、メディア分析サービス２１７により音声−テキスト変換が行われる）内で作者がキーワードを言う回数を決定する。検索エンジン２２１は、キーワードがメディア内に現れる回数に基づき、１又は複数のリソースサーバ１０５ａ−１０５ｎから読み出したメディアをランク付けする。
【０１２６】
サーバ保守サービス２２７は、１又は複数のリソースサーバを管理するソフトウェア及びルーチンである。一実施形態では、サーバ保守サービス２２７は、１又は複数のリソースサーバを管理する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、サーバ保守サービス２２７は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、サーバ保守サービス２２７は、プロセッサ２６２及び通信ユニット２６６と信号線２５１を介して連携し及び通信するよう適応される。
【０１２７】
一実施形態では、サーバ保守サービス２２７は、１又は複数のリソースサーバ１０５ａ−１０５ｎのためにサーバライセンスを生成する要求をワークフローエンジン２０１から受信する。例えば、ライセンスは、リソースサーバ１０５にインストールされたオペレーティングシステムのためのオペレーティングシステムライセンスである。別の例では、サーバライセンスは、物理的リソースサーバ毎（又はリソースサーバの仮想インスタンス毎）、リソースサーバ１０５内のソケット毎（又はＣＰＵ毎）、及びリソースサーバ１０５内のコアの総数毎にある。別の実施形態では、サーバ保守サービス２２７は、１又は複数種類の装置が１又は複数のリソースサーバ１０５に接続でき及び１又は複数種類の装置の製造者により分配されたソフトウェアを使用できるようにする接続ライセンスを生成する要求を受信する。接続ライセンスは、リソースサーバ１０５に接続する装置毎のライセンス（例えば、１つのリソースサーバが１つのプロジェクタ装置に接続する４５個のプロジェクタ装置は、４５個の接続ライセンスを含む）、リソースサーバ１０５への同時接続毎（例えば、４５個のプロジェクタについてリソースサーバ１０５に接続する２５個のユニークなセッションが、何時でも同時に開始する）、及びユーザアカウント毎（例えば、リソースサーバ１０５に接続するために用いられる装置の種類とは無関係に、ユニークな接続に対して１つのユーザ名及びパスワードを用いる）を有するグループのうちの１つである。
【０１２８】
一実施形態では、サーバ保守サービス２２７は、１又は複数のリソースサーバ１０５に関連するハードウェア互換性リスト（hardware  compatibility  list：HCL）にアクセスすることにより、１又は複数種類の装置の１又は複数のリソースサーバ１０５との互換性を決定する。ハードウェア互換性リスト（ＨＣＬ）は、ハードウェアモデルと、それらの例えばリソースサーバ１０５の特定のオペレーティングシステムとの互換性のデータベースであり、データ記憶２６８に格納される。
【０１２９】
一実施形態では、サーバ保守サービス２２７は、１又は複数のリソースサーバ１０５に関連する１又は複数種類の協調コンピューティング装置１０３に関連するＡＰＩ（Application  Programming  Interface）に対する１又は複数の更新を決定する。１又は複数の更新は、ソフトウェアアップデート及びファームウェアアップデートを含む。１又は複数種類の協調コンピューティング装置１０３に関連するＡＰＩ（Application  Programming  Interface）は、エンタープライズサービスバス１０７によりユーザ装置１０２ａ−１０２ｎに公開される。サーバ保守サービス２２７は、１又は複数の更新の決定に応答して、エンタープライズサービスバス１０７にエンタープライズサービスバス１０７内部のエンジンを更新する通知を送信する。したがって、プロトコル適応エンジン２０５、メッセージ変換エンジン２０７、及びメッセージ拡張エンジン２０９は、協調コンピューティング装置１０３のＡＰＩで生じる如何なる更新も処理する準備が整う。これは、ユーザがリソースサーバ１０５に手動で更新をインストールしなければならない状況を回避する。
【０１３０】
通知サービス２６９は、ネットワーク１０４内で通知を生成するコード及びルーチンである。一実施形態では、通知サービス２６９は、通知を生成し発行する後述の機能を提供するために、プロセッサ２６２により実行可能な命令セットである。別の実施形態では、通知サービス２６９は、メモリ２６４に格納され、プロセッサ２６２によりアクセス可能且つ実行可能である。いずれの実施形態でも、通知サービス２６９は、プロセッサ２６２及び通信ユニット２６６と信号線２９２を介して連携し及び通信するよう適応される。
【０１３１】
一実施形態では、通知サービス２６９は、ワークフローエンジン２０１から請求書を受信し又はデータ記憶２６８から請求書を読み出し、請求書が準備できたことを示す通知を生成する。通知は、ワークフローエンジン２０１へ送信される。ワークフローエンジン２０１は、該通知をユーザ装置１０２又はユ―ザ装置１０２を使用するユーザの電子メールアカウントへ送信する。別の実施形態では、通知サービス２６９は、装置使用に基づき、１又は複数種類の装置を交換するときを示す通知を生成する。例えば、通知サービス２６９は、プロジェクタが使用された時間数に基づきプロジェクタがその寿命に近付いていると決定し、通知を生成してサービスマンに送信する。
【０１３２】
通知サービス２６９は、ワークフローエンジン２０１から、アクセス制御リスト及びカレンダイベントに関連するイベント情報を受信する。一実施形態では、通知サービス２６９は、カレンダイベントを生成したユーザに、カレンダイベントを開始時間に開始するか否かを問い合わせるために通知を生成する。例えば、通知サービス２６９は予定開始時間の５分前に通知を生成し、ユーザがイベントを開始することに同意した場合、プロジェクタ装置は暖機運転される。一実施形態では、ワークフローエンジン２０１は、イベントの開始についてユーザに警告するために、カレンダモジュール２８６から要求を受信する。ワークフローエンジン２０１は、アクセス制御リスト内の全てのユーザがカレンダイベントに出席しているとき、ユーザにカレンダイベントを開始するよう要求する通知を生成するよう、通知サービス２６９に指示する。別の実施形態では、ワークフローエンジン２０１は、少なくとも１人のユーザが開催地に不在のとき、イベントの開始を遅らせるよう他の参加者に要求する通知を生成するよう、通知サービス２６９に指示する。例えば、スタッフミーティングに向かうユーザが開催地から５マイル離れて移動中の場合、スタッフミーティングを遅らせるために通知が生成される。
【０１３３】
一実施形態では、通知サービス２６９は、ワ―クフローエンジン２０１がカレンダモジュール２８６から、ユーザがイベントを終了したいかどうかを尋ねるために要求を受信すると、カレンダイベントの終了を決定する。ワークフローエンジン２０１は、参加しているユーザがイベントを終了したいか否かを参加ユーザリストに尋ねる通知を生成するよう、通知サービス２６９に指示する。リスト内の少なくとも１人のユーザから確認を受信するのに応じて、ワークフローエンジン２０１は、開催地にある全ての装置の電源を切るための確認を装置管理サービス２１２へ送信する。別の実施形態では、通知サービス２６９は一定時間空いている装置のリストをワークフローエンジン２０１から受信し、ワークフローエンジン２０１は、空いている装置のリストを示し且つリスト内の装置の電源を切る選択肢を提供する通知を生成するよう、通知サービス２６９に指示する。例えば、ビル内のグループミーティングに出席した後に駐車場を去る従業員は、通知サービス２６９により、会議室内のプロジェクタ、対話型ホワイトボード、ウェブカメラ等が空いていることを通知され得る。ユーザは、通知サービス２６９からの通知を受信するのに応答して、全ての装置の電源を切る要求を送信できる。ワークフローエンジン２０１は、ユーザからの電源を切る要求を装置管理サービス２１２へ送信する。
【０１３４】
＜ユーザインタフェースの例＞
図３は、ユーザインタフェースエンジン１２１により生成される、ユーザにサービス概観を提供するウェブページを表示するユーザインタフェース３００の一実施形態のグラフィック表現である。ユーザインタフェース３００は、多数のサービス、例えば「My  devices」欄３０２、「My  calendar」欄３０４、「Federated  search」欄３０６及び「Expert  search」欄３０８を有する。「My  devices」欄３０２は、ユーザの装置、装置名（又は装置位置）及び装置状態のリスト３１０を表形式で表示する。一覧表示された装置は、ユーザの１又は複数のユーザ装置１０２、例えばタブレットＰＣ、ユーザにより予約された１又は複数の協調コンピューティング装置１０３、例えばプロジェクタを有する。「My  calendar」欄３０４は、ユーザの小型カレンダ３１２を表示する。小型カレンダ３１２は、イベントエントリ３１４、イベントのために予約された協調コンピューティング装置のサムネイル表現を表示する。「Federated  search」欄３０６は、ユーザがメディアに対する検索語を入力するための検索ボックス３１８を表示する。検索結果は、１又は複数のリソースサーバ１０５ａ−１０５ｎからの又はデータベース記憶２６８からの検索語と一致する（メディアレポジトリサービス３１５により格納された）１又は複数種類のメディアを表示する。「Expert  search」欄３０８は、ユーザが特定の主題に関する検索語を入力し及び特定の主題に関して種々の程度の技能を有するユーザを発見するための同様の検索ボックスを表示する。検索結果は、検索語内の１又は複数のキーワードと一致するユーザ及び１又は複数のキーワードを含むユーザにより提示される関連メディアのリストを表示する。
【０１３５】
図４は、プロジェクタ装置のような協調コンピューティング装置で閲覧するためのメディアタイプを選択するユーザインタフェース４００の一実施形態のグラフィック表現である。ユーザインタフェース４００は、ユーザのスマートフォンの受信箱にメッセージ４０１を表示する。メッセージ４０１は、添付４０３を含む。ユーザが添付４０３を選択すると、オーバレイ４０７が現れ、プレビュー、ＮＡａａＳリモートコントロールで開く、開く又はキャンセルする、を含む添付４０３を開く方法に関する選択肢のリスト４０５を提案する。「ＮＡａａＳリモートコントロールで開く（Open  with  NAaaS  remote  control）」選択肢４０９が選択されると、ユーザは、添付４０３が表示されるべき位置を選択するための別のユーザインタフェースに向けられる。別のユーザインタフェースは図５を参照して更に詳しく説明する。
【０１３６】
図５は、表示のためにメディアを送信する場所を選択するユーザインタフェース５００の一実施形態のグラフィック表現である。図５は、図４の選択肢のリスト４０５から「開く（Open  in…）」選択肢を選択した後にユーザが見る次のスクリーンである。或いは、図５は、異なるステップ、例えばユーザが特定の位置に関連する装置を調べたいという状況に関連する。ユーザインタフェース５００は、検索する位置を入力するための検索ボックス５１７を有する。ユーザインタフェース５００は、表示するためにメディアを送信するためにユーザが選択できる位置のリスト５１５を有する。リスト５１５内の各項目は、位置の名称５１３及び位置の住所５１９である。「Conference  room  ４C」のボタン５１１を選択すると、ユーザは、装置リストを表示するための別のユーザインタフェースに向けられる。別のユーザインタフェースは図６を参照して更に詳しく説明する。
【０１３７】
図６は、スマートフォンのようなユーザ装置の場所の又はその設定距離内の装置リストを表示するユーザインタフェース６００の一実施形態のグラフィック表現である。ユーザインタフェース６００は、「Conf.room  ４C」と名付けられた位置６０１で検出された装置のリスト６０３を表示する。装置のリスト６０３は、１又は複数の協調コンピューティング装置１０３を有する。リスト６０３の各項目は、装置名６０５、装置の簡単な説明６０７、及び装置のサムネイル表現６０９を有する。「Projector  １」のボタン６１１を選択すると、ユーザは、選択した装置「Projector  １」へコマンドを送信するための別のユーザインタフェースに向けられる。別のユーザインタフェースは図７を参照して更に詳しく説明する。
【０１３８】
図７は、スマートフォンのようなユーザ装置１０２から選択された協調コンピューティング装置（例えばプロジェクタ）へ送信するコマンドリストを表示するユーザインタフェース７００の一実施形態のグラフィック表現である。図７は、図５のリスト４１５から位置を選択した後に表示される次のスクリーンである。しかしながら、ユーザが図４から図５へ行った場合、ユーザは図３で協調コンピューティング装置１０３で表示すべきソースマテリアル（添付３０３）を既に選択しているので、図７は表示されない。ユーザインタフェース７００は、選択された装置「Projector  １」のサムネイル表現７０９を表示する。一実施形態では、ユーザインタフェース７００は、ユーザが図６の「Projector  １」のボタン６１１をクリックするのに応答して達成されるコマンドのリスト７０１を表示する。ユーザは、「Turn  On」タブ７０３をクリックすることにより装置「Projector  １」をオンにでき、「Turn  Off」タブ７０５をクリックすることにより装置「Projector  １」をオフにでき、「Project」タブ７０７をクリックすることにより装置「Projector  １」にアイテムを投影できる。「Project」タブ７０７をクリックすると、ユーザは、動作のソースを選択するための別のユーザインタフェースに向けられる。別のユーザインタフェースは図８を参照して更に詳しく説明する。
【０１３９】
図８は、スマートフォンのようなユーザ装置１０２から選択された協調コンピューティング装置（例えばプロジェクタ）の動作のソースを選択するユーザインタフェース８００の一実施形態のグラフィック表現である。ユーザインタフェース８００は、ユーザ装置１０２の表示の上にオーバレイ８０１を有する。オーバレイ８０１は、選択された装置「Projector  １」の動作のソースのリスト８０３を表示する。ユーザは、「Web」タブ８０５をクリックすることにより、ウェブから装置「Projector  １」に投影できる。ユーザは、「Camera  Roll」タブ８０７をクリックすることにより、ユーザ装置１０２に関連するメモリから装置「Projector  １」に投影できる。ユーザは、「Camera」タブ８０９をクリックすることにより、ユーザ装置１０２に関連するカメラから装置「Projector  １」に投影できる。
【０１４０】
図９は、文書のような、クエリと一致するメディアのリストを表示するユーザインタフェース９００の一実施形態のグラフィック表現である。ユーザインタフェース９００は、ユーザが１又は複数の検索語、例えば「ios」を入力するための検索ボックス９０２を有する。ユーザは、隣接選択肢ボックス９０４をクリックすることにより、１又は複数のリソースサーバから読み出すべきメディアの種類を選択できる。選択肢ボックス９０４は、ユーザが選択できるドロップダウンリストを提供する。例えば、ユーザは、「document」選択肢９０６を選択し、検索（search）をクリックできる。ユーザインタフェース９００は、検索語「ios」と一致する文書のリストを提供する表９０８を表示する。表９０８の各行９１０は、文書９１２、例えばユーザがクリックして開くことができるプレゼンテーションプログラム文書のサムネイル表現を有する。表９０８の各行で提供される他の情報は、文書に関連する発表者の名前、日付（例えば、プレゼンテーションの日付）、位置（例えば、プレゼンテーションの位置）及び装置（例えば、プロジェクタ）を有する。
【０１４１】
図１０は、スマートフォンのようなユーザ装置１０２におけるクエリと一致する、文書のようなメディアのリストを表示するユーザインタフェース１０００の別の実施形態のグラフィック表現である。ユーザインタフェース１０００は、ユーザが１又は複数の検索語、例えば「ios」を入力するための検索ボックス１００２を表示する。ユーザインタフェース１０００は、１又は複数のリソースサーバ内の検索語「ios」と一致する文書のリスト１００４を表示する。リスト１００４の各エントリは、文書１００６、例えばユーザが選択して開くことができるプレゼンテーションプログラム文書のサムネイル表現を有する。リスト１００４の各エントリで提供される他の情報は、文書に関連する発表者の名前、日付（例えば、プレゼンテーションの日付）、位置（例えば、プレゼンテーションの位置）及び装置（例えば、プロジェクタ）を有する。
【０１４２】
図１１は、ユーザのために電子カレンダ内のイベントを生成するユーザインタフェース１１００の一実施形態のグラフィック表現である。ユーザインタフェース１１００は、対話型カレンダ１１０２を時間表示モードで表示する。他の実施形態が可能であり、対話型カレンダ１００２は、他の表示モード、例えば、日、週、課題、等で表示される。ユーザが対話型カレンダ１１０２の時間枠１１０４を選択すると、イベント情報を入力するためにウインドウ１１０６が表示される。例えば、ユーザは、主題としてフィールド１１０８に「Staff  Meeting」とタイプすることによりイベントの主題を入力する。入力される他の情報は、イベントの出席者、イベントの位置、開始日、終了日、開始時間、終了時間、等を有する。ウインドウ１１０６は、イベント「Staff  Meeting」のためにユーザにより選択された「Conference  Room  ４C」という名称の位置１１１４で利用可能な装置のリスト１１１０も表示する。ユーザは、一覧表示された装置の隣にあるラジオボタン１１１２をクリックすることにより、イベント「Staff  Meeting」で使用する装置を予約し、「Next」と示すボタン１１１６をクリックする。ボタン１１１６をクリックすると、ユーザは、予約した装置にアップロードすべきメディアを選択するための別のユーザインタフェースに向けられる。別のユーザインタフェースは図１２を参照して更に詳しく説明する。
【０１４３】
図１２は、イベントのために予約された１又は複数の装置のためにアップロードするメディアを選択するユーザインタフェース１２００の一実施形態のグラフィック表現である。ユーザインタフェース１２００は、メディアを選択し及びアップロードするためのポップアップとしてウインドウ１２０２を表示する。ウインドウ１２０２は、ユーザが図１１のボタン１１１６をクリックするのに応答して表示される。ウインドウ１２０２で、ユーザは、「Choose  file」ボタン１１０４をクリックして（インターネット又はユーザ装置１０２からの）文書のリストを閲覧でき、次に「Upload」ボタン１２０６をクリックする。装置にアップロードされるファイルは、リスト１２０８に表示される。次に、ユーザは、「Create  event」ボタン１２１０をクリックしてイベントを作成する。ボタン１２１０をクリックすると、ユーザは、作成したイベントの概要を表示し及び必要ならばユーザに変更させる別のユーザインタフェースに向けられる。別のユーザインタフェースは図１３を参照して更に詳しく説明する。
【０１４４】
図１３は、カレンダ内に生成されたイベントの概観を提供し及び必要ならば変更するユーザインタフェース１３００の一実施形態のグラフィック表現である。ユーザインタフェース１３００は、イベントの主題、出席者リスト、イベントの位置、イベントのために予約された多数の装置、及び装置にアップロードされる文書のリストを含むイベント情報を一覧表示するウインドウ１３０２を表示する。ウインドウ１３０２で、ユーザは、必要な場合には、「Add  more」ボタン１３０４をクリックすることにより、イベント「Staff  Meeting」に更に多くの出席者を追加できる。ユーザは、「Choose  a  different  location」ドロップダウンメニュ１３０６をクリックすることにより、イベント「Staff  Meeting」の位置を変更できる。ユーザは、制御すべき装置１３０８を選択し、「Turn  On  Devices」ボタン１３１０をクリックできる。
【０１４５】
図１４は、協調コンピューティング装置１０３の構成設定（名称、ＩＰアドレス、等）を指定するため及び構成設定をオン又はオフにするためのユーザインタフェース１４００の一実施形態のグラフィック表現である。ユーザインタフェース１４００は、予約した装置に対する命令を指定するためのポップアップとしてウインドウ１４０２を表示する。ウインドウ１４０２は、ユーザが図１３のボタン１３１０をクリックするのに応答して表示される。ウインドウ１４０２で、ユーザは、「Turn  On」リンク４０４をクリックし、次に予約した装置をこの命令で更新するために「Update  Device」ボタン１４０６をクリックすることにより、予定時間を待たずに装置（及び全ての他の装置）の電源を入れることを選択できる。別の実施形態では、カレンダモジュール２８６は、指定された会議時間を見越して、装置の電源が入れられるべきときを決定する。
【０１４６】
＜方法＞
図１４−２２を参照して、本発明の方法の種々の実施形態を説明する。図１５は、エンタープライズサービスバス１０７及びＮＡａａＳアプリケーションサービス１０６を用いて１又は複数種類の装置間の通信を管理する方法の一実施形態のフロー図１５００である。エンタープライズサービスバス１０７は、ワークフローエンジン２０１、装置管理エンジン２０３、プロトコル適応エンジン２０５、メッセージ変換エンジン２０７、及びメッセージ拡張エンジン２０９３を有する。ＮＡａａＳアプリケーションサービス１０６は、ユーザ管理サービス２１１、装置管理サービス２１２、装置目録サービス２６５、位置サービス２９９、装置使用分析サービス２１３、メディアレポジトリサービス２１５、メディア分析サービス２１７、インデックスサービス２６７、カレンダモジュール２８６、請求サービス２６７、検索エンジン２２１、サーバ保守サービス２２７、通知サービス２６９を有する。
【０１４７】
ワークフローエンジン２０１は、装置管理サービス２０３に、ネットワーク内の１又は複数種類の装置を識別するよう指示する（１５０２）。装置管理エンジン２０３は、装置目録サービス２６５に、ＩＰアドレス及び名称（例えば装置識別子）を各装置に割り当てることにより、ネットワーク４０４で使用する１又は複数種類の装置を登録するよう指示する（１５０４）。例えば、ユーザは、タブレットＰＣ、スマートフォン等のような個人の装置を登録でき、装置目録サービス２６５は、該装置をユーザのユーザ名又は別のユニークな識別子と関連付ける。別の例では、ユーザは、プロジェクタ、対話型ホワイトボード等のような協調コンピューティング装置１０３を、会議室又はビルのフロアのような特定の位置又は特定の空間範囲内での使用のために登録できる。装置目録サービス２６５は、ＩＰアドレスをＩＰアドレスリストに追加する（１５０６）。例えば、装置目録サービス２６５は、データ記憶２６８に認可されたＩＰアドレスのリストを格納する。
【０１４８】
幾つかの実施形態では、ワークフローエンジン２０１は、ユーザ管理サービス２１１に、認証証明書に基づき各ユーザを認証するよう指示する（１５０８）。例えば、認証証明書は、登録されたユーザのログイン証明書であり得る。プロトコル適応エンジン２０５、メッセージ変換エンジン２０７及びメッセージ拡張エンジン２０９は、ネットワーク内の１又は複数種類の装置間の要求を管理する（１５１０）。例えば、メッセージ変換エンジン２０７は、ＪＳＯＮフォーマットの第１のメッセージをＪＭＳフォーマットに変換する。プロトコル適応エンジン２０５は、スマートフォンからのＨＴＴＰプロトコルをプロジェクタのためのＴＣＰプロトコルに変換する。メッセージ拡張エンジン２０９は、受信すべき対象アプリケーションのメッセージに情報（例えば、追加認証情報、等）を追加する。ワークフローエンジン２０１は、装置使用分析サービス２１３に、ネットワーク１９４内の１又は複数種類の装置間で生じる要求の装置使用エントリを記録するよう指示する（１５１２）。
【０１４９】
図１６Ａは、要求を変換することにより、異種装置間の相互接続を制御する方法の一実施形態のフロー図１６００である。エンタープライズサービスバス１０７は、ワークフローエンジン２０１、装置管理エンジン２０３、プロトコル適応エンジン２０５、メッセージ変換エンジン２０７、及びメッセージ拡張エンジン２０９３を有する。ＮＡａａＳアプリケーションサービス１０６は、ユーザ管理サービス２１１、装置目録サービス２６５、装置管理サービス２１２、メディアレポジトリサービス２１５、メディア分析サービス２１７、請求エンジン２６７、通知サービス２６９、位置サービス２９９、装置使用分析サービス２１３を有する。
【０１５０】
装置管理エンジン２０３は、ネットワーク内の第１の装置の位置を識別し（１６０２）、第１の装置の位置の一定距離範囲内にある１又は複数の装置の第１のリストを生成する（１６０４）。例えば、ユーザ装置１０２は、装置管理エンジン２０３に自身の位置を通知する。装置管理エンジン２０３は、ＮＡａａＳアプリケーションサービス１０６の一部である装置目録サービス２６５及び位置サービス２９９と相互作用して、プロジェクタ、対話型ホワイトボード及びウェブカメラのような、ユーザ装置１０２の位置から閾距離範囲内の位置にある協調コンピューティング装置１０３のリストを生成する。別の実施形態では、ユーザ装置１０２は、ユーザが装置を制御したいと望む会議室を指定し、装置管理エンジン２０３は、装置目録サービス２６５に、該会議室内にある装置のリストを生成するよう指示する。別の実施形態では、一定距離はネットワーク１０４の到達可能距離である。図６は、装置管理エンジン２０３がユーザに会議室４Ｃ（conference  room  ４C）３１３内で利用可能な装置のリストを提供する例である。装置管理エンジン２０３は、ユーザ装置１０２にリストを提供する。
【０１５１】
装置管理エンジン２０３は、第１の装置に関連するユーザから、第１のリスト内の第２の装置の選択を受信する（１６０６）。装置管理エンジン２０３は、第１のリスト内の第２の装置に関連する機能を有する第２のリストを生成する（１６０８）。図７は、ユーザが第１のリストからプロジェクタを選択し、第２のリストが該プロジェクタに関連する機能を有する例である。
【０１５２】
ワークフローエンジン２０１は、第２のリスト内の機能のうちの１つを実行する要求を第１の装置から受信する（１６１０）。例えば、機能リストは、電源入、電源断、投影、ズーム、拡張、自動合焦、印刷、双方向ビデオ録画及び送信、双方向オーディオ録音及び送信、言語翻訳、テキストから音声への変換、音声からテキストへの変換、等を含む。プロトコル適応エンジン２０５は、第１の装置からの要求の第１の通信プロトコルを、第２の装置により使用される第２の通信プロトコルに変換する（１６１２）。メッセージ変換エンジン２０７は、第１のメッセージフォーマットを第２のメッセージフォーマット５１４に変換する（１６１４）。ワークフローエンジン２０１は、第２の装置へ変換した要求を送信する（１６１６）。
【０１５３】
ワークフローエンジン２０１は、装置使用分析サービス２１３に、変換された要求及び第２の装置により実行されたトランザクションに関連する装置使用エントリを記録するよう指示する（１６１８）。例えば、装置使用分析サービス２１３は、送信された要求の種類（例えば、投影、電源オン、電源オフ、検索、等）、要求を生成したユーザ装置１０２（例えば、スマートフォン、ラップトップ、等）のＩＰアドレス、ユーザ装置に関連するユーザのユーザ識別子、要求を受信した協調コンピューティング装置１０３（例えばプロジェクタ、ラップトップ、会議装置、等）のＩＰアドレス、使用される機能の種類（例えば、自動合焦、拡張、画像化、等）、１又は複数の装置間で交換されるメディアの種類（例えば、プレゼンテーションプログラム文書、テキスト文書、表計算文書、ビデオ録画、オーディオ録音、画像、等）等を記録する。
【０１５４】
図１６Ｂは、要求を変換することにより、異種装置間の相互接続を制御する方法の別の実施形態のフロー図１６５０である。エンタープライズサービスバス１０７は、ワークフローエンジン２０１、及び装置管理エンジン２０３を有する。ＮＡａａＳアプリケーションサービス１０６は、ユーザ管理サービス２１１、装置目録サービス２６５、位置サービス２９９及び装置管理サービス２１２を有する。
【０１５５】
ワークフローエンジン２０１は、第１のユーザからメディアの選択を受信する（１６５２）。例えば、ユーザは、電子メールの添付を選択する。装置管理エンジン２０３は、メディアに関連する機能の第１のリストを生成する（１６５４）。例えば、ユーザは、電子メールを投影する。ワークフローエンジン２０１は、第１のリストをユーザへ送信する。ワークフローエンジン２０１は、第１のユーザから選択された機能を受信する（１６５６）。装置管理エンジン２０３は、位置サービス２９９に、ユーザの位置を決定するよう指示する。次に、装置管理エンジン２０３は、位置サービス２９９に、選択された機能が実行され得る位置を有する第２のリストを生成するよう指示する（１６５８）。例えば、位置サービス２９９は、ユーザから閾距離範囲内の位置のリストを生成し、又はユーザは、ユーザが装置を選択したいと望む位置に関する追加入力を提供する。ワークフローエンジン２０１は、第２のリストをユーザへ送信する。幾つかの実施形態では、選択された機能が実行できる位置のリストの代わりに、第２のリストは、選択された機能を実行できる特定位置に存在する装置を有する。例えば、装置管理エンジン２０３は、装置目録サービス２６５及び位置サービス２９９と相互作用し、位置に存在する協調コンピューティング装置１０３のリストを生成する。
【０１５６】
ワークフローエンジン２０１は、第２のリストから選択された位置を受信する（１６６０）。装置管理エンジン２０３は、装置目録サービス２６５及び装置管理サービス２１２に、選択された機能が実行され得る選択された位置にある装置の第３のリストを生成するよう指示する（１６６２）。例えば、第３のリストは、利用可能な装置を有する。ワークフローエンジン２０１は、第３のリストをユーザへ送信する。ワークフローエンジン２０１は、第３のリストから選択された装置を受信する（１６６４）。ワークフローエンジン２０１は、選択された装置へ機能を実行する要求を送信する（１６６６）。例えば、ワークフローエンジン２０１は、電子メールの添付を投影する要求を会議室内のプロジェクタへ送信する。
【０１５７】
図１７は、装置により実行される各トランザクションについて決定される請求情報に基づき請求書を生成する方法の一実施形態のフロー図１７００である。ワークフローエンジン２０１は、装置使用分析サービス２１３に、データ記憶２６８から、ネットワーク内の各装置により実行されたトランザクションに関連する装置使用エントリを読み出すよう指示する（１７０２）。例えば、装置使用分析サービス２１３は、過去１ヶ月以内にユーザ装置１０２により要求された全てのトランザクションに関する装置使用エントリを読み出す。ワークフローエンジン２０１は、読み出したデータを請求サービス２６７へ送信する。請求サービス２６７は、各トランザクションに関連する請求情報を計算し（１７０４）、各トランザクションに関連する請求情報に基づく請求書を生成する（１７０６）。例えば、請求サービス２６７は、患者の脊椎を画像化するためにＭＲＩ（Magnetic  Resonance  Imaging）装置を使用する請求情報が２０００ドルであると決定する。通知サービス２６９は、請求書が準備できたことを示す通知を送信する（１７０８）。ワークフローエンジン２０１は、通知を受信し、該通知を装置へ又は装置に関連するユーザの電子メールアカウントへ送信する。
【０１５８】
図１８は、エンタープライズサービスバス１０７及びＮＡａａＳアプリケーションサービス１０６を用いて１又は複数のリソースサーバのためにグローバルデータベースインデックスを編集する方法の一実施形態のフロー図１８００である。エンタープライズサービスバス１０７は、ワークフローエンジン２０１を有する。ＮＡａａＳアプリケーションサービス１０６は、メディア分析サービス２１７及びインデックス付けサービス２８７を有する。ワークフローエンジン２０１は、メディアを有する要求を受信する（１８０２）。例えば、ユーザ装置１０２は、ビデオ会議装置を用いて人々とビデオ会議を行う要求をワークフローエンジン２０１へ送信する。ワークフローエンジン２０１は、協調コンピューティング装置１０３へメディアを送信する（１８０４）。協調コンピューティング装置は、リソースサーバ１０５にメディアを格納する。例えば、ワークフローエンジン２０１は、ビデオ会議データをビデオ会議装置へ送信し、ビデオ会議データを分析のためにメディア分析サービス２１７へ送信する。
【０１５９】
メディア分析サービス２１７は、例えば音声−テキスト変換を用いることにより、メディア内のテキストを識別する（１８０６）。ワークフローエンジン２０１は、インデックス付けサービス２８７に、メディア内の識別したテキストに基づきキーワードをメディアに関連付ける各リソースサーバ１０５に関する個々のデータベースインデックスを生成する（１８０８）。ワークフローエンジン２０１は、インデックス付けサービス２８７に、個々のデータベースインデックスからグローバルデータベースインデックスを編集するよう指示する（１８１０）。グローバルデータベースインデックスは、キーワードと、リソースサーバ１０５にメディアが格納されている位置を指すポインタリファレンスとを有する。例えば、ビデオ会議は、ビデオ会議装置に関連するリソースサーバに格納される。
【０１６０】
図１９は、エンタープライズサービスバス１０７及びＮＡａａＳアプリケーションサービス１０６を用いて１又は複数のリソースサーバのために要求を変換する方法の一実施形態のフロー図１９００である。エンタープライズサービスバス１０７は、ワークフローエンジン２０１、及びプロトコル適応エンジン２０５を有する。ＮＡａａＳサービス１０６は、検索エンジン２２１を有する。
【０１６１】
ワークフローエンジン２０１は、クエリに関連する１又は複数種類のメディアについての該クエリを第１の装置から受信する（１９０２）。ワークフローエンジン２０１は検索エンジン２２１へ要求を送信し、検索エンジン２２１はクエリと一致するグローバルデータベースインデックス内のキーワードを識別する（１９０４）。ワークフローエンジン２０１は、検索エンジン２２１からキーワードを受信し、キーワードに関連するメディアを格納する１又は複数のリソースサーバ１０５を決定する（１９０６）。ワークフローエンジン２０１は、１又は複数のリソースサーバ１０５に対するメディアに関する要求を生成する（１９０８）。要求の通信プロトコルとリソ―スサーバ１０５により使用される通信プロトコルとの間に相違がある場合には、ワークフローエンジン２０１は、要求をプロトコル適応エンジン２０５へ送信する。プロトコル適応エンジン２０５は、要求の第１の通信プロトコルと、１又は複数のリソースサーバの１又は複数種類の第２の通信プロトコルとを決定する（１９１０）。プロトコル適応エンジン２０５は、第１の通信プロトコルからの要求を１又は複数種類の第２の通信プロトコルの各々に変換する（１９１２）。要求のメッセージフォーマットとリソースサーバのメッセージフォーマットとの間に相違がある場合には、メッセージ変換エンジン２０７は、要求の第１のメッセージフォーマットと、１又は複数のリソースサーバの１又は複数種類の第２のメッセージフォーマットとを決定する（１９１４）。メッセージ変換エンジン２０７は、第１のメッセージフォーマットからの要求を１又は複数種類の第２のメッセージフォーマットの各々に変換する（１９１６）。ワークフローエンジン２０１は、１又は複数のリソースサーバ１０５からの変換された要求と一致する１又は複数の結果を読み出し（１９１８）、１又は複数の結果を第１の装置へ送信する（１９２０）。
【０１６２】
図２０は、エンタープライズサービスバス１０７及びＮＡａａＳアプリケーションサービス１０６を用いてカレンダイベントのために予約された１又は複数の装置を制御する方法の一実施形態のフロー図２０００である。エンタープライズサービスバス１０７は、ワークフローエンジン２０１、及び装置管理エンジン２０３を有する。ＮＡａａＳアプリケーションサービス１０６は、カレンダモジュール２８６、装置目録サービス２６５、装置管理サービス２１２及び通知サービス２６９を有する。
【０１６３】
カレンダモジュール２８６は、ワークフローエンジン２０１を介して、主催者から、カレンダアプリケーションサービスで出席者リストのためのイベントを生成する要求及びイベントの位置の選択を受信する（２００２）。ワークフローエンジン２０１は、エンタープライズサービスバス１０７内の装置管理エンジン２０３へ選択された位置を送信する。装置管理エンジン２０３は、装置目録サービス２６５に、その位置で使用のために提供される装置セットを決定するよう指示する（２００４）。例えば、ユーザは、イベントがカリフォルニア州のメンロパークにある会議室で行われると指定するが、ユーザは、日本の東京にある会議室から参加する。位置の選択に関する更なる詳細は、図１６Ａ及び１６Ｂを参照して上述した通りである。ワークフローエンジン２０１は、装置セットのうちの少なくとも幾つかの装置の選択、イベントの開始時間及び終了時間、イベントの名称を受信する。装置管理エンジン２０３は、イベントの閾開始時間内に主催者の装置の位置を決定する（２００８）。ワークフローエンジン２０１は、イベントを開始時間に開始すべきであるかどうかを主催者に尋ねる問い合わせを送信する（２０１０）。例えば、ワークフローエンジン２０１は、イベントが予定されている５分前に、イベントを予定時間に開始すべきかどうかを主催者に尋ねる問い合わせを送信する。問い合わせは、通知サービス２６９により生成され、ワークフローエンジン２０１により受信される。ワークフローエンジン２０１は、カレンダモジュール２８６に、イベントを同じ時間に開始すべきであるという確認を主催者から受信する（２０１２）。装置管理エンジン２０３は、装置セットに、開始時間に使用するために電源を入れるよう指示する。例えば、装置管理エンジン２０３は、イベントの開始時間の５分前に装置セットに指示する。
【０１６４】
図２１は、エンタープライズサービスバス１０７及びＮＡａａＳアプリケーションサービス１０６を用いてカレンダイベントのために予約された１又は複数の装置を制御する方法の別の実施形態のフロー図である。エンタープライズサービスバス１０７は、ワークフローエンジン２０１を有する。ＮＡａａＳアプリケーションサービス１０６は、カレンダモジュール２８６、装置目録サービス２６５、装置管理サービス２１２及び通知サービス２６９を有する。
【０１６５】
ワークフローエンジン２０１は、カレンダモジュール２８６に、カレンダアプリケーションで出席者リストのためのイベントを生成する要求及びイベントの位置の選択を受信するよう指示する（２０１２）。
【０１６６】
例えば、位置はビルＡ内の会議室２０１Ｂである。主催者は、イベントの開始時間及び終了時間も設定する。ワークフローエンジン２０１は、装置目録サービス２６５に、その位置で使用するために提供される装置セットを決定するよう指示する（２１０４）。ワークフローエンジン２０１は、イベントで使用するために提供される装置セットのうちの１又は複数の装置を予約する要求を受信する（２１０６）。ワークフローエンジン２０１は、装置に関連するユーザが出席する必要があるか又は任意で出席するかの指示を受信する（２１０８）。ワークフローエンジン２０１は、メディアレポジトリサービス２１５に、表示のために１又は複数の装置の各々に関連する１又は複数種類のメディアを受信するよう指示する（２１１０）。ワークフローエンジン２０１は、１又は複数の装置に、イベントの始めに電源を入れるよう指示する（２１１２）。イベントの終わり頃、例えばイベントが終了する予定の５分前に、ワークフローエンジン２０１は、通知サービス２６９に、イベントを終了すべきかどうかを尋ねる通知を生成するよう指示する。任意で、ワークフローエンジン２０１は、通知を受信し、イベントを終了すべきかどうかを出席者リストのうちの少なくとも１人に問い合わせ（２１１４）、出席者リストのうちの１人から確認を受信するのに応答して、ワークフローエンジン２０１は、電源を入れられていた１又は複数の装置に電源を切るよう指示する（２１１６）。
【０１６７】
図２２は、エンタープライズサービスバス１０７及びＮＡａａＳアプリケーションサービス１０６を用いてカレンダイベントのために１又は複数の通知を生成する方法の一実施形態のフロー図である。エンタープライズサービスバス１０７は、ワークフローエンジン２０１、及び装置管理エンジン２０３を有する。ＮＡａａＳアプリケーションサービス１０６は、通知サービス２６９を有する。装置管理エンジン２０３は、開催地でイベントを開始する前に、出席者リストに関連する１又は複数の装置の位置を決定する（２２０２）。装置管理エンジン２０３は、１又は複数の装置のうちの少なくとも１つが開催地に不在であるか否かを調べる（２２０４）。１又は複数の装置のうちの少なくとも１つが開催地に不在である場合、装置管理エンジン２０３は、１又は複数の装置のうちの少なくとも１つが開催地から閾距離範囲内に存在するか否かを調べる（２２０８）。閾は、予め設定された既定値であるか、イベントの主催者などにより定められ得る。
【０１６８】
１又は複数の装置のうちの少なくとも１つが開催地に不在でない場合、装置管理エンジン２０３は、通知サービス２６９に、イベントを開始するよう提案するよう指示する（２２０６）。幾つかの実施形態では、装置管理エンジン２０３は、不在である装置に関連するユーザの身元を調べる。そのユーザの出席がイベントにとって重要でない場合、装置管理エンジン２０３は、通知サービス２６９に、イベントを開始するよう提案するよう指示する（２２０６）。例えば、図２１で言及したように、イベントを生成したユーザは、一部の出席者を必須出席者に指定し、他の出席者を任意出席者に指定する。ユーザが任意出席者のうちの１人である場合、イベントは開始可能である。
【０１６９】
１又は複数の装置のうちの少なくとも１つが開催地から閾距離範囲内に存在する場合、装置管理エンジン２０３は、通知サービス２６９に、イベントを開始するよう提案するよう指示する（２２０６）。１又は複数の装置のうちの少なくとも１つが開催地から閾距離範囲内に存在しない場合、装置管理エンジン２０３は、通知サービス２６９に、イベントの開始を遅らせる通知を生成するよう指示する（２２１０）。
【０１７０】
以上の実施形態の説明は、説明及び開設を目的としている。上述の記載は、網羅的であること又は本願明細書を開示の特定の形式に限定することを意図しない。上述の教示に照らして多くの修正及び変形が可能である。実施形態の範囲はこの詳細な説明に限定されず、本願の特許請求の範囲により定められる。当業者により理解されるように、種々の例が、本発明の精神又は基本的特徴から逸脱することなく他の特定の形式で実施できる。同様に、モジュール、ルーチン、特徴、属性、方法及び他の態様の特定の名称及び区分は、必須でも重要でもなく、明細書及びその特徴を実施するメカニズムは、異なる名称、区分及び／又はフォーマットを有しても良い。さらに、当業者に明らかなように、本願明細書のモジュール、ルーチン、特徴、属性、方法は、ソフトウェア、ファームウェア、又それらの任意の組合せで実装できる。また、本願明細書の例えばモジュールであるコンポーネントがソフトウェアとして実装されるときは、コンポーネントは、スタンドアロンプログラム、大規模プログラムの一部、複数の別個のプログラム、静的又は動的リンクライブラリ、カーネルローダブルモジュール、デバイスドライバとして、及び／又はコンピュータプログラミングの当業者に現在知られている若しくは将来知られる如何なる他の方法でも実装され得る。さらに、本願明細書は、特定プログラミング言語、又は特定のオペレーティングシステム若しくは環境での実装に限定されない。したがって、本開示は、限定ではなく、本願明細書の範囲の説明を目的とする。
【符号の説明】
【０１７１】
１０１  ＮＡａａＳミドルウェアサーバ
１０４  ネットワーク
１０５  クラウド
１０６  ＮＡａａＳアプリケーションサービス
１０７  エンタープライズサービスバス（ＥＳＢ）
１２０  ウェブサーバ
１２１  ユーザインタフェースエンジン
１２３  ＮＡａａＳアプリケーションサーバ
２０１  ワークフローエンジン
２０３  装置管理エンジン
２０５  プロトコル適応エンジン
２０７  メッセージ変換エンジン
２０９  メッセージ拡張エンジン
２１１  ユーザ管理サービス
２１２  装置管理サービス
２１３  装置使用分析サービス
２１５  メディアレポジトリサービス
２１７  メディア分析サービス
２２１  検索エンジン
２２７  サーバ保守サービス
２４０  プロセッサ
２４５  メモリ
２５０  通信ユニット
２５５  データ記憶
２６２  プロセッサ
２６４  メモリ
２６５  装置目録サービス
２６６  通信ユニット
２６７  請求サービス
２６８  データ記憶
２６９  通知サービス
２８６  カレンダモジュール
２８７  インデックス付けサービス
２９９  位置サービス
【図１Ａ】
2014106979.tif 000004
【図１Ｂ】
2014106979.tif 000005
【図２Ａ】
2014106979.tif 000006
【図２Ｂ】
2014106979.tif 000007
【図３】
2014106979.tif 000008
【図４】
2014106979.tif 000009
【図５】
2014106979.tif 000010
【図６】
2014106979.tif 000011
【図７】
2014106979.tif 000012
【図８】
2014106979.tif 000013
【図９】
2014106979.tif 000014
【図１０】
2014106979.tif 000015
【図１１】
2014106979.tif 000016
【図１２】
2014106979.tif 000017
【図１３】
2014106979.tif 000018
【図１４】
2014106979.tif 000019
【図１５】
2014106979.tif 000020
【図１６Ａ】
2014106979.tif 000021
【図１６Ｂ】
2014106979.tif 000022
【図１７】
2014106979.tif 000023
【図１８】
2014106979.tif 000024
【図１９】
2014106979.tif 000025
【図２０】
2014106979.tif 000026
【図２１】
2014106979.tif 000027
【図２２】
2014106979.tif 000028