JP2015513153A - マルチテナント環境におけるテナント固有のデータ・セットを管理するための、コンピュータで実施される方法、コンピュータ・プログラム製品、およびシステム - Google Patents

マルチテナント環境におけるテナント固有のデータ・セットを管理するための、コンピュータで実施される方法、コンピュータ・プログラム製品、およびシステム Download PDF

Info

Publication number
JP2015513153A
JP2015513153A JP2014560471A JP2014560471A JP2015513153A JP 2015513153 A JP2015513153 A JP 2015513153A JP 2014560471 A JP2014560471 A JP 2014560471A JP 2014560471 A JP2014560471 A JP 2014560471A JP 2015513153 A JP2015513153 A JP 2015513153A
Authority
JP
Japan
Prior art keywords
tenant
data
data store
shared
physical
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
JP2014560471A
Other languages
English (en)
Other versions
JP6188732B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2015513153A publication Critical patent/JP2015513153A/ja
Application granted granted Critical
Publication of JP6188732B2 publication Critical patent/JP6188732B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】マルチテナント・システムでテナント固有のデータ・セットを管理する方法、コンピュータ・プログラム製品、およびシステムを提供すること。【解決手段】物理データ・ストアのデータ・セットを第1の種類のマルチテナント展開から第2の種類のマルチテナント展開に変換する要求を受け取り、要求を行ったテナントを識別するテナント識別メタデータを検索し、第2の種類のマルチテナント展開に基づいて物理データ・ストアのデータ・セットを変更し、抽象化層に関連付けられたメタデータを変更して、変更されたデータ・セットへのアクセスを可能にする。【選択図】図2

Description

