JP4231087B2 - Web page screen display system and web page screen display method - Google Patents

Web page screen display system and web page screen display method Download PDF

Info

Publication number
JP4231087B2
JP4231087B2 JP2007310860A JP2007310860A JP4231087B2 JP 4231087 B2 JP4231087 B2 JP 4231087B2 JP 2007310860 A JP2007310860 A JP 2007310860A JP 2007310860 A JP2007310860 A JP 2007310860A JP 4231087 B2 JP4231087 B2 JP 4231087B2
Authority
JP
Japan
Prior art keywords
data
processing
html
web page
model
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
JP2007310860A
Other languages
Japanese (ja)
Other versions
JP2008112460A (en
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007310860A priority Critical patent/JP4231087B2/en
Publication of JP2008112460A publication Critical patent/JP2008112460A/en
Application granted granted Critical
Publication of JP4231087B2 publication Critical patent/JP4231087B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、企業の基幹業務などを処理するビジネスアプリケーションソフトウェアの開発効率と保守性を向上させる技術に関する。   The present invention relates to a technology for improving the development efficiency and maintainability of business application software that processes a company's core business.

企業業務におけるデータエントリシステム、ワークフローシステムなどのビジネスアプリケーションでは、図47に示すように、データベースサーバ5402の管理するデータを、クライアント5403からアプリケーションサーバ5401を介して操作する、という方式がとられてきた。近年、このようなビジネスアプリケーションはWebアプリケーションとして実現されるようになった。   In business applications such as a data entry system and a workflow system in an enterprise business, as shown in FIG. 47, a method of operating data managed by a database server 5402 from a client 5403 via an application server 5401 has been adopted. . In recent years, such business applications have been realized as Web applications.

そして、Webブラウザを制御する役割を果たすアプリケーションサーバ5401の開発には、従来より様々な試みがなされてきている。代表的なものとしてServlet(サーブレット)、JSP(Java(登録商標) Server Pages)を用いたアプリケーションサーバ5401がある。   Various attempts have been made to develop an application server 5401 that plays a role of controlling a Web browser. Typical examples include an application server 5401 using Servlet and JSP (Java (registered trademark) Server Pages).

Servletを用いたアプリケーションサーバ5401は、図48に示すように、画面表示を規定するHTML(Hyper Text Markup Language)5501、画面データ5502、ロジック5503(画面の入力のハンドリング、入力データのチェック、データの加工、データベースサーバ5402へのデータの伝達などを行う)を一つのモジュールとして記述して実現される。   As shown in FIG. 48, the application server 5401 using the Servlet has an HTML (Hyper Text Markup Language) 5501, screen data 5502, logic 5503 (screen input handling, input data check, data Processing, transmission of data to the database server 5402, etc.) are described as one module.

また、JSPを用いたアプリケーションサーバ5401は、図49に示すように、Java Bean(Java、Java Beansは、サンマイクロシステムズ・インコーポレーテッドの登録商標)というオブジェクトに格納された画面データ5602とHTML5601とロジック5603から成るモジュールとして記述するか、あるいは、HTML5601’からなるモジュールと、画面データ5602’とロジック5603’をJava Beanオブジェクトに格納するように記述して実現される。   As shown in FIG. 49, the application server 5401 using JSP has screen data 5602, HTML 5601, and logic stored in an object called Java Bean (Java, Java Beans is a registered trademark of Sun Microsystems, Inc.). It is described as a module composed of 5603, or is implemented by describing a module composed of HTML 5601 ′, screen data 5602 ′ and logic 5603 ′ so as to be stored in the Java Bean object.

一般にビジネスアプリケーションでは扱うデータが多量となるため、アプリケーションサーバ5401は、データ(画面データ)、ロジック、画面(HTML等)を各モジュールに分けて記述して実現し、それぞれのモジュールを再利用したいという要求がある。しかしながら、図48や図49に示したように、ServletやJSP等の従来技術を用いたアプリケーションサーバ5401では、これらのモジュールの分離が困難であった。   In general, business applications handle a large amount of data. Therefore, the application server 5401 realizes that data (screen data), logic, and screen (HTML, etc.) are described separately for each module, and each module is to be reused. There is a request. However, as shown in FIG. 48 and FIG. 49, it is difficult to separate these modules in the application server 5401 using a conventional technique such as Servlet or JSP.

そこで本発明の課題は、Webアプリケーションを実行するアプリケーションサーバを開発する際にデータ、ロジック、画面の各モジュールに分けて記述するフレームワークを提供することにより、Webアプリケーションの開発効率と保守性を向上することにある。   Therefore, an object of the present invention is to improve the development efficiency and maintainability of web applications by providing a framework that describes data, logic, and screen modules separately when developing an application server that executes web applications. There is to do.

上述した課題を解決するために、本発明ではWebアプリケーションをカスタムタグ付きHTML、データオブジェクト、ロジックに分け、カスタムタグ付きHTMLとロジックの間をマッピングファイルによってマッピングし、両者間のデータのやり取りにデータオブジェクトを用いるようにした。   In order to solve the above-described problems, in the present invention, the Web application is divided into HTML with a custom tag, data object, and logic, and the HTML with the custom tag and the logic are mapped by a mapping file, and data is exchanged between the two. Use objects.

本発明の一態様によれば、Webページの入力内容をデータオブジェクトに変換する入力内容変換手段と、複数の処理ルーチンを備える処理ロジックと、前記データオブジェクトの種類とコマンドの組合せを前記各処理ルーチンにマッピングする第1の外部定義ファイルと、前記データオブジェクトの種類とコマンドと前記第1の外部定義ファイルに基づいて前記処理ロジックの備える処理ルーチンから適当な処理ルーチンを決定する処理ルーチン決定手段と、前記処理ロジックの処理結果とデータオブジェクトの種類の組み合わせを表示用コンポーネントにマッピングする第2の外部定義ファイルと、を備える。   According to one aspect of the present invention, input content conversion means for converting the input content of a Web page into a data object, processing logic having a plurality of processing routines, and a combination of the type and command of the data object are set in each processing routine. A first external definition file to be mapped to, a processing routine determining means for determining an appropriate processing routine from a processing routine provided in the processing logic based on the type and command of the data object and the first external definition file; A second external definition file that maps a combination of a processing result of the processing logic and a type of data object to a display component.

また、本発明の別の一態様によれば、クライアントに提供するデータを有し、且つ該データのデータ構造を表すインタフェースを実装するデータオブジェクトを取得する手段と、前記データオブジェクトが有するデータについてのWebページ画面における表示方法をHTMLによる記述によって定義する定義文を取得する手段と、前記データオブジェクトに実装されている前記インタフェースに基づいて該データオブジェクトの有するデータと前記定義文とを関連付けることによって、該データが表示されるWebページ画面を表現するHTML文を生成する手段と、を備える。   According to another aspect of the present invention, there is provided means for obtaining a data object that has data to be provided to a client and that implements an interface that represents a data structure of the data, and the data object has Means for acquiring a definition sentence that defines a display method on a Web page screen by a description in HTML, and by associating data of the data object with the definition sentence based on the interface implemented in the data object, Means for generating an HTML sentence representing a Web page screen on which the data is displayed.

また、本発明の更なる別の一態様によれば、処理の内容が定義されている処理ロジックであって、予め用意されている該処理ロジックの名称となる文字列を生成する手段と、前記文字列を用いて前記処理ロジックを呼び出すHTML文であって、前記処理ロジックについての実行条件であって予め用意されている該実行条件に合致するイベントがクライアントで発生したときに該処理ロジックを呼び出して実行する、という処理を該クライアントに行なわせる該HTML文を生成する手段と、を備える。   According to still another aspect of the present invention, the processing logic in which the content of the processing is defined, the means for generating a character string that is a name of the processing logic prepared in advance, An HTML statement that calls the processing logic using a character string, and calls the processing logic when an event that is an execution condition for the processing logic and that matches the execution condition prepared in advance occurs. Means for generating the HTML statement that causes the client to perform a process of executing the process.

このような構成をとることにより、Webアプリケーションシステムにおいて画面表示を規定するHTML、データオブジェクト、及び処理の内容を規定するロジックの連携がそれぞれ疎となることになり、各モジュールの再利用性が向上し、開発効率と保守性を上げることができる。   By adopting such a configuration, the HTML for defining the screen display in the Web application system, the data object, and the logic for defining the contents of the processing become sparse, and the reusability of each module is improved. Development efficiency and maintainability.

本発明によれば、Webアプリケーションシステムにおいて画面表示を規定するHTML、データオブジェクト、処理の内容を規定するロジックの連携が疎となることになり、各モジュールの再利用性を向上させ、開発効率と保守性を上げることができる。また、サーバにおける処理を時間的スコープの大きなものから小さなものに分岐して処理を進めることにより、スレッドセーフを実現したり、各スコープにおける処理に前処理、後処理を追加し、処理の前判断やエラー処理を柔軟に行えるという効果を得ることができる。   According to the present invention, the HTML that defines the screen display in the Web application system, the data object, and the logic that defines the contents of the processing are sparse, improving the reusability of each module, Maintainability can be improved. In addition, by branching the processing at the server from the larger to the smaller ones in the time scope and proceeding with the processing, thread safety can be realized, and pre-processing and post-processing are added to the processing at each scope to make a pre-processing decision And error processing can be performed flexibly.

以下、本発明の実施の形態を図面を参照しながら説明する。
図1は、本発明の概略を示す図である。本発明を実施するUJI(宇治)なるアプリケーションサーバは、図示するように、画面表示を規定するHTML101、画面データ102、ロジック103の3つのモジュールから構成される。尚、HTML101は画面表示を規定できるものなら何れのものでも良い。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a diagram showing an outline of the present invention. As shown in the figure, an application server UJI (Uji) that implements the present invention is composed of three modules: HTML 101 that defines screen display, screen data 102, and logic 103. The HTML 101 may be any one that can define the screen display.

図2は、本発明の原理構成を示す図である。図1のHTML101に対応するものが入力用JSP201及び表示用JSP202であり、図1の画面データ102に対応するものが入力用Java Bean203及び表示用Java Bean204、図1のロジック103に対応するのがユーザロジック205である。入力用JSP201は画面をデータにアサインする機能を備え、表示用JSP202はデータを画面に表示する機能を備える。UJIエンジン206は、入力用JSP201の画面データを例えばJava Beanなどのデータオブジェクトに変換する((1)、(5)、(6))。すなわち、入力用JSP201の画面データは入力用Java Bean203に変換される。ユーザロジック205は複数の処理ルーチンから構成されており、UJIエンジン206がデータオブジェクト(入力用Java Bean203)の種類及びコマンドと外部のマッピングファイル207とに基づいて、適当な処理ルーチンを決定する((5)、(6)、(7))。ユーザロジック205では、決定された処理ルーチンを用いてデータオブジェクトである入力用Java Bean203を処理し(2)、表示用Java Bean204として出力する((3))。表示用Java Bean204はUJIエンジン206によって表示用JSP202の画面データに変換され((4)、(5)、(6))、また処理結果とデータオブジェクトである表示用Java Beanの種類の組み合わせを外部のマッピングファイル207から探し出し、表示すべき部品を決定する。このように、本発明はデータオブジェクトが画面を規定するHTMLとロジックとの間に介在するような構成をとるので、画面とロジックとを疎に連結することを可能とする。   FIG. 2 is a diagram showing the principle configuration of the present invention. The one corresponding to the HTML 101 in FIG. 1 is the input JSP 201 and the display JSP 202, the one corresponding to the screen data 102 in FIG. 1 corresponds to the input Java Bean 203 and the display Java Bean 204, and the logic 103 in FIG. User logic 205. The input JSP 201 has a function of assigning a screen to data, and the display JSP 202 has a function of displaying data on the screen. The UJI engine 206 converts the screen data of the input JSP 201 into a data object such as Java Bean ((1), (5), (6)). That is, the screen data of the input JSP 201 is converted into the input Java Bean 203. The user logic 205 is composed of a plurality of processing routines, and the UJI engine 206 determines an appropriate processing routine based on the type and command of the data object (Java Bean 203 for input) and the external mapping file 207 (( 5), (6), (7)). The user logic 205 processes the input Java Bean 203, which is a data object, using the determined processing routine (2), and outputs it as a display Java Bean 204 ((3)). The Java Bean 204 for display is converted into the screen data of the display JSP 202 by the UJI engine 206 ((4), (5), (6)), and the combination of the processing result and the type of Java Bean for display that is a data object is externally displayed. The mapping file 207 is searched for and a part to be displayed is determined. As described above, the present invention has a configuration in which the data object is interposed between the HTML defining the screen and the logic, so that the screen and the logic can be sparsely connected.

図3は、本発明の第1の実施例のシステム構成を示す図である。クライアントからのリクエスト301はフロントコンポーネント302で受信される。そして、リクエスト301に含まれるリクエストデータはUJIエンジン304で自動解析され、データオブジェクトである入力用Java Bean303が自動生成される。UJIエンジン304では、更に、コマンドマッピング305を参照し、リクエストデータから生成されたデータオブジェクトの種類とコマンドとからユーザロジック307での処理を決定する。ユーザロジック307では、生成されたデータオブジェクトを読み込み、該決定に従って処理を行い、処理結果として表示用Java Bean309を設定する。ここで、UJIエンジン304はページマッピング306を参照し、表示用Java Bean309から表示用JSP310、すなわち画面表現が決定される。尚、表示用JSP310にはページレイアウトを規定するテンプレート308がインクルードされ、このテンプレート308に従って表示部品が配置されるようになっている。   FIG. 3 is a diagram showing the system configuration of the first embodiment of the present invention. A request 301 from the client is received by the front component 302. The request data included in the request 301 is automatically analyzed by the UJI engine 304, and an input Java Bean 303 as a data object is automatically generated. The UJI engine 304 further refers to the command mapping 305 and determines the processing in the user logic 307 from the type of data object generated from the request data and the command. The user logic 307 reads the generated data object, performs processing according to the determination, and sets the Java Bean 309 for display as the processing result. Here, the UJI engine 304 refers to the page mapping 306, and the display JSP 310, that is, the screen representation, is determined from the display Java Bean 309. The display JSP 310 includes a template 308 that defines the page layout, and display components are arranged according to the template 308.

図3では本発明の第1の実施例のシステム構成を示しその動作概要を述べたが、図4を用いて、本発明の第1の実施例のシステムの具体的な動作を説明する。図4は、ユーザが何処にいるかを示す「行き先掲示板」というWebアプリケーションの様子を示したものである。ユーザを一覧表示するユーザ一覧表示画面401、ユーザの状態を編集するユーザ状態編集画面402、ユーザの行き先候補を編集するプロファイル編集画面403、新規ユーザを登録するユーザ登録画面404はそれぞれ、クライアントでWebブラウザによって表示されるものである。ユーザ一覧表示画面401において、ログインボタン405が押し下げられる(クリックされる)とユーザ状態編集画面402に遷移する。ユーザ一覧表示画面401で、ユーザ登録ボタン406が押し下げられるとユーザ登録画面404に遷移する。同様に、各画面402〜404の各ボタンが押し下げられると、対応する図4に示した矢印のように画面が遷移する。このとき、ログイン405、ユーザ登録ボタン406、変更ボタン407、ログアウトボタン408等の画面の各ボタンはユーザがシステムに対して処理を要求するためのコマンドに相当する。   FIG. 3 shows the system configuration of the first embodiment of the present invention and outlines the operation thereof. The specific operation of the system of the first embodiment of the present invention will be described with reference to FIG. FIG. 4 shows a state of a Web application called “destination bulletin board” indicating where the user is. A user list display screen 401 for displaying a list of users, a user status editing screen 402 for editing a user status, a profile editing screen 403 for editing a user destination candidate, and a user registration screen 404 for registering a new user are respectively displayed on the client. It is displayed by the browser. When the login button 405 is pressed (clicked) on the user list display screen 401, the screen transitions to the user status editing screen 402. When the user registration button 406 is pressed on the user list display screen 401, the screen shifts to the user registration screen 404. Similarly, when each button of each of the screens 402 to 404 is pressed, the screen changes as indicated by the corresponding arrow shown in FIG. At this time, each button on the screen such as a login 405, a user registration button 406, a change button 407, and a logout button 408 corresponds to a command for the user to request processing from the system.

また、例えばユーザ「松塚」がユーザ状態として表示できる「自席」、「出張」、「年次」という3状態の他に「会議室」という状態を追加したい場合には、ユーザ状態編集画面402において、プロファイル編集ボタン409を押し下げる。すると画面表示はプロファイル編集画面403に遷移する。ここで、ユーザ「松塚」が「追加」の欄に例えば「会議室」と入力し、変更ボタン410を押し下げると新たな状態が加えられたプロファイル編集画面が表示される。   For example, when the user “Matsuzuka” wants to add the state “conference room” in addition to the three states “self-seat”, “business trip”, and “annual” that can be displayed as the user state, the user state edit screen 402 Then, the profile editing button 409 is depressed. Then, the screen display transitions to the profile editing screen 403. Here, when the user “Matsuzuka” inputs, for example, “Conference Room” in the “Addition” field and presses the change button 410, a profile editing screen with a new state added is displayed.

以下、図5及び図6で、図4のアプリケーションのシステム構成とその動作概要を説明する。
図5は、クライアントからのリクエストが受信されてから、処理が完了するまでの動作概要を示すものである。Webブラウザに表示される、ユーザ一覧表示画面501、ユーザ状態編集画面502、プロファイル編集画面503、ユーザ登録画面504は、それぞれ図4の画面に対応している。それぞれの画面から、ログイン、ユーザ登録、プロファイル編集、ログアウト、変更、ユーザ追加、キャンセル等のコマンドがUJI506に伝達される(実線矢印)と、それぞれの画面データがデータオブジェクトであるJava Bean505に自動的に変換される(点線矢印)。また、UJI506は、コマンドマッピング507(後述)を参照し、伝達されたコマンドとデータオブジェクトの種類との組み合わせに基づいて分岐すべき処理を処理508〜512の中から選択する。そして選択された処理にデータオブジェクトを渡す。データオブジェクトが渡されると、選択された処理の内容に沿って、そのデータオブジェクトが処理される。
Hereinafter, the system configuration of the application shown in FIG. 4 and the outline of the operation will be described with reference to FIGS.
FIG. 5 shows an outline of operations from when a request from a client is received until the processing is completed. A user list display screen 501, a user status editing screen 502, a profile editing screen 503, and a user registration screen 504 displayed on the Web browser correspond to the screens in FIG. When commands such as login, user registration, profile editing, logout, change, user addition, and cancellation are transmitted from each screen to UJI 506 (solid arrow), each screen data is automatically sent to Java Bean 505, which is a data object. (Dotted arrow). Also, the UJI 506 refers to a command mapping 507 (described later), and selects a process to be branched from the processes 508 to 512 based on the combination of the transmitted command and the type of data object. The data object is then passed to the selected process. When a data object is passed, the data object is processed according to the content of the selected process.

図6は、データオブジェクトの処理が終わり、クライアントへレスポンスが返されるまでの動作概要を示すものである。処理が終わり、処理結果としてのJava Bean601が作成される。そして、UJI506において、ページマッピング602(後述)が参照され、処理結果(成功、失敗、完了等)と作成されたJava Bean601との組み合わせから表示すべきページがページ501〜504の中から決定される。表示すべきページには作成されたJava Bean601が渡され、それをもとに新たなページが表示される。   FIG. 6 shows an outline of the operation from the end of the processing of the data object until the response is returned to the client. The processing is completed, and a Java Bean 601 as a processing result is created. In UJI 506, page mapping 602 (described later) is referred to, and pages to be displayed are determined from pages 501 to 504 based on a combination of processing results (success, failure, completion, etc.) and created Java Bean 601. . The created Java Bean 601 is passed to the page to be displayed, and a new page is displayed based on it.

図7(а)、(b)にコマンドマッピングの一部、図7(c)にページマッピングの一部を示す。コマンドマッピングは入力データオブジェクトの種類、コマンド、処理から成るテーブルで構成される。また、ページマッピングは出力データオブジェクトの種類、処理結果、画面から成るテーブルで構成される。   FIGS. 7A and 7B show part of command mapping, and FIG. 7C shows part of page mapping. The command mapping is composed of a table composed of input data object types, commands, and processes. The page mapping is composed of a table composed of output data object types, processing results, and screens.

図7(а)、(b)に示すように、コマンドマッピングによって、入力データオブジェクトの種類とコマンドとの組み合わせから分岐すべき処理が決定される。図7(а)は入力データオブジェクトの種類が同一で、コマンドの種類が異なる場合のコマンドマッピングを示したものである。図7(а)より、入力データオブジェクトの種類が「ユーザ状態」で、コマンドが「プロファイル編集」の場合、プロファイル変更処理に処理を分岐させることが決定されることがわかる。また、図7(b)は、入力データオブジェクトの種類が異なり、コマンドが同一な場合のコマンドマッピングを示したものである。図4に示したように「変更」コマンドは様々な画面で用いられる。しかし、コマンドが同一であっても、コマンドが発生したときに分岐すべき処理はそれぞれ異なる。図4のユーザ状態編集画面402において「変更」コマンドが発生した場合は、ユーザ状態変更処理に処理を分岐させなければならず、プロファイル編集画面403において「変更」コマンドが発生した場合はプロファイル変更処理に処理を分岐させなければならない。図7(b)に示すコマンドマッピングでは、入力データオブジェクトの種類が「ユーザ状態」で「変更」コマンドが発生するとユーザ状態変更処理に処理を分岐させ、入力データオブジェクトの種類が「プロファイル編集」で「変更」コマンドが発生したときにはプロファイル編集処理に分岐させるように規定することができる。このように、本発明のコマンドマッピングは入力データオブジェクトの種類とコマンドの組み合わせから分岐すべき処理を決定するため、コマンドが同一であっても、入力データオブジェクトの種類から分岐すべき処理を適切に選択することができる。   As shown in FIGS. 7A and 7B, processing to branch from the combination of the type of the input data object and the command is determined by command mapping. FIG. 7A shows command mapping when the types of input data objects are the same and the types of commands are different. From FIG. 7A, it can be seen that when the type of the input data object is “user state” and the command is “profile editing”, it is determined to branch the processing to the profile change processing. FIG. 7B shows command mapping when the types of input data objects are different and the commands are the same. As shown in FIG. 4, the “change” command is used on various screens. However, even if the commands are the same, the processes to be branched when the commands are generated are different. When the “change” command is generated on the user status editing screen 402 in FIG. 4, the processing must be branched to the user status change processing. When the “change” command is generated on the profile editing screen 403, the profile change processing is performed. The process must be branched. In the command mapping shown in FIG. 7B, when the type of the input data object is “user state” and a “change” command occurs, the process branches to the user state change process, and the type of the input data object is “edit profile”. It can be specified to branch to the profile editing process when the “change” command occurs. As described above, since the command mapping of the present invention determines the process to be branched from the combination of the type of the input data object and the command, the process to be branched from the type of the input data object is appropriately determined even if the command is the same. You can choose.

また、図7(c)に示すページマッピングによって、出力データオブジェクトの種類と処理結果との組み合わせから、表示すべき画面が決定される。ページマッピングにおいてもコマンドマッピングと同様に、出力データオブジェクトの種類と処理結果との組み合わせで画面が決定されるため、処理結果が同一であっても、出力データオブジェクトの種類から表示すべき画面を適切に選択することが可能である。   Further, the screen to be displayed is determined from the combination of the type of the output data object and the processing result by the page mapping shown in FIG. In page mapping, as with command mapping, the screen is determined by the combination of the output data object type and the processing result, so even if the processing result is the same, the screen to be displayed from the output data object type is appropriate. It is possible to select.

尚、コマンドマッピング、ページマッピングは、外部定義ファイルで、開発者が自由に設定できるものである。これにより開発における柔軟性を高めることができる。
以上、本発明の第1の実施例のシステム全体の動作を説明したが、次に、各動作間についてより具体的に説明する。
Command mapping and page mapping are external definition files that can be freely set by the developer. This can increase the flexibility in development.
The operation of the entire system of the first embodiment of the present invention has been described above. Next, a more specific description will be given between each operation.

図8は、クライアントからのリクエストデータを入力用Java Beanに変換させる(図3の301、303間)ためのプログラム記述を示す図である。この記述により、データ入力用HTMLページ801にデータが入力されると、データ入力用HTMLページ801の特定項目(LoginBean )に対応したクラス名(図8の(1))であって、各入力欄の名前(name)をプロパティ(図8の(2)、(2)’)として持つデータオブジェクト入力用Java Bean802が生成される。   FIG. 8 is a diagram showing a program description for converting request data from the client into an input Java bean (between 301 and 303 in FIG. 3). According to this description, when data is input to the data input HTML page 801, the class name ((1) in FIG. 8) corresponding to the specific item (LoginBean) of the data input HTML page 801 is displayed in each input field. A Java Bean 802 for data object input having the name (name) as a property ((2), (2) ′ in FIG. 8) is generated.

図9は、実行すべきロジックの処理をコマンドマッピングを用いて決定する(図3の305、307間)部分のプログラム記述を示す図である。コマンドマッピング902には、データ入力用HTMLページ901の特定項目に対応したクラス名(LoginBean )と、押し下げられたボタン(submit)の名前(name)の組み合わせが、ユーザロジック903(ハンドラ)のメソッドにマッピングされている。これにより、例えばデータ入力用HTMLページ901でログインボタンが押し下げられると、ユーザロジック903のlogin メソッドが実行されることになる(図9の(1))。同様に、データ入力用HTMLページ901でパスワード変更ボタンが押し下げられると、ユーザロジック903のchangePasswordメソッドが実行されることになる(図9の(2))。   FIG. 9 is a diagram showing a program description of a part for determining a logic process to be executed by using command mapping (between 305 and 307 in FIG. 3). In the command mapping 902, a combination of a class name (LoginBean) corresponding to a specific item on the data input HTML page 901 and a name (name) of a pressed button (submit) is a method of the user logic 903 (handler). It is mapped. Thus, for example, when the login button is pressed down on the data input HTML page 901, the login method of the user logic 903 is executed ((1) in FIG. 9). Similarly, when the password change button is pushed down on the data input HTML page 901, the changePassword method of the user logic 903 is executed ((2) in FIG. 9).

図10は、ユーザロジックが表示用データオブジェクトを設定する(図3の307、309間)部分のプログラム記述を示す図である。ユーザロジック(ハンドラ)1001は、データベース1002などを使用して処理を行い、処理の結果として表示が必要である値と処理結果とを表示用データオブジェクト(Java Bean)1003に設定する。   FIG. 10 is a diagram showing a program description of a portion where the user logic sets a display data object (between 307 and 309 in FIG. 3). The user logic (handler) 1001 performs processing using the database 1002 or the like, and sets a value that needs to be displayed and a processing result as a processing result in a display data object (Java Bean) 1003.

図11は、ページマッピングを介して表示すべきページを決定する(図3の309、310間)部分のプログラム記述を示す図である。ページマッピング1102では、クラス名(UserBean)とユーザロジック(ハンドラ)で設定される処理結果の組み合わせが表示すべきビュー(この場合JSP)にマッピングされている。これにより、表示用Java Bean1101に設定された処理結果が例えばsucceeded の場合、login-succeeded.jsp 1103が選択され(図11の(1))、これと図3のテンプレート308とが合わされて表示画面が決定される。同様に、表示用Java Bean1101に設定された処理結果がfailedの場合、login-failed.jsp1104が選択され(図11の(2))、これと図3のテンプレート308とが合わされて表示画面が決定される。   FIG. 11 is a diagram showing a program description of a part (between 309 and 310 in FIG. 3) for determining a page to be displayed through page mapping. In the page mapping 1102, a combination of processing results set by a class name (UserBean) and user logic (handler) is mapped to a view (JSP in this case) to be displayed. Thereby, when the processing result set in the Java Bean 1101 for display is, for example, succeeded, login-succeeded.jsp 1103 is selected ((1) in FIG. 11), and this is combined with the template 308 in FIG. Is determined. Similarly, when the processing result set in the Java Bean 1101 for display is failed, login-failed.jsp 1104 is selected ((2) in FIG. 11), and this is combined with the template 308 in FIG. 3 to determine the display screen. Is done.

図12は、JSPから表示画面を出力する(図3の310)部分のプログラム記述を示す図である。表示用JSP1201は、データ取得用のタグを使用して表示用Java Bean1202からデータを取得し、取得されたデータを出力HTML1203として出力する。   FIG. 12 is a diagram showing a program description of a part (310 in FIG. 3) that outputs a display screen from JSP. The display JSP 1201 acquires data from the display Java Bean 1202 using a data acquisition tag, and outputs the acquired data as output HTML 1203.

図13は、表示画面に複数の表示部品を配置する場合のテンプレート(図3の308、310間)について説明する図である。ユーザロジック(ハンドラ)1301は、同時に複数の表示用Java Beanを設定するようにすることができる。例えば、図13のようにバナー用のJava Bean1302、メニュー用のJava Bean1303、コンテンツ用のJava Bean1304がユーザロジック1301で設定されると、それぞれのJava Beanに対応するJSPがそれぞれのJava Beanからデータを取得してそれぞれの表示画面を作成する。テンプレート1305にはJSPごとに表示位置が規定されているため、作成された各表示画面がテンプレート1305に基づいて配置され、出力HTML1306が出力される。   FIG. 13 is a diagram illustrating a template (between 308 and 310 in FIG. 3) when a plurality of display components are arranged on the display screen. The user logic (handler) 1301 can set a plurality of Java Beans for display at the same time. For example, as shown in FIG. 13, when a Java Bean 1302 for a banner, a Java Bean 1303 for a menu, and a Java Bean 1304 for contents are set by the user logic 1301, JSPs corresponding to the respective Java Beans receive data from the respective Java Beans. Acquire and create each display screen. Since the display position is defined for each JSP in the template 1305, the created display screens are arranged based on the template 1305, and output HTML 1306 is output.

上述のように、本発明第1の実施例のシステムではHTTP(Hyper Text Transfer Protocol)リクエストをデータオブジェクトに変換して処理し、処理結果のデータオブジェクトをレスポンスに変換してクライアントに返す仕組みについて詳細に述べた。次に、同一の仕組みを利用して、XML(eXtensible Markup Language)ファイルを処理する本発明の第2の実施例のシステムについて述べる。図14、15にそのシステム構成を示す。   As described above, in the system according to the first embodiment of the present invention, details of a mechanism for converting an HTTP (Hyper Text Transfer Protocol) request into a data object, processing it, converting the processing result data object into a response, and returning it to the client Said. Next, a system according to a second embodiment of the present invention that processes an XML (extensible Markup Language) file using the same mechanism will be described. 14 and 15 show the system configuration.

図14は、アプリケーションサーバがXMLファイルを受信したときにそのXMLファイルがロジック(ハンドラ)で処理されるまでを示す図であり、図15はロジック(ハンドラ)でそのXMLファイルの処理が終わり、クライアントへレスポンスが返されるまでを示す図である。   FIG. 14 is a diagram showing processing until the XML file is processed by the logic (handler) when the application server receives the XML file. FIG. 15 shows the processing of the XML file by the logic (handler), and the client It is a figure which shows until a response is returned.

まず、図14において、サーバがXMLインスタンス1401を受信すると、そのXMLをXML Data Bindingエンジン1404で処理を行ってデータオブジェクト(Beanインスタンス1405)を作成する。この際、受け取ったXMLインスタンス1401からオブジェクトの種類を特定することができるため、種類の異なるXMLを同一エンジンで受け取ることができる。ここでは、オブジェクトの種類は、XMLマッピングファイル(不図示、後述)を利用して特定される。また、UJIエンジン1403は、コマンドマッピング1402を参照することによって、XMLのタグからロジック(ハンドラ)で実行すべき処理(メソッド)を決定する。   First, in FIG. 14, when the server receives an XML instance 1401, the XML data binding engine 1404 processes the XML to create a data object (Bean instance 1405). At this time, since the type of the object can be specified from the received XML instance 1401, different types of XML can be received by the same engine. Here, the type of the object is specified using an XML mapping file (not shown, described later). Further, the UJI engine 1403 determines a process (method) to be executed by logic (handler) from the XML tag by referring to the command mapping 1402.

図15において、ロジック(ハンドラ)1501では、HTTPリクエストのときと全く同様にして送信用のデータオブジェクト(Beanインスタンス1502)が作成される。これが再び、XML Data Bindingエンジン1404でXMLに変換されて送信用XML1503が出力される。   In FIG. 15, a logic (handler) 1501 creates a data object for transmission (Bean instance 1502) in exactly the same way as for an HTTP request. This is again converted to XML by the XML Data Binding engine 1404, and the transmission XML 1503 is output.

尚、データオブジェクトを生成するXML Data Bindingエンジン1404は、ファクトリクラスから呼び出される。そのため、ファクトリクラスをBindingエンジンの種類毎に用意することで、柔軟に複数のBindingエンジンに対応することができる。   Note that an XML Data Binding engine 1404 that generates a data object is called from the factory class. Therefore, by preparing a factory class for each type of Binding engine, it is possible to flexibly support a plurality of Binding engines.

図16及び図17は図14及び図15に示したシステムの動作概要を示すものである。図16は、図14に対応し、アプリケーションサーバがXMLファイルを受信してからロジック(ハンドラ)で処理されるまでを示した図であり、図17は図15に対応し、ロジックで処理が終了してから、クライアントへレスポンスを返すまでを示した図である。   16 and 17 show an outline of the operation of the system shown in FIGS. FIG. 16 corresponds to FIG. 14 and shows the process from when the application server receives the XML file until it is processed by the logic (handler). FIG. 17 corresponds to FIG. It is the figure which showed until it returns a response to a client.

図16において、注文伝票1601、出荷伝票1602等のXMLファイルがアプリケーションサーバに対して送信される(実線矢印)と、それぞれの画面データがデータオブジェクトであるJava Bean1605に自動的に変換される(点線矢印)。また、UJI1603において、XMLマップファイル1606を利用してXMLインスタンスのオブジェクトの種類が特定され、XML Data Bindingエンジン1604で受信したXMLに対応するデータオブジェクトが作成される。またUJI1603で、XMLのタグとコマンドマッピング1607から、分岐すべき処理を処理1608、1609、1610等の中から選択する。そして、選択された処理にデータオブジェクトを渡す。データオブジェクトが渡されると、選択された処理の内容に沿ってそのデータオブジェクトが処理される。   In FIG. 16, when XML files such as order slip 1601 and shipping slip 1602 are transmitted to the application server (solid arrow), each screen data is automatically converted to Java Bean 1605 which is a data object (dotted line). Arrow). Also, in the UJI 1603, the type of the object of the XML instance is specified using the XML map file 1606, and the data object corresponding to the XML received by the XML Data Binding engine 1604 is created. Also, the UJI 1603 selects a process to be branched from the XML tag and the command mapping 1607 from among processes 1608, 1609, 1610, and the like. Then, the data object is passed to the selected process. When a data object is passed, the data object is processed according to the content of the selected process.

処理が終わると、図17において、処理結果であるJava Bean1701がUJI1603に渡される。このJava Bean1701は、XML Data Bindingエンジン1604で送信用XMLインスタンス1702に変換される。   When the processing is completed, a Java Bean 1701 as a processing result is transferred to the UJI 1603 in FIG. The Java Bean 1701 is converted into an XML instance for transmission 1702 by the XML Data Binding engine 1604.

このように第2の実施例のシステムでは受信したXMLをXML Data Bindingエンジンでデータオブジェクトに変換してからロジック(ハンドラ)に渡すので、HTTPリクエストの時と同じ処理を実現する場合、第1の実施例のシステムのロジック(ハンドラ)と同一のロジック(ハンドラ)のメソッドをそのまま利用することができる。   As described above, in the system of the second embodiment, the received XML is converted into a data object by the XML Data Binding engine and then passed to the logic (handler). Therefore, when the same processing as the HTTP request is realized, The same logic (handler) method as the system logic (handler) of the embodiment can be used as it is.

以上、本発明の第1及び第2の実施例のシステム構成、システム動作について詳細に説明したが、次にこれらの実施例に共通するシステムの動作の仕組みについて説明する。
本発明のシステムを構成するオブジェクトは、各々が処理されるときの時間軸上における相対的な位置関係に基づいてシステム、アプリケーション、セッション、リクエストの4段階の時間的スコープに分類することができる。図18(а)に示すように、システム1801は、システム全体で一つ存在するもので、アプリケーションサーバの起動からサーバの終了までをそのスコープとする。また、アプリケーション1802は、システム内の各アプリケーション毎に1つ存在し、アプリケーションの開始から終了までをそのスコープとする。セッション1803は、クライアント毎に一つずつ存在するもので、クライアントの接続から切断(またはタイムアウトなど)までをそのスコープとする。そして、リクエスト1804は、あるクライアントからの一回のリクエストにつき一つ存在するもので、クライアントからのリクエストを処理してレスポンスを返すまでをスコープとする。図18(b)に、各オブジェクト間の相関関係を示す。システム1801内に複数のアプリケーション1802が存在し、各アプリケーション1802に接続する複数のクライアントからのセッション1803が存在する。そして、クライアントからのリクエストは、予め用意されるハンドラ1805で処理される。尚、図18 (a)に示すリクエスト1804は、図18(b)の各オブジェクトが実行される際の1スレッドに対応する。
The system configuration and system operation of the first and second embodiments of the present invention have been described above in detail. Next, the system operation mechanism common to these embodiments will be described.
Objects constituting the system of the present invention can be classified into four stages of time scopes of system, application, session and request based on the relative positional relationship on the time axis when each is processed. As shown in FIG. 18A, there is one system 1801 in the entire system, and the scope is from the start of the application server to the end of the server. One application 1802 exists for each application in the system, and the scope is from the start to the end of the application. One session 1803 exists for each client, and the scope is from connection to disconnection (or timeout) of the client. One request 1804 exists for each request from a client, and the scope is from processing the request from the client to returning a response. FIG. 18B shows the correlation between the objects. There are a plurality of applications 1802 in the system 1801, and there are sessions 1803 from a plurality of clients connected to each application 1802. A request from the client is processed by a handler 1805 prepared in advance. A request 1804 shown in FIG. 18A corresponds to one thread when each object shown in FIG. 18B is executed.

このようにシステムを構成するオブジェクトが段階的な時間的スコープを持つことによって、クライアントからのリクエストを処理する場合に、より大きなスコープを持つオブジェクトから小さなオブジェクトに分岐(dispatch)して処理を進めていくことができる。すなわち図19に示すように、フロントコンポーネント1901にクライアントからリクエストが送信されてくると、システムに一つ存在するディスパッチャ1902が対応するアプリケーション1903に処理を分岐する。更にアプリケーション1903は、リクエストを送信してきたクライアントに対応するセッション1904に処理を分岐し、セッション1904は、リクエストに対応するハンドラ1905に処理を分岐する。   In this way, when the objects that make up the system have a gradual temporal scope, when processing a request from a client, the processing proceeds by branching from an object with a larger scope to a smaller object. I can go. That is, as shown in FIG. 19, when a request is transmitted from the client to the front component 1901, one dispatcher 1902 existing in the system branches the processing to the corresponding application 1903. Further, the application 1903 branches the process to the session 1904 corresponding to the client that has transmitted the request, and the session 1904 branches the process to the handler 1905 corresponding to the request.

本発明のシステムでは、クライアントからのリクエストをより大きなスコープから小さなスコープに分岐して処理していくため、アプリケーション、セッション、ハンドラの各オブジェクトをユーザ拡張可能またはユーザ定義可能としておくと次のような効果が得られる。(尚、本実施例のシステムでは、アプリケーション1903とセッション1904をユーザ拡張可能、フロントコンポーネント1901、表示用ページ1906、ハンドラ1905、コマンドマップ1909、ページマップ1910、ResponseBean1908及びRequestBean1911をユーザ定義可能として実装した。)
ユーザ拡張可能またはユーザ定義可能なオブジェクトに対して、SingleThreadModel 1912というインタフェースを実装させると(図19(b))、そのオブジェクトの動作が同時に最大1スレッドまで制限される。この機能を利用すれば、それぞれのスコープの動作がスレッドセーフとなり、すなわち、例えば同一データ編集などのデータ処理は、同時に複数行わせないようにすることができる。このようにすることを「シングルスレッド動作制限」という。前述の「行き先掲示板」アプリケーション(図4)において、ユーザ変更とプロファイル編集は同一データを対象とするので、スレッドセーフにしておく必要がある。この場合、図20(а)に示すように実装すればよい。すなわち、メソッド:ユーザ変更2007、メソッド:プロファイル編集2008を含むハンドラ2004にSingleThreadModel インタフェースを実装させる。ここで、メソッド:ログイン処理2005、メソッド:ログアウト処理2006、メソッド:ユーザ登録、は特にスレッドセーフにしなくてよいため、ハンドラ2004’、2004’’にはSingleThreadModel インタフェースは実装させない。同様に、セッション、アプリケーションにおいても、スレッドセーフにしたい場合、SingleThreadModel インタフェースを実装させればよい(2002’、2003’)。SingleThreadModel インタフェースを実装する場合の記述の仕方は、図20(b)のようにすればよく、同図には、セッション2003’にSingleThreadModel インタフェースが実装された場合が示されている。
In the system of the present invention, a request from a client is branched and processed from a larger scope to a smaller scope. Therefore, if the application, session, and handler objects are user-extensible or user-definable, An effect is obtained. (In the system of this embodiment, the application 1903 and the session 1904 can be expanded by the user, and the front component 1901, the display page 1906, the handler 1905, the command map 1909, the page map 1910, the ResponseBean 1908, and the RequestBean 1911 are implemented as user-definable. .)
When an interface called SingleThreadModel 1912 is implemented for a user-expandable or user-definable object (FIG. 19B), the operation of the object is simultaneously limited to a maximum of one thread. If this function is used, the operation of each scope becomes thread-safe, that is, for example, it is possible not to perform a plurality of data processing such as editing the same data at the same time. This is called “single thread operation restriction”. In the above-mentioned “destination bulletin board” application (FIG. 4), user change and profile editing target the same data, so it is necessary to keep the thread safe. In this case, it may be mounted as shown in FIG. That is, the SingleThreadModel interface is implemented in the handler 2004 including the method: user change 2007 and the method: profile edit 2008. Here, since the method: login process 2005, the method: logout process 2006, and the method: user registration do not need to be particularly thread-safe, the handlers 2004 ′ and 2004 ″ do not implement the SingleThreadModel interface. Similarly, in the session and application, if it is desired to make the thread safe, the SingleThreadModel interface may be implemented (2002 ′, 2003 ′). The description method when the SingleThreadModel interface is implemented may be as shown in FIG. 20B, and shows the case where the SingleThreadModel interface is implemented in the session 2003 ′.

また、ユーザ拡張可能またはユーザ定義可能なオブジェクトである、アプリケーション、セッション、ハンドラオブジェクトに前処理(preprocessor)、後処理(postprocessor )インタフェースを実装させることができる。これにより、各オブジェクトの本番処理の実行の前後に処理を付け加えることができる。すなわち、図21のシーケンス図に示すように、クライアントのリクエストの本番処理(ハンドラメソッド)(図21の(2))の前処理(図21の(1))、後処理(図21の(3))を加えることができ、同様に、セッション(図21の(5))に対する前処理(図21の(4))、後処理(図21の(6))、アプリケーション(図21の(8))に対する前処理(図21の(7))、後処理(図21の(9))を追加することができる。   In addition, pre-processing and post-processing interfaces can be implemented in application, session, and handler objects that are user-extensible or user-definable objects. Thereby, a process can be added before and after the execution of the actual process of each object. That is, as shown in the sequence diagram of FIG. 21, the pre-processing ((1) of FIG. 21) and post-processing ((3) of FIG. 21) of the client request production process (handler method) ((2) of FIG. 21). )), And similarly, pre-processing ((4) in FIG. 21), post-processing ((6) in FIG. 21), and application ((8) in FIG. 21) for the session ((5) in FIG. 21). )) For the pre-processing ((7) in FIG. 21) and post-processing ((9) in FIG. 21).

この機能を利用して、例えば前処理(図21の(1))では、ロジックのハンドラメソッドの本番処理(図21の(2))の前に予め状態管理による判断を行ってハンドラメソッドの処理をスキップするチェックルーチンを設けるようにすることが可能である。また、後処理(図21の(3))では、前処理(図21の(1))または本番処理(図21の(2))でエラーが出たときにそのエラーを回復させるためのエラーハンドリングを設けておくことができる。これらは、エラーが出なかったときでも、共通の後処理を記述するために利用することもできる。同様に、各セッションについて、1クライアントに対する共通の前処理、後処理を記述することができ、アプリケーションでは複数クライアントに対する共通の前処理、後処理を記述することができる。各前処理、後処理はそれぞれのスコープのオブジェクトに別々に実装することができるため、きめ細かい制御ができる。   Using this function, for example, in the pre-processing ((1) in FIG. 21), the processing of the handler method is performed by making a determination by state management in advance before the actual processing of the logic handler method ((2) in FIG. 21). It is possible to provide a check routine for skipping. In the post-processing ((3) in FIG. 21), an error for recovering an error when an error occurs in the pre-processing ((1) in FIG. 21) or the actual processing ((2) in FIG. 21). Handling can be provided. They can also be used to describe common post-processing even when no errors have occurred. Similarly, common pre-processing and post-processing for one client can be described for each session, and common pre-processing and post-processing for a plurality of clients can be described in an application. Since each pre-processing and post-processing can be implemented separately for each scope object, fine control is possible.

以上のように、本発明のシステムの動作の仕組みを用いれば、スレッドセーフを実現させたり、各スコープにおける処理に前処理、後処理を追加することで処理の前判断やエラー処理が柔軟に行なえるようになるという効果を得ることができる。   As described above, if the system operation mechanism of the present invention is used, thread safety can be realized, and pre-processing and error processing can be flexibly performed by adding pre-processing and post-processing to processing in each scope. The effect that it comes to be can be acquired.

次に、本発明のアプリケーションサーバにおけるロジックのハンドラからブラウザにリクエストを行うための仕組みについて説明する。
Webアプリケーションでは、例えば、処理Aのリクエストがクライアントから送られてきたが、何らかのことが起こったために、処理Aを続行するか否かをユーザ(クライアント)に問い合わせ、その回答に基づいて処理Aを続行するか若しくは異なる処理を行うようにするという場合がある。このように、処理の途中でユーザ(クライアント)に問い合わせが行なわれ、この問い合わせの結果に基づいて処理を行っていく場合、一般のWebアプリケーションシステムでは、図22(а)に示すようなシーケンスで行っている。処理Aのリクエスト(図22(а)の(1))がサーバに送信されると、サーバではそれを受信し、ハンドラ1が処理を始める。すると、処理Aは全て終了していないが、ユーザに処理Aを続行するかどうか質問する(図22(а)の(2))。クライアントには、2701のような画面が表示され、ユーザが「はい」「いいえ」の何れかの回答を返す(図22(а)の(3))。それに基づき、ハンドラ2が処理を始める。
Next, a mechanism for making a request from the logic handler in the application server of the present invention to the browser will be described.
In the Web application, for example, a request for process A has been sent from the client. Since something happened, the user (client) is inquired whether or not to continue process A, and process A is executed based on the response. There are cases where it is continued or different processing is to be performed. In this way, when an inquiry is made to the user (client) in the middle of processing, and processing is performed based on the result of this inquiry, a general Web application system has a sequence as shown in FIG. Is going. When the request for process A ((1) in FIG. 22 (a)) is transmitted to the server, the server receives it and the handler 1 starts the process. Then, although the process A is not completed, the user is asked whether to continue the process A ((2) in FIG. 22 (а)). A screen such as 2701 is displayed on the client, and the user returns either “Yes” or “No” ((3) in FIG. 22A). Based on this, the handler 2 starts processing.

このように、一般のWebアプリケーションでは、処理Aが全て完了していなくてもハンドラの処理を中断しなくてはならない場合がある。また、ユーザの回答が「はい」、「いいえ」などの場合、何の質問に対する「はい」、「いいえ」なのかを規定した中間処理のためのマッピング定義が必要である。   As described above, in a general Web application, it may be necessary to interrupt the handler process even if the process A is not completed. In addition, when the user's answer is “Yes”, “No”, etc., a mapping definition for intermediate processing that defines what question is “Yes” or “No” is required.

そこで、本発明のシステムに、以下に述べるようなアプリケーションサーバにおけるロジックのハンドラからブラウザにリクエストを行う仕組みを導入し、一般のWebアプリケーションシステムを改善した。   Therefore, a mechanism for making a request from the logic handler in the application server as described below to the browser is introduced into the system of the present invention to improve a general Web application system.

図23(а)に示すように、本発明のシステムでは、サーバにおいて、ハンドラ呼び出し前にスレッド緩衝オブジェクト(シンクロナイザ)を設け、ハンドラの動作を監視するようにする。これにより、処理Aのリクエスト(図23(а)の(1))がサーバに送信されると、サーバではシンクロナイザが受信し、ハンドラ1に渡され(図23(а)の(2))、ハンドラ1が起動して処理が始まる。そこで、処理Aが全て終了していないが、ユーザに処理Aを続行するかどうか質問をする場合、ハンドラ1はクライアントにコールバックするメソッドを呼び出す(図23(а)の(3))。シンクロナイザでは、ハンドラのメソッドを、ブラウザ(クライアント)への返り値として返す(図23(а)の(4))。クライアントには、2201のような画面が表示され、ユーザが「はい」「いいえ」の何れかの回答を返す(図23(а)の(5))。それがシンクロナイザに受信され、ハンドラ1に渡される(図23(а)の(6))。この後、ハンドラ1は、処理を継続する。このように、スレッド緩衝オブジェクトが設けられることで、ハンドラの処理を中断させる必要がなくなる。また、サーバを実現するためのプログラムの記述においても、一般的なWebアプリケーションでは図22(b)に示すように、ハンドラ1、ハンドラ1の返り値に対するイベントを受けるハンドラ2などを記載しなくてはならないのに対し、本発明では図23(b)(c)に示すように、一つのハンドラ内に条件分岐文で記述することができるため、プログラム記述的に非常に容易である。   As shown in FIG. 23 (a), in the system of the present invention, a thread buffer object (synchronizer) is provided in the server before calling a handler, and the operation of the handler is monitored. Thus, when the request for process A ((1) in FIG. 23 (а)) is transmitted to the server, the server receives the synchronizer and passes it to the handler 1 ((2) in FIG. 23 (а)). Handler 1 is activated and processing begins. Therefore, when all the processes A are not completed, but when asking the user whether to continue the processes A, the handler 1 calls a method that calls back to the client ((3) in FIG. 23 (а)). The synchronizer returns the handler method as a return value to the browser (client) ((4) in FIG. 23 (а)). A screen like 2201 is displayed on the client, and the user returns either “Yes” or “No” ((5) in FIG. 23A). It is received by the synchronizer and passed to the handler 1 ((6) in FIG. 23 (а)). Thereafter, the handler 1 continues processing. Thus, by providing the thread buffer object, it is not necessary to interrupt the processing of the handler. Also, in the description of the program for realizing the server, in a general Web application, as shown in FIG. 22B, the handler 1 and the handler 2 that receives an event corresponding to the return value of the handler 1 are not described. On the other hand, in the present invention, as shown in FIGS. 23B and 23C, since it can be described in a conditional branch statement in one handler, it is very easy in terms of program description.

