(57)【要約】【課題】石油会社の選択された資産を設計するために拡張可能Ｎ層オイル・ソフトウェア・アプリケーションを設計するシステムと方法を提供すること。【解決手段】石油会社の選択された資産を設計するために拡張可能Ｎ層オイル・ソフトウェア・アプリケーションを設計するシステムと方法が記載されている（図２８、符号３０ａ）。システムは、少なくとも１個の処理ユニットと；処理ユニットに連動接続された少なくとも１個のメモリ・ストアと；少なくとも１個の処理ユニット内で実行可能なＮ層ソフトウェアと；Ｎ層ソフトウェアによって使用するためのメモリ・ストアに常駐する、それぞれがオイルフィールドの１つの要素を選択的に表しているソフトウェア・コンポーネントの目録と；処理ユニットに連動連結している入力装置と；処理ユニットに連動連結している出力装置と；処理ユニットに連動連結している連結通路と；少なくとも１個のソフトウェア・コンポーネントからなるとともに、オイルフィールドの少なくとも１個の要素を更に表しかつ明確に規定されたビジネス機能を実行する、少なくとも１個の階層と；から構成されている（図２８、符号３０ｄ）。方法は、所定数のウェルに対するソフトウェア・コンポーネントの目録からウェル・コンポーネントを選択すること；所定数のログ・コンポーネントに対するソフトウェア・コンポーネントの目録からログ・コンポーネントを選択すること；所定数のフィールド・コンポーネントに対するソフトウェア・コンポーネントの目録からフィールド・コンポーネントを選択すること；１つもしくはそれ以上のウェル・コンポーネントを１つもしくはそれ以上のログ・コンポーネントと、１つもしくはそれ以上のフィールド・コンポーネントとに関連付けること；とから構成されている（図２８、符号３０ｅ）。【選択図】図２８
2004520635.tif 000002
【特許請求の範囲】
【請求項１】
石油会社のためのソフトウェア・アプリケーションを作成・使用するシステムであって、該システムが、
少なくとも１個の処理ユニットと；
該処理ユニットに連動連結された少なくとも１個のメモリ・ストアと；
該少なくとも１個の処理ユニット内に常駐し実行可能な拡張可能Ｎ層ソフトウェアと；
該Ｎ層ソフトウェアによって使用する該メモリ・ストア中に常駐するソフトウェア・コンポーネントの目録であって、少なくとも１個のソフトウェア・コンポーネントが石油会社の資産の必要要件を選択的に表していることと；
該処理ユニットに連動連結している入力装置と；
該処理ユニットに連動連結している出力装置と；
該拡張可能Ｎ層ソフトウェアによって作成される少なくとも１個の層であって、該層は少なくとも１個のソフトウェア・コンポーネントから構成されるとともに、該石油会社の少なくとも１個の資産を更に表しかつ明確に規定されたビジネス機能を実行することを特徴とするシステム。
【請求項１】
請求項１に記載するシステムにおいて、該少なくとも１個のソフトウェア・コンポーネントが、フィールド・コンポーネントと、ウェル・コンポーネントと、所定のオイルフィールド、ウェルならびに関連必要要件を選択的に表すことができるログ・コンポーネントとからなることを特徴とするシステム。
請求項１に記載するシステムにおいて、該出力装置のディスプレーが、該入力装置からの入力、該Ｎ層ソフトウェア、該Ｎ層ソフトウェアを用いて作成されたアプリケーションまたはそれらの組み合わせに対して応答することを特徴とするシステム。
【請求項１】
請求項１に記載するシステムにおいて、追加のソフトウェア・コンポーネントが、ユーザーの入力による手作業で、または内部のトリガーに応答して該Ｎ層ソフトウェアを用いて作成されたアプリケーションによる自動作業で、またはそれらの組み合わせによって作成もしくは修正されることを特徴とするシステム。
【請求項１】
石油会社の資産の選択されたセットを取り扱うためにシステムに対するソフトウェア・アプリケーションを生成する方法であって、該システムが、少なくとも１個の処理ユニットと、該処理ユニットに連動接続している少なくとも１個のメモリ・ストアと、該少なくとも１個の処理ユニット内で実行可能なＮ層ソフトウェアと、該Ｎ層ソフトウェアによって使用するためのメモリ・ストア中に常駐するソフトウェア・アーキテクチャ仕様書と、該処理ユニットに連動連結する入力装置と、出力装置と、該処理ユニットに連動連結する連結通路と、各ソフトウェア・コンポーネントが該資産のセットの少なくとも１個の資産を選択的に表しているソフトウェア・コンポーネントの初期セットと、少なくとも１個のソフトウェア・コンポーネントを構成しかつ該資産のセットの少なくとも１個の資産を表し、明確に規定されたビジネス機能を実行するところの少なくとも１個の層とから構成されていて、該方法が、
該資産のセットの選択サブセットのそれぞれに対する必要要件を選択的に表すためにソフトウェア・コンポーネントの目録からソフトウェア・コンポーネントを選択すること；
該目録からのソフトウェア・コンポーネントによって充足されていない各必要要件に対して該目録の外部からソフトウェア・コンポーネントを取得すること；
各選択されたソフトウェア・コンポーネントと取得されたソフトウェア・コンポーネントに対する、少なくとも１個の他のソフトウェア・コンポーネントとの関係を規定して、該関係が各選択されたソフトウェア・コンポーネントを層に関連付けることを含んでいること；ならびに
該ソフトウェア・コンポーネントのそれぞれを引き合い可能なアプリケーション中に配列することを規定すること；によって構成され、それによって該資産のセットを取り扱うための該ソフトウェア・アプリケーションの必要要件が充足されることを特徴とする方法。
【請求項１】
請求項５に記載する方法において、
ソフトウェア・コンポーネントの目録からウェル・コンポーネントを選択して、ウェルの所定数に対する必要要件を選択的に表すこと；
ソフトウェア・コンポーネントの目録からログ・コンポーネントを選択して、ログ・コンポーネントの所定数に対する必要要件を選択的に表すこと；
ソフトウェア・コンポーネントの目録からフィールド・コンポーネントを選択して、フィールド・コンポーネントの所定数に対する必要要件を選択的に表すこと；および
１個もしくはそれ以上のウェル・コンポーネントを１個もしくはそれ以上のフィールド・コンポーネントと１個もしくはそれ以上のログ・コンポーネントとに関連付けること；を特徴とする方法。
【請求項１】
請求項５に記載する方法において、各ソフトウェア・コンポーネントに変更メニューを提供して、該変更メニューが手作業によってアクセスされるか、プログラム的にアクセスされるかまたはそれらの組み合わせによって作成されることを更に含むことを特徴とする方法。
【請求項１】
請求項５に記載する方法において、１個もしくはそれ以上の処理ソフトウェア・コンポーネントがデータ処理のために作成されることから更に構成され、該処理される処理ソフトウェア・コンポーネントがプログラムによる制御下に作成され、かつ、前以って規定された量のデータを受け取ったときにそれらのデータについて要求された処理を行うことを特徴とする方法。
【請求項１】
該ソフトウェア・コンポーネントが複数個の処理ユニット中に分散されている複数個の処理ユニットのための請求項５に記載する方法。
請求項５に記載する方法を用いて作成されたコンピューターで読み取り可能な媒体中に具体化されるコンピュータープログラム。
【発明の詳細な説明】
【０００１】
【０００２】
【発明の属する技術分野】
この発明は、拡張可能なＮ層デザインおよびアーキテクチャを有するソフトウェア・アプリケーションに関し、詳細には、石油会社の選択された資産、たとえば油田（オイルフィールド）ビジネスモデルを設計することに適合するソフトウェア・アプリケーションを作成する新規かつ改良方法に関するものである。更に詳細には、この発明は、石油会社の開発及び生産資産を設計するのに適した油田ビジネスモデルに適合するソフトウェア・アプリケーションを作成する新規かつ改良方法ならびにかかる方法のシステムに関するものである。
【０００３】
【従来の技術】
ソフトウェア・プログラム・コードを設計または作成するために、プログラマーまたはコード開発者は、様々な技法を使っている。１つのアプローチでは、ソフトウェア・アプリケーションは、「単層構造」として設計されていて、そこでは、データ保存やアプリケーション論理などの様々な機能が完全に絡みあっている。たとえば、コード開発者は、システム仕様書と機能とが所定のアプリケーションまたはプログラムで実行される場合には、所望の機能を実行する単層構造で、独立して実行可能なプログラムを設計する。プログラマーは、たとえば、高レベルプログラム言語、たとえばＣ＋＋などを作成するために高レベル言語と、コード開発ツールなどを使用し、それらをコンパイラでコンパイルしてプログラムの実行可能なバージョンを提供する。
【０００４】
このアプローチの１つの課題は、アプリケーションの維持が困難であることと、プログラムのすべての部分が絡みあっていて、アプリケーション特異的であることから、プログラムの分離した機能部分を再使用することが困難であることである。
【０００５】
したがって、ソフトウェア分野においては、アプリケーションの機能性をより小さなユニット、例えばオブジェクトやコンポーネントなどに分割した様々なソフトウェア・アーキテクチャが開発されている。これらのユニットは組み立てて所望のアプリケーションに対して全体の機能性を提供することができるようになっている。たとえば、コンポーネントのグループは、組み立ててコンパイルして、独立の実行可能なプログラムを提供できるようになっている。別の方法としては、コンポーネントを、コンポーネントの機能性が必要とされる時に、リアルタイムで起動して使用することができるようになっている。
【０００６】
これらのユニットを開発するのに必要なリソースの費用を節減するために、これらのユニットを再利用することが望ましい。これらのユニットを再利用することによって、それらの機能性を、必要となったときにその都度、「車輪を再発明する」必要がなくなり、その後のアプリケーションで使用することができることになる。２層または３層のアーキテクチャなどの現在のソフトウェア・アーキテクチャにおいては、データ容器やユーザー・インターフェースなどのいくつかの部分は比較的再使用が簡単であるが、コンポーネントの他の形式、たとえばアプリケーション論理を実行するような形式は、なお大きなブロックになっていて、これらのコンポーネントやそれらの種々の機能を再使用することは困難である。このことは、オイルフィールド・ソフトウェア・アプリケーションに対しても真実である。
【０００７】
したがって、先行技術のかかる欠点を避けるために、オイルフィールド分野ならびにそれらのコンポーネントを取り扱うために適した改良ソフトウェア・アプリケーションが必要である。
【０００８】
【発明が解決しようとする課題】
したがって、この発明は、先行技術が有する欠点を解決して、オイルフィールド分野ならびにそのコンポーネントの取り扱いに適した改良ソフトウェア・アプリケーションを提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、この発明は、拡張可能なＮ層デザインおよびアーキテクチャを有するソフトウェア・アプリケーションを提供する。
【００１０】
また、この発明は、石油会社の選択された資産、たとえばオイルフィールドビジネスモデルなどを設計するのに適合するソフトウェア・アプリケーションを設計、作成する新規かつ改良方法を提供する。
【００１１】
更に、この発明は、石油会社の開発及び生産資産を設計するのに適したオイルフィールドビジネスモデルに適合するソフトウェア・アプリケーションを設計、作成する新規かつ改良方法ならびにかかる方法のシステムを提供する。
【００１２】
【発明の実行の態様】
図１〜図６に示すように、この発明は、エンジニアリングならびに製造に方向付けたアプローチを、明確に規定されたアーキテクチャに基づいたソフトウェア生産に適用する方法論から構成されている。ここで使用する「製造」という用語は、ソフトウェア工場と同義の方法を示唆している。この発明の方法論を使用することによって、まるであらゆる形式の知的財産を迅速にかつ最低コストで組み立てることができる組み立てラインを有するソフトウェア製造工程であるかのようにソフトウェア・アプリケーション開発を進めることができる。
【００１３】
係属中のアメリカ特許出願第０９／７４６，１５５号（出願日２０００年１２月２２日；本明細書に参照文献として編入）には、ソフトウェア・アーキテクチャのソフトウェアデザインのシステムならびに方法、更に詳細には、ここで使用されているような拡張可能な階層ソフトウェア・コンポーネント・アプリケーションのデザインを提供することを提案している。かかるシステムと方法を利用することによって、更に、係属中のアメリカ特許出願第０９／７４６，１５７号（出願日２０００年１２月２２日；本明細書に参照文献として編入）には、拡張可能なＮ層ソフトウェア・アプリケーションの開発のためのソフトウェア・コンポーネント・アーキテクチャを使用したソフトウェア・アプリケーションの開発のためのシステムおよび方法を提供することを提案している。
【００１４】
この発明は、同アメリカ特許出願第０９／７４６，１５５号と、同アメリカ特許出願第０９／７４６，１５７号とに記載されたような「Ｎ層アーキテクチャ」方法論を使用している。Ｎ層アーキテクチャにおいては、全ての機能性は、明確に規定されたビジネス機能を実行する論理部分、つまり層（ｔｉｅｒ）３０にシステムレベルで分割されている。この発明のＮ層アーキテクチャにおいては、層３０の数には制限がない。
【００１５】
この発明のＮ層ソフトウェア設計アーキテクチャは、ソフトウェア・コンポーネント２０を開発するために使用される。プログラム技術分野における当業者にとっては明白であるように、「ソフトウェア・コンポーネント」は独立した言語であり、たとえばＦＯＲＴＲＡＮ， Ｃ， Ｃ＋＋， ＪＡＶＡ， アセンブラなどもしくはそれらの組み合わせを含む数多くのコンピューター言語において実行することができる言語である。プログラム技術分野における当業者にとっては明白であるように、先行技術における「Ｎ層（ｔｉｅｒ）」は、プロトコールスタックのような階層（ｈｉｅｒａｒｃｈｙ）を示唆するように考えることができる。しかしながら、ここに記載するように、「Ｎ層（ｔｉｅｒ）」は、その各層が指定された形式と指定されたインターフェースを有する複数個の「Ｎ」層３０によって特徴づけられるアーキテクチャを記載している。階層（ｈｉｅｒａｒｃｈｙ）は層（ｔｉｅｒ）に対して定義することができるけれども、この発明のＮ層アーキテクチャにおいては階層（ｈｉｅｒａｒｃｈｙ）は必須ではない。
【００１６】
開発される各ソフトウェア・コンポーネント２０は、そのソフトウェア・コンポーネント２０と層３０とによって実行される機能の性質に依存しているので、少なくとも１個の層３０に関連付けられる。この発明は、Ｎ層システムを実行するためにアーキテクチャを使用するための方法及びシステムを提供していて、ソフトウェア・コンポーネント設計者が、指定された機能を実行し、かつ、各ソフトウェア・コンポーネント２０がその層３０に対してアーキテクチャによって指定されたインターフェースを有することを保証するように、各ソフトウェア・コンポーネント２０を設計もしくは選択することができる。
【００１７】
この発明の方法論を用いて、層３０または実行もしくは規定できるソフトウェア・コンポーネント２０の数には制限はない。アーキテクチャのルールは、２層システムもしくは３層システムにおける場合のように、階層（ｔｉｅｒ）３０が必ずしも階層（ｈｉｅｒａｒｃｈｙ）の１部ではなくなるが、指定されたインターフェースを使用して論理的に相互接続されて、各層３０は必要に応じて１個もしくはそれ以上の他の層３０と相互に作用することができる。還元すれば、所定の層３０内のソフトウェア・コンポーネント２０は必要に応じて１個もしくはそれ以上の他の層３０のソフトウェア・コンポーネント２０と相互に作用することができる。
【００１８】
下記の用語は、この発明のプログラム技術分野における当業者にとって下記の意味を有するものと理解され、そのいくつかを更に説明する。
【００１９】
【表１】
2004520635.tif 000003
【００２０】
ここで使用されているように、「取り扱う」という用語は、包括的意味において、受動的に設計する、能動的に設計する、または能動的ならびに受動的に設計することを実行するソフトウェア・アプリケーションを包含するように解釈するように意図されている。また、それが「取り扱う」ソフトウェア・アプリケーションは、ソフトウェア・プログラム技術に属する当業者によって理解されるようなデータ処理、データ取得ならびに管理制御機能を実行するソフトウェア・アプリケーションを包含する。
【００２１】
フレームワーク４０は、ソフトウェア・コンポーネント２０と、層３０に属するようにカテゴリー化されたあらゆるソフトウェア・コンポーネント２０のための標準インターフェースのセットとを含む、その層３０のための基本デザイン構造を指定する。図１〜図２１に示すように、一般的にボックスとして示すフレームワーク４０は、図中に一般的に円として示す１個もしくはそれ以上のパッケージ４２と、インターフェースが図中において一般的に雲の形として示されている１個もしくはそれ以上の代表的なインターフェースと、ソフトウェア・コンポーネント２０ならびに照会可能なプロパティと変数とを収集するための１個もしくはそれ以上の方法と、から構成されている。したがって、パッケージ４２は、たとえば、メッセージもしくは接続するなどの特定の処理を提供するインターフェースのコレクションである。この発明におけるほとんどのフレームワーク４０は２個以上のパッケージ４２から構成されている。
【００２２】
オブジェクト指向ソフトウェア・プログラム技術において、方法とプロパティとはしばしば属性として参照されているが、フレームワーク４０と、パッケージ４２と、インターフェースはオブジェクト指向プログラム構成には限定されるものではない。ここで使用するように、「方法」という用語は処理を示すソフトウェアを意味するものとし、「プロパティ」という用語は他のインターフェースに露出した変数ならびに定数を意味するものとする。
【００２３】
ここで使用するように、「コレクション」または「ソフトウェア・コレクション」は、それが生データやその他のソフトウェア・コンポーネント２０であろうと、データ・アイテムのグループにアクセスできるインターフェースを提供するソフトウェア構成を意味する。オブジェクトのグループにアクセスするための標準を追随するインターフェースは、ここでは「コレクション・インターフェース」として参照される。コレクション・インターフェースは、たとえば、「アイテム（）」方法などの特定の方法によって、コレクション内の単体のアイテムにプログラム的にアクセスすることができる。たとえば、コレクション・インターフェースは、当業者に理解されるように、「クライアント」に、「カウント」プロパティのようなプロパティを経由して、どのくらいアイテムがコレクション中に存在するのかなどの特長を発見させることができる。
【００２４】
本明細書を通して、異なる種類のソフトウェア・コンポーネント２０の参照には下記の命名の慣行を使用するものとする。
【００２５】
【表２】
2004520635.tif 000004
【００２６】
したがって、本明細書中においては、実体（ｅｎｔｉｔｙ；エンティティ）、構成または「ＧＣｘｘｘ」のように名付けられた例は、「ＧＣｘｘｘ」が、ソフトウェア・プログラム技術分野における当業者によって理解されている用語であるクラスとして実行できることを示唆している。実体、構成または「ＩＧＣｘｘｘ」のように名付けられた例は、「ＩＧＣｘｘｘ」が、ソフトウェア・プログラム技術分野において当業者によって理解されている用語であるクラスに対するインターフェースであることを示唆している。実体、構成または「ＧＰｘｘｘ」のように名付けられた例は、「ＧＰｘｘｘ」がパッケージ４２であることを示唆している。この用語と命名慣行は、たとえば、ソフトウェア・コンポーネント２０が、オブジェクト指向プログラム言語以外のような、「クラス」という概念を使用するソフトウェア以外で実行することができるので、例示をするものであって、限定をするものではない。
【００２７】
また、ソフトウェア・コンポーネント２０はプロパティまたは属性を構成していてもよい。ここで使用するように、カッコ「（）」の後尾セット（ｔｒａｉｌｉｎｇ ｓｅｔ）を有する名前で示されているプロパティは、引き合い可能な方法であると理解されるべきであって、カッコ「（）」の後尾セットを有しない名前で示されるプロパティは、変数またはその他のデータ・ポイントであると理解されるべきである。たとえば、プログラム技術分野の当業者は、「ｆｏｏ」と名付けられたオブジェクトまたはソフトウェア・コンポーネント２０が「ｆｏｏ．ａｄｄ（）」によって引き合い可能な方法「ａｄｄ（）」ならびに「ｆｏｏ．ｇｒｅｘ」によってもしくは同様にアクセス可能なプロパティ「ｇｒｅｘ」を有することができると理解する。プログラム技術分野の当業者によっては容易に理解されるように、２個もしくはそれ以上のソフトウェア・コンポーネント２０は同じに名付けられた方法もしくはプロパティを有することができるが、それぞれは独特の識別された方法もしくはプロパティを表している。たとえば、インターフェース「ＩＧＯｎｅ」は、インターフェース「ＩＧＴｗｏ」のようにプロパティ「ｘ」を有することができるが、ＩＧＯｎｅ．ｘはＩＧＴｗｏ．ｘと同一ではない。同様に、ＩＧＯｎｅ．ｆｏｏ（）はＩＧＴｗｏ．ｆｏｏ（）と同一ではない。
【００２８】
これらの記述的構成は、請求の範囲に記載されたような発明に限定されるものではなく、むしろソフトウェアプログラミング技術分野の当業者がこの発明を容易に理解できるように手助けをするものであると理解すべきである。その上、これらの機能ならびに命名慣行や一般的なソフトウェア・コンポーネントならびにＣＯＭオブジェクトなどについてのより詳しい情報は、ここに参考文献として導入されているマイクロソフトプレス編ＭＳＤＮ（Ｍｉｃｒｏｓｏｆｔ Ｄｅｖｅｌｏｐｅｒ’ｓ Ｎｅｔｗｏｒｋ） Ｌｉｂｒａｒｙ （Ｊａｎｕａｒｙ １９９９）に見いだすことができる。
【００２９】
ここで使用するように、一般的に符合「２０」によって参照される「ソフトウェア・コンポーネント」は、ソフトウェア・プログラム技術分野の当業者によって容易に理解される用語であるような、オブジェクト指向プログラムにおいて使用されているようなオブジェクトを包含するものであるが、かかるオブジェクトに限定されるものではないと理解される。代わりに、ソフトウェア・コンポーネント２０は、ランタイム・ライブラリ、ダイナミック・リンク・ライブラリ、プロトコール・ハンドラ、システムサービス、クラス・ライブラリー、サードパーティ・ソフトウェア・コンポーネントならびにライブラリなどまたはそれらの組み合わせを含むあらゆる引き合い可能なソフトウェアを構成していてもよい。
【００３０】
所定のＮ層アプリケーションは、所定の業界の要請ならびに特性を満足させるために、原理、ルールならびにこの発明の方法を用いて設計することができる。ここで使用するように、「アプリケーション」という用語は、たとえば、ソフトウェア・プログラム技術分野の当業者によって理解されている用語のような、ＣＯＲＢＡ、ジャスト−イン−タイム、ＪＡＶＡなどもしくはそれらの組み合わせのような、コンパイルされた、翻訳されたならびに進行中のアプリケーションを包含するものと理解される。また、「ウィザード」またはその他のコード開発ツールもコード開発者が特定のＮ層アーキテクチャの仕様書内でソフトウェア・コンポーネント２０を作成するために使用することができる。たとえば、ウィザードは、コード設計者が、ソフトウェア・コンポーネント２０に対して層３０を選択し、該ソフトウェア・コンポーネント２０がその特定の層３０のソフトウェア・コンポーネント２０に対して指定されたインターフェース標準と合致することを確保することによって、ソフトウェア・コンポーネント２０を作成することができるようにする。
【００３１】
したがって、この発明を使用して規定され実行されるＮ層アプリケーションは、数多くの業界ならびに背景、例えば、造船技術分野、財務分野、医学分野ならびに地質業界分野などにおいて使用するために適合させることができる。
【００３２】
図１〜図２１に一般的に示すように、この発明のＮ層アプリケーションは、アプリケーションを構築することができるルールと方法を指定する方法論を用いて開発された拡張可能なＮ層アーキテクチャを用いて設計される。かかる方法論は、係属中のアメリカ特許出願番号０９／７４６１５５に提案されている。
【００３３】
かかるアプリケーションは、選択されたアーキテクチャに対するルールに従ってビジネス機能のような明確に規定された機能を実行する論理部分つまり階層にシステムレベルで分割された機能性を有している。現在の好ましい態様においては、各層３０は、同様のもしくは補完的な形式の処理を有するソフトウェア・コンポーネント２０を論理的にグループ化する。
【００３４】
下記に記載するように、フレームワーク４０は、ソフトウェア・コンポーネント２０のベースセットと、その層３０に属するようにカテゴリー化されたあらゆるソフトウェア・コンポーネント２０に対する標準インターフェースのセットとを含む、層３０に対する基本的なデザイン方法論を指定する。フレームワーク４０は複数個のパッケージ４２を構成してもよい。
【００３５】
この発明は、所定のルールを使用して、新規のソフトウェア・コンポーネント２０が作成されたりもしくは購入され、できればその後アプリケーションに将来再使用されるためにコンポーネントの目録（もしくはカタログ）７００に追加できる。より多くのソフトウェア・コンポーネント２０が開発されるにつれて、目録７００も大きくなり、それによって新規のアプリケーションを開発するのに必要な時間と資源とを節約することができる。さらに、ソフトウェア・コンポーネント２０は、在庫コンポーネントを含む、そのインターフェースを使用することができる他のあらゆるソフトウェア・コンポーネント２０によって使用できるようになる。たとえば、購入されたコンポーネントなどの在庫コンポーネントは、たとえば、この発明のＮ層アーキテクチャによって要求と、所定のインターフェースをその在庫コンポーネントに付加することによって、この発明のＮ層アプリケーション中に導入することができる。
【００３６】
また、この発明は、所定のルールを使用して、たとえば、新規の層３０を付加して新規のＮ＋１層アプリケーションにすることによって、所定のＮ層アプリケーションを拡張することができる。先行Ｎ層アプリケーションのために開発された多くのソフトウェア・コンポーネント２０は、増加したＮ＋１層アプリケーション中で即座に再使用され、その他のアプリケーションも比較的小さな補正をして再使用することができるようになる。
【００３７】
この発明を使用して規定され実行される各層３０は、その層３０に関連付けたソフトウェア・コンポーネント２０が有していなければならないインターフェースの形式を指定する。したがって、これらのインターフェースは、別の層３０において別のソフトウェア・コンポーネント２０によって層３０の形式のソフトウェア・コンポーネント２０がアクセスすることができるそのＮ層アーキテクチャに対する標準化されたインターフェースである。この発明を使用するソフトウェア・コンポーネント設計者は、ソフトウェア・コンポーネント２０のこれらの形式に対して層３０によって指定されたインターフェースに基づいて、他のソフトウェア・コンポーネント３０にアクセスする知識もしくは能力を持ってソフトウェア・コンポーネント２０を構築するためのルールを使用する。
【００３８】
この発明は、１つの態様において、所定のルールを使用して、層３０の指定された初期数と形式を有するとともに、各層３０に対する指定インターフェース・アーキテクチャを有する特定のＮ層アプリケーションを規定し作成する。ここでは、各初期層３０は、システム機能性の主要部分の１つ、たとえばビジネス論理処理、データ処理などを具備している。
【００３９】
各層３０は、その層３０下でグループ化されたソフトウェア・コンポーネント２０の形式の性質に依存して、インターフェースの独特のセットを有する傾向がある。より共通したインターフェースは、ソフトウェア・コンポーネント２０の従属性がそのソフトウェア・コンポーネント２０によって採集できかつ他のコンポーネントによってアクセスできる特定の共通第１インターフェースと、ソフトウェア・コンポーネント２０が別のコンポーネントによってランタイムに特定できる特定の共通第２インターフェースとを含んでいてもよい。
【００４０】
１つの態様において、この発明のＮ層アプリケーションは、ソフトウェア・コンポーネント２０が非同期メッセージ経由の非同期連結を可能にする非同期アーキテクチャ方法論を利用することができる。他の態様においては、同期または混合同期ならびに非同期メッセージが存在していてもよい。
【００４１】
現在の好ましい態様においては、ソフトウェア・コンポーネント２０のインターフェースは、ウィンドウズ（Ｒ）オペレーティングシステム環境に対するマイクロソフトのＣＯＭ仕様書を使用して実行することができる。たとえば、Ｄｏｎ Ｂｏｘ編「ＥＳＳＥＮＴＩＡＬ ＣＯＭ」、ＡＤＤＩＳＯＮ ＷＥＳＬＥＹ ＬＯＮＧＭＡＮ， ＩＮＣ．社（ＩＳＢＮ番号０−２０１−６３４４６−５）を参照のこと。ソフトウェア・コンポーネント２０の外部インターフェースだけが外部から見ることができる。共通インタラクション標準、たとえばＡｃｔｉｖｅＸなどは、ソフトウェア・コンポーネント２０間の連結を促進し、ソフトウェア・コンポーネント２０間の接続ソフトウェアの必要性を減少するために使用することができる。次いで、ソフトウェア・コンポーネント２０によって提供されるサービスは、ネットワーク化されて、１個もしくはそれ以上の所望の処理を支援することができる。これらのサービスは他のソフトウェア・コンポーネント２０によって再使用されたり、共有されたりできる。しかしながら、ソフトウェアプログラム技術分野における当業者にとっては明らかなように、ソフトウェア・コンポーネント２０は、たとえば、ＬＩＮＵＸ、ＳＵＮ（Ｒ）、ＳＯＬＡＲＩＳ（Ｒ）、Ｕｎｉｘなどやそれらの組み合わせによって要求されるものを含む数多くの他の環境方法論を使用して構築することができる。
【００４２】
現在企画されているように、真の層３０ではないいくつかの層３０が存在できる。つまり、それらの層３０は、ソフトウェア・コンポーネント２０に対して追加の処理を提供するためには存在していない。図１に総合的に層６００として示すような、たとえば、ウィザード、テスティングまたはテンプレート階層などのこれらの層３０は、追加の補助的機能性を提供するように存在することができる。例示するだけで限定するものではないか、ウィザード層３０は、開発者がこの発明の標準コンポーネントを迅速に作成する手助けとなる対話型ヘルプ・ユーティリティのセットを提供するように存在することができる。テスティング層３０は、機能的層３０からソフトウェア・コンポーネント２０もしくはパッケージ４２を実行し、ログ（ｌｏｇ）内での試験結果を記録し、開発者に試験完了状況を通知するソフトウェア・コンポーネント２０を含むように存在することができる。テンプレート層３０内のソフトウェア・コンポーネント２０は、この発明の標準ソフトェア・コンポーネントに対する持続性、コレクションならびに反復（アイテレータ）のＣ＋＋実行、を提供することができる。
【００４３】
図２はソフトウェア工場の模式図を示す。図中、ソフトウェア・コンポーネント２０は、当業者にとって慣用されていることであるが、それが購入されたものであっても作成されたものであっても、ライブラリもしくはカタログ処理を用いて将来の使用のために目録７００中に配置することができる。ソフトウェア・コンポーネント２０のインターフェースは、インターフェース２０の機能性を、それらが表すソフトウェア・コンポーネント２０にとってユニークな特長と処理に限定して標準化される。この発明の方法論は、まるでそれがソフトウェア・アプリケーション工場内であるかのように、ソフトウェア・アプリケーション組み立てラインである。符号１１に示すように、アプリケーション必要要件は最初に決定され、次いで、符号１２で、既存の目録７００が、その新規のアプリケーション必要要件に適合するソフトウェア・コンポーネント２０が存在するかどうかについて検討される。ストック・ソフトウェア・コンポーネント２０として存在しないシステム必要要件は、符号１３で作成されるかまたは購入されて、できれば目録７００に追加される。次に、符号１４において、新規なアプリケーションが既存のストックソフトウェア・コンポーネント２０ならびに／もしくは新規なソフトウェア・コンポーネント２０から作成される。アプリケーションは、ランタイムにソフトウェア・コンポーネント２０を組み合わせて作成して、進行中に新規でユニークなアプリケーションが作成され、ソフトウェアは再使用して実用に供することもできる。
【００４４】
図５はライフ・サイクル・フローチャートを示す。図中、この発明の方法論は、アプリケーション開発が、ライフ・サイクル・ルールのセットを用いて、この発明のアーキテクチャに変化をもたらすことができる。たとえば、そのソフトウェア・アーキテクチャを規定するルールは、新規に設計されるか、既定セットのルールから選択するかのいずれかによって作成することができる。つまり、この発明の方法を使用して設計されたソフトウェア・アーキテクチャは、初期デザイン５０に対してソフトウェア・コンポーネント・ルール２１０と、層ルール３１０と、アセンブリ・ルール４１０とを使用することによって、ソフトウェア・コンポーネント２０と、層３０と、アプリケーションとを作成する。初期デザインは、所定数の初期層３０を有していてもよい。
【００４５】
ステップ５２で、実行されたシステムは製造に付され、ステップ５４で必要に応じて調整のために定期的に検討される。ステップ５６で、層３０のいずれかが調整を必要とすると決定された場合には、ステップ５８で除去されるかまたは修正される。ステップ６０で追加の必要要件が必要な場合には、ステップ６２と６４で、新規のソフトウェア・コンポーネント２０が作成されるか、または既存のソフトウェア・コンポーネント２０が修正される。次いで、ステップ６６で、アプリケーション必要要件が指示されると、層３０が追加、修正または削除されたりする。
【００４６】
図６に示すように、ステップ７０で、一旦要求デザイン３１とソフトウェア・コンポーネント２０のリストが決定されると、ソフトウェア・コンポーネント２０は論理的にグループ化される（ステップ７２）。次いで、ステップ７４、７６で、要求されたソフトウェア・コンポーネント２０のいずれもが目録７００中に存在するかどうかを決定する。ステップ７８で、可能なときはいつでも、ソフトウェア・コンポーネント２０が目録７００から再利用される。現在のアーキテクチャに適合していないソフトウェア・コンポーネント２０は、必要要件の元来の意図は保持しながら、整合性を確保することができるように再構築される。
【００４７】
追加のソフトウェア・コンポーネント２０は、ステップ８０で、仕様書ならびに現在の目録７００を検討した後に必要に応じて作成または購入される。
【００４８】
この発明の所定のルールおよび設計方法を使用して、ソフトウェア・コンポーネント２０は、所定の機能性に対して、必要に応じて設計され実行される。たとえば、各ビジネス・ソフトウェア・コンポーネント２０がウエル（油井）、地下の地質学的特長（たとえば断層）、ログ用トラックやツールなどの実社会のオブジェクトや処理の情報や、稼働中の仕事の情報などを含むビジネス・ソフトウェア・コンポーネント２０は、規定され実行される。ビジュアルソフトウェア・コンポーネント２０は、プレゼンテーションの情報を要約するために規定され実行される。また、たとえば、データ・ソフトウェア・コンポーネント２０は、ビジネス・ソフトウェア・コンポーネント２０の状態を保守しかつビジネス・ソフトウェア・コンポーネント２０中のデータがアクセスされ使用できるソフトウェア・コンポーネント２０として規定され実行される。
【００４９】
新規もしくは修正ソフトウェア・コンポーネント２０がテストまたは有効化フェーズを通過した後に、新規もしくは修正ソフトウェア・コンポーネント２０は、ステップ８２で、適合性を評価されて、目録７００の１部となる。再利用できるこれらのソフトウェア・コンポーネント２０は目録７００に追加される（ステップ８８）。したがって、これらの新規もしくは修正ソフトウェア・コンポーネント２０は、現在のアーキテクチャに統合されて、現在のアーキテクチャを拡大する、つまり、ステップ８６で、それらを収容するために１個もしくはそれ以上の層３０を追加する。標準コンポーネントを厳密に実行することによる規定によって、１つの層３０からのソフトウェア・コンポーネント２０は、他の層３０からのいずれのソフトウェア・コンポーネント２０によっても使用でき、層３０との関係がほとんど重要でなくなってくる。しかしながら、実際には、あるソフトウェア・コンポーネント２０はある他のソフトウェア・コンポーネント２０によって優先的に使用されている。
【００５０】
図１に示すように、この発明の各層３０は、ここに記載され請求されているようにインターフェース機構を使用して１個もしくはそれ以上の他の層３０とインターフェースしてもよい。例えば、この発明の１つの態様においては、この発明の設計方法論は、ベース（Ｂａｓｅ）層１０００からなる層３０の所定の初期数を指定する。次いで、ベース層１０００のソフトウェア・コンポーネント２０は、ソフトウェア・コンポーネント２０と、他の層３０、例えばメッセージング（Ｍｅｓｓａｇｉｎｇ）層２０００、ビジネス・オブジェクト（Ｂｕｓｉｎｅｓｓ Ｏｂｊｅｃｔ）層３０００、リアルタイム・デバイス（Ｒｅａｌ−Ｔｉｍｅ Ｄｅｖｉｃｅ）層４０００、データ（Ｄａｔａ）層５０００、プロセッシング（Ｐｒｏｃｅｓｓｉｎｇ）層６０００、ビジュアル（Ｖｉｓｕａｌ）層７０００、テンプレート（Ｔｅｍｐｌａｔｅ）層８０００、ビジネス・ルール（Ｂｕｓｉｎｅｓｓ Ｒｕｌｅｓ）層９０００、ウィザード（Ｗｉｚａｒｄｓ）層１００００、テスティング（Ｔｅｓｔｉｎｇ）層１１０００、インターセプタ（Ｉｎｔｅｒｃｅｐｔｏｒ）層１２０００、アプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）層１３０００などを作成するのに使用することができる。例えば、プロッティング（Ｐｌｏｔｔｉｎｇ）層３０のような他の層３０もまた作成することができる。
【００５１】
図７に示すように、ベース層１０００は、アプリケーションを実行するための初期の基本機構を提供するために存在していてもよい。好ましい態様においては、ベース層１０００のソフトウェア・コンポーネント２０は、他のソフトウェア・コンポーネント２０と他の層３０に対する加工可能な初期の構築用のブロックを形成する。
【００５２】
ベース層１０００は、ソフトウェア・コンポーネント２０を収集するための方法を提供するＧＰＣｏｌｌｅｃｔｉｏｎ １１００と；通常は他のソフトウェア・コンポーネント２０中に集合している数個のソフトウェア・コンポーネントを含んでいるＧＰＢａｓｅ １２００と；情報のソースもしくはシンク（ｓｉｎｋｓ）が下記のような意味を有するところの情報ソースもしくはシンクとしてソフトウェア・コンポーネント２０を接続するための方法を提供するＧＰＣｏｎｎｅｃｔｉｏｎ １３００と；メッセージに基づく非同期処理を提供するＧＰＥｖｅｎｔＨａｎｄｌｅｒ １４００と；デバイスを制御する方法を提供するＧＰＤｅｖｉｃｅ １５００と；から構成されている。
【００５３】
ＧＰＣｏｌｌｅｃｔｉｏｎ １１００は、データ・アイテムのグループ、例えばオイルウェル・データ・カーブのセットへのアクセスを可能にする。１つの好ましい態様においては、ＧＰＣｏｌｌｅｃｔｉｏｎ １１００は、データセットへのアクセスならびにデータセットのメンテナンスを可能にするとともに、コレクション中のソフトウェア・コンポーネント２０を介して反復の数を決定しかつ反復を可能にすることを含む、ＣＯＭコレクション・インターフェースの実行を行なう方法を構成している。ＧＰＢａｓｅ １２００は、他のほとんどのソフトウェア・コンポーネント２０によって使用され、例えば、ソフトウェア・コンポーネント２０に特徴的な所定のカテゴリーの割り付けならびに時間と日付を取得もしくは設定するところの、ソフトウェア・コンポーネント２０を支援する。カテゴリーに特徴的なプロパティは、ソフトウェア・コンポーネント２０についての記述的情報の取得もしくは設定を可能にする。この情報には、ソフトウェア・コンポーネント２０の登録数（ＣＬＳＩＤ）とソフトウェア・コンポーネント２０の「タイプ特徴」とが含まれていて、そのタイプ特徴は異なるソフトウェア・コンポーネント２０に対しては異なっていてもよく、また、タイプ特徴は前もって指定されていても、プログラム的に規定されていてもよい。例えば、「ビジネス」ソフトウェア・コンポーネント２０は「カーブ」もしくは「ウェル」のタイプを有しているかもしれないし、「データ」ソフトウェア・コンポーネント２０は「カーブ（ｃｕｒｖｅ）」もしくは「パラメータ」のタイプを有しているかもしれない。
【００５４】
ＧＰＣｏｎｎｅｃｔｉｏｎ １３００は、１個もしくはそれ以上のインターフェースから構成されていて、イベントもしくは情報を別のソフトウェア・コンポーネント２０に送信したり、それから受信したりすることができる。好ましい態様においては、設計者は、コネクション・ソース・インターフェースを、例えばメッセージなどのイベントもしくは情報を別のソフトウェア・コンポーネント２０に送信する必要があるまたはシンク・インターフェースを支援する必要があるあらゆるソフトウェア・コンポーネント２０に集合させなければならない。
【００５５】
ＧＰＥｖｅｎｔＨａｎｄｌｅｒ １４００は、フレームワーク４０と、該フレームワーク４０の上部に構築されたアプリケーションとの間の以前に登録されたコールバックを実行する。ＧＰＥｖｅｎｔＨａｎｄｌｅｒ１４００は、同期もしくは非同期イベントを取り扱うことができるイベント取扱サービスと、連絡路の前もって設定した数を取り扱い維持するための連絡路プール・サービスとを含む、イベント処理を支援するインターフェースと；イベント上と、コールバックがどのメッセージタイプを取り扱うかを登録しているトラックに、コールバック処理を提供する方法と；から構成されている。
【００５６】
ＧＰＤｅｖｉｃｅ １５００は、ハードウェア・デバイスとの接続を可能にする。ＧＰＤｅｖｉｃｅ １５００は、ハードウェア・デバイスへの接続とハードウェア・デバイスからの接続を提供するインターフェースと、イベント・ハンドラがデバイスに情報もしくはイベントを送信させるインターフェースとから構成されている。
【００５７】
図９に示すように、好ましい態様では、ビジネス・オブジェクト層３０００は、ビジネス・ソフトウェア・コンポーネント２０を作成するために使用されるベース・インターフェースを指定する。この好ましい態様では、ビジネス・ソフトウェア・コンポーネント２０は、共通のビジネス実体の属性ならびに方法、例えばウェル、ログ、センサーまたは地層などを包含する属性情報の保存ならびにかかる情報へのアクセスとを提供する。
【００５８】
したがって、ビジネス・ソフトウェア・コンポーネント２０は、実社会のビジネス・データ、例えばウェル、ログ、ガンマ線測定、抵抗率測定、ジョブ（仕事）、ラン（運転）、パス、センサー、ＳＴＡＲツール、割れ目、断層、地層、層理表面、ボーリング穴などを表すことができる。ビジネス・ソフトウェア・コンポーネント２０はかかるデータをアクセスするのに使用される多くの属性と方法とを含んでいるが、補足的な処理はほとんど含まれていない。
【００５９】
好ましい態様においては、ビジネス・ソフトウェア・コンポーネント２０のすべての可能な関連付けを設計し、静的なビジネス・ソフトウェア・コンポーネント・モデル３１を作成することを試みるよりも、ビジネス・ソフトウェア・コンポーネント２０は、他のビジネス・ソフトウェア・コンポーネント２０を収集するために使用される一般化されたコレクション・インターフェースを有している。他のビジネス・ソフトウェア・コンポーネント２０によって収集することができる（もしくは関連付けることができる）ビジネス・ソフトウェア・コンポーネント２０の有効な形式は、ビジネス・ルール層９０００中にビジネス・ソフトウェア・コンポーネント２０に対する外部特徴として規定される。このことは、ビジネス・ソフトウェア・コンポーネント２０をそれらの関係を定めるルールとは分離して維持することを可能にする。このことはまたビジネス・ソフトウェア・コンポーネント２０を変更することなしに関係を変更させることができる。
【００６０】
ビジネス・ソフトウェア・コンポーネント２０を有意に関連付けることによって、ソフトウェア・コンポーネント２０は実社会の要請を設計する。ビジネス・ソフトウェア・コンポーネント２０を「ブラックボックス」データ・コンテナーとして使用することによって、ソフトウェア・コンポーネント２０は追加の処理を実行して、モデル３１をビジュアル的に具現化、解析または補正することができる。
【００６１】
図１０はコンポジションソフトウェア・コンポーネントを示している。図中においては、あるビジネス・ソフトウェア・コンポーネント２０が、他のビジネス・ソフトウェア・コンポーネント２０である属性を有するビジネス・ソフトウェア・コンポーネント２０と「コンポジション」を形成していてもよい。コンポジションの場合には、複合ビジネス・ソフトウェア・コンポーネント２０は、静的な関係、つまり、ビジネス・ソフトウェア・コンポーネント２０と属性ソフトウェア・コンポーネント２０との関係は、ビジネス・ルールによって強制される関係ではない。コンポジションは、ソフトウェア・コンポーネント２０の間の関係が「全体対個別」である場合に使用することができる。例えば、オイルウェルの例においては、複合ビジネス・ソフトウェア・コンポーネント２０のＧＣＢｅｄ ３０１０は、ＧＣＢｅｄＳｕｒｆａｃｅ ３０１１と、ＧＣＢｅｄＳｕｒｆａｃｅ ３０１２とから構成されている。これらのサーフェイス・ソフトウェア・コンポーネント２０は、それらがなければＧＣＢｅｄ ３０１０が正確には指定することができないので、ＧＣＢｅｄ ３０１０の重要部分である。したがって、ＧＣＢｅｄ ３０１０は、それら自体はビジネス・ソフトウェア・コンポーネント２０である２つの属性、ＧＣＢｅｄｄｉｎｇＳｕｒｆａｃｅから更に構成される複合ビジネス・ソフトウェア・コンポーネント２０である。次いで、方法は、ビジネス・ソフトウェア・コンポーネント２０上に提供されて、該複合ビジネス・ソフトウェア・コンポーネント２０にアクセスされる。
【００６２】
複合ビジネス・ソフトウェア・コンポーネント２０は、新規のビジネス・ソフトウェア・コンポーネント２０が作成されるときには作成されない。したがって、システム設計者は、各複合ビジネス・ソフトウェア・コンポーネント２０を構成し、それらを複合ソフトウェア・コンポーネント２０中に設定するあらゆるビジネス・ソフトウェア・コンポーネント２０を作成する責任がある。好ましい態様においては、ビジネス・ソフトウェア・コンポーネント２０が持続ストアから読み出されたときに、複合ビジネス・ソフトウェア・コンポーネント２０も自動的に読み出されるようになっている。
【００６３】
図９に示すように、ビジネス・オブジェクト層３０００のソフトウェア・コンポーネントは容易に拡張することが可能である。ビジネス・ソフトウェア・コンポーネント２０は従属性を有しないように設計されているＣＯＭコンポーネントであるので、新規の属性ならびに処理は、既存のコードにほとんどもしくはまったく補正を加えていない１つのビジネス・ソフトウェア・コンポーネント２０もしくはすべてのビジネス・ソフトウェア・コンポーネント２０に容易に追加することができる。
【００６４】
好ましい態様においては、ビジネス・オブジェクト層３０００は、関連ビジネス・ソフトウェア・コンポーネント２０のグループをモデルと呼ばれる実社会のビジネス実体中に収集することができるＧＰＭｏｄｅｌ ３１００と、ビジネス・ソフトウェア・コンポーネント２０中に大量の２進データを保存することができるＧＰＢＬＯＢ ３２００とから構成されている。
【００６５】
ＧＰＭｏｄｅｌ ３１００は、ビジネス・ソフトウェア・コンポーネント２０が集合して特定の機能性を達成するインターフェースのセットから構成されている。
【００６６】
ＧＰＢＬＯＢ ３２００は、ビジネス・ソフトウェア・コンポーネント２０中に保存された大量の２進データについての情報を供給するインターフェースを提供する。これらのインターフェースは任意であり、ビジネス・ソフトウェア・コンポーネント２０の事例数が非常に多い場合にだけ使用される。例えば、ログ用測定のグループは、ウェル・ログの部分を記載するＧＰＢＬＯＢ ３２００中に収集することができる。プログラム技術分野の当業者には容易に理解されるように、「ＢＬＯＢ」は２進法の大規模なオブジェクトの頭文字です。
【００６７】
図１１に示すように、リアルタイム・デバイス層４０００は、例えば、トラック上の下行穴をログするツールからコンピュータまでのリアルタイム・デバイスに対する連結とイベント取り扱いとを支援する。リアルタイム・デバイス層４０００は、ユーザーがリアルタイム・デバイスを別のリアルタイム・デバイスで登録できるための方法を提供するインターフェースを含む、デバイスが他の接続されたソフトウェア・コンポーネント２０と連結できるようにする標準連絡・イベント取扱用インターフェースから構成されている。
【００６８】
図１２に示すように、データ層５０００は、ビジネス・ソフトウェア・コンポーネント２０のためのデータ持続（ｐｅｒｓｉｓｔｅｎｃｅ）サービスを提供する。データ層５０００はまたデータへのアクセスを提供する。データ層５０００は、データをデータソースに書き込み、データソースから読み出させるＧＰＰｅｒｓｉｓｔ ５１００と、特定の形式のデータへのアクセスを提供するＧＰＤａｔａＡｃｃｅｓｓ ５２００とから構成されている。
【００６９】
好ましい態様においては、ＧＰＤａｔａＡｃｃｅｓｓ ５２００は、特定のデータフォーマットに対してビジネス・ソフトウェア・コンポーネント２０の持続性を提供するＧＰＤａｔａＦｏｒｍａｔ ５２１００と；入手可能な登録データフォーマットのリストを保有するソフトウェア・コンポーネント２０を構築するために使用されるＧＰＤａｔａＳｅｒｖｉｃｅ ５２２００と；ソフトウェア・コンポーネント２０がデータサービスから読み出してくる情報の必要要件を確定するＧＰＷｉｎｄｏｗｅｄＩＯ ５２３００と；低レベル・ハードウェア。デバイス（例えば、ディスクやテープ）の入力／出力（「Ｉ／Ｏ」）アクセスのために使用されるＧＰＤａｔａＩＯ ５２４００と；１つの測定システムから別の測定システムへのデータ変換のために使用されるＧＰＵｎｉｔｓＣｏｎｖｅｒｔｅｒ（） ５２５００と；データファイルから読み出された情報に対するデータ実体（ｅｎｔｉｔｙ）ならびに命名慣習を提供するＧＰＤａｔａＤｉｃｔｉｏｎａｒｙ ５２６００と；から構成されている。ＧＰＤａｔａＦｏｒｍａｔ ５２００によって例示されるように、この発明のアーキテクチャの特長は、ＧＰＤａｔａＡｃｃｅｓｓ ５２００のようなパッケージが、ＧＰＤａｔａＦｏｒｍａｔ ５２１１０のような他のパッケージを構成することができることは重要であって特記すべきである。
【００７０】
好ましい態様においては、ＧＰＷｉｎｄｏｗｅｄＩＯ ５２３００は、ソフトウェア・コンポーネント２０がデータサービスから読み出してくる情報に対する必要要件を指定する。ＧＰＷｉｎｄｏｗｅｄＩＯ ５２３００は、ソフトウェア・コンポーネント２０がデータサービスから読み出してくる情報に対する必要要件を指定するＩＧＣＷｉｎｄｏｗｅｄＩＯ ５２３１０から構成されている。現在の好ましい態様においては、ＩＧＣＷｉｎｄｏｗｅｄＩＯ ５２３１０は、主セットの現在の作業レベルのデータから、存在していれば、このＷｉｎｄｏｗｅｄＩ／Ｏの間隔をオフセットするＯｆｆｓｅｔＦｒｏｍＣｕｒｒｅｎｔ ５２３１１と；その現在の作業レベルからその間隔のトップをレベルでオフセットする ＴｏｐＯｆｆｓｅｔ ５２３１２と；その現在の作業レベルからその間隔のボトムをレベルでオフセットする ＢｏｔｔｏｍＯｆｆｓｅｔ ５２３１３と；所定の間隔に戻すためのレベルの間隔を開ける（スペーシング）ための ｉｎｃｒｅｍｅｎｔ ５２３１４と；データセットのレベルスペーシングが合致していないときに実行するアクションを記載している ＲｅｓａｍｐｌｅＴｙｐｅ ５２３１５と；例えば、カーブ間隔がデータの開始／終了を超えてまたはＮＵＬＬ値を超えて繰り返されるときなどに、現在の作業レベル以上のデータに発生する事態を示す ＴｏｐＢｏｕｎｄＴｙｐｅ ５２３１６と；例えば、カーブ間隔がデータの開始／終了を超えてまたはＮＵＬＬ値を超えて繰り返されるときなどに、現在の作業レベル以下のデータに発生する事態を示す ＴｏｐＢｏｕｎｄＴｙｐｅ ５２３１７と；返還されたデータタイプを示す ＤａｔａＴｙｐｅ ５２３１８と；ランダムアクセスであっても、連続アクセスであってもいずれかのアクセスを示す ＡｃｃｅｓｓＴｙｐｅ ５２３１９と；から構成されている。
【００７１】
好ましい態様において、ＧＰＤａｔａＩＯ ５２４００は、低レベル。ハードウェア・デバイス（例えば、ディスクやテープ）の入力／出力 （Ｉ／Ｏ） アクセスのためのインターフェースを指定し、ＧＰＵｎｉｔｓＣｏｎｖｅｒｔｅｒ ５２５００は、１つの測定システムから別の測定システムへのデータ変換のためのインターフェースから構成され、ＧＰＤａｔａＤｉｃｔｉｏｎａｒｙ ５２６００は、データファイルから読み出された情報に対するデータ実体ならびに命名慣行を提供するコンポーネントに対するインターフェースから構成されている。
【００７２】
図１３に示すように、プロセッシング層６０００に関連付けたソフトウェア・コンポーネント２０は、インターフェースをプロセッシング層６０００によって指定される必要があるが、ビジネス・ソフトウェア・コンポーネント２０のインターフェースを介してビジネス・ソフトウェア・コンポーネント２０をアクセスできる必要もある。プロセッシング層６０００は、アルゴリズムの処理を含む処理フロー（または処理モデル）の例示化ならびに制御を提供する。アルゴリズムの処理は、要求されたインターフェースを備えたＧＰＰｒｏｃｅｓｓｉｎｇＯｂｊｅｃｔ ６２００によって規定されたパターンに従う。
【００７３】
図１４に示すように、ビジュアル層７０００は、情報の表示と、情報を備えたユーザーの相互作用とを提供する。好ましい態様においては、ビジュアル層７０００のアーキテクチャはモデル−ビュー・コントローラー設計パターンに基づいている。ビジュアル層７０００のビジュアル・ソフトウェア・コンポーネント２０は、ビジュアル・モデル（ＩＧＣＶｉｅｗＭｏｄｅｌ ７２１０によって特定される）７００１と、ビュー（一般的にはＩＧＣＶｉｅｗ ７１１０とＩＧＣＢａｓｅＶｉｅｗ ７１２０を露出する完全ＡｃｔｉｖｅＸ制御である）７００２と、コントローラー（ＩＧＣＶｉｅｗＣｏｎｔｒｏｌｌｅｒ ７３１０によって特定される）７００３とから構成されている。ビジュアル・モデル７００１と、ビュー７００２と、コントローラー７００３とは、例えばＧＰＣｏｎｎｅｃｔｉｏｎ １３００、ＧＰＭｅｓｓａｇｅ ２１００、ＧＰＥｖｅｎｔＨａｎｄｌｅｒ １４００などからのメッセージを使用して接続され、それぞれには１個もしくはそれ以上のメッセージ・ハンドラが付設されて追加の処理を提供する。その上、ビジュアル・ソフトウェア・コンポーネント２０は接続シンクを有している。
【００７４】
図１５に示すように、モデル・ビュー・コントローラー（ＭＶＣ）設計パターンは、ビジュアル・モデル７００１と、ビュー７００２と、コントローラー７００３との３個の論理サブコンポーネントから構成されている。ビジュアル・モデル７００１はデータと計算上の論理を含んでいる。ビュー７００２はビジュアル・モデル７００１もしくはその一部をユーザーに提示する。コントローラー７００３は、例えばキーストロークやポインター装置によって作成された入力などのユーザーとの対話を取り扱う。基本ＭＶＣ設計パターンは、ビジュアル層７０００のソフトウェア・コンポーネント２０、例えばログ・ビューワーまたはエディターなどに対して使用される。一般的には、ビュー７００２は、ビジュアル・モデル７００１に関連付けられなければならないので、ビジュアル・モデル７００１はビュー７００２に対して更新する必要があることを通知する。ビジュアル・モデル７００１は、ビュー７００２に対するある種の登録機構を有してなければならず、それによって更新の通知を要請し、ビュー７００２はビジュアル・モデル７００１に対する更新機構を有してなければならない。
【００７５】
また、ビュー７００２はコントローラー７００３に関連付けられる。ユーザー・インタラクションは、始めにビュー７００２によって取得され、翻訳のためにコントローラー７００３に移送される。次いで、コントローラー７００３は、必要ならば、ビジュアル・モデル７００１に対してインタラクションの結果として取るべき行動を通知する。
【００７６】
図１７に示すように、ビジネス・ルール層９０００は、あるビジネス・ソフトウェア・コンポーネント２０が別のビジネス・ソフトウェア・コンポーネント２０がその関連付けに付加されるために有効であるかどうかを決定する条件ならびにテストであるところのビジネス・ルールの使用を促進するために使用される。例えば、ビジネス・ルールは、オイルフィールドは多くのウェルをそのフィールドに関連付けなければならないけれども、ウェルはオイルフィールドに関連付けられるだけでよいことを指示することができる。また、ビジネス・ルールは濃度（Ｃａｒｄｉｎａｌｉｔｙ）を強制するために使用される。
【００７７】
簡略化ビジネスモデルを示す図２２では、この発明は、例えば、石油会社の発掘ならびに生産資産のビジネスモデル３１などの石油会社のビジネスモデル３１を作成するためのソフトウェア・コンポーネント２０からなる層３０を使用する。
【００７８】
ビジネスモデル３１の目録７００は、会社によって所有されているオイルフィールド２０１内の要素に対する１個もしくはそれ以上の前もって規定されたソフトウェア・コンポーネント２０（フィールド・コンポーネント２１）と、各オイルフィールド２０１に関連付けたオイルウェル２０２に対する１個もしくはそれ以上の前もって規定されたソフトウェア・コンポーネント２０（ウェル・コンポーネント２２）と、各オイルウェル２０２に関連付けたウェル・データ・データ２０３（図示せず）に対する１個もしくはそれ以上の前もって規定されたソフトウェア・コンポーネント２０（ログ・コンポーネント２３）と、から構成されている。ソフトウェア技術分野における当業者には理解されるように、フィールド・コンポーネント２１と、ウェル・コンポーネント２２と、ログ・コンポーネント２３とは、既存のコンポーネントであっても、モデル３１に対して作成された新規のコンポーネントであっても、ベースソフトウェア・コンポーネント２０のセットから作成されたもしくは構成された新規のコンポーネントであってもよい。
【００７９】
ビジネスモデル３１は、例えば、ソフトウェア・コンポーネント２０を追加することによって、または、例えば、各ウェル・データ２０３に関連付けたカーブ・データなどのデータや、各データ・データ２０３を生成した運用（ラン）に関連する情報、例えば、使用したサービス会社や運用の日時などを追加することによって、容易に拡張することができる。このようにして、ソフトウェア・アプリケーションは作成されて、石油会社の開発要請、開発会社の生産資産またはそれらの組み合わせを設計するために有用なソフトウェアの追加もしくは使用を含むオイルフィールドモデルに適合することができる。
【００８０】
各ソフトウェア・コンポーネント２０、例えばフィールド・コンポーネント２１や、ウェル・コンポーネント２２や、ログ・コンポーネント２３などは、この発明ならびにその関連アプリケーションによって指定されるようなインターフェースによって包まれる。例えば、図２３に示されるように、ソフトウェア・コンポーネント２０を・・コンポーネント２２として特有に特徴づけるプロパティに関しては、このシステム内の他のソフトウェア・コンポーネント２０はいずれもプロパティの同じセットを有していない。
【００８１】
その上、ウェル・ソフトウェア・コンポーネント２２は、名前と、例えば地面との関係との両方によって独特に特定することができるプロパティを有している。好ましい態様においては、名前、経度ならびに緯度のプロパティはオイルウェル２０１に割り付けたキャラクター・ストリングか、数かのいずれかであるのに対して、標高は特定のウェル・ソフトウェア・コンポーネント２２のインターフェースに割り付けた値によって規定される。
【００８２】
図２４に示すように、ビジュアル層３０を使用する好ましい態様においては、そのディスプレーが図２４に例示されているアプリケーションは、ビジネスモデル・ビュワーである。ユーザー、例えばキーボードのところに着席しているユーザーからの照会を受け取ると、ビュー７００２は適当なデータ貯蔵庫、例えばＳＱＬデータベースならびに／もしくはＤＬＩＳテープを探索し、照会の結果をユーザーのスクリーン１５に閲覧のために返還する。
【００８３】
好ましい態様において、ビジュアル層３０では、ユーザーは、図２４に示すように、あらゆるビジネスモデル３１の詳細を見ることができる。この例では、モデル３１に対するアクセスは、モデル・ビュコントローラー方法論を使用しているビジュアル層３０のコントローラー７００３によって制限される。コントローラー７００３経由のアクセスは、構築可能であって、つまり、コントローラー７００３は読み出し専用にしたりまたはプログラムによる制御に基づくその他のあらゆる許可を必要にしたりすることができる。例えば、別の態様においては、コントローラー７００３は、ユーザーがビジネスモデル３１を編集したり、閲覧することを可能にする。この形式の機能性は、様々な要請や、リソースレベルもしくはセキュリティーレベルを有する顧客に対して同一のアプリケーションを搬送することを可能にする。例えば、モデル・ビュワーだけを必要とする顧客は、読み出し専用モードのコントローラー７００３を有するアプリケーションを購入するのに対して、モデル３１を編集するとともにそれらを閲覧したい顧客は、閲覧と編集の両方を実行することができるコントローラー７００３を有するアプリケーションを購入することになる。更に、顧客は、両方のコントローラー７００３を有するアプリケーションを購入することさえでき、あるユーザーは読み出し専用コントローラー７００３にアクセスすることができるのに対し、他のユーザーは閲覧と編集のコントローラー７００３にアクセスすることができることになる。
【００８４】
好ましい態様を操作するに際して、図２４に示すように、オイルフィールド２０１に対するアプリケーションについての必要要件は、最初に、この発明ならびに係属中のアメリカ特許出願第０９／７４６１５７号のＮ層アプリケーションに従って決定される。ソフトウェア・コンポーネント２０は、取得、作成ならびに／もしくは購入されてオイルフィールド２０１に対する必要要件を充足するために要求される機能性を実行する。次いで、これらのソフトウェア・コンポーネント２０は層３０に関連付けされて、アプリケーションが作成されてオイルフィールド２０１に対する必要要件を満足するために要求される機能性を実行する。
【００８５】
一旦実行されると、ユーザーは、必要に応じて、アプリケーションと対話することができる。
【００８６】
例えば、現在の好ましい態様においては、ビジネスモデル３１は、ユーザーがアクセスするスクリーン１５によって、スクリーン１５のディスプレーがビジュアル層３０のソフトウェア・コンポーネント２０によって取り扱われている１つのウェル表示２０２ａを示す、オイルフィールド２０１の１個もしくはそれ以上の表示２０１ａのディスプレーを開始する。ユーザーは、操作を依頼し、キーボード、ライトペン、タッチパッド、タッチスクリーン、マウス、ボイスコントロール、ジョイスティック、トラックボールまたはその他の類似手段またはこれらの組み合わせなどの慣用されている入力装置を経由してシステムと対話することができる。スクリーン１５は、例えば、アイコン形式、図形式、テキスト形式などまたはそれらの組み合わせなどの所定の形式の表示をディスプレーすることができる。ディスプレーと対話の方法ならびに手法は、ビジュアル・モデル７００１、ビュー７００２ならびにコントローラー７００３のソフトウェア・コンポーネント２０によって取り扱われる。
【００８７】
フィールドビュー７００２のソフトウェア・コンポーネント２０によって提示される主メニュー１６から、ユーザーは、プログラム技術分野における当業者にとっては明らかなように、数個のオプションを有することができる。かかる当業者にとっては明らかであるが、主メニュー１６は多くのフォームを採用することができる。ユーザーは、当業者にとって明らかなように、数多くの技法の一つ、例えば、ドロップダウンメニュー、キーボード・ショートカット、アイコン、スクリーン領域、マクロ、メニュー選択、マウス選択、タッチパネル・スクリーン選択などもしくはそれらの組み合わせを使用して、オプションを選択して、フィールドを閲覧することができる。例えば、ユーザーは、主メニュー１６から「ファイル」を選択して、次いでサブメニューから「オープン・フィールド」を選択して、ユーザーが閲覧ならびに／もしくは編集したいと思っているフィールドをディスプレーすることができる。同様に、ユーザーは、オプションを選択して、すべての閲覧可能フィールドもしくはそのサブセットを可視可能にすることができる。これらはすべてコントローラー７００３、ビュー７００２ならびにビジュアル・モデル７００１の制御下で行われる。
【００８８】
図２５に示すように、当業者にとっては明らかなように、オイルフィールド２０１を更に取り扱うために数多くの技法、例えば、ドロップダウンメニュー、キーボード・ショートカット、マクロ、メニュー選択、マウス選択、タッチパネル・スクリーン選択などもしくはそれらの組み合わせなどが存在する。例えば、ユーザーは、表示２０１ａ上にマウスカーソルを置き、例えば、左側もしくは右側のマウスボタンをクリックしてもしくはその他のマウス選択手段、例えばマウスをタップなどすることによって、表示２０１ａを選択して、ウェルエディターメニュー１７を引き合いに出して起動することができる。一旦ウェルエディターメニュー１７が起動すると、ユーザーは、例えば、マウスを右クリックまたは左クリックして、そのカーソルが表示２０１ａに配置されて、地図上の新規のオイルウェル表示２０１ａの場所をスポットするようにして、入手できるあらゆるプログラム手段によってウェル追加（Ａｄｄ Ｗｅｌｌ）を選択することができる。
【００８９】
図２６に示すように、アプリケーションは、新規ウェルのフィールド名１８ａ、緯度１８ｂ、経度１８ｃを、例えばＡｄｄ Ｗｅｌｌ１８ダイアログ・ディスプレーなどによって、追加することができる。これらのデータは、ソフトウェア・コンポーネント２０に導入のために返還される。
【００９０】
図２７に示すように、このようにして新規ウェル２０２ｂは進行中に作成され、新規のウェル２０２ｂはそれぞれの層３０に関連付けされる。
【００９１】
同様にして、ユーザーは、新規のフィールド・コンポーネント２１、ウェル・コンポーネント２２、ログ・コンポーネント２３などを作成することができ、ユーザーの依頼もしくはプログラムの依頼に応答してソフトウェア・アプリケーションを再作成する必要がないのに、新規の層３０、例えば新規なフィールド層３０さえも作成する場合がある。当業者にとって理解されるように、かかる拡張性は、プログラムされて、所定のトリガーイベント、例えばアプリケーション外部でのトリガーも自動的に発生させたり、完全に防止されたりする。
【００９２】
図２８に示すように、進行中：発生的プログラムの例、カーブ・データのセットは、それらはオイルウェル２０１から取得されるにつれて蓄積される。図２８には、５個の層３０が示されているが、これはアプリケーションがこれらの層３０に限定されることを示唆しているものではない。
【００９３】
データディスプレー層３０ａは、ビジュアル層７０００であり、ユーザーの入力行動を通訳して、ビジュアル表示と情報を提示する責任を有している。データディスプレー層３０ａ内では、コントローラー７００３がユーザーの行動を通訳し、要求された行動をビューモデル７００１に通知する。ビューモデル７００１は、コントローラー７００３からの指令を受け取り、例えばその指示を別の１個もしくはそれ以上のソフトウェア・コンポーネント２０に渡すことによって処理する。これらはデータ取得層３０ａのリアルタイムサービス、データ・ディスパッチャー層３０ｂサービス、ビュー７００２サービスを含んでいてもよい。
【００９４】
データプロセッシング層３０ｃは、データプロセッシング層３０ｃのフレームワーク４０に付随する目録７００中のソフトウェア・コンポーネント２０から示された、動的に作成されたソフトウェア・コンポーネントから構成されている。例えば、データプロセッシング層３０中のこれらのソフトウェア・コンポーネント２０は、データ取得層３０ｄによってデータプロセッシング層３０ｃに供給される生データを蓄積したり、処理したりする。
【００９５】
データ取得層３０ｄは、実社会の実体、例えば、ポンプ、ツール、バルブなどを設計したりまたは表示したりする１個もしくはそれ以上のソフトウェア・コンポーネント２０を構成している。データ取得層３０ｄのこれらのソフトウェア・コンポーネント２０は、ユーザーのプログラム制御もしくはその組み合わせによって初期化される。更に、１個もしくはそれ以上のデータソフトウェア・コンポーネント２０は、実社会のデバイスとログ用装置との間のデータならびに／もしくはインターフェースを蓄積できる。蓄積されたデータは、ウェル現場で、オイルウェル２０１とアプリケーションと連絡する１個もしくはそれ以上のバッファ中で、アプリケーション中で、またはそれらの組み合わせで蓄積される。
【００９６】
所定数のカーブ・データは取得されると、処理用ソフトウェア・コンポーネント２０が、プログラムの制御下で生成され、それらのデータ上で要求された処理を実行する。この例では、データプロセッサー３０ｃ中の機能性のほとんどは進行中に生成される。このことは、処理用ソフトウェア・コンポーネント２０が所定量のデータを受け取って発信されるまで存在することを意味している。
【００９７】
この発明の性質を説明するために上記に記載しかつ例示したところの部分の詳細、材料ならびに配置などの様々な変更は、当該技術分野の当業者には、上記特許請求の範囲に記載されたこの発明の原理ならびに範囲を逸脱することなく行うことができるものと理解される。
【００９８】
【図面の簡単な説明】
【図１】
この発明のＮ層アーキテクチャ方法論の模式図。
【図２】
ソフトウェア工場の説明図。
【図３】
層およびそのフレームワークの模式図。
【図４】
この発明の方法論を説明する説明図。
【図５】
この発明のライフサイク・ルルールを説明するフローチャート。
【図６】
ソフトウェア・コンポーネントを生成するのに使用するソフトウェア・アーキテクチャを設計するためのこの発明の方法を一般的に説明するためのフローチャート。
【図７】
この発明のベース層を示すＶｅｎｎタイプ図。
【図８】
この発明のメッセージ層を示すＶｅｎｎタイプ図。
【図９】
この発明のビジネス・ソフトウェア・コンポーネントを示すＶｅｎｎタイプ図。
【図１０】
複合コンポーネントを示すＶｅｎｎタイプ図。
【図１１】
この発明のリアルタイム・デバイス層を示すＶｅｎｎタイプ図。
【図１２】
この発明のデータ層を示すＶｅｎｎタイプ図。
【図１３】
この発明のプロセッシング層を示すＶｅｎｎタイプ図。
【図１４】
この発明のビジュアル層を示すＶｅｎｎタイプ図。
【図１５】
この発明のモデル・ビュー・コントローラー（ＭＶＣ）設計パターンを示すＶｅｎｎタイプ図。
【図１６】
この発明のテンプレート・オブジェクトを示すＶｅｎｎタイプ図。
【図１７】
この発明のビジネス・ルール層を示すＶｅｎｎタイプ図。
【図１８】
この発明のインターセプター層を示すＶｅｎｎタイプ図。
【図１９】
この発明のアプリケーション層を示すＶｅｎｎタイプ図。
【図２０】
この発明のウィザード層を示すＶｅｎｎタイプ図。
【図２１】
この発明のテスティング層を示すＶｅｎｎタイプ図。
【図２２】
フィールドに関連付けた２個のウェルを有するホイールフィールドからなる単純なビジネスモデルを示す模式図。
【図２３】
ウェル・コンポーネントに対する構造を示す図。
【図２４】
例示アプリケーションからの例示ディスプレ−スクリーンを示す図。
【図２５】
例示アプリケーションからの別の例示ディスプレ−スクリーンを示す図。
【図２６】
例示アプリケーションからの別の例示ディスプレ−スクリーンを示す図。
【図２７】
例示アプリケーションからの別の例示ディスプレ−スクリーンを示す図。
【図２８】
例示アプリケーションにおいて新規ウェルをフィールドに追加したときに発生する処理のブロック図。
【図１】
2004520635.tif 000005
【図２】
2004520635.tif 000006
【図３】
2004520635.tif 000007
【図４】
2004520635.tif 000008
【図５】
2004520635.tif 000009
【図６】
2004520635.tif 000010
【図７】
2004520635.tif 000011
【図８】
2004520635.tif 000012
【図９】
2004520635.tif 000013
【図１０】
2004520635.tif 000014
【図１１】
2004520635.tif 000015
【図１２】
2004520635.tif 000016
【図１３】
2004520635.tif 000017
【図１４】
2004520635.tif 000018
【図１５】
2004520635.tif 000019
【図１６】
2004520635.tif 000020
【図１７】
2004520635.tif 000021
【図１８】
2004520635.tif 000022
【図１９】
2004520635.tif 000023
【図２０】
2004520635.tif 000024
【図２１】
2004520635.tif 000025
【図２２】
2004520635.tif 000026
【図２３】
2004520635.tif 000027
【図２４】
2004520635.tif 000028
【図２５】
2004520635.tif 000029
【図２６】
2004520635.tif 000030
【図２７】
2004520635.tif 000031
【図２８】
2004520635.tif 000032
【国際公開パンフレット】
2004520635.tif 000033
2004520635.tif 000034
2004520635.tif 000035
2004520635.tif 000036
2004520635.tif 000037
2004520635.tif 000038
2004520635.tif 000039
2004520635.tif 000040
2004520635.tif 000041
2004520635.tif 000042
2004520635.tif 000043
2004520635.tif 000044
2004520635.tif 000045
2004520635.tif 000046
2004520635.tif 000047
2004520635.tif 000048
2004520635.tif 000049
2004520635.tif 000050
2004520635.tif 000051
2004520635.tif 000052
2004520635.tif 000053
2004520635.tif 000054
2004520635.tif 000055
2004520635.tif 000056
2004520635.tif 000057
2004520635.tif 000058
2004520635.tif 000059
2004520635.tif 000060
2004520635.tif 000061
2004520635.tif 000062
2004520635.tif 000063
2004520635.tif 000064
2004520635.tif 000065
2004520635.tif 000066
2004520635.tif 000067
2004520635.tif 000068
2004520635.tif 000069
2004520635.tif 000070
2004520635.tif 000071
2004520635.tif 000072
2004520635.tif 000073
2004520635.tif 000074
2004520635.tif 000075
2004520635.tif 000076
2004520635.tif 000077
2004520635.tif 000078
2004520635.tif 000079
2004520635.tif 000080
2004520635.tif 000081
2004520635.tif 000082
2004520635.tif 000083
【手続補正書】
【提出日】平成14年3月29日(2002.3.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
石油会社のためのソフトウェア・アプリケーションを作成・使用するシステムであって、該システムが、
ａ．少なくとも１個の処理ユニットと；
ｂ．該処理ユニットに連動連結された少なくとも１個のメモリ・ストアと；
ｃ．該少なくとも１個の処理ユニット内に常駐し実行可能な拡張可能Ｎ層ソフトウェアと；
ｄ．該Ｎ層ソフトウェアによって使用する該メモリ・ストア中に常駐するソフトウェア・コンポーネントの目録であって、少なくとも１個のソフトウェア・コンポーネントが石油会社の資産の必要要件を選択的に表していることと；
ｅ．該処理ユニットに連動連結している入力装置と；
ｆ．該処理ユニットに連動連結している出力装置と；
ｇ．該拡張可能Ｎ層ソフトウェアによって作成される少なくとも１個の層であって、該層は少なくとも１個のソフトウェア・コンポーネントから構成されるとともに、該石油会社の少なくとも１個の資産を更に表しかつ明確に規定されたビジネス機能を実行することを特徴とするシステム。
【請求項２】
請求項１に記載するシステムにおいて、該少なくとも１個のソフトウェア・コンポーネントが、フィールド・コンポーネントと、ウェル・コンポーネントと、所定のオイルフィールド、ウェルならびに関連必要要件を選択的に表すことができるログ・コンポーネントとからなることを特徴とするシステム。
【請求項３】
請求項１に記載するシステムにおいて、該出力装置のディスプレーが、該入力装置からの入力、該Ｎ層ソフトウェア、該Ｎ層ソフトウェアを用いて作成されたアプリケーションまたはそれらの組み合わせに対して応答することを特徴とするシステム。
【請求項４】
請求項１に記載するシステムにおいて、追加のソフトウェア・コンポーネントが、ユーザーの入力による手作業で、または内部のトリガーに応答して該Ｎ層ソフトウェアを用いて作成されたアプリケーションによる自動作業で、またはそれらの組み合わせによって作成もしくは修正されることを特徴とするシステム。
【請求項５】
石油会社の資産の選択されたセットを取り扱うためにシステムに対するソフトウェア・アプリケーションを生成する方法であって、該システムが、少なくとも１個の処理ユニットと、該処理ユニットに連動接続している少なくとも１個のメモリ・ストアと、該少なくとも１個の処理ユニット内で実行可能なＮ層ソフトウェアと、該Ｎ層ソフトウェアによって使用するためのメモリ・ストア中に常駐するソフトウェア・アーキテクチャ仕様書と、該処理ユニットに連動連結する入力装置と、出力装置と、該処理ユニットに連動連結する連結通路と、各ソフトウェア・コンポーネントが該資産のセットの少なくとも１個の資産を選択的に表しているソフトウェア・コンポーネントの初期セットと、少なくとも１個のソフトウェア・コンポーネントを構成しかつ該資産のセットの少なくとも１個の資産を表し、明確に規定されたビジネス機能を実行するところの少なくとも１個の層とから構成されていて、該方法が、
ａ．該資産のセットの選択サブセットのそれぞれに対する必要要件を選択的に表すためにソフトウェア・コンポーネントの目録からソフトウェア・コンポーネントを選択すること；
ｂ．該目録からのソフトウェア・コンポーネントによって充足されていない各必要要件に対して該目録の外部からソフトウェア・コンポーネントを取得すること；
ｃ．各選択されたソフトウェア・コンポーネントと取得されたソフトウェア・コンポーネントに対する、少なくとも１個の他のソフトウェア・コンポーネントとの関係を規定して、該関係が各選択されたソフトウェア・コンポーネントを層に関連付けることを含んでいること；ならびに
ｄ．該ソフトウェア・コンポーネントのそれぞれを引き合い可能なアプリケーション中に配列することを規定すること；
ｅ．によって構成され、それによって該資産のセットを取り扱うための該ソフトウェア・アプリケーションの必要要件が充足されることを特徴とする方法。
【請求項６】
請求項５に記載する方法において、
ａ．ソフトウェア・コンポーネントの目録からウェル・コンポーネントを選択して、ウェルの所定数に対する必要要件を選択的に表すこと；
ｂ．ソフトウェア・コンポーネントの目録からログ・コンポーネントを選択して、ログ・コンポーネントの所定数に対する必要要件を選択的に表すこと；
ｃ．ソフトウェア・コンポーネントの目録からフィールド・コンポーネントを選択して、フィールド・コンポーネントの所定数に対する必要要件を選択的に表すこと；および
ｄ．１個もしくはそれ以上のウェル・コンポーネントを１個もしくはそれ以上のフィールド・コンポーネントと１個もしくはそれ以上のログ・コンポーネントとに関連付けること；を特徴とする方法。
【請求項７】
請求項５に記載する方法において、各ソフトウェア・コンポーネントに変更メニューを提供して、該変更メニューが手作業によってアクセスされるか、プログラム的にアクセスされるかまたはそれらの組み合わせによって作成されることを更に含むことを特徴とする方法。
【請求項８】
請求項５に記載する方法において、１個もしくはそれ以上の処理ソフトウェア・コンポーネントがデータ処理のために作成されることから更に構成され、該処理される処理ソフトウェア・コンポーネントがプログラムによる制御下に作成され、かつ、前以って規定された量のデータを受け取ったときにそれらのデータについて要求された処理を行うことを特徴とする方法。
【請求項９】
該ソフトウェア・コンポーネントが複数個の処理ユニット中に分散されている複数個の処理ユニットのための請求項５に記載する方法。
【請求項１０】
請求項５に記載する方法を用いて作成されたコンピューターで読み取り可能な媒体中に具体化されるコンピュータープログラム。
【国際調査報告】
2004520635.tif 000084
2004520635.tif 000085