(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続されるクライアント装置にサービスを提供可能なネットワーク機器であって、
前記サービスにアクセスさせるための情報を前記クライアント装置に提供する情報提供手段と、
前記情報提供手段によって提供される情報に基づいて行われる前記クライアント装置からの要求に応じ、要求されたサービスを実行するサービス実行手段とを有し、
前記情報提供手段は、
前記クライアント装置からの、ＷＳ−Ｄｉｓｃｏｖｅｒｙの仕様に従った、サービスの検索要求を示すメッセージに応じ、検索対象とされたサービスの有無を判定し、判定結果に応じて該サービスにアクセスするための識別情報を含む、ＷＳ−Ｄｉｓｃｏｖｅｒｙの仕様に従ったメッセージを、前記クライアント装置に返信する第一の手段と、
前記第一の手段によって返信される情報に応じて前記クライアント装置より送信される、ＷＳ−Ｔｒａｎｓｆｅｒの仕様に従った、要求を示すメッセージに応じて、当該ネットワーク機器に関する情報を含む、ＷＳ−Ｔｒａｎｓｆｅｒの仕様に従ったメッセージを返信する第二の手段とを含み、
前記サービス実行手段は、
前記識別情報に基づいて行われる前記クライアント装置からの要求に応じ、要求されたサービスを実行する第三の手段と、
当該サービスの実行に応じて発生するイベントを、ＷＳ−Ｅｖｅｎｔｉｎｇの仕様に従って、前記クライアント装置に通知する第四の手段とを含み、
前記情報提供手段と前記サービス実行手段とを別プロセスとして起動することを特徴とするネットワーク機器。
【請求項２】
サービスの種類ごとに前記サービス実行手段を有し、
前記サービス実行手段をサービスごとにプロセスとして起動することを特徴とする請求項１記載のネットワーク機器。
【請求項３】
前記情報提供手段に含まれる前記各手段、及び前記サービス実行手段に含まれる前記各手段をそれぞれ別スレッドとして起動することを特徴とする請求項１又は２記載のネットワーク機器。
【請求項４】
前記サービス実行手段は、プロセスの起動に際してサービスの提供を可能であることを前記情報提供手段に通知し、
前記情報提供手段は、前記サービス実行手段からの通知に応じて前記サービスの提供が可能であることをネットワーク上に通知することを特徴とする請求項１乃至３いずれか一項記載のネットワーク機器
【請求項５】
前記サービス実行手段は、プロセスの終了に際してサービスの提供を終了することを前記情報提供手段に通知し、
前記情報提供手段は、前記サービス実行手段からの通知に応じて前記サービスの提供を終了することをネットワーク上に通知することを特徴とする請求項１乃至４いずれか一項記載のネットワーク機器。
【請求項６】
ネットワークを介して接続されるクライアント装置にサービスを提供可能なネットワーク機器が実行するサービス提供方法であって、
前記サービスにアクセスさせるための情報を前記クライアント装置に提供する情報提供手順と、
前記情報提供手順において提供される情報に基づいて行われる前記クライアント装置からの要求に応じ、要求されたサービスを実行するサービス実行手順とを有し、
前記情報提供手順は、
前記クライアント装置からの、ＷＳ−Ｄｉｓｃｏｖｅｒｙの仕様に従った、サービスの検索要求を示すメッセージに応じ、検索対象とされたサービスの有無を判定し、判定結果に応じて該サービスにアクセスするための識別情報を含む、ＷＳ−Ｄｉｓｃｏｖｅｒｙの仕様に従ったメッセージを、前記クライアント装置に返信する第一の手順と、
前記第一の手順において返信される情報に応じて前記クライアント装置より送信される、ＷＳ−Ｔｒａｎｓｆｅｒの仕様に従った、要求を示すメッセージに応じて、当該ネットワーク機器に関する情報を含む、ＷＳ−Ｔｒａｎｓｆｅｒの仕様に従ったメッセージを返信する第二の手順とを含み、
前記サービス実行手順は、
前記識別情報に基づいて行われる前記クライアント装置からの要求に応じ、要求されたサービスを実行する第三の手順と、
当該サービスの実行に応じて発生するイベントを、ＷＳ−Ｅｖｅｎｔｉｎｇの仕様に従って、前記クライアント装置に通知する第四の手順とを含み、
前記情報提供手順と前記サービス実行手順とを別プロセスとして起動することを特徴とするサービス提供方法
【請求項７】
サービスの種類ごとに前記サービス実行手順を有し、
前記サービス実行手順をサービスごとにプロセスとして起動することを特徴とする請求項６記載のサービス提供方法
【請求項８】
前記情報提供手順に含まれる前記各手順、及び前記サービス実行手順に含まれる前記各手順をそれぞれ別スレッドとして起動することを特徴とする請求項６又は７記載のサービス提供方法
【請求項９】
前記サービス実行手順に係るプロセスの起動に際してサービスの提供を可能であることを前記情報提供手順に係るプロセスに通知する手順と、
前記情報提供手順に係るプロセスが、前記サービス実行手順に係るプロセスからの通知に応じて前記サービスの提供が可能であることをネットワーク上に通知する手順とを有することを特徴とする請求項６乃至８いずれか一項記載のサービス提供方法。
【請求項１０】
前記サービス実行手順に係るプロセスの終了に際してサービスの提供を終了することを前記情報提供手順に係るプロセスに通知する手順と、
前記情報提供手順に係るプロセスが、前記サービス実行手順に係るプロセスからの通知に応じて前記サービスの提供を終了することをネットワーク上に通知する手順とを有することを特徴とする請求項６乃至９いずれか一項記載のサービス提供方法
【請求項１１】
請求項６乃至１０いずれか一項記載のサービス提供方法をネットワーク機器に実行させるためのサービス提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク機器、サービス提供方法、及びサービス提供プログラムに関し、特にネットワークを介してサービスを提供可能なネットワーク機器、サービス提供方法、及びサービス提供プログラムに関する。
【背景技術】
【０００２】
近年、ネットワーク上の機器において提供されているＷｅｂサービスを利用するための標準仕様（ＷＳ−Ｄｉｓｃｏｖｅｒｙ、ＷＳ−Ｔｒａｎｓｆｅｒ、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ、ＷＳ−Ｅｖｅｎｔｉｎｇ等）が定められている。当該仕様によれば、クライアント側は、機器のベンダや機種等に依存した仕様を意識することなく、各機器において提供されているＷｅｂサービスを利用することができる。したがって、クライアント側においては、開発工数の削減が期待でき、ユーザにおいては、利用する機器の選択肢が広がるといったメリットがある。
【特許文献１】特開２００７−１０２８０２号公報
【特許文献２】特開２００７−１４８８２８号公報
【非特許文献１】"Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｄｙａｎａｍｉｃ  Ｄｉｓｃｏｖｅｒｙ（ＷＳ−Ｄｉｓｃｏｖｅｒｙ）"、 [online]、[平成１９年９月７日検索]、<http://msdn.microsoft.com/library/en-us/dnglobspec/html/WS-Discovery.pdf>
【非特許文献２】"Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｔｒａｎｓｆｅｒ（ＷＳ−Ｔｒａｎｓｆｅｒ）"、 [online]、[平成１９年９月７日検索]、<http://www.w3.org/Submission/WS-Transfer/>
【非特許文献３】"Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｍｅｔａｄａｔａ  Ｅｘｃｈａｎｇｅ（ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ）"、 [online]、[平成１９年９月７日検索]、<http://specs.xmlsoap.org/ws/2004/09/mex/WS-MetadataExchange.pdf>
【非特許文献４】"Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｅｖｅｎｔｉｎｇ（ＷＳ−Ｅｖｅｎｔｉｎｇ）"、 [online]、[平成１９年９月７日検索]、<http://www.w3.org/Submission/WS-Eventing/>
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記の仕様において定められているのは、主としてインタフェースについてであり、各機能をどのように実装するかは各ベンダに委ねられている。
【０００４】
例えば、画像形成装置のような組み込み系の機器は、メモリ等の制約が厳しい。したがって、機能の実装に際し、出来るだけメモリを消費しない構成が望まれる。一方において、開発及び保守作業の効率化の観点より望ましい実装形態を考慮する必要がある。
【０００５】
本発明は、上記の点に鑑みてなされたものであって、適切な構成によってサービスを提供することのできるネットワーク機器、サービス提供方法、及びサービス提供プログラムの提供を目的とする。
【課題を解決するための手段】
【０００６】
そこで上記課題を解決するため、本発明は、ネットワークを介して接続されるクライアント装置にサービスを提供可能なネットワーク機器であって、前記サービスにアクセスさせるための情報を前記クライアント装置に提供する情報提供手段と、前記情報提供手段によって提供される情報に基づいて行われる前記クライアント装置からの要求に応じ、要求されたサービスを実行するサービス実行手段とを有し、前記情報提供手段と前記サービス実行手段とを別プロセスとして起動することを特徴とする。
【０００７】
このようなネットワーク機器では、適切な構成によってサービスを提供することができる。
【発明の効果】
【０００８】
本発明によれば、適切な構成によってサービスを提供することのできるネットワーク機器、サービス提供方法、及びサービス提供プログラムを提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるネットワークシステムの構成例を示す図である。図１においてネットワークシステム１は、複合機１０ａ、１０ｂ、１０ｃ、及び１０ｄ等の一台以上の複合機（以下、総称する場合「複合機１０」という。）と、一台以上のクライアントＰＣ２０等より構成される。複合機１０とクライアントＰＣ２０とは、ＬＡＮ（Local Area Network）等のネットワーク３０（有線又は無線の別は問わない）を介して接続されている。
【００１０】
複合機１０は、コピー、ファクス、スキャナ、及びプリンタ等の複数の機能を一台の筐体において実現する画像形成装置である。複合機１０には、各種のソフトウェアが実装されており、当該ソフトウェアによって実現されるＷｅｂサービスを、Ｗｅｂサービスに関する標準仕様に従ったインタフェースによってネットワーク３０上（クライアントＰＣ２０）に提供する。
【００１１】
クライアントＰＣ２０は、一般的なＰＣ（Personal Computer）等のコンピュータであり、複合機１０のＷｅｂサービスを利用可能なソフトウェアが実装されている。
【００１２】
図２は、本発明の実施の形態における複合機の構成例を示す図である。図２において複合機１０は、種々のハードウェア１１１と種々のソフトウェア１１２とより構成される。
【００１３】
複合機１０のハードウェア１１１は、撮像部１２１及び印刷部１２２等より構成される。撮像部１２１は、読取原稿から画像（画像データ）を読み取るためのハードウェアである。印刷部１２２は、画像（画像データ）を印刷用紙に印刷するためのハードウェアである。
【００１４】
複合機１０のソフトウェア１１２は、種々のアプリケーション１３１と、プラットフォーム１３２に大別される。これらのプログラムは、ＵＮＩＸ（登録商標）等のＯＳ１５２（オペレーティングシステム）によりプロセス単位で並列的に実行される。
【００１５】
アプリケーション１３１としては、コピー用のアプリケーションであるコピーアプリ１４１、プリンタ用のアプリケーションであるプリンタアプリ１４２、スキャナ用のアプリケーションであるスキャナアプリ１４３、ファクシミリ用のアプリケーションであるファクシミリアプリ１４４、ネットワークファイル用のアプリケーションであるネットファイルアプリ１４５が存在する。
【００１６】
プラットフォーム１３２は、種々のコントロールサービス１５１及びＯＳ１５２等より構成される。コントロールサービス１５１は、システム制御部１６１、メモリ制御部１６２、エンジン制御部１６３、セキュリティ制御部１６４、配信制御部１６５、オペレーション制御部１６６、ネットワーク制御部１６７、及びファクス制御部１６８等より構成される。
【００１７】
システム制御部１６１は、システムの管理に関する制御を行う。メモリ制御部１６２は、メモリやハードディスクドライブに関する制御を行う。エンジン制御部１６３は、撮像部１２１や印刷部１２２に関する制御を行う。セキュリティ制御部１６４は、認証処理や課金処理に関する制御を行う。配信制御部１６５は、蓄積文書の配信処理に関する制御を行う。オペレーション制御部１６６は、オペレーションパネルに関する制御を行う。ネットワーク制御部１６７は、ネットワーク通信の仲介を行う。ファクス制御部１６８は、ファクシミリのＡＰＩを提供する。
【００１８】
上記の構成において、標準仕様に従ってＷｅｂサービスを提供するための仕組みはネットワーク制御部１６７に実装されている。図３は、ネットワーク制御部におけるＷｅｂサービスの提供機能に関する機能構成例を示す図である。図３に示されるように、ネットワーク制御部１６７におけるＷｅｂサービスの提供機能は、サービス情報提供部１７０とサービス部１８０と分別される。本実施の形態では、この分別の仕方に特長がある。
【００１９】
サービス情報提供部１７０は、ＳＯＡＰ／ＸＭＬ部１７１、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２、ＷＳ−Ｔｒａｎｓｆｅｒ部１７３、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ部１７４、ＷＳＤ−Ｍａｎａｇｅｒ部１７５、及びプラットフォーム依存情報取得部１７６等を含み、複合機１０において提供されているサービスにアクセスさせるための情報等をネットワーク３０上に提供する。
【００２０】
ＳＯＡＰ／ＸＭＬ部１７１は、サービス情報提供部１７０の通信データに関してシリアライズ（プログラム言語によるデータ形式からＸＭＬ（eXtensible Markup Language）形式への変換）、及びデジリアライズ（ＸＭＬ形式からプログラム言語による形式への変換）を行う。
【００２１】
ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｙｎａｍｉｃ  Ｄｉｓｃｏｖｅｒｙ（ＷＳ−Ｄｉｓｃｏｖｅｒｙ）の仕様に従い、クライアントＰＣ２０が機器（複合機１０）の存在を検知する為のメッセージの送受信処理を行うことによりクライアントＰＣ２０に機器の存在の有無を知らせる。例えば、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、クライアントＰＣ２０からのサービスの検索要求に応じ、検索対象とされたサービス有無を判定し、判定結果に応じて該サービスにアクセスするための識別情報（ＵＲＬ）を前記クライアントＰＣ２０に返信する。ＷＳ−Ｄｉｓｃｏｖｅｒｙは、主としてマルチキャストによって所望のＷｅｂサービスの検索するためのプロトコルを定義する仕様であり、その内容は、「http://msdn.microsoft.com/library/en-us/dnglobspec/html/WS-Discovery.pdf」に詳しい。
【００２２】
ＷＳ−Ｔｒａｎｓｆｅｒ部１７３は、Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｔｒａｎｓｆｅｒ（ＷＳ−Ｔｒａｎｓｆｅｒ）の仕様に従い、検知された機器に関する情報等を通知するためのメッセージの送受信処理を行う。ＷＳ−Ｔｒａｎｓｆｅｒは、Ｗｅｂ  サービスベースのリソースのＸＭＬ表現にアクセスするためのプロトコルを定義する仕様であり、その内容は、「http://www.w3.org/Submission/WS-Transfer/」に詳しい。
【００２３】
ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ部１７４は、は、Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｍｅｔａｄａｔａ  Ｅｘｃｈａｎｇｅ（ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ）の仕様に従い、検知された機器が提供するサービス情報をＸＭＬベースのデータとして生成する。ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅは、Ｗｅｂサービス向けのメタデータに基づくメッセージ交換のためのブートストラップ機構を定義する規格仕様であり、その内容は、「http://specs.xmlsoap.org/ws/2004/09/mex/WS-MetadataExchange.pdf」に詳しい。
【００２４】
ＷＳＤ−Ｍａｎａｇｅｒ部１７５は、サービス情報提供部１７０及びサービス部１８０の制御及び管理を行う。ＷＳＤ−Ｍａｎａｇｅｒ部１７５は、また、サービス部１８０によって現在提供できるサービスを把握する。
【００２５】
プラットフォーム依存情報取得部１７６は、サービス情報提供部１７０が使用する情報のうち、その取得方法がプラットフォーム依存しているもの（例えば、アプリケーションやハードウェアに関する情報。以下「プラットフォーム依存情報」という。）について、その依存部分を吸収し、プラットフォーム非依存なインタフェースをサービス情報提供部１７０の各部に提供する。したがって、サービス情報提要部１７０を異なるプラットフォーム上で動作させる場合、プラットフォーム依存情報取得部１７６によってプラットフォームによる差異が吸収されるため、他の各部について変更を行う必要性が低減される。
【００２６】
なお、サービス情報提供部１７０のうち、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２、ＷＳ−Ｔｒａｎｓｆｅｒ部１７３、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ部１７４、及びＷＳＤ−Ｍａｎａｇｅｒ部１７５は、それぞれ別スレッドとして起動される。
【００２７】
サービス部１８０は、ＳＯＡＰ／ＸＭＬ部１８１、サービス機能部１８２、ＷＳ−Ｅｖｅｎｔｉｎｇ部１８３、及びプラットフォーム依存情報取得部１８４等を含み、サービス提供するための処理を実行する。
【００２８】
ＳＯＡＰ／ＸＭＬ部１８１は、サービス部１８０の通信データに関してシリアライズ（プログラム言語によるデータ形式からＸＭＬ形式への変換）、及びデジリアライズ（ＸＭＬ形式からプログラム言語による形式への変換）を行う。
【００２９】
サービス機能部１８２は、クライアントＰＣ２０からの要求に応じ、要求されたサービスを実行する。
【００３０】
ＷＳ−Ｅｖｅｎｔｉｎｇ部１８３は、Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｅｖｅｎｔｉｎｇ（ＷＳ−Ｅｖｅｎｔｉｎｇ）の仕様に従い、サービス機能部１８２が提供するサービスにおいて、クライアントＰＣ２０からの要求とは非同期に発生するイベントの通知を行う。ＷＳ−Ｅｖｅｎｔｉｎｇは、Ｗｅｂサービスによるイベントの通知に関するプロトコルを定義する仕様であり、その内容は、「http://www.w3.org/Submission/WS-Eventing/」に詳しい。
【００３１】
プラットフォーム依存情報取得部１８４は、サービス部１８０が使用する情報のうち、プラットフォーム依存情報について、その依存部分を吸収し、プラットフォーム非依存なインタフェースをサービス情報提供部１８０の各部に提供する。
【００３２】
なお、サービス部１８０のうち、サービス機能部１８２及びＷＳ−Ｅｖｅｎｔｉｎｇ部１８３は、それぞれ別スレッドとして起動される。
【００３３】
本実施の形態において、サービス情報提供部１７０は、サービスの数（種類）と関係なく１つだけ実装される。一方、サービス部１８０は、サービスごと（機能ごと）に実装される。また、サービス情報提供部１７０とサービス部１８０とは、別プロセスとして起動され、サービス部１８０は、サービスごとに別プロセスとして起動される。
【００３４】
サービス情報提供部１７０とサービス部１８０とを別プロセスとすることにより、サービスに関する情報提供機能と、実際にサービスを実行する機能との間における依存関係を希薄化させることができる。したがって、新たなサービス（機能）が追加される際に、サービス情報提供部１７０の作りに依存せずに新たなサービス部１８０を実装することができる。また、新たなサービス部１８０が追加されることによる、サービス情報提供部１７０への影響（ソースコードの修正等）を低減させることができる。
【００３５】
また、動作中において、いずれか一方に障害が発生した場合に、他方の動作に対する影響を低減させることができる。具体的には、サービス情報提供部１７０とサービス部１８０とが一つのプロセスに含まれていれる場合、いずれか一方に障害が発生しプロセスが終了してしまうと、他方の機能も停止してしまう。しかし、サービス情報提供部１７０とサービス部１８０とが別プロセスとされることにより、いずれか一方に障害が発生し、そのプロセスが終了したとしても、他方のプロセスは影響を受けず、そのまま機能を実行することができる。
【００３６】
また、サービス部１８０をサービスごとに別プロセスとすることにより、サービス間の依存関係を希薄化することができる。したがって、新たなサービスが追加される際に、既存のサービス部１８０が受ける影響を低減させることができ、また、新たなサービス部１８０についても、既存のサービス部１８０による影響を低減させることができる。また、動作中において、いずれかサービス部１８０に障害が発生した場合に、他のサービス部１８０の動作に対する影響を低減させることができる。
【００３７】
ところで、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２、ＷＳ−Ｔｒａｎｓｆｅｒ部１７３、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ部１７４、及びＷＳＤ−Ｍａｎａｇｅｒ部１７５を別プロセスとし、また、サービス機能部１８２及びＷＳ−Ｅｖｅｎｔｉｎｇ部１８３を別プロセスとすれば、更に細かい粒度において、依存関係の希薄化を図ることができる。しかし、プロセスの増加はメモリの消費量を増加させる。特に、メモリの制約が厳しい画像形成装置等、組み込み系の機器においては、メモリ消費量の増加は、装置自体のコストの増加に繋がり好ましくない。そこで、本発明者は、依存関係の希薄化（すなわち、別プロセス化）と、別プロセス化によるメモリ消費量の増加とのバランスを考慮し、図３に示されるような構成に想到した。
【００３８】
次に、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２、ＷＳ−Ｔｒａｎｓｆｅｒ部１７３、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ部１７４、ＷＳＤ−Ｍａｎａｇｅｒ部１７５、サービス機能部１８２、及びＷＳ−Ｅｖｅｎｔｉｎｇ部１８３のうち、前者４つをサービス情報提供部１７０に含め、後者２つをサービス部１８０に含めた理由（換言すれば、前者４つと後者２つのプロセスを分けた理由）について説明する。この理由は、主として、機能を実装する上での必要性からの観点による第一の理由と、各サービスの具体的な内容に対する依存関係の有無に基づく観点による第二の理由とより構成される。
【００３９】
具体的には、サービスにアクセスさせるための情報提供を実現するためには、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２、ＷＳ−Ｔｒａｎｓｆｅｒ部１７３、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ部１７４、及びＷＳＤ−Ｍａｎａｇｅｒ部１７５は少なくとも必要とされるからであり、また、サービスを実行するための処理を実現するためには、サービス機能部１８２及びＷＳ−Ｅｖｅｎｔｉｎｇ部１８３は少なくとも必要とされるからである（第一の理由）。
【００４０】
また、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２、ＷＳ−Ｔｒａｎｓｆｅｒ部１７３、ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ部１７４、及びＷＳＤ−Ｍａｎａｇｅｒ部１７５の実装内容は、サービスの内容に応じて変化するものではないが、サービス機能部１８２及びＷＳ−Ｅｖｅｎｔｉｎｇ部１８２は、サービスごとにその実装内容が変化するものだからである（第二の理由）。なお、イベントは、サービスごとにその内容が異なるため、ＷＳ−Ｅｖｅｎｔｉｎｇ部１８２の実装内容はサービスごとに変化する。
【００４１】
以下、ネットワーク制御部１６７の振る舞いを中心として、ネットワークシステム１における処理手順について説明する。
【００４２】
図４は、サービス情報提供部の起動時の処理手順を説明するためのシーケンス図である。当該シーケンスは、例えば、複合機１０の起動時において行われる。
【００４３】
サービス情報提供部１７０のプロセスがＯＳ１５２によって起動（生成）されると、サービス情報提供部１７０のメインスレッド１７０ｍは、シグナルハンドラを登録する（Ｓ１１）。シグナルハンドラとは、シグナルが発生した際に、シグナルに応じた処理を割り込み的に実行する関数である。続いて、メインスレッド１７０ｍは、プラットフォーム依存情報取得部１７６を介してプラットフォーム依存情報のうち、起動時の広告において必要な情報（サービス情報）を取得する（Ｓ１２、Ｓ１３）。
【００４４】
続いて、メインスレッド１７０ｍは、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２の初期化を行うことにより、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２をスレッドとして起動させる（Ｓ１４〜Ｓ１６）。続いて、メインスレッド１７０ｍは、ＷＳ−Ｔｒａｎｓｆｅｒ部１７３の初期化を行うことにより、ＷＳ−Ｔｒａｎｓｆｅｒ部１７３をスレッドとして起動させる（Ｓ１７〜Ｓ１９）。
【００４５】
続いて、メインスレッド１７０ｍは、ＷＳＤ−Ｍａｎａｇｅｒ部１７５を初期化することにより、ＷＳＤ−Ｍａｎａｇｅｒ部１７５をスレッドとして起動させる（Ｓ２０、Ｓ２１）。ＷＳＤ−Ｍａｎａｇｅｒ部１７５は、メインスレッド１７０ｍよりサービス情報を取得し（Ｓ２１）、当該サービス情報をＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２に設定する（Ｓ２２）。ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、サービス情報を所定のメモリ領域に保持（記録）し（Ｓ２３）、サービス情報の設定の完了をＷＳＤ−Ｍａｎａｇｅｒ部１７５に通知する（Ｓ２４）。
【００４６】
続いて、ＷＳＤ−Ｍａｎａｇｅｒ部１７５は、サービス情報の広告を開始するための処理（Ｓｔａｒｔ処理）の実行をＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２に要求する（Ｓ２５）。ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、サービス情報の広告の要否を識別するためのフラグ（Ｓｔａｒｔ  Ｆｒａｇ）をＯＮに設定し（Ｓ２６）、Ｓｔａｒｔ処理の完了をＷＳＤ−Ｍａｎａｇｅｒ部１７５に通知する（Ｓ２７）。ＷＳＤ−Ｍａｎａｇｅｒ部１７５は、初期化処理の完了をメインスレッド１７０ｍに通知する（Ｓ２８）。
【００４７】
ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、Ｓｔａｒｔ  ＦｌａｇがＯＮであることを確認すると（Ｓ２９）、設定されているサービス情報のシリアライズをＳＯＡＰ／ＸＭＬ部１７１に実行させる（Ｓ３０、Ｓ３１）。続いて、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、ＳＯＡＰ形式に変換されたサービス情報を含むＨｅｌｌｏメッセージをネットワーク３０上に広告（マルチキャスト）し、Ｓｔａｒｔ  ＦｌａｇをＯＦＦにする（Ｓ３２）。Ｈｅｌｌｏメッセージは、機器又はサービスの存在を通知するためのメッセージであり、ＷＳ−Ｄｉｓａｃｏｖｅｒｙの仕様において規定されている。
【００４８】
次に、或るサービス（例えば印刷サービス）を提供するサービス部１８０が起動された際の処理手順について説明する。図５は、サービス部の起動時の処理手順を説明するためのシーケンス図である。
【００４９】
サービス部１８０のプロセスがＯＳ１５２によって起動されると、サービス情報提供部１７０のメインスレッド１８０ｍは、シグナルハンドラを登録する（Ｓ５１）。続いて、メインスレッド１８０ｍは、当該サービス部１８０のサービス機能部１８２を初期化することにより、サービス機能部１８２をスレッドとして起動させる（Ｓ５２、Ｓ５３）。スレッドとしての起動時において、サービス機能部１８２は、各種のパラメータを初期化する。
【００５０】
続いて、サービス機能部１８２は、当該サービス部１８０のプラットフォーム依存情報取得部１８４を介して、プラットフォーム依存情報のうち、当該サービス部１８０のサービス情報を取得する（Ｓ５４、Ｓ５５）。続いて、サービス機能部１８２は、ＷＳＤ−Ｍａｎａｇｅｒ部１７５に対してサービス情報（サービスの識別名や場所を示す情報（ＵＲＬ）等）を登録し（Ｓ５６、Ｓ５７）、初期化処理の完了をメインスレッド１８０ｍに通知する（Ｓ５８）。以上によって、サービス部１８０のプロセスにおける起動時の処理は終了する。
【００５１】
一方、サービス情報を登録されたＷＳＤ−Ｍａｎａｇｅｒ部１７５は、当該サービス情報をＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２に設定する（Ｓ５９）。ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、サービス情報を所定のメモリ領域に保持（記録）すると共に、設定されている情報の変化の有無を識別するための設定情報変換フラグをＯＮにし（Ｓ６０）、サービス情報の設定の完了をＷＳＤ−Ｍａｎａｇｅｒ部１７５に通知する（Ｓ６１）。
【００５２】
ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、設定情報変換フラグがＯＮであることを確認すると（Ｓ６２）、設定されているサービス情報のシリアライズをＳＯＡＰ／ＸＭＬ部１７１に実行させる（Ｓ６３、Ｓ６４）。続いて、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、ＳＯＡＰ形式に変換されたサービス情報を含むＨｅｌｌｏメッセージをネットワーク３０上に広告（マルチキャスト）し、設定情報変換フラグをＯＦＦにする（Ｓ６５）。
【００５３】
図６は、サービスの存在を通知するＨｅｌｌｏメッセージの例を示す図である。図６のメッセージ５１０において、記述５１１における「Ｈｅｌｌｏ」により、メッセージ５１０がＨｅｌｌｏメッセージであることであることが識別される。
【００５４】
機記述５１２における「ｗｓｄｐ：Ｄｅｖｉｃｅ」が、機器の存在を示す記述であり、「ｗｐｒｔ：ＰｒｉｎｔＤｅｖｉｃｅＴｙｐｅ」が、起動されたサービス部１８０によって提供可能なサービスの識別名を示す記述である。記述５１３におけるＵＲＬは、サービス１８０の場所を示す。
【００５５】
なお、図５の処理は、サービス部１８０が起動されるたびに実行される。
【００５６】
次に、或るサービス部１８０が終了する際の処理手順について説明する。図７は、サービス部の終了時の処理手順を説明するためのシーケンス図である。
【００５７】
何らかの要因（例えば、ユーザによる入力等）に応じて発生した終了シグナルをシグナルハンドラ１８０ｈが検知すると（Ｓ７１）、シグナルハンドラ１８０ｈは、終了処理の実行をサービス機能部１８２に要求する（Ｓ７２）。サービス機能部１８２は、リソースの解放等を行い（Ｓ７３）、当該サービス部１８０によるサービスが終了することをＷＳＤ−Ｍａｎａｇｅｒ部１７５に通知する（Ｓ７４、Ｓ７５）。続いて、サービス機能部１８２は、終了処理が完了したことをシグナルハンドラ１８０ｈに通知する（Ｓ７６）。その後、当該サービス部１８０のプロセスは終了する。
【００５８】
一方、サービスの終了を通知されたＷＳＤ−Ｍａｎａｇｅｒ部１７５は、当該サービスの終了をＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２に設定する（Ｓ７７）。ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、サービスの終了を示す情報を所定のメモリ領域に保持（記録）すると共に、設定情報変換フラグをＯＮにし（Ｓ７８）、サービスの終了の設定の完了をＷＳＤ−Ｍａｎａｇｅｒ部１７５に通知する（Ｓ７９）。
【００５９】
ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、設定情報変換フラグがＯＮであることを確認すると（Ｓ８０）、設定されているサービスの終了を示す情報のシリアライズをＳＯＡＰ／ＸＭＬ部１７１に実行させる（Ｓ８１、Ｓ８２）。続いて、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、ＳＯＡＰ形式に変換されたサービスの終了を示す情報を含むＢｙｅメッセージをネットワーク３０上に広告（マルチキャスト）し、設定情報変更フラグをＯＦＦにする（Ｓ８３）。なお、Ｂｙｅメッセージは、ＷＳ−Ｄｉｓｃｏｖｅｒｙの仕様において規定されているものである。
【００６０】
なお、図７の処理は、サービス部１８０が終了するたびに実行される。
【００６１】
次に、サービス情報提供部１７０が終了する際の処理手順について説明する。図８は、サービス情報提供部の終了時の処理手順を説明するためのシーケンス図である。
【００６２】
何らかの要因（例えば、ユーザによる入力等）に応じて発生した終了シグナルをシグナルハンドラ１７０ｈが検知すると（Ｓ９１）、シグナルハンドラ１７０ｈは、終了の通知処理の実行をＷＳＤ−Ｍａｎａｇｅｒ部１７５に要求する（Ｓ９２）。ＷＳＤ−Ｍａｎａｇｅｒ部１７５は、終了の通知処理の実行をＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２に要求する（Ｓ９３）。ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、終了フラグをＯＮにし（Ｓ９４）、終了の通知を認識したことをＷＳＤ−Ｍａｎａｇｅｒ部１７５に対して通知する（Ｓ９４）。ＷＳＤ−Ｍａｎａｇｅｒ部１７５は、終了の通知処理を行ったことをシグナルハンドラ１７０ｈに通知する（Ｓ９６）。
【００６３】
ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、終了フラグがＯＮであることを確認すると、パケットのリスニングの終了する（リスニング用のソケットをクローズする）（Ｓ９７）。続いて、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、サービス情報提供部１７０の終了を示す情報のシリアライズをＳＯＡＰ／ＸＭＬ部１７１に実行させる（Ｓ９８、Ｓ９９）。ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、ＳＯＡＰ形式に変換されたＢｙｅメッセージをネットワーク３０上に広告（マルチキャスト）し、終了フラグをＯＦＦにする（Ｓ１００）。
【００６４】
図９は、サービスの終了を通知するＢｙｅメッセージの例を示す図である。図９のメッセージ５２０において、記述５２１における「Ｂｙｅ」により、メッセージ５２０が、サービスの終了を示すメッセージであることが識別される。
【００６５】
続いて、シグナルハンドラ１７０ｈは、終了処理の実行をメインスレッド１７０ｍに要求する（Ｓ１０１）。メインスレッド１７０ｍは、ＷＳ−Ｔｒａｎｓｆｅｒ部１７３に終了処理を要求する（Ｓ１０２）。ＷＳ−Ｔｒａｎｓｆｅｒ部１７３は、リソースの解放等を行い（Ｓ１０３）、終了処理の完了をメインスレッド１７０ｍに通知する（Ｓ１０４）。続いて、メインスレッド１７０ｍは、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２に終了処理を要求する（Ｓ１０５）。ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、各種のフラグがＯＦＦであることを確認すると共にリソースの解放等を行い（Ｓ１０６）、終了処理の完了をメインスレッド１７０ｍに通知する（Ｓ１０７）。続いて、メインスレッド１７０は、終了処理が完了したことをシグナルハンドラ１７０ｈに通知する（Ｓ１０８）。その後、サービス情報提供部１７０のプロセスは終了する。
【００６６】
以上において、サービス情報提供部１７０及びサービス部１８０について起動時及び終了時の処理手順を説明したが、サービス情報提供部１７０の起動とサービス部１８０の起動とは連続的に（同期して）行われなくてもよい。同様に、サービス情報提供部１７０の終了とサービス部１８０の終了とについても連続的に（同期して）行われなくてもよい。例えば、サービス部１８０が、必要に応じて起動又は終了される場合、サービス情報提供部１７０の起動又は終了とサービス部１８０の起動又は終了とは非同期となる。本実施の形態ではサービス情報提供部１７０とサービス部１８０とが別プロセスとなるよう構成されているため、このように柔軟な起動又は終了シーケンスを実現することができる。したがって、必要なサービス部１８０のみを起動することで、メモリの消費量を抑制することもできる。
【００６７】
次に、複合機１０においてサービス情報提供部１７０及びサービス部１８０が起動しており、サービス部１８０の情報が広告されている状態において、クライアントＰＣ２０がサービスの提供を受けるために必要な前処理について説明する。
【００６８】
図１０は、サービスの提供を受けるための前処理の処理手順の概要を説明するためのフローチャートである。
【００６９】
ステップＳ１１１において、クライアントＰＣ２０は、利用したいサービスを有している複合機１０を検索する。当該サービスを有している複合機１０が検索された場合（Ｓ１１１でＹｅｓ）、クライアントＰＣ２０は、検索された複合機１０の情報とサービスを提供している場所を示す情報（ＵＲＬ）とを取得する（Ｓ１１２）。続いて、クライアントＰＣ２０は、サービスを提供している場所にアクセスし、サービスの提供を受ける上で必要な基本情報を取得する（Ｓ１１３）。続いて、クライアントＰＣ２０は、サービスを提供している場所にアクセスし、サービスを受ける上で必要なイベントを登録する（Ｓ１１４）。
【００７０】
以下、各ステップの詳細について説明する。図１１は、サービスの検索処理を説明するためのシーケンス図である。図１１の処理は、図１０のステップＳ１１１及びＳ１１２に相当する。
【００７１】
ステップＳ１２１において、クライアントＰＣ２０は、ＷＳ−Ｄｉｓｃｏｖｅｒｙの仕様において、サービスを検索するためのメッセージとして規定されているＰｒｏｂｅメッセージをネットワーク３０上にマルチキャストする。
【００７２】
図１２は、Ｐｒｏｂｅメッセージの例を示す図である。図１２のメッセージ５４０において、記述５３１における「Ｐｒｏｂｅ」により、メッセージ５３０がＰｒｏｂｅメッセージであることであることが識別される。記述５３２は、検索対象のサービスは記述５３２における識別名（ｗｐｒｔ：ＰｒｉｎｔＤｅｖｉｃｅＴｙｐｅ）によって識別される。
【００７３】
複合機１０において、サービス情報提供部１７０のＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２がＰｒｏｂｅメッセージを受信すると、当該ＰｒｏｂｅメッセージのデシリアライズをＳＯＡＰ／ＸＭＬ部１７１に実行させる（Ｓ１２２、Ｓ１２３）。続いて、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、検索対象とされているサービスが自機内において利用可能な状態として存在するか（当該サービスに対応するサービス部１８０が起動されているか）否かを設定されているサービス情報に基づいて判定し、その判定結果に応じた応答情報を生成する（Ｓ１２４）。続いて、ＷＳ−Ｄｉｓｃｏｖｅｒｙ部１７２は、応答情報のシリアライズをＳＯＡＰ／ＸＭＬ部１７１に実行させ（Ｓ１２５、Ｓ１２６）、シリアライズされた応答情報を含むメッセージをＰｒｏｂｅメッセージに対する応答としてクライアントＰＣ２０に返信する（Ｓ１２７）。例えば、検索対象とするサービスが存在する場合は、ＷＳ−Ｄｉｓｃｏｖｅｒｙの仕様に従って、ＰｒｏｂｅＭａｔｃｈメッセージが返信される。
【００７４】
図１３は、ＰｒｏｂｅＭａｔｃｈメッセージの例を示す図である。図１３のメッセージ５４０ａにおいて、記述５４１ａの「ＰｒｏｂｅＭａｔｃｈｅｓ」によって、メッセージ５４０ａがＰｒｏｂｅＭａｔｃｈメッセージであることが識別される。また、記述５４２ａにおいて、検索に合致したサービスの識別名（ｗｐｒｔ：ＰｒｉｎｔＤｅｖｉｃｅＴｙｐｅ）が記述されている。また、記述５４３ａには、当該サービスが提供されている場所を示すＵＲＬが記述されている。
【００７５】
また、図１４は、検索に合致するサービスが複数存在する場合のＰｒｏｂｅＭａｔｃｈメッセージの例を示す図である。
【００７６】
図１４のメッセージ５４０ｂでは、記述５４２ｂにおいて、識別名５４２１及び識別名５４２２の二つのサービスの識別名が示されている。他の部分については、図１３と同様である。
【００７７】
ＰｒｏｂｅＭａｔｃｈメッセージを受信したクライアントＰＣ２０は、当該メッセージを返信した複合機１０に対して、ＷＳ−Ｔｒａｎｓｆｅｒの仕様に従って、複合機１０の情報の取得要求を示すＧｅｔメッセージを送信する（Ｓ１２８）。
【００７８】
図１５は、Ｇｅｔメッセージの例を示す図である。図１５のメッセージ５５０において、記述５５１の「Ｇｅｔ」によって、メッセージ５５０がＧｅｔメッセージであることが識別される。
【００７９】
複合機１０においてＧｅｔメッセージを受信したＷＳ−Ｔｒａｎｓｆｅｒ部１７３は、ＧｅｔメッセージのデシリアライズをＳＯＡＰ／ＸＭＬ部１７１に実行させ（Ｓ１２９、Ｓ１３０）、複合機１０の情報を取得する（Ｓ１３１）。続いて、ＷＳ−Ｔｒａｎｓｆｅｒ部１７３は、取得された情報のシリアライズをＳＯＡＰ／ＸＭＬ部１７１に実行させ（Ｓ１３２、Ｓ１３３）、ＷＳ−Ｔｒａｎｓｆｅｒの仕様に従って、複合機１０の情報を含むＧｅｔＲｅｓｐｏｎｓｅメッセージをクライアントＰＣ２０に返信する（Ｓ１３４）。
【００８０】
図１６及び図１７は、ＧｅｔＲｅｓｐｏｎｓｅメッセージの例を示す図である。図１６のメッセージ５６０において、記述５６１の「ＧｅｔＲｅｓｐｏｎｓｅ」によって、メッセージ５５０がＧｅｔＲｅｓｐｏｎｓｅメッセージであることが識別される。
【００８１】
メッセージ５６０において複合機１０の各種情報は、＜ＭｅｔａｄａｔａＳｅｃｔｉｏｎ＞タグによって囲まれたＭｅｔａｄａｔａＳｅｃｔｉｏｎ要素ごとに記述されている。例えば、ＭｅｔａｄａｔａＳｅｃｔｉｏｎ５６２には、機器（複合機１０）に関する情報が記述されている。例えば、記述５６２１には、機器の名前が記述され、記述５６２２には、ファームウェアのバージョンが記述され、記述５６２３には、機器のシリアル番号が記述されている。
【００８２】
また、ＭｅｔａｄａｔａＳｅｃｔｉｏｎ要素５６３には、モデル（機種）に関する情報が記述されている。例えば、記述５６３１には、製造者の名前が記述され、記述５６３２には、製造者のＵＲＬが記述され、記述５６３３には、モデル名が記述され、記述５６３４には、モデル番号が記述されている。
【００８３】
また、ＭｅｔａｄａｔａＳｅｃｔｉｏｎ要素５６４には、サービスに関する情報が記述されている。例えば、記述５６４１は、サービスの場所を示すＵＲＬが記述され、記述５６４２には、サービスの識別名が記述されている。
【００８４】
また、図１８、図１９、及び図２０は、サービスが複数存在する場合のＧｅｔＲｅｓｐｏｎｓｅメッセージの例を示す図である。図１８、図１９、及び図２０において示されるメッセージ５７０には、サービスに関する情報が記述されたＭｅｔａｄａｔａＳｅｃｔｉｏｎ要素が二つ存在する。ＭｅｔａｄａｔａＳｅｃｔｉｏｎ要素５７１においては、サービスの場所は記述５７１１によって示され、サービスの識別名は記述５７１２によって示されている。また、ＭｅｔａｄａｔａＳｅｃｔｉｏｎ要素５７２においては、サービスの場所は記述５７２１によって示され、サービスの識別名は記述５７２２によって示されている。他については、メッセージ５６０と同様である。
【００８５】
続いて、図２１は、サービスの基本情報の取得処理を説明するためのシーケンス図である。図２１の処理は、図１０のステップＳ１１２に相当する。この段階以降において、クライアントＰＣ２０とのやりとりを行うのはサービス部１８０となる。
【００８６】
クライアントＰＣ２０は、既に入手されているサービスの提供場所を示すＵＲＬに対して、ＰｒｉｎｔＳｅｒｖｉｃｅＴｅｍｐｌａｔｅと呼ばれる仕様に従って、サービスの基本情報の取得要求を示すメッセージを送信する（Ｓ１５１）。
【００８７】
図２２は、サービスの基本情報の取得要求を示すメッセージの例を示す図である。図２２のメッセージ５８０において、記述５８１の「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓ」によって、メッセージ５８０がサービスの基本情報の取得を要求するメッセージ（ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓメッセージ）であることが識別される。また、記述５８２の「ｐｒｉ：ＰｒｉｎｔｅｒＤｅｓｃｒｉｐｔｉｏｎ」によって、取得対象とされている情報が識別される。
【００８８】
複合機１０において基本情報の取得要求を示すメッセージを受信したサービス機能部１８２は、当該メッセージのデシリアライズをＳＯＡＰ／ＸＭＬ部１８１に実行させ（Ｓ１５２、Ｓ１５３）、取得対象とされている情報を取得する（Ｓ１５４）。続いて、サービス機能部１８２は、取得された情報のシリアライズをＳＯＡＰ／ＸＭＬ部１８１に実行させ（Ｓ１５５、Ｓ１５６）、ＰｒｉｎｔＳｅｒｖｉｃｅＴｅｍｐｌａｔｅの仕様に従って、取得対象とされた情報を含む応答メッセージをクライアントＰＣ２０に返信する（Ｓ１５７）。
【００８９】
図２３は、サービスの基本情報の取得要求に対する応答メッセージの例を示す図である。図２３のメッセージ５９０において、記述５９１の「ＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓＲｅｓｐｏｎｓｅ」によって、メッセージ５９０がＧｅｔＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓメッセージに対する応答であることが識別される。取得対象とされた情報は、ＰｒｉｎｔｅｒＤｉｓｃｒｉｐｔｉｏｎ要素５９２に記述されている。例えば、記述５９２１には、カラー印刷の可否が記述されている。また、記述５９２２には、１分あたりの印刷枚数が記述されている。
【００９０】
続いて、図２４は、通知を要求するイベントの登録処理を説明するためのシーケンス図である。図２４の処理は、図１０におけるステップＳ１１４に相当する。
【００９１】
クライアントＰＣ２０は、サービスの提供場所を示すＵＲＬに対して、ＷＳ−Ｅｖｅｎｔｉｎｇの仕様に従って、通知を要求するイベントの登録要求を示すＳｕｂｓｃｒｉｂｅメッセージを送信する（Ｓ１６１）。
【００９２】
図２５及び図２６は、Ｓｕｂｓｃｒｉｂｅメッセージの例を示す図である。図２５及び図２６のメッセージ６００において、記述６０１の「Ｓｕｂｓｃｒｉｂｅ」によって、メッセージ６００がＳｕｂｓｃｒｉｂｅメッセージであることが識別される。また、記述６０２の「ＰＴ１Ｈ」によって、登録されるイベントの有効期間（１時間）が示されている。すなわち、イベントの登録には有効期間が存在し、それを過ぎると原則としてそのイベントの通知を受けることはできない。但し、クライアントＰＣ２０がイベント登録期間の延長を要求すれば、そのイベントの通知を引き続き受けることが可能となる。
【００９３】
また、記述６０３は、通知を要求するイベントの識別名が記述されている。ここでは、プリンタの状態変化を示す「ＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓＣｈａｎｇｅＥｖｅｎｔ」（記述６０３１）が指定されている。
【００９４】
複合機１０においてイベントの登録要求を示すメッセージを受信したサービス機能部１８２は、当該メッセージのデシリアライズをＳＯＡＰ／ＸＭＬ部１８１に実行させ（Ｓ１６２、Ｓ１６３）、通知が要求されたイベントの登録をＷＳ−Ｅｖｅｎｔｉｎｇ部１８３に要求する（Ｓ１６４）。ＷＳ−Ｅｖｅｎｔｉｎｇ部１８３は、当該イベントを通知対象として登録（記憶）し（Ｓ１６５）、イベントの登録の完了をサービス機能部１８２に通知する（Ｓ１６６）。
【００９５】
続いて、サービス機能部１８２は、イベントの登録要求に対する応答を示す情報のシリアライズをＳＯＡＰ／ＸＭＬ部１８１に実行させ（Ｓ１６７、Ｓ１６８）、ＷＳ−Ｅｖｅｎｔｉｎｇの仕様に従った応答メッセージをクライアントＰＣ２０に返信する（Ｓ１６９）。
【００９６】
図２７は、イベントの登録要求に対する応答メッセージの例を示す図である。図２７のメッセージ６１０において、記述６１１の「ＳｕｂｓｃｒｉｂｅＲｅｓｐｏｎｓｅ」によって、メッセージ６１０がＳｕｂｓｃｒｉｂｅメッセージに対する応答であることが識別される。
【００９７】
次に、クライアントＰＣ２０が前処理に続いてサービスの提供を受ける（サービスを利用する）際の処理手順について説明する。図２８は、サービス利用時の処理手順の概要を説明するためのフローチャートである。図２８の処理は、図１０の処理に続いて実行される。
【００９８】
ステップＳ２０１において、クライアントＰＣ２０は、上述の処理においてイベントの登録等を行った複合機１０に対してサービスの実行を要求する。クライアントＰＣ２０からの要求に応じ、複合機１０は、要求されたサービスを実行する（Ｓ２０２）。サービスの実行中において、通知が要求されているイベント（登録されたイベント）が発生すると（Ｓ２０３でＹｅｓ）、複合機１０は、クライアントＰＣ２０に対して当該イベントを通知する（Ｓ２０４）。サービスの実行が完了すると、複合機１０は、サービスの実行要求に対する応答をクライアントＰＣ２０に返信する（Ｓ２０５）。なお、ステップＳ２０５の後にも、イベントの通知（ステップＳ２０３及びＳ２０４）は行われうる。
【００９９】
以下、各ステップの詳細について説明する。図２９は、サービス実行時の処理手順を説明するためのシーケンス図である。図２９の処理は、図２８におけるステップＳ２０１、Ｓ２０２、及びＳ２０５に相当する。
【０１００】
クライアントＰＣ２０は、サービスの提供場所を示すＵＲＬに対して、サービスの実行要求を示すメッセージを送信する（Ｓ２１１）。
【０１０１】
図３０は、サービスの実行要求を示すメッセージの第一の例を示す図である。図３０のメッセージ６２０において、記述６２１の「ＣｒｅａｔｅＰｒｉｎｔＪｏｂ」によって、メッセージ６２０が印刷ジョブの生成を要求するメッセージであることが識別される。また、記述６２２には、ジョブ名が指定されており、記述６２３にはジョブの要求元であるユーザ名が指定されている。
【０１０２】
複合機１０においてサービスの実行要求を示すメッセージを受信したサービス機能部１８２は、当該メッセージのデシリアライズをＳＯＡＰ／ＸＭＬ部１８１に実行させ（Ｓ２１２、Ｓ２１３）、要求されたサービスの実行をプラットフォーム依存情報取得部１８４に要求する（Ｓ２１４）。この際、サービスの実行要求に係るメッセージに含まれているパラメータ等がプラットフォーム依存情報取得部１８４に通知される。プラットフォーム依存情報取得部１８４は、要求されたサービスを実行し（Ｓ２１５）、実行が完了すると、その旨をサービス機能部１８２に通知する（Ｓ２１６）。この際、サービスの実行の結果生成された情報（例えば、ジョブＩＤ）が返却される。
【０１０３】
続いて、サービス機能部１８２は、サービスの実行要求に対する応答を示す情報のシリアライズをＳＯＡＰ／ＸＭＬ部１８１に実行させ（Ｓ２１７、Ｓ２１８）、応答メッセージをクライアントＰＣ２０に返信する（Ｓ２１９）。
【０１０４】
図３１は、サービスの実行要求に対する応答メッセージの第一の例を示す図である。図３１のメッセージ６３０において、記述６３１の「ＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｐｏｎｓｅ」によって、メッセージ６３０が印刷ジョブの生成要求（ＣｒｅａｔｅＰｒｉｎｔＪｏｂ）に対する応答であることが識別される。また、記述６３２には、生成された印刷ジョブのジョブＩＤが記述されている。
【０１０５】
この後、ステップＳ２１１〜Ｓ２１９と同様の手順によって、生成された印刷ジョブにおいて印刷対象とされる文書データがクライアントＰＣ２０から送信され（Ｓ２１１）、それに対する応答が複合機１０より返信される（Ｓ２１９）。この際にやりとりされるメッセージは、例えば、次のようになる。
【０１０６】
図３２及び図３３は、サービスの実行要求を示すメッセージの第二の例を示す図である。図３２及び図３３のメッセージ６４０において、記述６４１の「ＳｅｎｄＤｏｃｕｍｅｎｔ」によって、メッセージ６４０が文書データの送信（印刷）を要求するメッセージであることが識別される。また、記述６４２には、ジョブＩＤが指定されており、記述６４３にはエンコードされた印刷データが含まれている。
【０１０７】
また、図３４は、サービスの実行要求に対する応答メッセージの第二の例を示す図である。図３４のメッセージ６５０において、記述６５１の「ＳｅｎｄＤｏｃｕｍｅｎｔＲｅｓｐｏｎｓｅ」によって、メッセージ６５０が文書データの印刷要求（ＳｅｎｄＤｏｃｕｍｅｎｔ）に対する応答であることが識別される。
【０１０８】
続いて、図３５は、イベント発生時の処理手順を説明するためのシーケンス図である。図３５の処理は、図２８におけるステップＳ２０３及び２０４に相当する。
【０１０９】
複合機１０において、プラットフォーム依存情報取得部１８４は、何らかのイベントの発生を検出すると（Ｓ２２１）、イベントの発生をサービス機能部１８２に通知する（Ｓ２２２）。サービス機能部１８２は、クライアントＰＣ２０へのイベントの通知をＷＳ−Ｅｖｅｎｔｉｎｇ部１８３に要求する（Ｓ２２３）。ＷＳ−Ｅｖｅｎｔｉｎｇ部１８３は、当該イベントが、通知対象として登録されているか否かを判定することによりイベントの通知の要否を判定する（Ｓ２２４）。イベントの通知が必要な場合、ＷＳ−Ｅｖｅｎｔｉｎｇ部１８３は、イベントを示す情報のシリアライズをＳＯＡＰ／ＸＭＬ部１８１に実行させ（Ｓ２２５、Ｓ２２６）、ＷＳ−Ｅｖｅｎｔの仕様に従って、イベントを通知するメッセージをクライアントＰＣ２０に送信する（Ｓ２２７）。
【０１１０】
図３６は、イベントを通知するメッセージの例を示す図である。図３６のメッセージ６６０において、記述６６１の「ＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓＣｈａｎｇｅＥｖｅｎｔ」によって、メッセージ６６０は、通知対象として登録されているＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓＣｈａｎｇｅＥｖｅｎｔの通知メッセージであることが識別される。イベントの詳細な内容は、ＰｒｉｎｔｅｒＥｌｅｍｅｎｔｓＣｈａｎｇｅＥｖｅｎｔ要素６６２内に記述されている。例えば、Ｃｏｎｓｕｍａｂｌｅｓ要素６６３の存在によって、消耗品の残量が減少したことを示すイベントであることが識別される。記述６６４によって、消耗品の種類がインクであり、記述６６５によってインクの色が黒であることが示されている。また、記述６６６においてインクの残量が示されている。
【０１１１】
なお、図２に示されるハードウェア１１１の構成の一例について説明する。図３７は、本発明の実施の形態における複合機のハードウェア構成の一例を示す図である。複合機１０のハードウェア１１１としては、コントローラ２０１と、オペレーションパネル２０２と、ファクシミリコントロールユニット（ＦＣＵ）２０３と、撮像部１２１と、印刷部１２２が存在する。
【０１１２】
コントローラ２０１は、ＣＰＵ２１１、ＡＳＩＣ２１２、ＮＢ２２１、ＳＢ２２２、ＭＥＭ−Ｐ２３１、ＭＥＭ−Ｃ２３２、ＨＤＤ（ハードディスクドライブ）２３３、メモリカードスロット２３４、ＮＩＣ（ネットワークインタフェースコントローラ）２４１、ＵＳＢデバイス２４２、ＩＥＥＥ１３９４デバイス２４３、セントロニクスデバイス２４４により構成される。
【０１１３】
ＣＰＵ２１１は、種々の情報処理用のＩＣである。ＡＳＩＣ２１２は、種々の画像処理用のＩＣである。ＮＢ２２１は、コントローラ２０１のノースブリッジである。ＳＢ２２２は、コントローラ２０１のサウスブリッジである。ＭＥＭ−Ｐ２３１は、複合機１０のシステムメモリである。ＭＥＭ−Ｃ２３２は、複合機１０のローカルメモリである。ＨＤＤ２３３は、複合機１０のストレージである。メモリカードスロット２３４は、メモリカード２３５をセットするためのスロットである。ＮＩＣ２４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス２４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス２４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス２４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。
【０１１４】
オペレーションパネル２０２は、オペレータが複合機１０に入力を行うためのハードウェア（操作部）であると共に、オペレータが複合機１０から出力を得るためのハードウェア（表示部）である。
【０１１５】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【０１１６】
【図１】本発明の実施の形態におけるネットワークシステムの構成例を示す図である。
【図２】本発明の実施の形態における複合機の構成例を示す図である。
【図３】ネットワーク制御部におけるＷｅｂサービスの提供機能に関する機能構成例を示す図である。
【図４】サービス情報提供部の起動時の処理手順を説明するためのシーケンス図である。
【図５】サービス部の起動時の処理手順を説明するためのシーケンス図である。
【図６】サービスの存在を通知するＨｅｌｌｏメッセージの例を示す図である。
【図７】サービス部の終了時の処理手順を説明するためのシーケンス図である。
【図８】サービス情報提供部の終了時の処理手順を説明するためのシーケンス図である。
【図９】サービスの終了を通知するＢｙｅメッセージの例を示す図である。
【図１０】サービスの提供を受けるための前処理の処理手順の概要を説明するためのフローチャートである。
【図１１】サービスの検索処理を説明するためのシーケンス図である。
【図１２】Ｐｒｏｂｅメッセージの例を示す図である。
【図１３】ＰｒｏｂｅＭａｔｃｈメッセージの例を示す図である。
【図１４】検索に合致するサービスが複数存在する場合のＰｒｏｂｅＭａｔｃｈメッセージの例を示す図である。
【図１５】Ｇｅｔメッセージの例を示す図である。
【図１６】ＧｅｔＲｅｓｐｏｎｓｅメッセージの例を示す図である。
【図１７】ＧｅｔＲｅｓｐｏｎｓｅメッセージの例を示す図である。
【図１８】サービスが複数存在する場合のＧｅｔＲｅｓｐｏｎｓｅメッセージの例を示す図である。
【図１９】サービスが複数存在する場合のＧｅｔＲｅｓｐｏｎｓｅメッセージの例を示す図である。
【図２０】サービスが複数存在する場合のＧｅｔＲｅｓｐｏｎｓｅメッセージの例を示す図である。
【図２１】サービスの基本情報の取得処理を説明するためのシーケンス図である。
【図２２】サービスの基本情報の取得要求を示すメッセージの例を示す図である。
【図２３】サービスの基本情報の取得要求に対する応答メッセージの例を示す図である。
【図２４】通知を要求するイベントの登録処理を説明するためのシーケンス図である。
【図２５】Ｓｕｂｓｃｒｉｂｅメッセージの例を示す図である。
【図２６】Ｓｕｂｓｃｒｉｂｅメッセージの例を示す図である。
【図２７】イベントの登録要求に対する応答メッセージの例を示す図である。
【図２８】サービス利用時の処理手順の概要を説明するためのフローチャートである。
【図２９】サービス実行時の処理手順を説明するためのシーケンス図である。
【図３０】サービスの実行要求を示すメッセージの第一の例を示す図である。
【図３１】サービスの実行要求に対する応答メッセージの第一の例を示す図である。
【図３２】サービスの実行要求を示すメッセージの第二の例を示す図である。
【図３３】サービスの実行要求を示すメッセージの第二の例を示す図である。
【図３４】サービスの実行要求に対する応答メッセージの第二の例を示す図である。
【図３５】イベント発生時の処理手順を説明するためのシーケンス図である。
【図３６】イベントを通知するメッセージの例を示す図である。
【図３７】本発明の実施の形態における複合機のハードウェア構成の一例を示す図である。
【符号の説明】
【０１１７】
１            ネットワークシステム
１０          複合機
２０          クライアントＰＣ
３０          ネットワーク
１１１        ハードウェア
１１２        ソフトウェア
１２１        撮像部
１２２        印刷部
１３１        アプリケーション
１３２        プラットフォーム
１４１        コピーアプリ
１４２        プリンタアプリ
１４３        スキャナアプリ
１４４        ファクシミリアプリ
１４５        ネットファイルアプリ
１５１        コントロールサービス
１５２        ＯＳ
１６１        システム制御部
１６２        メモリ制御部
１６３        エンジン制御部
１６４        セキュリティ制御部
１６５        配信制御部
１６６        オペレーション制御部
１６７        ネットワーク制御部
１６８        ファクス制御部
１７０        サービス情報提供部
１７１        ＳＯＡＰ／ＸＭＬ部
１７２        ＷＳ−Ｄｉｓｃｏｖｅｒｙ部
１７３        ＷＳ−Ｔｒａｎｓｆｅｒ部
１７４        ＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅ部
１７５        ＷＳＤ−Ｍａｎａｇｅｒ部
１７６        プラットフォーム依存情報取得部
１８０        サービス部
１８１        ＳＯＡＰ／ＸＭＬ部
１８２        サービス機能部
１８３        ＷＳ−Ｅｖｅｎｔｉｎｇ部
１８４        プラットフォーム依存情報取得部
２０１        コントローラ
２０２        オペレーションパネル
２０３        ファクシミリコントロールユニット
２１１        ＣＰＵ
２１２        ＡＳＩＣ
２２１        ＮＢ
２２２        ＳＢ
２３１        ＭＥＭ−Ｐ
２３２        ＭＥＭ−Ｃ
２３３        ＨＤＤ
２３４        メモリカードスロット
２３５        メモリカード
２４１        ＮＩＣ
２４２        ＵＳＢデバイス
２４３        ＩＥＥＥ１３９４デバイス
２４４        セントロニクスデバイス
【図１】
0005211602.tif 000002
【図２】
0005211602.tif 000003
【図３】
0005211602.tif 000004
【図４】
0005211602.tif 000005
【図５】
0005211602.tif 000006
【図６】
0005211602.tif 000007
【図７】
0005211602.tif 000008
【図８】
0005211602.tif 000009
【図９】
0005211602.tif 000010
【図１０】
0005211602.tif 000011
【図１１】
0005211602.tif 000012
【図１２】
0005211602.tif 000013
【図１３】
0005211602.tif 000014
【図１４】
0005211602.tif 000015
【図１５】
0005211602.tif 000016
【図１６】
0005211602.tif 000017
【図１７】
0005211602.tif 000018
【図１８】
0005211602.tif 000019
【図１９】
0005211602.tif 000020
【図２０】
0005211602.tif 000021
【図２１】
0005211602.tif 000022
【図２２】
0005211602.tif 000023
【図２３】
0005211602.tif 000024
【図２４】
0005211602.tif 000025
【図２５】
0005211602.tif 000026
【図２６】
0005211602.tif 000027
【図２７】
0005211602.tif 000028
【図２８】
0005211602.tif 000029
【図２９】
0005211602.tif 000030
【図３０】
0005211602.tif 000031
【図３１】
0005211602.tif 000032
【図３２】
0005211602.tif 000033
【図３３】
0005211602.tif 000034
【図３４】
0005211602.tif 000035
【図３５】
0005211602.tif 000036
【図３６】
0005211602.tif 000037
【図３７】
0005211602.tif 000038