なお、以上までに説明した本発明の実施例では、クライアントからの入力としてHTTP、XML等を対象としたが、クライアントからリクエストであればどのようなものでもよく、また、これらの本発明の実施例では、クライアントのリクエストをJava Beanというデータオブジェクトに変換したが、他のデータオブジェクトでもよい。   In the embodiment of the present invention described above, HTTP, XML, etc. are targeted as input from the client, but any request from the client may be used, and implementation of these present inventions. In the example, the client request is converted into a data object called Java Bean, but another data object may be used.

以上までに説明した実施例に係る発明は、クライアントからの入力をデータオブジェクトに変換し、それを処理し、処理結果として得られるデータオブジェクトをクライアントへのレスポンスに変換して送信することを特徴とするものであり、また、サーバにおける処理を時間的スコープに分類し、スコープの大きなものから小さなものに分岐して処理を進めることを特徴とするものである。   The invention according to the embodiment described above is characterized in that the input from the client is converted into a data object, the data object is processed, and the data object obtained as a processing result is converted into a response to the client and transmitted. In addition, the processing in the server is classified into temporal scopes, and processing is performed by branching from a larger scope to a smaller scope.

次に、本発明の更なる実施例について説明する。
これより説明する実施例は、Webアプリケーションを実行するアプリケーションサーバを開発する際に、画面の見かけの定義(ビュー)とその画面中に埋め込まれるデータとを分離して実装するようにして、Webアプリケーションの開発効率と保守性とを共に向上させるものである。
Next, further embodiments of the present invention will be described.
In the embodiment described below, when an application server that executes a Web application is developed, an apparent definition (view) of the screen and data embedded in the screen are separately implemented, and the Web application This improves both development efficiency and maintainability.

この実施例では、Webアプリケーションにおける表示部を、表示データオブジェクトと、画面の見かけ(ビュー)の定義とに分けて用意する。このとき、表示データオブジェクトは、表示データ自体を有し、テーブル(表)構造や木構造などのデータ構造(本実施例ではこのデータ構造を「モデル」と称することとする)を表すインタフェースであってその表示データについてのものを実装した構造体クラスとして作成する。また、ビューの定義は、この実施例においてはJSP(Java Server Pages )を用いて記述する(ビューの定義は、単にHTMLで記述するようにしてもよい)。   In this embodiment, the display unit in the Web application is prepared separately for display data objects and screen appearance (view) definitions. At this time, the display data object has display data itself and is an interface representing a data structure such as a table structure or a tree structure (in this embodiment, this data structure is referred to as a “model”). Create a structure class that implements the display data. In this embodiment, the view definition is described using JSP (Java Server Pages) (the view definition may be simply described in HTML).

この表示データオブジェクトとビューの定義とがサーバにおいて実行されると、上述したインタフェースに対応する実行エンジンによって表示データを画面の所定位置に割り当てる(アサインする)HTML文が生成される。その後、このHTML文がクライアントに送付されると、クライアントの備えるWebブラウザによって対応する画面表示が行なわれる。   When the display data object and the view definition are executed in the server, an HTML statement that assigns (assigns) display data to a predetermined position on the screen is generated by the execution engine corresponding to the above-described interface. Thereafter, when this HTML sentence is sent to the client, a corresponding screen display is performed by the Web browser provided in the client.

なお、これより説明する上述した実施例を、既に説明した他の実施例と区別するために、「第3の実施例」と称することとする。
まず図24について説明する。同図は、本発明の第3の実施例のシステム構成を示している。
The embodiment described above will be referred to as a “third embodiment” in order to distinguish it from the other embodiments already described.
First, FIG. 24 will be described. This figure shows the system configuration of the third embodiment of the present invention.

モデルオブジェクト3001は、サーバ側に設けられているデータベースなどのバックエンドから取得されるクライアントに表示すべきデータを保持し、また、クライアントから送付されたデータをバックエンドに渡すために保持するオブジェクトであり、後述するモデルインタフェース3002を実装する。なお、モデルオブジェクト3001は、表示用モデルオブジェクト3001aと入力用モデルオブジェクト3001bとして別々に設けることも可能であり、また、表示用と入力用とを共用する単一のモデルオブジェクト3001として設けることも可能である。   The model object 3001 is an object that holds data to be displayed on a client acquired from a back end such as a database provided on the server side, and holds data sent from the client for passing to the back end. Yes, a model interface 3002 described later is implemented. Note that the model object 3001 can be provided separately as the display model object 3001a and the input model object 3001b, or can be provided as a single model object 3001 sharing both display and input. It is.

モデルインタフェース3002は、特定のモデルの構造を表すインタフェースであり、例えば、テーブル構造についてはテーブルモデル用、木構造についてはツリーモデル用などというように、対象とするデータ構造に応じたインタフェースが用意される。   The model interface 3002 is an interface representing the structure of a specific model. For example, an interface corresponding to a target data structure is prepared, such as a table structure for a table structure and a tree model for a tree structure. The

フレームワークエンジン3003は、表示用モデルオブジェクト3001aに実装されているモデルインタフェース3002に基づいて、表示用モデルオブジェクト3001aに保持されているデータを取り出し、表示用JSP3004の定義に従ってHTML文を生成する。また、ブラウザ3005に対して入力されたデータを解析して入力用モデルオブジェクト3001bに渡す。   The framework engine 3003 extracts data held in the display model object 3001a based on the model interface 3002 implemented in the display model object 3001a, and generates an HTML sentence according to the definition of the display JSP 3004. Further, data input to the browser 3005 is analyzed and passed to the input model object 3001b.

表示用JSP3004は表示データをHTMLで表現するときの画面の見かけ(ビュー)が定義されているものであり、独自のタグを導入したJSPで記述される。
ブラウザ3005はクライアントに装備され、表示用JSP3004の定義に基づいてフレームワークエンジン3003で生成されたHTMLに従った画面表示をで行なうものである。
The display JSP 3004 defines the appearance of the screen when the display data is expressed in HTML, and is described in a JSP with an original tag introduced.
A browser 3005 is provided in the client and performs screen display according to HTML generated by the framework engine 3003 based on the definition of the display JSP 3004.

フロントコンポーネント3006は、ブラウザ3005から発せられるリクエストを受け付けてフレームワークエンジン3003に渡すものであり、例えばJSPコンポーネントあるいはサーブレットなどを利用するが、HTTPリクエストを受信し、その受信内容に応じたフレームワークエンジン3003を呼び出すことができるものであればどのようなものでもよい。   The front component 3006 accepts a request issued from the browser 3005 and passes it to the framework engine 3003. For example, a JSP component or a servlet is used, but an HTTP request is received and a framework engine corresponding to the received content is received. Any device can be used as long as it can call 3003.

次に、図24のモデルインタフェース3002について、テーブル構造のモデルを表すテーブルモデルインタフェースを例に挙げて更に詳細に説明する。
図25は、テーブルモデルインタフェースの宣言例を示す図である。この例では、大きく分けてデータ取得のためのメソッド、データクラスの取得のためのメソッド、及びデータの(バックエンドへの)代入のためのメソッドでテーブルモデルインタフェースが定義されている。
Next, the model interface 3002 in FIG. 24 will be described in more detail by taking a table model interface representing a table structure model as an example.
FIG. 25 is a diagram illustrating a declaration example of the table model interface. In this example, a table model interface is defined by a method for obtaining data, a method for obtaining a data class, and a method for assigning data (to the back end).

これらのメソッドについて更に説明すると、データ取得のためのメソッドとしてはテーブルの列数を取得するメソッド(getColumnCount)、テーブルの行数を取得するメソッド(getRowCount )、及びテーブルの各セルのデータを取得するメソッド(getValueAt)が図25の定義に用いられている。   These methods will be further described. Methods for obtaining data include a method for obtaining the number of columns in the table (getColumnCount), a method for obtaining the number of rows in the table (getRowCount), and obtaining data for each cell in the table. A method (getValueAt) is used in the definition of FIG.

データクラスの取得のためのメソッドとしては、列及び行の各々について定義される「クラス」を特定する文字列を各々取得するメソッド(getColumnClass及びgetRowClass )が図25の定義に用いられている。この「クラス」とは、各列若しくは各行に属するデータについての表示方法(例えば表示位置やフォントの大きさといった書式等)の様式をそれぞれ定義するために使用されるものであり、これは後述するレンダラタグの”cls” 属性を示すものである。   As a method for acquiring a data class, a method (getColumnClass and getRowClass) for acquiring each character string for specifying a “class” defined for each column and row is used in the definition of FIG. This “class” is used to define a display method (eg, a format such as a display position and a font size) for data belonging to each column or row, which will be described later. Indicates the “cls” attribute of the renderer tag.

データの代入のためのメソッド(setValueAt)は、このテーブルモデルに対応するモデルアップデートの処理(後述)により呼び出されることによって、このテーブルモデルで示されるデータ構造に依存したデータ形式でクライアントからのリクエストの内容(セルの値及びそのセルのテーブル上の位置)がバックエンドに渡される。   The data substitution method (setValueAt) is called by the model update process (described later) corresponding to this table model, so that the request from the client can be sent in a data format that depends on the data structure indicated by this table model. The content (cell value and its location on the table) is passed to the backend.

次に、本発明の第3の実施例においてHTML文が生成される様子を、図26を用いて説明する。同図は、図24に示すテーブルモデル用のフレームワークエンジン3003に図25に示す宣言がなされているテーブルモデルインターフェースを実現する表示用のモデルオブジェクト3001a(A)を与えると、フレームワークエンジン3003が、表示用JSP3004に相当するJSPソース(B)に基づいて生成HTML文(C)を生成することを示している。なお、説明の便宜のため、図26(B)及び図26(C)の各行頭には行番号を付している。   Next, how an HTML sentence is generated in the third embodiment of the present invention will be described with reference to FIG. In FIG. 24, when the table model framework engine 3003 shown in FIG. 24 is given a display model object 3001a (A) for realizing the table model interface declared in FIG. 25, the framework engine 3003 The generation HTML sentence (C) is generated based on the JSP source (B) corresponding to the display JSP 3004. For convenience of explanation, line numbers are given to the heads of the lines in FIGS. 26 (B) and 26 (C).

図26の(B)JSPソースについて説明する。
図26(B)において、第1行はこのJSPソースとモデルオブジェクト(A)との対応関係を指定するものである。
The (B) JSP source in FIG. 26 will be described.
In FIG. 26B, the first line specifies the correspondence between the JSP source and the model object (A).

第1行を更に説明すると、“id=...”には対応するモデルオブジェクトがこのJSPソース内において参照されるときの名称が指定され、“cls=... ”はこのJSPソースと対応するモデルオブジェクトのクラス名が指定される。   To further explain the first line, "id = ..." specifies the name when the corresponding model object is referenced in this JSP source, and "cls = ..." corresponds to this JSP source. The class name of the model object to be specified is specified.

また、第1行において、“request=... ”にはモデルオブジェクト(A)のフレームワークエンジン3003内での生存期間が指定される。これは、生成HTML文(C)をクライアントに送付してブラウザ3005に画面表示を行なわせた後に、このモデルオブジェクトに応じたリクエストがクライアントから返信される場合を考慮したものである。すなわち、trueが指定されているときには、このようなリクエストの内容を直ちにモデルオブジェクトに代入できるようにするために、HTML文の生成後もモデルオブジェクト(A)がフレームワークエンジン3003内の記憶領域に保持される。一方、false が指定されているときには、HTML文の生成後はモデルオブジェクト(A)のフレームワークエンジン3003内の記憶領域で保持されない。   In the first line, “request =...” Designates the lifetime of the model object (A) in the framework engine 3003. This is in consideration of a case where a request corresponding to the model object is returned from the client after the generated HTML sentence (C) is sent to the client and the browser 3005 displays the screen. That is, when true is specified, the model object (A) is stored in the storage area in the framework engine 3003 even after the HTML statement is generated so that the content of such a request can be immediately assigned to the model object. Retained. On the other hand, when “false” is specified, after the HTML sentence is generated, it is not held in the storage area in the framework engine 3003 of the model object (A).

図26(B)の第2行目以降は、テーブルモデルを表示するための画面の見かけの定義がタグを用いてなされている部分であり、この部分は「ビュー」と総称されている。
ビューの記述はビュータグを用いて行なわれる。第2行目にはテーブルモデルのためのビュータグの開始タグが示されており(<uomf:table >)、この第2行目と第18行目のテーブルモデル用ビュータグの終了タグ(</uomf:table>)との間に幾つかのテーブル用のレンダラが記述される。
The second and subsequent lines in FIG. 26B are portions in which the appearance of the screen for displaying the table model is defined using tags, and this portion is collectively referred to as “view”.
A view is described using a view tag. The start tag of the view tag for the table model is shown in the second line (<uomf: table>), and the end tag (</ uomf) of the view tag for the table model in the second and 18th lines is shown. : table>) with several table renderers.

レンダラとは、指定の表示場所でのデータの表示にどのような表示方法を用いるかを定義するものである。図26(B)の第3行目から第17行目にかけての記述では、テーブルモデルのためのレンダラの定義が(a)から(e)の計5つなされている。これらのテーブルレンダラの定義を簡単に説明すると、(a)はテーブルタグ(<table> 及び</table>)を生成させるためのもの、(b)はテーブルの行の表示方式を定義するもの、(c)はテーブルにおける通常の列の表示方式を定義するもの、(d)はテーブルにおける各列の見出しが示されるセル(ヘッダセル)の表示方式を定義するもの、(e)はテーブルにおけるデータ入力(データ更新)の可能なセルについての表示方式を定義するものである。   A renderer defines what display method is used to display data at a specified display location. In the description from the third line to the seventeenth line in FIG. 26B, the definition of the renderer for the table model is five in total (a) to (e). Briefly describing the definitions of these table renderers, (a) is for generating table tags (<table> and </ table>), (b) is for defining the table row display method, (C) defines the display method of the normal column in the table, (d) defines the display method of the cell (header cell) in which the heading of each column in the table is shown, (e) is the data input in the table This defines the display method for cells that can be (data updated).

各レンダラには、テーブルモデル用レンダラタグの開始タグ(<uomf:tableRenderer>)がその最初の行に記述され、これに対応する終了タグ(</uomf:tableRenderer> )がその最後の行に記述される。そして、このレンダラタグの開始タグと終了タグとに挟まれた行の記述によってデータの表示方法が定義される。このデータの表示方法についての定義を構成する個々の要素をレンダラエレメントと称している。   For each renderer, the start tag (<uomf: tableRenderer>) of the table model renderer tag is described in the first line, and the corresponding end tag (</ uomf: tableRenderer>) is described in the last line. Is done. The data display method is defined by the description of the line between the start tag and the end tag of the renderer tag. Each element constituting the definition of the data display method is called a renderer element.

レンダラタグでは“type”と“cls ”とについての指定がなされる。これらは、レンダラに定義された表示方法で表示を行なう画面上の場所を特定するためのものである。これらの指定内容は扱うモデルの種類によって予め指定される。   In the renderer tag, “type” and “cls” are specified. These are for specifying the place on the screen where the display is performed by the display method defined in the renderer. These designation contents are designated in advance according to the type of model to be handled.

“type”には、本実施の形態におけるテーブルモデルでは、table (表全体)、row (行)、column(列)のいずれかが指定され、これらによりレンダラに定義された表示方法で表示を行なうテーブルの場所が特定される。    In “table” in this embodiment, one of table (entire table), row (row), and column (column) is specified in the table model in this embodiment, and display is performed by the display method defined by the renderer. The location of the table is identified.

“cls ”は、本実施の形態におけるテーブルモデルでは、上述した“type”がrow 又はcolumnに指定されているときに指定が可能である(指定のないこともある)。これは、前述したテーブルモデルインタフェースの宣言例(図25)におけるgetRowClass 及びgetColumnClassの両メソッドと連動しているものであり、例えば列の表示を行なう際にはテーブルモデルインタフェースのgetColumnClassメソッドが呼び出される。そして、ビューのレンダラの定義が参照され、“type”がcolumnであって、“cls ”が呼び出されたメソッドについての戻り値に対応しているレンダラでの表示方法の定義が、その列の表示のための表示方法としてHTML文の生成に使用される。なお、呼び出されたメソッドについての戻り値が無い(ヌルである)ときには“cls ”の指定のないレンダラについての表示方法の定義が使用される。   In the table model in this embodiment, “cls” can be specified when the above “type” is specified as row or column (there may be no specification). This is linked with both the getRowClass and getColumnClass methods in the above-described table model interface declaration example (FIG. 25). For example, when a column is displayed, the getColumnClass method of the table model interface is called. The view renderer definition is referenced, and the definition of the display method in the renderer corresponding to the return value for the method whose “type” is column and “cls” is called is the display of that column. Is used as a display method for generating HTML sentences. When there is no return value (null) for the called method, the definition of the display method for the renderer for which “cls” is not specified is used.

“cls ”は、本実施の形態におけるテーブルモデルでは、具体的にはheader若しくはeditableが指定される。
レンダラにおける表示方法の定義は周知のHTMLのタグを用いて記述されるが、ここにレンダラエレメントタグという特殊なタグを導入する。図26(B)においては、<uomf:children> 及び<uomf:value>がレンダラエレメントタグである。<uomf:children> は、このタグの位置に他のレンダラでの表示方法の定義を展開する動作をフレームワークエンジンに行なわせ、<uomf:value>は、このタグの位置にモデルインタフェースから取得した値(表示データ)を表示させるようにする動作をフレームワークエンジンに行なわせる。
In the table model in the present embodiment, “cls” is specifically designated header or editable.
The definition of the display method in the renderer is described using a well-known HTML tag, and a special tag called a renderer element tag is introduced here. In FIG. 26B, <uomf: children> and <uomf: value> are renderer element tags. <uomf: children> causes the framework engine to expand the definition of the display method in other renderers at the position of this tag, and <uomf: value> is obtained from the model interface at the position of this tag. Causes the framework engine to perform an operation to display values (display data).

