JP2009289054A - Server computer for cluster system, and application clustering possibility determination support program - Google Patents

Server computer for cluster system, and application clustering possibility determination support program Download PDF

Info

Publication number
JP2009289054A
JP2009289054A JP2008141263A JP2008141263A JP2009289054A JP 2009289054 A JP2009289054 A JP 2009289054A JP 2008141263 A JP2008141263 A JP 2008141263A JP 2008141263 A JP2008141263 A JP 2008141263A JP 2009289054 A JP2009289054 A JP 2009289054A
Authority
JP
Japan
Prior art keywords
application
server
hook
application program
program interface
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
Application number
JP2008141263A
Other languages
Japanese (ja)
Inventor
Tetsuya Iinuma
哲也 飯沼
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008141263A priority Critical patent/JP2009289054A/en
Publication of JP2009289054A publication Critical patent/JP2009289054A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide information, which shows conditions of accessing server unique information having possibility of disturbing the clustering of an application, to a user. <P>SOLUTION: A hook mechanism 222 of a hook library mechanism 22 hooks the calling of an application program interface (API) for performing access from an application 130 to server unique information based on a hook library stored in a hook library storage part 221. The hook mechanism 222 performs hooked calling. An access management mechanism 224 records access to the server unique information based on the hooked calling of the API in an access management table 223. A state notification mechanism 226 notifies a user of information, shown by the access management table 223, which shows the circumstances of access from the application 130 to the server unique information. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、クラスタシステムに用いられるサーバ計算機に係り、特にアプリケーションのクラスタ化の可能性の判定を支援するのに好適なクラスタシステム向けサーバ計算機及びアプリケーションクラスタ化可能性判定支援プログラムに関する。   The present invention relates to a server computer used in a cluster system, and more particularly to a server computer for a cluster system and an application clusterability determination support program suitable for supporting determination of the possibility of application clustering.

従来から、複数のサーバ計算機(サーバ)から構成されるクラスタシステムが知られている。このクラスタシステムの特徴は、アプリケーション(特定アプリケーション)の実行によってユーザに提供されるサービスを、当該アプリケーションの障害、或いは当該アプリケーションを実行するサーバの障害が発生しても、当該ユーザに提供し続けることができる点にある。   Conventionally, a cluster system including a plurality of server computers (servers) is known. A feature of this cluster system is that services provided to a user by executing an application (specific application) continue to be provided to the user even if the application or a server that executes the application fails. There is in point that can.

クラスタシステムでは、当該システムを構成する複数のサーバのうちのあるサーバが稼動系サーバとなってアプリケーションを実行する。クラスタシステムにおいて、アプリケーション自体、或いは当該アプリケーションを実行するサーバに障害が発生した場合、当該システムを構成する他のサーバで同一のアプリケーションを実行し直すことにより、ユーザへ提供するサービスの継続が実現される。以下の説明では、障害が発生したサーバだけでなく、障害が発生したアプリケーションを実行するサーバも、障害発生サーバと呼ぶ。一方、アプリケーションを実行し直すサーバ、つまりアプリケーションの実行(サービス)を引き継ぐサーバを引き継ぎ先サーバと呼ぶ。   In a cluster system, a server among a plurality of servers constituting the system serves as an active server and executes an application. In the cluster system, when a failure occurs in the application itself or the server that executes the application, the same application is re-executed on another server that constitutes the system, so that the service provided to the user can be continued. The In the following description, not only a server in which a failure has occurred but also a server that executes an application in which a failure has occurred is referred to as a failure server. On the other hand, a server that re-executes an application, that is, a server that takes over execution (service) of an application is called a takeover destination server.

クラスタシステムには、サービスの提供を受けるユーザに対して、障害によってアプリケーションを実行するサーバが変わったことを意識させないための仕組みが用意される。この仕組みによれば、上述のようなサービスの継続のために、つまりサービスの連続性を保つために、当該システムを構成するサーバの間で、アプリケーションの利用するデータが共有される。また、障害発生サーバと引き継ぎ先サーバができる限り同じ条件で動作するように、環境(を示す環境情報)の引き継ぎも行われる。   The cluster system is provided with a mechanism for preventing the user who receives the service from being aware that the server that executes the application has changed due to a failure. According to this mechanism, in order to continue the service as described above, that is, in order to maintain the continuity of the service, the data used by the application is shared between the servers constituting the system. In addition, the environment (indicating environment information) is also taken over so that the failed server and the takeover destination server operate under the same conditions as much as possible.

このようなクラスタシステムでアプリケーションが利用可能なためには、つまりアプリケーションのクラスタ化(クラスタ構成化)が可能であるためには、幾つかの条件を必要とする。例えば、サービスの継続のためにアプリケーションを実行するサーバが変わると、当該アプリケーションがハードウェア(HW)やサーバに固有の情報、例えばホストID(HostID)、MAC(Media Access Control)アドレス(物理アドレス)、サーバシリアル番号のようなサーバ固有情報に依存した動作をするものである場合、当該アプリケーションはクラスタ化できない可能性がある。つまり、アプリケーション内部で発生するサーバ固有情報へのアクセスは、当該アプリケーションのクラスタ化を阻害する可能性がある。このため従来は、アプリケーションのクラスタ化の可能性を判断するのに必要な確認ポイントをまとめたチェックシートなどを用いて、当該アプリケーションを利用するユーザがクラスタ化の可能性を判定するのが一般的であった。   In order to be able to use an application in such a cluster system, that is, to be able to cluster an application (cluster configuration), several conditions are required. For example, when the server that executes an application changes for service continuation, the application has information specific to the hardware (HW) or server, for example, a host ID (Host ID), a MAC (Media Access Control) address (physical address) If the operation depends on server-specific information such as a server serial number, the application may not be clustered. That is, access to server-specific information that occurs inside an application may hinder the clustering of the application. For this reason, it has been common for users using the application to determine the possibility of clustering using a check sheet that summarizes the confirmation points necessary to determine the possibility of application clustering. Met.

ところでアプリケーションは、目的の処理を実行するために関数(アプリケーションプログラムインタフェース:API)を呼び出す(コールする)のが一般的である。もし、アプリケーションが呼び出す関数(API)の関数名(API名)を、他の名前に置き換えて、この置き換えられた関数名と同じ名を持つ関数を実行するならば、関数の変更なしに機能を拡張することができる(例えば特許文献1参照)。
特開平11−110194号公報
Incidentally, an application generally calls (calls) a function (application program interface: API) in order to execute a target process. If the function name (API name) of the function (API) called by the application is replaced with another name and a function having the same name as the replaced function name is executed, the function can be changed without changing the function. It can be expanded (see, for example, Patent Document 1).
JP-A-11-110194

アプリケーションのクラスタ化が可能であるための判定に用いられる情報として、上述のホストID、MACアドレス、サーバシリアル番号のようなサーバ固有情報が挙げられる。このようなサーバ固有情報は、クラスタシステムを構成する複数のサーバで共有されるデータ(共有データ)に含まれているのが一般的である。   Server-specific information such as the host ID, the MAC address, and the server serial number described above can be used as information used for determination that application clustering is possible. Such server-specific information is generally included in data (shared data) shared by a plurality of servers constituting the cluster system.

しかし、サーバ固有情報には、アプリケーションの外部仕様や機能からユーザが独自に判断できるものと、仕様が公開されておらず、アプリケーションの開発者でないと分からない内部情報的なものとがある。内部情報的なサーバ固有情報、つまり外部から隠蔽されるサーバ固有情報へのアクセスについては、ユーザ(エンドユーザ)側で完全にチェックすることは困難である。また、外部から隠蔽されるサーバ固有情報についての事前の検証で、アプリケーションのクラスタ化が可能であると判定されても、運用時に、当該アプリケーションの特定の使用方法で問題になる場合がある。同様に、OSやアプリケーションのアップデート後の仕様変更で問題になる場合もある。このため、サーバ固有情報についての事前の検証のみでは、アプリケーションのクラスタ化が可能であるかを、全ての可能性を考慮して確認することは難しい。   However, server-specific information includes information that can be independently determined by the user from the external specifications and functions of the application, and internal information that is not disclosed to the user and cannot be understood by an application developer. It is difficult for a user (end user) to completely check access to internal server-specific information, that is, server-specific information hidden from the outside. Even if it is determined that application clustering is possible by prior verification of server-specific information hidden from the outside, there may be a problem in a specific usage method of the application during operation. Similarly, there may be a problem when the specification changes after updating the OS or application. For this reason, it is difficult to confirm whether or not application clustering is possible by considering only the server verification information in advance, considering all possibilities.

本発明は上記事情を考慮してなされたものでその目的は、アプリケーションのクラスタ化を阻害する可能性がある、当該アプリケーションの内部で隠れて利用されるサーバ固有情報へのアクセスの状況を示す情報をユーザに提供できる、クラスタシステム向けサーバ計算機及びアプリケーションのクラスタ化可能性判定支援プログラムを提供することにある。   The present invention has been made in consideration of the above circumstances, and its purpose is information indicating the status of access to server-specific information that is hidden inside the application and may hinder application clustering. Is to provide a cluster system server computer and an application clusterability possibility determination support program.

本発明の1つの観点によれば、ユーザに対してサービスを提供するための特定アプリケーションの実行が可能なクラスタシステム向けサーバ計算機が提供される。このクラスタシステム向けサーバ計算機は、前記サーバ計算機に固有のサーバ固有情報を取得するための第1のアプリケーションプログラムインタフェースの集合を含むシステムライブラリを予め格納したシステムライブラリ記憶手段と、前記第1のアプリケーションプログラムインタフェースの呼び出しを受けて、当該第1のアプリケーションプログラムインタフェースを呼び出し元に提供するアプリケーションプログラムインタフェース提供手段と、前記第1のアプリケーションプログラムインタフェースに対応付けられ、当該第1のアプリケーションプログラムインタフェースがフックされた際の動作を定義した第2のアプリケーションプログラムインタフェースの集合を含むフックライブラリを予め格納したフックライブラリ記憶手段と、前記フックライブラリ記憶手段に格納されている前記フックライブラリに基づき、前記特定アプリケーションからの前記第1のアプリケーションプログラムインタフェースの呼び出しをフックするフック手段であって、前記フックライブラリにおいて当該フックされた第1のアプリケーションプログラムインタフェースに対応付けられている前記第2のアプリケーションプログラムインタフェースに従い、当該フックされた第1のアプリケーションプログラムインタフェースを呼び出すフック手段と、前記特定アプリケーションからの前記第1のアプリケーションプログラムインタフェースの呼び出しに基づく前記サーバ固有情報へのアクセスを記録するのに用いられるアクセス管理テーブルと、前記フック手段によって前記第1のアプリケーションプログラムインタフェースの呼び出しがフックされた場合に、当該第1のアプリケーションプログラムインタフェースの呼び出しに基づく前記サーバ固有情報へのアクセスを前記アクセス管理テーブルに記録するアクセス管理手段と、前記アクセス管理テーブルによって示される、前記特定アプリケーションからの前記サーバ固有情報へのアクセスの状況を示す情報をユーザに通知するための状態通知手段とを具備する。   According to one aspect of the present invention, a server computer for a cluster system capable of executing a specific application for providing a service to a user is provided. The server computer for a cluster system includes a system library storage unit that stores in advance a system library including a set of first application program interfaces for acquiring server-specific information unique to the server computer, and the first application program In response to the interface call, the application program interface providing means for providing the first application program interface to the caller and the first application program interface are associated with the first application program interface, and the first application program interface is hooked Hook library memory that pre-stores a hook library that includes a second set of application program interfaces that define the operation at the time And hook means for hooking a call to the first application program interface from the specific application based on the hook library stored in the hook library storage means, the hook library being hooked in the hook library Hook means for calling the hooked first application program interface in accordance with the second application program interface associated with one application program interface, and calling the first application program interface from the specific application And an access management table used to record access to the server specific information based on the first means by the hook means. An access management means for recording, in the access management table, access to the server-specific information based on the call to the first application program interface when the application program interface call is hooked; and the access management table And status notification means for notifying the user of information indicating the status of access to the server specific information from the specific application.

本発明によれば、特定アプリケーションの運用状態で、当該特定アプリケーションの内部で隠れて利用されるサーバ固有情報へのアクセス(つまり、当該特定アプリケーションのクラスタ化を阻害する可能性があるサーバ固有情報へのアクセス)のための、当該特定アプリケーションからの呼び出し(第1のアプリケーションプログラムインタフェースの呼び出し)をフックすることにより、ユーザが当該特定アプリケーションのクラスタ化の可能性を判定するのに利用可能な、サーバ固有情報へのアクセスの状況を示す情報を提供することができる。   According to the present invention, in the operating state of a specific application, access to server-specific information that is used hidden inside the specific application (that is, to server-specific information that may hinder the clustering of the specific application) The server can be used by the user to determine the possibility of clustering of the specific application by hooking the call from the specific application (call of the first application program interface) for Information indicating the status of access to the unique information can be provided.

以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るクラスタシステム向けサーバ計算機のハードウェア構成を示すブロック図である。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a hardware configuration of a server computer for a cluster system according to an embodiment of the present invention.

図1において、サーバ計算機(以下、サーバと称する)10は、それぞれ、CPU11と、主メモリ12とを含む。サーバ10は、例えば磁気ディスク装置のような外部記憶装置13と接続されている。外部記憶装置13は、サーバ10の筐体(図示せず)内に配置されている。つまりサーバ10は、CPU11及び主メモリ12に加えて、外部記憶装置13を有している。   In FIG. 1, a server computer (hereinafter referred to as a server) 10 includes a CPU 11 and a main memory 12. The server 10 is connected to an external storage device 13 such as a magnetic disk device. The external storage device 13 is disposed in a housing (not shown) of the server 10. That is, the server 10 has an external storage device 13 in addition to the CPU 11 and the main memory 12.

外部記憶装置13には、アプリケーション130が格納されている。アプリケーション130は、クラスタシステムを利用するクライアント端末(のユーザ)に、サービスを提供するのに用いられる特定のアプリケーションプログラム(特定アプリケーション)である。アプリケーション130は、サーバ10の主メモリ12にロードされて(読み込まれて)実行される。   An application 130 is stored in the external storage device 13. The application 130 is a specific application program (specific application) used to provide a service to a client terminal (user) using the cluster system. The application 130 is loaded (read) and executed in the main memory 12 of the server 10.

外部記憶装置13にはまた、アプリケーション130のクラスタ化の可能性の判定を支援するのに用いられるアプリケーションクラスタ化可能性判定支援プログラム131も格納されている。プログラム131は、サーバ10の主メモリ12にロードされて実行される。   The external storage device 13 also stores an application clustering possibility determination support program 131 that is used to support determination of the possibility of clustering of the application 130. The program 131 is loaded into the main memory 12 of the server 10 and executed.

図2は、図1に示されるサーバ10の主として機能構成を示すブロック図である。
サーバ10は、図2に示されるように、システムライブラリ機構21及びフックライブラリ機構22を含む。
FIG. 2 is a block diagram mainly showing a functional configuration of the server 10 shown in FIG.
The server 10 includes a system library mechanism 21 and a hook library mechanism 22 as shown in FIG.

システムライブラリ機構21は、システムライブラリ記憶部211及びアプリケーションプログラムインタフェース提供機構(API提供機構)212から構成される。システムライブラリ機構21は、サーバ10の例えば図示せぬオペレーティングシステム(OS)に設けられる。   The system library mechanism 21 includes a system library storage unit 211 and an application program interface providing mechanism (API providing mechanism) 212. The system library mechanism 21 is provided in, for example, an operating system (OS) (not shown) of the server 10.

システムライブラリ記憶部211は、システムコールのような標準的な呼び出し(関数呼び出し)に応じて呼び出し元に関数(アプリケーションプログラムインタフェース:API)を提供するのに用いられるシステムライブラリを格納する。システムライブラリは、上記呼び出しによって外部から参照可能な各種の関数(システム関数またはシステムライフライブラリ関数)の集合である。システムライブラリ記憶部211は、例えば図1に示される外部記憶装置13の記憶領域の一部を用いて実現される。   The system library storage unit 211 stores a system library used to provide a function (application program interface: API) to a caller according to a standard call (function call) such as a system call. The system library is a set of various functions (system function or system life library function) that can be referred to from the outside by the above call. The system library storage unit 211 is realized by using a part of the storage area of the external storage device 13 shown in FIG.

API提供機構212は、アプリケーション130または後述するフック機構23からの関数(API)呼び出しに応じて、システムライブラリ記憶部211に格納されているシステムライブラリの中から指定された関数(API)を呼び出す。API提供機構212は、呼び出された関数(API)を呼び出し元に提供する。   The API providing mechanism 212 calls a function (API) designated from the system library stored in the system library storage unit 211 in response to a function (API) call from the application 130 or the hook mechanism 23 described later. The API providing mechanism 212 provides a called function (API) to the caller.

フックライブラリ機構22は、フックライブラリ記憶部221、フック機構222、アクセス管理テーブル223、アクセス管理機構224、状態判定機構225及び状態通知機構226から構成される。   The hook library mechanism 22 includes a hook library storage unit 221, a hook mechanism 222, an access management table 223, an access management mechanism 224, a state determination mechanism 225, and a state notification mechanism 226.

フックライブラリ記憶部221は、フックライブラリを格納する。フックライブラリは、システムライブラリを構成するシステム関数の集合のうち、例えばサーバ10に固有の情報(サーバ固有情報)毎に用意される、当該サーバ固有情報へのアクセスに用いられるシステム関数(API)の集合に対応させて予め用意されるフック関数の集合である。フックライブラリに含まれる各フック関数(第2の関数)は、当該フック関数に対応するシステム関数(第1の関数)の関数名と対応付けて、フックライブラリ記憶部221に格納されている。フックライブラリ記憶部221は、例えば図1に示される外部記憶装置13の記憶領域の一部を用いて実現される。なお、ライブラリ参照の高速化のために、外部記憶装置13(システムライブラリ記憶部211及びフックライブラリ記憶部221)に格納されているシステムライブラリ及びフックライブラリが、サーバ10の起動時に当該外部記憶装置13から主メモリ12の所定領域にロードされる構成であっても構わない。   The hook library storage unit 221 stores a hook library. The hook library is a system function (API) that is prepared for each piece of information specific to the server 10 (server specific information), for example, among the set of system functions that constitute the system library, and is used for accessing the server specific information. This is a set of hook functions prepared in advance corresponding to the set. Each hook function (second function) included in the hook library is stored in the hook library storage unit 221 in association with the function name of the system function (first function) corresponding to the hook function. The hook library storage unit 221 is realized by using a part of the storage area of the external storage device 13 shown in FIG. In order to speed up library reference, the system library and the hook library stored in the external storage device 13 (the system library storage unit 211 and the hook library storage unit 221) are stored in the external storage device 13 when the server 10 is started. Alternatively, it may be configured to be loaded into a predetermined area of the main memory 12.

フック機構222は、アプリケーション130からの関数(第1の関数)の呼び出し(コール)をフック(横取り)する。フック機構222は、自身がフックした関数呼び出しで指定される関数名のシステム関数と対応付けられているフック関数を呼び出して、アクセス管理機構224、状態判定機構225及び状態通知機構226と共に、当該フック関数に固有の処理を行う。   The hook mechanism 222 hooks a call (call) of a function (first function) from the application 130. The hook mechanism 222 calls a hook function associated with a system function having a function name specified by a function call hooked by itself, and together with the access management mechanism 224, the state determination mechanism 225, and the state notification mechanism 226, the hook mechanism Performs processing specific to the function.

フック関数に固有の処理は、第1乃至第5の処理に大別される。第1の処理は、フック機構222がフックした関数呼び出しで指定されるシステム関数をシステムライブラリ機構21から呼び出すための処理である。第2の処理は、呼び出されたシステム関数の処理結果(返り値)をアプリケーション130に返すための処理である。フック機構222は、この第1及び第2の処理を実行する。   Processing unique to the hook function is roughly divided into first to fifth processing. The first process is a process for calling the system function designated by the function call hooked by the hook mechanism 222 from the system library mechanism 21. The second process is a process for returning the processing result (return value) of the called system function to the application 130. The hook mechanism 222 executes the first and second processes.

アクセス管理テーブル223は、予め定められたサーバ固有情報毎に、当該固有情報へのアプリケーション130からのアクセス(参照)を管理するのに用いられる。ここでは、ホストID(HostID)、MACアドレス、サーバシリアル番号のような、サーバ10が持つ(サーバ10に割り当てられる)、当該サーバ10に固有のサーバ固有情報が、アクセス管理テーブル223によって管理される。アクセス管理テーブル223は、例えば、図1に示される主メモリ12の記憶領域の一部を用いて実現される。各サーバ固有情報にアクセスするためのシステム関数(API)は予め定められている。   The access management table 223 is used to manage access (reference) from the application 130 to the specific information for each predetermined server specific information. Here, server-specific information unique to the server 10 that the server 10 has (assigned to the server 10), such as a host ID (Host ID), MAC address, and server serial number, is managed by the access management table 223. . The access management table 223 is realized using, for example, a part of the storage area of the main memory 12 shown in FIG. A system function (API) for accessing each server-specific information is predetermined.

図3は、図2に示されるアクセス管理テーブル223のデータ構造例を示す。
アクセス管理テーブル223は、予め定められたサーバ固有情報毎に当該固有情報へのアクセス回数を保持するためのエントリの群から構成される。アクセス管理テーブル223の各エントリは、サーバ固有情報及びアクセス回数(当該固有情報へのアクセス回数)を保持するための欄(サーバ固有情報欄及びアクセス回数欄)を含む。つまり、アクセス管理テーブル223は、予め定められたサーバ固有情報の各々に対応付けて、当該固有情報へのアクセス回数を保持する。
FIG. 3 shows an example of the data structure of the access management table 223 shown in FIG.
The access management table 223 includes a group of entries for holding the number of accesses to the specific information for each predetermined server specific information. Each entry of the access management table 223 includes columns (server specific information column and access count column) for holding server specific information and the number of accesses (the number of accesses to the specific information). That is, the access management table 223 holds the number of accesses to the specific information in association with each predetermined server specific information.

再び図2を参照すると、アクセス管理機構224は、フック機構222によってフックされた関数呼び出しに応じて関数(API)が呼び出されて、呼び出された関数(API)の実行によってサーバ10の固有情報(サーバ固有情報)23がアクセス(参照)される際に第3の処理を実行する。第3の処理は、アクセス管理テーブル223内で当該固有情報23に対応付けられているアクセス回数(参照回数)を1インクリメントするための処理である。ここで、サーバ固有情報23は外部記憶装置13に格納されているものとする。   Referring again to FIG. 2, the access management mechanism 224 calls the function (API) in response to the function call hooked by the hook mechanism 222, and executes the called function (API) to identify the unique information ( When the server specific information) 23 is accessed (referenced), the third process is executed. The third process is a process for incrementing the access count (reference count) associated with the specific information 23 in the access management table 223 by one. Here, it is assumed that the server specific information 23 is stored in the external storage device 13.

状態判定機構225は、アクセス管理テーブル223に保持されているサーバ固有情報毎のアクセス回数を監視することによって、当該アクセス回数が閾値を超えたかを判定するための処理(第4の処理)を実行する。状態通知機構226は、アプリケーション130からのサーバ固有情報へのアクセスの状況を示す情報(アクセス状況情報)を生成して、当該生成された情報をユーザに通知するための処理(第5の処理)を実行する。本実施形態では状態通知機構226は、アクセス状況情報として、状態判定機構225によって閾値を超えたと判定されたアクセス回数と対応付けられているサーバ固有情報が、ユーザ(例えばシステム管理者)に通知される。   The state determination mechanism 225 performs a process (fourth process) for determining whether the number of accesses exceeds a threshold by monitoring the number of accesses for each server-specific information held in the access management table 223. To do. The status notification mechanism 226 generates information (access status information) indicating the status of access to the server-specific information from the application 130, and notifies the user of the generated information (fifth processing). Execute. In the present embodiment, the state notification mechanism 226 notifies the user (for example, a system administrator) server-specific information associated with the number of accesses determined to have exceeded the threshold by the state determination mechanism 225 as the access status information. The

次に、本実施形態の動作について、サーバ10上で動作しているアプリケーション130からシステム関数fun1()の呼び出し(コール)が行われた場合を例に、図4のフローチャートを参照して説明する。   Next, the operation of the present embodiment will be described with reference to the flowchart of FIG. 4, taking as an example a case where the system function fun1 () is called from the application 130 operating on the server 10. .

サーバ10上で動作するアプリケーション130は、従来であれば、システムライブラリ機構21(のシステムライブラリ記憶部211に格納されているシステムライブラリ)を当該アプリケーション130自身にリンクすることにより、システムコールを実行する。これに対して本実施形態では、アプリケーション130とシステムライブラリ機構21との間に、フックライブラリ機構22が論理的に配置される。   Conventionally, the application 130 operating on the server 10 executes a system call by linking the system library mechanism 21 (the system library stored in the system library storage unit 211) to the application 130 itself. . On the other hand, in the present embodiment, the hook library mechanism 22 is logically arranged between the application 130 and the system library mechanism 21.

今、アプリケーション130からシステム関数(API)fun1()の呼び出しが行われたものとする(ステップS1)。するとフックライブラリ機構22のフック機構222は、以下に述べるように、フックライブラリ記憶部221に格納されているフックライブラリに基づき、当該fun1()の呼び出しをフックする(ステップS2)。   It is assumed that the system function (API) fun1 () is called from the application 130 (step S1). Then, the hook mechanism 222 of the hook library mechanism 22 hooks the call of fun1 () based on the hook library stored in the hook library storage unit 221 as described below (step S2).

システム関数fun1()は、サーバ10に固有の情報(サーバ固有情報)23にアクセスするためのAPI(アプリケーションプログラムインタフェース)であるものとする。このサーバ固有情報23が例えばホストIDの場合、システム関数fun1()は、gethostid()というAPIである。   The system function fun1 () is assumed to be an API (application program interface) for accessing information (server specific information) 23 unique to the server 10. When this server specific information 23 is, for example, a host ID, the system function fun1 () is an API called getostid ().

システム関数fun1()の呼び出しは、当該fun1()の関数名と引数とを含む。フックライブラリ記憶部221に格納されているフックライブラリには、このfun1()の関数名に対応付けて、フック関数FUN1()が設定されているものとする。この場合、フック機構222は、アプリケーション130からのfun1()の呼び出しをフックする。これによりフックライブラリ機構22は、アプリケーション130がシステムライブラリ機構21を当該アプリケーション130自身にリンクするのを抑止する。このような関数呼び出しをフックする動作は、前記特許文献1に記載されているようなライブラリフック技術を用いて実現される。   The call of the system function fun1 () includes the function name of the fun1 () and an argument. It is assumed that the hook function FUN1 () is set in the hook library stored in the hook library storage unit 221 in association with the function name of fun1 (). In this case, the hook mechanism 222 hooks the call of fun1 () from the application 130. As a result, the hook library mechanism 22 prevents the application 130 from linking the system library mechanism 21 to the application 130 itself. Such an operation of hooking a function call is realized by using a library hook technique as described in Patent Document 1.

なお、フックライブラリに、fun1()の関数名に対応付けてフック関数が格納されていないならば、フック機構222は、当該fun1()の呼び出しをフックしない。この場合、fun1()の呼び出しは、システムライブラリ機構21のAPI提供機構212に入力される。   If the hook function is not stored in the hook library in association with the function name of fun1 (), the hook mechanism 222 does not hook the call of fun1 (). In this case, the call of fun1 () is input to the API providing mechanism 212 of the system library mechanism 21.

フック機構222は、システム関数fun1()の呼び出しをフックすると(ステップS2)、フックされたfun1()の関数名に対応付けてフックライブラリに設定されているフック関数FUN1()を呼び出す(ステップS3)。つまり、アプリケーション130からのfun1()の呼び出しに対して、システムライブラリ記憶部211に格納されているシステムライブラリからシステム関数fun1()が呼び出される代わりに、フックライブラリ記憶部221に格納されているフックライブラリからフック関数FUN1()が呼び出される。   When hooking the call to the system function fun1 () (step S2), the hook mechanism 222 calls the hook function FUN1 () set in the hook library in association with the function name of the hooked fun1 () (step S3). ). That is, instead of calling the system function fun1 () from the system library stored in the system library storage unit 211 in response to the call of fun1 () from the application 130, the hook stored in the hook library storage unit 221. The hook function FUN1 () is called from the library.

fun1()が、gethostid()というAPI(システム関数)の場合、フックライブラリに用意されるフック関数(フックライブラリ関数)FUN1()には、例えばGETHOSTID()が用いられる。   When fun1 () is an API (system function) called getostid (), for example, GETHOSTID () is used as the hook function (hook library function) FUN1 () prepared in the hook library.

フック機構222によってフック関数FUN1()(例えばGETHOSTID())が呼び出されると、フックライブラリ機構22では、当該フック関数FUN1()に従い、当該フック関数FUN1()に固有の処理が、フック機構222、アクセス管理機構224、状態判定機構225及び状態通知機構226によって次のように実行される。   When the hook function FUN1 () (for example, GETHOSTID ()) is called by the hook mechanism 222, the hook library mechanism 22 performs processing unique to the hook function FUN1 () according to the hook function FUN1 (). The access management mechanism 224, the state determination mechanism 225, and the state notification mechanism 226 are executed as follows.

まずフック機構222は、自身がフックした関数呼び出しで指定される関数名のシステム関数fun1()の実行によってアクセスされるべきサーバ固有情報23をアクセス管理機構224に通知する。ここで、システム関数fun1()の実行によってアクセスされるべきサーバ固有情報23は予め定められていることに注意する。そこで、フックライブラリに、fun1()の関数名に対応付けて、フック関数FUN1()だけでなくサーバ固有情報23も設定される構成としてもよい。   First, the hook mechanism 222 notifies the access management mechanism 224 of server-specific information 23 to be accessed by executing the system function fun1 () having the function name specified by the function call hooked by itself. Note that the server specific information 23 to be accessed by executing the system function fun1 () is predetermined. Therefore, the hook library may be configured so that not only the hook function FUN1 () but also the server specific information 23 is set in association with the function name of fun1 ().

アクセス管理機構224は、通知されたサーバ固有情報23に基づき、当該固有情報23に対応付けてアクセス管理テーブル223に保持されているアクセス回数を1だけカウントアップ(インクリメント)する(ステップS4)。したがって、fun1()が上記getohotid()であるならば、アクセス管理テーブル223において、ホストIDに対応付けて保持されているアクセス回数が1カウントアップされる。   Based on the notified server specific information 23, the access management mechanism 224 increments the number of accesses held in the access management table 223 in association with the specific information 23 by 1 (step S4). Therefore, if fun1 () is the above-mentioned gethotid (), the access count held in association with the host ID in the access management table 223 is incremented by one.

このように本実施形態においては、サーバ固有情報へのアクセスはユーザの関与しないアプリケーション130で行われるにも拘わらずに、つまり隠れたサーバ固有情報へのアクセスであるにも拘わらずに、当該隠れたサーバ固有情報へのアクセスをアクセス管理テーブル223に記録することができる。   As described above, in this embodiment, although the server-specific information is accessed by the application 130 not involving the user, that is, the hidden server-specific information is accessed regardless of the hidden server-specific information. The access to the server specific information can be recorded in the access management table 223.

状態判定機構225は、アクセス管理機構224によってカウントアップされたアクセス回数(カウント値)が、予め定められた閾値を超えているかを判定する(ステップS5)。   The state determination mechanism 225 determines whether the access count (count value) counted up by the access management mechanism 224 exceeds a predetermined threshold (step S5).

もし、カウントアップ後のアクセス回数が閾値を超えていないならば(ステップS5がNO)、直ちにフック機構222に制御が戻される。するとフック機構222は、自身がフックしたfun1()の呼び出しを、アプリケーション130に代わって行う(ステップS6)。このフック機構222からのfun1()の呼び出しに応じて、システムライブラリ機構21のAPI提供機構212は、システムライブラリ記憶部211に格納されているシステムライブラリから、当該fun1()を呼び出して実行する(ステップS7)。このように、フック機構222がフックしたfun1()の呼び出しが当該フック機構222によって行われることで、従来におけるアプリケーション130からのfun1()の呼び出し時と同様に、当該fun1()がシステムライブラリ機構21のAPI提供機構212によって実行される。これにより、サーバ固有情報23へのアクセス(サーバ固有情報23の参照)が行われる(ステップS8)。   If the number of accesses after counting up does not exceed the threshold (step S5 is NO), the control is immediately returned to the hook mechanism 222. Then, the hook mechanism 222 calls fun1 () hooked by itself instead of the application 130 (step S6). In response to the call of fun1 () from the hook mechanism 222, the API providing mechanism 212 of the system library mechanism 21 calls and executes the fun1 () from the system library stored in the system library storage unit 211 ( Step S7). As described above, the call of fun1 () hooked by the hook mechanism 222 is performed by the hook mechanism 222, so that the fun1 () becomes the system library mechanism in the same manner as when fun1 () is called from the application 130 in the related art. 21 API providing mechanisms 212. Thereby, access to the server specific information 23 (referring to the server specific information 23) is performed (step S8).

API提供機構212は、フック機構222によって呼び出されたfun1()の実行結果、つまりサーバ固有情報23へのアクセスの結果を、返り値として呼び出し元のフック機構222に返す。フック機構222は、API提供機構212から返された返り値(サーバ固有情報23)を、アプリケーション130に返す。このように本実施形態では、アプリケーション130からのfun1()の呼び出しに応じて当該fun1()が実行された結果が、fun1()の呼び出しに対する返り値(サーバ固有情報23)として、フックライブラリ機構22(のフックライブラリ機構22)を介してアプリケーション130に返される(ステップS9)。   The API providing mechanism 212 returns the execution result of fun1 () called by the hook mechanism 222, that is, the result of access to the server specific information 23, as a return value to the calling hook mechanism 222. The hook mechanism 222 returns the return value (server specific information 23) returned from the API providing mechanism 212 to the application 130. As described above, in the present embodiment, the result of executing fun1 () in response to the call of fun1 () from the application 130 is used as the return value (server specific information 23) for the call of fun1 () as a hook library mechanism. 22 (the hook library mechanism 22) is returned to the application 130 (step S9).

アプリケーション130は、システムライブラリ機構21(内のAPI提供機構212)からフックライブラリ機構22(内のフック機構222)を介して返される返り値(サーバ固有情報23)を、当該アプリケーション130自身が行ったfun1()の呼び出しに対する返り値(サーバ固有情報23)として受け取る。これによりアプリケーション130は、フックライブラリ機構22(内のフック機構222)の動作に影響されずに、受け取った返り値(サーバ固有情報23)を利用した処理を行うことができる。つまり本実施形態においては、フックライブラリ機構22の動作がアプリケーション130の動作に何ら影響を及ぼすことはない。   The application 130 performed a return value (server specific information 23) returned from the system library mechanism 21 (internal API providing mechanism 212) via the hook library mechanism 22 (internal hook mechanism 222). Received as a return value (server-specific information 23) for the fun1 () call. As a result, the application 130 can perform processing using the received return value (server specific information 23) without being affected by the operation of the hook library mechanism 22 (the hook mechanism 222 therein). That is, in the present embodiment, the operation of the hook library mechanism 22 does not affect the operation of the application 130 at all.

以上の動作は、アプリケーション130によりシステム関数の呼び出しが行われる都度実行される。やがて、アプリケーション130からのfun1()の呼び出しが何回か行われた結果、サーバ固有情報23に対応付けてアクセス管理テーブル223に保持されているアクセス回数が閾値を超えたものとする。この場合、状態判定機構225はステップS5においてYESを判定して、状態通知機構226に制御を渡す。   The above operations are executed each time a system function is called by the application 130. Eventually, it is assumed that the number of accesses held in the access management table 223 in association with the server specific information 23 exceeds the threshold value as a result of several calls of fun1 () from the application 130. In this case, the state determination mechanism 225 determines YES in step S5, and passes control to the state notification mechanism 226.

すると状態通知機構226は、サーバ固有情報23へのアクセス回数が閾値を超えたことを示す情報を生成し、当該生成された情報をアプリケーション130からのサーバ固有情報へのアクセスの状況を示す情報として、例えば電子メールによりユーザ(システム管理者)に通知する(ステップS10)。ユーザは、この通知から、現在実行中のアプリケーション130はクラスタ化への影響の可能性が大きい、つまりアプリケーション130の障害または当該アプリケーション130を実行しているサーバ10の障害が発生した場合に、当該アプリケーション130の実行によってユーザに提供されるサービスを継続することは難しいと判断できる。   Then, the status notification mechanism 226 generates information indicating that the number of accesses to the server specific information 23 has exceeded the threshold, and uses the generated information as information indicating the status of access to the server specific information from the application 130. For example, the user (system administrator) is notified by e-mail (step S10). From this notification, when the application 130 currently being executed has a high possibility of affecting clustering, that is, when the failure of the application 130 or the failure of the server 10 executing the application 130 occurs, It can be determined that it is difficult to continue the service provided to the user by executing the application 130.

状態通知機構226は上記の通知を行うと、フック機構222に制御を戻す。これにより、カウントアップ後のアクセス回数が閾値を超えていない場合と同様に、上記ステップS6乃至S9が行われる。   When the state notification mechanism 226 makes the above notification, the state notification mechanism 226 returns control to the hook mechanism 222. As a result, the steps S6 to S9 are performed as in the case where the number of accesses after counting up does not exceed the threshold value.

なお、サーバ固有情報23へのアクセス回数が閾値を超えたことを、状態通知機構226からユーザに通知するのに、電子メール以外の通知手段を用いることも可能である。例えば、ユーザがクライアント端末を通して参照可能な特定のファイルに、サーバ固有情報23へのアクセス回数が閾値を超えたことを示す情報を状態通知機構226が書き込むようにしても構わない。   Note that notification means other than e-mail can be used to notify the user that the number of accesses to the server-specific information 23 has exceeded the threshold from the state notification mechanism 226. For example, the state notification mechanism 226 may write information indicating that the number of accesses to the server specific information 23 exceeds a threshold value in a specific file that can be referred to by the user through the client terminal.

また、状態判定機構225は必ずしも必要でない。ここで、フックライブラリ機構22のアクセス管理機構224は、例えば、アプリケーション130の実行期間に亘って、或いは当該アプリケーション130の例えば起動時から一定期間、当該アプリケーション130によるサーバ固有情報アクセスの回数をアクセス管理テーブル223に記録するものとする。この場合、状態通知機構226は上記の期間後に、アクセス管理テーブル223の内容を、アプリケーション130からのサーバ固有情報へのアクセスの状況を示す情報として、ユーザ(システム管理者)に通知すればよい。また上記の期間後に、状態通知機構226が状態判定機構225と連携することにより、アクセス回数が1以上のエントリ情報をアクセス管理テーブル223から選択してユーザに通知してもよい。ユーザは、状態通知機構226からの通知に基づき、現在実行中のアプリケーション130が、クラスタ化に影響する可能性のあるサーバ固有情報への隠れたアクセスを行うかを判断する。当然、アクセス回数が多いほど、アプリケーション130のクラスタ化への影響の可能性が大きくなる。   Further, the state determination mechanism 225 is not always necessary. Here, the access management mechanism 224 of the hook library mechanism 22 manages, for example, the number of times server-specific information is accessed by the application 130 over the execution period of the application 130 or, for example, for a certain period from the start of the application 130. It shall be recorded in the table 223. In this case, the status notification mechanism 226 may notify the user (system administrator) of the contents of the access management table 223 as information indicating the status of access to the server specific information from the application 130 after the above period. Further, after the above period, the state notification mechanism 226 may cooperate with the state determination mechanism 225 to select entry information with the access count of 1 or more from the access management table 223 and notify the user. Based on the notification from the status notification mechanism 226, the user determines whether the currently executing application 130 performs hidden access to server-specific information that may affect clustering. Of course, the greater the number of accesses, the greater the potential impact on application 130 clustering.

また、アクセス管理テーブル223の各エントリに、サーバ固有情報へアクセスするためのシステム関数の関数名を保持するのに用いられる関数名欄を追加してもよい。つまりアクセス管理テーブル223が、予め定められたサーバ固有情報及び当該固有情報へアクセスするためのシステム関数の関数名の対にそれぞれ対応付けて、当該固有情報へのアクセス回数を保持するものであっても構わない。この場合、フック機構222は、自身がフックした関数呼び出しで指定される関数名をアクセス管理機構224に通知すればよい。アクセス管理機構224は、通知された関数名に基づき、当該関数名に対応付けてアクセス管理テーブル223に保持されているアクセス回数をカウントアップすることができる。   Further, a function name column used to hold a function name of a system function for accessing server-specific information may be added to each entry of the access management table 223. In other words, the access management table 223 holds the number of accesses to the specific information in association with each pair of predetermined server specific information and a function name of a system function for accessing the specific information. It doesn't matter. In this case, the hook mechanism 222 may notify the access management mechanism 224 of the function name specified by the function call hooked by itself. Based on the notified function name, the access management mechanism 224 can count up the number of accesses held in the access management table 223 in association with the function name.

[第1の変形例]
次に、上記実施形態の第1の変形例について、図1を援用して説明する。
[First Modification]
Next, a first modification of the above embodiment will be described with reference to FIG.

まず、上記実施形態の特徴は、サーバ固有情報へのアクセス回数が多いほど、アプリケーション130のクラスタ化への影響の可能性が大きくなることに着目して、そのような状態を状態通知機構226によってユーザに通知することにある。これに対し、第1の変形例の特徴は、アプリケーション130を実行するサーバの切り替え時(つまりフェイルオーバ時)に、サーバ固有情報も変更されることに着目して、当該固有情報の変更がアプリケーション130に影響を与えるかを、サーバの切り替えを行うことなく、サーバ10単体で検証するようにしたことにある。つまり第1の変形例の特徴は、フェイルオーバ時のシミュレーションを稼動系のサーバ10単体で行うようにしたことにある。   First, the feature of the above-described embodiment is that, as the number of accesses to the server-specific information increases, the possibility of the application 130 being affected by clustering increases. It is to notify the user. On the other hand, the feature of the first modification is that the server-specific information is also changed when the server that executes the application 130 is switched (that is, at the time of failover). In other words, the server 10 alone is verified without switching the server. That is, the feature of the first modification is that the simulation at the time of failover is performed by the active server 10 alone.

図5は、第1の変形例で適用されるサーバ10の主として機能構成を示すブロック図である。図5において、図2と等価な要素には同一参照符号を付してある。   FIG. 5 is a block diagram mainly showing a functional configuration of the server 10 applied in the first modification. 5, elements equivalent to those in FIG. 2 are denoted by the same reference numerals.

図5に示すサーバ10では、上記実施形態と異なり、フックライブラリ機構22に代えてフックライブラリ機構22aが用いられる。フックライブラリ機構22aは、フックライブラリ記憶部221、フック機構222、アクセス管理テーブル223a、アクセス管理機構224、状態判定機構225、状態通知機構226及び固有情報置換機構227から構成される。つまりフックライブラリ機構22aは、図2に示されるフックライブラリ機構22に固有情報置換機構227を追加すると共に、図2に示されるアクセス管理テーブル223に代えてアクセス管理テーブル223aを用いたものである。なお、状態判定機構225及び状態通知機構226の機能は、後述するように上記実施形態と異なる。   In the server 10 shown in FIG. 5, unlike the above embodiment, a hook library mechanism 22 a is used instead of the hook library mechanism 22. The hook library mechanism 22a includes a hook library storage unit 221, a hook mechanism 222, an access management table 223a, an access management mechanism 224, a state determination mechanism 225, a state notification mechanism 226, and a unique information replacement mechanism 227. That is, the hook library mechanism 22a is obtained by adding the unique information replacement mechanism 227 to the hook library mechanism 22 shown in FIG. 2 and using the access management table 223a instead of the access management table 223 shown in FIG. Note that the functions of the state determination mechanism 225 and the state notification mechanism 226 are different from those of the above-described embodiment as described later.

固有情報置換機構227は、アプリケーション130からのサーバ固有情報アクセスのためのシステム関数fun1()の呼び出しに応じて当該アプリケーション130に返されるべき返り値(サーバ固有情報23)を、予め定められたダミーの固有情報(ダミー情報)に置き換える。   The unique information replacement mechanism 227 sets a return value (server unique information 23) to be returned to the application 130 in response to a call to the system function fun1 () for accessing the server unique information from the application 130 by a predetermined dummy. Replace with specific information (dummy information).

図6は、アクセス管理テーブル223aのデータ構造例を示す。アクセス管理テーブル223aの各エントリは、サーバ固有情報欄及びアクセス回数欄に加えて、アプリケーション130の状態を保持するための第1及び第2の状態欄を含む。第1の状態欄は、サーバ固有情報23がダミー情報に置き換えられずにアプリケーション130に返された場合の当該アプリケーション130の状態を保持するのに用いられる。第2の状態欄は、サーバ固有情報23に代えてダミー情報がアプリケーション130に返された場合の当該アプリケーション130の状態を保持するのに用いられる。   FIG. 6 shows an example of the data structure of the access management table 223a. Each entry of the access management table 223a includes a first status column and a second status column for holding the status of the application 130 in addition to the server specific information column and the access count column. The first status column is used to hold the status of the application 130 when the server specific information 23 is returned to the application 130 without being replaced with dummy information. The second status column is used to hold the status of the application 130 when dummy information is returned to the application 130 instead of the server specific information 23.

クラスタシステムにおいてフェイルオーバが発生した場合、上述のようにサーバ固有情報も変更される。このサーバ固有情報の変更がアプリケーション130に影響を与えるかは、実際にフェイルオーバを発生することにより確認できる。しかし、そのためには、実際に複数のサーバを用いてクラスタシステムを構築する必要がある。   When failover occurs in the cluster system, the server-specific information is also changed as described above. Whether the change of the server specific information affects the application 130 can be confirmed by actually generating a failover. However, for that purpose, it is necessary to actually construct a cluster system using a plurality of servers.

そこで、フェイルオーバの発生を想定して、アプリケーション130を単一のサーバ10で再起動すると共に、当該アプリケーション130がアクセスするサーバ固有情報(サーバ10に固有の情報)を変更することによって、当該アプリケーション130の動作を確認する手法を適用することが考えられる。しかし、アプリケーション130がアクセスするサーバ固有情報自体を変更した場合、当該アプリケーション130(つまり動作確認の対象となるアプリケーション130)以外にも影響を与える可能性がある。このため、上記の手法を安易に実施できない。   Therefore, assuming that a failover has occurred, the application 130 is restarted on the single server 10, and the server-specific information accessed by the application 130 (information unique to the server 10) is changed. It is conceivable to apply a method for confirming the operation of. However, if the server-specific information itself accessed by the application 130 is changed, there is a possibility that it affects other than the application 130 (that is, the application 130 that is the target of operation confirmation). For this reason, said method cannot be implemented easily.

