JP2010170389A - データ処理システム - Google Patents

データ処理システム Download PDF

Info

Publication number
JP2010170389A
JP2010170389A JP2009013055A JP2009013055A JP2010170389A JP 2010170389 A JP2010170389 A JP 2010170389A JP 2009013055 A JP2009013055 A JP 2009013055A JP 2009013055 A JP2009013055 A JP 2009013055A JP 2010170389 A JP2010170389 A JP 2010170389A
Authority
JP
Japan
Prior art keywords
server
failure
server process
client
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009013055A
Other languages
English (en)
Other versions
JP5276456B2 (ja
Inventor
Hikari Kawabata
光 川畑
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.)
Alpine Electronics Inc
Original Assignee
Alpine Electronics Inc
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 Alpine Electronics Inc filed Critical Alpine Electronics Inc
Priority to JP2009013055A priority Critical patent/JP5276456B2/ja
Publication of JP2010170389A publication Critical patent/JP2010170389A/ja
Application granted granted Critical
Publication of JP5276456B2 publication Critical patent/JP5276456B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】正常動作時のパフォーマンスの低下を招くことなく、障害発生時の状態を回復する「データ処理システム」を提供する。
【解決手段】リトライ制御部34は、サーバプロセス20の障害が発生したならば起動要求部35を制御して、システム制御プロセス10のプロセス起動部11を介して、サーバプロセス20を再起動しS31-32、サーバIF取得部31に、再起動したサーバプロセス20から、サーバIFを取得させるS33。そして、サービス部32に、履歴記憶部33に記憶されているサーバプロセス20の機能呼出の履歴に基づいて、再起動したサーバプロセス20のサーバサービス部21のノーマルクライアントプロセス30に関する処理の状態を、障害発生前の状態と同じ状態とするために必要な機能呼出を、サーバプロセス20に発行させるS34。
【選択図】図2

Description

