(57)【要約】【課題】  外部の装置から指示されたスクリプトプログラムを実行し、当該スクリプトプログラムに対応するアプリケーションの機能を実現する装置において、そのアプリケーションの機能をサービスとして外部の装置に提供可能とする。【解決手段】  外部の装置から指示されたスクリプトプログラムを実行し、そのスクリプトプログラムに対応するアプリケーションの機能を実現する装置において、外部の装置に対してアプリケーションの機能をサービスとして提供するための情報を公開する。そして公開された情報に基づいて生成された外部の装置からのサービスに対する要求に応じて、そのサービスを処理した結果を外部の装置へ提供する。【選択図】      図３
2010027007.tif 000002
【特許請求の範囲】
【請求項１】
外部の装置から指示されたスクリプトプログラムを実行し、当該スクリプトプログラムに対応するアプリケーションの機能を実現する処理装置であって、
前記外部の装置に対して前記アプリケーションの機能をサービスとして提供するための情報を公開する公開手段と、
前記公開手段によって公開された情報に基づいて生成された前記外部の装置からの前記サービスに対する要求に応じて当該サービスを処理した結果を前記外部の装置へ提供する提供手段と、
を有することを特徴とする処理装置。
【請求項２】
前記公開手段は、前記外部の装置が解釈可能な形式で、前記サービスとして実施可能なインタフェース情報として公開することを特徴とする請求項１に記載の処理装置。
【請求項３】
前記インタフェース情報には、アプリケーションに対応するスクリプトプログラムと、処理対象となるデータの仕様及び処理内容を決定するためのパラメータの仕様を示す入力情報と、処理の結果の仕様を示す出力情報とが含まれることを特徴とする請求項２に記載の処理装置。
【請求項４】
前記提供手段は、複数のサービスを提供可能な場合に、前記外部の装置にて前記インタフェース情報に基づいて生成されたサービスに対する要求に含まれる情報から提供すべきサービスを決定する手段を含むことを特徴とする請求項２又は３に記載の処理装置。
【請求項５】
アプリケーションの機能をサービスとして提供する処理装置に当該サービスを要求する要求装置であって、
前記処理装置が公開したアプリケーションの機能をサービスとして提供するための情報に基づいて当該サービスを要求するメッセージを生成する生成手段と、
前記生成手段によって生成されたメッセージに応じて前記処理装置が実行したサービスの結果を取得する取得手段と、
を有することを特徴とする要求装置。
【請求項６】
ネットワークを介して、請求項１乃至４の何れか１項に記載の処理装置と、請求項５に記載の要求装置とが接続され、前記要求装置から前記処理装置が公開しているサービスを要求することを特徴とするシステム。
【請求項７】
外部の装置から指示されたスクリプトプログラムを実行し、当該スクリプトプログラムに対応するアプリケーションの機能を実現する処理装置の処理方法であって、
前記外部の装置に対して前記アプリケーションの機能をサービスとして提供するための情報を公開する公開工程と、
前記公開工程において公開された情報に基づいて生成された前記外部の装置からの前記サービスに対する要求に応じて当該サービスを処理した結果を前記外部の装置へ提供する提供工程と、
を有することを特徴とする処理装置の処理方法。
【請求項８】
アプリケーションの機能をサービスとして提供する処理装置に当該サービスを要求する要求装置の処理方法であって、
前記処理装置が公開したアプリケーションの機能をサービスとして提供するための情報に基づいて当該サービスを要求するメッセージを生成する生成工程と、
前記生成工程において生成されたメッセージに応じて前記処理装置が実行したサービスの結果を取得する取得工程と、
を有することを特徴とする要求装置の処理方法。
【請求項９】
コンピュータを請求項１乃至４の何れか１項に記載の処理装置として機能させるためのプログラム。
【請求項１０】
コンピュータを請求項５に記載の要求装置として機能させるためのプログラム。
【請求項１１】
請求項９又は１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部の装置から指示されたスクリプトプログラムを実行し、当該スクリプトプログラムに対応するアプリケーションの機能を実現する技術に関するものである。
【背景技術】
【０００２】
近年、単一の機能しか有せず相互に接続することができなかったオフィス機器や家庭用機器にも、ネットワークを通じた連携処理を実現可能とするための機能を提供する多様なソフトウェアが搭載されている。
【０００３】
このように様々な機能を実現するソフトウェアが搭載されてきている背景には、複写機やプリンタ、カメラやスキャナやコンピュータといった機器の機能をユーザの要求に合わせて最大限に活用したいという要望がある。
【０００４】
しかしながら、多様化するユーザのニーズを単一のソフトウェアやシステムで賄うことは、その要求の複雑さから事実上困難となってきている。そこで、機器やコンピュータを構成するソフトウェアを複数の再利用可能な単位に分割し、これを適宜入れ替えて再構成することにより、所望の機能を実現しようとする試みが広がってきている。
【０００５】
更に、こうしたソフトウェアの再構成の考えを機器やコンピュータの内部から外部へと拡張し、複数の機器やコンピュータをネットワーク上で接続し、これらを相互に活用することにより、一つの大きな業務処理を構成しようとする考え方も出てきている。
【０００６】
こうした中で、特にコンピュータに実行させたい処理の単位や流れを人間が対象とする手動の業務の流れであるワークフローと合致させて、より実際の業務との親和性を高めたシステムをコンピュータによるワークフローシステムと呼称する。
【０００７】
コンピュータによるワークフローシステムでは、複数の機器やコンピュータ、若しくはそれに搭載されている各種のソフトウェアがそれぞれ相互に連携し、一連の仕事の流れを構成するという特徴がある。
【０００８】
ワークフローシステムをコンピュータによって構成することを目的としたソフトウェアは、一般にワークフローマネージメントシステムと呼称される。
【０００９】
ここで用いられるワークフローとは、人間が行っている実際の業務を反映したもので、アクティビティと呼ばれる小さい仕事の単位を組み合わせて構成される。アクティビティをコンピュータシステムで実現する場合、ワークフローシステムを構成する機器の機能やソフトウェアの機能を適切に組み合わせて使用する必要がある。
【００１０】
ワークフローの記述は、このアクティビティを組み合わせて行うが、アクティビティにどのような機能を持たせるかということは、各ワークフローマネージメントシステムによって異なっている。
【００１１】
ここでは、ワークフローマネージメントシステムを構築する代表的な技術であるＷｅｂサービスとＢＰＥＬ４ＷＳを例として挙げる。Ｗｅｂサービスとは、各種ＸＭＬ仕様を組み合わせることで、汎用的なネットワークにおける遠隔処理を実現するための技術である。代表的な仕様としては、Ｗ３Ｃが定義した、Ｗｅｂサービス技術における標準的なインタフェース記述のための仕様であるＷＳＤＬやこのＷＳＤＬを用いて定義したインタフェースをアクセスするためのメッセージの仕様であるＳＯＡＰなどがある。
【００１２】
尚、Ｗ３ＣはWorld Wide Web Consortiumの略で、ＷＳＤＬはWeb Service Description Languageの略である。また、ＳＯＡＰはSimple Object Access Protocolの略である。
【００１３】
ＢＰＥＬ４ＷＳはBusiness Process Execution Language for Web Servicesの略であり、複数のＷｅｂサービスを連携させるビジネスプロセスの挙動を定義すると言った目的のために用いられる。
【００１４】
このＢＰＥＬ４ＷＳの仕様は、ＸＭＬ関連の標準化団体であるＯＡＳＩＳのOASIS Web Services Business Process Execution Language TCで管理されている。尚、ＯＡＳＩＳはorganization for the Advancement of Structured Information Standardsの略である。ＴＣはTechnical Committeeの略である。
【００１５】
そして、策定した複数のサービスを連携させるプロセスの記述を行うためのフロー処理記述言語であり、ＷＳＤＬのportTypeを組み上げ仮想的なＷｅｂサービスを構成することができる。
【００１６】
また、ＢＰＥＬ４ＷＳでは、同期／非同期処理を含むワークフローの記述が可能となっており、ワークフローの制御における条件処理にはＢＰＥＬ４ＷＳ拡張関数が追加されたXPathを用いる。またＬＲＴと呼ばれるトランザクションをサポートし、WS-Transactionとの併用による例外処理やcompensation（既に完了した処理の明示的な取り消し）も記述できる。このＬＲＴはLong Running Transactionの略である。
【００１７】
既存の機器やソフトウェアの機能を定義済みアクティビティとして組み合わせてワークフローシステムを構築すると、業務に必要なアプリケーションプログラムを新規開発するのに比較して拡張性のあるシステムを短期間で実現することが可能となる。
【００１８】
このように、比較的大きなソフトウェアにおけるシステムの処理全体を更に詳細な単位に細分化したもので構築することを目的とした技術としては、例えば特許文献１に記載の技術がある。これは、比較的小さな処理を行う単位ワークフローを組み合わせて、全体として論理的な１つのワークフローを動的に組み立てて実行するというものである。
【００１９】
また、個別のソフトウェアを別の処理の全体から一部として取り扱うための技術としては、例えば特許文献２に記載の技術がある。これは、サービスのインタフェース中へシステムの遠隔手続きを定義しなくても、システムが提供する遠隔手続きを呼び出せるようにすることを目的としたものである。
【特許文献１】特開２００４−３６１９９３号公報
【特許文献２】特開平０６−０７５８９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、ワークフローシステムの処理全体を既存のソフトウェアや機器を活用して構成しようとした場合には、以下のような課題がある。
【００２１】
まず、従来のアプリケーションプログラムは、特定の機器やコンピュータに既に配備されているため、これをネットワークからワークフローシステムの一部としてアクセスできるようにしなければならないという課題がある。例えば、特許文献１に記載の発明では、個別ワークフローを組み合わせて全体ワークフローとして実行するのは、あくまでもそのワークフロー実行装置である。即ち、個別ワークフローの実行と全体ワークフローの実行を、アプリケーションプログラムとワークフロー実行プログラムの２つに分割することはできない。そのため、ワークフロープログラム実行装置とは異なる装置で稼動する従来のアプリケーションプログラムを、ワークフローシステムの全体処理に統合することはできない。
【００２２】
また、ワークフローシステムの中で取り扱うソフトウェアや機器は、ワークフローシステムが処理を取り扱う単位であるアクティビティとして振舞うことのできるような処理の構成で動作しなければならない。
【００２３】
更には、ワークフローシステムによって外部から制御されることを想定していない既存アプリケーションプログラムは、そもそもネットワークから各種の処理依頼を受け取り、処理結果をまたネットワーク上に返却するという機能そのものが欠如している。
【００２４】
このような既存のアプリケーションプログラムを、ワークフローシステムの一部であるアクティビティとして処理を行わせるには、アプリケーションプログラムをネットワークに対応することができるように改造するなどの処置を行う必要がある。
【００２５】
こうした、既存ソフトウェアにネットワーク対応の機能を追加するために用いることのできる技術として、例えば特許文献２に記載の技術がある。これは、クライアントサーバシステムにおいて、サービス（機能）を提供するサーバが呼び出されたときに、自動的に適切な外部の機能を探し出して代理で呼び出すというものである。
【００２６】
しかしながら、あるサービスの機能への要求を別の仮想的なサービスを通じて転送して呼び出しているのに過ぎない。従って、ワークフローシステムに適用しようとした場合、対象となるアプリケーションプログラム側において行う機能の処理単位が、ワークフローシステムが要求するアクティビティとしての処理の単位と合致していなければならない。例えば、ワークフローシステムにおいてワークフローの記述言語に従来技術であるＢＰＥＬ４ＷＳを用いた場合、ＢＰＥＬ４ＷＳはアクティビティに対してＸＭＬＷｅｂサービスとしての入出力をサポートすることを要求する。そのため、アプリケーションプログラム側でＸＭＬによる情報の入出力が実現されていなければ、いくら動的に処理を転送できたとしても、ワークフローシステムにおけるアクティビティとしてアプリケーションプログラムを取り扱うことはできない。
【００２７】
言い換えると、本方式では対応するアプリケーションプログラムが提供する機能のインタフェースを変えることができない。そのため、アクティビティとして取り扱えるようにすることができる既存アプリケーションはアクティビティとして振舞う場合の入出力情報の単位をもともと有していたものに限られてしまう。
【００２８】
本発明は、外部の装置から指示されたスクリプトプログラムを実行し、当該スクリプトプログラムに対応するアプリケーションの機能を実現する装置において、そのアプリケーションの機能をサービスとして外部の装置に提供可能とすることを目的とする。
【課題を解決するための手段】
【００２９】
本発明は、外部の装置から指示されたスクリプトプログラムを実行し、当該スクリプトプログラムに対応するアプリケーションの機能を実現する処理装置であって、
前記外部の装置に対して前記アプリケーションの機能をサービスとして提供するための情報を公開する公開手段と、
前記公開手段によって公開された情報に基づいて生成された前記外部の装置からの前記サービスに対する要求に応じて当該サービスを処理した結果を前記外部の装置へ提供する提供手段と、
を有することを特徴とする。
【００３０】
また、本発明は、アプリケーションの機能をサービスとして提供する処理装置に当該サービスを要求する要求装置であって、
前記処理装置が公開したアプリケーションの機能をサービスとして提供するための情報に基づいて当該サービスを要求するメッセージを生成する生成手段と、
前記生成手段によって生成されたメッセージに応じて前記処理装置が実行したサービスの結果を取得する取得手段と、
を有することを特徴とする。
【発明の効果】
【００３１】
本発明によれば、外部の装置から指示されたスクリプトプログラムを実行し、そのスクリプトプログラムに対応するアプリケーションの機能を実現する装置において、そのアプリケーションの機能をサービスとして外部の装置に提供することが可能となる。
【発明を実施するための最良の形態】
【００３２】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００３３】
［第１の実施形態］
第１の実施形態におけるワークフロー処理用機器及びアクティビティ処理用機器として機能するコンピュータ装置の構成を、図１に示すブロック図を参照して説明する。
【００３４】
図１は、本実施形態におけるコンピュータ装置の構成の一例を示すブロック図である。図１において、１０１はコンピュータ装置１００全体を制御するＣＰＵである。１０２は変更を必要としないプログラムやパラメータを格納するＲＯＭである。１０３は外部装置などから供給されるプログラムやデータを一時記憶するＲＡＭである。
【００３５】
１０４はコンピュータ装置１００に固定して設置されたハードディスクやメモリカード、或いはコンピュータ装置１００から着脱可能な外部記憶装置である。ここで、外部記憶装置は、フレキシブルディスク（ＦＤ）やコンパクトディスク（ＣＤ）などの光ディスク、磁気や光カード、ＩＣカード、メモリカードなどを含む。１０５はユーザからの操作を受け、データを入力するポインティングデバイスやキーボードなどの入力デバイス１０９との入力デバイスインタフェースである。
【００３６】
１０６はコンピュータ装置１００の保持するデータや供給されたデータを表示するためのモニタ１１０とのディスプレイインタフェースである。１０７はインターネット１１１などのネットワーク回線に接続するためのネットワークインタフェースである。１０８は１０１〜１０７の各ユニットを通信可能に接続するシステムバスである。
【００３７】
ここでアクティビティ処理用機器の概要を説明する前に、ＢＰＥＬ４ＷＳにおける定義済みアクティビティを説明する。アクティビティには、以下のようなものがある。
［invoke,reply,receiveアクティビティ］
プロセスが外部と対話するためのアクティビティ群であり、パートナーによって提供されたサービスを呼び出すのがinvokeである。また、自身がパートナーにサービスを提供するのに用いるのがreply/receiveである。
［assignアクティビティ］
バリアブル（ＸＭＬメッセージ）から他のバリアブル（ＸＭＬメッセージ）にデータをコピーしたり、XPath式を使用して新規にデータを作成したりするためのものである。１つ又は複数の＜copy＞要素を含む。＜copy＞要素は＜from＞と＜to＞要素を含み、＜from＞はXPathで修飾することができる。
［sequence,switch,pick,whileアクティビティ］
実行の制御を行うアクティビティ群である。内部のアクティビティを逐次実行するのがsequenceである。また、XPathで記述された条件式に基づいて条件分岐するのがswitchである。イベントハンドラを定義してそのうちのどれかを実行するのがpickである。XPathの条件式が真の間反復するのがwhileである。
［scope,flowアクティビティ］
例外処理などのスコープを定義するのがscopeである。fault handler、compensation handler、correrationSetなどに影響する。並列に処理を実行するのがflowである。links/linkによってフローグラフを構成できる。
【００３８】
ＢＰＥＬ４ＷＳはこうした定義済みのアクティビティと、外部のＷｅｂサービスの呼び出しを実現するアクティビティとを組み合わせることにより、Ｗｅｂサービスをアクティビティの単位としたワークフローの一連の処理を記述することができる。
【００３９】
次に、ワークフロー処理用機器とアクティビティ処理用機器で構成されるワークフローシステムにおける各機器のソフトウェア構成の概要を、図２を用いて説明する。
【００４０】
図２は、ワークフローシステムにおけるワークフロー処理用機器とアクティビティ処理用機器のソフトウェア構成を示す図である。２０１、２２１はアクティビティ処理用機器であり、ワークフロー全体の処理におけるアクティビティ（サービス）に対応する個別のアプリケーションプログラムを実行する。一方、２１０はワークフロー処理用機器であり、ワークフロー全体の処理を行う。
【００４１】
尚、それぞれの機器２０１、２１０、２２１はネットワーク２３０を介して相互に接続されている。また、それぞれの機器２０１、２１０、２２１を構成するハードウェアは、図１に示す構成をとる。
【００４２】
アクティビティ処理用機器２０１には、アプリケーションプログラム２０２と、ワークフロー制御実施部２０３と、これらのソフトウェアを動作させる基盤となるオペレーティングシステム２０４とが主要なソフトウェアとして含まれる。
【００４３】
ここで、アプリケーションプログラム２０２は、機器に搭載されている個別の実行可能なアプリケーションのプログラムである。ワークフロー制御実施部２０３は、第１の実施形態における主要な構成部分の一つであり、個別のアプリケーションプログラム２０２をワークフローにおけるアクティビティ（サービス）として外部に提供できるようにするためのソフトウェアである。オペレーティングシステム２０４は、公知のオペレーティングシステム（ＯＳ）で良く、その詳細な説明は省略する。
【００４４】
尚、アプリケーションプログラム２０２及びワークフロー制御実施部２０３の詳細は、図３を用いて更に説明する。
【００４５】
また、アクティビティ処理用機器２２１にも、アクティビティ処理用機器２０１と同様に、主要なソフトウェアが含まれる。アプリケーションプログラム２２２は、機器に搭載されている個別の実行可能なアプリケーションのプログラムである。ワークフロー制御実施部２２３は、個別のアプリケーションプログラム２２２をワークフローにおけるアクティビティ（サービス）として外部に提供できるようにするためのソフトウェアである。オペレーティングシステム２２４は、公知のオペレーティングシステム（ＯＳ）で良く、その詳細な説明は省略する。
【００４６】
このように、アクティビティ処理用機器２０１及び２２１は、１つのワークフローシステムにおいて複数存在していてもかまわない。その場合、それぞれの構成が異なっていても、主要な構成が同一であれば、本発明を適用することができる。
【００４７】
一方、ワークフロー処理用機器２１０には、ワークフロー制御要求部２１２と、ワークフロー処理実行部２１３と、これらのソフトウェアを動作させるための基盤となるオペレーティングシステム２１４とが主要なソフトウェアとして含まれる。
【００４８】
ここで、ワークフロー制御要求部２１２は、アプリケーションプログラム２０２又は２２２をアクティビティ（サービス）として機能させるためのワークフローメッセージを生成する。ワークフロー処理実行部２１３は、ワークフロー処理を実行する際にアクティビティがアクティビティ処理用機器の呼び出しであれば、生成されたワークフローメッセージをアクティビティ処理用機器に要求する。そして、アクティビティ処理用機器から、アプリケーションプログラム２０２又は２２２の処理結果を受信する。オペレーティングシステム２１４は、公知のオペレーティングシステム（ＯＳ）で良く、その詳細な説明は省略する。
【００４９】
尚、ワークフロー制御要求部２１２及びワークフロー処理実行部２１３の詳細は、図３を用いて更に説明する。
【００５０】
図２は、概要を示すために簡略化して表現しているが、各機器には周辺機器を処理するためのドライバや各種のユーティリティ、ネットワーク処理用のソフトウェアなどが搭載されている場合がある。また、これらは基本的に全て各機器に存在するオペレーティングシステムが管理するソフトウェアとして、オペレーティングシステムに含まれているものとする。
【００５１】
尚、アクティビティ処理用機器２０１又は２２１におけるアプリケーションプログラム２０２又は２２２は１つに限らず、複数存在していても良い。これは、単一の機器の機能や性能、仕様が異なる複数のアプリケーションプログラムがアクティビティ処理用機器に搭載されている状況を示すものである。例えば、アプリケーションプログラム２０２が、文書処理の機能を提供する文書処理用アプリケーションプログラムと、画像処理の機能を提供する画像処理用アプリケーションプログラムとの組み合わせでも良い。
【００５２】
以下では、複数のアプリケーションプログラムを一括してアプリケーションプログラムと呼称する。また、ワークフロー処理用機器２１０についても、ワークフローシステムの全体に対して図２に示すように、単一であっても、或いは複数であっても良い。
【００５３】
次に、アクティビティ処理用機器２０１とワークフロー処理用機器２１０の詳細な構成を、図３を用いて説明する。アクティビティ処理用機器２２１の詳細な構成は、アクティビティ処理用機器２０１と同様であり、その説明は省略する。
【００５４】
図３は、アクティビティ処理用機器及びワークフロー処理用機器の詳細な構成を示す図である。アクティビティ処理用機器２０１に搭載されるアプリケーションプログラム２０２には、更にスクリプトプログラム実行モジュール３０１と、アプリケーション機能モジュール３０２とが含まれる。ここで、アプリケーション機能モジュール３０２とは、当該アプリケーションプログラムの主要な機能を実行する部分である。
【００５５】
例えば、アプリケーションプログラム２０２が文書処理用アプリケーションプログラムであれば、文書処理の機能を実行するが、アプリケーションプログラム２０２が画像処理用アプリケーションであれば、画像処理の機能を実行する。そして、対話的なアプリケーションプログラムであれば、通常のユーザインタフェースを通じたユーザとの対話処理の機能を実行する。
【００５６】
スクリプトプログラム実行モジュール３０１は、アプリケーションプログラム２０２を構成する部分であり、アプリケーション機能モジュール３０２を外部より与えたスクリプトプログラムで制御する場合に、このスクリプトプログラムの実行や管理を行う。
【００５７】
現在、多くの対話型アプリケーションでは、定型的な業務を自動化することを目的として、アプリケーションの固有機能であるアプリケーション機能モジュール３０２を、外部のプログラムであるスクリプトプログラムによって制御する機能を有している。
【００５８】
複数のアプリケーションプログラムの提供者が異なる場合には、実際にスクリプトプログラムの記述を司る計算機言語としての文法やライブラリといった実装も相互に異なることが多い。しかし、適切なスクリプトプログラムを作成すれば、アプリケーションプログラム２０２を適宜制御できるようになっている点での機能は共通している。そこで、アプリケーションプログラム２０２の内部においては、スクリプトプログラム実行モジュール３０１はアプリケーション機能モジュール３０２をスクリプトプログラムの実行を通じて制御するという関係となっている。
【００５９】
このアクティビティ処理用機器２０１を構成するもう一つの主要なソフトウェアは、ワークフロー制御実施部２０３である。ワークフロー制御実施部２０３には、アプリケーションプログラム実行モジュール３０３、アプリケーションプログラムインタフェース公開モジュール３０４、ワークフローメッセージ処理モジュール３１４が含まれる。
【００６０】
アプリケーションプログラム実行モジュール３０３は、アプリケーション機能モジュール３０２が提供する機能をワークフロー処理用機器２１０が解釈可能な形式でアプリケーションプログラムインタフェース公開モジュール３０４に公開させる。
【００６１】
また、アプリケーションプログラム実行モジュール３０３は、ワークフローメッセージ３２０の内容に基づき、アプリケーション機能モジュール３０２が実際の処理に必要となる入力情報３２２の変換を実施する機能も有する。このワークフローメッセージ３２０は、公開されたアプリケーションが提供する機能に基づいてワークフロー処理用機器２１０が生成したものである。
【００６２】
ワークフローメッセージ処理モジュール３１４は、ワークフロー処理用機器２１０で生成されたワークフローメッセージ３２０を受信し、格納されたスクリプトプログラム３２１をスクリプトプログラム実行モジュール３０１に転送して実行可能にする。そして、アプリケーションプログラム実行モジュール３０３を通じてアプリケーション機能モジュール３０２を呼び出し、ワークフローメッセージ３２０にて要求された機能をスクリプトプログラム３２１を通じて実行し、その結果を取得する。
【００６３】
アプリケーションプログラムインタフェース公開モジュール３０４は、アプリケーションプログラム２０２が提供する機能であるアプリケーション機能モジュール３０２が実施可能な各種の処理をインタフェース情報として公開する。この公開は、アプリケーションプログラム２０２が提供する機能をワークフローシステム全体からみたアクティビティとして取り扱えるようにするためのものである。
【００６４】
ここでは、アプリケーションプログラムインタフェース公開モジュール３０４は、アプリケーションプログラム２０２がワークフローを構成する処理として適切な入出力情報を得ることができるようなインタフェース情報を構成し、これを外部に公開する。
【００６５】
インタフェース情報とは、アプリケーションプログラム２０２を特定することのできるアプリケーションプログラム情報と、入力仕様情報と、出力仕様情報とを対応させて記述したものである。尚、入力仕様情報は、処理対象となるデータの仕様及び処理内容を決定するためのパラメータの仕様を示す情報であり、出力仕様情報は処理の結果の仕様を示す情報である。
【００６６】
これにより、アクティビティ処理用機器２０１に対して、外部よりネットワークを経由してアプリケーションプログラム２０２の実行を要求することが可能となる。このとき、実際に処理を実行するアプリケーション機能モジュール３０２が必要とする情報の表現形式と、アプリケーションプログラムインタフェース公開モジュール３０４が公開するインタフェース情報の表現形式は異なっていてもかまわない。
【００６７】
任意のアプリケーション機能モジュール３０２がファイルシステム上にあるファイルを処理する機能を有している場合を考える。この場合、そのアプリケーション機能モジュール３０２は入力情報として処理の対象となるファイルを特定するためのファイル名を必要とする。しかし、アプリケーションプログラムインタフェース公開モジュール３０４が公開するインタフェース情報では、処理対象のファイルの内容そのものだけが含まれていても良い。即ち、ワークフローメッセージ３２０には、入力情報３２２にファイル名の情報が含まれておらず、その対象ファイルの内容に関する情報だけが含まれていても良い。
【００６８】
この場合、アプリケーションプログラム実行モジュール３０３が送信されてきたワークフローメッセージ３２０の入力情報の内容から一時的なファイルを生成し、そのファイル名をアプリケーション機能モジュール３０２に入力情報として渡すという処理を行う。
【００６９】
ここで、ワークフローメッセージ３２０はＳＯＡＰ仕様に基づく、ＸＭＬメッセージであり、ワークフローメッセージ３２０内部にその情報を識別するための固有の名前空間を用いた拡張情報として記載される。
【００７０】
一方、ワークフロー処理用機器２１０におけるワークフロー制御要求部２１２には、スクリプトプログラム事前処理モジュール３１２と、ワークフローメッセージ生成モジュール３１３とが含まれる。そして、ワークフロー処理実行部２１３には、ワークフロープログラム記述３１０と、ワークフロープログラムエンジン３１１とが含まれる。
【００７１】
ワークフロープログラム記述３１０とは、複数のアクティビティ処理用機器が公開する処理内容を組み合わせることで構成される一連の処理をワークフローとして表現することを特徴とするワークフロープログラムの記述である。ワークフロープログラム記述３１０が表現可能なアクティビティには、ＢＰＥＬ４ＷＳなどの従来存在するワークフローマネージメントシステム技術に準じた処理内容が指定できる。即ち、各アクティビティ処理用機器の機能を呼び出すこと以外にも、条件判断による処理の分岐、処理の一時的な保留、処理の中断や再開などといったアクティビティも記述可能である。
【００７２】
ワークフロープログラム記述３１０は、一つのワークフロー処理用機器２１０において複数存在しても良い。一つのワークフロープログラム記述３１０により一つの業務を示す場合もあれば、一つの業務を複数のワークフロープログラム記述３１０で構成する場合もある。
【００７３】
また、ワークフロープログラム記述３１０におけるワークフロープログラムは、ワークフロープログラムエンジン３１１にて実行される。
【００７４】
ここで、スクリプトプログラム事前処理モジュール３１２は、ワークフロープログラム記述３１０によって記述されたワークフロープログラムを解析する。そしてワークフロープログラム上で実行対象となっているアプリケーション機能モジュール３０２に対応したスクリプトプログラムを実行前に事前に決定し、ワークフロープログラム内部に予め当該スクリプトプログラムを格納しておく。
【００７５】
そして、スクリプトプログラム事前処理モジュール３１２は、ワークフローメッセージ生成モジュール３１３に対してメッセージ作成要求を発行する。ワークフローメッセージ３２０は、実際に処理の対象となるアクティビティ処理用機器におけるアプリケーションプログラム実行モジュール３０３に処理を要求するためのものである。
【００７６】
このワークフローメッセージ生成モジュール３１３は、スクリプトプログラム事前処理モジュール３１２が格納していたスクリプトプログラム３２１を必要に応じて取得する。そして、スクリプトプログラム３２１をワークフロープログラムエンジン３１１が実行中のワークフロープログラム記述３１０より取得した入力情報３２２及び出力情報３２３と共に、ワークフローメッセージ３２０に格納する。その後、ワークフローメッセージ生成モジュール３１３は、生成したワークフローメッセージ３２０をワークフロープログラムエンジン３１１に対して返却する。
【００７７】
ワークフローメッセージ３２０は、ワークフローにおけるアクティビティ（サービス）をワークフロー処理用機器２１０がアクティビティ処理用機器（２０１、２２１）へ要求するためのメッセージである。そして、ワークフロー処理実行部２１３によってワークフローメッセージ処理モジュール３１４へ送信され、アプリケーションプログラム実行モジュール３０３が受信する。
【００７８】
また、ワークフローメッセージ３２０には、ワークフロー処理用機器２１０がアプリケーションプログラム２０２のアプリケーション機能モジュール３０２が提供するアプリケーションの機能を使用するのに必要な情報が格納されている。つまり、アプリケーションプログラム２０２がスクリプトプログラム実行モジュール３０１においてアプリケーション機能モジュール３０２を制御するためのスクリプトプログラム３２１が含まれる。更に、当該処理の処理対象となるデータと処理内容を決定するためのパラメータ情報からなる入力情報３２２と、処理の結果を示すための出力情報３２３とが含まれる。
【００７９】
ここで、上述した構成を有するワークフローシステムにおける各機器の処理を、図４〜図７を用いて説明する。図４及び図５はワークフロー処理を実際に実行する前の準備段階での処理について、各機器における各ソフトウェアがどのような処理を行うのかを示している。また、図６及び図７は、ワークフロー処理を実際に実行する段階での処理について、各機器における各ソフトウェアがどのような処理を行うのかを示している。
【００８０】
図４は、ワークフロープログラムの処理を実行する前の段階である準備としてアクティビティ処理用機器において実行される処理を示すフローチャートである。ここでは、既にアクティビティ処理用機器２０１、２２１に、処理の対象となる既存のアプリケーションプログラムが配備されており、アプリケーションプログラム２０２の構成が完了しているものとする。即ち、アプリケーション機能モジュール３０２が既にアクティビティ処理用機器２０１、２２１に存在する場合の処理である。
【００８１】
まず、ステップＳ４０１で、アプリケーションプログラム実行モジュール３０３がアプリケーション機能モジュール３０２からアクティビティ処理用機器にて処理可能な機能を取得する。
【００８２】
次に、ステップＳ４０２で、アプリケーションプログラム実行モジュール３０３は取得した処理可能な機能の情報をアプリケーションプログラムインタフェース公開モジュール３０４に通知する。
【００８３】
次に、ステップＳ４０３で、通知を受けたアプリケーションプログラムインタフェース公開モジュール３０４が指定された機能を外部より実行可能にするためのインタフェース情報を生成して公開する。
【００８４】
そして、ステップＳ４０４で、対象となるアプリケーションプログラム２０２が残っているか否かを判定する。判定の結果、残っていればステップＳ４０１に処理を戻し、上述の処理を繰り返し、残りがなくなると、この処理を終了する。
【００８５】
図５は、ワークフロープログラムの処理を実行する前の段階である準備としてワークフロー処理用機器において実行される処理を示すフローチャートである。ここでは、ワークフロー処理実行部２１３に対して、ワークフロープログラム記述３１０が既に配備された後の処理である。
【００８６】
まず、ステップＳ５０１で、スクリプトプログラム事前処理モジュール３１２がワークフロー処理実行部２１３に格納されているワークフロープログラム記述３１０を読み込み、解析する。
【００８７】
次に、ステップＳ５０２で、スクリプトプログラム事前処理モジュール３１２はワークフロープログラム記述３１０を構成するワークフロープログラムのアクティビティを順次取り出す。そして、そのアクティビティが外部にあるアクティビティ処理用機器２０１、２２１を呼び出すためのアクティビティ記述であるか否かを判定する。
【００８８】
判定した結果、そのアクティビティがアクティビティ処理用機器２０１、２２１を呼び出すものであった場合は、ステップＳ５０３へ処理を進める。ステップＳ５０３で、当該機器に搭載されているアプリケーションプログラムインタフェース公開モジュール３０４にネットワークを通じてアクセスする。そして、アプリケーションプログラムインタフェース公開モジュール３０４から当該機器のアプリケーション機能モジュール３０２が処理可能なインタフェース情報を取得する。
【００８９】
ここで取得するインタフェース情報には、アクティビティ処理用機器２０１、２２１に処理を依頼する際に、処理を実際に実行するアプリケーション機能モジュール３０２を特定することのできるアプリケーションプログラム情報が含まれる。更に、処理対象となるデータの仕様及び処理内容を決定するためのパラメータの仕様情報である入力仕様情報と、処理の結果の仕様を示す出力仕様情報とを対応させた情報とが含まれる。
【００９０】
次に、ステップＳ５０４で、取得されたアプリケーションプログラム情報と、入力仕様情報と、出力仕様情報とに基づき、当該アプリケーション機能モジュール３０２に所望の処理を行う際に必要となるスクリプトプログラムを決定する。この処理は、ワークフロー制御要求部２１２におけるスクリプトプログラム事前処理モジュール３１２にて行われる。
【００９１】
次に、ステップＳ５０５で、ステップＳ５０４で決定されたスクリプトプログラムを、ステップＳ５０３で対象となったアクティビティの一部として保持しておく。これ以降、ワークフロー処理実行部２１３のワークフロープログラムエンジン３１１が実行する際に、そのスクリプトプログラムを参照することができる。
【００９２】
上述のステップＳ５０２でＮＯの場合、またステップＳ５０５の処理が終了した場合は、ステップＳ５０６へ処理を進め、ワークフロープログラム記述３１０のアクティビティを全て処理したか否かを判定する。ここで、アクティビティを全て処理していなければ、ステップＳ５０２に処理を戻し、上述の処理を繰り返し、全て処理したならば、この処理を終了する。
【００９３】
図６は、ワークフロープログラムの処理を実際に実行する段階において、ワークフロー処理用機器が実行する処理を示すフローチャートである。まず、ステップＳ６０１で、ワークフロー処理実行部２１３のワークフロープログラム記述３１０に記述されたワークフロープログラムがワークフロープログラムエンジン３１１にロードされ、ワークフロー処理の実行が開始される。
【００９４】
次に、ステップＳ６０２で、ワークフロープログラムエンジン３１１は、ワークフロープログラム記述３１０から実行するアクティビティを取得する。次に、ステップＳ６０３で、取り出したアクティビティが外部にあるアクティビティ処理用機器を呼び出すためのアクティビティか否かを判定する。判定した結果、実行すべきアクティビティが機器呼び出しのアクティビティでなかった場合は、ステップＳ６０４へ処理を進め、そのアクティビティを実行する。ここで、機器呼び出しのアクティビティでないとは、条件判断による処理の分岐、処理の一時的な保留、処理の中断や再開などのアクティビティである。
【００９５】
一方、ステップＳ６０３で判定した結果、実行すべきアクティビティが機器呼び出しのアクティビティであった場合は、ステップＳ６０５へ処理を進める。ステップＳ６０５では、ワークフロープログラムエンジン３１１がワークフローメッセージ生成モジュール３１３に対して該当するアクティビティ処理用機器２０１が提供する機能を呼び出すためのワークフローメッセージ３２０の作成を依頼する。依頼を受けたワークフローメッセージ生成モジュール３１３は、まず、空のワークフローメッセージ３２０を生成する。そして、実行中のワークフロープログラム記述３１０から、先行する準備段階であるステップＳ５０３〜Ｓ５０５で準備された入力情報及び出力情報の仕様に基づく入力情報３２２及び出力情報３２３をワークフローメッセージ３２０に格納する。
【００９６】
次に、ステップＳ６０６で、ステップＳ５０３〜Ｓ５０５で決定され、保持されているスクリプトプログラム３２１をワークフローメッセージ３２０に格納する。これにより、ワークフローメッセージ３２０には、ワークフロー処理用機器２１０がアプリケーション機能モジュール３０２が提供するアプリケーションの機能を使用するために必要な情報が格納される。即ち、スクリプトプログラム３２１はスクリプトプログラム実行モジュール３０１がアプリケーション機能モジュール３０２を制御するためのものである。入力情報３２２は、当該処理の処理対象となるデータと処理内容を決定するためのパラメータ情報であり、出力情報３２３は処理の結果を示すための情報である。
【００９７】
次に、ステップＳ６０７で、ワークフロープログラムエンジン３１１は、生成されたワークフローメッセージ３２０を、ネットワークを介して該当するアクティビティ処理用機器のアプリケーションプログラム実行モジュール３０３へ送信する。そして、ステップＳ６０８で、ワークフロープログラムエンジン３１１は、アプリケーションプログラム実行モジュール３０３から処理の結果を受信する。
【００９８】
尚、ステップＳ６０７、Ｓ６０８のアクティビティ処理用機器のアプリケーションプログラム実行モジュール３０３が中心となって実行する処理については、図７を用いて更に詳述する。
【００９９】
次に、ステップＳ６０９で、ワークフロープログラムエンジン３１１がアクティビティを全て実行したか否かを判定し、実行していなければ、ステップＳ６０２に処理を戻し、上述の処理を繰り返す。また、ワークフロープログラムエンジン３１１がアクティビティを全て実行した場合は、この処理を終了する。
【０１００】
図７は、ワークフロープログラムの処理を実際に実行する段階において、アクティビティ処理用機器において実行される処理を示すフローチャートである。この処理は、図６に示すステップＳ６０７、Ｓ６０８のワークフロー処理用機器２１０よりワークフローメッセージを受信した際に、アプリケーションプログラム実行モジュール３０３で実行される処理である。
【０１０１】
まず、ステップＳ７０１で、アクティビティ処理用機器のワークフローメッセージ処理モジュール３１４が、ワークフロー処理用機器２１０のワークフロープログラムエンジン３１１からワークフローメッセージ３２０を受信する。続くステップＳ７０２で、受信したワークフローメッセージ３２０より、上述のスクリプトプログラム３２１と、入力情報３２２と、出力情報３２３とを分離する。
【０１０２】
次に、ステップＳ７０３で、アプリケーションプログラム実行モジュール３０３がワークフローメッセージ処理モジュール３１４からスクリプトプログラム３２１を受け取り、スクリプトプログラム実行モジュール３０１へ転送する。このとき、ステップＳ７０３で分離された入力情報３２２も入力パラメータとしてスクリプトプログラム実行モジュール３０１に渡される。
【０１０３】
次に、ステップＳ７０４で、アプリケーションプログラム実行モジュール３０３がアプリケーションプログラム２０２の実行を指示すると、アプリケーションプログラムの実行を開始する。
【０１０４】
次に、ステップＳ７０５で、スクリプトプログラム実行モジュール３０１が転送されたスクリプトプログラム３２１の実行を開始する。指定されたスクリプトプログラム３２１の実行が終了すると、ステップＳ７０６で、実行結果を出力情報３２３に格納する。
【０１０５】
そして、ステップＳ７０７で、更新された出力情報３２３を、ワークフローメッセージ３２０の処理結果としてアプリケーションプログラム実行モジュール３０３へ転送する。そして、アプリケーションプログラム実行モジュール３０３は、その処理結果を、ワークフローメッセージ処理モジュール３１４を介してワークフロープログラムエンジン３１１に返答する。
【０１０６】
第１の実施形態によれば、既存のアプリケーションプログラムを、既に配備されて動作している機器を変更することなく、ネットワークからワークフローシステムの一部であるアクティビティとして活用することができる。
【０１０７】
また、アプリケーションプログラムに、ネットワークから各種の処理依頼を受け取り、処理結果を返却する機能が欠如していても、アプリケーションプログラム自体を改造することなく、ネットワークへの対応が可能となる。
【０１０８】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態を詳細に説明する。
【０１０９】
第２の実施形態におけるワークフロー処理用機器及びアクティビティ処理用機器として機能するコンピュータ装置の構成は、図１を用いて説明した第１の実施形態と同様であり、その説明は省略する。
【０１１０】
また、ワークフローシステムにおけるワークフロー処理用機器とアクティビティ処理用機器のソフトウェア構成の概要も、図２を用いて説明した第１の実施形態と同様であり、その説明は省略する。
【０１１１】
図８は、第２の実施形態におけるアクティビティ処理用機器及びワークフロー処理用機器の詳細な構成を示す図である。尚、図３を用いて説明した第１の実施形態と同じ機能を有するものには同じ符号を付し、その説明は省略する。
【０１１２】
図８に示すように、第２の実施形態では、アクティビティ処理用機器２０１、２２１のワークフロー制御実施部２０３に、アプリケーションプログラム判定モジュール８０１とスクリプトプログラム要求モジュール８０３とを有する。そして、ワークフロー処理用機器２１０のワークフロー制御要求部２１２に、スクリプトプログラム決定モジュール８０４とスクリプトプログラム保持モジュール８０２とを有する。
【０１１３】
まず、アプリケーションプログラム判定モジュール８０１は、複数のアプリケーションプログラム２０２を実行時に認識し、それぞれが実行可能なスクリプトプログラム３２１を個別に判定するものである。
【０１１４】
次に、スクリプトプログラム保持モジュール８０２は、複数のアプリケーションプログラム２０２に対応する、異なった複数のスクリプトプログラム３２１を保持する。これにより、複数のアプリケーションプログラムインタフェース公開モジュール３０４によって公開される処理の内容をそれぞれ実現することができる。
【０１１５】
次に、スクリプトプログラム要求モジュール８０３は、スクリプトプログラム保持モジュール８０２に対して、アプリケーションプログラム判定モジュール８０１で判定されたアプリケーションプログラムに対する情報を送信する。また、スクリプトプログラム要求モジュール８０３は、アプリケーションプログラムインタフェース公開モジュール３０４で指定された処理内容に関する情報を送信する。
【０１１６】
次に、スクリプトプログラム決定モジュール８０４は、スクリプトプログラム要求モジュール８０３から情報を受信し、スクリプトプログラム保持モジュール８０２より適切なスクリプトプログラム３２１を決定する。
【０１１７】
これにより、第１の実施形態では、ステップＳ５０４で静的に決定していたスクリプトプログラム３２１を、第２の実施形態ではワークフロープログラム処理の実行時においても格納することができる。
【０１１８】
即ち、実際のアクティビティ処理の主体となるアプリケーション機能モジュール３０２をアプリケーションプログラム判定モジュール８０１によってワークフロー処理の実行時に動的に判定する。これにより、アプリケーションプログラム２０２が実行可能なスクリプトプログラム３２１を実行時に決定し、ワークフローメッセージ３２０に当該スクリプトプログラム３２１を動的に格納することを可能とするものである。
【０１１９】
図９は、第２の実施形態における処理の特徴的な部分を示すフローチャートである。この処理は、第１の実施形態における図６に示すステップＳ６０６の処理に代わるもので、全体の処理は図６に示す通りである。即ち、図９に示す処理全体は図６に示すステップＳ６０６を置き換えるものとなる。
【０１２０】
まず、ステップＳ９０１で、ワークフローメッセージ処理モジュール３１４が、ワークフローメッセージ３２０を受信し、スクリプトプログラム要求モジュール８０３に対してスクリプトプログラム更新の要求を発行する。
【０１２１】
次に、ステップＳ９０２で、スクリプトプログラム要求モジュール８０３からの要求に応じてアプリケーションプログラム判定モジュール８０１が実行可能なアプリケーション機能モジュール３０２を判定する。
【０１２２】
次に、ステップＳ９０３で、スクリプトプログラム要求モジュール８０３がステップＳ９０２で判定された結果を、ネットワークを通じてスクリプトプログラム決定モジュール８０４に送信する。
【０１２３】
次に、ステップＳ９０４で、スクリプトプログラム決定モジュール８０４は要求された内容からスクリプトプログラム保持モジュール８０２によって保持されているスクリプトプログラムを検索する。そして、適切であるスクリプトプログラムをスクリプトプログラム３２１として選択する。
【０１２４】
次に、ステップＳ９０５で、スクリプトプログラム決定モジュール８０４が選択されたスクリプトプログラム３２１を返却する。そして、ステップＳ９０６で、スクリプトプログラム要求モジュール８０３は、選択されたスクリプトプログラム３２１をワークフローメッセージ処理モジュール３１４に通知する。
【０１２５】
一方、通知を受けたワークフローメッセージ処理モジュール３１４は、そのスクリプトプログラム３２１をワークフローメッセージ３２０に格納した場合と同一に扱うことで、処理を続行することができる。
【０１２６】
尚、本発明は複数の機器（例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用しても良い。
【０１２７】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【０１２８】
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１２９】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１３０】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【０１３１】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１３２】
【図１】本実施形態におけるコンピュータ装置の構成の一例を示すブロック図である。
【図２】ワークフローシステムにおけるワークフロー処理用機器とアクティビティ処理用機器のソフトウェア構成を示す図である。
【図３】アクティビティ処理用機器及びワークフロー処理用機器の詳細な構成を示す図である。
【図４】ワークフロープログラムの処理を実行する前の段階である準備としてアクティビティ処理用機器において実行される処理を示すフローチャートである。
【図５】ワークフロープログラムの処理を実行する前の段階である準備としてワークフロー処理用機器において実行される処理を示すフローチャートである。
【図６】ワークフロープログラムの処理を実際に実行する段階において、ワークフロー処理用機器が実行する処理を示すフローチャートである。
【図７】ワークフロープログラムの処理を実際に実行する段階において、アクティビティ処理用機器において実行される処理を示すフローチャートである。
【図８】第２の実施形態におけるアクティビティ処理用機器及びワークフロー処理用機器の詳細な構成を示す図である。
【図９】第２の実施形態における処理の特徴的な部分を示すフローチャートである。
【符号の説明】
【０１３３】
１００  コンピュータ装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  外部記憶装置
１０５  入力デバイスインタフェース
１０６  ディスプレイインタフェース
１０７  ネットワークインタフェース
１０８  システムバス
１０９  入力デバイス
１１０  モニタ
１１１  インターネット
２０１  アクティビティ処理用機器
２０２  アプリケーションプログラム
２０３  ワークフロー制御実施部
２０４  オペレーティングシステム
２１０  ワークフロー処理用機器
２１２  ワークフロー制御要求部
２１３  ワークフロー処理実行部
２１４  オペレーティングシステム
２２１  アクティビティ処理用機器
２２２  アプリケーションプログラム
２２３  ワークフロー制御実施部
２１４  オペレーティングシステム
【図１】
2010027007.tif 000003
【図２】
2010027007.tif 000004
【図３】
2010027007.tif 000005
【図４】
2010027007.tif 000006
【図５】
2010027007.tif 000007
【図６】
2010027007.tif 000008
【図７】
2010027007.tif 000009
【図８】
2010027007.tif 000010
【図９】
2010027007.tif 000011