(57)【要約】  コンピュータソフトウェアシステムであるオブジェクトプロセスグラフアプリケーションコントローラビュワ（ＯＰＧＡＣＶ）システムを提供する。ＯＰＧＡＣＶは、ダイナミックグラフインタプリタ（ＤＧＩ）によってアプリケーション状態を遷移させることにより実行中のオブジェクトプロセスグラフ（ＯＰＧ）アプリケーションを制御し、更にアプリケーション設計者／ユーザが定義した種々のプロパティを用いアプリケーション状態、アプリケーション構造及びアプリケーションデータを表示媒体上にレンダリングしてアプリケーションへのデータ入力を確認する。ＯＰＧＡＣＶは更にＯＰＧアプリケーションのインポート及びエキスポートを制御する。
2008507032.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報を受け取り表示媒体上にレンダリングするオブジェクトプロセスグラフアプリケーションビュワと、
ユーザ入力を処理し、ダイナミックグラフインタプリタにコマンドを与えて上記オブジェクトプロセスグラフアプリケーションを第１状態から第２状態に遷移させ、そして上記オブジェクトプロセスグラフアプリケーションビュワにコマンドを与えて上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報を表示させるオブジェクトプロセスグラフアプリケーションコントローラと、
を備えるオブジェクトプロセスグラフアプリケーションコントローラビュワ。
【請求項２】
請求項１記載のオブジェクトプロセスグラフアプリケーションコントローラビュワであって、そのオブジェクトプロセスグラフアプリケーションビュワが、上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報に種々のセキュリティ保全条件を適用するオブジェクトプロセスグラフアプリケーションコントローラビュワ。
【請求項３】
請求項１記載のオブジェクトプロセスグラフアプリケーションコントローラビュワであって、更に、
入力データを処理し、上記オブジェクトプロセスグラフアプリケーションビュワにコマンドを与えて上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報をレンダリングさせ、そして上記オブジェクトプロセスグラフアプリケーションを上記第１状態から上記第２状態に遷移させるアプリケーションセッショントランザクションコントローラを、
備えるオブジェクトプロセスグラフアプリケーションコントローラビュワ。
【請求項４】
請求項３記載のオブジェクトプロセスグラフアプリケーションコントローラビュワであって、そのアプリケーションセッショントランザクションコントローラへの入力データに、種々の命令乃至指定が含まれるオブジェクトプロセスグラフアプリケーションコントローラビュワ。
【請求項５】
請求項１記載のオブジェクトプロセスグラフアプリケーションコントローラビュワであって、そのアプリケーションセッショントランザクションコントローラが、更新したアプリケーション状態をパーシステント化するオブジェクトプロセスグラフアプリケーションコントローラビュワ。
【請求項６】
請求項１記載のオブジェクトプロセスグラフアプリケーションコントローラビュワであって、そのアプリケーションセッショントランザクションコントローラが、上記ダイナミックグラフインタプリタに対しコマンドして上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報を確認及び更新するオブジェクトプロセスグラフアプリケーションコントローラビュワ。
【請求項７】
請求項１記載のオブジェクトプロセスグラフアプリケーションコントローラビュワであって、更に、
上記オブジェクトプロセスグラフアプリケーションに係る種々の記述をロード及びストアするアプリケーションインポート／エキスポートコントローラを、
備えるオブジェクトプロセスグラフアプリケーションコントローラビュワ。
【請求項８】
請求項１記載のオブジェクトプロセスグラフアプリケーションコントローラビュワであって、そのオブジェクトプロセスグラフアプリケーションビュワが、
上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報を上記表示媒体上にレンダリングするダイナミック出力生成コントローラと、
上記ダイナミックグラフインタプリタにコマンドを与えて上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報の取出及び所定フォーマットへの変換を実行させるデータ取得変換調製コントローラと、
上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報に種々のセキュリティ保全条件及び種々のディスプレイプロパティを適用するディスプレイプロパティセキュリティプロパティ合成コントローラと、
を有するオブジェクトプロセスグラフアプリケーションコントローラビュワ。
【請求項９】
請求項１記載のオブジェクトプロセスグラフアプリケーションコントローラビュワであって、上記種々のセキュリティ保全条件がコンテキスト指向であるオブジェクトプロセスグラフアプリケーションコントローラビュワ。
【請求項１０】
オブジェクトプロセスグラフアプリケーションの実行を制御し、そして
上記オブジェクトプロセスグラフアプリケーション及び関連する種々のアプリケーション状態に係る情報を表示媒体上に表示させることにより、
オブジェクトプロセスグラフアプリケーションコントローラビュワを実行する方法。
【請求項１１】
請求項１０記載の方法であって、上記制御が、
入力データの処理、
上記表示の指令、
アプリケーション状態遷移を指令するコマンドの発行、並びに
種々のオブジェクトプロセスグラフアプリケーション記述のインポート及びエキスポートの制御を、
含む方法。
【請求項１２】
請求項１０記載の方法であって、上記入力データに種々の命令乃至指定が含まれる方法。
【請求項１３】
請求項１０記載の方法であって、上記表示が、
表示を指令するコマンドの取得、
データ入力によって上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報をやりとりする手段の提供、並びに
コンテキストに従った上記アプリケーション状態の表示を、
含む方法。
【請求項１４】
ソフトウェア製品として格納媒体上に格納された命令群の実行により実行される方法であって、
オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報を受け取り、
上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報を表示媒体上にレンダリングし、
ユーザ入力を処理し、そして
上記オブジェクトプロセスグラフアプリケーションを第１状態から第２状態に遷移させることにより、
オブジェクトプロセスグラフアプリケーションコントローラビュワを実行する方法。
【請求項１５】
請求項１４記載の方法であって、上記ユーザ入力に種々の命令乃至指定が含まれる方法。
【請求項１６】
請求項１４記載の方法であって、更に、更新したアプリケーション状態をパーシステント化する方法。
【請求項１７】
請求項１４記載の方法であって、更に、上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報を確認及び更新する方法。
【請求項１８】
請求項１４記載の方法であって、更に、上記オブジェクトプロセスグラフアプリケーションに係る種々の記述をロード及びストアする方法。
【請求項１９】
請求項１４記載の方法であって、更に、上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報をフォーマット変換する方法。
【請求項２０】
請求項１４記載の方法であって、更に、上記オブジェクトプロセスグラフアプリケーション及び種々のアプリケーション状態に係る情報にコンテキスト指向な種々のセキュリティ保全条件を適用する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大まかにはユーザインタフェースに関し、より詳細にはオブジェクト指向プログラミングのモデルビューコントローラ（Model-View-Controller:ＭＶＣ）フレームワークを構成するコントローラ要素及びビュワ要素に関する。また、ＭＶＣフレームワークにおけるモデル要素であるオブジェクトプロセスグラフ（Object Process Graph:ＯＰＧ）についても、本願中で説明する。
【背景技術】
【０００２】
Ｓｍａｌｌｔａｌｋ、Ｃ＋＋、Ｊａｖａ（登録商標；以下表記を省略）等のオブジェクト指向言語や、これを利用したオブジェクト指向プログラミング技法が開発及び認知されてこの方、数多くのアプリケーション開発フレームワークが世に出されている。ＭＶＣフレームワークもその一つである。ＭＶＣフレームワークでは、アプリケーション機能の頒布形態やリユーザブルな制御機能の生成手法が定められているため、ＭＶＣフレームワークにて生成された制御機能は、広範なアプリケーションで利用することができる。通常、ＭＶＣフレームワークでは、通常、ビジネスドメイン内データ要素を表すパーシステントな種々のビジネスオブジェクトから構成されるモデルと、表示媒体上にそのモデルのデータを描画する種々のレンダリングオブジェクトから構成されるビュワと、アプリケーション内情報流を制御する役割を持った種々のオブジェクトから構成されるコントローラとが、求められる。
【０００３】
こうしたＭＶＣフレームワークをＷＥＢアプリケーションに適用した最近の例の一つに、Ｊａｖａサーバページ（Java Server Page:ＪＳＰ；登録商標；以下表記を省略）モデル２アーキテクチャがある。更に、その実用化例としてはＪａｋａｒｔａＳｔｒｕｔｓフレームワークがある。
【０００４】
【非特許文献１】"Design Patterns" by Gamma et al, Addison Wesley 1995
【非特許文献２】"Patterns in Java" by Grand, Wiley Computer Publishing 1998
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明は、これらの条件を満たすオブジェクトプロセスグラフアプリケーションコントローラビュワ（Object Process Graph Application Controller-Viewer:ＯＰＧＡＣＶ）を提供するものである。
【０００６】
本発明の一実施形態に係るＯＰＧＡＣＶは、オブジェクトプロセスグラフアプリケーションビュワ（Object Process Graph Application Viewer:ＯＰＧＡＶ）及びオブジェクトプロセスグラフアプリケーションコントローラ（Object Process Graph Application Controller:ＯＰＧＡＣ）を備える。それらのうちのＯＰＧＡＶは、オブジェクトプロセスグラフアプリケーション（OPG Application/OPG-defined Application;ＯＰＧアプリケーション）及び種々のアプリケーション状態に係る情報を受け取り表示媒体上にレンダリングする。また、ＯＰＧＡＣは、ユーザ入力を処理し、ダイナミックグラフインタプリタ（Dynamic Graph Interpreter:ＤＧＩ）にコマンドを与えて当該ＯＰＧアプリケーションを第１状態から第２状態に遷移させ、そしてＯＰＧＡＶにコマンドを与えて当該ＯＰＧアプリケーション及び種々のアプリケーション状態に係る情報を表示させる。
【０００７】
本発明の他の実施形態に係る方法は、ＯＰＧアプリケーションの実行を制御し、更にそのＯＰＧアプリケーション及び関連する種々のアプリケーション状態に係る情報を表示媒体上にレンダリングし表示させることにより、ＯＰＧＡＣＶを実行する方法である。
【０００８】
本発明の更に他の実施形態に係るソフトウェア製品は、それらの命令を実行することによってＯＰＧＡＣＶを実行することができるよう、命令群として格納媒体上に格納される。即ち、ＯＰＧアプリケーション及び種々のアプリケーション状態に係る情報を受け取って表示媒体上にレンダリングし、ユーザ入力を処理し、当該ＯＰＧアプリケーションを第１状態から第２状態に遷移させることができる。
【発明の効果】
【０００９】
本発明によれば、ＯＰＧアプリケーション実行中にそのＯＰＧアプリケーションの各部をアプリケーション開発者、ユーザ及びドメインエキスパートが改変できる、アプリケーションに関する情報が情報が表示媒体上にレンダリングされる、ユーザが定義する随時修正可能な種々のプロパティに基づきアプリケーションへの入力情報が確認される、ＯＰＧアプリケーションの記述をインポート及びエキスポートする手段が得られる等、数多くの効果が得られる。
【発明を実施するための最良の形態】
【００１０】
本発明には、上述のものを含め種々の特徴的構成、実施形態及び効果がある。それらについてより好適に理解するため、以下の説明、別紙図面並びに別紙特許請求の範囲を参照されたい。
【００１１】
まず、本発明は、ＯＰＧシステム（OPG System:ＯＰＧＳ）を介してＯＰＧＡＣとＯＰＧＡＶとを統合する形態にて実施することができる。ＯＰＧＳはＯＰＧと後述のＤＧＩからなるシステムであり、これを介してＯＰＧＡＣとＯＰＧＡＶとを統合することにより、ダイナミックモデルビューコントローラ（Dynamic Model View Controller:ＤＭＶＣ）を形成することができる。ＤＭＶＣはダイナミックなアプリケーション構造であり、ＯＰＧアプリケーション即ちＯＰＧベースで作成されたアプリケーションを構成する種々のインスタンスを、そのＯＰＧアプリケーションの実行中でも改変することができる。ＤＭＶＣの構成要素のうちコントローラ要素であるＯＰＧＡＣは、ユーザ若しくは他システムからの種々の入力データ、命令及び指定を処理し、ＯＰＧＡＶによる情報出力例えば表示を指令し、ＤＧＩに対しコマンドしてアプリケーション状態遷移を開始させ、そしてＯＰＧアプリケーション記述のインポートやエキスポートを制御することによって、ＯＰＧアプリケーションの実行を制御する。
【００１２】
ＤＭＶＣの構成要素のうちビュワ要素であるＯＰＧＡＶは、ＯＰＧＡＣからの情報出力コマンド例えば表示コマンドを受け取り、出力装置乃至出力媒体上にそのＯＰＧアプリケーションのＯＰＧをレンダリングする。レンダリングされたＯＰＧは、管理、制御下における指定や入力を通じそのＯＰＧアプリケーションとやりとりする手段になるだけでなく、アプリケーション状態オブジェクトを適当なコンテキストに従って表示させることによって、ユーザ等に対しそれらオブジェクトのコンテンツの閲覧更新手段も提供する。
【００１３】
そして、ＤＭＶＣの構成要素のうちモデル要素であるＯＰＧＳは、ＯＰＧＡＣ及びＯＰＧＡＶと統合されている。ＯＰＧＳにおいては、ＯＰＧアプリケーションにて使用する種々の処理ステップ及びデータの複雑な関係を、ＯＰＧによって定義する。ＯＰＧＳは、また、ＯＰＧアプリケーションで使用するパーシステントな（即ち持続させるべき長期的な）データやトランジェントな（即ち一過性の短期的な）データのストア先となる。また、ＯＰＧＳを構成するＤＧＩは、ＯＰＧアプリケーション実行時にＯＰＧＡＣやＯＰＧＡＶから呼び出すことができる種々の機能を提供する。
【００１４】
図１に示す実施形態においては、ＯＰＧＳ４を介しＯＰＧＡＣ２とＯＰＧＡＶ３を統合することによってＤＭＶＣ５が形成されている。ＤＭＶＣ５はＪａｋａｒｔａＳｔｒｕｔｓＷＥＢアプリケーションフレームワークを基盤としたアプリケーション構造であり、パーソナルコンピュータ（ＰＣ）１等のコンピューティングデバイス上で表示を実行できるように構成されている。本実施形態にはこの他にも種々の技術、例えばカスケーディングスタイルシート（ＣＳＳ）、ダイナミックＨＴＭＬ（ＤＨＴＭＬ）、Ｊａｖａドキュメントモデル（ＪＤＯＭ）、ＪＳＰ、ＳｔｒｕｔｓＴｉｌｅ等が使用されている。また、本発明は、他種アプリケーションフレームワークや他種技術を用いて実施することもできる。
【００１５】
オブジェクトプロセスグラフアプリケーションコントローラ（ＯＰＧＡＣ）
図２に例示するＯＰＧＡＣ７は、アプリケーションセッショントランザクションコントローラ８及びアプリケーションインポート／エキスポートコントローラ９という二種類の機能要素を有している。そのうちアプリケーションセッショントランザクションコントローラ８は、ＯＰＧＳ４とやりとりして種々のＯＰＧアプリケーションを実行する四種類の機能部分を有している。即ち、ユーザ入力処理コントローラ１０、アプリケーション状態遷移コントローラ１１、パーシステントデータストレージコントローラ１２及びＯＰＧディスプレイコントローラ１３である。また、本実施形態におけるアプリケーションインポート／エキスポートコントローラ９は、種々のＯＰＧアプリケーションのＸＭＬによる記述（ＯＰＧＸＭＬ）をインポート及びエキスポートする機能を有している。
【００１６】
本実施形態においては、ＯＰＧＡＣ２の諸制御機能が種々のＳｔｒｕｔｓベースアクションクラス及びフォームクラスによって実現されている。なかでもアクションクラスは、ユーザから与えられる種々の指定、命令及び入力データを解釈(interprete)し、ＤＧＩとのやりとりやＤＧＩに対するコマンドによって種々のアプリケーション状態オブジェクトを更新し、更に更新後のアプリケーション状態オブジェクトを確認する。ＯＰＧＡＣ２は、更に、ＯＰＧアプリケーションのＯＰＧを構成する種々のプロセスコントロールオブジェクト及びアプリケーション状態オブジェクトに基づきＤＧＩに命令し、アプリケーション状態オブジェクトを次のアクティブアクティブオペレーションと関連付ける。これらの機能は、通常のソフトウェアアプリケーションの実行と同様にして実行される。また、フォームクラスは、ＯＰＧを構成する種々のデータオブジェクトに標準的なＪａｖａＢｅａｎインタフェースによってアクセスできるようにすると共に、ＯＰＧＡＣ２がユーザ入力データにアクセスして確認できるできるようにする。
【００１７】
アプリケーションセッショントランザクションコントローラ
機能要素たるアプリケーションセッショントランザクションコントローラ８は、図３にその流れのあらましを示すアプリケーションセッショントランザクションコントロール３００を実行する。この図により概括されている本実施形態の手順においては、スタート（３０２）後にまず現在のアプリケーション状態オブジェクトを表示させる（３０４）。図示手順はループを構成しているので、各回実行毎にループを経てこのステップ３０４に戻ってくる。ステップ３０４実行後はユーザ入力を待ち（３０６）、アプリケーションデータに対する種々の改変事項をユーザが入力したら（３０８）、それらユーザ入力によりアプリケーション状態オブジェクトを更新し（３１０）、更新されたアプリケーション状態オブジェクトを確認し（３１２）、そしてアプリケーション状態オブジェクト確認で成功との結果が得られたかどうかを判別する（３１４）。成功していないと判別された場合、このコントロール手順では、元のアプリケーション状態オブジェクトを復元し（３１６）、ユーザ向けに（種々の）エラーメッセージを表示させて（３１８）ステップ３０６に戻る。逆に、ステップ３１４にて成功と判別された場合、このコントロール手順では、新たな（種々の）アクティブオペレーションを選択して確認済のアプリケーション状態オブジェクトに関連付け（３２０）、それら新たなアクティブオペレーションに基づき種々のデータインスタンスを生成してそのアプリケーション状態オブジェクトに追加し（３２２）、得られた新たなアプリケーション状態オブジェクトをパーシステント化して（３２４）、ステップ３０４に戻る。
【００１８】
図４〜図１０に、図３に示した実施形態の手順をより詳細に示す。まず、ＯＰＧＡＶ３が後述の通りＯＰＧアプリケーションのＯＰＧ及びそれに関連する種々のアプリケーション状態オブジェクトのビューを表示させた後は（３０４）、本システムは図４に示すようにユーザ入力を待つ状態となる（３０６）。図示例における現在のアプリケーション状態オブジェクトＸはその値がＸ、Ｙ及びＺのデータインスタンスを含む状態オブジェクト１５であり、それらインスタンスの値はＯＰＧＡＶ３によってＯＰＧ内の適当な場所に表示されユーザに伝えられる。本実施形態の場合、ＯＰＧＡＣ２及びＤＧＩ６を用いＰＣ１上にそれらを表示させる。
【００１９】
ユーザがデータを入力し（３０８）ＯＰＧＡＣ２がそれらユーザ入力に基づきＤＧＩ６にアプリケーション状態オブジェクト更新をコマンドすると（３１０）、図５に示すようにアプリケーション状態オブジェクトが変化する。この更新によってアプリケーション状態オブジェクトを構成するデータインスタンスの値が変わり、Ｘ’、Ｙ’及びＺ’のデータインスタンス値を有するアプリケーション状態オブジェクト１６になる。但し、更新されたといってもこの時点ではまだアプリケーション状態オブジェクト１６はトライアル状態であり、その確認を待たねばならない。
【００２０】
即ち、図６に示すように、更新後のアプリケーション状態オブジェクト１７は、ＯＰＧＡＣ２からのコマンドに応じＤＧＩ６によって確認される。ＯＰＧＳ４においてはデータインスタンス毎に確認条件１８が定められているので、ＤＧＩ６はこの確認条件１８を用いて各データインスタンスを確認する。また、確認手法としては、例えば値域テスト、タイプチェック等、種々の手法を用いる。アプリケーション状態オブジェクト確認で成功と判別された場合（３１４）、ＯＰＧＡＣ２は、先にそのあらましを示した手順中で次に位置するステップ３２０に進む（図７参照）。アプリケーション状態オブジェクト確認で不成功と判別された場合（３１４）、ＯＰＧＡＣ２は、元のアプリケーション状態オブジェクトを復元するようＤＧＩ６に対しコマンドし（３１６）、適当な何個かのエラーメッセージを生成、表示するようＯＰＧＡＶ３に対しコマンドする（３１８）。
【００２１】
図７においては、ＯＰＧＡＣ２からコマンドを与えられたＤＧＩ６が、ＯＰＧによって定義されているアプリケーション２０中の種々の処理ステップ（アプリケーションステップ）を実行する。図示例の場合、ＤＧＩ６が次のオペレーションであるオペレーションＢを見つけ出し、確認済のアプリケーション状態オブジェクト１９にそのオペレーションＢを関連付けている（３２０）。
【００２２】
図８においては、ＤＧＩ６は、ＯＰＧ２２中のオペレーションＢにより定義されるデータインスタンスＴ、Ｕ及びＶを生成し、確認済のアプリケーション状態オブジェクト２１にそれらを追加することによって（３２２）、そのアプリケーション状態オブジェクト２１へのオペレーションＢの関連付けを終える。ＯＰＧＳ４は、各データインスタンスの値を、そのＯＰＧＳ４にて定められているデフォルト値に初期化する。なお、この処理が済んだアプリケーション状態オブジェクト２１を、以下、Ｘ’と呼ぶこととする。
【００２３】
図９においては、ＯＰＧＡＣ２がＤＧＩ６に対しコマンドし、アプリケーション状態オブジェクトＸ’２３をパーシステント化する（３２４）。即ち、このオブジェクトをデータベース内に保存する。
【００２４】
そして、図１０においては、ＯＰＧＡＣ２がＯＰＧＡＶ３に対しコマンドし、アプリケーション状態オブジェクトＸ’２５をユーザ向けに表示させる（３０４）。本実施形態では、図３にて概括した手順のＯＰＧＡＣ２によるループ実行がこの時点で一巡する。ＯＰＧＡＣ２は、再び、ユーザからのアプリケーションＯＰＧ改変リクエストを待つ状態になる（３０６）。
【００２５】
アプリケーションインポート／エキスポートコントロール
ＯＰＧＡＣ２は、その機能要素であるアプリケーションインポート／エキスポートコントローラ９、例えば図１１に示す構成のＯＰＧＸＭＬ用のインポート／エキスポートコントローラ２８を使用して、ＯＰＧアプリケーションのＸＭＬ記述（ＯＰＧＸＭＬ）をロードしまたストアする。図示例のインポート／エキスポートコントローラ２８は、ＯＰＧアプリケーションプログラムグラフの指定エリア毎に一組ずつ、種々のインポート／エキスポート（Ｉ／Ｅ）ハンドラ２９を有している。インポート／エキスポートコントローラ２８は、インポート時にはＪＤＯＭ２７を用いて種々のＸＭＬファイル２６をパーシングし、エキスポート時にはＪＤＯＭ２７を用いて種々のＸＭＬファイル２６を書き込む。ＯＰＧアプリケーションの構成要素は、Ｉ／Ｅハンドラ２９と密に連携するＤＧＩ６によってＯＰＧＳ４から取り出される。
【００２６】
ＯＰＧＡＣ２は、アプリケーション記述だけでなく、オペレーション記述、関係記述、データイベント記述等のアプリケーション要素記述もインポート及びエキスポートできる。
【００２７】
オブジェクトプロセスグラフアプリケーションビュワ（ＯＰＧＡＶ）
図１２に例示するＯＰＧＡＶ３１は三種類の機能要素を有している。即ち、ダイナミックページ／出力生成コントローラ３２、データ取得変換調製コントローラ３３、並びにディスプレイプロパティセキュリティプロパティ合成コントローラ３４である。本実施形態に係るＯＰＧＡＶ３は、ＯＰＧアプリケーションのデータを標準的なＷＥＢブラウザ上にＷＥＢページとしてレンダリングし、他システム向けの出力データを生成し、或いはその双方を実行する。また、本実施形態では、ＪＳＰ、ＣＳＳ、ＪＤＯＭ、ＤＨＴＭＬ等によってＷＥＢページを生成する。ＪＳＰからＯＰＧアプリケーションのデータへのアクセスは、種々のフォームオブジェクト及びＪＳＰタグライブラリオブジェクトを介したやりとりにより行う。
【００２８】
ＯＰＧＡＶ３１の機能要素であるデータ取得変換調製コントローラ３３は、ＤＧＩ６に対しコマンドすることによって、ＯＰＧアプリケーションの種々のＯＰＧ構成要素を再生させ（取り出させ）、それによって得られたデータを、ＯＰＧにより定義されているディスプレイフォーマットに変換させる。これによって、そのデータはＨＴＭＬページに組み込めるよう調製される。
【００２９】
また、ＤＧＩ６は、種々のデータディスプレイ条件（ディスプレイプロパティ）３８及び種々のデータセキュリティ保全条件（セキュリティプロパティ）３９を提供する。これらは、ＯＰＧアプリケーションのアプリケーション状態オブジェクトのデータインスタンス３７内に、個々のプリミティブデータ要素毎にストアされる。プリミティブデータ要素のディスプレイプロパティとしては例えばディスプレイ上でその要素がレンダリングされる位置、その要素の横寸及び縦寸等があり、セキュリティ保全条件としては例えばその要素の表示要否、編集要否等の条件がある。
【００３０】
図１３に示すように、ディスプレイプロパティ及びセキュリティプロパティは例えば三層構造４０によって定義される。この三層構造４０は、種々のアプリケーションプロパティ４３、オペレーションプロパティ４２及びアプリケーションインスタンスプロパティ４１が層をなす構造である。アプリケーションインスタンスプロパティ４１は、最も優先順位が高くアプリケーションプロパティ４３及びオペレーションプロパティ４２に優るプロパティであり、そのＯＰＧアプリケーションで実行される個々のインスタンス毎にアプリケーションデータに適用される。オペレーションプロパティ４２は、その次に優先順位が高くアプリケーションプロパティ４３に優越するプロパティであり、そのＯＰＧアプリケーションで実行されるインスタンス全て（但し特定オペレーションのコンテキスト内に限る）に適用される。アプリケーションプロパティ４３は、ＯＰＧアプリケーションのコンテキスト内で即ちそのアプリケーションのインスタンス全てに対して適用される。ディスプレイプロパティセキュリティプロパティ合成コントローラ３４は、どのプロパティを使用するかを、ＯＰＧアプリケーションを構成するインスタンスの現在状態（コンテキスト）に基づき決定する。
【００３１】
ＯＰＧＡＶ３は、ＯＰＧアプリケーション向けのダイナミックなユーザインタフェースを提供している。即ち、ＯＰＧＡＶ３は、ＯＰＧアプリケーションのＯＰＧ中でユーザ、開発者又はドメインエキスパートが定義した種々のプロパティに基づき、ページ及び入力フォームを表示、レンダリングさせる。これらのプロパティは随時改変でき即座に発効させることができる。即ち、ＯＰＧＡＶ３は、最新のプロパティを用いてＯＰＧアプリケーションのＯＰＧを表示させる。
【００３２】
オブジェクトプロセスグラフアプリケーションコントローラビュワメソッド及びその実施形態
次に、先に定義及び例示説明したＯＰＧＡＣＶメソッドシステムの生成手順の例について説明する。
【００３３】
１）まず、実施形態に係るＯＰＧＡＣＶを付加できるＯＰＧＳ４があるとした上で、ハードウェアプラットフォーム、オペレーティングシステムプラットフォーム、プログラミング用フレームワーク、データベースシステム若しくはファイルシステム、表示媒体等を一組選ぶ。表示媒体としては、その上にＯＰＧＡＣＶシステムを構築して実行することが可能な媒体を選ぶ。例えば、本願に実施形態として記載したＯＰＧＳ４を構築する際に使用するものと同一の、又は互換性のある表示装置を選ぶ。また、ハードウェアプラットフォームとしては例えばＩｎｔｅｌ（登録商標；以下表記を省略）互換サーバを使用し、オペレーティングシステムプラットフォームとしては例えばＬｉｎｕｘ（登録商標）を使用する。このサーバには例えばイントラネット経由で種々のＩｎｔｅｌ互換ＰＣを接続することができる。それらＩｎｔｅｌ互換ＰＣには、例えばオペレーティングシステムとしてＭｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標；以下表記を省略）ＸＰを搭載し、ＸＰ上でソフトウェアを実行させる。また、ＯＰＧＡＣＶシステムのプログラミング用フレームワークとしては、例えばＳｕｎＭｉｃｒｏＳｙｓｔｅｍｓ社が提供しているプログラミング言語であるＪａｖａを使用できる。本発明は、また、ＷｉｎｄｏｗｓＸＰ上でローカルに動作するアプリケーションサーバであるＴｏｍｃａｔ（登録商標；以下表記を省略）上で実施することも、またＴｏｍｃａｔを実行するリモートＬｉｎｕｘサーバ上で実施することも可能である。また、ＥｃｌｉｐｓｅＦｏｕｎｄａｔｉｏｎによって提供されているソフトウェア開発プラットフォームであるＥｃｌｉｐｓｅ及びＧｅｎｕｉｔｅｃ社から提供されているプラグインであるＭｙＥｃｌｉｐｓｅを、Ｊａｖａソフトウェア開発のフレームワークとすることもできる。但し、本発明の実施形態に係るＯＰＧＡＣメソッドシステムの生成及び実行に使用できる開発システム及び動作システムには、数多くの構成形態がある。上述のオペレーティングシステム、アプリケーションプラットフォーム、プログラミング言語等のツールはその一例に過ぎない。
【００３４】
２）次に、先に示した本発明の概要及び説明に従い、また別紙図１〜図１３を参照しつつ、所要機能が得られるように一組のクラス及び適当なクラスハイアラーキ（階層）を定義する。その際、所要機能に係る一群のクラスを生成する上で非特許文献１及び２に記載の設計パターンが有用であろう。また、上位レベルのＣＡＳＥツールも、こうしたクラスの定義に有用であろう。クラスのうち幾つかは、例えば次の要領で定義するとよい。
【００３５】
ａ．まず、ＳｔｒｕｔｓＡｃｔｉｏｎクラスを拡張するアブストラクトクラスを定義することによって、図３にそのあらましを示したコントロール手順を実現することが可能である。更に、このアブストラクトクラスを拡張する種々のクラスを、種々のアプリケーション機能を実現できるように定義するとよい。実現できるアプリケーション機能としては、例えば、ユーザログオン／ログオフ機能、セキュリティ管理（ユーザ追加管理やユーザ権限管理等）機能、データインポート／エキスポート機能、監査機能、レポート機能、トランザクション管理（開始、編集、マージ等）機能等がある。これらのクラスによって、ＯＰＧＡＣ２の諸機能、即ちユーザ入力に基づくアプリケーション状態オブジェクトの改変、遷移及び表示コントロールが実現される。
【００３６】
ｂ．ＯＰＧアプリケーション向けインポート／エキスポート機能を実現する一組のクラスを定義する。
【００３７】
ｃ．Ｓｔｒｕｔｓフレームワークを基盤として、そのアプリケーションで発生させる種々の基本的なページ用のＪＳＰレイアウト（テンプレート）を定義する。ＪＳＰレイアウトを定義するページとしては、例えばユーザログオン／ログオフページ、セキュリティ管理ページ、データインポート／エキスポートページ、監査ページ、レポートページ、トランザクション管理ページ等がある。更に、そのレイアウトを構成する種々の標準的な領域例えばヘッダ、ボディ、フッタ、タイトル等について、ＪＳＰタイトル要素を定義する。
【００３８】
ｄ．ＤＧＩ６を介したＯＰＧへのアクセスを可能にしデータプロパティ合成機能及びダイナミックページ生成機能を実現するため、一組のＪＳＰタグクラス及びＳｔｒｕｔｓフォームクラスを定義する。
【００３９】
ｅ．ＷＥＢブラウザ上でのＪａｖａスクリプト機能の実行により更新できるよう、ＣＳＳ中で、各ウインドウ構成要素の諸属性を決める一組の定義を与える。
【００４０】
上述したプログラム及び諸クラスには、例えば、特定の機能を実現するための種々の内部クラス及びある種のファーストクラスオブジェクトを含めてもよい。それらのクラスは何れもパーシステントではない。
【００４１】
オブジェクトプロセスグラフ記述
ＯＰＧは、理想的なアプリケーション開発実行環境であるＯＰＧＳにて定義を担う要素である。ＯＰＧＳの構成要素としては、ＯＰＧの他に、ＯＰＧにより定義されているアプリケーションを解釈及び実行するＤＧＩや、ＯＰＧを生成及び修正するのに使用されるグラフィカルユーザインタフェースがある。
【００４２】
本実施形態におけるＯＰＧは、プログラム実行時に解釈されるチューリングコンプリートなコンピュータ言語と見なすことができる。ＯＰＧは、コンピュータ内の過渡（トランジェント）メモリや長期（パーシステント）メモリ内に格納される。ＯＰＧは、例えばリレーショナルテーブル、階層化テーブル、ｎ次元データアレイ、スプレッドシート、グラフィカルモデル、三次元物理モデル等、様々なデータ構造を内包しうる。但し、リレーショナルデータベースシステムにて一般的なブロブとしてではなく、元々の構造及び内部関係を反映させうる特殊なデータ構造で保持される。また、ＯＰＧにはデータ構造の他にプロセス構造及びコントロール構造がある。それらは、そのＯＰＧアプリケーションにおけるトランジェントデータ及びパーシステントデータの確認、変換及び表示の順序及びタイミングを、コントロールするための構造である。更に、ＯＰＧ中の数式、（テキストデータ又はそれと定量データの混合データの場合）正規表現、コンプリートアルゴリズム等を定義する構造を、生成してもよい。
【００４３】
ＯＰＧアプリケーションのＯＰＧは、例えばコンピュータ端末上や、紙等の静的出力媒体上に、レンダリングすることができる。特に、インタラクティブな媒体上に表示した場合、そのＯＰＧのデータ構造、プロセス構造及びコントロール構造を編集することができる。但し、従来のソフトウェア開発システムと違い、ＯＰＧアプリケーションのＯＰＧを編集する際にはコードが発生せず、従ってそのコンパイルやインストールも不要である。しかも、ＯＰＧアプリケーションのＯＰＧに対する改変は直ちに行われ直ちに発効するのであって、ＤＧＩによる解釈の実行中（アプリケーション実行中）においてすら改変することができる。アプリケーションを安全に且つ随時改変できるというこの長所は、長大且つ複雑な企業規模アプリケーションシステムの長時間保守や開発促進に取り組む上で、有益なものである。
【００４４】
ＯＰＧにおいては、全てのアプリケーション実行状態情報がアプリケーション状態オブジェクトによって保持される。ＯＰＧに対するＤＧＩの働きは、そのＯＰＧにて保持されているアプリケーション実行状態情報乃至アプリケーション状態オブジェクトの改変である。また、アプリケーション実行状態情報には種々のパーシステントなデータオブジェクトを含めることができる。ＤＧＩは、更に、複数のアプリケーション状態オブジェクトを同時に操作することができる。例えば、複数のアプリケーション状態オブジェクトをマージすることやアプリケーション実行状態情報を複数のアプリケーション状態オブジェクトにスプリットすることができる。
【００４５】
ＯＰＧは、ＯＰＧアプリケーションによる全てのパーシステントデータ改変及びトランジェントデータ改変についての監査履歴情報を、プリミティブデータレベルで保持する。この監査履歴情報は、ディスプレイコントローラにより直ちにユーザインタフェース上に表示させることができ、またそのＯＰＧアプリケーションにおけるプロセスの流れ及びデータの流れの更新及び操作に直ちに利用することができる。
【００４６】
ＯＰＧアプリケーションによるパーシステントデータ改変は、長期トランザクションによる改変及び短期トランザクションによる改変を含め全て、監査履歴情報化により保持、追跡される。長期トランザクションにおいては、多数のワークセッションに跨る長い期間（数日又は数週）に亘って行われるパーシステントデータ改変を、システムが全て準備、管理及び追尾することができる。これに対して、短期トランザクションとは、単一のユーザセッション即ちユーザ・システム間の１回のやりとりで行われるトランザクションである。長期トランザクションで得られた情報も短期トランザクションで得られた情報も、そのシステムのグラフィカルユーザインタフェースを使用し、そのＯＰＧアプリケーションにて直ちに操作及び表示に供することができる。また、長期トランザクションによる改変を追跡することによって、好適にも、そのトランザクションの任意時点にロールバックする（遡及復帰する）ことが可能になる。その際、ロールバックした分のトランザクションは、監査履歴と共にまたアプリケーションインタフェースにより、自動的に削除させることができる。ＯＰＧアプリケーションを構成する種々の機能に対するユーザのアクセスや、そのアプリケーションで使用される種々のデータに対するユーザのアクセスは、システムインタフェースにて管理することができる。この管理の対象には、例えば、ユーザ毎にアプリケーションの一部で定義されている個々のプリミティブなデータアイテムに対する個別アクセス権限（リード、ライト、ロールバック）が含まれる。
【００４７】
本実施形態に係るシステムは、ユーザインタフェースを介したデータ入力やデータ改変のみならず、他システムからもアプリケーションプロセスにデータ入力をも受け入れることができ、またどのようなディジタルフォーマットでも受け付けることができる。
【００４８】
本実施形態においては、グラフィカルユーザインタフェースを使用することができる。従って、ユーザは、グラフィカルユーザインタフェースを使用して全入力のフォーマットを指定することができる。指定されたフォーマットで情報が入力されると引き続き自動的にその情報がパーシングされ、ＯＰＧアプリケーションの更新に使用される。即ち、データベースへのパーシステントデータの追加、データベース内パーシステントデータの修正、アプリケーション若しくはディスプレイインタフェースへのトランジェントデータの供給、或いはアプリケーション若しくはディスプレイインタフェースで使用しているトランジェントデータの修正等に使用される。また、これらはアプリケーションプロセス実行中のどの時点でも実行できる。
【００４９】
本実施形態においては、上述のプロセスを逆の手順で実行することができる。それにより、そのＯＰＧアプリケーションにて扱われている種々のパーシステントデータやトランジェントデータも、やはり任意時点でまた任意フォーマットにて出力することができる。また、本実施形態ではＯＰＧアプリケーションに対応する外部データベース例えばリレーショナルデータベースを使用することもできる。その場合、そのアプリケーションで取り扱うパーシステントデータは何れもそのデータベースに格納することができ、また何れもそのデータベースから取り出すことができる。
【００５０】
従来のグラフオブジェクト指向データベースに比べると、本実施形態のＯＰＧ構成要素は基本機能面で拡張されている。即ち、本実施形態においては、ダイナミックプロセス要素群の機能とグラフオブジェクト指向データベースの機能とが単一のシステムに合成、統合されており、それによって、複雑な企業規模アプリケーションを遺漏なく迅速に、また従来型のプログラミング言語を使用することなく、生成することができる。ＯＰＧは直接且つダイナミックに解釈されるため、コード生成は不要である。ＯＰＧを容易に改変することができまたその改変によるフィードバックが直ちに生ずるため、ＯＰＧアプリケーションの保守及び改変がかなり簡便化される。
【００５１】
以上、本発明について立ち入った細部に亘り説明を行った。その説明は特定の実施形態についての説明であったが、本発明は他の形態で実施することもできる。例えば、使用するオペレーティングシステム、プログラミング言語、ソフトウェアアーキテクチャ等を別のものにして、本発明を実施することもできる。即ち、別紙特許請求の範囲に記載されている発明の技術的範囲及びその要旨を、本願における実施形態についての記載に基づき限定解釈すべきではない。
【００５２】
また、上述したように、本発明は様々な種類のハードウェア、ソフトウェア、ファームウェア、プロセス、装置等で実施することができる。本発明は、更に、一群の命令を含むコンピュータプログラムコードが格納された有形媒体、例えばフロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードディスクドライブ等のコンピュータ可読媒体という形態で、実施することもできる。そうした媒体に格納されているコンピュータプログラムコードをコンピュータにロードして実行するとそのコンピュータは発明実施装置となる。また、本発明は、例えば格納媒体内に格納しコンピュータにロードしコンピュータにて実行することや、伝送媒体（導電ワイヤ、導電ケーブル、光ファイバ、電磁輻射等）を介して伝送することが可能なコンピュータプログラムコードそのものとして、実施することもできる。そうしたコンピュータプログラムコードをコンピュータにロードして実行するとそのコンピュータは発明実施装置となる。例えば、汎用マイクロプロセッサにこのコンピュータプログラムコードを組み込むと、そのコンピュータプログラムコードを構成する各セグメントによってそのマイクロプロセッサのコンフィギュレーションが決定され、相応する論理回路機能が形成される。
【００５３】
また、本件技術分野における習熟者（いわゆる当業者）であれば理解できるように、以上の説明は本発明の実施形態についての例示説明であり、説明した実施形態に対しては、本発明の技術的範囲を逸脱することなく種々の変形を施すことができまたその構成要素を等価なもので置き換えることができる。加えて、本発明の本質から離れることなく本発明の思想に様々な改変、改良を施し特定の状況乃至対象に適合させることができる。このように、本願には熟考の末本発明の実施に適するものと認めた最良の実施形態を記してあるが、本発明がそれに限定して解釈されることは想定外のことであり、実際には、本発明は別紙特許請求の範囲に記載の発明の技術的範囲に属する全ての実施形態を包含するものである。そして、第１、第２等の用語を用いているが、それらは単に要素同士を区別するために用いているのであって、順序や重要度を表しているわけではない。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施形態に係るシステムの概要を示すブロック図である。
【図２】本発明の実施形態におけるオブジェクトプロセスグラフアプリケーションコントローラを示すブロック図である。
【図３】本発明の実施形態におけるアプリケーションセッショントランザクションコントロール手順の例を示すフローチャートである。
【図４】本発明の実施形態におけるユーザ入力待ち動作の例を示すブロック図である。
【図５】本発明の実施形態における種々の改変事項のユーザによる入力及びアプリケーション状態オブジェクトの更新動作の例を示すブロック図である。
【図６】本発明の実施形態における更新済のアプリケーション状態オブジェクトの確認動作の例を示すブロック図である。
【図７】本発明の実施形態における確認済アプリケーション状態オブジェクトに対する新規オペレーションの関連付け動作の例を示すブロック図である。
【図８】本発明の実施形態におけるアプリケーション状態オブジェクトに対する種々の新規データインスタンスの追加動作の例を示すブロック図である。
【図９】本発明の実施形態におけるアプリケーション状態オブジェクトのパーシステント化動作の例を示すブロック図である。
【図１０】本発明の実施形態における再度のユーザ入力待ち動作の例を示すブロック図である。
【図１１】本発明の実施形態におけるアプリケーションインポート／エキスポート制御諸要素の例を示すブロック図である。
【図１２】本発明の実施形態におけるオブジェクトプロセスグラフアプリケーションビュワを示すブロック図である。
【図１３】本発明の実施形態におけるオブジェクトプロセスグラフアプリケーションデータの諸プロパティを示すブロック図である。
【図１】
2008507032.tif 000003
【図２】
2008507032.tif 000004
【図３】
2008507032.tif 000005
【図４】
2008507032.tif 000006
【図５】
2008507032.tif 000007
【図６】
2008507032.tif 000008
【図７】
2008507032.tif 000009
【図８】
2008507032.tif 000010
【図９】
2008507032.tif 000011
【図１０】
2008507032.tif 000012
【図１１】
2008507032.tif 000013
【図１２】
2008507032.tif 000014
【図１３】
2008507032.tif 000015
【国際調査報告】
2008507032.tif 000016