本発明は、データ処理システムにおいて発生した障害を回復する技術に関するものである。
データ処理システムにおいて発生した障害を回復する技術としては、複数のアプリケーションが稼働するデータ処理システムにおいて、アプリケーションに対して成された操作を保存しておき、アプリケーションに障害が発生したときに、障害が生じたアプリケーションと同一のアプリケーションを起動し、起動したアプリケーションに保存しておいた操作を再投入すると共に、障害が発生したアプリケーションの表示画面に代えて、起動したアプリケーションの表示画面を表示することにより、ユーザに障害発生を認知されることなく、データ処理システムの状態を障害発生前の状態に復帰する技術が知られている(たとえば、特許文献1)。
また、データ処理システムにおいて発生した障害を回復する技術としては、複数のプロセスが稼働するデータ処理システムにおいて、プロセスの障害発生状況を管理する制御部を設け、制御部においてプロセスに障害が発生したときに、障害が生じたプロセスと、当該プロセスと連携している他のプロレスとを再起動する技術も知られている(たとえば、特許文献2)。
また、データ処理システムにおいて発生した障害を回復する技術としては、複数のアプリケーションが稼働するデータ処理システムにおいて、アプリケーションの稼働状態を収集保存する制御部を設け、アプリケーションに障害が発生したときに、障害が生じたアプリケーションを再起動すると共に、再起動したアプリケーションを保存しておいた稼働状態を用いて障害発生前の状態に復帰する技術も知られている(たとえば、特許文献3)。
また、この技術では、制御部において、障害が生じたアプリケーションと連携して稼働している他のアプリケーションを、障害が生じたアプリケーションの再起動及び状態復帰の完了まで、障害が生じたアプリケーションと切り離す制御も行っている。
特開2004-30092号公報 特開2001-282755号公報 特開2002-342095号公報
前記特許文献1の技術によれば、各アプリケーションが各々独立して動作している場合には、データ処理システム全体を再起動することなく、データ処理システムの状態を復帰することができるが、障害が発生したアプリケーションのみを再起動して、その状態を復帰するものであるため、障害が発生したアプリケーションと連携して稼働するアプリケーションが存在する場合には、データ処理システム全体の状態を障害発生前の状態に復帰できない場合が生じ得る。
また、特許文献2、3の技術によれば、制御部において連携して稼働するアプリケーションやプロセスを把握していることが必要となるが、連携して稼働するアプリケーションやプロセスの組み合わせが動的に変化するデータ処理システムにおいては、制御部において連携して稼働するアプリケーションやプロセスを管理することが困難となる。
また、特許文献2の技術によれば、再起動した個々のプロセスを、障害発生前の状態に復帰することはできない。
また、特許文献3の技術によれば、制御部において、各アプリケーションの稼働状態を収集管理することが必要となるが、多くのアプリケーションが稼働するデータ処理システムにおいては、このような各アプリケーションの稼働状態を収集管理のためのリソースの消費によって、各アプリケーションの正常動作時にもデータ処理システムのパフォーマンスを低下させてしまうことがある。
そこで、本発明は、連携して稼働するプロセスが動的に変化するデータ処理システムにおいて、正常動作時のパフォーマンスの低下を招くことなく、障害発生時の状態回復を実現することを課題とする。
前記課題達成のために、本発明は、サーバプロセスと、当該サーバプロセスから当該サーバプロセスの機能にアクセスするためのインタフェースをサーバIFとして取得し、取得したサーバIFを介して、当該サーバプロセスに対して機能呼出を発行することにより前記サーバプロセスの機能を利用するクライアントプロセスとが稼働するデータ処理システムにおいて、前記クライアントプロセスに、前記サーバプロセスに発行した機能呼出の履歴を記憶する履歴記憶手段と、前記サーバプロセスの障害の発生を検出する障害検出手段と、前記障害検出手段が、前記サーバプロセスの障害の発生を検出したときに、前記サーバプロセスを再起動する再起動手段と、前記再起動手段が再起動したサーバプロセスからサーバIFを再取得するサーバIF再取得手段と、前記履歴記憶手段に記憶されている機能呼出の履歴に基づいて、前記サーバIF再取得手段が再取得したサーバIFを介して、再起動したサーバプロセスの状態を、前記サーバプロセスの障害の発生前の状態に遷移させる機能呼出を行う状態回復手段とを備えたものである。
ここで、このようなデータ処理システムは、より具体的には、たとえば、自動車に搭載されるデータ処理システムであり、前記サーバプロセスは、カーナビゲーション機能を提供するサーバプロセスであり、前記クライアントプロセスは、表示インタフェースを含むヒューマンインタフェースを制御するプロセスであって、前記サーバプロセスのカーナビゲーション機能を利用しながら、カーナビゲーションの表示インタフェースを含むヒューマンインタフェースをユーザに提供するプロセスである。なお、このような自動車に搭載されるデータ処理システムにおいては、当該クライアントプロセスに、前記障害検出手段が、前記サーバプロセスの障害の発生を検出してから、前記状態回復手段が、起動したサーバプロセスの状態を、前記サーバプロセスの障害の発生前の状態に遷移させるまで、前記カーナビゲーションの表示インタフェースの表示内容を、前記サーバプロセスの障害の発生前の表示内容に維持する表示維持手段を、さらに設けることが好ましい。
また、前記課題達成のために、本発明は、サーバプロセスと、設定されたサーバIFを介して前記サーバプロセスに対して機能呼出を発行することにより前記サーバプロセスの機能を利用するクライアントプロセスと、前記サーバプロセスの機能にアクセスするためのインタフェースを前記サーバIFとして当該サーバプロセスから取得し、前記クライアントプロセスに設定するサーバIFデリバリプロセスとが稼働するデータ処理システムにおいて、前記サーバIFデリバリプロセスに、前記サーバプロセスの障害の発生を検出する障害検出手段と、前記障害検出手段が、前記サーバプロセスの障害の発生を検出したときに、前記サーバプロセスを再起動する再起動手段と、前記再起動手段が再起動したサーバプロセスからサーバIFを再取得し、前記クライアントプロセスに設定されているサーバIFを再取得したサーバIFに切り替えるサーバIF切替手段とを備え、前記クライアントプロセスに、前記サーバプロセスに発行した機能呼出の履歴を記憶する履歴記憶手段と、設定されているサーバIFが切り替えられたときに、前記履歴記憶手段に記憶されている機能呼出の履歴に基づいて、前記切り替え後のサーバIFを介して、再起動したサーバプロセスの状態を、前記サーバプロセスの障害の発生前の状態に遷移させる機能呼出を行う状態回復手段とを備えたものである。
また、本発明は、前記課題達成のために、サーバプロセスと、サーバIFデリバリプロセスと、取得したサーバIFを介して前記サーバプロセスに対して機能呼出を発行することにより前記サーバプロセスの機能を利用するクライアントプロセスとが稼働するデータ処理システムであって、前記サーバIFデリバリプロセスは、前記クライアントプロセスから発行されたサーバIF要求に応答して、前記サーバプロセスの機能にアクセスするためのインタフェースを前記サーバIFとして当該サーバプロセスから取得し、前記クライアントプロセスに配信し、前記クライアントプロセスは、前記サーバIFデリバリプロセスにサーバIF要求を発行することによりサーバIFを取得するデータ処理システムにおいて、前記サーバIFデリバリプロセスに、前記サーバプロセスの障害の発生を検出する障害検出手段と、前記障害検出手段が、前記サーバプロセスの障害の発生を検出したときに、前記サーバプロセスを再起動する再起動手段とを備え、前記クライアントプロセスに、前記サーバプロセスに発行した機能呼出の履歴を記憶する履歴記憶手段と、前記サーバプロセスの障害の発生を検知する障害検知手段と、前記障害検知手段が、前記サーバプロセスの障害の発生を検知したときに、前記サーバIFデリバリプロセスにサーバIF要求を発行することによりサーバIFを再取得するサーバIF再取得手段と、前記障害検知手段が、前記サーバプロセスの障害の発生を検知したときに、前記履歴記憶手段に記憶されている機能呼出の履歴に基づいて、前記サーバIF再取得手段が再取得したサーバIFを介して、再起動したサーバプロセスの状態を、前記サーバプロセスの障害の発生前の状態に遷移させる機能呼出を行う状態回復手段とを設けたものである。
また、併せて本発明は、コンピュータによって読みとられ実行されるコンピュータプログラムであって、前記コンピュータを以上の各データ処理システムとして機能させることを特徴とするコンピュータプログラムも提供する。
これらのデータ処理システムやコンピュータプログラムによれば、連携して稼働するプロセスや各プロセスの稼働状態を集中管理する必要がなく、クライアントプロセスやサーバIFデリバリプロセスは、自身が関連するプロセスを管理すると共に、クライアントプロセスにおいて自身が行った機能呼出の履歴を管理するだけで良いので、連携して稼働するプロセスが動的に変化する場合においても、各プロセスの稼働状態を集中管理する場合に比べ少ないリソースの消費量で、且つ、正常動作時のパフォーマンスの低下を招くことなく、サーバプロセスの障害発生時の状態回復を実現することができる。
以上のように、本発明によれば、連携して稼働するプロセスが動的に変化するデータ処理システムにおいて、正常動作時のパフォーマンスの低下を招くことなく、障害発生時の状態回復を実現することができる。
本発明の実施形態に係るデータ処理システムのプロセス構成を示すブロック図である。 本発明の実施形態に係るノーマルクライアントプロセスとサーバプロセスとシステム制御プロセスとを示すブロック図である。 本発明の実施形態に係るノーマルクライアントプロセスが行うリトライ処理を示すフローチャートである。 本発明の実施形態に係るパッシブIF取得クライアントプロセスと、サーバIFデリバリプロセスとサーバプロセスとシステム制御部とを示すブロック図である。 本発明の実施形態に係るサーバIFデリバリプロセスが行う障害処理と、パッシブIF取得クライアントプロセスが行うリトライ処理を示すフローチャートである。 本発明の実施形態に係るアクティブIF取得クライアントプロセスと、サーバIFデリバリプロセスとサーバプロセスとシステム制御部とを示すブロック図である。 本発明の実施形態に係るアクティブIF取得クライアントプロセスが行うリトライ処理を示すフローチャートである。 本発明の実施形態に係るデータ処理システムの動作例を示す図である。
以下、本発明の実施形態を説明する。
本実施形態に係るデータ処理システムは、ハードウエア的には、CPUと、入力装置や表示装置や外部記憶装置や、その他の周辺装置を備えたコンピュータを用いて構成される。
そして、図1aに示すように、当該コンピュータのプログラムの実行によって具現化するオペレーティングシステム1と、オペレーティングシステム1上で稼働する複数のプロセス2によって、データ処理システムの各機能が実現される。
ここで、オペレーティングシステム1上で稼働するプロセス2としては、他のプロセス2にサービスを提供するサーバ機能を備えたプロセス2(以下、「サーバプロセス」と記す)や、サーバプロセスのサービスを利用するクライアント機能を備えたプロセス2「以下、「クライアントプロセス」と記す」などがある。
そして、一つのサーバプロセスに着目して、当該サーバプロセスとの関係において、各プロセス2の構成を示した場合には、データ処理システムは、図1bに示すように、システム制御プロセス10と、当該サーバプロセス20と、ノーマルクライアントプロセス30と、パッシブIF取得クライアントプロセス40と、アクティブIF取得クライアントプロセス50と、サーバIFデリバリプロセス60と、その他のプロセス群70とより構成される。
ここで、ノーマルクライアントプロセス30は、サーバプロセス20のサービス(機能)にアクセスするために用いる当該サーバプロセス20のIFであるサーバIFを直接サーバプロセスから取得し、取得したサーバIFを用いてサーバプロセス20のサービスを利用するクライアントプロセスである。
また、パッシブIF取得クライアントプロセス40とアクティブIF取得クライアントプロセス50は、サーバIFデリバリプロセス60を介して取得したサーバIFを用いてサーバプロセス20のサービスを利用するクライアントプロセスである。ただし、パッシブIF取得クライアントプロセス40は、サーバIFデリバリプロセス60から受動的にサーバIFが設定されるのに対して、アクティブIF取得クライアントプロセス50は能動的にサーバIFデリバリプロセス60からサーバIFを取得する。
すなわち、サーバIFデリバリプロセス60は、自律的にサーバIFをサーバプロセス20から取得してパッシブIF取得クライアントプロセス40に設定したり、アクティブIF取得クライアントプロセス50からの要求に応じてサーバIFをサーバプロセス20から取得してアクティブIF取得クライアントプロセス50に通知する処理を行う。
なお、図1bにおける各プロセス2の実線は、クライアントプロセスがサーバプロセス20のサービスを利用するときデータの流れを、点線はクライアントプロセスがサーバプロセス20のサーバIFを取得するために使用するデータの流れを、一点鎖線は障害回復に用いるデータの流れを表している。ただし、各プロセス2間のデータは、実際にはオペレーティングシステム1を介して送受されることになる。
以下、このような構成において、サーバプロセス20に障害(所謂クラッシュ)が発生したときの回復動作について説明する。
まず、ノーマルクライアントプロセス30が行う、サーバプロセス20に障害が発生したときの回復動作について説明する。
図2aに、データ処理システムの、ノーマルクライアントプロセス30とサーバプロセス20とシステム制御プロセス10とを抜き出して示す。
図示するように、ノーマルクライアントプロセス30は、サーバIF取得部31と、サービス部32と、履歴記憶部33と、リトライ制御部34と、起動要求部35とを備えている。
また、サーバプロセス20は、クライアントプロセスにサーバIFを介してサービスを提供するサーバサービス部21を備えている。
また、システム制御プロセス10は、プロセス起動部11、障害通知部12、障害検知部13とを有している。
このような構成において、ノーマルクライアントプロセス30のサーバプロセス20の利用は、次のように行われる。
すなわち、まず、ノーマルクライアントプロセス30の起動要求部35から、システム制御プロセス10のプロセス起動部11にサーバプロセス20の起動要求を発行するS21。起動要求を受け取ったシステム制御プロセス10のプロセス起動部11は、オペレーティングシステム1を介して、サーバプロセス20を起動するS22。
次に、ノーマルクライアントプロセス30のサーバIF取得部31は、サーバプロセス20から、サーバIFを取得するS23。そして、ノーマルクライアントプロセス30のサービス部32は、サーバIF取得部31が取得したサーバIFを用いて、サーバプロセス20のサーバサービス部21に機能呼出を発行することにより、そのサービスを利用しながらS24、自身の処理を行う。また、サービス部32が、サーバIFを介して、サーバサービス部21に対して行った機能呼出の履歴を履歴記憶部33に蓄積する。
このようにしてノーマルクライアントプロセス30がサーバプロセス20を利用している状態において、ノーマルクライアントプロセス30のリトライ制御部34は、図3に示すリトライ処理を実行する。
図示するように、このリトライ処理において、リトライ制御部34は、サーバプロセス20の障害発生を監視する(ステップ302)。
ここで、前述したように、ノーマルクライアントプロセス30とサーバプロセス20との間の通信はオペレーティングシステム1を介して行われる。すなわち、オペレーティングシステム1は、ノーマルクライアントプロセス30から発行された機能呼出をサーバプロセス20に中継し、サーバプロセス20からの機能呼出に対する応答をノーマルクライアントプロセス30に中継する。そして、オペレーティングシステム1は、ノーマルクライアントプロセス30から発行された機能呼出に対して、サーバプロセス20の障害により、サーバプロセス20よりの応答をノーマルクライアントプロセス30に返すことができない場合に、ノーマルクライアントプロセス30に機能呼出に対する応答として、サーバプロセス障害によるエラーを応答する。
そして、リトライ処理のステップ302では、サービス部32が発行した機能呼出に対する応答として、サーバプロセス障害によるエラーを受信したときに、サーバプロセス20に障害が発生したと判定する。
次に、サーバプロセス20に障害が発生したならば、リトライ制御部34は、ノーマルクライアントプロセス30のサービス部32の表示出力内容を、現在の状態に凍結すると共に、サービス部32の処理を一時停止させる(ステップ304)。ただし、サービス部32が表示出力を行わないものである場合には、表示出力内容の凍結は不要である。
そして、次に、図2bに示すように、ノーマルクライアントプロセス30の起動要求部35を制御して、システム制御プロセス10のプロセス起動部11を介して、サーバプロセス20を再起動するS31-32(ステップ306)。
また、ノーマルクライアントプロセス30のサーバIF取得部31に、再起動したサーバプロセス20から、サーバIFを取得させるS33(ステップ308)。
そして、次に、サービス部32に、再起動したサーバプロセス20のサーバサービス部21の、ノーマルクライアントプロセス30に関する処理の状態を、サーバプロセス20の障害発生前の状態に回復する処理を行わせる(ステップ310)。
障害発生前の状態に回復する処理は、サービス部32が、履歴記憶部33に記憶されている機能呼出の履歴に基づいて、再起動したサーバプロセス20のサーバサービス部21のノーマルクライアントプロセス30に関する処理の状態を、サーバプロセス20の障害発生前の状態と同じ状態とするために必要な機能呼出を、ステップ308で取得したサーバIFを用いて、サーバプロセス20に発行することにより行うS34。
そして、最後に、サービス部32の表示出力の凍結を解除して、サービス部32の一次停止していた処理を再開させ(ステップ312)、ステップ302の監視に戻る。ここで、ステップ312で再開されたサービス部32の処理は、ステップ308で取得したサーバIFを用いてサーバプロセス20を利用しながら行われることになる。
以上、ノーマルクライアントプロセス30が行う、サーバプロセス20に障害が発生したときの回復動作について説明した。
なお、ノーマルクライアントプロセス30のリトライ制御部34は、以上のようなリトライ処理によるサーバプロセス障害の回復処理以外にも、各種エラーに対する回復処理を行う機能を備えている。
次に、パッシブIF取得クライアントプロセス40と、サーバIFデリバリプロセス60が行う、サーバプロセス20に障害が発生したときの回復動作について説明する。
図4aに、データ処理システムの、パッシブIF取得クライアントプロセス40とサーバIFデリバリプロセス60とサーバプロセス20とシステム制御部とを抜き出して示す。
図示するように、パッシブIF取得クライアントプロセス40は、サーバIF設定部41と、サービス部42と、履歴記憶部43と、リトライ制御部44とを備えている。
また、サーバIFデリバリプロセス60は、サーバIF取得部61と、サーバIF配信部62と、障害処理部63と、起動要求部64とを備えている。
このような構成において、パッシブIF取得クライアントプロセス40のサーバプロセス20の利用は、次のように行われる。
すなわち、まず、サーバIFデリバリプロセス60の起動要求部64から、システム制御プロセス10のプロセス起動部11にサーバプロセス20の起動要求を発行しS41、起動要求を受け取ったシステム制御プロセス10のプロセス起動部11は、オペレーティングシステム1を介して、サーバプロセス20を起動するS42。
そして、サーバIFデリバリプロセス60の障害処理部63は、起動したサーバプロセス20の障害発生通知要請をシステム制御プロセス10の障害通知部12に設定するS43。
次に、サーバIFデリバリプロセス60のサーバIF取得部61は、サーバプロセス20から、サーバIFを取得しS44、サーバIF配信部62を介して、パッシブIF取得クライアントプロセス40のサーバIF設定部41に設定するS45。
そして、パッシブIF取得クライアントプロセス40のサービス部42は、サーバIFデリバリプロセス60からサーバIF設定部41に設定されたサーバIFを用いて、サーバプロセス20のサーバサービス部21に機能呼出を発行することにより、そのサービスを利用しながらS46、自身の処理を行う。また、サービス部42が、サーバIFを介して、サーバサービス部21に対して行った機能呼出の履歴を履歴記憶部43に蓄積する。
このようにしてパッシブIF取得クライアントプロセス40がサーバプロセス20を利用している状態において、サーバIFデリバリプロセス60の障害処理部63は、図5aに示す障害処理を、パッシブIF取得クライアントプロセス40のリトライ制御部44は図5bに示すリトライ処理を実行する。
図5aに示すように、サーバIFデリバリプロセス60の障害処理部63は、この障害処理において、サーバプロセス20の障害発生を監視する(ステップ502)。
ここで、システム制御プロセス10の障害検知部13は、オペレーティングシステム1を介して各プロセス2の障害発生を監視しS47、障害が発生したプロセス2を障害通知部12に通知する。そして、障害通知部12は、通知されたプロセス2が、サーバIFデリバリプロセス60の障害処理部63から障害発生通知要請を設定されているプロセス2である場合には、設定元のサーバIFデリバリプロセス60の障害処理部63に、当該プロセス2の障害発生を通知する図4aS48。
そして、障害処理のステップ502では、このシステム制御プロセス10の障害通知部12からの通知に基づいて、サーバプロセス20の障害発生を検知する。
次に、サーバプロセス20に障害が発生したならば、障害処理部は、図4bに示すように、起動要求部64を制御して、システム制御プロセス10のプロセス起動部11を介して、サーバプロセス20を再起動するS51-52(ステップ504)。
そして、障害が発生したサーバプロセス20が、そのサーバIFをパッシブIF取得クライアントプロセス40に設定したサーバプロセス20であるかどうかを判定し(ステップ506)、そうでなければステップ502の監視に戻る。
一方、障害が発生したサーバプロセス20が、そのサーバIFをパッシブIF取得クライアントプロセス40に設定したサーバプロセス20であれば(ステップ506)、サーバIF取得部61に、再起動したサーバプロセス20から、サーバIFを取得させるS53(ステップ508)。そして、サーバIF配信部62から、ステップ508で取得したサーバIFへの利用サーバIFの切り替えを、障害が発生したサーバプロセス20のサーバIFを過去に通知したパッシブIF取得クライアントプロセス40のサーバIF設定部41に通知させるS54(ステップ510)。
そして、ステップ502の監視に戻る。
次に、図5bに示すように、パッシブIF取得クライアントプロセス40のリトライ制御部44が行うリトライ処理では、サーバIF設定部41における、サーバIFデリバリプロセス60のサーバIF配信部62からの利用サーバIFの切り替えの通知の受信を監視し(ステップ552)、当該受信が発生したならば、サービス部42の表示出力内容を、現在の状態に凍結すると共に、サービス部42の処理を一時停止させる(ステップ554)。ただし、サービス部42が表示出力を行わないものである場合には、表示出力内容の内容の凍結は不要である。
そして、次に、サービス部42に、再起動したサーバプロセス20のサーバサービス部21の、パッシブIF取得クライアントプロセス40に関する処理の状態を、サーバプロセス20の障害発生前の状態に回復する処理を行わせる(ステップ556)。この回復の処理は、ノーマルクライアントプロセス30と同様に、履歴記憶部43に記憶されている機能呼出の履歴に基づいて、再起動したサーバプロセス20のサーバサービス部21の、パッシブIF取得クライアントプロセス40に関する処理の状態を、サーバプロセス20の障害発生前の状態と同じ状態とするために必要な機能呼出を、ステップ502で受信を検出した利用サーバIFの切り替えの通知において通知された切り替え後のサーバIFを用いて、サーバプロセス20に発行することにより行うS55。
そして、最後に、サービス部42の表示出力の凍結を解除して、サービス部42の一次停止していた処理を再開させ(ステップ558)、ステップ552の監視に戻る。ここで、ステップ558で再開されたサービス部42の処理は、ステップ502で受信を検出した利用サーバIFの切り替えの通知において通知された切り替え後のサーバIFを用いてサーバプロセス20を利用しながら行われることになる。
以上、パッシブIF取得クライアントプロセス40とサーバIFデリバリプロセス60が行う、サーバプロセス20に障害が発生したときの回復動作について説明した。
なお、パッシブIF取得クライアントプロセス40のリトライ制御部44は、以上のようなリトライ処理によるサーバプロセス障害の回復処理以外にも、各種エラーに対する回復処理を行う機能を備えている。
次に、アクティブIF取得クライアントプロセス50が行う、サーバプロセス20に障害が発生したときの回復動作について説明する。
図6aに、データ処理システムの、アクティブIF取得クライアントプロセス50とサーバIFデリバリプロセス60とサーバプロセス20とシステム制御部とを抜き出して示す。
図示するように、アクティブIF取得クライアントプロセス50は、サーバIF取得部51と、サービス部52と、履歴記憶部53と、リトライ制御部54とを備えている。
このような構成において、アクティブIF取得クライアントプロセス50のサーバプロセス20の利用は、次のように行われる。
すなわち、まず、サーバIFデリバリプロセス60の起動要求部64から、システム制御プロセス10のプロセス起動部11にサーバプロセス20の起動要求を発行しS61、起動要求を受け取ったシステム制御プロセス10のプロセス起動部11は、オペレーティングシステム1を介して、サーバプロセス20を起動するS62。
そして、サーバIFデリバリプロセス60の障害処理部63は、起動したサーバプロセス20の障害発生通知要請をシステム制御プロセス10の障害通知部12に設定するS63。
次に、アクティブIF取得クライアントプロセス50のサーバIF取得部51は、サーバIFデリバリプロセス60のサーバIF配信部62を介してサーバIF取得部61に、サーバプロセス20のサーバIFの配信を要求するS64。
要求を受けたサーバIFデリバリプロセス60のサーバIF取得部61は、サーバプロセス20から、サーバIFを取得しS65、サーバIF配信部62を介して、アクティブIF取得クライアントプロセス50のサーバIF取得部51に通知するS66。
そして、アクティブIF取得クライアントプロセス50のサービス部52は、サーバIF取得部51が、サーバIFデリバリプロセス60から取得したサーバIFを用いて、サーバプロセス20のサーバサービス部21に機能呼出を発行することにより、そのサービスを利用しながらS67、自身の処理を行う。また、サービス部52が、サーバIFを介して、サーバサービス部21に対して行った機能呼出の履歴を履歴記憶部53に蓄積する。
このようにしてアクティブIF取得クライアントプロセス50がサーバプロセス20を利用している状態において、サーバIFデリバリプロセス60の障害処理部64は、前述した図5aの障害処理を行う。一方、アクティブIF取得クライアントプロセス50のリトライ制御部54は図7に示すリトライ処理を実行する。
サーバIFデリバリプロセス60の障害処理部63は、図5aの障害処理において前述の通り、システム制御プロセス10の障害検知部13のサーバプロセス20の障害発生の検知S68によって、障害通知部12から障害が通知されるとS69、図6bに示すように、サーバプロセス20を再起動するS71-72。
一方、アクティブIF取得クライアントプロセス50のリトライ制御部54は、図7に示すように、リトライ処理において、サーバプロセス20の障害発生を監視する(ステップ702)。この監視は、サービス部52の、サーバプロセス20に対して発行した機能呼出に対する、サーバプロセス障害によるエラー応答の受信に基づいて行う。
そして、サーバプロセス20に障害が発生したならば、リトライ制御部54は、サービス部52の表示出力内容を、現在の状態に凍結すると共に、サービス部52の処理を一時停止させる(ステップ704)。ただし、サービス部52が表示出力を行わないものである場合には、表示出力内容の凍結は不要である。
そして、次に、サーバIF取得部51に、サーバIFを再取得させる(ステップ706)。
この再取得は、図6bに示すように、サーバIFデリバリプロセス60に、サーバプロセス20のサーバIFの配信を要求することによりS73、サーバIFデリバリプロセス60に再起動したサーバプロセス20からのサーバIFの取得S74と配信S75を行わせることにより行う。
そして、次に、サービス部52に、サーバプロセス20のサーバサービス部21の、アクティブIF取得クライアントプロセス50に関する処理の状態を、サーバプロセス20の障害発生前の状態に回復する処理を行わせる(ステップ708)。
障害発生前の状態に回復する処理は、ノーマルクライアントプロセス30と同様に、履歴記憶部53に記憶されている機能呼出の履歴に基づいて、再起動したサーバプロセス20のサーバサービス部21の、アクティブIF取得クライアントプロセス50に関する処理の状態を、サーバプロセス20の障害発生前の状態と同じ状態とするために必要な機能呼出を、ステップ706で再取得したサーバIFを用いて、サーバプロセス20に発行することにより行うS76。
そして、最後に、サービス部52の表示出力の凍結を解除して、サービス部52の一次停止していた処理を再開させ(ステップ710)、ステップ702の監視に戻る。ここで、ステップ710で再開されたサービス部52の処理は、ステップ706で再取得したサーバIFを用いてサーバプロセス20を利用しながら行われることになる。
以上、サーバプロセス20の障害発生時に、各プロセス2が行う回復処理について説明した。
なお、本実施形態において、サーバプロセス20の状態は、クライアントプロセス毎に独立しており、各クライアントプロセス毎の状態は、クライアントプロセス間の、機能呼出の順序に依存しない。また、システム制御プロセス10のプロセス起動部11は、サーバプロセス20に障害が発生した場合に、当該サーバプロセス20の起動要求を複数受け取った場合においても、最初に受け取った起動要求のみに応じてサーバプロセス20の起動を行う。
さて、以上のようなデータ処理システムは、たとえば、自動車に搭載する車載システムに適用することができる。
この場合、サーバプロセス20は、たとえば、地図表示や現在位置の算出や目的地までのルート設定やルート案内を行うナビゲーション機能を提供するナビゲーションプロセスや、ハンズフリー電話機能を提供するハンズフリーフォンプロセスや、外部記憶装置毎に設けられた、外部記憶装置のアクセスを担うクライアントプロセスとの間のインタフェースが統一された複数の外部記憶装置サーバプロセスなどとする。また、クライアントプロセスとしては、各サーバプロセス20と協調動作してユーザ間のインタフェースを提供する、ノーマルクライアントプロセス30として実現されたヒューマンインタフェースプロセスや、サーバIFデリバリプロセス60を介して、外部記憶装置サーバプロセスを利用して、各種データを外部記憶装置に記憶する、アクティブIF取得クライアントプロセス50やパッシブIF取得クライアントプロセス40として実現されたクライアントプロセスなどとする。
ここで、このように構成された車載システムにおいて、ナビゲーションプロセスが、図8aに示すように、初期状態からオープニング画面を生成するオープニング状態を経て、地図を表す案内画面を表示する地図表示状態に遷移した後、ヒューマンインタフェースプロセスからの機能呼出A-Hに応じて、その状態を、目的地を検索する目的地検索状態、目的地を設定し目的地までのルートを探索する目的地設定状態、探索したルートを表示するルート表示状態、ルートを設定し設定したルートを案内するルート案内状態との間を図中の矢印のように遷移するものとする。
そして、この場合において、ナビゲーションプロセスの起動後、図8bに示すように、ヒューマンインタフェースプロセスから、機能呼出A、B、C、D、E、G、H、C、Dが当該順序で発行され、ナビゲーションプロセスがルート案内状態にあるときに、ナビゲーションプロセスに障害が発生したものとする。
この場合、この時点においてヒューマンインタフェースプロセスの履歴記憶部33には、図8cに示すように、それまでに行った機能呼出A、B、C、D、E、G、H、C、Dが蓄積されている。
そこで、ヒューマンインタフェースプロセスのリトライ制御部34は、ナビゲーションプロセスに障害が発生したことを検出したならば、ナビゲーションプロセスを再起動し、履歴記憶部33に蓄積されている機能呼出を順次、再起動したナビゲーションプロセスに発行し、ナビゲーションプロセスの状態をルート案内状態に復帰させる。
または、ヒューマンインタフェースプロセスのリトライ制御部34は、ナビゲーションプロセスに障害が発生したことを検出したならば、履歴記憶部33に蓄積されている機能呼出を解析して、ナビゲーションプロセスの障害発生前の状態を識別し、再起動したナビゲーションプロセスに、その状態を識別した障害発生前の状態に遷移させるための最小限の機能呼出を順次発行することにより、その状態を識別した障害発生前の状態に復帰させる。すなわち、たとえば、図8b、cのようにルート案内状態で障害が発生した場合には、図8dに示すように、機能呼出A、B、C、Dのみを順次、再起動したナビゲーションプロセスに発行し、ナビゲーションプロセスの状態をルート案内状態に復帰させる。
なお、ヒューマンインタフェースプロセスのリトライ制御部34は、ナビゲーションプロセスに障害が発生したことを検出したならば、前述のように、再起動したナビゲーションプロセスの状態を障害発生前の状態に復帰するまで、表示出力を凍結すると共にサービス部32の処理を一時停止するので、ナビゲーションプロセスの障害回復を、およそユーザに認知されないように、もしくは、異常な表示出力によってユーザに違和感を感じさせないように行うことができる。
以上、本発明の実施形態について説明した。
このように本実施形態によれば、連携して稼働するプロセス2や各プロセス2の稼働状態を集中管理する必要がなく、クライアントプロセスやサーバIFデリバリプロセス60が自身が関連するプロセス2を管理すると共に、クライアントプロセスにおいて自身が行った機能呼出の履歴を管理するだけで良いので、連携して稼働するプロセス2が動的に変化する場合においても、各プロセス2の稼働状態を集中管理を行う場合に比べ少ないリソースの消費量で、且つ、正常動作時のパフォーマンスの低下を招くことなく、サーバプロセス20の障害発生時の状態回復を実現することができる。
1…オペレーティングシステム、2…プロセス、10…システム制御プロセス、11…プロセス起動部、12…障害通知部、13…障害検知部、20…サーバプロセス、21…サーバサービス部、30…ノーマルクライアントプロセス、31…サーバIF取得部、32…サービス部、33…履歴記憶部、34…リトライ制御部、35…起動要求部、40…パッシブIF取得クライアントプロセス、41…サーバIF設定部、42…サービス部、43…履歴記憶部、44…リトライ制御部、50…アクティブIF取得クライアントプロセス、51…サーバIF取得部、52…サービス部、53…履歴記憶部、54…リトライ制御部、60…サーバIFデリバリプロセス、61…サーバIF取得部、62…サーバIF配信部、63…障害処理部、64…起動要求部、70…プロセス群。