一方、上記実施形態では、アプリケーション130の動作時に、当該アプリケーション130からのシステム関数fun1()の呼び出しが、フックライブラリ機構22のフック機構222によってフックされる。このフックされた呼び出しに基づいて、システムライブラリからシステム関数fun1()が実際に呼び出されて当該システム関数fun1()が実行されることにより、サーバ10に固有の情報(サーバ固有情報23)がアクセスされる。このアクセスされるサーバ固有情報23は予め定められている。したがって上記実施形態においては、アプリケーション130からのシステム関数fun1()の呼び出しが、フックライブラリ機構22のフック機構222によってフックされることにより、その時点で、アプリケーション130がアクセスしようとするサーバ固有情報23を認識(特定)することが可能である。またサーバ固有情報23の値自体はOSの機能によりアプリケーション130とは独立に確認できる。   On the other hand, in the above embodiment, when the application 130 operates, the call of the system function fun1 () from the application 130 is hooked by the hook mechanism 222 of the hook library mechanism 22. Based on the hooked call, the system function fun1 () is actually called from the system library and the system function fun1 () is executed, thereby accessing information specific to the server 10 (server specific information 23). Is done. The server specific information 23 to be accessed is determined in advance. Therefore, in the above-described embodiment, when the call of the system function fun1 () from the application 130 is hooked by the hook mechanism 222 of the hook library mechanism 22, the server specific information 23 to be accessed by the application 130 at that time. Can be recognized (specified). The value of the server specific information 23 itself can be confirmed independently of the application 130 by the function of the OS.

そこで第1の変形例では、この特徴を利用することにより、サーバ固有情報の変更がアプリケーション130に影響を与えるかを、サーバ10単体で検証する仕組みを実現している。具体的には、フックライブラリとリンクするアプリケーション130が、サーバ固有情報へアクセスするためのシステム関数の呼び出しによって当該固有情報を参照するときだけ、当該固有情報をダミー情報(ダミーの固有情報)で置き換えることにより、上記の仕組みを実現している。この仕組みによれば、例えばサーバ固有情報をダミー情報で置き換えた場合のサーバ10の状態から、当該サーバ10を含む複数のサーバを用いてクラスタシステムを構築することなく、また当該サーバ10上の他のアプリケーションに影響を与えることなく、アプリケーション(特定のアプリケーション)130がサーバ固有情報に大きく依存するか、つまりアプリケーション130のクラスタ化への影響の可能性が大きいかを確認することができる。   Therefore, in the first modified example, by utilizing this feature, a mechanism for verifying whether the change of the server specific information affects the application 130 by the server 10 alone is realized. Specifically, the unique information is replaced with dummy information (dummy unique information) only when the application 130 linked with the hook library refers to the unique information by calling a system function for accessing the server unique information. As a result, the above mechanism is realized. According to this mechanism, for example, from the state of the server 10 when the server specific information is replaced with dummy information, a cluster system is not constructed using a plurality of servers including the server 10, and the other on the server 10 It is possible to confirm whether the application (specific application) 130 greatly depends on the server-specific information, that is, the possibility of the application 130 having a great influence on clustering is not affected.

サーバ固有情報の変更がアプリケーションに影響を与える場合の当該アプリケーションの挙動は、アプリケーション毎に異なる。例えば、サーバ固有情報の変更により、アプリケーション130の起動自体が行えない状態、或いはアプリケーション130におけるサーバ固有情報アクセスのエラー、或いはアプリケーション130自身の動作エラーが発生する可能性がある。このようなアプリケーション130では、サーバ固有情報の変更前の当該アプリケーション130の状態をサーバ固有情報の変更後の当該アプリケーション130の状態と比較することにより、サーバ固有情報の変更が当該アプリケーション130に与える影響度を判断することが可能である。   The behavior of the application when the change of the server specific information affects the application is different for each application. For example, a change in the server specific information may cause a state where the application 130 cannot be started, an error in accessing the server specific information in the application 130, or an operation error in the application 130 itself. In such an application 130, by comparing the state of the application 130 before the change of the server specific information with the state of the application 130 after the change of the server specific information, the influence of the change of the server specific information on the application 130 is affected. It is possible to judge the degree.

以下、第1の変形例の動作について、図7のフローチャートを参照して説明する。なお、図7において、図3のフローチャートと等価な処理ステップには同一参照符号を付してある。   Hereinafter, the operation of the first modification will be described with reference to the flowchart of FIG. In FIG. 7, the same reference numerals are assigned to the processing steps equivalent to those in the flowchart of FIG.

まず、アプリケーション130からシステム関数fun1()の呼び出しが行われたものとする(ステップS1)。この場合、フックライブラリ機構22のフック機構222は、上記実施形態と同様に、フックライブラリに基づき、当該fun1()の呼び出しをフックする(ステップS2)。次にフックライブラリ機構22は、フックされたfun1()の関数名に対応付けてフックライブラリに設定されているフック関数FUN1()を呼び出す(ステップS3)。するとアクセス管理機構224は、システム関数fun1()の実行によってアクセスされるべきサーバ固有情報23に対応付けてアクセス管理テーブル223に保持されているアクセス回数を1だけカウントアップする(ステップS4)。   First, it is assumed that the system function fun1 () is called from the application 130 (step S1). In this case, the hook mechanism 222 of the hook library mechanism 22 hooks the call of fun1 () based on the hook library as in the above embodiment (step S2). Next, the hook library mechanism 22 calls the hook function FUN1 () set in the hook library in association with the function name of the hooked fun1 () (step S3). Then, the access management mechanism 224 increments the number of accesses held in the access management table 223 by 1 in association with the server specific information 23 to be accessed by executing the system function fun1 () (step S4).

次に状態判定機構225が起動される。状態判定機構225は、フック機構222によってフックされたfun1()の呼び出しに基づいて、当該fun1()が実行されることによってアクセスされるべきサーバ固有情報23を、ダミーの固有情報(ダミー情報)で置き換えるかを判定する(ステップS11)。この判定は、例えば、アクセス管理機構224によってカウントアップされたアクセス回数(カウント値)が1を超えているかに基づいて行われる。   Next, the state determination mechanism 225 is activated. Based on the call of fun1 () hooked by the hook mechanism 222, the state determination mechanism 225 uses the server unique information 23 to be accessed by executing the fun1 () as dummy unique information (dummy information). It is determined whether to replace with (step S11). This determination is made based on, for example, whether the access count (count value) counted up by the access management mechanism 224 exceeds 1.

もし、アクセス回数が1であるならば、つまり1を超えていないならば、状態判定機構225は、ダミー情報への置き換え(ダミー情報での応答)は不要であると判定する(ステップS11がNO)。この場合、フック機構222は、自身がフックしたfun1()の呼び出しを行う(ステップS6)。以降の動作は上記実施形態と同様であり、システムライブラリからfun1()が呼び出されて、当該fun1()の実行によりサーバ固有情報23がアクセスされる(ステップS6乃至S8)。そして、アクセスされたサーバ固有情報23が、fun1()の呼び出しに対する返り値として、フックライブラリ機構22(のフックライブラリ機構22)を介してアプリケーション130に返される(ステップS9)。すると状態判定機構225は、サーバ固有情報23が返されたアプリケーション130の状態を採取して、採取された状態を示す情報(第1の状態情報)を、当該固有情報23が保持されているアクセス管理テーブル223aのエントリの第1の状態欄に設定する(ステップS12,S13)。なお、アプリケーション130の状態を採取する手法自体は従来から知られているため説明を省略する。   If the number of accesses is 1, that is, if it does not exceed 1, the state determination mechanism 225 determines that replacement with dummy information (response with dummy information) is unnecessary (NO in step S11). ). In this case, the hook mechanism 222 calls fun1 () hooked by itself (step S6). Subsequent operations are the same as in the above embodiment, and fun1 () is called from the system library, and the server-specific information 23 is accessed by executing fun1 () (steps S6 to S8). Then, the accessed server specific information 23 is returned to the application 130 via the hook library mechanism 22 (the hook library mechanism 22) as a return value for the call of fun1 () (step S9). Then, the state determination mechanism 225 collects the state of the application 130 to which the server specific information 23 is returned, and obtains information indicating the collected state (first state information) as the access in which the specific information 23 is held. It is set in the first status column of the entry of the management table 223a (steps S12 and S13). Note that the technique itself for collecting the state of the application 130 has been known so far, and the description thereof will be omitted.

これに対してアクセス回数が1を超えているならば、状態判定機構225は、ダミー情報への置き換えが必要であると判定する(ステップS11がYES)。この場合、状態判定機構225は固有情報置換機構227を起動する。   On the other hand, if the number of accesses exceeds 1, the state determination mechanism 225 determines that replacement with dummy information is necessary (YES in step S11). In this case, the state determination mechanism 225 activates the unique information replacement mechanism 227.

すると固有情報置換機構227は、予め定められたダミー情報(ダミーの固有情報)をfun1()の呼び出しに対する返り値としてフック機構222に渡す(ステップS14)。このことは、アプリケーション130からのfun1()の呼び出しに応じて、当該fun1()が実際に実行されることによってアクセスされてアプリケーション130に返されるサーバ固有情報23を、ダミー情報に置き換える(変更する)のと等価である。   Then, the unique information replacement mechanism 227 passes predetermined dummy information (dummy unique information) to the hook mechanism 222 as a return value for the call of fun1 () (step S14). This means that in response to the call of fun1 () from the application 130, the server-specific information 23 that is accessed and returned to the application 130 when the fun1 () is actually executed is replaced (changed) with dummy information. ).

フック機構222は、固有情報置換機構227から渡されたダミー情報を、アプリケーション130からのfun1()の呼び出しに対応する返り値として、当該アプリケーション130に渡す。すると状態判定機構225は、ダミー情報が返されたアプリケーション130の状態を採取して、採取された状態を示す情報(第2の状態情報)を、当該サーバ固有情報23が保持されているアクセス管理テーブル223aのエントリの第2の状態欄に設定する(ステップS15,S16)。   The hook mechanism 222 passes the dummy information passed from the unique information replacement mechanism 227 to the application 130 as a return value corresponding to the call of fun1 () from the application 130. Then, the state determination mechanism 225 collects the state of the application 130 for which dummy information is returned, and obtains information indicating the collected state (second state information) as access management in which the server-specific information 23 is held. It is set in the second status column of the entry in the table 223a (steps S15 and S16).

次に状態判定機構225は、第2の状態欄に設定された第2の状態情報を、当該第2の状態欄を含むアクセス管理テーブル223aのエントリの第1の状態欄に設定されている第1の状態情報と比較することにより、ダミー情報(つまりサーバ固有情報の変更)がアプリケーション130の挙動に影響を及ぼしたかを判断する(ステップS17,S18)。状態通知機構226は、この状態判定機構225の判断結果を、上記実施形態と同様の手法によりユーザに通知する(ステップS19)。   Next, the state determination mechanism 225 sets the second state information set in the second state column to the first state column set in the entry of the access management table 223a including the second state column. By comparing with the state information of 1, it is determined whether the dummy information (that is, the change of the server specific information) has affected the behavior of the application 130 (steps S17 and S18). The state notification mechanism 226 notifies the user of the determination result of the state determination mechanism 225 by the same method as in the above embodiment (step S19).