これらのタグのより詳細な動作は扱うモデルの種類によって予め規定される。本実施の形態におけるテーブルモデルでは、<uomf:children> は、前述したレンダラタグにおける“type”の指定がtable (表全体)であるときにこのタグが出現したときには行についてのレンダラ(“type”の指定がrow であるレンダラ)で定義されている表示方式をこの位置に展開して挿入し、“type”の指定がrow (行)であるレンダラでこのタグが出現したときには列についてのレンダラ(“type”の指定がcolumnであるレンダラ)で定義されている表示方式をこの位置に展開して挿入することが規定されている。また、<uomf:value>は、“type”の指定がcolumnであるレンダラにおいてのみ使用可能であり、テーブルモデルインタフェースの宣言例(図25)で使用されているgetValueAtメソッドによって取得される値をこの位置に挿入することが規定されている。   More detailed operations of these tags are defined in advance depending on the type of model to be handled. In the table model in the present embodiment, <uomf: children> is a renderer (“type”) for a row when this tag appears when the “type” designation in the renderer tag is “table” (entire table). The display method defined by the renderer whose specification is row) is expanded and inserted at this position, and when this tag appears in the renderer whose “type” specification is row (row), the renderer for the column ( It is stipulated that the display method defined by “renderer whose“ type ”is specified as column” is expanded and inserted at this position. <Uomf: value> can only be used in renderers whose “type” is specified as column. The value obtained by the getValueAt method used in the table model interface declaration example (FIG. 25) It is specified to be inserted at a position.

以下、図26を参照しながら、フレームワークエンジンによって(C)の生成HTML文が生成される様子を説明する。
まず、フレームワークエンジンは(A)のモデルオブジェクトがテーブルモデルインタフェースを実装していることを認識し、テーブルモデル用のフレームワークエンジンを起動する。そして、このテーブルモデルインタフェースのgetColumnCount及びgetRowCount の両メソッドが呼び出され、表示するテーブルの列数及び行数が認識される。この結果、ここでは3行3列のテーブルを表示されることが認識される。
Hereinafter, with reference to FIG. 26, a state in which the generated HTML sentence (C) is generated by the framework engine will be described.
First, the framework engine recognizes that the model object of (A) implements the table model interface, and activates the framework engine for the table model. Then, both the getColumnCount and getRowCount methods of this table model interface are called to recognize the number of columns and rows of the table to be displayed. As a result, it is recognized that a 3 × 3 table is displayed here.

次に、(B)のJSPソースにおいて、“type”がtable に指定されている(a)のテーブルレンダラの定義がまず参照され、(C)の生成HTML文の第1行目が生成される。   Next, in the JSP source in (B), the definition of the table renderer in (a) in which “type” is specified as table is first referenced, and the first line of the generated HTML statement in (C) is generated. .

ここで、(a)のテーブルレンダラの定義((B)の第4行目)にはレンダラエレメントタグ<uomf:children> が記述されており、(a)のレンダラタグにおける“type”はtable に指定されているので、行についてのテーブルレンダラ、すなわち(B)のJSPソースにおける(b)のテーブルレンダラの定義の展開が行なわれ、(C)の生成HTML文の第2行目が生成される。   Here, the renderer element tag <uomf: children> is described in the definition of the table renderer in (a) (the fourth line in (B)), and the “type” in the renderer tag in (a) is set to table. Because it is specified, the definition of the table renderer for the row, that is, the definition of the table renderer of (b) in the JSP source of (B) is expanded, and the second line of the generated HTML statement of (C) is generated. .

ここで、(b)のテーブルレンダラの定義((B)の第7行目)にもレンダラエレメントタグ<uomf:children> が記述されており、(b)のレンダラタグにおける“type”はrow に指定されているので、列についてのテーブルレンダラの定義の展開が行なわれる。但し、(B)のJSPソースには、(c)、(d)、(e)という列についてのテーブルレンダラ(“type”の指定がcolumnであるレンダラ)が3つ記述されているので、これらのうちのどのテーブルレンダラの定義の展開を行なうかが問題となる。   Here, the renderer element tag <uomf: children> is also described in the definition of the table renderer in (b) (the seventh line in (B)), and the “type” in the renderer tag in (b) is set to row. Because it is specified, the definition of the table renderer for the column is expanded. However, since the JSP source of (B) describes three table renderers (renderers whose “type” designation is column) for columns (c), (d), and (e), these Which table renderer definition is to be expanded becomes a problem.

このとき、フレームワークエンジンでは、(A)のモデルオブジェクトから、表示させるテーブルの1行目の各列のセルの値の取得、及びテーブルモデルインタフェースのgetColumnClassメソッドの呼び出しも行なわれている。これらの処理により、ここで取得されたセルの値は、“品名”、“単価”、“個数”という3つの文字列データであり、呼び出されたメソッドについての戻り値はこれら3つのいずれの値についてもheaderであった。   At this time, in the framework engine, the cell value of each column in the first row of the table to be displayed is acquired from the model object of (A), and the getColumnClass method of the table model interface is called. Through these processes, the cell value obtained here is three character string data of “product name”, “unit price”, and “number”, and the return value for the called method is any of these three values. Was also a header.

そこで、フレームワークエンジンは、このメソッドについての戻り値に基づき、(B)のJSPソースにおける(d)のテーブルレンダラの定義が選択され、その定義の展開を実行する。その結果、表示させるテーブルの1行目の表示方式を示すHTML文((C)の生成HTML文の第3、第4、第5行目)が、(d)のテーブルレンダラの定義内容((B)の第13行目)に基づいて生成される。ここで、(d)のテーブルレンダラの定義にはレンダラエレメントタグ<uomf:value>が含まれているので、この部分にはモデルオブジェクトから取得された各セルの値が挿入される。   Therefore, the framework engine selects the definition of the table renderer (d) in the JSP source (B) based on the return value for this method, and executes the definition expansion. As a result, the HTML statement indicating the display method of the first row of the table to be displayed (the third, fourth, and fifth rows of the generated HTML statement of (C)) is the definition content of the table renderer of (d) (( B) on the 13th line). Here, since the renderer element tag <uomf: value> is included in the definition of the table renderer in (d), the value of each cell acquired from the model object is inserted into this part.

ここまでで、先に行なった(b)のテーブルレンダラの定義((B)の第7行目)におけるレンダラエレメントタグ<uomf:children> についての展開が完了し、そのタグに続く次の定義の記述に基づいて(C)の生成HTML文の第6行目が生成され、テーブルの1行目の表示のためのHTML文の生成が完了する。   Up to this point, the expansion for the renderer element tag <uomf: children> in the definition of the table renderer in (b) (7th line in (B)) is completed, and the next definition following the tag is Based on the description, the sixth line of the generated HTML sentence of (C) is generated, and the generation of the HTML sentence for displaying the first line of the table is completed.

次に、テーブルの2行目の表示のためのHTML文の生成が開始され、行についてのテーブルレンダラ、すなわち(B)のJSPソースにおける(b)のテーブルレンダラの定義の再度の展開が行なわれ、(C)の生成HTML文の第7行目が生成される。   Next, generation of an HTML statement for displaying the second row of the table is started, and the table renderer for the row, that is, the definition of the (b) table renderer in the JSP source of (B) is expanded again. , (C) The seventh line of the generated HTML statement is generated.

ここで、前回と同様に(b)のテーブルレンダラの定義にレンダラエレメントタグ<uomf:children> の列についてのテーブルレンダラの定義への展開が行なわれる。
このとき、フレームワークエンジンでは、(A)のモデルオブジェクトから、表示させるテーブルの2行目の各列のセルの値の取得、及びテーブルモデルインタフェースのgetColumnClassメソッドの呼び出しも行なわれ、これらの処理により、ここで取得されたセルの値は、“XV−5080”、“198,000”、“”(ヌル)という3つのデータであり、呼び出されたメソッドについての戻り値は、最初の2つのセルについての値はヌルデータであり、最後のセルについての値はeditableであった。
Here, as in the previous case, the table renderer definition in (b) is expanded into the definition of the table renderer for the column of the renderer element tag <uomf: children>.
At this time, the framework engine also obtains the cell value of each column in the second row of the table to be displayed from the model object of (A) and calls the getColumnClass method of the table model interface. The cell values obtained here are three data, “XV-5080”, “198,000”, “” (null), and the return value for the called method is the first two cells. The value for was null data, and the value for the last cell was editable.

そこで、フレームワークエンジンは、最初の2つのセルについてのこのメソッドの戻り値に基づき、(B)のJSPソースにおける(c)のテーブルレンダラの定義の展開を実行する。その結果、表示させるテーブルの2行1列目及び2行2列目の表示方式を示すHTML文((C)の生成HTML文の第8及び第9行目)が、(c)のテーブルレンダラの定義内容((B)の第10行目)に基づいて生成される。ここで、(c)のテーブルレンダラの定義にもレンダラエレメントタグ<uomf:value>が含まれているので、この部分にはモデルオブジェクトから取得された各セルの値が挿入される。   Therefore, the framework engine executes expansion of the definition of the table renderer of (c) in the JSP source of (B) based on the return value of this method for the first two cells. As a result, the HTML statement (the eighth and ninth lines of the generated HTML statement of (C)) indicating the display method of the second row and the first column and the second row and the second column of the table to be displayed is the table renderer of (c). Is generated on the basis of the definition content (line 10 of (B)). Here, since the renderer element tag <uomf: value> is also included in the definition of the table renderer in (c), the value of each cell acquired from the model object is inserted into this part.

更に、フレームワークエンジンは、上述した最後のセルについてのこのメソッドの戻り値に基づき、(B)のJSPソースにおける(e)のテーブルレンダラの定義の展開を実行する。その結果、表示させるテーブルの2行3列目の表示方式を示すHTML文((C)の生成HTML文の第10行目)が、(e)のテーブルレンダラの定義内容((B)の第16行目)に基づいて生成される。   Further, the framework engine performs expansion of the definition of the table renderer of (e) in the JSP source of (B) based on the return value of this method for the last cell described above. As a result, the HTML statement indicating the display method of the second row and the third column of the table to be displayed (the 10th row of the generated HTML statement of (C)) is the definition content of the table renderer of (e) (the (B) 16th line).

ここまでで、先に行なった(b)のテーブルレンダラの定義((B)の第7行目)におけるレンダラエレメントタグ<uomf:children> についての展開が完了し、そのタグに続く次の定義の記述に基づいて(C)の生成HTML文の第11行目が生成され、テーブルの2行目の表示のためのHTML文の生成が完了する。   Up to this point, the expansion for the renderer element tag <uomf: children> in the definition of the table renderer in (b) (7th line in (B)) is completed, and the next definition following the tag is The eleventh line of the generated HTML sentence (C) is generated based on the description, and the generation of the HTML sentence for displaying the second line of the table is completed.

(C)の生成HTML文の第12行目から第16行目まで(テーブルの3行目の表示のためのHTML文)が生成される流れは、上述したテーブルの2行目の表示のためのHTML文((C)の生成HTML文の第7行目から第11行目まで)と同様である。   The flow in which the generated HTML statement (C) from the 12th line to the 16th line (HTML sentence for displaying the third line of the table) is generated is because the second line of the table described above is displayed. This is the same as the HTML sentence (from the seventh line to the eleventh line of the generated HTML sentence of (C)).

ここまでで、先に行なった(a)のテーブルレンダラの定義((B)の第4行目)におけるレンダラエレメントタグ<uomf:children> についての展開が完了し、そのタグに続く次の定義の記述に基づいて(C)の生成HTML文の第17行目が生成される。こうして、(C)に示すテーブルの表示のためのHTML文の生成が完了する。   Up to this point, the expansion of the renderer element tag <uomf: children> in the definition of the table renderer in (a) (line 4 in (B)) is completed, and the next definition following the tag is Based on the description, the 17th line of the generated HTML sentence of (C) is generated. Thus, the generation of the HTML sentence for displaying the table shown in (C) is completed.

なお、前述したように、生成されたHTML文はクライアントに宛てて送出される。この後、このHTML文に対応するリクエストがクライアントから送付されてきたときにそのリクエストがどのモデルオブジェクトについてのものであるかを容易に特定できるようにするために、ブラウザによって入力フィールドがクライアントで表示されない、いわゆるhidden属性のinputタグ(<input type=hidden>)がこの生成されたHTML文に追加されて送出される。このinputタグには、モデルの種類を示す文字列とHTML文の生成に用いられたビュー毎に一意なID(識別子)とが記述されるようにして、これらのデータがそのリクエストに自動的に含まれるようにする。   As described above, the generated HTML sentence is sent to the client. After that, when a request corresponding to this HTML sentence is sent from the client, an input field is displayed on the client by the browser so that the model object can be easily identified. A so-called hidden attribute input tag (<input type = hidden>) is added to the generated HTML statement and sent out. In this input tag, a character string indicating the model type and a unique ID (identifier) for each view used to generate the HTML statement are described, and these data are automatically included in the request. To be included.

図24に示すテーブルモデル用のフレームワークエンジン3003が、ブラウザ3005によってクライアントにテーブルを表示させるためのHTML文を生成する、以上までに説明した処理を、図27、図28、及び図29に示すフローチャートに沿って更に説明する。なお、この処理を「表示時の処理」と称することとする。   The process described above, in which the table model framework engine 3003 shown in FIG. 24 generates an HTML statement for the browser 3005 to display the table on the client, is shown in FIGS. 27, 28, and 29. Further description will be given along the flowchart. This process is referred to as “display process”.

フレームワークエンジン3003は、まず、表示用JSP3004を読み込み、表示用JSP3004に含まれているビュータグを検出する。続いてそのビュータグによって示されているビューに含まれている各レンダラを、レンダラタグで指定されている“type”及び“cls ”に基づいて分類してバッファの所定の場所に登録する。更に、この登録を終えた後に、フレームワークエンジン3003は、ビュータグに指定されているモデルオブジェクト3001からデータを取得しながら図27、図28、及び図29に示すフローチャートに沿った処理を開始する。なお、ここまでの処理を「ビュータグの解析処理」と総称することとする。   The framework engine 3003 first reads a display JSP 3004 and detects a view tag included in the display JSP 3004. Subsequently, each renderer included in the view indicated by the view tag is classified based on “type” and “cls” specified by the renderer tag and registered in a predetermined location of the buffer. Furthermore, after completing this registration, the framework engine 3003 starts processing according to the flowcharts shown in FIGS. 27, 28, and 29 while acquiring data from the model object 3001 specified in the view tag. The processing so far is collectively referred to as “view tag analysis processing”.

図27には、テーブルモデル用のフレームワークエンジン3003によって行なわれる表示時の制御処理の全体フローが示されている。
図27に示す処理が開始されると、まず、ビューの一意IDが生成される(S3101)。ビューの一意IDは、前述したように、HTML文の生成に用いられる表示用JSP3004のビュー毎に一意なIDであり、例えば“uji.model.00001”などのように、共通のプレフィックス(接頭辞)(“uji.model.”の部分)とHTML文生成の度に異なる連番の数字(“00001”の部分)とを組み合わせたものを生成するようにすればよい。このビュー毎に異なる一意なIDは、複数のモデルオブジェクトについての表示がクライアントで行なわれ、それらの各々についてのリクエストをサーバが受け取ったときに、受け取ったリクエストがそれぞれどのモデルオブジェクトについてのものであるかを識別できるようにするために用いられるものであり、クライアントではモデルオブジェクトに対応するIDを含んだリクエストが生成される。
FIG. 27 shows an overall flow of control processing at the time of display performed by the framework engine 3003 for the table model.
When the process shown in FIG. 27 is started, first, a view unique ID is generated (S3101). As described above, the unique ID of the view is an ID unique to each view of the display JSP 3004 used for generating the HTML sentence. For example, a common prefix (prefix) such as “uji.model.00001” is used. ) ("Uji.model." Part) and a different serial number ("00001" part) may be generated each time an HTML sentence is generated. This unique ID for each view is displayed for a plurality of model objects, and when a request for each of them is received by the server, each received request is for which model object. And a request including an ID corresponding to the model object is generated at the client.

続いて、前述した処理によってフレームワークエンジン3003の有するバッファに登録されている各レンダラから、“type”がtable に指定されているものが取得される(S3102)。   Subsequently, from the renderers registered in the buffer of the framework engine 3003 by the above-described processing, those having “type” specified in table are acquired (S3102).

その後、レベルをtable とし、子レベルをrow としたときのレンダラ表示処理が実行される(S3103)。レンダラ表示処理は図28にフローチャートで示した処理であり、その詳細は後述する。   After that, the renderer display process when the level is set to table and the child level is set to row is executed (S3103). The renderer display process is the process shown in the flowchart of FIG. 28, and details thereof will be described later.

上述したS3103の処理によってテーブルを表示させるためのHTML文が生成される。そこで、フレームワークエンジン3003は、前述したhidden属性のinputタグを生成してこのHTML文に追加する(S3104)。ここで生成されるinputタグは例えば下記のようなものとする。
<input type=hidden name=”uji.model” value=”uji.model.00001”>
<input type=hidden name=”uji.model.00001” value=”table”>
ここで、“uji.model.00001”は先に生成されたビューの一意IDの例である。これらのinputタグがHTML文に追加されることによって、このHTML文に対応するリクエストにこれらの情報が含まれるようになり、リクエストとモデルオブジェクト3001との対応関係が明らかになる。
An HTML sentence for displaying the table is generated by the process of S3103 described above. Therefore, the framework engine 3003 generates an input tag with the aforementioned hidden attribute and adds it to the HTML sentence (S3104). The input tag generated here is as follows, for example.
<input type = hidden name = ”uji.model” value = ”uji.model.00001”>
<input type = hidden name = ”uji.model.00001” value = ”table”>
Here, “uji.model.00001” is an example of the unique ID of the previously generated view. By adding these input tags to the HTML sentence, the information corresponding to the request corresponding to the HTML sentence is included, and the correspondence between the request and the model object 3001 becomes clear.

次に、図27のS3103において実行される、図28にフローチャートで示すレンダラ表示処理について説明する。
なお、以降の説明及び図面においては、今までに用いていたレンダラエレメントタグの表記(例えば<umof:children> )に加え、uomf: の接頭辞を略した表記(例えば<children>)も併用することとする。
Next, the renderer display process shown in the flowchart of FIG. 28 executed in S3103 of FIG. 27 will be described.
In the following description and drawings, in addition to the renderer element tag notation used so far (for example, <umof: children>), the abbreviation for the uomf: prefix (for example, <children>) is also used. I will do it.

まず、このレンダラ表示処理が呼び出されたときのレベルが何であったかが調べられ、このレベルが“type”に指定されているレンダラにおける表示方式を定義している要素が未だ残されているか否かが判定され(S3201)、判定結果がYesならば、次の要素(レンダラエレメント)がひとつ取得され(S3202)、S3203に処理が進む。一方、S3201の判定結果がNoならばこのレンダラ表示処理が終了し、元の処理へ戻る。   First, the level at the time this renderer display process is called is checked, and whether or not the elements that define the display method in the renderer whose level is specified as “type” is still left. If it is determined (S3201) and the determination result is Yes, one next element (renderer element) is acquired (S3202), and the process proceeds to S3203. On the other hand, if the determination result in S3201 is No, the renderer display process ends, and the process returns to the original process.

続いて、S3202の処理によって取得された要素がどのようなものであるかが判定される(S3203、S3206、S3208、S3210)。
この結果、取得された要素がビュータグであるならば(S3203の判定結果がYes)、前述したビュータグの解析処理がこのビュータグに対して行なわれ(S3204)、その後、前述した図27の処理をこのビュータグについて実行し(S3205)、この処理の終了後はS3201へ処理が戻る。
Subsequently, it is determined what kind of element is acquired by the process of S3202 (S3203, S3206, S3208, S3210).
As a result, if the acquired element is a view tag (Yes in S3203), the view tag analysis process described above is performed on this view tag (S3204), and then the process shown in FIG. The process is executed for the view tag (S3205), and after this process is completed, the process returns to S3201.

このS3204及びS3205の処理は、あるビューの記述中に別のビューの記述がなされている(ビューがネストしている)ときに行なわれるものであり、例えば、テーブルモデルのあるセル中に更に別のモデルが存在するような場合に対応させるためのものである。   The processing in S3204 and S3205 is performed when another view is described during the description of a certain view (the view is nested). For example, the processing is further performed in a certain cell of the table model. This is to cope with the case where there is a model.

S3202の処理によって取得された要素が<children>のレンダラエレメントタグであるならば(S3206の判定結果がYes)、このレンダラ表示処理が呼び出されたときの子レベルが何であったかが調べられ、この子レベルについての表示処理が実行され(S3207)、この処理の終了後はS3201へ処理が戻る。子レベルがrow であるときの表示処理は図29(A)にフローチャートで示されており、子レベルがcolumnであるときの表示処理は図29(B)にフローチャートで示されている。これらの表示処理は後で説明する。   If the element acquired by the processing of S3202 is a renderer element tag of <children> (the determination result of S3206 is Yes), it is checked what the child level was when this renderer display processing was called, and this child A display process for the level is executed (S3207), and after the completion of this process, the process returns to S3201. The display process when the child level is row is shown in the flowchart of FIG. 29A, and the display process when the child level is column is shown in the flowchart of FIG. 29B. These display processes will be described later.

また、S3202の処理によって取得された要素が<name>のレンダラエレメントタグであるならば(S3208の判定結果がYes)、後にリクエストにおいて使用される要素に名前付けを行なう処理が実行され(S3209)、この処理の終了後はS3201へ処理が戻る。   If the element acquired by the process of S3202 is the renderer element tag of <name> (Yes in S3208), a process for naming elements used in the request is executed (S3209). After this process is completed, the process returns to S3201.

ここで、<name>のレンダラエレメントタグについて説明する。このタグは、所定の規則に従った名前をフレームワークエンジンに生成させるものである。
本実施例においては、この名前は図30の(A)に示す規則に従って生成される。ここで、モデル固有位置とは、あるモデルでの自己の位置を一意に表すための文字列であり、例えば、テーブルモデルにおいて2行3列目を表すのであれば、“2_3”などというように文字列を生成すればよい。このとき、前述したビューの一意IDの生成例(“uji.model.00001”)をそのまま流用すれば、このときに<name>のレンダラエレメントタグに応じて生成される名前は図30の(B)のようになる。
Here, the renderer element tag of <name> will be described. This tag causes the framework engine to generate a name according to a predetermined rule.
In this embodiment, this name is generated according to the rules shown in FIG. Here, the model unique position is a character string for uniquely representing its own position in a certain model. For example, if it represents the second row and the third column in the table model, “2_3” or the like is used. Just generate a string. At this time, if the above-described example of generating the unique ID of the view (“uji.model.00001”) is used as it is, the name generated according to the renderer element tag of <name> at this time is (B )become that way.

このような規則による名前付けを行うことにより、この名前からモデルオブジェクト及びそのモデルにおける位置を特定することができる。
<name>のレンダラエレメントタグを使用したレンダラの定義例を図31に示す。同図に示す定義の記述を説明すると、<uomf:value/> によってモデルオブジェクトから取得された値が更新前の値としてテーブル中の更新可能なセルに挿入されてクライアントで表示される。ここで、このセルの値がクライアントにおいて更新されるとリクエストが送信される。このリクエストでは、<uomf:name/>で生成される名前が更新後のセルの値を参照するための参照名として用いられる。こうすることによって、テーブルモデルエンジンでは、前述した名前付けの規則により、モデルオブジェクト及びそのモデルにおける位置をこの参照名から特定することができるので、クライアントで生成するひとつのリクエスト中に複数の更新データを含ませるようにすることもでき、更に、異なるモデルオブジェクトについての複数の更新データをひとつのリクエストに含ませることもできる。
By naming according to such a rule, the model object and the position in the model can be specified from this name.
FIG. 31 shows an example of a renderer definition using the <name> renderer element tag. When the description of the definition shown in the figure is described, the value acquired from the model object by <uomf: value /> is inserted into the updatable cell in the table as the value before updating and displayed on the client. Here, a request is transmitted when the value of this cell is updated in the client. In this request, the name generated by <uomf: name /> is used as a reference name for referring to the updated cell value. By doing so, the table model engine can identify the model object and the position in the model from the reference name according to the naming rule described above, so that multiple update data can be included in one request generated by the client. In addition, a plurality of update data for different model objects can be included in one request.

また、前述したような、ネストしているビューの中に<uomf:name> のレンダラエレメントタグが記述されている場合には、図30の(C)に示す例のように、ネストの外側で生成される名前(例えば図30の(B)に示される名前)をプレフィックスとしたものに連番の数字等を組み合わせて前述のビュー一意IDを生成し、そのビュー一意IDにそのネストしているビューにおけるモデル固有位置を組み合わせたものをレンダラエレメントタグについての名前として生成するようにする。この名前付けの規則により、生成された名前から、ネストの存在及びビューの継承関係を認識すること、及びそのネストに係るモデルを特定することができる。   Further, when the renderer element tag of <uomf: name> is described in the nested view as described above, as shown in the example of FIG. The view unique ID is generated by combining the generated name (for example, the name shown in FIG. 30B) with a prefix number and the like, and the view unique ID is nested in the view unique ID. A combination of model specific positions in the view is generated as the name for the renderer element tag. By this naming rule, it is possible to recognize the existence of the nest and the inheritance relationship of the view from the generated name, and to specify the model related to the nest.

図28の説明に戻る。
S3202の判定処理によって取得された要素が<value> のレンダラエレメントタグであるならば(S3210の判定結果がYes)、このテーブルモデルにおける現在の位置に対応する値がモデルオブジェクトから取得され(S3211)、この後にS3201へ処理が戻る。
Returning to the description of FIG.
If the element acquired by the determination process of S3202 is a <value> renderer element tag (the determination result of S3210 is Yes), a value corresponding to the current position in this table model is acquired from the model object (S3211). Thereafter, the process returns to S3201.

一方、S3202の判定処理によって取得された要素が上述したいずれのタグともことなるものであるならば(S3203、S3206、S3208、S3210の判定結果が全てNo)、この取得された要素が生成HTML文にそのまま表示され(S3212)、この後にS3201へ処理が戻る。   On the other hand, if the element acquired by the determination process of S3202 is different from any of the tags described above (the determination results of S3203, S3206, S3208, and S3210 are all No), the acquired element is a generated HTML sentence. (S3212), and the process returns to S3201.

以上までの処理がレンダラ表示処理である。
次に、上述したレンダラ表示処理のS3207において実行される、子レベルについての表示処理を説明する。前述したように子レベルがrow であるときの表示処理は図29(A)にフローチャートで示されており、子レベルがcolumnであるときの表示処理は図29(B)にフローチャートで示されている。
The above processing is the renderer display processing.
Next, the display process for the child level, which is executed in S3207 of the renderer display process described above, will be described. As described above, the display process when the child level is row is shown in the flowchart of FIG. 29A, and the display process when the child level is column is shown in the flowchart of FIG. 29B. Yes.

まず、図29(A)のフローチャートを説明する。
まず、変数rowの値が0とされ、この変数rowの値がgetRowCount()メソッドの戻り値(すなわちテーブルの行数)を超えるまでS3302からS3304までの処理が繰り返される(S3301)。
First, the flowchart of FIG. 29A will be described.
First, the value of the variable row is set to 0, and the processing from S3302 to S3304 is repeated until the value of the variable row exceeds the return value (that is, the number of rows in the table) of the getRowCount () method (S3301).

続いて、モデルオブジェクト3001から、変数rowの値で示される行についての行クラス(getRowClass())が取得される(S3302)。
次に、フレームワークエンジン3003の有するバッファに登録されている各レンダラより、取得された行クラスが“cls ”に指定されており、且つ、“type”がrow に指定されているレンダラが取得される(S3303)。
Subsequently, the row class (getRowClass ()) for the row indicated by the value of the variable row is acquired from the model object 3001 (S3302).
Next, from each renderer registered in the buffer of the framework engine 3003, a renderer in which the acquired row class is specified as “cls” and “type” is specified as row is acquired. (S3303).

ここで、レベルをrow とし、子レベルをcolumnとしたときのレンダラ表示処理が実行される(S3304)。ここで実行されるレンダラ処理は、既に説明した、図28に示されているものである。   Here, the renderer display process when the level is set to row and the child level is set to column is executed (S3304). The renderer process executed here is the one already described with reference to FIG.

その後、変数rowの値に1を加算した結果の値が改めて変数rowに代入され、S3301へ処理が戻る(S3305)。変数rowの値が前述した条件に達したならばこの処理が終了し、元の処理へ戻る。   Thereafter, the value obtained by adding 1 to the value of the variable row is substituted for the variable row, and the process returns to S3301 (S3305). If the value of the variable row reaches the above-described condition, this process ends and returns to the original process.

次に、図29(B)のフローチャートを説明する。この処理は、基本的には上述した図29(A)と同様の処理が実行される。
まず、変数columnの値が0とされ、この変数columnの値がgetcolumnCount()メソッドの戻り値(すなわちテーブルの列数)を超えるまでS3402からS3404までの処理が繰り返される(S3401)。
Next, the flowchart of FIG. 29B will be described. This process is basically the same as the process shown in FIG.
First, the value of the variable column is set to 0, and the processing from S3402 to S3404 is repeated until the value of the variable column exceeds the return value of the getcolumnCount () method (that is, the number of columns in the table) (S3401).

続いて、モデルオブジェクト3001から、変数rowの値で示される行についての列クラス(getColumnClass())が取得される(S3402)。
次に、フレームワークエンジン3003の有するバッファに登録されている各レンダラより、取得された列クラスが“cls ”に指定されており、且つ、“type”がcolumnに指定されているレンダラが取得される(S3403)。
Subsequently, the column class (getColumnClass ()) for the row indicated by the value of the variable row is acquired from the model object 3001 (S3402).
Next, from each renderer registered in the buffer of the framework engine 3003, the renderer whose acquired column class is specified as “cls” and whose “type” is specified as column is acquired. (S3403).

ここで、レベルをcolumnとし、子レベルを無し(ヌル)としたときのレンダラ表示処理が実行される(S3404)。ここで実行されるレンダラ処理も、既に説明した、図28に示されているものである。   Here, a renderer display process is executed when the level is column and the child level is none (null) (S3404). The renderer process executed here is also the one already described with reference to FIG.

その後、変数columnの値に1を加算した結果の値が改めて変数columnに代入され、S3401へ処理が戻る(S3405)。変数columnの値が前述した条件に達したならばこの処理が終了し、元の処理へ戻る。   Thereafter, the value obtained by adding 1 to the value of the variable column is again assigned to the variable column, and the process returns to S3401 (S3405). If the value of the variable column reaches the above-described condition, this process ends and returns to the original process.

以上までの処理が表示処理である。
なお、この表示処理が終了した後に、フレームワークエンジン3003は、表示用JSP3004のJSPソースとモデルオブジェクト3001との対応関係が示されている記述(図26(B)の例では第1行目)を参照し、図32に示す記憶領域管理処理を実行する。すなわち、この記述でrequest がtrueに設定されているか否かが判定され(S3501)、この判定結果がYesならば、フレームワークエンジン3003の有する記憶部に保持されているモデルオブジェクト3001の内容をその後も継続し(S3502)、この判定結果がNoならば、フレームワークエンジン3003の有する記憶部におけるモデルオブジェクト3001の記憶領域を解放する(S3503)。
The above processing is display processing.
After this display processing is completed, the framework engine 3003 describes the correspondence between the JSP source of the display JSP 3004 and the model object 3001 (first line in the example of FIG. 26B). Referring to FIG. 32, the storage area management process shown in FIG. 32 is executed. That is, it is determined whether or not request is set to true in this description (S3501). If the determination result is Yes, the contents of the model object 3001 held in the storage unit of the framework engine 3003 are thereafter (S3502), if this determination result is No, the storage area of the model object 3001 in the storage unit of the framework engine 3003 is released (S3503).

次に、図24に示すシステムにおいて、ブラウザ3005から発せられるリクエストをフレームワークエンジン3003が受け取ってモデルオブジェクト3001を更新する動作について説明する。なお、この動作を「リクエスト時の動作」と称することとする。   Next, in the system shown in FIG. 24, an operation in which the framework engine 3003 receives a request issued from the browser 3005 and updates the model object 3001 will be described. This operation is referred to as “operation upon request”.

