[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2008197885A - アプリケーション異常終了処理システムとその方法およびプログラム - Google Patents

アプリケーション異常終了処理システムとその方法およびプログラム Download PDF

Info

Publication number
JP2008197885A
JP2008197885A JP2007031884A JP2007031884A JP2008197885A JP 2008197885 A JP2008197885 A JP 2008197885A JP 2007031884 A JP2007031884 A JP 2007031884A JP 2007031884 A JP2007031884 A JP 2007031884A JP 2008197885 A JP2008197885 A JP 2008197885A
Authority
JP
Japan
Prior art keywords
application
cooperation destination
processing
destination module
termination processing
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.)
Withdrawn
Application number
JP2007031884A
Other languages
English (en)
Inventor
Yoshinori Saida
好則 才田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007031884A priority Critical patent/JP2008197885A/ja
Publication of JP2008197885A publication Critical patent/JP2008197885A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】アプリケーションが他のアプリケーション等の連携先と連携して動作するコンピュータにおいて、アプリケーションおよび連携先の大幅な改造無しに、アプリケーションの異常終了の検出を可能にし且つアプリケーションの異常終了が連携先に悪影響を及ぼさないようにする。
【解決手段】アプリケーション140とその連携対象アプリケーション150等とが連携して処理を進めるために必要な両者間でのメッセージの授受を、連携用ライブラリ160中の処理中継手段170が中継する。終了検出手段180は、処理中継手段170で行われているメッセージの授受の中継処理を監視し、正常な手続きを経ることなく切断された場合に、アプリケーション140が異常終了したものとみなし、終了処理代行手段190は、連携先に対する終了処理をアプリケーション140に代わって処理中継手段170を通じて実行する。
【選択図】図2

Description

