(57)【要約】  オブジェクト処理グラフ（ＯＰＧ）アプリケーション開発システムである。本システムは、ＯＰＧアプリケーションプログラムインターフェース（ＡＰＩ）、ＯＰＧアプリケーションエディタ、ＯＰＧアプリケーションウィンドウエディタ、およびＯＰＧアプリケーション表記を含んでいる。ＯＰＧ−ＡＰＩは、ＯＰＧシステムの機能へのアクセスを提供する。ＯＰＧアプリケーションエディタは、ＯＰＧ−ＡＰＩを介してＯＰＧアプリケーションの生成および編集を容易にする。ＯＰＧアプリケーションウィンドウエディタは、ＯＰＧアプリケーションの実行中に、ＯＰＧアプリケーションユーザーインターフェースウィンドウの編集を容易にする。ＯＰＧアプリケーション表記は、ＯＰＧアプリケーションを記述および定義すべく複数のキーワードおよび付随する定義を含んでいる。
2008512794.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト処理グラフ（ＯＰＧ）アプリケーション開発システムであって、
ＯＰＧシステムの機能へのアクセスを提供するＯＰＧアプリケーションプログラムインターフェース（ＡＰＩ）と、
前記ＯＰＧ−ＡＰＩを介してＯＰＧアプリケーションの生成および編集を助長するＯＰＧアプリケーションエディタと、
ＯＰＧアプリケーションの実行中に、ＯＰＧアプリケーションユーザーインターフェースウィンドウの編集を助長するＯＰＧアプリケーションウィンドウエディタと、
前記ＯＰＧアプリケーションを記述および定義すべく複数のキーワードおよび付随する定義を含むＯＰＧアプリケーション表記と、
を含むオブジェクト処理グラフアプリケーション開発システム。
【請求項２】
前記ＯＰＧ−ＡＰＩは、前記ＯＰＧアプリケーションが他のシステムと動的に対話して情報を交換できるようにするインターフェース機能を提供する、請求項１に記載のシステム。
【請求項３】
前記ＯＰＧ−ＡＰＩは、永続ＯＰＧを表わすグラフィカルソフトウェアモデルを生成および維持する機能を提供する、請求項１に記載のシステム。
【請求項４】
前記ＯＰＧ−ＡＰＩは、対応するグラフィカルソフトウェアモデルが更新されるのに伴い永続ＯＰＧを更新する、請求項１に記載のシステム。
【請求項５】
前記ＯＰＧアプリケーションエディタは、永続ＯＰＧに対応するグラフィカルソフトウェアモデルを生成および維持すべくＯＰＧ−ＡＰＩを利用するエディタグラフィカルモデルインターフェースを含む、請求項１に記載のシステム。
【請求項６】
前記ＯＰＧアプリケーションエディタは、永続ＯＰＧに対応するソフトウェアモデルをコンピュータ表示媒体上にレンダリングするエディタビューワーを含み、
前記グラフィカルソフトウェアモデルは、図形記号、アイコン、線、図柄、テキスト、画像およびウィンドウ制御要素のうち少なくとも１つを含む、請求項１に記載のシステム。
【請求項７】
前記ＯＰＧアプリケーションエディタは、前記グラフィカルソフトウェアモデルのコンポーネントを移動、追加、削除、および更新したいとのユーザーの入力要求を、エディタグラフィカルモデルインターフェース機能要求に変換して、前記エディタビューワーに前記グラフィカルソフトウェアモデルを更新させ、且つ前記ＯＰＧ−ＡＰＩに永続ＯＰＧを更新させるエディタコントローラを含む、請求項６に記載のシステム。
【請求項８】
前記エディタコントローラは、前記ＯＰＧアプリケーションエディタおよび１種類のウィンドウ制御要素により描出された１組のワークスペースビューに表示されたウィンドウ制御要素上の表示カーソル位置に基づいて、キーボード、マウスその他の入力装置を介したユーザーの選択および入力に応答する、請求項７に記載のシステム。
【請求項９】
前記ワークスペースビューは、前記グラフィカルソフトウェアモデルへ含めるべく選択可能な図形コンポーネントを表示するパレットビュー、ＯＰＧまたはサブグラフのグラフィック表現を表示するコンポーネントビュー、ＯＰＧのツリービューを表示するアプリケーションナビゲータビュー、ＯＰＧを含むリポジトリファイルを一覧表示するリポジトリビュー、ＯＰＧグラフノードおよびエッジのプロパティ名および値を表示するプロパティビュー、およびコンポーネントビュー上で選択されて表示されたグラフコンポーネントのグラフィックコンポーネントのツリービューを表示するコンポーネントアウトラインビューのうち少なくとも１つを含む請求項８に記載のシステム。
【請求項１０】
前記ＯＰＧアプリケーションウィンドウエディタは、ＯＰＧコントローラビューワーに追加されて統合されたウィンドウエディタ制御要素を含む、請求項１に記載のシステム。
【請求項１１】
前記ウィンドウエディタ制御要素は、対応するＯＰＧアプリケーションの実行中に、前記ＯＰＧアプリケーションウィンドウエディタまたはアプリケーションウィンドウのデータ可視性プロパティエディタのいずれかをユーザーに選択可能にしたＯＰＧアプリケーションデータ表示ウィンドウ上に、エディタ選択コントロールを表示する、請求項１０に記載のシステム。
【請求項１２】
前記ＯＰＧアプリケーションウィンドウエディタは、アプリケーションデータ表示ウィンドウ上でデータウィンドウ表示要素の変更、追加、または削除を行なった影響をユーザーが直ちに視認できるようにする見た目通りの出力（ＷＹＳＩＷＹＧ）方式のエディタを提供する、請求項１に記載のシステム。
【請求項１３】
前記ＯＰＧアプリケーションウィンドウエディタは、アプリケーションデータ表示におけるウィンドウ表示要素を選択可能、移動可能、編集可能、および削除可能にし、
前記ウィンドウ表示要素は、ウィンドウコントロール、テキストボックス、ラベル、テキストエディタ、線、形状、図柄、画像、およびアイコンのうち少なくとも１つを含む、請求項１に記載のシステム。
【請求項１４】
前記ＯＰＧアプリケーションウィンドウエディタは、選択されたアプリケーションデータ表示におけるウィンドウ要素に対しユーザーが要素の追加または削除、テキストプロパティの変更、要素のサイズ変更や位置変更、および要素の色の変更を含むエディタ機能を適用できるようにする複数のエディタコントロールを含むエディタツールバーを表示する、請求項１に記載のシステム。
【請求項１５】
コンピュータシステムを開発する方法であって、
コンピュータプログラムであるグラフ構造における要素を指定するコマンドを受信する受信ステップと、
前記コマンドに応答して、前記コンピュータプログラムをリアルタイムで修正する修正ステップと、
を含むコンピュータシステム開発方法。
【請求項１６】
ユーザーインターフェース画面上のコンピュータプログラムのグラフィカル表現を表示するステップを更に含み、
前記コマンドは、ユーザーインターフェース入力装置を介して受信される、請求項１５に記載の方法。
【請求項１７】
前記修正されたコンピュータプログラムのグラフィカル表現をユーザーインターフェース画面上に表示するステップを更に含む、請求項１５に記載の方法。
【請求項１８】
前記修正されたコンピュータプログラムは、その後前記コンピュータプログラムにより処理される全てのトランザクションにより利用される、請求項１５に記載の方法。
【請求項１９】
前記修正されたコンピュータプログラムは、その後前記コンピュータプログラムにより処理される選択済みトランザクションにより利用される、請求項１５に記載の方法。
【請求項２０】
前記修正されたコンピュータプログラムは、コンピュータプログラムにより現在処理中のトランザクションにより利用される、請求項１５に記載の方法。
【請求項２１】
前記要素は、コンポーネントおよびリンクのうち少なくとも１つを含む、請求項１５に記載の方法。
【請求項２２】
前記コンポーネントは、アプリケーションコンポーネント、プロセスコンポーネント、データ構造コンポーネント、データ構造配列コンポーネント、および原始データ要素のうち少なくとも１つを含む、請求項２１に記載の方法。
【請求項２３】
前記コマンドは、要素の閲覧、要素の追加、要素の修正、および要素の削除のうち少なくとも１つを含む、請求項１５に記載の方法。
【請求項２４】
前記コンピュータプログラムは、前記受信ステップと並行して実行しており、
ユーザーインターフェース画面を介してコンピュータプログラムからの出力を表示するステップを更に含む、請求項１５に記載の方法。
【請求項２５】
前記修正されたコンピュータプログラムからの出力を、前記ユーザーインターフェース画面を介して表示するステップを更に含む、請求項２４に記載の方法。
【請求項２６】
コンピュータシステムを開発する方法であって、
グラフ構造としてコンピュータプログラムを生成するステップと、
前記グラフ構造のグラフィカル表現をユーザーインターフェース画面上に表示するステップと、
前記グラフ構造内の要素を指定するコマンドを受信するステップと、
前記コマンドに応答して前記コンピュータプログラムをリアルタイムで修正する修正ステップと、
前記コマンドに応答して前記グラフ構造を更新するステップと、
前記更新されたグラフ構造のグラフィカル表現を前記ユーザーインターフェース画面上に表示するステップと、
を含むコンピュータシステム開発方法。
【請求項２７】
前記コンピュータプログラムは、オブジェクト処理グラフ（ＯＰＧ）である、請求項２６に記載の方法。
【請求項２８】
前記ＯＰＧの表示は、１個以上のＯＰＧアプリケーションエディタおよびＯＰＧアプリケーションウィンドウエディタのうち少なくとも１つを介して行なわれる、請求項２６に記載の方法。
【請求項２９】
前記修正ステップは、ＯＰＧアプリケーションプログラムインターフェースおよびＯＰＧシステムとのインターフェースを有するＯＰＧアプリケーションウィンドウエディタのうち１個以上を介して行なわれる、請求項２６に記載の方法。
【請求項３０】
コンピュータシステムを開発するためのコンピュータプログラム製品であって、
処理回路により読み込み可能であって、前記処理回路による実行によって一方法が保存される記憶媒体を含み、
前記方法は、
グラフ構造がコンピュータプログラムであって、グラフ構造内の要素を指定するコマンドを受信するステップと、
前記コマンドに応答して前記コンピュータプログラムをリアルタイムで修正するステップと、
を含むコンピュータプログラム製品。
【請求項３１】
コンピュータシステムを開発するためのコンピュータプログラム製品であって、
処理回路により読み込み可能であって、前記処理回路による実行によって一方法が保存される記憶媒体を含み、
前記方法は、
グラフ構造としてコンピュータプログラムを生成するステップと、
前記グラフ構造のグラフィカル表現をユーザーインターフェース画面上の表示するステップと、
前記グラフ構造内の要素を指定するコマンドを受信するステップと、
前記コマンドに応答して前記コンピュータプログラムをリアルタイムで修正するステップと、
前記コマンドに応答して前記グラフ構造を更新するステップと、
前記更新されたグラフ構造のグラフィカル表現を前記ユーザーインターフェース画面上に表示するステップと、
を含むコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアアプリケーションプログラム開発ツールおよび環境に関し、静的または動的なコンピュータアプリケーションの生成および編集を可能にする統合開発環境（ＩＤＥ）、高速アプリケーション開発（ＲＡＤ）システム、およびグラフィックユーザーインターフェース（ＧＵＩ）を含んでいる。特に、本発明はオブジェクト処理グラフの生成および編集に関し、本明細書において後述する。
【背景技術】
【０００２】
本出願は、２件の同時係属出願、すなわち２００５年５月２０日出願の米国特許出願第１０／９０８，６５４号「オブジェクト処理グラフシステム」、および２００５年５月２０日出願の米国特許出願第１０／９０８，６５３号「オブジェクト処理グラフアプリケーションコントローラ−ビューワ」に関係する。両出願共に、その全文を本明細書に引用している。
【０００３】
１９５０年代のアセンブリ言語の開発以来、コンピュータ産業はソフトウェア開発において逐次発展し続けてきた。これらの発展により、ソフトウェアは、より少ない手作業でより短期間に開発可能になり、より複雑なソフトウェアシステムの開発が可能になって、一般にソフトウェアシステムの信頼性が向上した。これらの発展には、ＣＯＢＯＬやＦｏｒｔｒａｎ等の第３世代プログラミング言語、ＦＯＣＵＳ等の第４世代プログラミング言語、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋およびＪａｖａ（登録商標）等のオブジェクト指向プログラミング言語、ＲａｔｉｏｎａｌＲｏｓｅ等のＣＡＳＥツール、ＯｒａｃｌｅやＤＢ２等の関係データベースシステム、およびＧｅｍＳｔｏｎｅやＶｅｒｓａｎｔ等のオブジェクト指向データベースシステムの開発が含まれる。しかし、開発はこれらの発展にもかかわらず、大規模システムの開発は、依然として高いスキルのプログラマを多数必要とする高価且つ高リスクの冒険であり、完成したシステムの品質および適用性には常にかなりの不確実性が存在する。
【０００４】
ＬａｂＶＩＥＷやＭＡＴＬＡＢ−Ｓｉｍｕｌｉｎｋ等の第５世代プログラム言語およびそれらに付随する開発環境は、第４世代言語を用いて実現された開発生産性を次の段階に高めるべく設計されている。これらは、非プログラマが、自身の特定の問題ドメインに極めてよく似せられた計算機能を利用できるようにする。第５世代言語環境の特徴は通常、統合化された永続データ管理システム、クエリー言語、レポートジェネレータおよびユーザーインターフェース定義機能を含んでいて、グラフィックジェネレータ、意思決定支援機能、金融モデリング、スプレッドシート機能、統計分析機能やパラメータ化された業務およびドメインモデルにより補完されることができる。しかし、第５世代言語ツールで最も広範囲にわたる実施形態は、極めて専門的且つ比較的狭いドメイン、例えば計測器データ収集（ＬａｂＶＩＥＷ）、信号処理、プロセス制御、工学モデリング、マイクロ配列データ処理、通信システム設計等を目標としてきた。
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明は、オブジェクト処理グラフアプリケーション開発システムを定義して実装するものである。
【０００６】
一態様は、オブジェクト処理グラフアプリケーション記述表記と、オブジェクト処理グラフアプリケーションエディタとを含むオブジェクト処理グラフアプリケーション開発システムである。表記は、開発者がデータ構造、データ変換、処理ステップおよび計算を含む、但しこれに限定されない、全てのアプリケーションデータおよび機能を定義できるようにするキーワードの集合およびこれに付随する定義を提供する。アプリケーションエディタは、表記キーワードのアイコン表現を用いるアプリケーションの編集可能なグラフィック表現を提供する。
【０００７】
別の態様は、オブジェクト処理グラフアプリケーション記述表記、オブジェクト処理グラフアプリケーションエディタ、およびオブジェクト処理グラフアプリケーションウィンドウエディタを含むオブジェクト処理グラフアプリケーション開発システムである。表記は、キーワードの意味と、それらのアイコン表現とを定義する。エディタは、アプリケーションデータおよび処理情報の編集可能な表現を提供する。ウィンドウエディタは、アプリケーションの実行中にアプリケーション開発者またはユーザーが当該アプリケーションのユーザーインターフェースを生成および編集できるようにする。
【０００８】
更なる態様は、オブジェクト処理グラフアプリケーション記述表記、オブジェクト処理グラフアプリケーションエディタ、オブジェクト処理グラフアプリケーションウィンドウエディタ、およびオブジェクト処理グラフアプリケーションプログラムインターフェースを含む、オブジェクト処理グラフアプリケーション開発システムである。表記は、アプリケーションコンポーネント定義を提供する。アプリケーションエディタは、オブジェクト処理グラフアプリケーションの編集可能なグラフィカル表現を提供する。ウィンドウエディタは、アプリケーションが動作している間、ユーザーおよび開発者がアプリケーションのユーザーインターフェースを生成および編集するために必要な機能を提供する。オブジェクト処理グラフアプリケーションプログラムインターフェースは、インターフェース機能の定義を提供して、アプリケーションプログラムがオブジェクト処理グラフアプリケーションと直接インターフェースを持てるようにするアクセス方法を実装する。
【０００９】
更なる態様は、コンピュータシステムを開発するための方法およびコンピュータプログラム製品である。本プロセスは、グラフ構造における要素を指定するコマンドを受信して、当該コマンドに応答してリアルタイムでコンピュータプログラムを修正するステップを含んでいる。当該グラフ構造はコンピュータプログラムである。
【００１０】
また更なる態様は、コンピュータシステムを開発する方法およびコンピュータプログラム製品である。本プロセスは、グラフ構造としてのコンピュータプログラムを生成して、ユーザーインターフェース画面上のグラフ構造のグラフィカル表現を表示するステップを含んでいる。当該グラフィック構造の要素を指定するコマンドを受信する。当該コンピュータプログラムは、コマンドに応答してリアルタイムで修正される。また、当該コマンドに応答してグラフ構造が更新される。更新されたグラフ構造のグラフィカル表現は、ユーザーインターフェース画面上に表示される。
【００１１】
本発明の好適な実施形態は、大規模且つ複雑なオブジェクト処理グラフアプリケーションシステムの構築に係るコストおよびリスクを減らすステップを含む、多くの利点をもたらす。アプリケーションユーザーおよびアプリケーションドメインの専門家は、最小限のコンピュータ訓練しか受けていなくても、カスタマイズされた複雑なオブジェクト処理グラフアプリケーションシステムの開発および維持を行なうことができる。ソフトウェアアプリケーションシステムの適用範囲、柔軟性、および有用性を大幅に拡張すべく、実行時に修正可能なアプリケーションを生成することが可能である。また、本発明は、オブジェクト処理グラフアプリケーションと従来のソフトウェアアプリケーションを統合可能にするインターフェースを提供する。
【００１２】
本発明のこれらおよび他の特徴、態様、および利点は、以下の説明、添付の請求項、および添付の図面に関してよく理解されよう。
【発明を実施するための最良の形態】
【００１３】
本発明の好適な実施形態の態様は、オブジェクト処理グラフアプリケーション（ＯＰＧ）を開発するための完全な環境を含んでいる。図１に示すような好適な実施形態は、４個の主要なコンポーネント（図１）すなわち、オブジェクト処理グラフアプリケーション記述表記（ＯＰＧＡＤＮ）１、オブジェクト処理グラフアプリケーションエディタ（ＯＰＧＡＥ）２、オブジェクト処理グラフアプリケーションウィンドウエディタ（ＯＰＧＡＷＥ）４、およびオブジェクト処理グラフアプリケーションプログラムインターフェース（ＯＰＧＡＰＩ）３を含んでいる。ＯＰＧＡＥ２とＯＰＧＡＰＩ３は、本明細書に後述するＯＰＧシステム５と密接に統合されている。
【００１４】
ＯＰＧＡＤＮ１コンポーネントの好適な実施形態は、アプリケーション開発者、ユーザーおよびドメイン専門家がアプリケーションの複雑な処理ステップ、データ動作、変換および定義を完全に定義できるようにするキーワードの集合および付随する定義を含んでいる。キーワードは、アプリケーションを定義するＯＰＧ要素を表わすと共にマッピングされる。
【００１５】
ＯＰＧＡＥ２コンポーネントの好適な実施形態は、ＯＰＧアプリケーションを定義して更新するための、完全に特徴付けられた編集環境である。これらは、スタンドアローンまたはＷＥＢベースのコンピュータソフトウェアシステムとして実装することができる。好適な実施形態はＯＰＧＡＰＩ３により定義された関数を用いて、動的グラフインタプリタ（ＤＧＩ）を介してＯＰＧアプリケーションと直接対話して修正する。これらは、実際のＯＰＧアプリケーション構造と密接に相関関係にあるＯＰＧアプリケーションのグラフィカル表現を開発者に提示する。当該グラフィカル表現は、キーボード、コンピュータマウスその他の入力装置を介して入力された編集コマンドを用いて開発者が動作できるグラフィックシンボルおよび構造を含んでいる。
【００１６】
ＯＰＧＡＷＥ４コンポーネントの好適な実施形態は、ＯＰＧアプリケーションデータが表示されるウィンドウの定義を更新する「見た目通りの出力」（ＷＹＳＩＷＹＧ）方式のエディタ、およびデータ要素の可視性および可変性を定義して修正するための特別なエディタを提供する。プログラムを実行する前、またはＤＧＩによりプログラムが翻訳されている最中に、ウィンドウおよび表示プロパティに対して変更を行なうことができる。ＯＰＧＡＷＥ４の好適な実施形態はまた、ＯＰＧアプリケーションの開始、停止、および監視、並びにアプリケーションデータを評価して変更するためのコマンドも提供する。好適な実施形態は、本明細書において後述するＯＰＧアプリケーションコントローラ−ビューアシステム（ＯＰＧＡＣＶ）のモジュールとして実装されている。
【００１７】
ＯＰＧＡＰＩ３コンポーネントの好適な実施形態は、非ＯＰＧアプリケーション（例：ＯＰＧＡＥ２の実施形態）がＯＰＧアプリケーションと対話できるようにする標準ＯＰＧおよびＤＧＩコンポーネントを含むＯＰＧトランスレータにより実装された標準機能および付随するパラメータの集合を定義する。ＯＰＧＡＰＩ３は、ＯＰＧアプリケーションを開始、停止、定義、および修正する機能を定義する。これはまた、ＯＰＧアプリケーションにデータを入力して、それらの出力を報告する機能を定義する。
【００１８】
オブジェクト処理グラフアプリケーション記述表記（ＯＰＧＡＤＮ）
好適な実施形態において、ＯＰＧＡＤＮ１は、ＯＰＧアプリケーションの要素について、キーワードおよび付随する定義の集合を提供する。ＯＰＧＡＤＮ１を用いて、ＯＰＧアプリケーションエディタへのインターフェースを記述する。また、ユニバーサルモデリング言語（ＵＭＬ）等の他の表記を用いて、いくつかのＵＭＬシンボルの意味を修正することにより、ＯＰＧプログラムを定義することもできる。また、他の表記用のエディタにより、ＯＰＧプログラム記述の拡張可能マークアップ言語（ＸＭＬ）に変換可能なＯＰＧプログラム記述を生成することができる。以下は、好適なＯＰＧＡＤＮ１用語およびその定義のリストである。
【００１９】
ＯＰＧアプリケーション：ＯＰＧシステム５におけるＤＧＩにより実装（実行）可能なＯＰＧとして定義されたコンピュータソフトウェアシステム。ＯＰＧアプリケーションは、データ構造、操作、および関係およびデータ変換を定義するリンクから成る。
【００２０】
操作（Operation）：時間依存動作、順序付けられた、または順序付けられていない、
直列化または並列化可能な、一連のプログラム動作またはステップを定義するソフトウェア要素である。１操作は概ね、高水準コンピュータプログラム内の１行のコード、ワークフローシステム内の操作またはステップ、あるいは対話型またはトランザクション的システム内の画面またはウィンドウに対応する。
【００２１】
処理（Process）：操作の集合をグループ化して、グループに名称を付与する操作。ＯＰＧアプリケーションは1個以上のプロセスを含んでいる。
【００２２】
データ要素：名称および単純または複雑な値を有するデータ項目。
【００２３】
データ構造：原始データ要素、データ構造、データ配列、およびデータ参照をグループ化するデータ要素。グループ化された項目は属性と呼ばれている。プログラムで、データ構造を単一の実体として参照および動作することができる。
【００２４】
原始データ：データ要素の種類を有するが下部構造は有していないデータ要素。原始データ要素はデータ構造の属性である。原始データ要素は、当該種類に固有の表示および処理機能を含んでいる。原始種類の巨大な集合が予め定義されており、ストリング、倍精度、整数、日付、ファイル、画像、マッピング、ＸＭＬファイル、計算、計算されたストリング、カスタムクラス、電子メールアドレス、ウェブアドレス、ディレクトリ、スプレッドシートセル、ファイル変換、長精度整数、大十進数、二進数、および関係テーブルを含んでいる。必要に応じて追加的なドメイン固有のデータ型を加えることができる。
【００２５】
データ構造配列：データ構造の均質なｎ次元配列。データ配列はデータ構造の属性である。
【００２６】
データ参照：データ構造を指示するデータ構造の属性。データ参照は、ヌル（１対０または１対１の関係）であり得る、または決してヌルでない（１対１の関係）ように、定義することができる。
【００２７】
アプリケーション状態：データ要素値およびアプリケーション実行中のある時点におけるアクティブな操作の集合。
【００２８】
リンク：２個のＯＰＧソフトウェア要素間の変換関係（接続）を定義するソフトウェア構造。３種のリンクカテゴリがある。すなわち、２個の操作間の関係を定義する操作対操作、操作とデータ構造の関係を定義する操作対データ、２個のデータ要素間の関係を定義するデータ対データ、である。全てのリンクは、自身の名称、方向等を定義する属性を有している。リンクにより定義される動作は、データインスタンスの比較に依存してよい。各々のリンクカテゴリ内に、以下に定義するリンク種類が存在する。
【００２９】
リンク表示：ある操作から別の操作への制御フローの方向を定義する操作間リンク。アプリケーション状態情報は、受取操作への遷移の一部として表示される。
【００３０】
キューリンク：ある操作から別の操作への制御フローの方向を定義する操作間リンク。アプリケーション状態情報は、イベントを待つ受取操作のキューに置かれる。
【００３１】
バッチリンク：ある操作から別の操作への制御フローの方向を定義する操作間リンク。アプリケーション状態情報は、受取操作により直ちに処理される。処理は、時間スケジューリングすることができる。
【００３２】
コピーリンク：あるデータ要素値の別の要素へのコピーを定義するデータ間リンク。このようなコピーはデータ型を意識している、すなわち、値の変換および複製は暗黙的である。リンクプロパティは、変換その他のコピー基準を定義する。
【００３３】
計算リンク：新規のデータ要素を生成するデータ要素に適用されるデータ変換の集合を定義するデータに対するデータ間リンク。計算リンクは、他のデータ要素を計算すべく任意の数のデータ要素に作用する複雑な数学公式および／または正規表現を提供する。
【００３４】
分割リンク：１個のアプリケーション状態にあるデータ要素の１個以上のアプリケーション状態への分布を定義するデータ間リンク（アプリケーション状態は上で定義済み）。
マージリンク：１個以上のアプリケーション状態にあるデータ要素の１個のアプリケーション状態への収集を定義するデータ間リンク。
結合リンク：異種データ要素の同時検索を定義するデータ間リンク（関係データベース管理システム（ＲＤＢＭＳ）の結合と同様）。
生成リンク：新規データ構造の生成を定義する操作対データリンク。
照会リンク：データ要素の照会および当該操作と共にそれらをアプリケーション状態に追加するステップを定義する操作対データリンク。
実行リンク：プログラムコードの実行または当該操作と共にデータ要素内に含まれている制御構造を定義する操作対データリンク。
【００３５】
オブジェクト処理グラフアプリケーションエディタ（ＯＰＧＡＥ）
以下に、ＯＰＧＡＥ２コンポーネントの好適な実施形態の機能概要を与える。参照する図２〜５は、ＯＰＧＡＥ２により提供されたワークスペース２、およびＯＰＧアプリケーションのグラフィカルモデルがどのように表示されるかを示すウィンドウ画像である。好適な実施形態において、ＯＰＧＡＥ２はＥｃｌｉｐｓｅパースペクティブからワークスペースを表示するＥｃｌｉｐｓｅプラットフォームプラグインとして実装されている。
【００３６】
好適な実施形態において、ＯＰＧＡＥ２はワークスペースウィンドウ内のＯＰＧアプリケーションをパーソナルコンピュータ（ＰＣ）のモニタ上に描出する。ＯＰＧＡＥワークスペースは、グラフィカルユーザーインターフェース（ＧＵＩ）である。ＯＰＧＡＥ２は、ＰＣのマウスまたはキーボードからユーザー入力を受取する。
【００３７】
ＯＰＧＡＥワークスペース
図２に表わすような好適な実施形態において、ＯＰＧＡＥ２はＰＣモニタ上にグラフィックワークスペースを表示すべくＥｃｌｉｐｓｅパースペクティブを提供する。ワークスペースにおり、ユーザーはＯＰＧアプリケーションを構成、選択、および更新することができる。アプリケーションは、リポジトリ（データソース）に保存されている。ワークスペースにより、ユーザーはリポジトリを選択し、さらにリポジトリ内のアプリケーションを選択することができる。また、アプリケーションの全てのコンポーネントやリンクおよび当該コンポーネントやリンクにリンク付けられたプロパティへのアクセスを可能にする。ユーザーは、表示されたリストから選択を行ない、ＰＣのマウスやキーボードを用いてワークスペースでコンポーネントをドラッグアンドドロップすることによりアプリケーションの定義または修正を行なう。ワークスペースの表示（例えばＥｃｌｉｐｓｅパースペクティブ）は、標準のグラフ編集フレームワーク（ＧＥＦ）ツールバー１２および６種の専用ビュー、すなわちパレットビュー１１、コンポーネントビュー９、アプリケーションナビゲータビュー６、リポジトリビュー（図示せず）、コンポーネントアウトラインビュー７、およびコンポーネントプロパティビュー１０で構成されている。これらのビューは、ユーザーの好みに合わせてエディタウィンドウ内で再構成することができる。図２に、ディスプレイのデフォルト構成を示す。アプリケーションナビゲータビュー６用のタブは、図２で「グラフ論理」とラベル付けされている。アプリケーションナビゲータビュー６は、新規アプリケーションを生成する、既存のアイコンを開く、アプリケーションの直近にロードされたバージョンへ戻る（あらゆる変更を破棄）、およびビューから選択された項目を削除するためのアイコンを含む小さいツールバー８を有する。図２の構成について以下により詳しく述べる。
【００３８】
好適な実施形態において、アプリケーションコンポーネント、リンクおよび原始データ属性がグラフィックシンボルにより表される。アプリケーションコンポーネントは長方形で表される。コンポーネントの種類を表すシンボルは、長方形の左上隅に表示される。それらが表す好適なシンボルおよびコンポーネントを図２のパレットビュー１１に一覧表示している。
【００３９】
ＯＰＧアプリケーションのいくつかのサンプルコンポーネントを、図３に示す好適なＯＰＧＡＥワークスペースに示す。コンポーネント１３の名称は、それが組成（composition）キャンバス１４に置かれた際に、コンポーネント長方形の最上位に表示される。コンポーネント長方形の残りの部分は、その属性コンポーネントを置くことができる組成キャンバス１４である。コンポーネント長方形は、これを囲むコンポーネントの組成キャンバス内で子コンポーネント１５としてサイズ変更および位置変更を行なうことができる。コンポーネント長方形は、リンク用に４個の接続ポイント１６を片方に１個ずつ有する。コンポーネント長方形が選択された場合、これらは強調表示される。アプリケーションリンクは、リンク線１７で表される。リンク線１７は、コンポーネント長方形上の接続ポイント１６から、別のまたは同じコンポーネント長方形上の接続ポイント１６に接続されている。リンク線１７はその一端に、下位コンポーネントを指す矢印を有している。データ属性は、左側にグラフィックシンボル、続いて属性の名称を含む小さい長方形により表される。データ属性シンボルは、子を有することができないため、組成キャンバスを有していない。選択可能なコンポーネントの上にＰＣのマウスカーソルを置いて、マウスの左ボタンをクリックすることにより、ワークスペースの選択を行なうことができる。
【００４０】
パレットビュー１１は、アプリケーションの一部にできるＯＰＧコンポーネントを示す。コンポーネントが選択された場合、カーソルは当該コンポーネントで「装備」され、選択された構成を置くことができるコンポーネントビュー９の領域上をカーソルが移動するのに伴いｏｋシンボルを表示するか、またはコンポーネントを置くことができない領域に禁止シンボルを表示する。カーソルをアクティブなコンポーネントビュー９の所望の位置に置くことにより当該コンポーネントの位置が選択されてマウスの左ボタンをクリックするまで、カーソルは装備されたままである。カーソルは、パレット上の「選択する」旨の選択肢をクリックすることにより随時「装備解除」することができる。また、カーソルは、パレットビュー１１上のコンポーネント選択肢クリックすることにより、異なるコンポーネントで装備することができる。
【００４１】
パレットビュー１１は、以下のコンポーネントの選択肢を提供する。すなわち、操作、構造化データ、構造化データ配列、およびデータである。パレットビュー１１は、あるコンポーネントを別のものに関連付けるリンク選択、およびコンポーネントの組成キャンバス１４上で複数のコンポーネントを選択可能にするマーキー選択を提供する。好適な実施形態において、パレットビュー１１のデフォルト場所は、ワークスペースの右側にある。
【００４２】
図４の好適なＯＰＧＡＥワークスペースに示される好適なコンポーネントビュー９等のコンポーネントビュー９は、コンポーネントのコンポーネントグラフおよび／または属性を組成キャンバス１４上に表示する。複数のコンポーネントビュー９を同時に開くことができる。これらは、スタックの最上位にある直近に開かれたコンポーネントビュー９と共に開かれた際に自動的にスタックされる。スタックの最上位のコンポーネントビュー９は「アクティブ」なビューである。各々のコンポーネントビュー９は、自身のコンポーネントの名称が付けられたタブを有する。タブをクリックすると、自身のビューがビューのスタックの最上部に置かれることにより、可視化されてアクティブ（順序付けコンポーネントは図４で選択される）になる。好適な実施形態において、コンポーネントビュー９は、コンポーネントおよび接続を配置することが可能なキャンバスである。コンポーネントビュー９は、当該ビューのタブ上の「Ｘ」上のマウスの左ボタンをクリックすることにより閉じられる。
【００４３】
アクティブなコンポーネントビュー９に示すコンポーネントまたはリンクは、コンポーネントまたはリンクグラフィカル上の左ボタンをクリックすることにより選択される。選択されたコンポーネントは、各々の側に接続ポイントを示す小さい正方形を有する強調表示された境界を有する。選択されたコンポーネントは、必要に応じて大きさを変更したり、または組成キャンバス１４上を移動させてもよい。コンポーネントビュー９は最も大きなビューである。好適な実施形態において、コンポーネントビュー９は、デフォルト構成におけるＯＰＧＡＥワークスペースウィンドウの中央に位置しており、その右側にはパレットビュー１１、左側にはアプリケーションナビゲータツールバー８、コンポーネントアウトラインビュー７、およびコンポーネントプロパティビュー１０を有する。
【００４４】
アプリケーションナビゲータビュー６は、アプリケーション全体のツリービューを表示して、アプリケーションの任意のコンポーネントを選択可能にする。マウスの左ボタンをダブルクリックすることにより、アプリケーションツリーのコンポーネントを選択されたコンポーネントに関するアクティブなコンポーネントビュー９が開く。アプリケーションナビゲータツールバー８上の選択タブには「グラフ論理アプリケーションナビゲータ」の表題が付けられている。
【００４５】
図５の好適なＯＰＧＡＥワークスペースに示すようなリポジトリビュー１８は、ＯＰＧアプリケーションが保持されているＯＰＧリポジトリのリストを表示する。リポジトリビュー１８は、ＯＰＧＡＥ２パースペクティブのこの構成のアプリケーションナビゲータツールバー８の代替手段である。いずれも、各々のタブをクリックすることにより選択することができる。
【００４６】
コンポーネントアウトラインビュー７の好適な実施形態は、コンポーネントのツリービューをアクティブなコンポーネントビュー９内に示す。コンポーネントアウトラインビュー７内のコンポーネントをクリックすることにより、可視化されたコンポーネントビュー９内のコンポーネントが選択（ハイライト）される。コンポーネントアウトラインビュー７は、コンポーネントプロパティビュー１０と同一領域内のワークスペースの左下側に置かれている。コンポーネントビュー９は、自身のタブをクリックすることにより選択することができる。
【００４７】
図４に示すようなアクティブなコンポーネントビュー９内でコンポーネントまたはリンクグラフィカルシンボルが選択された場合、そのプロパティがコンポーネントプロパティビュー１０に表示される。プロパティは、左カラムのプロパティの名称、右カラムに現在値を有する表形式のリストに表示される。図４において、コンポーネントプロパティビュー１０をプロパティのリストにより示す。プロパティの異なる集合には、各々の種類のコンポーネントまたはリンクが関連付けられていてよい。好適な実施形態において、コンポーネントプロパティビュー１０は、プロパティ選択を簡素化すべく、関係するプロパティ群のカテゴリタブを有している。
【００４８】
リスト内の各プロパティの値は編集可能である。多くの場合、これらは有効な選択肢が示された簡単なドロップダウンリストである。
【００４９】
コンポーネントプロパティビュー１０は、コンポーネントアウトラインビュー７と同一領域内のワークスペースの左下側に置かれている。コンポーネントプロパティビュー１０は、そのタブをクリックすることにより選択することができる。
【００５０】
ＯＰＧＡＥ編集機能
以下は、本発明のＯＰＧＡＥ２コンポーネントの好適な実施形態が提供する編集機能のリストである。
【００５１】
アプリケーションの定義：新規アプリケーションを定義するプロセスは、アプリケーション定義ウィザードにより制御される。アプリケーション定義ウィザードは、ＯＰＧＡＥツールバー上の新規アプリケーションアイコンをクリックしたならば開始される。アプリケーション定義ウィザードは最初に、図６に示すようなリポジトリ選択ウィンドウを表示する。新規アプリケーションを格納するリポジトリが選択された後で、アプリケーション定義ウィザードは、図７に示すようなアプリケーション名入力ウィンドウを表示する。アプリケーション名が入力された後で、アプリケーション定義ウィザードはアプリケーション定義ウィンドウを表示して、ユーザーがアプリケーション記述情報を提供できるようにする。例えば、ユーザー名、および編集機能へのアクセスを制御するパスワードである。最後に、アプリケーション定義ウィザードは、アプリケーションを定義するためのキャンバスを提供すべく、ＯＰＧＡＥ２に図４に示すようなコンポーネントビュー９のＯＰＧコンポーネントとして新規なアプリケーションを表示させる。アプリケーションナビゲータビュー６は、自身のアプリケーションツリー（例：図４の「デモプログラム」）における最上位エントリとして当該アプリケーションを示す。
【００５２】
アプリケーションを開く：既存のアプリケーションを開くプロセスはアプリケーション定義ウィザードにより制御される。アプリケーション定義ウィザードは、ＯＰＧＡＥツールバー上の「アプリケーションを開く」アイコンがクリックされたならば開始される。アプリケーション定義ウィザードは、図６に示すようなリポジトリ選択ウィンドウを表示し、次のボタンがクリックされたならば、選択対象アプリケーションのリストを表示する。
【００５３】
プロセスコンポーネントの定義およびアプリケーションコンポーネントへの追加：アプリケーションがアクティブなコンポーネントビュー９として表示された状態で、パレットビュー１１で操作選択が行なわれ、当該アプリケーションの組成キャンバス１４に操作が置かれる。置かれたプロセスはアプリケーションの子になる。全てのアプリケーションは子プロセスの集合を有する。追加的なプロセスを、同一手順でアプリケーションに追加することができる。プロセスの名称は、その名称をクリックして、プロセスコンポーネントに新規名称を直接入力することにより変更することができる。
【００５４】
操作コンポーネントの定義およびプロセスコンポーネントへの追加：パレットビュー１１上で操作選択を行なった後で、アクティブなコンポーネントビュー９に表示された任意のプロセスの組成キャンバス１４に操作を置くことができる。置かれた操作は、それが置かれたプロセスの子になる。全てのプロセスは子操作の集合を有する。
【００５５】
データ構造コンポーネントの定義および操作コンポーネントへの追加：パレットビュー１１でデータ構造の選択を行なった後で、アクティブなコンポーネントビュー９に表示された任意の操作の組成キャンバス１４にデータ構造を置くことができる。
【００５６】
データ構造コンポーネントの定義およびデータ構造コンポーネントへの追加：パレットビュー１１でデータ構造の選択を行なった後で、データ構造配列をアクティブなコンポーネントビュー９に表示された任意のデータ構造の組成キャンバス１４に置くことができる。データ構造配列がデータ構造の組成キャンバス１４に置かれた場合、それが置かれたデータ構造の属性になる。
【００５７】
データ構造配列コンポーネントの定義およびデータ構造コンポーネントへの追加：パレットビュー１１でデータ構造配列の選択を行なった後で、原始データをアクティブなコンポーネントビュー９に表示された任意のデータ構造の組成キャンバス１４に置くことができる。データ構造配列がデータ構造の組成キャンバス１４に置かれた場合、それが置かれたデータ構造の属性になる。
【００５８】
原始データ要素の定義およびデータ構造コンポーネントまたはデータ構造配列コンポーネントへの追加：パレットビュー１１で原始データの選択を行なった後で、原始データをアクティブなコンポーネントビュー９に表示された任意のデータ構造またはデータ構造配列の組成キャンバス１４に置くことができる。原始データがデータ構造の組成キャンバス１４に置かれた場合、それが置かれたデータ構造の属性になる。
【００５９】
ＯＰＧアプリケーションからのコンポーネントの削除：削除するコンポーネントを選択した後で、キーボードの削除キーを押下するか、またはコンテキストメニューの「削除」を選択する。
【００６０】
２個のコンポーネント間のリンクの定義および追加：パレットビュー１１でリンクの選択を行なった後で、アクティブなコンポーネントビュー９の「始点」コンポーネントをクリックし、次いで「終点」コンポーネントをクリックする。ＯＰＧＡＥ２は、２個のコンポーネントを、「始点」コンポーネントの接続点１６から、「終点」コンポーネントの接続点まで接続する線を引く。必要に応じてリンクの両端を異なる接続ポイント１６へ移動させることができる。ＯＰＧＡＥ２により配置されたリンクは、「始点」および「終点」コンポーネントに対する適当なカテゴリ、すなわちプロセス間、プロセス対データ、またはデータ間リンクになる。接続の種類は、リンクをクリックして選択し、次いでコンポーネントプロパティビュー７の種類プロパティを変更することにより変更可能である。
【００６１】
ＯＰＧＡＥ設計の記述
好適な実施形態において、ＯＰＧＡＥ２は図８に示すようにＥｃｌｉｐｓｅプラットフォームプラグインとして実装され、モデルビューコントローラ（ＭＶＣ）フレームワークに基づいている。ＯＰＧＡＰＩグラフトランスレータ（ＧＴ）２３は、ＯＰＧアプリケーションをＯＰＧシステム５から表記エディタグラフ（ＮＥＧ）２４に変換する（この変換について本明細書に含まれるＯＰＧＡＰＩ３記述の一部として後述する）。ＯＰＧＡＥコントローラ２１は、ＮＥＧ２４をＯＰＧＡＥグラフィカルモデル２２に変換することにより、ＯＰＧＡＥビュー２０とＯＰＧＡＥコントローラ２１コンポーネントとが相互作用してＯＰＧアプリケーションおよび／またはＯＰＧアプリケーションの一部を表示媒体に描出する。好適な実施形態において、ＯＰＧＡＥビュー２０およびＯＰＧＡＥコントローラ２１は、ＥｃｌｉｐｓｅＧＥＦに基づいている。ＯＰＧＡＥグラフィカルモデル２２はまた、ＯＰＧＡＥコントローラ２１がユーザー入力を確認して、ユーザーが利用できるオプションを動的に決定できるようにする。
【００６２】
ＯＰＧＡＥビュー２０コンポーネントは、ＯＰＧアプリケーションのグラフィカルモデルをグラフィカル（例：グラフィックシンボルおよびコントロールの配列）として表示媒体上に描出する。ＯＰＧＡＥビュー２０は、完全なＯＰＧアプリケーションを、自身の構成部品に再帰的に分解可能な関係付けられた上位レベル要素の集合として示すことができる。ＯＰＧＡＥコントローラ２１は、ユーザーがグラフィックコントロールの一つを介してアプリケーションコンポーネントをより詳細に調べることを選択した旨を通知された場合、当該モデルの選択された部分を描出するようＯＰＧＡＥビュー２０に要求する。このようにして、ユーザーは表示されたＯＰＧアプリケーションまたはアプリケーションの一部を任意の所望のレベルで詳細にナビゲートすることができる。
【００６３】
ＯＰＧＡＥビュー２０コンポーネントに、ＯＰＧアプリケーションの全てまたは一部を表示媒体上に描出してＮＥＧをグラフィカルモデルに変換させることに加え、ＯＰＧＡＥコントローラ２１コンポーネントはユーザーの入力および選択を処理する役割を担う。好適な実施形態において、ユーザーの要求には、操作やデータ配列等のアプリケーション要素の生成や削除、あるいはアプリケーショ要素間の関係の変更を含んでいる。ユーザーはまた、複合データノードの属性を追加または除去して、任意のアプリケーションエンティティのプロパティを更新することができる。ＯＰＧＡＥコントローラは、ＯＰＧＡＥモデルが提示するグラフィカルモデルの機能を介してＯＰＧアプリケーションと対話する。
【００６４】
オブジェクト処理グラフアプリケーションプログラムウィンドウエディタ（ＯＰＧＡＷＥ）
機能概要
本節は、ＯＰＧＡＷＥ４の機能概要を示す。参照図面９〜１４は、ＯＰＧアプリケーションのデータ表示ウィンドウおよび表示プロパティを、アプリケーション定義の一環として、またはプログラムが実際に動作している間に編集する様子を示すウィンドウ画像である。
【００６５】
ＯＰＧＡＷＥ４は、ＷＹＳＩＷＹＧ方式のエディタを提供する。図９に示すような好適な実施形態において、エディタはＯＰＧシステム５の「ビルダー」ウィンドウから起動される。追加的にまたは代替的に、図１０に示すように、エディタは実行中のＯＰＧアプリケーションウィンドウから起動される。エディタがＯＰＧシステム５のビルダーウィンドウから起動された場合、アプリケーション操作が選択される。図９に示すような「ウィンドウエディタ」メニュー項目を用いてＯＰＧＡＷＥ４を選択する。ＯＰＧＡＷＥ４がこのように起動された場合にウィンドウおよびデータ表示プロパティになされた変更は、関連付けられたアプリケーション操作により引き続き処理される全てのトランザクションのデータに適用される。
【００６６】
実行中のアプリケーションからエディタが起動された場合、ＯＰＧシステムのアプリケーション表示ウィンドウ上のアプリケーション操作におけるトランザクションが最初に選択される（例えば図１０のトランザクション識別子リンク参照）。これにより、ＯＰＧシステム５に、現行操作におけるトランザクションデータと共にアプリケーションウィンドウを表示させる。例えば、図１１を参照するに、ウィンドウに表示されたデータが、現行ウィンドウフォーマット化プロパティに従いフォーマット化されている。現行ウィンドウフォーマット化プロパティは潜在的には３種の異なるソースがある。ウィンドウフォーマット化プロパティの第一のソースは、アクティブな操作におけるトランザクションの一部であるデータのアプリケーションまたはデフォルトデータ表示プロパティである。これは、プロパティの優先順位最低のソースである。ウィンドウフォーマット化プロパティの第二のソースは、選択された操作におけるトランザクションデータだけに適用される操作固有の表示プロパティである。これはプロパティの優先順位が次に高いソースであって、アプリケーションプロパティに優先する。ウィンドウフォーマット化プロパティの第三のソースは、アクティブな操作における選択済みトランザクションのデータだけに適用されるトランザクション固有の表示プロパティである。ＯＰＧＡＷＥ４は、これらの集合のプロパティのいずれのウィンドウおよびデータ表示フォーマット化プロパティの編集に利用することができる。
【００６７】
好適な実施形態において、ＯＰＧＡＷＥ４は、アプリケーションデータ表示ウィンドウのコントロールであるウィンドウエディタのドロップダウンリスト上のプロパティソースの１個を選択することにより、アプリケーションデータ表示ウィンドウから起動される。操作データ表示ウィンドウからウィンドウエディタを起動するためのユーザーインターフェースの好適な実施形態に関して、図１２を参照されたい。
【００６８】
図１３に示すような好適な実施形態において、ＯＰＧＡＷＥ４は、ウィンドウの組成キャンバス１４の上方に編集機能ツールバーを表示する。組成キャンバス１４内のウィンドウは、当該ウィンドウおよびデータ表示プロパティの選択されたソースを用いてウィンドウを表示する。ツールバーは、通常は従来方式のウィンドウエディタにより提供される多くの機能を提供し、これらは同様に機能する。編集セッションの間、データ表示エンティティが選択され、ツールバーアイコンをクリックすることにより１個以上のツールバー機能をこれらに適用することができる。例えば、より大きなフォントを選択することにより、フィールドに表示されたテキストをより大きくしたり、またはイタリック体にすることができる。必要に応じて、データ表示エンティティをウィンドウ内で移動させたり、および／またはビューから隠すこともできる。
【００６９】
ＯＰＧＡＷＥツールバーの好適な実施形態はまた、ウィンドウに配置して、必要に応じて大きさを変更することができる簡単なグラフィック要素、例えば線、ボックス、円、およびラベルを提供する。必要に応じてラベル内にテキストをタイプ入力することができる。
【００７０】
ツールバーの右端のデータ要素アイコンをクリックすることにより、その他の永続なデータ項目および関連付けられた表示フィールドをウィンドウおよびアプリケーションに追加することができる。データ項目として、簡単なデータ入力フィールド、スプレッドシートやワードプロセッサ文書等のファイルへの画像またはリンクであってよい。このようにウィンドウに追加されたデータ項目またはリンクは、アプリケーションの永続な部分になる。
【００７１】
ツールバー右端のアプリケーションフレームアイコンをクリックして、ファイル種類プロパティを選択することによっても、アプリケーションフレームをウィンドウに追加することができる。アプリケーションフレームは、ＯＰＧアプリケーションのコンテキスト内でアプリケーションと協働する方法を提供する。例えば、図１４に示すように、スプレッドシートをＯＰＧシステム５にロードして、アプリケーションウィンドウ上のフレーム内に表示することができる。ユーザーは次いで、スプレッドシート内のデータに変更を加えて、それらをＯＰＧデータベースに保存することができる。ユーザーは、更新されたスプレッドシートをホストシステムのファイルシステム内の元の場所に保存する旨を選択することができる。アプリケーションフレームがウィンドウに追加されたならば、当該アプリケーションはワークステーションで利用可能な筈である。ワークステーションは、アプリケーションを開始するためにブラウザを必要とする。
【００７２】
ウィンドウおよびデータ表示プロパティ編集が終了したならば、ツールバーの左端にあるフロッピー（登録商標）ディスクアイコンをクリックすることにより変更内容が保存される。
【００７３】
ＯＰＧＡＷＥ記述
図１５に示すような本発明の好適な実施形態は、動的モデルビューコントローラ（ＤＭＶＣ）２６のコンポーネントとして機能する。ＤＭＶＣ２６は、ＯＰＧアプリケーションコントローラ（ＯＰＧＡＣ）２８およびオブジェクト処理グラフアプリケーションビューワ（ＯＰＧＡＶ）２９を、ＯＰＧシステム（オブジェクト処理グラフ（ＯＰＧ）および動的グラフインタプリタ（ＤＧＬ））２６と統合することにより形成されるアプリケーション構造である。この動的アプリケーション構造は、ＯＰＧアプリケーションの実行インスタンスを明確にする。動的グラフインタプリタ（ＤＧＩ）について引き続き記述する。ＯＰＧＡＣ２８は、ユーザーその他のシステムからの入力データ、指示／選択の処理、ＯＰＧＡＶ２９を介した情報の表示または出力の起動、ＤＧＩ２７に対するアプリケーション状態遷移の起動指示、およびＯＰＧアプリケーション記述のインポートとエクスポートの制御により、アプリケーションの実行を制御する。ＯＰＧＡＣ２８は、ＤＭＶＣ２６のコントローラコンポーネントである。
【００７４】
ＯＰＧＡＶ２９は、ＤＭＶＣ２６のビューコンポーネントである。これはＯＰＧＡＣ２８からの表示／出力コマンドを受信して、アプリケーションＯＰＧを表示媒体および／または出力装置上に描出する。描出されたＯＰＧは、選択および入力コントローラを介してアプリケーションと対話する手段を提供する。これらはまた、アプリケーション状態オブジェクトを適当なコンテキストで表示して、それらのコンテンツを閲覧して更新する方法を提供する。
【００７５】
ＤＭＶＣ２６の他のコンポーネントであるＯＰＧシステム２７は、モデルコンポーネントとして機能する。これは、ＯＰＧＡＣ２８およびＯＰＧＡＶ２９と統合されている。ＯＰＧは、アプリケーションの複雑な処理ステップおよびデータを定義して、アプリケーションの永続および過渡的なデータの格納場所に提供する。ＤＧＩは、ＯＰＧで定義されたアプリケーションを実行すべく、ＯＰＧＡＣ２８およびＯＰＧＡＶ２９により呼び出される機能を提供する。
【００７６】
本発明の一つの好適な実施形態（図１）は、ＯＰＧＡＣ２８およびＯＰＧＡＶ２９をＯＰＧシステム２７と統合して、ジャカルタストラッツ（Jakarta Struts）ＷＥＢアプリケーションフレームワークに基づく動的モデルビューコントローラ（ＤＭＶＣ）５アプリケーション構造を形成する。ＤＭＶＣ２６は、パーソナルコンピュータ（ＰＣ）等のコンピュータ装置上で表示を行なうことができる。この好適な実施形態に組み込まれた他の技術として、カスケーディングスタイルシート（ＣＳＳ）、動的ＨＴＭＬ（ＤＨＴＭ）、Ｊａｖａ（登録商標）文書モデル（ＪＤＯＭ）、Ｊａｖａ（登録商標）サーバページ（ＪＳＰ）、ストラッツタイル等が含まれる。無論、各種の他のアプリケーションフレームワークおよび技術を用いて他の実施形態を実装してもよい。
【００７７】
本好適な実施形態において、ＯＰＧＡＣ２８制御機能は、ストラッツに基づくアクションおよびフォームクラスを用いて行なう。アクションクラスは、ユーザー選択、指示および入力データを解釈し、ＤＧＩ２７と対話し、これにコマンドを発行して、アプリケーション状態オブジェクトを更新し、状態の確認を実行する。また、アプリケーション内のＯＰＧアプリケーション状態オブジェクトおよびのプロセス制御オブジェクトに基づいて、ＯＰＧＡＣ２８はＤＧＩにアプリケーション状態を次のアクティブな操作に関連付ける。これらの機能の実行は、従来のソフトウェアアプリケーションを実行させることと類似している。Ｆｏｒｍクラスは、ＯＰＧデータオブジェクトへの標準Ｊａｖａ（登録商標）Ｂｅａｎインターフェースアクセスを実装して、ＯＰＧＡＣ２により評価すべくユーザー入力データへのアクセスを提供する。
【００７８】
ＯＰＧＡＷＥ４は、ＤＭＶＣ２６のアプリケーションセッショントランザクション制御フローを特化させて、ＯＰＧアプリケーションウィンドウのデータ表示プロパティをユーザーが修正して、変更を固定できるようにする。ＤＭＶＣ２６のモデルコンポーネントとして機能するＯＰＧシステム５の観点から、表示プロパティを保存することは、他の任意のデータプロパティの保存と同様である。この好適な実施形態に組み込まれた技術には、ジャカルタストラッツＷＥＢアプリケーションフレームワーク、カスケーディングスタイルシート（ＣＳＳ）、動的ハイパーテキストマークアップ言語（ＤＨＴＭＬ）、Ｊａｖａ（登録商標）文書モデル（ＪＤＯＭ）、Ｊａｖａ（登録商標）サーバページ（ＪＳＰｓ）、およびストラッツタイルが含まれる。
【００７９】
ＯＰＧＡＷＥ４は、ＤＭＶＣ２６のコントローラコンポーネントＯＰＧＡＣ２８およびビューコンポーネントＯＰＧＡＶ２９の両方を拡張する。ＯＰＧＡＣ２８は、二通りの仕方で拡張される。第一のものは、ビルダーウィンドウまたは実行中アプリケーションのウィンドウのいずれかから、上述のように、ＯＰＧＡＷＥ４を起動させる要求に応じるべくＯＰＧＡＣ２８に機能が追加された。ＯＰＧＡＣ２８がＯＰＧＡＷＥ４に対する要求受信したならば、ＯＰＧＡＶ２９に指示して、動的リアルタイムＯＰＧＡＷＥ４を生成させ、それをユーザーのインターネットブラウザへ送信させる。好適な実施形態において、ＯＰＧＡＷＥ４は、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔで書かれたユーザーイベントプロセッサ３１、アプリケーションウィンドウデータ要素、またはＣＳＳとして符号化されたデータ要素スタイルプロパティ３２およびＯＰＧＡＷＥ４ツールバーコントロール３３を組み合わせたＪＳＰである。ＪＳＰは、ＤＨＴＭＬページ内に編集されて、インターネットアプリケーションサーバによりユーザーのブラウザへ送られる。ＯＰＧＡＣ２８に対するもう一方の拡張は、ＯＰＧＡＷＥ４のユーザーイベントプロセッサ３１コンポーネントである。ユーザーイベントプロセッサ３１は、それがＯＰＧＡＣ２８の直接的なコンポーネントでなく、ユーザーのＰＣその他のエンドユーザーコンピュータで実行される点で、ＯＰＧＡＣ２８に対する論理的拡張である。ユーザーイベントプロセッサ３１は、マウスクリックおよびマウス移動等のユーザーイベントに応答する機能の集合体であり、ユーザーのインターネットブラウザにより検出され、データ要素スタイルプロパティ３２における定義に変更を加える。
【００８０】
ＯＰＧＡＶ２９はまた、二通りの方法で拡張される。第一に、特別なＯＰＧＡＷＥ４ＪＳＰをＯＰＧＡＶ２９に含める。第二に、ＣＳＳとして符号化されたデータ要素スタイルプロパティ３２、およびＯＰＧＡＷＥ４のコンポーネントであるエディタツールバーコントロール３３は、ビュー機能を実行してユーザーのＰＣ上で稼動するため、ＯＰＧＡＶ２９の論理的拡張である。
【００８１】
図１６に、ＯＰＧアプリケーションウィンドウに表示される全てのデータ要素（複合または基本）に対して定義できる好適なアプリケーションデータ表示プロパティを示す。各データ要素は、２個のコンポーネントすなわち名称３４および値３５（図１７に示す好適な実施形態はまた、ＯＰＧＡＷＥウィンドウ上のデータ要素のコンポーネントを識別する）を有し、各コンポーネントはＣＳＳストリングとして符号化された表示プロパティの集合を有している。表示プロパティ３６の例として、高さ、長さ、位置、色、およびフォントが含まれる。
【００８２】
表示プロパティ３６は、アプリケーションのＯＰＧ３７における永続なデータ定義の一部である。好適な実施形態において、これらのプロパティには３個の集合、すなわちアプリケーション、操作、およびトランザクションがあり、これらはＯＰＧＡＶ２９で用いるべくＤＧＩにより１個の集合に合成される。ＤＧＩ６は、全てに原始データ要素についてＯＰＧアプリケーション状態データインスタンス３７に保存された表示プロパティ３８およびセキュリティ制約３９を提供する。原始データ表示プロパティは、要素が描出されるディスプレイ上の位置、要素の長さと高さ等を含んでいる。セキュリティ制約は、要素を表示すべきか否か、あるいは編集可能であるか否か、等を含んでいる。
【００８３】
表示およびセキュリティプロパティは、この好適な実施形態におけるアプリケーション、操作、およびアプリケーションインスタンスの３段階で定義することができる。アプリケーションインスタンスプロパティの優先順位が最も高い。これが存在する場合、アプリケーションおよび操作プロパティに優先される。操作プロパティが次に高い優先順位を有する。これが存在する場合、アプリケーションプロパティに優先される。アプリケーションインスタンスプロパティは、アプリケーションを実行する単一のインスタンス用のアプリケーションデータに適用される。操作プロパティは、アプリケーションを実行する全てのインスタンス、但し特定操作のコンテキスト内にあるものだけに適用される。アプリケーションプロパティ４３は、アプリケーションのコンテキスト内、すなわちアプリケーションの全てのインスタンスに適用される。表示およびセキュリティプロパティ合成機能は、アプリケーションインスタンスの現在状態（コンテキスト）に基づいて、使用するプロパティを決定する。
【００８４】
ユーザーは、ＯＰＧアプリケーションにオプションのデータ要素、または線やボックス等のグラフィカル要素を追加することができる。ＯＰＧシステム５は、そのような要素を永続化することが可能な各々のウィンドウに対してオプションのデータ構造を提供する。これらオプションの要素は、所定のＯＰＧアプリケーションウィンドウ要素を編集するのと同様に編集可能である。
【００８５】
ユーザーが図１６に示すようなＯＰＧアプリケーションウィンドウを編集したならば、変更が処理されてリアルタイムで直ちに表示される。マウスのクリック、左ボタンを押した状態でのマウスの移動、あるいはカラープルダウン等のエディタツールバーコントロール３３の制御要素のクリック等のユーザー操作は、ユーザーのインターネットブラウザによりユーザーイベントとして受け取られる。ブラウザは次いで、当該イベントを処理すべくユーザーイベントプロセッサ３１の適当な機能（群）を呼び出す。ユーザーイベントプロセッサ３１は、ユーザーセッションのコンテキスト、すなわちユーザーが何を既に行なったか、に応じてイベントを解釈する。例えば、ユーザーがデータ要素名または値コンポーネントをクリックした場合、ユーザーイベントプロセッサ３１は当該イベントをコンポーネントの選択と解釈する。選択に応答して、ユーザーイベントプロセッサ３１は、選択されたコンポーネントのＣＳＳ内の値を、選択の境界が消去されるように変更し、新たに選択された要素のＣＳＳ内の値を、その選択境界が表示されるように変更して、選択され要素へのポインタを保存する。図１７に示す好適な実施形態は、選択されたデータ値要素を示す。要素が選択されたならば、ツールバー上の編集機能またはサイズ変更や移動操作を当該特定要素に適用することができる。編集機能の処理は、共通のパターンに従う。各々の場合において、ユーザーイベントプロセッサ３１は、ユーザーイベントを編集要求機能に変換して、データ要素スタイルプロパティ３２を修正することにより、直ちに変更を表示させる。
【００８６】
ユーザーがＯＰＧアプリケーションウィンドウの内容を編集する過程で、変更内容は、それらがＯＰＧアプリケーションで永続化されるまで、ユーザーのローカルＰＣに残されている。ユーザーは随時、直近に永続化されたウィンドウ状態に戻すことができ、これは基本的にアンドゥ機能である。
【００８７】
データの可視性および編集プロパティエディタ機能
データ可視性および編集プロパティエディタは、図１１に示すようなアプリケーション表示ウィンドウから、あるいは図１３に示すようなＯＰＧＡＷＥウィンドウから、左端のアイコン（図１３に示す）を介して）を介してアクセス可能である。図１８に示すような、データ可視性および編集エディタの好適な実施形態は、データ構造のツリー形式表示およびアクティブな操作のトランザクションのデータの一部である要素を提供する。各々の構造は、自身の名称の右側に２組の選択コントロールを有する。第一の組は、「ｄ」、「ｅ」および「ｃ」とラベル付けされた３個のチェックボックスを有する。「ｄ」ボックスは、当該項目がアプリケーションデータ表示ウィンドウおよびＯＰＧＡＷＥウィンドウに表示されるか否かを制御する。「ｅ」ボックスは、当該項目がアプリケーションデータ表示ウィンドウ内で編集可能であるか否かを制御する。「ｃ」は、当該項目の子属性を表示するか否かを制御する。これは、データ構造だけに適用される。第二の組は、「ｏ」および「ｔ」とラベル付けされた２個の選択アイコンを有する。選択アイコンは、クリックされた際に「＋」から「Ｘ」へ切り替わる。「＋」アイコンは、当該項目が適用されないこと、「Ｘ」は適用されることを示す。「ｏ」を選択した場合、第一のコントロールの組におけるデータ可視性および編集の選択が、選択された動作内だけで適用されることを示し、「ｔ」を選択した場合、トランザクションだけに適用されることを示す。いずれもチェックされなかった場合、可視性および編集の選択がアプリケーション全体を通じて特定のデータ項目に適用されることを意味する。
【００８８】
データ可視性編集プロパティエディタ記述
好適な実施形態にはＤＭＶＣ２６のインスタンスが含まれる。エディタは、実行中のＯＰＧアプリケーションウィンドウ、またはＯＰＧＡＷＥウィンドウから選択することができる。図１９にて図示するように、エディタは、データ可視性および編集プロパティエディタビュー３８コンポーネントを含んでおり、ＯＰＧＡＶ２９を特化させる。可視性および編集プロパティは、ＯＰＧアプリケーションにおいて自身に関連付けられたデータ要素のブールプロパティである。エディタを用いて、プロパティを変更してＯＰＧアプリケーション内で永続化させることができる。
【００８９】
ＯＰＧＡＷＥ４、並びにデータ可視性および編集プロパティエディタビュー３８により、アプリケーションの開発者、ユーザー、および設計専門家がアプリケーションのデータ表示ウィンドウの視覚的態様を改造することができる。エディタにより、変化する要件に対応すべく、開発のあらゆるフェーズを通じてアプリケーションのユーザーインターフェースを短期間に開発および更新することが可能になる。アプリケーションが実際に使用中である場合、ユーザーおよびドメイン専門家は、固有のニーズに対応すべく、ウィンドウの視覚的態様を変更したり、および／または、当該アプリケーションにより表示されるデータを追加することができる。また、アプリケーションの永続なデータにデータ要素を追加することもできる。変更は、以後のアプリケーションの全ての実行に、または当該アプリケーションの１個のコンポーネントを実行するただ一つのインスタンスに適用するように行なうことができる。これらの実行時編集機能は、ＯＰＧシステム５の適用性を、研究所情報の管理等、データ要件に対する随時の変更が日常的であるドメインへ拡張する。全てのドメインにおいて、ユーザーは、より高度な実用性を実現すべく使用する情報システムと対話することが可能である。
【００９０】
オブジェクト処理グラフアプリケーションプログラムインターフェース（ＯＰＧＡＰＩ）
好適な実施形態において、ＯＰＧＡＰＩ３は、表記エディタグラフ（ＮＥＧ）４１およびグラフトランスレータ（ＧＴ）４３を含んでいる。これらのコンポーネントは、図２０に、完全な編集システムのコンテキストで表示される。当該コンポーネントは、上述のＯＰＧＡＥ２が必要とする支持機能を提供すべく特に設計されている。ユニバーサルモデリング言語（ＵＭＬ）等、他の表記に基づく代替的なエディタ用の他のＯＰＧＡＰＩは、本実施形態について記述しているものと同一の実装フレームワークを用いて可能である。
【００９１】
ＧＴ４３およびＮＥＧ４１は、上述のＯＰＧＡＥ２の編集機能をサポートする。表記エディタグラフィカルモデル３９は、ＯＰＧＡＥ２により生成される。好適な実施形態において、これはＯＰＧアプリケーションのグラフィカル表現をユーザーのモニタ上に描出するために必要なグラフィカルソフトウェア要素を含んでいる。
【００９２】
ＯＰＧＡＥ編集セッションは、ユーザーが編集したいアプリケーションを選択した場合に開始される。選択したことにより、ＯＰＧＡＥ２はＧＴ４３に対しアプリケーションのＯＰＧ４２をＮＥＧ４１に変換するよう指示する。初期変換は、ＯＰＧアプリケーション用のＮＥＧ４１の部分的に実装された基本インスタンスを生成する。続いて、ユーザーがＯＰＧアプリケーションのグラフィカル表現を操作して変更するに従い、ＯＰＧＡＥ２はアプリケーションに対するユーザーのビューと整合性を保ちながら、ＮＥＧ４１と相互作用してノードやエッジの追加・削除を含む動作を行なう。ユーザーがＯＰＧＡＥ２に対し、変更を保存するよう指示した場合、ＯＰＧＡＥ２はＧＴ４３に対し、ＮＥＧ４１になされたあらゆる変更を、永続なＯＰＧアプリケーションの最新版に変換するよう指示する。ＯＰＧＡＥ２はまた、ＧＴ４３に対し、ＮＥＧ４１を永続化された最新版に変換するよう指示することもできる。
【００９３】
ＯＰＧ４２およびＮＥＧ４１は共に、有向グラフの集合とツリーの集合とを含む有向グラフで構成された複合層をなすグラフである。グラフ内の各ノードは、有向グラフおよびツリーに属する。各ノードが属する有向グラフは、当該グラフ内の他のノードとの関係を定義する。当該ノードが属するツリーは、それが属する複合（composition）階層を定義する。１個のノードが複数の複合階層だけでなく複数の有向グラフに属していてもよい。ＯＰＧとは異なり、ＮＥＧ４１は永続でない。すなわちＯＰＧ４２からＮＥＧ４１を生成するためにＧＴ４３が必要とする特別なＮＥＧ要素はＯＰＧ４２において永続である。ＮＥＧ４１の基本的な目的は、特定の編集セッションの状態を維持することであり、関連付けられたセッションが有効な期間だけ存在する。編集が進行するに従い、ＯＰＧ４２のノードおよびエッジコンポーネントに対応するＮＥＧコンポーネントはインスタンス化されるか、または削除される。ＮＥＧコンポーネント機能は、エディタ指向機能用に最適化されている。一方、ＯＰＧコンポーネントは、（実行中の）アプリケーションを解釈すべく最適化されており、いくつかのケースでは、特にデータ変換および複雑なデータ構造へのアクセスに関して、ＮＥＧ４１がＯＰＧ４２内のサブグラフの簡素化された、またはより概念的な、ビューをサポートしている。
【００９４】
ＯＰＧデータノードは、データ構造の参照等、実行したいデータアクセスの詳細な定義を含んでいる。図２１にそのような参照の例を示す。この場合、ＯＰＧ４２は、ＤＧＩにより無視されるが、ＧＴ４３によりＮＥＧ４１内のデータノードＸからデータノードＹへの概念的参照（すなわち表記エディタ参照エッジ４５）を構築すべく用いられる表記エディタ参照エッジ４４を含んでいる。ＯＰＧＡＥ２は、正しい種類のデータ構造間のリンクをユーザー４６に識別させる色で描出する表記エディタグラフィカルモデル３９をＮＥＧ４１から生成する。表記エディタ参照エッジ４４はＯＰＧ４２内で永続である。特別な表記エディタ概念を表わす他のグラフィカル要素がＯＰＧ４２により提供される。
【００９５】
ＯＰＧ４２はまた、ＯＰＧＡＥ表記エディタグラフィカルモデル３９内の要素の表示プロパティを、ＯＰＧアプリケーション内の特別な構造として保存する機能を提供する。ＧＴ４３は、変換の最中に必要に応じてグラフ間で表示プロパティを移動させる。これにより、ＯＰＧＡＥ２が、編集セッションの間でＯＧＰアプリケーションのグラフィカル表現の要素配置を維持することが可能になる。表示プロパティは、グラフィカル要素のサイズと形状および組成キャンバス上での位置を含んでいる。
【００９６】
ＧＴ４３は、グラフィカルモデルになされた変更をユーザーが保存する都度、ＯＰＧ４２とＮＥＧ４１が整合していることを保証する。ＧＴ４３は、２個のグラフ構造の相違に基づいてＤＧＩに対する追加、削除、および更新コマンドを生成する。
【００９７】
ＧＴ４３は、ＯＰＧ４２とＮＥＧ４１の詳細設計を相互に隔離（insulates）する。従って、どちらかの構造になされた変更の影響は通常、ＧＴ４３に限定される。
【００９８】
他のアプリケーションシステムがＯＰＧＡＰＩ３を用いて、ＯＰＧアプリケーションの生成、修正、および削除を行なうことができる。また、ＯＰＧアプリケーションを他の電子形式、例えばＨＴＭＬおよび／またはＸＭＬで描出すべく用いることができる。
【００９９】
ＯＰＧＡＰＩ３の機能を以下に２つのグループ、すなわちＧＴ４３により実装されるもの、およびＮＥＧ４１により実装されるものとして列挙する。一般に、ＧＴの機能はグラフ全体に影響を及ぼすのに対し、ＮＥＧの機能はグラフの要素またはサブグラフに影響を及ぼす。各々の機能、および必要なパラメータ関する簡単に記述が含まれている。アプリケーションのＯＰＧまたはＯＰＧ４２のサブグラフの現在状態および当該機能に適用されるＯＰＧ規則が与えられた場合に、ある機能が実行可能であるか否かを示すチェック機能が提供されている。これにより、エディタはユーザーに対し視覚的な手掛かりを提供することが可能になる。アプリケーション名で始まり、関心対象ノードに到るＯＰＧ内のノード名がこれに続くドット表記により名称パラメータが定義されている。ＯＰＧアプリケーションのノードの構造およびそれらの命名規則が、オブジェクト処理グラフシステム特許出願に記載されている。以下は、ノード名「ｐａｙｒｏｌｌ．ｄｅｐａｒｔｍｅｎｔ．ｅｍｐｌｏｙｅｅ．名」の例である。
【０１００】
ＧＴ関数（アプリケーションの全体グラフに影響を及ぼす）
アプリケーション（アプリケーション名）の生成：アプリケーションを生成して指定された名称を与える。アプリケーションは、アプリケーションノードにより表現される。アプリケーション名はＯＰＧシステム内で一意でなければならない。
【０１０１】
アプリケーション（アプリケーション名）の削除：名称で指定されたアプリケーションを削除する。当該アプリケーションの一部であるノードの全てもまた削除される。実行中のインスタンスを有するアプリケーションを削除することはできない。
【０１０２】
アプリケーション（アプリケーション名）のロード：指名されたアプリケーションを以下に述べる機能を提供するＮＥＧ４１へ変換する。
【０１０３】
アプリケーション（アプリケーション名）の保存：当該アプリケーションのＮＥＧ４１になされたあらゆる変更を永続変更としてＯＰＧ４２に保存する。
【０１０４】
ＮＥＧ関数（特定のプロセスノード、データノードまたはサブグラフに影響を及ぼす）
プロセスノード（親ノード名、ノード名、プロセスノード種類）の追加：プロセスノードの種類により指定された新規の操作または報告ノードを生成して、当該プロセスノードの親ノードの集合に追加する。親ノードは、プロセスノードでなければならない。ノード名は、親のプロセスノード集合内で一意でなければならない。
【０１０５】
プロセスノード（親ノード名、プロセスノード種類）の追加可能性：指定された種類のプロセスノードを指名された親に追加可能であるか否かを判定する。この関数は真または偽の応答を返す。
【０１０６】
プロセスノード（親ノード、ノード名）の削除：指名された親のプロセスノードの集合から指名されたノードを削除する。ＯＰＧ４２から当該ノードおよびこれに関連付けられた全てのノード、並びにこれに接続する全てのエッジを削除する。
【０１０７】
プロセスノード（親ノード名、ノード名）の削除可否：指名されたプロセスノードを、指名された親のプロセスノードの集合から削除できるか否かを判定する。この関数は真または偽の応答を返す。
【０１０８】
データ定義ノード（親ノード名、ノード名）の削除：指名されたノードを、指名された親のデータノードの集合から削除する。ＯＰＧ４２から当該ノードおよびこれに関連付けられた全てのノード、並びにこれに接続する全てのエッジを削除する。
【０１０９】
データ定義ノード（親ノード名、ノード名）の削除可否：指名されたノードを、指名された親のデータノードの集合から削除できるか否かを判定する。この関数は真または偽の応答を返す。
【０１１０】
データ定義ノード（親ノード名、ノード名、データノード種類）の追加：指定された名称および種類のデータノードを生成する。指名された親がデータノードである場合、データノードは複合データノード（子ノードを持つノード）または原始データノード（子ノードを持たないノード）であってよい。指名された親がプロセスノードである場合、データノードは複合データノードでなければならない。
【０１１１】
データ定義ノード（親ノード名、ノード名）の追加可否：指名されたデータノードを、指名された親ノードから削除可能であるか否かを判定する。この関数は真または偽の応答を返す。
【０１１２】
ノードプロパティ（ノード名、プロパティ名、新規プロパティ値）の修正：指定されたノードの指名されたプロパティの値を新規プロパティ値に設定する。
【０１１３】
ノードプロパティ（ノード名、プロパティ名、新規プロパティ値）の修正可否：指名されたノードの指名されたプロパティの値を新規プロパティ値に設定できるか否かを判定する。この関数は真または偽の応答を返す。
【０１１４】
エッジ（始点ノード名、終点ノード名、エッジ名）の追加：指定された名称を有する新規エッジを始点ノード外向きエッジの集合に生成して、当該ノードの内向きエッジの集合にこれを追加する。終点および始点ノード種類に基づいて、ＯＰＧエッジカテゴリ、すなわちプロセス対プロセス、プロセス対データ、またはデータ対データのうち一つのエッジを、自動的に生成する。
【０１１５】
エッジ（始点ノード名、終点ノード名、エッジ名）の追加可否：新規エッジを始点ノードの外向きエッジの集合および終点ノードの内向きエッジに追加可能であるか否かを判定する。この関数は真または偽の応答を返す。
【０１１６】
エッジ（始点ノード名、終点ノード名、エッジ名）の削除：指名されたエッジ、および「始点」ノードと「終点」ノードの自身への参照を削除する。
【０１１７】
エッジ（始点ノード名、終点ノード名、エッジ名）の削除可否：指名されたエッジ、「始点」ノードおよび終点ノード参照を削除可能であるか否かを判定する。この関数は真または偽の応答を返す。
【０１１８】
エッジ種類（始点ノード名、終点ノード名、エッジ名、エッジ種類）の修正：指名されたエッジ種類を指定されたエッジ種類に変更する。定義されたエッジの種類は、指名されたエッジのカテゴリについて正当でなければならない。以下は、各々のエッジカテゴリについて正当なエッジ種類である。
プロセス間エッジ
無条件表示
無条件待ち行列
無条件バッチ
条件付表示
条件付待ち行列
条件付バッチ
プロセス対データエッジ
データ生成
データ間エッジ
データ移動
データ取得
データ統合
データ分割
データ照会
計算に利用
データ結合
【０１１９】
エッジ種類（始点ノード名、終点ノード名、エッジ名、エッジ種類）の修正可否：指名されたエッジの種類を、指定されたエッジ種類に変更可能であるか否かを判定する。定義されたエッジ種類は、指名されたエッジのカテゴリについて正当でなければならない。この関数は真または偽の応答を返す。
【０１２０】
エッジプロパティ（エッジノード名、プロパティ名、新規プロパティ値）の修正：指定されたエッジの指名されたプロパティの値を新規プロパティ値に設定する。
【０１２１】
エッジプロパティ（ノード名、プロパティ名、新規プロパティ値）の修正可否：指名されたエッジの指名されたプロパティの値を、指定された新規プロパティ値に変更可能か否かを判定する。この関数は真または偽の応答を返す。
【０１２２】
好適なＯＰＧアプリケーション開発システム（ＯＰＧＡＤＳ）生成プロセス
以下は、ＯＰＧＡＤＳを生成するための好適なプロセスの記述であり、そのようなシステムは定義済みであって上に述べられている。このプロセスの実施形態が含まれているが、他のものもまた可能である。
【０１２３】
ＯＰＧＡＤＳがその一部をなすＯＰＧシステム５の実施形態の存在を仮定すれば、ＯＰＧＡＤＳシステムを構築して実行するためのハードウェア／オペレーティングシステムプラットフォーム、プログラミングフレームワーク、データベースおよび／またはファイルシステム、および表示媒体の初期集合が選択される。これらの選択された項目は、ＯＰＧシステムの実施形態の構築に用いたものと同一であるか、または互換性を有していなければならない。一つの好適な実施形態において、インテル使用コンピュータハードウェアで稼動するＷｉｎｄｏｗｓ（登録商標）ＸＰオペレーティングシステムを用いる。また、サンマイクロシステムズのＪａｖａ（登録商標）プログラミング言語、Ｅｃｌｉｐｓｅ財団からのＥｃｌｉｐｓｅツールプラットフォーム、Ｅｃｌｉｐｓｅ財団からのＧＥＦおよびＤｒａｗ２Ｄフレームワーク、ジャカルタストラッツフレームワーク、Ｊａｖａ（登録商標）サーバページ（ＪＳＰ）、およびカスケーディングスタイルシート（ＣＳＳ）を利用してもＯＰＧＡＤＳシステムを開発することができる。この好適な実施形態は、プログラミングを変更することなく、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ、Ｌｉｎｕｘ、Ｓｏｌａｒｉｓ８、ＡＩＸ、ＨＰ−ＵＸ、およびＭＡＣ−ＯＳＸオペレーティングシステムを実行しているハードウェアプラットフォーム上で実行される。上のオペレーティングシステム、アプリケーションプラットフォーム、およびプログラミング言語ツールは、本発明の好適な実施形態の生成および実行に用いることができる開発および運用システムの単に一つの可能な構成しか表わさない点に注意を要する。
【０１２４】
添付の図面と合わせて、本発明の上述の概要および説明を用いて、ＯＰＧＡＤＳの３種の主要ソフトウェアコンポーネントを、以下の段落で記述するように、好適な実施形態に実装することができる。他の実装もまた可能である。ＯＰＧシステム５とＯＰＧＡＥ２とのインターフェースを実現するのに必要なため、最初にＯＰＧＡＰＩ３を実装しなければならない。これを行なうため、ＧＴ４３の機能を包含する１個以上のクラスおよび適切なクラス階層が定義されている。
【０１２５】
ＯＰＧＡＥ２を実装すべく、ＧＥＦおよびＤｒａｗ２Ｄフレームワークに基づいて、モデル、ビュー、およびコントローラ要素を表わす３群のクラスが定義されている。図２２に、これらのクラスの好適な構成を示す。
【０１２６】
ＯＰＧＡＶ２９コンポーネントは、図２２の形態（Ｆｉｇｕｒｅ）クラスにより表され、ＧＥＦ形態クラスの拡張である。形態クラスはユーザーに対しドメインの表記を提示する。図２２に示す好適な実施形態において、ビューは５種類のクラス、すなわちデータ形態、構造化データ形態、データ配列形態、構造化データ配列形態、および構造化操作形態により実装される。
【０１２７】
ＯＰＧＡＤＳコントローラコンポーネントは４組のクラス、すなわちエディタ、編集部分（ＥｄｉｔＰａｒｔ）、編集ポリシ（ＥｄｉｔＰｏｌｉｃｙ）、およびコマンドにより実装される。好適な実施形態において、単一のエディタクラスおよび５種類の編集部分クラス、すなわちデータ部分（ＤａｔａＰａｒｔ）、データ配列部分（ＤａｔａＡｒｒａｙｐａｒｔ）、構造化データ部分（ＳｔｒｕｃｔｕｒｅｄＤａｔａＰａｒｔ）、構造化データ配列部分（ＳｔｒｕｃｔｕｒｅｄＤａｔａＡｒｒａｙＰａｒｔ）、および構造化動作部分（ＳｔｒｕｃｔｕｒｅｄＯｐｅｒａｔｉｏｎＰａｒｔ）がある。また、３種類の編集ポリシクラス、すなわち要素コンポーネント編集ポリシ（ＥｌｅｍｅｎｔＣｏｍｐｏｎｅｎｔＥｄｉｔＰｏｌｉｃｙ）、要素コンテナ編集ポリシ（ＥｌｅｍｅｎｔＣｏｎｔａｉｎｅｒＥｄｉｔＰｏｌｉｃｙ）、および要素ＸＹレイアウト編集ポリシ（ＥｌｅｍｅｎｔＸＹＬａｙｏｕｔＥｄｉｔＰｏｌｉｃｙ）がある。更に、５種類のコマンドクラス、すなわち追加コマンド、接続コマンド、生成コマンド、削除コマンド、および制約設定コマンドがある。
【０１２８】
モデルコンポーネントは、２組のクラス、すなわちグラフィカルモデルおよびＯＰＧモデルにより実装される。５種類のグラフィカルモデルクラス、すなわちデータ、データ配列、構造化データ、構造化データ配列、構造化操作クラスがある。３種類のＯＰＧモデルクラス、すなわちネットワークノード、ネットワークリンク、およびユーザーネットワークがある。
【０１２９】
好適な実施形態において、また上で述べたように、ＯＰＧＡＷＥ４はＯＰＧＡＣＶの拡張として実装される。これにより、実行中のＯＰＧプログラムと直接インターフェースを持つことが容易になる。ＯＰＧＡＷＥ４のエディタ機能は、ＯＰＧＡＣＶのセッション動作クラスの拡張であるエディタクラスにより実装される。エディタツールバーは、ＣＳＳスタイルシートにより実装される。ＯＰＧＡＣＶのアプリケーションデータ表示ＪＳＰおよびＣＳＳスタイルシートを用いて、ＯＰＧＡＷＥ４のＷＹＳＩＷＹＧエディタ内のアプリケーション用データを表示する。
【０１３０】
最後に、好適な実施形態において、ＯＰＧアプリケーションウィンドウ内でユーザーがアプリケーションフレームを定義できるようにするＯＰＧ特徴を、以下のように実装することができる。ＯＰＧＡＷＥ４において、ウィンドウ内でフレームを定義するためにフレーム定義オプションが必要とされる。ユーザーは、アプリケーションを意味するファイル種類を定義する。実行時において、ユーザーはフレームをクリックすることによりアプリケーションを開始し、それによりインターネットエクスプローラブラウザにアプリケーションを開始させる。ユーザーがプログラムを終了させたならば、ユーザーは更新されたファイルをＯＰＧデータベース内の過渡的な場所に保存することができる。ＯＰＧクラスおよびＤＧＩ関数を実装してこれらの機能を実行することができる。また、この特徴をサポートするために、小規模なＪａｖａ（登録商標）プログラムを実装しなければならない。当該プログラムは、自身のスレッド上で動作して、特別なＯＰＧ場所においてアプリケーション変更を保存する旨のユーザー要求を定義する命令を周期的に探す。そのような命令が見つかったならば、関連付けられたファイルをローカルなＯＰＧ位置から元のソース位置へ移動させる。
【０１３１】
オブジェクト処理グラフ記述
ＯＰＧ３７は、完全なアプリケーション開発および実行環境であるＯＰＧシステム５の定義コンポーネントである。他のコンポーネントには、ＯＰＧ３７により定義されたアプリケーションを解釈または実行するＤＧＩと、ＯＰＧ３７を生成および修正するグラフィカルユーザーインターフェースを含んでいる。
【０１３２】
ＯＰＧの好適な実施形態は、プログラムの実行に伴い解釈される（チューリング完全である）コンピュータ言語とみなすことができる。ＯＰＧ３７は、過渡的および永続なコンピュータメモリに保存される。ＯＰＧ３７は、関係テーブル、階層テーブル、ｎ次元データ配列、スプレッドシート、グラフィカルモデル、および３次元物理モデル含む、但しこれに限定されない、任意のデータ構造を保持することができる。これらのデータ構造は、関係データベースシステムでは一般的なブロブ（blobs）としては格納されず、元の構造および内部関係を反映する特別なＯＰＧ構造で保存される。ＯＰＧプロセスおよび制御構造は、アプリケーション内での永続および過渡的データの確認、変換および表示の順序およびタイミングに対する制御を行なう。ＯＰＧ構造はまた、数学的公式、正規表現（文字データまたは数量と文字データの混合の場合）および完全なアルゴリズムを定義することができる。
【０１３３】
アプリケーションのＯＰＧ３７は、コンピュータ端末または静的出力媒体、例えば紙に描出することができる。対話型の媒体に表示されたＯＰＧデータ、プロセスおよび制御構造は編集することができる。従来のソフトウェア開発システムと異なり、アプリケーションのＯＰＧ３７を編集することは、コンパイルおよびインストールする必要があるコードを生成しない。その代わりに、変更は直ちに行なわれて発効する。変更は、ＤＧＩが解釈（アプリケーションを実行）している最中であっても、行なうことができる。大規模で複雑な、企業横断的アプリケーションシステムを短期間に開発して長期にわたり維持を行なうためには、アプリケーションを随時安全に変更できる能力が要求される。
【０１３４】
ＯＰＧ３７のアプリケーション全実行状態情報がアプリケーション状態オブジェクトに保持されている。ＤＧＩは、保持するアプリケーション状態情報を変更することにより、ＯＰＧ３７に対して作用する。アプリケーション状態情報は、任意の永続なデータオブジェクトを含むことができる。ＤＧＩは、複数のアプリケーション状態に同時に作用して、アプリケーション状態オブジェクトの組合せ同士で状態情報を統合または分割することができる。
【０１３５】
ＯＰＧ３７は、アプリケーションにおける全ての永続および過渡的データ変更の監査証跡情報を原始データレベルで保持する。監査証跡情報は、表示コントロールを介して、ユーザーインターフェース上に表示すべく、またはアプリケーションのプロセスおよびデータフローの更なる更新および操作のために、容易に取得可能である。
【０１３６】
長短両方のトランザクションでなされた変更を定義する監査情報が保持されていて、アプリケーションの永続なデータになされた全ての変更について追跡される。長いトランザクションは、システムが全ての永続なデータになされた変更の組織化、制御、および追跡を行なうことを可能にする。このような変更は、多数の作業セッションに跨って長期間（数日または数週間）にわたり生じる場合がある。一方、短いトランザクションは、システムとの１回のユーザーセッションまたは対話の間に生起する。長短両方のトランザクション情報は、システムのグラフィカルユーザーインターフェースを介して、アプリケーション内で操作および表示に直ちに利用できる。長いトランザクションの追跡はまた、アプリケーションインターフェースを介して、トランザクションの任意の時点でのロールバックを容易にし、トランザクションの削除（監査証跡と共に）を自動的に行なうことができる。ユーザーによるアプリケーション内の全ての機能およびデータへのアクセス制御は、システムインターフェースを通じて利用できる。これには、各ユーザー向けのアプリケーションの一部として定義された各々の原始データ項目に対する個別アクセス権（読み出し、書込み、ロールバック）が含まれている。
【０１３７】
ユーザーインターフェースを介して入力または変更されたデータに加え、システムの実施形態もまた、他のシステムから任意のデジタルフォーマットでアプリケーションプロセスへの入力データを受け付ける。
【０１３８】
好適な実施形態にはＧＵＩが含まれる。ＧＵＩにより、ユーザーは、以後自動的に構文解析されてアプリケーションの更新に利用すべく、全ての入力のフォーマットを指定すること、およびアプリケーションプロセスの任意の時点で、データベース内の永続データまたはアプリケーションまたは表示インターフェース内の過渡的データへの追加または修正を行なうことが可能になる。
【０１３９】
出力データも同様に、各種の実施形態における上述のプロセスの逆を用いて、アプリケーション内の任意の時点から任意のフォーマットで生成（永続または過渡的データ用に）することができる。いくつかの実施形態において、関係データベース等の外部データベースはアプリケーションと共に登録することができ、アプリケーション内の全ての永続なデータをそのようなデータベースに保存したり取り出すことができる。
【０１４０】
好適な実施形態のＯＰＧ３７コンポーネントの実施形態は、従来のグラフオブジェクト指向データベースの基本機能を拡張するものである。本発明の実施形態は、動的プロセス要素およびグラフオブジェクト指向データベースの機能を単一の統合化システムに統合することにより、従来のプログラミング言語を用いること無く、完全且つ複雑な企業横断的アプリケーションを短期間で構築することを可能にする。ＯＰＧ３７は直接且つ動的に解釈されるため、コード生成を一切必要としない。ＯＰＧ３７の変更が容易なこと、および変更の結果を直ちにフィードバックできることにより、ＯＰＧに基づくアプリケーションの維持および変更が簡素化される。
【０１４１】
特定の実施形態を参照しつつ本発明をかなり詳細に記述してきたが、他の実施形態も可能である。例えば、異なるオペレーティングシステム、プログラミング言語、およびソフトウェアアーキテクチャを用いて、本発明の実施形態を実装してもよい。従って、添付の請求項の概念および範囲を本明細書に含まれる実施形態の記述に限定すべきではない。
【０１４２】
上述のように、本発明の実施形態はハードウェア、ソフトウェア、ファームウェア、あるいは実施形態を実装する任意のプロセスおよび／または装置の形式で実施することができる。本発明の実施形態はまた、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードディスク、その他任意のコンピュータ可読記憶媒体等の有形媒体に実装された命令を含むコンピュータプログラムコードの形式で実装することができ、コンピュータプログラムコードがコンピュータにロードされて実行されたならば、当該コンピュータが本発明を実施するための装置となる。本発明はまたコンピュータプログラムコードの形式で実装可能であり、例えば、記憶媒体に保存したり、コンピュータ内にロードおよび／またはコンピュータにより実行されるか、あるいは電気配線またはケーブル等、何らかの伝送媒体、光ファイバー、または電磁放射を介して送信することができる。その場合に、当該コンピュータプログラムコードがコンピュータにロードされて実行されたならば、当該コンピュータが本発明を実装するための装置となる。汎用マイクロプロセッサ上に実装されている場合、当該コンピュータプログラムコードのセグメントが、特定の論理回路を生成すべくマイクロプロセッサを設定する。
【０１４３】
本発明を、好適な実施形態に関して記述してきたが、本発明の範囲から逸脱することなく各種の変更を行なって、等価物により構成要素を代替可能である点を当業者は理解されよう。また、本発明の本質的な範囲から逸脱することなく、特定の状況または材料を本発明の教示に適応させるべく多くの変更を行なうことができる。従って、本発明が、本発明を実施すべく考察された最適モードとして開示された特定の実施形態に限定されず、本発明が添付の請求項の範囲にある全ての実施形態を含んでいることを意図している。更に、第一、第二、等の用語の使用は、何らの順序または重要性を意味せず、むしろ、第一、第二、等の用語は一つの構成要素を他のものと区別するために用いている。
【図面の簡単な説明】
【０１４４】
【図１】本発明の好適な実施形態によるオブジェクト処理グラフアプリケーション開発システム（ＯＰＧＡＤＳ）を示した図である。
【図２】本発明の好適な実施形態によるＥｃｌｉｐｓｅ遠近法として表示されたオブジェクト処理グラフアプリケーションエディタ（ＯＰＧＡＥ）ワークスペースを示した図である。
【図３】本発明の好適な実施形態によるＯＰＧＡＥの例である。
【図４】本発明の好適な実施形態によるサンプルのオブジェクト処理グラフ（ＯＰＧ）アプリケーションの表示例を示した図である。
【図５】本発明の好適な実施形態によるリポジトリビューを示すＯＰＧＡＥワークスペースを示した図である。
【図６】本発明の好適な実施形態によるリポジトリ選択用アプリケーション定義ウィザードウィンドウを示した図である。
【図７】本発明の好適的な実施形態によるアプリケーション名入力用アプリケーション定義ウィザードウィンドウを示した図である。
【図８】本発明の好適な実施形態によるＯＰＧＡＥを示した図である。
【図９】本発明の好適な実施形態に従いビルダーからＯＰＧアプリケーションウィンドウエディタ（ＯＰＧＡＷＥ）を選択するステップを示した図である。
【図１０】本発明の好適な実施形態に従いＯＰＧデフォルトのアプリケーション表示ウィンドウから操作ウィンドウを選択するステップを示した図である。
【図１１】本発明の好適な実施形態による操作データ表示ウィンドウを示した図である。
【図１２】本発明の好適な実施形態に従い操作データ表示ウィンドウからＯＰＧＡＷＥを開始するステップを示した図である。
【図１３】本発明の好適な実施形態によるＯＰＧ操作データウィンドウエディタを示した図である。
【図１４】本発明の好適な実施形態によるＯＰＧアプリケーションウィンドウにアプリケーションフレームを追加するステップを示した図である。
【図１５】本発明の好適な実施形態による拡張動的モデルビュ−コントローラを示した図である。
【図１６】本発明の好適な実施形態によるアプリケーションデータ表示プロパティを示した図である。
【図１７】本発明の好適な実施形態によるＯＰＧＡＷＥ上の選択されたコンポーネントを示した図である。
【図１８】本発明の好適な実施形態によるデータ可視性および編集プロパティエディタウィンドウを示した図である。
【図１９】本発明の好適な実施形態によるデータ可視性および編集プロパティエディタコンポーネントを示した図である。
【図２０】本発明の好適な実施形態によるＯＰＧグラフ変換を示した図である。
【図２１】本発明の好適な実施形態による表記エディタグラフ変換の例を示した図である。
【図２２】本発明の好適な実施形態によるＯＰＧアプリケーション開発機能の例を示した図である。
【図１】
2008512794.tif 000003
【図２】
2008512794.tif 000004
【図３】
2008512794.tif 000005
【図４】
2008512794.tif 000006
【図５】
2008512794.tif 000007
【図６】
2008512794.tif 000008
【図７】
2008512794.tif 000009
【図８】
2008512794.tif 000010
【図９】
2008512794.tif 000011
【図１０】
2008512794.tif 000012
【図１１】
2008512794.tif 000013
【図１２】
2008512794.tif 000014
【図１３】
2008512794.tif 000015
【図１４】
2008512794.tif 000016
【図１５】
2008512794.tif 000017
【図１６】
2008512794.tif 000018
【図１７】
2008512794.tif 000019
【図１８】
2008512794.tif 000020
【図１９】
2008512794.tif 000021
【図２０】
2008512794.tif 000022
【図２１】
2008512794.tif 000023
【図２２】
2008512794.tif 000024
【国際調査報告】
2008512794.tif 000025
2008512794.tif 000026
2008512794.tif 000027