JP2017531844A - リアル・タイム・プロビジョニングのための動的更新ストリーム - Google Patents

リアル・タイム・プロビジョニングのための動的更新ストリーム Download PDF

Info

Publication number
JP2017531844A
JP2017531844A JP2017502609A JP2017502609A JP2017531844A JP 2017531844 A JP2017531844 A JP 2017531844A JP 2017502609 A JP2017502609 A JP 2017502609A JP 2017502609 A JP2017502609 A JP 2017502609A JP 2017531844 A JP2017531844 A JP 2017531844A
Authority
JP
Japan
Prior art keywords
tenant
changes
change
server
computer system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017502609A
Other languages
English (en)
Other versions
JP2017531844A5 (ja
JP6719445B2 (ja
Inventor
バンサル,ヴィプル
ゴイス,マーカス・ヴィニシウス・シルヴァ
コバーン,マーク
ガウラヴ,スラジュ
パッタビラマン,スワミナサン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017531844A publication Critical patent/JP2017531844A/ja
Publication of JP2017531844A5 publication Critical patent/JP2017531844A5/ja
Application granted granted Critical
Publication of JP6719445B2 publication Critical patent/JP6719445B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

マルチテナント・サービスにおいてテナント変更を受け取る。テナント変更はテナント毎に細分化され、個々のテナント・ストリーム・プロセッサーとの個々の更新ストリームが形成される。各テナント・ストリーム・プロセッサーは、所与のテナントに対する変更が完了するまで、そのテナントに対する変更を行う。【選択図】図2

Description

[0001] コンピューター・システムは現在広く使用されている。あるコンピューター・システムはローカル・コンピューター・システムであり、一方他のコンピューター・システムはリモート・サーバー環境において使用される。
[0002] 会社または他の組織が、コンピューター・システムのローカル(オンプレミス)処理系(implementation)とコンピューター・システムのリモート・サーバー処理系(クラウド・ベース処理系のような)との間で切り替えるのは、珍しいことではない。一例として、会社は、それらの電子メール・システム、それらの文書共有システム、またはそれらの業務システムのローカル処理系とリモート・サーバー処理系との間でときどき切り替える。業務システムのいくつかの例には、とりわけ、企業リソース計画(ERP)システム、顧客関係管理(CRM)システム、取扱商品(LOB:line-of-business)システムが含まれる。これらは、会社がローカルのオンプレミス処理系とリモート・サーバーまたはクラウド・ベース処理系との間で切り替えるタイプのコンピューター・システムのいくつかの例に過ぎない。
[0003] 同様に、組織の中には、混成処理系を有するものもある。このような処理系では、サービスの一部がコンピューター・システムのローカルのオンプレミス・コンポーネントによって実行され、他のサービスがリモート・サーバーまたはクラウド・ベース環境において実行される。混成システムでは、組織が周期的に一定のサービスをオンプレミス処理系からクラウド・ベース処理系に移動しつつ、他のサービスはオンプレミスに維持することが珍しくない。
[0004] リモート・サーバーまたはクラウド・ベース処理系、あるいは混成処理系を有する会社の中には、比較的大規模なものもある。企業の組織は、たとえば、何千人もの従業員を有する場合もある。したがって、これらのコンピューター・システムのリモート・サーバーまたはクラウド・ベース処理系は、多数の個人に対応(serve)しなければならない。コンピューター・システムに対して行われるトランザクションおよび変更の多くは、多数のユーザー・アカウントまたはユーザー・データーの変更を必然的に伴う。
[0005] 一例として、企業組織がある計算システム機能をオンプレミス処理系からクラウド・ベース処理系に移動することを望む場合、これは企業のコンピューター・システムに多くの異なる更新を行うことを必要とする可能性がある。具体的な例として、企業がその電子メール・システムを移動させている場合、これは、多数の従業員アカウントの作成を必然的に伴う可能性がある。アカウントの作成は、多くの場合、シリアルで行われ、大量の時間を要する可能性がある。加えて、多数の変更が行われる場合、これらの変更は、大量の処理およびメモリー・オーバーヘッド、ならびにリモート・サーバーまたはクラウド・ベース処理系の帯域幅を消費する可能性がある。
[0006] 多くのクラウド・ベースまたはリモート・サーバー処理系は、マルチテナント・システムでもある。即ち、これらは複数の異なるテナントにあるレベルのサービスを提供するが、テナントが複数の異なる組織であることが多い。1つのテナントが多数の変更を行うと、他のテナントによって感知される処理能力に悪影響を及ぼす可能性がある。
[0007] 以上の論述は、一般的な背景情報のために示されたに過ぎず、特許請求する主題の範囲を判断するときの補助として使用されることを意図するのではない。
[0008] テナントの変更は、マルチテナント・サービスにおいて受け入れられる。テナントの変更は、テナント毎に細分化され、個々の更新ストリームが、個々のテナント・ストリーム・プロセッサーによって形成される(establish)。各テナント・ストリーム・プロセッサーは、所与のテナントに対する変更を、このテナントに対する変更が完了するまで行う。
[0009] この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として使用されることを意図するのでもない。特許請求する主題は、背景において注記した欠点の内、任意のものを解決する実施態様にも全ての欠点を解決する実施態様にも限定されるのではない。
図1は、クラウド・ベースのマルチテナント・サービス・アーキテクチャの一例のブロック図である。 図2は、通知ストリーム・ジェネレーターの一例を更に詳細に示すブロック図である。 図3は、図1に示すアーキテクチャの動作の一例を示す流れ図である。 図4は、マルチテナント・クラウド・アーキテクチャの一例におけるマルチテナント機能(multi-tenancy)の異なるレベルを表すブロック図である。 図5は、移動体デバイスの例を示す。 図6は、移動体デバイスの例を示す。 図7は、移動体デバイスの例を示す。 図8は、計算環境の一例のブロック図である。
[0016] 図1は、クラウド・ベースのマルチテナント・サービス・アーキテクチャ100の一例のブロック図である。アーキテクチャ100は、複数の異なるテナント・システム104〜106によってアクセス可能なクラウド・ベース・マルチテナント・サービス・システム102を含む。図4に関して以下で更に詳細に説明するが、クラウド・ベース・マルチテナント・サービス・システム102は、テナント・システム104〜106を使用するテナントに対して、あるレベルのマルチテナント・サービスを提供する。実例として、テナントは、システム102によって提供されるマルチテナント・サービスが、所望のレベルにおいて、テナント毎に分けられる(separated)または分離される(isolated)ように、組織を分ける。また、図4に関して以下で更に詳細に説明するが、とりわけ、インフラストラクチャのレベル、アプリケーション・プラットフォームのレベル、またはアプリケーション・ソフトウェアのレベルで、マルチテナント・サービスを提供することができる。つまり、システム102によって提供される特定のレベルのマルチテナント機能(multi-tenancy)に応じて、特定のクライアントに対応する情報がそのレベルにおいて分けられ、他のテナントによってアクセスできないように分離される。
[0017] 一例として、システム102がサービスとしてのインフラストラクチャ(IaaS)を提供する場合、システム102のインフラストラクチャ・コンポーネントは、テナント104〜106によって共有されるが、テナント情報は他の方法で別個に維持される。システム102がサービスとしてのプラットフォーム(PaaS)を提供する場合、プラットフォーム・コンポーネントはテナント104〜106によって共有される。システム102がサービスとしてのアプリケーション・ソフトウェア(SaaS)を提供する場合、テナント104〜106にサービスするために、システム102によって共通のアプリケーションが実行される。これらの実施態様のいずれにおいても、システム102はあるレベルのマルチテナント機能を提供するので、異なるテナント104〜106に対応する情報は別個に維持される。これについては図4に関して以下で更に詳細に説明する。
[0018] 図1に示すシステム102の例は、通知ストリーム・ジェネレーター108、テナント・ストリーム・プロセッサー112〜114をその内部に含むテナント別処理システム110、テナント・レベル別リソース116、および図4に関して以下で更に詳細に論ずる種々の他のクラウド処理系コンポーネント124を含む。図1に示す例では、テナント・レベル別リソースは、テナント・データー118〜120を含み、テナント・データー118〜120は、それぞれ、各テナント・システム104〜106に対応する情報を表し、この情報は、他のテナントから別個に維持されこれらによるアクセスは不可能となっている。
[0019] テナント・システム104〜106は、実例として、クラウド・ベース・マルチテナント・サービス・システム102に対する変更に備える。例えば、テナント・システム104は、システム102において、電子メール・サービスをオンプレミス処理系からクラウド・ベース処理系に移動させているとしてもよい。この場合、テナント・システム104は、その電子メール・システム全体をオンプレミス・バージョンからシステム102に移動させるための変更に備える。他の例では、テナント・システム106が他の組織を取得したとしてもよく、したがって、多数の電子メール・アカウントをシステム102におけるそのクラウド・ベース処理系に追加することが必要となる可能性がある。更に他の例では、テナント・システム104を使用する組織が編成し直されたとしてもよい。したがって、大多数の従業員記録を変更して、彼らがもはや人事部の一部ではなく、今では販売部の一部であることを示す必要がある可能性がある。これらの例のいずれにおいても、または多種多様の他の例においても、テナントに合わせてクラウド・ベース処理系に変更すると、数量が比較的大きくなる可能性がある。しかしながら、システム102は、他のテナントにサービスする際にシステム102の処理能力に影響を及ぼさないような方法で、これらの変更を処理する。
[0020] テナント更新を行うときのシステム102の動作についての更に詳細な説明は、以下で図2および図3に関して行う。これより、理解を深めるために、端的な全体像を示す。最初に、テナント104〜106の内1つがテナント変更を求める要求をシステム102に対して行うと仮定する。テナント変更は、要求元テナントに対応するテナント・データー118〜120に対して要求される変更を示す。通知ストリーム・ジェネレーター108は、テナント別処理システム110と共に、テナント毎同期ストリームを作成する。一例では、テナント104〜106によって受け取られた変更をテナント毎セグメントに組み分ける。次いで、所与のセグメントに対応するブックマークを、テナント・ストリーム・プロセッサー112〜114の内の1つに受け渡す(hand)。テナント・ストリーム・プロセッサー112〜114は、実例として、異なるサーバーであるか、少なくとも異なるサーバー・インスタンスである。このブックマークを受け取ったテナント・ストリーム・プロセッサーは、次に、通知ストリーム・ジェネレーター108との通信リンク(同期ストリーム)を維持し、同期ストリームを通じて(over)テナント変更を入手して、必要な場合はブックマークを使用して、対応するテナント・データーに対してテナント変更を行う。同じテナント・ストリーム・プロセッサー112は、これらのテナント変更が通知ストリーム・ジェネレーター108から出尽くす(drain)まで、同じテナントに対する変更を行い続ける。次いで、変更を完了したことを通知ストリーム・ジェネレーター108に示す。テナント・ストリーム・プロセッサーが所与のテナントに対して変更を行っている間に、第2テナントが変更要求を通知ストリーム・ジェネレーター108に出した場合、ジェネレーター108は、システム110における第2テナント・ストリーム・プロセッサーと、別の同期ストリームを形成する(establish)。第2ストリーム・プロセッサー110は、これらの変更が出し尽くされるまで、第2テナントに対する変更を行い続ける。これは、各テナントが変更を行うために指定されたサーバーによるそれ自体の処理ストリーム(または同期ストリーム)を有するように、変更を要求する異なるテナント毎に続けられる。サーバーは、それ自体の作業負荷制約をサーバー・レベルで強制する。このように、任意の所与のテナントによって要求される変更の数には関係なく、他のテナントによって感知されるシステム102の処理能力は影響を受けない。
[0021] 図2は、通知ストリーム・ジェネレーター108の一例の更に詳細なブロック図である。ジェネレーター108は、実例として、変更細分化コンポーネント180、保留変更ストア(pending change store)182を含み、更に他の単位体184も含むことができる。また、図3は、ジェネレーター108が、実例として、テナント104〜106からテナント変更186を受け取り、これらをセグメント188〜190に細分化することも示す。各セグメント188〜190は異なるテナント104〜106に対する変更を表す。また、図3は、一旦テナント変更106を細分化したなら、 変更細分化コンポーネント180が、異なるセグメント188〜190に対応するブックマーク192〜194を、異なるテナント・ストリーム・プロセッサー112〜114に送ることも示す。テナント・ストリーム・プロセッサー112〜114は、ストア182から変更を入手して、次いで対応するテナントのために、対応するテナント・データー118〜120に対して変更を行う。テナント・ストリーム・プロセッサー112〜114は、ブックマーク192〜194を使用して、対応するセグメント188〜190におけるテナント変更が全て行われることを確保する。つまり、各テナント・ストリーム・プロセッサー112〜114は、1つのテナントに対する1組の変更を排他的に入手するために同期ストリームを有し、そのテナントのためだけの変更を同期ストリームによって受け取り、そのテナントに対する全ての変更が対応するセグメントから出尽くされるまで、同じテナントに対する全ての変更を行う。次いで、ブックマークを変更細分化コンポーネント180に戻し、テナント・ストリーム・プロセッサーが空いており異なるテナントに対する変更を行えることを示す。
[0022] 図3は、クラウド・ベース・システム102においてテナント・データーに対するテナント変更186を行うときにおける通知ストリーム・ジェネレーター108およびクラウド・ベース・マルチテナント・サービス・システム102の動作の一例を示す流れ図である。変更細分化コンポーネント180は、最初に、テナント変更186を1つ以上のテナント・システム104〜106から受け取る。これは、図4においてブロック200によって示されている。次いで、コンポーネント180は変更186を異なるセグメント188〜190に細分化する。セグメント188〜190は、実例として、各セグメント188〜190が同じテナントによって提出されたテナント変更の全てを含み、これらの変更のみを含むように、テナント毎のセグメントとなっている。保留中の変更をテナント毎に細分化することは、図4におけるブロック202によって示されている。
[0023] 変更細分化コンポーネント180は、次いで、同じプロセッサーが所与のテナントに対する変更の全てを処理できるように、テナント・ストリーム・プロセッサー112〜114をセグメントの各々に割り当てる。ここで示す例では、各テナント・ストリーム・プロセッサー112は別のサーバー、または少なくともサーバーの別のインスタンスである。つまり、各テナントは、その要求した変更を行う専用のサーバーまたはサーバー・インスタンスを有する。
[0024] 図3に示す例では、変更細分化コンポーネント180は、セグメント188〜190に対応する、対応ブックマーク192〜194を送ることによって、テナント・ストリーム・プロセッサー112〜114を各テナントに割り当てる。ブックマークを送ることは、図4ではブロック204によって示されている。尚、2つ以上のテナントが比較的小さいテナントである場合、これらを同じテナント・ストリーム・プロセッサー112〜114に接続してもよいことを注記しておく。この場合、テナント作業負荷は種々のテナント・ストリーム・プロセッサー112〜114間で割り当てられるが、テナントとサーバー(またはテナント・ストリーム・プロセッサー)との間には必ずしも1対1の対応がなくてもよい。テナント・ストリーム・プロセッサー間でテナントを割り当てることは、図4ではブロック206によって示されている。
[0025] しかしながら、以上で説明したように、一例では、サーバー・インスタンス毎に1つのテナント・ストリームがある(これに沿って、テナント・ストリーム・プロセッサーは、1つのテナントに対するテナント変更を排他的に受け取り、テナント変更を行う)。これはブロック208によって示されている。ストリームは、セグメントにおける全ての変更が行われるまで維持される。
[0026] 行う必要があるテナント変更をテナント・ストリーム・プロセッサーに通知することは、種々の異なる方法で行うことができる。例えば、これらの変更が保留変更ストア182における新たなセグメントに対応する場合、コンポーネント180は、新たなセグメントに対応する新たなブックマークを、変更を行うのを待っているテナント・ストリーム・プロセッサー(例えば、他のテナントまたはテナント・ストリームに未だ割り当てられていないもの)に送る。これは、ブロック210によって示されている。勿論、変更細分化コンポーネント180は、他の方法でもテナント・ストリーム・プロセッサーに保留中の変更を通知することができ、これはブロック212によって示されている。
[0027] 一旦テナント・ストリーム・プロセッサー(例えば、プロセッサー112)に、それがセグメント188〜190の内の1つ(例えば、セグメント188)からの変更を行わなければならないことが通知されたなら、対応するセグメントからテナント変更を引き出す。これは、図4ではブロック214によって示されている。このようにするとき、テナント・ストリーム・プロセッサー112は、実例として、セグメント118からの全ての変更を入手して行い終えるまで、通知ストリーム・ジェネレーター108との接続を維持する。これは、ハイパーテキスト・トランスファー・プロトコル(HTTP)ロング・ポーリングを使用して、または他の常時接続メカニズムを使用することによって行うことができる。接続の維持はブロック216によって示されている。テナント・ストリーム・プロセッサー112は、変更が対応するセグメントから出尽くされ、ブックマークがテナント・ストリーム・プロセッサー112によって解放されるまで、所与のテナントに対するテナント変更の全てを処理する。これは、図4ではブロック218によって示されている。テナント・ストリーム・プロセッサーは、他の方法でもこれらの変更を引き出して変更を行うことができ、これはブロック220によって示されている。
[0028] テナント・ストリーム・プロセッサーは、対応するセグメントから変更を引き出しつつ、所与のテナントに対して、対応するテナント・データーにおいてこれらの変更を実行する。これはブロック222によって示されている。各テナント・ストリーム・プロセッサーはサーバー・インスタンスに対応するので、テナント変更に対して帯域幅制約を強要する(enforce)のはサーバー・インスタンス自体である。例えば、サーバー・インスタンス自体が、CPU使用、メモリー使用、帯域幅使用等に対して制約を強要する。各テナント104〜106は変更を行うためにそれ自体のサーバー・インスタンスを有するので、テナント104〜106は、その対応するサーバー・インスタンス(例えば、その関連するテナント・ストリーム・プロセッサー)によって強制される使用制約を超えることができない。これは、図4ではブロック224によって示されている。このように、特定のテナント104〜106が、クラウド処理系の機能を使いすぎて(overwhelm)、他のテナントに損害を与える可能性はない。テナント・ストリーム・プロセッサー(またはサーバー・インスタンス)は同時に他のテナントからの変更を処理しようとしないので(一度に1つのテナントに対する変更を排他的に処理している)、いずれの所与のテナント104〜106の作業負荷も、クラウド・ベース処理系の他のテナントに提供される処理能力(performance)に影響を及ぼすことはない。代わりに、各テナントは、処理能力については、同じ扱いを受ける。何故なら、各テナントは、その変更を行うそれ自体のサーバー・インスタンス(またはテナント・ストリーム・プロセッサー)を有するからである。尚、テナント・ストリーム・プロセッサーは他の方法でもテナントに対する変更を実行できることに留意されたい。これはブロック226によって示されている。
[0029] また、規模調整(scaling)も容易に行うことができる。新たな機械またはサーバー・インスタンスを追加することによって、サービス・テナントに対する容量は直接そして素早く増加する。新たな機械またはサーバー・インスタンスは、変更を処理するために使用することができる、入手可能なストリーム・プロセッサーに追加される。
[0030] 各テナント・ストリーム・プロセッサー112〜114は、1組の変更を行った後に、対応するセグメントにおいてこのテナントに対する変更が他にも未だあるか否か判定する。これは、図4ではブロック228によって示されている。ある場合、処理はブロック214に戻り、テナント・ストリーム・プロセッサーは、対応するセグメントからこれらの変更を引き出し、テナント・データーに対してこれらをコミットする。
[0031] しかしながら、ブロック228において、対応するセグメントにはこのテナントに対してそれ以上変更がないと判定した場合、テナント・ストリーム・プロセッサーは、通知ストリーム・ジェネレーター108に、そのテナント変更を完了し、同じまたは異なるテナントに対する変更をコミットするために他の通知を待つことを指示する。一実施形態では、テナント・ストリーム・プロセッサー112〜114は、ブックマークを解放するまたは通知ストリーム・ジェネレーター108に戻すことによって、これを行うことができる。これは、図4の流れ図ではブロック230によって示されている。
[0032] このように、通知ストリーム・ジェネレーター108は、テナント毎に同期ストリーム(またはテナント・ストリーム)生成できることがわかる。これは、オンボーディング(onboarding)アクティビティ(新たなユーザーをクラウド・ベース・システムに追加する等)および他のアクティビティのために、サーバーの数を増やして対応する(scale out)方法を可能にする。このシステムは、別個のテナント・ストリームを処理することができるサーバーまたはサーバー・インスタンスの数によってのみ制限されるに過ぎないので、大量のテナントの必要性に応じるために規模を調整することができる。ストリームは、異なるサーバーまたはサーバー・インスタンスによって独立して実行されるので、追加のテナント・ストリームのために、必要に応じて追加のサーバーまたはサーバー・インスタンスを呼び出すことができる。これは、異なる機械にまたがって異なるテナントを広げるためのオンボーディング・アクティビティを可能にする。
[0033] 通知ストリーム・ジェネレーター108は、いつテナントが変更したかをテナント・ストリーム・プロセッサーに通知するだけで、システムが動的に規模を調整することを可能にする。通常、これは、いずれの所与の時点においても、クラウド・ベース・システムにアクセスするテナントの集合全体と比較すると、小さな1組のテナントである。これは全体的なレイテンシを低減する。何故なら、各テナント・ストリーム・プロセッサーは、変更を受け取って入手可能になるに連れて、変更を処理するからである。また、これは自動規模調整も促進する。何故なら、いずれの新たなサーバーまたはサーバー・インスタンスであっても、これらがオンラインになると直ちに、テナント変更を行うために通知ストリーム・ジェネレーター108がこれらを使用することが可能になるからである。これは、多数の個々のテナント毎のデーター・パイプに相当し、1つのテナントがシステムを使いすぎて他のテナントに処理能力不足を感知させる可能性がある1本の太いパイプにはならない。1つのサーバーまたはサーバー・インスタンスが、ボトルネックまたは障害点として作用することはない。加えて、通知ストリーム・ジェネレーター108は、テナント・ストリーム・プロセッサー112〜114に、1つ1つのオブジェクト変更を列挙せずに、変更が行われる予定であることを通知する。代わりに、テナント毎に変更をセグメントに組み分ける。これも処理能力を向上させる。
[0034] 本論述では、プロセッサーおよびサーバーについて述べた。一実施形態では、プロセッサーおよびサーバーは、別々には示されていないメモリーおよびタイミング回路が付随するコンピューター・プロセッサーを含む。これらは、これらが属しそして有効化されるシステムまたはデバイスの機能部分であり、これらのシステムにおける他のコンポーネントまたは単位体(item)の機能を行い易くする。
[0035] また、多数のユーザー・インターフェース・ディスプレイについても論じた。これらは、多種多様の異なる形態を取ることができ、多種多様の異なるユーザー作動可能な入力メカニズムをそこに配置することができる。例えば、ユーザー作動可能な入力メカニズムは、テキスト・ボックス、チェック・ボックス、アイコン、リンク、ドロップダウン・メニュー、検索ボックス等とすることができる。また、これらを多種多様の異なる方法で作動させることもできる。例えば、ポイントおよびクリック・デバイス(トラック・ボールまたはマウス等)を使用してこれらを作動させることができる。ハードウェア・ボタン、スイッチ、ジョイスティックまたはキーボード、サム・スイッチまたはサム・パッド等を使用してこれらを作動させることができる。更に、仮想キーボードまたは他の仮想アクチュエータを使用してこれらを作動させることもできる。加えて、これらが表示される画面がタッチ感応画面である場合、タッチ・ジェスチャを使用してこれらを作動させることができる。また、これらを表示するデバイスが音声認識コンポーネントを有する場合、音声コマンドを使用してこれらを作動させることができる。
[0036] また、多数のデーター・ストアについても論じた。これらは各々複数のデーター・ストアに分けられることに留意されたい。全ては、これらにアクセスするシステムに対してローカルであることができ、全てがリモートであることができ、または一部がローカルであり、他がリモートであることもできる。これらの構成の全ては、本明細書において考えられる範囲内である。
[0037] また、図は、各ブロックに帰せられる機能を有する多数のブロックを示す。尚、それよりも少ないコンポーネントによってその機能が実行されるように、それよりも少ないブロックを使用できることに留意されたい。また、もっと多くのブロックを使用して、もっと多くのコンポーネントに機能を分散することもできる。
[0038] 図4は、システム102を実現することができるマルチテナント・クラウド・アーキテクチャ124(クラウド124)の更に詳細な実施形態を示すブロック図である。図4は、他のクラウド処理系コンポーネント122(図1に示す)の一例を更に詳細に示す。
[0039] クラウド・コンピューティング(cloud computing)は、サービスを配信するシステムの物理位置や構成をエンド・ユーザーが知る必要なく、計算、ソフトウェア、データー・アクセス、およびストレージ・サービスを提供する。種々の実施形態では、クラウド・コンピューティングは、適したプロトコルを使用して、インターネットのようなワイド・エリア・ネットワークを通じてサービスを配信する。例えば、クラウド・コンピューティング・プロバイダーは、ワイド・エリア・ネットワークを通じてアプリケーションを配信し、これらにはウェブ・ブラウザーまたは任意の他の計算コンポーネントによってアクセスすることができる。アーキテクチャ100のソフトウェアまたはコンポーネント、および対応するデーターは、遠隔地にあるサーバー上に格納することができる。クラウド・コンピューティング環境における計算リソースは、リモート・データー・センターの場所に統合することができ、またはこれらを散在させることができる。クラウド・コンピューティング・インフラストラクチャは、共有データー・センターを介してサービスを配信することができるが、これらはユーザーには1つのアクセス・ポイントのように見える。つまり、本明細書において説明するコンポーネントおよび機能は、クラウド・コンピューティング・アーキテクチャを使用して、遠隔地にあるサービス・プロバイダから提供することができる。代わりに、これらを従来のサーバーから提供することもでき、あるいはクライアント・デバイス上に直接インストールすることも、または他の方法でインストールすることもできる。
[0040] この説明は、パブリック・クラウド・コンピューティングおよびプライベート・クラウド・コンピューティングの双方を含むことを意図している。クラウド・コンピューティング(パブリックおよびプライベート双方)は、実質的に継ぎ目のないリソースのプーリング(pooling)を提供し、更に基礎となるハードウェア・インフラストラクチャを管理および構成する必要性の低減にも備える。
[0041] パブリック・クラウドは、ベンダーによって管理され、通例、同じインフラストラクチャを使用して複数の消費者をサポートする。また、パブリック・クラウドは、プライベート・クラウドとは逆に、ハードウェアの管理からエンド・ユーザーを解放することができる。プライベート・クラウドは、組織自体によって管理することができ、インフラストラクチャは他の組織とは共有されないのが通例である。更に、組織は、設置および修理等のように、ある程度ハードウェアの保守も行う。
[0042] 図4は、システム102におけるコンポーネント122が、実例として、仮想化システム126、インフラストラクチャ・コンポーネント128、アプリケーション・プラットフォーム・コンポーネント130、およびアプリケーション・ソフトウェア・コンポーネント132を含むことを示す。インフラストラクチャ・コンポーネント128は、セキュリティ・コンポーネント134、ハードウェア/ソフトウェア・インフラストラクチャ136、サーバー138、負荷分散コンポーネント140、ネットワーク・コンポーネント142を含むことができ、他のコンポーネント144も含むことができる。
[0043] アプリケーション・プラットフォーム・コンポーネント130は、実行ランタイム・コンポーネント146、オペレーティング・システム・コンポーネント148、データーベース・コンポーネント150、ウェブ・サーバー・コンポーネント152を含むことができ、他のコンポーネント154も含むことができる。アプリケーション・ソフトウェア・コンポーネント132は、実例として、ユーザー・インターフェース・コンポーネント156、アプリケーション・ワークフロー158、アプリケーション・ロジック160、データーベース・システム162を含み、他の単位体164を含むことができる。
[0044] アーキテクチャ124によって実現されるマルチテナント機能のレベルに応じて、仮想化システム126は物理計算デバイス・コンポーネント122を1つ以上の仮想デバイスに電子的に分ける。これらのデバイスの各々は、計算タスクを実行するために使用し管理することができる。
[0045] マルチテナント・クラウド・コンピューティング・アーキテクチャ124は、多数の異なるモデルにしたがって、多数の異なるレベルでサービスを提供することができる。例えば、これらは、とりわけ、サービスとしてのインフラストラクチャ(IaaS)、サービスとしてのプラットフォーム(PaaS)、およびサービスとしてのソフトウェア(SaaS)を含むことができる。IaaSは最も基本的であり、それよりも高いレベルのモデル(それぞれPaaSおよびSaaS)の各々が、それよりも低いモデルの詳細を抜き取る(abstract from)。
[0046] IaaSでは、物理または仮想機械が、他のリソースと共に提供される。監視コンポーネント(supervisory component)(ハイパーバイザーと呼ばれることもある)が仮想機械を実行する。比較的多数の仮想機械を実行し、種々のテナントの必要性に応じて規模を拡大および縮小するために、複数の異なるハイパーバイザーを使用することができる。また、IaaSモデルは、要求に応じて追加のリソース(他のインフラストラクチャ・コンポーネント128等)も提供することができる。テナントがそのアプリケーションを展開するために、これらはオペレーティング・システム・イメージおよびそのアプリケーション・ソフトウェアをクラウド・インフラストラクチャ・コンポーネント128上にインストールする。そして、テナントは、オペレーティング・システムおよびアプリケーション・ソフトウェアを維持することを責務とする。
[0047] PaaSは、アプリケーション・プラットフォーム・コンポーネント130をサービスとして提供するクラウド・アーキテクチャ124を含む(involve)。アプリケーション開発者は、基礎のハードウェアおよびソフトウェア・レイヤを管理する必要なく、クラウド・プラットフォーム・コンポーネント130上で彼らのソフトウェアを開発し実行することができる。
[0048] SaaSは、アプリケーション・コンポーネント132におけるアプリケーション・ソフトウェアおよびデーターベースへのアクセスを与えるアーキテクチャ124を含む。クラウド・アーキテクチャ124は、インフラストラクチャ・コンポーネント128、およびアプリケーションを実行するプラットフォーム・コンポーネント130を管理する。また、クラウド124はアプリケーション・ソフトウェアをアプリケーション・コンポーネント132にインストールして動作させ、テナントはこのソフトウェアにアクセスするが、クラウド・インフラストラクチャ・コンポーネント128も、アプリケーションが実行するプラットフォーム・コンポーネント130も管理しない。このような実施態様では、仮想化システム126が、変化する作業負荷に応ずるために、ランタイムにおいて複数の仮想機械を提供する。負荷分散装置(load balancer)はこれらの仮想機械にわたって作業を分散する。このプロセスは、多くの場合、アプリケーションへの1つのアクセス・ポイントだけを見るテナントに対して透過的である。
[0049] マルチテナント環境では、いずれの機械も、テナント・システム104〜106を展開する1つよりも多いユーザー組織にサービス供与する(serve)ことができる。しかしながら、マルチテナント機能は、クラウド・アーキテクチャの3つのレイヤ(IaaS、PaaS、およびSaaS)の全てに適用することができる。正確なマルチテナント機能の度合いは、コア・アプリケーション(またはアプリケーション・コンポーネント132)の内どの位がテナント104〜106にわたって共有されるように設計されているかに基づくことができる。マルチテナント機能の度合いが比較的高いと、データーベース方式(database schema)を共有することが可能であり、業務ロジック(business logic)、ワークフロー、およびユーザー・インターフェース・レイヤーのカスタム化をサポートする。比較的低い度合いのマルチテナント機能では、IaaSおよびPaaSコンポーネント128および130が、それぞれ、各テナントに専用である専用仮想化コンポーネントを有するアプリケーション・コンポーネント132によって共有される。
[0050] 以上の論述は、サービスとしてのソフトウェアを提供するクラウド・ベース・マルチテナント・サービス・システム102に関して進めてきた。したがって、仮想化システム126は、各テナント104〜106に、それら自体の安全で別々の仮想計算環境をアプリケーション・ソフトウェア・レベル上で提供するために、別々の仮想機械を設ける。つまり、各テナント104〜106は、それら自体のアプリケーション(それら自体の電子メール・アプリケーション、文書管理アプリケーション、業務システム等のようなアプリケーション)に対する変更を行うことができる。図1〜図3に関して以上で説明したように行われるとき、これらは、他のテナントによって観察される(observe)処理能力に影響を及ぼすことなく、そのようにすることができる。
[0051] また、システム102のあるエレメントをクラウド内に配置することができるが、他のエレメントは配置されないことも考えられる。一例として、データーベースおよびデーター・ストアをクラウド124の外側に配置し、クラウド124を介してアクセスすることができる。他の例では、他のコンポーネントがクラウド124の外側にあることも可能である。これらがどこに位置するかには関係なく、テナント・システム104〜106におけるデバイスによって、ネットワーク300(ワイド・エリア・ネットワークまたはローカル・エリア・ネットワーク)を通じてこれらに直接アクセスすることができ、遠隔地(remote site)におけるサービスによってこれらをホストすることができ、あるいはクラウドを介してサービスとして提供し、クラウド内に存在する接続サービスによってアクセスすることができる。これらのアーキテクチャは全て、本明細書において考えられる範囲内である。
[0052] また、アーキテクチャ100またはその部分を多種多様の異なるデバイス上に配置できることにも留意されたい。これらのデバイスの一部には、サーバー、デスクトップ・コンピューター、ラップトップ・コンピューター、タブレット・コンピューター、またはパーム・トップ・コンピューター、セル・フォン、スマート・フォン、マルチメディア・プレーヤー、パーソナル・ディジタル・アシスタント等のような他の移動体デバイスが含まれる。
[0053] 図5は、本システム(またはその部分)を展開することができるユーザーまたはクライアントのハンドヘルド・デバイス16として使用することができる、ハンドヘルドまたは移動体計算デバイスの一例の簡略ブロック図である。図6および図7はハンドヘルドまたは移動体デバイスの例である。
[0054] 図5は、システム100のコンポーネントまたはテナント104〜106を実行することができる、あるいはアーキテクチャ100とインターフェースする、あるいは双方が可能なクライアント・デバイス16のコンポーネントの全体的なブロック図である。デバイス16において、ハンドヘルド・デバイスが他の計算デバイスと通信することを可能にし、ある実施形態ではスキャニングによってというように、情報を自動的に受信するためのチャネルを提供する通信リンク13が設けられている。通信リンク13の例には、赤外線ポート、シリアル/USBポート、イーサネット(登録商標)・ポートのようなケーブル・ネットワーク・ポート、および1つ以上の通信プロトコルによる通信を可能にするワイヤレス・ネットワーク・ポートが含まれる。通信プロトコルには、汎用パケット無線サービス(GPRS)、LTE、HSPA、HSPA+ならびに3Gおよび4G無線プロトコル、IXrtt、更にはショート・メッセージ・サービスが含まれる。これらは、ネットワークへのセルラ・アクセスを与えるために使用されるワイヤレス・サービス、ならびにネットワークへのローカル・ワイヤレス接続を提供するWi−Fiプロトコル、およびBluetoothプロトコルである。
[0055] 他の実施形態の下では、SDカード・インターフェース15に接続されたリムーバブル・セキュア・ディジタル(SD)カードにおいてアプリケーションまたはシステムが受け取られる。SDカード・インターフェース15および通信リンク13は、バス19に沿ってプロセッサー17(他の図において先に説明したプロセッサーまたはサーバーも具体化することができる)と通信し、バス19は、メモリー21および入力/出力(I/O)コンポーネント23、ならびにクロック25およびロケーション・システム27にも接続されている。
[0056] I/Oコンポーネント23は、一実施形態では、入力および出力動作を容易にするために設けられる。デバイス16の種々の実施形態のためのI/Oコンポーネント23は、ボタン、タッチ・センサー、多重タッチ・センサー、光またはビデオ・センサ、音声センサ、タッチ・スクリーン、近接センサ、マイクロフォン、傾きセンサ、および重力スイッチのような入力コンポーネント、ならびにディスプレイ・デバイス、スピーカー、および/またはプリンター・ポートのような出力コンポーネントを含むことができる。他のI/Oコンポーネント23も同様に使用することができる。
[0057] クロック25は、実例として、時刻および日にちを出力するリアル・タイム・クロック・コンポーネントを含む。また、実例として、プロセッサー17にタイミング機能を与えることができる。
[0058] ロケーション・システム27は、実例として、デバイス16の現在の地理的位置を出力するコンポーネントを含む。これは、例えば、全地球測位システム(GSP)受信機、LORANシステム、推測航法システム、セルラ三角測量システム、または他の測位システムを含むことができる。また、これは、例えば、所望の地図、ナビゲーション経路、および他の地理的機能を生成する地図作成ソフトウェアまたはナビゲーション・ソフトウェアも含むことができる。
[0059] メモリー21は、オペレーティング・システム29、ネットワーク設定31、アプリケーション33、アプリケーション・コンフィギュレーション設定35、データー・ストア37、通信ドライバー39、および通信コンフィギュレーション設定41を格納する。メモリー21は、全てのタイプの有形揮発性および不揮発性コンピューター読み取り可能メモリー・デバイスを含むことができる。また、これはコンピューター記憶媒体(以下で説明する)も含むことができる。メモリー21は、コンピューター読み取り可能命令を格納し、プロセッサー17によってこのコンピューター読み取り可能命令が実行されると、このプロセッサーに、命令にしたがってコンピューター実装ステップまたは機能を実行させる。同様に、デバイス16は、クライアント業務システム24を有することができ、クライアント業務システム24は種々の業務用アプリケーションを実行すること、あるいはテナント・システム104〜106の一部または全部を具体化することができる。プロセッサー17は、他のコンポーネントによって、それらの機能も同様にやり易くするために、有効化することができる。
[0060] ネットワーク設定31の例には、プロキシー情報、インターネット接続情報、およびマッピングのようなものが含まれる。アプリケーション・コンフィギュレーション設定35は、特定の企業またはユーザーに合わせてアプリケーションを改造する(tailor)設定を含む。通信コンフィギュレーション設定41は、他のコンピューターと通信するためのパラメーターを提供し、GPRSパラメーター、SMSパラメーター、接続ユーザー名およびパスワードのような項目を含む。
[0061] アプリケーション33は、デバイス16上に既に格納されているアプリケーション、または使用中にインストールされたアプリケーションであることが可能であるが、これらはオペレーティング・システム29の一部であること、またはデバイス16の外部でホストされることも同様に可能である。
[0062] 図6は、デバイス16がタブレット・コンピューター600である一例を示す。図6において、コンピューター600は、ユーザー・インターフェース表示画面602と共に示されている。画面602は、タッチ・スクリーン(したがって、ユーザーの指からのタッチ・ジェスチャを使用してアプリケーションと対話処理することができる)、あるいはペンまたはスタイラスからの入力を受け取るペン対応インターフェースとすることができる。また、これは画面上の仮想キーボードを使用することもできる。勿論、例えば、ワイヤレス・リンクまたはUSBポートのような適した取り付けメカニズムを介して、これをキーボードまたは他のユーザー入力デバイスに取り付けてもよい。また、実例として、コンピューター600は音声入力を受け取ることもできる。
[0063] デバイス16の更に他の例も同様に使用することができる。これらは、フィーチャー・フォン、スマート・フォン、または移動体電話機を含むことができる。この電話機は、電話番号を入力する(dialing)ための1組のキーパッド、アプリケーション画像、アイコン、ウェブ・ページ、写真、およびビデオを含む画像を表示することができるディスプレイ、ならびにディスプレイ上に示される項目を選択するための制御ボタンを含むことができる。この電話機は、汎用パケット無線サービス(GPRS)およびIXrtt、ならびにショート・メッセージ・サービス(SMS)信号のような、セルラ・フォン信号を受信するためのアンテナを含むことができる。ある実施形態では、電話機はSDカードを受け入れるセキュア・デジタル(SD)カード・スロットを含むこともできる。
[0064] また、移動体デバイスは、パーソナル・ディジタル・アシスタント(PDA)、またはマルチメディア・プレーヤー、またはタブレット計算デバイス等(以後PDAと呼ぶ)であることも可能である。PDAは、誘導性画面を含むことができる。誘導性画面は、スタイラスがこの画面の上方に位置付けられると、スタイラス(またはユーザーの指のような他のポインター)の位置を検知する。これによって、ユーザーは画面上で項目を選択する、強調する、移動させることができ、更に描画および記入することができる。また、PDAは多数のユーザー入力キーまたはボタンも含むことができ、これらは、ディスプレイに接触することなく、ディスプレイ上に表示されるメニュー選択肢または他の表示選択肢全域をユーザーがスクロールすること、更にユーザーがアプリケーションを変更することまたはユーザー入力機能を選択することを可能にする。PDAは、他のコンピューターとのワイヤレス通信を可能にする内部アンテナおよび赤外線送信機/受信機、ならびに他の計算デバイスへのハードウェア接続を可能にする接続ポートを含むことができる。このようなハードウェア接続は、通例、シリアルまたはUSBポートを介して他のコンピューターに接続するクレードルを介して行われる。したがって、これらの接続はネットワーク外(non-network)接続である。
[0065] 図7は、スマート・フォン71を示す。スマート・フォン71は、アイコンまたはタイルあるいは他のユーザー入力メカニズム75を表示するタッチ感応ディスプレイ73を有する。メカニズム75は、アプリケーションを実行する、通話する、データー転送動作を実行する等のためにユーザーによって使用することができる。一般に、スマート・フォン71は、移動体オペレーティング・システム上に構築され、フィーチャー・フォンよりも進んだ計算能力および接続機能(connectivity)を提供する。
[0066] 尚、デバイス16の他の形態も可能であることを注記しておく。
[0067] 図8は、アーキテクチャ100、またはその一部(例えば)を展開することができる計算環境の一例である。図8を参照すると、いくつかの実施形態を実現するためのシステム例は、コンピューター810の形態とした汎用計算デバイスを含む。コンピューター810のコンポーネントは、処理ユニット820(以上で論じたプロセッサーまたはサーバーを構成することができる)、システム・メモリー830、およびシステム・バス821を含むことができるが、これらに限定されるのではない。システム・バス821は、システム・メモリーから処理ユニット820までを含む種々のシステム・コンポーネントを結合する。システム・バス821は、メモリー・バスまたはメモリー・コントローラ、周辺バス、および種々のバス・アーキテクチャの内任意のものを使用するローカル・バスを含む、様々なタイプのバス構造の内任意のものとすることができる。一例として、そして限定ではなく、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ電子規格連合(VESA)ローカル・バス、およびMezzanineバスとしても知られる周辺コンポーネント相互接続(PCI)バスを含む。図1に関して説明したメモリーおよびプログラムは、図8の対応する部分に展開することができる。
[0068] コンピューター810は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター810によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性および不揮発性双方の媒体、ならびにリムーバブルおよび非リムーバブル媒体を含む。一例として、そして限定ではなく、コンピューター読み取り可能媒体は、コンピューター記憶媒体および通信媒体を含むことができる。コンピューター記憶媒体は、変調データー信号または搬送波とは異なり、これを含まない。これは、揮発性および不揮発性双方の、リムーバブルおよび非リムーバブル媒体を含むハードウェア記憶媒体を含み、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、または他のデーターというような情報の格納のための任意の方法または技術で実現される。コンピューター記憶媒体は、RAM、ROM、EEPROM、フラッシュ・メモリーまたは他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、または所望の情報を格納するために使用することができそしてコンピューター810によってアクセスすることができる他のあらゆる媒体を含むが、これらに限定されるのではない。通信媒体は、通例、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターを移送メカニズム内に具体化し、任意の情報配信媒体を含む。「変調データー信号」という用語は、その信号内に情報をエンコードするような方法で、その特性の1つ以上が設定または変更された信号を意味する。一例として、そして限定ではなく、通信媒体は、有線ネットワークまたは直接有線接続というような有線媒体と、音響、RF、赤外線、および他のワイヤレス媒体というようなワイヤレス媒体とを含む。以上の内任意のものの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
[0069] システム・メモリー830は、リード・オンリー・メモリー(ROM)831およびランダム・アクセス・メモリー(RAM)832のような、揮発性および/または不揮発性メモリーの形態としたコンピューター記憶媒体を含む。基本入力/出力システム833(BIOS)は、起動中におけるように、コンピューター810内部にあるエレメント間で情報を転送するのに役立つ基本的なルーチンを含み、通例ROM831に格納される。RAM832は、通例、処理ユニット820によって直ちにアクセス可能なデーターおよび/またはプログラム・モジュール、および/または現在処理ユニット820によって処理されているデーターおよび/またはプログラム・モジュールを含む。一例として、そして限定ではなく、図8は、オペレーティング・システム834、アプリケーション・プログラム835、他のプログラム・モジュール836およびプログラム・データー837を示す。
[0070] また、コンピューター810は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体も含むことができる。一例としてに過ぎないが、図8は、非リムーバブル、不揮発性磁気媒体に対して読み取りまたは書き込みを行うハード・ディスク・ドライブ841、およびCD−ROMまたは他の光媒体のようなリムーバブル、不揮発性光ディスク856に対して読み取りまたは書き込みを行う光ディスク・ドライブ855を示す。この動作環境例において使用することができる他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体には、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれるが、これらに限定されるのではない。ハード・ディスク・ドライブ841は、通例、インターフェース840のような非リムーバブル・メモリー・インターフェースを介してシステム・バス821に接続され、光ディスク・ドライブ855は、通例、インターフェース850のようなリムーバブル・メモリー・インターフェースによってシステム・バス821に接続される。
[0071] 代わりに、または加えて、本明細書において説明した機能は、少なくとも部分的に、1つ以上のハードウェア・ロジック・コンポーネントによって実行することもできる。例えば、そして限定ではなく、使用することができる例示的なタイプのハードウェア・ロジック・コンポーネントには、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定プログラム集積回路(ASIC)、特定プログラム標準製品(ASSP)、システム・オン・チップ・システム(SOC)、複合プログラマブル・ロジック・デバイス(CPLD)等を含むことができる。
[0072] 以上で論じ図8に示すこれらのドライブおよびそれに関連するコンピューター記憶媒体は、コンピューター810のためのコンピューター読み取り可能命令、データー構造、プログラム・モジュール、および他のデーターの格納を行う。図8では、例えば、ハード・ディスク・ドライブ841は、オペレーティング・システム844、アプリケーション・プログラム845、他のプログラム・モジュール846、およびプログラム・データー847を格納することが示される。尚、これらのコンポーネントは、オペレーティング・システム834、アプリケーション・プログラム835、他のプログラム・モジュール836、およびプログラム・データー837と同一であること、または異なることもできる。オペレーティング・システム844、アプリケーション・プログラム845、他のプログラム・モジュール846、およびプログラム・データー847は、ここでは、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。
[0073] ユーザーは、キーボード862、マイクロフォン863、およびマウス、トラックボール、またはタッチ・パッドのようなポインティング・デバイス861というような入力デバイスによって、コマンドおよび情報をコンピューター810に入力することができる。他の入力デバイス(図示せず)には、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナー等を含むことができる。これらおよび他の入力デバイスは、多くの場合、ユーザー入力インターフェース860を介して処理ユニット820に接続される。ユーザー入力インターフェース860は、システム・バスに結合されるが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)のような他のインターフェースおよびバス構造によって接続されてもよい。視覚ディスプレイ891または他のタイプのディスプレイ・デバイスも、ビデオ・インターフェース890のようなインターフェースを介して、システム・バス821に接続される。モニターに加えて、コンピューターは、スピーカー897およびプリンター896のような他の周辺出力デバイスも含むことができ、これらは出力周辺インターフェース895を介して接続することができる。
[0074] コンピューター810は、リモート・コンピューター880のような1つ以上のリモート・コンピューターへの論理接続を使用して、ネットワーク接続環境 (networked environment)において動作することもできる。リモート・コンピューター880は、パーソナル・コンピューター、ハンドヘルド・デバイス、サーバー、ルーター、ネットワークPC、ピア・デバイス、または他の一般的なネットワーク・ノードであってよく、通例、コンピューター810に関して先に説明したエレメントの多くまたは全部を含む。図8に示す論理接続は、ローカル・エリア・ネットワーク(LAN)871およびワイド・エリア・ネットワーク(WAN)873を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットでは極普通である。
[0075] LANネットワーキング環境において使用される場合、コンピューター810は、ネットワーク・インターフェースまたはアダプター870を介してLAN871に接続することができる。WANネットワーキング環境において使用される場合、コンピューター810は、通例、インターネットのようなWAN873を介して通信を行うモデム872または他の手段を含む。モデム872は、内蔵型でも外付けでもよく、ユーザー入力インターフェース860または他のしかるべきメカニズムを介してシステム・バス821に接続することができる。ネットワーク接続環境では、コンピューター810に関して図示したプログラム・モジュールまたはその一部が、リモート・メモリー記憶デバイスに格納されてもよい。一例として、そして限定ではなく、図8は、リモート・アプリケーション・プログラム885を、リモート・コンピューター880上に存在するものとして示す。尚、図示したネットワーク接続は一例であり、コンピューター間に通信リンクを張る他の手段を使用してもよいことは認められよう。
[0076] また、本明細書において説明した異なる実施形態を異なる方法で組み合わせることができることも注記してしかるべきである。即ち、1つ以上の実施形態の一部を1つ以上の他の実施形態の一部と組み合わせることができる。このことの全て(all of this)は、本明細書において考えられる範囲内である。
[0077] 例1は、コンピューター・システムであって、以下を含む。
[0078] マルチテナント・システムにおける複数のサーバー・インスタンスであって、サーバー・インスタンスが、複数の異なるテナントにサービスし、各テナントが異なる組織に対応し対応するテナント・データーを有し、マルチテナント・システムにおけるサーバー・インスタンスが各テナントに対応するテナント・データーを他のテナントから分離する。
[0079] 複数の異なる要求元テナントの各々から1組の変更要求を受ける通知ストリーム・ジェネレーターであって、各組の変更要求が、要求元テナントに対応するテナント・データーに対する変更を示し、通知ストリーム・ジェネレーターが、要求元テナントから受けた各組の変更要求について異なるサーバー・インスタンスに通知し、通知を受けたサーバー・インスタンスが、通知を受けた1組の変更要求における全ての変更を行い終えるまで、各通知を受けたサーバー・インスタンスが通知ストリーム・ジェネレーターとの接続を維持し、その後この接続を解放する。
[0080] 例2は、任意のまたは全ての以前の例のコンピューター・システムであって、マルチテナント・システムがクラウド・ベース・システムである。
[0081] 例3は、任意のまたは全ての以前の例のコンピューター・システムであって、通知ストリーム・ジェネレーターが以下を含む。
[0082] 複数組の変更要求をテナント毎のセグメントに細分化する変更細分化コンポーネント。
[0083] 例4は、任意のまたは全ての以前の例のコンピューター・システムであって、通知ストリーム・ジェネレーターが以下を含む。
[0084] 保留変更ストアであって、変更細分化コンポーネントが、複数組の変更要求を、保留変更ストアにおけるテナント毎のセグメントに細分化する。
[0085] 例5は、任意のまたは全ての以前の例のコンピューター・システムであって、通知を受けたサーバー・インスタンスの各々が、通知された1組の変更要求に対応する所与のテナント毎セグメントから全ての変更が引き出され終えるまで、通知ストリーム・ジェネレーターとの接続を維持し、所与のテナント毎のセグメントから変更を引き出す。
[0086] 例6は、任意のまたは全ての以前の例のコンピューター・システムであって、 通知ストリーム・ジェネレーターが、保留変更ストアにおけるテナント毎のセグメントに対応するブックマークを各所与のサーバー・インスタンスに与えることによって、所与のサーバー・インスタンスに通知する。
[0087] 例7は、任意のまたは全ての以前の例のコンピューター・システムであって、所与のサーバー・インスタンスが、変更要求を引き出してこの変更要求行うときに、個々のサーバー・インスタンス毎に、リソース使用制約を強要する。
[0088] 例8は、任意のまたは全ての以前の例のコンピューター・システムであって、追加の要求元テナントから受けた変更要求の追加の1組毎に、通知ストリーム・ジェネレーターが、追加の1組の変更要求を処理することを、追加のサーバー・インスタンスに通知する。
[0089] 例9は、任意のまたは全ての以前の例のコンピューター・システムであって、サーバー・インスタンスの各々が以下を含む。
[0090] 別個の物理サーバー上に実装されたサーバー・インスタンス。
[0091] 例10は、以下を含むコンピューター・システムである。
[0092] 複数の異なるテナントにサービス供与し、異なるテナントの各々毎に別個の分離されたテナント・データーを維持するマルチテナント・システムであって、このマルチテナント・システムが以下を含む。
[0093] テナント・データーにおいてテナント変更を処理する複数の異なるサーバー。
[0094] 対応する要求元テナントからの複数組のテナント変更を受け取り、対応する1組のテナント変更を処理するために、複数の異なるサーバーから1つのサーバーを各要求元テナントに割り当てる通知ストリーム・ジェネレーターであって、サーバーが、通知ストリーム・ジェネレーターが他のテナントに対するテナント変更を処理するためにサーバーを割り当てる前に、当該サーバーが割り当てられた対応するテナントに対する1組のテナント変更における全てのテナント変更を処理する。
[0095] 例11は、任意のまたは全ての以前の例のコンピューター・システムであって、複数の異なるサーバーが、複数の異なるサーバー・インスタンスを含む。
[0096] 例12は、任意のまたは全ての以前の例のコンピューター・システムであって、通知ストリーム・ジェネレーターが以下を含む。
[0097] 複数組の変更要求をセグメントに細分化する変更細分化コンポーネントであって、各セグメントが1つの要求元テナントに対応する。
[0098] 例13は、任意のまたは全ての以前の例のコンピューター・システムであって、要求元テナントに割り当てられたサーバーが、要求元テナントに対応するセグメントからテナント変更を引き出し、要求元テナントに対応するテナント・データーにおいてテナント変更を行い、セグメントからのテナント変更の全てが、要求元テナントに対応するテナント・データーに対して行われたときに、通知ストリーム・ジェネレーターに通知する。
[0099] 例14は、任意のまたは全ての以前の例のコンピューター・システムであって、更に以下を含む。
[00100] 複数組のテナント変更を格納する保留変更ストア。
[00101] 例15は、任意のまたは全ての以前の例のコンピューター・システムにおいて、変更細分化コンポーネントが、複数組のテナント変更を保留変更ストアにおいて細分化する。
[00102] 例16は、任意のまたは全ての以前の例のコンピューター・システムにおいて、マルチテナント・システムがクラウド・コンピューティング・アーキテクチャにおいて実現される。
[00103] 例17は、方法であって、以下のステップを含む。
[00104] 第1テナントから、マルチテナント・システムにおける第1テナントに対応する第1テナント・データーに対して要求された変更を示す第1組のテナント変更を受け取るステップ。
[00105] 第2テナントから、マルチテナント・システムにおける第2テナントに対応する第2テナント・データーに対して要求された変更を示す第2組のテナント変更を受け取るステップ。
[00106] 第1組のテナント変更のマルチテナント・システムにおける第1サーバーへの伝達のために第1排他的同期ストリームを形成するステップであって、第1サーバーが第1組のテナント変更における要求された変更の全てを行うまで、排他的同期ストリームが、第1組のテナント変更以外の他の組のテナント変更を伝達する同期ストリームを除外する。
[00107] 第2組のテナント変更のマルチテナント・システムにおける第2サーバーへの伝達のために第2排他的同期ストリームを形成するステップであって、第2サーバーが第2組のテナント変更における要求された変更の全てを行うまで、排他的同期ストリームが、第2組のテナント変更以外の、他の組のテナント変更を伝達する同期ストリームを除外する。
[00108] 例18は、任意のまたは全ての以前の例の方法であって、更に以下のステップを含む。
[00109] 通知ストリーム・ジェネレーターによって、第1セグメントにおける第1組のテナント変更を保留変更データー・ストアに格納するステップであって、第1セグメントが第1テナントのみに対するテナント変更を含む。
[00110] 通知ストリーム・ジェネレーターによって、第2セグメントにおける第2組のテナント変更を保留変更データー・ストアに格納するステップであって、第2セグメントが第2テナントのみに対するテナント変更を含む。
[00111] 例19は、任意のまたは全ての以前の例の方法において、第1排他的同期ストリームを形成するステップが以下のステップを含む。
[00112] 第1組のテナント変更によって示される、第1テナントから受けた変更要求(requested changes)の全てを第1サーバーが行うまで、第1サーバーと通知ストリーム・ジェネレーターとの間に第1接続を維持し、その後、他のテナントに対する追加組のテナント変更を第1サーバーに通知できるように、第1サーバーを第1接続から解放するステップ。
[00113] 例20は、任意のまたは全ての以前の例の方法において、第2排他的同期ストリームを形成するステップが以下のステップを含む。
[00114] 第2組のテナント変更によって示される、第2テナントから受けた変更要求(requested changes)の全てを第2サーバーが行うまで、第2サーバーと通知ストリーム・ジェネレーターとの間に第2接続を維持し、その後、他のテナントに対する追加組のテナント変更を第2サーバーに通知できるように、第2サーバーを第2接続から解放するステップ。
[00115] 以上、構造的特徴および/または方法論的アクトに特定的な文言で本主題について説明したが、添付する特許請求の範囲において定められる主題は、必ずしも以上で説明した具体的な特徴やアクトには限定されないことは理解されよう。逆に、以上で説明した具体的な特徴およびアクトは、特許請求の範囲を実現する形態例として開示されたまでである。

Claims (15)

  1. コンピューター・システムであって、
    マルチテナント・サービスにおける複数のサーバー・インスタンスであって、前記サーバー・インスタンスが、複数の異なるテナントにサービスし、各テナントが異なる組織に対応し、かつ対応するテナント・データーを有し、マルチテナント・サービスにおける前記サーバー・インスタンスが、各テナントに対応するテナント・データーを他のテナントから分離する、複数のサーバー・インスタンスと、
    複数の異なる要求元テナントの各々から1組の変更要求を受ける通知ストリーム・ジェネレーターであって、各組の変更要求が、前記要求元テナントに対応するテナント・データーに対する変更を示し、前記通知ストリーム・ジェネレーターが、前記要求元テナントから受けた各組の変更要求毎に、異なるサーバー・インスタンスに通知し、前記通知を受けたサーバー・インスタンスが、通知を受けた1組の変更要求における全ての変更を行い終えるまで、各通知を受けたサーバー・インスタンスが前記通知ストリーム・ジェネレーターとの接続を維持し、その後前記接続を解放する、通知ストリーム・ジェネレーターと、
    を含む、システム。
  2. 請求項1記載のコンピューター・システムにおいて、前記マルチテナント・システムがクラウド・ベース・システムである、システム。
  3. 請求項1記載のコンピューター・システムにおいて、前記通知ストリーム・ジェネレーターが、
    複数組の前記変更要求をテナント毎のセグメントに細分化する変更細分化コンポーネントを含む、コンピューター・システム。
  4. 請求項3記載のコンピューター・システムにおいて、前記通知ストリーム・ジェネレーターが、
    保留変更ストアを含み、前記変更細分化コンポーネントが、前記複数組の変更要求を、前記保留変更ストアにおけるテナント毎のセグメントに細分化する、コンピューター・システム。
  5. 請求項4記載のコンピューター・システムにおいて、前記通知を受けたサーバー・インスタンスの各々が、通知された1組の変更要求に対応する所与のテナント毎セグメントから全ての変更が引き出され終えるまで、前記通知ストリーム・ジェネレーターとの接続を維持し、前記所与のテナント毎のセグメントから前記変更を引き出す、コンピューター・システム。
  6. 請求項5記載のコンピューター・システムにおいて、前記通知ストリーム・ジェネレーターが、前記保留変更ストアにおけるテナント毎のセグメントに対応するブックマークを各所与のサーバー・インスタンスに与えることによって、前記所与のサーバー・インスタンスに通知する、コンピューター・システム。
  7. 請求項6記載のコンピューター・システムにおいて、前記所与のサーバー・インスタンスが、前記変更要求を引き出して前記変更要求を行うときに、個々のサーバー・インスタンス毎に、リソース使用制約を強要する、コンピューター・システム。
  8. 請求項7記載のコンピューター・システムにおいて、追加の要求元テナントから受けた変更要求の追加の1組毎に、前記通知ストリーム・ジェネレーターが、前記追加の1組の変更要求を処理することを、追加のサーバー・インスタンスに通知する、コンピューター・システム。
  9. 請求項8記載のコンピューター・システムにおいて、前記サーバー・インスタンスの各々が、別個の物理サーバー上に実装されたサーバー・インスタンスを含む、コンピューター・システム。
  10. コンピューター・システムであって、
    複数の異なるテナントにサービス供与し、前記異なるテナントの各々毎に、別個の分離されたテナント・データーを維持するマルチテナント・システムを含み、
    前記マルチテナント・システムが、
    テナント・データーにおいてテナント変更を処理する複数の異なるサーバーと、
    対応する要求元テナントからの複数組のテナント変更を受け取り、前記対応する1組のテナント変更を処理するために、前記複数の異なるサーバーから1つのサーバーを各要求元テナントに割り当てる通知ストリーム・ジェネレーターであって、前記サーバーが、前記通知ストリーム・ジェネレーターが他のテナントに対するテナント変更を処理するために前記サーバーを割り当てる前に、当該サーバーが割り当てられた対応するテナントに対する前記1組のテナント変更における全てのテナント変更を処理する、通知ストリーム・ジェネレーターと、
    を含む、コンピューター・システム。
  11. 請求項10記載のコンピューター・システムにおいて、前記複数の異なるサーバーが、複数の異なるサーバー・インスタンスを含む、コンピューター・システム。
  12. 請求項10記載のコンピューター・システムにおいて、前記通知ストリーム・ジェネレーターが、
    複数組の前記変更要求をセグメントに細分化する変更細分化コンポーネントを含み、各セグメントが1つの要求元テナントに対応する、コンピューター・システム。
  13. 請求項12記載のコンピューター・システムにおいて、前記要求元テナントに割り当てられた前記サーバーが、前記要求元テナントに対応する前記セグメントから前記テナント変更を引き出し、前記要求元テナントに対応する前記テナント・データーにおいて前記テナント変更を行い、前記セグメントからの前記テナント変更の全てが、前記要求元テナントに対応する前記テナント・データーに対して行われたときに、前記通知ストリーム・ジェネレーターに通知する、コンピューター・システム。
  14. 請求項12記載のコンピューター・システムであって、更に、
    前記複数組のテナント変更を格納する保留変更ストアを含み、前記変更細分化コンポーネントが、前記複数組のテナント変更を前記保留変更ストアにおいて細分化する、コンピューター・システム。
  15. 方法であって、
    マルチテナント・システムにおける第1テナントに対応する第1テナント・データーに対して要求された変更を示す第1組のテナント変更を、前記第1テナントから受け取るステップと、
    前記マルチテナント・システムにおける第2テナントに対応する第2テナント・データーに対して要求された変更を示す第2組のテナント変更を、前記第2テナントから受け取るステップと、
    前記第1組のテナント変更の前記マルチテナント・システムにおける第1サーバーへの伝達のために第1排他的同期ストリームを形成するステップであって、前記第1サーバーが前記第1組のテナント変更における前記要求された変更の全てを行うまで、前記排他的同期ストリームが、前記第1組のテナント変更以外の他の組のテナント変更を伝達する同期ストリームを除外する、ステップと、
    前記第2組のテナント変更の前記マルチテナント・システムにおける第2サーバーへの伝達のために第2排他的同期ストリームを形成するステップであって、前記第2サーバーが前記第2組のテナント変更における前記要求された変更の全てを行うまで、前記第2排他的同期ストリームが、前記第2組のテナント変更以外の、他の組のテナント変更を伝達する同期ストリームを除外する、ステップと、
    を含む、方法。
JP2017502609A 2014-07-16 2015-07-13 リアル・タイム・プロビジョニングのための動的更新ストリーム Active JP6719445B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/332,509 US9438673B2 (en) 2014-07-16 2014-07-16 Dynamic update streams for real time provisioning
US14/332,509 2014-07-16
PCT/US2015/040084 WO2016010873A1 (en) 2014-07-16 2015-07-13 Dynamic update streams for real time provisioning

Publications (3)

Publication Number Publication Date
JP2017531844A true JP2017531844A (ja) 2017-10-26
JP2017531844A5 JP2017531844A5 (ja) 2018-09-20
JP6719445B2 JP6719445B2 (ja) 2020-07-08

Family

ID=53758541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017502609A Active JP6719445B2 (ja) 2014-07-16 2015-07-13 リアル・タイム・プロビジョニングのための動的更新ストリーム

Country Status (6)

Country Link
US (1) US9438673B2 (ja)
EP (1) EP3170077B1 (ja)
JP (1) JP6719445B2 (ja)
CN (1) CN106537346B (ja)
RU (1) RU2017100908A (ja)
WO (1) WO2016010873A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104284297B (zh) * 2013-07-11 2018-12-25 华为终端有限公司 一种资源迁移的方法、装置
US10846115B1 (en) * 2015-08-10 2020-11-24 Amazon Technologies, Inc. Techniques for managing virtual instance data in multitenant environments
US10298649B2 (en) 2017-02-15 2019-05-21 Microsoft Technology Licensing, Llc Guaranteeing stream exclusivity in a multi-tenant environment
US11258775B2 (en) * 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
US11868321B2 (en) 2018-06-12 2024-01-09 Salesforce, Inc. Cryptographically secure multi-tenant data exchange platform
US11080247B2 (en) * 2018-09-19 2021-08-03 Salesforce.Com, Inc. Field-based peer permissions in a blockchain network
US11100091B2 (en) * 2018-09-19 2021-08-24 Salesforce.Com, Inc. Lightweight node in a multi-tenant blockchain network
US11809409B2 (en) 2018-09-19 2023-11-07 Salesforce, Inc. Multi-tenant distributed ledger interfaces
US11768835B2 (en) * 2020-01-31 2023-09-26 Salesforce, Inc. Merging multiple unsynchronized streams of related events and multi-tenant support

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014504409A (ja) * 2010-12-15 2014-02-20 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックス
JP2014106728A (ja) * 2012-11-27 2014-06-09 Canon Marketing Japan Inc マルチテナント型サービスシステム、情報処理装置、制御方法、及びプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122055B2 (en) 2007-04-26 2012-02-21 Microsoft Corporation Hosted multi-tenant application with per-tenant unshared private databases
CN101620609B (zh) * 2008-06-30 2012-03-21 国际商业机器公司 多租户数据存储和访问方法和装置
US8473469B1 (en) 2008-08-25 2013-06-25 Salesforce.Com, Inc. Techniques for implementing batch processing in a multi-tenant on-demand database system
CN102170457A (zh) 2010-02-26 2011-08-31 国际商业机器公司 向应用的多租户提供服务的方法和装置
US8972953B2 (en) * 2010-04-16 2015-03-03 Salesforce.Com, Inc. Methods and systems for internally debugging code in an on-demand service environment
US8676979B2 (en) 2010-05-18 2014-03-18 Salesforce.Com, Inc. Methods and systems for efficient API integrated login in a multi-tenant database environment
CN102567436B (zh) * 2010-12-22 2017-04-12 塔塔咨询服务有限公司 多租户系统
US8688640B2 (en) 2011-07-26 2014-04-01 Salesforce.Com, Inc. System, method and computer program product for distributed execution of related reports
CN102333115A (zh) * 2011-09-01 2012-01-25 杭州湾云计算技术有限公司 一种将已有Web应用转化为SaaS多租户应用的方法和装置
US9244951B2 (en) * 2012-03-08 2016-01-26 International Business Machines Corporation Managing tenant-specific data sets in a multi-tenant environment
US8775599B2 (en) 2012-06-19 2014-07-08 Microsoft Corporation Multi-tenant middleware cloud service technology
US8769701B2 (en) * 2012-09-05 2014-07-01 International Business Machines Corporation Single tenant audit view in a multi-tenant environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014504409A (ja) * 2010-12-15 2014-02-20 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックス
JP2014106728A (ja) * 2012-11-27 2014-06-09 Canon Marketing Japan Inc マルチテナント型サービスシステム、情報処理装置、制御方法、及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
田中剛、外2名: "クラウドコンピューティング基盤のための統合運用管理技術の提案", 電子情報通信学会技術研究報告, vol. 111, no. 255, JPN6019047099, 14 October 2011 (2011-10-14), pages 91 - 96, ISSN: 0004167336 *

Also Published As

Publication number Publication date
US20160021182A1 (en) 2016-01-21
CN106537346A (zh) 2017-03-22
WO2016010873A1 (en) 2016-01-21
CN106537346B (zh) 2020-02-21
JP6719445B2 (ja) 2020-07-08
EP3170077A1 (en) 2017-05-24
US9438673B2 (en) 2016-09-06
RU2017100908A (ru) 2018-07-16
EP3170077B1 (en) 2019-08-21

Similar Documents

Publication Publication Date Title
US10379818B2 (en) Multi-tenant, tenant-specific applications
JP6719445B2 (ja) リアル・タイム・プロビジョニングのための動的更新ストリーム
CN110678844B (zh) 基于租户排名来控制租户服务
EP3170079B1 (en) Processing changes in a multi-tenant system
US20150331857A1 (en) Database migration
JP2018523189A (ja) コンテンツと人の自動関係付け
CN106302571B (zh) 用于对服务器连接进行维护和高速缓存的系统和方法
KR20170016362A (ko) 컴파일 동안 표시 메타데이터를 브라우저 렌더링 가능 포맷으로 변환하는 기법
CN110462660B (zh) 控制计算系统以生成用于日历共享的预先接受的缓存
US11777798B2 (en) Cloud-mastered settings
EP3314408B1 (en) Computing system and computer-implemented method for performing management operations on different versions of a service
CN112005217B (zh) 服务于请求的独立线程api调用
US20160378574A1 (en) Integration and synchronization using a virtual data provider
EP3146483A1 (en) Group selection initiated from a single item
US20140289199A1 (en) Extensible and queryable strong types

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190823

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200330

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200518

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200616

R150 Certificate of patent or registration of utility model

Ref document number: 6719445

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250