図1は、本発明の実施形態における分散情報処理システム1を示す図である。
本実施形態における分散情報処理システム1は、サービス利用者端末100と、組織内ネットワーク150を介してサービス利用者端末100と接続可能なデータ格納装置200と、組織間ネットワーク250を介してサービス利用者端末100と接続可能なアプリケーション提供装置(以下、「AP提供装置」と記載)300と、を含む。
なお、組織間ネットワーク250は、通常はインターネット等の公衆通信網、WAN(Wide Area Network)またはVPN(Virtual Private Network)等の異組織間の通信網である。
組織内ネットワーク150は、通常はLAN(Local Area Network)等の利用者組織が管理する通信網である。ただし、これに限らず、組織内ネットワーク150は、インターネット等の公衆通信網、WAN(Wide Area Network)またはVPN(Virtual Private Network)等の異組織間の通信網であってもよい。
サービス利用者端末100は、利用者組織10に属する。
データ格納装置200は、データプロバイダ組織20に属しており、本実施形態においては、データプロバイダ組織20は利用者組織10に属する。
データ格納装置200は、データを保持し、保持するデータの参照や変更を要求に応じて実施するデータ管理サービスをサービス利用者端末100に提供する。
AP提供装置300は、アプリケーションプロバイダ組織30に属する。
AP提供装置300は、例えばプロジェクト管理や表計算等のアプリケーションサービスを、サービス利用者端末100からの要求に応じて提供する。
図2は、サービス利用者端末100の概略図である。図示するように、サービス利用者端末100は、記憶部120と、制御部130と、入力部141と、出力部142と、通信部143と、を有する。
記憶部120は、APスクリプト記憶領域121と、DSDAモジュール記憶領域122と、APDAモジュール記憶領域123と、を備える。
APスクリプト記憶領域121には、AP提供装置300から提供されるアプリケーションサービスを実現するアプリケーションプログラム(以下、「APスクリプト」と表記)が記憶される。
本実施形態においては、APスクリプトは、JavaScript(登録商標)により記述されるが、これに限らず、サービス利用者端末100に搭載された図示しない実行エンジン上で実行されるクライアントサイドスクリプトであればよい。
本実施形態においては、APスクリプト記憶領域121には、APスクリプト(呼出)160と、APスクリプト(チケット)165と、APスクリプト(プロジェクト)170と、ライブラリスクリプト180と、が格納される。
APスクリプト(呼出)160は、図3に示すように、ブラウザ部133により実行されるJavaScriptの関数である。
APスクリプト(呼出)160の処理内容であるWiki表示処理161を説明する。Wiki表示処理161は、APスクリプト(呼出)160を含むHTML(Hyper Text Markup Language)ページに、「script」要素を追加するものである。なお、当該script要素は、実行されると、AP提供装置300に対して、引数に与えられた情報に該当するWikiページを要求し、受け取ったWikiページを当該HTMLページに表示させるものである。
APスクリプト(チケット)165は、図4に示すように、ブラウザ部133により実行されるJavaScriptの関数である。
APスクリプト(チケット)165の第一の処理内容であるチケット一覧処理166を説明する。APスクリプト(チケット)165のチケット一覧処理166は、APスクリプト(チケット)165を含むHTMLページに既に生成されたチケット(本実施形態におけるチケットとは、バグ情報等のレポート一件をいう。)の一覧情報を追加して表示させる処理である。なお、当該処理においては、データ格納装置200のデータベース領域221に格納されたチケット情報を取得して一覧情報を生成する処理が含まれる。
APスクリプト(チケット)165の第二の処理内容であるチケット生成処理167を説明する。APスクリプト(チケット)165のチケット生成処理167は、チケット情報を一件生成して、APスクリプト(チケット)165を含むHTMLページに、既に生成されたチケットの一覧情報を追加して表示させるものである。なお、当該処理においては、データ格納装置200のデータベース領域221にチケット情報を新たに追加する処理と、データベース領域221に格納されたチケット情報を取得して一覧情報を生成する処理が含まれる。
APスクリプト(プロジェクト)170は、図5に示すように、ブラウザ部133により実行されるJavaScriptの関数である。
APスクリプト(プロジェクト)170の第一の処理内容であるプロジェクト一覧処理171を説明する。プロジェクト一覧処理171は、実行されると、AP提供装置300に対して、既に生成されたプロジェクト管理情報の一覧情報を要求するものである。なお、当該処理においては、AP提供装置300のデータベース領域324に格納されたプロジェクト情報を要求する処理が含まれる。
次に、APスクリプト(プロジェクト)170の第二の処理内容であるプロジェクト一覧コールバック処理172を説明する。プロジェクト一覧コールバック処理172は、プロジェクト一覧処理171が実行された後に、AP提供装置300から呼び出されるコールバック処理である。プロジェクト一覧コールバック処理172は、APスクリプト(プロジェクト)170を含むHTMLページに、引数に渡されたプロジェクト管理情報一覧のデータ(例えばJSON(JavaScript Object Notation)形式のデータ)を追加して表示させるものである。なお、当該処理においては、AP提供装置300のデータベース領域324に格納されたプロジェクト管理情報を受信して一覧情報を生成する処理が含まれる。
次に、APスクリプト(プロジェクト)170の第三の処理内容であるプロジェクト表示処理173を説明する。プロジェクト表示処理173は、実行されると、AP提供装置300に対して、特定のプロジェクト管理情報を要求する処理である。なお、当該処理においては、AP提供装置300のデータベース領域324に格納された特定のプロジェクト管理情報を要求する処理が含まれる。
次に、APスクリプト(プロジェクト)170の第四の処理内容であるプロジェクト表示コールバック処理174を説明する。プロジェクト表示コールバック処理174は、プロジェクト表示処理173が実行された後に、AP提供装置300から呼び出されるコールバック処理である。プロジェクト表示コールバック処理173は、APスクリプト(プロジェクト)170を含むHTMLページに、引数に渡された特定のプロジェクト管理情報のデータ(例えばJSON(JavaScript Object Notation)形式のデータ)を追加して表示させる処理である。なお、当該処理においては、AP提供装置300のデータベース領域324に格納された特定のプロジェクト管理情報を受信して表示情報を生成する処理が含まれる。
次に、APスクリプト(プロジェクト)170の第五の処理内容であるプロジェクト生成処理175を説明する。プロジェクト生成処理175は、実行されると、AP提供装置300に対して、新規のプロジェクト管理情報を生成して格納するよう要求する処理である。なお、当該処理においては、AP提供装置300のデータベース領域324に新規のプロジェクト管理情報を格納させ、その結果を表示する処理が含まれる。
次に、APスクリプト(プロジェクト)170の第六の処理内容であるプロジェクト生成コールバック処理176を説明する。プロジェクト生成コールバック処理176は、プロジェクト生成処理175が実行された後に、AP提供装置300から呼び出されるコールバック処理である。プロジェクト生成コールバック処理176は、実行されると、上記プロジェクト一覧処理171に処理を委譲する処理である。
スクリプトライブラリ180は、図6に示すように、ブラウザ部133により実行されるJavaScriptの関数である。
スクリプトライブラリ180には、APスクリプトの実行をサポートするユーティリティプログラム等を含む処理が含まれる。
例えば、ユーティリティプログラムには、画面描画プログラム等種々のAPI(Application Program Interface)が含まれる。
本実施形態におけるスクリプトライブラリ180に含まれる処理のうち、第一の処理内容である画面構成処理181を説明する。画面構成処理181は、スクリプトライブラリ180を含むHTMLページに、引数で渡されたHTMLを追加して画面を構成する処理である。
スクリプトライブラリ180の第二の処理内容である処理委譲処理182を説明する。処理委譲処理182は、スクリプトライブラリ180を含むHTMLページに含まれる他の関数の名称を引数として受け取り、引数に指定された名称の関数を実行する処理である。
DSDAモジュール記憶領域122には、データ提供装置200に格納されたデータベースへアクセスするためのプログラムモジュール(DSDAモジュール190)が記憶される。
DSDAモジュール190とは、データアクセス用のプログラムモジュールのうち、データプロバイダ組織20が管理するデータ格納装置200に格納されたデータにアクセスするためのプログラムモジュールをいう。
DSDAモジュール190は、図7に示すように、ブラウザ部133により実行されるJavaScriptの関数である。
本実施形態においては、DSDAモジュール190は、JavaScriptにより記述されるが、これに限らず、サービス利用者端末100に搭載されたブラウザ部133(後述)上で実行されるクライアントサイドスクリプトであればよい。
DSDAモジュール190の第一の処理内容であるチケットオブジェクト生成処理191を説明する。チケットオブジェクト生成処理191は、引数に指定された名称を有するデータベースアクセス用のオブジェクトを生成する処理である。本実施形態においては、データ格納装置200に対して接続を行うデータベースアクセスオブジェクトを生成する処理が含まれる。
DSDAモジュール190の第二の処理内容である指定チケット取得処理192を説明する。指定チケット取得処理192は、データベースアクセスオブジェクトを介してチケット情報を格納するデータベースに接続して、引数に指定された情報を識別子として有するレコードを取得する処理である。本実施形態においては、データ格納装置200に対して接続を行い、データベース領域221に格納されたチケット情報を取得する処理を含む。
DSDAモジュール190の第三の処理内容である全チケット取得処理193を説明する。全チケット取得処理193は、データベースアクセスオブジェクトを介してチケット情報を格納するデータベースに接続して、格納された全レコードを取得する処理である。本実施形態においては、データ格納装置200に対して接続を行い、データベース領域221に格納された全部のチケット情報を取得する処理が含まれる。
DSDAモジュール190の第四の処理内容であるチケット格納処理194を説明する。チケット格納処理194は、データベースアクセスオブジェクトを介してチケット情報を格納するデータベースに接続して、レコードを格納する処理である。本実施形態においては、データ格納装置200に対して接続を行い、データベース領域221にチケット情報を格納し、当該チケット情報を識別する識別子を取得する処理が含まれる。
DSDAモジュール190の第五の処理内容であるチケット削除処理195を説明する。チケット削除処理195は、データベースアクセスオブジェクトを介してチケット情報を格納するデータベースに接続して、識別子で識別されるレコードを削除する処理である。本実施形態においては、データ格納装置200に対して接続を行い、データベース領域221に格納されたチケット情報から識別子で識別されるレコードを削除する処理が含まれる。
APDAモジュール記憶領域123には、AP提供装置300から提供されるアプリケーションサービスを実行する際に必要となるデータアクセス用のプログラムモジュール(APDAモジュール196)が記憶される。
APDAモジュール196とは、データアクセス用のプログラムモジュールのうち、アプリケーションプロバイダ組織30が管理するAP提供装置300に格納されたデータにアクセスするためのプログラムモジュールをいう。
APDAモジュール196は、図8に示すように、ブラウザ部133により解釈されて実行されるJavaScriptの関数である。
本実施形態においては、APDAモジュール196は、JavaScriptにより記述されるが、これに限らず、サービス利用者端末100に搭載されたブラウザ部133(後述)上で実行されるクライアントサイドスクリプトであればよい。
APDAモジュール196の第一の処理内容である指定プロジェクト取得処理197を説明する。指定プロジェクト取得処理197は、引数に指定された情報を識別子として有するプロジェクトの情報を取得するスクリプトを、APDAモジュール196を含むHTMLページに追加する処理である。本実施形態においては、上記スクリプトは、AP提供装置300に対して接続を行い、データベース領域324に格納されたプロジェクト情報のうち引数に指定された情報を識別子として有するプロジェクトの情報を取得する処理が含まれる。
APDAモジュール196の第二の処理内容である全プロジェクト取得処理198を説明する。全プロジェクト取得処理198は、全プロジェクトの情報を取得するスクリプトを、APDAモジュール196を含むHTMLページに追加する処理である。本実施形態においては、上記スクリプトは、AP提供装置300に対して接続を行い、データベース領域324に格納された全部のプロジェクト情報を取得する処理が含まれる。
APDAモジュール196の第三の処理内容であるプロジェクト格納処理199を説明する。プロジェクト格納処理199は、データベースアクセスオブジェクトを介してチケット情報を格納するデータベースに接続して、レコードを格納する処理である。本実施形態においては、データ格納装置200に対して接続を行い、データベース領域221にチケット情報を格納し、当該チケット情報を識別する識別子を取得する処理が含まれる。
制御部130は、入力情報受付部131と、出力情報生成部132と、ブラウザ部133と、を備える。
入力情報受付部131は、後述する入力部141を介して入力された情報を受け付ける。
出力情報生成部132は、出力する情報と、画面レイアウトと、を組み合わせて出力画面を構成し、後述する出力部142に表示させる。
ブラウザ部133は、後述する通信部143を介して組織間ネットワーク250又は組織内ネットワーク150に接続し、各ネットワークに接続された装置と通信を行う。また、利用者の操作を入力情報受付部131を介して受け付け、利用者に提示する情報を出力情報生成部132に依頼して出力する。
ブラウザ部133は、さらに、APスクリプト記憶領域121と、DSDAモジュール記憶領域122と、APDAモジュール記憶領域123と、に格納されたプログラムモジュールを解釈して実行する実行エンジンの機能を備える。
入力部141は、操作者からの情報の入力を受け付ける。
出力部142は、情報を出力する。
通信部143は、組織間ネットワーク250および組織内ネットワーク150を介して他の機器に接続し、接続した他の機器に対して情報の送信を行い、接続した他の機器から送信された情報の受信を行う。
図9は、データ格納装置200の概略図である。図示するように、データ格納装置200は、記憶部220と、制御部230と、通信部243と、を有する。
記憶部220は、データベース領域221を含む。
データベース領域221には、AP提供装置300から提供されるアプリケーションサービスの実行に必要なデータを格納するデータベースが記憶される。
制御部230は、初期画面生成部231と、データ操作部232と、通信部243と、を備える。
初期画面生成部231は、サービス利用者端末100から、AP提供装置300が提供するアプリケーションの利用依頼を受け付ける。利用依頼を受け付けると、初期画面生成部231は、利用依頼のあったアプリケーションを開始するためのキー情報をサービス利用者端末100に送信する。
本実施形態においては、初期画面生成部231は、AP提供装置300のアプリケーションの利用要求を受け付けるURI(Uniform Resource Identifier)をキー情報とする。初期画面生成部231は、キー情報を含む情報をサービス利用者端末100に送信する。
データ操作部232は、サービス利用者端末100から、指定されたデータの入出力要求を受け付ける。データ操作部232は、指定されたデータの入出力要求を受け付けると、記憶部220のデータベース領域221に対して、指定されたデータの入出力を行う。
通信部243は、組織内ネットワーク150を介して他の機器に接続し、接続した他の機器に対して情報の送信を行い、接続した他の機器から送信された情報の受信を行う。
図10は、AP提供装置300の概略図である。図示するように、AP提供装置300は、記憶部320と、制御部330と、入力部341と、出力部342と、通信部343と、を有する。
記憶部320は、AP記憶領域321と、スクリプトライブラリ記憶領域322と、DAモジュール記憶領域323と、データベース領域324と、を備える。
AP記憶領域321には、サービス利用者端末100に対して提供するアプリケーションサービスのうち、一部または全部の処理を実行するためのアプリケーションプログラム(AP360)が記憶される。
本実施形態においては、AP360は、図11に示すように、AP実行部332により実行されるJavaScriptにより記述されるが、これに限らず、サービス利用者端末100上で実行されるAPスクリプトと同一のプログラム言語で記載されたスクリプトであればよい。
AP360の処理内容であるWiki表示処理361を説明する。Wiki表示処理361は、AP実行部332により実行されると、AP提供装置300のデータベース領域324に格納されたWiki情報を格納するデータベースに接続して、引数に指定された識別子で識別されるWiki情報を取得して表示情報を生成するものである。
また、Wiki表示処理361は、生成した表示情報を画面に表示するようサービス利用者端末100に対して指示するものである。なお、当該処理においては、サービス利用者端末100に対して表示するよう指示する際に、スクリプトライブラリ180の画面構成処理181をコールバックする処理が含まれている。
スクリプトライブラリ記憶領域322には、APスクリプトの実行をサポートするユーティリティプログラム等を含むスクリプトライブラリ180が記憶される。
スクリプトライブラリ180は、上述したサービス利用者端末100のAPスクリプト記憶領域121に記憶されるスクリプトライブラリ180と同一のものである。
DAモジュール記憶領域323には、AP提供装置300の後述するデータベース領域324に格納されたデータにAP360がアクセスする際に必要となるデータアクセス用のプログラムモジュール(DAモジュール)が記憶される。なお、DAモジュールには、DAモジュール(プロジェクト)370と、DAモジュール(Wiki)380と、が含まれる。
DAモジュールとは、データアクセス用のプログラムモジュールのうち、AP提供装置300に格納されたデータにアクセスするためのプログラムモジュールをいう。
本実施形態においては、DAモジュール(プロジェクト)370は、図12に示すように、AP実行部332により実行されるJavaScriptにより記述されるが、これに限らず、APスクリプトから呼び出し可能に記述されていれば別の言語により記述されてもよい。
DAモジュール(プロジェクト)370の第一の処理内容であるプロジェクトオブジェクト生成処理371を説明する。プロジェクトオブジェクト生成処理371は、引数に指定された名称を有するデータベースアクセス用のオブジェクトを生成する処理である。本実施形態においては、データベース領域324の図示しないプロジェクト情報データベースに対して接続を行うデータベースアクセスオブジェクトを生成する処理が含まれる。
DAモジュール(プロジェクト)370の第二の処理内容である指定プロジェクト取得処理372を説明する。指定プロジェクト取得処理372は、データベースアクセスオブジェクトを介して、プロジェクト情報を格納するデータベースに接続して、引数に指定された情報を識別子として有するレコードを取得する処理である。本実施形態においては、プロジェクト情報データベースに格納されたプロジェクト情報を取得する処理が含まれる。
DAモジュール(プロジェクト)370の第三の処理内容である全プロジェクト取得処理373を説明する。全プロジェクト取得処理373は、データベースアクセスオブジェクトを介してプロジェクト情報を格納するデータベースに接続して、格納された全レコードを取得する処理である。本実施形態においては、プロジェクト情報データベースに格納された全部のプロジェクト情報を取得する処理が含まれる。
DAモジュール(プロジェクト)370の第四の処理内容であるプロジェクト格納処理374を説明する。プロジェクト格納処理374は、データベースアクセスオブジェクトを介してプロジェクト情報を格納するデータベースに接続して、レコードを格納する処理である。本実施形態においては、プロジェクト情報データベースにプロジェクト情報を格納し、当該チケット情報を識別する識別子を取得する処理が含まれる。
DAモジュール(プロジェクト)370の第五の処理内容であるプロジェクト削除処理375を説明する。プロジェクト削除処理375は、データベースアクセスオブジェクトを介してプロジェクト情報を格納するデータベースに接続して、識別子で識別されるレコードを削除する処理である。本実施形態においては、プロジェクト情報データベースに格納されたプロジェクト情報から識別子で識別されるレコードを削除する処理が含まれる。
DAモジュール(Wiki)380は、図13に示すように、AP実行部332により実行されるJavaScriptにより記述されるが、これに限らず、APスクリプトから呼び出し可能に記述されていれば別の言語により記述されてもよい。
DAモジュール(Wiki)380の第一の処理内容であるWikiオブジェクト生成処理381を説明する。Wikiオブジェクト生成処理381は、引数に指定された名称を有するデータベースアクセス用のオブジェクトを生成する処理である。本実施形態においては、データベース領域324の図示しないWiki情報データベースに対して接続を行うデータベースアクセスオブジェクトを生成する処理が含まれる。
DAモジュール(Wiki)380の第二の処理内容である指定Wiki取得処理382を説明する。指定Wiki取得処理382は、データベースアクセスオブジェクトを介してWiki情報を格納するデータベースに接続して、引数に指定された情報を識別子として有するレコードを取得する処理である。本実施形態においては、Wiki情報データベースに格納されたWiki情報を取得する処理が含まれる。
DAモジュール(Wiki)380の第三の処理内容である全Wiki取得処理383を説明する。全Wiki取得処理383は、データベースアクセスオブジェクトを介してWiki情報を格納するデータベースに接続して、格納された全レコードを取得する処理である。本実施形態においては、Wiki情報データベースに格納された全部のWiki情報を取得する処理が含まれる。
DAモジュール(Wiki)380の第四の処理内容であるWiki格納処理384を説明する。Wiki格納処理384は、データベースアクセスオブジェクトを介してWiki情報を格納するデータベースに接続して、レコードを格納する処理である。本実施形態においては、Wiki情報データベースにWiki情報を格納し、当該Wiki情報を識別する識別子を取得する処理が含まれる。
DAモジュール(Wiki)380の第五の処理内容であるWiki削除処理385を説明する。Wiki削除処理385は、データベースアクセスオブジェクトを介してWiki情報を格納するデータベースに接続して、識別子で識別されるレコードを削除する処理である。本実施形態においては、Wiki情報データベースに格納されたWiki情報から識別子で識別されるレコードを削除する処理が含まれる。
データベース領域324には、AP提供装置300が提供するアプリケーションサービスの実行に必要なデータを格納するデータベースが記憶される。
制御部330は、AP利用受付部331と、AP実行部332と、データ操作部333と、を備える。
AP利用受付部331は、AP記憶領域321に格納されたアプリケーションプログラムを開始するためのキー情報を、サービス利用者端末100から受け付ける。
AP利用受付部331は、サービス利用者端末100からキー情報を受け付けると、当該アプリケーションプログラムのうちサービス利用者端末100側で動作するプログラムを、AP記憶領域321と、スクリプトライブラリ記憶領域322と、DAモジュール記憶領域323と、の中から特定する。そして、AP利用受付部331は、特定したプログラムをサービス利用者端末100に送信する。
AP実行部332は、AP記憶領域321と、スクリプトライブラリ記憶領域322と、DAモジュール記憶領域323と、データベース領域324と、に格納されたアプリケーションプログラムを実行する。
データ操作部333は、サービス利用者端末100またはAP提供装置300自身から指定されたデータの入出力要求を受け付ける。データ操作部333は、指定されたデータの入出力要求を受け付けると、記憶部320のデータベース領域324に対して、指定されたデータの入出力を行う。
入力部341は、操作者からの情報の入力を受け付ける。
出力部342は、情報を出力する。
通信部343は、組織間ネットワーク250を介して他の機器に接続し、接続した他の機器に対して情報の送信を行い、接続した他の機器から送信された情報の受信を行う。
図14は、本実施形態におけるサービス利用者端末100のハードウェア構成を示す図である。
本実施形態においては、サービス利用者端末100は、例えば、クライアントPC(パーソナルコンピュータ)や、ワークステーション、サーバ装置、各種携帯電話端末、PDA(Personal Digital Assistant)などの計算機である。
サービス利用者端末100は、入力装置111と、出力装置112と、演算装置113と、主記憶装置114と、外部記憶装置115と、通信装置116と、それぞれの装置を互いに接続するバス117と、を有する。
入力装置111は、例えばキーボードやマウス、あるいはタッチペン、その他ポインティングデバイスなどの入力を受け付ける装置である。
出力装置112は、例えばディスプレイなどの、表示を行う装置である
演算装置113は、例えばCPU(Central Processing Unit)などの演算装置である。
主記憶装置114は、例えばRAM(Random Access Memory)などのメモリ装置である。
外部記憶装置115は、例えばハードディスク装置やフラッシュメモリなどの不揮発性記憶装置である。
通信装置116は、アンテナを介して無線通信を行う無線通信ユニット等の通信装置である。
サービス利用者端末100の入力情報受付部131と、出力情報生成部132と、ブラウザ部133と、は、サービス利用者端末100の演算装置113に処理を行わせるプログラムによって実現される。
このプログラムは、主記憶装置114または外部記憶装置115内に記憶され、実行にあたって主記憶装置114上にロードされ、演算装置113により実行される。
また、サービス利用者端末100の記憶部120は、サービス利用者端末100の主記憶装置114または外部記憶装置115により実現される。
サービス利用者端末100の入力部141は、サービス利用者端末100の入力装置111によって実現される。
サービス利用者端末100の出力部142は、サービス利用者端末100の出力装置112によって実現される。
サービス利用者端末100の通信部143は、サービス利用者端末100の通信装置116によって実現される。
また、データ格納装置200と、AP提供装置300とは、基本的に、サービス利用者端末100と同様のハードウェア構成を備える。
ただし、データ格納装置200については、入力装置111と出力装置112とを備えない構成であってもよい。
また、データ格納装置200においては、初期画面生成部231と、データ操作部232と、は、データ格納装置200の演算装置113に処理を行わせるプログラムによって実現される。
また、AP提供装置300においては、AP利用受付部331と、AP実行部332と、データ操作部333と、は、AP提供装置300の演算装置113に処理を行わせるプログラムによって実現される。
次に、本実施形態におけるプロジェクト管理処理について、図15に基づいて説明する。
図15は、プロジェクト管理処理の処理フローを示す図である。
まずは、プロジェクト管理処理におけるアプリケーションサービスを開始するための開始フェーズ(ステップS1〜ステップS7まで)について説明する。
プロジェクト管理処理は、サービス利用者端末100のブラウザ部133が、入力情報受付部131を介して利用者から開始指示を受け付けることで開始される。
まず、サービス利用者端末100のブラウザ部133は、データ格納装置200に対して初期ページを要求する(ステップS1)。
具体的には、ブラウザ部133に指定されたURL(Uniform Resource Locator)に対して、ブラウザ部133はHTTP(Hypertext Transfer Protocol)リクエストを送信する。なお、当該URLには、利用者が利用したいアプリケーションサービスを識別する識別子等の情報が含まれている。
次に、データ格納装置200は、初期ページを生成する(ステップS2)。
具体的には、初期画面生成部231は、ステップS1で送信されたURLに含まれるアプリケーションサービスを識別する識別子に対応するAP提供装置300のURIを含むHTMLページを初期ページとして生成する。
次に、データ格納装置200は、生成した初期ページをサービス利用者端末100に送信する(ステップS3)。
具体的には、初期画面生成部231は、ステップS2で生成したHTMLをHTTPレスポンスとしてサービス利用者端末100に送信する。
次に、ステップS3で送信された初期ページを、サービス利用者端末100が実行する(ステップS4)。
具体的には、ブラウザ部133は、ステップS3にて送信されたHTTPレスポンスからHTMLを取得し、HTMLに基づいて画面を構成して出力情報生成部132を介して表示する。その際、ブラウザ部133は、当該HTMLページに含まれるAP提供装置300のURIを取得する。
次に、サービス利用者端末100は、AP提供装置300に対して、アプリケーションプログラムの開始要求を送信する(ステップS5)。
具体的には、ブラウザ部133は、ステップS4にて取得したAP提供装置300のURIに対して、HTTPリクエストを送信する。
次に、AP提供装置300は、要求のあったアプリケーションプログラムをサービス利用者端末100へ配信する(ステップS6)。
具体的には、AP利用受付部331は、ステップS5において送信されたHTTPリクエストに含まれるURIに対応するアプリケーションサービスを実現するのに必要なAPスクリプト(チケット)160と、APスクリプト(プロジェクト)165と、スクリプトライブラリ180と、DSDAモジュール190と、APDAモジュール196とを特定する。そして、AP利用受付部331は、特定した各モジュールを含むアプリケーションプログラムをサービス利用者端末100へ配信する。
次に、サービス利用者端末100は、ステップS6において配信されたアプリケーションプログラムの実行を開始する(ステップS7)。
ここまでが、プロジェクト管理処理におけるアプリケーションサービスを開始するための開始フェーズである。
次に、プロジェクト管理処理における実行フェーズを説明する。
サービス利用者端末100は、アプリケーションプログラムの実行中に、AP提供装置300側で実行する処理の指示を受け付けた場合、AP提供装置300に関数実行要求を送信する(ステップS8)。
具体的には、ブラウザ部133は、アプリケーションプログラムの実行中に、AP提供装置300に処理を要求するAPスクリプト(呼出)160またはAPDAモジュール196の実行指示を受け付けると、AP提供装置300に処理を依頼するHTTPリクエストを作成して送信する。その際、各処理において指定されたURIに対してHTTPリクエストを送信する。
次に、AP提供装置300は、関数実行要求を受け付けると、実行要求のある関数を実行する(ステップS9)。
具体的には、AP実行部332は、受け付けたURIに対応付けられたAP360またはDAモジュール(プロジェクト)370の処理の実行を開始する。AP360の処理を実施する場合は、AP実行部332は、DAモジュール(Wiki)380を介してデータベース領域324にアクセスして所定のデータ操作を行う。
次に、AP提供装置300は、サービス利用者端末100に対して所定の関数をコールバックする(ステップS10)。
具体的には、AP360の処理を行った場合には、AP実行部332は、構成したHTMLを表示するようにコールバックし、DAモジュール(プロジェクト)370の処理を行った場合には、取得したデータをJSON形式に成形してコールバックする。その際、AP実行部332は、AP360の実行要求URIにパラメータとして付加されたコールバック関数名称を、呼び出し元のアプリケーションプログラムの名称と結合させることで、コールバックする関数の名称を特定する。また、AP実行部332は、AP提供装置300のスクリプトライブラリ記憶領域322に格納されたスクリプトライブラリ180を利用して処理を行う。
次に、サービス利用者端末100は、コールバックに応じた関数を実行して、結果を表示する(ステップS11)。
なお、JSON形式でデータが受け渡された場合には、ブラウザ133は、JSON形式のデータに基づいてオブジェクトを構成して、続く処理を実行する。例えば、APスクリプト(プロジェクト)170の第二の処理内容であるプロジェクト一覧コールバック処理172のように、受け取ったJSON形式のデータに基づいてオブジェクト化し、オブジェクト化したデータを用いて表示用のビューオブジェクトを生成してレンダ処理する。
また、サービス利用者端末100は、アプリケーションプログラムの実行中に、データ格納装置200にあるデータベース(本実施形態においてはチケット情報データベース)にアクセスする処理の指示を受け付けた場合、データ格納装置200にデータアクセス要求を送信する(ステップS12)。
具体的には、ブラウザ部133は、アプリケーションプログラムの実行中に、データ格納装置200に処理を要求するDSDAモジュール196を実行するAPスクリプト(チケット)165の実行指示を受け付けると、データ格納装置200に処理を依頼するXML(extensible Markup Language)HTTPリクエストを作成して送信する。
次に、データ格納装置200は、ステップS12で受け付けたデータアクセス要求に従って、データアクセスを行う(ステップS13)。
具体的には、データ操作部232は、ステップS12で受け付けたデータアクセス要求に従って、データベース領域221にアクセスする。
次に、データ格納装置200は、ステップS13でデータベースにアクセスして得た結果の情報を返却する(ステップS14)。
次に、サービス利用者端末100は、ステップS14で返却されたデータを使用して、アプリケーション処理の続きを実行する(ステップS15)。
以上が、本実施形態におけるプロジェクト管理処理の流れである。
図16と、図17に、プロジェクト管理処理における画面表示の例を示す。
図16は、APスクリプト(プロジェクト)170のうち、第一の処理内容であるプロジェクト一覧処理171を実施した結果のプロジェクト一覧表示画面400を示す。
プロジェクト一覧画面400は、プロジェクト名表示領域410を含む。プロジェクト名表示領域410には、既存のプロジェクトとしてAP提供装置300のデータベース領域324に格納されているプロジェクト情報がハイパーリンクを伴って全て表示される。図16においては、音声合成サービスプロジェクト402と、予算管理プロジェクト403とが示されている。
いずれかのプロジェクト名がクリックされると、ブラウザ部133は該当するプロジェクトの詳細を表示する処理、例えばAPスクリプト(プロジェクト)170の第三の処理内容であるプロジェクト表示処理173を起動する。
図17は、上記した音声合成サービスプロジェクト402の詳細表示画面において、当該プロジェクトにおいて発行されたチケット情報を表示させた結果得られたチケット表示画面410の例である。当該チケット表示画面410は、APスクリプト(チケット)165のうち、第一の処理内容であるチケット一覧処理166の結果表示される。
チケット表示画面410は、チケット表示領域411と、新しいチケットを生成する指示の入力を受け付ける新しいチケット生成リンク表示414と、を含む。
チケット表示領域411は、データ格納装置200のデータベース領域221にあるチケット情報データベースに格納されたチケットの情報を全て表示する領域である。図17においては、チケット表示領域411には、既存のチケットとして、音声が途切れるバグに関するチケット412と、音声が再生されないバグに関するチケット413と、が表示されている。
ブラウザ部133は、チケット表示領域411のチケットに対して入力を受け付けると、入力を受け付けたチケットの詳細情報を表示する画面を表示する。
また、ブラウザ部133は、新しいチケット生成リンク表示414に対して入力を受け付けると、新たなチケットを生成する処理、例えばAPスクリプト(チケット)165の第二の処理内容であるチケット生成処理167を実行する。
以下、上記分散情報処理システム1を製造する際に用いる開発支援装置500について、説明する。
開発支援装置500は、図18に示すように、開発支援装置500は、記憶部520と、制御部530と、入力部541と、出力部542と、通信部543と、を有する。
記憶部520は、基準AP記憶領域521と、スクリプトライブラリ記憶領域522と、DAモジュール記憶領域523と、AP実行場所記憶領域524と、モジュールリスト記憶領域525と、を備える。
基準AP記憶領域521には、基準APが格納される。基準APとは、サービス利用者端末100のブラウザ部133により読み込まれて処理を行うアプリケーションであるAPスクリプトおよびAP360を生成する元となるアプリケーションをいう。基準APは、データアクセス処理を除きサービス利用者端末100上において処理が完結するアプリケーションである。例えば、基準APは、ブラウザ部133により実行される想定で、JavaScript等により記述されたアプリケーションである。基準APに含まれる処理のうち、データベースにアクセスする処理、すなわち使用するデータのCRUD(Create, Read, Update, Delete)に関する処理は、データベースが配置される装置が分散されている場合には他の装置に処理を依頼するが、アプリケーションに含まれるCRUD以外のその他の処理は、他の装置に処理を依頼しないように記述される。
図19は、基準APの例であるプロジェクト管理AP550を示す図である。
プロジェクト管理AP550の第一の処理内容であるWiki表示処理551を説明する。Wiki表示処理551は、プロジェクト管理AP550を含むHTMLページに、Wikiデータベースから取得した情報を一覧するWikiページを表示させるものである。
プロジェクト管理AP550の第二の処理内容であるチケット一覧処理552を説明する。プロジェクト管理AP550のチケット一覧処理552は、プロジェクト管理AP550を含むHTMLページに、既に生成されたチケットの一覧情報を追加して表示させるものである。なお、当該処理においては、データ格納装置200のデータベース領域221に格納されたチケット情報を取得して一覧情報を生成する処理が含まれる。
プロジェクト管理AP550の第三の処理内容であるチケット生成処理553を説明する。プロジェクト管理AP550のチケット生成処理553は、チケット情報を一件生成して、プロジェクト管理AP550を含むHTMLページに、既に生成されたチケットの一覧情報を追加して表示させるものである。なお、当該処理においては、データ格納装置200のデータベース領域221にチケット情報を新たに追加する処理と、データベース領域221に格納されたチケット情報を取得して一覧情報を生成する処理が含まれる。
プロジェクト管理AP550の第四の処理内容であるプロジェクト一覧処理554を説明する。プロジェクト一覧処理554は、実行されると、データ格納装置200に対して、既に生成されたプロジェクト管理情報の一覧情報を要求し、プロジェクト管理AP550を含むHTMLページに、要求により取得したプロジェクト管理情報一覧のデータを追加して表示させるものである。
次に、プロジェクト管理AP550の第五の処理内容であるプロジェクト表示処理555を説明する。プロジェクト表示処理555は、実行されると、引数に指定された識別子を有するプロジェクトのプロジェクト管理情報をデータ格納装置200に対して要求し、プロジェクト管理AP550を含むHTMLページに、要求により取得したプロジェクト管理情報を追加して表示させるものである。
次に、プロジェクト管理AP550の第六の処理内容であるプロジェクト生成処理556を説明する。プロジェクト生成処理556は、実行されると、データ提供装置200に対して、新規のプロジェクト管理情報を生成して格納するよう要求し、プロジェクト管理AP550を含むHTMLページに、要求したプロジェクト管理情報が追加された状態のプロジェクト一覧情報を表示させるものである。なお、当該処理においては、データ格納装置200のデータベース領域221に新規のプロジェクト管理情報を格納させ、上記プロジェクト一覧処理554に処理を委譲して結果を表示する処理が含まれる。
スクリプトライブラリ記憶領域522には、基準APの実行をサポートするユーティリティプログラム等を含むスクリプトライブラリ180が記憶される。
スクリプトライブラリ180は、上述したサービス利用者端末100のAPスクリプト記憶領域121に記憶されるスクリプトライブラリ180と同一のものである。
DAモジュール記憶領域523には、DAモジュールが記憶される。なお、DAモジュール記憶領域523に記憶されるDAモジュールは、後述するDAモジュール生成部532により生成されたDAモジュールである。本実施形態においては、DAモジュールは、AP実行部332により解釈されて実行されるJavaScriptにより記述されるが、これに限らず、サービス利用者端末100で実行されるAPスクリプトまたはAPP提供装置300のAP360から呼び出し可能であれば別の言語により記述されてもよい。
なお、DAモジュール記憶領域523に記憶されるDAモジュールには、サービス利用者端末100に格納されるDSDAモジュール190と、APDAモジュール196と、AP提供装置300に格納されるDAモジュール(プロジェクト)370と、DAモジュール(Wiki)380と、が含まれる。
AP実行場所記憶領域524には、AP実行場所表560が格納される。
AP実行場所表560は、AP生成部531が基準AP550からAPスクリプトおよびAP360を生成する際に用いる表である。AP実行場所表560は、基準AP550の処理ごとに、処理を実行する場所と、処理を実行するために必要なアクセス情報であるURLと、を格納する。
図20に、AP実行場所表560の構成例を示す。
AP実行場所表560は、処理名欄561と、実行場所欄562と、URL欄563と、を備える。
処理名欄561には、基準AP550に含まれる処理の名称が格納される。
実行場所欄562には、基準AP550の処理に対応する生成された処理が実行される場所が格納される。例えば、実行される場所として、サービス利用者端末100またはAP提供装置300を指定する情報が格納される。
URL欄563には、基準AP550の処理に対応する生成された処理を実行するURLが格納される。
例えば、処理名欄561に「Wiki表示処理」、実行場所欄562に「AP提供装置」、URL欄563に「http://earth:3000/wikis/show」が格納されているレコードは、基準AP550の「Wiki表示処理」は、「AP提供装置」にて実施されるAP360として生成され、その処理を実施するためのURLは「http://earth:3000/wikis/show」であること、を示す。
モジュールリスト記憶領域525には、データ場所表600と、モジュールリスト610と、が格納される。
データ場所表600は、DAモジュール生成部532がDSDAモジュール190、APDAモジュール196、DAモジュール(プロジェクト)370およびDAモジュール(Wiki)380を生成する際に用いる表である。データ場所表600は、データベースごとに、当該データベースの配置場所を示すURLを格納する。
図21に、データ場所表600の構成例を示す。
データ場所表600は、データ名欄601と、配置場所(URL)欄602と、を備える。
データ名欄601には、基準AP550の処理内でアクセスされるデータの名称(データベースの名称)が格納される。
配置場所欄602には、基準AP550の処理内でアクセスされるデータが格納されたデータベースの配置場所を示す情報(URL)が格納される。
モジュールリスト610は、DAモジュール生成部532がDSDAモジュール190、APDAモジュール196、DAモジュール(プロジェクト)370およびDAモジュール(Wiki)380を生成する際に用いる表である。モジュールリスト610は、データベースごとに、当該データベースへアクセスするためのDAモジュールの名称を格納する。
図22に、モジュールリスト610の構成例を示す。
モジュールリスト610は、データ名欄611と、モジュール名欄612と、を備える。
データ名欄611には、基準AP550の処理内でアクセスされるデータの名称(データベースの名称)が格納される。
モジュール名欄612には、DAモジュールを特定する名称等の情報が格納される。
図18の説明に戻る。
制御部530は、AP生成部531と、DAモジュール生成部532と、を備える。
AP生成部531は、基準AP記憶領域521に格納された基準AP550と、AP実行場所記憶領域524に格納されたAP実行場所表560と、モジュールリスト記憶領域525に格納されたデータ場所表600と、を用いて、サービス利用者端末100上で動作するAPスクリプトと、AP提供装置300上で動作するAP360と、を生成する。
DAモジュール生成部532は、モジュールリスト610と、データ場所表600と、を用いて、DSDAモジュール190と、APDAモジュール196と、DAモジュール(プロジェクト)370と、DAモジュール(Wiki)380と、を生成する。
入力部541は、操作者からの情報の入力を受け付ける。
出力部542は、情報を出力する。
本実施形態の開発支援装置500のハードウェア構成を説明する。
本実施形態においては、開発支援装置500は、例えば、クライアントPC(パーソナルコンピュータ)や、ワークステーション、サーバ装置、各種携帯電話端末、PDA(Personal Digital Assistant)などの計算機である。
開発支援装置500は、図14に示したサービス利用者端末100と基本的に同様の構成を備える。ただし、通信装置116を備えない点において相違する。
開発支援装置500のAP生成部531と、DAモジュール生成部532と、は、開発支援装置500における演算装置113に処理を行わせるプログラムによって実現される。
このプログラムは、主記憶装置114または外部記憶装置115内に記憶され、実行にあたって主記憶装置114上にロードされ、演算装置113により実行される。
また、開発支援装置500の記憶部520は、開発支援装置500における主記憶装置114または外部記憶装置115により実現される。
開発支援装置500の入力部541は、開発支援装置500における入力装置111によって実現される。
開発支援装置500の出力部542は、開発支援装置500における出力装置112によって実現される。
次に、本実施形態における開発支援装置のAP生成処理について、図23に基づいて説明する。
図23は、AP生成処理の処理フローを示す図である。
AP生成処理は、開発支援装置500の入力部541が、処理の開始指示を受け付けることで実施される。
まず、AP生成部531は、基準AP550に記載された最初の関数を対象の関数として特定する(ステップS101)。
例えば、AP生成部531は、基準AP記憶領域521に格納された基準AP550を読み出し、記述された順に関数を読み出すと、その最初に記述された関数を対象関数として特定する。
次に、AP生成部531は、ステップS101で特定した対象関数の実行場所を特定する(ステップS102)。
具体的には、AP生成部531は、ステップS101で特定した対象関数の名称と、AP実行場所記憶領域524に格納されたAP実行場所表560の処理名欄561の値とが一致するレコードを特定して、その実行場所欄562に格納された実行場所を特定する。
次に、AP生成部531は、ステップS102にて特定した実行場所が利用者端末であるか否かを判定する(ステップS103)。
実行場所が利用者端末でない場合(ステップS103にて「No」)、AP生成部531は、対象関数をAP提供装置300のAP360として生成し、AP360を呼び出すためのスクリプトであるサービス利用者端末100のAPスクリプト(呼出)160を生成する。そして、処理を後述するステップS108に進める(ステップS104)。
具体的には、AP生成部531は、対象関数の処理内容をそのまま処理内容とするAP360を基準AP記憶領域521に格納する。そして、AP生成部531は、当該AP360をサービス利用者端末100のブラウザ部133から呼び出すための処理を定型に従って生成する。その際、AP実行場所表560のURL欄563に格納されたURLを用いてAP360を呼び出すように処理を生成する。生成した処理をAPスクリプト(呼出)160として基準AP記憶領域521に格納する。そして、処理を後述するステップS108に進める。
実行場所が利用者端末である場合(ステップS103にて「Yes」)、AP生成部531は、対象関数の処理内容を検索して、アクセスするデータがAP提供装置300上に格納されるデータか否かを判定する(ステップS105)。
具体的には、AP生成部531は、対象関数内の処理において、「find」、「find_all」、「save」、「destroy」等の所定の関数のうちいずれかの関数を実行している処理があれば、その関数実行を行うオブジェクトを特定する。そして、AP生成部531は、特定したオブジェクトの名称と、データ場所表600のデータ名欄601に格納された値と、が対応するレコードをデータ場所表600から特定し、その配置場所(URL)欄602に格納された値がAP提供装置300を指すものであるか否かを判定する。
アクセスするデータがAP提供装置300上に格納されるデータではない場合(ステップS105にて「No」)、AP生成部531は、対象関数の処理内容を有するサービス利用者端末100のAPスクリプトを生成する。そして、処理を後述するステップS108に進める(ステップS106)。
具体的には、AP生成部531は、対象関数の処理内容をそのまま処理内容とするAPスクリプトを生成して基準AP記憶領域521に格納する。そして、処理を後述するステップS108に進める。
アクセスするデータがAP提供装置300上に格納されるデータである場合(ステップS105にて「Yes」)、AP生成部531は、対象関数に基づいて、コールバック用関数を生成して、サービス利用者端末100のAPスクリプトに追加する。そしてAP生成部531は、対象関数を、サービス利用者端末100のAPスクリプトに追加する(ステップS107)。
具体的には、AP生成部531は、対象関数の処理内容を検索して、データアクセスを行う処理に続く処理以降に記載された処理を切り出して、コールバック用関数として生成する。そしてAP生成部531は、生成したコールバック用関数を利用者端末100のAPスクリプトに追加する。そして、AP生成部531は、対象関数のデータアクセスを行う処理より前に記載された処理を切り出して、サービス利用者端末100のAPスクリプトとして生成する。そして、AP生成部531は、生成したAPスクリプトを基準AP記憶領域521に格納する。
なお、対象関数の処理内容にループ制御(forループ制御)が含まれる場合には、図24に示すループ変換処理フローに従って、AP生成部531はAPスクリプトを生成する。
ここで、図24のループ変換処理フローを説明する。
まず、AP生成部531は、基準AP550の関数に含まれるforループブロックに対応する無名関数をAPスクリプトに追加する。そして、AP生成部531は、基準AP550の関数に含まれるforループブロックのループ変数を追加した無名関数の変数として追加する(ステップS121)。
次に、AP生成部531は、基準AP550の関数に含まれるforループブロックに含まれる処理を、詳細ブロックに分割する(ステップS122)。
具体的には、AP生成部531は、基準AP550の関数に含まれるforループブロックに含まれる処理の先頭行から、最初にAP提供装置300の処理を呼び出す処理が記載された行までを、第一の詳細ブロックとして特定する。そして、AP生成部531は、当該AP提供装置300の処理を呼び出す処理が記載された行の次の行から、次にAP提供装置300の処理を呼び出す処理が記載された行までを第二の詳細ブロックとして特定する。同様に、AP生成部531は、forループブロックに含まれる処理の最終行に到るまで、forループブロックに含まれる処理を詳細ブロックに分割する。
次に、AP生成部531は、ステップS122において、forループブロックが2以上の詳細ブロックに分割されたか否かを判定する(ステップS123)。
forループブロックが2以上の詳細ブロックに分割されなかった場合(ステップS123にて「No」)、AP生成部531は、ステップS121で追加した無名関数に内部関数を追加する(ステップS124)。
次に、AP生成部531は、内部関数の処理として、基準AP550の関数に含まれるforループブロックのループ継続条件と同様の継続条件を満たさない場合には当該内部関数の処理を終了させる終了判定処理を追加する(ステップS125)。
次に、AP生成部531は、内部関数の処理として、基準AP550の関数に含まれるforループブロックの処理をすべて追加する(ステップS126)。
次に、AP生成部531は、内部関数の処理の最後に、ループ変数をインクリメントする処理と、内部関数を呼び出す処理と、を追加し、ループ変換処理を終える(ステップS127)。
forループブロックが2以上の詳細ブロックに分割された場合(ステップS123にて「Yes」)、AP生成部531は、ステップS121で追加した無名関数に内部関数と、分割された詳細ブロックの数より一少ない数のコールバック関数を追加する(ステップS128)。
次に、AP生成部531は、内部関数の処理として、基準AP550の関数に含まれるforループブロックのループ継続条件と同様の継続条件を満たさない場合には当該内部関数の処理を終了させる終了判定処理を追加する(ステップS129)。
次に、AP生成部531は、内部関数の処理として、基準AP550の関数に含まれるforループブロックの処理のうち、第一の詳細ブロックの処理を追加する(ステップS130)。なお、その際、AP生成部531は、AP提供装置300の処理を呼び出す処理のパラメータに、第一のコールバック関数の関数名を追加する。
次に、AP生成部531は、ステップS128にて追加した第一のコールバック関数に、第二の詳細ブロックの処理を追加する(ステップS131)。また、ステップS128にて二つ以上のコールバック関数が追加されている場合、第三,第四,・・・,第N(Nは三以上の自然数)の詳細ブロックの処理を、それぞれ第二,第三,・・・,第(N−1)のコールバック関数に追加する。なお、その際、AP生成部531は、AP提供装置300の処理を呼び出すパラメータに、次に続くコールバック関数の関数名を追加する。
次に、AP生成部531は、ステップS131にて追加した最後のコールバック関数の処理の最後に、ループ変数をインクリメントする処理と、内部関数を呼び出す処理と、を追加し、ループ変換処理を終える(ステップS132)。
以上が、ループ変換処理のフローである。
AP生成処理のフローの説明に戻る。
次に、AP生成部531は、基準AP550の関数のうち、対象関数の次に記載された関数を新たに対象関数とし、制御をステップS102に戻す。基準AP550に、対象関数の次の関数が無かった場合、AP生成処理を終了する(ステップS108)。
以上が、AP生成処理のフローである。
このようなAP生成処理を行うことで、サービス利用者端末100上で動作するよう記載された基準AP550から、AP提供装置300上で動作する処理を分離してAPスクリプトとAP360とを生成することが可能となる。
次に、本実施形態におけるDAモジュール生成処理のフローについて、図25に基づき説明する。
図25は、DAモジュール生成処理の流れを示すフロー図である。
DAモジュール生成処理は、開発支援装置500の入力部541が、処理の開始指示を受け付けることで実施される。
まず、DAモジュール生成部532は、モジュールリスト610の先頭に記載されたモジュールを、生成対象DAモジュールとして特定する(ステップS201)。
具体的には、DAモジュール生成部532は、モジュールリスト610に記載された先頭のデータベースについて、モジュール名欄612に記載された名称を有するDAモジュールを生成対象として特定する。
次に、DAモジュール生成部532は、ステップS201で特定した生成対象DAモジュールの配置場所を特定し、サービス利用者端末100からデータ格納装置200に格納されたデータにアクセスするDSDAモジュール190と、サービス利用者端末100からAP提供装置300に格納されたデータにアクセスするAPDAモジュール196と、AP提供装置300からAP提供装置300に格納されたデータにアクセスするDAモジュール370、380と、を生成する(ステップS202)。
具体的には、DAモジュール生成部532は、ステップS201で特定した生成対象DAモジュールについて生成する際に、生成対象のDAモジュールによってアクセスされるデータベースの配置場所に応じて、異なるアクセス方法を実装するDAモジュールを複数生成する。本実施形態においては、DAモジュール生成部532は、生成対象DAモジュールについて、サービス利用者端末100からデータ格納装置200に格納されたデータにアクセスするDSDAモジュール190と、サービス利用者端末100からAP提供装置300に格納されたデータにアクセスするAPDAモジュール196と、AP提供装置300からAP提供装置300に格納されたデータにアクセスするDAモジュール370、380と、の4パターンのアクセスに対応するDAモジュールを生成する。
次に、DAモジュール生成部532は、モジュールリスト610に次の対象モジュールとなるレコードがあるか否かを判定し、対象モジュールとなるレコードがなければ(「No」の場合)DAモジュール生成処理を終了する(ステップS203)。
対象モジュールとなるレコードがあれば(ステップS203で「Yes」)、DAモジュール生成部532は、モジュールリスト610から次の対象モジュールを読み出して、新たに生成対象DAモジュールとして特定し、ステップS202に制御を戻す。
以上が、DAモジュール生成処理の処理フローである。
DAモジュール生成処理を行うことで、一つのデータベースに対して、複数のアクセス方法でアクセスするDAモジュールを複数生成することができる。
すなわち、AP提供装置300が提供するデータベース(本実施形態においてはプロジェクト情報データベースとWikiデータベース)を使用せず、データ格納装置200に独自のプロジェクト情報データベースとWikiデータベースを使用する利用者組織10が存在する場合であっても、上記DAモジュール生成処理によってプロジェクト情報データベースがデータ格納装置200にある場合のDAモジュールも生成されるため、当該利用者組織10に属するサービス利用者端末100からも問題なくAP提供装置300が提供するアプリケーションサービスを利用することができる。
以上が、第一の実施形態である。
第一の実施形態によれば、アプリケーションプロバイダ組織30は、当該アプリケーションサービスを提供する上でのノウハウや管理情報、プログラムといった非公開にしたい情報を含む処理を公開することなく、アプリケーションサービスをサービス利用者端末100に提供することが可能となる。
また、利用者組織10は、第三者に知られたくない情報をアプリケーションプロバイダ組織30に対して流出させてしまうことを防ぎつつ、アプリケーションプロバイダ組織30が提供するアプリケーションサービスを受けることが可能となる。
なお、データプロバイダ組織20は、上記実施形態においては利用者組織10に属する組織であるとしているが、これに限られない。すなわち、データプロバイダ組織20は、利用者組織10とは異なる独立した組織であってもよい。または、アプリケーションプロバイダ組織30に属する組織であっても良い。
続いて、本発明の第二の実施形態を説明する。
本実施形態における分散情報処理システム1は、第一の実施形態における分散情報処理システム1と基本的に同様の構成を有する。
ただし、第二の実施形態における分散情報処理システム1は、第一の実施形態における分散情報処理システム1と、以下の差異を有する。
第二の実施形態における分散情報処理システム1は、データ提供装置200に相当する装置として、サービス利用者端末100の記憶部120に、データベース領域221に相当するデータベース領域を備え、制御部130に、データ操作部232に相当するデータ操作部を備える。また、AP提供装置300の制御部330に、初期画面生成部231に相当する初期画面生成部を備える。
また、開発支援装置500が生成するDAモジュールは、ローカルデータベースアクセスをサポートするライブラリのAPI呼び出しを行うものとする。
第二の実施形態におけるプロジェクト管理処理について、第一の実施形態におけるプロジェクト管理処理の処理フローとの差異を説明する。
第二の実施形態におけるプロジェクト管理処理では、まず、サービス利用者端末100のブラウザ部133は、AP提供装置300に対して初期ページを要求する。そして、AP提供装置300は、初期ページを生成する。次に、AP提供装置300は、生成した初期ページをサービス利用者端末100に送信する(ステップS1〜S3に相当する処理)。
以降、ステップS4からステップS11に相当する処理は、第一の実施形態と同様である。
ステップS12からステップS14に相当する処理においては、サービス利用者端末100は、アプリケーションプログラムの実行中に、サービス利用者端末100にあるデータベース(本実施形態においてはチケット情報データベース)にアクセスする処理の指示を受け付けた場合、データ操作部にデータアクセス要求を送信し、データ操作部は、データアクセスを行い、アクセスして得た結果の情報を返却する。
このような第二の実施形態によると、サービス利用者は、極めて機密性を保持すべき情報をアプリケーションプロバイダ組織30およびデータプロバイダ組織20に対して流出させてしまうことを防ぎつつ、アプリケーションプロバイダ組織30が提供するアプリケーションサービスを利用することが可能となる。
以上、実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々の変更が可能である。
例えば、上記第一の実施形態の開発支援装置500は、AP生成処理及びDAモジュール生成処理において、生成したプログラムを記憶部520に格納しているが、これに限られない。すなわち、開発支援装置500は組織間ネットワーク250に接続可能な通信部543を備え、生成したプログラムを、AP提供装置300の記憶部320に格納するようにしてもよい。
このようにすることによって、生成したプログラムを稼働サーバに配信するのが容易になる。
なお、分散情報処理システム1は、システムとして取引対象とするだけでなく、各装置や、各装置の動作を実現するプログラム部品単位で取引対象とすることも可能である。