(57)【要約】【課題】入出力される情報相互を同期させつつ、複数のソフトウエアモジュール間で共有できるサービス実行装置を提供する。【解決手段】サービスに係るサービス関連処理を、並列的に複数実行可能なサービス実行部と、サービス関連処理によって共有される情報を保持する共有記憶部と、共有記憶部との間で、情報の入力と出力との少なくとも一方を行う、少なくとも一つの入出力要素と、を含み、共有記憶部は、サービス関連処理または入出力要素からの要求を受けて、イベント情報の送受を、サービス関連処理と入出力要素との間で行うサービス実行装置である。【選択図】図１
2007241458.tif 000002
【特許請求の範囲】
【請求項１】
サービスに係るサービス関連処理を、並列的に複数実行可能なサービス実行部と、
前記サービス関連処理によって共有される情報を保持する共有記憶部と、
前記共有記憶部との間で、情報の入力と出力との少なくとも一方を行う、少なくとも一つの入出力要素と、
を含み、前記共有記憶部は、前記サービス関連処理または前記入出力要素からの要求を受けて、イベント情報の送受を、前記サービス関連処理と前記入出力要素との間で行うことを特徴とするサービス実行装置。
【請求項２】
サービスに係るサービス関連処理を、並列的に複数実行可能なサービス実行部と、
前記サービス関連処理によって共有される情報を保持する共有記憶部と、
前記共有記憶部との間で、情報の入力と出力との少なくとも一方を行う、少なくとも一つの入出力要素と、
を含み、
前記共有記憶部は、前記入出力要素のうち、前記共有記憶部に対して情報の入力を行う入出力要素から情報の入力を受けて、当該情報の入力タイミングを表すタイムスタンプ情報と、入力された情報とを関連づけて保持することを特徴とするサービス実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力される情報を用いて種々のサービスを実行するサービス実行装置に関する。
【背景技術】
【０００２】
複数のプロセッサを用いて、分散的に処理を行う装置では、メモリを共有して、相互のプロセッサ間でのメッセージ通信やデータ共有を実現する方式が用いられることがある。例えば、個々独立に動作するソフトウエアモジュール（エージェントなどと呼ばれる）が、メモリに格納されているデータに基づいて所定の演算を行ない、その結果をメモリに書き戻す動作を行ない、これにより分散的に処理を行うものがある。例えば、黒板モデルと呼ばれるモデルを用いた音声認識処理について非特許文献１がある。
【非特許文献１】R. Reddy, D. Erman, and N. Richard. "A model and a system for machine recognition of speech.", IEEE transactions on audio and electroacustic AU-21,229-238ページ, １９７３年
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来の技術では、プロセッサ等で実行される処理間で、知識を共有するモデルを実現する方法として用いられることはあっても、情報の入出力要素と、プロセッサで実行される処理との間で情報を共有することには用いられておらず、時間的に相互に関係する情報について、情報を同期させることが困難となる。
【０００４】
本発明は上記実情に鑑みて為されたもので、入出力される情報相互を同期させつつ、複数のソフトウエアモジュール間で共有できるサービス実行装置を提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００５】
上記従来例の問題点を解決するための本発明は、サービス実行装置であって、サービスに係るサービス関連処理を、並列的に複数実行可能なサービス実行部と、前記サービス関連処理によって共有される情報を保持する共有記憶部と、前記共有記憶部との間で、情報の入力と出力との少なくとも一方を行う、少なくとも一つの入出力要素と、を含み、前記共有記憶部は、前記サービス関連処理または前記入出力要素からの要求を受けて、イベント情報の送受を、前記サービス関連処理と前記入出力要素との間で行うことを特徴としている。
【０００６】
また、本発明の別の態様は、サービス実行装置であって、サービスに係るサービス関連処理を、並列的に複数実行可能なサービス実行部と、前記サービス関連処理によって共有される情報を保持する共有記憶部と、前記共有記憶部との間で、情報の入力と出力との少なくとも一方を行う、少なくとも一つの入出力要素と、を含み、前記共有記憶部は、前記入出力要素のうち、前記共有記憶部に対して情報の入力を行う入出力要素から情報の入力を受けて、当該情報の入力タイミングを表すタイムスタンプ情報と、入力された情報とを関連づけて保持することを特徴としている。
【発明を実施するための最良の形態】
【０００７】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るサービス実行装置は、例えば複合機１として実装される。本実施の形態のサービス実行装置を具現化した複合機１は、図１に示すように、カメラユニット１１と、マイクユニット１２と、タッチパネルユニット１３と、スキャナユニット１４と、コントローラユニット１５と、ディスプレイユニット１６と、音声合成ユニット１７と、プリンタユニット１８とを含んで構成されている。
【０００８】
カメラユニット１１は、ＣＣＤ（電荷結合素子）等を用いた撮像部を備え、撮像部にて撮像された画像のデータを逐次的にコントローラユニット１５に出力する。マイクユニット１２は、マイクロフォン等の音声入力デバイスを含み、この音声入力デバイスが検出した音声を電気的な音声信号に変換し、さらに当該音声信号をＡ／Ｄ変換した結果（ディジタル音声信号）を、コントローラユニット１５に出力する。
【０００９】
タッチパネルユニット１３は、後に説明するディスプレイユニット１６の表示部分に重ね合わせられる透明電極を含み、この透明電極上で行なわれた利用者の操作の内容をコントローラユニット１５に出力する。
【００１０】
スキャナユニット１４は、フラットベッドスキャナを含み、読み取り面に載置された原稿を光学的に読み取って画像データを生成し、当該生成した画像データをコントローラユニット１５に出力する。
【００１１】
コントローラユニット１５は、図２に示すようにプロセッサ２１と、メモリ２２と、インタフェース部２３とを備える。ここでプロセッサ２１は、メモリ２２に格納されたプログラムに従って動作する。またこのプロセッサ２１は、複数のプログラムを並列的に実行して、複数のサービスを並列的に提供するようになっている。ここで提供される各サービスは、例えば顔認識を利用した利用者認証サービスや、音声認識を利用した音声指示入力サービスなどがある。また、スキャナユニット１４で読み取った画像データを、プリンタユニット１８に出力して印刷させる、コピーサービス等も実行される。本実施の形態では、タッチパネルユニット１３にて行なわれた指示に従い、実行するサービスを決定して、実行するサービスに対応するプログラムを選択的に読み出して実行を開始するためのサービス（以下、エージェントマネージャサービスと呼ぶ）も実行されているものとする。このプロセッサ２１の動作については後に詳しく述べる。
【００１２】
コントローラユニット１５のメモリ２２は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等の記憶素子を含んで構成される。このメモリ２２にはプロセッサ２１によって実行される各種サービスのプログラムが格納される。また、このメモリ２２は、プロセッサ２１のワークメモリとしても動作する。さらに本実施の形態においては、このメモリ２２が共有記憶部として動作する。このメモリ２２の共有記憶部としての利用態様については、後に詳しく述べる。
【００１３】
インタフェース部２３は、例えばＵＳＢ（Universal Serial Bus）などであり、カメラユニット１１と、マイクユニット１２と、タッチパネルユニット１３と、スキャナユニット１４と、ディスプレイユニット１６と、音声合成ユニット１７と、プリンタユニット１８とに接続される。このインタフェース部２３は、これらの各部との間で情報の入出力を行ない、入力された情報をプロセッサ２１に出力するとともに、プロセッサ２１から入力される指示に従って、指定された出力先に指定された情報を出力する。
【００１４】
ディスプレイユニット１６は、例えば液晶ディスプレイ等であり、コントローラユニット１５から入力される指示に従って情報を表示出力する。音声合成ユニット１７は、コントローラユニット１５から入力される指示に従って、音声信号を合成し、当該合成した音声信号に対応する音声を鳴動する。プリンタユニット１８は、コントローラユニット１５から入力される指示に従って用紙等の媒体上に画像を形成する。
【００１５】
［コントローラユニットの動作］
ここでコントローラユニット１５のプロセッサ２１による処理の具体的な内容について述べる。このコントローラユニット１５は、機能的には図３に示すように、インタフェース部２３を介して接続される各入出力デバイスごとに設けられるデバイスサービス部３１ａ，ｂ…と、共有記憶部３２と、エージェントマネージャサービス部３３と、複数のエージェント部３４ａ，ｂ…とを含んで構成される。
【００１６】
デバイスサービス部３１は、対応する入出力デバイスのデバイスドライバ及び、対応する入出力デバイスが出力する情報（当該入出力デバイスが入力デバイスとして動作する場合に出力する情報）に関して、予め定めた処理を行った結果の情報を共有記憶部３２に出力する。このデバイスサービス部３１が本発明の入出力要素として機能する。
【００１７】
［デバイスサービスの一例］
例えば、カメラユニット１１に対応するデバイスサービス部３１ａは、図４に示すように、カメラドライバ４１と、第１ローカル共有記憶部４２と、複数の処理要素４３ａ，ｂ…と、第２ローカル共有記憶部４４と、インタフェース部４５とを含んで構成される。
【００１８】
そしてこのカメラドライバ４１は、カメラユニット１１から画像データの入力を受けると、図示しない時計部（カレンダチップ等によって日時を計時する要素）から日時の情報を読み出して、当該日時の情報をタイムスタンプ情報として、画像データと、このタイムスタンプ情報とを関連づけて第１ローカル共有記憶部４２の所定の領域に書き込む。第１ローカル共有記憶部４２は、制御部２１の処理とメモリ２２とによって実現され、メモリ２２の予め定められた一部を用いて、カメラドライバ４１が書き込む画像データとタイムスタンプ情報とを保持する。また、この第１ローカル共有記憶部４２は、複数の処理要素４３の各々に対して画像データが書き込まれたことを報知する信号（本発明のイベント情報の一つ）を出力する。
【００１９】
処理要素４３は、ここでは、第１ローカル共有記憶部４２に格納された画像データから顔部分を検出する顔検出処理要素４３ａと、予め登録された顔データと検出された顔部分の画像とを比較して利用者を認証する顔認証処理要素４３ｂと、検出された顔の傾き等の情報を分析する顔情報分析処理要素４３ｃと、検出された顔の位置の情報を出力する位置推定処理要素４３ｄとを含む。ここで処理要素４３は、処理の基礎とした画像データに関連づけられたタイムスタンプを、処理結果に関連づけて第２ローカル共有記憶部４４に格納するものとする。
【００２０】
これら処理要素４３は、第１ローカル共有記憶部４２及び第２ローカル共有記憶部４４に格納されている画像データを用いて処理を行い、処理の結果を第２ローカル共有記憶部４４に格納する。第２ローカル共有記憶部４４は、第１ローカル共有記憶部４２と同様に、制御部２１の処理とメモリ２２とによって実現され、メモリ２２の予め定められた一部を用いて、処理要素４３が出力する処理の結果を保持する。また、この第２ローカル共有記憶部４２は、複数の処理要素４３の各々と、インタフェース部４５とに対して処理の結果が格納されたことを報知する信号（本発明のイベント情報の一つ）を出力する。
【００２１】
インタフェース部４５は、第２ローカル共有記憶部４４からの報知を受けると、当該第２ローカル共有記憶部４４に格納された処理の結果の情報を、共有記憶部３２に出力する。
【００２２】
ここでの例では、顔検出処理要素４３ａの処理結果が、他の処理要素４３ｂ，ｃ，ｄによって用いられることとなっており、次のように動作する。まず、カメラドライバ４１が入力された画像データをその入力の時点を表すタイムスタンプに関連づけて第１ローカル共有記憶部４２に格納すると、第１ローカル共有記憶部４２は当該画像データとタイムスタンプとを関連づけて保持するとともに、画像データの入力を受けたことを報知する信号を各処理要素４３に出力する。この報知信号は、例えば格納されたタイムスタンプそのものでよい。
【００２３】
各処理要素４３は、この報知信号を受けて、第１ローカル共有記憶部４２と第２ローカル共有記憶部４４とに、当該報知信号で示されたタイムスタンプに関連づけられている、処理に必要なデータが格納されているか否かを調べる。
【００２４】
ここでは、顔検出処理要素４３ａが第１ローカル共有記憶部４２内に、撮像された画像データが格納されていればよいだけであるのに対して、他の処理要素４３ｂ，ｃ，ｄは、顔検出処理要素４３ａの処理結果（入力された報知信号で表されるタイムスタンプに関連づけられたもの）が第２ローカル共有記憶部４４に格納されていなければ処理を行えない。
【００２５】
従って顔検出処理要素４３ａのみが処理を開始し、第１ローカル共有記憶部４２から、報知信号で表されるタイムスタンプと、それに関連づけられた画像データを読出して、当該画像データから顔部分を認識する処理を実行する。この処理は、予め定められた肌色を用いる処理や、ニューラルネットワークを用いたパターンマッチング処理等、種々の方法で実現できる。顔検出処理要素４３ａは、この処理で検出した顔画像部分の画像データと、元の画像データ内の当該顔画像部分の座標位置（顔画像部分を含む矩形領域の左上及び右下座標など）と、処理の対象となった画像データに関連づけられているタイムスタンプとを、相互に関連づけて、第２ローカル共有記憶部４４に格納する。
【００２６】
すると、第２ローカル共有記憶部４４が、各処理要素４３に対して（データの入力元である顔検出処理要素４３ａを除いてもよい）データが格納されたことを報知する報知信号を出力する。ここでも報知信号は、格納されたタイムスタンプの情報そのものでよい。
【００２７】
報知信号を受けた各処理要素４３は、第１ローカル共有記憶部４２と第２ローカル共有記憶部４４とに、当該報知信号で示されたタイムスタンプに関連づけられている、処理に必要なデータが格納されているか否かを調べる。
【００２８】
ここでは、顔検出処理要素４３ａによる検出処理結果が、報知信号で示されるタイムスタンプに関連づけて第２ローカル共有記憶部４４に格納されており、また、同じタイムスタンプに関連づけられた画像データが第１ローカル共有記憶部４２に格納されているので、他の各処理要素４３も処理を開始し、顔認証処理要素４３ｂは予め登録された顔データと検出された顔部分の画像とを比較して利用者を認証し、認証した利用者を特定する情報（利用者名など）を、報知信号で表されたタイムスタンプに関連づけて、第２ローカル共有記憶部４４に格納する。
【００２９】
また、顔情報分析処理要素４３ｃは、第２ローカル共有記憶部４４に格納されている検出された顔の画像から、その顔の傾き等の情報を分析する。この分析の処理は、顔の傾きの画像パターンを学習したニューラルネットワークを用いる処理などで実現できる。そして、顔情報分析処理要素４３ｃは、報知信号で表されたタイムスタンプに関連づけて、分析の結果である傾きの値の情報を第２ローカル共有記憶部４４に格納する。
【００３０】
さらに、位置推定処理要素４３ｄは、検出された顔の位置の情報を出力する第２ローカル共有記憶部４４に格納されている、顔検出処理要素４３ａによる検出処理結果のうち、顔画像部分の座標位置の情報を、報知信号で表されたタイムスタンプに関連づけて、第２ローカル共有記憶部４４に格納する。
【００３１】
なお、各処理要素４３は、報知信号の入力を受けたときに、当該報知信号の表すタイムスタンプに関連づけられた自らの処理結果が既に出力されているときには、当該報知信号を無視して処理を開始しないこととしてもよい。
【００３２】
なお、この例において、インタフェース部４５は、第２ローカル共有記憶部４４に新たに処理結果が格納されるごとに、報知信号を受信して、第２ローカル共有記憶部４４に格納されている各情報を、共有記憶部３２に出力する。従って共有記憶部３２には、処理の結果とともに当該処理の元となった画像データが入力された日時を表すタイムスタンプとが出力されることとなる。
【００３３】
［他のデバイスサービス］
さらに他のデバイスサービス部３１も同様にして、例えば、マイクユニット１２に対応するデバイスサービス部３１ｂは、マイクユニット１２が出力する音声信号を分析して音声認識の結果を共有記憶部３２に出力する。このデバイスサービス部３１ｂもまた、分析の結果である音声の入力日時を表すタイムスタンプを、音声認識の結果に関連づけて出力する。
【００３４】
また、出力デバイスであるディスプレイユニット１６や、音声合成ユニット１７、プリンタユニット１８等に対応するデバイスサービス部３１は、共有記憶部３２に格納されているデータを参照して、表示出力、音声合成出力、画像形成出力の各処理を実行する。
【００３５】
［共有記憶部］
共有記憶部３２は、制御部２１の処理とメモリ２２とによって実現される。この共有記憶部３２は、制御部２１の処理によりメモリ２２の予め定められた一部を用いて、情報の入力を行う入出力デバイスに係るデバイスサービス部３１から出力されるデータを保持する。この共有記憶部３２は、図５に例示するように、デバイスサービス部３１が出力する各処理結果の情報種類ごとに所定スロット数のリングバッファを設け、データが入力されるごとに、リングバッファ内のスロットのうち、書込みポインタが示すスロットに、処理結果の情報とタイムスタンプの情報とを関連づけて上書きして保持し、書込みポインタの位置を次のスロットに移す。
【００３６】
またこの共有記憶部３２は、制御部２１の処理としてエージェントマネージャサービス部３３や、エージェント部３４などから、指定したデバイスサービス部３１に対してイベント情報を通知する指示を受けて、当該指定されたデバイスサービス部３１に対してイベント情報を通知する。ここでイベント情報は、例えば画像形成の開始の指示等である。
【００３７】
また共有記憶部３２は、制御部２１の処理としてデバイスサービス部３１からエージェントマネージャサービス部３３や、エージェント部３４のうち指定したものへのイベント情報を通知する指示を受けて、当該指定されたエージェントマネージャサービス部３３や、エージェント部３４に対してイベント情報を通知する。ここでイベント情報は、例えば新規なデータの格納の報知や、入出力デバイスで生じたエラーの情報等である。
【００３８】
なお、ここでは制御部２１が共有記憶部３２を実現するため、メモリ２２への情報の格納や、イベント情報の通知などを行うこととしたが、例えばメモリ管理用のハードウエア（ＭＭＵ）などによって、これらの処理が実現されてもよい。
【００３９】
［エージェントマネージャサービス部］
本実施の形態では、デバイスサービス部３１が共有記憶部３２に格納し得るデータと、起動するべきエージェントとを関連づけて、記憶部２２に格納しておく。例えば、利用者が、ディスプレイユニット１６において表示されたコピーボタンに対応するタッチパネルの部分を押下すると、タッチパネルユニット１３に対応するデバイスサービス部３１が、ディスプレイに表示された「コピー」のボタン部分を押下したことを表す情報を共有記憶部３２に格納することになる。
【００４０】
そこで、コピーボタンが押下されたことを表す情報に、複写機能を提供するエージェントを特定する情報を関連づけて、記憶部２２に格納しておく。
【００４１】
エージェントマネージャサービス部３３は、各デバイスサービス部３１が共有記憶部３２上に格納するデータを監視し、格納されたデータに関連づけられた情報で特定されるエージェントがあれば、当該エージェントのソフトウエアを記憶部２２から読み出して実行を開始する。例えば上述のように、コピーボタンが押下されたことを表す情報が共有記憶部３２に格納されると、複写機能を提供するエージェントのプログラムの実行を開始し、複写機能用のエージェント部３４が起動される。
【００４２】
また本実施の形態では、記憶部２２が、図６に例示するように、デバイスサービス部３１ごとに、当該デバイスサービス部３１での処理結果を格納する共有記憶部３２上の位置（メモリアドレス情報）や、デバイスサービス部３１に対してイベント情報を通知する際の通知先の指定（通信アドレス情報）を関連づけて、サービスディレクトリ情報として保持している。
【００４３】
そしてエージェントマネージャサービス部３３は、エージェント部３４からの要求に応答し、当該要求において指定されたデバイスサービス部３１について、当該指定されたデバイスサービス部３１の処理結果が格納されている位置を表すメモリアドレス情報や、イベント情報の通知先である通信アドレス情報を、要求元のエージェント部３４に対して出力する。
【００４４】
［エージェント部］
本実施の形態では、このサービス実行装置である複合機１が提供するサービスごとに、複合機１がエージェントとして機能するためのプログラムが予め記憶部２２に格納されている。そしてエージェントマネージャ部３３の指示によって、その少なくとも一部が読み出されてプロセッサ２１によって実行され、エージェント部３４として機能するようになる。
【００４５】
例えば、既に述べたように、複合機１を複写機として機能させるための、複写機能を提供するエージェント（サービス関連処理）のプログラムが記憶部２２に格納される。そして、エージェントマネージャ部３３の動作により、プロセッサ２１がこの複写機能のエージェントの実行を開始すると、複写機能を実現するエージェント部３４が起動されることとなる。
【００４６】
こうして起動されるエージェント部３４は、共有記憶部３２にアクセスして、共有記憶部３２を介してデバイスサービス部３１へイベント情報を通知する。そして、イベント情報に応答して、または、デバイスサービス部３１が自発的に共有記憶部３２に格納しているデータを利用し、プログラムによる所定のサービス処理を実行し、その結果を共有記憶部３２を介してデバイスサービス部３１へ出力し、あるいはデバイスサービス部３１へイベント情報を通知するなどの処理を行う。
【００４７】
以下、利用者が複写の指示を行った場合の本実施の形態の複合機１の一連の動作を説明し、併せてエージェント部３４の動作について説明する。
【００４８】
ディスプレイユニット１６において表示されたコピーボタンに対応するタッチパネルの部分を押下すると、タッチパネルユニット１３に対応するデバイスサービス部３１が、ディスプレイに表示された「コピー」のボタン部分を押下したことを表す情報を共有記憶部３２に格納する。
【００４９】
コピーボタンが押下されたことを表す情報が共有記憶部３２に格納されると、エージェントマネージャ部３３が複写機能を提供するエージェントのプログラムの実行を開始し、複写機能のエージェントであるエージェント部３４（以下、複写エージェント部３４ａと呼ぶ）が起動される。
【００５０】
複写エージェント部３４ａは、起動されると、エージェントマネージャ部３３に対して、スキャナユニット１４に対応する通信アドレス情報を要求する。そして複写エージェント部３４ａはこの要求に対してエージェントマネージャ部３３が提供する通信アドレス情報を取得する。
【００５１】
次いで複写エージェント部３４ａは、取得した通信アドレス情報で示される宛先に読み取りの指示を表すイベント情報を出力するよう、共有記憶部３２に指示する。
【００５２】
共有記憶部３２はこの指示に基づいて、スキャナユニット１４に対応するデバイスサービス部３１ｄに対して読み取りの指示を通知する。デバイスサービス部３１ｄは、スキャナユニット１４に原稿の読み取りを行わせる。これによりスキャナユニット１４が読み取り面に載置された原稿を光学的に読み取って画像データを生成し、当該生成した画像データをコントローラユニット１５に出力する。
【００５３】
この画像データは、デバイスサービス部３１ｄによって所定のデータ形式の画像データに変換され、共有記憶部３２の所定位置に格納される。共有記憶部３２は、新規のデータが格納されたことを各エージェント部３４に報知する。複写エージェント部３４ａは、この報知を受けて、デバイスサービス部３１ｄが格納した画像データを読み取る。
【００５４】
そして複写エージェント部３４ａは、この画像データを、画像形成に適した形式に変換する。例えばこの読み取った画像データがＲＧＢ（赤、緑、青の色空間）値で表現された画像データであればこれをＣＭＹＫ（シアン、マゼンタ、イエロー、ブラックの色空間）値で表現された画像データ（形成用画像）に変換する。
【００５５】
さらに複写エージェント部３４ａは、エージェントマネージャ部３３に対してプリンタユニット１８に対応するデバイスサービス部３１ｈに割り当てられたメモリ領域の情報（メモリアドレス情報）と、イベント情報の通知先（通信アドレス情報）と要求し、当該メモリアドレス情報と通信アドレス情報とを取得する。複写エージェント部３４ａは、取得したメモリアドレス情報が示す共有記憶部３２上の記憶領域に、変換処理して得た形成用画像を格納する。また、エージェントマネージャ部３３から取得した通信アドレス情報宛に、印刷指示を出力するよう共有記憶部３２に指示する。
【００５６】
共有記憶部３２はこの指示に基づいて、プリンタユニット１８に対応するデバイスサービス部３１ｈに対して印刷の指示を通知する。デバイスサービス部３１ｈは、プリンタユニット１８に、共有記憶部３２の対応位置に格納された形成用画像を出力して、画像の形成を行わせる。これによりプリンタユニット１８が、スキャナユニット１４にて読み取られた画像データに対応する画像を形成することとなり、複写が行われる。
【００５７】
［利用者の認証］
また本実施の形態の複写機１では、デバイスサービス部３１ａによって、カメラユニット１１が撮像した画像データに含まれる利用者の顔から、利用者を認証した結果が共有記憶部３２に格納されているので、複写エージェント部３４ａは、この結果を利用して、認証されない利用者の複写指示については、処理を行わないようにしてもよい。
【００５８】
［認証結果の利用例］
さらに、デバイスサービス部３１ｂが行う音声認識の処理において、この利用者の認証結果を利用してもよい。すなわちデバイスサービス部３１ｂは、マイクユニット１２から入力された音声信号を、当該入力の日時を表すタイムスタンプ情報とともに、ローカルに確保したメモリ領域に格納する。
【００５９】
そしてデバイスサービス部３１ｂは、当該タイムスタンプ情報にもっとも近い日時のタイムスタンプ情報に関連づけられて、共有記憶部３２に格納された利用者の認証結果の情報を参照して、利用者を特定する情報を取得し、当該情報で特定された利用者が予め登録した発声音を利用して音声認識処理を実行する（いわゆる話者特定音声認識処理）。
【００６０】
このように、本実施の形態では、入力される情報についてタイムスタンプ情報を関連づけて利用できるため、入力される情報によって入力速度や処理速度が異なっても、相互に同期させた処理が実行可能となっている。
【００６１】
すなわち本実施の形態によれば、入出力される情報相互を同期させつつ、複数のソフトウエアモジュール間で共有できる。
【００６２】
［変形例］
なお、ここまでの説明では、図３のように、共有記憶部３２が一つだけとした例を示したが、共有記憶部３２を複数設けてもよい。また、複数の共有記憶部３２のそれぞれは、主として情報の入力を行なうデバイスサービス部３１を接続する入力系共有記憶部３２と、主として情報の出力を行なうデバイスサービス部（いわばサービスエンティティ）３１を接続する出力系共有記憶部３２とというように、割り当ててもよい。この場合、エージェント部３４や、エージェントマネージャサービス部３３は、各共有記憶部３２に接続される。また、プロセッサ２１も複数あってもよく、ネットワークによって接続された複数のコンピュータシステム上に分散されていてもよい。この場合には、SOAP（Simple Object Access Protocol）もしくはCORBA（Common Object Request Broker Architecture）のようなＲＰＣ（Remote Procedure Call）を用いて、共有記憶部へのアクセスを可能にすればよい。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施の形態に係るサービス実行装置の構成例を表すブロック図である。
【図２】本発明の実施の形態に係るサービス実行装置におけるコントローラユニットの例を表す構成ブロック図である。
【図３】本発明の実施の形態に係るサービス実行装置の一例を表す機能ブロック図である。
【図４】本発明の実施の形態に係るサービス実行装置におけるデバイスサービス部の一例を表す機能ブロック図である。
【図５】本発明の実施の形態に係るサービス実行装置の共有記憶部に格納されるデータの構造例を表す説明図である。
【図６】本発明の実施の形態に係るサービス実行装置におけるデバイスのサービスディレクトリの一例を表す説明図である。
【符号の説明】
【００６４】
１  複合機、１１  カメラユニット、１２  マイクユニット、１３  タッチパネルユニット、１４  スキャナユニット、１５  コントローラユニット、１６  ディスプレイユニット、１７  音声合成ユニット、１８  プリンタユニット、２１  プロセッサ、２２  メモリ、２３  インタフェース部、３１  デバイスサービス部、３２  共有記憶部、３３  エージェントマネージャサービス部、３４  エージェント部、４１  カメラドライバ、４２  第１ローカル共有記憶部、４３  処理要素、４４  第２ローカル共有記憶部、４５  インタフェース部。
【図１】
2007241458.tif 000003
【図２】
2007241458.tif 000004
【図３】
2007241458.tif 000005
【図４】
2007241458.tif 000006
【図５】
2007241458.tif 000007
【図６】
2007241458.tif 000008