本発明はアプリケーションプログラムの異常終了検出およびその検出時の処理に関し、特にアプリケーションプログラムが他のアプリケーションプログラム等と連携動作するコンピュータ環境下でのアプリケーションプログラムの異常終了検出とその検出時の処理に関する。
パーソナルコンピュータや携帯端末などのコンピュータにおける処理の形態として、アプリケーションプログラム(単にアプリケーションとも言う)が、他のアプリケーションプログラム等のモジュールと連携して、一連の処理を遂行する形態がある。例えば、アプリケーション側にはユーザインタフェースを実装し、そのユーザインタフェースを通じてユーザから要求される機能を実現する処理やサービスは連携先モジュールに実装し、アプリケーションから適宜に連携先モジュールに処理を要求することで、ユーザに対して所望の機能やサービスを提供するといった例がある。
このようにアプリケーションが連携先モジュールと連携動作するコンピュータ環境では、アプリケーションが異常終了すると、その影響は異常終了したアプリケーションのみに留まらず、連携先モジュールにも及ぶ。例えば、アプリケーションが連携先モジュールの機能をオープンしたまま異常終了すると、その機能が使用中状態のままになってしまって他のアプリケーションから利用できなくなってしまう。
そこで従来より、アプリケーションの異常終了を検出し、必要な処理を行うようにした技術が幾つか提案されている。
例えば特許文献1では、各アプリケーションに、起動時に監視制御プロセスとTCP/IPのコネクションを用いて接続して以後一定期間ごとに状態通知を送信する機能を実装し、監視制御プロセスにおいて、アプリケーションとのコネクションが切断された場合あるいはは状態通知を受信できなくなった場合に、そのアプリケーションに異常が発生したと判断し、正常動作中の他のアプリケーションに対して正常終了要求を送って正常終了させている。
また特許文献2では、複数のアプリケーションが連携動作を行う環境において、各アプリケーションに、システム稼動状態監視/制御部から所定期間毎に送信される稼動情報送信要求の受信に応答して自身の稼動情報を送信する機能を実装し、システム稼動状態監視/制御部において、稼動情報送信要求に対する応答がなかったアプリケーションは異常終了していると判断し、当該アプリケーションと連携動作中のアプリケーションに異常終了したことを知らせるメッセージを送信してその連携動作を終了させている。
特開2001-229032号公報 特開2002-342095号公報
上述した従来技術によれば、アプリケーションの異常終了を検出し、そのアプリケーションと連携中の他のアプリケーション等に対して必要な処理を行うことが可能である。しかしながら、そのためにはアプリケーション中に、特許文献1の場合には監視制御プロセスとTCP/IPのコネクションを用いて接続して以後一定期間ごとに状態通知を送信する機能を実装する必要があり、特許文献2の場合にはシステム稼動状態監視/制御部から所定期間毎に送信される稼動情報送信要求の受信に応答して自身の稼動情報を送信する機能を実装する必要がある。このため、これらの従来技術を既存のアプリケーションに適用する場合にはアプリケーションの大幅な改造が必要になる。また、アプリケーションには、連携先とメッセージの授受を行う機能とは別に、監視制御プロセスやシステム稼動状態監視/制御部に対して通信する機能が必要になるため、アプリケーションの実装工数の増加、アプリケーション稼動時の性能低下が問題となる。
同様に、アプリケーションと連携する他のアプリケーション等の連携先も、監視制御プロセスやシステム稼動状態監視/制御部との通信機能が必要になるため、上述した従来技術を既存の連携先に適用する場合には連携先モジュールの大幅な改造が必要になる。また、連携先モジュールには、アプリケーションとメッセージの授受を行う機能とは別に、監視制御プロセスやシステム稼動状態監視/制御部に対して通信する機能が必要になるため、連携先モジュールの実装工数の増加、モジュール稼動時の性能低下が問題となる。
本発明の目的は、アプリケーションが他のアプリケーション等の連携先モジュールとメッセージの授受を行うことで連携して動作するコンピュータにおいて、アプリケーションおよび連携先モジュールの大幅な改造無しに、アプリケーションの異常終了の検出を可能にし、また、アプリケーションの異常終了がその連携先モジュールに悪影響を及ぼさないようにすることにある。
本発明の第1のアプリケーション異常終了処理システムは、アプリケーションプログラムが連携先モジュールとメッセージを授受して連携動作するコンピュータにおけるアプリケーション異常終了処理システムにおいて、前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受を中継する処理中継手段と、該処理中継手段で行われている前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受の中継処理が正常な手続きを経ることなく切断された場合に、前記アプリケーションプログラムが異常終了したものと判定する終了検出手段と、前記アプリケーションプログラムの異常終了が前記終了検出手段で判定された場合に、前記アプリケーションプログラムに代わって前記処理中継手段を通じて前記連携先モジュールに対する終了処理を行う終了処理代行手段とを備えたことを特徴とする。
本発明の第2のアプリケーション異常終了処理システムは、第1のアプリケーション異常終了処理システムにおいて、前記処理中継手段は、前記アプリケーションプログラムによって呼び出される第1のサブモジュールと、該第1のサブモジュールとプロセス間通信によりメッセージの授受を行い且つ前記連携先モジュールを呼び出す第2のサブモジュールとを含んで構成され、前記終了検出手段は、前記第1のサブモジュールと前記第2のサブモジュールとの間のプロセス間通信が正常な手続きを経ることなく切断された場合に前記アプリケーションプログラムの異常終了と判定し、前記終了処理代行手段は、前記第2のサブモジュールを通じて前記連携先モジュールに対する終了処理を行うことを特徴とする。
本発明の第3のアプリケーション異常終了処理システムは、第1のアプリケーション異常終了処理システムにおいて、前記処理中継手段は、前記アプリケーションプログラムとその各連携先モジュールとの間に1つずつ配置されることを特徴とする。
本発明の第4のアプリケーション異常終了処理システムは、第1のアプリケーション異常終了処理システムにおいて、前記処理中継手段は、前記アプリケーションプログラムとその全ての連携先モジュールとの間のメッセージの授受を中継し、且つ、現在連携している連携先モジュールの情報を連携先記憶データベースに保存することを特徴とする。
本発明の第5のアプリケーション異常終了処理システムは、第1乃至第4の何れかのアプリケーション異常終了処理システムにおいて、前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションが終了したことを知らせるメッセージを送信することを特徴とする。
本発明の第6のアプリケーション異常終了処理システムは、第1乃至第4の何れかのアプリケーション異常終了処理システムにおいて、前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションの代わりに正常な終了手続きを代行して行うことを特徴とする。
本発明の第7のアプリケーション異常終了処理システムは、第1乃至第4の何れかのアプリケーション異常終了処理システムにおいて、前記終了処理代行手段は、連携先モジュールに対応する異常終了処理用コードを予め記憶し、異常終了発生時には異常終了したアプリケーションの連携先モジュールに対して、前記記憶されている異常終了処理用コードを呼び出して実行することを特徴とする。
本発明の第1のアプリケーション異常終了処理方法は、アプリケーションプログラムが連携先モジュールとメッセージを授受して連携動作するコンピュータにおけるアプリケーション異常終了処理方法において、処理中継手段が、前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受を中継し、終了検出手段が、前記処理中継手段で行われている前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受の中継処理が正常な手続きを経ることなく切断された場合に、前記アプリケーションプログラムが異常終了したものと判定し、終了処理代行手段が、前記アプリケーションプログラムの異常終了が前記終了検出手段で判定された場合に、前記アプリケーションプログラムに代わって前記処理中継手段を通じて前記連携先モジュールに対する終了処理を行うことを特徴とする。
本発明の第2のアプリケーション異常終了処理方法は、第1のアプリケーション異常終了処理方法において、前記処理中継手段は、前記アプリケーションプログラムによって呼び出される第1のサブモジュールと、該第1のサブモジュールとプロセス間通信によりメッセージの授受を行い且つ前記連携先モジュールを呼び出す第2のサブモジュールとを含んで構成され、前記終了検出手段は、前記第1のサブモジュールと前記第2のサブモジュールとの間のプロセス間通信が正常な手続きを経ることなく切断された場合に前記アプリケーションプログラムの異常終了と判定し、前記終了処理代行手段は、前記第2のサブモジュールを通じて前記連携先モジュールに対する終了処理を行うことを特徴とする。
本発明の第3のアプリケーション異常終了処理方法は、第1のアプリケーション異常終了処理方法において、前記処理中継手段は、前記アプリケーションプログラムとその各連携先モジュールとの間に1つずつ配置されることを特徴とする。
本発明の第4のアプリケーション異常終了処理方法は、第1のアプリケーション異常終了処理方法において、前記処理中継手段は、前記アプリケーションプログラムとその全ての連携先モジュールとの間のメッセージの授受を中継し、且つ、現在連携している連携先モジュールの情報を連携先記憶データベースに保存することを特徴とする。
本発明の第5のアプリケーション異常終了処理方法は、第1乃至第4の何れかのアプリケーション異常終了処理方法において、前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションが終了したことを知らせるメッセージを送信することを特徴とする。
本発明の第6のアプリケーション異常終了処理方法は、第1乃至第4の何れかのアプリケーション異常終了処理方法において、前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションの代わりに正常な終了手続きを代行して行うことを特徴とする。
本発明の第7のアプリケーション異常終了処理方法は、第1乃至第4の何れかのアプリケーション異常終了処理方法において、前記終了処理代行手段は、連携先モジュールに対応する異常終了処理用コードを予め記憶し、異常終了発生時には異常終了したアプリケーションの連携先モジュールに対して、前記記憶されている異常終了処理用コードを呼び出して実行することを特徴とする。
『作用』
本発明にあっては、アプリケーションとその連携先モジュールとが連携して処理を進めるために必要な両者間でのメッセージの授受を処理中継手段が中継するようにし、この処理中継手段で行われているメッセージの授受の中継処理を終了検出手段が監視し、この中継処理が正常な手続きを経ることなく切断(解除)された場合に、アプリケーションが異常終了したものとみなし、終了処理代行手段が連携先モジュールに対する終了処理をアプリケーションプログラムに代わって処理中継手段を通じて行うことで、アプリケーションの異常終了がその連携先モジュールに悪影響を及ばさないようにする。
本発明によれば、アプリケーションが他のアプリケーション等の連携先モジュールとメッセージの授受を行うことで連携して動作するコンピュータにおいて、アプリケーションの大幅な改造無しに、アプリケーションの異常終了検出が可能になる。その理由は、アプリケーションとその連携先モジュールとが連携して処理を進めるために必要な両者間でのメッセージの授受を処理中継手段が中継するようにし、この処理中継手段で行われているメッセージの授受の中継処理を終了検出手段が監視し、この中継処理が正常な手続きを経ることなく切断された場合に、アプリケーションが異常終了したものとみなすため、従来技術のような監視制御プロセスやシステム稼動状態監視/制御部との通信機能をアプリケーションに実装する必要がないからである。
また本発明によれば、アプリケーションが他のアプリケーション等の連携先モジュールとメッセージの授受を行うことで連携して動作するコンピュータにおいて、連携先モジュールの大幅な改造無しに、アプリケーションの異常終了が連携先モジュールに与える悪影響を防止することができる。その理由は、アプリケーションとその連携先モジュールとが連携して処理を進めるために必要な両者間でのメッセージの授受を処理中継手段が中継するようにし、アプリケーションが異常終了した場合、終了処理代行手段が、連携先モジュールに対する終了処理を、アプリケーションプログラムに代わって処理中継手段を通じて行うため、従来技術のような監視制御プロセスやシステム稼動状態監視/制御部とのインタフェースを連携先モジュールに実装する必要がないからである。
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
『第1の実施の形態』
<ハードウェア構成>
図1を参照すると、本発明を適用したコンピュータ100のハードウェア構成の一例は、表示装置101、CPU102、RAM103、ROM104、HDD105、外部メモリ106、出力装置107、通信装置108、入力装置109およびそれらを相互に接続するバス300から構成されている。ROM104は、読み取り専用のメモリであり、CPU102で実行されるオペレーティングシステム(OS)、アプリケーション管理システムなどのミドルウェア、ライブラリ関数、サービスプロセスおよび固定データなどを記憶する。RAM103は、読み書き可能なメモリであり、CPU102で実行されるアプリケーションプログラムおよび演算データなどを一時的に記憶する。HDD105および外部メモリ106は、ファイルシステム、アプリケーションプログラムおよび各種データを記憶する。表示装置101は、LCD等で構成され、アプリケーションのウィンドウ画面などを表示する。出力装置107は、スピーカ等で構成され、音声メッセージなどを出力する。入力装置109は、キー操作部などで構成され、ユーザからのデータや指示を入力する。通信装置108は、有線または無線によって音声通信やデータ通信を行う。このようなハードウェア構成を有するコンピュータ100の例としては、パーソナルコンピュータなどの一般的なコンピュータ、携帯電話機、ゲーム端末などがある。
<ソフトウェア構成>
図2を参照すると、本発明の第1の実施の形態は、コンピュータ100上で、OS110、アプリケーション管理システム120、共通サービス130〜13n、アプリケーション140、連携対象アプリケーション150〜15n、連携用ライブラリ160が動作する。ここで、アプリケーション140が異常終了の検出対象となるアプリケーションであり、アプリケーション管理システム120、共通サービス130〜13nおよび連携対象アプリケーション150〜15nがアプリケーション140の連携先となるモジュールである。
アプリケーション管理システム120は、コンピュータ100上で複数のアプリケーションが動作している場合に、各アプリケーションの起動、終了、中断といった実行状態の制御および管理や、各アプリケーションのウィンドウの表示切り替えを行うソフトウェアである。特に画面サイズが小さく、マウスのようなポインティングデバイスがない携帯端末では、同時に1つのアプリケーションのウィンドウのみしか表示できず、またユーザが直接アプリケーションのウィンドウを選択して切り替える手段がないため、このアプリケーション管理システム120が、現在ユーザが操作中の状態(アクティブ状態)にあるアプリケーションのウィンドウを最前面に表示する処理や、或るアプリケーションが終了した際に、直前にアクティブ状態であったアプリケーションのウィンドウを最前面に表示する処理や、或るアプリケーションAが他のアプリケーションBを呼び出した際に、最前面に表示されているウィンドウを、アプリケーションAのものからアプリケーションBに切り替える処理などを自動的に行っている。
共通サービス130〜13nは、コンピュータ100が備えているハードウェアおよびソフトウェアの機能を提供するサービスモジュールである。提供する機能の例としては、外部メモリ106や通信装置108等のハードウェアへアクセスする機能、日本語変換機能等のソフトウェアモジュールへアクセスする機能、動画再生機能等がある。
連携対象アプリケーション150〜15nは、アプリケーション140以外のコンピュータ100上で動作しているアプリケーションである。
連携用ライブラリ160は、ライブラリ関数としての基本的な機能に加えて、処理中継手段170〜17m、終了検出手段180〜18mおよび終了処理代行手段190〜19mを含んで構成される。1つの処理中継手段に対して、1つの終了検出手段と1つの終了処理代行手段とが組になる。
処理中継手段170〜17mは、アプリケーション140が連携用ライブラリ160を用いて、アプリケーション管理システム120もしくは、共通サービス130〜13nもしくは、連携対象アプリケーション150〜15nと連携処理を行っているときに、連携用ライブラリ160内部でアプリケーション140とその連携先とのやり取りをプロセス間通信等の手段により中継するように動作するモジュールである。アプリケーション140が現在連携用ライブラリ160を用いて連携中の連携先モジュールの数だけ、処理中継手段170〜17mは存在する。
終了検出手段180〜18mは、対応する処理中継手段170〜17m内での中継処理を監視し、中継処理が正常な手続きを経ることなく切断されることにより、アプリケーション140の異常終了を検出するように動作するモジュールである。
終了処理代行手段190〜19mは、対応する終了検出手段180〜18mがアプリケーション140の異常終了を検出すると、アプリケーション140と連携中の連携先モジュールに対し、終了処理の代行を行うように動作するモジュールである。
次に、本実施の形態の動作について詳細に説明する。
アプリケーション140は、連携用ライブラリ160を利用して、アプリケーション管理システム120や、共通サービス130〜130n、連携対象アプリケーション150〜15nと連携処理を行う。
アプリケーション140とアプリケーション管理システム120との連携の例としては、アプリケーション140の起動時にアプリケーション140に属するウィンドウを他のアプリケーションのウィンドウよりも表示装置101の表示画面の前面に表示させる操作や、他の優先度が高いアプリケーションが起動されたり、アプリケーション140が連携対象アプリケーション150〜15nのいずれかのアプリケーションを呼び出した際に、そのアプリケーションのウィンドウを最前面に表示するとともに、アプリケーション140のウィンドウを背後に移動させたり、非表示状態にする操作がある。
アプリケーション140と共通サービス130〜13nとの連携の例としては、コンピュータ100が備えているハードウェア及びソフトウェア機能(日本語変換処理サービスや、通信機能、動画再生機能等)を利用するために、アプリケーション140が共通サービス130〜13nを呼び出すといったものがある。
アプリケーション140と連携対象アプリケーション150〜15nとの連携の例としては、例えばブラウザソフト上でメールアドレスをユーザが選択することにより、選択されたメールアドレスを引数としてメールソフトを起動するような例がある。
このようにアプリケーション140は、連携用ライブラリ160を利用して、上に挙げた任意の連携先モジュールと随時連係動作を行うことができる。連携用ライブラリ160は、それぞれの連携先モジュールからは独立したライブラリとして実装されるものであり、通常のコンピュータにおけるOSやミドルウェアが備えるAPI(Application Program Interface)に相当するものである。また連携用ライブラリ160が基本的に備える機能としては、例えば処理のOPEN、CLOSE動作や、データのREAD、WRITE動作といった汎用的なものから、モジュール固有の機能といったものがある。
処理中継手段170〜17mは、連携用ライブラリ160内部で動作し、アプリケーション140とその連携先モジュール一組の連携につき一個の処理中継手段が動作する。処理中継手段170〜17mは、例えばTCP/IP等のプロセス間通信手段を用いて、アプリケーション140と連携先モジュールとの間の連携用メッセージ(処理のタイプ、データ内容等)のやり取りを送受信する。
ここで、アプリケーション140及び連携先モジュールが利用するのはあくまで連携用ライブラリ160であり、その内部で動作している処理中継手段170〜17mには直接アクセスしないので、本発明のシステムを適用する場合に、従来のアプリケーションや共通サービス、アプリケーション管理システムを修正する必要はない。
以降、アプリケーション140が異常終了した場合の動作について説明する。
まず、アプリケーション140が或る連携先モジュールと連携動作中に、何らかの原因により異常終了したとする(図3のステップA1)。ここでは、アプリケーション140は、アプリケーション管理システム120、共通サービス130、連携対象アプリケーション150の3つの連携先モジュールと連携動作中であったとする。この場合、それぞれとの連携に対して、連携用ライブラリ160内で処理中継手段170〜173が動作している。
アプリケーション140の異常終了により、処理中継手段170〜173内のプロセス間通信の接続がそれぞれ切断される(ステップA2)。
これにより、終了検出手段180〜183はアプリケーション140の異常終了を検知する(ステップA3)。
終了検出手段180〜183がアプリケーション140の異常終了を検知すると、終了処理代行手段190〜193は、アプリケーション140に代わって、それぞれの連携先モジュールに対して終了処理を行う(ステップA4)。
この終了処理の具体的内容としては、いくつか考えられる。まず一つは、連携先モジュールに対して予め決められた終了メッセージを送る終了通知手段を終了処理代行手段190〜19m内に備え、そのメッセージを受け取った連携先モジュール側で適切な終了処理をそれぞれ行うという方法である。
二つ目の方法としては、終了処理代行手段190〜19m内で、それぞれの連携先モジュールに応じた終了処理を予め実装した終了手続き代行手段を備え、異常終了したアプリケーション140の代わりにこの終了手続き代行手段を用いて終了処理を行う方法である。
その他の方法としては、各連携先が、自身の終了処理を記述した関数を予め準備しておき、終了処理代行手段190〜19m内に備える終了処理コード実行手段に対して登録するという手法も考えられる。この場合、アプリケーションの異常終了が検知されると、終了処理代行手段190〜19mは、終了代行処理を行う対象の連携先モジュールに応じて終了処理コード実行手段に登録されていた終了処理を呼び出すことで、終了処理の代行を実行する。
次に、本実施の形態の効果について説明する。
本実施の形態によれば、処理中継手段170〜17mと終了検出手段180〜18mが連携してアプリケーション140の異常終了を検出し、終了処理代行手段190〜19mが異常終了したアプリケーション140の代わりに正常な終了処理を行うというように構成されているため、異常終了したアプリケーション140と連係動作中のアプリケーション管理システム120や共通サービス130〜13n、連携対象アプリケーション150〜15nに対して悪影響を与えることを防ぐことができる。具体的には、画面表示がフリーズしたり、該当サービスが使用中状態のままになる等の事態を防止することができる。
また本実施の形態によれば、さらに、連携用ライブラリ160内部に処理中継手段170〜17m、終了検出手段180〜18m、終了処理代行手段190〜19mを配置するというように構成されているため、本発明をコンピュータに適用する場合に既存のアプリケーション、共通サービス、アプリケーション管理システムに対して修正を加える必要がない。
『第2の実施の形態』
次に本発明の第2の実施の形態について図面を参照して詳細に説明する。第2の実施の形態にかかるコンピュータのハードウェア構成は、図1に示した第1の実施の形態にかかるコンピュータと同じである。また、第2の実施の形態にかかるコンピュータのソフトウェア構成は、連携用ライブラリ160および連携先記憶データベース200を除き、図2に示した第2の実施の形態のソフトウェア構成と同じである。
図4を参照すると、連携用ライブラリ160は、1組の処理中継手段170、終了検出手段180および終了処理代行手段190とを含んで構成される。
連携先記憶データベース200は、アプリケーション140が連携用ライブラリ160を用いて、アプリケーション管理システム120もしくは、共通サービス130〜13nもしくは、連携対象アプリケーション150〜15nと連携処理を行っているときに、実際に連携状態にある相手の情報を一時的に記憶する。連携先記憶データベース200に記憶された連携先の情報は、その連携が終了すると、削除される。
処理中継手段170は、アプリケーション140が連携用ライブラリ160を用いて、アプリケーション管理システム120もしくは、共通サービス130〜13nもしくは、連携対象アプリケーション150〜15nと連携処理を行っているときに、連携用ライブラリ160内部でアプリケーション140と全連携先とのやり取りをプロセス間通信等の手段により中継し、連携先の情報を連携先記憶データベース200に記憶するように動作する。
終了検出手段180は、処理中継手段170内での中継処理を監視し、中継処理が正常な手続きを経ることなく切断されることにより、アプリケーション140の異常終了を検出するように動作する。
終了処理代行手段190は、終了処理検出手段180がアプリケーション140の異常終了を検出すると、連携先記憶データベース200に記憶されたアプリケーション140の全連携先の情報を取得し、それら全連携先に対し、終了処理の代行を行うように動作する。
このように第2の実施の形態は、第1の実施の形態において各連携毎にそれぞれ複数個準備していた処理中継手段170〜17m、終了検出手段180〜18mおよび終了処理代行手段190〜19mを、全ての連携先で共通に使用する処理中継手段170、終了検出手段180、終了処理代行手段190とし、連携相手の情報を連携先記憶データベース200に記憶しておく構成にしたものである。
図5を参照すると、本発明の第1の実施の形態にかかる実施例1では、処理中継手段170は、アプリケーション140から関数呼び出しによって呼び出されるサブモジュールAと、このサブモジュールAとプロセス間通信によりメッセージの授受を行い、アプリケーション140に代わって連携対象アプリケーション150に対し関数呼び出しを行うサブモジュールBとを含んで構成される。また終了検出手段180は、サブモジュールAとサブモジュールBとの間のプロセス間通信が正常な手続きを経ることなく切断された場合、アプリケーション140の異常終了と判定する機能を持つ。さらに、終了処理代行手段190は、サブモジュールBを通じて連携対象アプリケーション150に対する終了処理を行う機能を持つ。
アプリケーション140が、連携対象アプリケーション150の機能を利用するとき、連携用ライブラリ160に格納された連携対象アプリケーション150の機能を利用する関数(例:lib_apA_func1())を呼び出す。
lib_apA_func1()内部(つまり連携用ライブラリ内部)では、処理中継手段170がプロセス間通信を使って、サブモジュールAからサブモジュールBに呼び出しの内容を送信する。次に、サブモジュールBがこれを受信したときに、連携対象アプリケーション150の機能を呼び出す関数(例:apA_func1())を実際に呼び出す。ここで、サブモジュールAおよびサブモジュールBはいずれも処理中継手段170を構成するサブモジュールであるが、サブモジュールAはアプリケーション140から関数として呼び出されているためにアプリケーション140と同じプロセスになり、サブモジュールBはアプリケーション140とは別のプロセスになる。
関数呼び出しを受けた連携対象アプリケーション150は、必要な処理を実行し、処理の返り値を返す(関数リターン)。この処理の返り値は、関数呼び出しのときの順序とは逆に、サブモジュールBからプロセス間通信によってサブモジュールAに送信され、サブモジュールAからアプリケーション140に関数リターンで渡される。
以上のような呼び出し処理中に、アプリケーション140が異常終了すると、アプリケーション140と同じプロセスであるサブモジュールAも終了し、サブモジュールAとサブモジュールB間のプロセス間通信が切断される。これを終了検出手段180が検出し、終了処理代行手段190で終了処理を行う。連携対象アプリケーション150の呼び出し元はサブモジュールBであり、アプリケーション140が異常終了しても、それとは別のプロセスであるサブモジュールBは終了しないので、終了処理代行手段190は、サブモジュールBを通じて連携対象アプリケーション150に対して終了処理を行う。
本実施例1では、呼び出すサービスや連携対象アプリケーションそれぞれ毎に、処理中継手段170、終了検出手段180および終了処理代行手段190を備えるようにした。第2の実施の形態にかかる実施例2では、1つの処理中継手段を使ってアプリケーション140と全ての連携先とのやりとりを行う。そのため実施例2では、現在処理中の連携先を覚えておくための連携先記憶データベース200が存在し、アプリケーション140が異常終了した場合は、この連携先記憶データベース200に記憶されている連携先全てに対して、終了処理代行手段による終了処理が実行される。
本発明によれば、アプリケーションの異常終了が、コンピュータ端末の安定動作に対して悪影響を与えるのを防ぐといった用途に適用できる。
本発明の第1の実施の形態にかかるコンピュータのハードウェア構成例を示すブロック図である。 本発明の第1の実施の形態にかかるコンピュータのソフトウェア構成例を示すブロック図である。 本発明の第1の実施の形態の動作を示す流れ図である。 本発明の第2の実施の形態にかかるコンピュータのソフトウェア構成例を示すブロック図である。 本発明の第1の実施の形態の実施例のブロック図である。
符号の説明
100…コンピュータ
101…表示装置
102…CPU
103…RAM
104…ROM
105…HDD
106…外部メモリ
107…出力装置
108…通信装置
109…入力装置
110…OS
120…アプリケーション管理システム
130〜13n…共通サービス
140…アプリケーション
150〜15n…連携対象アプリケーション
160…連携用ライブラリ
170〜17m…処理中継手段
180〜18m…終了検出手段
190〜19m…終了処理代行手段
200…連携先記憶データベース
300…バス

