JP2007122691A - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2007122691A JP2007122691A JP2006244607A JP2006244607A JP2007122691A JP 2007122691 A JP2007122691 A JP 2007122691A JP 2006244607 A JP2006244607 A JP 2006244607A JP 2006244607 A JP2006244607 A JP 2006244607A JP 2007122691 A JP2007122691 A JP 2007122691A
- Authority
- JP
- Japan
- Prior art keywords
- event
- event processing
- processing
- information
- window
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】例えば、従来のクライアント・アプリケーションのプログラム状態保持機能に対応する機能を果たせることができ、従来のクライアント・アプリケーションで提供されていたGUIアプリケーション機能をWebアプリケーションで実現する。
【解決手段】Webサーバ12は、クライアントPC11からの第1のイベント要求に該当するアプリケーションプログラムに含まれるべきウィンドウオブジェクト及び変数に対して、第1のイベント要求情報に対応するイベント処理を実行した後、イベント処理後のウィンドウオブジェクト及び変数をWebセッション1227に保持するとともに、イベント処理後のウィンドウオブジェクトをクライアントPC11に対して送信する。また、Webサーバ12は、Webセッション1227に保持されるウィンドウオブジェクト及び変数を用いて第2のイベント要求に対応するイベント処理を実行する。
【選択図】図3
【解決手段】Webサーバ12は、クライアントPC11からの第1のイベント要求に該当するアプリケーションプログラムに含まれるべきウィンドウオブジェクト及び変数に対して、第1のイベント要求情報に対応するイベント処理を実行した後、イベント処理後のウィンドウオブジェクト及び変数をWebセッション1227に保持するとともに、イベント処理後のウィンドウオブジェクトをクライアントPC11に対して送信する。また、Webサーバ12は、Webセッション1227に保持されるウィンドウオブジェクト及び変数を用いて第2のイベント要求に対応するイベント処理を実行する。
【選択図】図3
Description
本発明は、Webアプリケーションを適用することが可能な情報処理装置、情報処理方法及びプログラムに関するものである。
これまでのクライアント/サーバ・システムにおいてはVisual Basic等によりグラフィカルなユーザインタフェースを持つクライアント・アプリケーションを構築でき、マルチウィンドウ動作等、表現力の高いアプリケーションが実現可能となった。
クライアント・アプリケーションにおいては、クライアント端末のメモリに常駐して利用ユーザと1対1で要求・応答を行うことを前提としており、(1)プログラム状態の保持(グローバル変数や使用オブジェクト等の状態保持)、(2)複数ウィンドウの状態保持(ウィンドウの表示・非表示、ウィンドウのフォーカス、項目の入力可・不可、項目データの保持等)、(3)アプリケーション・ライフサイクル管理(グローバル変数やオブジェクトの初期化・消去タイミング、ウィンドウの初期化・消去タイミング、アプリケーション全体の生死などの管理)、(4)イベント管理((3)のライフサイクルに関する内部的なイベントを含め、どのGUIコンポーネントにどんなイベントが発生し、その結果どの関数やメソッドを呼ぶかを管理)といった機能をランタイムが自動化することで、優れたユーザビリティを持ったアプリケーションを容易に実現することができた。
一方で、クライアント/サーバ・システムでは、クライアント端末数が多くなる場合、インストール、環境設定等、クライアント・アプリケーションの配布に関する労力、マンパワー、運用に多大なコストがかかるという問題点もあった。
近年では、HTMLとWebブラウザとを用いたWebアプリケーションが多く開発されており、WeBブラウザがインストールされたクライアントマシンであれば、インターネット/イントラネット上のどこからでもWebサーバからHTMLファイルをダウンロードできるので、配布については容易となった。
ただし、HTMLファイルは、テキストをマークアップするために考案された言語であるため、クライアント・アプリケーションとして、マルチウィンドウのような自由なウィンドウ動作を実現するためには、十分なものではない。また、Web系のシステムにおいては、HTTPプロトコルに基づき、ネットワークに極力負担を掛けないようにクライアントとサーバとが常に繋がっているわけではなく、クライアントからのリクエストを受けてWebサーバが答えを返して接続が切れるというコミュニケーションになっている。
また、非特許文献1には、通常のWebアプリケーションにおける表現力、操作性等の問題点を解決するものとして、リッチ・クライアントと称されるものが開示されている。
田中、「リッチ・クライアントの最新事情」、月刊Java(登録商標) World、株式会社アイ・ディ・ジー・ジャパン、第8巻、第9号(通巻88号)、平成16年9月、p82−93
しかしながら、Webアプリケーションプログラムでは、クライアント/サーバ・システムのようなGUIを多用したアプリケーションを実現することが一般的に困難である。その理由は、クライアント・アプリケーションとWebアプリケーションのアーキテクチャ上の違いに拠るところが大きい。先述したように、(1)プログラム状態の保持、(2)複数ウィンドウの状態保持、(3)アプリケーション・ライフサイクル管理については、そもそも一般的なWebアプリケーションのように要求が来た時にアプリケーションが生成され、応答した時に消去されるようなアーキテクチャでは個別のアプリケーションで対応を行うことが困難である。また、(4)イベント管理については、状態が保持されることが前提であり、更にWebアプリケーションとして発生するイベントは、従来のクライアント・アプリケーションで発生するイベントとは全く異なる。
また、非特許文献1に開示されるリッチ・クライアントの場合、クライアント側で動作するアプリケーション・プログラムが必要となる。しかしながら、現在、その開発手法、開発環境が整備されておらず、生産性、開発コストの増加、開発者の不足等が課題として挙げられる。
そこで、本発明の目的は、例えば、従来のクライアント・アプリケーションのプログラム状態保持機能に対応する機能を果たせることができ、従来のクライアント・アプリケーションで提供されていたGUIアプリケーション機能をWebアプリケーションで実現することにある。
また本発明の目的は、例えば複数ウィンドウを対象とした画面の表示・非表示、画面のフォーカス制御等の外部装置にインストールされるWebブラウザ上における画面制御を情報処理装置側から行うことを可能とすることにある。
さらに本発明の目的は、従来から提供されていたクライアント・アプリケーション等、その構造を変えることなくイベント処理手段として利用可能とすることにある。
本発明の情報処理装置は、外部装置と通信回線を介して接続される情報処理装置であって、前記外部装置からのイベント要求情報を受信する受信手段と、前記受信手段が受信する第1のイベント要求情報に該当するアプリケーションプログラムに含まれるべき少なくとも一つのウィンドウオブジェクト及び変数に対して、前記第1のイベント要求情報に対応する前記アプリケーションプログラムが実行すべきイベント処理を実行するイベント処理手段と、前記イベント処理手段によるイベント処理後の前記ウィンドウオブジェクト及び前記変数を記録媒体に保持させる保持手段と、前記イベント処理手段によるイベント処理後の前記ウィンドウオブジェクトを前記外部装置に対して送信する送信手段とを有し、前記イベント処理手段は、前記アプリケーションプログラムに該当する第2のイベント要求情報を前記受信手段が更に受信した場合、前記記録媒体に保持される前記ウィンドウオブジェクト及び前記変数を用いて前記第2のイベント要求情報に対応するイベント処理を実行することを特徴とする。
本発明の情報処理方法は、外部装置と通信回線を介して接続される情報処理装置による情報処理方法であって、前記外部装置からのイベント要求情報を受信する受信ステップと、前記受信ステップにて受信する第1のイベント要求情報に該当するアプリケーションプログラムに含まれるべき少なくとも一つのウィンドウオブジェクト及び変数に対して、前記第1のイベント要求情報に対応する前記アプリケーションプログラムが実行すべきイベント処理を実行するイベント処理ステップと、前記イベント処理ステップによるイベント処理後の前記ウィンドウオブジェクト及び前記変数を記録媒体に保持させる保持ステップと、前記イベント処理ステップによるイベント処理後の前記ウィンドウオブジェクトを前記外部装置に対して送信する送信ステップとを含み、前記イベント処理ステップは、前記アプリケーションプログラムに該当する第2のイベント要求情報を前記受信ステップにて更に受信した場合、前記記録媒体に保持される前記ウィンドウオブジェクト及び前記変数を用いて前記第2のイベント要求情報に対応するイベント処理を実行することを特徴とする。
本発明のプログラムは、前記情報処理方法をコンピュータに実行させることを特徴とする。
本発明の情報処理方法は、外部装置と通信回線を介して接続される情報処理装置による情報処理方法であって、前記外部装置からのイベント要求情報を受信する受信ステップと、前記受信ステップにて受信する第1のイベント要求情報に該当するアプリケーションプログラムに含まれるべき少なくとも一つのウィンドウオブジェクト及び変数に対して、前記第1のイベント要求情報に対応する前記アプリケーションプログラムが実行すべきイベント処理を実行するイベント処理ステップと、前記イベント処理ステップによるイベント処理後の前記ウィンドウオブジェクト及び前記変数を記録媒体に保持させる保持ステップと、前記イベント処理ステップによるイベント処理後の前記ウィンドウオブジェクトを前記外部装置に対して送信する送信ステップとを含み、前記イベント処理ステップは、前記アプリケーションプログラムに該当する第2のイベント要求情報を前記受信ステップにて更に受信した場合、前記記録媒体に保持される前記ウィンドウオブジェクト及び前記変数を用いて前記第2のイベント要求情報に対応するイベント処理を実行することを特徴とする。
本発明のプログラムは、前記情報処理方法をコンピュータに実行させることを特徴とする。
本発明によれば、或るアプリケーションプログラムに該当するイベント要求情報に応じたイベント処理を実行した後、当該アプリケーションプログラムに含まれるべきウィンドウオブジェクト及び変数の状態を保持し、当該アプリケーションプログラムについて更にイベント要求情報を受信すると、保持したウィンドウオブジェクト及び変数を用いて対応するイベント処理を行い、またイベント処理後のウィンドウオブジェクトを外部装置に対して送信するように構成したので、例えば、従来のクライアント・アプリケーションのプログラム状態保持機能に対応する機能を果たせることができ、従来のクライアント・アプリケーションで提供されていたGUIアプリケーション機能をWebアプリケーションで実現することが可能となる。
また本発明の他の特徴によれば、ウィンドウの表示状態情報に基づくスクリプト言語を生成し、ウィンドウオブジェクトとともに外部装置に送信するように構成したので、例えば複数ウィンドウを対象とした画面の表示・非表示、画面のフォーカス制御等の外部装置にインストールされるWebブラウザ上における画面制御を情報処理装置側から行うことが可能となる。
さらに本発明の他の特徴によれば、ウィンドウオブジェクトの少なくとも一部を、例えば従来のクライアント・アプリケーションに含まれるイベント処理関数が実行し得るデータに変換するように構成したので、イベント処理手段として、従来から提供されていたクライアント・アプリケーション等、その構造を変えることなく利用することが可能となる。
図1は、本発明の実施形態に係るWebアプリケーションシステムの構成を概略的に示す図である。クライアントPC11は、例えば一般的なPC等によって構成され、HTTPプロトコルに従ってWebサーバ12に処理をHTTPリクエストによって要求し、その応答であるHTTPレスポンスを受信することができる。クライアントPC11はHTTPレスポンスとして例えばHTMLファイルを受信し、HTMLファイルは、クライアントPC11にインストールされるWebブラウザ111の機能により画面上に表示される。
Webサーバ12は、図1に示すように、GUI処理部121、アーキテクチャ変換部122及びビジネスロジック部123により構成される。GUI処理部121は、Webブラウザ111によってHTMLファイルを閲覧する際に文字の表示方法等を指定するためのHTMLタグ、事前に用意されたWeb用GUIコンポーネント・タグ等から成るWeb−GUI定義体を備える。Web用GUIコンポーネント・タグは、従来のクライアント・アプリケーションプログラムに含まれるGUI定義部(フォーム内のテキストボックスやラジオボタン等の様々なGUIコンポーネントを構成するコード)に対応するものである。
ビジネスロジック部123は、従来のクライアント・アプリケーションプログラムに含まれるイベント処理等を行う部分に対応するものであり、1つ又は複数のアプリケーションから構成され、クライアントPC11からの要求に応じたイベント処理を実行する。
アーキテクチャ変換部122は、GUI処理部121とビジネスロジック部123との間に配置されることによって、従来のクライアント・アプリケーションプログラムのビジネスロジックの構成を保証しつつ、Webサーバ12全体としてWebアプリケーションの機能を実現し、クライアント/サーバ・システムとWebアプリケーションシステム間のアーキテクチャの違いを吸収する役割を果たす。
図2は、Webサーバ12のハードウェア構成を示す図である。CPU201は、システムバスに接続される各デバイスやコントローラを統括的に制御する。ROM203又は外部メモリ207には、CPU201の制御プログラムであるBIOS(Basic Input/Output System)やオペレーティングシステムプログラムや、Webサーバ12が実行する例えば図4乃至図6に示す処理のプログラム等が記憶されている。なお、図2の例では、外部メモリ207は、Webサーバ12の外部に配置された構成を示しているが、他の実施形態として外部メモリ207に相当する構成がWeb12内部に配置された構成としてもよい。また、本実施形態に係る例えば図4乃至図6に示す処理を行うためのプログラムは、CD−ROMやフレキシブルディスク等、コンピュータ読み取り可能な記録媒体に記録され、それらの記録媒体から供給される構成としてもよいし、インターネット等の通信媒体を介して供給される構成であってもよい。
RAM202は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM202にロードして、プログラムを実行することで各種動作を実現するものである。
メモリコントローラ206は、ハードディスク(HD)やフレキシブルディスク等の外部メモリ207へのアクセスを制御する。通信I/Fコントローラ205は、インターネットを介してクライアントPCと接続・通信するものであり、TCP/IPを用いたインターネット通信等が可能である。
図3は、Webサーバ12の機能構成を示す図である。図3に示すように、Webサーバ12のGUI処理部121は、Web−GUI定義体1211、XMLコード部1212、XMLデコード部1213、スクリプト生成部1214によって構成される。
Web−GUI定義体1211は、上述したように、従来のクライアント・アプリケーションプログラムに含まれるGUI定義部に対応するものである。
XMLコード部1212は、クライアントPC11からのイベント要求に対応するウィンドウオブジェクトをWeb−GUI定義体1211に基づいて生成し、生成したウィンドウオブジェクトをXMLデータに符号化してアーキテクチャ変換部122に渡す。本実施形態では、ウィンドウオブジェクト内におけるGUIコンポーネント等の配置レイアウト構造やデータ構造を規定するために、GUI処理部121に実装されるプロダクトのアーキテクチャ依存のウィンドウオブジェクトから、汎用化されたウィンドウオブジェクト(HTML)に変換している。なお、ここでいうウィンドウオブジェクトとは、Webブラウザ上に表示されるウィンドウを構成するためのデータである。
XMLデコード部1213は、アーキテクチャ変換部122から渡される汎用化されたXMLデータとWeb−GUI定義体1211とに基づいて、GUI処理部121に実装されるプロダクトのアーキテクチャ依存のウィンドウオブジェクト(HTMLデータ)を生成し、クライアントPC11に対して送信する。
スクリプト生成部1214は、必要に応じてスクリプト言語を生成する。生成されたスクリプト言語はXMLデコード部1213で生成されるウィンドウオブジェクト(HTMLデータ)とともにクライアントPC11に対して送信される。
アーキテクチャ変換部122は、アプリケーション・ライフサイクル管理部1221、プログラム状態保持部1222、オブジェクト状態保持部1223、クライアントGUIコンポーネント偽装部1224、複数オブジェクト状態保持部1225、イベント変換部1226及びWebセッション1227を備える。
アプリケーション・ライフサイクル管理部1221は、初期要求時には、アプリケーションの実行単位(例えば、Windows(登録商標) OSのEXE単位)を認識し、該当するアプリケーション(ビジネスロジック部123)固有のウィンドウオブジェクトやグローバル変数を初期化し、アプリケーション全体が終了する契機(例えば、当該アプリケーションを終了させるための特定のイベント発生時や当該アプリケーションの全ウィンドウが閉じられた時等)には後述する各状態保持部への消去要求を行う。
プログラム状態保持部1222は、ビジネスロジック部123においてイベント処理が発生した際に、ウィンドウオブジェクトやグローバル変数の現在の状態をWebセッション1227に保管する。例えば初期要求に対応するイベント処理時には、初期化されたウィンドウオブジェクト及び同じく初期化されたグローバル変数等をWebセッション1227に保管し、同一のアプリケーションに対する2回目以降のイベント処理時には、そのイベント処理によって更新されたグローバル変数等をWebセッション1227に保管する。なお、Webセッション1227とは、各アプリケーション毎にウィンドウオブジェクトやグローバル変数等を保持するために設けられた例えばRAM202内の一部の記憶領域である。
オブジェクト状態保持部1223は、ビジネスロジック部123による処理結果が反映させたGUIコンポーネントを含む例えばXMLデータ等のウィンドウオブジェクトを、Webセッション1227に保管する。
クライアントGUIコンポーネント偽装部1224は、ビジネスロジック部123が扱えるデータとするため、ウィンドウオブジェクト内の各GUIコンポーネントに対応するXMLデータをビジネスロジック部123と互換性のあるクラスに変換する。
複数オブジェクト状態保持部1225は、オブジェクトの発生(ロード)・消去、表示・非表示、フォーカスの有無、モーダルウィンドウ(或るオブジェクトに所定の入力がなければ、他のオブジェクトへの入力ができないオブジェクト)の有無等、複数のウィンドウの現在の表示状態を示す複数オブジェクト状態情報を生成し、Webセッション1227に保管する。スクリプト生成部1214は、この複数オブジェクト状態情報に基づいてスクリプト言語を生成する。生成されたスクリプト言語がWebブラウザ111上で動作することによって、Webサーバ12からオブジェクトの発生(ロード)・消去、表示・非表示等を制御することが可能となる。
イベント変換部1226は、Webブラウザ111でのオペレーションを基に発生したイベントを認識し、対応したイベント処理関数をビジネスロジック部123から呼び出す。
ビジネスロジック部123は、上述したように、従来のクライアント・アプリケーションプログラムのビジネスロジックに対応するアプリケーションで構成されるものであり、ビジネスロジック部123固有のウィンドウオブジェクト単位で、ウィンドウ単位で使用されるグローバル変数等から構成されるウィンドウデータや各種イベント処理関数を保持するとともに、ウィンドウオブジェクト間に亘って使用されるグローバル変数を保持する。また、これらビジネスロジック部123固有のウィンドウオブジェクトやグローバル変数は、アプリケーションと同等の単位で保持される。
なお、XMLコード部1212、XMLデコード部1213、スクリプト生成部1214、アプリケーション・ライフサイクル管理部1221、プログラム状態保持部1222、オブジェクト状態保持部1223、クライアントGUIコンポーネント偽装部1224、複数オブジェクト状態保持部1225及びイベント変換部1226は夫々、例えば外部メモリ207内に記憶され、必要に応じてRAM202にロードされるプログラム及びそれを実行するCPU201に相当する構成であり、Webセッション1227は、例えばRAM202内の一部の記憶領域であり、Web−GUI定義体1211及びイベント処理関数は例えば外部メモリ207又はROM203内に記憶されるデータである。
次に、Webサーバ12の動作を図4乃至図6のフローチャートを参照しながら説明する。図4及び図6は、GUI処理部121の処理動作を示すフローチャートであり、図5は、アーキテクチャ変換部122の動作を示すフローチャートである。
図4において、XMLコード部1212は、クライアントPC11からHTTPリクエストとして或るアプリケーション(以下、このアプリケーションをアプリケーションAと称す)に対するイベント(例えば、アプリケーションの起動要求、処理結果の返信要求、アプリケーションの終了要求等)を受け付けた場合(ステップS401/YES)、Web−GUI定義体1211を用いてアプリケーションAに含まれる全ウィンドウオブジェクトをHTMLデータで生成する(ステップS402)。例えば、アプリケーションAにウィンドウオブジェクトA−1、ウィンドウオブジェクトA−2が含まれるのであれば、ウィンドウオブジェクトA−1とウィンドウオブジェクトA−2とがHTMLデータで生成されることになる。以下では、アプリケーションAには、ウィンドウオブジェクトA−1、ウィンドウオブジェクトA−2が含まれることを前提に説明を行う。
続いてXMLコード部1212は、生成したウィンドウオブジェクト(HTMLデータ)をXMLデータに符号化し(ステップS403)、アーキテクチャ変換部122に渡す(ステップS404)。なお、クライアントPC11からのイベント要求がない間は(ステップS401/NO)、イベント要求を受け付けるまでの待機状態となる。
次に図5において、アプリケーション・ライフサイクル管理部1221は、GUI処理部121からXMLデータを受けると(ステップS501/YES)、当該イベントがアプリケーションA単位で初期要求に相当するか否かを判断する(ステップS502)。この初期要求に相当するか否かは、Webセッション1227内において、アプリケーションAに含まれるウィンドウオブジェクト、グローバル変数が保持されているか否かによって判断される。例えば、アプリケーションAには、ウィンドウオブジェクトA−1、ウィンドウオブジェクトA−2及びアプリケーションAが使用するグローバル変数が含まれるので、ウィンドウオブジェクトA−1、ウィンドウオブジェクトA−2及びアプリケーションAのグローバル変数がWebセッション1227内において既に保管されている場合、今回のイベントは初期要求ではないと判断され、Webセッション1227内においてアプリケーションAに関してこれらが現在保管されていない場合は今回のイベントは初期要求であると判断される。なお、GUI処理部121からのXMLデータを受け付けていない間は(ステップS501/NO)、XMLデータを受け付けるまでの待機状態となる。
アプリケーション・ライフサイクル管理部1221は、例えば、今回発生したイベントが初期要求であると判断した場合(ステップS502/YES)、ビジネスロジック部123固有のアプリケーションAを構成する全てのウィンドウオブジェクト(ウィンドウオブジェクトA−1、ウィンドウオブジェクトA−2)及びアプリケーションAのグローバル変数の初期化を実行する(ステップS503)。
続いて、プログラム状態保持部1222は、初期化されたウィンドウオブジェクトA−1、A−2、グローバル変数をWebセッション1227に保管する(ステップS504)。このときのWebセッション1227におけるデータの保管状態を図7−1に模式的に示す。図7−1の711は、Webセッション1227内においてアプリケーションAに対して割り当てられた記憶領域を示す。712は、初期化されたウィンドウオブジェクトA−1、713は、初期化されたウィンドウオブジェクトA−2、714は、初期化されたグローバル変数を示す。なお、Webセッション1227内においてウィンドウオブジェクトA−1、A−2は例えばXMLデータで保管される。本実施形態では、ステップS504において、ビジネスロジック部123固有のウィンドウオブジェクトをWebセッション1227内に保管するようにしているが、他の実施形態としてGUI処理部121により生成される汎用化された初期化された状態のウィンドウオブジェクトを保管するように構成してもよい。但し、この汎用化されたウィンドウオブジェクトにはイベント処理関数が含まれないため、イベント処理関数ついてはビジネスロジック部123固有のものを初期化してWebセッション1227内に保管する必要がある。
続いて、クライアントGUIコンポーネント偽装部1224は、保管されている初期化済みのウィンドウオブジェクトA−1(712)、A−2(713)から、初期要求時にビジネスロジック部123の処理対象とされるGUIコンポーネントに対応するXMLデータを取得し、取得したXMLデータをビジネスロジック部123と互換性のあるクラスに変換する(ステップS505)。例えば、初期要求時にビジネスロジック部123に要求されるGUIコンポーネントがウィンドウオブジェクトA−1のテキストボックス1であり、それがXMLデータで"text1"と定義されている場合、ウィンドウオブジェクトA−1の該当する一部のXMLデータ"text1"(図7−1の7121)を取得し、それを"textbox1"とクラスを変換してビジネスロジック部123が扱える形式にする。
続いて、プログラム状態保持部1222は、アプリケーションAのグローバル変数714をWebセッション1227から取得する(ステップS506)。
続いて、イベント変換部1226は、初期要求時に実行すべき全てのイベント処理関数を認識し、ビジネスロジック部123から該当するイベント処理関数を順次呼び出し、実行させる(ステップS507)。これによって、クライアントGUIコンポーネント偽装部1224によってクラス変換されたXMLデータにはイベント処理関数による処理結果が反映されることになる。例えば、初期要求時においてイベント処理関数によってテキストボックス1に"0001"が代入される場合には当該XMLデータに"0001"が反映されることになる。
続いてオブジェクト状態保持部1223は、イベント処理関数による処理結果が反映されたXMLデータをWebセッション1227に保管する(ステップS508)。ここで保管されるXMLデータによって既に保管されている初期化済みのウィンドウオブジェクトA−1(XMLデータ)が更新される。従って、Webセッション1227内においては今回のイベント処理を経た現在のウィンドウオブジェクト(XMLデータ)A−1が保管されることになる。
続いてプログラム状態保持部1222は、今回のイベント処理関数の処理結果によって更新されたグローバル変数をWebセッション1227に保管する(ステップS509)。
続いて複数オブジェクト状態保持部1225は、初期要求時のイベント処理によって表示されることとなったウィンドウ、フォーカスの当たる対象となったウィンドウ等、複数ウィンドウの表示状態を示す複数オブジェクト状態情報を必要に応じて生成し、Webセッション1227に保管する(ステップS510)。図7−2は、このときのWebセッション1227内におけるデータの保管状態を模式的に示す図である。図7−2の715は、更新されたウィンドウオブジェクトA−1、7151は、今回のイベント処理関数による処理結果が反映されたGUIコンポーネントに対応するXMLデータ、716は、今回のイベント処理関数の処理結果によって更新されたグローバル変数、717は、必要に応じて生成された場合に保管される複数オブジェクト状態情報である。
続いてアーキテクチャ変換部122は、Webセッション1227に保管されるウィンドウオブジェクトA−1(715)、A−2(713)を(複数オブジェクト状態保持部1225によって複数オブジェクト状態情報が生成されていれば当該複数オブジェクト状態情報(717)も併せて)、GUI処理部121に渡す(ステップS511)。
一方、今回発生したイベントが初期要求でないと判断された場合、即ち同一アプリケーションについて2回目以降のイベントを受け付けたと判断された場合(ステップS501/NO)、クライアントGUIコンポーネント偽装部1224は、Webセッション1227に保管されているウィンドウオブジェクトA−1、A−2から、今回のイベント処理時にビジネスロジック部123の処理対象とされるGUIコンポーネントに対応するXMLデータを取得する。ここでは、今回受け付けたイベントがアプリケーションAに対する2回目のイベントであり、それに対応するイベント処理において、ビジネスロジック部123が処理対象とするGUIコンポーネントに対応するXMLデータが、図7−2の7151、7131であるものとして動作を具体的に説明する。
次にクライアントGUIコンポーネント偽装部1224は、取得したXMLデータ7151、7131をビジネスロジック部123と互換性のあるクラスに変換する(ステップS512)。
続いてプログラム状態保持部1222及び複数オブジェクト状態保持部1225は夫々、該当するアプリケーションAのグローバル変数716及び複数オブジェクト状態情報717をWebセッション1227から取得する(ステップS513)。
続いてイベント変換部1226は、今回のイベント時に実行すべき全てのイベント処理関数を認識し、ビジネスロジック部123から該当するイベント処理関数を順次呼び出し、実行させる(ステップS514)。これによって、ステップS512で偽装化されたXMLデータ7151、7131には今回読み出されたイベント処理関数による処理結果が反映されることになる。例えば、今回のイベント要求に対応して、ウィンドウオブジェクトA−1の或るコンポーネントに初期要求時に反映された"0001"がウィンドウオブジェクトA−2の或るコンポーネントにコピーされる等の処理が行われた場合、XMLデータ7151は更新されないが、XMLデータ7131は"0001"がコピーされたデータに更新されることになる。
続いてオブジェクト状態保持部1223は、イベント処理関数による処理結果が反映されたXMLデータをWebセッション1227に保管する(ステップS508)。上記の例であれば、ここで保管されるXMLデータによって既に保管されているウィンドウオブジェクトA−2が更新される。
続いてプログラム状態保持部1222は、今回のイベント処理関数の処理結果によって更新されたグローバル変数をWebセッション1227に保管する(ステップS509)。
続いて複数オブジェクト状態保持部1225は、今回のイベントに対応するイベント処理によって表示されることとなったウィンドウ、フォーカスの当たる対象となったウィンドウ等、複数ウィンドウの表示状態を示す複数オブジェクト状態情報を必要に応じて生成し、Webセッション1227に保管する(ステップS510)。図7−3は、このときのWebセッション1227内におけるデータの保管状態を模式的に示す図である。図7−3の718は、更新されたウィンドウオブジェクトA−2、7181は、今回のイベント処理関数による処理結果が反映されたGUIコンポーネントに対応するXMLデータ、719は、今回のイベント処理関数の処理結果によって更新されたグローバル変数、720は、必要に応じて生成された場合に保管(更新)されるオブジェクト状態情報である。
続いてアーキテクチャ変換部122は、Webセッション1227に保管されるウィンドウオブジェクトA−1(715)、A−2(718)を(複数オブジェクト状態保持部によって複数オブジェクト状態情報が生成されていれば当該複数オブジェクト状態情報720も併せて)、GUI処理部121に渡す(ステップS511)。
図6において、XMLデコード部1213は、アーキテクチャ変換部122からXMLデータ(ウィンドウオブジェクト)を受け付けた場合(ステップS601/YES)、受け付けたXMLデータとWeb−GUI定義体1211とに基づいてウィンドウオブジェクト(HTMLデータ)A−1、A−2を生成する(ステップS602)。なお、アーキテクチャ変換部122からのXMLデータを受け付けていない間は(ステップS601/NO)、XMLデータを受け付けるまでの待機状態となる。
続いてスクリプト生成部1214は、スクリプト言語を生成する必要があるか否かを判断する(ステップS603)。XMLデコード部1213が複数オブジェクト状態情報とともにXMLデータを受け付けた場合には、当該複数オブジェクト状態情報に基づいてスクリプト言語を生成する必要があると判断し(ステップS603/YES)、一方、XMLデコード部1213がXMLデータのみを受け付けた場合には、スクリプト言語を生成する必要はないと判断する(ステップS603/NO)。
スクリプト生成部1214は、ステップS603においてスクリプト言語を生成する必要があると判断した場合、上記の複数オブジェクト状態情報に基づいてスクリプト言語を生成する(ステップS604)。一方、ステップS603においてスクリプト言語を生成する必要がないと判断された場合には、スクリプト言語は生成されない。
例えば、初期要求時のイベント処理により、ウィンドウオブジェクトA−1に対応するウィンドウA−1のみを表示し、ウィンドウオブジェクトA−1に対応するウィンドウA−1にフォーカスが当たっている旨の複数オブジェクト状態情報が生成されている場合、ウィンドウA−1のみを表示させ、且つウィンドウA−1にフォーカスが当たっているようにWebブラウザ111に表示させるためのスクリプト言語が生成される。
また例えば2回目以降の処理により、ウィンドウA−1、ウィンドウA−2を表示し、ウィンドウA−2にフォーカスが当たっている旨のオブジェクト状態情報が生成されている場合、ウィンドウA−1、ウィンドウA−2をともに表示させ、且つウィンドウA−2にフォーカスが当たっているようにWebブラウザ111上で動作させるスクリプト言語が生成される。
続いて、GUI処理部121は、スクリプト言語が生成された場合には、そのスクリプト言語とともにGUI処理部121に実装されるプロダクトのアーキテクチャ依存のウィンドウオブジェクト(HTMLデータ)をクライアントPC11に対して送信し、スクリプト言語が生成されなかった場合には、ウィンドウオブジェクト(HTMLデータ)のみをクライアントPC11に対して送信する(ステップS605)。
クライアントPC11側では、Webサーバ12から受信するウィンドウオブジェクトA−1、A−2に基づいてWebブラウザ111によりウィンドウA−1、A−2を表示させる。スクリプト言語も受信した場合には、Webブラウザ111はスクリプト言語に基づいてウィンドウA−1、A−2を表示させる。
なお、図7−1乃至図7−3では、アプリケーションAに対して割り当てられた記憶領域でのデータの保管状態のみを示しているが、Webセッション1227が複数のアプリケーションに対応した記録領域を備え得ることは勿論である。また、上述したアプリケーション全体が終了する契機には、当該アプリケーションについて各保持部1222、1223、1225がWebセッション1227に保管したデータは消去される。
以上のように本実施形態では、アプリケーションAに該当するイベント要求情報に応じたイベント処理を実行した後、アプリケーションAに含まれるべきウィンドウオブジェクト及びグローバル変数の状態を保持し、アプリケーションAについて更にイベント要求情報を受信すると、保持したウィンドウオブジェクト及びグローバル変数を用いて対応するイベント処理を行い、またイベント処理後のウィンドウオブジェクトを外部装置に対して送信するように構成している。従って、従来のクライアント・アプリケーションのプログラム状態保持機能に対応する機能を果たせることができ、従来のクライアント・アプリケーションで提供されていたGUIアプリケーション機能をWebアプリケーションで実現することが可能となる。
また本実施形態では、ウィンドウオブジェクトの表示状態を示すオブジェクト状態情報に基づいてスクリプト言語を生成し、ウィンドウオブジェクトとともにクライアントPC11に送信するように構成している。従って、スクリプト言語によってWebブラウザ111上においてウィンドウの表示・非表示、ウィンドウのフォーカス等の動作を行わせることが可能となる。
さらに本実施形態では、イベント処理に対応するウィンドウオブジェクトの部分を、従来のクライアント・アプリケーションに含まれるイベント処理関数が実行し得るデータに変換するように構成している。従って、従来から提供されていたクライアント・アプリケーションのビジネスロジックを、その構造を変えることなくWebサーバ12のビジネスロジック部123に利用することが可能となる。
なお、上記ではウィンドウオブジェクトA−1の或るGUIコンポーネントからウィンドウオブジェクトA−2の或るGUIコンポーネントに対して"0001"のデータをコピーするイベント処理のみを例に挙げているが、本実施形態で処理し得るイベント処理はこれに限られない。即ち、一般的なGUIアプリケーションで処理し得るイベント処理(例えば、複数の項目を選択するためのチェックボックス、機能の実行や処理の確認等に用いるボタン、及び、複数の項目から1項目だけを選択するときに使用するラジオボタン等の操作に対応するイベント処理等)を実行可能であることは勿論である。
11:クライアントPC
111:Webブラウザ
12:Webサーバ
121:GUI処理部
122:アーキテクチャ変換部
123:ビジネスロジック部
201:CPU
202:RAM
203:ROM
205:通信I/Fコントローラ
206:メモリコントローラ
207:外部メモリ
1211:Web−GUI定義体
1212:XMLコード部
1213:XMLデコード部
1214:スクリプト生成部
1221:アプリケーション・ライフサイクル管理部
1222:プログラム状態保持部
1223:オブジェクト状態保持部
1224:クライアントGUIコンポーネント偽装部
1225:複数オブジェクト状態保持部
1226:イベント変換部
1227:Webセッション
111:Webブラウザ
12:Webサーバ
121:GUI処理部
122:アーキテクチャ変換部
123:ビジネスロジック部
201:CPU
202:RAM
203:ROM
205:通信I/Fコントローラ
206:メモリコントローラ
207:外部メモリ
1211:Web−GUI定義体
1212:XMLコード部
1213:XMLデコード部
1214:スクリプト生成部
1221:アプリケーション・ライフサイクル管理部
1222:プログラム状態保持部
1223:オブジェクト状態保持部
1224:クライアントGUIコンポーネント偽装部
1225:複数オブジェクト状態保持部
1226:イベント変換部
1227:Webセッション
Claims (5)
- 外部装置と通信回線を介して接続される情報処理装置であって、
前記外部装置からのイベント要求情報を受信する受信手段と、
前記受信手段が受信する第1のイベント要求情報に該当するアプリケーションプログラムに含まれるべき少なくとも一つのウィンドウオブジェクト及び変数に対して、前記第1のイベント要求情報に対応する前記アプリケーションプログラムが実行すべきイベント処理を実行するイベント処理手段と、
前記イベント処理手段によるイベント処理後の前記ウィンドウオブジェクト及び前記変数を記録媒体に保持させる保持手段と、
前記イベント処理手段によるイベント処理後の前記ウィンドウオブジェクトを前記外部装置に対して送信する送信手段とを有し、
前記イベント処理手段は、前記アプリケーションプログラムに該当する第2のイベント要求情報を前記受信手段が更に受信した場合、前記記録媒体に保持される前記ウィンドウオブジェクト及び前記変数を用いて前記第2のイベント要求情報に対応するイベント処理を実行することを特徴とする情報処理装置。 - 前記第1のイベント要求情報に対応するイベント処理後の前記ウィンドウの表示状態を示す表示状態情報を生成する表示状態情報生成手段と、
前記表示状態情報に基づいてWebブラウザ上で動作するスクリプト言語情報を生成するスクリプト言語生成手段とを更に有し、
前記送信手段は、更に前記スクリプト言語情報を前記外部装置に対して送信することを特徴とする請求項1に記載の情報処理装置。 - 前記アプリケーションプログラムに含まれるべきイベント処理関数が実行し得るデータに前記ウィンドウオブジェクトの少なくとも一部を変換する変換手段を更に有し、
前記イベント処理手段は、前記イベント処理関数を含み、前記変換手段によって変換された前記ウィンドウオブジェクトの少なくとも一部に対し、前記イベント処理関数によってイベント処理を実行することを特徴とする請求項1又は2に記載の情報処理装置。 - 外部装置と通信回線を介して接続される情報処理装置による情報処理方法であって、
前記外部装置からのイベント要求情報を受信する受信ステップと、
前記受信ステップにて受信する第1のイベント要求情報に該当するアプリケーションプログラムに含まれるべき少なくとも一つのウィンドウオブジェクト及び変数に対して、前記第1のイベント要求情報に対応する前記アプリケーションプログラムが実行すべきイベント処理を実行するイベント処理ステップと、
前記イベント処理ステップによるイベント処理後の前記ウィンドウオブジェクト及び前記変数を記録媒体に保持させる保持ステップと、
前記イベント処理ステップによるイベント処理後の前記ウィンドウオブジェクトを前記外部装置に対して送信する送信ステップとを含み、
前記イベント処理ステップは、前記アプリケーションプログラムに該当する第2のイベント要求情報を前記受信ステップにて更に受信した場合、前記記録媒体に保持される前記ウィンドウオブジェクト及び前記変数を用いて前記第2のイベント要求情報に対応するイベント処理を実行することを特徴とする情報処理方法。 - 請求項4に記載の情報処理方法をコンピュータに実行させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006244607A JP2007122691A (ja) | 2005-09-27 | 2006-09-08 | 情報処理装置、情報処理方法及びプログラム |
US11/527,411 US20070073902A1 (en) | 2005-09-27 | 2006-09-27 | Information processor, information processing method and program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005280683 | 2005-09-27 | ||
JP2006244607A JP2007122691A (ja) | 2005-09-27 | 2006-09-08 | 情報処理装置、情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007122691A true JP2007122691A (ja) | 2007-05-17 |
Family
ID=37895502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006244607A Withdrawn JP2007122691A (ja) | 2005-09-27 | 2006-09-08 | 情報処理装置、情報処理方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070073902A1 (ja) |
JP (1) | JP2007122691A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11429335B2 (en) | 2019-09-30 | 2022-08-30 | Fujitsu Limited | Storage medium, display control method, and display control device |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5230572B2 (ja) * | 2009-09-29 | 2013-07-10 | 京セラドキュメントソリューションズ株式会社 | 情報処理装置、データ管理プログラム、及びデータ管理システム |
US10853438B1 (en) * | 2015-11-24 | 2020-12-01 | Workday, Inc. | History state management |
CN112637280B (zh) * | 2020-12-10 | 2023-05-05 | 平安普惠企业管理有限公司 | 数据传输方法、装置、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6640249B1 (en) * | 1999-08-31 | 2003-10-28 | Accenture Llp | Presentation services patterns in a netcentric environment |
EP1117220A1 (en) * | 2000-01-14 | 2001-07-18 | Sun Microsystems, Inc. | Method and system for protocol conversion |
US6772159B1 (en) * | 2000-02-24 | 2004-08-03 | International Business Machines Corporation | System and method for disconnected database access by heterogeneous clients |
WO2003021798A2 (en) * | 2001-09-04 | 2003-03-13 | Soft2B Llc | Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization |
-
2006
- 2006-09-08 JP JP2006244607A patent/JP2007122691A/ja not_active Withdrawn
- 2006-09-27 US US11/527,411 patent/US20070073902A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11429335B2 (en) | 2019-09-30 | 2022-08-30 | Fujitsu Limited | Storage medium, display control method, and display control device |
Also Published As
Publication number | Publication date |
---|---|
US20070073902A1 (en) | 2007-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11567750B2 (en) | Web component dynamically deployed in an application and displayed in a workspace product | |
KR101921144B1 (ko) | 하나 이상의 확장 애플리케이션과 상호작용하는 메시징 애플리케이션 | |
CN102918484B (zh) | 包括任务栏锁定的万维网应用锁定 | |
US10831453B2 (en) | Connectors framework | |
CN102918540B (zh) | 利用凭证创建并启动万维网应用 | |
JP5171790B2 (ja) | 情報処理装置、通信システムおよびプログラム | |
JP4185159B1 (ja) | アプリケーション開発支援装置及びプログラム | |
CN102591928A (zh) | 表现包括从跳转列表任务和项目访问的内容的内容 | |
JP2015008001A (ja) | 端末装置、およびプログラム | |
JP2009054152A (ja) | 物理コンピュータ・システムの仮想表現へのオンデマンドのアクセス | |
CN102939583A (zh) | 创建任务会话 | |
CN103477322A (zh) | 在操作系统环境之间传输web数据 | |
JP2011076540A (ja) | 文書編集装置及びこれを用いたデータ転送方法 | |
CN113961463A (zh) | 应用环境切换方法及系统、存储介质和电子设备 | |
JP2007122691A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2005323093A (ja) | Webサーバを利用した遠隔操作制御プログラム | |
JP2006091954A (ja) | リモート接続システム、サーバコンピュータ、リモート接続方法及びプログラム | |
CN105389096A (zh) | 基于浏览器的数据交互方法及装置 | |
JP2011022772A (ja) | サーバベース・コンピューティング・システム、サーバ装置、クライアント装置、およびプログラム | |
JP2007018091A (ja) | 情報処理装置、情報処理システム、アプリケーション開発支援方法及びプログラム | |
JP5959535B2 (ja) | クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム | |
WO2004068352A1 (ja) | テーブル表示切替方法,テキストデータ変換プログラム及びタグプログラム | |
JP6266925B2 (ja) | 制御装置、制御方法、およびプログラム | |
JP2020095568A (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
CN112491940B (zh) | 代理服务器的请求转发方法及装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20091110 |