(57)【要約】      （修正有）【課題】従来、アプリケーションサービス提供サーバが、要求された電子データと、電子データを操作するプログラムと、を利用端末に送信し、電子データと共に送信されたプログラムを介して利用端末に電子データの操作を可能とさせる技術がある。しかし、電子データを操作するプログラムおよび電子データは、重要な技術やノウハウを含んでいる場合が多いため、当該プログラムを提供する者も、当該サービスを利用する者も、どちらもノウハウ流出リスクを負う。そこで、重要な技術やノウハウを含むプログラムまたは電子データを他に流出させずに、サービスの利用を可能とする技術を提供する。【解決手段】ノウハウ等を含む処理はアプリケーションサービス提供サーバ上で実行し、利用者側の機密情報等を含むデータはアプリケーションサービス提供サーバから分離可能とする。【選択図】図１
2010191908.tif 000002
【特許請求の範囲】
【請求項１】
サービス利用者端末と、ネットワークを介して前記サービス利用者端末に所定のサービスを提供するサービス提供装置と、データ格納装置と、を備える分散処理システムであって、
前記サービス提供装置は、
前記サービス利用者端末を、前記サービス提供装置に所定の処理を前記ネットワークを介して開始させ、前記サービス提供装置からの指示を受け付けて所定の処理を実施し、前記データ格納装置に所定のデータ操作を指示する制御部として動作させるプログラムを記憶する記憶部と、
前記サービス利用者端末からのサービス開始要求を受け付けるサービス開始要求受付部と、
前記サービス開始要求受付部によりサービス開始要求を受け付けると、前記プログラムを前記サービス利用者端末に送信するプログラム送信部と、
前記プログラム送信部が送信した前記プログラムを実行した前記サービス利用者端末により前記所定の処理を開始するサービス実行部と、
前記サービス実行部による前記所定の処理が終了すると、前記ネットワークを介して前記サービス利用者端末に所定の処理を実施するよう指示するコールバック処理部と、を備え、
前記データ格納装置は、
前記プログラムを実行した前記サービス利用者端末によるデータ操作を受け付けるデータ操作受付部と、
前記データ操作受付部により受け付けたデータ操作を実行するデータ操作部と、
前記データ操作部により実行されたデータ操作の結果を前記サービス利用者端末に出力する操作結果出力部と、を備える、
ことを特徴とする分散処理システム。
【請求項２】
請求項１に記載の分散処理システムであって、
前記プログラム送信部は、画面表示情報に関連付けて前記プログラムを送信する、
ことを特徴とする分散処理システム。
【請求項３】
請求項２に記載の分散処理システムであって、
前記画面表示情報は、ＨＴＭＬで記述されている、
ことを特徴とする分散処理システム。
【請求項４】
請求項１〜３のいずれか一項に記載の分散処理システムであって、
前記プログラムは、JavaScriptで記述されたプログラムである、
ことを特徴とする分散処理システム。
【請求項５】
請求項１〜４のいずれか一項に記載の分散処理システムであって、
前記サービス実行部による前記所定の処理は、前記プログラムと同じプログラミング言語で記述されている、
ことを特徴とする分散処理システム。
【請求項６】
分散処理システムによる分散処理方法であって、
前記分散処理システムは、
サービス利用者端末と、ネットワークを介して前記サービス利用者端末に所定のサービスを提供するサービス提供装置と、データ格納装置と、を備える分散処理システムであって、
前記サービス提供装置は、
前記サービス利用者端末を、前記サービス提供装置に所定の処理を前記ネットワークを介して開始させ、前記サービス提供装置からの指示を受け付けて所定の処理を実施し、前記データ格納装置に所定のデータ操作を指示する制御部として動作させるプログラムを記憶する記憶部を備え、
前記サービス利用者端末からのサービス開始要求を受け付けるサービス開始要求受付ステップと、
前記サービス開始要求受付ステップによりサービス開始要求を受け付けると、前記プログラムを前記サービス利用者端末に送信するプログラム送信ステップと、
前記プログラム送信ステップにおいて送信した前記プログラムを実行した前記サービス利用者端末により前記所定の処理を開始するサービス実行ステップと、
前記サービス実行ステップにおける前記所定の処理が終了すると、前記ネットワークを介して前記サービス利用者端末に所定の処理を実施するよう指示するコールバック処理ステップと、を実行し、
前記データ格納装置は、
前記プログラムを実行した前記サービス利用者端末によるデータ操作を受け付けるデータ操作受付ステップと、
前記データ操作受付ステップにおいて受け付けたデータ操作を実行するデータ操作ステップと、
前記データ操作ステップにより実行されたデータ操作の結果を前記サービス利用者端末に出力する操作結果出力ステップと、を実行する、
ことを特徴とする分散処理方法。
【請求項７】
サービス利用者端末と、ネットワークを介して前記サービス利用者端末に所定のサービスを提供するサービス提供装置と、を備える分散処理システムの開発支援装置であって、
基礎となる所定のプログラムと、前記所定のプログラムに含まれる特定の処理について当該処理を実行する実行装置を定義する処理実行装置定義情報と、データの配置場所を定義するデータ配置場所定義情報と、を記憶する記憶部と、制御部と、を備え、
前記制御部は、
前記所定のプログラムに含まれる各処理について、前記実行装置を前記処理実行場所定義情報から特定し、
特定した前記実行装置が前記サービス利用者端末である場合に、当該処理においてアクセスするデータの配置場所を前記データ配置場所定義情報により特定し、前記データの配置場所が前記サービス提供装置上であれば、前記サービス利用者端末において実行される端末側プログラムと、前記サービス提供装置からコールバックされる端末側プログラムと、に分けて当該処理を実現するプログラムを生成し、前記データの配置場所が前記サービス提供装置上でなければ、前記サービス利用者端末において実行される端末側プログラムが当該処理を実現するよう端末側プログラムを生成する、
ことを特徴とする分散処理システムの開発支援装置。
【請求項８】
請求項７に記載の開発支援装置であって、
前記制御部は、さらに、
特定した前記実行装置が前記サービス提供装置である場合には、前記サービス提供装置において実行されて当該処理を実現するサービス提供プログラムを生成するとともに、当該処理を開始させるためのプログラムを前記サービス利用者端末において実行される端末側プログラムとして生成する、
ことを特徴とする開発支援装置。
【請求項９】
請求項７または８に記載の開発支援装置であって、
前記制御部は、
特定した前記実行装置が前記サービス利用者端末である場合において、前記データの配置場所が前記サービス提供装置上であれば、前記データにアクセスする処理ごとに前記コールバックされる端末側プログラムを生成する、
ことを特徴とする開発支援装置。
【請求項１０】
請求項７〜９のいずれか一項に記載の開発支援装置であって、
前記制御部は、
特定した前記実行装置が前記サービス利用者端末である場合において、前記データの配置場所が前記サービス提供装置上であれば、当該処理が繰り返し処理を含む場合には、当該繰り返し処理を再帰呼び出しにより実現する端末側プログラムを生成する、
ことを特徴とする開発支援装置。
【請求項１１】
サービス利用者端末と、ネットワークを介して前記サービス利用者端末に所定のサービスを提供するサービス提供装置と、を備える分散処理システムの開発支援装置による開発支援方法であって、
前記開発支援装置は、
基礎となる所定のプログラムと、前記所定のプログラムに含まれる特定の処理について当該処理を実行する実行装置を定義する処理実行装置定義情報と、データの配置場所を定義するデータ配置場所定義情報と、を記憶する記憶部を備え、
前記開発支援装置は、
前記所定のプログラムに含まれる各処理について、前記実行装置を前記処理実行場所定義情報から特定するステップと、
特定した前記実行装置が前記サービス利用者端末である場合において、当該処理からアクセスするデータの配置場所を前記データ配置場所定義情報により特定し、前記データの配置場所が前記サービス提供装置上であれば、前記サービス利用者端末において実行される端末側プログラムと、前記サービス提供装置からコールバックされる端末側プログラムと、に分けて当該処理を実現するプログラムを生成し、前記データの配置場所が前記サービス提供装置上でなければ、前記サービス利用者端末において実行される当該処理を実現する端末側プログラムを生成するステップと、
を実行することを特徴とする開発支援方法。
【請求項１２】
請求項１１に記載の開発支援方法であって、
前記開発支援装置は、さらに、
特定した前記実行装置が前記サービス提供装置である場合には、前記サービス提供装置において実行される当該処理を実現するサービス提供プログラムを生成するとともに、当該処理を開始させるためのプログラムを前記サービス利用者端末において実行される端末側プログラムとして生成するステップ、
を実行することを特徴とする開発支援方法。
【請求項１３】
請求項１１または１２に記載の開発支援方法であって、
前記開発支援装置は、
特定した前記実行装置が前記サービス利用者端末である場合において、前記データの配置場所が前記サービス提供装置上であれば、前記データにアクセスする処理ごとに前記コールバックされる端末側プログラムを生成するステップ、
を実行することを特徴とする開発支援方法。
【請求項１４】
請求項１１〜１３のいずれか一項に記載の開発支援方法であって、
前記開発支援装置は、
特定した前記実行装置が前記サービス利用者端末である場合において、前記データの配置場所が前記サービス提供装置上であれば、当該処理が繰り返し処理を含む場合には、当該繰り返し処理を再帰呼び出しにより実現する端末側プログラムを生成するステップ、
を実行することを特徴とする開発支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システム、分散処理方法、分散処理システムの開発支援装置および開発支援方法に関する。
【背景技術】
【０００２】
従来、アプリケーションサービス提供サーバが、要求された電子データと、電子データを操作するためのプログラムと、を利用端末に送信し、電子データと共に送信されたプログラムを介して利用端末に電子データの操作を可能とさせる技術がある（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３５３０５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１に記載の技術では、電子データを操作するためのプログラムおよび電子データは、重要な技術やノウハウを含んでいる場合があるにもかかわらず、利用端末またはアプリケーションサービス提供サーバに流出してしまうおそれがある。つまり、電子データを操作するためのプログラムを提供する者も、アプリケーションサービスを利用する者も、どちらもプログラムの提供又は利用に際してノウハウ流出リスクを負わざるを得ない。
【０００５】
そこで、本発明は、重要な技術やノウハウを含むアプリケーションプログラムまたは電子データを他に流出させるリスクを低減できるアプリケーションサービスの利用を可能とする技術の提供を目的とする。
【課題を解決するための手段】
【０００６】
本願に係る分散処理の技術は、上記課題を解決するため、ノウハウ等を含む処理はアプリケーションサービス提供サーバ上で実行し、利用者側の機密情報等を含むデータはアプリケーションサービス提供サーバから分離可能とする。
【０００７】
例えば、サービス利用者端末と、ネットワークを介して前記サービス利用者端末に所定のサービスを提供するサービス提供装置と、データ格納装置と、を備える分散処理システムであって、前記サービス提供装置は、前記サービス利用者端末を、前記サービス提供装置に所定の処理を前記ネットワークを介して開始させ、前記サービス提供装置からの指示を受け付けて所定の処理を実施し、前記データ格納装置に所定のデータ操作を指示する制御部として動作させるプログラムを記憶する記憶部と、前記サービス利用者端末からのサービス開始要求を受け付けるサービス開始要求受付部と、前記サービス開始要求受付部によりサービス開始要求を受け付けると、前記プログラムを前記サービス利用者端末に送信するプログラム送信部と、前記プログラム送信部が送信した前記プログラムを実行した前記サービス利用者端末により前記所定の処理を開始するサービス実行部と、前記サービス実行部による前記所定の処理が終了すると、前記ネットワークを介して前記サービス利用者端末に所定の処理を実施するよう指示するコールバック処理部と、を備え、前記データ格納装置は、前記プログラムを実行した前記サービス利用者端末によるデータ操作を受け付けるデータ操作受付部と、前記データ操作受付部により受け付けたデータ操作を実行するデータ操作部と、前記データ操作部により実行されたデータ操作の結果を前記サービス利用者端末に出力する操作結果出力部と、を備える、ことを特徴とする。
【発明の効果】
【０００８】
重要な技術やノウハウを含むアプリケーションプログラムまたは電子データを他に流出させるリスクを低減できるアプリケーションサービスの利用を可能とする技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】分散情報処理システムの概略図である。
【図２】サービス利用者端末の概略図である。
【図３】ＡＰスクリプト（呼出）の例を示す図である。
【図４】ＡＰスクリプト（チケット）の例を示す図である。
【図５】ＡＰスクリプト（プロジェクト）の例を示す図である。
【図６】スクリプトライブラリの例を示す図である。
【図７】ＤＳＤＡモジュールの例を示す図である。
【図８】ＡＰＤＡモジュールの例を示す図である。
【図９】データ格納装置の概略図である。
【図１０】ＡＰ提供装置の概略図である。
【図１１】ＡＰの例を示す図である。
【図１２】ＤＡモジュール（プロジェクト）の例を示す図である。
【図１３】ＤＡモジュール（Ｗｉｋｉ）の例を示す図である。
【図１４】サービス利用者端末のハードウェア構成を示す図である。
【図１５】プロジェクト管理処理の処理内容を示す図である。
【図１６】プロジェクト管理処理の画面例を示す図である。
【図１７】プロジェクト管理処理の画面例を示す図である。
【図１８】開発支援装置の概略図である。
【図１９】基準ＡＰの例を示す図である。
【図２０】ＡＰ実行場所表のデータ構造の例を示す図である。
【図２１】データ場所表の例を示す図である。
【図２２】モジュールリストのデータ構造の例を示す図である。
【図２３】ＡＰ生成処理の処理フローを示す図である。
【図２４】ＡＰ生成処理のループ変換処理の処理フローを示す図である。
【図２５】ＤＡモジュール生成処理の処理フローを示す図である。
【発明を実施するための形態】
【００１０】
図１は、本発明の実施形態における分散情報処理システム１を示す図である。
【００１１】
本実施形態における分散情報処理システム１は、サービス利用者端末１００と、組織内ネットワーク１５０を介してサービス利用者端末１００と接続可能なデータ格納装置２００と、組織間ネットワーク２５０を介してサービス利用者端末１００と接続可能なアプリケーション提供装置（以下、「ＡＰ提供装置」と記載）３００と、を含む。
【００１２】
なお、組織間ネットワーク２５０は、通常はインターネット等の公衆通信網、ＷＡＮ（Wide Area Network）またはＶＰＮ（Virtual Private Network）等の異組織間の通信網である。
【００１３】
組織内ネットワーク１５０は、通常はＬＡＮ（Local Area Network）等の利用者組織が管理する通信網である。ただし、これに限らず、組織内ネットワーク１５０は、インターネット等の公衆通信網、ＷＡＮ（Wide Area Network）またはＶＰＮ（Virtual Private Network）等の異組織間の通信網であってもよい。
【００１４】
サービス利用者端末１００は、利用者組織１０に属する。
【００１５】
データ格納装置２００は、データプロバイダ組織２０に属しており、本実施形態においては、データプロバイダ組織２０は利用者組織１０に属する。
【００１６】
データ格納装置２００は、データを保持し、保持するデータの参照や変更を要求に応じて実施するデータ管理サービスをサービス利用者端末１００に提供する。
【００１７】
ＡＰ提供装置３００は、アプリケーションプロバイダ組織３０に属する。
【００１８】
ＡＰ提供装置３００は、例えばプロジェクト管理や表計算等のアプリケーションサービスを、サービス利用者端末１００からの要求に応じて提供する。
【００１９】
図２は、サービス利用者端末１００の概略図である。図示するように、サービス利用者端末１００は、記憶部１２０と、制御部１３０と、入力部１４１と、出力部１４２と、通信部１４３と、を有する。
【００２０】
記憶部１２０は、ＡＰスクリプト記憶領域１２１と、ＤＳＤＡモジュール記憶領域１２２と、ＡＰＤＡモジュール記憶領域１２３と、を備える。
【００２１】
ＡＰスクリプト記憶領域１２１には、ＡＰ提供装置３００から提供されるアプリケーションサービスを実現するアプリケーションプログラム（以下、「ＡＰスクリプト」と表記）が記憶される。
【００２２】
本実施形態においては、ＡＰスクリプトは、JavaScript（登録商標）により記述されるが、これに限らず、サービス利用者端末１００に搭載された図示しない実行エンジン上で実行されるクライアントサイドスクリプトであればよい。
【００２３】
本実施形態においては、ＡＰスクリプト記憶領域１２１には、ＡＰスクリプト（呼出）１６０と、ＡＰスクリプト（チケット）１６５と、ＡＰスクリプト（プロジェクト）１７０と、ライブラリスクリプト１８０と、が格納される。
【００２４】
ＡＰスクリプト（呼出）１６０は、図３に示すように、ブラウザ部１３３により実行されるJavaScriptの関数である。
【００２５】
ＡＰスクリプト（呼出）１６０の処理内容であるＷｉｋｉ表示処理１６１を説明する。Ｗｉｋｉ表示処理１６１は、ＡＰスクリプト（呼出）１６０を含むＨＴＭＬ（Hyper Text Markup Language）ページに、「script」要素を追加するものである。なお、当該script要素は、実行されると、ＡＰ提供装置３００に対して、引数に与えられた情報に該当するＷｉｋｉページを要求し、受け取ったＷｉｋｉページを当該ＨＴＭＬページに表示させるものである。
【００２６】
ＡＰスクリプト（チケット）１６５は、図４に示すように、ブラウザ部１３３により実行されるJavaScriptの関数である。
【００２７】
ＡＰスクリプト（チケット）１６５の第一の処理内容であるチケット一覧処理１６６を説明する。ＡＰスクリプト（チケット）１６５のチケット一覧処理１６６は、ＡＰスクリプト（チケット）１６５を含むＨＴＭＬページに既に生成されたチケット（本実施形態におけるチケットとは、バグ情報等のレポート一件をいう。）の一覧情報を追加して表示させる処理である。なお、当該処理においては、データ格納装置２００のデータベース領域２２１に格納されたチケット情報を取得して一覧情報を生成する処理が含まれる。
【００２８】
ＡＰスクリプト（チケット）１６５の第二の処理内容であるチケット生成処理１６７を説明する。ＡＰスクリプト（チケット）１６５のチケット生成処理１６７は、チケット情報を一件生成して、ＡＰスクリプト（チケット）１６５を含むＨＴＭＬページに、既に生成されたチケットの一覧情報を追加して表示させるものである。なお、当該処理においては、データ格納装置２００のデータベース領域２２１にチケット情報を新たに追加する処理と、データベース領域２２１に格納されたチケット情報を取得して一覧情報を生成する処理が含まれる。
【００２９】
ＡＰスクリプト（プロジェクト）１７０は、図５に示すように、ブラウザ部１３３により実行されるJavaScriptの関数である。
【００３０】
ＡＰスクリプト（プロジェクト）１７０の第一の処理内容であるプロジェクト一覧処理１７１を説明する。プロジェクト一覧処理１７１は、実行されると、ＡＰ提供装置３００に対して、既に生成されたプロジェクト管理情報の一覧情報を要求するものである。なお、当該処理においては、ＡＰ提供装置３００のデータベース領域３２４に格納されたプロジェクト情報を要求する処理が含まれる。
【００３１】
次に、ＡＰスクリプト（プロジェクト）１７０の第二の処理内容であるプロジェクト一覧コールバック処理１７２を説明する。プロジェクト一覧コールバック処理１７２は、プロジェクト一覧処理１７１が実行された後に、ＡＰ提供装置３００から呼び出されるコールバック処理である。プロジェクト一覧コールバック処理１７２は、ＡＰスクリプト（プロジェクト）１７０を含むＨＴＭＬページに、引数に渡されたプロジェクト管理情報一覧のデータ（例えばＪＳＯＮ（JavaScript Object Notation）形式のデータ）を追加して表示させるものである。なお、当該処理においては、ＡＰ提供装置３００のデータベース領域３２４に格納されたプロジェクト管理情報を受信して一覧情報を生成する処理が含まれる。
【００３２】
次に、ＡＰスクリプト（プロジェクト）１７０の第三の処理内容であるプロジェクト表示処理１７３を説明する。プロジェクト表示処理１７３は、実行されると、ＡＰ提供装置３００に対して、特定のプロジェクト管理情報を要求する処理である。なお、当該処理においては、ＡＰ提供装置３００のデータベース領域３２４に格納された特定のプロジェクト管理情報を要求する処理が含まれる。
【００３３】
次に、ＡＰスクリプト（プロジェクト）１７０の第四の処理内容であるプロジェクト表示コールバック処理１７４を説明する。プロジェクト表示コールバック処理１７４は、プロジェクト表示処理１７３が実行された後に、ＡＰ提供装置３００から呼び出されるコールバック処理である。プロジェクト表示コールバック処理１７３は、ＡＰスクリプト（プロジェクト）１７０を含むＨＴＭＬページに、引数に渡された特定のプロジェクト管理情報のデータ（例えばＪＳＯＮ（JavaScript Object Notation）形式のデータ）を追加して表示させる処理である。なお、当該処理においては、ＡＰ提供装置３００のデータベース領域３２４に格納された特定のプロジェクト管理情報を受信して表示情報を生成する処理が含まれる。
【００３４】
次に、ＡＰスクリプト（プロジェクト）１７０の第五の処理内容であるプロジェクト生成処理１７５を説明する。プロジェクト生成処理１７５は、実行されると、ＡＰ提供装置３００に対して、新規のプロジェクト管理情報を生成して格納するよう要求する処理である。なお、当該処理においては、ＡＰ提供装置３００のデータベース領域３２４に新規のプロジェクト管理情報を格納させ、その結果を表示する処理が含まれる。
【００３５】
次に、ＡＰスクリプト（プロジェクト）１７０の第六の処理内容であるプロジェクト生成コールバック処理１７６を説明する。プロジェクト生成コールバック処理１７６は、プロジェクト生成処理１７５が実行された後に、ＡＰ提供装置３００から呼び出されるコールバック処理である。プロジェクト生成コールバック処理１７６は、実行されると、上記プロジェクト一覧処理１７１に処理を委譲する処理である。
【００３６】
スクリプトライブラリ１８０は、図６に示すように、ブラウザ部１３３により実行されるJavaScriptの関数である。
【００３７】
スクリプトライブラリ１８０には、ＡＰスクリプトの実行をサポートするユーティリティプログラム等を含む処理が含まれる。
【００３８】
例えば、ユーティリティプログラムには、画面描画プログラム等種々のＡＰＩ（Application Program Interface）が含まれる。
【００３９】
本実施形態におけるスクリプトライブラリ１８０に含まれる処理のうち、第一の処理内容である画面構成処理１８１を説明する。画面構成処理１８１は、スクリプトライブラリ１８０を含むＨＴＭＬページに、引数で渡されたＨＴＭＬを追加して画面を構成する処理である。
【００４０】
スクリプトライブラリ１８０の第二の処理内容である処理委譲処理１８２を説明する。処理委譲処理１８２は、スクリプトライブラリ１８０を含むＨＴＭＬページに含まれる他の関数の名称を引数として受け取り、引数に指定された名称の関数を実行する処理である。
【００４１】
ＤＳＤＡモジュール記憶領域１２２には、データ提供装置２００に格納されたデータベースへアクセスするためのプログラムモジュール（ＤＳＤＡモジュール１９０）が記憶される。
【００４２】
ＤＳＤＡモジュール１９０とは、データアクセス用のプログラムモジュールのうち、データプロバイダ組織２０が管理するデータ格納装置２００に格納されたデータにアクセスするためのプログラムモジュールをいう。
【００４３】
ＤＳＤＡモジュール１９０は、図７に示すように、ブラウザ部１３３により実行されるJavaScriptの関数である。
【００４４】
本実施形態においては、ＤＳＤＡモジュール１９０は、JavaScriptにより記述されるが、これに限らず、サービス利用者端末１００に搭載されたブラウザ部１３３（後述）上で実行されるクライアントサイドスクリプトであればよい。
【００４５】
ＤＳＤＡモジュール１９０の第一の処理内容であるチケットオブジェクト生成処理１９１を説明する。チケットオブジェクト生成処理１９１は、引数に指定された名称を有するデータベースアクセス用のオブジェクトを生成する処理である。本実施形態においては、データ格納装置２００に対して接続を行うデータベースアクセスオブジェクトを生成する処理が含まれる。
【００４６】
ＤＳＤＡモジュール１９０の第二の処理内容である指定チケット取得処理１９２を説明する。指定チケット取得処理１９２は、データベースアクセスオブジェクトを介してチケット情報を格納するデータベースに接続して、引数に指定された情報を識別子として有するレコードを取得する処理である。本実施形態においては、データ格納装置２００に対して接続を行い、データベース領域２２１に格納されたチケット情報を取得する処理を含む。
【００４７】
ＤＳＤＡモジュール１９０の第三の処理内容である全チケット取得処理１９３を説明する。全チケット取得処理１９３は、データベースアクセスオブジェクトを介してチケット情報を格納するデータベースに接続して、格納された全レコードを取得する処理である。本実施形態においては、データ格納装置２００に対して接続を行い、データベース領域２２１に格納された全部のチケット情報を取得する処理が含まれる。
【００４８】
ＤＳＤＡモジュール１９０の第四の処理内容であるチケット格納処理１９４を説明する。チケット格納処理１９４は、データベースアクセスオブジェクトを介してチケット情報を格納するデータベースに接続して、レコードを格納する処理である。本実施形態においては、データ格納装置２００に対して接続を行い、データベース領域２２１にチケット情報を格納し、当該チケット情報を識別する識別子を取得する処理が含まれる。
【００４９】
ＤＳＤＡモジュール１９０の第五の処理内容であるチケット削除処理１９５を説明する。チケット削除処理１９５は、データベースアクセスオブジェクトを介してチケット情報を格納するデータベースに接続して、識別子で識別されるレコードを削除する処理である。本実施形態においては、データ格納装置２００に対して接続を行い、データベース領域２２１に格納されたチケット情報から識別子で識別されるレコードを削除する処理が含まれる。
【００５０】
ＡＰＤＡモジュール記憶領域１２３には、ＡＰ提供装置３００から提供されるアプリケーションサービスを実行する際に必要となるデータアクセス用のプログラムモジュール（ＡＰＤＡモジュール１９６）が記憶される。
【００５１】
ＡＰＤＡモジュール１９６とは、データアクセス用のプログラムモジュールのうち、アプリケーションプロバイダ組織３０が管理するＡＰ提供装置３００に格納されたデータにアクセスするためのプログラムモジュールをいう。
【００５２】
ＡＰＤＡモジュール１９６は、図８に示すように、ブラウザ部１３３により解釈されて実行されるJavaScriptの関数である。
【００５３】
本実施形態においては、ＡＰＤＡモジュール１９６は、JavaScriptにより記述されるが、これに限らず、サービス利用者端末１００に搭載されたブラウザ部１３３（後述）上で実行されるクライアントサイドスクリプトであればよい。
【００５４】
ＡＰＤＡモジュール１９６の第一の処理内容である指定プロジェクト取得処理１９７を説明する。指定プロジェクト取得処理１９７は、引数に指定された情報を識別子として有するプロジェクトの情報を取得するスクリプトを、ＡＰＤＡモジュール１９６を含むＨＴＭＬページに追加する処理である。本実施形態においては、上記スクリプトは、ＡＰ提供装置３００に対して接続を行い、データベース領域３２４に格納されたプロジェクト情報のうち引数に指定された情報を識別子として有するプロジェクトの情報を取得する処理が含まれる。
【００５５】
ＡＰＤＡモジュール１９６の第二の処理内容である全プロジェクト取得処理１９８を説明する。全プロジェクト取得処理１９８は、全プロジェクトの情報を取得するスクリプトを、ＡＰＤＡモジュール１９６を含むＨＴＭＬページに追加する処理である。本実施形態においては、上記スクリプトは、ＡＰ提供装置３００に対して接続を行い、データベース領域３２４に格納された全部のプロジェクト情報を取得する処理が含まれる。
【００５６】
ＡＰＤＡモジュール１９６の第三の処理内容であるプロジェクト格納処理１９９を説明する。プロジェクト格納処理１９９は、データベースアクセスオブジェクトを介してチケット情報を格納するデータベースに接続して、レコードを格納する処理である。本実施形態においては、データ格納装置２００に対して接続を行い、データベース領域２２１にチケット情報を格納し、当該チケット情報を識別する識別子を取得する処理が含まれる。
【００５７】
制御部１３０は、入力情報受付部１３１と、出力情報生成部１３２と、ブラウザ部１３３と、を備える。
【００５８】
入力情報受付部１３１は、後述する入力部１４１を介して入力された情報を受け付ける。
【００５９】
出力情報生成部１３２は、出力する情報と、画面レイアウトと、を組み合わせて出力画面を構成し、後述する出力部１４２に表示させる。
【００６０】
ブラウザ部１３３は、後述する通信部１４３を介して組織間ネットワーク２５０又は組織内ネットワーク１５０に接続し、各ネットワークに接続された装置と通信を行う。また、利用者の操作を入力情報受付部１３１を介して受け付け、利用者に提示する情報を出力情報生成部１３２に依頼して出力する。
【００６１】
ブラウザ部１３３は、さらに、ＡＰスクリプト記憶領域１２１と、ＤＳＤＡモジュール記憶領域１２２と、ＡＰＤＡモジュール記憶領域１２３と、に格納されたプログラムモジュールを解釈して実行する実行エンジンの機能を備える。
【００６２】
入力部１４１は、操作者からの情報の入力を受け付ける。
【００６３】
出力部１４２は、情報を出力する。
【００６４】
通信部１４３は、組織間ネットワーク２５０および組織内ネットワーク１５０を介して他の機器に接続し、接続した他の機器に対して情報の送信を行い、接続した他の機器から送信された情報の受信を行う。
【００６５】
図９は、データ格納装置２００の概略図である。図示するように、データ格納装置２００は、記憶部２２０と、制御部２３０と、通信部２４３と、を有する。
【００６６】
記憶部２２０は、データベース領域２２１を含む。
【００６７】
データベース領域２２１には、ＡＰ提供装置３００から提供されるアプリケーションサービスの実行に必要なデータを格納するデータベースが記憶される。
【００６８】
制御部２３０は、初期画面生成部２３１と、データ操作部２３２と、通信部２４３と、を備える。
【００６９】
初期画面生成部２３１は、サービス利用者端末１００から、ＡＰ提供装置３００が提供するアプリケーションの利用依頼を受け付ける。利用依頼を受け付けると、初期画面生成部２３１は、利用依頼のあったアプリケーションを開始するためのキー情報をサービス利用者端末１００に送信する。
【００７０】
本実施形態においては、初期画面生成部２３１は、ＡＰ提供装置３００のアプリケーションの利用要求を受け付けるＵＲＩ（Uniform Resource Identifier）をキー情報とする。初期画面生成部２３１は、キー情報を含む情報をサービス利用者端末１００に送信する。
【００７１】
データ操作部２３２は、サービス利用者端末１００から、指定されたデータの入出力要求を受け付ける。データ操作部２３２は、指定されたデータの入出力要求を受け付けると、記憶部２２０のデータベース領域２２１に対して、指定されたデータの入出力を行う。
【００７２】
通信部２４３は、組織内ネットワーク１５０を介して他の機器に接続し、接続した他の機器に対して情報の送信を行い、接続した他の機器から送信された情報の受信を行う。
【００７３】
図１０は、ＡＰ提供装置３００の概略図である。図示するように、ＡＰ提供装置３００は、記憶部３２０と、制御部３３０と、入力部３４１と、出力部３４２と、通信部３４３と、を有する。
【００７４】
記憶部３２０は、ＡＰ記憶領域３２１と、スクリプトライブラリ記憶領域３２２と、ＤＡモジュール記憶領域３２３と、データベース領域３２４と、を備える。
【００７５】
ＡＰ記憶領域３２１には、サービス利用者端末１００に対して提供するアプリケーションサービスのうち、一部または全部の処理を実行するためのアプリケーションプログラム（ＡＰ３６０）が記憶される。
【００７６】
本実施形態においては、ＡＰ３６０は、図１１に示すように、ＡＰ実行部３３２により実行されるJavaScriptにより記述されるが、これに限らず、サービス利用者端末１００上で実行されるＡＰスクリプトと同一のプログラム言語で記載されたスクリプトであればよい。
【００７７】
ＡＰ３６０の処理内容であるＷｉｋｉ表示処理３６１を説明する。Ｗｉｋｉ表示処理３６１は、ＡＰ実行部３３２により実行されると、ＡＰ提供装置３００のデータベース領域３２４に格納されたＷｉｋｉ情報を格納するデータベースに接続して、引数に指定された識別子で識別されるＷｉｋｉ情報を取得して表示情報を生成するものである。
【００７８】
また、Ｗｉｋｉ表示処理３６１は、生成した表示情報を画面に表示するようサービス利用者端末１００に対して指示するものである。なお、当該処理においては、サービス利用者端末１００に対して表示するよう指示する際に、スクリプトライブラリ１８０の画面構成処理１８１をコールバックする処理が含まれている。
【００７９】
スクリプトライブラリ記憶領域３２２には、ＡＰスクリプトの実行をサポートするユーティリティプログラム等を含むスクリプトライブラリ１８０が記憶される。
【００８０】
スクリプトライブラリ１８０は、上述したサービス利用者端末１００のＡＰスクリプト記憶領域１２１に記憶されるスクリプトライブラリ１８０と同一のものである。
【００８１】
ＤＡモジュール記憶領域３２３には、ＡＰ提供装置３００の後述するデータベース領域３２４に格納されたデータにＡＰ３６０がアクセスする際に必要となるデータアクセス用のプログラムモジュール（ＤＡモジュール）が記憶される。なお、ＤＡモジュールには、ＤＡモジュール（プロジェクト）３７０と、ＤＡモジュール（Ｗｉｋｉ）３８０と、が含まれる。
【００８２】
ＤＡモジュールとは、データアクセス用のプログラムモジュールのうち、ＡＰ提供装置３００に格納されたデータにアクセスするためのプログラムモジュールをいう。
【００８３】
本実施形態においては、ＤＡモジュール（プロジェクト）３７０は、図１２に示すように、ＡＰ実行部３３２により実行されるJavaScriptにより記述されるが、これに限らず、ＡＰスクリプトから呼び出し可能に記述されていれば別の言語により記述されてもよい。
【００８４】
ＤＡモジュール（プロジェクト）３７０の第一の処理内容であるプロジェクトオブジェクト生成処理３７１を説明する。プロジェクトオブジェクト生成処理３７１は、引数に指定された名称を有するデータベースアクセス用のオブジェクトを生成する処理である。本実施形態においては、データベース領域３２４の図示しないプロジェクト情報データベースに対して接続を行うデータベースアクセスオブジェクトを生成する処理が含まれる。
【００８５】
ＤＡモジュール（プロジェクト）３７０の第二の処理内容である指定プロジェクト取得処理３７２を説明する。指定プロジェクト取得処理３７２は、データベースアクセスオブジェクトを介して、プロジェクト情報を格納するデータベースに接続して、引数に指定された情報を識別子として有するレコードを取得する処理である。本実施形態においては、プロジェクト情報データベースに格納されたプロジェクト情報を取得する処理が含まれる。
【００８６】
ＤＡモジュール（プロジェクト）３７０の第三の処理内容である全プロジェクト取得処理３７３を説明する。全プロジェクト取得処理３７３は、データベースアクセスオブジェクトを介してプロジェクト情報を格納するデータベースに接続して、格納された全レコードを取得する処理である。本実施形態においては、プロジェクト情報データベースに格納された全部のプロジェクト情報を取得する処理が含まれる。
【００８７】
ＤＡモジュール（プロジェクト）３７０の第四の処理内容であるプロジェクト格納処理３７４を説明する。プロジェクト格納処理３７４は、データベースアクセスオブジェクトを介してプロジェクト情報を格納するデータベースに接続して、レコードを格納する処理である。本実施形態においては、プロジェクト情報データベースにプロジェクト情報を格納し、当該チケット情報を識別する識別子を取得する処理が含まれる。
【００８８】
ＤＡモジュール（プロジェクト）３７０の第五の処理内容であるプロジェクト削除処理３７５を説明する。プロジェクト削除処理３７５は、データベースアクセスオブジェクトを介してプロジェクト情報を格納するデータベースに接続して、識別子で識別されるレコードを削除する処理である。本実施形態においては、プロジェクト情報データベースに格納されたプロジェクト情報から識別子で識別されるレコードを削除する処理が含まれる。
【００８９】
ＤＡモジュール（Ｗｉｋｉ）３８０は、図１３に示すように、ＡＰ実行部３３２により実行されるJavaScriptにより記述されるが、これに限らず、ＡＰスクリプトから呼び出し可能に記述されていれば別の言語により記述されてもよい。
【００９０】
ＤＡモジュール（Ｗｉｋｉ）３８０の第一の処理内容であるＷｉｋｉオブジェクト生成処理３８１を説明する。Ｗｉｋｉオブジェクト生成処理３８１は、引数に指定された名称を有するデータベースアクセス用のオブジェクトを生成する処理である。本実施形態においては、データベース領域３２４の図示しないＷｉｋｉ情報データベースに対して接続を行うデータベースアクセスオブジェクトを生成する処理が含まれる。
【００９１】
ＤＡモジュール（Ｗｉｋｉ）３８０の第二の処理内容である指定Ｗｉｋｉ取得処理３８２を説明する。指定Ｗｉｋｉ取得処理３８２は、データベースアクセスオブジェクトを介してＷｉｋｉ情報を格納するデータベースに接続して、引数に指定された情報を識別子として有するレコードを取得する処理である。本実施形態においては、Ｗｉｋｉ情報データベースに格納されたＷｉｋｉ情報を取得する処理が含まれる。
【００９２】
ＤＡモジュール（Ｗｉｋｉ）３８０の第三の処理内容である全Ｗｉｋｉ取得処理３８３を説明する。全Ｗｉｋｉ取得処理３８３は、データベースアクセスオブジェクトを介してＷｉｋｉ情報を格納するデータベースに接続して、格納された全レコードを取得する処理である。本実施形態においては、Ｗｉｋｉ情報データベースに格納された全部のＷｉｋｉ情報を取得する処理が含まれる。
【００９３】
ＤＡモジュール（Ｗｉｋｉ）３８０の第四の処理内容であるＷｉｋｉ格納処理３８４を説明する。Ｗｉｋｉ格納処理３８４は、データベースアクセスオブジェクトを介してＷｉｋｉ情報を格納するデータベースに接続して、レコードを格納する処理である。本実施形態においては、Ｗｉｋｉ情報データベースにＷｉｋｉ情報を格納し、当該Ｗｉｋｉ情報を識別する識別子を取得する処理が含まれる。
【００９４】
ＤＡモジュール（Ｗｉｋｉ）３８０の第五の処理内容であるＷｉｋｉ削除処理３８５を説明する。Ｗｉｋｉ削除処理３８５は、データベースアクセスオブジェクトを介してＷｉｋｉ情報を格納するデータベースに接続して、識別子で識別されるレコードを削除する処理である。本実施形態においては、Ｗｉｋｉ情報データベースに格納されたＷｉｋｉ情報から識別子で識別されるレコードを削除する処理が含まれる。
【００９５】
データベース領域３２４には、ＡＰ提供装置３００が提供するアプリケーションサービスの実行に必要なデータを格納するデータベースが記憶される。
【００９６】
制御部３３０は、ＡＰ利用受付部３３１と、ＡＰ実行部３３２と、データ操作部３３３と、を備える。
【００９７】
ＡＰ利用受付部３３１は、ＡＰ記憶領域３２１に格納されたアプリケーションプログラムを開始するためのキー情報を、サービス利用者端末１００から受け付ける。
【００９８】
ＡＰ利用受付部３３１は、サービス利用者端末１００からキー情報を受け付けると、当該アプリケーションプログラムのうちサービス利用者端末１００側で動作するプログラムを、ＡＰ記憶領域３２１と、スクリプトライブラリ記憶領域３２２と、ＤＡモジュール記憶領域３２３と、の中から特定する。そして、ＡＰ利用受付部３３１は、特定したプログラムをサービス利用者端末１００に送信する。
【００９９】
ＡＰ実行部３３２は、ＡＰ記憶領域３２１と、スクリプトライブラリ記憶領域３２２と、ＤＡモジュール記憶領域３２３と、データベース領域３２４と、に格納されたアプリケーションプログラムを実行する。
【０１００】
データ操作部３３３は、サービス利用者端末１００またはＡＰ提供装置３００自身から指定されたデータの入出力要求を受け付ける。データ操作部３３３は、指定されたデータの入出力要求を受け付けると、記憶部３２０のデータベース領域３２４に対して、指定されたデータの入出力を行う。
【０１０１】
入力部３４１は、操作者からの情報の入力を受け付ける。
【０１０２】
出力部３４２は、情報を出力する。
【０１０３】
通信部３４３は、組織間ネットワーク２５０を介して他の機器に接続し、接続した他の機器に対して情報の送信を行い、接続した他の機器から送信された情報の受信を行う。
【０１０４】
図１４は、本実施形態におけるサービス利用者端末１００のハードウェア構成を示す図である。
【０１０５】
本実施形態においては、サービス利用者端末１００は、例えば、クライアントＰＣ（パーソナルコンピュータ）や、ワークステーション、サーバ装置、各種携帯電話端末、ＰＤＡ（Personal Digital Assistant）などの計算機である。
【０１０６】
サービス利用者端末１００は、入力装置１１１と、出力装置１１２と、演算装置１１３と、主記憶装置１１４と、外部記憶装置１１５と、通信装置１１６と、それぞれの装置を互いに接続するバス１１７と、を有する。
【０１０７】
入力装置１１１は、例えばキーボードやマウス、あるいはタッチペン、その他ポインティングデバイスなどの入力を受け付ける装置である。
【０１０８】
出力装置１１２は、例えばディスプレイなどの、表示を行う装置である
演算装置１１３は、例えばＣＰＵ（Central Processing Unit）などの演算装置である。
【０１０９】
主記憶装置１１４は、例えばＲＡＭ（Random Access Memory）などのメモリ装置である。
【０１１０】
外部記憶装置１１５は、例えばハードディスク装置やフラッシュメモリなどの不揮発性記憶装置である。
【０１１１】
通信装置１１６は、アンテナを介して無線通信を行う無線通信ユニット等の通信装置である。
【０１１２】
サービス利用者端末１００の入力情報受付部１３１と、出力情報生成部１３２と、ブラウザ部１３３と、は、サービス利用者端末１００の演算装置１１３に処理を行わせるプログラムによって実現される。
【０１１３】
このプログラムは、主記憶装置１１４または外部記憶装置１１５内に記憶され、実行にあたって主記憶装置１１４上にロードされ、演算装置１１３により実行される。
【０１１４】
また、サービス利用者端末１００の記憶部１２０は、サービス利用者端末１００の主記憶装置１１４または外部記憶装置１１５により実現される。
【０１１５】
サービス利用者端末１００の入力部１４１は、サービス利用者端末１００の入力装置１１１によって実現される。
【０１１６】
サービス利用者端末１００の出力部１４２は、サービス利用者端末１００の出力装置１１２によって実現される。
【０１１７】
サービス利用者端末１００の通信部１４３は、サービス利用者端末１００の通信装置１１６によって実現される。
【０１１８】
また、データ格納装置２００と、ＡＰ提供装置３００とは、基本的に、サービス利用者端末１００と同様のハードウェア構成を備える。
【０１１９】
ただし、データ格納装置２００については、入力装置１１１と出力装置１１２とを備えない構成であってもよい。
【０１２０】
また、データ格納装置２００においては、初期画面生成部２３１と、データ操作部２３２と、は、データ格納装置２００の演算装置１１３に処理を行わせるプログラムによって実現される。
【０１２１】
また、ＡＰ提供装置３００においては、ＡＰ利用受付部３３１と、ＡＰ実行部３３２と、データ操作部３３３と、は、ＡＰ提供装置３００の演算装置１１３に処理を行わせるプログラムによって実現される。
【０１２２】
次に、本実施形態におけるプロジェクト管理処理について、図１５に基づいて説明する。
【０１２３】
図１５は、プロジェクト管理処理の処理フローを示す図である。
【０１２４】
まずは、プロジェクト管理処理におけるアプリケーションサービスを開始するための開始フェーズ（ステップＳ１〜ステップＳ７まで）について説明する。
【０１２５】
プロジェクト管理処理は、サービス利用者端末１００のブラウザ部１３３が、入力情報受付部１３１を介して利用者から開始指示を受け付けることで開始される。
【０１２６】
まず、サービス利用者端末１００のブラウザ部１３３は、データ格納装置２００に対して初期ページを要求する（ステップＳ１）。
【０１２７】
具体的には、ブラウザ部１３３に指定されたＵＲＬ（Uniform Resource Locator）に対して、ブラウザ部１３３はＨＴＴＰ（Hypertext Transfer Protocol）リクエストを送信する。なお、当該ＵＲＬには、利用者が利用したいアプリケーションサービスを識別する識別子等の情報が含まれている。
【０１２８】
次に、データ格納装置２００は、初期ページを生成する（ステップＳ２）。
【０１２９】
具体的には、初期画面生成部２３１は、ステップＳ１で送信されたＵＲＬに含まれるアプリケーションサービスを識別する識別子に対応するＡＰ提供装置３００のＵＲＩを含むＨＴＭＬページを初期ページとして生成する。
【０１３０】
次に、データ格納装置２００は、生成した初期ページをサービス利用者端末１００に送信する（ステップＳ３）。
【０１３１】
具体的には、初期画面生成部２３１は、ステップＳ２で生成したＨＴＭＬをＨＴＴＰレスポンスとしてサービス利用者端末１００に送信する。
【０１３２】
次に、ステップＳ３で送信された初期ページを、サービス利用者端末１００が実行する（ステップＳ４）。
【０１３３】
具体的には、ブラウザ部１３３は、ステップＳ３にて送信されたＨＴＴＰレスポンスからＨＴＭＬを取得し、ＨＴＭＬに基づいて画面を構成して出力情報生成部１３２を介して表示する。その際、ブラウザ部１３３は、当該ＨＴＭＬページに含まれるＡＰ提供装置３００のＵＲＩを取得する。
【０１３４】
次に、サービス利用者端末１００は、ＡＰ提供装置３００に対して、アプリケーションプログラムの開始要求を送信する（ステップＳ５）。
【０１３５】
具体的には、ブラウザ部１３３は、ステップＳ４にて取得したＡＰ提供装置３００のＵＲＩに対して、ＨＴＴＰリクエストを送信する。
【０１３６】
次に、ＡＰ提供装置３００は、要求のあったアプリケーションプログラムをサービス利用者端末１００へ配信する（ステップＳ６）。
【０１３７】
具体的には、ＡＰ利用受付部３３１は、ステップＳ５において送信されたＨＴＴＰリクエストに含まれるＵＲＩに対応するアプリケーションサービスを実現するのに必要なＡＰスクリプト（チケット）１６０と、ＡＰスクリプト（プロジェクト）１６５と、スクリプトライブラリ１８０と、ＤＳＤＡモジュール１９０と、ＡＰＤＡモジュール１９６とを特定する。そして、ＡＰ利用受付部３３１は、特定した各モジュールを含むアプリケーションプログラムをサービス利用者端末１００へ配信する。
【０１３８】
次に、サービス利用者端末１００は、ステップＳ６において配信されたアプリケーションプログラムの実行を開始する（ステップＳ７）。
【０１３９】
ここまでが、プロジェクト管理処理におけるアプリケーションサービスを開始するための開始フェーズである。
【０１４０】
次に、プロジェクト管理処理における実行フェーズを説明する。
【０１４１】
サービス利用者端末１００は、アプリケーションプログラムの実行中に、ＡＰ提供装置３００側で実行する処理の指示を受け付けた場合、ＡＰ提供装置３００に関数実行要求を送信する（ステップＳ８）。
【０１４２】
具体的には、ブラウザ部１３３は、アプリケーションプログラムの実行中に、ＡＰ提供装置３００に処理を要求するＡＰスクリプト（呼出）１６０またはＡＰＤＡモジュール１９６の実行指示を受け付けると、ＡＰ提供装置３００に処理を依頼するＨＴＴＰリクエストを作成して送信する。その際、各処理において指定されたＵＲＩに対してＨＴＴＰリクエストを送信する。
【０１４３】
次に、ＡＰ提供装置３００は、関数実行要求を受け付けると、実行要求のある関数を実行する（ステップＳ９）。
【０１４４】
具体的には、ＡＰ実行部３３２は、受け付けたＵＲＩに対応付けられたＡＰ３６０またはＤＡモジュール（プロジェクト）３７０の処理の実行を開始する。ＡＰ３６０の処理を実施する場合は、ＡＰ実行部３３２は、ＤＡモジュール（Ｗｉｋｉ）３８０を介してデータベース領域３２４にアクセスして所定のデータ操作を行う。
【０１４５】
次に、ＡＰ提供装置３００は、サービス利用者端末１００に対して所定の関数をコールバックする（ステップＳ１０）。
【０１４６】
具体的には、ＡＰ３６０の処理を行った場合には、ＡＰ実行部３３２は、構成したＨＴＭＬを表示するようにコールバックし、ＤＡモジュール（プロジェクト）３７０の処理を行った場合には、取得したデータをＪＳＯＮ形式に成形してコールバックする。その際、ＡＰ実行部３３２は、ＡＰ３６０の実行要求ＵＲＩにパラメータとして付加されたコールバック関数名称を、呼び出し元のアプリケーションプログラムの名称と結合させることで、コールバックする関数の名称を特定する。また、ＡＰ実行部３３２は、ＡＰ提供装置３００のスクリプトライブラリ記憶領域３２２に格納されたスクリプトライブラリ１８０を利用して処理を行う。
【０１４７】
次に、サービス利用者端末１００は、コールバックに応じた関数を実行して、結果を表示する（ステップＳ１１）。
【０１４８】
なお、ＪＳＯＮ形式でデータが受け渡された場合には、ブラウザ１３３は、ＪＳＯＮ形式のデータに基づいてオブジェクトを構成して、続く処理を実行する。例えば、ＡＰスクリプト（プロジェクト）１７０の第二の処理内容であるプロジェクト一覧コールバック処理１７２のように、受け取ったＪＳＯＮ形式のデータに基づいてオブジェクト化し、オブジェクト化したデータを用いて表示用のビューオブジェクトを生成してレンダ処理する。
【０１４９】
また、サービス利用者端末１００は、アプリケーションプログラムの実行中に、データ格納装置２００にあるデータベース（本実施形態においてはチケット情報データベース）にアクセスする処理の指示を受け付けた場合、データ格納装置２００にデータアクセス要求を送信する（ステップＳ１２）。
【０１５０】
具体的には、ブラウザ部１３３は、アプリケーションプログラムの実行中に、データ格納装置２００に処理を要求するＤＳＤＡモジュール１９６を実行するＡＰスクリプト（チケット）１６５の実行指示を受け付けると、データ格納装置２００に処理を依頼するＸＭＬ（extensible Markup Language）ＨＴＴＰリクエストを作成して送信する。
【０１５１】
次に、データ格納装置２００は、ステップＳ１２で受け付けたデータアクセス要求に従って、データアクセスを行う（ステップＳ１３）。
【０１５２】
具体的には、データ操作部２３２は、ステップＳ１２で受け付けたデータアクセス要求に従って、データベース領域２２１にアクセスする。
【０１５３】
次に、データ格納装置２００は、ステップＳ１３でデータベースにアクセスして得た結果の情報を返却する（ステップＳ１４）。
【０１５４】
次に、サービス利用者端末１００は、ステップＳ１４で返却されたデータを使用して、アプリケーション処理の続きを実行する（ステップＳ１５）。
【０１５５】
以上が、本実施形態におけるプロジェクト管理処理の流れである。
【０１５６】
図１６と、図１７に、プロジェクト管理処理における画面表示の例を示す。
【０１５７】
図１６は、ＡＰスクリプト（プロジェクト）１７０のうち、第一の処理内容であるプロジェクト一覧処理１７１を実施した結果のプロジェクト一覧表示画面４００を示す。
【０１５８】
プロジェクト一覧画面４００は、プロジェクト名表示領域４１０を含む。プロジェクト名表示領域４１０には、既存のプロジェクトとしてＡＰ提供装置３００のデータベース領域３２４に格納されているプロジェクト情報がハイパーリンクを伴って全て表示される。図１６においては、音声合成サービスプロジェクト４０２と、予算管理プロジェクト４０３とが示されている。
【０１５９】
いずれかのプロジェクト名がクリックされると、ブラウザ部１３３は該当するプロジェクトの詳細を表示する処理、例えばＡＰスクリプト（プロジェクト）１７０の第三の処理内容であるプロジェクト表示処理１７３を起動する。
【０１６０】
図１７は、上記した音声合成サービスプロジェクト４０２の詳細表示画面において、当該プロジェクトにおいて発行されたチケット情報を表示させた結果得られたチケット表示画面４１０の例である。当該チケット表示画面４１０は、ＡＰスクリプト（チケット）１６５のうち、第一の処理内容であるチケット一覧処理１６６の結果表示される。
【０１６１】
チケット表示画面４１０は、チケット表示領域４１１と、新しいチケットを生成する指示の入力を受け付ける新しいチケット生成リンク表示４１４と、を含む。
【０１６２】
チケット表示領域４１１は、データ格納装置２００のデータベース領域２２１にあるチケット情報データベースに格納されたチケットの情報を全て表示する領域である。図１７においては、チケット表示領域４１１には、既存のチケットとして、音声が途切れるバグに関するチケット４１２と、音声が再生されないバグに関するチケット４１３と、が表示されている。
【０１６３】
ブラウザ部１３３は、チケット表示領域４１１のチケットに対して入力を受け付けると、入力を受け付けたチケットの詳細情報を表示する画面を表示する。
【０１６４】
また、ブラウザ部１３３は、新しいチケット生成リンク表示４１４に対して入力を受け付けると、新たなチケットを生成する処理、例えばＡＰスクリプト（チケット）１６５の第二の処理内容であるチケット生成処理１６７を実行する。
【０１６５】
以下、上記分散情報処理システム１を製造する際に用いる開発支援装置５００について、説明する。
【０１６６】
開発支援装置５００は、図１８に示すように、開発支援装置５００は、記憶部５２０と、制御部５３０と、入力部５４１と、出力部５４２と、通信部５４３と、を有する。
【０１６７】
記憶部５２０は、基準ＡＰ記憶領域５２１と、スクリプトライブラリ記憶領域５２２と、ＤＡモジュール記憶領域５２３と、ＡＰ実行場所記憶領域５２４と、モジュールリスト記憶領域５２５と、を備える。
【０１６８】
基準ＡＰ記憶領域５２１には、基準ＡＰが格納される。基準ＡＰとは、サービス利用者端末１００のブラウザ部１３３により読み込まれて処理を行うアプリケーションであるＡＰスクリプトおよびＡＰ３６０を生成する元となるアプリケーションをいう。基準ＡＰは、データアクセス処理を除きサービス利用者端末１００上において処理が完結するアプリケーションである。例えば、基準ＡＰは、ブラウザ部１３３により実行される想定で、JavaScript等により記述されたアプリケーションである。基準ＡＰに含まれる処理のうち、データベースにアクセスする処理、すなわち使用するデータのＣＲＵＤ（Create, Read, Update, Delete）に関する処理は、データベースが配置される装置が分散されている場合には他の装置に処理を依頼するが、アプリケーションに含まれるＣＲＵＤ以外のその他の処理は、他の装置に処理を依頼しないように記述される。
【０１６９】
図１９は、基準ＡＰの例であるプロジェクト管理ＡＰ５５０を示す図である。
【０１７０】
プロジェクト管理ＡＰ５５０の第一の処理内容であるＷｉｋｉ表示処理５５１を説明する。Ｗｉｋｉ表示処理５５１は、プロジェクト管理ＡＰ５５０を含むＨＴＭＬページに、Ｗｉｋｉデータベースから取得した情報を一覧するＷｉｋｉページを表示させるものである。
【０１７１】
プロジェクト管理ＡＰ５５０の第二の処理内容であるチケット一覧処理５５２を説明する。プロジェクト管理ＡＰ５５０のチケット一覧処理５５２は、プロジェクト管理ＡＰ５５０を含むＨＴＭＬページに、既に生成されたチケットの一覧情報を追加して表示させるものである。なお、当該処理においては、データ格納装置２００のデータベース領域２２１に格納されたチケット情報を取得して一覧情報を生成する処理が含まれる。
【０１７２】
プロジェクト管理ＡＰ５５０の第三の処理内容であるチケット生成処理５５３を説明する。プロジェクト管理ＡＰ５５０のチケット生成処理５５３は、チケット情報を一件生成して、プロジェクト管理ＡＰ５５０を含むＨＴＭＬページに、既に生成されたチケットの一覧情報を追加して表示させるものである。なお、当該処理においては、データ格納装置２００のデータベース領域２２１にチケット情報を新たに追加する処理と、データベース領域２２１に格納されたチケット情報を取得して一覧情報を生成する処理が含まれる。
【０１７３】
プロジェクト管理ＡＰ５５０の第四の処理内容であるプロジェクト一覧処理５５４を説明する。プロジェクト一覧処理５５４は、実行されると、データ格納装置２００に対して、既に生成されたプロジェクト管理情報の一覧情報を要求し、プロジェクト管理ＡＰ５５０を含むＨＴＭＬページに、要求により取得したプロジェクト管理情報一覧のデータを追加して表示させるものである。
【０１７４】
次に、プロジェクト管理ＡＰ５５０の第五の処理内容であるプロジェクト表示処理５５５を説明する。プロジェクト表示処理５５５は、実行されると、引数に指定された識別子を有するプロジェクトのプロジェクト管理情報をデータ格納装置２００に対して要求し、プロジェクト管理ＡＰ５５０を含むＨＴＭＬページに、要求により取得したプロジェクト管理情報を追加して表示させるものである。
【０１７５】
次に、プロジェクト管理ＡＰ５５０の第六の処理内容であるプロジェクト生成処理５５６を説明する。プロジェクト生成処理５５６は、実行されると、データ提供装置２００に対して、新規のプロジェクト管理情報を生成して格納するよう要求し、プロジェクト管理ＡＰ５５０を含むＨＴＭＬページに、要求したプロジェクト管理情報が追加された状態のプロジェクト一覧情報を表示させるものである。なお、当該処理においては、データ格納装置２００のデータベース領域２２１に新規のプロジェクト管理情報を格納させ、上記プロジェクト一覧処理５５４に処理を委譲して結果を表示する処理が含まれる。
【０１７６】
スクリプトライブラリ記憶領域５２２には、基準ＡＰの実行をサポートするユーティリティプログラム等を含むスクリプトライブラリ１８０が記憶される。
【０１７７】
スクリプトライブラリ１８０は、上述したサービス利用者端末１００のＡＰスクリプト記憶領域１２１に記憶されるスクリプトライブラリ１８０と同一のものである。
【０１７８】
ＤＡモジュール記憶領域５２３には、ＤＡモジュールが記憶される。なお、ＤＡモジュール記憶領域５２３に記憶されるＤＡモジュールは、後述するＤＡモジュール生成部５３２により生成されたＤＡモジュールである。本実施形態においては、ＤＡモジュールは、ＡＰ実行部３３２により解釈されて実行されるJavaScriptにより記述されるが、これに限らず、サービス利用者端末１００で実行されるＡＰスクリプトまたはＡＰＰ提供装置３００のＡＰ３６０から呼び出し可能であれば別の言語により記述されてもよい。
【０１７９】
なお、ＤＡモジュール記憶領域５２３に記憶されるＤＡモジュールには、サービス利用者端末１００に格納されるＤＳＤＡモジュール１９０と、ＡＰＤＡモジュール１９６と、ＡＰ提供装置３００に格納されるＤＡモジュール（プロジェクト）３７０と、ＤＡモジュール（Ｗｉｋｉ）３８０と、が含まれる。
【０１８０】
ＡＰ実行場所記憶領域５２４には、ＡＰ実行場所表５６０が格納される。
【０１８１】
ＡＰ実行場所表５６０は、ＡＰ生成部５３１が基準ＡＰ５５０からＡＰスクリプトおよびＡＰ３６０を生成する際に用いる表である。ＡＰ実行場所表５６０は、基準ＡＰ５５０の処理ごとに、処理を実行する場所と、処理を実行するために必要なアクセス情報であるＵＲＬと、を格納する。
【０１８２】
図２０に、ＡＰ実行場所表５６０の構成例を示す。
【０１８３】
ＡＰ実行場所表５６０は、処理名欄５６１と、実行場所欄５６２と、ＵＲＬ欄５６３と、を備える。
【０１８４】
処理名欄５６１には、基準ＡＰ５５０に含まれる処理の名称が格納される。
【０１８５】
実行場所欄５６２には、基準ＡＰ５５０の処理に対応する生成された処理が実行される場所が格納される。例えば、実行される場所として、サービス利用者端末１００またはＡＰ提供装置３００を指定する情報が格納される。
【０１８６】
ＵＲＬ欄５６３には、基準ＡＰ５５０の処理に対応する生成された処理を実行するＵＲＬが格納される。
【０１８７】
例えば、処理名欄５６１に「Ｗｉｋｉ表示処理」、実行場所欄５６２に「ＡＰ提供装置」、ＵＲＬ欄５６３に「http://earth:3000/wikis/show」が格納されているレコードは、基準ＡＰ５５０の「Ｗｉｋｉ表示処理」は、「ＡＰ提供装置」にて実施されるＡＰ３６０として生成され、その処理を実施するためのＵＲＬは「http://earth:3000/wikis/show」であること、を示す。
【０１８８】
モジュールリスト記憶領域５２５には、データ場所表６００と、モジュールリスト６１０と、が格納される。
【０１８９】
データ場所表６００は、ＤＡモジュール生成部５３２がＤＳＤＡモジュール１９０、ＡＰＤＡモジュール１９６、ＤＡモジュール（プロジェクト）３７０およびＤＡモジュール（Ｗｉｋｉ）３８０を生成する際に用いる表である。データ場所表６００は、データベースごとに、当該データベースの配置場所を示すＵＲＬを格納する。
【０１９０】
図２１に、データ場所表６００の構成例を示す。
【０１９１】
データ場所表６００は、データ名欄６０１と、配置場所（ＵＲＬ）欄６０２と、を備える。
【０１９２】
データ名欄６０１には、基準ＡＰ５５０の処理内でアクセスされるデータの名称（データベースの名称）が格納される。
【０１９３】
配置場所欄６０２には、基準ＡＰ５５０の処理内でアクセスされるデータが格納されたデータベースの配置場所を示す情報（ＵＲＬ）が格納される。
【０１９４】
モジュールリスト６１０は、ＤＡモジュール生成部５３２がＤＳＤＡモジュール１９０、ＡＰＤＡモジュール１９６、ＤＡモジュール（プロジェクト）３７０およびＤＡモジュール（Ｗｉｋｉ）３８０を生成する際に用いる表である。モジュールリスト６１０は、データベースごとに、当該データベースへアクセスするためのＤＡモジュールの名称を格納する。
【０１９５】
図２２に、モジュールリスト６１０の構成例を示す。
【０１９６】
モジュールリスト６１０は、データ名欄６１１と、モジュール名欄６１２と、を備える。
【０１９７】
データ名欄６１１には、基準ＡＰ５５０の処理内でアクセスされるデータの名称（データベースの名称）が格納される。
【０１９８】
モジュール名欄６１２には、ＤＡモジュールを特定する名称等の情報が格納される。
【０１９９】
図１８の説明に戻る。
【０２００】
制御部５３０は、ＡＰ生成部５３１と、ＤＡモジュール生成部５３２と、を備える。
【０２０１】
ＡＰ生成部５３１は、基準ＡＰ記憶領域５２１に格納された基準ＡＰ５５０と、ＡＰ実行場所記憶領域５２４に格納されたＡＰ実行場所表５６０と、モジュールリスト記憶領域５２５に格納されたデータ場所表６００と、を用いて、サービス利用者端末１００上で動作するＡＰスクリプトと、ＡＰ提供装置３００上で動作するＡＰ３６０と、を生成する。
【０２０２】
ＤＡモジュール生成部５３２は、モジュールリスト６１０と、データ場所表６００と、を用いて、ＤＳＤＡモジュール１９０と、ＡＰＤＡモジュール１９６と、ＤＡモジュール（プロジェクト）３７０と、ＤＡモジュール（Ｗｉｋｉ）３８０と、を生成する。
【０２０３】
入力部５４１は、操作者からの情報の入力を受け付ける。
【０２０４】
出力部５４２は、情報を出力する。
【０２０５】
本実施形態の開発支援装置５００のハードウェア構成を説明する。
【０２０６】
本実施形態においては、開発支援装置５００は、例えば、クライアントＰＣ（パーソナルコンピュータ）や、ワークステーション、サーバ装置、各種携帯電話端末、ＰＤＡ（Personal Digital Assistant）などの計算機である。
【０２０７】
開発支援装置５００は、図１４に示したサービス利用者端末１００と基本的に同様の構成を備える。ただし、通信装置１１６を備えない点において相違する。
【０２０８】
開発支援装置５００のＡＰ生成部５３１と、ＤＡモジュール生成部５３２と、は、開発支援装置５００における演算装置１１３に処理を行わせるプログラムによって実現される。
【０２０９】
このプログラムは、主記憶装置１１４または外部記憶装置１１５内に記憶され、実行にあたって主記憶装置１１４上にロードされ、演算装置１１３により実行される。
【０２１０】
また、開発支援装置５００の記憶部５２０は、開発支援装置５００における主記憶装置１１４または外部記憶装置１１５により実現される。
【０２１１】
開発支援装置５００の入力部５４１は、開発支援装置５００における入力装置１１１によって実現される。
【０２１２】
開発支援装置５００の出力部５４２は、開発支援装置５００における出力装置１１２によって実現される。
【０２１３】
次に、本実施形態における開発支援装置のＡＰ生成処理について、図２３に基づいて説明する。
【０２１４】
図２３は、ＡＰ生成処理の処理フローを示す図である。
【０２１５】
ＡＰ生成処理は、開発支援装置５００の入力部５４１が、処理の開始指示を受け付けることで実施される。
【０２１６】
まず、ＡＰ生成部５３１は、基準ＡＰ５５０に記載された最初の関数を対象の関数として特定する（ステップＳ１０１）。
【０２１７】
例えば、ＡＰ生成部５３１は、基準ＡＰ記憶領域５２１に格納された基準ＡＰ５５０を読み出し、記述された順に関数を読み出すと、その最初に記述された関数を対象関数として特定する。
【０２１８】
次に、ＡＰ生成部５３１は、ステップＳ１０１で特定した対象関数の実行場所を特定する（ステップＳ１０２）。
【０２１９】
具体的には、ＡＰ生成部５３１は、ステップＳ１０１で特定した対象関数の名称と、ＡＰ実行場所記憶領域５２４に格納されたＡＰ実行場所表５６０の処理名欄５６１の値とが一致するレコードを特定して、その実行場所欄５６２に格納された実行場所を特定する。
【０２２０】
次に、ＡＰ生成部５３１は、ステップＳ１０２にて特定した実行場所が利用者端末であるか否かを判定する（ステップＳ１０３）。
【０２２１】
実行場所が利用者端末でない場合（ステップＳ１０３にて「Ｎｏ」）、ＡＰ生成部５３１は、対象関数をＡＰ提供装置３００のＡＰ３６０として生成し、ＡＰ３６０を呼び出すためのスクリプトであるサービス利用者端末１００のＡＰスクリプト（呼出）１６０を生成する。そして、処理を後述するステップＳ１０８に進める（ステップＳ１０４）。
【０２２２】
具体的には、ＡＰ生成部５３１は、対象関数の処理内容をそのまま処理内容とするＡＰ３６０を基準ＡＰ記憶領域５２１に格納する。そして、ＡＰ生成部５３１は、当該ＡＰ３６０をサービス利用者端末１００のブラウザ部１３３から呼び出すための処理を定型に従って生成する。その際、ＡＰ実行場所表５６０のＵＲＬ欄５６３に格納されたＵＲＬを用いてＡＰ３６０を呼び出すように処理を生成する。生成した処理をＡＰスクリプト（呼出）１６０として基準ＡＰ記憶領域５２１に格納する。そして、処理を後述するステップＳ１０８に進める。
【０２２３】
実行場所が利用者端末である場合（ステップＳ１０３にて「Ｙｅｓ」）、ＡＰ生成部５３１は、対象関数の処理内容を検索して、アクセスするデータがＡＰ提供装置３００上に格納されるデータか否かを判定する（ステップＳ１０５）。
【０２２４】
具体的には、ＡＰ生成部５３１は、対象関数内の処理において、「find」、「find_all」、「save」、「destroy」等の所定の関数のうちいずれかの関数を実行している処理があれば、その関数実行を行うオブジェクトを特定する。そして、ＡＰ生成部５３１は、特定したオブジェクトの名称と、データ場所表６００のデータ名欄６０１に格納された値と、が対応するレコードをデータ場所表６００から特定し、その配置場所（ＵＲＬ）欄６０２に格納された値がＡＰ提供装置３００を指すものであるか否かを判定する。
【０２２５】
アクセスするデータがＡＰ提供装置３００上に格納されるデータではない場合（ステップＳ１０５にて「Ｎｏ」）、ＡＰ生成部５３１は、対象関数の処理内容を有するサービス利用者端末１００のＡＰスクリプトを生成する。そして、処理を後述するステップＳ１０８に進める（ステップＳ１０６）。
【０２２６】
具体的には、ＡＰ生成部５３１は、対象関数の処理内容をそのまま処理内容とするＡＰスクリプトを生成して基準ＡＰ記憶領域５２１に格納する。そして、処理を後述するステップＳ１０８に進める。
【０２２７】
アクセスするデータがＡＰ提供装置３００上に格納されるデータである場合（ステップＳ１０５にて「Ｙｅｓ」）、ＡＰ生成部５３１は、対象関数に基づいて、コールバック用関数を生成して、サービス利用者端末１００のＡＰスクリプトに追加する。そしてＡＰ生成部５３１は、対象関数を、サービス利用者端末１００のＡＰスクリプトに追加する（ステップＳ１０７）。
【０２２８】
具体的には、ＡＰ生成部５３１は、対象関数の処理内容を検索して、データアクセスを行う処理に続く処理以降に記載された処理を切り出して、コールバック用関数として生成する。そしてＡＰ生成部５３１は、生成したコールバック用関数を利用者端末１００のＡＰスクリプトに追加する。そして、ＡＰ生成部５３１は、対象関数のデータアクセスを行う処理より前に記載された処理を切り出して、サービス利用者端末１００のＡＰスクリプトとして生成する。そして、ＡＰ生成部５３１は、生成したＡＰスクリプトを基準ＡＰ記憶領域５２１に格納する。
【０２２９】
なお、対象関数の処理内容にループ制御（forループ制御）が含まれる場合には、図２４に示すループ変換処理フローに従って、ＡＰ生成部５３１はＡＰスクリプトを生成する。
【０２３０】
ここで、図２４のループ変換処理フローを説明する。
【０２３１】
まず、ＡＰ生成部５３１は、基準ＡＰ５５０の関数に含まれるforループブロックに対応する無名関数をＡＰスクリプトに追加する。そして、ＡＰ生成部５３１は、基準ＡＰ５５０の関数に含まれるforループブロックのループ変数を追加した無名関数の変数として追加する（ステップＳ１２１）。
【０２３２】
次に、ＡＰ生成部５３１は、基準ＡＰ５５０の関数に含まれるforループブロックに含まれる処理を、詳細ブロックに分割する（ステップＳ１２２）。
【０２３３】
具体的には、ＡＰ生成部５３１は、基準ＡＰ５５０の関数に含まれるforループブロックに含まれる処理の先頭行から、最初にＡＰ提供装置３００の処理を呼び出す処理が記載された行までを、第一の詳細ブロックとして特定する。そして、ＡＰ生成部５３１は、当該ＡＰ提供装置３００の処理を呼び出す処理が記載された行の次の行から、次にＡＰ提供装置３００の処理を呼び出す処理が記載された行までを第二の詳細ブロックとして特定する。同様に、ＡＰ生成部５３１は、forループブロックに含まれる処理の最終行に到るまで、forループブロックに含まれる処理を詳細ブロックに分割する。
【０２３４】
次に、ＡＰ生成部５３１は、ステップＳ１２２において、forループブロックが２以上の詳細ブロックに分割されたか否かを判定する（ステップＳ１２３）。
【０２３５】
forループブロックが２以上の詳細ブロックに分割されなかった場合（ステップＳ１２３にて「Ｎｏ」）、ＡＰ生成部５３１は、ステップＳ１２１で追加した無名関数に内部関数を追加する（ステップＳ１２４）。
【０２３６】
次に、ＡＰ生成部５３１は、内部関数の処理として、基準ＡＰ５５０の関数に含まれるforループブロックのループ継続条件と同様の継続条件を満たさない場合には当該内部関数の処理を終了させる終了判定処理を追加する（ステップＳ１２５）。
【０２３７】
次に、ＡＰ生成部５３１は、内部関数の処理として、基準ＡＰ５５０の関数に含まれるforループブロックの処理をすべて追加する（ステップＳ１２６）。
【０２３８】
次に、ＡＰ生成部５３１は、内部関数の処理の最後に、ループ変数をインクリメントする処理と、内部関数を呼び出す処理と、を追加し、ループ変換処理を終える（ステップＳ１２７）。
【０２３９】
forループブロックが２以上の詳細ブロックに分割された場合（ステップＳ１２３にて「Ｙｅｓ」）、ＡＰ生成部５３１は、ステップＳ１２１で追加した無名関数に内部関数と、分割された詳細ブロックの数より一少ない数のコールバック関数を追加する（ステップＳ１２８）。
【０２４０】
次に、ＡＰ生成部５３１は、内部関数の処理として、基準ＡＰ５５０の関数に含まれるforループブロックのループ継続条件と同様の継続条件を満たさない場合には当該内部関数の処理を終了させる終了判定処理を追加する（ステップＳ１２９）。
【０２４１】
次に、ＡＰ生成部５３１は、内部関数の処理として、基準ＡＰ５５０の関数に含まれるforループブロックの処理のうち、第一の詳細ブロックの処理を追加する（ステップＳ１３０）。なお、その際、ＡＰ生成部５３１は、ＡＰ提供装置３００の処理を呼び出す処理のパラメータに、第一のコールバック関数の関数名を追加する。
【０２４２】
次に、ＡＰ生成部５３１は、ステップＳ１２８にて追加した第一のコールバック関数に、第二の詳細ブロックの処理を追加する（ステップＳ１３１）。また、ステップＳ１２８にて二つ以上のコールバック関数が追加されている場合、第三，第四，・・・，第Ｎ（Ｎは三以上の自然数）の詳細ブロックの処理を、それぞれ第二，第三，・・・，第（Ｎ−１）のコールバック関数に追加する。なお、その際、ＡＰ生成部５３１は、ＡＰ提供装置３００の処理を呼び出すパラメータに、次に続くコールバック関数の関数名を追加する。
【０２４３】
次に、ＡＰ生成部５３１は、ステップＳ１３１にて追加した最後のコールバック関数の処理の最後に、ループ変数をインクリメントする処理と、内部関数を呼び出す処理と、を追加し、ループ変換処理を終える（ステップＳ１３２）。
【０２４４】
以上が、ループ変換処理のフローである。
【０２４５】
ＡＰ生成処理のフローの説明に戻る。
【０２４６】
次に、ＡＰ生成部５３１は、基準ＡＰ５５０の関数のうち、対象関数の次に記載された関数を新たに対象関数とし、制御をステップＳ１０２に戻す。基準ＡＰ５５０に、対象関数の次の関数が無かった場合、ＡＰ生成処理を終了する（ステップＳ１０８）。
【０２４７】
以上が、ＡＰ生成処理のフローである。
【０２４８】
このようなＡＰ生成処理を行うことで、サービス利用者端末１００上で動作するよう記載された基準ＡＰ５５０から、ＡＰ提供装置３００上で動作する処理を分離してＡＰスクリプトとＡＰ３６０とを生成することが可能となる。
【０２４９】
次に、本実施形態におけるＤＡモジュール生成処理のフローについて、図２５に基づき説明する。
【０２５０】
図２５は、ＤＡモジュール生成処理の流れを示すフロー図である。
【０２５１】
ＤＡモジュール生成処理は、開発支援装置５００の入力部５４１が、処理の開始指示を受け付けることで実施される。
【０２５２】
まず、ＤＡモジュール生成部５３２は、モジュールリスト６１０の先頭に記載されたモジュールを、生成対象ＤＡモジュールとして特定する（ステップＳ２０１）。
【０２５３】
具体的には、ＤＡモジュール生成部５３２は、モジュールリスト６１０に記載された先頭のデータベースについて、モジュール名欄６１２に記載された名称を有するＤＡモジュールを生成対象として特定する。
【０２５４】
次に、ＤＡモジュール生成部５３２は、ステップＳ２０１で特定した生成対象ＤＡモジュールの配置場所を特定し、サービス利用者端末１００からデータ格納装置２００に格納されたデータにアクセスするＤＳＤＡモジュール１９０と、サービス利用者端末１００からＡＰ提供装置３００に格納されたデータにアクセスするＡＰＤＡモジュール１９６と、ＡＰ提供装置３００からＡＰ提供装置３００に格納されたデータにアクセスするＤＡモジュール３７０、３８０と、を生成する（ステップＳ２０２）。
【０２５５】
具体的には、ＤＡモジュール生成部５３２は、ステップＳ２０１で特定した生成対象ＤＡモジュールについて生成する際に、生成対象のＤＡモジュールによってアクセスされるデータベースの配置場所に応じて、異なるアクセス方法を実装するＤＡモジュールを複数生成する。本実施形態においては、ＤＡモジュール生成部５３２は、生成対象ＤＡモジュールについて、サービス利用者端末１００からデータ格納装置２００に格納されたデータにアクセスするＤＳＤＡモジュール１９０と、サービス利用者端末１００からＡＰ提供装置３００に格納されたデータにアクセスするＡＰＤＡモジュール１９６と、ＡＰ提供装置３００からＡＰ提供装置３００に格納されたデータにアクセスするＤＡモジュール３７０、３８０と、の４パターンのアクセスに対応するＤＡモジュールを生成する。
【０２５６】
次に、ＤＡモジュール生成部５３２は、モジュールリスト６１０に次の対象モジュールとなるレコードがあるか否かを判定し、対象モジュールとなるレコードがなければ（「Ｎｏ」の場合）ＤＡモジュール生成処理を終了する（ステップＳ２０３）。
【０２５７】
対象モジュールとなるレコードがあれば（ステップＳ２０３で「Ｙｅｓ」）、ＤＡモジュール生成部５３２は、モジュールリスト６１０から次の対象モジュールを読み出して、新たに生成対象ＤＡモジュールとして特定し、ステップＳ２０２に制御を戻す。
【０２５８】
以上が、ＤＡモジュール生成処理の処理フローである。
【０２５９】
ＤＡモジュール生成処理を行うことで、一つのデータベースに対して、複数のアクセス方法でアクセスするＤＡモジュールを複数生成することができる。
【０２６０】
すなわち、ＡＰ提供装置３００が提供するデータベース（本実施形態においてはプロジェクト情報データベースとＷｉｋｉデータベース）を使用せず、データ格納装置２００に独自のプロジェクト情報データベースとＷｉｋｉデータベースを使用する利用者組織１０が存在する場合であっても、上記ＤＡモジュール生成処理によってプロジェクト情報データベースがデータ格納装置２００にある場合のＤＡモジュールも生成されるため、当該利用者組織１０に属するサービス利用者端末１００からも問題なくＡＰ提供装置３００が提供するアプリケーションサービスを利用することができる。
【０２６１】
以上が、第一の実施形態である。
【０２６２】
第一の実施形態によれば、アプリケーションプロバイダ組織３０は、当該アプリケーションサービスを提供する上でのノウハウや管理情報、プログラムといった非公開にしたい情報を含む処理を公開することなく、アプリケーションサービスをサービス利用者端末１００に提供することが可能となる。
【０２６３】
また、利用者組織１０は、第三者に知られたくない情報をアプリケーションプロバイダ組織３０に対して流出させてしまうことを防ぎつつ、アプリケーションプロバイダ組織３０が提供するアプリケーションサービスを受けることが可能となる。
【０２６４】
なお、データプロバイダ組織２０は、上記実施形態においては利用者組織１０に属する組織であるとしているが、これに限られない。すなわち、データプロバイダ組織２０は、利用者組織１０とは異なる独立した組織であってもよい。または、アプリケーションプロバイダ組織３０に属する組織であっても良い。
【０２６５】
続いて、本発明の第二の実施形態を説明する。
【０２６６】
本実施形態における分散情報処理システム１は、第一の実施形態における分散情報処理システム１と基本的に同様の構成を有する。
【０２６７】
ただし、第二の実施形態における分散情報処理システム１は、第一の実施形態における分散情報処理システム１と、以下の差異を有する。
【０２６８】
第二の実施形態における分散情報処理システム１は、データ提供装置２００に相当する装置として、サービス利用者端末１００の記憶部１２０に、データベース領域２２１に相当するデータベース領域を備え、制御部１３０に、データ操作部２３２に相当するデータ操作部を備える。また、ＡＰ提供装置３００の制御部３３０に、初期画面生成部２３１に相当する初期画面生成部を備える。
【０２６９】
また、開発支援装置５００が生成するＤＡモジュールは、ローカルデータベースアクセスをサポートするライブラリのＡＰＩ呼び出しを行うものとする。
【０２７０】
第二の実施形態におけるプロジェクト管理処理について、第一の実施形態におけるプロジェクト管理処理の処理フローとの差異を説明する。
【０２７１】
第二の実施形態におけるプロジェクト管理処理では、まず、サービス利用者端末１００のブラウザ部１３３は、ＡＰ提供装置３００に対して初期ページを要求する。そして、ＡＰ提供装置３００は、初期ページを生成する。次に、ＡＰ提供装置３００は、生成した初期ページをサービス利用者端末１００に送信する（ステップＳ１〜Ｓ３に相当する処理）。
【０２７２】
以降、ステップＳ４からステップＳ１１に相当する処理は、第一の実施形態と同様である。
【０２７３】
ステップＳ１２からステップＳ１４に相当する処理においては、サービス利用者端末１００は、アプリケーションプログラムの実行中に、サービス利用者端末１００にあるデータベース（本実施形態においてはチケット情報データベース）にアクセスする処理の指示を受け付けた場合、データ操作部にデータアクセス要求を送信し、データ操作部は、データアクセスを行い、アクセスして得た結果の情報を返却する。
【０２７４】
このような第二の実施形態によると、サービス利用者は、極めて機密性を保持すべき情報をアプリケーションプロバイダ組織３０およびデータプロバイダ組織２０に対して流出させてしまうことを防ぎつつ、アプリケーションプロバイダ組織３０が提供するアプリケーションサービスを利用することが可能となる。
【０２７５】
以上、実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々の変更が可能である。
【０２７６】
例えば、上記第一の実施形態の開発支援装置５００は、ＡＰ生成処理及びＤＡモジュール生成処理において、生成したプログラムを記憶部５２０に格納しているが、これに限られない。すなわち、開発支援装置５００は組織間ネットワーク２５０に接続可能な通信部５４３を備え、生成したプログラムを、ＡＰ提供装置３００の記憶部３２０に格納するようにしてもよい。
【０２７７】
このようにすることによって、生成したプログラムを稼働サーバに配信するのが容易になる。
【０２７８】
なお、分散情報処理システム１は、システムとして取引対象とするだけでなく、各装置や、各装置の動作を実現するプログラム部品単位で取引対象とすることも可能である。
【符号の説明】
【０２７９】
１：分散情報処理システム、１０：利用者組織、２０：データプロバイダ組織、３０：アプリケーションプロバイダ組織、１００：サービス利用者端末、１１１：入力装置、１１２：出力装置、１１３：演算装置、１１４：主記憶装置、１１５：外部記憶装置、１１６：通信装置、１１７：バス、１２０：記憶部、１２１：ＡＰスクリプト記憶領域、１２２：ＤＳＤＡモジュール記憶領域、１２３：ＡＰＤＡモジュール記憶領域、１３０：制御部、１３１：入力情報受付部、１３２：出力情報生成部、１３３：ブラウザ部、１４１：入力部、１４２：出力部、１４３：通信部、１５０：組織内ネットワーク、１６０：ＡＰスクリプト（呼出）、１６５：ＡＰスクリプト（チケット）、１７０：ＡＰスクリプト（プロジェクト）、１８０：スクリプトライブラリ、１９０：ＤＳＤＡモジュール、１９５：ＡＰＤＡモジュール、２００：データ格納装置、２２０：記憶部、２２１：データベース領域、２３０：制御部、２３１：初期画面生成部、２３２：データ操作部、２４３：通信部、２５０：組織間ネットワーク、３００：ＡＰ提供装置、３２０：記憶部、３２１：ＡＰ記憶領域、３２２：スクリプトライブラリ記憶領域、３２３：ＤＡモジュール記憶領域、３２４：データベース領域、３３０：制御部、３３１：ＡＰ利用受付部、３３２：ＡＰ実行部、３３３：データ操作部、３４１：入力部、３４２：出力部、３４３：通信部、３６０：ＡＰ、３７０：ＤＡモジュール（プロジェクト）、３８０：ＤＡモジュール（Ｗｉｋｉ）、５００：開発支援装置、５２０：記憶部、５２１：基準ＡＰ記憶領域、５２２：スクリプトライブラリ記憶領域、５２３：ＤＡモジュール記憶領域、５２４：ＡＰ実行場所記憶領域、５２５：モジュールリスト記憶領域、５３０：制御部、５３１：ＡＰ生成部、５３２：ＤＡモジュール生成部、５４１：入力部、５４２：出力部、５５０：基準ＡＰ、５６０：ＡＰ実行場所表、６００：データ場所表、６１０：モジュールリスト
【図１】
2010191908.tif 000003
【図２】
2010191908.tif 000004
【図３】
2010191908.tif 000005
【図４】
2010191908.tif 000006
【図５】
2010191908.tif 000007
【図６】
2010191908.tif 000008
【図７】
2010191908.tif 000009
【図８】
2010191908.tif 000010
【図９】
2010191908.tif 000011
【図１０】
2010191908.tif 000012
【図１１】
2010191908.tif 000013
【図１２】
2010191908.tif 000014
【図１３】
2010191908.tif 000015
【図１４】
2010191908.tif 000016
【図１５】
2010191908.tif 000017
【図１６】
2010191908.tif 000018
【図１７】
2010191908.tif 000019
【図１８】
2010191908.tif 000020
【図１９】
2010191908.tif 000021
【図２０】
2010191908.tif 000022
【図２１】
2010191908.tif 000023
【図２２】
2010191908.tif 000024
【図２３】
2010191908.tif 000025
【図２４】
2010191908.tif 000026
【図２５】
2010191908.tif 000027