本発明の分野はマルチテナントのデータベースに関する。より詳細には、本発明の分野は、マルチテナントのサービスとしてのプラットフォーム(PaaS:Platform as a Service)およびサービスとしてのソフトウェア(SaaS:Software as a Service)サービス(以後「サービス」と総称する)に関する。
各種サービスを、パブリック、ハイブリッド、およびプライベートのクラウド環境で提供することができる。サービス・プロバイダから提供されるサービスは、コンピュータ化された情報の記憶と検索のシステムに相当するデータベース管理システム(DBMS)に記憶されたデータにアクセスすることがある。DBMSは複数のデータベースを管理することができ、各データベースは異なるエンティティに所有される場合がある。サービスは、複数のクライアント組織(テナント)が同時に利用することができる。そのため、そのようなサービスは、種々のテナントについてのデータを処理する。セキュリティと規制上の理由から、各テナントは種々の度合いのデータ分離を要求し、この分離の度合いは、テナントがサービスに加入する時に「ポリシー要素」として指定される。セキュリティと規制の要件は時間と共に変化するため、分離の度合いをなめらかに変更できることがさらに重要となる。したがって、サービス・プロバイダは、各自のサービスにデータと設定の区分を可能にするマルチテナント・アーキテクチャを実装して、各テナントが適切なレベルのデータ分離を得られるようにする必要がある。
現在、マルチテナント・データを管理するには3つの展開の選択肢がある。第1の展開選択肢は、別々のデータベースにテナント・データを記憶するものであり、これは最も単純なデータ分離方式である。コンピューティング資源とアプリケーション・コードは一般に1つのサーバにあるすべてのテナント間で共有されるが、各テナントは、すべての他のテナントに属するデータから論理的に隔離された状態を保つ独自のデータ・セットを有する。メタデータで各データベースを正しいテナントに関連付け、データベース・セキュリティで、いずれのテナントも偶発的に、または悪意を持って他テナントのデータにアクセスできないようにする。しかし、この選択肢は、サービス・プロバイダが機器を維持管理し、テナント・データをバックアップするための費用が高くなりやすい。所与のデータベース・サーバに収容できるテナントの数が、サーバが対応できるデータベースの数によって制限されるため、ハードウェア費用も代替の展開選択肢の場合と比べて高くなる。
第2の展開選択肢は、同じデータベースに複数のテナントを収容するものであり、各テナントは、そのテナント専用に作成されたスキーマにグループ化された自身のテーブル・セットと他のデータベース生成物を有する。この方式では、セキュリティ意識の高いテナントには、完全に分離されたシステムほどではないが、まずまずの度合いの論理的なデータ分離を提供し、また1台のデータベース・サーバでより多くのテナントに対応することができる。
第3の展開選択肢は、同じデータベースと同じテーブル・セットを使用して複数のテナントのデータをホストするものである。所与のテーブルが任意の順序で記憶された複数のテナントのレコードを含むことができ、テナント識別の列が各レコードを該当するテナントに関連付ける。この3つの選択肢のうち、1台のデータベース・サーバあたり最も多くのテナントに対応することができるため、共有スキーマ方式がハードウェア費用とバックアップ費用が最も低い。
Draft NIST Working Definition ofCloud Computing, by Peter Mell and Tim Grance, dated October 7, 2009
データベース展開を1つの選択肢から別の選択肢に透過的に変えることは現在は対応されておらず、人手によるデータ移動とシステムのダウンタイムによってしか解決することができない。さらにそのような変更が行われると、現在データベースにアクセスしているアプリケーションを再コーディングして、データベースへの変更を反映させなければならない。
実施形態は、マルチテナント・システムでテナント固有のデータ・セットを管理するための動作を行うための方法、コンピュータ・プログラム製品、およびシステムを提供する。物理データ・ストアのデータ・セットを第1の種類のマルチテナント展開から第2の種類のマルチテナント展開に変換する要求を受け取り、要求を行ったテナントを識別するテナント識別メタデータを検索し、第2の種類のマルチテナント展開に基づいて物理データ・ストアのデータ・セットを変更し、抽象化層に関連付けられたメタデータを変更して、変更されたデータ・セットへのアクセスを可能にする。
上記態様がどのように達成されるかを詳細に理解できるように、上記で簡単に概要を述べた本発明の実施形態のより具体的な説明を添付図面を参照することにより得ることができる。
ただし、添付図面は本発明の典型的な実施形態を示すものに過ぎず、したがって発明の範囲を限定するものと解釈すべきでないことに留意されたい。本発明には、他の同等に効果的な実施形態が可能である可能性がある。
本発明の一実施形態によるクラウド・コンピューティング環境を説明するブロック図である。 本発明の一実施形態による、マルチテナント環境で展開の選択肢を管理し、変換するためのアーキテクチャを説明するブロック図である。 本発明の一実施形態による2階層のアプリケーション・アーキテクチャの構成要素を説明するブロック図である。 本発明の一実施形態によるデータベース展開の選択肢を変換する方法を説明するフローチャートである。 本発明の一実施形態による、データを転送して1つのマルチテナント展開の選択肢から別のマルチテナント展開の選択肢へのデータベースの変換を完了する方法を説明するフローチャートである。 本発明の一実施形態による、データを転送して1つのマルチテナント展開の選択肢から別のマルチテナント展開の選択肢へのデータベースの変換を完了する方法を説明するフローチャートである。 本発明の一実施形態によるクラウド・コンピューティング環境を示す図である。 本発明の一実施形態による抽象化モデル層を示す図である。
本発明の実施形態は、マルチテナント環境でテナント固有のデータを管理する技術を提供する。一部の実施形態では、1つのマルチテナント・データベース展開から別のマルチテナント・データベース展開に変換する方法が提供される。一部の実施形態では、マルチテナント展開を変換する要求が抽象化層を通じて受け取られ、このため要求元のアプリケーションは、テナント・データを記憶するために使用されている物理的な実装を意識しない。一部の実施形態では、データベース展開を変換するアプリケーションが提供される。一部の実施形態では、このアプリケーションはデータベース管理システム(DBMS)の一部である。アプリケーションは、物理データ・ストアに記憶されたデータ・セットを第1の種類のマルチテナント展開から第2の種類のマルチテナント展開に変換する要求を受け取るように構成することができる。そして、アプリケーションは、要求元のテナントを識別するテナント識別メタデータを抽象化層を通じて取得することができる。次いで、アプリケーションは、第2の種類のマルチテナント展開に基づいて物理データ・ストアのデータ・セットに変更を加えることができる。最後に、アプリケーションは、第2の種類のマルチテナント展開に従って変更されたデータ・セットにアクセスするように、抽象化層に関連付けられたメタデータを変更することができる。
クラウド・コンピューティングについての詳細な説明が含まれるが、本明細書に述べる教示の実施形態はクラウド・コンピューティング環境に限定されないことを予め理解されたい。本発明の実施形態は、現在知られている、または後に開発される任意の他の種類のコンピューティング環境と併せて実施することが可能である。
便宜上、発明の詳細な説明は、2009年10月7日付、Peter MellおよびTim Granceによる「Draft NIST Working Definitionof Cloud Computing」からとられた以下の定義を含む。この文献は、本明細書と共に提出されたIDSにおいて引用されており、その複写を本明細書に添付する。
クラウド・コンピューティングは、最小限の管理労力やサービス・プロバイダとの対話で迅速に準備し、提供することができる設定可能なコンピューティング資源(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、記憶、記憶機構、アプリケーション、仮想機械、およびサービス)の共有プールに、利便に、必要時にネットワークを通じてアクセスすることができるサービス配信モデルである。このクラウド・モデルは少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
特性は以下の通りである。
オンデマンド・セルフサービス:クラウドの消費者は、サービスの提供者と人的な対話を必要とすることなく、必要時に自動的にサーバ時間やネットワーク・ストレージなどのコンピューティング機能を一方向に実現することができる。
広いネットワーク・アクセス:諸機能はネットワークを通じて利用することができ、異種のシン(thin)またはシック(thick)クライアント・プラットフォーム(例えば携帯電話、ラップトップ、PDA)による使用を促す標準的な機構を通じてアクセスされる。
資源の集積:提供者のコンピューティング資源を集積して、マルチテナント・モデルを使用して複数の消費者に提供し、需要に応じて種々の物理的な資源と仮想的な資源が動的に割り当てられ、また割り当て直される。消費者は一般に提供される資源の正確な場所に関して支配権や知識を持たないが、より高いレベルの抽象化で場所を指定する(例えば国、州、またはデータセンター)ことができる可能性がある点で、ある意味で場所の非依存性がある。
迅速な順応性:諸機能は、迅速かつ柔軟に、場合によっては自動的に提供することができ、急速に拡張し、迅速に解放して急速に縮小することができる。消費者にとっては、提供可能な機能は多くの場合無制限に見え、いつでも任意の数量を購入することができる。
サービスの測定:クラウド・システムは、サービスの種類(例えばストレージ、処理、帯域幅、およびアクティブ・ユーザのアカウント)に応じた何らかの抽象化レベルで計量機能を活用することにより、自動的に資源の使用を制御し、最適化する。リソースの使用状況を監視し、管理し、報告することができ、利用されるサービスの提供者と消費者の双方に透過性を提供する。
サービス・モデルは以下の通りである。
サービスとしてのソフトウェア(SaaS:Software as a Service):消費者に提供される機能は、クラウド・インフラストラクチャで実行される提供者のアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザ(例えばウェブベースの電子メール)などのシン・クライアント・インターフェースを通じて各種クライアント・デバイスからアクセスすることができる。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理または制御しないが、限定されたユーザ固有のアプリケーション設定は例外である場合がある。
サービスとしてのプラットフォーム(PaaS:Platform as aService):消費者に提供される機能は、提供者がサポートするプログラミング言語とツールを使用して作成した消費者が作成または取得したアプリケーションをクラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャを管理または制御しないが、展開したアプリケーションや、可能性としてはアプリケーションをホストする環境の設定は制御することができる。
サービスとしてのインフラストラクチャ(IaaS:Infrastructure asa Service):消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング資源を実現することであり、消費者は任意のソフトウェアを展開し、実行することができ、これにはオペレーティング・システムおよびアプリケーションが含まれる可能性がある。消費者は基礎となるクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、展開したアプリケーションを制御することができ、また可能性としては選択されたネットワーキングの構成要素(例えばホスト・ファイアウォール)を限定的に制御することができる。
展開モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャが1つの組織のみに対して運用される。クラウドはその組織または第3者によって管理することができ、組織内または組織外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャがいくつかの組織に共有され、利害事項(例えば任務、セキュリティ要件、ポリシー、および法令順守事項)を共有する特定の集団をサポートする。クラウドはそれらの組織または第3者によって管理することができ、組織内または組織外に存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャを一般公衆または大きな企業集団が利用できるようにし、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャが2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)から構成され、それらのクラウドは独自のエンティティのままであるが、データとアプリケーションの移植性(例えばクラウド間の負荷平衡のためのクラウド・バースティング(bursting))を可能にする標準化された技術または独自技術によって互いに結合される。
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的な相互動作性に着目した指向のサービスである。クラウド・コンピューティングの中核となるのは、相互接続されたノードからなるネットワークを構成するインフラストラクチャである。クラウド・コンピューティング・ネットワークのノードはコンピューティング・デバイスであり、コンピューティング・デバイスには、これらに限定されないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち型またはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサを利用したシステム、セット・トップ・ボックス、プログラム可能な消費者家電製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスのうちの任意もの、等を含む分散クラウド・コンピューティング環境が含まれる。クラウド・コンピューティング・ノードは、実装されるか、または上記の機能を行うことができるか、あるいはその両方が可能である。
以下では本発明の実施形態を参照する。ただし、本発明は記載される特定の実施形態に限定されないことを理解されたい。以下の特徴および要素の任意の組み合わせは、異なる実施形態に関係するか否かに関係なく、本発明を実装しかつ実施することが企図される。さらに、本発明の実施形態は、他の可能な解決法または従来技術あるいはその両方を上回る効果を実現することが可能であるが、特定の効果が所与の実施形態によって実現されるか否かは本発明を限定しない。したがって、以下の態様、特徴、実施形態、および効果は例示的なものに過ぎず、(1つまたは複数の)請求項に明示的に述べられる場合を除いて、添付の特許請求の範囲の要素または限定事項とは見なされない。同様に、「本発明」の言及は、本明細書に開示される任意の本発明の主題の一般化と解釈すべきでなく、また、(1つまたは複数の)請求項に明示的に述べられる場合を除いて添付の特許請求の範囲の要素または限定事項であるとも解釈すべきでない。
当業者には理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。したがって、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェアの態様とハードウェアの態様を組み合わせた実施形態の形をとることができ、これらは本明細書ではすべて一般に「回路」、「モジュール」、もしくは「システム」と称する場合がある。さらに、本発明の態様は、コンピュータ可読のプログラム・コードが具現化された1つまたは複数のコンピュータ可読媒体として具現化されたコンピュータ・プログラム製品の形をとることができる。
1つまたは複数のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体でありうる。コンピュータ可読記憶媒体は、これらに限定されないが、例えば、電子、磁気、光学、電磁気、赤外線、もしくは半導体のシステム、装置、またはデバイス、あるいはそれらの適切な組み合わせである。コンピュータ可読記憶媒体のより具体的な例(ただし完全な網羅ではない列挙)は、1つまたは複数の配線を有する電気接続、携帯可能コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラム可能読取専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯可能コンパクト・ディスク読取専用メモリ(CD−ROM)、光学記憶装置、磁気記憶装置、あるいはそれらの任意の適切な組み合わせを含む。本文献の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによる使用のために、またはそれらとの関連でプログラムを保持または記憶することが可能な任意の有形媒体とすることができる。
コンピュータ可読信号媒体は、例えばベースバンドにおいてまたは搬送波の一部としてコンピュータ可読のプログラム・コードが内部に具現化された伝搬データ信号を含む。そのような伝搬信号は、これらに限定されないが、電磁気、光学、またはそれらの任意の適切な組み合わせを含む各種形態をとることができる。コンピュータ可読信号媒体は、命令実行システム、装置、もしくはデバイスによる使用のために、またはそれらとの関連でプログラムを通信、伝搬、または移送することが可能な、コンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってよい。
コンピュータ可読媒体に具現化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RF等、またはそれらの任意の適切な組み合わせを含む任意の適当な媒体を使用して伝送することができるが、これらに限定されない。
本発明の態様の動作を実施するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++等のオブジェクト指向のプログラミング言語と、「C」プログラミング言語または類似のプログラミング言語等の従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで書くことができる。プログラム・コードは、すべてがユーザのコンピュータで実行されても、独立型のソフトウェア・パッケージとして、一部がユーザのコンピュータで実行されても、一部がユーザのコンピュータで実行され、一部がリモート・コンピュータで実行されても、またはすべてがリモート・コンピュータまたはサーバで実行されてもよい。最後の場合は、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)やワイド・エリア・ネットワーク(WAN)を含む任意種類のネットワークを通じてユーザのコンピュータに接続しても、または外部のコンピュータに接続してもよい(例えばインターネット・サービス・プロバイダを使用してインターネットを通じて)。
以下、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本発明の態様を説明する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組み合わせはコンピュータ・プログラム命令によって実施できることが理解されよう。コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートもしくはブロック図またはその両方の1つあるいは複数のブロックに指定される機能/動作を実施する手段を生成するべく、このようなコンピュータ・プログラム命令は汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。
コンピュータ可読媒体に記憶された命令により、フローチャートもしくはブロック図またはその両方の1つあるいは複数のブロックに指定される機能/動作を実施する命令を含んだ製造品を作製するべく、このようなコンピュータ・プログラム命令はコンピュータ可読媒体に記憶され、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスに特定の方式で機能するように指示するものであってよい。
コンピュータまたは他のプログラム可能装置で実行される命令が、フローチャートもしくはブロック図またはその両方の1つあるいは複数のブロックに指定される機能/動作を実施する処理を提供するように、コンピュータによって実施される処理を生成するべく、コンピュータ・プログラム命令はコンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってよい。
本発明の実施形態は、クラウド・コンピューティングのインフラストラクチャを通じてエンド・ユーザに提供することができる。クラウド・コンピューティングとは、一般に、スケーラブルなコンピューティング資源をネットワークを通じてサービスとして提供することを言う。より正式には、クラウド・コンピューティングは、コンピューティング資源とその基盤となる技術的アーキテクチャ(例えばサーバ、記憶機構、ネットワーク)との間の抽象化を提供するコンピューティング機能であって、設定可能なコンピューティング資源の共有プールに必要時にネットワークを通じて利便にアクセスすることを可能にすることにより、コンピューティング資源を最小限の管理労力やサービス・プロバイダとの対話で迅速に準備し、提供するものであると定義することができる。したがって、クラウド・コンピューティングにより、ユーザは、コンピューティング資源を提供するために使用される基盤物理システム(またはそれらのシステムの場所)に関係なく、「クラウド」内の仮想コンピューティング資源(例えば、記憶領域、データ、アプリケーション、さらには完全な仮想化コンピューティング・システム)を利用することができる。
通例、クラウド・コンピューティング資源は従量課金方式でユーザに提供され、ユーザは、実際に使用したコンピューティング資源だけについて課金される(例えば、ユーザが利用した記憶空間の量や、ユーザがインスタンス化した仮想化システムの数等)。ユーザは、クラウドにあるあらゆる資源を、いつでも、またインターネット上のどこからでも利用することができる。本発明の文脈では、ユーザは、クラウド内で利用可能なアプリケーションや関連するデータにアクセスすることができる。例えば、マルチテナント・データベースの展開変換アプリケーションをクラウド内のコンピューティング・システムで実行して、1つのマルチテナント展開から別のマルチテナント展開にデータベースを変換することができる。そのような場合、マルチテナント・データベース展開変換アプリケーションは、データベース展開を変換し、物理データ・ストアとそれに関連付けられたテナントのメタデータをクラウド内の記憶場所に記憶することができる。そのようにすることにより、ユーザは、クラウドに接続されたネットワーク(例えばインターネット)に結合された任意のコンピューティング・システムからその情報にアクセスすることができる。
図1は、本発明の一実施形態による、サービスとしてソフトウェアを提供するクラウド・コンピューティング・システム100を示すブロック図であり、サーバが3つの異なる展開の1つでアプリケーションを提供し、複数のクライアント(テナント)のデータを記憶する。ネットワーク化されたシステム100はサーバ102およびクライアント・コンピュータ132を含む。サーバ102とクライアント132はネットワーク130を介して相互と接続され、ネットワーク130を介して他のコンピュータ接続することができる。一般に、ネットワーク130は、電気通信ネットワークまたはワイド・エリア・ネットワーク(WAN)あるいはその両方である。特定の実施形態ではネットワーク130はインターネットである。
サーバ102は一般にプロセッサ104を含み、プロセッサ104はバス115を介してメモリ106、ネットワーク・インターフェース・デバイス124、ストレージ108、入力装置126、および出力装置128に接続される。サーバ102は一般にオペレーティング・システム107の制御下にある。オペレーティング・システムの例には、UNIX(R)、Microsoft Windows(R)オペレーティング・システムの諸バージョン、Linux(R)オペレーティング・システムの配布がある。より一般的には、本明細書に開示される機能をサポートする任意のオペレーティング・システムを使用することができる。プロセッサ104は単一のCPU、複数のCPU、複数の処理コアを持つ単一のCPU等を表すものとして含まれる。同様に、メモリ106はランダム・アクセス・メモリとすることができる。メモリ106は単一の存在として示しているが、メモリ106は複数のモジュールから構成することが可能であり、高速レジスタやキャッシュから、低速であるがより大きいDRAMチップまで複数のレベルに存在する可能性があることを理解されたい。ネットワーク・インターフェース・デバイス124は、サーバ102がネットワーク130を介して他のコンピュータと通信できるようにする任意種類のネットワーク通信デバイスである。
ストレージ108は恒久的な記憶装置とすることができる。図ではストレージ108を1つの構成部分として示しているが、ストレージ108は固定ディスク・ドライブ、ソリッド・ステート・ドライブ、フロッピー・ディスク・ドライブ、テープ・ドライブ、取外し可能メモリ・カード、または光学記憶装置等の固定記憶装置または取外し可能記憶装置あるいはその両方の組み合わせとすることができる。メモリ106およびストレージ108は、複数の一次記憶装置および二次記憶装置にまたがる1つの仮想アドレス空間の一部とすることができる。
図に示すように、サーバのストレージ108は複数のデータベースを保持している。この特定の図面では4つのデータベースを示すが、サーバ102のストレージ108には任意数のデータベースを記憶することができる。図では、ストレージ108は、符号118、120、および122のテナント固有のデータベースを保持しており、各データベースは異なる展開の選択肢に対応する。ストレージ108はメタデータ・リポジトリ125も保持するように示されており、これは、テナントの識別情報、システム・ポリシー、および他の関連情報を記憶する。
入力装置126はサーバ102への入力を提供する任意のデバイスとすることができる。例えばキーボードまたはマウスあるいはその両方を使用することができる。出力装置128はサーバ102のユーザに出力を提供する任意のデバイスとすることができる。例えば、出力装置108は、任意の従来の表示画面やスピーカ・セットでありうる。図では入力装置126と別に示しているが、出力装置128と入力装置126は組み合わせてもよい。例えば、タッチ画面が内蔵された表示画面を使用することができる。
図示するように、サーバ102のメモリ106は、ネットワーク130を介して複数のサービスをユーザに提供するように構成されたマルチテナント・アプリケーション110を含む。図示するように、サーバ102のメモリ106は、サーバ102のストレージ108に保持される複数のデータベースを管理するように構成されたデータベース管理システム(DBMS)112も保持する。サーバ102のメモリ106は、ウェブ・サーバ114も保持し、これは従来のウェブ・サービス機能を実行し、マルチテナント・アプリケーション110などの種々のアプリケーションのための実行時環境としてアプリケーション・サーバ機能(例えばJ2EEアプリケーション・サーバ)も提供することができる。
図に示すように、本発明の一実施形態によると、クライアント・コンピュータ132は、プロセッサ134、メモリ136、オペレーティング・システム138、ストレージ142、ネットワーク・インターフェース144、入力装置146、および出力装置148を含む。これらの構成要素の説明と機能は、サーバ102を参照して説明した対応する構成要素と同じである。図に示すように、クライアント・コンピュータ132のメモリ136はウェブ・ブラウザ140も保持し、一部の実施形態ではこれを使用してサーバ102によって提供されるサービスにアクセスする。
図1の具体的な説明は例示のみを目的とするものであり、本発明は記載される特定の実施形態に限定されず、本発明の実装および実施には任意の組み合わせが企図されることを理解されたい。図1には単一のサーバ102を示すが、本発明の実施形態は、本明細書に記載されるサービスおよび機能を提供するために任意数のサーバを企図する。さらに、図1ではサーバ102にまとめて図示するが、マルチテナント・アプリケーション110の2階層のサービスおよび永続性機能は、別々の物理的サーバ、または同じサーバ内の別々の仮想サーバに収容することができる。一部の実施形態では、マルチテナント・アプリケーション110は、1つのコンピューティング・クラスタで複数のインスタンスとして展開することができる。当業者には知られるように、マルチテナント・アプリケーション110の個々の機能を行うモジュールは、1つの同じサーバ、複数の異なるサーバ、またはそれらの任意の組み合わせに収容することができる。メタデータ・リポジトリ125、データベース118、120、および122などの記憶される項目も、1つの同じサーバ、複数の異なるサーバ、またはそれらの任意の組み合わせに記憶することができ、アプリケーション・モジュールとして同じまたは異なるサーバに常駐することもできる。
図2は、本発明の一実施形態によるマルチテナント環境で展開の選択肢を管理し、変換するためのアーキテクチャを説明するブロック図200である。図示するように、複数のテナント2051〜Nがネットワーク130を介してサーバ102に接続され、サーバ102のメモリ106に保持されるマルチテナント・アプリケーション110にアクセスする。マルチテナント・アプリケーション110については下記でさらに詳細に説明するが、テナントにサービスを提供するように構成され、このマルチテナント・アプリケーション110には、一部の実施形態では、クラウド・コンピューティング環境における複数のSaaSアプリケーションが含まれる。図には抽象化層220も示され、これは、マルチテナント・アプリケーション110とDBMS112間の仲介として機能する。抽象化層220を通じて、種々のデータベース展開の選択肢間の透過的な変換を完了することができ、これによりマルチテナント・アプリケーション110は各データベースの物理的な実装を意識する必要がなく、またデータベースの変化を反映するようにマルチテナント・アプリケーション110を再コーディングする必要がない。抽象化層220は、マルチテナント・アプリケーション110からクエリを受け取り、次いでそのクエリにテナント固有の情報を挿入するように構成され、それによりクエリが正しいデータベースまたはデータベース・テーブルあるいはその両方に導かれるようにする。テナント固有の情報には、これらに限定されないが、各テナントに所有されるデータベース、スキーマ、テーブル、および列の物理的な実装に関する詳細が含まれうる。そのような詳細には、データベース、スキーマ、テーブル、および列の名前や場所が含まれうる。代替実施形態では、抽象化層220は、データベース管理システムのフェデレーション機能の拡張として実装することができる。一部の実施形態では、抽象化層はデータ配置層の機能も行い、これは、変換要求を受け取り、その後データを1つのマルチテナンシー展開タイプから別のマルチテナンシー展開タイプに変換する役割を担う。
一部の実施形態では、テナント固有の情報はメタデータ・リポジトリ125に記憶される。メタデータ・リポジトリ125の実施形態には、リレーショナル・データベース、コンテンツ管理システム、またはポリシーを実施しデータ・マッピングを行うアプリケーション・モジュールから参照されるファイル・システムが含まれる。DBMS112については下記でさらに詳しく説明するが、一般的なデータベース管理システムである。図に示すように、DBMS112は複数のデータベースを管理し、これには、テナントT1〜Nそれぞれの別個の物理的なデータベース2351〜N、テナントT、T、およびTの別個のスキーマ242、244、および246を含む共有データベース240、そのすべてのテナントに対応する単一のスキーマ252を保持する共有データベース250が含まれる。一部の実施形態では、DBMS112は直接メタデータ・リポジトリ125を管理することもできる。図示するように、データベース250はスキーマ252を保持し、スキーマ252は、それぞれテナント識別情報、キー名、およびキー値に対応する例示的列254、256、および258を有する。テナント識別情報はメタデータ・リポジトリ125に記憶され、管理される。図2の具体的な説明は、例示のみを目的とするものであり、本発明は記載される特定の実施形態に限定されず、本発明の実装および実施には任意の組み合わせが企図されることを理解されたい。
図3は、本発明の一実施形態による2階層のアプリケーション・アーキテクチャの構成要素を示すブロック図である。図のように、マルチテナント・アプリケーション110は、サービス340および永続性アクセス層350を含む。マルチテナント・アプリケーション110は、適切なアプリケーション・ランタイム、例えばIBM(R)WebSphere(R)アプリケーション・サーバなどのJ2EEアプリケーション・ランタイム上のアプリケーション階層に存在する(IBMおよびWebSphereは世界中の多くの司法管轄内で登録されたインターナショナル・ビジネス・マシン社の商標である)。サービス340は、任意のSaaS(Software as a Service)ソリューションを含み、アプリケーションがサーバで実行され、ネットワーク、例えばインターネットを介してユーザからアクセスされる。SaaSアプリケーションの例には、これらに限定されないが、マスタ・データ管理(MDM)、課金、連携、顧客関係管理、企業のリソース計画、インボイス作成、人的資源管理、コンテンツ管理、およびサービス・デスク管理用のアプリケーションが含まれる。永続性アクセス層350は、抽象化層220に結合された時に、マルチテナント・アプリケーション110とそのサービス340が、マルチテナント環境で管理されている複数のデータベースに透過的な方式でアクセスできるように構成されたインターフェースである。マルチテナント・アプリケーション110とそのサービス340はそれらが参照するデータベースの物理的な実装を意識しないため、永続性アクセス層350が、マルチテナント・アプリケーションと抽象化層の間にリンクを提供して、データベースの物理的な実装の詳細を隠蔽する。永続性アクセス層350を通じて、マルチテナント・アプリケーション110とそのサービス340は、さらなる外挿と処理のために抽象化層に送られることになるクエリを生成することにより、データベースにデータを読み書きする。
図に示すように、マルチテナント・アプリケーション110は抽象化層220に接続されて、上記の機能を提供する。抽象化層220は、本発明の一実施形態では、マルチテナント・アプリケーション110とDBMS112の間に抽象化の層を提供する。図に示すように、DBMS112はデータベース・エンジン300を含み、これは、読出し、書き込み、クエリ、および他のデータベース管理ツールなどの標準的なデータベース機能を制御する。一部の実施形態では、DBMS112は、一部の実施形態では上記のように抽象化層220で実行されるデータ配置層機能を実行することができる。
図4は、本発明の一実施形態による、テナント固有のデータ・セットを1つのマルチテナント展開の選択肢から第2のマルチテナント展開の選択肢に変換する方法400を示すフローチャートである。一実施形態では、マルチテナント・アプリケーション110が方法400のステップを実行する。方法はステップ410で開始し、マルチテナント・アプリケーション110によりテナントから変換要求が受け取られる。ステップ420で、マルチテナント・アプリケーション110は、メタデータ・リポジトリ125に保持される情報にアクセスすることにより要求元のテナントを特定する。メタデータ・リポジトリ125がリレーショナル・データベースである実施形態では、マルチテナント・アプリケーション110はメタデータ・リポジトリ125に接続して、要求元のテナントに関連付けられたデータを取り出す。ステップ430で、マルチテナント・アプリケーション110が、テナントの現在のマルチテナント展開の選択肢を特定する。一実施形態では、メタデータ・リポジトリ125の情報を使用して、現在のマルチテナント展開の選択肢を判定する。別の実施形態では、現在のマルチテナント展開の選択肢はユーザによる入力として提供される。一般に、現在の展開の選択肢の判定には任意の適切な方法が企図される。
ステップ440で、マルチテナント・アプリケーション110は、テナントが要求する展開の選択肢を特定する。一部の実施形態では、マルチテナント・アプリケーション110は、ユーザから、要求されるマルチテナント展開を定義する入力を受け取る。ステップ450で、マルチテナント・アプリケーション110は、テナントの変換要求を満たすように現在の展開のデータ・セットを変更する。ステップ450の実施形態については、下記で図5および図6との関連で説明する。ステップ460で、マルチテナント・アプリケーション110は、抽象化層220に関連付けられたメタデータを変更して、マルチテナント・アプリケーション110とそのサービス340がコードの修正を行わずに変換後のデータベースにアクセスできるようにする。マルチテナント・アプリケーション110とそのサービス340は、基盤のデータベースの実際の物理的な実装を参照せずにコーディングされるので、抽象化層220は、選択された展開の選択肢がデータベースの物理的な実装で反映されるように、マルチテナント・アプリケーション110の永続性アクセス層350から提出されるクエリを変更しなければならない。この変更を行わないと、マルチテナント・アプリケーション110とそのサービス340は、コードの変更なしに透過的な方式で基盤のデータベースにアクセスすることができない。一部の実施形態では、ステップ460は、マルチテナント・アプリケーション110がメタデータ・リポジトリ125に保持されるメタデータを更新して、テナントが要求した展開に対応する変換後のデータベースへのリンクを抽象化層220およびそのクエリに提供することを含む。要求される展開がプライベート・データベースである場合は、そのテナントに現在所有されているプライベート・データベースを抽象化層220にリンクするのに十分な情報でメタデータ・リポジトリ125を変更する。ステップ460のいくつかの実施形態では、マルチテナント・アプリケーション110は、新しい識別情報を含むように、要求元のテナントのデータベースに関連付けられた抽象化層220のクエリを変更する。要求される展開が共有データベースのプライベート・スキーマである場合、マルチテナント・アプリケーション110は、要求元のテナントのために作成されたプライベート・スキーマへの参照を含むように、メタデータ・リポジトリ125に保持されるエントリを更新することができる。一部の実施形態では、要求元のテナントに関連付けられた抽象化層220のクエリを書き変えて、プライベート・スキーマ情報を識別する句(clause)を含める。要求される展開が共有データベースの共有スキーマである場合は、メタデータ・リポジトリ125から該当するテナント識別子を検索し、それを更新するか、テナントに関連付けられた抽象化層220のクエリに挿入する。
図5は、本発明の一実施形態による、ステップ450に対応する方法500を説明するフローチャートである。一部の実施形態では、マルチテナント・アプリケーション110が方法500のステップを行う。方法はステップ510で開始し、マルチテナント・アプリケーション110が、要求元のテナントが所有するテーブルごとにテナントのデータベースを1つの展開の選択肢から別の展開の選択肢に変換するステップ520〜550を含むループの実行を開始する。ステップ520で、マルチテナント・アプリケーション110は、要求される展開の変換に対応するのに適したデータ構造を作成する。一実施形態では、このデータ構造は、図2の要素2351〜Nのそれぞれで示すように、要求元のテナントに所有されるプライベート・データベースでありうる。別の実施形態では、データ構造は要求元のテナントに所有され、図2の要素240で示すように共有データベースに保持されるプライベート・スキーマである。次いで方法はステップ530に進み、現在のテーブルを、作成されたデータ構造に転送する。この転送は、これらに限定しないがテーブルを移動し、コピーすることを含む任意数の手段で行うことができる。
次いで方法はステップ540に進み、ここで「オンライン」のテーブル転送を許可し、これによりデータベースは利用可能な状態を保ち、転送中に受け取られたクエリは、実行のために該当するテーブルに対して発行される。したがって、転送中に受け取られるクエリの種類ごとに一連の規則を定義しなければならない。一実施形態では、選択クエリは元のテーブルと転送されたテーブルの両方に発行され、その結果それぞれで結果のセットが得られる。データが転送される間、マルチテナント・アプリケーションの永続性層から要求される各読出しクエリについては、そのクエリを抽象化層220で両方の場所にリダイレクトしてから、得られたデータ・セットにUNIONを適用し、組み合わせた結果を選択クエリに対応する結果として戻す。一実施形態では、挿入クエリは転送されるテーブルに対して発行され、新しいデータベース・エントリが要求される展開の選択肢の転送されるテーブルだけに作成されるようにする。一実施形態では、更新クエリおよび削除クエリは、元のテーブルと転送されるテーブルの両方に発行され、両方で反映される。そのようにクエリを受け付けることにより、データの転送中にデータベースは完全に利用可能で動作可能な状態を保つ。オンライン転送の利点は、データが1つの展開の選択肢から次の展開の選択肢に移動されることに利用側テナントが気付かず、したがってサービスが常時利用可能であり続けることである。これがないと、結果としてテナントに対してダウンタイムが発生することになり、これは、特に移動するデータの量が非常に大きく、数時間あるいは数日間のダウンタイムを発生させる場合には許容することができない可能性がある。次いで方法はステップ550に進み、マルチテナント・アプリケーション110が、転送するテーブルがまだあるかどうかを判定する。テーブルがまだある場合、方法はステップ510に戻り、そうでない場合方法500は終了する。
一部の実施形態では、データ転送を処理する間のデータ転送速度を向上させ、システム性能への影響を低減するためにIBM(R)のFlashCopy(R)機能を提供することにより、方法500に示す転送をさらに改良することができる。(IBMおよびFlashCopyは、世界中の多くの司法管轄内で登録されたインターナショナル・ビジネス・マシン社の商標である。)
図6は、本発明の別の実施形態による、ステップ450に対応する方法600を説明するフローチャートである。一部の実施形態では、マルチテナント・アプリケーション110が方法600のステップを行う。方法はステップ610で開始し、マルチテナント・アプリケーション110が、要求元のテナントが所有するテーブルごとにテナントのデータベースを1つの展開の選択肢から別の展開の選択肢に変換するステップ620〜695を含むループの実行を開始する。ステップ620で、一部の実施形態では、マルチテナント・アプリケーション110は、現在のテーブルへのアクセスを阻止する。一部の実施形態では、アクセスの阻止は、テーブルへのアクセスを制約するフラグを抽象化層220に設定することによって達成される。テーブルへのアクセスを阻止する(そして後にアクセスを回復する)ことは、現在の展開の選択肢が、要求元のテナントに所有されるプライベート・データベースであるか、または共有データベースのプライベート・スキーマである場合のみに必要となる。アクセスを阻止する(そして後にアクセスを回復する)ことは、他のテナントのデータも阻止されてしまうため、現在の展開が共有データベースの共有スキーマである実施形態では任意である。転送が完了するまでテーブルへのアクセスを阻止することにより、変更が許可されず、これによりデータベースの正確なコピーが転送されることになる。ステップ630で、マルチテナント・アプリケーション110は、転送するテーブルに保持されているデータを選択する。現在の展開の選択肢が要求元のテナントに所有されるプライベート・データベースである実施形態では、すべてのデータの選択を要求するステートメントを発行してテーブルのデータを選択する。一実施形態では、現在の展開の選択肢は共有データベースのプライベート・スキーマであり、スキーマ・テーブルからすべてのデータを選択するステートメントが発行され、スキーマは要求元のテナントに所有され、スキーマ情報がメタデータ・リポジトリ125から取得される。例えば、テーブルがリレーショナル・データベースにある場合、SQLクエリは「select * from schema.table」と書くことができる。現在の展開が共有データベースの共有スキーマである実施形態では、テナント識別列の入力が要求元のテナントに関連付けられたテナント識別情報と等しいすべてのデータを選択するステートメントを発行してデータを選択し、メタデータ・リポジトリ125からテナント識別情報を取得する。例えば、テーブルがリレーショナル・データベースにある場合は、SQLクエリは「select * from table where tenant=<tenant>」と書くことができる。
データが選択されると、方法はステップ640に進み、マルチテナント・アプリケーション110が、要求される展開の選択肢に応じて、ステップ630で実行された選択ステートメントで得られたテーブルにテナント識別情報を含んでいる列を挿入するか、または削除する。現在の展開の選択肢および要求される展開の選択肢によって、テナント識別情報は必要である場合も必要でない場合もあり、適宜対処する必要がある。現在の展開が共有データベースの共有スキーマである実施形態では、ステップ630で選択されたデータと共にテナント識別列が返される。これらの実施形態における行き先のデータベースはそのテナント識別情報を含んでいる列を必要とせず、したがって列は削除されることになる。現在の展開が共有データベースの共有スキーマである実施形態では、ステップ630で発行された選択クエリを修正して、テナント識別情報を含んでいる列が選択されないようにし、後に削除する必要がないようにする。行き先が共有データベースの共有スキーマである実施形態では、そのデータを所有しているテナントを示すためにテナント識別列が必要である。したがって、ステップ630で実行された選択ステートメントの結果のセットにある各レコードについて、テナント識別情報を含む列が挿入されることになり、メタデータ・リポジトリ125からテナント識別情報が取得される。
方法は次いでステップ650に進み、マルチテナント・アプリケーション110が、展開の変換を完了するために新しいデータ構造が必要であるかどうかを判定する。新しいデータ構造が必要でない場合、方法はステップ670に進む。必要である場合は、ステップ660でマルチテナント・アプリケーション110が適切なデータ構造を作成する。このデータ構造は、テナントに所有される新しいプライベート・データベース、テナントに所有されるプライベート・データベース内の新しいテーブル、共有データベース中でテナントに所有される新しいプライベート・スキーマ、もしくは共有データベースでテナントに所有されるプライベート・スキーマ中の新しいテーブル、の1つまたは複数である。そのような実施形態では、マルチテナント・アプリケーション110は、データ構造を作成するために必要なテナント識別情報をメタデータ・リポジトリ125から取得する。
適切なデータ構造が作成されると、方法はステップ670に進み、マルチテナント・アプリケーション110はテーブルをその行き先のデータ構造に転送する。この転送は、これらに限定しないがテーブルを移動し、コピーすることを含む任意数の手段で行うことができる。方法は次いでステップ680に進み、転送中のテーブルに対して発行された任意のクエリについて、転送が完了するまでは適切なエラー・メッセージが返されるようにする。テーブルが転送されると、方法はステップ690に進み、マルチテナント・アプリケーション110がテーブルへのアクセスを回復して、テナントのアプリケーションがテーブルにアクセスできるようにする。一部の実施形態では、テーブルへのアクセスは、テーブルへのアクセスを阻止していた抽象化層220に設定されたフラグを削除するとともに、切り替え後の展開をテナントに関連付けるように抽象化層220のデータを変更することによって回復される。一部の実施形態では、切り替え後の展開ではもう必要がない可能性があるため、マルチテナント・アプリケーション110が、元の展開のプライベート・データベースとプライベート・スキーマのテーブルを破棄する。方法は次いでステップ695に進み、マルチテナント・アプリケーション110が、要求元のテナントに所有されているテーブルで転送する必要のあるものがまだあるかどうかを判定する。さらにテーブルがある場合、方法はステップ610に戻る。そうでない場合、方法は終了する。
方法600の代替実施形態は、テナントごとに共有データベースの共有スキーマの形態の展開についてのデータベース・ビューを作成することにより、クエリ中の「where tenant=<tenant>」の性質の「where」ステートメントを含めることを回避する能力を含む。これらのデータベース・ビューは、抽象化層220により作成し、データベースの寿命を通じて管理することができる。データベース・ビューは、クエリの結果のセットからなるリレーショナル・データベースの仮想テーブルとしてアクセスすることができる、記憶されたクエリで構成される。リレーショナル・データベースの普通のテーブル(ベース・テーブル)と異なり、ビューは物理的なスキーマの一部を形成するのではなく、データベース中のデータから算出または照合される動的な仮想テーブルである。テーブル中のデータを変更することにより、後続のビューの呼び出しで示されるデータを変える。別の実施形態では、選択クエリは、1回のステップですべてのデータを対象とするのではなく、いくつかのかたまりでデータを処理し、この場合一連の選択クエリが発行され、各クエリは、同じ設計概念に従って数回の反復でデータの相補的な部分を取り出す。
どの場合でも、データ転送が完了すると、転送元の領域にあるデータはデータベース資源を解放することによって適切に解放され、これは、場合によってはデータベースを破棄することを意味する可能性があり、他の場合には適切な破棄/削除のクエリで行われる。
本明細書に記載されるように、分散した冗長なデータベース・アーキテクチャと抽象化層を使用することにより、マルチテナント展開の物理的な実装をマルチテナント・アプリケーション110から隠蔽することができる。実装の詳細を隠蔽することにより、マルチテナント・アプリケーション110とそれが提供する各サービス340を、新しいテナントがサービスの利用を登録する、または展開の変換を要求するたびに再コーディングせずに済む。
次いで図7を参照すると、例示的なクラウド・コンピューティング環境750が図示される。図のように、クラウド・コンピューティング環境750は1つまたは複数のクラウド・コンピューティング・ノード710を含み、このノード710と、クラウドの消費者が使用するローカルのコンピューティング・デバイス、例えば携帯情報端末(PDA)または携帯電話754A、デスクトップ・コンピュータ754B、ラップトップ・コンピュータ754D、または自動車コンピュータ・システム754Nあるいはそのすべてが通信することができる。ノード710は相互と通信することができる。コンピューティング・ノード710は、サーバ102およびクライアント・コンピュータ132と同じ属性を持つことができ、サーバおよびクライアント・コンピュータは、クラウド・コンピューティング環境でコンピューティング・ノード710となることができる。これらは、上記に記載するように、プライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはその組み合わせなどの1つまたは複数のネットワークとして物理的または仮想的にグループ化することができる(図示せず)。それにより、クラウド・コンピューティング環境750が、クラウドの消費者がローカルのコンピューティング・デバイスにそのための資源を維持する必要なしに、サービスとしてインフラストラクチャ、プラットフォームまたはソフトウェア、あるいはそのすべてを提供することが可能になる。図7に示すコンピューティング・デバイス754A〜Nの種類は例示に過ぎず、コンピューティング・ノード710およびクラウド・コンピューティング環境750は、任意種類のネットワークまたはネットワークでアドレス指定可能な接続(例えばウェブ・ブラウザを使用する)あるいはその両方を介して任意種類のコンピュータ化されたデバイスと通信できることが理解される。
次いで図8を参照すると、クラウド・コンピューティング環境750(図7)で提供される機能抽象化層のセットが図示される。図8に示す構成要素、層、および機能は例示に過ぎず、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示するように、以下の層とそれに対応する機能が提供される。
ハードウェアおよびソフトウェア層860は、ハードウェアの構成要素およびソフトウェアの構成要素を含む。ハードウェア構成要素の例は、メインフレーム、一例ではIBM(R)のzSeries(R)システム、RISC(縮小命令セット・コンピュータ)アーキテクチャに基づくサーバ、一例ではIBM pSeries(R)システム、IBM xSeries(R)システム、IBM BladeCenter(R)システム、記憶装置、ネットワークおよびネットワーキング・コンポーネントが含まれる。ソフトウェアの構成要素の例には、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例ではIBM WebSphere(R)アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェア、一例ではIBM DB2(R)データベース・ソフトウェアが含まれる。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界中の多くの司法管轄内で登録されたインターナショナル・ビジネス・マシン社の商標である。)
仮想化層862は抽象化層を提供し、この抽象化層から仮想エンティティを提供することができ、その例には、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントがある。
一例では、管理層864が下記の機能を提供することができる。リソースのプロビジョニングは、クラウド・コンピューティング環境内で作業を行うために利用されるコンピューティング資源および他の資源の動的な調達を提供する。計量および料金設定は、クラウド・コンピューティング環境内で資源が利用される際の費用の追跡と、それらの資源の消費についての課金またはインボイス作成を提供する。一例では、それらの資源は、アプリケーション・ソフトウェアのライセンスを含む。セキュリティは、クラウド消費者と作業について身元の検証を行い、またデータおよび他の資源に対する保護も提供する。ユーザ・ポータルは、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス・レベルが満たされるようにクラウド・コンピューティング資源の割振りと管理を提供する。サービス・レベル同意(SLA)の計画および遂行は、将来の要件がSLAに準拠することが予想されるクラウド・コンピューティング資源についての事前の手配と調達を提供する。
作業層866は、クラウド・コンピューティング環境を利用できる機能の例を提供する。この層から提供することが可能な作業と機能の例には、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室の教育配信、データの分析処理、トランザクション処理、およびマルチテナント・データベースの展開の変換が含まれる。
図のフローチャートおよびブロック図は、本発明の各種実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を説明するものである。これに関して、フローチャートまたはブロック図の各ブロックは、指定された(1つまたは複数の)論理的機能を実施する1つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部を表すことができる。一部の代替の実施では、ブロックに記された機能は図に記された順序と異なる順序で行ってよいことにも留意されたい。例えば、関係する機能に応じて、連続して示す2つのブロックが実際には実質的に同時に実行される、または2つのブロックが時に逆の順序で実行されることも可能である。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組み合わせは、指定された機能もしくは動作を行う専用ハードウェアを利用したシステム、または専用ハードウェアおよびコンピュータ命令の組み合わせによって実施できることにも留意されたい。
前述の説明は本発明の実施形態を対象とするが、本発明の基本的な範囲から逸脱することなくその他のさらなる本発明の実施形態を考案することができ、本発明の範囲は添付の特許請求の範囲によって定められる。

