JP4695903B2 - Webアプリケーションシステム、そのプログラム - Google Patents

Webアプリケーションシステム、そのプログラム Download PDF

Info

Publication number
JP4695903B2
JP4695903B2 JP2005081757A JP2005081757A JP4695903B2 JP 4695903 B2 JP4695903 B2 JP 4695903B2 JP 2005081757 A JP2005081757 A JP 2005081757A JP 2005081757 A JP2005081757 A JP 2005081757A JP 4695903 B2 JP4695903 B2 JP 4695903B2
Authority
JP
Japan
Prior art keywords
data
virtual machine
business
layer
mapping class
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
Application number
JP2005081757A
Other languages
English (en)
Other versions
JP2006268121A (ja
Inventor
好邦 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Fujitsu Advanced Engineering Ltd
Original Assignee
Fuji Electric Systems Co Ltd
Fujitsu Advanced Engineering Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Electric Systems Co Ltd, Fujitsu Advanced Engineering Ltd filed Critical Fuji Electric Systems Co Ltd
Priority to JP2005081757A priority Critical patent/JP4695903B2/ja
Publication of JP2006268121A publication Critical patent/JP2006268121A/ja
Application granted granted Critical
Publication of JP4695903B2 publication Critical patent/JP4695903B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、Webアプリケーションシステムに係り、特にWebアプリケーションを複数の層に分離したものに関する。
Webアプリケーションは、インターネットやイントラネットのように、情報源となるサーバからユーザ端末に画面情報を配信する通信ネットワーク上で使用されるソフトウェアである(例えば、下記特許文献1を参照)。
また、例えば特許文献2は、従来では業務アプリケーションがクライアントとの入出力制御機能、業務処理機能、及びデータベース操作機能を有していたのに対して、I/O層、業務アプリケーション層、データベース層の3つの層に分離したことで、仕様変更の起こり易いクライアントに対する表示様式やデータの入出力の部分(すなわち、I/O層が処理する部分)、及びデータベース操作の部分(すなわち、データベース層が処理する部分)が、業務アプリケーション層から切り離されるので、業務アプリケーション層の生産性が向上する発明を提案している。
図8は、このようなWebアプリケーションの構成例を示している。この例では、Webアプリケーション200は、クライアントレイヤ210、プレゼンテーションレイヤ220、ビジネスレイヤ230、および永続化レイヤ240の4つのレイヤからなる。クライアントレイヤ210はクライアント端末上で動作する。プレゼンテーションレイヤ220、ビジネスレイヤ230、および永続化レイヤ240はサーバ上で動作し、Java(登録商標)と呼ばれるオブジェクト指向プログラミング言語で作成される。
クライアントレイヤ210は、Webブラウザに対応し、プレゼンテーションレイヤ220に対して要求を送信する。
プレゼンテーションレイヤ220は、クライアントレイヤ210からの要求に応じて、Web画面を表示するための画面情報をクライアントレイヤ210に送信する。また、プレゼンテーションレイヤ220は、表示されたWeb画面上でユーザによる任意のデータ入力やコマンド指示が行われると、これに応じたフォームデータが送られてくると、ビジネスレイヤ230のビジネスロジックを呼び出す。その際このフォームデータをビジネスレイヤ230に渡す。また、プレゼンテーションレイヤ220は、ログイン時のクライアント認証等の処理も行う。
ビジネスレイヤ230は、プレゼンテーションレイヤ220からの要求に応じて、Webアプリケーションの業務処理(ビジネスロジック)を実行し、処理結果をプレゼンテーションレイヤ220に転送する。永続化レイヤ240は、ビジネスレイヤ230が処理に用いるデータを、データベース250に格納して永続化する。
このようにWebアプリケーションでは、サーバ上で動作するソフトウェアを、Webブラウザに画面を表示し入力を受け付ける機能と、画面表示から独立したビジネスロジックを実行する機能と、データベースアクセスに特化した機能とに分割することで、各機能の独立性と汎用性を高めている。
各機能の独立性を高めれば、アプリケーション開発や修正を機能毎に行うことが可能となり、作業が効率化される。例えば、プレゼンテーションレイヤとビジネスレイヤを分離することで、これらのレイヤのプログラムを効率よく開発することができ、開発コストの削減と品質の確保が期待できる。特に、現実上、ビジネスロジック自体は殆ど変更されることがないのに対して、ユーザインタフェースとしての画面の変更等は、比較的頻繁に行われるが、上記レイヤの分離を行うことで、画面の変更等によってはビジネスレイヤを修正する必要がなくなることが期待できる。
特開2003−15870号公報 特開2002−373148号公報
ここで、上記の通り、プレゼンテーションレイヤ220は、ビジネスレイヤ230のビジネスロジックを呼び出す際に、フォームデータを渡すが、ビジネスロジックがこのフォームデータの情報全てを必要としているわけではない。この為、ビジネスレイヤ230において、フォームデータからビジネスロジックが必要とするデータのみを抽出する処理の為のコーディング作業を行わなければならなかった。これは非常に手間が掛かるものであった。また、通常、ビジネスレイヤ230は、各システムに特化した処理を行う為、各システム毎にコーディング作業を必要とした。更に、上記画面の変更等によってフォームデータの内容が変更されれば、その都度、コーティングを行わなければならない。この為、上記の期待に反することになるという問題があった。
また、少なくともプレゼンテーションレイヤ220とビジネスレイヤ230とを別々のJava仮想マシンで実行する構成とし、このJava仮想マシン間のデータ転送を、RMI(Remote Method Invocation)を用いて行うようにした場合、上記ビジネスレイヤ230が、処理結果をプレゼンテーションレイヤ220に返信するのに、RMIの通信上の制約から、転送できないデータが存在するという問題があった。これは、特に、ビジネスレイヤ230からの応答の中にマッピングクラスのインスタンスがある場合に、その中に転送できないデータが存在する場合、そのままではプレゼンテーションレイヤ220側に転送できないものである。従来では、この様なマッピングクラスのインスタンスをプレゼンテーションレイヤ220側に転送できるようにすることは、行われていなかった。
本発明の課題は、少なくともクライアントとのインタフェース層とビジネスロジックを実行する層とに分離されたWebアプリケーションシステムにおいて、プレゼンテーションレイヤがビジネスロジックを呼び出す際に、このビジネスロジックが必要とするデータのみを抽出して渡すようにし、あるいはビジネスレイヤによる応答の中にマッピングクラスのインスタンスが含まれている場合でも、プレゼンテーションレイヤ側に渡すことを可能とするWebアプリケーションシステム、そのプログラム等を提供することである。
本発明のアプリケーションサーバは、クライアントとのインタフェースを行う第1の仮想マシンと、各種ビジネスオブジェクトを実行する第2の仮想マシンとを有するアプリケーションサーバにおいて、前記第1の仮想マシンは、予め、前記各ビジネスオブジェクト毎に対応付けて、そのビジネスオブジェクトの処理に必要なデータの識別名を格納しておく定義格納手段と、前記クライアントに任意の画面を表示させて任意のデータ入力を行わせて、これに応じたフォームデータを含むリクエストを受取る画面入出力制御手段と、前記リクエストに応じたビジネスオブジェクトを呼出す際に、前記定義格納手段から該呼出すビジネスオブジェクトが必要とする各データの識別名を取得し、前記フォームデータに含まれる各データのうち、その識別名が前記取得した識別名の何れかと一致するデータのみを前記第2の仮想マシンに転送する呼出用データ転送制御手段とを有するように構成する。
上記アプリケーションサーバでは、フォームデータの中にビジネスオブジェクトで必要としないデータがある場合でも、第1の仮想マシンにおいて必要なデータのみを抽出して第2の仮想マシン側に渡すようにする。よって、第2の仮想マシン側で必要なデータを抽出する処理の為のコーディング等を行う必要等はない。
あるいは、本発明のアプリケーションサーバは、クライアントとのインタフェースを行う第1の仮想マシンと、ビジネスオブジェクトを実行する第2の仮想マシンとを有するアプリケーションサーバにおいて、前記第2の仮想マシンは、前記ビジネスオブジェクトから処理結果として各種応答パラメータを渡されると、その中にマッピングクラスのオブジェクトがある場合には、該オブジェクトから転送可能なデータのみを抽出して前記第1の仮想マシンに転送する応答用データ転送手段を有し、前記第1の仮想マシンは、前記応答用データ転送手段により転送された前記転送可能なデータを、マッピングクラスのオブジェクトの形を復元するマッピングクラス復元処理手段を有するように構成する。
上記アプリケーションサーバでは、第2の仮想マシンは例えばORマッピング技術を用いており、処理結果としてマッピングクラスのオブジェクトを第1の仮想マシン側に返す構成である。しかし、第1の仮想マシン−第2の仮想マシン間のデータ転送が、例えばRMI等のように直列化(シリアライズ)するものである場合には、マッピングクラスには直列化できない(すなわち転送できない)データが含まれている為、そのままではマッピングクラスを転送できない。これより、まず、第2の仮想マシン側では、マッピングクラスのオブジェクトから、転送可能なデータのみを抽出して第1の仮想マシンに転送する。第1の仮想マシンは、この転送可能なデータを、マッピングクラスとして利用可能な状態に復元する。転送できないデータは、基本的に、第1の仮想マシン側では必要としないデータである。
本発明のWebアプリケーションシステム、そのプログラム等によれば、少なくともプレゼンテーションレイヤとビジネスレイヤとが分離されたWebアプリケーションシステムにおいて、プレゼンテーションレイヤがビジネスロジックを呼び出す際に、このビジネスロジックが必要とするデータのみを抽出して渡すようにすることができ、ビジネスレイヤにおいてコーディング作業を行う必要がなくなる。
あるいは、ビジネスレイヤによる応答の中にマッピングクラスのインスタンスが含まれている場合でも、プレゼンテーションレイヤ側に転送可能とすることができ、更に、プレゼンテーションレイヤにおいて転送されてきたデータからマッピングクラスのインスタンスを復元することで、プレゼンテーションレイヤにおいて処理結果として実質的にマッピングクラスを取得することができ、これを用いて処理結果表示等を行えるようになる。
以下、図面を参照しながら、本発明の実施の形態について説明する。
図1は、本例のWebアプリケーションシステムの機能ブロック図である。
本発明の第1の特徴は、図1に示すプレゼンテーションレイヤ20からビジネスレイヤ30のビジネスロジック(ビジネスオブジェクト)の呼出しに係るものである。第2の特徴は、ビジネスレイヤ30からプレゼンテーションレイヤ20に対する処理結果の返信に係るものである。
プレゼンテーションレイヤ20、ビジネスレイヤ30は、それぞれ別のJava仮想マシン上にある。プレゼンテーションレイヤ20、ビジネスレイヤ30は、アプリケーションサーバ2上に実装される。これは、図1では1つのサーバ2上に2つのレイヤ20,30が実装されているが、各レイヤ20,30がそれぞれ別々のサーバ上に実装されてもよい。クライアントレイヤ10は、クライアントマシン1上に実装される。また、データベース40は不図示のデータベースサーバにある。これらクライアントマシン1、アプリケーションサーバ2、データベースサーバは、何らかのネットワーク(例えばLAN等)に接続されており、相互に通信可能となっている。
図1において、プレゼンテーションレイヤ20における画面入出力コントロールオブジェクト21は、基本的には、クライアントレイヤ10のWebブラウザ11上に表示させる画面の入出力制御を行うものである。画面入出力コントロールオブジェクト21は、クライアントレイヤ10のWebブラウザ11上に何らかの入力画面を表示させて、クライアントマシン1のユーザに、この入力画面に従って任意のデータを入力させる。また、例えば更新、検索等のコマンドを入力させる。これに応じてクライアントマシン1からリクエスト(フォームデータ26やコマンド)が送られてくると、画面入出力コントロールオブジェクト21は、このフォームデータ26等を呼出用データ転送オブジェクト作成処理部22に渡す。
呼出用データ転送オブジェクト作成処理部22は、上記フォームデータ26を受け取ると、記憶装置23(ハードディスク、メモリ等)に記憶されているビジネスオブジェクト定義ファイル24を参照することで、クライアントからのリクエストに対応して呼び出すべきビジネスオブジェクト31が必要とするデータのみを、データ転送オブジェクト28にコピーしてビジネスレイヤ30側に渡すようにする。これが第1の特徴である。
尚、上記レイヤ20−30間の通信、すなわちJava仮想マシン間の通信には、RMI(Remote Method Invocation)を用いる。良く知られているように、RMI を使うと、別の Java仮想マシン上で実行されるオブジェクトのメソッドを呼び出したり、パラメータや返り値の受け渡しができる。特にJavaRMIを用いれば、例えば基本クラスの引数に派生クラスを渡したり、オブジェクト自身をバイトストリームにできるためオブジェクトの受け渡しが非常に手軽にできるという利点がある。
ビジネスレイヤ30側では、呼び出されたビジネスオブジェクト31が、所定の処理を実行し、データベース40のマッピングクラス33を獲得する。尚、実際には“マッピングクラスのインスタンス(オブジェクト)”であるが、本説明では省略して“マッピングクラス”と記す場合もある。尚、図1では省略してあるが、実際には図2に示すように、永続化レイヤ214がデータベース202へアクセスして、処理結果としてデータベースマッピングクラス33(244)を作成している。
第2の特徴は、このマッピングクラス33をプレゼンテーションレイヤ20に返信して、処理結果をクライアントのWebブラウザ11に表示させる処理に係る。すなわち、まず、マッピングクラス33は、通信の制約上、そのままではプレゼンテーションレイヤ20側に転送できないものである。つまり、マッピングクラス33には、転送可能なデータと転送できないデータとがある。すなわち、ビジネスレイヤ30−プレゼンテーションレイヤ20間のデータ転送オブジェクトの受け渡しは、上記の通りRMIによる通信の為、所謂“オブジェクト直列化”(シリアライズ)して行う。オブジェクト直列化は、オブジェクトとそこから参照されているオブジェクトを、バイトストリームにコード化するものである。そして、マッピングクラス33には、オブジェクト直列化できないデータが含まれている場合があり、これが上記転送できないデータである。そして、マッピングクラス33においてオブジェクト直列化できるデータ、すなわち転送可能なデータは、プロパティ名と値であることが分かっている。
そこで、まず、上記マッピングクラス33を獲得したビジネスオブジェクト31は、このマッピングクラス33を含む所定の応答パラメータを、応答用データ転送オブジェクト作成処理部32に渡す。応答用データ転送オブジェクト作成処理部32は、この応答パラメータをRMI等によりプレゼンテーションレイヤ20に転送するが、応答パラメータの中にマッピングクラス33が含まれている場合には、このマッピングクラス33の中で転送可能なデータのみを抽出してプレゼンテーションレイヤ20に転送する。
プレゼンテーションレイヤ20では、マッピングクラス復元処理部25が、上記転送可能なデータを、マッピングクラスとして利用可能な状態に復元して(マッピングクラス27を生成(復元)して)、これを画面入出力コントロールオブジェクト21に渡す。これによって、画面入出力コントロールオブジェクト21から見ると、処理結果としてマッピングクラスが返ってきたことになる。そして、クライアントのWebブラウザ上に処理結果を表示させる。但し、マッピングクラス27は、マッピングクラス33の内容を完全に復元したものではない。
尚、上記呼出用データ転送オブジェクト作成処理部22、マッピングクラス復元処理部25、応答用データ転送オブジェクト作成処理部32による処理は、アプリケーションサーバ2の記憶装置23に記憶されている所定のアプリケーションプログラムを、不図示のCPU等が読出し・実行することにより実現させる。
図2は、図1の特徴に係るWebアプリケーション全体の基本的な構成例を示している。
図1に示す構成は、図2に示す基本構成に基づいて、呼出用データ転送オブジェクト作成処理部22、ビジネスオブジェクト定義ファイル24、応答用データ転送オブジェクト作成処理部32、マッピングクラス復元処理部25等の各種機能部が備えられている。
図2のWebアプリケーション101は、クライアントレイヤ111、プレゼンテーションレイヤ112、ビジネスレイヤ113、および永続化レイヤ114からなる。クライアントレイヤ111は、クライアントマシン1上で動作するWebブラウザ121を有する。プレゼンテーションレイヤ112、ビジネスレイヤ113、および永続化レイヤ114は、通信ネットワーク(LAN等)を介してクライアントマシン1と接続されたアプリケーションサーバ2で動作する。クライアントレイヤ111、プレゼンテーションレイヤ112、ビジネスレイヤ113が、上記クライアントレイヤ10、プレゼンテーションレイヤ20、ビジネスレイヤ30に相当する。
プレゼンテーションレイヤ112は、単独のJava仮想マシンで実行され、ビジネスレイヤ113と永続化レイヤ114は、同一のJava仮想マシンで実行される。プレゼンテーションレイヤ112のJava仮想マシンとビジネスレイヤ113および永続化レイヤ114のJava仮想マシンは、同一のアプリケーションサーバ上にあってもよく、別々のアプリケーションサーバ上にあってもよい。また、データベース102は図1のデータベース40に相当し、不図示のデータベースサーバ上にある。このデータベースサーバは、通信ネットワークを介してアプリケーションサーバ等と接続される。
プレゼンテーションレイヤ112は、プレゼンテーションの基盤技術としてJSF(Java Server Faces )132を用いたアプリケーションサーバ131を有する。JSF132は、ビジネスロジックとプレゼンテーションデザインの分離を目的とした、Webアプリケーションのインタフェースのためのフレームワークである。
JSF132は、グラフィカルユーザインタフェース(GUI)でWebアプリケーションを開発できるツールであり、Webアプリケーションを構成する画面コンポーネントをマウスでドラッグ&ドロップすることにより、画面フォーム上に配置できる。また、コンポーネント毎に、イベントハンドラに相当するManaged Bean133を記述することができる。
ビジネスレイヤ113は、システムの業務要件に関する処理(ビジネスロジック)を実行する。ビジネスレイヤ113は、プレゼンテーションレイヤ112からの処理要求を、ビジネスロジックの実装クラス(ビジネスオブジェクト142)にマッピングする。ビジネスレイヤ113は、ビジネスオブジェクト142を生成するビジネスロジックコンテナ141を有し、ビジネスオブジェクト142は、所定のビジネスロジックを実行する。ビジネスオブジェクト142としては、例えば、POJO(Plain Old Java Object )が用いられる。これにより、ビジネスオブジェクト142の開発・試験時に特別な試験環境を必要とせず、また再利用性が高まる。
ビジネスロジックコンテナ141は、プレゼンテーションレイヤ112から処理要求が届くと、この処理要求に対応するビジネスオブジェクト142を生成して業務処理を依頼する。そして、業務処理が完了すると、そのビジネスオブジェクト142は廃棄される。同時に複数の処理要求が届いた場合は、複数のビジネスオブジェクト142が同時に生成される。
永続化レイヤ114は、データベース102にアクセスするためにORマッピング145を有する。ORマッピング145は、Javaオブジェクトモデルのデータ表現を、SQL(Structured Query Language )ベースのスキーマを持つリレーショナルデータモデルにマッピングする。また、ORマッピング145は、データベース102のスキーマからデータアクセスオブジェクト(DAO)143を生成する。
アプリケーションサーバ131は、Webブラウザ121から要求を受信すると、その要求をManaged Bean133に通知し、Managed Bean133は、ビジネスロジックコンテナ141を呼び出す。これを受けて、ビジネスロジックコンテナ141は、ビジネスオブジェクト142を生成する。
生成されたビジネスオブジェクト142は、データベースアクセスを行うためにDAO143を獲得し、DAO143を用いて、データベース102の表に相当するマッピングクラス144を獲得する。
ビジネスオブジェクト142は、処理結果として、上記獲得したマッピングクラス144を含む所定の応答パラメータを、プレゼンテーションレイヤ20に返す。プレゼンテーションレイヤ20におけるManaged Bean133が、受信した処理結果に基づいて、Webブラウザ121に処理結果を通知して表示させる。尚、Managed Bean133が、図1の画面入出力コントロールオブジェクト21に相当する。
このようなWebアプリケーション101とは別に、プレゼンテーションレイヤを持たないアプリケーション103、104も設けられる。アプリケーション103、104は、Webアプリケーション101とは異なり、設定時刻に処理を起動したり、常に処理を実行し続けるタイプのものが多い。
アプリケーション103は、ビジネスレイヤ151および永続化レイヤ152からなり、ビジネスレイヤ151はバッチプロセス153を有し、永続化レイヤ152はORマッピング154を有する。アプリケーション104は、ビジネスレイヤ161および永続化レイヤ162からなり、ビジネスレイヤ161はバッチプロセス163を有し、永続化レイヤ162はORマッピング164を有する。
バッチプロセス153、163は、例えば、他サーバとの連携処理、夜間に実行されるデータ処理、ハードウェアとの通信処理等を行う。また、ビジネスオブジェクト142や他のバッチプロセスからイベントの通知を受け取ったり、他のバッチプロセスにイベントを通知したりすることができる。
以下、上記図1に示す第1、第2の特徴について、図1及び図3以降を参照しつつ、具体例を挙げながら、更に詳細に説明する。
まず、第1の特徴について説明する。特に図示しないが、ここでは一例として、ブラウザ11には社員情報管理画面が表示されているものとし、この画面には社員番号、名前、住所、年齢、部署名、及び特記事項の6つの項目があるものとする。これら各項目に対しては、例えばUser_id、Name、Address、Age、Section、及びCommentという識別名が割り当てられており、上記フォームデータ26は、例えば図3(a)に示すように、これら各識別名に、ユーザが入力したデータ又は画面に表示されたデータが対応付けられた形式となっている。尚、上記6つの項目は、全てが入力項目とは限らず、単に表示されている項目も有り得る。よって、例えば「検索」を実行させる場合であって上記6つの項目の一部を検索キーとして入力させた場合には、検索を実行するビジネスオブジェクト31は、この検索キーとしてのデータのみ必要であり、他の項目は必要ないことになる。
また、ビジネスオブジェクト定義ファイル24には、各ビジネスオブジェクト毎に対応付けて、そのビジネスオブジェクトの実行に必要なデータの識別名が格納される。図3(b)には、図3(a)に示す例に対して、User_id、Name、及びSectionのみを必要とするビジネスオブジェクトに関する定義例を示してある。これらは、例えば上記検索キーに相当するものである。
図4に、呼出用データ転送オブジェクト作成処理部22によって実行される処理のフローチャート図を示す。以下、上記図3(a)、(b)に示す例を用いつつ、このフローチャート処理について説明する。
呼出用データ転送オブジェクト作成処理部22は、画面入出力コントロールオブジェクト21が上記図3(a)の様なフォームデータを受取ってメモリ等に格納した後、この記憶されたフォームデータから、任意の1つのデータの識別名を取得する(ステップS11)。また、ビジネスオブジェクト定義ファイル24から、呼び出すビジネスオブジェクトが必要とするデータの識別名一覧(例えば上記図3(b))を取得して(ステップS12)、この識別名一覧の中に上記ステップS11で取得した識別名があるか否かを判定し(ステップS13)、ある場合には(ステップS13,YES)、ステップS11で取得した識別名に対応するデータをフォームデータ26から取得してデータ転送オブジェクト28にコピーする(ステップS14)。無い場合には(ステップS13,NO)、コピーは行わない。
以上の処理を、フォームデータ26にある全てのデータについて実行するまで、繰返し行う。
上記処理について、図3(a)、(b)に示す例を用いて説明するならば、まず最初は、ステップS11において識別名‘User_id’が取得され、図3(b)に示す識別名一覧は‘User_id’、‘Name’、‘Section’であり、‘User_id’があるので、ステップS13の判定はYESとなり、識別名‘User_id’とそのデータ‘1234’がデータ転送オブジェクト28にコピーされる。次の識別名‘Name’も同様に、図3(b)に示す識別名一覧中に存在するので、識別名‘Name’とそのデータ‘山田太郎’が、データ転送オブジェクト28にコピーされる。識別名‘Section’についても同様である。
一方、識別名‘Address’、‘Age’、‘Comment’については、識別名一覧中に存在しないので、そのデータのデータ転送オブジェクト28へのコピーは行われない。
そして、データ転送オブジェクト28をRMI等によってビジネスレイヤ30側に転送する。
以上、第1の特徴によれば、プレゼンテーションレイヤにおいて、ビジネスレイヤ30のビジネスオブジェクト31を呼び出す際に、このビジネスオブジェクト31が必要とするデータのみを抽出して渡すことができ、従来のようにビジネスレイヤ30で手間が掛かるコーディング作業を行う必要がない。ビジネスレイヤ30は、通常、各システム毎に特化したものが構築されるので、各システム毎にビジネスレイヤ30のコーディング作業が必要となる。また、ビジネスレイヤ30のビジネスロジックは、通常、あまり変更されないので、ビジネスレイヤ30のコーディング作業は、レイヤ構築後は、あまり行われないで済むはずである。しかし、画面の変更等によってフォームデータが変われば、必要なデータを抽出する処理の為のコーディング作業をやり直す必要があった。これに対して、第1の特徴によれば、プレゼンテーションレイヤ20の修正で対応できるようになる。また、プレゼンテーションレイヤ20は各システムに特化したものではないので、汎用性の高いものとなる。
次に、以下、第2の特徴に係る応答用データ転送オブジェクト作成処理部32とマッピングクラス復元処理部25について説明する。
図5は、応答用データ転送オブジェクト作成処理部32の処理フローチャート図である。
図6は、マッピングクラス復元処理部25の処理フローチャート図である。
まず、応答用データ転送オブジェクト作成処理部32は、上記呼び出されたビジネスオブジェクト31が処理を実行した結果として応答パラメータを返してくると、これら各応答パラメータ毎に、図5に示す処理を実行する。すなわち、まず、処理対象の応答パラメータからそのタイプ(型)を取得する(ステップS21)。そして、当該応答パラメータがマッピングクラスのタイプ(型)を継承しているオブジェクトであるか否かを判定する(ステップS22)。これは、具体的な一例としては、例えば永続化レイヤ214において“hibernate” (http://www.hibernate.org/)を使用している場合には、“net.sf.hibernate.Lifecycle”を継承(extends)しているオブジェクトであるか否かを判定するものである。そして、マッピングクラスのタイプを継承しているオブジェクトである場合には(ステップS22,YES)、このオブジェクトから、転送可能なデータであるプロパティ名と値を全て取得して、これらをマッピングクラス送信用オブジェクトにコピーし、このマッピングクラス送信用オブジェクトをデータ転送オブジェクト34に格納する(ステップS23)。マッピングクラスのオブジェクトではない場合には(ステップS22,NO)、この応答パラメータをデータ転送オブジェクト34にコピーする(ステップS24)。尚、マッピングクラス送信用オブジェクトには、これがマッピングクラス送信用オブジェクトであることを示すタイプ(型)が与えられている。また尚、転送可能なデータはプロパティ名と値のみであり、これら以外のデータは全て転送できないデータであるので、転送できないデータの具体例は特に示さない。
そして、データ転送オブジェクト34を、RMIにより、プレゼンテーションレイヤ20側に転送する。
上記データ転送オブジェクト34を受取ったマッピングクラス復元処理部25は、データ転送オブジェクト34に格納された各応答パラメータ毎に、図6に示す処理を実行する。すなわち、データ転送オブジェクト34から処理対象の応答パラメータのタイプ(型)を取得する(ステップS31)。そして、このタイプ(型)により、上記マッピングクラス送信用オブジェクトであるか否かを判定する(ステップS32)。処理対象の応答パラメータが上記マッピングクラス送信用オブジェクトである場合には(ステップS32,YES)、マッピングクラス送信用オブジェクトに格納されたデータ(すなわちプロパティ名と値)を全て取得し、これを用いて新しくマッピングクラスを生成(復元)する(ステップS33)。
但し、復元するといっても、上記転送できないデータまでもが復元されるわけではない。生成されたマッピングクラスは、上記転送可能なデータであるプロパティ名と値のみを含み、他のデータは空であるという、形式的にマッピングクラスの形となっているものとなる。つまり、上記の通り、マッピングクラスとして利用可能な状態に復元しているものである。しかし、画面入出力コントロールオブジェクト21が必要とするデータ(Webブラウザ11に処理結果を表示させる為の必要なデータ)は、通常、上記プロパティ名と値のみであるので、特に問題はない。また、絶対にマッピングクラスの形に復元させなければならないというものでもない。しかし、本システムでは、図2に示すように、永続化レイヤ114にORマッピング技術を採用しているので、応答はマッピングクラスの形で渡されるのが自然である。また、マッピングクラスは、例えばデータベース102の表に相当するものであり、マッピングクラスを用いれば表を表示させる処理が行い易い。よって、マッピングクラスとして利用可能な状態に復元することが望ましい。
そして、生成したマッピングクラスを、画面入出力コントロールオブジェクト21に渡す。また、処理対象の応答パラメータがマッピングクラス送信用オブジェクトではない場合には(ステップS32,NO)、この応答パラメータをそのまま画面入出力コントロールオブジェクト21に渡す。
これによって、画面入出力コントロールオブジェクト21は、処理結果をWebブラウザ11に表示させる。
以上説明したように、第2の特徴によれば、ビジネスレイヤ30からの応答の中にマッピングクラスがあり、そのままではプレゼンテーションレイヤ20側に転送できない場合でも、転送可能とできる。更に、これをマッピングクラスの形に復元して画面入出力コントロールオブジェクト21に渡すことで、ORマッピング技術を活かす形で処理結果の表示等を行わせることができる。
尚、最後に、図7に、図1のビジネスレイヤ30におけるビジネスオブジェクト定義ファイル34の具体的な記述例を示す。このビジネスオブジェクト定義ファイル34自体は、上記特徴とは直接関係しないものであり、従来より、ビジネスレイヤ30において、各ビジネスオブジェクト毎に、そのビジネスオブジェクトが扱えるパラメータの型を定義しておくことは、行われていた。
図7に示すように、全てのビジネスオブジェクト31に共通する記述部分と、各ビジネスオブジェクト31毎の定義記述部分とがある。各ビジネスオブジェクト31毎の定義記述部分には、そのビジネスオブジェクト31が扱えるパラメータ(応答パラメータ)の型(タイプ)が定義されている。図示の例では、例えばInteger型、String型、配列型等が定義されている。応答パラメータとしてマッピングクラスを扱えるビジネスオブジェクト31の場合には、当然、マッピングクラスの型(タイプ)が定義されており、上記図5の処理は、基本的にはこの様なビジネスオブジェクト31を対象としている。また、Java等では、マッピングクラスのインスタンス(オブジェクト)はマッピングクラスの型(タイプ)を継承しているものである。
これより、上記の通り、図5のステップS21、S22の処理では、処理対象の応答パラメータの型(タイプ)がマッピングクラスの型(タイプ)である場合には、判定YESとなり、ステップS23の処理が行われることになる。
尚、図1のビジネスオブジェクト定義ファイル24とビジネスオブジェクト定義ファイル34は、同一の内容を示している(入力パラメータ、応答パラメータを併せて定義している)。もし、プレゼンテーションレイヤ20とビジネスレイヤ30とが別々のサーバマシン上に実装される構成である場合には、定義ファイル34をコピーして定義ファイル24を作成するが、内容は同一である。
本例のWebアプリケーションシステムの機能ブロック図である。 図1の特徴に係るWebアプリケーション全体の具体的な構成例を示している。 (a)はフォームデータ、(b)はビジネスオブジェクト定義ファイルの具体例を示す図である。 呼出用データ転送オブジェクト作成処理部による処理フローチャート図である。 応答用データ転送オブジェクト作成処理部の処理フローチャート図である。 マッピングクラス復元処理部の処理フローチャート図である。 ビジネスオブジェクト定義ファイルに記述される内容の具体例である。 従来のWebアプリケーションの構成例である。
符号の説明
1 クライアントマシン
2 アプリケーションサーバ
10 クライアントレイヤ
11 Webブラウザ
20 プレゼンテーションレイヤ
21 画面入出力コントロールオブジェクト
22 呼出用データ転送オブジェクト作成処理部
23 記憶装置
24 ビジネスオブジェクト定義ファイル
25 マッピングクラス復元処理部
26 フォームデータ
27 マッピングクラス
28 データ転送オブジェクト
30 ビジネスレイヤ
31 ビジネスオブジェクト
32 応答用データ転送オブジェクト作成処理部
33 マッピングクラス
34 データ転送オブジェクト
40 データベース
101 Webアプリケーション
102 データベース
103,104 アプリケーション
111 クライアントレイヤ
112 プレゼンテーションレイヤ
113 ビジネスレイヤ
114 永続化レイヤ
121 Webブラウザ
131 アプリケーションサーバ
132 JSF(Java Server Faces )
133 Managed Bean
141 ビジネスロジックコンテナ
142 ビジネスオブジェクト
143 データアクセスオブジェクト(DAO)
144 マッピングクラス
145 ORマッピング
151 ビジネスレイヤ
152 永続化レイヤ
153 バッチプロセス
154 ORマッピング
161 ビジネスレイヤ
162 永続化レイヤ
163 バッチプロセス
164 ORマッピング

Claims (6)

  1. クライアントとのインタフェースを行う第1の仮想マシンと、各種ビジネスオブジェクトを実行する第2の仮想マシンとを有するアプリケーションサーバにおいて、
    前記第1の仮想マシンは、
    予め、前記各ビジネスオブジェクト毎に対応付けて、そのビジネスオブジェクトの処理に必要なデータの識別名を格納しておく定義格納手段と、
    前記クライアントに任意の画面を表示させて任意のデータ入力を行わせて、これに応じたフォームデータを含むリクエストを受取る画面入出力制御手段と、
    前記リクエストに応じたビジネスオブジェクトを呼出す際に、前記定義格納手段から該呼出すビジネスオブジェクトが必要とする各データの識別名を取得し、前記フォームデータに含まれる各データのうち、その識別名が前記取得した識別名の何れかと一致するデータのみを前記第2の仮想マシンに転送する呼出用データ転送制御手段と、
    を有することを特徴とするアプリケーションサーバ。
  2. クライアントとのインタフェースを行う第1の仮想マシンと、ビジネスオブジェクトを実行する第2の仮想マシンとを有するアプリケーションサーバにおいて、
    前記第2の仮想マシンは、前記ビジネスオブジェクトから処理結果として各種応答パラメータを渡されると、その中にマッピングクラスのオブジェクトがある場合には、該オブジェクトから転送可能なデータのみを抽出して前記第1の仮想マシンに転送する応答用データ転送手段を有し、
    前記第1の仮想マシンは、前記応答用データ転送手段により転送された前記転送可能なデータを、マッピングクラスのオブジェクトの形を復元するマッピングクラス復元処理手段を有することを特徴とするアプリケーションサーバ。
  3. 前記マッピングクラスのオブジェクトにおいて転送できないデータは、直列化できないデータであることを特徴とする請求項2記載のアプリケーションサーバ。
  4. 前記第2の仮想マシンは、ORマッピング技術によってデータベースへのアクセスを行いマッピングクラスを生成する永続化レイヤを有しており、前記ビジネスオブジェクトは該マッピングクラスを獲得するものであることを特徴とする請求項2記載のアプリケーションサーバ。
  5. コンピュータに、
    クライアントとのインタフェースを行う第1の仮想マシンと、各種ビジネスオブジェクトを実行する第2の仮想マシンとを有するWebアプリケーションにおける該第1の仮想マシンにおいて、
    予め、前記各ビジネスオブジェクト毎に対応付けて、そのビジネスオブジェクトの処理に必要なデータの識別名を格納しておく定義格納機能と、
    前記クライアントに任意の画面を表示させて任意のデータ入力を行わせて、これに応じたフォームデータを含むリクエストを受取る画面入出力制御機能と、
    前記リクエストに応じたビジネスオブジェクトを呼出す際に、前記定義格納機能から該呼出すビジネスオブジェクトが必要とする各データの識別名を取得し、前記フォームデータに含まれる各データのうち、その識別名が前記取得した識別名の何れかと一致するデータのみを前記第2の仮想マシンに転送する呼出用データ転送制御機能と
    を実現させる為のプログラム。
  6. コンピュータに、
    クライアントとのインタフェースを行う第1の仮想マシンと、各種ビジネスオブジェクトを実行する第2の仮想マシンとを有するWebアプリケーションにおいて、
    前記第2の仮想マシンに、前記ビジネスオブジェクトから処理結果として各種応答パラメータを渡されると、その中にマッピングクラスのオブジェクトがある場合には、該オブジェクトから転送可能なデータのみを抽出して前記第1の仮想マシンに転送する応答用データ転送機能を実現させ、
    前記第1の仮想マシンに、前記応答用データ転送機能により転送された前記転送可能なデータを、マッピングクラスのオブジェクトの形を復元するマッピングクラス復元処理機能を実現させる為のプログラム。
JP2005081757A 2005-03-22 2005-03-22 Webアプリケーションシステム、そのプログラム Expired - Fee Related JP4695903B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005081757A JP4695903B2 (ja) 2005-03-22 2005-03-22 Webアプリケーションシステム、そのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005081757A JP4695903B2 (ja) 2005-03-22 2005-03-22 Webアプリケーションシステム、そのプログラム

Publications (2)

Publication Number Publication Date
JP2006268121A JP2006268121A (ja) 2006-10-05
JP4695903B2 true JP4695903B2 (ja) 2011-06-08

Family

ID=37204072

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005081757A Expired - Fee Related JP4695903B2 (ja) 2005-03-22 2005-03-22 Webアプリケーションシステム、そのプログラム

Country Status (1)

Country Link
JP (1) JP4695903B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4714199B2 (ja) * 2007-09-28 2011-06-29 株式会社三菱東京Ufj銀行 アプリケーション開発支援装置及びプログラム
JP4185159B1 (ja) 2008-01-30 2008-11-26 株式会社三菱東京Ufj銀行 アプリケーション開発支援装置及びプログラム
JP5458708B2 (ja) * 2009-07-09 2014-04-02 株式会社リコー 画像処理装置、表示制御方法、及び表示制御プログラム
CN102257477B (zh) * 2009-09-17 2015-04-15 株式会社三菱东京Ufj银行 应用开发支援装置
JP5318977B2 (ja) * 2012-01-04 2013-10-16 株式会社三菱東京Ufj銀行 オンラインシステム、プログラム生成装置および画面制御プログラム生成装置
CN111290808B (zh) * 2020-01-13 2023-10-20 中国平安财产保险股份有限公司 基于数据传输对象的产品模块展示方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004110362A (ja) * 2002-09-18 2004-04-08 Ntt Comware Corp アプリケーション開発支援システム及びアプリケーション開発支援方法ならびにコンピュータプログラム
JP2004110361A (ja) * 2002-09-18 2004-04-08 Ntt Comware Corp アプリケーション提供システム及びアプリケーション提供方法ならびにアプリケーション提供システムのコンピュータプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004110362A (ja) * 2002-09-18 2004-04-08 Ntt Comware Corp アプリケーション開発支援システム及びアプリケーション開発支援方法ならびにコンピュータプログラム
JP2004110361A (ja) * 2002-09-18 2004-04-08 Ntt Comware Corp アプリケーション提供システム及びアプリケーション提供方法ならびにアプリケーション提供システムのコンピュータプログラム

Also Published As

Publication number Publication date
JP2006268121A (ja) 2006-10-05

Similar Documents

Publication Publication Date Title
US5758351A (en) System and method for the creation and use of surrogate information system objects
US7814459B2 (en) System and method for automated on demand replication setup
US7363628B2 (en) Data centric and protocol agnostic workflows for exchanging data between a workflow instance and a workflow host
US8849987B2 (en) Automated discovery of a topology of a distributed computing environment
US6976262B1 (en) Web-based enterprise management with multiple repository capability
US7739691B2 (en) Framework for declarative expression of data processing
US9146955B2 (en) In-memory, columnar database multidimensional analytical view integration
US7725907B2 (en) Default value initialization of business objects
US20060034263A1 (en) Model and system state synchronization
US20040205179A1 (en) Integrating design, deployment, and management phases for systems
JP2005516272A (ja) ワールドワイドウェブアプリケーション用の非セーブデータを暗示的にコミットするための計算システム及び方法
CA2627270A1 (en) System and method for displaying data on a thin client
US9164776B2 (en) Dynamic determination of navigation targets in a flexible user interface environment
US20120130906A1 (en) Deployment mechanism for non-versioning business process artifacts
US20150089408A1 (en) Method and framework for content viewer integrations
JP4695903B2 (ja) Webアプリケーションシステム、そのプログラム
US11397569B2 (en) Deploying micro frontends to different clusters from a single repository
CN111104103A (zh) 一种软件编辑微服务的可视化方法及***
US7509341B2 (en) Stateless-object software environment
US8041722B2 (en) Refining collections of entities in a service registry environment
JP2006268125A (ja) アプリケーションサーバ、そのプログラム
JP2006268123A (ja) 情報共有装置
US11468101B2 (en) Context-rich key framework implementations for global concept management
US20060010423A1 (en) Variable namespaces and scoping for variables in an object model
US20100023923A1 (en) Method for medeling objects in a hetrogenious computing environment

Legal Events

Date Code Title Description
A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20080215

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: 20110222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110228

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4695903

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees