JPWO2011118003A1 - ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 - Google Patents

ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 Download PDF

Info

Publication number
JPWO2011118003A1
JPWO2011118003A1 JP2010540966A JP2010540966A JPWO2011118003A1 JP WO2011118003 A1 JPWO2011118003 A1 JP WO2011118003A1 JP 2010540966 A JP2010540966 A JP 2010540966A JP 2010540966 A JP2010540966 A JP 2010540966A JP WO2011118003 A1 JPWO2011118003 A1 JP WO2011118003A1
Authority
JP
Japan
Prior art keywords
web application
application construction
service
screen
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010540966A
Other languages
English (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.)
NTT Data Sekisui Systems Corp
Original Assignee
NTT Data Sekisui Systems Corp
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 NTT Data Sekisui Systems Corp filed Critical NTT Data Sekisui Systems Corp
Publication of JPWO2011118003A1 publication Critical patent/JPWO2011118003A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

ウェブアプリケーション構築システムの一実施形態は、各種データを記憶するデータベースの管理を行うデータベース部(13)と、業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をサービス(12s)として提供するサ−ビス提供部(12)と、このサ−ビス提供部(12)で提供される1つ以上のサービス(12s)を組み合わせて利用者毎のビジネスロジックをプロセス(12p)として作成するプロセス作成部(12)と、このプロセス作成部(12)で作成されたプロセス(12p)に応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築部(12)とを備え、プロセス作成部(12)で作成されたプロセス(12p)とそのプロセス(12p)に組み合わされているサービス(12s)が1つの仮想マシン上で動作し、それらのトランザクション制御がデータベース部(13)によって行われる。

Description

本発明は、いわゆるマルチテナント型ウェブアプリケーションを構築する際に、テナント毎の要件に対応したビジネスロジック構築についての柔軟性を向上させるとともにウェブアプリケーション画面のカスタマイズ容易性をも向上させるウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体に関する。
従来、企業業務におけるデータエントリシステム、ワークフローシステムなどのビジネスアプリケーションでは、データベースサーバの管理するデータをクライアントからアプリケーションサーバを介して操作するという方式がとられてきた。近年、このようなビジネスアプリケーションはWebアプリケーションとして実現されるようになった。
このようなWebアプリケーションを実行するアプリケーションサーバを開発する際にデータ、ロジック、画面の各モジュールに分けて記述するフレームワークを提供することにより、Webアプリケーションの開発効率と保守性を向上するための技術が提案されている(例えば、特許文献1参照)。
さらに、複数の利用者によって同一のアプリケーションおよびハードウェア環境が共有されるとともに、データベースやウェブページなどの設定を利用者毎にカスタマイズすることが可能なマルチテナント型アプリケーションも提供されるようになってきた。
このようなマルチテナント型アプリケーションでは、利用者毎に専用の環境を構築する必要がないことから、アプリケーションの迅速な導入と、TOC(Total Cost of Ownership)の削減が可能である。また、複数の利用者で同一の環境を利用することで、バージョンアップなどのメンテナンス時の対応が共通化されるため、アプリケーションのメンテナンスを容易に実行することが可能である。
なお、このようなマルチテナント型アプリケーションでは、複数の全ての利用者に対して、同一バージョンのアプリケーションを提供することになるが、利用者毎に微妙に異なる仕様要求を満たすために、利用者の仕様要求に応じて、利用者自身がアプリケーションのカスタマイズや機能の新規追加を行う機能(即ち、利用者カスタマイズ機能)を持たせることが一般的となっている。
しかし、利用者による様々な種類のアプリケーションのカスタマイズや追加が行われた際に、例えば、それらの変更を理解するための仕組みを全てアプリケーション側で保持する必要があり、アプリケーション自体が大きく複雑になってしまうという問題点があった。
そこで、マルチテナント型アプリケーションのカスタマイズ機能に拡張性を持たせると共にメンテナンス時の対応が容易なアプリケーションプログラムの提供システムを提供する技術も提案されている(例えば、特許文献2参照)。
さらに、Webアプリケーションにおける業務アプリケーションの開発に関し、特に、ビジネスロジック構築における柔軟性とカスタマイズの容易性を担保したマルチテナント型アプリケーションについての技術は他にも提案されている(例えば、特許文献3〜5参照)。
特開2008−112460号公報 特開2009−282777号公報 特表2007−531941号公報 特開2009−145972号公報 特開2003−280898号公報
しかしながら、上述したようなマルチテナント形式のサービス提供をWebアプリケーションで構築する場合、テナント毎の要件に対応したビジネスロジック構築について柔軟性に欠けている。具体的には、次のような問題点が挙げられる。
・ビジネスロジックの組み合わせ
・ビジネスロジックの順序入れ替え
・ビジネスロジックの追加
・ビジネスロジック組み合わせの条件分岐
・ビジネスロジック内へのテナント判定の混入
テナント毎の要件を満たすために、これらを個々に実装することでWebアプリケーションの肥大化と複雑化を招いていた。
SaaS基盤やBPMServerでは、Webサービスを組み合わせてビジネスロジックを構成できる。しかし、個々のサービスが分離独立しておりサービス間は疎結合である。このことにより、組み合わせによる複数ロジック実行時のトランザクションがサービス毎に分離される。トランザクションを連携する規格(Webサービス・トランザクション)はあるが、あまり利用されていない状況であり、エラー処理などに複雑な実装を織り込まなければならない。
さらに、Webサービスでビジネスロジックを組み合わせると、個々のサービスがネットワークを経由するため、軽快なレスポンスを得にくい。
一方、上述したようなマルチテナント形式でのWebアプリケーション画面を構築する場合、入力項目の設定や項目タイトルなどはテナント毎に全く同一ではなく、多少の相違点があることが多い。具体的には、例えば次のようなものが挙げられる。
・名称が「部署」か「部所」の違い
・数量の上限値違い
・文字列長の制限
・専用項目の用意
・必須入力の指定の有無
また、これらの入力項目とデータベースのテーブル・カラム構成とが密接に連携していることが多く、テナント毎に用意せざるを得なかった。
本発明の第1の目的は、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できるウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体を提供することである。
本発明の第2の目的は、テナント毎に入力項目の設定や項目タイトルなどが多少異なっている場合であっても、データベースをテナント毎に用意することなくマルチテナント型のWebアプリケーション画面を構築できるウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体を提供することである。
本発明のウェブアプリケーション構築システムは、同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築システムであって、各種データを記憶するデータベースの管理を行うデータベース部と、業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をサービスとして提供するサ−ビス提供部と、このサ−ビス提供部で提供される1つ以上のサービスを組み合わせて利用者毎のビジネスロジックをプロセスとして作成するプロセス作成部と、このプロセス作成部で作成されたプロセスに応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築部とを備え、前記プロセス作成部で作成されたプロセスとそのプロセスに組み合わされているサービスが1つの仮想マシン上で動作し、それらのトランザクション制御が前記データベース部によって行われることを特徴とする。
ここで、例えば、前記サ−ビス提供部で提供されるサービスはJavaで実装され、前記プロセス作成部で作成されるプロセスはスクリプト言語のJRubyまたはRubyで実装され、前記仮想マシンはJava仮想マシンであってもよい。
このような構成のウェブアプリケーション構築システムによれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。仮想マシン上で全てが動作するため、組み合わせたサービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。なお、前記プロセス作成部で作成されるプロセスをJRubyまたはRubyで実装する場合は、組み合わせを簡単に記述できる。
また、本発明のウェブアプリケーション構築システムにおいて、前記サ−ビス提供部によって提供されるサービスは、業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスとを備え、前記エンティティは前記データベース上のテーブルとオブジェクトをマッピングし、前記エンティティサービスの追加/参照/更新/削除操作機能部分が自動生成されることを特徴としてもよい。
このような構成のウェブアプリケーション構築システムによれば、エンティティサービスの追加/参照/更新/削除操作機能部分が自動生成されるので、冗長になりやすいデータベースアクセスの記述を単一化でき、管理がしやすくなる。
また、本発明のウェブアプリケーション構築システムにおいて、前記プロセスに対応した画面表示を行う画面表示部をさらに備え、この画面表示部は、テナント毎に割り当てられたテナント識別子と、業務アプリケーションの機能分類毎に割り当てられたアプリケーション識別子と、テナント別に業務アプリケーション画面毎に割り当てられた画面識別子と、業務機能の画面パターンにあわせて用意された専用アクセスパスとの組み合わせから画面表示デザインを決定するとともに、画面の入力項目およびラベル毎に割り当てられた項目識別子毎に設定されたパラメータに基づいて表示制御が行われることを特徴としてもよい。
ここで、前記パラメータの内容に基づく表示制御には、例えば、表示の種類、値の書式、文言、幅、最大最小値、必須チェックの有無などが挙げられる。
このような構成のウェブアプリケーション構築システムによれば、テナント毎に入力項目の設定や項目タイトルなどが多少異なっている場合であっても、パラメータを設定することで対応可能なので、データベースをテナント毎に用意することなくマルチテナント型のWebアプリケーション画面を構築でき、データベースとの構成依存もなくなる。
また、本発明のウェブアプリケーション構築システムにおいて、前記画面表示部は、項目識別子毎に設定されたパラメータの内容を画面表示に動的に反映させることを特徴としてもよい。さらに、前記パラメータの内容は前記データベースに記憶され、前記画面表示部が画面表示を行う際にその画面に必要な項目識別子の設定を前記画面識別子をキーにしてまとめて取得可能であることを特徴としてもよい。
このような構成のウェブアプリケーション構築システムによれば、画面のデザインを静的な物として用意しておき、表示時に動的に変化させることができるため、カスタマイズ対応がしやすくなる。
あるいは、本発明のウェブアプリケーション構築方法は、同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築方法であって、各種データを記憶するデータベースの管理を行うデータベース管理工程と、業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をサービスとして提供するサ−ビス提供工程と、このサ−ビス提供部で提供される1つ以上のサービスを組み合わせて利用者毎のビジネスロジックをプロセスとして作成するプロセス作成工程と、このプロセス作成部で作成されたプロセスに応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築工程とを備え、前記プロセス作成工程で作成されたプロセスとそのプロセスに組み合わされているサービスが1つの仮想マシン上で動作し、それらのトランザクション制御が前記データベース管理工程によって行われることを特徴とする。
このような構成のウェブアプリケーション構築方法によれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。仮想マシン上で全てが動作するため、組み合わせたサービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。
また、本発明のウェブアプリケーション構築方法において、前記サ−ビス提供工程によって提供されるサービスは、業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスとを備え、前記エンティティが前記データベース上のテーブルとオブジェクトをマッピングするマッピング工程と、前記エンティティサービスの追加/参照/更新/削除操作機能部分を自動生成する自動精製工程とをさらに備えることを特徴としてもよい。
このような構成のウェブアプリケーション構築方法によれば、エンティティサービスの追加/参照/更新/削除操作機能部分が自動生成されるので、冗長になりやすいデータベースアクセスの記述を単一化でき、管理がしやすくなる。
また、本発明のウェブアプリケーション構築方法において、前記プロセスに対応した画面表示を行う画面表示工程をさらに備え、この画面表示工程は、テナント毎に割り当てられたテナント識別子と、業務アプリケーションの機能分類毎に割り当てられたアプリケーション識別子と、テナント別に業務アプリケーション画面毎に割り当てられた画面識別子と、業務機能の画面パターンにあわせて用意された専用アクセスパスとの組み合わせから画面表示デザインを決定するとともに、画面の入力項目およびラベル毎に割り当てられた項目識別子毎に設定されたパラメータに基づいて表示制御を行うことを特徴としてもよい。
このような構成のウェブアプリケーション構築方法によれば、テナント毎に入力項目の設定や項目タイトルなどが多少異なっている場合であっても、パラメータを設定することで対応可能なので、データベースをテナント毎に用意することなくマルチテナント型のWebアプリケーション画面を構築でき、データベースとの構成依存もなくなる。
また、本発明のウェブアプリケーション構築方法において、前記画面表示工程は、項目識別子毎に設定されたパラメータの内容を画面表示に動的に反映させることを特徴としてもよい。さらに、前記パラメータの内容は前記データベースに記憶され、前記画面表示部が画面表示を行う際にその画面に必要な項目識別子の設定を前記画面識別子をキーにしてまとめて取得可能であることを特徴としてもよい。
このような構成のウェブアプリケーション構築方法によれば、画面のデザインを静的な物として用意しておき、表示時に動的に変化させることができるため、カスタマイズ対応がしやすくなる。
あるいは、本発明のウェブアプリケーション構築プログラムは、上記ウェブアプリケーション構築方法をコンピュータに実行させることを特徴とする。
このような構成のウェブアプリケーション構築プログラムによれば、プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明のウェブアプリケーション構築方法を実現することができる。さらに、このウェブアプリケーション構築プログラムを汎用的なコンピュータで実行可能なものにしておけば、本発明のウェブアプリケーション構築方法を実現するために専用のコンピュータ環境を準備する必要もなくなり、本発明のウェブアプリケーション構築プログラムの有用性が高まる。
あるいは、本発明のウェブアプリケーション構築プログラムを記録した記録媒体は、コンピュータ読み取り可能な記録媒体であって、上記ウェブアプリケーション構築プログラムを記録していることを特徴とする。
このような構成のウェブアプリケーション構築プログラムを記録した記録媒体によれば、本発明のウェブアプリケーション構築方法を様々な場所や環境で実現することが容易になり、本発明のウェブアプリケーション構築方法の汎用性を高めることができる。
本発明のウェブアプリケーション構築システムおよびウェブアプリケーション構築方法によれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。仮想マシン上で全てが動作するため、組み合わせたサービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。
本発明のウェブアプリケーション構築プログラムによれば、プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明のウェブアプリケーション構築方法を実現することができる。さらに、このウェブアプリケーション構築プログラムを汎用的なコンピュータで実行可能なものにしておけば、本発明のウェブアプリケーション構築方法を実現するために専用のコンピュータ環境を準備する必要もなくなり、本発明のウェブアプリケーション構築プログラムの有用性が高まる。
また、本発明のウェブアプリケーション構築プログラムを記録した記録媒体によれば、本発明のウェブアプリケーション構築方法を様々な場所や環境で実現することが容易になり、本発明のウェブアプリケーション構築方法の汎用性を高めることができる。
図1は本発明の第1実施形態に係るWebアプリケーション構築システム10のサーバ構成などを示す機能ブロック図である。 図2はWebアプリケーション構築システム10の各サーバ上で動作する各モジュールとクライアント装置20上で動作するブラウザ20bとの間の呼び出し関係などの説明図である。 図3はいくつかの共通JavaScript関数とHTML要素の記述ルールである。 図4(a)および図4(b)はUIパラメータのイメージを示す表であり、図4(a)はUI_PARAMを示し、図4(b)はUI_INPUTを示す。 図5はJRubyによるDSL(Domain Specific Language:ドメイン固有言語)として記述されたプロセス12pの例である。 図6は図5に例示されたプロセス12pで使用されているDSL関数の概略説明図である。 図7はプロセス、アクションおよびサブアクションについての説明図である。 図8(a)および図8(b)はUI−DBパラメータ変換についての説明図であり、図8(a)が変換前を示し、図8(b)が変換後を示す。 図9はエンティティサービス12s1およびビジネスサービス12s2の関係の概略説明図である。 図10はサービス12sのドキュメントの記述例である。 図11はWebアプリケーション構築システム10における標準的な入力系画面処理の概略シーケンス図である。 図12はテナント1用の標準受注入力画面の見出入力タブの画面表示例である。 図13は図12と同じ標準受注入力画面の明細入力タブの画面表示例である。 図14はテナント2用の標準受注入力画面の見出入力タブの画面表示例である。 図15は図14と同じ標準受注入力画面の明細入力タブの画面表示例である。 図16はテナント1用の受注一覧条件設定画面の表示例である。 図17はテナント2用の受注一覧条件設定画面の表示例である。
以下、本発明の実施形態を、図面を参照して説明する。
本発明の第1実施形態に係るマルチテナント型Webアプリケーションを構築するWebアプリケーション構築システム10では、SOA(Service Oriented Architecture:サービス指向アーキテクチャ)の考え方を取り入れ、ビジネスロジックを「プロセス」と「サービス」に分離することとしている。そして、標準的な機能はサービスとして部品化するとともに、テナント(会社など)毎のビジネスロジックは必要な1つ以上のサービスを組み合わせることでプロセスとして作成する。
将来発生するテナント毎のビジネスロジックの違いは、プロセスをテナント毎にコピーしてからそれを変更することで対応する。サービスの作成には保守性の高いJava(登録商標、以下も同様)を使用し、プロセスの作成には記述性および柔軟性の高いスクリプト言語であるRuby(JRuby)を使用する。
以下では、次のような項目毎に詳細な説明を行う。
A.Webアプリケーション構築システム10
A1.機能ブロック
A11.サーバ構成
A12.モジュール呼び出し関係
A2.処理詳細
A21.画面(JSP)
A22.プロセス(JRuby)
A23.サービス(Java)
A3.処理シーケンス
A4.画面表示例
B.プログラムおよび記録媒体としての実施形態
<A11.機能ブロック/サーバ構成>
図1は本発明の第1実施形態に係るWebアプリケーション構築システム10のサーバ構成などを示す機能ブロック図である。
この図に示すように、Webアプリケーション構築システム10は、画面に関する処理などが主に実装されるフロントサーバ11と、ビジネスロジックなどに関する処理が主に実装されるロジックサーバ12と、各種データを記憶・管理するデータベースに関する処理が主に実装されるデータベースサーバ13とを備えている。このWebアプリケーション構築システム10は、フロントサーバ11およびインターネットなどのネットワークを介して、外部の1台以上のクライアント装置20と接続される。
なお、この図1では、Webアプリケーション構築システム10は3台のサーバ11、12、13を組み合わせて構成された場合が示されているが、実際のハードウェア構成としては1台のサーバ装置のみで実現することも可能である。
次にこれらのサーバ11、12、13などで利用されるプロダクトを例示するが、各プロダクトについてはまとめて後述する。
フロントサーバ11に利用されるプロダクトとしては、例えば、intra−mart、S2Struts、S2DAOなどが挙げられる。画面は標準的なJSP(JavaServer Pages)を利用して実装される。
ロジックサーバ12に利用されるプロダクトとしては、例えば、Tomcat、S2JDBCなどが挙げられる。プロセスはJRubyを利用して実装される。サービスおよびエンティティはJavaを利用して実装される。
データベースサーバ13に利用されるプロダクトとしては、例えば、リレーショナルデータベースマネージメントシステム(RDBMS)として市販されているOracleが挙げられる。
フロントサーバ11からロジックサーバ12への通信はHTTPで行われ、ロジックサーバ12からフロントサーバ11へはJSON(JavaScript Object Notation)が返信される。
フロントサーバ11からデータベースサーバ13への通信はS2DAOによって参照のみが行われ、データベースサーバ13からフロントサーバ11へはUIパラメータ、アクセス権限、intra−martマスタが返信される。
ロジックサーバ12からデータベースサーバ13への通信はS2JDBCによって参照および更新が行われ、データベースサーバ13からロジックサーバ12へはUIパラメータ、業務データ、実行ログが返信される。
クライアント装置20上で動作するブラウザ20bでは、例えば、HTML、JavaScript、jQueryなどが利用される。クライアント装置20からフロントサーバ11への通信はHTTPまたはHTTPSで行われ、フロントサーバ11からクライアント装置20へはHTML、JSONが返信される。
intra−martは、NTTデータイントラマート社のWebアプリケーションフレームワークであり、Webアプリケーション構築システム10では、主にユーザ、権限管理とW/F機能を利用する。
jQueryは、JavaScriptのライブラリであり、HTMLやCSSの動的な変更処理を簡略化する。
S2Strutsは、Seasar2(DIコンテナ)を使用してStruts(Webフレームワーク) を拡張したオープンソースフレームワークであり、Strutsの設定作業を簡略化する。
S2DAOおよびS2JDBCは、Seasar2を使用してデータベース13d上のテーブルとJavaのオブジェクトをマッピングするO/Rマッパーツールであり、テーブルのCRUD(追加/参照/更新/削除)操作実装を簡略化する。なお、S2JDBCで統一しないのはintra−martでの制限のためである。
JRubyは、JavaVM上で動作するRuby言語の処理系実装である。JavaからRuby言語で書かれたスクリプトを動作させたり、RubyのスクリプトからJavaのクラス、メソッドを利用することが可能である。
<A12.機能ブロック/モジュール呼び出し関係>
図2はWebアプリケーション構築システム10の各サーバ上で動作する各モジュールとクライアント装置20上で動作するブラウザ20bとの間の呼び出し関係などの説明図である。
この図に示すように、ブラウザ20bはHTTPまたはHTTPSで画面11d(JSP)を呼び出すが、ブラウザ20bからプロセス12p(JRuby)を直接利用することはない。
画面11d(JSP)はHTTPでプロセス12p(JRuby)を呼び出すが、画面11d(JSP)からサービス12s(Java)を直接利用することはない。
プロセス12p(JRuby)はJavaメソッド呼び出しによってサービス12s(Java)を呼び出すが、プロセス12p(JRuby)からデータベース13dを直接利用することはない。
サービス12s(Java)はデータベース13dに記憶・管理されている各種データの参照および更新処理を行う。
なお、これらのプロセス12pおよびサービス12sは、1つのJVM(Java Virtual Machine)上で動作させ、個々の組み合わせのトランザクション制御をデータベース13dと連動できるようにする。
<A21.処理詳細/画面(JSP)>
画面11dは標準的なJSPを使用して実装する。図3はいくつかの共通JavaScript関数とHTML要素の記述ルールである。図4(a)および図4(b)はUIパラメータのイメージを示す表であり、図4(a)はUI_PARAMを示し、図4(b)はUI_INPUTを示す。
図3に示すように、HTMLの入力とラベルの各要素にidを指定する。
指定したIDがUIパラメータのキー(項目ID)となる。画面からfront11dを経由してlogic12p(プロセス) に送られるパラメータも項目IDをキーとする。ラベルの内容や入力項目の型・桁情報、各要素の幅などはUIパラメータからJavaScriptを使用して動的に設定する。なお、フレームワークの共通JavaScript関数を使用する。
図4に示すように、UI_PARAMとUI_INPUTとは、いずれもが有するフィールド「入力ID」に同じ値をもつレコード同士が互いにマッピングされる。
画面11dの論理構成についてさらに説明すると次の通りである。
(1)マルチテナント対応として、テナント毎に会社CD(CODE、以下も同様)を割り当てる。
(2)業務アプリケーションの機能分類(受注管理・仕入管理など)毎にアプリケーションCDを割り当てる。
(3)業務機能の画面パターン(伝票入力パターン・一覧表示パターンなど)にあわせて専用のアクセスパス(URI)を用意する。
(4)テナント別(会社CD別)で業務アプリケーション画面毎に画面IDを割り当てる。
(5)会社CD・アプリケーションCD・画面IDとURIの組み合わせから表示したい画面のデザインを決定する。
(6)画面の入力項目・ラベル毎に、項目IDを割り当てる。
ここでは、項目ID毎に、表示の種類、値の書式、文言、幅、最大最小値、必須チェックの有無などの設定をUIパラメータとして用意する。画面表示時には、各項目IDのUIパラメータの内容を動的に反映する。UIパラメータの内容は、データベース13dに保存し、画面IDをキーに画面11dに必要な項目IDの設定をまとめて一式取得可能にする。
(7)UI−DBパラメータ変換を行う。
画面ID+項目IDでデータベース13dのテーブル・カラムをマッピングして、画面ID+項目IDとマッピングを相互変換できるようにする。業務データ取得時はテーブル・カラムから項目IDに変換し、業務データ保存時には、項目IDからテーブル・カラムに変換する。
また、このような論理構成のための実現方式は次の通りである。
(1)データベース13dを会社CD毎に分割する。
(2)会社CD・アプリケーションCD・画面IDとURIをキーに、画面デザインを記述したJSPファイルを特定する。
(3)JSPファイルには、入力項目やラベルにid=“項目ID”を指定して記述する。
(4)JavaScriptで動的にUIパラメータの内容を各入力項目やラベルに反映する。
ここでは、UIパラメータの内容をデータベースに保持する。画面IDをキーにデータベース13dより項目IDのUIパラメータ一式をまとめて取得する。そして、UIパラメータの内容を反映するJavaScrip (jQuery)のソースを自動生成する。
ブラウザ20bにおける表示時には、自動生成したJavaScriptを動作させ、動的に反映させる。
(5)UI−DBパラメータ変換ライブラリを実装し、画面ID+項目IDとマッピングを相互変換できるようにする。
<A22.処理詳細/プロセス(JRuby)>
図5はJRubyによるDSL(Domain Specific Language:ドメイン固有言語)として記述されたプロセス12pの例である。図6は図5に例示されたプロセス12pで使用されているDSL関数の概略説明図である。なお、図5の行末に示されている[1]などの数字が、図6で同じ数字を有する関数への対応を示している。
DSLとは特定の問題やタスクのために設計されたプログラム言語のことである。プロセス12pでは、文法としてはRubyの文法を使用する。図5には、「初期値取得」、「確認処理」および「登録処理」が例示されている。また、Webアプリケーション構築システム10の業務ロジックを記述するために、例えば、図6に示したような特別な関数(DSL関数)を予め用意しておく。
図7はプロセス、アクションおよびサブアクションについての説明図である。
画面11dからは、actionメソッドで定義した「アクション」というブロック単位で処理を呼び出す。プロセス12pは複数のアクションからなり、画面11dからの呼出は原則としてアクションを指定する。更新系の画面は原則として、1つの画面11dに対して1つのプロセス12pを持つが、参照のみのプロセス12pは複数の画面11dから共用される。なお、複数のプロセス12p間で処理を共通化するためにDSLのファイル単位で切り出したものを「サブアクション」と呼ぶ。
また、サーバから画面項目に値を設定する処理を「入力支援」、サーバで画面項目のエラーチェックを行う処理を「項目チェック」と呼ぶ。これらの入力支援および項目チェックは、予め用意したチェック部品をデータベース13dのパラメータで設定することで、プログラムなしに行うことを可能とする。
図8(a)および図8(b)はUI−DBパラメータ変換についての説明図であり、図8(a)が変換前を示し、図8(b)が変換後を示す。
entityメソッドで画面11dから送られてきたパラメータをJavaのエンティティクラスのインスタンスに変換する。ここで、エンティティとは、データベース13dのテーブルと1対1に対応するオブジェクトである。
画面11dから送られた画面項目(uiNo、c04、等)からデータベース13d項目(juchu.s_juchu、juchu.d_juchu、など)への変換は、フレームワークがUIパラメータを参照して自動的に行う。
例えば、図8(a)および図8(b)に示した場合、entity(:Juchu)では、JuchuオブジェクトのsJuchuプロパティとdJuchuプロパティに、画面11dから送信された値(キーuiNo、c04それぞれの値)を自動的に設定する。ただし、実際には、変換前のハッシュに変換後のキー/値を追加するため、変換前のキー/値も残っている。
<A23.処理詳細/サービス(Java)>
サービス12sはJavaで作成する。このサービス12sが提供する機能はWebアプリケーション構築システム10の標準機能とし、テナント(会社)毎のロジックはプロセス12pで吸収するものとする。
図9はエンティティサービス12s1およびビジネスサービス12s2の関係の概略説明図である。
この図に示すように、サービス12sの種類としては以下の2種類がある。なお、業務データや制御データをエンティティとする。
(1)エンティティサービス
特定のエンティティの1つと結び付くビジネスロジックを実装するサービスであり、基本的なCRUD操作とビジネスロジックを実装するメソッドを持つ。なお、このエンティティサービスは、データベース13dのCRUD操作におけるS2JDBC機能部分を自動生成する。
(2)ビジネスサービス
特定の1つのエンティティと結び付かないビジネスロジックを実装するサービスであり、基本的なCRUD操作は持たず、エンティティサービスを使用する。
また、サービス12sのメソッドの引数には、原則としてエンティティクラスのインスタンスやエンティティクラスのリスト、または、マップ(キーと値の組)やマップのリストを指定することとし、引数の数が多くなることを避ける。
図10はサービス12sのドキュメントの記述例である。
この図ではサービス名「受注明細サービス」の例が示されているが、このようにサービス12sのドキュメントはJavadoc形式で記述する。
<A3.処理シーケンス>
図11はWebアプリケーション構築システム10における標準的な入力系画面処理の概略シーケンス図である。なお、図2などを参照して上述したように、ブラウザ20bはクライアント装置20上で動作し、画面11d(JSP)はフロントサーバ11上で動作し、プロセス12pおよびサービス12sはロジックサーバ12上で動作し、データベース13dはデータベースサーバ13上で動作する。また、図11では、ログイン処理やUI−DBパラメータ変換処理などは省略されている。
まず、ユーザ30がキーボードなどを利用してブラウザ20bにURLを入力すると、これがHTTPとなって画面11dへ送信され、さらに画面11dからS2DAOによってデータベース13dの参照が行われる。データベース13dからはUIパラメータ(項目の幅、型、桁情報、ラベル名称、イベント処理など)が返される。
返ってきたUIパラメータに応じて画面11dからプロセス12pに対してプロセス呼出(INIT)が行われ、さらにプロセス12pからサービス12sに対して入力支援サービス呼出(INIT)が行われ、さらにサービス12sからS2JDBCによってデータベース13dの参照が行われる。データベース13dからはチェックパラメータが返される。この後、サービス12sにおいてビジネスサービス12s2(図9参照)からエンティティサービス12s1(図9参照)呼出を行ってから、サービス12sからS2JDBCによってデータベース13dの参照が再び行われる。データベース13dからは業務データが返される。返ってきた業務データに応じてサービス12sからプロセス12pに対して画面項目初期値が返され、さらにプロセス12pから画面11dに対してJSON(画面項目初期値)が返され、これがHTMLとなってブラウザ20bへ送信され、ブラウザ20bにおいて画面の表示が行われることでユーザ30に認識される。
ユーザ30がキーボードなどを利用して画面内のいずれかの項目へ入力を行い、さらにマウスなどを利用して画面内の登録ボタンをクリックすると、これがHTTP(Ajax)となって画面11dへ送信される。さらに画面11dからプロセス12pに対してプロセス呼出(CONFIRM)が行われ、さらにプロセス12pからサービス12sに対して入力支援サービス呼出(TOROKU)が行われ、さらにサービス12sからS2JDBCによってデータベース13dの参照が行われる。データベース13dからはチェックパラメータが返される。この後、サービス12sにおいてビジネスサービス12s2からエンティティサービス12s1呼出を行ってから、サービス12sからS2JDBCによってデータベース13dの参照が再び行われる。データベース13dからは業務データが返される。返ってきた業務データに応じてサービス12sからプロセス12pに対して入力支援項目値が返される。
返ってきた入力支援項目値に応じてプロセス12pからサービス12sに対して入力チェックサービス呼出(TOROKU)が行われ、さらにサービス12sからS2JDBCによってデータベース13dの参照が行われる。データベース13dからはチェックパラメータが返される。この後、サービス12sにおいてビジネスサービス12s2からエンティティサービス12s1呼出を行ってから、サービス12sからS2JDBCによってデータベース13dの参照が再び行われる。データベース13dからは業務データが返される。返ってきた業務データに応じてサービス12sからプロセス12pに対してチェック結果が返される。さらにプロセス12pから画面11dに対してJSON(入力支援値+チェック結果)が返され、さらに画面11dからブラウザ20bへ入力支援項目値+チェック結果が返され、ブラウザ20bにおいて確認画面の表示が行われることでユーザ30に認識される。
確認画面の表示を認識したユーザ30がマウスなどを利用して画面内の登録ボタンをクリックすると、これがHTTP(Ajax)となって画面11dへ送信される。さらに画面11dからプロセス12pに対してプロセス呼出(TOROKU)が行われ、さらにプロセス12pからサービス12sに対して入力チェックサービス呼出(TOROKU)が行われ、さらにサービス12sからS2JDBCによってデータベース13dの参照が行われる。データベース13dからはチェックパラメータが返される。この後、サービス12sにおいてビジネスサービス12s2からエンティティサービス12s1呼出を行ってから、サービス12sからS2JDBCによってデータベース13dの参照が再び行われる。データベース13dからは業務データが返される。返ってきた業務データに応じてサービス12sからプロセス12pに対してチェック結果が返される。
チェック結果が返ってきた後、プロセス12pにおいてパラメータがエンティティに変換される。次に、プロセス12pからサービス12sに対して登録サービス呼出(エンティティ)が行われ、さらにサービス12sからS2JDBCによってデータベース13dの参照が行われる。データベース13dからは登録結果が返され、さらにサービス12sからプロセス12pに対して登録結果が返される。
さらにプロセス12pから画面11dに対してJSON(登録結果)が返され、さらに画面11dからブラウザ20bへ登録結果が返され、ブラウザ20bにおいて登録結果が表示されることでユーザ30に認識される。
<A4.画面表示例>
Webアプリケーション構築システム10の画面11dによる画面表示例をいくつか示す。
図12はテナント1用の標準受注入力画面の見出入力タブの画面表示例であり、図13は同じ標準受注入力画面の明細入力タブの画面表示例である。
図14はテナント2用の標準受注入力画面の見出入力タブの画面表示例であり、図15は同じ標準受注入力画面の明細入力タブの画面表示例である。
図12および図14の見出入力タブの画面表示例同士を比較すると、販売店の検索用入力欄は図12にのみ存在しており、得意先注文No.、得意先ご連絡欄、受付担当者の各欄は図14にのみ存在している。一方、図13および図15の明細入力タブの画面表示例同士を比較すると、図15の画面表示では右の方に図13には存在しない複数の欄が存在しているのがわかる。
図16はテナント1用の受注一覧条件設定画面の表示例であり、図17はテナント2用の受注一覧条件設定画面の表示例である。
図16および図17の受注一覧条件設定画面の表示例同士を比較すると、図17の受注一覧条件設定画面にのみ拡張項目欄が設けられているのがわかる。このような拡張項目欄を設けておけば、テナント毎に拡張項目欄の利用箇所が増えても、対応するプロセスを追加することにより、他のプロセスに依存せずに、安全に機能が追加できる。
以上で説明した第1実施形態の構成によれば、プロセス12pがスクリプト言語のRubyによって実装されているため、組み合わせを簡単に記述することができる。JVM(Java仮想マシン)上で全てが動作するため、組み合わせがネットワーク経由にならず、軽快な動作が可能になる。エンティティサービス12s1のCRUD操作機能部分を自動生成することにより、冗長になりやすいデータベースアクセスの記述を単一化でき、管理がしやすくなる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要が無くなる。また、マルチテナント対応として、テナント毎の入力桁、幅、名称等については、UIパラメータを設定することで対応が可能となる。画面のデザインを静的な物として用意しておき、表示時に動的に変化させることができるため、カスタマイズ対応がしやすくなる。データベース13dとの構成依存もなくなる。
<B.プログラムおよび記録媒体としての実施形態>
また、本発明はコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体に、上述したWebアプリケーション構築方法を記録するものとすることもできる。この結果、Webアプリケーション構築方法を実行するプログラムを記録した記録媒体を持ち運び自在に提供することができる。
なお、本実施の形態では、この記録媒体としては、マイクロコンピュータで処理が行われるために図示していないメモリ、例えばROMのようなものがプログラムメディアであってもよいし、また、図示していないが外部記憶装置としてプログラム読み取り装置が設けられ、そこに記録媒体を挿入することで読み取り可能なプログラムメディアであっても良い。いずれの場合においても、格納されているプログラムはマイクロプロセッサがアクセスして実行させる構成であってもよいし、あるいは、いずれの場合もプログラムを読み出し、読み出されたプログラムは、マイクロコンピュータの図示されていないプログラム記憶エリアにダウンロードされて、そのプログラムが実行される方式であってもよい。このダウンロード用のプログラムは予め本体装置に格納されているものとする。
ここで、上記プログラムメディアは、本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープ等のテープ系、フレキシブルディスクやハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD等の光ディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュROMなどによる半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
また、本実施の形態においては、インターネットを含む通信ネットワークを接続可能なシステム構成であることから、通信ネットワークからプログラムをダウンロードするように流動的にプログラムを担持する媒体であってもよい。なお、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード用のプログラムは予め本体装置に格納しておくか、あるいは別な記録媒体からインストールされるものであってもよい。上記記録媒体は、Webアプリケーション構築システム10が備える3台のサーバ11、12、13に備えられるプログラム読み取り装置のいずれかによって読み取られることで上述したWebアプリケーション構築方法が実行される。
なお、本発明は、その主旨または主要な特徴から逸脱することなく、他のいろいろな形で実施することができる。そのため、上述の実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈してはならない。本発明の範囲は特許請求の範囲によって示すものであって、明細書本文にはなんら拘束されない。さらに、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
10 Webアプリケーション構築システム
11 フロントサーバ
11d 画面
12 ロジックサーバ
12p プロセス
12s サービス
12s1 エンティティサービス
12s2 ビジネスサービス
13 データベースサーバ
13d データベース
20 クライアント装置
20b ブラウザ
30 ユーザ
本発明のウェブアプリケーション構築システムは、同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築システムであって、各種データを記憶するデータベースの管理を行うデータベース部と、業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をウェブサービスとして提供するウェブビス提供部と、このウェブビス提供部で提供される1つ以上のウェブサービスを組み合わせて利用者毎のビジネスロジックをプロセスとして作成するプロセス作成部と、このプロセス作成部で作成されたプロセスに応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築部とを備え、前記プロセス作成部で作成されたプロセスとそのプロセスに組み合わされているウェブサービスが1つの仮想マシン上で動作、それらのトランザクション制御が前記データベース部によって行われることを特徴とする。
ここで、例えば、前記ウェブビス提供部で提供されるウェブサービスはJavaで実装され、前記プロセス作成部で作成されるプロセスはスクリプト言語のJRubyまたはRubyで実装され、前記仮想マシンはJava仮想マシンであってもよい。
このような構成のウェブアプリケーション構築システムによれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。1つの仮想マシン上で全てが動作するため、組み合わせたウェブサービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。なお、前記プロセス作成部で作成されるプロセスをJRubyまたはRubyで実装する場合は、組み合わせを簡単に記述できる。
また、本発明のウェブアプリケーション構築システムにおいて、前記ウェブビス提供部によって提供されるウェブサービスは、業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスとを備え、前記エンティティは前記データベース上のテーブルとオブジェクトをマッピングし、前記エンティティサービスの追加/参照/更新/削除操作機能部分が自動生成されることを特徴としてもよい。
あるいは、本発明のウェブアプリケーション構築方法は、同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築方法であって、各種データを記憶するデータベースの管理を行うデータベース管理工程と、業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をウェブサービスとして提供するウェブビス提供工程と、このウェブビス提供工程で提供される1つ以上のウェブサービスを組み合わせて利用者毎のビジネスロジックをプロセスとして作成するプロセス作成工程と、このプロセス作成工程で作成されたプロセスに応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築工程とを備え、前記プロセス作成工程で作成されたプロセスとそのプロセスに組み合わされているウェブサービスが1つの仮想マシン上で動作、それらのトランザクション制御が前記データベース管理工程によって行われることを特徴とする。
このような構成のウェブアプリケーション構築方法によれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。1つの仮想マシン上で全てが動作するため、組み合わせたウェブサービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。
また、本発明のウェブアプリケーション構築方法において、前記ウェブビス提供工程によって提供されるウェブサービスは、業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスとを備え、前記エンティティが前記データベース上のテーブルとオブジェクトをマッピングするマッピング工程と、前記エンティティサービスの追加/参照/更新/削除操作機能部分を自動生成する自動精製工程とをさらに備えることを特徴としてもよい。
また、本発明のウェブアプリケーション構築方法において、前記画面表示工程は、項目識別子毎に設定されたパラメータの内容を画面表示に動的に反映させることを特徴としてもよい。さらに、前記パラメータの内容は前記データベースに記憶され、前記画面表示工程が画面表示を行う際にその画面に必要な項目識別子の設定を前記画面識別子をキーにしてまとめて取得可能であることを特徴としてもよい。
本発明のウェブアプリケーション構築システムおよびウェブアプリケーション構築方法によれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。1つの仮想マシン上で全てが動作するため、組み合わせたウェブサービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。
本発明のウェブアプリケーション構築システムは、同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築システムであって、各種データを記憶するデータベースに関する処理を行うデータベースサーバと、業務上の一処理に相当する単位で部品化された1つ以上の標準的機能がサービスとして実装されるとともにつ以上のービスを組み合わせ利用者毎のビジネスロジックプロセスとして実装され、このプロセスに応じ利用者毎のウェブアプリケーションが動作するロジックサーバとを備え、前記プロセスとそのプロセスに組み合わされているービスとが前記ロジックサーバ内の1つの仮想マシン上で動作、それらのトランザクション制御が前記データベースサーバによって行われることを特徴とする。
ここで、例えば、前記サービスはJavaで実装され、前記プロセスはスクリプト言語のJRubyまたはRubyで実装され、前記仮想マシンはJava仮想マシンであってもよい。
このような構成のウェブアプリケーション構築システムによれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。1つの仮想マシン上で全てが動作するため、組み合わせたービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。なお、前記プロセス作成部で作成されるプロセスをJRubyまたはRubyで実装する場合は、組み合わせを簡単に記述できる。
また、本発明のウェブアプリケーション構築システムにおいて、前記サービスは、業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスとを備え、前記エンティティは前記データベース上のテーブルとオブジェクトをマッピングし、前記エンティティサービスの追加/参照/更新/削除操作機能部分が自動生成されることを特徴としてもよい。
また、本発明のウェブアプリケーション構築システムにおいて、面表示をクライアント装置にわせるフロントサーバをさらに備え、このフロントサーバは、テナント毎に割り当てられたテナント識別子と、業務アプリケーションの機能分類毎に割り当てられたアプリケーション識別子と、テナント別に業務アプリケーション画面毎に割り当てられた画面識別子と、業務機能の画面パターンにあわせて用意された専用アクセスパスとの組み合わせから画面表示デザインを決定するとともに、画面の入力項目およびラベル毎に割り当てられた項目識別子毎に設定されたパラメータに基づいて表示制御ことを特徴としてもよい。
あるいは、本発明のウェブアプリケーション構築方法は、同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築方法であって、データベースサーバが、各種データを記憶するデータベースに関する処理を行うデータベース処理工程と、業務上の一処理に相当する単位で部品化された1つ以上の標準的機能がサービスとして実装されるとともに1つ以上のービスを組み合わせ利用者毎のビジネスロジックプロセスとして実装されたロジックサーバが、このプロセスに応じ利用者毎のウェブアプリケーションを動作させるウェブアプリケーション動作工程とを備え、前記プロセスとそのプロセスに組み合わされているービスとが前記ロジックサーバ内の1つの仮想マシン上で動作、それらのトランザクション制御が前記データベースサーバによって行われることを特徴とする。
このような構成のウェブアプリケーション構築方法によれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。1つの仮想マシン上で全てが動作するため、組み合わせたービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。
また、本発明のウェブアプリケーション構築方法において、前記サービスは、業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスとを備え、前記エンティティサービスが、前記ロジックサーバに、前記エンティティを介する前記データベース上のテーブルの追加/参照/更新/削除操作機能部分を自動生成させる自動生成工程とをさらに備えることを特徴としてもよい。
また、本発明のウェブアプリケーション構築方法において、フロントサーバが、画面表示をクライアント装置にわせる画面表示工程をさらに備え、この画面表示工程は、テナント毎に割り当てられたテナント識別子と、業務アプリケーションの機能分類毎に割り当てられたアプリケーション識別子と、テナント別に業務アプリケーション画面毎に割り当てられた画面識別子と、業務機能の画面パターンにあわせて用意された専用アクセスパスとの組み合わせから画面表示デザインを決定するとともに、画面の入力項目およびラベル毎に割り当てられた項目識別子毎に設定されたパラメータに基づいて表示制御を行うことを特徴としてもよい。
本発明のウェブアプリケーション構築システムおよびウェブアプリケーション構築方法によれば、ビジネスロジックを個々に独立した部品として扱えたり、簡単に組み合わせられたりするとともに、組み合わせたビジネスロジックでトランザクションを統一できる。1つの仮想マシン上で全てが動作するため、組み合わせたービス同士がネットワーク経由にならないため、軽快な動作が可能になる。トランザクション制御が従来のアプリケーションと同等となり、データベースの機能を使ってデータの整合性を保つことができるので、新しい制御方法を覚える必要がない。

Claims (15)

  1. 同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築システムであって、
    各種データを記憶するデータベースの管理を行うデータベース部と、
    業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をサービスとして提供するサ−ビス提供部と、
    このサ−ビス提供部で提供される1つ以上のサービスを組み合わせて利用者毎のビジネスロジックをプロセスとして作成するプロセス作成部と、
    このプロセス作成部で作成されたプロセスに応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築部と
    を備え、
    前記プロセス作成部で作成されたプロセスとそのプロセスに組み合わされているサービスが1つの仮想マシン上で動作し、それらのトランザクション制御が前記データベース部によって行われることを特徴とするウェブアプリケーション構築システム。
  2. 請求項1に記載のウェブアプリケーション構築システムにおいて、
    前記サ−ビス提供部によって提供されるサービスは、
    業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、
    ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスと
    を備え、
    前記エンティティは前記データベース上のテーブルとオブジェクトをマッピングし、
    前記エンティティサービスの追加/参照/更新/削除操作機能部分が自動生成されることを特徴とするウェブアプリケーション構築システム。
  3. 請求項1または2に記載のウェブアプリケーション構築システムにおいて、
    前記プロセス作成部で作成されるプロセスはRubyで実装されていることを特徴とするウェブアプリケーション構築システム。
  4. 請求項1〜3のいずれか1項に記載のウェブアプリケーション構築システムにおいて、
    前記サ−ビス提供部で提供されるサービスはJavaで実装されており、
    前記プロセス作成部で作成されるプロセスはJRubyで実装されており、
    前記仮想マシンはJava仮想マシンであることを特徴とするウェブアプリケーション構築システム。
  5. 請求項1〜4のいずれか1項に記載のウェブアプリケーション構築システムにおいて、
    前記プロセスに対応した画面表示を行う画面表示部をさらに備え、
    この画面表示部は、
    テナント毎に割り当てられたテナント識別子と、
    業務アプリケーションの機能分類毎に割り当てられたアプリケーション識別子と、
    テナント別に業務アプリケーション画面毎に割り当てられた画面識別子と、
    業務機能の画面パターンにあわせて用意された専用アクセスパスと
    の組み合わせから画面表示デザインを決定するとともに、
    画面の入力項目およびラベル毎に割り当てられた項目識別子毎に設定されたパラメータに基づいて表示制御が行われることを特徴とするウェブアプリケーション構築システム。
  6. 請求項5に記載のウェブアプリケーション構築システムにおいて、
    前記画面表示部は、項目識別子毎に設定されたパラメータの内容を画面表示に動的に反映させることを特徴とするウェブアプリケーション構築システム。
  7. 請求項5または6に記載のウェブアプリケーション構築システムにおいて、
    前記パラメータの内容は前記データベースに記憶され、前記画面表示部が画面表示を行う際にその画面に必要な項目識別子の設定を前記画面識別子をキーにしてまとめて取得可能であることを特徴とするウェブアプリケーション構築システム。
  8. 請求項5〜7のいずれか1項に記載のウェブアプリケーション構築システムにおいて、
    前記パラメータの内容に基づく表示制御には、表示の種類、値の書式、文言、幅、最大最小値、必須チェックの有無の少なくとも1つ以上を含むことを特徴とするウェブアプリケーション構築システム。
  9. 同一のサーバ環境を使用する複数の利用者の各々が任意の仕様にカスタマイズして使用することができるマルチテナント型ウェブアプリケーションを構築するウェブアプリケーション構築方法であって、
    各種データを記憶するデータベースの管理を行うデータベース管理工程と、
    業務上の一処理に相当する単位で部品化された1つ以上の標準的機能をサービスとして提供するサ−ビス提供工程と、
    このサ−ビス提供部で提供される1つ以上のサービスを組み合わせて利用者毎のビジネスロジックをプロセスとして作成するプロセス作成工程と、
    このプロセス作成部で作成されたプロセスに応じて利用者毎のウェブアプリケーションを構築するウェブアプリケーション構築工程と
    を備え、
    前記プロセス作成工程で作成されたプロセスとそのプロセスに組み合わされているサービスが1つの仮想マシン上で動作し、それらのトランザクション制御が前記データベース管理工程によって行われることを特徴とするウェブアプリケーション構築方法。
  10. 請求項9に記載のウェブアプリケーション構築方法において、
    前記サ−ビス提供工程によって提供されるサービスは、
    業務データまたは制御データをエンティティとし、そのエンティティのうちで特定の1つと結び付いて、前記データベースに対するデータ操作やエンティティ専用のロジックを有するエンティティサービスと、
    ビジネスロジックの個々の機能を実装し、データ操作は前記エンティティサービスを介して行うビジネスサービスと
    を備え、
    前記エンティティが前記データベース上のテーブルとオブジェクトをマッピングするマッピング工程と、
    前記エンティティサービスの追加/参照/更新/削除操作機能部分を自動生成する自動精製工程とをさらに備えることを特徴とするウェブアプリケーション構築方法。
  11. 請求項9または10に記載のウェブアプリケーション構築方法において、
    前記プロセスに対応した画面表示を行う画面表示工程をさらに備え、
    この画面表示工程は、
    テナント毎に割り当てられたテナント識別子と、
    業務アプリケーションの機能分類毎に割り当てられたアプリケーション識別子と、
    テナント別に業務アプリケーション画面毎に割り当てられた画面識別子と
    業務機能の画面パターンにあわせて用意された専用アクセスパスと
    の組み合わせから画面表示デザインを決定するとともに、
    画面の入力項目およびラベル毎に割り当てられた項目識別子毎に設定されたパラメータに基づいて表示制御を行うことを特徴とするウェブアプリケーション構築方法。
  12. 請求項11に記載のウェブアプリケーション構築方法において、
    前記画面表示工程は、項目識別子毎に設定されたパラメータの内容を画面表示に動的に反映させることを特徴とするウェブアプリケーション構築システム。
  13. 請求項11または12に記載のウェブアプリケーション構築方法において、
    前記パラメータの内容は前記データベースに記憶され、前記画面表示部が画面表示を行う際にその画面に必要な項目識別子の設定を前記画面識別子をキーにしてまとめて取得可能であることを特徴とするウェブアプリケーション構築方法。
  14. 請求項9〜13のいずれか1項に記載のウェブアプリケーション構築方法をコンピュータに実行させるウェブアプリケーション構築プログラム。
  15. コンピュータ読み取り可能な記録媒体であって、
    請求項14に記載のウェブアプリケーション構築プログラムを記録した記録媒体。
JP2010540966A 2010-03-25 2010-03-25 ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 Pending JPWO2011118003A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/055233 WO2011118003A1 (ja) 2010-03-25 2010-03-25 ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体

Publications (1)

Publication Number Publication Date
JPWO2011118003A1 true JPWO2011118003A1 (ja) 2013-07-04

Family

ID=44672594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010540966A Pending JPWO2011118003A1 (ja) 2010-03-25 2010-03-25 ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体

Country Status (3)

Country Link
JP (1) JPWO2011118003A1 (ja)
CN (1) CN102317905A (ja)
WO (1) WO2011118003A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5391309B2 (ja) * 2012-05-23 2014-01-15 みずほ情報総研株式会社 情報管理システム、情報管理方法及び情報管理プログラム
CN102932441A (zh) * 2012-10-26 2013-02-13 北京小米科技有限责任公司 一种下载应用的方法、终端、服务器及系统
JP2014153783A (ja) * 2013-02-05 2014-08-25 Fuji Electric Co Ltd オブジェクト指向プログラム生成装置、オブジェクト指向プログラム生成方法およびオブジェクト指向プログラム生成用プログラム
JP2015026139A (ja) * 2013-07-24 2015-02-05 富士電機株式会社 プログラム生成装置、プログラム生成方法、およびプログラム生成用プログラム
CN104750497A (zh) * 2015-04-14 2015-07-01 浪潮通信信息系统有限公司 一种应用聚合的方法和装置
CN106951252A (zh) * 2017-03-21 2017-07-14 四川元易云科技有限公司 一种基于SaaS的用户界面生成方法
CN107273144A (zh) * 2017-08-15 2017-10-20 广州市爱菩新医药科技有限公司 快速构建网络应用程序接口的装置
CN112437123B (zh) 2020-11-09 2024-04-09 北京京东尚科信息技术有限公司 资源管理方法、装置、计算机系统、可读存储介质
CN113076131A (zh) * 2021-04-07 2021-07-06 山东爱拓软件开发有限公司 基于多进程架构思想的嵌入式软件系统构建方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003280898A (ja) * 2002-03-25 2003-10-02 Nri & Ncc Co Ltd ビジネスロジックプログラムを実装・実行するための装置、方法、及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3944231B2 (ja) * 2000-12-28 2007-07-11 フューチャーアーキテクト株式会社 フレームワークシステム
US6901595B2 (en) * 2001-09-29 2005-05-31 Siebel Systems, Inc. Method, apparatus, and system for implementing a framework to support a web-based application
US6968535B2 (en) * 2002-03-21 2005-11-22 Sun Microsystems, Inc. Service mapping method of enterprise application modeling and development for multi-tier service environments
JP2004185553A (ja) * 2002-12-06 2004-07-02 Fujitsu Ltd Webユーザインターフェースのコンポーネント化方法及び装置
CN101140644A (zh) * 2007-10-19 2008-03-12 广东纺织职业技术学院 一种intednet专业技术资格申报系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003280898A (ja) * 2002-03-25 2003-10-02 Nri & Ncc Co Ltd ビジネスロジックプログラムを実装・実行するための装置、方法、及びプログラム

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
CSND199800970021; 中山義人、田中秀樹、伊藤滋伸: '連載 サーバ・サイド・スクリプティング:第1回 サーバ・サイドJavaScriptを知る' Java WORLD 第2巻,第10号(通巻11号), 19981001, 第183頁, 株式会社IDGコミュニケーションズ *
CSND200500516001; 中野修一: 'Review1:intra-martソースコードジェネレータ' JAVA Developer 第16号, 20031101, pp.28〜29, ソフトバンクパブリッシング株式会社 *
CSND200700035003; 鈴木雄介: '特集1 Java+スクリプト:Part2 Java EE開発でスクリプト言語を"使う"' Java WORLD 第10巻,第11号(通巻114号), 20061101, pp.44〜45, 株式会社アイ・ディ・ジー・ジャパン *
CSND200700089017; 黒住幸光: 'Jakarta活用指南 オープンソースで作るWebアプリケーション:第40回 BSFによるスクリプトの' Java WORLD 第10巻,第9号(通巻112号), 20060901, p.136, 株式会社アイ・ディ・ジー・ジャパン *
CSND200900089004; 山本重樹: '解説:クラウドの先兵「PaaS」(上)' 日経コンピュータ 第721号, 20090115, pp.111〜117, 日経BP社 *
JPN6011003431; 山本重樹: '解説:クラウドの先兵「PaaS」(上)' 日経コンピュータ 第721号, 20090115, pp.111〜117, 日経BP社 *
JPN6011003433; 黒住幸光: 'Jakarta活用指南 オープンソースで作るWebアプリケーション:第40回 BSFによるスクリプトの' Java WORLD 第10巻,第9号(通巻112号), 20060901, p.136, 株式会社アイ・ディ・ジー・ジャパン *
JPN6011003434; 鈴木雄介: '特集1 Java+スクリプト:Part2 Java EE開発でスクリプト言語を"使う"' Java WORLD 第10巻,第11号(通巻114号), 20061101, pp.44〜45, 株式会社アイ・ディ・ジー・ジャパン *
JPN6011003436; 中野修一: 'Review1:intra-martソースコードジェネレータ' JAVA Developer 第16号, 20031101, pp.28〜29, ソフトバンクパブリッシング株式会社 *
JPN6011050420; 中山義人、田中秀樹、伊藤滋伸: '連載 サーバ・サイド・スクリプティング:第1回 サーバ・サイドJavaScriptを知る' Java WORLD 第2巻,第10号(通巻11号), 19981001, 第183頁, 株式会社IDGコミュニケーションズ *