Claims (30)

  1. マルチテナント・システムでテナント固有のデータ・セットを管理するための、コンピュータで実施される方法であって、
    物理データ・ストアのデータ・セットを第1の種類のマルチテナント展開から第2の種類のマルチテナント展開に変換する要求を受け取ることと、
    前記要求を行ったテナントを識別するテナント識別メタデータを検索することと、
    前記第2の種類のマルチテナント展開に基づいて前記物理データ・ストアの前記データ・セットを変更することと、
    抽象化層に関連付けられたメタデータを変更して、前記変更されたデータ・セットへのアクセスを可能にすることと
    を含む方法。
  2. 前記物理データ・ストアは特定されたテナントに所有され、プライベート・データ・ストアか、または共有データ・ストアのプライベート・スキーマかの1つであり、前記物理データ・ストアの前記データ・セットを変更することは、
    転送先データ構造を作成することであって、前記転送先データ構造は、プライベート・データ・ストアか、または共有データ・ストアのプライベート・スキーマかの1つであり、前記転送先データ構造は前記特定されたテナントに所有される、前記作成することと、
    前記物理データ・ストアの第1のテーブルを前記転送先データ構造に転送することと、
    前記第1のテーブルを前記転送先データ構造に転送することの間に、
    選択クエリを受け取ると、前記選択クエリを前記物理データ・ストアの前記テーブルと、前記転送先データ構造の前記転送されるテーブルとに発行し、発行する際に結果得られる各データ・セットに和集合が適用され前記選択クエリに対する結果のセットとして返され、
    挿入クエリを受け取ると、前記挿入クエリを前記転送先データ構造の前記転送されるテーブルに発行し、
    更新クエリまたは削除クエリを受け取ると、前記更新クエリまたは削除クエリを前記第1のテーブルと、前記転送先データ構造の前記転送されるテーブルとに発行することと
    を含む、請求項1に記載のコンピュータで実施される方法。
  3. 前記物理データ・ストアは共有データ・ストアであり、前記第1のテーブルは、前記物理データ・ストア内で前記特定されたテナントに所有されるプライベート・スキーマにあり、前記転送先データ構造は前記特定されたテナントに所有されるプライベート・データ・ストアである、請求項2に記載のコンピュータで実施される方法。
  4. 前記物理データ・ストアは、前記特定されたテナントに所有されるプライベート・データ・ストアであり、前記転送先データ構造は、共有物理データ・ストア内で前記特定されたテナントに所有されるプライベート・スキーマである、請求項2に記載のコンピュータで実施される方法。
  5. 前記物理データ・ストアの前記データ・セットを変更することが、
    前記物理データ・ストアの第1のテーブルからデータを選択することと、
    前記選択されたデータを転送先データ構造に転送することであって、前記転送先データ構造は、プライベート物理データ・ストア、共有データ・ストアのプライベート・スキーマ、または前記第2の種類のマルチテナント展開に対応する共有データ・ストアの共有スキーマ、の1つである、前記転送することと、
    前記選択されたデータを前記転送先データ構造に転送することの間に前記第1のテーブルを対象とするクエリを受け取ると、エラー・メッセージを返すことと
    を含む、請求項1に記載のコンピュータで実施される方法。
  6. 前記転送先データ構造は、共有される物理データ・ストアの共有スキーマであり、前記物理データ・ストアは、特定されたテナントに所有されるプライベート物理データ・ストアであり、前記方法がさらに、
    前記第1のテーブルから前記データを選択することの前に、前記第1のテーブルへのアクセスを阻止することと、
    前記第1のテーブルから前記データを選択することの後に、前記第1のテーブルから前記データを選択することから得られたデータ・セットの新しい列に前記テナント識別メタデータを挿入することと、
    前記第1のテーブルへのアクセスを回復することと
    を含む、請求項5に記載のコンピュータで実施される方法。
  7. 前記物理データ・ストアは共有データ・ストアであり、前記転送先データ構造は、共有される物理データ・ストアの共有スキーマであり、前記第1のテーブルは、前記物理データ・ストア内で特定されたテナントに所有されるプライベート・スキーマにあり、前記方法がさらに、
    前記第1のテーブルから前記データを選択することの前に、前記第1のテーブルへのアクセスを阻止することと、
    前記第1のテーブルから前記データを選択することの後に、前記第1のテーブルから前記データを選択することから得られたデータ・セットの新しい列に前記テナント識別メタデータを挿入することと、
    前記第1のテーブルへのアクセスを回復することと
    を含む、請求項5に記載のコンピュータで実施される方法。
  8. 前記物理データ・ストアは共有データ・ストアであり、前記第1のテーブルは、前記物理データ・ストアの共有スキーマにあり、前記転送先データ構造は、特定されたテナントに所有されるプライベート・データ・ストアであり、前記選択されるデータは前記特定されたテナントに所有され、前記方法がさらに、
    前記第1のテナントから前記データを選択することの後に、テナント識別を含んでいる列が選択された場合、テナント識別メタデータを含んでいる前記列を削除することと、
    前記データを前記転送先データ構造に転送することの前に、前記転送先データ構造を作成することと
    を含む、請求項5に記載のコンピュータで実施される方法。
  9. 前記物理データ・ストアは共有データ・ストアであり、前記第1のテーブルは、前記物理データ・ストアの共有スキーマにあり、前記転送先データ構造は、共有データ・ストア内で特定されたテナントに所有されるプライベート・スキーマであり、前記選択されるデータは前記特定されたテナントに所有され、前記方法がさらに、
    前記第1のテナントから前記データを選択することの後に、テナント識別を含んでいる列が選択された場合、テナント識別メタデータを含んでいる前記列を削除することと、
    前記データを前記転送先データ構造に転送することの前に、前記転送先データ構造を作成することと
    を含む、請求項5に記載のコンピュータで実施される方法。
  10. 前記第1の種類のマルチテナント展開で前記テナント固有のデータ・セットにアクセスするアプリケーションが、コードの変更を必要とせずに前記第2の種類のマルチテナント展開で前記テナント固有のデータ・セットにアクセスすることができ、マルチテナント展開で前記テナント固有のデータ・セットのデータにアクセスするアプリケーションは、前記テナント固有のデータ・セットの物理的な実装を意識しない、請求項1に記載のコンピュータで実施される方法。
  11. マルチテナント・システムでテナント固有のデータ・セットを管理するためのコンピュータ・プログラム製品であって、
    コンピュータ可読プログラム・コードが具現化されたコンピュータ可読記憶媒体を含み、前記コンピュータ可読プログラム・コードは、
    物理データ・ストアのデータ・セットを第1の種類のマルチテナント展開から第2の種類のマルチテナント展開に変換する要求を受け取るように構成されたコンピュータ可読プログラム・コードと、
    前記要求を行ったテナントを識別するテナント識別メタデータを検索するように構成されたコンピュータ可読プログラム・コードと、
    前記第2の種類のマルチテナント展開に基づいて前記物理データ・ストアの前記データ・セットを変更するように構成されたコンピュータ可読プログラム・コードと、
    抽象化層に関連付けられたメタデータを変更して、前記変更されたデータ・セットへのアクセスを可能にするように構成されたコンピュータ可読プログラム・コードと
    を含む、コンピュータ・プログラム製品。
  12. 前記物理データ・ストアは特定されたテナントに所有され、プライベート・データ・ストアか、または共有データ・ストアのプライベート・スキーマかの1つであり、前記物理データ・ストアの前記データ・セットを変更することは、
    転送先データ構造を作成することであって、前記転送先データ構造は、プライベート・データ・ストアか、または共有データ・ストアのプライベート・スキーマかの1つであり、前記転送先データ構造は前記特定されたテナントに所有される、前記作成することと、
    前記物理データ・ストアの第1のテーブルを前記転送先データ構造に転送することと、
    前記第1のテーブルを前記転送先データ構造に転送することの間に、
    選択クエリを受け取ると、前記選択クエリを前記物理データ・ストアの前記テーブルと、前記転送先データ構造の前記転送されるテーブルとに発行し、発行する際に結果得られる各データ・セットに和集合が適用され前記選択クエリに対する結果のセットとして返され、
    挿入クエリを受け取ると、前記挿入クエリを前記転送先データ構造の前記転送されるテーブルに発行し、
    更新クエリまたは削除クエリを受け取ると、前記更新クエリまたは削除クエリを前記第1のテーブルと、前記転送先データ構造の前記転送されるテーブルとに発行することと
    を含む、請求項11に記載のコンピュータ・プログラム製品。
  13. 前記物理データ・ストアは共有データ・ストアであり、前記第1のテーブルは、前記物理データ・ストア内で前記特定されたテナントに所有されるプライベート・スキーマにあり、前記転送先データ構造は前記特定されたテナントに所有されるプライベート・データ・ストアである、請求項12に記載のコンピュータ・プログラム製品。
  14. 前記物理データ・ストアは、前記特定されたテナントに所有されるプライベート・データ・ストアであり、前記転送先データ構造は、共有物理データ・ストア内で前記特定されたテナントに所有されるプライベート・スキーマである、請求項12に記載のコンピュータ・プログラム製品。
  15. 前記物理データ・ストアの前記データ・セットを変更することが、
    前記物理データ・ストアの第1のテーブルからデータを選択することと、
    前記選択されたデータを転送先データ構造に転送することであって、前記転送先データ構造は、プライベート物理データ・ストア、共有データ・ストアのプライベート・スキーマ、または前記第2の種類のマルチテナント展開に対応する共有データ・ストアの共有スキーマ、の1つである、前記転送することと、
    前記選択されたデータを前記転送先データ構造に転送することの間に前記第1のテーブルを対象とするクエリを受け取ると、エラー・メッセージを返すことと
    を含む、請求項11に記載のコンピュータ・プログラム製品。
  16. 前記転送先データ構造は、共有される物理データ・ストアの共有スキーマであり、前記物理データ・ストアは、特定されたテナントに所有されるプライベート物理データ・ストアであり、前記プログラム・コードがさらに、
    前記第1のテーブルから前記データを選択することの前に、前記第1のテーブルへのアクセスを阻止することと、
    前記第1のテーブルから前記データを選択することの後に、前記第1のテーブルから前記データを選択することから得られたデータ・セットの新しい列に前記テナント識別メタデータを挿入することと、
    前記第1のテーブルへのアクセスを回復することと
    を含む、請求項15に記載のコンピュータ・プログラム製品。
  17. 前記物理データ・ストアは共有データ・ストアであり、前記転送先データ構造は、共有される物理データ・ストアの共有スキーマであり、前記第1のテーブルは、前記物理データ・ストア内で特定されたテナントに所有されるプライベート・スキーマにあり、前記プログラム・コードがさらに、
    前記第1のテーブルから前記データを選択することの前に、前記第1のテーブルへのアクセスを阻止することと、
    前記第1のテーブルから前記データを選択することの後に、前記第1のテーブルから前記データを選択することから得られたデータ・セットの新しい列に前記テナント識別メタデータを挿入することと、
    前記第1のテーブルへのアクセスを回復することと
    を含む、請求項15に記載のコンピュータ・プログラム製品。
  18. 前記物理データ・ストアは共有データ・ストアであり、前記第1のテーブルは、前記物理データ・ストアの共有スキーマにあり、前記転送先データ構造は、特定されたテナントに所有されるプライベート・データ・ストアであり、前記選択されるデータは前記特定されたテナントに所有され、前記プログラム・コードがさらに、
    前記第1のテナントから前記データを選択することの後に、テナント識別を含んでいる列が選択された場合、テナント識別メタデータを含んでいる前記列を削除することと、
    前記データを前記転送先データ構造に転送することの前に、前記転送先データ構造を作成することと
    を含む、請求項15に記載のコンピュータ・プログラム製品。
  19. 前記物理データ・ストアは共有データ・ストアであり、前記第1のテーブルは、前記物理データ・ストアの共有スキーマにあり、前記転送先データ構造は、共有データ・ストア内で特定されたテナントに所有されるプライベート・スキーマであり、前記選択されるデータは前記特定されたテナントに所有され、前記プログラム・コードがさらに、
    前記第1のテナントから前記データを選択することの後に、テナント識別を含んでいる列が選択された場合、テナント識別メタデータを含んでいる前記列を削除することと、
    前記データを前記転送先データ構造に転送することの前に、前記転送先データ構造を作成することと
    を含む、請求項15に記載のコンピュータ・プログラム製品。
  20. 前記第1の種類のマルチテナント展開で前記テナント固有のデータ・セットにアクセスするアプリケーションが、コードの変更を必要とせずに前記第2の種類のマルチテナント展開で前記テナント固有のデータ・セットにアクセスすることができ、マルチテナント展開で前記テナント固有のデータ・セットのデータにアクセスするアプリケーションは、前記テナント固有のデータ・セットの物理的な実装を意識しない、請求項11に記載のコンピュータ・プログラム製品。
  21. 1つまたは複数のコンピュータ・プロセッサと、
    プログラムを保持するメモリとを含み、前記プログラムは、前記1つまたは複数のコンピュータ・プロセッサによって実行されると、マルチテナント・システムでテナント固有のデータ・セットを管理する動作を行うように構成され、前記動作は、
    物理データ・ストアのデータ・セットを第1の種類のマルチテナント展開から第2の種類のマルチテナント展開に変換する要求を受け取ることと、
    前記要求を行ったテナントを識別するテナント識別メタデータを検索することと、
    前記第2の種類のマルチテナント展開に基づいて前記物理データ・ストアの前記データ・セットを変更することと、
    抽象化層に関連付けられたメタデータを変更して、前記変更されたデータ・セットへのアクセスを可能にすることと
    を含む、システム。
  22. 前記物理データ・ストアは特定されたテナントに所有され、プライベート・データ・ストアか、または共有データ・ストアのプライベート・スキーマかの1つであり、前記物理データ・ストアの前記データ・セットを変更することは、
    転送先データ構造を作成することであって、前記転送先データ構造は、プライベート・データ・ストアか、または共有データ・ストアのプライベート・スキーマかの1つであり、前記転送先データ構造は前記特定されたテナントに所有される、前記作成することと、
    前記物理データ・ストアの第1のテーブルを前記転送先データ構造に転送することと、
    前記第1のテーブルを前記転送先データ構造に転送することの間に、
    選択クエリを受け取ると、前記選択クエリを前記物理データ・ストアの前記テーブルと、前記転送先データ構造の前記転送されるテーブルとに発行し、発行する際に結果得られる各データ・セットに和集合が適用され前記選択クエリに対する結果のセットとして返され、
    挿入クエリを受け取ると、前記挿入クエリを前記転送先データ構造の前記転送されるテーブルに発行し、
    更新クエリまたは削除クエリを受け取ると、前記更新クエリまたは削除クエリを前記第1のテーブルと、前記転送先データ構造の前記転送されるテーブルとに発行することと
    を含む、請求項21に記載のシステム。
  23. 前記物理データ・ストアは共有データ・ストアであり、前記第1のテーブルは、前記物理データ・ストア内で前記特定されたテナントに所有されるプライベート・スキーマにあり、前記転送先データ構造は前記特定されたテナントに所有されるプライベート・データ・ストアである、請求項22に記載のシステム。
  24. 前記物理データ・ストアは、前記特定されたテナントに所有されるプライベート・データ・ストアであり、前記転送先データ構造は、共有物理データ・ストア内で前記特定されたテナントに所有されるプライベート・スキーマである、請求項22に記載のシステム。
  25. 前記物理データ・ストアの前記データ・セットを変更することが、
    前記物理データ・ストアの第1のテーブルからデータを選択することと、
    前記選択されたデータを転送先データ構造に転送することであって、前記転送先データ構造は、プライベート物理データ・ストア、共有データ・ストアのプライベート・スキーマ、または前記第2の種類のマルチテナント展開に対応する共有データ・ストアの共有スキーマ、の1つである、前記転送することと、
    前記選択されたデータを前記転送先データ構造に転送することの間に前記第1のテーブルを対象とするクエリを受け取ると、エラー・メッセージを返すことと
    を含む、請求項21に記載のシステム。
  26. 前記転送先データ構造は、共有される物理データ・ストアの共有スキーマであり、前記物理データ・ストアは、特定されたテナントに所有されるプライベート物理データ・ストアであり、前記動作がさらに、
    前記第1のテーブルから前記データを選択することの前に、前記第1のテーブルへのアクセスを阻止することと、
    前記第1のテーブルから前記データを選択することの後に、前記第1のテーブルから前記データを選択することから得られたデータ・セットの新しい列に前記テナント識別メタデータを挿入することと、
    前記第1のテーブルへのアクセスを回復することと
    を含む、請求項25に記載のシステム。
  27. 前記物理データ・ストアは共有データ・ストアであり、前記転送先データ構造は、共有される物理データ・ストアの共有スキーマであり、前記第1のテーブルは、前記物理データ・ストア内で特定されたテナントに所有されるプライベート・スキーマにあり、前記動作がさらに、
    前記第1のテーブルから前記データを選択することの前に、前記第1のテーブルへのアクセスを阻止することと、
    前記第1のテーブルから前記データを選択することの後に、前記第1のテーブルから前記データを選択することから得られたデータ・セットの新しい列に前記テナント識別メタデータを挿入することと、
    前記第1のテーブルへのアクセスを回復することと
    を含む、請求項25に記載のシステム。
  28. 前記物理データ・ストアは共有データ・ストアであり、前記第1のテーブルは、前記物理データ・ストアの共有スキーマにあり、前記転送先データ構造は、特定されたテナントに所有されるプライベート・データ・ストアであり、前記選択されるデータは前記特定されたテナントに所有され、前記動作がさらに、
    前記第1のテナントから前記データを選択することの後に、テナント識別を含んでいる列が選択された場合、テナント識別メタデータを含んでいる前記列を削除することと、
    前記データを前記転送先データ構造に転送することの前に、前記転送先データ構造を作成することと
    を含む、請求項25に記載のシステム。
  29. 前記物理データ・ストアは共有データ・ストアであり、前記第1のテーブルは、前記物理データ・ストアの共有スキーマにあり、前記転送先データ構造は、共有データ・ストア内で特定されたテナントに所有されるプライベート・スキーマであり、前記選択されるデータは前記特定されたテナントに所有され、前記動作がさらに、
    前記第1のテナントから前記データを選択することの後に、テナント識別を含んでいる列が選択された場合、テナント識別メタデータを含んでいる前記列を削除することと、
    前記データを前記転送先データ構造に転送することの前に、前記転送先データ構造を作成することと
    を含む、請求項25に記載のシステム。
  30. 前記第1の種類のマルチテナント展開で前記テナント固有のデータ・セットにアクセスするアプリケーションが、コードの変更を必要とせずに前記第2の種類のマルチテナント展開で前記テナント固有のデータ・セットにアクセスすることができ、マルチテナント展開で前記テナント固有のデータ・セットのデータにアクセスするアプリケーションは、前記テナント固有のデータ・セットの物理的な実装を意識しない、請求項21に記載のシステム。
