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