Claims (5)

  1. サーバプロセスと、当該サーバプロセスから当該サーバプロセスの機能にアクセスするためのインタフェースをサーバIFとして取得し、取得したサーバIFを介して、当該サーバプロセスに対して機能呼出を発行することにより前記サーバプロセスの機能を利用するクライアントプロセスとが稼働するデータ処理システムであって、
    前記クライアントプロセスは、
    前記サーバプロセスに発行した機能呼出の履歴を記憶する履歴記憶手段と、
    前記サーバプロセスの障害の発生を検出する障害検出手段と、
    前記障害検出手段が、前記サーバプロセスの障害の発生を検出したときに、前記サーバプロセスを再起動する再起動手段と、
    前記再起動手段が再起動したサーバプロセスからサーバIFを再取得するサーバIF再取得手段と、
    前記履歴記憶手段に記憶されている機能呼出の履歴に基づいて、前記サーバIF再取得手段が再取得したサーバIFを介して、再起動したサーバプロセスの状態を、前記サーバプロセスの障害の発生前の状態に遷移させる機能呼出を行う状態回復手段とを有することを特徴とするデータ処理システム。
  2. サーバプロセスと、設定されたサーバIFを介して前記サーバプロセスに対して機能呼出を発行することにより前記サーバプロセスの機能を利用するクライアントプロセスと、前記サーバプロセスの機能にアクセスするためのインタフェースを前記サーバIFとして当該サーバプロセスから取得し、前記クライアントプロセスに設定するサーバIFデリバリプロセスとが稼働するデータ処理システムであって、
    前記サーバIFデリバリプロセスは、
    前記サーバプロセスの障害の発生を検出する障害検出手段と、
    前記障害検出手段が、前記サーバプロセスの障害の発生を検出したときに、前記サーバプロセスを再起動する再起動手段と、
    前記再起動手段が再起動したサーバプロセスからサーバIFを再取得し、前記クライアントプロセスに設定されているサーバIFを再取得したサーバIFに切り替えるサーバIF切替手段とを有し、
    前記クライアントプロセスは、
    前記サーバプロセスに発行した機能呼出の履歴を記憶する履歴記憶手段と、
    設定されているサーバIFが切り替えられたときに、前記履歴記憶手段に記憶されている機能呼出の履歴に基づいて、前記切り替え後のサーバIFを介して、再起動したサーバプロセスの状態を、前記サーバプロセスの障害の発生前の状態に遷移させる機能呼出を行う状態回復手段とを有することを特徴とするデータ処理システム。
  3. サーバプロセスと、サーバIFデリバリプロセスと、取得したサーバIFを介して前記サーバプロセスに対して機能呼出を発行することにより前記サーバプロセスの機能を利用するクライアントプロセスとが稼働するデータ処理システムであって、前記サーバIFデリバリプロセスは、前記クライアントプロセスから発行されたサーバIF要求に応答して、前記サーバプロセスの機能にアクセスするためのインタフェースを前記サーバIFとして当該サーバプロセスから取得し、前記クライアントプロセスに配信し、前記クライアントプロセスは、前記サーバIFデリバリプロセスにサーバIF要求を発行することによりサーバIFを取得するデータ処理システムであって、
    前記サーバIFデリバリプロセスは、
    前記サーバプロセスの障害の発生を検出する障害検出手段と、
    前記障害検出手段が、前記サーバプロセスの障害の発生を検出したときに、前記サーバプロセスを再起動する再起動手段とを有し、
    前記クライアントプロセスは、
    前記サーバプロセスに発行した機能呼出の履歴を記憶する履歴記憶手段と、
    前記サーバプロセスの障害の発生を検知する障害検知手段と、
    前記障害検知手段が、前記サーバプロセスの障害の発生を検知したときに、前記サーバIFデリバリプロセスにサーバIF要求を発行することによりサーバIFを再取得するサーバIF再取得手段と、
    前記障害検知手段が、前記サーバプロセスの障害の発生を検知したときに、前記履歴記憶手段に記憶されている機能呼出の履歴に基づいて、前記サーバIF再取得手段が再取得したサーバIFを介して、再起動したサーバプロセスの状態を、前記サーバプロセスの障害の発生前の状態に遷移させる機能呼出を行う状態回復手段とを有することを特徴とするデータ処理システム。
  4. 請求項1記載のデータ処理システムであって、
    当該データ処理システムは自動車に搭載されるデータ処理システムであり、
    前記サーバプロセスは、カーナビゲーション機能を提供するサーバプロセスであり、
    前記クライアントプロセスは、表示インタフェースを含むヒューマンインタフェースを制御するプロセスであって、前記サーバプロセスのカーナビゲーション機能を利用しながら、カーナビゲーション機能の表示インタフェースを含むヒューマンインタフェースをユーザに提供するプロセスであり、
    当該クライアントプロセスは、前記障害検出手段が、前記サーバプロセスの障害の発生を検出してから、前記状態回復手段が、起動したサーバプロセスの状態を、前記サーバプロセスの障害の発生前の状態に遷移させるまで、前記カーナビゲーションの表示インタフェースの表示内容を、前記サーバプロセスの障害の発生前の表示内容に維持する表示維持手段を有することを特徴とするデータ処理システム。
  5. コンピュータによって読みとられ実行されるコンピュータプログラムであって、
    前記コンピュータを請求項1、2、3または4記載のデータ処理システムとして機能させることを特徴とするコンピュータプログラム。
JP2009013055A 2009-01-23 2009-01-23 データ処理システム Expired - Fee Related JP5276456B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009013055A JP5276456B2 (ja) 2009-01-23 2009-01-23 データ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009013055A JP5276456B2 (ja) 2009-01-23 2009-01-23 データ処理システム

Publications (2)

Publication Number Publication Date
JP2010170389A true JP2010170389A (ja) 2010-08-05
JP5276456B2 JP5276456B2 (ja) 2013-08-28

Family

ID=42702476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009013055A Expired - Fee Related JP5276456B2 (ja) 2009-01-23 2009-01-23 データ処理システム

Country Status (1)

Country Link
JP (1) JP5276456B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377458A (zh) * 2019-07-26 2019-10-25 努比亚技术有限公司 数据恢复方法、移动终端及计算机可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161788A (ja) * 1992-11-18 1994-06-10 Fujitsu Ltd マルチタスク・システム
JPH0944433A (ja) * 1995-08-02 1997-02-14 Matsushita Electric Ind Co Ltd Rpcモニタ
JP2000076070A (ja) * 1998-08-31 2000-03-14 Toshiba Corp クライアントサーバシステムおよびそのシステムを実現するためのコンポーネント連携プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000311094A (ja) * 1999-02-25 2000-11-07 Alcatel 遠隔オブジェクト間の通信方法
JP2001282755A (ja) * 2000-03-30 2001-10-12 Nec Corp 組み込み装置におけるcorba単独再起動方式
JP2002342095A (ja) * 2001-05-22 2002-11-29 Nec Microsystems Ltd アプリケーションの異常終了検出・復帰方法
JP2004030092A (ja) * 2002-06-25 2004-01-29 Hitachi Ltd アプリケーション回復システム
JP2006031685A (ja) * 2004-07-21 2006-02-02 Samsung Electronics Co Ltd ソケット接続管理システム及びソケット接続状態のチェック方法
JP2008210164A (ja) * 2007-02-27 2008-09-11 Fujitsu Ltd ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161788A (ja) * 1992-11-18 1994-06-10 Fujitsu Ltd マルチタスク・システム
JPH0944433A (ja) * 1995-08-02 1997-02-14 Matsushita Electric Ind Co Ltd Rpcモニタ
JP2000076070A (ja) * 1998-08-31 2000-03-14 Toshiba Corp クライアントサーバシステムおよびそのシステムを実現するためのコンポーネント連携プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000311094A (ja) * 1999-02-25 2000-11-07 Alcatel 遠隔オブジェクト間の通信方法
JP2001282755A (ja) * 2000-03-30 2001-10-12 Nec Corp 組み込み装置におけるcorba単独再起動方式
JP2002342095A (ja) * 2001-05-22 2002-11-29 Nec Microsystems Ltd アプリケーションの異常終了検出・復帰方法
JP2004030092A (ja) * 2002-06-25 2004-01-29 Hitachi Ltd アプリケーション回復システム
JP2006031685A (ja) * 2004-07-21 2006-02-02 Samsung Electronics Co Ltd ソケット接続管理システム及びソケット接続状態のチェック方法
JP2008210164A (ja) * 2007-02-27 2008-09-11 Fujitsu Ltd ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377458A (zh) * 2019-07-26 2019-10-25 努比亚技术有限公司 数据恢复方法、移动终端及计算机可读存储介质
CN110377458B (zh) * 2019-07-26 2023-11-10 拉萨新起点文化传播有限公司 数据恢复方法、移动终端及计算机可读存储介质