JP2014560471A 2012-03-08 2013-02-21 マルチテナント環境におけるテナント固有のデータ・セットを管理するための、コンピュータで実施される方法、コンピュータ・プログラム製品、およびシステム Expired - Fee Related JP6188732B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/414,786 US9244951B2 (en) 2012-03-08 2012-03-08 Managing tenant-specific data sets in a multi-tenant environment
US13/414,786 2012-03-08
PCT/IB2013/051398 WO2013132377A1 (en) 2012-03-08 2013-02-21 Managing tenant-specific data sets in a multi-tenant environment

Publications (2)

Publication Number Publication Date
JP2015513153A true JP2015513153A (ja) 2015-04-30
JP6188732B2 JP6188732B2 (ja) 2017-08-30

Family

ID=49114988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014560471A Expired - Fee Related JP6188732B2 (ja) 2012-03-08 2013-02-21 マルチテナント環境におけるテナント固有のデータ・セットを管理するための、コンピュータで実施される方法、コンピュータ・プログラム製品、およびシステム

Country Status (6)

Country Link
US (2) US9244951B2 (ja)
JP (1) JP6188732B2 (ja)
CN (1) CN104160381B (ja)
DE (1) DE112013001308T5 (ja)
GB (1) GB2514968A (ja)
WO (1) WO2013132377A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020525938A (ja) * 2017-06-27 2020-08-27 セールスフォース ドット コム インコーポレイティッド データベース内でテナントを作成及び削除するシステム及び方法
JP2020525906A (ja) * 2017-06-27 2020-08-27 セールスフォース ドット コム インコーポレイティッド データベーステナントマイグレーションのシステム及び方法
CN113039568A (zh) * 2018-09-19 2021-06-25 易享信息技术有限公司 多租户区块链网络中的轻量级节点
US20210318998A1 (en) * 2020-04-10 2021-10-14 International Business Machines Corporation Dynamic schema based multitenancy
US11782904B2 (en) 2018-09-19 2023-10-10 Salesforce, Inc. Advanced smart contract with decentralized ledger in a multi-tenant environment
US11809409B2 (en) 2018-09-19 2023-11-07 Salesforce, Inc. Multi-tenant distributed ledger interfaces
US11868321B2 (en) 2018-06-12 2024-01-09 Salesforce, Inc. Cryptographically secure multi-tenant data exchange platform

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130050205A (ko) * 2011-11-07 2013-05-15 한국전자통신연구원 SaaS 플랫폼 및 이를 이용한 다중 테넌트 지원을 위한 서비스 프로비저닝 방법
US9244951B2 (en) 2012-03-08 2016-01-26 International Business Machines Corporation Managing tenant-specific data sets in a multi-tenant environment
US20130282761A1 (en) * 2012-04-18 2013-10-24 Salesforce.Com, Inc. System and method for entity shape abstraction in an on demand environment
US9015106B2 (en) * 2012-04-30 2015-04-21 Dell Products, Lp Cloud based master data management system and method therefor
US9606995B2 (en) * 2012-04-30 2017-03-28 Dell Products, Lp Cloud based master data management system with remote data store and method therefor
US9158782B2 (en) 2012-04-30 2015-10-13 Dell Products, Lp Cloud based master data management system with configuration advisor and method therefore
US10255344B2 (en) * 2012-06-04 2019-04-09 [24]7.ai, Inc. Multi-tenant data integration
US9509571B1 (en) 2012-07-25 2016-11-29 NetSuite Inc. First-class component extensions for multi-tenant environments
CN104246761A (zh) * 2012-07-31 2014-12-24 惠普发展公司,有限责任合伙企业 在联合数据管理系统中支持多租用
CN103595551B (zh) * 2012-08-17 2016-12-21 杭州华三通信技术有限公司 基于mqc实现网络虚拟化的网络管理方法和装置
US10225164B2 (en) * 2012-09-07 2019-03-05 Oracle International Corporation System and method for providing a cloud computing environment
TWI490716B (zh) * 2012-12-07 2015-07-01 Ind Tech Res Inst 多租戶應用程序的開發方法、資料存取方法與系統
US11762849B2 (en) * 2013-01-14 2023-09-19 Mastercard International Incorporated Systems and methods for managing offline database access
US9477710B2 (en) * 2013-01-23 2016-10-25 Microsoft Technology Licensing, Llc Isolating resources and performance in a database management system
US20140214886A1 (en) * 2013-01-29 2014-07-31 ParElastic Corporation Adaptive multi-client saas database
US9596279B2 (en) 2013-02-08 2017-03-14 Dell Products L.P. Cloud-based streaming data receiver and persister
US9442993B2 (en) * 2013-02-11 2016-09-13 Dell Products L.P. Metadata manager for analytics system
US9141680B2 (en) 2013-02-11 2015-09-22 Dell Products L.P. Data consistency and rollback for cloud analytics
US9191432B2 (en) 2013-02-11 2015-11-17 Dell Products L.P. SAAS network-based backup system
US9912521B2 (en) * 2013-03-13 2018-03-06 Dell Products L.P. Systems and methods for managing connections in an orchestrated network
US9772835B1 (en) * 2013-03-13 2017-09-26 Amazon Technologies, Inc. Modification of program code for execution in a multi-tenant or distributed computing environment
TWI506452B (zh) * 2013-03-18 2015-11-01 Quanta Comp Inc 雲端平台及其資料交換方法
US9218387B2 (en) 2013-05-22 2015-12-22 Dell Products, Lp Cloud based master data management system and method therefor
US11314770B2 (en) * 2013-06-17 2022-04-26 Salesforce.Com, Inc. Database multiplexing architectures
US9183074B2 (en) 2013-06-21 2015-11-10 Dell Products, Lp Integration process management console with error resolution interface
US10027535B1 (en) * 2013-09-27 2018-07-17 Juniper Networks, Inc. Systems and methods for managing device configurations at various levels of abstraction
EP3058476A4 (en) * 2013-10-16 2017-06-14 Hewlett-Packard Enterprise Development LP Regulating enterprise database warehouse resource usage
US20150213285A1 (en) * 2014-01-24 2015-07-30 Dante Consulting, Inc. Configuration of partition relationships
JP6362080B2 (ja) 2014-04-16 2018-07-25 キヤノン株式会社 管理システムおよび管理方法
JP2015204087A (ja) * 2014-04-16 2015-11-16 キヤノン株式会社 管理システム及び管理方法
US10356026B2 (en) 2014-04-25 2019-07-16 Entit Software Llc Data management in a distributed computing environment
US10333979B1 (en) * 2014-06-10 2019-06-25 Amazon Technologies, Inc. Multi-tenant network data validation service
US9438673B2 (en) * 2014-07-16 2016-09-06 Microsoft Technology Licensing, Llc Dynamic update streams for real time provisioning
US10303553B2 (en) 2014-07-28 2019-05-28 Entit Software Llc Providing data backup
US9471803B2 (en) * 2014-08-07 2016-10-18 Emc Corporation System and method for secure multi-tenancy in an operating system of a storage system
US9395967B2 (en) 2014-11-03 2016-07-19 International Business Machines Corporation Workload deployment density management for a multi-stage computing architecture implemented within a multi-tenant computing environment
EP3243134A1 (en) * 2015-01-05 2017-11-15 Entit Software LLC Multi-tenant upgrading
US9853873B2 (en) 2015-01-10 2017-12-26 Cisco Technology, Inc. Diagnosis and throughput measurement of fibre channel ports in a storage area network environment
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10410155B2 (en) 2015-05-01 2019-09-10 Microsoft Technology Licensing, Llc Automatic demand-driven resource scaling for relational database-as-a-service
US10222986B2 (en) * 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US10778765B2 (en) 2015-07-15 2020-09-15 Cisco Technology, Inc. Bid/ask protocol in scale-out NVMe storage
DE102015214253A1 (de) * 2015-07-28 2017-02-02 Siemens Aktiengesellschaft Verfahren zur Einbringung einer Multimandantenfähigkeit in bestehende Applikationen
US10063451B2 (en) * 2015-09-28 2018-08-28 Juniper Networks, Inc. Providing application metadata using export protocols in computer networks
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
US10432471B2 (en) * 2015-12-31 2019-10-01 Microsoft Technology Licensing, Llc Distributed computing dependency management system
CN105554015B (zh) * 2015-12-31 2018-12-11 北京轻元科技有限公司 多租户容器云计算系统的管理网络及方法
CN105915470B (zh) * 2016-01-27 2019-05-21 无锡华云数据技术服务有限公司 一种基于Linux流量控制的弹性带宽配置方法
US11036520B1 (en) * 2016-05-09 2021-06-15 Coupa Software Incorporated System and method of setting a configuration to achieve an outcome
US10140172B2 (en) 2016-05-18 2018-11-27 Cisco Technology, Inc. Network-aware storage repairs
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US10664169B2 (en) 2016-06-24 2020-05-26 Cisco Technology, Inc. Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
US11042506B2 (en) * 2016-07-20 2021-06-22 Microsoft Technology Licensing, Llc Compliance violation detection
US10120734B1 (en) * 2016-08-29 2018-11-06 Equinix, Inc. Application programming interface and services engine with application-level multi-tenancy
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
US10430602B2 (en) * 2016-12-16 2019-10-01 International Business Machines Corporation Tape processing offload to object storage
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10992733B1 (en) * 2017-02-09 2021-04-27 Cadence Design Systems, Inc. Workload management in hybrid clouds
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
US10706170B2 (en) * 2017-03-16 2020-07-07 Sap Se Tenant table sharing with content separation
US10185552B2 (en) 2017-05-12 2019-01-22 Sap Se Enforcing content constraints on delivery and end user changes
US10437795B2 (en) 2017-05-12 2019-10-08 Sap Se Upgrading systems with changing constraints
US10268472B2 (en) 2017-05-16 2019-04-23 Sap Se Upgrading systems with replicated data
US10592353B2 (en) * 2017-06-27 2020-03-17 Salesforce.Com, Inc. Systems and methods of restoring a dataset of a database for a point in time
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
US10664317B2 (en) * 2017-10-17 2020-05-26 Accenture Global Solutions Limited Distribution of tasks for execution using correlated data in microservices environments
US10452646B2 (en) 2017-10-26 2019-10-22 Sap Se Deploying changes in a multi-tenancy database system
US10482080B2 (en) 2017-10-26 2019-11-19 Sap Se Exchanging shared containers and adapting tenants in multi-tenancy database systems
US10621167B2 (en) * 2017-10-26 2020-04-14 Sap Se Data separation and write redirection in multi-tenancy database systems
US10733168B2 (en) 2017-10-26 2020-08-04 Sap Se Deploying changes to key patterns in multi-tenancy database systems
US10740315B2 (en) 2017-10-26 2020-08-11 Sap Se Transitioning between system sharing types in multi-tenancy database systems
US10657276B2 (en) * 2017-10-26 2020-05-19 Sap Se System sharing types in multi-tenancy database systems
US10713277B2 (en) 2017-10-26 2020-07-14 Sap Se Patching content across shared and tenant containers in multi-tenancy database systems
US10740318B2 (en) 2017-10-26 2020-08-11 Sap Se Key pattern management in multi-tenancy database systems
CN108093026B (zh) 2017-11-17 2020-04-07 阿里巴巴集团控股有限公司 多租户请求的处理方法及装置
US10536461B2 (en) 2017-12-19 2020-01-14 Sap Se Service identity propagation between applications and reusable services
US11030164B2 (en) 2018-01-18 2021-06-08 Sap Se Artifact deployment for application managed service instances
US10715405B2 (en) 2018-01-30 2020-07-14 Sap Se Tenant isolated data in shared reusable services
CN108520004B (zh) * 2018-03-12 2021-11-19 舟谱数据技术南京有限公司 基于方法参数切面多租户数据源切换系统
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US10824648B2 (en) * 2018-04-18 2020-11-03 Sap Se Classification and distribution of extension objects in multitenant environments
US11061897B2 (en) * 2018-05-07 2021-07-13 Sap Se Materializable database objects in multitenant environments
US10942892B2 (en) 2018-05-18 2021-03-09 Sap Se Transport handling of foreign key checks
CN108776587B (zh) * 2018-05-25 2020-07-17 平安科技(深圳)有限公司 数据获取方法、装置、计算机设备以及存储介质
US10915551B2 (en) 2018-06-04 2021-02-09 Sap Se Change management for shared objects in multi-tenancy systems
US10936624B2 (en) 2018-06-12 2021-03-02 Sap Se Development and productive use of system with parallel use of production data and zero downtime of software changes
US11048815B2 (en) * 2018-08-06 2021-06-29 Snowflake Inc. Secure data sharing in a multi-tenant database system
US11151110B2 (en) * 2018-09-24 2021-10-19 Salesforce.Com, Inc. Identification of records for post-cloning tenant identifier translation
US20200183916A1 (en) * 2018-12-05 2020-06-11 Humana Inc. Multidimensional Multitenant System
US10700949B1 (en) * 2018-12-13 2020-06-30 Sap Se Stacking of tentant-aware services
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US20200210963A1 (en) 2018-12-27 2020-07-02 Clicksoftware, Inc. Methods and systems for appointment booking
CN109918405A (zh) * 2019-01-25 2019-06-21 平安科技(深圳)有限公司 一种基于多租户多数据源的检索方法和装置
US11061929B2 (en) * 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US10990608B2 (en) * 2019-03-19 2021-04-27 Snowflake Inc. Transferring connections in a multiple deployment database
CN111737215A (zh) * 2019-03-25 2020-10-02 中国电子科技集团公司信息科学研究院 数据共享系统、方法和计算机可读存储介质
US11966870B2 (en) 2019-04-18 2024-04-23 Oracle International Corporation System and method for determination of recommendations and alerts in an analytics environment
US11409904B2 (en) * 2019-04-18 2022-08-09 Microsoft Technology Licensing, Llc User interface for building a data privacy pipeline and contractual agreement to share data
US11614976B2 (en) * 2019-04-18 2023-03-28 Oracle International Corporation System and method for determining an amount of virtual machines for use with extract, transform, load (ETL) processes
US11113278B2 (en) * 2019-05-31 2021-09-07 Snowflake Inc. Data sharing and materialized views in multiple tenant database systems
US11635990B2 (en) 2019-07-01 2023-04-25 Nutanix, Inc. Scalable centralized manager including examples of data pipeline deployment to an edge system
US11501881B2 (en) 2019-07-03 2022-11-15 Nutanix, Inc. Apparatus and method for deploying a mobile device as a data source in an IoT system
US20210112128A1 (en) * 2019-10-09 2021-04-15 Nutanix, Inc. Platform-as-a-service deployment including service domains
CN110990374A (zh) * 2019-11-15 2020-04-10 山东大学 一种基于云计算的电子政务平台系统架构
US11134083B2 (en) * 2020-01-14 2021-09-28 Sap Se User authorization and authentication accessing microservices across spaces
US11349957B2 (en) * 2020-05-14 2022-05-31 Bank Of America Corporation Automatic knowledge management for data lineage tracking
CN111400393B (zh) * 2020-06-04 2020-10-09 腾讯科技(深圳)有限公司 基于多应用平台的数据处理方法和装置、存储介质
CN112035213B (zh) * 2020-08-28 2023-02-10 北京白龙马云行科技有限公司 多租户网约车系统及动态隔离方法
CN112100262A (zh) * 2020-09-16 2020-12-18 南京智数云信息科技有限公司 多租户SaaS平台快速搭建及动态扩容的方法及系统
CN112199044B (zh) * 2020-10-10 2023-04-25 中国人民大学 面向多租户的ftl设置方法、系统、计算机程序及存储介质
US11711381B2 (en) 2020-10-29 2023-07-25 International Business Machines Corporation Automatic hotspot identification in network graphs
US11726764B2 (en) 2020-11-11 2023-08-15 Nutanix, Inc. Upgrade systems for service domains
US11665221B2 (en) 2020-11-13 2023-05-30 Nutanix, Inc. Common services model for multi-cloud platform
US11841840B2 (en) * 2020-12-10 2023-12-12 Sap Se Technical system settings using a shared database
CN112800122B (zh) * 2021-02-08 2024-01-30 北京字节跳动网络技术有限公司 数据处理方法、装置和电子设备
US11736585B2 (en) 2021-02-26 2023-08-22 Nutanix, Inc. Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications
DE102021126032A1 (de) 2021-06-24 2022-12-29 Taxy.io GmbH Computerimplementiertes Verfahren zur Grundsteuererklärung
US11989541B2 (en) 2021-10-04 2024-05-21 Target Brands, Inc. Deployment migration tool with decoding capabilities

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113103A (ja) * 2009-11-24 2011-06-09 Hitachi Ltd マルチテナント型コンピュータシステム
WO2011111532A1 (ja) * 2010-03-10 2011-09-15 日本電気株式会社 データベースシステム
US20110270886A1 (en) * 2010-04-30 2011-11-03 International Business Machines Corporation Mechanism and apparatus for transparently enables multi-tenant file access operation
US20110302277A1 (en) * 2010-06-07 2011-12-08 Salesforce.Com, Inc. Methods and apparatus for web-based migration of data in a multi-tenant database system
US20120011518A1 (en) * 2010-07-08 2012-01-12 International Business Machines Corporation Sharing with performance isolation between tenants in a software-as-a service system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590669B2 (en) * 2004-04-06 2009-09-15 Microsoft Corporation Managing client configuration data
US20080239985A1 (en) 2007-03-30 2008-10-02 International Business Machines Corporation Method and apparatus for a services model based provisioning in a multitenant environment
CN101639835A (zh) * 2008-07-30 2010-02-03 国际商业机器公司 多租户场景中应用数据库分区的方法和装置
US9177271B2 (en) 2008-08-14 2015-11-03 Hewlett-Packard Development Company, L.P. Heterogeneous information technology (IT) infrastructure management orchestration
US8576218B2 (en) 2008-12-18 2013-11-05 Microsoft Corporation Bi-directional update of a grid and associated visualizations
US9208188B2 (en) * 2009-02-17 2015-12-08 Microsoft Technology Licensing, Llc Tenant management of a hosted multi-tenant application
US20100262632A1 (en) * 2009-04-14 2010-10-14 Microsoft Corporation Data transfer from on-line to on-premise deployment
US9275160B2 (en) * 2010-05-20 2016-03-01 Salesforce.Com, Inc. Performing an upgrade in a multi-tenant database system environment
CN102255933B (zh) 2010-05-20 2016-03-30 中兴通讯股份有限公司 云服务中介、云计算方法及云系统
US8739157B2 (en) * 2010-08-26 2014-05-27 Adobe Systems Incorporated System and method for managing cloud deployment configuration of an application
JP5476261B2 (ja) * 2010-09-14 2014-04-23 株式会社日立製作所 マルチテナント型情報処理システム、管理サーバ及び構成管理方法
US8386501B2 (en) * 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8875122B2 (en) * 2010-12-30 2014-10-28 Sap Se Tenant move upgrade
US9613092B2 (en) * 2010-12-31 2017-04-04 Microsoft Technology Licensing, Llc Allocation of tenants to database services
US9430505B2 (en) * 2011-04-18 2016-08-30 Infosys Limited Automated data warehouse migration
US9244951B2 (en) 2012-03-08 2016-01-26 International Business Machines Corporation Managing tenant-specific data sets in a multi-tenant environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113103A (ja) * 2009-11-24 2011-06-09 Hitachi Ltd マルチテナント型コンピュータシステム
WO2011111532A1 (ja) * 2010-03-10 2011-09-15 日本電気株式会社 データベースシステム
US20110270886A1 (en) * 2010-04-30 2011-11-03 International Business Machines Corporation Mechanism and apparatus for transparently enables multi-tenant file access operation
US20110302277A1 (en) * 2010-06-07 2011-12-08 Salesforce.Com, Inc. Methods and apparatus for web-based migration of data in a multi-tenant database system
US20120011518A1 (en) * 2010-07-08 2012-01-12 International Business Machines Corporation Sharing with performance isolation between tenants in a software-as-a service system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7309005B2 (ja) 2017-06-27 2023-07-14 セールスフォース インコーポレイテッド データベーステナントマイグレーションのシステム及び方法
JP2020525906A (ja) * 2017-06-27 2020-08-27 セールスフォース ドット コム インコーポレイティッド データベーステナントマイグレーションのシステム及び方法
US11797498B2 (en) 2017-06-27 2023-10-24 Salesforce, Inc. Systems and methods of database tenant migration
JP7053682B2 (ja) 2017-06-27 2022-04-12 セールスフォース ドット コム インコーポレイティッド データベーステナントマイグレーションのシステム及び方法
JP2022095781A (ja) * 2017-06-27 2022-06-28 セールスフォース ドット コム インコーポレイティッド データベーステナントマイグレーションのシステム及び方法
JP2020525938A (ja) * 2017-06-27 2020-08-27 セールスフォース ドット コム インコーポレイティッド データベース内でテナントを作成及び削除するシステム及び方法
US11868321B2 (en) 2018-06-12 2024-01-09 Salesforce, Inc. Cryptographically secure multi-tenant data exchange platform
CN113039568B (zh) * 2018-09-19 2022-06-28 易享信息技术有限公司 多租户区块链网络中的轻量级节点
US11782904B2 (en) 2018-09-19 2023-10-10 Salesforce, Inc. Advanced smart contract with decentralized ledger in a multi-tenant environment
US11809409B2 (en) 2018-09-19 2023-11-07 Salesforce, Inc. Multi-tenant distributed ledger interfaces
CN113039568A (zh) * 2018-09-19 2021-06-25 易享信息技术有限公司 多租户区块链网络中的轻量级节点
US20210318998A1 (en) * 2020-04-10 2021-10-14 International Business Machines Corporation Dynamic schema based multitenancy
US11995047B2 (en) * 2020-04-10 2024-05-28 International Business Machines Corporation Dynamic schema based multitenancy

