(57)【要約】【課題】記述規則の提供・取得をなるべく少ない負荷で行う技術が求められている。【解決手段】情報処理の提供に際して送受信される情報の記述規則を保持し、情報に含まれ得る任意要素の少なくとも一つを選択して、上記保持している記述規則のうち、選択した任意要素に係る記述規則の部分を抽出する。そして、情報のうちで、当該選択した任意要素を特定する対応情報と、抽出した記述規則の部分とを送信する情報処理装置である。【選択図】図１
2011039749.tif 000002
【特許請求の範囲】
【請求項１】
情報処理の提供に際して送受信される情報の記述規則を保持する保持手段と、
前記情報に含まれ得る任意要素の少なくとも一つを選択する選択手段と、
前記保持している記述規則のうち、前記選択した任意要素に係る記述規則の部分を抽出する抽出手段と、
前記情報のうちで、当該選択した任意要素を特定する対応情報と、前記抽出した記述規則の部分とを送信する送信手段と、
を含む情報処理装置。
【請求項２】
前記記述規則を要求する要求元装置から、要求の対象となる任意要素を特定する情報を受け入れる手段を含み、
前記選択手段は、当該受け入れた情報で特定される任意要素を選択することを特徴とする請求項１記載の情報処理装置。
【請求項３】
送信の対象となり得る情報ごとに、当該情報に含まれる任意要素を特定する情報を関連づけて保持する手段を含み、
前記選択手段は、送信の対象となった情報に関連づけられた情報で特定される任意要素を選択することを特徴とする請求項１記載の情報処理装置。
【請求項４】
コンピュータを、
情報処理の提供に際して送受信される情報の記述規則を保持する保持手段と、
前記情報に含まれ得る任意要素の少なくとも一つを選択する選択手段と、
前記保持している記述規則のうち、前記選択した任意要素に係る記述規則の部分を抽出する抽出手段と、
前記情報のうちで、当該選択した任意要素を特定する対応情報と、前記抽出した記述規則の部分とを送信する送信手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
実装データ記憶手段（４）により機器１の実装データを記憶するとともに、機器固有データ記憶手段（５）により機器固有データを記憶する。確認変更要求生成手段（６）により確認変更要求を生成して、確認変更要求送信手段（７）により確認変更要求と機器固有データに実装データの一部あるいは全てを付加して送信する。一方、機器状態分析手段（９）により機器固有データから機器１の状態を分析するとともに、新実装データ生成手段（１０）により確認要求に応じた分析結果データと変更要求に応じた変更対応データからなる新実装データを生成して、新実装データ送信手段（１１）によりこの新実装データを送信する。そして、実装データ更新手段（８）により新実装データを実装データとして更新して、機器の機能、機器の操作、機器の設定、機器の状態、各データの版数等のデータを更新する、という技術が特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】再公表２００２−０７８３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ウェブサービスなどの情報処理の提供に際して送受される情報には、メーカーごとに任意に定めた任意要素が含まれ得る。この場合、情報処理を要求する側では当該任意要素の記述規則の情報が必要となるが、当該記述規則の提供・取得をなるべく少ない負荷で行う技術が求められている。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は、情報処理装置であって、情報処理の提供に際して送受信される情報の記述規則を保持する保持手段と、前記情報に含まれ得る任意要素の少なくとも一つを選択する選択手段と、前記保持している記述規則のうち、前記選択した任意要素に係る記述規則の部分を抽出する抽出手段と、前記情報のうちで、当該選択した任意要素を特定する対応情報と、前記抽出した記述規則の部分とを送信する送信手段と、を含むこととしたものである。
【０００６】
請求項２記載の発明は、請求項１記載の情報処理装置であって、前記記述規則を要求する要求元装置から、要求の対象となる任意要素を特定する情報を受け入れる手段を含み、前記選択手段は、当該受け入れた情報で特定される任意要素を選択することとしたものである。
【０００７】
請求項３記載の発明は、請求項１記載の情報処理装置であって、送信の対象となり得る情報ごとに、当該情報に含まれる任意要素を特定する情報を関連づけて保持する手段を含み、前記選択手段は、送信の対象となった情報に関連づけられた情報で特定される任意要素を選択することとしたものである。
【０００８】
請求項４記載の発明は、プログラムであって、コンピュータを、情報処理の提供に際して送受信される情報の記述規則を保持する保持手段と、前記情報に含まれ得る任意要素の少なくとも一つを選択する選択手段と、前記保持している記述規則のうち、前記選択した任意要素に係る記述規則の部分を抽出する抽出手段と、前記情報のうちで、当該選択した任意要素を特定する対応情報と、前記抽出した記述規則の部分とを送信する送信手段と、として機能させることとしたものである。
【発明の効果】
【０００９】
請求項１、４記載の発明によると、任意要素の記述規則の情報の提供・取得を、本発明を実施しない場合に比べ、より少ない負荷で行うことができる。
【００１０】
請求項２記載の発明によると、要求元の装置からどの任意要素の記述規則を取得するかを選択できる。
【００１１】
請求項３記載の発明によると、情報処理を行う側が実際に送信する情報に係る任意要素の記述規則を選択的に提供できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態に係る情報処理装置とその接続例を表す構成ブロック図である。
【図２】本発明の実施の形態に係る情報処理装置が保持する記述規則を含むファイルの内容例を表す説明図である。
【図３】本発明の実施の形態に係る情報処理装置に接続される情報処理要求装置の構成例を表すブロック図である。
【図４】本発明の実施の形態に係る情報処理装置が保持する、任意情報に対応する情報を特定するテーブルの例を表す説明図である。
【図５】本発明の実施の形態に係る情報処理装置と情報処理要求装置との間で行われる処理の例を表すフローチャート図である。
【図６】本発明の実施の形態に係る情報処理装置と情報処理要求装置との間で行われる処理のもう一つの例を表すフローチャート図である。
【図７】本発明の実施の形態に係る情報処理装置と情報処理要求装置との間で行われる処理のさらにもう一つの例を表すフローチャート図である。
【図８】本発明の実施の形態に係る情報処理装置が提供する、任意情報に係る記述規則等を含んだ処理情報の例を表す説明図である。
【図９】本発明の実施の形態に係る情報処理装置と情報処理要求装置との間で行われる処理のまた別の例を表すフローチャート図である。
【発明を実施するための形態】
【００１３】
本発明の実施の形態について図面を参照しながら説明する。近年、ウェブサーバを介してクライアント（情報処理要求側）が、情報処理機能を提供する装置側との間で、情報処理の提供に係る通信を行う、いわゆるウェブサービスと呼ばれるシステムが広く開発されている。プリンタやスキャナなどの画像処理装置もまた、印刷やスキャンなどの情報処理機能を提供するにあたり、このウェブサービスのシステムの一部となり得る。
【００１４】
このようなウェブサービスでは、情報処理の要求側と情報処理の提供側との間で送受される情報（以下、処理情報と呼ぶ）の通信規約が予め定められる。この通信規約では、利用するプロトコルや、送受される処理情報に含まれるべき情報の要素の種類や型などが定められる。一例として印刷指示の処理情報には、例えば印刷されるべき画像を表す画像データ（イメージ）の要素がバイナリデータとして含まれる。また、印刷に係る少なくとも一つのパラメータ（用紙サイズ、カラーの設定など）を表す要素がそれぞれ含まれてもよい。
【００１５】
具体的に、情報処理を提供する情報処理装置は、自らがどのような情報処理サービスを提供するかを表す情報、また、その情報処理サービスの利用に際し情報処理要求装置２との間で授受される情報の型を表す情報や、当該情報処理サービスを呼び出すための参照情報（ＵＲＬ（Uniform Resource Locators）等）を含む機能定義情報を保持し、情報処理を要求する側へ提供する。
【００１６】
一般に、ここで情報処理を要求する側へ提供する機能定義情報は、複数種類の情報処理装置との間の通信規約に共通した事項が記述される。具体的な例として、情報処理装置がプリンタである場合、メーカーＡの製造するプリンタとメーカーＢの製造するプリンタとが共通して提供する処理情報の要素（既定要素）の記述が規定される。そしてメーカーごとに異なる拡張部分については、拡張情報を含めることができる旨の記述（任意要素の記述）を含めておき、当該任意要素の具体的記述規則については、別途の記述規則情報として情報処理装置側で保持する。
【００１７】
以下の説明では、この機能定義情報がＷＳＤＬ（Web Service Description Language）で記述されているものとする。ＷＳＤＬは、Ｗ３Ｃ（World Wide Web Consortium）において規定された言語仕様の一つで、http://www.w3.org/TR/2007/REC-wsdl20-20070626/等に定義がおかれているので、その記述形式の詳しい内容についてはここでは省略する。この機能定義情報は一般に複数の要素を含んで構成され、各要素は予め別途定義された記述規則により記述される。本実施の形態では、この記述規則がＸＭＬ（eXtensible Markup Language）スキーマにより記述されているものとする。
【００１８】
ところで、このＸＭＬスキーマには、一般的なＷＳＤＬにて広く利用される要素（既定要素（Well-known要素））の記述規則のほか、メーカーで任意に拡張した要素（任意要素（any要素））の記述規則を含んでもよい。具体的に、名前（name）のほか、任意の要素を含めることのできる人物情報（person）についての定義は次のように記述される：
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
【００１９】
ここで別のＸＭＬスキーマにより給与情報（salary）を次のように定める（このＸＭＬスキーマを含むファイルはsalary.xsdとする）。
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="aaaa"
xmlns="aaaa"
elementFormDefault="qualified">
<xs:element name="salary">
<xs:complexType>
<xs:sequence>
<xs:element name="amount" type="xs:int"
maxOccurs=1/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
【００２０】
そして、これら人物情報と給与情報とを組み合わせて、処理情報内に「従業員情報」（worker）のインスタンス（情報処理サービスで授受される情報そのもの）を記述できる（この定義を含むＸＭＬスキーマのファイルはworker.xsdであるとする）。すなわち：
<?xml version="1.0" encoding="ISO-8859-1"?>
<persons xmlns="http://www.microsoft.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="http://www.microsoft.com worker.xsd
aaaa salary.xsd">
<person>
<name>foo</name>
<saraly>
<amount>xxxxx</amount>
</saraly>
</person>
</persons>
【００２１】
ここでは、人物情報の要素（person）における任意要素として、給与の情報（saraly）の額（amount）が含まれていることになる。そして、この給与の情報（saraly）という任意要素の記述規則を規定しているのが、上記のsaraly.xsdというＸＭＬスキーマということになる。なお、ここでは説明の単純化のために、各要素の記述規則が別々のファイルに置かれているものとしたが、これらは一つのファイルにまとめて含まれていてもよい。以下の説明では、複数の要素（うち少なくとも一つは任意要素であるとする）の記述規則が一つのファイルにまとめて記述されている場合を想定する。
【００２２】
なお、ここではこれら機能定義情報の要素の記述規則がＸＭＬスキーマであるとしているが、情報処理サービスの仕様を表す情報を含むいわゆる仕様記述言語として利用可能なものであれば、これらに限られるものではない。
【００２３】
本実施の形態に係る情報処理装置１は、例えば画像処理装置（プリンタやスキャナ、それらの機能を複合的に含む複合機等）として実現され、種々の情報処理サービスを提供する。また、この情報処理装置１は、ネットワーク等の通信手段を介して情報処理要求装置２に接続される。この情報処理要求装置２は、情報処理サービスの提供を受けるパーソナルコンピュータなどである。なお、情報処理装置１が提供する情報処理サービスは、複合機によって提供されるスキャンや印刷などの機能だけでなく、例えば商取引等に関わるウェブサービスなどであってもよい。なお、以下では区別のために、具体的な情報処理の過程で送受される情報（インスタンス）を「処理情報」と呼び、機能定義情報等、インスタンスの内容を規定する情報と区別するものとする。
【００２４】
本実施の形態の情報処理装置１は、図１に例示するように、制御部１１と、記憶部１２と、機能部１３と、通信部１４とを含んで構成される。ここで制御部１１は、ＣＰＵ（Central Processing Unit）等のプログラム制御デバイスであり、記憶部１２に格納されたプログラムに従って動作する。
【００２５】
本実施の形態の制御部１１は、自己が情報処理を遂行する際に、情報処理要求装置２との間で送受する必要のある処理情報を規定する情報などを含んだ機能定義情報を情報処理要求装置２へ配信する。一例として、スキャンの情報処理においては、この機能定義情報には、スキャンの設定に係る処理情報や、スキャンを指示する処理情報、スキャンされた画像を含んだ処理情報等の記述方法等が含まれる。
【００２６】
また、この制御部１１は、情報処理要求装置２から情報処理の要求に係る処理情報を受け入れる。そして、当該受け入れた処理情報に基づいて機能部１３を制御するなど、処理情報に関連して予め定められた情報処理を遂行する。また、制御部１１は、遂行した情報処理に係る処理情報を生成して、情報処理の要求元となる情報処理要求装置２に送信する。
【００２７】
ここで制御部１１が受信する処理情報には、予めメーカーや装置に固有の任意要素に係る具体的情報（インスタンス）が含まれていてもよく、本実施の形態では、機能定義情報に含まれる処理情報のうち、このような任意要素を含むことを許容している処理情報の記述規則に、任意要素が含まれ得る旨を表す情報が含まれている。制御部１１が受信する処理情報には、予めメーカーや装置に固有の任意要素に係る具体的情報（インスタンス）が含まれるものとする。
【００２８】
また、この制御部１１は、処理情報に含まれ得る任意要素の少なくとも一つを選択し、当該選択した任意要素に係る記述規則の部分を記述規則情報のうちから抽出し、当該抽出した記述規則情報部分を、情報処理要求装置２へ送信する。本実施の形態のある例では、制御部１１は、情報処理要求装置２から要求の対象となる任意要素を特定する情報を受け入れ、当該受け入れた情報で特定される任意要素を選択して、保持している記述規則のうちから、当該選択した任意要素に係る記述規則の一部を抽出し、要求元の情報処理要求装置２へ送信する。また、本実施の形態の別の例では次のようにしてもよい。すなわち送信の対象となり得る処理情報ごとに、処理情報に含まれる任意要素を特定する情報を関連づけて保持しておき、処理情報を送信する際に、当該送信の対象となった処理情報に関連づけて保持している情報で特定される任意要素を選択する。そして当該選択した任意要素に係る記述規則情報の一部を、処理情報とともに情報処理要求装置２へ送信する。これらの制御部１１の詳しい処理の例については後に述べる。
【００２９】
記憶部１２は、制御部１１によって実行されるプログラムを保持する。このプログラムは、ＤＶＤ−ＲＯＭ（Digital Versatile Disc-Read Only Memory）等のコンピュータ可読な記録媒体に格納されて提供され、この記憶部１２に複写されたものであってもよい。また、この記憶部１２は、制御部１１のワークメモリとしても動作する。
【００３０】
また本実施の形態では、記憶部１２は、自らがどのような情報処理サービスを提供するか、また、その情報処理サービスの利用に際し情報処理要求装置２との間で授受される情報の型を表す情報や、当該情報処理サービスを呼び出すための参照情報（ＵＲＬ等）を含む機能定義情報を保持している。この機能定義情報に含まれる型を定義する情報等において、任意要素を含んでもよい旨の情報が含まれることがある。また、記憶部１２は処理情報に含まれ得る任意要素の記述規則情報としてのＸＭＬスキーマを保持する。この記述規則情報は図２に例示するように、少なくとも一つの任意要素の記述規則（任意規則：Ａ１，Ａ２…）を含んでいる。
【００３１】
機能部１３は、情報処理装置１の果たすべき機能を実現するためのものであり、具体的に情報処理装置１が複合機であれば、スキャナやプリンタなどを含む。通信部１４は、ネットワークインタフェースなどであり、ネットワークなどの通信手段を介して、情報処理要求装置２との間で情報を送受する。
【００３２】
情報処理要求装置２は、図３に例示するように、制御部２１と、記憶部２２と、操作部２３と、表示部２４と、通信部２５とを含んで構成される。ここで制御部２１は、ＣＰＵ（Central Processing Unit）等のプログラム制御デバイスであり、記憶部２２に格納されたプログラムに従って動作する。
【００３３】
この情報処理要求装置２の制御部２１は、情報処理装置１が提供する機能定義情報や処理情報を取得する。また、この制御部２１は、取得した機能定義情報から任意要素に係る記述を検出する。制御部２１は、任意要素に係る記述が検出されると、情報処理装置１に対して当該任意要素に係る記述規則の部分を要求し、情報処理装置１から当該記述規則の部分を取得し、機能定義情報に規定された情報処理を要求するためのプログラムモジュール（いわゆるスタブ）を生成する処理を行う。そして制御部２１は、当該生成したプログラムモジュール等を組み込んだプログラムを生成し、このプログラムを実行して、当該プログラムの指示に従い、情報処理装置１に対して情報処理を要求するための処理を行う。この制御部２１の詳しい処理の例については後に述べる。
【００３４】
記憶部２２は、制御部２１によって実行されるプログラムを保持する。このプログラムは、ＤＶＤ−ＲＯＭ（Digital Versatile Disc-Read Only Memory）等のコンピュータ可読な記録媒体に格納されて提供され、この記憶部２２に複写されたものであってもよい。また本実施の形態では、制御部２１によって生成されたプログラムモジュールやプログラムも、この記憶部２２に格納される。さらに本実施の形態では、この記憶部２２に、情報処理装置１から取得した機能定義情報等を保持する。そしてさらに、この記憶部２２は、制御部２１のワークメモリとしても動作する。
【００３５】
操作部２３は、マウスやキーボードなどでよい。この操作部２３は、利用者によって行われる指示操作を受け入れて、当該指示操作の内容を表す情報を制御部２１に出力する。表示部２４は、ディスプレイなどであり、制御部２１から入力される指示に従って情報を表示する。通信部２５は、ネットワークインタフェースなどであり、ネットワークなどの通信手段を介して情報処理装置１との間で情報を送受する。
【００３６】
次に、本実施の形態の情報処理装置１と、情報処理要求装置２とのそれぞれの制御部１１，２１での処理の例について述べる。
【００３７】
情報処理要求装置２の制御部２１は、情報処理装置１から受信する機能定義情報を解釈（パース）する。既に述べたように、これら情報処理装置１と情報処理要求装置２とが送受信する処理情報には、メーカーや装置に固有の任意要素を含めることが許容されている場合がある。一例として、処理情報に含まれ得る要素の一つである、ProductSearchRequestについて、それに対応する機能定義情報の記述が、
<xs:complexType name="ProductSearchRequest">
<xs:sequence>
<xs:element name="Keyword" type="xs:string"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
と定められているとき、情報処理装置１の制御部１１は、この任意要素（<xs:any
namespace="##other" minOccurs="0" maxOccurs="unbounded"/>で表される要素）のインスタンスとして、製造者名（Manufacturer）の情報を含めることが許容される。この場合、制御部１１が生成する処理情報の一例は、
<ProductSearchRequest>
<Keyword>bar</name>
<Manufacturer>
<name>xxxxx</name>
</Manufacturer>
</ProductSearchResult>
などとなる。なお、本実施の形態の情報処理装置１では、予めどの任意要素にどのインスタンスを記述するかが定められており、制御部１１は当該定めに従って処理情報を生成するものとする。
【００３８】
すなわち本実施の形態では、制御部１１が実行するプログラムとして、記憶部１２に、図４に例示するような、どの任意要素にどのような情報を含めるかを表す情報を関連づけたテーブルが保持されている。図４の例では、任意要素の位置を特定する位置情報と、任意要素として含めるべき情報の要素を特定する情報とが関連づけられている。ここで位置情報は、XPathで記述している。また任意要素として含めるべき情報の要素を特定する情報は、タグ名など、名前空間と名称とを含むものとしている。
【００３９】
制御部１１は、情報処理要求装置２へ送信する処理情報を生成する際に、このテーブルを参照し、含めるべき情報を収集して、処理情報を生成する。
【００４０】
一方、情報処理要求装置２の制御部２１は、情報処理装置１が保持する機能定義情報を取得して記憶部２２に保持する。そして、この機能定義情報を取得した後の任意のタイミングで、この制御部２１は図５に示す処理を開始する。
【００４１】
制御部２１は、取得した機能定義情報のうちから、任意要素を許容する記述（<xs:any 等、任意要素であることを表すタグで始まる部分、例えば上述の例でいう<xs:any
namespace="##other" minOccurs="0" maxOccurs="unbounded"/>の部分）を検出する（Ｓ１）。
【００４２】
この処理を行うタイミングは、例えば具体的に当該機能定義情報が定める情報処理が、利用者の指示により要求されたタイミングであってもよい。
【００４３】
制御部２１は、処理Ｓ１で任意要素を許容する記述を検出できなかったならば（Noならば）、そのまま処理を終了する。一方処理Ｓ１で任意要素を許容する記述を検出したとき（Yesのとき）は、制御部２１は、当該記述に対応する任意要素を特定する情報を情報処理装置１へ送信して、当該情報で特定される任意要素に係る記述規則部分を要求する（Ｓ２）。ここで任意要素を特定する情報は、任意要素の位置を表す情報とする。この場合も任意要素の位置はXPathを用いて記述できる。
【００４４】
情報処理装置１の制御部１１は、ウェブサービスまたはウェブアプリケーションとして機能し、情報処理要求装置２から任意要素に係る記述規則部分の要求を受け入れる（Ｓ３）。そして制御部１１は、当該情報処理要求装置２から受信した情報で特定される任意要素の記述規則を含むファイル（拡張スキーマを記述したファイル）を、記憶部１２から検索する（Ｓ４）。
【００４５】
制御部１１が検索により見いだしたファイルには一般に、情報処理要求装置２から受信した情報で特定される任意要素の記述規則のほか、他の任意要素の記述規則や、既定要素の記述規則などが含まれ得る。そこで本実施の形態の制御部１１は、この検索により見いだしたファイルに含まれる情報のうちから、情報処理要求装置２から受信した情報で特定される任意要素の記述規則の部分を抽出する（Ｓ５）。ここで制御部１１が抽出する情報は、記述されていた要素の型を表す情報や、名前空間を特定する情報などである。そして制御部１１は、抽出した任意要素の記述規則の部分の情報と、当該記述規則に係る任意情報が機能定義情報のどの部分に記述された任意情報であるかを表す対応情報とを要求元である情報処理要求装置２へ送信する（Ｓ６）。
【００４６】
ここで対応情報は、抽出した記述規則に係る任意情報が機能定義情報のどの位置に含まれる任意情報であるかを表す位置情報とすればよい。この場合、情報処理要求装置２から任意情報を特定する情報として位置情報を受信していれば、当該位置情報をそのまま用いてもよい。また、予め任意情報を特定する情報と、送信するべき対応情報とを関連づけたテーブルを記憶しておき、このテーブルを参照して、対応する記述規則が要求された任意情報に関連づけられた対応情報を読み出して送信することとしてもよい。
【００４７】
制御部２１は、情報処理装置１から記述規則を受信すると、当該受信した記述規則及び対応情報と、機能定義情報とから、任意要素に係る具体的情報（インスタンス）の生成等、任意要素を処理するプログラム（スタブ）を生成する（Ｓ７）。このスタブの生成処理については、広く知られているので、詳細な説明を省略するが、例えばApache Axis2等を利用して行うことができる。
【００４８】
制御部２１は、生成したスタブを予め設定されたプログラムに組み込み、当該組み込み後のプログラムを記憶部２２に格納する（Ｓ８）。これにより情報処理要求装置２は、情報処理の要求の際に、任意要素に対応した処理を行うこととなる。
【００４９】
すなわち、情報処理要求装置２は、任意要素として情報処理装置１側で規定されている情報を含んだ処理情報を送信することとなる。
【００５０】
そして情報処理装置１は、情報処理要求装置２から受信する処理情報を解釈し、その解釈結果に従って機能部１３を制御して情報処理を実行する。また情報処理装置１の制御部１１は、情報処理の結果などを含んだ処理情報を、情報処理の要求元である情報処理要求装置２へ送信してもよく、さらにこのとき制御部１１は、当該情報処理要求装置２に送信する処理情報に、予めメーカーや機器に固有の任意要素に係る具体的情報（インスタンス）を含めてもよい。
【００５１】
情報処理要求装置２は、予め当該任意要素に対応するスタブを組み込んだプログラムを実行して、情報処理装置１から受信する処理情報を解釈するので、当該任意要素に係るインスタンスに関連した処理を実行できる。
【００５２】
さらに、図５に示した処理Ｓ６において情報処理装置１が送信する情報には、対応する任意要素の用途や説明などの文字列情報を含んでもよい。この文字列情報は、任意要素を特定する情報に関連づけて予め情報処理装置１の記憶部１２に格納しておく。そして情報処理装置１の制御部１１が当該関連づけられた文字列情報を読み出して、当該任意要素に関連して抽出された記述規則部分の情報とともに情報処理要求装置２へ送信する。
【００５３】
本実施の形態は以上のように構成されるので、次のように動作する。すなわちクライアントである情報処理要求装置２では、要求する情報処理（例えば印刷ウェブサービス）の機能定義情報に任意要素があるか否かを検出する。ここで、任意要素を検出すると、情報処理要求装置２は、印刷ウェブサービスを提供する情報処理装置１側に対し、当該任意要素として含まれるべき情報の記述規則を問い合わせる。
【００５４】
なお、このとき情報処理装置１では、任意要素に対応する情報の記述規則がなければ、規則がない旨の応答を行ってもよい。この場合、情報処理要求装置２では、当該任意要素を無視して処理することとなる。
【００５５】
一方、情報処理装置１が問い合わせに係る任意要素に対応する情報の記述規則を見いだすと、当該任意要素に係る記述規則の部分を抽出して、選択的に、情報処理要求装置２へ送信する。このとき、送信する記述規則に関連する任意要素が、機能定義情報のどの任意要素に対応するかを表す対応情報（XPathで記述された位置情報など）を併せて情報処理要求装置２へ送信する。
【００５６】
このような動作をする情報処理装置１は、ウェブサービスとして動作するものでもよいし、ウェブアプリケーションとして動作するものでもよい。また情報処理装置１の応答は記述規則であるＸＭＬスキーマ等だけでなく、該当する任意要素の用途や説明などを含んでもよい。
【００５７】
情報処理要求装置２では、これにより取得したＸＭＬスキーマ等の記述規則を基に、任意要素を処理するスタブを生成する。このスタブの生成には、Apache Axis2などのウェブサービス用ツールキットを利用できる。
【００５８】
生成されたスタブは、印刷要求プログラムに組み込まれる。これにより、任意要素に対応した印刷要求処理が実現される。この印刷要求処理を実行する情報処理要求装置２は、情報処理である印刷処理を提供するサーバ、すなわち情報処理装置１に対して印刷要求を送信する。このとき仮に情報処理装置１が複数のメーカー間で共通する既定要素とともに、メーカーや装置に固有の任意要素を含んだ処理情報を生成して送信してもよい。
【００５９】
情報処理要求装置２は、既に任意要素に対応したプログラムを実行しており、当該処理情報に含まれる任意要素に対応した処理を実行可能である。一例として、この任意情報には、印刷完了までにかかる見積もり時間などであってもよい。
【００６０】
なお、情報処理要求装置２において任意情報に係る記述規則を受け入れてスタブを生成する処理は、制御部２１自身で行う必要は必ずしもなく、別体の装置によって実行されてもよい。この場合、制御部２１は、生成されたスタブを取得して自ら実行するプログラムに組み込む。さらに、プログラムへの組み込みの処理も別体の装置によって実行されてもよい。
【００６１】
また、情報処理装置１の制御部１１が直接任意要素に対応する記述規則を送信するのではなく、記述規則を別体の装置に送信させてもよい。
【００６２】
さらにこの例では対応情報の交換も、任意要素に係る記述規則とともに行っているが、別々に行ってもよいし、対応情報の提供を情報処理装置１とは異なる他の装置のウエブサービスとして行ってもよい。
【００６３】
また、本実施の形態は、以上の態様に限られるものではない。すなわち、ここまでの説明では情報処理要求装置２からの要求に基づき、要求された任意要素に係る記述規則を選択的に抽出していた。しかし本実施の形態では、これとは逆に次のように処理が行われてもよい。
【００６４】
すなわち本実施の形態の別の例に係る情報処理要求装置２の制御部２１は、情報処理装置１が保持する機能定義情報を取得して記憶部２２に保持する。そして、この機能定義情報を取得した後の任意のタイミングで、制御部２１は図６に示す処理を開始する。
【００６５】
制御部２１は、取得した機能定義情報のうちから、任意要素を許容する記述（<xs:any 等、任意要素であることを表すタグで始まる部分、例えば上述の例でいう<xs:any
namespace="##other" minOccurs="0" maxOccurs="unbounded"/>の部分）を検出する（Ｓ１）。この処理を行うタイミングは、例えば具体的に当該機能定義情報が定める情報処理が、利用者の指示により要求されたタイミングであってもよい。
【００６６】
制御部２１は、処理Ｓ１で任意要素を許容する記述を検出できなかったならば（Noならば）、そのまま処理を終了する。一方処理Ｓ１で任意要素を許容する記述を検出したとき（Yesのとき）は、制御部２１は、当該記述に対応する任意要素に含める情報を表す記述規則を、当該任意要素を特定する情報とともに情報処理装置１へ送信する（Ｓ１２）。ここで任意要素を特定する情報は、任意要素の位置を表す情報とする。この場合も任意要素の位置はXPathを用いて記述できる。
【００６７】
つまりこの例では、情報処理要求装置２が任意要素に含めようとする情報の記述規則を送信し、情報処理装置１に対応する処理を行わせることになる。具体的な例として、スキャンの条件や印刷処理に関わるパラメータなどを任意要素に含めて伝達する。
【００６８】
情報処理装置１の制御部１１は、ウェブサービスまたはウェブアプリケーションとして機能し、情報処理要求装置２から任意要素に係る記述規則を受け入れる（Ｓ１３）。そして制御部１１は、当該情報処理要求装置２から記述規則等を受信すると、当該受信した記述規則及び対応情報と、対応する機能定義情報とから、任意要素に係る具体的情報（インスタンス）の生成や取得、それに基づく機能部１３の制御等、任意要素を処理するプログラム（スタブ）を生成する（Ｓ１４）。このスタブの生成処理については、広く知られているので、詳細な説明を省略するが、例えばApache Axis2等を利用して行うことができる。
【００６９】
制御部１１は、生成したスタブを予め設定されたプログラムに組み込み、当該組み込み後のプログラムを記憶部１２に格納する（Ｓ１５）。これにより情報処理装置１は、情報処理の要求の際に、任意要素に対応した処理を行うこととなる。なお、この処理Ｓ１５において、制御部１１は、記述規則の送信元である情報処理要求装置２を特定する情報に関連づけてプログラムを格納しておき、情報処理要求装置２から処理情報を受け入れたときに、当該処理情報の送信元である情報処理要求装置２を特定する情報を取得し、当該取得した情報に関連づけられたプログラムがある場合は、当該プログラムを実行し、そうでない場合は予め定められたプログラムを実行することとしてもよい。これによると、情報処理要求装置２ごとに異なる任意要素に対応する処理を行うこともあり得ることとなる。
【００７０】
さらに本実施の形態は、以上の態様に限られるものではない。すなわち情報処理装置１が、自ら送信する機能定義情報に任意要素に係る記述が含まれ、かつ当該記述に対応する具体的情報を送受する場合、当該任意情報に係る記述規則を選択的に抽出し、当該抽出した記述規則の情報を送信してもよい。
【００７１】
この場合、情報処理要求装置２の制御部２１は、取得した機能定義情報から任意要素に係る記述を検出し、情報処理装置１に対して当該任意要素に係る記述規則の部分を要求する処理を行う必要は必ずしもないこととなる。
【００７２】
具体的にこの場合は、情報処理装置１と情報処理要求装置２とは図７に例示する処理を行う。すなわち、制御部１１は、自ら保持する機能定義情報のうちから、任意要素を許容する記述（<xs:any 等、任意要素であることを表すタグで始まる部分、例えば上述の例でいう<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>の部分）を検出する（Ｓ２１）。
【００７３】
制御部１１は、処理Ｓ２１で任意要素を許容する記述を検出できなかったならば（Noならば）、そのまま処理を終了する。一方処理Ｓ２１で任意要素を許容する記述を検出したとき（Yesのとき）は、制御部１１は、当該検出した記述に対応する任意要素を選択し、当該選択した任意要素の記述規則を含むファイル（拡張スキーマを記述したファイル）を、記憶部１２から検索する（Ｓ２２）。
【００７４】
制御部１１が検索により見いだしたファイルには一般に、情報処理要求装置２から受信した情報で特定される任意要素の記述規則のほか、他の任意要素の記述規則や、既定要素の記述規則などが含まれ得る。そこで本実施の形態の制御部１１は、この検索により見いだしたファイルに含まれる情報のうちから、上記選択した任意要素の記述規則の部分を抽出する（Ｓ２３）。ここで制御部１１が抽出する情報は、記述されていた要素の型を表す情報や、名前空間を特定する情報などである。そして制御部１１は、抽出した任意要素の記述規則の部分の情報と、当該記述規則に係る任意情報が機能定義情報のどの部分に記述された任意情報であるかを表す対応情報とを、別途特定した情報処理要求装置２へ送信する（Ｓ２４）。
【００７５】
ここで対応情報は、抽出した記述規則に係る任意情報が機能定義情報のどの位置に含まれる任意情報であるかを表す位置情報とすればよい。また、予め任意情報を特定する情報と、送信するべき対応情報とを関連づけたテーブルを記憶しておき、このテーブルを参照して、対応する記述規則が要求された任意情報に関連づけられた対応情報を読み出して送信することとしてもよい。
【００７６】
制御部２１は、情報処理装置１から記述規則を受信すると、当該受信した記述規則及び対応情報と、機能定義情報とから、任意要素に係る具体的情報（インスタンス）の生成等、任意要素を処理するプログラム（スタブ）を生成する（Ｓ７）。このスタブの生成処理については、広く知られているので、詳細な説明を省略するが、例えばApache Axis2等を利用して行うことができる。
【００７７】
制御部２１は、生成したスタブを予め設定されたプログラムに組み込み、当該組み込み後のプログラムを記憶部２２に格納する（Ｓ８）。これにより情報処理要求装置２は、情報処理の要求の際に、任意要素に対応した処理を行うこととなる。
【００７８】
ここで情報処理装置１は、上記の処理を、例えば情報処理要求装置２から情報処理の要求を受け入れた時点で実行してもよい。また、新たな情報処理要求装置２が検出された時点などにおいて、当該検出された情報処理要求装置２を特定して（処理Ｓ２４における送信先として特定して）、上記処理を行うこととしてもよい。
【００７９】
また、具体的に任意要素としての情報を含む処理情報を送信する際に、当該処理情報に係る任意情報について上記処理を実行してもよい（この場合、処理Ｓ２１では、機能定義情報のうち送信の対象となっている処理情報を表す部分から、任意情報を含めることが許容されている旨の記述を検出することとする）。
【００８０】
この例によれば、本実施の形態の各装置は次のように動作することとなる。例えば情報処理装置１としての複合機内の画像取込（スキャン）ウェブサービスにおいて送受される処理情報に、任意要素を含めることが許容されており、２つの情報が任意要素に対応する情報として含められることになっているものとする。すなわち、情報処理装置１である複合機がスキャンを終えて、ウェブサービスを用いてクライアントである情報処理要求装置２に画像データを配信する際に、情報処理装置１では、当該画像データの配信に係る処理情報の記述規則として、任意要素として含めるべき２つの情報の記述規則（以下、any(1)、any(2)と呼ぶ）をそれぞれ抽出して取得する。
【００８１】
また、これら抽出した記述規則（any(1)、any(2)）に対応する任意要素について、それぞれの対応情報を生成する。読み取られた画像データは、メーカーなどによらずに共通に含まれる情報の要素（既定要素）であるので、情報処理装置１は、当該画像データを送信の対象として、処理情報内に記述するとともに、上記２つの任意要素に関する情報を記述する。さらに情報処理装置１は、取得した記述規則と、生成した対応情報とを処理情報に含める。具体的にこれら記述規則や対応情報もまた、任意要素の情報として対応する位置に含めるのである（図８）。図８では、画像データが<Data>...</Data>なる部分で表され、これに関わる任意要素として<Application>が含まれている（Ａ）例となっている。そして、この任意要素に係る記述規則が同じく任意要素として引き続き記述され（Ｓ）、対応情報としての位置情報も任意要素として、続けて記述されている（Ｌ）。ここでは任意要素として、これら記述規則や対応情報をそのままの形で付加しているが、ウェブサービスなどの形式で付加してもよい。
【００８２】
この処理情報を受信した情報処理装置１では、処理情報内から任意要素の記述規則（any(1)及びany(2)）とそれぞれの対応情報とを取得し、これらに基づいてスタブを生成する。そして生成したスタブを、スキャンされた画像データを受信したときに実行するべきプログラム（画像保存処理プログラムなど）に組み込む。
【００８３】
なお、情報処理要求装置２では、２つの任意要素の双方に必ずしも対応しなければならないものではなく、いずれか一方（例えばany(1)のみ）に対応して、いずれかの任意情報に対応するインスタンスについてのみ対応する処理を実行してもよい。
【００８４】
さらに本実施の形態では、情報処理装置１が任意のタイミングで任意要素に係る情報の内容を更新できることに鑑みて、図５に示した処理や図７に示した処理を予め定めたタイミングごとに繰り返し行ってもよい。
【００８５】
これらの処理を行うタイミングは定期的なものであってもよいし、また、情報処理装置１から送信された処理情報内に未知の（図５や図７の処理によって生成したスタブを取り込んだプログラムによって解釈できない）任意要素に係る情報が含まれることを検出したタイミングであってもよい。
【００８６】
また、このように、未知の任意要素に係る情報を含む処理情報を受け取ったときは、情報処理要求装置２の制御部２１は、とりあえずこの処理情報を処理するために、次のように処理を行ってもよい。
【００８７】
すなわち制御部２１は、未知の任意要素に係る情報を含む処理情報を保持した状態で、図９に例示する処理を開始する。つまり制御部２１は当該保持した処理情報のうち、未知の任意要素に係る情報を特定する情報を生成し、当該生成した情報とともに、当該未知の任意要素の記述規則を要求する（Ｓ３１）。具体的にこの情報は、任意要素に対応するインスタンスに付されたタグ名などとすればよい。
【００８８】
情報処理装置１の制御部１１は、ウェブサービスまたはウェブアプリケーションとして動作し、情報処理要求装置２から任意要素に係る記述規則の要求を受け入れて、当該情報処理要求装置２から受信した情報で特定される任意要素の記述規則を含むファイル（拡張スキーマを記述したファイル）を、記憶部１２から検索する（Ｓ３２）。
【００８９】
制御部１１が検索により見いだしたファイルには一般に、情報処理要求装置２から受信した情報で特定される任意要素の記述規則のほか、他の任意要素の記述規則や、既定要素の記述規則などが含まれ得る。そこで本実施の形態の制御部１１は、この検索により見いだしたファイルに含まれる情報のうちから、情報処理要求装置２から受信した情報で特定される任意要素の記述規則の部分を抽出する（Ｓ３３）。ここで制御部１１が抽出する情報は、記述されていた要素の型を表す情報や、名前空間を特定する情報などである。そして制御部１１は、抽出した任意要素の記述規則の部分の情報を、要求元である情報処理要求装置２へ送信する（Ｓ３４）。
【００９０】
制御部２１は、情報処理装置１から要求に対する応答として、未知の任意要素に係る記述規則部分を受信する。そして制御部２１は、機能定義情報と当該受信した記述規則部分とから、任意要素を生成する等、任意要素を処理するプログラム（スタブ）を生成する（Ｓ３５）。このスタブ生成処理については、広く知られているので、詳細な説明を省略するが、例えばApache Axis2等を利用して行うことができる。
【００９１】
制御部２１は、生成したスタブを予め設定されたプログラムに組み込み、当該組み込み後のプログラムを実行して、保持している処理情報を処理する（Ｓ３６）。これにより、情報処理要求装置２は、任意要素に対応した処理を行う。
【００９２】
なお、制御部１１は上記処理Ｓ３３において抽出した記述規則部分が、機能定義情報に記述されている任意情報のうち、どの任意情報に対応するものであるかを表す位置情報を生成し、抽出した任意要素の記述規則の部分の情報とともにこの位置情報を送信してもよい。
【００９３】
このために制御部１１は、図４に例示したテーブルから、要求された任意要素を特定する情報に関連づけられた位置情報を読み出し、抽出した記述規則部分とともに当該読み出した位置情報を送信することとしてもよい。さらに、既に述べたように、ここで送信する情報には、対応する任意要素の用途や説明などの文字列情報を含んでもよい。この文字列情報は、予め任意要素を特定する情報に関連づけて記憶部１２に格納しておく。そして当該関連づけられた文字列情報を読み出して、当該任意要素に関連して抽出された記述規則部分の情報とともに情報処理要求装置２へ送信する。
【００９４】
なお、上述のいずれの例においても、情報処理装置１と情報処理要求装置２とは一対一で通信を行うこととしていたが、情報の伝達方法は、これらに限られず、マルチキャスト、ブロードキャストなどを用いてもよい。
【００９５】
また、ここまでの説明で、情報処理装置１が任意要素の記述規則を選択的に送信するときには、任意要素として含まれ得る情報の記述規則のすべてではなく、あるウェブサービスなど、特定の機能定義情報で規定される情報処理機能において利用される任意要素としての情報に係る記述規則を選択的に抽出し、当該抽出した記述規則を提供することとしているが、情報処理装置１は、特定の機能定義情報で規定される情報処理機能において利用される任意要素のうちから、さらに別途指定された条件に合致する任意要素についての記述規則を選択的に抽出し、当該抽出した記述規則を提供することとしてもよい。ここで条件は、情報処理要求装置２から提供されてもよいし、予め情報処理装置１において設定されたものであってもよい。
【００９６】
また、クライアントである情報処理要求装置２は、必ずしもスタブを生成しなくてもよい。例えば、別途定められた条件を満足する場合に限ってスタブを生成することとしてもよい。さらに、スタブを生成したときには、情報処理要求装置２は、任意要素への対応が完了したことを情報処理装置１側に通知してもよい。
【００９７】
さらに、ここまでの説明で対応情報は、提供されるＸＭＬスキーマ等の記述規則がどの要素に対応するかを表すXPath（最上位の要素から対象の要素までを辿るパス）などの位置情報であるとの例を説明したが、サービス名やサービス提供ＵＲＬなどを用いてサービスを表すなど、どの機能定義情報に対応するものであるかを示す情報を対応情報に含めてもよい。さらに、予め機能定義情報に含まれる任意要素に識別情報を関連づけておき、提供するＸＭＬスキーマなどの記述規則に、対応する識別情報を含めて、これら識別情報と、XPathによる位置情報と、サービス名などのサービスを特定する情報との三つ組のリストをＸＭＬ等で表現して対応情報としてもよい。
【００９８】
本実施の形態によれば、任意要素に係る情報を任意のタイミングで変更しても、情報処理要求装置２の利用者は、当該変更後の任意要素に係る情報を用いた情報処理を行うことができるようになる。また、情報処理装置１のメーカー等が、任意要素として含める情報を変更するごとに、情報処理要求装置２側のプログラムを用意して配布する必要がなくなる。
【００９９】
また、本実施の形態では、任意要素として含まれ得る情報の記述規則のすべてではなく、あるウェブサービスなど、機能定義情報で規定される情報処理機能において利用される任意要素としての情報に係る記述規則が選択的に抽出されて、スタブの生成等に利用される。従って、スタブ生成の効率を向上できる。
【符号の説明】
【０１００】
１  情報処理装置、２  情報処理要求装置、１１，２１  制御部、１２，２２  記憶部、１３  機能部、１４，２５  通信部、２３  操作部、２４  表示部。
【図１】
2011039749.tif 000003
【図２】
2011039749.tif 000004
【図３】
2011039749.tif 000005
【図４】
2011039749.tif 000006
【図５】
2011039749.tif 000007
【図６】
2011039749.tif 000008
【図７】
2011039749.tif 000009
【図８】
2011039749.tif 000010
【図９】
2011039749.tif 000011