(57)【要約】［課題］  アプリケーションソフトウエア間の情報連携を簡易・柔軟に実現する。［解決手段］  計算機画面上のウィンドウシステムにおいて、複数のプログラム間にＸＭＬその他のメタ言語で記述したデータ構造でやり取りするもので、必要な情報を通信する手段と当該情報に基づいて画面表示を行なう手段とから構成される。例えば生産、製造管理用のコンピュータシステムではtag識別子に設備名、ポイント名などの論理名称をデータ構造に定義し、送り手プログラム上の任意ポインティング操作で、マウス等のドラッグ操作から引き続いて受け手プログラム領域へドロップ操作が行なわれることで、メタで記述したデータをプログラム間で通信する。その結果、受け手プログラムは自律的にスキーマ解釈をして目的とされた画面表示動作を実行する。【特許請求の範囲】
【請求項１】
計算機画面上のウィンドウシステムにおいて、
ポインティングデバイスにより選択されかつドラッグされたオブジェクトに定義されたメタ言語で記述したデータ構造をストアする手段を有する送り手プログラムと、
該データ構造を記憶する手段と、
ポインティングデバイスによりドロップされたときに記憶されているメタ言語で記述したデータ構造をロードする手段および該データ構造を解読して画面表示を行なう手段を有する受け手プログラムと、
から構成されたウィンドウシステム。
【請求項２】
計算機画面上のウィンドウシステムにおいて、
送り手プログラムのウィンドウ上でポインティングデバイスによりオブジェクトを選択しドラッグするステップと、
ドラッグされたオブジェクトに定義されたメタ言語で記述したデータ構造を記憶するステップと、
受け手プログラムのウィンドウ上にポインティングデバイスをドロップするステップと、
受け手プログラムが記憶されているメタ言語で記述したデータ構造をロードし解読するステップと、
受け手プログラムがウィンドウに描画するステップと、
からなるウィンドウシステムの情報連携の方法。
【請求項３】
請求項１において、メタ言語をＸＭＬとしたウィンドウシステム。
【請求項４】
請求項２において、メタ言語をＸＭＬとしたウィンドウシステムの情報連携の方法。
【請求項５】
請求項１のウィンドウシステムにおいて、
前記記憶手段がリフレクト処理部を持ち、
リフレクト処理部は
予めすべてのプログラムの受け手属性を調べておくことでドロップ受け入れ可能なプログラムを探し、かつ受け入れ可能なプログラムの表示枠をハイライト表示すること
を特徴とするウィンドウシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピュータヒューマンインタフェースにかかる技術に関するものであり、製造業における生産管理、製造管理用のシステムその他のビジネスポータルとして多種多様の情報表示画面にかかるウィンドウシステムに用いられる。
【従来の技術】
【０００２】
昨今、コンピュータハードウエアおよびソフトウエアの進歩により、その端末表示画面は高精細になり表示画素数も向上したために、一画面上に複数のウィンドウを構成することが可能になり、そのウィンドウ毎に独立したプログラムが其々の機能を果せるようになってきた。
しかし、それらプログラムはほぼ独立の設計形態をなしており、プログラム間の連携は必ずしも取られておらず、連携を取ろうとするとそれぞれのプログラムの設計から見直しが必要であるが如くあり、密に情報連携を図ることは相当困難なものであった。
【０００３】
計算機内に存在する２つの機能を実行するものをプログラムA、およびプログラムBとよぶと、それらの間でドラッグ＆ドロップなどの操作でデータの通信をする場合、通信されるデータのフォーマットは固定であり、受け渡しされるデータの意味、データ型、データ長、渡されるデータの配置順番など、２つのプログラムA,B間で厳密に規定された形式を取る必要があった。従来では確かに、画面のウィンドウの切り方、タイリング貼付およびオーバーラップ割り付け等について、多くの技術が考え出されており、特許文献１の例もその好適な例の一つであったが、これは本発明の課題を解決するものではない。
【０００４】
図１にウィンドウシステムのイメージ図を示すが、ここで、中央から右側の領域において、上側のプラントのグラフィック画面を実行するプログラムA、下側のプロセス変数のトレンド（履歴グラフ）画面を実行するプログラムBとすると、プログラムAウィンドウ上にある図形オブジェクトを選択し、そこに定義されているプロセス変数の遷移を見たいことが多々ある。その操作としては、当該グラフィック・オブジェクトをドラッグ、ドロップ操作することが望まれる（図中点線で表示のオペレーションで示す）。そのためには、プログラムAとプログラムBの間で通信規約が定められ、それに則りプログラムAからプログラムBにその旨のデータを通信すれば実現できる。実際に、特許文献２にあるようなソフトウエアインタフェース機能を利用して設計すれば、高度な機能を実現することは可能である。
なお、マウス等のポインティングデバイス操作の用語として、「選択」はあるオブジェクト領域でボタン押下げすること、「ドラッグ」はボタンを押下げたまま勾引すること、および「ドロップ」はある画面領域でボタンを離すこと、などを一般的に意味するものである。
【０００５】
しかし、このようなやり方では仕様が固定的で、システムとしての拡張性からは問題がある。例えば、情報の受け手となるプログラムがトレンド画面ではなく、例えば別途の設備用保全管理画面であったような場合、そこではもっと上位概念の設備名などが望まれる場合があり、引き渡されるデータはプロセスのポイント名だけでは不充分でエリア名、装置名などのより上位論理名称が必要である。この場合、情報の送り手となるプログラムが、相手である受け手プログラムごとに通信データを切り替えれば可能であろうが、それでは送り手プログラムの負担が重い。他方、受け手プログラムにとっても、例えばトレンド画面はプロセスアラーム一覧画面などからも連携を望まれるものであるが、その際、アラーム一覧画面プログラムなどから通信されてくるデータには、アラーム発生時刻などで記された時刻の近傍のトレンド表示が要求され、これを利用するために時刻データまで受信できることが望まれる。このように、複数のプログラムがランダムに送り手受け手の関係になるシステムでは、情報のやり取りを固定的なデータ通信フォーマットに依存する形では対応が極めてむつかしいものであった。
【特許文献１】特開平７−４４３５１号公報
【特許文献２】特開２００５−１１３５５公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
アプリケーションソフトウエア間の情報連携を簡易・柔軟に実現することにある。
すなわち、プログラム同士が相手に依存しない形で、一定の基準に従ったデータ及びプログラム構造を具備することだけで、相互に情報を連携して、情報総合的な画面環境を提供する。
これにより、操作者にとって任意にプログラム間の連携機能を得ることができ、一方、ソフトウエア作成者にとっては従来よりも比較的簡単に機能の実現を図れることを目的とする。
【課題を解決するための手段】
【０００７】
第一の特徴はデータ構造にある。本発明は画面を表示するプログラムに依存しない形のデータ構造をシステムで定め、各プログラムがその仕様に応じて必要な箇所だけデータを設定し解読してさらに表示実行できる手段を具備することに特徴がある。そこでは、送り手プログラムは受け手プログラムを意識しないでデータを送信できるようにし、他方、受け手プログラムは送り手プログラムを意識しないでデータを受信し、必要かつ共通な部分を解読した後に画面表示が実現できるように、基本的なデータ構造のみを定めるものである。
そのため、メタ言語を用いる。メタ言語とは、言語を記述するための言語という意味である。Webページを記述するHTMLやC言語などがあるが、最近ではHTMLを拡張したXML（eXtensible Markup Language）が挙げられる。
メタ言語は基本構造のみ規定されたものであり、その範囲内で構造を自由に決めることができる。言語ユーザが自由にできるのは、要素や属性を定めること、またその並び順も任意である。【０００８】
第二の特徴はプログラム構造にある。本発明は、プログラムから構成されるソフトウエア構造を規定し、それぞれのプログラムが簡単な仕組みを備えることだけで情報連携したウィンドウシステムを築くことができるように、プログラム構造の基準を定めることを特徴とする。
各プログラムは、少なくともポインティングデバイスからのオブジェクト（画面上の選択可能な対象単位を意味する）の選択、ドラッグ、ドロップ操作に対応する処理を実行するルーチンを備えることで、あるプログラムは送り手にも受け手にもなれる構造を有する。【０００９】
以上の二点を発明の要旨として、
請求項１記載の発明は、メタ言語で記述したデータ構造をドラッグ時記憶にストアし、ドロップ時記憶をロードし、その解読の結果として画面描画に供するウィンドウシステム上の複数のプログラムにかかる物の発明を示す。
請求項２記載の発明は、操作面から観たドラッグ、ドロップの各操作ステップから成り立つウィンドウシステムにかかる方法の発明を示す。
請求項３および４は、各々請求項１および２に記載の発明において、メタ言語をXMLに限定した発明を示す。【００１０】
請求項５記載の発明は、請求項１の発明において、前記記憶手段に一つの機能をさらに追加した発明である。その附加機能をリフレクト機能とここでは呼ぶが、これは予めすべてのプログラムの受け入れ属性を調べておくことで、ドラッグ開始時にドロップ受け入れ可能なプログラムを探し、受け入れ可能なプログラムの表示枠を他のものと区別するべく誇張表示するものを意味する。
【発明の実施の形態】
【００１１】
メタ言語で記述したデータ構造は平坦なテキスト文書で作成されることが基本とするだけで、どのメタ言語を用いても本発明に差はないため、以下はXMLの例のみを用いて説明する。
XMLの要素は、<要素名>で始まり、</要素名>で終わる一単位の情報である。要素名はプログラムが自由に定めることができるものである。（また、内容が存在しない要素は＜要素名/＞で示す。）
一方、要素の名前を自分で考え、それをコンピュータに伝えるには、スキーマというものを記述する場合もある。スキーマも一種の言語であり、それを記述するルールが存在する。XML用のスキーマにはいくつかの種類がある。主要なものとしては、XML 1.0仕様書の一部として記述されているDTD（Document Type Definition）などがある。通常は、このスキーマで定めたルールに従って要素や属性を記述したXML文書を作成する。作成されたXML文書は、スキーマと照合して、本当にルール通りに記述されているかチェックすることができる。
ただし、XMLのシンプルさを利用して敢えてスキーマを使わずに、受け手プログラムがXML文書を逐一、要素の単位で解読することでも、本発明の実施には十分であるので、スキーマについてはこれ以上触れない。
【００１２】
（１）データ構造
(a)実施例１
イメージ図１の説明のために、同一レイアウトで示す図２を例に取ると、一つの端末画面10上に、分割されたウィンドウで動作する送り手と受け手のプログラムが各々対応する、グラフィック図形で描画された系統図画面11とプロセス変数を表示できるトレンド画面12が在る場合、系統図画面11の中の選択可能オブジェクト21にあるグラフィック部品（本例：蒸留塔）が持っているデータをXMLで記述し、以下のとおりとする。
--- 定義１ ---
＜設備名＞
＜エリア名＞ A ＜/エリア名＞
＜装置名＞ 蒸留塔A102 ＜/装置名＞
＜監視ポイント＞
＜ポイント名＞ A102-FLOW.PV ＜/ポイント名＞
＜ポイント名＞ A102-TEMP1.PV ＜/ポイント名＞
＜ポイント名＞ A102-LEVEL.PV ＜/ポイント名＞
＜ポイント名＞ A102-TEMP2.PV ＜/ポイント名＞
＜/監視ポイント＞
＜/設備名＞
-------------------
他方、当該トレンド画面12が処理できるデータをXMLで定義すると、以下となる。
--- 定義２ ---
＜エネルギー使用量トレンド＞
＜表示ペン＞
＜ペン番号/＞
＜ポイント名/＞
＜ペン色/＞
＜上限値/＞
＜下限値/＞
＜工業単位/＞
＜/表示ペン＞
＜/エネルギー使用量トレンド＞
-------------------
【００１３】
ここで、系統図画面11の中のオブジェクト21（蒸留塔）をマウス等のポインティングデバイスで選択しドラッグし、そこに属するプロセス変数の履歴グラフを表示するようトレンド画面12にドロップした場合（その操作を矢印31で示す）、定義１で示された情報がデータとして送信される。トレンド画面12はこの情報のうち定義２で定義された＜ポイント名＞を共通の要素名定義として理解できるため、トレンド画面は４つのポイント名をトレンドの表示ペン１から４に自動的に割付し、現在時刻でのトレンドを表示するよう動作する。
このように、<要素名> </要素名> で挟んだところの論理名称が画面プログラム間で通信される。系統図画面11の送り手プログラムがオブジェクトに定義されたＸＭＬを送信し、トレンド画面12の受け手プログラムが受信したＸＭＬから両者に共通の論理名称のみを取り出し、その指定に従った表示を実行し、それ以外のデータは無視することでよいわけである。
【００１４】
(b)実施例２
別のプログラムとして保全管理画面14があった場合、このプログラム14で処理できるデータがXMLで、
--- 定義３ ---
＜保全情報＞
＜設備名＞
＜エリア名/＞
＜装置名/＞
＜保全履歴＞
＜点検日時/＞
＜点検者/＞
＜点検結果/＞
＜点検記録/＞
＜/保全履歴＞
＜管理者名/＞
＜/設備名＞
＜/保全情報＞
-------------------
と定義される場合、前例と同じく系統図画面11の中のオブジェクト21（蒸留塔）をマウスで選択しドラッグし、次に保全管理画面14にドロップした場合（操作32）、定義１で示された情報がデータとして受け渡しされるが、保全管理画面14はこの情報の中の定義３にある＜エリア名＞と＜装置名＞を共通定義として理解できるため、保全管理画面14はエリア名：A、装置名：蒸留塔A102の現在までの保全状況履歴に関する表示ができることになる。
【００１５】
(c)実施例３
さらに例えば、別のプログラムとしてアラーム一覧画面13があったと仮定すると、このプログラムで管理するある一つのプロセス変数のアラーム事象を選択し、それをトレンド画面12に送信できるデータをXMLで定義する場合、そのXMLは次のようになる。
--- 定義４ ---
＜設備名＞
＜エリア名＞ A ＜/エリア名＞
＜装置名＞ 蒸留塔A102 ＜/装置名＞
＜監視ポイント＞
＜ポイント名＞ A102-FLOW.PV ＜/ポイント名＞
＜時刻＞   2005.04.28  11：25 ＜/時刻＞
＜事象＞    アラームHI発生  ＜/事象＞
＜/監視ポイント＞
＜/設備名＞
-------------------
この場合、アラーム一覧画面13の中のポイント名にある行オブジェクト22を選択しドラッグし、トレンド画面12にドロップした場合（操作33）、定義４で定義された情報がデータとして送信される。ここでは監視ポイントに従属した時刻データによりアラーム発生時刻などを送信できる。
他方、トレンド画面にかかるプログラムをバージョンアップしXML定義を下記のように拡張する。
--- 定義５ ---
＜エネルギー使用量トレンド＞
＜表示ペン＞
＜ペン番号/＞
＜ポイント名/＞
＜時刻/＞
＜ペン色/＞
＜上限値/＞
＜下限値/＞
＜工業単位/＞
＜/表示ペン＞
＜/エネルギー使用量トレンド＞
-------------------
この情報の中で＜ポイント名＞および＜時刻＞を共通定義として理解できるので、新プログラムのトレンド画面12はポイントA102-FLOW.PVのアラーム発生時刻のデータを受信して、表示のパラメータとして利用する。これを例えば時間軸の中心時刻に設定することで、アラーム発生時刻前後近傍のトレンド画面を表示することができるようになる。
【００１６】
（２）プログラム構造
次に、送り手プログラムおよび受け手プログラムの構造設計の例を示す。
図３におけるプログラムフローと記憶情報の遷移図で説明する。プログラムの構造は、送り手または受け手のプログラム双方に共通である。
なお、以降説明の簡略化のため、「メタ言語で定義するデータ構造」を「メタデータ」と呼ぶことにする。
【００１７】
プログラムは、ENTRY100で呼び出されると、初期起動された場合を除けば、大方の起動方法は何らかの事象からのイベント起動となる。定周期イベント、通常のキーボード、マウス等の操作イベント、その他のイベントを受け付ける分岐110を経由する。本発明に係る情報連携のためのイベントは111,112,113の少なくとも三つの判別分岐でブランチすることで十分である（それ以外のイベントはOther方向へ流れるもので図示しない）。
さて、送り手プログラムの動作フローでは、オブジェクトの選択時は分岐111で下流のオブジェクト選択処理121へ行きメタデータのリセットおよび準備などをする。ドラッグ時は分岐112でメタデータストア処理122へ行き当該メタデータを記憶手段200にストアする。
逆に、受け手プログラムの動作フローでは、ドロップ時は分岐113でメタデータのロードおよび解読の処理123へ行く。ここで適宜必要な処理を行ない、表示更新のメインルーチン130へ描画などの実行を委ねる。解読手法は、前述の実施例(a)ないし(c)にあるように、記憶されているメタデータを自己のメタ言語定義での共通な定義要素に当てはめて、自己の処理に用いることが主で、それは各プログラム毎に定まるものである。
【００１８】
メタデータ記憶手段200は、クリップボードその他の単なるメモリから構成されるか、或いは別プログラムモジュールなどの能動部品で構成されるか自由であるが、メタデータ記憶部210の構成が必須である。これは各プログラムからのStore/Loadを受け付け、メタ言語で記述したデータ構造の保存/読出しに対処するものである。
また、送り手プログラムでのドラッグ操作時に、このドラッグに引き続くドロップ操作を受付可能なプログラム群及びその画面領域がどこかを示す機能を提供するところの、いわゆるリフレクト機能を実行するリフレクト処理部220は、記憶手段200にオプションとして位置付けられる。
リフレクト処理部220は、メタデータ記憶部210への記憶処理が実行されたタイミングで実行され（メモリ書き込みを検知してか或いはモジュール起動のタイミングを捉えるかなどして）、ウィンドウシステム全体のデータベース（図外）を調べ、当該メタ言語定義と共通する記述定義を有する受け手プログラムの領域の画面枠を、例えば赤枠表示するなどして、ハイライト表示する。これにより、操作の効率が図れる。
【００１９】
図４に概略フローを示し説明する。リフレクト処理部220はメタデータ記憶手段から呼び出され、まず処理221でメタデータ記憶部210にストアされたばかりのメタデータを取得する。次いで、システムにある受け手候補のプログラムの領域を得る（処理222）。そこで受け手プログラムのメタデータを取出す（処理223）。ここで両方のメタデータの比較を行い共通の定義された要素名があるかどうかを照合する（処理224）。それが有ればその受け手プログラムの枠表示を、例えば赤表示にする（処理225）。無ければ何もしないでスキップする。ループのエンド処理226でまだ受け手となりうるプログラムが有るか調べる。プログラムがあれば処理227でプログラム領域ポインタを順次に進めて処理223から繰り返す。すべての受け手候補プログラムを調べ終えたら終了である（229）。
なお、受け手候補のプログラムの持つメタデータはその起動のタイミングで、通常ウィンドウシステムの管理領域に設定されるものであるので、その詳細は省略した。
【００２０】
本発明の構成は本実施例に挙げられた構成に限定されない。例えば、ポインティングデバイスはマウス以外も含む。図３に示したプログラムまた記憶手段の実装方法は任意で、一つの実行モジュールで構成されるかもしれないし、複数に分割されたマルチタスクで実行されるかもしれない。
また、言語定義の例はXMLをベースに示したが、他のメタ言語として定義される言語の仕様に依存して種種の変形は可能で、そのような変更があっても本発明の範囲に属するものとする。
【００２１】
以上のとおり、本発明によれば、共通的仕様のみシステムで定義し、メタ言語で記述したデータ構造は各プログラムで独立的に定義かつ処理できるので、プログラムの負担は軽く、またバージョンアップ、追加等に左右されない効果がある。
【図面の簡単な説明】
【００２２】
【図１】ウィンドウシステムのイメージ図を示す。
【図２】ウィンドウシステムのプログラム、対応する画面の配置および操作概要を示す。
【図３】プログラムのフローおよびメタデータ記憶の遷移状態を示す。
【図４】リフレクト処理部のフロー
【図１】
2006114880.tif 000002
【図２】
2006114880.tif 000003
【図３】
2006114880.tif 000004
【図４】
2006114880.tif 000005
【国際調査報告】
2006114880.tif 000006
2006114880.tif 000007
2006114880.tif 000008
2006114880.tif 000009