JP2006268125A - アプリケーションサーバ、そのプログラム - Google Patents

アプリケーションサーバ、そのプログラム Download PDF

Info

Publication number
JP2006268125A
JP2006268125A JP2005081761A JP2005081761A JP2006268125A JP 2006268125 A JP2006268125 A JP 2006268125A JP 2005081761 A JP2005081761 A JP 2005081761A JP 2005081761 A JP2005081761 A JP 2005081761A JP 2006268125 A JP2006268125 A JP 2006268125A
Authority
JP
Japan
Prior art keywords
authority
request
screen
layer
input
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.)
Pending
Application number
JP2005081761A
Other languages
English (en)
Inventor
Katsumichi Sekimoto
克理 関本
Tomikazu Watanabe
富美一 渡辺
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
FFC Ltd
Original Assignee
Fuji Electric Systems Co Ltd
FFC 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, FFC Ltd filed Critical Fuji Electric Systems Co Ltd
Priority to JP2005081761A priority Critical patent/JP2006268125A/ja
Publication of JP2006268125A publication Critical patent/JP2006268125A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 各メソッド毎に権限チェック処理を記述する手間が掛かることなく、画面上の各ボタン操作毎に権限チェック処理を実行する。
【解決手段】 入出力インタフェース部21は、クライアントマシン1のWebブラウザ11上に表示される任意の画面上に配置される複数のボタンのうち、ユーザによって任意のボタンが操作されることで、この操作に対応するリクエストを受取ると、メモリ23に格納されている許可権限記憶部26等を参照することで、このユーザがこのリクエストを要求する権限を有する者であるか否かを判定し、権限を有する場合には、メソッド実行部22における当該リクエストに対応するメソッドを呼び出して、処理を実行させる。一方、権限を有しない場合には、このメソッド呼出は行わない。
【選択図】図1

Description