図33は、図24に示すシステムにおけるリクエスト時の動作の概要を説明する図である。
まず、フレームワークエンジン3003により生成された、通常の(hidden属性でない)<input> タグを含むHTML文をクライアントが受け取り、クライアントに装備されているブラウザ3005がそのHTML文に基づいてテーブルを表示させている。ここで、この<input> タグに対応するデータがクライアントに入力されると、ブラウザ3005はこのデータを含むHTTPによるリクエストをサーバ側に送信する。
FIG. 33 is a diagram for explaining the outline of the operation at the time of the request in the system shown in FIG.
First, the client receives an HTML sentence including a normal (non-hidden attribute) <input> tag generated by the framework engine 3003, and the browser 3005 equipped on the client displays a table based on the HTML sentence. ing. Here, when data corresponding to the <input> tag is input to the client, the browser 3005 transmits an HTTP request including this data to the server side.

サーバのフロントコンポーネント3006は、このHTTPリクエストを受信すると、フレームワークエンジン3003を起動させるための指示を与え、リクエストをフレームワークエンジン3003に渡す。   When receiving the HTTP request, the front component 3006 of the server gives an instruction for starting the framework engine 3003 and passes the request to the framework engine 3003.

フレームワークエンジン3003では、まず、受け取ったリクエストがどのモデルについてのものかを判断する。この判断は、前述したhidden属性の<input> タグの作用によってリクエストに含まれるモデルの種類についての情報を利用する。ここで、例えば、このリクエストがテーブルモデルについてのものであると判断されれば、テーブルモデル用のエンジンが選択されて起動される。   The framework engine 3003 first determines which model the received request is for. This determination uses information on the model type included in the request by the action of the <input> tag of the hidden attribute described above. Here, for example, if it is determined that this request is for a table model, an engine for the table model is selected and started.

続いて、フレームワークエンジン3003は、同じくhidden属性の<input> タグの作用によってリクエストに含まれることとなる、ビューの一意IDから、このリクエストに含まれるデータを代入すべきモデルオブジェクト3001を特定する。   Subsequently, the framework engine 3003 identifies the model object 3001 to which the data included in the request is to be substituted from the unique ID of the view that is included in the request by the action of the <input> tag of the hidden attribute. .

そして、特定されたモデルオブジェクト3001がフレームワークエンジン3003内の記憶領域に保持されていればその保持されているものに対してリクエストに含まれていたデータを代入し、保持されていなければ、モデルオブジェクト3001を改めて生成してそのデータの代入を行なう。   If the specified model object 3001 is held in the storage area in the framework engine 3003, the data included in the request is substituted for the held model object 3001, and if not, the model object 3001 An object 3001 is newly generated and the data is substituted.

なお、モデルオブジェクト3001へデータを代入するには、その代入すべきデータをモデルに応じた更新メソッドに変換し、モデルオブジェクトを更新させるインタフェースメソッド(例えば図25に示したテーブルモデルインタフェース3002を更新するのであれば、setValueAtメソッド)を呼び出すことにより、モデルオブジェクト3001の更新を行うようにすればよい。   In order to assign data to the model object 3001, the data to be substituted is converted into an update method corresponding to the model, and an interface method for updating the model object (for example, the table model interface 3002 shown in FIG. 25 is updated). In this case, the model object 3001 may be updated by calling the setValueAt method).

フレームワークエンジン3003で行なわれる、上述したリクエスト時の制御処理の処理内容を図34にフローチャートで示す。
図34では、この制御処理の全体フローを(A)として示し、この制御処理の途中で実行されるテーブルモデル用のモデルアップデート処理を(B)として示している。
FIG. 34 is a flowchart showing the processing contents of the above-described control processing at the time of request performed by the framework engine 3003.
In FIG. 34, the overall flow of this control process is shown as (A), and the model update process for the table model executed in the middle of this control process is shown as (B).

クライアントのブラウザ3005で生成された、前述した表示処理によって生成されたHTML文に基づく表示に応じて入力されたデータを含むリクエストには、前述した名前付けの規則に基づくそのデータの参照名が示されていることは既に説明した。そこで、フレームワークエンジン3003は、リクエストを受け取ると、まず、そのリクエストに含まれているその参照名を全て取り出す。そして、取り出された参照名のうちのひとつが変数keyに代入される(S3601)。   The request including the data input in response to the display based on the HTML sentence generated by the display process described above generated by the browser 3005 of the client indicates the reference name of the data based on the naming rule described above. I have already explained that. Therefore, when receiving a request, the framework engine 3003 first extracts all the reference names included in the request. Then, one of the retrieved reference names is assigned to the variable key (S3601).

ここで、この変数keyの値が、フレームワークエンジン3003で扱えるモデルを表すものであるか否かが判定され(S3602)、この判定結果がYesならば、続いてその変数keyに対応するモデルオブジェクト3001がフレームワークエンジン3003の有する記憶部に保持されているか否かが判定される(S3603)。   Here, it is determined whether or not the value of the variable key represents a model that can be handled by the framework engine 3003 (S3602). If the determination result is Yes, the model object corresponding to the variable key is subsequently determined. It is determined whether 3001 is held in the storage unit of the framework engine 3003 (S3603).

このS3603の判定結果がYesならば、その記憶部に保持されているモデルオブジェクト3001が取得され(S3604)、このS3603の判定結果がNoならば、改めてモデルオブジェクト3001が作成される(S3605)。そして、このモデルオブジェクト3001に対してモデルアップデート処理が施される(S3606)。   If the determination result in S3603 is Yes, the model object 3001 held in the storage unit is acquired (S3604). If the determination result in S3603 is No, the model object 3001 is created again (S3605). Then, a model update process is performed on the model object 3001 (S3606).

モデルアップデート処理を完了した後、若しくはS3602の判定結果がNoであったときには、リクエストから取り出されている別の参照名が変数keyに設定され、その後、上述したS3602からS3606までの処理が取り出された全ての参照名について行なわれるまで、処理が繰り返される(S3607)。   After completing the model update process or when the determination result in S3602 is No, another reference name extracted from the request is set in the variable key, and then the above-described processes from S3602 to S3606 are extracted. The process is repeated until it is performed for all the reference names (S3607).

次に、上述したS3606の処理において実行される、図34(B)に示すテーブルモデル用のモデルアップデート処理について説明する。
まず、変数keyの値(すなわち、リクエストに含まれる更新データの参照名)が分解され、その名前を構成している前述したモデル固有位置から、テーブルモデル上の行(row )及び列(column)の位置が取得される(S3701)。
Next, the model update process for the table model shown in FIG. 34B, which is executed in the process of S3606 described above, will be described.
First, the value of the variable key (that is, the reference name of the update data included in the request) is decomposed, and the row (row) and column (column) on the table model from the above-described model specific position constituting the name. Is acquired (S3701).

そして、モデルオブジェクト3001のsetValueAt()メソッドが呼び出され、取得されたテーブルモデルの行と列との位置、及びこの参照名により参照される更新データの値がそのメソッドに渡されることにより、モデルオブジェクト3001が更新され(S3702)、その後は図34(A)に処理が戻る。   Then, the setValueAt () method of the model object 3001 is called, and the position of the acquired row and column of the table model and the value of the update data referred to by this reference name are passed to the method, whereby the model object 3001 is updated (S3702), and then the process returns to FIG.

以上までの処理をフレームワークエンジン3003が実行することによって、ブラウザ3005から発せられるリクエストに基づいたモデルオブジェクト3001の更新が行なわれる。   When the framework engine 3003 executes the above processing, the model object 3001 is updated based on the request issued from the browser 3005.

以上までに説明した本発明の第3の実施例を実施するクライアントサーバシステムの例を図35に示す。
サーバ3010は、モデルフレームワーク処理部3011、Webサーバ部3012、バックエンド3013を備える。
FIG. 35 shows an example of a client server system that implements the third embodiment of the present invention described above.
The server 3010 includes a model framework processing unit 3011, a Web server unit 3012, and a back end 3013.

モデルフレームワーク処理部3011は、図24におけるフレームワークエンジン3003に相当する機能を実行する。
Webサーバ部3012は、モデルフレームワーク処理部3011で生成されたHTML文をクライアント(3020a、3020b、3020c、…)に送る機能と、クライアント(3020a、3020b、3020c、…)からの陸エンストを受け付けてモデルフレームワーク処理部3011に渡すフロントコンポーネント3006に相当する機能とを実行する。
The model framework processing unit 3011 executes a function corresponding to the framework engine 3003 in FIG.
The Web server unit 3012 accepts the HTML sentence generated by the model framework processing unit 3011 to the client (3020a, 3020b, 3020c,...) And the land entry from the client (3020a, 3020b, 3020c,...). The function corresponding to the front component 3006 passed to the model framework processing unit 3011 is executed.

バックエンド3013は、データベース3014に蓄積されているデータの操作を行ない、モデルオブジェクト3001を使用してモデルフレームワーク処理部3011とデータの授受を行なう。   The back end 3013 operates the data stored in the database 3014 and exchanges data with the model framework processing unit 3011 using the model object 3001.

クライアント(3020a、3020b、3020c、…)はブラウザ3005を装備し、サーバ3010から送られてくるHTML文に基づいた画面の表示、及び、その表示画面に含まれている入力フォームへの入力に対応するリクエストの生成及びサーバ3010へ宛てての送信を行なうものである。   Clients (3020a, 3020b, 3020c,...) Are equipped with a browser 3005 and can display a screen based on an HTML sentence sent from the server 3010 and input to an input form included in the display screen. The request is generated and transmitted to the server 3010.

次に、本発明の更なる実施例について説明する。
これより説明する実施例は、Webアプリケーションを開発する際に、ロジックである処理スクリプトの定義を呼び出す記述を画面の見かけを定義するモジュールには直接記述せずに利用可能とするものであり、処理スクリプトの定義によって表現されるロジックの部品化が可能となり、ロジックと画面定義との分離が進むことによって、ロジックの再利用性を高めてWebアプリケーションの開発効率を向上させるというものである。
Next, further embodiments of the present invention will be described.
In the embodiment described below, when a web application is developed, a description for calling a definition of a processing script that is logic can be used without being directly described in a module that defines the appearance of a screen. The logic expressed by the definition of the script can be divided into parts, and the separation of the logic and the screen definition is advanced, thereby improving the reusability of the logic and improving the development efficiency of the Web application.

なお、これより説明する上述した実施例を、既に説明した他の実施例と区別するために、「第4の実施例」と称することとする。
まず、図36について説明する。同図は本発明の第4の実施例によってスクリプトが生成される様子を示しており、(A)に示す記述文に対して後述するコンテンツ変換処理が施されることによって(B)に示すスクリプトを含むHTML文が生成されることを示している。
The embodiment described above will be referred to as a “fourth embodiment” in order to distinguish it from the other embodiments already described.
First, FIG. 36 will be described. This figure shows a state in which a script is generated by the fourth embodiment of the present invention, and the script shown in (B) by performing the content conversion processing described later on the description sentence shown in (A). It is shown that an HTML sentence including

図36(A)及び(B)の記述内容は、ブラウザによる表示において、ある入力用のフォーム部品に対してなされるクリック操作に応じて、クリック操作がなされたことを通知する警告画面を表示させる処理を行なう処理スクリプトを実行させるというものである。なお、説明の便宜のため、図36の(A)及び(B)の各行頭には行番号を付している。   36 (A) and 36 (B) displays a warning screen notifying that a click operation has been performed in response to a click operation performed on a form part for input in the display by the browser. A processing script for performing processing is executed. For convenience of explanation, line numbers are given to the heads of the lines in FIGS.

従来のWebアプリケーションの開発手法によれば、上述した処理をブラウザに行なわせるためには、図36(B)に示すようなHTML文、すなわち、スクリプト部分の呼び出しを行なう条件となるプロパティの記述(図36(B)第8行目の記述)と、処理スクリプト自体の動作の定義(図36(B)第1行目から第6行目の記述)とを直接記述し、更にこの両者の関連を示すためにその双方に処理スクリプトの名前(図36(B)の例ではaction123() )を記述する必要があった。そのため、何らかの理由によってこれらのどちらかに修正が必要となっても、結局両者を参照してその一方に対する修正が他方に影響を与えていないかを確認する必要が生じてしまうため、保守性に問題があった。また、このために、結局は処理スクリプトの動作定義とその処理スクリプトの呼び出しを行なう部分とを同一のコンポーネントに記述することとなり、処理スクリプトの動作定義の再利用性も低かった。   According to the conventional Web application development method, in order to cause the browser to perform the above-described processing, an HTML statement as shown in FIG. 36B, that is, a description of a property that is a condition for calling the script portion ( 36 (B) description on the 8th line) and the definition of the operation of the processing script itself (FIG. 36 (B) description on the 1st to 6th lines) are directly described, and the relationship between the two. In order to indicate that, the name of the processing script (action123 () in the example of FIG. 36B) needs to be described in both of them. Therefore, even if one of these needs to be corrected for some reason, it will eventually be necessary to refer to both to see if the correction to one of them affects the other. There was a problem. For this reason, the action definition of the process script and the part that calls the process script are eventually written in the same component, and the reusability of the action definition of the process script is low.

一方、この第4実施例では、同図(A)に示すような各種のタグを用いた記述文を作成し、この記述文に対してコンテンツ変換処理を施すことで(B)に示すスクリプトを含むHTML文を自動的に生成させるようにするものである。同図(A)には、処理スクリプトに名称が指定されておらず、更に、処理スクリプトを起動させる条件を示すプロパティ(同図(B)の第8行目の“onclick=”で始まり、処理スクリプト名を指定する記述)も記述されていない。   On the other hand, in the fourth embodiment, a description sentence using various tags as shown in FIG. 6A is created, and the script shown in FIG. The HTML sentence to be included is automatically generated. In FIG. 9A, a name is not specified for the processing script, and a property indicating a condition for starting the processing script (starting with “onclick =” on the eighth line in FIG. The description that specifies the script name) is also not described.

まず、同図(A)を説明する上で必要な概念を説明する。
図37は、本発明の第4の実施例で使用されるオブジェクトの構成を示している。
コンポーネント(ScriptComponent )オブジェクト4001は、ブラウザによって画面中に表示されているオブジェクトに対するイベントの発生元となるオブジェクトであり、図36(A)の例における<input> タグ(ValidInputTag オブジェクト4011)はコンポーネントタグと呼ばれる。コンポーネントタグはアクションタグをその内部に有しており、そのアクションタグに記述されるプロパティの内容である、処理スクリプトの呼び出しを行うためのイベントの指定が行なわれる。
First, the concept necessary for explaining FIG.
FIG. 37 shows the structure of an object used in the fourth embodiment of the present invention.
A component (ScriptComponent) object 4001 is an object that is an event generation source for an object displayed on the screen by the browser. An <input> tag (ValidInputTag object 4011) in the example of FIG. be called. The component tag has an action tag therein, and an event for calling a processing script, which is the content of a property described in the action tag, is specified.

コンテナ(ScriptContainer )オブジェクト4002は、コンポーネントオブジェクト4001の管理やアクションオブジェクト4003の有する処理スクリプトの出力を行なうオブジェクトであり、図36(A)の例における<form>タグ(ValidFormTagオブジェクト4012)はコンテナタグと呼ばれる。なお、コンテナオブジェクト4002はコンポーネントオブジェクト4001を継承しており、自らがイベントの発生元となることもある。   A container (ScriptContainer) object 4002 is an object for managing the component object 4001 and outputting a processing script of the action object 4003. A <form> tag (ValidFormTag object 4012) in the example of FIG. be called. Note that the container object 4002 inherits the component object 4001 and may itself become an event generation source.

アクション(ScriptAction)オブジェクト4003は、ロジックである処理の定義がスクリプトによりなされるオブジェクトであり、図36(A)の例における<action >タグはアクションタグと呼ばれる。なお、アクションタグはカスタムアクションタグ(CustomActiontag オブジェクト4013a)とマイアクションタグ(MyActiontag オブジェクト4014b)とがあるが、この詳細は後述する。   An action (ScriptAction) object 4003 is an object in which a process that is logic is defined by a script. An <action> tag in the example of FIG. 36A is called an action tag. The action tag includes a custom action tag (CustomActiontag object 4013a) and a my action tag (MyActiontag object 4014b), which will be described in detail later.

スクリプト呼び出し部(ScriptCaller)オブジェクト4004は、イベントの発生に応じて個別に処理スクリプトの呼び出しを行なうときの各処理スクリプトの呼び出し法や戻り値の解釈法を決定するオブジェクトである。   A script call part (ScriptCaller) object 4004 is an object that determines a call method of each process script and an interpretation method of a return value when the process script is individually called according to the occurrence of an event.

次に、図38について説明する。同図はコンテンツ変換処理の概要を説明する図である。以下、図36(A)に示した記述文が変換される様子を図38を参照しながら説明する。   Next, FIG. 38 will be described. This figure explains the outline of the content conversion process. Hereinafter, how the description sentence shown in FIG. 36A is converted will be described with reference to FIG.

まず、(A)の第1行目に記述されているコンテナオブジェクト4102である<form>タグの記述内容がコンテンツ変換装置を実行する処理装置の有する記憶部に記憶され、第2行目に記述されているコンポーネントオブジェクト4101である<input>タグの記述内容が同様に記憶される。   First, the description content of the <form> tag, which is the container object 4102 described in the first line of (A), is stored in the storage unit of the processing apparatus that executes the content conversion apparatus, and is described in the second line. The description content of the <input> tag which is the component object 4101 being stored is similarly stored.

次に、第3行目にアクションオブジェクト4103である<action>タグが記述されている。
<action>タグではevent プロパティの指定が必ずなされている。このプロパティの指定によって、この<action>タグとこれに対応する終了タグとの間に記述されているスクリプトがどのコンポーネントで発生するどのようなイベントに対して実行されるものなのかが示される。(A)の例では、この<action>タグを直接内包している第2行目の<input> タグで発生する“クリック操作”のイベントを対象としていることが示されている。
Next, an <action> tag that is an action object 4103 is described in the third line.
In the <action> tag, the event property is always specified. By specifying this property, the script described between this <action> tag and the corresponding end tag is executed for what event generated by which component. In the example of (A), it is shown that the event of “click operation” that occurs in the <input> tag on the second line directly including the <action> tag is targeted.

そこで、コンポーネントオブジェクト4101である第2行目の<input> タグに、この<input> が有するアクションオブジェクト4103として第3行目の<action>タグが登録される(図38(a))。   Therefore, the <action> tag on the third line is registered as the action object 4103 of this <input> in the <input> tag on the second line, which is the component object 4101 (FIG. 38A).

次に、第3行目の<action>タグから第5行目の<action>タグの終了タグとの間(すなわち第4行目のみ)に記述されているスクリプト(“alert(“clicked!”) ”)がアクションオブジェクト4103である<action>タグにおいて実行されるスクリプトとして記憶される。   Next, a script (“alert (“ clicked! ”) Written between the <action> tag on the third line and the end tag of the <action> tag on the fifth line (that is, only the fourth line). ) ") Is stored as a script to be executed in the <action> tag which is the action object 4103.

続いて、第6行目に第2行目の<input> タグに対応する終了タグが記述されている。ここで、<input> タグの生成(すなわち、図36(B)の第8行目)が開始され(図38(b))、<input> タグについての記憶内容(すなわち、図36(A)の第1行目の記述内容である“input name=”field1” ”)が出力される。   Subsequently, an end tag corresponding to the <input> tag in the second line is described in the sixth line. Here, the generation of the <input> tag (that is, the eighth line in FIG. 36B) is started (FIG. 38B), and the storage content for the <input> tag (that is, FIG. 36A). "Input name =" field1 ""), which is the description content of the first line of, is output.

続いて、この<input> タグに先に登録されていたアクションオブジェクト4103である<action>タグに対し出力指示の通知が行なわれる(図38(b))。
この出力通知が<action>タグによって受け取られると、この<action>タグについての前述したプロパティについての指定内容がコンポーネントオブジェクト4101に送られて生成中の<input> タグに追加される(図38(d))。図36(A)の例では、event プロパティが“click”に指定されているので、<input> タグには“onclick=”が出力されるようにしておく。ここまでで、コンポーネントオブジェクト4101による<input> タグの大枠の生成が完了する。
Subsequently, an output instruction is notified to the <action> tag that is the action object 4103 previously registered in the <input> tag (FIG. 38B).
When this output notification is received by the <action> tag, the specified content of the above-described property for this <action> tag is sent to the component object 4101 and added to the <input> tag being generated (FIG. 38 ( d)). In the example of FIG. 36A, since the event property is designated as “click”, “onclick =” is output to the <input> tag. Thus far, the generation of the outline of the <input> tag by the component object 4101 is completed.

更に、ここで、前述したスクリプトが保持されているアクションオブジェクト4103である<action>タグがコンテナオブジェクト4102である<form>タグに登録される(図38(e))。   Furthermore, here, the <action> tag that is the action object 4103 holding the script is registered in the <form> tag that is the container object 4102 (FIG. 38E).

最後に、図36(A)の第7行目に第1行目の<form>タグに対応する終了タグが記述されている。ここで、コンテナオブジェクト4102である<form>タグの生成(図38(f))が開始され、まず、図36(B)の第1行目の出力が行なわれる。   Finally, the end tag corresponding to the <form> tag in the first line is described in the seventh line of FIG. Here, generation of the <form> tag that is the container object 4102 (FIG. 38 (f)) is started, and output of the first line in FIG. 36 (B) is first performed.

続いて、スクリプトの呼び出し部分の生成がスクリプト呼び出し部オブジェクト4104に指示される(図38(g))。ここでは、まず、処理スクリプトの名前(action123(target))が自動生成されて図36(B)の第2行目及び第5行目が出力され、続いてこの処理スクリプトの戻り値が定義される第4行目が出力される。更に、この処理スクリプトの呼び出し元であるコンポーネントオブジェクト4101である第8行目の<input> タグに、処理スクリプトの名前を出力する。   Subsequently, generation of a script calling part is instructed to the script calling part object 4104 (FIG. 38 (g)). Here, first, the name of the processing script (action123 (target)) is automatically generated and the second and fifth lines in FIG. 36B are output, and then the return value of this processing script is defined. The fourth line is output. Further, the name of the processing script is output to the <input> tag on the eighth line that is the component object 4101 that is the caller of the processing script.

そして最後に、<form>タグに先に登録されていたアクションオブジェクト4103である<action>タグに指示され(図38(h))、前述したスクリプトが図36(B)の第3行目として出力される。この後に、コンテナオブジェクト4102である<form>タグによって、図36(B)の第6行目、第7行目、及び第9行目が出力され、図36(B)のHTML文の生成が完了する。   Finally, the <action> tag, which is the action object 4103 previously registered in the <form> tag, is instructed (FIG. 38 (h)), and the script described above is shown as the third line in FIG. 36 (B). Is output. Thereafter, the <form> tag that is the container object 4102 outputs the 6th, 7th, and 9th lines of FIG. 36B, and the HTML sentence of FIG. 36B is generated. Complete.

以上までに説明した、コンテンツ変換処理をフローチャートで示したものが図39及び図40である。次に、このフローチャートについて説明する。
まず、図39において、処理が開始されると、図36(A)に示すような記述文が先頭行から読み出される。
39 and 40 are flowcharts showing the content conversion processing described above. Next, this flowchart will be described.
First, in FIG. 39, when processing is started, a description sentence as shown in FIG. 36A is read from the first line.

この読み出された行にアクションタグが記述されているか否かが判定され(S4201)、アクションタグでないならば(S4201の判定結果がNo)、この行に記述されているタグの内容が記憶部に記憶され(S4202)、その後はS4201へ処理が戻ってこの行の次の行についての判定処理が繰り返される。   It is determined whether or not an action tag is described in this read line (S4201). If it is not an action tag (No in S4201), the contents of the tag described in this line are stored in the storage unit. (S4202), and thereafter, the process returns to S4201, and the determination process for the next line of this line is repeated.

一方、読み出された行にアクションタグが記述されているならば(S4201の判定結果がYes)、このアクションタグを含んでいるコンポーネントタグにこのアクションタグが登録され(S4203)、続いてこのアクションタグの開始タグと終了タグとの間に記述されている処理スクリプトが記憶部に記憶される(S4204)。   On the other hand, if an action tag is described in the read line (Yes in S4201), this action tag is registered in the component tag including this action tag (S4203), and then this action A processing script described between the start tag and the end tag of the tag is stored in the storage unit (S4204).

次に、アクションタグの終了タグが記述されている行の次の行が読み出され、この行にコンポーネントタグの終了タグが記述されているか否かが判定される(S4205)。この結果、コンポーネントタグの終了タグがこの行に記述されていなければ(S4205の判定結果がNo)、S4201へ処理が戻ってこの行についての判定処理が繰り返される。   Next, the line following the line in which the end tag of the action tag is described is read, and it is determined whether or not the end tag of the component tag is described in this line (S4205). As a result, if the end tag of the component tag is not described in this line (the determination result in S4205 is No), the process returns to S4201, and the determination process for this line is repeated.

一方、この行にコンポーネントタグの終了タグがこの行に記述されていれば(S4205の判定結果かYes)、このコンポーネントタグについての生成が開始されて記憶部に記憶されているこのコンポーネントタグについての記述内容が出力され(S4206)、更に、このコンポーネントタグに登録されているアクションタグのプロパティが追加される(S4207)。   On the other hand, if the end tag of the component tag is described in this line (the determination result in S4205 is Yes), generation of the component tag is started and the component tag stored in the storage unit is started. The description content is output (S4206), and the properties of the action tag registered in this component tag are added (S4207).