Claims (21)

  1. アプリケーションプログラムが連携先モジュールとメッセージを授受して連携動作するコンピュータにおけるアプリケーション異常終了処理システムにおいて、
    前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受を中継する処理中継手段と、
    該処理中継手段で行われている前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受の中継処理が正常な手続きを経ることなく切断された場合に、前記アプリケーションプログラムが異常終了したものと判定する終了検出手段と、
    前記アプリケーションプログラムの異常終了が前記終了検出手段で判定された場合に、前記アプリケーションプログラムに代わって前記処理中継手段を通じて前記連携先モジュールに対する終了処理を行う終了処理代行手段とを備えたことを特徴とするアプリケーション異常終了処理システム。
  2. 前記処理中継手段は、前記アプリケーションプログラムによって呼び出される第1のサブモジュールと、該第1のサブモジュールとプロセス間通信によりメッセージの授受を行い且つ前記連携先モジュールを呼び出す第2のサブモジュールとを含んで構成され、前記終了検出手段は、前記第1のサブモジュールと前記第2のサブモジュールとの間のプロセス間通信が正常な手続きを経ることなく切断された場合に前記アプリケーションプログラムの異常終了と判定し、前記終了処理代行手段は、前記第2のサブモジュールを通じて前記連携先モジュールに対する終了処理を行うことを特徴とする請求項1記載のアプリケーション異常終了処理システム。
  3. 前記処理中継手段は、前記アプリケーションプログラムとその各連携先モジュールとの間に1つずつ配置されることを特徴とする請求項1記載のアプリケーション異常終了処理システム。
  4. 前記処理中継手段は、前記アプリケーションプログラムとその全ての連携先モジュールとの間のメッセージの授受を中継し、且つ、現在連携している連携先モジュールの情報を連携先記憶データベースに保存することを特徴とする請求項1記載のアプリケーション異常終了処理システム。
  5. 前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションが終了したことを知らせるメッセージを送信することを特徴とする請求項1乃至4の何れか1項に記載のアプリケーション異常終了処理システム。
  6. 前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションの代わりに正常な終了手続きを代行して行うことを特徴とする請求項1乃至4の何れか1項に記載のアプリケーション異常終了処理システム。
  7. 前記終了処理代行手段は、連携先モジュールに対応する異常終了処理用コードを予め記憶し、異常終了発生時には異常終了したアプリケーションの連携先モジュールに対して、前記記憶されている異常終了処理用コードを呼び出して実行することを特徴とする請求項1乃至4の何れか1項に記載のアプリケーション異常終了処理システム。
  8. アプリケーションプログラムが連携先モジュールとメッセージを授受して連携動作するコンピュータにおけるアプリケーション異常終了処理方法において、
    処理中継手段が、前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受を中継し、
    終了検出手段が、前記処理中継手段で行われている前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受の中継処理が正常な手続きを経ることなく切断された場合に、前記アプリケーションプログラムが異常終了したものと判定し、
    終了処理代行手段が、前記アプリケーションプログラムの異常終了が前記終了検出手段で判定された場合に、前記アプリケーションプログラムに代わって前記処理中継手段を通じて前記連携先モジュールに対する終了処理を行うことを特徴とするアプリケーション異常終了処理方法。
  9. 前記処理中継手段は、前記アプリケーションプログラムによって呼び出される第1のサブモジュールと、該第1のサブモジュールとプロセス間通信によりメッセージの授受を行い且つ前記連携先モジュールを呼び出す第2のサブモジュールとを含んで構成され、前記終了検出手段は、前記第1のサブモジュールと前記第2のサブモジュールとの間のプロセス間通信が正常な手続きを経ることなく切断された場合に前記アプリケーションプログラムの異常終了と判定し、前記終了処理代行手段は、前記第2のサブモジュールを通じて前記連携先モジュールに対する終了処理を行うことを特徴とする請求項8記載のアプリケーション異常終了処理方法。
  10. 前記処理中継手段は、前記アプリケーションプログラムとその各連携先モジュールとの間に1つずつ配置されることを特徴とする請求項8記載のアプリケーション異常終了処理方法。
  11. 前記処理中継手段は、前記アプリケーションプログラムとその全ての連携先モジュールとの間のメッセージの授受を中継し、且つ、現在連携している連携先モジュールの情報を連携先記憶データベースに保存することを特徴とする請求項8記載のアプリケーション異常終了処理方法。
  12. 前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションが終了したことを知らせるメッセージを送信することを特徴とする請求項8乃至11の何れか1項に記載のアプリケーション異常終了処理方法。
  13. 前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションの代わりに正常な終了手続きを代行して行うことを特徴とする請求項8乃至11の何れか1項に記載のアプリケーション異常終了処理方法。
  14. 前記終了処理代行手段は、連携先モジュールに対応する異常終了処理用コードを予め記憶し、異常終了発生時には異常終了したアプリケーションの連携先モジュールに対して、前記記憶されている異常終了処理用コードを呼び出して実行することを特徴とする請求項8乃至11の何れか1項に記載のアプリケーション異常終了処理方法。
  15. アプリケーションプログラムが連携先モジュールとメッセージを授受して連携動作するコンピュータを、
    前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受を中継する処理中継手段、
    該処理中継手段で行われている前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受の中継処理が正常な手続きを経ることなく切断された場合に、前記アプリケーションプログラムが異常終了したものと判定する終了検出手段、
    前記アプリケーションプログラムの異常終了が前記終了検出手段で判定された場合に、前記アプリケーションプログラムに代わって前記処理中継手段を通じて前記連携先モジュールに対する終了処理を行う終了処理代行手段、
    として機能させるためのプログラム。
  16. 前記処理中継手段は、前記アプリケーションプログラムによって呼び出される第1のサブモジュールと、該第1のサブモジュールとプロセス間通信によりメッセージの授受を行い且つ前記連携先モジュールを呼び出す第2のサブモジュールとを含んで構成され、前記終了検出手段は、前記第1のサブモジュールと前記第2のサブモジュールとの間のプロセス間通信が正常な手続きを経ることなく切断された場合に前記アプリケーションプログラムの異常終了と判定し、前記終了処理代行手段は、前記第2のサブモジュールを通じて前記連携先モジュールに対する終了処理を行うことを特徴とする請求項15記載のプログラム。
  17. 前記処理中継手段は、前記アプリケーションプログラムとその各連携先モジュールとの間に1つずつ配置されることを特徴とする請求項15記載のプログラム。
  18. 前記処理中継手段は、前記アプリケーションプログラムとその全ての連携先モジュールとの間のメッセージの授受を中継し、且つ、現在連携している連携先モジュールの情報を連携先記憶データベースに保存することを特徴とする請求項15記載のプログラム。
  19. 前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションが終了したことを知らせるメッセージを送信することを特徴とする請求項15乃至18の何れか1項に記載のプログラム。
  20. 前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションの代わりに正常な終了手続きを代行して行うことを特徴とする請求項15乃至18の何れか1項に記載のプログラム。
  21. 前記終了処理代行手段は、連携先モジュールに対応する異常終了処理用コードを予め記憶し、異常終了発生時には異常終了したアプリケーションの連携先モジュールに対して、前記記憶されている異常終了処理用コードを呼び出して実行することを特徴とする請求項15乃至18の何れか1項に記載のプログラム。
JP2007031884A 2007-02-13 2007-02-13 アプリケーション異常終了処理システムとその方法およびプログラム Withdrawn JP2008197885A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007031884A JP2008197885A (ja) 2007-02-13 2007-02-13 アプリケーション異常終了処理システムとその方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007031884A JP2008197885A (ja) 2007-02-13 2007-02-13 アプリケーション異常終了処理システムとその方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2008197885A true JP2008197885A (ja) 2008-08-28

Family

ID=39756774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007031884A Withdrawn JP2008197885A (ja) 2007-02-13 2007-02-13 アプリケーション異常終了処理システムとその方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2008197885A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011197827A (ja) * 2010-03-17 2011-10-06 Ricoh Co Ltd 情報処理装置、情報処理方法、及び情報処理プログラム
JP2014235576A (ja) * 2013-06-03 2014-12-15 株式会社リコー 情報処理システム、情報処理方法、及びプログラム
US9600326B2 (en) 2012-10-19 2017-03-21 Denso Corporation Information processing terminal
CN110377341A (zh) * 2019-06-10 2019-10-25 北京字节跳动网络技术有限公司 一种监听无响应异常的方法、装置、介质和电子设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011197827A (ja) * 2010-03-17 2011-10-06 Ricoh Co Ltd 情報処理装置、情報処理方法、及び情報処理プログラム
US9600326B2 (en) 2012-10-19 2017-03-21 Denso Corporation Information processing terminal
DE112013005076B4 (de) 2012-10-19 2021-08-26 Denso Corporation Informationsverarbeitungsterminal
JP2014235576A (ja) * 2013-06-03 2014-12-15 株式会社リコー 情報処理システム、情報処理方法、及びプログラム
CN110377341A (zh) * 2019-06-10 2019-10-25 北京字节跳动网络技术有限公司 一种监听无响应异常的方法、装置、介质和电子设备
CN110377341B (zh) * 2019-06-10 2022-05-03 北京字节跳动网络技术有限公司 一种监听无响应异常的方法、装置、介质和电子设备

