(57)【要約】  テナント変更をマルチテナント・サービスにおいて受ける。テナント変更をセクションに分割する。全ての要求元テナントにわたって処理リソースを均等に分配するために、変更を要求した全てのテナントにわたって、マルチテナント・サービスにおいて、テナント変更のセクションを処理する。【選択図】図１
2017529585.tif 000002
【特許請求の範囲】
【請求項１】
マルチテナント計算システムであって、
対応する変更要求を送った要求元テナントの特性を示すデーターを生成するテナント・ビヘイビアー監視システムであって、各変更要求が、前記要求元テナントに対応するテナント・データーに対して要求された変更を示す、テナント・ビヘイビアー監視システムと、
複数の異なるテナントから変更要求を受ける変更スケジューリング・コンポーネントであって、前記変更スケジューリング・コンポーネントが、前記変更要求を複数の変更のセクションに分割し、前記要求元テナントの特性に基づいて、前記対応するテナント・データーに対して行われる前記変更のセクションをスケジューリングする、変更スケジューリング・コンポーネントと、
前記変更スケジューリング・コンポーネントによってスケジューリングされた通りに、前記テナント・データーに対する前記変更要求を行う変更要求処理システムと、
を含む、マルチテナント計算システム。
【請求項２】
請求項１記載のマルチテナント計算システムにおいて、前記変更スケジューリング・コンポーネントが、
前記要求元テナントのために変更を行うときの前記変更要求処理システムの性能を示す性能情報に基づいて、スケジューリングのために各変更要求を複数の異なるセクションに分解するか否か判定する変更スライシング・コンポーネントを含む、マルチテナント計算システム。
【請求項３】
請求項２記載のマルチテナント計算システムにおいて、前記変更スケジューリング・コンポーネントが、更に、
前記性能情報に基づいて、前記変更要求処理システムによって行われる次の変更をスケジューリングする次位変更識別コンポーネントを含む、マルチテナント計算システム。
【請求項４】
請求項３記載のマルチテナント計算システムにおいて、前記次位変更スライシング・コンポーネントおよび前記次位変更識別コンポーネントが、各変更要求を前記複数の異なるセクションに分解するか否か決定し、異なる要求元テナントに予期される処理能力を示すテナント公正性ポリシーに基づいて、それぞれ、行われる次の変更をスケジューリングする、マルチテナント計算システム。
【請求項５】
請求項３記載のマルチテナント計算システムにおいて、前記次位変更スライシング・コンポーネントおよび前記次位変更識別コンポーネントが、各変更要求を前記複数の異なるセクションに分解するか否か決定し、異なる要求元テナントのための処理能力の尺度に基づいて、それぞれ、行われる次の変更をスケジューリングする、マルチテナント計算システム。
【請求項６】
請求項５記載のマルチテナント計算システムにおいて、前記テナント・ビヘイビアー監視システムが、
前記異なる要求元テナントのための処理能力の前記尺度を提供する１組の処理能力測定コンポーネントを含む、マルチテナント計算システム。
【請求項７】
請求項６記載のマルチテナント計算システムにおいて、前記テナント・ビヘイビアー監視システムが、
前記要求元テナントの各々によって要求された変更の数を、前記処理能力の尺度として、監視し提供するトラフィック監視モニターを含む、マルチテナント計算システム。
【請求項８】
請求項６記載のマルチテナント計算システムにおいて、前記テナント・ビヘイビアー監視システムが、
前記処理能力の尺度として、前記変更要求を送ったときと、前記変更要求処理システムによって前記対応する変更をテナント・データーに行わせたときとの間において前記要求元テナントの各々によって感知されるレイテンシーを示すレイテンシー尺度を監視し提供するレイテンシー・モニターを含む、マルチテナント計算システム。
【請求項９】
請求項６記載のマルチテナント計算システムにおいて、前記テナント・ビヘイビアー監視システムが、
各要求元テナントのテナント・タイプを識別し、前記要求元テナントの特性の１つとして、前記テナント・タイプを提供するテナント・タイプ識別手段を含む、マルチテナント計算システム。
【請求項１０】
マルチテナント計算システムであって、
複数の異なる要求元テナントから変更要求を受けるテナント変更システムであって、前記変更要求が、前記異なる要求元テナントに対応するテナント・データーに対する変更を示す、テナント変更システムと、
前記変更要求を変更のグループに分割し、前記変更要求の各々における変更の数に基づいて、前記変更要求にわたって変更処理リソースを分配するために、前記複数の異なる要求元テナントのために前記変更のグループをスケジューリングするスケジューリング・コンポーネントと、
を含む、マルチテナント計算システム。
【請求項１１】
請求項１０記載のマルチテナント計算システムにおいて、前記テナント変更システムが、更に、
前記スケジューリング・コンポーネントによってスケジューリングされた通りに、前記変更のグループにおいて、前記テナント・データーに対して前記変更を行うための前記変更処理リソースを含む変更要求処理システムを含む、マルチテナント計算システム。
【請求項１２】
請求項１１記載のマルチテナント計算システムにおいて、前記テナント変更システムが、更に、
前記変更要求の各々における変更の数を監視するテナント・ビヘイビアー監視システムを含む、マルチテナント計算システム。
【請求項１３】
請求項１２記載のマルチテナント計算システムにおいて、前記テナント・ビヘイビアー監視システムが、
変更要求を送ったときと、前記変更要求処理システムによって前記変更要求における変更を行わせたときとの間の時間を示すレイテンシーをテナント毎に監視するレイテンシー・モニターを含む、マルチテナント計算システム。
【請求項１４】
請求項１３記載のマルチテナント計算システムにおいて、前記テナント・ビヘイビアー監視システムが、
各要求元テナントに対応するテナントのタイプを識別するテナント識別手段を含む、マルチテナント計算システム。
【請求項１５】
方法であって、
マルチテナント計算システムにおいて、要求元テナントによって要求された、テナント・データーに対して要求された変更を行うときのテナント変更システムの処理能力を示す処理能力メトリックを監視するステップと、
前記要求された変更を複数の変更のセクションに分割するステップと、
前記処理能力メトリックに基づいて、前記要求元テナント間で変更要求処理リソースを割り当てることによって、行われる前記変更のセクションをスケジューリングするステップと、
前記割り当てられた変更要求処理リソースを使用して、スケジューリングされた通りに、前記変更のセクションの各々において前記テナント・データーに対する前記変更を行うステップと、
を含む、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  コンピューター・システムは現在広く使用されている。あるコンピューター・システムはローカル・コンピューター・システムであり、一方他のコンピューター・システムはリモート・サーバー環境において使用される。
【０００２】
[0002]  会社または他の組織が、コンピューター・システムのローカル（オンプレミス）処理系(implementation)とコンピューター・システムのリモート・サーバー処理系（クラウド・ベース処理系のような）との間で切り替えるのは、珍しいことではない。一例として、会社は、それらの電子メール・システム、それらの文書共有システム、またはそれらの業務システムのローカル処理系とリモート・サーバー処理系との間でときどき切り替える。業務システムのいくつかの例には、とりわけ、企業リソース計画（ＥＲＰ）システム、顧客関係管理（ＣＲＭ）システム、取扱商品（ＬＯＢ：line-of-business）システムが含まれる。これらは、会社がローカルのオンプレミス処理系とリモート・サーバーまたはクラウド・ベース処理系との間で切り替えるタイプのコンピューター・システムのいくつかの例に過ぎない。
【０００３】
[0003]  同様に、組織の中には、混成処理系を有するものもある。このような処理系では、サービスの一部がコンピューター・システムのローカルのオンプレミス・コンポーネントによって実行され、他のサービスがリモート・サーバーまたはクラウド・ベース環境において実行される。混成システムでは、組織が周期的に一定のサービスをオンプレミス処理系からクラウド・ベース処理系に移動しつつ、他のサービスはオンプレミスに維持することが珍しくない。
【０００４】
[0004]  リモート・サーバーまたはクラウド・ベース処理系を有する会社には、比較的大きい会社がある。例えば、企業組織は、何千人もの従業員を有することもある。したがって、それらのコンピューター・システムのリモート・サーバーまたはクラウド・ベース処理系は、大多数の個人にサービス供与しなければならない。コンピューター・システムに対して行われるトランザクションまたは変更の多くは、大多数のユーザー・アカウントまたは大多数のユーザー・データーに対する変更を行うことを必然的に伴う。
【０００５】
[0005]  一例として、企業組織がある計算システム機能をオンプレミス処理系からクラウド・ベース処理系に移動することを望む場合、これは企業のコンピューター・システムに多くの異なる更新を行うことを必要とする可能性がある。一例として、企業がその電子メール・システムを移動させている場合、これは、多数の従業員アカウントの作成を必然的に伴う可能性がある。アカウントの作成は、多くの場合、シリアルで行われ、大量の時間を要する可能性がある。加えて、多数の変更が行われる場合、これらの変更は、リモート・サーバーまたはクラウド・ベース処理系の大量の処理およびメモリー・オーバーヘッド、ならびに帯域幅を消費する可能性がある。
【０００６】
[0006]  多くのクラウド・ベースまたはリモート・サーバー処理系は、マルチテナント・システムでもある。即ち、これらは複数の異なるテナントにあるレベルのサービスを提供するが、テナントが複数の異なる組織であることが多い。１つのテナントが多数の変更を行うと、他のテナントによって感知される処理能力に悪影響を及ぼす可能性がある。
【０００７】
[0007]  以上の論述は、一般的な背景情報のために示されたに過ぎず、特許請求する主題の範囲を判断するときの補助として使用されることを意図するのではない。
【発明の概要】
【０００８】
[0008]  マルチテナント・サービスにおいて、テナント変更を受け取る。テナント変更をセクションに分割する。マルチテナント・サービスにおいて、全ての要求元テナントにわたって処理リソースを均等に分配するために、変更を要求した全てのテナントにわたって、テナント変更のセクションを処理する。
【０００９】
[0009]  この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として使用されることを意図するのでもない。特許請求する主題は、背景において注記した欠点の内、任意のものを解決する実施態様にも全ての欠点を解決する実施態様にも限定されるのではない。
【図面の簡単な説明】
【００１０】
【図１】図１は、クラウド・ベースのマルチテナント・サービス・アーキテクチャの一例のブロック図である。
【図２】図２は、変更スケジューリング・コンポーネントの一例を更に詳細に示すブロック図である。
【図３Ａ】図３Ａおよび図３Ｂ(纏めて、図３）は、図１に示すアーキテクチャの動作の一例を表す流れ図を示す。
【図３Ｂ】図３Ａおよび図３Ｂ(纏めて、図３）は、図１に示すアーキテクチャの動作の一例を表す流れ図を示す。
【図４】図４は、マルチテナント・クラウド・アーキテクチャの一例におけるマルチテナント機能(multi-tenancy)の異なるレベルを表すブロック図である。
【図５】図５は、移動体デバイスの例を示す。
【図６】図６は、移動体デバイスの例を示す。
【図７】図７は、移動体デバイスの例を示す。
【図８】図８は、計算環境の一例のブロック図である。
【発明を実施するための形態】
【００１１】
[0016]  図１は、クラウド・ベースのマルチテナント・サービス・アーキテクチャ１００の一例のブロック図である。アーキテクチャ１００は、複数の異なるテナント・システム１０４〜１０６によってアクセス可能なクラウド・ベース・マルチテナント・サービス・システム１０２を含む。図４に関して以下で更に詳細に説明するが、クラウド・ベース・マルチテナント・サービス・システム１０２は、テナント・システム１０４〜１０６を使用するテナントに対して、あるレベルのマルチテナント・サービスを提供する。実例として、テナントは、システム１０２によって提供されるマルチテナント・サービスが、所望のレベルにおいて、テナント毎に分けられる(separated)または分離される(isolated)ように、組織を分ける。また、図４に関して以下で更に詳細に説明するが、とりわけ、インフラストラクチャのレベル、アプリケーション・プラットフォームのレベル、またはアプリケーション・ソフトウェアのレベルで、マルチテナント・サービスを提供することができる。つまり、システム１０２によって提供される特定のレベルのマルチテナント機能(multi-tenancy)に応じて、特定のクライアント（またはテナント）に対応する情報がそのレベルにおいて分けられ、他のテナント（またはテナント）によってアクセスできないように分離される。
【００１２】
[0017]  一例として、システム１０２がサービスとしてのインフラストラクチャを提供する場合、システム１０２のインフラストラクチャ・コンポーネントはテナント１０４〜１０６によって共有されるが、これらの情報は他の方法で別個に保持される。システム１０２がサービスとしてのプラットフォームを提供する場合、プラットフォーム・コンポーネントはテナント１０４〜１０６によって共有される。システム１０２がサービスとしてのアプリケーション・ソフトウェアを提供する場合、テナント１０４〜１０６にサービスするために、共通のアプリケーションがシステム１０２によって実行される。これらの実施態様のいずれにおいても、システム１０２はあるレベルのマルチテナント機能を提供するので、異なるテナント１０４〜１０６に対応する情報は別個に保持される。これについては、図４に関して以下で更に詳細に説明する。
【００１３】
[0018]  図１に示すシステム１０２の例では、テナント・システム１０４〜１０６は、それらの対応するテナント・データー１０８〜１１０に対して動作するアプリケーションにアクセスする。テナント・システム１０４〜１０６は、これらの対応するテナント・データー１０８〜１１０を変更するために、変更要求１１２〜１１４を提示する(provide)ことができる。一例として、テナント１０４が多数のユーザーをオンプレミス・システムからクラウド・ベース・システム１０２に移動させているのでもよい。したがって、変更要求１１２は、テナント・システム１０４のために、オンプレミス・システム１０２における大多数の電子メール・アカウントを追加するためであってもよい。他の例では、テナント・システム１０６が、他の組織を取得したとしてもよく、したがって、大多数の電子メール・アカウントをシステム１０２におけるそのクラウド・ベース処理系に追加する必要がある場合もある。更に他の例では、テナント・システム１０４を使用する組織が編成し直されたとしてもよい。したがって、大多数の従業員記録を変更して、彼らがもはや人事部の一部ではなく、今では販売部の一部であることを示す必要がある可能性がある。これらの例のいずれにおいても、または多種多様の他の例においても、テナントに合わせてクラウド・ベース処理系に変更すると、数量が比較的大きくなる可能性がある。しかしながら、一例では、システム１０２は、他のテナントにサービスするときにシステム１０２の性能に影響を及ぼさないような方法で、これらの変更を処理する。
【００１４】
[0019]  テナント更新または変更を行うときのシステム１０２の動作の更に詳細な説明を、図２および図３に関して以下で行う。これより、理解を深めるために、端的な全体像を示す。
【００１５】
[0020]  システム１０２は、実例として、変更要求処理システム１１６、変更スケジューリング・コンポーネント１１８、テナント・ビヘイビアー監視システム１２０、および他のクラウド処理系コンポーネント１２２を含む。また、これは公正性ポリシー(fairness policy)１１９も含むことができる。変更スケジューリング・コンポーネント１１８（図２に更に詳細に示されている）は、テナント・システム１０４〜１０６から変更要求を受け、テナント・ビヘイビアー監視システム１２０にアクセスする。テナント・ビヘイビアー監視システム１２０は、変更要求をスケジューリングするために変更スケジューリング・コンポーネント１１８によって使用される情報を提供する。一例では、変更スケジューリング・コンポーネント１１８は、種々のテナント・システム１０４〜１０６から受けた変更要求をセクションに分割し、比較的多数の変更要求を提出している可能性がある１つのテナントがこれらのリソースを使いすぎて他のテナントに損害を与えないように、変更要求処理システム１１６のリソースを種々のテナントにわたって分配する。
【００１６】
[0021]  これらの変更のスケジューリングを行うとき、コンポーネント１１８は、テナント・ビヘイビアー・システム１２０によって提供される情報にアクセスする。テナント・ビヘイビアー・システム１２０それ自体は、実例として、テナント・タイプ識別手段(identifier)１２４、インバウンド・トラフィック・モニター１２６、アウトバウンド・トラフィック・モニター１２８、および他の識別コンポーネント１３０を含む。テナント・タイプ識別手段１２４は、要求元テナント１０４の異なる特性を識別することができる。例えば、テナントがクラウド・ベース・サービスに支払っているテナントか、またはお試しアカウントを有するテナントか判定することができる。これは、テナントのサイズ（シート(seat)およびアクティブなユーザーの数等）を識別することができ、更にインバウンドおよびアウトバウンド・トラフィックを監視することによって、現在のトラフィック・レベルまたは変更要求処理システム１１６上の負荷も検討することもできる。これは、種々のテナント１０４〜１０６によって現在観察されているレイテンシーを計算することができ（変更要求と実際に行われている変更との間の時間を測定することによってというように）、過去のトラフィック・データー、および多種多様の他のデーターを分析することができる。いずれの場合でも、変更スケジューリング・コンポーネント１１８は、実例として、いずれの１組のテナントのビヘイビアーもシステムを使いすぎることなく、またそれ以外でも他のテナントによって感知される処理能力を著しく劣化させないように、変更要求処理システム１１６に提出された変更を制御する。
【００１７】
[0022]  図２は、変更スケジューリング・コンポーネント１１８の一例の更に詳細なブロック図である。コンポーネント１１８は、実例として、変更スライシング・コンポーネント(change slicing component)１３２、次位変更識別コンポーネント(next change identifier component)１３４、スケジューラー通信コンポーネント１３６、および保留変更ストア１３８を含む。これは他の単位体１４０も含む同様に含むことができる。コンポーネント１１８は、実例として、変更要求１１２〜１１４を種々のテナント・システム１０４〜１０６から受ける。また、要求元テナント・ビヘイビアー特性１４２をテナント・ビヘイビアー監視システム１２０から受け取る。次いで、変更スライシング・コンポーネント１３２は、要求された変更をテナント毎に分割し、これらをテナント変更１４４〜１４６として保留変更ストア１３８に保存する。現在要求されている変更の数（およびその他の情報）に基づいて、変更スライシング・コンポーネント１３２は、変更１４４〜１４６を、テナントの各々毎に、複数の異なるセクション１４８〜１５０にスライスすることができる。各セクションは、同じ数の変更を有するのでもよく、この数は予め定められても、または動的に決定されてもよい。次位変更識別コンポーネント１３４は、種々のテナント・システム１０４〜１０６に容認可能な処理能力が予見できる(see)ことを確保するために、セクション１４８〜１５０の内どれが処理すべき次のセクションであるか識別する。これをスケジューラー通信コンポーネント１３６に示し、一方スケジューラー通信コンポーネント１３６は次の変更１５２を変更要求処理システム１１６に送る。テナント毎の変更要求を、共通のサイズに分けたセクションに分割することによって、次いでこれらの変更のセクションを変更要求処理システム１１６によって行うようにスケジューリングすることによって、変更スケジューリング・コンポーネント１１８は、テナント・システム１０４〜１０６の各々がそれらの要求された変更を行わせるときに観察される処理性能レベル（例えば、レイテンシー）を制御することができる。コンポーネント１１８は、予め定められた公正性ポリシー１１９にしたがってまたはそれ以外でこれを行うことができる。このように、コンポーネント１１８は、１つのテナントまたはテナントの１つのグループが変更要求処理システム１１６を使いすぎて、他のテナントに多大な損害を与えないことを確保することができる。代わりに、アドミニストレーターまたは他の要員によって設定する公正性ポリシー１１９、あるいは他の方法で決定することができる公正性ポリシー１１９にしたがって、変更をスケジューリングすることができる。
【００１８】
[0023]  図３Ａおよび図３Ｂ（纏めて図３）は、変更スケジューリング・コンポーネント１１８、およびクラウド・ベース・マルチテナント・サービス・システム１０２の他のコンポーネントの、テナント変更を行うときの動作の一例を表す流れ図を示す。システム１０２は、最初に、テナントに対する変更要求を受ける。これは、図３ではブロック１５６によって示されている。変更要求は、実例として、変更を行っているテナント・システム１０４〜１０６を識別するテナント識別子を、対応するテナント・データーに対する１組の要求された変更と共に含む。
【００１９】
[0024]  一旦変更要求が受けたなら、変更スケジューリング・コンポーネント１１８における変更スライシング・コンポーネント１３２は、要求元テナント・ビヘイビアー特性および他のデーター１４２を得るために、テナント・ビヘイビアー監視システム１２０にアクセスする。これはブロック１５８によって示されている。先に端的に論じたように、これらの特性はテナント・タイプ１６０を含むことができる。テナント・タイプは、テナントが有料テナントか、またはお試しアカウントを有するテナントか示すことができる。また、要求元テナントによって購入されたサービスのレベル、または要求元テナントにライセンスされたサービスのレベルを示すことができる。加えて、テナント・タイプ識別手段１２４は、要求元テナントにライセンスされたシート１６２の数、および要求元テナントのアクティブなユーザー１６４の数の指示を与えることができる。これは、特定のタイプのテナントを識別する種々の他の識別子も含むことができる。
【００２０】
[0025]  インバウンド・トラフィック・モニター１２６およびアウトバウンド・トラフィック・モニター１２８は、現在変更を要求しているテナントの数を示す情報を提供することができる。これはブロック１６６によって示されている。これは、インバウンドおよびアウトバウンド・トラフィック１６８の単位（受けた変更要求の数、各変更要求における変更の数等のような）、要求されている変更のタイプ、ならびにインバウンドおよびアウトバウンド・トラフィック・モニター１２６および１２８によってそれぞれ行われた分析の他の結果を識別することができる。
【００２１】
[0026]  他のビヘイビアー監視コンポーネント１３０も他の項目を提供することができる。例えば、これらは、テナント１０４〜１０６によって行われた変更要求と、変更要求処理システム１１６によってこれらの要求が実際に行われる書き込み動作との間のレイテンシーを監視または測定することができる。このレイテンシーは、図３ではブロック１７０によって示されている。他のコンポーネント１３０は、時の経過と共にレイテンシーがどのように変化したかを示す履歴データー１７２を提供することができる。これは、移動平均、または他の履歴データー１７２とすることができる。加えて、テナント・ビヘイビアー監視システム１２０は、行われる変更をスケジューリングするために変更スケジューリング・コンポーネント１１８によって使用することができる他の特性１７４も提供することができる。
【００２２】
[0027]  変更スケジューリング・コンポーネント１１８が受けた変更要求、ならびにビヘイビアー特性およびその他のデーター１４２に基づいて、変更スライシング・コンポーネント１３２は、現在受けている変更要求をセクションにスライスする必要があるか否か判定する。これは、図３ではブロック１７６によって示されている。これは、公正性ポリシー１１９を参照して行うことができる。公正性ポリシー１１９は、多種多様の異なる形態をなすことができる。例えば、データー１４２によって示される一定の条件の下で、変更要求をどのようにスライスしスケジューリングするか特定する１組の規則として具体化することができる。これは、固定にすることができ、または利用可能なリソースのレベル、供与されるテナントの数等と共に変化する動的ポリシーとすることもできる。
【００２３】
[0028]  例えば、現在受けている変更要求が、テナントの電子メール・システムへの大量の追加を求める場合、変更スライシング・コンポーネント１３２は、これらの変更の全てが要求された場合、これは変更要求処理システム１１６のリソースを使いすぎて、他の要求元テナントがレイテンシーに関して性能劣化を被ると判断することができる。したがって、変更スライシング・コンポーネント１３２は、この要求元テナントに対する要求が、一度に１セクションだけ変更要求処理システム１１６に供給され、他の要求元テナントからの変更要求セクションと交互に並ぶ(interleave)ように、丁度受け取ったばかりの変更要求を、それよりも小さいセクション１４８にスライスすることができる。このように、要求された変更を行うときの変更要求処理システム１１６の処理能力に関して、全ての要求元テナントが公正な扱いを受けるように、他の要求元テナントからの変更のセクションを、交互に処理システム１１６に供給することができる。ある例では、異なるテナントに対するセクションが処理システム１１６に同じ率で（テナント毎に１セクションというように）供給されなくてもよい。代わりに、一定のタイプのテナントを優先してセクションを供給してもよい。例えば、お試しサービスを有する要求元テナントからのセクションは１つずつ供給されるのに対して、有償サービスを有する要求元テナントでは、２セクションずつ処理システム１１６に供給するのでもよい。これらのタイプの優先処理は、公正性ポリシー１９６または他のところで表明することができる。同様に、変更スライシング・コンポーネント１３２は、所望の公正性を達成するために、要求元テナント毎にセクションのサイズを変えることもできる。
【００２４】
[0029]  変更スライシング・コンポーネント１３２が（現在受けている要求における変更の数に基づいて、または他の特性およびデーター１４２に基づいて）、要求をセクションにスライスする必要がないと判断した場合、変更要求は１つのセクションとして扱われる。これはブロック１７８によって示されている。
【００２５】
[0030]  しかしながら、変更要求をスライスする必要がある場合、変更スライシング・コンポーネント１３２は、この変更要求をセクションにスライスし、これらをテナント毎に保留変更ストア１３８に格納する。変更要求をセクションにスライスすることは、図３ではブロック１８０によって示されている。
【００２６】
[0031]  次位変更識別コンポーネント１３４は、次に、処理されることになっているセクションの順序を決定する。即ち、変更要求処理システム１１６による処理のために、データー・ストア１３８における種々のセクションをスケジューリングする。これは、全ての要求元テナントにわたって変更要求処理システム１１６の処理リソースを公正に分配するような方法で、そのように行う。一例では、テナント毎に１つのセクションを順次スケジューリングし、全ての要求元テナントのために変更のセクションの全てが行われるまで、このスケジューリング・プロセスを繰り返す。他の例では、前述のように、有料テナントのためには複数のセクションのスケジューリングを行い、お試しアカウントを有するテナントには、それよりも少ないセクションのスケジューリングを行うことができる。勿論、他の方法でもテナント間で区別することができる。実例として、アドミニストレーターによってまたは他の方法で決定することができる公正性ポリシー１１９にしたがって、変更をスケジューリングする。セクションをスケジューリングすることは、図３ではブロック１８２によって示されている。
【００２７】
[0032]  一旦変更のセクションのスケジューリングが行われたなら、次位変更識別コンポーネント１３４は、行うべき次の変更のセクションを選択し、それをスケジューラー通信コンポーネント１３６に確認する(identify)。スケジューラー通信コンポーネント１３６は、このセクションを変更要求処理システム１１６に送るか、システム１１６がこれらの変更要求を保留変更ストア１３８から引き出すことができるように、それを変更要求処理システム１１６に確認する。いずれの場合でも、システム１１６は、変更が行われることになっている次のセクションに対応する変更を行う。次のセクションを選択し、選択されたセクションにおける変更を行うことは、図３ではブロック１８４および１８６によって示されている。
【００２８】
[0033]  次いで、次位変更識別コンポーネント１３４は、処理すべきセクションが未だあるか否か判定する。これはブロック１８８によって示されている。ある場合、変更スライス・コンポーネント１３２は、他のテナントが、その間に、他の変更(more changes)を要求したか否か判定する。これはブロック１９０によって示されている。要求しなかった場合、処理は単にブロック１８４に戻り、次にスケジューリングされたセクションが識別され、変更要求処理システム１１６に供給される。
【００２９】
[0034]  しかしながら、ブロック１９０において、１つ以上の追加のテナントが変更を要求したと判定した場合、変更スライス・コンポーネント１３２は、再度、要求元テナントに対応する特性１４２を受け取り、新たに要求しているテナントの要求も同様にスライスする必要があるか否か判定する。これはブロック１９２によって示されている。スライスする必要がない場合、処理はブロック１８２に戻り、新たな変更要求をスケジューリングする。しかしながら、新たな変更要求における変更をスライスする必要がある場合、変更スライス・コンポーネント１３２は、これらの変更要求をセクションにスライスし、これらを保留変更ストア１３８に入れる。これは図３ではブロック１９４によって示されている。この場合も、新たにスライスされた変更要求は、ブロック１８２において既に存在する変更要求の中に(in with)スケジューリングされ、ブロック１８８において、これ以上変更要求を処理する必要がないと判定されるまで、処理を継続する。
【００３０】
[0035]  このように、変更スケジューリング・コンポーネント１１８および監視システム１２０は、大きなテナントが、それよりも小さいテナントから、リソースを奪ってプロビジョニングし尽くさないことを確保することがわかる。全てのテナントによって感知される処理能力が公正に分配されるように、オンボーディング・アクティビティ(onboarding activities)およびその他の変更要求アクティビティをスケジューリングする。変更スケジューリング・コンポーネント１１８は、システム１０２を使用しているテナントのタイプに基づいて差別化されるビヘイビアー(behaviors)のような、異なる業務シナリオに応えるために、拡張可能である。また、このシステムはテナントの正しいビヘイビアー(good behavior)に頼らない。即ち、他のテナントに対する処理能力の劣化を生じないように、それら自体の変更要求を管理することを、テナントに頼らない。代わりに、小さなテナントが、それよりも大きな他のテナントよりも影響を受ける（例えば、これらの方が大きなレイテンシーを受ける）ことがないように、システムのリソースをスケジューリングすることができる。テナントのビヘイビアーをリアル・タイムまたはほぼリアル・タイムで監視し、所与のテナントに対して一度に処理する変更の量を決定する。これによって、システムは全てのテナントに公正な量の帯域幅、ならびにオンボーディングおよびその他の変更処理アクティビティのための他の計算リソースを供給することが可能になる。
【００３１】
[0036]  本論述では、プロセッサーおよびサーバーについて述べた。一実施形態では、プロセッサーおよびサーバーは、別々には示されていないメモリーおよびタイミング回路が付随するコンピューター・プロセッサーを含む。これらは、これらが属しそして有効化されるシステムまたはデバイスの機能部分であり、これらのシステムにおける他のコンポーネントまたは単位体(item)の機能を行い易くする。
【００３２】
[0037]  また、多数のユーザー・インターフェース・ディスプレイについても論じた。これらは、多種多様の異なる形態を取ることができ、多種多様の異なるユーザー作動可能な入力メカニズムをそこに配置することができる。例えば、ユーザー作動可能な入力メカニズムは、テキスト・ボックス、チェック・ボックス、アイコン、リンク、ドロップダウン・メニュー、検索ボックス等とすることができる。また、これらを多種多様の異なる方法で作動させることもできる。例えば、ポイントおよびクリック・デバイス（トラック・ボールまたはマウス等）を使用してこれらを作動させることができる。ハードウェア・ボタン、スイッチ、ジョイスティックまたはキーボード、サム・スイッチまたはサム・パッド等を使用してこれらを作動させることができる。また、仮想キーボードまたは他の仮想アクチュエータを使用してこれらを作動させることもできる。加えて、これらが表示される画面がタッチ感応画面である場合、タッチ・ジェスチャを使用してこれらを作動させることができる。また、これらを表示するデバイスが音声認識コンポーネントを有する場合、音声コマンドを使用してこれらを作動させることができる。
【００３３】
[0038]  また、多数のデーター・ストアについても論じた。これらは各々複数のデーター・ストアに分けられることに留意されたい。全ては、これらにアクセスするシステムに対してローカルであることができ、全てがリモートであることができ、または一部がローカルであり、他がリモートであることもできる。これらの構成の全ては、本明細書において考えられる範囲内である。
【００３４】
[0039]  また、図は、各ブロックに帰せられる機能を有する多数のブロックを示す。尚、それよりも少ないコンポーネントによってその機能が実行されるように、それよりも少ないブロックを使用できることに留意されたい。また、もっと多くのブロックを使用して、もっと多くのコンポーネントに機能を分散することもできる。
【００３５】
[0040]  図４は、システム１０２を実現することができるマルチテナント・クラウド・アーキテクチャ１９６（クラウド１９６）の更に詳細な実施形態を示すブロック図である。図４は、他のクラウド処理系コンポーネント１２２（図１に示す）の一例を更に詳細に示す。
【００３６】
[0041]  クラウド・コンピューティング(cloud computing)は、サービスを配信するシステムの物理位置や構成をエンド・ユーザーが知る必要なく、計算、ソフトウェア、データー・アクセス、およびストレージ・サービスを提供する。種々の実施形態では、クラウド・コンピューティングは、適したプロトコルを使用して、インターネットのようなワイド・エリア・ネットワークを通じてサービスを配信する。例えば、クラウド・コンピューティング・プロバイダーは、ワイド・エリア・ネットワークを通じてアプリケーションを配信し、これらにはウェブ・ブラウザーまたは任意の他の計算コンポーネントによってアクセスすることができる。アーキテクチャ１００のソフトウェアまたはコンポーネント、および対応するデーターは、遠隔地にあるサーバー上に格納することができる。クラウド・コンピューティング環境における計算リソースは、リモート・データー・センターの場所に統合することができ、またはこれらを散在させることができる。クラウド・コンピューティング・インフラストラクチャは、共有データー・センターを介してサービスを配信することができるが、これらはユーザーには１つのアクセス・ポイントのように見える。つまり、本明細書において説明するコンポーネントおよび機能は、クラウド・コンピューティング・アーキテクチャを使用して、遠隔地にあるサービス・プロバイダから提供することができる。代わりに、これらを従来のサーバーから提供することもでき、あるいはクライアント・デバイス上に直接インストールすることも、または他の方法でインストールすることもできる。
【００３７】
[0042]  この説明は、パブリック・クラウド・コンピューティングおよびプライベート・クラウド・コンピューティングの双方を含むことを意図している。クラウド・コンピューティング（パブリックおよびプライベート双方）は、実質的に継ぎ目のないリソースのプーリング(pooling)を提供し、更に基礎となるハードウェア・インフラストラクチャを管理および構成する必要性の低減にも備える。
【００３８】
[0043]  パブリック・クラウドは、ベンダーによって管理され、通例、同じインフラストラクチャを使用して複数の消費者をサポートする。また、パブリック・クラウドは、プライベート・クラウドとは逆に、ハードウェアの管理からエンド・ユーザーを解放することができる。プライベート・クラウドは、組織自体によって管理することができ、インフラストラクチャは他の組織とは共有されないのが通例である。更に、組織は、設置および修理等のように、ある程度ハードウェアの保守も行う。
【００３９】
[0044]  図４は、システム１０２におけるコンポーネント１２２が、実例として、仮想化システム１９８、インフラストラクチャ・コンポーネント２００、アプリケーション・プラットフォーム・コンポーネント２００、およびアプリケーション・ソフトウェア・コンポーネント２０４を含むことを示す。インフラストラクチャ・コンポーネント２００は、セキュリティ・コンポーネント２０６、ハードウェア／ソフトウェア・インフラストラクチャ２０８、サーバー２１０、負荷分散コンポーネント２１２、ネットワーク・コンポーネント２１４を含むことができ、他のコンポーネント２１６も含むことができる。
【００４０】
[0045]  アプリケーション・プラットフォーム・コンポーネント２０２は、実行ランタイム・コンポーネント２１８、オペレーティング・システム・コンポーネント２２０、データーベース・コンポーネント２２２、ウェブ・サーバー・コンポーネント２２４を含むことができ、更に他のコンポーネント２２６も含むことができる。アプリケーション・ソフトウェア・コンポーネント２０４は、実例として、ユーザー・インターフェース・コンポーネント２２８、アプリケーション・ワークフロー２３０、アプリケーション・ロジック２３２、データーベース・システム２３４を含み、他の単位体２３６を含むことができる。
【００４１】
[0046]  クラウド１９６によって実現されるマルチテナント機能のレベルに応じて、仮想化システム１９８は物理計算デバイス・コンポーネント１２２を１つ以上の仮想デバイスに電子的に分ける。これらのデバイスの各々は、計算タスクを実行するために使用し管理することができる。
【００４２】
[0047]  マルチテナント・クラウド・コンピューティング・アーキテクチャ１９６は、多数の異なるモデルにしたがって、多数の異なるレベルでサービスを提供することができる。例えば、これらは、とりわけ、サービスとしてのインフラストラクチャ（ＩａａＳ）、サービスとしてのプラットフォーム（ＰａａＳ）、およびサービスとしてのソフトウェア（ＳａａＳ）を含むことができる。ＩａａＳは最も基本的であり、それよりも高いレベルのモデル（それぞれＰａａＳおよびＳａａＳ）の各々が、それよりも低いモデルの詳細を抜き取る(abstract from)。
【００４３】
[0048]  ＩａａＳでは、物理または仮想機械が、他のリソースと共に提供される。監視コンポーネント(supervisory component)（ハイパーバイザーと呼ばれることもある）が仮想機械を実行する。比較的多数の仮想機械を実行し、種々のテナントの必要性に応じて規模を拡大および縮小するために、複数の異なるハイパーバイザーを使用することができる。また、ＩａａＳモデルは、要求に応じて追加のリソース（他のインフラストラクチャ・コンポーネント２００等）も提供することができる。テナントがそのアプリケーションを展開するために、これらはオペレーティング・システム・イメージおよびそのアプリケーション・ソフトウェアをクラウド・インフラストラクチャ・コンポーネント２００上にインストールする。そして、テナントは、オペレーティング・システムおよびアプリケーション・ソフトウェアを維持することを責務とする。
【００４４】
[0049]  ＰａａＳは、アプリケーション・プラットフォーム・コンポーネント２０２をサービスとして提供するクラウド・アーキテクチャ１９６を含む(involve)。アプリケーション開発者は、基礎のハードウェアおよびソフトウェア・レイヤを管理する必要なく、クラウド・プラットフォーム・コンポーネント２０２上で彼らのソフトウェアを開発し実行することができる。
【００４５】
[0050]  ＳａａＳは、アプリケーション・コンポーネント２０４におけるアプリケーション・ソフトウェアおよびデーターベースへのアクセスを与えるアーキテクチャ１９６を含む。クラウド・アーキテクチャ１９６は、インフラストラクチャ・コンポーネント２００、およびアプリケーションを実行するプラットフォーム・コンポーネント２０２を管理する。また、クラウド１９６はアプリケーション・ソフトウェアをアプリケーション・コンポーネント２０４にインストールして動作させ、テナントはこのソフトウェアにアクセスするが、クラウド・インフラストラクチャ・コンポーネント２００も、アプリケーションが実行するプラットフォーム・コンポーネント２０２も管理しない。このような実施態様では、仮想化システム１９８が、変化する作業負荷に応ずるために、ランタイムにおいて複数の仮想機械を提供する。負荷分散装置(load balancer)はこれらの仮想機械にわたって作業を分散する。このプロセスは、多くの場合、アプリケーションへの１つのアクセス・ポイントだけを見るテナントに対して透過的である。
【００４６】
[0051]  マルチテナント環境では、いずれの機械も、テナント・システム１０４〜１０６を展開する１つよりも多いユーザー組織にサービス供与する(serve)ことができる。しかしながら、マルチテナント機能は、クラウド・アーキテクチャの３つのレイヤ（ＩａａＳ、ＰａａＳ、およびＳａａＳ）の全てに適用することができる。正確なマルチテナント機能の度合いは、コア・アプリケーション（またはアプリケーション・コンポーネント２０４）の内どの位がテナント１０４〜１０６にわたって共有されるように設計されているかに基づくことができる。マルチテナント機能の度合いが比較的高いと、データーベース方式(database schema)を共有することが可能であり、業務ロジック(business logic)、ワークフロー、およびユーザー・インターフェース・レイヤーのカスタム化をサポートする。比較的低い度合いのマルチテナント機能では、ＩａａＳおよびＰａａＳコンポーネント２００および２０２が、それぞれ、各テナントに専用である専用仮想化コンポーネントを有するアプリケーション・コンポーネント１３２によって共有される。
【００４７】
[0052]  以上の論述は、サービスとしてのソフトウェアを提供するクラウド・ベース・マルチテナント・サービス・システム１０２に関して進めてきた。したがって、仮想化システム１９８は、各テナント１０４〜１０６に、それら自体の安全で別々の仮想計算環境をアプリケーション・ソフトウェア・レベル上で提供するために、別々の仮想機械を設ける。つまり、各テナント１０４〜１０６は、それら自体のアプリケーション（それら自体の電子メール・アプリケーション、文書管理アプリケーション、業務システム等のようなアプリケーション）に対する変更を行うことができる。図１〜図３に関して以上で説明したように行われるとき、これらは、他のテナントによって観察される(observe)処理能力に影響を及ぼすことなく、そのようにすることができる。
【００４８】
[0053]  また、システム１０２のあるエレメントをクラウド内に配置することができるが、他のエレメントは配置されないことも考えられる。一例として、データーベースおよびデーター・ストアをクラウド１９６の外側に配置し、クラウド１９６を介してアクセスすることができる。他の例では、他のコンポーネントがクラウド１９６の外側にあることも可能である。これらがどこに位置するかには関係なく、テナント・システム１０４〜１０６におけるデバイスによって、ネットワーク３００（ワイド・エリア・ネットワークまたはローカル・エリア・ネットワーク）を通じてこれらに直接アクセスすることができ、遠隔地(remote site)におけるサービスによってこれらをホストすることができ、あるいはクラウドを介してサービスとして提供し、クラウド内に存在する接続サービスによってアクセスすることができる。これらのアーキテクチャは全て、本明細書において考えられる範囲内である。
【００４９】
[0054]  また、アーキテクチャ１００またはその部分を多種多様の異なるデバイス上に配置できることにも留意されたい。これらのデバイスの一部には、サーバー、デスクトップ・コンピューター、ラップトップ・コンピューター、タブレット・コンピューター、またはパーム・トップ・コンピューター、セル・フォン、スマート・フォン、マルチメディア・プレーヤー、パーソナル・ディジタル・アシスタント等のような他の移動体デバイスが含まれる。
【００５０】
[0055]  図５は、システム１００のコンポーネントまたはテナント１０４〜１０６を実行することができる、あるいはアーキテクチャ１００とインターフェースする、あるいは双方が可能なクライアント・デバイス１６のコンポーネントの全体的なブロック図である。デバイス１６において、ハンドヘルド・デバイスが他の計算デバイスと通信することを可能にし、ある実施形態ではスキャニングによってというように、情報を自動的に受信するためのチャネルを提供する通信リンク１３が設けられている。通信リンク１３の例には、赤外線ポート、シリアル／ＵＳＢポート、イーサネット・ポートのようなケーブル・ネットワーク・ポート、および１つ以上の通信プロトコルによる通信を可能にするワイヤレス・ネットワーク・ポートが含まれる。通信プロトコルには、汎用パケット無線サービス（ＧＰＲＳ）、ＬＴＥ、ＨＳＰＡ、ＨＳＰＡ＋ならびに３Ｇおよび４Ｇ無線プロトコル、ＩＸｒｔｔ、更にはショート・メッセージ・サービスが含まれる。これらは、ネットワークへのセルラ・アクセスを与えるために使用されるワイヤレス・サービス、ならびにネットワークへのローカル・ワイヤレス接続を提供するＷｉ−Ｆｉプロトコル、およびＢｌｕｅｔｏｏｔｈプロトコルである。
【００５１】
[0056]  他の実施形態の下では、ＳＤカード・インターフェース１５に接続されたリムーバブル・セキュア・ディジタル（ＳＤ）カードにおいてアプリケーションまたはシステムが受け取られる。ＳＤカード・インターフェース１５および通信リンク１３は、バス１９に沿ってプロセッサー１７（他の図において先に説明したプロセッサーまたはサーバーも具体化することができる）と通信し、バス１９は、メモリー２１および入力／出力（Ｉ／Ｏ）コンポーネント２３、ならびにクロック２５およびロケーション・システム２７にも接続されている。
【００５２】
[0057]  Ｉ／Ｏコンポーネント２３は、一実施形態では、入力および出力動作を容易にするために設けられる。デバイス１６の種々の実施形態のためのＩ／Ｏコンポーネント２３は、ボタン、タッチ・センサー、多重タッチ・センサー、光またはビデオ・センサ、音声センサー、タッチ・スクリーン、近接センサー、マイクロフォン、傾きセンサー、および重力スイッチのような入力コンポーネント、ならびにディスプレイ・デバイス、スピーカー、および／またはプリンター・ポートのような出力コンポーネントを含むことができる。他のＩ／Ｏコンポーネント２３も同様に使用することができる。
【００５３】
[0058]  クロック２５は、実例として、時刻および日にちを出力するリアル・タイム・クロック・コンポーネントを含む。また、実例として、プロセッサー１７にタイミング機能を与えることができる。
【００５４】
[0059]  ロケーション・システム２７は、実例として、デバイス１６の現在の地理的位置を出力するコンポーネントを含む。これは、例えば、全地球測位システム（ＧＳＰ）受信機、ＬＯＲＡＮシステム、推測航法システム、セルラ三角測量システム、または他の測位システムを含むことができる。また、これは、例えば、所望の地図、ナビゲーション経路、および他の地理的機能を生成する地図作成ソフトウェアまたはナビゲーション・ソフトウェアも含むことができる。
【００５５】
[0060]  メモリー２１は、オペレーティング・システム２９、ネットワーク設定３１、アプリケーション３３、アプリケーション・コンフィギュレーション設定３５、データー・ストア３７、通信ドライバー３９、および通信コンフィギュレーション設定４１を格納する。メモリー２１は、全てのタイプの有形揮発性および不揮発性コンピューター読み取り可能メモリー・デバイスを含むことができる。また、これはコンピューター記憶媒体（以下で説明する）も含むことができる。メモリー２１は、コンピューター読み取り可能命令を格納し、プロセッサー１７によってこのコンピューター読み取り可能命令が実行されると、このプロセッサーに、命令にしたがってコンピューター実装ステップまたは機能を実行させる。同様に、デバイス１６は、クライアント業務システム２４を有することができ、クライアント業務システム２４は種々の業務用アプリケーションを実行すること、あるいはテナント・システム１０４〜１０６の一部または全部を具体化することができる。プロセッサー１７は、他のコンポーネントによって、それらの機能も同様にやり易くするために、有効化することができる。
【００５６】
[0061]  ネットワーク設定３１の例には、プロキシー情報、インターネット接続情報、およびマッピングのようなものが含まれる。アプリケーション・コンフィギュレーション設定３５は、特定の企業またはユーザーに合わせてアプリケーションを改造する(tailor)設定を含む。通信コンフィギュレーション設定４１は、他のコンピューターと通信するためのパラメーターを提供し、ＧＰＲＳパラメーター、ＳＭＳパラメーター、接続ユーザー名およびパスワードのような項目を含む。
【００５７】
[0062]  アプリケーション３３は、デバイス１６上に既に格納されているアプリケーション、または使用中にインストールされたアプリケーションであることが可能であるが、これらはオペレーティング・システム２９の一部であること、またはデバイス１６の外部でホストされることも同様に可能である。
【００５８】
[0063]  図６は、デバイス１６がタブレット・コンピューター６００である一例を示す。図６において、コンピューター６００は、ユーザー・インターフェース表示画面６０２と共に示されている。画面６０２は、タッチ・スクリーン（したがって、ユーザーの指からのタッチ・ジェスチャを使用してアプリケーションと対話処理することができる）、あるいはペンまたはスタイラスからの入力を受け取るペン対応インターフェースとすることができる。また、これは画面上の仮想キーボードを使用することもできる。勿論、例えば、ワイヤレス・リンクまたはＵＳＢポートのような適した取り付けメカニズムを介して、これをキーボードまたは他のユーザー入力デバイスに取り付けてもよい。また、実例として、コンピューター６００は音声入力を受け取ることもできる。
【００５９】
[0064]  デバイス１６の更に他の例も同様に使用することができる。これらは、フィーチャー・フォン、スマート・フォン、または移動体電話機を含むことができる。この電話機は、電話番号を入力する(dialing)ための１組のキーパッド、アプリケーション画像、アイコン、ウェブ・ページ、写真、およびビデオを含む画像を表示することができるディスプレイ、ならびにディスプレイ上に示される項目を選択するための制御ボタンを含むことができる。この電話機は、汎用パケット無線サービス（ＧＰＲＳ）およびＩＸｒｔｔ、ならびにショート・メッセージ・サービス（ＳＭＳ）信号のような、セルラ・フォン信号を受信するためのアンテナを含むことができる。ある実施形態では、電話機はＳＤカードを受け入れるセキュア・デジタル（ＳＤ）カード・スロットを含むこともできる。
【００６０】
[0065]  また、移動体デバイスは、パーソナル・ディジタル・アシスタント（ＰＤＡ）、またはマルチメディア・プレーヤー、またはタブレット計算デバイス等（以後ＰＤＡと呼ぶ）であることも可能である。ＰＤＡは、誘導性画面を含むことができる。誘導性画面は、スタイラスがこの画面の上方に位置付けられると、スタイラス（またはユーザーの指のような他のポインター）の位置を検知する。これによって、ユーザーは画面上で項目を選択する、強調する、移動させることができ、更に描画および記入することができる。また、ＰＤＡは多数のユーザー入力キーまたはボタンも含むことができ、これらは、ディスプレイに接触することなく、ディスプレイ上に表示されるメニュー選択肢または他の表示選択肢全域をユーザーがスクロールすること、更にユーザーがアプリケーションを変更することまたはユーザー入力機能を選択することを可能にする。ＰＤＡは、他のコンピューターとのワイヤレス通信を可能にする内部アンテナおよび赤外線送信機／受信機、ならびに他の計算デバイスへのハードウェア接続を可能にする接続ポートを含むことができる。このようなハードウェア接続は、通例、シリアルまたはＵＳＢポートを介して他のコンピューターに接続するクレードルを介して行われる。したがって、これらの接続はネットワーク外(non-network)接続である。
【００６１】
[0066]  図７は、スマート・フォン７１を示す。スマート・フォン７１は、アイコンまたはタイルあるいは他のユーザー入力メカニズム７５を表示するタッチ感応ディスプレイ７３を有する。メカニズム７５は、アプリケーションを実行する、通話する、データー転送動作を実行する等のためにユーザーによって使用することができる。一般に、スマート・フォン７１は、移動体オペレーティング・システム上に構築され、フィーチャー・フォンよりも進んだ計算能力および接続機能(connectivity)を提供する。
【００６２】
[0067]  尚、デバイス１６の他の形態も可能であることを注記しておく。
[0068]  図８は、アーキテクチャ１００、またはその一部（例えば）を展開することができる計算環境の一例である。図８を参照すると、いくつかの実施形態を実現するためのシステム例は、コンピューター８１０の形態とした汎用計算デバイスを含む。コンピューター８１０のコンポーネントは、処理ユニット８２０（以上で論じたプロセッサーまたはサーバーを構成することができる）、システム・メモリー８３０、およびシステム・バス８２１を含むことができるが、これらに限定されるのではない。システム・バス８２１は、システム・メモリーから処理ユニット８２０までを含む種々のシステム・コンポーネントを結合する。システム・バス８２１は、メモリー・バスまたはメモリー・コントローラ、周辺バス、および種々のバス・アーキテクチャの内任意のものを使用するローカル・バスを含む、様々なタイプのバス構造の内任意のものとすることができる。一例として、そして限定ではなく、このようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子規格連合（ＶＥＳＡ）ローカル・バス、およびMezzanineバスとしても知られる周辺コンポーネント相互接続（ＰＣＩ）バスを含む。図１に関して説明したメモリーおよびプログラムは、図８の対応する部分に展開することができる。
【００６３】
[0069]  コンピューター８１０は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター８１０によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性および不揮発性双方の媒体、ならびにリムーバブルおよび非リムーバブル媒体を含む。一例として、そして限定ではなく、コンピューター読み取り可能媒体は、コンピューター記憶媒体および通信媒体を含むことができる。コンピューター記憶媒体は、変調データー信号または搬送波とは異なり、これを含まない。これは、揮発性および不揮発性双方の、リムーバブルおよび非リムーバブル媒体を含むハードウェア記憶媒体を含み、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターというような情報の格納のための任意の方法または技術で実現される。コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたは他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、または所望の情報を格納するために使用することができそしてコンピューター８１０によってアクセスすることができる他のあらゆる媒体を含むが、これらに限定されるのではない。通信媒体は、通例、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターを移送メカニズム内に具体化し、任意の情報配信媒体を含む。「変調データー信号」という用語は、その信号内に情報をエンコードするような方法で、その特性の１つ以上が設定または変更された信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続というような有線媒体と、音響、ＲＦ、赤外線、および他のワイヤレス媒体というようなワイヤレス媒体とを含む。以上の内任意のものの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
【００６４】
[0070]  システム・メモリー８３０は、リード・オンリー・メモリー（ＲＯＭ）８３１およびランダム・アクセス・メモリー（ＲＡＭ）８３２のような、揮発性および／または不揮発性メモリーの形態としたコンピューター記憶媒体を含む。基本入力／出力システム８３３（ＢＩＯＳ）は、起動中におけるように、コンピューター８１０内部にあるエレメント間で情報を転送するのに役立つ基本的なルーチンを含み、通例ＲＯＭ８３１に格納される。ＲＡＭ８３２は、通例、処理ユニット８２０によって直ちにアクセス可能なデーターおよび／またはプログラム・モジュール、および／または現在処理ユニット８２０によって処理されているデーターおよび／またはプログラム・モジュールを含む。一例として、そして限定ではなく、図８は、オペレーティング・システム８３４、アプリケーション・プログラム８３５、他のプログラム・モジュール８３６およびプログラム・データー８３７を示す。
【００６５】
[0071]  また、コンピューター８１０は、他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピューター記憶媒体も含むことができる。一例としてに過ぎないが、図８は、非リムーバブル、不揮発性磁気媒体に対して読み取りまたは書き込みを行うハード・ディスク・ドライブ８４１、およびＣＤ−ＲＯＭまたは他の光媒体のようなリムーバブル、不揮発性光ディスク８５６に対して読み取りまたは書き込みを行う光ディスク・ドライブ８５５を示す。この動作環境例において使用することができる他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピューター記憶媒体には、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートＲＡＭ、ソリッド・ステートＲＯＭ等が含まれるが、これらに限定されるのではない。ハード・ディスク・ドライブ８４１は、通例、インターフェース８４０のような非リムーバブル・メモリー・インターフェースを介してシステム・バス８２１に接続され、光ディスク・ドライブ８５５は、通例、インターフェース８５０のようなリムーバブル・メモリー・インターフェースによってシステム・バス８２１に接続される。
【００６６】
[0072]  代わりに、または加えて、本明細書において説明した機能は、少なくとも部分的に、１つ以上のハードウェア・ロジック・コンポーネントによって実行することもできる。例えば、そして限定ではなく、使用することができる例示的なタイプのハードウェア・ロジック・コンポーネントには、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定プログラム集積回路（ＡＳＩＣ）、特定プログラム標準製品（ＡＳＳＰ）、システム・オン・チップ・システム（ＳＯＣ）、複合プログラマブル・ロジック・デバイス（ＣＰＬＤ）等を含むことができる。
【００６７】
[0073]  以上で論じ図８に示すこれらのドライブおよびそれに関連するコンピューター記憶媒体は、コンピューター８１０のためのコンピューター読み取り可能命令、データー構造、プログラム・モジュール、および他のデーターの格納を行う。図８では、例えば、ハード・ディスク・ドライブ８４１は、オペレーティング・システム８４４、アプリケーション・プログラム８４５、他のプログラム・モジュール８４６、およびプログラム・データー８４７を格納することが示される。尚、これらのコンポーネントは、オペレーティング・システム８３４、アプリケーション・プログラム８３５、他のプログラム・モジュール８３６、およびプログラム・データー８３７と同一であること、または異なることもできる。オペレーティング・システム８４４、アプリケーション・プログラム８４５、他のプログラム・モジュール８４６、およびプログラム・データー８４７は、ここでは、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。
【００６８】
[0074]  ユーザーは、キーボード８６２、マイクロフォン８６３、およびマウス、トラックボール、またはタッチ・パッドのようなポインティング・デバイス８６１というような入力デバイスによって、コマンドおよび情報をコンピューター８１０に入力することができる。他の入力デバイス（図示せず）には、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよび他の入力デバイスは、多くの場合、ユーザー入力インターフェース８６０を介して処理ユニット８２０に接続される。ユーザー入力インターフェース８６０は、システム・バスに結合されるが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス（ＵＳＢ）のような他のインターフェースおよびバス構造によって接続されてもよい。視覚ディスプレイ８９１または他のタイプのディスプレイ・デバイスも、ビデオ・インターフェース８９０のようなインターフェースを介して、システム・バス８２１に接続される。モニターに加えて、コンピューターは、スピーカー８９７およびプリンター８９６のような他の周辺出力デバイスも含むことができ、これらは出力周辺インターフェース８９５を介して接続することができる。
【００６９】
[0075]  コンピューター８１０は、リモート・コンピューター８８０のような１つ以上のリモート・コンピューターへの論理接続を使用して、ネットワーク接続環境 (networked environment)において動作することもできる。リモート・コンピューター８８０は、パーソナル・コンピューター、ハンドヘルド・デバイス、サーバー、ルーター、ネットワークＰＣ、ピア・デバイス、または他の一般的なネットワーク・ノードであってよく、通例、コンピューター８１０に関して先に説明したエレメントの多くまたは全部を含む。図８に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）８７１およびワイド・エリア・ネットワーク（ＷＡＮ）８７３を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境 は、事務所、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットでは極普通である。
【００７０】
[0076]  ＬＡＮネットワーキング環境において使用される場合、コンピューター８１０は、ネットワーク・インターフェースまたはアダプター８７０を介してＬＡＮ８７１に接続することができる。ＷＡＮネットワーキング環境において使用される場合、コンピューター８１０は、通例、インターネットのようなＷＡＮ８７３を介して通信を行うモデム８７２または他の手段を含む。モデム８７２は、内蔵型でも外付けでもよく、ユーザー入力インターフェース８６０または他のしかるべきメカニズムを介してシステム・バス８２１に接続することができる。ネットワーク接続環境では、コンピューター８１０に関して図示したプログラム・モジュールまたはその一部が、リモート・メモリー記憶デバイスに格納されてもよい。一例として、そして限定ではなく、図８は、リモート・アプリケーション・プログラム８８５を、リモート・コンピューター８８０上に存在するものとして示す。尚、図示したネットワーク接続は一例であり、コンピューター間に通信リンクを張る他の手段を使用してもよいことは認められよう。
【００７１】
[0077]  また、本明細書において説明した異なる実施形態を異なる方法で組み合わせることができることも注記してしかるべきである。即ち、１つ以上の実施形態の一部を１つ以上の他の実施形態の一部と組み合わせることができる。このことの全て(all of this)は、本明細書において考えられる範囲内である。
【００７２】
[0078]  例１は、マルチテナント計算システムであって、以下を含む。
[0079]  対応する変更要求を送った要求元テナントの特性を示すデーターを生成するテナント・ビヘイビアー監視システムであって、各変更要求が、要求元テナントに対応するテナント・データーに対して要求された変更を示す。
【００７３】
[0080]  複数の異なるテナントから変更要求を受ける変更スケジューリング・コンポーネントであって、変更スケジューリング・コンポーネントが、変更要求を複数の変更のセクションに分割し、要求元テナントの特性に基づいて、対応するテナント・データーに対して行われる変更のセクションをスケジューリングする。
【００７４】
[0081]  変更スケジューリング・コンポーネントによってスケジューリングされた通りに、テナント・データーに対する変更要求を行う変更要求処理システム。
[0082]  例２は、いずれかまたは全ての以前の例のマルチテナント計算システムであって、変更スケジューリング・コンポーネントが以下を含む。
【００７５】
[0083]  要求元テナントのために変更を行うときの変更要求処理システムの性能を示す性能情報に基づいて、スケジューリングのために各変更要求を複数の異なるセクションに分解するか否か判定する変更スライシング・コンポーネント。
【００７６】
[0084]  例３は、いずれかまたは全ての以前の例のマルチテナント計算システムであって、変更スケジューリング・コンポーネントが更に以下を含む。
[0085]  性能情報に基づいて、変更要求処理システムによって行われる次の変更をスケジューリングする次位変更識別コンポーネント。
【００７７】
[0086]  例４は、いずれかまたは全ての以前の例のマルチテナント計算システムであって、次位変更スライシング・コンポーネントおよび次位変更識別コンポーネントが、各変更要求を複数の異なるセクションに分解するか否か決定し、異なる要求元テナントに予期される処理能力を示すテナント公正性ポリシーに基づいて、それぞれ、行われる次の変更をスケジューリングする。
【００７８】
[0087]  例５は、いずれかまたは全ての以前の例のマルチテナント計算システムであって、次位変更スライシング・コンポーネントおよび次位変更識別コンポーネントが、各変更要求を複数の異なるセクションに分解するか否か決定し、異なる要求元テナントのための処理能力の尺度(measure)に基づいて、それぞれ、行われる次の変更をスケジューリングする。
【００７９】
[0088]  例６は、いずれかまたは全ての以前の例のマルチテナント・システムであって、テナント・ビヘイビアー監視システムが以下を含む。
[0089]  異なる要求元テナントのための処理能力の尺度を提供する１組の処理能力測定コンポーネント。
【００８０】
[0090]  例７は、いずれかまたは全ての以前の例のマルチテナント・システムであって、テナント・ビヘイビアー監視システムが以下を含む。
[0091]  要求元テナントの各々によって要求された変更の数を、処理能力の尺度として、監視し提供するトラフィック監視コンポーネント。
【００８１】
[0092]  例８は、いずれかまたは全ての以前の例のマルチテナント・システムであって、テナント・ビヘイビアー監視システムが以下を含む。
[0093]  処理能力の尺度として、変更要求を送ったときと、変更要求処理システムによって対応する変更をテナント・データーに行わせたときとの間において要求元テナントの各々によって感知されるレイテンシーを示すレイテンシー尺度を監視し提供するレイテンシー・モニター。
【００８２】
[0094]  例９は、例６のマルチテナント計算システムであって、テナント・ビヘイビアー監視システムが以下を含む。
[0095]  各要求元テナントのテナント・タイプを識別し、要求元テナントの特性の１つとして、テナント・タイプを提供するテナント・タイプ識別手段。
【００８３】
[0096]  例１０は、マルチテナント計算システムであって、以下を含む。
[0097]  複数の異なる要求元テナントから変更要求を受けるテナント変更システムであって、変更要求が、異なる要求元テナントに対応するテナント・データーに対する変更を示す。
【００８４】
[0098]  変更要求を変更のグループに分割し、変更要求の各々における変更の数に基づいて、変更要求にわたって変更処理リソースを分配するために、複数の異なる要求元テナントのために変更のグループをスケジューリングするスケジューリング・コンポーネント。
【００８５】
[0099]  例１２は、いずれかまたは全ての以前の例のマルチテナント計算システムであって、テナント変更システムが更に以下を含む。
[00100]  スケジューリング・コンポーネントによってスケジューリングされた通りに、変更のグループにおいて、テナント・データーに対して変更を行うための変更処理リソースを含む変更要求処理システム。
【００８６】
[00101]  例１２は、いずれかまたは全ての以前の例のマルチテナント計算システムであって、テナント変更システムが更に以下を含む。
[00102]  変更要求の各々における変更の数を監視するテナント・ビヘイビアー監視システム。
【００８７】
[00103]  例１３は、いずれかまたは全ての以前の例のマルチテナント計算システムであって、テナント・ビヘイビアー監視システムが以下を含む。
[00104]  変更要求を送ったときと、変更要求処理システムによって変更要求における変更を行わせたときとの間の時間を示すレイテンシーをテナント毎に監視するレイテンシー・モニター。
【００８８】
[00105]  例１４は、いずれかまたは全ての以前の例のマルチテナント計算システムであって、テナント・ビヘイビアー監視システムが以下を含む。
[00106]  各要求元テナントに対応するテナントのタイプを識別するテナント識別手段。
【００８９】
[00107]  例１６は、方法であって、以下のステップを含む。
[00108]  マルチテナント計算システムにおいて、要求元テナントによって要求された、テナント・データーに対して要求された変更を行うときのテナント変更システムの処理能力を示す処理能力メトリックを監視するステップ。
【００９０】
[00109]  要求された変更を複数の変更のセクションに分割するステップ。
[00110]  処理能力メトリックに基づいて、要求元テナント間で変更要求処理リソースを割り当てることによって、行われる変更のセクションをスケジューリングするステップ。
【００９１】
[00111]  割り当てられた変更要求処理リソースを使用して、スケジューリングされた通りに、変更のセクションの各々においてテナント・データーに対する変更を行うステップ。
【００９２】
[00112]  例１６は、いずれかまたは全ての以前の例の方法であって、変更のセクションをスケジューリングするステップが以下のステップを含む。
[00113]  比較的大きな数の変更を要求した要求元テナントに対して、比較的少数の変更を要求した要求元テナントに所与の処理能力レベルを維持するように、変更のセクションをスケジューリングするステップであって、比較的大きな数の変更が、比較的少ない数の変更に対して相対的に大きい。
【００９３】
[00114]  例１７は、いずれかまたは全ての以前の例の方法であって、変更のセクションをスケジューリングするステップが以下のステップを含む。
[00115]  第１の要求された変更からの変更の第１セクションを行うようにスケジューリングするステップであって、第１変更セクションが、第１の要求された変更において要求された変更の部分集合である。
【００９４】
[00116]  例１８は、いずれかまたは全ての以前の例の方法であって、変更のセクションをスケジューリングするステップが以下のステップを含む。
[00117]  第１の要求された変更から変更の任意の追加セクションをスケジューリングする前に、第２の要求された変更からの変更の第２セクションを行うようにスケジューリングするステップであって、変更の第２セクションが、第２の要求された変更における変更の部分集合である。
【００９５】
[00118]  例１９は、いずれかまたは全ての以前の例の方法であって、処理能力を監視するステップが以下のステップを含む。
[00119]  各要求元テナントに対応するテナントのタイプを検出するステップであって、テナントのタイプが、少なくとも、各要求元テナントが、マルチテナント計算システムへのアクセスのために支払いを行う有料テナント(paying tenant)、またはマルチテナント計算システムに対する無料アクセス(non-paying access)を有するテナントのどちらを含むか識別する、ステップ。
【００９６】
[00120]  例２０は、いずれかまたは全ての以前の例の方法であって、変更のセクションをスケジューリングするステップが以下を含む。
[00121]  テナントのタイプに基づいて、各要求元テナントが所与の範囲以内のレイテンシーを有するように、変更のセクションをスケジューリングするステップ。
【００９７】
[00122]  以上、構造的特徴および／または方法論的アクトに特定的な文言で本主題について説明したが、添付する特許請求の範囲において定められる主題は、必ずしも以上で説明した具体的な特徴やアクトには限定されないことは理解されよう。逆に、以上で説明した具体的な特徴およびアクトは、特許請求の範囲を実現する形態例として開示されたまでである。
【図１】
2017529585.tif 000003
【図２】
2017529585.tif 000004
【図３Ａ】
2017529585.tif 000005
【図３Ｂ】
2017529585.tif 000006
【図４】
2017529585.tif 000007
【図５】
2017529585.tif 000008
【図６】
2017529585.tif 000009
【図７】
2017529585.tif 000010
【図８】
2017529585.tif 000011
【国際調査報告】
2017529585.tif 000012
2017529585.tif 000013
2017529585.tif 000014