次に、図40に処理が進み、ここで、追加されたアクションタグのプロパティの内容が調べられ、このプロパティで指定されているイベントが、このコンポーネントでサポートされているものであるか否かが判定される(S4208)。この結果、指定されているイベントがこのコンポーネントでサポートされていないものであるならば(S4208の判定結果がNo)、このコンテンツ変換処理の処理結果として元の記述文に誤りが存在することを示すエラー通知が出力され(S4209)、処理が終了する。   Next, the processing proceeds to FIG. 40, where the content of the property of the added action tag is examined, and whether or not the event specified by this property is supported by this component is determined. It is determined (S4208). As a result, if the specified event is not supported by this component (the determination result in S4208 is No), it indicates that there is an error in the original description sentence as the processing result of the content conversion processing. An error notification is output (S4209), and the process ends.

一方、指定されているイベントがこのコンポーネントでサポートされているものであったならば(S4208の判定結果がYes)、コンポーネントタグの生成が完了し(S4210)、生成されたコンポーネントタグが記憶部に一時的に保管される。更に、このコンポーネントタグに登録されていたアクションタグがコンテナタグに登録される。   On the other hand, if the specified event is supported by this component (Yes in S4208, the component tag generation is completed (S4210), and the generated component tag is stored in the storage unit. Stored temporarily. Furthermore, the action tag registered in the component tag is registered in the container tag.

次に、コンポーネントタグの終了タグが記述されていた行の次の行が読み出され、この行にコンテナタグの終了タグが記述されているか否かが判定される(S4212)。この結果、コンテナタグの終了タグがこの行に記述されていなければ(S4212の判定結果がNo)、S4201(図39)へ処理が戻ってこの行についての判定処理が繰り返される。   Next, the line following the line in which the end tag of the component tag is described is read, and it is determined whether or not the end tag of the container tag is described in this line (S4212). As a result, if the end tag of the container tag is not described in this line (No in S4212), the process returns to S4201 (FIG. 39) and the determination process for this line is repeated.

一方、この行にコンテナタグの終了タグがこの行に記述されていれば(S4212の判定結果かYes)、このコンテナタグについての出力が開始されて記憶部に記憶されているこのコンテナタグについての記述内容が出力される(S4213)。   On the other hand, if the end tag of the container tag is described in this line (the determination result in S4212 is Yes), the output of the container tag is started and the container tag stored in the storage unit is started. The description content is output (S4213).

続いて、スクリプト呼び出し部オブジェクトによって処理スクリプトの名前が自動生成されて出力され(S4214)、更に一時的に保管されているコンポーネントタグにその名前が記述されることによってコンポーネントタグと処理スクリプトとが関連付けられる。   Subsequently, the name of the processing script is automatically generated and output by the script calling unit object (S4214), and the component tag is associated with the processing script by describing the name in the temporarily stored component tag. It is done.

その後、このコンテナタグに登録されているアクションタグに関連付けて記述されていて先に記憶部に記憶させていた処理スクリプトが出力され(S4215)、そして最後に<script>タグの出力やコンテナタグの終了タグの出力などが行なわれてコンテナタグの生成が完了する(S4216)。   Thereafter, the processing script described in association with the action tag registered in the container tag and previously stored in the storage unit is output (S4215), and finally the output of the <script> tag and the container tag The end tag is output and the generation of the container tag is completed (S4216).

以上の処理が実行されることによって、図36(A)に示すような記述文から図36(B)に示すようなHTML文が生成される。
なお、このコンテンツ変換処理は、サーバに単独で設けられる処理エンジンによって処理させるようにしてもよいが、前述した本発明の第3の実施例で説明したフレームワークエンジンによって、前述した表示処理に併せて処理させるようにしてもよい。このとき、コンテンツ変換処理での変換対象であるJSPソースは、モデルを表示するための画面の見かけの定義が行なわれるビューにおけるレンダラの要素として記述される。
By executing the above processing, an HTML sentence as shown in FIG. 36B is generated from a description sentence as shown in FIG.
This content conversion process may be performed by a processing engine provided alone on the server, but it is combined with the above-described display process by the framework engine described in the third embodiment of the present invention. You may make it process. At this time, the JSP source to be converted in the content conversion process is described as a renderer element in a view in which the appearance of the screen for displaying the model is defined.

次にこの第4の実施例の応用について説明する。
図36では処理を定義するスクリプトを記述文(A)に記述(第4行目)に記述していたが、この処理スクリプトを記述文(A)中では記述せずに、部品化されている処理スクリプトを利用する手法についてまず説明する。
Next, application of the fourth embodiment will be described.
In FIG. 36, the script for defining the process is described in the description sentence (A) (line 4), but this process script is not described in the description sentence (A) but is made into a component. First, a method using a processing script will be described.

図41は、処理スクリプトを別に用意する場合のスクリプト記述例を示す図である。
図36(A)に示した記述文では、全てのタグにsf: なる接頭辞を付していたが、図41(A)に示す記述文では、アクションタグ<action>にmy: なる接頭辞が付されている。このタグ<my:action> はマイアクションタグと称されており、コンテンツ変換処理においてこのタグが検出されたときには、予め用意されている処理スクリプトがS4215(図40)の処理で出力されるようにする。なお、これに対して、今まで説明したsf: なる接頭辞を付したアクションタグは特にカスタムアクションタグと称されている。
FIG. 41 is a diagram illustrating an example of script description when a processing script is prepared separately.
In the description shown in FIG. 36 (A), the prefix sf: is attached to all tags, but in the description shown in FIG. 41 (A), the prefix my: is added to the action tag <action>. Is attached. This tag <my: action> is called a “my action tag”, and when this tag is detected in the content conversion process, a process script prepared in advance is output in the process of S4215 (FIG. 40). To do. On the other hand, the action tag with the prefix sf: described so far is particularly called a custom action tag.

図41(A)に記述されたマイアクションタグに対応するスクリプトである、文字列の最小文字数をチェックする処理スクリプトの定義例を図42に示す。図42に示す定義例では、マイアクションタグに指定されるMinLength プロパティを受け取るためのsetMinLength()が定義され、更に、outputFunctionBodyメソッドにおいて、出力オブジェクトWriterに対して、上述したプロパティの内容を埋め込んだ処理スクリプトを出力させることが指示されている。   FIG. 42 shows a definition example of a processing script for checking the minimum number of characters in a character string, which is a script corresponding to the my action tag described in FIG. In the definition example shown in FIG. 42, setMinLength () for receiving the MinLength property specified in the My Action tag is defined, and further, in the outputFunctionBody method, the contents of the above-described property are embedded in the output object Writer. It is instructed to output a script.

図39及び図40に示されているコンテンツ変換処理を実行させると、図39のS4204の処理において図42に示されているような処理スクリプトが記憶部に記憶され、その後の図40のS4215の処理において、その処理スクリプトが出力されるときに、変数min への値の代入がなされた出力が行なわれる。その結果、図41(A)の記述文から図41(B)に示すHTML文が生成される。   When the content conversion process shown in FIGS. 39 and 40 is executed, the process script as shown in FIG. 42 is stored in the storage unit in the process of S4204 of FIG. 39, and the subsequent process of S4215 of FIG. In the process, when the process script is output, an output in which a value is assigned to the variable min is performed. As a result, an HTML sentence shown in FIG. 41B is generated from the description sentence in FIG.

次に図43について説明する。同図は、同一のイベントに対して複数のアクションが対応する場合のスクリプト記述例を示す図である。
図43(A)の記述文では、第2行目に示されている<input> タグが、第3行目及び第6行目の2つのアクションタグを有している。このような場合には、図39及び図40に示されているコンテンツ変換処理において、図39のS4205の判定処理の作用により、S4201からS4205にかけての処理が2度行なわれ、その結果、<input> タグにこれら2つのアクションタグが登録され、更にそれぞれのアクションタグについての処理スクリプトが記憶される。
Next, FIG. 43 will be described. This figure is a diagram showing a script description example when a plurality of actions correspond to the same event.
In the description sentence of FIG. 43A, the <input> tag shown in the second line has two action tags in the third and sixth lines. In such a case, in the content conversion process shown in FIGS. 39 and 40, the process from S4201 to S4205 is performed twice by the action of the determination process in S4205 in FIG. > These two action tags are registered in the tag, and a processing script for each action tag is stored.

その後、図39のS4207の処理において2つのアクションタグから<input> タグにプロパティが追加されると、コンテンツ変換処理では、これら2つのアクションタグに指定されている”event” の内容が同一であることが認識される。   After that, when a property is added from the two action tags to the <input> tag in the processing of S4207 in FIG. 39, the contents of the “event” specified in these two action tags are the same in the content conversion processing. It is recognized.

この認識結果に基づいて、コンテンツ変換処理では、図40のS4214の処理において、処理スクリプトの名前の自動生成に加え、図43(b)の第2行目から第8行目((a)の部分)に示す、2つの処理スクリプトを順に実行させるための処理スクリプトの自動生成がスクリプト呼び出し部オブジェクトで行なわれる。このスクリプト呼び出し部オブジェクトによる処理スクリプトの自動生成によって、同一イベントと複数の処理スクリプトとの対応関係が確立される。   Based on this recognition result, in the content conversion process, in the process of S4214 of FIG. 40, in addition to the automatic generation of the name of the process script, the second to eighth lines ((a) of FIG. 43B). (Part)), the process call automatic generation for executing the two process scripts in order is performed by the script calling unit object. Correspondence between the same event and a plurality of processing scripts is established by automatic generation of processing scripts by the script calling unit object.

その後、S4215において、図43(B)の第9行目から第12行目((b)の部分)及び第13行目から第19行目((c)の部分)の出力が行なわれる。
次に図44について説明する。同図は、コンテナタグでイベントが発生する場合のスクリプト記述例を示している。
Thereafter, in S4215, the ninth to twelfth lines (part (b)) and the thirteenth to nineteenth lines (part (c)) of FIG. 43B are output.
Next, FIG. 44 will be described. This figure shows an example of script description when an event occurs in a container tag.

図44(A)において、第6行目のアクションタグの記述において、event プロパティが“”form.submit” ”に指定されている。この記述は、nameプロパティが”form”に指定されているコンテナタグについてのアクションタグであることを示している。   In FIG. 44A, in the description of the action tag on the sixth line, the event property is specified as ““ form.submit ””. This description indicates that it is an action tag for a container tag whose name property is specified as “form”.

このようなプロパティの指定がなされているコンテナタグについては、図39及び図40に示されているコンテンツ変換処理において、図39のS4203の処理であるアクションタグの登録が、コンポーネントタグの代わりにコンテナタグに対して行なわれるようにする。更に、図40のS4213の処理におけるコンテナタグについての記述内容の出力の際に、S4207からS4210にかけてのコンポーネントタグに対して行なわれる処理がコンテナタグに対して施されるようにする。こうすることにより、図44(B)の第14行目((a)の行)が生成されるようになり、コンテナタグで発生するイベントに対してスクリプトを実行させることが可能となる。   For a container tag for which such a property is specified, in the content conversion process shown in FIGS. 39 and 40, the action tag registration, which is the process of S4203 in FIG. To be done on the tag. Furthermore, when outputting the description contents of the container tag in the processing of S4213 in FIG. 40, the processing performed on the component tag from S4207 to S4210 is performed on the container tag. By doing so, the 14th line (line (a)) of FIG. 44B is generated, and the script can be executed for the event generated in the container tag.

以上まで説明した本発明の各実施例を実施するシステムで使用される、サーバの各処理エンジン及びクライアントの構成を図45に示す。これらはいずれも、CPU5001、記憶部5002、入力部5003、出力部5004、I/F部5005を有し、各構成要素がバス5006を介して相互に接続されている。   FIG. 45 shows the configuration of each processing engine and client of the server used in the system that implements each embodiment of the present invention described above. Each of these includes a CPU 5001, a storage unit 5002, an input unit 5003, an output unit 5004, and an I / F unit 5005, and each component is connected to each other via a bus 5006.

各構成要素の機能を説明すると、CPU(中央処理装置)5001は制御プログラムを実行することで各構成要素を制御する。
記憶部5002はROM(リードオンリメモリ)やRAM(ランダムアクセスメモリ)、磁気記憶装置等を備えており、CPU5001に各構成要素を制御させる制御プログラムの記憶、CPU5001が制御プログラムを実行する際のワークエリア、あるいは各種データの記憶領域として使用される。
The function of each component will be described. A CPU (central processing unit) 5001 controls each component by executing a control program.
The storage unit 5002 includes a ROM (Read Only Memory), a RAM (Random Access Memory), a magnetic storage device, and the like, stores a control program that causes the CPU 5001 to control each component, and works when the CPU 5001 executes the control program. Used as an area or storage area for various data.

入力部5003はマウスやキーボード等を有しており、ユーザによる操作に対応する各種のデータが取得される。
出力部5004はディスプレイなどを有しており、各種のデータを提示してユーザに通知するものである。
The input unit 5003 has a mouse, a keyboard, and the like, and acquires various data corresponding to user operations.
The output unit 5004 has a display or the like, and presents various data to notify the user.

I/F部5005はネットワークに接続するためのインタフェース機能を提供するものであり、ネットワークを介して他の機器とのデータ授受を可能とするものである。
なお、この図45に示されている構成は、標準的なコンピュータが有しているものと同様の構成であり、従って、本発明を標準的なコンピュータで実施することも勿論可能である。
The I / F unit 5005 provides an interface function for connecting to a network, and enables data exchange with other devices via the network.
The configuration shown in FIG. 45 is the same as that of a standard computer. Therefore, it is of course possible to implement the present invention with a standard computer.

図46は、本発明に係わるコンピュータ等の情報処理装置で実行される各種のソフトウェアプログラム等の提供方法を説明する図である。プログラム等は例えば以下の(a)〜(c)の3つの方法の中の任意の方法により提供される。   FIG. 46 is a diagram for explaining a method for providing various software programs executed by an information processing apparatus such as a computer according to the present invention. The program and the like are provided by any method among the following three methods (a) to (c), for example.

( a) コンピュータ等の情報処理装置5301にインストールされて提供される。この場合、プログラム等は例えば出荷前にプレインストールされる。
( b) 可搬型記録媒体5302に格納されて提供される。この場合、可搬型記憶媒体5302に格納されているプログラム等は、コンピュータ等の情報処理装置2301の外部記憶装置にインストールされる。可搬型記憶媒体5302の例としては、フロッピー(登録商標)ディスク、CD−ROM、光磁気ディスク、DVD−ROMなどがある。
(a) Provided by being installed in an information processing apparatus 5301 such as a computer. In this case, for example, the program is preinstalled before shipment.
(b) Provided by being stored in a portable recording medium 5302. In this case, a program or the like stored in the portable storage medium 5302 is installed in an external storage device of the information processing device 2301 such as a computer. Examples of the portable storage medium 5302 include a floppy (registered trademark) disk, a CD-ROM, a magneto-optical disk, and a DVD-ROM.

( c) ネットワーク5303上のプログラム提供サーバ5304から提供される。この場合、基本的には、コンピュータなどの情報処理装置5301がプログラム提供サーバ5304に格納されているプログラム等をダウンロードすることによって、そのプログラム等を取得する。この場合には、ソフトウェアプログラムを表現するデータ信号で搬送波を変調して得られる伝送信号を、プログラム提供サーバ5304から伝送媒体であるネットワーク5303を通じて伝送し、情報処理装置5301では受信した伝送信号を復調してソフトウェアプログラムを再生することで当該ソフトウェアプログラムの実行が可能となる。   (c) Provided from the program providing server 5304 on the network 5303. In this case, basically, the information processing apparatus 5301 such as a computer downloads the program stored in the program providing server 5304 to acquire the program. In this case, a transmission signal obtained by modulating a carrier wave with a data signal representing a software program is transmitted from the program providing server 5304 through the network 5303 as a transmission medium, and the information processing apparatus 5301 demodulates the received transmission signal. Then, the software program can be executed by reproducing the software program.

(付記1) クライアントからのリクエストをサーバで処理し、クライアントにレスポンスを返すWebシステムであって、
前記サーバで、前記リクエストをデータオブジェクトに変換して処理し、処理結果であるデータオブジェクトを前記クライアントへのレスポンスに変換して返すことを特徴とするWebシステム。
(Supplementary note 1) A Web system that processes a request from a client on a server and returns a response to the client,
The Web system characterized in that the server converts the request into a data object and processes it, and converts the data object as a processing result into a response to the client and returns it.

(付記2) Webアプリケーションを開発・実行するためのシステムであって、
入力内容をデータオブジェクトに変換する入力内容変換手段と、
複数の処理ルーチンを備える処理ロジックと、
前記データオブジェクトの種類とコマンドの組合せを前記各処理ルーチンにマッピングする第1の外部定義ファイルと、
前記データオブジェクトの種類と前記コマンドと前記第1の外部定義ファイルに基づいて前記処理ロジックの備える処理ルーチンから適当な処理ルーチンを決定する処理ルーチン決定手段と、
を備えることを特徴とするWebアプリケーション開発・実行システム。
(Appendix 2) A system for developing and executing a Web application,
An input content conversion means for converting the input content into a data object;
Processing logic with multiple processing routines;
A first external definition file that maps a combination of the type of data object and a command to each processing routine;
Processing routine determination means for determining an appropriate processing routine from processing routines provided in the processing logic based on the type of the data object, the command, and the first external definition file;
A web application development / execution system comprising:

(付記3) 付記2記載のWebアプリケーション開発・実行システムであって、
前記入力内容変換手段は、HTMLで記述されたデータ入力ページの特定項目を前記データオブジェクトのクラス名とし、該データ入力用ページに設けられている各入力欄の名前を前記データオブジェクトの属性に対応させて、データオブジェクト用プログラムを自動生成することを特徴とするWebアプリケーション開発・実行システム。
(Appendix 3) A Web application development / execution system according to Appendix 2,
The input content conversion means uses a specific item of the data input page described in HTML as the class name of the data object, and corresponds the name of each input field provided on the data input page to the attribute of the data object A Web application development / execution system that automatically generates a data object program.

(付記4) Webアプリケーションを開発・実行するためのシステムであって、
複数の処理ルーチンを備える処理ロジックと、
前記処理ロジックの処理結果とデータオブジェクトの種類の組み合わせを表示用コンポーネントにマッピングする第2の外部定義ファイルと、
を備えることを特徴とするWebアプリケーション開発・実行システム。
(Appendix 4) A system for developing and executing a Web application,
Processing logic with multiple processing routines;
A second external definition file that maps a combination of a processing result of the processing logic and a type of data object to a display component;
A web application development / execution system comprising:

(付記5) 付記4記載のWebアプリケーション開発・実行システムであって、
更に、
表示するページに配置する複数の表示用コンポーネントの配置の仕方を規定したテンプレートファイルを備え、
前記テンプレートファイルに基づいて複数の前記処理ロジックの処理結果を出力することを特徴とするWebアプリケーション開発・実行システム。
(Appendix 5) A Web application development / execution system according to appendix 4,
Furthermore,
A template file that defines how to arrange multiple display components to be arranged on the page to be displayed is provided.
A Web application development / execution system that outputs a plurality of processing logic processing results based on the template file.

(付記6) 付記2記載のWebアプリケーション開発・実行システムであって、
更に、
XMLのタグとデータオブジェクトをマッピングするXMLマッピングファイルと、
XMLのタグとデータオブジェクトとの相互変換を行うXML Data Bindingエンジンを備え、
前記入力内容としてXMLで記述されたタグを受信した場合に、
前記XML Data Bindingエンジンは、前記受信したXMLのタグと前記XMLマッピングファイルに基づいて、前記受信したXMLを前記データオブジェクトに変換し、
前記処理ルーチン決定手段は、前記データオブジェクトと前記受信したXMLのタグと前記第1の外部定義ファイルに基づいて前記処理ロジック内の処理ルーチンから適当な処理ルーチンを決定し、
前記XML Data Bindingエンジンは、前記処理ロジックの処理結果として得られるデータオブジェクトをXMLのタグに変換して出力する、
ことを特徴とするWebアプリケーション開発・実行システム。
(Appendix 6) A Web application development / execution system according to appendix 2,
Furthermore,
An XML mapping file that maps XML tags and data objects;
It has an XML Data Binding engine that performs mutual conversion between XML tags and data objects.
When a tag described in XML is received as the input content,
The XML Data Binding engine converts the received XML into the data object based on the received XML tag and the XML mapping file,
The processing routine determining means determines an appropriate processing routine from the processing routine in the processing logic based on the data object, the received XML tag, and the first external definition file.
The XML Data Binding engine converts a data object obtained as a processing result of the processing logic into an XML tag and outputs it.
A Web application development / execution system characterized by this.

(付記7) 付記6記載のWebアプリケーション開発・実行システムであって、
前記XMLマッピングファイルは、或るHTTPによるデータと同一の処理を施すXMLのタグを、前記或るHTTPによるデータと同一種類のデータオブジェクトにマッピングすることを特徴とするWebアプリケーション開発・実行システム。
(Appendix 7) A Web application development / execution system according to Appendix 6,
A Web application development / execution system characterized in that the XML mapping file maps an XML tag that performs the same processing as data based on a certain HTTP to a data object of the same type as the data based on the certain HTTP.

(付記8) 付記2記載のWebアプリケーション開発・実行システムであって、
前記処理ロジックにおける各処理ルーチンは、時間的スコープの大きな順にシステム、アプリケーション、セッション、リクエストの4段階のうちのいずれかの前記スコープに属性定義されており、
前記処理ロジックが処理を行う場合には、より大きなスコープからより小さなスコープに分岐して処理を進めていくことを特徴とするWebアプリケーション開発・実行システム。
(Appendix 8) A Web application development / execution system according to Appendix 2,
Each processing routine in the processing logic is attribute-defined in the scope in any of the four stages of system, application, session, and request in descending order of temporal scope.
A Web application development / execution system characterized in that when the processing logic performs processing, the processing branches from a larger scope to a smaller scope and proceeds with the processing.

(付記9) 付記8記載のWebアプリケーション開発・実行システムであって、
いずれかのの前記スコープが属性定義されている前記処理ルーチンに前処理または後処理のインタフェースを設けることを特徴とするWebアプリケーション開発・実行システム。
(Supplementary note 9) A Web application development / execution system according to supplementary note 8,
A Web application development / execution system, wherein a preprocessing or postprocessing interface is provided in the processing routine in which any of the scopes has an attribute defined.

(付記10) 付記9記載のWebアプリケーション開発・実行システムであって、
前記前処理のインタフェースに状態の制御を行うためのチェックルーチンを設けることを特徴とするWebアプリケーション開発・実行システム。
(Appendix 10) A Web application development / execution system according to appendix 9,
A Web application development / execution system comprising a check routine for controlling a state in the preprocessing interface.

(付記11) 付記9記載のWebアプリケーション開発・実行システムであって、
前記後処理のインタフェースに前記スコープが属性定義されている前記処理ルーチンごとのエラーを回復させるためのエラーハンドリング処理を設けることを特徴とするWebアプリケーション開発・実行システム。
(Appendix 11) A Web application development / execution system according to appendix 9,
A Web application development / execution system, characterized in that an error handling process for recovering an error for each of the processing routines whose attributes are defined in the scope is provided in the post-processing interface.

(付記12) 付記8記載のWebアプリケーション開発・実行システムであって、
前記スコープが属性定義されている前記処理ルーチンのいずれかにシングルスレッド動作制限を設けることを特徴とするWebアプリケーション開発・実行システム。
(Supplementary note 12) A Web application development / execution system according to supplementary note 8,
A web application development / execution system, wherein a single thread operation restriction is provided in any of the processing routines in which the scope is defined as an attribute.

(付記13) コンピュータにより使用されたときにそれによって読み出されるプログラムを記録した記録媒体であって、
入力内容をデータオブジェクトに変換するステップと、
前記データオブジェクトの種類と、コマンドと、前記データオブジェクトの種類とコマンドの組合せを各処理ルーチンにマッピングする外部定義ファイルと、に基づいて処理ロジック内の処理ルーチンから適当な処理ルーチンを決定するステップと、
を前記コンピュータに行わせるためのプログラムを記録したコンピュータ読み出し可能記録媒体。
(Additional remark 13) The recording medium which recorded the program read by it when used by a computer,
Converting the input into a data object;
Determining an appropriate processing routine from processing routines in processing logic based on the data object type, command, and an external definition file that maps the combination of data object type and command to each processing routine; ,
A computer-readable recording medium on which a program for causing the computer to execute is recorded.

(付記14) クライアントからのリクエストをサーバで処理し、クライアントにレスポンスを返すWebシステムであって、
前記サーバで前記リクエストに応じて処理される各オブジェクトは、各々が処理されるときの時間軸上における相対的な位置関係に基づいた時間的スコープについての属性定義がされており、
前記サーバは、より大きな時間的スコープが定義されているオブジェクトから小さな時間的スコープが定義されているオブジェクトに分岐して前記リクエストに応じたオブジェクトの処理を進めていくことを特徴とするWebシステム。
(Supplementary Note 14) A Web system that processes a request from a client on a server and returns a response to the client,
Each object processed in response to the request in the server has an attribute definition for a temporal scope based on the relative positional relationship on the time axis when each is processed,
The Web system, wherein the server branches from an object for which a larger temporal scope is defined to an object for which a smaller temporal scope is defined, and advances the processing of the object according to the request.

(付記15) 付記14記載のWebシステムであって、
各オブジェクトには、時間的スコープの大きな順に、システム、アプリケーション、セッション、リクエストのうちのいずれかのスコープの属性定義がなされることを特徴とするWebシステム。
(Supplementary note 15) The Web system according to supplementary note 14,
A Web system characterized in that each object has an attribute definition of any one of a system, an application, a session, and a request in descending order of temporal scope.