Also Published As

Publication number Publication date
JP6188732B2 (ja) 2017-08-30
DE112013001308T5 (de) 2014-12-11
GB2514968A (en) 2014-12-10
GB201416925D0 (en) 2014-11-12
US20130238641A1 (en) 2013-09-12
US9251183B2 (en) 2016-02-02
WO2013132377A1 (en) 2013-09-12
CN104160381B (zh) 2017-05-17
CN104160381A (zh) 2014-11-19
US20130238557A1 (en) 2013-09-12
US9244951B2 (en) 2016-01-26

Similar Documents

Publication Publication Date Title
JP6188732B2 (ja) マルチテナント環境におけるテナント固有のデータ・セットを管理するための、コンピュータで実施される方法、コンピュータ・プログラム製品、およびシステム
US9996565B2 (en) Managing an index of a table of a database
US8775425B2 (en) Systems and methods for massive structured data management over cloud aware distributed file system
US9762670B1 (en) Manipulating objects in hosted storage
US10002170B2 (en) Managing a table of a database
US10838934B2 (en) Modifying archive data without table changes
US9742860B2 (en) Bi-temporal key value cache system
US10838964B2 (en) Supporting a join operation against multiple NoSQL databases
US9529933B2 (en) Dynamic assignment of business logic based on schema mapping metadata
US9679014B2 (en) Generating and accessing a data table
US11704327B2 (en) Querying distributed databases
US9886463B2 (en) Generating and accessing a data table
US20230153300A1 (en) Building cross table index in relational database
US11334600B1 (en) Partial reloading in data synchronization
US11354312B2 (en) Access-plan-based querying for federated database-management systems
US11294892B2 (en) Virtual archiving of database records
US11797561B2 (en) Reducing character set conversion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170629

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: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170801

R150 Certificate of patent or registration of utility model

Ref document number: 6188732

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees