JP2011118522A - サーバ装置及びその制御方法 - Google Patents
サーバ装置及びその制御方法 Download PDFInfo
- Publication number
- JP2011118522A JP2011118522A JP2009273515A JP2009273515A JP2011118522A JP 2011118522 A JP2011118522 A JP 2011118522A JP 2009273515 A JP2009273515 A JP 2009273515A JP 2009273515 A JP2009273515 A JP 2009273515A JP 2011118522 A JP2011118522 A JP 2011118522A
- Authority
- JP
- Japan
- Prior art keywords
- library
- storage area
- application
- call
- load
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】本発明は、処理効率を格段に向上させ得るサーバ装置を提案する。
【解決手段】サーバ装置であって、ロードが完了したライブラリを格納する呼出ライブラリ格納領域から前記ライブラリを呼び出して、クライアント装置からの要求を処理する第1の制御部と、前記第1の制御部と非同期に、前記呼出ライブラリ格納領域と異なる格納領域に新たなライブラリをロードする第2の制御部とを備え、前記第1の制御部は、前記第2の制御部において前記新たなライブラリのロードが完了した場合、前記新たなライブラリの格納領域を前記呼出ライブラリ格納領域に設定することを特徴とする。
【選択図】図3
【解決手段】サーバ装置であって、ロードが完了したライブラリを格納する呼出ライブラリ格納領域から前記ライブラリを呼び出して、クライアント装置からの要求を処理する第1の制御部と、前記第1の制御部と非同期に、前記呼出ライブラリ格納領域と異なる格納領域に新たなライブラリをロードする第2の制御部とを備え、前記第1の制御部は、前記第2の制御部において前記新たなライブラリのロードが完了した場合、前記新たなライブラリの格納領域を前記呼出ライブラリ格納領域に設定することを特徴とする。
【選択図】図3
Description
本発明は、長時間の稼働が求められるサーバ装置及びその制御方法に関する。
従来、24時間稼働することが求められるシステムでは、クライアント装置からの処理要求の受付停止時間を短縮すべく、アプリケーションプログラム(Application Program :AP)が呼び出すアプリケーションライブラリを動的に置換する方式が必要となる。
とりわけ、大規模なシステムにおいては、アプリケーションプログラムの数も多くなり、置換が必要となるアプリケーションライブラリの数も多くなるため、置換処理時間を極力短くしてトランザクションの遅延時間を短くすることが望まれる。
例えば、動的にアプリケーションライブラリを置換するシステムとして、以下の特許文献1に記載のデータ処理装置が開示されている。すなわち、特許文献1に記載のデータ処理装置は、マルチスレッドシステム構成の処理スレッドのうち、現在用意されたアプリケーションライブラリを使用して電文の処理が可能な処理スレッド(置換不要処理スレッド)についてはそのまま処理を行わせる。一方、データ処理装置は、アプリケーションライブラリの置換が必要な処理スレッドについては、置換用アプリケーションライブラリの読み込みの処理を、置換不要処理スレッドが電文の処理を行っているときに時間的に並列して行わせる。
従来では、図6に示すように、置換処理実行前の最後のトランザクションが完了してから、それまでに使用していたアプリケーションライブラリのアンロード、新たなアプリケーションライブラリのロードを行い、新たなアプリケーションライブラリを呼び出すための情報作成が完了してから、新たなアプリケーションライブラリを使用してトランザクションを再開していた。
このため、大量のアプリケーションライブラリが使用される大規模システムにおいて、大量のアプリケーションライブラリを置換するような場合、アプリケーションライブラリの置換処理が長くなり、その結果、トランザクションの遅延時間が長くなるという問題がある。
また、特許文献1に記載のデータ処理装置でも、置換が必要な処理スレッドについては、置換処理の間は処理要求の受付を停止することとなるため、上述の場合と同様の問題がある。
本発明は以上の点を考慮してなされたものであり、処理効率を格段に向上させ得るサーバ装置及びその制御方法を提案するものである。
かかる課題を解決するために本発明は、サーバ装置であって、ロードが完了したライブラリを格納する呼出ライブラリ格納領域から前記ライブラリを呼び出して、クライアント装置からの要求を処理する第1の制御部と、前記第1の制御部と非同期に、前記呼出ライブラリ格納領域と異なる格納領域に新たなライブラリをロードする第2の制御部とを備え、前記第1の制御部は、前記第2の制御部において前記新たなライブラリのロードが完了した場合、前記新たなライブラリの格納領域を前記呼出ライブラリ格納領域に設定することを特徴とする。
また、本発明は、サーバ装置の制御方法であって、第1の制御部が、ロードが完了したライブラリを格納する呼出ライブラリ格納領域から前記ライブラリを呼び出して、クライアント装置からの要求を処理する第1のステップと、第2の制御部が、前記第1の制御部と非同期に、前記呼出ライブラリ格納領域と異なる格納領域に新たなライブラリをロードする第2のステップとを備え、前記第1のステップでは、前記第2のステップによる前記新たなライブラリのロードが完了した場合、前記新たなライブラリの格納領域を前記呼出ライブラリ格納領域に設定することを特徴とする。
従って、ライブラリのロードを行うための専用の第2の制御部を用意し、ライブラリを呼び出す第1の制御部と非同期にライブラリのロードを行うため、クライアント装置からの処理要求の受付を止めることなくライブラリを動的に置換することが可能となる。
本発明によれば、処理効率を格段に向上させ得るサーバ装置及びその制御方法を実現することができる。
以下、本発明の一実施の形態を、図面を参照して詳細に説明する。
図1は、アプリケーションサーバ1のハードウェア構成を例示する図である。アプリケーションサーバ1(サーバ装置)は、例えば、CPU(Central Processing Unit)2、CPU2にバス結合されたROM(Read Only Memory)3、RAM(Random Access Memory)4、記憶部5、入力部6、表示部7、および入出力インタフェース8など、通常のコンピュータ装置と同様のハードウェアを備えている。ここで、例えば、記憶部5は、HDD(Hard Disk Drive)などの外部記憶装置である。
アプリケーションサーバ1は、物理的には、専用化したシステム、あるいは汎用の情報処理装置のいずれであっても良い。例えば、一般的な構成の情報処理装置において、本発明のアプリケーションサーバ1における各処理は、規定した処理を行うアプリケーションプログラムを呼び出すことによって実現することもできる。
図2は、アプリケーションサーバ1の機能的構成を例示する図である。アプリケーションサーバ1は、機能的には、少なくとも処理要求実行スレッド11(第1の制御部)、ロード処理実行スレッド12(第2の制御部)及びアプリケーション動的置換手段13を備えている。処理要求実行スレッド11、ロード処理実行スレッド12及びアプリケーション動的置換手段13は、主にCPU2がROM3やRAM4に格納されるプログラムを呼び出して、各ハードウェアを制御することによって実現することができる。
さらに、アプリケーションサーバ1は、アプリケーション動的置換対象ライブラリDB(Database)14、自プロセス用ライブラリ情報15、全ライブラリ情報管理テーブル16及び世代情報17を有する。さらに、アプリケーションサーバ1は、アプリケーションライブラリを格納するための格納領域18を有しており、格納領域18は、少なくとも2つのライブラリ格納領域18A、18Bを含んでいる。
アプリケーション動的置換対象ライブラリDB14は、例えば、記憶部5を用いて構成される。自プロセス用ライブラリ情報15、全ライブラリ情報管理テーブル16及び世代情報17は、例えば、RAM4に格納される。格納領域18は、RAM4を用いて構成される。
処理要求実行スレッド11は、クライアント装置19からの処理要求を受信すると、格納領域18の呼出ライブラリ格納領域から、対応するアプリケーションライブラリの関数を呼び出して処理要求を処理し、処理後にクライアント装置19に応答する。呼出ライブラリ格納領域は、処理要求実行スレッド11が呼び出すアプリケーションライブラリ(ライブラリ)を格納する領域であり、ライブラリ格納領域18A、18Bのいずれかが呼出ライブラリ格納領域に設定される。
ロード処理実行スレッド12は、初期設定として、アプリケーションライブラリの関数の呼出に必要なアプリケーションライブラリをアプリケーション動的置換対象ライブラリDB14からライブラリ格納領域18A、18Bのいずれかにロードして、呼出ライブラリ格納領域に設定する。また、ロード処理実行スレッド12は、動的置換処理として、処理要求実行スレッド11と非同期に、ライブラリ格納領域18A、18Bのうち格納領域18内の呼出ライブラリ格納領域と異なる領域に、新たなアプリケーションライブラリをロードする。処理要求実行スレッド11は、ロード処理実行スレッド12において新たなアプリケーションライブラリのロードが完了した場合、新たなアプリケーションライブラリの格納領域を、呼出ライブラリ格納領域に設定する。一方、ロード処理実行スレッド12は、新たなライブラリの格納領域が呼出ライブラリ格納領域に設定された後に、古いアプリケーションライブラリ(処理要求実行スレッド11が前記設定前に呼び出していたアプリケーションライブラリ)をアンロードする。
なお、アプリケーションプログラムとは、特定の目的のために設計され、特定の処理を行うためのプログラムをいう。アプリケーションライブラリとは、ある特定の機能を有するプログラム(関数)を、他のプログラム(アプリケーションプログラム)から利用できるように部品化し、複数のプログラムを1つのファイルにまとめたものをいう。アプリケーションライブラリ自体は、単独で呼び出すことはできず、例えば、アプリケーションプログラムに呼び出されることによりその一部として動作する。ロードとは、外部記憶装置に記憶されているデータ、プログラム、アプリケーションライブラリなどをRAM4などのメインメモリに読み込むことをいう。アンロードとは、メインメモリに展開されたデータ、プログラム、アプリケーションライブラリなどを削除し、その領域を解放することをいう。
アプリケーション動的置換手段13は、アプリケーション動的置換対象ライブラリDB14を参照し、ライブラリ情報を全ライブラリ情報管理テーブル16に展開する。自プロセス用ライブラリ情報15は、全ライブラリ情報管理テーブル16から、処理要求実行スレッド11にとって必要なライブラリ情報を抽出して構成される。自プロセス用ライブラリ情報15は、ロード処理実行スレッド12によって作成される。
世代情報17は、呼出ライブラリ格納領域の設定を切り替えるための情報である。世代情報17は、処理要求実行スレッド11が呼び出すアプリケーションライブラリが、ロード処理実行スレッド12の起動から何回目のロード処理によって取得したアプリケーションライブラリであるかを示す呼出世代情報と、ロード処理実行スレッド12がロード完了したアプリケーションライブラリが、ロード処理実行スレッド12の起動から何回目のロード処理によって取得したライブラリであるかを示すロード世代情報とを含んで構成される。
後述するように、ロード処理実行スレッド12は、新たなアプリケーションライブラリのロードが完了した場合、ロード世代情報を更新し、一方、処理要求実行スレッド11は、呼出世代情報とロード世代情報とが異なる場合、呼出世代情報をロード世代情報と同一となるように更新し、新たなアプリケーションライブラリの格納領域を呼出ライブラリ格納領域に設定する。
次に、アプリケーションサーバ1の動作を、図2及び図3を参照して説明する。
段階(a)及び(b)は、要求処理実行前の段階である。
(a)ロード処理実行スレッド12は、起動時に全ライブラリ情報管理テーブル16を参照し、全ライブラリ情報管理テーブル16のアプリケーションライブラリの一覧から、処理要求実行スレッド11に関連するアプリケーションライブラリをロード世代番号「1」のアプリケーションライブラリとして、例えば、ライブラリ格納領域18Aにロードし、当該ライブラリ格納領域18Aを呼出ライブラリ格納領域に設定して、ロード世代番号「1」の自プロセス用ライブラリ情報15を作成する。
ここで、図4は、自プロセス用ライブラリ情報15の構成を例示する図である。自プロセス用ライブラリ情報15は、アプリケーションライブラリのロード世代番号、関数名、関数アドレス及びライブラリファイル(格納先、ライブラリ名)を管理する。
図5は、世代情報17の構成を例示する図である。世代情報17は、処理要求実行スレッド11がアプリケーションライブラリの関数を呼び出すアプリケーションライブラリの世代の番号を表す呼出世代(呼出世代情報)とロード処理実行スレッド12がアプリケーションライブラリのロードを完了しているアプリケーションライブラリの世代の番号を表すロード世代(ロード世代情報)とを管理する。
(b)ロード処理実行スレッド12は、起動時に世代情報17を作成し、世代情報17の呼出世代を呼出世代番号「1」として、及びロード世代をロード世代番号「1」として初期化する。
段階(c)は、動的置換処理実行前の段階である。
(c)処理要求実行スレッド11は、クライアント装置19からの処理要求を受信すると、世代情報17のロード世代番号と呼出世代番号とを比較する。処理要求実行スレッド11は、呼出世代番号とロード世代番号とが同一であるため、世代情報17の呼出世代のアプリケーションライブラリにおける、対応する関数を呼出ライブラリ格納領域から呼び出して、クライアント装置19から処理要求を処理する。
段階(d)〜(h)は、動的置換処理実行中の段階である。
(d)アプリケーション動的置換手段13は、アプリケーション動的置換対象ライブラリDB14を参照し、全ライブラリ情報管理テーブル16の内容を更新し、ロード処理実行スレッド12に置換処理要求を行う。本処理については、例えば特開2005-157536号公報等で記述されているためここでは詳細に記述しない。
(e)ロード処理実行スレッド12は、全ライブラリ情報管理テーブル16を参照し、アプリケーションライブラリの一覧から、処理要求実行スレッド11に関連するアプリケーションライブラリの情報を取得し、例えば、自プロセス用ライブラリ情報15にロード世代番号「2」のアプリケーションライブラリの情報を追加する。
(f)ロード処理実行スレッド12は、ロード世代番号「2」のアプリケーションライブラリについて、例えば、既にロードされているロード世代番号「1」のアプリケーションライブラリが格納されている呼出ライブラリ格納領域(ここでは、ライブラリ格納領域18A)と異なるライブラリ格納領域18Bにロードする。
(g)処理要求実行スレッド11は、(d)〜(f)を実行中にクライアント装置19から処理要求を受けた場合、世代情報17のロード世代番号と呼出世代番号とを比較する。段階(d)〜(f)では、世代情報17のロード世代番号と呼出世代番号とが一致するので、置換処理実行前と同様に、呼出ライブラリ格納領域(ここでは、ライブラリ格納領域18A)のアプリケーションライブラリの対応する関数を呼び出してクライアント装置19から処理要求を処理する。
(h)一方、ロード処理実行スレッド12は、ロード世代番号「2」のアプリケーションライブラリのロードが完了した場合、世代情報17のロード世代をロード世代番号「2」に更新する。これにより、動的置換処理が完了する。
段階(i)及び(j)は、動的置換処理実行後の段階である。
(i)処理要求実行スレッド11は、(h)が完了した後でクライアント装置19から処理要求を受信した場合、世代情報17のロード世代番号と呼出世代番号とを比較する。段階(h)では、世代情報17のロード世代番号と呼出世代番号とが異なる、すなわち、世代情報17のロード世代番号が呼出世代番号よりも大きくなっているので、ロード世代番号「2」のアプリケーションライブラリのライブラリ格納領域18Bを呼出ライブラリ格納領域に設定し、世代情報17の呼出世代番号をロード世代番号と同じ「2」に更新する。これにより、以降はロード世代番号「2」のアプリケーションライブラリの対応する関数を呼び出してクライアント装置19からの処理要求を処理することになる。
(j)ロード処理実行スレッド12は、世代情報17の呼出世代番号が「2」になったことを検知した後、置換後に不要となったアプリケーションライブラリ、すなわち、処理要求実行スレッド11が呼び出しライブラリ格納領域の設定を行う前に呼び出していたライブラリ(ライブラリ格納領域18Aに格納されているアプリケーションライブラリ)のアンロードを行う。以下、同様にして、アプリケーションサーバ1は、状況に応じて、段階(c)〜(j)の処理を繰り返す。
このようにして、アプリケーションサーバ1は、処理要求実行スレッド11と、ロード処理実行スレッド12とを非同期に動作させ、新たなアプリケーションライブラリをロードしている場合、既にロードされているアプリケーションライブラリの対応する関数を呼び出してクライアント装置19からの処理要求を処理する。
また、アプリケーションサーバ1は、新たなアプリケーションライブラリのロードが完了した場合、新たなアプリケーションライブラリの格納領域を呼出ライブラリ格納領域に設定して、新たなアプリケーションライブラリの対応する関数を呼び出してクライアント装置19からの処理要求を処理する。
そして、アプリケーションサーバ1は、既にロードされているアプリケーションライブラリのアンロードを、新たなアプリケーションライブラリのロードが完了し、新たなアプリケーションライブラリの格納領域が呼出ライブラリ格納領域に設定された後に行う。
以上の処理によって、アプリケーションサーバ1は、クライアント装置19からの処理要求を止めることなくアプリケーションライブラリを動的に置換することが可能となる。
そして、本発明の効果として、アプリケーションサーバ1は、大量のアプリケーションライブラリを置換する必要がある場合であっても、クライアント装置からの受付処理の停止時間を短くすることが可能となる。
本発明は、24時間稼動を行う大規模システムにおいて、大量のアプリケーションライブラリの機能追加やバグ修正を、クライアント装置からの受付処理を停止することなく行う場合に有効である。
1……アプリケーションサーバ、2……CPU、3……ROM、4……RAM、5……記憶部、6……入力部、7……表示部、8……入出力インタフェース、11……処理要求実行スレッド、12……ロード処理実行スレッド、13……アプリケーション動的置換手段、14……アプリケーション動的置換ライブラリ、15……自プロセス用ライブラリ情報、16……全ライブラリ情報管理テーブル、17……世代情報、18……格納領域、19……クライアント装置
Claims (4)
- ロードが完了したライブラリを格納する呼出ライブラリ格納領域から前記ライブラリを呼び出して、クライアント装置からの要求を処理する第1の制御部と、
前記第1の制御部と非同期に、前記呼出ライブラリ格納領域と異なる格納領域に新たなライブラリをロードする第2の制御部と
を備え、
前記第1の制御部は、
前記第2の制御部において前記新たなライブラリのロードが完了した場合、前記新たなライブラリの格納領域を前記呼出ライブラリ格納領域に設定する
ことを特徴とするサーバ装置。 - 前記第2の制御部は、
前記第1の制御部による前記設定が完了した後に、前記第1の制御部が前記設定前に呼び出していたライブラリをアンロードする
ことを特徴とする請求項1に記載のサーバ装置。 - 前記第2の制御部は、
前記第1の制御部が呼び出すライブラリが、前記第2の制御部の起動から何回目のロード処理によって取得したライブラリであるかを示す呼出世代情報と、前記第2の制御部がロード完了したライブラリが、前記第2の制御部の起動から何回目のロード処理によって取得したライブラリであるかを示すロード世代情報とを含んで構成される世代情報を作成し、
前記新たなライブラリのロードが完了した場合、前記ロード世代情報を更新し、
前記第1の制御部は、
前記呼出世代情報と前記ロード世代情報とが異なる場合、前記呼出世代情報を前記ロード世代情報と同一となるように更新し、前記新たなライブラリの格納領域を前記呼出ライブラリ格納領域に設定する
ことを特徴とする請求項1に記載のサーバ装置。 - サーバ装置の制御方法であって、
第1の制御部が、ロードが完了したライブラリを格納する呼出ライブラリ格納領域から前記ライブラリを呼び出して、クライアント装置からの要求を処理する第1のステップと、
第2の制御部が、前記第1の制御部と非同期に、前記呼出ライブラリ格納領域と異なる格納領域に新たなライブラリをロードする第2のステップと
を備え、
前記第1のステップでは、
前記第2のステップによる前記新たなライブラリのロードが完了した場合、前記新たなライブラリの格納領域を前記呼出ライブラリ格納領域に設定する
ことを特徴とするサーバ装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009273515A JP2011118522A (ja) | 2009-12-01 | 2009-12-01 | サーバ装置及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009273515A JP2011118522A (ja) | 2009-12-01 | 2009-12-01 | サーバ装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011118522A true JP2011118522A (ja) | 2011-06-16 |
Family
ID=44283797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009273515A Pending JP2011118522A (ja) | 2009-12-01 | 2009-12-01 | サーバ装置及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011118522A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016095602A (ja) * | 2014-11-13 | 2016-05-26 | 京セラドキュメントソリューションズ株式会社 | 電子機器およびプログラム |
JP2016173707A (ja) * | 2015-03-17 | 2016-09-29 | 日本電気株式会社 | トランザクション処理装置、トランザクション処理方法及び制御プログラム |
-
2009
- 2009-12-01 JP JP2009273515A patent/JP2011118522A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016095602A (ja) * | 2014-11-13 | 2016-05-26 | 京セラドキュメントソリューションズ株式会社 | 電子機器およびプログラム |
US9652304B2 (en) | 2014-11-13 | 2017-05-16 | Kyocera Document Solutions Inc. | Electronic apparatus that uses program from another program working on different platforms, and method |
JP2016173707A (ja) * | 2015-03-17 | 2016-09-29 | 日本電気株式会社 | トランザクション処理装置、トランザクション処理方法及び制御プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5911892B2 (ja) | ハイバネイトからの多段レジューム | |
JP5026494B2 (ja) | 高速で起動するコンピュータ | |
JP5093259B2 (ja) | Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム | |
JP2013520744A (ja) | 最小ブートイメージの生成方法及びその装置 | |
US9043806B2 (en) | Information processing device and task switching method | |
JP2009205254A (ja) | 計算機、ダンププログラムおよびダンプ方法 | |
JP2010055184A (ja) | 情報処理装置およびメモリ管理方法 | |
TWI450090B (zh) | 關於改變程式之啟動列表以判定電腦系統性能是否增進之方法及系統 | |
JP2011118522A (ja) | サーバ装置及びその制御方法 | |
WO2000054133A1 (fr) | Dispositif de traitement de donnees, procede de sauvegarde/chargement de donnees et support de memorisation de donnees | |
JP6079777B2 (ja) | 管理装置、データ取得方法およびデータ取得プログラム | |
JP6379599B2 (ja) | 適用判定プログラム、適用判定方法、及び適用判定装置 | |
US10417041B2 (en) | Moving a software application in a system cluster | |
JP2013222372A (ja) | 電子機器 | |
JP2017162311A (ja) | スマート装置、優先処理方法及び優先処理プログラム | |
JP2006139696A (ja) | データ復元方法、及びデータ復元プログラム | |
JPH09171469A (ja) | プログラム動作制御方法およびプログラム動作制御システム | |
JP2006277047A (ja) | データ処理装置およびマルチスレッドシステムにおけるアプリケーションプログラムの動的置換方法 | |
JP2013246646A (ja) | 情報処理装置及びデータ読出方法 | |
CN109800013B (zh) | 服务器应用功能热扩展的方法和***及可读存储介质 | |
JP5086723B2 (ja) | 情報処理装置、情報処理方法、情報処理プログラム、及び記憶媒体 | |
JP7197131B2 (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2010277495A (ja) | 圧縮記録装置および圧縮記録方法 | |
JP2005228272A (ja) | 圧縮プログラム、圧縮方法、解凍プログラム、解凍方法 | |
JP2011053908A (ja) | ブート時間を短縮するコンピュータ・プログラム |