(付記16) クライアントからのリクエストをサーバで処理し、クライアントにレスポンスを返すWebシステムであって、
サーバでの処理ルーチン呼び出し時に該処理ルーチンによる処理の動作を監視し、該処理の進行を継続させるオブジェクトを該サーバで実行することを特徴とするWebシステム。
(Supplementary Note 16) A Web system that processes a request from a client on a server and returns a response to the client,
A Web system characterized in that when a processing routine is called at a server, the processing operation by the processing routine is monitored, and an object for continuing the progress of the processing is executed by the server.

(付記17) クライアントとの間で各種のデータを授受するサーバ側に設けられ、該クライアントに提供するデータが表示されるWebページ画面を表現するHTML文を生成するWebアプリケーション生成装置であって、
前記クライアントに提供するデータを有し、且つ該データのデータ構造を表すインタフェースを実装するデータオブジェクトが格納されるデータオブジェクト格納手段と、
前記データオブジェクトが有するデータについての前記Webページ画面における表示方法をHTMLによる記述によって定義する定義文が格納される定義文格納手段と、
前記データオブジェクトに実装されている前記インタフェースに基づいて該データオブジェクトの有するデータと前記定義文とを関連付けることによって、該データが表示されるWebページ画面を表現するHTML文を生成するHTML文生成手段と、
を有することを特徴とするWebアプリケーション生成装置。
(Supplementary Note 17) A Web application generation device that is provided on a server side that exchanges various data with a client and generates an HTML sentence that represents a Web page screen on which data to be provided to the client is displayed.
A data object storage means for storing a data object that has data to be provided to the client and that implements an interface representing a data structure of the data;
Definition statement storage means for storing a definition statement that defines a display method of the data included in the data object on the Web page screen by description in HTML;
HTML sentence generation means for generating an HTML sentence representing a Web page screen on which the data is displayed by associating data of the data object with the definition sentence based on the interface implemented in the data object When,
A Web application generation device characterized by comprising:

(付記18) 付記17記載のWebアプリケーション生成装置であって、
前記定義文はJavaServer Pages(JSP)によって定義され、
前記HTML文生成手段は、JSPによって定義された定義文から前記HTML文を生成する、
ことを特徴とするWebアプリケーション生成装置。
(Supplementary note 18) The Web application generation device according to supplementary note 17,
The definition statement is defined by Java Server Pages (JSP),
The HTML sentence generation means generates the HTML sentence from a definition sentence defined by JSP.
A Web application generation apparatus characterized by that.

(付記19) 付記17記載のWebアプリケーション生成装置であって、
前記データ構造に対応して定義される属性であるデータクラスを取得するデータクラス取得手段を更に有し、
前記HTML文生成手段は、前記データクラスに基づいて前記データオブジェクトの有するデータに関連付ける前記定義文を選択する、
ことを特徴とするWebアプリケーション生成装置。
(Supplementary note 19) The Web application generation device according to supplementary note 17,
Further comprising a data class acquisition means for acquiring a data class which is an attribute defined corresponding to the data structure;
The HTML statement generation means selects the definition statement to be associated with data included in the data object based on the data class.
A Web application generation apparatus characterized by that.

(付記20) 付記17記載のWebアプリケーション生成装置であって、
前記HTML文生成手段により生成されたHTML文によって表現されるWebページ画面に示されている入力フォームへの入力データを含むリクエストであって前記クライアントから送付される該リクエストを取得するリクエスト取得手段と、
前記リクエストに前記データと共に含まれている、前記HTML文生成手段により生成されたHTML文に含まれていた文字列であって、該HTML文の生成の基礎とされたインタフェースを特定する文字列と該インタフェースにより表されるデータ構造における特定の位置を示す文字列とからなる該文字列に基づいて、該文字列で特定されるインタフェースにより表されるデータ構造における特定の位置のデータを該リクエストに含まれていたデータに更新するデータ更新手段と、
を更に有することを特徴とするWebアプリケーション生成装置。
(Supplementary note 20) The Web application generation device according to supplementary note 17,
A request acquisition means for acquiring the request sent from the client, the request including input data to the input form shown on the Web page screen expressed by the HTML sentence generated by the HTML sentence generation means; ,
A character string included in the HTML sentence generated by the HTML sentence generator included in the request together with the data, the character string specifying an interface based on which the HTML sentence is generated; Based on the character string composed of a character string indicating a specific position in the data structure represented by the interface, data at a specific position in the data structure represented by the interface specified by the character string is included in the request. Data updating means for updating to the included data;
A Web application generation apparatus characterized by further comprising:

(付記21) 付記20記載のWebアプリケーション生成装置であって、
前記リクエストに前記データと共に含まれている文字列は、該入力フォームに対して入力されるデータを参照するパラメータ名を示すことを特徴とするWebアプリケーション生成装置。
(Supplementary note 21) The Web application generation device according to supplementary note 20,
The Web application generation apparatus characterized in that a character string included in the request together with the data indicates a parameter name referring to data input to the input form.

(付記22) 付記20記載のWebアプリケーション生成装置であって、
前記リクエストには、異なるインタフェースに基づいて生成されたHTML文についての前記データ及び前記文字列が含まれることを特徴とするWebアプリケーション生成装置。
(Supplementary note 22) The Web application generation device according to supplementary note 20,
The Web application generation apparatus, wherein the request includes the data and the character string regarding an HTML sentence generated based on a different interface.

(付記23) 付記20記載のWebアプリケーション生成装置であって、
前記データ更新手段は、前記データオブジェクト格納手段に格納されているデータオブジェクトの有する前記データを前記リクエストに含まれていたデータに更新することを特徴とするWebアプリケーション生成装置。
(Supplementary note 23) The Web application generation device according to supplementary note 20,
The data update unit updates the data included in the data object stored in the data object storage unit to the data included in the request.

(付記24) 付記20記載のWebアプリケーション生成装置であって、
前記リクエストに前記データと共に含まれている文字列は、前記HTML文の生成の基礎とされたインタフェースを特定する文字列と該インタフェースにより表されるデータ構造における特定の位置を示す文字列とからなる文字列に、更に該位置のデータ群が有するデータ構造を表すインタフェースを特定する文字列と該インタフェースにより表されるデータ構造における特定の位置を示す文字列とからなる文字列を組み合わせて成り、
前記データ更新手段は、前記文字列で特定されるデータ構造における特定の位置に更に有しているデータ構造における特定の位置のデータを前記リクエストに含まれていたデータに更新する、
ことを特徴とするWebアプリケーション生成装置。
(Supplementary note 24) The Web application generation device according to supplementary note 20,
The character string included in the request together with the data is composed of a character string that specifies an interface on which the HTML sentence is generated and a character string that indicates a specific position in the data structure represented by the interface. The character string is formed by combining a character string that further includes a character string that specifies an interface representing a data structure of the data group at the position and a character string that indicates a specific position in the data structure represented by the interface,
The data update means updates data at a specific position in a data structure further included in a specific position in the data structure specified by the character string to data included in the request.
A Web application generation apparatus characterized by that.

(付記25) クライアントとの間で各種のデータを授受するサーバ側で、該クライアントに提供するデータが表示されるWebページ画面を表現するHTML文を生成する方法であって、
前記クライアントに提供するデータを有し、且つ該データのデータ構造を表すインタフェースを実装するデータオブジェクトを取得し、
前記データオブジェクトが有するデータについての前記Webページ画面における表示方法をHTMLによる記述によって定義する定義文を取得し、
前記データオブジェクトに実装されている前記インタフェースに基づいて該データオブジェクトの有するデータと前記定義文とを関連付けることによって、該データが表示されるWebページ画面を表現するHTML文を生成する、
を有することを特徴とするWebアプリケーション生成方法。
(Supplementary Note 25) A method for generating an HTML sentence representing a Web page screen on which data to be provided to a client is displayed on a server side that exchanges various data with the client,
Obtaining a data object that has data to be provided to the client and that implements an interface representing the data structure of the data;
Obtaining a definition statement that defines a display method of the data of the data object on the Web page screen by a description in HTML;
Generating an HTML sentence representing a Web page screen on which the data is displayed by associating the data object and the definition sentence based on the interface implemented in the data object;
A Web application generation method characterized by comprising:

(付記26) クライアントとの間で各種のデータを授受するサーバ側で、コンピュータに実行させることによって、該クライアントに提供するデータが表示されるWebページ画面を表現するHTML文を生成する制御を該コンピュータに行なわせる制御プログラムを記録した記録媒体であって、
前記クライアントに提供するデータを有し、且つ該データのデータ構造を表すインタフェースを実装するデータオブジェクトを取得する制御と、
前記データオブジェクトが有するデータについての前記Webページ画面における表示方法をHTMLによる記述によって定義する定義文を取得する制御と、
前記データオブジェクトに実装されている前記インタフェースに基づいて該データオブジェクトの有するデータと前記定義文とを関連付けることによって、該データが表示されるWebページ画面を表現するHTML文を生成する制御と、
をコンピュータに行なわせる制御プログラムを記憶した記憶媒体。
(Supplementary Note 26) Control that generates an HTML sentence representing a Web page screen on which data to be provided to the client is displayed by causing the computer to execute on the server side that exchanges various data with the client. A recording medium recording a control program to be executed by a computer,
Control to obtain a data object that has data to be provided to the client and that implements an interface that represents the data structure of the data;
Control for obtaining a definition statement that defines a display method of the data included in the data object on the Web page screen by description in HTML;
Control for generating an HTML sentence representing a Web page screen on which the data is displayed by associating the data object with the definition sentence based on the interface implemented in the data object;
A storage medium storing a control program for causing a computer to execute the above.

(付記27) クライアントとの間で各種のデータを授受するサーバ側で、コンピュータに実行させることによって、該クライアントに提供するデータが表示されるWebページ画面を表現するHTML文を生成する制御を該コンピュータに行なわせる制御プログラムを含む搬送波に具現化されたコンピュータ・データ・シグナルであって、該制御プログラムは、
前記クライアントに提供するデータを有し、且つ該データのデータ構造を表すインタフェースを実装するデータオブジェクトを取得する制御と、
前記データオブジェクトが有するデータについての前記Webページ画面における表示方法をHTMLによる記述によって定義する定義文を取得する制御と、
前記データオブジェクトに実装されている前記インタフェースに基づいて該データオブジェクトの有するデータと前記定義文とを関連付けることによって、該データが表示されるWebページ画面を表現するHTML文を生成する制御と、
をコンピュータに行なわせる。
(Supplementary Note 27) Control that generates an HTML sentence that represents a Web page screen on which data to be provided to the client is displayed is executed by a computer on the server side that transmits and receives various data to and from the client. A computer data signal embodied in a carrier wave including a control program to be executed by a computer, the control program comprising:
Control to obtain a data object that has data to be provided to the client and that implements an interface that represents the data structure of the data;
Control for obtaining a definition statement that defines a display method of the data included in the data object on the Web page screen by description in HTML;
Control for generating an HTML sentence representing a Web page screen on which the data is displayed by associating the data object with the definition sentence based on the interface implemented in the data object;
To the computer.

(付記28) クライアントとの間で各種のデータを授受するサーバ側に設けられ、該クライアントに提供するデータが表示されるWebページ画面を表現するHTML文を生成するWebアプリケーション生成装置であって、
処理の内容が定義されている処理ロジックが格納される処理ロジック格納手段と、
前記処理ロジックの実行条件が格納される実行条件格納手段と、
前記処理ロジックの名称となる文字列を生成する処理ロジック名生成手段と、
前記文字列を用いて前記処理ロジックを呼び出すHTML文であって、前記実行条件に合致するイベントが前記クライアントで発生したときに該処理ロジックを呼び出して実行する、という処理を該クライアントに行なわせる該HTML文を生成するHTML文生成手段と、
を有することを特徴とするWebアプリケーション生成装置。
(Supplementary Note 28) A Web application generation apparatus that is provided on a server side that exchanges various data with a client and generates an HTML sentence that represents a Web page screen on which data to be provided to the client is displayed.
Processing logic storage means for storing processing logic in which the contents of processing are defined;
Execution condition storage means for storing execution conditions of the processing logic;
Processing logic name generation means for generating a character string to be the name of the processing logic;
An HTML statement that calls the processing logic using the character string, and causes the client to perform a process of calling and executing the processing logic when an event that matches the execution condition occurs in the client. HTML sentence generation means for generating an HTML sentence;
A Web application generation device characterized by comprising:

(付記29) 付記28記載のWebアプリケーション生成装置であって、
前記処理ロジックはスクリプトによって定義されていることを特徴とするWebアプリケーション生成装置。
(Supplementary note 29) The Web application generation device according to supplementary note 28,
The web application generation apparatus, wherein the processing logic is defined by a script.

(付記30) 付記28記載のWebアプリケーション生成装置であって、
前記処理ロジック格納手段及び前記実行条件格納手段には、前記処理ロジック及び前記実行条件が共に定義されている同一のコンポーネントにおける該処理ロジック及び該実行条件がそれぞれ格納されることを特徴とするWebアプリケーション生成装置。
(Supplementary note 30) The Web application generation device according to supplementary note 28,
The processing logic storage unit and the execution condition storage unit store the processing logic and the execution condition in the same component in which both the processing logic and the execution condition are defined, respectively. Generator.

(付記31) 付記28記載のWebアプリケーション生成装置であって、
前記処理ロジック格納手段には複数の前記処理ロジックが格納され、
複数の前記処理ロジックのそれぞれの前記実行条件のうちのいずれかが同一であるときに、該実行条件が同一である該処理ロジックを順に実行する処理ロジックを生成する処理ロジック生成手段を更に有し、
前記文字列生成手段は、複数の前記処理ロジック、及び前記処理ロジック生成手段により生成された処理ロジックに対して各々異なる名称となる文字列を生成し、
前記HTML文生成手段は、前記文字列を用いて前記処理ロジック生成手段により生成された処理ロジックを呼び出すHTML文であって、同一であった前記実行条件に合致するイベントが前記クライアントで発生したときに該処理ロジックを呼び出して実行する、という処理を該クライアントに行なわせる該HTML文を生成する、
ことを特徴とするWebアプリケーション生成装置。
(Supplementary note 31) The Web application generation device according to supplementary note 28, wherein
A plurality of the processing logic is stored in the processing logic storage means,
When any one of the execution conditions of each of the plurality of processing logics is the same, the processing logic generation unit further generates processing logic that sequentially executes the processing logics having the same execution condition. ,
The character string generation means generates a character string having a different name for each of the plurality of processing logics and the processing logic generated by the processing logic generation means,
The HTML statement generation means is an HTML statement that calls the processing logic generated by the processing logic generation means using the character string, and an event that matches the same execution condition occurs in the client Generating the HTML statement that causes the client to perform the process of calling and executing the processing logic.
A Web application generation apparatus characterized by that.

(付記32) 付記28記載のWebアプリケーション生成装置であって、
前記処理ロジックと該処理ロジックの実行条件との対応関係の妥当性を確認する確認手段を更に有することを特徴とするWebアプリケーション生成装置。
(Supplementary note 32) The Web application generation device according to supplementary note 28,
A Web application generation apparatus, further comprising a confirmation unit configured to confirm validity of a correspondence relationship between the processing logic and an execution condition of the processing logic.

(付記33) クライアントとの間で各種のデータを授受するサーバ側で、該クライアントに提供するデータが表示されるWebページ画面を表現するHTML文を生成するWebアプリケーション生成方法であって、
処理の内容が定義されている処理ロジックであって、予め用意されている該処理ロジックの名称となる文字列を生成し、
前記文字列を用いて前記処理ロジックを呼び出すHTML文であって、前記処理ロジックについての実行条件であって予め用意されている該実行条件に合致するイベントが前記クライアントで発生したときに該処理ロジックを呼び出して実行する、という処理を該クライアントに行なわせる該HTML文を生成する、
ことを特徴とするWebアプリケーション生成方法。
(Supplementary Note 33) A Web application generation method for generating an HTML sentence representing a Web page screen on which data provided to a client is displayed on a server side that exchanges various data with the client,
A processing logic in which the content of processing is defined, and a character string that is a name of the processing logic prepared in advance is generated,
An HTML statement that calls the processing logic using the character string, and the processing logic when an event that is an execution condition for the processing logic and that matches the prepared execution condition occurs in the client Generating the HTML statement that causes the client to perform the process of calling and executing
A Web application generation method characterized by the above.

(付記34) クライアントとの間で各種のデータを授受するサーバ側で、コンピュータに実行させることによって、該クライアントに提供するデータが表示されるWebページ画面を表現するHTML文を生成する制御を該コンピュータに行なわせる制御プログラムを記録した記録媒体であって、
処理の内容が定義されている処理ロジックであって、予め用意されている該処理ロジックの名称となる文字列を生成する制御と、
前記文字列を用いて前記処理ロジックを呼び出すHTML文であって、前記処理ロジックについての実行条件であって予め用意されている該実行条件に合致するイベントが前記クライアントで発生したときに該処理ロジックを呼び出して実行する、という処理を該クライアントに行なわせる該HTML文を生成する制御と、
をコンピュータに行なわせる制御プログラムを記憶した記憶媒体。
(Supplementary Note 34) On the server side that transmits and receives various data to and from the client, the computer executes the control to generate an HTML sentence that represents the Web page screen on which the data to be provided to the client is displayed. A recording medium recording a control program to be executed by a computer,
A process logic in which the content of the process is defined, and a control for generating a character string that is a name of the process logic prepared in advance;
An HTML statement that calls the processing logic using the character string, and the processing logic when an event that is an execution condition for the processing logic and that matches the prepared execution condition occurs in the client Control for generating the HTML statement that causes the client to perform a process of calling and executing
A storage medium storing a control program for causing a computer to execute the above.

(付記35) クライアントとの間で各種のデータを授受するサーバ側で、コンピュータに実行させることによって、該クライアントに提供するデータが表示されるWebページ画面を表現するHTML文を生成する制御を該コンピュータに行なわせる制御プログラムを含む搬送波に具現化されたコンピュータ・データ・シグナルであって、該制御プログラムは、
処理の内容が定義されている処理ロジックであって、予め用意されている該処理ロジックの名称となる文字列を生成する制御と、
前記文字列を用いて前記処理ロジックを呼び出すHTML文であって、前記処理ロジックについての実行条件であって予め用意されている該実行条件に合致するイベントが前記クライアントで発生したときに該処理ロジックを呼び出して実行する、という処理を該クライアントに行なわせる該HTML文を生成する制御と、
をコンピュータに行なわせる。
(Additional remark 35) Control which produces | generates the HTML sentence which represents the web page screen on which the data provided to this client is displayed by making a computer perform on the server side which transmits / receives various data between clients is this said. A computer data signal embodied in a carrier wave including a control program to be executed by a computer, the control program comprising:
A process logic in which the content of the process is defined, and a control for generating a character string that is a name of the process logic prepared in advance;
An HTML statement that calls the processing logic using the character string, and the processing logic when an event that is an execution condition for the processing logic and that matches the prepared execution condition occurs in the client Control for generating the HTML statement that causes the client to perform a process of calling and executing
To the computer.

(付記36) コンピュータに、
入力内容をデータオブジェクトに変換するステップと、
前記データオブジェクトの種類と、コマンドと、前記データオブジェクトの種類とコマンドの組合せを各処理ルーチンにマッピングする外部定義ファイルと、に基づいて処理ロジック内の処理ルーチンから適当な処理ルーチンを決定するステップと、
を実行させるためのプログラム。
(Supplementary note 36)
Converting the input into a data object;
Determining an appropriate processing routine from processing routines in processing logic based on the data object type, command, and an external definition file that maps the combination of data object type and command to each processing routine; ,
A program for running

(付記37) クライアントとの間で各種のデータを授受するサーバ側で、コンピュータに実行させることによって、該クライアントに提供するデータが表示されるWebページ画面を表現するHTML文を生成する制御を該コンピュータに行なわせる制御プログラムであって、
前記クライアントに提供するデータを有し、且つ該データのデータ構造を表すインタフェースを実装するデータオブジェクトを取得する制御と、
前記データオブジェクトが有するデータについての前記Webページ画面における表示方法をHTMLによる記述によって定義する定義文を取得する制御と、
前記データオブジェクトに実装されている前記インタフェースに基づいて該データオブジェクトの有するデータと前記定義文とを関連付けることによって、該データが表示されるWebページ画面を表現するHTML文を生成する制御と、
をコンピュータに行なわせるための制御プログラム。
(Supplementary Note 37) A control for generating an HTML sentence representing a Web page screen on which data to be provided to the client is displayed by causing the computer to execute on the server side that exchanges various data with the client. A control program to be executed by a computer,
Control to obtain a data object that has data to be provided to the client and that implements an interface that represents the data structure of the data;
Control for obtaining a definition statement that defines a display method of the data included in the data object on the Web page screen by description in HTML;
Control for generating an HTML sentence representing a Web page screen on which the data is displayed by associating the data object with the definition sentence based on the interface implemented in the data object;
A control program that causes a computer to perform

(付記38) クライアントとの間で各種のデータを授受するサーバ側で、コンピュータに実行させることによって、該クライアントに提供するデータが表示されるWebページ画面を表現するHTML文を生成する制御を該コンピュータに行なわせる制御プログラムであって、
処理の内容が定義されている処理ロジックであって、予め用意されている該処理ロジックの名称となる文字列を生成する制御と、
前記文字列を用いて前記処理ロジックを呼び出すHTML文であって、前記処理ロジックについての実行条件であって予め用意されている該実行条件に合致するイベントが前記クライアントで発生したときに該処理ロジックを呼び出して実行する、という処理を該クライアントに行なわせる該HTML文を生成する制御と、
をコンピュータに行なわせるための制御プログラム。
(Supplementary Note 38) On the server side that transmits and receives various data to and from the client, the computer executes the control to generate an HTML sentence that represents the Web page screen on which the data to be provided to the client is displayed. A control program to be executed by a computer,
A process logic in which the content of the process is defined, and a control for generating a character string that is a name of the process logic prepared in advance;
An HTML statement that calls the processing logic using the character string, and the processing logic when an event that is an execution condition for the processing logic and that matches the prepared execution condition occurs in the client Control for generating the HTML statement that causes the client to perform a process of calling and executing
A control program that causes a computer to perform

