JP2017016517A - Information processing system, information processing method, and program - Google Patents

Information processing system, information processing method, and program Download PDF

Info

Publication number
JP2017016517A
JP2017016517A JP2015134494A JP2015134494A JP2017016517A JP 2017016517 A JP2017016517 A JP 2017016517A JP 2015134494 A JP2015134494 A JP 2015134494A JP 2015134494 A JP2015134494 A JP 2015134494A JP 2017016517 A JP2017016517 A JP 2017016517A
Authority
JP
Japan
Prior art keywords
module
modules
load
session
version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015134494A
Other languages
Japanese (ja)
Other versions
JP6540287B2 (en
Inventor
真弘 山口
Shinko Yamaguchi
真弘 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2015134494A priority Critical patent/JP6540287B2/en
Publication of JP2017016517A publication Critical patent/JP2017016517A/en
Application granted granted Critical
Publication of JP6540287B2 publication Critical patent/JP6540287B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To update some modules of an application which includes a plurality of modules, without suspending the application, while maintaining processing consistency, with a low load.SOLUTION: An application server 100 includes a module receiving unit 110 and a module generation unit 120. The module receiving unit 110 receives an update of an execution file of each of modules constituting an application. When an execution file of a first module of the modules is updated, the module generation unit 120 generates a new load module using the updated execution file, for the first module. The module generation unit 120 generates a new load module for calling the new load module of the first module, for a second module calling the first module.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理システム、情報処理方法、及び、プログラムに関し、特に、アプリケーションの更新を行う情報処理システム、情報処理方法、及び、プログラムに関する。   The present invention relates to an information processing system, an information processing method, and a program, and more particularly, to an information processing system, an information processing method, and a program for updating an application.

アプリケーションサーバで動作するアプリケーションは、24時間365日の連続稼働が求められることがある。一方で、不具合の修正や機能拡張のためのアプリケーションの更新では、一般に、アプリケーションを停止する必要がある。   An application running on an application server may be required to operate continuously for 24 hours 365 days. On the other hand, when updating an application for correcting a defect or expanding a function, it is generally necessary to stop the application.

更新時にアプリケーションの動作を継続させる方法の一例として、変更前のアプリケーションと変更後のアプリケーションを同時に稼働させ、リクエストの振り分け先を変更前から変更後のアプリケーションに切り替える方法がある。ここで、複数のリクエストにより構成されるセッションに対して処理が行われる場合は、セッション内での処理の一貫性を保つため、セッション毎にアプリケーションを切り替える必要がある。すなわち、変更前から処理していたセッションのリクエストは、変更前のアプリケーションに振り分けられ、変更後の新規のセッションのリクエストは、変更後のアプリケーションに振り分けられる。   As an example of a method of continuing the operation of the application at the time of update, there is a method of operating the application before the change and the application after the change at the same time and switching the request distribution destination from the pre-change to the application after the change. Here, when processing is performed on a session configured by a plurality of requests, it is necessary to switch applications for each session in order to maintain consistency of processing within the session. That is, a request for a session that has been processed before the change is distributed to the application before the change, and a request for a new session after the change is distributed to the application after the change.

図29は、一般的な、アプリケーションの動作継続方法の例を示す図である。図29の例では、セッションのID(Identifier)とセッションを処理するアプリケーションのバージョンとの対応表(セッションテーブル)をもとに、リクエストが振り分けられる。   FIG. 29 is a diagram illustrating an example of a general application operation continuation method. In the example of FIG. 29, requests are distributed based on a correspondence table (session table) between the session ID (Identifier) and the version of the application that processes the session.

さらに、アプリケーションは、複数のモジュールにより構成される場合がある。例えば、Java(登録商標)EE(Enterprise Edition)アプリケーションサーバに配備されるアプリケーションは、Webモジュール、EJB(Enterprise JavaBeans)モジュール等により構成される。この場合、Webモジュールが、クライアント端末のWebブラウザからのリクエストを受け付け、EJBジュールが、バックエンドの処理を実行する。EJBモジュールは、さらに、他のEJBモジュールを呼び出すこともある。このように複数のモジュールにより構成されるアプリケーションでは、モジュール呼び出し用のインタフェースに変更がなければ、変更されたモジュールを呼び出すモジュールを更新することなく、変更されたモジュールを更新できる。   Furthermore, the application may be configured by a plurality of modules. For example, an application deployed in a Java (registered trademark) EE (Enterprise Edition) application server includes a Web module, an EJB (Enterprise JavaBeans) module, and the like. In this case, the Web module accepts a request from the Web browser of the client terminal, and the EJB module executes back-end processing. An EJB module may also call other EJB modules. In this way, in an application composed of a plurality of modules, if there is no change in the module call interface, the changed module can be updated without updating the module that calls the changed module.

図30〜図33は、一般的な、複数のモジュールにより構成されるアプリケーションの動作継続方法の例を示す図である。   30 to 33 are diagrams illustrating an example of a general operation continuation method of an application configured by a plurality of modules.

ここで、リクエストを直接受け付けるモジュールを更新する場合、図30に示すように、上述の図29の方法と同様の方法で、アプリケーションを停止せず、処理の一貫性を保ったまま更新を行うことができる。しかしながら、他のモジュールから呼び出されるモジュールを更新する場合、図31に示すように、リクエストを直接受け付けるモジュールは更新されないため、更新されたモジュールの変更前のモジュールが呼び出され、モジュールの更新が反映されない。また、図32のように、モジュールの更新を反映するために常に最新のモジュールを呼び出す場合、モジュール更新前に開始されていたセッションに対しても更新後のモジュールが適用されるため、処理の一貫性は保たれない。   Here, when updating a module that directly accepts a request, as shown in FIG. 30, update is performed while maintaining the consistency of processing without stopping the application in the same manner as the method of FIG. 29 described above. Can do. However, when a module called from another module is updated, as shown in FIG. 31, the module that directly accepts the request is not updated, so the module before the update of the updated module is called and the module update is not reflected. . Also, as shown in FIG. 32, when the latest module is always called to reflect the module update, the updated module is applied to the session that was started before the module update. Sex is not kept.

この問題を解決する方法として、図33のように、セッションIDとモジュールのバージョンとの対応表をモジュール毎に用意し、モジュール間でセッションIDを引き渡しながら、呼び出されるモジュールの適切なバージョンを選択する方法がある。この場合、セッションを使用しないモジュールであっても、バージョン選択のために対応表を持つ必要がある。また、モジュール間の呼び出しで、毎回、モジュールのバージョン選択が行われるため、アプリケーションの処理負荷が大きくなる。   As a method for solving this problem, as shown in FIG. 33, a correspondence table between session IDs and module versions is prepared for each module, and an appropriate version of a called module is selected while passing the session ID between modules. There is a way. In this case, even a module that does not use a session needs to have a correspondence table for version selection. Further, since the module version is selected every time the module is called, the processing load on the application increases.

なお、特許文献1には、上述の図33と同様に、複数のアプリケーションプログラム(上述のモジュールに相当)を含むシステムにおいて、一部のアプリケーションプログラムが更新された場合に、新旧の両方のファイルによる動作を行う技術が開示されている。この技術では、タスクが起動される度に、タスクが保持する情報をもとに、タスクを新ファイル、または、旧ファイルのどちらに従って動作させるかが選択される。   Note that in Patent Document 1, as in FIG. 33 described above, when a part of application programs is updated in a system including a plurality of application programs (corresponding to the modules described above), both new and old files are used. A technique for performing the operation is disclosed. In this technique, each time a task is activated, whether to operate the task according to a new file or an old file is selected based on information held by the task.

特開平7−99674号公報Japanese Unexamined Patent Publication No. 7-99674

上述のように、複数モジュールより構成されるアプリケーションの一部モジュールの更新を、アプリケーションを停止せず、処理の一貫性を保ったまま行うためには、モジュール毎にバージョン選択を行う必要があり、アプリケーションの処理負荷が大きくなる。   As described above, in order to update a part of an application composed of multiple modules without stopping the application and maintaining processing consistency, it is necessary to select a version for each module. Application processing load increases.

本発明の目的は、上述した課題を解決した、情報処理システム、情報処理方法、プログラムを提供することである。すなわち、本発明の目的は、複数モジュールにより構成されるアプリケーションの一部のモジュールの更新を、アプリケーションを停止せず、処理の一貫性を保ったまま、低負荷で実現できる情報処理システム、情報処理方法、プログラムを提供することである。   The objective of this invention is providing the information processing system, the information processing method, and program which solved the subject mentioned above. That is, an object of the present invention is to provide an information processing system and an information processing system that can update a part of an application composed of a plurality of modules at a low load without stopping the application and maintaining processing consistency. It is to provide a method and a program.

本発明の情報処理システムは、アプリケーションを構成する複数のモジュールの各々の実行ファイルの更新を受け付ける、モジュール受付手段と、前記複数のモジュールの内の第1のモジュールの実行ファイルが更新された場合に、当該第1のモジュールについて、当該更新された実行ファイルを用いた新たなロードモジュールを生成し、当該第1のモジュールを呼び出す第2のモジュールについて、当該第1のモジュールの新たなロードモジュールを呼び出す新たなロードモジュールを生成する、モジュール生成手段と、を備える。   The information processing system of the present invention receives a module receiving unit that receives an update of an execution file of each of a plurality of modules constituting an application, and an execution file of a first module among the plurality of modules is updated. A new load module using the updated execution file is generated for the first module, and a new load module of the first module is called for the second module that calls the first module. Module generating means for generating a new load module.

本発明の情報処理方法は、アプリケーションを構成する複数のモジュールの各々の実行ファイルの更新を受け付け、前記複数のモジュールの内の第1のモジュールの実行ファイルが更新された場合に、当該第1のモジュールについて、当該更新された実行ファイルを用いた新たなロードモジュールを生成し、当該第1のモジュールを呼び出す第2のモジュールについて、当該第1のモジュールの新たなロードモジュールを呼び出す新たなロードモジュールを生成する。   The information processing method of the present invention receives an update of each executable file of a plurality of modules constituting an application, and when the executable file of the first module among the plurality of modules is updated, the first information For a module, a new load module that uses the updated execution file is generated, and a new load module that calls a new load module of the first module is created for a second module that calls the first module. Generate.

本発明のプログラムは、コンピュータに、アプリケーションを構成する複数のモジュールの各々の実行ファイルの更新を受け付け、前記複数のモジュールの内の第1のモジュールの実行ファイルが更新された場合に、当該第1のモジュールについて、当該更新された実行ファイルを用いた新たなロードモジュールを生成し、当該第1のモジュールを呼び出す第2のモジュールについて、当該第1のモジュールの新たなロードモジュールを呼び出す新たなロードモジュールを生成する、処理を実行させる。   The program of the present invention receives an update of an execution file of each of a plurality of modules constituting an application in a computer, and when the execution file of the first module among the plurality of modules is updated, the first For the second module, a new load module using the updated execution file is generated, and for the second module that calls the first module, a new load module that calls the new load module of the first module To generate the process.

本発明の効果は、複数モジュールにより構成されるアプリケーションの一部のモジュールの更新を、アプリケーションを停止せず、処理の一貫性を保ったまま、低負荷で実現できることである。   An effect of the present invention is that an update of a part of an application constituted by a plurality of modules can be realized with a low load while maintaining the consistency of processing without stopping the application.

本発明の実施の形態の特徴的な構成を示すブロック図である。It is a block diagram which shows the characteristic structure of embodiment of this invention. 本発明の実施の形態における、アプリケーションの実行環境の構成を示すブロック図である。It is a block diagram which shows the structure of the execution environment of an application in embodiment of this invention. 本発明の実施の形態における、コンピュータにより実現されたアプリケーションサーバ100の構成を示すブロック図である。It is a block diagram which shows the structure of the application server 100 implement | achieved by computer in embodiment of this invention. 本発明の実施の形態における、モジュール配備処理を示すフローチャートである。It is a flowchart which shows the module deployment process in embodiment of this invention. 本発明の実施の形態における、モジュール生成処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of a module production | generation process in embodiment of this invention. 本発明の実施の形態における、モジュール生成処理の詳細(図5の続き)を示すフローチャートである。It is a flowchart which shows the detail (continuation of FIG. 5) of the module production | generation process in embodiment of this invention. 本発明の実施の形態における、リクエスト処理を示すフローチャートである。It is a flowchart which shows a request process in embodiment of this invention. 本発明の実施の形態における、モジュール実行処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the module execution process in embodiment of this invention. 本発明の実施の形態における、モジュール実行部130にロードされるロードモジュール400の構成を示す図である。It is a figure which shows the structure of the load module 400 loaded into the module execution part 130 in embodiment of this invention. 本発明の実施の形態における、モジュール間の呼び出し関係の例を示す図である。It is a figure which shows the example of the calling relationship between modules in embodiment of this invention. 本発明の実施の形態における、実行ファイルテーブル151の例を示す図である。It is a figure which shows the example of the executable file table 151 in embodiment of this invention. 本発明の実施の形態における、バージョンテーブル161の例を示す図である。It is a figure which shows the example of the version table 161 in embodiment of this invention. 本発明の実施の形態における、ロードバージョンテーブル162の例を示す図である。It is a figure which shows the example of the load version table 162 in embodiment of this invention. 本発明の実施の形態における、呼び出し関係テーブル171の例を示す図である。It is a figure which shows the example of the call relationship table 171 in embodiment of this invention. 本発明の実施の形態における、セッションテーブル181の例を示す図である。It is a figure which shows the example of the session table 181 in embodiment of this invention. 本発明の実施の形態における、ロードモジュール400間の呼び出し関係の例を示す図である。It is a figure which shows the example of the calling relationship between the load modules 400 in embodiment of this invention. 本発明の実施の形態における、実行ファイルテーブル151の他の例を示す図である。It is a figure which shows the other example of the executable file table 151 in embodiment of this invention. 本発明の実施の形態における、バージョンテーブル161の他の例を示す図である。It is a figure which shows the other example of the version table 161 in embodiment of this invention. 本発明の実施の形態における、ロードバージョンテーブル162の他の例を示す図である。It is a figure which shows the other example of the load version table 162 in embodiment of this invention. 本発明の実施の形態における、呼び出し関係テーブル171の他の例を示す図である。It is a figure which shows the other example of the call relationship table 171 in embodiment of this invention. 本発明の実施の形態における、セッションテーブル181の他の例を示す図である。It is a figure which shows the other example of the session table 181 in embodiment of this invention. 本発明の実施の形態における、ロードモジュール400間の呼び出し関係の他の例を示す図である。It is a figure which shows the other example of the calling relationship between the load modules 400 in embodiment of this invention. 本発明の実施の形態における、実行ファイルテーブル151のさらに他の例を示す図である。It is a figure which shows the further another example of the executable file table 151 in embodiment of this invention. 本発明の実施の形態における、バージョンテーブル161のさらに他の例を示す図である。It is a figure which shows the further another example of the version table 161 in embodiment of this invention. 本発明の実施の形態における、ロードバージョンテーブル162のさらに他の例を示す図である。It is a figure which shows the further another example of the load version table 162 in embodiment of this invention. 本発明の実施の形態における、呼び出し関係テーブル171のさらに他の例を示す図である。It is a figure which shows the further another example of the call relationship table 171 in embodiment of this invention. 本発明の実施の形態における、セッションテーブル181のさらに他の例を示す図である。It is a figure which shows the further another example of the session table 181 in embodiment of this invention. 本発明の実施の形態における、ロードモジュール400間の呼び出し関係のさらに他の例を示す図である。It is a figure which shows the further another example of the calling relationship between the load modules 400 in embodiment of this invention. 一般的な、アプリケーションの動作継続方法の例を示す図である。It is a figure which shows the example of the general operation | movement continuation method of an application. 一般的な、複数のモジュールにより構成されるアプリケーションの動作継続方法の例を示す図である。It is a figure which shows the example of the operation | movement continuation method of the application comprised with the general several module. 一般的な、複数のモジュールにより構成されるアプリケーションの動作継続方法の他の例を示す図である。It is a figure which shows the other example of the general operation | movement continuation method of the application comprised with the general several module. 一般的な、複数のモジュールにより構成されるアプリケーションの動作継続方法の他の例を示す図である。It is a figure which shows the other example of the general operation | movement continuation method of the application comprised with the general several module. 一般的な、複数のモジュールにより構成されるアプリケーションの動作継続方法の他の例を示す図である。It is a figure which shows the other example of the general operation | movement continuation method of the application comprised with the general several module.

はじめに、本発明の実施の形態の構成を説明する。図2は、本発明の実施の形態における、アプリケーションの実行環境の構成を示すブロック図である。図2を参照すると、実行環境は、アプリケーションサーバ100、管理端末200、及び、クライアント端末300を含む。管理端末200、及び、クライアント端末300は、ネットワーク等により、アプリケーションサーバ100と接続される。   First, the configuration of the embodiment of the present invention will be described. FIG. 2 is a block diagram showing the configuration of the application execution environment in the embodiment of the present invention. Referring to FIG. 2, the execution environment includes an application server 100, a management terminal 200, and a client terminal 300. The management terminal 200 and the client terminal 300 are connected to the application server 100 via a network or the like.

管理端末200は、アプリケーションサーバ100に対して、アプリケーションを構成する複数のプログラムモジュール(以下、単に、モジュールと記載する)の実行ファイルを送信し、アプリケーションの配備を指示する。   The management terminal 200 transmits an execution file of a plurality of program modules (hereinafter simply referred to as modules) constituting the application to the application server 100, and instructs deployment of the application.

クライアント端末300は、アプリケーションサーバ100に、アプリケーションの処理に係るリクエストを送信する。   The client terminal 300 transmits a request relating to application processing to the application server 100.

アプリケーションサーバ100は、クライアント端末300からリクエストを受信し、アプリケーションの処理を実行する。アプリケーションサーバ100は、本発明の情報処理システムの一実施形態である。   The application server 100 receives a request from the client terminal 300 and executes application processing. The application server 100 is an embodiment of the information processing system of the present invention.

アプリケーションサーバ100は、モジュール受付部110、モジュール生成部120、モジュール実行部130、及び、リクエスト振り分け部140を含む。アプリケーションサーバ100は、さらに、モジュール格納部150、バージョン情報格納部160、呼び出し関係格納部170、及び、セッション情報格納部180を含む。   The application server 100 includes a module reception unit 110, a module generation unit 120, a module execution unit 130, and a request distribution unit 140. The application server 100 further includes a module storage unit 150, a version information storage unit 160, a call relationship storage unit 170, and a session information storage unit 180.

モジュール受付部110は、管理端末200から、アプリケーションを構成する複数のモジュールの各々について、更新された実行ファイルを受信する。   The module reception unit 110 receives an updated execution file for each of a plurality of modules constituting the application from the management terminal 200.

モジュール格納部150は、実行ファイルテーブル151、及び、実行ファイルの実体を格納する。実行ファイルテーブル151は、アプリケーションを構成する複数のモジュールの各々の実行ファイルを示す。   The module storage unit 150 stores the execution file table 151 and the substance of the execution file. The execution file table 151 indicates an execution file of each of a plurality of modules constituting the application.

図11、図17、及び、図23は、本発明の実施の形態における、実行ファイルテーブル151の例を示す図である。実行ファイルテーブル151では、複数のモジュールの各々のモジュール名に、当該モジュールの実行ファイルのバージョン(ファイルバージョン)、及び、ファイル名が関連づけられている。   11, FIG. 17, and FIG. 23 are diagrams showing examples of the execution file table 151 in the embodiment of the present invention. In the execution file table 151, each module name of a plurality of modules is associated with a version (file version) of the execution file of the module and a file name.

モジュール生成部120は、複数のモジュールの内の第1のモジュールの実行ファイルが更新された場合に、当該第1のモジュールについて、当該更新された実行ファイルを用いた新たなロードモジュール400を生成し、モジュール実行部130にロードする。さらに、モジュール生成部120は、当該第1のモジュールに依存する第2のモジュールについて、当該第1のモジュールの新たなロードモジュール400を呼び出す新たなロードモジュール400を生成し、モジュール実行部130にロードする。   When the execution file of the first module among a plurality of modules is updated, the module generation unit 120 generates a new load module 400 using the updated execution file for the first module. To the module execution unit 130. Further, the module generation unit 120 generates a new load module 400 that calls the new load module 400 of the first module for the second module that depends on the first module, and loads the new load module 400 to the module execution unit 130. To do.

図9は、本発明の実施の形態における、モジュール実行部130にロードされるロードモジュール400の構成を示す図である。ロードモジュール400は、処理実行部401、及び、呼び出し部402を含む。   FIG. 9 is a diagram showing a configuration of the load module 400 loaded into the module execution unit 130 in the embodiment of the present invention. The load module 400 includes a process execution unit 401 and a calling unit 402.

処理実行部401は、モジュールの実行ファイルに従って、モジュールに係る処理を実行する。呼び出し部402は、モジュールが依存する他のモジュールのロードモジュール400の処理を呼び出す。モジュールが、複数の他のモジュールに依存する場合、それぞれの他のモジュールに対して、呼び出し部402が存在する。   The process execution unit 401 executes a process related to the module according to the module execution file. The calling unit 402 calls the process of the load module 400 of another module on which the module depends. When a module depends on a plurality of other modules, a calling unit 402 exists for each of the other modules.

モジュール実行部130は、モジュール生成部120によりロードされたロードモジュール400を実行する。   The module execution unit 130 executes the load module 400 loaded by the module generation unit 120.

バージョン情報格納部160は、バージョンテーブル161、及び、ロードバージョンテーブル162を格納する。バージョンテーブル161は、各モジュールの最新のロードモジュール400を示す。ロードバージョンテーブル162は、モジュール実行部130にロードされた各ロードモジュール400を示す。   The version information storage unit 160 stores a version table 161 and a load version table 162. The version table 161 shows the latest load module 400 of each module. The load version table 162 shows each load module 400 loaded into the module execution unit 130.

図12、図18、及び、図24は、本発明の実施の形態における、バージョンテーブル161の例を示す図である。バージョンテーブル161では、複数のモジュールの各々のモジュール名に、当該モジュールの最新のロードモジュール400のバージョン(モジュールバージョン)が関連づけられている。   FIGS. 12, 18 and 24 are diagrams showing examples of the version table 161 in the embodiment of the present invention. In the version table 161, the latest version of the load module 400 (module version) of the module is associated with each module name of the plurality of modules.

図13、図19、及び、図25は、本発明の実施の形態における、ロードバージョンテーブル162の例を示す図である。ロードバージョンテーブル162では、複数のモジュールの各々のモジュール名に、当該モジュールのロードモジュール400のモジュールバージョン、及び、実行ファイルのファイルバージョンが関連づけられている。   13, 19, and 25 are diagrams showing examples of the load version table 162 in the embodiment of the present invention. In the load version table 162, each module name of the plurality of modules is associated with the module version of the load module 400 of the module and the file version of the execution file.

呼び出し関係格納部170は、呼び出し関係テーブル171を格納する。呼び出し関係テーブル171は、モジュール間の呼び出し関係を示す。   The call relationship storage unit 170 stores a call relationship table 171. The call relationship table 171 indicates the call relationship between modules.

図14、図20、及び、図26は、本発明の実施の形態における、呼び出し関係テーブル171の例を示す図である。呼び出し関係テーブル171では、呼び出し先モジュールのモジュール名とモジュールバージョンの組に、呼び出し元モジュールのモジュール名とモジュールバージョンの組が関連づけられている。   14, FIG. 20, and FIG. 26 are diagrams showing examples of the call relation table 171 in the embodiment of the present invention. In the call relationship table 171, the module name and module version pair of the call source module is associated with the module name and module version pair of the callee module.

セッション情報格納部180は、セッションテーブル181を格納する。セッションテーブル181は、各セッションの振り分け先のロードモジュール400を示す。   The session information storage unit 180 stores a session table 181. The session table 181 shows the load module 400 to which each session is distributed.

図15、図21、及び、図27は、本発明の実施の形態における、セッションテーブル181の例を示す図である。セッションテーブル181では、モジュールのモジュール名に、当該モジュールに対するセッションのセッションID(Identifier)と振り分け先のロードモジュール400のモジュールバージョンとが関連づけられている。   15, FIG. 21, and FIG. 27 are diagrams showing examples of the session table 181 in the embodiment of the present invention. In the session table 181, the session ID (Identifier) of the session for the module and the module version of the load module 400 that is the distribution destination are associated with the module name of the module.

リクエスト振り分け部140は、セッションテーブル181をもとに、クライアント端末300から受信したリクエストを、適切なロードモジュール400に振り分ける。   The request distribution unit 140 distributes the request received from the client terminal 300 to an appropriate load module 400 based on the session table 181.

なお、アプリケーションサーバ100は、CPU(Central Processing Unit)とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。   Note that the application server 100 may be a computer that includes a CPU (Central Processing Unit) and a storage medium that stores a program, and that operates by control based on the program.

図3は、本発明の実施の形態における、コンピュータにより実現されたアプリケーションサーバ100の構成を示すブロック図である。   FIG. 3 is a block diagram showing a configuration of the application server 100 realized by a computer in the embodiment of the present invention.

この場合、アプリケーションサーバ100は、CPU101、ハードディスクやメモリ等の記憶デバイス102(記憶媒体)、他の装置等と通信を行う通信デバイス103、キーボード、ディスプレイ等の入出力デバイス104を含む。CPU101は、モジュール受付部110、モジュール生成部120、モジュール実行部130、及び、リクエスト振り分け部140を実現するためのコンピュータプログラムを実行する。記憶デバイス102は、モジュール格納部150、バージョン情報格納部160、呼び出し関係格納部170、及び、セッション情報格納部180のデータを記憶する。通信デバイス103は、管理端末200からモジュールを受信する。また、通信デバイス103は、アプリケーションの処理に係るリクエストのクライアント端末300からの受信、レスポンスのクライアント端末300への送信を行う。入出力デバイス104は、アプリケーションサーバ100に係る各種設定等の、ユーザ等からの入力、及び、ユーザ等への出力を行う。   In this case, the application server 100 includes a CPU 101, a storage device 102 (storage medium) such as a hard disk and a memory, a communication device 103 that communicates with other devices, and an input / output device 104 such as a keyboard and a display. The CPU 101 executes a computer program for realizing the module reception unit 110, the module generation unit 120, the module execution unit 130, and the request distribution unit 140. The storage device 102 stores data of the module storage unit 150, the version information storage unit 160, the call relationship storage unit 170, and the session information storage unit 180. The communication device 103 receives a module from the management terminal 200. In addition, the communication device 103 receives a request relating to application processing from the client terminal 300 and transmits a response to the client terminal 300. The input / output device 104 performs input from a user or the like, such as various settings related to the application server 100, and output to the user or the like.

また、アプリケーションサーバ100の各構成要素は、有線、または、無線により接続された、異なるコンピュータに分散して配置されていてもよい。   In addition, each component of the application server 100 may be distributed and arranged in different computers connected by wire or wirelessly.

また、アプリケーションサーバ100の各構成要素は、独立した論理回路でもよい。   Each component of the application server 100 may be an independent logic circuit.

次に、本発明の実施の形態の動作を説明する。   Next, the operation of the embodiment of the present invention will be described.

<モジュール配備処理>
はじめに、モジュール配備処理について説明する。モジュール配備処理は、管理端末200が、アプリケーションサーバ100に対して、アプリケーションを構成するモジュールの実行ファイルを送信したときに実行される。
<Module deployment processing>
First, module deployment processing will be described. The module deployment process is executed when the management terminal 200 transmits an execution file of a module constituting an application to the application server 100.

図4は、本発明の実施の形態における、モジュール配備処理を示すフローチャートである。   FIG. 4 is a flowchart showing module deployment processing in the embodiment of the present invention.

管理端末200は、アプリケーションを構成するモジュールのモジュール名、当該モジュールの新たな実行ファイルのファイル名、及び、当該実行ファイルの実体をアプリケーションサーバ100に送信する(ステップS101)。   The management terminal 200 transmits the module name of the module constituting the application, the file name of the new executable file of the module, and the substance of the executable file to the application server 100 (step S101).

アプリケーションサーバ100のモジュール受付部110は、モジュール名M、ファイル名F、及び、実行ファイルを管理端末200から受信する(ステップS102)。   The module reception unit 110 of the application server 100 receives the module name M, the file name F, and the execution file from the management terminal 200 (step S102).

モジュール受付部110は、モジュールMのロードモジュール400の新たなモジュールバージョンVを採番する(ステップS103)。   The module receiving unit 110 assigns a new module version V of the load module 400 of the module M (Step S103).

ここで、モジュール受付部110は、ロードバージョンテーブル162に存在するモジュールMに対するモジュールバージョンの最大値に1を加算した値を、新たなモジュールバージョンVに設定する。なお、モジュールMが新たなモジュールの場合、モジュールMはロードバージョンテーブル162に存在しないため、モジュール受付部110は、モジュールMに対する新たなモジュールバージョンVに「1」を設定する。   Here, the module reception unit 110 sets a value obtained by adding 1 to the maximum value of the module version for the module M existing in the load version table 162 as a new module version V. Note that if the module M is a new module, the module M does not exist in the load version table 162, so the module reception unit 110 sets “1” for the new module version V for the module M.

採番したモジュールバージョンVは、モジュールMの新たな実行ファイルFのファイルバージョンとしても用いられる。   The numbered module version V is also used as the file version of the new execution file F of the module M.

モジュール受付部110は、実行ファイルテーブル151に、受信したモジュール名M、ファイル名F、ファイルバージョンVを登録する。また、モジュール受付部110は、モジュール格納部150に、受信した実行ファイルFの実体を保存する(ステップS104)。   The module receiving unit 110 registers the received module name M, file name F, and file version V in the execution file table 151. In addition, the module reception unit 110 stores the received executable file F in the module storage unit 150 (step S104).

モジュール受付部110は、モジュール生成部120に、モジュール名M、モジュールバージョンV、ファイルバージョンVを指定して、モジュール生成処理を実行させる(ステップS105)。   The module receiving unit 110 causes the module generation unit 120 to specify the module name M, the module version V, and the file version V, and execute the module generation process (step S105).

これにより、モジュールMについて、更新されたファイルバージョンVの実行ファイルを用いた、新たなロードモジュール400が生成、ロードされる。   As a result, a new load module 400 using the updated execution file of the file version V is generated and loaded for the module M.

図5、図6は、本発明の実施の形態における、モジュール生成処理(ステップS105)の詳細を示すフローチャートである。   5 and 6 are flowcharts showing details of the module generation processing (step S105) in the embodiment of the present invention.

モジュール生成部120は、実行ファイルテーブル151を参照して、モジュール格納部150から、モジュール名M、ファイルバージョンFVに対応する、実行ファイルFの実体を取得する(ステップS201)。   The module generation unit 120 refers to the execution file table 151, and acquires the substance of the execution file F corresponding to the module name M and the file version FV from the module storage unit 150 (step S201).

モジュール生成部120は、実行ファイルFを解析し、実行ファイルFの呼び出し先モジュールSを特定する(ステップS202)。ここで、例えばモジュールMがJava EEのアプリケーションモジュールの場合、当該モジュールに係るXML(Extensible Markup Language)ファイルやアノテーションの定義情報を解析して、呼び出し先モジュールSを特定する。また、モジュール生成部120は、予め、ユーザ等により定義された、モジュール間の呼び出し関係を参照して、呼び出し先モジュールSを特定してもよい。   The module generation unit 120 analyzes the execution file F and specifies a call destination module S of the execution file F (step S202). Here, for example, when the module M is a Java EE application module, an XML (Extensible Markup Language) file and annotation definition information related to the module are analyzed to identify the callee module S. Further, the module generation unit 120 may identify the callee module S with reference to the call relationship between modules defined in advance by a user or the like.

ステップS202で、呼び出し先モジュールSが無い場合(ステップS203/N)、モジュール生成部120は、実行ファイルFを用いて処理実行部401を生成し、ロードモジュール400に設定する。モジュール生成部120は、生成したロードモジュール400を、モジュールバージョンVのロードモジュール400として、モジュール実行部130にロードする(ステップS210)。   If the callee module S does not exist in step S202 (step S203 / N), the module generation unit 120 generates the process execution unit 401 using the execution file F and sets it in the load module 400. The module generation unit 120 loads the generated load module 400 into the module execution unit 130 as the load module 400 of the module version V (Step S210).

一方、ステップS202で、呼び出し先モジュールSがある場合(ステップS203/Y)、モジュール生成部120は、特定した呼び出し先モジュールSの1つを選択する(ステップS204)。   On the other hand, when there is a call destination module S in step S202 (step S203 / Y), the module generation unit 120 selects one of the specified call destination modules S (step S204).

モジュール生成部120は、バージョンテーブル161から、選択した呼び出し先モジュールSに対する最新モジュールバージョンSVを取得する(ステップS205)。   The module generation unit 120 acquires the latest module version SV for the selected call destination module S from the version table 161 (step S205).

モジュール生成部120は、モジュールSのバージョンSVのロードモジュール400を呼び出すように、呼び出し部402を生成する(ステップS206)。モジュール生成部120は、呼び出し関係テーブル171に、呼び出し先モジュールSとモジュールバージョンSVの組、及び、呼び出し元モジュールMとモジュールバージョンVの組を対応づけて登録する(ステップS207)。   The module generation unit 120 generates the calling unit 402 so as to call the load module 400 of the version SV of the module S (Step S206). The module generation unit 120 registers a pair of the callee module S and the module version SV and a pair of the caller module M and the module version V in the call relation table 171 (Step S207).

モジュール生成部120は、特定した呼び出し先モジュールSの全てについて、ステップS204からの処理を繰り返す(ステップS208)。   The module generation unit 120 repeats the processing from step S204 for all the specified callee modules S (step S208).

モジュール生成部120は、実行ファイルFを用いて処理実行部401を生成し、生成した呼び出し部402とともに、ロードモジュール400に設定する。モジュール生成部120は、生成したロードモジュール400を、モジュールバージョンVのロードモジュール400として、モジュール実行部130にロードする(ステップS209)。   The module generation unit 120 generates the process execution unit 401 using the execution file F, and sets it in the load module 400 together with the generated calling unit 402. The module generation unit 120 loads the generated load module 400 into the module execution unit 130 as the load module 400 of the module version V (Step S209).

モジュール生成部120は、ロードバージョンテーブル162に、モジュール名M、モジュールバージョンV、及び、ファイルバージョンFVを登録する(ステップS211)。   The module generation unit 120 registers the module name M, the module version V, and the file version FV in the load version table 162 (step S211).

次に、モジュール生成部120は、バージョンテーブル161から、モジュールMに対するこれまでの最新モジュールバージョンPVを取得する(ステップS212)。   Next, the module generation unit 120 acquires the latest module version PV so far for the module M from the version table 161 (step S212).

最新モジュールバージョンPVが無い場合(新たなモジュールの場合)(ステップS213/N)、モジュール生成部120は、バージョンテーブル161に、モジュール名M、及び、最新モジュールバージョンVを登録する(ステップS214)。そして、モジュール生成部120は、モジュール生成処理を終了する。   When there is no latest module version PV (in the case of a new module) (step S213 / N), the module generation unit 120 registers the module name M and the latest module version V in the version table 161 (step S214). Then, the module generation unit 120 ends the module generation process.

一方、最新モジュールバージョンPVがある場合(ファイル更新の場合)(ステップS213/Y)、モジュール生成部120は、バージョンテーブル161のモジュールMに対する最新モジュールバージョンをVで更新する(ステップS215)。   On the other hand, when there is the latest module version PV (file update) (step S213 / Y), the module generation unit 120 updates the latest module version for the module M in the version table 161 with V (step S215).

モジュール生成部120は、呼び出し関係テーブル171を参照し、モジュールMのモジュールバージョンPVのロードモジュール400を呼び出す他ロードモジュール400のモジュール名TとモジュールバージョンTVの組を特定する(ステップS216)。   The module generation unit 120 refers to the call relation table 171 and specifies a set of the module name T and the module version TV of the other load module 400 that calls the load module 400 of the module version PV of the module M (step S216).

ステップS216で、他のロードモジュール400が存在しない場合(ステップS217/N)、モジュール生成部120は、モジュール生成処理を終了する。   If there is no other load module 400 in step S216 (step S217 / N), the module generation unit 120 ends the module generation process.

ステップS216で、他のロードモジュール400が存在する場合(ステップS217/Y)、モジュール生成部120は、特定したモジュール名TとモジュールバージョンTVの組の1つを選択する(ステップS218)。   In step S216, when another load module 400 exists (step S217 / Y), the module generation unit 120 selects one of the specified module name T and module version TV (step S218).

モジュール生成部120は、モジュールTのロードモジュール400の新たなモジュールバージョンNVを採番する(ステップS219)。   The module generation unit 120 assigns a new module version NV of the load module 400 of the module T (Step S219).

ここで、モジュール生成部120は、ロードバージョンテーブル162に存在するモジュールTのモジュールバージョンの最大値に1を加算した値を、モジュールバージョンNVに設定する。   Here, the module generation unit 120 sets a value obtained by adding 1 to the maximum value of the module version of the module T existing in the load version table 162 as the module version NV.

モジュール生成部120は、ロードバージョンテーブル162から、モジュールTのモジュールバージョンTVに対するファイルバージョンTFVを取得する(ステップS220)。   The module generation unit 120 acquires the file version TFV for the module version TV of the module T from the load version table 162 (step S220).

モジュール生成部120は、モジュール名T、新たなモジュールバージョンNV、ファイルバージョンTFVに対して、モジュール生成処理(ステップS201〜S222)を、再帰的に実行する(ステップS221)。   The module generation unit 120 recursively executes module generation processing (steps S201 to S222) for the module name T, the new module version NV, and the file version TFV (step S221).

モジュール生成部120は、ステップS216で特定した他のモジュール名TとモジュールバージョンTVの全ての組について、ステップS218からの処理を繰り返す(ステップS222)。   The module generation unit 120 repeats the processing from step S218 for all the combinations of the other module name T and module version TV specified in step S216 (step S222).

これにより、モジュールMを呼び出すモジュールTについて、最新のファイルバージョンTFVの実行ファイルを用い、モジュールMの最新のロードモジュール400を呼び出すような、新たなロードモジュール400が生成、ロードされる。   As a result, a new load module 400 that calls the latest load module 400 of the module M is generated and loaded using the execution file of the latest file version TFV for the module T that calls the module M.

同様に、モジュールTを呼び出すモジュールについても、最新のファイルバージョンの実行ファイルを用い、モジュールTの最新のロードモジュール400を呼び出すような、新たなロードモジュール400が生成、ロードされる。   Similarly, for the module that calls the module T, a new load module 400 that calls the latest load module 400 of the module T is generated and loaded using the execution file of the latest file version.

<リクエスト処理>
次に、リクエスト処理について説明する。リクエスト処理は、クライアント端末300が、アプリケーションサーバ100に対して、アプリケーションの処理に係るリクエストを送信したときに実行される。
<Request processing>
Next, request processing will be described. The request processing is executed when the client terminal 300 transmits a request related to application processing to the application server 100.

図7は、本発明の実施の形態における、リクエスト処理を示すフローチャートである。   FIG. 7 is a flowchart showing request processing in the embodiment of the present invention.

クライアント端末300は、アプリケーションサーバ100に、モジュールMに対するリクエストを送信する(ステップS301)。   The client terminal 300 transmits a request for the module M to the application server 100 (step S301).

アプリケーションサーバ100のリクエスト振り分け部140は、クライアント端末300から、モジュールMに対するリクエストを受信する(ステップS302)。   The request distribution unit 140 of the application server 100 receives a request for the module M from the client terminal 300 (step S302).

リクエスト振り分け部140は、リクエストからセッションID SIDを取得する(ステップS303)。   The request distribution unit 140 acquires a session ID SID from the request (step S303).

リクエストにセッションIDが含まれていない場合(ステップS304/N)、リクエスト振り分け部140は、新たなセッションID SIDを採番し、リクエストに設定する(ステップS305)。リクエスト振り分け部140は、バージョンテーブル161から、モジュールMの最新のモジュールバージョンVを取得する(ステップS306)。リクエスト振り分け部140は、セッションテーブル181に、セッションID SID、モジュール名M、モジュールバージョンVを登録する(ステップS307)。   If the session ID is not included in the request (step S304 / N), the request distribution unit 140 assigns a new session ID SID and sets it in the request (step S305). The request distribution unit 140 acquires the latest module version V of the module M from the version table 161 (step S306). The request distribution unit 140 registers the session ID SID, the module name M, and the module version V in the session table 181 (Step S307).

リクエストにセッションIDが含まれていた場合(ステップS304/Y)、リクエスト振り分け部140は、セッションテーブル181から、セッションID SID、モジュール名Mに対応する、モジュールバージョンVを取得する(ステップS308)。   When the session ID is included in the request (step S304 / Y), the request distribution unit 140 acquires the module version V corresponding to the session ID SID and the module name M from the session table 181 (step S308).

リクエスト振り分け部140は、モジュールMのモジュールバージョンVのロードモジュール400にリクエストを転送する(ステップS309)。モジュール実行部130は、モジュールMのモジュールバージョンVのロードモジュール400の処理を実行する(ステップS310)。   The request distribution unit 140 transfers the request to the load module 400 of the module version V of the module M (Step S309). The module execution unit 130 executes the process of the load module 400 of the module version V of the module M (Step S310).

モジュール実行部130は、モジュールMのロードモジュール400の処理の結果をリプライとして、クライアント端末300に送信する(ステップS311)。ここで、リプライには、リクエストに設定されていた、セッションIDが含まれる。   The module execution unit 130 sends the processing result of the load module 400 of the module M as a reply to the client terminal 300 (step S311). Here, the reply includes the session ID set in the request.

クライアント端末300は、アプリケーションサーバ100からリプライを受信する(ステップS312)。   The client terminal 300 receives a reply from the application server 100 (step S312).

図8は、本発明の実施の形態における、モジュール実行処理(ステップS310)の詳細を示すフローチャートである。   FIG. 8 is a flowchart showing details of the module execution process (step S310) in the embodiment of the present invention.

モジュール実行部130は、モジュールMのモジュールバージョンVのロードモジュール400に対するリクエストを受信する(ステップS401)。   The module execution unit 130 receives a request for the load module 400 of the module version V of the module M (step S401).

モジュール実行部130は、モジュールMのモジュールバージョンVのロードモジュール400により、モジュールMの処理を実行する(ステップS402)。   The module execution unit 130 executes the process of the module M by the load module 400 of the module version V of the module M (Step S402).

ここで、ロードモジュール400の処理実行部401が、モジュールMの処理を実行する。また、モジュールMが他のモジュールTを呼び出す場合、ロードモジュール400の呼び出し部402は、呼び出し先のモジュールTのモジュールバージョンTVのロードモジュール400を呼び出す。これにより、モジュール実行処理(ステップS401、S402)は、再帰的に実行される。   Here, the process execution unit 401 of the load module 400 executes the process of the module M. Further, when the module M calls another module T, the calling unit 402 of the load module 400 calls the load module 400 of the module version TV of the called module T. Thereby, the module execution process (steps S401 and S402) is recursively executed.

なお、上述のリクエスト処理では、リクエストにセッションIDが含まれていない場合に、リクエスト振り分け部140が新たなセッションIDを採番し、リクエストに付与した。しかしながら、これに限らず、クライアント端末300がセッションIDの採番を行ってもよい。この場合、リクエスト振り分け部140は、セッションテーブル181に登録されていないセッションIDを含む、新たなセッションのリクエストを受信した場合、上述のステップS306、S307の処理を行う。また、リクエスト振り分け部140は、セッションテーブル181に登録されているセッションIDを含むリクエストを受信した場合、上述のステップS308の処理を行う。   In the request processing described above, when the session ID is not included in the request, the request distribution unit 140 assigns a new session ID to the request. However, the present invention is not limited to this, and the client terminal 300 may perform session ID numbering. In this case, when the request distribution unit 140 receives a request for a new session including a session ID that is not registered in the session table 181, the request distribution unit 140 performs the processes of steps S306 and S307 described above. When the request distribution unit 140 receives a request including a session ID registered in the session table 181, the request distribution unit 140 performs the process of step S <b> 308 described above.

<具体例>
次に、本発明の実施の形態の動作の具体例を説明する。
<Specific example>
Next, a specific example of the operation of the embodiment of the present invention will be described.

図10は、本発明の実施の形態における、モジュール間の呼び出し関係の例を示す図である。ここでは、図10に示すように、アプリケーションが4つのモジュールA、B、C、及び、Dにより構成されていると仮定する。また、図10に示すように、クライアント端末300がモジュールAを呼び出し、モジュールAがモジュールBを呼び出し、モジュールBがモジュールCを呼び出し、モジュールCがモジュールDを呼び出すと仮定する。   FIG. 10 is a diagram illustrating an example of a calling relationship between modules in the embodiment of the present invention. Here, it is assumed that the application includes four modules A, B, C, and D as shown in FIG. Further, as shown in FIG. 10, it is assumed that the client terminal 300 calls the module A, the module A calls the module B, the module B calls the module C, and the module C calls the module D.

また、各モジュールの実行ファイルとして、モジュールA:「A.war」、モジュールB:「B.jar」、モジュールC:「C.jar」、モジュールD:「D.jar」が存在すると仮定する。さらに、各モジュールの更新(変更)された実行ファイルとして、モジュールA’:「A−modified.war」、モジュールC’:「C−modified.jar」、モジュールC’’:「C−modified−2.jar」存在すると仮定する。ここで、モジュール名に付与されている「’」は、実行ファイルが変更されたモジュールを示す。   Further, it is assumed that module A: “A. war”, module B: “B. jar”, module C: “C. jar”, and module D: “D. jar” exist as execution files of each module. Furthermore, as an execution file updated (changed) for each module, module A ′: “A-modified.war”, module C ′: “C-modified.jar”, module C ″: “C-modified-2” .Jar "exists. Here, “′” given to the module name indicates a module whose execution file has been changed.

はじめに、ロードモジュール400が1つもロードされていない状態で、管理端末200からモジュールD、C、B、Aの実行ファイル「D.jar」、「C.jar」、「B.jar」、「A.war」を順番に受信し、アプリケーションが配備されたと仮定する。   First, in the state where no load module 400 is loaded, the execution files “D.jar”, “C.jar”, “B.jar”, “A” of modules D, C, B, and A from the management terminal 200 are displayed. .War "in turn and assume that the application has been deployed.

この場合、上述のモジュール配備処理により、実行ファイルテーブル151、バージョンテーブル161、ロードバージョンテーブル162、及び、呼び出し関係テーブル171は、それぞれ、図11、図12、図13、及び、図14のように設定される。   In this case, the execution file table 151, the version table 161, the load version table 162, and the call relationship table 171 are respectively as shown in FIGS. 11, 12, 13, and 14 by the module deployment process described above. Is set.

図16、図22、及び、図28は、本発明の実施の形態における、ロードモジュール400間の呼び出し関係の例を示す図である。ロードモジュール400に付与された「a(b,c)」は、モジュールa、モジュールバージョンbのロードモジュール400を示し、当該ロードモジュール400が、ファイルバージョンcの実行ファイルを用いていることを示す。   16, FIG. 22, and FIG. 28 are diagrams showing an example of a calling relationship between the load modules 400 in the embodiment of the present invention. “A (b, c)” given to the load module 400 indicates the load module 400 of the module a and the module version b, and indicates that the load module 400 uses the execution file of the file version c.

この場合、ロードモジュール400間の呼び出し関係は、図16のようになる。   In this case, the calling relationship between the load modules 400 is as shown in FIG.

ここで、モジュールAに対する、新たなセッション(セッションID「101」)のリクエストを受信したと仮定する。   Here, it is assumed that a request for a new session (session ID “101”) for module A is received.

この場合、上述のリクエスト処理により、セッションテーブル181は、図15のように設定される。そして、セッションID「101」のリクエストに対して、図16における、ロードモジュール400「A(1,1)」、「B(1,1)」、「C(1,1)」、及び、「D(1,1)」が実行される。   In this case, the session table 181 is set as shown in FIG. 15 by the request processing described above. For the request with the session ID “101”, the load modules 400 “A (1, 1)”, “B (1, 1)”, “C (1, 1)”, and “ D (1,1) "is executed.

次に、管理端末200からモジュールC’の実行ファイル「C−modified.jar」を受信したと仮定する。   Next, it is assumed that the execution file “C-modified.jar” of the module C ′ is received from the management terminal 200.

この場合、上述のモジュール配備処理により、実行ファイルテーブル151、バージョンテーブル161、ロードバージョンテーブル162、及び、呼び出し関係テーブル171は、それぞれ、図17、図18、図19、及び、図20のように更新される。また、ロードモジュール400間の呼び出し関係は、図22のようになる。   In this case, the execution file table 151, the version table 161, the load version table 162, and the call relation table 171 are respectively as shown in FIGS. 17, 18, 19, and 20 by the module deployment process described above. Updated. The calling relationship between the load modules 400 is as shown in FIG.

ここで、モジュールCの更新後に、モジュールAに対する、新たなセッション(セッションID「102」)のリクエストを受信したと仮定する。   Here, it is assumed that a request for a new session (session ID “102”) for module A is received after module C is updated.

この場合、上述のリクエスト処理により、セッションテーブル181は、図21のように設定される。そして、セッションID「102」のリクエストに対して、図22における、ロードモジュール400「A(2,1)」、「B(2,1)」、「C’(2,2)」、及び、「D(1,1)」が実行される。また、セッションID「101」のリクエストに対しては、図22における、ロードモジュール400「A(1,1)」、「B(1,1)」、「C(1,1)」、及び、「D(1,1)」が実行される。   In this case, the session table 181 is set as shown in FIG. 21 by the request processing described above. In response to the request with the session ID “102”, the load modules 400 “A (2, 1)”, “B (2, 1)”, “C ′ (2, 2)” in FIG. “D (1, 1)” is executed. For the request with the session ID “101”, the load modules 400 “A (1, 1)”, “B (1, 1)”, “C (1, 1)” in FIG. “D (1, 1)” is executed.

さらに、管理端末200からモジュールA’の実行ファイル「A−modified.war」を受信し、モジュールC’’の実行ファイル「C−modified−2.jar」を受信したと仮定する。   Further, it is assumed that the execution file “A-modified.war” of the module A ′ is received from the management terminal 200 and the execution file “C-modified-2.jar” of the module C ″ is received.

この場合、上述のモジュール配備処理により、実行ファイルテーブル151、バージョンテーブル161、ロードバージョンテーブル162、及び、呼び出し関係テーブル171は、それぞれ、図23、図24、図25、及び、図26のように更新される。また、ロードモジュール400間の呼び出し関係は、図28のようになる。   In this case, the execution file table 151, the version table 161, the load version table 162, and the call relation table 171 are respectively as shown in FIGS. 23, 24, 25, and 26 by the module deployment process described above. Updated. The calling relationship between the load modules 400 is as shown in FIG.

ここで、モジュールAの更新後でモジュールC’更新前に、モジュールAに対する、新たなセッションのリクエスト(セッションID「103」)を受信したと仮定する。さらに、モジュールC’更新後に、モジュールAに対する、新たなセッションのリクエスト(セッションID「104」)を受信したと仮定する。   Here, it is assumed that a new session request (session ID “103”) for module A is received after module A is updated but before module C ′ is updated. Further, it is assumed that a new session request (session ID “104”) is received for module A after the module C ′ is updated.

この場合、上述のリクエスト処理により、セッションテーブル181は、図27のように設定される。そして、セッションID「104」のリクエストに対して、図28における、ロードモジュール400「A’(4,3)」、「B(3,1)」、「C’’(3,3)」、及び、「D(1,1)」が実行される。また、セッションID「103」のリクエストに対して、図28における、ロードモジュール400「A’(3,3)」、「B(2,1)」、「C’(2,2)」、及び、「D(1,1)」が実行される。   In this case, the session table 181 is set as shown in FIG. 27 by the request processing described above. In response to the request with the session ID “104”, the load modules 400 “A ′ (4,3)”, “B (3,1)”, “C ″ (3,3)” in FIG. And "D (1, 1)" is executed. Further, in response to the request with the session ID “103”, the load modules 400 “A ′ (3, 3)”, “B (2, 1)”, “C ′ (2, 2)” in FIG. , “D (1,1)” is executed.

以上により、本発明の実施の形態の動作が完了する。   Thus, the operation of the embodiment of the present invention is completed.

次に、本発明の実施の形態の特徴的な構成を説明する。図1は、本発明の実施の形態の特徴的な構成を示すブロック図である。   Next, a characteristic configuration of the embodiment of the present invention will be described. FIG. 1 is a block diagram showing a characteristic configuration of an embodiment of the present invention.

図1を参照すると、アプリケーションサーバ100(情報処理システム)は、モジュール受付部110、及び、モジュール生成部120を含む。   Referring to FIG. 1, the application server 100 (information processing system) includes a module reception unit 110 and a module generation unit 120.

モジュール受付部110は、アプリケーションを構成する複数のモジュールの各々の実行ファイルの更新を受け付ける。   The module reception unit 110 receives an update of each executable file of a plurality of modules constituting the application.

モジュール生成部120は、複数のモジュールの内の第1のモジュールの実行ファイルが更新された場合に、当該第1のモジュールについて、当該更新された実行ファイルを用いた新たなロードモジュール400を生成する。さらに、モジュール生成部120は、当該第1のモジュールを呼び出す第2のモジュールについて、当該第1のモジュールの新たなロードモジュール400を呼び出す新たなロードモジュール400を生成する。   When the execution file of the first module among a plurality of modules is updated, the module generation unit 120 generates a new load module 400 using the updated execution file for the first module. . Further, the module generation unit 120 generates a new load module 400 that calls the new load module 400 of the first module for the second module that calls the first module.

次に、本発明の実施の形態の効果を説明する。   Next, the effect of the embodiment of the present invention will be described.

本発明の実施の形態によれば、複数モジュールにより構成されるアプリケーションの一部のモジュールの更新を、アプリケーションを停止せず、処理の一貫性を保ったまま、低負荷で実現できる。その理由は、第1のモジュールの実行ファイルが更新時に、モジュール生成部120が、第1のモジュールを呼び出す第2のモジュールについて、第1のモジュールの新たなロードモジュール400を呼び出す新たなロードモジュール400を生成するためである。   According to the embodiment of the present invention, an update of a part of an application composed of a plurality of modules can be realized with a low load while maintaining the consistency of processing without stopping the application. The reason is that when the execution file of the first module is updated, the module generation unit 120 calls the new load module 400 that calls the new load module 400 of the first module for the second module that calls the first module. It is for producing | generating.

これにより、更新前の実行ファイルを使った、ロードモジュール400間の呼び出し関係を維持したまま、更新後の実行ファイルを使った、ロードモジュール400間の呼び出し関係が追加される。したがって、クライアント端末300からのリクエストを直接受け付けるモジュールのロードモジュール400をセッションIDに応じて選択することで、実行ファイルの更新前、及び、更新後のそれぞれで、アプリケーションの処理の一貫性が保たれる。   As a result, the calling relationship between the load modules 400 using the updated execution file is added while maintaining the calling relationship between the load modules 400 using the execution file before the update. Therefore, by selecting the load module 400 of the module that directly receives a request from the client terminal 300 according to the session ID, consistency of application processing is maintained before and after the execution file is updated. It is.

また、これにより、クライアント端末300からのリクエストを直接受け付けるモジュールのロードモジュール400を決定すれば、他のモジュールのロードモジュール400が決定される。したがって、モジュール間では、ロードモジュール400のモジュールバージョンの選択を行う必要がない。例えば、セッションのIDとロードモジュール400のモジュールバージョンの対応表をモジュール毎に用意し、モジュール間でセッションIDを引き渡しながら、呼び出すロードモジュール400のモジュールバージョンを選択する必要はない。このため、モジュール間でのロードモジュール400の選択に伴う、処理の負荷の増大を抑えられる。   As a result, if the load module 400 of a module that directly receives a request from the client terminal 300 is determined, the load module 400 of another module is determined. Therefore, it is not necessary to select the module version of the load module 400 between modules. For example, it is not necessary to prepare a correspondence table between the session ID and the module version of the load module 400 for each module, and select the module version of the load module 400 to be called while delivering the session ID between the modules. For this reason, an increase in processing load accompanying the selection of the load module 400 between modules can be suppressed.

以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

例えば、モジュール生成部120は、上述のモジュール生成処理における、実行ファイルの呼び出し先モジュールの解析(ステップS202)の結果を、解析結果格納部(図示せず)等に保存してもよい。この場合、モジュール生成部120は、解析結果が既に解析結果格納部に格納されている場合は、当該解析結果を利用する。呼び出し先モジュールのロードモジュール400が更新された場合の呼び出し元モジュールのモジュール生成処理では、実行ファイルは更新されない。したがって、解析結果格納部に格納されている解析結果を用いることで、実行ファイルの解析を省略できる。   For example, the module generation unit 120 may store the analysis result of the execution file call destination module (step S202) in the module generation process described above in an analysis result storage unit (not shown) or the like. In this case, when the analysis result is already stored in the analysis result storage unit, the module generation unit 120 uses the analysis result. In the module generation process of the caller module when the load module 400 of the callee module is updated, the execution file is not updated. Therefore, the analysis of the executable file can be omitted by using the analysis result stored in the analysis result storage unit.

100 アプリケーションサーバ
101 CPU
102 記憶デバイス
103 通信デバイス
104 入出力デバイス
110 モジュール受付部
120 モジュール生成部
130 モジュール実行部
140 リクエスト振り分け部
150 モジュール格納部
160 バージョン情報格納部
170 呼び出し関係格納部
180 セッション情報格納部
151 実行ファイルテーブル
161 バージョンテーブル
162 ロードバージョンテーブル
171 呼び出し関係テーブル
181 セッションテーブル
200 管理端末
300 クライアント端末
400 ロードモジュール
401 処理実行部
402 呼び出し部
100 Application server 101 CPU
DESCRIPTION OF SYMBOLS 102 Storage device 103 Communication device 104 Input / output device 110 Module reception part 120 Module generation part 130 Module execution part 140 Request distribution part 150 Module storage part 160 Version information storage part 170 Call relation storage part 180 Session information storage part 151 Execution file table 161 Version table 162 Load version table 171 Calling relation table 181 Session table 200 Management terminal 300 Client terminal 400 Load module 401 Processing execution part 402 Calling part

Claims (9)

アプリケーションを構成する複数のモジュールの各々の実行ファイルの更新を受け付ける、モジュール受付手段と、
前記複数のモジュールの内の第1のモジュールの実行ファイルが更新された場合に、当該第1のモジュールについて、当該更新された実行ファイルを用いた新たなロードモジュールを生成し、当該第1のモジュールを呼び出す第2のモジュールについて、当該第1のモジュールの新たなロードモジュールを呼び出す新たなロードモジュールを生成する、モジュール生成手段と、
を備えた、情報処理システム。
Module accepting means for accepting update of each executable file of a plurality of modules constituting the application;
When the execution file of the first module among the plurality of modules is updated, a new load module using the updated execution file is generated for the first module, and the first module is generated. Module generating means for generating a new load module for calling a new load module of the first module for the second module for calling
An information processing system with
前記モジュール生成手段は、前記第2のモジュールを呼び出す第3のモジュールについて、当該第2のモジュールの新たなロードモジュールを呼び出す新たなロードモジュールを生成することを再帰的に繰り返す、
請求項1に記載の情報処理システム。
The module generation means recursively repeats generating a new load module that calls a new load module of the second module for the third module that calls the second module.
The information processing system according to claim 1.
さらに、前記複数のモジュールの内のいずれかのモジュールに対する新たなセッションのリクエストを受信した場合に、当該セッションと当該モジュールの最新のロードモジュールを関連づけ、当該セッションの当該受信したリクエスト以降のリクエストを、当該関連づけられたロードモジュールに振り分ける、リクエスト振り分け手段を備える、
請求項1または2に記載の情報処理システム。
Furthermore, when a request for a new session for any one of the modules is received, the session is associated with the latest load module of the module, and requests subsequent to the received request for the session are A request distribution unit that distributes to the associated load module;
The information processing system according to claim 1 or 2.
前記モジュール生成手段は、前記複数のモジュールの内のいずれかのモジュールの実行ファイルが更新、または、呼び出し先のモジュールの新たなロードモジュールが生成された場合に、当該モジュールの最新の実行ファイルを用い、呼び出し先のモジュールの最新のロードモジュールを呼び出す、当該モジュールの新たなロードモジュールを生成する、
請求項1乃至3のいずれかに記載の情報処理システム。
The module generation means uses the latest execution file of the module when the execution file of any of the plurality of modules is updated or a new load module of the called module is generated. Call the latest load module of the called module, create a new load module for the module,
The information processing system according to claim 1.
前記モジュール生成手段は、前記モジュールの最新の実行ファイルにもとづき当該モジュールに係る処理を行う処理実行部と、当該モジュールの呼び出し先のモジュールの最新のロードモジュールを呼び出す呼び出し部と、を含む、ロードモジュールを生成する、
請求項4に記載の情報処理システム。
The module generation means includes a processing execution unit that performs processing related to the module based on the latest execution file of the module, and a calling unit that calls the latest load module of the module that is the calling destination of the module Generate
The information processing system according to claim 4.
アプリケーションを構成する複数のモジュールの各々の実行ファイルの更新を受け付け、
前記複数のモジュールの内の第1のモジュールの実行ファイルが更新された場合に、当該第1のモジュールについて、当該更新された実行ファイルを用いた新たなロードモジュールを生成し、当該第1のモジュールを呼び出す第2のモジュールについて、当該第1のモジュールの新たなロードモジュールを呼び出す新たなロードモジュールを生成する、
情報処理方法。
Accept update of each executable file of multiple modules that make up the application,
When the execution file of the first module among the plurality of modules is updated, a new load module using the updated execution file is generated for the first module, and the first module is generated. For the second module that calls, generate a new load module that calls the new load module of the first module,
Information processing method.
さらに、前記第2のモジュールを呼び出す第3のモジュールについて、当該第2のモジュールの新たなロードモジュールを呼び出す新たなロードモジュールを生成することを再帰的に繰り返す、
請求項6に記載の情報処理方法。
Further, recursively repeating generation of a new load module for calling a new load module of the second module for the third module for calling the second module,
The information processing method according to claim 6.
さらに、前記複数のモジュールの内のいずれかのモジュールに対する新たなセッションのリクエストを受信した場合に、当該セッションと当該モジュールの最新のロードモジュールを関連づけ、当該セッションの当該受信したリクエスト以降のリクエストを、当該関連づけられたロードモジュールに振り分ける、
請求項6または7に記載の情報処理方法。
Furthermore, when a request for a new session for any one of the modules is received, the session is associated with the latest load module of the module, and requests subsequent to the received request for the session are Distribute to the associated load module,
The information processing method according to claim 6 or 7.
コンピュータに、
アプリケーションを構成する複数のモジュールの各々の実行ファイルの更新を受け付け、
前記複数のモジュールの内の第1のモジュールの実行ファイルが更新された場合に、当該第1のモジュールについて、当該更新された実行ファイルを用いた新たなロードモジュールを生成し、当該第1のモジュールを呼び出す第2のモジュールについて、当該第1のモジュールの新たなロードモジュールを呼び出す新たなロードモジュールを生成する、
処理を実行させるプログラム。
On the computer,
Accept update of each executable file of multiple modules that make up the application,
When the execution file of the first module among the plurality of modules is updated, a new load module using the updated execution file is generated for the first module, and the first module is generated. For the second module that calls, generate a new load module that calls the new load module of the first module,
A program that executes processing.
JP2015134494A 2015-07-03 2015-07-03 INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING METHOD, AND PROGRAM Active JP6540287B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015134494A JP6540287B2 (en) 2015-07-03 2015-07-03 INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING METHOD, AND PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015134494A JP6540287B2 (en) 2015-07-03 2015-07-03 INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING METHOD, AND PROGRAM

Publications (2)

Publication Number Publication Date
JP2017016517A true JP2017016517A (en) 2017-01-19
JP6540287B2 JP6540287B2 (en) 2019-07-10

Family

ID=57830764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015134494A Active JP6540287B2 (en) 2015-07-03 2015-07-03 INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING METHOD, AND PROGRAM

Country Status (1)

Country Link
JP (1) JP6540287B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019046255A (en) * 2017-09-04 2019-03-22 日本電気株式会社 Information processing system, information processing method, and program
JP2021002249A (en) * 2019-06-24 2021-01-07 株式会社リコー Information processor and information processing method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05282134A (en) * 1992-04-02 1993-10-29 Nec Corp Divided load module formation system
JPH05307478A (en) * 1992-04-30 1993-11-19 Nippon Telegr & Teleph Corp <Ntt> Constituting method for data base management system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05282134A (en) * 1992-04-02 1993-10-29 Nec Corp Divided load module formation system
JPH05307478A (en) * 1992-04-30 1993-11-19 Nippon Telegr & Teleph Corp <Ntt> Constituting method for data base management system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019046255A (en) * 2017-09-04 2019-03-22 日本電気株式会社 Information processing system, information processing method, and program
JP2021002249A (en) * 2019-06-24 2021-01-07 株式会社リコー Information processor and information processing method
JP7338264B2 (en) 2019-06-24 2023-09-05 株式会社リコー Information processing device and information processing method

Also Published As

Publication number Publication date
JP6540287B2 (en) 2019-07-10

Similar Documents

Publication Publication Date Title
CN102202078B (en) The method and system of a kind of multiple foreign peoples roles for configuration server field
JP6164440B2 (en) Application upgrade method and apparatus
CN108255708B (en) Method, device, storage medium and equipment for accessing production file in test environment
CN104484353A (en) Data imaging method, data imaging device and database server
CN109245908B (en) Method and device for switching master cluster and slave cluster
CN112433788A (en) Applet running method and device, electronic equipment and storage medium
WO2016058488A1 (en) Method and device for providing sdk files
US11722523B2 (en) Solution management systems and methods for addressing cybersecurity vulnerabilities
CN111782235B (en) Data upgrading and inquiring method and device
CN113419818B (en) Basic component deployment method, device, server and storage medium
JP6540287B2 (en) INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING METHOD, AND PROGRAM
CN112131230B (en) Application software as a service (SaaS) realization method, device, equipment and storage medium
CN110807535A (en) Construction method and construction device of unified reservation platform and unified reservation platform system
CN110795328A (en) Interface testing method and device
JP2009217395A (en) Virtual server software update system, virtual server software update method, server and program for server
US20230134573A1 (en) Automated generation of dependency hierarchy based on input and output requirements of information
CN112631804B (en) Service call request processing method based on isolation environment and computer equipment
CN112558985B (en) Sub-application deployment method and device
JP2016177659A (en) Verification program, verification device and verification method
CN113779122B (en) Method and device for exporting data
CN112559001B (en) Method and device for updating application
JP2016218541A (en) Information processing device and program
KR20210040333A (en) Request processing method, apparatus, device and computer storage medium
CN109981320B (en) Method and device for managing configuration information
CN105930431A (en) Method, device and system for accessing database

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180615

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190527

R150 Certificate of patent or registration of utility model

Ref document number: 6540287

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150