JP3798935B2 - データ表示方法 - Google Patents
データ表示方法 Download PDFInfo
- Publication number
- JP3798935B2 JP3798935B2 JP2000272567A JP2000272567A JP3798935B2 JP 3798935 B2 JP3798935 B2 JP 3798935B2 JP 2000272567 A JP2000272567 A JP 2000272567A JP 2000272567 A JP2000272567 A JP 2000272567A JP 3798935 B2 JP3798935 B2 JP 3798935B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data management
- management
- display
- mediation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
Description
【発明の属する技術分野】
本発明は、一定のスキーマに基づいてメモリーに読み込まれたデータ集合を、コンピュータディスプレイ上に、種々の形式で複数のビューとして表示するデータ表示システムの構成技術に関するものである。
【0002】
【従来の技術】
データ表示システムは、データ集合を文書形式、表形式、数値グラフ形式、グラフィック図形形式等、種々の形式で複数のビューに表示できることが必要である。このためのシステムでは、同一のデータ集合に対して複数のビューを表示させる場合、更に、データ集合の値の更新を的確なタイミングで各ビューに反映させることが必要である。また、種々のビューのバリエーションが追加された場合でも既存のソースコードの変更を抑えることが必要になる。
【0003】
従来、種々の表示を行う場合、オブジェクト指向ソフトウェア構成技術におけるMVC(Model, View, Control)パターンによって上記の要件を実現している。MVCパターンについては、例えば、E.Gamma,R.Helem,J.Johnson,J.Vissides,「デザインパターン」(本位田真一、吉田和樹監訳、ソフトバンク、1995)、及び、F.Bushmann,R.Meunier,H.Rohnert,P.Sommerlad,M.Stal,「ソフトウェアアーキテクチャ」(金澤典子他訳、トッパン、1999)に詳細が記載されている。MVCは、データ集合を保持するModelオブジェクトと、そのModelオブジェクトからデータの値を取得してディスプレイ上に表示するViewオブジェクトと、ユーザーの入力イベントを受け取りViewオブジェクトの情報に基づいてModelオブジェクトの内容を変更するControllerオブジェクトから構成される。
【0004】
MVCにおいては、データの更新イベントがModelオブジェクトからViewオブジェクトへ通知され、それを受けたViewオブジェクトがModelオブジェクトの内容にアクセスして実際の表示処理を実行する。即ち、Modelオブジェクトは、表示処理の内容に依存しないように定義される。このため、一つのModelオブジェクトに対し複数のViewオブジェクトとControllerオブジェクトとを組合せることが可能である。このように、MVCを用いることにより、同一のデータ集合に対して複数のビューを表示し、的確なタイミングでそれを更新することが可能である。その際、Modelオブジェクトの定義は変更する必要が無いため既存のソースコードの変更を抑える拡張が可能である。
【0005】
また、ユーザーの理解及び操作を助けるため、データ集合を異なる抽象度で複数ビューに表示することが必要となる場合がある。その場合、データの抽象度に応じて元のデータ集合の一部を変換し、又は新たな表示パラメータを追加することが必要になる。また、データ集合を共有する他のビューの処理に影響が及ばないようにすることが必要になる。従来は、これを、オブジェクト指向ソフトウェア構成技術におけるPAC(Presentation, Abstraction, Control)パターンによって実現している。PACパターンについては、例えば、F.Bushmann,R.Meunier,H.Rohnert,P.Sommerlad,M.Stal,「ソフトウェアアーキテクチャ」(金澤典子他訳、トッパン、1999)に詳細が記載されている。
【0006】
PACは、複数のControlオブジェクトをポインタによってツリー状に構成し、下位の複数のオブジェクトが上位の一つのオブジェクトを共有し参照する。データ集合はAbstractionオブジェクトに格納され、データの表示及び操作の処理はPresentationオブジェクトが実行する。Controlオブジェクトは、二つのオブジェクト間に介在し、データアクセスの制御及びメッセージの転送を行う。
【0007】
PACにおいては、Abstractionオブジェクトへのアクセスの際にControlオブジェクトを介してツリーの上位のAbstractionオブジェクトから予めデータの内容をコピーしておくか又はアクセスが行われた時点で間接的にアクセスを行う。また、更新イベントの通知の際、ツリーの上位から下位へブロードキャストを行う。このように、PACを用いることにより、抽象度に応じてデータの変換又は表示パラメータの追加等を行うことが可能になる。また、データ集合を共有する他のビューの処理に影響が及ばないようにすることが可能になる。
【0008】
しかしながら、PACにおけるデータ集合の共有関係は、Controlオブジェクトを定義する際にツリーの親又は子として実装されたControlオブジェクトにより固定的に決定される。即ち、同じ種類のControlオブジェクトが兄弟関係にあるノードとして追加されるような数的な変更はコーディングレスに行うことができるが、親ノードの種類、子ノードの種類、多段階の共有関係における段数、それらの間の順序等、構造的な変更を行うことはできない。
【0009】
高度な対話処理を行うデータ表示システムでは、データ集合の共有関係を構造的に変更できることが望ましいが、PACでは、それらの変更が生じた場合はソースコードを逐一修正することによって対応する必要がある。
【0010】
データ表示システムにおいて、データ集合を管理するオブジェクト、即ちデータ管理オブジェクトの定義の良否は、開発コストに大きな影響を与える。MVCにおいては、Modelオブジェクトがデータ管理オブジェクトに相当する。PACにおいては、ControlオブジェクトとAbstractionオブジェクトとの組がデータ管理オブジェクトに相当する。
【0011】
MVCを用いる場合、Modelオブジェクトは常に一つのオブジェクトとなる。これは、処理の定義を分割管理することができないことを意味する。従って、表示内容の色、大きさ、位置等を制御するパラメータ(表示パラメータ)の数又は表示を更新するイベント(更新イベント)の種類が増加した場合等には、Modelオブジェクトの定義はそれらを単純に包含したものになる。
【0012】
このため、MVCでは表示の多様性に伴ってプログラムロジックが急激に複雑化する傾向がある。また、表示機能の仕様を変更する際、一度に大量のソースコードを解析する必要がある。更に、その変更内容の事前検証、実装変更、試験、デバッグ等の作業コストが増大し、間違いも生じ易くなる。特に、変更が局所的な場合でもその影響は広域に及ぶため、作業効率は著しく低下する。また、プログラムの保守及び管理においても、仕様の微細な違いにより多数のバリエーションが発生する。
【0013】
PACを用いる場合、MVCのModelオブジェクトに相当する機能はAbstractionオブジェクトとControlオブジェクトとで実現される。Controlオブジェクトが構成するツリーに着目すると、データ管理オブジェクトに相当する処理要素は複数存在する。しかし、これらは機能の分割によるものではなく、それぞれが単独のデータ管理オブジェクトとして機能するものであるため、重複する定義内容が多い。このため、データ管理オブジェクト(AbstractionオブジェクトとControlオブジェクトとの組)一つを記述するのに必要なソースコード量はMVCと基本的に変わらず、MVCが抱える課題は改善されない。
【0014】
更に、PAC上でデータ集合の共有関係を構造的に変更する場合には、逐一ソースコードの修正が必要である。このことから、MVCの課題と相俟って保守及び管理作業の効率の低下及びプログラムの質の低下が顕著に現れる。
【0015】
具体的な例として、地図表示プラットフォームRouteViewについて説明する。RouteViewは、業務内容毎に作成されたアプリケーションを読み込み、それに基づいて屋外通信施設等の管理データベースを検索し、地図データと重ね合わせてグラフィック表示する機能を提供する。また、ユーザーはポインティングデバイスによって図形を選択し、その内容に基づいて新たな検索を行い、別のウィンドウに結果を表示することができる。
【0016】
RouteViewは、OPENSTEP上に実装されており、プログラミング言語はObjective-Cを用いている。Objective-Cでは、メッセージ識別子による応答可能オブジェクトの判定、メッセージ受信時における他オブジェクトへの転送等の実行時機能が利用できる。そのため、メッセージ送信処理は直接実装することができる。
【0017】
図13は、RouteViewの主要なオブジェクトの構成を示す図である。矩形で描かれたオブジェクトがデータ管理オブジェクトであり、円で描かれたオブジェクトが外部オブジェクトである。データ管理オブジェクトには、Document Controller、Document及びViewがある。Document Controllerは、RouteViewに対して常に一つだけ存在し、OS上における動作環境設定及びデータベースに対する動作パラメータを保持する。Documentは、RouteViewにロードされた業務アプリケーション毎に存在し、アプリケーションの動作パラメータを保持する。
【0018】
外部オブジェクトは、検索結果データ毎に存在し、地図図形表示に必要な表示パラメータ及びポインティングデバイスに対する動作条件等の動作パラメータを保持する。外部オブジェクトには、システム設定GUI表示オブジェクト、データベース検索オブジェクト、アプリケーションローダ、アプリケーション設定GUI表示オブジェクト、地図画面表示オブジェクト、ウィンドウ表示オブジェクト等が存在する。これらの外部オブジェクトは、データ管理オブジェクトにアクセスして各種入出力処理を行う。
【0019】
また、RouteViewで定義される管理カテゴリは、Global、Application、View、Map、Graphic及びDataである。Globalは共通パラメータであり、例えば印刷のページサイズ、作業ディレクトリの位置、サイズ等である。Applicationは業務アプリケーションのパラメータであり、例えばビュー構成に関する情報等である。Viewはビューに関連するGUIのパラメータであり、例えば表示拡大率、図形選択モード等である。Mapは背景となる地図のパラメータであり、例えば地図の種類、縮尺率、地図ファイル検索ディレクトリ等である。Graphicは図形生成のためのパラメータであり、例えば生成図形の種類、色、サイズ、表示モード等である。Dataは設備管理データベース検索結果データであり、例えば検索結果のテーブルデータ、特定カラムの最大値、最小値等である。
【0020】
図14は、従来技術によって複数ビュー表示を行う場合のデータ管理方法を説明するための図である。図示のように、表示パラメータ(管理カテゴリGraphic)と検索結果(管理カテゴリData)とのデータ共有関係を変更した時に、(a)(b)(c)のようにDocumentオブジェクトとViewオブジェクトとの管理処理の内容が異なってしまう。これを実装する場合は、それぞれの共有関係に応じて異なるバリエーションを実装する方法、これらの機能を全て実現するオブジェクトを実装する方法等が考えられる。しかしながら、前者は多くのバリエーションを維持管理するために多大のコストを必要とし、後者は複雑な処理を定義するために多大のコストを必要とする。
【0021】
図15は、従来技術によって異なる抽象度により複数ビュー表示の追加を行う場合のデータ管理方法を説明するための図である。具体的には、(b)View'オブジェクトに対応するウィンドウで地図上の範囲を指定し、より詳細な地図の表示を(c)Detail Viewオブジェクトとそれに対応するウィンドウとで行う場合を示す。ビューの追加に際して、各データ管理オブジェクトの定義に対する修正の必要性は次の通りである。
【0022】
先ず、(c)Detail Viewオブジェクトは、上位の(b)View'オブジェクトからデータをコピー又は参照するよう新規に定義する必要がある。次に、(b)View'オブジェクトは、追加前のViewオブジェクトに対して管理カテゴリMapのデータ管理が加えられているため、定義の修正が必要である。また、(a)Document'オブジェクトについても(b)View'オブジェクトに対する管理カテゴリMapの追加に伴い、上位の管理カテゴリMapとしてデータを公開するための修正が必要になる。更に、(a)(b)(c)の間で適切にデータ更新イベントが伝播されるように、この共有関係専用の定義を行わなければならない。
【0023】
以上示したように、抽象度の異なるビュー表示を追加する場合、多くのデータ管理オブジェクトに修正を加えることが必要になる。この状況は、図14で示した複数ビュー表示のバリエーションと組合された場合に更に顕著になる。このように、従来技術によれば、抽象度の異なるビューの開発コストが著しく大きくなることがわかる。
【0024】
【発明が解決しようとする課題】
本発明の目的は、種々のバリエーションを複数のビューに表示する場合に、データの共有関係の構造的変更をコーディングレスで行うことができ、新たな抽象度のビューの追加を既存のソースコードの僅かな修正によって行うことができるデータ表示方法及びデータ表示装置を提供することにある。
【0025】
【課題を解決するための手段】
本発明のデータ表示方法は、上記の目的を達成するため、データ管理オブジェクトに記憶されたデータを、表示オブジェクトによりコンピュータディスプレイ上に複数のビューとして表示するデータ表示方法において、データ管理オブジェクトが、相互の関連性に基づいて複数のグループに分割されたデータを記憶すると共に、前記グループを表す管理カテゴリ識別子、及び該データ管理オブジェクトの処理動作を表す管理ポリシー識別子を保持し、前記データ管理オブジェクトとの間及び表示オブジェクトとの間で関連を有して該データ管理オブジェクトと表示オブジェクトとの間を仲介オブジェクトが仲介すると共に、該仲介オブジェクトが、相互に関連を有してツリー構造を構成し、関連を有するデータ管理オブジェクトの探索処理を、該データ管理オブジェクトに保持された管理カテゴリ識別子及び管理ポリシー識別子に応じて、前記ツリー構造に沿って行い、表示オブジェクトが、前記データ管理オブジェクトにより記憶されたデータの表示処理を行うことを特徴とする。
【0026】
本発明のデータ表示方法において、表示処理を実行するためのメッセージを送信する場合、表示オブジェクトが、メッセージを仲介オブジェクトに送出し、仲介オブジェクトが、関連を有するデータ管理オブジェクトの中から前記メッセージに応答可能なデータ管理オブジェクトを検索し、該応答可能なデータ管理オブジェクトが存在しない場合は、ツリー構造に沿って他の仲介オブジェクトに再帰的検索を依頼し、該再帰的検索により前記応答可能なデータ管理オブジェクトが存在する場合は、該データ管理オブジェクトに対してメッセージを送信し、前記再帰的検索により応答可能なデータ管理オブジェクトが存在しない場合は、メッセージ送信エラーを発生するようにしてもよい。
【0027】
本発明のデータ表示方法において、データ管理オブジェクトに記憶されたデータの更新イベントを通知する場合、データ管理オブジェクトが、更新イベントを仲介オブジェクトに送出し、仲介オブジェクトが、更新イベントに含まれる管理カテゴリ識別子に基づいて、該仲介オブジェクトに関連する表示オブジェクトに更新イベントを通知し、更新イベントに含まれる管理カテゴリ識別子及び該仲介オブジェクトに関連するデータ管理オブジェクトの管理ポリシー識別子に基づいて、ツリー構造に沿って他の仲介オブジェクトに再帰的に更新イベントを通知するようにしてもよい。
【0028】
本発明のデータ表示方法において、データ管理オブジェクトの初期化処理を行う場合、仲介オブジェクトが、初期化対象となる管理カテゴリ識別子を保持するデータ管理オブジェクトを検索し、該管理カテゴリ識別子を保持するデータ管理オブジェクトが存在する場合は、データ管理ポリシー識別子がデータの初期化処理を表しているデータ管理オブジェクトに対して、該仲介オブジェクトのツリー構造に沿った他の仲介オブジェクトに関連するデータ管理オブジェクトのデータからコピーする初期化処理を実行し、前記管理カテゴリ識別子を保持するデータ管理オブジェクトが存在しない場合は、ツリー構造に沿って他の仲介オブジェクトが再帰的に前記初期化処理を実行し、データ管理オブジェクトの参照処理を行う場合、仲介オブジェクトが、参照対象となる管理カテゴリ識別子を保持するデータ管理オブジェクトを検索し、該管理カテゴリ識別子を保持するデータ管理オブジェクトが存在する場合は、データ管理ポリシー識別子がデータの参照処理を表しているデータ管理オブジェクトに対して、該仲介オブジェクトのツリー構造に沿った他の仲介オブジェクトに関連するデータ管理オブジェクトのデータを参照する参照処理を実行し、前記管理カテゴリ識別子を保持するデータ管理オブジェクトが存在しない場合は、ツリー構造に沿って他の仲介オブジェクトが再帰的に前記参照処理を実行するようにしてもよい。
【0029】
また、本発明のデータ表示装置は、任意のデータをコンピュータディスプレイ上に複数のビューとして表示するデータ表示装置において、相互の関連性に基づいて複数のグループに分割したデータをそれぞれ記憶し、前記グループを表す管理カテゴリ識別子及び処理動作を表す管理ポリシー識別子をそれぞれ保持する複数のデータ管理オブジェクトと、該データ管理オブジェクトにより記憶されたデータの表示処理をそれぞれ行う複数の表示オブジェクトと、相互に関連を有してツリー構造を構成すると共に、前記データ管理オブジェクトとの間及び表示オブジェクトとの間で関連を有して該データ管理オブジェクトと表示オブジェクトとの間を仲介し、関連を有するデータ管理オブジェクトの探索処理を、該データ管理オブジェクトに保持された管理カテゴリ識別子及び管理ポリシー識別子に応じて、前記ツリー構造に沿ってそれぞれ行う複数の仲介オブジェクトとを備えたことを特徴とする。
【0030】
このような本発明によれば、管理カテゴリ毎にデータ管理オブジェクトの定義及び動作が独立していること、データ管理オブジェクトの動作を管理ポリシーの変更によって実行時に変更することができること、仲介オブジェクトの情報交換機能によりデータ管理オブジェクト及び表示オブジェクトを含む外部オブジェクトを定義する際に情報交換のための処理を記述する必要が無いこと、データ管理オブジェクトを単純な定義の集合によって構成できるのでプログラムロジックの複雑化を避けることができること、データ共有構造の変更をコーディングレスに行うことができること等、従来技術には無い特徴を実現することができる。
【0031】
【発明の実施の形態】
図1は、本発明のデータ表示装置の構成例を示す図である。データ管理オブジェクト10は、従来のMVCのModelオブジェクト又はPACのAbstractionオブジェクトとControlオブジェクトとの組によって実現されていたデータ管理オブジェクトを複数に分割したものに相当する。データ管理オブジェクト10は、データ間の相互依存性、データ変更イベントの類似性及びデータアクセスメソッドの関連性を基準に、グループ化されたデータ集合及びメソッド定義によって構成する。データ管理オブジェクトの定義は、管理処理の内容に応じて、基本データ管理クラスからの継承によって作成する。ここで継承とは、オブジェクト指向プログラミングにおけるソースコードの定義手法を指す。
【0032】
管理カテゴリ識別子11は、データ管理オブジェクト10のグループ化の観点を表すデータである。これは、アプリケーション開発者が、アプリケーションのドメインに応じて任意に定義することができる。
【0033】
管理ポリシー識別子12は、各データ管理オブジェクト10の動作を制御するデータである。これは、Block、Copy、Refer及びShareの4値によって表される。それぞれの意味は後述する。
【0034】
仲介オブジェクト13-1は、メッセージ送信処理、変更イベント通知処理及びデータ内容管理処理において、情報交換の仲介機能を担う。更に、仲介オブジェクト13-1は、複数のデータ管理オブジェクト10との間に双方向ポインタを持つ。一つの仲介オブジェクトに対し、同一の管理カテゴリ識別子を持つデータ管理オブジェクトが二つ以上関連付けられることは基本的に無いものとする。また、仲介オブジェクト13-1は、仲介オブジェクト13-2のデータを参照するため双方向ポインタを持つ。更に、仲介オブジェクト13-3及び13-4に対してデータを公開するため双方向ポインタを持つ。
【0035】
共有関係ツリー14は、仲介オブジェクト13-1、13-2、13-3及び13-4によって構成されるツリー構造全体である。外部オブジェクト15は、データにアクセスする仲介オブジェクト13-1への片方向ポインタを持つ。外部オブジェクト15は、例えば、実際に表示処理を行う表示オブジェクトを含む。
【0036】
図2は、更新イベント伝播処理に着目した本発明のデータ表示装置の構成例を示す図である。更新イベント通知対象リスト20は、更新イベントが発生した場合に通知すべき外部オブジェクトを記憶するリストである。管理カテゴリ識別子21は、更新イベント通知対象リスト20の各要素に一つずつ格納される。外部オブジェクトへのポインタ22は、管理カテゴリ識別子21に関する更新イベントが発生した時に通知する外部オブジェクトへのポインタである。メッセージ識別子23は、管理カテゴリ識別子21に関する更新イベントが発生して外部オブジェクトへのポインタ22が指すオブジェクトへ通知する時に呼び出されるメッセージの識別子である。
【0037】
図3は、共有関係ツリー14におけるデータ内容管理、更新イベント通知及びメッセージ送信の各処理について、管理ポリシー識別子に対応させて動作内容を表すテーブルを示す図である。データ内容管理は、データ管理オブジェクトにおいてデータの値を参照又は変更する時のアクセス先の制御を示す。更新イベント通知は、データの値が変更された時の伝播範囲の制御を示す。メッセージ送信は、外部オブジェクトから仲介オブジェクトへ送られるメッセージの送信先の制御を示す。また、テーブルの最右側欄は、データ管理オブジェクト自体が仲介オブジェクトのポインタ先に無い場合の処理を示す。
【0038】
図4は、メッセージ送信処理の基本動作のフローを示す図である。表示オブジェクト等の外部オブジェクトから仲介オブジェクトへメッセージが送出されると、仲介オブジェクトはメッセージの送信先の探索処理を開始する。探索処理では、仲介オブジェクトが保持する複数のポインタからメッセージに反応可能なデータ管理オブジェクトを検索する。該当するデータ管理オブジェクトが得られた場合はそれにメッセージを送信し、探索処理を終了する。該当するデータ管理オブジェクトが得られなかった場合は、共有関係ツリーにおいて親に相当する他の仲介オブジェクトに対して探索処理を再帰的に実行する。共有関係ツリーの最も上位の仲介オブジェクトは、親に相当するオブジェクトが存在しないので、メッセージ送信エラーを発生し、探索処理を終了する。
【0039】
図5は、イベント通知処理の基本動作のフローを示す図である。データ管理オブジェクトにおいてデータの値の変更が行われた場合、それを参照するオブジェクトに更新イベントの通知を行う必要がある。先ず、データ管理オブジェクトは、自己へのポインタを保持する仲介オブジェクトへ更新イベントを通知する。この時、更新イベントの情報に、データ管理オブジェクトの管理カテゴリ識別子の情報を含むように通知する。
【0040】
その通知を受けた仲介オブジェクトは、その通知の伝播処理を開始する。伝播処理では、更新イベントに含まれるカテゴリ情報に基づいて仲介オブジェクトが保持する複数のポインタから同じカテゴリのデータ管理オブジェクトを検索する。該当するデータ管理オブジェクトが得られない場合は、共有関係ツリーにおいて子に相当する他の仲介オブジェクト全てについて伝播処理を再帰的に実行する。該当するデータ管理オブジェクトが得られた場合は、管理ポリシー識別子を調べる。管理ポリシー識別子がRefer又はShareの場合、仲介オブジェクトに登録されているイベント通知対象の外部オブジェクトへ更新イベントを通知し、引き続いて共有関係ツリーにおいて子に相当する他の仲介オブジェクト全てについて伝播処理を再帰的に実行する。識別子がBlock又はCopyの場合、イベントは通知せず、伝播処理を終了する。
【0041】
図6は、データ内容管理処理の初期化時の基本動作のフローを示す図である。データ内容の初期化は、共有関係ツリー上の仲介オブジェクトにデータ管理オブジェクトのポインタが設定されるか又は明示的に外部オブジェクトから管理カテゴリを指定して初期化メッセージが送出されることによって行われる。それを受けた仲介オブジェクトが初期化処理を開始する。
【0042】
初期化処理では、仲介オブジェクトが保持する複数のポインタから初期化対象となる管理カテゴリのデータ管理オブジェクトを検索する。該当するデータ管理オブジェクトが得られない場合は、共有関係ツリーにおいて親に相当する他の仲介オブジェクトについて初期化処理を再帰的に実行する。該当するデータ管理オブジェクトが得られた場合は、既に初期化されているか否かを調べる。既に初期化されている場合は初期化処理を終了し、未だ初期化されていない場合は、引き続き管理ポリシー識別子を調べる。識別子がCopyの場合、先ず共有関係ツリーにおいて親に相当する他の仲介オブジェクトについて初期化処理を再帰的に実行し、引き続いて該当する管理カテゴリ識別子を持つ先祖ノードのデータ管理オブジェクトから必要な部分をコピーし、初期化処理を終了する。識別子がCopy以外の場合、何も実行せずに初期化処理を終了する。
【0043】
図7は、データ内容管理処理の参照時の基本動作のフローを示す図である。データ内容の参照は、データ管理オブジェクトにおいて自己が保持していないデータを参照する時に発生する。それを受けた仲介オブジェクトは参照処理を開始する。
【0044】
参照処理では、仲介オブジェクトが保持する複数のポインタから参照対象となる管理カテゴリのデータ管理オブジェクトを検索する。該当するデータ管理オブジェクトが得られない場合は、共有関係ツリーにおいて親に相当する他の仲介オブジェクトについて参照処理を再帰的に実行する。該当するデータ管理オブジェクトが得られた場合は、それが保持している管理ポリシー識別子を調べる。管理ポリシーがReferの場合は、先ず共有関係ツリーにおいて親に相当する他の仲介オブジェクトについて参照処理を再帰的に実行し、引き続いて該当する管理カテゴリ識別子を持つ先祖ノードのデータ管理オブジェクトから必要な部分を参照し、参照処理を終了する。識別子がRefer以外の場合、何も実行せずに参照処理を終了する。
【0045】
図8は、データ内容管理処理の動作概念を示す図である。ツリー中段の仲介オブジェクトにおいて、動作対象の管理カテゴリに該当するデータ管理オブジェクトが存在する場合、そのデータ管理オブジェクトのポリシーが異なる場合の動作の違いを示す。図(a)はBlockの場合、図(b)はCopyの場合、図(c)はReferの場合、図(d)はShareの場合をそれぞれ示す。
【0046】
図9は、イベント通知処理の動作概念を示す図である。図8の場合と同様にデータ管理オブジェクトのポリシーが異なる場合の動作の違いを示す。図(a)はBlock及びCopyの場合、図(b)はRefer及びShareの場合をそれぞれ示す。
【0047】
図10は、データ管理オブジェクトが無い場合のデータ内容管理処理、メッセージ送信処理及びイベント通知処理の動作概念を示す図である。データ管理オブジェクトが無い状態とは、ツリー中段の仲介オブジェクトに動作対象の管理カテゴリに該当するデータ管理オブジェクトが存在しない場合を意味する。
【0048】
【実施例】
次に本発明の具体的な実施例として、地図表示プラットフォームRouteViewについて説明する。RouteViewは、上述のように、業務内容毎に作成されたアプリケーションを読み込み、それに基づいて屋外通信施設等の管理データベースを検索し、地図データと重ね合わせてグラフィック表示する機能を提供する。また、ユーザーはポインティングデバイスによって図形を選択し、その内容に基づいて新たな検索を行い、別のウィンドウに結果を表示することができる。
【0049】
RouteViewは、OPENSTEP上に実装されており、プログラミング言語はObjective-Cを用いている。本発明はRouteViewの内部クラスとして組み込まれているため、同じプログラミング言語を用いて実装されている。Objective-Cでは、メッセージ識別子による応答可能オブジェクトの判定、メッセージ受信時における他オブジェクトへの転送等の実行時機能が利用できる。そのため、メッセージ送信処理は直接実装することができる。
【0050】
Java、C++等の他のオブジェクト指向言語では、このような実行時機構を利用できない場合があるが、その場合は、外部オブジェクトからのメッセージ送信を単一メッセージの呼び出しに置き換えることによって実現することができる。即ち、上述のメッセージ識別子は、該当する単一メッセージの引数に文字列として指定する等により、上述の説明と同様に仲介オブジェクト内の処理で参照することができる。
【0051】
また、Java、C++等の他のオブジェクト指向言語上で、多少の作業コストを伴っても通常のメッセージ送信を行うことが必要になる場合がある。これに対しては、仲介オブジェクト側に通常のメッセージから単一メッセージへの変換メソッドを実装する方法がある。この場合は、多数の変換メソッドを定義しなければならないが、これらのソースコードを生成する作業は単純であるため、パール(perl)等のスクリプト言語の利用によって効率化することが可能である。
【0052】
この実施例におけるRouteViewの主要オブジェクト及び管理カテゴリは、上述の従来例におけるそれらと同様とする。図11は、本発明のデータ表示方法により複数ビューの表示を行う場合の例を示す図である。外部オブジェクトは共有関係ツリー上の同じレベルの仲介オブジェクトにアクセスする。仲介オブジェクトは、管理カテゴリ毎にメッセージ送信、更新イベント通知及びデータアクセス転送を行う。これによって、外部オブジェクトの定義内容は、データ管理オブジェクトが共有関係ツリーのどこに存在するかに影響を受けない。従って、Graphic及びDataの両カテゴリのデータ管理オブジェクトをツリー上の任意の位置に移動することができる。即ち、ウィンドウ間で共有させたいデータについては(a)のレベルにデータ管理オブジェクトを配置し、ローカルに保持したいデータについては(b)のレベルにデータ管理オブジェクトを配置することにより、コーディングレスで共有関係を変更することができる。
【0053】
図12は、本発明のデータ表示方法により異なる抽象度の複数ビューの表示を行う場合の例を示す図である。管理カテゴリ単位で上位のデータのコピー(管理ポリシーはCopy)又は参照(管理ポリシーはRefer)を行うように動作を指定することができる。新たなビューの追加のために必要な定義はデータ管理オブジェクトMap'のみであり、これはデータ管理オブジェクトMapから継承によって記述できる。従って、上述の従来例に比べて定義の数を低く抑えることができる。
【0054】
一方、本発明によれば、管理カテゴリ毎に四つの管理ポリシー、即ち、Block、Copy、Refer及びShareについて処理を定義することが必要になる。これは、従来は単一のデータ管理オブジェクト上で必要な処理のみを記述していた場合に比べて一見無駄のように見える。しかし、本発明においては、各データ管理オブジェクトを実装する際にその継承元となる基本クラスで、管理ポリシー毎の基本的なデータ管理処理を提供しており、このため、開発者が定義する内容は、実際にシステムで利用する部分について差分の処理のみを記述すればよい。従って、一つの管理カテゴリについての記述量に注目した場合でも、本発明は従来技術に比べて処理の定義量が増えることはない。
【0055】
本発明においては、共有ツリー上を子ノードの方向に更新イベント通知を伝播する場合、親ノードがその子孫の管理ポリシーを事前に調べて伝播が必要か否かをキャッシュしておくことにより、処理効率を向上させることができる。また、共有ツリー上を親ノードの方向にメッセージ送信の送信先を探索する場合、子ノードがその先祖の反応メソッドの履歴を記憶して探索が必要か否かをキャッシュしておくことにより、処理効率を向上させることができる。これらの場合、キャッシュの内容は、共有関係ツリーの構造変更、データ管理オブジェクトの生成、削除、管理ポリシーの変更等があった場合にはクリアする。
【0056】
本発明においては、また、更新イベント通知を行う場合、イベント発生に対する即時性がさほど要求されない画面表示の場合は、データ変更の都度実行せずに、表示対象となるデータ集合の取得及び変換並びに表示の際に参照する表示パラメータの変更等が全て完了した後にそれらの結果をまとめて反映させることにより、処理効率を向上させることができる。外部オブジェクトをイベント通知対象として登録する際に、即時通知か遅延通知かいずれかを指定し、必要に応じて使い分けるようにしてもよい。
【0057】
本発明においては、また、仲介オブジェクトから遅延通知を行う際に、同一外部オブジェクトの同一メッセージが登録されている場合は、メッセージ送信を1回のみ行うようにしてもよい。また、外部オブジェクトから、更新が発生した管理カテゴリを問い合わせる機能を具えるようにしてもよい。この機能により、外部オブジェクトの定義の際に、メッセージ処理を一つに統一することができ、更に、その中で、管理カテゴリ間での処理の優先順位、排他処理、実行順序制御等を簡潔に記述することができる。即ち、外部オブジェクト側の定義をシンプルにすることができる。
【0058】
【発明の効果】
以上説明したように、本発明によれば、複数ビュー間のデータの共有関係を変更する場合にコーディングレスで行うことができ、且つ、新規のビュー機能を追加する場合に元のソースコードに対する影響を最小にすることができる。従って、小さい開発コストで種々のバリエーションの複数ビュー表示を実現することができる。
【図面の簡単な説明】
【図1】 本発明のデータ表示装置の構成例を示す図である。
【図2】 更新イベント伝播処理に着目した本発明のデータ表示装置の構成例を示す図である。
【図3】 共有関係ツリーにおけるデータ内容管理、更新イベント通知及びメッセージ送信の各処理について、管理ポリシー識別子に対応させて動作内容を表すテーブルを示す図である。
【図4】 メッセージ送信処理の基本動作のフローを示す図である。
【図5】 イベント通知処理の基本動作のフローを示す図である。
【図6】 データ内容管理処理の初期化時の基本動作のフローを示す図である。
【図7】 データ内容管理処理の参照時の基本動作のフローを示す図である。
【図8】 データ内容管理処理の動作概念を示す図である。
【図9】 イベント通知処理の動作概念を示す図である。
【図10】 データ管理オブジェクトが無い場合のデータ内容管理処理、メッセージ送信処理及びイベント通知処理の動作概念を示す図である。
【図11】 本発明のデータ表示方法により複数ビューの表示を行う場合の例を示す図である。
【図12】 本発明のデータ表示方法により異なる抽象度の複数ビューの表示を行う場合の例を示す図である。
【図13】 RouteViewの主要なオブジェクトの構成を示す図である。
【図14】 従来技術によって複数ビュー表示を行う場合のデータ管理方法を説明するための図である。
【図15】 従来技術によって異なる抽象度により複数ビュー表示の追加を行う場合のデータ管理方法を説明するための図である。
【符号の説明】
10 データ管理オブジェクト
11 管理カテゴリ識別子
12 管理ポリシー識別子
13 仲介オブジェクト
14 共有関係ツリー
15 外部オブジェクト
20 更新イベント通知対象リスト
21 管理カテゴリ識別子
22 外部オブジェクトへのポインタ
23 メッセージ識別子
Claims (3)
-
データ管理オブジェクトに記憶されたデータを、表示オブジェクトによりコンピュータディスプレイ上に複数のビューとして表示するデータ表示方法において、
データ管理オブジェクトが、相互の関連性に基づいて複数のグループに分割されたデータを記憶すると共に、前記グループを表す管理カテゴリ識別子、及び該データ管理オブジェクトの処理動作を表す管理ポリシー識別子を保持し、
前記データ管理オブジェクトとの間及び表示オブジェクトとの間で関連を有して該データ管理オブジェクトと表示オブジェクトとの間を仲介オブジェクトが仲介すると共に、
該仲介オブジェクトが、相互に関連を有してツリー構造を構成し、関連を有するデータ管理オブジェクトの探索処理を、該データ管理オブジェクトに保持された管理カテゴリ識別子及び管理ポリシー識別子に応じて、前記ツリー構造に沿って行い、
表示オブジェクトが、前記データ管理オブジェクトにより記憶されたデータの表示処理を行うデータ表示方法であって、
表示処理を実行するためのメッセージを送信する場合、
表示オブジェクトが、メッセージを仲介オブジェクトに送出し、
仲介オブジェクトが、関連を有するデータ管理オブジェクトの中から前記メッセージに応答可能なデータ管理オブジェクトを検索し、該応答可能なデータ管理オブジェクトが存在しない場合は、ツリー構造に沿って他の仲介オブジェクトに再帰的検索を依頼し、該再帰的検索により前記応答可能なデータ管理オブジェクトが存在する場合は、該データ管理オブジェクトに対してメッセージを送信し、前記再帰的検索により応答可能なデータ管理オブジェクトが存在しない場合は、メッセージ送信エラーを発生することを特徴とするデータ表示方法。 -
データ管理オブジェクトに記憶されたデータを、表示オブジェクトによりコンピュータディスプレイ上に複数のビューとして表示するデータ表示方法において、
データ管理オブジェクトが、相互の関連性に基づいて複数のグループに分割されたデータを記憶すると共に、前記グループを表す管理カテゴリ識別子、及び該データ管理オブジェクトの処理動作を表す管理ポリシー識別子を保持し、
前記データ管理オブジェクトとの間及び表示オブジェクトとの間で関連を有して該データ管理オブジェクトと表示オブジェクトとの間を仲介オブジェクトが仲介すると共に、
該仲介オブジェクトが、相互に関連を有してツリー構造を構成し、関連を有するデータ管理オブジェクトの探索処理を、該データ管理オブジェクトに保持された管理カテゴリ識別子及び管理ポリシー識別子に応じて、前記ツリー構造に沿って行い、
表示オブジェクトが、前記データ管理オブジェクトにより記憶されたデータの表示処理を行うデータ表示方法であって、
データ管理オブジェクトに記憶されたデータの更新イベントを通知する場合、
データ管理オブジェクトが、更新イベントを仲介オブジェクトに送出し、
仲介オブジェクトが、更新イベントに含まれる管理カテゴリ識別子に基づいて、該仲介オブジェクトに関連する表示オブジェクトに更新イベントを通知し、更新イベントに含まれる管理カテゴリ識別子及び該仲介オブジェクトに関連するデータ管理オブジェクトの管理ポリシー識別子に基づいて、ツリー構造に沿って他の仲介オブジェクトに再帰的に更新イベントを通知することを特徴とするデータ表示方法。 -
データ管理オブジェクトに記憶されたデータを、表示オブジェクトによりコンピュータディスプレイ上に複数のビューとして表示するデータ表示方法において、
データ管理オブジェクトが、相互の関連性に基づいて複数のグループに分割されたデータを記憶すると共に、前記グループを表す管理カテゴリ識別子、及び該データ管理オブジェクトの処理動作を表す管理ポリシー識別子を保持し、
前記データ管理オブジェクトとの間及び表示オブジェクトとの間で関連を有して該データ 管理オブジェクトと表示オブジェクトとの間を仲介オブジェクトが仲介すると共に、
該仲介オブジェクトが、相互に関連を有してツリー構造を構成し、関連を有するデータ管理オブジェクトの探索処理を、該データ管理オブジェクトに保持された管理カテゴリ識別子及び管理ポリシー識別子に応じて、前記ツリー構造に沿って行い、
表示オブジェクトが、前記データ管理オブジェクトにより記憶されたデータの表示処理を行うデータ表示方法であって、
データ管理オブジェクトの初期化処理を行う場合、
仲介オブジェクトが、初期化対象となる管理カテゴリ識別子を保持するデータ管理オブジェクトを検索し、該管理カテゴリ識別子を保持するデータ管理オブジェクトが存在する場合は、データ管理ポリシー識別子がデータの初期化処理を表しているデータ管理オブジェクトに対して、該仲介オブジェクトのツリー構造に沿った他の仲介オブジェクトに関連するデータ管理オブジェクトのデータからコピーする初期化処理を実行し、前記管理カテゴリ識別子を保持するデータ管理オブジェクトが存在しない場合は、ツリー構造に沿って他の仲介オブジェクトが再帰的に前記初期化処理を実行し、
データ管理オブジェクトの参照処理を行う場合、
仲介オブジェクトが、参照対象となる管理カテゴリ識別子を保持するデータ管理オブジェクトを検索し、該管理カテゴリ識別子を保持するデータ管理オブジェクトが存在する場合は、データ管理ポリシー識別子がデータの参照処理を表しているデータ管理オブジェクトに対して、該仲介オブジェクトのツリー構造に沿った他の仲介オブジェクトに関連するデータ管理オブジェクトのデータを参照する参照処理を実行し、前記管理カテゴリ識別子を保持するデータ管理オブジェクトが存在しない場合には、ツリー構造に沿って他の仲介オブジェクトが再帰的に前記参照処理を実行することを特徴とするデータ表示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000272567A JP3798935B2 (ja) | 2000-09-08 | 2000-09-08 | データ表示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000272567A JP3798935B2 (ja) | 2000-09-08 | 2000-09-08 | データ表示方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002082796A JP2002082796A (ja) | 2002-03-22 |
JP3798935B2 true JP3798935B2 (ja) | 2006-07-19 |
Family
ID=18758660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000272567A Expired - Fee Related JP3798935B2 (ja) | 2000-09-08 | 2000-09-08 | データ表示方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3798935B2 (ja) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63228335A (ja) * | 1987-03-18 | 1988-09-22 | Fujitsu Ltd | 計算機システムにおける事象通知・受取処理方式 |
US4953080A (en) * | 1988-04-25 | 1990-08-28 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system |
JPH0658624B2 (ja) * | 1990-03-30 | 1994-08-03 | インターナショナル・ビシネス・マシーンズ・コーポレーション | グラフィカル・ユーザ・インターフェース管理装置 |
JPH08297573A (ja) * | 1995-04-27 | 1996-11-12 | Fujitsu Ltd | オブジェクトデータ処理装置 |
JP4045468B2 (ja) * | 1996-05-30 | 2008-02-13 | 三菱電機株式会社 | グラフィカルユーザインタフェース操作器 |
JP3137238B2 (ja) * | 1998-05-27 | 2001-02-19 | 日本電気株式会社 | 階層化gui部品相互通信システム |
DE19954358A1 (de) * | 1999-01-07 | 2000-07-20 | Hewlett Packard Co | Benutzerrollenzugriffssteuerung |
JP3385991B2 (ja) * | 1999-01-26 | 2003-03-10 | 日本電気株式会社 | 階層化gui部品構造の更新方法ならびにそのシステム |
-
2000
- 2000-09-08 JP JP2000272567A patent/JP3798935B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002082796A (ja) | 2002-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5354603B2 (ja) | シナリオサポートを伴うプロデューサグラフ指向のプログラミングフレームワーク | |
AU2016201350B2 (en) | Managing objects using a client-server bridge | |
US5301270A (en) | Computer-assisted software engineering system for cooperative processing environments | |
CN103617037B (zh) | 用于web开发系统的开发方法和web开发系统 | |
US9804837B2 (en) | System and method for creating, managing, and reusing schema type definitions in services oriented architecture services, grouped in the form of libraries | |
US7774747B2 (en) | System and associated methods for software assembly | |
US4937760A (en) | Method for sharing common values implicitly among communicating generative objects | |
US20180321833A1 (en) | User interface for automated flows within a cloud based developmental platform | |
JP2580536B2 (ja) | オブジェクト指向言語における動的オブジェクトの管理方式 | |
US6178545B1 (en) | Method and apparatus for object oriented programming in component building, its storage medium, uses, support and object between-network-display | |
US10101972B1 (en) | Data modelling and flow engine for building automated flows within a cloud based developmental platform | |
US20030093433A1 (en) | Method and system for software application development and customizible runtime environment | |
US20040015822A1 (en) | Method and apparatus for dynamic assembly and verification of software components into flexible applications | |
US20190052542A1 (en) | System and method for providing visualizations of computing infrastructure using a domain-specific language for cloud services infrastructure | |
US6658644B1 (en) | Services-based architecture for a telecommunications enterprise | |
CN109960709B (zh) | 一种数据库驱动的处理方法、装置、设备及存储介质 | |
CN113656001A (zh) | 平台组件开发方法、装置、计算机设备及存储介质 | |
JP3712984B2 (ja) | 業務進捗制御装置及びその方法と、業務進捗制御プログラム及びそのプログラムを記録した記録媒体 | |
US11080102B2 (en) | System and method for developing modularized application | |
JP3798935B2 (ja) | データ表示方法 | |
CN103678687A (zh) | 基于配置系统的项目创建方法及装置 | |
US20050086665A1 (en) | Autonomous device driver | |
CN113626062B (zh) | 可信的应用集成 | |
US8069172B2 (en) | Re-executing query objects without affecting transaction data in an application development framework not providing for creation of multiple instances of the same query object | |
CN118210845A (zh) | 一种基于Spark计算引擎的环境隔离方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040902 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040928 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051018 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051216 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060117 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060316 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060322 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060418 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060421 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090428 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120428 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140428 Year of fee payment: 8 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |