JP2004246401A - Webアプリケーションサーバシステムとコンピュータプログラム - Google Patents
Webアプリケーションサーバシステムとコンピュータプログラム Download PDFInfo
- Publication number
- JP2004246401A JP2004246401A JP2003032412A JP2003032412A JP2004246401A JP 2004246401 A JP2004246401 A JP 2004246401A JP 2003032412 A JP2003032412 A JP 2003032412A JP 2003032412 A JP2003032412 A JP 2003032412A JP 2004246401 A JP2004246401 A JP 2004246401A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data structure
- client
- tag element
- application server
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】HTMLデータとビジネスコンポーネントならびにJSPとの間での構造的な依存関係を緩和して、各々単独での変更の自由度を高めることのできるWebアプリケーションサーバシステムを提供する。
【解決手段】HTMLデータ11とビジネスコンポーネント16により処理可能なデータ構造であるデータセット15との双方向の変換ルール14を用意する。WebブラウザはHTML画面に対してユーザが入力したテキストデータをタグ要素の内容として含むHTTPリクエスト12を生成しアプリケーションサーバ3に引き渡す。アプリケーションサーバはHTTPリクエスト内のタグ要素の内容を変換ルールに従って処理対象データセット15に変換する。JSP18はビジネスコンポーネントの処理結果を格納した処理結果データセット17を基に変換ルールに従ってリクエスト元のクライアント1にレスポンスとして引き渡すHTMLデータ11を生成する。
【選択図】 図2
【解決手段】HTMLデータ11とビジネスコンポーネント16により処理可能なデータ構造であるデータセット15との双方向の変換ルール14を用意する。WebブラウザはHTML画面に対してユーザが入力したテキストデータをタグ要素の内容として含むHTTPリクエスト12を生成しアプリケーションサーバ3に引き渡す。アプリケーションサーバはHTTPリクエスト内のタグ要素の内容を変換ルールに従って処理対象データセット15に変換する。JSP18はビジネスコンポーネントの処理結果を格納した処理結果データセット17を基に変換ルールに従ってリクエスト元のクライアント1にレスポンスとして引き渡すHTMLデータ11を生成する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、WWW(World Wide Web)上で利用可能なアプリケーションを動作させるWebアプリケーションサーバシステムとコンピュータプログラムに関する。
【0002】
【従来の技術】
Webにより急速な発展を遂げたネットワークは学校や企業へは勿論、家庭にも普及し、これに伴いWebブラウザから利用するWebアプリケーションサーバシステムの需要が企業の基幹業務アプリケーションを中心に高まっている。Webアプリケーションサーバシステムの開発コストを抑える手法としてフレームワークがある。フレームワークとは、Webアプリケーションサーバシステムを提供する側の共通部分を再利用し、アプリケーションに依存する部分をカスタマイズすることによって目的のWebシステムを効率的に構築するための枠組みやシステム構造(アーキテクチャ)を指すものである。
【0003】
図7にWebアプリケーションサーバシステムを構築する一般的なフレームワークの構成を示す。同図に示すように、Webブラウザであるクライアント71は、表示されているHTML画面に対するユーザからの入力データによりHTTPリクエスト72を作成し、Webサーバ70へ送る。Webサーバ70はHTTPリクエスト72をアプリケーションサーバ76に引き渡す。
【0004】
アプリケーションサーバ76では、渡されたHTTPリクエスト72が、ビジネスロジックを実装したビジネスコンポーネント73に引き渡される。ビジネスコンポーネント73は渡されたHTTPリクエスト72を解析し、ユーザからの入力データをもとにビジネスロジックを実行し、結果をデータセット74に格納する。データセット74はJSP75にてHTMLデータに変換され、Webサーバ70を通じてクライアント71に戻される。
【0005】
しかしながら、このフレームワークでは、クライアント71から渡されるHTTPリクエスト72をビジネスコンポーネント73が直接解析し処理するため、WebブラウザがHTTPリクエスト72を生成するための前提となるHTMLデータとビジネスコンポーネント73とは構造的に密接な関係を有するものとなり、どちらか一方の変更が他方に影響を及ぼすために、変更の自由度が大きく制限されていた。また、JSP75は、ビジネスコンポーネント73の処理結果を格納したデータセット74をもとに、クライアント71にレスポンスとして返すHTMLデータを生成するため、やはりWebブラウザがHTTPリクエスト72を生成するための前提となるHTMLデータの変更の影響を受けるという問題があった。
【0006】
本発明に関係する公知文献としては、特許文献1には、フレームワークを用いたWebシステムの構築に関する技術が開示されている。また、特許文献2には、クライアントとサーバとの間に設けられたコミュニケーション・マネージャにおいて、クライアントとサーバとの間でのデータ表記形式などの整合をとることで、クライアントとサーバ間での対話を効率的に進める技術が開示されている。
【0007】
【特許文献1】
特開2002−215394号公報
【特許文献2】
特開平07−295929号公報
【0008】
【発明が解決しようとする課題】
上述したように、従来のWebアプリケーションサーバシステムでは、WebブラウザがHTTPリクエストを生成するための前提となるHTMLデータとビジネスコンポーネントとの間には構造的な整合性がとれていることが必要となる。このため、HTMLデータとビジネスコンポーネントは、それぞれを単独に変更することができないという制約を与えられていた。また、これと同様の制約が、クライアントにレスポンスとして返すHTMLデータを生成するJSPにおいても存在していた。このような課題やその解決手段は上記引用文献には記載も示唆もされていない。
【0009】
本発明はこのような課題を解決するためになされたもので、HTMLデータとビジネスコンポーネントならびにJSPとの間での構造的な依存関係を緩和して、各々単独での変更の自由度を高めることのできるWebアプリケーションサーバシステムとコンピュータプログラムの提供を目的とする。
【0010】
【課題を解決するための手段】
かかる目的を達成するために、本発明のWebアプリケーションサーバシステムは、クライアントのWebブラウザによって表示処理可能な第1のデータ構造と、ビジネスロジックを実装したコンポーネントによって処理可能な第2のデータ構造との変換ルールに従って、前記クライアントのWebブラウザから引き渡された前記第1のデータ構造によるリクエストの内容を前記第2のデータ構造に変換する第1の変換手段と、前記第1の変換手段によって生成された前記第2のデータ構造に対する前記コンポーネントによる処理を実行する処理実行手段と、前記処理実行手段の処理結果を前記変換ルールに従って前記第1のデータ構造に変換し、前記クライアントのWebブラウザにレスポンスとして返す第2の変換手段とを具備することを特徴とする。
【0011】
また、本発明は、前記第1のデータ構造が、タグ要素の内容と、このタグ要素の名前の情報と、前記タグ要素の内容の属性の情報とを含むタグ要素を有するテキスト形式のデータからなり、前記第1の変換手段は、前記クライアントのWebブラウザから引き渡されたリクエストに含まれる前記タグ要素の内容を、当該タグ要素の内容の属性の情報をキーに前記変換ルールを参照して前記コンポーネントによって処理可能な形式のデータに変換し、この変換されたデータと、前記リクエストに含まれる前記タグ要素の名前と、前記タグ要素の内容の属性の情報とを用いて前記第2のデータ構造を生成することを特徴とする。
【0012】
この発明により、クライアントのWebブラウザがHTTPリクエストを生成するための前提となるHTMLデータと、ビジネスコンポーネント、ならびにたとえばJSPなどの第2の変換手段との構造的な依存関係を緩和することができ、各々単独での変更の自由度を高めることができる。
【0013】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。
【0014】
図1は本発明が適用される典型的なWebアプリケーションサーバシステムの構成を示す図である。
【0015】
同図に示すように、このWebアプリケーションサーバシステム100は、クライアント1からのHTTP(Hyper Text Transfer Protocol)リクエストを受け、レスポンスをリクエスト元のクライアント1に返すWebサーバ2と、Webサーバ2を介してクライアント1から渡されたHTTPリクエストに対して業務処理を実行し、その結果をWebサーバ2に返すアプリケーションサーバ3と、アプリケーションサーバ3からのトランザクションを実行してその結果をアプリケーションサーバ3に応答するデータベースサーバ4とを有する。
【0016】
クライアント1は、具体的には、PC(Personal Computer)、PDA(Personal Digital(Data)Assistants) 、携帯電話、その他インターネットへの接続機能とWebブラウザとを有する端末装置であり、その具体的なハードウェア構成は後述のコンピュータシステムと同等である。
【0017】
Webサーバ2、アプリケーションサーバ3およびデータベースサーバ4には、ワークステーションや、これと同等の性能を有したPCなどが用いられる。これらのサーバ2,3,4は一台もしくは複数台のコンピュータシステム上で稼動する。コンピュータシステムは、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、入力デバイス、表示デバイス、ストレージデバイス、通信デバイスなどを備えて構成される。ストレージデバイスは、CPUにより実行されるアプリケーションサーバ用の各種のプログラムやデータを蓄積しておくための大容量の記憶装置であり、たとえばハードディスク装置などである。
【0018】
図2は、このWebアプリケーションサーバシステム100のフレームワークの構成を示す図である。
【0019】
クライアント1は、Webブラウザによって第1のデータ構造であるHTMLデータ11を解析して表示処理を行い、この表示されたHTML画面に対してユーザから入力されたデータをタグ要素の内容として付加したテキストベースのHTTPリクエスト12を生成し、Webサーバ2へ送る。
【0020】
アプリケーションサーバ3は、ソフトウェアとして、第1の変換手段であるリクエスト変換部13、変換ルール14、処理対象データセット15、ビジネスコンポーネント16、処理結果データセット17、および第2の変換手段であるJSP18などを有している。
【0021】
リクエスト変換部13は、Webサーバ2を介してクライアント1から引き渡されたHTTPリクエスト12に含まれるタグ要素の内容であるテキスト形式のデータを、変換ルール14に従って、ビジネスコンポーネント16が処理可能な形式のデータを含む第2のデータ構造である処理対象データセット15に変換する。
【0022】
変換ルール14は、第1のデータ構造であるHTMLデータ11とビジネスコンポーネント16が処理可能な第2のデータ構造である処理対象データセット15との双方向の変換規則である関数の集まりである。
【0023】
処理対象データセット15は、ビジネスコンポーネント16が処理可能なデータを保持しておくための入れ物である。
【0024】
ビジネスコンポーネント16は、アプリケーションサーバ3で実行されるアプリケーション(図示せず)によって呼び出されるビジネスロジックなどを実装したソフトウェア部品である。例として、Sun Microsystems社が提唱している規約であるEJB(Enterprise Java(登録商標) Beans)などがある。
【0025】
処理結果データセット17は、ビジネスコンポーネント16による処理結果を保持しておくための入れ物である。
【0026】
JSP18は、処理結果データセット17を基に変換ルール14に従って、リクエスト元のクライアント1のWebブラウザにレスポンスとして引き渡すHTMLデータ11を生成し、Webサーバ2を介してクライアント1のWebブラウザにそのHTMLデータ11を引き渡す。この機能はJSPのみで実装可能であるが、共通的に利用する処理はタグライブラリとして複数のJSPから呼び出せる構造にしておくことも可能である。
【0027】
次に、この実施形態のWebアプリケーションサーバシステム100の動作を説明する。
【0028】
図3はクライアント1のWebブラウザにより表示されたHTML画面21とそのソースであるHTMLデータ11の例を示すものである。
【0029】
同図に示すように、このHTMLデータ11には、2つの<Table>要素22,25が存在し、それぞれの<Table>要素22,25の下位に<Tr>要素23,26が存在し、さらにそれらの<Tr>要素23,26の下位に、HTML画面に対してユーザより入力されたテキストデータがタグ要素の内容として挿入される<Td>要素24,27が存在する。
【0030】
また、個々のタグ要素にはそれぞれid属性、name属性などによるタグ要素の名前と、attr属性やtype属性などによるタグ要素の内容の属性が付与されている。タグ要素の名前にはタグ要素間の階層関係を判別可能な表記方法が定められている。たとえばタグ要素の名前として、図3の例では”LIST1”、”LIST1_ROW1”、”LIST1_ROW1_FIELD1”などの名前が使われており、これらの名前は”_”によってタグ要素間の階層を表現している。
【0031】
クライアント1のWebブラウザは、Webサーバ2よりダウンロードした第1のデータ構造であるHTMLデータ11を解析して表示処理を行い、この表示されたHTML画面に対してユーザより入力されたテキストデータを、タグ要素の内容として含むHTTPリクエスト12を生成してWebサーバ2へ引き渡す。
【0032】
ここで、HTTPリクエスト12の生成は、たとえば以下のようにして行われる。図4は、図3のHTMLデータ11からHTTPリクエストを生成する具体例を示す図である。
【0033】
クライアント1のWebブラウザは、HTMLデータ11の中のタグ要素の名前32と、タグ要素の内容の属性33と、表示されたHTML画面のテーブルに対してユーザより入力されたテキストデータであるタグ要素の内容34とを一つのレコードとした一覧表31を作成して、これをHTTPリクエスト12に含めてWebサーバ2に引き渡す。
【0034】
Webサーバ2は、クライアント1から渡されたHTTPリクエスト12の内容をアプリケーションサーバ3に渡す。
【0035】
アプリケーションサーバ3は、リクエスト変換部13にて、Webサーバ2を介してクライアント1から引き渡されたHTTPリクエスト12に含まれるタグ要素の内容であるテキストデータを、変換ルール14に従って、ビジネスコンポーネント16が処理可能な形式のデータを含む第2のデータ構造である処理対象データセット15に変換する。
【0036】
ここで、HTTPリクエスト12から処理対象データセット15への変換は、たとえば以下のように行われる。
【0037】
図5は、HTTPリクエスト12から処理対象データセット15への変換の仕組みを示している。リクエスト変換部13は変換ルール14に従って、HTTPリクエスト12に含まれる個々のレコード12A,12B,12Cについて、タグ要素の内容の属性33の値を調べ、この属性33の値に対応付けられているデータ変換プログラムを呼び出す。
【0038】
データ変換プログラムとしては、たとえば、文字(STRING型)と数字(INTEGER型)との相互変換を行うプログラム41、特定のオブジェクトを指定するコードとオブジェクトの実体との相互変換を行うプログラム42、文字を日本語と英語との間で相互変換するプログラム43などがある。
【0039】
図5のHTTPリクエスト12の第1のレコード12Aでは、タグ要素のattr属性として”name”が、type属性として”STRING”が指定されている。この場合は、名前を表すテキストデータを日本語と英語との間で相互変換するプログラム43を呼び出すことによって、タグ要素の内容34である”鈴木”の日本語文字が、ビジネスコンポーネント16が処理可能な形式である”suzuki”という英語文字のデータ44に変換される。
【0040】
図5のHTTPリクエスト12の第2のレコード12Bでは、タグ要素のattr属性として”height”が、type属性として”INTEGER”が指定されている。この場合は、文字(STRING型)と数字(INTEGER型)との相互変換を行うプログラム41を呼び出すことによって、タグ要素の内容34である高さの値を示す”180”のテキストデータが、ビジネスコンポーネント16が処理可能なINTEGER型のデータ45に変換される。
【0041】
さらに、図5のHTTPリクエスト12の第3のレコード12Cでは、タグのattr属性として”code”が、type属性として”RelationDate”が指定されている。この場合は、特定のオブジェクトを指定するコードとオブジェクトの実体との相互変換を行うプログラム42を呼び出すことによって、タグ要素の内容である”2345678”のコードが、ビジネスコンポーネント16が処理可能なオブジェクトの実体46に変換される。具体的には、プログラム42は、オブジェクトの指定コードに対応するオブジェクトの実体の格納場所を示す情報を管理しており、リクエスト変換部13に対して格納場所を返すことによって、リクエスト変換部13がその格納場所からオブジェクトを読み出す。
【0042】
このようにしてWebサーバ2を介してクライアント1から引き渡されたHTTPリクエスト12に含まれるタグ要素の内容であるテキスト形式のデータがビジネスコンポーネント16によって処理可能な形式のデータに変換され、処理対象データセット15に格納される。
【0043】
図6は、このようにして生成された処理対象データセット15の構成を階層的に表したものである。同図に示すように、処理対象データセット15は、データセット名51、タグ要素の名前52,53、ビジネスコンポーネント16が処理可能な形式のデータであるオブジェクト54,55、およびオブジェクトの属性データ56,57,58,59,60で構成される。タグ要素の名前52,53は個々のオブジェクト54,55をビジネスコンポーネント16が識別するための情報であり、オブジェクトの属性データ56,57,58,59,60はビジネスコンポーネント16が個々のオブジェクト54,55のたとえばデータ型などの属性を識別するための情報である。
【0044】
次に、処理対象データセット15はビジネスコンポーネント16に引き渡される。ビジネスコンポーネント16は処理対象データセット15を利用して、自らに実装されたビジネスロジックを実行する。
【0045】
ビジネスコンポーネント16の処理結果は処理結果データセット17に格納される。この処理結果データセット17はたとえばビジネスコンポーネント16の入力となった処理対象データセット15に処理結果を追加したものである。
【0046】
JSP18は、処理結果データセット17を基に変換ルール14に従って、リクエスト元のクライアント1のWebブラウザにレスポンスとして引き渡すHTMLデータ11を生成し、Webサーバ2を介してクライアント1のWebブラウザにそのHTMLデータ11を引き渡す。
【0047】
クライアント1のWebブラウザは、Webサーバ2より引き渡されたHTMLデータ11を解析して、新たなHTML画面を表示する。このHTML画面に対して再びユーザからのデータが入力されることになる。この処理を繰り返すことにより、クライアント1とビジネスコンポーネント16との間での情報のやり取りが繰り返される。
【0048】
このように、本実施形態のWebアプリケーションサーバシステム100によれば、HTMLデータ11とビジネスコンポーネント16ならびにJSP18との依存関係を軽減することができ、互いの変更の影響を最小限に抑えることができる。たとえば、HTMLデータ11において、ある属性やデータ型のデータを入力させるテーブルの位置を変更しても、この変更が処理対象データセット15の内容に影響することはなく、したがって、ビジネスコンポーネント16およびJSP18をHTMLデータ11の変更に合わせて変更する必要は生じない。
【0049】
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【0050】
たとえば、上記実施形態では、アプリケーションサーバ3に、リクエスト変換部13、変換ルール14、JSP18を持たせたが、その一部あるいはすべてをWebサーバ2に持たせるようにしてもよい。
【0051】
【発明の効果】
以上説明したように、本発明によれば、クライアントのWebブラウザがHTTPリクエストを生成するための前提となるHTML画面と、ビジネスコンポーネントならびにJSPなどの第2の変換手段との構造的な依存関係を緩和することができ、各々単独での変更の自由度を高めることができる。
【図面の簡単な説明】
【図1】本発明が適用される典型的なWebアプリケーションサーバシステムの構成を示す図である。
【図2】図1のWebアプリケーションサーバシステムを構築するフレームワークの構成を示す図である。
【図3】HTML画面とそのソースであるHTMLデータの例を示す図である。
【図4】HTTPリクエストの生成の方法を示す図である。
【図5】HTTPリクエストからデータセットへの変換の仕組みを示ず図である。
【図6】データセットの構成を示す図である。
【図7】Webアプリケーションサーバシステムを構築する一般的なフレームワークの構成を示す図である。
【符号の説明】
1・・・・クライアント、2・・・・Webサーバ、3・・・・アプリケーションサーバ、11・・・・HTMLデータ、12・・・・HTTPリクエスト、13・・・・リクエスト変換部、14・・・・変換ルール、15・・データセット、16・・・・ビジネスコンポーネント、17・・・・処理結果データセット、21・・・・HTML画面、32・・・・タグ要素の名前、33・・・・タグ要素の内容の属性、34・・・・タグ要素の内容、22,23,24,25,26,27・・・・タグ要素、100・・・・Webアプリケーションサーバシステム。
【発明の属する技術分野】
本発明は、WWW(World Wide Web)上で利用可能なアプリケーションを動作させるWebアプリケーションサーバシステムとコンピュータプログラムに関する。
【0002】
【従来の技術】
Webにより急速な発展を遂げたネットワークは学校や企業へは勿論、家庭にも普及し、これに伴いWebブラウザから利用するWebアプリケーションサーバシステムの需要が企業の基幹業務アプリケーションを中心に高まっている。Webアプリケーションサーバシステムの開発コストを抑える手法としてフレームワークがある。フレームワークとは、Webアプリケーションサーバシステムを提供する側の共通部分を再利用し、アプリケーションに依存する部分をカスタマイズすることによって目的のWebシステムを効率的に構築するための枠組みやシステム構造(アーキテクチャ)を指すものである。
【0003】
図7にWebアプリケーションサーバシステムを構築する一般的なフレームワークの構成を示す。同図に示すように、Webブラウザであるクライアント71は、表示されているHTML画面に対するユーザからの入力データによりHTTPリクエスト72を作成し、Webサーバ70へ送る。Webサーバ70はHTTPリクエスト72をアプリケーションサーバ76に引き渡す。
【0004】
アプリケーションサーバ76では、渡されたHTTPリクエスト72が、ビジネスロジックを実装したビジネスコンポーネント73に引き渡される。ビジネスコンポーネント73は渡されたHTTPリクエスト72を解析し、ユーザからの入力データをもとにビジネスロジックを実行し、結果をデータセット74に格納する。データセット74はJSP75にてHTMLデータに変換され、Webサーバ70を通じてクライアント71に戻される。
【0005】
しかしながら、このフレームワークでは、クライアント71から渡されるHTTPリクエスト72をビジネスコンポーネント73が直接解析し処理するため、WebブラウザがHTTPリクエスト72を生成するための前提となるHTMLデータとビジネスコンポーネント73とは構造的に密接な関係を有するものとなり、どちらか一方の変更が他方に影響を及ぼすために、変更の自由度が大きく制限されていた。また、JSP75は、ビジネスコンポーネント73の処理結果を格納したデータセット74をもとに、クライアント71にレスポンスとして返すHTMLデータを生成するため、やはりWebブラウザがHTTPリクエスト72を生成するための前提となるHTMLデータの変更の影響を受けるという問題があった。
【0006】
本発明に関係する公知文献としては、特許文献1には、フレームワークを用いたWebシステムの構築に関する技術が開示されている。また、特許文献2には、クライアントとサーバとの間に設けられたコミュニケーション・マネージャにおいて、クライアントとサーバとの間でのデータ表記形式などの整合をとることで、クライアントとサーバ間での対話を効率的に進める技術が開示されている。
【0007】
【特許文献1】
特開2002−215394号公報
【特許文献2】
特開平07−295929号公報
【0008】
【発明が解決しようとする課題】
上述したように、従来のWebアプリケーションサーバシステムでは、WebブラウザがHTTPリクエストを生成するための前提となるHTMLデータとビジネスコンポーネントとの間には構造的な整合性がとれていることが必要となる。このため、HTMLデータとビジネスコンポーネントは、それぞれを単独に変更することができないという制約を与えられていた。また、これと同様の制約が、クライアントにレスポンスとして返すHTMLデータを生成するJSPにおいても存在していた。このような課題やその解決手段は上記引用文献には記載も示唆もされていない。
【0009】
本発明はこのような課題を解決するためになされたもので、HTMLデータとビジネスコンポーネントならびにJSPとの間での構造的な依存関係を緩和して、各々単独での変更の自由度を高めることのできるWebアプリケーションサーバシステムとコンピュータプログラムの提供を目的とする。
【0010】
【課題を解決するための手段】
かかる目的を達成するために、本発明のWebアプリケーションサーバシステムは、クライアントのWebブラウザによって表示処理可能な第1のデータ構造と、ビジネスロジックを実装したコンポーネントによって処理可能な第2のデータ構造との変換ルールに従って、前記クライアントのWebブラウザから引き渡された前記第1のデータ構造によるリクエストの内容を前記第2のデータ構造に変換する第1の変換手段と、前記第1の変換手段によって生成された前記第2のデータ構造に対する前記コンポーネントによる処理を実行する処理実行手段と、前記処理実行手段の処理結果を前記変換ルールに従って前記第1のデータ構造に変換し、前記クライアントのWebブラウザにレスポンスとして返す第2の変換手段とを具備することを特徴とする。
【0011】
また、本発明は、前記第1のデータ構造が、タグ要素の内容と、このタグ要素の名前の情報と、前記タグ要素の内容の属性の情報とを含むタグ要素を有するテキスト形式のデータからなり、前記第1の変換手段は、前記クライアントのWebブラウザから引き渡されたリクエストに含まれる前記タグ要素の内容を、当該タグ要素の内容の属性の情報をキーに前記変換ルールを参照して前記コンポーネントによって処理可能な形式のデータに変換し、この変換されたデータと、前記リクエストに含まれる前記タグ要素の名前と、前記タグ要素の内容の属性の情報とを用いて前記第2のデータ構造を生成することを特徴とする。
【0012】
この発明により、クライアントのWebブラウザがHTTPリクエストを生成するための前提となるHTMLデータと、ビジネスコンポーネント、ならびにたとえばJSPなどの第2の変換手段との構造的な依存関係を緩和することができ、各々単独での変更の自由度を高めることができる。
【0013】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。
【0014】
図1は本発明が適用される典型的なWebアプリケーションサーバシステムの構成を示す図である。
【0015】
同図に示すように、このWebアプリケーションサーバシステム100は、クライアント1からのHTTP(Hyper Text Transfer Protocol)リクエストを受け、レスポンスをリクエスト元のクライアント1に返すWebサーバ2と、Webサーバ2を介してクライアント1から渡されたHTTPリクエストに対して業務処理を実行し、その結果をWebサーバ2に返すアプリケーションサーバ3と、アプリケーションサーバ3からのトランザクションを実行してその結果をアプリケーションサーバ3に応答するデータベースサーバ4とを有する。
【0016】
クライアント1は、具体的には、PC(Personal Computer)、PDA(Personal Digital(Data)Assistants) 、携帯電話、その他インターネットへの接続機能とWebブラウザとを有する端末装置であり、その具体的なハードウェア構成は後述のコンピュータシステムと同等である。
【0017】
Webサーバ2、アプリケーションサーバ3およびデータベースサーバ4には、ワークステーションや、これと同等の性能を有したPCなどが用いられる。これらのサーバ2,3,4は一台もしくは複数台のコンピュータシステム上で稼動する。コンピュータシステムは、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、入力デバイス、表示デバイス、ストレージデバイス、通信デバイスなどを備えて構成される。ストレージデバイスは、CPUにより実行されるアプリケーションサーバ用の各種のプログラムやデータを蓄積しておくための大容量の記憶装置であり、たとえばハードディスク装置などである。
【0018】
図2は、このWebアプリケーションサーバシステム100のフレームワークの構成を示す図である。
【0019】
クライアント1は、Webブラウザによって第1のデータ構造であるHTMLデータ11を解析して表示処理を行い、この表示されたHTML画面に対してユーザから入力されたデータをタグ要素の内容として付加したテキストベースのHTTPリクエスト12を生成し、Webサーバ2へ送る。
【0020】
アプリケーションサーバ3は、ソフトウェアとして、第1の変換手段であるリクエスト変換部13、変換ルール14、処理対象データセット15、ビジネスコンポーネント16、処理結果データセット17、および第2の変換手段であるJSP18などを有している。
【0021】
リクエスト変換部13は、Webサーバ2を介してクライアント1から引き渡されたHTTPリクエスト12に含まれるタグ要素の内容であるテキスト形式のデータを、変換ルール14に従って、ビジネスコンポーネント16が処理可能な形式のデータを含む第2のデータ構造である処理対象データセット15に変換する。
【0022】
変換ルール14は、第1のデータ構造であるHTMLデータ11とビジネスコンポーネント16が処理可能な第2のデータ構造である処理対象データセット15との双方向の変換規則である関数の集まりである。
【0023】
処理対象データセット15は、ビジネスコンポーネント16が処理可能なデータを保持しておくための入れ物である。
【0024】
ビジネスコンポーネント16は、アプリケーションサーバ3で実行されるアプリケーション(図示せず)によって呼び出されるビジネスロジックなどを実装したソフトウェア部品である。例として、Sun Microsystems社が提唱している規約であるEJB(Enterprise Java(登録商標) Beans)などがある。
【0025】
処理結果データセット17は、ビジネスコンポーネント16による処理結果を保持しておくための入れ物である。
【0026】
JSP18は、処理結果データセット17を基に変換ルール14に従って、リクエスト元のクライアント1のWebブラウザにレスポンスとして引き渡すHTMLデータ11を生成し、Webサーバ2を介してクライアント1のWebブラウザにそのHTMLデータ11を引き渡す。この機能はJSPのみで実装可能であるが、共通的に利用する処理はタグライブラリとして複数のJSPから呼び出せる構造にしておくことも可能である。
【0027】
次に、この実施形態のWebアプリケーションサーバシステム100の動作を説明する。
【0028】
図3はクライアント1のWebブラウザにより表示されたHTML画面21とそのソースであるHTMLデータ11の例を示すものである。
【0029】
同図に示すように、このHTMLデータ11には、2つの<Table>要素22,25が存在し、それぞれの<Table>要素22,25の下位に<Tr>要素23,26が存在し、さらにそれらの<Tr>要素23,26の下位に、HTML画面に対してユーザより入力されたテキストデータがタグ要素の内容として挿入される<Td>要素24,27が存在する。
【0030】
また、個々のタグ要素にはそれぞれid属性、name属性などによるタグ要素の名前と、attr属性やtype属性などによるタグ要素の内容の属性が付与されている。タグ要素の名前にはタグ要素間の階層関係を判別可能な表記方法が定められている。たとえばタグ要素の名前として、図3の例では”LIST1”、”LIST1_ROW1”、”LIST1_ROW1_FIELD1”などの名前が使われており、これらの名前は”_”によってタグ要素間の階層を表現している。
【0031】
クライアント1のWebブラウザは、Webサーバ2よりダウンロードした第1のデータ構造であるHTMLデータ11を解析して表示処理を行い、この表示されたHTML画面に対してユーザより入力されたテキストデータを、タグ要素の内容として含むHTTPリクエスト12を生成してWebサーバ2へ引き渡す。
【0032】
ここで、HTTPリクエスト12の生成は、たとえば以下のようにして行われる。図4は、図3のHTMLデータ11からHTTPリクエストを生成する具体例を示す図である。
【0033】
クライアント1のWebブラウザは、HTMLデータ11の中のタグ要素の名前32と、タグ要素の内容の属性33と、表示されたHTML画面のテーブルに対してユーザより入力されたテキストデータであるタグ要素の内容34とを一つのレコードとした一覧表31を作成して、これをHTTPリクエスト12に含めてWebサーバ2に引き渡す。
【0034】
Webサーバ2は、クライアント1から渡されたHTTPリクエスト12の内容をアプリケーションサーバ3に渡す。
【0035】
アプリケーションサーバ3は、リクエスト変換部13にて、Webサーバ2を介してクライアント1から引き渡されたHTTPリクエスト12に含まれるタグ要素の内容であるテキストデータを、変換ルール14に従って、ビジネスコンポーネント16が処理可能な形式のデータを含む第2のデータ構造である処理対象データセット15に変換する。
【0036】
ここで、HTTPリクエスト12から処理対象データセット15への変換は、たとえば以下のように行われる。
【0037】
図5は、HTTPリクエスト12から処理対象データセット15への変換の仕組みを示している。リクエスト変換部13は変換ルール14に従って、HTTPリクエスト12に含まれる個々のレコード12A,12B,12Cについて、タグ要素の内容の属性33の値を調べ、この属性33の値に対応付けられているデータ変換プログラムを呼び出す。
【0038】
データ変換プログラムとしては、たとえば、文字(STRING型)と数字(INTEGER型)との相互変換を行うプログラム41、特定のオブジェクトを指定するコードとオブジェクトの実体との相互変換を行うプログラム42、文字を日本語と英語との間で相互変換するプログラム43などがある。
【0039】
図5のHTTPリクエスト12の第1のレコード12Aでは、タグ要素のattr属性として”name”が、type属性として”STRING”が指定されている。この場合は、名前を表すテキストデータを日本語と英語との間で相互変換するプログラム43を呼び出すことによって、タグ要素の内容34である”鈴木”の日本語文字が、ビジネスコンポーネント16が処理可能な形式である”suzuki”という英語文字のデータ44に変換される。
【0040】
図5のHTTPリクエスト12の第2のレコード12Bでは、タグ要素のattr属性として”height”が、type属性として”INTEGER”が指定されている。この場合は、文字(STRING型)と数字(INTEGER型)との相互変換を行うプログラム41を呼び出すことによって、タグ要素の内容34である高さの値を示す”180”のテキストデータが、ビジネスコンポーネント16が処理可能なINTEGER型のデータ45に変換される。
【0041】
さらに、図5のHTTPリクエスト12の第3のレコード12Cでは、タグのattr属性として”code”が、type属性として”RelationDate”が指定されている。この場合は、特定のオブジェクトを指定するコードとオブジェクトの実体との相互変換を行うプログラム42を呼び出すことによって、タグ要素の内容である”2345678”のコードが、ビジネスコンポーネント16が処理可能なオブジェクトの実体46に変換される。具体的には、プログラム42は、オブジェクトの指定コードに対応するオブジェクトの実体の格納場所を示す情報を管理しており、リクエスト変換部13に対して格納場所を返すことによって、リクエスト変換部13がその格納場所からオブジェクトを読み出す。
【0042】
このようにしてWebサーバ2を介してクライアント1から引き渡されたHTTPリクエスト12に含まれるタグ要素の内容であるテキスト形式のデータがビジネスコンポーネント16によって処理可能な形式のデータに変換され、処理対象データセット15に格納される。
【0043】
図6は、このようにして生成された処理対象データセット15の構成を階層的に表したものである。同図に示すように、処理対象データセット15は、データセット名51、タグ要素の名前52,53、ビジネスコンポーネント16が処理可能な形式のデータであるオブジェクト54,55、およびオブジェクトの属性データ56,57,58,59,60で構成される。タグ要素の名前52,53は個々のオブジェクト54,55をビジネスコンポーネント16が識別するための情報であり、オブジェクトの属性データ56,57,58,59,60はビジネスコンポーネント16が個々のオブジェクト54,55のたとえばデータ型などの属性を識別するための情報である。
【0044】
次に、処理対象データセット15はビジネスコンポーネント16に引き渡される。ビジネスコンポーネント16は処理対象データセット15を利用して、自らに実装されたビジネスロジックを実行する。
【0045】
ビジネスコンポーネント16の処理結果は処理結果データセット17に格納される。この処理結果データセット17はたとえばビジネスコンポーネント16の入力となった処理対象データセット15に処理結果を追加したものである。
【0046】
JSP18は、処理結果データセット17を基に変換ルール14に従って、リクエスト元のクライアント1のWebブラウザにレスポンスとして引き渡すHTMLデータ11を生成し、Webサーバ2を介してクライアント1のWebブラウザにそのHTMLデータ11を引き渡す。
【0047】
クライアント1のWebブラウザは、Webサーバ2より引き渡されたHTMLデータ11を解析して、新たなHTML画面を表示する。このHTML画面に対して再びユーザからのデータが入力されることになる。この処理を繰り返すことにより、クライアント1とビジネスコンポーネント16との間での情報のやり取りが繰り返される。
【0048】
このように、本実施形態のWebアプリケーションサーバシステム100によれば、HTMLデータ11とビジネスコンポーネント16ならびにJSP18との依存関係を軽減することができ、互いの変更の影響を最小限に抑えることができる。たとえば、HTMLデータ11において、ある属性やデータ型のデータを入力させるテーブルの位置を変更しても、この変更が処理対象データセット15の内容に影響することはなく、したがって、ビジネスコンポーネント16およびJSP18をHTMLデータ11の変更に合わせて変更する必要は生じない。
【0049】
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【0050】
たとえば、上記実施形態では、アプリケーションサーバ3に、リクエスト変換部13、変換ルール14、JSP18を持たせたが、その一部あるいはすべてをWebサーバ2に持たせるようにしてもよい。
【0051】
【発明の効果】
以上説明したように、本発明によれば、クライアントのWebブラウザがHTTPリクエストを生成するための前提となるHTML画面と、ビジネスコンポーネントならびにJSPなどの第2の変換手段との構造的な依存関係を緩和することができ、各々単独での変更の自由度を高めることができる。
【図面の簡単な説明】
【図1】本発明が適用される典型的なWebアプリケーションサーバシステムの構成を示す図である。
【図2】図1のWebアプリケーションサーバシステムを構築するフレームワークの構成を示す図である。
【図3】HTML画面とそのソースであるHTMLデータの例を示す図である。
【図4】HTTPリクエストの生成の方法を示す図である。
【図5】HTTPリクエストからデータセットへの変換の仕組みを示ず図である。
【図6】データセットの構成を示す図である。
【図7】Webアプリケーションサーバシステムを構築する一般的なフレームワークの構成を示す図である。
【符号の説明】
1・・・・クライアント、2・・・・Webサーバ、3・・・・アプリケーションサーバ、11・・・・HTMLデータ、12・・・・HTTPリクエスト、13・・・・リクエスト変換部、14・・・・変換ルール、15・・データセット、16・・・・ビジネスコンポーネント、17・・・・処理結果データセット、21・・・・HTML画面、32・・・・タグ要素の名前、33・・・・タグ要素の内容の属性、34・・・・タグ要素の内容、22,23,24,25,26,27・・・・タグ要素、100・・・・Webアプリケーションサーバシステム。
Claims (3)
- クライアントのWebブラウザによって表示処理可能な第1のデータ構造と、ビジネスロジックを実装したコンポーネントによって処理可能な第2のデータ構造との変換ルールに従って、前記クライアントのWebブラウザから引き渡された前記第1のデータ構造によるリクエストの内容を前記第2のデータ構造に変換する第1の変換手段と、
前記第1の変換手段によって生成された前記第2のデータ構造に対する前記コンポーネントによる処理を実行する処理実行手段と、
前記処理実行手段の処理結果を前記変換ルールに従って前記第1のデータ構造に変換し、前記クライアントのWebブラウザにレスポンスとして返す第2の変換手段と
を具備することを特徴とするWebアプリケーションサーバシステム。 - 前記第1のデータ構造が、タグ要素の内容と、このタグ要素の名前の情報と、前記タグ要素の内容の属性の情報とを含むタグ要素を有するテキスト形式のデータからなり、前記第1の変換手段は、前記クライアントのWebブラウザから引き渡されたリクエストに含まれる前記タグ要素の内容を、当該タグ要素の内容の属性の情報をキーに前記変換ルールを参照して前記コンポーネントによって処理可能な形式のデータに変換し、この変換されたデータと、前記リクエストに含まれる前記タグ要素の名前と、前記タグ要素の内容の属性の情報とを用いて前記第2のデータ構造を生成することを特徴とする請求項1に記載のWebアプリケーションサーバシステム。
- クライアントのWebブラウザによって表示処理可能な第1のデータ構造と、ビジネスロジックを実装したコンポーネントによって処理可能な第2のデータ構造との変換ルールに従って、前記クライアントのWebブラウザから引き渡された前記第1のデータ構造によるリクエストの内容を前記第2のデータ構造に変換する第1の変換手段と、
前記第1の変換手段によって生成された前記第2のデータ構造に対する前記コンポーネントによる処理を実行する処理実行手段と、
前記処理実行手段の処理結果を前記変換ルールに従って前記第1のデータ構造に変換し、前記クライアントのWebブラウザにレスポンスとして返す第2の変換手段としてコンピュータを機能させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003032412A JP2004246401A (ja) | 2003-02-10 | 2003-02-10 | Webアプリケーションサーバシステムとコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003032412A JP2004246401A (ja) | 2003-02-10 | 2003-02-10 | Webアプリケーションサーバシステムとコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004246401A true JP2004246401A (ja) | 2004-09-02 |
Family
ID=33018766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003032412A Withdrawn JP2004246401A (ja) | 2003-02-10 | 2003-02-10 | Webアプリケーションサーバシステムとコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004246401A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053828A (zh) * | 2009-10-30 | 2011-05-11 | 株式会社东芝 | 信息处理装置、信息处理***以及信息处理方法 |
CN113158651A (zh) * | 2012-09-18 | 2021-07-23 | 株式会社野村综合研究所 | Web服务器***以及演示应用生成方法 |
-
2003
- 2003-02-10 JP JP2003032412A patent/JP2004246401A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053828A (zh) * | 2009-10-30 | 2011-05-11 | 株式会社东芝 | 信息处理装置、信息处理***以及信息处理方法 |
JP2011096112A (ja) * | 2009-10-30 | 2011-05-12 | Toshiba Corp | フレームワーク及び情報処理装置 |
CN113158651A (zh) * | 2012-09-18 | 2021-07-23 | 株式会社野村综合研究所 | Web服务器***以及演示应用生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rezayat | The enterprise-web portal for life-cycle support | |
US7904803B2 (en) | Method and system for converting user interface source code of a legacy application to web pages | |
Maximilien et al. | A domain-specific language for web apis and services mashups | |
AU2001293254B2 (en) | Accessing data stored at an intermediary from a service | |
AU2001290686B2 (en) | Customizing content provided by a service | |
US7127705B2 (en) | Developing applications online | |
AU2001291300B2 (en) | Providing content from multiple services | |
US8239830B2 (en) | System for portal architecture | |
JP2004334866A (ja) | タグリブを介するウェブサイトサマリの変換 | |
US20090100321A1 (en) | Universal contextual actions menu across windows applications | |
US20030177444A1 (en) | System for describing markup language for mobile use, and information processing apparatus and program for generating display content | |
EP1117220A1 (en) | Method and system for protocol conversion | |
US20040225724A1 (en) | RPC type SOAP service access via taglibs for dynamic web content | |
JP2014044743A (ja) | コンピュータプラットフォームのプログラミングインターフェース | |
JP2009199606A (ja) | 処理状態を把握するウェブ・ベースのコンピュータ・システムと方法 | |
AU2001293254A1 (en) | Accessing data stored at an intermediary from a service | |
AU2001295024A1 (en) | Developing applications online | |
EP1358546A2 (en) | System and method for building applications that adapt for multiple device and protocol standards | |
Ito et al. | A visual environment for dynamic web application composition | |
WO2010127552A1 (zh) | 面向服务的应用***及其通信方法、创建器和创建方法 | |
Kitayama et al. | Design of a framework for dynamic content adaptation to Web-enabled terminals and enterprise applications | |
JPWO2004021234A1 (ja) | ネットワークシステム、プロバイダ、管理サイト、リクエスタ及びプログラム | |
US20040225959A1 (en) | Appearance properties for web applications using TagLibs | |
WO2001048630A2 (en) | Client-server data communication system and method for data transfer between a server and different clients | |
WO2001075597A2 (en) | Efficient user interface for setting application program user preferences |
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: 20060509 |