(57)【要約】【課題】ネットワーク上に散在する複数のサーバ間で文書を受け渡しながらその文書に対する処理を実行するシステムにおいて、その処理で出力される文書に対してユーザの電子署名を施す。【解決手段】ユーザが、「スキャンした原稿から、サーバＡ２２で先頭ページのデータのみを取り出し、その結果得た先頭ページのファイルに対し署名を施した上で、サーバＣ２６から所定宛先に送信する」という連携ジョブを複合機１０から入力したとする。連携処理サーバ２０は、サーバＡ２２から受け取った先頭ページのファイルをサーバＣ２６に送る前に、複合機１０に送ってユーザの電子署名を依頼する。複合機１０は、ユーザが挿入したＩＣカードなどを用いてそのファイルに対しユーザの秘密鍵による電子署名を付し、連携処理サーバ２０に返す。連携処理サーバ２０は、この署名済みのファイルをサーバＣ２６に送り、所定宛先に送信させる。【選択図】        図１
2004151897.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上のジョブ処理装置を用い、ジョブ処理を連携して実現されるサービスを実行するジョブ処理制御装置であって、
サービスの出力結果に対して、サービス発行元の電子署名を施すか否かを決定する決定手段と、
前記決定手段により電子署名を施すと決定された場合、サービスの処理結果を出力するジョブ処理の対象となる処理対象データに、前記サービス発行元の電子署名を施すための処理を実行する署名手段と、
を備えることを特徴とするジョブ処理制御装置。
【請求項２】
前記決定手段は、サービスの実行を指示したユーザの指示によって決定することを特徴とする請求項１記載のジョブ処理制御装置。
【請求項３】
サービスの実行が指示されたサービス発行元装置から、サービスの処理内容が記述された指示書データを入力する指示書データ入力手段を備え、
前記決定手段は、前記指示書データ入力手段により入力された指示書データにサービス発行元の電子署名が施されている場合、サービスの出力結果に対して電子署名を施すと決定することを特徴とする請求項１記載のジョブ処理制御装置。
【請求項４】
サービスの実行が指示されたサービス発行装置から、サービスを実現するジョブ処理の対象となる処理対象データを入力する処理対象データ入力手段を備え、
前記決定手段は、前記処理対象データ入力手段により入力された処理対象データにサービス発行元の電子署名が施されている場合、サービスの出力結果に対して電子署名を施すと決定することを特徴とする請求項１記載のジョブ処理制御装置。
【請求項５】
前記署名手段は、サービスが発行されたサービス発行装置に対して処理対象データを送信し、前記処理対象データにサービス発行元の電子署名を施した結果を受信することを特徴とする請求項１記載のジョブ処理制御装置。
【請求項６】
前記署名手段は、ネットワーク上の署名サーバに対して前記処理対象データを転送し、前記処理対象データにサービス発行元の電子署名を施した結果を受信することを特徴とする請求項１記載のジョブ処理制御装置。
【請求項７】
前記サービス発行元の電子署名とは、サービスの実行を指示したユーザの電子署名であることを特徴とする請求項１記載のジョブ処理制御装置。
【請求項８】
前記サービス発行元の電子署名とは、サービスの実行が指示されたサービス発行装置の電子署名であることを特徴とする請求項１記載のジョブ処理制御装置。
【請求項９】
ネットワーク上のジョブ処理装置を用い、ジョブ処理を連携して実現されるサービスを実行するジョブ処理制御方法であって、
サービスの出力結果に対して、サービス発行元の電子署名を施すか否かを決定する決定ステップと、
前記決定ステップにより電子署名を施すと決定された場合、サービスの処理結果を出力するジョブ処理の対象となる処理対象データに、前記サービス発行元の電子署名を施すための処理を実行する署名処理ステップと、
を含むジョブ処理制御方法。
【請求項１０】
前記決定ステップでは、サービスの実行を指示したユーザの指示によって決定することを特徴とする請求項９記載のジョブ処理制御方法。
【請求項１１】
サービスの実行が指示されたサービス発行元装置から、サービスの処理内容が記述された指示書データを入力する指示書データ入力ステップを更に含み、
前記決定ステップでは、前記指示書データ入力ステップにより入力された指示書データにサービス発行元の電子署名が施されている場合、サービスの出力結果に対して電子署名を施すと決定することを特徴とする請求項９記載のジョブ処理制御方法。
【請求項１２】
サービスの実行が指示されたサービス発行装置から、サービスを実現するジョブ処理の対象となる処理対象データを入力する処理対象データ入力ステップを更に含み、
前記決定ステップでは、前記処理対象データ入力ステップにより入力された処理対象データにサービス発行元の電子署名が施されている場合、サービスの出力結果に対して電子署名を施すと決定することを特徴とする請求項９記載のジョブ処理制御方法。
【請求項１３】
前記署名処理ステップでは、サービスが発行されたサービス発行装置に対して処理対象データを送信し、前記処理対象データにサービス発行元の電子署名を施した結果を受信することを特徴とする請求項９記載のジョブ処理制御方法。
【請求項１４】
前記署名処理ステップでは、ネットワーク上の署名サーバに対して前記処理対象データを転送し、前記処理対象データにサービス発行元の電子署名を施した結果を受信することを特徴とする請求項９記載のジョブ処理制御方法。
【請求項１５】
前記サービス発行元の電子署名とは、サービスの実行を指示したユーザの電子署名であることを特徴とする請求項９記載のジョブ処理制御方法。
【請求項１６】
前記サービス発行元の電子署名とは、サービスの実行が指示されたサービス発行装置の電子署名であることを特徴とする請求項９記載のジョブ処理制御方法。
【請求項１７】
コンピュータシステムを、ネットワーク上のジョブ処理装置を用いジョブ処理を連携して実現されるサービスを実行するジョブ処理制御装置、として機能させるためのプログラムであって、前記コンピュータシステムに、
サービスの出力結果に対して、サービス発行元の電子署名を施すか否かを決定する決定ステップと、
前記決定ステップにより電子署名を施すと決定された場合、サービスの処理結果を出力するジョブ処理の対象となる処理対象データに、前記サービス発行元の電子署名を施すための処理を実行する署名処理ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上に存在する様々なサービスを連携させることで、多様な連携処理を実現する連携サービス処理のための技術に関し、特に連携サービス処理におけるセキュリティ技術に関する。
【０００２】
【従来の技術】
スキャナ、ファクシミリ装置、プリンタ、複写機、及びそれらの機能を統合した複合機をＬＡＮ（ローカルエリアネットワーク）に接続し、パーソナルコンピュータやメールサーバなどの情報処理装置と連携させ、オフィス作業用の各種サービスを提供するワークフローシステムが提案されている。
【０００３】
また近年、インターネット上に散在する各種ウェブアプリケーションを連携させる技術が提案されている。インターネット上にある多様な提供者が提供するアプリケーションサービスを連結して１つのシステムを構成できると、様々な既存サービスを利用することができるのでシステム開発コストが大幅に低減できると期待されている。また、このような連携的なサービスを実現するための共通の基盤としてＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等の言語が注目されている。
【０００４】
また、従来のワークフローシステムとしては、特許文献１や特許文献２、特許文献３に示されるものが知られている。
【０００５】
【特許文献１】
特開平０８−１２３７４４号公報
【特許文献２】
特開２００２−０９９６８６号公報
【特許文献３】
特開２００１−２８２９７０号公報
【０００６】
【発明が解決しようとする課題】
インターネット上のサービスを利用してワークフローを構成する場合には、処理対象や処理結果の文書がインターネット上を流れることになる。しかしながら、従来のワークフローシステムでは、このようなネットワークを流れる文書のセキュリティに考慮を払っていない。
【０００７】
また、このように各種のサービスを連携させて１つの処理を実現するシステムの場合、ユーザの電子署名をどのように扱うかが問題となる。
【０００８】
例えば、ユーザが入力した文書に対して自分の電子署名を付したとしても、それをネットワーク上のサービスに送って処理させていくと、途中のサービスでの処理のためにその文書が復号されて電子署名が失われたり、或いは処理の結果電子署名の対象である文書の内容が変わり、最初にユーザが付した電子署名が意味をなさなくなってしまったりする問題がある。
【０００９】
また、このようなシステムでは、一連のサービスの途中でネットワーク上のサービスが取得した文書が最終的な処理結果文書に含まれる場合がある。しかし、そのようにユーザが操作する装置内にない文書には、従来のシステムでは電子署名を施すことができない。
【００１０】
本発明は、このような問題に鑑みなされたものであり、ワークフローのように複数の装置が連携して一連の処理を実現するシステムにおいて、ユーザが電子署名を施したい文書、あるいはサービスとしてユーザの署名やサービス発行装置の署名を必要とするデータに対して適切に電子署名を施すための仕組みを提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するため、本発明は、ネットワーク上のジョブ処理装置を用い、ジョブ処理を連携して実現されるサービスを実行するジョブ処理制御装置であって、サービスの出力結果に対して、サービス発行元の電子署名を施すか否かを決定する決定手段と、前記決定手段により電子署名を施すと決定された場合、サービスの処理結果を出力するジョブ処理の対象となる処理対象データに、前記サービス発行元の電子署名を施すための処理を実行する署名手段と、を備えるジョブ処理制御装置を提供する。
【００１２】
本発明の好適な態様では、前記決定手段は、サービスの実行を指示したユーザの指示によって決定する。
【００１３】
別の好適な態様では、ジョブ処理制御装置は、サービスの実行が指示されたサービス発行元装置から、サービスの処理内容が記述された指示書データを入力する指示書データ入力手段を備え、前記決定手段は、前記指示書データ入力手段により入力された指示書データにサービス発行元の電子署名が施されている場合、サービスの出力結果に対して電子署名を施すと決定する。
【００１４】
別の好適な態様では、ジョブ処理制御装置は、サービスの実行が指示されたサービス発行装置から、サービスを実現するジョブ処理の対象となる処理対象データを入力する処理対象データ入力手段を備え、前記決定手段は、前記処理対象データ入力手段により入力された処理対象データにサービス発行元の電子署名が施されている場合、サービスの出力結果に対して電子署名を施すと決定する。
【００１５】
また本発明の好適な態様では、前記署名手段は、サービスが発行されたサービス発行装置に対して処理対象データを送信し、前記処理対象データにサービス発行元の電子署名を施した結果を受信する。
【００１６】
別の好適な態様では、前記署名手段は、ネットワーク上の署名サーバに対して前記処理対象データを転送し、前記処理対象データにサービス発行元の電子署名を施した結果を受信する。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態（以下実施形態という）について、図面に基づいて説明する。
【００１８】
図１は、本発明に係る文書処理システムの概略構成を示す図である。この例では、文書処理システムは、複合機Ａ１０，複合機Ｂ１２，連携処理サーバ２０，サーバＡ２２，サーバＢ２４，サーバＣ２６を含んでいる。これらのうち、複合機Ａ１０，連携処理サーバ２０，サーバＡ２２，サーバＢ２４，サーバＣ２６は同一ＬＡＮ（ローカルエリアネットワーク）に接続されており、残りの複合機Ｂ１２がこのＬＡＮとインターネット３０を介して接続されている。
【００１９】
このうち、複合機Ａ１０及び複合機Ｂ１２は、スキャナ、プリンタ、複写機、ファクシミリ等の機能を併せ持つ装置である。
【００２０】
サーバＡ２２，Ｂ２４，Ｃ２６は、例えばウェブアプリケーションサービス等の形で文書データに対する処理サービスを提供するサーバである。これら各サーバは、それぞれ１以上の種類のジョブ（サービス）を実行することができる。なお、複合機Ａ１０，Ｂ１２も、スキャンサービスやプリントサービスなどを提供するサーバの一種と見ることができる。
【００２１】
連携処理サーバ２０は、これら複合機やサーバに対して、適切な処理フローに従って処理を依頼することで、それら個々の複合機やサーバが提供するサービスを連携した連携サービスを実現する。
【００２２】
これら各複合機、各サーバは、それぞれ公開鍵暗号方式での各自の秘密鍵、公開鍵を有している。また、これら各複合機、各サーバは、それぞれ、他の複合機やサーバの公開鍵を保持しているか、或いは他の複合機やサーバの公開鍵を必要に応じてネットワーク上の鍵サーバ（図示省略）から取得することができる。そして、相手先に文書データを送信する場合には、その相手先の公開鍵を用いて文書データを暗号化することで、文書データの秘密保護を図る。
【００２３】
次に、図２を参照して、複合機１０、連携処理サーバ２０、及び各種サーバ２５の詳細構成を説明する。なお、複合機１０は、図１の複合機Ａ１０，Ｂ１２に対応し、サーバ２５は図１に示した各種サービスを提供するサーバＡ２２，Ｂ２４，Ｃ２６に対応する。
【００２４】
まず、複合機１０において、ＵＩ（ユーザ・インタフェース）１０２は、複合機１０の状態や操作メニュー等を表示し、これに対するユーザの選択やパラメータ入力を受け取るユーザ・インタフェース機構であり、例えば液晶タッチパネルやテンキーボタン、各種制御ボタン（コピー開始ボタン等）を備える。各種処理モジュール１０４は、スキャン機能、プリント機能、コピー機能、ファクシミリ送受信機能等を実現する機能モジュールである、これら処理モジュール１０４は、スキャンエンジンやプリントエンジン、ファクシミリ装置等のハードウエアと、それら各ハードウエアを制御するソフトウエアの組合せにより構成される。通信制御部１０６は、この複合機１０とＬＡＮ等のネットワーク３５上の他の装置との通信のための各種制御処理を行う機能モジュールである。
【００２５】
暗号・復号処理部１０８は、複合機１０からネットワーク３５に送信する文書データに対して暗号化を行ったり、送信されてきた暗号化されたデータを復号したりする機能モジュールである。ここで、暗号・復号化処理部１０８は、公開鍵暗号方式をサポートしている。暗号・復号化処理部１０８で用いる暗号化処理の一例としては、乱数等で発生したセッション鍵（共通鍵）を用いて対象となる文書データを暗号化し、このセッション鍵を送信先の公開鍵で暗号化し、これら両暗号化データを送信先へに送信するという処理を挙げることができる。受信側では、受け取ったデータを自らの秘密鍵で復号することでセッション鍵を得、暗号化された文書データをそのセッション鍵により復号する。なお、以下の説明において、「公開鍵で暗号化する」といった場合、文字通り公開鍵を用いて対象データを暗号化する場合のみならず、このようなセッション鍵を利用する暗号化処理場合もあるものとする。
【００２６】
また、暗号・復号処理部１０８は、送信する文書データに対して電子署名を施したり、受信したデータに付された電子署名を検証したりする機能を備える。電子署名は、例えば署名対象の文書データからＭＤ５（ＲＦＣ１３２１）等の所定ダイジェスト方式に従って求めたメッセージダイジェストを、署名者の秘密鍵で暗号化することにより得られる。この電子署名の検証は、該署名データを署名者の公開鍵で復号し、その復号化結果が、署名対象の文書データから所定ダイジェスト方式に従って求めたメッセージダイジェストと一致するか否かを判定することにより行われる。一致すれば、該文書データが署名者からの真正なデータであることが証明されると共に、該文書データに対して改竄が加えられていないことが証明される。
【００２７】
ここで暗号・復号処理部１０８は、該複合機１０自身の秘密鍵を備え、該複合機１０の電子署名を行うことができる。
【００２８】
トークンＩ／Ｆ（インタフェース）１１０は、ユーザが保持するハードウエアトークンを受け入れ、このトークンと通信することで該ユーザの秘密鍵による電子署名を取得する機構である。ここでハードウエアトークンは、ユーザが携帯する小型の認証デバイスであり、ユーザの秘密鍵データを記憶する記憶チップと、署名対象のデータに対してユーザの秘密鍵を用いて暗号化を施すことにより署名データを生成する演算回路と、署名対象のデータの入力及び署名データの出力のためのインタフェース機構とを備える。ハードウエアトークンは、例えばＩＣカードや、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等の各種有線インタフェース規格に対応したデバイス、或いはＢｌｕｅｔｏｏｔｈ等の各種無線インタフェース規格に対応したデバイスなどとして構成される。
【００２９】
この構成では、通信制御部１０６は、文書データに対してユーザの電子署名を行う必要がある場合、例えばＭＤ５などの方式に従ってその文書データのメッセージダイジェストを作成し、これをトークンＩ／Ｆ１１０に装着されたハードウエアトークンに入力する。ハードウエアトークンは、入力されたメッセージダイジェストを、保持しているユーザの秘密鍵で暗号化し、その暗号化処理結果（すなわちユーザの署名）を通信制御部１０６に返す。このユーザ署名を通信制御部１０６が文書データに付加することにより、文書データに対するユーザの電子署名が為される。
【００３０】
以上ではユーザのハードウエアトークンを利用してユーザの電子署名を行う方式を説明したが、別の方式として、複合機１０内にユーザの秘密鍵を予め保管しておき、この秘密鍵を用いて上述と同様の処理により該ユーザの電子署名を行う方式も可能である。この方式では、ユーザの秘密鍵保護のため、ユーザにパスワードやバイオメトリクス等の認証情報の入力を求め、これによりユーザ認証が成功した場合に限り、そのユーザの電子署名を認めるという制御を必須とする。ハードウエアトークンを用いる構成の場合、ユーザ署名が必要な連携ジョブを行うと、最悪の場合その連携ジョブが完了するまで複合機１０にトークンをセットしたまま待っている必要があるが、複合機１０に秘密鍵を保管する構成ではそのような待機は必要ない。逆に、ハードウエアトークンを用いる構成は、ユーザは、どの複合機その他の装置からでも、ユーザ署名が必要な連携ジョブを実行できるという利点がある。
【００３１】
次に、連携処理サーバ２０の構成について説明する。
【００３２】
連携処理サーバ２０において、ユーザ管理部２０２は、該サーバ２０がサービス対象とするユーザについての各種情報を管理している。ユーザ管理部２０２が管理する情報には、例えばユーザの認証に用いる認証情報（パスワードやバイオメトリクス情報など）や、ユーザが登録しているＵＩ画面情報などがある。すなわち、本実施形態のシステムでは、ネットワーク３５上の各種サーバ装置が提供するサービスをユーザが組み合わせることで、ユーザ固有の連携ジョブを定義可能としており、これらユーザ固有の連携ジョブを指示できる該ユーザ固有のＵＩ画面を連携処理サーバ２０から提供するようにしている。なお、ユーザによる連携処理サーバ２０への連携ジョブの登録処理や、連携処理サーバ２０から複合機１０に提供する各ユーザ固有のＵＩ画面の情報については、本実施形態の要旨とは直接関係しないので説明を省略するが、これらについては本出願人による特願２００２−２７５２２９号、特願２００２−２７５２３０号、特願２００２−２７５２３１号に開示されているので、必要があれば参照されたい。
【００３３】
フロー制御部２０４は、ユーザが要求した連携ジョブを実現するために、連携ジョブにおいて規定されるフローに従って各サーバ２５や複合機１０に対して必要な処理の実行依頼を行う機能モジュールである。すなわち、連携ジョブは、各サーバ２５や各複合機１０（これもサーバの一種と見ることができる）が提供する１以上のサービス（単位ジョブ）からなるフローとして定義され、連携処理サーバ２０は、このフロー定義に示される単位ジョブを順に対応するサーバに依頼していく。ここで、各サーバの処理結果は、必要に応じて連携処理サーバ２０に返され、次の単位ジョブの処理対象データとして連携処理サーバ２０から対応するサーバへと送信される。フロー制御部２０４は、このような各サーバ、複合機への処理依頼と、これに対する処理結果の取得などの処理を実行する。
【００３４】
暗号・復号処理部２０６は、連携処理サーバ２０からネットワーク３５に送信する文書データに対して暗号化を行ったり、送信されてきた暗号化されたデータを復号したりする機能モジュールであり、暗号・復号処理部１０８と同等の暗号化、復号化、電子署名及びその検証の機能を有する。特に電子署名機能については、暗号・復号処理部２０６は、連携処理サーバ２０の秘密鍵を備え、送信するデータに対して連携処理サーバ２０の電子署名を付することができる。
【００３５】
署名制御部２０８は、フロー制御部２０４による連携ジョブの実行において各処理サーバ２５又は複合機１０に送られる文書データに、該ジョブを発行したユーザの電子署名を施すための制御処理を実行する機能モジュールである。署名制御部２０８は、ユーザが、連携ジョブの結果出力される文書に対して該ユーザの電子署名を行う意志があるか否かを判断し、署名の意志があると判断した場合は、出力文書に対して該ユーザの署名が為されるように制御を行う。ユーザの署名の意志の有無の判断は、その連携ジョブについてのユーザの指示内容に基づき、行う。例えば、連携ジョブ実行指示の入力の際にユーザが自分の電子署名を行う旨の明示的な指示を行った場合や、ユーザが連携ジョブの対象として指定した文書に対し自己の電子署名を行っている場合や、ユーザが実行対象として選択した連携ジョブの中に、処理結果にユーザの電子署名を行うことが必要な単位ジョブが含まれる場合などには、ユーザの電子署名が必要と判断する。この判断により、ユーザ署名が必要と判定した場合は、その連携ジョブにおいて文書の出力を行う処理サーバ２５に対して処理対象のデータを送る前に、そのデータを連携ジョブ発行元の複合機１０に送り、ユーザの電子署名を依頼し、その結果複合機１０から返されてくるユーザ署名付きのデータをその処理サーバ２５に送信する。
【００３６】
なお、連携ジョブの出力文書とは、該連携ジョブの実行過程内のみで用いられる途中結果の文書ではなく、該連携ジョブの外で利用される文書のことである。連携ジョブにおける出力文書には、例えば電子メールにより送信される文書、文書データベースに登録される文書、ファイルシステムに格納される文書、ネットワーク上の格納場所にアップロードされる文書、等がある。
【００３７】
通信制御部２１２は、連携処理サーバ２０とネットワーク３５上の他の装置との通信のための各種制御処理を行う機能モジュールである。
【００３８】
処理サーバ２５は、該サーバが提供するサービスを実行するアプリケーションプログラム２５２と、ネットワーク３５上の他の装置との通信のための制御処理を実行する通信制御部と、その通信の際の暗号化及び復号の処理を実行する暗号・復号処理部２５６とを備える。暗号・復号処理部２５６は、連携処理サーバ２０の暗号・復号処理部２０６と同等の機能を備える。
【００３９】
図３は、この文書処理システムにおいて、ユーザが連携ジョブの実行指示を入力の際に行われる処理の手順を示す。
【００４０】
この処理では、まずユーザが複合機１０に対し、自分のハードウエアトークンを接続したり、自分のユーザＩＤ、パスワードを入力する（Ｓ１０）。この入力操作に応じ、複合機１０の通信制御部１０６は、ハードウエアトークンから得た認証情報又は、ユーザＩＤ、パスワードを含んだ認証依頼データを作成し、これを暗号・復号処理部１０８により連携処理サーバ２０の公開鍵で暗号化し、連携処理サーバ２０に送信する（Ｓ１２）。なお、この送信を実現するために、複合機１０には、当該複合機１０に対して連携ジョブ制御サービスを提供する連携処理サーバ２０のアドレス情報が予め登録されている。
【００４１】
この認証依頼を受け取った連携処理サーバ２０は、その依頼データを復号し、その依頼に含まれる認証情報を用いて公知のユーザ認証処理を行う。そして、このユーザ認証が成功した場合には、ユーザ管理部２０２からそのユーザのＵＩ画面情報を取り出し、これを暗号・復号処理部２０６により認証依頼元の複合機１０の公開鍵で暗号化し、暗号化したＵＩ画面情報を含む送信データを該複合機１０に対して送信する（Ｓ２０）。
【００４２】
この暗号化されたＵＩ画面情報を受け取った複合機１０は、その情報に従って、当該ユーザ用のＵＩ画面を構成し、これをＵＩ１０２の画面に表示する（Ｓ１４）。ここで、連携処理サーバ２０から複合機１０に提供するＵＩ画面情報は、例えばＸＭＬで記述することができ、複合機１０のＵＩ１０２は、このＸＭＬ記述を解釈してＵＩ画面を構成する。このＵＩ画面は、ＧＵＩ（グラフィカル・ユーザ・インタフェース）部品を用いて構成することができる。この場合、ＵＩ画面には、例えば、ユーザが予め登録した各連携ジョブを選択するためのアイコンや、選択した連携ジョブの処理パラメータを入力する入力欄などが含まれる。
【００４３】
なお、ユーザが予め登録した連携ジョブの選択のためのＵＩ画面では、各連携ジョブがそれぞれユーザの電子署名を要するか否かを示す情報を表示することが好適である。個々の登録連携ジョブがそれぞれどのような単位ジョブから構成されているかを示す定義情報がユーザ管理部２０２に登録されているので、ユーザ管理部２０２が、この定義情報にある各単位ジョブのユーザ署名要否を署名要否テーブル２１０で調べることで、連携ジョブにユーザ署名が必要か否かが判定できる。連携ジョブを構成する単位ジョブの中に一つでもユーザ署名を要するものがあれば、その連携ジョブにはユーザ署名が必要と判定すればよい。このような判定の結果を、ＵＩ画面に組み込んで表示することにより、ユーザに対して各連携ジョブがユーザ署名を要するか否かを知らせることができる。ユーザは、この表示により、各連携ジョブがユーザ署名を要するか否かを知ることができ、ユーザ署名を必要とする連携ジョブを実行したい場合は、ハードウエアトークンを複合機１０に接続するなどの準備ができる。
【００４４】
ＵＩ１０２は、表示したＵＩ画面に対するユーザの選択指示や値の入力を受け付ける（Ｓ１６）。この選択指示や値の入力により、ユーザが実行したい連携ジョブの内容が特定される。複合機１０は、このＵＩ１０２からの入力内容を反映した指示書データを作成し、この指示書データを暗号・復号処理部１０８により連携処理サーバ２０の公開鍵で暗号化し、この暗号化した指示書データを含む送信データを連携処理サーバ２０に対して送信する（Ｓ１８）。この指示書データは、連携ジョブの内容を定義したものである。指示書には、ジョブを連携して実現されるサービスの処理内容が記述されている。尚、この指示書は、指示書サーバに予め蓄積しておいて、必要に応じてダウンロードする構成としても良い。
【００４５】
本実施形態では、このＵＩ１０２からのユーザの連携ジョブの指示入力において、該連携ジョブの出力文書に対して該ユーザの電子署名を行うか否かを指示することができる。
【００４６】
また、本実施形態では、複合機１０のスキャナから、連携ジョブの処理対象となる文書を読み込ませることができる。この場合、ステップＳ１８では、指示書データに対し、処理対象として読み込んだ文書のデータを付加し、これら両者を連携処理サーバ２０の公開鍵で暗号化した上で、連携処理サーバ２０に対して送信する。
【００４７】
ここで、本実施形態では、ＵＩ１０２からの指示入力により、複合機１０のスキャナから読み込んだ文書に対して、ユーザの電子署名を付することができる。この指示入力がなされた場合、スキャナから読み込んだ文書に対し、ユーザがトークンＩ／Ｆ１１０に接続したハードウエアトークンを用いて、該ユーザの電子署名が施され、この電子署名付きの文書が連携処理サーバ２０に送られることになる。
【００４８】
複合機１０から送信された暗号化された指示書データ（処理対象文書が付属する場合もある）を受け取った連携処理サーバ２０はそのデータを復号し、これによって得られた指示書データをフロー制御部２０４に渡して連携ジョブの実行を開始する（Ｓ２２）。
【００４９】
なお、図３の例は、ユーザ用のＵＩ画面の情報が連携処理サーバ２０から複合機１０に一度に提供される構成であったが、この代わりに、複合機１０からの入力に応じて、ユーザ用の各ＵＩ画面が段階的に連携処理サーバ２０から提供される構成でももちろん良い。
【００５０】
なお、連携処理サーバ２０におけるユーザ認証が失敗した場合は、認証失敗の旨の通知データが連携処理サーバ２０から依頼元の複合機１０に返され、複合機１０はこの通知データに従ってエラー通知表示などの所定のエラー処理を実行する。
【００５１】
図４は、ユーザの指示に応じて複合機１０で作成される、連携ジョブ実行指示のための指示書データ３００のデータ構造の一例を示す図である。
【００５２】
この例では、指示書データ３００は、サービス提供サーバの定義３０２と、ユーザ署名の指定３０３と、それら各サーバが実行する単位ジョブの定義３０４，３０６とから構成される。単位ジョブの定義３０４，３０６は、それら各単位ジョブの実行順序に応じた順番で配列される。
【００５３】
サービス提供サーバの定義３０２は、連携ジョブを構成する各単位ジョブのサービスを提供する各サーバ２５のサーバ名とそのＵＲＬとの対応関係を示す情報である。
【００５４】
ユーザ署名の指定３０３は、この連携ジョブを指示したユーザが、出力文書に対して該ユーザの電子署名を行う旨の指示を行ったか否かを示す情報である。この指定３０３の値は、ＵＩ１０２から出力文書に対してユーザの電子署名を行う旨の指示を行ったか否かに基づき設定される。
【００５５】
なお、１つの連携ジョブにおいて、例えば同じ文書を電子メールで送信し、かつファイルシステムに格納する場合のように、複数の文書出力が為される場合がある。このような場合には、出力文書に対してユーザ署名を行うか否かは、それら個々の出力ごとに指定できるようにすることが好適である。この場合、ユーザ署名の指定３０３には、各出力に対応して、それぞれユーザの電子署名の指定の有無が記録される。
【００５６】
また、１つの連携ジョブにおける各文書出力に対して個別にユーザの電子署名の有無を設定する場合、その設定情報をユーザ署名の指定３０３としてまとめて記述する代わりに、次のような方式も可能である。すなわち、指示書において、ユーザの電子署名を施した文書を出力する単位ジョブ（電子メール送信やファイル格納など）の記述の前に、その文書に対してユーザの電子署名を行うためのジョブを記述するという方式である。このユーザの電子署名を施すためのジョブは、連携処理サーバ２０で実行される。
【００５７】
単位ジョブの定義３０４，３０６は、それら各単位ジョブの内容を示す定義データであり、例えば、その単位ジョブを実行するサーバのサーバ名や、そのサーバに対し該単位ジョブを指定するためのメソッド名（すなわちサーバとメソッドを指定することで単位ジョブが特定される）、及びそのメソッドに与える処理パラメータなどを含んでいる。処理パラメータには、例えば、そのメソッドの処理対象であるファイルの名称や、そのメソッドの処理結果に付すべきファイル名、その処理結果の送信先（電子メール送信ジョブの場合）や格納先（ファイル格納ジョブの場合）などがある。
【００５８】
これらパラメータのうち、処理対象文書のファイル名と、処理結果文書のファイル名は、連携ジョブを構成する各単位ジョブの間で処理対象を受け渡していく際の流れを規定するのに用いることができる。すなわち、ある単位ジョブＡの処理結果文書のファイル名と同じファイル名を、その後に実行する単位ジョブＢの処理対象文書のファイル名に設定しておけば、単位ジョブＢが単位ジョブＡの処理結果に対して処理を行うように処理フローを規定できる。
【００５９】
なお、このほかに処理パラメータには、例えば、画像を拡大／縮小する場合には拡大／縮小率が、解像度変換を行う場合は目標解像度などがある。
【００６０】
指示書データ３００は、例えばＸＭＬで記述することができる。文書処理システムを構成するサーバや複合機などの各装置をＸＭＬ対応とすれば、ＸＭＬで記述した指示書を用いることで、それら各装置に処理を依頼することができる。
【００６１】
なお、連携処理サーバ２０から複合機１０に提供するＵＩ画面のデータに対し、ユーザが選択可能な連携ジョブの定義データのテンプレートを含めておけば、複合機１０はそのテンプレートに対して、ユーザが入力した各種処理パラメータを設定することで、指示書データ３００を作成することができる。
【００６２】
図５は、このような指示書データ（及びこれに付随する処理対象文書データ（もしあれば））を受け取った連携処理サーバ２０が行う連携ジョブ制御処理の手順を示すフローチャートである。
【００６３】
この処理において、連携ジョブを開始すると、フロー制御部２０４はまず指示書の先頭の単位ジョブの定義を取り出し（Ｓ３０）、その単位ジョブが、ユーザ署名を施した文書を出力するジョブであるか否かを判定する（Ｓ３２）。この判定では、例えば単位ジョブの定義からそのジョブが文書の出力を行うジョブであるか否かを判定し、更に指示書データ３００におけるユーザ署名の指定３０３や、指示書と共に受信した処理対象文書にユーザの電子署名が施されているか否かに基づき、そのジョブに渡すべき出力対象の文書にユーザの電子署名が必要か否かを判定する。この判定のため、連携処理サーバ２０は、各単位ジョブが文書の出力を行うジョブであるか否かの判断基準の情報を保持している。
【００６４】
この判定で、当該単位ジョブの実行に当たりユーザ署名が不要と判定された場合は、フロー制御部２０４は、当該単位ジョブの実行を指示する指示書を作成し、この指示書と、その単位ジョブの処理対象の文書とを、依頼先のサーバに対して送信する（Ｓ５０）。このとき、送信する指示書と処理対象文書は、依頼先サーバの公開鍵で暗号化する。なお、依頼する単位ジョブの内容が、例えばデータベースからの文書取り出しなどであれば、連携処理サーバ２０から送るべき処理対象の文書は存在しないので、この場合は指示書のみを送信することとなる。
【００６５】
連携処理サーバ２０から各サーバ２５に送信する、単位ジョブ実行依頼のための指示書のデータ構造例を図６に示す。この単位ジョブ依頼の指示書４００は、連携ジョブ全体の指示書３００における当該単位ジョブの定義に基づき作成され、該定義に示された処理メソッド名４０２や、そのメソッドの処理パラメータ４０４を含む。また、指示書４００には、当該連携処理サーバ２０のアドレス情報（及び、必要に応じて、当該連携ジョブを示す識別情報）が、単位ジョブの処理結果を返す返信先情報４０６として付加される。依頼先の情報は、処理結果のデータを、この返信先情報４０６に示される宛先に向かって返信する。依頼先のサーバから連携処理サーバ２０に返される処理結果は、単なる単位ジョブの成功、失敗などのステータス情報だけのこともあれば、処理対象として与えた文書に対し単位ジョブの処理を施した結果生成された処理結果文書のデータを含むこともある。前者は例えば電子メール送信や文書格納などの単位ジョブに対する処理結果に該当し、後者は例えばＯＣＲや画像回転などの単位ジョブに対する処理結果に該当する。
【００６６】
ここで、例えば、図１及び図３の例でサーバＢに対して「ページばらし」をして先頭ページを取り出してから、その先頭ページの画像を９０度「回転」させるなどいうように、同じサーバに対して複数の単位ジョブを連続して行わせる場合も考えられる。これを実現する１つの方法としては、連携処理サーバ２０が、まず「ページばらし」の依頼をサーバＢに出し、その結果である先頭ページのデータをサーバＢから受け取り、その先頭ページのデータを処理対象としてサーバＢに対し「回転」を依頼するという方法が可能である。この場合、サーバＢに対して送る指示書は、図６のデータ構成でよい。ただし、この方法は、連携処理サーバ２０とサーバＢとの間のデータ通信量が多くなるという問題がある。
【００６７】
そこで、このような場合に連携処理サーバ２０と依頼先サーバとの間のデータ通信量を削減する方法として、次のような方法がある。すなわち、同じサーバに対して連続して複数の単位ジョブを実行させる場合は、それら複数の単位ジョブとその流れを規定した指示書を作成し、依頼先サーバに送るという方法である。この場合、指示書は、依頼先に実行させたい単位ジョブを示す処理メソッド４０２とその処理パラメータ４０４の組を、各単位ジョブの実行順序に順番に従って並べ、これに返信先情報４０８を加えた形となる。
【００６８】
なお、このように一連の単位ジョブの実行を１つの指示書でまとめて指示する場合、ステップＳ３２のユーザ署名要否の判定では、それら一連の単位ジョブの中に一つでもユーザ署名を要するものがあれば、その依頼先が処理に際してユーザ署名を要すると判断すればよい。
【００６９】
このように作成した指示書（及びもしあるならば処理対象文書）を依頼先サーバに送信すると、フロー制御部２０４は、その指示書による依頼の処理結果を待ち受ける。そして、依頼先サーバからその処理結果を受信すると（Ｓ５２）、その処理結果を認識し、さらにその処理結果に、処理対象文書を処理した結果である処理結果文書が含まれる場合は、それを後の単位ジョブの処理対象として用いるために保管する。そして、フロー制御部２０４は、連携ジョブの指示書３００に示された最後の単位ジョブまで処理が終了したかどうかを検査し（Ｓ５４）、終了していなければステップＳ３０に戻って、未処理の最先の単位ジョブの処理を行う。
【００７０】
ステップＳ３２で、次に実行する単位ジョブ（又は一連の単位ジョブのうちの少なくとも１つ）のために依頼先のサーバに送信すべき出力対象文書に、連携ジョブ発行元のユーザの電子署名を必要とすると判定した場合、署名制御部２０８は、その依頼先サーバに送信する出力対象文書を、暗号／復号処理部２０６に複合機１０の公開鍵で暗号化させ（Ｓ３４）、その複合機１０に対してその送信データに対するユーザの電子署名を依頼する（Ｓ３６）。この依頼は、ユーザの電子署名を指示する指示書と、その署名の対象となる文書データを含んでいる。
【００７１】
この署名依頼を受け取った複合機１０は、その中に含まれる暗号化された文書データを自らの秘密鍵で復号する。そして、トークンＩ／Ｆ１１０にユーザのハードウエアトークンがセットされているか否かを判定し（Ｓ４０）、セットされていれば、復号により得られた平文の送信データのメッセージダイジェストを作成し、これをハードウエアトークンに入力してユーザの電子署名を作成させる。そして、この結果得られた電子署名を平文の送信データに付加することで、ユーザ署名済みの送信データを作成し、これを連携処理サーバ２０の公開鍵で暗号化して連携処理サーバ２０に送信する（Ｓ４４）。
【００７２】
ステップＳ４０で、トークンＩ／Ｆ１１０にハードウエアトークンが接続されていないと判定した場合は、複合機１０はＵＩ１０２の画面に、ハードウエアトークンを接続する必要がある旨のメッセージを表示し（Ｓ４２）、ユーザのトークン接続を促す。なお、複合機１０にユーザの秘密鍵を保管しておく構成の場合、ステップＳ４０及びＳ４２の処理は不要である。
【００７３】
このようにして複合機１０からユーザの電子署名付きの送信データを受け取ると、連携処理サーバ２０は、それを依頼先サーバに送信して処理依頼を行い（Ｓ５０）、その処理結果を待つ（Ｓ５２）。
【００７４】
連携処理サーバ２０は、以上の処理を、複合機１０から受け取った連携ジョブ全体の指示書に示される最後の単位ジョブの処理が完了するまで繰り返す（Ｓ５４）。
【００７５】
以上の処理によれば、ユーザ署名を施すべきと判定される文書を出力する単位ジョブを依頼先サーバに実行させる際に、その文書に対してユーザの電子署名を付することができるので、ユーザの電子署名の指示に対応して出力文書に電子署名を施すことができる。
【００７６】
次に、図７を参照して、以上に説明した文書処理システムにおける文書処理の流れの具体例を説明する。この図において、サーバ２２は、複数のページからなる文書から、指示書で指定されたページやページ群を抜き出すという単位ジョブを実行することができるものとする。またサーバ２６は、受け取った文書を指示書で指定された宛先に電子メールで送信する単位ジョブと、受け取った文書を指示書で指定されたディレクトリに格納する単位ジョブを実行することができるものとする。
【００７７】
このようなシステムに対し、ユーザが複合機１０から「複数ページある紙のレポートを複合機１０で読み取り、その読取結果である複数ページの文書データからサーバ２２で先頭ページのみを抽出し、該ユーザの上司にはその先頭ページのみを電子メールで送信し、同僚にはレポート全部のデータを電子メールで送信し、更にそのレポート全部のデータをファイルシステムの所定ディレクトリに格納する」という連携ジョブの実行指示を行ったとする。そして、この実行指示の際に、ユーザが、上司宛及び同僚宛に電子メールで送信する文書に対して該ユーザの電子署名を施す旨の指示を行ったとする。この場合、図７のシステムでは以下のような処理が行われる。なお、このシステムでは、前述のごとく、複合機や各サーバの間で送信されるデータには、送信先の公開鍵による暗号化が施されるものとし、以下の説明では繁雑さをさけるため、このような暗号化及びこれに対応する復号の処理の説明は省略する。
【００７８】
（１）複合機１０から連携処理サーバ２０に対し、上記の指示内容を示す指示書が送信され、更にこの指示書による処理の対象の文書として、該複合機１０のスキャナで読み込んだレポートの読み取り結果のファイルが送信される。
【００７９】
（２）連携処理サーバ２０は、連携ジョブの指示書から先頭ページの抽出という単位ジョブを検出し、これに応じてそのジョブを示す指示書を作成し、これをレポート読取結果のファイルと共にサーバ２２に送信する。
【００８０】
（３）サーバ２２は、受け取った指示書に従って、そのファイルから先頭ページのデータを抽出し、これを１つのファイルとして連携処理サーバ２０に返す。
【００８１】
（４）連携処理サーバ２０は、連携ジョブの指示書から、上司宛（指示書には該上司のメールアドレスが記述されている）に先頭ページのファイルを含んだ電子メールを送信するという単位ジョブを検出する。ここで、連携処理サーバ２０は、ユーザ署名の指定３０３等の情報から、この単位ジョブが、文書に対して自分の電子署名を行う旨の指示されているジョブであることが判断できる。そこで、連携処理サーバ２０は、その先頭ページのファイルと、このファイルに対してユーザの電子署名を行う旨の指示を記述した指示書とを複合機１０に送信する。
【００８２】
（５）複合機１０は、送られてきた先頭ページのファイルに対し、指示書に従ってユーザの電子署名を施し、この電子署名済みの先頭ページのファイルを連携処理サーバ２０に返す。
【００８３】
（６）連携処理サーバ２０は、この電子署名済みの先頭ページのファイルを複合機１０から受け取ると、ユーザの上司のアドレスに送信する旨の指示書を作成し、これをその署名済みファイルと共にサーバ２６に送信する。
【００８４】
サーバ２６は、その指示書に従い、その署名済みファイルを添付した電子メールを作成し、これを指示された上司のアドレスに対して送信する。
【００８５】
（７）連携処理サーバ２０は、連携ジョブの指示書から、同僚宛（指示書には同僚のメールアドレスが記述されている）にレポート読取結果のファイルを含んだ電子メールを送信するという単位ジョブを検出する。ここで、連携処理サーバ２０は、この単位ジョブで出力する文書に対してユーザの電子署名を行う必要があると判断できるので、そのレポート読取結果のファイルと、このファイルに対してユーザの電子署名を行う旨の指示を記述した指示書とを複合機１０に送信する。
【００８６】
（８）複合機１０は、送られてきたファイルに対し、指示書に従ってユーザの電子署名を施し、この電子署名済みのファイルを連携処理サーバ２０に返す。
【００８７】
（９）連携処理サーバ２０は、この電子署名済みファイルを複合機１０から受け取ると、ユーザの同僚のアドレスに送信する旨の指示書を作成し、これをその署名済みファイルと共にサーバ２６に送信する。
【００８８】
サーバ２６は、その指示書に従い、その署名済みファイルを添付した電子メールを作成し、これを指示された同僚のアドレスに対して送信する。
【００８９】
（１０）連携処理サーバ２０は、連携ジョブの指示書から、レポート読取結果のファイルを所定のディレクトリに格納する旨の単位ジョブを検出する。この単位ジョブは、文書出力を行うジョブではあるものの、ユーザ署名を施す旨の指定がなされていないので、ユーザ署名のための処理は行わない。連携処理サーバ２０は、その格納ジョブを示す指示書を作成し、これをそのレポート読取結果のファイルと共にサーバ２６に送信する。これを受け取ったサーバ２６は、その指示書に従って、レポート読取結果のファイルを指示されたディレクトリに格納する。なお、この格納処理を行うジョブ処理部を連携処理サーバ２０内に持たせ、この連携処理サーバ２０内で格納のための処理を行い、サーバ２６に蓄積させることも可能である。
【００９０】
以上の説明では、ユーザが、連携ジョブの実行指示時に、出力文書に対してユーザの電子署名を行う旨を指定した場合の流れを説明した。これに対し、ユーザが複合機１０でレポート読取結果自体にユーザの電子署名を施し、これを連携ジョブの処理対象として連携処理サーバ２０に送信する場合も考えられる。このような場合、連携処理サーバ２０は、その処理対象のファイルに施されたユーザ自身の電子署名を検出すると、該連携ジョブの出力文書に対してユーザの電子署名を施すべきと判断し、文書出力を行う単位ジョブの前に出力文書を複合機１０に送ってユーザ署名を行わせる。
【００９１】
以上、本発明の好適な実施の形態を説明した。本実施形態によれば、様々なサーバを介して一連の処理が実行される文書処理システムにおいて、ユーザが個人署名を施した上で出力したい文書を、適切にその個人署名を施した上で出力することができる。
以上では、処理対象の文書を、連携ジョブ実行指示を入力する複合機１０から読み込んだが、この他に連携ジョブの過程で、いずれかのサーバが保持している文書を取得し、これを処理対象として以降の処理を進めていく場合がある。本実施形態では、このような場合でも、ユーザが連携ジョブ実行指示の際に、出力文書に自分の電子署名を施す旨の指示を行っていれば、上述の手順により出力文書に対して該ユーザの電子署名が施される。
【００９２】
以上の説明では、ユーザが、出力文書に電子署名を付して出力したい場合に、その旨を指示する場合の構成を説明した。この他に、ジョブ自身の性質として、そのジョブの出力文書に対してユーザの電子署名を付与する必要がある場合を想定することもできる。例えば、ある企業においては、注文書データに対しては、改竄防止や悪用防止などのために、その注文書を作成したユーザの電子署名を付すというポリシーを採用していたとする。このような場合に対応できる文書処理システムの変形例を以下説明する。
【００９３】
この変形例のシステムの概略は、図２に示した構成と同様でよい。ただし、この変形例では、図８に示すような、各単位ジョブがその処理結果にユーザの電子署名を要するか否かを示す署名要否テーブルが連携処理サーバ２０に登録されている。この例では、サーバＤによる注文書作成ジョブが、処理結果の文書（注文書）に対するユーザ署名を要するものと設定されている。
【００９４】
図９は、このシステムにおける連携処理の手順を示した図である。図９に示す処理は、図５に示した連携処理のステップＳ５２とＳ５４との間に挿入されるものである。
【００９５】
この手順では、連携処理サーバ２０は、処理依頼先から単位ジョブの処理結果を受け取ると（ステップＳ５２。図５参照）、その単位ジョブが、処理結果文書に対するユーザ署名を要するか否かを署名要否テーブル２１０を参照して判定する（Ｓ６０）。これにより処理結果文書に対するユーザ署名を要すると判定した場合、連携処理サーバ２０は、その処理結果文書を、連携ジョブ発行元の複合機１０の公開鍵で暗号化し（Ｓ６２）、ユーザ署名を施す旨の指示書と共にその複合機１０に送信する（Ｓ６４）。
【００９６】
この署名依頼を受け取った複合機１０は、その中に含まれる暗号化された処理結果文書を自らの秘密鍵で復号する。そして、トークンＩ／Ｆ１１０にユーザのハードウエアトークンがセットされているか否かを判定し（Ｓ７０）、セットされていれば、このハードウエアトークンに対しユーザの電子署名を作成させ、この結果得られた電子署名を処理結果文書に付加し、これを連携処理サーバ２０の公開鍵で暗号化して連携処理サーバ２０に送信する（Ｓ７４）。ステップＳ７０で、トークンＩ／Ｆ１１０にハードウエアトークンが接続されていない場合は、複合機１０は、ユーザに対しハードウエアトークン接続を促す（Ｓ７２）。
【００９７】
このようにして複合機１０からユーザ署名済みの処理結果文書を受け取った場合、連携処理サーバ２０は、それを当該単位ジョブの処理結果として（すなわちその単位ジョブの処理結果のファイル名として指定されたファイル名で）保存し（Ｓ６６）、後の単位ジョブでの使用に供する。
【００９８】
この処理によれば、依頼先の処理結果に対してユーザ署名を施す必要がある場合に、それを実現することができる。図１０は、この処理の具体例を説明するための図である。図１０に示す文書処理システムは、複合機１０、連携処理サーバ２０、ＯＣＲサーバ４１，注文書作成サーバ４３，及びメールサーバ４７から構成されている。このうち、注文書作成サーバ４３の注文書作成処理で作成された文書（注文書）に対してのみユーザ署名が必要であり、その他の状況ではいっさいユーザ署名が必要とされていないものとする。
【００９９】
このような構成において、複合機１０から「紙に印刷された見積書を複合機１０で読み取り、その読取結果をＯＣＲサーバ４１で文字認識し、その文字認識結果から求めた商品や価格などのデータに基づき注文書作成サーバ４３で注文書データを作成し、その注文書データをメールサーバ４７から注文先に電子メールで送信する」という連携ジョブの実行指示が為された場合の処理を、図１０を参照して説明する。
【０１００】
（１）複合機１０から連携処理サーバ２０に対し、該複合機１０で読み取った見積書の画像データ（処理対象文書）と、上記の連携ジョブを定義する指示書とが送信される。
【０１０１】
（２）連携処理サーバ２０は、ＯＣＲ処理を指示する指示書を作成し、この指示書と見積書の画像データをＯＣＲサーバ４１に送る。
【０１０２】
（３）ＯＣＲサーバ４１は、この指示書に従って見積書画像の文字認識を行い、その結果のテキストファイルを連携処理サーバ２０に返す。
【０１０３】
（４）連携処理サーバ２０は、注文書作成を指示する指示書を作成し、この指示書と見積書の文字情報のテキストファイルとを注文書作成サーバ４３に送る。
【０１０４】
（５）注文書作成サーバ４３は、この指示書に従い、テキストファイルの情報から注文書ファイルを作成し、これを連携処理サーバ２０に返す。
【０１０５】
（６）連携処理サーバ２０は、この注文書作成処理の結果の注文書に対してユーザの電子署名が必要であることが分かっているので、その注文書に対してユーザ署名を施す旨を指示する指示書を作成し、この指示書を注文書と共に複合機１０に送る。
【０１０６】
（７）複合機１０は、この指示書に従い、処理対象文書である注文書にユーザの電子署名を施し、ユーザ署名付きの注文書を連携処理サーバ２０に返す。
【０１０７】
（８）連携処理サーバ２０は、ユーザ署名済みの注文書を添付文書とした注文メールを所定の注文先メールアドレスに送信する旨の指示書を作成し、この指示書とユーザ署名済み注文書をメールサーバ４７に送る。この指示書を受け取ったメールサーバ４７は、その指示に従って注文メールを作成し、指示された送信先に対して送信する。なお、この結果注文先に送られる注文書データは、注文書発行元のユーザの署名が付されており、注文先はこれを検証することができる。
【０１０８】
このように、本実施形態では、連携ジョブを構成するあるジョブの処理結果の文書がユーザ署名を要する場合、連携処理サーバ２０がその処理結果文書を連携ジョブ入力元の複合機１０に送り、その処理結果文書に対してユーザ署名を施すことができる。
【０１０９】
また、上記実施形態では、連携ジョブ発行元のユーザの電子署名は、そのユーザが該連携ジョブの実行指示を行った複合機１０にて行った。これは、ユーザのハードウエアトークンや該複合機１０が内蔵する秘密鍵で電子署名を行うことを想定したシステムである。しかし、別のシステム構成として、図１１に示すように、ネットワーク上に署名サーバ５０を設ける構成も可能である。なお、図１１のシステム構成は、署名サーバ５０以外は図１に示す構成と同じである。
【０１１０】
この構成において、署名サーバ５０は、ユーザの秘密鍵を保管し、外部からの署名依頼に応じてそのユーザの秘密鍵により電子署名を施す署名サービスを提供する。連携処理サーバ２０は、出力文書にユーザ署名が必要な場合に、上記実施形態における複合機１０の代わりに、この署名サーバ５０に対して署名対象のデータを送ってユーザ署名を依頼する。
【０１１１】
この場合、ユーザ以外の者からの指示でそのユーザの電子署名を付することができると問題となるので、署名サーバ５０は、ユーザ認証を行った上で該ユーザの電子署名を行う構成とする。ユーザ認証は、例えば、複合機１０からユーザが入力した認証情報を、ユーザ署名を依頼する際に、連携処理サーバ２０が署名サーバ５０の公開鍵で暗号化して署名サーバ５０に送信する、等の手続で行うことができる。
【０１１２】
また、別の方式としては、署名サーバ５０に対する署名依頼の指示書と署名対象の文書とを、いったん連携処理サーバ２０から複合機１０に送ってユーザの簡易的な電子署名を行わせ、この簡易的な電子署名を施した指示書及び署名対象文書を署名サーバ５０に送るという方式が考えられる。この場合、署名サーバ５０は、その簡易的な電子署名によりユーザの正当性と文書の非改竄を確認し、その上で該ユーザの正式な電子署名を文書に施す。この方式には、例えば、複合機１０には社内の認証局が発行した社内用のユーザ秘密鍵を保管し、署名サーバ５０には、より公的信用度の高い認証局が発行した公用のユーザ秘密鍵を保管し、公用のユーザ署名が必要な場合に、上記の手順で署名サーバ５０に署名依頼を行うというような使い方が考えられる。
【０１１３】
このように署名サーバ５０を利用するシステム構成では、ユーザは、システム上のどの複合機からでも、ユーザ署名が必要な連携ジョブを実行できるという利点と、連携ジョブが完了するまでユーザが複合機のところで待たなくて良いという利点の双方を得ることができる。
【０１１４】
なお、この場合、ユーザの秘密鍵を署名サーバ５０に永久的に保管する構成の他に、必要が生じた場合に、ユーザからネットワークを介して署名サーバ５０に対し、必要な期間の間、ユーザ秘密鍵の保管とこの秘密鍵によるユーザ署名の代行を依頼する構成も可能である。この場合、ユーザから署名サーバ５０に送信する秘密鍵や依頼データは、暗号化処理等により秘密を確保する。ユーザは、例えば出張先からこのシステムを利用したい場合に、自分のオフィスにある複合機１０に保管された秘密鍵を署名サーバ５０に送り、出張期間の間の署名代行を依頼する、というような使用法が考えられる。このように署名サーバ５０がユーザの署名を代行する期間を限定することで、署名悪用の可能性を低減することができる。
【０１１５】
また、上記実施形態では、連携ジョブの実行を１つの連携処理サーバ２０が制御したが、図１２に示すように複数の連携処理サーバ２０−１，２０−２が連携して１つの連携ジョブを実現することもできる。図１２の例は、連携処理サーバ２０−１が複合機１０，サーバ２２，２４及び２６を制御し、連携処理サーバ２０−２が複合機１２，サーバ２８及び２９を制御する構成となっている。ユーザが複合機１０から連携処理サーバ２０−１に対して連携ジョブの実行を指示すると、連携処理サーバ２０−１は、上記実施形態で説明したように連携ジョブの指示書の単位ジョブを先頭から順に対応のサーバに依頼していく。そして、この流れの中で連携処理サーバ２０−２が制御する複合機１２，サーバ２８及び２９で実行される一連の単位ジョブを見つけると、それら一連の単位ジョブを部分連携ジョブとし、その実行を指示する指示書を作成して連携処理サーバ２０−２に送信し、その処理を依頼する。連携処理サーバ２０−２に送る指示書には、ユーザ署名の指定３０３の情報（又はそのうち連携処理サーバ２０−２に関連する部分）が含まれる。このような構成において、サーバ２８，２９、複合機１２から出力する文書がユーザ署名を必要とすると連携処理サーバ２０−２が判定した場合、連携処理サーバ２０−２から該連携ジョブ発行元の複合機１０に対してユーザの電子署名を依頼する。このためには、連携ジョブ発行元の複合機１０を示す情報を、連携処理サーバ２０−１から連携処理サーバ２０−２に送る部分連携ジョブの指示書等に組み込んでおけばよい。また、ユーザ署名が必要な場合に、連携処理サーバ２０−２から連携処理サーバ２０−１に対してユーザ署名取得依頼を行い、この依頼に応じて連携処理サーバ２０−１が連携ジョブ発行元の複写機１０にユーザ署名の付与を依頼する構成も可能である。
【０１１６】
このような連携処理サーバ同士の連携を拡張すると、図１３に示すようなシステム構成も考えられる。このシステム構成は、複合機１０と、複数のサーバ６２，６４，６６，６８から構成されている。各サーバ６２〜６８は、他のサーバや複合機から入力される指示書を解釈し、その指示書の先頭の単位ジョブから順に、自装置が処理担当に指定されていない単位ジョブを検出するまでの各単位ジョブを順に処理する。自装置が処理担当かどうかは、各単位ジョブの処理パラメータに示される依頼先サーバ名の記述から分かる。そして各サーバ６２〜６８は、その処理が終わると、指示書から今回処理した単位ジョブの記述を削除することで指示書を更新し、この更新後の指示書の先頭の単位ジョブの処理担当に指定されているサーバ６２〜６８に対し、その更新後の指示書と、その処理の結果の文書を送信して処理を依頼する。ここで送信する処理結果文書は、次のサーバ６２〜６８での処理対象となる。このような指示書による処理依頼を各サーバ間で連携することで、一連の連携ジョブが実現される。ここで、サーバ６２は、複合機１０に対する連携ジョブサービスの窓口となるサーバであり、複合機１０に対して連携ジョブ指示用のＵＩ画面情報を提供する。図１３は、複合機１０からサーバ６２，６４，６６，６８の順に処理依頼が行われ、連携ジョブが実現される例を示している。
【０１１７】
このようなシステムにおいて、各サーバ６２〜６８は、連携ジョブの指示書に示されたユーザ署名の指定３０３（又はこれと同様の情報を示す単位ジョブの記述）から、次に処理を依頼するサーバに対して送る出力対象の文書にユーザの電子署名が必要か否かを判定し、必要と判定した場合は、次のサーバに送信する出力対象文書を複合機１０に送ってユーザ署名を依頼し、その結果複合機１０から返されてくるユーザ署名済みの文書を次のサーバに送信する。
【０１１８】
また、このように文書出力を行うサーバの前段のサーバがユーザ署名取得のための処理を行う代わりに、文書出力を行うサーバ自体がその出力の前にその文書に対するユーザ署名の取得処理を行う構成とすることもできる。すなわち、各サーバ６２〜６８は、連携ジョブの指示書におけるユーザ署名の指定３０３（又はこれと同様の情報を示す単位ジョブの記述）に基づき、その指示書と共に受け取った出力対象の文書データに対して、該連携ジョブ発行元のユーザの電子署名が必要か否かを判定し、必要と判定した場合は、その処理結果文書を複合機１０に送ってユーザ署名を依頼し、その結果複合機１０から返されてくるユーザ署名済みの文書に対し、指示書に示される所定の出力処理を行う。
【０１１９】
また、以上の実施形態では、連携ジョブの実行指示は複合機から行われたが、これに限らず、ネットワーク上のパーソナルコンピュータその他の装置から連携ジョブの実行指示を行うことも可能である。
【図面の簡単な説明】
【図１】本発明に係る文書処理システムの概略構成を示す図である。
【図２】複合機、連携処理サーバ、及び各種サーバの詳細構成を説明するための図である。
【図３】文書処理システムにおいて、ユーザが連携ジョブの実行指示を入力の際に行われる処理の手順を示すフローチャートである。
【図４】連携ジョブを指示する指示書のデータ構造の一例を示す図である。
【図５】連携処理サーバが行う連携ジョブ制御処理の手順を示すフローチャートである。
【図６】連携処理サーバが処理依頼先のサーバに送る指示書のデータ構造の一例を示す図である。
【図７】実施形態の文書処理システムにおける文書処理の流れの具体例を説明するための図である。
【図８】署名要否テーブルの例を説明するための図である。
【図９】変形例の文書処理システムにおける連携処理サーバの連携制御処理の手順を示すフローチャートである。
【図１０】変形例における文書処理の流れの具体例を説明するための図である。
【図１１】ユーザ署名の代行サービスを提供する署名サーバを備えた文書処理システムの例を示す図である。
【図１２】複数の連携処理サーバを備えた文書処理システムの例を示す図である。
【図１３】サーバからサーバへと順に指示や処理対象を受け渡して連携ジョブを実現する方式の文書処理システムを示す図である。
【符号の説明】
１０  複合機Ａ、１２  複合機Ｂ、２０  連携処理サーバ、２２  サーバＡ、２４  サーバＢ、２６  サーバＣ、３０  インターネット。
【図１】
2004151897.tif 000003
【図２】
2004151897.tif 000004
【図３】
2004151897.tif 000005
【図４】
2004151897.tif 000006
【図５】
2004151897.tif 000007
【図６】
2004151897.tif 000008
【図７】
2004151897.tif 000009
【図８】
2004151897.tif 000010
【図９】
2004151897.tif 000011
【図１０】
2004151897.tif 000012
【図１１】
2004151897.tif 000013
【図１２】
2004151897.tif 000014
【図１３】
2004151897.tif 000015