IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セールスフォース ドット コム インコーポレイティッドの特許一覧

特表2022-545303概念データモデルからのソフトウェアアーチファクトの生成
<>
  • 特表-概念データモデルからのソフトウェアアーチファクトの生成 図1
  • 特表-概念データモデルからのソフトウェアアーチファクトの生成 図2
  • 特表-概念データモデルからのソフトウェアアーチファクトの生成 図3
  • 特表-概念データモデルからのソフトウェアアーチファクトの生成 図4
  • 特表-概念データモデルからのソフトウェアアーチファクトの生成 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-27
(54)【発明の名称】概念データモデルからのソフトウェアアーチファクトの生成
(51)【国際特許分類】
   G06F 8/60 20180101AFI20221020BHJP
【FI】
G06F8/60
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021505417
(86)(22)【出願日】2020-08-27
(85)【翻訳文提出日】2021-03-09
(86)【国際出願番号】 US2020048163
(87)【国際公開番号】W WO2021041646
(87)【国際公開日】2021-03-04
(31)【優先権主張番号】16/552,755
(32)【優先日】2019-08-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】506332063
【氏名又は名称】セールスフォース ドット コム インコーポレイティッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】マーティンソン,ラーズ
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA01
5B376AA32
5B376AA34
5B376AA35
5B376AA38
5B376AB01
5B376AB12
(57)【要約】
単一の概念データモデルから多種多様なプラットフォームにわたり動作可能なソフトウェアアーチファクトを生成するシステム、方法、及びコンピュータプログラムプロダクトの実施形態が本願で開示される。概念データモデルは、プラットフォーム特有の論理データモデルの作成を可能にするメタデータで強化することができ、該論理データモデルは、デプロイ可能なソフトウェアアーチファクトを作成するために活用されるさらなるメタデータを含む。組織は、概念データモデルを後に修正することができ、全ての関連するソフトウェアアーチファクトは、全ての統合されたプラットフォームにわたり更新及び再デプロイすることができる。このような概念データモデルは、さらに、組織の技術的インフラストラクチャにおけるデータエンティティを記述するドキュメンテーションの作成、データ交換システムによる使用のためのマッピングファイルの作成、及びデータランドスケープにわたり複数のデータストアからデータを集めるフェデレーテッドクエリの処理を容易にする。
【特許請求の範囲】
【請求項1】
コンピュータにより実施される方法であって、
1つ以上のプロセッサにより、エンティティと、複数のプラットフォームと、前記複数のプラットフォームの中の各プラットフォームについてのデプロイメント要件を記述する第1のメタデータとを含む概念データモデルを定義するステップと、
前記1つ以上のプロセッサにより、前記複数のプラットフォームの中の各プラットフォームについて、前記概念データモデル及び前記第1のメタデータに基づいてストレージメカニズム及びストレージ特有のエンティティ定義のためのデプロイメント要件を記述する第2のメタデータを含む論理データモデルを作成するステップと、
前記1つ以上のプロセッサにより、前記複数のプラットフォームの中の各プラットフォームについて、前記第2のメタデータ及び前記ストレージ特有のエンティティ定義に基づいてインストールスクリプト及びデータ投入スクリプトを生成するステップと、
前記1つ以上のプロセッサにより、前記インストールスクリプト及び前記データ投入スクリプトを使用して、前記複数のプラットフォームの中の各プラットフォームに前記エンティティをデプロイするステップと、
を含む方法。
【請求項2】
前記1つ以上のプロセッサにより、前記概念データモデルに対する変更を受け取るステップと、
前記1つ以上のプロセッサにより、前記変更及び前記概念データモデルに基づいて、前記複数のプラットフォームの中の各プラットフォームについての更新インストールスクリプト及び更新データ投入スクリプトを作成するステップと、
前記1つ以上のプロセッサにより、前記更新インストールスクリプト及び前記更新データ投入スクリプトを使用して、前記複数のプラットフォームの中の各プラットフォームに前記エンティティを再デプロイするステップと、
をさらに含む請求項1に記載の方法。
【請求項3】
前記データ投入スクリプトを生成するステップは、
前記1つ以上のプロセッサにより、前記エンティティに対応するエンティティタイプを決定するステップと、
前記1つ以上のプロセッサにより、前記第1のメタデータ及び前記エンティティタイプに基づいてランダム化データを導出するステップと、
前記1つ以上のプロセッサにより、前記複数のプラットフォームの中の各プラットフォームについて、前記エンティティに前記ランダム化データを投入するためのデータ投入スクリプトを作成するステップと、
をさらに含む、請求項1に記載の方法。
【請求項4】
前記1つ以上のプロセッサにより、前記エンティティに対応するエンティティタイプを決定するステップと、
前記1つ以上のプロセッサにより、前記第1のメタデータ及び前記エンティティタイプに基づいてドキュメンテーションを作成するステップであり、前記ドキュメンテーションは前記エンティティ及び前記エンティティタイプを記述する、ステップと、
をさらに含む請求項1に記載の方法。
【請求項5】
前記1つ以上のプロセッサにより、前記概念データモデルに基づいてマッピングファイルを作成するステップ、
をさらに含む請求項1に記載の方法。
【請求項6】
前記1つ以上のプロセッサにより、フェデレーテッドクエリを処理するためにクエリエージェントに前記概念データモデルを公開するステップ、
をさらに含む請求項1に記載の方法。
【請求項7】
前記概念データモデルは、第2のエンティティと、前記エンティティ及び前記第2のエンティティ間の関係とをさらに含む、請求項1に記載の方法。
【請求項8】
システムであって、
メモリと、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、前記メモリに結合され、
エンティティと、複数のプラットフォームと、前記複数のプラットフォームの中の各プラットフォームについてのデプロイメント要件を記述する第1のメタデータとを含む概念データモデルを定義し、
前記複数のプラットフォームの中の各プラットフォームについて、前記概念データモデル及び前記第1のメタデータに基づいてストレージメカニズム及びストレージ特有のエンティティ定義のためのデプロイメント要件を記述する第2のメタデータを含む論理データモデルを作成し、
前記複数のプラットフォームの中の各プラットフォームについて、前記第2のメタデータ及び前記ストレージ特有のエンティティ定義に基づいてインストールスクリプト及びデータ投入スクリプトを生成し、
前記インストールスクリプト及び前記データ投入スクリプトを使用して、前記複数のプラットフォームの中の各プラットフォームに前記エンティティをデプロイする
ように構成される、システム。
【請求項9】
前記少なくとも1つのプロセッサはさらに、
前記概念データモデルに対する変更を受け取り、
前記変更及び前記概念データモデルに基づいて、前記複数のプラットフォームの中の各プラットフォームについての更新インストールスクリプト及び更新データ投入スクリプトを作成し、
前記更新インストールスクリプト及び前記更新データ投入スクリプトを使用して、前記複数のプラットフォームの中の各プラットフォームに前記エンティティを再デプロイする
ように構成される、請求項8に記載のシステム。
【請求項10】
前記データ投入スクリプトを生成するために、前記少なくとも1つのプロセッサは、
前記エンティティに対応するエンティティタイプを決定し、
前記第1のメタデータ及び前記エンティティタイプに基づいてランダム化データを導出し、
前記複数のプラットフォームの中の各プラットフォームについて、前記エンティティに前記ランダム化データを投入するためのデータ投入スクリプトを作成する
ように構成される、請求項8に記載のシステム。
【請求項11】
前記少なくとも1つのプロセッサはさらに、
前記エンティティに対応するエンティティタイプを決定し、
前記第1のメタデータ及び前記エンティティタイプに基づいてドキュメンテーションを作成し、前記ドキュメンテーションは前記エンティティ及び前記エンティティタイプを記述する
ように構成される、請求項8に記載のシステム。
【請求項12】
前記少なくとも1つのプロセッサはさらに、
前記概念データモデルに基づいてマッピングファイルを作成する
ように構成される、請求項8に記載のシステム。
【請求項13】
前記少なくとも1つのプロセッサはさらに、
フェデレーテッドクエリを処理するためにクエリエージェントに前記概念データモデルを公開する
ように構成される、請求項8に記載のシステム。
【請求項14】
前記概念データモデルは、第2のエンティティと、前記エンティティ及び前記第2のエンティティ間の関係とをさらに含む、請求項8に記載のシステム。
【請求項15】
少なくとも1つのコンピューティングデバイスにより実行されたときに前記少なくとも1つのコンピューティングデバイスに動作を実行させる命令を記憶された非一時的コンピュータ読取可能デバイスであって、前記動作は、
エンティティと、複数のプラットフォームと、前記複数のプラットフォームの中の各プラットフォームについてのデプロイメント要件を記述する第1のメタデータとを含む概念データモデルを定義することと、
前記複数のプラットフォームの中の各プラットフォームについて、前記概念データモデル及び前記第1のメタデータに基づいてストレージメカニズム及びストレージ特有のエンティティ定義のためのデプロイメント要件を記述する第2のメタデータを含む論理データモデルを作成することと、
前記複数のプラットフォームの中の各プラットフォームについて、前記第2のメタデータ及び前記ストレージ特有のエンティティ定義に基づいてインストールスクリプト及びデータ投入スクリプトを生成することと、
前記インストールスクリプト及び前記データ投入スクリプトを使用して、前記複数のプラットフォームの中の各プラットフォームに前記エンティティをデプロイすることと、
を含む、非一時的コンピュータ読取可能デバイス。
【請求項16】
前記動作は、
前記概念データモデルに対する変更を受け取ることと、
前記変更及び前記概念データモデルに基づいて、前記複数のプラットフォームの中の各プラットフォームについての更新インストールスクリプト及び更新データ投入スクリプトを作成することと、
前記更新インストールスクリプト及び前記更新データ投入スクリプトを使用して、前記複数のプラットフォームの中の各プラットフォームに前記エンティティを再デプロイすることと、
をさらに含む、請求項15に記載の非一時的コンピュータ読取可能デバイス。
【請求項17】
前記データ投入スクリプトを生成することは、
前記エンティティに対応するエンティティタイプを決定することと、
前記第1のメタデータ及び前記エンティティタイプに基づいてランダム化データを導出することと、
前記複数のプラットフォームの中の各プラットフォームについて、前記エンティティに前記ランダム化データを投入するためのデータ投入スクリプトを作成することと、
をさらに含む、請求項15に記載の非一時的コンピュータ読取可能デバイス。
【請求項18】
前記動作は、
前記エンティティに対応するエンティティタイプを決定することと、
前記第1のメタデータ及び前記エンティティタイプに基づいてドキュメンテーションを作成することであり、前記ドキュメンテーションは前記エンティティ及び前記エンティティタイプを記述する、ことと
をさらに含む、請求項15に記載の非一時的コンピュータ読取可能デバイス。
【請求項19】
前記動作は、
前記概念データモデルに基づいてマッピングファイルを作成すること
をさらに含む、請求項15に記載の非一時的コンピュータ読取可能デバイス。
【請求項20】
前記動作は、
フェデレーテッドクエリを処理するためにクエリエージェントに前記概念データモデルを公開すること
をさらに含む、請求項15に記載の非一時的コンピュータ読取可能デバイス。
【発明の詳細な説明】
【背景技術】
【0001】
[他の出願の相互参照]
本出願は、2019年8月27日に出願され「GENERATING SOFTWARE ARTIFACTS FROM A CONCEPTUAL DATA MODEL」と題された米国特許出願第16/552,755号に対する優先権を主張し、該出願は、全ての目的のため参照により本明細書に組み込まれる。
【0002】
[背景技術]
組織は、組織の技術システム内で使用される情報を表すデータモデルを採用することがある。データモデルは、組織がデータをより良く管理、制御、及び編成し、システム間のやりとりを改善及び強化し、より良いドキュメンテーションを作成することを可能にする抽象化の役割を果たす。組織は、実体関連図、XMLスキーマ、又はアーキテクチャを定義しながら表現を特定の物理ストレージ実装又はソリューションから切り離す他の適切な構成を使用して、これらのデータモデルを構築し、表現することができる。これらのデータモデルは、組織内のエンジニアにとって価値ある参考資料の役割を果たす可能性があり、さらに、多様なユースケースを扱う様々なプログラムの文脈においてデプロイされ、利用され、活用される可能性がある。
【図面の簡単な説明】
【0003】
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、本開示の実施形態を例示し、説明と共に、本開示の原理を説明し、当業者が実施形態を作製及び使用できるようにするのにさらに役立つ。
図1】いくつかの実施形態による、概念データモデルを含む環境のブロック図である。
図2】いくつかの実施形態による、データモデリングツールを含むアーキテクチャのブロック図である。
図3】いくつかの実施形態による、概念データモデルに基づくソフトウェアアーチファクトを作成する方法を示すフローチャートである。
図4】いくつかの実施形態による、概念データモデルに基づいて開発者ドキュメンテーションを生成する方法を示すフローチャートである。
図5】様々な実施形態を実施するのに有用な一例示的なコンピュータシステムである。
【0004】
図面において、同様の参照番号は、同一又は類似の要素を一般に示す。さらに、一般に、参照番号の左端の数字は、その参照番号が最初に現れる図面を識別する。
【発明を実施するための形態】
【0005】
本明細書では、単一の概念データモデルから多種多様なプラットフォームにわたり動作可能なソフトウェアアーチファクト(software artifacts)を生成するシステム、装置、デバイス、方法、及び/又はコンピュータプログラムプロダクトの実施形態、及び/又はこれらの組み合わせ及びサブコンビネーションが提供される。
【0006】
概念データモデルは、組織の技術的ランドスケープで使用されるデータを表すことができる。このような技術的ランドスケープは、様々なタイプのデータを利用し、組み込み、及びそれに依存する様々なソフトウェアアプリケーション、システム、及びツールを含むことがある。ソフトウェアアプリケーションは、異なるプラットフォーム上で動作し、異なる環境でホストされることがあり、そのデータは、異なるデータストア(例えば、データベース、データレイク、テキストファイルなど)にハウジングされたソフトウェアアプリケーションにより使用されることがある。概念データモデルは、これらのデータソースにわたるデータをカタログ化し、集中化ロケーション(centralized location)にマッピングすることができる。組織は、適切なデータモデリング手法、インターフェース、又はツールを使用してそのような概念データモデルを作成することができ、当業者は、データモデルを作成するために幅広い手法が一般に存在することを理解するであろう。
【0007】
組織は、1つ以上のクラウドサービスプラットフォーム内、該プラットフォーム上、及び/又は該プラットフォームにわたり、データをハウジングし、記憶し、データにアクセスすることがある。これらのプラットフォームは、組織のデータをハウジングするための多様な機能性及び異なるストレージメカニズムを提供し得る。このようなプラットフォームは、他のプラットフォームと比べて長所と短所があり、ゆえに、異なるプラットフォームが、組織により使用される特定のデータ駆動型アプリケーションに対してより良く適する可能性がある。ゆえに、組織は、その技術的ランドスケープにわたり複数のクラウドサービスプラットフォームを採用することがある。組織はまた、内部で管理されたサーバ上で、例えば、データセンタ、ホスティング設備において、オフィスにおいてなどでデータをハウジングし、アプリケーションを実行することがあり、これらは、以下の開示においてプラットフォームと呼ばれることがある。
【0008】
プラットフォームは、多様なストレージメカニズムを適応させることがある。例えば、いくつかのプラットフォームは、関係データベース、グラフデータベース、列指向(columnar)データベース、インメモリデータベース、NoSQLデータベース、キーバリュー(key-value)ストア、データレイク、又はデータを記憶するための他の適切なストレージメカニズムを提供する/含むことがある。さらに、これらのストレージメカニズムを満たし又は提供するために、複数のソリューション、プロダクト、アプローチなどが提供されることがある。例えば、組織は、特定のプラットフォーム上の特定の関係データベース間で選択することができ得る。
【0009】
組織は、これらのプラットフォーム及びデータストレージメカニズムにわたるアプリケーション及びデータを記述する概念データモデルを作成することができる。概念データモデルにより提供される抽象化は、いくつかの実際的な利点を提供する。例えば、概念データモデルは、組織内のエンジニアのための参考資料の役割を果たすことがある。組織は、さらに、ひとたび開発された概念データモデルを様々なプログラムの文脈及びユースケースで採用してもよい。例えば、組織は、概念データモデルを使用して、物理エンティティ(例えば、実際のテーブル、ファイルなど)、論理データモデル、及び物理データモデルを作成し、デプロイし(deploy)、保守する(maintain)ことができる。組織は、ソフトウェアアーチファクト、例えば、データ定義言語(data definition language、DDL)スクリプト及びデータ操作言語(data manipulation language、DML)スクリプトを作成して、データランドスケープにわたりこれらのエンティティをインスタンス化し、作成し、保守することができる。
【0010】
しかしながら、組織が複数のプラットフォームを活用するとき、各プラットフォームは、ソフトウェアアーチファクトが遵守しなければならない固有の要件及びプロトコルを有する可能性がある。組織は、あらゆる統合されたプラットフォーム及びそれらのプラットフォームで使用されるあらゆるストレージメカニズムをカバーするために、大量のソフトウェアアーチファクトを開発する必要があり得る。さらに、概念データモデルが、頻繁に発生し得る何らかの方法で(例えば、新しいフィールドを追加するソフトウェア更新の間に)変化したとき、組織は、既存のソフトウェアアーチファクトを手動で修正及び更新し、あらゆるプラットフォームにわたりソフトウェアアーチファクトの全てを再デプロイする(redeploy)必要があり得る。多くのプラットフォーム及びストレージメカニズムを使用する組織では、ソフトウェアアーチファクトの作成及び保守は極度に負担が大きい可能性がある。レガシーのデータモデリング手法やシステムは、この負担を軽減する解決策を提供しない。
【0011】
したがって、全ての統合されたプラットフォーム及びデータストアにわたり動作可能なソフトウェアアーチファクトの作成を容易にするために、多種多様なプラットフォームにわたる複数の論理データモデルの生成を促進する単一の概念データモデルを利用する必要が存在する。単一の概念データモデルから、全ての統合されたプラットフォームにわたるデータランドスケープをインスタンス化及び保守するために必要なソフトウェアアーチファクトの全範囲を生成することにより、組織は、そのデータランドスケープを集中化ロケーションからより良く管理し、統合されたソフトウェアアプリケーションへのソフトウェア更新のリリースを自動化し、最終的に時間、費用、及びリソースを節約し得る。
【0012】
図1は、いくつかの実施形態による、概念データモデルを含む環境100のブロック図である。本明細書におけるいずれの動作も、ハードウェア、ソフトウェア、又はこれらの任意の組み合わせで、モジュール又は専用デバイスなどの図中の任意のタイプの構造により実行することができる。環境100は、概念データモデル110、データモデル辞書112、データモデル図114、第1のメタデータ116、プラットフォーム120、論理データモデル130、第2のメタデータ132、物理データモデル140、デプロイメント(deployment)ツール150、インストールスクリプト152、投入(population)スクリプト154、及びドキュメンテーション156を含むことができる。
【0013】
概念データモデル110は、データランドスケープを示すデータモデルでもよい。概念データモデル110は、組織により採用されるソフトウェアアプリケーションにより使用され、あるいはその他の方法で複数のプラットフォームにわたり記憶されるデータを表すことができる。概念データモデル110は、物理デバイス、アーキテクチャの細部、実装詳細、ストレージの特徴などを参照することなく組織のデータを表すことができ、したがって、データエンティティの論理的な表現である。組織は、任意の適切なデータモデリング手法又はツール、例えば、XML文書、モデリング言語、又は適切な設計ツールを使用して、概念データモデル110を作成することができる。概念データモデル110は、複数のプラットフォーム120及びそこで提供される異なるストレージメカニズムにわたるソフトウェアアーチファクト、例えば、インストールスクリプト152、投入スクリプト154、及びドキュメンテーション156の作成を容易にすることができる。概念データモデル110のみを保守することにより、組織は、各プラットフォームに固有の論理データモデル、組織の技術的ランドスケープ内に統合された各ストレージメカニズムに固有の物理データモデル、及び、以下でさらに詳細に説明される、データランドスケープを管理するためのソフトウェアアーチファクトの保守を回避することができる。概念データモデル110は、データモデル辞書112、データモデル図114、及び第1のメタデータ116を含むことができる。
【0014】
データモデル辞書112は、組織の技術システム内に存在するデータエンティティのテキスト又は他の適切な構文記述でもよい。このようなエンティティには、データベーステーブル、文書、ファイル、データレイク等を含んでもよい。データモデル辞書112は、エンティティ名、データ型、フィールドの幅又はサイズ、順序付け、エンティティ間の関係、及びデータエンティティ又は要素の物理属性を記述する他の適切な情報を含むことができる。いくつかの実施形態において、データモデル辞書112は、ASCIIテキストファイル、XMLファイル、又は他の適切なテキスト定義ファイルでもよい。データモデル辞書112は、適切なデータモデリングツール、コンポーザ、ツールキットなどを使用して作成し、保守することができる。一実施形態において、データモデル辞書112は、実体関連図(entity-relationship diagram、ERD)又は他の視覚的表現における情報から、又は他の適切な高度なデータモデリング手法を介して導出されてもよい。
【0015】
データモデル図114は、組織の技術システムで使用されるデータのERD又は他のグラフィカル表現でもよい。データモデル図114は、データモデル辞書112を補完又は補足し、あるいは冗長情報をグラフィカル形式で提供することができる。したがって、データモデル図114は、データランドスケープにわたるエンティティ及びエンティティ間の関係を規定するための代替メカニズムを提供することができる。データモデル図114は、矢印、線、又は他の適切なインジケータを使用して、エンティティ間の関係を規定することができる。例えば、関係データベースシステムにおいて、エンティティ間の関係は、1つのデータベーステーブル内のフィールドと第2のデータベーステーブル内のフィールドとの間の参照制約であり得、データモデル図114は、これらのテーブルをボックスとして、テーブル内のフィールドをボックス内のボックスとして表示し、これらのボックスを線又は矢印で接続して関係を示すことができる。一実施形態において、データモデル図114は、データモデル辞書112内の情報から導出されてもよい。しかしながら、他の実施形態において、その逆が真でもよく、データモデル辞書112が、データモデル図114から導出されてもよい。
【0016】
第1のメタデータ116は、概念データモデル110に組み込まれ、含まれ、又は追加される情報でもよい。第1のメタデータ116は、プラットフォーム120にわたりエンティティをデプロイする手法を記述することができる。第1のメタデータ116は、プラットフォーム120上で利用可能なストレージメカニズム及びデータストアに関する情報を含むことができる。例えば、第1のメタデータ116は、様々なプラットフォームの特定のアクセス要件及びプロトコルに関する情報を含んでもよい。例えば、認証プロトコルは、第1のプラットフォームと第2のプラットフォームとの間で異なる可能性があり、第1のメタデータ116は、これらの差を反映し、プロトコルの各々を遵守する方法に関する情報を含んでもよい。各プラットフォームで利用可能な特定のストレージメカニズムに関するさらなる詳細が、第1のメタデータ116に含まれてもよい。例えば、異なる関係データベースシステムは、異なるインデキシング要件及び能力を有することがあり、例えば、特定の関係データベースシステムは、第2の関係データベースシステムと異なるインデキシング能力を提供することがあり、インデックスをインスタンス化、変更、削除、又はリフレッシュするための構文要件は、プロダクト間で異なる場合がある。したがって、特定の挙動を実行するために、ストレージメカニズムにわたる構文要件は異なる可能性があり、適切なプロトコルの指示が第1のメタデータ116に含まれてもよい。例えば、第1のメタデータ116は、プラットフォーム120の中のプラットフォーム又はそこで採用されるデータストレージメカニズムに固有のパーティショニング要件を記述することができる。したがって、第1のメタデータ116は、(以下で説明されるように)プラットフォーム120の中の各プラットフォームにわたる、概念モデル110を表す論理データモデルの自動作成を可能にする。これらの論理データモデルは、次いで、あらゆる統合されたプラットフォームにわたり動作可能なソフトウェアアーチファクトの作成を容易にする。
【0017】
プラットフォーム120A及びプラットフォーム120Bなどのプラットフォーム120は、1つ以上のクラウドサービスプラットフォーム、又は他の適切なホスティングアーキテクチャ、インフラストラクチャ、若しくはシステムでもよい。プラットフォーム120Aは、様々な点でプラットフォーム120Bと異なってもよく、異なるサービス、機能性、データストアなどを提供することができる。例えば、いくつかのプラットフォーム120は、ストレージメカニズム、例えば、関係データベース、グラフデータベース、列指向データベース、インメモリデータベース、NoSQLデータベース、キーバリューストア、データレイク、又は他の適切なストレージメカニズムを提供することができる。これらの個々のストレージメカニズムの間で、複数のアプローチ(すなわち、特定のプロダクト又はサービス)が提供されてもよく、例えば、プラットフォームは、複数のデータレイクソリューションを提供してもよい。一実施形態において、プラットフォーム120は、さらに、ベンダが管理するクラウドサービスプラットフォームの文脈外の、内部で管理されたウェブサーバ、データベース、及び他のウェブコンポーネント、又は他の内部で管理されたリソースでもよい。
【0018】
論理データモデル130A及び論理データモデル130Bなどの論理データモデル130は、プラットフォーム特有のデータランドスケープを示すデータモデルでもよい。論理データモデル130は、エンティティ、エンティティ間の関係、エンティティタイプ、識別子、及び他の適切なエンティティ特性を表すことができる。論理データモデル130は、組織の技術的ランドスケープ内の特定のプラットフォームに特有であると同時に、特定の物理的なストレージメカニズム、プロダクト、アプローチ、又はアーキテクチャ、並びに関連する運用及びデプロイメントの詳細から切り離すことができる。したがって、論理データモデルは、ストレージ及び実装に依存しない手段を使用して、組織のデータアーキテクチャを表すことができる。論理データモデル130は、プラットフォーム120の各々について概念データモデル110から導出されてもよい。論理データモデル130は、以下でさらに詳細に説明される第2のメタデータ132を介して、プラットフォーム特有及びストレージ特有のソフトウェアアーチファクトを導出する能力を提供することができる。
【0019】
第2のメタデータ132は、エンティティをプラットフォーム120内のプラットフォームに、及び特定のデータストレージメカニズムにデプロイする手法を記述する、論理データモデル130に組み込まれ、含まれ、又は追加される情報でもよい。第2のメタデータ132は、プラットフォーム120のうちのプラットフォームと共に組織により採用されるデータストアを記述することができる。第2のメタデータ132は、以下でさらに詳細に説明されるように、生成されるべきソフトウェアアーチファクトの数を決定するために使用される、そのプラットフォーム上で採用されるデータストアの範囲を列挙してもよい。第2のメタデータ132は、さらに、プラットフォーム120のうちのプラットフォーム内のデータストレージメカニズムにより義務付けられた特定化された(particularized)要件又はプロトコルを示してもよい。例えば、関係データベースをハウジングする第1のプラットフォームは、関係データベースにおけるテーブルの作成のために特定化された構文を必要とすることがあり、これは、プラットフォーム上の第2のタイプの関係データベースにおけるテーブルの作成のための特定化された構文と異なる可能性がある。第2のメタデータ132は、以下でさらに詳細に説明されるように、特定のプラットフォーム及びストレージメカニズムに容易にデプロイ可能なソフトウェアアーチファクトを作成するために必要な情報を記憶する。
【0020】
物理データモデル140は、特定のプラットフォーム上の特定のデータストレージシステム内のオブジェクトを表すストレージメカニズム特有のモデルでもよい。例えば、物理データモデル140は、関係データベース内のテーブル、列、主キー、及び外部キーを表すことができる。しかしながら、物理データモデル140は、グラフデータベース、列指向データベース、インメモリデータベース、NoSQLデータベース、キーバリューストア、データレイクなどの他のデータストレージシステムを反映してもよい。さらに、これらの多様なストレージメカニズムの間で、複数のソリューションが提供されてもよい。さらに、物理データモデル140は、これらの多様なストレージメカニズムの中の特定のプロダクトに合わせられてもよい。例えば、第1のタイプの関係データベース内の関係データオブジェクトを表す物理データモデル140は、第2のタイプの関係データベース内の関係データオブジェクトを表す物理データモデル140と異なるように見える場合がある。物理データモデル140は、インストールスクリプト152A及び投入スクリプト154Aなどの様々なソフトウェアアーチファクトを生成するために利用することができる。
【0021】
デプロイメントツール150は、プラットフォーム120上のデータストアにわたりエンティティ(例えば、テーブル、ファイル、文書、構造等)をインスタンス化、デプロイ、及び保守するソフトウェアアーチファクトでもよい。デプロイメントツール150は、DDLスクリプト、DMLスクリプト、開発者ドキュメンテーション、マッピングファイル、及びプラットフォーム120にわたり物理エンティティを作成及び更新することができる他の適切なプログラム構造でもよい。デプロイメントツール150は、インストールスクリプト152A、投入スクリプト154A、ドキュメンテーション156、及び他の適切な構造を含んでもよい。デプロイメントツール150は、以下でさらに詳細に説明されるように、プラットフォーム120にわたりエンティティを初期化し、概念データモデル110が変更されるとソフトウェアアーチファクトを修正し、エンティティを更新するためにデプロイメントエージェント210により利用することができる。
【0022】
インストールスクリプト152は、データ構造を定義することができるDDL又は他の適切な構文で提供されるデータベース初期化スクリプトでもよい。初期化スクリプト152は、概念データモデル110に関連する物理要素をデプロイ、初期化、ロールアウト、又はその他の方法で実装するために使用することができる。インストールスクリプト152は、対象ストレージメカニズムに基づいて変わってもよく、すなわち、グラフデータベーススクリプトは、キーバリューストアスクリプトと実質的に異なってもよい。例えば、初期化スクリプト232は、DDL構文、例えば、「CREATE TABLE」、「ALTER TABLE」などの作成を通して、顧客関係管理(customer-relationship-management、CRM)プラットフォーム上の販売注文(Sales Order)、アカウント(Account)、及びロケール(Locale)テーブルを実装するように自動的に構築されてもよい。プラットフォーム120は、第1のメタデータ116及び第2のメタデータ132において捕捉されるとおり固有のプロトコル及び構文を必要とすることがあり、作成されたインストールスクリプト152は、これらの要件を遵守することができる。インストールスクリプト152は、既存のデータ構造からのデータにアクセスし、データを修正し、取り出すことができるDML又は他の適切な構文のスクリプトをさらに含んでもよい。例えば、インストールスクリプト152は、DML構文、例えば、「UPDATE」、「INSERT INTO TABLE」などの作成及び実行を通して、前にデプロイされた販売注文、アカウント、及びロケールテーブルに変更を行うように自動的に構築されてもよい。
【0023】
投入スクリプト154は、インストールスクリプト152を使用して作成されるエンティティに名目上の、ダミーの、考案された、テストなどのデータを追加するために作成されるテキストファイル、文書、スクリプト、及び他の適切なツールでもよい。一例において、投入スクリプト154は、関係データベーステーブルに情報を自動投入する(auto-populate)ためにインストールスクリプト152内のスクリプトにより処理されるべき情報の行を含んでもよい。例えば、エンティティは、顧客について記述する複数の列/フィールド、例えば、「名前(Name)」、「住所(Address)」、「電話番号(Phone Number)」などを含む「顧客(Customer)」テーブルを記述する概念データモデル110内に存在し得る。このような一例において、投入スクリプト154は、「INSERT」テーブルを介してテーブルに行を追加するために使用され得る「XXXXX」、「55 Maple Ave」、「555-555-5555」などの行を含んでもよい。このような必要は、ストレージメカニズムが関係データベーステーブルでない場合、例えば、ストレージメカニズムがグラフデータベースであり、実際のエンティティはデータが投入されるまでいかなる意味でも作成されない場合、強化され(enhanced)てもよい。投入スクリプト154は、概念データモデル110内に記述されたエンティティに関する知識、例えば、エンティティ名を用いて、ヒューリスティックな方法を採用することにより作成されてもよい。上記の「顧客」テーブルの例において、第1のメタデータ116は、データモデリングツール202に既知であるエンティティの特性のさらなる記述子を含んでもよい。
【0024】
ドキュメンテーション156は、概念データモデル110で定義されたエンティティに関する記述を提供することができる。ドキュメンテーション156は、任意の適切な可読フォーマット、例えば、HTML、テキスト、ワード文書、又は他の適切な人間に読めるものをとってもよい。一実施形態において、ドキュメンテーション156は、画像、テーブル、グラフ、ERD、及び他の非テキスト情報を含み、情報の可読性を高めてもよい。ドキュメンテーション156は、概念データモデル110に基づいてプラットフォーム120の中の各プラットフォームについて自動的に生成されてもよく、すなわち、ドキュメンテーションは、プラットフォーム120間で異なってもよい。ドキュメンテーション156は、ドキュメンテーションインターフェース206に提供されてもよく、ドキュメンテーションインターフェース206は、例えばHTTP又は他のウェブインフラストラクチャを使用して、組織内又は組織外の開発者及び他のユーザに情報を供給することができる。
【0025】
図2は、いくつかの実施形態による、データモデリングツールを含むアーキテクチャ200のブロック図である。本明細書におけるいずれの動作も、ハードウェア、ソフトウェア、又はこれらの任意の組み合わせで、モジュール又は専用デバイスなどの図中の任意のタイプの構造により実行することができる。アーキテクチャ200は、データモデリングツール202、クエリエージェント204、ドキュメンテーションインターフェース206、データ交換システム208、及びデプロイメントエージェント210を含むことができる。
【0026】
データモデリングツール202は、概念データモデル110を作成するために、かつ/あるいは、概念データモデル110に第1のメタデータ116を、及び/又は論理データモデル130に第2のメタデータ132を含めるために、組織の代表者により使用されてもよい。データモデリングツール202は、管理者が組織のデータランドスケープ全体を通して使用されるプラットフォーム120とそれらのプラットフォームにより採用されるデータストレージメカニズムとを識別することを可能にし得る。プラットフォーム120及びデータストレージメカニズムを予め選択した後、データモデリングツール202は、ユーザが概念データモデル110をこれらのプラットフォーム及びストレージメカニズムに合わせることを可能にし得る。データモデリングツール202は、第1のメタデータ116及び/又は第2のメタデータ132を編集する(compiling)とき、プラットフォーム120により採用されるストレージメカニズムに関する適切な情報を得るために、適切なアプリケーションプログラミングインターフェース(API)を介してプラットフォーム120と対話することができる。データモデリングツール202は、以下でさらに詳細に説明されるように、概念データモデル110を使用してさらなる機能性を導出するために、クエリエージェント204、ドキュメンテーションインターフェース206、データ交換システム208、及びデプロイメントエージェント210とさらに対話することができる。
【0027】
クエリエージェント204は、データモデリングツール202と対話して、組織のデータアーキテクチャ内の複数のデータソースに対して実行されるフェデレーテッドクエリ(federated queries)を処理することができる。フェデレーテッドクエリは、例えば、SQL又は他の問い合わせ言語を使用して、データランドスケープ内の複数のプラットフォーム120からデータを収集するクエリでもよい。クエリエージェント204は、概念データモデル110を使用して、組織の管理者、開発者、又は他のユーザから受け取ったフェデレーテッドクエリを処理することができる。一実施形態において、クエリエージェント204は、クエリを入力し、及び/又は概念データモデル110に示されたデータランドスケープを閲覧するために、インターフェースをユーザに提供することができる。一実施形態において、データモデリングツール202は、概念データモデル110を適切な方法でクエリエージェント204に公開することができ、クエリエージェント204は、そこに含まれる情報に基づいてフェデレーテッドクエリを処理することができる。別の実施形態において、データモデリングツール202は、クエリインターフェースを提供し、データモデリングツール202のユーザからクエリを受け取ってもよい。この実施形態において、データモデリングツール202は、次いでクエリエージェント204を関与させて、受け取ったクエリを処理し、適切なプロトコルを通して様々なストレージメカニズムにアクセスし、適切なデータレコードを返すことができる。この実施形態において、データモデリングツール202は、ユーザに対してフェデレーテッドクエリの結果を表示することができる。
【0028】
ドキュメンテーションインターフェース206は、ドキュメンテーション156などの開発者ドキュメンテーションをHTMLページ、ヘルプマニュアル、テキスト、文書等の形式で、組織のメンバー及び他のユーザに提供することができる。ドキュメンテーションインターフェース206は、作成された論理データモデル130及びその中に含まれる第2のメタデータ132に基づいて、データモデリングツール202により自動的に作成されたドキュメンテーション156を受け取ることができる。ドキュメンテーションインターフェース206は、ウェブサーバ、HTTP、又は他の適切なウェブ技術を用いて、ドキュメンテーション156を利害関係者に提供することができる。一実施形態において、ドキュメンテーションインターフェース206は、セキュリティ要件の形式で、例えば、ログイン及びパスワードを要求してドキュメンテーション156へのアクセスを認可された個人及びグループに制限することにより、アクセス制限を課すことができる。一実施形態において、ドキュメンテーションインターフェース206は、データモデリングツール202から概念データモデル110を受信し、ドキュメンテーション156を記憶し、適切なウェブインターフェースを介してドキュメンテーション156を提供することができる。別の実施形態において、データモデリングツール202は、ドキュメンテーションインターフェース206を関与させて、データモデリングツール202におけるユーザにドキュメンテーション156を提供してもよい。
【0029】
データ交換システム208は、データモデリングツール202により作成されたマッピングファイルを処理することができる。このようなマッピングファイルは、プラットフォーム120にわたるデータストアの間及び中のデータ変換及びロードを容易にすることができる。データ交換システム208は、プラットフォーム120の中のプラットフォーム、すなわちソーススキーマから、プラットフォーム120の中の第2のプラットフォーム、すなわちターゲットスキーマへのデータの転送を引き起こすことができる。したがって、データ交換システム208は、組織が概念データモデル110内の情報に基づいて抽出、変換、及びロード(ETL)機能を合理化することを可能にし得る。一実施形態において、ユーザは、データモデリングツール202内でETLトランザクションを実行することができ、すなわち、データモデリングツール202は、データ交換システム208を関与させて、データモデリングツール202により提供されるインターフェース内からETLトランザクションを実行することができる。
【0030】
デプロイメントエージェント210は、データモデリングツール202により作成されたデプロイメントツール150などのソフトウェアアーチファクトを使用して、エンティティを物理環境にデプロイすることができる。一実施形態において、デプロイメントエージェント210は、データモデリングツール202内で、又はデータモデリングツール202の求め(bequest)で動作してもよい。このような一実施形態において、ユーザは、データモデリングツール202内で概念データモデル110を設計し、概念データモデル110に第1のメタデータ116及び第2のメタデータ132を浸透させる(imbue)ことができる。デプロイメントエージェント210は、データモデリングツール202内で概念データモデル110に対してなされた変更に基づいて更新されたソフトウェアアーチファクトを受け取ることができ、デプロイメントエージェント210は、更新されたソフトウェアアーチファクトを使用して物理環境内のエンティティを更新することができる。
【0031】
図3は、概念データモデルに基づいてソフトウェアアーチファクトを作成する方法300を示すフローチャートである。方法300は、ハードウェア(例えば、回路、専用論理、プログラマブル論理、マイクロコードなど)、ソフトウェア(例えば、処理デバイス上で実行する命令)、又はこれらの組み合わせを含み得る処理論理により実行することができる。本明細書で提供される開示を実行するために全てのステップが必要とされ得るわけではないことが理解されるべきである。さらに、当業者により理解されるように、ステップのいくつかは同時に、又は図3に示されるのと異なる順序で実行されてもよい。
【0032】
302において、データモデリングツール202は、概念データモデル110を作成し、あるいはその他の方法で管理者、データアーキテクト、又は他のユーザによるその作成を容易にすることができる。一実施形態において、データモデリングツール202は、ユーザが外部で作成されたデータモデルをインポートし、受け取ったデータモデルから概念データモデル110を導出することを可能にし、例えば、データモデル辞書112、データモデル図114、及び/又は外部ツールで作成されてデータモデリングツール202にアップロードされる概念データモデル110の他の適切な記述子を受信することができる。概念データモデル110を記憶するとき、データモデリングツール202は、プラットフォーム120及びその中のストレージメカニズムに関する記憶された論理に基づいて、概念データモデル110内に第1のメタデータ116を含め、あるいは組み込むことができる。一実施形態において、データモデリングツール202は、ユーザがプラットフォーム120から1つ又は複数のプラットフォームを選択し、選択されたプラットフォームに基づいて概念データモデル110を更新することを可能にし得る。データモデリングツール202は、プラットフォーム120の中の各プラットフォームに特有のデプロイメント情報を含む第1のメタデータ116を追加することができる。第1のメタデータ116は、プラットフォーム120に特有の認証プロトコル情報、及び/又は、データモデリングツール202とプラットフォーム120との間に生じる対話の性質を規定する他の情報、例えば、プラットフォーム上又はプラットフォーム内でソフトウェアアーチファクトを実行するために必要なパラメータを含んでもよい。第1のメタデータ116は、さらに、内部で取り出された論理に基づくストレージソリューション特有の情報を含んでもよい。例えば、プラットフォームにわたり使用される関係データベースは異なってもよく(例えば、SQL SERVER、ORACLE、MYSQL)、第1のメタデータ116は、プラットフォーム120のうち特定のプラットフォーム上の特定のストレージソリューションに特有の情報を含んでもよい。
【0033】
304において、データモデリングツール202は、概念データモデル110及びその中に含まれる第1のメタデータ116に基づいて論理データモデル130を作成することができる。データモデリングツール202は、組織のデータランドスケープ内で採用されるプラットフォーム120の中の各プラットフォームについて論理データモデル130を作成することができる。データモデリングツール202は、作成された論理データモデル130に第2のメタデータ132をさらに追加してもよい。第2のメタデータ132は、論理データモデルが対応するプラットフォームに特有の実装詳細を含むことができる。その後、第2のメタデータ132は、プラットフォーム120の中の各プラットフォームにより遵守されるプロトコル、並びにプラットフォームにより提供される物理ストレージモデル及びメカニズムのためのプロトコル、ルール等に関する既知の情報を組み込むことにより、データモデリングツール202がデプロイメントツール150を作成することを可能にし得る。例えば、1つの例示的なデータランドスケープは、2つの異なるプラットフォーム上で実行されるデータベースインスタンスを含み得る。この実施形態において、データモデリングツール202は、2つの論理データモデル130を、プラットフォームの各々について1つ作成することができる。作成された論理データモデル130は、ストレージソリューションに依存しないままでもよく、すなわち、論理データモデル130は、正確なストレージメカニズム(例えば、SQL SERVER、ORACLEなど)を示さなくてもよく、エンティティ及びそれらの関係を論理的に定義してもよい。しかしながら、作成された論理データモデル130は、プラットフォーム120の中のその特定のプラットフォームにより必要とされ、それらのプラットフォーム120内で提供されるストレージメカニズムに特有の、特定の情報を第2のメタデータ132に含むことができる。
【0034】
306において、データモデリングツール202は、論理データモデル130、第1のメタデータ116、及び第2のメタデータ132に基づいて、プラットフォーム120にわたり動作可能なソフトウェアアーチファクトを作成することができる。ソフトウェアアーチファクトは、インストールスクリプト152、投入スクリプト154、ドキュメンテーション156、及び他の適切なデプロイメントツール150を含んでもよく、これらは、当業者に理解されるであろう。データモデリングツール202は、作成されたソフトウェアアーチファクトを適切な構造、ファイルシステム、ディスク、メモリ等に記憶することができる。一実施形態において、データモデリングツール202は、ユーザが、ソフトウェアアーチファクトを介してエンティティをデプロイする前に、作成されたソフトウェアアーチファクトを閲覧し、作成されたソフトウェアアーチファクトをさらなる方法で編集又は操作することを可能にし得る。複数のプラットフォームにまたがり、関係データベース技術から構成されるアプリケーションデプロイメントの上記の例を続けるために、データモデリングツール202は、概念データモデル110に規定された各プラットフォームについて作成された論理データモデル130を検査してもよい。論理データモデル130内の各論理データモデルについて、データモデリングツール202は、概念データモデル110に規定されるようにテーブル、行、列、インデックス、ディスクパーティション、及び他のコンポーネントを作成するための適切なDDLスクリプトを生成することができる。例中の第1のプラットフォームは、第2のプラットフォームとは異なる、DDLスクリプトを実行する要件、又は異なる、実際のDDLスクリプトを作成する構文要件を有する可能性があるため、DDLスクリプトは異なり得る。データモデリングツール202は、第1のメタデータ116に対して使用してこれらの差に適合することができる。さらに、概念データモデル110は、複数のプラットフォーム内の異なるストレージメカニズムを規定することができる。したがって、第1のDDLスクリプトと第2のDDLスクリプトは、下層のストレージメカニズムに基づいてさらに異なり得る。データモデリングツール202は、第2のメタデータ132により提供される情報を使用してこれらの差を適応させる(accommodate)ことができる。関係データベーステーブルをインスタンス化するためのDDLスクリプトに追加で、データモデリングツール202は、作成されたテーブルに投入するための適切な「UPDATE」又は「INSERT」文を規定するDMLスクリプトを作成することができる。これらのDMLスクリプトを適切に利用するために、データモデリングツール202は、テーブルに名目上のデータを組み込むためにDMLスクリプトを供給するための投入スクリプト154をさらに作成することができる。特にグラフデータベースの文脈において、投入スクリプト154を介してダミーデータを含めることは、エンティティを作成するために必要である。しかしながら、上記の例は単に例示に過ぎず、当業者は、関係データベースを越えた幅広いストレージメカニズムと同様に、2つより多くのプラットフォームがデータランドスケープ内に組み込まれてもよいことを理解するであろう。
【0035】
308において、データモデリングツール202は、デプロイメントエージェント210を用いて、306で生成されたソフトウェアアーチファクトを使用してプラットフォーム120にわたり、及びその中の様々なストレージシステムにわたり、物理エンティティをインスタンス化することができる。一実施形態において、データモデリングツール202は、データモデリングツール202のユーザから、複数のプラットフォーム120にわたる又はプラットフォーム120の中の特定のプラットフォーム上のエンティティを初期化するためのコマンドを受け取ることができる。一実施形態において、デプロイメントエージェント210は、プラットフォーム120により提供される適切なAPI又は他のインターフェースと対話することにより、エンティティをインスタンス化することができる。例えば、上記の例において特定のプラットフォームにより提供されるサービスは、組織がバックエンドデータベースに対してクエリ又は他のSQLコマンドを実行することを可能にし得る。このサービスの要件及び性質は、第1のメタデータ116及び第2のメタデータ132により捕捉されるとおりプラットフォーム間で異なってもよい。デプロイメントエージェント120は、記憶されたパラメータを使用してサービスを関与させ、バックエンドデータベースに対してソフトウェアアーチファクトを、この例ではDDLスクリプト及びDMLスクリプトを実行し、エンティティを作成するためのコマンドに応答して適切な結果又は確認を返すことができる。別の実施形態において、データモデリングツール202は、ソフトウェアアーチファクトのダウンロード可能なバージョンを、エクスポート可能な方法で管理者又はユーザに提供してもよい。この実施形態において、ユーザは、次いで、プラットフォーム120及びその中のストレージ設備上で利用可能な、及びこれらに対しネイティブのツールを使用して、ソフトウェアアーチファクトを実行することができる。例えば、ユーザは、DDLスクリプトを受け取り、このスクリプトをプラットフォーム120のうちのプラットフォームにより提供されるクエリツールにコピー/ペーストしてもよい。
【0036】
図4は、いくつかの実施形態による、概念データモデルに基づいて開発者ドキュメンテーションを生成する方法400を示すフローチャートである。方法400は、ハードウェア(例えば、回路、専用論理、プログラマブル論理、マイクロコードなど)、ソフトウェア(例えば、処理デバイス上で実行する命令)、又はこれらの組み合わせを含み得る処理論理により実行することができる。本明細書で提供される開示を実行するために全てのステップが必要とされ得るわけではないことが理解されるべきである。さらに、当業者により理解されるように、ステップのいくつかは同時に、又は図4に示されるのと異なる順序で実行されてもよい。
【0037】
402において、データモデリングツール202は、概念データモデル110を更新し、あるいは管理者、データアーキテクト、又は他のユーザによるその更新を容易にすることができる。一実施形態において、データモデリングツール202は、このようなユーザが外部で作成されたデータモデルをインポートし、インポートされたデータモデルから、概念データモデル110の前に作成されたバージョンへの変更を決定することを可能にし得る。データモデリングツール202は、該変更に基づいて、概念データモデル110内で第1のメタデータ116への必要な更新を完了することができる。例えば、ユーザは、プラットフォーム120のうちの新しいプラットフォーム上で実行されるさらなるアプリケーションを、概念データモデル110の更新されたバージョンに含めることがある。この例において、データモデリングツール202は、第1のメタデータ116を更新して、新しいソフトウェアアプリケーション、そこで使用されるエンティティ、及びデータランドスケープに前には含まれていなかった新しいプラットフォームを適応させることができる。
【0038】
404において、データモデリングツール202は、402で更新された、変更された概念データモデル110及びその中に含まれる第1のメタデータ116に基づいて、論理データモデル130を再作成することができる。データモデリングツール202は、プラットフォーム120の中の各プラットフォームにわたり、論理データモデル130への必要な更新を完了することができる。データモデリングツール202は、さらに、概念データモデル110になされたいずれかの変更に基づいて第2のメタデータ132を更新することができる。上記の例を続けるために、第2のメタデータ132は、新しいアプリケーション並びにアプリケーションにより記憶及び使用されるデータを適応させるためにストレージロケーション特有の情報を含むように更新されてもよい。
【0039】
406において、データモデリングツール202は、概念データモデル110への変更により影響を受けたソフトウェアアーチファクトを再作成することができる。データモデリングツール202は、インストールスクリプト152、投入スクリプト154、ドキュメンテーション156、及び他の適切なデプロイメントツール150を更新することができ、これらは、当業者に理解されるであろう。上記の例を続けるために、新しいアプリケーション、プラットフォーム、及びデータエンティティは、新しいアプリケーションを扱うエンティティをインスタンス化するための新しいDDL及びDMLスクリプトの作成を義務付けてもよい。別の例において、関係データベースシステムのテーブルに列を追加するために、402で変更が受け取られていてもよい。この例では、前に作成されたソフトウェアアーチファクトが、変更を含むように修正されてもよく、あるいは、新しいスクリプトのセットが、元の概念データモデルと更新された概念データモデルとの間のデルタをインスタンス化するために作成されてもよい。
【0040】
408において、データモデリングツール202は、デプロイメントエージェント210を用いて、406で更新されたソフトウェアアーチファクトを使用してプラットフォーム120にわたり、及びその中の様々なストレージシステムにわたり、物理エンティティを更新することができる。例えば、デプロイメントエージェント120は、特定のプラットフォームにより提供されるサービスを関与させて、プラットフォーム内のデータストレージメカニズムに対してソフトウェアアーチファクトを実行することができる。デプロイメントエージェント120は、更新に応答して適切な結果又は確認を受け取ることができる。別の実施形態において、データモデリングツール202は、更新されたソフトウェアアーチファクトのダウンロード及びエクスポート可能バージョンを提供してもよい。この実施形態において、ユーザは、次いで、プラットフォーム120及びその中のストレージ設備上で利用可能な、及びこれらに対しネイティブの使用ツールを実行することができる。
【0041】
このようにして、概念データモデル110への変更は、下方へ、概念データモデル110から導出される全てのソフトウェアアーチファクトに伝播することができる。したがって、組織は、単一の集中化ロケーション、すなわち概念データモデル110において、文書を作成し、あるいはその技術的ランドスケープへの変更を記録することができる。この例において、組織は、変更を全てのロケーションで適応させるために全てのプラットフォーム、ストレージメカニズム、及びアプリケーションにわたり全てのソフトウェアアーチファクトを更新又は保守する必要はない。
【0042】
様々な実施形態は、例えば、図5に示すコンピュータシステム500などの1つ以上の周知のコンピュータシステムを使用して実施することができる。1つ以上のコンピュータシステム500を使用して、例えば、本明細書で論じられた実施形態のいずれか、並びにこれらの組み合わせ及びサブコンビネーションを実装することができる。
【0043】
コンピュータシステム500は、プロセッサ504などの1つ以上のプロセッサ(中央処理装置、又はCPUとも呼ばれる)を含み得る。プロセッサ504は、通信インフラストラクチャ又はバス506に接続されてもよい。
【0044】
コンピュータシステム500は、モニタ、キーボード、ポインティングデバイスなどのユーザ入力/出力デバイス508をさらに含んでもよく、これは、ユーザ入力/出力インターフェース502を介して通信インフラストラクチャ506と通信することができる。
【0045】
プロセッサ504の1つ以上は、グラフィックス処理ユニット(GPU)でもよい。一実施形態において、GPUは、数学的に集約的なアプリケーションを処理するように設計された専用の電子回路であるプロセッサでもよい。GPUは、コンピュータグラフィックスアプリケーション、画像、ビデオ等に共通する数学的に集約的なデータなどの大きいデータブロックの並列処理に効率的である並列構造を有し得る。
【0046】
コンピュータシステム500は、ランダムアクセスメモリ(RAM)などのメイン又はプライマリメモリ508をさらに含んでもよい。メインメモリ508は、1つ以上のレベルのキャッシュを含んでもよい。メインメモリ508は、制御論理(すなわち、コンピュータソフトウェア)及び/又はデータをその中に記憶していてもよい。
【0047】
コンピュータシステム500は、1つ以上のセカンダリストレージデバイス又はメモリ510をさらに含んでもよい。セカンダリメモリ510は、例えば、ハードディスクドライブ512及び/又はリムーバブルストレージデバイス又はドライブ514を含んでもよい。リムーバブルストレージドライブ514は、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ、光記憶装置、テープバックアップ装置、及び/又は任意の他の記憶装置/ドライブでもよい。
【0048】
リムーバブルストレージドライブ514は、リムーバブルストレージユニット518と対話してもよい。リムーバブルストレージユニット518は、コンピュータソフトウェア(制御論理)及び/又はデータを記憶したコンピュータ使用可能又は読取可能記憶装置を含んでもよい。リムーバブルストレージユニット518は、フロッピーディスク、磁気テープ、コンパクトディスク、DVD、光記憶ディスク、及び/又は任意の他のコンピュータデータ記憶装置でもよい。リムーバブルストレージドライブ514は、リムーバブルストレージユニット518から読み取り、かつ/あるいはリムーバブルストレージユニット518に書き込むことができる。
【0049】
セカンダリメモリ510は、コンピュータプログラム及び/又は他の命令及び/又はデータがコンピュータシステム500によりアクセスされることを可能にする他の手段、デバイス、コンポーネント、媒介、又は他のアプローチを含んでもよい。そのような手段、デバイス、コンポーネント、媒介、又は他のアプローチには、例えば、リムーバブルストレージユニット522及びインターフェース520を含んでもよい。リムーバブルストレージユニット522及びインターフェース520の例には、プログラムカートリッジ及びカートリッジインターフェース(ビデオゲーム装置に見られるものなど)、リムーバブルメモリチップ(EPROM又はPROMなど)及び関連ソケット、メモリスティック及びUSBポート、メモリカード及び関連メモリカードスロット、及び/又は他のリムーバブルストレージユニット及び関連インターフェースを含んでもよい。
【0050】
コンピュータシステム500は、通信又はネットワークインターフェース524をさらに含んでもよい。通信インターフェース524は、コンピュータシステム500が外部デバイス、外部ネットワーク、外部エンティティなど(個々に及び集合的に参照符号528で参照される)の任意の組み合わせと通信及び対話することを可能にし得る。例えば、通信インターフェース524は、コンピュータシステム500が通信パス526を介して外部又はリモートデバイス528と通信することを可能にし得、通信パス526は、有線及び/又は無線(又はこれらの組み合わせ)でもよく、LAN、WAN、インターネットなどの任意の組み合わせを含んでもよい。制御論理及び/又はデータは、通信パス526を介してコンピュータシステム500との間で伝送されてもよい。
【0051】
コンピュータシステム500は、さらに、いくつかの非限定的な例を挙げると、パーソナルデジタルアシスタント(PDA)、デスクトップワークステーション、ラップトップ又はノートブックコンピュータ、ネットブック、タブレット、スマートフォン、スマートウォッチ又は他のウェアラブル、電化製品、モノのインターネット(Internet-of-Things)の一部、及び/又は組み込みシステム、又はこれらの任意の組み合わせのいずれかでもよい。
【0052】
コンピュータシステム500は、これらに限られないがリモート又は分散クラウドコンピューティングソリューション、ローカル又はオンプレミスソフトウェア(「オンプレミス」クラウドベースソリューション)、「アズアサービス(as a service)」モデル(例えば、コンテンツアズアサービス(content as a service、CaaS)、デジタルコンテンツアズアサービス(digital content as a service、DCaaS)、ソフトウェアアズアサービス(software as a service、SaaS)、管理ソフトウェアアズアサービス(managed software as a service、MSaaS)、プラットフォームアズアサービス(platform as a service、PaaS)、デスクトップアズアサービス(desktop as a service、DaaS)、フレームワークアズアサービス(framework as a service、FaaS)、バックエンドアズアサービス(backend as a service、BaaS)、モバイルバックエンドアズアサービス(mobile backend as a service、MBaaS)、インフラストラクチャアズアサービス(infrastructure as a service、IaaS)等)、及び/又は前述の例又は他のサービス若しくは配信パラダイムの任意の組み合わせを含むハイブリッドモデルを含む、任意の配信パラダイムを通じて任意のアプリケーション及び/又はデータにアクセスし又はこれらをホストするクライアント又はサーバでもよい。
【0053】
コンピュータシステム500におけるいずれの適用可能なデータ構造、ファイルフォーマット、及びスキーマも、これらに限られないがJavaScript(登録商標) Object Notification(JSON)、拡張可能マークアップ言語(Extensible Markup Language、XML)、イェット・アナザー・マークアップ言語(Yet Another Markup Language、YAML)、拡張可能ハイパーテキストマークアップ言語(Extensible Hypertext Markup Language、XHTML)、ワイヤレスマークアップ言語(Wireless Markup Language、WML)、MessagePack、XMLユーザインターフェース言語(XML User Interface Language、XUL)、又は任意の他の機能的に類似した表現を単独又は組み合わせで含む標準から導出することができる。あるいは、専有のデータ構造、フォーマット、又はスキーマが、排他的に、あるいは既知又はオープンな標準と組み合わせて使用されてもよい。
【0054】
いくつかの実施形態において、記憶された制御論理(ソフトウェア)を有する有形の非一時的なコンピュータ使用可能又は読取可能な媒体を含む有形の非一時的な装置又は製造品は、本明細書においてコンピュータプログラムプロダクト又はプログラムストレージデバイスと呼ばれることもある。これには、これらに限られないがコンピュータシステム500、メインメモリ508、セカンダリメモリ510、及びリムーバブルストレージユニット518及び522、並びに前述のものの任意の組み合わせを具現化する有形の製造品が含まれる。そのような制御論理は、1つ以上のデータ処理デバイス(コンピュータシステム500など)により実行されたとき、そのようなデータ処理デバイスに本明細書に記載されるように動作させることができる。
【0055】
本開示に含まれる教示に基づき、図5に示されるもの以外のデータ処理デバイス、コンピュータシステム、及び/又はコンピュータアーキテクチャを用いて本開示の実施形態を作製及び使用する方法が当業者に明らかであろう。特に、実施形態は、本明細書に記載されるもの以外のソフトウェア、ハードウェア、及び/又はオペレーティングシステムの実装で動作することができる。
【0056】
いずれの他のセクションでもなく、詳細な説明のセクションは、特許請求の範囲を解釈するために使用されるよう意図されていることが理解されるべきである。他のセクションは、発明者により企図される全てではないが1つ以上の例示的な実施形態を説明することができ、したがって、本開示又は別記の特許請求の範囲を何らかの形で制限することは意図されない。
【0057】
本開示は例示的な分野及び適用の例示的な実施形態について記載しているが、本開示はそれに限定されないことを理解されたい。他の実施形態及びそれに対する修正が可能であり、本開示の範囲及び主旨の範囲内である。例えば、本段落の一般性を制限することなく、実施形態は、図面に示され及び/又は本明細書で説明されるソフトウェア、ハードウェア、ファームウェア、及び/又はエンティティに限定されない。さらに、実施形態は(本明細書に明示的に記載されているか否かにかかわらず)、本明細書に記載される例を超える分野及び適用に対して有意な有用性を有する。
【0058】
実施形態は、本明細書において、指定された機能及びそれらの関係の実装を示す機能的構成ブロックを用いて説明された。これらの機能的構成ブロックの境界は、本明細書において、説明の簡便さのため任意に定義されている。指定された機能及び関係(又は、その同等物)が適切に実行される限り、別の境界を定義することができる。さらに、代替的な実施形態が、本明細書に記載されるものと異なる順序を使用して機能ブロック、ステップ、動作、方法などを実行することができる。
【0059】
本明細書における「1つの実施形態」、「一実施形態」、「一例示的な実施形態」、又は同様のフレーズへの参照は、記載された実施形態が特定の特徴、構造、又は特性を含むことができるが、あらゆる実施形態が必ずしも上記特定の特徴、構造、又は特性を含まない可能性があることを示す。さらに、このようなフレーズは、必ずしも同じ実施形態を参照するものではない。さらに、特定の特徴、構造、又は特性が一実施形態に関連して説明されるとき、本明細書で明示的に言及又は記載されているか否かにかかわらずこのような特徴、構造、又は特性を他の実施形態に組み込むことは、当業者の知識の範囲内であろう。さらに、いくつかの実施形態は、表現「結合された」及び「接続された」をそれらの派生語と共に用いて説明することができる。これらの用語は、必ずしも互いに同義的であることは意図されない。例えば、いくつかの実施形態は、用語「接続された」及び/又は「結合された」を用いて、2つ以上の要素が互いに直接物理的又は電気的に接触していることを示すことがある。しかしながら、用語「結合された」は、2つ以上の要素が互いに直接接触していないが、なお依然として互いに協働又は対話することをさらに意味することがある。
【0060】
本開示の広さ及び範囲は上述の例示的な実施形態のいずれによっても限定されるべきでなく、以下の特許請求の範囲及びそれらの同等物にしたがってのみ定義されるべきである。
図1
図2
図3
図4
図5
【国際調査報告】