なお、フェイルオーバを想定したダミー情報への変更によりアプリケーション130の起動自体が行えない場合を確認可能とするために、当該アプリケーション130を一旦起動した後に、当該アプリケーション130を再起動してもよい。ここでは、アプリケーション130の最初の起動時には、ダミー情報への変更を行わず、当該アプリケーション130が停止された後に当該アプリケーション130が再度起動された際に、つまり当該アプリケーション130の再起動時に、1回目のアクセスでダミー情報への変更を行えばよい。これにより、ダミー情報への変更がアプリケーション130の起動に与える影響、つまりフェイルオーバの発生により当該アプリケーション130を実行するサーバが切り替えられる場合に当該アプリケーション130の起動に与える影響を調べることが可能である。   In addition, in order to be able to confirm the case where the application 130 itself cannot be started due to the change to dummy information assuming failover, the application 130 may be restarted after the application 130 is once started. Here, when the application 130 is first started, the dummy information is not changed, and when the application 130 is restarted after the application 130 is stopped, that is, when the application 130 is restarted, the first time. The dummy information may be changed by accessing As a result, it is possible to examine the influence of the change to the dummy information on the activation of the application 130, that is, the influence on the activation of the application 130 when the server that executes the application 130 is switched due to the occurrence of failover.

上記第1の変形例では、隠れたサーバ固有情報使用に対するアプリケーション130のクラスタ化への影響を確認するために、当該アプリケーション130からのサーバ固有情報アクセスためのシステム関数呼び出しをフックライブラリ機構22aでフックし、当該アプリケーション130が参照すべきサーバ固有情報をダミー情報(ダミーの固有情報)で置き換えるようにしている。もし、予め影響のあるサーバ固有情報の利用が確認できている場合、上述の固有情報置き換えの仕組みを利用して常にダミー情報を使うことにすれば、サーバ変更によるサーバ固有情報の変化を隠蔽してアプリケーション130の運用が可能となる。この理由は次の通りである。   In the first modified example, in order to confirm the influence on the clustering of the application 130 with respect to the use of hidden server-specific information, a system function call for accessing server-specific information from the application 130 is hooked by the hook library mechanism 22a. The server-specific information to be referred to by the application 130 is replaced with dummy information (dummy unique information). If the use of server-specific information that has an effect has been confirmed in advance, if the dummy information is always used by using the mechanism for replacing the specific information described above, changes in the server-specific information due to server changes are concealed. Thus, the application 130 can be operated. The reason is as follows.

まず、複数のサーバ、例えば2台のサーバ#1及び#2から構成されるクラスタシステムを想定する。サーバ#1及び#2の各々の構成は、上記第1の変形例におけるサーバ10のそれと同様である。サーバ#1及び#2の固有のサーバ固有情報がそれぞれAびBであるとし、ダミー情報がCであるものとする。   First, a cluster system composed of a plurality of servers, for example, two servers # 1 and # 2 is assumed. The configurations of the servers # 1 and # 2 are the same as those of the server 10 in the first modified example. It is assumed that server-specific information unique to servers # 1 and # 2 is A and B, respectively, and dummy information is C.

この場合、上述のアプリケーション130がサーバ#1または#2で動作してサーバ固有情報を参照する際に、フックライブラリ機構22によって当該アプリケーション130にダミー情報Cが返される。これによりアプリケーション130は、サーバ#1または#2のいずれで動作する場合にも、ダミー情報Cを用いて動作することになる。よって、サーバ変更によるサーバ固有情報の変化が隠蔽される。   In this case, when the above-described application 130 operates on the server # 1 or # 2 and refers to the server-specific information, the dummy information C is returned to the application 130 by the hook library mechanism 22. As a result, the application 130 operates using the dummy information C regardless of whether the application 130 operates on the server # 1 or # 2. Therefore, the change of the server specific information due to the server change is concealed.

[第2の変形例]
次に、上記実施形態の第2の変形例について、図1及び図5を援用して説明する。
第2の変形例の特徴は、アプリケーション130からのサーバ固有情報アクセスを含む特定のアクセスパターンをフックライブラリ機構22aにおいて検出する点にある。
[Second Modification]
Next, a second modification of the above embodiment will be described with reference to FIGS.
The feature of the second modification is that a specific access pattern including server-specific information access from the application 130 is detected in the hook library mechanism 22a.

まず、アプリケーション130の起動時の一般的なチェック動作として、当該アプリケーション130が動作するサーバ10に固有のホストIDを参照することによって、当該サーバ10を識別することが挙げられる。このアプリケーション130の起動時の動作は、通常、次のような手順で行われる。   First, as a general check operation when the application 130 is activated, the server 10 is identified by referring to a host ID unique to the server 10 on which the application 130 operates. The operation at the time of starting the application 130 is normally performed in the following procedure.

(1) アプリケーション130を起動する。
(2) システム関数gethostid()を呼び出すことにより、アプリケーション130に固有の情報であるホストIDを読み出す。
(1) Start the application 130.
(2) The host ID, which is information unique to the application 130, is read out by calling the system function getostid ().

(3) read関数read(fd,data)を呼び出すことにより、アプリケーション130の設定データ(設定ファイルのデータ)の中から記録済みのホストIDを読み出す。ここで上記read関数におけるfd及びdataは引数であり、それぞれ、読み出されるべきデータ(ホストID)の位置(つまり読み出し先)、読み出されたデータが格納されるべき位置(つまり読み出しデータの格納先)を示す。この場合、“fd”に記録されているデータ(ホストID)が読み出されて“data”に格納される。   (3) The recorded host ID is read from the setting data (setting file data) of the application 130 by calling the read function read (fd, data). Here, fd and data in the read function are arguments, and the position of the data (host ID) to be read (ie, the read destination) and the position where the read data should be stored (ie, the storage location of the read data). ). In this case, data (host ID) recorded in “fd” is read and stored in “data”.

(4) gethostid()の呼び出しによって読み出されたホストIDをread(fd,data)の呼び出しによって読み出されたデータと比較する。
(5) 上記の比較の結果、両データが一致しているならば、アプリケーション130は正常なサーバで起動されたと(つまりアプリケーション130の正常起動が)判定される。これに対し、両データが一致していないならば、アプリケーション130は不正なサーバで起動されたと判定されて、アプリケーション130の起動失敗となる。
(4) The host ID read by calling getostid () is compared with the data read by calling read (fd, data).
(5) As a result of the comparison, if both data match, it is determined that the application 130 has been started on a normal server (that is, the application 130 has started normally). On the other hand, if the two data do not match, it is determined that the application 130 has been activated by an unauthorized server, and the activation of the application 130 has failed.

さて、第2の変形例では、read関数read(fd,data)、システム関数gethostid()、及びwrite関数write(fd,data)の各々の呼び出しを、フックライブラリ機構22aのフック機構222によるフック対象とするためのフックライブラリが、フックライブラリ機構22aのフックライブラリ記憶部221に予め格納されている。write関数におけるfdは引数であり、データが書き込まれる(記録される)べき、例えば上記設定ファイル内の位置(つまり、データの書き出し先)を示し、dataは当該データが格納されている位置(つまりデータの格納元)を示す。   In the second modification, each call of the read function read (fd, data), the system function gestostid (), and the write function write (fd, data) is called by the hook mechanism 222 of the hook library mechanism 22a. Is stored in advance in the hook library storage unit 221 of the hook library mechanism 22a. fd in the write function is an argument and indicates, for example, the position in the setting file (that is, the data write destination) where the data is to be written (recorded), and data is the position where the data is stored (that is, the data is written). Data storage source).

