(57)【要約】【課題】アプリケーションが他のアプリケーション等の連携先と連携して動作するコンピュータにおいて、アプリケーションおよび連携先の大幅な改造無しに、アプリケーションの異常終了の検出を可能にし且つアプリケーションの異常終了が連携先に悪影響を及ぼさないようにする。【解決手段】アプリケーション１４０とその連携対象アプリケーション１５０等とが連携して処理を進めるために必要な両者間でのメッセージの授受を、連携用ライブラリ１６０中の処理中継手段１７０が中継する。終了検出手段１８０は、処理中継手段１７０で行われているメッセージの授受の中継処理を監視し、正常な手続きを経ることなく切断された場合に、アプリケーション１４０が異常終了したものとみなし、終了処理代行手段１９０は、連携先に対する終了処理をアプリケーション１４０に代わって処理中継手段１７０を通じて実行する。【選択図】図２
2008197885.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムが連携先モジュールとメッセージを授受して連携動作するコンピュータにおけるアプリケーション異常終了処理システムにおいて、
前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受を中継する処理中継手段と、
該処理中継手段で行われている前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受の中継処理が正常な手続きを経ることなく切断された場合に、前記アプリケーションプログラムが異常終了したものと判定する終了検出手段と、
前記アプリケーションプログラムの異常終了が前記終了検出手段で判定された場合に、前記アプリケーションプログラムに代わって前記処理中継手段を通じて前記連携先モジュールに対する終了処理を行う終了処理代行手段とを備えたことを特徴とするアプリケーション異常終了処理システム。
【請求項２】
前記処理中継手段は、前記アプリケーションプログラムによって呼び出される第１のサブモジュールと、該第１のサブモジュールとプロセス間通信によりメッセージの授受を行い且つ前記連携先モジュールを呼び出す第２のサブモジュールとを含んで構成され、前記終了検出手段は、前記第１のサブモジュールと前記第２のサブモジュールとの間のプロセス間通信が正常な手続きを経ることなく切断された場合に前記アプリケーションプログラムの異常終了と判定し、前記終了処理代行手段は、前記第２のサブモジュールを通じて前記連携先モジュールに対する終了処理を行うことを特徴とする請求項１記載のアプリケーション異常終了処理システム。
【請求項３】
前記処理中継手段は、前記アプリケーションプログラムとその各連携先モジュールとの間に１つずつ配置されることを特徴とする請求項１記載のアプリケーション異常終了処理システム。
【請求項４】
前記処理中継手段は、前記アプリケーションプログラムとその全ての連携先モジュールとの間のメッセージの授受を中継し、且つ、現在連携している連携先モジュールの情報を連携先記憶データベースに保存することを特徴とする請求項１記載のアプリケーション異常終了処理システム。
【請求項５】
前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションが終了したことを知らせるメッセージを送信することを特徴とする請求項１乃至４の何れか１項に記載のアプリケーション異常終了処理システム。
【請求項６】
前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションの代わりに正常な終了手続きを代行して行うことを特徴とする請求項１乃至４の何れか１項に記載のアプリケーション異常終了処理システム。
【請求項７】
前記終了処理代行手段は、連携先モジュールに対応する異常終了処理用コードを予め記憶し、異常終了発生時には異常終了したアプリケーションの連携先モジュールに対して、前記記憶されている異常終了処理用コードを呼び出して実行することを特徴とする請求項１乃至４の何れか１項に記載のアプリケーション異常終了処理システム。
【請求項８】
アプリケーションプログラムが連携先モジュールとメッセージを授受して連携動作するコンピュータにおけるアプリケーション異常終了処理方法において、
処理中継手段が、前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受を中継し、
終了検出手段が、前記処理中継手段で行われている前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受の中継処理が正常な手続きを経ることなく切断された場合に、前記アプリケーションプログラムが異常終了したものと判定し、
終了処理代行手段が、前記アプリケーションプログラムの異常終了が前記終了検出手段で判定された場合に、前記アプリケーションプログラムに代わって前記処理中継手段を通じて前記連携先モジュールに対する終了処理を行うことを特徴とするアプリケーション異常終了処理方法。
【請求項９】
前記処理中継手段は、前記アプリケーションプログラムによって呼び出される第１のサブモジュールと、該第１のサブモジュールとプロセス間通信によりメッセージの授受を行い且つ前記連携先モジュールを呼び出す第２のサブモジュールとを含んで構成され、前記終了検出手段は、前記第１のサブモジュールと前記第２のサブモジュールとの間のプロセス間通信が正常な手続きを経ることなく切断された場合に前記アプリケーションプログラムの異常終了と判定し、前記終了処理代行手段は、前記第２のサブモジュールを通じて前記連携先モジュールに対する終了処理を行うことを特徴とする請求項８記載のアプリケーション異常終了処理方法。
【請求項１０】
前記処理中継手段は、前記アプリケーションプログラムとその各連携先モジュールとの間に１つずつ配置されることを特徴とする請求項８記載のアプリケーション異常終了処理方法。
【請求項１１】
前記処理中継手段は、前記アプリケーションプログラムとその全ての連携先モジュールとの間のメッセージの授受を中継し、且つ、現在連携している連携先モジュールの情報を連携先記憶データベースに保存することを特徴とする請求項８記載のアプリケーション異常終了処理方法。
【請求項１２】
前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションが終了したことを知らせるメッセージを送信することを特徴とする請求項８乃至１１の何れか１項に記載のアプリケーション異常終了処理方法。
【請求項１３】
前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションの代わりに正常な終了手続きを代行して行うことを特徴とする請求項８乃至１１の何れか１項に記載のアプリケーション異常終了処理方法。
【請求項１４】
前記終了処理代行手段は、連携先モジュールに対応する異常終了処理用コードを予め記憶し、異常終了発生時には異常終了したアプリケーションの連携先モジュールに対して、前記記憶されている異常終了処理用コードを呼び出して実行することを特徴とする請求項８乃至１１の何れか１項に記載のアプリケーション異常終了処理方法。
【請求項１５】
アプリケーションプログラムが連携先モジュールとメッセージを授受して連携動作するコンピュータを、
前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受を中継する処理中継手段、
該処理中継手段で行われている前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受の中継処理が正常な手続きを経ることなく切断された場合に、前記アプリケーションプログラムが異常終了したものと判定する終了検出手段、
前記アプリケーションプログラムの異常終了が前記終了検出手段で判定された場合に、前記アプリケーションプログラムに代わって前記処理中継手段を通じて前記連携先モジュールに対する終了処理を行う終了処理代行手段、
として機能させるためのプログラム。
【請求項１６】
前記処理中継手段は、前記アプリケーションプログラムによって呼び出される第１のサブモジュールと、該第１のサブモジュールとプロセス間通信によりメッセージの授受を行い且つ前記連携先モジュールを呼び出す第２のサブモジュールとを含んで構成され、前記終了検出手段は、前記第１のサブモジュールと前記第２のサブモジュールとの間のプロセス間通信が正常な手続きを経ることなく切断された場合に前記アプリケーションプログラムの異常終了と判定し、前記終了処理代行手段は、前記第２のサブモジュールを通じて前記連携先モジュールに対する終了処理を行うことを特徴とする請求項１５記載のプログラム。
【請求項１７】
前記処理中継手段は、前記アプリケーションプログラムとその各連携先モジュールとの間に１つずつ配置されることを特徴とする請求項１５記載のプログラム。
【請求項１８】
前記処理中継手段は、前記アプリケーションプログラムとその全ての連携先モジュールとの間のメッセージの授受を中継し、且つ、現在連携している連携先モジュールの情報を連携先記憶データベースに保存することを特徴とする請求項１５記載のプログラム。
【請求項１９】
前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションが終了したことを知らせるメッセージを送信することを特徴とする請求項１５乃至１８の何れか１項に記載のプログラム。
【請求項２０】
前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションの代わりに正常な終了手続きを代行して行うことを特徴とする請求項１５乃至１８の何れか１項に記載のプログラム。
【請求項２１】
前記終了処理代行手段は、連携先モジュールに対応する異常終了処理用コードを予め記憶し、異常終了発生時には異常終了したアプリケーションの連携先モジュールに対して、前記記憶されている異常終了処理用コードを呼び出して実行することを特徴とする請求項１５乃至１８の何れか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアプリケーションプログラムの異常終了検出およびその検出時の処理に関し、特にアプリケーションプログラムが他のアプリケーションプログラム等と連携動作するコンピュータ環境下でのアプリケーションプログラムの異常終了検出とその検出時の処理に関する。
【背景技術】
【０００２】
パーソナルコンピュータや携帯端末などのコンピュータにおける処理の形態として、アプリケーションプログラム（単にアプリケーションとも言う）が、他のアプリケーションプログラム等のモジュールと連携して、一連の処理を遂行する形態がある。例えば、アプリケーション側にはユーザインタフェースを実装し、そのユーザインタフェースを通じてユーザから要求される機能を実現する処理やサービスは連携先モジュールに実装し、アプリケーションから適宜に連携先モジュールに処理を要求することで、ユーザに対して所望の機能やサービスを提供するといった例がある。
【０００３】
このようにアプリケーションが連携先モジュールと連携動作するコンピュータ環境では、アプリケーションが異常終了すると、その影響は異常終了したアプリケーションのみに留まらず、連携先モジュールにも及ぶ。例えば、アプリケーションが連携先モジュールの機能をオープンしたまま異常終了すると、その機能が使用中状態のままになってしまって他のアプリケーションから利用できなくなってしまう。
【０００４】
そこで従来より、アプリケーションの異常終了を検出し、必要な処理を行うようにした技術が幾つか提案されている。
【０００５】
例えば特許文献１では、各アプリケーションに、起動時に監視制御プロセスとTCP/IPのコネクションを用いて接続して以後一定期間ごとに状態通知を送信する機能を実装し、監視制御プロセスにおいて、アプリケーションとのコネクションが切断された場合あるいはは状態通知を受信できなくなった場合に、そのアプリケーションに異常が発生したと判断し、正常動作中の他のアプリケーションに対して正常終了要求を送って正常終了させている。
【０００６】
また特許文献２では、複数のアプリケーションが連携動作を行う環境において、各アプリケーションに、システム稼動状態監視／制御部から所定期間毎に送信される稼動情報送信要求の受信に応答して自身の稼動情報を送信する機能を実装し、システム稼動状態監視／制御部において、稼動情報送信要求に対する応答がなかったアプリケーションは異常終了していると判断し、当該アプリケーションと連携動作中のアプリケーションに異常終了したことを知らせるメッセージを送信してその連携動作を終了させている。
【０００７】
【特許文献１】特開2001-229032号公報
【特許文献２】特開2002-342095号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述した従来技術によれば、アプリケーションの異常終了を検出し、そのアプリケーションと連携中の他のアプリケーション等に対して必要な処理を行うことが可能である。しかしながら、そのためにはアプリケーション中に、特許文献１の場合には監視制御プロセスとTCP/IPのコネクションを用いて接続して以後一定期間ごとに状態通知を送信する機能を実装する必要があり、特許文献２の場合にはシステム稼動状態監視／制御部から所定期間毎に送信される稼動情報送信要求の受信に応答して自身の稼動情報を送信する機能を実装する必要がある。このため、これらの従来技術を既存のアプリケーションに適用する場合にはアプリケーションの大幅な改造が必要になる。また、アプリケーションには、連携先とメッセージの授受を行う機能とは別に、監視制御プロセスやシステム稼動状態監視／制御部に対して通信する機能が必要になるため、アプリケーションの実装工数の増加、アプリケーション稼動時の性能低下が問題となる。
【０００９】
同様に、アプリケーションと連携する他のアプリケーション等の連携先も、監視制御プロセスやシステム稼動状態監視／制御部との通信機能が必要になるため、上述した従来技術を既存の連携先に適用する場合には連携先モジュールの大幅な改造が必要になる。また、連携先モジュールには、アプリケーションとメッセージの授受を行う機能とは別に、監視制御プロセスやシステム稼動状態監視／制御部に対して通信する機能が必要になるため、連携先モジュールの実装工数の増加、モジュール稼動時の性能低下が問題となる。
【００１０】
本発明の目的は、アプリケーションが他のアプリケーション等の連携先モジュールとメッセージの授受を行うことで連携して動作するコンピュータにおいて、アプリケーションおよび連携先モジュールの大幅な改造無しに、アプリケーションの異常終了の検出を可能にし、また、アプリケーションの異常終了がその連携先モジュールに悪影響を及ぼさないようにすることにある。
【課題を解決するための手段】
【００１１】
本発明の第１のアプリケーション異常終了処理システムは、アプリケーションプログラムが連携先モジュールとメッセージを授受して連携動作するコンピュータにおけるアプリケーション異常終了処理システムにおいて、前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受を中継する処理中継手段と、該処理中継手段で行われている前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受の中継処理が正常な手続きを経ることなく切断された場合に、前記アプリケーションプログラムが異常終了したものと判定する終了検出手段と、前記アプリケーションプログラムの異常終了が前記終了検出手段で判定された場合に、前記アプリケーションプログラムに代わって前記処理中継手段を通じて前記連携先モジュールに対する終了処理を行う終了処理代行手段とを備えたことを特徴とする。
【００１２】
本発明の第２のアプリケーション異常終了処理システムは、第１のアプリケーション異常終了処理システムにおいて、前記処理中継手段は、前記アプリケーションプログラムによって呼び出される第１のサブモジュールと、該第１のサブモジュールとプロセス間通信によりメッセージの授受を行い且つ前記連携先モジュールを呼び出す第２のサブモジュールとを含んで構成され、前記終了検出手段は、前記第１のサブモジュールと前記第２のサブモジュールとの間のプロセス間通信が正常な手続きを経ることなく切断された場合に前記アプリケーションプログラムの異常終了と判定し、前記終了処理代行手段は、前記第２のサブモジュールを通じて前記連携先モジュールに対する終了処理を行うことを特徴とする。
【００１３】
本発明の第３のアプリケーション異常終了処理システムは、第１のアプリケーション異常終了処理システムにおいて、前記処理中継手段は、前記アプリケーションプログラムとその各連携先モジュールとの間に１つずつ配置されることを特徴とする。
【００１４】
本発明の第４のアプリケーション異常終了処理システムは、第１のアプリケーション異常終了処理システムにおいて、前記処理中継手段は、前記アプリケーションプログラムとその全ての連携先モジュールとの間のメッセージの授受を中継し、且つ、現在連携している連携先モジュールの情報を連携先記憶データベースに保存することを特徴とする。
【００１５】
本発明の第５のアプリケーション異常終了処理システムは、第１乃至第４の何れかのアプリケーション異常終了処理システムにおいて、前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションが終了したことを知らせるメッセージを送信することを特徴とする。
【００１６】
本発明の第６のアプリケーション異常終了処理システムは、第１乃至第４の何れかのアプリケーション異常終了処理システムにおいて、前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションの代わりに正常な終了手続きを代行して行うことを特徴とする。
【００１７】
本発明の第７のアプリケーション異常終了処理システムは、第１乃至第４の何れかのアプリケーション異常終了処理システムにおいて、前記終了処理代行手段は、連携先モジュールに対応する異常終了処理用コードを予め記憶し、異常終了発生時には異常終了したアプリケーションの連携先モジュールに対して、前記記憶されている異常終了処理用コードを呼び出して実行することを特徴とする。
【００１８】
本発明の第１のアプリケーション異常終了処理方法は、アプリケーションプログラムが連携先モジュールとメッセージを授受して連携動作するコンピュータにおけるアプリケーション異常終了処理方法において、処理中継手段が、前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受を中継し、終了検出手段が、前記処理中継手段で行われている前記アプリケーションプログラムと連携先モジュールとの間のメッセージの授受の中継処理が正常な手続きを経ることなく切断された場合に、前記アプリケーションプログラムが異常終了したものと判定し、終了処理代行手段が、前記アプリケーションプログラムの異常終了が前記終了検出手段で判定された場合に、前記アプリケーションプログラムに代わって前記処理中継手段を通じて前記連携先モジュールに対する終了処理を行うことを特徴とする。
【００１９】
本発明の第２のアプリケーション異常終了処理方法は、第１のアプリケーション異常終了処理方法において、前記処理中継手段は、前記アプリケーションプログラムによって呼び出される第１のサブモジュールと、該第１のサブモジュールとプロセス間通信によりメッセージの授受を行い且つ前記連携先モジュールを呼び出す第２のサブモジュールとを含んで構成され、前記終了検出手段は、前記第１のサブモジュールと前記第２のサブモジュールとの間のプロセス間通信が正常な手続きを経ることなく切断された場合に前記アプリケーションプログラムの異常終了と判定し、前記終了処理代行手段は、前記第２のサブモジュールを通じて前記連携先モジュールに対する終了処理を行うことを特徴とする。
【００２０】
本発明の第３のアプリケーション異常終了処理方法は、第１のアプリケーション異常終了処理方法において、前記処理中継手段は、前記アプリケーションプログラムとその各連携先モジュールとの間に１つずつ配置されることを特徴とする。
【００２１】
本発明の第４のアプリケーション異常終了処理方法は、第１のアプリケーション異常終了処理方法において、前記処理中継手段は、前記アプリケーションプログラムとその全ての連携先モジュールとの間のメッセージの授受を中継し、且つ、現在連携している連携先モジュールの情報を連携先記憶データベースに保存することを特徴とする。
【００２２】
本発明の第５のアプリケーション異常終了処理方法は、第１乃至第４の何れかのアプリケーション異常終了処理方法において、前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションが終了したことを知らせるメッセージを送信することを特徴とする。
【００２３】
本発明の第６のアプリケーション異常終了処理方法は、第１乃至第４の何れかのアプリケーション異常終了処理方法において、前記終了処理代行手段は、異常終了したアプリケーションの連携先モジュールに対して、前記アプリケーションの代わりに正常な終了手続きを代行して行うことを特徴とする。
【００２４】
本発明の第７のアプリケーション異常終了処理方法は、第１乃至第４の何れかのアプリケーション異常終了処理方法において、前記終了処理代行手段は、連携先モジュールに対応する異常終了処理用コードを予め記憶し、異常終了発生時には異常終了したアプリケーションの連携先モジュールに対して、前記記憶されている異常終了処理用コードを呼び出して実行することを特徴とする。
【００２５】
『作用』
本発明にあっては、アプリケーションとその連携先モジュールとが連携して処理を進めるために必要な両者間でのメッセージの授受を処理中継手段が中継するようにし、この処理中継手段で行われているメッセージの授受の中継処理を終了検出手段が監視し、この中継処理が正常な手続きを経ることなく切断（解除）された場合に、アプリケーションが異常終了したものとみなし、終了処理代行手段が連携先モジュールに対する終了処理をアプリケーションプログラムに代わって処理中継手段を通じて行うことで、アプリケーションの異常終了がその連携先モジュールに悪影響を及ばさないようにする。
【発明の効果】
【００２６】
本発明によれば、アプリケーションが他のアプリケーション等の連携先モジュールとメッセージの授受を行うことで連携して動作するコンピュータにおいて、アプリケーションの大幅な改造無しに、アプリケーションの異常終了検出が可能になる。その理由は、アプリケーションとその連携先モジュールとが連携して処理を進めるために必要な両者間でのメッセージの授受を処理中継手段が中継するようにし、この処理中継手段で行われているメッセージの授受の中継処理を終了検出手段が監視し、この中継処理が正常な手続きを経ることなく切断された場合に、アプリケーションが異常終了したものとみなすため、従来技術のような監視制御プロセスやシステム稼動状態監視／制御部との通信機能をアプリケーションに実装する必要がないからである。
【００２７】
また本発明によれば、アプリケーションが他のアプリケーション等の連携先モジュールとメッセージの授受を行うことで連携して動作するコンピュータにおいて、連携先モジュールの大幅な改造無しに、アプリケーションの異常終了が連携先モジュールに与える悪影響を防止することができる。その理由は、アプリケーションとその連携先モジュールとが連携して処理を進めるために必要な両者間でのメッセージの授受を処理中継手段が中継するようにし、アプリケーションが異常終了した場合、終了処理代行手段が、連携先モジュールに対する終了処理を、アプリケーションプログラムに代わって処理中継手段を通じて行うため、従来技術のような監視制御プロセスやシステム稼動状態監視／制御部とのインタフェースを連携先モジュールに実装する必要がないからである。
【発明を実施するための最良の形態】
【００２８】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２９】
『第１の実施の形態』
＜ハードウェア構成＞
図１を参照すると、本発明を適用したコンピュータ１００のハードウェア構成の一例は、表示装置１０１、ＣＰＵ１０２、ＲＡＭ１０３、ＲＯＭ１０４、ＨＤＤ１０５、外部メモリ１０６、出力装置１０７、通信装置１０８、入力装置１０９およびそれらを相互に接続するバス３００から構成されている。ＲＯＭ１０４は、読み取り専用のメモリであり、ＣＰＵ１０２で実行されるオペレーティングシステム（ＯＳ）、アプリケーション管理システムなどのミドルウェア、ライブラリ関数、サービスプロセスおよび固定データなどを記憶する。ＲＡＭ１０３は、読み書き可能なメモリであり、ＣＰＵ１０２で実行されるアプリケーションプログラムおよび演算データなどを一時的に記憶する。ＨＤＤ１０５および外部メモリ１０６は、ファイルシステム、アプリケーションプログラムおよび各種データを記憶する。表示装置１０１は、ＬＣＤ等で構成され、アプリケーションのウィンドウ画面などを表示する。出力装置１０７は、スピーカ等で構成され、音声メッセージなどを出力する。入力装置１０９は、キー操作部などで構成され、ユーザからのデータや指示を入力する。通信装置１０８は、有線または無線によって音声通信やデータ通信を行う。このようなハードウェア構成を有するコンピュータ１００の例としては、パーソナルコンピュータなどの一般的なコンピュータ、携帯電話機、ゲーム端末などがある。
【００３０】
＜ソフトウェア構成＞
図２を参照すると、本発明の第１の実施の形態は、コンピュータ１００上で、ＯＳ１１０、アプリケーション管理システム１２０、共通サービス１３０〜１３ｎ、アプリケーション１４０、連携対象アプリケーション１５０〜１５ｎ、連携用ライブラリ１６０が動作する。ここで、アプリケーション１４０が異常終了の検出対象となるアプリケーションであり、アプリケーション管理システム１２０、共通サービス１３０〜１３ｎおよび連携対象アプリケーション１５０〜１５ｎがアプリケーション１４０の連携先となるモジュールである。
【００３１】
アプリケーション管理システム１２０は、コンピュータ１００上で複数のアプリケーションが動作している場合に、各アプリケーションの起動、終了、中断といった実行状態の制御および管理や、各アプリケーションのウィンドウの表示切り替えを行うソフトウェアである。特に画面サイズが小さく、マウスのようなポインティングデバイスがない携帯端末では、同時に１つのアプリケーションのウィンドウのみしか表示できず、またユーザが直接アプリケーションのウィンドウを選択して切り替える手段がないため、このアプリケーション管理システム１２０が、現在ユーザが操作中の状態（アクティブ状態）にあるアプリケーションのウィンドウを最前面に表示する処理や、或るアプリケーションが終了した際に、直前にアクティブ状態であったアプリケーションのウィンドウを最前面に表示する処理や、或るアプリケーションＡが他のアプリケーションＢを呼び出した際に、最前面に表示されているウィンドウを、アプリケーションＡのものからアプリケーションＢに切り替える処理などを自動的に行っている。
【００３２】
共通サービス１３０〜１３ｎは、コンピュータ１００が備えているハードウェアおよびソフトウェアの機能を提供するサービスモジュールである。提供する機能の例としては、外部メモリ１０６や通信装置１０８等のハードウェアへアクセスする機能、日本語変換機能等のソフトウェアモジュールへアクセスする機能、動画再生機能等がある。
【００３３】
連携対象アプリケーション１５０〜１５ｎは、アプリケーション１４０以外のコンピュータ１００上で動作しているアプリケーションである。
【００３４】
連携用ライブラリ１６０は、ライブラリ関数としての基本的な機能に加えて、処理中継手段１７０〜１７ｍ、終了検出手段１８０〜１８ｍおよび終了処理代行手段１９０〜１９ｍを含んで構成される。１つの処理中継手段に対して、１つの終了検出手段と１つの終了処理代行手段とが組になる。
【００３５】
処理中継手段１７０〜１７ｍは、アプリケーション１４０が連携用ライブラリ１６０を用いて、アプリケーション管理システム１２０もしくは、共通サービス１３０〜１３ｎもしくは、連携対象アプリケーション１５０〜１５ｎと連携処理を行っているときに、連携用ライブラリ１６０内部でアプリケーション１４０とその連携先とのやり取りをプロセス間通信等の手段により中継するように動作するモジュールである。アプリケーション１４０が現在連携用ライブラリ１６０を用いて連携中の連携先モジュールの数だけ、処理中継手段１７０〜１７ｍは存在する。
【００３６】
終了検出手段１８０〜１８ｍは、対応する処理中継手段１７０〜１７ｍ内での中継処理を監視し、中継処理が正常な手続きを経ることなく切断されることにより、アプリケーション１４０の異常終了を検出するように動作するモジュールである。
【００３７】
終了処理代行手段１９０〜１９ｍは、対応する終了検出手段１８０〜１８ｍがアプリケーション１４０の異常終了を検出すると、アプリケーション１４０と連携中の連携先モジュールに対し、終了処理の代行を行うように動作するモジュールである。
【００３８】
次に、本実施の形態の動作について詳細に説明する。
【００３９】
アプリケーション１４０は、連携用ライブラリ１６０を利用して、アプリケーション管理システム１２０や、共通サービス１３０〜１３０ｎ、連携対象アプリケーション１５０〜１５ｎと連携処理を行う。
【００４０】
アプリケーション１４０とアプリケーション管理システム１２０との連携の例としては、アプリケーション１４０の起動時にアプリケーション１４０に属するウィンドウを他のアプリケーションのウィンドウよりも表示装置１０１の表示画面の前面に表示させる操作や、他の優先度が高いアプリケーションが起動されたり、アプリケーション１４０が連携対象アプリケーション１５０〜１５ｎのいずれかのアプリケーションを呼び出した際に、そのアプリケーションのウィンドウを最前面に表示するとともに、アプリケーション１４０のウィンドウを背後に移動させたり、非表示状態にする操作がある。
【００４１】
アプリケーション１４０と共通サービス１３０〜１３ｎとの連携の例としては、コンピュータ１００が備えているハードウェア及びソフトウェア機能（日本語変換処理サービスや、通信機能、動画再生機能等）を利用するために、アプリケーション１４０が共通サービス１３０〜１３ｎを呼び出すといったものがある。
【００４２】
アプリケーション１４０と連携対象アプリケーション１５０〜１５ｎとの連携の例としては、例えばブラウザソフト上でメールアドレスをユーザが選択することにより、選択されたメールアドレスを引数としてメールソフトを起動するような例がある。
【００４３】
このようにアプリケーション１４０は、連携用ライブラリ１６０を利用して、上に挙げた任意の連携先モジュールと随時連係動作を行うことができる。連携用ライブラリ１６０は、それぞれの連携先モジュールからは独立したライブラリとして実装されるものであり、通常のコンピュータにおけるＯＳやミドルウェアが備えるAPI（Application Program Interface）に相当するものである。また連携用ライブラリ１６０が基本的に備える機能としては、例えば処理のOPEN、CLOSE動作や、データのREAD、WRITE動作といった汎用的なものから、モジュール固有の機能といったものがある。
【００４４】
処理中継手段１７０〜１７ｍは、連携用ライブラリ１６０内部で動作し、アプリケーション１４０とその連携先モジュール一組の連携につき一個の処理中継手段が動作する。処理中継手段１７０〜１７ｍは、例えばTCP/IP等のプロセス間通信手段を用いて、アプリケーション１４０と連携先モジュールとの間の連携用メッセージ（処理のタイプ、データ内容等）のやり取りを送受信する。
【００４５】
ここで、アプリケーション１４０及び連携先モジュールが利用するのはあくまで連携用ライブラリ１６０であり、その内部で動作している処理中継手段１７０〜１７ｍには直接アクセスしないので、本発明のシステムを適用する場合に、従来のアプリケーションや共通サービス、アプリケーション管理システムを修正する必要はない。
【００４６】
以降、アプリケーション１４０が異常終了した場合の動作について説明する。
【００４７】
まず、アプリケーション１４０が或る連携先モジュールと連携動作中に、何らかの原因により異常終了したとする（図３のステップＡ１）。ここでは、アプリケーション１４０は、アプリケーション管理システム１２０、共通サービス１３０、連携対象アプリケーション１５０の３つの連携先モジュールと連携動作中であったとする。この場合、それぞれとの連携に対して、連携用ライブラリ１６０内で処理中継手段１７０〜１７３が動作している。
【００４８】
アプリケーション１４０の異常終了により、処理中継手段１７０〜１７３内のプロセス間通信の接続がそれぞれ切断される（ステップＡ２）。
【００４９】
これにより、終了検出手段１８０〜１８３はアプリケーション１４０の異常終了を検知する（ステップＡ３）。
【００５０】
終了検出手段１８０〜１８３がアプリケーション１４０の異常終了を検知すると、終了処理代行手段１９０〜１９３は、アプリケーション１４０に代わって、それぞれの連携先モジュールに対して終了処理を行う（ステップＡ４）。
【００５１】
この終了処理の具体的内容としては、いくつか考えられる。まず一つは、連携先モジュールに対して予め決められた終了メッセージを送る終了通知手段を終了処理代行手段１９０〜１９ｍ内に備え、そのメッセージを受け取った連携先モジュール側で適切な終了処理をそれぞれ行うという方法である。
【００５２】
二つ目の方法としては、終了処理代行手段１９０〜１９ｍ内で、それぞれの連携先モジュールに応じた終了処理を予め実装した終了手続き代行手段を備え、異常終了したアプリケーション１４０の代わりにこの終了手続き代行手段を用いて終了処理を行う方法である。
【００５３】
その他の方法としては、各連携先が、自身の終了処理を記述した関数を予め準備しておき、終了処理代行手段１９０〜１９ｍ内に備える終了処理コード実行手段に対して登録するという手法も考えられる。この場合、アプリケーションの異常終了が検知されると、終了処理代行手段１９０〜１９ｍは、終了代行処理を行う対象の連携先モジュールに応じて終了処理コード実行手段に登録されていた終了処理を呼び出すことで、終了処理の代行を実行する。
【００５４】
次に、本実施の形態の効果について説明する。
【００５５】
本実施の形態によれば、処理中継手段１７０〜１７ｍと終了検出手段１８０〜１８ｍが連携してアプリケーション１４０の異常終了を検出し、終了処理代行手段１９０〜１９ｍが異常終了したアプリケーション１４０の代わりに正常な終了処理を行うというように構成されているため、異常終了したアプリケーション１４０と連係動作中のアプリケーション管理システム１２０や共通サービス１３０〜１３ｎ、連携対象アプリケーション１５０〜１５ｎに対して悪影響を与えることを防ぐことができる。具体的には、画面表示がフリーズしたり、該当サービスが使用中状態のままになる等の事態を防止することができる。
【００５６】
また本実施の形態によれば、さらに、連携用ライブラリ１６０内部に処理中継手段１７０〜１７ｍ、終了検出手段１８０〜１８ｍ、終了処理代行手段１９０〜１９ｍを配置するというように構成されているため、本発明をコンピュータに適用する場合に既存のアプリケーション、共通サービス、アプリケーション管理システムに対して修正を加える必要がない。
【００５７】
『第２の実施の形態』
次に本発明の第２の実施の形態について図面を参照して詳細に説明する。第２の実施の形態にかかるコンピュータのハードウェア構成は、図１に示した第１の実施の形態にかかるコンピュータと同じである。また、第２の実施の形態にかかるコンピュータのソフトウェア構成は、連携用ライブラリ１６０および連携先記憶データベース２００を除き、図２に示した第２の実施の形態のソフトウェア構成と同じである。
【００５８】
図４を参照すると、連携用ライブラリ１６０は、１組の処理中継手段１７０、終了検出手段１８０および終了処理代行手段１９０とを含んで構成される。
【００５９】
連携先記憶データベース２００は、アプリケーション１４０が連携用ライブラリ１６０を用いて、アプリケーション管理システム１２０もしくは、共通サービス１３０〜１３ｎもしくは、連携対象アプリケーション１５０〜１５ｎと連携処理を行っているときに、実際に連携状態にある相手の情報を一時的に記憶する。連携先記憶データベース２００に記憶された連携先の情報は、その連携が終了すると、削除される。
【００６０】
処理中継手段１７０は、アプリケーション１４０が連携用ライブラリ１６０を用いて、アプリケーション管理システム１２０もしくは、共通サービス１３０〜１３ｎもしくは、連携対象アプリケーション１５０〜１５ｎと連携処理を行っているときに、連携用ライブラリ１６０内部でアプリケーション１４０と全連携先とのやり取りをプロセス間通信等の手段により中継し、連携先の情報を連携先記憶データベース２００に記憶するように動作する。
【００６１】
終了検出手段１８０は、処理中継手段１７０内での中継処理を監視し、中継処理が正常な手続きを経ることなく切断されることにより、アプリケーション１４０の異常終了を検出するように動作する。
【００６２】
終了処理代行手段１９０は、終了処理検出手段１８０がアプリケーション１４０の異常終了を検出すると、連携先記憶データベース２００に記憶されたアプリケーション１４０の全連携先の情報を取得し、それら全連携先に対し、終了処理の代行を行うように動作する。
【００６３】
このように第２の実施の形態は、第１の実施の形態において各連携毎にそれぞれ複数個準備していた処理中継手段１７０〜１７ｍ、終了検出手段１８０〜１８ｍおよび終了処理代行手段１９０〜１９ｍを、全ての連携先で共通に使用する処理中継手段１７０、終了検出手段１８０、終了処理代行手段１９０とし、連携相手の情報を連携先記憶データベース２００に記憶しておく構成にしたものである。
【実施例】
【００６４】
図５を参照すると、本発明の第１の実施の形態にかかる実施例１では、処理中継手段１７０は、アプリケーション１４０から関数呼び出しによって呼び出されるサブモジュールＡと、このサブモジュールＡとプロセス間通信によりメッセージの授受を行い、アプリケーション１４０に代わって連携対象アプリケーション１５０に対し関数呼び出しを行うサブモジュールＢとを含んで構成される。また終了検出手段１８０は、サブモジュールＡとサブモジュールＢとの間のプロセス間通信が正常な手続きを経ることなく切断された場合、アプリケーション１４０の異常終了と判定する機能を持つ。さらに、終了処理代行手段１９０は、サブモジュールＢを通じて連携対象アプリケーション１５０に対する終了処理を行う機能を持つ。
【００６５】
アプリケーション１４０が、連携対象アプリケーション１５０の機能を利用するとき、連携用ライブラリ１６０に格納された連携対象アプリケーション１５０の機能を利用する関数（例：lib_apA_func1()）を呼び出す。
【００６６】
lib_apA_func1()内部（つまり連携用ライブラリ内部）では、処理中継手段１７０がプロセス間通信を使って、サブモジュールＡからサブモジュールＢに呼び出しの内容を送信する。次に、サブモジュールＢがこれを受信したときに、連携対象アプリケーション１５０の機能を呼び出す関数（例：apA_func1()）を実際に呼び出す。ここで、サブモジュールＡおよびサブモジュールＢはいずれも処理中継手段１７０を構成するサブモジュールであるが、サブモジュールＡはアプリケーション１４０から関数として呼び出されているためにアプリケーション１４０と同じプロセスになり、サブモジュールＢはアプリケーション１４０とは別のプロセスになる。
【００６７】
関数呼び出しを受けた連携対象アプリケーション１５０は、必要な処理を実行し、処理の返り値を返す（関数リターン）。この処理の返り値は、関数呼び出しのときの順序とは逆に、サブモジュールＢからプロセス間通信によってサブモジュールＡに送信され、サブモジュールＡからアプリケーション１４０に関数リターンで渡される。
【００６８】
以上のような呼び出し処理中に、アプリケーション１４０が異常終了すると、アプリケーション１４０と同じプロセスであるサブモジュールＡも終了し、サブモジュールＡとサブモジュールＢ間のプロセス間通信が切断される。これを終了検出手段１８０が検出し、終了処理代行手段１９０で終了処理を行う。連携対象アプリケーション１５０の呼び出し元はサブモジュールＢであり、アプリケーション１４０が異常終了しても、それとは別のプロセスであるサブモジュールＢは終了しないので、終了処理代行手段１９０は、サブモジュールＢを通じて連携対象アプリケーション１５０に対して終了処理を行う。
【００６９】
本実施例１では、呼び出すサービスや連携対象アプリケーションそれぞれ毎に、処理中継手段１７０、終了検出手段１８０および終了処理代行手段１９０を備えるようにした。第２の実施の形態にかかる実施例２では、１つの処理中継手段を使ってアプリケーション１４０と全ての連携先とのやりとりを行う。そのため実施例２では、現在処理中の連携先を覚えておくための連携先記憶データベース２００が存在し、アプリケーション１４０が異常終了した場合は、この連携先記憶データベース２００に記憶されている連携先全てに対して、終了処理代行手段による終了処理が実行される。
【産業上の利用可能性】
【００７０】
本発明によれば、アプリケーションの異常終了が、コンピュータ端末の安定動作に対して悪影響を与えるのを防ぐといった用途に適用できる。
【図面の簡単な説明】
【００７１】
【図１】本発明の第１の実施の形態にかかるコンピュータのハードウェア構成例を示すブロック図である。
【図２】本発明の第１の実施の形態にかかるコンピュータのソフトウェア構成例を示すブロック図である。
【図３】本発明の第１の実施の形態の動作を示す流れ図である。
【図４】本発明の第２の実施の形態にかかるコンピュータのソフトウェア構成例を示すブロック図である。
【図５】本発明の第１の実施の形態の実施例のブロック図である。
【符号の説明】
【００７２】
１００…コンピュータ
１０１…表示装置
１０２…ＣＰＵ
１０３…ＲＡＭ
１０４…ＲＯＭ
１０５…ＨＤＤ
１０６…外部メモリ
１０７…出力装置
１０８…通信装置
１０９…入力装置
１１０…ＯＳ
１２０…アプリケーション管理システム
１３０〜１３ｎ…共通サービス
１４０…アプリケーション
１５０〜１５ｎ…連携対象アプリケーション
１６０…連携用ライブラリ
１７０〜１７ｍ…処理中継手段
１８０〜１８ｍ…終了検出手段
１９０〜１９ｍ…終了処理代行手段
２００…連携先記憶データベース
３００…バス
【図１】
2008197885.tif 000003
【図２】
2008197885.tif 000004
【図３】
2008197885.tif 000005
【図４】
2008197885.tif 000006
【図５】
2008197885.tif 000007