Similar Documents

Publication Publication Date Title
AU2022200023B9 (en) Method and terminal for supporting voice service and data service simultaneously
CN110750393B (zh) 避免网络服务双机热备脑裂的方法、装置、介质和设备
US20130117432A1 (en) Method and device for desktop sharing processing
US20150067146A1 (en) Custom correlation of a distributed business transaction
CN112019914B (zh) 投屏方法、装置、电子设备及计算机可读介质
EP2784661B1 (en) Computer program product, information processing method, and information processing apparatus
US11917103B2 (en) Cloud integration to desktop-based emergency service applications
US20100291913A1 (en) Remote control method between mobile phones
JP2008197885A (ja) アプリケーション異常終了処理システムとその方法およびプログラム
JP5615082B2 (ja) 情報処理端末及び画面切替制御方法
US8635276B2 (en) System and network terminal for IP communications
CN107438097B (zh) 网络请求处理方法及装置
CN112217718A (zh) 一种业务处理方法、装置、设备及存储介质
CN108228359B (zh) web程序与R程序集成处理数据的方法和系统
CN115437593A (zh) 信息处理方法、装置、存储介质及电子设备
CN114826886A (zh) 一种应用软件容灾方法、装置及电子设备
JP5577140B2 (ja) 情報処理システム及び情報処理方法
JP2016110607A (ja) 表示制御方法
CN110764932A (zh) 数据处理方法、系统、介质和计算设备
CN114385096A (zh) 显示控制方法、装置、终端和存储介质
CN113179211B (zh) 用于路由和用于建立通信连接的方法、装置
AU2019392759B2 (en) Cloud integration to desktop-based emergency service applications
CN114385104A (zh) 一种终端间传输显示数据的方法、装置、介质及设备
JP2010176521A (ja) アプリケーション連携方法、アプリケーション連携システム、連携サーバ、連携元サービスサーバ、および連携先サービスサーバ
CN116633827A (zh) 链路状态检测方法、装置、设备和计算机可读介质

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20091007

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20091007

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100511