JPWO2012131962A1 - タスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法 - Google Patents

タスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法 Download PDF

Info

Publication number
JPWO2012131962A1
JPWO2012131962A1 JP2013506962A JP2013506962A JPWO2012131962A1 JP WO2012131962 A1 JPWO2012131962 A1 JP WO2012131962A1 JP 2013506962 A JP2013506962 A JP 2013506962A JP 2013506962 A JP2013506962 A JP 2013506962A JP WO2012131962 A1 JPWO2012131962 A1 JP WO2012131962A1
Authority
JP
Japan
Prior art keywords
task
service
information
unit
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013506962A
Other languages
English (en)
Other versions
JP5682705B2 (ja
Inventor
忠信 角田
忠信 角田
一雅 宇式
一雅 宇式
藤野 信次
信次 藤野
尚己 長谷川
尚己 長谷川
良章 川勝
良章 川勝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012131962A1 publication Critical patent/JPWO2012131962A1/ja
Application granted granted Critical
Publication of JP5682705B2 publication Critical patent/JP5682705B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group

Abstract

サーバ装置(101)は、ユーザと、ユーザの周辺状況に関する情報をコンテキスト情報として生成するコンテキスト生成部(201)と、ユーザが実行しようとするタスクを複数保持し、コンテキスト情報、およびあらかじめ定めたタスクの選択ルールにしたがってタスクを選択し、選択したタスクの実行を制御するタスク管理部(202)と、選択したタスクの実行に用いる機器(102,103)が実行するサービスを確認し、タスク管理部(202)が選択したタスクの実行に対応するサービスを機器(102,103)に通知し、実行させるサービス管理部(203)と、を備える。タスク管理部(202)は、タスクの選択ルールとして、タスクの優先度、およびタスク同士間であらかじめ設定した実行に関するタスク間の依存関係の情報を用いてタスクを選択する。

Description

本発明は、ユーザの状況に応じてタスクを実行するタスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法に関する。
センシングデバイス技術の発達により、ユーザの位置やユーザの周辺の環境情報などが容易に計測できるようになってきている。これらの計測データから、さまざまなコンテキストを取得することができ、このコンテキストを用いることにより、ユーザに対するタスクの実行を支援することができるようになってきている。このコンテキストとは、人やものの状況を示す情報であり、たとえば、ユーザAのコンテキストとしては、現在位置のオフィス名、時刻等の情報である。また、タスクとは、ユーザ、ユーザの端末、もしくはユーザの周辺の機器がおこなうべき作業であり、たとえば、ユーザが部屋に入ったときに「部屋の照明をつける」、ユーザが印刷をおこなうとき、ユーザの「文章を近くのプリンタで印刷する」などがタスクである。
コンテキストを用いたタスク実行支援に関連する従来技術としては、コンテンツ配信ネットワークに関して、ユーザのコンテキスト情報(ユーザの位置情報やネットワーク使用状況、作業状況)に基づいて、ユーザのアクセスポイント近傍のストレージに、ユーザの希望するコンテンツを移動し、負荷分散を実施するものがある(たとえば、下記特許文献1参照。)。また、ユーザのコンテキスト情報(通話相手の状態)を端末に表示するプレゼンスサービスにおいて、自身のコンテキストに応じて適切なプレゼンス情報提供アプリケーションを実行するものがある(たとえば、下記特許文献2参照。)。
特開2004−348495号公報 特開2008−282068号公報
しかしながら、上記の従来技術では、タスクを実行するための周辺機器が提供するサービスの確認をおこなうことができず、周辺機器が提供するサービスによって適切なタスクを選択することができない。上記のサービスとは、周辺機器が提供する粒度の小さい機能であり、たとえば、UPnP(Universal Plug and Play)におけるサービスであり、具体的には、プリンタがおこなう印刷サービス等がある。
また、従来技術は、単一のタスク実行のみを考慮したシステムであるため、複数のタスクがある場合に、ユーザのコンテキストを考慮した順でタスクを選択実行することができず、ユーザが所望するサービスを効率的に実行することができなかった。ユーザが所望するサービスは、複数のタスクの組み合わせのサービスであったり、ユーザが移動しながら移動先毎に異なるサービスを受けることなどが想定できるが、これを支援することができなかった。
開示のタスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法は、上述した問題点を解消するものであり、ユーザの状況に応じてユーザが所望するタスクを効率的に実行できることを目的とする。
上述した課題を解決し、目的を達成するため、開示技術は、ユーザと、ユーザの周辺状況に関する情報をコンテキスト情報として生成するコンテキスト生成部と、ユーザが実行しようとするタスクを複数保持し、前記コンテキスト情報、およびあらかじめ定めたタスクの選択ルールにしたがってタスクを選択し、当該タスクの実行を制御するタスク管理部と、前記タスクの実行に用いる機器が実行するサービスを確認し、前記タスク管理部が選択したタスクの実行に対応するサービスを前記機器に通知し、実行させるサービス管理部と、を含み、前記タスク管理部は、前記タスクの選択ルールとして、タスクの優先度、および前記タスク同士間であらかじめ設定した実行に関するタスク間の依存関係の情報を用いてタスクを選択する。
開示のタスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法によれば、ユーザの状況に応じてユーザが所望するタスクを効率的に実行できるという効果を奏する。
図1は、実施の形態にかかるタスク実行制御システムの概要構成を示す図である。 図2は、実施の形態1にかかるタスク実行制御システムの詳細構成を示す図である。 図3は、情報収集機能を説明するブロック図である。 図4は、コンテキスト生成部の処理を説明する図である。 図5は、コンテキスト生成部の処理を示すフローチャートである。 図6は、タスク管理部の処理を説明する図である。 図7は、タスク管理部の処理を示すフローチャートである。 図8は、サービス管理部の処理を説明する図である。 図9は、サービス管理部の処理を示すフローチャートである。 図10は、周辺機器連携部の処理を説明する図である。 図11は、周辺機器連携部のサービス検索処理を示すフローチャートである。 図12は、周辺機器連携部のタスクコントローラに関する処理を示すフローチャートである。 図13は、周辺機器の処理を説明する図である。 図14−1は、タスクの具体例を示す図表である。 図14−2は、タスクの依存関係を説明する図である。 図15は、端末あるいは周辺機器から収集したデータの一例を示す図表である。 図16は、生成されるコンテキスト情報の例を示す図表である。 図17は、コンテキスト取得制御情報の例を示す図表である。 図18は、タスク選択ルールの例を示す図表である。 図19は、タスク・サービス対応関係の例を示す図表である。 図20は、デバイス・サービス定義情報の例を示す図表である。 図21−1は、タスク選択ルールの例を示す図表である。 図21−2は、タスクの依存関係を説明する図である。 図22は、タスク・サービス対応関係の例を示す図表である。 図23は、コンテキスト取得制御情報の例を示す図表である。 図24は、登録タスクの追加情報の例を示す図表である。 図25は、タスクの実行手順を示すシーケンス図である。 図26は、実施の形態2にかかるタスク実行制御システムの構成を示す図である。 図27は、タスク管理部の処理を示すフローチャートである。 図28は、タスク管理部におけるタスク終了時、および端末停止時の処理を示すフローチャートである。 図29−1は、タスク管理部における実行待機のタスクのサービス確認の処理を示すフローチャートである(その1)。 図29−2は、タスク管理部における実行待機のタスクのサービス確認の処理を示すフローチャートである(その2)。 図30は、端末がおこなう処理を示すフローチャートである。 図31−1は、タスク実行の処理手順を示すシーケンス図である(その1)。 図31−2は、タスク実行の処理手順を示すシーケンス図である(その2)。 図31−3は、タスク実行の処理手順を示すシーケンス図である(その3)。 図31−4は、タスク実行の処理手順を示すシーケンス図である(その4)。 図32は、コンテキスト情報の例を示す図表である。 図33は、タスク管理情報の例を示す図表である。 図34は、タスク管理情報の例を示す図表である。 図35は、タスクコントローラ管理情報の例を示す図表である。 図36は、タスク・サービス対応情報の例を示す図表である。 図37は、タスクスケジューラが管理するタスク実行管理情報を示す図表である。
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。
開示の技術は、ユーザのタスク実行を制御する。たとえば、タスク実行制御を統括するタスク実行制御装置は、以下の制御処理をおこなう。
1.ユーザのコンテキストを生成する。
2.タスク管理機能は、ユーザのコンテキストに基づき、実行すべきタスクを選択する。各タスクには、選択ルール(優先度やタスクフローを示すタスク間同士の実行に関する依存関係)を設定しておく。
3.サービス管理機能は、最終的な出力デバイス(端末や周辺機器等)が有する利用可能サービス情報に基づき、タスクの実行可否を判断する。
4.周辺機器制御機能により、端末で実行するアプリケーションや、周辺機器を制御し、周辺機器でタスクを実行し、ユーザのコンテキストに対応したサービスを提供する。
(タスク実行制御システムの全体構成図)
図1は、実施の形態にかかるタスク実行制御システムの概要構成を示す図である。タスク実行制御システム100は、サーバ装置101と、複数の端末102と、複数の周辺機器(被制御機器)103と、を含む。これらサーバ装置101と、端末102と、周辺機器103とは、互いに情報通信ネットワーク104によって接続され、各種情報の交換をおこなう。情報通信ネットワークは有線ネットワークでも無線ネットワークでもよい。
サーバ装置101は、複数の端末102、および複数の周辺機器103と通信が可能なコンピュータであり、コンテキスト生成、タスク管理、サービス管理等の機能を有する。サーバ装置101内の各機能は、ROM、RAM等に格納されたソフトウェアをCPUにより実行することにより実現できる。これに限らず、ハードウェアにより実現することもできる。
端末102は、ユーザが所有する、情報通信部とコンピュータ処理部と、を含む装置であり、たとえば、パーソナル・コンピュータやノートパーソナル・コンピュータなどのPC、携帯電話、PDA、スマートフォンなどからなる。端末102には、位置を計測するGPSや加速度を検出する加速度センサなどの端末内蔵センサ112を備えてもよく、端末内蔵センサ112が計測した情報を集約し、サーバ装置101へ送ることにより、サーバ装置101におけるコンテキスト生成の情報として用いることができる。1つの端末102は、情報通信ネットワーク104を通じて複数の周辺機器103と通信をおこなうことが可能である。端末102内の各機能は、ROM、RAM等に格納されたソフトウェアをCPUにより実行することにより実現できる。これに限らず、ハードウェアにより実現することもできる。
周辺機器103は、情報通信部と、情報通信ネットワーク104からの情報により周辺機器103が有する各種機能を動作させることが可能な被制御部113を具備し、たとえば、コンピュータやプリンタ、プロジェクタ、テレビ、照明などからなる。周辺機器103についても、GPSや加速度センサなどの機器内蔵センサ114を具備していてもよい。機器内蔵センサ114が計測した情報を集約してサーバ装置101へ送ることにより、サーバ装置101におけるコンテキスト生成の情報として用いることができる。また、ユーザが所有する端末102についても、周辺機器103として用いることができる。
(実施の形態1)
図2は、実施の形態1にかかるタスク実行制御システムの詳細構成を示す図である。以下、タスク実行制御システム100のサーバ装置101と、端末102と、周辺機器103の内部機能について説明する。
(サーバ装置)
サーバ装置101は、コンテキスト生成部201と、タスク管理部202と、サービス管理部203と、センサ・端末情報集約部204と、を含む。
コンテキスト生成部201は、ユーザやその周囲の状況(コンテキスト)を判断し、ユーザやその周囲の状況の情報(コンテキスト)を生成する。コンテキストは、たとえば、場所や時間、ユーザの行為、身体の状態、能力、ユーザの周辺の環境などである。また、スケジュールや実施すべき仕事の情報など、ユーザが従事する業務に関連する情報なども含まれる。生成したコンテキスト情報は、タスク管理部202に出力される。
タスク管理部202は、タスク情報を保持し、ユーザのコンテキストや周辺機器103の情報にしたがってタスク実行を制御する。タスク管理部202は、コンテキスト取得制御情報保存部211と、登録タスク保存部212と、タスク選択ルール保存部213と、タスク選択部214と、を含む。
コンテキスト取得制御情報保存部211は、コンテキストの粒度やコンテキストの取得タイミングをコンテキスト取得制御情報としてコンテキスト生成部201に通知する。登録タスク保存部212は、ユーザが登録するタスクの一覧を格納する。タスク選択ルール保存部213は、タスクの優先順位や業務フローに基づいて、どのような順番でタスクを実行するかを設定する。タスク選択部214は、コンテキスト生成部201から通知されたコンテキスト情報を元に、登録タスク保存部212からタスク選択ルールに基づいて実行タスクを選択し、タスクスケジューラ214aによってタスク実行のスケジューリングをおこなう。
タスク選択ルールは、タスク毎にタスクIDを付して、各タスク毎に、コンテキスト条件と、各タスクの優先度(優先順位)と、各タスクが有する他のタスクに対する依存状態を示す依存タスク情報(依存タスクID)等を関連付けたテーブル形式とされている。タスクIDは、個々のタスクを識別するためのIDである。コンテキスト条件は、コンテキスト生成部201からの情報と照合する条件であり、条件に一致しているときに、該当するタスクを実行する。優先度は、実行可能なタスクが複数存在する場合に、優先度が高いタスクから順に実行するために設定される。依存タスクIDは、このタスクを実行する際に、終了していなければならない他のタスクのIDである。
サービス管理部203は、周辺機器103の利用可能なサービスを確認してタスク管理部202に通知し、タスク管理部202が選択したタスクを実行するために、必要なサービスを利用するための命令、もしくはプログラムを端末102に通知する。サービス管理部203は、タスク・サービス対応関係保存部221、利用可能サービスキャッシュ222、利用可能サービス確認部223、タスク・サービス確認部224、タスクコントローラ保存部225、タスクコントローラ管理部226、デバイス・サービス定義情報保存部227と、を含む。
タスク・サービス対応関係保存部221は、各タスクを実行するために必要なサービスの対応関係情報を格納する。テーブル参照により、タスクとサービスとの関連付けを得ることができる。利用可能サービスキャッシュ222は、端末102から通知された、端末102周辺の周辺機器103において利用可能なサービスを一時的に格納する。利用可能サービス確認部223は、タスクを実行するためのサービスが存在するかを利用可能サービスキャッシュ222を参照して確認し、該当サービスが存在しなければ端末102へ検索要求をおこなう。
タスク・サービス確認部224は、タスク管理部202から通知されたタスクが実行可能であるかを確認するため、タスク・サービス対応関係保存部221からタスクに対応するサービス情報を取得し、利用可能サービス確認部223から得られたサービス情報と照合する。タスクコントローラ保存部225は、タスクを実行するためのタスクコントローラを格納する。このタスクコントローラは、タスクを実行するためのサービスを制御するソフトウェアである。1つのタスクコントローラは、複数のサービスを制御することもできる。
タスクコントローラ管理部226は、タスクが実行可能であれば、タスクコントローラ保存部225から対応するタスクコントローラを取得し、端末102へ送信する。デバイス・サービス定義情報保存部227は、周辺機器103のデバイス・サービス定義を格納し、端末102に通知する。ここで、デバイス・サービス定義とは、周辺機器103がどのような種類のもので、周辺機器103の被制御部113がどのようなサービスを提供可能か記述したデータ、もしくはサービスを記録したファイルであり、たとえば、UPnPにおけるデバイス定義、サービス定義を記述したXMLファイルからなる。
センサ・端末情報集約部204は、端末102もしくは周辺機器103から通知されたセンサ情報、あるいは利用可能サービス確認部223から通知された周辺機器103の利用可能サービスの情報に基づきデータ集約をおこない、コンテキスト生成のための情報としてコンテキスト生成部201へ通知する。
(端末)
端末102は、端末内蔵センサ112と、周辺機器連携部231と、センサ・端末情報集約部232と、を含む。周辺機器連携部231は、端末102の周辺に存在する周辺機器103のサービスを発見してサーバ装置101に通知し、サーバ装置101からの命令、もしくはプログラムにしたがって周辺機器103の制御をおこなう。周辺機器連携部231は、サービス発見・通知部233と、タスクコントローラ実行部234と、を含む。
サービス発見・通知部233は、端末102の周辺の周辺機器103のサービスを発見し、サーバ装置101へ通知する。サービスの発見は、たとえば、UPnPにおけるM−SEARCHを用いる。タスクコントローラ実行部234は、サーバ装置101から通知されたタスクコントローラをダウンロードし、周辺機器103の制御、およびアプリケーション235の実行を統括する。センサ・端末情報集約部232は、端末102の周辺の周辺機器103の機器内蔵センサ114のセンサ情報からデータを収集して集約をおこない、サーバ装置101へ通知する。
(周辺機器)
周辺機器103は、被制御部113と、機器内蔵センサ114と、応答・広告部241と、を含む。応答・広告部241は、周辺機器103の周辺の端末102からの機器検索メッセージに対して応答をおこない、定期的に自身の存在や機器情報を端末102に広告する。被制御部113は、端末102からの制御命令にしたがい、周辺機器103が有する機能を制御する。
(サーバ装置の処理内容)
(センサ・端末情報集約部の処理について)
つぎに、上記構成における情報収集処理について説明する。図3は、情報収集機能を説明するブロック図である。図3を用いて、サーバ装置101および端末102に設けられるセンサ・端末情報集約部204,232におけるセンサ情報収集の処理を説明する。
端末102のセンサ・端末情報集約部232により集約されたセンサ情報は、サーバ装置101のセンサ・端末情報集約部204に収集され、端末102内のセンサ・端末情報集約部232と同様の処理をおこなう。端末102で集約されたセンサ情報は、サーバ装置101内のセンサ・端末情報集約部204に直接通知せず、別の端末102内のセンサ・端末情報集約部232によりセンサ情報を集約してからサーバ装置101へ集約した情報を送信することも可能である。また、周辺機器103内の機器内蔵センサ114で計測されたデータは、端末102のセンサ・端末情報集約部232に通知せず、直接、サーバ装置101内のセンサ・端末情報集約部204に通知することもできる。
端末102のセンサ・端末情報集約部232は、サーバ装置101へのセンサ情報転送にかかるトラフィック量の削減、および、データ処理量の削減のために、計測データを集約することができる。データの集約例は、たとえば、センサ・端末情報集約部232は、時刻10:00:00に計測したデータと、時刻10:00:05に計測したデータの平均値をとる。そして、センサ・端末情報集約部232は、10:00:00と10:00:05のデータを、算出した値により新たに10:00:00のデータに置き換える。これにより、2つのデータを1つのデータとして集約し、データサイズを小さくし、サーバ装置101に転送する。
(コンテキスト生成部の処理について)
図4は、コンテキスト生成部の処理を説明する図である。サーバ装置101のコンテキスト生成部201におけるコンテキストの生成と、タスク管理部202へのコンテキスト情報通知について説明する。コンテキスト生成部201は、センサ・端末情報集約部204からセンサ情報と、周辺機器103の情報を取得する。また、コンテキスト取得制御情報保存部211からコンテキスト取得制御情報を取得する。そして、これらセンサ情報と、周辺機器103の情報と、コンテキスト取得制御情報とに基づき、コンテキストを生成し、タスク選択部214に送る。
図5は、コンテキスト生成部の処理を示すフローチャートである。コンテキスト生成部201は、はじめに、センサ・端末情報集約部204からセンサ情報や周辺機器103の情報を取得する(ステップS501)。つぎに、取得した情報を元に、コンテキストの生成をおこなう(ステップS502)。つぎに、タスク管理部202よりコンテキスト取得制御情報を受信済みであるか判断し(ステップS503)、受信済みであれば(ステップS503:Yes)、現在、コンテキスト制御情報のコンテキスト取得タイミングであるかを判断する(ステップS504)。コンテキスト取得タイミングであれば(ステップS504:Yes)、コンテキストをコンテキスト取得制御情報に基づき加工(抽象化もしくは具体化)し(ステップS505)、タスク管理部202へコンテキスト情報を通知する(ステップS506)。
一方、現在、タスク管理部202のコンテキスト取得タイミングでなければ(ステップS504:No)、処理を終了し、次回のコンテキスト取得タイミング時に再度ステップS501以降の処理を実行する。
また、ステップS503の判断の結果、タスク管理部202よりコンテキスト取得制御情報を受信済みでなければ(ステップS503:No)、タスク管理部202よりコンテキスト取得制御情報を受信する(ステップS507)。そして、ステップS504以降の処理を実行する。
(タスク管理部の処理について)
図6は、タスク管理部の処理を説明する図である。タスク管理部202がおこなうタスクの選択と、サービス管理部203へのタスク情報の通知の処理について説明する。タスク選択部214は、コンテキスト情報と、タスク選択ルール保存部213に保存されたタスク選択ルール(優先度や依存タスクID等の情報を含む)に基づき、登録タスク保存部212より実行するタスクを選択する。そして、タスク選択部214は、タスク管理部202(タスク・サービス確認部224)の情報により実行可能なタスクが1つ以上存在する場合、選択したタスクのうち、最も優先順位が高いタスクの情報をサービス管理部203へ送信する。
サーバ装置101(タスク管理部202)には、管理者端末102aが接続され、コンテキスト取得制御情報をコンテキスト取得制御情報保存部211に保存する。また、タスク情報を登録タスク保存部212に保存する。また、タスクの優先度(優先順位)や、依存タスク(依存タスクID)の情報をタスク選択ルール保存部213に保存する。
図7は、タスク管理部の処理を示すフローチャートである。タスク管理部202のタスク選択部214が実行する処理について説明する。はじめに、タスク選択部214は、コンテキスト情報をコンテキスト生成部201から取得するまで待機し(ステップS701)、コンテキスト情報をコンテキスト生成部201から取得する(ステップS702)。
つぎに、タスク選択部214は、タスク選択ルールのテーブルに、受信したコンテキスト情報と一致するデータが存在するか判断する(ステップS703)。タスク選択部214は、一致するデータが存在すれば(ステップS703:Yes)、この一致するデータのうち、依存タスクIDのタスクが終了しているものが存在するか判断する(ステップS704)。
そして、タスク選択部214は、依存タスクIDのタスクが終了しているものが存在すれば(ステップS704:Yes)、依存タスクIDのタスクが終了しているタスクを選択し、そのうち、最も優先順位が高いタスクの情報をサービス管理部203へ送信する(ステップS705)。一方、タスク選択部214は、ステップS703において、受信したコンテキスト情報と一致するデータが存在しない場合(ステップS703:No)、およびステップS704において、依存タスクIDのタスクが終了しているものが存在しない場合(ステップS704:No)には、今回のタスク選択の処理を終了する。
タスク選択部214は、ステップS705の処理後、サービス管理部203よりタスク実行不可メッセージを受信したか判断する(ステップS706)。タスク実行不可メッセージを受信した場合には(ステップS706:Yes)、タスク選択部214は、登録タスク保存部212のタスク情報のうち実行不可タスクを除いたものの中から、コンテキスト情報とタスク選択ルールに基づき、実行するタスクを再度選択し(ステップS707)、ステップS703に戻る。一方、サービス管理部203よりタスク実行不可メッセージを受信しなかった場合は(ステップS706:No)、今回のタスク選択の処理を終了する。
(サービス管理部について)
図8は、サービス管理部の処理を説明する図である。サービス管理部203におけるサービスの確認と、タスクコントローラの送信の処理について説明する。タスク・サービス確認部224は、タスク管理部202(タスク選択部214)から通知されたタスクの情報を得る。また、タスク・サービス対応関係保存部221からタスクに対応するサービス情報を取得し、利用可能サービス確認部223からサービス情報を得る。これらの情報により、タスク・サービス確認部224は、通知されたタスクが実行可能であるかサービス情報と照合する。
タスクコントローラ管理部226では、タスク・サービス確認部224から実行可能なタスク情報(実行タスク情報)を得て、タスクコントローラ保存部225から対応するタスクコントローラを取得し、端末102へ送信する。デバイス・サービス定義情報保存部227では、周辺機器103のデバイス・サービス定義を格納しており、端末102により、端末102が発見した周辺機器103のサービスをデバイス・サービス定義情報保存部227を参照して通知を得る。利用可能サービスキャッシュ222は、端末102からの機器サービス情報を格納し、利用可能サービス確認部223により利用サービスの確認時に参照される。利用可能サービスキャッシュ222に格納された機器サービス情報は、一定時間後に削除される。
サーバ装置101(サービス管理部203)には、管理者端末102aが接続され、タスクと、サービスの関連付けの情報をタスク・サービス対応関係保存部221に保存する。また、タスクコントローラをタスクコントローラ保存部225に保存する。また、デバイス・サービス定義をデバイス・サービス定義情報保存部227に保存する。
図9は、サービス管理部の処理を示すフローチャートである。サービス管理部203が実行する処理について説明する。はじめに、タスク・サービス確認部224は、タスク情報をタスク管理部202から取得するまで待機し(ステップS901)、タスク情報をタスク管理部202から取得する(ステップS902)。つぎに、タスク・サービス確認部224は、タスク・サービス対応関係保存部221より、このタスクを実行するためのサービスを取得する(ステップS903)。
つぎに、タスク・サービス確認部224は、利用可能サービス確認部223を介して、利用可能サービスキャッシュ222に、このサービス情報が存在するか確認する(ステップS904)。サービス情報が存在する場合には(ステップS904:Yes)、タスクコントローラ管理部226は、タスクコントローラ保存部225よりこのタスクを実行するためのタスクコントローラを取得し(ステップS905)、このタスクコントローラを端末102へ送信し(ステップS906)、1つのタスクの処理を終了する。
ステップS904において、利用可能サービスキャッシュに、サービス情報が存在しない場合には(ステップS904:No)、端末102に対して利用可能サービス確認部223が周辺機器103のサービス検索要求を一定回数以上おこなったかを確認し(ステップS907)、一定回数以上おこなった場合には(ステップS907:Yes)、タスク・サービス確認部224は、タスク実行不可メッセージをタスク管理部202へ通知し(ステップS908)、1回の処理を終了する。
一方、ステップS907において、利用可能サービス確認部223が端末102に対して周辺機器103のサービス検索要求を一定回数以上行っていない場合には(ステップS907:No)、利用可能サービス確認部223は、端末102へ周辺機器103のサービス検索要求を通知し(ステップS909)、一定期間後に利用可能サービスキャッシュ222をチェックする(ステップS910)。この後、ステップS904に戻る。
(端末の処理内容)
(周辺機器連携部の処理について)
図10は、周辺機器連携部の処理を説明する図である。端末102の周辺機器連携部231がおこなうサービス検索、および、タスクコントローラによる機器の制御について説明する。サービス・発見通知部233は、サーバ装置101のサービス管理部203(利用可能サービス確認部223)からの周辺機器103のサービス検索要求に対応し、周辺機器103の検索をおこなう。そして、周辺機器103からの応答により、デバイス・サービス定義情報保存部227からこの周辺機器103のサービスを取得し、サービス管理部203の利用可能サービスキャッシュ222と、センサ・端末情報集約部232にこの周辺機器103のサービスを通知する。
タスクコントローラ実行部234は、サーバ装置101のサービス管理部203(タスクコントローラ管理部226)から受信したタスクコントローラにしたがって、アプリケーション235および周辺機器103を制御する。
図11は、周辺機器連携部のサービス検索処理を示すフローチャートである。周辺機器連携部231のサービス発見・通知部233がおこなうサービス検索処理について説明する。サービス発見・通知部233は、サーバ装置101のサービス管理部203(利用可能サービス確認部223)から周辺機器103のサービス検索要求を受信するまで待機し(ステップS1101)、サービス管理部203から周辺機器103のサービス検索要求を受信すると(ステップS1102)、サービス発見・通知部233は、周辺機器103の検索をおこなう(ステップS1103)。
つぎに、サービス発見・通知部233は、周辺機器103からの検索の応答を受信すると(ステップS1104)、周辺機器103からの検索の応答にしたがい、デバイス・サービス定義情報保存部227よりこの周辺機器103のサービスを取得する(ステップS1105)。そして、サービス発見・通知部233は、サービス管理部203の利用可能サービスキャッシュ222にこのサービスを通知し(ステップS1106)、また、センサ・端末情報集約部232にこのサービスを通知し(ステップS1107)、1回の処理を終了する。
図12は、周辺機器連携部のタスクコントローラに関する処理を示すフローチャートである。周辺機器連携部231のタスクコントローラ実行部234がおこなうタスクコントローラの受信から実行にかかる処理を説明する。はじめに、タスクコントローラ実行部234は、サーバ装置101のサービス管理部203(タスクコントローラ管理部226)からタスクコントローラを受信するまで待機し(ステップS1201)、サービス管理部203からタスクコントローラを受信すると(ステップS1202)、受信したタスクコントローラにしたがい、アプリケーション235および周辺機器103を制御し(ステップS1203)、1回の処理を終了する。
(周辺機器の処理内容)
図13は、周辺機器の処理を説明する図である。応答・広告部241は、端末102の周辺機器連携部231(サービス発見・通知部233)からの機器検索メッセージがあると、周辺機器103の存在や機器情報を応答する。被制御部113は、端末102の周辺機器連携部231(タスクコントローラ実行部234)からの制御命令にしたがい、周辺機器103が有する機能を実行制御する。機器内蔵センサ114は、センサ計測情報を端末102のセンサ・端末情報集約部232またはサーバ装置101のセンサ・端末情報集約部204に送る。
(タスク実行の具体的処理例)
(1.周辺機器との連携をおこなう例)
つぎに、タスク実行の具体的処理例について説明する。はじめに、周辺機器103によるタスクとして調理支援をおこなう例について説明する。
タスクは、料理の過程における個々の材料を準備・調理する作業であり、事前に登録した依存関係にしたがって自動的に調理をおこなう。そして、各周辺機器103(調理機器)は、端末102から操作可能である。調理機器には、機器内蔵センサ114として、温度センサやタイマが搭載されている。
図14−1は、タスクの具体例を示す図表である。登録タスク保存部212に保存されるハンバーグ調理にかかるタスクの情報1400を示す。タスクの情報1400は、タスクIDと、ユーザと、タスクからなる。タスクIDとしてT1〜T6が設定され、タスクIDがT1のタスクは「材料用意」であり、ユーザは「Aさん」であり、以下順に調理のタスクであり、タスクIDがT6のタスクは「材料を焼く」であり、ユーザは「Aさん」である。タスクT1〜T6は、周辺機器103である調理機器を端末102経由で制御する。また、タスクT1では端末102の図示しない表示部に、「材料用意」を指示する情報を表示しユーザに伝える。
図14−2は、タスクの依存関係を説明する図である。調理開始は、タスクT1から実行し、タスクT2とタスクT4は、依存関係が分岐しており同時に実行できるが、タスクT1の終了後に実行される依存関係にある。また、タスクT3は、タスクT2の実行後に実行される依存関係にある。また、タスクT5は、タスクT3と、タスクT4の終了後に実行される依存関係にある。タスクT6は、タスクT5の実行後に実行される依存関係にある。
すなわち、タスクT3の「玉葱炒め」と、タスクT4の「肉をひいてミンチに」という2つのタスクを終了していないと、タスクT5の「材料をまぜて成形」というタスクは調理上、実行できない。このようなタスク依存関係は、後述するタスク選択ルールとしてタスク選択ルール保存部213に保存される。なお、図中のP1,P2は優先度である。
図15は、端末あるいは周辺機器から収集したデータの一例を示す図表である。端末102の端末内蔵センサ112、もしくは周辺機器103の機器内蔵センサ114から通知される計測データの例を示す。図15に例示した計測データ1500は、周辺機器103としての調理器具(コンロ、鍋、フライパンなど)の温度センサを機器内蔵センサ114として用いる。端末102のセンサ・端末情報集約部232は、温度センサの値を計測し、コンテキスト情報生成に使用する。
図15に示す例では、時刻「10:00:00」にセンサID1のセンサの温度が「200.4℃」であり、この後、時刻「10:00:01」にセンサID1のセンサの温度が「200.6℃」であることを示している。
図16は、生成されるコンテキスト情報の例を示す図表である。図16のコンテキスト情報1600では、調理器具が高温か低温かという情報をコンテキストとして使用する。このコンテキスト情報1600は、具体的には、コンテキスト生成部201は、ユーザのAさんについて、設定した時刻「10:00:15」における場所として厨房にいることを検出し、これらを対応付けたコンテキスト情報を生成する。さらに詳細な場所として、コンロ1の温度が180℃以上、コンロ2の温度が200℃以上であることを検出している。図示のようにコンテキスト生成部201は、複数のユーザのコンテキスト情報を生成する。
図17は、コンテキスト取得制御情報の例を示す図表である。コンテキスト取得制御情報1700は、コンテキスト取得制御情報保存部211に保存され、コンテキストの粒度やコンテキストの取得タイミング等からなる。このコンテキスト取得制御情報1700の例を説明すると、ユーザのAさんについて、取得コンテキストが「温度」であり、取得タイミングが「条件一致時」、条件が「コンロ1の温度が180℃以上」である。コンテキスト生成部201は、調理器具が上記の温度に達したら、タスク管理部202に対し、コンテキストとして温度情報を通知する。
図18は、タスク選択ルールの例を示す図表である。タスク選択ルール保存部213に保存されるタスク選択ルール1800について説明する。タスク選択ルール1800は、上述した登録タスクについてのコンテキスト条件と、優先度と、依存タスクIDとからなる。たとえば、タスクT2のコンテキスト条件は「T1終了」、優先度は「P2」、依存タスクIDは「T1」である。優先度はP1<P2である。
図19は、タスク・サービス対応関係の例を示す図表である。タスク・サービス対応関係保存部221に保存されるタスク・サービス対応関係情報1900について説明する。タスク・サービス対応関係情報1900は、各タスクを実行するために必要な周辺機器103(調理機器)のサービスを対応付けたものである。たとえば、タスクT2のサービスは「野菜カッターサービス」であり、登録タスク(図14−1参照)のタスクT2「玉葱みじん切り」に対応するサービスである。
図20は、デバイス・サービス定義情報の例を示す図表である。デバイス・サービス定義情報保存部227に保存されるデバイス・サービス定義情報2000について説明する。デバイス・サービス定義情報2000は、周辺機器103である調理機器が提供するサービスを対応付けたものである。たとえば、デバイス(被制御部113)として「野菜カッター」のサービスは「野菜カッターサービス」である。
つぎに、上述した各設定内容に基づく、タスク(調理)の実行手順について説明する。はじめに、タスク管理部202は、タスク選択ルール1800により、コンテキスト条件NULLのタスクT1(材料用意)を選択し、実行する。この際、タスクT1に対応するサービスはNULLであるが、ユーザの端末102にどの材料が必要かのメッセージを表示する。
そして、サービス管理部203は、端末102を介して周辺機器103が実行したタスクT1が終了したことをタスク管理部202に通知する。これにより、タスク管理部202は、タスクT1の終了がコンテキスト条件であり、かつ、優先度が高いT2(玉葱みじん切り)を選択し、実行する。タスクT2の実行においては、周辺機器103の「野菜カッター」が提供するサービス「野菜カッターサービス」を利用する。
この後、サービス管理部203がタスクT2が終了したことをタスク管理部202に通知すると、タスク管理部202は、コンテキスト条件「T2「終了」&&コンロ1.温度≧180℃」が成立している場合、優先度P2のタスクT3(玉葱炒め)を選択し、実行する。コンテキスト条件が成立していなければ、先にタスクT4「肉をひいてミンチに」を実行することが可能である。タスクT3の実行においては、周辺機器103「コンロ1」が提供する「機器温度調整サービス」および「タイマサービス」を利用する。
この後、タスク管理部202は、まだタスクT4(肉をひいてミンチに)が実行されていなければ、タスクT4を実行する。タスクT4の実行においては、周辺機器103の「ミンチ機」が提供する「精肉ミンチ機サービス」を利用する。
そして、サービス管理部203は、タスクT3およびT4が終了し、タスク管理部202に終了通知すると、タスク管理部202は、タスクT3とタスクT4の終了がコンテキスト条件であるタスクT5「材料を混ぜて成形」を実行する。タスクT5の実行においては、周辺機器103「ミキサー」が提供する「材料ミキサーサービス」を利用する。
この後、サービス管理部203は、タスクT5が終了したことをタスク管理部202に通知すると、タスク管理部202は、タスクT5の終了がコンテキスト条件であるタスクT6「材料を焼く」を選択し、実行する。タスクT6の実行においては、周辺機器103の「コンロ2」が提供する「機器温度調整サービス」および「タイマサービス」を利用する。
以上説明したように、周辺機器が有する調理にかかる複数の機能について、複数のタスクの実行順序を管理し、実行することにより、料理を手際よく効率的におこなうことができるようになる。また、タスク同士の依存関係とタスクに付した優先度により、調理の手順を間違うことなく、そのときに必要な調理操作を適切に実行できるようになる。
(2.周辺機器との連携をおこなわない例)
つぎに、周辺機器103を用いずに、作業者が端末102だけを用いて車の修理作業の支援をおこなう例について説明する。また、この例では、場所を問わないため、場所にかかるコンテキストを使用しない。そして、修理手順は、端末102の表示部のWebブラウザで表示される。
以下に説明する修理作業は複数の修理工程で構成され、各修理工程がタスクに対応する。作業者は、修理の遂行にあわせて順次表示される修理手順にしたがって修理作業をおこなっていく。たとえば、「場所Aと、場所Bのネジを外して、パーツCを取り外す」等である。また、この例では、タスクの依存関係は、各タスクが直列に配置され、分岐はない。
概要を説明すると、1.はじめにサーバ装置101が端末102に対し、作業手順を説明するコンテンツのURLを送信する。2.URLを受け取った端末102は、ブラウザを起動すると共にブラウザにURLを通知する。3.端末102は、ブラウザが指定されたURLにアクセスし、作業手順を説明するコンテンツを表示する。4.作業者は、表示されたコンテンツにしたがって修理作業をおこなう。5.作業者は、1つの修理工程が完了すると、端末102のブラウザ上の「作業終了」ボタンを操作する。6.サーバ装置101は、端末102から作業終了の通知を受けて、つぎの修理工程を説明するコンテンツのURLを端末102に通知する。以降、一連の修理作業がすべて終了するまで、サーバ装置101は、端末102に対し、上記4.〜6.の処理を繰り返す。
つぎに、タスク依存関係について説明する。この車の修理作業であり、以下の前提を有するとする。修理作業は作業者Aによって実行され、修理作業の開始時刻は13:30とする。修理作業は、各タスクT1,T2,T3の3つの修理工程(タスク)で実現され、これらのタスクは順番に実行されなければならない。オイル交換を例にとると、各タスクは、タスクT1「古いオイルの除去」、タスクT2「エンジン内部の洗浄」、タスクT3「新しいオイルの投入」となる。
図21−1は、タスク選択ルールの例を示す図表である。タスク選択ルール保存部213に保存されるタスク選択ルール2100は、たとえば、作業者Aについて、タスクT2のコンテキスト条件は「T1終了」、優先度は「5」、依存タスクIDは「T1」である。優先度は値が高いほど優先度が高い。なお、図示の例では、優先度は同じとした。
図21−2は、タスクの依存関係を説明する図である。修理開始は、タスクT1から実行し、タスクT1が終了後にタスクT2が実行される依存関係にある。また、タスクT3は、タスクT2の実行後に実行される依存関係にある。
図22は、タスク・サービス対応関係の例を示す図表である。タスク・サービス対応関係保存部221に保存されるタスク・サービス対応関係情報2200は、図示のように、この例では、タスクの実行にあたって周辺機器103が提供するサービスを利用しないため、タスク・サービス対応関係情報2200にサービス情報は登録されない(NULLが登録される)。これに限らず、周辺機器103のサービスを利用しない場合には、タスク・サービス対応関係情報2200に、タスクT1〜T3のタスクIDを登録しない設定としてもよい。タスク・サービス確認部224は、タスク・サービス対応関係情報2200にタスクIDが未登録の場合は、周辺機器103利用サービスなし、と判断する。
図23は、コンテキスト取得制御情報の例を示す図表である。コンテキスト取得制御情報2300は、コンテキスト取得制御情報保存部211に保存され、コンテキストの粒度やコンテキストの取得タイミング等からなる。このコンテキスト取得制御情報2300の例を説明すると、ユーザの作業者Aについて、取得コンテキストが「時間」であり、取得タイミングが「条件一致時」、条件が「時刻13:30」である。コンテキスト生成部201は、時間が上記の時刻に達したら、タスク管理部202に対し、コンテキストとして時間情報を通知する。
図24は、登録タスクの追加情報の例を示す図表である。この図24を用いて、タスク追加情報について説明する。この例では、サーバ装置101が端末102に対してタスクの起動を要求する際、車の修理作業を説明するコンテンツのURLを端末102に通知する。登録タスク保存部212には、図24に示すタスクの情報2400として、タスクIDと、タスク毎の関連情報としてURLを格納する。
端末102に通知する追加情報(URL)については、以下のように管理する構成にできる。
1.コンテキスト生成部201で管理する。この場合、タスク管理部202は、コンテキスト生成部201から受信したタスク関連情報をそのまま端末102に送る。
2.コンテキスト生成部201からタスク起動要求を受信するアプリケーション235を定義し、このアプリケーション235が追加情報(URL)を管理する。この場合、アプリケーション235は、タスク関連情報を伴ったタスク起動要求をタスク管理部202に送信する。タスク管理部202は、アプリケーション235から受信したタスク関連情報をそのまま端末102に送る。
つぎに、上述した各設定内容に基づく、タスク(車の修理作業)の実行手順について説明する。はじめに、1.タスク管理部202は、タスクTxの起動が必要であることを認識すると、端末102に対してタスク起動要求メッセージを送信する。タスク起動要求メッセージには、起動すべきアプリケーション235として、一般的なWebブラウザ(端末102にあらかじめインストールしておく)と、WebブラウザがアクセスすべきURLを含む。
2.つぎに、端末102は、タスク起動要求メッセージを受信すると、Webブラウザを起動すると共に、Webブラウザにサーバ装置101から通知されたURLを渡し、このURLにアクセスする。
3.上記手順2.の結果、URLに対応するコンテンツを端末102の表示部に表示する。このコンテンツは、修理対象の車種に応じて、各タスクT1〜T3を実行するために必要な情報である。たとえば、修理対象車種のオイル交換手順(最初に箇所AのボルトBを外す、等)を示すコンテンツを表示する。
4.作業者は、端末102に表示されたコンテンツを閲覧しながらタスクに対応した修理作業をおこない、1つのタスク(修理工程)を完了したとき、端末102の表示部に表示される「作業終了」ボタンを操作する。
5.ボタンの操作により、端末102は、タスクTxが終了した旨の通知をタスク管理部202に通知する。
6.タスク管理部202は、タスクTxが終了した旨をコンテキスト生成部201に通知する。これにより、コンテキスト生成部201は、作業者のコンテキストを更新する。これにより、作業者の状態が「タスクTx終了」状態に遷移する。
7.コンテキストの更新に応じて、サーバ装置101は、タスク選択部214により新たなタスクの起動制御を開始する。以降、上記1.に戻り、つぎのタスクにかかる処理を実行する。
図25は、タスクの実行手順を示すシーケンス図である。図25に示したコンテンツ保持部2500は、コンテキスト生成部201の一部に設け、URLのコンテンツを保持する例とした。はじめに、サーバ装置101のコンテキスト生成部201が時刻「13:30」を検知し(ステップS2501)、タスク管理部202にコンテキスト情報通知する(ステップS2502)。このコンテキスト情報通知には、ユーザIDが作業者Aであり、時刻が13:30であることを含む。つぎに、タスク管理部202は、コンテキスト情報通知を受けて、作業者Aの端末102に対し、タスク起動要求をおこなう(ステップS2503)。このタスク起動要求は、アプリケーション235がブラウザ、URLが図24に示したタスクT1のURL(http://carA_oil1.html)である。
端末102では、タスクコントローラ実行部234がタスク起動要求を受け、アプリケーション235であるブラウザに起動要求する(ステップS2504)。この起動要求には、タスクT1のURL(http://carA_oil1.html)を含む。
端末102は、起動要求に基づき、サーバ装置101のコンテンツ保持部2500に対し、コンテンツ表示のためのHTTP要求をおこなう(ステップS2505)。HTTP要求は上記URLアドレスを含み、コンテンツ保持部2500は、HTTP応答を端末102のブラウザ235に返す(ステップS2506)。これにより、端末102では表示部上にWeb画面でタスクT1の修理工程の画面が表示され、タスクT1による1つの修理工程を表示部の表示画面を見ながら容易におこなえるようになる。
この後、作業者AがタスクT1の修理工程を完了したとき、端末102の表示部に表示される「作業終了」ボタンを操作すると(ステップS2507)、ブラウザ235は、タスク終了通知をサーバ装置101のタスク管理部202に送信する(ステップS2508)。このタスク終了通知には、ユーザIDが作業者Aであり、コンテキストがタスクT1終了を含む。
タスク管理部202は、タスク終了通知を受けると、タスクT1の終了後に実行される依存関係にあるタスクT2を次に実行すべきタスクとして選択し、作業者Aの端末102に対し、タスク起動要求をおこなう(ステップS2509)。以降、タスクT3についても上記同様の処理をおこなう。
以上説明した具体例によれば、周辺機器を用いたタスク実行に限らず、端末そのものを用いてタスク実行することもできるようになる。また、上述した車の修理について、複数のタスクの実行順序を管理し、実行することにより、修理を工程毎に手際よく効率的におこなうことができるようになる。また、端末の表示部の画面上には各修理工程毎に必要な情報を実際の画面を用いて表示することができるから、修理する際の場所や部品を間違うことがなく、各画面を切り替えていくだけで修理作業を終了させることができるようになる。
以上説明した実施の形態1によれば、ユーザやその周辺環境のコンテキストと、周辺機器が提供するサービスとに基づいて、優先順位やタスク間の依存関係を考慮して複数のタスクを順次実行することができる。これにより、ユーザの作業ミスや、作業効率の低下を抑えることができるようになる。また、コンテキスト処理と、タスク処理の切り分けを明確に区分しているため、コンテキスト処理のアルゴリズムの変更を容易におこなうことができ、タスク処理に影響を与えず、システムの開発を容易におこなうことができるようになる。
(実施の形態2)
実施の形態2は、新たなタスクの割り込みと、実行中のタスクの中断の処理をおこなう構成である。タスクの割り込みは、たとえば、あるユーザが定型的な仕事を実行していたときに、急に新たな仕事を処理しなければならないときなどに生じる。この実施の形態では、ユーザ単位で割り込み、および中断の処理をおこなう。
図26は、実施の形態2にかかるタスク実行制御システムの構成を示す図である。図26は、主に実施の形態1と異なる構成を抽出して記載してあり、他の構成は、実施の形態1(図2)とほぼ同様であるが、以下の点で異なる。コンテキスト生成部201には各タスクを起動するために満たされるべきコンテキスト条件が登録される。コンテキスト生成部201は、当該コンテキスト条件に基づいて起動可能なタスクの有無を判定し、起動可能なタスクが存在する場合には、当該タスクに関する情報がタスク選択部214に通知される。また、端末において、周辺機器103や端末画面の制御等、各タスクで行うべきすべての処理はアプリケーション235によって行われ、以後当該アプリケーションをタスクコントローラと呼ぶ。また、タスクコントローラ実行部234は、当該タスクコントローラの起動/中断/再開といったタスクコントローラに共通的な制御を行うものとして位置づけている。以下、実施の形態1と異なる構成について説明する。
(サーバ装置の構成)
タスク管理部202のタスク選択部214は、端末102のタスクコントローラ実行部234に対し、タスクの実行開始/中断/再開要求をおこない、タスクの実行開始/中断/再開応答を受ける。このタスク選択部214に設けられるタスクスケジューラ214aは、ユーザ毎に、コンテキスト生成部201からコンテキスト情報を受けて実行待ち状態にある1つ以上のタスク、および実行中のタスクに関する情報(タスクキュー)を管理する。
タスクスケジューラ214aは、実行中状態のタスクのIDと優先度(0個または1個のタスクの情報を管理)を実行中タスク2601として管理し、実行待ち状態にあるタスクのIDと優先度(0個以上のタスクの情報を管理)をタスクキュー2602を用いて管理する。タスクスケジューラ214aは、タスクIDと、タスクの優先度のリストに基づき端末102で実行可能なタスクを管理する。
登録タスク保存部212には、ユーザID2611と、タスクID2612と、タスク起動条件2613と、優先度2614と、実行状態2615の各情報がテーブル形式で保存されている。ユーザID2611は、タスクを実行すべきユーザのIDであり、実行すべきユーザを指定しない場合は、その旨を示すID(たとえば0)が保持される。タスクID2612は、タスクの識別子(ID)である。タスク起動条件2613は、タスクを起動するための条件である。優先度2614は、タスクの優先度である。実行状態2615は、タスクの実行状態(未実行、完了済み)を示している。
(端末の構成)
端末102のタスクコントローラ実行部234は、サーバ装置101のタスクスケジューラ214aの指示により、タスクコントローラの起動、中断、再開を制御する。また、タスクコントローラ実行部234は、タスクコントローラのインストール、アンインストールの制御もおこなう。
(タスク実行時の処理について)
図27は、タスク管理部の処理を示すフローチャートである。以下は、タスクスケジューラ214aがコンテキスト生成部201からの通知によってタスクを実行する場合の処理例を説明する。はじめに、タスクスケジューラ214aは、タスク起動条件が満足された旨の通知をコンテキスト生成部201から受信する(ステップS2701)。つぎに、タスクスケジューラ214aは、端末102が停止状態にあるか否かを判定する(ステップS2702)。停止中の場合は(ステップS2702:Yes)、ステップS2706に移行し、停止中でない場合は(ステップS2702:No)、ステップS2703に移行する。この判定は、端末停止フラグがセットされている場合は端末102が停止状態にあり、そうでない場合は停止状態にないと判定される。
ステップS2703では、タスクスケジューラ214aは、登録タスク保存部212から実行可能なタスクを選択する。つぎに、タスクスケジューラ214aは、端末102で現在実行中のタスクがあるか否かを判定する(ステップS2704)。実行中のタスクがある場合は(ステップS2704:Yes)、ステップS2705に移行し、実行中のタスクがない場合は(ステップS2704:No)、ステップS2708に移行する。
ステップS2705では、ステップS2703で選択された実行可能なタスクのうち、端末102で現在実行中のタスクよりも優先度の高いタスクがあるか否かを判定する。優先度の高いタスクがある場合は(ステップS2705:Yes)、ステップS2707に移行し、優先度の高いタスクがない場合は(ステップS2705:No)、ステップS2706に移行する。
ステップS2706では、ステップS2703で選択された実行可能なタスクのすべてをタスクキュー2602にアタッチして、上記の処理を終了する。タスクキュー2602は、コンテキスト生成部201において、タスク起動条件が満足されたと判定されたタスクのうち、端末102で実行されていないタスク(中断状態にあるタスクを含む)を管理するものである。
ステップS2707では、ステップS2703で選択された実行可能なタスクのうち、優先度が端末102で現在実行中のタスクと等しい、またはそれ以下のタスクをタスクキュー2602にアタッチする。ここで、タスクキュー2602にアタッチされなかった、優先度の高いタスクを実行候補タスクとする。
ステップS2708では、実行可否判定をおこなっていない実行候補タスクのうち、最も優先度の高いタスクの実行可否判定をサービス管理部203に要求する。タスク実行の際に、周辺機器103のサービスを使用しない場合は、タスクが即時実行される。ステップS2709では、ステップS2708の応答としてサービス管理部203から受信した判定結果、タスクが実行可能である場合は(ステップS2709:タスク実行可能)、ステップS2712に移行し、タスクが実行不可である場合は(ステップS2709:タスク実行不可)、ステップS2710に移行する。
ステップS2710では、サービス実行可否判定の結果、実行不可となったタスクをタスクキュー2602にアタッチする。ステップS2711では、サービス実行可否判定をおこなっていない実行候補タスクがあるか否かを判定し、実行候補タスクがある場合は(ステップS2711:Yes)、ステップS2708に移行し、実行候補タスクがない場合は(ステップS2711:No)、上記の処理を終了する。
ステップS2712では、端末102で現在実行中のタスクがあるか否かを判定する。実行中のタスクがある場合は(ステップS2712:Yes)、ステップS2713に移行し、実行中のタスクがなければ(ステップS2712:No)、ステップS2716に移行する。ステップS2713では、現在実行中のタスクの中断要求を端末102に送信する。ステップS2714では、現在実行中のタスクの中断完了通知を端末102から受信する。ステップS2715では、中断が完了したタスクについて、登録タスク保存部212内に登録されている状態を「中断中」に更新する。また、このタスクをタスクキュー2602にアタッチする。
ステップS2716では、ステップS2709で実行可能と判定されたタスクの実行開始要求を端末102に送信する。ステップS2717では、このタスクの実行開始応答を端末102から受信する。ステップS2718では、実行が開始されたタスクについて、登録タスク保存部212内に登録されている状態を「実行中」に更新する。また、このタスクを実行中タスクとして管理する。ステップS2719では、サービス実行可否判定をおこなっていない、残りすべての実行候補タスクをタスクキュー2602にアタッチして、上記の処理を終了する。
(タスク終了時、および端末停止時の処理について)
図28は、タスク管理部におけるタスク終了時、および端末停止時の処理を示すフローチャートである。端末102で実行中のタスクが終了した場合、および端末102が停止した場合の処理について説明する。端末102が停止した状態とは、ユーザが何らかの状況下で端末102を操作することでサーバ装置101からのタスク制御を受け付けない状態を意味する。
端末102のタスク終了時には、タスクスケジューラ214aは、端末102で実行していたタスクが完了し、タスク実行完了通知を端末102から受信する(ステップS2801)。つぎに、タスクスケジューラ214aは、タスク実行完了応答を端末102に送信する(ステップS2802)。つぎに、実行が完了したタスクについて、登録タスク保存部212内に登録されている状態を「完了」に更新する(ステップS2803)。そして、実行中タスクとして管理されていたこのタスク情報をクリアする(ステップS2804)。この後、つぎに実行するタスクを決定するための処理(ステップS2805)に移行する。
端末102の停止時には、ユーザが端末102の停止操作をおこなうと、タスクスケジューラ214aは、端末102から端末停止通知を受信する(ステップS2806)。これにより、タスクスケジューラ214aは、端末102の端末停止フラグをセットする(ステップS2807)。そして、端末停止応答を端末102に送信する(ステップS2808)。つぎに、タスクスケジューラ214aは、端末再開通知を端末102から受信したか否かを判定する(ステップS2809)。受信した場合は(ステップS2809:Yes)、端末102の端末停止フラグをリセットし(ステップS2810)、ステップS2805に移行する。端末再開通知フラグを受信していない場合は(ステップS2809:No)、新たにタスクの起動条件が満たされたタスクを、タスクキュー2602にアタッチし(ステップS2811)、ステップS2809に戻る。
(実行待機のタスクのサービス確認の処理について)
図29−1、および図29−2は、タスク管理部における実行待機のタスクのサービス確認の処理を示すフローチャートである。タスクキュー2602内で待機しているタスクの実行に必要なサービスの有無を周期的に確認する処理について説明する。図29に示す処理の一部は、端末102で実行中のタスクが終了した場合にも同様に実行される。
はじめに、タスクスケジューラ214aは、端末102が停止状態にあるか否かを判定する(ステップS2901)。停止状態である場合は(ステップS2901:Yes)、ステップS2904に移行し、停止状態でない場合は(ステップS2901:No)、端末102で現在実行中のタスクがあるか否かを判定する(ステップS2902)。実行中のタスクがある場合は(ステップS2902:Yes)、ステップS2903に移行し、実行中のタスクがない場合は(ステップS2902:No)、ステップS2905に移行する。
ステップS2903では、タスクスケジューラ214aは、タスクキュー2602内のタスクのうち、端末102で現在実行中のタスクよりも優先度の高いタスクがあるか否かを判定する。優先度の高いタスクがある場合は(ステップS2903:Yes)、ステップS2906に移行し、優先度の高いタスクがない場合は(ステップS2903:No)、タスクスケジューラ214aは、一定周期時間だけ待機して(ステップS2904)、終了する(その後、ステップS2901から処理が再開される)。一定周期は、タスクキュー2602内に存在するタスクの優先度に応じて動的に変えてもよい。たとえば、優先度が高いタスクほど、周期を短くするなど。また、周期をタスク毎に変えるようにしてもよい。
ステップS2905では、タスクスケジューラ214aは、タスクキュー2602内のすべてのタスクを実行候補タスクとし、ステップS2907に移行する。ステップS2906では、タスクスケジューラ214aは、端末102で現在実行中のタスクよりも優先度の高いタスク(の集合)を実行候補タスクとし、ステップS2907に移行する。
ステップS2907では、タスクスケジューラ214aは、実行可否判定をおこなっていない実行候補タスクのうち、最も優先度の高いタスクの実行条件が満足されているか否かをコンテキスト生成部201に確認する。すなわち、候補タスクについて現コンテキストで実行(再開)可能であるかを確認する。つぎに、タスクスケジューラ214aは、ステップS2907の確認の結果に基づいて、このタスクの実行が可能か判断する(ステップS2908)。タスクの実行が不可能な場合は(ステップS2908:No)、ステップS2909に移行し、タスクの実行が可能な場合は(ステップS2908:Yes)、ステップS2910に移行する。
ステップS2909では、タスクスケジューラ214aは、コンテキストが変わったことにより、タスクの起動条件が満足されていないタスクについては、再度コンテキスト生成部201にタスク起動条件を再設定する。また、当該タスクをタスクキュー2602からデタッチし、ステップS2919に移行する。
ステップS2910では、タスクスケジューラ214aは、タスクの実行可否判定をサービス管理部203に要求し、この応答としてサービス管理部203から受信した判定の結果、タスクが実行可能である場合は(ステップS2911:実行可能)、ステップS2912に移行し、タスクが実行不可である場合は(ステップS2911:実行不可)、ステップS2919に移行する。
ステップS2912では、タスクスケジューラ214aは、端末102で現在実行中のタスクがあるか否かを判定する。実行中のタスクがある場合は(ステップS2912:Yes)、ステップS2913に移行し、実行中のタスクがない場合は(ステップS2912:No)、ステップS2916に移行する。
ステップS2913では、タスクスケジューラ214aは、現在実行中のタスクの中断要求を端末102に送信する。つぎに、タスクスケジューラ214aは、現在実行中のタスクの中断完了通知を端末102から受信する(ステップS2914)。この後、中断が完了したタスクについて、登録タスク保存部212内に登録されている状態を「中断中」に更新する。また、当該タスクをタスクキュー2602にアタッチする(ステップS2915)。そして、ステップS2911で実行可能と判定されたタスクの実行開始要求を端末102に送信する(ステップS2916)。なお、実行可能と判定されたタスクの状態が「中断中」である場合には、端末102にタスクの再開要求を送信する。
この後、タスクスケジューラ214aは、このタスクの実行開始応答を端末102から受信する(ステップS2917)。なお、ステップS2916でタスクの再開要求を送信した場合には、タスクの再開応答を受信する。そして、タスクスケジューラ214aは、実行が開始されたタスクについて、登録タスク保存部212内に登録されている状態を「実行中」に更新する。また、このタスクを実行中タスクとして管理し(ステップS2918)、ステップS2904に移行する。
ステップS2919では、タスクスケジューラ214aは、実行可否判定をおこなったタスクを、判定済みとする。この後、実行可否判定をおこなっていない実行候補タスクがあるか否かを判定する(ステップS2920)。実行可否判定をおこなっていない実行候補タスクがある場合は(ステップS2920:Yes)、ステップS2907に移行し、実行可否判定をおこなっていない実行候補タスクがない場合は(ステップS2920:No)、ステップS2904に移行する。
(端末の処理について)
図30は、端末がおこなう処理を示すフローチャートである。端末102のタスクコントローラ実行部234が実行する処理について説明する。下記のステップS3001,ステップS3005,ステップS3008,ステップS3011,ステップS3014,ステップS3016は、いずれか1つが要求あるいは通知を受けると処理を開始する。
ステップS3001において、タスクコントローラ実行部234がタスク実行開始要求をサーバ装置101のタスク管理部202から受信すると(ステップS3001)、タスクコントローラをサービス管理部203からダウンロードし、インストールする(ステップS3002)。ただし、タスク実行に必要なタスクコントローラが端末102に予めインストールされている場合は、本ステップを省略する。そして、タスクコントローラ実行部234は、タスクコントローラを起動させ(ステップS3003)、タスク実行開始応答をタスク管理部202に通知し(ステップS3004)、処理を終了する。
ステップS3005において、タスクコントローラ実行部234がタスク完了通知をタスクコントローラから受信すると(ステップS3005)、タスク完了通知をタスク管理部202に通知し(ステップS3006)、つぎに、タスクコントローラをアンインストールし(ステップS3008)、終了する。なお、タスクコントローラのアンインストールは、端末102の記憶装置の記憶容量に一定量以上の余裕がある場合には省略されても良い。
ステップS3008において、タスクコントローラ実行部234がタスク中断要求をタスク管理部202から受信すると、タスクコントローラを中断し(ステップS3009)、タスク中断完了応答をタスク管理部202に通知し(ステップS3010)、終了する。
ステップS3011において、タスクコントローラ実行部234がタスク再開要求をタスク管理部202から受信すると、中断中のタスクコントローラを再開させ(ステップS3012)、タスク再開完了応答をタスク管理部202に通知し(ステップS3013)、処理を終了する。
ステップS3014では、タスクコントローラ実行部234が端末停止要求をタスクコントローラから受信する。ユーザからの端末停止の指示は、タスクコントローラを介さず、直接タスクコントローラ実行部234に対して指示されてもよい。この後、タスクコントローラ実行部234は、端末停止通知をタスク管理部202に通知し(ステップS3015)、処理を終了する。
ステップS3016では、タスクコントローラ実行部234が端末再開要求をタスクコントローラから受信する。ユーザからの端末再開の指示は、タスクコントローラを介さず、直接タスクコントローラ実行部234に対して指示されてもよい。この後、タスクコントローラ実行部234は、端末再開通知をタスク管理部202に通知し(ステップS3017)、処理を終了する。
なお、タスク実行中に周辺機器103の電源切断や移動により、タスク実行に必要なサービスが利用できなくなるといった例外が発生した場合には、タスクコントローラが当該例外の発生を検出し、その旨をタスクコントローラ実行部234に通知する。当該通知を受けたタスクコントローラ実行部234は、その旨をタスク管理部202に通知する。この後、タスク管理部202は当該タスクの中断処理に続いて、他に実行可能なタスクの存在を確認し、実行可能なタスクがある場合は、端末102に対してタスクの実行を要求する。この例外時の処理は、タスク管理部202については図27、タスクコントローラ実行部234については図30と類似であるため、詳細な説明は省略する。
(タスク実行の具体的処理例)
図31−1〜図31−4は、タスク実行の処理手順を示すシーケンス図である。この図を用いて、タスク実行の具体的処理例について説明する。以下の例は、巡回警備業務を支援する例である。図に示した各部の構成について、コンテキスト管理サーバ3101は、コンテキスト生成部201を含むサーバとする。タスク管理サーバ3102は、タスク管理部202、サービス管理部203を含むサーバとする。
そして、ユーザAは、端末102を携帯し巡回する。この端末102には、端末内蔵センサ112として位置センサを具備している。位置センサによる位置取得の方法は、GPSや、端末102に付与されたRFIDリーダが特定の場所に設置されたRFIDタグを読み取る等、種々の方法により取得可能である。また各コントローラ3111〜3113は、タスク管理サーバ3102からダウンロードしたタスクコントローラに相当する。
はじめに、巡回警備前の設定処理について説明する。
(ステップS3101)あらかじめ管理者は、管理者端末102aを用いて、22:00に管理センタにいるユーザAがおこなうべき、倉庫巡回タスクをタスク管理サーバ3102に登録する。
(ステップS3102)管理者は、ステップS3101と同様のタスクをコンテキスト管理サーバ3101に登録する。
(ステップS3103)管理者は、22:00以降に倉庫AにいるユーザAがおこなうべき、倉庫Aの巡回タスクを登録する。
(ステップS3104)管理者は、ステップS3103と同様のタスクをコンテキスト管理サーバ3101に登録する。
(ステップS3105)管理者は、異常センサ1の状態がONになったときに実行すべき異常確認タスクを登録する。
(ステップS3106)管理者は、ステップS3105と同様のタスクをコンテキスト管理サーバ3101に登録する。
以降、ユーザAの巡回警備時の処理について説明する。
(ステップS3107)ユーザAが持つ携帯端末102の位置センサ112が、ユーザAの位置が管理センタであることをコンテキスト管理サーバ3101に通知する。
(ステップS3108)コンテキスト管理サーバ3101は、ユーザAが管理センタにいて、かつ時刻が22:00であることを認識すると、ステップS3102で登録された倉庫巡回タスクの起動条件が満足されたことをタスク管理サーバ3102に通知する。
(ステップS3109)タスク管理サーバ3102は、ステップS3101で登録された倉庫巡回タスクの起動要求を端末102のタスクコントローラ実行部234に通知する。
(ステップS3110)タスクコントローラ実行部234は、指定されたURLにアクセスし、倉庫巡回コントローラ3111のダウンロードを要求する。
(ステップS3111)タスク管理サーバ3102は、タスクコントローラ実行部234に、ダウンロード応答し、倉庫巡回コントローラ3111がダウンロードされ、端末102にインストールされる。
(ステップS3112)タスクコントローラ実行部234は、ダウンロードされた倉庫巡回コントローラ3111を起動する。
(ステップS3113)起動された倉庫巡回コントローラ3111は、タスクコントローラ実行部234に対して起動完了を通知する。
(ステップS3114)タスクコントローラ実行部234は、タスク1の起動が完了したことをタスク管理サーバ3102に通知する。
(ステップS3115)タスク管理サーバ3102は、タスク1が起動されたことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「タスク1実行中」に更新する。
(ステップS3116)倉庫巡回コントローラ3111は、巡回先の情報として倉庫Aを画面に表示する。ユーザは、画面を確認し、「OK」ボタンを操作する。
(ステップS3117)「OK」ボタンが操作された倉庫巡回コントローラ3111は、タスクコントローラ実行部234に対してタスクの完了を通知し、自らを終了する。
(ステップS3118)タスクコントローラ実行部234は、タスク管理サーバ3102に対してタスク1の完了を通知する。
(ステップS3119)タスク管理サーバ3102は、タスク1が完了したことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「idle」に更新する。
(ステップS3120)ユーザAが巡回先である倉庫Aに到着すると、端末102の位置センサ112が検出し、コンテキスト管理サーバ3101にその旨通知する。
(ステップS3121)コンテキスト管理サーバ3101は、22:00以降にユーザAが倉庫Aにいることを認識すると、ステップS3104で登録された倉庫A巡回タスクの起動条件が満足されたことをタスク管理サーバ3102に通知する。
(ステップS3122)タスク管理サーバ3102は、倉庫A巡回タスクの実行に必要なデバイスおよびサービスが存在することを認識すると、それらの検索を要求する。
(ステップS3123)ユーザAの端末102のサービス発見・通知部233は、デバイスとサービスの検索をおこなう。たとえば、UPnP(Universal Plug and Play)を用いるのであれば、M−SEARCHメッセージを周辺にマルチキャストする。
(ステップS3124)倉庫Aの照明デバイス113が、検索メッセージを受信すると、自らが指定されたデバイスであり、なおかつ自身が照明制御サービスを提供可能であるため、検索応答を通知する。ここでは照明デバイス113は、自らのデバイス・サービス情報を直接応答しているが、代わりに自らのデバイス・サービス情報が記載されたファイルのURLを応答し、ユーザAの端末102が当該URLに基づいてデバイス・サービス定義情報保存部227からファイルを入手することで、デバイス・サービス情報が取得されるようにしても良い。
(ステップS3125)サービス発見・通知部233は、サービス検索結果をタスク管理サーバ3102に通知する。
(ステップS3126)タスク管理サーバ3102は、倉庫A巡回タスクに必要なデバイスおよびサービスがユーザAの周辺に存在することを確認すると、タスクの起動要求を端末102のタスクコントローラ実行部234に通知する。
(ステップS3127)タスクコントローラ実行部234は、指定されたURLにアクセスし、倉庫A巡回コントローラ3112のダウンロードを要求する。
(ステップS3128)タスクコントローラ実行部234に、倉庫A巡回コントローラ3112がダウンロードされ、端末102にインストールされる。
(ステップS3129)タスクコントローラ実行部234は、ダウンロードされた倉庫A巡回コントローラ3112を起動する。
(ステップS3130)起動された倉庫A巡回コントローラ3112は、タスクコントローラ実行部234に対して起動完了を通知する。
(ステップS3131)タスクコントローラ実行部234は、タスク2の起動が完了したことをタスク管理サーバ3102に通知する。
(ステップS3132)タスク管理サーバ3102は、タスク2が起動されたことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「タスク2実行中」に更新する。
(ステップS3133)倉庫A巡回コントローラ3112は、倉庫Aの照明ONボタン、照明OFFボタン、異常ありボタン、異常なしボタンを画面に表示する。ユーザは照明ONボタンを操作する。
(ステップS3134)倉庫A巡回コントローラ3112は、ステップS3122で検索された倉庫Aの照明デバイスの照明制御サービスをパラメータONで実行する旨、照明デバイスに要求する。
(ステップS3135)倉庫Aの照明デバイス113は、ステップS3131で要求されたサービスを実行する(すなわち、照明をONする)と、その応答を返す。ユーザAは、倉庫Aの巡回を開始する。
(ステップS3136)建屋Bに設置されている異常センサ1(114)が何らかの異常を検知すると、その旨をコンテキスト管理サーバ3101に通知する。
(ステップS3137)コンテキスト管理サーバ3101は、異常センサ1(114)で異常が検出されたことを認識すると、ステップS3106で登録された異常確認タスク(優先度=高)の起動条件が満足されたことをタスク管理サーバ3102に通知する。
(ステップS3138)タスク管理サーバ3102は、タスク管理情報を参照し、タスクは誰が実行してもよいことを認識すると、このタスクの実行者として、ユーザAを選択する。ユーザ選択方法については、たとえば、巡回作業中のユーザとその現在位置のリストを保持し、建屋Bの異常センサ1(114)に最も近い巡回中のユーザを選択する、または管理センタに待機しているユーザを選択する、といったものが考えられる。これらのユーザ選択は、例えば別のサーバで動作するアプリケーションによって行うようにされても良い。この場合、タスク起動条件満足通知を受けたタスク管理サーバ3102が当該アプリケーションに通知を行い、当該アプリケーションがコンテキスト管理サーバ3101から得たユーザのコンテキスト情報等に基づいてユーザを選択すると、そのユーザをタスク管理サーバ3102に応答する。タスク管理サーバ3102は、ユーザAを選択した後、ユーザAの端末102上で倉庫A巡回タスク(優先度=中)が実行中であり、異常確認タスクの起動に先立って倉庫A巡回タスクの中断が必要であることを認識すると、ユーザAの端末102のタスクコントローラ実行部234に当該タスクの中断を要求する。
(ステップS3139)タスクコントローラ実行部234は、倉庫A巡回コントローラ3112の中断を要求する。
(ステップS3140)倉庫A巡回コントローラ3112は中断要求の応答を返す。
(ステップS3141)タスクコントローラ実行部234は、タスク管理サーバ3102に倉庫A巡回タスクを中断したことを通知する。
(ステップS3142)タスク管理サーバ3102は、異常確認タスクの起動要求をユーザAの端末102のタスクコントローラ実行部234に通知する。
(ステップS3143)タスクコントローラ実行部234は、指定されたURLにアクセスし、異常確認コントローラのダウンロードを要求する。
(ステップS3144)タスクコントローラ実行部234に、異常確認コントローラ3113がダウンロードされ、端末102にインストールされる。
(ステップS3145)タスクコントローラ実行部234は、ダウンロードされた異常確認コントローラ3113を起動する。
(ステップS3146)起動された異常確認コントローラ3113は、タスクコントローラ実行部234に対して起動完了を通知する。
(ステップS3147)タスクコントローラ実行部234は、タスクの起動が完了したことをタスク管理サーバ3102に通知する。
(ステップS3148)タスク管理サーバ3102は、タスク3が起動されたことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「タスク3実行中」に更新する。
(ステップS3149)起動された異常確認コントローラ3113は、ユーザAの端末102の画面に「異常センサ1(114)で異常が検知されました。直ちに異常の有無を確認して下さい」というメッセージ、「異常あり」ボタン、および「異常なし」ボタンを表示する。当該画面を確認したユーザAは、建屋Bの異常センサ1(114)が設置された場所に急行し、異常のないことを確認し「異常なし」ボタンを操作する(建屋Bに移動すると端末102によって位置登録がおこなわれるが、図では省略)。
(ステップS3150)「異常なし」ボタンを操作された異常確認コントローラ3113は、タスクコントローラ実行部234に対してタスクの完了を通知し、自らを終了する。
(ステップS3151)タスクコントローラ実行部234は、タスク管理サーバ3102に対してタスクの完了を通知する。
(ステップS3152)タスク管理サーバ3102は、タスク3が完了したことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「idle」に更新する。または、ステップS3148でタスク3の実行が開始される前の状態「タスク2実行中」を記憶しておき、当該状態に復帰させてもよい(ここでユーザAの状態を「idle」に設定しても、後続のステップS3157で「タスク2実行中」状態に復帰するため問題はない)。
(ステップS3153)タスク管理サーバ3102は、異常確認タスク(優先度=高)が完了したことを認識すると、そのつぎに優先度の高いタスクである、中断中の倉庫A巡回タスクの再開を要求する。
(ステップS3154)タスクコントローラ実行部234は、中断中の倉庫A巡回コントローラ3112の実行を再開する。
(ステップS3155)再開された倉庫A巡回コントローラ3112は、タスクコントローラ実行部234に対して再開の完了を通知する。
(ステップS3156)タスクコントローラ実行部234は、タスク2の再開が完了したことをタスク管理サーバ3102に通知する。
(ステップS3157)タスク管理サーバ3102は、タスク2が再開されたことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「タスク2実行中」に更新する。
(ステップS3158)倉庫A巡回コントローラ3112が再開され、コントローラの画面が表示されると、ユーザAは、倉庫Aに戻り、巡回を再開する。このように、端末102に倉庫A巡回コントローラ3112の画面が表示されるため、ユーザAは中断されていた倉庫Aの巡回作業を忘れることなく、再開することが可能となる。巡回が異常なく終了すると、「照明OFF」ボタンを操作する(倉庫Aに戻ると端末102によって位置登録がおこなわれるが、図では省略)。
(ステップS3159)倉庫A巡回コントローラ3112は、ステップS3122で検索された倉庫Aの照明デバイス113の照明制御サービスをパラメータOFFで実行する旨、照明デバイスに要求する。
(ステップS3160)倉庫Aの照明デバイス113は、ステップS3153で要求されたサービスを実行する(すなわち、照明をOFFする)と、その応答を返す。
(ステップS3161)ユーザAは、倉庫A巡回コントローラ3112の「異常なし」ボタンを操作して、倉庫Aの巡回を終了する。
(ステップS3162)「異常なし」ボタンを操作された倉庫A巡回コントローラ3112は、タスクコントローラ実行部234に対してタスクの完了を通知し、自らを終了する。
(ステップS3163)タスクコントローラ実行部234は、タスク管理サーバ3102に対してタスクの完了を通知する。
(ステップS3164)タスク管理サーバ3102は、タスク2が完了したことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「idle」に更新する。
以上説明したタスク定義は一例であり、このようなタスクの分割方法に限定されない。たとえば、本例では、倉庫巡回を開始すること自体をタスクとして定義し、実際の作業である倉庫Aの巡回タスクと分割しているが、両者を一体化して定義してもよい。このとき、巡回タスクの下位に倉庫A巡回、倉庫B巡回といったサブ・タスクを定義し、これら各サブ・タスクに対応するタスクコントローラを定義し、「倉庫A巡回開始」ボタンを操作すると、対応するサブ・タスクの実行に必要なコントローラが起動される。
また、各タスクコントローラは起動される度にダウンロードするようにしているが、たとえば緊急度の高いタスクのためのコントローラ(たとえば、異常確認コントローラ3113)については、あらかじめ端末102にインストールしておいてもよい。さらに、上記例では、タスクの実行が完了しても、対応するタスクコントローラはインストール状態のままにしているが、端末102のメモリ容量に制限がある場合は、タスク完了後にタスクコントローラをアンインストールして、占有していたメモリを解放してもよい。
(各種管理データ例)
上述した巡回警備に用いる管理データ例について説明する。図32は、コンテキスト情報の例を示す図表である。コンテキスト管理サーバ3101が管理するコンテキスト情報3200により、各ユーザやデバイスの状態を管理する。このコンテキスト情報3200は、時刻3201、ユーザ・コンテキスト3202、デバイス・コンテキスト3203の各情報を含む。時刻3201は、システムで共通して使用される現在時刻情報であり、ユーザ・コンテキスト3202は、ユーザ毎の状態情報として、ユーザの場所とタスクの実行状態を管理する。デバイス・コンテキスト3203は、デバイス毎の状態情報として、デバイスの設置場所(建屋B)とデバイスの状態(ここでは異常センサ1(114)のON/OFF状態)を管理する。
図33は、タスク管理情報の例を示す図表である。コンテキスト管理サーバ3101はタスク管理情報3300を用いてタスクを管理する。タスク管理情報3300は、各ユーザが実行すべきタスクの起動条件を管理するためのものであり、UID、時刻、場所、その他、TIDの各情報を含む。UIDはタスクを実行すべきユーザのIDの情報であり、時刻はタスクを実行すべき時間条件の情報であり、場所はタスクを実行すべき場所条件の情報であり、その他は、タスクを実行すべき上記以外の条件の情報であり、TIDは、上記の条件が成立したときに実行されるべきタスクのIDの情報である。
コンテキスト管理サーバ3101は、ユーザやデバイスの状態が変化すると、対応するタスク管理情報3300を検索し、実行すべきタスクの有無を判定する。この判定処理を高速におこなうために、追加のデータが管理されてもよい。たとえば、コンテキスト管理データとして、個々のユーザに実行すべき(未実行の)タスクが存在するか否かのフラグ情報を管理することで、タスクが存在しないユーザに関しては、コンテキストが変化しても実行すべきタスクの有無の判定処理をおこなわないようにする等が考えられる。
図34は、タスク管理情報の例を示す図表である。タスク管理サーバ3102のタスク管理部202はタスク管理情報3400を用いてタスクを管理する。タスク管理情報3400は、タスク管理情報:各ユーザが実行すべきタスクに関する情報を管理するものであり、UID、TID、時刻、場所、優先度、状態の各情報を含む。UIDはタスクを実行すべきユーザのIDの情報であり、TIDは実行すべきタスクのIDの情報であり、時刻はタスクを実行すべき時間の情報であり、場所はタスクを実行すべき場所の情報であり、優先度はタスクの優先度であり、状態はタスクの実行状態(未実行/実行中/完了)である。
図34において、UID=#の項目は、タスク3が特定のユーザが実行すべきものとして定義されていないことを示している。このようなタスクについては、タスクを実行すべきユーザは状況に応じて動的に決定される。
図35は、タスクコントローラ管理情報の例を示す図表である。タスクコントローラ管理情報3500は、タスクの実行に必要なタスクコントローラに関する情報であり、タスク管理サーバ3102のサービス管理部203が管理する。タスクコントローラ管理情報3500は、TIDと、コントローラURLの情報を含む。TIDはタスクIDの情報であり、コントローラURLはタスクの実行に必要なコントローラが格納されているURLの情報である。
図36は、タスク・サービス対応情報の例を示す図表である。タスク・サービス対応情報3600は、各タスクの実行に必要なデバイスおよびサービスに関する情報であり、タスク管理サーバ3102のサービス管理部203が管理する。タスク・サービス対応情報3600は、TID、デバイス、サービスの各情報を含む。TIDはタスクIDであり、デバイスはデバイス名であり、サービスはサービス名の情報である。図に記載のNA(Not Applicable)は、タスクの実行にデバイスおよびサービスが不要であることを示している。
図37は、タスクスケジューラが管理するタスク実行管理情報を示す図表である。タスクスケジューラ214aは、ユーザ毎のタスクの実行制御に関する情報をタスク実行管理情報3700として管理する。実行管理情報3700は、ユーザAに関する実行中タスク2601と、タスクキュー2602のそれぞれについて、TIDと、優先度を管理する。実行中タスク2601については、実行中のタスクに関する情報を管理し、TIDはタスクのIDの情報、優先度はタスクの優先度の情報である。タスクキュー2602については、実行待ち状態のタスクに関する情報を管理し、TIDはタスクのIDの情報、優先度はタスクの優先度の情報である。図37に示す例では、タスクキュー2602に登録されているタスクは0または1つとなっているが、タスクの割り込みが複数回にわたっておこなわれるような場合には、2個以上のタスクが登録されることもある。
つぎに、このタスク実行管理情報3700の変化について、上述した図31−1〜図31−4に示したシーケンスの手順に沿って説明する。
・ステップS3111〜ステップS3117:実行中および実行待ち状態のタスクはない(図示略)
(1)ステップS3114:タスク1の起動が完了したため、タスク1に関する情報が、実行中タスク2601として保持される。実行待ち状態のタスクはないため、タスクキュー2602には情報は保持されていない(NAと記載)。
・ステップS3118:タスク1が完了すると、タスク1に関する情報が実行中タスク2601の情報から削除される。これにより、実行中および実行待ち状態のタスクはなくなる(図示略)。
(2)ステップS3131:タスク2の起動が完了したため、タスク2に関する情報が、実行中タスク2601の情報として保持される。実行待ち状態のタスクはないため、タスクキュー2602には情報は保持されていない。
(3)ステップS3141〜ステップS3147:優先度=高のタスク3の実行が要求されると、実行中のタスク2(優先度=中)の中断処理がおこなわれ、ステップS3141で中断処理が完了すると、タスク2に関する情報がタスクキュー2602に登録される。続いて、ステップS3147でタスク3の起動が完了すると、タスク3に関する情報が実行中タスク2601の情報として保持される。
(4)ステップS3156:ステップS3151でタスク3が完了すると、タスク3の情報が実行中タスク2601の情報から削除され(図には未記載)、引き続いてステップS3156でタスク2の実行が再開されると、タスク2に関する情報が実行中タスク2601の情報として保持される。
・ステップS3163:タスク2の実行が完了すると、タスク2に関する情報が実行中タスク2601の情報から削除される。これにより、実行中および実行待ち状態のタスクはなくなる(図示略)。
このほか、図37には記載していないが、端末102が停止中であるか否かを示すフラグを端末102毎に設ける。そして、端末102から端末102の停止が要求されたときは当該フラグをセットし、フラグがセットされている間は、端末102に対するタスク制御を停止する。この間、タスクの起動条件が満足された旨の通知が発生した場合は、タスク優先度に関わらず当該タスクに関する情報はタスクキュー2602に登録される。
以上説明した実施の形態2によれば、実施の形態1同様に、ユーザやその周辺環境のコンテキストと、周辺機器が提供するサービスとに基づいて、優先順位やタスク間の依存関係を考慮して複数のタスクを順次実行することができる。実施の形態2では、これに加えて、タスクの実行中に他のタスクの割り込みがあったときにタスクの優先度に基づいてタスクの実行の中断および再開を制御できるようになる。これにより、複数のタスクを効率的に処理できるようになる。また、実施の形態2によれば、ユーザの移動に対応したタスク制御を実行するため、ユーザが移動しながら移動先毎に必要なサービスを受けることができるようになる。
なお、本実施の形態で説明したタスク実行制御方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
100 タスク実行制御システム
101 サーバ装置
102 端末
102a 管理者端末
103 周辺機器
104 情報通信ネットワーク
112 端末内蔵センサ
113 被制御部
114 機器内蔵センサ
201 コンテキスト生成部
202 タスク管理部
203 サービス管理部
204,232 センサ・端末情報集約部
211 コンテキスト取得制御情報保存部
212 登録タスク保存部
213 タスク選択ルール保存部
214 タスク選択部
214a タスクスケジューラ
221 タスク・サービス対応関係保存部
222 利用可能サービスキャッシュ
223 利用可能サービス確認部
224 タスク・サービス確認部
225 タスクコントローラ保存部
226 タスクコントローラ管理部
227 デバイス・サービス定義情報保存部
231 周辺機器連携部
233 サービス発見・通知部
234 タスクコントローラ実行部
235 アプリケーション
241 応答・広告部
2601 実行中タスク
2602 タスクキュー
3101 コンテキスト管理サーバ
3102 タスク管理サーバ
本発明は、ユーザの状況に応じてタスクを実行するタスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法に関する。
センシングデバイス技術の発達により、ユーザの位置やユーザの周辺の環境情報などが容易に計測できるようになってきている。これらの計測データから、さまざまなコンテキストを取得することができ、このコンテキストを用いることにより、ユーザに対するタスクの実行を支援することができるようになってきている。このコンテキストとは、人やものの状況を示す情報であり、たとえば、ユーザAのコンテキストとしては、現在位置のオフィス名、時刻等の情報である。また、タスクとは、ユーザ、ユーザの端末、もしくはユーザの周辺の機器がおこなうべき作業であり、たとえば、ユーザが部屋に入ったときに「部屋の照明をつける」、ユーザが印刷をおこなうとき、ユーザの「文章を近くのプリンタで印刷する」などがタスクである。
コンテキストを用いたタスク実行支援に関連する従来技術としては、コンテンツ配信ネットワークに関して、ユーザのコンテキスト情報(ユーザの位置情報やネットワーク使用状況、作業状況)に基づいて、ユーザのアクセスポイント近傍のストレージに、ユーザの希望するコンテンツを移動し、負荷分散を実施するものがある(たとえば、下記特許文献1参照。)。また、ユーザのコンテキスト情報(通話相手の状態)を端末に表示するプレゼンスサービスにおいて、自身のコンテキストに応じて適切なプレゼンス情報提供アプリケーションを実行するものがある(たとえば、下記特許文献2参照。)。
特開2004−348495号公報 特開2008−282068号公報
しかしながら、上記の従来技術では、タスクを実行するための周辺機器が提供するサービスの確認をおこなうことができず、周辺機器が提供するサービスによって適切なタスクを選択することができない。上記のサービスとは、周辺機器が提供する粒度の小さい機能であり、たとえば、UPnP(Universal Plug and Play)におけるサービスであり、具体的には、プリンタがおこなう印刷サービス等がある。
また、従来技術は、単一のタスク実行のみを考慮したシステムであるため、複数のタスクがある場合に、ユーザのコンテキストを考慮した順でタスクを選択実行することができず、ユーザが所望するサービスを効率的に実行することができなかった。ユーザが所望するサービスは、複数のタスクの組み合わせのサービスであったり、ユーザが移動しながら移動先毎に異なるサービスを受けることなどが想定できるが、これを支援することができなかった。
開示のタスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法は、上述した問題点を解消するものであり、ユーザの状況に応じてユーザが所望するタスクを効率的に実行できることを目的とする。
上述した課題を解決し、目的を達成するため、開示技術は、ユーザと、ユーザの周辺状況に関する情報をコンテキスト情報として生成するコンテキスト生成部と、ユーザが実行しようとするタスクを複数保持し、前記コンテキスト情報、およびあらかじめ定めたタスクの選択ルールにしたがってタスクを選択し、当該タスクの実行を制御するタスク管理部と、前記タスクの実行に用いる機器が実行するサービスを確認し、前記タスク管理部が選択したタスクの実行に対応するサービスを前記機器に通知し、実行させるサービス管理部と、を含み、前記タスク管理部は、前記タスクの選択ルールとして、タスクの優先度、および前記タスク同士間であらかじめ設定した実行に関するタスク間の依存関係の情報を用いてタスクを選択する。
開示のタスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法によれば、ユーザの状況に応じてユーザが所望するタスクを効率的に実行できるという効果を奏する。
図1は、実施の形態にかかるタスク実行制御システムの概要構成を示す図である。 図2は、実施の形態1にかかるタスク実行制御システムの詳細構成を示す図である。 図3は、情報収集機能を説明するブロック図である。 図4は、コンテキスト生成部の処理を説明する図である。 図5は、コンテキスト生成部の処理を示すフローチャートである。 図6は、タスク管理部の処理を説明する図である。 図7は、タスク管理部の処理を示すフローチャートである。 図8は、サービス管理部の処理を説明する図である。 図9は、サービス管理部の処理を示すフローチャートである。 図10は、周辺機器連携部の処理を説明する図である。 図11は、周辺機器連携部のサービス検索処理を示すフローチャートである。 図12は、周辺機器連携部のタスクコントローラに関する処理を示すフローチャートである。 図13は、周辺機器の処理を説明する図である。 図14−1は、タスクの具体例を示す図表である。 図14−2は、タスクの依存関係を説明する図である。 図15は、端末あるいは周辺機器から収集したデータの一例を示す図表である。 図16は、生成されるコンテキスト情報の例を示す図表である。 図17は、コンテキスト取得制御情報の例を示す図表である。 図18は、タスク選択ルールの例を示す図表である。 図19は、タスク・サービス対応関係の例を示す図表である。 図20は、デバイス・サービス定義情報の例を示す図表である。 図21−1は、タスク選択ルールの例を示す図表である。 図21−2は、タスクの依存関係を説明する図である。 図22は、タスク・サービス対応関係の例を示す図表である。 図23は、コンテキスト取得制御情報の例を示す図表である。 図24は、登録タスクの追加情報の例を示す図表である。 図25は、タスクの実行手順を示すシーケンス図である。 図26は、実施の形態2にかかるタスク実行制御システムの構成を示す図である。 図27は、タスク管理部の処理を示すフローチャートである。 図28は、タスク管理部におけるタスク終了時、および端末停止時の処理を示すフローチャートである。 図29−1は、タスク管理部における実行待機のタスクのサービス確認の処理を示すフローチャートである(その1)。 図29−2は、タスク管理部における実行待機のタスクのサービス確認の処理を示すフローチャートである(その2)。 図30は、端末がおこなう処理を示すフローチャートである。 図31−1は、タスク実行の処理手順を示すシーケンス図である(その1)。 図31−2は、タスク実行の処理手順を示すシーケンス図である(その2)。 図31−3は、タスク実行の処理手順を示すシーケンス図である(その3)。 図31−4は、タスク実行の処理手順を示すシーケンス図である(その4)。 図32は、コンテキスト情報の例を示す図表である。 図33は、タスク管理情報の例を示す図表である。 図34は、タスク管理情報の例を示す図表である。 図35は、タスクコントローラ管理情報の例を示す図表である。 図36は、タスク・サービス対応情報の例を示す図表である。 図37は、タスクスケジューラが管理するタスク実行管理情報を示す図表である。
以下に添付図面を参照して、開示技術の好適な実施の形態を詳細に説明する。
開示の技術は、ユーザのタスク実行を制御する。たとえば、タスク実行制御を統括するタスク実行制御装置は、以下の制御処理をおこなう。
1.ユーザのコンテキストを生成する。
2.タスク管理機能は、ユーザのコンテキストに基づき、実行すべきタスクを選択する。各タスクには、選択ルール(優先度やタスクフローを示すタスク間同士の実行に関する依存関係)を設定しておく。
3.サービス管理機能は、最終的な出力デバイス(端末や周辺機器等)が有する利用可能サービス情報に基づき、タスクの実行可否を判断する。
4.周辺機器制御機能により、端末で実行するアプリケーションや、周辺機器を制御し、周辺機器でタスクを実行し、ユーザのコンテキストに対応したサービスを提供する。
(タスク実行制御システムの全体構成図)
図1は、実施の形態にかかるタスク実行制御システムの概要構成を示す図である。タスク実行制御システム100は、サーバ装置101と、複数の端末102と、複数の周辺機器(被制御機器)103と、を含む。これらサーバ装置101と、端末102と、周辺機器103とは、互いに情報通信ネットワーク104によって接続され、各種情報の交換をおこなう。情報通信ネットワークは有線ネットワークでも無線ネットワークでもよい。
サーバ装置101は、複数の端末102、および複数の周辺機器103と通信が可能なコンピュータであり、コンテキスト生成、タスク管理、サービス管理等の機能を有する。サーバ装置101内の各機能は、ROM、RAM等に格納されたソフトウェアをCPUにより実行することにより実現できる。これに限らず、ハードウェアにより実現することもできる。
端末102は、ユーザが所有する、情報通信部とコンピュータ処理部と、を含む装置であり、たとえば、パーソナル・コンピュータやノートパーソナル・コンピュータなどのPC、携帯電話、PDA、スマートフォンなどからなる。端末102には、位置を計測するGPSや加速度を検出する加速度センサなどの端末内蔵センサ112を備えてもよく、端末内蔵センサ112が計測した情報を集約し、サーバ装置101へ送ることにより、サーバ装置101におけるコンテキスト生成の情報として用いることができる。1つの端末102は、情報通信ネットワーク104を通じて複数の周辺機器103と通信をおこなうことが可能である。端末102内の各機能は、ROM、RAM等に格納されたソフトウェアをCPUにより実行することにより実現できる。これに限らず、ハードウェアにより実現することもできる。
周辺機器103は、情報通信部と、情報通信ネットワーク104からの情報により周辺機器103が有する各種機能を動作させることが可能な被制御部113を具備し、たとえば、コンピュータやプリンタ、プロジェクタ、テレビ、照明などからなる。周辺機器103についても、GPSや加速度センサなどの機器内蔵センサ114を具備していてもよい。機器内蔵センサ114が計測した情報を集約してサーバ装置101へ送ることにより、サーバ装置101におけるコンテキスト生成の情報として用いることができる。また、ユーザが所有する端末102についても、周辺機器103として用いることができる。
(実施の形態1)
図2は、実施の形態1にかかるタスク実行制御システムの詳細構成を示す図である。以下、タスク実行制御システム100のサーバ装置101と、端末102と、周辺機器103の内部機能について説明する。
(サーバ装置)
サーバ装置101は、コンテキスト生成部201と、タスク管理部202と、サービス管理部203と、センサ・端末情報集約部204と、を含む。
コンテキスト生成部201は、ユーザやその周囲の状況(コンテキスト)を判断し、ユーザやその周囲の状況の情報(コンテキスト)を生成する。コンテキストは、たとえば、場所や時間、ユーザの行為、身体の状態、能力、ユーザの周辺の環境などである。また、スケジュールや実施すべき仕事の情報など、ユーザが従事する業務に関連する情報なども含まれる。生成したコンテキスト情報は、タスク管理部202に出力される。
タスク管理部202は、タスク情報を保持し、ユーザのコンテキストや周辺機器103の情報にしたがってタスク実行を制御する。タスク管理部202は、コンテキスト取得制御情報保存部211と、登録タスク保存部212と、タスク選択ルール保存部213と、タスク選択部214と、を含む。
コンテキスト取得制御情報保存部211は、コンテキストの粒度やコンテキストの取得タイミングをコンテキスト取得制御情報としてコンテキスト生成部201に通知する。登録タスク保存部212は、ユーザが登録するタスクの一覧を格納する。タスク選択ルール保存部213は、タスクの優先順位や業務フローに基づいて、どのような順番でタスクを実行するかを設定する。タスク選択部214は、コンテキスト生成部201から通知されたコンテキスト情報を元に、登録タスク保存部212からタスク選択ルールに基づいて実行タスクを選択し、タスクスケジューラ214aによってタスク実行のスケジューリングをおこなう。
タスク選択ルールは、タスク毎にタスクIDを付して、各タスク毎に、コンテキスト条件と、各タスクの優先度(優先順位)と、各タスクが有する他のタスクに対する依存状態を示す依存タスク情報(依存タスクID)等を関連付けたテーブル形式とされている。タスクIDは、個々のタスクを識別するためのIDである。コンテキスト条件は、コンテキスト生成部201からの情報と照合する条件であり、条件に一致しているときに、該当するタスクを実行する。優先度は、実行可能なタスクが複数存在する場合に、優先度が高いタスクから順に実行するために設定される。依存タスクIDは、このタスクを実行する際に、終了していなければならない他のタスクのIDである。
サービス管理部203は、周辺機器103の利用可能なサービスを確認してタスク管理部202に通知し、タスク管理部202が選択したタスクを実行するために、必要なサービスを利用するための命令、もしくはプログラムを端末102に通知する。サービス管理部203は、タスク・サービス対応関係保存部221、利用可能サービスキャッシュ222、利用可能サービス確認部223、タスク・サービス確認部224、タスクコントローラ保存部225、タスクコントローラ管理部226、デバイス・サービス定義情報保存部227と、を含む。
タスク・サービス対応関係保存部221は、各タスクを実行するために必要なサービスの対応関係情報を格納する。テーブル参照により、タスクとサービスとの関連付けを得ることができる。利用可能サービスキャッシュ222は、端末102から通知された、端末102周辺の周辺機器103において利用可能なサービスを一時的に格納する。利用可能サービス確認部223は、タスクを実行するためのサービスが存在するかを利用可能サービスキャッシュ222を参照して確認し、該当サービスが存在しなければ端末102へ検索要求をおこなう。
タスク・サービス確認部224は、タスク管理部202から通知されたタスクが実行可能であるかを確認するため、タスク・サービス対応関係保存部221からタスクに対応するサービス情報を取得し、利用可能サービス確認部223から得られたサービス情報と照合する。タスクコントローラ保存部225は、タスクを実行するためのタスクコントローラを格納する。このタスクコントローラは、タスクを実行するためのサービスを制御するソフトウェアである。1つのタスクコントローラは、複数のサービスを制御することもできる。
タスクコントローラ管理部226は、タスクが実行可能であれば、タスクコントローラ保存部225から対応するタスクコントローラを取得し、端末102へ送信する。デバイス・サービス定義情報保存部227は、周辺機器103のデバイス・サービス定義を格納し、端末102に通知する。ここで、デバイス・サービス定義とは、周辺機器103がどのような種類のもので、周辺機器103の被制御部113がどのようなサービスを提供可能か記述したデータ、もしくはサービスを記録したファイルであり、たとえば、UPnPにおけるデバイス定義、サービス定義を記述したXMLファイルからなる。
センサ・端末情報集約部204は、端末102もしくは周辺機器103から通知されたセンサ情報、あるいは利用可能サービス確認部223から通知された周辺機器103の利用可能サービスの情報に基づきデータ集約をおこない、コンテキスト生成のための情報としてコンテキスト生成部201へ通知する。
(端末)
端末102は、端末内蔵センサ112と、周辺機器連携部231と、センサ・端末情報集約部232と、を含む。周辺機器連携部231は、端末102の周辺に存在する周辺機器103のサービスを発見してサーバ装置101に通知し、サーバ装置101からの命令、もしくはプログラムにしたがって周辺機器103の制御をおこなう。周辺機器連携部231は、サービス発見・通知部233と、タスクコントローラ実行部234と、を含む。
サービス発見・通知部233は、端末102の周辺の周辺機器103のサービスを発見し、サーバ装置101へ通知する。サービスの発見は、たとえば、UPnPにおけるM−SEARCHを用いる。タスクコントローラ実行部234は、サーバ装置101から通知されたタスクコントローラをダウンロードし、周辺機器103の制御、およびアプリケーション235の実行を統括する。センサ・端末情報集約部232は、端末102の周辺の周辺機器103の機器内蔵センサ114のセンサ情報からデータを収集して集約をおこない、サーバ装置101へ通知する。
(周辺機器)
周辺機器103は、被制御部113と、機器内蔵センサ114と、応答・広告部241と、を含む。応答・広告部241は、周辺機器103の周辺の端末102からの機器検索メッセージに対して応答をおこない、定期的に自身の存在や機器情報を端末102に広告する。被制御部113は、端末102からの制御命令にしたがい、周辺機器103が有する機能を制御する。
(サーバ装置の処理内容)
(センサ・端末情報集約部の処理について)
つぎに、上記構成における情報収集処理について説明する。図3は、情報収集機能を説明するブロック図である。図3を用いて、サーバ装置101および端末102に設けられるセンサ・端末情報集約部204,232におけるセンサ情報収集の処理を説明する。
端末102のセンサ・端末情報集約部232により集約されたセンサ情報は、サーバ装置101のセンサ・端末情報集約部204に収集され、端末102内のセンサ・端末情報集約部232と同様の処理をおこなう。端末102で集約されたセンサ情報は、サーバ装置101内のセンサ・端末情報集約部204に直接通知せず、別の端末102内のセンサ・端末情報集約部232によりセンサ情報を集約してからサーバ装置101へ集約した情報を送信することも可能である。また、周辺機器103内の機器内蔵センサ114で計測されたデータは、端末102のセンサ・端末情報集約部232に通知せず、直接、サーバ装置101内のセンサ・端末情報集約部204に通知することもできる。
端末102のセンサ・端末情報集約部232は、サーバ装置101へのセンサ情報転送にかかるトラフィック量の削減、および、データ処理量の削減のために、計測データを集約することができる。データの集約例は、たとえば、センサ・端末情報集約部232は、時刻10:00:00に計測したデータと、時刻10:00:05に計測したデータの平均値をとる。そして、センサ・端末情報集約部232は、10:00:00と10:00:05のデータを、算出した値により新たに10:00:00のデータに置き換える。これにより、2つのデータを1つのデータとして集約し、データサイズを小さくし、サーバ装置101に転送する。
(コンテキスト生成部の処理について)
図4は、コンテキスト生成部の処理を説明する図である。サーバ装置101のコンテキスト生成部201におけるコンテキストの生成と、タスク管理部202へのコンテキスト情報通知について説明する。コンテキスト生成部201は、センサ・端末情報集約部204からセンサ情報と、周辺機器103の情報を取得する。また、コンテキスト取得制御情報保存部211からコンテキスト取得制御情報を取得する。そして、これらセンサ情報と、周辺機器103の情報と、コンテキスト取得制御情報とに基づき、コンテキストを生成し、タスク選択部214に送る。
図5は、コンテキスト生成部の処理を示すフローチャートである。コンテキスト生成部201は、はじめに、センサ・端末情報集約部204からセンサ情報や周辺機器103の情報を取得する(ステップS501)。つぎに、取得した情報を元に、コンテキストの生成をおこなう(ステップS502)。つぎに、タスク管理部202よりコンテキスト取得制御情報を受信済みであるか判断し(ステップS503)、受信済みであれば(ステップS503:Yes)、現在、コンテキスト制御情報のコンテキスト取得タイミングであるかを判断する(ステップS504)。コンテキスト取得タイミングであれば(ステップS504:Yes)、コンテキストをコンテキスト取得制御情報に基づき加工(抽象化もしくは具体化)し(ステップS505)、タスク管理部202へコンテキスト情報を通知する(ステップS506)。
一方、現在、タスク管理部202のコンテキスト取得タイミングでなければ(ステップS504:No)、処理を終了し、次回のコンテキスト取得タイミング時に再度ステップS501以降の処理を実行する。
また、ステップS503の判断の結果、タスク管理部202よりコンテキスト取得制御情報を受信済みでなければ(ステップS503:No)、タスク管理部202よりコンテキスト取得制御情報を受信する(ステップS507)。そして、ステップS504以降の処理を実行する。
(タスク管理部の処理について)
図6は、タスク管理部の処理を説明する図である。タスク管理部202がおこなうタスクの選択と、サービス管理部203へのタスク情報の通知の処理について説明する。タスク選択部214は、コンテキスト情報と、タスク選択ルール保存部213に保存されたタスク選択ルール(優先度や依存タスクID等の情報を含む)に基づき、登録タスク保存部212より実行するタスクを選択する。そして、タスク選択部214は、タスク管理部202(タスク・サービス確認部224)の情報により実行可能なタスクが1つ以上存在する場合、選択したタスクのうち、最も優先順位が高いタスクの情報をサービス管理部203へ送信する。
サーバ装置101(タスク管理部202)には、管理者端末102aが接続され、コンテキスト取得制御情報をコンテキスト取得制御情報保存部211に保存する。また、タスク情報を登録タスク保存部212に保存する。また、タスクの優先度(優先順位)や、依存タスク(依存タスクID)の情報をタスク選択ルール保存部213に保存する。
図7は、タスク管理部の処理を示すフローチャートである。タスク管理部202のタスク選択部214が実行する処理について説明する。はじめに、タスク選択部214は、コンテキスト情報をコンテキスト生成部201から取得するまで待機し(ステップS701)、コンテキスト情報をコンテキスト生成部201から取得する(ステップS702)。
つぎに、タスク選択部214は、タスク選択ルールのテーブルに、受信したコンテキスト情報と一致するデータが存在するか判断する(ステップS703)。タスク選択部214は、一致するデータが存在すれば(ステップS703:Yes)、この一致するデータのうち、依存タスクIDのタスクが終了しているものが存在するか判断する(ステップS704)。
そして、タスク選択部214は、依存タスクIDのタスクが終了しているものが存在すれば(ステップS704:Yes)、依存タスクIDのタスクが終了しているタスクを選択し、そのうち、最も優先順位が高いタスクの情報をサービス管理部203へ送信する(ステップS705)。一方、タスク選択部214は、ステップS703において、受信したコンテキスト情報と一致するデータが存在しない場合(ステップS703:No)、およびステップS704において、依存タスクIDのタスクが終了しているものが存在しない場合(ステップS704:No)には、今回のタスク選択の処理を終了する。
タスク選択部214は、ステップS705の処理後、サービス管理部203よりタスク実行不可メッセージを受信したか判断する(ステップS706)。タスク実行不可メッセージを受信した場合には(ステップS706:Yes)、タスク選択部214は、登録タスク保存部212のタスク情報のうち実行不可タスクを除いたものの中から、コンテキスト情報とタスク選択ルールに基づき、実行するタスクを再度選択し(ステップS707)、ステップS703に戻る。一方、サービス管理部203よりタスク実行不可メッセージを受信しなかった場合は(ステップS706:No)、今回のタスク選択の処理を終了する。
(サービス管理部について)
図8は、サービス管理部の処理を説明する図である。サービス管理部203におけるサービスの確認と、タスクコントローラの送信の処理について説明する。タスク・サービス確認部224は、タスク管理部202(タスク選択部214)から通知されたタスクの情報を得る。また、タスク・サービス対応関係保存部221からタスクに対応するサービス情報を取得し、利用可能サービス確認部223からサービス情報を得る。これらの情報により、タスク・サービス確認部224は、通知されたタスクが実行可能であるかサービス情報と照合する。
タスクコントローラ管理部226では、タスク・サービス確認部224から実行可能なタスク情報(実行タスク情報)を得て、タスクコントローラ保存部225から対応するタスクコントローラを取得し、端末102へ送信する。デバイス・サービス定義情報保存部227では、周辺機器103のデバイス・サービス定義を格納しており、端末102により、端末102が発見した周辺機器103のサービスをデバイス・サービス定義情報保存部227を参照して通知を得る。利用可能サービスキャッシュ222は、端末102からの機器サービス情報を格納し、利用可能サービス確認部223により利用サービスの確認時に参照される。利用可能サービスキャッシュ222に格納された機器サービス情報は、一定時間後に削除される。
サーバ装置101(サービス管理部203)には、管理者端末102aが接続され、タスクと、サービスの関連付けの情報をタスク・サービス対応関係保存部221に保存する。また、タスクコントローラをタスクコントローラ保存部225に保存する。また、デバイス・サービス定義をデバイス・サービス定義情報保存部227に保存する。
図9は、サービス管理部の処理を示すフローチャートである。サービス管理部203が実行する処理について説明する。はじめに、タスク・サービス確認部224は、タスク情報をタスク管理部202から取得するまで待機し(ステップS901)、タスク情報をタスク管理部202から取得する(ステップS902)。つぎに、タスク・サービス確認部224は、タスク・サービス対応関係保存部221より、このタスクを実行するためのサービスを取得する(ステップS903)。
つぎに、タスク・サービス確認部224は、利用可能サービス確認部223を介して、利用可能サービスキャッシュ222に、このサービス情報が存在するか確認する(ステップS904)。サービス情報が存在する場合には(ステップS904:Yes)、タスクコントローラ管理部226は、タスクコントローラ保存部225よりこのタスクを実行するためのタスクコントローラを取得し(ステップS905)、このタスクコントローラを端末102へ送信し(ステップS906)、1つのタスクの処理を終了する。
ステップS904において、利用可能サービスキャッシュに、サービス情報が存在しない場合には(ステップS904:No)、端末102に対して利用可能サービス確認部223が周辺機器103のサービス検索要求を一定回数以上おこなったかを確認し(ステップS907)、一定回数以上おこなった場合には(ステップS907:Yes)、タスク・サービス確認部224は、タスク実行不可メッセージをタスク管理部202へ通知し(ステップS908)、1回の処理を終了する。
一方、ステップS907において、利用可能サービス確認部223が端末102に対して周辺機器103のサービス検索要求を一定回数以上行っていない場合には(ステップS907:No)、利用可能サービス確認部223は、端末102へ周辺機器103のサービス検索要求を通知し(ステップS909)、一定期間後に利用可能サービスキャッシュ222をチェックする(ステップS910)。この後、ステップS904に戻る。
(端末の処理内容)
(周辺機器連携部の処理について)
図10は、周辺機器連携部の処理を説明する図である。端末102の周辺機器連携部231がおこなうサービス検索、および、タスクコントローラによる機器の制御について説明する。サービス・発見通知部233は、サーバ装置101のサービス管理部203(利用可能サービス確認部223)からの周辺機器103のサービス検索要求に対応し、周辺機器103の検索をおこなう。そして、周辺機器103からの応答により、デバイス・サービス定義情報保存部227からこの周辺機器103のサービスを取得し、サービス管理部203の利用可能サービスキャッシュ222と、センサ・端末情報集約部232にこの周辺機器103のサービスを通知する。
タスクコントローラ実行部234は、サーバ装置101のサービス管理部203(タスクコントローラ管理部226)から受信したタスクコントローラにしたがって、アプリケーション235および周辺機器103を制御する。
図11は、周辺機器連携部のサービス検索処理を示すフローチャートである。周辺機器連携部231のサービス発見・通知部233がおこなうサービス検索処理について説明する。サービス発見・通知部233は、サーバ装置101のサービス管理部203(利用可能サービス確認部223)から周辺機器103のサービス検索要求を受信するまで待機し(ステップS1101)、サービス管理部203から周辺機器103のサービス検索要求を受信すると(ステップS1102)、サービス発見・通知部233は、周辺機器103の検索をおこなう(ステップS1103)。
つぎに、サービス発見・通知部233は、周辺機器103からの検索の応答を受信すると(ステップS1104)、周辺機器103からの検索の応答にしたがい、デバイス・サービス定義情報保存部227よりこの周辺機器103のサービスを取得する(ステップS1105)。そして、サービス発見・通知部233は、サービス管理部203の利用可能サービスキャッシュ222にこのサービスを通知し(ステップS1106)、また、センサ・端末情報集約部232にこのサービスを通知し(ステップS1107)、1回の処理を終了する。
図12は、周辺機器連携部のタスクコントローラに関する処理を示すフローチャートである。周辺機器連携部231のタスクコントローラ実行部234がおこなうタスクコントローラの受信から実行にかかる処理を説明する。はじめに、タスクコントローラ実行部234は、サーバ装置101のサービス管理部203(タスクコントローラ管理部226)からタスクコントローラを受信するまで待機し(ステップS1201)、サービス管理部203からタスクコントローラを受信すると(ステップS1202)、受信したタスクコントローラにしたがい、アプリケーション235および周辺機器103を制御し(ステップS1203)、1回の処理を終了する。
(周辺機器の処理内容)
図13は、周辺機器の処理を説明する図である。応答・広告部241は、端末102の周辺機器連携部231(サービス発見・通知部233)からの機器検索メッセージがあると、周辺機器103の存在や機器情報を応答する。被制御部113は、端末102の周辺機器連携部231(タスクコントローラ実行部234)からの制御命令にしたがい、周辺機器103が有する機能を実行制御する。機器内蔵センサ114は、センサ計測情報を端末102のセンサ・端末情報集約部232またはサーバ装置101のセンサ・端末情報集約部204に送る。
(タスク実行の具体的処理例)
(1.周辺機器との連携をおこなう例)
つぎに、タスク実行の具体的処理例について説明する。はじめに、周辺機器103によるタスクとして調理支援をおこなう例について説明する。
タスクは、料理の過程における個々の材料を準備・調理する作業であり、事前に登録した依存関係にしたがって自動的に調理をおこなう。そして、各周辺機器103(調理機器)は、端末102から操作可能である。調理機器には、機器内蔵センサ114として、温度センサやタイマが搭載されている。
図14−1は、タスクの具体例を示す図表である。登録タスク保存部212に保存されるハンバーグ調理にかかるタスクの情報1400を示す。タスクの情報1400は、タスクIDと、ユーザと、タスクからなる。タスクIDとしてT1〜T6が設定され、タスクIDがT1のタスクは「材料用意」であり、ユーザは「Aさん」であり、以下順に調理のタスクであり、タスクIDがT6のタスクは「材料を焼く」であり、ユーザは「Aさん」である。タスクT1〜T6は、周辺機器103である調理機器を端末102経由で制御する。また、タスクT1では端末102の図示しない表示部に、「材料用意」を指示する情報を表示しユーザに伝える。
図14−2は、タスクの依存関係を説明する図である。調理開始は、タスクT1から実行し、タスクT2とタスクT4は、依存関係が分岐しており同時に実行できるが、タスクT1の終了後に実行される依存関係にある。また、タスクT3は、タスクT2の実行後に実行される依存関係にある。また、タスクT5は、タスクT3と、タスクT4の終了後に実行される依存関係にある。タスクT6は、タスクT5の実行後に実行される依存関係にある。
すなわち、タスクT3の「玉葱炒め」と、タスクT4の「肉をひいてミンチに」という2つのタスクを終了していないと、タスクT5の「材料をまぜて成形」というタスクは調理上、実行できない。このようなタスク依存関係は、後述するタスク選択ルールとしてタスク選択ルール保存部213に保存される。なお、図中のP1,P2は優先度である。
図15は、端末あるいは周辺機器から収集したデータの一例を示す図表である。端末102の端末内蔵センサ112、もしくは周辺機器103の機器内蔵センサ114から通知される計測データの例を示す。図15に例示した計測データ1500は、周辺機器103としての調理器具(コンロ、鍋、フライパンなど)の温度センサを機器内蔵センサ114として用いる。端末102のセンサ・端末情報集約部232は、温度センサの値を計測し、コンテキスト情報生成に使用する。
図15に示す例では、時刻「10:00:00」にセンサID1のセンサの温度が「200.4℃」であり、この後、時刻「10:00:01」にセンサID1のセンサの温度が「200.6℃」であることを示している。
図16は、生成されるコンテキスト情報の例を示す図表である。図16のコンテキスト情報1600では、調理器具が高温か低温かという情報をコンテキストとして使用する。このコンテキスト情報1600は、具体的には、コンテキスト生成部201は、ユーザのAさんについて、設定した時刻「10:00:15」における場所として厨房にいることを検出し、これらを対応付けたコンテキスト情報を生成する。さらに詳細な場所として、コンロ1の温度が180℃以上、コンロ2の温度が200℃以上であることを検出している。図示のようにコンテキスト生成部201は、複数のユーザのコンテキスト情報を生成する。
図17は、コンテキスト取得制御情報の例を示す図表である。コンテキスト取得制御情報1700は、コンテキスト取得制御情報保存部211に保存され、コンテキストの粒度やコンテキストの取得タイミング等からなる。このコンテキスト取得制御情報1700の例を説明すると、ユーザのAさんについて、取得コンテキストが「温度」であり、取得タイミングが「条件一致時」、条件が「コンロ1の温度が180℃以上」である。コンテキスト生成部201は、調理器具が上記の温度に達したら、タスク管理部202に対し、コンテキストとして温度情報を通知する。
図18は、タスク選択ルールの例を示す図表である。タスク選択ルール保存部213に保存されるタスク選択ルール1800について説明する。タスク選択ルール1800は、上述した登録タスクについてのコンテキスト条件と、優先度と、依存タスクIDとからなる。たとえば、タスクT2のコンテキスト条件は「T1終了」、優先度は「P2」、依存タスクIDは「T1」である。優先度はP1<P2である。
図19は、タスク・サービス対応関係の例を示す図表である。タスク・サービス対応関係保存部221に保存されるタスク・サービス対応関係情報1900について説明する。タスク・サービス対応関係情報1900は、各タスクを実行するために必要な周辺機器103(調理機器)のサービスを対応付けたものである。たとえば、タスクT2のサービスは「野菜カッターサービス」であり、登録タスク(図14−1参照)のタスクT2「玉葱みじん切り」に対応するサービスである。
図20は、デバイス・サービス定義情報の例を示す図表である。デバイス・サービス定義情報保存部227に保存されるデバイス・サービス定義情報2000について説明する。デバイス・サービス定義情報2000は、周辺機器103である調理機器が提供するサービスを対応付けたものである。たとえば、デバイス(被制御部113)として「野菜カッター」のサービスは「野菜カッターサービス」である。
つぎに、上述した各設定内容に基づく、タスク(調理)の実行手順について説明する。はじめに、タスク管理部202は、タスク選択ルール1800により、コンテキスト条件NULLのタスクT1(材料用意)を選択し、実行する。この際、タスクT1に対応するサービスはNULLであるが、ユーザの端末102にどの材料が必要かのメッセージを表示する。
そして、サービス管理部203は、端末102を介して周辺機器103が実行したタスクT1が終了したことをタスクコントローラ実行部234に通知する。これにより、タスク管理部202は、タスクT1の終了がコンテキスト条件であり、かつ、優先度が高いT2(玉葱みじん切り)を選択し、実行する。タスクT2の実行においては、周辺機器103の「野菜カッター」が提供するサービス「野菜カッターサービス」を利用する。
この後、サービス管理部203がタスクT2が終了したことをタスク管理部202に通知すると、タスク管理部202は、コンテキスト条件「T2「終了」&&コンロ1.温度≧180℃」が成立している場合、優先度P2のタスクT3(玉葱炒め)を選択し、実行する。コンテキスト条件が成立していなければ、先にタスクT4「肉をひいてミンチに」を実行することが可能である。タスクT3の実行においては、タスクコントローラ実行部234は、周辺機器103「コンロ1」が提供する「機器温度調整サービス」および「タイマサービス」を利用する。
この後、タスク管理部202は、まだタスクT4(肉をひいてミンチに)が実行されていなければ、タスクT4を実行する。タスクT4の実行においては、タスクコントローラ実行部234は、周辺機器103の「ミンチ機」が提供する「精肉ミンチ機サービス」を利用する。
そして、サービス管理部203は、タスクT3およびT4が終了し、タスク管理部202に終了通知すると、タスク管理部202は、タスクT3とタスクT4の終了がコンテキスト条件であるタスクT5「材料を混ぜて成形」を実行する。タスクT5の実行においては、タスクコントローラ実行部234は、周辺機器103「ミキサー」が提供する「材料ミキサーサービス」を利用する。
この後、サービス管理部203は、タスクT5が終了したことをタスク管理部202に通知すると、タスク管理部202は、タスクT5の終了がコンテキスト条件であるタスクT6「材料を焼く」を選択し、実行する。タスクT6の実行においては、タスクコントローラ実行部234は、周辺機器103の「コンロ2」が提供する「機器温度調整サービス」および「タイマサービス」を利用する。
以上説明したように、周辺機器が有する調理にかかる複数の機能について、複数のタスクの実行順序を管理し、実行することにより、料理を手際よく効率的におこなうことができるようになる。また、タスク同士の依存関係とタスクに付した優先度により、調理の手順を間違うことなく、そのときに必要な調理操作を適切に実行できるようになる。
(2.周辺機器との連携をおこなわない例)
つぎに、周辺機器103を用いずに、作業者が端末102だけを用いて車の修理作業の支援をおこなう例について説明する。また、この例では、場所を問わないため、場所にかかるコンテキストを使用しない。そして、修理手順は、端末102の表示部のWebブラウザで表示される。
以下に説明する修理作業は複数の修理工程で構成され、各修理工程がタスクに対応する。作業者は、修理の遂行にあわせて順次表示される修理手順にしたがって修理作業をおこなっていく。たとえば、「場所Aと、場所Bのネジを外して、パーツCを取り外す」等である。また、この例では、タスクの依存関係は、各タスクが直列に配置され、分岐はない。
概要を説明すると、1.はじめにサーバ装置101が端末102に対し、作業手順を説明するコンテンツのURLを送信する。2.URLを受け取った端末102は、ブラウザを起動すると共にブラウザにURLを通知する。3.端末102は、ブラウザが指定されたURLにアクセスし、作業手順を説明するコンテンツを表示する。4.作業者は、表示されたコンテンツにしたがって修理作業をおこなう。5.作業者は、1つの修理工程が完了すると、端末102のブラウザ上の「作業終了」ボタンを操作する。6.サーバ装置101は、端末102から作業終了の通知を受けて、つぎの修理工程を説明するコンテンツのURLを端末102に通知する。以降、一連の修理作業がすべて終了するまで、サーバ装置101は、端末102に対し、上記4.〜6.の処理を繰り返す。
つぎに、タスク依存関係について説明する。この車の修理作業であり、以下の前提を有するとする。修理作業は作業者Aによって実行され、修理作業の開始時刻は13:30とする。修理作業は、各タスクT1,T2,T3の3つの修理工程(タスク)で実現され、これらのタスクは順番に実行されなければならない。オイル交換を例にとると、各タスクは、タスクT1「古いオイルの除去」、タスクT2「エンジン内部の洗浄」、タスクT3「新しいオイルの投入」となる。
図21−1は、タスク選択ルールの例を示す図表である。タスク選択ルール保存部213に保存されるタスク選択ルール2100は、たとえば、作業者Aについて、タスクT2のコンテキスト条件は「T1終了」、優先度は「5」、依存タスクIDは「T1」である。優先度は値が高いほど優先度が高い。なお、図示の例では、優先度は同じとした。
図21−2は、タスクの依存関係を説明する図である。修理開始は、タスクT1から実行し、タスクT1が終了後にタスクT2が実行される依存関係にある。また、タスクT3は、タスクT2の実行後に実行される依存関係にある。
図22は、タスク・サービス対応関係の例を示す図表である。タスク・サービス対応関係保存部221に保存されるタスク・サービス対応関係情報2200は、図示のように、この例では、タスクの実行にあたって周辺機器103が提供するサービスを利用しないため、タスク・サービス対応関係情報2200にサービス情報は登録されない(NULLが登録される)。これに限らず、周辺機器103のサービスを利用しない場合には、タスク・サービス対応関係情報2200に、タスクT1〜T3のタスクIDを登録しない設定としてもよい。タスク・サービス確認部224は、タスク・サービス対応関係情報2200にタスクIDが未登録の場合は、周辺機器103利用サービスなし、と判断する。
図23は、コンテキスト取得制御情報の例を示す図表である。コンテキスト取得制御情報2300は、コンテキスト取得制御情報保存部211に保存され、コンテキストの粒度やコンテキストの取得タイミング等からなる。このコンテキスト取得制御情報2300の例を説明すると、ユーザの作業者Aについて、取得コンテキストが「時間」であり、取得タイミングが「条件一致時」、条件が「時刻13:30」である。コンテキスト生成部201は、時間が上記の時刻に達したら、タスク管理部202に対し、コンテキストとして時間情報を通知する。
図24は、登録タスクの追加情報の例を示す図表である。この図24を用いて、タスク追加情報について説明する。この例では、サーバ装置101が端末102に対してタスクの起動を要求する際、車の修理作業を説明するコンテンツのURLを端末102に通知する。登録タスク保存部212には、図24に示すタスクの情報2400として、タスクIDと、タスク毎の関連情報としてURLを格納する。
端末102に通知する追加情報(URL)については、以下のように管理する構成にできる。
1.コンテキスト生成部201で管理する。この場合、タスク管理部202は、コンテキスト生成部201から受信したタスク関連情報をそのまま端末102に送る。
2.コンテキスト生成部201からタスク起動要求を受信するアプリケーション235を定義し、このアプリケーション235が追加情報(URL)を管理する。この場合、アプリケーション235は、タスク関連情報を伴ったタスク起動要求をタスク管理部202に送信する。タスク管理部202は、アプリケーション235から受信したタスク関連情報をそのまま端末102に送る。
つぎに、上述した各設定内容に基づく、タスク(車の修理作業)の実行手順について説明する。はじめに、1.タスク管理部202は、タスクTxの起動が必要であることを認識すると、端末102に対してタスク起動要求メッセージを送信する。タスク起動要求メッセージには、起動すべきアプリケーション235として、一般的なWebブラウザ(端末102にあらかじめインストールしておく)と、WebブラウザがアクセスすべきURLを含む。
2.つぎに、端末102は、タスク起動要求メッセージを受信すると、Webブラウザを起動すると共に、Webブラウザにサーバ装置101から通知されたURLを渡し、このURLにアクセスする。
3.上記手順2.の結果、URLに対応するコンテンツを端末102の表示部に表示する。このコンテンツは、修理対象の車種に応じて、各タスクT1〜T3を実行するために必要な情報である。たとえば、修理対象車種のオイル交換手順(最初に箇所AのボルトBを外す、等)を示すコンテンツを表示する。
4.作業者は、端末102に表示されたコンテンツを閲覧しながらタスクに対応した修理作業をおこない、1つのタスク(修理工程)を完了したとき、端末102の表示部に表示される「作業終了」ボタンを操作する。
5.ボタンの操作により、端末102は、タスクTxが終了した旨の通知をタスク管理部202に通知する。
6.タスク管理部202は、タスクTxが終了した旨をコンテキスト生成部201に通知する。これにより、コンテキスト生成部201は、作業者のコンテキストを更新する。これにより、作業者の状態が「タスクTx終了」状態に遷移する。
7.コンテキストの更新に応じて、サーバ装置101は、タスク選択部214により新たなタスクの起動制御を開始する。以降、上記1.に戻り、つぎのタスクにかかる処理を実行する。
図25は、タスクの実行手順を示すシーケンス図である。図25に示したコンテンツ保持部2500は、コンテキスト生成部201の一部に設け、URLのコンテンツを保持する例とした。はじめに、サーバ装置101のコンテキスト生成部201が時刻「13:30」を検知し(ステップS2501)、タスク管理部202にコンテキスト情報通知する(ステップS2502)。このコンテキスト情報通知には、ユーザIDが作業者Aであり、時刻が13:30であることを含む。つぎに、タスク管理部202は、コンテキスト情報通知を受けて、作業者Aの端末102に対し、タスク起動要求をおこなう(ステップS2503)。このタスク起動要求は、アプリケーション235がブラウザ、URLが図24に示したタスクT1のURL(http://carA_oil1.html)である。
端末102では、タスクコントローラ実行部234がタスク起動要求を受け、アプリケーション235であるブラウザに起動要求する(ステップS2504)。この起動要求には、タスクT1のURL(http://carA_oil1.html)を含む。
端末102は、起動要求に基づき、サーバ装置101のコンテンツ保持部2500に対し、コンテンツ表示のためのHTTP要求をおこなう(ステップS2505)。HTTP要求は上記URLアドレスを含み、コンテンツ保持部2500は、HTTP応答を端末102のブラウザ235に返す(ステップS2506)。これにより、端末102では表示部上にWeb画面でタスクT1の修理工程の画面が表示され、タスクT1による1つの修理工程を表示部の表示画面を見ながら容易におこなえるようになる。
この後、作業者AがタスクT1の修理工程を完了したとき、端末102の表示部に表示される「作業終了」ボタンを操作すると(ステップS2507)、ブラウザ235は、タスク終了通知をサーバ装置101のタスク管理部202に送信する(ステップS2508)。このタスク終了通知には、ユーザIDが作業者Aであり、コンテキストがタスクT1終了を含む。
タスク管理部202は、タスク終了通知を受けると、タスクT1の終了後に実行される依存関係にあるタスクT2を次に実行すべきタスクとして選択し、作業者Aの端末102に対し、タスク起動要求をおこなう(ステップS2509)。以降、タスクT3についても上記同様の処理をおこなう。
以上説明した具体例によれば、周辺機器を用いたタスク実行に限らず、端末そのものを用いてタスク実行することもできるようになる。また、上述した車の修理について、複数のタスクの実行順序を管理し、実行することにより、修理を工程毎に手際よく効率的におこなうことができるようになる。また、端末の表示部の画面上には各修理工程毎に必要な情報を実際の画面を用いて表示することができるから、修理する際の場所や部品を間違うことがなく、各画面を切り替えていくだけで修理作業を終了させることができるようになる。
以上説明した実施の形態1によれば、ユーザやその周辺環境のコンテキストと、周辺機器が提供するサービスとに基づいて、優先順位やタスク間の依存関係を考慮して複数のタスクを順次実行することができる。これにより、ユーザの作業ミスや、作業効率の低下を抑えることができるようになる。また、コンテキスト処理と、タスク処理の切り分けを明確に区分しているため、コンテキスト処理のアルゴリズムの変更を容易におこなうことができ、タスク処理に影響を与えず、システムの開発を容易におこなうことができるようになる。
(実施の形態2)
実施の形態2は、新たなタスクの割り込みと、実行中のタスクの中断の処理をおこなう構成である。タスクの割り込みは、たとえば、あるユーザが定型的な仕事を実行していたときに、急に新たな仕事を処理しなければならないときなどに生じる。この実施の形態では、ユーザ単位で割り込み、および中断の処理をおこなう。
図26は、実施の形態2にかかるタスク実行制御システムの構成を示す図である。図26は、主に実施の形態1と異なる構成を抽出して記載してあり、他の構成は、実施の形態1(図2)とほぼ同様であるが、以下の点で異なる。コンテキスト生成部201には各タスクを起動するために満たされるべきコンテキスト条件が登録される。コンテキスト生成部201は、当該コンテキスト条件に基づいて起動可能なタスクの有無を判定し、起動可能なタスクが存在する場合には、当該タスクに関する情報がタスク選択部214に通知される。また、端末において、周辺機器103や端末画面の制御等、各タスクで行うべきすべての処理はアプリケーション235によって行われ、以後当該アプリケーションをタスクコントローラと呼ぶ。また、タスクコントローラ実行部234は、当該タスクコントローラの起動/中断/再開といったタスクコントローラに共通的な制御を行うものとして位置づけている。以下、実施の形態1と異なる構成について説明する。
(サーバ装置の構成)
タスク管理部202のタスク選択部214は、端末102のタスクコントローラ実行部234に対し、タスクの実行開始/中断/再開要求をおこない、タスクの実行開始/中断/再開応答を受ける。このタスク選択部214に設けられるタスクスケジューラ214aは、ユーザ毎に、コンテキスト生成部201からコンテキスト情報を受けて実行待ち状態にある1つ以上のタスク、および実行中のタスクに関する情報(タスクキュー)を管理する。
タスクスケジューラ214aは、実行中状態のタスクのIDと優先度(0個または1個のタスクの情報を管理)を実行中タスク2601として管理し、実行待ち状態にあるタスクのIDと優先度(0個以上のタスクの情報を管理)をタスクキュー2602を用いて管理する。タスクスケジューラ214aは、タスクIDと、タスクの優先度のリストに基づき端末102で実行可能なタスクを管理する。
登録タスク保存部212には、ユーザID2611と、タスクID2612と、タスク起動条件2613と、優先度2614と、実行状態2615の各情報がテーブル形式で保存されている。ユーザID2611は、タスクを実行すべきユーザのIDであり、実行すべきユーザを指定しない場合は、その旨を示すID(たとえば0)が保持される。タスクID2612は、タスクの識別子(ID)である。タスク起動条件2613は、タスクを起動するための条件である。優先度2614は、タスクの優先度である。実行状態2615は、タスクの実行状態(未実行、完了済み)を示している。
(端末の構成)
端末102のタスクコントローラ実行部234は、サーバ装置101のタスクスケジューラ214aの指示により、タスクコントローラの起動、中断、再開を制御する。また、タスクコントローラ実行部234は、タスクコントローラのインストール、アンインストールの制御もおこなう。
(タスク実行時の処理について)
図27は、タスク管理部の処理を示すフローチャートである。以下は、タスクスケジューラ214aがコンテキスト生成部201からの通知によってタスクを実行する場合の処理例を説明する。はじめに、タスクスケジューラ214aは、タスク起動条件が満足された旨の通知をコンテキスト生成部201から受信する(ステップS2701)。つぎに、タスクスケジューラ214aは、端末102が停止状態にあるか否かを判定する(ステップS2702)。停止中の場合は(ステップS2702:Yes)、ステップS2706に移行し、停止中でない場合は(ステップS2702:No)、ステップS2703に移行する。この判定は、端末停止フラグがセットされている場合は端末102が停止状態にあり、そうでない場合は停止状態にないと判定される。
ステップS2703では、タスクスケジューラ214aは、登録タスク保存部212から実行可能なタスクを選択する。つぎに、タスクスケジューラ214aは、端末102で現在実行中のタスクがあるか否かを判定する(ステップS2704)。実行中のタスクがある場合は(ステップS2704:Yes)、ステップS2705に移行し、実行中のタスクがない場合は(ステップS2704:No)、ステップS2708に移行する。
ステップS2705では、ステップS2703で選択された実行可能なタスクのうち、端末102で現在実行中のタスクよりも優先度の高いタスクがあるか否かを判定する。優先度の高いタスクがある場合は(ステップS2705:Yes)、ステップS2707に移行し、優先度の高いタスクがない場合は(ステップS2705:No)、ステップS2706に移行する。
ステップS2706では、ステップS2703で選択された実行可能なタスクのすべてをタスクキュー2602にアタッチして、上記の処理を終了する。タスクキュー2602は、コンテキスト生成部201において、タスク起動条件が満足されたと判定されたタスクのうち、端末102で実行されていないタスク(中断状態にあるタスクを含む)を管理するものである。
ステップS2707では、ステップS2703で選択された実行可能なタスクのうち、優先度が端末102で現在実行中のタスクと等しい、またはそれ以下のタスクをタスクキュー2602にアタッチする。ここで、タスクキュー2602にアタッチされなかった、優先度の高いタスクを実行候補タスクとする。
ステップS2708では、実行可否判定をおこなっていない実行候補タスクのうち、最も優先度の高いタスクの実行可否判定をサービス管理部203に要求する。タスク実行の際に、周辺機器103のサービスを使用しない場合は、タスクが即時実行される。ステップS2709では、ステップS2708の応答としてサービス管理部203から受信した判定結果、タスクが実行可能である場合は(ステップS2709:タスク実行可能)、ステップS2712に移行し、タスクが実行不可である場合は(ステップS2709:タスク実行不可)、ステップS2710に移行する。
ステップS2710では、サービス実行可否判定の結果、実行不可となったタスクをタスクキュー2602にアタッチする。ステップS2711では、サービス実行可否判定をおこなっていない実行候補タスクがあるか否かを判定し、実行候補タスクがある場合は(ステップS2711:Yes)、ステップS2708に移行し、実行候補タスクがない場合は(ステップS2711:No)、上記の処理を終了する。
ステップS2712では、端末102で現在実行中のタスクがあるか否かを判定する。実行中のタスクがある場合は(ステップS2712:Yes)、ステップS2713に移行し、実行中のタスクがなければ(ステップS2712:No)、ステップS2716に移行する。ステップS2713では、現在実行中のタスクの中断要求を端末102に送信する。ステップS2714では、現在実行中のタスクの中断完了通知を端末102から受信する。ステップS2715では、中断が完了したタスクについて、登録タスク保存部212内に登録されている状態を「中断中」に更新する。また、このタスクをタスクキュー2602にアタッチする。
ステップS2716では、ステップS2709で実行可能と判定されたタスクの実行開始要求を端末102に送信する。ステップS2717では、このタスクの実行開始応答を端末102から受信する。ステップS2718では、実行が開始されたタスクについて、登録タスク保存部212内に登録されている状態を「実行中」に更新する。また、このタスクを実行中タスクとして管理する。ステップS2719では、サービス実行可否判定をおこなっていない、残りすべての実行候補タスクをタスクキュー2602にアタッチして、上記の処理を終了する。
(タスク終了時、および端末停止時の処理について)
図28は、タスク管理部におけるタスク終了時、および端末停止時の処理を示すフローチャートである。端末102で実行中のタスクが終了した場合、および端末102が停止した場合の処理について説明する。端末102が停止した状態とは、ユーザが何らかの状況下で端末102を操作することでサーバ装置101からのタスク制御を受け付けない状態を意味する。
端末102のタスク終了時には、タスクスケジューラ214aは、端末102で実行していたタスクが完了し、タスク実行完了通知を端末102から受信する(ステップS2801)。つぎに、タスクスケジューラ214aは、タスク実行完了応答を端末102に送信する(ステップS2802)。つぎに、実行が完了したタスクについて、登録タスク保存部212内に登録されている状態を「完了」に更新する(ステップS2803)。そして、実行中タスクとして管理されていたこのタスク情報をクリアする(ステップS2804)。この後、つぎに実行するタスクを決定するための処理(ステップS2805)に移行する。
端末102の停止時には、ユーザが端末102の停止操作をおこなうと、タスクスケジューラ214aは、端末102から端末停止通知を受信する(ステップS2806)。これにより、タスクスケジューラ214aは、端末102の端末停止フラグをセットする(ステップS2807)。そして、端末停止応答を端末102に送信する(ステップS2808)。つぎに、タスクスケジューラ214aは、端末再開通知を端末102から受信したか否かを判定する(ステップS2809)。受信した場合は(ステップS2809:Yes)、端末102の端末停止フラグをリセットし(ステップS2810)、ステップS2805に移行する。端末再開通知フラグを受信していない場合は(ステップS2809:No)、新たにタスクの起動条件が満たされたタスクを、タスクキュー2602にアタッチし(ステップS2811)、ステップS2809に戻る。
(実行待機のタスクのサービス確認の処理について)
図29−1、および図29−2は、タスク管理部における実行待機のタスクのサービス確認の処理を示すフローチャートである。タスクキュー2602内で待機しているタスクの実行に必要なサービスの有無を周期的に確認する処理について説明する。図29に示す処理の一部は、端末102で実行中のタスクが終了した場合にも同様に実行される。
はじめに、タスクスケジューラ214aは、端末102が停止状態にあるか否かを判定する(ステップS2901)。停止状態である場合は(ステップS2901:Yes)、ステップS2904に移行し、停止状態でない場合は(ステップS2901:No)、端末102で現在実行中のタスクがあるか否かを判定する(ステップS2902)。実行中のタスクがある場合は(ステップS2902:Yes)、ステップS2903に移行し、実行中のタスクがない場合は(ステップS2902:No)、ステップS2905に移行する。
ステップS2903では、タスクスケジューラ214aは、タスクキュー2602内のタスクのうち、端末102で現在実行中のタスクよりも優先度の高いタスクがあるか否かを判定する。優先度の高いタスクがある場合は(ステップS2903:Yes)、ステップS2906に移行し、優先度の高いタスクがない場合は(ステップS2903:No)、タスクスケジューラ214aは、一定周期時間だけ待機して(ステップS2904)、終了する(その後、ステップS2901から処理が再開される)。一定周期は、タスクキュー2602内に存在するタスクの優先度に応じて動的に変えてもよい。たとえば、優先度が高いタスクほど、周期を短くするなど。また、周期をタスク毎に変えるようにしてもよい。
ステップS2905では、タスクスケジューラ214aは、タスクキュー2602内のすべてのタスクを実行候補タスクとし、ステップS2907に移行する。ステップS2906では、タスクスケジューラ214aは、端末102で現在実行中のタスクよりも優先度の高いタスク(の集合)を実行候補タスクとし、ステップS2907に移行する。
ステップS2907では、タスクスケジューラ214aは、実行可否判定をおこなっていない実行候補タスクのうち、最も優先度の高いタスクの実行条件が満足されているか否かをコンテキスト生成部201に確認する。すなわち、候補タスクについて現コンテキストで実行(再開)可能であるかを確認する。つぎに、タスクスケジューラ214aは、ステップS2907の確認の結果に基づいて、このタスクの実行が可能か判断する(ステップS2908)。タスクの実行が不可能な場合は(ステップS2908:No)、ステップS2909に移行し、タスクの実行が可能な場合は(ステップS2908:Yes)、ステップS2910に移行する。
ステップS2909では、タスクスケジューラ214aは、コンテキストが変わったことにより、タスクの起動条件が満足されていないタスクについては、再度コンテキスト生成部201にタスク起動条件を再設定する。また、当該タスクをタスクキュー2602からデタッチし、ステップS2919に移行する。
ステップS2910では、タスクスケジューラ214aは、タスクの実行可否判定をサービス管理部203に要求し、この応答としてサービス管理部203から受信した判定の結果、タスクが実行可能である場合は(ステップS2911:実行可能)、ステップS2912に移行し、タスクが実行不可である場合は(ステップS2911:実行不可)、ステップS2919に移行する。
ステップS2912では、タスクスケジューラ214aは、端末102で現在実行中のタスクがあるか否かを判定する。実行中のタスクがある場合は(ステップS2912:Yes)、ステップS2913に移行し、実行中のタスクがない場合は(ステップS2912:No)、ステップS2916に移行する。
ステップS2913では、タスクスケジューラ214aは、現在実行中のタスクの中断要求を端末102に送信する。つぎに、タスクスケジューラ214aは、現在実行中のタスクの中断完了通知を端末102から受信する(ステップS2914)。この後、中断が完了したタスクについて、登録タスク保存部212内に登録されている状態を「中断中」に更新する。また、当該タスクをタスクキュー2602にアタッチする(ステップS2915)。そして、ステップS2911で実行可能と判定されたタスクの実行開始要求を端末102に送信する(ステップS2916)。なお、実行可能と判定されたタスクの状態が「中断中」である場合には、端末102にタスクの再開要求を送信する。
この後、タスクスケジューラ214aは、このタスクの実行開始応答を端末102から受信する(ステップS2917)。なお、ステップS2916でタスクの再開要求を送信した場合には、タスクの再開応答を受信する。そして、タスクスケジューラ214aは、実行が開始されたタスクについて、登録タスク保存部212内に登録されている状態を「実行中」に更新する。また、このタスクを実行中タスクとして管理し(ステップS2918)、ステップS2904に移行する。
ステップS2919では、タスクスケジューラ214aは、実行可否判定をおこなったタスクを、判定済みとする。この後、実行可否判定をおこなっていない実行候補タスクがあるか否かを判定する(ステップS2920)。実行可否判定をおこなっていない実行候補タスクがある場合は(ステップS2920:Yes)、ステップS2907に移行し、実行可否判定をおこなっていない実行候補タスクがない場合は(ステップS2920:No)、ステップS2904に移行する。
(端末の処理について)
図30は、端末がおこなう処理を示すフローチャートである。端末102のタスクコントローラ実行部234が実行する処理について説明する。下記のステップS3001,ステップS3005,ステップS3008,ステップS3011,ステップS3014,ステップS3016は、いずれか1つが要求あるいは通知を受けると処理を開始する。
ステップS3001において、タスクコントローラ実行部234がタスク実行開始要求をサーバ装置101のタスク管理部202から受信すると(ステップS3001)、タスクコントローラをサービス管理部203からダウンロードし、インストールする(ステップS3002)。ただし、タスク実行に必要なタスクコントローラが端末102に予めインストールされている場合は、本ステップを省略する。そして、タスクコントローラ実行部234は、タスクコントローラを起動させ(ステップS3003)、タスク実行開始応答をタスク管理部202に通知し(ステップS3004)、処理を終了する。
ステップS3005において、タスクコントローラ実行部234がタスク完了通知をタスクコントローラから受信すると(ステップS3005)、タスク完了通知をタスク管理部202に通知し(ステップS3006)、つぎに、タスクコントローラをアンインストールし(ステップS3008)、終了する。なお、タスクコントローラのアンインストールは、端末102の記憶装置の記憶容量に一定量以上の余裕がある場合には省略されても良い。
ステップS3008において、タスクコントローラ実行部234がタスク中断要求をタスク管理部202から受信すると、タスクコントローラを中断し(ステップS3009)、タスク中断完了応答をタスク管理部202に通知し(ステップS3010)、終了する。
ステップS3011において、タスクコントローラ実行部234がタスク再開要求をタスク管理部202から受信すると、中断中のタスクコントローラを再開させ(ステップS3012)、タスク再開完了応答をタスク管理部202に通知し(ステップS3013)、処理を終了する。
ステップS3014では、タスクコントローラ実行部234が端末停止要求をタスクコントローラから受信する。ユーザからの端末停止の指示は、タスクコントローラを介さず、直接タスクコントローラ実行部234に対して指示されてもよい。この後、タスクコントローラ実行部234は、端末停止通知をタスク管理部202に通知し(ステップS3015)、処理を終了する。
ステップS3016では、タスクコントローラ実行部234が端末再開要求をタスクコントローラから受信する。ユーザからの端末再開の指示は、タスクコントローラを介さず、直接タスクコントローラ実行部234に対して指示されてもよい。この後、タスクコントローラ実行部234は、端末再開通知をタスク管理部202に通知し(ステップS3017)、処理を終了する。
なお、タスク実行中に周辺機器103の電源切断や移動により、タスク実行に必要なサービスが利用できなくなるといった例外が発生した場合には、タスクコントローラが当該例外の発生を検出し、その旨をタスクコントローラ実行部234に通知する。当該通知を受けたタスクコントローラ実行部234は、その旨をタスク管理部202に通知する。この後、タスク管理部202は当該タスクの中断処理に続いて、他に実行可能なタスクの存在を確認し、実行可能なタスクがある場合は、端末102に対してタスクの実行を要求する。この例外時の処理は、タスク管理部202については図27、タスクコントローラ実行部234については図30と類似であるため、詳細な説明は省略する。
(タスク実行の具体的処理例)
図31−1〜図31−4は、タスク実行の処理手順を示すシーケンス図である。この図を用いて、タスク実行の具体的処理例について説明する。以下の例は、巡回警備業務を支援する例である。図に示した各部の構成について、コンテキスト管理サーバ3101は、コンテキスト生成部201を含むサーバとする。タスク管理サーバ3102は、タスク管理部202、サービス管理部203を含むサーバとする。
そして、ユーザAは、端末102を携帯し巡回する。この端末102には、端末内蔵センサ112として位置センサを具備している。位置センサによる位置取得の方法は、GPSや、端末102に付与されたRFIDリーダが特定の場所に設置されたRFIDタグを読み取る等、種々の方法により取得可能である。また各コントローラ3111〜3113は、タスク管理サーバ3102からダウンロードしたタスクコントローラに相当する。
はじめに、巡回警備前の設定処理について説明する。
(ステップS3101)あらかじめ管理者は、管理者端末102aを用いて、22:00に管理センタにいるユーザAがおこなうべき、倉庫巡回タスクをタスク管理サーバ3102に登録する。
(ステップS3102)管理者は、ステップS3101と同様のタスクをコンテキスト管理サーバ3101に登録する。
(ステップS3103)管理者は、22:00以降に倉庫AにいるユーザAがおこなうべき、倉庫Aの巡回タスクを登録する。
(ステップS3104)管理者は、ステップS3103と同様のタスクをコンテキスト管理サーバ3101に登録する。
(ステップS3105)管理者は、異常センサ1の状態がONになったときに実行すべき異常確認タスクを登録する。
(ステップS3106)管理者は、ステップS3105と同様のタスクをコンテキスト管理サーバ3101に登録する。
以降、ユーザAの巡回警備時の処理について説明する。
(ステップS3107)ユーザAが持つ携帯端末102の位置センサ112が、ユーザAの位置が管理センタであることをコンテキスト管理サーバ3101に通知する。
(ステップS3108)コンテキスト管理サーバ3101は、ユーザAが管理センタにいて、かつ時刻が22:00であることを認識すると、ステップS3102で登録された倉庫巡回タスクの起動条件が満足されたことをタスク管理サーバ3102に通知する。
(ステップS3109)タスク管理サーバ3102は、ステップS3101で登録された倉庫巡回タスクの起動要求を端末102のタスクコントローラ実行部234に通知する。
(ステップS3110)タスクコントローラ実行部234は、指定されたURLにアクセスし、倉庫巡回コントローラ3111のダウンロードを要求する。
(ステップS3111)タスク管理サーバ3102は、タスクコントローラ実行部234に、ダウンロード応答し、倉庫巡回コントローラ3111がダウンロードされ、端末102にインストールされる。
(ステップS3112)タスクコントローラ実行部234は、ダウンロードされた倉庫巡回コントローラ3111を起動する。
(ステップS3113)起動された倉庫巡回コントローラ3111は、タスクコントローラ実行部234に対して起動完了を通知する。
(ステップS3114)タスクコントローラ実行部234は、タスク1の起動が完了したことをタスク管理サーバ3102に通知する。
(ステップS3115)タスク管理サーバ3102は、タスク1が起動されたことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「タスク1実行中」に更新する。
(ステップS3116)倉庫巡回コントローラ3111は、巡回先の情報として倉庫Aを画面に表示する。ユーザは、画面を確認し、「OK」ボタンを操作する。
(ステップS3117)「OK」ボタンが操作された倉庫巡回コントローラ3111は、タスクコントローラ実行部234に対してタスクの完了を通知し、自らを終了する。
(ステップS3118)タスクコントローラ実行部234は、タスク管理サーバ3102に対してタスク1の完了を通知する。
(ステップS3119)タスク管理サーバ3102は、タスク1が完了したことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「idle」に更新する。
(ステップS3120)ユーザAが巡回先である倉庫Aに到着すると、端末102の位置センサ112が検出し、コンテキスト管理サーバ3101にその旨通知する。
(ステップS3121)コンテキスト管理サーバ3101は、22:00以降にユーザAが倉庫Aにいることを認識すると、ステップS3104で登録された倉庫A巡回タスクの起動条件が満足されたことをタスク管理サーバ3102に通知する。
(ステップS3122)タスク管理サーバ3102は、倉庫A巡回タスクの実行に必要なデバイスおよびサービスが存在することを認識すると、それらの検索を要求する。
(ステップS3123)ユーザAの端末102のサービス発見・通知部233は、デバイスとサービスの検索をおこなう。たとえば、UPnP(Universal Plug and Play)を用いるのであれば、M−SEARCHメッセージを周辺にマルチキャストする。
(ステップS3124)倉庫Aの照明デバイス113が、検索メッセージを受信すると、自らが指定されたデバイスであり、なおかつ自身が照明制御サービスを提供可能であるため、検索応答を通知する。ここでは照明デバイス113は、自らのデバイス・サービス情報を直接応答しているが、代わりに自らのデバイス・サービス情報が記載されたファイルのURLを応答し、ユーザAの端末102が当該URLに基づいてデバイス・サービス定義情報保存部227からファイルを入手することで、デバイス・サービス情報が取得されるようにしても良い。
(ステップS3125)サービス発見・通知部233は、サービス検索結果をタスク管理サーバ3102に通知する。
(ステップS3126)タスク管理サーバ3102は、倉庫A巡回タスクに必要なデバイスおよびサービスがユーザAの周辺に存在することを確認すると、タスクの起動要求を端末102のタスクコントローラ実行部234に通知する。
(ステップS3127)タスクコントローラ実行部234は、指定されたURLにアクセスし、倉庫A巡回コントローラ3112のダウンロードを要求する。
(ステップS3128)タスクコントローラ実行部234に、倉庫A巡回コントローラ3112がダウンロードされ、端末102にインストールされる。
(ステップS3129)タスクコントローラ実行部234は、ダウンロードされた倉庫A巡回コントローラ3112を起動する。
(ステップS3130)起動された倉庫A巡回コントローラ3112は、タスクコントローラ実行部234に対して起動完了を通知する。
(ステップS3131)タスクコントローラ実行部234は、タスク2の起動が完了したことをタスク管理サーバ3102に通知する。
(ステップS3132)タスク管理サーバ3102は、タスク2が起動されたことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「タスク2実行中」に更新する。
(ステップS3133)倉庫A巡回コントローラ3112は、倉庫Aの照明ONボタン、照明OFFボタン、異常ありボタン、異常なしボタンを画面に表示する。ユーザは照明ONボタンを操作する。
(ステップS3134)倉庫A巡回コントローラ3112は、ステップS3122で検索された倉庫Aの照明デバイスの照明制御サービスをパラメータONで実行する旨、照明デバイスに要求する。
(ステップS3135)倉庫Aの照明デバイス113は、ステップS3131で要求されたサービスを実行する(すなわち、照明をONする)と、その応答を返す。ユーザAは、倉庫Aの巡回を開始する。
(ステップS3136)建屋Bに設置されている異常センサ1(114)が何らかの異常を検知すると、その旨をコンテキスト管理サーバ3101に通知する。
(ステップS3137)コンテキスト管理サーバ3101は、異常センサ1(114)で異常が検出されたことを認識すると、ステップS3106で登録された異常確認タスク(優先度=高)の起動条件が満足されたことをタスク管理サーバ3102に通知する。
(ステップS3138)タスク管理サーバ3102は、タスク管理情報を参照し、タスクは誰が実行してもよいことを認識すると、このタスクの実行者として、ユーザAを選択する。ユーザ選択方法については、たとえば、巡回作業中のユーザとその現在位置のリストを保持し、建屋Bの異常センサ1(114)に最も近い巡回中のユーザを選択する、または管理センタに待機しているユーザを選択する、といったものが考えられる。これらのユーザ選択は、例えば別のサーバで動作するアプリケーションによって行うようにされても良い。この場合、タスク起動条件満足通知を受けたタスク管理サーバ3102が当該アプリケーションに通知を行い、当該アプリケーションがコンテキスト管理サーバ3101から得たユーザのコンテキスト情報等に基づいてユーザを選択すると、そのユーザをタスク管理サーバ3102に応答する。タスク管理サーバ3102は、ユーザAを選択した後、ユーザAの端末102上で倉庫A巡回タスク(優先度=中)が実行中であり、異常確認タスクの起動に先立って倉庫A巡回タスクの中断が必要であることを認識すると、ユーザAの端末102のタスクコントローラ実行部234に当該タスクの中断を要求する。
(ステップS3139)タスクコントローラ実行部234は、倉庫A巡回コントローラ3112の中断を要求する。
(ステップS3140)倉庫A巡回コントローラ3112は中断要求の応答を返す。
(ステップS3141)タスクコントローラ実行部234は、タスク管理サーバ3102に倉庫A巡回タスクを中断したことを通知する。
(ステップS3142)タスク管理サーバ3102は、異常確認タスクの起動要求をユーザAの端末102のタスクコントローラ実行部234に通知する。
(ステップS3143)タスクコントローラ実行部234は、指定されたURLにアクセスし、異常確認コントローラのダウンロードを要求する。
(ステップS3144)タスクコントローラ実行部234に、異常確認コントローラ3113がダウンロードされ、端末102にインストールされる。
(ステップS3145)タスクコントローラ実行部234は、ダウンロードされた異常確認コントローラ3113を起動する。
(ステップS3146)起動された異常確認コントローラ3113は、タスクコントローラ実行部234に対して起動完了を通知する。
(ステップS3147)タスクコントローラ実行部234は、タスクの起動が完了したことをタスク管理サーバ3102に通知する。
(ステップS3148)タスク管理サーバ3102は、タスク3が起動されたことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「タスク3実行中」に更新する。
(ステップS3149)起動された異常確認コントローラ3113は、ユーザAの端末102の画面に「異常センサ1(114)で異常が検知されました。直ちに異常の有無を確認して下さい」というメッセージ、「異常あり」ボタン、および「異常なし」ボタンを表示する。当該画面を確認したユーザAは、建屋Bの異常センサ1(114)が設置された場所に急行し、異常のないことを確認し「異常なし」ボタンを操作する(建屋Bに移動すると端末102によって位置登録がおこなわれるが、図では省略)。
(ステップS3150)「異常なし」ボタンを操作された異常確認コントローラ3113は、タスクコントローラ実行部234に対してタスクの完了を通知し、自らを終了する。
(ステップS3151)タスクコントローラ実行部234は、タスク管理サーバ3102に対してタスクの完了を通知する。
(ステップS3152)タスク管理サーバ3102は、タスク3が完了したことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「idle」に更新する。または、ステップS3148でタスク3の実行が開始される前の状態「タスク2実行中」を記憶しておき、当該状態に復帰させてもよい(ここでユーザAの状態を「idle」に設定しても、後続のステップS3157で「タスク2実行中」状態に復帰するため問題はない)。
(ステップS3153)タスク管理サーバ3102は、異常確認タスク(優先度=高)が完了したことを認識すると、そのつぎに優先度の高いタスクである、中断中の倉庫A巡回タスクの再開を要求する。
(ステップS3154)タスクコントローラ実行部234は、中断中の倉庫A巡回コントローラ3112の実行を再開する。
(ステップS3155)再開された倉庫A巡回コントローラ3112は、タスクコントローラ実行部234に対して再開の完了を通知する。
(ステップS3156)タスクコントローラ実行部234は、タスク2の再開が完了したことをタスク管理サーバ3102に通知する。
(ステップS3157)タスク管理サーバ3102は、タスク2が再開されたことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「タスク2実行中」に更新する。
(ステップS3158)倉庫A巡回コントローラ3112が再開され、コントローラの画面が表示されると、ユーザAは、倉庫Aに戻り、巡回を再開する。このように、端末102に倉庫A巡回コントローラ3112の画面が表示されるため、ユーザAは中断されていた倉庫Aの巡回作業を忘れることなく、再開することが可能となる。巡回が異常なく終了すると、「照明OFF」ボタンを操作する(倉庫Aに戻ると端末102によって位置登録がおこなわれるが、図では省略)。
(ステップS3159)倉庫A巡回コントローラ3112は、ステップS3122で検索された倉庫Aの照明デバイス113の照明制御サービスをパラメータOFFで実行する旨、照明デバイスに要求する。
(ステップS3160)倉庫Aの照明デバイス113は、ステップS3153で要求されたサービスを実行する(すなわち、照明をOFFする)と、その応答を返す。
(ステップS3161)ユーザAは、倉庫A巡回コントローラ3112の「異常なし」ボタンを操作して、倉庫Aの巡回を終了する。
(ステップS3162)「異常なし」ボタンを操作された倉庫A巡回コントローラ3112は、タスクコントローラ実行部234に対してタスクの完了を通知し、自らを終了する。
(ステップS3163)タスクコントローラ実行部234は、タスク管理サーバ3102に対してタスクの完了を通知する。
(ステップS3164)タスク管理サーバ3102は、タスク2が完了したことをコンテキスト管理サーバ3101に通知する。コンテキスト管理サーバ3101は、ユーザAの状態を「idle」に更新する。
以上説明したタスク定義は一例であり、このようなタスクの分割方法に限定されない。たとえば、本例では、倉庫巡回を開始すること自体をタスクとして定義し、実際の作業である倉庫Aの巡回タスクと分割しているが、両者を一体化して定義してもよい。このとき、巡回タスクの下位に倉庫A巡回、倉庫B巡回といったサブ・タスクを定義し、これら各サブ・タスクに対応するタスクコントローラを定義し、「倉庫A巡回開始」ボタンを操作すると、対応するサブ・タスクの実行に必要なコントローラが起動される。
また、各タスクコントローラは起動される度にダウンロードするようにしているが、たとえば緊急度の高いタスクのためのコントローラ(たとえば、異常確認コントローラ3113)については、あらかじめ端末102にインストールしておいてもよい。さらに、上記例では、タスクの実行が完了しても、対応するタスクコントローラはインストール状態のままにしているが、端末102のメモリ容量に制限がある場合は、タスク完了後にタスクコントローラをアンインストールして、占有していたメモリを解放してもよい。
(各種管理データ例)
上述した巡回警備に用いる管理データ例について説明する。図32は、コンテキスト情報の例を示す図表である。コンテキスト管理サーバ3101が管理するコンテキスト情報3200により、各ユーザやデバイスの状態を管理する。このコンテキスト情報3200は、時刻3201、ユーザ・コンテキスト3202、デバイス・コンテキスト3203の各情報を含む。時刻3201は、システムで共通して使用される現在時刻情報であり、ユーザ・コンテキスト3202は、ユーザ毎の状態情報として、ユーザの場所とタスクの実行状態を管理する。デバイス・コンテキスト3203は、デバイス毎の状態情報として、デバイスの設置場所(建屋B)とデバイスの状態(ここでは異常センサ1(114)のON/OFF状態)を管理する。
図33は、タスク管理情報の例を示す図表である。コンテキスト管理サーバ3101はタスク管理情報3300を用いてタスクを管理する。タスク管理情報3300は、各ユーザが実行すべきタスクの起動条件を管理するためのものであり、UID、時刻、場所、その他、TIDの各情報を含む。UIDはタスクを実行すべきユーザのIDの情報であり、時刻はタスクを実行すべき時間条件の情報であり、場所はタスクを実行すべき場所条件の情報であり、その他は、タスクを実行すべき上記以外の条件の情報であり、TIDは、上記の条件が成立したときに実行されるべきタスクのIDの情報である。
コンテキスト管理サーバ3101は、ユーザやデバイスの状態が変化すると、対応するタスク管理情報3300を検索し、実行すべきタスクの有無を判定する。この判定処理を高速におこなうために、追加のデータが管理されてもよい。たとえば、コンテキスト管理データとして、個々のユーザに実行すべき(未実行の)タスクが存在するか否かのフラグ情報を管理することで、タスクが存在しないユーザに関しては、コンテキストが変化しても実行すべきタスクの有無の判定処理をおこなわないようにする等が考えられる。
図34は、タスク管理情報の例を示す図表である。タスク管理サーバ3102のタスク管理部202はタスク管理情報3400を用いてタスクを管理する。タスク管理情報3400は、タスク管理情報:各ユーザが実行すべきタスクに関する情報を管理するものであり、UID、TID、時刻、場所、優先度、状態の各情報を含む。UIDはタスクを実行すべきユーザのIDの情報であり、TIDは実行すべきタスクのIDの情報であり、時刻はタスクを実行すべき時間の情報であり、場所はタスクを実行すべき場所の情報であり、優先度はタスクの優先度であり、状態はタスクの実行状態(未実行/実行中/完了)である。
図34において、UID=#の項目は、タスク3が特定のユーザが実行すべきものとして定義されていないことを示している。このようなタスクについては、タスクを実行すべきユーザは状況に応じて動的に決定される。
図35は、タスクコントローラ管理情報の例を示す図表である。タスクコントローラ管理情報3500は、タスクの実行に必要なタスクコントローラに関する情報であり、タスク管理サーバ3102のサービス管理部203が管理する。タスクコントローラ管理情報3500は、TIDと、コントローラURLの情報を含む。TIDはタスクIDの情報であり、コントローラURLはタスクの実行に必要なコントローラが格納されているURLの情報である。
図36は、タスク・サービス対応情報の例を示す図表である。タスク・サービス対応情報3600は、各タスクの実行に必要なデバイスおよびサービスに関する情報であり、タスク管理サーバ3102のサービス管理部203が管理する。タスク・サービス対応情報3600は、TID、デバイス、サービスの各情報を含む。TIDはタスクIDであり、デバイスはデバイス名であり、サービスはサービス名の情報である。図に記載のNA(Not Applicable)は、タスクの実行にデバイスおよびサービスが不要であることを示している。
図37は、タスクスケジューラが管理するタスク実行管理情報を示す図表である。タスクスケジューラ214aは、ユーザ毎のタスクの実行制御に関する情報をタスク実行管理情報3700として管理する。実行管理情報3700は、ユーザAに関する実行中タスク2601と、タスクキュー2602のそれぞれについて、TIDと、優先度を管理する。実行中タスク2601については、実行中のタスクに関する情報を管理し、TIDはタスクのIDの情報、優先度はタスクの優先度の情報である。タスクキュー2602については、実行待ち状態のタスクに関する情報を管理し、TIDはタスクのIDの情報、優先度はタスクの優先度の情報である。図37に示す例では、タスクキュー2602に登録されているタスクは0または1つとなっているが、タスクの割り込みが複数回にわたっておこなわれるような場合には、2個以上のタスクが登録されることもある。
つぎに、このタスク実行管理情報3700の変化について、上述した図31−1〜図31−4に示したシーケンスの手順に沿って説明する。
・ステップS3111〜ステップS3117:実行中および実行待ち状態のタスクはない(図示略)
(1)ステップS3114:タスク1の起動が完了したため、タスク1に関する情報が、実行中タスク2601として保持される。実行待ち状態のタスクはないため、タスクキュー2602には情報は保持されていない(NAと記載)。
・ステップS3118:タスク1が完了すると、タスク1に関する情報が実行中タスク2601の情報から削除される。これにより、実行中および実行待ち状態のタスクはなくなる(図示略)。
(2)ステップS3131:タスク2の起動が完了したため、タスク2に関する情報が、実行中タスク2601の情報として保持される。実行待ち状態のタスクはないため、タスクキュー2602には情報は保持されていない。
(3)ステップS3141〜ステップS3147:優先度=高のタスク3の実行が要求されると、実行中のタスク2(優先度=中)の中断処理がおこなわれ、ステップS3141で中断処理が完了すると、タスク2に関する情報がタスクキュー2602に登録される。続いて、ステップS3147でタスク3の起動が完了すると、タスク3に関する情報が実行中タスク2601の情報として保持される。
(4)ステップS3156:ステップS3151でタスク3が完了すると、タスク3の情報が実行中タスク2601の情報から削除され(図には未記載)、引き続いてステップS3156でタスク2の実行が再開されると、タスク2に関する情報が実行中タスク2601の情報として保持される。
・ステップS3163:タスク2の実行が完了すると、タスク2に関する情報が実行中タスク2601の情報から削除される。これにより、実行中および実行待ち状態のタスクはなくなる(図示略)。
このほか、図37には記載していないが、端末102が停止中であるか否かを示すフラグを端末102毎に設ける。そして、端末102から端末102の停止が要求されたときは当該フラグをセットし、フラグがセットされている間は、端末102に対するタスク制御を停止する。この間、タスクの起動条件が満足された旨の通知が発生した場合は、タスク優先度に関わらず当該タスクに関する情報はタスクキュー2602に登録される。
以上説明した実施の形態2によれば、実施の形態1同様に、ユーザやその周辺環境のコンテキストと、周辺機器が提供するサービスとに基づいて、優先順位やタスク間の依存関係を考慮して複数のタスクを順次実行することができる。実施の形態2では、これに加えて、タスクの実行中に他のタスクの割り込みがあったときにタスクの優先度に基づいてタスクの実行の中断および再開を制御できるようになる。これにより、複数のタスクを効率的に処理できるようになる。また、実施の形態2によれば、ユーザの移動に対応したタスク制御を実行するため、ユーザが移動しながら移動先毎に必要なサービスを受けることができるようになる。
なお、本実施の形態で説明したタスク実行制御方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
上述した本実施の形態に関し、さらに以下の付記を開示する。
(付記1)ユーザと、ユーザの周辺状況に関する情報をコンテキスト情報として生成するコンテキスト生成部と、
ユーザが実行しようとするタスクを複数保持し、前記コンテキスト情報、およびあらかじめ定めたタスクの選択ルールにしたがってタスクを選択し、当該タスクの実行を制御するタスク管理部と、
前記タスクの実行に用いる機器が実行するサービスを確認し、前記タスク管理部が選択したタスクの実行に対応するサービスを前記機器に通知し、実行させるサービス管理部と、を備え、
前記タスク管理部は、
前記タスクの選択ルールとして、タスクの優先度、および前記タスク同士間であらかじめ設定した実行に関するタスク間の依存関係の情報を用いてタスクを選択することを特徴とするタスク実行制御装置。
(付記2)前記タスク管理部は、
前記コンテキスト情報と、前記タスクの選択ルールを参照し、複数の前記タスクについて、実行のスケジューリング、および割り込み制御をおこなうタスクスケジューラを有することを特徴とする付記1に記載のタスク実行制御装置。
(付記3)前記タスク管理部は、
前記タスクの実行にあわせて所定のタイミングで前記コンテキスト情報を受信するための制御命令を保持するコンテキスト取得制御情報保存部と、
ユーザが実行すべき複数のタスクを保持する登録タスク保存部と、
前記タスクの選択ルールを保持するタスク選択ルール保存部と、
前記コンテキスト情報と、前記タスクの選択ルールに基づき、前記登録タスク保存部に保持された複数のタスクのうち、最優先で実行すべきタスクを選択するタスク選択部と、
を備えたことを特徴とする付記1に記載のタスク実行制御装置。
(付記4)前記サービス管理部は、
前記機器が実行するサービスを一時的に保持しておく利用可能サービスキャッシュと、
前記機器が現在利用可能なサービスを確認する利用可能サービス確認部と、
前記タスクと前記サービスとの対応関係を保持するタスク・サービス対応関係保存部と、
前記タスク・サービス対応関係保存部に保持された前記サービスのうち、前記利用可能サービス確認部により現在利用可能なサービスについて、前記タスク管理部が選択した前記タスクを前記機器により実行可能かを確認するタスク・サービス確認部と、
を備えたことを特徴とする付記1に記載のタスク実行制御装置。
(付記5)前記サービス管理部は、
前記タスクを実行するために前記機器を制御するソフトウェアであるタスクコントローラを保持するタスクコントローラ保存部と、
前記タスク管理部が選択した前記タスクに対応する実行用のタスクコントローラを前記機器に送信するタスクコントローラ管理部と、
を備えたことを特徴とする付記1に記載のタスク実行制御装置。
(付記6)前記サービス管理部は、
前記機器が前記機器の周辺に存在する他の機器が実行可能なサービスを発見した際の通知に基づき、当該サービスの情報を前記利用可能サービスキャッシュに保持することを特徴とする付記4に記載のタスク実行制御装置。
(付記7)前記サービス管理部は、
前記機器と、当該機器が実行可能なサービスの定義を保持し、前記機器により発見した他の機器が実行可能なサービスを参照可能とするデバイス・サービス定義情報保存部を有することを特徴とする付記4に記載のタスク実行制御装置。
(付記8)前記機器に搭載された計測用のセンサ、および前記サービスの情報を集約し、前記コンテキスト生成部における前記コンテキスト情報に用いる情報として通知するセンサ・端末情報集約部を備えたことを特徴とする付記1に記載のタスク実行制御装置。
(付記9)前記タスクスケジューラは、
タスクの実行条件が満たされたが、当該タスクの実行に対応するサービスが発見できないために未実行となったタスクに関して、周期的に優先度の高いものから順に、前記コンテキスト生成部に対するタスクの実行条件が満たされている確認要求と、前記サービス管理部に対する、タスクの実行可否判定を要求して、最も優先度の高いタスクからの実行を待つことを特徴とする付記2に記載のタスク実行制御装置。
(付記10)前記タスクスケジューラは、
前記コンテキスト生成部の前記コンテキスト情報と、現在タスクの実行条件の確認に基づき、実行条件が満たされていない前記タスクが存在した場合には、前記コンテキスト生成部に対して当該タスクの実行条件を再設定し、当該タスクを再度実行可能な状態にすることを特徴とする付記2に記載のタスク実行制御装置。
(付記11)前記タスクスケジューラは、
前記機器から当該機器の停止要求を受信すると、当該機器へのタスクの起動/中断/再開制御を停止することを特徴とする付記2に記載のタスク実行制御装置。
(付記12)サーバ装置と、機器とを備えたタスク実行制御システムにおいて、
前記サーバ装置は、
ユーザと、ユーザの周辺状況に関する情報をコンテキスト情報として生成するコンテキスト生成部と、
ユーザが実行しようとするタスクを複数保持し、前記コンテキスト情報、およびあらかじめ定めたタスクの選択ルールにしたがってタスクを選択し、当該タスクの実行を制御するタスク管理部と、
前記タスクの実行に用いる機器が実行するサービスを確認し、前記タスク管理部が選択したタスクの実行に対応するサービスを前記機器に通知し、実行させるサービス管理部と、を備え、
前記タスク管理部は、前記タスクの選択ルールとして、タスクの優先度、および前記タスク同士間であらかじめ設定した実行に関するタスク間の依存関係の情報を用いてタスクを選択し、
前記機器は、
自機器および周辺に存在する他の機器のサービスを発見して、当該サービスの情報を前記サーバ装置に通知し、当該サーバ装置からの命令もしくはプログラムにしたがって前記機器による前記サービスの制御をおこなう周辺機器連携部を備えたことを特徴とするタスク実行制御システム。
(付記13)前記機器は、
前記サーバ装置と情報をやりとりする端末と、
前記端末を介して前記サービスを実行する周辺機器と、を備え、
前記周辺機器は、
存在と機器情報を前記端末に通知する応答・広告部と、
前記端末からの制御情報にしたがい、前記サービスを実行する被制御部とを有し、
前記コンテキスト情報に基づき、前記サービスに対応する前記周辺機器を用いることを特徴とする付記12に記載のタスク実行制御システム。
(付記14)ユーザと、ユーザの周辺状況に関する情報をコンテキスト情報として生成するコンテキスト生成工程と、
ユーザが実行しようとするタスクを複数保持し、前記コンテキスト情報、およびあらかじめ定めたタスクの選択ルールにしたがってタスクを選択し、当該タスクの実行を制御するタスク管理工程と、
前記タスクの実行に用いる機器が実行するサービスを確認し、前記タスク管理工程により選択したタスクの実行に対応するサービスを前記機器に通知し、実行させるサービス管理工程と、を含み、
前記タスク管理工程は、
前記タスクの選択ルールとして、タスクの優先度、および前記タスク同士間であらかじめ設定した実行に関するタスク間の依存関係の情報を用いてタスクを選択することを特徴とするタスク実行制御方法。
(付記15)前記タスク管理工程は、
前記コンテキスト情報と、前記タスクの選択ルールを参照し、複数の前記タスクについて、実行のスケジューリング、および割り込み制御をおこなうことを特徴とする付記14に記載のタスク実行制御方法。
100 タスク実行制御システム
101 サーバ装置
102 端末
102a 管理者端末
103 周辺機器
104 情報通信ネットワーク
112 端末内蔵センサ
113 被制御部
114 機器内蔵センサ
201 コンテキスト生成部
202 タスク管理部
203 サービス管理部
204,232 センサ・端末情報集約部
211 コンテキスト取得制御情報保存部
212 登録タスク保存部
213 タスク選択ルール保存部
214 タスク選択部
214a タスクスケジューラ
221 タスク・サービス対応関係保存部
222 利用可能サービスキャッシュ
223 利用可能サービス確認部
224 タスク・サービス確認部
225 タスクコントローラ保存部
226 タスクコントローラ管理部
227 デバイス・サービス定義情報保存部
231 周辺機器連携部
233 サービス発見・通知部
234 タスクコントローラ実行部
235 アプリケーション
241 応答・広告部
2601 実行中タスク
2602 タスクキュー
3101 コンテキスト管理サーバ
3102 タスク管理サーバ

Claims (15)

  1. ユーザと、ユーザの周辺状況に関する情報をコンテキスト情報として生成するコンテキスト生成部と、
    ユーザが実行しようとするタスクを複数保持し、前記コンテキスト情報、およびあらかじめ定めたタスクの選択ルールにしたがってタスクを選択し、当該タスクの実行を制御するタスク管理部と、
    前記タスクの実行に用いる機器が実行するサービスを確認し、前記タスク管理部が選択したタスクの実行に対応するサービスを前記機器に通知し、実行させるサービス管理部と、を備え、
    前記タスク管理部は、
    前記タスクの選択ルールとして、タスクの優先度、および前記タスク同士間であらかじめ設定した実行に関するタスク間の依存関係の情報を用いてタスクを選択することを特徴とするタスク実行制御装置。
  2. 前記タスク管理部は、
    前記コンテキスト情報と、前記タスクの選択ルールを参照し、複数の前記タスクについて、実行のスケジューリング、および割り込み制御をおこなうタスクスケジューラを有することを特徴とする請求項1に記載のタスク実行制御装置。
  3. 前記タスク管理部は、
    前記タスクの実行にあわせて所定のタイミングで前記コンテキスト情報を受信するための制御命令を保持するコンテキスト取得制御情報保存部と、
    ユーザが実行すべき複数のタスクを保持する登録タスク保存部と、
    前記タスクの選択ルールを保持するタスク選択ルール保存部と、
    前記コンテキスト情報と、前記タスクの選択ルールに基づき、前記登録タスク保存部に保持された複数のタスクのうち、最優先で実行すべきタスクを選択するタスク選択部と、
    を備えたことを特徴とする請求項1に記載のタスク実行制御装置。
  4. 前記サービス管理部は、
    前記機器が実行するサービスを一時的に保持しておく利用可能サービスキャッシュと、
    前記機器が現在利用可能なサービスを確認する利用可能サービス確認部と、
    前記タスクと前記サービスとの対応関係を保持するタスク・サービス対応関係保存部と、
    前記タスク・サービス対応関係保存部に保持された前記サービスのうち、前記利用可能サービス確認部により現在利用可能なサービスについて、前記タスク管理部が選択した前記タスクを前記機器により実行可能かを確認するタスク・サービス確認部と、
    を備えたことを特徴とする請求項1に記載のタスク実行制御装置。
  5. 前記サービス管理部は、
    前記タスクを実行するために前記機器を制御するソフトウェアであるタスクコントローラを保持するタスクコントローラ保存部と、
    前記タスク管理部が選択した前記タスクに対応する実行用のタスクコントローラを前記機器に送信するタスクコントローラ管理部と、
    を備えたことを特徴とする請求項1に記載のタスク実行制御装置。
  6. 前記サービス管理部は、
    前記機器が前記機器の周辺に存在する他の機器が実行可能なサービスを発見した際の通知に基づき、当該サービスの情報を前記利用可能サービスキャッシュに保持することを特徴とする請求項4に記載のタスク実行制御装置。
  7. 前記サービス管理部は、
    前記機器と、当該機器が実行可能なサービスの定義を保持し、前記機器により発見した他の機器が実行可能なサービスを参照可能とするデバイス・サービス定義情報保存部を有することを特徴とする請求項4に記載のタスク実行制御装置。
  8. 前記機器に搭載された計測用のセンサ、および前記サービスの情報を集約し、前記コンテキスト生成部における前記コンテキスト情報に用いる情報として通知するセンサ・端末情報集約部を備えたことを特徴とする請求項1に記載のタスク実行制御装置。
  9. 前記タスクスケジューラは、
    タスクの実行条件が満たされたが、当該タスクの実行に対応するサービスが発見できないために未実行となったタスクに関して、周期的に優先度の高いものから順に、前記コンテキスト生成部に対するタスクの実行条件が満たされている確認要求と、前記サービス管理部に対する、タスクの実行可否判定を要求して、最も優先度の高いタスクからの実行を待つことを特徴とする請求項2に記載のタスク実行制御装置。
  10. 前記タスクスケジューラは、
    前記コンテキスト生成部の前記コンテキスト情報と、現在タスクの実行条件の確認に基づき、実行条件が満たされていない前記タスクが存在した場合には、前記コンテキスト生成部に対して当該タスクの実行条件を再設定し、当該タスクを再度実行可能な状態にすることを特徴とする請求項2に記載のタスク実行制御装置。
  11. 前記タスクスケジューラは、
    前記機器から当該端末の停止要求を受信すると、当該端末へのタスクの起動/中断/再開制御を停止することを特徴とする請求項2に記載のタスク実行制御装置。
  12. サーバ装置と、機器とを備えたタスク実行制御システムにおいて、
    前記サーバ装置は、
    ユーザと、ユーザの周辺状況に関する情報をコンテキスト情報として生成するコンテキスト生成部と、
    ユーザが実行しようとするタスクを複数保持し、前記コンテキスト情報、およびあらかじめ定めたタスクの選択ルールにしたがってタスクを選択し、当該タスクの実行を制御するタスク管理部と、
    前記タスクの実行に用いる機器が実行するサービスを確認し、前記タスク管理部が選択したタスクの実行に対応するサービスを前記機器に通知し、実行させるサービス管理部と、を備え、
    前記タスク管理部は、前記タスクの選択ルールとして、タスクの優先度、および前記タスク同士間であらかじめ設定した実行に関するタスク間の依存関係の情報を用いてタスクを選択し、
    前記機器は、
    自機器および周辺に存在する他の機器のサービスを発見して、当該サービス情報を前記サーバ装置に通知し、当該サーバ装置からの命令もしくはプログラムにしたがって前記機器による前記サービスの制御をおこなう周辺機器連携部を備えたことを特徴とするタスク実行制御システム。
  13. 前記機器は、
    前記サーバ装置と情報をやりとりする端末と、
    前記端末を介して前記サービスを実行する周辺機器と、を備え、
    前記周辺機器は、
    存在と機器情報を前記端末に通知する応答・広告部と、
    前記端末からの制御情報にしたがい、前記サービスを実行する被制御部とを有し、
    前記コンテキスト情報に基づき、前記サービスに対応する前記周辺機器を用いることを特徴とする請求項12に記載のタスク実行制御システム。
  14. ユーザと、ユーザの周辺状況に関する情報をコンテキスト情報として生成するコンテキスト生成工程と、
    ユーザが実行しようとするタスクを複数保持し、前記コンテキスト情報、およびあらかじめ定めたタスクの選択ルールにしたがってタスクを選択し、当該タスクの実行を制御するタスク管理工程と、
    前記タスクの実行に用いる機器が実行するサービスを確認し、前記タスク管理工程により選択したタスクの実行に対応するサービスを前記機器に通知し、実行させるサービス管理工程と、を含み、
    前記タスク管理工程は、
    前記タスクの選択ルールとして、タスクの優先度、および前記タスク同士間であらかじめ設定した実行に関するタスク間の依存関係の情報を用いてタスクを選択することを特徴とするタスク実行制御方法。
  15. 前記タスク管理工程は、
    前記コンテキスト情報と、前記タスクの選択ルールを参照し、複数の前記タスクについて、実行のスケジューリング、および割り込み制御をおこなうことを特徴とする請求項14に記載のタスク実行制御方法。
JP2013506962A 2011-03-30 2011-03-30 タスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法 Expired - Fee Related JP5682705B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/058144 WO2012131962A1 (ja) 2011-03-30 2011-03-30 タスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法

Publications (2)

Publication Number Publication Date
JPWO2012131962A1 true JPWO2012131962A1 (ja) 2014-07-24
JP5682705B2 JP5682705B2 (ja) 2015-03-11

Family

ID=46929785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013506962A Expired - Fee Related JP5682705B2 (ja) 2011-03-30 2011-03-30 タスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法

Country Status (3)

Country Link
US (1) US9342356B2 (ja)
JP (1) JP5682705B2 (ja)
WO (1) WO2012131962A1 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
CN104969289B (zh) 2013-02-07 2021-05-28 苹果公司 数字助理的语音触发器
CN104348855B (zh) * 2013-07-29 2018-04-27 华为技术有限公司 用户信息的处理方法、移动终端及服务器
US10778783B2 (en) * 2013-07-31 2020-09-15 Sony Corporation Service providing apparatus and service providing method
JP6318751B2 (ja) * 2014-03-20 2018-05-09 富士通株式会社 情報処理装置、アクション切替方法、及びアクション切替プログラム
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US20160103708A1 (en) * 2014-10-09 2016-04-14 Profoundis Labs Pvt Ltd System and method for task execution in data processing
US10810222B2 (en) 2014-11-24 2020-10-20 Asana, Inc. Continuously scrollable calendar user interface
US11244264B2 (en) * 2014-12-29 2022-02-08 Hand Held Products, Inc. Interleaving surprise activities in workflow
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US11080031B2 (en) * 2016-02-05 2021-08-03 Sas Institute Inc. Message-based coordination of container-supported many task computing
US11775341B2 (en) 2016-02-05 2023-10-03 Sas Institute Inc. Automated job flow generation to provide object views in container-supported many task computing
CN107291548B (zh) * 2016-03-31 2021-04-13 阿里巴巴集团控股有限公司 任务的资源调度方法及装置
JP2018041287A (ja) * 2016-09-07 2018-03-15 富士通株式会社 スケジュール表示プログラム、スケジュール表示方法およびスケジュール表示装置
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US10977434B2 (en) 2017-07-11 2021-04-13 Asana, Inc. Database model which provides management of custom fields and methods and apparatus therfor
CN110166962B (zh) * 2018-02-14 2021-01-05 华为技术有限公司 一种规则管理方法及设备
US10623359B1 (en) 2018-02-28 2020-04-14 Asana, Inc. Systems and methods for generating tasks based on chat sessions between users of a collaboration environment
US11138021B1 (en) 2018-04-02 2021-10-05 Asana, Inc. Systems and methods to facilitate task-specific workspaces for a collaboration work management platform
US10613735B1 (en) 2018-04-04 2020-04-07 Asana, Inc. Systems and methods for preloading an amount of content based on user scrolling
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10785046B1 (en) 2018-06-08 2020-09-22 Asana, Inc. Systems and methods for providing a collaboration work management platform that facilitates differentiation between users in an overarching group and one or more subsets of individual users
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11762689B2 (en) * 2018-09-30 2023-09-19 Sas Institute Inc. Message queue protocol for sequential execution of related task routines in many task computing
US10616151B1 (en) 2018-10-17 2020-04-07 Asana, Inc. Systems and methods for generating and presenting graphical user interfaces
US10956845B1 (en) 2018-12-06 2021-03-23 Asana, Inc. Systems and methods for generating prioritization models and predicting workflow prioritizations
US11568366B1 (en) 2018-12-18 2023-01-31 Asana, Inc. Systems and methods for generating status requests for units of work
US11113667B1 (en) 2018-12-18 2021-09-07 Asana, Inc. Systems and methods for providing a dashboard for a collaboration work management platform
US10684870B1 (en) 2019-01-08 2020-06-16 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US11782737B2 (en) 2019-01-08 2023-10-10 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US11204683B1 (en) 2019-01-09 2021-12-21 Asana, Inc. Systems and methods for generating and tracking hardcoded communications in a collaboration management platform
US11307752B2 (en) * 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11341445B1 (en) 2019-11-14 2022-05-24 Asana, Inc. Systems and methods to measure and visualize threshold of user workload
US11783253B1 (en) 2020-02-11 2023-10-10 Asana, Inc. Systems and methods to effectuate sets of automated actions outside and/or within a collaboration environment based on trigger events occurring outside and/or within the collaboration environment
US11599855B1 (en) 2020-02-14 2023-03-07 Asana, Inc. Systems and methods to attribute automated actions within a collaboration environment
US11763259B1 (en) 2020-02-20 2023-09-19 Asana, Inc. Systems and methods to generate units of work in a collaboration environment
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11900323B1 (en) 2020-06-29 2024-02-13 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on video dictation
US11455601B1 (en) 2020-06-29 2022-09-27 Asana, Inc. Systems and methods to measure and visualize workload for completing individual units of work
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11449836B1 (en) 2020-07-21 2022-09-20 Asana, Inc. Systems and methods to facilitate user engagement with units of work assigned within a collaboration environment
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US11568339B2 (en) 2020-08-18 2023-01-31 Asana, Inc. Systems and methods to characterize units of work based on business objectives
US11769115B1 (en) 2020-11-23 2023-09-26 Asana, Inc. Systems and methods to provide measures of user workload when generating units of work based on chat sessions between users of a collaboration environment
US11405435B1 (en) 2020-12-02 2022-08-02 Asana, Inc. Systems and methods to present views of records in chat sessions between users of a collaboration environment
US11694162B1 (en) 2021-04-01 2023-07-04 Asana, Inc. Systems and methods to recommend templates for project-level graphical user interfaces within a collaboration environment
US11676107B1 (en) 2021-04-14 2023-06-13 Asana, Inc. Systems and methods to facilitate interaction with a collaboration environment based on assignment of project-level roles
US11553045B1 (en) 2021-04-29 2023-01-10 Asana, Inc. Systems and methods to automatically update status of projects within a collaboration environment
US11803814B1 (en) 2021-05-07 2023-10-31 Asana, Inc. Systems and methods to facilitate nesting of portfolios within a collaboration environment
US11792028B1 (en) 2021-05-13 2023-10-17 Asana, Inc. Systems and methods to link meetings with units of work of a collaboration environment
US11809222B1 (en) 2021-05-24 2023-11-07 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on selection of text
CN113360260B (zh) * 2021-06-01 2023-03-14 上海安吉星信息服务有限公司 一种车辆数据采集方法、系统、存储介质及服务器
US11756000B2 (en) 2021-09-08 2023-09-12 Asana, Inc. Systems and methods to effectuate sets of automated actions within a collaboration environment including embedded third-party content based on trigger events
US11635884B1 (en) 2021-10-11 2023-04-25 Asana, Inc. Systems and methods to provide personalized graphical user interfaces within a collaboration environment
US11836681B1 (en) 2022-02-17 2023-12-05 Asana, Inc. Systems and methods to generate records within a collaboration environment
US11863601B1 (en) 2022-11-18 2024-01-02 Asana, Inc. Systems and methods to execute branching automation schemes in a collaboration environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030389A (ja) * 2001-05-10 2003-01-31 Hitachi Ltd ワークフロー管理方法及びその実施システム並びにその処理プログラム
WO2006003817A1 (ja) * 2004-07-02 2006-01-12 Matsushita Electric Industrial Co., Ltd. 機器制御装置
JP2007164519A (ja) * 2005-12-14 2007-06-28 Toshiba Corp 作業計画作成装置および作業計画作成処理プログラム
JP2008015585A (ja) * 2006-07-03 2008-01-24 National Institute Of Information & Communication Technology 生活タスク支援システム
JP2008033618A (ja) * 2006-07-28 2008-02-14 Hitachi Ltd マネージャ装置、制御方法、及び、制御プログラム
JP2008097297A (ja) * 2006-10-11 2008-04-24 Nippon Telegr & Teleph Corp <Ntt> 通信装置、通信方法および通信プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2693108B2 (ja) * 1993-10-19 1997-12-24 財団法人ニューメディア開発協会 コンピュータシステム
US7346532B2 (en) 2001-05-10 2008-03-18 Hitachi, Ltd. Workflow system
JP4339627B2 (ja) 2003-05-23 2009-10-07 株式会社日立製作所 パーソナルストレージサービス提供方法
US8069422B2 (en) 2005-01-10 2011-11-29 Samsung Electronics, Co., Ltd. Contextual task recommendation system and method for determining user's context and suggesting tasks
JP5159158B2 (ja) 2007-05-08 2013-03-06 株式会社Access 実行環境ソフトウェア、プレゼンス情報提供プログラム、端末装置、およびプレゼンス管理システム
JP2010113621A (ja) 2008-11-07 2010-05-20 Nippon Telegr & Teleph Corp <Ntt> 場所タスク情報処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030389A (ja) * 2001-05-10 2003-01-31 Hitachi Ltd ワークフロー管理方法及びその実施システム並びにその処理プログラム
WO2006003817A1 (ja) * 2004-07-02 2006-01-12 Matsushita Electric Industrial Co., Ltd. 機器制御装置
JP2007164519A (ja) * 2005-12-14 2007-06-28 Toshiba Corp 作業計画作成装置および作業計画作成処理プログラム
JP2008015585A (ja) * 2006-07-03 2008-01-24 National Institute Of Information & Communication Technology 生活タスク支援システム
JP2008033618A (ja) * 2006-07-28 2008-02-14 Hitachi Ltd マネージャ装置、制御方法、及び、制御プログラム
JP2008097297A (ja) * 2006-10-11 2008-04-24 Nippon Telegr & Teleph Corp <Ntt> 通信装置、通信方法および通信プログラム

Also Published As

Publication number Publication date
US9342356B2 (en) 2016-05-17
JP5682705B2 (ja) 2015-03-11
WO2012131962A1 (ja) 2012-10-04
US20140040905A1 (en) 2014-02-06

Similar Documents

Publication Publication Date Title
JP5682705B2 (ja) タスク実行制御装置、タスク実行制御システムおよびタスク実行制御方法
JP5285353B2 (ja) 複数のサービス構成要素に対応するアクションの実行を管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
EP3358786B1 (en) Information processing method in m2m and apparatus
Fanjiang et al. An overview and classification of service description approaches in automated service composition research
Singh et al. Airflow
JP2012048385A (ja) 画像形成装置、プログラム状態判定方法、プログラム状態判定プログラム、及びプログラム状態判定システム
JP2017045302A (ja) 配信システム、配信システムの制御方法
CN112882765B (zh) 数字孪生模型调度方法和装置
JP2015509637A (ja) アプリケーションをフィルタする方法
Ruta et al. A semantic-enabled social network of devices for building automation
JP2004310517A (ja) プリントシステムおよび印刷ジョブ管理方法
JP2012186560A (ja) 電子機器、情報処理システム、及びプログラム
Popovici et al. Context-Aware Transportation Services (CATS) Framework for Mobile Environments.
JP2010102517A (ja) ビジネスプロセス管理装置及び方法
Bohé et al. Towards low-effort development of advanced IoT applications
CN104980520B (zh) 通知消息接收方法、装置及系统
Di Martino et al. Semantic representation of cloud services: a case study for openstack
JP2015118462A (ja) 開示度制御装置、開示度制御方法及びプログラム
Wang et al. SHSM: A service middleware for smart home
JP2014215907A (ja) 情報提供装置及び情報提供システム
Ghrab et al. A core IoT ontology for automation support in edge computing
JP2013084304A (ja) 情報処理装置及び情報処理方法及びプログラム
US10191770B2 (en) Maintenance tasks based on device role
WO2019159939A1 (ja) サービス連携装置、および、サービス連携方法
JP2024008182A (ja) アプリケーション提供支援方法、アプリケーション提供支援システム、IoT(Internet of Things)システム、及びアプリケーション提供支援プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141229

R150 Certificate of patent or registration of utility model

Ref document number: 5682705

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees