【文献】
API Documentation for libcloud,米国,The Apache Software Foundation,2013年 9月 4日,version 0.13.1,Module Index欄,URL,http://libcloud.apache.org/apidocs/0.13.1/
【文献】
日本CloudStackユーザー会,Cloud Stack徹底入門,日本,株式会社翔泳社,2013年 3月 5日,第1版,pp.333-336
【文献】
池田 大輔,Zabbix統合監視徹底活用 複雑化・大規模化するインフラの一元管理,日本,株式会社技術評論社,2014年 3月 5日,第1版,pp.113-116
【文献】
松本 修、川合 康太、武田 俊男,デジタルビジネス・プラットフォーム,FUJITSU Vol.67 No.5,日本,富士通株式会社,2016年 9月 1日,第67巻,pp.17-18、pp.20-21
【文献】
フォーブス ジャパン編集部,「働き方」のテクノロジー,フォーブス ジャパン 第4巻 第5号 Forbes JAPAN,日本,株式会社アトミックスメディア,2017年 3月28日,第4巻,p.60
(58)【調査した分野】(Int.Cl.,DB名)
前記ラッパープロトコルは、REST(representational state transfer)プロトコルに従って作成されている請求項1に記載の方法。
プラットフォームを用いて、複数の分野に渡る複数のサービスプロバイダーとアプリケーションとを統合するためのコンピュータープログラムを具体化している非一時的コンピューター可読媒体であって、前記コンピュータープログラムは、
前記複数のサービスプロバイダーおよびそれらの複数の分野を、前記プラットフォームにメタデータとして登録するプロセッサー実施工程と、
前記登録されている複数のサービスプロバイダーのそれぞれによって提供される複数のサービスを、前記プラットフォームにメタデータとして登録するプロセッサー実施工程と、
前記登録されている複数のサービスプロバイダーのそれぞれの前記複数のサービスのそれぞれ用のパラメーターのセットを、前記プラットフォームにメタデータとして登録するプロセッサー実施工程と、
前記複数のサービスプロバイダーと統合される前記アプリケーションを、メタデータベースのリクエストビルダーモジュールへの入力として提供するプロセッサー実施工程であって、前記入力は、ラッパープロトコルによって規定されたフォーマットで提供され、前記アプリケーションは、前記ラッパープロトコルを用いて前記プラットフォームと通信を行い、さらに、前記ラッパープロトコルは、
前記複数のサービスプロバイダーのタイプを取得し、
前記複数のサービスプロバイダーのリストを取得し、
前記複数のサービスのリストを取得し、
前記複数のサービスを提供し、
前記複数のサービスのURLを取得し、
ライセンスリポジトリにアクセスするための6つの事前規定されたメソッドを含む、前記アプリケーションを提供するプロセッサー実施工程と、
前記メタデータベースのリクエストビルダーモジュールを用いて、前記入力を、前記ラッパープロトコルによって規定された前記フォーマットから、前記複数のサービスの1つに特有のフォーマットに変換するプロセッサー実施工程であって、前記変換は、前記複数のサービスの前記1つおよびそれに対応するサービスプロバイダーの前記登録された前記メタデータに基づく、前記入力を、前記複数のサービスの前記1つに特有の前記フォーマットに変換するプロセッサー実施工程と、
応答取得モジュールを用いて、前記ラッパープロトコルに対応する前記複数のサービスプロバイダーから、応答を取得するプロセッサー実施工程と、
応答標準化モジュールを用いて、前記複数のサービスプロバイダーからの前記応答を、前記ラッパープロトコルによって規定された標準フォーマットに変換するプロセッサー実施工程と、
統合モジュールを用いて、前記プラットフォームにおいて、前記複数のサービスの前記1つに特有の前記フォーマットと前記標準フォーマットを統合するプロセッサー実施工程と、のためのコンピュータープログラムを含むことを特徴とする非一時的コンピューター可読媒体。
【発明を実施するための形態】
【0015】
本発明の実施形態、並びに、それらの様々な特徴および利点が、添付の図面に示され、さらに、以下の記述において詳細に述べられている非限定的な実施形態を参照して、より十分に説明される。本明細書で用いられている例は、本明細書中の実施形態が実施可能となり、さらに、本分野における当業者が、本明細書中の本実施形態を実施可能となるような理解を容易にするためだけの意図で提供される。したがって、例は、本発明の実施形態の範囲の限定を構成するものではない。
【0016】
用語解説−実施形態において用いられる用語
本開示の文脈における「複数のサービスプロバイダー」、「サービスプロバイダー」、または「ベンダー」との表現は、「複数のサービス」または「製品」を提供する主体を意味する。さらに、これらのサービスは、本システムを介して呼び出される。
【0017】
本開示の文脈における「分野(domain)」または「ベンダータイプ(vendor types)」との表現は、ベンダーのサブカテゴリー、それらのサービスが提供されている領域または分野を意味する。例えば、「ブラウザーベースのビデオ会議開催」は、分野の1つである。
【0018】
本開示の文脈における「アプリケーション」、「統合アプリケーション」、または「ウェブアプリケーション」は、本プロトコルを用いて、既存の複数のサービスと統合されるべきアプリケーションを意味する。
【0019】
ここで、図面、より具体的には、
図1から
図3を参照すると、各図を通して対応する特徴には、同様の参照番号が一貫して付されており、各図において、好ましい実施形態が示され、これら実施形態が、以下の例示的なシステムおよび/または方法の文脈において記述される。
【0020】
本開示の実施形態に係る、プラットフォーム102を用いて、複数の分野に渡る複数のサービスプロバイダーとアプリケーションとを統合するためのシステム100が、
図1に示されている。プラットフォーム102は、プラットフォーム所有者によって提供される。また、本開示において、プラットフォームを、ホストプラットフォーム(hosted platform)と称することができる。システム100は、共通プロトコルを用いて、複数のサービスプロバイダーを統合するためのメタデータベースのアプローチを提供する。共通プロトコルは、サポートされている分野内において、複数のサービスを提供する複数のサービスプロバイダーのそれぞれに対するカスタム統合のための労力を減らす。システム100は、複数の同様の製品/サービスに渡るラッパープロトコル(wrapper protocol)を規定することにより、複数の同様の製品(ビデオ、学習、盗用の検出等)に渡る統合アプローチを標準化するよう構成されている。また、本開示の1つの例において、システム100を、iONサードパーティーフレームワークおよびプロトコル(iON TPFP:iON Third Party Framework and Protocol)と称することができる。iON TPFPは、クラウドベースのフレームワークである。また、システム100は、動的リクエストの生成を含んでおり、このプロトコルは、任意のサービスプロバイダーに拡張可能である。
【0021】
本開示の実施形態によれば、
図1のブロック図に示されているように、システム100は、登録モジュール104と、APIインターフェース106と、メモリー108と、プロセッサー110と、をさらに含む。プロセッサー110は、メモリー108と通信して機能する。プロセッサー110は、複数のモジュールをさらに含む。複数のモジュールは、メモリー108内に保存されているアルゴリズムのセットにアクセスし、特定のタスクを実行する。プロセッサー110は、メタデータベースのリクエストビルダー(metadata based request builder)モジュール112と、応答取得モジュール114と、応答標準化モジュール116と、統合モジュール118と、をさらに含む。
【0022】
本開示の実施形態によれば、登録モジュール104は、ホストプラットフォーム102に、3種類のメタデータを登録するよう構成されている。すなわち、3種類のメタデータは、1.プラットフォーム102上の複数のサービスプロバイダーおよびそれらの複数の分野に対応するメタデータ、2.プラットフォーム102上の登録されている複数のサービスプロバイダーのそれぞれによって提供される複数のサービスに対応し、複数のサービスコンポーネントを含むメタデータ、および3.プラットフォーム102上の登録されている複数のサービスプロバイダーのそれぞれの複数のサービスのそれぞれ用のパラメーターのセットに対応するメタデータである。また、システム100は、複数のサービスをグループ化するよう構成されており、さらに、同様のサービスを提供する複数の製品に渡る同じタイプのサービスの全ての標準化された入力および出力をグループ化するよう構成されている。システム100と一体化される任意のアプリケーションが、多くの製品を統合する準備を行う。この製品リポジトリ(repository:ソフトウェア設計情報のデータベース)は、拡張に伴う増加を維持することになる。
【0023】
本開示の実施形態によれば、アプリケーション・プログラミング・インターフェース(API)インターフェース106は、システム100への入力を提供するよう構成されている。APIインターフェース106は、プラットフォームを介して、統合のためのアプリケーションを提供するよう構成されている。アプリケーションは、統合アプリケーションである。統合アプリケーションは、誰によっても構築されることができ、任意の技術によって構築されることができ、さらに、任意のフレームワークによって構築されることができる。よって、システム100は、技術に依存せず、さらに、フレームワークに依存しない。APIインターフェース106は、例えば、ウェブインターフェース、グラフィカルユーザーインターフェース等の様々なソフトウェアおよびハードウェアインターフェース等を含み得、さらに、有線ネットワーク(例えば、LAN、ケーブル等)および無線ネットワーク(WLAN、セルラー、衛星等)を含む広範な種類のネットワークN/Wおよびプロトコルタイプにおける相互通信を容易にすることができる。
【0024】
本開示の実施形態によれば、統合アプリケーションは、ラッパープロトコルを含む。このような統合に関するアプリケーションは、明確に定義され、再現性のある、解決のための標準(standard)を有している。ラッパープロトコルは、6つの事前規定されたメソッドをさらに含んでいる。これら6つの事前規定されたメソッドは、複数のサービスプロバイダーのタイプを取得するためのメソッド、複数のサービスプロバイダーのリストを取得するためのメソッド、複数のサービスのリストを取得するためのメソッド、複数のサービスを提示(post)するためのメソッド、複数のサービスのURLを取得するためのメソッド、およびライセンスリポジトリにアクセスするためのメソッドである。6つの事前規定されたメソッドのそれぞれは、HTTP REST(REpresentational State Transfer:分散ハイパーメディアシステムのためのソフトウェアアーキテクチャスタイルの1つ) URLとして利用可能である。また、本開示の例において、6つの事前規定されたメソッドを、それぞれ、GetVendorTypes、GetVendorList、GetVendorServiceList、PostVendorService、GetVendorServiceURL、およびLicenseMgmtと称することができる。これらメソッドは、本開示の後の部分において、詳細に説明される。
【0025】
本開示の実施形態によれば、プロセッサー110は、メタデータベースのリクエストビルダーモジュール112を含む。メタデータベースのリクエストビルダーモジュール112は、アプリケーションのラッパープロトコルを、複数のサービスの1つに特有のフォーマットに変換するよう構成されている。ここで、該変換は、統合アプリケーションに対応するサービスプロバイダーおよびサービスのために登録されたメタデータに基づいて実行される。メタデータベースのリクエストビルダーモジュール112は、ラッパープロトコルのフォーマットでの入力を、REST(Representational State Transfer)でのJSON(JavaScript(登録商標) Object Notation)形式のキー値ペア(key value pairs)として取得する。
【0026】
本開示の実施形態によれば、プロセッサー110は、応答取得モジュール114と、応答標準化モジュール116と、をさらに含む。応答取得モジュール114は、ラッパープロトコルに対応する複数のサービスプロバイダーから、応答を取得する。一方、応答標準化モジュール116は、複数のサービスプロバイダーから取得した応答を、ラッパープロトコルによって規定された標準フォーマットに変換する。本開示の別の実施形態において、応答標準化モジュール116も、応答を取得するよう構成されていてもよいことは、理解されるべきである。さらに、統合モジュール118は、プラットフォーム102内において、標準フォーマットと、アプリケーションに特有のフォーマットとを統合する。よって、iTPFPは、ごく少数のタイプのトランザクションのために、複数のサービスプロバイダーと通信を行い、統合アプリケーションがラッパープロトコルに従うものであれば、その後、統合アプリケーションの所有者は、それらを統合するために、ベンダーのセットを知る必要がない。よって、プログラムを書く代わりに、統合アプリケーションは、多数のサービスプロバイダーと、途切れなく、相互通信を行うことができる。
【0027】
本開示の実施形態によれば、システム100は、ライセンス管理モジュール120をさらに含む。ライセンス管理モジュール120は、複数のサービスプロバイダーのライセンスおよび対応データを管理するよう構成されている。ライセンス管理モジュール120は、ラッパープロトコルの6つの事前規定されたメソッドの1つを介してアクセス可能に構成されている。また、ライセンス管理モジュール120は、複数のサービスプロバイダーのライセンスを保存するためのライセンスリポジトリ122を保持している。ライセンスリポジトリ122は、キー値ペアのリポジトリ(API上に露出している)を有することができる。ここで、エンドユーザーは、複数のキー値(ライセンスコード、登録済みメール、アプリケーションID等)を、ベンダーリストの中のベンターに対して登録することができる。また、任意のライセンスパラメーター(例えば、登録されたメールID、アプリケーションID、管理認証情報等)が取得されてもよく、さらに、任意のライセンスパラメーターが、iON TPFPを通り、サードパーティー商品との統合を行うために、用いられてもよい。
【0028】
本開示の実施形態によれば、システム100は、コーダーの統合労力を大幅に減らす。また、システム100は、プラットフォーム102と既に統合されている複数のベンダーの準備リポジトリ(ready repository)を提供する。よって、労力の削減に加えて、統合アプリケーションは、同様に統合された複数の製品を迅速に取得するという観点からも、付加価値を取得している。
【0029】
本開示の実施形態によれば、
図2に示すような概念アーキテクチャを活用して、システム100を説明することができる。
図2中の図表は、3つのタイプのサービスプロバイダー、すなわち、ビデオ会議開催ベンダー、盗用ベンダー、およびコンテンツ管理ベンダーを参照して、説明される。プラットフォーム102によって登録され得る様々なベンダーが存在し得る。統合される必要がある全てのアプリケーションが、左手側に記載されている。また、全ての統合アプリケーションが、ライセンス管理モジュール120と通信可能となっている。ライセンス管理モジュール120は、統合アプリケーションに必要な全てのライセンス情報を提供することができる。全ての統合アプリケーションは、REST/JSONプロトコルに従って(over REST/JSON protocol)構築される。統合アプリケーションは、メタデータベースのリクエストビルダーモジュール112に対する入力を提供可能である。ベンダーのタイプに応じて、複数のベンダーのそれぞれ用のカスタムリクエストが送信される。カスタムリクエストは、複数のベンダーのリポジトリに送信される。このリポジトリは、登録されている複数のサービスプロバイダーのメタデータの全てを有している。カスタム出力が、複数のベンダーのそれぞれから受信され、その後、カスタム出力が、応答標準化モジュール116に提供される。その後、応答標準化モジュール116は、統合アプリケーションの統合に利用可能な標準フォーマットで、出力を提供する。
【0030】
動作において、
図3A−3Bに示されているように、フローチャート200は、プラットフォーム102を用いて、複数の分野に渡る複数のサービスプロバイダーと統合アプリケーションを統合するためのプロトコルの工程を示している。最初に、工程202において、複数のサービスプロバイダーおよびそれらの複数の分野に対応するメタデータが、プラットフォーム102に登録される。同様に、工程204において、登録されている複数のサービスプロバイダーのそれぞれによって提供される複数のサービスに対応するメタデータが、プラットフォーム102に登録され、さらに、工程206において、登録されている複数のサービスプロバイダーのそれぞれの複数のサービスのそれぞれ用のパラメーターのセットに対応するメタデータが、プラットフォーム102上に登録される。
【0031】
次の工程208において、統合アプリケーションが、プラットフォーム102を介して、統合のために提供される。統合アプリケーションは、ラッパープロトコルを有している。ラッパープロトコルは、6つの事前規定されたメソッドを含んでいる。ラッパープロトコルを用いて、任意のアプリケーションは、ホストプラットフォーム102と通信を行うことができ、さらに、ホストプラットフォーム102は、続いて、複数の分野に渡る複数のサービスプロバイダーと内部的に接続することによって、統合アプリケーションのリクエストを実行し、さらに、標準フォーマットで、出力を提供することができる。
【0032】
次の工程210において、メタデータベースのリクエストビルダーモジュール112を用いて、アプリケーションのラッパープロトコルが、複数のサービスの1つに特有のフォーマットに変換される。この変換は、アプリケーションに対応するサービスプロバイダーおよびサービス用に登録されたメタデータに基づいて実行される。工程212において、応答取得モジュール114を用いて、ラッパープロトコルに対応する複数のサービスプロバイダーからの応答が、取得される。次の工程214において、応答標準化モジュール116を用いて、複数のサービスプロバイダーから取得された応答が、ラッパープロトコルによって規定された標準フォーマットに変換される。最後に、工程216において、プラットフォーム102内において、標準フォーマットと、アプリケーションに特有のフォーマットとが統合される。ラッパープロトコルは、通信(入力&出力)の形式/フォーマットを規定/標準化するので、統合アプリケーションの終端(the end of the integrating application)における労力が実質的に低減される。
【0033】
また、本開示の別の実施形態によれば、システム100またはiTPFPを、以下の例を用いて説明することができる。本開示の現在のバージョンにおいて、iTPFPは、4つの分野に渡る7つのベンダーによって提供される20タイプのサービスをサポートしている。本開示は、将来の拡張および開発を含むさらなる範囲も有していることは、理解されるべきである。4つの分野は、ビデオ会議開催、LMS(Learning Management System:学習管理システム)コンテンツ管理、盗用、およびヴァーチャル研究室を含む。表Iは、システム100によってサポートされている複数のサービスのリストを示している。
表I
【0034】
表2は、システム100によってサポートされている複数のサービスプロバイダーのリストを示している。
表II
【0035】
上で説明したように、ラッパープロトコルは、6つの事前規定されたメソッドを有している。これらメソッドの全ては、HTTP REST URLsとして利用可能である。全ての相互通信は、これら6つのメソッドを介してのみ実行される。入力/出力は、いくつかの場合において変化し得る(起動される「ベンダーサービス」のタイプに応じて変化し得る)。いくつかのメソッドは、メタデータベースであり、公に利用可能である。一方、いくつかのメソッドは、メタデータベースではなく、iTPFPライセンスが必要であり、登録された分野から呼び出されることが必要である。6つの事前規定されたメソッドは、以下の通りである。
【0036】
GetVendorTypes(メタデータベース):このメソッドは、JSON出力として、iTPFPの現在のバージョンにおいてサポートされている「分野」のリストを提供する。
【0037】
GetVendorList(メタデータベース):このメソッドは、JSON出力として、iTPFPの現在のバージョンにおいてサポートされているベンダーのリストを提供する。
【0038】
GetVendorServiceList(メタデータベース):このメソッドは、JSON出力として、特定のベンダーとの相互通信のために利用可能なベンダーサービスのリストを提供する(本メソッドは、動作のための入力として、ベンダーIDまたはベンダータイプIDを必要とする)。
【0039】
PostVendorService(メタデータベースではない):このメソッドは、通過したサービスを起動した後に、入力として、入力JSON(ベンダーのタイプおよび起動されているベンダーのサービスによって変化する)を受け付け、標準出力JSONを与える。このメソッドは、標準入力/出力を介して、サードパーティベンダーのサービスを起動する実際のタスクを実行する。このメソッドのための入力/出力フォーマットは、各分野のサービス毎に事前に規定されており、これは、例えば、任意のサポートされている盗用ベンダーのテキストファイルスキャン用のPostVendorServiceフォーマットが同じものであり、プロトコル仕様書内において規定されていることを意味する。
【0040】
GetVendorServiceList(メタデータベースではない):このメソッドは、JSON入力(ベンダーのタイプおよび起動されているベンダーのサービスによって変化する)を受け付け、ポストパラメーターと共に、完全形式URLを返す。このURLは、統合アプリケーションによって直接呼び出され、ベンダーと直接接続することによって、ベンダーサービスを起動する。しかしながら、この場合、出力は標準化されない。
【0041】
LicenseMgmt:1.Default(メタデータベース):「LicenseMgmt」メソッドは、パラメーター無しで呼び出された場合、ベンダーのリストと、必要なライセンスパラメーター(例えば、秘密鍵、パスワード、登録されたeメール等)を与え、これらベンダーとの認証を行う。2.With iTPFP License(メタデータベースではない):このメソッドは、iTPFPライセンス情報と共に呼び出された場合、あなたのライセンスパラメーターをフェッチおよび保存するよう機能する。
【0042】
さらなる既述のために、プロトコルの事前規定されたメソッドの組が以下に提供される。実際のURL、JSON入力/出力は、詳細に提供されている。
【0043】
メソッド仕様書
GetVendorTypes(メタデータベース)
説明:iTPFPの現在のバージョンにおいてサポートされている「分野」のリストを返す。
URL:www.tcsion.com/LX/iONThirdPartyFwNProtocol/GetVendorTypesを入手
URLパラメーター:なし
タイプ:これは、公に使用可能にオープンにされたサービスであり、如何なるサブスクリプションも必要としない。
出力:フォーマット:JSON
サンプル:
[{“ベンダー_コンセプト_マスター_id”:1,“名前”:“盗用”},
{“ベンダー_コンセプト_マスター_id”:2,“名前”:“コンテンツ”},
{“ベンダー_コンセプト_マスター_id”:3,“名前”:“会議”}]
属性:
1.ベンダー_コンセプト_マスター_id −「ベンダータイプ」/「分野」のユニーク識別子
2.名前 −分野の名前
PostVendorService(メタデータベースではない)
説明:このメソッドは、通過したサービスを起動した後に、入力として、入力JSON(ベンダーのタイプおよび起動されているベンダーのサービスによって変化する)を受け付け、標準出力JSONを与える。
URL:POST
www.tcsion.com/LX/iONThirdPartyFwNProtocol/PostVendorService?service_id=x&org_id=y&license_code=z
URLパラメーター:
サービス_id −特定のベンダー(GetVendorServiceListメソッドを介してフェッチされたベンダー)のサービスのタイプのユニークな識別子。
org_id −iON(www.tcsion.com)に承認されたときに統合アプリケーションのOrgに提供されるユニークな識別子。
ライセンス_コード −iTPFPを用いた統合アプリケーションに提供されるライセンスであり、特定のウェブサイト分野のみを有効化する。
POSTパラメーター:JSONが、URLと共に、(提示コンテンツにおいて)提示される。このJSONは、サービスのタイプによって変化するが、1つの分野内の複数のベンダーの間では一定である。
タイプ:これは、SASモデル上のiON(www.tcsion.com)によって提供されるサービスであり、サブスクリプションを必要とする。
例1:盗用ベンダーのための画像スキャン
RESTパラメーター
<サービス_id> →任意のサポートされている盗用ベンダーのサービスのIDである。ここで、サービス_名前=“画像スキャン”(同じプロトコルのメソッドGetVendorServiceListからのもの)
<org_id>&<ライセンス_コード> →統合アプリケーションに提供されたiTPTPライセンスパラメーター
(POSTにおける)JSONフォーマット →{‘トークン’:‘有効化認証トークン’,‘ファイル’:‘スキャンすべきファイルのURL/経路’})
出力
{“ファイル名”:“<提出されたファイルの名前>”,“プロセスId”:“<あなたが開始したスキャンプロセスの識別子>”,“CreationTimeUTC”:“<タイムスタンプ>”}
例2.任意の盗用ベンダーへのあなたの提出されたファイルのフェッチステータス
RESTパラメーター
<サービス_id> →任意のサポートされている盗用ベンダーのサービスのIDである。ここで、サービス_名前=“ステータス”(同じプロトコルのメソッドGetVendorServiceListからのもの)
<org_id>&<ライセンス_コード> →統合アプリケーションに提供されたiTPTPライセンスパラメーター
(POSTにおける)JSONフォーマット →{‘トークン’:‘有効化認証トークン’,‘プロセスId’:‘<有効化プロセスId>’})
出力
{‘ステータス’:‘<終了/進行中>’,‘進捗パーセント’:<1,100の間の整数>}
【0044】
記載された記述は、本発明を記述し、本分野における当業者が、本実施形態を実施および使用することを可能とする。本発明の実施形態の範囲は、特許請求の範囲によって規定され、さらに、本分野における当業者が想到可能な他の変形を含んでいてもよい。このような他の変形は、特許請求の範囲の文言と異ならない同様の要素を有している、または、特許請求の範囲の文言とは非実質的に異なる同等の要素を含んでいたとしても、本発明の範囲に含まれるものである。
【0045】
本明細書における本開示の実施形態は、単一のプラットフォームを用いて、様々な分野における複数のサービスプロバイダーとアプリケーションとを統合するためのプロトコルを提供する。よって、該プロトコルは、ホストプラットフォームにおいて統合アプリケーションのカスタム統合に必要な労力と時間を低減するものである。
【0046】
しかしながら、保護の範囲は、内部にメッセージを保持するコンピューター可読手段に加えて、プログラムにまで及ぶことは理解されるべきである。そのようなコンピューター可読保存手段は、プログラムが、サーバー、携帯デバイス、または任意の好適なプログラム可能デバイス上で実行されたときに、本方法の1つまたは複数の工程を実行するためのプログラムコード手段を含む。ハードウェアデバイスは、例えば、サーバー、パーソナルコンピューターのような任意の種類のコンピューター、および、これらの任意の組み合わせを含む任意の好適なプログラム可能デバイスである。また、デバイスは、ハードウェア手段(例えば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA))、ハードウェア手段とソフトウェア手段の組み合わせ(例えば、ASICとFPGA)、少なくとも1つのマイクロプロセッサー、内部にソフトウェアモジュールを有する少なくとも1つのメモリーを含む手段であってもよい。よって、手段は、ハードウェア手段とソフトウェア手段の双方を含む。本明細書において記述された方法の実施形態は、ハードウェアおよびソフトウェアにおいて実施することができる。また、デバイスは、ソフトウェア手段を含む。代替的に、実施形態は、例えば、複数のCPUを用いて、複数の異なるハードウェアデバイス上において実施されていてもよい。
【0047】
ここで記述された実施形態は、ハードウェア要素とソフトウェア要素を含み得る。ソフトウェアにおいて実施される実施形態は、これに限定されるものではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む。本明細書で記述された様々なモジュールによって実行される機能は、他のモジュールまたは他のモジュールの組み合わせにおいて実施されてもよい。記述の目的のため、コンピューター使用可能またはコンピューター可読媒体は、使用のために、命令実行システム、装置、またはデバイスによって使用され、または、接続され、プログラムを、含有、保存、通信、伝搬、または送信することができる任意の装置であってもよい。
【0048】
媒体は、電気的、磁気的、光学的、電磁気的、赤外、若しくは半導体システム(若しくは、装置やデバイス)、または、伝搬媒体であってもよい。コンピューター可読媒体の例としては、半導体または固体状メモリー、磁気テープ、取り外し可能コンピューターディスケット、ランダムアクセスメモリー(RAM)、リードオンリーメモリー(ROM)、固体磁気ディスク、および光学ディスクが挙げられる。光学ディスクの現在の例としては、コンパクトディスク−リードオンリーメモリー(CD−ROM)、コンパクトディスク−読み込み/書き込み(CD−R/W)、およびDVDが挙げられる。
【0049】
プログラムコードを保存および/または実行するのに適したデータ処理システムは、システムバスを介して、メモリー要素に直接的または間接的に接続された少なくとも1つのプロセッサーを含む。メモリー要素は、プログラムコードの実際の実行中に用いられるローカルメモリー、大容量記憶装置、実行中に大容量記憶装置から読み出さなければならないコードの読み出し回数を減らすために、少なくともいくつかのプログラムコードの一時的な記憶を提供するキャッシュメモリーを含むことができる。
【0050】
入力/出力(I/O)デバイス(これに限定されるものではないが、キーボード、ディスプレイ、ポインティングデバイス等を含む)は、直接、または、介在I/Oコントローラーを介してシステムに接続可能である。また、ネットワークアダプターがシステムに接続され、データ処理システムが、介在プライベートまたはパブリックネットワークを介して、他のデータ処理システム、遠隔プリンター、またはストレージデバイスに接続可能となっていてもよい。モデム、ケーブルモデム、およびイーサネット(登録商標)カードが、ごく少数の現在利用可能なネットワークアダプターである。
【0051】
実施形態を実施するための代表的なハードウェア環境は、本明細書において述べられた実施形態に従う情報操作/コンピューターシステムのハードウェア構成を含んでいてもよい。本システムは、少なくとも1つのプロセッサーまたは中央演算ユニット(CPU)を含む。CPUは、システムバスを介して、ランダムアクセスメモリー(RAM)、リードオンリーメモリー(ROM)、および入力/出力(I/O)アダプターのような様々なデバイスに相互接続されている。I/Oアダプターは、ディスクユニットやテープドライブのような周辺機器、または、システムによって読み込み可能な他のプログラムストレージデバイスを接続可能である。システムは、プログラムストレージデバイス上の発明の命令を読み込み、これら命令に従って、本明細書の実施形態の技術を実行する。
【0052】
システムは、キーボード、スピーカー、マイク、および/または、タッチスクリーン(図示せず)のような他のユーザーインターフェースデバイスを、ユーザー入力を集めるバスに接続する、ユーザーインターフェースアダプターをさらに含む。さらに、例えば、通信アダプターは、バスを、データ処理ネットワークに接続し、ディスプレイアダプターは、バスを、モニター、プリンター、送信機のような出力デバイスとして用いることができる表示装置に接続する。
【0053】
以上の記述が、様々な実施形態を参照して提供された。本出願が属する分野および技術における当業者であれば、本発明の原理、考え方、および範囲から有意に逸脱することなく、記述された構成および動作の方法における変形や変更が可能であることを理解できるであろう。