(57)【特許請求の範囲】
【請求項１】
オペレーションシステム上に構築された複数のユーザアプリケーションの管理を行うプロセス管理ミドルウェアであって、
前記ユーザアプリケーションの起動および／または終了を管理する、システム起動／終了管理機能部と、
前記ユーザアプリケーションを常時監視する、常駐プロセス監視機能部と、
前記ユーザアプリケーション間におけるメッセージの送受信を管理する、プロセス間通信機能部と、
一方の前記ユーザアプリケーションから他方の前記ユーザアプリケーションの起動および／または終了を管理するアプリケーション起動／終了機能部とを、有し、
前記メッセージの格納する通信キューメモリを、さらに備えており、
前記プロセス間通信機能部は、
前記一方のユーザアプリケーションから送信された所定の前記メッセージの送信先である前記他方のユーザアプリケーションが終了していても、前記所定のメッセージを、前記通信キューメモリに格納し、
前記アプリケーション起動／終了機能部は、
前記他方のユーザアプリケーションを起動させ、
前記プロセス間通信機能部は、
起動した前記他方のユーザアプリケーションに対して、前記通信キューメモリに前記所定のメッセージが格納されている旨を通知する、
プロセス管理ミドルウェア。
【請求項２】
前記システム起動／終了管理機能部は、
前記ユーザアプリケーションの定義情報を定義したＡＰ管理情報定義ファイルから、前記ユーザアプリケーションの起動および／または終了に必要な条件情報を取得し、当該条件情報に従い、前記ユーザアプリケーションの起動および／または終了を制御する、
ことを特徴とする請求項１に記載のプロセス管理ミドルウェア。
【請求項３】
前記常駐プロセス監視機能部は、
常駐プロセスとして定義されている前記ユーザアプリケーションを監視しており、前記常駐プロセスが終了しているときには、当該常駐プロセスを自動で起動させる、
ことを特徴とする請求項１に記載のプロセス管理ミドルウェア。
【請求項４】
前記オペレーションシステムが起動されれば、ユーザログインしなくても、自動的にシステム起動が可能である、
ことを特徴とする請求項１に記載のプロセス管理ミドルウェア。
【請求項５】
ユーザからの指示を受けたツールソフトウェアにより、当該指示に応じた所定の制御を実施する、
ことを特徴とする請求項１に記載のプロセス管理ミドルウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、Ｗｉｎｄｏｗｓ（登録商標）システムなどのオペレーションシステム上で、複数のユーザアプリケーションにより機能構成されるシステムにおける、当該ユーザアプリケーションの起動／終了の管理、ユーザアプリケーション間の通信手段の提供、ユーザアプリケーション状態の監視、およびユーザアプリケーション出力メッセージの管理を行う、プロセス管理ミドルウェアに関するものである。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ（登録商標）システム上に構築されたアプリケーションシステムにおけるユーザアプリケーションの管理は、従来、登録されたユーザアプリケーションを起動／終了するのみであり、ユーザアプリケーション間通信においてもメッセージの送受信のみ行うだけである。
【０００３】
なお、ＵＮＩＸ（登録商標）システムにおけるユーザアプリケーションの管理に関する先行文献として、特許文献１が存在している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２５９１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のオペレーションシステム上に構築されたアプリケーションシステムにおけるユーザアプリケーションの管理は、登録されたユーザアプリケーションを一斉起動するか一斉停止するのみであった。よって、ユーザアプリケーション間での起動／終了順序に制約が必要な場合などに、起動待ち制御や終了待ち制御ができないなどの問題点があった。
【０００６】
また、従来のユーザアプリケーション管理技術では、プロセス管理にて起動された常駐プロセスが何らかの要因で終了してしまった場合に、自動で当該常駐プロセスをリカバリー（再起動）させることができないなどの問題点もあった。
【０００７】
また、従来のユーザアプリケーション管理技術では、ユーザアプリケーション間通信において、メッセージの送信先ユーザアプリケーションが未起動の場合は、メッセージ送信失敗となり、オンラインリアルタイムシステムにおいては、システムダウン状態となり、運用継続不可になるなどの問題点もあった。
【０００８】
そこで、本発明は、ユーザアプリケーション間での起動／終了順序に制約が必要な場合などに起動待ち制御や終了待ち制御ができ、常駐プロセスが何らかの要因で終了してしまった場合に自動で当該常駐プロセスを再起動させることができ、オンラインリアルタイムシステムにおいては運用継続不可とならない、プロセス管理ミドルウェアを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明に係るプロセス管理ミドルウェアは、オペレーションシステム上に構築された複数のユーザアプリケーションの管理を行うプロセス管理ミドルウェアであって、前記ユーザアプリケーションの起動および／または終了を管理する、システム起動／終了管理機能部と、前記ユーザアプリケーションを常時監視する、常駐プロセス監視機能部と、前記ユーザアプリケーション間におけるメッセージの送受信を管理する、プロセス間通信機能部と、一方の前記ユーザアプリケーションから他方の前記ユーザアプリケーションの起動および／または終了を管理するアプリケーション起動／終了機能部とを、有し、前記メッセージの格納する通信キューメモリを、さらに備えており、前記プロセス間通信機能部は、前記一方のユーザアプリケーションから送信された所定の前記メッセージの送信先である前記他方のユーザアプリケーションが終了していても、前記所定のメッセージを、前記通信キューメモリに格納し、前記アプリケーション起動／終了機能部は、前記他方のユーザアプリケーションを起動させ、前記プロセス間通信機能部は、起動した前記他方のユーザアプリケーションに対して、前記通信キューメモリに前記所定のメッセージが格納されている旨を通知する。
【発明の効果】
【００１０】
本発明に係るプロセス管理ミドルウェアは、オペレーションシステム上に構築された複数のユーザアプリケーションの管理を行うプロセス管理ミドルウェアであって、前記ユーザアプリケーションの起動および／または終了を管理する、システム起動／終了管理機能部と、前記ユーザアプリケーションを常時監視する、常駐プロセス監視機能部と、前記ユーザアプリケーション間におけるメッセージの送受信を管理する、プロセス間通信機能部と、一方の前記ユーザアプリケーションから他方の前記ユーザアプリケーションの起動および／または終了を管理するアプリケーション起動／終了機能部とを、有し、前記メッセージの格納する通信キューメモリを、さらに備えており、前記プロセス間通信機能部は、前記一方のユーザアプリケーションから送信された所定の前記メッセージの送信先である前記他方のユーザアプリケーションが終了していても、前記所定のメッセージを、前記通信キューメモリに格納し、前記アプリケーション起動／終了機能部は、前記他方のユーザアプリケーションを起動させ、前記プロセス間通信機能部は、起動した前記他方のユーザアプリケーションに対して、前記通信キューメモリに前記所定のメッセージが格納されている旨を通知する。
【００１１】
したがって、本発明に係るプロセス管理ミドルウェアは、ユーザアプリケーション間での起動／終了順序に制約が必要な場合などに、起動待ち制御や終了待ち制御ができる。また、常駐プロセスが何らかの要因で終了してしまった場合に、自動で当該常駐プロセスを再起動させることができる。また、スタートアップに登録されているユーザアプリケーションの一斉起動・終了のみならず、ユーザアプリケーションから他の起動および／または終了もできる。さらに、メッセージ送信の失敗を防止でき、オンラインリアルタイムシステムにおいては、ユーザアプリケーションの不具合によりシステムダウンの状態に陥ることを防止でき、運用継続不可とならない。
【図面の簡単な説明】
【００１２】
【図１】本発明に係るプロセス管理ミドルウェア１００の構成を示すブロック図である。
【図２】本発明に係るプロセス管理ミドルウェア１００の動作を概念的に示した図である。
【図３】本発明に係るプロセス管理ミドルウェア１００の動作を概念的に示した図である。
【図４】本発明に係るプロセス管理ミドルウェア１００の動作を概念的に示した図である。
【図５】本発明に係るプロセス管理ミドルウェア１００の動作を概念的に示した図である。
【図６】本発明に係るプロセス管理ミドルウェア１００の動作を概念的に示した図である。
【図７】本発明に係るプロセス管理ミドルウェア１００の動作を概念的に示した図である。
【図８】本発明に係るプロセス管理ミドルウェア１００の動作を概念的に示した図である。
【発明を実施するための形態】
【００１３】
以下、この発明をその実施の形態を示す図面に基づいて具体的に説明する。
【００１４】
＜実施の形態＞
図１は、本発明の実施の形態１に係るプロセス管理ミドルウェアの概念的な構成を示す図である。以下、本実施の形態に係るプロセス管理ミドルウェア１００を、図１に基づいて説明する。
【００１５】
図１において、プロセス管理ミドルウェア１００は、オペレーションシステム（ＯＳ）上に複数のユーザアプリケーション２００Ａ，２００Ｂで構築されたシステムにおいて、当該ユーザアプリケーション２００Ａ，２００Ｂの管理を行う。また、図１に示すように、プロセス管理ミドルウェア１００は、ＯＳとユーザアプリケーション２００Ａ，２００Ｂとの間に位置している。
【００１６】
なお、図１では、図面簡略化の観点により、ユーザアプリケーション２００Ａ，２００Ｂは２個のみ図示しているが、実際には、ＯＳ上には複数のユーザアプリケーションが構築されている。
【００１７】
図１に示すように、プロセス管理ミドルウェア１００は、機能ブロックとして、システム起動／終了管理機能部１、アプリケーション（ＡＰＬ）起動／終了機能部２、常駐プロセス監視機能部３、プロセス間通信機能部４、共有メモリサポート機能部５、排他制御サポート機能部６、およびシャットダウン機能部７を有する。
【００１８】
システム起動／終了管理機能部１は、プロセス管理定義ファイル２０とＡＰ管理情報定義ファイル２１とに基づいて、ユーザアプリケーション２００Ａ，２００Ｂの起動および／または停止の順序、およびユーザアプリケーション２００Ａ，２００Ｂ間の起動待ち制御や終了待ち制御を行う、つまりユーザアプリケーション２００Ａ，２００Ｂの起動および／または終了を管理する。
【００１９】
ここで、プロセス管理定義ファイル２０には、プロセス管理ミドルウェア１００が機能するために必要なデータ、つまりプロセス管理の動作条件が定義されている。具体的に、プロセス管理定義ファイル２０には、データベース接続有無やデータベース接続条件、およびＯＳシャットダウン有無や終了時のコマンド実行や他ＰＣ（パーソナルコンピュータ）のリモートシャットダウン有無などが定義されている。
【００２０】
また、ＡＰ管理情報定義ファイル２１には、プロセス管理ミドルウェア１００が管理しているユーザアプリケーション２００Ａ，２００Ｂの定義情報が定義されている。たとえば、ＡＰ管理情報定義ファイル２１には、実行するユーザアプリケーション２００Ａ，２００Ｂのパス、起動および／または終了のユーザアプリケーション２００Ａ，２００Ｂの順番、当該順序における間隔時間、および常駐プロセスとなるユーザアプリケーション２００Ａ，２００Ｂなども定義されている。また、ＡＰ管理情報定義ファイル２１には、エンキュー（通信キューメモリ）のサイズも定義されている。
【００２１】
ＡＰＬ起動／終了機能部２は、システム起動／終了管理機能部１による立上後に、一方のユーザアプリケーション２００Ａ，２００Ｂから他方のユーザアプリケーション２００Ａ，２００Ｂの起動および／または終了を管理・サポートする。
【００２２】
ここで、システム起動／終了管理機能部１は、プロセス管理ミドルウェア１００の初期起動時における、予めスタートアップに登録されているユーザアプリケーション２００Ａ，２００Ｂの起動、および、プロセス管理ミドルウェア１００の終了時における、予めスタートアップに登録されているユーザアプリケーション２００Ａ，２００Ｂの終了を、管理している。他方、ＡＰＬ起動／終了機能部２は、プロセス管理ミドルウェア１００の初期起動後における、各ユーザアプリケーション２００Ａ，２００Ｂの起動・終了を管理している。
【００２３】
常駐プロセス監視機能部３は、ユーザアプリケーション２００Ａ，２００Ｂを常時監視する。より具体的には、常駐プロセス監視機能部３は、ＡＰ管理情報定義ファイル２１で常駐プロセスとして定義されているユーザアプリケーション２００Ａ，２００Ｂ（以下、常駐プロセスと称する）を常時監視する。さらに、常駐プロセス監視機能部３は、終了している常駐プロセスを自動でリカバリ（再起動）させる。
【００２４】
プロセス間通信機能部４は、ユーザアプリケーション２００Ａ，２００Ｂ間におけるメッセージの送受信を管理する。具体的に、プロセス間通信機能部４は、送信先キュー指定でメッセージ送受信を管理・サポートし、送信先のユーザアプリケーション２００Ａ，２００Ｂが未起動でもエンキュー起動する。
【００２５】
共有メモリサポート機能部５は、共有メモリ定義ファイル２２を用いて、ユーザアプリケーション２００Ａ，２００Ｂ間のデータ共有を管理・サポートする。
【００２６】
ここで、共有メモリ定義ファイル２２には、プロセス管理ミドルウェア１００が提供する、ユーザアプリケーション２００Ａ，２００Ｂ間で共有する共有メモリに関する情報が定義されている。
【００２７】
排他制御サポート機能部６は、排他制御定義ファイ２３を用いて、ユーザアプリケーション２００Ａ，２００Ｂ間でのリソース（プロセス管理ミドルウェア１００が提供する共有メモリ）のロック／アンロック操作を管理・サポートする。
【００２８】
ここで、排他制御定義ファイル２３には、ユーザアプリケーション２００Ａ，２００Ｂ間で排他制御するための情報が定義されている。
【００２９】
シャットダウン機能部７は、プロセス管理終了時のＯＳシャットダウンおよび関連システムのリモートシャットダウンを管理・サポートする。
【００３０】
なお、図１に示すように、ＯＳ上には、メッセージ定義ファイル３０が構成されている。当該メッセージ定義ファイル３０には、各ユーザアプリケーション２００Ａ，２００Ｂがメッセージログへ出力するメッセージが定義されている。
【００３１】
また、図１において、各ユーザアプリケーション２００Ａ，２００Ｂは、プロセス管理ミドルウェアが提供するプロセス管理Ｉ／Ｆ ＤＬＬを使用し、送信先ＡＰ識別子と送信メッセージとを送信関数のパラメータに指定して、ＣＡＬＬする。これにより、送信先ＡＰ識別子の通信キューメモリに、当該送信メッセージが格納される。
【００３２】
次に、本実施の形態に係るプロセス管理ミドルウェア１００の動作について、説明する。
【００３３】
まず、ＯＳ立上時のプロセス管理ミドルウェア１００の動作（初期起動）について説明する。
【００３４】
従来は、ＯＳのスタートアップで登録されている複数のユーザアプリケーションは、ランダムに、管理もされることなく立ち上がっていた。
【００３５】
本実施の形態に係るプロセス管理ミドルウェア１００では、以下のようにして、スタートアップで登録されている複数のユーザアプリケーション２００Ａ，２００Ｂ（換言すると、「初期起動有り」で登録されているユーザアプリケーション２００Ａ，２００Ｂ）を起動させる。
【００３６】
ＯＳ起動後に自動的にサービス起動される。そして、サービス起動されたプロセス管理ミドルウェア１００のシステム起動／終了管理機能部１は、プロセス管理定義ファイル２０を取得し、当該プロセス管理ミドルウェア１００の動作条件を決定する。ここで、上記の通り、プロセス管理定義ファイル２０には、データベース接続有無やデータベース接続条件、およびＯＳシャットダウン有無や終了時のコマンド実行や他ＰＣのリモートシャットダウン有無などが、定義されている。
【００３７】
次に、プロセス管理ミドルウェア１００の共有メモリサポート機能部５は、共有メモリ定義ファイル２２を取得し、プロセス管理ミドルウェア１００の排他制御サポート機能部６は、排他制御定義ファイル２３を取得する。当該各取得により、プロセス管理ミドルウェア１００は、共有リソースを生成する。つまり、プロセス管理ミドルウェア１００内において、各ユーザアプリケーション２００Ａ，２００Ｂに対して共有で提供される共有メモリを生成し、当該共有メモリの排他制御を管理する。
【００３８】
次に、プロセス管理ミドルウェア１００において、システム起動／終了管理機能部１、ＡＰＬ起動／終了機能部、常駐プロセス監視機能部３およびプロセス間通信管理機能部４は、ＡＰ管理情報定義ファイル２１を取得する。
【００３９】
ここで、プロセス管理ミドルウェア１００が取得したＡＰ管理情報定義ファイル２１は、プロセス管理テーブル８に展開される。
【００４０】
次に、プロセス間通信管理機能部４は、ＡＰ管理情報定義ファイル２１に定義されているエンキューのサイズの情報等を用いて、ユーザアプリケーション２００Ａ，２００Ｂ間通信で使用する通信キューメモリを、つまり各ユーザアプリケーション２００Ａ，２００Ｂが受信に必要な分（レコードサイズ×ＭＡＸレコード数）のリソース（受信キュー）を、プロセス管理ミドルウェア１００内に生成する。
【００４１】
次に、システム起動／終了管理機能部１は、ＡＰ管理定義情報２１に定義されている、管理対象ユーザアプリケーション２００Ａ，２００Ｂの起動／停止に必要な条件を用いて、当該条件として定義された順番で、「初期起動有り」で登録されているユーザアプリケーション２００Ａ，２００Ｂを順次起動する。
【００４２】
ここで、当該順次起動において、ＡＰ管理情報定義ファイル２１に定義されたアプリケーション毎の起動待ち時間（ｍｓ）の指定に従って、「初期起動有り」で登録されている各ユーザアプリケーション２００Ａ，２００Ｂの起動タイミングを、システム起動／終了管理機能部１は調整する。
【００４３】
すべての共有リソース生成と初期起動ユーザアプリケーション２００Ａ，２００Ｂの起動が完了すれば、タスクトレイにプロセス管理ミドルウェア１００のアイコンが表示され、起動完了となる。なお、当該アイコンに対するマウス右クリックにより表示されるメニューにより、ツールの起動やプロセス管理の終了操作をすることができる。
【００４４】
スタートアップ等に登録されているユーザアプリケーション２００Ａ，２００Ｂの初期起動後、少なくとも１以上の端末において動いている、複数の機能のユーザアプリケーション２００Ａ，２００Ｂ間で、プロセス管理ミドルウェア１００を介したメッセージの送受信を開始する。ユーザアプリケーション２００Ａ，２００Ｂとプロセス管理ミドルウェア１００との間のメッセージの送受信は、関数群からなるプロセス管理Ｉ／Ｆ  ＤＬＬ２５０Ａ，２５０Ｂとプロセス管理ミドルウェア１００のプロセス間通信管理機能部４等との間の、実施される。そして、当該メッセージの送受信を利用して、プロセス管理ミドルウェア１００は、各ユーザアプリケーション２００Ａ，２００Ｂの監視・管理を開始する。
【００４５】
図２は、ユーザアプリケーション２００Ａ，２００Ｂの初期起動およびその後のプロセス管理ミドルウェア１００の管理動作等の概念を示す図である。なお、図２に示すように、ＯＳ上には、ツールソフトウェア（プロセス管理ミドルウェア用ツール）である、プロセス状態管理ツール６０およびリアルタイムメッセージ表示ツール７０も構築されている。
【００４６】
プロセス状態管理ツール６０は、ユーザからの指示を受けて、プロセス管理ミドルウェア１００を制御し、各ユーザアプリケーション２００Ａ，２００Ｂの状態（起動中または終了中）表示、ユーザアプリケーション２００Ａ，２００Ｂの手動（ユーザからの指示による）起動／終了、およびＡＰ管理情報定義ファイル２１の一部変更を実施する。
【００４７】
また、リアルタイムメッセージ表示ツール７０は、ユーザからの指示を受けて、プロセス管理ミドルウェア１００を制御し、メッセージ管理６５が出力したメッセージをリアルタイムで表示する（つまり、リアルタイムメッセージ表示ツール７０により、ＣＳＶファイル６７に書き込まれたログが表示される）。なお、メッセージ管理６５は、ＣＳＶファイル６７だけでなく、データベース（ＤＢ）６８にも、ログの書き込みを行う。
【００４８】
次に、初期起動後のプロセス管理ミドルウェア１００による、常駐プロセスの監視・管理動作について説明する。
【００４９】
ユーザアプリケーション２００Ａ，２００Ｂの初期起動後、プロセス管理ミドルウェア１００は、ＡＰ管理情報定義ファイル２１に常駐プロセスとして定義・登録されている、ユーザアプリケーション（以下、常駐プロセス２００Ｈと称する）を、定期的に監視する（図３の動作概念図参照）。そして、当該監視により、プロセス管理ミドルウェア１００は、常時プロセス２００Ｈが動作しているか否かを確認する。
【００５０】
プロセス管理ミドルウェア１００の常駐プロセス監視機能部３が、常時プロセス２００Ｈを監視するタイミングにおいて、常駐プロセス２００Ｈが未起動の場合には、プロセス管理ミドルウェア１００のＡＰＬ起動／終了機能部２は、当該未起動の常時プロセス２００Ｈを自動でプロセスリカバリー（再起動）する。
【００５１】
ところが、何らかの要因で起動していた常駐プロセス２００Ｈが終了してしまうことも、想定される（この場合には、プロセス管理ミドルウェア１００は、監視している常時プロセス２００Ｈから応答を得られない）。
【００５２】
そこで、プロセス管理ミドルウェア１００の常駐プロセス監視機能部３が常時プロセス２００Ｈを監視し、所定の時間以内に常駐プロセス２００Ｈから応答がない場合（図４の動作概念図参照）には、プロセス管理ミドルウェア１００のＡＰＬ起動／終了機能部２は、当該常時プロセス２００Ｈの強制終了を実施する。その後、当該ＡＰＬ起動／終了機能部２は、当該常時プロセス２００Ｈの自動でプロセスをリカバリー（再起動）させる（図４の動作概念図参照）。
【００５３】
次に、初期起動後のプロセス管理ミドルウェア１００による、プロセス間通信の監視・管理動作について説明する。
【００５４】
まず、ユーザアプリケーション２００Ａからユーザアプリケーション２００Ｂへメッセージを送信する場合で、各ユーザアプリケーション２００Ａ，２００Ｂが起動している場合の動作を、図５に示す動作概念図を用いて説明する。
【００５５】
この場合、図５に示すように、ユーザアプリケーション２００Ａは、プロセス管理ミドルウェア１００が提供するプロセス管理Ｉ／Ｆ ＤＬＬを使用し、送信先ＡＰ（ユーザアプリケーション２００Ｂ）識別子と送信メッセージを送信関数のパラメータに指定して、ＣＡＬＬする。これにより、プロセス間通信管理機能部４は、ユーザアプリケーション２００Ａからのメッセージを受信し、送信先ＡＰ識別子の通信キューメモリ８１にメッセージが格納する（キュー書込）。
【００５６】
ここで、通信キューメモリ８１は、各ユーザアプリケーション２００Ａ，２００Ｂごとに一つ生成されており、各通信キューメモリ８１の名称・サイズは、ＡＰ管理情報定義ファイル２１において定義されている。
【００５７】
次に、プロセス間通信管理機能部４は、メッセージの送信先であるユーザアプリケーション２００Ｂの起動状態を確認する（たとえば、プロセス管理テーブルに展開されている情報において、ユーザアプリケーション２００Ａの起動の状況をチェックすることにより、当該起動状態の確認ができる）。
【００５８】
図５に示すように、ユーザアプリケーション２００Ｂが起動している場合には、プロセス間通信管理機能部４は、通信キューメモリ８１にユーザアプリケーション２００Ｂ宛てのメッセージが格納されていることを、ユーザアプリケーション２００Ｂのプロセス管理Ｉ／Ｆ ＤＬＬに通知する。
【００５９】
当該通知を受けて、ユーザアプリケーション２００Ｂは、当該プロセス管理Ｉ／Ｆ ＤＬＬの関数をＣＡＬＬして、プロセス間通信管理機能部４を介して通信キューメモリ８１から、ユーザアプリケーション２００Ａから送信されたメッセージを取り出す（キュー読み出し）。
【００６０】
なお、通信キューメモリ８１がキューフルになったとき、プロセス間通信管理機能部４は、エラーメッセージを送信基であるユーザアプリケーション２００Ａに対して送信する。
【００６１】
次に、ユーザアプリケーション２００Ｂからユーザアプリケーション２００Ａへメッセージを送信する場合で、各ユーザアプリケーション２００Ｂが起動しているが、ユーザアプリケーション２００Ａが終了している場合の動作を、図６に示す動作概念図を用いて説明する。
【００６２】
この場合、図６に示すように、ユーザアプリケーション２００Ｂは、プロセス管理ミドルウェア１００が提供するプロセス管理Ｉ／Ｆ ＤＬＬを使用し、送信先ＡＰ（ユーザアプリケーション２００Ａ）識別子と送信メッセージを送信関数のパラメータに指定して、ＣＡＬＬする。これにより、プロセス間通信管理機能部４は、ユーザアプリケーション２００Ｂからのメッセージを受信し、送信先ＡＰ識別子の通信キューメモリ８２にメッセージが格納される（キュー書込）。
【００６３】
ここで、ユーザアプリケーション２００Ａが起動していなくても、プロセス間通信機能部４は、当該メッセージの受信および通信キューメモリ８２への当該キュー書込を実施する。
【００６４】
たとえば、プロセス管理ミドルウェア１００は、プロセス管理テーブル８に展開されている情報により、ユーザアプリケーション２００Ａが起動していないことを認識できる。このように、ユーザアプリケーション２００Ａが起動していない場合には、ＡＰＬ起動／終了機能部２は、ユーザアプリケーション２００Ａを自動起動（エンキュー起動）させる。
【００６５】
プロセス間通信管理機能部４は、ユーザアプリケーション２００Ａから当該自動起動終了の通知を受けると、プロセス管理テーブル８に展開されている情報に、ユーザアプリケーション２００Ａの起動状態を反映させる。さらに、プロセス間通信管理機能部４は、通信キューメモリ８２にユーザアプリケーション２００Ａ宛てのメッセージが格納されていることを、起動したユーザアプリケーション２００Ａのプロセス管理Ｉ／Ｆ ＤＬＬに通知する。
【００６６】
当該通知を受けて、ユーザアプリケーション２００Ａは、当該プロセス管理Ｉ／Ｆ ＤＬＬの関数をＣＡＬＬして、プロセス間通信管理機能部４を介して通信キューメモリ８２から、ユーザアプリケーション２００Ｂから送信されたメッセージを取り出す（キュー読み出し）。
【００６７】
なお、図７は、プロセス間通信管理機能部４を介したユーザアプリケーション２００Ａ，２００Ｂのメッセージの記録（ログ）動作の概略を示す図である。
【００６８】
ユーザアプリケーション２００Ａ，２００Ｂがメッセージを記録する場合には、ユーザアプリケーション２００Ａ，２００Ｂは、メッセージ定義ファイル３０で定義されているメッセージ番号と付随データとをセットし、メッセージ管理ＤＬＬの関数をＣＡＬＬする。
【００６９】
そして、ユーザアプリケーション２００Ａ，２００Ｂは、プロセス管理ミドルウェア１００が提供するプロセス管理Ｉ／Ｆ ＤＬＬを使用し、送信先ＡＰ（メッセージ管理６５）識別子と送信メッセージを送信関数のパラメータに指定して、ＣＡＬＬする。これにより、プロセス間通信管理機能部４は、ユーザアプリケーション２００Ａ，２００Ｂからのメッセージを受信し、送信先ＡＰ識別子の通信キューメモリ８４にメッセージが格納する（キュー書込）。
【００７０】
次に、プロセス間通信管理機能部４は、通信キューメモリ８４にメッセージ管理６５宛てのメッセージが格納されていることを、メッセージ管理６５のプロセス管理Ｉ／Ｆ ＤＬＬに通知する。
【００７１】
当該通知を受けて、メッセージ管理６５は、当該プロセス管理Ｉ／Ｆ ＤＬＬの関数をＣＡＬＬして、プロセス間通信管理機能部４を介して通信キューメモリ８４から、ユーザアプリケーション２００Ａ，２００Ｂから送信されたメッセージを取り出す（キュー読み出し）。
【００７２】
そして、メッセージ管理６５は、受信したメッセージを、ＣＳＶファイル６７およびデータベース６８に書き込む。なお、ＤＢメンテナンスＤＬＬは、指定時刻にデータベース６８に対するメンテナンスを実施する。具体的に、ＤＢメンテナンスＤＬＬは、当該メンテナンスとして、データ保持期間が超過したデータを、当該データベース６８から削除する。また、ＣＳＶファイル６７では、ファイルサイズとファイル数とで、メッセージの世代管理がされている。
【００７３】
また、図２を用いて既に説明したように、リアルタイムメッセージ表示ツール７０は、ユーザからの指示に応じて、ＣＳＶファイル６７に書き込まれているメッセージを、ユーザが視認できるように表示装置に表示させる（ログ表示）。
【００７４】
次に、プロセス管理ミドルウェア１００の終了動作について説明する。
【００７５】
プロセス管理ミドルウェア１００の終了は、次の三通りの方法により実施される。一つ目の方法は、ＯＳのサービスに登録している、プロセス管理ミドルウェアサービスを停止する。二つ目の方法は、タスクトレイにあるプロセス管理ミドルウェアのアイコンを、マウス右クリックすることにより表示されるメニューから、プロセス管理の終了を実行する。三つ目の方法は、ユーザアプリケーションからの要求により、プロセス管理終了ツールのプロセス管理Ｉ／Ｆ用ＤＬＬのプロセス管理停止要求関数をコールする。
【００７６】
上記何れかの方法により、プロセス管理ミドルウェア１００の終了処理が実行されると、システム起動／終了管理機能部１は、ＡＰ管理情報定義ファイル２１に定義された順番の逆順（上記した初期起動の逆の順番）で、「初期起動有り」で登録されたユーザアプリケーション２００Ａ，２００Ｂを順次停止していく。
【００７７】
ここで、システム起動／終了管理機能部１は、当該ユーザアプリケーション２００Ａ，２００Ｂの順次停止の際には、ＡＰ管理情報定義ファイル２１に定義された、ユーザアプリケーション毎の停止待ち時間（ｍｓ）の指定に従って、各ユーザアプリケーション２００Ａ，２００Ｂの停止タイミングを調整する。
【００７８】
また、プロセス管理ミドルウェア１００は、当該プロセス管理ミドルウェア１００の初期起動時に生成したすべての共有リソースを解放する。さらに、プロセス管理ミドルウェア１００は、初期起動プロセスの終了が完了すれば、タスクトレイのプロセス管理ミドルウェアアイコン表示を、プロセス管理未起動アイコンに変更する。
【００７９】
なお、プロセス管理ミドルウェア１００の終了には、「システム停止」、「シャットダウン、および「再起動」の３種類の停止モードが指定できる。
【００８０】
ここで、「システム停止」では、プロセス管理ミドルウェア１００の終了までが実施され、ＯＳのシャットダウンは実施されない。また、「シャットダウン」では、プロセス管理ミドルウェア１００の終了後、ＯＳのシャットダウンも実施される。また、「再起動」では、プロセス管理ミドルウェア１００の終了後、ＯＳの再起動が実施される。
【００８１】
また、プロセス管理ミドルウェア１００の起動時にプロセス管理定義ファイル２０より取得した定義に基づいて、ＯＳシャットダウンや終了時のコマンド実行や他ＰＣのリモートシャットダウンを実行する。
【００８２】
なお、プロセス管理ミドルウェア１００の終了動作の概念を示す図を、図８に示す。図８には、上記３通りの終了の方法（３通りの終了要求）、各ユーザアプリケーション２００Ａ，２００Ｂを終了する様子、プロセス管理テーブル８が解放される様子、終了動作時に実行するユーザアプリケーション２００Ｔおよび他ＰＣのリモートシャットダウンを実行様子等が図示されている。
【００８３】
以上のように、本発明に係るプロセス管理ミドルウェア１００は、ユーザアプリケーション２００Ａ，２００Ｂの起動および／または終了を管理する、システム起動／終了管理機能部１を備えている。そして、システム起動／終了管理機能部１は、ＡＰ管理情報定義ファイル２１から、ユーザアプリケーション２００Ａ，２００Ｂの起動および／または終了に必要な条件情報を取得している。そして、システム起動／終了管理機能部１は、当該条件情報に従い、ユーザアプリケーション２００Ａ，２００Ｂの起動および／または終了を制御している。
【００８４】
したがって、本発明に係るプロセス管理ミドルウェア１００は、ユーザアプリケーション２００Ａ，２００Ｂ間での起動／終了順序に制約が必要な場合などに、起動待ち制御や終了待ち制御ができる。
【００８５】
また、本発明に係るプロセス管理ミドルウェア１００は、常駐プロセスを監視する常駐プロセス監視機能部３を備えている。そして、常駐プロセス監視機能部３は、常駐プロセスが終了しているときには、当該常駐プロセスを自動で起動させる。
【００８６】
したがって、本発明に係るプロセス管理ミドルウェア１００は、常駐プロセスが何らかの要因で終了してしまった場合に、自動で当該常駐プロセスを再起動させることができる。
【００８７】
また、本発明に係るプロセス管理ミドルウェア１００は、ユーザアプリケーション２００Ａ，２００Ｂ間におけるメッセージの送受信を管理するプロセス間通信機能部４と、一方のユーザアプリケーション２００Ａ，２００Ｂから他方のユーザアプリケーション２００Ａ，２００Ｂの起動および／または終了を管理するアプリケーション起動／終了機能部２とを、備えている。そして、プロセス間通信機能部４は、所定のメッセージの送信先であるユーザアプリケーション２００Ａ，２００Ｂが終了していても、当該所定のメッセージを、通信キューメモリに格納する。また、アプリケーション起動／終了機能部２は、当該終了しているユーザアプリケーション２００Ａ，２００Ｂを起動させ、プロセス間通信機能部４は、起動したユーザアプリケーション２００Ａ，２００Ｂに対して、通信キューメモリに所定のメッセージが格納されている旨を通知している。
【００８８】
したがって、本発明に係るプロセス管理ミドルウェア１００は、スタートアップに登録されているユーザアプリケーション２００Ａ，２００Ｂの一斉起動・終了のみならず、ユーザアプリケーション２００Ａ，２００Ｂから他のユーザアプリケーション２００Ａ，２００Ｂの起動および／または終了もできる。さらに、本発明に係るプロセス管理ミドルウェア１００は、プロセス監視タイミングの隙間を埋めるために，プロセス間通信処理においてメッセージ送信先のユーザアプリケーション２００Ａ，２００Ｂが未起動でもエンキュー起動（送信先ユーザアプリケーション２００Ａ，２００Ｂを起動）して、メッセージを通知するようにした。よって、メッセージ送信の失敗を防止でき、オンラインリアルタイムシステムにおいては、ユーザアプリケーション２００Ａ，２００Ｂの不具合によりシステムダウンの状態に陥ることを防止でき、運用継続不可とならない。
【００８９】
なお、ＯＳが立上り、ログイン後に、プロセス管理ミドルウェア１００の初期起動を開始しても良い。
【００９０】
これに対して、ＯＳが立ち上がれば（ＯＳサービスに登録し、ＯＳ起動後に）、ユーザのログインを行わなくても、プロセス管理ミドルウェア１００の初期起動を自動的に開始してもよい。これにより、ログイン画面の裏で、「初期起動有り」で登録されているユーザアプリケーション２００Ａ，２００Ｂを起動されることができる。
【００９１】
また、上記では、ユーザからの指示を受け、当該指示に応じてプロセス管理ミドルウェア１００に対して所定の制御を実施するツールソフトウェアとして、リアルタイムメッセージ表示ツール７０およびプロセス状態管理ツールについて説明した（図１参照）。しかし、当該ツールソフトウェアとして他に、ＯＳ上に、プロセス間通信のテストに使用する「エンキューテストツール」が構築されていても良い。「エンキューテストツール」により、ユーザからの通信テスト指示に応じて、未起動のユーザアプリケーション２００Ａ，２００Ｂがあったとしても、当該未起動のユーザアプリケーション２００Ａ，２００Ｂに代わって、エンキューテストツールと他の起動しているユーザアプリケーション２００Ａ，２００Ｂとの間でのプロセス間通信テストを実施する。
【００９２】
このように、本発明に係るプロセス管理ミドルウェア１００は、ユーザからの指示を受けたツールソフトウェアにより、当該指示に応じた所定の制御を実施している。したがって、プロセス管理ミドルウェア１００の利便性の向上を図ることができる。
【符号の説明】
【００９３】
１  システム起動／終了管理機能部
２  ＡＰＬ起動／終了機能部
３  常駐プロセス管理機能部
４  プロセス間通信管理機能部
５  共有メモリサポート機能部
６  排他制御サポート機能部
７  ショットダウン機能部７
８  プロセス管理テーブル
２０  プロセス管理定義ファイル
２１  ＡＰ管理情報定義ファイル
２２  共有メモリ定義ファイル
２３  排他制御定義ファイル
３０  メッセージ定義ファイル
６０  プロセス状態管理ツール
７０  リアルタイムメッセージ表示ツール
８１，８２，８４  通信キューメモリ
１００  プロセス管理ミドルウェア
２００Ａ，２００Ｂ  ユーザアプリケーション
２００Ｈ  常駐プロセス
【図１】
0005840968.tif 000002
【図２】
0005840968.tif 000003
【図３】
0005840968.tif 000004
【図４】
0005840968.tif 000005
【図５】
0005840968.tif 000006
【図６】
0005840968.tif 000007
【図７】
0005840968.tif 000008
【図８】
0005840968.tif 000009