図1Aは本発明の一実施例によるタスクコンピューティング環境(TCE: Task Computing Environment)100のタスクコンピューティングアーキテクチャを示すシステム図である。図1Aでは、コンピュータで実行される方法は、パーバシブ(汎用的な)タスクコンピューティングシステム環境100を複数のタスクコンピューティングコンピュータシステム実行段階(tier)に分けるステップを有し、その段階は、プレゼンテーション処理レイヤ104、リモートプロセジャコールメカニズムアプリケーションプログラムインターフェース(API)106、リモートプロセジャコールAPI106によりプレゼンテーションレイヤ104に対するインターフェースがとられるミドルウエア(サーバ)プロセシングレイヤ108を有し、本方法は、機能116の意味論的に記述されたコンピュータシステムのソース機能116に対して、コンピュータ100のサービス112として、ネットワーク化された、ネットワーク化されていない又は双方として(コンピュータシステム110)、リアルタイムで動的に(ダイナミックに)コンピュータで実現されるタスクインターフェース130(例えば、)をプレゼンテーションレイヤ104で生成する。
一実施例によれば、機能ソース実現レイヤ114は機能性に関するコンピューティングソース(例えば、デバイス又はソフトウエア114)であり、例えばユーザに対するサービス機能115を表現する又は示すことができる。サービスレイヤ112は、サービス機能115を意味論的に記述するための、サービス機能115に関連するセマンティックサービス記述(SSD: Semantic Service Description)116を有する。かくてSSD116はサービス機能115を意味論的に表現又は記述する。かくて「サービス」112なる用語はSSD116のサービス機能115への関連付けを意味する。言い換えれば、SSD116は「サービス」を表現する。より具体的には、「サービス」112なる用語は、コンピュータ装置、コンピュータアプリケーション/ソフトウエア、電子サービス及びコンピュータ(若しくはマシン又は双方で)読取可能なコンテンツの機能ソース実現レイヤ114の領域からの機能に関する演算例に関連する。より具体的には、サービスレイヤ112及び機能ソース実現レイヤ114は、機能116の意味論的に記述されたコンピュータシステムソースをコンピュータサービス112として用意し、ミドルウエアプロセシングレイヤ108は、コンピュータシステムでリアルタイムで動的に構成する実行可能なタスクに対するインターフェースをとり、そのタスクは、コンピュータシステム110で1以上のサービス112に対するプレゼンテーションレイヤ104で生成されたタスクインターフェースに従う1以上のサービス112より成る。
タスクコンピューティング100は、アプリケーション、装置、電子サービス及びコンテンツリッチなコンピュータネットワーク環境114で複合的なタスクをリアルタイムで動的に発見、公表、構成、管理及び実行する(即ち、実現レイヤ114でタスクを実行する)ための新たなパラダイム(paradigm)である。タスクコンピューティング100は、(例えば、セマンティックサービス記述(SSD)116a−nを介して)コンピュータ装置114a−nのサービス機能115a−nを意味論的に記述することに基づき、そのセマンティクスに従ってエンドユーザによりオンザフライで実行可能なタスクに構成可能である。従ってここで説明される実施例によれば、タスクコンピューティング100システムは、3つ又はそれいじょうのプログラムされたコンピューティング及びコンピュータ読取可能な情報レイヤのマルチレイヤコンピュータシステムアーキテクチャを有し、そのアーキテクチャはプレゼンテーションクライアントプロセシングレイヤ104、ミドルウエアサーバープロセシングレイヤ108(例えば、セマンティックインスタンス、セマンティックサービス記述116)及び複数のコンピュータシステムレイヤ中の複数のサービスを含む。「タスク」126なる用語は、例えばユーザが実行するよう希望する、発見されたコンピュータシステムサービス112に従う1以上のアクションの構成に関連する。ここで説明される実施例によれば、「タスク」126は、ユーザにより自動的に駆動され、或いはそれらの如何なる組み合わせもコンピュータで実現されるタスクインターフェース130を介して構成及び管理される。ユーザの場合、1以上のサービス112の構成としてのタスク126はプレゼンテーションレイヤ104で管理される(例えば、発見され、公表され、構成され、実行される、等々)。非限定的なサービスの構成例として、「マイコンタクト112の勤務先アドレス112の天候情報112をプロジェクタ112で見る」は、「プロジェクタで見る」、「天候情報」、「勤務先アドレス」及び「マイコンタクト」の4つのサービス112で構成される。言い換えれば、「タスク」は1以上のサービス112の組み合わせより成る。
「構成(composition)」なる用語は、(非限定的であるが)例えばサービス112の入力(消費)/出力(生成)に対するデータオブジェクトタイプのような、サービス112の意味論的入力及び出力のように、意味論的に記述されたサービス112の用意された機能特性に従って複数のサービス112を共に置くことで形成することに関連する。サービスの機能特性例は、サービスの構築性を決定ためにサービス112の影響及び前提条件にすることができる。サービス112の影響及び前提条件の具体例はサービス112の入力及び出力データオブジェクトタイプにすることができる。
「セマンティックインスタンス(semantic instance)」又は「セマンティックオブジェクト(semantic object)」なる用語は、1以上のオントロジ(ontology)に基づく或る項目に関する記述群に関連する。セマンティックサービス記述(SSD)116は1以上のサービス機能オントロジに基づいてサービス機能115を記述する。
「公表(publish)」なる用語は1以上のサービス発見手段を介してセマンティックサービス記述(SSD)116を利用可能にすることに関連する。
一実施例による「セマンティックサービス記述」116なる用語は、サービス機能115自身から或るアプリケーション(例えば、タスクコンピューティングシステム(TCS)118)へ、サービス機能115のパラメータを通知するための媒介物に関連する。
「発見(discover)」なる用語はセマンティックサービス記述116の発見に関連する。
タスクコンピューティングはコンピュータシステム110のタイプを指定し、そのシステムは自動的な若しくはユーザが駆動する又はそれら双方の(適切な如何なる組み合わせによっても)リアルタイムで、ダイナミックに、「タスク」126を発見、公表、構成、管理及び実行し、そのタスクは意味論的に記述された116アプリケーション、装置及びサービスリッチなコンピュータコンピューティング(コンピュータシステム)環境110に基づく1以上のサービス112を有する。
セマンティックタスク実行エディタR(STEER)(意味論的に記述されたサービス116の実行可能なタスクを発見及び構成するためのソフトウエア)及び汎用インスタンスプロビジョン環境(PIPE: Pervasive Instance Provision Environment)(セマンティックインスタンス及び/又はセマンティックサービス116を公表及び管理するためのソフトウエア)に関する2つのタスクコンピューティングクライアントの例は、関連する米国特許出願番号第10/733,328号に記載されており、その内容全体は本願のリファレンスに組み入れられる。ここで説明される実施例は、リアルタイムに使用される技術及び/又は技術における改善、意味論的に記述されたサービス116の実行可能なタスクへの動的な構成に加えて、意味論的に記述されたサービス116の管理(例えば、発見、生成/公表、操作等)に関連する
図1Aでは、ここで説明される実施例に従って、1以上のタスクコンピューティングシステム(TCS)118a−nが、リモートプロセジャコールメカニズムに基づいてクライアントサーバーコンピュータシステムアーキテクチャに従って用意される。TCS118は論理的であり、実行時にプレゼンテーションプロセシングレイヤ104にセグメント化され、クライアントタイプのプログラムされたプロセッサをタスクコンピューティングクライアント119a−nとして提供し、ミドルウエアプロセシングレイヤ108はサーバータイプのプログラムされたプロセスを提供し、セグメントされたプレゼンテーション及びミドルウエアプロセシングレイヤ104,108は、タスクコンピューティング環境ウェブサービスアプリケーションプログラミングインターフェース(TCE-WSAPI)106a−nのようなウェブサービス(WS)のような如何なるリモートプロセジャコールメカニズムにも従ってインターフェースをとる。ウェブサービスの概念は周知である。従ってここで説明される実施例では、概してTCS118は、プレゼンテーションレイヤ104でクライアントタイプのプロセスを用意するタスクコンピューティングクライアント(TCC)と、ウェブサービス(WS)のようなリモートプロセジャコールAPIを介するミドルウエアサーバープロセシングレイヤに関するTCC119インターフェースとを有し、この場合にTCC119はWSTCC199と言及される。リモートプロセジャコールメカニズムの具体例として、ウェブサービスを利用するTCS118は、WSTCS118と言及される。第三者アプリケーションを含む如何なるアプリケーション(例えば、マイクロソフトワード、エクセル、アウトルック、アドーブアクロバット等)、ウェブサービスのようなリモートプロセジャコールメカニズム(ウェブサービスコールのようなリモートプロシジャコールを作成することができる(又はリモートプロシジャ呼出機能を組み込むことができる))を用いることで、タスクコンピューティングクライアント(TCC)119になることができる。ここで説明される実施例は、リモートプロセジャコールメカニズムの具体例としてウェブサービスを利用するが、本発明はそのようなコンフィギュレーションに限定されず、如何なるリモートプロシジャコールメカニズムが使用されてもよい。
従ってウェブサービスをリモートプロシジャコールAPIの具体例として使用すると、セマンティックタスク実行エディタウェブサービスタスクコンピューティングシステム(STEER-WS TCS)118aはWSTCS118の一例であり、STEER-WSAPI12―を介して、ミドルウエアサーバープロセシングレイヤ108に関してインターフェースをとるプレゼンテーションプロセシングレイヤ104におけるSTEER−WSタスクコンピューティングクライアント(STEER-WSTCC)119aを有する。
パーバシブインスタンスプロビジョン環境ウェブサービスタスクコンピューティングシステム(PIPE−WSTCS)118bはWSTCS118の別の例である。PIPE-WSAPI122はミドルウエアサーバ管理ツール124を明らかにし、そのツールは一般にタスク126を管理することに加えて、タスクコンピューティング100で使用されるSSD116及び/又はセマンティックオブジェクトインスタンスを管理(例えば、生成/公表、除去、操作等)するために使用される。PIPE−WS122を利用するアプリケーションクライアント119はここでは意味論的に記述されたサービスコントロールメカニズム(SDSCM: Semantically Described Service Control Mechanism)119bとして言及され、その具体例は「ホワイトホール(White Hole)」119b−1、「サービスマネジャ」119b−2、「リアルワールドオブジェクトセマンタイザ」119b−3、及び「データベースセマンタイザ119b−4」であり、これらは関連する米国出願番号10/733,328号及び11/115,403号でも説明されている。例えば、例えば「ホワイトホール」タスクコンピューティング(ホワイトホール)119b−1のように、プレゼンテーションプロセシングレイヤ104で(PIPE-WSAPI122を介してミドルウエアサーバープロセシングレイヤ108とインターフェースをとる)、WSTCS118bはPIPE-WS122を利用し、ウェブサービスタスクコンピューティングクライアント(アプリケーションクライアント)又はSDSCM119bを有する。
(非限定的であるが)STEER-WSTCC119aのようなウェブサービスタスクコンピューティングクライアント(WSTCC)119、ホワイトホール119b−1、「サービスマネジャ」119b−2、「リアルワールドオブジェクトセマンタイザ」119b−3及びデータベースセマンタイザ119b−4をプログラム可能なコンピューティング素子(例えば、タスクコンピューティングクライアントソフトウエア)としてプレゼンテーションレイヤ104で利用することで、コンピューティング環境の1つ又は複数の如何なるものによってもTCE−WSAPI106を介するミドルウエアサーバープロセス108によって利用可能にされた意味論的に記述されたサービス116に基づいて、ユーザはタスク126を管理(例えば、発見、公表、構成、実行、操作)することができる。
図1Aでは、今日のコンピューティング環境に従って、ユーザは実現レイヤ114に関連する機能で囲まれており、その機能は、インターネットで利用可能な電子サービス(eサービス)、ユーザが操作するコンピュータ装置で動作するアプリケーション、コンピュータ読取可能な媒体で利用可能なコンテンツ等のような装置若しくはコンピュータ媒介サービス、又は特定の機能をサポートする単なる装置を有する。そのような装置、アプリケーション、eサービス及びコンテンツの具体例は、(限定ではないが)電話、コンピュータディスプレイ、カメラ、娯楽装置/コンテンツ、テレビジョン、パーソナルディジタルアシスタント(PDA)、無線通信装置(例えば、移動電話等)、オーディオプレーヤ、ファクシミリ装置、プリンタ、天気予報サービス、地図サービス、事務関連コンピュータソフトウエア(例えば、電子メールアプリケーション、アドレスブック等)、マルチメディアコンピュータ読取可能メディア(例えば、音楽のコンパクトディスク、映画のディジタルビデオディスク(DVD)等)、インターネットサイト、データベース等を含む。
図1Aでは、実現レイヤ114で与えられる機能又はサービス機能115a−nは、例えば(限定ではないが)、(例えば、娯楽装置の場合に)音楽を聴くこと、歌をダウンロードすること、ストリーミングビデオを鑑賞すること、ラジオを聞くこと、連絡先情報を提供すること、地図上の住所を確認すること等を含む。従来、実現レイヤ114は、装置又はサービス各々とユーザがやり取りする(及び/又は操作する)ことにより、そのユーザに機能を提供するように設計されていた;例えば、ユーザが訪れている部屋に用意されている電話で同僚に電話することを希望し、その同僚の電話番号がユーザのラップトップの電子アドレスブックアプリケーションに記憶されていたならば、そのユーザはラップトップアプリケーションを起動し、問題としている電話番号を捜し、その電話でその電話番号に手動でダイヤルしなければならない。言い換えればユーザはタスク126を構成することはできない。アプリケーション、eサービス及び装置が物理的に互いに通信可能である場合でさえ、即ちそれらの間に通信リンクが存在する場合でさえ、実現レイヤ114の設計者がコンピュータシステム機能ソース(例えば、コンピュータ装置)をタスクを考慮しながら設計していない限り、アプリケーション等はユーザのタスクについて有意義な方法でデータを交換できない。過剰な機能ソース114a−nに直面するとき、機能のソース114a−nがそのタスク用に設計されていない限り、ユーザはそれら全てのソース中の機能を活用するタスクを実行できない。更に、無関心なユーザはそのような如何なるタスクが可能であるかに気付いていないことが間々ある。
図1Aでは、ここで説明される実施例により、サービスレイヤ112は、機能ソース実現レイヤ114からのサービス機能115aと、(ネットワーク化された、ネットワーク化されていない又は双方の部分を含む)コンピュータシステムのサービス112として、機能ソース実現レイヤ114のサービス機能115aを関連する意味論的に記述するセマンティックサービス記述116aとを有する。ここで説明される実施形態によれば、サービス機能115及びSSD116間の関係は、特定の機能ソース114に関して多対多(n:m)にすることができる。例えば1つのSSD116と複数のサービス機能115では、サービス機能115の構成を(その構成中の複数のサービス機能115と共に)SSD116として保存する。1つのサービス機能115と多数のSSD116の場合には、単一のサービス機能115の複数の種類又はタイプの意味を与える。例えば、書籍検索サービス機能115(ISBN入力について著者、価格、写真等を返すサービス)の場合、その機能はセマンティックサービス116に基づくことが可能であり、ある者が著者の連絡先を返すこと、別のSSD116が画像を返すこと等を行うようにする。より具体的には、ここで説明される実施例形態によれば、サービスレイヤ112は、(ネットワーク化された、ネットワーク化されていない又は双方の部分を含む)利用可能なコンピュータシステム110サービス112を形成することと共に、サービス機能115a−nに対応するセマンティックサービス記述(SSD)116a−n及び実現レイヤ114a−nにより利用可能なサービス機能115a−nを有する。SSD116は実現レイヤ114のコンピュータネットワークサービス機能115を明らかにする。SSD116の或る具体例は、関連する米国特許出願番号第10/733,328号及び11/115,403号にも記載されており、その全内容は本願のリファレンスに組み入れられる。
従って、タスクコンピューティング100は、タスクを達成する具体的実現方法を強調するのではなく、タスク126を強調する実現レイヤ機能ソース114a−nのサービス機能115a−n(例えば、コンピュータ装置114)とユーザがどのようにやり取りするかの新たなパラダイムであり、そのタスク126は、そのコンピュータ装置114を利用しながら達成することをユーザが希望するタスクである。タスクコンピューティング100はユーザが実行したいことと(その環境で利用可能な)コンピュータ装置114のサービス機能115との間のギャップを埋める。タスクコンピューティング100は、現在のパーソナルコンピューティングパラダイムのような従来の手法を上回るかなりの恩恵をもたらし、エキスパートでないコンピュータユーザに一層相応しく、全てのタイプのユーザにとって時間を節約でき、汎用コンピュータタイプのコンピューティング環境を実現するのに特に適している。
図1Aでは、従って、ここで説明される実施形態によれば、拡張及び構築に柔軟性のあるコンピュータシステムアーキテクチャ(ソフトウエア及び/又はプログラマブルコンピューティングハードウエア)を用意するため、個々のモジュール化されたミドルウエアサーバープロセシングレイヤ108が作成され、そのレイヤの機能は、リモートプロシジャコールアプリケーションプログラミングインターフェース(API)を介してプレゼンテーションプロセシングレイヤ104に利用可能になる;アプリケーション開発者及びユーザはそれらを用いてタスクコンピューティング機能(例えば、サービス112及び/又はタスク126の構築、保存、実行、関し、公表、管理等を含む、実行可能なタスク126へのサービス112発見及び構成)にアクセスする。例えばウェブサービスのようなリモートプロシジャコールメカニズムは、エンドユーザのアプリケーション開発に必要なプログラミング言語非依存性、プラットフォーム及びロケーション(即ち、異なるコンピュータで異なるプロセシングレイヤ)を提供する。
上述したように、ユビキタスパーバシブネットワークコンピュータコンピューティング環境は、その性質上しばしば一時的である多数の装置及びその他の機能(eサービス、アプリケーション、コンテンツ)114,115で満たされ;更に、エンドユーザ又はユビキタス環境のアプリケーションを作成する開発者さえも、如何なる機能(リソース)114が及び対応するサービス機能115が所与の時点で利用可能であるか及びより重要なことにそれらが何に利用可能であるかを前もって知らないかもしれない。このダイナミズムを考慮するため、サービス機能114,115は設計時点でなく実行時に発見され組み合わせ可能にされる必要がある。従ってここで説明される実施例は、一例としてセマンティックウェブ技術を利用し、その理由はコンピュータネットワークリソース114,115がマシン読取可能なセマンティクス116によりそれ自身充分に記述されていたならば、或るインフラストラクチャ100を構築することができ、そのインフラストラクチャはコンピュータシステムサービス110のようなリソース114,115を充分に理解し、アプリケーション開発者が一般的に行うことを、リソース114,115が提供するもの及び何のために利用可能であるか等の開発者自身の知識を利用することで、エンドユーザが行うことを可能にするからである。セマンティックウェブの概念は周知である。
より具体的には、ここで説明される実施形態によれば、タスクコンピューティング100はセマンティックウェブ及びウェブサービスの周知の概念を利用する。しかしながら、真に動的なアドホックなユビキタスコンピューティング環境で実際の機能システムを実現するために、ここで説明されるタスクコンピューティング100では、以下のことが設定及び実行される:
(1)図1に示されるように、機能に関するコンピュータシステムソース110に対するタスクインターフェースを用意する。タスクインターフェース130は、(1)タスクコンピューティングクライアント(TCC)119を有するプレゼンテーションプロセシングレイヤ104、(2)ミドルウエアサーバープロセシングレイヤ108(プレゼンテーションレイヤ104でのTCC119がタスクコンピューティング環境(TCE)ウェブサービスAPI106(例えば、STEER-WSAPI120及びPIPE-WSAPI122)のようなリモートプロシジャコールメカニズムAPI106とインターフェースをとる)に論理的にセグメント化されたタスクコンピューティングシステム(TCS)118を有する。API106は、プレゼンテーションプロセシングレイヤ104によりインターフェースされるミドルウエアサーバープロセシングレイヤ108を明らかにする。タスクインターフェース130も、サービス機能115を意味論的に記述するセマンティックサービス記述(SSD)116を有する。SSD116はTCC119を介してプレゼンテーションレイヤ104で示されるミドルウエアプロセシングレイヤ109によって発見され、サービス機能115は、例えば実行されるタスク126の一部として、用意された制御コマンドに従って、例えば、TCC119を介してプレゼンテーションレイヤ104で及び実行されるサービス機能115のSSD116に基づいて、ミドルウエアプロセシングレイヤ108により実行される。
(2)共にサービスレイヤ112を提供するように、セマンティックサービス記述(SSD)116及びサービス手段115を分離する。
(3)サービス112について或る範囲の探索を達成するためにリモートタスクコンピューティングクライアント119でアクセス可能であってコンピュータ110で動作するリモートプロシジャコールAPIの部分集合としての「スフェア(sphere)」の概念を考察することで、(場合によっては、サービスの又は保存されたタスクの)探索の仕組み、探索範囲及びサービスの操作機能をそれらの範囲の中で及び間で分離する。
(4)サービスを動的に作成及び操作するユーザ(及びアプリケーション)の能力は、利用可能であり(ユーザには能力があり)、他の者と共有可能である(或いは、必要に応じて共用できなくしてもよい。)(即ち、サービスコントロールマネジメントを行う。)。
(5)興味のある及び真に有益なタスク126を実行可能にする様々なサービス112を用意する。
従って図1Aに示されるように、上述のレイヤの分離は、論理的なもの及び実現的なもの双方に関連し、タスクコンピューティング100を構築するのに有益であり、ユーザは複雑なタスクを実行することができ、そのタスクはコンピュータネットワークシステムで(黙示的にも明示的にも)設計されていなかったものであり、かくてユーザのソース機能114,115(装置、アプリケーション、コンテンツ及びeサービス)を増やす。本発明はセマンティックウェブに限定されず、(データがアプリケーション、企業及び集団の境界を超えて共有及び再利用されることを可能にする)他の意味論的なタイプの技術やフレームワークがここで説明される実施例で使用可能である。
図1Aでは、機能ソース実現レイヤ114は、最低レイヤとして示され、コンピュータ装置、コンピュータアプリケーション/ソフトウエア、電子サービス及びコンピュータ(又はマシン若しくは双方で)読取可能なコンテンツ等の領域を網羅し、ユーザに利用可能な全ての機能が生じる。機能ソース114のサービス機能115(以下で更に詳細に説明される)は機能性に関する演算例である。そのようなサービス機能115は一般に少なくとも3つの異なるタイプのソース114(装置、アプリケーション(ソフトウエア)及びオーバーザウェブeサービス)から発する。これら3つのソース114は厳密に手ではなく緩やかに定義され、カテゴリを限定していない。なぜならそれらの間の境界は融通性が高いからである。一例として、サービス115を発する装置114は、装置114がもたらすように設計された中核的な(コアの)機能である。例えば、電話(装置)114の主な機能は電話呼出(サービス)115を行うことである。同様に、機能を発するアプリケーション(ソフトウエア)114は、コンピュータ装置114で実行するソフトウエア114のサービス機能115である。例えば、個人情報管理(PIM: Personal Information Management)アプリケーションの機能は、人の連絡先情報を記憶及び検索することを含む。最後にeサービス及び/又はコンテンツ114サービス機能115は、例えば、ユーザのローカルなネットワークの境界を越えてウェブサービスを介してサービス機能115をもたらす何らかのリモートサーバーで動作するサービス機能115である。第4のソース機能114のようなコンテンツは非常に有用であり、そのコンテンツはサービス機能115として利用可能にされ;このタイプのサービス機能115は、ユーザ間での情報共有手段として非常に有用である。従って「サービス」112はここでは、コンピュータ装置の機能ソース実現レイヤ114、コンピュータアプリケーション/ソフトウエア、電子サービス及びコンピュータ(又はマシン若しくは双方で)読取可能なコンテンツの分野からの機能の演算例に関連する。従って機能ソース実現レイヤ114からの機能の演算例としての「サービス」112は、「サービス」112とやりとりするインターフェース特性を有し、それは、サービス名、実行される機能等を含む「サービス」の記述、及び「サービス」112に対する入力/出力のようなサービスの機能特性を有する。さらに、ここで説明される実施形態によれば、コンピュータシステムサービス110用にコンピュータで使用されるユーザインターフェースは意味論的に記述された「サービス」112の出力データ及び入力データに基づくオントロジに従う。例えば、ディスプレイプロジェクタにファイルを表示するためにセマンティックサービス記述116に記述されたサービス112は、「プロジェクタで表示」と名付けられ、入力としての「ファイル」を受け入れ、何らの出力パラメータもない。
図1Aでは、サービスレイヤ112はセマンティックサービス記述(SSD)116を介してサービス機能115として演算に利用可能にされた機能のソース114である。SSDはサービス機能115を発見しそれにアクセスすることを可能にする。各サービス機能115は少なくとも1つのセマンティックサービス記述(SSD)116に関連し、例えばOWL−Sに従ってエンコードされ、OWL−Sはウェブオントロジ言語(OWL)に基づくウェブサービスオントロジ言語であり、リソース記述フレームワーク(RDF)/拡張可能マークアップ言語(XML)交換シンタックスを利用し、サービス115が動的に作成されるように(利用可能にされるように)、SSD116はPIPE−WSTCS118bを介して実行中に(オンザフライで)作成可能である。説明されるSSDの例はOWL−Sの例に限定されず、ウェブサービスを含む、コンピュータシステムサービス機能115の特性及び機能を記述するコンピュータで解釈可能な如何なる言語構造でも利用可能である。SSD116は3つの部分を有し、それらは:プロファイル、プロセス及びグランディング(grounding)であり、プロファイルの部分はユーザがサービス115を実際に起動可能にする。サービス115はタスクコンピューティング領域100で利用可能な機能を表現し、これらのサービス115のSSD116は、サービス機能115のソースに関する複雑さからユーザを隠蔽し、関心のある複雑なタスクを実行する際にそれらのサービス機能をユーザが利用しやすくすることになっている。意味論的に記述されたサービス116の例は関連する米国特許出願番号第10/733,328号及び第11/115,403号でも説明されており、その全内容は本願のリファレンスに組み入れられる。
図1Aでは、ミドルウエアサーバープロセシングレイヤコンポーネント108はサービス115,116(又は112)を発見する責務を有し、サービス115,116が実行可能なタスクにどのように構成可能であるかを決定し、サービスを実行し、実行したサービスを監視し、(意味論的に記述されたサービス116の作成及び公表を含む)様々な管理動作を可能にする及び支援する。言い換えれば、ミドルウエアサーバープロセシングレイヤコンポーネント108の目的は、全てのサービスリソース115を意味論的に記述されたサービス116として抽象化することであり、そのサービスは、それらを操作するよう求めるアプリケーションに又はユーザに(例えば、TCC199を介してプレゼンテーションレイヤ104で)利用可能にされることが可能である。
図1Aでは、プレゼンテーションプロセシングレイヤ104はミドルウエアプロセシングレイヤ108の機能を利用して、全ての利用可能なサービス機能116,115(112)を結合することでユーザがタスクを実行可能にする。WSTCC、WSアプリケーション及び/又はWSウェブベースインターフェースアプリケーション(ウェブブラウザと共にアクセス可能である)と呼ばれる(ここでは全てWSTCCと呼ばれる)ウェブサービス118a−nを用いる様々なプログラム可能なコンピューティングクライアント(例えば、ソフトウエアクライアント、プログラマブルコンピューティングハードウエアクライアント、又は双方等)が用意され、ミドルウエアプロセシングレイヤ108を介して利用可能な全てのサービス機能112を結合することでタスクを実行する。ここで説明される実施形態によれば、ミドルウエアレイヤコンポーネント108は、明確なウェブサービスアプリケーションプログラミングインターフェース(WSAPI)106を介して明らかにされ、それにより、これらのAPI106を用いるWSタスクコンピューティングクライアント(WSTCC)119の生成を可能にする。
サービス112の発見、構成、実行、保存、生成、管理のようなタスクコンピューティングのコア機能に制限無くアクセスするミドルウエアプロセシングレイヤ108でタスクコンピューティング環境ウェブサービスAPI106を規定することは、列挙された機能全てを開放する。例えば、WSTCS119は、ユーザがウェブサービス106を呼出可能にする限り、タスクコンピューティングの特定の実現手段に拘束されず、ユーザは如何なるプラットフォームでも作業することができ、WSTCC119を作成し及びサービス112にアクセスするのに如何なるプログラミング言語でも利用できる。
図1Aでは、従って、ここで説明される実施形態によれば、タスクコンピューティング環境ウェブサービス(TCE−WS)API106が提供される。TCE−WSAPI106の部分集合(サブセット)は様々なタスクコンピューティングの目的に使用可能であり、STEER−WSTCS118aで使用される場合にはSTEER-WSAPI120と、1以上のPIPE-WSTCS118bで使用される場合にはPIPE-WSAPI122と、クロス環境タスクコンピューティングの「スフェア(Sphere)」を用意するのに使用される場合にはスフェアオブマネジメント(SoM)-WSAPI123と言及される。本発明の実施例が以下に説明される:
セマンティックタスク実行エディタウェブサービス(STEER−WSTCCC)119aのような様々なウェブサービスタスクコンピューティングクライアント(WSTCC)119aの例が詳細に説明され、それはSTEER-WSAPI120に基づき、意味論的に記述されたサービス116を発見し及び実行可能なタスクに構成するソフトウエアである。WSTCS118のプレゼンテーションレイヤ104コンポーネント108のようなSTEER-WSTCC119aは、様々なコンピュータで実現されるユーザインターフェースを用意する。関連する米国特許出願番号第10/733,328号及び11/115,403号は、STEER-WS拡張(XT)TCC119a-1に関連するコンピュータ表示グラフィカルユーザインターフェース、移動電話のような無線装置で実施されるコンピュータ表示グラフィカルユーザインターフェースを説明しており、それらは移動電話STEER-WSTCC119a-2、STEER-WS空間情報システム(SIS)TCC119a-3、音声STEER-WSTCC119a-4及びタスクレット-WSTCC119a-5と呼ばれる。本発明の一実施例によるタスクレットWSTCC119a-5が以下に説明される。
ユーザインターフェース−STEER-WS-XT TCC119a-1:
図1Bは本発明の一実施例による、プレゼンテーションレイヤでのSTEER-WS-XTTCC119a-1によるコンピュータで実現されるタスクインターフェースとしてコンピュータに表示されたグラフィカルユーザインターフェース画像である。図1Bでは、コンピュータ表示グラフィカルユーザインターフェースウインドウ142は、発見されたサービス112ウインドウ(又は、発見プレーン)であり、そのウインドウは発見されたサービス112のアイコンツリー構造に従って表示される。ここで説明される実施形態によれば、サービス112は、(限定ではないが)、愛称(フレンドリネーム)、サービスタイプ、アルファベット順等のようなオントロジ及び/又は他の特性に基づく何らかのタイプのサービスカテゴリ階層に従って、発見サービスウインドウ内で組織される。コンピュータ表示グラフィカルユーザインターフェースウインドウ144はタスクウインドウ144(又はタスク126構造プレーン)であり、多数の入力/出力に関するサービス112の非線形サービス構造を収容するよう意図されたサービスグラフである。図1Bでは、タスクウインドウ144は、非限定的に、5つのサービス112を含むタスク126を表示する。特に、タスク126は「マイコンタクト112からホームアドレス122及びビジネスアドレス122へのルート112をマイプロジェクタ112で表示する」である。
図1Bではここで説明される実施形態に従って、SSD116ウインドウ150は、サービスウインドウ122で選択されたサービス112について、SSD116パラメータ/特性を表示する。SSDウインドウ135は、例えばタスク126の一部としてタスク126を検査する際に活用できる。
図1Bでは、タスクウインドウ144はサービス112の選択可能な図形表示を提供し、そのサービスは発見サービスウインドウ142で選択されたものである。タスクウインドウ144では、発見されたサービス112の選択時に、オントロジに基づいてサービスの機能特性に従うコンパチブルなサービスが自動的に見分けられ、サービス112の図形表示も自動的に1以上の選択可能な機能特性ボタン145a−nを有し、そのボタンは選択された発見されたサービスについて利用可能な又は有効な(両立可能な)サービス112を表す。機能特性ボタンを選択すると、先行するサービス112の成果を利用可能な他の発見済みサービス112の選択可能なリストが表示され、サービス112の図形表示をつなぐ表示された線で示されるように、1以上のサービス112を構成することは、或るタスク126を作成する。より具体的には、タスクウインドウ142の中で、ユーザはタスク126として指示したサービス112のグラフを構成する。サービス112の入力/出力データオブジェクトタイプをサービス112の機能特性として用いる場合には、出力機能特性ボタン145aは、着色によって又はコンピュータ表示を区別する既知の何らかの方法によって、入力機能特性ボタン147と区別される。
図1A及び図1Bを参照するに、タスクコンピューティングシステム100は或るアークテクチャを有し、そのアーキテクチャは、現在の環境で利用可能なサービスを発見し、利用可能なサービスのユーザ中心の観点によるタスクを構築及び処理し、複数のサービスで構成される結果のタスクを実行するための基礎を与える。必要ならば、エンドユーザさえも新たなサービスを動的且つ簡易に作成する。タスクコンピューティングシステム100の3つの特性/要素(1),(2),(3)は次のとおりである:
(1)サービス112として全ての機能114,115の一様な抽象化。ここで説明されるように、タスクコンピューティング100では、ミドルウエアサーバープロセシングレイヤ108は意味論的に記述されたサービス112として全てのリソースを抽象化するよう機能する。意味論的に記述されたサービスは、(限定ではないが)WSDL(ウェブサービス記述言語)、UPnP(ユニバーサルプラグアンドプレイ)、CORBA、RMI、RPC、DCE、DCOMサービス機能115のようなリモートプロシジャコールを介して利用可能なサービス機能115であり、サービスを記述するための言語(例えば、OWL−S)におけるセマンティック記述(ファイル)116が指定される。そのようなセマンティック記述116を指定すると、指定されたオントロジはそのサービス116,115(112)が動作する領域について具体化される。オントロジに関し、ソフトウエアツールが、オントロジを作成するために、及び可能性のある存在する又は利用可能なオントロジが利用可能なときはいつでも使用可能である。OWL−Sサービス記述116は、サービス機能115の機能特性を表現し、その機能は例えば入力及び出力をセマンティックオブジェクトとして、及びオーナー、創作者、ロケーション等とサービス112に関して意味付ける。その記述は、実際のWSDL及び/又はUPnPサービスが適切に実行可能になるようにする基礎情報を含む。これらの記述を用意する際に、セマンタイザツール(限定ではないが、ここで説明及び/又は言及されたリアルワールドオブジェクトセマンタイザ119b-4、データベースセマンタイザ119b-5、インターナルサービスインスタンスクリエータ等)は、オントロジオブジェクトをWSDLパラメータにマッピングし、何らかの必要な基礎情報(基礎情報(グラウンディング)はXSLTスクリプトを介して表現される)を作成するのに使用される。ウェブサービスインターフェース106はミドルウエアサーバープロセシングレイヤ108用に用意され、それに基づいてプレゼンテーションクライアントプロセシングレイヤ104での直感的なタスク126ユーザインターフェースが用意される。
タスクコンピューティングミドルウエアはセマンティックサービス記述の動的なリポジトリ(repository)と見ることもできる。ここで説明されるこれらの記述にアクセス及び操作するためのAPI106とは別に、APIを実行することでそのリポジトリのディレクトリを問い合わせるための手段が用意され、APIはサービス記述に対する如何なるRDF問い合わせ言語(RDQL)クエリをも処理する(JENA2.0はRDQLクエリの処理例として使用される。)。例えば、開発者はロケーションのようなサービスの何らかの特性によりタスク合成用にユーザに提示されたサービスを、たとえその目的に対する明示的なAPIが用意されていなかったとしても選別できる。この能力はアプリケーション開発者の力を伸ばし、或るクエリがより有用になるので、それらはミドルウエアにAPI106(事前に選択されたRDQLクエリを実行する)として永続的に加えられてもよい。或る実施形態によれば、SSDにおけるサービスの意味論的記述を調べることによるユーザに対する発見されたサービスとユーザのコンテンツとの関連性に基づいて、SSDを発見した発見手段に基づいて、或いは各サービス又はそれらの如何なる組み合わせの機能特性で決定されたSSDに従うサービスコンパチビリティに基づいて、発見されたSSDは、動的に選別され発見されたサービスになる。
サービス112としての機能の抽象化は機能を一般にアクセス可能にし、タスクコンピューティングインフラストラクチャがそのような機能とやり取りすることを可能にする。タスクコンピューティングシステム100は、ユーザのコンピュータ装置の(アプリケーション及びOSによる)、環境中の装置の及びインターネット上で利用可能なeサービスの機能114,115を抽象化されたサービス112に変換する。この抽象化はその環境で利用可能な機能を処理するための事前の用意を減らす道を開くが、それ自身単独で、ユーザにリアルタイムの操作能力及び機能をタスク126に構成する能力を与えるには充分でなく、ここで説明される実施例はプレゼンテーションレイヤ104を用意し、リアルタイムの、動的なタスク(複数のサービスを有するタスク)の管理をサポートする。
(2)セマンティックサービス記述(SSD)116に基づいて抽象化されたサービス112の直感的な操作性を(ユーザに及び/又はシステムに)与えること。サービス112の直感的な操作性は、セマンティックサービス記述(SSD)116の利用を通じて可能になる;オントロジはそのようなユーザ及び/又はシステムの直感的な操作を達成するための仕組みである。SSD116の概念は、関連する米国特許出願第10/733,328号及び/又は第11/115,403号にも記載されており、その全内容は本願のリファレンスに組み入れられる。
例えば、SSD116の代わりに、WSDL(ウェブサービス記述言語)機能ソース115だけがウェブサービスの機能特性を記述するのに使用される場合、WSDLベースのウェブサービスは、プログラマがそれらの意味を(WSDL記述内容以上に)理解し且つ適切にそのサービスを利用するためのコードを開発する必要がある。その結果、機能に関するエンドユーザのやりとりは、開発者により事前に決められたそれらのプログラムの範疇に制限される。オントロジオブジェクトをソース機能115パラメータ(例えば、限定ではないが、WSDLパラメータのようなパラメータ)にマッピングし、及び何らかの必要な基礎情報を作成することによる追加的なセマンティクス(SSD116で供給される)は、タスクコンピューティング100インフラストラクチャが、ユーザが詳細な知識なしにそのサービスを操作することを支援することを可能にする。例えば、セマンティクスはユーザによるサービスの操作を制約するために、又はその環境で可能性のあるタスク126についてユーザを禁止するために使用可能である。WSDLだけがサービスのセマンティック入力及び出力に基づくサービス構成を当てにしているならば、その構成はサービスの如何なる構成にも制約されず、例えば、XSDストリングを使用する別のものと共にCMLスキーマ定義(XSD)ストリングを生成し、おそらくは実行可能でない(無効な)サービス構成を導出する。従ってここで使用される実施形態によれば、「構成(composition)」は、(限定ではないが)例えばサービス112の入力(消費)/出力(生成)用のデータオブジェクトタイプのサービス112の意味論的な入力及び出力のような、意味論的に記述されたようなサービス112の用意された機能特性に従って複数のサービス112を共に置くことで形成されることに関する。サービスの機能特性の具体例は、サービス構成を決定するためのサービスの前提条件及び影響でもよい。サービス112の前提条件及び影響の具体例は、サービス112に関する入力及び出力データオブジェクトタイプでもよい。特に、サービス112のSSD116は微細な粒度のサービス入力及び出力をもたらし、例えば、「アドレス」セマンティックオブジェクトを生成するサービスは意味論的に両立性のあるサービスと共にだけ構成可能でもよい。
ユーザの直感的なサービス112の操作の別のメカニズムは、「マイホームからのルート」のようなサービス名のような自然言語に従って適切なサービス名を与えることによるものであり、コンパチブルなサービスの構成サービス名は自然言語タスク126表現として機能してよい(例えば、「プロジェクタで見る」112+「マイファイル」、112「カンパニー1からのルート」112「都市名空港」112)。オントロジは、サブクラス−スーパー−クラス関係に基づく構成のようなメカニズム、及びエンドユーザにとって非常に自然な意味論的オブジェクト変換をサポート可能である。従ってタスク126の構成は自然言語文に基づく、或いは換言すれば構成されたタスク126は自然言語文のように読める。より具体的には、ここで説明される実施例は、生前言語シーケンスの要素(例えば、フレーズ)のようなサービスに名称を割り当て、自然言語文のような自然言語要素の構成に対応付けるためのサービスの構築性をサポートする。従ってタスクコンピューティングシステム100はエンドユーザが環境110のサービスとやりとりするのに非常に豊富で興味深い方法を可能にする。
(3)ユーザは例えば図1Bに示されるような(1)及び(2)に基づいてコンピュータ実現ユーザインターフェースを介してタスク126のリアルタイムの及び/又はダイナミックな(後に結合する形式の)構成を行うことができる。
ウェブサービスアプリケーションプログラムインターフェース(TCE-WSAPI)106:
図2は本発明の一実施例によるSTEER-WSAPI120の定義リスト例を示す。図1A及び1Bでは、STEER-WSTCC119aはWSTCC119であり、サービス112を発見し、選別し、構成し、実行し、タスク126としてサービス112を保存するのに便利なユーザインターフェースをもたらす。STEER-WSAPI120は、TCE-WSAPI106であり、独立モジュールからタスクコンピューティング機能を抽出し、例えばSTEER-WSTCC119aのような何らかのWSTCC199によりアクセス可能な標準的なウェブサービスインターフェースとしてそれらを明確にする。
図2に示されるように、ウェブサービス106によるタスクコンピューティングミドルウエアサーバー処理レイヤ108の機能を明らかにすることで、プレゼンテーションプロセシングレイヤ104でのWSTCC119は、タスクコンピューティングミドルウエアサーバープロセシングレイヤ108のモジュールの実現手段から開放可能である。WSTCS119開発者は、ウェブサービス106の呼出がなされない限り、如何なるオペレーティングシステムで如何なるプログラミング言語も利用でき、WSTCC119をもたらす。ウェブサービス呼出を実行可能な(又はウェブサービス呼出機能を組み込むことが可能な)第三者のアプリケーション(マイクロソフトワード、エクセル、アウトルック、アドーブアクリバット等)さえ潜在的なWSTCC119でもよい。
図2では、発見、構成、実行、監視、保存等のような機能がSTEER-WSAPI120でサポートされている。一般に、STEER-WSAPI120及びPIPE-WSAPI122のようなTCE-WSAPI106はサービス112識別子(SID)パラメータを当てにし、そのパラメータはSSD116で記述された意味論的に記述された或るサービス機能115を固有に特定するものである。典型的には、ここで説明される実施例によれば、SIDはSSD116で記述された意味論的に記述されたサービス115へのユニフォームリソースロケータ(URL)の文字列である。例えば、図3Aは発見されたサービス112に関するローカルな情報に同期するためにSTEER-WSAPI120を利用するコンピュータソースコード300の例を示す。図3Bは複数のサービス112と共にタスク126を起動するSTEER-WSAPI120を用いる別のコンピュータソースコード例310を示す。非限定的な例として、図3Bでは、サービスリストパラメータは例えば“&”を用いて複数のタスクを区別し且つ“|”を用いてタスク内のサービス112識別子を区別する入力文字列であり、WSTTCC199はタスクの実行を起動及び監視するために自身のコード中に図3Bのプログラムループを有することができる。従って本発明では、図3A−3Bのようなソースコードは、TCEWSAPI106を用いてミドルウエアサーバープロセシングレイヤ108のリモートプロシジャを起動し、STEER-WSTCC119aのようなWSTCC119の実現例である。
図4は本発明の一実施例によるSTEER-WSTCC119aのミドルウエアプロセッシングレイヤ108プログラムモジュールの機能ブロック図である。図1及び図4に示されるように、STEER-WS-TCC119aのミドルウエアプロセシングレイヤ108はセントラルモジュール402を有し、そのモジュールは、プレゼンテーションプロセシングレイヤ104からのSTEER-WSAPI120を介するウェブサービス106要求に従って、サービス112の発見モジュール404、実行モジュール406及びモニタモジュール408を制御する。セントラルモジュール402は、サービス112分解及びインデックスモジュール410と、サービス112構成及びタスク126実行計画部412とを有する。サービス112分解及びインデックスモジュール410はインターフェース412を登録し、発見モジュール404が、発見したサービス112を登録すること/登録抹消することを可能にする。発見モジュール404は、ローカル発見モジュール414、UPnPのような第三者サービス機能115発見モジュール416、リモートサイト発見モジュール418及び発見モジュール管理部420のような個々の発見モジュール群を有し、管理部420は、各発見モジュールが様々な環境110で使用されるべきか否かを判定する管理機能を有する。
ここで説明される実施形態によれば、ローカルサービス発見部414、第三者サービス発見部416、リモートサイトサービス発見部418、テンポラリサービス発見部428、ネイティブ(固有)サービス発見部426又はそれらの如何なる組み合わせによるものの1以上を含む複数の発見手段に従って関連するSSD116を発見することで、サービス機能115を発見する。ローカルサービス発見部414は、「ソケット」ポートを開き、同じ装置(コンピュータ)で起動されたアプリケーションからのSSD116公表メッセージを監視し、その装置でローカルサービス発見モジュール414が実行される。例えば、アプリケーションが始まると、アプリケーションは或るSSD116を公表し、SSD公表メッセージを、通知を受けるためにローカルサービス発見部414により開かれた所定の「ソケット」ポートに送信する。本実施形態によれば、そのアプリケーションからのローカルサービス発見部414により受信されたSSD公表メッセージは、公表されたSSD116のロケーションを含む。そして、ロケーションサービス発見モジュール414がTCC119に利用可能なSSD116を作成する。
第三者発見部416は第三者発見標準規格を用いてSSD116を発見する。第三者発見メカニズム416は、例えば、ユニバーサルプラグアンドプレイ(UPnP)技術、ジニ(JINI)技術、ブルートゥース等又はそれらの如何なる組み合わせでもよい。例えば、サイバーリンクUPnP及び/又はインテルUPnPツールキット手段をダイダン社発見モジュール416で使用し、UPnPによるサブネットワーク内でブロードキャストされたサービス記述を発見してもよい。リモートサイト発見部418はリモートウェブサービスに対するウェブサービスプロトコル(ウェブサービスコール)を用いて、ウェブサービスインターフェースにより識別可能なSSDを発見する。
ここで説明される実施形態によれば、ヒューレットパッカード開発会社によるJENAがSSD116を格納するのに使用される。分解及びインデックスモジュール410は、SSD116を分解及び分析するための分解及び分析する機能を有する。例えば、ここで説明される実施形態によれば、SSD116はヒューレットパッカード開発会社によるJENAを用いて、アメリカ合衆国メリーランド大学のMINDLABによるペレット(PELLET)及びOWL−SAPIと共に分解される。特に、「サービス112が発見されること」は「或る機能ソース114(例えば、デバイス、ソフトウエア114)のサービス機能115を意味論的に表現するSSD116が発見されること」と等価である。SSD116は、サービス発見モジュール404の何れかにより発見可能であり、登録インターフェース422を介してセントラルモジュール402に送信され、SSD116が例えばペレットのサポートと共にJENAにより最初に分析される。SSDが分析されると、ペレットはRDQLクエリに対する回答する準備を行う。サービス分析及びインデックするモジュール410から問い合わせることで及び問い合わせ結果に基づいて、サービス構成及びタスク実行計画モジュール412はタスク126としてのサービス112の構成を想定し、TCC199からのタスク126実行命令に応答してタスク126の実行計画を決定する。実行計画が決定されると、中央モジュール402は実行モジュール406を介して関連するサービス機能115を呼び出し、その実行モジュールはサービス機能115を呼び出すためにSSD116に用意されたグラウンディング呼び出し部(grounding invocation)424を有する。発見モジュール404は、サービス機能115及びセマンティックサービス記述(SSD)116を含み得るサービスを発見する。サービス112分解及びインデックス部410の上記の説明は、そのようなコンフィギュレーションに限定されず、JENA及びペレット以外のSSD116を分解及び分析する如何なる仕組みも利用可能である。
ここで説明される実施形態によれば、独立したモジュールとして、WSTCC119は、(例えば、基礎をなすブルートゥースSDP、IR、RENDEZVOUS、JINI等404,406についてウェブサービスインターフェース106を実現することで)統合される及び高度に抽象化される発見及び実行手段がウェブサービスAPI106に従って実行可能である限り、如何なる種類のサービス112発見手段404又は実行手段406をも使用可能である。従って、例えば、ユーザが特定するのに唯一必要なものは、サービスレイヤ112とのインターフェースをとるためのSTEER-WSAPI120用のウェブサービス定義言語(WSDL)ファイルのユニフォームリソースロケータ(URL)である。ウェブサービスAPI106が用意される限り、TCE−WSAPI106により基礎をなす発見手順全体が、プレゼンテーションレイヤ104でWSTCC119におけるユーザにとって透明(transparent)である。例えば、或るSTEER-WSAPI120は、ブルートゥースベースのサービス112を発見及び実行するためにブルートゥース発見モジュール404を利用することができる。別のSTEER-WSAPI120はUPnP発見モジュール404を利用することができる。
一形態に従って、以下の2つのサービス112発見法が説明される:(1)ネイティブサービス発見モジュール426;及び(2)テンポラリサービス発見モジュール428。ここで説明されるように、サービス112の発見は、サービス機能115に関連するSSD116の効果的な発見になる。ネイティブサービス発見モジュール426はワンタイムファイルベースの発見モジュール(one-time file-based discovery function)である。いくつかのサービス112は頻繁に使用され、定常的に利用可能になるよう望まれる。例えば、「常にオン(ON)の」ウェブサービス115(例えば、アマゾンウェブサービス)に基づく又はグラウンディングのないWSTCS118(STEER-WSTCS118a)により実行可能な或るサービス112が存在する。一形態によれば、「常にオンの」ウェブサービス115では、そのウェブサービスの利用可能性はタスクコンピューティングシステム118の実行状態に関係しない。多くの場合、第三者ベンダはそのような「常にオンの」ウェブサービス115を用意するかもしれない。これらの「常にオンの」ウェブサービスに関し、関連するサービス記述116は固定されてもよい。なぜなら、(ウェブサービス115が提供されている場所のような)そのウェブサービス115に関する情報は不変だからである。従ってそのような「常にオンの」サービス115について、「固定された」(常に一定であることを意味する)サービス記述116を作成することが可能である。そのような場合、コストのかかる動的なサービス発見手段(例えば、関連する米国特許出願番号第10/733,328号及び第11/115,403号で説明されているようなPIPE-WSTCS118bによる手段)は不要である。
ネイティブサービス発見モジュール426は、固定された記述を含み且つ頻繁に使用されるサービス112に関してワンタイムライトウエイト発見モジュールである。一実施形態によれば、ネイティブサービス発見モジュール426は、STEER-WSTCS118aのようなWSTCS118の初期開始段階で一度だけ動作する。例えば、STEER-WSTCS118aは指定されたディレクトリ(例えば、デフォルトの「マイドキュメント\マイサービス」)でサービス112として発見された全てのサービス記述ファイル116をロード又は設置し、これら発見されたサービス112をSTEER-WSTCS118a(例えば、発見されたサービス112ウインドウ(又は発見プレーン)142−図1B−で利用可能である)に登録する。その後に、ネイティブサービス発見モジュール426は閉鎖可能になる。以下の表1はネイティブサービス発見モジュール426とローカルサービス発見モジュール414との比較概要を与える。ローカルサービス発見414は「ソケット通信」に基づく。ローカル発見モジュール414は事前に形成されたソケットを開き、監視する。ローカルサービスが或るアプリケーションにより公表されると、そのアプリケーションは所定のソケットにメッセージを送信し、ローカル発見モジュール414により発見されるようにする。この手法は動的であり且つTCC119で動作する装置に局所的であると考えられる。なぜならTCC装置はTCC装置で動作するアプリケーションを介してサービスを提供しているからである。TCCのIP(インターネットプロトコル)アドレスが変わると、そのサービス記述も変更されなければならない。
表1:ネイティブサービス発見モジュール426対ローカルサービス発見モジュール414
テンポラリサービス発見モジュール428はサービス112用に設計され、そのサービスは、STEER-WSTCS118aのようなWSTCS118の現在の実行セッションの中でのみ必要とされ、タスクパッケージ(後述)で使用されるそのようなサービス112は、ユーザがタスクパッケージのタスクレット(tasklet)と共に作業する場合にのみ必要とされる。一形態によれば、テンポラリサービス発見モジュール428は以下の2つのウェブサービスAPIを用意する:
1.レジスタAPI(これは、入力としてサービス記述を使用し、登録が成功すればサービスIDを返す。)。
2.未登録API(これは、サービスIDを使用し、何も返さない。)。
テンポラリサービス発見モジュール428はウェブサービスを介してユーザがサービス112を公表する/未公表にすることを可能にする。しかしながら、テンポラリサービス発見モジュール428を通じて発見されたサービス112は、STEER-WSTCS118aのようなWSTCS118の現在の実行セッションの中でのみの一時的なものである。例えば、STEER-WSTCS118aがリスタートされると、これらのサービス112はもはや発見されない。なぜならテンポラリサービス112に関する情報がクリアされるからである。
図1Aでは、PIPE-WSTCS118bは、セマンティックオブジェクトインスタンスを公表及び管理するためのWSTCS118の別の例である。PIPE-WSAPI122は独立モジュールからタスクコンピューティング管理機能124を抽出し、「ホワイトホール」119b−1、「サービスマネジャ」119b−2、「リアルワールドオブジェクトセマンタイザ」119b−3及び「データベースセマンタイザ」119b−4のような何らかのWSTCS119によりアクセス可能な標準的なウェブサービスインターフェース106としてそれらを明らかにする。より具体的には、PIPE-WSAPI122はウェブサービスインターフェース106をPIPE-WSTCS118bに与え、オペレーティングシステム、アプリケーションオブジェクト、デバイスサービス等を公表することのようなサービス112を管理する。PIPE-WSTCS118bは例えば関連する米国特許出願番号第10/733,328号及び第11/115,403号にも記載されている。
プレゼンテーションプロセシングレイヤ104ユーザインターフェース:
STEER-WSAPI120及びPIPE-WSAPI122の実現は、WSTCC199用の多種多様のタスクコンピューティング100ユーザインターフェースを用意することを可能にする。なぜなら、WSTCC199のプレゼンテーションプロセシングレイヤ104は、タスクコンピューティングミドルウエアプロセシングレイヤ108のモジュールの実現手段から開放可能だからである。WSTCS119のユーザインターフェース104の例はタスクレットWSTCC199a-5に関してここで説明される。
タスクレットWSTCC119a-5:
タスクレットTCC199a-5は非常に負担の軽い処理のタスクコンピューティングクライアント(TCC)119であり、サービスのOWL-Sファイルを実行する又はサービスを構成する(タスク126)。コマンドラインの中に含まれるOWL-Sファイルを実行するためにタスクレットTCCを形成する手法の中で、好ましい手法は実行されるOWL-Sファイルをダブルクリックすることで(或いは、他の何らかの適切なOS操作により)タスクレットTCCを呼び出すことである。タスクレットTCCがOWL-Sファイルを読み込むと、STEER-WSAPI120を用いることで、そのサービス又はサービス構成を実行する。タスクレットTCCはそれ自身のウインドウ中のサービス機能115の制御UIを示す。特に、図2を参照するに、タスクレットTCC119a-5はOWL-S記述を実行するために、「OWLS実行」API120を呼び出す。タスクレットTCC119a-5はOWL-S「プロセスモデル」及びタスク126を格納するサービスグラウンディングを利用し、「プロセスモデル」タスクレットを用意する。一実施例によれば、サービスワークフロー(及びタスクレットプラスサービスワークフロー)及びタスクパッケージが用意される。
図5Aは本発明の一実施例によるタスクパッケージファイル構造を示す図である。一形態によれば、「タスクパッケージ」500はサービスワークフロー情報を含むサービスワークフロータスクレット(SW-タスクレット)502を含む。SW-タスクレット502サービスワークフロー情報及びタスクパッケージ500は、SW-タスクレット502に含まれる構成されたタスク126のSSD116(サービス112)を編集する能力及びポータビリティを改善する。「SW-タスクレット」なる用語は、意味論的に記述されたタスク126(2以上のサービス112で構成されるコンピュータ解釈可能な意味論的記述)に関連する。例えば、タスクレットTCC119a-5がOWL-Sに基づき且つOWL-Sファイルであり、ユーザがタスク126を格納、公表、実行及び共有するのに「プロセスモデル」タスクレットを利用可能ならば、タスク126を構成するサービス116(112)は一旦作成されると編集不可能になる。なぜなら、タスク126はOWL-S規格で規定される「プロセスモデル」に従って格納されるからである。OWL-S「プロセスモデル」は多くの方法で限定可能であり;例えば、「プロセスモデル」は実行についてだけである。従って、一実施例によれば、SW-タスクレット502は「サービスワークフロー」を含むように拡張される。ここでOWL-Sに基づいてタスク126を格納する3つの手法が概説される:
OLW-Sで規定される「プロセスモデル」は実行目的である。個々のサービスのプロセスだけが包含され、プロセスモデル以外にサービスワークフローを抽出することはできない。
「SW-タスクレット」は「プロセスモデル」プラスサービスワークフロー情報である。SW-タスクレットにより、サービスワークフローを抽出し、サービス112の構成としてタスク126をリスト化することが可能である。
しかしながら、或るサービス112が失われたと考えられる場合(例えば、目下の環境の中で発見されなかった場合)、その実行及び編集は失敗する。かくて「タスクパッケージ」500は「SW-タスクレット」502プラス包含されるサービス112全ての又は全てのSSD116の記述である。タスクパッケージに関し、或るサービス112が失われていた場合でさえ、WSTCS118は(例えば、テンポラリサービス発見手段を用いて)依然としてそれらを探すことができ、タスクパッケージ500のSW-タスクレット502に含まれているタスクの編集又は実行を続けることができる。
特に、OWL-Sファイル各々は3つの部分を含むことができる:(1)プロファイル(これは、サービス名、サービス記述(人がサービス説明を読み取ることができる記述)及び/又はセマンティック入力/出力である。)、(2)プロセス(これは、実行に関連する情報を決める。)及び(3)グラウンディング(これは、実行情報を実際の呼出方法に対応付ける。)。一形態によれば、各SSD116はOWL−Sファイルである。また、2以上のSSD116のタスク126を記述するSW-タスクレット502はOWL−Sファイルファイルである。構成されたタスクの意味論的記述としてのSW-タスクレット502は、構成されたタスクのSSDに基づいて、構成されたタスク記述のSSDプロセスモデルとして実行プランを、構成された全てのSSDのサービスグラウンディングを生成し、及び後述するように構成されたタスク記述のプロファイル属性として構成されたタスクのサービスワークフローを抽出及び付加する。かくてタスク126を記述するOWL−Sファイルで又はSW−タスクレット502で、タスクレットOWL−Sファイルのプロセスセクション又は「プロセスモデル」は実行プランを含み、構成されたタスク126中にSSD116用のOWL−Sファイルのプロセスセクションのみを包含する。従ってタスク1126が一旦構築されると、そこから、TCC119はどのサービスが含まれているか及びタスク126の中でそれらがどんな役割であるかを知ることはできない。なぜなら、サービス112は複数のプロセスを含むかもしれないし、或いは複数のサービスが同じプロセスを共用するかもしれないからである。何れの場合も、「プロセスモデル」から、どのサービス112のプロセスが所属するかを特定することは困難である。換言すれば、「プロセスモデル」はサービス112及びプロセスの1対1の対応関係を明らかにしない。なぜなら、サービス112の「プロファイル」は「プロセスモデル」に含まれておらず、TCC119が「プロセスモデル」タスクレットを開くことは困難であり、そのタスクレットはプロセスモデルのみを含み、タスクウインドウ(又はタスク126構成プレーン)144に示されるサービス122のブロックを構築するようなサービスワークフローチャートのように、ユーザがサービス112からタスク126を初期に構築した段階に戻す。
それ故に、一形態によれば、SW-タスクレット502はサービスワークフロー情報概念を有し、TCC119はSW-タスクレット502を開くことができ、SSD116を介して複数のサービス112を構成することでタスク126をユーザが構築する段階に戻す。タスクレットサービスワークフローの中で、関連するサービス112だけでなく、サービス112間の関係(或るサービス112の出力がどのようにして他のサービス112の入力に対応付けられるか等)も定義される。タスクレットサービスワークフローから、TCC119は、タスクレット/タスクパッケージをロードすること及びタスクウインドウ(又はタスク126の構成プレーン)144内でサービス112を構成するタスク(初期の構築段階)を表示することができる。タスクレットサービスワークフロー機能は、既存のタスク126をロードする機能及びそのタスク126がサービス112からどのように構築されたかを見る機能をユーザにもたらす。同一のTCC119に関し、タスク126から、ユーザはサービス112を付加/削除/編集することができ、TCC119により提供されるタスクインターフェース130を介して(例えば、図1B)新たなタスク126を生成する。これはタスク126「編集可能性(editability)」と呼ばれる。
例えば、サービスワークフロー情報は:(1)タスク126を有する多数のサービス116(112)、(2)これらのサービス112のID(即ち、SSD116のID)及び(3)サービス112がタスク126を形成するために如何にしてリンクされたかを含む。タスクレットサービスワークフロー情報を参照することで、TCC(タスクコンピューティングクライアント)119は、リンクされたサービス112を有するサービスワークフローとして、SW-タスクレット502タスク126の当初の設計内容を復元することができる。
図6A−Dは本発明の一実施例によるSW−タスクレット502のコンピュータ解釈可能なソースコードを示す。特に、図6A−6Dは「マイファイルを開く(Open My File)」のタスク126を記述するためのOWL−Sファイルであり、そのファイルは「開く(Open)」116a及び「マイファイル(MyFile)」116bのSSD116を介する2つのサービス112で構成される。図6A−6Dでは、SW-タスクレット502は有効なOWL−Sタスク126記述であり、SW-タスクレット502は実行可能である。図6BではSW-タスクレット502(Open My File.owls)に関し、以下のラインがサービスワークフロー情報512になる。
図6Bでは、サービスワークフロー512がサービスID516,518それぞれを介して2つのサービス「開く(オープン)」及び「マイファイル」の2つのサービスを特定する。更に、サービスワークフロー512は、「マイファイル」出力520及び「マイファイル」出力520に合致する「開く」522をサービス122(116)リンケージとして確認する。
図6B−6Cでは、プロセスフローライン514は、OWL−Sの規格の一部であり、次のようにタスク126を実行するのに必要とされる。
サービスワークフロー情報を利用して、タスク126の詳細を容易に共有することができる。しかしながらSW-タスクレット502の考えられる1つの欠点は、TCC199は示される構成サービス全てにその詳細を正確に表示することを要求することである。なぜなら、SW-タスクレット502サービスワークフロー情報はサービスIDのみを与え、サービス名、サービス記述、セマンティック入力/出力のような他の重要な情報をタスク126の個々のSSD116から検索することを当てにしているからである。サービスワークフロー情報と共にSW-タスクレット502は、コンパクトな手法でタスク126の詳細を共用することを可能にするが、サービスワークフロー情報を備えたSW-タスクレット502はタスク126を編集する能力及び移植性(portability)を制限するおそれがある。なぜなら何らかのサービス112が見失ったと思い(例えば、現在の環境で発見されなかったと思い)、実行も編集も失敗するかもしれないからである。従ってタスクレットサービスワークフロー情報を用意することに加えて、本実施例は「タスクパッケージ」を用意する。サービスワークフローに含まれるサービス112がその環境内で発見可能であった場合には、そのサービスワークフローは単体でそのタスク126を復元するのに充分である。
図5Aでは、「タスクパッケージ」500は次のような3つのタイプのファイルを含むパッケージファイルである:SW-タスクレット502、関連するサービス504全体のSSD116及びインデックスファイル506。インデックスファイル506はサービスID(タスクレットのワークフロー情報に記録されている)及び関連するサービス記述5−4間の対応関係(マッピング)を格納する。一形態によれば、例えば、パッケージファイル500はジップ(ZIP)ファイルフォーマットに従ってもよい。図5Bは本発明の一実施例によるジップタスクパッケージのファイルリストである。
図5Aでは、タスクパッケージ500は以下の部分を含むジップファイルである:「サービス」サブフォルダ(タスク126を構成するセマンティック記述116全てを格納する(例えば、オープン116a及びマイファイル116b)、SW-タスクレット502(ワークフロー情報と共にOWL−Sフォーマットでタスク126を記述する)(オープンマイファイルSW-タスクレット502)及びインデックスファイル(services.idx)506(SW-タスクレット502に現れるサービスIDを、「サービス」サブフォルダ中に格納されたタスク126のSSD116に対応付ける。)。図7A−Cは本発明の一実施例による「オープン」サービスに関する意味論的なサービス記述を表すコンピュータ解釈可能なソースコード例を示す。図8Aは「マイファイル(MyFile)」サービスの意味論的サービス記述を表現する本発明の一実施例によるコンピュータ解釈可能なソースコード例を示す。従って図7及び8に示される「オープン」116a及び「マイファイル」116bはタスクパッケージ500の「サービス」サブフォルダ中にある。
従って、タスクパッケージ500のサービスサブフォルダ内に、複数のサービス機能115で構成されたタスク126に含まれる全てのサービス機能115のSSD116が格納されている。SW-タスクレット502はサービスワークフロー情報512も提供する。インデックスファイル「services.idx」506は(SW-タスクレット502で使用される)サービスID及び(サービスサブフォルダに格納される)SSDファイル116の間の対応関係を決める。
TCC119でタスクパッケージ500が開かれると、STEER-WSTCS119aのような第1のSW-タスクレット502が抽出される。SW-タスクレット502が必要とする全てのサービス112が利用可能であるか否か(即ち、TCC119によって既に発見済みであるか否か)をTCC119は検査する。SW-タスクレット502サービス116がTCC119によって既に発見済みであったならば、何らのアクションもなされない。そうでなかった場合、インデックスファイル506から、TCC119は不足しているサービス116全ての記述を見出し、それらをテンポラリサービス発見モジュール428を介して公表する。SW-タスクレット502サービス116はテンポラリサービス発見モジュール428以外の発見手段を介して公表可能であるが、テンポラリサービス発見モジュール428を利用しなかった場合には、発見されたタスクパッケージ500サービス116は現在のタスクパッケージのタスク構成セッションを過ぎても存続可能である。TCC119によって、不足している全てのサービス116が公表され及び発見されると、SW-タスクレット502はTCC119による手順のロードを再開可能である。一形態によれば、TCC119はタスクパケットファイル500を開き、SW-タスクレット502を実行及び/又は編集するために(例えば、編集するために、構成されたタスクダイヤグラムを表示するために)、TCC119はタスクパッケージ500のSSDから、構成済みタスク126の不足している又は必要なSSD116の如何なるものも検索する。TCC119は検索されたSSD116を公表し、テンポラリサービス発見モジュール428を介してSSD116を登録することで、SSD116をTCC119にとって利用可能にする。TCC119はテンポラリサービス発見部428ウェブサービスを呼び出し、タスクパッケージ500からテンポラリサービス発見428ウェブサービスに、検索されたSSD116を提出し、テンポラリサービス発見部428はウェブサービスインターフェースを介したTCC119からの入力SSD116を受け入れる。テンポラリサービス発見部428ウェブサービスは、TCC119による認証用に、受け入れたSSDを発見したサービス116(112)として登録する。一形態によれば、テンポラリサービス発見部428は受け入れたSSDを分析し、TCC110のサービスインスタンス112を作成する。一形態によれば、テンポラリサービス発見部428により公表されたサービスは、例えば、TCC119の実行セッション中に加えてテンポラリサービス発見部428を開始するTCC119でのみ利用可能である。
従ってSW-タスクレット502は実行可能なOWL-S記述であり、その記述は、包含されるサービス112のサービスワークフローに加えて包含されるサービス112のプロセスに基づいて、タスク126の実行計画を規定する。サービスワークフロー情報を有するSW-タスクレット502は或る特定のタグを有し、そのタグは、SW-タスクレット502で記述されるタスク126のサービスワークフローを表現する。タスクレットサービスワークフロー情報と共に、TCC119はSW-タスクレット502を開き、例えば、ユーザインターフェースウインドウ144で、包含されるサービス112及びそれらの関係を表示する。しかしながら、TCC119環境では、SW-タスクレット502の1以上のサービス112が、そのようなサービス112が発見されない又はTCC119に登録されていないことに起因して、不足していると考えられた場合には、開く(オープン)手順は不足情報に起因して失敗するかもしれない。かくて、タスクパッケージ500は包含されるサービス112(又はSSD116)全ての記述及びSW-タスクレット502を含む。TCC119がタスクパッケージ500を開くと、たとえSW-タスクレット502の1以上のサービス112が欠けていても、取り付けられたセマンティックサービス記述116からそのサービス112をロードする選択肢がユーザに与えられる。不足していたサービス112全てがロードされると、完全なタスク126が復元される。要するに、タスクパッケージ500はタスク126を保存する最もロバストな(robust)方法である。サービスワークフローを備えたタスクレット及びタスクパッケージの双方は「タスク編集可能性」をサポートする。
一形態によれば、SW-タスクレット502及びタスクパッケージ500双方がTCC119で作成可能である。例えば、ユーザが一群のサービス112からタスク126を作成した後で、ユーザはそのタスク126を保存するための選択肢を持つことができる。タスク126を保存している間、そのユーザはそのタスク126を、サービスワークフローを有するSW-タスクレット502として又はタスクパッケージ(サービスワークフロー情報を有するタスクレット−プラス−そのタスク126に含まれている個々のサービス112の記述)として保存することを決定できる。一旦ユーザがその決定を行うと、SW-タスクレット/タスクパッケージは生成可能になる。
SW-タスクレットを生成する手順は次のようにすることができる:
1.タスクのOWL-Sを「プロセスモデル」専用タスクレットとして生成する。
2.タスクのサービスワークフロー情報を抽出し、抽出されたサービスワークフロー情報をプロファイル属性としてOWL-Sに加える。一形態によれば、ユーザはTCC119(例えば、STEER-WSTCS119aに関する図1B)内でタスクを生成する場合に、サービスワークフロー情報がSTEER-WSTCS119のエディタから抽出される。一形態によれば、図1Bでは、表示された構成されたタスクダイヤグラムはデータ構造で表現され、或る抽出手順は、編集を含むユーザのタスク構成をタスクデータ構造から分析し、サービスワークフローを算出/決定し、例えば、タスク126を構成するサービス116(112)の数を確認し、どのサービスがタスク126に含まれているかを例えばこれらのサービス112のID(即ち、SSD116のID)で確認し、タスク126を形成するためにどのサービス116(112)が共にリンクされるかを確認する(例えば、サービス1の出力はサービス2の入力に進む、等々)。
3.或るファイルに対するサービスワークフローと共にOWL−SをSW-タスクレット502として格納する。
タスクパッケージの手順は次のようにすることができる:
1.SW-タスクレットを事前に決定したように作成する。
2.含まれているサービス116全ての記述を加える。
3.サービスid及びサービス記述ファイル名の間の対応関係(マッピング)を作り出し、そのマッピングをservices.idxファイルに格納する。図9は本発明の一実施例によるタスクパッケージインデックスファイル例506を示す。
4.コンテンツをジップ化する。
タスクパッケージ500は未改良の方法に比べてかなりの改善効果をもたらし、ユーザは「プロセスモデル」タスクレット及び関連するサービスを手動で梱包し(zip)して他のユーザに送り;それを受けたユーザはそのファイルを開包(unzip)し、不足しているサービスを公表し、「プロセスモデル」専用タスクレットを最終的に開く必要がある。タスクパッケージの利点は明確である。なぜなら、TCC119でタスクパッケージの構築中に、タスクパッケージフォーマットはTCC119が関連するサービス112全てを自動的に検出し、タスクパッケージ中のそれらのサービス記述116をSW-タスクレット及び対応するインデックスファイルと共に梱包することを許容するからである。タスクパッケージがTCC119で動作する又はオープンされる場合に、TCC119は、如何なる不足サービス112をも対象に含み、タスク構成サービスを自動的に決定する。上記の未改良の方法では、受け側のユーザは不足しているサービス112を手で抽出し、それらを手動で公表する必要がある。
ここでは、タスクコンピューティング100環境を複数のコンピュータシステム実行段にセグメント化することによるタスクコンピューティングシステム例が説明され、その実行段は、プレゼンテーションクライアント処理レイヤ、リモートプロシジャ呼出アプリケーションプログラムインターフェース(API)、ミドルウエアサービスプロセッシングレイヤ(プレゼンテーションレイヤがリモートプロシジャ呼出APIを介してリアルタイムでインターフェースをとり、プレゼンテーションレイヤでコンピュータ実行タスクインターフェースを、意味論的に記述されたコンピュータシステムソース機能に対して、コンピュータシステムでのサービスとして動的に生成する);サービスレイヤ及び機能ソース実現レイヤ(意味論的に記述されたコンピュータシステムソース機能を、ミドルウエアプロセシングレイヤがインターフェースをとるコンピュータシステムでのサービスとして与える);及びリアルタイムで動的に構成する実行可能なタスク(コンピュータシステムでの1以上のサービスに対してプレゼンテーションレイヤで生成されたタスクインターフェースに従って、1以上のサービスで構成される)を有する。コンピュータサービスは実行可能なタスクにリアルタイムで動的に構成され、その際に、意味論的に記述されたアプリケーション−、装置−及びサービス−リッチなコンピュータに基づいてコンピュータ上のサービスに対して生成されたインターフェースを用いる。ここで説明された実施形態によれば、ユーザは、実用的に、効果的に、効率的に、動的に、リアルタイムに、柔軟性のある統合されたユーザインターフェース(構成及び実行機能)を当てにし、やり取りを管理し、汎用コンピュータ環境とやり取りする。
装置、方法、コンピュータ読取可能な媒体(そのキャリア信号を含む)は複数のコンピューティング機能ソースを用意し、機能に関するコンピューティングソース各々は、例えばユーザ及び/又はコンピュータにサービスを提供し、装置のコンピュータ環境内に及びその装置とネットワーク通信するコンピュータ環境内に存在する。本装置はセマンティックサービス記述(SSD)をサービスに関連付ける。SSDはサービスの意味論的記述を有し、コンピュータ解釈可能な言語に従うサービスパラメータのセマンティック記述、及びサービスグラウンディングのように、SSDを表現するコンピュータ解釈可能な言語とインターフェースとの間の対応関係(サービスのインターフェースパラメータを含む)を含む。本装置は、SSDを発見するための複数の発見手段を介して1以上のSSDを利用可能なサービスとして動的に発見し、各サービスに関連する各SSD中の意味論的記述に基づいてサービスを動的に選別し、可能なタスクを連続的に示すためにサービスを選択すること及びサービスを選別することに基づいて、タスクを動的に構成するためのユーザインターフェースを生成し、構成されたタスクの構成されたタスク記述として実行可能なセマンティックサービスワークフロー記述を生成する。
実行可能なセマンティックサービスワークフロー記述の生成は、構成されたタスクのSSDに基づいて、構成されたタスク記述のSSDプロセスモデルとして実行プランを、構成されたタスクのSSD全てのサービスグラウンディングのリストを生成すること、及び構成されたタスクのサービスワークフローを、構成されたタスクの記述におけるプロファイル属性として抽出及び追加することを含む。
タスクコンピューティングは或るアプローチであり、そのアプローチは、(a)セマンティックウェブ技術を利用し、より多くの(セマンティック)ウェブリソースがユビキタスコンピューティングアプリケーションに速やかに利用可能になるようにし、(b)リソースの性質には全く関係ないものであり、リソースがどのように発見されるか、どのようにアクセスされるか、どのように接続されるか又はどのように通信するかによらず、抽象化サービス116がタスクコンピューティングシステム100でそれらを利用可能にするようにする。タスクコンピューティングは、全ての機能の普遍的な抽象化として意味論的に記述されたサービス116を当てにし、更に、構築可能なタスク126は多くのサービス112を含んでよいので、タスクコンピューティングは、装置対サービスの相互運用性(interoperability)より大きな範囲を網羅する。例えば典型的なタスクコンピューティング100システムのタスク126はリアルタイムで動的に5−6個のサービス112を利用できる。
本発明の上記の好適実施例は、(既知の如何なるコンピュータ読取可能な媒体に格納されるような)ソフトウエアで及び/又はプログラム可能な装置/コンピューティング装置を制御するプログラム可能なコンピューティング装置/ハードウエア(例えば、データを格納、検索、提示(例えば、表示)及び処理することができるプログラム可能な電子装置)−如何なるタイプのプログラム可能なコンピュータ装置で実現されてもよい。そのようなコンピュータ装置は、限定ではないが例えば、パーソナルコンピュータ、クライアントサーバネットワークアーキテクチャの場合にはサーバ及び/又はクライアントコンピュータ、分散ネットワークアーキテクチャにおけるネットワーク化されたコンピュータ、端末装置、パーソナルディジタルアシスタント、モバイル装置等である。
以上本発明に関する多くの特徴及び利点が詳細な説明から明らかになり、かくて添付の特許請求の範囲により、そのような特徴及び利点の全てを本発明の真の精神及び範囲内に網羅することが意図される。更に、多くの修正及び変形が当業者に明白なので、図示及び説明された構成及び動作に厳密に本発明を限定することは望まれず、従って適切な全ての修正及び変形は本発明の範囲内にある。