(57)【要約】【課題】多数の画面を含むＧＵＩを有するプログラムを複数の独立したプログラムに分割して動作させる技術を提供する。【解決手段】本発明に係る画面連携プログラムは、ＧＵＩを有する第１および第２プログラムを連携させるプログラムであり、第２プログラムを起動するよう指示するリクエストを第１プログラムから受信すると、第１プログラムが出力する出力データを第２プログラムに対する入力データとして、第２プログラムを起動する。【選択図】図４
2015095134.tif 000002
【特許請求の範囲】
【請求項１】
ＧＵＩを有する第１プログラムとＧＵＩを有する１以上の第２プログラムとを連携させる処理をコンピュータに実行させるプログラムであって、前記コンピュータに、
前記第１プログラムが終了するとき、前記第２プログラムを起動するよう指示するリクエストを前記第１プログラムから受信するリクエスト受信ステップ、
前記リクエストにしたがって前記第２プログラムを起動する起動ステップ、
前記第１プログラムが出力した出力データを前記第２プログラムに対する入力データとして前記第２プログラムに対して引き渡す入力データ引渡ステップ、
を実行させることを特徴とする画面連携プログラム。
【請求項２】
前記画面連携プログラムは、前記起動ステップより前において前記コンピュータに、
前記第１プログラムのＩＤ、前記第２プログラムのＩＤ、前記第２プログラムの実行ファイル名、および前記入力データのファイル名の対応関係を定義した対応テーブルを読み取るステップを実行させ、
前記リクエスト受信ステップにおいては、前記コンピュータに、
前記リクエストと併せて、前記第１プログラムのＩＤと前記第２プログラムのＩＤを受信させ、
前記起動ステップにおいては、前記コンピュータに、
前記リクエスト受信ステップにおいて受信した前記第１プログラムのＩＤと前記第２プログラムのＩＤをキーにして前記対応テーブルを参照することにより、前記第２プログラムの実行ファイル名と前記入力データのファイル名とを取得させた上で、取得した前記第２プログラムの実行ファイル名を用いてその実行ファイルを起動させ、
前記入力データ引渡ステップにおいては、前記コンピュータに、
前記起動ステップにおいて前記第２プログラムを起動する際のコマンドライン引数として、前記起動ステップにおいて取得した前記入力データのファイル名を指定することにより、前記入力データを前記第２プログラムに対して引き渡させる
ことを特徴とする請求項１記載の画面連携プログラム。
【請求項３】
前記リクエスト受信ステップにおいては、前記コンピュータに、
前記第１プログラムが有するＧＵＩが提供する画面の１つ次の画面に進むかそれとも１つ前の画面に進むかを指定する遷移指示を、前記第２プログラムを起動するよう指示するリクエストとして前記第１プログラムから受信させ、
前記対応テーブルは、前記第２プログラムのＩＤとして、
前記１つ次の画面を提供するＧＵＩを有する前記第２プログラムのＩＤ、および前記１つ前の画面を提供するＧＵＩを有する前記第２プログラムのＩＤを定義しており、
前記起動ステップにおいては、前記コンピュータに、
前記リクエスト受信ステップにおいて受信した前記第１プログラムのＩＤと前記遷移指示を用いて前記対応テーブルを参照することにより、前記遷移指示が指定する前記第２プログラムの実行ファイル名と前記入力データのファイル名とを取得させる
ことを特徴とする請求項２記載の画面連携プログラム。
【請求項４】
前記画面連携プログラムは、前記コンピュータに、
前記リクエスト受信ステップ、前記起動ステップ、および前記入力データ引渡ステップのセットを複数回実行させ、
前記画面連携プログラムはさらに、前記コンピュータに、
前記セットを実行する毎に、前記第１プログラムが出力した出力データとこれに対応する前記第１プログラムのＩＤとの組み合わせを保持するデータ保持ステップ、
前記リクエスト受信ステップにおいて、前記起動ステップにおいて以前起動した前記第２プログラムを改めて起動するよう指示された場合は、前記データ保持ステップにおいて保持しておいた前記出力データのうち、改めて起動するよう指示された前記第２プログラムに対する前記入力データに対応するものを、改めて起動するよう指示された前記第２プログラムに対する前記入力データとして用いる
ことを特徴とする請求項２または３記載の画面連携プログラム。
【請求項５】
前記リクエスト受信ステップにおいては、前記コンピュータに、
前記入力データとして前記第２プログラムに対して引き渡すべき前記出力データを前記第１プログラムから取得することができたか否かをチェックするステップ、
前記入力データとして前記第２プログラムに対して引き渡すべき前記出力データを前記第１プログラムから取得することができなかった場合はその旨のエラー通知を出力するステップ、
を実行させることを特徴とする請求項１から４のいずれか１項記載の画面連携プログラム。
【請求項６】
前記画面連携プログラムは、前記コンピュータに、
前記第２プログラムからのリクエストに応じて、前記コンピュータの外部から取得したデータを前記第２プログラムに対して引き渡すステップを実行させる
ことを特徴とする請求項１から５のいずれか１項記載の画面連携プログラム。
【請求項７】
前記画面連携プログラムは、前記コンピュータ上において常時起動している常駐プログラムとして構成されている
ことを特徴とする請求項１から６のいずれか１項記載の画面連携プログラム。
【請求項８】
請求項１から７のいずれか１項記載の画面連携プログラム、
前記第１および第２プログラム、
を有することを特徴とする画面連携システム。
【請求項９】
前記第２プログラムは、前記画面連携プログラム以外から起動されると自身をエラー終了させるように構成されている
ことを特徴とする請求項８記載の画面連携システム。
【請求項１０】
前記第２プログラムは、前記コンピュータに、前記入力データを用いて前記ＧＵＩを画面表示させる
ことを特徴とする請求項８または９記載の画面連携システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を有するプログラムを連携させる技術に関する。
【背景技術】
【０００２】
コンピュータ上で動作するアプリケーションは、Ｗｅｂブラウザ上で動作するＷｅｂアプリケーション、単独で動作するスタンドアロンアプリケーションなどがある。このうちスタンドアロンアプリケーションは、ユーザが操作するためのインターフェースとしてＧＵＩを有するのが一般的である。
【０００３】
ＧＵＩは、スタンドアロンアプリケーションを開発するための開発ツール内において各画面部品の種類や配置などを定義する必要がある。また各画面部品の動作を規定するプログラムソースコードを別途開発する必要がある。画面数が多い（例えば数１００画面）ＧＵＩを開発する場合、これら画面部品の動作を規定するプログラムソースコードを複数の開発者が分散して開発することになると考えられる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
スタンドアロンアプリケーションは、そのプログラムソースコードを複数の開発者が分散して開発したとしても、最終的には１つの実行ファイルとして統合される。そのため、分散開発したプログラムソースコードは、メインモジュールのプログラムソースコードと統合する必要がある。上述のように画面部品の動作を規定するプログラムコードを複数の開発者が分散して開発した場合もこの事情は変わらない。
【０００５】
画面部品の動作はスタンドアロンアプリケーションのユーザが直接的に体感するものであるため、各画面部品の動作は統一すべきである。しかし各画面部品のプログラムソースコードを複数の開発者が開発した場合、その動作を統一させるための調整作業が必要になる場合が多い。また、各開発者が独自に定義したプログラム内変数などの内部動作がプログラムソースコード毎に異なっている場合、これらを統合したときに不具合が生じる可能性があるので、統合時にそのような不具合を除去する必要がある。
【０００６】
このような作業は人手によって実施するので作業負担が大きい。また、各プログラムソースコードの結合テストにおいて不具合を発見した場合は、各プログラムソースコードの単体テストを再実施する必要があり、工程戻りの負担が生じる。
【０００７】
また、画面数が多いＧＵＩを有するスタンドアロンアプリケーションは、各画面部品に対応する多数のプログラムソースコードを統合することにより生成されるため、実行ファイルのサイズが大きくなる傾向がある。実行ファイルのサイズが大きくなると、これを実行するコンピュータが相応の演算リソースを備える必要があるため、コスト高になりやすい。さらには、コンピュータに対する負荷が高くなるので、コンピュータの動作が不安定になる可能性がある。
【０００８】
本発明は、上記のような課題に鑑みてなされたものであり、多数の画面を含むＧＵＩを有するプログラムを複数の独立したプログラムに分割して動作させる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る画面連携プログラムは、ＧＵＩを有する第１および第２プログラムを連携させるプログラムであり、第２プログラムを起動するよう指示するリクエストを第１プログラムから受信すると、第１プログラムが出力する出力データを第２プログラムに対する入力データとして、第２プログラムを起動する。
【発明の効果】
【００１０】
本発明に係る画面連携プログラムは、ＧＵＩを有する複数のプログラムを連携させることにより、全体として単一のスタンドアロンアプリケーションと同様のＧＵＩを提供することができる。各プログラムは個別のアプリケーションとして開発することができるので、これらを統合するための作業は必要ない。したがって、多数の画面を有するスタンドアロンアプリケーションを分散開発することにともなう上述の課題を解決することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１に係る画面連携プログラム１２０を実行するコンピュータ１００の構成図である。
【図２】第１ＧＵＩプログラム１３１をコンピュータ１００上で実行したとき第１ＧＵＩプログラム１３１が画面表示するＧＵＩを例示する図である。
【図３】対応テーブル２１０の構成とデータ例を示す図である。
【図４】各プログラムが連携する動作を説明するシーケンス図である。
【図５】第２ＧＵＩプログラム１３２をコンピュータ１００上で実行したとき第２ＧＵＩプログラム１３２が画面表示するＧＵＩを例示する図である。
【図６】実施形態２における対応テーブル２１０のデータ例を示す図である。
【図７】図５に示す画面における「前画面」ボタンが押下されたときの各プログラムの動作を説明するシーケンス図である。
【図８】図５に示す画面における「前画面」ボタンが押下されたときの各プログラムの動作を説明するシーケンス図である。
【発明を実施するための形態】
【００１２】
＜実施の形態１＞
図１は、本発明の実施形態１に係る画面連携プログラム１２０を実行するコンピュータ１００の構成図である。コンピュータ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０、画面連携プログラム１２０、複数のＧＵＩプログラム（ここでは第１ＧＵＩプログラム１３１〜第３ＧＵＩプログラム１３３）、記憶装置２００を備える。
【００１３】
第１ＧＵＩプログラム１３１〜第３ＧＵＩプログラム１３３は、それぞれＧＵＩを有するスタンドアロンアプリケーションとして構成されている。これらＧＵＩは、ユーザから見ると単一のスタンドアロンアプリケーションが提供するＧＵＩ内に含まれる個々の操作画面であるかのような外観を有するように構成されている。すなわち、第１ＧＵＩプログラム１３１〜第３ＧＵＩプログラム１３３を連携して動作させることにより、単一のスタンドアロンアプリケーションが提供するＧＵＩと同様のユーザインターフェースを提供することができる。ＧＵＩプログラムの個数はこれに限られるものではないが、以下では説明の簡易のため上記３つのＧＵＩプログラムを用いる。
【００１４】
各ＧＵＩプログラムは、次の操作画面に対応するＧＵＩプログラムに対して引き渡すべきデータを、出力データとして出力する。次の操作画面に対応するＧＵＩプログラムは、その出力データを自身に対する入力データとして用いる。これにより、１つ前の操作画面において入力または処理されたデータを、次の操作画面に対応するＧＵＩプログラムへ引き継ぐことができる。データフォーマットについては各ＧＵＩプログラムの開発者間であらかじめ申し合わせておけばよい。入力データと出力データを介した画面連携の詳細については、後述の図面において改めて説明する。
【００１５】
画面連携プログラム１２０は、第１ＧＵＩプログラム１３１〜第３ＧＵＩプログラム１３３を連携して動作させるための仲介処理を担うプログラムである。画面連携プログラム１２０は、各ＧＵＩプログラムが必要に応じて起動するプログラムとして構成することもできるし、常時起動している常駐プログラムとして構成することもできる。以下では常駐プログラムとして構成されていることを前提とする。
【００１６】
記憶装置２００はハードディスク装置などの装置であり、対応テーブル２１０を格納している。対応テーブル２１０は画面連携プログラム１２０が各ＧＵＩプログラムを連携させるために使用するデータテーブルである。詳細は後述する。各プログラムは記憶装置２００内に格納することもできるし、図示しないＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの内部記憶装置に格納することもできる。以下ではこれらを特に区別しない。
【００１７】
以下では記載の便宜上、各プログラムを動作主体として説明する場合があるが、実際にこれらプログラムを実行するのはＣＰＵ１１０であることを付言しておく。
【００１８】
図２は、第１ＧＵＩプログラム１３１をコンピュータ１００上で実行したとき第１ＧＵＩプログラム１３１が画面表示するＧＵＩを例示する図である。図２に示す例において、第１ＧＵＩプログラム１３１は、いくつかの入力項目の他、次に遷移すべき操作画面として３つ指定することができるように構成されている。ユーザが「次画面」ボタンを押下すると第２ＧＵＩプログラム１３２が提供するＧＵＩへ画面遷移し、「詳細設定」ボタンを押下すると第３ＧＵＩプログラム１３３が提供するＧＵＩへ画面遷移し、「確認画面」ボタンを押下すると第４ＧＵＩプログラム（図示せず）が提供するＧＵＩへ画面遷移することが想定されている。
【００１９】
これら遷移先画面のＧＵＩは、それぞれ独立したスタンドアロンアプリケーションプログラムとして構成されているので、第１ＧＵＩプログラム１３１は画面連携プログラム１２０を介してこれらプログラムと連携する。詳細は後述する。
【００２０】
図３は、対応テーブル２１０の構成とデータ例を示す図である。対応テーブル２１０は各ＧＵＩプログラムを連携させるために必要な情報を記述したデータであり、遷移元画面ＩＤフィールド２１１、遷移先画面ＩＤフィールド２１２、遷移先実行ファイルフィールド２１３、遷移先入力ファイルフィールド２１４を有する。
【００２１】
遷移元画面ＩＤフィールド２１１と遷移先画面ＩＤフィールド２１２は、各ＧＵＩプログラムが提供する操作画面間で画面遷移が生じる場合において、遷移元の操作画面と遷移先の操作画面それぞれのＩＤを指定することにより、各ＧＵＩプログラム間の画面遷移を定義する。例えば１行目のデータ例は、遷移元画面ＩＤ＝１（第１ＧＵＩプログラム１３１に相当）から遷移先画面ＩＤ＝２（第２ＧＵＩプログラム１３２に相当）へ遷移することができる旨を記載している。
【００２２】
遷移先実行ファイルフィールド２１３は、遷移先画面のＧＵＩを提供するＧＵＩプログラムの実行ファイル名を記述している。遷移先入力ファイルフィールド２１４は、遷移元画面を提供するＧＵＩプログラムの出力データのファイル名（すなわち遷移先画面を提供するＧＵＩプログラムの入力データのファイル名）を記述している。例えば１行目のデータ例は、第２ＧＵＩプログラム１３２の実行ファイル名が「ＧＵＩ２．ｅｘｅ」であること、第１ＧＵＩプログラム１３１の出力データのファイル名（すなわち第２ＧＵＩプログラム１３２の入力データのファイル名）が「ＯＵＴＰＵＴ１．ｄａｔ」であること、を記載している。
【００２３】
対応テーブル２１０のレコードは、遷移元画面と遷移先画面の組み合わせ毎に作成する必要がある。例えば図２に示した例によれば、第１ＧＵＩプログラム１３１に対応するレコードを３つ設ける必要がある（ただし図３においては第４ＧＵＩは省略した）。
【００２４】
図４は、各プログラムが連携する動作を説明するシーケンス図である。ここではユーザが図２における「次画面」ボタンを押下した場合の動作を例示した。以下、図４の各ステップについて説明する。
【００２５】
（図４：ステップＳ４０１）
第１ＧＵＩプログラム１３１のユーザは、コンピュータ１００の画面上で図２の「次画面」ボタンを押下する。第１ＧＵＩプログラム１３１は、「次画面」に対応するＧＵＩプログラムを起動するよう指示するリクエストを、画面連携プログラム１２０に対して送信する。このとき、第１ＧＵＩプログラム１３１自身のＩＤ（遷移元画面ＩＤフィールド２１１に相当）と、第２ＧＵＩプログラム１３２のＩＤ（遷移先画面ＩＤフィールド２１２に相当）とを同リクエストとともに指定する。
【００２６】
（図４：ステップＳ４０１：補足その１）
第１ＧＵＩプログラム１３１が画面連携プログラム１２０に対して本ステップのリクエストを送信する手段としては、例えば画面連携プログラム１２０が所定のＴＣＰポートを開けて同リクエストを待機し、第１ＧＵＩプログラム１３１はそのポート番号を指定してソケット通信により同リクエストを送信するようにすることが考えられる。その他の手段を用いてもよい。
【００２７】
（図４：ステップＳ４０１：補足その２）
第１ＧＵＩプログラム１３１は、各ボタンが押下されたときいずれの操作画面へ遷移すべきかをあらかじめ知っているものとする。また第１ＧＵＩプログラム１３１は、自身のＩＤおよび遷移先各画面のＩＤをあらかじめ知っているものとする。これらの情報は、例えば第１ＧＵＩプログラム１３１内にプログラムコードとして埋め込むこともできるし、第１ＧＵＩプログラム１３１が読み取ることができる設定データファイルなどの外部データ内に記述することもできる。他のＧＵＩプログラムについても同様である。
【００２８】
（図４：ステップＳ４０２）
第１ＧＵＩプログラム１３１は、ステップＳ４０１のリクエストを発行するとともに、第１ＧＵＩプログラム１３１上で入力された項目、処理済データなど、遷移先画面に対して引き渡すべきデータを、出力データとして出力する。画面連携プログラム１２０は、その出力データを取得する。
【００２９】
（図４：ステップＳ４０２：補足）
各ＧＵＩプログラムの出力データのファイル名は、所定のファイル名規則などにしたがって固定的に定めることもできるし、設定データファイルなどの外部データ内に記述することもできるし、対応テーブル２１０内のフィールドとして記述することもできる。画面連携プログラム１２０が出力データのファイル名を知ることができれば、具体的な手段は任意でよい。なおここでいうファイル名とは、ファイルパスを含む。以下特に言及しない場合においても同様である。
【００３０】
（図４：ステップＳ４０３）
画面連携プログラム１２０は、ステップＳ４０１において第１ＧＵＩプログラム１３１が指定した遷移元画面ＩＤフィールド２１１と遷移先画面ＩＤフィールド２１２に相当する各ＩＤをキーにして、対応テーブル２１０を照会する。これにより、これらＩＤの組み合わせに対応する遷移先実行ファイルフィールド２１３と遷移先入力ファイルフィールド２１４を取得することができる。
【００３１】
（図４：ステップＳ４０４）
画面連携プログラム１２０は、ステップＳ４０３において取得した遷移先実行ファイルフィールド２１３の値を用いて、「次画面」ボタンの遷移先画面を提供する第２ＧＵＩプログラム１３２を起動する。
【００３２】
（図４：ステップＳ４０４：補足）
各ＧＵＩプログラムは独立したスタンドアロンアプリケーションとして構成されているので、画面連携プログラム１２０を介さずに第２ＧＵＩプログラム１３２を直接起動することも論理的には可能である。しかしこれを許可すると、各ＧＵＩプログラム間の連携が途切れて想定外の動作をする可能性がある。そこで例えば、各ＧＵＩプログラムが起動するとき、各ＧＵＩプログラム内の初期化処理において、自身が画面連携プログラム１２０を介して起動されたか否かをチェックし、画面連携プログラム１２０を介さずに起動した場合は自身をエラー終了するようにしてもよい。例えば起動元プログラムのプロセスハンドルを取得することによってこれを実現するなどの手法が考えられるが、実現手段はこれに限られるものではない。
【００３３】
（図４：ステップＳ４０５）
画面連携プログラム１２０は、ステップＳ４０２において取得した第１ＧＵＩプログラム１３１の出力データを、第２ＧＵＩプログラム１３２に対する入力データとして、第２ＧＵＩプログラム１３２に対して引き渡す。最も単純には、ステップＳ４０３において取得した遷移先入力ファイルフィールド２１４の値を、第２ＧＵＩプログラム１３２に対するコマンドライン引数として引き渡せばよい。この場合、ステップＳ４０４〜Ｓ４０５は一体的に実行することになる。その他の手段を用いてもよい。
【００３４】
（図４：ステップＳ４０５：補足その１）
対応テーブル２１０内に遷移先入力ファイルフィールド２１４を設けたのは、本ステップにおいて次画面のＧＵＩプログラムに対して引き渡すデータファイル名が必ずしも固定的ではないからである。例えば第２ＧＵＩプログラム１３２を呼び出すのは必ずしも第１ＧＵＩプログラム１３１とは限らず、一般的にはその他のＧＵＩプログラムも第２ＧＵＩプログラム１３２を呼び出す可能性があるからである。すなわち、本ステップにおいて第２ＧＵＩプログラム１３２に対して引き渡す入力データファイル名（前画面に対応するＧＵＩプログラムの出力データファイル名）は固定されていないので、対応テーブル２１０内の設定データとして定義し、柔軟に設定できるようにした。
【００３５】
（図４：ステップＳ４０５：補足その２）
本ステップまたはステップＳ４０２において、画面連携プログラム１２０は、第１ＧＵＩプログラム１３１が入力データを適切に出力したか否かをチェックし、同データを取得できなかった場合はステップＳ４０１のリクエスト送信元に対してエラーを通知してもよい。第２ＧＵＩプログラム１３２も同様のチェックを実施し、入力データを取得できなかった場合は自身をエラー終了させてもよい。この場合、画面連携プログラム１２０は、第２ＧＵＩプログラム１３２を正常起動できなかったことを検出すると、ステップＳ４０１のリクエスト送信元に対して同様にエラーを通知する。
【００３６】
（図４：ステップＳ４０６）
第２ＧＵＩプログラム１３２は、オプションとして、画面連携プログラム１２０が独自に保持しているデータを取得してＧＵＩ上で画面表示することもできる。このデータは、例えば画面連携プログラム１２０がコンピュータ１００の外部（インターネット）などからあらかじめ取得して保持しておくデータである。このデータは第２ＧＵＩプログラム１３２が自らそのデータソースから取得することもできるが、他のＧＵＩプログラムも同じデータを利用する可能性を考慮すると、画面連携プログラム１２０が一括して取得しておいた方が効率的であろうと考えられる。そこでオプションとして、本ステップを設けることとした。
【００３７】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係る画面連携プログラム１２０は、第１ＧＵＩプログラム１３１から遷移元画面ＩＤと遷移先画面ＩＤを指定して次の遷移先画面に対応するＧＵＩプログラムを起動するよう指示するリクエストを受信する。画面連携プログラム１２０は、これらＩＤをキーにして対応テーブル２１０を照会し、対応する第２ＧＵＩプログラム１３２の実行ファイル名と入力データファイル名を特定し、その実行ファイルを起動するとともに入力データを引き渡す。これにより、各ＧＵＩプログラムを独立したスタンドアロンアプリケーションとして構成しつつ、各ＧＵＩプログラムを連携させることにより単一のスタンドアプリケーションと同様のＧＵＩを提供することができる。
【００３８】
また、本実施形態１における各ＧＵＩプログラムは１画面のみを有するので、その実行ファイルのサイズは比較的小さく、コンピュータ１００の演算リソースに対する負荷が小さい。したがって、コンピュータ１００の性能が高くなくとも、多数の画面を有するＧＵＩアプリケーションを提供することができる。さらには、コンピュータ１００に対する負荷が小さいので、コンピュータ１００を安定的に動作させることができる。
【００３９】
また、本実施形態１における各ＧＵＩプログラムは独立したスタンドアロンアプリケーションとして動作するので、各ＧＵＩプログラムの内部的動作や実装方式を、各ＧＵＩプログラム間で統一する必要はない。したがって、従来は結合テスト工程において実施していた各ＧＵＩプログラム間の調整作業が不要になり、開発工数を抑えることができる。
【００４０】
＜実施の形態２＞
実施形態１においては、第１ＧＵＩプログラム１３１から３以上のＧＵＩプログラムへ遷移し得る画面構成例について説明した。実施形態１においてはこのような多様な画面遷移に対応するため、遷移元画面ＩＤと遷移先画面ＩＤの組み合わせによって、次に起動すべきＧＵＩプログラムと入力データを特定することとした。しかし画面構成によっては、１つ前の画面に戻るか１つ先の画面に進むかのいずれかの画面遷移以外は生じない場合も考えられる。本発明の実施形態２では、そのような場合における各プログラムの構成について説明する。
【００４１】
図５は、第２ＧＵＩプログラム１３２をコンピュータ１００上で実行したとき第２ＧＵＩプログラム１３２が画面表示するＧＵＩを例示する図である。図５に示す例において、第２ＧＵＩプログラム１３２は、１つ前の画面に戻るかまたは１つ先の画面に進むかを指定することができるように構成されている。ユーザが「前画面」ボタンを押下すると第１ＧＵＩプログラム１３１が提供するＧＵＩへ画面遷移し、「次画面」ボタンを押下すると第３ＧＵＩプログラム１３３が提供するＧＵＩへ画面遷移することが想定されている。
【００４２】
図６は、本実施形態２における対応テーブル２１０のデータ例を示す図である。本実施形態２においては、第１ＧＵＩプログラム１３１→第２ＧＵＩプログラム１３２→第３ＧＵＩプログラム１３３の順に画面遷移することが想定されているので、遷移元画面ＩＤフィールド２１１と遷移先画面ＩＤフィールド２１２それぞれの値は、ＩＤ＝１〜３が図示する順番で連動するように記述されている。また、第３ＧＵＩプログラム１３３を呼び出すのは第２ＧＵＩプログラム１３２であるため、第３ＧＵＩプログラム１３３に対する入力データは、第２ＧＵＩプログラム１３２の出力データ（ＯＵＴＰＵＴ２．ｄａｔ）となっている。
【００４３】
本実施形態２における各プログラムは、画面構成が異なることを除いて実施形態１と同様であるため、各プログラムの動作も原則として実施形態１と同様である。ただし１つ前の画面に戻る動作については、実施形態１とは異なる配慮が必要になる。すなわち、１つ前の画面に戻る場合、戻り元画面における入力項目は戻り先画面に対して引き継がれないため、実施形態１の動作をそのまま用いても、１つ前の画面に戻る動作は実現されない。
【００４４】
１つ前の画面に戻る動作は、上記問題点を踏まえた上で、新たな画面遷移として処理するか、あるいは新たな画面遷移を生じさせるのではなく画面遷移を１つ前に戻すものとして処理することによって、実現することができる。以下ではその具体的な動作について説明する。
【００４５】
１つ前の画面に戻る動作を新たな画面遷移として処理する場合、図５の「前画面」ボタンに対応するレコードを対応テーブル２１０内に設ける必要がある。図６の３行目のレコードがこれに相当する。すなわち、遷移元画面ＩＤ＝２（第２ＧＵＩプログラム１３２に相当）、遷移先画面ＩＤ＝１（第１ＧＵＩプログラム１３１に相当）を指定する。
【００４６】
また、１つ前の画面に戻る場合、ユーザは戻った画面における入力項目を既に入力済であるため、戻った画面における入力項目を既に入力した内容で埋めておく必要がある。すなわち第２ＧＵＩプログラム１３２の出力データのなかに、第１ＧＵＩプログラム１３１から入力データとして受け取ったデータを含めておき、第１ＧＵＩプログラム１３１はこれを自身の入力項目の値として反映する必要がある。
【００４７】
ただし、第２ＧＵＩプログラム１３２が出力する出力データとしては、第２ＧＵＩプログラム１３２上で入力または処理されたデータのみとすることが望ましい。そこで第２ＧＵＩプログラム１３２に代わって、画面連携プログラム１２０は、第１ＧＵＩプログラム１３１のＩＤとその出力データとの組み合わせを保持しておき、１つ前の画面に戻る動作が生じたときはこれを戻り先画面に対する入力データとして提供する。第２ＧＵＩプログラム１３２の出力データに代えてこれを提供してもよいし、第２ＧＵＩプログラム１３２の出力データに追加してこれを提供してもよい。
【００４８】
１つ前の画面に戻る動作を、新たな画面遷移を生じさせるのではなく画面遷移を１つ前に戻すものとして処理する場合、図６の３行目のレコードは必要ない。いずれの画面に戻るべきかについては、レコード間の参照関係を逆向きに辿ることによって特定することができるからである。戻り先画面に対して引き渡すデータについては、上記と同様である。
【００４９】
図７は、図５に示す画面における「前画面」ボタンが押下されたときの各プログラムの動作を説明するシーケンス図である。ここでは、図６の３行目のレコードを用いる場合における動作を例示した。以下、図７の各ステップについて説明する。
【００５０】
（図７：ステップＳ７０１〜Ｓ７０４）
第２ＧＵＩプログラム１３２は、第２ＧＵＩプログラム１３２自身のＩＤと、第１ＧＵＩプログラム１３１のＩＤとを指定して、ステップＳ４０１と同様のリクエストを画面連携プログラム１２０に対して送信する。ステップＳ７０１〜Ｓ７０４におけるその他の動作は図４のステップＳ４０１〜Ｓ４０４と同様である。ただし画面連携プログラム１２０は、上述したように、第１ＧＵＩプログラム１３１のＩＤとその出力データとの組み合わせを保持しておく必要がある。
【００５１】
（図７：ステップＳ７０５）
画面連携プログラム１２０は、第１ＧＵＩプログラム１３１が第２ＧＵＩプログラム１３２を呼び出す際に出力した出力データを、第１ＧＵＩプログラム１３１に対する入力データとして引き渡す。ステップＳ７０５のその他の動作は、図４のステップＳ４０５と同様である。
【００５２】
（図７：ステップＳ７０６）
第１ＧＵＩプログラム１３１は、入力データ内に第１ＧＵＩプログラム１３１自身が以前出力したデータが含まれている場合は、これを第１ＧＵＩプログラム１３１上の入力項目などに反映する。
【００５３】
図８は、図５に示す画面における「前画面」ボタンが押下されたときの各プログラムの動作を説明するシーケンス図である。ここでは、図６の３行目のレコードを用いない場合における動作を例示した。以下、図８の各ステップについて説明する。
【００５４】
（図８：ステップＳ８０１〜Ｓ８０２）
第２ＧＵＩプログラム１３２は、第２ＧＵＩプログラム１３２自身のＩＤと、１つ前の画面に戻る旨とを指定して、ステップＳ４０１と同様のリクエストを画面連携プログラム１２０に対して送信する。ステップＳ８０１〜Ｓ８０２におけるその他の動作は図７のステップＳ７０１〜Ｓ７０２と同様である。
【００５５】
（図８：ステップＳ８０３〜Ｓ８０６）
画面連携プログラム１２０は、１つ前の画面に戻る旨のリクエストを受信すると、指定された遷移元画面ＩＤをキーにして対応テーブル２１０内の各レコードの参照関係を辿ることにより、当該遷移元画面ＩＤの１つ前の画面を特定する。ステップＳ８０３〜Ｓ８０６におけるその他の動作は図７のステップＳ７０３〜Ｓ７０６と同様である。
【００５６】
＜実施の形態２：まとめ＞
以上のように、本実施形態２に係る画面遷移プログラム１２０は、１つ前の画面に戻るべき旨の遷移指示を受け取ると、戻り先画面が先に出力した出力データを、戻り先画面に対する入力データとして引き渡す。これにより、実施形態１の構成を前提として、画面遷移を元に戻す動作を実現することができる。
【００５７】
本実施形態２において、１つ前の画面に戻る動作が複数回重ねて実施される（すなわち２つ以上前の画面に戻る）場合も考えられる。そこで画面遷移プログラム１２０は、一連の画面遷移における最後のＧＵＩプログラムが終了するまでは、各ＧＵＩプログラムのＩＤとその出力データとの組み合わせを全て保持しておくことが望ましい。最後のＧＵＩプログラムが完了した以後は、これを破棄することができる。最後のＧＵＩプログラムである旨を示す指示は、そのＧＵＩプログラムがステップＳ７０１（またはＳ８０１）において遷移先を指定することに代えて、自身が最後の画面である旨を画面連携プログラム１２０に対して通知すればよい。
【００５８】
本実施形態２においては、第１ＧＵＩプログラム１３１が以前出力した出力データを保持しておき、第１ＧＵＩプログラム１３１に戻るとき、保持しておいた以前の出力データを再利用することを説明した。この動作は、実施形態１の構成においても利用することができる。すなわち、画面遷移の過程において以前使用した画面に再び戻ってくることも考えられるので、本実施形態２と同様に以前の出力データを戻り先画面に対する入力データとして再利用することができる。
【符号の説明】
【００５９】
１００：コンピュータ、１１０：ＣＰＵ、１２０：画面連携プログラム、１３１〜１３３：第１〜第３ＧＵＩプログラム、２００：記憶装置、２１０：対応テーブル。
【図１】
2015095134.tif 000003
【図２】
2015095134.tif 000004
【図３】
2015095134.tif 000005
【図４】
2015095134.tif 000006
【図５】
2015095134.tif 000007
【図６】
2015095134.tif 000008
【図７】
2015095134.tif 000009
【図８】
2015095134.tif 000010