(57)【要約】【課題】  セキュリティレベルの異なるネットワークサービスの構築を、構造化言語を利用してより簡便に実現することができる情報処理装置、情報処理方法及びそのプログラムを提供する。【解決手段】  アプリケーション処理部７は、構造化言語で記述されたデータを生成し、生成したデータをプロトコルスタック処理部１、ＳＳＬ処理部２、ＤａｔａＳｅｎｄ処理部４、ＨＴＴＰ処理部５を介してネットワーク経由で他の装置へ提供する。メモリ１４ｃは、アプリケーション処理部７が生成する上記データに対応するセキュリティ処理手続きが記述されたセキュリティ処理情報（ＸＭＬスクリプト）を格納する。ＸＭＬセキュリティ処理部９は、アプリケーション処理部７が生成するデータに対して、メモリ１４ｃからＸＭＬスクリプトを参照してセキュリティ処理を行う。【選択図】  図１
2005346569.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが取り扱う構造化言語を含むデータに対応するセキュリティ処理手続きが記述されたセキュリティ処理情報を格納する格納手段と、
前記アプリケーションが外部のアプリケーションと所定の通信媒体を用いて安全に通信するために、前記格納手段から前記セキュリティ処理情報を参照して、前記アプリケーションが取り扱う前記データに対する暗号化処理、署名処理を実行することを含むセキュリティ処理を行うセキュリティ処理手段と
を具備することを特徴とする情報処理装置。
【請求項２】
前記セキュリティ処理手段は、前記データの一部をセキュリティ処理することで処理後データを生成した場合に、前記データの一部を前記処理後データに改編する改編手段を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記格納手段に格納されるセキュリティ処理情報は、ネットワークを介して外部より登録、更新及び削除が少なくとも可能な情報であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記セキュリティ処理手段は、前記格納手段に前記データに対応する前記セキュリティ処理情報が格納されているか否かに応じて、前記セキュリティ処理を行うか否かを判断することを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記セキュリティ処理手段は、前記セキュリティ処理情報の内容が前記データの内容に応じたものであるか否かを判断する判断手段を更に具備し、前記判断手段の判断に応じて前記セキュリティ処理を行うか否かを判断することを特徴とする請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
ネットワークを介して他の装置と通信を行う通信手段と、
前記通信手段を介して、前記セキュリティ処理手段が前記セキュリティ処理した前記データ又は前記改編手段が改編した前記データを前記ネットワーク経由で前記他の装置へ送信する処理を制御する送信制御手段と
を更に具備することを特徴とする請求項２〜５のいずれか１項に記載の情報処理装置。
【請求項７】
前記セキュリティ処理情報は、構造化言語で記述されていることを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
前記改編手段は、前記データの一部を前記処理後データに改編する処理以外に、前記処理後データを復号するための情報と、前記処理後データを検証するための情報を前記データに追記する処理を更に行うことを特徴とする請求項２〜７のいずれか１項に記載の情報処理装置。
【請求項９】
前記改編手段は、前記データを解析して前記データがＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｃｏｌ）の規定に応じたものであるか否かを解析する解析手段を更に備え、前記解析手段が前記データをＳＯＡＰの規定に応じたものであると解析した場合に、前記処理後データを前記ＳＯＡＰで規定するボディ部分に記述し、前記処理後データを復号するための情報と、前記処理後データを検証するための情報を前記ＳＯＡＰで規定するヘッダ部分に記述する処理を行うことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
アプリケーションを有する情報処理装置を用いた情報処理方法であって、
前記アプリケーションが外部のアプリケーションと所定の通信媒体を用いて安全に通信するために、前記アプリケーションが取り扱う構造化言語を含むデータに対応するセキュリティ処理手続きが記述されたセキュリティ処理情報を参照して、前記データに対して暗号化処理、署名処理を実行することを含むセキュリティ処理を行うセキュリティ処理ステップを有することを特徴とする情報処理方法。
【請求項１１】
前記セキュリティ処理ステップは、前記データの一部をセキュリティ処理することで処理後データを生成する場合に、前記データの一部を前記処理後データに改編する改編処理ステップを更に有することを特徴とする請求項１０に記載の情報処理方法。
【請求項１２】
前記セキュリティ処理情報は、前記情報処理装置内の格納手段に格納され、ネットワークを介して外部より登録、更新及び削除が少なくとも可能な情報であることを特徴とする請求項１０または１１に記載の情報処理方法。
【請求項１３】
前記セキュリティ処理ステップは、前記格納手段に前記データに対応する前記セキュリティ処理情報が格納されているか否かに応じて、前記セキュリティ処理を行うか否かを判断するステップを更に含むことを特徴とする請求項１２に記載の情報処理方法。
【請求項１４】
前記セキュリティ処理ステップは、前記セキュリティ処理情報の内容が前記データの内容に応じたものであるか否かを判断する判断処理ステップと、前記判断処理ステップの判断に応じて前記セキュリティ処理を行うか否かを判断するステップを更に含むこと特徴とする請求項１０〜１３のいずれか１項に記載の情報処理方法。
【請求項１５】
前記セキュリティ処理ステップで前記セキュリティ処理した前記データ又は前記改編処理ステップで改編した前記データをネットワーク経由で他の装置へ送信する処理を制御する送信制御ステップを更に有することを特徴とする請求項１１〜１４のいずれか１項に記載の情報処理方法。
【請求項１６】
前記セキュリティ処理情報は、構造化言語で記述されていることを特徴とする請求項１０〜１５のいずれか１項に記載の情報処理方法。
【請求項１７】
前記改編処理ステップは、前記データの一部を前記処理後データに改編する処理以外に、前記処理後データを復号するための情報と、前記処理後データを検証するための情報を前記データに追記する処理を更に含むことを特徴とする請求項１１〜１６のいずれか１項に記載の情報処理方法。
【請求項１８】
前記改編処理ステップは、前記データを解析して前記データがＳＯＡＰの規定に応じたものであるか否かを解析する解析ステップと、前記解析ステップで前記データをＳＯＡＰの規定に応じたものであると解析した場合に、前記処理後データを前記ＳＯＡＰで規定するボディ部分に記述し、前記処理後データを復号するための情報と、前記処理後データを検証するための情報を前記ＳＯＡＰで規定するヘッダ部分に記述する処理ステップとから構成されることを特徴とする請求項１７に記載の情報処理方法。
【請求項１９】
請求項１０〜１８のいずれか１項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークに対応した周辺装置、および該周辺装置を制御する情報処理装置、情報処理方法及びそのプログラムに関するものである。
【背景技術】
【０００２】
近年、Ｗｅｂサービスの台頭により、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）がビジネス文書管理、メッセージング、データベースなど多岐に渡り利用され、その応用範囲は、ますます広がっている。それに伴いＷｅｂサービスでのセキュリティ標準をＸＭＬベースで提供する動きが活発になってきている。その一例として、ＸＭＬデジタル署名、ＸＭＬ暗号化、ＷＳ−Ｓｅｃｕｒｉｔｙに代表されるようにＷ３Ｃ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ）やＯＡＳＩＳといった標準化団体において、ＸＭＬセキュリティ関連仕様が策定されつつある。
【０００３】
ＸＭＬのＷｅｂサービスの応用例として、マイクロソフト社が主催して策定を進めているＵＰｎＰ（登録商標）に注目すると、サービスを提供するデバイスの情報がＸＭＬで記述されたＤｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｏｃｕｍｅｎｔと呼ばれるドキュメントを、サービスを要求するクライアントに対して通知されるが、このドキュメントには、このサービスをコントロールするためジョブ要求の送信先情報がＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）の形式で記述されている。
【０００４】
悪意のある第三者の介入がありえない、たとえば家庭内ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、スモールオフィス内ＬＡＮにおいて、このサービスを使用する限りにおいては、このジョブ要求の送信先を秘匿する必要性は低いが、インターネットを介して不特定多数のユーザが、このサービスを利用する可能性がある場合、このジョブ要求の送信先情報が可読可能なＸＭＬで記述されている場合、悪意のある第三者によって不正ジョブが投入される可能性があり、それが原因となってサービスを提供するシステムに甚大な被害を与える場合がありうる。したがって、後者のような利用環境においては、Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｏｃｕｍｅｎｔに記述される情報に対しセキュリティ対策を施す必要がでてくる。
【０００５】
例えば、インターネット上で動画像データの配信を行うシステムにおいて、配信する動画像データの一部のみを暗号化処理することで、復号化処理においてもその一部のみを復号化すればよいのでセキュリティ処理コストの低減を実現することができるデータ暗号化装置に関する技術が開示されている（例えば、特許文献１参照。）。本願発明は、単なるデータストリームの部分暗号化に係るものではなく、下記問題点を鑑みてなされたものである。
【０００６】
【特許文献１】特開平０７−８７０７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように動画像データの配信などのサービスに対して、セキュリティ対策を施すに当たっては、そのサービスを利用、提供する側の双方において、利用する暗号化アルゴリズム、プロトコル等に関して合わせる必要があり、そのサービスが使用されるシステム構成に応じたセキュリティシステムを提供しなければならない。
【０００８】
すなわち、ＸＭＬを利用したＷｅｂサービスを提供する場合、それが同一機能を提供するサービスであっても、そのサービス使用される環境、セキュリティレベル、システム構成に応じて、それぞれ異なるＸＭＬデジタル署名、ＸＭＬ暗号といった対応が必要である。すなわち、サービスを提供するソフトウエア毎に、セキュリティ処理のプログラムを開発する必要がある。そのため開発コストが肥大化するばかりでなく、最適なセキュリティシステムを最適なタイミングで導入することへの妨げとなり、ひいては不正利用による被害をもたらすことの原因となっている。
【０００９】
本発明は、上述した事情を考慮してなされたもので、セキュリティレベルの異なるネットワークサービスの構築を、構造化言語を利用してより簡便に実現することができる情報処理装置、情報処理方法及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明は、上述した課題を解決すべくなされたもので、本発明による情報処理装置においては、アプリケーションが取り扱う構造化言語を含むデータに対応するセキュリティ処理手続きが記述されたセキュリティ処理情報を格納する格納手段と、アプリケーションが外部のアプリケーションと所定の通信媒体を用いて安全に通信するために、格納手段からセキュリティ処理情報を参照して、アプリケーションが取り扱うデータに対する暗号化処理、署名処理を実行することを含むセキュリティ処理を行うセキュリティ処理手段とを具備することを特徴とする。
【００１１】
また、本発明による情報処理方法においては、アプリケーションを有する情報処理装置を用いた情報処理方法であって、アプリケーションが外部のアプリケーションと所定の通信媒体を用いて安全に通信するために、アプリケーションが取り扱う構造化言語を含むデータに対応するセキュリティ処理手続きが記述されたセキュリティ処理情報を参照して、データに対して暗号化処理、署名処理を実行することを含むセキュリティ処理を行うセキュリティ処理ステップを有することを特徴とする。
【００１２】
また、本発明によるプログラムは、請求項１０〜１８のいずれか１項に記載の情報処理方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１３】
本発明による情報処理装置、情報処理方法及びそのプログラムは、セキュリティ処理手続きを記述した情報を利用して、構造化言語で記述されたデータの一部または全部に対してセキュリティ処理を行うことにより、例えばセキュリティレベルの異なるネットワークサービスを簡便に実現することができる。更には、セキュリティ処理のための開発コストを大幅に削減するばかりでなく、最適なセキュリティシステムを最適なタイミングで導入することができる。
【発明を実施するための最良の形態】
【００１４】
以下添付図面を参照して本発明の好適な実施形態について詳細に説明する。
まず、本発明の一実施形態であるネットワーク対応型プリンタを含むネットワーク印刷システムの概略構成について説明する。図１８は、本発明の一実施形態であるネットワーク対応型プリンタを含むネットワーク印刷システムの概略構成を示す図である。図１８において、Ｐ１はプリンタであり、ネットワークＮ１を介して接続可能なコンピュータ端末へ印刷サービスを提供するネットワーク対応型プリンタである。Ｃ１、Ｃ２、…は、コンピュータ端末であり、ネットワークＮ１を介してプリンタＰ１を利用する。本実施形態におけるプリンタＰ１は、構造化言語であるＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）を用いて印刷データ、プロファイル情報、ステータス情報などに対するセキュリティ処理を行う機能を有する点に特徴がある。
【００１５】
また、プリンタＰ１のハードウェア構成は、例えば通信装置１００、ＣＰＵ（中央処理装置）１０１、メモリ１０２、ＨＤＤ（ハード  ディスク  ドライブ）１０３及び印刷処理装置１０４などから構成されている。通信装置１００は、ネットワークＮ１を介して通信を行う。ＣＰＵ１０１は、プリンタＰ１における種々の機能を実現するためのプログラムを実行するコンピュータである。具体的には、ＣＰＵ１０１は、ＨＤＤ１０３から種々の機能を実現するためのプログラム（アプリケーションプログラム等）を読み出し、メモリ１０２をワーク領域として、読み出したプログラムを実行する。
【００１６】
次に、本実施形態におけるプリンタＰ１が有する機能構成について説明する。
図１は、本実施形態におけるプリンタＰ１が有する機能構成を示すブロック図である。プリンタＰ１は、ＸＭＬ、およびＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）を使用するアプリケーション処理部７と、ＸＭＬセキュリティ処理部９とが、それぞれ独立した構成であり、各々、図１に示した各機能モジュールにより構成されるものである。
【００１７】
まず、アプリケーション処理部７の下位層となる機能モジュールの構成について説明する。
プリンタＰ１は、通信機能としてＴＣＰ／ＩＰ／ＵＤＰプロトコルをスタックするプロトコルスタック処理部１を備え、その上位層にＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）処理部２を備えることで通信回線上のセキュリティを保証する構成を持つ。また、プリンタＰ１は、ＤａｔａＲｅｃｅｉｖｅ（データ受信）処理部３、ＤａｔａＳｅｎｄ（データ送信）処理部４を備え、それぞれがデータの受信処理、データの送信処理を行う。また、プリンタＰ１は、それらＤａｔａＲｅｃｅｉｖｅ処理部３及びＤａｔａＳｅｎｄ処理部４の上位層にＨＴＴＰ１．１のプロトコルで通信するＨＴＴＰ処理部５を備える。また、プリンタＰ１は、ＨＴＴＰ処理部５の上位層にＳＯＡＰ処理部６を備え、その上位層にアプリケーション処理部７を備える。
【００１８】
ＳＯＡＰ処理部６は、アプリケーション処理部７が利用する処理モジュールの関数名、およびその引数に対応するＳＯＡＰエンベロープを生成し、メモリ装置制御部１３を介してメモリ上にＸＭＬデータとして書き出す機能を有する。また、ＳＯＡＰ処理部６は、受信したＳＯＡＰレスポンスを解析し対応する処理モジュールの返り値を生成し、内部処理モジュールにマッピングし、該内部処理モジュールを呼び出す機能を備える。これらの階層の最上位層にネットワーク対応プリンタ上で機能する各種ネットワークアプリケーションの処理を行うアプリケーション処理部７が実装される。アプリケーション処理部７には、複数のアプリケーションを実装することが可能であり、一部のアプリケーションは、図１８に示した印刷処理装置１０４を制御するプリンタコントローラ部８との通信機能を備える。
【００１９】
次に、ＸＭＬセキュリティ暗号化処理部９の下位層となる機能モジュールの構成について説明する。尚、ＸＭＬセキュリティ暗号化処理部９の下位層となる機能モジュールは、メモリ装置制御部１３を介してメモリへアクセスする機能を有する。メモリ装置制御部１３は、ＸＭＬデータを格納するメモリ１４ａ、暗号化処理後のＸＭＬデータを格納するメモリ１４ｂ及び暗号化処理手順が記述されたＸＭＬスクリプトを格納するメモリ１４ｃへのデータの書込み及び読み出しを制御する。
【００２０】
尚、メモリ装置制御部１３がアクセス制御を行うメモリは、メモリ１４ａ〜１４ｃに限らず、例えばプリンタＰ１をネットワークＮ１経由で利用するために必要な情報（例えばアカウント情報やデバイス記述ファイルなど）を格納する他のメモリ（図示せず）に対してもアクセス制御可能である。また、メモリのハードウェアの構成としては、上述したメモリ１４ａ〜１４ｃ及び他のメモリは同一の記録媒体内に構成されるものであっても、別々の記録媒体で構成されるものであってもよい。
【００２１】
図１に示すように、ＸＭＬセキュリティ暗号化処理部９は、ＸＭＬデータ処理部１０、暗号モジュール処理部１１、及びＸＭＬスクリプト管理処理部１２を階層に備える。ＸＭＬデータ処理部１０は、ＸＭＬデータを処理するためのＸＰａｔｈ（ＸＭＬ Ｐａｔｈ Ｌａｎｇｕａｇｅ）、ＸＳＬＴ（ｅＸｔｅｎｓｉｂｌｅ  Ｓｔｙｌｅｓｈｅｅｔ  Ｌａｎｇｕａｇｅ  Ｔｒａｎｓｌａｔｉｏｎ）、ＤＯＭ（Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）から構成される。暗号モジュール処理部１１は、例えば３ＤＥＳ−ＣＢＣ、ＡＥＳ１２８−ＣＢＣ、ＡＥＳ２５６−ＣＢＣ、ＲＳＡ−ＰＬＣＳｖ１．５、ＲＳＡ−ＯＡＥＰＣＭＳ  ３ＤＥＳ  Ｋｅｙ  Ｗｒａｐ、ＡＥＳ  Ｋｅｙ  Ｗｒａｐ、ＳＨＡ−１、ＳＨＡ２５６及びＳＨＡ５１２などの暗号アルゴリズム処理モジュールを制御する。
【００２２】
以上の下位層を備えることでＸＭＬセキュリティ処理部９は、メモリ１４ｃ上に登録されたＸＭＬスクリプトを、メモリ装置制御部１３を介して読み取り、該ＸＭＬスクリプトにおいて指定された内容に従い、メモリ１４ａ上に記録されたＸＭＬデータに対し暗号化処理を実施し、処理した結果であるＸＭＬデータを、メモリ装置制御部１３を介してメモリ１４ｂ上に記録する。さらに、ＸＭＬセキュリティ処理部９には、ＸＭＬスクリプト管理処理部１２を備え、ＸＭＬスクリプトの登録、削除、および認証処理を実行する。また、ＸＭＬセキュリティ処理部９はＳＯＡＰ処理部６を介して外部のネットワーク対応情報処理装置との通信機能を有する。
【００２３】
アプリケーション処理部７は、メモリ装置制御部１３を介してメモリ１４ａ上にＸＭＬデータを登録した後に、ＸＭＬセキュリティ処理部９に制御を移す。これにより、ＸＭＬセキュリティ処理部９は、メモリ１４ｃより参照するＸＭＬスクリプトに記述された手順に従い、メモリ１４ａ上に登録されたＸＭＬデータに対し暗号化処理を実行し、その結果に基づきＸＭＬデータを編集する。その際、ＸＭＬセキュリティ処理部９は、元のＸＭＬデータがＳＯＡＰエンベロープ形式で記述されているか否かを判断する。ここで、元のＸＭＬデータがＳＯＡＰエンベロープ形式であると判断した場合には、ＸＭＬセキュリティ処理部９は、ＯＡＳＩＳ  ＷＳ−Ｓｅｃｕｒｉｔｙで規定されるフォーマットに従い暗号化処理情報を編集する。また、元のＸＭＬデータがＳＯＡＰエンベロープ形式ではないと判断した場合には、ＸＭＬセキュリティ処理部９は、Ｗ３Ｃ  ＸＭＬ  Ｅｎｃｒｙｐｔｉｏｎで規定されるフォーマットに従い暗号化情報（ＸＭＬデータ）を編集処理し、その結果をメモリ装置制御部１３を介してメモリ１４ｂ上に登録する。
【００２４】
アプリケーション処理部７は、ＸＭＬセキュリティ処理部９の処理完了通知を受けた後、この暗号化処理、および編集処理されたＸＭＬデータの送信処理を実行するプロセスを実行する。
【００２５】
まず、本実施形態では、プリンタＰ１上で実行されるアプリケーションに対応した暗号化処理手順が記載されたＸＭＬスクリプトを、プリンタＰ１に対して予め登録しておく。尚、この登録処理を実行せずに、プリンタＰ１のメモリ１４ｃ上にアプリケーションに対応するＸＭＬスクリプトが存在しない場合、暗号化処理は実施されない。このＸＭＬスクリプトは、プリンタＰ１を含むネットワークシステムの管理者がプリンタＰ１に対し、ネットワークを介して登録処理を実施することで、メモリ１４ｃに格納される。
【００２６】
ＸＭＬスクリプト管理処理部１２は、システム管理者のＩＤ登録、登録内容変更、削除機能を備える。いずれの機能もＸＭＬ−ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）によりシステム管理者が操作する外部デバイス（例えば図１８のコンピュータ端末Ｃ１）から管理され、かつＸＭＬスクリプトが記録されたコンピュータと通信する。
【００２７】
本実施形態においては、ＸＭＬスクリプトを登録することができる管理者は、１つのアプリケーションに対して一人のみに限定されており、この場合、管理者のアカウント登録に関して以下に示すＸＭＬ−ＳＯＡＰ  ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）を備える。
【００２８】
ＲｅｇｉｓｔｒａｔｉｏｎＩＤ（ａｐｐｌｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒｄ）とは、アカウントを開設するためのＳＯＡＰ関数である。ここで、ａｐｐｉｃａｔｉｏｎＩＤ（アプリケーションＩＤ）は、ＸＭＬスクリプトとアプリケーションを一義的に対応付けるためのＩＤであり３２文字までの文字列の登録が可能。ａｃｃｏｕｎｔ（アカウント）は管理者のアカウント名で１６文字までの文字列を登録可能。ｐａｓｓｗｏｒｄ（パスワード）は、上記ａｃｃｏｕｎｔに対するパスワードであり、これも１６文字までの文字列を登録可能である。
【００２９】
ＣｈａｎｇｅＰａｓｓｗｏｒｄ（ａｐｐｌｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒｄ、ｎｅｗＰａｓｓｗｏｒｄ）とは、指定されたアカウントのパスワードを変更するためのＳＯＡＰ関数である。ここで、ａｐｐｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒｄは、ＲｅｇｉｓｔｒａｔｉｏｎＩＤを使用してアカウントを開設した際の設定値と同一の値を設定し、ｎｅｗＰａｓｓｗｏｒｄに変更後のパスワードを設定する。
【００３０】
ＤｅｌｅｔｅＩＤ（ａｐｐｌｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒｄ）とは、登録済みのアカウントを削除するためのＳＯＡＰ関数である。ここで、ａｐｐｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒｄは、ＲｅｇｉｓｔｒａｔｉｏｎＩＤを使用してアカウントを開設した際の設定値と同一の値を指定する。
【００３１】
次に、フローチャートに従い、本実施形態におけるネットワーク印刷システムの動作の詳細を説明する。図２は、上記アカウント登録処理手順を示すフローチャートである。
図２に示す処理の前提として、システム管理者によって管理され、かつＸＭＬスクリプトが記録されたコンピュータである外部デバイス（例えば図１８のコンピュータ端末Ｃ１）が、ＨＴＴＰ  ＰＯＳＴリクエストを使用し、そのエンティティボディとして以下に記述するアカウント登録処理に関するＳＯＡＰリクエストを、ＸＭＬセキュリティ処理部９を備えるプリンタＰ１に対し送信する。尚、該送信処理はＳＳＬを介して実行されるため、送受信パケットはＳＳＬにより機密性が保障されている。
【００３２】
これにより、ＸＭＬセキュリティ処理部９を構成するＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してＳＯＡＰリクエストであるＲｅｇｉｓｔｒａｔｉｏｎＩＤを受信する（ステップＳ１のｙｅｓ）。次に、ＸＭＬスクリプト管理処理部１２は、既に同一ａｐｐｌｉｃａｔｉｏｎＩＤに対しアカウント（ａｃｃｏｕｎｔ）が存在するか否かを判断する（ステップＳ２）。該ＳＯＡＰリクエストで指定されたａｐｐｌｉｃａｔｉｏｎＩＤが既に登録済みの場合（ステップＳ２のｙｅｓ）、本実施形態では登録可能な管理者のアカウントを、１アプリケーションに対して一人のみに限定しているため、ＳＯＡＰ処理部６を介してエラーレスポンスメッセージを返信する（ステップＳ３）。この場合、管理者は既に登録済みとなっているアカウントに対して、ＤｅｌｅｔｅＩＤリクエストを使ってアカウントを削除する処理を行ってからでないと、同一のａｐｐｌｉｃａｔｉｏｎＩＤに対してアカウントを設けることはできない。
【００３３】
また、同一ａｐｐｌｉｃａｔｉｏｎＩＤが存在しない場合（ステップＳ２のｎｏ）には、ＸＭＬスクリプト管理処理部１２は、次のステップＳ４に進み、既に同一アカウントが存在するか否かを判断する。ここで、上記ＳＯＡＰリクエストで指定されたアカウントが既に登録済みの場合（ステップＳ４のｙｅｓ）には、ステップＳ３に進み、ＸＭＬスクリプト管理処理部１２は、本実施形態では登録可能は管理者のアカウントを、１アプリケーションに対して一人のみに限定しているため、ＳＯＡＰ処理部６を介してエラーレスポンスメッセージを返信する。この場合、管理者は既に登録済みとなっているアカウントをＤｅｌｅｔｅＩＤリクエストを使って削除しない限り、同一のａｐｐｌｉｃａｔｉｏｎＩＤに対してアカウントを設けることはできない。
【００３４】
また、同一アカウントが存在しない場合（ステップＳ４のｎｏ）には、ＸＭＬスクリプト管理処理部１２は、ＲｅｇｉｓｔｒａｔｉｏｎＩＤ要求の各パラメータの設定内容が正常か否かを判断する（ステップＳ６）。ここで、正常であると判断した場合（ステップＳ６のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、アカウントを登録する処理を行う（ステップＳ７）。具体的には、ＸＭＬスクリプト管理処理部１２は、アカウント情報をメモリ装置制御部１３を介してメモリに記録する。また、一部でもパラメータに不正がある（正常ではないと判断した）場合（ステップＳ６のｎｏ）には、ステップＳ３に進み、ＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してエラーレスポンスメッセージを通知する。
【００３５】
また、ステップＳ１においてＲｅｇｉｓｔｒａｔｉｏｎＩＤを受信していない場合には、ＸＭＬセキュリティ処理部９を構成するＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してＳＯＡＰリクエストであるＣｈａｎｇｅＰａｓｓｗｏｒｄを受信したか否かを判断する（ステップＳ８）。ここで、ＳＯＡＰ処理部６を介してＳＯＡＰリクエストであるＣｈａｎｇｅＰａｓｓｗｏｒｄを受信した場合（ステップＳ８のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、該要求の引数であるａｐｐｌｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒｄに関して、メモリ装置制御部１３を介してメモリ上に登録済みのアカウント情報と比較する（ステップＳ９）。ここで、すべてのパラメータが一致した場合（ステップＳ９のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、新規パスワードであるｎｅｗＰａｓｓｗｏｒｄの設定内容が正常か否かを判断する（ステップＳ１０）。ここで正常であると判断した場合（ステップＳ１０のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、該当するアカウントのパスワード情報を変更し、メモリ装置制御部１３を介してメモリ上に記録する（ステップＳ１１）。
【００３６】
また、パラメータがひとつでもメモリ上に記録された情報と一致しない場合（ステップＳ９のｎｏ）、あるいは、ｎｅｗＰａｓｓｗｏｒｄの設定値が不正である場合（ステップＳ１０のｎｏ）には、ＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してエラーレスポンスメッセージを通知する（ステップＳ１２）。
【００３７】
また、ステップＳ８においてＣｈａｎｇｅＰａｓｓｗｏｒｄを受信していない場合には、ＸＭＬセキュリティ処理部９を構成するＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してＳＯＡＰリクエストであるＤｅｌｅｔｅＩＤを受信したか否かを判断する（ステップＳ１３）。ここで、ＳＯＡＰ処理部６を介してＳＯＡＰリクエストであるＤｅｌｅｔｅＩＤを受信したと判断した場合（ステップＳ１３のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、該要求の引数であるａｐｐｌｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒｄに関して、メモリ装置制御部１３を介してメモリ上に登録済みのアカウント情報と比較する（ステップＳ１４）。ここで、すべてのパラメータが一致した場合（ステップＳ１４のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、メモリ装置制御部１３を介してメモリ上に記録されたアカウント情報を消去する（ステップＳ１５）。また、パラメータがひとつでもメモリ上に記録された情報と一致しない場合（ステップＳ１４のｎｏ）には、ＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してエラーレスポンスメッセージを通知する（ステップＳ１６）。
【００３８】
以上に示した、図２に示す処理により、システム管理者は、コンピュータ端末Ｃ１から、プリンタＰ１に対してＳＯＡＰリクエストを送信することで、アカウントの登録やパスワードの変更、アカウントの削除を行うことができる。また、ステップＳ１３において、ＳＯＡＰ処理部６を介してＳＯＡＰリクエストであるＤｅｌｅｔｅＩＤを受信していないと判断した場合（ステップＳ１３のｎｏ）には、ＸＭＬセキュリティ処理部９は、図３に示すステップＳ２１の処理へ移行する。
【００３９】
次に、アカウントが登録されているシステム管理者は、コンピュータ端末Ｃ１から、プリンタＰ１に実装されたアプリケーション（アプリケーション処理部７）に対応する暗号化処理手順が記述されたＸＭＬスクリプトをプリンタＰ１に対し送信する。例えば、プリンタＰ１は、ＸＭＬ−ＳＯＡＰにより、システム管理者によって管理され、かつＸＭＬスクリプトが記録された外部デバイス（例えばコンピュータ端末Ｃ１）と通信する。本実施形態においては、ＸＭＬスクリプトの登録、削除に関して以下に示すＸＭＬ−ＳＯＡＰ  ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）を備える。これにより、ＸＭＬスクリプト管理処理部処理部１２は、ＸＭＬスクリプトの登録、削除機能を実現する。
【００４０】
ＵｐｌｏａｄＳｃｒｉｐｔ（ａｐｐｌｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒｄ）とは、ＸＭＬスクリプトをプリンタＰ１に対し送信、登録するためのＳＯＡＰ関数である。上述したＲｅｇｉｓｔｒａｔｉｏｎＩＤでアカウントを開設した際に使用したものと、同一のａｐｐｌｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒdを使用する。ＣｈａｎｇｅＰａｓｓｗｏｒｄを使用してｐａｓｓｗｏｒｄを変更した場合は、最新のパスワードを使用する。ＸＭＬデータであるＸＭＬスクリプトは、該ＳＯＡＰ関数を記述するＳＯＡＰエンベロープの添付ファイルの形式で送信される。
【００４１】
ＤｅｌｅｔｅＳｃｒｉｐｔ（ａｐｐｌｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒｄ）とは、プリンタＰ１に登録済みのＸＭＬスクリプトを削除するためのＳＯＡＰ関数である。上述したＲｅｇｉｓｔｒａｔｉｏｎＩＤでアカウントを開設した際に使用したものと、同一のａｐｐｌｉｃａｔｉｏｎＩＤ、ａｃｃｏｕｎｔ、ｐａｓｓｗｏｒｄを使用する。ＣｈａｎｇｅＰａｓｓｗｏｒｄを使用してｐａｓｓｗｏｒｄを変更した場合は、最新のパスワードを使用する。
【００４２】
尚、本実施形態ではプリンタＰ１と、ＸＭＬスクリプトを登録できる外部デバイスとの通信はＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）２より通信路レベルで暗号化されており、かつＸＭＬスクリプト自体も予め定められたアルゴリズムを使用し暗号化されている。これにより、プリンタＰ１と外部デバイス間における通信の秘匿性を高めることができる。
【００４３】
次に、図面を用いてＸＭＬスクリプトの登録処理について説明する。
図３は、本実施形態のプリンタＰ１におけるＸＭＬスクリプトの登録処理を示すフローチャートである。
尚、図３の処理の前提として、外部デバイスであるコンピュータ端末Ｃ１は、ＨＴＴＰ  ＰＯＳＴリクエストを使用し、そのエンティティボディとしてＳＯＡＰリクエスト、およびＸＭＬスクリプトを、ＸＭＬセキュリティ処理部９を備えたプリンタＰ１に対し送信する。この時、前述のとおり該送信処理としてＳＳＬを利用することにより、送受信パケットは機密性が保障されている。
【００４４】
図３に示すように、まず、ＸＭＬセキュリティ処理部９を構成するＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してＳＯＡＰリクエストであるＵｐｌｏａｄＳｃｒｉｐｔを受信したか否かを判断する（ステップＳ２１）。ここで、ＳＯＡＰリクエストであるＵｐｌｏａｄＳｃｒｉｐｔを受信したと判断した場合（ステップＳ２１のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、引数であるａｃｃｏｕｎｔとｐａｓｓｗｏｒｄの内容を確認するため、メモリ装置制御部１３を介してメモリ上に記録されている情報（以下、アカウント情報とする）と一致するか否かを判断する（ステップＳ２２）。
【００４５】
ステップＳ２２においてアカウント情報が一致しないと判断した場合（ステップＳ２２のｎｏ）には、ＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してエラーレスポンスメッセージを返信する（ステップＳ２３）。また、ステップＳ２２においてアカウント情報が一致すると判断した場合（ステップＳ２２のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、既に同一ａｐｐｌｉｃａｔｉｏｎＩＤに対応したＸＭＬスクリプトが登録済みであるか否かを判断する（ステップＳ２４）。
【００４６】
ステップＳ２４において既に登録済みであると判断した場合（ステップＳ２４のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、本実施形態では１つのアプリケーションに対し登録可能なＸＭＬスクリプトを１ファイルのみに限定しているため、ステップＳ２３に進み、ＳＯＡＰ処理部６を介してエラーレスポンスメッセージを返信し、図２のステップＳ１へ戻る。尚、この場合には、管理者は既に登録済みとなっているＸＭＬスクリプトをＤｅｌｅｔｅＳｃｒｉｐｔリクエストを使って削除しない限り、同一のａｐｐｌｉｃａｔｉｏｎＩＤに対してＸＭＬスクリプトを登録する事はできない。
【００４７】
また、ステップＳ２４において登録済みのスクリプトが存在しないと判断した場合（ステップＳ２４のｎｏ）には、ＸＭＬスクリプト管理処理部１２は、該リクエストの添付ファイルの形式で送信されたＸＭＬスクリプトを、メモリ装置制御部１３を介してメモリ１４ｃ上に記録する（ステップＳ２６）。以上に示した処理により、ＸＭＬスクリプト管理処理部１２は、アプリケーションに対応する暗号化処理を定義するＸＭＬスクリプトをメモリ１４ｃに登録する。
【００４８】
また、ステップＳ２１においてＳＯＡＰリクエストであるＵｐｌｏａｄＳｃｒｉｐｔを受信していない判断した場合（ステップＳ２１のｎｏ）には、ＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してＳＯＡＰリクエストであるＤｅｌｅｔｅＳｃｒｉｐｔを受信したか否かを判断する（ステップＳ２７）。ここで、ＳＯＡＰリクエストであるＤｅｌｅｔｅＳｃｒｉｐｔを受信したと判断した場合（ステップＳ２７のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、引数であるａｃｃｏｕｎｔとｐａｓｓｗｏｒｄの内容を確認するため、メモリ装置制御部１３を介してメモリ上に記録されている情報（アカウント情報）と一致するか否かを判断する（ステップＳ２８）。
【００４９】
ステップＳ２８において、アカウント情報が一致しないと判断した場合（ステップＳ２８のｎｏ）には、ＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してエラーレスポンスメッセージを返信する（ステップＳ３１）。また、アカウント情報が一致すると判断した場合（ステップＳ２８のｙｅｓ）には、ＸＭＬスクリプト管理処理部１２は、既に同一ａｐｐｌｉｃａｔｉｏｎＩＤに対応したＸＭＬスクリプトが登録済みでないか判断する（ステップＳ２９）。
【００５０】
ステップＳ２９において、指定されたａｐｐｌｉｃａｔｉｏｎＩＤをもつＸＭＬスクリプトがメモリ１４ｃ上に記録されていない場合（登録済みでない場合）には、ＸＭＬスクリプト管理処理部１２は、ＳＯＡＰ処理部６を介してエラーレスポンスメッセージを返信する（ステップＳ３０）。また、指定されたａｐｐｌｉｃａｔｉｏｎＩＤをもつＸＭＬスクリプトがメモリ上に記録されている場合（登録済みである場合）には、ＸＭＬスクリプト管理処理部１２は、メモリ装置制御部１３を介してメモリ上に記録されたＸＭＬスクリプトを削除する（ステップＳ３１）。
【００５１】
以上に示した処理により、外部デバイス（コンピュータ端末Ｃ１）から、プリンタＰ１へのアプリケーションに応じたＸＭＬスクリプトの登録処理が完了する。システム管理者は必要、用途に応じて該当するアプリケーションのＸＭＬスクリプトを登録、削除を繰り返し実行することが可能である。
【００５２】
ＸＭＬスクリプトの登録処理が完了すると、ＸＭＬセキュリティ処理部９ではＸＭＬスクリプトの記述内容に従い、必要に応じて前処理を実行する。
【００５３】
図４は、ＸＭＬスクリプトのフォーマット例を示す図である。
図４に示すようにＸＭＬスクリプトはＸＭＬで記述され、ＸＭＬ宣言より記述が開始される。１本実施形態においては１つのアプリケーションにつき１つのＸＭＬスクリプトが登録可能である。また、ＸＭＬスクリプト中には複数のエレメントが定義されており、各エレメントは、例えば＜Ａ＞というタグから＜／Ａ＞というタグまでの、一組のタグの間に種々の情報が記述され、各エレメントを木構造の関係とすることができる構造化記述の構成である。
【００５４】
図４において、＜ａｐｐｌｉｃａｔｉｏｎＩＤ＞のタグで定義されるエレメント４０１は、ＸＭＬ暗号化処理を実施するアプリケーションを一義的に識別するためのＩＤとして使用され、そのコンテンツには任意の最大３２文字までの文字列により定義される情報を示す。また、＜ＥｎｃｒｙｐｔｅｄＤａｔａ＞のタグで定義されるエレメント４０２は、ＸＭＬ暗号化処理内容が定義されている。図４では、エレメント４０２の子エレメントとして、＜ＥｎｃｒｙｐｔｅｄＴａｒｇｅｔＭｏｄｅ＞のタグで定義されるエレメント４０３と＜ＫｅｙＩｎｆｏ＞のタグで定義されるエレメント４０４が定義される。以下、「＜××＞のタグで定義されるエレメント」を単に「＜××＞のエレメント」と記載する。
【００５５】
＜ＥｎｃｒｙｐｔｅｄＴａｒｇｅｔＭｏｄｅ＞のエレメント４０３は、ＸＭＬ暗号を実施する際のモード指定に使用される。具体的には、“ＡＬＬ”、“ＥＬＥＭＥＮＴ”、“ＣＯＮＴＥＮＴＳ”の３種類のモードが指定できる。ＡＬＬの場合：アプリケーションで使用するＸＭＬドキュメントの全てに対し暗号処理を実施する。ＥＬＥＭＥＮＴの場合：＜ＥｎｃｒｙｐｔｅｄＴａｒｇｅｔＭｏｄｅ＞のタグ内にコンテンツとして記述されたエレメント（図４の“ｅｌｅｍｅｎｔ  ｎａｍｅ”）に対し、そのエレメント自身、およびその子エレメントに対し暗号処理を実施する。ＣＯＮＴＥＮＴＳの場合：＜ＥｎｃｒｙｐｔｅｄＴａｒｇｅｔ  ｍｏｄｅ＞のタグ内にコンテンツとして記述されたエレメントに対し、そのエレメントのコンテンツ、および子エレメントに対し暗号処理を実施する。
【００５６】
＜ＫｅｙＩｎｆｏ＞のエレメント４０４は、暗号化処理の際に使用される共通鍵、公開鍵などの暗号鍵に関する情報が定義されている。図４において、＜ＳｙｍｍｅｔｒｉｃＫｅｙＩｎｆｏ＞のエレメント４０５は、共通鍵に関する情報が定義されており、その子エレメントである＜ＥｎｃｒｙｐｔｉｏｎＭｅｔｈｏｄ＞のエレメント４０６において暗号処理に使用されるアルゴリズムを記述する。本実施形態では図４に示すようにエレメント４０６において指定可能なアルゴリズムは３ＤＥＳ−ＣＢＣ、ＡＥＳ１２８−ＣＢＣ、ＡＥＳ２５６−ＣＢＣのいずれかであり、いずれかの文字列による記述にて指定する。
【００５７】
＜ＫｅｙＶａｌｕｅ＞のエレメント４０７は、上記エレメント４０６で指定されるアルゴリズムを用いて生成された共通鍵の値が、Ｂａｓｅ６４エンコードによりテキスト変換された値が設定される。
【００５８】
＜ＰｕｂｌｉｃＫｅｙＩｎｆｏ＞のエレメント４０８は、公開鍵に関する情報が定義されており、その子エレメントである＜ＥｎｃｒｙｐｔｉｏｎＭｅｔｈｏｄ＞のエレメント４０９において暗号化処理に使用されるアルゴリズムを記述する。図４に示すように本実施形態において指定可能なアルゴリズムはＲＳＡ−ＰＫＣＳｖ１．５、ＲＳＡ−ＯＡＥＰのいずれかであり、いずれかの文字列による記述にて指定する。
＜ＲｅｔｒｉｅｖａｌＭｅｔｈｏｄ＞のエレメント４１０には、公開鍵の取得先がＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒｓ）形式で記述される。
【００５９】
＜ＫｅｙＶａｌｕｅ＞のエレメント４１１には、通信相手が特定されたアプリケーションの場合に、予め通信相手より取得した公開鍵をＢａｓｅ６４エンコーディングによりテキスト変換された値が設定される。なお、このエレメント４１１がＸＭＬスクリプトに記述されていない場合、あるいは、そのコンテンツがブランクである場合、アプリケーション実行時にＸＭＬセキュリティ処理部９が公開鍵を取得する。
【００６０】
＜ＣｉｐｈｅｒＤａｔａ＞のエレメント４１２は、ＸＭＬ暗号処理に使用される＜ＳｙｍｍｅｔｒｉｃＫｅｙＩｎｆｏ＞のエレメント４０５で定義された共通鍵を、＜ＰｕｂｌｉｃＫｅｙＩｎｆｏ＞のエレメント４０８で定義される公開鍵で暗号化された値を、Ｂａｓｅ６４エンコーディングによりテキスト変換された値が設定される。共通鍵、あるいは公開鍵のいずれかの＜ＫｅｙＶａｌｕｅ＞がＸＭＬスクリプトに記述されていない場合は、エレメント４１２のコンテンツはブランクとなる。
【００６１】
尚、本実施形態において＜ＥｎｃｒｙｐｔｅｄＴａｒｇｅｔＭｏｄｅ＞のエレメント４０３のモード設定が“ＥＬＥＭＥＮＴ”、あるいは“ＣＯＮＴＥＮＴＳ”の場合、複数のエレメントに対する暗号化処理の指定が可能であり、図４における＜ＥｎｃｒｙｐｔｅｄＤａｔａ＞のエレメント４０２の記述をその対象エレメントの数に応じて記述する。
【００６２】
図３に示したステップＳ２６においてＸＭＬスクリプトの登録処理が完了すると、ＸＭＬセキュリティ処理部９は、ＸＭＬスクリプトの検証処理を実施する。図５は、ＸＭＬセキュリティ処理部９が行うＸＭＬスクリプトの検証処理のフローチャートである。
【００６３】
ＸＭＬセキュリティ処理部９は、メモリ装置制御部１３を介しメモリ１４ｃ上に登録されたＸＭＬスクリプトをパース（解析）して、ＸＭＬスクリプト文中に＜ＣｉｐｈｅｒＤａｔａ＞のエレメント（図４のエレメント４１２）のコンテンツの有無をチェックする（ステップＳ４１）。ここで、＜ＣｉｐｈｅｒＤａｔａ＞のエレメントのコンテンツが存在しないと判断した場合（ステップＳ４１のｎｏ）には、ＸＭＬセキュリティ処理部９は、＜ＰｕｂｌｉｃＫｅｙＩｎｆｏ＞のエレメント（図４のエレメント４０８）のコンテンツをパースすることで公開鍵の有無を判断する（ステップＳ４２）。具体的には、ＸＭＬセキュリティ処理部９は、上記エレメントの子エレメントである公開鍵の情報＜ＫｅｙＶａｌｕｅ＞のエレメント（図４のエレメント４１１）のコンテンツをパースすることで、公開鍵の有無を判断する。
【００６４】
ここで、公開鍵がないと判断した場合（ステップＳ４２のｎｏ）には、ＸＭＬセキュリティ処理部９は、＜ＲｅｔｒｉｅｖａｌＭｅｔｈｏｄ＞のエレメント（図４のエレメント４１０）で指定されたＵＲＩより公開鍵を取得する（ステップＳ４３）。次に、ＸＭＬセキュリティ処理部９は、ステップＳ４３で取得した鍵情報に対しＢａｓｅ６４エンコードを実施し、その結果を＜ＫｅｙＶａｌｕｅ＞のエレメントのコンテンツとして追記処理を実行し（ステップＳ４４）、ステップＳ４８へ進む。
【００６５】
また、ステップＳ４２において公開鍵があると判断した場合（ステップＳ４２のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、＜ＳｙｍｍｅｔｒｉｃＫｅｙＩｎｆｏ＞のエレメント（図４のエレメント４０５）のコンテンツをパースすることで共通鍵の有無を判断する（ステップＳ４５）。具体的には、ＸＭＬセキュリティ処理部９は、上記エレメントの子エレメントである＜ＫｅｙＶａｌｕｅ＞のエレメント（図４のエレメント４０７）のコンテンツをパースすることで、共通鍵の有無を判断する。ここで、共通鍵が無いと判断した場合（ステップＳ４５のｎｏ）には、ＸＭＬセキュリティ処理部９は、＜ＥｎｃｒｙｐｔｉｏｎＭｅｔｈｏｄ＞のエレメント（図４のエレメント４０６）で指定されたアルゴリズムに従い共通鍵を生成し（ステップＳ４６）、生成した鍵情報に対しＢａｓｅ６４エンコードを実施し、その結果を＜ＫｅｙＶａｌｕｅ＞のエレメント（図４のエレメント４０７）のコンテンツとして追記処理を実行し（ステップＳ４７）、ステップＳ４８へ進む。
【００６６】
また、共通鍵が有ると判断した場合（ステップＳ４５のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、＜ＰｕｂｌｉｃＫｅｙＩｎｆｏ＞のエレメントの子エレメントである＜ＥｎｃｒｙｐｔｉｏｎＭｅｔｈｏｄ＞のエレメント（図４のエレメント４０９）で指定されたアルゴリズムに従い共通鍵の暗号化処理を実行する（ステップＳ４８）。次に、ＸＭＬセキュリティ処理部９は、その結果（公開鍵で暗号化された共通鍵の情報）に対しＢａｓｅ６４エンコードを実施し、その結果を＜ＣｉｐｈｅｒＤａｔａ＞のエレメント（図４のエレメント４１２）としてＸＭＬスクリプトに追記処理を行う（ステップＳ４９）。
【００６７】
次に、プリンタＰ１に実装されたアプリケーション処理部７が生成、発行するＸＭＬデータ、ＳＯＡＰパケットに対するセキュリティ処理について説明する。ここでは、具体的に、プリンタＰ１のアプリケーション処理部７が、メンテナンス情報管理アプリケーションの処理を行う場合を例として挙げるものである。
【００６８】
すなわち、本実施形態のプリンタＰ１は、メンテナンス情報管理アプリケーションであるアプリケーション処理部７を実装している。このアプリケーション処理部７は、各出力用紙サイズに対する印刷枚数情報、消耗品である印刷トナーステータス情報、およびエラーログ情報を収集してメンテナンス情報を生成し、予め定められたインターバルで、各プリンタのメンテナンス情報を管理するサーバシステムに対して、生成したメンテナンス情報を送信する処理を行う。
【００６９】
ここで、アプリケーション処理部７が上記メンテナンス情報を送信する際のフォーマット例を示し説明する。
図７は、メンテナンス情報を送信する際のフォーマット例を示す図である。本実施形態の場合、以下に示すＸＭＬ−ＳＯＡＰ  ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）を備える。
【００７０】
＜ＭａｉｎｔｅｎａｎｃｅＲｅｑｕｅｓｔ＞のエレメント７０１は、＜ＤｅｖｉｃｅＮａｍｅ＞、＜ＵｓｅｒＩＤ＞、＜ＣｏｕｎｔｅｒＶａｌｕｅ＞、＜ＴｏｎｅｒＳｔａｔｕｓ＞及び＜ＥｒｒｏｒＬｏｇ＞の子エレメント７０２〜７０６を有する、メンテナンス情報を通知するためのＳＯＡＰ関数である。ここで、＜ＵｓｅｒＩＤ＞のエレメント７０３は、プリンタＰ１の所有者を一義的に対応づけるためのＩＤ（識別情報）であり３２文字までの文字列が指定可能である。＜ＤｅｖｉｃｅＮａｍｅ＞のエレメント７０２は、プリンタＰ１の製品名称を記述するものであり、２５６文字までの文字列が指定可能である。
【００７１】
＜ＣｏｕｎｔｅｒＶａｌｕｅ＞のエレメント７０４は、プリンタＰ１が実装する各出力用紙に対するカウンタ情報であり、用紙使用枚数情報を記述するエレメントである。また、上記エレメント７０４の子エレメントとして、図７に示すように各用紙サイズ（Ａ４サイズ、Ａ３サイズ）を示すエレメント＜Ａ４＞、＜Ａ３＞のコンテンツとしてカウンタ値が記述される。
【００７２】
＜ＴｏｎｅｒＳｔａｔｕｓ＞のエレメント７０５は、プリンタＰ１の印字トナーの消費状況を記述するエレメントであり、本実施形態においてプリンタＰ１はカラー印刷可能なプリンタなので、各色トナーを示す子エレメント＜Ｃｙａｎ＞、＜Ｍａｇｅｎｔａ＞、＜Ｙｅｌｌｏｗ＞、＜Ｂｌａｃｋ＞それぞれに対し、そのコンテンツとしてＦＵＬＬ、ＭＩＤＤＬＥ、ＬＯＷが記述される。
【００７３】
＜ＥｒｒｏｒＬｏｇ＞のエレメント７０６は、プリンタＰ１のエラーステータスのログ情報を記述するものであり、その子エレメントとして、個別のエラー詳細を記述するための＜ＥｒｒｏｒＳｔａｔｕｓ＞のエレメント７０７が規定され、そのエレメントのコンテンツとしてエラー発生時を記述する＜ｔｉｍｅ＞エレメントとエラーコードを記述する＜ＥｒｒｏｒＣｏｄｅ＞エレメントが規定される。エラー情報が複数存在する場合には、＜ＥｒｒｏｒＬｏｇ＞のエレメント７０６の子エレメントである＜ＥｒｒｏｒＳｔａｔｕｓ＞のエレメント７０７が複数記述される。
【００７４】
次に、図７に示したメンテナンス情報をアプリケーション処理部７が生成する処理について説明する。
図６は、プリンタＰ１に実装されたアプリケーション処理部７におけるメンテナンス情報に関する処理を示すフローチャートである。
【００７５】
図６に示すように、まず、アプリケーション処理部７は、予め定められたインターバル（本実施形態では１２０分間）が経過したか否かを判断する（ステップＳ６１）。ここで１２０分間が経過したと判断した場合（ステップＳ６１のｙｅｓ）には、アプリケーション処理部７は、図７に示した＜ＭａｉｎｔｅｎａｎｃｅＲｅｑｕｅｓｔ＞のエレメントで定義されるＳＯＡＰ関数の各引数に相当する情報（プリンタＰ１の所有者のＩＤ、プリンタＰ１の製品名称、用紙使用枚数情報、トナーの消費状況、エラーステータスのログ情報）をプリンタコントローラ部８と通信することで収集する（ステップＳ６２）。
【００７６】
次に、アプリケーション処理部７は、ＳＯＡＰ処理部６によりＳＯＡＰエンベロープを生成し、メモリ装置制御部１３を介してメモリ上に登録する（ステップＳ６３）。次に、アプリケーション処理部７は、ＨＴＴＰ処理部５に対し、メンテナンス処理アプリケーションを一義的に定義するａｐｐｌｉｃａｔｉｏｎＩＤ、およびＳＯＡＰエンベロープを登録したメモリアドレスを通知する（ステップＳ６４）。
【００７７】
これにより、ＨＴＴＰ処理部５は、メモリ装置制御部１３を介してメモリ上にＨＴＴＰレスポンス用のヘッダを作成し、さらにそのエンティティデータとしてステップＳ６３で生成されたＳＯＡＰエンベロープを添付し、メモリ装置制御部１３を介しメモリ上に記録する（ステップＳ６５）。次に、ＨＴＴＰ処理部５は、メモリ上に記録したデータを送信するためのＤａｔａＳｅｎｄリクエストを発行する（ステップＳ６６）。尚、本実施形態においてＤａｔａＳｅｎｄリクエストの引数にはａｐｐｌｉｃａｔｉｏｎＩＤと、送信データを格納したメモリのアドレスが記述される。この場合、レスポンス用のＨＴＴＰヘッダデータおよび、そのエンティティデータであるＳＯＡＰエンベロープがメモリ上に記録されたアドレスが設定される。
【００７８】
これにより、要求を受けたＤａｔａＳｅｎｄ処理部４は、その引数であるａｐｐｌｉｃａｔｉｏｎＩＤ、およびＭａｉｎｔｅｎａｎｃｅＲｅｑｕｅｓｔデータを、メモリ制御処理部１３を介して所定のメモリ領域に書き込む処理を行い、該書き込み処理が完了した時点で、メモリ制御処理部１３は、ＸＭＬセキュリティ処理部９に通知して（ステップＳ６７）、後述する図８のステップＳ６８へ移行する。
【００７９】
次に、図６の処理の続きとなる処理を、図８を用いて説明する。
図８は、ＸＭＬセキュリティ処理部９におけるのセキュリティ処理の流れを示す図である。図８に示すように、ＸＭＬセキュリティ処理部９は、メモリ装置制御部１３を介して通知されたメモリアドレス上のデータをパースする（ステップＳ６８）。次に、ＸＭＬセキュリティ処理部９は、このパース処理により、ＸＭＬデータの有無を判断する（ステップＳ６９）。
【００８０】
ここで、通知されたメモリアドレス上にＸＭＬデータが存在しないと判断した場合（ステップＳ９のｎｏ）には、ＤａｔａＳｅｎｄ処理部４は、メモリ上に格納された送信データを、プロトコルスタック処理部１を介してネットワークＮ１上に送出する（ステップＳ７０）。上述したように通知されたメモリアドレス上にＸＭＬデータが存在しないと判断した場合とは、返信するＳＯＡＰエンベロープに対し暗号化処理を実施する必要がない場合などが該当する。また、ステップＳ７０の処理の後は、図６に示したステップＳ６１に戻る。
【００８１】
また、ステップＳ６９において通知されたメモリアドレス上にＸＭＬデータが存在すると判断した場合（ステップＳ６９のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、メモリ装置制御部１３を介してメモリ１４ｃ上に指定されたａｐｐｌｉｃａｔｉｏｎＩＤをもつＸＭＬスクリプトが登録されているか否か判断するため検索処理を実行する（ステップＳ７１）。
【００８２】
検索処理の結果、一致するａｐｐｌｉｃａｔｉｏｎＩＤを持つＸＭＬスクリプトがメモリ１４ｃに記録されていないと判断した場合（ステップＳ７１のｎｏ）には、ＸＭＬセキュリティ処理部９は、暗号化処理の必要無しと判断し、処理をＤａｔａＳｅｎｄ処理部４に戻す。これにより、ステップＳ７０に移行して、ＤａｔａＳｅｎｄ処理部４が上述したメモリ上に格納された送信データを、プロトコルスタック処理部１を介してネットワークＮ１上に送出する処理を行う。また、このように、ＸＭＬスクリプトがメモリ１４ｃに記録されていない場合とは、例えば返信するＳＯＡＰエンベロープに対し暗号化処理を実施する必要がない場合に該当する。
【００８３】
また、ステップＳ７１の検索処理の結果、一致するａｐｐｌｉｃａｔｉｏｎＩＤを持つＸＭＬスクリプトが記録されていると判断した場合（ステップＳ７１のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、該ＸＭＬスクリプトをパースして、＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のエレメント（図４のエレメント４０３）、およびそのコンテンツを読み取る（ステップＳ７２）。
【００８４】
ステップＳ７２のパース処理により、モード（ｍｏｄｅ）がＥＬＥＭＥＮＴ、あるいはＣＯＮＴＥＮＴＳであると判断した場合（ステップＳ７３のｎｏ）には、ＸＭＬセキュリティ処理部９は、そのコンテンツである暗号化対象エレメントを読み取り、指定されたエレメントが送信データであるＳＯＡＰエンベロープに存在するか（記述されているか）否か検索処理を実行する（ステップＳ７４）。
【００８５】
ここで、検索結果により送信データであるＳＯＡＰエンベロープ中に、指定されたエレメントが記述されていないと判断した場合（ステップＳ７４のｎｏ）、ＸＭＬセキュリティ処理部９では暗号化処理の必要無しと判断し、処理をＤａｔａＳｅｎｄ処理部４に戻す。これにより、ステップＳ７０に移行して、ＤａｔａＳｅｎｄ処理部４が上述したメモリ上に格納された送信データを、プロトコルスタック処理部１を介してネットワークＮ１上に送出する処理を行う。また、このように、ＳＯＡＰエンベロープ中に指定されたエレメントが記述されていない場合とは、例えば返信するＳＯＡＰエンベロープに対し暗号化処理を実施する必要がない場合に該当する。
【００８６】
また、ステップＳ７４において、送信データであるＳＯＡＰエンベロープ中に、指定されたエレメントが記述されていると判断した場合（ステップＳ７４のｙｅｓ）、あるいはＸＭＬスクリプトに記述された＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のエレメントで指定されたモードがＡＬＬの場合（ステップＳ７３のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、ＸＭＬスクリプトに記述された＜ＫｅｙＩｎｆｏ＞のエレメント、およびそのコンテンツを読み取り暗号化処理を開始する（ステップＳ７５）。
【００８７】
次に、ＸＭＬセキュリティ処理部９は、＜ＳｙｍｍｅｔｒｉｃＫｅｙＩｎｆｏ＞のエレメントの子エレメントである＜ＫｅｙＶａｌｕｅ＞のエレメントをパースして、コンテンツの内容をＢａｓｅ６４デコードすることで共通鍵を取得する（ステップＳ７６）。
【００８８】
次に、ＸＭＬセキュリティ処理部９は、共通鍵を使用して＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のエレメントにより指定されたエレメントに対して暗号化を実行する（ステップＳ７７）。具体的には、図４のエレメント４０３に示した＜ＥｎｃｒｙｐｔｉｎＴａｒｇｅｔ＞におけるｍｏｄｅ（以下、単にｍｏｄｅとする）がＡＬＬの場合は、ＸＭＬセキュリティ処理部９は、ＸＭＬデータすなわち、ＳＯＡＰエンベロープのうちＳＯＡＰボディ全体に対して暗号化処理を実行する。また、ｍｏｄｅがＥＬＥＭＥＮＴの場合は、ＸＭＬセキュリティ処理部９は、＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のコンテンツで指定されたエレメントに対し、そのコンテンツ、子エレメントも含め暗号化処理を実行する。また、ｍｏｄｅがＣＯＮＴＥＮＴＳの場合は、ＸＭＬセキュリティ処理部９は、＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のコンテンツで指定されたエレメントのコンテンツ、および子エレメントに対し暗号化処理を実行する。
【００８９】
ステップＳ７７における暗号化処理実行後は、ＸＭＬセキュリティ処理部９は、暗号化されたデータをＢａｓｅ６４エンコードによりテキスト変換する（ステップＳ７８）。ステップＳ７８の処理の後は、後述する図９に示すステップＳ７９の処理へ移行する。
【００９０】
次に、ＸＭＬセキュリティ処理部９は、ＸＭＬデータに対しＸＭＬ暗号化処理を実施した結果を元にＸＭＬ  Ｅｎｃｒｙｐｔｉｏｎ／ＷＳ−Ｓｅｃｕｒｉｔｙ規約に基づいたフォーマットに従い、ＸＭＬデータを改編する。図９は、ＸＭＬセキュリティ処理部９におけるＸＭＬ暗号化処理を実施したＸＭＬデータの改編処理の動作を示すフローチャートである。
【００９１】
図９に示すように、まず、ＸＭＬセキュリティ処理部９は、メモリ装置制御部１３を介してメモリ上に登録されたＸＭＬデータをパースして（ステップＳ７９）、該ＸＭＬデータがＳＯＡＰエンベロープのエレメントを含むか否かを判断する（ステップＳ８０）。ここでは、メモリ上に登録されたＸＭＬデータとは、図７に示したＸＭＬデータとする。
【００９２】
ＸＭＬセキュリティ処理部９は、メモリ１４ａ上に登録されたＸＭＬデータ、即ちこの場合ＭａｉｎｔｅｎａｎｃｅＲｅｑｕｅｓｔデータはＳＯＡＰエンベロープを含むため（ステップＳ８０のｙｅｓ）、ＸＭＬデータの改編をＳＯＡＰヘッダ、ボディの双方に対して実行する。以下、図１０を参照して、ＸＭＬセキュリティ処理部９によるＸＭＬデータの改編処理例について説明する。
【００９３】
図１０は、ＸＭＬスクリプトにおいて＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ  ｍｏｄｅ＝“ＣＯＮＴＥＮＴＳ”＞とし、エレメントとして＜ＵｓｅｒＩＤ＞を指定した場合のＸＭＬデータの改編結果例を示す図である。尚、図１０の符号を付与したエレメントの内、図７と同じ符号のエレメントは、同じ機能のエレメントである。すなわち、図７のＸＭＬデータに対してＸＭＬ暗号化処理を行い、改編したものが図１０に示すＸＭＬデータである。
【００９４】
図１０に示すように、＜ＵｓｅｒＩＤ＞のエレメント７０２のコンテンツは、暗号化されたデータを含む＜ＥｎｃｒｙｐｔｅｄＤａｔａ＞エレメントに書き換えられ、その子エレメントとして、ＸＭＬスクリプトに記述された、共通鍵暗号化アルゴリズム情報を＜ＥｎｃｒｙｐｔｉｏｎＭｅｈｏｄ＞の属性として記述する。本実施形態においては３ＤＥＳを使用している。また、それに続く＜ＣｉｐｈｅｒＤａｔａ＞の子エレメントである＜ＣｉｐｈｅｒＶａｌｕｅ＞のコンテンツとして＜ＵｓｅｒＩＤ＞のコンテンツであるＩＤデータを暗号化処理した結果が記述される。
【００９５】
また、公開鍵に関する情報（暗号化されたデータを復号するための情報）は、ＷＳ−Ｓｅｃｕｒｉｔｙの規約に基づきＳＯＡＰヘッダ部に追記される。具体的には、図１０に示すように＜ｓｅｃｕｒｉｔｙ＞エレメントの子エレメントとして＜ＥｎｃｒｙｐｔｅｄＫｅｙ＞エレメントが記述され、公開鍵で使用されたアルゴリズムの情報（暗号化されたデータを復号するための情報）をその子エレメントである＜ＥｎｃｒｙｐｔｉｏｎＭｅｔｈｏｄ＞エレメントの属性として記述する。また、＜ＣｉｐｈｅｒＤａｔａ＞のエレメントの子エレメントである＜ＣｉｐｈｅｒＶａｌｕｅ＞には共通鍵を公開鍵で暗号化した情報（暗号化されたデータを検証するための情報）が記述される。
【００９６】
以上、図１０に示したＸＭＬデータへ改編する処理として、ＸＭＬセキュリティ処理部９は、＜ＣｉｐｈｅｒＤａｔａ＞の子エレメントである＜ＣｉｐｈｅｒＶａｌｕｅ＞のコンテンツとして＜ＵｓｅｒＩＤ＞のコンテンツであるＩＤデータを暗号化処理した結果を記述する（ステップＳ８１）。次に、ＸＭＬセキュリティ処理部９は、ＷＳ−Ｓｅｃｕｒｉｔｙの規約に基づきＳＯＡＰヘッダ部に公開鍵に関する情報を追記する（ステップＳ８２）。
【００９７】
以上の処理が完了した後、ＸＭＬセキュリティ処理部９は、ＸＭＬセキュリティ処理部９は、改編したＸＭＬデータを、メモリ装置制御部１３を介してメモリ１４ｂ上に記録する（ステップＳ８４）。尚、ステップＳ８０において、ＸＭＬデータがＳＯＡＰエンベロープエレメントを含まないと判断した場合（ステップＳ８０のｎｏ）には、ＸＭＬセキュリティ処理部９は、＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のエレメントで指定されたデバイス記述ファイル内に存在するエレメントに対してＸＭＬデータの改編を実行し（ステップＳ８３）、ステップＳ８４へ進む。また、このステップＳ８３の具体的な処理例については、後述する図１４において説明する。
【００９８】
次に、ｍｏｄｅがＥＬＥＭＥＮＴ、あるいはＣＯＮＴＥＮＴＳの場合であって、ＸＭＬスクリプト内に他の＜ＥｎｃｒｙｐｔｅｄＤａｔａ＞エレメントが存在する場合（ステップＳ８５のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、図７のステップＳ７２へ戻り、上述したステップＳ７２〜Ｓ８５の処理を繰り返し実行し、ＸＭＬデータであるＳＯＡＰエンベロープに対し改編処理を実施する。
【００９９】
全てのＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔに対して暗号化処理、およびＸＭＬデータ改編処理が完了した場合（ステップＳ８５のｎｏ）には、ＸＭＬセキュリティ処理部９は、ＤａｔａＳｅｎｄ処理部４に対し、改編したＸＭＬデータが格納されたメモリ１４ｂのアドレス情報を通知する（ステップＳ８６）。これにより、ＤａｔａＳｅｎｄ処理部４は、メモリ１４ｂ上に格納された送信データを、プロトコルスタック処理部１を介してネットワークＮ１上に送出し（ステップＳ８７）、図６のステップＳ６１に戻る。
【０１００】
以上に示したように、本実施形態のプリンタＰ１は、アプリケーション処理部７が生成したメンテナンス情報（図７のＸＭＬデータ）に対して、一連のＸＭＬデータの暗号化処理、およびその返信処理を行うことができる。
【０１０１】
次に、ＸＭＬで記述されたデバイス情報を処理するアプリケーションがアプリケーション処理部７としてプリンタＰ１に実装された場合の、アプリケーション処理部７の動作について説明する。
図１１は、ＸＭＬで記述されたデバイス情報を処理するアプリケーション処理部７の動作を示す図である。本実施形態ではアプリケーション処理部７は、ＵＰｎＰ（登録商標）Ｆｏｒｕｍで策定されたＵＰｎＰ（登録商標）ｖ１におけるＤｅｓｃｒｉｐｔｉｏｎフェイズの処理を行う。
【０１０２】
次に、プリンタＰ１のメモリに格納されるデバイス記述ファイル（Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｏｃｕｍｅｎｔ）例を示して説明する。
図１２は、プリンタＰ１のメモリに格納されるデバイス記述ファイル例を示す図である。図１２に示すように、デバイス記述ファイルは、ＸＭＬにより記述されている。また、図１２に示すように、＜ｓｅｒｖｉｃｅＬｉｓｔ＞のエレメント１２０１の子エレメントには、＜ｓｅｒｖｉｃｅ＞のエレメント１２０２があり、＜ｓｅｒｖｉｃｅ＞のエレメント１２０２の子エレメントとしては、＜ｓｅｒｖｉｃｅＴｙｐｅ＞、＜ｓｅｒｖｉｃｅＩｄ＞、＜ＳＣＰＤＵＲＬ＞、＜ｃｏｎｔｒｏｌＵＲＬ＞及び＜ｅｖｅｎｔＳｕｂＵＲＬ＞のエレメントと、それら各エレメントのコンテンツが定義されている。
【０１０３】
ネットワーク上に接続されたＵＰｎＰ（登録商標）対応のクライアントデバイスは、ＵＰｎＰ（登録商標）ｖ１で規定されるディスカバリプロトコルＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）を介し、該デバイス記述ファイルが格納されているＵＲＬを取得したのち、ＨＴＴＰ  ＧＥＴを発行し、該ＵＲＬに対し、デバイス記述ファイルの転送要求を発行する。
【０１０４】
図１１に示すように、まず、ＵＰｎＰ（登録商標）Ｄｅｓｃｒｉｐｔｉｏｎ処理部（アプリケーション処理部７）は、ＨＴＴＰ  ＧＥＴ要求を受信したか否かを判断する（ステップＳ９１）。ここで、ＨＴＴＰ  ＧＥＴ要求を受信した場合（ステップＳ９１のｙｅｓ）には、アプリケーション処理部７は、その要求が正しいＵＲＬを指示しているか否かを判断する（ステップＳ９２）。ここで、正しいＵＲＬを指示していない判断した場合（ステップＳ９２のｎｏ）には、アプリケーション処理部７は、クライアントデバイスからのデバイス記述ファイル要求に対しエラーを通知すべく、ＨＴＴＰ処理部５に対し該当するエラーコード、およびＤｅｓｃｒｉｐｔｉｏｎフェイズ処理アプリケーションを一義的に定義するａｐｐｌｉｃａｔｉｏｎＩＤを通知する（ステップＳ９３）。
【０１０５】
これにより、ＨＴＴＰ処理部５は、メモリ装置制御部１３を介してメモリ上にＨＴＴＰレスポンス用のヘッダを作成、記録する（ステップＳ９５）。次に、ＨＴＴＰ処理部５は、ＤａｔａＳｅｎｄ処理部４へＤａｔａＳｅｎｄリクエストを発行し（ステップＳ９６）、ステップＳ９７へ移行する。本実施形態においてＤａｔａＳｅｎｄリクエストの引数にはａｐｐｌｉｃａｔｉｏｎＩＤと、送信データを格納したメモリのアドレスが記述されるが、この場合、レスポンス用のＨＴＴＰヘッダデータがメモリ上に記録されたアドレスが設定される。
【０１０６】
また、ステップＳ９２において、受信した要求が正しいＵＲＬを指示していると判断した場合（ステップＳ９２のｙｅｓ）には、アプリケーション処理部７は、ＨＴＴＰ処理部５に対し該当する正常処理コード、およびＤｅｓｃｒｉｐｔｉｏｎフェイズ処理アプリケーションを一義的に定義するａｐｐｌｉｃａｔｉｏｎＩＤ、およびデバイス記述ファイルを登録したメモリアドレスを通知する（ステップＳ９４）。
【０１０７】
次に、ＨＴＴＰ処理部５は、メモリ装置制御部１３を介してメモリ上にＨＴＴＰレスポンス用のヘッダを作成し、さらにそのエンティティデータとしてデバイス記述ファイルを添付して、記録する（ステップＳ９５）。次に、ＨＴＴＰ処理部５は、ＤａｔａＳｅｎｄ処理部４へＤａｔａＳｅｎｄリクエストを発行する（ステップＳ９６）。本実施形態においてＤａｔａＳｅｎｄリクエストの引数にはａｐｐｌｉｃａｔｉｏｎＩＤと、送信データを格納したメモリのアドレスが記述されるが、この場合、レスポンス用のＨＴＴＰヘッダデータおよび、そのエンティティデータであるデバイス記述ファイルがメモリ上に記録されたアドレスが設定される。
【０１０８】
要求を受けたＤａｔａＳｅｎｄ処理部４は、その引数であるａｐｐｌｉｃａｔｉｏｎＩＤ、およびＭａｉｎｅｎａｎｃｅＲｅｑｕｅｓｔデータを、メモリ制御処理部１３を介して所定のメモリ領域に書き込み、書込み処理が完了した時点で、メモリ制御処理部１３はＸＭＬセキュリティ処理部９に通知し（ステップＳ９７）、後述する図１３のステップＳ９８へ移行する。
【０１０９】
次に、図１１に示した処理の続きとなる、ＸＭＬセキュリティ処理部９のセキュリティ処理について説明する。
図１３は、図１１の処理に続く、ＸＭＬセキュリティ処理部９のセキュリティ処理を示す図である。図１３に示すように、まず、ＸＭＬセキュリティ処理部９は、メモリ装置制御部１３を介して通知されたメモリアドレス上のデータをパースする（ステップＳ９８）。このパース処理により、ＸＭＬセキュリティ処理部９は、データ中からＸＭＬ宣言の記述を検出することでＸＭＬデータの有無を判断する（ステップＳ９９）。
【０１１０】
ここで、ＸＭＬセキュリティ処理部９においてＸＭＬデータが無いと判断した場合（ステップＳ９９のｎｏ）には、ＤａｔａＳｅｎｄ処理部４は、メモリ上に格納された送信データを、プロトコルスタック処理部１を介してネットワークＮ１上に送出する（ステップＳ１００）。上述したように通知されたメモリアドレス上にＸＭＬデータが存在しないと判断した場合とは、ＸＭＬセキュリティ処理部９が暗号化処理の必要無しと判断した場合であり、具体的には、ＨＴＴＰヘッダデータのみがレスポンスデータとなる処理におけるエラー通知時がこれに該当する。また、ステップＳ１００の処理の後は、図１１に示したステップＳ９１に戻る。
【０１１１】
また、ＸＭＬデータが有ると判断した場合（ステップＳ９９のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、メモリ装置制御部１３を介してメモリ１４ｃ上に指定されたａｐｐｌｉｃａｔｉｏｎＩＤをもつＸＭＬスクリプトが登録されているか否か検索する処理を実行し、ＸＭＬデータに対応するＸＭＬスクリプトの有無を判断する（ステップＳ１０１）。尚、本実施形態では、図４に示したＸＭＬスクリプトがメモリ１４ｃに登録されているとする。
【０１１２】
検索処理の結果、一致するａｐｐｌｉｃａｔｉｏｎＩＤを持つＸＭＬスクリプトがメモリ１４ｃに記録されていないと判断した場合（ステップＳ１０１のｎｏ）には、ＸＭＬセキュリティ処理部９は、暗号化処理の必要無しと判断し、処理をＤａｔａＳｅｎｄ処理部４に戻す。これにより、ステップＳ１００に移行して、ＤａｔａＳｅｎｄ処理部４が上述したメモリ上に格納された送信データを、プロトコルスタック処理部１を介してネットワークＮ１上に送出する処理を行う。また、このように、ＸＭＬスクリプトがメモリ１４ｃに記録されていない場合とは、例えば返信するデバイス記述ファイルに対し暗号化処理を実施する必要がない場合に該当する。
【０１１３】
また、ステップＳ１０１の検索処理の結果、一致するａｐｐｌｉｃａｔｉｏｎＩＤを持つＸＭＬスクリプトが記録されていると判断した場合（ステップＳ１０１のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、該ＸＭＬスクリプトをパースして、＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のエレメント（図４のエレメント４０３）、およびそのコンテンツを読み取る（ステップＳ１０２）。
【０１１４】
ステップＳ１０２のパース処理により、モード（ｍｏｄｅ）がＥＬＥＭＥＮＴ、あるいはＣＯＮＴＥＮＴＳであると判断した場合（ステップＳ１０３のｎｏ）には、ＸＭＬセキュリティ処理部９は、そのコンテンツである暗号化対象エレメントを読み取り、指定されたエレメントが送信データであるデバイス記述ファイルに存在するか（記述されているか）否か検索処理を実行する（ステップＳ１０４）。
【０１１５】
ここで、検索結果により送信データであるデバイス記述ファイル中に、指定されたエレメントが記述されていないと判断した場合（ステップＳ１０４のｎｏ）、ＸＭＬセキュリティ処理部９では暗号化処理の必要無しと判断し、処理をＤａｔａＳｅｎｄ処理部４に戻す。これにより、ステップＳ１００に移行して、ＤａｔａＳｅｎｄ処理部４が上述したメモリ上に格納された送信データを、プロトコルスタック処理部１を介してネットワークＮ１上に送出する処理を行う。また、このように、デバイス記述ファイル中に指定されたエレメントが記述されていない場合とは、例えば返信するデバイス記述ファイルに対し暗号化処理を実施する必要がない場合に該当する。
【０１１６】
また、ステップＳ１０４において、送信データであるデバイス記述ファイル中に、指定されたエレメントが記述されていると判断した場合（ステップＳ１０４のｙｅｓ）、あるいはＸＭＬスクリプトに記述された＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のエレメントで指定されたモードがＡＬＬの場合（ステップＳ１０３のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、ＸＭＬスクリプトに記述された＜ＫｅｙＩｎｆｏ＞のエレメント（図４のエレメント４０４）、およびそのコンテンツを読み取り暗号化処理を開始する（ステップＳ１０５）。
【０１１７】
次に、ＸＭＬセキュリティ処理部９は、＜ＳｙｍｍｅｔｒｉｃＫｅｙＩｎｆｏ＞のエレメント（図４のエレメント４０５）の子エレメントである＜ＫｅｙＶａｌｕｅ＞のエレメント（図４のエレメント４０７）をパースして、コンテンツの内容をＢａｓｅ６４デコードすることで共通鍵を取得する（ステップＳ１０６）。
【０１１８】
次に、ＸＭＬセキュリティ処理部９は、共通鍵を使用して＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のエレメントにより指定されたエレメントに対して暗号化を実行する（ステップＳ１０７）。具体的には、図４のエレメント４０３に示した＜ＥｎｃｒｙｐｔｉｎＴａｒｇｅｔ＞におけるｍｏｄｅ（以下、単にｍｏｄｅとする）がＡＬＬの場合は、ＸＭＬセキュリティ処理部９は、ＸＭＬデータすなわち、デバイス記述ファイル全体に対して暗号化処理を実行する。また、ｍｏｄｅがＥＬＥＭＥＮＴの場合は、ＸＭＬセキュリティ処理部９は、＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のコンテンツで指定されたエレメントに対し、そのコンテンツ、子エレメントも含め暗号化処理を実行する。また、ｍｏｄｅがＣＯＮＴＥＮＴＳの場合は、ＸＭＬセキュリティ処理部９は、＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のコンテンツで指定されたエレメントのコンテンツ、および子エレメントに対し暗号化処理を実行する。
【０１１９】
ステップＳ１０７における暗号化処理実行後は、ＸＭＬセキュリティ処理部９は、暗号化されたデータをＢａｓｅ６４エンコードによりテキスト変換する（ステップＳ１０８）。ステップＳ１０８の処理の後は、後述する図１４に示すステップＳ１０９の処理へ移行する。
【０１２０】
次に、ＸＭＬセキュリティ処理部９は、ＸＭＬデータに対しＸＭＬ暗号化処理を実施した結果を元にＸＭＬ  Ｅｎｃｒｙｐｔｉｏｎ／ＷＳ−Ｓｅｃｕｒｉｔｙ規約に基づいたフォーマットに従い、ＸＭＬデータを改編する。図１４は、ＸＭＬセキュリティ処理部９におけるＸＭＬ暗号化処理を実施したＸＭＬデータの改編処理の動作を示すフローチャートである。
【０１２１】
図１４に示すように、まず、ＸＭＬセキュリティ処理部９は、メモリ装置制御部１３を介してメモリ上に登録されたＸＭＬデータをパースして（ステップＳ１０９）、該ＸＭＬデータがＳＯＡＰエンベロープのエレメントを含むか否かを判断する（ステップＳ１１０）。
【０１２２】
本実施形態ではメモリ上に登録されたＸＭＬデータ、即ちこの場合のデバイス記述ファイル（Ｄｅｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｏｃｕｍｅｎｔ）はＳＯＡＰエンベロープを含まない。このため、ＸＭＬデータがＳＯＡＰエンベロープのエレメントを含まないと判断し（ステップＳ１１０のｎｏ）、ＸＭＬセキュリティ処理部９は、＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ＞のエレメントで指定されたデバイス記述ファイル内に存在するエレメントに対してＸＭＬデータの改編を実行する（ステップＳ１１３）。
【０１２３】
ここで、図１２に示したデバイス記述ファイルを改編した後の結果例を示して説明する。図１５は、ＸＭＬスクリプトにおいて＜ＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔ  ｍｏｄｅ＝"ＥＬＥＭＥＮＴ"＞とし、エレメントとして＜ｓｅｒｖｉｃｅ＞のエレメント１２０２を指定した場合のＸＭＬデータの改編結果例を示す図である。すなわち、図１２のＸＭＬデータに対してＸＭＬスクリプトを基にＸＭＬ暗号化処理を行い、改編したものが図１５に示すＸＭＬデータである。
【０１２４】
図１５に示すように、＜ｓｅｒｖｉｃｅ＞のエレメント１２０２と、その子エレメントである＜ｓｅｒｖｉｃｅＴｙｐｅ＞、＜ｓｅｒｖｉｃｅＩｄ＞、＜ＳＣＰＤＵＲＬ＞、＜ｃｏｎｔｒｏｌＵＲＬ＞及び＜ｅｖｅｎｔＳｕｂＵＲＬ＞と、それら各エレメントのコンテンツとは、＜ＥｎｃｒｙｐｔｅｄＤａｔａ＞のエレメント１５０１に改編され、その子エレメントとしてＸＭＬスクリプトに記述された、共通鍵暗号化アルゴリズム情報を＜ＥｎｃｒｙｐｔｉｏｎＭｅｈｏｄ＞のエレメント１５０２の属性として記述される。また、本実施形態において、共通鍵暗号化アルゴリズムは、３ＤＥＳを使用していることを示している。
【０１２５】
また、＜ＥｎｃｒｙｐｔｅｄＫｅｙ＞のエレメント１５０３の子エレメントとして、公開鍵で使用されたアルゴリズムを＜ＥｎｃｒｙｐｔｉｏｎＭｅｔｈｏｄ＞のエレメント１５０４の属性として記述し、＜ＲｅｆｅｒｅｎｃｅＬｉｓｔ＞のエレメント１５０５の属性として共通鍵で暗号化したデータへの参照情報を記述し、公開鍵の所有者情報を＜ＫｅｙＩｎｆｏ＞のエレメント１５０６の子エレメントである＜ＫｅｙＮａｍｅ＞のコンテンツとして記述し、＜ＣｉｐｈｅｒＤａｔａ＞のエレメント１５０７には共通鍵を公開鍵で暗号化した結果が記述される。
【０１２６】
また、＜ＫｅｙＩｎｆｏ＞のエレメント１５０８の子エレメントである＜ＥｎｃＫｅｙＲｅｆｅｒｅｎｃｅ＞のエレメントの属性として共通鍵暗号への参照情報を記述し、それに続く＜ＣｉｐｈｅｒＤａｔａ＞のエレメント１５０９の子エレメントである＜ＣｉｐｈｅｒＶａｌｕｅ＞のコンテンツとしてデバイス記述ファイルを暗号化処理した結果が記述されている。
【０１２７】
ここで、図１４の処理の説明に戻る。ステップＳ１１３の次に、ＸＭＬセキュリティ処理部９は、改編したＸＭＬデータを、メモリ装置制御部１３を介してメモリ上に記録する（ステップＳ１１４）。尚、ＸＭＬデータがＳＯＡＰエンベロープのエレメントを含むと判断した場合（ステップＳ１１０のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、＜ｓｅｒｖｉｃｅ＞のエレメント１２０２及び＜ｓｅｒｖｉｃｅ＞のエレメント１２０２の子エレメントのコンテンツを暗号化処理した結果に改編する（ステップＳ１１１）。次に、ＸＭＬセキュリティ処理部９は、ＷＳ−Ｓｅｃｕｒｉｔｙの規約に基づきＳＯＡＰヘッダ部に公開鍵に関する情報を追記し（ステップＳ１１２）、ステップＳ１１４に移行する。
【０１２８】
次に、＜ＥｎｃｒｙｐｔｉｎＴａｒｇｅｔ＞のエレメントのｍｏｄｅがＥＬＥＭＥＮＴ、あるいはＣＯＮＴＥＮＴＳの場合であって、ＸＭＬスクリプト内に他の＜ＥｎｃｒｙｐｔｅｄＤａｔａ＞のエレメントが存在する場合（ステップＳ１１５のｙｅｓ）には、ＸＭＬセキュリティ処理部９は、図１３のステップＳ１０２へ戻り、上述したステップＳ１０２〜Ｓ１１５の処理を繰り返し実行し、ＸＭＬデータであるデバイス記述ファイルに対し改編処理を実施する。
【０１２９】
全てのＥｎｃｒｙｐｔｉｏｎＴａｒｇｅｔに対して暗号化処理、およびＸＭＬデータ改編処理が完了した場合（ステップＳ１１５のｎｏ）には、ＸＭＬセキュリティ処理部９は、ＤａｔａＳｅｎｄ処理部４に対し、改編したＸＭＬデータが格納されたメモリ１４ｂのアドレス情報を通知する（ステップＳ１１６）。これにより、ＤａｔａＳｅｎｄ処理部４は、メモリ１４ｂ上に格納された送信データを、プロトコルスタック処理部１を介してネットワークＮ１上に送出し（ステップＳ１１７）、図１１のステップＳ９１に戻る。
【０１３０】
以上に示したように、本実施形態のプリンタＰ１は、アプリケーション処理部７が生成したデバイス記述ファイル（図１２のＸＭＬデータ）に対して、一連のＸＭＬデータの暗号化処理、およびその返信処理を行うことができる。
【０１３１】
［他の実施形態］
上述した実施形態においては、暗号化手順を記述したＸＭＬスクリプトを登録する手段として、外部デバイス、即ちシステム管理者によって管理されたコンピュータ端末Ｃ１からネットワークＮ１を介して、プリンタＰ１のＸＭＬセキュリティ処理部９に対して送信、登録する手段を説明したが、この限りではなく、システム管理者によって管理されたコンピュータ端末Ｃ１からネットワークＮ１を介して、ＸＭＬセキュリティ処理部９に対してＸＭＬスクリプトが登録されているサーバのＵＲＬを登録し、ＸＭＬセキュリティ処理部９が、該ＵＲＬを保有するサーバよりＸＭＬスクリプトをダウンロードして、自身が管理するメモリ上に登録するようにしてもよい。
【０１３２】
また、コンピュータを、プリンタＰ１と直接接続してＸＭＬセキュリティ処理部９に対してＸＭＬスクリプトを登録するような構成であってもよい。具体的には、ＵＳＢやＩＥＥＥ１３９４などのローカルインターフェイスでコンピュータとプリンタＰ１を直接接続し、該インターフェイスを介してＸＭＬセキュリティ処理部９に対してＸＭＬスクリプトを登録する。
【０１３３】
また、ＸＭＬスクリプトを、ＣＤ−ＲＯＭ、コンパクトフラッシュ（登録商標）、メモリスティック等の記録媒体に記録して、それらの記録媒体を介してプリンタＰ１のＸＭＬセキュリティ処理部９がＸＭＬスクリプトを読み取るような構成であってもよい。
【０１３４】
また、上述した実施形態においては、アプリケーション毎にその暗号化手順をＸＭＬの書式で記述したが、この限りではなく、ＸＭＬセキュリティ処理部９がデータとして管理できる情報であれば、他のスクリプト記述言語、あるいは単純なテキストデータを用いて暗号化手順を記述してもよい。
【０１３５】
また、上述した実施形態においては、ＸＭＬスクリプトにおいてＸＭＬを利用して暗号化手順に関する情報を記述したが、この限りではなく、例えばＷｅｂサービスのインターフェイスを記述する言語であるＷＳＤＬ＜Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ＞を用いて記述することも可能である。
【０１３６】
図１６は、ＷＳＤＬ  ｍｅｓｓａｇｅ要素の表記例を示す図である。図１６に示すように、該ｍｅｓｓａｇｅエレメントの子要素として記述される各ｐａｒｔに対し、その属性として暗号化の有無、および図１６に示すようなＥｎｃｒｙｐｔｅｄＤａｔａエレメント、およびそのコンテンツである鍵関連情報を記述する。尚、図１６に示す１６０１〜１６０２及び１６０４〜１６１２のエレメントは、図４に示した４０１〜４０２及び４０４〜４１２のエレメントと、同様の機能を有するエレメントである。
【０１３７】
すなわち、アプリケーション処理部７がＷｅｂサービスの機能を備え、サービスプロバイダから取得したＷＳＤＬに記述されたインターフェイスに基づき機能する場合、図１６に示すようなＷＳＤＬで記述されたセキュリティ処理情報に従い、上述した実施形態で説明した暗号化処理を実現することも可能である。
【０１３８】
また、上述した実施形態においてＸＭＬスクリプトには、Ｗ３Ｃ  ＸＭＬ  Ｅｎｃｒｙｐｔｉｏｎに基づくＸＭＬ暗号化処理の手順情報を記述したが、この限りではなく、Ｗ３Ｃ  ＸＭＬ  Ｓｉｇｎａｔｕｒｅに基づくＸＭＬ書名処理の手順情報を記述することも可能である。この場合、同一のＸＭＬスクリプト内にＸＭＬ暗号化処理手順と、署名処理手順の双方を記述する形式と、それぞれ独立したスクリプトとして記述する双方の形式で実施することが可能である。
【０１３９】
また、上述した実施形態においては、ＸＭＬおよびＳＯＡＰを使用するアプリケーション処理部７と、ＸＭＬセキュリティ処理部９が、それぞれ独立した構成を持ち、それぞれが同一デバイスであるプリンタＰ１上に実装された例を示したが、この限りではなく、ＸＭＬセキュリティ処理部９がネットワークＮ１上に存在する他のネットワークデバイス、例えばコンピュータ端末Ｃ２上に独立して実装されてもよい。図１７は、他の実施形態におけるプリンタＰ１及びコンピュータ端末Ｃ２が有する機能構成を示すブロック図である。
【０１４０】
図１７に示す符号１〜３及び７〜１２、１４ａ、１４ｃのように、図１と同じ符号を付与した処理部は、同等の機能を有する処理部であり、説明を省略する。また、図１７の符号４ａ及び５ａの処理部は、図１に示した符号４及び５の処理部と比べて、メモリ装置制御部１３ａと通信を行わない点以外は同様の機能を有する処理部である。また、図１７の符号６ａの処理部は、図１に示した符号６の処理部と比べて、ＸＭＬセキュリティ処理部９と通信を行わない点以外は同様の機能を有する処理部である。また、プリンタＰ１におけるメモリ装置制御部１３ａは、ＸＭＬデータを格納するメモリ１４ａを制御する。また、コンピュータ端末Ｃ２において、符号１ｂ〜６ｂを付与した処理部は、プリンタＰ１の符号１〜３、４ａ〜６ａと同等の機能を有する処理部である。また、メモリ装置制御部１３ｂは、ＸＭＬスクリプトを格納するメモリ１４ｃを制御する。
【０１４１】
図１７に示すシステム構成では、アプリケーション処理部７が実装されるプリンタＰ１と、ＸＭＬセキュリティ処理部９が実装されるコンピュータ端末Ｃ２との間で、ＸＭＬデータおよび、セキュリティ処理が実施され改編されたＸＭＬデータを相互に送受信することで、上述した実施形態におけるプリンタＰ１と同等の機能を実現する。
【０１４２】
具体的には、図１７の構成では、プリンタＰ１は、アプリケーション処理部７が生成したＸＭＬデータをコンピュータ端末Ｃ２へ送信し、コンピュータ端末Ｃ２は、受信したＸＭＬデータに対してセキュリティ処理及び改編処理を行い、処理後のＸＭＬデータをプリンタＰ１へ返信する。その後、プリンタＰ１は、受信した処理後のＸＭＬデータをネットワークＮ１上に送出するＤａｔａＳｅｎｄを実施する。
【０１４３】
以上、説明したように本実施形態における印刷処理システムによれば、少なくとも１つ以上のネットワークサービスを実現するアプリケーション処理部７と、セキュリティ処理手続きを記述した情報（ＸＭＬスクリプト）を基にアプリケーション処理部７が出力するデータにセキュリティ処理を施すＸＭＬセキュリティ処理部９とが独立した構成を備えるので、アプリケーションを変更することなく、セキュリティ処理機能の構築を簡便に行うことができる。また、セキュリティ処理手続きを記述した情報（ＸＭＬスクリプト）の登録、変更、削除をすることでセキュリティレベルの異なるネットワークサービスを実現することができる。
【０１４４】
更には、ネットワークサービスを実現するアプリケーションが使用される環境、セキュリティレベル、システム構成に応じて、セキュリティ処理手続きが記述されたＸＭＬスクリプトを変更するだけで、それぞれ異なるＸＭＬデジタル署名、ＸＭＬ暗号の実施といった対応が可能である。これにより、ネットワークサービスを提供するソフトウエアにおいて、セキュリティ処理機能を個別に開発する必要がなくなり、開発コストを大幅に削減するばかりでなく、最適なセキュリティシステムを最適なタイミングで導入することが可能となる。
【０１４５】
また、上述した実施形態におけるプリンタＰ１内の各処理部は、各処理部の機能を実現する為のプログラムをメモリから読み出してＣＰＵ１０１が実行することによりその機能を実現させるものであったが、これに限定さるものではなく、各処理の全部または一部の機能を専用のハードウェアにより実現してもよい。また、上述したメモリは、光磁気ディスク装置、フラッシュメモリ等の不揮発性のメモリや、ＣＤ−ＲＯＭ等の読み出しのみが可能な記録媒体、ＲＡＭ以外の揮発性のメモリ、あるいはこれらの組合せによるコンピュータ読み取り、書き込み可能な記録媒体より構成されてもよい。
【０１４６】
また、プリンタＰ１内の各機能を実現する為のプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各処理を行っても良い。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。具体的には、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含む。
【０１４７】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【０１４８】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現する為のものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０１４９】
また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体およびプログラムプロダクトは、本発明の範疇に含まれる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【０１５０】
【図１】本実施形態におけるプリンタＰ１が有する機能構成を示すブロック図である。
【図２】アカウント登録処理手順を示すフローチャートである。
【図３】本実施形態のプリンタＰ１におけるＸＭＬスクリプトの登録処理を示すフローチャートである。
【図４】ＸＭＬスクリプトのフォーマット例を示す図である。
【図５】ＸＭＬセキュリティ処理部９が行うＸＭＬスクリプトの検証処理のフローチャートである。
【図６】プリンタＰ１に実装されたアプリケーション処理部７におけるメンテナンス情報に関する処理を示すフローチャートである。
【図７】メンテナンス情報を送信する際のフォーマット例を示す図である。
【図８】ＸＭＬセキュリティ処理部９におけるのセキュリティ処理の流れを示す図である。
【図９】ＸＭＬセキュリティ処理部９におけるＸＭＬ暗号化処理を実施したＸＭＬデータの改編処理の動作を示すフローチャートである。
【図１０】ＸＭＬスクリプトにおいてｍｏｄｅ＝“ＣＯＮＴＥＮＴＳ”とし、エレメントとして＜ＵｓｅｒＩＤ＞を指定した場合のＸＭＬデータの改編結果例を示す図である。
【図１１】ＸＭＬで記述されたデバイス情報を処理するアプリケーション処理部７の動作を示す図である。
【図１２】プリンタＰ１のメモリに格納されるデバイス記述ファイル例を示す図である。
【図１３】図１１の処理に続く、ＸＭＬセキュリティ処理部９のセキュリティ処理を示す図である。
【図１４】ＸＭＬセキュリティ処理部９におけるＸＭＬ暗号化処理を実施したＸＭＬデータの改編処理の動作を示すフローチャートである。
【図１５】ＸＭＬスクリプトにおいてｍｏｄｅ＝"ＥＬＥＭＥＮＴ"とし、エレメントとして＜ｓｅｒｖｉｃｅ＞を指定した場合のＸＭＬデータの改編結果例を示す図である。
【図１６】ＷＳＤＬ  ｍｅｓｓａｇｅ要素の表記例を示す図である。
【図１７】他の実施形態におけるプリンタＰ１及びコンピュータ端末Ｃ２が有する機能構成を示すブロック図である。
【図１８】本発明の一実施形態であるネットワーク対応型プリンタを含むネットワーク印刷システムの概略構成を示す図である。
【符号の説明】
【０１５１】
Ｃ１、Ｃ２      コンピュータ端末
Ｎ１            ネットワーク
Ｐ１            プリンタ
１              プロトコルスタック処理部
２              ＳＳＬ処理部
３              ＤａｔａＲｅｃｅｉｖｅ処理部
４              ＤａｔａＳｅｎｄ処理部
５              ＨＴＴＰ処理部
６              ＳＯＡＰ処理部
７              アプリケーション処理部
８              プリンタコントローラ
９              ＸＭＬセキュリティ処理部
１０            ＸＭＬデータ制御部
１１            暗号モジュール
１２            ＸＭＬスクリプト管理処理部
１３            メモリ装置制御部
１４ａ、１４ｂ、１４ｃ  メモリ
１００          通信装置
１０１          ＣＰＵ
１０２          メモリ
１０３          ＨＤＤ
１０４          印刷処理装置
【図１】
2005346569.tif 000003
【図２】
2005346569.tif 000004
【図３】
2005346569.tif 000005
【図４】
2005346569.tif 000006
【図５】
2005346569.tif 000007
【図６】
2005346569.tif 000008
【図７】
2005346569.tif 000009
【図８】
2005346569.tif 000010
【図９】
2005346569.tif 000011
【図１０】
2005346569.tif 000012
【図１１】
2005346569.tif 000013
【図１２】
2005346569.tif 000014
【図１３】
2005346569.tif 000015
【図１４】
2005346569.tif 000016
【図１５】
2005346569.tif 000017
【図１６】
2005346569.tif 000018
【図１７】
2005346569.tif 000019
【図１８】
2005346569.tif 000020