(57)【要約】【課題】情報処理システムにおける開発効率を向上させる。【解決手段】  情報処理装置２は、ＧＵＩ画面に対して入力イベントが発生すると、入力イベントがユーザアクションに変換され、ＧＵＩオブジェクトのスタブであるＧＵＩオブジェクトスタブでユーザアクションを実行するスレッドを生成し、スレッドにおいてユーザアクションを実行する。情報処理装置２は、ユーザアクションの実行においてＧＵＩオブジェクトのメソッドが呼び出された場合、呼び出しに関するパラメタに基づいて情報処理端末１に新たなＧＵＩ画面を表示する命令を出力し、新たなＧＵＩ画面に対して新たな入力イベントが発生すると、新たな入力イベントをリターンデータに変換し、リターンデータに基づいて、スレッドにおいてユーザアクションを実行した結果を、ユーザアクションの実行命令の戻り値として出力する。【選択図】図１
2008083745.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と、前記情報処理装置から提供される情報を利用する情報処理端末とを備える情報処理システムに用いられる情報処理方法であって、
前記情報処理端末において、前記情報処理装置の命令に従って前記情報処理端末にＧＵＩ画面が表示され、前記ＧＵＩ画面に対して入力イベントが発生されるステップと、
前記情報処理装置において、前記入力イベントが発生されたことが入力されると、前記入力イベントがユーザアクションに変換され、前記ＧＵＩオブジェクトのスタブであるＧＵＩオブジェクトスタブで前記ユーザアクションを実行するスレッドが生成され、前記スレッドにおいて前記ユーザアクションが実行されるステップと、
前記情報処理装置において、前記ユーザアクションの実行において前記ＧＵＩオブジェクトのメソッドが呼び出された場合、前記呼び出しに関するパラメタに基づいて前記情報処理端末に新たなＧＵＩ画面が表示され、前記新たなＧＵＩ画面に対して新たな入力イベントが発生されるステップと、
前記情報処理装置において、前記新たな入力イベントが発生されたことが入力されると、前記新たな入力イベントがリターンデータに変換され、前記リターンデータに基づいて、前記スレッドにおいて前記ユーザアクションが実行された結果が、前記ユーザアクションの実行命令の戻り値として出力されるステップ
とを備えることを特徴とする情報処理方法。
【請求項２】
情報処理装置と、前記情報処理装置から提供される情報を利用する情報処理端末とを備える情報処理システムに用いられる情報処理方法であって、
前記情報処理装置のＧＵＩ実行部のＧＵＩオブジェクト管理部において、ＧＵＩオブジェクトと、前記ＧＵＩオブジェクトを識別するＧＵＩオブジェクトＩＤとが関連づけられて記憶されるステップと、
前記情報処理装置のビジネスロジック実行部のアクション管理部において、前記ＧＵＩオブジェクトで発生するユーザアクションと、前記ユーザアクションを識別するアクションＩＤとが関連づけられて記憶されるステップと、
前記情報処理装置の前記ビジネスロジック実行部のＧＵＩスタブ管理部において、前記ＧＵＩオブジェクトＩＤと、前記ＧＵＩオブジェクトＩＤに関連づけられたＧＵＩオブジェクトのスタブであるＧＵＩオブジェクトスタブとが関連づけられて記憶されるステップと、
前記情報処理装置の前記ＧＵＩ実行部によって、前記ＧＵＩオブジェクトに基づいて前記情報処理端末にＧＵＩ画面が表示され、前記ＧＵＩ画面に対して入力イベントが発生すると、前記入力イベントが前記情報処理装置の前記ＧＵＩ実行部に送信されるステップと、
前記情報処理装置の前記ＧＵＩ実行部において、前記入力イベントが受信されると、前記入力イベントからユーザアクションに関する前記アクションＩＤとＧＵＩオブジェクトが取得されるステップと、
前記情報処理装置の前記ＧＵＩ実行モジュールにおいて、前記ユーザアクションを実行するスレッドが生成され、アクションカウント変数が初期化されるステップと、
前記情報処理装置の前記ＧＵＩ実行部において、前記アクションイベントＩＤと前記ＧＵＩオブジェクトとが取得されると、前記ＧＵＩオブジェクトに基づいて前記ＧＵＩオブジェクト管理部から前記ＧＵＩオブジェクトＩＤが取得されるとともに、前記アクションＩＤと前記ＧＵＩオブジェクトＩＤとを含むアクションコールパケットが生成されるステップと、
前記情報処理装置のＧＵＩ実行部において、前記アクションカウント変数がインクリメントされるとともに、前記アクションコールパケットが、前記情報処理装置のビジネスロジック実行モジュールに送信されるステップと、
前記情報処理装置の前記ビジネスロジック実行部において、前記アクションコールパケットが受信されると、前記アクションコールパケットから前記アクションＩＤとＧＵＩオブジェクトＩＤが取得され、前記アクションＩＤに基づいて前記アクション管理部から前記ユーザアクションが取得されるとともに、前記オブジェクトＩＤに基づいて前記ＧＵＩスタブ管理部から前記ＧＵＩオブジェクトスタブが取得されるステップと、
前記情報処理装置の前記ビジネスロジック実行部において、取得された前記ＧＵＩオブジェクトスタブに対して、取得された前記ユーザアクションが実行されるステップ
を備えることを特徴とする情報処理方法。
【請求項３】
前記情報処理装置の前記ビジネスロジック実行部において、前記ユーザアクションで前記ＧＵＩオブジェクトスタブのメソッドが所定のパラメタで呼び出された場合、前記ＧＵＩオブジェクトＩＤと前記パラメタとを含むメソッドコールパケットが生成され、前記ＧＵＩ実行モジュールに送信されるステップと、
前記情報処理装置の前記ＧＵＩ実行部において、前記メソッドコールパケットが受信されると、前記メソッドコールパケットから前記ＧＵＩオブジェクトＩＤ及び前記パラメタが取り出され、前記ＧＵＩオブジェクトＩＤに基づいてＧＵＩオブジェクト管理部から前記ＧＵＩオブジェクトが取得されるステップと、
前記情報処理装置の前記ＧＵＩ実行部において、取得された前記ＧＵＩオブジェクト及び前記パラメタに基づいて前記情報処理端末に新たなＧＵＩ画面が表示され、前記新たなＧＵＩ画面に対して新たな入力イベントが発生すると、前記新たな入力イベントが前記情報処理装置の前記ＧＵＩ実行モジュールに送信され、ＧＵＩオブジェクトリターンデータに変換されるステップと、
前記情報処理装置の前記ＧＵＩ実行部において、前記ＧＵＩオブジェクトリターンデータを含むメソッドリターンパケットが生成され、前記情報処理装置の前記ビジネスロジック実行モジュールに送信されるステップと、
前記情報処理装置の前記ビジネスロジック実行部において、前記メソッドリターンパケットが受信されると、前記メソッドリターンパケットから前記ＧＵＩオブジェクトリターンデータが取得され、前記ＧＵＩオブジェクトリターンデータが、前記ＧＵＩオブジェクトスタブのメソッドの戻り値として返されるステップ
とを更に備えることを特徴とする請求項２に記載の情報処理方法。
【請求項４】
前記情報処理装置の前記ビジネスロジック実行部において、前記ＧＵＩオブジェクトスタブのメソッドの戻り値としてアクションリターンデータが取得されると、前記アクションリターンデータを含むアクションリターンパケットが作成され、前記アクションリターンパケットが前記ユーザアクションの戻り値として返されるステップと、
前記情報処理装置の前記ＧＵＩ実行部において、前記アクションリターンパケットが受信されると、前記アクションカウント変数をデクリメントし、前記アクションカウント変数がゼロになると、前記アクションリターンパケットから前記アクションリターンデータが取得されるステップ
とを更に備えることを特徴とする請求項３に記載の情報処理方法。
【請求項５】
情報処理装置と、前記情報処理装置から提供される情報を利用する情報処理端末とを備える情報処理システムであって、
前記情報処理端末は、
前記情報処理装置の命令に従って、前記情報処理端末の表示装置にＧＵＩ画面を表示し、前記情報処理端末の入力装置によって前記ＧＵＩ画面に対して発生された入力イベントを前記情報処理装置に送信し、
前記情報処理装置は、
前記情報処理端末に前記ＧＵＩ画面を表示する命令を出力し、前記ＧＵＩ画面に対して入力イベントが発生すると、前記入力イベントがユーザアクションに変換され、前記ＧＵＩオブジェクトのスタブであるＧＵＩオブジェクトスタブで前記ユーザアクションを実行するスレッドを生成し、前記スレッドにおいて前記ユーザアクションを実行し、
前記ユーザアクションの実行において前記ＧＵＩオブジェクトのメソッドが呼び出された場合、前記呼び出しに関するパラメタに基づいて前記情報処理端末に新たなＧＵＩ画面を表示する命令を出力し、前記新たなＧＵＩ画面に対して新たな入力イベントが発生すると、前記新たな入力イベントをリターンデータに変換し、前記リターンデータに基づいて、前記スレッドにおいて前記ユーザアクションを実行した結果を、前記ユーザアクションの実行命令の戻り値として出力する
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置と、情報処理装置から提供される情報を利用する情報処理端末とを備える情報処理方法及び情報処理システムに関する。
【背景技術】
【０００２】
昨今のソフトウェア開発において、クライアントサーバ型システムが一般的に用いられている。このクライアントサーバシステムにおいては、クライアントである情報処理端末で処理の条件データなどが入力され、入力されたデータがサーバである情報処理装置に送信されることにより処理が実現されている。従って、この様なクライアントサーバシステムにおいては、情報処理端末で実行されるプログラムと、情報処理装置で実行されるプログラムとが同期が取れていなければならない。具体的には、例えば、情報処理装置で実行されるプログラムに修正が発生した場合、情報処理端末で実行されるプログラムにおいても修正が発生する場合がある。
【０００３】
例えば、情報処理端末においてＧＵＩ（Graphical User Interface）を持つクライアントサーバシステムでは、情報処理端末上に表示された画面に対する、ユーザの操作によるアクションイベントをトリガーとして、情報処理装置上で計算された結果を情報処理端末のＧＵＩに反映して表示する場合がある（例えば、特許文献１及び特許文献２参照。）。ここで、アクションイベントとは、ユーザによるマウスやキーボードなどの入力装置の操作により発生するイベントで、具体的にはボタンの押下、コンボボックスからの選択、テキストフィールドへの入力などが挙げられる。
【０００４】
特許文献１には、クライアントに提供するＧＵＩ部品を迅速、効率的に開発提供し、保守性の優れたものにするＷｅｂアプリケーションサーバが開示されている。特許文献２には、１つのセッションにおける処理が複数のアプリケーションサーバ間で移動しつつ実行される環境において、ユーザのセッションデータをＧＵＩアプリケーションサーバにて確実に取得することのできるＷｅｂアプリケーションサーバシステムが開示されている。
【０００５】
情報処理装置上で計算された結果を情報処理端末のＧＵＩに反映して表示する場合、図１３に示すように、情報処理システム９１０は、クライアントである情報処理端末９０１とサーバである情報処理装置９０３を備えている。情報処理端末９０１は、ＧＵＩコンテナ９１１を備えている。情報処理装置９０３はＪ２ＥＥコンテナ９３１を備えており、Ｊ２ＥＥコンテナ９３１は、ビジネスロジック実行クラス９３２を備えている。
【０００６】
情報処理端末９０１のＧＵＩコンテナ９１１は、例えば、郵便番号と住所を入力するフィールドを備えたＧＵＩと、ＧＵＩを操作するユーザアクションクラス９１２とを備えている。ユーザアクションクラス９１２は、ユーザの操作によってＧＵＩのフィールドに対して文字入力や選択などの入力信号が入力されたアクションイベントをＯＳから受信し、フィールドに入力されたデータを取得して、情報処理装置９０３に送信する。
【０００７】
情報処理装置９０３のビジネスロジック実行クラス９３２は、情報処理端末９０１からフィールドデータを取得すると、その取得されたデータに基づいてビジネスロジックを実行し、新たなフィールドデータを情報処理端末９０１に送信する。
【０００８】
情報処理端末９０１のユーザアクションクラス９１２は、情報処理装置９０３から新たなフィールドデータを受信すると、新たなフィールドデータをフィールドに反映する。
【０００９】
この場合、アクションイベントを受信した情報処理端末のモジュールから、ＲＰＣ（Remote Procedure Call）、ＣＯＲＢＡ（Common Object Request Broker Architecture）、ＲＭＩ（Remote Method Invocation）等の技術を用いて異なる装置上に実装されたオブジェクト間でメッセージをやりとりすることにより、情報処理装置上の関数やメソッドを呼び出す。更に、情報処理端末では、呼び出した関数やメソッドの戻り値を情報処理装置から受信し、受信した戻り値に基づいて、情報処理端末のＧＵＩをコントロールするための関数やメソッドを実行する。
【００１０】
しかし、情報処理装置上の関数やメソッドの戻り値がＧＵＩに反映させる必要のないデータを含む場合がある。このとき、情報処理装置から情報処理端末へのデータの転送量が増大してしまう場合がある。また、非特許文献１などに公開されるＪａｖａ（登録商標）言語におけるutil.Iterator インタフェースやsql.ResultSetなどの反復子やコレクションの戻り値を持つメソッドもある。この場合、ループ関数などを用いて戻り値から一つずつデータを取得する。
【００１１】
この問題を解決するために、既存の情報処理装置上のメソッドの戻り値からデータを取り出し、加工し、戻り値として返すようなラッパーメソッドを情報処理装置上で作成し、情報処理端末から呼び出す方法がある。
【特許文献１】特開２００５−２２７４０５号公報
【特許文献２】特開２００５−２８５００７号公報
【非特許文献１】http://sdc.sun.co.jp/java/index.html
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、情報処理装置上のメソッドが既に多数存在し、それらの多くが反復子を持つメソッドである場合、それぞれについてラッパーメソッドを開発する必要があるので、開発が容易ではない問題がある。
【００１３】
この様な問題に対して、例えば、情報処理装置において、既存のメソッドに対するラッパーメソッドを作成することなく、情報処理端末上で発生したアクションイベントをトリガーとして、情報処理装置上で行った計算結果を情報処理端末のＧＵＩに反映させることにより、開発者の開発効率を向上させる技術が求められている。
【００１４】
従って本発明の目的は、情報処理装置と、情報処理装置から提供される情報を利用する情報処理端末とを備える情報処理システムにおける開発効率を向上させる情報処理方法、この情報処理方法を用いた情報処理システムを提供することである。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、本発明の第１の特徴は、情報処理装置と、情報処理装置から提供される情報を利用する情報処理端末とを備える情報処理システムに用いられる情報処理方法である。即ち衣本発明の第１の特徴に係る情報処理方法は、情報処理端末において、情報処理装置の命令に従って情報処理端末にＧＵＩ画面が表示され、ＧＵＩ画面に対して入力イベントが発生されるステップと、情報処理装置において、入力イベントが発生されたことが入力されると、入力イベントがユーザアクションに変換され、ＧＵＩオブジェクトのスタブであるＧＵＩオブジェクトスタブでユーザアクションを実行するスレッドが生成され、スレッドにおいてユーザアクションが実行されるステップと、情報処理装置において、ユーザアクションの実行においてＧＵＩオブジェクトのメソッドが呼び出された場合、呼び出しに関するパラメタに基づいて情報処理端末に新たなＧＵＩ画面が表示され、新たなＧＵＩ画面に対して新たな入力イベントが発生されるステップと、情報処理装置において、新たな入力イベントが発生されたことが入力されると、新たな入力イベントがリターンデータに変換され、リターンデータに基づいて、スレッドにおいてユーザアクションが実行された結果が、ユーザアクションの実行命令の戻り値として出力されるステップとを備える。
【００１６】
このような本発明の第１の特徴に係る情報処理方法は、情報処理端末ではＧＵＩ画面の表示し、入力イベントを受信するのみで、情報処理装置でＧＵＩ操作メソッド及びビジネスロジックが実行されるので、情報処理端末側の開発作業量を軽減し、開発効率を向上させる情報処理方法を提供することができる。
【００１７】
本発明の第２の特徴は、情報処理装置と、情報処理装置から提供される情報を利用する情報処理端末とを備える情報処理システムに用いられる情報処理方法である。即ち、本発明の第２の特徴に係る情報処理方法は、情報処理装置のＧＵＩ実行部のＧＵＩオブジェクト管理部において、ＧＵＩオブジェクトと、ＧＵＩオブジェクトを識別するＧＵＩオブジェクトＩＤとが関連づけられて記憶されるステップと、情報処理装置のビジネスロジック実行部のアクション管理部において、ＧＵＩオブジェクトで発生するユーザアクションと、ユーザアクションを識別するアクションＩＤとが関連づけられて記憶されるステップと、情報処理装置のビジネスロジック実行部のＧＵＩスタブ管理部において、ＧＵＩオブジェクトＩＤと、ＧＵＩオブジェクトＩＤに関連づけられたＧＵＩオブジェクトのスタブであるＧＵＩオブジェクトスタブとが関連づけられて記憶されるステップと、情報処理装置のＧＵＩ実行部によって、ＧＵＩオブジェクトに基づいて情報処理端末にＧＵＩ画面が表示され、ＧＵＩ画面に対して入力イベントが発生すると、入力イベントが情報処理装置のＧＵＩ実行部に送信されるステップと、情報処理装置のＧＵＩ実行部において、入力イベントが受信されると、入力イベントからユーザアクションに関するアクションＩＤとＧＵＩオブジェクトが取得されるステップと、情報処理装置のＧＵＩ実行モジュールにおいて、ユーザアクションを実行するスレッドが生成され、アクションカウント変数が初期化されるステップと、情報処理装置のＧＵＩ実行部において、アクションイベントＩＤとＧＵＩオブジェクトとが取得されると、ＧＵＩオブジェクトに基づいてＧＵＩオブジェクト管理部からＧＵＩオブジェクトＩＤが取得されるとともに、アクションＩＤとＧＵＩオブジェクトＩＤとを含むアクションコールパケットが生成されるステップと、情報処理装置のＧＵＩ実行部において、アクションカウント変数がインクリメントされるとともに、アクションコールパケットが、情報処理装置のビジネスロジック実行モジュールに送信されるステップと、情報処理装置のビジネスロジック実行部において、アクションコールパケットが受信されると、アクションコールパケットからアクションＩＤとＧＵＩオブジェクトＩＤが取得され、アクションＩＤに基づいてアクション管理部からユーザアクションが取得されるとともに、オブジェクトＩＤに基づいてＧＵＩスタブ管理部からＧＵＩオブジェクトスタブが取得されるステップと、情報処理装置のビジネスロジック実行部において、取得されたＧＵＩオブジェクトスタブに対して、取得されたユーザアクションが実行されるステップを備える。
【００１８】
ここで、情報処理装置のビジネスロジック実行部において、ユーザアクションでＧＵＩオブジェクトスタブのメソッドが所定のパラメタで呼び出された場合、ＧＵＩオブジェクトＩＤとパラメタとを含むメソッドコールパケットが生成され、ＧＵＩ実行モジュールに送信されるステップと、情報処理装置のＧＵＩ実行部において、メソッドコールパケットが受信されると、メソッドコールパケットからＧＵＩオブジェクトＩＤ及びパラメタが取り出され、ＧＵＩオブジェクトＩＤに基づいてＧＵＩオブジェクト管理部からＧＵＩオブジェクトが取得されるステップと、情報処理装置のＧＵＩ実行部において、取得されたＧＵＩオブジェクト及びパラメタに基づいて情報処理端末に新たなＧＵＩ画面が表示され、新たなＧＵＩ画面に対して新たな入力イベントが発生すると、新たな入力イベントが情報処理装置のＧＵＩ実行モジュールに送信され、ＧＵＩオブジェクトリターンデータに変換されるステップと、情報処理装置のＧＵＩ実行部において、ＧＵＩオブジェクトリターンデータを含むメソッドリターンパケットが生成され、情報処理装置のビジネスロジック実行モジュールに送信されるステップと、情報処理装置のビジネスロジック実行部において、メソッドリターンパケットが受信されると、メソッドリターンパケットからＧＵＩオブジェクトリターンデータが取得され、ＧＵＩオブジェクトリターンデータが、ＧＵＩオブジェクトスタブのメソッドの戻り値として返されるステップとを更に備えても良い。
【００１９】
更に、情報処理装置のビジネスロジック実行部において、ＧＵＩオブジェクトスタブのメソッドの戻り値としてアクションリターンデータが取得されると、アクションリターンデータを含むアクションリターンパケットが作成され、アクションリターンパケットがユーザアクションの戻り値として返されるステップと、情報処理装置のＧＵＩ実行部において、アクションリターンパケットが受信されると、アクションカウント変数をデクリメントし、アクションカウント変数がゼロになると、アクションリターンパケットからアクションリターンデータが取得されるステップとを更に備えても良い。
【００２０】
本発明の第３の特徴は、情報処理装置と、情報処理装置から提供される情報を利用する情報処理端末とを備える情報処理システムである。即ち本発明の第３の特徴に係る情報処理システムの情報処理端末は、情報処理装置の命令に従って、情報処理端末の表示装置にＧＵＩ画面を表示し、情報処理端末の入力装置によってＧＵＩ画面に対して発生された入力イベントを情報処理装置に送信する。本発明の第３の特徴に係る情報処理システムの情報処理装置は、情報処理端末にＧＵＩ画面を表示する命令を出力し、ＧＵＩ画面に対して入力イベントが発生すると、入力イベントがユーザアクションに変換され、ＧＵＩオブジェクトのスタブであるＧＵＩオブジェクトスタブでユーザアクションを実行するスレッドを生成し、スレッドにおいてユーザアクションを実行し、ユーザアクションの実行においてＧＵＩオブジェクトのメソッドが呼び出された場合、呼び出しに関するパラメタに基づいて情報処理端末に新たなＧＵＩ画面を表示する命令を出力し、新たなＧＵＩ画面に対して新たな入力イベントが発生すると、新たな入力イベントをリターンデータに変換し、リターンデータに基づいて、スレッドにおいてユーザアクションを実行した結果を、ユーザアクションの実行命令の戻り値として出力する。
【００２１】
このような本発明の第３の特徴に係る情報処理システムは、情報処理端末ではＧＵＩ画面の表示し、入力イベントを受信するのみで、情報処理装置でＧＵＩ操作メソッド及びビジネスロジックが実行されるので、情報処理端末側の開発作業量を軽減し、開発効率を向上させる情報処理方法を提供することができる。
【発明の効果】
【００２２】
本発明によれば、情報処理装置と、情報処理装置から提供される情報を利用する情報処理端末とを備える情報処理システムにおける開発効率を向上させる情報処理方法、この情報処理方法を用いた情報処理システムを提供することができる。
【発明を実施するための最良の形態】
【００２３】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【００２４】
本発明の最良の実施の形態において、図２、図９及び図１０のシーケンス図は、ＵＭＬ（Unified Modeling Language）に従って記載されている。具体的には、ＡオブジェクトからＢオブジェクトへのメソッド呼び出しが同期メッセージである場合、同期メッセージは、図９のＳ１０１の様な三角を塗りつぶしたの実線矢印で表す。またこのメソッド呼び出しに対する戻り値は、図９のＳ１２７の様に点線矢印で表す。一方、ＡオブジェクトからＢオブジェクトへのメソッドの呼び出しが非同期メッセージである場合、図９のＳ１０４の様な塗りつぶさない実線矢印で表す。またここで、非同期メッセージとは、呼び出し側が処理の完了を待たされずに、呼び出した処理が行われるメッセージである。
【００２５】
（最良の実施の形態）
（情報処理システム）
図１を参照して、本発明の最良の実施の形態に係る情報処理システム４の概要を説明する。本発明の最良の実施の形態に係る情報処理システム４は、クライアントである情報処理端末１とサーバである情報処理装置２を備える。情報処理端末１は、ＧＵＩコンテナを備えており、情報処理装置２は情報処理端末１のＧＵＩを制御するリモートユーザアクションクラスを備えたＪ２ＥＥコンテナを有する。
【００２６】
情報処理端末１において、ユーザによる入力装置の操作によって、ＧＵＩコンテナのフィールドに対する入力イベントが発生すると、情報処理装置２は、情報処理端末１から入力イベントを受信し、ＧＵＩコンテナのフィールドデータを取得する。更に、情報処理装置２は、情報処理端末１のＧＵＩオブジェクトのスタブを有しており、このスタブを利用して取得したフィールドデータに基づいてビジネスロジックを実行し、その結果得られた新たなフィールドデータを、情報処理端末１にセットする。
【００２７】
この様に、本発明の最良の実施の形態に係る情報処理システム４においては、情報処理端末１上のＧＵＩオブジェクトで発生した入力イベントをトリガーとして、サーバ上のＧＵＩオブジェクトのスタブのメソッドを実行ことにより、情報処理装置２でユーザアクションを実行し、その戻り値のデータを情報処理端末１のＧＵＩオブジェクトに反映することができる。
【００２８】
次に、図２を参照して、本発明の最良の実施の形態に係る情報処理システム４において、情報処理端末１のＧＵＩに対してアクションイベントが発生し、発生したアクションイベントに対する戻り値として、新たにＧＵＩオブジェクトを実行する命令を取得した場合について説明する。図２において、ＧＵＩオブジェクト部２１、アクション管理部３４及びＧＵＩスタブ管理部３３は、情報処理装置２に含まれる。ＧＵＩオブジェクト部２１は、情報処理端末１に表示されるＧＵＩオブジェクトを管理し、情報処理端末１からの入力イベントを受信し、その処理結果を情報処理端末１に送信して画面表示するとともに、入力イベントをアクションイベントに変換するオブジェクトである。アクション管理部３４は、ＧＵＩオブジェクト部２１が受信するユーザアクションと、ユーザアクションを識別するアクションＩＤとが関連づけられているオブジェクトである。ＧＵＩスタブ管理部３３は、ＧＵＩオブジェクト部２１で管理されるＧＵＩオブジェクトを識別するＧＵＩオブジェクトＩＤと、ＧＵＩオブジェクトのスタブであるＧＵＩオブジェクトスタブとが関連づけられているオブジェクトである。
【００２９】
まず、情報処理端末１において、情報処理装置２の命令に従って情報処理端末１にＧＵＩ画面が表示され、このＧＵＩ画面に対して入力イベントが発生される。
【００３０】
次に、ステップＳ１において、情報処理装置２のＧＵＩオブジェクト部２１において、情報処理端末１の入力部１２から入力イベントが受信されると、入力イベントをアクションイベントに変換してアクション管理部３４のメソッドが呼び出される。
【００３１】
ステップＳ２において、アクション管理部３４は、アクションイベントが発生したＧＵＩオブジェクトのスタブメソッドがＧＵＩスタブ管理部３３に対して呼び出される。ＧＵＩスタブ管理部３３は、スタブメソッドが呼び出されると、このスタブメソッドを実行する。このとき、ＧＵＩオブジェクト部２１から受信されたアクションイベントに基づいてスタブメソッドが実行される。
【００３２】
このスタブメソッドの戻り値として新たにＧＵＩオブジェクトを実行する命令を取得した場合、ステップＳ３においてＧＵＩスタブ管理部３３は、ＧＵＩオブジェクト部２１に対して、ＧＵＩオブジェクトのメソッドを呼び出す。ＧＵＩオブジェクト部２１は、ＧＵＩスタブ管理部３３からメソッドが呼び出されると、そのメソッドをＧＵＩオブジェクト部２１で実行し、情報処理端末１の画面表示部１１にＧＵＩ画面を表示させるとともに、入力部１２からの入力イベントを取得する。ＧＵＩオブジェクト部２１は、入力イベントに基づいてＧＵＩオブジェクトを実行してリターンデータを生成し、ステップＳ３のＧＵＩオブジェクトメソッド呼び出しの戻り値として、ステップＳ４においてリターンデータをＧＵＩスタブ管理部３３に送信する。
【００３３】
ＧＵＩオブジェクト部２１から新たにＧＵＩオブジェクトが実行された結果であるリターンデータが送信されるとＧＵＩスタブ管理部３３は、そのリターンデータに基づいて処理を実行する。その処理の戻り値として、新たなＧＵＩオブジェクトを実行する命令を取得すると、再びＧＵＩオブジェクト部２１に対してＧＵＩオブジェクトメソッドを呼び出す。一方、その戻り値に新たなＧＵＩオブジェクトを実行する命令が含まれていない場合、ステップＳ５において、ＧＵＩスタブ管理部３３における戻り値を、ステップＳ２のスタブメソッド呼び出しの戻り値としてアクション管理部３４に返す。アクション管理部３４は、ＧＵＩスタブ管理部３３からスタブメソッド呼び出しのリターンデータを受信すると、ステップＳ１のアクション実行に対する戻り値として、受信したデータをＧＵＩオブジェクト部２１に送信する。ＧＵＩオブジェクト部２１は、情報処理端末１の画面表示部１１に受信したデータを表示させる。
【００３４】
次に、図３を参照して、本発明の最良の実施の形態に係る情報処理システム１０を詳細に説明する。
【００３５】
本発明の最良の実施の形態に係る情報処理システム４は、クライアントである情報処理端末１とサーバである情報処理装置２を備え、情報処理端末１と情報処理装置２は、通信ネットワーク５を介して相互に接続されている。通信ネットワーク５は、インターネットやＬＡＮなどの相互通信可能なネットワークである。
【００３６】
図４に示すように、本発明の最良の実施の形態に係る情報処理装置２は、中央処理制御装置１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３及び入出力インタフェース１０９が、バス１１０を介して接続されている。入出力インタフェース１０９には、入力装置１０４、表示装置１０５、通信制御装置１０６、記憶装置１０７及びリムーバブルディスク１０８が接続されている。
【００３７】
中央処理制御装置１０１は、入力装置１０４からの入力信号に基づいてＲＯＭ１０２から情報処理装置２を起動するためのブートプログラムを読み出して実行し、更に記憶装置１０７に記憶されたオペレーティングシステムを読み出す。更に中央処理制御装置１０１は、入力装置１０４や通信制御装置１０６などの入力信号に基づいて、各種装置の制御を行ったり、ＲＡＭ１０３や記憶装置１０７などに記憶されたプログラム及びデータを読み出してＲＡＭ１０３にロードするとともに、ＲＡＭ１０３から読み出されたプログラムのコマンドに基づいて、データの計算又は加工など、後述する一連の処理を実現する処理装置である。
【００３８】
入力装置１０４は、操作者が各種の操作を入力するキーボード、マウスなどの入力デバイスにより構成されており、操作者の操作に基づいて入力信号を作成し、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送信される。表示装置１０５は、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどであり、中央処理制御装置１０１からバス１１０及び入出力インタフェース１０９を介して表示装置１０５において表示させる出力信号を受信し、例えば中央処理制御装置１０１の処理結果などを表示する装置である。通信制御装置１０６は、ＬＡＮカードやモデムなどの装置であり、情報処理装置２をインターネットやＬＡＮなどの通信ネットワークに接続する装置である。通信制御装置１０６を介して通信ネットワークと送受信したデータは入力信号又は出力信号として、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送受信される。
【００３９】
記憶装置１０７は半導体記憶装置や磁気ディスク装置であって、中央処理制御装置１０１で実行されるプログラムやデータが記憶されている。リムーバブルディスク１０８は、光ディスクやフレキシブルディスクのことであり、ディスクドライブによって読み書きされた信号は、入出力インタフェース１０９及びバス１１０を介して中央処理制御装置１０１に送受信される。
【００４０】
本発明の最良の実施の形態に係る情報処理装置２の記憶装置１０７には、サーバ情報処理プログラムが記憶され、サーバ情報処理プログラムが情報処理装置２の中央処理制御装置１０１に読み込まれ実行されることによって、ＧＵＩ実行モジュール（ＧＵＩ実行部）２０及びビジネスロジック実行モジュール（ビジネスロジック実行部）３０が情報処理装置２に実装される。ＧＵＩ実行モジュール２０は、ＧＵＩオブジェクト部２１、ＧＵＩメソッド実行部２２、ＧＵＩオブジェクト管理部２３、アクションイベント受信部２４、ＧＵＩアクション実行部２５及び通信オブジェクト管理部２６を備える。ビジネスロジック実行モジュール３０は、アクションスレッド部３１、スタブメソッド実行部３２、ＧＵＩスタブ管理部３３、アクション管理部３４、アクション実行部３５及びビジネスロジックスレッド管理部３６を備える。ＧＵＩ実行モジュール２０及びビジネスロジック実行モジュール３０の各部において記憶されるデータやメソッドの実行時に発生するワークデータは、記憶装置１０７に記憶される。
【００４１】
また、情報処理端末１も情報処理装置２と同様のハードウェア構成を備える。情報処理端末１の記憶装置には、クライアント情報処理プログラムが記憶され、クライアント情報処理プログラムが情報処理端末１の中央処理制御装置に読み込まれ実行されることによって、ＧＵＩ表示モジュール１０が情報処理端末１に実装される。ＧＵＩ表示モジュール１０は、画面表示部１１、入力部１２及びリクエスト代理部１３を備える。ＧＵＩ表示モジュール１０の各部おいて記憶されるデータや、メソッドの実行時に発生するワークデータは情報処理端末１の記憶装置に記憶される。
【００４２】
（情報処理端末）
図３及び図５を参照して、本発明の最良の実施の形態に係る情報処理端末１について詳述する。
【００４３】
情報処理端末１は、ＧＵＩ表示モジュール１０を備える。ＧＵＩ表示モジュール１０は、画面表示部１１、入力部１２及びリクエスト代理部１３を備える。
【００４４】
画面表示部１１は、情報処理装置１のＧＵＩオブジェクト部２１からの命令に従って、ＧＵＩ画面を表示装置に表示する。入力部１２は、入力装置からの入力イベントを、情報処理装置１のＧＵＩオブジェクト部２１に送信する。
【００４５】
リクエスト代理部１３は、図５（ｃ）に示すようにpostメソッドを備える。postメソッドは、引数としてビジネスロジック実行モジュールアドレス及びＧＵＩスレッドＩＤを設定して、情報処理装置２のアクションスレッド部３１のrunを呼び出す処理をする。このリクエスト代理部１３は、情報処理装置２のＧＵＩ実行モジュール２０のアクションイベント受信部２４からの呼び出しに応じて、情報処理装置２のビジネスロジック実行モジュール３０のビジネスロジックを呼び出す。この動作により、ビジネスロジックが、ＳＳＬ認証などの場合で、特定の端末からの呼び出しにしか応じない場合でも対応することができる。
【００４６】
（情報処理装置）
本発明の最良の実施の形態に係る情報処理装置２は、ＧＵＩ実行モジュール（ＧＵＩ実行部）２０と、ビジネスロジック実行モジュール（ビジネスロジック実行部）３０とを備える。
【００４７】
図３及び図６を参照して、本発明の最良の実施の形態に係る情報処理装置２のＧＵＩ実行モジュール２０について詳述する。
【００４８】
ＧＵＩ実行モジュール２０は、ＧＵＩオブジェクト部２１、ＧＵＩメソッド実行部２２、ＧＵＩオブジェクト管理部２３、アクションイベント受信部２４、ＧＵＩアクション実行部２５及び通信オブジェクト管理部２６を備える。
【００４９】
ＧＵＩオブジェクト部２１は、図６（ａ）に示すように、ＧＵＩの部品であるＧＵＩオブジェクトと、そのＧＵＩオブジェクトを操作することが可能なＧＵＩ操作メソッドを持つ。更にＧＵＩオブジェクト部２１は、情報処理端末１の画面表示部１１にＧＵＩ画面を表示させる命令を出力するとともに、情報処理端末１の入力部１２から入力イベントを受信し、受信した入力イベントに基づいてＧＵＩ操作メソッドを実行してアクションイベントを生成し、アクションＩＤ及びＧＵＩオブジェクトをアクションイベント受信部２４に入力する。
【００５０】
ＧＵＩメソッド実行部２２は、図６（ｂ）に示すように、invokeメソッドを備える。invokeメソッドは、引数としてMethodCallパケット（メソッドコールパケット）が設定されて呼び出され、ＧＵＩオブジェクトのＧＵＩ操作メソッドを呼び出す。
【００５１】
ＧＵＩオブジェクト管理部２３は、ＧＵＩオブジェクトとＧＵＩオブジェクトＩＤを対にして管理する。ＧＵＩオブジェクト管理部２３は、図６（ｃ）に示すように、getObjectIDメソッドと、getObjectメソッドを備える。getObjectIDメソッドは、ＧＵＩオブジェクトからＧＵＩオブジェクトＩＤを検索して、戻り値としてＧＵＩオブジェクトＩＤを返す。getObjectメソッドは、ＧＵＩオブジェクトＩＤからＧＵＩオブジェクトを検索して、戻り値としてＧＵＩオブジェクトを返す。
【００５２】
アクションイベント受信部２４は、図６（ｄ）に示すように、receiveEventメソッドを備える。receiveEventメソッドは、引数としてアクションＩＤ及びＧＵＩオブジェクトが設定されて、ＧＵＩオブジェクト部２１から呼び出される。receiveEventメソッドは、通信オブジェクト管理部２６を生成し、通信オブジェクト管理部２６のstartメソッドを呼び出し、ＧＵＩオブジェクト部２１に、アクションリターンデータを戻り値として返す。更にreceiveEventメソッドは、ＧＵＩアクション実行部２５を生成し、ＧＵＩアクション実行部２５のrunActionを呼び出す。
【００５３】
ＧＵＩアクション実行部２５は、アクションイベントを、最終目的地としてアクション実行部３５に送り届けるための最初の処理を行う。ＧＵＩアクション実行部２５は、図６（ｅ）に示すように、runActionメソッドを備える。runActionメソッドは、ＧＵＩスレッドＩＤ、アクションＩＤ及びＧＵＩオブジェクトが設定されて呼び出され、アクションリターンデータを戻り値として返す。ＧＵＩアクション実行部２５のruActionメソッドは、ActionCallパケット（アクションコールパケット）を生成し、通信オブジェクト管理部２６のexchangePacketメソッドを呼び出し、戻り値として受信パケットを受信する。受信パケットがActionReturnパケットの場合、runActionメソッドはアクションリターンデータを返す。一方受信パケットがMethodCallパケット（メソッドコールパケット）の場合、runActionメソッドは、ＧＵＩメソッド実行部２２のinvokeメソッドを呼び出し、その戻り値を再び通信オブジェクト管理部２６のexchangePacketメソッドの引数に渡す。
【００５４】
通信オブジェクト管理部２６は、図６（ｆ）に示すように、ＧＵＩスレッドＩＤをキーとして、ACTION_COUNT（アクションカウント変数）という初期値０の整数と、INITという初期値FALSEのフラグを対にしたレコードを備える。ＧＵＩスレッドＩＤは、ＧＵＩ実行モジュールを一意に表すアドレスと、ＧＵＩスレッドＩＤを一意に表すＩＤを含む。通信オブジェクト管理部２６は、getGuiThreadIDメソッドと、isNewThreadメソッドと、startメソッドと、exchangePacketメソッドを備える。getGuiThreadIDメソッドは、ＧＵＩスレッドＩＤを取得して戻り値として返す。startメソッドは、ＧＵＩスレッドＩＤをキーとするレコードを通信オブジェクト管理部２６に追加して、ユーザアクションを実行するスレッドである。isNewThreadメソッドは、引数としてＧＵＩスレッドＩＤが設定され、このＧＵＩスレッドＩＤをキーとするレコードがあればＦＡＬＳＥを戻り値として返す。
【００５５】
exchangePacketメソッドは、引数としてＧＵＩスレッドＩＤ及びパケットが設定され。後述する図１１のフローチャートに従って、２つのスレッド間でパケットを交換する。Ａスレッドから呼び出されたexchangePacketメソッドの引数としてアクションリターンパケットを受け取ると、通信オブジェクト管理部２６は、Ｂスレッドから呼び出されたexchangePacketメソッドの戻り値としてアクションリターンパケットを返し、アクションカウント変数をデクリメントする。アクションカウントが０になった場合、通信オブジェクト管理部２６は、Ａスレッドから呼び出されたexchangePacketメソッドの戻り値としてnullを返す。これ以外の場合、通信オブジェクト管理部２６は、ＡスレッドからＡパケットを引数としてexchangePacketメソッドが呼び出された場合、以前にＢスレッドから呼び出されたexchangePacketの戻り値としてAパケットを返し、Ａスレッドから呼び出されたexchangePacketメソッドは待機する。
【００５６】
ここで、通信オブジェクト管理部２６が扱うパケットは、図７の様なクラス構成を備える。パケットは、送信パケットと受信パケットを含む。送信パケットは、クライアントスレッドＩＤを含み、スレッドスタートパケットと、アクションＩＤ及びＧＵＩオブジェクトＩＤを含むアクションコールパケットと、ＧＵＩオブジェクトリターンデータを含むメソッドリターンパケットを含む。受信パケットは、ＧＵＩオブジェクトＩＤとパラメタを含むメソッドコールパケットと、アクションリターンパケットを含むアクションリターンパケットを含む。
【００５７】
次に、図３及び図８を参照して、本発明の最良の実施の形態に係る情報処理装置２のビジネスロジック実行モジュール３０について詳述する。
【００５８】
ビジネスロジック実行モジュール３０は、アクションスレッド部３１、スタブメソッド実行部３２、ＧＵＩスタブ管理部３３、アクション管理部３４、アクション実行部３５及びビジネスロジックスレッド管理部３６を備える。
【００５９】
アクションスレッド部３１は、図８（ａ）に示すように、runメソッドを備える。runメソッドは、引数としてＧＵＩスレッドＩＤが設定されて呼び出される。runメソッドは、通信オブジェクト管理部２６のexchangePacketメソッドを用いて、アクションを実行するためのActionCallパケットを受信し、アクション実行部３５を生成してアクション実行部３５のinvokeActionを呼び出し、その戻り値を再びexchangePacketメソッドの引数として、通信オブジェクト管理部２６に渡す。
【００６０】
スタブメソッド実行部３２は、図８（ｂ）に示すように、invokeMethodメソッドを備える。invokeMethodメソッドは、ＧＵＩオブジェクトＩＤ及びパラメタが設定されて呼び出される。invokeMethodメソッドは、ＧＵＩスタブの呼び出しに伴い、通信オブジェクト管理部２６のexchangePacketメソッドでMethodCallパケットを渡す。exchangePacketメソッドの戻り値としてMethodReturnパケットが帰ってきた場合、invokeMethodメソッドはＧＵＩスタブの戻り値としてＧＵＩオブジェクトリターンデータを返す。ActionCallパケットが返ってきた場合、invokeMethodメソッドは、アクション実行部３５を新たに作成し、アクション実行部３５のinvokeActionを呼び出し、その戻り値を再び通信オブジェクト管理部２６のexchangePacketの引数として渡す。invokeMethodメソッドは、exchangePacketの戻り値としてMethodReturnパケットが返ってくるまで、同様の処理を繰り返す。
【００６１】
ＧＵＩスタブ管理部３３は、ＧＵＩスタブを管理し、図８（ｃ）に示すように、getObjectStubメソッドを備える。getObjectStubメソッドは、引数としてオブジェクトＩＤが設定されて呼び出され、オブジェクトＩＤを元にＧＵＩオブジェクトスタブを生成し、戻り値としてＧＵＩオブジェクトスタブを返す。ここでＧＵＩオブジェクトスタブは、図８（ｇ）に示すように、ＧＵＩオブジェクトＩＤに対応する。
【００６２】
アクション管理部３４は、ユーザアクションを管理し、図８（ｄ）に示すように、getActionメソッドを備える。getActionメソッドは、引数としてアクションＩＤが設定されて呼び出され、アクションＩＤを元にユーザアクションを検索して、戻り値としてユーザアクションを返す。
【００６３】
アクション実行部３５は、図８（ｅ）に示すように、invokeActionメソッドを備える。invokeActionメソッドは、引数としてActionCallパケットが設定されて呼び出され、アクション管理部３４からユーザアクションを取得し、ＧＵＩスタブ管理部３３から取得したＧＵＩオブジェクトスタブを引数として、ユーザアクションを呼び出す。
【００６４】
ビジネスロジックスレッド管理部３６は、setGuiThreadIDメソッド、getGuiThreadIDメソッド及びremoveGuiThreadIDメソッドの３つのメソッドを持つ。setGuiThreadIDメソッドは、引数としてＧＵＩスレッドＩＤが設定されて呼び出され、スレッドＩＤ取得手段を用いてビジネスロジックスレッドＩＤを取得し、ＧＵＩスレッドＩＤとビジネスロジックスレッドＩＤの対を一つのレコードとして保存する。getGuiThreadIDメソッドは、スレッドＩＤ取得手段を用いて、ビジネスロジックスレッドＩＤを取得し、ビジネスロジックスレッドＩＤをキーにＧＵＩスレッドＩＤを検索して、ＧＵＩスレッドＩＤを返す。removeGuiThreadIDメソッドは、引数としてＧＵＩスレッドＩＤが設定されて呼び出され、ＧＵＩスレッドＩＤをキーにレコードを検索し、検索されたレコードを削除する。
【００６５】
（情報処理方法）
次に、図９乃及び図１０を参照して、本発明の最良の実施の形態に係る情報処理方法を説明する。
【００６６】
まず、図９を参照して、ユーザアクションを実行するまでの処理を説明する。
【００６７】
ＧＵＩオブジェクト部２１は、情報処理端末１のＧＵＩ表示モジュール１０の入力部１２から入力イベントを受信すると、入力イベントからユーザアクションに関するアクションＩＤ及びＧＵＩオブジェクトを取得する。ＧＵＩオブジェクト部２１は、ステップＳ１０１において、アクションイベント受信部２４のreceiveEventメソッドを、引数としてアクションＩＤ及びＧＵＩオブジェクトを設定して呼び出す。
【００６８】
ＧＵＩオブジェクト部２１からreceiveEventメソッドが呼び出されると、ステップＳ１０２において、アクションイベント受信部２４は、receiveEventメソッドにおいて、通信オブジェクト管理部２６のgetGuiThreadIDメソッドを引数を設定せずに呼び出し、戻り値としてＧＵＩスレッドＩＤを取得する。更に、アクションイベント受信部２４は、通信オブジェクト管理部２６のisNewThreadメソッドを、引数としてＧＵＩスレッドＩＤを設定して呼び出す。アクションイベント受信部２４は、戻り値としてブール値ＴＲＵＥを得て、このＧＵＩスレッドＩＤをキーとするレコードが通信オブジェクト管理部２６に存在することを確認する。ブール値TRUEを取得した後、アクションイベント受信部２４は、通信オブジェクト管理部２６のstartメソッドを、引数としてＧＵＩスレッドＩＤを設定して呼び出す。
【００６９】
通信オブジェクト管理部２６は、startメソッドの中で、ＧＵＩスレッドＩＤにACTION_COUNT及びINITを対応付けたレコードを作成して各変数は初期化され、ステップＳ１０３において、ステップＳ１０２に対する応答としてＧＵＩスレッドＩＤをアクションイベント受信部に返す。
【００７０】
アクションイベント受信部２４は、receiveEventメソッドの中で、ステップＳ１０４において、情報処理端末１のリクエスト代理部１３のpostを、引数としてビジネスロジック実行モジュールアドレス及びＧＵＩスレッドＩＤを設定して、非同期で呼び出す。
【００７１】
情報処理端末１のリクエスト代理部１３は、postメソッドが呼び出されると、postメソッドの中で、引数であるビジネスロジック実行モジュールアドレスを元にビジネスロジック実行モジュール３０を探し出し、ステップＳ１０５において、アクションスレッド部３１のrunメソッドを、引数としてＧＵＩスレッドＩＤを設定して呼び出す。
【００７２】
アクションスレッド部３１は、runメソッドの中で、ビジネスロジックスレッド管理部３６のsetGuiThreadIDメソッドを、引数としてＧＵＩスレッドＩＤを設定して呼び出し、応答を得る。このとき、ビジネスロジックスレッド管理部３６のsetGuiThreadIDメソッドは、スレッドＩＤ取得手段を用いてビジネスロジックスレッドＩＤを取得し、ＧＵＩスレッドＩＤとビジネスロジックスレッドＩＤとを対応させて一つのレコードとして記憶する。
【００７３】
アクションスレッド部３１は、runメソッドの中で、ビジネスロジックスレッド管理部３６のsetGuiThreadIDメソッドの応答を得ると、ステップＳ１０７において、ＧＵＩスレッドＩＤのアドレス部分を元に、通信オブジェクト管理部２６を検索し、通信オブジェクト管理部２６のexchangePacketメソッドを、引数としてＧＵＩスレッドＩＤ及びnullを設定して呼び出す。更に、通信オブジェクト管理部２６は、exchangePacketメソッドの中で変数ACTION_COUNTを０に設定して待機する。
【００７４】
一方、アクションイベント受信部２４は、ステップＳ１０６において、receiveEventメソッドの中でＧＵＩアクション実行部２５を生成し、ＧＵＩアクション実行部２５のrunActionメソッドを、引数としてＧＵＩスレッドＩＤ、アクションＩＤ及びＧＵＩオブジェクトを設定して呼び出す。
【００７５】
ＧＵＩアクション実行部２５は、runActionメソッドの中で、ＧＵＩオブジェクト管理部２３のgetObjectIDメソッドを、引数としてＧＵＩオブジェクトを設定して呼び出し、戻り値としてＧＵＩオブジェクトＩＤを取得する。更に、ＧＵＩアクション実行部２５は、ＧＵＩスレッドＩＤ、アクションＩＤ及びＧＵＩオブジェクトＩＤを含むActionCallパケットを生成し、ステップＳ１０８において、通信オブジェクト管理部２６のexchangePacketメソッドを、引数としてＧＵＩスレッドＩＤ及びActionCallパケットを設定して呼び出す。
【００７６】
通信オブジェクト管理部２６は、exchangePacketメソッドで引数としてＧＵＩスレッドＩＤ及びActionCallパケットが渡された場合、変数ACTION_COUNTを一つインクリメントして、ステップＳ１０９において、ステップＳ１０７からの呼び出しの戻り値として、ActionCallパケットをアクションスレッド部３１に渡す。
【００７７】
アクションスレッド部３１は、runメソッドの中で、exchangePacketメソッドの戻り値としてActionCalllパケットを受信すると、アクション実行部３５を生成し、ステップＳ１１０において、アクション実行部３５のinvokeActionメソッドを、引数としてActionCallパケットを設定して呼び出す。
【００７８】
アクション実行部３５は、invokeActionメソッドの中で、ActionCallパケットからアクションＩＤとＧＵＩオブジェクトＩＤを取得し、アクション管理部３４のgetActionメソッドを、引数としてアクションＩＤを設定して呼び出し、ユーザアクションを取得する。更にアクション実行部３５は、invokeActionメソッドの中で、ＧＵＩスタブ管理部３３のgetObjectStubメソッドを、引数としてＧＵＩオブジェクトＩＤを設定して呼び出してＧＵＩスタブを取得する。ここで、アクション実行部３５は、invokeActionメソッドの中で、ＧＵＩスタブを用いてユーザアクションを実行する。
【００７９】
図９を参照して、ユーザアクション内からＧＵＩオブジェクトを操作する処理を説明する。
【００８０】
アクション実行部３５のinvokeActionメソッドの中で実行中のユーザアクションからＧＵＩスタブのメソッドを呼び出した場合、ＧＵＩスタブは、ステップＳ１１１において、スタブメソッド実行部３２のinovokeMethodメソッドを、引数としてＧＵＩオブジェクトＩＤ及びパラメタを設定して呼び出す。ここで「パラメタ」は、実行中のユーザアクションから呼び出したメソッドに使用されるパラメタである。
【００８１】
スタブメソッド実行部３２は、invokeMethodメソッドの中で、ビジネスロジックスレッド管理部３６のgetGuiThreadIDメソッドを、引数を設定しいないで呼び出し、戻り値としてＧＵＩスレッドＩＤを取得する。更にスタブメソッド実行部３２は、invokeMethodメソッドの中で、ＧＵＩオブジェクトＩＤ及びパラメタを含むMethodCallパケットを作成し、ＧＵＩスレッドＩＤのアドレス部分を元に通信オブジェクト管理部２６を検索する。スタブメソッド実行部３２は、ステップＳ１１２において、通信オブジェクト管理部２６のexchangePacketメソッドを、引数としてＧＵＩスレッドＩＤ及びMethodCallパケットを設定して呼び出す。
【００８２】
通信オブジェクト管理部２６は、exchangePacketメソッドの中で、ステップＳ１１３において、ステップＳ１１２において渡されたMethodCallパケットを、ステップＳ１０８の呼び出しの戻り値としてＧＵＩアクション実行部２５に渡す。
【００８３】
ＧＵＩアクション実行部２５は、runActionメソッドの中で、ＧＵＩメソッド実行部２２を生成し、ステップＳ１１４において、invokeメソッドを、引数としてMethodCallパケットを設定して呼び出す。
【００８４】
ＧＵＩメソッド実行部２２は、invokeメソッドの中で、MethodCallパケットからＧＵＩオブジェクトＩＤ及びパラメタを取り出す。ＧＵＩメソッド実行部２２は、invokeメソッドの中で、ＧＵＩオブジェクト管理部２３のgetObjectメソッドを、引数としてＧＵＩオブジェクトＩＤを設定して呼び出し、ＧＵＩオブジェクトを取得する。ＧＵＩメソッド実行部２２は、invokeメソッドの中で、ステップＳ１１５において、ＧＵＩオブジェクトのＧＵＩ操作メソッドを、引数としてパラメタを設定して呼び出す。
【００８５】
ＧＵＩオブジェクト部２１は、ＧＵＩ操作メソッドの中で、引数として設定されたパラメタを元に、情報処理端末１の画面表示部１１に表示し、情報処理端末１からＧＵＩオブジェクトリターンデータが入力されると、ステップＳ１１６において、その入力をステップＳ１１４の戻り値として、ＧＵＩメソッド実行部２２に渡す。
【００８６】
ＧＵＩメソッド実行部２２は、invokeメソッドの中で、ＧＵＩオブジェクトリターンデータにＧＵＩオブジェクトが存在した場合、ＧＵＩオブジェクト管理部２３のgetObjectIDメソッドを呼び出し、ＧＵＩオブジェクトリターンデータ内のＧＵＩオブジェクトをＧＵＩオブジェクトＩＤに書き換える。更にＧＵＩメソッド実行部２２は、invokeメソッドの中で、ＧＵＩスレッドＩＤ、ＧＵＩオブジェクトリターンデータを含むMethodReturnパケットを作成し、ステップＳ１１７において、ステップＳ１１４の戻り値としてMethodReturnパケットをＧＵＩアクション実行部２５に渡した後、消滅する。
【００８７】
ＧＵＩアクション実行部２５は、runActionメソッドの中で、MethodReturnパケットを取得すると、ステップＳ１１８において、通信オブジェクト管理部２６のexchangePacketメソッドを、引数としてＧＵＩスレッドＩＤ及びMethodReturnパケットを設定して呼び出す。
【００８８】
通信オブジェクト管理部２６は、exchangePacketメソッドの中で、ステップＳ１１９において、ステップＳ１１２の戻り値としてMethodReturnパケットをスタブメソッド実行部３２に渡す。
【００８９】
スタブメソッド実行部３２は、invokeMethodメソッドの中で、exchangePacketメソッドの戻り値としてMethodReturnパケットを取得すると、MethodReturnパケットからＧＵＩオブジェクトリターンデータを取り出す。スタブメソッド実行部３２は、invokeMethodメソッドの中で、ＧＵＩオブジェクトリターンデータ内にＧＵＩオブジェクトＩＤが含まれていたら、ＧＵＩスタブ管理部３３のgetObjectStubメソッドを呼び出し、ＧＵＩオブジェクトＩＤに対応するＧＵＩスタブを取得し、ＧＵＩオブジェクトリターンデータのＧＵＩオブジェクトＩＤをＧＵＩスタブに書き換える。スタブメソッド実行部３２は、invokeMethodメソッドの中で、ステップＳ１２０において、ＧＵＩオブジェクトリターンデータをステップＳ１１１におけるＧＵＩスタブのメソッド呼び出しの戻り値としてアクション実行部３５に渡した後に消滅する。
【００９０】
更に、図９を参照して、ユーザアクションのリターン処理を説明する。
【００９１】
アクション実行部３５は、invokeActionメソッドの中でアクションリターンデータとしてＧＵＩオブジェクトリターンデータを取得すると、アクションリターンデータを含むActionReturnパケットを作成し、ステップＳ１２１において、ステップＳ１１０の戻り値としてアクションスレッド部３１にActionReturnパケットを渡した後、消滅する。
【００９２】
アクションスレッド部３１は、runメソッドの中で、ActionReturnパケットを受信し、ステップＳ１２２において、通信オブジェクト管理部２６のexchangePacketメソッドを、引数としてActionReturnパケットを設定して呼び出す。
【００９３】
通信オブジェクト管理部２６は、exchangePacketメソッドの中で、ActionReturnパケットを渡された場合、ステップＳ１２３において、ステップＳ１１８の戻り値としてActionReturnパケットをＧＵＩアクション実行部２５に渡す。通信オブジェクト管理部２６は、exchangePacketメソッドの中で、変数ACTION_COUNTから一つデクリメントする。これによりACTION_COUNTが０になるので、ＧＵＩスレッドＩＤに対応したレコードを削除し、ステップＳ１２５において、ステップＳ１２２の戻り値としてアクションスレッド部３１にnullを渡す。
【００９４】
アクションスレッド部３１は、runメソッドの中で、ステップＳ１２６において、ビジネスロジックスレッド管理部３６のremoveGuiThreadIDメソッドを、引数としてＧＵＩスレッドＩＤを設定して呼び出し、リクエスト代理部１３にステップＳ１０５のリターンを返して消滅する。
【００９５】
ＧＵＩアクション実行部２５は、runActionメソッドの中で、ActionReturnパケットを受信した場合、ActionReturnパケットからアクションリターンデータを取得し、ステップＳ１２４において、ステップＳ１０６の戻り値としてアクションイベント受信部２４にアクションリターンデータを渡す。
【００９６】
アクションイベント受信部２４は、receiveEventメソッドの中で、ステップＳ１２７において、ステップＳ１０１の戻り値としてアクションリターンデータをＧＵＩオブジェクト部２１に渡す。ＧＵＩオブジェクト部２１は、アクションリターンデータに従って情報処理端末１の画面表示部１１に画面表示させる。
【００９７】
次に、図１０を参照して、ビジネスロジック実行モジュール３０から呼び出されたＧＵＩオブジェクトのメソッドの中からアクションイベントが発生した場合を説明する。
【００９８】
ステップＳ２０１乃至ステップＳ２１５までの処理によって、ビジネスロジック実行モジュール３０から、ＧＵＩオブジェクト部２１のＧＵＩ操作メソッドが呼び出される。
【００９９】
ＧＵＩオブジェクト部２１は、ＧＵＩ操作メソッドの中で、引数として設定されたパラメタを元に、情報処理端末１の画面表示部１１に表示する。情報処理端末１からＧＵＩオブジェクトリターンデータが入力され、そのＧＵＩオブジェクトリターンデータの中でアクションイベントが発生すると、ステップＳ２０１’において、ＧＵＩオブジェクト部２１のＧＵＩ操作メソッドは、アクションイベント受信部２４のreceiveEventメソッドを、引数としてアクションＩＤ、ＧＵＩオブジェクトを設定して呼び出す。
【０１００】
アクションイベント受信部２４は、receiveEventメソッドの中で、通信オブジェクト管理部２６のgetGuiThreadIDメソッドを、引数を設定しないで呼び出し、戻り値としてＧＵＩスレッドＩＤを取得する。アクションイベント受信部２４は、receiveEventメソッドの中で、通信オブジェクト管理部２６のisNewThreadメソッドを、引数としてＧＵＩスレッドＩＤを呼び出し、戻り値としてブール値FALSEを取得する。更にアクションイベント受信部２４は、ステップＳ２０６’において、receiveEventメソッドの中で、ＧＵＩアクション実行部２５’を作成し、runActionメソッドを、引数としてＧＵＩスレッドＩＤ、アクションＩＤ及びＧＵＩオブジェクトを設定して呼び出す。
【０１０１】
ＧＵＩアクション実行部２５’は、runActionメソッドの中で、ＧＵＩオブジェクト管理部２３のgetObjectIDメソッドを、引数としてＧＵＩオブジェクトを設定して呼び出し、戻り値としてＧＵＩオブジェクトＩＤを取得する。更に、ＧＵＩアクション実行部２５’は、runActionメソッドの中で、ＧＵＩスレッドＩＤ、アクションＩＤ及びＧＵＩオブジェクトＩＤを含むActionCallパケットを作成し、ステップＳ２０８’において、通信オブジェクト管理部２６のexchangePacketメソッドを、引数としてＧＵＩスレッドＩＤ及びActionCallパケットを設定して呼び出す。
【０１０２】
通信オブジェクト管理部２６は、exchangePacketメソッドの中で、引数としてＧＵＩスレッドＩＤ及びActionCallパケットが送付されると、変数ACTION_COUNTが一つインクリメントされ、ステップＳ２０９’において、ステップＳ２１２の呼び出しの戻り値として、ActionCallパケットをスタブメソッド３２に渡す。
【０１０３】
スタブメソッド３２は、invokeMethodメソッドの中で、exchangePacketメソッドの戻り値としてActionCallパケットを取得するので、アクション実行部３５’を生成し、ステップＳ２１０’において、アクション実行部３５’のinvokeActionメソッドを、引数としてActionCallパケットを設定して呼び出す。
【０１０４】
このような図１０に示す処理により、ビジネスロジック実行モジュール３０から呼び出されたＧＵＩオブジェクトのメソッドの中から、アクションイベントが発生した場合でもアクションを実行することができる。
【０１０５】
図１１を参照して、本発明の最良の実施の形態に係る通信オブジェクト管理部２６のstartメソッドの処理を説明する。ここでは、図９及び図１０の各ステップにおける通信オブジェクト管理部２６の動作を説明する。
【０１０６】
（１）処理の開始（図９のステップＳ１０２）
ステップＳ３０１において、通信オブジェクト管理部２６のstartメソッドは、ＧＵＩオブジェクト部２１から、引数としてＧＵＩスレッドＩＤ及びパケットが設定されて呼び出されることによって処理が開始される。
【０１０７】
（２）図９のステップＳ１０７の処理
図９のステップＳ１０７において、アクションスレッド部３１から、引数としてＧＵＩスレッドＩＤ及びnullが設定されてexchangePacketメソッドが呼び出される場合について説明する。 
ステップＳ３０２において、引数パケットがnullと判断されるので、ステップＳ３０３に処理が進む。ステップＳ３０３において、INIT領域にTRUEを代入する。又、図９のステップＳ１０８の呼び出しの方が早い場合、ステップＳ３０５において図９のステップＳ１０８の呼び出しスレッドがWAIT（待機）しているので、待機中のステップＳ１０８の呼び出しスレッドにNotify（通知）する。ステップＳ３１３において、図９のステップＳ１０８の呼び出しの方が遅い場合は、ステップＳ１０８の呼び出しスレッドがステップＳ３１２においてNotifyするのを待機する。 
ステップＳ３１２においてNotifyされると、処理はステップＳ３１４に進む。 
ステップＳ３１４において、スタック変数TMPにパケット領域のパケットが保存される。ここでは、図９のステップＳ１０８の呼び出し時にステップＳ３１２においてActionCallパケットが保存されるので、スタック変数TMPにActionCallパケットが保存される。更に、レコードのパケット領域にnullが代入されてステップＳ３１５に処理が進み、ステップＳ３１５において、TMPが戻り値として返される。 
この制御により、ステップＳ１０８で受信したActionCallパケットがステップＳ１０７の戻り値として送信された後に、ステップＳ１０８の戻り値が処理されることになる。
【０１０８】
（３）図９のステップＳ１０８の処理
図９のステップＳ１０８において、ＧＵＩアクション実行部２５から、引数としてＧＵＩスレッドＩＤ及びActionCallパケットが設定されてexchangePacketメソッドが呼び出される場合について説明する。 
ステップＳ３０２において、引数パケットがnullではないと判断されるので、ステップＳ３０４に処理が進む。ステップＳ３０４において、ステップＳ１０７の呼び出しの方が早い場合は、既にINITがTRUEなのでステップＳ３０６に処理が進む。ステップＳ１０７の呼び出しの方が遅い場合は、ステップＳ３０５に処理が進む。 
ステップＳ３０５において、ステップＳ３０３においてステップＳ１０７の呼び出しスレッドからNotifyされるのをWAITするとともに、ステップＳ１０７の呼び出しスレッドからNotifyされると、ステップＳ３０６に処理が進む。 
ステップＳ３０６において、引数がActionReturnパケットではないと判断されてステップＳ３０８に処理が進み、ステップＳ３０８において、引数がActionCallパケットであると判断されて、ステップＳ３１０に処理が進む。ステップＳ３１０において、ACTION_COUNTが一つインクリメントされ、ACTION_COUNTが「１」になり、ステップＳ３１２に処理が進む。ステップＳ３１２において、レコードのパケット領域にActionCallパケットが保存され、ステップＳ３１３でWAITしている図９のステップＳ１０７の呼び出しスレッドに、NotifyしてステップＳ３１３に処理が進む。 
ステップＳ３１３において、ステップＳ３１２において図９のステップＳ１１２の呼び出しスレッドからNotifyされるのをWAITするとともに、ステップＳ１１２の呼び出しスレッドからNotifyされると、ステップＳ３１４に処理が進む。 
ステップＳ３１４において、スタック変数ＴＭＰにパケット領域のパケットが保存される。ここでは、図９のステップＳ１１２の呼び出し時にステップＳ３１２においてMethodCallパケットが保存されるので、スタック変数TMPにMethodCallパケットが保存される。更に、レコードのパケット領域にnullが代入されてステップＳ３１５に処理が進み、ステップＳ３１５において、TMPが戻り値として返される。 
この制御により、ステップＳ１１２で受信したMethodCallパケットがステップＳ１０８の戻り値として処理された後に、ステップＳ１１２の戻り値が処理されることになる。
【０１０９】
（４）図９のステップＳ１１２の処理
図９のステップＳ１１２において、スタブメソッド実行部３２から、引数としてＧＵＩスレッドＩＤ及びMethodCallパケットが設定されてexchangePacketメソッドが呼び出される場合について説明する。 
ステップＳ３０２において、引数パケットがnullではないと判断されるので、ステップＳ３０４に処理が進む。ステップＳ３０４において、ステップＳ１０７の呼び出しの動作によって、INITがTRUEなのでステップＳ３０６に処理が進む。
【０１１０】
ステップＳ３０６において、引数がActionReturnパケットではないと判断されてステップＳ３０８に処理が進み、ステップＳ３０８において、引数がActionCallパケットでないとと判断されて、ステップＳ３１２に処理が進む。 
ステップＳ３１２において、レコードのパケット領域にMethodCallパケットが保存され、ステップＳ３１３でWAITしている図９のステップＳ１０８の呼び出しスレッドに、NotifyしてステップＳ３１３に処理が進む。 
ステップＳ３１３において、ステップＳ３１２において図９のステップＳ１１８の呼び出しスレッドからNotifyされるのをWAITするとともに、ステップＳ１１８の呼び出しスレッドからNotifyされると、ステップＳ３１４に処理が進む。 
ステップＳ３１４において、スタック変数ＴＭＰにパケット領域のパケットが保存される。ここでは、図９のステップＳ１１８の呼び出し時にステップＳ３１２においてMethodReturnパケットが保存されるので、スタック変数TMPにMethodReturnパケットが保存される。更に、レコードのパケット領域にnullが代入されてステップＳ３１５に処理が進み、ステップＳ３１５において、TMPが戻り値として返される。 
この制御により、ステップＳ１１８で受信したMethodReturnパケットがステップＳ１１２の戻り値として処理された後に、ステップＳ１１８の戻り値が処理されることになる。
【０１１１】
（５）図９のステップＳ１１８の処理
図９のステップＳ１１８において、ＧＵＩアクション実行部２５から、引数としてＧＵＩスレッドＩＤ及びMethodReturnパケットが設定されてexchangePacketメソッドが呼び出される場合について説明する。 
ステップＳ３０２において、引数パケットがnullではないと判断されるので、ステップＳ３０４に処理が進む。ステップＳ３０４において、ステップＳ１０７の呼び出しの動作によって、INITがTRUEなのでステップＳ３０６に処理が進む。
【０１１２】
ステップＳ３０６において、引数がActionReturnパケットではないと判断されてステップＳ３０８に処理が進み、ステップＳ３０８において、引数がActionCallパケットでないとと判断されて、ステップＳ３１２に処理が進む。 
ステップＳ３１２において、レコードのパケット領域にMethodReturnパケットが保存され、ステップＳ３１３でWAITしている図９のステップＳ１１２の呼び出しスレッドに、NotifyしてステップＳ３１３に処理が進む。 
ステップＳ３１３において、ステップＳ３１１において図９のステップＳ１２２の呼び出しスレッドからNotifyされるのをWAITするとともに、ステップＳ１２２の呼び出しスレッドからNotifyされると、ステップＳ３１４に処理が進む。 
ステップＳ３１４において、スタック変数TMPにパケット領域のパケットが保存される。ここでは、図９のステップＳ１２２の呼び出し時にステップＳ３１１においてActionReturnパケットが保存されるので、スタック変数TMPにActionReturnパケットが保存される。更に、レコードのパケット領域にnullが代入されてステップＳ３１５に処理が進み、ステップＳ３１５において、TMPが戻り値として返される。 
この制御により、ステップＳ１２２で受信したActionReturnパケットがステップＳ１１８の戻り値として処理された後に、ステップＳ１２２の戻り値が処理されることになる。
【０１１３】
（６）図９のステップＳ１２２の処理
図９のステップＳ１２２において、アクションスレッド部３１から、引数としてActionReturnパケットが設定されてexchangePacketメソッドが呼び出される場合について説明する。 
ステップＳ３０２において、引数パケットがnullではないと判断されるので、ステップＳ３０４に処理が進む。ステップＳ３０４において、ステップＳ１０７の呼び出しの動作によって、INITがTRUEなのでステップＳ３０６に処理が進む。 
ステップＳ３０６において、引数がActionReturnパケットなので、ステップＳ３０７に処理が進む。ここでステップＳ３０７においてACTION_COUNTを一つデクリメントして、ACTION_COUNTが「０」になり、ステップＳ３０９に処理が進む。ステップＳ３０９において、ACTION_COUNTが「０」なので、ステップＳ３１１に処理が進む。 
ステップＳ３１１において、レコードのパケット領域にActionReturnパケットが保存され、ステップＳ３１３でWAITしている図９のステップＳ１１８の呼び出しスレッドに、Notifyする。更に、ＧＵＩスレッドＩＤをキーとしたレコードを削除してステップＳ３１５に処理が進み、ステップＳ３１５において、TMPが戻り値として返される。 
この制御により、ステップＳ１２２で受信したActionReturnパケットがステップＳ１１８の戻り値として処理された後に、ステップＳ１２２の戻り値が処理されることになる。
【０１１４】
（７）図１０のステップＳ２０７の処理
上述した図９のステップＳ１０７の処理と同じである。
【０１１５】
（８）図１０のステップＳ２０８の処理
上述した図９のステップＳ１０８の処理と同じである。
【０１１６】
（９）図１０のステップＳ２１２の処理
図１０のステップＳ２１２において、スタブメソッド実行部３２から、引数としてＧＵＩスレッドＩＤ及びMethodCallパケットパケットが設定されてexchangePacketメソッドが呼び出される場合について説明する。 
ステップＳ３０２において、引数パケットがnullではないと判断されるので、ステップＳ３０４に処理が進む。ステップＳ３０４において、ステップＳ２０７の呼び出しの動作によって、INITがTRUEなのでステップＳ３０６に処理が進む。
【０１１７】
ステップＳ３０６において、引数がActionReturnパケットではないと判断されてステップＳ３０８に処理が進み、ステップＳ３０８において、引数がActionCallパケットでないとと判断されて、ステップＳ３１２に処理が進む。 
ステップＳ３１２において、レコードのパケット領域にMethodCallパケットが保存され、ステップＳ３１３でWAITしている図１０のステップＳ２０８の呼び出しスレッドに、NotifyしてステップＳ３１３に処理が進む。 
ステップＳ３１３において、ステップＳ３１２において図１０のステップＳ２０８’の呼び出しスレッドからNotifyされるのをWAITするとともに、ステップＳ２０８’の呼び出しスレッドからNotifyされると、ステップＳ３１４に処理が進む。 
ステップＳ３１４において、スタック変数TMPにパケット領域のパケットが保存される。ここでは、図１０のステップＳ２０８’の呼び出し時にステップＳ３１２においてActionCallパケットが保存されるので、スタック変数ＴＭＰにActionCallパケットが保存される。更に、レコードのパケット領域にnullが代入されてステップＳ３１５に処理が進み、ステップＳ３１５において、TMPが戻り値として返される。 
この制御により、ステップＳ２０８’で受信したActionCallパケットがステップＳ２１２の戻り値として処理された後に、ステップＳ２０８’の戻り値が処理されることになる。
【０１１８】
（１０）図１０のステップＳ２０８’の処理
図１０のステップＳ２０８’において、ＧＵＩアクション実行部２５’から、引数としてＧＵＩスレッドＩＤ及びActionCallパケットが設定されてexchangePacketメソッドが呼び出される場合について説明する。 
ステップＳ３０２において、引数パケットがnullではないと判断されるので、ステップＳ３０４に処理が進む。ステップＳ３０４において、ステップＳ２０７の呼び出しの動作によって、INITがTRUEなのでステップＳ３０６に処理が進む。 
ステップＳ３０６において、引数がActionReturnパケットではないと判断されてステップＳ３０８に処理が進み、ステップＳ３０８において、引数がActionCallパケットであると判断されて、ステップＳ３１０に処理が進む。ステップＳ３１０において、ACTION_COUNTが一つインクリメントされ、ACTION_COUNTが「２」になり、ステップＳ３１２に処理が進む。ステップＳ３１２において、レコードのパケット領域にActionCallパケットが保存され、ステップＳ３１３でWAITしている図１０のステップＳ２１２の呼び出しスレッドに、NotifyしてステップＳ３１３に処理が進む。 
ステップＳ３１３において、ステップＳ３１２において図１０のステップＳ２２２’の呼び出しスレッドからNotifyされるのをWAITするとともに、ステップＳ２２２’の呼び出しスレッドからNotifyされると、ステップＳ３１４に処理が進む。 
ステップＳ３１４において、スタック変数ＴＭＰにパケット領域のパケットが保存される。ここでは、図１０のステップＳ２２２’の呼び出し時にステップＳ３１２においてActionReturnパケットが保存されるので、スタック変数TMPにActionReturnパケットが保存される。更に、レコードのパケット領域にnullが代入されてステップＳ３１５に処理が進み、ステップＳ３１５において、TMPが戻り値として返される。 
この制御により、ステップＳ２２２’で受信したMethodCallパケットがステップＳ２０８’の戻り値として処理された後に、ステップＳ２２２’の戻り値が処理されることになる。
【０１１９】
（１１）図１０のステップＳ２２２’の処理
図１０のステップＳ２２２’において、スタブメソッド実行部３２から、引数としてＧＵＩスレッドＩＤ及びActionReturnパケットが設定されてexchangePacketメソッドが呼び出される場合について説明する。 
ステップＳ３０２において、引数パケットがnullではないと判断されるので、ステップＳ３０４に処理が進む。ステップＳ３０４において、ステップＳ２０７の呼び出しの動作によって、INITがTRUEなのでステップＳ３０６に処理が進む。 
ステップＳ３０６において、引数がActionReturnパケットなので、ステップＳ３０７に処理が進む。ここでステップＳ３０７においてACTION_COUNTを一つデクリメントして、ACTION_COUNTが「１」になり、ステップＳ３１２に処理が進む。ステップＳ３１２において、レコードのパケット領域にActionReturnパケットが保存され、ステップＳ３１３でWAITしている図１０のステップＳ２０８’の呼び出しスレッドに、NotifyしてステップＳ３１３に処理が進む。 
ステップＳ３１３において、ステップＳ３１２において図１０のステップＳ２１８の呼び出しスレッドからNotifyされるのをWAITするとともに、ステップＳ２１８の呼び出しスレッドからNotifyされると、ステップＳ３１４に処理が進む。 
ステップＳ３１４において、スタック変数TMPにパケット領域のパケットが保存される。ここでは、図１０のステップＳ２１８の呼び出し時にステップＳ３１２においてMethodReturnパケットが保存されるので、スタック変数TMPにMethodReturnパケットが保存される。更に、レコードのパケット領域にnullが代入されてステップＳ３１５に処理が進み、ステップＳ３１５において、TMPが戻り値として返される。 
この制御により、ステップＳ２１８で受信したMethodReturnパケットがステップＳ２２２の戻り値として処理された後に、ステップＳ２１８の戻り値が処理されることになる。
【０１２０】
（１２）図１０のステップＳ２１８の処理
上述した図９のステップＳ１１８の処理と同じである。
【０１２１】
本発明の最良の実施の形態に係る情報処理方法は、ＧＵＩ表示モジュール１０からビジネスロジック実行モジュール３０へのリクエスト・リプライ型の通信と、ビジネスロジック実行モジュール３０からＧＵＩ実行モジュール２０へのリクエスト・リプライ型の通信を用いて、ＧＵＩアプリケーション上で発生したアクションイベントをきっかけとして、ビジネスロジック実行モジュール３０で行った計算結果をＧＵＩアプリケーションに反映させることができる。
【０１２２】
これにより、情報処理端末１からビジネスロジック実行モジュール３０へのアクセスにＳＳＬのクライアント認証が使われていて、情報処理端末１のＧＵＩ表示モジュール１０条にクライアント証明書がインストールされている場合でも、ＧＵＩ実行モジュール１０は、リクエスト代理部１３によってリクエストを代理することによって、ビジネスロジック実行モジュール３０へアクセスすることができる。
【０１２３】
これにより本発明の最良の実施の形態に係る情報処理方法は、情報処理端末１ではＧＵＩ画面の表示し、入力イベントを受信するのみで、情報処理装置２でＧＵＩ操作メソッド及びビジネスロジックが実行されるので、情報処理端末１側の開発作業量を軽減し、開発効率を向上させる情報処理方法を提供することができる。
【０１２４】
（変形例）
本発明の最良の実施の形態の変形例に係る情報処理システム４ａは、図１２に示すように、情報処理端末１、第１の情報処理装置２ａ及び第２の情報処理装置２ｂを備える。第１の情報処理装置２ａにはＧＵＩ実行モジュール２０が実装される。第２の情報処理装置２ｂにはビジネスロジック実行モジュール３０が実装される。
【０１２５】
情報処理端末１と第１の情報処理装置２ａ及び第２の情報処理装置２ｂは、第１の通信ネットワーク５ａを介して接続される。第１の通信ネットワーク５ａは、例えばインターネットなどの外部の通信ネットワークである。第１の情報処理装置２ａ及び第２の情報処理装置２ｂは、第２の通信ネットワーク５ｂを介して接続される。第２の通信ネットワーク５ｂは、例えば社内ＬＡＮなどの通信ネットワークである。
【０１２６】
このような本発明の最良の実施の形態の変形例に係る情報処理システム４ａは、第１の情報処理装置２ａ及び第２の情報処理装置２ｂとの間の通信において、オーバヘッドが発生するものの、第１の情報処理装置２ａ及び第２の情報処理装置２ｂとで、それぞれ作業を分担することにより、付加を分散させることができる。
【０１２７】
（その他の実施の形態）
上記のように、本発明の最良の実施の形態とその変形例によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなる。
【０１２８】
例えば、本発明の最良の実施の形態に記載した情報処理端末１及び情報処理装置２は、図３に示すようにそれぞれ一つのハードウェア上に構成されても良いし、図１２に示すように二つのハードウェア上に構成されても良い。又、その機能や処理数に応じて、３つ以上のハードウェア上に構成されても良い。また、既存の情報処理システム上に実現されても良い。
【０１２９】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【０１３０】
【図１】本発明の最良の実施の形態に係る情報処理システムの概要を説明する図である。
【図２】本発明の最良の実施の形態に係る情報処理システムに用いられる情報処理方法の処理を説明する図である。
【図３】本発明の最良の実施の形態に係る情報処理システムの機能構成を説明する図である。
【図４】本発明の最良の実施の形態に係る情報処理装置のハードウェア構成を説明する図である。
【図５】本発明の最良の実施の形態に係る情報処理端末に実装されるオブジェクトを説明する図である。
【図６】本発明の最良の実施の形態に係る情報処理装置のＧＵＩ実行モジュールに実装されるオブジェクトを説明する図である。
【図７】本発明の最良の実施の形態に係る情報処理装置のＧＵＩ実行モジュールにおいて扱われるパケットのクラス構成図である。
【図８】本発明の最良の実施の形態に係る情報処理装置のビジネスロジック実行モジュールに実装されるオブジェクトを説明する図である。
【図９】本発明の最良の実施の形態に係る情報処理方法を概略して説明するシーケンス図である。
【図１０】本発明の最良の実施の形態に係る情報処理方法を概略して説明するシーケンス図であって、ビジネスロジック実行モジュールから呼び出されたＧＵＩオブジェクトのメソッドの中からアクションイベントが発生した場合のシーケンス図である。
【図１１】本発明の最良の実施の形態に係る通信オブジェクト管理部のstartメソッドの処理を説明するフローチャートである。
【図１２】本発明の最良の実施の形態の変形例に係る情報処理システムの機能構成を説明する図である。
【図１３】従来の情報システムの概要を説明する図である。
【符号の説明】
【０１３１】
１  情報処理端末
２、２ａ、２ｂ  情報処理装置
４、４ａ  情報処理システム
５、５ａ、５ｂ  通信ネットワーク
１０  ＧＵＩ表示モジュール
１１  画面表示部
１２  入力部
１３  リクエスト代理部
２０  ＧＵＩ実行モジュール
２１  ＧＵＩオブジェクト部
２２  ＧＵＩメソッド実行部
２３  ＧＵＩオブジェクト管理部
２４  アクションイベント受信部
２５  ＧＵＩアクション実行部
２６  通信オブジェクト管理部
３０  ビジネスロジックスレッド管理部
３１  アクションスレッド部
３２  スタブメソッド実行部
３３  ＧＵＩスタブ管理部
３４  アクション管理部
３５  アクション実行部
３６  ビジネスロジックスレッド管理部
【図１】
2008083745.tif 000003
【図２】
2008083745.tif 000004
【図３】
2008083745.tif 000005
【図４】
2008083745.tif 000006
【図５】
2008083745.tif 000007
【図６】
2008083745.tif 000008
【図７】
2008083745.tif 000009
【図８】
2008083745.tif 000010
【図９】
2008083745.tif 000011
【図１０】
2008083745.tif 000012
【図１１】
2008083745.tif 000013
【図１２】
2008083745.tif 000014
【図１３】
2008083745.tif 000015