Also Published As

Publication number Publication date
JP5276456B2 (ja) 2013-08-28

Similar Documents

Publication Publication Date Title
JP4060322B2 (ja) アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体
US11892922B2 (en) State management methods, methods for switching between master application server and backup application server, and electronic devices
CN102868754A (zh) 一种实现集群存储高可用性的方法、节点装置和系统
JP2009025965A (ja) フェールオーバにおける引き継ぎ先を自律的に変更する計算機システム及び方法
CN102394914A (zh) 集群脑裂处理方法和装置
WO2012149719A1 (zh) 一种建立检查点的方法和系统
CN112732674B (zh) 云平台服务管理方法、装置、设备及可读存储介质
CN109766198B (zh) 流式处理方法、装置、设备及计算机可读存储介质
US20040123183A1 (en) Method and apparatus for recovering from a failure in a distributed event notification system
JP2010257332A (ja) 分析装置制御システム
CN115016922B (zh) 一种行为识别方法及电子设备
JP5276456B2 (ja) データ処理システム
CN101739406A (zh) 双控制器上文件服务操作的同步方法
JP2005250840A (ja) 耐障害システムのための情報処理装置
JP2004258936A (ja) モバイル通信端末及びそれに用いるフェイルセーフ方法並びにそのプログラム
CN111858177B (zh) 进程间通信的异常修复方法、装置、电子设备及存储介质
JP2005209029A (ja) アプリケーション管理システム、アプリケーション管理方法およびその管理方法を実行させるためのプログラム
JP5691248B2 (ja) タスク引継プログラム、処理装置及びコンピュータ・システム
JP6107159B2 (ja) データベースシステム及びデータベースシステムの制御方法
JP2010152742A (ja) 通信制御装置
JP2008009518A (ja) 2重化オペレーションシステム
JP2006268278A (ja) 遠隔保守コンピュータ保守システム
JP2010224744A (ja) セッション管理装置および方法
JP2010055509A (ja) 障害復旧システム、方法及びプログラム、並びにクラスタシステム
JP2015153128A (ja) 呼処理制御装置及びそのソフトウェア更新方法、呼処理システム、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130426

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130517

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5276456

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees