(57)【要約】実施形態は、ネーティブ・データー・エンコーディングでの使用のためにメタデーターを動的に適応化し、オブジェクト・モデル・タイプ参照を効率的に変更することを目的とする。１つのシナリオでは、コンピューター・システムが、オブジェクト・モデル記述におけるメタデーターの種々の部分にアクセスするために、オブジェクト・モデル記述によってメタデーター・リーダーをインスタンス化する。メタデーター・リーダーは、ネーティブ・メタデーターを読み取るように構成される。このネーティブ・メタデーターは、メタデーター／リーダーによって期待されるエンコーディングで表されたメタデーターである。メタデーター・リーダーは、アクセスされたメタデーターが非ネーティブ・エンコーディングでエンコードされたと決定し、次いで非ネーティブ・エンコーディングをネーティブ・エンコーディングに変換するために、実行すべきメタデーター変更を決定する。次いで、コンピューター・システムは、決定した変更にしたがって、オブジェクト・モデルのメタデーターを非ネーティブ・エンコーディングからネーティブ・エンコーディングに動的に適応化する。こうして、オブジェクト・モデルはネーティブ・ランタイムによって読み取り可能となる。【選択図】図１
2014534488.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算システムを含むコンピューター・ネットワーク環境において、少なくとも１つのプロセッサーとメモリーとを含むコンピューター・システムにおいて、ネーティブ・データー・エンコーディングでの使用のためにメタデーターを動的に適応化するコンピューター実装方法であって、
オブジェクト・モデル記述におけるメタデーターの１つ以上の部分にアクセスするために、前記オブジェクト・モデル記述によってメタデーター・リーダーをインスタンス化する動作であって、前記メタデーター・リーダーが、ネーティブ・メタデーターを読み取るように構成され、前記ネーティブ・メタデーターが、前記メタデーター・リーダーによって期待されるエンコーディングで表されたメタデーターを含む、動作と、
前記メタデーター・リーダーが、前記アクセスされたメタデーターが非ネーティブ・エンコーディングでエンコードされたと決定する動作と、
前記非ネーティブ・エンコーディングをネーティブ・エンコーディングに変換するために、どのメタデーター変更を実行すべきか前記メタデーター・リーダーが決定する動作と、
前記オブジェクト・モデルがネーティブ・ランタイムによって読み取り可能となるように、前記決定された変更にしたがって、前記オブジェクト・モデルのメタデーターを非ネーティブ・エンコーディングからネーティブ・エンコーディングに動的に適応化する動作と、
を含む、コンピューター実装方法。
【請求項２】
請求項１記載の方法において、前記動的適応化が、ユーザーがメタデーターを複数の異なる非ネーティブ・エンコーディングで読み取ることを可能にする、方法。
【請求項３】
請求項１記載の方法において、前記動的適応化が、メタデーター・インポート−読み取りレベルで行われる、方法。
【請求項４】
請求項３記載の方法において、前記メタデーター・インポート−読み取りレベルにおける動的適応化が、ランタイム・レベルにおける１つ以上の後続の適応化を回避する、方法。
【請求項５】
請求項１記載の方法において、前記動的に適応化されたメタデーターを内部でまたは公に可視化するために、可視化モディファイアーが適用される、方法。
【請求項６】
請求項１記載の方法において、前記ネーティブ・コーディングに沿うために、１つ以上のデーター・タイプが書き換えられる、方法。
【請求項７】
請求項１記載の方法において、前記メタデーターのネーティブおよび非ネーティブ・エンコーディングが、同じメタデーター・ファイルにおいて作られる、方法。
【請求項８】
請求項７記載の方法において、前記メタデーター・リーダーが、どのユーザーが前記メタデーター・ファイルを要求しているのか決定し、この決定に基づいて、前記メタデーター・ファイルの適したエンコーディングを前記ユーザーに渡すように構成される、方法。
【請求項９】
請求項７記載の方法において、前記エンコーディングが、ユーザー毎に完全で一貫する、方法。
【請求項１０】
請求項７記載の方法において、ネーティブおよび非ネーティブ・ユーザーに対して異なってエンコードされるメタデーター・エンティティのみが、ネーティブ・エンコーディングおよび非ネーティブ・エンコーディングの両方でエンコードされる、方法。
【請求項１１】
請求項１０記載の方法において、前記ユーザーが、どのタイプのエンコーディングが彼らに提供されるべきか指定する、方法。
【請求項１２】
複数の計算システムを含むコンピューター・ネットワーク環境において、少なくとも１つのプロセッサーとメモリーとを含むコンピューター・システムにおいて、オブジェクト・モデル・タイプ参照を効率的に変更するコンピューター実装方法であって、
タイプ参照表をインスタンス化する動作であって、前記タイプ参照表が、タイプ定義要求を受け、応答して、メタデーター・リーダーによって読み取り可能なメタデーターに格納されている１つ以上のタイプ参照トークンを使用して、しかるべきタイプ定義を与えるように構成される、動作と、
前記インスタンス化されたタイプ参照表が、タイプ要求元から、指定されたタイプに対するタイプ定義要求を受ける動作と、
どのタイプが要求されたか、およびどのタイプが前記メタデーター・リーダーの現在のコンシューマーにとって適しているかに基づいて、前記メタデーター・リーダーに対して１つ以上のタイプを動的に交換するために、前記タイプ参照表のメタデーター内にタイプ参照トークンを実装する動作と、
前記メタデーターにおいて前記タイプ参照トークンによって与えられる、動的に交換されたタイプに基づいて、前記要求されたタイプ定義を前記タイプ要求元に与える動作と、
を含む、コンピューター実装方法。
【請求項１３】
請求項１２記載の方法において、非ネーティブ・タイプ参照が、ネーティブ・タイプ参照とインプレースで交換される、方法。
【請求項１４】
請求項１２記載の方法において、前記動的交換が、非ネーティブ・タイプの標準化ビューを前記メタデーター・リーダーに与える、方法。
【請求項１５】
コンピューター・システムであって、
１つ以上のプロセッサーと、
システム・メモリーと、
コンピューター実行可能命令が格納されている１つ以上のコンピューター読み取り可能記憶媒体であって、前記命令を前記１つ以上のプロセッサーによって実行すると、ネーティブ・データー・エンコーディングでの使用のためにメタデーターを動的に適応化する方法を、前記計算システムに実行させる、１つ以上のコンピューター読み取り可能記憶媒体と、
を含み、前記方法が、
オブジェクト・モデル記述におけるメタデーターの１つ以上の部分にアクセスするために、メタデーター・リーダーを前記オブジェクト・モデル記述によってインスタンス化する動作であって、前記メタデーター・リーダーがネーティブ・メタデーターを読み取るように構成され、前記ネーティブ・メタデーターが、前記メタデーター・リーダーによって期待されるエンコードで表されたメタデーターを含む、動作と、
前記メタデーター・リーダーが、前記アクセスされたメタデーターが非ネーティブ・エンコーディングでエンコードされていると決定する動作と、
前記非ネーティブ・エンコーディングをネーティブ・エンコーディングに変換するためには、どのメタデーター変更を実行すべきか、前記メタデーター・リーダーが決定する動作と、
前記オブジェクト・モデルがネーティブ・ランタイムによって読み取り可能となるように、前記決定された変更にしたがって、前記オブジェクト・モデルのメタデーターを非ネーティブ・エンコーディングからネーティブ・エンコーディングに動的に適応化する動作であって、前記メタデーターのネーティブおよび非ネーティブ・エンコーディングが、同じメタデーター・ファイルにおいて作られる、動作と、
前記メタデーター・リーダーが、どのユーザーが前記メタデーター・ファイルを要求しているのか決定する動作と、
前記決定に基づいて、前記メタデーター・ファイルの適したエンコーディングを前記ユーザーに渡す動作と、
を含む、コンピューター・システム。
【発明の詳細な説明】
【従来技術】
【０００１】
[0001]  コンピューターは、労働力、家庭、移動体デバイス、および多くの他の場所に深く統合されつつある。コンピューターは、大量の情報を素早くしかも効率的に処理することができる。コンピューター・システムにおいて実行するように設計されたソフトウェア・アプリケーションは、業務用アプリケーション、学業(schoolwork)、娯楽等を含む広い種々の機能を実行することをユーザーに可能にする。ソフトウェア・アプリケーションは、文書を草稿するためのワープロ・アプリケーション、または電子メールを送信、受信、および編成するための電子メール・プログラムというような、具体的なタスクを実行するように設計されることが多い。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
[0002]  場合によっては、ソフトウェア・アプリケーションが種々の形態のメタデーターを実装する(implement)ように設計されることもある。このメタデーターは、異なるメタデーター・タイプによって表されることもある。どのメタデーター・タイプを各ユーザーが見ることを期待しているかに基づいて、異なるタイプを異なるユーザーのために使用することができる。このような状況では、複数の異なるメタデーター・ファイルが格納され、種々のメタデーター・タイプを提供するために使用されるのが通例である。このような多数の(an array of)メタデーターを格納し実装すると、正しいメタデーター・ファイルを引き出して適用するときに非効率を招く虞がある。
【課題を解決するための手段】
【０００３】
[0003]  本明細書において記載する実施形態は、メタデーターをネーティブ・データー・エンコーディングによる使用のために動的に適応化させ、オブジェクト・モデル・タイプ参照を効率的に変更することを目的とする。一実施形態では、コンピューター・システムが、オブジェクト・モデル記述におけるメタデーターの種々の部分にアクセスするために、オブジェクト・モデル記述によってメタデーター・リーダー(metadata reader) をインスタンス化する。メタデーター・リーダーは、ネーティブ・メタデーターを読み取るように構成され、ネーティブ・メタデーターとは、メタデーター・リーダーによって期待されるエンコーディングで表現されたメタデーターである。メタデーター・リーダーは、アクセスされたメタデーターが非ネーティブ・エンコードでエンコードされたことを判定し、次いでこの非ネーティブ・エンコーディングをネーティブ・エンコーディングに変換するためには、どのメタデーター変更を実行すべきか判定する。次いで、計算システムは、オブジェクト・モデルのメタデーターを、非ネーティブ・エンコーディングからネーティブ・エンコーディングに、決定された変更にしたがって動的に適応化する。こうして、オブジェクト・モデルは、ネーティブ・ランタイムによって読み取り可能になる。
【０００４】
[0004]  他の実施形態では、コンピューター・システムが、タイプ参照表をインスタンス化する。このタイプ参照表は、タイプ定義要求を受け、応答してしかるべきタイプ定義を与える。このタイプ参照表は、メタデーター・リーダーによって読み取ることができるメタデーターを含む。インスタンス化されたタイプ参照表は、タイプ要求元から、指定されたタイプに対するタイプ定義要求を受ける。コンピューター・システムは、タイプ参照をタイプ参照表内に実装し、どのタイプが要求されたか、そしてメタデーター・リーダーの現在のコンシューマーにとってどのタイプが適しているかに基づいて、メタデーター・リーダーに対して種々のタイプを動的に交換する。次いで、コンピューター・システムは、動的に交換されたタイプに基づいて、要求されたタイプ定義をタイプ要求元に供給する。
【０００５】
[0005]  この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として用いられることを意図するのでもない。
【０００６】
[0006]  追加の特徴および利点は、以下に続く説明において記載され、部分的にこの記載から当業者には明白であり、または本明細書における教示の実践によって学習することもできる。本発明の実施形態の特徴および利点は、添付した特許請求の範囲において特定的に指摘される手段(instruments)および組み合わせによって実現され、得ることができる。本発明の実施形態の特徴は、以下の説明および添付した特許請求の範囲から一層明白となり、以下に記載する本発明の実践によって学習することができる。
【図面の簡単な説明】
【０００７】
[0007]  本発明の実施形態の以上のおよび他の利点や特徴を更に明確化するために、添付図面を参照して、本発明を更に特定した実施形態を描写する(render)。尚、これらの図面は本発明の典型的な実施形態のみを図示するのであり、したがって発明の範囲の限定と考えてはならないことは認められよう。本発明の実施形態について、添付図面の使用によって、更に特定し詳細に説明する(described and explained)。図面において、
【図１】図１は、本発明の実施形態が動作することができ、ネーティブ・データー・エンコーディングによる使用のためにメタデーターを動的に適応化し、オブジェクト・モデル・タイプ参照を効率的に変更することを含む、コンピューター・アーキテクチャーを示す。
【図２】図２は、ネーティブ・データー・エンコーディングによる使用のためにメタデーターを動的に適応化する方法例のフロー・チャートを示す。
【図３】図３は、オブジェクト・モデル・タイプ参照を効率的に変更する方法例のフロー・チャートを示す。
【図４】図４は、フォーリン・メタデーター(foreign metadata)をネーティブ・メタデーターに変換する実施形態を示す。
【図５】図５は、タイプ参照を使用してメタデーターをエンコードする実施形態を示す。
【図６】図６は、タイプ参照の内部変更によって、フォーリン・タイプ・システムをネーティブ・タイプ・システムに変換する実施形態を示す。
【図７】図７は、メタデーター・コンテナの実施形態を示す。
【図８】図８は、メタデーター・コンテナのビューが与えられる実施形態を示す。
【図９】図９は、メタデーター・コンテナのビューが与えられる代替実施形態を示す。
【発明を実施するための形態】
【０００８】
[0017]  本明細書において記載する実施形態は、メタデーターをネーティブ・データー・エンコーディングによる使用のために動的に適応化させ、オブジェクト・モデル・タイプ参照を効率的に変更することを目的とする。一実施形態では、コンピューター・システムが、オブジェクト・モデル記述におけるメタデーターの種々の部分にアクセスするために、オブジェクト・モデル記述によってメタデーター・リーダーをインスタンス化する。メタデーター・リーダーは、ネーティブ・メタデーターを読み取るように構成される。ネーティブ・メタデーターとは、メタデーター・リーダーによって期待されるエンコーディングで表現されたメタデーターである。メタデーター・リーダーは、アクセスされたメタデーターが非ネーティブ・エンコードでエンコードされたことを判定し、次いでこの非ネーティブ・エンコーディングをネーティブ・エンコーディングに変換するためには、どのメタデーター変更を実行すべきか決定する。次いで、計算システムは、オブジェクト・モデルのメタデーターを、非ネーティブ・エンコーディングからネーティブ・エンコーディングに、決定された変更にしたがって動的に適応化する。こうして、オブジェクト・モデルは、ネーティブ・ランタイムによって読み取り可能になる。
【０００９】
[0018]  他の実施形態では、コンピューター・システムが、タイプ参照表をインスタンス化する。このタイプ参照表は、タイプ定義要求を受け、応答においてしかるべきタイプ定義を与える。このタイプ参照表は、メタデーター・リーダーによって読み取ることができるメタデーターを含む。インスタンス化されたタイプ参照表は、タイプ要求元から、指定されたタイプに対するタイプ定義要求を受ける。コンピューター・システムは、タイプ参照をタイプ参照表内に実装し、どのタイプが要求されたか、そしてメタデーター・リーダーの現在のコンシューマーにとってどのタイプが適しているかに基づいて、メタデーター・リーダーに対して種々のタイプを動的に交換する。次いで、コンピューター・システムは、動的に交換されたタイプに基づいて、要求されたタイプ定義をタイプ要求元に供給する。
【００１０】
[0019]  以下の説明では、実行することができる複数の方法および方法の動作に言及する。尚、これらの方法の動作は、ある順序で説明されることがあり、または特定の順序で出てくるようにフロー・チャートにおいて示されることがあるが、特に述べられていない限り、または要求されない限り、特定の順序が必ずしも必要でないことは、注記してしかるべきである。何故なら、ある動作は、この動作が実行される前に完了する他の動作に依存するからである。
【００１１】
[0020]  本発明の実施形態は、例えば、以下で更に詳しく説明する１つ以上のプロセッサーおよびシステム・メモリーというような、コンピューター・ハードウェアを含む、特殊目的コンピューターまたは汎用コンピューターを含むあるいは利用することができる。また、本発明の範囲内の実施形態は、コンピューター実行可能命令および／またはデーター構造を送るまたは格納するために物理コンピューター読み取り可能媒体および他のコンピューター読み取り可能媒体も含む。このようなコンピューター読み取り可能媒体は、汎用コンピューター・システムまたは特殊目的コンピューター・システムによってアクセスすることができる任意の入手可能な媒体とすることができる。コンピューター実行可能命令をデーターの形態で格納するコンピューター読み取り可能媒体は、コンピューター記憶媒体である。コンピューター実行可能命令を送るコンピューター読み取り可能媒体は、送信媒体である。つまり、一例として、そして限定ではなく、本発明の実施形態は、少なくとも２つの別々の異なる種類のコンピューター読み取り可能媒体、即ち、コンピューター記憶媒体および送信媒体を含むことができる。
【００１２】
[0021]  コンピューター記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、ＲＡＭに基づくソリッド・ステート・デバイス（ＳＳＤ）、フラッシュ・メモリー、位相変化メモリー（ＰＣＭ）、または他のタイプのメモリー、あるいは他の光ディスク・ストレージ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは所望のプログラム・コード手段をコンピューター実行可能命令、データー、またはデーター構造の形態で格納するために使用することができ、汎用または特殊目的コンピューターによってアクセスすることができる任意の他の媒体が含まれる。
【００１３】
[0022]  「ネットワーク」は、コンピューター・システムおよび／またはモジュールおよび／または他の電子デバイス間における電子データーの移送(transport)を可能にする１つ以上のデーター・リンクおよび／またはデーター・スイッチと定められる。情報がネットワーク（ハードワイヤ、ワイヤレス、あるいはハードワイヤまたはワイヤレスの組み合わせ）を介してコンピューターに移されるまたは提供されるとき、このコンピューターはこの接続を適正に送信媒体と見なす。送信媒体は、データーまたは所望のプログラム・コード手段をコンピューター実行可能命令の形態またはデーター構造の形態で運ぶ(carry)ために使用することができ、汎用コンピューターまたは特殊目的コンピューターによってアクセスすることができるネットワークを含むことができる。以上の組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
【００１４】
[0023]  更に、種々のコンピューター・システム・コンポーネントに達すると、コンピューター実行可能命令またはデーター構造の形態となっているプログラム・コード手段を自動的に送信媒体からコンピューター記憶媒体に（またはその逆）移すことができる。例えば、ネットワークまたはデーター・リンクを介して受信されたコンピューター実行可能命令またはデーター構造は、ネットワーク・インターフェース・モジュール（例えば、ネットワーク・インターフェース・カード、即ち、「ＮＩＣ」）内においてＲＡＭにバッファし、最終的にコンピューター・システムＲＡＭおよび／またはコンピューター・システムにおいてそれよりも揮発性でないコンピューター記憶媒体に移すことができる。このため、コンピューター記憶媒体は、送信媒体も利用するコンピューター・システム・コンポーネントに（または通信媒体を主に利用するコンピューター・システム・コンポーネントにさえも）含むことができることは言うまでもない。
【００１５】
[0024]  コンピューター実行可能（またはコンピューター解釈可能）命令は、例えば、汎用コンピューター、特殊目的コンピューター、または特殊目的処理デバイスに、一定の機能または１群の機能を実行させる命令を含む。コンピューター実行可能命令は、例えば、バイナリー、アセンブリー言語のような中間フォーマット命令、またはソース・コードでさえも含んでもよい。本主題は構造的特徴および／または方法論的動作に特定の文言で説明されているが、添付した特許請求の範囲に定められる本主題は、必ずしも説明した特徴や以上で説明した動作には限定されないことは言うまでもない。逆に、説明される特徴および動作は、特許請求の範囲を実現する形態例として開示されるだけである。
【００１６】
[0025]  尚、本発明は、複数のタイプのコンピューター・システム構成で、ネットワーク計算環境においても実施できることは、当業者には認められよう。コンピューター・システム構成には、パーソナル・コンピューター、デスクトップ・コンピューター、ラップトップ・コンピューター、メッセージ・プロセッサー、ハンドヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースのまたはプログラマブルコンシューマー用電子機器、ネットワークＰＣ、ミニコンピューター、メインフレーム・コンピューター、移動体電話機、ＰＤＡ、ページャー、ルーター、スイッチ等が含まれる。また、本発明は分散システム環境においても実施することができ、この場合、ローカル・コンピューター・システムおよびリモート・コンピューター・システムがネットワークを介してリンクされ（ハードワイヤ・データー・リンク、ワイヤレス・データー・リンク、またはハードワイヤおよびワイヤレス・データー・リンクの組み合わせのいずれかによって）、各々がタスクを実行する（例えば、クラウド計算、クラウド・サービス等）。分散システム環境では、プログラム・モジュールはローカルおよびリモート双方のメモリー記憶デバイスに配置されてもよい。
【００１７】
[0026]  図１は、本発明の原理を採用することができるコンピューター・アーキテクチャー１００を示す。コンピューター・アーキテクチャー１００は、コンピューター・システム１０１を含む。コンピューター・システム１０１は、クラウド計算システムを含む、ローカル・コンピューター・システムまたは分散型コンピューター・システムの内任意のタイプであってよい。コンピューター・システムは、種々の異なるタスクを実行するために種々の異なるモジュールを含むことができる。コンピューター・システムは、種々の異なるインターフェースを使用して、本システムとのユーザー対話処理を可能にする。実施形態の中には、コンピューター・システムが、ソフトウェア・プログラムを開発することを開発者に可能にする統合開発環境（ＩＤＥ）１０７を設けるものがあってもよい。つまり、場合によっては、ユーザー１０５が開発者であってもよく、ＩＤＥと対話処理するために入力１０６を送ることができる。ＩＤＥは、種々の異なるプログラミング構造(construct)および他のエレメントへのアクセスを与えることができる。場合によっては、これはメタデーター・リーダー１１５を含むこともできる。
【００１８】
[0027]  本明細書において説明する実施形態の中には、１つのタイプの異なるビューを異なるメタデーター・コンシューマー(metadata consumer)に提示する１つのメタデーター・ファイルを提供するものがある。この異なるビューは、メタデーターが読み取られているときに、実行中にこれらの変更をメタデーター・リーダー１１５に行うことを強制することなく、提示することができる。メタデーター・リーダーがオブジェクト・モデル記述１１６によって(over)インスタンス化されるとき、リーダーはそのメタデーターのエンコーディングを検出し、このメタデーターがリーダーのコンシューマーにとって自然に見えるようにするために必要とされ得る変更を決定することができる。リーダーは、このメタデーターをアダプター（例えば、適応化モジュール１２５）においてラップし(wrap)、このアダプターは、メタデーター・リーダーのコンシューマーが、変更なしに、フォーリン（または、ここでは「非ネーティブ」）エンコーディング（例えば、１１７）に対して(over)動作できるように、メタデーターのエンコーディングを変更する。また、実施形態は、効率的なやり方で変換を可能にするエンコーディング・メタデーターについても説明する。本明細書において使用する場合、「ネーティブ」エンコーディングとは、メタデーター・リーダーによって期待されるフォーマットになっているメタデーター・エンコーディングを指す。「非ネーティブ」即ちフォーリン・エンコーディングとは、メタデーター・リーダーによって期待されていない任意のメタデーター・エンコーディングを指す。
【００１９】
[0028]  変更が非常に多い場合、メタデーターの複数のコピーを、タイプ毎に作ることができる。これらのコピーの各々は、区別できる特性を含み、メタデーター・リーダーが、どのビューをどのメタデーター・コンシューマーに提示すべきか判断することを可能にする。一旦決定が行われたなら、決定されたビューが各コンシューマーに提供される。メタデーター・コンシューマーは、選択肢をリーダーに渡し、それらの好ましいビュー・タイプを特定することができる。次いで、メタデーター・リーダーはそれを使用して、ビュー・タイプの中から提示するものを選択することができる。次いで、残りのビューは、そのコンシューマーからは隠される。
【００２０】
[0029]  本明細書において説明する実施形態の中には、以下の形態を含むものがある。１）フォーリン・オブジェクト・モデル・エンコーディングをネーティブに適応化するために必要な変更の、メタデーター・リーダーによる自動検出、２）代わりに異なるオブジェクト・モデルからのタイプになるための、オブジェクト・モデルによって参照されるタイプの変更、３）２つの異なるオブジェクト・モデルのタイプ・システム間において効率的な変換を可能にするためのメタデーターのエンコーディング、４）メタデーター・リーダーのコンシューマーによって期待されるメタデーター・エンコーディング規格に沿うような、メタデーター・エンコーディングの変更、５）メタデーター・コンシューマーが、変更なく、様々なメタデーター・エンコーディングを透過的に消費することを可能にする、および６）異なるコンシューマーによる直接使用のための、１つのエンティティの複数のビューを含む１つのメタデーター・ファイル。ビューは、コンシューマー毎に完全で(complete)一貫しており、コンシューマー毎に異なるビューを必要とするエンティティだけが複数のビューを有する（即ち、これは、メタデーター・ファイルのコピーを３つ含む単純なジップ・ファイルではない）。つまり、メタデーター・コンシューマーは、彼らが望むビューのタイプを容易に指定することができる。また、メタデーター・リーダーは、コンシューマーの選択に基づいて、完全で一貫するメタデーター・ビューを選択することもできるとよい。
【００２１】
[0030]  メタデーター・アダプター１２５がオブジェクト・モデル１１６記述によってインスタンス化されると、このアダプターは、オブジェクト・モデルが特定のネーティブ・エンコーディングになっていることを期待するクライアントによって消費されている。読み取られているオブジェクト・モデルがそのネーティブ・エンコーディングになっていない場合、メタデーター・リーダーは、フォーリン・エンコーディングをネーティブ・エンコーディング１２６に変換する(transform)ために必要な変更１２１を検出する（１２０）ことができる。次いで、クライアントがメタデーターを読み取りながら、このメタデーターを変更するために、アダプターをインスタンス化し、クライアントがメタデーターを種々のフォーリン・エンコーディング１１７で透過的に読み取ることができるようにする。他のメタデーター・リーダーは、２つのフォーマット間で動的に変換を可能にするのではなく、１つの特定のフォーマットで読むことしかできない。
【００２２】
[0031]  メタデーター・リーダー１１５のクライアントがこのリーダーを使用してオブジェクト・モデルを理解するに連れて、メタデーター・アダプターは、非ネーティブ・メタデーターに対して多くのクラスの変更を透過的に行い、ネーティブ・クライアントがそれを直接理解できるようにすることができる。これは、フォーリン・タイプ・システムによって参照されるタイプを、ネーティブ・タイプ・システムによって使用されるタイプに変更すること、およびメタデーター・フラグのネーティブ・システムにおける等価フラグへの変更を含む。
【００２３】
[0032]  オブジェクト・モデル記述１１６は、必要な処理時間空間を最小限にして、効率的な変換に備えるためにエンコードすることができる。本明細書に含まれる実施形態は、このようなエンコーディングについて説明し、フォーリン・タイプ・システムをインプレースで(in-place)メタデーター・リーダーのネーティブ・タイプ・システムに変換することを可能にする。このエンコーディングでは、オブジェクト・モデルによって使用されるタイプへの参照は、タイプ参照を介して行われる。場合によっては、他のメタデーター・エンコーディングが、トークンおよび定義の相対的位置に基づいて、タイプ参照およびタイプ定義トークンの組み合わせを利用するとよい（例えば、これらが双方とも同じメタデーター・ファイルにある場合、タイプ定義トークンが選択され、一方これらが異なるメタデーター・ファイルにある場合、タイプ参照トークンが選択される）。本明細書における実施形態では、タイプ定義トークンが利用可能なときでも、このトークンは定義と同じメタデーター・ファイルにあるので、タイプ参照トークンが使用される。タイプ定義トークンの代わりにタイプ参照トークンを使用することによって、本明細書におけるシステムは、タイプ参照トークンではなくタイプ定義トークンによって参照すると費用がかかるような方法で、効率的にタイプをリディレクトすることが可能になる。
【００２４】
[0033]  非ネーティブ・オブジェクト・モデルによって使用されるタイプが、タイプ参照を使用してエンコードされる場合、アダプター１２５は、タイプ参照のターゲットをインプレースで変換することによって、タイプ・システム間で変換を行いつつ、その参照の他のユーザーを、メタデーターにおいて変更しないままにしておく。これによって、メタデーター表全体の走査や更新を必要とせずに、フォーリン・タイプのあらゆる使用のネーティブ・タイプへのリターゲッティングを可能にする。
【００２５】
[0034]  加えて、メタデーター・コンテナにおいて記述されるタイプの殆どは、１つのビューを有し、このビューは多くの異なるコンシューマー間で共有することができ、以上で説明したように、最小限の適応化を必要とするに過ぎない。しかしながら、カスタマー毎に異なるビューを使用することもあるタイプのクラスもある。他の実現例では、通例、メタデーター・ファイル全体の複数の別個のコピーを有するか（ビュー毎に１つの完全なコピー）、あるいはコンシューマーに依存して実行中にメタデーターを適応化するまたは書き直すことを試みたであろう。複数コピーの解決策では、メタデーター・ディプロイヤー(metadata deployer)に２つの別個のファイルを管理させるので、複雑さが増し、双方のコンシューマーに対して共有表現を有するタイプの不要なコピーがあるので、性能を阻害する虞がある。実行中に適応化するまたは書き換えることは、非常に単純な変換でなければうまく行かず、重要な変換はいずれも、読み取りが非常に遅くなり、メタデーター全体の新たなコピーをメモリーまたはディスクにおいて一時的に生成することが必要になる場合さえもある。
【００２６】
[0035]  本明細書において説明する実施形態は、１つのメタデーター・コンテナを含む。このメタデーター・コンテナは、全てのコンシューマーでビューが同じであるはずのタイプに対して、１つのメタデーター定義を保持する。また、このメタデーター・コンテナは、ビューが異なる（または異なる必要がある）タイプの複数のコピーも保持する。次いで、メタデーター・リーダーはこのコンテナの異なるビューを各コンシューマーに提供し、それらを有するタイプに対して包括なビュー、残りに対してコンシューマー特定ビューだけを、そのコンシューマーに示す。これらの概念については、それぞれ、図２および図３の方法２００および３００に関して、以下で更に説明する。
【００２７】
[0036]  以上で説明したシステムおよびアーキテクチャーに関して、開示する主題にしたがって実現することができる方法は、図２および図３のフロー・チャートを参照すると、一層深く認めることができよう。説明の簡素化に限って、方法は一連のブロックとして示され説明される。しかしながら、特許請求する主題は、これらのブロックの順序には限定されないことは言うまでもないことであり、認められてしかるべきである。何故なら、一部のブロックは本明細書において図示および説明される順序とは異なる順序で現れてもよく、および／または他のブロックと同時に現れてもよいからである。更に、以下で説明する方法を実現するために、図示する全てのブロックが必要ではない場合もある。
【００２８】
[0037]  図２は、ネーティブ・データー・エンコーディングとの使用のためにメタデーターを動的に適応化する方法２００のフロー・チャートを示す。これより、環境１００のコンポーネントおよびデーターを頻繁に参照しながら、方法２００について説明する。
【００２９】
[0038]  方法２００は、オブジェクト・モデル記述におけるメタデーターの１つ以上の部分にアクセスするために、オブジェクト・モデル記述によってメタデーター・リーダーをインスタンス化する動作を含み、このメタデーター・リーダーは、ネーティブ・メタデーターを読み取るように構成され、ネーティブ・メタデーターは、メタデーター・リーダーによって期待されるエンコーディングで表されたメタデーターを含む（動作２１０）。例えば、インスタンス化モジュール１１０がメタデーター・リーダー１１５をオブジェクト・モデル記述１１６によってインスタンス化することができる。オブジェクト・モデル記述におけるメタデーターの部分にアクセスするために、 メタデーター・リーダーをインスタンス化することができる。メタデーターは、ネーティブ・タイプ（１２６）、またはフォーリン、非ネーティブ・タイプ（１１７）であってもよい。メタデーター・リーダーは、ネーティブ・フォーマットでエンコードされたメタデーターを読み取るように構成されるが、種々の異なる非ネーティブ・フォーマットの内任意のものでエンコードされたメタデーターを読み取ることができなくてもよい。つまり、メタデーター・リーダーは、アクセスされたメタデーターが非ネーティブ・エンコーディングでエンコードされたことを判定し（動作２２０）、更にこの非ネーティブ・エンコーディングをネーティブ・エンコーディングに変換するために実行すべきメタデーター変更を決定する（動作２３０）。
【００３０】
[0039]  変更は、非ネーティブ・エンコーディングによって参照されるタイプを、ネーティブ・エンコーディングによって使用されるタイプに変更する（またはエンコードし直す）ことを含むことができる。また、変更は、非ネーティブ・エンコーディングのメタデーター・フラグを、ネーティブ・エンコーディングのメタデーター・フラグに変更することも含むことができる。したがって、変更の後、メタデーター・リーダーはメタデーター・フラグを認識することができる。他の変更も、別個に、または以上で述べたものに加えて実行することもできる。場合によっては、ネーティブ・エンコーディングに沿うように、データー・タイプを書き直すこともできる。これらのデーター・タイプは、これらをメタデーター・リーダーに対して読み取り可能にするまたそうでなければアクセス可能にするために、動的に書き直すことができる。
【００３１】
[0040]  また、方法２００は、オブジェクト・モデルがネーティブ・ランタイムによって読み取り可能になるように、決定された変更にしたがって、オブジェクト・モデルのメタデーターを非ネーティブ・エンコーディングからネーティブ・エンコーディングに動的に適応化する動作も含む（動作２４０）。例えば、適応化モジュール１２５がモジュール１２０によって決定された決定変更１２１を使用して、非ネーティブ・メタデーター１１７をネーティブ・エンコーディング１２６に動的に適応化することができる。変更が適用された後、オブジェクト・モデル１１６はネーティブ・ランタイムによって読み取り可能になる。このように、動的適応化は、ユーザーが複数の異なる非ネーティブ・エンコーディングのメタデーターを読み取ることを可能にする。メタデーターがエンコードされる非ネーティブ・エンコーディングがいずれであっても、記載する本システムは、１つ以上の異なる変更を使用して、メタデーター・リーダーによって読み取り可能なネーティブ・エンコーディングにメタデーターを適応化する。
【００３２】
[0041]  実施形態の中には、動的適応化がメタデーター・インポート−読み取りレベルで行われるとよい場合がある。インポート−読み取りレベルでメタデーターを適応化することによって、ランタイムにおける後続の適応化を回避することができる。場合によっては、動的に適応化されたメタデーターを内部でまたは公に可視化するために、可視化モディファイアー(visibility modifier)を適用するとよい。この可視化モディファイアーは、所望に応じて、開発者１０５によってメタデーターにおいて変更することもできる。
【００３３】
[0042]  図３は、オブジェクト・モデル・タイプ参照を効率的に変更する方法３００のフロー・チャートを示す。これより、環境１００のコンポーネントおよびデーターを頻繁に参照しながら、方法３００について説明する。
【００３４】
[0043]  方法３００は、タイプ参照表をインスタンス化する動作（動作３１０）を含む。タイプ参照表は、タイプ定義要求を受け、メタデーター・リーダーによって読み取り可能なメタデーターに格納されている１つ以上のタイプ参照トークンを使用して、応答して、適したタイプ定義を与えるように構成される。例えば、インスタンス化モジュール１１０が、タイプ参照表１３０をインスタンス化することができる。タイプ参照表１３０は、タイプ定義要求を受け、応答して、メタデーター１１７に格納されている種々のタイプ参照トークンを使用して、タイプ定義１３１を与える。タイプ参照表１３０は、メタデーター・リーダー１１５によって読み取り可能なメタデーターを含む。インスタンス化されたタイプ参照表は、指定されたタイプに対するタイプ定義要求を、タイプ要求元から受ける（動作３２０）。その後、タイプ参照トークンがタイプ参照表１３０のメタデーターに実装され、要求されたタイプおよびメタデーター・リーダーによって読み取り可能なタイプに基づいて、メタデーター・リーダー１１５に対して１つ以上のタイプを動的に交換する（動作３３０）。したがって、タイプは、要求される通りにそして必要に応じて、タイプ参照表を使用して動的に交換される。非ネーティブ・タイプ参照は、インプレースでネーティブ・タイプ参照と交換される。これらの動的な交換は、非ネーティブ・タイプの標準化ビューを、メタデーター・リーダーに供給する。
【００３５】
[0044]  また、方法３００は、メタデーターにおいてタイプ参照トークンによって与えられる、動的に交換されたタイプに基づいて、要求されたタイプ定義をタイプ要求元に与える動作も含む（動作３４０）。つまり、タイプ参照表１３０は、動的に交換されたタイプに基づいて、タイプ定義１３１をタイプ要求元に与えることができる。タイプ参照表は、タイプ要求元の要求がタイプ参照を介して受け取られたことを確認するために、インスタンス化されてもよい。タイプは、タイプ参照表において交換される。このように、ユーザー要求は不変のままであるが、非ネーティブ定義の代わりにネーティブ・タイプ定義が使用される。
【００３６】
[0045]  メタデーターのネーティブおよび非ネーティブ双方のエンコーディングは、同じメタデーター・ファイルにおいて作ることができる。つまり、同じメタデーター・ファイルが１つよりも多いエンコーディングを含むこともできる。１つのメタデーター・ファイルが複数のエンコーディングを有する場合、メタデーター・リーダーは、メタデーター・ファイルを要求しているユーザーを判定し、この判定に基づいて、メタデーター・ファイルの適したエンコーディングをこのユーザーに渡すことができる。したがって、ユーザーがネーティブ・エンコーディングを要求した場合、ネーティブ・ビューまたはネーティブ・エンコーディングがユーザーに送られる。このように、エンコーディングはユーザー毎に完全で一貫する。効率的な実行に備えるために、異なるタイプのユーザーによってアクセスされるメタデーター・ファイルのみが、ネーティブおよび非ネーティブ双方のエンコーディングでエンコードされる。前述のように、動的適応化は、種々の異なる変更方法を含むことができ、非ネーティブ・エンコーディングによって参照されるタイプを、ネーティブ・エンコーディングによって使用されるタイプに変更すること、および非ネーティブ・エンコーディングのメタデーター・フラグを、ネーティブ・エンコーディングのメタデーター・フラグに変更することを含む。このように、種々のタイプの非ネーティブ・メタデーターを、ネーティブ・データー・エンコーディングとの使用のために動的に適応化することができる。
【００３７】
[0046]  追加の実施形態について、図４から図９において説明する。例えば、図４において、ネーティブ・クライアント、メタデーター・リーダー、アダプター、およびフォーリン・オブジェクト・モデル間における相互作用が図示されている。フォーリン・エンコーディング（４５４）で受け取られるメタデーターは、メタデーター・リーダー４５２によって読み取り可能なネーティブ・エンコーディングに適応化されるために、メタデーター適応化モジュール４５３に送られればよい。ネーティブ・メタデーター・クライアント４５０（ＡＰＩ境界４５１の他方側）は、ネーティブにエンコードされたメタデーターにアクセスするために、メタデーター・リーダーと相互作用することができる（例えば、ＡＰＩを使用する）。
【００３８】
[0047]  図５は、複数のタイプを使用するときの、タイプ参照を使用するメタデーター・エンコーディングを示す。例えば、タイプ・コンシューマー５１０は、タイプ１（５１１Ａ）と、１つ以上の他のタイプ（タイプｎ（５１１Ｎ））とを含むことができる。これらのタイプは、フォーリン・タイプ定義（例えば、５０２Ａ）にタイプ参照（５０６Ａ）を介してリンクすることができる。つまり、タイプ１（５１１Ａ）をフォーリン・タイプ定義１（５０２Ａ）にタイプ参照５０６Ａを介してリンクすることができる。同様に、他のタイプ（タイプｎ）をフォーリン・タイプ定義５０２Ｎにタイプ参照５０６Ｎを介してリンクすることができる。フォーリン・タイプ定義は、タイプ定義表５０１に格納され、一方タイプ参照はタイプ参照表５０５に格納される。
【００３９】
[0048]  図６は、タイプ参照のインプレース変更によるフォーリン・タイプ・システムからネーティブ・タイプ・システムへの変換を示す。したがって、タイプ参照５０６Ａおよび５０６Ｎは既にフォーリン・タイプ定義５０２Ａおよび５０２Ｎ（図５）にポイントしたが、異なるネーティブ・タイプ定義にポイントするように、タイプ参照を変更することができる。つまり、タイプ参照５０６Ａは、ネーティブ・タイプ定義６２６Ａにポイントするように変更されてもよく、タイプ参照５０６Ｎは、ネーティブ・タイプ定義６２６Ｎにポイントするように変更されてもよい。したがって、フォーリン・タイプ・システムをネーティブ・タイプ・システムに変換することができる。
【００４０】
[0049]  図７は、メタデーター・コンテナ内部において、複数のメタデーター・ビューを要求する各エンティティがビューの別個のコピーを有することができることを示す。次いで、これらのコピーは、異なるビューを必要としないエンティティに対する共有ビューを参照する。したがって、メタデーター・コンテナ７０５におけるエンティティＡは、２つの異なるビュー、即ち、第１ビュー７１０Ａおよび第２ビュー７１０Ｂを有することができる。そして、エンティティＡは２つのビューを有するが、エンティティＢおよびＣは各々それら自体の包括メタデーター・ビュー（それぞれ、７１１および７１２）を有する。更に、図８は、メタデーター・リーダーが第１メタデーター・コンシューマー７０１Ａに、その所望のビューと一貫性があるメタデーター・コンテナ７０５におけるエンティティのビューを自動的に与えることができることを示す。したがって、コンシューマー７０１Ａはメタデーター・ビュー７１０Ａの方を好むので、メタデーター・リーダー７０２は、エンティティＡにビュー７１０Ａを示し、エンティティＢおよびＣ（７１１および７１２）に包括ビューを示す。図９は、メタデーター・リーダー７０２がメタデーター・コンシューマー７１０Ｂに、その所望のビューと一貫性があるメタデーター・コンテナにおけるエンティティのビューを自動的に与えることを示す。したがって、コンシューマー７０１Ｂはメタデーター・ビュー７０１Ｂの方を好むので、メタデーター・リーダー７０２はエンティティＡにビュー７１０Ｂを示し、エンティティＢおよびＣ（７１１および７１２）に包括ビューを示す。
【００４１】
[0050]  したがって、ネーティブ・データー・エンコーディングでの使用のためにメタデーターを動的に適応化する方法、システム、およびコンピューター・プログラム製品が提供される。更に、オブジェクト・モデル・タイプ参照を効率的に変更する方法、システム、およびコンピューター・プログラム製品が提供される。
【００４２】
[0051]  本発明は、その主旨や本質的な特性から逸脱することなく、他の特定形態においても具体化することができる。説明した実施形態は、あらゆる観点においても、限定ではなく例示として見なされてしかるべきである。したがって、本発明の範囲は、以上の説明によってではなく、添付する特許請求の範囲によって示されることとする。特許請求の範囲の均等の意味および範囲に該当する全ての変更は、その範囲内に含まれるものとする。
【図１】
2014534488.tif 000003
【図２】
2014534488.tif 000004
【図３】
2014534488.tif 000005
【図４】
2014534488.tif 000006
【図５】
2014534488.tif 000007
【図６】
2014534488.tif 000008
【図７】
2014534488.tif 000009
【図８】
2014534488.tif 000010
【図９】
2014534488.tif 000011
【国際調査報告】
2014534488.tif 000012
2014534488.tif 000013