以下、図面を参照しながら本発明の実施の形態について詳しく説明する。
(第1の実施の形態)
<概要>
まず、前述した教育支援システムを例として、本発明が適用されたアプリケーションの動作について説明する。
図1は、本発明の第1の実施の形態のアプリケーションの動作の概要を説明するための図である。
図1に示す教育支援システムには、科目詳細アプリケーション111、教育申込アプリケーション161、受講者の感想アプリケーション112及びスケジューラアプリケーション113が含まれる。各アプリケーションは、クライアント151を介してユーザからの要求に応じて実行される。
本発明の第1の実施の形態が適用された教育支援システムでは、ユーザがクライアント151を介して科目詳細アプリケーション111を実行する場合に、科目詳細アプリケーション111を実行する場面に基づいて、表示される画面がカスタマイズされる。
例えば、教育科目を選択する科目選択画面133から科目詳細画面121を参照する科目選択シーン141であれば、科目詳細アプリケーション111によって提供される科目詳細画面121に、受講者の感想アプリケーション112の情報が組み合わせられる。そして、科目詳細の情報と受講者の感想の情報を組み合わせた科目詳細画面131がクライアント151に表示される。
また、教育科目を申し込む申込画面134から科目詳細画面121を参照する科目申込シーン142であれば、科目詳細アプリケーション111が提供する科目詳細画面122に、スケジューラアプリケーション113の情報が組み合わせられる。そして、科目詳細の情報とユーザのスケジュールを組み合わせた科目詳細画面132がクライアント151に表示される。
以上のように、本発明の第1の実施の形態では、ユーザが科目詳細アプリケーション111を利用する場合に、科目を選択する場面又は科目を申し込む場面に応じてカスタマイズされた科目詳細アプリケーション111を利用することが可能となる。
以下、本発明の第1の実施の形態によるアプリケーションの実行方法について、図2から図10を参照しながら説明する。また、本発明の第1の実施の形態では、主にWebアプリケーションに本発明が適用される場合について説明する。
<システム構成>
図2は、本発明の第1の実施の形態の計算機システムの構成の一例を示すブロック図である。
本発明の第1の実施の形態のアプリケーション実行方法を実現する計算機システムは、クライアント実行サーバ211、カスタマイズ実行サーバ221、アプリケーション実行サーバ261、262及び263を含む。
クライアント実行サーバ211及びカスタマイズ実行サーバ221は、ネットワーク281を介して互いに接続される。また、カスタマイズ実行サーバ221、アプリケーション実行サーバ261、262及び263は、ネットワーク282を介して互いに接続される。クライアント実行サーバ211は、カスタマイズ実行サーバ221を介して、アプリケーション実行サーバ261、262及び263にアクセスする。
ネットワーク281及びネットワーク282は、LAN(Local Area Network)であってもよいし、WAN(Wide Area Network)又はインターネットなどのグローバルネットワークであってもよい。また、ネットワーク281及びネットワーク282は、同じネットワークであってもよい。
クライアント実行サーバ211は、クライアント212を含む。クライアント212は、カスタマイズ実行サーバ221を介してアプリケーション実行サーバ261、262及び263との間でメッセージを送受信する。クライアント実行サーバ211は、カスタマイズ実行サーバ221から受信したメッセージに基づいて、要求された情報を含む画面を表示する。
カスタマイズ実行サーバ221は、通信解析部222と、カスタマイズ適用部223及び記憶装置224を含む。
通信解析部222は、ユーザ状態解析部231を含む。通信解析部222及びユーザ状態解析部231は、状態に応じたカスタマイズをアプリケーションに適用するために、ユーザによる操作などのアプリケーションの状態を解析する。通信解析部222及びユーザ状態解析部231による処理の詳細については、図6にて後述する。
カスタマイズ適用部223は、ユーザ状態判定部241を含む。ユーザ状態判定部241は、通信解析部222及びユーザ状態解析部231による解析結果を判定する。カスタマイズ適用部223は、ユーザ状態判定部241によるユーザの状態の判定結果に基づいて、アプリケーションをカスタマイズする。カスタマイズ適用部223及びユーザ状態判定部241による処理の詳細については、図7にて後述する。
記憶装置224は、カスタマイズ定義情報251、カスタマイズ適用ユーザ状態定義情報252及びユーザ状態履歴情報253を格納する。
カスタマイズ定義情報251は、カスタマイズ対象の画面の識別情報と、対応するカスタマイズ内容を定義した情報である。カスタマイズ定義情報251の詳細については、図5Aにて後述する。
カスタマイズ適用ユーザ状態定義情報252は、画面をカスタマイズする条件を定義した情報である。カスタマイズ適用ユーザ状態定義情報252の詳細については、図5Bにて後述する。
ユーザ状態履歴情報253は、ユーザによるアプリケーションのアクセス履歴である。Webシステムでは、画面のアクセス履歴が対応し、遷移元の画面と遷移先の画面が格納される。ユーザ状態履歴情報253の詳細については、図5Cにて後述する。
アプリケーション実行サーバ261は、業務アプリケーション271を実行する。同様に、アプリケーション実行サーバ262は、業務アプリケーション272を実行する。さらに、アプリケーション実行サーバ263は、業務アプリケーション273を実行する。
業務アプリケーション271、272及び273は、カスタマイズ実行サーバ221を介してクライアント実行サーバ211からの要求された処理を実行し、処理結果を応答する。
図3は、本発明の第1の実施の形態のクライアント実行サーバ211、カスタマイズ実行サーバ221及びアプリケーション実行サーバ261のハードウェア構成の一例を示す図である。
なお、アプリケーション実行サーバ262及び263のハードウェア構成はアプリケーション実行サーバ261と同じであるため、説明を省略する。
クライアント実行サーバ211は、CPU312、ネットワークインタフェース311、二次記憶装置314及び主記憶装置313を含む。CPU312、ネットワークインタフェース311、二次記憶装置314及び主記憶装置313は、バス315によって相互に接続される。
CPU312は、主記憶装置313に記憶されているプログラムを実行することによって、クライアント実行サーバ211の所定の機能を実現する。
ネットワークインタフェース311は、ネットワーク281に接続するインタフェースである。クライアント実行サーバ211は、ネットワークインタフェース311を介してネットワーク281に接続する。
二次記憶装置314は、クライアント212の実行などに必要なプログラム及びデータを格納する。二次記憶装置314は、例えば、ハードディスク装置などの磁気記憶媒体である。また、フラッシュメモリなどの半導体記憶媒体であってもよい。
主記憶装置313は、CPU312によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。例えば、主記憶装置313には、クライアント機能を実現するためのプログラムであるクライアント212が記憶される。さらに、OS(オペレーティングシステム)などが記憶される。なお、OSについては、簡略化のために図示を省略している。主記憶装置313は、例えば、RAM(Random Access Memory)である。
また、クライアント212を実行する主体は、CPU312であるが、説明を簡略化するために、以下、クライアント212を動作又は処理の主体として説明する。
さらに、別の実施の形態として、クライアント212による機能を実現する論理回路を含むハードウェアなどによって実現してもよい。この場合には、クライアント212が動作又は処理の主体となる。
カスタマイズ実行サーバ221は、CPU322、ネットワークインタフェース321、二次記憶装置324及び主記憶装置323を含む。CPU322、ネットワークインタフェース321、二次記憶装置324及び主記憶装置323は、バス325によって相互に接続される。
CPU322は、主記憶装置323に記憶されているプログラムを実行することによって、カスタマイズ実行サーバ221の所定の機能を実現する。
ネットワークインタフェース321は、ネットワーク281及びネットワーク282に接続するインタフェースである。カスタマイズ実行サーバ221は、ネットワークインタフェース321を介してネットワーク281及びネットワーク282に接続する。
二次記憶装置324は、カスタマイズ実行サーバ221の所定の機能の実現するために必要なプログラム及びデータを格納する。二次記憶装置324は、図2に示した記憶装置224に対応し、カスタマイズ定義情報251、カスタマイズ適用ユーザ状態定義情報252、ユーザ状態履歴情報253などの情報を格納する。二次記憶装置324は、例えば、ハードディスク装置などの磁気記憶媒体である。また、フラッシュメモリなどの半導体記憶媒体であってもよい。
主記憶装置323は、CPU322によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。例えば、主記憶装置323には、通信解析部222及びカスタマイズ適用部223が記憶される。さらに、クライアント実行サーバ211と同様に、図示されていないOSなどが記憶される。主記憶装置323は、例えば、RAMである。
前述したように、カスタマイズ実行サーバ221は、通信解析部222、カスタマイズ適用部223、ユーザ状態解析部231及びユーザ状態判定部241を含む。各機能ブロック(通信解析部222、カスタマイズ適用部223、ユーザ状態解析部231及びユーザ状態判定部241)は、CPU322が主記憶装置323に記憶された各機能ブロックを実現するためのプログラムを実行することによって、所定の機能が提供される。この場合、各機能ブロックの動作又は処理の主体は、CPU322であるが、説明を簡略化するために、以下、各機能ブロックを動作又は処理の主体として説明する。
また、別の実施の形態として、カスタマイズ実行サーバ221の各機能ブロックを、各機能を実現する論理回路などを含むハードウェアによって実現してもよい。この場合には、各機能ブロックが動作又は処理の主体となる。
アプリケーション実行サーバ261は、CPU342、ネットワークインタフェース341、二次記憶装置344及び主記憶装置343を含む。CPU342、ネットワークインタフェース341、二次記憶装置344及び主記憶装置343は、バス345によって相互に接続される。
CPU342は、主記憶装置343に記憶されているプログラム(業務アプリケーション271)を実行することによって、アプリケーション実行サーバ261の所定の機能を実現する。
ネットワークインタフェース341は、ネットワーク282に接続するインタフェースである。クライアント実行サーバ211は、ネットワークインタフェース341を介してネットワーク282に接続する。
二次記憶装置344は、業務アプリケーション271の実行などに必要なプログラム及びデータを格納する。二次記憶装置344は、例えば、ハードディスク装置などの磁気記憶媒体である。また、フラッシュメモリなどの半導体記憶媒体であってもよい。
主記憶装置343は、CPU342によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。例えば、主記憶装置343には、業務アプリケーション271、及び、図示されていないOSなどが記憶される。主記憶装置343は、例えば、RAMである。
また、業務アプリケーション271を実行する主体は、CPU342であるが、説明を簡略化するために、以下、業務アプリケーション271を動作又は処理の主体として説明する。
さらに、別の実施の形態として、業務アプリケーション271による機能を実現する論理回路を含むハードウェアなどによって実現してもよい。この場合には、業務アプリケーション271が動作又は処理の主体となる。
なお、クライアント実行サーバ211、カスタマイズ実行サーバ221及びアプリケーション実行サーバ261の構成は、図3に示した構成の例に限定されない。例えば、カスタマイズ実行サーバ221は、クライアント実行サーバ211と同じ計算機上に構成されていてもよい。また、複数の業務アプリケーションがアプリケーション実行サーバ261で実行されるように構成してもよい。
<各定義情報の内容>
ここで、本発明の第1の実施の形態のアプリケーション実行システムで使用される定義情報の詳細について説明する。具体的には、カスタマイズ実行サーバ221に格納されているカスタマイズ定義情報251、カスタマイズ適用ユーザ状態定義情報252及びユーザ状態履歴情報253について説明する。
図5Aは、本発明の第1の実施の形態のカスタマイズ定義情報251の一例を示す図である。
カスタマイズ定義情報251には、カスタマイズ対象の画面の識別情報と、カスタマイズ内容が対応付けて格納される。カスタマイズ定義情報251には、カスタマイズID511、カスタマイズ対象識別子512及びカスタマイズ内容513が含まれる。
カスタマイズID511は、カスタマイズ定義情報、すなわち、カスタマイズ対象とカスタマイズ内容との組を識別する識別子である。
カスタマイズ対象識別子512は、変更対象のアプリケーションによって提供される画面の識別子である。例えば、Webシステムでは、画面の所在情報であるURLが格納される。
カスタマイズ内容513は、アプリケーションによって提供される画面の具体的な変更内容である。アプリケーションによって提供される画面の変更内容とは、例えば、変更対象のアプリケーションに追加される別のアプリケーションの所在情報(URL)である。さらに、変更対象のアプリケーションの画面において、追加されるアプリケーションの情報を配置するための位置情報も含まれる。また、変更対象のアプリケーションによって提供される情報と、追加されるアプリケーションによって提供される情報とを組み合わせるための加工情報を含んでもよい。加工情報には、数値演算、文字列演算、又は分岐処理など、一般的なプログラムにおける処理を記述することも可能である。
カスタマイズ定義情報251の行521は、アプリケーションによって提供される変更対象の所在情報「http://xxx.example/class_detail.html」に対応する画面にユーザがアクセスした場合に、「カスタマイズ内容1」を変更対象の画面に適用することを示している。
図5Bは、本発明の第1の実施の形態のカスタマイズ適用ユーザ状態定義情報252の一例を示す図である。
カスタマイズ適用ユーザ状態定義情報252には、カスタマイズ定義情報251の各行に定義されたカスタマイズ内容を適用する条件が格納されている。カスタマイズ適用ユーザ状態定義情報252には、カスタマイズID531、カスタマイズ対象識別子532及び遷移元識別子条件533が含まれる。
カスタマイズID531は、カスタマイズ定義情報を識別する識別子である。カスタマイズID531は、カスタマイズ定義情報251のカスタマイズID511に対応する。
カスタマイズ対象識別子532は、変更対象のアプリケーションによって提供される画面の識別子である。カスタマイズ定義情報251のカスタマイズID511と同様に、Webシステムの場合には、画面の所在情報であるURLが格納される。
遷移元識別子条件533は、変更対象のアプリケーションの前にアクセスされていた遷移元を識別する識別子である。Webシステムの場合には、遷移元の画面の所在情報であるURLが格納される。
カスタマイズ適用ユーザ状態定義情報252の行541は、アプリケーションによって提供される変更対象の所在情報「http://xxx.example/class_detail.html」に対応する画面の前に、ユーザが所在情報「http://xxx.education/selection.html」に対応する画面にアクセスしていた場合には、カスタマイズID531によって識別されるカスタマイズ内容を適用することを示している。
なお、遷移元識別子条件533には、複数の遷移元のアプリケーションを設定してもよい。例えば、複数の遷移元のアプリケーションの所在情報を実行順に連結した値を設定することによって、遷移元のアプリケーションの実行順序を指定することができる。
図5Cは、本発明の第1の実施の形態のユーザ状態履歴情報253の一例を示す図である。
ユーザ状態履歴情報253は、ユーザがアプリケーションを実行又は操作した履歴である。例えば、Webシステムでは、画面遷移の履歴に対応し、遷移元の画面のURLと遷移先の画面のURLが格納される。
ユーザ状態履歴情報253には、カスタマイズID551、遷移元識別子552及び遷移先識別子553が含まれる。
カスタマイズID551は、カスタマイズ定義情報を識別する識別子である。カスタマイズID551は、カスタマイズ定義情報251のカスタマイズID511に対応する。
遷移元識別子552は、ユーザが直前にアクセスしていた画面の識別子である。遷移先識別子553は、ユーザが現時点でアクセスしている画面の識別子である。遷移元識別子552及び遷移先識別子553は、Webシステムの場合には、画面の所在情報(URL)が格納される。
ユーザ状態履歴情報253の行561は、ユーザが現時点で遷移先識別子「http://xxx.example/class_detail.html」に対応する画面にアクセスしており、直前に遷移元識別子「http://xxx.education/selection.html」に対応する画面にアクセスしていたことを示している。
カスタマイズ定義情報251、カスタマイズ適用ユーザ状態定義情報252及びユーザ状態履歴情報253は、カスタマイズIDによって対応付けられている。前述したように、カスタマイズ定義情報251のカスタマイズID511、カスタマイズ適用ユーザ状態定義情報252のカスタマイズID531、及びユーザ状態履歴情報253のカスタマイズID551が対応している。
<通信解析部の処理の流れ>
次に、通信解析部222による処理手順について説明する。
図6は、本発明の第1の実施の形態の通信解析部222による処理手順を示すフローチャートである。
なお、本発明の第1の実施の形態では、通信解析部222によって使用されるカスタマイズ適用ユーザ状態定義情報252及びユーザ状態履歴情報253は、カスタマイズ実行サーバ221が起動されたタイミングで二次記憶装置324から読み出され、主記憶装置323に記憶されている。
クライアント実行サーバ211は、クライアント212によって、ユーザから要求された画面を取得するための要求メッセージをカスタマイズ実行サーバ221に送信する(ステップ611)。
カスタマイズ実行サーバ221は、通信解析部222によって、ステップ611の処理でクライアント実行サーバ211から送信された要求メッセージを受信する(ステップ612)。通信解析部222は、受信した要求メッセージを解析し、遷移先の所在情報を取得する。例えば、クライアント212とアプリケーションとの間でHTTP(HyperText Transfer Protocol)通信をしている場合には、要求メッセージに含まれるリクエスト行に設定されたリクエストURI(Uniform Resource Identifier)パラメータを取得することによって遷移先の所在情報を取得できる。
ユーザ状態解析部231は、カスタマイズ適用ユーザ状態定義情報252から、ステップ612の処理で取得された遷移先の所在情報が設定されたカスタマイズ対象識別子532を有する行を検索する(ステップ613)。
ユーザ状態解析部231は、遷移先の所在情報が設定されたカスタマイズ対象識別子532を有する行が検索された場合には(ステップ613の結果が「yes」)、ステップ614の処理を実行する。一方、遷移先の所在情報が設定されたカスタマイズ対象識別子532を有する行が検索されなかった場合には(ステップ613の結果が「no」)、ステップ616の処理を実行する。
ユーザ状態解析部231は、ステップ613の処理で検索された行からカスタマイズID531を取得し、ユーザ状態履歴情報253から、同一のカスタマイズID551を有する行を検索する。そして、検索された行の遷移先識別子553の値を遷移元識別子552にコピーする(ステップ614)。
ユーザ状態解析部231は、ステップ612の処理で取得された遷移先の所在情報を、ステップ614の処理で検索された行の遷移先識別子553に設定する(ステップ615)。
ユーザ状態解析部231は、カスタマイズ適用ユーザ状態定義情報252から、ステップ612の処理で取得された遷移先の所在情報が、遷移元識別子条件533の先頭に一致する行を検索する(ステップ616)。
ユーザ状態解析部231は、遷移先の所在情報が遷移元識別子条件533の先頭に一致する行が検索された場合には(ステップ616の結果が「yes」)、ユーザ状態履歴情報253に新たに行を追加するために領域を確保する。そして、ステップ616の処理で検索された行のカスタマイズID531をカスタマイズID551として、ユーザ状態履歴情報253に新たに行を登録する(ステップ617)。さらに、新たに登録された行の遷移先識別子553に、ステップ612の処理で取得された遷移先の所在情報を設定する。
一方、ユーザ状態解析部231は、遷移先の所在情報が遷移元識別子条件533の先頭に一致する行が検索されなかった場合には(ステップ616の結果が「no」)、ステップ618の処理を実行する。
ユーザ状態解析部231は、ステップ612の処理で取得された遷移先の所在情報を含む遷移元識別子条件533を有する行がカスタマイズ適用ユーザ状態定義情報252に存在するか否かを判定する。さらに、遷移先の所在情報よりも実行順序が前となる所在情報を遷移元識別子条件533から抽出し、抽出された所在情報と一致する遷移先識別子553を有する行がユーザ状態履歴情報253に含まれるか否かを判定する(ステップ618)。
ユーザ状態解析部231は、ステップ618の条件を満たす場合には(ステップ618の結果が「yes」)、ステップ612の処理で取得された遷移先の所在情報を、ステップ618の処理で取得されたユーザ状態履歴情報253の行の遷移先識別子553に追加する(ステップ619)。
ユーザ状態解析部231は、ステップ618の条件を満たさない場合(ステップ618の結果が「no」)、又はステップ619の処理の実行が完了した場合には、ステップ620の処理を実行する。
通信解析部222は、ステップ612の処理で取得された遷移先の所在情報に対応するアプリケーション実行サーバに、クライアント212によって送信された要求メッセージを送信する。そして、アプリケーション実行サーバから応答メッセージを受信し、カスタマイズ適用部223に送信する(ステップ620)。カスタマイズ適用部223は、必要に応じて応答メッセージに対応するカスタマイズ内容を適用し、通信解析部222に応答メッセージを送信する。
通信解析部222は、カスタマイズ適用部223から受信した応答メッセージを参照し、応答メッセージにカスタマイズが適用されているか否かを判定する(ステップ621)。カスタマイズが適用されていた場合には(ステップ621の結果が「yes」)、ユーザ状態解析部231は、ステップ613の処理で取得されたカスタマイズ対象識別子512に対応するカスタマイズID551に基づいて、ユーザ状態履歴情報253の対応する行を削除する(ステップ622)。
通信解析部222は、応答メッセージにカスタマイズが適用されていない場合(ステップ621の結果が「no」)、又はステップ622の処理が終了した場合には、ステップ620の処理で受信した応答メッセージをクライアント212に送信する(ステップ623)。
<カスタマイズ適用部の処理の流れ>
次に、カスタマイズ適用部223による処理手順について説明する。
図7は、本発明の第1の実施の形態のカスタマイズ適用部223による処理手順を示すフローチャートである。
なお、本発明の第1の実施の形態では、カスタマイズ適用部223によって使用されるカスタマイズ定義情報251、カスタマイズ適用ユーザ状態定義情報252及びユーザ状態履歴情報253は、カスタマイズ実行サーバ221が起動されたタイミングで二次記憶装置324から読み出され、主記憶装置323に記憶されている。
カスタマイズ適用部223は、まず、通信解析部222から送信された要求メッセージを受信する(ステップ711)。
ユーザ状態判定部241は、ユーザ状態履歴情報253の遷移先識別子553と一致するカスタマイズ対象識別子512を有する行がカスタマイズ定義情報251に存在するか否かを判定する(ステップ712)。カスタマイズ定義情報251に該当する行が存在しない場合には(ステップ712の結果が「no」)、受信した要求メッセージを応答メッセージとして通信解析部222に送信する(ステップ717)。
ユーザ状態判定部241は、カスタマイズ定義情報251に該当する行が存在する場合には(ステップ712の結果が「yes」)、カスタマイズ対象識別子512の値に対応するカスタマイズID511を取得する。そして、ステップ712の処理で取得されたカスタマイズID511に基づいて、カスタマイズ適用ユーザ状態定義情報252を検索する(ステップ713)。
ユーザ状態判定部241は、カスタマイズ適用ユーザ状態定義情報252から行が検索された場合には(ステップ713の結果が「yes」)、ユーザ状態履歴情報253の遷移元識別子552と同一の遷移元識別子条件533が検索されたか否かを判定する(ステップ714)。
カスタマイズ適用部223は、ユーザ状態履歴情報253の遷移元識別子552と同一の遷移元識別子条件533が検索された場合には(ステップ714の結果が「yes」)、ステップ712の処理で取得されたカスタマイズ定義情報251の行のカスタマイズ内容513を通信解析部222から送信された要求メッセージに適用し、応答メッセージを作成する(ステップ715)。なお、カスタマイズ内容513を応答メッセージに適用する処理は、例えばXSLT(XML Stylesheet Language Transformations)やポップアップなどの従来技術で実現可能であるため、詳細な処理については省略する。
カスタマイズ適用部223は、カスタマイズ適用ユーザ状態定義情報252から行が検索されなかった場合(ステップ713の結果が「no」)、又はユーザ状態履歴情報253の遷移元識別子552と同一の遷移元識別子条件533が検索されなかった場合には(ステップ714の結果が「no」)、必要に応じてカスタマイズを適用する。具体的には、遷移元に依存しないカスタマイズ内容が定義されている場合には通信解析部222から送信された要求メッセージに適用し、応答メッセージを作成する(ステップ716)。なお、カスタマイズ内容を応答メッセージに適用する処理は、ステップ715と同様に、従来技術によって実現可能である。
最後に、カスタマイズ適用部223は、通信解析部222に応答メッセージを送信する(ステップ717)。
<アプリケーション実行方法の具体例>
ここで、前述した教育支援システムに本発明の第1の実施の形態を適用することによって、具体的な動作について説明する。
教育支援システムは、教育科目の中から、ユーザが受講を希望する科目を選択し、申し込みを行う処理を支援するシステムである。教育支援システムは、企業で主催する研修などを想定している。
教育支援システムに含まれる各アプリケーション実行サーバは、すべて同じ時期に開発されたのではなく、後から追加されたアプリケーションが含まれる。また、複数の拠点を有する企業の場合には、同一又は類似する機能を備えるアプリケーション実行サーバが各拠点に配置される場合もある。教育支援システムは、開発時期及び拠点が異なるアプリケーション実行サーバが連携することによって構成される。
まず、教育支援システムに含まれる各アプリケーション実行サーバの機能について説明する。
図4は、本発明の第1の実施の形態の教育支援システムに含まれる各アプリケーション実行サーバの機能について説明する図である。
教育支援システムには、アプリケーション実行サーバ411、412及び413が含まれる。アプリケーション実行サーバ411、412及び413は、図2に示したアプリケーション実行サーバ261、262及び263に相当する。
アプリケーション実行サーバ411は、科目詳細アプリケーション421及び受講者の感想アプリケーション422を提供する。アプリケーション実行サーバ412は、教育申込アプリケーション431を提供する。アプリケーション実行サーバ413は、スケジューラアプリケーション441を提供する。各アプリケーションは、Webシステムである。
科目詳細アプリケーション421には、科目詳細画面451(URL:http://xxx.example/class_detail.html)が含まれる。科目詳細画面451は、教育科目のカリキュラム及び開講日程などの詳細情報を表示する。
受講者の感想アプリケーション422には、受講者の感想画面461(URL:http://xxx.example/feedback.html)が含まれる。受講者の感想画面461は、教育科目を以前に受講した人の感想などを表示する。
教育申込アプリケーション431には、科目選択画面471(URL:http://xxx.education/selection.html)、及び科目申込画面472(URL:http://xxx.education/registration.html)が含まれる。
科目選択画面471は、ユーザに対して開講予定の教育科目の一覧を表示する。科目申込画面472は、ユーザに受講を希望する科目の一覧を表示して各科目を受講する希望の日程の入力を受け付ける。
スケジューラアプリケーション441は、スケジューラ画面481(URL:http://yyy.schedule/schedule.html)が含まれる。スケジューラ画面481は、ユーザのスケジュールを表示する。
図8は、本発明の第1の実施の形態の教育支援システムの教育申込アプリケーション431を利用する業務の流れを示すフローチャートである。
教育支援システムは、まず、開講中又は開講予定の教育科目の中で、受講を希望する科目を検索するために、科目選択画面471を表示し、ユーザから興味のある科目の選択を受け付ける(ステップ811)。
教育支援システムは、ステップ811の処理で選択された興味のある科目について、ユーザがカリキュラム及び講師などの詳細情報を確認するために、科目詳細画面451を表示する(ステップ812)。ユーザは、科目詳細画面451を参照して、科目の詳細を確認し、選択した科目を受講するか否かを決定する。
教育支援システムは、ユーザがステップ812の処理で受講を希望すると決定した科目の申し込みを受け付けるために、科目申込画面472を表示する(ステップ813)。
教育支援システムは、ユーザが受講を希望する科目の開催日程を確認するために、再度、科目詳細画面451を表示する(ステップ814)。
教育支援システムは、ユーザがステップ814の処理で確認した開催日程に基づいて、受講を希望する日程を入力し、科目の申し込みを行うために、科目申込画面472を表示する(ステップ815)。
また、図8に示すフローチャートでは、ユーザが教育支援システムを利用して教育を申し込む流れの中で、ステップ811からステップ812までを科目選択シーン821としている。一方、ステップ813からステップ815までを科目申込シーン822としている。
さらに、図5Aに示したカスタマイズ定義情報251、及び図5Bに示したカスタマイズ適用ユーザ状態定義情報252に基づいて、図8に示したフローチャートに対応するカスタマイズ実行サーバ221の動作について説明する。また、各処理におけるユーザ状態履歴情報253の状態についてあわせて説明する。ここでは簡単のため、ユーザ状態履歴情報253には何も登録されていない状態から処理が開始されたものとする。
カスタマイズ実行サーバ221は、ステップ811において、クライアント212から科目選択画面471(URL:http://xxx.education/selection.html)にアクセスするための要求メッセージを受信する。これは、図6のステップ612の処理に対応する。
また、科目選択画面471のURLと一致するカスタマイズ対象識別子532を有する行は、カスタマイズ適用ユーザ状態定義情報252には含まれていない。すなわち、図6のステップ613の処理の結果は「no」になる。
通信解析部222は、遷移先の画面の所在情報がカスタマイズ適用ユーザ状態定義情報252の行541の遷移元識別子条件533と同一であるため(図6のステップ616の結果が「yes」)、ユーザ状態履歴情報253を更新する。具体的には、遷移先識別子553に参照先の識別子(科目選択画面471のURL)が設定された行がユーザ状態履歴情報253に新たに追加される(図6のステップ617)。このとき、ユーザ状態履歴情報253は、図10Aのユーザ状態履歴情報1011に示した状態になる。
次に、ステップ812において、カスタマイズ実行サーバ221は、クライアント212から科目詳細画面451(URL:http://xxx.example/class_detail.html)にアクセスするための要求メッセージを受信する(図6のステップ612)。
通信解析部222は、遷移先の画面の所在情報(科目詳細画面451のURL)がカスタマイズ対象識別子532と一致する行をカスタマイズ適用ユーザ状態定義情報252から取得する。さらに、取得された行のカスタマイズID531と一致するカスタマイズID551を有する行をユーザ状態履歴情報253から取得する。ステップ812の処理では、カスタマイズ適用ユーザ状態定義情報252の行541及び542のカスタマイズ対象識別子532が科目詳細画面451のURLと一致し、さらに、行541のカスタマイズID531(=100)がユーザ状態履歴情報1011の行のカスタマイズID551と一致する。したがって、図6のステップ613の結果が「yes」となり、通信解析部222は、図6のステップ614及びステップ615の処理によって、ユーザ状態履歴情報1011を図10Bに示したユーザ状態履歴情報1021に更新する。その後、カスタマイズ適用部223は、カスタマイズ定義情報251の行521のカスタマイズ内容1を科目詳細画面451に適用する(図6のステップ620、図7)。カスタマイズ適用後、ユーザ状態履歴情報1021の対応する行は削除される(図6のステップ622)。
次に、ステップ813において、カスタマイズ実行サーバ221は、クライアント212から科目申込画面472(URL:http://xxx.education/registration.html)にアクセスするための要求メッセージを受信する(図6のステップ612)。
通信解析部222は、ステップ811と同様に、遷移先の画面の所在情報がカスタマイズ適用ユーザ状態定義情報252の行542の遷移元識別子条件533と同一であるため(図6のステップ616の結果が「yes」)、ユーザ状態履歴情報253を更新する(図6のステップ617)。このとき、ユーザ状態履歴情報253は、図10Cのユーザ状態履歴情報1031に示した状態になる。
次に、ステップ814において、カスタマイズ実行サーバ221は、クライアント212から科目詳細画面451(URL:http://xxx.example/class_detail.html)にアクセスするための要求メッセージを受信する。
通信解析部222は、遷移先の画面の所在情報(科目詳細画面451のURL)がカスタマイズ対象識別子532と一致する行をカスタマイズ適用ユーザ状態定義情報252から取得する。さらに、取得された行のカスタマイズID531と一致するカスタマイズID551を有する行をユーザ状態履歴情報1031から取得する。
ステップ814の処理において、条件に適合する行が取得されるため(図6のステップ613の結果が「yes」)、通信解析部222は、図6のステップ614及びステップ615の処理によって、ユーザ状態履歴情報1031を図10Dに示したユーザ状態履歴情報1041に更新する。その後、カスタマイズ適用部223は、カスタマイズ定義情報251の行522のカスタマイズ内容2を科目詳細画面451に適用する(図6のステップ620、図7)。カスタマイズ適用後、ユーザ状態履歴情報1041の対応する行は削除される(図6のステップ622)。
最後に、ステップ815において、カスタマイズ実行サーバ221は、クライアント212から科目申込画面472(URL:http://xxx.education/registration.html)にアクセスするための要求メッセージを受信する。通信解析部222は、受信した要求メッセージを解析する。このとき、条件に一致しないため(図6のステップ613及びステップ616の結果が「no」)、ユーザ状態履歴情報253を更新しない。
図9は、本発明の第1の実施の形態の教育支援システムの各シーンで表示される科目詳細画面の一例を示す図である。
図9には、従来のアプリケーション実行方法を適用した場合の科目詳細画面451と、本発明の第1の実施の形態によるアプリケーション実行方法を適用した場合の科目詳細画面451が示されている。
従来のアプリケーション実行方法による結果911では、科目選択シーン821と科目申込シーン822の両方において、同じ科目詳細画面921が表示される。科目詳細画面921には、図4に示したデフォルトの科目詳細画面451に対して、受講者の感想931とスケジュール932が同時に関連付けられて表示されている。
一方、本発明の第1の実施の形態のアプリケーション実行方法による結果912では、科目選択シーン821の場合には科目詳細画面922が表示され、科目申込シーン822の場合には科目詳細画面923が表示される。
科目選択シーン821で表示される科目詳細画面922には、受講者の感想931が関連付けられる。また、科目申込シーン822で表示される科目詳細画面923には、ユーザのスケジュール932が関連付けられる。
図9を参照すると、各科目詳細画面の右側には、スクロールバーが配置されているが、従来のアプリケーション実行方法と比較して、本発明の第1の実施の形態に係る科目詳細画面では表示される項目が少ないため、スクロール範囲を小さくすることができる。すなわち、ユーザが迅速に目的の情報を見つけることが可能となる。
<カスタマイズ定義>
続いて、ユーザがカスタマイズ適用ユーザ状態定義情報252を定義するために利用されるユーザ状態定義画面について、図11から図13Bを用いて説明する。本発明では、アプリケーションのカスタマイズをユーザ自身で行うことが可能である。すなわち、カスタマイズ定義機能は、クライアントから操作可能である。
ユーザ状態定義画面は、ユーザがアプリケーションを実行している間に適宜に生成可能であり、ユーザの要求に応じて起動される。ユーザは、ユーザ状態定義画面を介して、カスタマイズの適用条件を含むユーザの状態を定義し、カスタマイズ適用ユーザ状態定義情報252に格納する。
ユーザがアプリケーションを変更するタイミングは、アプリケーションの実行中であることが想定されている。ここでいうアプリケーションの変更は、表示項目の追加などである。ユーザは、アプリケーションを実行中に、業務の変化に応じてアプリケーションを業務の目的に合った形に変更するためにアプリケーション変更機能を実行する。ユーザは、アプリケーション変更機能によって、アプリケーションの変更方法を定義する。アプリケーション変更機能については、従来技術を利用すればよいため、ここではその詳細を記述しない。また、ユーザがアプリケーション変更機能を呼び出す方法には、例えば、ユーザがアプリケーションの実行中に画面上のツールバーから呼び出す方法、及びコンテキストメニューから呼び出す方法がある。
カスタマイズの適用条件であるユーザの状態を定義及びアプリケーションの変更が完了すると、カスタマイズされたアプリケーションを即座に提供することが可能となる。
以降、ユーザ状態定義画面を生成するための構成を追加したカスタマイズ実行サーバ221の構成、カスタマイズ機能を実行するための手順、及びアプリケーションを変更(カスタマイズ)するための画面について説明する。
図11は、本発明の第1の実施の形態のアプリケーションのカスタマイズ機能を含むカスタマイズ実行サーバ221の構成を示すブロック図である。
図11に示したカスタマイズ実行サーバ221の構成には、図3に示した構成に加え、アプリケーションの変更を定義するための構成が追加されている。具体的には、主記憶装置323にカスタマイズ定義画面生成部1911が記憶され、さらに、二次記憶装置324に画面履歴情報1951が格納されている。
カスタマイズ定義画面生成部1911は、アプリケーションを変更する場合にユーザからの入力を受け付ける定義画面を生成する。また、カスタマイズ定義画面生成部1911には、ユーザ状態定義画面生成部1921が含まれる。ユーザ状態定義画面生成部1921は、アプリケーションを変更するタイミングを定義するための情報を入力するユーザ状態定義画面を生成する。
さらに、ユーザ状態定義画面生成部1921には、画面履歴取得部1931及び定義画面生成部1941が含まれる。画面履歴取得部1931は、ユーザとアプリケーションとの間の通信情報を取得する。定義画面生成部1941は、ユーザ状態定義画面を生成する。
画面履歴情報1951は、ユーザとアプリケーションの通信情報を格納する。画面履歴情報1951には、ユーザが変更対象のアプリケーションに至るまでに実行を指示した1つ以上のアプリケーションの所在情報(URL)、当該アプリケーションの画面情報、及びアプリケーションの実行順序などが含まれる。
続いて、カスタマイズ機能の実現するための処理について説明する。カスタマイズを定義する処理は、アプリケーションを利用して通常の業務処理を行う場合に画面履歴情報を記憶する処理2011と、カスタマイズ機能を実行する処理2031に分けられる。
図12Aは、本発明の第1の実施の形態の画面履歴情報を記憶する処理2011の手順を示すフローチャートである。
クライアント212は、ユーザによって要求されたアプリケーションによって提供される画面の所在情報に要求メッセージを送信する(ステップ2021)。
ユーザ状態定義画面生成部1921は、画面履歴取得部1931によって、ステップ2021の処理で送信された要求メッセージを取得する。さらに、要求メッセージの構造を解析し、遷移先の画面の所在情報を取得し、画面履歴情報1951に格納する(ステップ2022)。例えば、HTTPによる通信であれば、要求メッセージに含まれるリクエスト行に設定されたリクエストURIパラメータを取得することによって、遷移先の所在情報を取得できる。
画面履歴取得部1931は、取得した画面の所在情報に対応するアプリケーションに要求メッセージを送信し、アプリケーションからの応答メッセージを受信する(ステップ2023)。
画面履歴取得部1931は、ステップ2023の処理で取得した応答メッセージを解析し、画面情報などの情報を取得し、画面履歴情報1951に格納する。例えば、HTTPによる通信であれば、応答メッセージのHTTPヘッダ又はHTTPボディに設定された値を取得することによって、画面情報などを取得できる。
図12Bは、本発明の第1の実施の形態のカスタマイズ条件及びカスタマイズ内容を定義する処理2031の手順を示すフローチャートである。
ユーザ状態定義画面生成部1921は、クライアント212を介してユーザから要求されたアプリケーションのカスタマイズの実行要求を受け付ける。前述のように、アプリケーションのカスタマイズは、業務の変化に応じてアプリケーションを業務の目的に合った形に変更するために、ユーザがアプリケーションを実行しているときに要求される。ユーザ状態定義画面生成部1921は、ユーザからの要求に応じてアプリケーションのカスタマイズ変更機能を実行する。そして、カスタマイズ定義画面をユーザに提示し、具体的なカスタマイズ内容の入力を受け付ける(ステップ2041)。なお、カスタマイズ定義画面の詳細については、図13Aにて後述する。
ユーザ状態定義画面生成部1921の定義画面生成部1941は、ユーザとアプリケーションの通信情報が格納された画面履歴情報1951に基づいて、ユーザ定義画面を生成する(ステップ2042)。なお、ユーザ定義画面の詳細については、図13Bにて後述する。ユーザ状態定義画面には、ユーザがアプリケーションの実行を指示した順序を示す遷移履歴情報と、遷移履歴情報に対応したアプリケーションの画面情報を含む。さらに、ユーザの状態をカスタマイズ適用条件として定義するための機能、例えば、ダイアログボックスを含む。
ユーザ状態定義画面生成部1921は、アプリケーション変更方法の定義が終了すると、ステップ2042の処理で生成されたユーザ定義情報画面を介して、カスタマイズ適用条件として定義されるユーザの状態の入力を受け付ける(ステップ2043)。
ユーザ状態定義画面生成部1921は、ステップ2043の処理で定義された内容を、カスタマイズ適用ユーザ状態定義情報252に格納する(ステップ2044)。
さらに、以上示した手順によって、ユーザが実際にアプリケーションをカスタマイズするための画面について説明する。
図13Aは、本発明の第1の実施の形態のカスタマイズ定義画面2111の一例を示す図である。
カスタマイズ定義画面2111には、アプリケーションの変更方法を定義するために必要な部品2121と、変更対象のアプリケーションの画面情報2131が表示される。具体的には、変更対象の画面に対し、必要な部品2121を配置することによって、アプリケーションをカスタマイズする。
図13Bは、本発明の第1の実施の形態のユーザ状態定義画面2141の一例を示す図である。
ユーザ状態定義画面2141には、遷移履歴2151と画面構造2161が表示される。遷移履歴2151は、ユーザが変更対象のアプリケーションの実行を指示する以前に実行を指示したアプリケーションの画面の遷移履歴情報である。画面構造2161は、遷移履歴2151に含まれる各画面に対応した画面の構造情報である。遷移履歴2151から画面が選択されると、画面構造2161に対応する画面が表示される。
ユーザは、アプリケーションの実行中に業務の変化に合わせてアプリケーション変更機能を実行し、カスタマイズ定義画面2111を使用して、アプリケーションをカスタマイズする。そして、カスタマイズ終了後に引き続いて、ユーザ状態定義画面2141を使用してカスタマイズ適用条件となるユーザの状態を定義する。以下に、ユーザ状態定義画面2141を利用する具体例を示す。
教育支援システムでは、ユーザは、科目詳細画面を参照する前に科目一覧画面を参照していたのか、又は科目申込画面を参照していたのかを遷移履歴2151から選択することができる。したがって、ユーザが遷移履歴2151で選択した画面を遷移元の画面の所在情報をカスタマイズ適用条件として定義することができる。
以上のように、ユーザ状態定義画面を介して、変更対象のアプリケーションに至るまでに実行されたアプリケーションの履歴などに基づいて、ユーザの状態をカスタマイズ適用条件として定義することが可能となる。
<効果>
本発明の第1の実施の形態によれば、同一の画面を表示する場合であっても、業務の流れに応じて表示する情報を変更することができる。具体的には、ユーザが変更対象のアプリケーションの画面にアクセスする以前にアクセスしていた1つ以上のアプリケーションの所在情報をカスタマイズ定義の適用条件とすることによって、業務の流れに応じたカスタマイズを行うことができる。
例えば、教育支援システムにおいて、科目を選択するシーンで科目の主催を参照する場合には、受講者の感想といった科目の選択に役立つ情報を表示することができる。これに対し、選択する科目が決定した後に科目の履修を申し込む場合には、講義日程とともにユーザのスケジュールを表示することが可能となる。このように、ユーザが実施する業務の目的に沿った情報を適切に取得できる。
さらに、本発明の第1の実施の形態によれば、ユーザ自身でアプリケーションをカスタマイズすることができるため、システム開発者などがアプリケーションをカスタマイズする場合と比較してより業務に適合したカスタマイズを行うことができる。
以上のように、本発明の第1の実施の形態によれば、ユーザが業務ごとに適切な機能を提供できるように、ユーザ自身でアプリケーションをカスタマイズすることができるため、業務の生産性を向上させることが期待される。
(第2の実施の形態)
続いて、本発明の第2の実施の形態について、図14から図18を参照しながら説明する。
第1の実施の形態では、ユーザが変更対象のアプリケーションの画面にアクセスする前にアクセスした1つ以上のアプリケーションの画面の所在情報をアプリケーションの変更条件としていた。
しかし、画面の所在情報が同じで動的に構造情報が変更される、例えば、JavaScript(登録商標、以下同じ)のようなDHTML(Dynamic HyperText Markup Language)を利用した画面を有するアプリケーションでは、ユーザがアプリケーションと直接通信することなく、動的にアプリケーションの画面の構造情報を変更することが可能である。そのため、ユーザが業務の異なる場面において、画面の所在情報が同じ、かつ、動的に画面の構造情報を変更可能なアプリケーションを利用する場合には、第1の実施の形態に示した方法では、業務の場面に応じてアプリケーションを変更することができない可能性がある。
そこで、本発明の第2の実施の形態では、変更対象のアプリケーションの実行前に実行された1つ以上のアプリケーションが、動的に構造情報を変更可能な画面情報を提供する場合にも、業務に応じてカスタマイズされたアプリケーションを提供する。
なお、第2の実施の形態では、第1の実施の形態と共通する構成については、適宜説明を省略し、相違する構成を中心に説明する。また、第2の実施の形態は、図2及び図3に示した第1の実施の形態のシステム構成と同様である。
<各定義情報の内容>
ここで、本発明の第2の実施の形態のアプリケーション実行システムで使用される定義情報の詳細について説明する。定義情報の種類は、第1の実施の形態と同様に、カスタマイズ実行サーバ221に格納されているカスタマイズ定義情報251、カスタマイズ適用ユーザ状態定義情報252及びユーザ状態履歴情報253の3種類である。
図14Aは、本発明の第2の実施の形態のカスタマイズ定義情報251の一例を示す図である。カスタマイズ定義情報251は、第1の実施の形態と同じであるため、説明を省略する。
図14Bは、本発明の第2の実施の形態のカスタマイズ適用ユーザ状態定義情報252の一例を示す図である。
カスタマイズ適用ユーザ状態定義情報252には、図5Bに示した第1の実施の形態の構成に加えて、新たにカスタマイズ適用条件として、遷移元構造条件1111が追加されている。カスタマイズID531、カスタマイズ対象識別子532及び遷移元識別子条件533については、第1の実施の形態と同様である。
遷移元構造条件1111は、変更対象のアプリケーションの実行を指示する前に、実行が指示された1つ以上のアプリケーションによって提供される画面情報において、ユーザが画面上で選択した画面の構造情報である。
例えば、図14Bに示したカスタマイズ適用ユーザ状態定義情報252の行1131では、変更対象のアプリケーションによって提供される画面の所在情報「http://xxx.example/company_detail.html」の前に、所在情報「http://example/company_list.html」に対応する画面が表示されている。さらに、所在情報「http://example/company_list.html」に対応する画面において、ユーザが「/html/group/label=Area」に対応する画面の構造情報を選択した場合に、カスタマイズ内容を適用することを示している。構造情報は、例えば、XPATH(XML Path Language)のようなマークアップ言語に準拠した文書の特定の部分を指定する言語構文を利用して表現することができる。
なお、遷移元構造条件1111には、ユーザが変更対象のアプリケーションに実行を指示する前に、実行を指示した1つ以上のアプリケーションによって提供される画面情報において、ユーザが画面上で選択した画面の構造情報を、アプリケーションの実行を指示した順序で連結した値を含めることができる。
図14Cは、本発明の第2の実施の形態のユーザ状態履歴情報253の一例を示す図である。
ユーザ状態履歴情報253には、図5Cに示した第1の実施の形態の構成に加えて、新たにカスタマイズ適用条件として、ユーザによって選択された画面構造情報である選択構造1121が追加されている。カスタマイズID551、遷移元識別子552及び遷移先識別子553については、第1の実施の形態と同様である。
選択構造1121は、ユーザが変更対象のアプリケーションにアクセスする以前にアクセスした複数のアプリケーションによって提供される画面で選択された構造情報である。
例えば、図14Cに示したユーザ状態履歴情報253の行1141では、現時点で所在情報「http://xxx.example/company_detail.html」に対応する画面が表示されている。「http://xxx.example/company_detail.html」に対応する画面を表示する前には、アプリケーションによって提供される所在情報「http://example/company_list.html」に対応する画面が表示され、当該画面において、ユーザが「/html/group/label=Area」に対応した構造情報を選択したことを示している。
<通信解析部の処理の流れ>
図15A及び図15Bは、本発明の第2の実施の形態の通信解析部222による処理手順を示すフローチャートである。
図15A及び図15Bに示すフローチャートでは、図6に示した処理に加え、ステップ1201からステップ1204の処理が新たに追加されている。なお、図15A及び図15Bのステップ611からステップ623の処理は、図6のステップ611からステップ623の処理を同様であるため説明を省略し、ステップ1201からステップ1204の処理について説明する。
ユーザ状態解析部231は、ステップ612の処理で取得された要求メッセージの構造を解析し、ユーザが画面上で選択した構造情報と応答メッセージに対応した画面の所在情報を示す識別子が追加されているか否かを判定する(ステップ1201)。そして、要求メッセージに構造情報が追加されていた場合には(ステップ1201の結果が「yes」)、ステップ1202の処理を実行する。また、構造情報が含まれていない場合には(ステップ1201の結果が「no」)、ステップ620の処理を実行する。
ユーザ状態解析部231は、カスタマイズ適用ユーザ状態定義情報252から、遷移元構造条件1111と遷移元識別子条件533の組が、ステップ1201の処理で取得された構造情報と画面の所在情報の組と、同一の値を含む行を特定する。そして、特定された行に対応するカスタマイズID531を取得し、同一の値を有するユーザ状態履歴情報253のカスタマイズID551の行を特定し、当該行の選択構造1121に、ステップ1201の処理で取得された構造情報を設定する(ステップ1202)。
ユーザ状態解析部231は、遷移元識別子条件533にステップ612の処理で取得された遷移先の所在情報と同一の値を有し、かつ、遷移元構造条件1111に画面の構造情報を定義した値を含む行がカスタマイズ適用ユーザ状態定義情報252に含まれるか否かを判定する(ステップ1203)。条件を満たす遷移元識別子条件533及び遷移元構造条件1111を含む行が存在する場合には(ステップ1203の結果が「yes」)、ステップ1204の処理を実行する。一方、条件を満たす遷移元識別子条件533及び遷移元構造条件1111を含む行が存在しない場合には(ステップ1203の結果が「no」)、ステップ621の処理を実行する。
ユーザ状態解析部231は、カスタマイズ適用部223から受信した応答メッセージに対応した画面情報からユーザによって選択された構造情報を取得し、画面の所在情報と選択された構造情報を取得するためのプログラムを追加する(ステップ1204)。具体的には、受信した応答メッセージによってクライアントに提示される画面を介して、次に要求メッセージを送信する場合に、ユーザが画面上で選択した構造情報と対応する画面の所在情報を示す識別子をカスタマイズ実行サーバ221に送信する処理が実行されるプログラムである。
選択された構造情報及び応答メッセージに対応する画面の所在情報をカスタマイズ実行サーバ221に送信するプログラムは、例えば、JavaScriptのようなプログラミング言語を用いることによって実現可能である。具体的には、Webシステムの場合には、画面情報であるHTMLファイルにJavaScriptなどによって記述されたプログラムを埋め込めばよい。また、カスタマイズ実行サーバ221に構造情報を送信する方法としては、例えば、HTTPを使った通信であれば、HTTPヘッダにユーザが画面上で選択した構造情報を格納すればよい。
<カスタマイズ適用部の処理の流れ>
図16は、本発明の第2の実施の形態のカスタマイズ適用部223による処理手順を示すフローチャートである。
図16に示すフローチャートでは、図7に示した処理に加え、ステップ1301及びステップ1302の処理が新たに追加されている。なお、図16のステップ711からステップ717の処理は、図6のステップ711からステップ717の処理を同様であるため説明を省略し、ステップ1301及びステップ1302の処理について説明する。
ユーザ状態判定部241は、ステップ714の処理で取得された遷移元識別子552と遷移元識別子条件533が同一であって、カスタマイズ適用ユーザ状態定義情報252の遷移元構造条件1111と、ユーザ状態履歴情報253の選択構造1121が同じ行が存在するか否かを判定する(ステップ1301)。遷移元構造条件1111と同一の選択構造1121を含む行が存在する場合には(ステップ1301の結果が「yes」)、ステップ1302の処理を実行する。遷移元構造条件1111と同一の選択構造1121を含む行が存在しない場合には(ステップ1301の結果が「no」)、ステップ716の処理を実行する。
カスタマイズ適用部223は、ステップ1301の処理で取得されたカスタマイズ定義情報251のカスタマイズID511の行に含まれるカスタマイズ内容513を応答メッセージに適用することによって、新たな応答メッセージを作成する(ステップ1302)。
<アプリケーション実行方法の具体例>
ここで、本発明の第2の実施の形態を企業情報参照システムに適用することによって、アプリケーション実行方法の具体的な動作及び効果について説明する。企業情報参照システムは、ユーザが拡販活動の中で顧客企業の情報を確認する場合などに利用されるシステムである。
図17は、本発明の第2の実施の形態の企業情報参照システムに含まれる各アプリケーション実行サーバの機能について説明する図である。
企業情報参照システムには、アプリケーション実行サーバ1461、1471及び1481が含まれる。アプリケーション実行サーバ1461、1471及び1481は、図2に示したアプリケーション実行サーバ261、262及び263に相当する。
アプリケーション実行サーバ1461は、企業詳細アプリケーション1401及び経済状況アプリケーション1402を提供する。アプリケーション実行サーバ1471は、企業情報参照アプリケーション1403を提供する。アプリケーション実行サーバ1481は、取引履歴アプリケーション1404を提供する。各アプリケーションは、Webシステムである。
企業詳細アプリケーション1401には、企業情報の詳細を表示する企業詳細画面1411(URL:http://xxx.example/company_detail.html)が含まれる。また、経済状況アプリケーション1402には、企業が所在する地域の経済状況を表示する経済状況画面1421(URL:http://xxx.example/area_report.html)が含まれる。
企業情報参照アプリケーション1403には、企業の一覧を表示する企業一覧画面1431(URL:http://example/company_list.html)が含まれる。企業一覧画面1431は、「地域」又は「得意先/重点顧客」が選択されることによって、異なる構造で画面が動的に生成される。
取引履歴アプリケーション1404には、該当する企業の取引履歴を表示する取引履歴画面1441(URL:http://yyy.business/deal.html)を含むことを示している。
ここで、ユーザが拡販活動を実施するため、企業情報参照システムで企業一覧画面1431を参照し、その後、企業の詳細を確認するために、企業詳細画面1411を参照する業務の流れがあるとする。
このとき、ユーザが企業一覧画面1431で企業が所在する「地域」の観点を選択してから企業詳細画面1411を確認する場面と、「得意先/重点顧客」の観点を選択してから企業詳細画面1411を確認する場面がある。このような2つの場面では、ユーザが企業詳細画面1411を参照する目的が異なるため、企業の詳細情報と合わせて確認したい情報が異なると考えられる。
例えば、ユーザが「地域」の観点を選択して、企業詳細画面1411を参照する場合には、企業の詳細情報と合わせて、地域の経済状況を表示する経済状況画面1421の情報を合わせて確認する。また、ユーザが「得意先/重点顧客」の観点を選択して、企業詳細画面1411を参照するときには、企業の詳細情報と合わせて、顧客との取引履歴を合わせて確認するといった場合がある。
以下、図14Aから図14Cに示したカスタマイズ定義情報251、カスタマイズ適用ユーザ状態定義情報252及びユーザ状態履歴情報253に基づいて、「地域」観点で企業詳細画面1411を確認する場面と、「得意先/重点顧客」観点で企業詳細画面1411を確認する場面における処理の流れを説明する。
(「地域」観点における詳細画面)
カスタマイズ実行サーバ221は、クライアント212から企業一覧画面1431(URL:http://example/company_list.html)にアクセスするための要求メッセージを受け付けると、通信解析部222によって受信した要求メッセージを解析する。
通信解析部222は、遷移先の画面の所在情報がカスタマイズ適用ユーザ状態定義情報252の行1131及び1132と同一であるため、ユーザ状態履歴情報253を更新する。
さらに、ユーザ状態解析部231は、遷移先の画面の所在情報及び遷移元識別子条件533が同一であって、遷移元構造条件1111が定義されているため、クライアント212に対する応答メッセージに、構造情報と応答メッセージに対応した画面の所在情報をカスタマイズ実行サーバ221に送信するプログラムを埋め込む(図15Bのステップ1204)。この時点におけるユーザ状態履歴情報253は、図18Aのユーザ状態履歴情報1511に示した状態になっている。
次に、ユーザは、カスタマイズ実行サーバ221から取得した企業一覧画面1431で、観点選択ラジオボタン1451の「地域」を選択し、詳細情報を参照したい企業を選択する。
カスタマイズ実行サーバ221は、クライアント212から企業詳細画面1411(URL:http://xxx.example/company_detail.html)にアクセスするための要求メッセージを受信し、通信解析部222によって受信した要求メッセージを解析する。そして、通信解析部222は、遷移先の画面の所在情報が変更対象の企業詳細画面1411と同一であるため、ユーザ状態履歴情報1511を更新する。
通信解析部222は、要求メッセージにユーザが企業一覧画面1431で選択した構造情報が含まれているため、選択した構造情報に基づいてユーザ状態履歴情報1511を更新する(図15Aのステップ1202)。この時点では、ユーザ状態履歴情報は、図18Bのユーザ状態履歴情報1512に示す状態となる。
そして、カスタマイズ適用部223は、カスタマイズ適用ユーザ状態定義情報252の行1131がユーザ状態履歴情報1512に適合するため、カスタマイズ定義情報251の行1151のカスタマイズ内容3を企業詳細画面1411に適用する。
(「得意先/重点顧客」観点における詳細画面)
カスタマイズ実行サーバ221は、クライアントから企業一覧画面1431にアクセスするための要求メッセージを受け付けると、通信解析部222によって受信した要求メッセージを解析する。
通信解析部222は、遷移先の画面の所在情報がカスタマイズ適用ユーザ状態定義情報252の行1131及び1132と同一であるため、ユーザ状態履歴情報253を更新する。
さらに、ユーザ状態解析部231は、遷移先の画面の所在情報及び遷移元識別子条件533が同一であって、遷移元構造条件1111が定義されているため、クライアント212に対する応答メッセージに、構造情報と応答メッセージに対応した画面の所在情報をカスタマイズ実行サーバ221に送信するプログラムを埋め込む(図15Bのステップ1204)。この時点におけるユーザ状態履歴情報253は、図18Cのユーザ状態履歴情報1513に示した状態になる。
次に、ユーザは、カスタマイズ実行サーバ221から取得した企業一覧画面1431で、観点選択ラジオボタン1451の「得意先/重点顧客」を選択し、詳細情報を参照したい企業を選択する。
カスタマイズ実行サーバ221は、クライアント212から企業詳細画面1411にアクセスするための要求メッセージを受信し、通信解析部222によって受信した要求メッセージを解析する。そして、通信解析部222は、遷移先の画面の所在情報が変更対象の企業詳細画面1411と同一であるため、ユーザ状態履歴情報1513を更新する。
また、通信解析部222は、要求メッセージにユーザが企業一覧画面1431で選択した構造情報が含まれているため、選択した構造情報に基づいてユーザ状態履歴情報253を更新する(図15Aのステップ1202)。この時点では、ユーザ状態履歴情報は、図18Dのユーザ状態履歴情報1514に示す状態となっている。
そして、カスタマイズ適用部223は、カスタマイズ適用ユーザ状態定義情報252の行1132がユーザ状態履歴情報1514に適合するため、カスタマイズ定義情報251の行1152のカスタマイズ内容4を企業詳細画面1411に適用する。
<カスタマイズ定義>
本発明の第2の実施の形態において、カスタマイズ適用条件を設定する方法について補足する。
企業検索システムの例では、ユーザは企業一覧画面を図13Bの遷移履歴2151から選択し、画面構造2161に表示された画面情報から、カスタマイズ適用条件として登録する画面の構造「地域」又は「得意先/重点顧客」を選択する。その後、カスタマイズ定義画面2111を利用して、カスタマイズ内容を定義する。そして、選択した画面の所在情報などと合わせて、画面の構造をカスタマイズ適用条件として定義する。
<効果>
本発明の第2の実施の形態によれば、カスタマイズ適用条件に選択された構造を追加することによって、変更対象のアプリケーションの実行前に実行された1つ以上のアプリケーションが、動的に構造情報を変更可能な画面情報を提供する場合にも、業務に応じてカスタマイズされたアプリケーションをユーザに提供することができる。
(第3の実施の形態)
続いて、本発明の第3の実施の形態について、図19から図21を参照しながら説明する。
第2の実施の形態では、ユーザが変更対象のアプリケーションの画面にアクセスする前にアクセスした1つ以上のアプリケーションの画面の所在情報と、ユーザが画面上で選択した画面の構造情報をアプリケーションの変更条件としていた。
しかし、ユーザがアプリケーションの提供する画面情報を介して操作する場合には、第2の実施の形態のようにユーザが画面上で選択した画面の構造情報を利用するのではなく、アプリケーションによって生成されるクエリ識別子を利用するようにしてもよい。クエリ識別子とは、ユーザがアプリケーションによって提供された画面を操作した場合に、アプリケーションによって生成される要求メッセージに含まれる。例えば、アプリケーションがHTTPによって通信する場合には、HTTPヘッダ又はHTTPメッセージボディにクエリ識別子が含まれる。
第3の実施の形態では、ユーザがアプリケーションの実行を指示する場合に、ユーザの画面操作にともなって生成されるクエリ識別子に基づいて、カスタマイズされたアプリケーションを提供する方法について説明する。
なお、第3の実施の形態では、第1の実施の形態と共通する構成については、適宜説明を省略し、相違する構成を中心に説明する。また、第3の実施の形態は、図2及び図3に示した第1の実施の形態のシステム構成と同様である。
<各定義情報の内容>
ここで、本発明の第3の実施の形態のアプリケーション実行システムで使用される定義情報の詳細について説明する。定義情報の種類は、第1の実施の形態と同様に、カスタマイズ実行サーバ221に格納されているカスタマイズ定義情報251、カスタマイズ適用ユーザ状態定義情報252及びユーザ状態履歴情報253の3種類である。
図19Aは、本発明の第3の実施の形態のカスタマイズ定義情報251の一例を示す図である。カスタマイズ定義情報251は、第1の実施の形態と同じであるため、説明を省略する。
図19Bは、本発明の第3の実施の形態のカスタマイズ適用ユーザ状態定義情報252の一例を示す図である。
カスタマイズ適用ユーザ状態定義情報252には、図5Bに示した第1の実施の形態の構成に加えて、新たにカスタマイズ適用条件として、クエリ識別子1611が追加されている。カスタマイズID531、カスタマイズ対象識別子532及び遷移元識別子条件533については、第1の実施の形態と同様である。
例えば、図19Bに示したカスタマイズ適用ユーザ状態定義情報252の行1631では、変更対象のアプリケーションによって提供される画面の所在情報「http://xxx.example/company_detail.html」の前に、所在情報「http://example/company_list.html」に対応する画面が表示される。さらに、所在情報「http://example/company_list.html」に対応する画面において、ユーザが画面上で何らかの操作を行った結果、アプリケーションが「target=Area」のクエリ情報を生成した場合にカスタマイズ内容を適用することを示している。
図19Cは、本発明の第3の実施の形態のユーザ状態履歴情報253の一例を示す図である。
ユーザ状態履歴情報253には、図5Cに示した第1の実施の形態の構成に加えて、新たにカスタマイズ適用条件として、ユーザによって操作された結果アプリケーションによって生成されたクエリ識別子1621が追加されている。カスタマイズID551、遷移元識別子552及び遷移先識別子553については、第1の実施の形態と同様である。
例えば、図19Cに示したユーザ状態履歴情報253の行1641では、現時点で所在情報「http://xxx.example/company_detail.html」に対応する画面が表示されている。「http://xxx.example/company_detail.html」に対応する画面を表示する前には、アプリケーションによって提供される所在情報「http://example/company_list.html」に対応する画面が表示され、当該画面において、ユーザが何らかの操作を実施した結果、「target=Area」で示すクエリ識別子が生成されたことを示している。
<通信解析部の処理の流れ>
図20A及び図20Bは、本発明の第3の実施の形態の通信解析部222による処理手順を示すフローチャートである。
図20A及び図20Bに示すフローチャートでは、図6に示した処理に加え、ステップ1701及びステップ1702の処理が新たに追加されている。なお、図20A及び図20Bのステップ611からステップ623の処理は、図6のステップ611からステップ623の処理を同様であるため説明を省略し、ステップ1701及びステップ1702の処理について説明する。
ユーザ状態解析部231は、ステップ612の処理で取得された要求メッセージの構造を解析し、クエリ識別子が含まれているか否かを判定する(ステップ1701)。要求メッセージにクエリ識別子が含まれていた場合には(ステップ1701の結果が「yes」)、ステップ1702の処理を実行する。クエリ識別子が含まれていない場合には(ステップ1702の結果が「no」)、ステップ620の処理を実行する。
ユーザ状態解析部231は、カスタマイズ適用ユーザ状態定義情報252から、クエリ識別子1611と遷移元識別子条件533の組が、ステップ1701の処理で取得されたクエリ識別子と画面の所在情報の組と、同一の値を含む行を特定する。そして、特定された行に対応するカスタマイズID531を取得し、同一の値を有するユーザ状態履歴情報253のカスタマイズID551の行を特定し、当該行のクエリ識別子1621に、ステップ1701の処理で取得された構造情報を設定する(ステップ1702)。
<カスタマイズ適用部の処理の流れ>
図21は、本発明の第3の実施の形態のカスタマイズ適用部223による処理手順を示すフローチャートである。
図21に示すフローチャートでは、図7に示した処理に加え、ステップ1801及びステップ1802の処理が新たに追加されている。なお、図21のステップ711からステップ717の処理は、図6のステップ711からステップ717の処理を同様であるため説明を省略し、ステップ1801及びステップ1802の処理について説明する。
ユーザ状態判定部241は、ステップ714の処理で取得された遷移元識別子552と遷移元識別子条件533が同一であって、カスタマイズ適用ユーザ状態定義情報252のクエリ識別子1611と、ユーザ状態履歴情報253のクエリ識別子1621が同じ行が存在するか否かを判定する(ステップ1801)。クエリ識別子1611と同一のクエリ識別子1621を含む行が存在する場合には(ステップ1801の結果が「yes」)、ステップ1802の処理を実行する。クエリ識別子1611と同一のクエリ識別子1621を含む行が存在しない場合には(ステップ1801の結果が「no」)、ステップ716の処理を実行する。
カスタマイズ適用部223は、ステップ1801の処理で取得されたカスタマイズ定義情報251のカスタマイズID511の行に含まれるカスタマイズ内容513を応答メッセージに適用することによって、新たな応答メッセージを作成する(ステップ1802)。
<カスタマイズ定義>
本発明の第3の実施の形態において、カスタマイズ適用条件を設定する方法について補足する。
本発明の第3の実施の形態の画面履歴情報1951には、アプリケーションによって提供される画面を介してユーザが操作する際に生成されるクエリ識別子がさらに含まれる。前述のように、クエリ識別子はHTTPヘッダ又はHTTPメッセージボディから取得することが可能である。
また、ユーザがクエリ識別子そのものを選択することが困難な場合には、画面履歴情報1951にユーザによる操作を識別する情報を記録し、カスタマイズ適用条件として定義する際に、操作内容を提示してクエリ識別子を指定できるようにしてもよい。
<効果>
本発明の第3の実施の形態によれば、カスタマイズ適用条件にユーザの操作によって生成されたクエリ識別子を追加することによって、業務に応じてカスタマイズされたアプリケーションを提供することができる。
なお、以上示した第1から第3の実施の形態のように、遷移元及び遷移先の画面、構造情報又はクエリ識別子の他に、例えば、クライアントからの要求に応じてアプリケーションサーバで生成される、または管理される情報をカスタマイズ適用条件に設定してもよい。アプリケーションサーバで生成される、または管理される情報には、例えば、アプリケーションサーバ上で動作するアプリケーションが出力するログ情報や、ユーザの所属、趣味、性別、年齢などのユーザプロファイル情報がある。また第1から第3の実施の形態でカスタマイズ適用条件として利用した遷移元及び遷移先の画面、構造情報又はクエリ識別子と、アプリケーションサーバで生成される、または管理される情報を組み合わせてカスタマイズ適用条件に設定しても良い。
図22は、上記を実現するための本発明のサーバ状態をアプリケーションの変更条件とする計算機システムの構成の一例を示すブロック図である。
図22では、図2に示した計算機システムの構成加えて、通信解析部222の中に、サーバ状態を取得するサーバ状態取得部232を加え、またクライアント実行サーバと、ネットワーク282を結線している。さらにアプリケーション実行サーバ261,262,263の中に、サーバ状態送信部291,292,293を加えている。
第1から第3の実施の形態では、カスタマイズ実行サーバ221が、クライアント211からアプリケーション実行サーバへの要求メッセージと、アプリケーション実行サーバからクライアントへの応答メッセージを、中間で取得していた。しかし、ここでは、カスタマイズ実行サーバ221は、アプリケーション実行サーバからクライアントへの応答メッセージのみを取得する形態とし、クライアント211からの要求メッセージは、カスタマイズ実行サーバ221を介さずに、直接、アプリケーション実行サーバへ送信されることを想定している。
サーバ状態取得部232は、クライアントから実行の指示があったアプリケーションの応答メッセージを通信解析部222が取得した時に、実行が指示されたアプリケーションが稼動するアプリケーション実行サーバに対してサーバ状態を取得する要求を出し、アプリケーション実行サーバからサーバ状態を取得する。そして、カスタマイズ適用ユーザ状態定義情報252を参照し、カスタマイズ適用ユーザ状態定義情報252に定義された内容に一致するときに、サーバ状態取得部232は、取得したサーバ状態をユーザ状態履歴情報253に格納する。
ここで、取得するサーバ状態を示す情報は、カスタマイズ適用ユーザ状態定義情報252に定義される。例えば、図5Bで示したカスタマイズ適用ユーザ状態定義情報252に、新たにサーバ状態を定義する列を追加し、当該列に定義されたサーバ状態を格納する。
サーバ状態送信部291,292,293は、カスタマイズ実行サーバ221からのサーバ状態の取得要求メッセージを受信した時に、要求されたサーバ状態を、カスタマイズ実行サーバ221に返信する。ここで要求されたサーバ状態は、例えば、カスタマイズ実行サーバ221からのサーバ状態の取得要求メッセージに含まれていても良いし、またカスタマイズ実行サーバ221から、要求内容をアプリケーション実行サーバに事前に登録しておいても良い。