(57)【要約】【課題】複数プログラムが共有ライブラリを呼び出す場合においても、その共有ライブラリが、個々のプログラムにおいて個別の処理を簡易に実現する。【解決手段】複数のアプリケーションプログラムによって呼び出される共有プログラムを実行する情報機器であって、前記複数のアプリケーション中で所定の状態にあるアプリケーションプログラムを検知する手段と、前記所定の状態にあるアプリケーションプログラムに対して所定の機能を提供する手段と、を備える情報機器である。【選択図】図３
2007265228.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションプログラムによって呼び出される共有プログラムであって、
前記複数のアプリケーションプログラムのうちで所定の状態にあるアプリケーションプログラムを検知するステップと、
前記所定の状態にあるアプリケーションプログラムに対して所定の機能を提供するステップと、をコンピュータに実行させる共有プログラム。
【請求項２】
複数のアプリケーションプログラムによって呼び出される共有プログラムを実行する情報機器であって、
前記複数のアプリケーションプログラムのうちで所定の状態にあるアプリケーションプログラムを検知する手段と、
前記所定の状態にあるアプリケーションプログラムに対して所定の機能を提供する手段と、を備える情報機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のアプリケーションプログラムによって呼び出される共有プログラムに関する。
【背景技術】
【０００２】
既存のＬｉｎｕｘ、Ｗｉｎｄｏｗｓ（登録商標）等の共有ライブラリでは、各プロセスにおいて共通のコードが実行される。このため、これらの共有ライブラリがソースコードに埋め込まれた場合に、その処理は、各プロセスで共通になってしまう。
【０００３】
例えば、タッチパネルイベントを配信する機能を有する共有ライブラリがソースコードに埋め込まれた場合、タッチパネルイベントは、すべての実行中のプロセスに配信され、個別のプロセスに適切にイベントを配信できないという問題が生じえる。このような問題を回避するため、例えば、プロセスごとにイベント配信先を区別したライブラリをそれぞれのプロセスに個別に用意をする必要があり、作成に手間が掛かる。
【０００４】
図１は、プロセスごとにライブラリを用意したシステムの構成例を示している。この例では、ライブラリ１は、プロセス＃１専用の処理を実行する（ライブラリ２，３についても同様）。したがって、ライブラリ１が、例えば、マウスイベントを検知した場合には、そのイベントは、プロセス＃１にだけ通知され、プロセス＃２、＃３は、プロセス＃１とは異なる処理を実現できる。しかしながら、このような方式では、プロセスごとにライブラリを用意する必要があり、共有ライブラリとすることができない。
【０００５】
一方、共有ライブラリを提供する従来のマルチウィンドウシステムでは、最上位に位置するウィンドウに対応するプロセスを管理するウィンドウマネージャを備えるものがあった。図２に、ウィンドウマネージャによるプロセス管理の例を示している。ウィンドウマネージャは、タッチパネルイベントのようなハードウェアに対するイベントを検知すると、最上位のウィンドウ（プロセス）を選択し、そのプロセスにイベントを通知していた。
【０００６】
しかし、ウィンドウマネージャを搭載したシステムでは、ウィンドウマネージャがコンピュータ上のすべてのグラフィカルユーザインターフェースのイベントを管理する方式であるため、その処理が複雑であった。すなわち、共有ライブラリを使用したシステムでは、従来、イベントの発生後、各プロセスの状態から、そのイベントに応じた適切なプロセスを識別し、プロセスごとに固有の処理を実行させる技術は、提案されていなかった。したがって、リソースの少ない小型の機器、あるいは、車載器等の移動体に搭載される機器においては、共有ライブラリを用いて、プロセス固有の処理を実現することが困難であった。
【特許文献１】特開平０６−０１９６６３
【特許文献２】特開平０９−２４４９２０
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、複数プログラムが共有ライブラリを呼び出す場合においても、その共有ライブラリが、個々のプログラムにおいて個別の処理を簡易に実現する技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明は、複
数のアプリケーションプログラムによって呼び出される共有プログラムを実行する情報機器であって、前記複数のアプリケーションプログラムのうちで所定の状態にあるアプリケーションプログラムを検知する手段と、前記所定の状態にあるアプリケーションプログラムに対して所定の機能を提供する手段と、を備える情報機器である。
【０００９】
本発明によれば、前記複数のアプリケーションプログラムのうちで所定の状態にあるアプリケーションプログラムを検知し、前記所定の状態にあるアプリケーションプログラムに対して所定の機能を提供するので、複数のアプリケーションプログラムによって呼び出される共有プログラムを実行する場合でも、そのような特定の状態にあるアプリケーションプログラムに個別の処理を簡易に実現できる。
【発明の効果】
【００１０】
本発明によれば、複数プログラムが共有ライブラリを呼び出す場合においても、その共有ライブラリが、個々のプログラムにおいて個別の処理を簡易に実現することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明を実施するための最良の形態（以下、実施形態という）に係る情報処理装置について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には、限定されない。
【００１２】
図３に、本情報処理装置の機能概要を示す。この情報システムは、コンピュータ本体１と、コンピュータ本体１に接続される表示装置３と、コンピュータ本体１に接続され、表示装置３の画面上のオブジェクトを操作するポインティングデバイス２とを有している。コンピュータ本体１は、例えば、パーソナルコンピュータ、車載器、携帯情報端末、携帯電話、デジタルテレビ、デジタル放送受信用のセットトップボックス等である。
【００１３】
コンピュータ本体１は、ＣＰＵ、メモリ、入出力インターフェース、入出力インターフェースに接続されるハードディスク駆動装置、入出力インターフェースに接続される着脱可能な記録媒体（ＤＶＤ、ＣＤ、フラッシュメモリカード等）の駆動装置等を含む。
【００１４】
表示装置３は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル等である。表示装置３には、コンピュータ本体１で実行されるプログラム（プロセス＃１〜＃３等）に対応する複数のウィンドウが表示される。
【００１５】
ポインティングデバイス２は、例えば、マウス、静電型のフラットスペース、ジョイスティック、画面上への押圧操作を検知するタッチパネル等である。図３の場合には、マウスを例にして、表示装置３の画面上にマウスポインタが表示されている。
【００１６】
図３に示すように、コンピュータ１上では、アプリケーションプログラムのプロセス＃１〜＃３が実行されている。各プロセスには、共通のライブラリ１０のインターフェースプログラムが組み込まれており、共通のライブラリ１０を呼び出すことが可能となっている。
【００１７】
本情報処理装置の特徴は、ライブラリ１０と各プロセスとの接続を管理するスイッチモジュール１１が設けられている点にある。各プロセス＃１〜＃３からライブラリ１０に処理の実行要求があった場合に、スイッチモジュール１１は、当該ライブラリ１０の処理に関して、現在有効なプロセスを判定する。そして、スイッチモジュール１１は、有効なプロセスからの実行要求に対して、ライブラリ１０の機能を提供する。一方、現在有効でないプロセスからの実行要求に対して、ライブラリ１０の機能を提供しない。
【００１８】
現在有効なプロセスとは、例えば、ポインティングデバイス２を通じたウィンドウ操作では、最上位のウィンドウに対応するプロセスが有効なプロセスと判定される。また、例えば、ポインティングデバイス２によってフォーカスされた（例えば、マウスポインタが置かれた）ウィンドウに対応するプロセスが有効なプロセスと判定される。また、例えば、周期的に活性な状態と、不活性な状態とを繰り返す複数のプロセス群において、現在活性な状態のプロセスが有効なプロセスとされる。
【００１９】
本実施形態では、有効なプロセスは、有効プロセステーブルに識別情報が記載される。ここで、識別情報は、例えば、コンピュータ１のＯＳ（オペレーティングシステム）が管理するプロセスＩＤである。
【００２０】
図４に、ＯＳが管理するプロセス管理テーブルの例を示す。このプロセス管理テーブルは、現在コンピュータ１で実行中のプロセスを構成する環境および現在のプロセスの状態を管理するテーブルである。図４で示される１つの行が１つのプロセスに対応する。
【００２１】
本情報処理装置では、プロセス管理テーブルの各行は、プロセスＩＤ、起動日時、実行形式サイズ、プログラム名、ウィンドウ、ステータス、メモリサイズ、その他の情報を有している。起動日時は、そのプロセスが生成された日時（プログラムの実行開始日時）である。実行形式サイズは、起動されたプログラムの容量である。プログラム名は、実行されるプログラムの名称（パス名）である。ウィンドウは、そのプログラムで生成されたウィンドウのＩＤである。ステータスは、プログラムの実行状態であり、例えば、活性（アクティブ）、サスペンド等である。メモリサイズは、現在プロセスが占有中のデータ領域を含むメモリサイズである。その他の情報は、例えば、ＣＰＵ時間、ＣＰＵ占有率、入出力インターフェースアクセス回数等である。
【００２２】
本実施形態では、このような各プロセスを識別するため、プロセスＩＤを用いる。しかし、プロセスＩＤに代えて、起動日時（タイムスタンプ）、実行形式サイズ等、それぞれのプロセスをユニークに識別可能な情報を用いてもよい。
【００２３】
図５に、有効プロセステーブルを管理する管理プログラムの処理を示す。この処理では、コンピュータ１は、ユーザ操作を監視している（Ｓ１）。そして、ユーザ操作が検知されると（Ｓ２でＹＥＳの場合）、コンピュータ１は、例えば、ウィンドウの階層順序を変更する（Ｓ３）。
【００２４】
そして、コンピュータ１は、最上位のウィンドウのウィンドウのＩＤからそのウィンドウに対応するプロセスＩＤを求める。プロセスＩＤは、図４に示したプロセス管理テーブルから求めることができる。そして、コンピュータ１は、有効プロセステーブルに、そのプロセスのＩＤを格納する（Ｓ４）。この処理が、本発明の所定の状態にあるアプリケーションプログラムを検知するステップに相当する。その後、コンピュータ１は、制御をＳ１に戻す。
【００２５】
図６に、スイッチモジュール１１の処理を示す。この処理では、コンピュータ１は、アプリケーションプログラムのプロセスからイベント読み出し要求を受信する（Ｓ１１）。
【００２６】
すると、コンピュータ１は、そのイベント読み出し要求から要求元のプロセスのプロセスＩＤを取得する（Ｓ１２）。
【００２７】
そして、コンピュータ１は、有効プロセステーブルを参照し、そのプロセスＩＤが現在有効プロセステーブルに格納されているか否かを判定する（Ｓ１３）。
【００２８】
そのプロセスＩＤが、有効プロセステーブルに格納されている場合、コンピュータ１は、コンピュータ１で発生しているイベントをそのプロセスに送信する（Ｓ１４）。ここで、イベントは、例えば、デバイスドライバで検知され、スイッチモジュール１１（例えば、所定のキュー等）に蓄積され、プロセスに未送信のイベントである。この処理が、本発明の所定の状態にあるアプリケーションプログラムに対して所定の機能を提供するステップに相当する。
【００２９】
イベントは、例えば、ウィンドウ上の所定のＧＵＩ部品がポインティングデバイス２で押下された等の情報である。ただし、単純に、ポインティングデバイス２が押下されたこと、およびその押下位置の画面上の座標をイベントとして送信するようにしても構わない。
【００３０】
以上述べたように、本実施形態の情報処理装置によれば、プロセスの状態（例えば、ウィンドウが最上位の階層にあるか、ウィンドウがフォーカスされているか等）により、有効プロセスＩＤを管理する。そして、スイッチモジュール１１は、有効プロセスＩＤが登録されているプロセスに機能を提供する。このように、プロセスＩＤ等の各プロセスをユニークに識別する情報によって、プロセスを識別することにより、プロセスから呼び出される共通のライブラリ１０がそれぞれのプロセスに対して固有の処理を実行するように制御できる。その場合に、それぞれのプロセスごとに異なるライブラリ１０を用意する必要がなく、共有ライブラリとしてシステムで共通のライブラリを用意すればよい。
【００３１】
図６の例では、アプリケーションのプロセスからのイベント読み出し要求に応答して、システム（例えば、所定のキュー）に蓄積されているイベントを送信する処理の例を示した。しかし、このような処理に代えて、イベントの発生をトリガとして、そのときに、有効プロセスＩＤに登録されているプロセスにイベントを送信するようにしても構わない。
【００３２】
図７に、そのような処理の例を示す。この処理では、コンピュータ１は、イベントの発生を監視している（Ｓ２１）。イベントが発生すると（Ｓ２２でＹＥＳの場合）、コンピュータ１は、有効プロセステーブルから有効なアプリケーションのプロセスのＩＤを取得する（Ｓ２３）。そして、コンピュータ１は、そのプロセスにイベントを送信する。このような処理によっても、共有ライブラリ１０を用いて特定プロセスの固有の処理を実現できる。
【００３３】
なお、本発明は、以上のいずれかの処理をコンピュータに実行させるプログラムであってもよい。また、本発明は、そのようなプログラムを記録したコンピュータ読み取り可能な記録媒体、例えば、ＣＤ−ＲＯＭ、ＤＶＤ、フラッシュメモリカード等であってもよい。また、本発明は、コンピュータがそのような処理を実行する方法として実現してもよい。
【図面の簡単な説明】
【００３４】
【図１】プロセスごとにライブラリを用意したシステムの構成例を示す図である。
【図２】ウィンドウマネージャによるプロセス管理の例を示す図である。
【図３】本発明の一実施の形態に係る情報処理装置の機能概要を示す図である。
【図４】ＯＳが管理するプロセス管理テーブルの例を示す図である。
【図５】有効プロセステーブルを管理する管理プログラムの処理を示す図である。
【図６】スイッチモジュールの処理を示す図である。
【図７】変形例に係るスイッチモジュールの処理を示す図である。
【符号の説明】
【００３５】
１  コンピュータ
２  ポインティングデバイス
３  表示装置
１０  ライブラリ
１１  スイッチモジュール
【図１】
2007265228.tif 000003
【図２】
2007265228.tif 000004
【図３】
2007265228.tif 000005
【図４】
2007265228.tif 000006
【図５】
2007265228.tif 000007
【図６】
2007265228.tif 000008
【図７】
2007265228.tif 000009