本発明の概略を示す図である。It is a figure which shows the outline of this invention. 本発明の原理構成を示す図である。It is a figure which shows the principle structure of this invention. 本発明の第1の実施例のシステム構成を示す図である。It is a figure which shows the system configuration | structure of the 1st Example of this invention. 本発明の第1の実施例のシステムの具体的な動作の様子を示す図である。It is a figure which shows the mode of a specific operation | movement of the system of the 1st Example of this invention. 図4に示すアプリケーションのシステム構成とその動作(クライアントからのリクエストを受信し、処理するまで)概要を説明する図である。FIG. 5 is a diagram for explaining an outline of a system configuration of an application shown in FIG. 4 and its operation (until a request from a client is received and processed). 図4に示すアプリケーションのシステム構成とその動作(クライアントへレスポンスを返すまで)概要を説明する図である。FIG. 5 is a diagram for explaining an overview of the system configuration of the application shown in FIG. 4 and its operation (until a response is returned to the client). (а)、(b)はコマンドマッピングの一部、(c)はページマッピングの一部を示す図である。(A), (b) is a part of command mapping, and (c) is a part of page mapping. クライアントからのリクエストデータを入力用Java Beanに変換するプログラム記述を示す図である。It is a figure which shows the program description which converts the request data from a client into Java Bean for input. コマンドマッピングを介して実行すべきロジックの処理を決定するプログラム記述を示す図である。It is a figure which shows the program description which determines the process of the logic which should be performed via command mapping. ユーザロジックが表示用データオブジェクトを設定するプログラム記述を示す図である。It is a figure which shows the program description which a user logic sets the data object for a display. ページマッピングを介して表示すべきページを決定するプログラム記述を示す図である。It is a figure which shows the program description which determines the page which should be displayed via page mapping. JSPから表示画面を出力するプログラム記述を示す図である。It is a figure which shows the program description which outputs a display screen from JSP. 表示画面に複数の表示部品を配置する場合のテンプレートについて説明する図である。It is a figure explaining the template in the case of arrange | positioning several display components on a display screen. 本発明の第2の実施例のシステム構成を示す図(その1)である。It is FIG. (1) which shows the system configuration | structure of the 2nd Example of this invention. 本発明の第2の実施例のシステム構成を示す図(その2)である。It is FIG. (2) which shows the system configuration | structure of the 2nd Example of this invention. XMLファイルを処理するシステムの動作(XMLファイルを受信して、処理するまで)概要を示す図である。It is a figure which shows the operation | movement (until an XML file is received and processed) of the system which processes an XML file. XMLファイルを処理するシステムの動作(XMLファイルを受信した時に、処理結果を返すまで)概要を示す図である。It is a figure which shows the outline | summary of operation | movement (until a process result is returned when an XML file is received) of the system which processes an XML file. (а)は、本発明のシステムを構成するオブジェクトのスコープを説明する図であり、(b)はオブジェクト間の相関関係を示す図である。(A) is a figure explaining the scope of the object which comprises the system of this invention, (b) is a figure which shows the correlation between objects. (а)は、クライアントからのリクエスト処理を説明する図であり、(b)はSingleThreadModel の実装を説明する図である。(A) is a figure explaining the request processing from a client, (b) is a figure explaining mounting of SingleThreadModel. (а)は、SingleThreadModel の具体的な実装を示す図であり、(b)はSingleThreadModel の実装のプログラム記述例を示す図である。(A) is a figure which shows the specific implementation of SingleThreadModel, (b) is a figure which shows the example of a program description of the implementation of SingleThreadModel. クライアントのリクエストを処理する場合のシーケンス図である。It is a sequence diagram in the case of processing a client request. (а)は、一般のアプリケーションサーバにおいてロジックのハンドラからブラウザにコールバックする仕組みを説明する図であり、(b)はそのプログラム記述例を示す図である。(A) is a figure explaining the mechanism which calls back to a browser from a logic handler in a general application server, (b) is a figure which shows the example of a program description. (а)は、本発明のアプリケーションサーバにおいてロジックのハンドラからブラウザにリクエストを行う仕組みを説明する図であり、(b)、(c)はそのプログラム記述例を示す図である。(A) is a diagram for explaining a mechanism for making a request from a logic handler to a browser in the application server of the present invention, and (b) and (c) are diagrams showing examples of the program description. 本発明の第3の実施例のシステム構成を示す図である。It is a figure which shows the system configuration | structure of the 3rd Example of this invention. テーブルモデルインタフェースの宣言例を示す図である。It is a figure which shows the example of declaration of a table model interface. 本発明の第3の実施例において、HTML文が生成される様子を説明する図である。It is a figure explaining a mode that an HTML sentence is generated in the 3rd example of the present invention. 表示時の制御処理の処理内容を示すフローチャート(その1)である。It is a flowchart (the 1) which shows the processing content of the control processing at the time of a display. 表示時の制御処理の処理内容を示すフローチャート(その2)である。It is a flowchart (the 2) which shows the processing content of the control processing at the time of a display. 表示時の制御処理の処理内容を示すフローチャート(その3)である。It is a flowchart (the 3) which shows the processing content of the control processing at the time of a display. <name>のレンダラエレメントタグを説明する図である。It is a figure explaining the renderer element tag of <name>. <name>のレンダラエレメントタグを使用したレンダラの定義例を示す図である。It is a figure which shows the example of a renderer definition using the renderer element tag of <name>. 記憶領域管理処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of a storage area management process. 図24に示すシステムにおけるリクエスト時の動作の概要を説明する図である。It is a figure explaining the outline | summary of the operation | movement at the time of the request in the system shown in FIG. リクエスト時の制御処理の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the control processing at the time of a request. 本発明の第3の実施例を実施するクライアントサーバシステムの例を示す図である。It is a figure which shows the example of the client server system which implements the 3rd Example of this invention. 本発明の第4の実施例によってHTML文が生成される様子を示す図である。It is a figure which shows a mode that an HTML sentence is produced | generated by the 4th Example of this invention. 本発明の第4の実施例で使用されるオブジェクトの構成を示す図である。It is a figure which shows the structure of the object used in the 4th Example of this invention. コンテンツ変換処理の概要を説明する図である。It is a figure explaining the outline | summary of a content conversion process. コンテンツ変換処理の処理内容を示すフローチャート(その1)である。It is a flowchart (the 1) which shows the processing content of a content conversion process. コンテンツ変換処理の処理内容を示すフローチャート(その2)である。It is a flowchart (the 2) which shows the processing content of a content conversion process. 処理スクリプトを別に用意する場合のスクリプト記述例を示す図である。It is a figure which shows the example of a script description in the case of preparing a processing script separately. 文字列の最小文字数をチェックする処理スクリプトの定義例を示す図である。It is a figure which shows the example of a definition of the process script which checks the minimum number of characters of a character string. 同一のイベントに対して複数のアクションが対応する場合のスクリプト記述例を示す図である。It is a figure which shows the example of a script description in case a some action respond | corresponds with respect to the same event. コンテナタグでイベントが発生する場合のスクリプト記述例を示す図である。It is a figure which shows the example of a script description when an event generate | occur | produces in a container tag. 本発明の各実施例を実施するシステムに使用される、サーバの各処理エンジン及びクライアントの構成を示す図である。It is a figure which shows the structure of each processing engine and client of a server used for the system which implements each Example of this invention. 本発明に係わるソフトウェアプログラム等の提供方法を説明する図である。It is a figure explaining the provision method of the software program etc. concerning this invention. ビジネスアプリケーションの実施形態を示す図である。It is a figure which shows embodiment of a business application. Servletを用いたアプリケーションサーバのシステム構成を示す図である。It is a figure which shows the system configuration | structure of the application server using Servlet. JSPを用いたアプリケーションサーバのシステム構成を示す図である。It is a figure which shows the system configuration | structure of the application server using JSP.

符号の説明Explanation of symbols

101 HTML
102 画面データ
103 ロジック
201 入力用JSP
202 表示用JSP
203 入力用Java Bean
204 表示用Java Bean
205 ユーザロジック
206 UJIエンジン
207 マッピングファイル
301 HTTPリクエスト
302 フロントコンポーネント
303 入力用Java Bean
304 UJIエンジン
305 コマンドマッピング
306 ページマッピング
307 ユーザロジック
308 テンプレート
309 表示用Java Bean
310 表示用JSP
401 ユーザ一覧表示画面
402 ユーザ状態編集画面
403 プロファイル編集画面
404 ユーザ登録画面
405 ログインボタン
406 ユーザ登録ボタン
407 変更ボタン
408 ログアウトボタン
409 プロファイル編集ボタン
410 変更ボタン
411 戻るボタン
412 変更ボタン
413 戻るボタン
501 ユーザ一覧表示画面
502 ユーザ状態編集画面
503 プロファイル編集画面
504 ユーザ登録画面
505 Java Bean(自動生成)
506 UJI
507 コマンドマッピング
508 ログイン処理
509 ログアウト処理
510 ユーザ状態変更処理
511 プロファイル変更処理
512 ユーザ登録処理
601 Java Bean(処理内で作成)
602 ページマッピング
801 データ入力用HTMLページ
802 入力用Java Bean
901 データ入力用HTMLページ
902 コマンドマッピング
903 ユーザロジック(ハンドラ)
1001 ユーザロジック(ハンドラ)
1002 データベース
1003 表示用Java Bean
1101 表示用Java Bean
1102 ページマッピング
1103 login-succeded.jsp
1104 login-failed.jsp
1201 表示用JSP
1202 表示用Java Bean
1203 出力HTML
1301 ユーザロジック(ハンドラ)
1302 表示用Java Bean(バナー用)
1303 表示用Java Bean(メニュー用)
1304 表示用Java Bean(コンテンツ用)
1305 テンプレート
1306 出力用HTML
1401 XMLインスタンス
1402 コマンドマッピング
1403 UJIエンジン
1404 XML Data Bindingエンジン
1405 Beanインスタンス
1501 ロジック(ハンドラ)
1502 送信用のデータオブジェクト
1503 送信XMLインスタンス
1601 注文伝票XML
1602 出荷伝票XML
1603 UJI
1604 XML Data Bindingエンジン
1605 Java Bean
1606 XMLマップファイル
1607 コマンドマッピング
1608 注文処理
1609 出荷処理
1610 処理
1701 Java Bean
1702 送信XML
1801 システム
1802 アプリケーション
1803 セッション
1804 リクエスト
1805 ハンドラ
1901 フロントコンポーネント
1902 ディスパッチャ
1903 アプリケーション
1904 セッション
1905 ハンドラ
1906 表示用ページ
1907 Dispatch Context
1908 ResponseBean
1909 コマンドマップ
1910 ページマップ
1911 RequestBean
1912 SingleThreadModel
2001 システム
2002 アプリケーション
2003 セッション
2004 ハンドラ
2005 ログイン処理メソッド
2006 ログアウト処理メソッド
2007 ユーザ変更メソッド
2008 プロファイル編集メソッド
2009 ユーザ登録メソッド
3001 モデルオブジェクト
3001a 表示用モデルオブジェクト
3001b 入力用モデルオブジェクト
3002 モデルインタフェース
3003 フレームワークエンジン
3004 表示用JSP
3005 ブラウザ
3006 フロントコンポーネント
3010 サーバ
3011 モデルフレームワーク処理部
3012 Webサーバ部
3013 バックエンド
3014 データベース
3020a、3020b、3020c クライアント
4001、4101 コンポーネントオブジェクト
4002、4102 コンテナオブジェクト
4003、4103 アクションオブジェクト
4004、4104 スクリプト呼び出し部
4011 ValidInputTag オブジェクト
4012 ValidFormTagオブジェクト
4013a CustomActionTag オブジェクト
4013b MyActionTag オブジェクト
5001 CPU
5002 記憶部
5003 入力部
5004 出力部
5005 I/F部
5006 バス
5301 情報処理装置(コンピュータ)
5302 可搬型記録媒体
5303 ネットワーク
5304 プログラム提供サーバ
5401 アプリケーションサーバ
5402 データベースサーバ
5403 クライアント
5501 HTML
5502 画面データ
5503 ロジック
5601 HTML
5602 画面データ
5603 データ
101 HTML
102 Screen data 103 Logic 201 JSP for input
202 JSP for display
203 Java Bean for input
204 Java Bean for display
205 User Logic 206 UJI Engine 207 Mapping File 301 HTTP Request 302 Front Component 303 Java Bean for Input
304 UJI Engine 305 Command Mapping 306 Page Mapping 307 User Logic 308 Template 309 Java Bean for Display
310 JSP for display
401 User List Display Screen 402 User Status Edit Screen 403 Profile Edit Screen 404 User Registration Screen 405 Login Button 406 User Registration Button 407 Change Button 408 Logout Button 409 Profile Edit Button 410 Change Button 411 Return Button 412 Change Button 413 Return Button 501 User List Display screen 502 User status editing screen 503 Profile editing screen 504 User registration screen 505 Java Bean (automatic generation)
506 UJI
507 Command mapping 508 Login processing 509 Logout processing 510 User status change processing 511 Profile change processing 512 User registration processing 601 Java Bean (created in the processing)
602 Page mapping 801 HTML page for data input 802 Java bean for input
901 HTML page for data input 902 Command mapping 903 User logic (handler)
1001 User logic (handler)
1002 Database 1003 Java Bean for display
1101 Java Bean for display
1102 page mapping 1103 login-succeded.jsp
1104 login-failed.jsp
1201 JSP for display
1202 Java Bean for display
1203 output HTML
1301 User logic (handler)
1302 Java Bean for display (for banner)
1303 Java Bean for display (for menu)
1304 Java Bean for display (for content)
1305 Template 1306 HTML for output
1401 XML instance 1402 Command mapping 1403 UJI engine 1404 XML Data Binding engine 1405 Bean instance 1501 Logic (handler)
1502 Data object for transmission 1503 Transmission XML instance 1601 Order slip XML
1602 Shipping document XML
1603 UJI
1604 XML Data Binding Engine 1605 Java Bean
1606 XML map file 1607 Command mapping 1608 Order processing 1609 Shipment processing 1610 Processing 1701 Java Bean
1702 Send XML
1801 System 1802 Application 1803 Session 1804 Request 1805 Handler 1901 Front component 1902 Dispatcher 1903 Application 1904 Session 1905 Handler 1906 Display page 1907 Display Context
1908 ResponseBean
1909 Command map 1910 Page map 1911 RequestBean
1912 SingleThreadModel
2001 system 2002 application 2003 session 2004 handler 2005 login processing method 2006 logout processing method 2007 user change method 2008 profile editing method 2009 user registration method 3001 model object 3001a display model object 3001b input model object 3002 model interface 3003 framework engine 3004 display JSP
3005 Browser 3006 Front component 3010 Server 3011 Model framework processing unit 3012 Web server unit 3013 Backend 3014 Database 3020a, 3020b, 3020c Client 4001, 4101 Component object 4002, 4102 Container object 4003, 4103 Action object 4004, 4104 Script calling unit 4011 ValidInputTag object 4012 ValidFormTag object 4013a CustomActionTag object 4013b MyActionTag object 5001 CPU
5002 Storage unit 5003 Input unit 5004 Output unit 5005 I / F unit 5006 Bus 5301 Information processing apparatus (computer)
5302 Portable recording medium 5303 Network 5304 Program providing server 5401 Application server 5402 Database server 5403 Client 5501 HTML
5502 Screen data 5503 Logic 5601 HTML
5602 Screen data 5603 Data

Claims (5)

ネットワークを介して接続されているクライアント装置と、該クライアント装置との間で各種のデータを授受するサーバ装置とで構成されており、該サーバ装置が提供するデータが表示されるWebページ画面を該クライアント装置の有するディスプレイで表示するWebページ画面表示システムであって、
前記サーバ装置は、
前記クライアント装置に提供するデータを有している、JavaBeansオブジェクトであるモデルオブジェクトであって、且つ該データのテーブル構造に応じてデータを取得するためのメソッドが定義されているモデルインタフェースを実装しているクラスの該モデルオブジェクトが格納されるモデルオブジェクト格納手段と、
前記モデルオブジェクト格納手段に格納されている前記モデルオブジェクトのクラスに実装されている前記モデルインタフェースで定義しているメソッドの戻り値として得られる該モデルオブジェクトの有するデータと、該モデルオブジェクトが有するデータについての前記Webページ画面における表示方法をHTMLによる記述によって前記テーブル構造について定義している定義文とを関連付けることによって、該データが表示されるWebページ画面を表現するHTML文を生成するデータ処理手段と、
を有し、
前記定義文は、前記モデルオブジェクトのクラスが実装している前記モデルインタフェースで定義しているメソッドの戻り値として得られる該モデルオブジェクトが有しているデータをテーブルの形式で表示するための記述であって、該データの各々を該テーブルにおける所定のセルで表示するためのHTMLの該記述を少なくとも含んでおり、
前記データ処理手段は、
前記モデルインタフェースで定義している行数を取得するメソッド、列数を取得するメソッド、セルの値を取得するメソッドのそれぞれの戻り値として、前記テーブルにおける行数と列数を示すデータと該テーブルの各行ごとの各列のセルの値であるデータとを取得し、
前記定義文に含まれている、前記モデルオブジェクトが有しているデータの各々を前記テーブルにおける指定の表示場所で表示するためのHTMLの記述に、前記取得したデータの各々を、該データの該モデルオブジェクトにおける順序に従って組み合わせることによって、前記Webページ画面を表現するHTML文を生成し、
前記クライアント装置は、前記データ処理手段により生成されたHTML文に基づいて前記ディスプレイを制御して、該HTML文で表現されているWebページ画面を表示させる表示制御手段を有する、
ことを特徴とするWebページ画面表示システム。
A client device connected via a network and a server device that exchanges various data with the client device. A Web page screen on which data provided by the server device is displayed is displayed on the Web page screen. A web page screen display system for displaying on a display of a client device,
The server device
A model object which is a JavaBeans object having data to be provided to the client device, and in which a method for obtaining data is defined according to the table structure of the data is implemented. A model object storage means for storing the model object of a certain class ;
About data possessed by the model object obtained as a return value of a method defined in the model interface implemented in the model object class stored in the model object storage means, and data possessed by the model object A data processing means for generating an HTML statement representing the Web page screen on which the data is displayed by associating a display method on the Web page screen with a definition statement defining the table structure by a description in HTML ,
Have
The definition statement is a description for displaying, in the form of a table, data held by the model object obtained as a return value of a method defined by the model interface implemented by the model object class. Including at least the description of HTML for displaying each of the data in a predetermined cell in the table;
The data processing means includes
Each as the return value, data and the table showing the number of rows and columns in the table of the method to get the value of the method, the method for acquiring the number of columns, the cells to get the number of rows that are defined in the model interface And the data that is the cell value of each column for each row of
In the HTML description for displaying each of the data of the model object included in the definition statement at a specified display location in the table, each of the acquired data is the data of the data. By combining according to the order in the model object, an HTML sentence representing the Web page screen is generated,
The client device has display control means for controlling the display based on an HTML sentence generated by the data processing means and displaying a Web page screen expressed in the HTML sentence.
A Web page screen display system characterized by the above.
請求項1記載のWebページ画面表示システムであって、
前記データ処理手段は、前記テーブル構造に対応して定義される属性であるデータクラスを取得し、該データクラスに基づいて前記モデルオブジェクトの有するデータと前記定義文とを関連付ける、
ことを特徴とするWebページ画面表示システム。
The web page screen display system according to claim 1,
The data processing means acquires a data class that is an attribute defined corresponding to the table structure, and associates the data of the model object with the definition statement based on the data class.
A Web page screen display system characterized by the above.
請求項1記載のWebページ画面表示システムであって、
前記サーバ装置は、前記データ処理手段により生成されたHTML文を前記クライアント装置へ送付した後に前記クライアント装置から送付されてくるリクエストであって該HTML文によって表現されているWebページ画面に示されている入力フォームへの入力データを含むリクエストを取得するリクエスト取得手段を更に有し、
前記データ処理手段は、前記リクエストに前記入力データと共に含まれている、該データ処理手段が生成したHTML文に含まれていた文字列であって、該HTML文の生成の基礎とされたモデルインタフェースを特定する文字列と該モデルインタフェースで定義しているメソッドの戻り値として得られる該テーブル構造における特定の位置を示す文字列とからなる該文字列に基づいて、該文字列で特定されるインタフェースで定義しているメソッドの戻り値として得られる該テーブル構造における特定の位置のデータを該リクエストに含まれていたデータに更新する、
ことを特徴とするWebページ画面表示システム。
The web page screen display system according to claim 1,
The server device is a request sent from the client device after sending the HTML statement generated by the data processing means to the client device, and is shown on the Web page screen expressed by the HTML statement. A request acquisition means for acquiring a request including input data to the input form,
The data processing means includes a character string included in the HTML sentence generated by the data processing means, which is included in the request together with the input data, and is a model interface based on which the HTML sentence is generated. An interface specified by the character string based on the character string consisting of a character string specifying a specific position in the table structure obtained as a return value of a method defined in the model interface Update the data at a specific position in the table structure obtained as the return value of the method defined in 1. to the data included in the request.
A Web page screen display system characterized by the above.
請求項3記載のWebページ画面表示システムであって、
前記リクエストに前記入力データと共に含まれている文字列は、前記HTML文の生成の基礎とされたモデルインタフェースを特定する文字列と該モデルインタフェースで定義しているメソッドの戻り値として得られる該テーブル構造における特定の位置を示す文字列とからなる文字列に、更に該位置のデータ群テーブル構造に応じてデータを取得するためのメソッドが定義されているモデルインタフェースを特定する文字列と該モデルインタフェースで定義しているメソッドの戻り値として得られる該テーブル構造における特定の位置を示す文字列とからなる文字列を組み合わせて成り、
前記データ処理手段は、前記文字列で特定されるテーブル構造における特定の位置に更に有しているテーブル構造における特定の位置のデータを前記リクエストに含まれていたデータに更新する、
ことを特徴とするWebページ画面表示システム。
A web page screen display system according to claim 3,
The character string included in the request together with the input data is a table that is obtained as a character string that identifies a model interface used as a basis for generating the HTML statement and a return value of a method defined in the model interface. A character string that specifies a model interface in which a method for obtaining data is further defined according to a table structure of a data group at the position in a character string including a character string indicating a specific position in the structure , and the model Combining a character string consisting of a character string indicating a specific position in the table structure obtained as a return value of the method defined in the interface,
The data processing means updates data at a specific position in the table structure further provided at a specific position in the table structure specified by the character string to data included in the request.
A Web page screen display system characterized by the above.
ネットワークを介して接続されているクライアント装置と、該クライアント装置との間で各種のデータを授受するサーバ装置とで構成されており、該サーバ装置が提供するデータが表示されるWebページ画面を該クライアント装置の有するディスプレイで表示するWebページ画面表示システムが行うWebページ画面表示方法であって、
前記サーバ装置が有しているモデルオブジェクト格納手段に格納されており前記クライアント装置に提供するデータを有している、JavaBeansオブジェクトであるモデルオブジェクトであって、且つ該データのテーブル構造に応じてデータを取得するためのメソッドが定義されているモデルインタフェースを実装するクラスの該モデルオブジェクトが有しており、該メソッドの戻り値として得られるデータと、該モデルオブジェクトが有するデータについての前記Webページ画面における表示方法をHTMLによる記述によって前記テーブル構造について定義している定義文と関連付けることによって、該データが表示されるWebページ画面を表現するHTML文を該サーバ装置の有するデータ処理手段が生成し、
前記定義文は、前記モデルオブジェクトのクラスが実装している前記モデルインタフェースで定義しているメソッドの戻り値として得られる該モデルオブジェクトが有しているデータをテーブルの形式で表示するための記述であって、該データの各々を該テーブルにおける指定の表示場所で表示するためのHTMLの該記述を少なくとも含んでおり、
前記データ処理手段は、
前記モデルインタフェースで定義している行数を取得するメソッド、列数を取得するメソッド、セルの値を取得するメソッドのそれぞれの戻り値として、前記テーブルにおける行数と列数を示すデータと該テーブルの各行ごとの各列のセルの値であるデータとを取得し、
前記定義文に含まれている、前記モデルオブジェクトが有しているデータの各々を前記テーブルにおける指定の表示場所で表示するためのHTMLの記述に、前記取得したデータの各々を、該データの該モデルオブジェクトにおける順序に従って組み合わせることによって、前記Webページ画面を表現するHTML文を生成し、
前記クライアント装置の有する表示制御手段が、前記データ処理手段により生成されたHTML文に基づいて前記ディスプレイを制御して、該HTML文で表現されているWebページ画面を表示させる、
ことを特徴とするWebページ画面表示方法。
A client device connected via a network and a server device that exchanges various data with the client device. A Web page screen on which data provided by the server device is displayed is displayed on the Web page screen. A web page screen display method performed by a web page screen display system for displaying on a display of a client device,
A model object that is a JavaBeans object that is stored in a model object storage unit included in the server device and has data to be provided to the client device, and data corresponding to the table structure of the data The model object of the class that implements the model interface in which the method for obtaining the method is defined , the data obtained as the return value of the method, and the Web page screen for the data of the model object by associating the definition statements defining the said table structure display method by a description in HTML in the HTML statements that represent Web page screen to which the data is displayed the data processing means with the said server device generates ,
The definition statement is a description for displaying, in the form of a table, data held by the model object obtained as a return value of a method defined by the model interface implemented by the model object class. Including at least the description of HTML for displaying each of the data at a specified display location in the table;
The data processing means includes
Each as the return value, data and the table showing the number of rows and columns in the table of the method to get the value of the method, the method for acquiring the number of columns, the cells to get the number of rows that are defined in the model interface And the data that is the cell value of each column for each row of
In the HTML description for displaying each of the data of the model object included in the definition statement at a specified display location in the table, each of the acquired data is the data of the data. By combining according to the order in the model object, an HTML sentence representing the Web page screen is generated,
Display control means of the client device controls the display based on the HTML sentence generated by the data processing means to display a Web page screen expressed in the HTML sentence;
A Web page screen display method characterized by the above.
JP2007310860A 2000-08-15 2007-11-30 Web page screen display system and web page screen display method Expired - Fee Related JP4231087B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007310860A JP4231087B2 (en) 2000-08-15 2007-11-30 Web page screen display system and web page screen display method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000246139 2000-08-15
JP2000347977 2000-11-15
JP2007310860A JP4231087B2 (en) 2000-08-15 2007-11-30 Web page screen display system and web page screen display method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006344426A Division JP2007133893A (en) 2000-08-15 2006-12-21 Web application generation device and method

Publications (2)

Publication Number Publication Date
JP2008112460A JP2008112460A (en) 2008-05-15
JP4231087B2 true JP4231087B2 (en) 2009-02-25

Family

ID=39444906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007310860A Expired - Fee Related JP4231087B2 (en) 2000-08-15 2007-11-30 Web page screen display system and web page screen display method

Country Status (1)

Country Link
JP (1) JP4231087B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5074434B2 (en) * 2009-02-20 2012-11-14 株式会社日立製作所 Distributed processing system, distributed processing method, development support apparatus and development support method for distributed processing system
US20120317504A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Automated user interface object transformation and code generation

Also Published As

Publication number Publication date
JP2008112460A (en) 2008-05-15

Similar Documents

Publication Publication Date Title
US8738735B2 (en) System for designing and performing web application
US7647561B2 (en) System, method and computer program product for application development using a visual paradigm to combine existing data and applications
US8260844B2 (en) Information messaging and collaboration system
US6268852B1 (en) System and method for facilitating generation and editing of event handlers
US7814157B2 (en) Hypermedia browser API simulation to enable use of browser plug-ins and applets as embedded widgets in script-language-based interactive programs
US6954751B2 (en) Accessing data stored at an intermediary from a service
US7127705B2 (en) Developing applications online
US7089295B2 (en) Customizing content provided by a service
US7992127B2 (en) Method and system of encapsulating web site transactions for computer-aided generation of web services
US5455903A (en) Object oriented customer information exchange system and method
US7774697B2 (en) System and method for structuring distributed applications
JP2003186673A (en) Integration method of computer system components, and configuration system
US8689186B2 (en) Execution of a BPEL process by simulating partners
CN101185303A (en) System and method for creating a mapping document for binding messages between an application and an associated backend server
CN1728700B (en) Web telecommunication network management system based on &#39;struts&#39; architecture, and method
JP2002215394A (en) Web application development and execution system and web application generating device
US20030018627A1 (en) Apparatus and method for workflow
JP4231087B2 (en) Web page screen display system and web page screen display method
JP4358268B2 (en) Web application execution system
KR20090000199A (en) Web server application framework, web application processing method using the framework and computer readable medium processing the method
JP2007122746A (en) Web application creation device and method
JP2007188526A (en) Web application execution system
JP2007133893A (en) Web application generation device and method
JP2007109258A (en) Web system
Stroulia et al. Reverse engineering interaction plans for legacy interface migration

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080715

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080826

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081024

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081030

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121212

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121212

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131212

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees