(57)【要約】【課題】タイムアウトに伴う処理の負荷分散を実現する。【解決手段】情報処理装置において、通信部は、複数のサーバと通信可能に接続され、処理を実行するサーバから、サーバが実行する処理がタイムアウトする時刻であるタイマ指定時刻と、サーバが実行する処理を識別するトランザクションＩＤとを取得する。制御部は、接続された複数のサーバからタイムアウトの通知先にするサーバを選択する。そして、制御部は、タイマ指定時刻になるまで処理を実行するサーバの処理が完了しないとき、選択したサーバにタイムアウトの通知とトランザクションＩＤとを送信する。選択されたサーバは、タイムアウトの通知とトランザクションＩＤとを受信すると、トランザクションＩＤが示す処理のタイムアウトに伴う処理を実行する。【選択図】図１
2014182448.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバ装置のそれぞれから、実行する処理が所定時間内に完了しない場合に、該処理を終了させる終了時刻と、該処理を識別する処理識別子とを取得する取得部と、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了するかを監視し、前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了しない場合、前記処理が完了しない第１サーバ装置の処理の処理識別子を、前記複数のサーバ装置のうちのいずれかの第２サーバ装置に送信し、前記処理識別子に対応する前記処理の後処理を、前記第２サーバ装置に実行させる制御部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記情報処理装置は、さらに、
前記第２サーバ装置に、リクエストの送信時刻である第１の送信時刻を刻印したリクエストを送信し、前記第２サーバ装置から、レスポンスの送信時刻である第２の送信時刻を刻印したリクエストに対するレスポンスを受信し、前記第１の送信時刻と前記第２の送信時刻との差分を示す差分時間を取得する監視部を備え、
前記制御部は、
前記終了時刻から前記差分時間を減算した時刻になると、前記第２サーバ装置に前記処理識別子を送信する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、さらに、
前記第２サーバ装置に前記リクエストを送信し、前記第２サーバ装置から前記送信したリクエストに対する前記レスポンスの返信がないとき、前記複数のサーバ装置から前記第２サーバ装置以外のいずれかの第３サーバ装置を選択する監視部を備え、
前記制御部は、
前記終了時刻になるまで前記処理を実行する第１サーバ装置の処理が完了しない場合、前記第３サーバ装置に前記処理識別子を送信し、前記処理識別子に対応する前記処理の後処理を、前記第３サーバ装置に実行させる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記制御部は、
負荷分散方式を用いて前記複数のサーバ装置からいずれかのサーバ装置を選択する
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
情報処理装置は、
複数のサーバ装置のそれぞれから、実行する処理が所定時間内に完了しない場合に、該処理を終了させる終了時刻と、該処理を識別する処理識別子とを取得する取得部と、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了するかを監視し、前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了しない場合、前記処理が完了しないサーバ装置の処理の処理識別子を、前記複数のサーバ装置のうちのいずれかのサーバ装置に送信する制御部と、
を備え、
前記複数のサーバ装置のそれぞれは、
前記情報処理装置に前記終了時刻と、前記処理識別子とを通知する通知部と、
前記情報処理装置から前記処理識別子を受信すると、前記処理識別子に対応する前記処理の後処理を実行する処理部と、
を備えることを特徴とする情報処理システム。
【請求項６】
前記取得部は、さらに、
前記処理を実行するサーバ装置から、時間を計測する時間計測処理の種別を示す時間計測種別を取得し、
前記情報処理装置の制御部は、
前記終了時刻になるまで処理が完了しないサーバ装置がある場合、前記いずれかのサーバ装置に、前記処理が完了しないサーバ装置の処理の処理識別子と前記時間計測種別とを送信し、
前記情報処理システムは、さらにデータ記憶装置を備え、
前記データ記憶装置は、
前記複数のサーバ装置の前記処理の状態が変更されるごとに、前記処理を実行するサーバ装置から通知される前記処理識別情報と前記処理の状態を示す処理状態情報とを記憶する記憶部を備え、
前記複数のサーバ装置は、さらに、
前記時間計測種別と、前記複数のサーバ装置の処理状態情報とを関連付けた情報を格納する第３格納部を備え、
前記複数のサーバ装置の処理部は、前記処理識別子と前記時間計測種別とを受信すると、前記受信した処理識別子に対応する前記処理状態情報を前記データ記憶装置の記憶部から取得し、前記第３格納部から前記受信した時間計測種別に対応する処理状態情報を取得し、前記データ記憶装置の記憶部から取得した処理状態情報と、前記第３格納部から取得した処理状態情報とが一致する場合、前記処理識別子に対応する前記処理の後処理を実行する
ことを特徴とする請求項５に記載の情報処理システム。
【請求項７】
複数のサーバ装置のそれぞれから、実行する処理が所定時間内に完了しない場合、に該処理を終了させる終了時刻と、該処理を識別する処理識別子とを取得し、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了するかを監視し、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了しない場合、前記処理が完了しない第１サーバ装置の処理の処理識別子を、前記複数のサーバ装置のうちのいずれかの第２サーバ装置に送信し、前記処理識別子に対応する前記処理の後処理を、前記第２サーバ装置に実行させる
ことを特徴とする情報処理方法。
【請求項８】
複数のサーバ装置のそれぞれから、実行する処理が所定時間内に完了しない場合に、該処理を終了させる終了時刻と、該処理を識別する処理識別子とを取得し、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了するかを監視し、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了しない場合、前記処理が完了しない第１サーバ装置の処理の処理識別子を、前記複数のサーバ装置のうちのいずれかの第２サーバ装置に送信し、前記処理識別子に対応する前記処理の後処理を、前記第２サーバ装置に実行させる
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は負荷を分散する技術に関する。
【背景技術】
【０００２】
分散ＤＢ（Ｄａｔａｂａｓｅ）やインメモリデータグリッドなどのＤＢ技術の進展や、サーバの仮想化技術の台頭を背景として、ハードウェアリソースの使用率の向上の観点から、複数の稼働系が並列に稼動するＮ−ＡＣＴ構成が注目されている。Ｎ−ＡＣＴ構成では、ある稼働系サーバＡが保持するデータの処理状態が他の稼働系サーバＢに冗長化、同期されている。稼働系サーバＡにおいて障害が発生した場合には、稼働系サーバＢが処理を引き継ぐ。
【０００３】
これまで、各サーバで変化するセッション情報を、リアルタイムに複数台のサーバで共有することが研究されてきた。この点に関しては、近年の分散ＤＢ技術の進展により、各サーバのセッション情報をリアルタイムにＤＢに格納することが可能になり、実用化されつつある。
【０００４】
さらに、近年では、各サーバに固有なリソースであるソフトウェアを、複数のサーバ間で共有するための研究が進められている。
関連する技術として、下記のマルチプロセッサシステムが知られている。マルチプロセッサシステムは、複数のプロセッサと共通のバスを介して接続した共有メモリと、共通タイマと、マルチプロセッサ制御部とを有する。複数のプロセッサは、共通タイマに対するタイマ要求に、プロセッサ又はジョブを識別できるＩＤ（ＩＤｅｎｔｉｆｉｅｒ）を付加して送信する。共通タイマは、タイマ制御部と、タイムアウト宛先スイッチとを有する。タイマ制御部は、タイマ要求に対応したタイマを識別するタイマＩＤを付与し、タイマ要求元のＩＤとタイマＩＤとを対応付ける。そして、タイマ制御部は、タイムアウトとなったタイマＩＤからタイマ要求元のＩＤを識別し、タイマ要求元にタイムアウト信号を送出する構成を有する技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１６７０７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述したタイマ管理技術では、例えば、セッション管理型のサービスをＮ−ＡＣＴ構成で実現するとき、タイムアウトに伴う処理の負荷分散ができないという問題がある。
本発明は、一側面として、タイムアウトに伴う処理の負荷分散をする技術を提供する。
【課題を解決するための手段】
【０００７】
本明細書で開示する情報処理装置のひとつに、取得部と、制御部とを備えた情報処理装置がある。取得部は、複数のサーバ装置のそれぞれから、実行する処理が所定時間内に完了しない場合に、処理を終了させる終了時刻と、処理を識別する処理識別子とを取得する。制御部は、終了時刻になるまで処理を実行するサーバ装置の処理が完了するかを監視する。制御部は、終了時刻になるまで処理を実行するサーバ装置の処理が完了しない場合、処理が完了しない第１サーバ装置の処理の処理識別子を、複数のサーバ装置のうちのいずれかの第２サーバ装置に送信する。そして、制御部は、処理識別子に対応する前記処理の後処理を、前記第２サーバ装置に実行させる。
【発明の効果】
【０００８】
本明細書で後述する情報処理装置は、タイムアウトに伴う処理の負荷分散ができる。
【図面の簡単な説明】
【０００９】
【図１】タイマ管理装置が適用される通信システムの一実施例を示す図である。
【図２】セッション状態テーブルのデータ例を示す図である。
【図３】タイマ管理装置の一実施例を示す機能ブロック図である。
【図４】タイマ管理テーブルのデータ例を示す図である。
【図５】サーバ管理テーブルのデータ例を示す図である。
【図６】タイマ管理テーブルのデータ例を示す図である。
【図７】サーバ管理テーブルのデータ例を示す図である。
【図８】データストアのデータ例を示す図である。
【図９】ＳＩＰのＩＮＶＩＴＥリクエストの記述例を示す図である。
【図１０】サーバ接続時の処理を示すシーケンス図である。
【図１１】サーバ接続時のサーバ管理テーブルのデータ例を示す図である。
【図１２】タイマ管理装置のタイムラグ取得の処理を示すシーケンス図である。
【図１３】タイムラグ取得後のサーバ管理テーブルのデータ例を示す図である。
【図１４】タイマ処理を登録する処理を示すシーケンス図である。
【図１５】タイマ処理を登録後のタイマ管理テーブルのデータ例を示す図である。
【図１６】取得情報登録後のデータストアのデータ例を示す図である
【図１７】タイムアウトの通知をする処理を示すシーケンス図である。
【図１８】タイムアウトの通知後のタイマ管理テーブルのデータ例を示す図である。
【図１９】タイムアウトの通知後の処理を示すシーケンス図である。
【図２０】タイマ処理解除後のタイマ管理テーブルのデータ例を示す図である。
【図２１】コンピュータ装置の一実施例を示すブロック図である。
【発明を実施するための形態】
【００１０】
［実施形態］
実施形態の情報処理装置について説明する。
以下の説明において、実施形態の情報処理装置は、タイマ管理装置ともいう。
【００１１】
図１は、タイマ管理装置が適用される通信システムの一実施例を示す図である。
図１を参照して、タイマ管理装置が適用されるシステムについて説明する。以下の説明では、タイマ管理装置をＮ−ＡＣＴ構成のシステムに適用した構成を一例として説明する。ただし、タイマ管理装置は、Ｎ−ＡＣＴ構成のシステムへの適用に限定されるものではなく、複数のサーバのタイマを管理するシステムに対して適宜適用することができるものである。また、以下の説明においては、一例として、ＳＩＰ（Ｓｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）に対応する通信システムについて説明するが、ＳＩＰに限定されるものではなく、各処理のセッションを管理することができる他のプロトコルを用いても良い。
【００１２】
タイマ管理装置が適用されるシステムは、端末１０〜１Ｎと、負荷分散装置２０と、サーバ３０〜３Ｎ（サーバ装置）と、タイマ管理装置６０と、データ管理装置９０とを有する。Ｎは任意の整数である。
【００１３】
タイマ管理装置が適用されるシステムでは、端末１０〜１Ｎと、負荷分散装置２０と、サーバ３０〜３Ｎと、タイマ管理装置６０と、データ管理装置９０とが、それぞれ無線、またはネットワークを介して通信可能に接続されている。
【００１４】
また、サーバ３０〜３Ｎは、図示を省略しているが通信先である複数のサーバや端末と、無線、またはネットワークを介して通信可能に接続される。
【００１５】
以下の説明において、端末１０〜１Ｎのいずれか一つを示すときには、端末１とも記載する。サーバ３０〜３Ｎのいずれか一つを示すときには、サーバ３とも記載する。なお、端末１とは、Ｎ−ＡＣＴ構成のシステムが提供するサービスを受けるクライアントの端末であり、例えば、パソコンや電話機などである。
【００１６】
端末１は、負荷分散装置２０を介して、サーバ３にリクエストを送信する。また、端末１は、サーバ３から負荷分散装置２０を介して、リクエストに対するレスポンスを受信する。なお、端末１は、一度に複数のサーバ３に対してリクエストを送信しても良い。
【００１７】
負荷分散装置２０は、各種負荷分散方式に基づいて、端末１から送信されたリクエストをサーバ３に振り分ける。また、負荷分散装置２０は、サーバ３から受信したレスポンスを、サーバ３から指定された送信先に対応する端末１に振り分ける。負荷分散装置２０は、例えば、ロードバランサなどである。
【００１８】
負荷分散装置２０は、負荷分散方式として、静的分散方式（ラウンドロビン、および静的な重み付きラウンドロビンなど）や動的分散方式（最小コネクション数、最小クライアント数、最小データ通信量、最小応答時間、および最小サーバ負荷など）などの方式を任意に用いることができる。以下の説明において、リクエストと、レスポンスとをメッセージともいう。
【００１９】
サーバ３０〜３Ｎは、それぞれ処理部４０〜４Ｎ、および通知部５０〜５Ｎを有する。サーバ３０〜３Ｎは、例えば、サービスを提供する処理部４０〜４Ｎが起動しているコンピュータ装置である。また、処理部４０〜４Ｎと、通知部５０〜５Ｎとは、例えば、サーバ３０〜３Ｎでそれぞれ実行されるプログラムである。以下の説明において、処理部４０〜４Ｎのいずれか一つを示すときには、処理部４とも記載する。通知部５のいずれか一つを示すときには、通知部５とも記載する。また、サーバ３０〜３Ｎは、それぞれ、図示しない記憶部を有する。
【００２０】
処理部４は、負荷分散装置２０を介して端末１からリクエストが入力されると、端末１とのセッションを開始する。すると、処理部４は、通知部５が有するタイマ処理の登録を受け付ける図示しないタイマＩＦ（インターフェース）を起動する。処理部４は、各トランザクション（処理）を開始するとき、開始するトランザクションに対するタイマ処理の登録（以下、タイマ登録ともいう。）をするために、通知部５にタイマ指定時刻（終了時刻）と、タイマ種別（時間計測種別）と、トランザクションＩＤ（処理識別子）とを通知する。処理部４は、例えば、Ｎ−ＡＣＴ構成のシステムが端末１にサービスを提供するために、サーバ３で起動されるアプリケーションプログラムである。
【００２１】
タイマ処理とは、例えば、後述するタイマ管理装置６０が通信システムで実行されるトランザクションにおける各種処理を監視し、監視している処理のタイムアウトを検知したとき、タイムアウトを処理部４に通知する処理のことを言う。トランザクションの一例として、ＳＩＰにおいては、例えば、ＩＮＶＩＴＥトランザクションなどがある。
【００２２】
タイマ指定時刻とは、例えば、トランザクションにおける処理が一定時間完了しないとき、処理部４がタイムアウトの通知を受け取る時刻をいう。すなわち、タイマ指定時刻とは、サーバ３が実行するトランザクションが完了せずにタイムアウトする時刻をいう。タイマ指定時刻には、例えば、タイマ種別に設定された時間を、現在時刻に加算することにより算出された時刻を用いても良い。
【００２３】
タイマ種別とは、例えば、登録するタイマ処理で使用するタイマの種類を示す識別情報である。そして、処理部４がＳＩＰアプリケーションである場合には、例えば、ＴｉｍｅｒＡ〜ＴｉｍｅｒＫ、セッションタイマなどがある。そして、タイマ種別は、トランザクションで実行される処理の種類ごとに設定される。
【００２４】
トランザクションＩＤは、例えば、登録するタイマ処理で監視するトランザクションを識別する識別情報である。そして、処理部４がＳＩＰアプリケーションである場合には、例えば、ＳＩＰメッセージに記述されたｂｒａｎｃｈパラメータを用いても良い。
【００２５】
なお、通知部５は、ＩＮＶＩＴＥリクエストを転送するとき、タイマ種別をＴｉｍｅｒＣ（＞１８０秒）に設定する。そして、ＴｉｍｅｒＣでは、ＴｉｍｅｒＣで設定された時間内にＩＮＶＩＴＥトランザクションのセッション状態（処理の状態）が呼設定中から呼出中に変化し、さらに通話中に変化することにより、正常にＩＮＶＩＴＥトランザクションが完了したと判定される。なお、セッション状態とは、トランザクションの処理の状態であり、トランザクションがどのような処理を行なっているかを示す情報のことを言う。
【００２６】
以下の説明では、説明の簡単化のため、トランザクションにおける処理は、ＩＮＶＩＴＥトランザクションの一連の処理であり、タイマ種別がＴｉｍｅｒＣであるものとして説明する。このため、タイマ処理では、一定の時間内にＩＮＶＩＴＥトランザクションが完了したか否かを判定するものとする。また、トランザクションとは、ＩＮＶＩＴＥトランザクションのことを示す。ただし、タイマ処理は、ＩＮＶＩＴＥトランザクションの一連の処理に対するものに限定されず、例えば、ＩＮＶＩＴＥトランザクションがＣａｌｌｉｎｇ状態でいられる最大時間であるＴｉｍｅｒＢなどを用いた他のタイマ処理にも適宜適用することができる。
【００２７】
処理部４は、タイマ管理装置６０からタイムアウトの通知とトランザクションＩＤとを受信すると、受信したトランザクションＩＤが示すトランザクションのタイムアウトに伴う処理を実行する。
【００２８】
トランザクションを実行する場合、処理部４は、例えば、トランザクションの実行状態を変更すると、データ管理装置９０が有するデータストア１１１に、トランザクションＩＤとセッション状態とを通知し、互いを関連付けて格納させる。そして、タイムアウトの通知とトランザクションＩＤとを受信した場合、処理部４は、データストア１１１からトランザクションＩＤに関連付けられたセッション状態を抽出する。これにより、タイムアウトの通知を受信した場合、処理部４は、セッション状態に対応するタイムアウトに伴う処理を実行する。
【００２９】
また、処理部４は、タイマ管理装置６０からタイムアウト通知とトランザクションＩＤとタイマ種別とを受信すると、データストア１１１から受信したトランザクションＩＤに対応するセッション状態を取得する。処理部４は、受信したタイマ種別に対応する処理のタイムアウト時に想定されるセッション状態と、取得したセッション状態とが一致するとき、トランザクションＩＤが示すトランザクションのタイムアウトに伴う処理を実行するようにしても良い。
【００３０】
具体的には、サーバ３の図示しない記憶部は、タイマ種別と、タイムアウト時に想定されるセッション状態とを関連付けた、図２に示すセッション状態テーブル１２０（第３格納部）を格納している。処理部４は、タイムアウトの通知とタイマ種別とを受信したとき、セッション状態テーブル１２０から受信したタイマ種別に対応するセッション状態を取得する。処理部４は、セッション状態テーブルから取得したセッション状態と、データストア１１１から取得したセッション状態とを比較する。比較の結果、セッション状態が一致する場合、処理部４は、トランザクションＩＤが示すトランザクションのタイムアウトに伴う処理を実行する。なお、セッション状態テーブル１２０は、サーバ３に処理部４がインストールされるときに、一緒に格納されても良い。
【００３１】
一例として、処理部４が実行するトランザクションに、ＴｉｍｅｒＣが設定されている場合について説明する。タイマ種別がＴｉｍｅｒＣであるときのタイムアウト時に想定されるセッション状態は、呼設定中か呼出中である。
【００３２】
タイムアウトの通知を受信した場合、処理部４は、データストア１１１から取得したセッション状態が呼設定中か呼出中のとき、ＴｉｍｅｒＣのタイムアウトに伴う処理として、ＣＡＮＣＥＬリクエストを生成し、図示しない通信先のサーバに送信する。
【００３３】
また、タイムアウトの通知を受信した場合、処理部４は、データストア１１１から取得したセッション状態が通話中のとき、トランザクションを実行する処理部４において、トランザクションがタイマ指定時刻までに完了したと判定する。すると、処理部４は、タイマ管理装置６０から受信したタイムアウトの通知を破棄する。
【００３４】
通知部５は、タイマ処理の登録のためのタイマＩＦを処理部４に提供する。また、通知部５は、処理部４によりタイマＩＦが起動されると、タイマ処理を識別するためのタイマＩＤ（時間計測識別子）を生成する。そして、通知部５は、タイマＩＤと処理部４より入力される入力情報とを、タイマ管理装置６０に通知する。さらに、通知部５は、生成したタイマＩＤを処理部４に通知する。ここで、処理部４より入力される入力情報とは、例えば、上述したタイマ指定時刻、タイマ種別、およびトランザクションＩＤなどである。
【００３５】
なお、各サーバ３の図示しない記憶部には、設定情報としてタイマ管理装置６０のアドレスが記憶されている。そして、通知部５は、タイマ管理装置６０と通信を行なうとき、設定情報に格納されたタイマ管理装置６０のアドレスを指定して情報を通知する。タイマ管理装置６０のアドレスとは、例えば、タイマ管理装置６０のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスである。また、タイマ管理装置６０のＩＰアドレスには、付加情報としてタイマ制御部７０を識別するためのポート番号を付加しても良い。以上のように、処理部４からタイマ管理装置６０（タイマ制御部７０）への情報の通知は、通知部５を介して行なうので、処理部４でタイマ管理装置６０のアドレスを保持する必要がない。
【００３６】
通知部５は、処理部４の起動時に、タイマ管理装置６０にサーバ３のアドレス（宛先情報）を送信する。これにより、タイマ管理装置６０は、サーバ３に情報を送信することができるようになる。サーバ３のアドレスとは、例えば、サーバ３のＩＰアドレスである。また、サーバ３のＩＰアドレスには、付加情報として通知部５を識別するためのポート番号を付加しても良い。
【００３７】
さらに、通知部５は、タイマ制御部７０から送信される、サーバ３の死活確認などを行なうためのリクエストである監視リクエストに対してレスポンスを送信する。
図３は、タイマ管理装置の一実施例を示す機能ブロック図である。図３を参照して、実施形態のタイマ管理装置６０の機能について説明する。
【００３８】
タイマ管理装置６０は、タイマ制御部７０と、記憶部８０とを有する。そして、タイマ管理装置６０は、各サーバ３と通信可能に接続される。タイマ管理装置６０は、例えば、コンピュータ装置である。
【００３９】
タイマ制御部７０は、Ｎ‐ＡＣＴ構成のシステムにおいて、各サーバ３のタイマ処理を一元管理する。
【００４０】
タイマ制御部７０は、取得部７１と、制御部７２と、設定部７３と、監視部７４と、ＯＳ７５とを有する。
【００４１】
取得部７１は、サーバ３０〜３Ｎと通信可能に接続され、トランザクションを実行するサーバ３から、サーバ３が実行するトランザクションがタイムアウトする時刻であるタイマ指定時刻を取得する。また、取得部７１は、サーバ３が実行するトランザクションを識別するトランザクションＩＤを取得する。さらに、取得部７１は、トランザクションを実行するサーバ３から、タイマＩＤを取得する。
【００４２】
制御部７２は、サーバ３からのリクエストを受け付けて、タイマの登録、タイマの起動、タイマの停止、およびタイムアウトの通知を実行する。
【００４３】
制御部７２は、トランザクションを実行するサーバ３からタイマの登録の通知とタイマＩＤとを受信する。すると、制御部７２は、サーバ３０〜３Ｎからタイムアウトの通知先にするサーバ３を選択し、タイマ指定時刻になるまでトランザクションを実行するサーバの処理が完了しないとき、選択したサーバにタイムアウトの通知とトランザクションＩＤとを送信する。これにより、制御部７２は、トランザクションＩＤに対応する処理のタイムアウトに伴う処理を、選択したサーバに実行させる。
【００４４】
また、制御部７２は、負荷分散方式として、静的分散方式や動的分散方式などの負荷分散方式を用いて、接続されたサーバ３０〜３Ｎからタイムアウトの通知先にするサーバ３を選択する。
【００４５】
制御部７２は、サーバ３を選択するごとに、選択したサーバ３を識別する情報であるサーバＩＤ（サーバ識別子）と、取得したタイマＩＤとを関連付けて記憶部８０に記憶されたタイマ管理テーブル８１（第２格納部）に格納する。そして、制御部７２は、タイムアウトの通知をするとき、タイマ管理テーブル８１からタイムアウトをしたタイマ処理のタイマＩＤに関連付けられたサーバＩＤを抽出する。また、制御部７２は、抽出したサーバＩＤに対応して格納されたサーバ３のアドレスを記憶部８０に記憶されたサーバ管理テーブル８２（第１格納部）から抽出し、抽出したサーバ３のアドレスを指定してタイムアウトの通知を送信する。
【００４６】
設定部７３は、サーバ３が起動され、新たに取得部７１に接続されたとき、サーバ３からサーバ３のアドレスを取得する。そして、設定部７３は、新たに接続されたサーバ３を識別するサーバＩＤを設定し、設定したサーバＩＤと取得したサーバ３のアドレスとを関連付けてサーバ管理テーブル８２に格納する。
【００４７】
監視部７４は、選択したサーバ３に監視リクエストの送信時刻であるリクエスト時刻（第１の送信時刻）を刻印した監視リクエストを送信する。また、監視部７４は、サーバ３０〜３Ｎから監視リクエストに対するレスポンスである監視レスポンスの送信時刻であるレスポンス時刻（第２の送信時刻）を刻印した監視リクエストを受信する。なお、監視部７４は、周期的にサーバ３０〜３Ｎにリクエスト時刻を刻印した監視リクエストを送信し、サーバ３０〜３Ｎからレスポンス時刻を刻印した監視リクエストを受信しても良い。
【００４８】
そして、監視部７４は、リクエスト時刻とレスポンス時刻との差を、選択したサーバ３との通信におけるタイムラグ（差分時間）として取得する。このとき、監視部７４は、接続された各サーバ３のタイムラグと、各サーバ３のサーバＩＤとを関連付けてサーバ管理テーブル８２に格納しても良い。
【００４９】
制御部７２は、トランザクションを実行するサーバ３から、タイマ指定時刻を取得すると、サーバ管理テーブル８２から選択したサーバ３のサーバＩＤに関連付けられたタイムラグを抽出する。そして、制御部７２は、選択したサーバ３から受信したタイマ指定時刻から、抽出したサーバ３のタイムラグを減算してタイマ満了時刻を算出する。このとき、制御部７２は、タイマ指定時刻に代えてタイマ満了時刻になると、選択したサーバ３にタイムアウトの通知を送信しても良い。これにより、タイマ管理装置６０は、タイムラグの分だけタイマ指定時刻よりも早くサーバ３にタイムアウトの通知を送信することになるので、サーバ３のタイマ指定時刻にタイムアウトをサーバ３に通知することができる。
【００５０】
このとき、サーバ３のトランザクションがタイマ満了時刻からタイマ指定時刻の間に完了すると、トランザクションが完了しているのにもかかわらず、制御部７２が選択したサーバ３にタイムアウトが通知されることになる。すると、サーバ３において、トランザクションが完了したにもかかわらず、タイムアウトに伴う処理が実行されてしまう。これを回避するために、サーバ３の処理部４は、タイマ管理装置６０から通知されるタイマ種別と、データストア１１１に格納されているセッション状態とが対応するときに、タイムアウトに伴う処理を実行する。よって、サーバ３は、タイマ処理をタイマ管理装置６０で一元管理した結果、タイムラグに起因するタイマ処理とトランザクションの完了のすれ違いにより発生する、タイムアウトに伴う処理の誤動作を回避することができる。
【００５１】
さらに、監視部７４は、新たなサーバ３が取得部７１に接続されたとき、新たに接続されたサーバ３に、リクエスト時刻を刻印した監視リクエストを送信し、新たに接続されたサーバ３から、レスポンス時刻を刻印した監視レスポンスを受信する。そして、監視部７４は、新たに接続されたサーバ３のリクエスト時刻とレスポンス時刻との差を、新たに接続されたサーバ３との通信におけるタイムラグとして取得する。このとき、監視部７４は、新たに接続されたサーバ３のタイムラグと、サーバ３のサーバＩＤとを関連付けてサーバ管理テーブル８２に格納しても良い。
【００５２】
監視部７４は、周期的にサーバ３０〜３Ｎに監視リクエストを送信する。そして、監視部７４は、サーバ３０〜３Ｎから監視レスポンスを受信することにより、サーバ３０〜３Ｎの死活確認を行なっている。監視部７４は、例えば、サーバ３に監視リクエストを送信したにもかかわらず、一定の時間内に、サーバ３から監視レスポンスの返信がないと、サーバ３が故障したと判定する。
【００５３】
また、監視部７４は、制御部７２がタイムアウトの通知先として選択したサーバ３から送信した監視リクエストに対する監視レスポンスの返信がないとき、サーバ３０〜３Ｎから選択したサーバ３以外のサーバ３を新たに選択する。
【００５４】
そして、制御部７２は、トランザクションを実行するサーバ３から取得したタイマ指定時刻になるまでトランザクションを実行するサーバ３のトランザクションが完了しないとき、新たに選択したサーバにタイムアウトの通知とトランザクションＩＤとを送信する。これにより、制御部７２は、新たに選択したサーバ３にトランザクションＩＤに対応する処理のタイムアウトに伴う処理を実行させる。
【００５５】
ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）７５は、タイマＩＤごとに制御部７２から通知されたタイマをカウントし、サーバ３０〜３Ｎの実行する各トランザクションがタイムアウトするか監視する。そして、ＯＳ７５は、タイムアウトを検知したときに制御部７２にタイムアウトの通知をする。なお、ＯＳ７５のタイマのカウントに代えて、制御部７２でタイマをカウントし、タイムアウトを検知しても良い。
記憶部８０は、タイマ管理テーブル８１と、サーバ管理テーブル８２とを記憶する。
【００５６】
図４は、タイマ管理テーブルのデータ例を示す図である。
タイマ管理テーブル８１は、図４に示すように、タイマＩＤと、サーバＩＤと、タイマ満了時刻と、トランザクションＩＤと、タイマ種別とを格納する。
【００５７】
タイマＩＤは、処理部４からタイマ処理の登録要求が通知部５に入力されると、通知部５で生成されるタイマ処理の識別情報である。そして、タイマＩＤは、通知部５から処理部４と、タイマ管理装置６０とに通知され、処理部４と、タイマ管理装置６０のタイマ管理テーブル８１とに保持される。
【００５８】
サーバＩＤは、新たに接続されたサーバ３を識別するための識別情報であって、設定部７３により設定される。
【００５９】
タイマ満了時刻は、サーバ３から通知されたタイマ指定時刻から、監視部７４で取得したサーバ３のタイムラグを減算した時刻である。なお、制御部７２でタイムラグを考慮せずに、タイムアウトの通知を選択したサーバ３に通知する場合には、タイマ満了時刻に代えてタイマ指定時刻を格納しても良い。
【００６０】
トランザクションＩＤは、処理部４でトランザクションに対するタイマ処理の登録をするときに、設定するトランザクションを識別するための情報である。
【００６１】
タイマ種別は、タイマ処理で使用するタイマの種別を識別するための情報である。一例として、ＩＮＶＩＴＥリクエストの場合には、タイマの種別としてＴｉｍｅｒＣ（１０）が設定される。
【００６２】
図５は、サーバ管理テーブルのデータ例を示す図である。
サーバ管理テーブル８２は、図５に示すように、サーバＩＤと、アドレスと、タイムラグとを格納する。
【００６３】
サーバＩＤは、設定部７３により設定されたサーバＩＤである。
アドレスは、サーバＩＤに対応するサーバ３のＩＰアドレスである。
タイムラグは、監視部７４で取得されたサーバ３とタイマ管理装置６０との間のタイムラグである。
【００６４】
図６は、タイマ管理テーブルのデータ例を示す図である。
図７は、サーバ管理テーブルのデータ例を示す図である。
図４〜図７を参照して、監視部７４によりサーバＩＤが♯３のサーバが故障したと判定されたときについて、タイマ管理テーブル８１とサーバ管理テーブル８２とのレコードの書き換えを説明する。以下の説明において、タイマＩＤが“ＧＨＩ”のタイマ処理のタイマ指定時刻は、３３．３２秒であるものとする。なお、時刻情報は、分以上について省略して記載する。
【００６５】
制御部７２は、監視部７４でサーバＩＤが“♯３”のサーバが故障したと判定されたとき、タイムアウトの通知先のサーバ３をサーバＩＤが“♯２”のサーバに変更する。これにより、制御部７２は、タイマＩＤが“ＧＨＩ”のタイマ処理がタイムアウトしたとき、タイムアウトを通知するサーバ３をサーバＩＤが“♯２”のサーバとすることができる。よって、制御部７２は、故障していないサーバ３にタイムアウトに伴う処理を実行させることができる。
【００６６】
また、制御部７２は、接続されたサーバ３が複数あるときには、所定の負荷分散方式を用いて、変更先のサーバ３を選択することにより、タイムアウトに伴う処理の負荷分散をすることができる。
【００６７】
また、制御部７２は、サーバＩＤが“♯２”のサーバに対応するタイムラグを用いてタイマ満了時刻を更新する。制御部７２は、図５に示すサーバ管理テーブル８２からサーバＩＤが“♯２”のサーバに対応するタイムラグである“０．４０”秒を抽出する。そして、制御部７２は、抽出したタイムラグ“０．４０”秒を、タイマＩＤが“ＧＨＩ”のタイマ指定時刻である３３．３２秒から減算することにより、タイマＩＤが“ＧＨＩ”のタイマ処理に対応するタイマ満了時刻“３２．９２”秒を算出する。
【００６８】
そして、制御部７２は、図４に示すタイマ管理テーブル８１を更新して、図６に示すようにタイマ管理テーブル８１を上書きする。
【００６９】
さらに、制御部７２は、図７に示すように、サーバＩＤが“♯３”のサーバが故障したとき、サーバ管理テーブル８２に格納されているサーバＩＤが“♯３”に対応するレコードを削除しても良い。これにより、制御部７２は、タイムアウトの通知先のサーバ３を選択するとき、サーバ管理テーブル８２に登録されているサーバの中から選択することにより、サーバＩＤが“♯３”の故障したサーバを、タイムアウトの通知先から除外することができる。
【００７０】
図１を参照して説明する。
データ管理装置９０は、データ制御部１００と、記憶部１１０とを備える。データ管理装置９０は、例えば、データストア１１１のデータを読み書きするデータ制御部１００が起動しているコンピュータ装置である。
【００７１】
データ制御部１００は、データ管理装置９０で受信したデータを記憶部１１０に記憶する。また、データ制御部１００は、記憶部１１０に記憶されたデータを、接続される装置からの要求に応じて抽出し、接続された装置に送信する。
記憶部１１０は、データストア１１１を記憶する。
【００７２】
図８は、データストアのデータ例を示す図である。
データストア１１１は、図８に示すように、トランザクションＩＤと、セッション状態と、タイマＩＤと、タイマ種別と、トランザクション情報とを格納する。
【００７３】
データストア１１１に格納されている情報は、トランザクションを実行しているサーバ３から各種情報に変更があるごとに通知される。そして、データ制御部１００は、トランザクションＩＤと、セッション状態と、タイマＩＤと、タイマ種別と、トランザクション情報などが通知されるごとに、該当するエントリを更新する。
【００７４】
なお、トランザクション情報とは、トランザクションに関する情報を示すものであり、ＳＩＰプロトコルの場合には、後述する発加入者情報、着加入者情報、Ｃａｌｌ−ＩＤなどが記憶される。
【００７５】
図９は、ＳＩＰのＩＮＶＩＴＥリクエストの記述例を示す図である。
図９は、ＳＩＰにおいて、処理部４から出力されるＩＮＶＩＴＥリクエスト１３０である。図９を参照して、ＳＩＰにおけるＩＮＶＩＴＥトランザクションにおいて、データストア１１１のトランザクション情報に格納されるデータの一例を説明する。
【００７６】
発加入者情報として、５行目に記述されるように、“alice@atlanta.com”が格納される。なお、発加入者とは、ＩＮＶＩＴＥリクエスト１３０の発信者のことをいう。
【００７７】
着加入者情報として、４行目に記述されるように、“bob@biloxi.com”が格納される。なお、着加入者とは、ＩＮＶＩＴＥリクエスト１３０の受信者のことをいう。
【００７８】
Ｃａｌｌ−ＩＤとして、６行目に記述されるように、“a84b4c76e66710@pc33.atlanta.com”が格納される。Ｃａｌｌ−ＩＤとは、一連の通話で発生するリクエストやレスポンスを識別するための情報である。
【００７９】
なお、トランザクションＩＤには、一例として、２行目に記述されるように、“z9hG4bK776asdhds”が格納される。
【００８０】
ＳＩＰにおけるトランザクションにおいて、サーバ３は、タイムアウトの通知を受信すると、ＴｉｍｅｒＣのタイムアウトに伴う処理として、ＣＡＮＣＥＬリクエストを生成する。そして、サーバ３は、タイマ管理装置６０から受信したトランザクションＩＤに関連付けされた着加入者情報をデータストア１１１から取得する。これにより、サーバ３は、ＣＡＮＣＥＬリクエストを着加入者に送信することができる。
【００８１】
図１０は、サーバ接続時の処理を示すシーケンス図である。
図１１は、サーバ接続時のサーバ管理テーブルのデータ例を示す図である。
図１０、図１１を参照して、サーバ３０〜３Ｎが起動され、サーバ３０〜３Ｎがタイマ管理装置６０に通信接続されたときの処理を説明する。以下の説明においては、簡単化のため、サーバ３０〜３Ｎのなかで、サーバ３０とサーバ３Ｎとの動作を説明する。なお、サーバ３０〜３Ｎはいずれも、同じ動作をする。
【００８２】
サーバ３０の通知部５０は、サーバ３０がタイマ管理装置６０と接続されると、サーバ３０が有する設定ファイルから、サーバ３０のアドレスと、タイマ管理装置６０のアドレスとを取得する（Ｓ１）。
【００８３】
そして、通知部５０は、タイマ管理装置６０のアドレスを指定して、サーバ３０のアドレスをタイマ管理装置６０に送信する（Ｓ２）。
【００８４】
タイマ管理装置６０は、サーバ３０のアドレスを取得すると（Ｓ３）、サーバ３０のサーバＩＤを生成し、その生成したサーバＩＤとサーバ３０のアドレスとを関連付けてサーバ管理テーブル８２に格納する（Ｓ４）。
【００８５】
Ｓ１〜Ｓ４の処理を実行することにより、サーバ管理テーブル８２には、図１１（ａ）に示すように、サーバ３０のサーバＩＤとして生成された“♯１”と、サーバ３０のアドレスである“192.168.5.10”とが関連付けられて格納される。
【００８６】
サーバ３Ｎの通知部５Ｎは、サーバ３Ｎがタイマ管理装置６０と接続されると、サーバ３Ｎが有する設定ファイルから、サーバ３Ｎのアドレスと、タイマ管理装置６０のアドレスとを取得する（Ｓ５）。
【００８７】
そして、通知部５Ｎは、タイマ管理装置６０のアドレスを指定して、サーバ３Ｎのアドレスをタイマ管理装置６０に送信する（Ｓ６）。
【００８８】
タイマ管理装置６０は、サーバ３Ｎのアドレスを取得すると（Ｓ７）、サーバ３ＮのサーバＩＤを生成し、その生成したサーバＩＤとサーバ３Ｎのアドレスとを関連付けてサーバ管理テーブル８２に格納する（Ｓ８）。
【００８９】
Ｓ５〜Ｓ８の処理を実行することにより、サーバ管理テーブル８２には、図１１（ｂ）に示すように、サーバ３ＮのサーバＩＤとして生成された“♯Ｎ”と、サーバ３Ｎのアドレスである“192.168.10.15”とが関連付けられて格納される。
【００９０】
図１２は、タイマ管理装置のタイムラグ取得の処理を示すシーケンス図である。
図１３は、タイムラグ取得後のサーバ管理テーブルのデータ例を示す図である。
図１２、図１３を参照して、タイマ管理装置６０が、サーバ３０〜３Ｎとの通信におけるタイムラグを取得する処理を説明する。
【００９１】
タイマ管理装置６０は、サーバ３０〜３Ｎの周期監視を開始すると（Ｓ１０）、サーバ管理テーブル８２を検索して（Ｓ１１）、サーバ３０〜３Ｎのアドレスを取得する（Ｓ１２）。
【００９２】
さらに、タイマ管理装置６０は、現在時刻を取得して（Ｓ１３）、取得した現在時刻をリクエスト時刻として刻印した監視リクエストをサーバ３０〜３Ｎに送信する（Ｓ１４）。
【００９３】
サーバ３０〜３Ｎの通知部５０〜５Ｎは、それぞれ監視リクエストを受信すると、現在時刻を取得して（Ｓ１５、Ｓ１６）、取得した現在時刻をレスポンス時刻として刻印した監視レスポンスをタイマ管理装置６０に送信する（Ｓ１７）。
【００９４】
タイマ管理装置６０は、受信した監視レスポンスに含まれるレスポンス時刻をリクエスト時刻から減算することにより、サーバ３０〜３Ｎとの通信のタイムラグをそれぞれ算出する（Ｓ１８）。
【００９５】
そして、タイマ管理装置６０は、算出したサーバ３０〜３Ｎとの通信のタイムラグをそれぞれ格納する（Ｓ１９）。
【００９６】
Ｓ１０〜Ｓ１９の処理を実行することにより、サーバ管理テーブル８２には、図１３（ｃ）に示すように、サーバ３０〜３Ｎについて、それぞれサーバＩＤと、サーバ３のアドレスと、タイムラグとが関連付けて格納される。
【００９７】
なお、Ｓ１０〜Ｓ１９の説明において、タイマ管理装置６０は、サーバ３０〜３Ｎのアドレスを一括して取得したが、順番にサーバ３０〜３Ｎのアドレスを取得しても良い。そして、タイマ管理装置６０は、サーバ３のアドレスを取得するごとに、現在時刻を取得して、取得した現在時刻をリクエスト時刻として刻印した監視リクエストをサーバ３に送信しても良い。
【００９８】
図１４は、タイマ処理を登録する処理を示すシーケンス図である。
図１５は、タイマ処理を登録後のタイマ管理テーブルのデータ例を示す図である。
図１６は、取得情報登録後のデータストアのデータ例を示す図である。
【００９９】
図１４を参照して、タイマ管理テーブル８１とデータストア１１１とに、実施形態のタイマ処理に必要な情報を登録する処理を説明する。以下の説明においては、簡単化のため、サーバ３０〜３Ｎの中で、サーバ３０の動作を説明する。なお、サーバ３０〜３Ｎはいずれも、同じ動作をする。
【０１００】
サーバ３０は、端末１から負荷分散装置２０を介してリクエストを受信する（Ｓ２０）。すると、処理部４は、トランザクションＩＤと、タイマ指定時刻と、タイマ種別とを関連付けて、タイマ処理の登録のリクエスト（以下、登録リクエストともいう。）とともに通知部５０に通知する（Ｓ２１）。本実施例では、タイマ指定時刻は、トランザクションにおける処理の種類（タイマ種別）ごとに定められた時間を現在時刻に加算した時刻を用いている。
【０１０１】
通知部５０は、登録リクエストが通知されると、登録するタイマ処理に対するタイマＩＤを生成する。そして、通知部５０は、処理部４０から通知されたトランザクションＩＤと、タイマ指定時刻と、タイマ種別とに、生成したタイマＩＤを関連付けて、登録リクエストと一緒にタイマ管理装置６０に通知する（Ｓ２３）。
【０１０２】
また、通知部５０は、生成したタイマＩＤを処理部４０に通知する（Ｓ２４）。これにより、処理部４０は、タイマＩＤを指定して、所定のタイマ処理を停止させることができる。
【０１０３】
タイマ管理装置６０は、登録リクエストが通知されると、タイムアウトの通知先のサーバ３を決定する（Ｓ２５）。タイマ管理装置６０は、タイムアウトの通知先のサーバ３を決定するとき、サーバ管理テーブル８２に登録されているサーバＩＤの中から、負荷分散方式を用いてサーバＩＤを抽出する。そして、タイマ管理装置６０は、決定したサーバＩＤに対応するサーバ３をタイムアウトの通知先として決定する。
【０１０４】
タイマ管理装置６０は、タイマ満了時刻を算出する（Ｓ２６）。タイマ管理装置６０は、タイマ満了時刻を算出するとき、Ｓ２５において、サーバ管理テーブル８２から抽出したサーバＩＤに関連付けられたタイムラグを抽出する。そして、タイマ管理装置６０は、サーバ３０から通知されたタイマ指定時刻から、抽出したタイムラグを減算することにより、タイマ満了時刻を算出する。
【０１０５】
以上により、タイマ管理装置６０は、図１５に示すように、取得したタイマＩＤと、サーバＩＤと、タイマ満了時刻と、トランザクションＩＤと、タイマ種別とを関連付けて、タイマ管理テーブル８１に格納する（Ｓ２７）。
【０１０６】
Ｓ２０〜Ｓ２７の処理を実行することにより、タイマ管理テーブル８１には、タイマ処理毎にタイムアウトの通知先として決定したサーバ３のサーバＩＤに関連付けられて、タイマＩＤと、タイマ満了時刻と、トランザクションＩＤと、タイマ種別とが格納される。このとき、タイマ管理テーブル８１には、例えば、図１５に示す値が格納される。
【０１０７】
さらに、処理部４０は、データストア１１１にトランザクションＩＤと、セッション状態と、タイマＩＤと、タイマ種別と、トランザクション情報とを通知する（Ｓ２８）。Ｓ２８のデータストア１１１への各種情報の通知は、各種情報に変更があるごとに行なわれる。これにより、データストア１１１には、トランザクションを実行するサーバ３０の最新の状態が格納されることになる。よって、後述するＳ３７において、サーバ３Ｎの処理部４Ｎは、サーバ３０の最新のセッション状態を取得することができる。
【０１０８】
そして、データ管理装置９０は、図１６に示すように、データストア１１１に処理部４０から通知されたトランザクションＩＤと、セッション状態と、タイマＩＤと、タイマ種別と、トランザクション情報とを関連付けて格納する（Ｓ２９）。
【０１０９】
図１７は、タイムアウトの通知をする処理を示すシーケンス図である。
図１８は、タイムアウトの通知後のタイマ管理テーブルのデータ例を示す図である。
図１７、図１８を参照して、タイムアウトを検知する処理を説明する。以下の説明においては、サーバ３Ｎにタイムアウトを通知したときを一例として説明する。
【０１１０】
ＯＳ７５は、タイマ管理テーブル８１に登録したタイマ満了時刻を用いて、タイマＩＤごとにタイマ満了時刻までカウントする。ＯＳ７５は、カウント完了後にタイマＩＤに対応するトランザクションが完了していない場合、そのタイムＩＤに対応するトランザクションのタイムアウトを制御部７２に通知する。
【０１１１】
タイマ管理装置６０の制御部７２は、ＯＳ７５よりタイマ処理のタイムアウトが通知されると（Ｓ３０）、タイムアウトが通知されたタイマＩＤをキーとして、タイマ管理テーブル８１からサーバＩＤを抽出する（Ｓ３１）。タイマ管理装置６０は、例えば、ＯＳ７５から通知されたタイマＩＤが“ＧＨＩ”のとき、図１５のタイマ管理テーブル８１からサーバＩＤとして、“♯Ｎ”を抽出する。
【０１１２】
さらに、タイマ管理装置６０は、Ｓ３２で抽出したサーバＩＤをキーとして、サーバ管理テーブル８２からサーバＩＤに関連付けられたサーバ３のアドレスを抽出する（Ｓ３２）。タイマ管理装置６０は、例えば、Ｓ３１で抽出したサーバＩＤが“♯Ｎ”のとき、図１３のサーバ管理テーブル８２からサーバ３のアドレスとして、“192.168.10.15”（サーバ３Ｎのアドレス）を抽出する。
【０１１３】
そして、タイマ管理装置６０は、Ｓ３２で抽出したアドレスを指定して、サーバ３Ｎにタイムアウトを通知する（Ｓ３３）。このとき、タイマ管理装置６０は、トランザクションＩＤとタイマ種別とを一緒にサーバ３に通知する。タイマ管理装置６０は、例えば、タイマＩＤが“ＧＨＩ”のとき、図１５に示すタイマ管理テーブル８１からトランザクションＩＤとして“７８９”を抽出して、サーバ３Ｎに通知する。
【０１１４】
また、タイマ管理装置６０は、Ｓ３３において、タイムアウトを通知すると、図１８に示すように、タイマ管理テーブル８１から、タイムアウトを通知したタイマ処理に対応するタイマＩＤが属するレコードを削除する（Ｓ３４）。なお、後述するＳ４５〜Ｓ４８の処理を実行する場合には、Ｓ３４の処理を省略しても良い。
【０１１５】
サーバ３Ｎの処理部４Ｎは、タイムアウトが通知されると、データ管理装置９０に、処理情報取得要求と、タイマ管理装置６０から通知されたトランザクションＩＤとをデータ管理装置９０に送信する（Ｓ３５）。処理情報取得要求は、タイムアウトに伴う処理に必要な情報を取得するための要求である。
【０１１６】
データ管理装置９０は、処理情報取得要求とトランザクションＩＤとを受信すると、トランザクションＩＤに対応付けられた、セッション状態と、タイマＩＤと、タイマ種別と、トランザクション情報とをデータストア１１１から抽出する（Ｓ３６）。タイマ管理装置６０は、例えば、受信したトランザクションＩＤが“７８９”のとき、図１６に示すデータストア１１１からセッション状態（Ｓ２）と、タイマＩＤ（ＧＨＩ）と、タイマ種別（ｄｅｆ）と、トランザクション情報（Ｔ２）とを抽出する。以下の説明において、処理情報とは、セッション状態と、タイマＩＤと、タイマ種別と、トランザクション情報のことをいう。
【０１１７】
そして、データ管理装置９０は、抽出した処理情報通知をサーバ３Ｎに送信する（Ｓ３７）。
【０１１８】
サーバ３Ｎの処理部４Ｎは、処理情報を受信すると、タイムアウトの通知の正当性を確認する（Ｓ３８）。ここで、処理部４Ｎによるタイムアウトの通知の正当性の確認とは、例えば、Ｓ３３でタイマ管理装置６０から通知されたタイマ種別から想定されるセッション状態と、Ｓ３７でデータ管理装置９０から通知されたセッション状態とが対応しているか否かを判定する。そして、処理部４Ｎは、タイマ種別とセッション状態とが対応しているとき、Ｓ３３で通知されたタイムアウトの通知が正常であると判定し、タイムアウトに伴う処理を実行する（Ｓ３９）。
【０１１９】
図１８は、タイムアウトの通知後の処理を示すシーケンス図である。
図１９を参照して、図１７のＳ３８において、タイムアウトの通知が異常であると判定したときと、タイムアウトの通知が正常であると判定したときの処理を説明する。なお、以下の説明では、タイマ種別として、ＴｉｍｅｒＣが設定されている場合について説明する。
【０１２０】
Ｓ３８において、サーバ３Ｎの処理部４Ｎは、Ｓ３３でのタイムアウトの通知が異常であると判定すると（Ｓ４０）、タイマ処理を破棄する（Ｓ４１）。
【０１２１】
Ｓ３８において、サーバ３Ｎの処理部４Ｎは、Ｓ３３でのタイムアウトの通知が正常であると判定すると（Ｓ４２）、例えば、ＣＡＮＣＥＬリクエストを生成する（Ｓ４３）。そして、処理部４Ｎは、Ｓ３７で取得したトランザクション情報に含まれる、着加入者情報が示す宛先を指定して、ＣＡＮＣＥＬリクエストを送信する（Ｓ４４）。これにより、処理部４Ｎは、タイムアウトしたトランザクションを終了させる。
【０１２２】
処理部４Ｎは、Ｓ４１、Ｓ４４を実行すると、タイマ登録の削除要求を、終了させたトランザクションのタイマ処理のタイマＩＤと一緒に通知部５Ｎに入力する（Ｓ４５）。なお、Ｓ３４において、タイマ管理テーブル８１から、タイムアウトを通知したタイマ処理のタイマＩＤが属するレコードを削除した場合、Ｓ４５〜Ｓ４８の処理を省略しても良い。
【０１２３】
通知部５Ｎは、タイマ登録の削除要求とタイマＩＤとが処理部４Ｎから入力されると、入力されたタイマ登録の削除要求とタイマＩＤとをタイマ管理装置６０に転送する（Ｓ４６）。
【０１２４】
タイマ管理装置６０は、サーバ３Ｎからタイマ登録の削除要求とタイマＩＤとを受信すると、タイマ管理テーブル８１から受信したタイマＩＤが属するレコードを削除する（Ｓ４７）。タイマ管理装置６０は、例えば、サーバ３Ｎから通知されたタイマＩＤが“ＡＢＣ”のとき、図２０（ａ）のタイマ管理テーブル８１からタイマＩＤがＡＢＣのレコードを抽出し、抽出したレコードを削除する。これにより、タイマ管理テーブル８１が格納する情報は、図２０（ｂ）に示す情報となる。
【０１２５】
図２１は、コンピュータ装置の一実施例を示すブロック図である。
図２１は、コンピュータ装置のブロック図である。以下、実施形態のサーバ３０〜３Ｎと、タイマ管理装置６０と、およびデータ管理装置９０とをコンピュータ装置２００で実現するときの構成について説明する。
【０１２６】
図２１において、コンピュータ装置２００は、制御回路２０１と、記憶装置２０２と、読取装置２０３と、記録媒体２０４と、通信インターフェイス２０５（通信Ｉ／Ｆ）と、入出力インターフェイス２０６（入出力Ｉ／Ｆ）と、ネットワーク２０７と、を備えている。また、各構成要素は、バス２０８により接続されている。
【０１２７】
制御回路２０１は、コンピュータ装置全体の制御をする。そして、制御回路２０１は、例えば、ＣＰＵ、マルチコアＣＰＵ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）およびＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などである。コンピュータ装置２００がサーバ３０〜３Ｎであるとき、制御回路２０１は、図１において、処理部４０〜４Ｎとして機能する。また、コンピュータ装置２００がタイマ管理装置６０であるとき、制御回路２０１は、図１において、タイマ制御部７０として機能し、図３において、制御部７２と、設定部７３と、監視部７４と、ＯＳ７５として機能する。そして、コンピュータ装置２００がデータ管理装置９０であるとき、図１において、制御回路２０１は、データ制御部１００として機能する。
【０１２８】
記憶装置２０２は、各種データを記憶する。そして、記憶装置２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリや、ＨＤ（Ｈａｒｄ  Ｄｉｓｋ）などで構成される。コンピュータ装置２００がサーバ３０〜３Ｎであるとき、記憶装置２０２は、図１において、図示しないサーバ３０〜３Ｎの記憶部として機能し、セッション状態テーブル１２０を記憶する。コンピュータ装置２００がタイマ管理装置６０であるとき、記憶装置２０２は、図１、図３において、記憶部８０として機能し、タイマ管理テーブル８１とサーバ管理テーブル８２とを記憶する。また、コンピュータ装置２００がデータ管理装置９０であるとき、図１において、記憶装置２０２は、記憶部１１０として機能し、データストア１１１を記憶する。
【０１２９】
また、ＲＯＭは、ブートプログラムなどのプログラムを記憶している。ＲＡＭは、制御回路２０１のワークエリアとして使用される。ＨＤは、ＯＳ、アプリケーションプログラム、ファームウェアなどのプログラム、および各種データを記憶している。
【０１３０】
そして、コンピュータ装置２００がサーバ３０〜３Ｎであるとき、記憶装置２０２は、制御回路２０１を、図１に示す処理部４０〜４Ｎとして機能させるためのプログラムを記憶する。コンピュータ装置２００がタイマ管理装置６０であるとき、記憶装置２０２は、制御回路２０１を、図１に示すタイマ制御部７０と、図３に示す制御部７２と、設定部７３と、監視部７４と、ＯＳ７５として機能させるためのタイマ管理プログラムを記憶する。コンピュータ装置２００がデータ管理装置９０であるとき、記憶装置２０２は、制御回路２０１を、図１に示すデータ制御部１００として機能させるためのプログラムを記憶する。
【０１３１】
そして、タイマ処理をするとき、サーバ３０〜３Ｎと、タイマ管理装置６０と、データ管理装置９０との制御回路２０１は、それぞれ記憶装置２０２に記憶されたプログラムをＲＡＭに読み出す。これにより、コンピュータ装置２００がサーバ３０〜３Ｎであるとき、制御回路２０１は、図１において、処理部４０〜４Ｎとして機能する。また、コンピュータ装置２００がタイマ管理装置６０であるとき、制御回路２０１は、図１において、タイマ制御部７０として機能し、図３において、制御部７２と、設定部７３と、監視部７４と、ＯＳ７５として機能する。そして、コンピュータ装置２００がデータ管理装置９０であるとき、図１において、制御回路２０１は、データ制御部１００として機能する。なお、サーバ３０〜３Ｎと、タイマ管理装置６０と、データ管理装置９０との制御回路２０１に記憶されたプログラムは、制御回路２０１が通信インターフェイス２０５を介してアクセス可能であれば、ネットワーク２０７上のサーバに記憶されていても良い。
【０１３２】
また、記憶装置２０２がＨＤである場合、ＨＤは、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を介してバス２０８に接続される。そして、ＨＤは、ＨＤＤが制御回路２０１に制御され、データのリード／ライトが行なわれる。
【０１３３】
読取装置２０３は、制御回路２０１に制御され、着脱可能な記録媒体２０４のデータのリード／ライトを行なう。そして、読取装置２０３は、例えば、ＦＤＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｄｒｉｖｅ）、ＤＶＤＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＢＤＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｋ  Ｄｒｉｖｅ：登録商標）およびＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などである。また、読取装置２０３は、記録媒体２０４に記録されたデータ転送プログラムを読み出し、記憶装置２０２に記憶しても良い。
【０１３４】
記録媒体２０４は、各種データを保存する。一例として、コンピュータ装置２００がサーバ３０〜３Ｎであるとき、記録媒体２０４は、制御回路２０１を、図１に示す処理部４０〜４Ｎとして機能させるためのプログラムを記憶する。コンピュータ装置２００がタイマ管理装置６０であるとき、記録媒体２０４は、制御回路２０１を、図１に示すタイマ制御部７０と、図３に示す制御部７２と、設定部７３と、監視部７４と、ＯＳ７５として機能させるためのタイマ管理プログラム（情報処理プログラム）を記憶する。コンピュータ装置２００がデータ管理装置９０であるとき、記録媒体２０４は、制御回路２０１を、図１に示すデータ制御部１００として機能させるためのプログラムを記憶する。
【０１３５】
そして、記録媒体２０４は、読取装置２０３を介してバス２０８に接続され、制御回路２０１が読取装置２０３を制御することにより、データのリード／ライトが行なわれる。また、記録媒体２０４は、例えば、ＦＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｋ：登録商標）、およびフラッシュメモリなどである。
【０１３６】
通信インターフェイス２０５は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、無線通信、またはインターネットなどのネットワーク２０７を介してコンピュータ装置と他の装置とを通信可能に接続する。そして、コンピュータ装置２００がサーバ３０〜３Ｎであるとき、通信インターフェイス２０５は、図１において、通知部５０〜５Ｎとして機能する。また、コンピュータ装置２００がタイマ管理装置６０であるとき、通信インターフェイス２０５は、図３において、取得部７１として機能する。
【０１３７】
入出力インターフェイス２０６は、例えば、キーボード、マウス、およびタッチパネルなどと接続され、接続された装置から各種情報を示す信号が入力されると、バス２０８を介して入力された信号を制御回路２０１に出力する。また、入出力インターフェイス２０６は、制御回路２０１から出力された各種情報を示す信号がバス２０８を介して入力されると、接続された各種装置にその信号を出力する。
【０１３８】
以上のように、実施形態のタイマ管理装置６０は、サーバ３０〜３Ｎと通信可能に接続され、サーバ３０〜３Ｎからタイマ処理の管理情報を取得する構成を有する。これにより、実施形態のタイマ管理装置６０は、トランザクションを実行するサーバ３０〜３Ｎのタイマ処理を一元管理することができる。
【０１３９】
また、実施形態のタイマ管理装置６０は、サーバ３０〜３Ｎとの通信におけるタイムラグを加味して、タイマ指定時刻にタイムアウト通知が届くように、タイムアウト通知を送信する。これにより、実施形態のタイマ管理装置６０は、広域に配置された複数のサーバのタイマ処理においても、タイマ処理の一元管理を実現することができる。
【０１４０】
また、実施形態のタイマ管理装置６０は、サーバ３のトランザクションに関するタイムアウトが起きたとき、タイマ種別やセッション状態などのトランザクションに関する情報を他のサーバ３に通知する構成を有する。これにより、実施形態のタイマ管理装置６０は、タイムアウトに伴う処理を他のサーバ３に実行させることができる。
【０１４１】
さらに、実施形態のタイマ管理装置６０は、タイムアウトに伴う処理を実行させるサーバ３を、負荷分散方式を用いて選択する。これにより、実施形態のタイマ管理装置６０は、サーバ３０〜３Ｎの間でタイマ処理の負荷分散をすることができる。
【０１４２】
以上記載した各実施例を含む実施形態に関し、さらに以下の付記を開示する。なお、本発明は、以下の付記に限定されるものではない。
（付記１）
複数のサーバ装置のそれぞれから、実行する処理が所定時間内に完了しない場合に、該処理を終了させる終了時刻と、該処理を識別する処理識別子とを取得する取得部と、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了するかを監視し、前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了しない場合、前記処理が完了しない第１サーバ装置の処理の処理識別子を、前記複数のサーバ装置のうちのいずれかの第２サーバ装置に送信し、前記処理識別子に対応する前記処理の後処理を、前記第２サーバ装置に実行させる制御部と、
を備えることを特徴とする情報処理装置。
（付記２）
前記情報処理装置は、さらに、
前記第２サーバ装置に、リクエストの送信時刻である第１の送信時刻を刻印したリクエストを送信し、前記第２サーバ装置から、レスポンスの送信時刻である第２の送信時刻を刻印したリクエストに対するレスポンスを受信し、前記第１の送信時刻と前記第２の送信時刻との差分を示す差分時間を取得する監視部を備え、
前記制御部は、
前記終了時刻から前記差分時間を減算した時刻になると、前記第２サーバ装置に前記処理識別子を送信する
ことを特徴とする付記１に記載の情報処理装置。
（付記３）
前記情報処理装置は、さらに、
前記第２サーバ装置に前記リクエストを送信し、前記第２サーバ装置から前記送信したリクエストに対する前記レスポンスの返信がないとき、前記複数のサーバ装置から前記第２サーバ装置以外のいずれかの第３サーバ装置を選択する監視部を備え、
前記制御部は、
前記終了時刻になるまで前記処理を実行する第１サーバ装置の処理が完了しない場合、前記第３サーバ装置に前記処理識別子を送信し、前記処理識別子に対応する前記処理の後処理を、前記第３サーバ装置に実行させる
ことを特徴とする付記１に記載の情報処理装置。
（付記４）
前記制御部は、
負荷分散方式を用いて前記複数のサーバ装置からいずれかのサーバ装置を選択する
ことを特徴とする付記１〜３のいずれか一つに記載の情報処理装置。
（付記５）
前記情報処理装置は、さらに、
新たにサーバ装置が接続されたとき、前記新たに接続されたサーバ装置の宛先を示す宛先情報を取得し、さらに前記新たに接続されたサーバ装置を識別するサーバ識別子を設定し、前記設定したサーバ識別子と前記取得した宛先情報とを関連付けて第１格納部に格納する設定部を備え、
前記制御部は、
前記処理を実行するサーバ装置から、さらに時間を計測する時間計測処理を識別する識別子である時間計測識別子を取得すると、前記取得した時間計測識別子と、前記第２サーバ装置のサーバ識別子とを関連付けて第２格納部に格納し、
前記処理識別子の通知をするとき、
前記第２格納部から、前記終了時刻に完了しない処理の前記時間計測処理を識別する前記時間識別子に関連付けられたサーバ識別子を抽出し、
前記抽出したサーバ識別子に対応する前記宛先情報を前記第１格納部から抽出し、前記抽出した宛先情報を指定して前記処理識別子を通知する
ことを特徴とする付記１〜４のいずれか一つに記載の情報処理装置。
（付記６）
前記情報処理装置は、さらに、
新たなサーバ装置が接続されたとき、前記新たに接続されたサーバ装置を識別するサーバ識別子を設定し、第１格納部に格納する設定部を備え、
前記監視部は、
前記新たなサーバ装置が接続されたとき、前記新たに接続されたサーバ装置に、前記第１の送信時刻を刻印したリクエストを送信し、前記新たに接続されたサーバ装置から、前記第２の送信時刻を刻印したリクエストに対するレスポンスを受信し、前記第１の送信時刻と前記第２の送信時刻との差分を示す差分時間を取得し、該取得した差分時間と、前記設定したサーバ識別子とを関連付けて前記第１格納部に格納し、
前記制御部は、
前記新たに接続されたサーバ装置から、前記終了時刻を取得すると、前記第１格納部から前記新たに接続されたサーバ装置のサーバ識別子に関連付けられた差分時間を抽出し、前記取得した終了時刻から前記抽出した差分時間を減算した時刻になると、前記第２サーバ装置に前記処理識別子を送信する
ことを特徴とする付記２〜４のいずれか一つに記載の情報処理装置。
（付記７）
情報処理装置は、
複数のサーバ装置のそれぞれから、実行する処理が所定時間内に完了しない場合に、該処理を終了させる終了時刻と、該処理を識別する処理識別子とを取得する取得部と、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了するかを監視し、前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了しない場合、前記処理が完了しないサーバ装置の処理の処理識別子を、前記複数のサーバ装置のうちのいずれかのサーバ装置に送信する制御部と、
を備え、
前記複数のサーバ装置のそれぞれは、
前記情報処理装置に前記終了時刻と、前記処理識別子とを通知する通知部と、
前記情報処理装置から前記処理識別子を受信すると、前記処理識別子に対応する前記処理の後処理を実行する処理部と、
を備えることを特徴とする情報処理システム。
（付記８）
前記取得部は、さらに、
前記処理を実行するサーバ装置から、時間を計測する時間計測処理の種別を示す時間計測種別を取得し、
前記情報処理装置の制御部は、
前記終了時刻になるまで処理が完了しないサーバ装置がある場合、前記いずれかのサーバ装置に、前記処理が完了しないサーバ装置の処理の処理識別子と前記時間計測種別とを送信し、
前記情報処理システムは、さらにデータ記憶装置を備え、
前記データ記憶装置は、
前記複数のサーバ装置の前記処理の状態が変更されるごとに、前記処理を実行するサーバ装置から通知される前記処理識別情報と前記処理の状態を示す処理状態情報とを記憶する記憶部を備え、
前記複数のサーバ装置は、さらに、
前記時間計測種別と、前記複数のサーバ装置の処理状態情報とを関連付けた情報を格納する第３格納部を備え、
前記複数のサーバ装置の処理部は、前記処理識別子と前記時間計測種別とを受信すると、前記受信した処理識別子に対応する前記処理状態情報を前記データ記憶装置の記憶部から取得し、前記第３格納部から前記受信した時間計測種別に対応する処理状態情報を取得し、前記データ記憶装置の記憶部から取得した処理状態情報と、前記第３格納部から取得した処理状態情報とが一致する場合、前記処理識別子に対応する前記処理の後処理を実行する
ことを特徴とする付記７に記載の情報処理システム。
（付記９）
複数のサーバ装置のそれぞれから、実行する処理が所定時間内に完了しない場合、に該処理を終了させる終了時刻と、該処理を識別する処理識別子とを取得し、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了するかを監視し、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了しない場合、前記処理が完了しない第１サーバ装置の処理の処理識別子を、前記複数のサーバ装置のうちのいずれかの第２サーバ装置に送信し、前記処理識別子に対応する前記処理の後処理を、前記第２サーバ装置に実行させる
ことを特徴とする情報処理方法。
（付記１０）
複数のサーバ装置のそれぞれから、実行する処理が所定時間内に完了しない場合に、該処理を終了させる終了時刻と、該処理を識別する処理識別子とを取得し、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了するかを監視し、
前記終了時刻になるまで前記処理を実行するサーバ装置の処理が完了しない場合、前記処理が完了しない第１サーバ装置の処理の処理識別子を、前記複数のサーバ装置のうちのいずれかの第２サーバ装置に送信し、前記処理識別子に対応する前記処理の後処理を、前記第２サーバ装置に実行させる
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【符号の説明】
【０１４３】
１０〜１Ｎ  端末
２０  負荷分散装置
３０〜３Ｎ  サーバ
４０  処理部
５０  通知部
６０  タイマ管理装置
７０  タイマ制御部
７１  取得部
７２  制御部
７３  設定部
７４  監視部
７５  ＯＳ
８０  記憶部
８１  タイマ管理テーブル
８２  サーバ管理テーブル
９０  データ管理装置
１００  データ制御部
１１０  記憶部
１１１  データストア
１２０  セッション状態テーブル
１３０  ＩＮＶＩＴＥリクエスト
２００  コンピュータ装置
２０１  制御回路
２０２  記憶装置
２０３  読取装置
２０４  記録媒体
２０５  通信インターフェイス
２０６  入出力インターフェイス
２０７  ネットワーク
２０８  バス
【図１】
2014182448.tif 000003
【図２】
2014182448.tif 000004
【図３】
2014182448.tif 000005
【図４】
2014182448.tif 000006
【図５】
2014182448.tif 000007
【図６】
2014182448.tif 000008
【図７】
2014182448.tif 000009
【図８】
2014182448.tif 000010
【図９】
2014182448.tif 000011
【図１０】
2014182448.tif 000012
【図１１】
2014182448.tif 000013
【図１２】
2014182448.tif 000014
【図１３】
2014182448.tif 000015
【図１４】
2014182448.tif 000016
【図１５】
2014182448.tif 000017
【図１６】
2014182448.tif 000018
【図１７】
2014182448.tif 000019
【図１８】
2014182448.tif 000020
【図１９】
2014182448.tif 000021
【図２０】
2014182448.tif 000022
【図２１】
2014182448.tif 000023