(57)【特許請求の範囲】
【請求項１】
プロセッサを有するコンピュータにより実施される方法であって、
前記プロセッサが、バンドルされたサービスをトップレベルサービスと、前記トップレベルサービスに使用されるサブサービスとに集約解除すること、
前記プロセッサが、階層型依存関係ツリーを作成するように前記トップレベルサービスと前記サブサービスをマップすること、
前記プロセッサが、前記トップレベルサービスと前記サブサービスの依存関係を構成することであって、前記サブサービスを統合する規則のセットに基づいて前記階層型依存関係ツリーを変更することを含むことを備え、
前記規則のセットは、前記トップレベルサービスに使用される前記サブサービスのプロバイダの数と、前記サブサービスの大量購入割引料金とに基づいている方法。
【請求項２】
前記バンドルされたサービスを前記集約解除することは、前記トップレベルサービスのそれぞれのトップレベルサービスによって使用されるサブサービスのリストを受け取ることを備える請求項１に記載の方法。
【請求項３】
前記マップすることは、前記それぞれのトップレベルサービスによって使用されるサブサービスの前記リストを表す情報を含むデータストアを作成すること、および前記情報に基づいて階層型マップを生成することを備える請求項２に記載の方法。
【請求項４】
サブサービスの前記リストを前記受け取ることは、前記それぞれのトップレベルサービスの使用量を追跡すること、および前記それぞれのトップレベルサービスによって使用される前記サブサービスを特定することを備える請求項２に記載の方法。
【請求項５】
サブサービスの前記リストを前記受け取ることは、事前に指定されたリストを受け取ることを備える請求項２に記載の方法。
【請求項６】
サブサービスの前記リストを前記受け取ることは、前記それぞれのトップレベルサービスに適合するサブサービスのリストを受け取ることをさらに備える請求項２に記載の方法。
【請求項７】
前記トップレベルサービスと前記サブサービスの前記依存関係を前記構成することは、前記トップレベルサービスによって使用される前記サブサービスの数を低減することを備える請求項１に記載の方法。
【請求項８】
規則の前記セットに基づいて前記階層型依存関係ツリーを前記変更することは、前記サブサービスのコストに応答して前記トップレベルサービスの前記依存関係を変更することを備える請求項１に記載の方法。
【請求項９】
規則の前記セットに基づいて前記階層型依存関係ツリーを前記変更することは、前記サブサービスの使用量に関する条件を満たしたことに応答して前記トップレベルサービスの前記依存関係を変更することを備える請求項１に記載の方法。
【請求項１０】
バンドルされたサービスを解析し、前記バンドルされたサービスの中のサービスについての情報を抽出するように構成される集約解除構成要素と、
前記バンドルされたサービスについての前記情報に応じてサービスプロバイダとインフラストラクチャプロバイダの階層型ツリーを生成するように構成されるマッピング構成要素であって、前記階層型ツリーは、前記サービスプロバイダと前記インフラストラクチャプロバイダの間の関係を表す、マッピング構成要素と、
規則のセットに基づいて前記サービスプロバイダと前記インフラストラクチャプロバイダの間の前記関係を変更するように構成される構成エンジン構成要素とを備え、
前記規則のセットは、前記サービスプロバイダと前記関係を有する前記インフラストラクチャプロバイダの数、及び前記サービスの大量購入割引料金に基づいているシステム。
【請求項１１】
前記マッピング構成要素は、前記サービスプロバイダと前記インフラストラクチャプロバイダの間の既存の関係に基づいて前記サービスプロバイダと前記インフラストラクチャプロバイダをマップするようにさらに構成される請求項１０に記載のシステム。
【請求項１２】
前記構成エンジン構成要素は、前記サービスプロバイダと前記インフラストラクチャプロバイダの間の潜在的な関係に基づいて前記インフラストラクチャプロバイダを統合するようにさらに構成される請求項１０に記載のシステム。
【請求項１３】
前記集約解除構成要素は、前記サービスプロバイダと前記インフラストラクチャプロバイダの間の前記関係の事前に指定されたリストを受け取るようにさらに構成される請求項１０に記載のシステム。
【請求項１４】
前記構成エンジン構成要素によって使用される規則の前記セットを作成するように構成される規則生成構成要素をさらに備え、規則の前記セットは、インフラストラクチャプロバイダとの関係の作成につながる条件を備える、請求項１０に記載のシステム。
【請求項１５】
前記条件は、前記インフラストラクチャプロバイダのコストに基づく請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、クラウドコンピューティング環境におけるベンダ最適化に関する。
【背景技術】
【０００２】
クラウドコンピューティングは、インターネットまたは他のネットワークを使用して、クラウドに基礎をおき、ローカルで格納されないサービスへのアクセスをもたらす。通常のクラウドコンピューティング環境は、エンドユーザにリソースを提供するように互いに対話する、一緒に集約された複数の層から成ることが可能である。ソフトウェアアズアサービス（ＳａａＳ）、プラットフォームアズアサービス（ＰａａＳ）、およびインフラストラクチャアズアサービス（ＩａａＳ）はすべて、「クラウド」を構成する層であり得る。ＳａａＳ層は、顧客自身のコンピュータにアプリケーションをインストールして、実行する必要をなくすオンデマンドアプリケーションを提供することができる。ＰａａＳ層は、コンピューティングプラットフォームおよびソリューションスタックを、アプリケーションの展開を円滑にするサービスとして届けることができる。ＩａａＳ層は、ストレージまたはコンピューティング能力などのコンピュータインフラストラクチャをサービスとして届けることができる。
【０００３】
これらの層のいずれも、エンドユーザによってアクセスされることが可能であるが、これらの層の間の対話は、エンドユーザには不透明であり得る。エンドユーザがこれらの層のうちの１つにアクセスしている場合、エンドユーザは、一般に、その層とその他の層の間の対話を関知していない。これらの層の間のサービスの対価の支払いは、通常、利用ベースで行われ、決められた額が、合計のストレージコスト、計算時間などに対して支払われる。その後、これらの集約されたコストが、エンドユーザがアクセスした層によって準備された請求書を介してエンドユーザに転嫁される。
【０００４】
エンドユーザと直接にインターフェースをとらない層もまた、通常、これらの層のリソースおよびサービスの最終的な受取人を知らない。エンドユーザ側および背景の層の側でこのように情報が欠如していることは、エンドユーザが、背景の層を相手に特別料金を交渉することができないことを意味する。同様に、背景の層は、これらの層のサービスおよびリソースを使用するエンドユーザに割り引きまたは大量購入割引料金を提案することができない。
【０００５】
クラウドコンピューティング環境の従来のアプローチの前述した欠点は、単に、従来のアプローチおよび技法の問題のいくつかの概観を与えることを意図しているに過ぎず、網羅的であることを意図していない。従来のシステムおよび技法の抱える他の問題、ならびに本明細書で説明される限定的でない様々な実施形態の対応する利点が、後段の説明を検討することでさらに明白となり得る。
【発明の概要】
【０００６】
限定的でない様々な実施形態において、集約された環境におけるベンダの最適化を可能にするシステムおよび方法が提供される。ある例示的な実施形態において、方法が、バンドルされたサービスを集約解除して、トップレベルサービスとサブサービスにすること、階層型依存関係ツリーを作成するようにトップレベルサービスとサブサービスをマップすること、および規則のセットに基づいて階層型依存関係ツリーを変更することおよびサブサービスを再統合することを含む、トップレベルサービスとサブサービスの依存関係を構成することを備える。
【０００７】
別の例示的な実施形態において、システムが、バンドルされたサービスを解析し、それらのバンドルされたサービスの、サービスについての情報を抽出するように構成される集約解除構成要素と、バンドルされたサービスについての情報に応じて、サービスおよびインフラストラクチャプロバイダの階層型ツリーを生成するように構成されるマッピング構成要素を備え、サービスの階層型ツリーは、サービスプロバイダとインフラストラクチャプロバイダの間の関係を表す。このシステムは、規則のセットに基づいてサービスとインフラストラクチャプロバイダの間の関係を変更するように構成される構成エンジン構成要素をさらに含むことが可能である。
【０００８】
別の例示的な実施形態において、方法が、複数のサービスプロバイダから項目別の請求書を受け取ること、サービスプロバイダおよびインフラストラクチャプロバイダの階層型ツリーにアクセスすること、複数のサービスプロバイダからの項目別の請求書上の項目を、インフラストラクチャプロバイダによって提供されたサービスとマッチングすることであって、階層型ツリーを解析することを含むこと、およびそれぞれのインフラストラクチャプロバイダによって提供されたサービスの統合されたリストをインフラストラクチャプロバイダに送ることを備える。
【０００９】
別の例示的な実施形態において、コンピュータ可読記憶媒体がコンピュータ実行可能命令を有し、前記コンピュータ実行可能命令は、実行に応答して、コンピューティングシステムに動作を実行させ、前記動作は、それぞれのサービスプロバイダから項目別の請求書を受け取ること、項目別の請求書に基づいてインフラストラクチャプロバイダによって提供されたサービスのリストを作成することであって、サービスのリストは、サービスの価格および使用量（usage）を備えること、および共通のインフラストラクチャプロバイダに切り替えるようにサービスプロバイダを構成することによってインフラストラクチャプロバイダを統合することを備える。
【００１０】
別の例示的な実施形態において、システムが、サービスプロバイダからの項目別の請求書を受け取るように構成される料金請求構成要素と、項目別の請求書、およびサービスプロバイダおよびインフラストラクチャプロバイダの階層型ツリーを解析し、項目別の請求書からの項目をインフラストラクチャプロバイダとマッチングするように構成されるマッチング構成要素と、インフラストラクチャプロバイダとマッチングされた項目をクラスタ化し、グループ化されたトランザクションレポートをインフラストラクチャプロバイダに送るように構成されるグループ化構成要素とを備える。
【００１１】
別の例示的な実施形態において、システムは、インフラストラクチャプロバイダのセットを作成するように構成されるセット作成構成要素であって、インフラストラクチャプロバイダのセットは、サービスプロバイダによって使用されるサービスのセットを提供するように構成される、セット作成構成要素と、インフラストラクチャプロバイダのセットの中のインフラストラクチャプロバイダの使用量当たりの価格、および使用量を解析し、セットから最低のコストを伴うインフラストラクチャプロバイダのセットを選択するように構成される選択構成要素と、選択構成要素によって選択されたインフラストラクチャプロバイダのセットに切り替えるようにサービスプロバイダの構成を変更する要求を送るように構成される統合構成要素とを備える。
【００１２】
別の例示的な実施形態において、システムが、複数のサービスプロバイダからの項目別の請求書上の項目を、複数のインフラストラクチャプロバイダによって提供されたサービスとマッチングするための手段と、複数のインフラストラクチャプロバイダによって提供されたサービスに基づいて、項目別の請求書からの項目を統合してグループにするための手段と、インフラストラクチャプロバイダによって提供されたサービスの統合されたリストを複数のインフラストラクチャプロバイダに送るための手段とを備える。
【００１３】
以上の概要は、単に例示的であり、限定することは全く意図していない。前述した例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面、および後段の詳細な説明を参照することによって明白となろう。
【００１４】
限定的でない様々な実施形態が、添付の図面を参照してさらに説明される。
【図面の簡単な説明】
【００１５】
【図１】サービスプロバイダおよびインフラストラクチャプロバイダの階層型ツリーを作成するためのシステムの例示的な限定的でない実施形態を示すブロック図である。
【図２】サービスプロバイダとインフラストラクチャプロバイダの間の関係および依存関係を変更するためのシステムの例示的な限定的でない実施形態を示すブロック図である。
【図３】サービスプロバイダおよびインフラストラクチャプロバイダの階層型ツリーを作成するため、および変更するためのシステムの例示的な限定的でない実施形態を示すブロック図である。
【図４】トップレベルサービスとサブサービスの依存関係を構成するための方法の例示的な限定的でない実施形態を示す流れ図である。
【図５】トップレベルサービスとサブサービスの階層型依存関係ツリーを生成するため、および変更するための方法の例示的な限定的でない実施形態を示す流れ図である。
【図６】インフラストラクチャプロバイダに、統合されたトランザクションレポートを送るための料金請求システムの例示的な限定的でない実施形態を示すブロック図である。
【図７】インフラストラクチャプロバイダに、サービスの統合されたリストを送るための方法の例示的な限定的でない実施形態を示す流れ図である。
【図８】サービスプロバイダによって使用されるインフラストラクチャプロバイダを統合するためのコンピュータ可読命令のセットの例示的な限定的でない実施形態を示す流れ図である。
【図９】インフラストラクチャプロバイダを選択するためのシステムの例示的な限定的でない実施形態を示すブロック図である。
【図１０】本開示の実施形態のうちの少なくともいくつかのために構成された例示的なコンピューティングデバイスを示すブロック図である。
【図１１】特許請求される主題により使用され得る例示的なネットワーキング環境を示すブロック図である。
【発明を実施するための形態】
【００１６】
概要
以下の詳細な説明において、本明細書の一部分を形成する添付の図面が参照される。これらの図面において、同様の符号は、そうでないことが文脈によって規定されるのでない限り、通常、同様の構成要素を識別する。詳細な説明、図面、および特許請求の範囲において説明される例示的な実施形態は、限定することを意図していない。本明細書で提示される主題の趣旨または範囲を逸脱することなく、他の実施形態が利用されてもよく、さらに他の変更が行われてもよい。本明細書で一般的に説明され、さらに図に例示される本開示の態様は、本明細書においてすべてが明確に企図される、多種多様な異なる構成において構成されること、置換されること、組み合わされること、分離されること、および設計されることが可能であることが、容易に理解されよう。
【００１７】
詳細な説明において、「サービスプロバイダ」および「インフラストラクチャプロバイダ」について述べる。簡明のため、サービスプロバイダ（またはトップレベルサービス）とは、顧客またはエンドユーザにサービスを提供しているものと定義されることが可能である一方で、インフラストラクチャプロバイダ（またはサブサービス）は、これらのサービスプロバイダにサービスおよびリソースを提供する。エンドユーザは、ＳａａＳ層、ＰａａＳ層、またはＩａａＳ層のいずれと対話することもでき、１つだけのタイプの層と対話することに限定されないことに留意されたい。したがって、これらのサービスプロバイダおよびインフラストラクチャプロバイダのそれぞれが、ＳａａＳ層、ＰａａＳ層、またはＩａａＳ層のいずれの層であることも可能である。
【００１８】
次に図１を参照すると、サービスプロバイダおよびインフラストラクチャプロバイダの階層型ツリーを作成するためのシステムの例示的な限定的でない実施形態のブロック図が示されている。図１に示されるとおり、バンドルされたサービス１０４（ａ）〜１０４（ｃ）を包含するバンドルされたサービスのセット１０２を細分する集約解除システム１００が与えられている。集約解除構成要素１０６が、これらのバンドルされたサービスを受け取り、これらのバンドルされたサービスを集約解除して、サービスプロバイダ１１２（ａ）、１１２（ｂ）、１１４（ａ）、および１１４（ｂ）、ならびにインフラストラクチャプロバイダ１１０（ａ）、１１０（ｂ）、および１１０（ｃ）にすることが可能である。マッピング構成要素１０８が、ベンダの関係および依存関係を示す階層型ツリー１１６を生成することが可能である。簡明のため、図１は、インフラストラクチャプロバイダの１つの層と、サービスプロバイダの２つの層を示すが、階層型ツリー１１６は、任意の数の層および組み合わせのインフラストラクチャプロバイダおよびサービスプロバイダを包含することが可能である。
【００１９】
一実施例において、バンドルされたサービスのセット１０２はすべて、またはいくらかの部分が、顧客が使用する、または契約するクラウドサービスであり得る。バンドルされたサービスのセット１０２は、プライベートクラウドサービスおよび公共クラウドサービスの任意の組み合わせであり得る。バンドルされたサービスのセット１０２は、１０４（ａ）、１０４（ｂ）、および１０４（ｃ）を含み得る。バンドルされたサービスは、プライベートクラウドネットワークまたは公共クラウドネットワークに存在し得る。
【００２０】
集約解除構成要素１０６が、バンドルされたサービス１０４（ａ）ないし１０４（ｃ）を解析し、さらにサービスプロバイダ１１２（ａ）、１１２（ｂ）、１１４（ａ）、および１１４（ｂ）、ならびにインフラストラクチャプロバイダ１１０（ａ）ないし１１０（ｃ）についての情報を抽出するように構成されることが可能である。図１は、４つのサービスプロバイダと、３つのインフラストラクチャプロバイダとを含むバンドルされたサービスを示すが、バンドルされたサービスは、任意の数および／または組み合わせのサービスプロバイダおよびインフラストラクチャプロバイダを含むことが可能であることを認識されたい。
【００２１】
集約解除構成要素１１０によって抽出される情報は、バンドルされたサービスによって使用されるサービスプロバイダ、および各サービスプロバイダによって使用されるインフラストラクチャプロバイダを識別することが可能である。この情報は、サービスプロバイダによって実際に使用されるインフラストラクチャプロバイダと関係することが可能であり、さらにサービスプロバイダによって使用され得るが、実際には使用されていないインフラストラクチャプロバイダを識別することも可能である。例として、階層型ツリー１１６において、サービスプロバイダ１１２（ａ）が、インフラストラクチャプロバイダ１１０（ａ）と１１０（ｂ）の両方を使用することができるが、インフラストラクチャプロバイダ１１０（ｃ）を使用することはできないことがあり得る。同様に、サービスプロバイダ１１２（ｂ）が、インフラストラクチャプロバイダ１１０（ｂ）と１１０（ｃ）の両方を使用することができるが、インフラストラクチャプロバイダ１１０（ａ）を使用することはできないことがあり得る。
【００２２】
一実施形態において、集約解除構成要素１０６が、バンドルされたサービスを監視すること、およびバンドルされたサービスの各モジュールまたは各パッケージが呼び出すサービスについての情報をログ記録することによって、サービスプロバイダとインフラストラクチャプロバイダの間の関係についての情報を抽出することが可能である。別の実施形態において、集約解除構成要素１０６が、バンドルされたサービス内のモジュールによって行われたサービス呼び出しを監視することができない場合、集約解除構成要素１０６は、サービスプロバイダとインフラストラクチャプロバイダの間の関係の事前に指定されたリストを受け取るように構成されることが可能である。例として、集約解除構成要素１０６は、使用された、または使用され得るインフラストラクチャプロバイダを特定する要求を、バンドルされたサービスの中で識別されたサービスプロバイダに送ることに応答して、この情報を受け取ってもよい。
【００２３】
さらなる実施形態において、集約解除構成要素１０６が、サービスに関する構成ファイル、スクリプト、またはヘッダ、およびインフラストラクチャコードを構文解析することによって、サービスプロバイダとインフラストラクチャプロバイダの間の関係についての情報を抽出することが可能である。たとえば、ＳａａＳサービスが、スクリプトと実行可能ファイルの混合であることが可能であり、さらに集約解除構成要素１０６が、スクリプトおよび構成ファイルをロードし、さらに利用可能な、または実現されたインフラストラクチャ構成要素についての情報を探して、これらのスクリプトおよび構成ファイルを構文解析することが可能である。集約解除構成要素１０６が、インフラストラクチャ要素に関するポインタ、ロケーション、ネットワークアドレス、または他の情報を見出すと、集約解除構成要素１０６は、示されたディレクトリまたはマシンへさらに変更し、さらに構成ファイル、スクリプト、ヘッダなどの探索を繰り返すことが可能である。この探索は、各サブディレクトリの中を降下し（階層型探索）、さらに他のマシン、ディレクトリ、またはネットワークロケーションに対するリンクをたどり、さらにそれらのロケーションにおいて階層型探索を繰り返す１つまたは複数のスレッドによって行われることが可能である。このプロセスは、インフラストラクチャ要素に関する手がかりがもはや存在せず、探るべきディレクトリまたはマシンがもはや存在しなくなるまで続けられる。さらなる実施形態において、集約されたサービスの監査がサードパーティによって実行され得、その結果は集約解除構成要素１０６によって解析され、情報を抽出することができる。代替として、ベンダが、トップレベルサービスとサブサービスをリストアップするテーブルを提供することが可能であり、このテーブルが、サービスプロバイダおよびインフラストラクチャプロバイダについての情報をまとめるように集約解除構成要素１０６によって解析され得る。これらの外部リファレンスは、テーブルもしくはリストの形態で与えられることが可能であり、または集約解除構成要素１０６が、トップレベルサービスおよび／またはプロバイダに関する識別情報を用いてクエリを行うことが可能な別個のウェブサービスもしくはＡＰＩの形態をとることが可能である。
【００２４】
マッピング構成要素１０８が、集約解除構成要素１０６によって抽出された情報を使用してデータストアを作成することが可能である。マッピング構成要素１０８もまた、バンドルされたサービスについての情報に応じて、階層型ツリー１１６を生成するように構成されることが可能である。階層型ツリー１１６は、サービスプロバイダ１１２（ａ）、１１２（ｂ）、１１４（ａ）、および１１４（ｂ）、とインフラストラクチャプロバイダ１１０（ａ）、１１０（ｂ）、および１１０（ｃ）の間の関係を表すことが可能である。階層型ツリー１１６は、２つのサービスプロバイダと、３つのインフラストラクチャプロバイダだけしか示さないが、マッピング構成要素１０８は、任意の数および／または組み合わせのサービスプロバイダおよびインフラストラクチャプロバイダを有する階層型ツリーを作成することが可能である。
【００２５】
マッピング構成要素１０８は、集約解除構成要素１０６によって抽出された依存関係および関係の情報を解析することによって階層型ツリー１１６を生成することが可能である。マッピング構成要素１０８は、インフラストラクチャプロバイダに頼るサービスプロバイダだけでなく、潜在的なすべての関係に基づいて、階層型ツリー１１６を作成することが可能である。ツリーのノードは、インフラストラクチャサービス、および潜在的なインフラストラクチャサービスと関係するコスト、利用可能性条件、契約情報、またはネットワークアドレスなどの、さらなるデータを含むことが可能である。
【００２６】
次に図２を参照すると、サービスプロバイダとインフラストラクチャプロバイダの間の関係および依存関係を変更するためのシステムの例示的な限定的でない実施形態を例示するブロック図が示されている。図２に示されるとおり、サービスプロバイダとインフラストラクチャプロバイダの間の関係および依存関係を管理する構成システム２００が与えられる。構成エンジン構成要素２０２が、規則生成構成要素２０４によって供給される規則のセットを使用して、階層型ツリー１１６において表されるサービスプロバイダとインフラストラクチャプロバイダの間の依存関係を変更する。変更された階層型ツリー２０６は、変更された関係、および変更された依存関係を表す。
【００２７】
構成エンジン構成要素２０２は、サービスプロバイダおよびインフラストラクチャプロバイダに適合する可能な任意の組み合わせにサービスプロバイダ１１２（ａ）ないし１１４（ｂ）とインフラストラクチャプロバイダ１１０（ａ）、１１０（ｂ）、および１１０（ｃ）の関係および依存関係を変更することによって、階層型ツリー１１６を変更するように構成されることが可能である。たとえば、階層型ツリー１１６に示されるとおり、サービスプロバイダ１１２（ａ）が、インフラストラクチャプロバイダ１１０（ａ）、１１０（ｂ）のいずれを使用することも可能である一方で、サービスプロバイダ１１２（ｂ）は、インフラストラクチャプロバイダ１１０（ｂ）および１１０（ｃ）に適合する。構成エンジン構成要素２０２は、関係を変更することができ、さらに変更された階層型ツリー２０６に示されるとおり、サービスプロバイダ１１２（ａ）と１１２（ｂ）がともにインフラストラクチャプロバイダ１１０（ｂ）を使用するようにインフラストラクチャプロバイダを統合するように構成されることが可能である。また、サービスプロバイダ１１４（ａ）が、サービスプロバイダ１１２（ａ）を使用するように、サービスプロバイダ１１４（ｂ）が、サービスプロバイダ１１２（ｂ）を使用するようにそれぞれ構成されることも可能である。構成エンジン構成要素２０２は、変更された階層型ツリー２０６に示されるとおりに関係を変更することに限定されず、任意の数および／または組み合わせの可能な依存関係を作成することも可能であることを認識されたい。
【００２８】
一実施形態において、構成エンジン構成要素２０２は、ＳａａＳ層サービスプロバイダにアクセスを有することが可能である。この実施形態において、構成エンジン構成要素２０２は、特定のインフラストラクチャプロバイダを使用するようにＳａａＳ層サービスプロバイダを構成することによって関係を手動で変更することが可能である。
【００２９】
別の実施形態において、構成エンジン構成要素２０２は、サービスプロバイダの関係を直接に変更するアクセスまたは権利を欠く可能性がある。この実施例において、構成エンジン構成要素２０２は、規則のセットに従って関係を変更する要求をサービスプロバイダに送ることが可能である。
【００３０】
一実施形態において、構成エンジン構成要素２０２を誘導するのに、規則生成構成要素２０４が、構成エンジン構成要素２０２が関係を変更する際に従うことができるまたは適用することができる規則のセットを作成するように構成されることが可能である。これらの規則は、インフラストラクチャプロバイダの価格レベルまたは使用量に基づいて動的に作成されることが可能である。また、規則生成構成要素２０４は、顧客がインフラストラクチャプロバイダを相手に有する契約のデータベースを保持し、顧客が有する契約に基づいて特定のインフラストラクチャプロバイダが優先的に使用されるようにサービスプロバイダの依存関係を変更する規則を作成することも可能である。また、規則生成構成要素２０４は、階層型ツリー１１６から情報を導き出すことも可能である。
【００３１】
さらなる実施形態において、規則生成構成要素２０４が、インフラストラクチャプロバイダが割り引きまたは大量購入割引料金を有するかどうかを判定し、それらのインフラストラクチャプロバイダを優先的に選択する規則のセットを作成することが可能である。代替として、規則生成構成要素は、インフラストラクチャ層によって提供される複数のサービスを、可能な限り少ない数のインフラストラクチャプロバイダに統合する規則を作成するように構成されることが可能である。
【００３２】
次に図３を参照すると、サービスプロバイダおよびインフラストラクチャプロバイダの階層型ツリーを作成するため、および変更するためのシステム３００の例示的な限定的でない実施形態を例示するブロック図が示されている。システム３００は、システム１００とシステム２００（図１および図２にそれぞれ示されるような）を一緒に組み合わせた表現である。
【００３３】
集約解除構成要素３０２が、バンドルされたサービスを解析し、バンドルされたサービスの中のサービスと関係する情報を抽出するように構成されることが可能である。バンドルされたサービスは、プライベートクラウドネットワーク内、または公共クラウドネットワーク内に存在することが可能であり、サービスプロバイダと、インフラストラクチャプロバイダとを含むことが可能である。集約解除構成要素３０２によって抽出された情報により、サービスプロバイダによって使用されているインフラストラクチャプロバイダ、およびサービスプロバイダによって潜在的に使用され得るインフラストラクチャプロバイダが識別されることが可能である。
【００３４】
集約解除構成要素３０２によって抽出された情報を使用して、マッピング構成要素３０４が、サービスプロバイダおよびインフラストラクチャプロバイダの階層型ツリー３０６を生成するように構成されることが可能である。階層型ツリー３０６は、インフラストラクチャプロバイダとサービスプロバイダの間の関係を表すことが可能である。階層型ツリー３０６は、実際の関係、すなわち、サービスプロバイダによって使用されているインフラストラクチャプロバイダとともに、サービスプロバイダとインフラストラクチャプロバイダの間の潜在的な関係も示すことが可能である。
【００３５】
構成エンジン構成要素３０８が、規則のセットに従ってサービスプロバイダとインフラストラクチャプロバイダの間の関係を変更するように構成されることが可能である。これらの規則は、インフラストラクチャプロバイダのコスト、または使用量に基づくことが可能である。また、構成エンジン構成要素３０８は、いくつかのインフラストラクチャプロバイダを統合するように関係を変更することも可能である。このことが、変更された階層型ツリー３１０において示され得る。
【００３６】
図４〜図５は、前述したシステムに関連するプロセスを示す。図４〜図５におけるプロセスは、たとえば、図１、図２、および図３にそれぞれ例示されるシステム１００、２００、または３００によって実施されることが可能である。
【００３７】
図４は、トップレベルサービスとサブサービスの依存関係を構成するための方法の例示的な限定的でない実施形態の流れ図を示す。４００（バンドルされたサービスを集約解除して、トップレベルサービスとサブサービスにする）で、構成プロセスが、バンドルされたサービスを集約解除して、トップレベルサービスとサブサービスにすることによって開始される。これらのバンドルされたサービスは、プライベートクラウドネットワーク内、または公共クラウドネットワーク内に存在することが可能であり、さらにウェブサイト、インターネット、または他のネットワークを介してアクセスされることが可能である。また、これらのバンドルされたサービスは、顧客が使用する、または契約するクラウドサービスのすべて、またはいくらかの部分であることも可能である。
【００３８】
バンドルされたサービスを集約解除することは、ベンダが提供したテーブルからトップレベルサービスによって使用されるサブサービスのリストを受け取ること、サードパーティによる監査、またはトップレベルサービスによって呼び出される、もしくはトップレベルサービスに適合するサブサービスを特定することを含むことが可能である。
【００３９】
４１０（階層型依存関係ツリーを作成するようにトップレベルサービスとサブサービスをマップする）で、バンドルされたサービスが集約解除され、トップレベルサービスとサブサービスについての情報が抽出されると、階層型依存関係ツリーを作成するようにトップレベルサービスとサブサービスがマップされる。階層型依存関係ツリーは、トップレベルサービスによって使用されるサブサービスだけでなく、トップレベルサービスに適合するすべてのサブサービスも表示することが可能である。
【００４０】
４２０（トップレベルサービスとサブサービスの依存関係を構成し、サブサービスを統合する規則のセットに基づいて階層型依存関係ツリーを変更する）で、トップレベルサービスとサブサービスの依存関係が構成され、階層型依存関係ツリーが変更される。依存関係を構成することは、トップレベルサービスがより少ない数のサブサービスを使用するようにサブサービスを統合するように設計された規則のセットに基づくことが可能である。規則のセットは、特定のサブサービスを優先的に選択するように定義されることが可能である。
【００４１】
本明細書で開示されるこのプロセス、および他のプロセス、ならびにこの方法、および他の方法に関して、これらのプロセスおよび方法において実行される機能は、異なる順序で実施されてもよいことが当業者には認識されよう。さらに、概説されるステップおよび動作は、例として与えられているに過ぎず、さらにこれらのステップおよび動作のいくつかは、開示される実施形態の本質を逸脱することなく、オプションであること、組み合わされて、より少ない数のステップおよび動作にされること、またはさらなるステップおよび動作に拡張されることが可能である。
【００４２】
図５は、トップレベルサービスとサブサービスの階層型依存関係ツリーを生成するため、および変更するための方法の例示的な限定的でない実施形態の流れ図を示す。５００（トップレベルサービスの使用量を追跡し、トップレベルサービスによって使用されるサブサービスを特定する）で、トップレベルサービスの使用量が追跡されることが可能であり、さらにこの追跡に基づいて、トップレベルサービスによって使用されるサブサービスが特定されることが可能である。この追跡は、サブサービスからサービスを要求する、トップレベルサービスが行うサービス呼び出しを監視することによって達成されることが可能である。
【００４３】
５１０（トップレベルサービスに適合するサブサービスのリストを受け取る）で、トップレベルサービスに適合するサブサービスのリストが受け取られる。サブサービスのリストは、トップレベルサービスを解析することによって特定されることが可能である。代替として、トップレベルに適合するサブサービスのリストは、サードパーティ監査レポートによってまとめられることが可能であり、またはトップレベルサービスベンダから受け取られて、トップレベルサービスが適合するサブサービスをリストアップすることが可能である。
【００４４】
５２０（使用され、トップレベルサービスに適合するサブサービスを表す情報を含むデータストアを作成する）で、サブサービスのリストが受け取られると、使用されるサブサービスを表す情報を含むデータストアが、作成されることが可能である。また、このデータストアは、トップレベルサービスに適合する他のサブサービスについての情報を含むことも可能である。このデータストアは、データセンタ内に格納されることが可能であり、またはクラウド内に格納されることが可能である。
【００４５】
５３０（データストアに基づいて階層型依存関係を生成する）で、階層型依存関係ツリーが、データストアの中の情報に基づいて生成されることが可能である。階層型依存関係ツリーは、トップレベルサービスとサブサービスの間の関係を表す。階層型依存関係ツリーは、依存関係および関係情報を解析することによって生成されることが可能であり、さらにトップレベルサービスによって使用されるサブサービスを表すだけでなく、トップレベルサービスに適合する、またはトップレベルサービスによって潜在的に使用され得るサブサービスも表す。
【００４６】
５４０（サブサービスのコストに基づいて階層型依存関係ツリーを変更する）で、階層型依存関係ツリーが生成されると、このツリー上の依存関係が、サブサービスのコストに基づいて変更されることが可能である。トップレベルサービスによって使用されているあるサブサービスが、トップレベルサービスに適合するあるサブサービスのコストと比べてより高価である場合、トップレベルサービスがコストの低い方のサブサービスを使用するように依存関係が変更されることが可能である。コストについての情報は、サードパーティから取得されること、サブサービスから導き出されること、または顧客によって供給されることが可能である。変更は、コストの低い方のサブサービスに切り替えるようにトップレベルサービスを構成して、直接に行われることが可能であり、またはコストの低い方のサブサービスに切り替える要求をトップレベルサービスに送ることによって達成されることが可能である。
【００４７】
代替として、５５０（サブサービスの使用量に関する条件を満たしたことに応答して、階層型依存関係ツリーを変更する）で、階層型依存関係ツリーが、サブサービスの使用量に関する条件を満たしたこと、または満足させたことに応答して、変更されることが可能である。サブサービスは、指定された使用量が満たされた場合、割り引きまたは大量購入割引料金を提案することができるので、階層型依存関係ツリーが、サブサービスのうちの少なくとも１つに関してその使用量が満たされることを確実にするように変更されることが可能である。トップレベルサービスが、インフラストラクチャサポートのために様々なサブサービスを使用しているが、１つのサブサービス当たりより多くの使用量で、より少ない数のサブサービスが使用される組み合わせが見出され得る場合、トップレベルサービスの依存関係は、それに相応して変更されることが可能である。
【００４８】
次に図６を参照すると、インフラストラクチャプロバイダに統合されたトランザクションレポートを送るための料金請求システムの例示的な限定的でない実施形態を示すブロック図が示されている。図６に示されるとおり、サービスプロバイダから受け取られたいくつかの項目別の請求書（itemized bills）を取り込み、さらにこれらの項目別の請求書を細分し、インフラストラクチャプロバイダに、インフラストラクチャプロバイダがいずれのサービスを与えたかをリストアップするレポートを送るシステム６００が与えられる。
【００４９】
料金請求構成要素６０４が、サービスプロバイダ６０２（ａ）、６０２（ａ）、および６０２（ｃ）から項目別の請求書を受け取るように構成されることが可能である。これらの項目別の請求書は、デジタルで受け取られることが可能であり、または料金請求構成要素６０４によってスキャンされ、さらにデジタル形態に変換される紙の請求書であることが可能である。項目別の請求書は、ストレージ、ストレージトランザクション、計算時間、データ転送などに関する項目別のコストを含むことが可能である。請求書上の項目は、機能の点で、または時系列でグループ化されることが可能である。項目別の請求書上の項目は、サービスプロバイダおよびインフラストラクチャプロバイダによって提供されたサービスを表すことが可能である。
【００５０】
項目別の請求書上の項目を特定のインフラストラクチャプロバイダとマッチングするマッチング構成要素６０６が与えられることが可能である。マッチング構成要素６０６は、サービスプロバイダからの項目別の請求書を解析して、項目別の請求書上の項目のうちのいずれがインフラストラクチャプロバイダとマッチするかを特定するように構成されることが可能である。階層型ツリー６０８は、サービスプロバイダとインフラストラクチャプロバイダの間の関係を表す情報を含むことが可能である。また、階層型ツリー６０８は、マッチング構成要素６０６が、請求書上の項目をインフラストラクチャプロバイダとマッチングするのに使用する、インフラストラクチャプロバイダによって提供されたサービスのタイプについての情報を含むことも可能である。
【００５１】
一実施形態において、マッチング構成要素６０６が、項目別の請求書を解析して、特定の動作を表す請求書上の項目についてサービスプロバイダによって料金請求が行われたことを特定することが可能である。次に、マッチング構成要素６０６が、階層型ツリーから、その動作をサポートしたサービスプロバイダによって使用されたインフラストラクチャプロバイダを特定することが可能である。次に、マッチング構成要素６０６が、その動作を表すその項目をインフラストラクチャプロバイダとマッチングすることが可能である。
【００５２】
項目が特定のインフラストラクチャプロバイダとマッチさせられると、グループ化構成要素６１０が、マッチしたすべての項目を一緒にインフラストラクチャプロバイダによってクラスタ化するように構成されることが可能であり、グループ化構成要素６１０は、それぞれのインフラストラクチャプロバイダにマッチしたすべての項目を用いて、インフラストラクチャプロバイダごとにトランザクションレポートを作成することが可能である。次に、これらのトランザクションレポートが、グループ化構成要素６１０によってインフラストラクチャプロバイダ６１２（ａ）、６１２（ｂ）、および６１２（ｃ）に送られることが可能である。
【００５３】
これらのトランザクションレポートは、料金請求される各サービスの量、およびこれらのサービスのコストと関係する情報を含むことが可能である。また、トランザクションレポートは、顧客に提供されたサービスの各サービスについて、いずれのサービスプロバイダが料金請求したかをリストアップすることも可能である。また、トランザクションレポートは、特定の時刻と日付、またはトランザクションＩＤ、またはインフラストラクチャプロバイダが、使用を検証し、さらに明細を明らかにする他の方法をリストアップすることも可能である。これらのトランザクションレポートは、インフラストラクチャプロバイダが、顧客がインフラストラクチャプロバイダから最終的に使用するサービスの総量および総コスト、ならびに仲介者であるサービスプロバイダの数を特定することを可能にする。
【００５４】
図７は、前述したシステムに関連するプロセスを示す。図７のプロセスは、たとえば、図６に示されるシステム６００によって実施されることが可能である。
【００５５】
図７は、インフラストラクチャプロバイダにサービスの統合されたリストを送るための方法の例示的な、限定的でない実施形態の流れ図を示す。７００（複数のサービスプロバイダから項目別の請求書を受け取る）で、請求書統合プロセスが、複数のサービスプロバイダから項目別の請求書を受け取ることによって開始される。項目別の請求書は、デジタルで受け取られることが可能であり、またはスキャンされ、さらに光学文字認識プロセスにかけられて、項目別の請求書を電子的に検索可能にする紙の請求書であることが可能である。項目別の請求書は、ストレージ、ストレージトランザクション、計算時間、およびデータ転送に関する項目別のコストを含むことが可能である。請求書上の項目は、機能の点で、または時系列でグループ化されることが可能である。項目別の請求書上の項目は、サービスプロバイダおよびインフラストラクチャプロバイダによって提供されたサービスを表すことが可能である。
【００５６】
７１０（サービスプロバイダおよびインフラストラクチャプロバイダの階層型ツリーにアクセスする）で、サービスプロバイダおよびインフラストラクチャプロバイダの階層型ツリーにアクセスが行われることが可能である。この階層型ツリーは、サービスプロバイダとインフラストラクチャプロバイダの間の関係および依存関係についての情報をもたらすことが可能である。また、この階層型ツリーは、サービスプロバイダが顧客にサービスを提供するのに使用しているインフラストラクチャプロバイダについての情報を含むことも可能である。
【００５７】
７２０（階層型ツリーを解析することによって、複数のサービスプロバイダからの項目別の請求書上の項目を、インフラストラクチャプロバイダによって提供されたサービスとマッチングする）で、サービスプロバイダからの項目別の請求書上の項目が、インフラストラクチャプロバイダによって提供されたサービスとマッチングされることが可能である。このマッチングは、項目別の請求書を階層型ツリーに関連して解析することによって行われることが可能である。このマッチングは、項目別の請求書上の各項目が対応するサービスまたは動作のタイプを特定し、次に、階層型ツリーを調べて、各サービスを提供した可能性があるインフラストラクチャプロバイダを特定することが可能である。このようにして、項目別の請求書上のすべての項目が、特定のインフラストラクチャプロバイダとマッチさせられることが可能である。このマッチングプロセスは、複数のサービスプロバイダにまたがるインフラストラクチャプロバイダを同一の最終の顧客に関連付けることによって、受けられるべき割り戻しまたはインセンティブ価格設定の計算を含んでもよい。
【００５８】
７３０（インフラストラクチャプロバイダに、それぞれのインフラストラクチャプロバイダによって提供されたサービスの統合されたリストを送る）で、項目別の請求書上の項目をインフラストラクチャプロバイダごとにグループ化する統合されたリストが作成されることが可能である。各インフラストラクチャプロバイダに関するトランザクションレポートが、そのインフラストラクチャプロバイダによって提供されたすべての項目およびサービスをリストアップする統合されたリストから生成されることが可能である。また、トランザクションレポートは、特定の時刻と日付、またはトランザクションＩＤ、またはインフラストラクチャプロバイダが、使用を検証し、さらに明細を明らかにする他の方法をリストアップすることも可能である。次に、各インフラストラクチャプロバイダに関するトランザクションレポートが、インフラストラクチャプロバイダのそれぞれに送られることが可能である。
【００５９】
図８は、サービスプロバイダによって使用されるインフラストラクチャプロバイダを統合するためのコンピュータ可読命令のセットの例示的な、限定的でない実施形態の流れ図を示す。コンピュータ可読記憶媒体８００が、コンピュータ実行可能命令を含むことが可能である。８１０で、これらの命令が、それぞれのサービスプロバイダから項目別の請求書を受け取るように動作することが可能である。各サービスプロバイダからの項目別の請求書は、インフラストラクチャプロバイダによって提供されたストレージ、ストレージトランザクション、計算時間、およびデータ転送に関する項目別のコストをリストアップすることが可能である。
【００６０】
８２０で、これらの命令が、項目別の請求書に基づいて、インフラストラクチャプロバイダによって提供されたサービスのリストを作成するように動作することが可能である。また、これらの命令は、インフラストラクチャプロバイダによって提供されたサービスの価格、および使用量を含むリストを作成するように動作することも可能である。
【００６１】
８３０で、これらの命令が、共通のインフラストラクチャプロバイダに切り替えるようにサービスプロバイダを構成する命令を含むことによって、インフラストラクチャプロバイダを統合するように動作することが可能である。共通のインフラストラクチャプロバイダは、すべてのサービスプロバイダに適合するインフラストラクチャプロバイダである。これらの命令は、サービスプロバイダのすべてに適合するインフラストラクチャプロバイダのセットを作成するための命令を含むことが可能である。また、インフラストラクチャプロバイダのセットのそれぞれに関するコストを算出する命令が設けられることも可能である。このコストは、各インフラストラクチャプロバイダに関する使用量の単位の価格、およびセットの中のインフラストラクチャプロバイダのそれぞれに関する総使用量に基づくことが可能である。
【００６２】
インフラストラクチャプロバイダの各セットに関するコストが算出されると、これらの命令は、最低のコストを伴うセットを選択するように動作することが可能である。これらの命令は、インフラストラクチャプロバイダの最低のコストのセットに切り替えるようにサービスプロバイダを構成するように動作することが可能であり、または最低のコストのセットに切り替える要求をサービスプロバイダに送るように動作することが可能である。
【００６３】
次に図９を参照すると、インフラストラクチャプロバイダを選択するためのシステムの例示的な、限定的でない実施形態を例示するブロック図が示されている。図９に示されるとおり、セット作成構成要素９０２が、インフラストラクチャプロバイダ９０６（ａ）、９０６（ｂ）、９０６（ｃ）、および９０６（ｄ）を含むインフラストラクチャプロバイダのセット９０４（ａ）および９０４（ｂ）を作成することが可能である。選択構成要素９０８が、インフラストラクチャプロバイダのセット９０４（ａ）および９０４（ｂ）と関係する情報を解析することが可能であり、さらに最低のコスト、またはそれ以外で望ましいメトリックを伴うセットを選択することが可能である。統合構成要素９１０が、選択構成要素９０８によって選択されたインフラストラクチャプロバイダのセットに切り替える要求をサービスプロバイダ９１２（ａ）および９１２（ｂ）に送ることが可能である。
【００６４】
セット作成構成要素９０２が、インフラストラクチャプロバイダのセットを作成するように構成されることが可能であり、インフラストラクチャプロバイダのセット９０４（ａ）および９０４（ｂ）のセットのそれぞれが、サービスプロバイダ９１２（ａ）および９１２（ｂ）によって使用されるサービスのすべてを提供するように構成されることが可能である。インフラストラクチャプロバイダ９０６（ａ）、９０６（ｂ）、９０６（ｃ）、および９０６（ｄ）は、９０６（ａ）と９０６（ｂ）のセット、９０６（ｃ）と９０６（ｄ）のセットが、サービスのすべてを一緒に提供することができる限り、必ずしも、サービスプロバイダによって使用されるすべてのサービスを個々に提供する必要はない可能性がある。図９は、セット９０４（ａ）および９０４（ｂ）がそれぞれ、２つのインフラストラクチャプロバイダを有することを示すが、任意の数および／または組み合わせのインフラストラクチャプロバイダが、セットを構成することが可能であることを認識されたい。同様に、セット作成構成要素９０２は、インフラストラクチャプロバイダの任意の数のセットを作成することができる。
【００６５】
選択構成要素９０８が、これらのセットを解析して、最低のコストをもたらすインフラストラクチャプロバイダのセットを特定することが可能である。選択構成要素９０８は、使用量当たりの価格、およびインフラストラクチャプロバイダのそれぞれの使用量と関係する情報を解析して、各セットの総コストを算出するように構成されることが可能である。各セットの総コストが算出されると、選択構成要素９０８は、最低のコストを伴うセットを選択するように構成されることが可能である。
【００６６】
ある代替の実施形態において、選択構成要素９０８が、セットを選択する際に潜在的な大量購入割引料金および割り引きを考慮することが可能である。割り引きについての情報は、インフラストラクチャプロバイダから直接に、または他のソースから受け取られることが可能である。次に、選択構成要素９０８が、インフラストラクチャプロバイダの使用量が割り引きを可能にするかどうかを判定することが可能であり、さらに選択構成要素９０８は、次に、セットの総コストを算出する際に割り引きされた料金を考慮することが可能である。
【００６７】
統合構成要素９１０が、選択構成要素９１０から選択を受け取り、さらに統合構成要素９１０は、次に、選択されたインフラストラクチャプロバイダのセットを使用することに切り替える要求をサービスプロバイダ９１２（ａ）および９１２（ｂ）に送るように構成されることが可能である。別の実施形態において、統合構成要素９１０が、選択構成要素９０８によって選択されたインフラストラクチャプロバイダに切り替えるよう、サービスプロバイダを直接に変更するように構成されることが可能である。
【００６８】
例示的なコンピューティング環境
図１０は、本開示の実施形態のうちの少なくともいくつかのために構成された例示的なコンピューティングデバイスを示すブロック図である。非常に基本構成１００２において、コンピューティングデバイス１０００は、通常、１つまたは複数のプロセッサ１００４と、システムメモリ１００６とを含む。メモリバス１００８が、プロセッサ１００４とシステムメモリ１００６の間で通信するために使用されることが可能である。
【００６９】
所望される構成に依存して、プロセッサ１００４は、マイクロプロセッサ（μＰ）、マイクロコントローラ（μＣ）、デジタルシグナルプロセッサ（ＤＳＰ）、または以上の任意の組み合わせを含むが、以上には限定されない任意のタイプであることが可能である。プロセッサ１００４は、レベル１キャッシュ１０１０およびレベル２キャッシュ１０１２、プロセッサコア１０１４、およびレジスタ１０１６などの１つまたは複数のレベルのキャッシングを含むことが可能である。例示的なプロセッサコア１０１４は、算術論理装置（ＡＬＵ）、浮動小数点数演算装置（ＦＰＵ）、デジタル信号処理コア（ＤＳＰコア）、または以上の任意の組み合わせを含むことが可能である。例示的なメモリコントローラ１０１８が、プロセッサ１００４と一緒に使用されることも可能であり、または一部の実施例において、メモリコントローラ１０１８は、プロセッサ１００４の内蔵部分であることが可能である。
【００７０】
所望される構成に依存して、システムメモリ１００６は、揮発性メモリ（ＲＡＭなどの）、不揮発性メモリ（ＲＯＭ、フラッシュメモリなどの）、または以上の任意の組み合わせを含むが、以上には限定されない任意のタイプのものであることが可能である。システムメモリ１００６は、オペレーティングシステム１０２０と、１つまたは複数のアプリケーション１０２２と、プログラムデータ１０２４とを含むことが可能である。アプリケーション１０２２は、本明細書で説明される機能を実行するように構成されたベンダ最適化モジュール１０２６を含むことが可能である。プログラムデータ１０２４は、ベンダ最適化プロセスと、リソース情報とを含むことが可能である。一部の実施形態において、アプリケーション１０２２は、プログラムデータ１０２４およびオペレーティングシステム１０２０と一緒に動作するように構成されることが可能である。
【００７１】
コンピューティングデバイス１０００は、さらなる特徴または機能、ならびに基本構成１００２と要求される任意のデバイスおよびインターフェースの間の通信を円滑にするさらなるインターフェースを有してもよい。たとえば、バス／インターフェースコントローラ１０３０が、ストレージインターフェースバス１０３４を介して基本構成１００２と１つまたは複数のデータ記憶装置１０３２の間の通信を円滑にするのに使用されることが可能である。データ記憶装置１０３２は、取外し式記憶装置１０３６であっても、非取外し式記憶装置１０３８であっても、取外し式記憶装置１０３６と非取外し式記憶装置１０３８の組み合わせであってもよい。取外し式記憶装置および非取外し式記憶装置の例には、いくつかを挙げると、フレキシブルディスクドライブおよびハードディスクドライブ（ＨＤＤ）などの磁気ディスクデバイス、コンパクトディスク（ＣＤ）ドライブまたはデジタルバーサタイルディスク（ＤＶＤ）などの光ディスクドライブ、ソリッドステートドライブ（ＳＳＤ）、およびテープドライブが含まれる。例示的なコンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するために任意の方法または技術で実装された揮発性媒体および不揮発性媒体、取外し式の媒体および非取外し式の媒体が含まれることが可能である。
【００７２】
システムメモリ１００６、取外し式記憶装置１０３６、および非取外し式記憶装置１０３８は、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶装置、または所望される情報を格納するのに使用され得るとともに、コンピューティングデバイス１０００によってアクセスされ得る他の任意の媒体が含まれるが、以上には限定されない。任意のそのようなコンピュータ記憶媒体が、コンピューティングデバイス１０００の一部であることが可能である。
【００７３】
また、コンピューティングデバイス１０００は、バス／インターフェースコントローラ１０３０を介した、様々なインターフェースデバイス（たとえば、出力デバイス１０４２、周辺インターフェース１０４４、および通信装置１０４６）から基本構成への通信を円滑にするためのインターフェースバス１０４０を含むことも可能である。例示的な出力装置１０４２には、１つまたは複数のＡ／Ｖポート１０５２を介してディスプレイまたはスピーカなどの様々な外部デバイスに通信するように構成されることが可能なグラフィックス処理ユニット１０４８およびオーディオ処理ユニット１０５０が含まれる。例示的な周辺インターフェース１０４４には、１つまたは複数のＩ／Ｏポート１０５８を介して、入力デバイス（たとえば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなど）または他の周辺デバイス（たとえば、プリンタ、スキャナなど）などの外部デバイスと通信するように構成されることが可能なシリアルインターフェースコントローラ１０５４またはパラレルインターフェースコントローラ１０５６が含まれる。例示的な通信装置１０４６には、１つまたは複数の通信ポート１０６４経由でネットワーク通信リンクを介した他の１つまたは複数のコンピューティングデバイス１０６２との通信を円滑にするように構成されることが可能なネットワークコントローラ１０６０が含まれる。
【００７４】
ネットワーク通信リンクは、通信媒体の一例であり得る。通信媒体は、通常、搬送波などの変調されたデータ信号内、または他のトランスポート機構内のコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータによって具現化され、さらに任意の情報配信媒体を含むことが可能である。「変調されたデータ信号」は、信号内に情報を符号化するように特性のうちの１つまたは複数が設定されている、または変更されている信号であることが可能である。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音響媒体、無線周波数（ＲＦ）媒体、マイクロ波媒体、赤外線（ＩＲ）媒体、およびその他の無線媒体などの無線媒体が含まれることが可能である。本明細書で使用される場合，コンピュータ可読媒体という用語は、記憶媒体と通信媒体をともに含むことが可能である。
【００７５】
コンピューティングデバイス１０００は、セル電話機、携帯情報端末（ＰＤＡ）、パーソナルメディアプレーヤデバイス、無線ウェブウォッチデバイス、パーソナルヘッドセットデバイス、アプリケーション特有のデバイス、または前述の機能のいずれかを含むハイブリッドデバイスなどのスモールフォームファクタのポータブル（またはモバイル）電子デバイスの一部分として実施されてもよい。また、コンピューティングデバイス１０００は、ラップトップコンピュータ構成と非ラップトップコンピュータ構成の両方を含むパーソナルコンピュータとして実施されることも可能である。
【００７６】
例示的なネットワーキング環境
次に図１１を参照すると、特許請求される主題により使用され得る例示的なネットワーキング環境を示すブロック図が示されている。システム１１００は、１つまたは複数のクライアント１１１０を含む。１つまたは複数のクライアント１１１０は、ハードウェアおよび／またはソフトウェア（たとえば、スレッド、プロセス、コンピューティングデバイス）であることが可能である。また、システム１１００は、１つまたは複数のサーバ１１２０も含む。サーバ１１２０は、ハードウェアおよび／またはソフトウェア（たとえば、たとえば、スレッド、プロセス、コンピューティングデバイス）であることが可能である。サーバ１１２０は、たとえば、本発明を使用することによって変換を実行するスレッドを収容することが可能である。
【００７７】
クライアント１１１０とサーバ１１２０の間の可能な１つの通信は、２つ以上のコンピュータプロセスの間で伝送されるように構成されたデータパケットの形態であることが可能である。システム１１００は、クライアント１１１０とサーバ１１２０の間の通信を円滑にするのに使用され得る通信フレームワーク１１４０を含む。クライアント１１１０は、クライアント１１１０にローカルである情報を格納するのに使用され得る１つまたは複数のクライアントデータストア１１５０に動作可能に、接続される。同様に、サーバ１１２０は、サーバ１１２０にローカルである情報を格納するのに使用され得る１つまたは複数のサーバデータストア１１３０に動作可能に、接続される。
【００７８】
本開示は、様々な態様の例示として意図されている、本出願において説明される特定の実施形態に関して限定されるべきではない。当業者には明白となるとおり、本開示の趣旨および範囲を逸脱することなく、多くの変形および変更が行われることが可能である。本明細書で列挙される方法および装置に加えて、本開示の範囲に含まれる機能的に均等の方法および装置が、以上の説明から当業者には明白となろう。そのような変更および変形は、添付の特許請求の範囲の用語に含まれることが意図される。本開示は、添付の特許請求の範囲、ならびにそのような特許請求の範囲に認められる均等物の完全な範囲に関してのみ限定されるべきものである。本開示は、無論、様々であることが可能な、特定の方法、試薬、化合物、組成物、または生物系に限定されないことも理解されたい。また、本明細書で使用される用語は、特定の実施形態を説明することだけを目的としており、限定することは意図していないことも理解されたい。
【００７９】
例示的な実施形態において、本明細書で説明される動作、プロセスなどのいずれも、コンピュータ可読媒体上に格納されたコンピュータ可読命令として実施されることが可能である。コンピュータ可読命令は、モバイルユニット、ネットワーク要素、および／または他の任意のコンピューティングデバイスのプロセッサによって実行されることが可能である。
【００８０】
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に（いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で）コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび／またはシステムおよび／または他の技術をもたらすことができる様々な達成手段があり（たとえば、ハードウェア、ソフトウェア、および／またはファームウェア）、好ましい達成手段は、プロセスおよび／またはシステムおよび／または他の技術が導入される状況によって異なる。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび／またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および／またはファームウェアのなんらかの組み合わせを選択することができる。
【００８１】
前述の詳細な説明では、ブロック図、フローチャート、および／または例の使用によって、装置および／またはプロセスの様々な実施形態を説明してきた。そのようなブロック図、フローチャート、および／または例が１つまたは複数の機能および／または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および／または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび／または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、１つまたは複数のコンピュータ上で動作する１つまたは複数のコンピュータプログラムとして（たとえば、１つまたは複数のコンピュータシステム上で動作する１つまたは複数のプログラムとして）、１つまたは複数のプロセッサ上で動作する１つまたは複数のプログラムとして（たとえば、１つまたは複数のマイクロプロセッサ上で動作する１つまたは複数のプログラムとして）、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに／またはソフトウェアおよび／もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。さらに、本明細書に記載された主題のメカニズムを様々な形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピー（商標登録）ディスク、ハードディスクドライブ、ＣＤ、ＤＶＤ、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および／またはアナログ通信媒体（たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど）の通信タイプの媒体が含まれるが、それらには限定されない。
【００８２】
本明細書で説明したやり方で装置および／またはプロセスを記載し、その後そのように記載された装置および／またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および／またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインターフェース、およびアプリケーションプログラムのうちの１つもしくは複数、タッチパッドもしくはスクリーンなどの１つもしくは複数の相互作用装置、ならびに／またはフィードバックループおよびコントロールモータを含むコントロールシステム（たとえば、位置検知用および／もしくは速度検知用フィードバック、コンポーネントの移動用および／もしくは数量の調整用コントロールモータ）を含むことを、当業者は理解するであろう。通常のデータ処理システムは、データコンピューティング／通信システムおよび／またはネットワークコンピューティング／通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。
【００８３】
本明細書に記載された主題は、様々なコンポーネントをしばしば例示しており、これらのコンポーネントは、他の様々なコンポーネントに包含されるか、または他の様々なコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例に過ぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の２つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的にかみ合わせ可能な、および／もしくは物理的に相互作用するコンポーネント、ならびに／またはワイヤレスに相互作用可能な、および／もしくはワイヤレスに相互作用するコンポーネント、ならびに／または論理的に相互作用する、および／もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
【００８４】
本明細書における実質的にすべての複数形および／または単数形の用語の使用に対して、当業者は、状況および／または用途に適切なように、複数形から単数形に、および／または単数形から複数形に変換することができる。様々な単数形／複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【００８５】
通常、本明細書において、特に添付の特許請求の範囲（たとえば、添付の特許請求の範囲の本体部）において使用される用語は、全体を通じて「オープンな（ｏｐｅｎ）」用語として意図されていることが、当業者には理解されよう（たとえば、用語「含む（ｉｎｃｌｕｄｉｎｇ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきである、など）。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「１つまたは複数の」または「少なくとも１つの」および「ａ」または「ａｎ」などの不定冠詞を含む場合であっても、不定冠詞「ａ」または「ａｎ」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に１つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない（たとえば、「ａ」および／または「ａｎ」は、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう（たとえば、他の修飾語なしでの「２つの記載（ｔｗｏ  ｒｅｃｉｔａｔｉｏｎｓ）」の単なる記載は、少なくとも２つの記載、または２つ以上の記載を意味する）。さらに、「Ａ、ＢおよびＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、およびＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、それに限定されない）。「Ａ、Ｂ、またはＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、またはＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステ���を含むが、それに限定されない）。２つ以上の代替用語を提示する事実上いかなる離接する語および／または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方（ｏｎｅ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、当該用語のいずれか（ｅｉｔｈｅｒ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、または両方の用語（ｂｏｔｈ  ｔｅｒｍｓ）を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「ＡまたはＢ」は、「Ａ」または「Ｂ」あるいは「ＡおよびＢ」の可能性を含むことが理解されよう。
【００８６】
さらに、本開示の特徴または態様が、マーカッシュグループによって説明される場合、本開示は、その結果、マーカッシュグループの任意の個別の要素、またはマーカッシュグループの要素のサブグループの点でも説明されることが当業者には認識されよう。
【００８７】
当業者には理解されるとおり、書面の説明を与えることに関してなど、すべての目的で、本明細書で開示されるすべての範囲は、それらの範囲の可能なすべての部分的範囲、および部分的範囲の組み合わせも包含する。リストアップされる範囲は、少なくとも等しい１／２の部分、１／３の部分、１／４の部分、１／５の部分、１／１０の部分に細分された同一の範囲を十分に説明するとともに、可能にするものと容易に認識され得る。限定的でない例として、本明細書で説明される各範囲は、下１／３、中１／３、および上１／３などに容易に細分され得る。当業者にはやはり理解されるとおり、「〜まで」「少なくとも〜」などのすべての言い回しは、記載される数を含むとともに、前述したとおり、その後、部分的範囲に細分され得る範囲を指す。最後に、当業者には理解されるとおり、範囲は、個別の各要素を含む。このため、たとえば、１〜３のセルを有するグループとは、１つ、２つ、または３つのセルを有するグループを指す。同様に、１〜５のセルを有するグループとは、１つ、２つ、３つ、４つ、または５つのセルを有するグループを指すといった具合である。
【００８８】
以上のことから、本開示の様々な実施形態が、例示の目的で本明細書において説明されてきたこと、および本開示の範囲および趣旨を逸脱することなく、様々な変形が行われてもよいことが認識されよう。したがって、本明細書で開示される様々な実施形態は、限定することを意図しておらず、真の範囲および趣旨は、添付の特許請求の範囲によって示されている。
【図１】
0005914646.tif 000002
【図２】
0005914646.tif 000003
【図３】
0005914646.tif 000004
【図４】
0005914646.tif 000005
【図５】
0005914646.tif 000006
【図６】
0005914646.tif 000007
【図７】
0005914646.tif 000008
【図８】
0005914646.tif 000009
【図９】
0005914646.tif 000010
【図１０】
0005914646.tif 000011
【図１１】
0005914646.tif 000012