(57)【要約】【課題】異なるシステムを有する２つ以上のステートマシンを協調して動作させることが可能な状態管理方法とこの状態管理方法が適用された携帯端末を提供すること。【解決手段】第１のシステムに属する第１のタスクの状態を管理する第１のテーブル、及び前記第１のシステムとは異なる第２のシステムに属する第２のタスクの状態を管理する第２のテーブルに基づいて前記第１及び第２のタスクの状態を管理する状態管理方法において、前記第１のタスクで発生した第１のイベントに基づいて前記第２のタスクへ送信すべき第２のイベントを求め、この求められた第２のイベントを前記第２のタスクに送信し、この第２のタスクが前記第２のイベントを受信すると、この第２のイベントに基づいて前記第２のテーブルを参照して状態を遷移させる。【選択図】      図１
2007102707.tif 000002
【特許請求の範囲】
【請求項１】
第１のシステムに属する第１のタスクの状態を管理する第１のテーブル、及び前記第１のシステムとは異なる第２のシステムに属する第２のタスクの状態を管理する第２のテーブルに基づいて前記第１及び第２のタスクの状態を管理する状態管理方法において、
前記第１のタスクで発生した第１のイベントに基づいて前記第２のタスクへ送信すべき第２のイベントを求め、
この求められた第２のイベントを前記第２のタスクに送信し、
この第２のタスクが前記第２のイベントを受信すると、この第２のイベントに基づいて前記第２のテーブルを参照して状態を遷移させることを特徴とする状態管理方法。
【請求項２】
第１のシステムに属する第１のタスクと、第２のシステムに属する第２のタスクとを有し、前記第１のタスクの状態を管理する第１のテーブル及び第２のタスクの状態を管理する第２のテーブルに基づいて前記第１及び第２のタスクの状態をそれぞれ管理する第１及び第２の状態管理手段を備えた携帯端末において、
前記第１のタスクで発生する第１のイベントと、該第１のイベントに基づいて前記第２のタスクを制御するための第２のイベントとの対応関係を保持する変換テーブルと、
前記第１のタスクから第１のイベントを受信すると、前記変換テーブルを参照して第２のイベントを求めるイベント抽出手段と、
前記イベント抽出手段で抽出した第２のイベントを前記第２のタスクに送信して、前記第２のタスクを制御するタスク制御手段と、を具備したことを特徴とする携帯端末。
【請求項３】
前記タスク制御手段から前記第２のイベントを受信すると、前記第２の状態管理手段は、前記第２のテーブルを参照して、前記第２のタスクの状態の遷移を行うことを特徴とする請求項２に記載の携帯端末。
【請求項４】
第１のシステムに属する第１のタスクと、第２のシステムに属する第２のタスクとを有し、前記第１のタスクの状態を管理する第１のテーブル及び第２のタスクの状態を管理する第２のテーブルに基づいて前記第１及び第２のタスクの状態をそれぞれ管理する第１及び第２の状態管理手段を備えた携帯端末において、
前記第１のタスクで発生する第１のイベントと、該第１のイベントに基づいて前記第２のタスクを制御するための第２のイベントとの対応関係、及び前記第２のタスクで発生する第３のイベントと、該第３のイベントに基づいて前記第１のタスクを制御するための第４のイベントとの対応関係を保持する変換テーブルと、
前記第１のタスクから第１のイベントを受信すると前記変換テーブルを参照して第２のイベントを求めるとともに、前記第２のタスクから第３のイベントを受信すると前記変換テーブルを参照して第４のイベントを求めるイベント抽出手段と、
前記イベント抽出手段で抽出した第２のイベント及び第４のイベントを送信して、前記第１のタスク及び第２のタスクを制御するタスク制御手段と、を具備したことを特徴とする携帯端末。
【請求項５】
前記第３のイベントは、前記第２のタスクが前記第２のイベントに基づいて状態が遷移したことに応じて出力されることを特徴とする請求項４に記載の携帯端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるシステムを有する複数の状態管理方法とこの状態管理方法が適用された携帯端末に関する。
【背景技術】
【０００２】
複数の異なるシステムを有するステートマシンでは、それぞれのステートマシンについて異なる形態の状態遷移テーブルで制御されているため、それぞれのステートマシンを制御するには、状態遷移テーブルを独立して制御することが必要である。
【０００３】
たとえば、第１のシステムと第２のシステムとを有するステートマシンについて説明する。この場合において、第１のシステムは、第１のシステムの形態の状態遷移テーブルで制御され、第２のシステムは第２のシステムの状態遷移テーブルで制御される。ここで、第１のシステムと第２のシステムの２つの異なる形態に対して、それぞれの状態遷移テーブルによる制御に整合性はなく、２つのシステムに協調性を持たせることができなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、異なるシステムを有する２つ以上のステートマシンを協調して動作させることが可能な状態管理方法とこの状態管理方法が適用された携帯端末を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明では、異なる複数のシステムを持つステートマシンにおいて、それぞれのシステムごとに異なる形態の状態遷移テーブルによる制御の差分を吸収し、複数の異なるシステムに属するタスクを、見かけ上１つのシステムに属するタスクの状態遷移テーブルによる制御のように同時に制御する。
【０００６】
具体的には、本発明の局面に係る状態管理方法は、第１のシステムに属する第１のタスクの状態を管理する第１のテーブル、及び前記第１のシステムとは異なる第２のシステムに属する第２のタスクの状態を管理する第２のテーブルに基づいて前記第１及び第２のタスクの状態を管理する状態管理方法において、前記第１のタスクで発生した第１のイベントに基づいて前記第２のタスクへ送信すべき第２のイベントを求め、この求められた第２のイベントを前記第２のタスクに送信し、この第２のタスクが前記第２のイベントを受信すると、この第２のイベントに基づいて前記第２のテーブルを参照して状態を遷移させることを特徴とする。
【０００７】
本発明の他の局面に係る携帯端末は、第１のシステムに属する第１のタスクと、第２のシステムに属する第２のタスクとを有し、前記第１のタスクの状態を管理する第１のテーブル及び第２のタスクの状態を管理する第２のテーブルに基づいて前記第１及び第２のタスクの状態をそれぞれ管理する第１及び第２の状態管理手段を備えた携帯端末において、前記第１のタスクで発生する第１のイベントと、該第１のイベントに基づいて前記第２のタスクを制御するための第２のイベントとの対応関係を保持する変換テーブルと、前記第１のタスクから第１のイベントを受信すると、前記変換テーブルを参照して第２のイベントを求めるイベント抽出手段と、前記イベント抽出手段で抽出した第２のイベントを前記第２のタスクに送信して、前記第２のタスクを制御するタスク制御手段と、を具備したことを特徴とする。
【０００８】
本発明の更に他の局面に係る携帯端末は、第１のシステムに属する第１のタスクと、第２のシステムに属する第２のタスクとを有し、前記第１のタスクの状態を管理する第１のテーブル及び第２のタスクの状態を管理する第２のテーブルに基づいて前記第１及び第２のタスクの状態をそれぞれ管理する第１及び第２の状態管理手段を備えた携帯端末において、前記第１のタスクで発生する第１のイベントと、該第１のイベントに基づいて前記第２のタスクを制御するための第２のイベントとの対応関係、及び前記第２のタスクで発生する第３のイベントと、該第３のイベントに基づいて前記第１のタスクを制御するための第４のイベントとの対応関係を保持する変換テーブルと、前記第１のタスクから第１のイベントを受信すると前記変換テーブルを参照して第２のイベントを求めるとともに、前記第２のタスクから第３のイベントを受信すると前記変換テーブルを参照して第４のイベントを求めるイベント抽出手段と、前記イベント抽出手段で抽出した第２のイベント及び第４のイベントを送信して、前記第１のタスク及び第２のタスクを制御するタスク制御手段と、を具備したことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数の異なるシステムを持ち、かつ、それぞれのシステムに属するタスクはシステムごと異なる形態の状態遷移テーブルにより制御されるステートマシンを、そのうちの１つのシステムの形態の状態遷移テーブルにより制御することが可能となる。これにより、ステートマシンを作成する際に、整合性のないシステム同士を協調させることで整合性のないシステムを新たなステートマシンの開発に使用することが可能となり、ステートマシンの開発効率を向上させることが可能となる。
【発明を実施するための最良の形態】
【００１０】
図面を参照して本発明の実施の形態を説明する。図１は、本発明の一実施形態に係るステートマシンのシステムの構成の一例を示す図である。なお、図１では、説明の都合上、システムを２つとしているが、３以上の異なるシステムを整合させることも、本発明の実施形態で可能である。
【００１１】
図１に示すステートマシンは、それぞれ状態遷移テーブルにより制御される第１のシステム１０１、および第２のシステム１０２で構成されている。第１のシステム１０１にタスクＡ（１０３）が属し、第２のシステム１０２にタスクＢ（１０５）、およびタスクＣ（１０６）が属している。また、第１のシステム１０１、および第２のシステム１０２の両方にタスクＰ（１０４）が属している。
【００１２】
図２は、本発明の実施の形態に係るステートマシンの一例である携帯型電子機器の概観斜視図である。この携帯型電子機器は、上部筐体１と下部筐体２とをヒンジ機構３を介して回動可能に接続したいわゆる折り畳み型の携帯通信端末であり、図２は各筐体１、２を開いた状態を示している。
【００１３】
また、上部筐体１には、その前面にメインＬＣＤ（Liquid Crystal Display）４が配設され、背面に図示しないサブＬＣＤが配設されている。一方、下部筐体２には、キー入力デバイス５等と共に図示しない主印刷配線基板が収容されている。ここで、第１のシステム１０１は、電話帳や通話機能などの携帯型電子機器が有する本来の機能に係る部分であり、第２のシステム１０２は、メールやブラウザなどの外部アプリケーションである。このため、通常は、第１のシステム１０１と第２のシステム１０２とは、協調性を持たせることが出来ない。しかし、本発明の実施形態では、図１に示すように、第１のシステム１０１と第２のシステム１０２の両者に属するタスクを設け、各システムにおける状態繊維テーブルによる制御の差分を吸収するようにしている。以下、具体的に説明する。
【００１４】
図３は、本発明の一実施形態に係る上記の各タスクの制御に用いられる状態遷移テーブルの集合を示す図である。  
図３において、図１のタスクＡ（１０３）は、第１のシステム１０１の形態の状態遷移テーブルＡ（２０３）を用いて制御される。タスクＢ（１０５）は第１のシステム１０１の形態とは異なる第２のシステム１０２の形態の状態遷移テーブルＢ（２０６）を用いて制御される。タスクＣ（１０６）もタスクＢと同様に、第２のシステム１０２に属するので、第１のシステム１０１の形態とは異なる第２のシステム１０２の形態の状態遷移テーブルＣ（２０７）を用いて制御される。タスクＰ（１０４）は、タスクＢ（１０５）、およびタスクＣ（１０６）を第１のシステム１０１と同一の形態の状態遷移テーブルによる制御により同時に制御する。このため、タスクＰ（１０４）は、タスクＢ（１０５）のための第１のシステム１０１の形態の状態遷移テーブルＰＢ（２０４）と、タスクＣ（１０６）のための第１のシステム１０１の形態の状態遷移テーブルＰＣ（２０５）とを備えている。なお、それぞれの状態遷移テーブルの詳細を図４及び図５に示す。
【００１５】
図６は、本発明の一実施形態に係る第１のシステム１０１、および第２のシステム１０２の両方に属するタスクＰ（１０４）の内部構成を示すブロック図である。  
第１のシステム１０１と第２のシステム１０２の両方に属するタスクＰ（１０４）は、タスクＡ（１０３）からイベントを受信する第１のシステムイベント受信部３０１と、前記第２のシステム１０２のイベントと第１のシステム１０１のイベントの対応表３０３と、第１のシステム１０１のイベントから上記タスクＢ（１０５）、および、タスクＣ（１０６）を制御し、かつ、第１のシステム１０１、および第２のシステム１０２の異なる形態の状態遷移テーブルによる制御の差分を吸収するプロキシ部３０４と、第２のシステム１０２へイベントを送信する第２のシステムイベント送信部３０５と、第１のシステム１０１へイベントを送信する第１のシステムイベント送信部３０２と、第２のシステム１０２からイベントを受信する第２のシステムイベント受信部３０６を備えている。
【００１６】
次に、この実施形態の構成による複数の異なるシステム同士の協調動作を、図７を参照しながら説明する。  
図７に示すように、状態がＳＡ１（４０４）であるタスクＡ（１０３）からタスクＢ（１０５）を制御するためのイベントＥ４１６（４１５）がタスクＰ（１０４）へ送信され、タスクＰ（１０４）がイベントＥ４１６（４１５）を受信すると、第１のシステム１０１と第２のシステム１０２を協調動作させるプロキシ部３０４の処理を行う。ここでのプロキシ部３０４の処理フローについて図８及び図９を参照して説明する。なお、タスクＰにおける、第２のシステムのイベントと第１のシステムのイベントの対応表を図９に示す。
【００１７】
図８に示すように、タスクＰ（１０４）がタスクＡ（１０３）からイベントＥ４１６（４１５）を受信すると送信先の第２のシステム１０２のタスクを判定する（６０１）。
【００１８】
送信先がタスクＢ（１０５）と判定されると、タスクＰ（１０４）が保持しているタスクＢ（１０５）の状態遷移テーブルＰＢ（２０４）から、状態ＳＰＢ１（４０８）でイベントＥ４１６（４１５）を受信したときのタスクＢ（１０５）の動作を制御するための処理が決定される（６０２、６０４）。  
すると、タスクＰ（１０４）からタスクＢ（１０５）を制御するためのイベントＥ４１５（４２１）を送信する第２のシステムイベント送信部３０５へ処理が移る。
【００１９】
第２のシステムイベント送信部３０５へ処理が移ると、タスクＢ（１０５）へＥ４１５イベント（４２１）が送信される。  
タスクＰ（１０４）から送信されたＥ４１５イベント（４２１）を受信した状態ＳＢ１（４１２）のタスクＢ（１０５）は、自タスクの処理を行いＥ４１５イベント（４２１）に対する応答であるＥ４１５の応答イベントＥ４２１（４２２）をタスクＰ（１０４）へ送信する。
【００２０】
ここで、タスクＢ（１０５）からのＥ４１５の応答イベントＥ４２１（４２２）を第２のシステムイベント受信部３０６で受信したタスクＰ（１０４）は、第２のシステムのイベントと第１のシステムのイベントの対応表３０３からＥ４１５の応答イベントＥ４２１（４２２）に対応するＥ４１６の応答イベントＥ４２２（４１６）を取得し、Ｅ４１６の応答イベントＥ４２２（４１６）を第１のシステムイベント送信部（３０１）からタスクＡ（１０３）へ送信し、タスクＡ（１０３）が受信する。
【００２１】
このとき、タスクＡ（１０３）は状態ＳＡ２（４０５）、タスクＰ（１０４）のタスクＢ（１０５）に対する状態は状態ＳＰＢ２（４０９）、タスクＢ（１０５）は状態ＳＢ２（４１３）へそれぞれ遷移する。
【００２２】
次に、図７に示すように、状態がＳＡ２（４０５）であるタスクＡ（１０３）からタスクＢ（１０５）を制御するためのイベントＥ４１８（４１７）がタスクＰ（１０４）へ送信され、タスクＰ（１０４）がイベントＥ４１８（４１７）を受信すると、第１のシステム１０１と第２のシステム１０２を協調動作させるプロキシ部３０４の処理を行う。ここでのプロキシ部３０４の処理フローについて、図８及び図９を参照して説明する。
【００２３】
図８に示すように、タスクＰ（１０４）がタスクＡ（１０３）からイベントＥ４１８（４１７）を受信すると送信先の第２のシステム１０２のタスクを判定する（６０１）。
【００２４】
送信先がタスクＢ（１０５）と判定されると、タスクＰ（１０４）が保持しているタスクＢ（１０５）の状態遷移テーブルＰＢ（２０４）から、状態ＳＰＢ３（４０９）でイベントＥ４１８（４１７）を受信したときのタスクＢ（１０５）の動作を制御するための処理が決定される（６０２、６０４）。
【００２５】
このイベントＥ４１８（４１７）を受信したときの第１のシステム１０１の処理に対応する第２のシステム１０２の処理がないので、タスクＰ（１０４）はタスクＢ（１０５）へイベントを送信することなく、また、タスクＡ（１０３）へＥ４１８の応答イベントＥ４１７（４１８）を送信するために第１のシステムイベント送信部３０２へ処理を移す。
【００２６】
第１のシステムイベント送信部３０２に処理が移ると、タスクＰ（１０４）からタスクＡ（１０３）へＥ４１８の応答イベントＥ４１７（４１８）が送信され、タスクＡ（１０３）はＥ４１８の応答イベントＥ４１７（４１８）を受信する。
【００２７】
このとき、タスクＡ（１０３）は状態ＳＡ３（４０６）、タスクＰ（１０４）のタスクＢ（１０５）に対する状態は状態ＳＰＢ３（４１０）へそれぞれ遷移するが、タスクＢ（１０５）は状態ＳＢ２（４１３）のままである。
【００２８】
さらに、図７に示すように、状態がＳＡ３（４０６）であるタスクＡ（１０３）からタスクＢ（１０５）を制御するためのイベントＥ４２０（４１９）がタスクＰ（１０４）へ送信され、タスクＰ（１０４）がイベントＥ４２０（４１９）を受信すると、第１のシステム１０１と第２のシステム１０２を協調動作させるプロキシ部３０４の処理を行う。ここでのプロキシ部３０４の処理フローについて図８及び図９を参照して説明する。
【００２９】
図８に示すように、タスクＰ（１０４）がタスクＡ（１０３）からイベントＥ４２０（４１９）を受信すると送信先の第２のシステム１０２のタスクを判定する（６０１）。
【００３０】
送信先がタスクＢ（１０５）と判定されると、タスクＰ（１０４）が保持しているタスクＢ（１０５）の状態遷移テーブルＰＢ（２０４）から、状態ＳＰＢ３（４０６）でイベントＥ４２０（４１９）を受信したときのタスクＢ（１０５）の動作を制御するための処理が決定される（６０２、６０４）。
【００３１】
すると、タスクＰ（１０４）からタスクＢ（１０５）を制御するためのイベントＥ４１９（４２３）を送信する第２のシステムイベント送信部３０５へ処理が移る。
【００３２】
第２のシステムイベント送信部３０５へ処理が移ると、タスクＢ（１０５）へＥ４１９イベント（４２３）が送信される。
【００３３】
タスクＰ（１０４）から送信されたＥ４１９イベント（４２３）を受信した状態ＳＢ２（４１３）のタスクＢ（１０５）は、自タスクの処理を行いＥ４１９イベント（４２３）に対する応答であるＥ４１９の応答イベントＥ４２３（４２４）をタスクＰ（１０４）へ送信する。
【００３４】
ここで、タスクＢ（１０５）からのＥ４１９の応答イベントＥ４２３（４２４）を第２のシステムイベント受信部３０６で受信したタスクＰ（１０４）は、第２のシステムのイベントと第１のシステムのイベントの対応表３０３からＥ４１９の応答イベントＥ４２３（４２４）に対応するＥ４２０の応答イベントＥ４２４（４２０）を取得し、Ｅ４２０の応答イベントＥ４２４（４２０）を第１のシステムイベント送信部（３０１）からタスクＡ（１０３）へ送信し、タスクＡ（１０３）が受信する。
【００３５】
このとき、タスクＡ（１０３）は状態ＳＡ１（４０４）、タスクＰ（１０４）のタスクＢ（１０５）に対する状態は状態ＳＰＢ１（４０８）、タスクＢ（１０５）は状態ＳＢ１（４１２）へそれぞれ遷移する。
【００３６】
さらに、第２のシステム１０２に属するタスクＢ（１０５）ではないタスクＣ（１０６）の第１のシステム１０１に協調した連動動作について、図１０を参照して説明する。
【００３７】
図１０に示すように、状態がＳＡ１（４０４）であるタスクＡ（１０３）からタスクＣ（１０６）を制御するためのイベントＥ４１６（４１５）がタスクＰ（１０４）へ送信され、タスクＰ（１０４）がイベントＥ４１６（４１５）を受信すると、第１のシステム１０１と第２のシステム１０２を協調動作させるプロキシ部３０４の処理を行う。ここでのプロキシ部３０４の処理フローについて、図８及び図９を参照して説明する。
【００３８】
図８に示すように、タスクＰ（１０４）がタスクＡ（１０３）からイベントＥ４１６（４１５）を受信すると送信先の第２のシステム１０２のタスクを判定する（６０１）。
【００３９】
送信先がタスクＣ（１０６）と判定されると、図４で示すタスクＰ（１０４）が保持しているタスクＣ（１０６）の状態遷移テーブルＰＣ（２０５）から、状態ＳＰＣ１（５０８）でイベントＥ４１６（４１５）を受信したときのタスクＣ（１０６）の動作を制御するための処理が決定される（６０３、６０４）。
【００４０】
すると、タスクＰ（１０４）からタスクＣ（１０６）を制御するためのイベントＥ５１５（５２１）を送信する第２のシステムイベント送信部３０５へ処理が移る。
【００４１】
第２のシステムイベント送信部３０５へ処理が移ると、タスクＣ（１０６）へＥ５１５イベント（５２１）が送信される。
【００４２】
タスクＰ（１０４）から送信されたＥ５１５イベント（５２１）を受信した状態ＳＣ１（５１２）のタスクＣ（１０６）は、自タスクの処理を行いＥ５１５イベント（５２１）に対する応答であるＥ５１５の応答イベントＥ５２１（５２２）をタスクＰ（１０４）へ送信する。
【００４３】
ここで、タスクＣ（１０６）からのＥ５１５の応答イベントＥ５２１（５２２）を第２のシステムイベント受信部３０６で受信したタスクＰ（１０４）は、第２のシステムのイベントと第１のシステムのイベントの対応表３０３からＥ５１５の応答イベントＥ５２１（５２２）に対応するＥ４１６の応答イベントＥ５２２（４１６）を取得し、Ｅ４１６の応答イベントＥ５２２（４１６）を第１のシステムイベント送信部（３０１）からタスクＡ（１０３）へ送信し、タスクＡ（１０３）が受信する。
【００４４】
このとき、タスクＡ（１０３）は状態ＳＡ２（４０５）、タスクＰ（１０４）のタスクＣ（１０６）に対する状態は状態ＳＰＣ２（５０９）、タスクＣ（１０６）は状態ＳＣ２（５１４）へそれぞれ遷移する。
【００４５】
次に、図１０に示すように、状態がＳＡ２（４０５）であるタスクＡ（１０３）からタスクＣ（１０６）を制御するためのイベントＥ４１８（４１７）がタスクＰ（１０４）へ送信され、タスクＰ（１０４）がイベントＥ４１８（４１７）を受信すると、第１のシステム１０１と第２のシステム１０２を協調動作させるプロキシ部３０４の処理を行う。ここでのプロキシ部３０４の処理フローについて、図８及び図９を参照して説明する。
【００４６】
図８に示すように、タスクＰ（１０４）がタスクＡ（１０３）からイベントＥ４１８（４１７）を受信すると送信先の第２のシステム１０２のタスクを判定する（６０１）。
【００４７】
送信先がタスクＣ（１０６）と判定されると、タスクＰ（１０４）が保持しているタスクＣ（１０６）の状態遷移テーブルＰＣ（２０５）から、状態ＳＰＣ２（５０９）でイベントＥ４１８（４１７）を受信したときのタスクＣ（１０６）の動作を制御するための処理が決定される（６０３、６０４）。
【００４８】
このイベントＥ４１８（４１７）を受信したときの第１のシステム１０１の処理に対応する第２のシステム１０２の処理がないので、タスクＰ（１０４）はタスクＣ（１０６）へイベントを送信することなく、また、タスクＡ（１０３）へＥ４１８の応答イベントＥ５１７（４１８）を送信するために第１のシステムイベント送信部３０２へ処理を移す。
【００４９】
第１のシステムイベント送信部３０２に処理が移ると、タスクＰ（１０４）からタスクＡ（１０３）へＥ４１８の応答イベントＥ５１７（４１８）が送信され、タスクＡ（１０３）はＥ４１８の応答イベントＥ５１７（４１８）を受信する。
【００５０】
このとき、タスクＡ（１０３）は状態ＳＡ３（４０６）、タスクＰ（１０４）のタスクＣ（１０６）に対する状態は状態ＳＰＣ３（５１０）へそれぞれ遷移するが、タスクＣ（１０６）は状態ＳＣ２（５１４）のままである。
【００５１】
さらに、図１０に示すように、状態がＳＡ３（４０６）であるタスクＡ（１０３）からタスクＣ（１０６）を制御するためのイベントＥ４２０（４１９）がタスクＰ（１０４）へ送信され、タスクＰ（１０４）がイベントＥ４２０（４１９）を受信すると、第１のシステム１０１と第２のシステム１０２を協調動作させるプロキシ部３０４の処理を行う。ここでのプロキシ部３０４の処理フローについて、図８及び図９を参照して説明する。
【００５２】
図８に示すように、タスクＰ（１０４）がタスクＡ（１０３）からイベントＥ４２０（４１９）を受信すると送信先の第２のシステム１０２のタスクを判定する（６０１）。
【００５３】
送信先がタスクＣ（１０６）と判定されると、タスクＰ（１０４）が保持しているタスクＣ（１０６）の状態遷移テーブルＰＣ（２０５）から、状態ＳＰＣ３（５０６）でイベントＥ４２０（４１９）を受信したときのタスクＣ（１０６）の動作を制御するための処理が決定される（６０３、６０４）。
【００５４】
すると、タスクＰ（１０４）からタスクＣ（１０６）を制御するためのイベントＥ５１９（５２３）を送信する第２のシステムイベント送信部３０５へ処理が移る。
【００５５】
第２のシステムイベント送信部３０５へ処理が移ると、タスクＣ（１０６）へＥ５１９イベント（５２３）が送信される。
【００５６】
タスクＰ（１０４）から送信されたＥ５１９イベント（５２３）を受信した状態ＳＣ２（５１４）のタスクＣ（１０６）は、自タスクの処理を行いＥ５１９イベント（５２３）に対する応答であるＥ５１９の応答イベントＥ５２３（５２４）をタスクＰ（１０４）へ送信する。
【００５７】
ここで、タスクＣ（１０６）からのＥ５１９の応答イベントＥ５２３（５２４）を第２のシステムイベント受信部３０６で受信したタスクＰ（１０４）は、第２のシステムのイベントと第１のシステムのイベントの対応表３０３からＥ５１９の応答イベントＥ５２３（５２４）に対応するＥ４２０の応答イベントＥ５２４（４２０）を取得し、Ｅ４２０の応答イベントＥ５２４（４２０）を第１のシステムイベント送信部（３０１）からタスクＡ（１０３）へ送信し、タスクＡ（１０３）が受信する。
【００５８】
このとき、タスクＡ（１０３）は状態ＳＡ１（４０４）、タスクＰ（１０４）のタスクＣ（１０６）に対する状態は状態ＳＰＣ１（５０８）、タスクＣ（１０６）は状態ＳＣ１（５１２）へそれぞれ遷移する。
【００５９】
上記のように、本実施形態によれば、異なるシステムに属するタスクの制御を１つのシステムに属するタスクの状態遷移テーブルによる制御のように同時に制御することができる。以下、具体的な動作例を、図１１を参照して説明する。
【００６０】
まず、異なる第１のシステムと第２のシステムがあり、第１のシステムに属するタスクデータ・ホルダ、第２のシステムに属するタスク・ブラウザ、さらに、第１のシステムと第２のシステムに属するタスク・プロキシがあるものとして説明する。
【００６１】
このとき、データ・ホルダは第１のシステムでのフォアグラウンド状態（画面が前面にある状態）である。また、ブラウザは第２のシステムでのアイドル状態（起動していない状態）であり、プロキシはブラウザを第１のシステムのタスクとして協調動作させるためにブラウザを第１のシステムのアイドル状態とみなしている。
【００６２】
データ・ホルダよりブラウザの起動要求がプロキシへ送信されると、プロキシはプロキシの持つブラウザの状態テーブルよりブラウザに起動要求を送信する。そして、プロキシはその応答を待つウェイト状態へと遷移する。このウェイト状態は第１のシステム、及び第２のシステムのいずれも有する状態ではないが、２つのシステムを協調させるために必要な状態であり、プロキシ独自の状態である。
【００６３】
ブラウザはプロキシより起動要求を受信、起動処理を行い起動状態へと遷移し、起動通知をプロキシへと送信する。ここで第１のシステムのフォアグラウンド状態は第２のシステムの起動状態に相当する。
【００６４】
ウェイト状態であったプロキシは起動通知を受信し、第１のシステムの応答である起動完了指示をデータ・ホルダへと送信し、プロキシの状態管理テーブルを第１のシステムのフォアグラウンド状態へ遷移させる。起動完了指示を受信したデータ・ホルダはバックグラウンド状態（画面が前面にない状態）へと遷移する。
【００６５】
次に、バックグラウンド状態であったデータ・ホルダは何らかの要因により、自タスクをフォアグラウンド状態へとする必要が生じ、現在第１のシステムにおけるフォアグラウンド状態であるブラウザをサスペンド状態とするためにプロキシへ中断要求を送信する。
【００６６】
中断要求を受信したプロキシはブラウザをサスペンド状態へ遷移させ、さらに、その応答をデータ・ホルダへ送信する必要があるのだが、第２のシステムにおいてはサスペンド状態という状態が無いために、ブラウザへ中断要求を送信させることができず、プロキシにてその差分を吸収する必要がある。
【００６７】
中断要求を受信したフォアグラウンド状態のプロキシはブラウザに中断要求を送信することができず、中断応答を受信することもできない。プロキシはブラウザのかわりにその中断応答をデータ・ホルダへ送信し、第１のシステムのサスペンド状態へと遷移する。このとき、ブラウザは第２のシステムの起動状態であるが、プロキシの状態がサスペンド状態であることにより、第１のシステムの制御上サスペンド状態として扱うことが可能となる。このように異なるシステム間の状態の相違をプロキシが吸収することにより、第１のシステム、２の間で矛盾することなくタスク間の制御が可能となる。
【００６８】
さらに、データ・ホルダよりプロキシへ強制終了指示が送信され、それを受信したプロキシはブラウザへ第２のシステムの強制終了指示を送信しウェイト状態へと遷移する。
【００６９】
強制終了指示を受信した起動状態のブラウザは、終了処理を行い、プロキシへ終了通知を送信し、第２のシステムのアイドル状態へと遷移する。
【００７０】
強制終了指示に対するブラウザの応答である終了通知を受信したプロキシは、第１のシステムの応答である強制終了応答をデータ・ホルダへと送信し、第１のシステムのアイドル状態へと遷移する。
【００７１】
このように、異なるシステム間の送受信するイベントの種類、方法、さらに状態の差分を吸収し、お互いを強調させ、あたかも１つのシステムとして動作させることができる。
【００７２】
このように、異なる形態の状態遷移テーブルを持つシステム同士を協調させ、整合性のないステートマシンを連動させることで、新たなステートマシンの開発効率を向上させることが見込まれる。
【００７３】
本発明は、上記各実施の形態に限ることなく、その他、実施段階ではその要旨を逸脱しない範囲で種々の変形を実施し得ることが可能である。さらに、上記各実施形態には、種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組合せにより種々の発明が抽出され得る。
【００７４】
また、例えば各実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００７５】
【図１】本発明の一実施形態に係るステートマシンのシステムの構成の一例を示す図。
【図２】本発明の実施の形態に係るステートマシンの一例である携帯型電子機器の概観斜視図。
【図３】本発明の一実施形態に係る上記の各タスクの制御に用いられる状態遷移テーブルの集合を示す図。
【図４】第１のシステム及び第２のシステム１０２の少なくとも一方に属するタスクが保持している状態遷移テーブルを示す図。
【図５】第２のシステム１０２に属するタスクが保持している状態遷移テーブルを示す図。
【図６】本発明の一実施形態に係る第１のシステム及び第２のシステムの両方に属するタスクの内部構成を示すブロック図。
【図７】第１のシステムに属するタスクに連動して、第２のシステムに属するタスクの状態が遷移していくシーケンスを示す図。
【図８】第１のシステムのイベントを受信してから第２のシステムのイベントを送信するまでのプロキシ部の処理フローを示す図。
【図９】第２のシステムのイベントと第１のシステムのイベントの対応表を示す図。
【図１０】第１のシステムに属するタスクに連動して、第２のシステムに属するタスクの状態が遷移していくシーケンスを示す図。
【図１１】具体的な制御例を示すシーケンス図。
【符号の説明】
【００７６】
１０１…第１のシステム
１０２…第２のシステム
３０１…第１のシステムイベント受信部
３０２…第１のシステムイベント送信部
３０３…対応表
３０４…プロキシ部
３０５…第２のシステムイベント送信部
３０６…第２のシステムイベント受信部
【図１】
2007102707.tif 000003
【図２】
2007102707.tif 000004
【図３】
2007102707.tif 000005
【図４】
2007102707.tif 000006
【図５】
2007102707.tif 000007
【図６】
2007102707.tif 000008
【図７】
2007102707.tif 000009
【図８】
2007102707.tif 000010
【図９】
2007102707.tif 000011
【図１０】
2007102707.tif 000012
【図１１】
2007102707.tif 000013