(57)【要約】【課題】業務の場面に応じてカスタマイズされたアプリケーションをユーザに提供する。【解決手段】クライアントから要求された業務を処理するアプリケーションサーバと、アプリケーションサーバによって提供されるアプリケーションを変更するカスタマイズ実行サーバとを備える計算機システムで、カスタマイズ実行サーバは、アプリケーションの操作情報を含むユーザ状態情報を管理し、クライアントから送信された要求メッセージに基づいて、アプリケーションの操作情報をユーザ状態情報に記録し、アプリケーションサーバから送信された応答メッセージをユーザ状態情報に基づいて変更することによって、新たな応答メッセージを生成し、生成された新たな応答メッセージをクライアントに送信する。【選択図】図１
2010204834.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからの要求を受け付けて業務を処理するためのアプリケーションを提供するアプリケーションサーバと、前記アプリケーションに含まれる特定のアプリケーションを変更して前記クライアントに提供するカスタマイズ実行サーバと、を備える計算機システムにおけるアプリケーション実行方法であって、
前記カスタマイズ実行サーバは、前記クライアント及び前記アプリケーションサーバに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサによってアクセスされるメモリと、を備え、
前記メモリには、前記業務を処理するための前記アプリケーションと前記特定のアプリケーションの操作情報を含むユーザ状態情報と、前記特定のアプリケーションに処理を要求する前までに実行された前記アプリケーションの操作情報を、前記特定のアプリケーションを変更する条件として定義されたカスタマイズ適用ユーザ状態定義情報と、前記特定のアプリケーションのカスタマイズ内容が定義されたカスタマイズ定義情報と、が記憶され、
前記クライアントから業務を処理するために前記アプリケーションと前記特定のアプリケーションに対して処理を要求するとき、
前記方法は、
前記カスタマイズ実行サーバが、前記クライアントから前記アプリケーションおよび前記特定のアプリケーションの実行要求を含む要求メッセージを受信し、
前記カスタマイズ実行サーバが、前記受信した要求メッセージを解析することによって、前記アプリケーションおよび前記特定のアプリケーションの操作情報を特定し、
前記カスタマイズ実行サーバが、前記カスタマイズ適用定義情報に基づいて、前記特定された操作情報を前記ユーザ状態情報に記録し、
前記カスタマイズ実行サーバが、前記アプリケーションサーバに前記要求メッセージを送信し、
前記アプリケーションサーバが、前記要求メッセージに基づいて、要求された処理を実行し、前記要求メッセージに対する応答メッセージを送信し、
前記カスタマイズ実行サーバが、前記アプリケーションサーバから送信された応答メッセージを受信し、
前記カスタマイズ実行サーバが、前記カスタマイズ適用ユーザ状態定義情報及び前記ユーザ状態情報に基づいて、前記業務を処理する過程においてどのステップをカスタマイズするかを判断するとともに、前記特定のアプリケーションを変更するか否かを決定し、
前記カスタマイズ実行サーバが、前記特定のアプリケーションを変更する場合には、前記カスタマイズ定義情報に基づいて前記応答メッセージを変更することによって、新たな応答メッセージを生成し、
前記カスタマイズ実行サーバが、前記新たに生成された応答メッセージを前記クライアントに送信することを特徴とするアプリケーション実行方法。
【請求項２】
前記カスタマイズ適用ユーザ状態定義情報には、前記特定のアプリケーションを変更する条件として、前記アプリケーションの実行順序が含まれ、
前記方法は、前記カスタマイズ実行サーバが、前記アプリケーションの操作情報として、前記ユーザ状態情報に前記アプリケーションの実行履歴を記録することを特徴とする請求項１に記載のアプリケーション実行方法。
【請求項３】
前記カスタマイズ適用ユーザ状態定義情報には、前記特定のアプリケーションを変更する条件として、更に、前記要求メッセージの送信元の状態を示す情報が含まれ、
前記方法は、前記カスタマイズ実行サーバが、前記アプリケーションの操作情報として、前記ユーザ状態情報に前記送信元の状態を示す情報を記録することを特徴とする請求項２に記載のアプリケーション実行方法。
【請求項４】
前記要求メッセージには、前記実行が要求されたアプリケーションが情報を検索するためのパラメータが含まれ、
前記カスタマイズ適用ユーザ状態定義情報には、前記特定のアプリケーションを変更する条件として、更に、前記パラメータが含まれ、
前記方法は、前記カスタマイズ実行サーバが、前記アプリケーションの操作情報として、前記ユーザ状態情報に前記パラメータを記録することを特徴とする請求項２に記載のアプリケーション実行方法。
【請求項５】
前記方法は、
前記カスタマイズ実行サーバが、前記要求メッセージを受信した場合には、前記クライアントから要求された操作の履歴を前記メモリに記録し、
前記クライアントから前記アプリケーションの変更要求を受け付けた場合には、前記メモリに記録された操作履歴を前記クライアントに提示し、
前記カスタマイズ実行サーバが、前記カスタマイズ適用ユーザ状態定義情報の設定を受け付けることを特徴とする請求項１に記載のアプリケーション実行方法。
【請求項６】
クライアントからの要求を受け付けて業務を処理するためのアプリケーションを提供するアプリケーションサーバに接続され、前記アプリケーションに含まれる特定のアプリケーションを変更して前記クライアントに提供するアプリケーション変更装置であって、
前記クライアント及び前記アプリケーションサーバに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサによってアクセスされるメモリと、を備え、
前記メモリには、前記業務を処理するための前記アプリケーションと前記特定のアプリケーションの操作情報を含むユーザ状態情報と、前記特定のアプリケーションに処理を要求する前までに実行された前記アプリケーションの操作情報を、前記特定のアプリケーションを変更する条件として定義されたカスタマイズ適用ユーザ状態定義情報と、前記特定のアプリケーションのカスタマイズ内容が定義されたカスタマイズ定義情報と、が記憶され、
前記クライアントから業務を処理するために前記アプリケーションと前記特定のアプリケーションに対して処理を要求するとき、
前記プロセッサは、
前記クライアントから前記アプリケーションおよび前記特定のアプリケーションの実行要求を含む要求メッセージを受信し、
前記受信した要求メッセージを解析することによって、前記アプリケーションおよび前記特定のアプリケーションの操作情報を特定し、
前記カスタマイズ適用定義情報に基づいて、前記特定された操作情報を前記ユーザ状態情報に記録し、
前記アプリケーションサーバに前記要求メッセージを送信し、
前記アプリケーションサーバから送信された応答メッセージを受信し、
前記カスタマイズ適用ユーザ状態定義情報及び前記ユーザ状態情報に基づいて、前記業務を処理する過程においてどのステップをカスタマイズするかを判断するとともに、前記特定のアプリケーションを変更するか否かを決定し、
前記特定のアプリケーションを変更する場合には、前記カスタマイズ定義情報に基づいて前記応答メッセージを変更することによって、新たな応答メッセージを生成し、
前記新たに生成された応答メッセージを前記クライアントに送信することを特徴とするアプリケーション変更装置。
【請求項７】
前記カスタマイズ適用ユーザ状態定義情報には、前記特定のアプリケーションを変更する条件として、前記アプリケーションの実行順序が含まれ、
前記プロセッサは、前記アプリケーションの操作情報として、前記ユーザ状態情報に前記アプリケーションの実行履歴を記録することを特徴とする請求項６に記載のアプリケーション変更装置。
【請求項８】
前記カスタマイズ適用ユーザ状態定義情報には、前記特定のアプリケーションを変更する条件として、更に、前記要求メッセージの送信元の状態を示す情報が含まれ、
前記プロセッサは、前記アプリケーションの操作情報として、前記ユーザ状態情報に前記送信元の状態を示す情報を記録することを特徴とする請求項７に記載のアプリケーション変更装置。
【請求項９】
前記要求メッセージには、前記実行が要求されたアプリケーションが情報を検索するためのパラメータが含まれ、
前記カスタマイズ適用ユーザ状態定義情報には、前記特定のアプリケーションを変更する条件として、更に、前記パラメータが含まれ、
前記プロセッサは、前記アプリケーションの操作情報として、前記ユーザ状態情報に前記パラメータを記録することを特徴とする請求項７に記載のアプリケーション変更装置。
【請求項１０】
前記プロセッサは、
前記要求メッセージを受信した場合には、前記クライアントから要求された操作の履歴を前記メモリに記録し、
前記クライアントから前記アプリケーションの変更要求を受け付けた場合には、前記メモリに記録された操作履歴を前記クライアントに提示し、
前記カスタマイズ適用ユーザ状態定義情報の設定を受け付けることを特徴とする請求項６に記載のアプリケーション変更装置。
【請求項１１】
業務を処理するアプリケーションサーバによって提供されるアプリケーションに含まれる特定のアプリケーションを変更してクライアントに提供するカスタマイズ実行サーバに実行させるプログラムであって、
前記カスタマイズ実行サーバは、前記業務を処理するための前記アプリケーションと前記特定のアプリケーションの操作情報及び操作の流れを示す情報を含むユーザ状態情報と、前記特定のアプリケーションが実行されるまでに実行された前記アプリケーションの操作情報を、前記特定のアプリケーションを変更する条件を含むカスタマイズ適用ユーザ状態定義情報と、前記特定のアプリケーションのカスタマイズ内容が定義されたカスタマイズ定義情報と、を管理し、
前記クライアントから業務を処理するために前記アプリケーションと前記特定のアプリケーションに対して処理を要求するとき、
前記プログラムは、
前記クライアントから前記アプリケーションおよび前記特定のアプリケーションの実行要求を含む要求メッセージを受信する手順と、
前記受信した要求メッセージを解析することによって、前記アプリケーションと前記特定のアプリケーションの操作情報を特定する手順と、
前記カスタマイズ適用定義情報に基づいて、前記特定された操作情報を前記ユーザ状態情報に記録する手順と、
前記アプリケーションサーバに前記要求メッセージを送信する手順と、
前記アプリケーションサーバから送信された応答メッセージを受信する手順と、
前記カスタマイズ適用ユーザ状態定義情報及び前記ユーザ状態情報に基づいて、前記業務を処理する過程においてどのステップをカスタマイズするかを判断するとともに、前記アプリケーションを変更するか否かを決定する手順と、
前記特定のアプリケーションを変更する場合には、前記カスタマイズ定義情報に基づいて前記応答メッセージを変更することによって、新たな応答メッセージを生成する手順と、
前記新たに生成された応答メッセージを前記クライアントに送信する手順と、を含むことを特徴とするアプリケーション変更プログラム。
【請求項１２】
前記カスタマイズ適用ユーザ状態定義情報には、前記特定のアプリケーションを変更する条件として、前記アプリケーションの実行順序が含まれ、
前記アプリケーションの操作情報を特定する手順は、前記アプリケーションの実行履歴を前記ユーザ状態情報に記録することを特徴とする請求項１１に記載のアプリケーション変更プログラム。
【請求項１３】
前記カスタマイズ適用ユーザ状態定義情報には、前記特定のアプリケーションを変更する条件として、更に、前記要求メッセージの送信元の状態を示す情報が含まれ、
前記アプリケーションの操作情報を特定する手順は、前記送信元の状態を示す情報を前記ユーザ状態情報に記録することを特徴とする請求項１２に記載のアプリケーション変更プログラム。
【請求項１４】
前記要求メッセージには、前記実行が要求されたアプリケーションが情報を検索するためのパラメータが含まれ、
前記カスタマイズ適用ユーザ状態定義情報には、前記特定のアプリケーションを変更する条件として、更に、前記パラメータが含まれ、
前記アプリケーションの操作情報を特定する手順は、前記パラメータを前記ユーザ状態情報に記録することを特徴とする請求項１２に記載のアプリケーション変更プログラム。
【請求項１５】
前記プログラムは、
前記要求メッセージを受信した場合に、前記クライアントから要求された操作の履歴を記録する手順と、
前記クライアントから前記アプリケーションの変更要求を受け付けた場合に、前記記録された操作履歴を出力する手順と、
前記カスタマイズ適用ユーザ状態定義情報の設定を受け付ける手順と、をさらに含むことを特徴とする請求項１１に記載のアプリケーション変更プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務の流れに応じたカスタマイズされたアプリケーションを提供する技術に関する。
【背景技術】
【０００２】
近年、ビジネス環境が急激に変化しており、変化に対応してアプリケーションを迅速に構築する必要がある。ところが、事前にビジネス環境の変化を予測してアプリケーションを構築することは困難であるため、ビジネス環境の変化に対応してアプリケーションを迅速に変更することが求められている。
【０００３】
従来技術によるアプリケーションの変更では、まず、開発プロジェクトが設立され、情報システム部門又はアプリケーションの構築を専門に請け負うシステムインテグレーターの主導で進められる。そのため、ビジネス環境の変化に対応してアプリケーションを迅速に変更することは困難であった。
【０００４】
また、情報システム部門又はシステムインテグレーターがアプリケーションを変更する場合には、実際に業務を遂行するユーザの意見及び要望に基づいてアプリケーションを構築する。しかし、業務を実際に遂行するユーザの視点ではなく、情報システム部門又はシステムインテグレーターの視点、若しくは業務の最終的な処理を行う主管部門の視点でアプリケーションが構築される場合があった。そのため、実際に業務を遂行するユーザがアプリケーションを効率的に利用できない場合があった。
【０００５】
そこで、実際に業務を遂行するユーザが、情報システム部門又はシステムインテグレーターによらずに、業務の変化に合わせて即座にアプリケーションを変更して実行する技術が提案されている。業務の目的に合わせてユーザがアプリケーションを変更する技術の代表例にはマッシュアップがある。マッシュアップとは、複数の異なるアプリケーションによって提供される情報を関連付けて新しいアプリケーションを作成する手法である。例えば、地図情報を提供するアプリケーションと、不動産の物件情報を提供するアプリケーションを組み合わせて、新たな不動産サービスを提供するアプリケーションを作成するといったものがある。
【０００６】
マッシュアップに代表される従来のアプリケーションの変更方法では、アプリケーションによって提供される画面の所在情報を示すＵＲＬ（Uniform Resource Locator）に対し、アプリケーションの変更内容を記述したカスタマイズ定義情報を関連付けている。カスタマイズ定義情報とは、変更するアプリケーションによって提供される画面のＵＲＬと、アプリケーションの変更方法が定義されたファイルである。アプリケーションの変更方法には、例えば、あるアプリケーションによって提供される情報を変更対象のアプリケーションの画面に追加する方法、変更対象のアプリケーションに新たな処理プログラムを追加する方法などが含まれる。カスタマイズ定義情報に記述されたＵＲＬにアクセスすると、カスタマイズ定義情報に基づいて変更されたアプリケーションが実行される。
【０００７】
以上のような従来のカスタマイズ方法の公知例は、例えば、特許文献１に開示されている。特許文献１には、ネットワーク上のアプリケーションによって提供される画面のＵＲＬにアクセスされる場合に、予めユーザ識別子に関連付けられた変更情報を応答情報に適用してユーザに提供する技術が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００５−５０５８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１に開示された技術では、ユーザ及びＵＲＬにアプリケーションの変更内容が関連付けられているため、同じユーザが同じアプリケーションを別の業務で利用する場合には、業務に応じたカスタマイズを行うことができなかった。
【００１０】
ここで、教育科目の選択及び申し込みの受け付けを支援する教育支援システムを例として説明する。教育支援システムは、教育科目の一覧を表示する画面、教育科目の詳細情報を表示する画面、及び教育科目を申し込む画面をユーザに提供する。また、教育支援システムと関連する別のシステムとして、ユーザの予定を表示するスケジューラアプリケーション、及び教育科目を以前に受講した人の感想を表示するアプリケーションが利用可能となっている。
【００１１】
このような教育支援システムにおいて、ユーザが教育科目の詳細情報を表示する画面を利用する場合に、以下の場面が考えられる。
【００１２】
（１）ユーザが教育科目の一覧を表示する画面を利用して受講を希望する教育科目を選択する過程で、興味のある教育科目を受講するか否かを決めるために、教育科目の詳細情報を表示する画面を利用する場面
（２）ユーザが教育科目を申し込む画面を利用して受講する教育科目を申し込む過程で、受講日程を決定するために、科目の詳細情報を表示する画面を利用する場面
以上の２つの場面では、ユーザが科目の詳細を表示する画面を利用する目的が異なるため、科目の詳細情報と関連づけて確認したい情報が異なると考えられる。
【００１３】
具体的には、ユーザが受講を希望する教育科目を選択する過程では、科目の詳細情報に合わせて以前に同じ教育科目を受講した受講者の感想を確認することが考えられる。また、ユーザが教育科目を申し込む過程では、科目の詳細情報と合わせてユーザのスケジュールを確認することが考えられる。
【００１４】
しかし、特許文献１に開示された技術には、教育科目の詳細を表示する画面のＵＲＬ単位でのみカスタマイズ定義情報が関連付けられる。そのため、アプリケーションをカスタマイズした結果、教育支援システムを利用する場面に関係なく、科目の詳細情報、受講者の感想及びユーザのスケジューラが表示された画面が提供される。
【００１５】
その結果、ユーザが教育支援システムを利用する場合には、科目の詳細情報、受講者の感想及びユーザのスケジューラが組み合わされた画面の中から、ユーザの利用する場面に応じて、ユーザ自身が必要な情報を検索及び取捨選択する必要があった。
【００１６】
本発明の目的は、アプリケーションを利用する場面に応じてカスタマイズされた機能を提供する技術を提供することにある。
【課題を解決するための手段】
【００１７】
本発明の代表的な一形態では、クライアントからの要求を受け付けて業務を処理するためのアプリケーションを提供するアプリケーションサーバと、前記アプリケーションに含まれる特定のアプリケーションを変更して前記クライアントに提供するカスタマイズ実行サーバと、を備える計算機システムにおけるアプリケーション実行方法であって、前記カスタマイズ実行サーバは、前記クライアント及び前記アプリケーションサーバに接続されるインタフェースと、前記インタフェースに接続されるプロセッサと、前記プロセッサによってアクセスされるメモリと、を備え、前記メモリには、前記業務を処理するための前記アプリケーションと前記特定のアプリケーションの操作情報を含むユーザ状態情報と、前記特定のアプリケーションに処理を要求する前までに実行された前記アプリケーションの操作情報を、前記特定のアプリケーションを変更する条件として定義されたカスタマイズ適用ユーザ状態定義情報と、前記特定のアプリケーションのカスタマイズ内容が定義されたカスタマイズ定義情報と、が記憶され、前記クライアントから業務を処理するために前記アプリケーションと前記特定のアプリケーションに対して処理を要求するとき、前記方法は、前記カスタマイズ実行サーバが、前記クライアントから前記アプリケーションおよび前記特定のアプリケーションの実行要求を含む要求メッセージを受信し、前記カスタマイズ実行サーバが、前記受信した要求メッセージを解析することによって、前記アプリケーションおよび前記特定のアプリケーションの操作情報を特定し、前記カスタマイズ実行サーバが、前記カスタマイズ適用定義情報に基づいて、前記特定された操作情報を前記ユーザ状態情報に記録し、前記カスタマイズ実行サーバが、前記アプリケーションサーバに前記要求メッセージを送信し、前記アプリケーションサーバが、前記要求メッセージに基づいて、要求された処理を実行し、前記要求メッセージに対する応答メッセージを送信し、前記カスタマイズ実行サーバが、前記アプリケーションサーバから送信された応答メッセージを受信し、前記カスタマイズ実行サーバが、前記カスタマイズ適用ユーザ状態定義情報及び前記ユーザ状態情報に基づいて、前記業務を処理する過程においてどのステップをカスタマイズするかを判断するとともに、前記特定のアプリケーションを変更するか否かを決定し、前記カスタマイズ実行サーバが、前記特定のアプリケーションを変更する場合には、前記カスタマイズ定義情報に基づいて前記応答メッセージを変更することによって、新たな応答メッセージを生成し、前記カスタマイズ実行サーバが、前記新たに生成された応答メッセージを前記クライアントに送信する。
【発明の効果】
【００１８】
本発明の一形態によれば、業務の場面に応じてカスタマイズされたアプリケーションをユーザに提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施の形態のアプリケーションの動作の概要を説明するための図である。
【図２】本発明の第１の実施の形態の計算機システムの構成の一例を示すブロック図である。
【図３】本発明の第１の実施の形態のクライアント実行サーバ、カスタマイズ実行サーバ及びアプリケーション実行サーバのハードウェア構成の一例を示す図である。
【図４】本発明の第１の実施の形態の教育支援システムに含まれる各アプリケーション実行サーバの機能について説明する図である。
【図５Ａ】本発明の第１の実施の形態のカスタマイズ定義情報の一例を示す図である。
【図５Ｂ】本発明の第１の実施の形態のカスタマイズ適用ユーザ状態定義情報の一例を示す図である。
【図５Ｃ】本発明の第１の実施の形態のユーザ状態履歴情報の一例を示す図である。
【図６】本発明の第１の実施の形態の通信解析部による処理手順を示すフローチャートである。
【図７】本発明の第１の実施の形態のカスタマイズ適用部による処理手順を示すフローチャートである。
【図８】本発明の第１の実施の形態の教育支援システムの教育申込アプリケーションを利用する業務の流れを示すフローチャートである。
【図９】本発明の第１の実施の形態の教育支援システムの各シーンで表示される科目詳細画面の一例を示す図である。
【図１０Ａ】本発明の第１の実施の形態の各ステップにおけるユーザ状態履歴情報の一例を示す図である。
【図１０Ｂ】本発明の第１の実施の形態の各ステップにおけるユーザ状態履歴情報の一例を示す図である。
【図１０Ｃ】本発明の第１の実施の形態の各ステップにおけるユーザ状態履歴情報の一例を示す図である。
【図１０Ｄ】本発明の第１の実施の形態の各ステップにおけるユーザ状態履歴情報の一例を示す図である。
【図１１】本発明の第１の実施の形態のアプリケーションのカスタマイズ機能を含むカスタマイズ実行サーバの構成を示すブロック図である。
【図１２Ａ】本発明の第１の実施の形態の画面履歴情報を記憶する処理の手順を示すフローチャートである。
【図１２Ｂ】本発明の第１の実施の形態のカスタマイズ条件及びカスタマイズ内容を定義する処理の手順を示すフローチャートである。
【図１３Ａ】本発明の第１の実施の形態のカスタマイズ定義画面の一例を示す図である。
【図１３Ｂ】本発明の第１の実施の形態のユーザ状態定義画面の一例を示す図である。
【図１４Ａ】本発明の第２の実施の形態のカスタマイズ定義情報の一例を示す図である。
【図１４Ｂ】本発明の第２の実施の形態のカスタマイズ適用ユーザ状態定義情報の一例を示す図である。
【図１４Ｃ】本発明の第２の実施の形態のユーザ状態履歴情報の一例を示す図である。
【図１５Ａ】本発明の第２の実施の形態の通信解析部による処理手順を示すフローチャートである。
【図１５Ｂ】本発明の第２の実施の形態の通信解析部による処理手順を示すフローチャートである。
【図１６】本発明の第２の実施の形態のカスタマイズ適用部による処理手順を示すフローチャートである。
【図１７】本発明の第２の実施の形態の企業情報参照システムに含まれる各アプリケーション実行サーバの機能について説明する図である。
【図１８Ａ】本発明の第２の実施の形態の各ステップにおけるユーザ状態履歴情報の一例を示す図である。
【図１８Ｂ】本発明の第２の実施の形態の各ステップにおけるユーザ状態履歴情報の一例を示す図である。
【図１８Ｃ】本発明の第２の実施の形態の各ステップにおけるユーザ状態履歴情報の一例を示す図である。
【図１８Ｄ】本発明の第２の実施の形態の各ステップにおけるユーザ状態履歴情報の一例を示す図である。
【図１９Ａ】本発明の第３の実施の形態のカスタマイズ定義情報の一例を示す図である。
【図１９Ｂ】本発明の第３の実施の形態のカスタマイズ適用ユーザ状態定義情報の一例を示す図である。
【図１９Ｃ】本発明の第３の実施の形態のユーザ状態履歴情報の一例を示す図である。
【図２０Ａ】本発明の第３の実施の形態の通信解析部による処理手順を示すフローチャートである。
【図２０Ｂ】本発明の第３の実施の形態の通信解析部による処理手順を示すフローチャートである。
【図２１】本発明の第３の実施の形態のカスタマイズ適用部による処理手順を示すフローチャートである。
【図２２】本発明のサーバ状態をアプリケーションの変更条件とする実施の形態の計算機システムの構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照しながら本発明の実施の形態について詳しく説明する。
【００２１】
（第１の実施の形態）
＜概要＞
まず、前述した教育支援システムを例として、本発明が適用されたアプリケーションの動作について説明する。
【００２２】
図１は、本発明の第１の実施の形態のアプリケーションの動作の概要を説明するための図である。
【００２３】
図１に示す教育支援システムには、科目詳細アプリケーション１１１、教育申込アプリケーション１６１、受講者の感想アプリケーション１１２及びスケジューラアプリケーション１１３が含まれる。各アプリケーションは、クライアント１５１を介してユーザからの要求に応じて実行される。
【００２４】
本発明の第１の実施の形態が適用された教育支援システムでは、ユーザがクライアント１５１を介して科目詳細アプリケーション１１１を実行する場合に、科目詳細アプリケーション１１１を実行する場面に基づいて、表示される画面がカスタマイズされる。
【００２５】
例えば、教育科目を選択する科目選択画面１３３から科目詳細画面１２１を参照する科目選択シーン１４１であれば、科目詳細アプリケーション１１１によって提供される科目詳細画面１２１に、受講者の感想アプリケーション１１２の情報が組み合わせられる。そして、科目詳細の情報と受講者の感想の情報を組み合わせた科目詳細画面１３１がクライアント１５１に表示される。
【００２６】
また、教育科目を申し込む申込画面１３４から科目詳細画面１２１を参照する科目申込シーン１４２であれば、科目詳細アプリケーション１１１が提供する科目詳細画面１２２に、スケジューラアプリケーション１１３の情報が組み合わせられる。そして、科目詳細の情報とユーザのスケジュールを組み合わせた科目詳細画面１３２がクライアント１５１に表示される。
【００２７】
以上のように、本発明の第１の実施の形態では、ユーザが科目詳細アプリケーション１１１を利用する場合に、科目を選択する場面又は科目を申し込む場面に応じてカスタマイズされた科目詳細アプリケーション１１１を利用することが可能となる。
【００２８】
以下、本発明の第１の実施の形態によるアプリケーションの実行方法について、図２から図１０を参照しながら説明する。また、本発明の第１の実施の形態では、主にＷｅｂアプリケーションに本発明が適用される場合について説明する。
【００２９】
＜システム構成＞
図２は、本発明の第１の実施の形態の計算機システムの構成の一例を示すブロック図である。
【００３０】
本発明の第１の実施の形態のアプリケーション実行方法を実現する計算機システムは、クライアント実行サーバ２１１、カスタマイズ実行サーバ２２１、アプリケーション実行サーバ２６１、２６２及び２６３を含む。
【００３１】
クライアント実行サーバ２１１及びカスタマイズ実行サーバ２２１は、ネットワーク２８１を介して互いに接続される。また、カスタマイズ実行サーバ２２１、アプリケーション実行サーバ２６１、２６２及び２６３は、ネットワーク２８２を介して互いに接続される。クライアント実行サーバ２１１は、カスタマイズ実行サーバ２２１を介して、アプリケーション実行サーバ２６１、２６２及び２６３にアクセスする。
【００３２】
ネットワーク２８１及びネットワーク２８２は、ＬＡＮ（Local Area Network）であってもよいし、ＷＡＮ（Wide Area Network）又はインターネットなどのグローバルネットワークであってもよい。また、ネットワーク２８１及びネットワーク２８２は、同じネットワークであってもよい。
【００３３】
クライアント実行サーバ２１１は、クライアント２１２を含む。クライアント２１２は、カスタマイズ実行サーバ２２１を介してアプリケーション実行サーバ２６１、２６２及び２６３との間でメッセージを送受信する。クライアント実行サーバ２１１は、カスタマイズ実行サーバ２２１から受信したメッセージに基づいて、要求された情報を含む画面を表示する。
【００３４】
カスタマイズ実行サーバ２２１は、通信解析部２２２と、カスタマイズ適用部２２３及び記憶装置２２４を含む。
【００３５】
通信解析部２２２は、ユーザ状態解析部２３１を含む。通信解析部２２２及びユーザ状態解析部２３１は、状態に応じたカスタマイズをアプリケーションに適用するために、ユーザによる操作などのアプリケーションの状態を解析する。通信解析部２２２及びユーザ状態解析部２３１による処理の詳細については、図６にて後述する。
【００３６】
カスタマイズ適用部２２３は、ユーザ状態判定部２４１を含む。ユーザ状態判定部２４１は、通信解析部２２２及びユーザ状態解析部２３１による解析結果を判定する。カスタマイズ適用部２２３は、ユーザ状態判定部２４１によるユーザの状態の判定結果に基づいて、アプリケーションをカスタマイズする。カスタマイズ適用部２２３及びユーザ状態判定部２４１による処理の詳細については、図７にて後述する。
【００３７】
記憶装置２２４は、カスタマイズ定義情報２５１、カスタマイズ適用ユーザ状態定義情報２５２及びユーザ状態履歴情報２５３を格納する。
【００３８】
カスタマイズ定義情報２５１は、カスタマイズ対象の画面の識別情報と、対応するカスタマイズ内容を定義した情報である。カスタマイズ定義情報２５１の詳細については、図５Ａにて後述する。
【００３９】
カスタマイズ適用ユーザ状態定義情報２５２は、画面をカスタマイズする条件を定義した情報である。カスタマイズ適用ユーザ状態定義情報２５２の詳細については、図５Ｂにて後述する。
【００４０】
ユーザ状態履歴情報２５３は、ユーザによるアプリケーションのアクセス履歴である。Ｗｅｂシステムでは、画面のアクセス履歴が対応し、遷移元の画面と遷移先の画面が格納される。ユーザ状態履歴情報２５３の詳細については、図５Ｃにて後述する。
【００４１】
アプリケーション実行サーバ２６１は、業務アプリケーション２７１を実行する。同様に、アプリケーション実行サーバ２６２は、業務アプリケーション２７２を実行する。さらに、アプリケーション実行サーバ２６３は、業務アプリケーション２７３を実行する。
【００４２】
業務アプリケーション２７１、２７２及び２７３は、カスタマイズ実行サーバ２２１を介してクライアント実行サーバ２１１からの要求された処理を実行し、処理結果を応答する。
【００４３】
図３は、本発明の第１の実施の形態のクライアント実行サーバ２１１、カスタマイズ実行サーバ２２１及びアプリケーション実行サーバ２６１のハードウェア構成の一例を示す図である。
【００４４】
なお、アプリケーション実行サーバ２６２及び２６３のハードウェア構成はアプリケーション実行サーバ２６１と同じであるため、説明を省略する。
【００４５】
クライアント実行サーバ２１１は、ＣＰＵ３１２、ネットワークインタフェース３１１、二次記憶装置３１４及び主記憶装置３１３を含む。ＣＰＵ３１２、ネットワークインタフェース３１１、二次記憶装置３１４及び主記憶装置３１３は、バス３１５によって相互に接続される。
【００４６】
ＣＰＵ３１２は、主記憶装置３１３に記憶されているプログラムを実行することによって、クライアント実行サーバ２１１の所定の機能を実現する。
【００４７】
ネットワークインタフェース３１１は、ネットワーク２８１に接続するインタフェースである。クライアント実行サーバ２１１は、ネットワークインタフェース３１１を介してネットワーク２８１に接続する。
【００４８】
二次記憶装置３１４は、クライアント２１２の実行などに必要なプログラム及びデータを格納する。二次記憶装置３１４は、例えば、ハードディスク装置などの磁気記憶媒体である。また、フラッシュメモリなどの半導体記憶媒体であってもよい。
【００４９】
主記憶装置３１３は、ＣＰＵ３１２によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。例えば、主記憶装置３１３には、クライアント機能を実現するためのプログラムであるクライアント２１２が記憶される。さらに、ＯＳ（オペレーティングシステム）などが記憶される。なお、ＯＳについては、簡略化のために図示を省略している。主記憶装置３１３は、例えば、ＲＡＭ（Random Access Memory）である。
【００５０】
また、クライアント２１２を実行する主体は、ＣＰＵ３１２であるが、説明を簡略化するために、以下、クライアント２１２を動作又は処理の主体として説明する。
【００５１】
さらに、別の実施の形態として、クライアント２１２による機能を実現する論理回路を含むハードウェアなどによって実現してもよい。この場合には、クライアント２１２が動作又は処理の主体となる。
【００５２】
カスタマイズ実行サーバ２２１は、ＣＰＵ３２２、ネットワークインタフェース３２１、二次記憶装置３２４及び主記憶装置３２３を含む。ＣＰＵ３２２、ネットワークインタフェース３２１、二次記憶装置３２４及び主記憶装置３２３は、バス３２５によって相互に接続される。
【００５３】
ＣＰＵ３２２は、主記憶装置３２３に記憶されているプログラムを実行することによって、カスタマイズ実行サーバ２２１の所定の機能を実現する。
【００５４】
ネットワークインタフェース３２１は、ネットワーク２８１及びネットワーク２８２に接続するインタフェースである。カスタマイズ実行サーバ２２１は、ネットワークインタフェース３２１を介してネットワーク２８１及びネットワーク２８２に接続する。
【００５５】
二次記憶装置３２４は、カスタマイズ実行サーバ２２１の所定の機能の実現するために必要なプログラム及びデータを格納する。二次記憶装置３２４は、図２に示した記憶装置２２４に対応し、カスタマイズ定義情報２５１、カスタマイズ適用ユーザ状態定義情報２５２、ユーザ状態履歴情報２５３などの情報を格納する。二次記憶装置３２４は、例えば、ハードディスク装置などの磁気記憶媒体である。また、フラッシュメモリなどの半導体記憶媒体であってもよい。
【００５６】
主記憶装置３２３は、ＣＰＵ３２２によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。例えば、主記憶装置３２３には、通信解析部２２２及びカスタマイズ適用部２２３が記憶される。さらに、クライアント実行サーバ２１１と同様に、図示されていないＯＳなどが記憶される。主記憶装置３２３は、例えば、ＲＡＭである。
【００５７】
前述したように、カスタマイズ実行サーバ２２１は、通信解析部２２２、カスタマイズ適用部２２３、ユーザ状態解析部２３１及びユーザ状態判定部２４１を含む。各機能ブロック（通信解析部２２２、カスタマイズ適用部２２３、ユーザ状態解析部２３１及びユーザ状態判定部２４１）は、ＣＰＵ３２２が主記憶装置３２３に記憶された各機能ブロックを実現するためのプログラムを実行することによって、所定の機能が提供される。この場合、各機能ブロックの動作又は処理の主体は、ＣＰＵ３２２であるが、説明を簡略化するために、以下、各機能ブロックを動作又は処理の主体として説明する。
【００５８】
また、別の実施の形態として、カスタマイズ実行サーバ２２１の各機能ブロックを、各機能を実現する論理回路などを含むハードウェアによって実現してもよい。この場合には、各機能ブロックが動作又は処理の主体となる。
【００５９】
アプリケーション実行サーバ２６１は、ＣＰＵ３４２、ネットワークインタフェース３４１、二次記憶装置３４４及び主記憶装置３４３を含む。ＣＰＵ３４２、ネットワークインタフェース３４１、二次記憶装置３４４及び主記憶装置３４３は、バス３４５によって相互に接続される。
【００６０】
ＣＰＵ３４２は、主記憶装置３４３に記憶されているプログラム（業務アプリケーション２７１）を実行することによって、アプリケーション実行サーバ２６１の所定の機能を実現する。
【００６１】
ネットワークインタフェース３４１は、ネットワーク２８２に接続するインタフェースである。クライアント実行サーバ２１１は、ネットワークインタフェース３４１を介してネットワーク２８２に接続する。
【００６２】
二次記憶装置３４４は、業務アプリケーション２７１の実行などに必要なプログラム及びデータを格納する。二次記憶装置３４４は、例えば、ハードディスク装置などの磁気記憶媒体である。また、フラッシュメモリなどの半導体記憶媒体であってもよい。
【００６３】
主記憶装置３４３は、ＣＰＵ３４２によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。例えば、主記憶装置３４３には、業務アプリケーション２７１、及び、図示されていないＯＳなどが記憶される。主記憶装置３４３は、例えば、ＲＡＭである。
【００６４】
また、業務アプリケーション２７１を実行する主体は、ＣＰＵ３４２であるが、説明を簡略化するために、以下、業務アプリケーション２７１を動作又は処理の主体として説明する。
【００６５】
さらに、別の実施の形態として、業務アプリケーション２７１による機能を実現する論理回路を含むハードウェアなどによって実現してもよい。この場合には、業務アプリケーション２７１が動作又は処理の主体となる。
【００６６】
なお、クライアント実行サーバ２１１、カスタマイズ実行サーバ２２１及びアプリケーション実行サーバ２６１の構成は、図３に示した構成の例に限定されない。例えば、カスタマイズ実行サーバ２２１は、クライアント実行サーバ２１１と同じ計算機上に構成されていてもよい。また、複数の業務アプリケーションがアプリケーション実行サーバ２６１で実行されるように構成してもよい。
【００６７】
＜各定義情報の内容＞
ここで、本発明の第１の実施の形態のアプリケーション実行システムで使用される定義情報の詳細について説明する。具体的には、カスタマイズ実行サーバ２２１に格納されているカスタマイズ定義情報２５１、カスタマイズ適用ユーザ状態定義情報２５２及びユーザ状態履歴情報２５３について説明する。
【００６８】
図５Ａは、本発明の第１の実施の形態のカスタマイズ定義情報２５１の一例を示す図である。
【００６９】
カスタマイズ定義情報２５１には、カスタマイズ対象の画面の識別情報と、カスタマイズ内容が対応付けて格納される。カスタマイズ定義情報２５１には、カスタマイズＩＤ５１１、カスタマイズ対象識別子５１２及びカスタマイズ内容５１３が含まれる。
【００７０】
カスタマイズＩＤ５１１は、カスタマイズ定義情報、すなわち、カスタマイズ対象とカスタマイズ内容との組を識別する識別子である。
【００７１】
カスタマイズ対象識別子５１２は、変更対象のアプリケーションによって提供される画面の識別子である。例えば、Ｗｅｂシステムでは、画面の所在情報であるＵＲＬが格納される。
【００７２】
カスタマイズ内容５１３は、アプリケーションによって提供される画面の具体的な変更内容である。アプリケーションによって提供される画面の変更内容とは、例えば、変更対象のアプリケーションに追加される別のアプリケーションの所在情報（ＵＲＬ）である。さらに、変更対象のアプリケーションの画面において、追加されるアプリケーションの情報を配置するための位置情報も含まれる。また、変更対象のアプリケーションによって提供される情報と、追加されるアプリケーションによって提供される情報とを組み合わせるための加工情報を含んでもよい。加工情報には、数値演算、文字列演算、又は分岐処理など、一般的なプログラムにおける処理を記述することも可能である。
【００７３】
カスタマイズ定義情報２５１の行５２１は、アプリケーションによって提供される変更対象の所在情報「http://xxx.example/class_detail.html」に対応する画面にユーザがアクセスした場合に、「カスタマイズ内容１」を変更対象の画面に適用することを示している。
【００７４】
図５Ｂは、本発明の第１の実施の形態のカスタマイズ適用ユーザ状態定義情報２５２の一例を示す図である。
【００７５】
カスタマイズ適用ユーザ状態定義情報２５２には、カスタマイズ定義情報２５１の各行に定義されたカスタマイズ内容を適用する条件が格納されている。カスタマイズ適用ユーザ状態定義情報２５２には、カスタマイズＩＤ５３１、カスタマイズ対象識別子５３２及び遷移元識別子条件５３３が含まれる。
【００７６】
カスタマイズＩＤ５３１は、カスタマイズ定義情報を識別する識別子である。カスタマイズＩＤ５３１は、カスタマイズ定義情報２５１のカスタマイズＩＤ５１１に対応する。
【００７７】
カスタマイズ対象識別子５３２は、変更対象のアプリケーションによって提供される画面の識別子である。カスタマイズ定義情報２５１のカスタマイズＩＤ５１１と同様に、Ｗｅｂシステムの場合には、画面の所在情報であるＵＲＬが格納される。
【００７８】
遷移元識別子条件５３３は、変更対象のアプリケーションの前にアクセスされていた遷移元を識別する識別子である。Ｗｅｂシステムの場合には、遷移元の画面の所在情報であるＵＲＬが格納される。
【００７９】
カスタマイズ適用ユーザ状態定義情報２５２の行５４１は、アプリケーションによって提供される変更対象の所在情報「http://xxx.example/class_detail.html」に対応する画面の前に、ユーザが所在情報「http://xxx.education/selection.html」に対応する画面にアクセスしていた場合には、カスタマイズＩＤ５３１によって識別されるカスタマイズ内容を適用することを示している。
【００８０】
なお、遷移元識別子条件５３３には、複数の遷移元のアプリケーションを設定してもよい。例えば、複数の遷移元のアプリケーションの所在情報を実行順に連結した値を設定することによって、遷移元のアプリケーションの実行順序を指定することができる。
【００８１】
図５Ｃは、本発明の第１の実施の形態のユーザ状態履歴情報２５３の一例を示す図である。
【００８２】
ユーザ状態履歴情報２５３は、ユーザがアプリケーションを実行又は操作した履歴である。例えば、Ｗｅｂシステムでは、画面遷移の履歴に対応し、遷移元の画面のＵＲＬと遷移先の画面のＵＲＬが格納される。
【００８３】
ユーザ状態履歴情報２５３には、カスタマイズＩＤ５５１、遷移元識別子５５２及び遷移先識別子５５３が含まれる。
【００８４】
カスタマイズＩＤ５５１は、カスタマイズ定義情報を識別する識別子である。カスタマイズＩＤ５５１は、カスタマイズ定義情報２５１のカスタマイズＩＤ５１１に対応する。
【００８５】
遷移元識別子５５２は、ユーザが直前にアクセスしていた画面の識別子である。遷移先識別子５５３は、ユーザが現時点でアクセスしている画面の識別子である。遷移元識別子５５２及び遷移先識別子５５３は、Ｗｅｂシステムの場合には、画面の所在情報（ＵＲＬ）が格納される。
【００８６】
ユーザ状態履歴情報２５３の行５６１は、ユーザが現時点で遷移先識別子「http://xxx.example/class_detail.html」に対応する画面にアクセスしており、直前に遷移元識別子「http://xxx.education/selection.html」に対応する画面にアクセスしていたことを示している。
【００８７】
カスタマイズ定義情報２５１、カスタマイズ適用ユーザ状態定義情報２５２及びユーザ状態履歴情報２５３は、カスタマイズＩＤによって対応付けられている。前述したように、カスタマイズ定義情報２５１のカスタマイズＩＤ５１１、カスタマイズ適用ユーザ状態定義情報２５２のカスタマイズＩＤ５３１、及びユーザ状態履歴情報２５３のカスタマイズＩＤ５５１が対応している。
【００８８】
＜通信解析部の処理の流れ＞
次に、通信解析部２２２による処理手順について説明する。
【００８９】
図６は、本発明の第１の実施の形態の通信解析部２２２による処理手順を示すフローチャートである。
【００９０】
なお、本発明の第１の実施の形態では、通信解析部２２２によって使用されるカスタマイズ適用ユーザ状態定義情報２５２及びユーザ状態履歴情報２５３は、カスタマイズ実行サーバ２２１が起動されたタイミングで二次記憶装置３２４から読み出され、主記憶装置３２３に記憶されている。
【００９１】
クライアント実行サーバ２１１は、クライアント２１２によって、ユーザから要求された画面を取得するための要求メッセージをカスタマイズ実行サーバ２２１に送信する（ステップ６１１）。
【００９２】
カスタマイズ実行サーバ２２１は、通信解析部２２２によって、ステップ６１１の処理でクライアント実行サーバ２１１から送信された要求メッセージを受信する（ステップ６１２）。通信解析部２２２は、受信した要求メッセージを解析し、遷移先の所在情報を取得する。例えば、クライアント２１２とアプリケーションとの間でＨＴＴＰ（HyperText Transfer Protocol）通信をしている場合には、要求メッセージに含まれるリクエスト行に設定されたリクエストＵＲＩ（Uniform Resource Identifier）パラメータを取得することによって遷移先の所在情報を取得できる。
【００９３】
ユーザ状態解析部２３１は、カスタマイズ適用ユーザ状態定義情報２５２から、ステップ６１２の処理で取得された遷移先の所在情報が設定されたカスタマイズ対象識別子５３２を有する行を検索する（ステップ６１３）。
【００９４】
ユーザ状態解析部２３１は、遷移先の所在情報が設定されたカスタマイズ対象識別子５３２を有する行が検索された場合には（ステップ６１３の結果が「ｙｅｓ」）、ステップ６１４の処理を実行する。一方、遷移先の所在情報が設定されたカスタマイズ対象識別子５３２を有する行が検索されなかった場合には（ステップ６１３の結果が「ｎｏ」）、ステップ６１６の処理を実行する。
【００９５】
ユーザ状態解析部２３１は、ステップ６１３の処理で検索された行からカスタマイズＩＤ５３１を取得し、ユーザ状態履歴情報２５３から、同一のカスタマイズＩＤ５５１を有する行を検索する。そして、検索された行の遷移先識別子５５３の値を遷移元識別子５５２にコピーする（ステップ６１４）。
【００９６】
ユーザ状態解析部２３１は、ステップ６１２の処理で取得された遷移先の所在情報を、ステップ６１４の処理で検索された行の遷移先識別子５５３に設定する（ステップ６１５）。
【００９７】
ユーザ状態解析部２３１は、カスタマイズ適用ユーザ状態定義情報２５２から、ステップ６１２の処理で取得された遷移先の所在情報が、遷移元識別子条件５３３の先頭に一致する行を検索する（ステップ６１６）。
【００９８】
ユーザ状態解析部２３１は、遷移先の所在情報が遷移元識別子条件５３３の先頭に一致する行が検索された場合には（ステップ６１６の結果が「ｙｅｓ」）、ユーザ状態履歴情報２５３に新たに行を追加するために領域を確保する。そして、ステップ６１６の処理で検索された行のカスタマイズＩＤ５３１をカスタマイズＩＤ５５１として、ユーザ状態履歴情報２５３に新たに行を登録する（ステップ６１７）。さらに、新たに登録された行の遷移先識別子５５３に、ステップ６１２の処理で取得された遷移先の所在情報を設定する。
【００９９】
一方、ユーザ状態解析部２３１は、遷移先の所在情報が遷移元識別子条件５３３の先頭に一致する行が検索されなかった場合には（ステップ６１６の結果が「ｎｏ」）、ステップ６１８の処理を実行する。
【０１００】
ユーザ状態解析部２３１は、ステップ６１２の処理で取得された遷移先の所在情報を含む遷移元識別子条件５３３を有する行がカスタマイズ適用ユーザ状態定義情報２５２に存在するか否かを判定する。さらに、遷移先の所在情報よりも実行順序が前となる所在情報を遷移元識別子条件５３３から抽出し、抽出された所在情報と一致する遷移先識別子５５３を有する行がユーザ状態履歴情報２５３に含まれるか否かを判定する（ステップ６１８）。
【０１０１】
ユーザ状態解析部２３１は、ステップ６１８の条件を満たす場合には（ステップ６１８の結果が「ｙｅｓ」）、ステップ６１２の処理で取得された遷移先の所在情報を、ステップ６１８の処理で取得されたユーザ状態履歴情報２５３の行の遷移先識別子５５３に追加する（ステップ６１９）。
【０１０２】
ユーザ状態解析部２３１は、ステップ６１８の条件を満たさない場合（ステップ６１８の結果が「ｎｏ」）、又はステップ６１９の処理の実行が完了した場合には、ステップ６２０の処理を実行する。
【０１０３】
通信解析部２２２は、ステップ６１２の処理で取得された遷移先の所在情報に対応するアプリケーション実行サーバに、クライアント２１２によって送信された要求メッセージを送信する。そして、アプリケーション実行サーバから応答メッセージを受信し、カスタマイズ適用部２２３に送信する（ステップ６２０）。カスタマイズ適用部２２３は、必要に応じて応答メッセージに対応するカスタマイズ内容を適用し、通信解析部２２２に応答メッセージを送信する。
【０１０４】
通信解析部２２２は、カスタマイズ適用部２２３から受信した応答メッセージを参照し、応答メッセージにカスタマイズが適用されているか否かを判定する（ステップ６２１）。カスタマイズが適用されていた場合には（ステップ６２１の結果が「ｙｅｓ」）、ユーザ状態解析部２３１は、ステップ６１３の処理で取得されたカスタマイズ対象識別子５１２に対応するカスタマイズＩＤ５５１に基づいて、ユーザ状態履歴情報２５３の対応する行を削除する（ステップ６２２）。
【０１０５】
通信解析部２２２は、応答メッセージにカスタマイズが適用されていない場合（ステップ６２１の結果が「ｎｏ」）、又はステップ６２２の処理が終了した場合には、ステップ６２０の処理で受信した応答メッセージをクライアント２１２に送信する（ステップ６２３）。
【０１０６】
＜カスタマイズ適用部の処理の流れ＞
次に、カスタマイズ適用部２２３による処理手順について説明する。
【０１０７】
図７は、本発明の第１の実施の形態のカスタマイズ適用部２２３による処理手順を示すフローチャートである。
【０１０８】
なお、本発明の第１の実施の形態では、カスタマイズ適用部２２３によって使用されるカスタマイズ定義情報２５１、カスタマイズ適用ユーザ状態定義情報２５２及びユーザ状態履歴情報２５３は、カスタマイズ実行サーバ２２１が起動されたタイミングで二次記憶装置３２４から読み出され、主記憶装置３２３に記憶されている。
【０１０９】
カスタマイズ適用部２２３は、まず、通信解析部２２２から送信された要求メッセージを受信する（ステップ７１１）。
【０１１０】
ユーザ状態判定部２４１は、ユーザ状態履歴情報２５３の遷移先識別子５５３と一致するカスタマイズ対象識別子５１２を有する行がカスタマイズ定義情報２５１に存在するか否かを判定する（ステップ７１２）。カスタマイズ定義情報２５１に該当する行が存在しない場合には（ステップ７１２の結果が「ｎｏ」）、受信した要求メッセージを応答メッセージとして通信解析部２２２に送信する（ステップ７１７）。
【０１１１】
ユーザ状態判定部２４１は、カスタマイズ定義情報２５１に該当する行が存在する場合には（ステップ７１２の結果が「ｙｅｓ」）、カスタマイズ対象識別子５１２の値に対応するカスタマイズＩＤ５１１を取得する。そして、ステップ７１２の処理で取得されたカスタマイズＩＤ５１１に基づいて、カスタマイズ適用ユーザ状態定義情報２５２を検索する（ステップ７１３）。
【０１１２】
ユーザ状態判定部２４１は、カスタマイズ適用ユーザ状態定義情報２５２から行が検索された場合には（ステップ７１３の結果が「ｙｅｓ」）、ユーザ状態履歴情報２５３の遷移元識別子５５２と同一の遷移元識別子条件５３３が検索されたか否かを判定する（ステップ７１４）。
【０１１３】
カスタマイズ適用部２２３は、ユーザ状態履歴情報２５３の遷移元識別子５５２と同一の遷移元識別子条件５３３が検索された場合には（ステップ７１４の結果が「ｙｅｓ」）、ステップ７１２の処理で取得されたカスタマイズ定義情報２５１の行のカスタマイズ内容５１３を通信解析部２２２から送信された要求メッセージに適用し、応答メッセージを作成する（ステップ７１５）。なお、カスタマイズ内容５１３を応答メッセージに適用する処理は、例えばＸＳＬＴ(XML Stylesheet Language Transformations)やポップアップなどの従来技術で実現可能であるため、詳細な処理については省略する。
【０１１４】
カスタマイズ適用部２２３は、カスタマイズ適用ユーザ状態定義情報２５２から行が検索されなかった場合（ステップ７１３の結果が「ｎｏ」）、又はユーザ状態履歴情報２５３の遷移元識別子５５２と同一の遷移元識別子条件５３３が検索されなかった場合には（ステップ７１４の結果が「ｎｏ」）、必要に応じてカスタマイズを適用する。具体的には、遷移元に依存しないカスタマイズ内容が定義されている場合には通信解析部２２２から送信された要求メッセージに適用し、応答メッセージを作成する（ステップ７１６）。なお、カスタマイズ内容を応答メッセージに適用する処理は、ステップ７１５と同様に、従来技術によって実現可能である。
【０１１５】
最後に、カスタマイズ適用部２２３は、通信解析部２２２に応答メッセージを送信する（ステップ７１７）。
【０１１６】
＜アプリケーション実行方法の具体例＞
ここで、前述した教育支援システムに本発明の第１の実施の形態を適用することによって、具体的な動作について説明する。
【０１１７】
教育支援システムは、教育科目の中から、ユーザが受講を希望する科目を選択し、申し込みを行う処理を支援するシステムである。教育支援システムは、企業で主催する研修などを想定している。
【０１１８】
教育支援システムに含まれる各アプリケーション実行サーバは、すべて同じ時期に開発されたのではなく、後から追加されたアプリケーションが含まれる。また、複数の拠点を有する企業の場合には、同一又は類似する機能を備えるアプリケーション実行サーバが各拠点に配置される場合もある。教育支援システムは、開発時期及び拠点が異なるアプリケーション実行サーバが連携することによって構成される。
【０１１９】
まず、教育支援システムに含まれる各アプリケーション実行サーバの機能について説明する。
【０１２０】
図４は、本発明の第１の実施の形態の教育支援システムに含まれる各アプリケーション実行サーバの機能について説明する図である。
【０１２１】
教育支援システムには、アプリケーション実行サーバ４１１、４１２及び４１３が含まれる。アプリケーション実行サーバ４１１、４１２及び４１３は、図２に示したアプリケーション実行サーバ２６１、２６２及び２６３に相当する。
【０１２２】
アプリケーション実行サーバ４１１は、科目詳細アプリケーション４２１及び受講者の感想アプリケーション４２２を提供する。アプリケーション実行サーバ４１２は、教育申込アプリケーション４３１を提供する。アプリケーション実行サーバ４１３は、スケジューラアプリケーション４４１を提供する。各アプリケーションは、Ｗｅｂシステムである。
【０１２３】
科目詳細アプリケーション４２１には、科目詳細画面４５１（ＵＲＬ：http://xxx.example/class_detail.html）が含まれる。科目詳細画面４５１は、教育科目のカリキュラム及び開講日程などの詳細情報を表示する。
【０１２４】
受講者の感想アプリケーション４２２には、受講者の感想画面４６１（ＵＲＬ：http://xxx.example/feedback.html）が含まれる。受講者の感想画面４６１は、教育科目を以前に受講した人の感想などを表示する。
【０１２５】
教育申込アプリケーション４３１には、科目選択画面４７１（ＵＲＬ：http://xxx.education/selection.html）、及び科目申込画面４７２（ＵＲＬ：http://xxx.education/registration.html）が含まれる。
【０１２６】
科目選択画面４７１は、ユーザに対して開講予定の教育科目の一覧を表示する。科目申込画面４７２は、ユーザに受講を希望する科目の一覧を表示して各科目を受講する希望の日程の入力を受け付ける。
【０１２７】
スケジューラアプリケーション４４１は、スケジューラ画面４８１（ＵＲＬ：http://yyy.schedule/schedule.html）が含まれる。スケジューラ画面４８１は、ユーザのスケジュールを表示する。
【０１２８】
図８は、本発明の第１の実施の形態の教育支援システムの教育申込アプリケーション４３１を利用する業務の流れを示すフローチャートである。
【０１２９】
教育支援システムは、まず、開講中又は開講予定の教育科目の中で、受講を希望する科目を検索するために、科目選択画面４７１を表示し、ユーザから興味のある科目の選択を受け付ける（ステップ８１１）。
【０１３０】
教育支援システムは、ステップ８１１の処理で選択された興味のある科目について、ユーザがカリキュラム及び講師などの詳細情報を確認するために、科目詳細画面４５１を表示する（ステップ８１２）。ユーザは、科目詳細画面４５１を参照して、科目の詳細を確認し、選択した科目を受講するか否かを決定する。
【０１３１】
教育支援システムは、ユーザがステップ８１２の処理で受講を希望すると決定した科目の申し込みを受け付けるために、科目申込画面４７２を表示する（ステップ８１３）。
【０１３２】
教育支援システムは、ユーザが受講を希望する科目の開催日程を確認するために、再度、科目詳細画面４５１を表示する（ステップ８１４）。
【０１３３】
教育支援システムは、ユーザがステップ８１４の処理で確認した開催日程に基づいて、受講を希望する日程を入力し、科目の申し込みを行うために、科目申込画面４７２を表示する（ステップ８１５）。
【０１３４】
また、図８に示すフローチャートでは、ユーザが教育支援システムを利用して教育を申し込む流れの中で、ステップ８１１からステップ８１２までを科目選択シーン８２１としている。一方、ステップ８１３からステップ８１５までを科目申込シーン８２２としている。
【０１３５】
さらに、図５Ａに示したカスタマイズ定義情報２５１、及び図５Ｂに示したカスタマイズ適用ユーザ状態定義情報２５２に基づいて、図８に示したフローチャートに対応するカスタマイズ実行サーバ２２１の動作について説明する。また、各処理におけるユーザ状態履歴情報２５３の状態についてあわせて説明する。ここでは簡単のため、ユーザ状態履歴情報２５３には何も登録されていない状態から処理が開始されたものとする。
【０１３６】
カスタマイズ実行サーバ２２１は、ステップ８１１において、クライアント２１２から科目選択画面４７１（ＵＲＬ：http://xxx.education/selection.html）にアクセスするための要求メッセージを受信する。これは、図６のステップ６１２の処理に対応する。
【０１３７】
また、科目選択画面４７１のＵＲＬと一致するカスタマイズ対象識別子５３２を有する行は、カスタマイズ適用ユーザ状態定義情報２５２には含まれていない。すなわち、図６のステップ６１３の処理の結果は「ｎｏ」になる。
【０１３８】
通信解析部２２２は、遷移先の画面の所在情報がカスタマイズ適用ユーザ状態定義情報２５２の行５４１の遷移元識別子条件５３３と同一であるため（図６のステップ６１６の結果が「ｙｅｓ」）、ユーザ状態履歴情報２５３を更新する。具体的には、遷移先識別子５５３に参照先の識別子（科目選択画面４７１のＵＲＬ）が設定された行がユーザ状態履歴情報２５３に新たに追加される（図６のステップ６１７）。このとき、ユーザ状態履歴情報２５３は、図１０Ａのユーザ状態履歴情報１０１１に示した状態になる。
【０１３９】
次に、ステップ８１２において、カスタマイズ実行サーバ２２１は、クライアント２１２から科目詳細画面４５１（ＵＲＬ：http://xxx.example/class_detail.html）にアクセスするための要求メッセージを受信する（図６のステップ６１２）。
【０１４０】
通信解析部２２２は、遷移先の画面の所在情報（科目詳細画面４５１のＵＲＬ）がカスタマイズ対象識別子５３２と一致する行をカスタマイズ適用ユーザ状態定義情報２５２から取得する。さらに、取得された行のカスタマイズＩＤ５３１と一致するカスタマイズＩＤ５５１を有する行をユーザ状態履歴情報２５３から取得する。ステップ８１２の処理では、カスタマイズ適用ユーザ状態定義情報２５２の行５４１及び５４２のカスタマイズ対象識別子５３２が科目詳細画面４５１のＵＲＬと一致し、さらに、行５４１のカスタマイズＩＤ５３１（＝１００）がユーザ状態履歴情報１０１１の行のカスタマイズＩＤ５５１と一致する。したがって、図６のステップ６１３の結果が「ｙｅｓ」となり、通信解析部２２２は、図６のステップ６１４及びステップ６１５の処理によって、ユーザ状態履歴情報１０１１を図１０Ｂに示したユーザ状態履歴情報１０２１に更新する。その後、カスタマイズ適用部２２３は、カスタマイズ定義情報２５１の行５２１のカスタマイズ内容１を科目詳細画面４５１に適用する（図６のステップ６２０、図７）。カスタマイズ適用後、ユーザ状態履歴情報１０２１の対応する行は削除される（図６のステップ６２２）。
【０１４１】
次に、ステップ８１３において、カスタマイズ実行サーバ２２１は、クライアント２１２から科目申込画面４７２（ＵＲＬ：http://xxx.education/registration.html）にアクセスするための要求メッセージを受信する（図６のステップ６１２）。
【０１４２】
通信解析部２２２は、ステップ８１１と同様に、遷移先の画面の所在情報がカスタマイズ適用ユーザ状態定義情報２５２の行５４２の遷移元識別子条件５３３と同一であるため（図６のステップ６１６の結果が「ｙｅｓ」）、ユーザ状態履歴情報２５３を更新する（図６のステップ６１７）。このとき、ユーザ状態履歴情報２５３は、図１０Ｃのユーザ状態履歴情報１０３１に示した状態になる。
【０１４３】
次に、ステップ８１４において、カスタマイズ実行サーバ２２１は、クライアント２１２から科目詳細画面４５１（ＵＲＬ：http://xxx.example/class_detail.html）にアクセスするための要求メッセージを受信する。
【０１４４】
通信解析部２２２は、遷移先の画面の所在情報（科目詳細画面４５１のＵＲＬ）がカスタマイズ対象識別子５３２と一致する行をカスタマイズ適用ユーザ状態定義情報２５２から取得する。さらに、取得された行のカスタマイズＩＤ５３１と一致するカスタマイズＩＤ５５１を有する行をユーザ状態履歴情報１０３１から取得する。
【０１４５】
ステップ８１４の処理において、条件に適合する行が取得されるため（図６のステップ６１３の結果が「ｙｅｓ」）、通信解析部２２２は、図６のステップ６１４及びステップ６１５の処理によって、ユーザ状態履歴情報１０３１を図１０Ｄに示したユーザ状態履歴情報１０４１に更新する。その後、カスタマイズ適用部２２３は、カスタマイズ定義情報２５１の行５２２のカスタマイズ内容２を科目詳細画面４５１に適用する（図６のステップ６２０、図７）。カスタマイズ適用後、ユーザ状態履歴情報１０４１の対応する行は削除される（図６のステップ６２２）。
【０１４６】
最後に、ステップ８１５において、カスタマイズ実行サーバ２２１は、クライアント２１２から科目申込画面４７２（ＵＲＬ：http://xxx.education/registration.html）にアクセスするための要求メッセージを受信する。通信解析部２２２は、受信した要求メッセージを解析する。このとき、条件に一致しないため（図６のステップ６１３及びステップ６１６の結果が「ｎｏ」）、ユーザ状態履歴情報２５３を更新しない。
【０１４７】
図９は、本発明の第１の実施の形態の教育支援システムの各シーンで表示される科目詳細画面の一例を示す図である。
【０１４８】
図９には、従来のアプリケーション実行方法を適用した場合の科目詳細画面４５１と、本発明の第１の実施の形態によるアプリケーション実行方法を適用した場合の科目詳細画面４５１が示されている。
【０１４９】
従来のアプリケーション実行方法による結果９１１では、科目選択シーン８２１と科目申込シーン８２２の両方において、同じ科目詳細画面９２１が表示される。科目詳細画面９２１には、図４に示したデフォルトの科目詳細画面４５１に対して、受講者の感想９３１とスケジュール９３２が同時に関連付けられて表示されている。
【０１５０】
一方、本発明の第１の実施の形態のアプリケーション実行方法による結果９１２では、科目選択シーン８２１の場合には科目詳細画面９２２が表示され、科目申込シーン８２２の場合には科目詳細画面９２３が表示される。
【０１５１】
科目選択シーン８２１で表示される科目詳細画面９２２には、受講者の感想９３１が関連付けられる。また、科目申込シーン８２２で表示される科目詳細画面９２３には、ユーザのスケジュール９３２が関連付けられる。
【０１５２】
図９を参照すると、各科目詳細画面の右側には、スクロールバーが配置されているが、従来のアプリケーション実行方法と比較して、本発明の第１の実施の形態に係る科目詳細画面では表示される項目が少ないため、スクロール範囲を小さくすることができる。すなわち、ユーザが迅速に目的の情報を見つけることが可能となる。
【０１５３】
＜カスタマイズ定義＞
続いて、ユーザがカスタマイズ適用ユーザ状態定義情報２５２を定義するために利用されるユーザ状態定義画面について、図１１から図１３Ｂを用いて説明する。本発明では、アプリケーションのカスタマイズをユーザ自身で行うことが可能である。すなわち、カスタマイズ定義機能は、クライアントから操作可能である。
【０１５４】
ユーザ状態定義画面は、ユーザがアプリケーションを実行している間に適宜に生成可能であり、ユーザの要求に応じて起動される。ユーザは、ユーザ状態定義画面を介して、カスタマイズの適用条件を含むユーザの状態を定義し、カスタマイズ適用ユーザ状態定義情報２５２に格納する。
【０１５５】
ユーザがアプリケーションを変更するタイミングは、アプリケーションの実行中であることが想定されている。ここでいうアプリケーションの変更は、表示項目の追加などである。ユーザは、アプリケーションを実行中に、業務の変化に応じてアプリケーションを業務の目的に合った形に変更するためにアプリケーション変更機能を実行する。ユーザは、アプリケーション変更機能によって、アプリケーションの変更方法を定義する。アプリケーション変更機能については、従来技術を利用すればよいため、ここではその詳細を記述しない。また、ユーザがアプリケーション変更機能を呼び出す方法には、例えば、ユーザがアプリケーションの実行中に画面上のツールバーから呼び出す方法、及びコンテキストメニューから呼び出す方法がある。
【０１５６】
カスタマイズの適用条件であるユーザの状態を定義及びアプリケーションの変更が完了すると、カスタマイズされたアプリケーションを即座に提供することが可能となる。
【０１５７】
以降、ユーザ状態定義画面を生成するための構成を追加したカスタマイズ実行サーバ２２１の構成、カスタマイズ機能を実行するための手順、及びアプリケーションを変更（カスタマイズ）するための画面について説明する。
【０１５８】
図１１は、本発明の第１の実施の形態のアプリケーションのカスタマイズ機能を含むカスタマイズ実行サーバ２２１の構成を示すブロック図である。
【０１５９】
図１１に示したカスタマイズ実行サーバ２２１の構成には、図３に示した構成に加え、アプリケーションの変更を定義するための構成が追加されている。具体的には、主記憶装置３２３にカスタマイズ定義画面生成部１９１１が記憶され、さらに、二次記憶装置３２４に画面履歴情報１９５１が格納されている。
【０１６０】
カスタマイズ定義画面生成部１９１１は、アプリケーションを変更する場合にユーザからの入力を受け付ける定義画面を生成する。また、カスタマイズ定義画面生成部１９１１には、ユーザ状態定義画面生成部１９２１が含まれる。ユーザ状態定義画面生成部１９２１は、アプリケーションを変更するタイミングを定義するための情報を入力するユーザ状態定義画面を生成する。
【０１６１】
さらに、ユーザ状態定義画面生成部１９２１には、画面履歴取得部１９３１及び定義画面生成部１９４１が含まれる。画面履歴取得部１９３１は、ユーザとアプリケーションとの間の通信情報を取得する。定義画面生成部１９４１は、ユーザ状態定義画面を生成する。
【０１６２】
画面履歴情報１９５１は、ユーザとアプリケーションの通信情報を格納する。画面履歴情報１９５１には、ユーザが変更対象のアプリケーションに至るまでに実行を指示した１つ以上のアプリケーションの所在情報（ＵＲＬ）、当該アプリケーションの画面情報、及びアプリケーションの実行順序などが含まれる。
【０１６３】
続いて、カスタマイズ機能の実現するための処理について説明する。カスタマイズを定義する処理は、アプリケーションを利用して通常の業務処理を行う場合に画面履歴情報を記憶する処理２０１１と、カスタマイズ機能を実行する処理２０３１に分けられる。
【０１６４】
図１２Ａは、本発明の第１の実施の形態の画面履歴情報を記憶する処理２０１１の手順を示すフローチャートである。
【０１６５】
クライアント２１２は、ユーザによって要求されたアプリケーションによって提供される画面の所在情報に要求メッセージを送信する（ステップ２０２１）。
【０１６６】
ユーザ状態定義画面生成部１９２１は、画面履歴取得部１９３１によって、ステップ２０２１の処理で送信された要求メッセージを取得する。さらに、要求メッセージの構造を解析し、遷移先の画面の所在情報を取得し、画面履歴情報１９５１に格納する（ステップ２０２２）。例えば、ＨＴＴＰによる通信であれば、要求メッセージに含まれるリクエスト行に設定されたリクエストＵＲＩパラメータを取得することによって、遷移先の所在情報を取得できる。
【０１６７】
画面履歴取得部１９３１は、取得した画面の所在情報に対応するアプリケーションに要求メッセージを送信し、アプリケーションからの応答メッセージを受信する（ステップ２０２３）。
【０１６８】
画面履歴取得部１９３１は、ステップ２０２３の処理で取得した応答メッセージを解析し、画面情報などの情報を取得し、画面履歴情報１９５１に格納する。例えば、ＨＴＴＰによる通信であれば、応答メッセージのＨＴＴＰヘッダ又はＨＴＴＰボディに設定された値を取得することによって、画面情報などを取得できる。
【０１６９】
図１２Ｂは、本発明の第１の実施の形態のカスタマイズ条件及びカスタマイズ内容を定義する処理２０３１の手順を示すフローチャートである。
【０１７０】
ユーザ状態定義画面生成部１９２１は、クライアント２１２を介してユーザから要求されたアプリケーションのカスタマイズの実行要求を受け付ける。前述のように、アプリケーションのカスタマイズは、業務の変化に応じてアプリケーションを業務の目的に合った形に変更するために、ユーザがアプリケーションを実行しているときに要求される。ユーザ状態定義画面生成部１９２１は、ユーザからの要求に応じてアプリケーションのカスタマイズ変更機能を実行する。そして、カスタマイズ定義画面をユーザに提示し、具体的なカスタマイズ内容の入力を受け付ける（ステップ２０４１）。なお、カスタマイズ定義画面の詳細については、図１３Ａにて後述する。
【０１７１】
ユーザ状態定義画面生成部１９２１の定義画面生成部１９４１は、ユーザとアプリケーションの通信情報が格納された画面履歴情報１９５１に基づいて、ユーザ定義画面を生成する（ステップ２０４２）。なお、ユーザ定義画面の詳細については、図１３Ｂにて後述する。ユーザ状態定義画面には、ユーザがアプリケーションの実行を指示した順序を示す遷移履歴情報と、遷移履歴情報に対応したアプリケーションの画面情報を含む。さらに、ユーザの状態をカスタマイズ適用条件として定義するための機能、例えば、ダイアログボックスを含む。
【０１７２】
ユーザ状態定義画面生成部１９２１は、アプリケーション変更方法の定義が終了すると、ステップ２０４２の処理で生成されたユーザ定義情報画面を介して、カスタマイズ適用条件として定義されるユーザの状態の入力を受け付ける（ステップ２０４３）。
【０１７３】
ユーザ状態定義画面生成部１９２１は、ステップ２０４３の処理で定義された内容を、カスタマイズ適用ユーザ状態定義情報２５２に格納する（ステップ２０４４）。
【０１７４】
さらに、以上示した手順によって、ユーザが実際にアプリケーションをカスタマイズするための画面について説明する。
【０１７５】
図１３Ａは、本発明の第１の実施の形態のカスタマイズ定義画面２１１１の一例を示す図である。
【０１７６】
カスタマイズ定義画面２１１１には、アプリケーションの変更方法を定義するために必要な部品２１２１と、変更対象のアプリケーションの画面情報２１３１が表示される。具体的には、変更対象の画面に対し、必要な部品２１２１を配置することによって、アプリケーションをカスタマイズする。
【０１７７】
図１３Ｂは、本発明の第１の実施の形態のユーザ状態定義画面２１４１の一例を示す図である。
【０１７８】
ユーザ状態定義画面２１４１には、遷移履歴２１５１と画面構造２１６１が表示される。遷移履歴２１５１は、ユーザが変更対象のアプリケーションの実行を指示する以前に実行を指示したアプリケーションの画面の遷移履歴情報である。画面構造２１６１は、遷移履歴２１５１に含まれる各画面に対応した画面の構造情報である。遷移履歴２１５１から画面が選択されると、画面構造２１６１に対応する画面が表示される。
【０１７９】
ユーザは、アプリケーションの実行中に業務の変化に合わせてアプリケーション変更機能を実行し、カスタマイズ定義画面２１１１を使用して、アプリケーションをカスタマイズする。そして、カスタマイズ終了後に引き続いて、ユーザ状態定義画面２１４１を使用してカスタマイズ適用条件となるユーザの状態を定義する。以下に、ユーザ状態定義画面２１４１を利用する具体例を示す。
【０１８０】
教育支援システムでは、ユーザは、科目詳細画面を参照する前に科目一覧画面を参照していたのか、又は科目申込画面を参照していたのかを遷移履歴２１５１から選択することができる。したがって、ユーザが遷移履歴２１５１で選択した画面を遷移元の画面の所在情報をカスタマイズ適用条件として定義することができる。
【０１８１】
以上のように、ユーザ状態定義画面を介して、変更対象のアプリケーションに至るまでに実行されたアプリケーションの履歴などに基づいて、ユーザの状態をカスタマイズ適用条件として定義することが可能となる。
【０１８２】
＜効果＞
本発明の第１の実施の形態によれば、同一の画面を表示する場合であっても、業務の流れに応じて表示する情報を変更することができる。具体的には、ユーザが変更対象のアプリケーションの画面にアクセスする以前にアクセスしていた１つ以上のアプリケーションの所在情報をカスタマイズ定義の適用条件とすることによって、業務の流れに応じたカスタマイズを行うことができる。
【０１８３】
例えば、教育支援システムにおいて、科目を選択するシーンで科目の主催を参照する場合には、受講者の感想といった科目の選択に役立つ情報を表示することができる。これに対し、選択する科目が決定した後に科目の履修を申し込む場合には、講義日程とともにユーザのスケジュールを表示することが可能となる。このように、ユーザが実施する業務の目的に沿った情報を適切に取得できる。
【０１８４】
さらに、本発明の第１の実施の形態によれば、ユーザ自身でアプリケーションをカスタマイズすることができるため、システム開発者などがアプリケーションをカスタマイズする場合と比較してより業務に適合したカスタマイズを行うことができる。
【０１８５】
以上のように、本発明の第１の実施の形態によれば、ユーザが業務ごとに適切な機能を提供できるように、ユーザ自身でアプリケーションをカスタマイズすることができるため、業務の生産性を向上させることが期待される。
【０１８６】
（第２の実施の形態）
続いて、本発明の第２の実施の形態について、図１４から図１８を参照しながら説明する。
【０１８７】
第１の実施の形態では、ユーザが変更対象のアプリケーションの画面にアクセスする前にアクセスした１つ以上のアプリケーションの画面の所在情報をアプリケーションの変更条件としていた。
【０１８８】
しかし、画面の所在情報が同じで動的に構造情報が変更される、例えば、ＪａｖａＳｃｒｉｐｔ(登録商標、以下同じ）のようなＤＨＴＭＬ（Dynamic HyperText Markup Language）を利用した画面を有するアプリケーションでは、ユーザがアプリケーションと直接通信することなく、動的にアプリケーションの画面の構造情報を変更することが可能である。そのため、ユーザが業務の異なる場面において、画面の所在情報が同じ、かつ、動的に画面の構造情報を変更可能なアプリケーションを利用する場合には、第１の実施の形態に示した方法では、業務の場面に応じてアプリケーションを変更することができない可能性がある。
【０１８９】
そこで、本発明の第２の実施の形態では、変更対象のアプリケーションの実行前に実行された１つ以上のアプリケーションが、動的に構造情報を変更可能な画面情報を提供する場合にも、業務に応じてカスタマイズされたアプリケーションを提供する。
【０１９０】
なお、第２の実施の形態では、第１の実施の形態と共通する構成については、適宜説明を省略し、相違する構成を中心に説明する。また、第２の実施の形態は、図２及び図３に示した第１の実施の形態のシステム構成と同様である。
【０１９１】
＜各定義情報の内容＞
ここで、本発明の第２の実施の形態のアプリケーション実行システムで使用される定義情報の詳細について説明する。定義情報の種類は、第１の実施の形態と同様に、カスタマイズ実行サーバ２２１に格納されているカスタマイズ定義情報２５１、カスタマイズ適用ユーザ状態定義情報２５２及びユーザ状態履歴情報２５３の３種類である。
【０１９２】
図１４Ａは、本発明の第２の実施の形態のカスタマイズ定義情報２５１の一例を示す図である。カスタマイズ定義情報２５１は、第１の実施の形態と同じであるため、説明を省略する。
【０１９３】
図１４Ｂは、本発明の第２の実施の形態のカスタマイズ適用ユーザ状態定義情報２５２の一例を示す図である。
【０１９４】
カスタマイズ適用ユーザ状態定義情報２５２には、図５Ｂに示した第１の実施の形態の構成に加えて、新たにカスタマイズ適用条件として、遷移元構造条件１１１１が追加されている。カスタマイズＩＤ５３１、カスタマイズ対象識別子５３２及び遷移元識別子条件５３３については、第１の実施の形態と同様である。
【０１９５】
遷移元構造条件１１１１は、変更対象のアプリケーションの実行を指示する前に、実行が指示された１つ以上のアプリケーションによって提供される画面情報において、ユーザが画面上で選択した画面の構造情報である。
【０１９６】
例えば、図１４Ｂに示したカスタマイズ適用ユーザ状態定義情報２５２の行１１３１では、変更対象のアプリケーションによって提供される画面の所在情報「http://xxx.example/company_detail.html」の前に、所在情報「http://example/company_list.html」に対応する画面が表示されている。さらに、所在情報「http://example/company_list.html」に対応する画面において、ユーザが「/html/group/label=Area」に対応する画面の構造情報を選択した場合に、カスタマイズ内容を適用することを示している。構造情報は、例えば、ＸＰＡＴＨ（XML Path Language）のようなマークアップ言語に準拠した文書の特定の部分を指定する言語構文を利用して表現することができる。
【０１９７】
なお、遷移元構造条件１１１１には、ユーザが変更対象のアプリケーションに実行を指示する前に、実行を指示した１つ以上のアプリケーションによって提供される画面情報において、ユーザが画面上で選択した画面の構造情報を、アプリケーションの実行を指示した順序で連結した値を含めることができる。
【０１９８】
図１４Ｃは、本発明の第２の実施の形態のユーザ状態履歴情報２５３の一例を示す図である。
【０１９９】
ユーザ状態履歴情報２５３には、図５Ｃに示した第１の実施の形態の構成に加えて、新たにカスタマイズ適用条件として、ユーザによって選択された画面構造情報である選択構造１１２１が追加されている。カスタマイズＩＤ５５１、遷移元識別子５５２及び遷移先識別子５５３については、第１の実施の形態と同様である。
【０２００】
選択構造１１２１は、ユーザが変更対象のアプリケーションにアクセスする以前にアクセスした複数のアプリケーションによって提供される画面で選択された構造情報である。
【０２０１】
例えば、図１４Ｃに示したユーザ状態履歴情報２５３の行１１４１では、現時点で所在情報「http://xxx.example/company_detail.html」に対応する画面が表示されている。「http://xxx.example/company_detail.html」に対応する画面を表示する前には、アプリケーションによって提供される所在情報「http://example/company_list.html」に対応する画面が表示され、当該画面において、ユーザが「/html/group/label=Area」に対応した構造情報を選択したことを示している。
【０２０２】
＜通信解析部の処理の流れ＞
図１５Ａ及び図１５Ｂは、本発明の第２の実施の形態の通信解析部２２２による処理手順を示すフローチャートである。
【０２０３】
図１５Ａ及び図１５Ｂに示すフローチャートでは、図６に示した処理に加え、ステップ１２０１からステップ１２０４の処理が新たに追加されている。なお、図１５Ａ及び図１５Ｂのステップ６１１からステップ６２３の処理は、図６のステップ６１１からステップ６２３の処理を同様であるため説明を省略し、ステップ１２０１からステップ１２０４の処理について説明する。
【０２０４】
ユーザ状態解析部２３１は、ステップ６１２の処理で取得された要求メッセージの構造を解析し、ユーザが画面上で選択した構造情報と応答メッセージに対応した画面の所在情報を示す識別子が追加されているか否かを判定する（ステップ１２０１）。そして、要求メッセージに構造情報が追加されていた場合には（ステップ１２０１の結果が「ｙｅｓ」）、ステップ１２０２の処理を実行する。また、構造情報が含まれていない場合には（ステップ１２０１の結果が「ｎｏ」）、ステップ６２０の処理を実行する。
【０２０５】
ユーザ状態解析部２３１は、カスタマイズ適用ユーザ状態定義情報２５２から、遷移元構造条件１１１１と遷移元識別子条件５３３の組が、ステップ１２０１の処理で取得された構造情報と画面の所在情報の組と、同一の値を含む行を特定する。そして、特定された行に対応するカスタマイズＩＤ５３１を取得し、同一の値を有するユーザ状態履歴情報２５３のカスタマイズＩＤ５５１の行を特定し、当該行の選択構造１１２１に、ステップ１２０１の処理で取得された構造情報を設定する（ステップ１２０２）。
【０２０６】
ユーザ状態解析部２３１は、遷移元識別子条件５３３にステップ６１２の処理で取得された遷移先の所在情報と同一の値を有し、かつ、遷移元構造条件１１１１に画面の構造情報を定義した値を含む行がカスタマイズ適用ユーザ状態定義情報２５２に含まれるか否かを判定する（ステップ１２０３）。条件を満たす遷移元識別子条件５３３及び遷移元構造条件１１１１を含む行が存在する場合には（ステップ１２０３の結果が「ｙｅｓ」）、ステップ１２０４の処理を実行する。一方、条件を満たす遷移元識別子条件５３３及び遷移元構造条件１１１１を含む行が存在しない場合には（ステップ１２０３の結果が「ｎｏ」）、ステップ６２１の処理を実行する。
【０２０７】
ユーザ状態解析部２３１は、カスタマイズ適用部２２３から受信した応答メッセージに対応した画面情報からユーザによって選択された構造情報を取得し、画面の所在情報と選択された構造情報を取得するためのプログラムを追加する（ステップ１２０４）。具体的には、受信した応答メッセージによってクライアントに提示される画面を介して、次に要求メッセージを送信する場合に、ユーザが画面上で選択した構造情報と対応する画面の所在情報を示す識別子をカスタマイズ実行サーバ２２１に送信する処理が実行されるプログラムである。
【０２０８】
選択された構造情報及び応答メッセージに対応する画面の所在情報をカスタマイズ実行サーバ２２１に送信するプログラムは、例えば、ＪａｖａＳｃｒｉｐｔのようなプログラミング言語を用いることによって実現可能である。具体的には、Ｗｅｂシステムの場合には、画面情報であるＨＴＭＬファイルにＪａｖａＳｃｒｉｐｔなどによって記述されたプログラムを埋め込めばよい。また、カスタマイズ実行サーバ２２１に構造情報を送信する方法としては、例えば、ＨＴＴＰを使った通信であれば、ＨＴＴＰヘッダにユーザが画面上で選択した構造情報を格納すればよい。
【０２０９】
＜カスタマイズ適用部の処理の流れ＞
図１６は、本発明の第２の実施の形態のカスタマイズ適用部２２３による処理手順を示すフローチャートである。
【０２１０】
図１６に示すフローチャートでは、図７に示した処理に加え、ステップ１３０１及びステップ１３０２の処理が新たに追加されている。なお、図１６のステップ７１１からステップ７１７の処理は、図６のステップ７１１からステップ７１７の処理を同様であるため説明を省略し、ステップ１３０１及びステップ１３０２の処理について説明する。
【０２１１】
ユーザ状態判定部２４１は、ステップ７１４の処理で取得された遷移元識別子５５２と遷移元識別子条件５３３が同一であって、カスタマイズ適用ユーザ状態定義情報２５２の遷移元構造条件１１１１と、ユーザ状態履歴情報２５３の選択構造１１２１が同じ行が存在するか否かを判定する（ステップ１３０１）。遷移元構造条件１１１１と同一の選択構造１１２１を含む行が存在する場合には（ステップ１３０１の結果が「ｙｅｓ」）、ステップ１３０２の処理を実行する。遷移元構造条件１１１１と同一の選択構造１１２１を含む行が存在しない場合には（ステップ１３０１の結果が「ｎｏ」）、ステップ７１６の処理を実行する。
【０２１２】
カスタマイズ適用部２２３は、ステップ１３０１の処理で取得されたカスタマイズ定義情報２５１のカスタマイズＩＤ５１１の行に含まれるカスタマイズ内容５１３を応答メッセージに適用することによって、新たな応答メッセージを作成する（ステップ１３０２）。
【０２１３】
＜アプリケーション実行方法の具体例＞
ここで、本発明の第２の実施の形態を企業情報参照システムに適用することによって、アプリケーション実行方法の具体的な動作及び効果について説明する。企業情報参照システムは、ユーザが拡販活動の中で顧客企業の情報を確認する場合などに利用されるシステムである。
【０２１４】
図１７は、本発明の第２の実施の形態の企業情報参照システムに含まれる各アプリケーション実行サーバの機能について説明する図である。
【０２１５】
企業情報参照システムには、アプリケーション実行サーバ１４６１、１４７１及び１４８１が含まれる。アプリケーション実行サーバ１４６１、１４７１及び１４８１は、図２に示したアプリケーション実行サーバ２６１、２６２及び２６３に相当する。
【０２１６】
アプリケーション実行サーバ１４６１は、企業詳細アプリケーション１４０１及び経済状況アプリケーション１４０２を提供する。アプリケーション実行サーバ１４７１は、企業情報参照アプリケーション１４０３を提供する。アプリケーション実行サーバ１４８１は、取引履歴アプリケーション１４０４を提供する。各アプリケーションは、Ｗｅｂシステムである。
【０２１７】
企業詳細アプリケーション１４０１には、企業情報の詳細を表示する企業詳細画面１４１１（ＵＲＬ：http://xxx.example/company_detail.html）が含まれる。また、経済状況アプリケーション１４０２には、企業が所在する地域の経済状況を表示する経済状況画面１４２１（ＵＲＬ：http://xxx.example/area_report.html）が含まれる。
【０２１８】
企業情報参照アプリケーション１４０３には、企業の一覧を表示する企業一覧画面１４３１（ＵＲＬ：http://example/company_list.html）が含まれる。企業一覧画面１４３１は、「地域」又は「得意先／重点顧客」が選択されることによって、異なる構造で画面が動的に生成される。
【０２１９】
取引履歴アプリケーション１４０４には、該当する企業の取引履歴を表示する取引履歴画面１４４１（ＵＲＬ：http://yyy.business/deal.html）を含むことを示している。
【０２２０】
ここで、ユーザが拡販活動を実施するため、企業情報参照システムで企業一覧画面１４３１を参照し、その後、企業の詳細を確認するために、企業詳細画面１４１１を参照する業務の流れがあるとする。
【０２２１】
このとき、ユーザが企業一覧画面１４３１で企業が所在する「地域」の観点を選択してから企業詳細画面１４１１を確認する場面と、「得意先／重点顧客」の観点を選択してから企業詳細画面１４１１を確認する場面がある。このような２つの場面では、ユーザが企業詳細画面１４１１を参照する目的が異なるため、企業の詳細情報と合わせて確認したい情報が異なると考えられる。
【０２２２】
例えば、ユーザが「地域」の観点を選択して、企業詳細画面１４１１を参照する場合には、企業の詳細情報と合わせて、地域の経済状況を表示する経済状況画面１４２１の情報を合わせて確認する。また、ユーザが「得意先／重点顧客」の観点を選択して、企業詳細画面１４１１を参照するときには、企業の詳細情報と合わせて、顧客との取引履歴を合わせて確認するといった場合がある。
【０２２３】
以下、図１４Ａから図１４Ｃに示したカスタマイズ定義情報２５１、カスタマイズ適用ユーザ状態定義情報２５２及びユーザ状態履歴情報２５３に基づいて、「地域」観点で企業詳細画面１４１１を確認する場面と、「得意先／重点顧客」観点で企業詳細画面１４１１を確認する場面における処理の流れを説明する。
【０２２４】
（「地域」観点における詳細画面）
カスタマイズ実行サーバ２２１は、クライアント２１２から企業一覧画面１４３１（ＵＲＬ：http://example/company_list.html）にアクセスするための要求メッセージを受け付けると、通信解析部２２２によって受信した要求メッセージを解析する。
【０２２５】
通信解析部２２２は、遷移先の画面の所在情報がカスタマイズ適用ユーザ状態定義情報２５２の行１１３１及び１１３２と同一であるため、ユーザ状態履歴情報２５３を更新する。
【０２２６】
さらに、ユーザ状態解析部２３１は、遷移先の画面の所在情報及び遷移元識別子条件５３３が同一であって、遷移元構造条件１１１１が定義されているため、クライアント２１２に対する応答メッセージに、構造情報と応答メッセージに対応した画面の所在情報をカスタマイズ実行サーバ２２１に送信するプログラムを埋め込む（図１５Ｂのステップ１２０４）。この時点におけるユーザ状態履歴情報２５３は、図１８Ａのユーザ状態履歴情報１５１１に示した状態になっている。
【０２２７】
次に、ユーザは、カスタマイズ実行サーバ２２１から取得した企業一覧画面１４３１で、観点選択ラジオボタン１４５１の「地域」を選択し、詳細情報を参照したい企業を選択する。
【０２２８】
カスタマイズ実行サーバ２２１は、クライアント２１２から企業詳細画面１４１１（ＵＲＬ：http://xxx.example/company_detail.html）にアクセスするための要求メッセージを受信し、通信解析部２２２によって受信した要求メッセージを解析する。そして、通信解析部２２２は、遷移先の画面の所在情報が変更対象の企業詳細画面１４１１と同一であるため、ユーザ状態履歴情報１５１１を更新する。
【０２２９】
通信解析部２２２は、要求メッセージにユーザが企業一覧画面１４３１で選択した構造情報が含まれているため、選択した構造情報に基づいてユーザ状態履歴情報１５１１を更新する（図１５Ａのステップ１２０２）。この時点では、ユーザ状態履歴情報は、図１８Ｂのユーザ状態履歴情報１５１２に示す状態となる。
【０２３０】
そして、カスタマイズ適用部２２３は、カスタマイズ適用ユーザ状態定義情報２５２の行１１３１がユーザ状態履歴情報１５１２に適合するため、カスタマイズ定義情報２５１の行１１５１のカスタマイズ内容３を企業詳細画面１４１１に適用する。
【０２３１】
（「得意先／重点顧客」観点における詳細画面）
カスタマイズ実行サーバ２２１は、クライアントから企業一覧画面１４３１にアクセスするための要求メッセージを受け付けると、通信解析部２２２によって受信した要求メッセージを解析する。
【０２３２】
通信解析部２２２は、遷移先の画面の所在情報がカスタマイズ適用ユーザ状態定義情報２５２の行１１３１及び１１３２と同一であるため、ユーザ状態履歴情報２５３を更新する。
【０２３３】
さらに、ユーザ状態解析部２３１は、遷移先の画面の所在情報及び遷移元識別子条件５３３が同一であって、遷移元構造条件１１１１が定義されているため、クライアント２１２に対する応答メッセージに、構造情報と応答メッセージに対応した画面の所在情報をカスタマイズ実行サーバ２２１に送信するプログラムを埋め込む（図１５Ｂのステップ１２０４）。この時点におけるユーザ状態履歴情報２５３は、図１８Ｃのユーザ状態履歴情報１５１３に示した状態になる。
【０２３４】
次に、ユーザは、カスタマイズ実行サーバ２２１から取得した企業一覧画面１４３１で、観点選択ラジオボタン１４５１の「得意先／重点顧客」を選択し、詳細情報を参照したい企業を選択する。
【０２３５】
カスタマイズ実行サーバ２２１は、クライアント２１２から企業詳細画面１４１１にアクセスするための要求メッセージを受信し、通信解析部２２２によって受信した要求メッセージを解析する。そして、通信解析部２２２は、遷移先の画面の所在情報が変更対象の企業詳細画面１４１１と同一であるため、ユーザ状態履歴情報１５１３を更新する。
【０２３６】
また、通信解析部２２２は、要求メッセージにユーザが企業一覧画面１４３１で選択した構造情報が含まれているため、選択した構造情報に基づいてユーザ状態履歴情報２５３を更新する（図１５Ａのステップ１２０２）。この時点では、ユーザ状態履歴情報は、図１８Ｄのユーザ状態履歴情報１５１４に示す状態となっている。
【０２３７】
そして、カスタマイズ適用部２２３は、カスタマイズ適用ユーザ状態定義情報２５２の行１１３２がユーザ状態履歴情報１５１４に適合するため、カスタマイズ定義情報２５１の行１１５２のカスタマイズ内容４を企業詳細画面１４１１に適用する。
【０２３８】
＜カスタマイズ定義＞
本発明の第２の実施の形態において、カスタマイズ適用条件を設定する方法について補足する。
【０２３９】
企業検索システムの例では、ユーザは企業一覧画面を図１３Ｂの遷移履歴２１５１から選択し、画面構造２１６１に表示された画面情報から、カスタマイズ適用条件として登録する画面の構造「地域」又は「得意先／重点顧客」を選択する。その後、カスタマイズ定義画面２１１１を利用して、カスタマイズ内容を定義する。そして、選択した画面の所在情報などと合わせて、画面の構造をカスタマイズ適用条件として定義する。
【０２４０】
＜効果＞
本発明の第２の実施の形態によれば、カスタマイズ適用条件に選択された構造を追加することによって、変更対象のアプリケーションの実行前に実行された１つ以上のアプリケーションが、動的に構造情報を変更可能な画面情報を提供する場合にも、業務に応じてカスタマイズされたアプリケーションをユーザに提供することができる。
【０２４１】
（第３の実施の形態）
続いて、本発明の第３の実施の形態について、図１９から図２１を参照しながら説明する。
【０２４２】
第２の実施の形態では、ユーザが変更対象のアプリケーションの画面にアクセスする前にアクセスした１つ以上のアプリケーションの画面の所在情報と、ユーザが画面上で選択した画面の構造情報をアプリケーションの変更条件としていた。
【０２４３】
しかし、ユーザがアプリケーションの提供する画面情報を介して操作する場合には、第２の実施の形態のようにユーザが画面上で選択した画面の構造情報を利用するのではなく、アプリケーションによって生成されるクエリ識別子を利用するようにしてもよい。クエリ識別子とは、ユーザがアプリケーションによって提供された画面を操作した場合に、アプリケーションによって生成される要求メッセージに含まれる。例えば、アプリケーションがＨＴＴＰによって通信する場合には、ＨＴＴＰヘッダ又はＨＴＴＰメッセージボディにクエリ識別子が含まれる。
【０２４４】
第３の実施の形態では、ユーザがアプリケーションの実行を指示する場合に、ユーザの画面操作にともなって生成されるクエリ識別子に基づいて、カスタマイズされたアプリケーションを提供する方法について説明する。
【０２４５】
なお、第３の実施の形態では、第１の実施の形態と共通する構成については、適宜説明を省略し、相違する構成を中心に説明する。また、第３の実施の形態は、図２及び図３に示した第１の実施の形態のシステム構成と同様である。
【０２４６】
＜各定義情報の内容＞
ここで、本発明の第３の実施の形態のアプリケーション実行システムで使用される定義情報の詳細について説明する。定義情報の種類は、第１の実施の形態と同様に、カスタマイズ実行サーバ２２１に格納されているカスタマイズ定義情報２５１、カスタマイズ適用ユーザ状態定義情報２５２及びユーザ状態履歴情報２５３の３種類である。
【０２４７】
図１９Ａは、本発明の第３の実施の形態のカスタマイズ定義情報２５１の一例を示す図である。カスタマイズ定義情報２５１は、第１の実施の形態と同じであるため、説明を省略する。
【０２４８】
図１９Ｂは、本発明の第３の実施の形態のカスタマイズ適用ユーザ状態定義情報２５２の一例を示す図である。
【０２４９】
カスタマイズ適用ユーザ状態定義情報２５２には、図５Ｂに示した第１の実施の形態の構成に加えて、新たにカスタマイズ適用条件として、クエリ識別子１６１１が追加されている。カスタマイズＩＤ５３１、カスタマイズ対象識別子５３２及び遷移元識別子条件５３３については、第１の実施の形態と同様である。
【０２５０】
例えば、図１９Ｂに示したカスタマイズ適用ユーザ状態定義情報２５２の行１６３１では、変更対象のアプリケーションによって提供される画面の所在情報「http://xxx.example/company_detail.html」の前に、所在情報「http://example/company_list.html」に対応する画面が表示される。さらに、所在情報「http://example/company_list.html」に対応する画面において、ユーザが画面上で何らかの操作を行った結果、アプリケーションが「target=Area」のクエリ情報を生成した場合にカスタマイズ内容を適用することを示している。
【０２５１】
図１９Ｃは、本発明の第３の実施の形態のユーザ状態履歴情報２５３の一例を示す図である。
【０２５２】
ユーザ状態履歴情報２５３には、図５Ｃに示した第１の実施の形態の構成に加えて、新たにカスタマイズ適用条件として、ユーザによって操作された結果アプリケーションによって生成されたクエリ識別子１６２１が追加されている。カスタマイズＩＤ５５１、遷移元識別子５５２及び遷移先識別子５５３については、第１の実施の形態と同様である。
【０２５３】
例えば、図１９Ｃに示したユーザ状態履歴情報２５３の行１６４１では、現時点で所在情報「http://xxx.example/company_detail.html」に対応する画面が表示されている。「http://xxx.example/company_detail.html」に対応する画面を表示する前には、アプリケーションによって提供される所在情報「http://example/company_list.html」に対応する画面が表示され、当該画面において、ユーザが何らかの操作を実施した結果、「target=Area」で示すクエリ識別子が生成されたことを示している。
【０２５４】
＜通信解析部の処理の流れ＞
図２０Ａ及び図２０Ｂは、本発明の第３の実施の形態の通信解析部２２２による処理手順を示すフローチャートである。
【０２５５】
図２０Ａ及び図２０Ｂに示すフローチャートでは、図６に示した処理に加え、ステップ１７０１及びステップ１７０２の処理が新たに追加されている。なお、図２０Ａ及び図２０Ｂのステップ６１１からステップ６２３の処理は、図６のステップ６１１からステップ６２３の処理を同様であるため説明を省略し、ステップ１７０１及びステップ１７０２の処理について説明する。
【０２５６】
ユーザ状態解析部２３１は、ステップ６１２の処理で取得された要求メッセージの構造を解析し、クエリ識別子が含まれているか否かを判定する（ステップ１７０１）。要求メッセージにクエリ識別子が含まれていた場合には（ステップ１７０１の結果が「ｙｅｓ」）、ステップ１７０２の処理を実行する。クエリ識別子が含まれていない場合には（ステップ１７０２の結果が「ｎｏ」）、ステップ６２０の処理を実行する。
【０２５７】
ユーザ状態解析部２３１は、カスタマイズ適用ユーザ状態定義情報２５２から、クエリ識別子１６１１と遷移元識別子条件５３３の組が、ステップ１７０１の処理で取得されたクエリ識別子と画面の所在情報の組と、同一の値を含む行を特定する。そして、特定された行に対応するカスタマイズＩＤ５３１を取得し、同一の値を有するユーザ状態履歴情報２５３のカスタマイズＩＤ５５１の行を特定し、当該行のクエリ識別子１６２１に、ステップ１７０１の処理で取得された構造情報を設定する（ステップ１７０２）。
【０２５８】
＜カスタマイズ適用部の処理の流れ＞
図２１は、本発明の第３の実施の形態のカスタマイズ適用部２２３による処理手順を示すフローチャートである。
【０２５９】
図２１に示すフローチャートでは、図７に示した処理に加え、ステップ１８０１及びステップ１８０２の処理が新たに追加されている。なお、図２１のステップ７１１からステップ７１７の処理は、図６のステップ７１１からステップ７１７の処理を同様であるため説明を省略し、ステップ１８０１及びステップ１８０２の処理について説明する。
【０２６０】
ユーザ状態判定部２４１は、ステップ７１４の処理で取得された遷移元識別子５５２と遷移元識別子条件５３３が同一であって、カスタマイズ適用ユーザ状態定義情報２５２のクエリ識別子１６１１と、ユーザ状態履歴情報２５３のクエリ識別子１６２１が同じ行が存在するか否かを判定する（ステップ１８０１）。クエリ識別子１６１１と同一のクエリ識別子１６２１を含む行が存在する場合には（ステップ１８０１の結果が「ｙｅｓ」）、ステップ１８０２の処理を実行する。クエリ識別子１６１１と同一のクエリ識別子１６２１を含む行が存在しない場合には（ステップ１８０１の結果が「ｎｏ」）、ステップ７１６の処理を実行する。
【０２６１】
カスタマイズ適用部２２３は、ステップ１８０１の処理で取得されたカスタマイズ定義情報２５１のカスタマイズＩＤ５１１の行に含まれるカスタマイズ内容５１３を応答メッセージに適用することによって、新たな応答メッセージを作成する（ステップ１８０２）。
【０２６２】
＜カスタマイズ定義＞
本発明の第３の実施の形態において、カスタマイズ適用条件を設定する方法について補足する。
【０２６３】
本発明の第３の実施の形態の画面履歴情報１９５１には、アプリケーションによって提供される画面を介してユーザが操作する際に生成されるクエリ識別子がさらに含まれる。前述のように、クエリ識別子はＨＴＴＰヘッダ又はＨＴＴＰメッセージボディから取得することが可能である。
【０２６４】
また、ユーザがクエリ識別子そのものを選択することが困難な場合には、画面履歴情報１９５１にユーザによる操作を識別する情報を記録し、カスタマイズ適用条件として定義する際に、操作内容を提示してクエリ識別子を指定できるようにしてもよい。
【０２６５】
＜効果＞
本発明の第３の実施の形態によれば、カスタマイズ適用条件にユーザの操作によって生成されたクエリ識別子を追加することによって、業務に応じてカスタマイズされたアプリケーションを提供することができる。
【０２６６】
なお、以上示した第１から第３の実施の形態のように、遷移元及び遷移先の画面、構造情報又はクエリ識別子の他に、例えば、クライアントからの要求に応じてアプリケーションサーバで生成される、または管理される情報をカスタマイズ適用条件に設定してもよい。アプリケーションサーバで生成される、または管理される情報には、例えば、アプリケーションサーバ上で動作するアプリケーションが出力するログ情報や、ユーザの所属、趣味、性別、年齢などのユーザプロファイル情報がある。また第１から第３の実施の形態でカスタマイズ適用条件として利用した遷移元及び遷移先の画面、構造情報又はクエリ識別子と、アプリケーションサーバで生成される、または管理される情報を組み合わせてカスタマイズ適用条件に設定しても良い。
【０２６７】
図２２は、上記を実現するための本発明のサーバ状態をアプリケーションの変更条件とする計算機システムの構成の一例を示すブロック図である。
【０２６８】
図２２では、図２に示した計算機システムの構成加えて、通信解析部２２２の中に、サーバ状態を取得するサーバ状態取得部２３２を加え、またクライアント実行サーバと、ネットワーク２８２を結線している。さらにアプリケーション実行サーバ２６１，２６２，２６３の中に、サーバ状態送信部２９１，２９２，２９３を加えている。
【０２６９】
第１から第３の実施の形態では、カスタマイズ実行サーバ２２１が、クライアント２１１からアプリケーション実行サーバへの要求メッセージと、アプリケーション実行サーバからクライアントへの応答メッセージを、中間で取得していた。しかし、ここでは、カスタマイズ実行サーバ２２１は、アプリケーション実行サーバからクライアントへの応答メッセージのみを取得する形態とし、クライアント２１１からの要求メッセージは、カスタマイズ実行サーバ２２１を介さずに、直接、アプリケーション実行サーバへ送信されることを想定している。
【０２７０】
サーバ状態取得部２３２は、クライアントから実行の指示があったアプリケーションの応答メッセージを通信解析部２２２が取得した時に、実行が指示されたアプリケーションが稼動するアプリケーション実行サーバに対してサーバ状態を取得する要求を出し、アプリケーション実行サーバからサーバ状態を取得する。そして、カスタマイズ適用ユーザ状態定義情報２５２を参照し、カスタマイズ適用ユーザ状態定義情報２５２に定義された内容に一致するときに、サーバ状態取得部２３２は、取得したサーバ状態をユーザ状態履歴情報２５３に格納する。
【０２７１】
ここで、取得するサーバ状態を示す情報は、カスタマイズ適用ユーザ状態定義情報２５２に定義される。例えば、図５Ｂで示したカスタマイズ適用ユーザ状態定義情報２５２に、新たにサーバ状態を定義する列を追加し、当該列に定義されたサーバ状態を格納する。
【０２７２】
サーバ状態送信部２９１，２９２，２９３は、カスタマイズ実行サーバ２２１からのサーバ状態の取得要求メッセージを受信した時に、要求されたサーバ状態を、カスタマイズ実行サーバ２２１に返信する。ここで要求されたサーバ状態は、例えば、カスタマイズ実行サーバ２２１からのサーバ状態の取得要求メッセージに含まれていても良いし、またカスタマイズ実行サーバ２２１から、要求内容をアプリケーション実行サーバに事前に登録しておいても良い。
【符号の説明】
【０２７３】
１１１、４２１    科目詳細アプリケーション
１１２、４２２    受講者の感想アプリケーション
１１３、４４１    スケジューラアプリケーション
１２１、１２２、１３１、１３２、４５１    科目詳細画面
１５１    クライアント
２１１    クライアント実行サーバ
２２１    カスタマイズ実行サーバ
２２２    通信解析部
２２３    カスタマイズ適用部
２２４    記憶装置
２３１    ユーザ状態解析部
２３２    サーバ状態取得部
２４１    ユーザ状態判定部
２５１    カスタマイズ定義情報
２５２    カスタマイズ適用ユーザ状態定義情報
２５３    ユーザ状態履歴情報
２６１、２６２、２６３、４１１、４１２、４１３、１４６１、１４７１、１４８１    アプリケーション実行サーバ
２７１、２７２、２７３    業務アプリケーション
２８１、２８２    ネットワーク
２９１、２９２、２９３    サーバ状態送信部
３１１、３２１、３４１    ネットワークインタフェース
３１２、３２２、３４２    ＣＰＵ
３１３、３２３、３４３    主記憶装置
３１４、３２４、３４４    二次記憶装置
３１５、３２５、３４５    バス
４６１    受講者の感想画面
４７１    科目選択画面
４７２    科目申込画面
４８１    スケジューラ画面
１４０１    企業詳細アプリケーション
１４０２    経済状況アプリケーション
１４０３    企業情報参照アプリケーション
１４０４    取引履歴アプリケーション
１４１１    企業詳細画面
１４２１    経済状況画面
１４３１    企業一覧画面
１４４１    取引履歴画面
１４５１    観点選択ラジオボタン
１９１１    カスタマイズ定義画面生成部
１９２１    ユーザ状態定義画面生成部
１９３１    画面履歴取得部
１９４１    定義画面生成部
１９５１    画面履歴情報
２１１１    カスタマイズ定義画面
【図１】
2010204834.tif 000003
【図２】
2010204834.tif 000004
【図３】
2010204834.tif 000005
【図４】
2010204834.tif 000006
【図５Ａ】
2010204834.tif 000007
【図５Ｂ】
2010204834.tif 000008
【図５Ｃ】
2010204834.tif 000009
【図６】
2010204834.tif 000010
【図７】
2010204834.tif 000011
【図８】
2010204834.tif 000012
【図９】
2010204834.tif 000013
【図１０Ａ】
2010204834.tif 000014
【図１０Ｂ】
2010204834.tif 000015
【図１０Ｃ】
2010204834.tif 000016
【図１０Ｄ】
2010204834.tif 000017
【図１１】
2010204834.tif 000018
【図１２Ａ】
2010204834.tif 000019
【図１２Ｂ】
2010204834.tif 000020
【図１３Ａ】
2010204834.tif 000021
【図１３Ｂ】
2010204834.tif 000022
【図１４Ａ】
2010204834.tif 000023
【図１４Ｂ】
2010204834.tif 000024
【図１４Ｃ】
2010204834.tif 000025
【図１５Ａ】
2010204834.tif 000026
【図１５Ｂ】
2010204834.tif 000027
【図１６】
2010204834.tif 000028
【図１７】
2010204834.tif 000029
【図１８Ａ】
2010204834.tif 000030
【図１８Ｂ】
2010204834.tif 000031
【図１８Ｃ】
2010204834.tif 000032
【図１８Ｄ】
2010204834.tif 000033
【図１９Ａ】
2010204834.tif 000034
【図１９Ｂ】
2010204834.tif 000035
【図１９Ｃ】
2010204834.tif 000036
【図２０Ａ】
2010204834.tif 000037
【図２０Ｂ】
2010204834.tif 000038
【図２１】
2010204834.tif 000039
【図２２】
2010204834.tif 000040