Also Published As

Publication number Publication date
CN102317905A (zh) 2012-01-11
WO2011118003A1 (ja) 2011-09-29

Similar Documents

Publication Publication Date Title
US10546035B2 (en) System and method for data-driven web page navigation control
US11163542B2 (en) Dynamically generating and rendering user interfaces based on data models
WO2011118003A1 (ja) ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体
US8296311B2 (en) Solution search for software support
KR101665152B1 (ko) 컴퓨팅 장치, 비즈니스 데이터의 획득 방법 및 컴퓨터 판독 가능 저장 매체
US20150293764A1 (en) Method and system to compose and execute business rules
US20220215125A1 (en) Viewing, selecting, and triggering a data pipeline to derive a collaborative dataset
US10845962B2 (en) Specifying user interface elements
US20100153150A1 (en) Software for business adaptation catalog modeling
US20100001834A1 (en) System and method for a message registry and message handling in a service -oriented business framework
US20060101051A1 (en) Electronic data capture and verification
US20020049961A1 (en) Rule-based personalization framework
US20100153149A1 (en) Software for model-based configuration constraint generation
CN106227553B (zh) 用于描述并执行图形用户界面中的管理任务的数据驱动模式
ITMI20130390U1 (it) Metodi e apparato per generatori di endpoint dinamici, individuazione e mediazione (brokerage) di oggetti remoti dinamici
US20100313182A1 (en) Extensible user interface generation
US11468229B2 (en) Describing changes in a workflow based on changes in structured documents containing workflow metadata
US20120167016A1 (en) Dynamic Determination Of Navigation Targets In A Flexible User Interface Environment
US20080288918A1 (en) Web service tool based on business object layer
KR20060047998A (ko) 문서에 문맥 정보를 삽입하는 방법 및 시스템
JP2004252951A (ja) 統合業務ソフトウェアの導入運用支援システム
Magnani et al. BPDMN: A conservative extension of BPMN with enhanced data representation capabilities
JP2004310279A (ja) 業務処理システムおよびその構築支援装置、業務処理システム用プログラム、業務処理システムの構築支援用プログラム
JP2009205353A (ja) ユーザインタフェース提供方法、その装置及びプログラム
JP2014059666A (ja) 業務入力画面カスタマイズシステム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110927