(57)【要約】【課題】ウェブユーザインターフェース開発者がコンポーネントベースで最終ユーザインターフェースを開発することができるように支援するユーザインターフェースサーバーフレームワーク及びその利用方法を提供すること。【解決手段】ウェブページを作成するために使用されるコンポーネントベースのジャバウェブアプリケーション開発フレームワークは、ユーザの要求に応じて、ビジネスオブジェクト（ＢＯ）のメソッドを実行し、メソッドの実行結果を返すランタイムエンジンと、ビジネスオブジェクトのメソッドの実行前にユーザ入力値の前処理を行い、ビジネスオブジェクトのメソッドの実行後に実行結果を後処理し、ユーザインターフェースオブジェクト（ＵＩＯ）を動的に配置するスクリプトコンポーネントと、フレームワークを初期化し、ユーザの要求がフレームワークで処理可能な要求であるか否かを確認するコアコンポーネントとを含む。【選択図】図２
2010123127.tif 000002
【特許請求の範囲】
【請求項１】
ウェブページを作成するために使用されるコンポーネントベースのジャバウェブアプリケーション開発フレームワークにおいて、
ユーザの要求に応じて、ビジネスオブジェクトのメソッドを実行し、前記メソッドの実行結果を返すランタイムエンジンと、
前記ビジネスオブジェクトのメソッドの実行前にユーザ入力値の前処理を行い、前記ビジネスオブジェクトのメソッドの実行後に前記メソッドの実行結果の後処理を行い、ユーザインターフェースオブジェクトを動的に配置するスクリプトコンポーネントと、
前記フレームワークを初期化し、前記ユーザの要求が前記フレームワークで処理可能な要求であるか否かを確認するコアコンポーネントと、
を含むことを特徴とするウェブアプリケーション開発フレームワーク。
【請求項２】
前記ランタイムエンジンは、
ＸＭＬベースの設定ファイルに宣言された前記ビジネスオブジェクトのメソッドを実行するサービス実行部と、
前記ビジネスオブジェクトのメソッドが正常に実行された場合に、前記ビジネスオブジェクトのメソッドの実行結果を前記ＸＭＬベースの設定ファイルに宣言された結果形式別に出力する結果生成部と、
前記フレームワークで使用する多様なリソースにアクセスして使用するためのインターフェースを提供する単一リソースアクセス機構と、
前記ビジネスオブジェクトのメソッドの実行が異常な場合、または例外状況が発生する場合に、デバッグ情報を管理する例外ハンドラーと、
を含むことを特徴とする請求項１に記載のウェブアプリケーション開発フレームワーク。
【請求項３】
前記スクリプトコンポーネントは、ＸＭＬベースの設定ファイルに基づいて、前記前処理及び後処理を行い、前記ユーザインターフェースオブジェクトを制御するスクリプトエンジンと、
前記ユーザインターフェースオブジェクトをＨＴＭＬテンプレートで管理し、前記ユーザインターフェースオブジェクトを実行時にＨＴＭＬにレンダリングして提供するオープンソーステンプレートエンジンと、
を含むことを特徴とする請求項１に記載のウェブアプリケーション開発フレームワーク。
【請求項４】
前記結果生成部によって出力される結果の形式は、前記実行結果をテンプレートの形式で生成して出力するテンプレートと、前記実行結果を指定されたＵＲＬにリダイレクトするリダイレクトと、前記実行結果を指定されたＵＲＬにフォワードするフォワードと、前記実行結果をページなしに直接出力するダイレクトとの何れか一つであることを特徴とする請求項２に記載のウェブアプリケーション開発フレームワーク。
【請求項５】
前記スクリプトコンポーネントは、ジャバスクリプトに基づいて前記前処理、前記後処理、前記ユーザインターフェースオブジェクトの動的配置を行うことを特徴とする請求項１に記載のウェブアプリケーション開発フレームワーク。
【請求項６】
前記フレームワークは、実行時に前記ビジネスオブジェクトと前記ユーザインターフェースオブジェクトとを組み合わせる動的バインディングサービスを提供することを特徴とする請求項１に記載のウェブアプリケーション開発フレームワーク。
【請求項７】
前記スクリプトコンポーネントは、前記フレームワークで定義したテンプレートディレクティブを利用して前記ユーザインターフェースオブジェクトを動的に再配置することを特徴とする請求項１に記載のウェブアプリケーション開発フレームワーク。
【請求項８】
コンポーネントベースのジャバウェブアプリケーション開発フレームワークを利用してウェブページを作成する方法であって、
ウェブブラウザーを通じてユーザの要求を受信し、
受信した前記ユーザ要求が前記フレームワークで処理可能な要求である場合に、前記ユーザの要求の実行を命令し、
前記ユーザの要求の実行前に定義された前処理がある場合に、前記前処理を実行し、
前記ユーザ要求に応じて、ビジネスオブジェクトのメソッドを実行し、前記実行の結果を返し、
前記メソッドが正常に実行された場合に、前記実行の結果をＸＭＬベースの設定ファイルに宣言された結果形式別に出力し、
前記メソッドが正常に実行されたときに定義された後処理がある場合、前記後処理を実施する、
工程を含むことを特徴とするウェブページ作成方法。
【請求項９】
前記結果形式は、前記実行結果をテンプレートとして生成して出力するテンプレートと、前記実行の結果を指定されたＵＲＬにリダイレックトするリダイレックトと、前記実行結果を指定されたＵＲＬにフォワードするフォワードと、前記実行結果をページなしに直接出力するダイレクトとの何れか一つであることを特徴とする請求項８に記載のウェブページ作成方法。
【請求項１０】
前記ビジネスオブジェクトのメソッドの実行が異常な場合、または例外状況が発生する場合に、デバッグ情報を管理する工程をさらに含むことを特徴とする請求項８に記載のウェブページ作成方法。
【請求項１１】
前記実行の結果をＨＴＭＬ形式で前記ウェブブラウザーに提供する工程をさらに含むことを特徴とする請求項８に記載のウェブページ作成方法。
【請求項１２】
前記前処理及び前記後処理は、ジャバスクリプトに基づいて行われることを特徴とする請求項８に記載のウェブページ作成方法。
【請求項１３】
ＸＭＬベースの設定ファイルに基づいて、ユーザインターフェースオブジェクトを動的に配置する工程をさらに含むことを特徴とする請求項８に記載のウェブページ作成方法。
【請求項１４】
前記ビジネスオブジェクト及び前記ユーザインターフェースオブジェクトは、実行時に動的に組み合わされ、ＨＴＭＬウェブページとして提供されることを特徴とする請求項１３に記載のウェブページ作成方法。
【請求項１５】
前記ユーザインターフェースオブジェクトは、前記フレームワークで定義したテンプレートディレクティブを利用して動的に再配置することができることを特徴とする請求項１３に記載のウェブページ作成方法。
【請求項１６】
請求項８乃至１５の何れか一に記載の方法を実行するためのプログラムが記録されているコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザインターフェース開発者がコンポーネントベースで最終ユーザインターフェースを開発することができるように支援するユーザインターフェース・サーバーフレームワーク及びその利用方法に関する。
【背景技術】
【０００２】
最近、コンポーネントベース開発（ＣＢＤ：Ｃｏｍｐｏｎｅｎｔ  Ｂａｓｅｄ  Ｄｅｖｅｌｏｐｍｅｎｔ）、サービス指向アーキテクチャ（ＳＯＡ：Ｓｅｒｖｉｃｅ  Ｏｒｉｅｎｔｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などの概念が産業に次第に適用されることに伴い、いわゆるビジネスオブジェクトの再利用性及び連携機能が大きく強化されており、これと関連したソリューションや技術も発展した。一方、Ｗｅｂ２．０、Ａｊａｘなどの概念が産業に導入されることによって、ウェブサービスのユーザインターフェースが急速に複雑になっているが、ユーザインターフェースオブジェクトのコンポネント化や再利用は、まだ足踏み段階にとどまっている。これにより、ユーザインターフェースオブジェクトの開発費用が次第に増加している。
【０００３】
また、大部分のウェブベースのユーザサービスにおいては、ユーザインターフェース領域とビジネス領域とが密接に連携している。すなわち、ユーザインターフェース領域とビジネス領域とが別々のレイヤで明確に分離されずに、一つの結合体として存在する。また、ユーザインターフェース領域とビジネス領域とが別々のレイヤで分離されているとしても、レイヤ間の依存性が高いため、同じモジュールであると言えるような構造が大部分である。
【０００４】
このようにユーザインターフェース領域とビジネス領域とが密接に連携する構造を利用する場合、一時的にユーザインターフェースオブジェクトの開発費用を低減する効果を得ることができるが、維持費用を含めると、全体的な費用は増加する。また、類似の構造のユーザインターフェースオブジェクトを開発する場合にも、既存のユーザインターフェースオブジェクトの再利用が不可能なため、多くの費用と時間がかかるという問題があった。
【０００５】
図１は、従来の一般的なウェブアプリケーション開発プロセスを示す図である。
【０００６】
図１に示すように、ユーザインターフェース開発プロセスは、ユーザインターフェースオブジェクトのデザイン作業、ＨＴＭＬ開発作業、ジャバスクリプト開発作業、ビジネスオブジェクトの開発作業、ジャバサーバーページ変更作業及びユーザインターフェースオブジェクトの統合作業を含む。
【０００７】
一般的にＨＴＭＬ開発が完了したとしても、これをサービスですぐ使用することはできない。ＨＴＭＬ開発者は、ＨＴＭＬを開発する過程において、実際のデータではなく、定数値を使用してＨＴＭＬを開発するので、ＨＴＭＬ開発者が開発したＨＴＭＬ自体で、ウェブサービスにおいて使用する動的なデータを表現することができないからである。
【０００８】
したがって、ＨＴＭＬをジャバサーバーページに変換するジャバサーバーページ変更作業が必ず行われなければならない。上記作業は、ＨＴＭＬ結果物において定数値を除去し、ビジネスオブジェクトが提供する動的データを表示することができるように、ＨＴＭＬを変更する作業である。
【０００９】
また、ジャバサーバーページ変更作業を行った後には、実際にユーザインターフェースが動作することを確認し検証するために、ユーザインターフェースオブジェクトの統合作業を実施することができる。
【００１０】
上記作業において、一部は並行して実施することもでき、一部は順次実施することもできる。例えば、図１に示すように、ＨＴＭＬ開発作業、ジャバスクリプト開発作業及びビジネスオブジェクトの開発作業は、並行して実施することが可能である。その後、ジャバサーバーページ変更作業及びユーザインターフェースオブジェクトの統合作業を順次実施することができる。
【００１１】
しかしながら、従来、ジャバサーバーページ変更作業及びユーザインターフェースオブジェクトの統合作業が、ウェブ開発者が使用するプログラミング言語を用いて行われるため、必ずウェブ開発者がその処理を行わなければならず、そこにボトルネック現象が生じる問題があった。
【００１２】
また、ボトルネック現象を解消するために、ウェブ開発者を追加に投入するとしても、ウェブ開発者は、ＨＴＭＬ、ユーザインターフェースオブジェクトなどに対する理解が足りないため、ボトルネック現象の解消にそれほど役に立たない。
【００１３】
また、実際に適用されるユーザインターフェースを確認するユーザインターフェースオブジェクトの統合作業は最後に行われるので、ユーザインターフェース開発プロジェクトの見通しを保証するのは難しい。すなわち、実際に動作するウェブユーザインターフェースオブジェクトを確認して検証する作業が最後段階で行われるので、開発者とユーザとのフィードバックやスクリーン間の接続確認などが困難であるという問題があった。
【００１４】
一方、先行技術として、特許文献１には、「ジャバスクリプトベースのウェブ−クライアントアプリケーションフレームワーク並びにそのフレームワークを利用したウェブコンテンツ処理方法及びこれを実装するコンピュータ可読記録媒体」という名称の発明が開示されている。上記先行技術は、ＸＭＬ文書を用いるオブジェクトのモデリング及び再利用性の向上と、オブジェクト指向のクライアントアプリケーション開発とを可能にするジャバスクリプトを用いて構成したフレームワークに関する。
【００１５】
しかしながら、上記先行技術は、ユーザインターフェースオブジェクトの統合作業がデータを管理するウェブ開発者によって行われるため、プロセスの進行が円滑に行われないという問題点がある。また、ユーザインターフェースオブジェクトの確認作業が最終段階で行われるため、ユーザインターフェースオブジェクトのエラーの発見が遅れるという問題点がある。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】大韓民国特許公開第２００８‐００７０３７７号
【発明の概要】
【発明が解決しようとする課題】
【００１７】
本発明の目的は、ウェブページを作成するために使用されるコンポーネントベースのジャバウェブアプリケーション開発フレームワークを提供することにある。
【００１８】
また、本発明のもう１つの目的は、コンポーネントベースのジャバウェブアプリケーション開発フレームワークを利用してウェブページを作成する方法を提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するために、本発明の第１の実施形態によると、ユーザの要求に応じて、ビジネスオブジェクト（ＢＯ：Ｂｕｓｉｎｅｓｓ  Ｏｂｊｅｃｔ）のメソッドを実行し、前記実行結果を返すランタイムエンジンと、前記ビジネスオブジェクトのメソッドの実行前にユーザ入力値の前処理を行い、前記ビジネスオブジェクトのメソッドの実行後に前記実行結果に後処理を行い、ユーザインターフェースオブジェクト（ＵＩＯ）を動的に配置するスクリプトコンポーネントと、前記フレームワークの初期化作業を行い、前記ユーザの要求が前記フレームワークで処理可能であるか否かを確認するコアコンポーネントと、を含むウェブページを作成するために用いるコンポーネントベースのジャバウェブアプリケーション開発フレームワークが提供される。
【００２０】
また、本発明の第２実施形態によると、ウェブブラウザーを通じてユーザの要求を受信する段階と、前記受信したユーザの要求が前記フレームワークで処理可能な場合に、前記ユーザの要求の実行を命令する段階と、前記ユーザの要求の実行前に定義された前処理作業がある場合に、前記前処理作業を行う段階と、前記ユーザの要求に応じて、ビジネスオブジェクト（ＢＯ）のメソッドを実行して実行結果を返す段階と、前記メソッドが正常に実行された場合に、前記実行結果をＸＭＬベースの設定ファイルに宣言された結果形式に従って出力する段階と、前記メソッドが正常に実行されたときに、定義された後処理作業がある場合に、前記後処理作業を実行する段階と、を含むコンポーネントベースのジャバウェブアプリケーション開発フレームワークを利用してウェブページを作成する方法が提供される。
【発明の効果】
【００２１】
本発明によると、ユーザインターフェース開発者にビジネスオブジェクトと独立してユーザインターフェースオブジェクトを開発することができる環境を提供し、ウェブ開発者でなく、ユーザインターフェース開発者が、別個に開発されたビジネスオブジェクトを呼び出して実行し、その結果を確認することができる。
【００２２】
本発明によると、ウェブ開発者及びユーザインターフェース開発者が互いの作業結果の影響を受けずに、独立して業務を実施することができ、持続的な統合作業を開発期間中に行うことができる。
【図面の簡単な説明】
【００２３】
【図１】従来の一般的なウェブサービスのユーザインターフェース開発プロセスを示す図である。
【図２】本発明の一実施形態に係るウェブサービスのユーザインターフェース開発プロセスを示す図である。
【図３】本発明の一実施形態に係るＵＳＦ１０００の詳細な構成を示す図である。
【図４】本発明の一実施形態に係るＵＳＦ１０００のランタイムエンジン１００の詳細な構成を示す図である。
【図５】本発明の一実施形態に係るＵＳＦ１０００のスクリプトコンポーネント２００の詳細な構成を示す図である。
【図６】本発明の一実施形態に係るＵＳＦ１０００のコアコンポーネント３００の詳細な構成を示す図である。
【図７】本発明の一実施形態に係るＵＳＦ１０００において行われるユーザインターフェースオブジェクトとビジネスオブジェクトの統合処理過程を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、添付の図面を参照して本発明の属する技術分野における通常の知識を有する者が容易に実施することができるように本発明の実施形態を詳しく説明する。しかし、本発明は、様々な形態に具現化することができ、下記に説明する実施形態に限定されるものではない。なお、図面において、本発明を明確に説明するために、説明と関係ない部分を省略し、明細書全体にわたって同様の部分に同一の参照符号を付した。
【００２５】
明細書全体において、或る部分が他の部分と接続されているとするときは、これは、直接的に接続されている場合だけではなく、その間に他の構成要素を介して電気的に接続されている場合をも含む。また、或る部分が任意の構成要素を含む場合は、これは、特に他の記載がない限り、他の構成要素を除外するものではなく、他の構成要素をさらに含むことができることを意味する。
【００２６】
本明細書において、ビジネスオブジェクトとは、サービスの重要なロジッグを実行し、その結果データを返すコンポネントである。ビジネスオブジェクトは、データの表示に関与せずに、データの内容にのみ関与する。また、ユーザインターフェースオブジェクトとは、ウェブページで単位サービスを構成するのに使用されるユーザインターフェースコンポネントを意味する。ユーザインターフェースオブジェクトは、データの内容に関与せずに、データの表示にのみ関与する。
【００２７】
以下、添付の図面を参照して本発明を詳しく説明する。
【００２８】
図２は、本発明の一実施形態に係るウェブアプリケーション開発プロセスを示す図である。
【００２９】
図２に示すように、本発明の一実施形態に係るウェブアプリケーション開発プロセスは、ユーザインターフェースオブジェクトのデザイン作業、ユーザインターフェースオブジェクトの開発作業、ユーザインターフェースオブジェクトの統合作業、原型のビネスオブジェクトの開発作業及び実際のビジネスオブジェクトの開発作業を含むことができる。
【００３０】
本発明の一実施形態に係るウェブアプリケーション開発プロセスにおいても、実際に動作するユーザインターフェースオブジェクトを確認し検証する作業であるユーザインターフェースオブジェクトの統合作業は絶対に必要である。しかし、図２に示すように、本発明の一実施形態に係るウェブアプリケーション開発プロセスにおいては、ユーザインターフェースオブジェクトの統合作業を、ウェブ開発者でなく、ＨＴＭＬ開発者または統合開発者が行うことができる。すなわち、プロセスのボトルネック現象を解決するために、プロセスの最終段階でなく、ユーザインターフェースオブジェクト及びＨＴＭＬを開発する段階からユーザインターフェースオブジェクトとビジネスオブジェクトとを統合する作業を行うことができる。
【００３１】
また、統合作業は１回だけ行うのではなく、開発開始から終了までに繰り返し行ってもよい。すなわち、統合作業のリスクを減少するために、開発初期段階から最終段階まで一貫した統合方法を導入することによって、開発期間の短縮及びリスクの軽減効果を得ることができる。
【００３２】
また、開発初期段階からユーザインターフェースオブジェクトとビジネスオブジェクトとを統合する作業を行うためには、ビジネスオブジェクトからデータを取り出した後、これをテストする作業を行う。このために、本発明の一実施形態に係るウェブアプリケーション開発プロセスにおいては、実際のビジネスオブジェクトを開発する前に、原型ビジネスオブジェクトを作成し、これをユーザインターフェースオブジェクトの統合作業において使用することができる。
【００３３】
したがって、本発明によると、ウェブ開発者及びユーザインターフェース開発者が互いの作業結果の影響を受けずに、独立して業務を進行することができ、一貫した統合作業を開発期間中に行うことができる。
【００３４】
図３は、本発明の一実施形態に係るユーザインターフェース・サーバーフレームワーク（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｅｒｖｅｒ  Ｆｒａｍｅｗｏｒｋ、以下、ＵＳＦという）の詳細な構成を示す図である。
【００３５】
本発明の一実施形態に係るＵＳＦ１０００は、ユーザにＨＴＭＬを提供するために使用するコンポーネントベースのジャバウェブアプリケーション開発フレームワークであって、ユーザインターフェース開発者がＨＴＭＬ生成のためのユーザインターフェースオブジェクトとビジネスオブジェクトとを独立して開発し、統合することができるフレームワークである。すなわち、ＵＳＦ１０００は、ランタイム時にビジネスオブジェクトとユーザインターフェースオブジェクトとを組み合わせる動的バインディングサービスを提供することができる。
【００３６】
このために、ＵＳＦ１０００は、多様な機能を提供することができる。第一に、ＵＳＦ１０００は、ビジネスオブジェクトとユーザインターフェースオブジェクトとを独立して開発可能な機能を提供する。したがって、ユーザインターフェース開発者は、ウェブ開発者が使用するプログラミング言語を別途学習することなく、ＵＳＦ１０００が提供する機能だけでユーザインターフェースオブジェクトを開発することができる。ＵＳＦ１０００は、ビジネスオブジェクトとユーザインターフェースオブジェクトとを独立して開発可能な機能を提供するために、ＸＭＬベースの設定ファイルとＨＴＭＬ生成テンプレートエンジンとを提供する。
【００３７】
また、ユーザインターフェースオブジェクトの開発後に、開発したユーザインターフェースオブジェクトを実際のサービスデータと結合して表示する機能が必要であり、このために、ＵＳＦ１０００は、ローカルまたはリモートでビジネスオブジェクトを呼び出して実行し、その結果を受信する機能を提供する。例えば、ＵＳＦ１０００は、オープンソースフレームワーク連携機能を用いて、ローカルのビジネスオブジェクトを呼び出して実行してもよい。また、ＵＳＦ１０００は、ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）プロトコルと、アプリケーション間のメッセージを伝送及び管理が可能なメッセージングプラットフォームプロトコルとを支援することで、リモートでビジネスオブジェクトを呼び出して実行することができる。
【００３８】
また、ＵＳＦ１０００においては、ＸＭＬベースでビジネスオブジェクトを呼び出して実行することができる。例えば、ＵＳＦ１０００においては、実行するビジネスオブジェクトの名称、テンプレート形式の名称、受け渡すパラメータ及び返すデータなどをＸＭＬで記述する方式を用いてもよい。
【００３９】
第二に、ＵＳＦ１０００においては、オープンソーステンプレートエンジンベースのテンプレートページを解釈して実行し、ＨＴＭＬに変換する機能を提供することができる。さらに、オープンソーステンプレートエンジンのみを使用する場合には、動的にユーザインターフェースを構成することができないという問題があるので、ＵＳＦ１０００においては、テンプレートディレクティブ（Ｔｅｍｐｌａｔｅ  Ｄｉｒｅｃｔｉｖｅ）を定義し、ジャバサーバーページ内で動的にユーザインターフェースオブジェクトを配置可能な機能を提供することができる。例えば、ユーザインターフェース開発者は、ＵＳＦ１０００に内蔵されているジャバスクリプトエンジンを活用し、自分が所望する方式でユーザインターフェースオブジェクトを画面に配置してもよい。
【００４０】
また、ＵＳＦ１０００は、一般的なウェブページの実行結果であるＨＴＭＬのほか、状況に応じて他のページへの移動が可能になるように、ウェブアプリケーションに対する多様な応答結果を提供することができる。例えば、ＵＳＦ１０００は、実行結果をテンプレートとして生成した後に出力するテンプレート、実行結果を指定されたＵＲＬにリダイレクトするリダイレクト、実行結果を指定されたＵＲＬにフォワードするフォワード、及び実行結果をページなしに直接出力するダイレクトなどの多様な応答結果の種類を提供し、ウェブアプリケーションに対応する結果の種類に応じて適切に実行結果を出力することができる。
【００４１】
第三に、ＵＳＦ１０００は、アプリケーション開発者がユーザ要求に応じて追加的な作業を行うことができるようにする環境を提供することができる。例えば、ＵＳＦ１０００においては、アプリケーション開発者が、パーミッション(許可)やクッキー(ｃｏｏｋｉｅ)のようなアプリケーション段階で操作や処理ができる追加的な作業を行うことができるようにする環境を提供してもよい。
【００４２】
図３に示すように、本発明の一実施形態に係るＵＳＦ１０００は、ランタイムエンジン１００、スクリプトコンポーネント２００、コアコンポーネント３００、ウェブアプリケーションベースモジュール４００、及びウェブアプリケーションサーバー５００を含む。
【００４３】
ランタイムエンジン１００は、ユーザの要求に応じて、ビジネスオブジェクトのメソッドを実行し、ビジネスオブジェクトの実行結果をＸＭＬベースの設定ファイルに宣言された結果形式によって多様に出力することができる。また、ランタイムエンジン１００は、ウェブ開発者に、ＵＳＦ１０００で使用される多様なリソースにアクセスすることを可能にし、リソースに対するユーザインターフェースを提供することができる。さらに、ランタイムエンジン１００は、ビジネスオブジェクトのメソッドの実行が異常な場合、または例外状況が発生した場合、これに対するデバッグ情報を管理してもよい。
【００４４】
スクリプトコンポーネント２００は、ジャバスクリプトに基づいて、ビジネスオブジェクトのメソッドの実行前に、ＸＭＬベースの設定ファイルに定義されているユーザ入力値に前処理を行い、ビジネスオブジェクトのメソッドの実行後に実行結果を操作する後処理を行うことができる。また、スクリプトコンポーネント２００は、ユーザインターフェースオブジェクトを制御し、動的に配置してもよい。また、ユーザインターフェースオブジェクトをＨＴＭＬテンプレートで管理し、実行時にＨＴＭＬにレンダリングする。
【００４５】
コアコンポーネント３００は、ユーザの要求がＵＳＦ１０００で実行可能であるか否かを確認し、ＵＳＦ１０００で実行が可能な場合、これを行うようにすることができる。また、コアコンポーネント３００は、フレームワークを初期化する役目を果たしてもよい。
【００４６】
ウェブアプリケーションベースモジュール４００は、ジャバベースウェブアプリケーションフレームワークであって、Ｘｗｏｒｋフレームワーク（Ｘｗｏｒｋ  ｆｒａｍｅｗｏｒｋ）、再利用可能なユーザインターフェーステンプレート（Ｒｅｕｓａｂｌｅ  ＵＩ  Ｔｅｍｐｌａｔｅｓ）及びＪａｖａＢｅａｎｓ（登録商標）を統合したウェブアプリケーション開発プラットフォームである。ウェブアプリケーションベースモジュール４００は、非核心的なビジネスオブジェクトを宣言的に処理し、開発者がウェブアプリケーション開発に必要な核心的なビジネスオブジェクトのみを集中的に導入することができるように設計してもよい。
【００４７】
ウェブアプリケーションサーバー５００は、インターネット上でＨＴＴＰを通じてユーザのコンピュータや装置でアプリケーションを実行するためのミドルウェア（ソフトウェアエンジン）である。ウェブアプリケーションサーバー５００は、動的なサーバーコンテンツを実行するものであり、一般的なウェブサーバーと区別され、主としてデータベースサーバーと共に実行される。例えば、ウェブアプリケーションサーバー５００には、トムキャット（Ｔｏｍｃａｔ）、レジン（Ｒｅｓｉｎ）、ジェイラン（ＪＲｕｎ）などが使用できる。
【００４８】
図４は、本発明の一実施形態に係るＵＳＦ１０００のランタイムエンジン１００の詳細な構成を示す図である。
【００４９】
図４に示すように、本発明の一実施形態に係るＵＳＦ１０００のランタイムエンジン１００は、サービス実行部１１０、結果生成部１２０、単一リソースアクセス機構（ＵＲＡ：Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ａｃｃｅｓｓｏｒ）１３０及び例外ハンドラー１４０を含む。
【００５０】
サービス実行部１１０は、ＸＭＬベースの設定ファイルに宣言されているビジネスオブジェクトのメソッドを実行する。ＸＭＬベースの設定ファイルに宣言されているビジネスオブジェクトは、当該サービスの主なビジネスを行い、その結果データを返す役目をするコンポネントである。サービス実行部１１０は、リクエストブローカー（Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ）を通じてメソッドを実行することによって、ＸＭＬベースの設定ファイルに宣言されているビジネスオブジェクトのメソッドを実行することができる。リクエストブローカーは、メッセージングプラットフォームを通じて、多層構造のサービス環境でウェブ開発者がＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）プロトコルを使用することができるようにする。
【００５１】
結果生成部１２０は、サービス実行部１１０のビジネスオブジェクトのメソッド実行結果をＸＭＬベースの設定ファイルに宣言された結果形式によって多様に出力することができる。例えば、結果生成部１２０は、実行結果をテンプレートとして生成した後に出力するテンプレート、実行結果を指定されたＵＲＬにリダイレクトするリダイレクト、実行結果を指定されたＵＲＬにフォワードするフォワード、及び実行結果をページなしに直接出力するダイレクトなどの多様な応答結果の種類を提供し、ビジネスオブジェクトのメソッド実行結果をＸＭＬベースの設定ファイルに宣言された結果形式に応じて適切に出力することができる。
【００５２】
単一リソースアクセス機構１３０は、ＵＳＦ１０００で使用する多様なリソースにアクセスし、利用するためのインターフェースを提供することができる。例えば、単一リソースアクセス機構１３０は、オープンソースフレームワークとの連携が可能であり、全社標準であるＲＰＣプロトコル環境、メッセージングプラットフォーム環境、及びローカル環境を支援するリクエストブローカーを通じて、サービス実行部１１０または結果生成部１２０との連携が可能である。単一リソースアクセス機構１３０は、ＲＰＣプロトコル環境においては、Ｊａｖａ／Ｃ＋＋用ＲＰＣプロトコルコネクターを通じて外部に公開されたビジネスオブジェクトにアクセスしてもよく、メッセージングプラットフォーム環境においては、Ｊａｖａ／Ｃ＋＋リクエストブローカーを通じて外部に公開されたビジネスオブジェクトにアクセスしてもよい。
【００５３】
例外ハンドラー１４０は、ビジネスオブジェクトのメソッドの実行が異常な場合、または例外状況が発生した場合に、これに対するデバッグ情報を管理することができる。
【００５４】
図５は、本発明の一実施形態に係るＵＳＦ１０００のスクリプトコンポーネント２００の詳細な構成を示す図である。
【００５５】
図５に示すように、本発明の一実施形態に係るスクリプトコンポーネント２００は、スクリプトエンジン２１０及びオープンソーステンプレートエンジン２２０を含む。
【００５６】
スクリプトエンジン２１０は、ジャバスクリプトに基づいて、ビジネスオブジェクトのメソッドの実行前に、ＸＭＬベースの設定ファイルに定義されたユーザ入力値の前処理を行うことができ、ビジネスオブジェクトのメソッドの実行後に、実行結果を操作する後処理を行うことができる。また、スクリプトエンジン２１０は、ユーザインターフェースオブジェクトを動的に配置するためにユーザインターフェースオブジェクトを制御してもよい。
【００５７】
オープンソーステンプレートエンジン２２０はユーザインターフェースオブジェクトをＨＴＭＬテンプレートで管理し、実行時にユーザインターフェースオブジェクトをビジネスオブジェクトに接続して、最終結果を動的に構成することができる。また、ＵＳＦ１０００がテンプレートディレクティブを定義した場合、定義されたディレクティブをオープンソーステンプレートエンジン２２０が提供するインターフェースによって実行時に動的に反映してもよい。
【００５８】
図６は、本発明の一実施形態に係るＵＳＦ１０００のコアコンポーネント３００の詳細な構成を示す図である。
【００５９】
図６に示すように、コアコンポーネント３００は、ユーザ要求受信部３１０、ユーザ要求実行部３２０、ランタイム構成生成部３３０、テンプレートローディング部３４０及び構成情報初期化部３５０を含む。
【００６０】
ユーザ要求受信部３１０は、ウェブブラウザーを通じてユーザの要求を受信することができる。受信したユーザの要求は、ウェブアプリケーションサーバーでＨｔｔｐＳｅｒｖｌｅｔＲｅｑｕｅｓｔオブジェクトに変換され、ユーザ要求受信部３１０に受け渡すことができる。ユーザ要求受信部３１０は、受信したユーザの要求がＵＳＦ１０００で処理可能な要求であるか否かを確認し、受信したユーザの要求がＵＳＦ１０００で処理可能な場合、ユーザ要求実行部３２０を呼び出してユーザの要求を処理するようにしてもよい。
【００６１】
ユーザ要求受信部３１０で受信したユーザの要求がＵＳＦ１０００で処理可能な場合、ユーザ要求実行部３２０はユーザの要求を処理する。ユーザ要求実行部３２０は、ランタイム構成生成部３３０を通じてＸＭＬベースの動的設定ファイルに定義された実行モデルを読み出して、ユーザの要求を処理することができる。
【００６２】
ランタイム構成生成部３３０は、ＸＭＬベースの動的設定ファイルに定義されたユーザコマンド情報を読み出して、ユーザ要求実行部３２０で必要な実行モデルを生成することができる。
【００６３】
テンプレートローディング部３４０は、テンプレートメソッドをロードして、これを初期化する役目をすることができる。例えば、テンプレートローディング部３４０は、ＵＳＦ１０００で基本的に使用するオープンソーステンプレートエンジンテンプレートのメソッドまたはユーザが開発したテンプレートメソッドをロードして、初期化してもよい。
【００６４】
構成情報初期化部３５０は、ＵＳＦ１０００がビジネスオブジェクト及びユーザインターフェースオブジェクトを生成する前に、以前に設定された構成情報を読み出した後、これを初期化する役目をすることができる。
【００６５】
図７は、本発明の一実施形態に係るＵＳＦ１０００において行われるユーザインターフェースオブジェクトとビジネスオブジェクトの統合作業を示すフローチャートである。
【００６６】
動作５０１において、構成情報初期化部３５０は、ウェブサーバーに登録されているＵＳＦ１０００の設定情報及び構成情報を読み出した後、これを初期化することができる。
【００６７】
動作５０２において、テンプレートローディング部３４０が、ＸＭＬ上に設定されたＵＳＦ１０００の設定ファイルに登録されたテンプレートメソッドプラグインを実行することができる。テンプレートメソッドプラグインは、ＵＳＦ１０００で利用可能なテンプレートメソッドを読み込み、キャッシュすることができる。
【００６８】
動作５０３において、スクリプトエンジン２１０を管理や制御が可能なスクリプトエンジン管理部がＵＳＦ１０００の設定ファイルを読み出して、スクリプトエンジン２１０の初期化プロセスを準備することができる。
【００６９】
動作５０４において、スクリプトエンジン管理部は、スクリプトエンジン２１０を初期化した後、ユーザインターフェースオブジェクトを制御し、ユーザインターフェースオブジェクトを動的に配置するための準備をすることができる。例えば、スクリプトエンジン管理部は、ウェブアプリケーションのコンテクストの初期化時に、ユーザ要求受信部３１０に入力されたパラメータのうち「ｅｎａｂｌｅ−ｓｃｒｉｐｔｉｎｇ」の値が「ｔｒｕｅ（真）」なら、「ｃｕｓｔｏｍ−ｓｃｒｉｐｔ‐ｄｉｒ」の値に基づいて「．ｊｓ」ファイルをロードしてもよい。その後、スクリプトエンジン管理部は、スクリプトファイルの拡張子に基づいてスクリプトエンジン２１０のタイプを区分した後、クラスパス（ｃｌａｓｓ  ｐａｔｈ）にロードしたスクリプトエンジンライブラリからスクリプトエンジンファクトリクラスのリストを取り出し、スクリプトエンジンファクトリー別にスクリプトエンジン２１０を初期化してもよい。
【００７０】
動作５０５において、ユーザがウェブブラウザーを通じてＵＳＦ１０００にビジネスオブジェクトの生成を要求すると、ユーザ要求受信部３１０は、ウェブブラウザーを通じてユーザの要求を受信することができる。受信したユーザの要求は、ウェブアプリケーションサーバーでＨｔｔｐＳｅｒｖｌｅｔＲｅｑｕｅｓｔオブジェクトに変換され、ユーザ要求受信部３１０に受け渡すことができる。ユーザ要求受信部３１０は、受信したユーザの要求がＵＳＦ１０００で処理可能な要求であるか否かを確認し、ＵＳＦ１０００で処理することができる要求の場合、ユーザ要求実行部３２０を呼び出してユーザ要求を行うようにしてもよい。
【００７１】
動作５０６において、ユーザ要求実行部３２０は、ユーザ要求受信部３１０で受信したユーザの要求がＵＳＦ１０００で処理することができる要求の場合、ユーザの要求を処理することができる。ランタイム構成生成部３３０がＸＭＬベースの動的設定ファイルに定義されているユーザコマンド情報を読み出して、ユーザ要求実行部３２０で必要な実行モデルを生成する場合に、ユーザ要求実行部３２０は、ランタイム構成生成部３３０を通じて実行モデルを読み出して、ユーザの要求を処理してもよい。
【００７２】
動作５０７から動作５１１までは、ユーザ要求実行部３２０がＸＭＬベースの設定ファイルに定義されている実行モデル情報を読み出して、ユーザが要求したビジネスオブジェクトを生成する動作の流れである。
【００７３】
動作５０７は、サービス実行部１１０がビジネスオブジェクトを生成する処理を行う前に、ユーザによって定義された前処理がある場合、スクリプトコンポーネント２００がジャバスクリプトに基づいて、前処理を行う動作である。
【００７４】
動作５０８は、サービス実行部１１０が、ユーザの要求によって、ＸＭＬベースの設定ファイルに基づくビジネスオブジェクトのメソッドを実行する動作である。サービス実行部１１０は、リクエストブローカーを通じてメソッドを実行することによって、ＸＭＬスクリプトで宣言されているビジネスオブジェクトのメソッドを実行することができる。また、動作５０８において、サービス実行部１１０がユーザの要求を行う過程で、リクエストブローカーは、メッセージングプラットフォームを通じて、サービス実行部１１０が多層構造のサービス環境でＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）プロトコルを使用するようにしてもよい。
【００７５】
但し、動作５０８において、ビジネスオブジェクトのメソッドの実行が異常な場合、または例外状況が発生した場合、例外ハンドラー１４０は、これに対するデバッグ情報を管理してもよい。
【００７６】
動作５０９においては、動作５０８でビジネスオブジェクトのメソッドが正常に実行された場合、結果生成部１２０がサービス実行部１１０のビジネスオブジェクトのメソッド実行結果をＸＭＬベースの設定ファイルに宣言された結果形式によって多様に出力することができる。結果の種類としては、前述したように、テンプレート、リダイレクト、フォワード、ダイレクトなどの多様な応答を挙げられることができる。また、ビジネスオブジェクトの実行結果は、ＨＴＭＬ形式でウェブブラウザーを通じてユーザやウェブ開発者に提供してもよい。
【００７７】
動作５１０において、結果生成部１２０は、ビジネスオブジェクトのメソッド実行結果をスクリプトエンジン２１０に受け渡し、スクリプトエンジン２１０は、ビジネスオブジェクトとユーザインターフェースオブジェクトとを統合するために、受信したビジネスオブジェクトのデータとユーザインターフェースオブジェクトを制御することができる。また、ビジネスオブジェクト及びユーザインターフェースオブジェクトは、オープンソーステンプレートエンジン２２０によって実行時に動的に連携し、ＨＴＭＬウェブページとして提供してもよい。
【００７８】
動作５１１は、サービス実行部１１０によってビジネスオブジェクトのメソッドが正常に実行され、結果生成部１２０によって実行結果が正常に処理された場合、ユーザによって定義された後処理があれば、スクリプトコンポーネント２００がジャバスクリプトに基づいて処理する動作である。
【００７９】
動作５１２においては、動作５０９において結果生成部１２０によって出力されたビジネスオブジェクトのメソッド実行結果をランタイムエンジン１００がユーザに受け渡すことができる。ランタイムエンジン１００は、ビジネスオブジェクトのメソッド実行結果をＨｔｔｐＳｅｒｖｌｅｔＲｅｓｐｏｎｓｅ形式に変換し、ＨＴＭＬウェブページとしてユーザに受け渡すことができ、結果は、ＨＴＭＬ形式でウェブブラウザーを通じて受け渡してもよい。
【００８０】
本発明の一実施形態は、コンピュータによって実行されるプログラムモジュールのような、コンピュータによって実行可能なコマンドを含む記録媒体の形態で実装してもよい。コンピュータ可読媒体は、コンピュータによってアクセスされることができる任意の利用可能な媒体であってもよく、揮発性や不揮発性の媒体、分離可能な媒体や一体型の媒体をすべて含む。また、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体をすべて含むことができる。コンピュータ記憶媒体は、コンピュータが読み取り可能なコマンド、データ構造、プログラムモジュールまたはその他のデータのような情報の格納のための任意の方法または技術で実装された揮発性や不揮発性の媒体、分離可能な媒体や一体の媒体をすべて含む。通信媒体は、通常、コンピュータが読み取り可能なコマンド、データ構造、プログラムモジュール、または副搬送波のような変調されたデータ信号のその他のデータ、またはその他の伝送機構を含み、任意の情報伝達媒体を含む。
【００８１】
前述した本発明の説明は、例示のためのものであり、本発明の属する技術分野における通常の知識を有する者は、本発明の技術的思想や必須の特徴を変更せずに、他の様々な形態に容易に変形可能であることを理解することができる。したがって、上述した実施形態は、すべての面において例示的なものであり、限定的でないものと解すべきである。例えば、単一の形態で説明されている各構成要素は、分けた形態で実施することもでき、同様に、分けた形態として説明されている構成要素は、組み合わせた形態で実施することもできる。
【００８２】
本発明の範囲は、上述の詳細な説明よりは特許請求範囲によって示され、特許請求範囲の意味及び範囲、そしてその均等物から導き出されるすべての変更または変形された形態が本発明の範囲に含まれるものと解すべきである。
【符号の説明】
【００８３】
１００  ランタイムエンジン
２００  スクリプトコンポーネント
３００  コアコンポーネント
１１０  サービス実行部
１２０  結果生成部
１３０  単一リソースアクセス機構
１４０  例外ハンドラー
２１０  スクリプトエンジン
２２０  オープンソーステンプレートエンジン
３１０  ユーザ要求受信部
３２０  ユーザ要求実行部
３３０  ランタイム構成生成部
１０００  ユーザインターフェースサーバーフレームワーク
【図１】
2010123127.tif 000003
【図２】
2010123127.tif 000004
【図３】
2010123127.tif 000005
【図４】
2010123127.tif 000006
【図５】
2010123127.tif 000007
【図６】
2010123127.tif 000008
【図７】
2010123127.tif 000009