(57)【要約】処理モジュールによって構成されるアプリケーションプログラムを実行する計算機におけるプログラム実行方法であって、ＡＰ更新判断部が、実行中の処理モジュールの識別番号と配備された処理モジュールの識別番号とを比較することによって、実行する処理モジュールの変更が必要かを判断する手順と、ＡＰ更新判断部が、アプリケーションプログラムに含まれる各処理が実行済かを示す履歴情報と、実行中の処理モジュールと配備された処理モジュールとの間で異なる処理を示す情報とに基づいて、実行する処理モジュールの識別番号を決定する手順と、処理モジュール呼出部が、ＡＰ更新判断部によって決定された処理モジュールの識別番号を指定して、処理モジュールを呼び出す手順と、を含む。
2011118048.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数の処理モジュールによって構成されるアプリケーションプログラムを実行する計算機におけるプログラム実行方法であって、
前記処理モジュールは、１又は複数の処理を含み、かつ前記処理モジュールは識別番号で管理されており、
前記計算機は、実行する処理モジュールの変更のタイミングを判断するＡＰ更新判断部と、処理モジュールを呼び出す処理モジュール呼出部と、を備え、
前記方法は、
前記ＡＰ更新判断部が、実行中の処理モジュールの識別番号と配備された処理モジュールの識別番号とを比較することによって、実行する処理モジュールの変更が必要かを判断する手順と、
前記ＡＰ更新判断部が、前記処理モジュールに含まれる各処理が実行済かを示す履歴情報と、実行中の処理モジュールと配備された処理モジュールとの間で異なる処理を示す情報とに基づいて、実行する処理モジュールの識別番号を決定する手順と、
前記処理モジュール呼出部が、前記ＡＰ更新判断部によって決定された処理モジュールの識別番号を指定して、処理モジュールを呼び出す手順と、を含むことを特徴とするプログラム実行方法。
【請求項２】
請求項１に記載のプログラム実行方法であって、
前記識別番号を決定する手順では、
前記処理モジュールに含まれる各処理が実行済かを示す第１のリストを取得し、
各識別番号の処理モジュールに含まれる変更された処理を示す第２のリストを取得し、
前記第１のリストと前記第２のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定し、
実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定することを特徴とするプログラム実行方法。
【請求項３】
請求項２に記載のプログラム実行方法であって、
前記処理は、１又は複数の作業グループにグループ化されており、
前記識別番号を決定する手順では、
前記作業グループに含まれる処理の中で、前記第１のリストと前記第２のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定し、
前記作業グループ内で、実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定することを特徴とするプログラム実行方法。
【請求項４】
請求項３に記載のプログラム実行方法であって、
前記計算機は、前記アプリケーションプログラムを解析し、前記処理モジュールの開始処理及び終了処理の少なくとも一方を識別するアプリケーション解析部を備え、
前記方法は、実行される処理が開始処理又は終了処理である場合、前記履歴情報を初期化する手順を含むことを特徴とするプログラム実行方法。
【請求項５】
請求項１に記載のプログラム実行方法であって、
前記計算機は、前記計算機にアクセスしたユーザの組織情報を識別する組織識別処理部を備え、
前記識別番号を決定する手順では、前記識別された組織情報を参照して、組織毎に、処理モジュールの識別番号を決定することを特徴とするプログラム実行方法。
【請求項６】
１又は複数の処理モジュールによって構成されるアプリケーションプログラムを実行する計算機を備える計算機システムであって、かつ前記処理モジュールは識別番号で管理されており、
前記処理モジュールは、１又は複数の処理を含み、
前記計算機は、実行する処理モジュールの変更のタイミングを判断するＡＰ更新判断部と、処理モジュールを呼び出す処理モジュール呼出部と、を備え、
前記ＡＰ更新判断部は、
実行中の処理モジュールの識別番号と配備された処理モジュールの識別番号とを比較することによって、実行する処理モジュールの変更が必要かを判断し、
前記アプリケーションプログラムに含まれる各処理が実行済かを示す履歴情報と、実行中の処理モジュールと配備された処理モジュールとの間で異なる処理を示す情報とに基づいて、実行する処理モジュールの識別番号を決定し、
前記処理モジュール呼出部は、前記ＡＰ更新判断部によって決定された処理モジュールの識別番号を指定して、処理モジュールを呼び出すことを特徴とする計算機システム。
【請求項７】
請求項６に記載の計算機システムであって、
前記ＡＰ更新判断部は、
前記処理モジュールに含まれる各処理が実行済かを示す第１のリストを取得し、
各識別番号の処理モジュールに含まれる変更された処理を示す第２のリストを取得し、
前記第１のリストと前記第２のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定し、
実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定することを特徴とする計算機システム。
【請求項８】
請求項７に記載の計算機システムであって、
前記処理は、１又は複数の作業グループにグループ化されており、
前記ＡＰ更新判断部は、
前記作業グループに含まれる処理の中で、前記第１のリストと前記第２のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定し、
前記作業グループ内で、実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定することを特徴とする計算機システム。
【請求項９】
請求項８に記載の計算機システムであって、
前記計算機は、前記アプリケーションプログラムを解析し、前記処理モジュールの開始処理及び終了処理の少なくとも一方を識別するアプリケーション解析部を備え、
前記ＡＰ更新判断部は、実行される処理が開始処理又は終了処理である場合、前記履歴情報を初期化することを特徴とする計算機システム。
【請求項１０】
請求項６に記載の計算機システムであって、
前記計算機は、前記計算機にアクセスしたユーザの組織情報を識別する組織識別処理部を備え、
前記ＡＰ更新判断部は、前記識別された組織情報を参照して、組織毎に、実行する処理モジュールの識別番号を決定することを特徴とする計算機システム。
【請求項１１】
１又は複数の処理モジュールによって構成されるアプリケーションプログラムを実行する計算機におけるプログラムの実行を制御するプログラムであって、
前記処理モジュールは、１又は複数の処理を含み、かつ前記処理モジュールは識別番号で管理されており、
前記計算機は、実行する処理モジュールの変更のタイミングを判断するＡＰ更新判断部と、処理モジュールを識別して呼び出す処理モジュール呼出部と、を備え、
前記プログラムは、
前記ＡＰ更新判断部が、実行中の処理モジュールの識別番号と配備された処理モジュールの識別番号とを比較することによって、実行する処理モジュールの変更が必要かを判断する手順と、
前記ＡＰ更新判断部が、前記処理モジュールに含まれる各処理が実行済かを示す履歴情報と、実行中の処理モジュールと配備された処理モジュールとの間で異なる処理を示す情報とに基づいて、実行する処理モジュールの識別番号を決定する手順と、
前記処理モジュール呼出部が、前記ＡＰ更新判断部によって決定された処理モジュールの識別番号を指定して、処理モジュールを呼び出す手順と、を前記計算機に実行させることを特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムであって、
前記識別番号を決定する手順では、
前記処理モジュールに含まれる各処理が実行済かを示す第１のリストを取得する手順と
各識別番号の処理モジュールに含まれる変更された処理を示す第２のリストを取得する手順と、
前記第１のリストと前記第２のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定する手順と、
実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定する手順と、を前記計算機に実行させることを特徴とするプログラム。
【請求項１３】
請求項１２に記載のプログラムであって、
前記処理は、１又は複数の作業グループにグループ化されており、
前記識別番号を決定する手順では、
前記作業グループに含まれる処理の中で、前記第１のリストと前記第２のリストとを比較して、実行済の処理と変更が必要な処理とが重複するか否かを判定する手順と、
前記作業グループ内で、実行済の処理と変更が必要な処理とが重複しない最新の識別番号に、実行する処理モジュールの識別番号を決定する手順と、を前記計算機に実行させることを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムであって、
前記計算機は、前記アプリケーションプログラムを解析し、前記処理モジュールの開始処理及び終了処理の少なくとも一方を識別するアプリケーション解析部を備え、
前記プログラムは、実行される処理が開始処理又は終了処理である場合、前記履歴情報を初期化する手順を前記計算機に実行させることを特徴とするプログラム。
【請求項１５】
請求項１１に記載のプログラムであって、
前記計算機は、前記計算機にアクセスしたユーザの組織情報を識別する組織識別処理部を備え、
前記プログラムは、前記識別番号を決定する手順では、前記識別された組織情報を参照して、組織毎に、実行する処理モジュールの識別番号を決定する手順を前記計算機に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムを実行する計算機システムに関し、アプリケーションプログラムを実行中でもアプリケーションプログラムを変更する技術に関する。
【背景技術】
【０００２】
近年、銀行のオンラインサービス、オンラインショッピングサイト、新幹線や飛行機の予約サービス等、ネットワークを介して様々なサービスがユーザに提供されている。これらのサービスは、多くの場合、Ｗｅｂアプリケーションサーバを用いて構築され、サービス事業者は、ユーザの様々なニーズに対応するために、機能拡張、セキュリティ向上、バグの修正等、システムを頻繁に変更している。これらの変更は、アプリケーション等のソフトウェアの変更を含んでいる。
一般に、システムを変更する場合、アプリケーション全体を入れ替えた後、システムを再起動する必要がある。また、変更すべきアプリケーションが実行中であった場合、アプリケーションの実行が終了するまで変更を待つか、実行されているアプリケーションを強制的に終了させる必要があった。そのため、修正箇所がアプリケーションの一部（画面へのチェックボックス追加に伴う入力確認処理の変更など）である場合や、既存機能の不具合をすぐに修正する場合でも、アプリケーションをすぐに変更することができなかったり、処理の強制終了による処理の不整合が生じる可能性があった。
従って、ユーザからは、すぐに修正できるように見える場合、すぐに不具合を修正する必要がある場合、又は、変更範囲が小さい場合でも、次回の定期メンテナンスまでアプリケーションを変更することができず、サービスの質が低下する問題がある。そこで、アプリケーションを迅速に変更することが求められている。
このため、アプリケーションを変更するための従来技術として、以下の技術が提案されている。
例えば、特許文献１には、複数のサーバとクライアントからの処理要求による負荷を稼動中のサーバ間で分散させる負荷分散機能を有する計算機システムにおいて、アプリケーションの更新指示があった場合、稼働率が低いサーバから停止し、アプリケーションのバージョンアップすることによって、システムを停止させることなく、アプリケーションを変更する技術が記載されている。
また、例えば、特許文献２には、予め設定されたスケジュールに従って、新しいソフトウェアを配信し、配布された新しいソフトウェアに対応する旧版のソフトウェアが存在する場合、新しいソフトウェアに変更する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２５０４２７号公報
【特許文献２】特開２００６−２３５８３８号公報
【発明の概要】
【０００４】
前述した特許文献１及び２に記載された技術では、予め決められた変更のタイミング（ユーザログアウト、アプリケーションの起動終了時、再起動時、等）までアプリケーションを変更できない。このため、アプリケーションの処理が実行中に、処理の不整合を生じることなくアプリケーションを変更できるタイミングがあっても、アプリケーションを変更できない問題があった。
本発明では、アプリケーションの変更のタイミングの制約を緩和し、アプリケーションを迅速に変更することを目的とする。
本発明の代表的な一例を示せば以下の通りである。すなわち、１又は複数の処理モジュールによって構成されるアプリケーションプログラムを実行する計算機におけるプログラム実行方法であって、前記処理モジュールは、１又は複数の処理を含み、かつ前記処理モジュールは識別番号で管理されており、前記計算機は、実行する処理モジュールの変更のタイミングを判断するＡＰ更新判断部と、処理モジュールを呼び出す処理モジュール呼出部と、を備え、前記方法は、前記ＡＰ更新判断部が、実行中の処理モジュールの識別番号と配備された処理モジュールの識別番号とを比較することによって、実行する処理モジュールの変更が必要かを判断する手順と、前記ＡＰ更新判断部が、前記アプリケーションプログラムに含まれる各処理が実行済かを示す履歴情報と、実行中の処理モジュールと配備された処理モジュールとの間で異なる処理を示す情報とに基づいて、実行する処理モジュールの識別番号を決定する手順と、前記処理モジュール呼出部が、前記ＡＰ更新判断部によって決定された処理モジュールの識別番号を指定して、処理モジュールを呼び出す手順と、を含む。
本発明の実施の形態によれば、予め決められたタイミングでなく、アプリケーションの処理が実行中でも、処理の不整合が生じないタイミングでアプリケーションを変更することができる。
【図面の簡単な説明】
【０００５】
図１は、本発明の第１の実施形態における計算機システムの全体の構成図である。
図２は、本発明の第１の実施形態におけるアプリケーションの機能的な構成例を示す図である。
図３は、本発明の第１の実施形態における処理モジュール格納部に格納されている各処理モジュールの構成図である。
図４Ａは、本発明の第１の実施の形態におけるコンピュータのハードウェアの構成図である。
図４Ｂは、本発明の第１の実施の形態におけるクライアント端末のハードウェアの構成図である。
図５Ａは、本発明の第１の実施形態における最新バージョン情報の構成の一例を示す図である。
図５Ｂは、本発明の第１の実施形態における処理モジュール情報の構成の一例を示す図である。
図５Ｃは、本発明の第１の実施形態における作業グループ定義の構成の一例を示す図である。
図６Ａは、本発明の第１の実施形態における実行バージョン情報の構成の一例を示す図である。
図６Ｂは、本発明の第１の実施形態における実行履歴の構成の一例を示す図である。
図７は、本発明の第１の実施形態における処理モジュール情報更新処理のフローチャートである。
図８は、本発明の第１の実施形態における実行処理割込処理の手順を示すフローチャートである。
図９は、本発明の第１の実施形態におけるＡＰ更新判断処理の手順を示すフローチャートである。
図１０は、本発明の第１の実施形態における処理モジュール呼出処理の手順を示すフローチャートである。
図１１Ａは、本発明の第１の実施形態におけるアプリケーション変更のタイミングの例を説明する図ある。
図１１Ｂは、図１１Ａに示す場合における、実行履歴の構成を示す図である。
図１１Ｃは、本発明の第１の実施形態におけるアプリケーション変更のタイミングの例を説明する図ある。
図１２は、本発明の第２の実施形態における計算機システムの全体の構成図である。
図１３は、本発明の第２の実施形態における作業グループ定義の構成の一例を示す図である。
図１４は、本発明の第２の実施形態におけるＡＰ更新判断処理の手順を示すフローチャートである。
図１５は、本発明の第２の実施形態における実行履歴の初期化処理の手順を示すフローチャートである。
図１６は、本発明の第３の実施形態における計算機システムの全体の構成図である。
図１７は、本発明の第３の実施形態における処理モジュール格納部に格納される各処理モジュールの構成図である。
図１８Ａは、本発明の第３の実施形態における最新バージョン情報の構成の一例を示す図である。
図１８Ｂは、本発明の第３の実施形態における処理モジュール情報の構成の一例を示す図である。
図１９は、本発明の第３の実施形態における実行バージョン情報の一例を示す図である
図２０は、本発明の第３の実施形態における処理モジュール情報更新処理の手順を示すフローチャートである
図２１は、本発明の第３の実施形態におけるＡＰ更新判断処理の手順を示すフローチャートである。
図２２は、本発明の第３の実施形態における処理モジュール呼出処理の手順を示すフローチャートである。
【発明を実施するための形態】
【０００６】
まず、本明細書に開示される発明の概要について説明する。
本発明では、アプリケーションの変更指示のタイミングに応じて、実行済の処理と変更される処理とで、同じ処理があるか否かを判定した結果に基づいて、アプリケーションの変更のタイミング（すなわち、呼び出される処理モジュールの識別情報）を判定し、その判定結果に従って、処理モジュールを指定して呼び出す。
なお、同じ処理があるか否かは、処理モジュールに含まれる処理のまとまり（作業グループ）毎に判定するとよい。
また、本発明で用いられる識別情報とは、呼び出される処理モジュールを特定するための情報で、アプリケーションに含まれる処理モジュールが変更された場合、変更前の処理モジュールと変更後の処理モジュールとを区別するための番号である。例えば、処理モジュールの変更時に、１ずつ値が増加するバージョン番号（バージョン）を使うことができる。なお、バージョン以外の他の情報であっても、呼び出される処理モジュールを一意に特定できるものであればよい。
本発明の実施の形態では、前述した方法を実現するために、以下の処理部を備える。
（１）配備されたモジュールに基づいて、処理モジュール情報と変更後の識別情報を変更する処理モジュール情報更新部
（２）アプリケーションが現在実行中の処理名を取得し、その処理の実行に割り込む実行処理割込部
（３）変更された処理を処理モジュールの識別情報毎に示した処理モジュール情報、及び、各処理の実行履歴を用いて処理モジュールの変更タイミングを判断するＡＰ更新判断部
（４）処理モジュール情報とＡＰ更新判断部による判断結果を用いて、実行中の識別情報に従って、処理モジュールを特定して呼び出す処理モジュール呼出部
以降では、本発明の実施形態について図面を用いて詳細に説明する。まず、第１の実施形態について説明する。なお、以降の実施形態の説明では、アプリケーションの変更の一例として、アプリケーションの更新（バージョンアップ）について記述しているが，本発明におけるアプリケーションの変更はバージョンアップに限定するものではない。他の例としては，ロールバックや一時的な機能変更などが挙げられる。
＜実施形態１＞
図１は、本発明の第１の実施形態における計算機システムの全体の構成図である。
第１の実施形態の計算機システムは、アプリケーション実行装置１００及びクライアント端末２００を備え、アプリケーション実行装置１００とクライアント端末２００とは、ネットワーク３５０によって接続される。
アプリケーション実行装置１００は、プロセッサ、メモリ及びインターフェースを備える計算機であり、そのハードウェアの構成の詳細は図４を用いて説明する。
アプリケーション実行装置１００は、アプリケーション１１０、アプリケーション実行処理部１２０、アプリケーション運用処理部１３０、処理モジュール格納部１４０、セッション情報１５０及びアプリケーション実行情報１６０を備える。アプリケーション実行処理部１２０及びアプリケーション運用処理部１３０は、インストールされたプログラムをプロセッサが実行することによって機能する。
アプリケーション１１０は、アプリケーション実行装置１００において、クライアント端末２００からの処理要求を処理するプログラムであり、プロセッサによって実行される。
アプリケーション実行処理部１２０は、実行処理割込部１２１、ＡＰ更新判断部１２２及び処理モジュール呼出部１２３を備える。
実行処理割込部１２１は、実行中の処理名を取得する。ＡＰ更新判断部１２２は、変更可能な処理モジュールのバージョンを判断する。処理モジュール呼出部１２３は、変更後のバージョンの処理モジュールを呼び出す。なお、実行処理割込部１２１、ＡＰ更新判断部１２２及び処理モジュール呼出部１２３の動作については、各々、図８、図９及び図１０を用いて後述する。
アプリケーション運用処理部１３０は、作業グループ定義編集ツール１３１、処理モジュール情報更新部１３２及び処理モジュール配備ツール１３３を備える。作業グループ定義編集ツール１３１は、ユーザがアプリケーション実行情報１６０に含まれる作業グループ定義１６３を編集するために用いられる。処理モジュール配備ツール１３３は、新しい処理モジュールを処理モジュール格納部１４０に格納し、処理モジュール情報１６２を更新するために、処理モジュール情報更新部１３２を呼び出す。処理モジュール情報更新部１３２は、追加された処理モジュールに関する処理モジュール情報１６２を更新する。処理モジュール情報更新部１３２の動作については、図７を用いて後述する。
処理モジュール格納部１４０は、各バージョンの処理モジュール１４１、１４２及び１４３を格納している。処理モジュールは作業グループ毎に存在する。なお、一つの処理モジュールに複数の作業グループが含まれてもよい。
セッション情報１５０は、アプリケーションを利用するユーザのセッション毎に生成される情報で、実行バージョン情報１５１及び実行履歴１５２を含む。実行バージョン情報１５１は、現在実行中の処理モジュールのバージョンを示す情報である（図６Ａ参照）。実行履歴１５２は、各処理が実行済かを示す情報である（図６Ｂ参照）。
アプリケーション実行情報１６０は、最新バージョン情報１６１、処理モジュール情報１６２及び作業グループ定義１６３を含む。最新バージョン情報１６１は、処理モジュールの最新バージョンを示す情報である（図５Ａ参照）。処理モジュール情報１６２は、処理モジュールのバージョン毎に、呼び出される処理モジュールを定義した情報である（図５Ｂ参照）。作業グループ定義１６３は、各処理が含まれる作業グループを示す情報である（図５Ｃ参照）。なお、作業グループは、一纏まりの処理の区切り毎に設けられる、処理のグループである。
クライアント端末２００は、プロセッサ、メモリ及びインターフェースを備える計算機であり、ブラウザ２１０が実行される。ブラウザ２１０は、ユーザの処理要求に応じて、アプリケーション実行装置１００に対してＨＴＴＰリクエストを送信する機能を有するプログラムである。なお、クライアント端末２００は、１台のみ図示するが、複数のクライアント端末２００が備わってもよい。
図２は、第１の実施形態におけるアプリケーション１１１の機能的な構成例を示す図である。
アプリケーション１１１は、クライアント端末２００からの要求に対して実行される複数の処理を含み、アプリケーション実行装置１００のプロセッサによって各処理が順次実行される。
例えば、図２に示すチケット予約アプリケーション１１１は、ログイン処理モジュール１１２、チケット検索処理モジュール１１３、空席照会処理モジュール１１４及び予約処理モジュール１１５を含む。これらの各モジュールは、一つ又は複数の処理によって構成され（図３参照）、作業グループ定義１６３における作業グループ４０２に対応する。
図３は、第１の実施形態における処理モジュール格納部１４０に格納される各処理モジュールの構成図である。
各処理モジュールは作業グループ毎に従って設けられ、さらに処理モジュールのバージョン毎に設けられる。また、ある作業グループに対応する処理モジュールのバージョンが上がった場合、その作業グループ中で変更（バージョンアップ）された処理だけが、次のバージョンの処理モジュールに含まれる。そのため、作業グループによっては、特定のバージョンの処理モジュールが存在しない場合もある。なお、アプリケーションに含まれる作業グループ（処理モジュール）は一つでもよい。
例えば、図３に示す予約処理モジュールバージョン１（１７０）は、作業グループに含まれる処理に対応して、選択内容確認画面表示処理１７１、顧客情報入力画面表示処理１７２、料金計算処理１７３、申込内容確認画面表示処理１７４、チェックボックス入力確認処理１７５及び予約完了画面表示処理１７６を含む。バージョンが上がった予約処理モジュールバージョン２（１８０）は、処理内容に変更があった申込内容確認画面表示処理１８１及びチェックボックス入力確認処理１８２を含む。
なお、予約処理モジュールバージョン１（１７０）は、処理モジュールバージョン１（１４１）に含まれ、予約処理モジュールバージョン２（１８０）は、処理モジュールバージョン２（１４２）に含まれる。
図４Ａは、第１の実施形態における計算機システムのハードウェアの構成図であり、図４Ｂは、クライアント端末のハードウェアの構成図である。
クライアント端末２００は、プロセッサ３００、主記憶装置３１０、二次記憶装置（例えば、ハードディスク装置）３２０及びネットワークインターフェース３４０を備え、これらのデバイスがシステムバス３３０によって接続された計算機である。
主記憶装置３１０は、例えば、半導体メモリであって、プロセッサ３００によって実行されるプログラム（例えば、ブラウザプログラム２１０）を格納する。
ネットワークインターフェース３４０は、ネットワーク３５０に接続され、所定のプロトコルに従って、ネットワーク３５０に接続された装置（例えば、アプリケーション実行装置１００）とデータを送受信する。
アプリケーション実行装置１００は、プロセッサ３６０、ネットワークインターフェース３７０、主記憶装置３９０及び二次記憶装置（例えば、ハードディスク装置）４００を備え、これらのデバイスがシステムバス３８０によって接続された計算機である。
ネットワークインターフェース３７０は、ネットワーク３５０に接続され、所定のプロトコルに従って、ネットワーク３５０に接続された装置（例えば、クライアント端末２００）とデータを送受信する。
主記憶装置３９０は、例えば、半導体メモリであって、プロセッサ３６０によって実行される各種プログラム、具体的には、アプリケーション１１０、すなわち、処理モジュール格納部１４０に含まれる処理モジュール、及び、アプリケーション実行処理部１２０及びアプリケーション運用処理部１３０を機能させるためのプログラムを格納する。
二次記憶装置４００は、例えば、ハードディスク装置等の大容量の記憶装置であり、セッション情報１５０及びアプリケーション情報１６０を格納する。
図５Ａから図５Ｃは、第１の実施形態におけるアプリケーション実行情報１６０の構成の一例を示す図であり、図５Ａは最新バージョン情報１６１を、図５Ｂは処理モジュール情報１６２を、図５Ｃは作業グループ定義１６３を示す。
図５Ａに示すように、最新バージョン情報１６１は、処理モジュール格納部１４０に格納されている処理モジュールの中で、最新のバージョンを表す最新バージョン４１１を含む。
図５Ｂに示すように、処理モジュール情報１６２は、処理モジュールバージョン４２１、作業グループ４２２、処理名４２３及び処理モジュール名４２４を含む。処理モジュールバージョン４２１は、処理モジュールのバージョンである。作業グループ４２２は、作業グループの名称である。処理名４２３は、各作業グループに含まれる処理の名称である。処理モジュール名４２４は、処理モジュール呼出部１２３がモジュールを呼び出すために利用される処理モジュールの名称である。
図５Ｃに示すように、作業グループ定義１６３は、処理名４０１及び作業グループ４０２を含む。処理名４０１は、各作業グループに含まれる処理の名称であり、処理モジュール情報１６２の処理名４２３と共通の名称が使用される。作業グループ４０２は、処理の纏まりであるグループの名称であり、処理モジュール情報１６２の作業グループ４２２と共通の名称が使用される。
図６Ａ及び図６Ｂは、第１の実施形態におけるセッション情報１５０の構成の一例を示す図であり、図６Ａは実行バージョン情報１５１を、図６Ｂは実行履歴１５２を示す。
図６Ａに示すように、実行バージョン情報１５１は、現在実行中の各処理の処理モジュールのバージョンを表す実行バージョン５０１を含む。この実行バージョン５０１は、ユーザセッションの開始時に、最新バージョン情報１６１の最新バージョン４１１の値を取得し、取得したバージョンの値が格納される。
図６Ｂに示すように、実行履歴１５２は、処理名５１１、作業グループ５１２及び実行状態５１３を含む。処理名５１１は、各作業グループに含まれる処理の名称であり、処理モジュール情報１６２の処理名４２３と共通の名称が使用される。作業グループ５１２は、処理の纏まりであるグループの名称であり、処理モジュール情報１６２の作業グループ４２２と共通の名称が使用される。実行状態５１３は、各処理が実行されたかを表し、「実行済み」、「未実行」のいずれかが格納される。
なお、第１の実施形態において、実行履歴１５２は、ログイン処理１１２においてクライアント端末２００とのセッションが確立した際に初期化される。なお、セッションの終了時に実行履歴１５２を初期化してもよい。
次に、アプリケーション実行装置１００によって実行される処理について説明する。
アプリケーション実行処理部１２０を構成する実行処理割込部１２１、ＡＰ更新判断部１２２及び処理モジュール呼出部１２３は、クライアント端末２００のブラウザ２１０からの要求をアプリケーション１１０で処理する際に、実行される。アプリケーション実行処理部１２０を構成する各処理部は、アプリケーションの各処理毎に、実行処理割込部１２１、ＡＰ更新判断部１２２、処理モジュール呼出部１２３の順に実行される。
アプリケーション運用部１３０の処理モジュール情報更新部１３２は、新しく処理モジュールが処理モジュール格納部１４０に格納された際に、処理モジュール情報１６２を更新する。
図７は、第１の実施形態における処理モジュール情報更新部１３２によって実行される処理を示すフローチャートである。
まず、運用者が処理モジュール配備ツール１３３を使用して、新しい処理モジュールを処理モジュール格納部１４０に格納する。その後、処理モジュール配備ツール１３３は、処理モジュール情報更新部１３２を呼び出し、処理モジュール情報更新処理６００が実行される。
処理モジュール情報更新部１３２は、最新バージョン情報１６１の最新バージョン４１１に格納されている値を１だけインクリメントした値に更新し、変数Ｖに設定する（ステップ６０１）。
ここで、新たに配備された処理モジュールに含まれる全ての処理（Ｓ）について、ステップ６０３から６０４の手順を繰り返す（ステップ６０２）。
処理名４１０の値が処理Ｓと同じデータを作業グループ定義１６３から検索し、検索されたデータの作業グループ４０２を取得し、変数Ｇに設定する（ステップ６０３）。
そして、処理モジュール情報１６２に以下の項目を含むデータを追加する（ステップ６０４）。
処理モジュールバージョン４２１＝Ｖ
作業グループ４２２            ＝Ｇ
処理名４２３                  ＝Ｓ
処理モジュール名４２４        ＝Ｓ＋「モジュール」＋Ｖ
その後、全ての処理Ｓについて、ステップ６０３から６０４の手順が終了したら、ループを終了する（ステップ６０５）。
図８は、第１の実施形態における実行処理割込部１２１によって実行される処理の手順を示すフローチャートである。
まず、実行処理割込部１２１は、現在実行中のアプリケーションの処理に割り込み、実行中の処理の名称を取得し、変数ｅｘｅに設定する（ステップ７０１）。例えば、Ｊａｖａ（Ｊａｖａは登録商標、以下同じ）では、実行処理の割り込みは、クラスファイルの変換（バイトコードの操作）や、Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ上での処理のトラップなどによって実現することができる。
その後、取得した実行中の処理の名称（ｅｘｅ）をＡＰ更新判断部１２２のパラメータに設定し（ステップ７０２）、ＡＰ更新判断部１２２を呼び出す。これによって、ＡＰ更新判断処理８００（図９）が開始する。
図９は、第１の実施形態におけるＡＰ更新判断部１２２によって実行される処理の手順を示すフローチャートである。
ＡＰ更新判断処理８００には、引数として実行中処理名ｅｘｅが入力される。
まず、ＡＰ更新判断部１２２は、最新バージョン情報１６１の最新バージョン４１１と、実行バージョン情報１５１の実行バージョン５０１とが一致するか否かを判定する（ステップ８０１）。その結果、両者が一致した場合、実行中処理名ｅｘｅを引数として、処理モジュール呼出処理９００を呼び出す。
一方、両者が一致しない場合、処理名４０１の値が実行中処理名ｅｘｅと同じデータを作業グループ定義１６３から検索し、検索されたデータの作業グループ４０２の値を取得し、取得した作業グループ４０２の値をＧに設定する（ステップ８０２）。
その後、作業グループ５１２の値が作業グループＧと同じで、かつ、実行状態５１３が「実行済み」である処理名５１１を実行履歴１５２から抽出し、リストＬ１を取得する（ステップ８０３）。
そして、処理モジュール情報１６２の処理モジュールバージョン４２１と比較されるバージョンＶの初期値として、最新バージョン情報１６１の最新バージョン４１１を設定する（ステップ８０４）。
作業グループ４２２の値が作業グループＧと同じで、かつ、処理モジュールバージョン４２１の値がバージョンＶと同じである処理名４２３を処理モジュール情報１６２から抽出し、リストＬ２を取得する（ステップ８０５）。
その後、バージョンＶが実行バージョン情報１５１の実行バージョン５０１より大きく、バージョンＶが最新バージョン情報１６１の最新バージョン４１１以下であり、かつ、リストＬ１とリストＬ２との中に同じ処理名が存在するか否かを判定する（ステップ８０６）。リストＬ１に含まれる実行済の処理と、リストＬ２に含まれるバージョンＶの処理と同じ処理があるか、すなわち、変更されるべき処理が実行済であるかを判定する。
この条件が成立しない場合、Ｖを１だけデクリメントして（ステップ８０７）、ステップ８０５へ戻る。
一方、ステップ８０６の条件が成立する場合、実行バージョン情報１５１の実行バージョン５０１の値をＶに更新し（ステップ８０８）、処理モジュール呼出部１２３を呼び出す。これによって、処理モジュール呼出処理９００（図１０）が開始する。
図１０は、第１の実施形態における処理モジュール呼出部１２３によって実行される処理の手順を示すフローチャートである。
処理モジュール呼出処理９００には、引数として実行中処理名ｅｘｅが入力される。
まず、実行バージョン情報１５１の実行バージョン５０１の値を取得し、変数Ｖに設定する（ステップ９０１）。
次に、処理モジュールバージョン４２１の値がバージョンＶと同じで、かつ、処理名４２３の値が実行中処理名ｅｘｅと同じデータ（行Ｌ）を処理モジュール情報１６２から検索し（ステップ９０２）、行Ｌが存在するか否かを判定する（ステップ９０３）。
行Ｌが存在しない場合、バージョンＶを１だけデクリメントし（ステップ９０４）、ステップ９０２へ戻る。一方、行Ｌが存在する場合、行Ｌの処理モジュール名４２４のモジュールを呼び出す（ステップ９０５）。
図１１Ａから図１１Ｃは、第１の実施形態におけるアプリケーション変更のタイミングの例を説明する図ある。
図１１Ａ及び図１１Ｃは、ＡＰ変更指示１００１及び１００２のタイミングが異なることによって、アプリケーション変更のタイミングが異なる例を示し、図１１Ｂは図１１Ａに示す場合における、実行履歴１５２を示す。
ＡＰ変更指示１００１及び１００２は、新たなモジュールが処理モジュール格納部１４０に配備され、処理モジュール更新部１３２が最新バージョン情報１６１及び処理モジュール情報１６２を更新したタイミングである。また、図１１Ａ及び図１１Ｃにおいて、時間軸１００４、１００５に従って、実行バージョン５０１に規定されるバージョンの処理が実行される。
図１１Ａに示すように、申込内容確認画面表示処理１７４とチェックボックス入力確認処理１７５との間で、ＡＰ変更指示１００１がされた場合、実行履歴１５２は、図１１Ｂに示すように、選択内容確認画面表示処理１７１から申込内容確認画面表示処理１７４までの実行状態５１３が「実行済み」となっている。このため、ＡＰ更新判断部１２２は、実行履歴１５２中で実行状態５１３が「実行済み」である処理名５１１と、処理モジュール情報１６２の処理名４２３とを比較し（図９のステップ８０３〜８０６）、リストＬ１及びＬ２に「申込内容確認画面表示」処理が存在するので、チェックボックス入力確認処理１７５以後の実行バージョン１００６は１のまま変更されない。
すなわち、図１１Ａに示す場合は、実行バージョン５０１の値より大きい予約処理モジュールバージョン２（１８０）での変更箇所である申込内容確認画面表示１８４が実行済みなので、処理の整合性を保つために、変更した処理モジュールが実行されない。
一方、図１１Ｃに示すように、料金計算処理１７３と申込内容確認画面表示処理１７４との間で、ＡＰ変更指示１００２がされた場合、実行履歴１５２は、図６Ｂに示すように、選択内容確認画面表示処理１７１から料金計算処理１７３までの実行状態５１３が「実行済み」となっており、申込内容確認画面表示処理１７４以後の実行状態５１３が「未実行」となっている。このため、ＡＰ更新判断部１２２は、実行履歴１５３中で実行状態５１３が「実行済み」である処理名５１１と、処理モジュール情報１６２の処理名４２３とを比較し（図９のステップ８０３〜８０６）、リストＬ２には「申込内容確認画面表示」処理が存在するが、リストＬ１には「申込内容確認画面表示」処理が存在しないので、申込内容確認画面表示処理１７４以後の実行バージョン１００６は２に変更される。
すなわち、図１１Ｃに示す場合は、実行バージョン５０１の値より大きい予約処理モジュールバージョン２（１８０）での変更箇所である申込内容確認画面表示１８４が実行済みではないので、このタイミングで処理モジュールのバージョンを上げても処理の整合性を保つことができるので、すぐに変更した処理モジュールが実行される。
以上説明したように、第１の実施形態によれば、クライアント端末２００のブラウザ２１０からの要求をアプリケーション１１０で処理する際に、実行処理割込部１２１、ＡＰ更新判断部１２２及び処理モジュール呼出部１２３によって、ユーザのセッション毎に処理モジュールを、そのバージョンを区別して呼び出すことができる。
また、最新バージョン情報１６１及び処理モジュール情報１６２の更新のタイミングに応じて、アプリケーションを変更することができる。すなわち、実行履歴１５２と処理モジュール情報１６２とを比較した結果によって、現在実行中の処理で実行バージョン５０１の値を最新バージョン４１１の値へ上げてよいかを判定し、アプリケーションの変更可否を判断することができる。
そのため、予め決められたタイミングによらず、アプリケーションの処理が実行中であっても処理の不整合なく、かつ迅速にアプリケーションを変更することができる。
＜実施形態２＞
次に、第２の実施形態について説明する。
本発明の第２の実施形態では、アプリケーションのソースコードを解析することによって、作業グループ中の処理が開始処理か又は終了処理かを判定し、いずれか又は両方の処理のタイミングで、実行履歴を初期化する。これによって、アプリケーションの処理が実行中であっても処理間で不整合なくアプリケーションを変更することができ、さらに、アプリケーションが一度変更箇所の処理を実行した後でも、アプリケーションを変更することができる。
図１２は、第２の実施形態における計算機システムの全体の構成図である。
第２の実施形態の計算機システムは、アプリケーション実行装置１００及びクライアント端末２００を備え、アプリケーション実行装置１００とクライアント端末２００とは、ネットワーク３５０によって接続される。なお、前述した第１の実施の形態と同じ構成には同じ符号を付し、その説明は省略する。
第２の実施形態のアプリケーション実行装置１００は、前述した第１の実施の形態と同じ構成の他、アプリケーション解析部１１００を備える。アプリケーション解析部１１００は、インストールされたプログラムをプロセッサが実行することによって機能する。
アプリケーション解析部１１００は、アプリケーション１１０のソースコードを解析し、作業グループの中で、どの処理が開始処理か又は終了処理かを判定するためのアプリケーション解析を行う。この解析の結果は、作業グループ定義２６３（図１３）の処理順番１２０１に記録される。
このため、作業グループ定義２６３の構成、及び、ＡＰ更新判断部２２２による処理が、前述した第１の実施の形態と異なる。
図１３は、第２の実施形態における作業グループ定義２６３の構成の一例を示す図である。
作業グループ定義２６３は、処理名４０１、作業グループ４０２及び処理順番１２０１を含む。処理名４０１及び作業グループ４０２は、前述した第１の実施形態の作業グループ定義１６３（図５Ｃ）と同じである。処理順番１２０１は、各処理が開始処理であるか、終了処理であるかを示す情報である。
図１４は、第２の実施形態におけるＡＰ更新判断部２２２によって実行される処理の手順を示すフローチャートである。
第２の実施形態のＡＰ更新判断処理１４００は、第１の実施形態のＡＰ更新判断処理８００（図９）に、ステップ１４１１及び１４１２が新たに追加されている。第２の実施形態のＡＰ更新判断処理１４００のステップ８０１から８０８は、第１の実施形態のＡＰ更新判断処理８００のステップ８０１から８０８と同じであるため、それらの説明は省略する。
ステップ１４１１及び１４１２では、実行履歴の初期化処理１４０１を実行する。このとき、文字列（「開始」又は「終了」）、及び、実行中処理名ｅｘｅが引数として指定される。この引数となる文字列は、ステップ１４１１では「開始」が、ステップ１４１２では「終了」が入力される。実行履歴の初期化処理１４０１の詳細については、図１５を用いて後述する。
なお、図１４に示すＡＰ更新判断処理１４００では、処理の開始時（ステップ１４１１）及び処理の終了時（ステップ１４１２）に実行履歴を初期化したが、開始時又は終了時のいずれか一方で実行履歴を初期化すればよい。
図１５は、第２の実施形態における実行履歴の初期化処理１４０１の手順を示すフローチャートである。
実行履歴の初期化処理１４０１には、引数として文字列Ｓｔｒ及び実行中処理名ｅｘｅが入力される。
まず、処理名４０１の値が実行中処理名ｅｘｅと同じデータを作業グループ定義２６３から検索し、検索されたデータの処理順番１２０１及び作業グループ４０２の値を取得し、取得した作業グループ４０２の値をＧに設定する（ステップ１４０２）。
次に、ステップ１４０２で取得した処理順番１２０１と文字列Ｓｔｒとが一致するか否かを判定する（ステップ１４０３）。その結果、両者が一致しない場合、実行履歴を初期化するタイミングではないので、この処理１４０１を終了する。
一方、両者が一致した場合、作業グループの開始又は終了のタイミングであり、当該作業グループの実行履歴を初期化するタイミングである。このため、作業グループ５１２の値が作業グループＧと同じであるデータについて、ステップ１４０５の手順を繰り返す（ステップ１４０４）。
ステップ１４０５では、実行履歴１５２の実行状態５１３の値を「未実行」に設定する（ステップ１４０５）。
その後、全ての処理について、ステップ１４０５の手順が終了したら、ループを終了する（ステップ１４０６）。
以上説明したように、第２の実施形態によれば、アプリケーション解析部１１００が、作業グループ定義１６３に処理順番１２０１を追加する。ＡＰ更新判断部２２２は、この処理順番１２０１を用いて、実行履歴の初期化処理を実行する。実行履歴を初期化することによって、アプリケーション変更後の処理をユーザが一度実行した後に、再度ログインすることなく、その作業グループの処理を再び実行する場合、再度アプリケーションを変更することができる。
また、本発明の第１の実施形態と同様に、予め決められたタイミングによらず、アプリケーションの処理が実行中であっても処理の不整合なく、かつ迅速にアプリケーションを変更することができる。
＜実施形態３＞
次に、第３の実施形態について説明する。
本発明の第３の実施形態では、アプリケーション実行装置１００にアクセスしたユーザの組織を識別することによって、組織毎にアプリケーションの変更可否を判定し、処理モジュールを呼び出す。これによって、アプリケーションの処理が実行中であっても処理の不整合なくアプリケーションを変更でき、さらに、組織毎にアプリケーションを変更できる。
なお、ユーザの組織の他、任意の属性情報（例えば、役職）について、第３の実施形態を適用することができる。
図１６は、第３の実施形態における計算機システムの全体の構成図である。
第３の実施形態の計算機システムは、アプリケーション実行装置１００及びクライアント端末２００を備え、アプリケーション実行装置１００とクライアント端末２００とは、ネットワーク３５０によって接続される。なお、前述した第１の実施の形態と同じ構成には同じ符号を付し、その説明は省略する。
第３の実施形態のアプリケーション実行装置１００は、前述した第１の実施の形態と同じ構成の他、組織識別処理部１５００を備える。組織識別処理部１５００は、インストールされたプログラムをプロセッサが実行することによって機能する。
組織識別処理部１５００は、クライアント端末２００のブラウザ２１０からアクセスしてきたユーザの組織情報を識別する。なお、アプリケーション実行装置１００は、ユーザの識別子と組織情報とを対応付けるデータを管理している。そして、識別された組織情報毎に実行バージョン情報３５１が記録される（図１９参照）。
また、最新バージョン情報３６１には、組織名１７０１毎に最新バージョン４１１が格納され（図１８Ａ参照）、処理モジュール情報３６２には、組織名１７１１毎に処理の情報４２１〜４２４が格納される（図１８Ｂ参照）。
このため、ＡＰ更新判断部３２２による処理が、前述した第１の実施の形態と異なる。
図１７は、第３の実施形態における処理モジュール格納部１４０に格納される各処理モジュールの構成図である。
各処理モジュールは組織毎、及び作業グループ毎に区分され、さらに処理モジュールのバージョン毎に設けられる。また、ある組織の、ある作業グループに対応する処理モジュールのバージョンが上がった場合、その作業グループ中で変更（バージョンアップ）された処理だけが、次のバージョンの処理モジュールに含まれる。
例えば、図１７に示す組織Ａ用予約処理モジュールバージョン１（１６００）は、作業グループに含まれる処理に対応して、選択内容確認画面表示処理１６０１、顧客情報入力画面表示処理１６０２、料金計算処理１６０３、申込内容確認画面表示処理１６０４、チェックボックス入力確認処理１６０５及び予約完了画面表示処理１６０６を含む。バージョンが上がった組織Ａ用予約処理モジュールバージョン２（１６１０）は、処理内容に変更があった申込内容確認画面表示処理１６１４及びチェックボックス入力確認処理１６１２を含む。また、組織Ｂ用予約処理モジュールバージョン１（１６２０）は、作業グループに含まれる処理に対応して、選択内容確認画面表示処理１６２１、顧客情報入力画面表示処理１６２２、料金計算処理１６２３、申込内容確認画面表示処理１６２４、チェックボックス入力確認処理１６２５及び予約完了画面表示処理１６２６を含む。組織Ｂ用予約処理モジュールバージョン１（１６２０）は、組織Ａ用予約処理モジュールバージョン１（１６００）と同じ構成になっているが、各処理の内容は同じでも、異なってもよい。
なお、組織Ａ用予約処理モジュールバージョン１（１６００）及び組織Ｂ用予約処理モジュールバージョン１（１６２０）は、処理モジュールバージョン１（１４１）に含まれ、組織Ａ用予約処理モジュールバージョン２（１６１０）は、処理モジュールバージョン２（１４２）に含まれる。
図１８Ａは、第３の実施形態における最新バージョン情報３６１の構成の一例を示す図である。
最新バージョン情報３６１は、組織名１７０１及び最新バージョン４１１を含む。組織名１７０１は、ユーザが属する組織を表す。最新バージョン４１１は、処理モジュール格納部１４０に格納されている処理モジュールの中で、組織毎の最新のバージョンを表す。
図１８Ｂは、第３の実施形態における処理モジュール情報３６２の構成の一例を示す図である。
処理モジュール情報３６２は、組織名１７１１、処理モジュールバージョン４２１、作業グループ４２２、処理名４２３及び処理モジュール名４２４を含む。組織名１７０１は、ユーザが属する組織を表す。処理モジュールバージョン４２１、作業グループ４２２、処理名４２３及び処理モジュール名４２４は、各々、組織毎の情報を表す。すなわち、第３の実施形態の処理モジュール情報３６２は、組織、作業グループ及び処理モジュールバージョン毎に呼び出される処理モジュールを表す。
図１９は、第３の実施形態における実行バージョン情報３５１の一例を示す図である。
実行バージョン情報３５１は、組織名１８０１及び実行バージョン５０１を含む。組織名１８０１は、アクセスしているユーザが属する組織を表す。実行バージョン５０１は、現在実行中の各処理の処理モジュールの組織毎のバージョンを表す。
図２０は、第３の実施形態における処理モジュール情報更新部１３２によって実行される処理の手順を示すフローチャートである。
第３の実施形態の処理モジュール情報更新処理１９００は、第１の実施形態の処理モジュール情報更新処理６００（図７）に、ステップ１９０１が追加され、ステップ６０１の代わりにステップ１９０２が、ステップ６０４の代わりにステップ１９０３が実行される。第３の実施形態の処理モジュール情報更新処理１９００のステップ６０２、６０３、６０５は、第１の実施形態の処理モジュール情報更新処理６００のステップ６０２、６０３、６０５と同様であるため、それらの説明は省略する。
まず、運用者が処理モジュール配備ツール１３３を使用して、新しい処理モジュールを処理モジュール格納部１４０に格納する。このとき、処理モジュール配備ツール１３３には、新たに配備された処理モジュールが対応する組織の情報Ｏｒｇが入力される。その後、処理モジュール配備ツール１３３は、処理モジュール情報更新部１３２を呼び出し、処理モジュール情報更新処理１９００が実行される。
まず、入力された組織情報Ｏｒｇを処理モジュール配備ツール１３３から取得する（ステップ１９０１）。
組織名１７０１の値が組織情報Ｏｒｇと同じデータを最新バージョン情報３６１から検索し、検索されたデータの最新バージョン４１１の値を１だけインクリメントした値に更新し、変数Ｖに設定する（ステップ１９０２）。
その後、ステップ６０２によって、新たに配備された処理モジュールに含まれる全ての処理（Ｓ）についてループが開始し（ステップ６０２）。ステップ６０３の手順が実行される。
そして、処理モジュール情報３６２に以下の項目を含むデータを追加する（ステップ１９０３）。
組織名１７１１                ＝Ｏｒｇ
処理モジュールバージョン４２１＝Ｖ
作業グループ４２２            ＝Ｇ
処理名４２３                  ＝Ｓ
処理モジュール名４２４        ＝「組織」＋Ｏｒｇ＋「用」＋Ｓ＋「モジュール」＋Ｖ
その後、全ての処理Ｓについて、ステップ６０３及び１９０３の手順が終了したら、ループを終了する（ステップ６０５）。
図２１は、第３の実施形態におけるＡＰ更新判断部３２２によって実行される処理の手順を示すフローチャートである。
第３の実施形態のＡＰ更新判断処理２０００は、第１の実施形態のＡＰ更新判断処理８００（図９）に、ステップ２００１が追加され、ステップ８０５の代わりにステップ２００２が実行される。第３の実施形態のＡＰ更新判断処理２０００のステップ８０１〜８０４及び８０６〜８０８は、第１の実施形態のＡＰ更新判断処理８００のステップ８０１〜８０４及び８０６〜８０８と同様であるため、それらの説明は省略する。
ＡＰ更新判断処理２０００には、引数として実行中処理名ｅｘｅが入力される。
まず、実行バージョン情報３５１から、組織名１８０１の値及び実行バージョン５０１の値を取得し、取得した組織名１８０１の値をＯｒｇに設定する。また、組織名１７０１の値が組織名Ｏｒｇと同じデータの最新バージョン４１１の値を取得する（ステップ２００１）。
その後、ステップ８０１から８０４の手順が実行される。
その後、組織名１７１１の値が組織名Ｏｒｇと同じで、作業グループ４２２の値が作業グループＧと同じで、かつ、処理モジュールバージョン４２１の値がバージョンＶと同じである処理名４２３を処理モジュール情報１６２から抽出し、リストＬ２を取得する（ステップ２００２）。
その後、ステップ８０６から８０７の手順が実行され、ステップ８０６の条件が成立する場合、実行バージョン情報３５１の実行バージョン５０１の値をＶに更新し（ステップ８０８）、処理モジュール呼出部１２３を呼び出す。
図２２は、第３の実施形態における処理モジュール呼出部１２３によって実行される処理の手順を示すフローチャートである。
第３の実施形態の処理モジュール呼出処理２１００は、第１の実施形態の処理モジュール呼出処理９００（図１０）において、ステップ９０１、９０２の代わりにステップ２１０１、２１０２が実行される。第３の実施形態の処理モジュール呼出処理２１００のステップ９０３〜９０５は、第１の実施形態の処理モジュール呼出処理９００のステップ９０３〜９０５と同様であるため、それらの説明は省略する。
まず、実行バージョン情報３５１の組織名１８０１の値及び実行バージョン５０１の値を取得し、取得した組織名の値を変数Ｏｒｇに設定し、取得した実行バージョンの値を変数Ｖに設定する（ステップ２１０１）。
次に、組織名１７１１が組織名Ｏｒｇと同じで、処理モジュールバージョン４２１の値がバージョンＶと同じで、かつ、処理名４２３の値が実行中処理名ｅｘｅと同じデータ（行Ｌ）を処理モジュール情報３６２から検索する（ステップ２１０２）。
その後、行Ｌが存在するか否かを判定する（ステップ９０３）。行Ｌが存在しない場合、バージョンＶを１だけデクリメントし（ステップ９０４）、ステップ２１０２へ戻る。一方、行Ｌが存在する場合、行Ｌの処理モジュール名４２４のモジュールを呼び出す（ステップ９０５）。
以上説明したように、第３の実施形態によれば、組織識別処理部１５００が実行バージョン情報１５１に組織名を追加する。処理モジュール呼出部１２３がアプリケーションの処理を実行する。組織情報を識別することによって、一つのアプリケーション実行装置を複数の組織のユーザで共用することができ、組織毎にアプリケーションの変更のタイミングを変えたり、アプリケーションによる処理の内容を変えたりすることができる。
また、本発明の第１の実施形態と同様に、予め決められたタイミングによらず、アプリケーションの処理が実行中であっても処理の不整合なく、かつ迅速にアプリケーションを変更することができる。
【産業上の利用可能性】
【０００７】
本発明は、アプリケーションプログラムを実行する計算機システムに適用され、アプリケーションの変更のタイミングの制約を緩和し、迅速にアプリケーションを変更する。
【図１】
2011118048.tif 000003
【図２】
2011118048.tif 000004
【図３】
2011118048.tif 000005
【図４Ａ】
2011118048.tif 000006
【図４Ｂ】
2011118048.tif 000007
【図５Ａ】
2011118048.tif 000008
【図５Ｂ】
2011118048.tif 000009
【図５Ｃ】
2011118048.tif 000010
【図６Ａ】
2011118048.tif 000011
【図６Ｂ】
2011118048.tif 000012
【図７】
2011118048.tif 000013
【図８】
2011118048.tif 000014
【図９】
2011118048.tif 000015
【図１０】
2011118048.tif 000016
【図１１Ａ】
2011118048.tif 000017
【図１１Ｂ】
2011118048.tif 000018
【図１１Ｃ】
2011118048.tif 000019
【図１２】
2011118048.tif 000020
【図１３】
2011118048.tif 000021
【図１４】
2011118048.tif 000022
【図１５】
2011118048.tif 000023
【図１６】
2011118048.tif 000024
【図１７】
2011118048.tif 000025
【図１８Ａ】
2011118048.tif 000026
【図１８Ｂ】
2011118048.tif 000027
【図１９】
2011118048.tif 000028
【図２０】
2011118048.tif 000029
【図２１】
2011118048.tif 000030
【図２２】
2011118048.tif 000031
【国際調査報告】
2011118048.tif 000032
2011118048.tif 000033