(57)【要約】【課題】アプリケーションプログラムから送信されるイベント情報が全て他のアプリケーションプログラムに送信されることを可能とする携帯電話端末を提供する。【解決手段】制御部２において、受信部２１は、アプリケーションプログラムＡから発生されたイベント情報を受信する。イベントコード付与部２２は、受信部２１からイベント情報を受信した場合には、受信したイベント情報の所定領域に個別のイベントコードを書き込む。イベント情報中継記憶部２４は、イベントコードが書き込まれたイベント情報を複数記憶可能であって、複数記憶する場合は互いに異なるイベント情報のみについて記憶する。送信部２３は、イベント情報中継記憶部２４に記憶されるイベント情報を、記憶されている順に通知対象のアプリケーションプログラムＢに送信する。【選択図】    図１
2006163612.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションプログラムを切り替えて動作させるアプリケーション制御部を有する携帯電話端末において、
アプリケーションプログラムに対してのイベントが生じたとき、イベント通知対象とする通知対象アプリケーションプログラムの種別とイベント種別とが記述されるイベント情報を発生するイベント発生部と、
前記イベント発生部からの前記イベント情報を受信するイベント受信部と、
前記イベント受信部にて受信したイベント情報の所定領域に個別のイベントコードを書き込むイベントコード付与部と、
前記イベントコード付与部にてイベントコードが付与されたイベント情報を複数記憶可能であって、複数記憶する場合は互いに異なるイベント情報のみについて記憶するイベント情報記憶部と、
前記イベント情報記憶部に記憶される前記イベント情報を、それぞれのイベント情報が指定する通知対象アプリケーションプログラムに対し、前記イベント情報記憶部に記憶された順に一つずつ送出するイベント送信部と、
を有することを特徴とする携帯電話端末。
【請求項２】
前記アプリケーション制御部は、
前記イベント情報が指定する通知対象アプリケーションプログラムが動作状態でない場合には動作状態に切り替え、
前記イベント送信部は、前記アプリケーション制御部にて前記通知対象アプリケーションプログラムを動作状態に切り替えた後に前記イベント情報を送信する、ことを特徴とする請求項１に記載の携帯電話端末。
【請求項３】
前記コード付与部は、前記イベント送信部にて前記イベント情報を送信する際に、当該イベントコードから前記イベントコードを削除し、
前記通知対象アプリケーションプログラムは、前記イベント情報を受信すると、当該イベント情報に記述される前記イベント種別に基づく処理を行うことを特徴とする請求項１または２に記載の携帯電話端末。
【請求項４】
前記イベントコードは、連続性のある値であって、
前記コード付与部は、少なくとも前回生成したイベントコードを保持し、新たなイベントコード生成を行う際には前回生成したイベントコードの値に対し、カウントアップすることで新たなイベントコード候補として指定し、当該イベントコード候補の値が所定値まで達する場合には初期値を指定し、前記イベントコード候補が新たなイベントコードとして生成されることを特徴とする請求項１から３のいずれか一に記載の携帯電話端末。
【請求項５】
前記コード付与部は、生成したイベントコードについて、当該イベントコードが付与されるイベント情報が指定する通知対象アプリケーションプログラムに送信されるまで保持し、新たなイベントコードを生成する際にイベントコード候補が指定されると、当該イベントコード候補の値が保持されているイベントコードにて既に使用されていない場合に新たなイベントコードとして決定することを特徴とする請求項４に記載の携帯電話端末。
【請求項６】
複数のアプリケーションプログラムを切り替えて動作させるアプリケーション制御部を有する携帯電話端末におけるイベント管理方法において、
アプリケーションプログラムに対してのイベントが生じたとき、イベント通知対象とする通知対象アプリケーションプログラムの種別とイベント種別とが記述されるイベント情報を発生するイベント発生工程と、
発生した前記イベント情報を受信するイベント受信工程と、
受信したイベント情報の所定領域に個別のイベントコードを書き込むイベントコード付与工程と、
前記イベントコードが付与されたイベント情報を、互いに異なるイベント情報についてのみ複数記憶するイベント情報記憶工程と、
前記記憶されるイベント情報を、記憶された順に一つずつそれぞれのイベント情報が指定する通知対象アプリケーションプログラムに対し、送出するイベント送出工程と、
を有することを特徴とするイベント管理方法。
【請求項７】
複数のアプリケーションプログラムを切り替えて動作させるアプリケーション制御部を有する携帯電話端末のコンピュータに、
アプリケーションプログラムに対してのイベントが生じたとき、イベント通知対象とする通知対象アプリケーションプログラムの種別とイベント種別とが記述されるイベント情報を発生するイベント発生手順と、
発生した前記イベント情報を受信するイベント受信手順と、
受信したイベント情報の所定領域に個別のイベントコードを書き込むイベントコード付与手順と、
前記イベントコードが付与されたイベント情報を、互いに異なるイベント情報についてのみ複数記憶するイベント情報記憶手順と、
前記記憶されるイベント情報を、記憶された順に一つずつそれぞれのイベント情報が指定する通知対象アプリケーションプログラムに対し、送出するイベント送出手順と、
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムの実行を制御する携帯電話端末及びタスク管理方法並びにそのコンピュータプログラムに関する。
【背景技術】
【０００２】
従来の技術では、シングルタスクオペレーティングシステムにおいて、複数のアプリケーションプログラムを同時に起動させるマルチタスク的な動きをさせるために、オペレーティングシステムのメモリ上で動作しているアプリケーションプログラムについてのスレッド履歴を記憶しておく。そして、次に動作を要求するアプリケーションプログラムがあるか否かをオペレーティングシステムにてタイマー等により監視する。次に動作を要求するアプリケーションプログラムがある場合には、アプリケーションプログラムのスレッド履歴に当該アプリケーションプログラムを追加し、当該アプリケーションプログラムにオペレーティングシステムが制御を切り替える。そして、元に使用していたアプリケーションプログラムを再び操作するために切り替えるときは、蓄積されたスレッド履歴において最先に蓄積されたものから順に読み出して１つずつ処理を切り替える形にして実現していた（例えば、特許文献１）。
【０００３】
特許文献１に示す技術は、処理能力的に携帯電話端末よりも余裕があり、かつ、着信のような突発的割り込み制御の発生率が低いパーソナルコンピュータ上での制御例である。
携帯電話端末における従来技術では、複数のアプリケーションプログラムの起動指示がタイマー等から指定されたとしても、１つずつの処理が完了しない限りは、次のアプリケーションプログラムの処理に入ることができなかった。さらに、元のアプリケーションプログラムの状態を複数保持しておくこともできなかった。そのため、従来技術である特許文献２に示す携帯端末では、着信等の事象発生時にアプリケーションプログラムの種別または状態によって個別に監視して制御を行っている。
【特許文献１】特開平６−４４０８４号公報
【特許文献２】特開２００３−３１９０２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、携帯電話端末におけるマルチタスク的な動きとは、携帯電話端末を利用するユーザにとっては複数のアプリケーションプログラムが同時に起動しているようにみえるが、オペレーティングシステムにおいては１つのアプリケーションプログラムしか動作しないように制御することによって実現されるものである。このような制御を行うのは、携帯電話端末は、パーソナルコンピュータのように豊富なメモリが実装されておらず、複数のアプリケーションプログラムを同時に起動するとメモリが不足してしまうからである。
【０００５】
このようなマルチタスク的な制御が実装されている携帯電話端末では、例えば、ユーザのキーボード操作によって入力されたキー情報を検出するアプリケーションプログラムと、当該アプリケーションプログラムからキー情報を受信する他のアプリケーションプログラムとが存在する場合に、以下のような制御によってキー情報が送信される。最初に、キー情報を検出するアプリケーションプログラムがオペレーティングシステムにキー情報を含むイベント情報を送信して、終了する。オペレーティングシステムは、イベント情報に含まれる送信先情報に基づいて、他のアプリケーションプログラムが起動され、オペレーティングシステムが起動された他のアプリケーションプログラムへイベント情報を送信する。つまり、オペレーティングシステムによってアプリケーションプログラム間の情報の送受信が中継されることになる。
【０００６】
しかしながら、携帯電話端末に用いられるオペレーティングシステムでは、アプリケーションプログラムからのイベント以外に、着信によるイベント情報などを受信するため、イベント情報を記憶しておくメモリ容量が不足してしまうことを考慮し、同一のイベント情報がメモリに記憶されている場合には、受信したイベント情報を削除してメモリ容量を節約するといった仕組みが実装されている。そのため、アプリケーションプログラムの間で、本来通知されるべき数のイベント情報が通知されず、例えば、複数回同じキーを押すことで入力する情報を決定するといった携帯電話端末のアプリケーションプログラムでは不具合が生じてしまうという問題がある。
【０００７】
本発明は、上記問題を解決するためになされたもので、その目的は、アプリケーションプログラムから送信されるイベント情報が全て他のアプリケーションプログラムに送信されることを可能とする携帯電話端末、イベント管理方法並びにコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために、本発明は、複数のアプリケーションプログラムを切り替えて動作させるアプリケーション制御部を有する携帯電話端末において、アプリケーションプログラムに対してのイベントが生じたとき、イベント通知対象とする通知対象アプリケーションプログラムの種別とイベント種別とが記述されるイベント情報を発生するイベント発生部と、前記イベント発生部からの前記イベント情報を受信するイベント受信部と、前記イベント受信部にて受信したイベント情報の所定領域に個別のイベントコードを書き込むイベントコード付与部と、前記イベントコード付与部にてイベントコードが付与されたイベント情報を複数記憶可能であって、複数記憶する場合は互いに異なるイベント情報のみについて記憶するイベント情報記憶部と、前記イベント情報記憶部に記憶される前記イベント情報を、それぞれのイベント情報が指定する通知対象アプリケーションプログラムに対し、前記イベント情報記憶部に記憶された順に一つずつ送出するイベント送信部と、を有することを特徴とする携帯電話端末である。
【０００９】
また、本発明は、上記に記載の発明において、前記アプリケーション制御部は、前記イベント情報が指定する通知対象アプリケーションプログラムが動作状態でない場合には動作状態に切り替え、前記イベント送信部は、前記アプリケーション制御部にて前記通知対象アプリケーションプログラムを動作状態に切り替えた後に前記イベント情報を送信する、ことを特徴とすることが好ましい。
【００１０】
また、本発明は、前記コード付与部は、前記イベント送信部にて前記イベント情報を送信する際に、当該イベントコードから前記イベントコードを削除し、前記通知対象アプリケーションプログラムは、前記イベント情報を受信すると、当該イベント情報に記述される前記イベント種別に基づく処理を行うことを特徴とすることが好ましい。
【００１１】
また、本発明は、上記に記載の発明において、前記イベントコードは、連続性のある値であって、前記コード付与部は、少なくとも前回生成したイベントコードを保持し、新たなイベントコード生成を行う際には前回生成したイベントコードの値に対し、カウントアップすることで新たなイベントコード候補として指定し、当該イベントコード候補の値が所定値まで達する場合には初期値を指定し、前記イベントコード候補が新たなイベントコードとして生成されることを特徴とすることが好ましい。
【００１２】
また、本発明は、上記に記載の発明において、前記コード付与部は、生成したイベントコードについて、当該イベントコードが付与されるイベント情報が指定する通知対象アプリケーションプログラムに送信されるまで保持し、新たなイベントコードを生成する際にイベントコード候補が指定されると、当該イベントコード候補の値が保持されているイベントコードにて既に使用されていない場合に新たなイベントコードとして決定することを特徴とすることが好ましい。
【００１３】
本発明は、複数のアプリケーションプログラムを切り替えて動作させるアプリケーション制御部を有する携帯電話端末におけるイベント管理方法において、アプリケーションプログラムに対してのイベントが生じたとき、イベント通知対象とする通知対象アプリケーションプログラムの種別とイベント種別とが記述されるイベント情報を発生するイベント発生工程と、発生した前記イベント情報を受信するイベント受信工程と、受信したイベント情報の所定領域に個別のイベントコードを書き込むイベントコード付与工程と、前記イベントコードが付与されたイベント情報を、互いに異なるイベント情報についてのみ複数記憶するイベント情報記憶工程と、前記記憶されるイベント情報を、記憶された順に一つずつそれぞれのイベント情報が指定する通知対象アプリケーションプログラムに対し、送出するイベント送出工程と、を有することを特徴とするイベント管理方法である。
【００１４】
本発明は、複数のアプリケーションプログラムを切り替えて動作させるアプリケーション制御部を有する携帯電話端末のコンピュータに、アプリケーションプログラムに対してのイベントが生じたとき、イベント通知対象とする通知対象アプリケーションプログラムの種別とイベント種別とが記述されるイベント情報を発生するイベント発生手順と、発生した前記イベント情報を受信するイベント受信手順と、受信したイベント情報の所定領域に個別のイベントコードを書き込むイベントコード付与手順と、前記イベントコードが付与されたイベント情報を、互いに異なるイベント情報についてのみ複数記憶するイベント情報記憶手順と、前記記憶されるイベント情報を、記憶された順に一つずつそれぞれのイベント情報が指定する通知対象アプリケーションプログラムに対し、送出するイベント送出手順と、を実行させるためのコンピュータプログラムである。
【発明の効果】
【００１５】
この発明によれば、アプリケーションプログラムから送信されるイベント情報が全て他のアプリケーションプログラムに送信されることを可能とする携帯電話端末、イベント管理方法並びにコンピュータプログラムを得ることが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施形態による携帯電話端末を図面を参照して説明する。
図１は、本実施形態による携帯電話端末１を示した概略ブロック図である。
図１において携帯電話端末１は、無線により公衆通信網に接続する無線通信部４０や、液晶画面を備えた表示部４１や、ユーザの入力を受けるキー操作部４２や、音声を出力する音声処理部４３を携帯電話としての基本的な機能として備えている。
また、携帯電話端末１は、アプリケーションプログラム３０の起動、一時停止、終了などを制御する制御部２を備えており、当該アプリケーションプログラム３０は、上記の無線通信部４０や表示部４１やキー操作部４２や音声処理部４３と協働して動作する。
【００１７】
制御部２において、アプリケーションプログラム３０は、例えば、無線通信部４０を介して着信受信し、音声処理部４３から着信音を鳴動させるなどの電話着信処理を行うアプリケーションプログラムや、ユーザがキー操作部４２を操作することによって入力された氏名や電話番号などを記録し、また内部の記憶領域に記憶している氏名や電話番号などの情報を表示部４１に表示する電話帳のアプリケーションプログラムや、キー操作部４２における入力を検出するアプリケーションプログラムなどが存在する。以下の説明では、例えばキー操作部４２における入力を検出し、他のアプリケーションプログラムにキー情報を含むイベントを送信するアプリケーションプログラムとしてアプリケーションプログラムＡを対応させ、また、キー情報を含むイベントを受信して内部の記憶領域に記録したり、あるいは表示部４１に表示するアプリケーションプログラムとしてアプリケーションプログラムＢを対応させて説明する。
【００１８】
なお、上述したイベント情報を発生するイベント発生部は、アプリケーションプログラムＡに該当する。
【００１９】
イベント中継部２０は、アプリケーションプログラムＡから送信されたイベント情報を受信し、アプリケーション制御部１０によって当該イベント情報が削除されないように重複しないイベントコードを付加し、また、アプリケーション制御部１０からのイベント情報を受信した場合には、イベント情報からイベントコードを削除してアプリケーションプログラムＢへイベント情報を送信する。
【００２０】
イベント中継部２０において、受信部２１は、アプリケーションプログラムＡからイベント情報を受信する。イベントコード付与部２２は、受信部２１からイベント情報を受信し、イベント情報中継記憶部２４に記憶されているイベント情報に基づいて、記憶されているイベント情報と同一とならないように、受信したイベント情報にイベントコードを付加して、イベント情報中継記憶部２４に記録し、当該イベント情報をアプリケーション制御部１０へ送信する。また、イベントコード付与部２２は、アプリケーション制御部１０から受信したイベント情報を受信し、当該イベント情報からイベントコードを削除して送信部２３へ送信する。送信部２３は、イベントコード付与部２２から受信したイベント情報をアプリケーションプログラムＢへ送信する。
【００２１】
アプリケーション制御部１０は、制御部２に実装されているオペレーティングシステム（以下、ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）に相当し、アプリケーションプログラム３０の起動、停止を行う。アプリケーション制御部１０において、イベント受信部１１は、イベント中継部２０からイベント情報を受信し、上述したイベント情報記憶部に該当するイベントキュー１２へ記録する。また、受信したイベント情報と同一のイベント情報がイベントキュー１２に存在する場合には、受信したイベント情報を削除する。イベントキュー１２は、キュー型の記憶領域であり、先に記録されたイベント情報から先にイベント送信部１３が読み出せる構造になっている。イベント送信部１３は、イベントキュー１２に先に記録されたイベント情報を順に読み出してイベント中継部２０へ送信する。
【００２２】
上述した本実施形態の携帯電話端末１における複数のアプリケーションプログラムを制御する構成の概略について以下に説明する。本実施形態の携帯電話端末１ではシングルタスク制御しか出来ないＯＳ上で、マルチタスク的な動作を行わせるよう構成されている。
つまり、アプリケーション制御部１０は、動作するアプリケーションプログラムを緻密に切り替えることにより、動作中のアプリケーションプログラムが一つだけとなるように制御することが生じる。（ただし、いくつかのアプリケーションプログラムについてはＯＳの制御下を離れて構成されるアプリケーションプログラムもあり、例えば頻繁に利用されるキー検出アプリケーションプログラムなどはこれに該当する。しかしながら、キー検出アプリケーションプログラムが検出したキー検出結果を含むイベント情報を通知すべき対象となるアプリケーションプログラム側がＯＳによって制御されている場合は、他のアプリケーションプログラムから送信される更に別のイベント情報との通知順序などを管理しなければならず、キー検出結果を含むイベント情報もやはりＯＳ経由で伝えなければならない。）
【００２３】
ＯＳの制御下で複数のアプリケーションプログラムがマルチタスク的に動作し、お互いに指示しあう関係にあるアプリケーションプログラム同士は、同時に動作することがないため、このような指示を中継する手段が必要となる。
例えば、受信したメールを表示しており、なおかつこのメールに電話番号が記載されており、この電話番号に対する発呼をメールに記載されている電話番号を選択することによって発呼するＰＨＯＮＥ−ＴＯ機能を用いて行う場合に、上記の中継する手段が用いられる。この場合、メールアプリケーションプログラム動作中に、受信メール中の電話番号をキー操作部４２にて選択して決定する操作がなされるため、電話発呼アプリケーションプログラムに対し、選択された電話番号を通知するとともに発呼も指示する必要がある。発呼が指示されたためにメールアプリケーションプログラムは復帰する際に用いるパラメータを復帰情報として保持した上で一時停止して、電話発呼アプリケーションプログラムが起動する事となる。ところが、動作中のアプリケーションプログラムは１つであり、この場合はメールアプリケーションプログラムだけであり、電話発呼アプリケーションプログラムは動作していないのでせっかくの電話番号の通知も発呼指示も受信できない。よって、互いのアプリケーションを管理するアプリケーション制御部１０が電話番号の通知や発呼指示を中継する必要がある。
【００２４】
上記のような中継を行うため、アプリケーション制御部１０のイベントキュー１２では、メールアプリケーションプログラムから送出される電話番号を示す情報と、発呼指示の情報とを一旦蓄積し、この間に動作するアプリケーションプログラムを切り替え、切り替えが済むと、イベントキュー１２に入力された順番に従って（まず電話番号の通知、次に発呼指示の順）電話発呼アプリケーションに送出する。このように、アプリケーション制御部１０によって中継することで、マルチタスク的な処理を実行することを可能としている。
【００２５】
ここで、各アプリケーションプログラム間の指示内容を含むイベント情報に関して、あらかじめそのイベント種別ごとに種別コードというＩＤが付されている。各アプリケーションプログラム間の中継処理途中でこのイベント情報を蓄積する際には、イベント情報が複数ある場合、それぞれで同一の情報が蓄積されないようにすることでイベントキュー１２に必要なメモリ量を極力少なく済むよう管理されている。
【００２６】
通常は、送信元アプリケーションプログラム、送信先アプリケーションプログラム、イベント種別のいずれかが異なるため、これらの集合としてのイベント情報は結果的に異なるものとなり、イベントキュー１２において互いが削除されることはない。元々、多くのアプリケーションプログラムがこのようなＯＳにおいてマルチタスク的に動作管理されることを前提に設計されてはおらず、１つだけがＯＳ上で動作状態のときに、他のアプリケーションプログラムが動作するときはＯＳが管理しない状態で動作されるものであった。
つまり、送信元アプリケーションプログラムから送信先アプリケーションプログラムに直接送信される設計であったため、送信先アプリケーションプログラムの切り替えなどのためにイベントキュー１２に蓄積してイベント情報の入出力を管理する事も無く、即時送信元アプリケーションプログラムから送信先アプリケーションプログラムにイベント情報が到達するため、上述した同一のイベント情報を記憶しないイベントキューの構成で充分に対応できていた。
【００２７】
しかし、複数のアプリケーションプログラムを切り替えて擬似的なマルチタスク動作をさせる場合、イベントキュー１２への情報の蓄積管理をより緻密に行う必要が生じるが、アプリケーションプログラムは無線通信部４０によって通信網に接続されるサーバ（不図示）からダウンロードして取得される汎用のアプリケーションプログラムもあり、アプリケーションプログラム側に改良を加えてイベントキュー１２の蓄積管理に対応することは非常に難しいと言える。
【００２８】
なお、本実施形態では、アプリケーションプログラムＡがイベント情報を発生させる形態について示したが、本発明は、それに限られるものではなく、例えば、ＯＳがイベント情報を発生させる場合や、ＯＳのタスク以外のタスクがイベント情報を発生させるようにしてもよい。
【００２９】
ところで、タスクとはアプリケーションプログラム３０や音声処理部４３などに対し、動作開始や終了、および各種変化を命令する処理系列のことであって、ゲームプログラムの起動・演算・終了など様々存在する。タスクには、連続起動タスクと、連続起動でないタスク（以下、非連続起動タスク）が存在する。連続起動タスクとは、中断可能なタスクであって、一瞬だけでも手を離すことの出来る処理を行うタスクであり、具体的には着信制御タスクなどがある。着信制御タスクの処理としては、着信発生すると、発信者の番号抽出、発信者番号の記録、発信者番号による着信音の選出（鳴り分け）、着信音の停止など、処理が切り分かれているものであり、切り分けられた処理のそれぞれの間であれば一瞬であれば手を離すことが出来る。例えば、音声処理部４３に着信音鳴動を命令してから音声処理部４３は鳴動を開始し、次の命令（鳴動停止など）が生じるまでは音声処理部４３は鳴動を継続できるので手を離せる。ただし、次の命令を監視するためにすぐに監視状態にならねばならない。非連続起動タスクとは、逆に手を離すことの出来ないタスクであり、具体的にはゲーム用のタスクなどが有る。これは常に演算を行っておらねばならず、非連続起動タスクと言える。ただし、プログラムの組み方によっては手を離せる瞬間を作ることも可能である。
【００３０】
図２は、イベント情報のデータ構成を示した図である。イベント情報５０は、送信先情報５１、送信元情報５２、イベントデータ領域５３から構成されている。送信先情報５１には、イベント情報を送信する先のアプリケーションプログラムに予め一意に付与されている識別情報が設定される。送信元情報５２には、イベント情報を送信したアプリケーションプログラムに付与されている識別情報が設定される。イベントデータ領域５３は、データ領域５３−１と、上述した所定領域に該当するイベントコード領域５３−２から構成される。データ領域５３−１には、イベント種別としてアプリケーションプログラム間で送受信される情報が設定され、例えば、キー操作部４２からのキー情報を検出するアプリケーションプログラムからのイベント情報である場合には、キー情報の種別コードが設定される。イベントコード領域５３−２は、上述した所定領域に該当し、イベントコード付与部２２によって付加されるイベントコードが設定される。
【００３１】
イベント情報としては、例えば、電話発呼アプリケーションに対するキー操作部４２からの電話番号入力であった場合には、そのキー操作一つ一つについて、生成される情報である。例えば、「５」キーの入力であった場合には、送信先情報５１に電話発呼アプリケーションのＩＤが、送信元情報５２にはキー操作部４２が、データ領域５３−１には「５」キーの入力であることを示すコードが、イベントコード領域５３−２にはイベントコード付与部２２にて付されるイベントコードが格納されてイベント情報が形成される。
【００３２】
図３及び図４は、従来の携帯電話端末におけるイベント管理方法と、本実施形態の携帯電話端末１におけるイベント管理方法の違いを説明するための概略図である。
【００３３】
図３は、携帯電話端末におけるイベント管理方法の基本動作を示した概略図である。
携帯電話端末においては、上述したイベントコード付与部２２が存在しないため、アプリケーションプログラムＡ及びＢとアプリケーション制御部１０との間で直接イベント情報が送受信されるため、例えば、図３に示すように、イベントキュー１２にイベント情報Ａ、Ｂ、Ｃが存在した場合に、アプリケーション制御部１０がさらにイベント情報Ｂを受信すると、アプリケーション制御部１０のイベント受信部１１が、イベントキュー１２に既にイベント情報Ｂが存在しているため、受信したイベント情報Ｂを削除する処理が行われ、イベントキュー１２に記憶されているイベント情報に変化が生じない。この基本動作によりイベントキュー１２へのメモリ使用量を極力小さくするように構成されている。
【００３４】
図４は、本実施形態の携帯電話端末１におけるイベント管理方法を示した概略図である。本実施形態の携帯電話端末１においては、イベントコード付与部２２が存在し、イベントコードが付与されるため、イベントキュー１２に記憶されるイベント情報は送信先情報５１と、送信元情報５２と、データ領域５３−１に設定されるイベント種別とが同一であっても同一のイベント情報とならず、アプリケーション制御部１０のイベント受信部１１が受信したイベント情報は削除されず、全てイベントキュー１２に記憶される。これによって、アプリケーションプログラムの間でイベント情報の不足に基づく異常処理の発生を防ぐことが可能となる。
【００３５】
次に、図５から図８を参照して、イベント中継部２０の処理について説明する。
図５は、イベント中継部２０によるイベントコード付与処理を示したフローチャートである。最初に、イベント中継部２０の受信部２１がアプリケーションプログラムＡからアプリケーションプログラムＢへのイベント情報を受信する。イベント中継部２０のイベントコード付与部２２は、受信部２１が受信したイベント情報を受信し、後述するイベントコード生成判定処理のサブルーチンを呼び出して重複しないイベントコードを生成する（ステップＳａ１）。イベントコード付与部２２は、生成したイベントコードをイベント情報のイベントコード領域５３−１に記録する。そして、当該イベント情報をイベント情報中継記憶部２４に記録する（ステップＳａ２）。
【００３６】
イベント情報中継記憶部２４に記録できなかった場合には、エラーコードとして「保存失敗」を設定し、記録できた場合にはエラーコードとして「保存成功」を設定する（ステップＳａ３）。次に、イベントコード付与部２２は、エラーコードを判定し（ステップＳａ４）、エラーコードが「保存失敗」の場合には、戻り値に「ＦＡＬＳＥ」を設定し、処理を終了する（ステップＳａ５）。
【００３７】
エラーコードが「保存成功」の場合には、アプリケーション制御部１０にイベント情報を送信する（ステップＳａ６）。イベントコード付与部２２は、イベント情報をアプリケーション制御部１０に送信できたか否かを判定する（ステップＳａ７）。送信が失敗した場合には、イベント情報中継記憶部２４からイベント情報５０の読み出しを行う（ステップＳａ８）。そして、エラーコードに「送信失敗」を設定し（ステップＳａ９）、戻り値に「ＦＡＬＳＥ」を設定し、処理を終了する（ステップＳａ１０）。
【００３８】
一方、イベントコード付与部２２は、アプリケーション制御部１０に送信が成功した場合には、戻り値に「ＴＲＵＥ」を設定して処理を終了する（ステップＳａ１１）。
【００３９】
イベント中継部２０は、エラーコードと戻り値によって、イベントコード付与部２２における処理の結果を得ることができ、これらの情報を履歴として保存しておくことで、異常処理の原因を解析する際に利用することが可能となる。
【００４０】
図６は、イベントコード付与部２２によって行われる上述したイベントコード生成判定処理のサブルーチンを示したフローチャートである。
最初に、イベントコード付与部２２は、後述するイベントコード生成処理によりイベントコードを生成する（ステップＳｂ１）。そして、イベントコード変数にイベントコード生成処理の戻り値であるイベントコードを設定する（ステップＳｂ２）。そして、イベントコード変数を引数として、後述するイベントコード重複判定処理を行う（ステップＳｂ３）。そして、イベントコード重複判定処理の結果としてイベントコードが重複する場合には、ステップＳｂ１に戻って、再びイベントコードを生成する。一方、イベントコードが重複しない場合には、当該イベントコードは重複しないイベントコードとして図５の処理においてイベント情報に設定される。
【００４１】
図７は、イベントコード付与部２２によって行われるイベント生成処理のサブルーチンを示したフローチャートである。イベントコード付与部２２は、図５の処理によって付与されたイベントコード変数を内部に記憶している。つまり、１つ前にイベント情報に付与したイベントコードを記憶している。最初に、イベントコード変数に１加えた値が、予め設定されたイベントコードの最大値と最小値との範囲内の数値であるか否かを判定する。ここで、イベントコードの最大値と最小値は、イベントコード領域５３−２に割り当てられたビット数に依存する（ステップＳｃ１）。イベントコード変数に１加えた値が最大値と最小値の範囲内の数値である場合には、イベントコード変数に１加えた値をイベントコード変数に記録し、処理を終了する（ステップＳｃ２）。一方、イベントコード変数に１加えた値が範囲外である場合には、イベントコード変数にイベントコードの最小値を記録し、処理を終了する（ステップＳｃ３）。
【００４２】
図８は、イベントコード付与部２２によって行われるイベントコード重複判定処理のサブルーチンを示したフローチャートである。イベントコード付与部２２は、戻り値に「重複しない」を設定する（ステップＳｄ１）。そして、判定処理の回数をカウントするためのループカウンタに０を設定する（ステップＳｄ２）。次に、イベントコード付与部２２は、イベント情報中継記憶部２４に記録されている全レコード数を検出する。そして、ループカウンタが当該全レコード数より小さい間は以下のＳｄ４とＳｄ５の処理を繰り返す（ステップＳｄ３）。
【００４３】
ループカウンタが当該レコードの数より小さい場合には、イベントコード変数のイベントコードがループカウンタに対応するイベント情報中継記憶部２４に記憶されているイベント情報に設定されているイベントコードと重複するか否かを判定する。ここで、イベント情報中継記憶部２４は、記憶しているイベント情報に行番号が０番からつけられており、ループカウンタに対応する行番号のイベント情報を読み出して、判定を行う（ステップＳｄ４）。イベントコード付与部２２は、イベントコード変数のイベントコードと読み出したイベント情報のイベントコードが重複する場合には、戻り値に「重複する」を設定して処理を終了する（ステップＳｄ６）。一方、イベントコード付与部２２は、イベントコード変数のイベントコードと読み出したイベント情報のイベントコードが重複しない場合には、ループカウンタの値を１増やしてステップＳｄ３に戻る（ステップＳｄ５）。ステップＳｄ３の処理において、ループカウンタがイベント情報中継記憶部２４に記憶されている全レコード数と同じ値になった場合には、イベントコード変数のイベントコードが重複しなかったと判断して処理を終了する。
【００４４】
これらの図５〜８の処理により、個別のイベントコードがイベントコード領域５３−２に設定され、送信先情報５１と、送信元情報５２と、データ領域５３−１に設定されるイベント種別とが同じであってもイベントキュー１２にて削除されてしまうことはない。また、エラーコードにて正常にアプリケーション制御部１０に受け渡しが出来たかどうかを監視しているため、イベント中継部２０にて不具合による二重送信してしまう心配も無く処理することが出来る。また、当該イベントコードの生成の処理に関して、キー操作検出などの連続して同じイベント種別の生じやすいアプリケーションプログラムから情報に関してのみに利用するようにするとなお好ましい。
【００４５】
例えばイベント中継部２０は、同じイベント種別の生じやすいアプリケーションプログラムをテーブル化して別途記憶しておく。そしてイベント情報を受信すると、まず、そのイベント送信元を確認し、これが記憶してあるアプリケーションプログラムからのものであるかどうかを判定する。ここで、記憶してあるアプリケーションプログラムからのものならば、先に述べた図５〜８の処理により、個別のイベントコード付与処理を行うが、記憶してあるアプリケーションプログラムからのものでない場合はイベントコードを付与しないか、またはイベントコードを付与するべき領域を空欄、あるいは固定のコードを付与するよう処理する。
【００４６】
これにより、イベントキュー１２にこのイベント情報が到達した際、送信先情報５１と、送信元情報５２と、データ領域５３−１に設定されるイベント種別とが同一であればイベントコードによる差別化がなされないため基本動作に従い、同一のイベント情報は削除される。キー検出アプリケーションなどであれば連続した同じキーの入力が生じることが多々存在するが、待ち受けアプリケーションプログラムを通知対象として発着信アプリケーションプログラムの通知する「着信発生」などのイベント情報などについては、本来１回で充分であり、連続して同じイベント情報が生じることは着信時のプロトコルエラーなどによる不具合等でしか生じえず、この場合は基本動作によりイベントキュー１２上で削除される。
【００４７】
また、イベント中継部２０でイベント種別を判断し、連続して同一イベント情報の発生しうるイベント種別をあらかじめ記憶しておき、この一致により先に述べたアプリケーションプログラムによる判定のときと同様に、図５〜８の処理を行うか、イベントコードに差別化しない処理のいずれを行うかの判定をさせて同様にイベントキュー１２の有効利用が可能となる。
【００４８】
次に、アプリケーション制御部の処理を説明する。基本的にアプリケーション制御部１０はＯＳにおいて動作するアプリケーションプログラムの起動、動作（実行状態）、終了、といった処理も行い、これらの状態を別途記憶している。なお、擬似マルチタスク処理を実現するため、１つのアプリケーションプログラムの動作中に他のアプリケーションプログラムの起動の必要性が生じたときには、動作中のアプリケーションプログラムに対し一時中断、あるいは終了を行い、起動要求のあったアプリケーションプログラムを起動する処理を行う場合もある。一時中断とは、ＯＳ上では当該アプリケーションプログラムを展開した状態のまま、処理を中断しているだけの状態であって、動作状態のアプリケーションプログラムが終了、一時中断されると再び動作状態に付記することが可能である。また、終了に関しても、前回の動作状態の時のパラメータを復帰情報として記憶しておき、これを参照することにより一時中断のときと同様、前回動作時の状態で復帰させることも可能に構成されている。
【００４９】
このような構成のアプリケーション制御部１０において、イベントキュー１２にイベント情報が蓄積された状態において、アプリケーション制御部１０はまず、最も古くに蓄積されたイベント情報を読み出す。そしてイベント情報中の通知対象である送信先アプリケーションプログラムを判別する。次に、送信先アプリケーションプログラムが現在動作中であるかを確認する。動作中であるならば問題はないが、動作中でないならば、現在動作中のアプリケーションプログラムを一時中断して、当該イベント情報を通知するため通知対象となるアプリケーションプログラムを起動させる。もし、通知対象アプリケーションプログラムが一時停止状態や復帰情報を残して終了の状態であれば、これを復帰させる。そしてイベント中継部２０にこの読み出しているイベント情報を送信する。送信が完了するとイベントキュー１２から削除する。
なお、このようにイベント情報がイベント中継部２０に確実に到達し、さらにイベント中継部２０から通知対象アプリケーションプログラムにも到達（後述する）した後は、イベント情報のイベント種別によっては動作中のアプリケーションをそのままにしても良いし、先に動作していたアプリケーションに動作状態を切り戻すようアプリケーション制御部１０により制御してもよい。
【００５０】
図９は、イベント中継部２０におけるイベント中継送信処理について説明する。まず最初に、イベントコード付与部２２がイベント情報５０をアプリケーション制御部１０から受信する（ステップＳｅ１）。イベントコード付与部２２は、受信したイベント情報５０に対応するイベント情報をイベント情報中継記憶部２４から検出して削除する（ステップＳｅ２）。次に、イベントコード付与部２２が、受信したイベント情報５０からイベントコードを削除する（ステップＳｅ３）。そして、イベントコードを削除したイベント情報５０の送信先情報５１に基づいてイベント情報をアプリケーションプログラムＢに送信する（ステップＳｅ４）。
【００５１】
そして、無事にイベント情報１つが通知対象のアプリケーションプログラムＢに送信されると、アプリケーション制御部１０は、次のイベント情報をイベントキュー１２から読み出して同様の処理を行う。これらの動作を繰り返すことで二つ以上のアプリケーションプログラムを制御しつつ、互いのイベント情報を通知することが可能となる。
【００５２】
上記の構成によって、アプリケーションプログラムＡから同一のイベント情報が発生しても、イベント中継部２０によってイベントコードを付与するため、アプリケーション制御部１０によって削除されることを防ぐことが可能となる。それによって、アプリケーションプログラムＢの動作に不具合を起こさせないようにすることができる。
【００５３】
具体的な例として、上記の構成は、すばやいキー操作が連続して行われたとき、例えば、電話番号「０１２３−３３３−３３３３」をすばやく入力するような作業が行われている場合などにおいて有効となる。この場合、イベント情報としては、「０」「１」「２」のキー操作に関してはデータ領域５３−１に格納される情報が異なり、アプリケーション制御部１０によって削除されないため問題ない。しかし、その後に連続する「３」のキー入力について、タイミングによってはアプリケーション制御部１０によって削除される可能性がある。ここで、上記の構成により、「３」に関するイベント情報についても重複しないイベントコードを付与することで、同一のイベント情報にならずアプリケーション制御部１０によってイベントキュー１２から削除されることも無くなる。また、上記の構成では、全ての操作において連続して同じイベントが生じやすいとも限らないため、イベント情報が発生するごとに重複しないイベントコードを生成して付加するようにしたことで、予め非常に大量の種別コードを用意しておく必要も無くなる。さらには、連続したキー入力の生じやすいアプリケーションプログラム以外においてはそもそも当該イベントコード付与部２２の機能を利用しないようにすることも出来る。
【００５４】
また、別の具体的な例として、アプリケーションプログラムＡがキー検出アプリケーションプログラムであり、アプリケーションプログラムＢが電話発呼アプリケーションである場合について説明する。キー操作部４２が操作されるとキー検出アプリケーションはキー種別を判定し、イベント情報として、キーの種別と、この種別を示す種別コードとを割り付ける。もし、全てのアプリケーションプログラムが携帯電話端末１内部に実装済みのアプリケーションプログラムのみで完結するのであれば、予め種別コードを多数用意しておくことも考えられるが、外部から入手するようなアプリケーションプログラムが実行されることのある携帯電話端末１においては、どのようなイベント情報が発生するのかわからないため予め用意しておくことが出来ないことも考えられる。
【００５５】
さらに、外部から入手するようなアプリケーションプログラムは、上記のようなアプリケーション制御部１０を利用したマルチタスク的な処理がされることなど考慮されておらず、イベントキュー１２などにて蓄積することも考慮されていない。つまり、イベントキュー１２上に同一イベント情報が複数入力される可能性の有ることなどは考慮されていない。このとき上記の構成を利用することで、このような外部から取得するアプリケーションプログラムが存在する場合であっても、イベントキュー１２で削除されることを防ぐことができるだけでなく、極力イベントキュー１２の量を増やしすぎることが無いようにすることができる。
【００５６】
なお、本発明は上記の実施の形態に限られるものではなく、イベント送信部１３が、イベント中継部２０を介さずに直接アプリケーションプログラムＢにイベントコード領域５３−２に記憶されているイベントコードのみを送信するようにしてもよく。その場合には、当該イベントコードを受信したアプリケーションプログラムＢが、受信したイベントコードに基づいてイベント中継部２０に元のイベント情報を要求する構成となる。
【００５７】
また、イベント情報をイベント情報中継記憶部２４に記録していることで、現在中継しているイベント情報のイベントコードに基づいて重複しないイベントコードを生成することができ、また、イベント情報中継記憶部２４に記憶されているイベント情報をオペレータが監視することで、イベント情報の送受信における異常を検出することが可能となる。
【００５８】
上述の携帯電話端末１は内部に、コンピュータシステムを有している。そして、上述したイベントコード付与処理、付与処理において行われる生成判定処理およびイベントコード削除処理は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【図面の簡単な説明】
【００５９】
【図１】本実施形態による携帯電話端末を示す概略ブロック図である。
【図２】同実施形態におけるイベント情報のデータ構成を示す図である。
【図３】従来のアプリケーション制御部における処理を説明するための図である。
【図４】本実施形態におけるアプリケーション制御部における処理を説明するための図である。
【図５】同実施形態におけるイベントコード付与処理のフローチャートである。
【図６】同実施形態におけるイベントコード生成判定処理のフローチャートである。
【図７】同実施形態におけるイベントコード生成処理のフローチャートである。
【図８】同実施形態におけるイベントコード重複判定処理のフローチャートである。
【図９】同実施形態におけるイベントコード削除処理のフローチャートである。
【符号の説明】
【００６０】
１    携帯電話端末
２    制御部
１０  アプリケーション制御部
１１  イベント受信部
１２  イベントキュー
１３  イベント送信部
２０  イベント中継部
２１  受信部
２２  イベントコード付与部
２３  送信部
２４  イベント情報中継記憶部
【図１】
2006163612.tif 000003
【図２】
2006163612.tif 000004
【図３】
2006163612.tif 000005
【図４】
2006163612.tif 000006
【図５】
2006163612.tif 000007
【図６】
2006163612.tif 000008
【図７】
2006163612.tif 000009
【図８】
2006163612.tif 000010
【図９】
2006163612.tif 000011