本発明は、Webアプリケーションシステムに係り、特にWebアプリケーションを複数の層に分離したものに関する。
Webアプリケーションは、インターネットやイントラネットのように、情報源となるサーバからユーザ端末に画面情報を配信する通信ネットワーク上で使用されるソフトウェアである(例えば、下記特許文献1を参照)。
また、例えば特許文献2は、従来では業務アプリケーションがクライアントとの入出力制御機能、業務処理機能、及びデータベース操作機能を有していたのに対して、I/O層、業務アプリケーション層、データベース層の3つの層に分離したことで、仕様変更の起こり易いクライアントに対する表示様式やデータの入出力の部分(すなわち、I/O層が処理する部分)、及びデータベース操作の部分(すなわち、データベース層が処理する部分)が、業務アプリケーション層から切り離されるので、業務アプリケーション層の生産性が向上する発明を提案している。
図7は、このようなWebアプリケーションの構成例を示している。この例では、Webアプリケーション500は、クライアントレイヤ510、プレゼンテーションレイヤ520、ビジネスレイヤ530、および永続化レイヤ540の4つのレイヤからなる。クライアントレイヤ510はクライアント端末上で動作する。プレゼンテーションレイヤ520、ビジネスレイヤ530、および永続化レイヤ540はサーバ上で動作し、Java(登録商標)と呼ばれるオブジェクト指向プログラミング言語で作成される。
クライアントレイヤ510は、Webブラウザに対応し、プレゼンテーションレイヤ520に対して要求を送信する。
プレゼンテーションレイヤ520は、クライアントレイヤ510からの要求に応じて、Web画面を表示するための画面情報をクライアントレイヤ510に送信する。また、プレゼンテーションレイヤ520は、表示されたWeb画面上でユーザによる任意のデータ入力やコマンド指示が行われると、これに応じたフォームデータが送られてくると、ビジネスレイヤ530のビジネスオブジェクトを呼び出す。その際このフォームデータをビジネスレイヤ530に渡す。また、プレゼンテーションレイヤ520は、ログイン時のクライアント認証等の処理も行う。
ビジネスレイヤ530のビジネスオブジェクトは、プレゼンテーションレイヤ520からの要求に応じて、Webアプリケーションの業務処理(ビジネスロジック)を実行し、処理結果をプレゼンテーションレイヤ520に転送する。永続化レイヤ540は、ビジネスレイヤ530が処理に用いるデータを、データベース550に格納して永続化する。
このようにWebアプリケーションでは、サーバ上で動作するソフトウェアを、Webブラウザに画面を表示し入力を受け付ける機能と、画面表示から独立したビジネスロジックを実行する機能と、データベースアクセスに特化した機能とに分割することで、各機能の独立性と汎用性を高めている。
各機能の独立性を高めれば、アプリケーション開発や修正を機能毎に行うことが可能となり、作業が効率化される。例えば、プレゼンテーションレイヤとビジネスレイヤを分離することで、これらのレイヤのプログラムを効率よく開発することができ、開発コストの削減と品質の確保が期待できる。特に、現実上、ビジネスロジック自体は殆ど変更されることがないのに対して、ユーザインタフェースとしての画面の変更等は、比較的頻繁に行われるが、上記レイヤの分離を行うことで、画面の変更等によってはビジネスレイヤを修正する必要がなくなることが期待できる。
また、従来より、例えばWebアプリケーションを提供するWebサーバ等において、アクセス制限を行うことが知られている。アクセス制限には、例えば、Webサーバが保持するリソース中どのリソースにアクセスできるか、あるいはどの画面を表示できるか、又はデータに対する操作(参照、更新、削除等)を、アクセス元のクライアントのユーザの権限等に応じて決定して登録しておき、権限チェックを行うことで、権限なき使用は許可しないようにするものがある。この様なアクセス制限に関して、例えば、特許文献3に記載の技術が知られている。
特開2003−15870号公報 特開2002−373148号公報 特表2004−533075号公報
上記特許文献3等の従来のアクセス制限では、サーバ上で動作するソフトウェアアプリケーションや特定のウェブページ等に対するアクセスを制限している。しかしながら、例えば特定のウェブページ上に表示される複数のボタン(例えばデータベースのデータに対する「追加」、「更新」、「削除」等)の各処理実行に対して、それぞれ、権限に応じた実行制限を行うようなことは行われていない。
また、上記プレゼンテーションレイヤ520、ビジネスレイヤ530等の各レイヤに分離された構成では、プレゼンテーションレイヤ520又はビジネスレイヤ530で権限チェックを行うことになるが、例えばビジネスレイヤ530で権限チェックを行う場合には、プレゼンテーションレイヤ520が、クライアントからのリクエストに応じてビジネスレイヤ530の特定のビジネスオブジェクトを呼び出して、このビジネスオブジェクトが権限チェックを行うことになり、ビジネスレイヤ530側に処理負担が掛かるし、またプレゼンテーションレイヤ520側にも、呼び出しやその応答受信の処理負担が掛かる。
これより、プレゼンテーションレイヤ520側で権限チェックを行うことが考えられるが、後に説明するように、例えば上記各ボタンに対応する各メソッド毎に権限チェック処理を記述しなけらばならず、手間が掛かるものであり、また、当該メソッド呼出し自体を行わないようにしたいという要望がある。
本発明の課題は、画面上の各ボタン操作毎に権限チェック処理を実行するものであって、特に画面の入出力インタフェースを行う処理部において権限チェック処理を行うことにより、各画面・各ボタンに対応する各メソッド毎に権限チェック処理を記述する手間を省き、また権限がない場合にはそのメソッド呼出とその実行自体が行われないようにすることで処理効率が向上するアプリケーションサーバ、そのプログラム等を提供することである。
本発明のアプリケーションサーバは、少なくともプレゼンテーションレイヤとビジネスレイヤとを有するWebアプリケーションを有するアプリケーションサーバにおいて、前記プレゼンテーションレイヤは、外部のクライアントのWebブラウザに画面を表示させて、該画面上での任意の操作に応じたリクエストを受け付け、該リクエストに応じたメソッドを呼び出す入出力インタフェース手段と、各種リクエストに応じたメソッドが記述され、前記入出力インタフェース手段から呼び出されたメソッドを実行し、必要に応じて前記ビジネスレイヤのビジネスオブジェクトを実行させるメソッド実行手段と、予め権限チェックに必要な各種データが格納されるデータ記憶手段とを有し、前記入出力インタフェース手段は、前記リクエストを受けると、前記データ記憶手段を参照して、前記クライアントのユーザが前記リクエストを行う権限を有するか否かを判定し、該権限を有しない場合には、前記メソッドの呼出しは行わないように構成する。
上記構成では、各画面上の各ボタン等毎に、対応するメソッドを用意している。従来では、各メソッドに権限チェック処理を記述することで、あるユーザによって画面上の任意のボタンが操作されると、そのボタンの処理を要求する権限がそのユーザにあるか否かを判別することができ、ボタン毎のユーザアクセス制限を実現できたが、上記各メソッドに権限チェック処理を記述するのは手間が掛かるものであり、また、逐一、メソッドを呼出て処理実行させる必要があった。これに対して、上記構成では、画面入出力制御を行う入出力インタフェース手段が、上記データ記憶手段を参照して権限チェック処理を実行するので、この様な問題を解決できる。
本発明のアプリケーションサーバ、そのプログラム等によれば、画面上の各ボタン操作毎に権限チェック処理を実行するものであって、特に画面の入出力インタフェースを行う処理部において権限チェック処理を行うことにより、各画面・各ボタンに対応する各メソッド毎に権限チェック処理を記述する、というような手間を省き、また権限がない場合にはそのメソッド呼出とその実行自体が行われないようにすることで処理効率が向上する。
以下、図面を参照して本発明の実施の形態について説明する。
図1に、本例のWebアプリケーションシステムの機能ブロック図を示す。
図1に示す本例のシステムでは、アプリケーションサーバ2のWebアプリケーションは、少なくともプレゼンテーションレイヤ20とビジネスレイヤ30とに分離されている。
プレゼンテーションレイヤ20、ビジネスレイヤ30は、それぞれ別のJava仮想マシン上にある。プレゼンテーションレイヤ20、ビジネスレイヤ30は、アプリケーションサーバ2上に実装される。これは、図1では1つのサーバ2上に2つのレイヤ20、30が実装されているが、各レイヤ20、30がそれぞれ別々のサーバ上に実装されてもよい。クライアントレイヤ10は、クライアントマシン1上に実装される。これらクライアントマシン1、アプリケーションサーバ2は、何らかのネットワーク(例えばLAN等)に接続されており、相互に通信可能となっている。
尚、実際には図2に示すように、更に永続化レイヤ114があり、この永続化レイヤ114がビジネスオブジェクトからの依頼に応じて、データベース102へのアクセスを実行しているが、ここでは関係ないので省略して示してある。
プレゼンテーションレイヤ20は、入出力インタフェース部21、メソッド実行部22の各機能部を有する。また、アプリケーションサーバ2が有する記憶装置23(ハードディスク、メモリ等)に、予め、ユーザ情報記憶部24、対応メソッド記憶部25、及び許可権限記憶部26の各データを記憶しておく。
尚、入出力インタフェース部21、メソッド実行部22の処理機能は、アプリケーションサーバ2の不図示のCPU等が、記憶装置23に記憶されている不図示の所定のプログラムを読出し・実行することにより実現される。
メソッド実行部22は、図では1つのみ示してあるが、Webブラウザ11上に表示される各画面毎に対応して、それぞれ存在する。各メソッド実行部22には、そのメソッド実行部22に対応する画面上にある各ボタンに対応して各メソッドが記述されている。
入出力インタフェース部21は、どの画面上のどのボタンが操作されたのかを認識する。つまり、Webブラウザ11からのリクエストを受け付ける。そして、この画面に対応するメソッド実行部22におけるこのボタンに対応するメソッドを呼び出す。呼び出されたメソッドによる処理実行によって、ビジネスレイヤ30における特定のビジネスオブジェクト31が呼び出され、このビジネスオブジェクト31による処理実行の結果として応答パラメータが返信される。
ここで、従来では、上記の通り、上記各メソッド実行部22の各メソッド中にそれぞれ権限チェック処理を記述することが考えられたが、非常に手間が掛かるものである。これに対して、本手法では、入出力インタフェース部21が統一的に権限チェック処理を行うようにしている。そして、あるボタン操作を権限がないユーザが行った場合には、上記メソッドの呼出し自体が行われない。
入出力インタフェース部21は、例えばログイン処理の際等にユーザ情報記憶部24を参照して、そのユーザに与えられている権限を認識しておく。その後、任意の画面上で任意のボタン操作が行われることで、Webブラウザ11からのリクエストがある毎に、対応メソッド記憶部25や許可権限記憶部26に記憶された情報を参照して、要求元のWebブラウザ11のユーザがこのリクエストを行う権限を有するか否かを判定する為の権限チェック処理を実行する。詳しくは後述する。そして、リクエストを許可する場合には、上記メソッド実行部22のメソッドの呼出しを行う。一方、リクエストを許可しない場合には、メソッド呼出を行うことなく、Webブラウザ11に対して例えば「その処理を要求する権限がない」旨のメッセージを通知して表示させる。
図2は、図1のシステムに係るWebアプリケーション全体の具体的な構成例を示している。
図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を記述することができる。また、JSF132では、Webブラウザ121に対する画面入出力インタフェースとしてのAction Handler134が提供されている。ユーザが任意の画面上で任意のボタン操作等を行うと、Action Handler134が、どの画面上のどのボタンが押されたのかを認識して、Managed Bean133における該当メソッドを呼び出す。
このAction Handler134が図1の入出力インタフェース部21に相当し、上記の従来よりある機能に加えて、権限チェック機能が備わっているものである。また、Managed Bean133が図1のメソッド実行部22に相当する。
ビジネスレイヤ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を獲得する。そして、マッピングクラス144のメソッドを使用して、データベース102を更新する。
処理結果は、データベース102からビジネスオブジェクト142、ビジネスロジックコンテナ141、Managed Bean133、アプリケーションサーバ131、Webブラウザ121の順番に通知される。
このような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、図2で説明した本発明の特徴について、具体例も示しつつ、更に詳細に説明する。
上述してある様に、1つの画面に対して1つのManaged Bean133(メソッド実行部22)がある。ある画面に対応するManaged Bean133には、通常、その画面に表示される複数のボタン毎にそれぞれメソッドが記述される。各メソッドは、例えば、ビジネスレイヤ113のビジネスオブジェクト142(リクエストの対応するもの)を呼び出す処理や、画面遷移を行う処理等が記述されるものである。更に、呼び出したビジネスオブジェクト142から処理結果が返信されてくると、画面遷移を行うメソッドもある。
図3に、プレゼンテーションレイヤが上記JSFを用いるものである場合のメソッド呼出し、画面遷移の一例を示す。
まず、JSFの場合、画面遷移は、ページナビゲーションによって定義される。ページナビゲーションでは、あるページから、ケース名によって遷移先のページが定義される。そして、JSFでは、ボタンのクリック等に応じて、対応するJavaクラスのメソッドを呼び出すことができ、呼び出したメソッドの実行結果として上記ケース名を返すことにより、画面遷移が行われる。上記図2で説明した通り、この様な画面上でのボタン操作を認識して、対応するメソッド呼出しを行うのが、入出力インタフェース部21としてのAction Handler134である。
図3に示す例では、あるページ(page1)に、ボタンA、ボタンBの2つのボタンが配置されており、Action Handler134は、ボタンAが操作されると、このボタンAに対応するメソッド(Method1)を呼び出す。Method1は所定の処理を実行し、最後にケース名“case1”を返す。これによって、Webブラウザ121上に表示される画面は、Page2へと遷移する。あるいは、Action Handler134は、ボタンBが操作されると、このボタンBに対応するメソッド(Method2)を呼び出す。Method2は、ビジネスレイヤ113のビジネスオブジェクト142を呼出し、その処理結果として応答パラメータを受取ると、最後に応答パラメータと共にケース名“case2”を返す。これによって、Webブラウザ121上に表示される画面は、処理結果を表示するページであるPage3へと遷移する。
ここで、従来では、各メソッドには、まず最初に、権限チェックを行う処理が記述される。すなわち、従来では、各メソッド毎に権限チェックを記述しなければならず、手間が掛かっていた。また、権限チェックはManaged Bean133が行う為、Action Handler134によるManaged Bean133の呼出処理が、必ず必要であった。
これに対して、本手法では、Action Handler134によって権限チェックを行うので、各メソッド毎に権限チェック処理を記述する必要はなくなる。更に、権限チェック結果がNGであった場合には、Managed Bean133のメソッド呼出処理自体が行われないので、処理効率が良いものとなる。
以下、本手法の具体的な実現方法の一例を、図4〜図6を参照して説明する。
図4に、ボタン操作と画面遷移の一例を示す。
図5に、図1の入出力インタフェース部21によって実行される処理のフローチャート図を示す。
図6(a)〜(c)に、図5の権限チェック処理に用いる為に、プレゼンテーションレイヤ20が実装されているアプリケーションサーバが備える不図示の記憶装置(ハードディスク、メモリ等)に、予め記憶されている各種のデータテーブルの一例を示す。
図6(a)に示すユーザ情報テーブル310は、図1のユーザ情報記憶部24の一例であり、ID311、パスワード312、及び権限313の各データ項目より成る。
図6(b)に示す対応メソッドテーブル320は、図1の対応メソッド記憶部25の一例であり、ページ名321及びボタン名322の組に対応するクラス名323及びメソッド名324が格納される。
図6(c)に示す許可権限テーブル330は、図1の許可権限記憶部26の一例であり、クラス名331とメソッド名332の組に対応する許可権限333が格納される。
以下、図4や図6も参照しつつ、図5の処理について説明する。
まず、プレゼンテーションレイヤ20は、Webブラウザクライアントのディスプレイに、図4に示すログイン画面210を表示させて、ユーザに、自己のID、パスワードを入力させる。
入出力インタフェース部21は、この入力に応じて、図6(a)に示すユーザ情報テーブル310を検索して、ID311及びパスワード312が、入力されたID、パスワードと一致するレコードがあるか否かを求め、ある場合にはログイン認証OKとし(ステップS11,YES)、該当レコードの権限313を取得・記憶する(ステップS12)。つまり、ログインしたユーザに与えられている権限を認識する。
ログイン処理が完了したら、図4に示す初期メニュー画面220がクライアントのディスプレイに表示される。この初期メニュー画面220上に配置された複数のボタンのうち、例えばユーザがボタン221を操作すると図示の画面A(PageA)に遷移し、ユーザがボタン222を操作すると図示の画面B(PageB)に遷移するものとする。これら画面A、画面Bへの遷移の際にも、権限チェック処理を行うが、ここでは、画面A、画面Bからの画面遷移時の権限チェック処理を例にして説明する。
画面A上には、例えば「更新」ボタン231、「検索」ボタン232、「画面Cに切替」ボタン233等の各ボタンが配置されている。画面B上には、「更新」ボタン241、「検索」ボタン242、「削除」ボタン243等の各ボタンが配置されている。
そして、ユーザによって何れかの画面上で任意のボタンが操作されると(ステップS13,YES)、JSFでは(Action Handler134では)現在表示されている画面及び操作されたボタンは認識できるので、入出力インタフェース部21は、図6(b)に示す対応メソッドテーブル320を参照することで、当該ユーザ操作に対応するクラス及びメソッドの名称を取得する(ステップS14)。例えば、ユーザが画面A上で「更新」ボタン231を操作した場合には、ページ名は“PageA”、ボタン名は“更新”であることは分かるので、これに対応するクラス名323−メソッド名324は、ClassA−MethodBである。
そして、求めたクラス名及びメソッド名を用いて、図6(c)に示す許可権限テーブル330を参照することで、上記ボタン操作によるリクエストに対応するメソッドの実行が許可される権限である許可権限333を取得する(ステップS15)。許可権限333は、例えば、管理者、一般ユーザ等である。上記ログイン処理時に、ユーザの権限は分かっているので、このユーザの権限が、許可権限の何れかに該当すれば(ステップS16,YES)、メソッド実行は許可され、ステップS14で求めたクラス名−メソッド名より、該当するManaged Beanのメソッドを呼び出すことになる(ステップS17)。
一方、ユーザの権限が、許可権限333の何れにも該当しなければ(ステップS16,NO)、Managed Beanのメソッド呼出しが行われることなく(ステップS18)、例えば要求元のWebブラウザに対して「そのボタンの処理を要求する権限はない」旨のメッセージを返信して表示等させる。
例えば、図6(b)、(c)に示す例では、画面A上の「検索」ボタン232、「更新」ボタン231に対応するクラス名、メソッド名は、それぞれClassA−MethodAと、ClassA−MethodBであり、画面B上の「検索」ボタン242、「更新」ボタン241に対応するクラス名、メソッド名は、それぞれClassA−MethodAと、ClassB−MethodBである。また、ClassA−MethodAと、ClassA−MethodBに対応する許可権限は、一般ユーザ又は管理者であり、ClassB−MethodBに対応する許可権限は、管理者のみである。「検索」ボタンの様に、画面が違ってもクラス−メソッドが同じである場合もあるし、「更新」ボタンの様に画面が違えばクラス−メソッドが異なる場合もある。そして、上記の例では、仮にユーザの権限が一般ユーザであった場合、画面A上の「検索」ボタン232、「更新」ボタン231、及び画面B上の「検索」ボタン242が操作された場合には、メソッド実行が許可されるが、画面B上の「更新」ボタン241が操作された場合には、メソッド実行は許可されない。
尚、図6(b)、(c)に示す情報は、同図ではテーブル形式で示してあるが、実際には、XMLで記述されている。つまり、これらの情報は、管理者等の人間が、XMLで事前に作成しておく。
以上説明したように、本例のアプリケーションサーバ2(特に、そのプレゼンテーションレイヤ20)によれば、画面上の各ボタン操作毎に権限チェック処理を実行するものであって、特に画面の入出力インタフェースを行う処理部において権限チェック処理を行うことにより、各画面・各ボタンに対応する各メソッド毎に権限チェック処理を記述する手間を省き、また権限がない場合にはそのメソッド呼出とその実行自体が行われないようにすることで処理効率が向上する。
本例のWebアプリケーションシステムの機能ブロック図である。 図1のシステムに係るWebアプリケーション全体の具体的な構成例である。 メソッド呼出し、画面遷移の一例を示す図である。 ボタン操作と画面遷移の一例を示す図である。 入出力インタフェース部によって実行される処理のフローチャート図である。 (a)はユーザ情報テーブル、(b)は対応メソッドテーブル、(c)は許可許可権限テーブルの一例である。 従来のWebアプリケーションの構成例である。
符号の説明
1 クライアントマシン
2 アプリケーションサーバ
3 ネットワーク
10 クライアントレイヤ
11 Webブラウザ
20 プレゼンテーションレイヤ
21 入出力インタフェース部
22 メソッド実行部
23 メモリ
24 ユーザ情報記憶部
25 対応メソッド記憶部
26 許可権限記憶部
30 ビジネスレイヤ
31 ビジネスオブジェクト
101 Webアプリケーション
102 データベース
103,104 アプリケーション
111 クライアントレイヤ
112 プレゼンテーションレイヤ
113 ビジネスレイヤ
114 永続化レイヤ
121 Webブラウザ
131 アプリケーションサーバ
132 JSF(Java Server Faces )
133 Managed Bean
134 Action Handler
141 ビジネスロジックコンテナ
142 ビジネスオブジェクト
143 データアクセスオブジェクト(DAO)
144 マッピングクラス
145 ORマッピング
151 ビジネスレイヤ
152 永続化レイヤ
153 バッチプロセス
154 ORマッピング
161 ビジネスレイヤ
162 永続化レイヤ
163 バッチプロセス
164 ORマッピング
210 ログイン画面
220 初期メニュー画面
221 ボタン
222 ボタン
231 「更新」ボタン
232 「検索」ボタン
233 「画面Cに切替」ボタン
241 「更新」ボタン
242 「検索」ボタン
243 「削除」ボタン
310 ユーザ情報テーブル
311 ID
312 パスワード
313 権限
320 対応メソッドテーブル
321 ページ名
322 ボタン名
323 クラス名
324 メソッド名
330 許可権限テーブル
331 クラス名
332 メソッド名
333 許可権限

Claims (3)

  1. 少なくともプレゼンテーションレイヤとビジネスレイヤとを有するWebアプリケーションを有するアプリケーションサーバにおいて、
    前記プレゼンテーションレイヤは、
    外部のクライアントのWebブラウザに画面を表示させて、該画面上での任意の操作に応じたリクエストを受け付け、該リクエストに応じたメソッドを呼び出す入出力インタフェース手段と、
    各種リクエストに応じたメソッドが記述され、前記入出力インタフェース手段から呼び出されたメソッドを実行し、必要に応じて前記ビジネスレイヤのビジネスオブジェクトを実行させるメソッド実行手段と、
    予め権限チェックに必要な各種データが格納されるデータ記憶手段とを有し、
    前記入出力インタフェース手段は、前記リクエストを受けると、前記データ記憶手段を参照して、前記クライアントのユーザが前記リクエストを行う権限を有するか否かを判定し、該権限を有しない場合には、前記メソッドの呼出しは行わないことを特徴とするアプリケーションサーバ。
  2. 前記データ記憶手段は、各ユーザの権限を記憶するユーザ情報記憶手段と、各リクエスト毎にその実行を許可される権限である許可権限を記憶する許可権限記憶手段とを有し、
    前記入出力インタフェース手段は、前記クライアントのユーザに与えられている権限を前記ユーザ情報記憶手段を参照して求め、前記リクエストに対応する許可権限を前記許可権限記憶手段から求めることで、前記クライアントのユーザが前記リクエストを行う権限を有するか否かを判定することを特徴とする請求項1記載のアプリケーションサーバ。
  3. コンピュータに、
    外部のクライアントのWebブラウザに画面を表示させて、該画面上での任意の操作に応じたリクエストを受け付け、該リクエストに応じたメソッドを呼び出す入出力インタフェース機能と、
    各種リクエストに応じたメソッドが記述され、前記入出力インタフェース機能から呼び出されたメソッドを実行し、必要に応じてビジネスオブジェクトを実行させるメソッド実行機能と、
    予め権限チェックに必要な各種データが格納されるデータ記憶機能とを実現させ、
    更に前記入出力インタフェース機能において、前記リクエストを受けると、前記データ記憶機能を参照して、前記クライアントのユーザが前記リクエストを行う権限を有するか否かを判定し、該権限を有しない場合には、前記メソッドの呼出しは行わない機能を実現させる為のプログラム。
JP2005081761A 2005-03-22 2005-03-22 アプリケーションサーバ、そのプログラム Pending JP2006268125A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005081761A JP2006268125A (ja) 2005-03-22 2005-03-22 アプリケーションサーバ、そのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005081761A JP2006268125A (ja) 2005-03-22 2005-03-22 アプリケーションサーバ、そのプログラム

Publications (1)

Publication Number Publication Date
JP2006268125A true JP2006268125A (ja) 2006-10-05

Family

ID=37204076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005081761A Pending JP2006268125A (ja) 2005-03-22 2005-03-22 アプリケーションサーバ、そのプログラム

Country Status (1)

Country Link
JP (1) JP2006268125A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150632A (ja) * 2010-01-25 2011-08-04 Nec System Technologies Ltd ファイル生成システムおよびファイル生成方法
WO2014020754A1 (ja) * 2012-08-03 2014-02-06 東芝三菱電機産業システム株式会社 プラント制御監視システム
CN104408362A (zh) * 2014-10-29 2015-03-11 深圳市东信时代信息技术有限公司 权限管理系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172646A (ja) * 1998-12-04 2000-06-23 Toshiba Corp アプリケーション機能指定装置及び記憶媒体
JP2000354126A (ja) * 1999-06-10 2000-12-19 Toshiba Tec Corp 画像処理システム
JP2002373148A (ja) * 2001-06-13 2002-12-26 Junya Kurahashi 業務処理システム、業務処理方法およびサーバプログラム
JP2003015870A (ja) * 2001-06-28 2003-01-17 Hitachi Software Eng Co Ltd Webアプリケーション開発方法および開発支援装置
JP2004533075A (ja) * 2001-06-11 2004-10-28 ビーイーエイ システムズ, インコーポレイテッド サーバーセキュリティ及び権限付与処理のためのシステム及びその方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172646A (ja) * 1998-12-04 2000-06-23 Toshiba Corp アプリケーション機能指定装置及び記憶媒体
JP2000354126A (ja) * 1999-06-10 2000-12-19 Toshiba Tec Corp 画像処理システム
JP2004533075A (ja) * 2001-06-11 2004-10-28 ビーイーエイ システムズ, インコーポレイテッド サーバーセキュリティ及び権限付与処理のためのシステム及びその方法
JP2002373148A (ja) * 2001-06-13 2002-12-26 Junya Kurahashi 業務処理システム、業務処理方法およびサーバプログラム
JP2003015870A (ja) * 2001-06-28 2003-01-17 Hitachi Software Eng Co Ltd Webアプリケーション開発方法および開発支援装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150632A (ja) * 2010-01-25 2011-08-04 Nec System Technologies Ltd ファイル生成システムおよびファイル生成方法
WO2014020754A1 (ja) * 2012-08-03 2014-02-06 東芝三菱電機産業システム株式会社 プラント制御監視システム
US9939793B2 (en) 2012-08-03 2018-04-10 Toshiba Mitsubishi-Electric Industrial Systems Corporation Plant control monitoring system
CN104408362A (zh) * 2014-10-29 2015-03-11 深圳市东信时代信息技术有限公司 权限管理系统及方法