フックライブラリ記憶部221の状態判定機構225は、フック機構222によってread(fd,data)がフックされた場合、dataで指定される格納先に、gethostid()の呼び出しによってシステムライブラリ機構21のAPI提供機構212から返される返り値(ホストID)に一致するホストIDがあるかを判定する。状態判定機構225はまた、フック機構222によってwrite(fd,data)がフックされた場合には、fdで指定される書き出し先に、gethostid()の呼び出しによってAPI提供機構212から返される返り値(ホストID)に一致するホストIDがあるかを判定する。   When the read (fd, data) is hooked by the hook mechanism 222, the state determination mechanism 225 of the hook library storage unit 221 provides the API of the system library mechanism 21 to the storage location specified by data by calling getostid (). It is determined whether there is a host ID that matches the return value (host ID) returned from the mechanism 212. When the write (fd, data) is hooked by the hook mechanism 222, the state determination mechanism 225 also returns a return value (returned from the API providing mechanism 212 to the write destination specified by fd by calling getostid ()) ( It is determined whether there is a host ID that matches (host ID).

状態判定機構225は、これらの判定結果から、特定条件が成立するかを判定する。特定条件とは、gethostid()及びreadがそれぞれ呼び出されて当該両関数の実行により同一のホストIDが読み出され、加えてgethostid()とreadとの間でwriteが呼び出され、且つ当該writeの示す、readの場合と同一の書き出し先(fd)にホストIDが含まれていない特定のアクセスパターンのことである。   The state determination mechanism 225 determines whether a specific condition is satisfied from these determination results. The specific condition is that gestidid () and read are called, and the same host ID is read by executing both functions. In addition, write is called between gestostid () and read, and the write of the write This is a specific access pattern in which the host ID is not included in the same write destination (fd) as in the case of read.

固有情報置換機構227は、状態判定機構225によって上記特定条件の成立が判定され、且つ、アプリケーション130が再起動されて当該アプリケーション130からのgethostid()の呼び出しがフック機構222によってフックされた場合、ダミー情報をフック機構222に渡す。即ち前記固有情報置換機構227は、gethostid()の呼び出しに対する返り値として、ダミー情報(例えば、予めアプリケーション130が認識しているホストIDとは異なるホストID)をフック機構222に渡す。フック機構222は、固有情報置換機構227から渡されたダミー情報を、gethostid()の呼び出しに対する返り値としてアプリケーション130に返す。状態判定機構225は、上記第1の変形例と同様にして、ダミー情報がアプリケーション130の挙動に影響を及ぼしたかを、当該アプリケーション130の起動に失敗したかによって判断する。   The unique information replacement mechanism 227 determines that the specific condition is satisfied by the state determination mechanism 225, and when the application 130 is restarted and the call to getestid () from the application 130 is hooked by the hook mechanism 222. The dummy information is passed to the hook mechanism 222. That is, the unique information replacement mechanism 227 passes dummy information (for example, a host ID different from the host ID recognized in advance by the application 130) to the hook mechanism 222 as a return value for the call to getostid (). The hook mechanism 222 returns the dummy information passed from the unique information replacement mechanism 227 to the application 130 as a return value for the call to getostid (). The state determination mechanism 225 determines whether the dummy information has affected the behavior of the application 130 according to whether the activation of the application 130 has failed in the same manner as in the first modification.

明らかなように、アプリケーション130からのアクセスのパターンが上記アプリケーション130の起動時のチェック動作のそれに一致する場合、上記特定条件は不成立となる。この場合、固有情報置換機構227によるダミー情報への置き換えは行われない。その理由は、もし、ダミー情報への置き換えを行っても、write関数によってfdにダミー情報が書き込まれ、そのfdに書き込まれたダミー情報がread関数によって読み出される可能性があるためである。つまり、ダミー情報への置き換えが、フェイルオーバの発生を想定した単一サーバ10でのシミュレーションとならないためである。   Obviously, when the access pattern from the application 130 matches that of the check operation when the application 130 is activated, the specific condition is not satisfied. In this case, the replacement with dummy information by the unique information replacement mechanism 227 is not performed. The reason is that even if replacement with dummy information is performed, dummy information is written to fd by the write function, and the dummy information written to the fd may be read by the read function. That is, the replacement with dummy information does not result in a simulation on the single server 10 assuming the occurrence of failover.

なお、アプリケーション130によっては、上記 (2) 及び (3) の順番、つまりgethostid及びreadの順番が逆である可能性もある。もし、上述の例のようにgethostidが先の場合、gethostidの実行時に読み出しデータを監視対象として、フックライブラリ機構22の例えば状態判定機構225内に記録するとよい。一方、readが先の場合、ホストIDを予め監視(確認)対象として例えば状態判定機構225内に登録しておくとよい。   Depending on the application 130, the order of the above (2) and (3), that is, the order of gestostid and read may be reversed. If the gettestid is first, as in the above example, the read data may be recorded in the hook library mechanism 22, for example, in the state determination mechanism 225 when the getostid is executed. On the other hand, when read is first, the host ID may be registered in advance in, for example, the state determination mechanism 225 as a monitoring (confirmation) target.

[第3の変形例]
次に、上記実施形態の第3の変形例について、図1及び図5を援用して説明する。
第3の変形例は、前述のようなアプリケーション130の起動時の一般的なチェック動作 (1) 〜 (5) の後にホストIDが参照される場合を想定する。更に詳細に述べるならば、第3の変形例は、アプリケーション130の扱うデータを暗号化して外部記憶装置13に記録する場合において、暗号化のキーにサーバ10に固有な情報、例えばサーバ10のホストIDを利用するものとする。
[Third Modification]
Next, a third modification of the above embodiment will be described with reference to FIGS.
In the third modification, it is assumed that the host ID is referred to after the general check operations (1) to (5) when the application 130 is started as described above. More specifically, in the third modification, when data handled by the application 130 is encrypted and recorded in the external storage device 13, information unique to the server 10 as an encryption key, for example, the host of the server 10 ID shall be used.

この場合アプリケーション130では、前述のチェック動作 (1) 〜 (5) に続いて、以下の処理が実行されるのが一般的である。
(6) ホストIDの読み出し
(7) 読み出されたホストIDをキーとして、任意のデータを暗号化
(8) 暗号化されたデータの外部記憶装置13への書き込み(記録)
データの書き込みが続く場合、上記 (6) 〜 (7) の処理が繰り返される。
In this case, the application 130 generally executes the following processing following the above check operations (1) to (5).
(6) Reading host ID
(7) Encrypt any data using the read host ID as a key
(8) Writing (recording) the encrypted data to the external storage device 13
When data writing continues, the above processes (6) to (7) are repeated.

一方、外部記憶装置13に記録されたデータを読み出す場合、アプリケーション130では以下の処理が実行される。
(9) 外部記憶装置13からのデータ(暗号化されたデータ)の読み出し
(10) ホストIDの読み出し
(11) 読み出されたホストIDをキーとして、読み出されたデータの復号化
データの読み出しが続く場合、上記 (9) 〜 (11) の処理が繰り返される。
On the other hand, when reading data recorded in the external storage device 13, the application 130 executes the following processing.
(9) Reading data (encrypted data) from the external storage device 13
(10) Reading host ID
(11) Decoding of the read data using the read host ID as a key When the reading of data continues, the above processes (9) to (11) are repeated.

このように、上記 (6) 〜 (8) 及び(9) 〜 (11) の処理は、それぞれアプリケーション130の挙動によって繰り返される。ここでは、これらの処理が繰り返されて、その都度ホストIDが読み出されることを想定する。そこでアクセス管理機構224は、gethostidによるホストIDの読み出しのアクセス回数、readによるデータの読み出し回数及びwriteによるデータの書き込み回数をアクセス管理テーブル223aに記録するのに加えて、アクセス順序を図示せぬログテーブルに記録する。なお、アクセス管理テーブル223aのデータ構造は図6と異なっており、アクセス管理テーブル223aの各エントリはサーバ固有情報欄に代えて関数名欄を含むものとする。具体的には、アクセス管理テーブル223aは、関数名欄にgethostid、read及びwriteの関数名がそれぞれ設定されたエントリを含むものとする。   As described above, the processes (6) to (8) and (9) to (11) are repeated according to the behavior of the application 130. Here, it is assumed that these processes are repeated and the host ID is read out each time. Therefore, the access management mechanism 224 records the access number of the host ID read by gestostid, the data read count by read, and the data write count by write in the access management table 223a, and a log (not shown). Record on the table. Note that the data structure of the access management table 223a is different from that shown in FIG. 6, and each entry of the access management table 223a includes a function name column in place of the server specific information column. Specifically, it is assumed that the access management table 223a includes entries in which function names of “gestid”, “read”, and “write” are set in the function name column.

状態判定機構225は、アクセス管理テーブル223a及びログテーブルから、gethostid及びread、或いはgethostid及びwriteの呼び出しによるアクセスが、時間的に近接した状態で繰り返されるかを判定する。この判定には、時間的に近接しているかを判定するための、近接度合いを示す閾値(第1の閾値)と、繰り返されたと判定するための繰り返し数の閾値(第2の閾値)とが用いられる。   The state determination mechanism 225 determines whether access by calling “gestidid” and “read” or “gestidid” and “write” is repeated in a state close in time from the access management table 223a and the log table. This determination includes a threshold indicating the degree of proximity (first threshold) for determining whether they are close in time and a threshold for the number of repetitions (second threshold) for determining that they are repeated. Used.

ここで、1000文字のデータをホストIDで暗号化して、その暗号化されたデータを外部記憶装置13へ書き込む動作、または外部記憶装置13に書き込まれた暗号化されたデータを読み出してホストIDで復号化する動作が行われるものとする。更に、データの書き込みまたは読み出し(書き込み/読み出し)の動作が、1000文字のデータを対象に1回で実行されず、例えば100文字単位で10回に分けて実行されるものとする。この場合、最初は、ホストIDの読み出し及び100文字のデータの書き込み、またはホストIDの読み出し及び100文字のデータ読み出しが続けて行われる。このことを前提として、状態判定機構225による上述の判定が行われる。   Here, the operation of encrypting 1000-character data with the host ID and writing the encrypted data to the external storage device 13, or reading the encrypted data written to the external storage device 13 and using the host ID It is assumed that a decoding operation is performed. Further, it is assumed that the data writing or reading (writing / reading) operation is not performed once for 1000 characters of data but is performed 10 times in units of 100 characters, for example. In this case, at first, reading of the host ID and writing of 100 characters of data, or reading of the host ID and reading of 100 characters of data are continuously performed. Based on this premise, the above-described determination by the state determination mechanism 225 is performed.

まず、ホストIDの読み出しと最初のデータ書き込み/読み出しとが近接している(続いている)かが判定される。その後データ書き込み/読み出しが実行されると、当該データ書き込み/読み出しが同一の“fd”を対象として繰り返されること、つまり連続(近接)するデータ書き込み/読み出しが観測される。この場合、状態判定機構225は、これらのデータ書き込み/読み出しが最初に読み出されたホストIDの影響を受けていると判定する。   First, it is determined whether the reading of the host ID and the first data writing / reading are close (continuing). Thereafter, when data writing / reading is executed, the data writing / reading is repeated for the same “fd”, that is, continuous (adjacent) data writing / reading is observed. In this case, the state determination mechanism 225 determines that the data writing / reading is affected by the host ID that is read first.

状態判定機構225は、gethostid及びreadの呼び出しによるアクセス、或いはgethostid及びwriteの呼び出しによるアクセスが時間的に近接した状態で繰り返されると判定できた場合、これらのアクセスに依存性があると推測する。そこでフック機構222は、gethostid及びwriteの呼び出しによるアクセスが時間的に近接して繰り返される間、予め測定されるアクセスのタイミング、順序に従い、アプリケーション130に返されるべきgethostidに対する返り値として、真のホストIDを用いる。一方、gethostid及びreadの呼び出しによるアクセスが時間的に近接して繰り返される間は、フック機構222は予め測定されるアクセスのタイミング、順序に従い、アプリケーション130に返されるべきgethostidに対する返り値として、ダミー情報を用いる。   If the state determination mechanism 225 determines that the access by calling gestostid and read or the access by calling gestostid and write is repeated in a state close in time, the state determination mechanism 225 estimates that these accesses are dependent. Therefore, the hook mechanism 222 uses the true host as a return value for the get id to be returned to the application 130 according to the timing and order of the access measured in advance while the access by calling the get id and write is repeated in close proximity in time. ID is used. On the other hand, while the access by calling calls to getidid and read is repeated close in time, the hook mechanism 222 uses dummy information as a return value for the getidid to be returned to the application 130 in accordance with the access timing and order measured in advance. Is used.

すると、gethostid及びreadの呼び出しによるアクセスの繰り返しにおいて、アプリケーション130では読み出しデータの復号化に失敗する。この場合、アプリケーション130は読み出しエラーを当該アプリケーション130の実行履歴を表すログファイルに出力する。状態判定機構225は、このログファイルを参照することにより、アプリケーション130のクラスタ化が不可であると判断できる。なお、このログファイルを状態通知機構226がユーザに通知して、当該ユーザにアプリケーション130のクラスタ化が不可であることを判断させても構わない。   Then, the application 130 fails to decrypt the read data in the repeated access by calling “gestidid” and “read”. In this case, the application 130 outputs a read error to a log file that represents the execution history of the application 130. The state determination mechanism 225 can determine that the application 130 cannot be clustered by referring to the log file. Note that the status notification mechanism 226 may notify the user of this log file so that the user can determine that the application 130 cannot be clustered.

なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。   In addition, this invention is not limited to the said embodiment or its modification example as it is, A component can be deform | transformed and embodied in the range which does not deviate from the summary in an implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment or its modification. For example, you may delete a some component from all the components shown by embodiment or its modification.

本発明の一実施形態に係るクラスタシステム向けサーバ計算機のハードウェア構成を示すブロック図。The block diagram which shows the hardware constitutions of the server computer for cluster systems which concerns on one Embodiment of this invention. 図1に示されるサーバ計算機の主として機能構成を示すブロック図。The block diagram which mainly shows a function structure of the server computer shown by FIG. 図2に示されるアクセス管理テーブル223のデータ構造例を示す図。The figure which shows the data structure example of the access management table 223 shown by FIG. 同実施形態の動作を説明するためのフローチャート。The flowchart for demonstrating the operation | movement of the embodiment. 同実施形態の第1の変形例で適用されるサーバ計算機の主として機能構成を示すブロック図。The block diagram which mainly shows a function structure of the server computer applied in the 1st modification of the embodiment. 図5に示されるアクセス管理テーブル223aのデータ構造例を示す図。FIG. 6 is a diagram showing an example data structure of an access management table 223a shown in FIG. 同第1の変形例の動作を説明するためのフローチャート。The flowchart for demonstrating operation | movement of the said 1st modification.

符号の説明Explanation of symbols

10…サーバ(クラスタシステム向けサーバ計算機)、11…CPU、12…主メモリ、13…外部記憶装置、21…システムライブラリ機構、22…フックライブラリ機構、23…サーバ固有情報、130…アプリケーション(特定アプリケーション)、131…アプリケーションクラスタ化可能性判定支援プログラム、211…システムライブラリ記憶部、212…API(アプリケーションプログラムインタフェース)提供機構、221…フックライブラリ記憶部、222…フック機構、223,223a…アクセス管理テーブル、224…アクセス管理機構、225…状態判定機構、226…状態通知機構、227…固有情報置換機構。   DESCRIPTION OF SYMBOLS 10 ... Server (server computer for cluster systems), 11 ... CPU, 12 ... Main memory, 13 ... External storage device, 21 ... System library mechanism, 22 ... Hook library mechanism, 23 ... Server specific information, 130 ... Application (specific application) , 131 ... Application clusterability determination support program, 211 ... System library storage unit, 212 ... API (application program interface) providing mechanism, 221 ... Hook library storage unit, 222 ... Hook mechanism, 223, 223a ... Access management table 224 ... access management mechanism, 225 ... state determination mechanism, 226 ... state notification mechanism, 227 ... specific information replacement mechanism.

Claims (5)

ユーザに対してサービスを提供するための特定アプリケーションの実行が可能なクラスタシステム向けサーバ計算機において、
前記サーバ計算機に固有のサーバ固有情報を取得するための第1のアプリケーションプログラムインタフェースの集合を含むシステムライブラリを予め格納したシステムライブラリ記憶手段と、
前記第1のアプリケーションプログラムインタフェースの呼び出しを受けて、当該第1のアプリケーションプログラムインタフェースを呼び出し元に提供するアプリケーションプログラムインタフェース提供手段と、
前記第1のアプリケーションプログラムインタフェースに対応付けられ、当該第1のアプリケーションプログラムインタフェースがフックされた際の動作を定義した第2のアプリケーションプログラムインタフェースの集合を含むフックライブラリを予め格納したフックライブラリ記憶手段と、
前記フックライブラリ記憶手段に格納されている前記フックライブラリに基づき、前記特定アプリケーションからの前記第1のアプリケーションプログラムインタフェースの呼び出しをフックするフック手段であって、前記フックライブラリにおいて当該フックされた第1のアプリケーションプログラムインタフェースに対応付けられている前記第2のアプリケーションプログラムインタフェースに従い、当該フックされた第1のアプリケーションプログラムインタフェースを呼び出すフック手段と、
前記特定アプリケーションからの前記第1のアプリケーションプログラムインタフェースの呼び出しに基づく前記サーバ固有情報へのアクセスを記録するのに用いられるアクセス管理テーブルと、
前記フック手段によって前記第1のアプリケーションプログラムインタフェースの呼び出しがフックされた場合に、当該第1のアプリケーションプログラムインタフェースの呼び出しに基づく前記サーバ固有情報へのアクセスを前記アクセス管理テーブルに記録するアクセス管理手段と、
前記アクセス管理テーブルによって示される、前記特定アプリケーションからの前記サーバ固有情報へのアクセスの状況を示す情報をユーザに通知するための状態通知手段と
を具備することを特徴とするクラスタシステム向けサーバ計算機。
In a server computer for a cluster system that can execute a specific application to provide services to users,
System library storage means for storing in advance a system library including a set of first application program interfaces for acquiring server-specific information specific to the server computer;
Application program interface providing means for receiving a call to the first application program interface and providing the first application program interface to a caller;
Hook library storage means pre-stored with a hook library including a set of second application program interfaces associated with the first application program interface and defining an operation when the first application program interface is hooked; ,
Hook means for hooking a call to the first application program interface from the specific application based on the hook library stored in the hook library storage means, wherein the first hooked in the hook library Hook means for invoking the hooked first application program interface according to the second application program interface associated with the application program interface;
An access management table used to record access to the server specific information based on a call of the first application program interface from the specific application;
An access management means for recording access to the server specific information based on the call of the first application program interface in the access management table when the call of the first application program interface is hooked by the hook means; ,
A server computer for a cluster system, comprising: status notification means for notifying a user of information indicating a status of access to the server-specific information from the specific application indicated by the access management table.
前記アクセス管理テーブルは、前記サーバ固有情報毎に用意される、当該サーバ固有情報へのアクセスの回数を記録するためのエントリを有し、
前記アクセス管理手段は、前記フック手段によって前記第1のアプリケーションプログラムインタフェースの呼び出しがフックされた場合に、当該フックされた第1のアプリケーションプログラムインタフェースの呼び出しに基づいてアクセスされるサーバ固有情報に対応する前記アクセス管理テーブルのエントリに記録されているアクセス回数をインクリメントする
ことを特徴とする請求項1記載のクラスタシステム向けサーバ計算機。
The access management table has an entry for recording the number of accesses to the server specific information, prepared for each server specific information,
The access management means corresponds to server-specific information that is accessed based on the hooked first application program interface call when the hook application hooks the first application program interface call. The server computer for a cluster system according to claim 1, wherein the number of accesses recorded in the entry of the access management table is incremented.
前記アクセス管理手段によってインクリメントされた後の前記アクセス回数が予め定められた閾値を超えたかを判定する状態判定手段を更に具備し、
前記状態通知手段は、前記状態判定手段の判定結果を、前記特定アプリケーションからの前記サーバ固有情報へのアクセスの状況を示す情報としてユーザに通知する
ことを特徴とする請求項2記載のクラスタシステム向けサーバ計算機。
Further comprising state determination means for determining whether the number of accesses after being incremented by the access management means exceeds a predetermined threshold,
The cluster system according to claim 2, wherein the state notification unit notifies the user of the determination result of the state determination unit as information indicating a status of access to the server specific information from the specific application. Server computer.
前記フック手段によって前記第1のアプリケーションプログラムインタフェースの呼び出しがフックされた場合に、当該第1のアプリケーションプログラムインタフェースの呼び出しに基づいてアクセスされるべき前記サーバ固有情報に代えて、当該サーバ固有情報とは異なるダミーの固有情報を、前記第1のアプリケーションプログラムインタフェースの呼び出し対するに返り値として、前記フック手段によって前記特定アプリケーションに返させる固有情報置換手段を更に具備し、
前記状態判定手段は、前記ダミーの固有情報が返された前記特定アプリケーションの動作状態を監視し、異常発生の有無に基づいて前記特定アプリケーションのクラスタ構成時の悪影響の有無を判定する
ことを特徴とする請求項1乃至3のいずれかに記載のクラスタシステム向けサーバ計算機。
When the call of the first application program interface is hooked by the hook means, instead of the server specific information to be accessed based on the call of the first application program interface, the server specific information is A unique information replacement means for returning the specific information of the different dummy to the specific application by the hook means as a return value for calling the first application program interface;
The state determination means monitors the operating state of the specific application to which the dummy unique information is returned, and determines whether there is an adverse effect during cluster configuration of the specific application based on whether or not an abnormality has occurred. The server computer for a cluster system according to any one of claims 1 to 3.
ユーザに対してサービスを提供するための特定アプリケーションの実行が可能なクラスタシステム向けサーバ計算機であって、前記サーバ計算機に固有のサーバ固有情報を取得するための第1のアプリケーションプログラムインタフェースの集合を含むシステムライブラリを予め格納したシステムライブラリ記憶手段と、前記第1のアプリケーションプログラムインタフェースの呼び出しを受けて、当該第1のアプリケーションプログラムインタフェースを呼び出し元に提供するアプリケーションプログラムインタフェース提供手段と、前記第1のアプリケーションプログラムインタフェースに対応付けられ、当該第1のアプリケーションプログラムインタフェースがフックされた際の動作を定義した第2のアプリケーションプログラムインタフェースの集合を含むフックライブラリを予め格納したフックライブラリ記憶手段と、アクセス管理テーブルとを備えたクラスタシステム向けサーバ計算機に、
前記フックライブラリ記憶手段に格納されている前記フックライブラリに基づき、前記特定アプリケーションからの前記第1のアプリケーションプログラムインタフェースの呼び出しをフックするステップと、
前記フックされた第1のアプリケーションプログラムインタフェースを呼び出すステップと、
前記フックされた第1のアプリケーションプログラムインタフェースの呼び出しに基づく前記サーバ固有情報へのアクセスを前記アクセス管理テーブルに記録するステップと、
前記アクセス管理テーブルによって示される、前記特定アプリケーションからの前記サーバ固有情報へのアクセスの状況を示す情報をユーザに通知するステップと
を実行させるためのアプリケーションクラスタ化可能性判定支援プログラム。
A server computer for a cluster system capable of executing a specific application for providing a service to a user, including a set of first application program interfaces for acquiring server-specific information specific to the server computer A system library storing means for storing a system library in advance; an application program interface providing means for receiving a call to the first application program interface and providing the first application program interface to a caller; and the first application A second application program interface which is associated with the program interface and defines an operation when the first application program interface is hooked Hook library storage means for storing a hook library in advance, including a set of face, the cluster system for a server computer including an access management table,
Hooking a call to the first application program interface from the specific application based on the hook library stored in the hook library storage means;
Invoking the hooked first application program interface;
Recording the access to the server specific information based on the hooked first application program interface call in the access management table;
An application clusterability determination support program for executing a step of notifying a user of information indicating a status of access to the server-specific information from the specific application indicated by the access management table.
JP2008141263A 2008-05-29 2008-05-29 Server computer for cluster system, and application clustering possibility determination support program Pending JP2009289054A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008141263A JP2009289054A (en) 2008-05-29 2008-05-29 Server computer for cluster system, and application clustering possibility determination support program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008141263A JP2009289054A (en) 2008-05-29 2008-05-29 Server computer for cluster system, and application clustering possibility determination support program

Publications (1)

Publication Number Publication Date
JP2009289054A true JP2009289054A (en) 2009-12-10

Family

ID=41458209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008141263A Pending JP2009289054A (en) 2008-05-29 2008-05-29 Server computer for cluster system, and application clustering possibility determination support program

Country Status (1)

Country Link
JP (1) JP2009289054A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012073682A (en) * 2010-09-27 2012-04-12 Nec Corp Migration test program creation device, migration test program creation method, and migration test program creation program
JP2014182561A (en) * 2013-03-19 2014-09-29 Hitachi Ltd Computer system, process and method for monitoring thread
JP2021033452A (en) * 2019-08-20 2021-03-01 株式会社リコー Information processing apparatus, information processing method, and program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200000140008, 稲村大介, "テーマ別用語事典:はやわかりJava Glossary", JAVA PRESS, 19991125, 第3巻, pp.75−85, JP, 株式会社技術評論社 *
JPN6010027279, 稲村大介, "テーマ別用語事典:はやわかりJava Glossary", JAVA PRESS, 19991125, 第3巻, pp.75−85, JP, 株式会社技術評論社 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012073682A (en) * 2010-09-27 2012-04-12 Nec Corp Migration test program creation device, migration test program creation method, and migration test program creation program
JP2014182561A (en) * 2013-03-19 2014-09-29 Hitachi Ltd Computer system, process and method for monitoring thread
JP2021033452A (en) * 2019-08-20 2021-03-01 株式会社リコー Information processing apparatus, information processing method, and program
JP7293975B2 (en) 2019-08-20 2023-06-20 株式会社リコー Information processing device, information processing method, and program

Similar Documents

Publication Publication Date Title
US10884837B2 (en) Predicting, diagnosing, and recovering from application failures based on resource access patterns
JP7177576B2 (en) Runtime self-modification for blockchain ledgers
JP5598235B2 (en) Composite event processing apparatus and composite event processing method
US8621282B1 (en) Crash data handling
JP4941556B2 (en) ENCRYPTION DEVICE, ENCRYPTION METHOD, AND ENCRYPTION PROGRAM
JP2004334869A (en) Diagnosis and solution of computer problem by program, and automatic report and updating thereof
US20080091895A1 (en) Cache data backup method and system for computer clustering systems
WO2011111172A1 (en) Information processing device, information processing method, and program
WO2006082657A1 (en) Multi cpu computer and system restart method
JP6288275B2 (en) Virtualization infrastructure management apparatus, virtualization infrastructure management system, virtualization infrastructure management method, and virtualization infrastructure management program
US20070083792A1 (en) System and method for error detection and reporting
JP2013073405A (en) Monitoring device, control method and control program
WO2023226380A1 (en) Disk processing method and system, and electronic device
CN101968835A (en) Method and system for safely deleting information from a computer
CN111026333A (en) Access request processing method, processing device, electronic equipment and storage medium
JP2009289054A (en) Server computer for cluster system, and application clustering possibility determination support program
CN109445909A (en) Backup method, system, terminal and the storage medium of virtual-machine data
JP5392263B2 (en) Information processing apparatus and memory protection method thereof
US8868979B1 (en) Host disaster recovery system
US7600151B2 (en) RAID capacity expansion interruption recovery handling method and system
US20200250107A1 (en) Systems and methods for safely detecting indeterminate states of ranges in a self-encrypting storage resource
JP4807289B2 (en) Information processing apparatus, file processing method, and program
JP5310075B2 (en) Log collection system, information processing apparatus, log collection method, and program
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs
CN111949479A (en) Interactive system and method and equipment for determining index creation condition

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101005