Similar Documents

Publication Publication Date Title
US9875117B2 (en) Management of multiple instances of legacy application tasks
US7996850B2 (en) Dynamic business object properties for SOA architectures
US10025758B2 (en) Support for non-native file types in web application environment
US20110154226A1 (en) Chip model of an extensible plug-in architecture for enterprise mashups
JP5789624B2 (ja) イベント管理用のシステムおよび方法
US7933871B2 (en) Discovering and updating templates
US8543973B2 (en) Method and system for providing authentication schemes for web services
JP6775013B2 (ja) データテーブルを共有するためのサポートを有する構成の自己記述
US8904363B2 (en) Projecting software and data onto client
EP1430416A1 (en) Method, apparatus, and system for implementing a framework to suppport a web-based application
WO2011066434A2 (en) Client-server input method editor architecture
US9753737B2 (en) Declarative attribute security using custom properties
US7603624B2 (en) System and method for styling content in a graphical user interface control
EP1851982A1 (en) Mobile device having extensible software for presenting server-side applications, software and methods
US20080288918A1 (en) Web service tool based on business object layer
US20060265359A1 (en) Flexible data-bound user interfaces
JP4695903B2 (ja) Webアプリケーションシステム、そのプログラム
JP2006268125A (ja) アプリケーションサーバ、そのプログラム
US8719704B2 (en) Seamless integration of additional functionality into enterprise software without customization or apparent alteration of same
JP2013200844A (ja) 画面制御システム、画面制御プログラム、画面作成支援プログラム及び画面制御方法
US20040128668A1 (en) Application package device, method and program for customizing application package
JP2004334464A (ja) ユーザインタフェース対応プログラム生成装置、およびユーザインタフェース対応プログラム生成方法、並びにコンピュータ・プログラム
US20240220063A1 (en) User interface for searching and generating graphical objects using document nodes within a content collaboration platform
US20240220486A1 (en) User interface for formulating structured queries and generating graphical objects within a content collaboration platform
Sauter et al. Extending the MVC design pattern towards a task-oriented development approach for pervasive computing applications

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20110422

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110705