(57)【要約】【解決手段】ＸＭＬ署名・暗号化手順リスト１０６と対象要素のＸＭＬスキーマ１０８を入力としてＸＭＬ署名・暗号化手順解析部１０７を実行することにより、要求されるすべての手順を満たすようなＸＭＬ署名・暗号化手順１０９を出力する。ＸＭＬ署名・暗号化モジュール出力部１１０は１０９を参照し、ＸＭＬ署名・暗号化を行うモジュール１１１を生成する。【効果】利用するＷｅｂサービスが要求するすべてのＸＭＬ署名・暗号化手順を満たすようにＸＭＬ署名・暗号化を行うＸＭＬ署名・暗号化モジュールが自動生成されるため、開発者の負担を軽減することができる。【選択図】  図１
2004260366.tif 000002
【特許請求の範囲】
【請求項１】
ＸＭＬ文書に対する署名・暗号化手順を生成するシステムであって、
利用するそれぞれのＷｅｂサービスからＸＭＬ署名およびＸＭＬ暗号化の手順を記載した手順書を取得する手段と、
前記手順書からＸＭＬ署名およびＸＭＬ暗号化の対象となる要素のスキーマを取得する手段と、
取得した手順書とスキーマを解析し、それらの要求を満たす適切なＸＭＬ署名およびＸＭＬ暗号化手順を出力する手段とを備えたことを特徴とする署名・暗号化手順生成システム。
【請求項２】
前記ＸＭＬ署名およびＸＭＬ暗号化手順に従ってＸＭＬ署名およびＸＭＬ暗号化を行うプログラムを自動生成することを特徴とする請求項１の署名・暗号化手順生成システム。
【請求項３】
Ｗｅｂサービスにおけるメッセージ送信時に、該メッセージに対して、生成されたＸＭＬ署名およびＸＭＬ暗号化プログラムを実行し、その結果を送信することを特徴とする請求項２の署名・暗号化手順生成システム。
【請求項４】
前記ＸＭＬ署名およびＸＭＬ暗号化プログラムの生成時に、ＸＭＬ署名およびＸＭＬ暗号化を行うＸＭＬ要素のＸＭＬスキーマの識別子と前記ＸＭＬ署名およびＸＭＬ暗号化手順書のリストの識別子と前記ＸＭＬ署名およびＸＭＬ暗号化プログラムとの対応を記憶装置に格納することを特徴とする請求項２の署名・暗号化手順生成システム。
【請求項５】
ＸＭＬ文書の送信時に、ＸＭＬスキーマの識別子とＸＭＬ署名およびＸＭＬ暗号化手順書のリストの識別子から、前記対応を参照してＸＭＬ署名およびＸＭＬ暗号化モジュールを決定し、前記ＸＭＬ文書に対して前記ＸＭＬ署名およびＸＭＬ暗号化プログラムを実行し、その結果を送信することを特徴とする請求項４の署名・暗号化手順生成システム。
【請求項６】
ＸＭＬ文書の送信時に、前記ＸＭＬ文書に記述されたＷｅｂサービスの識別子からＸＭＬ署名およびＸＭＬ暗号化の手順書を取得し、前記ＸＭＬ署名およびＸＭＬ暗号化の手順書からＸＭＬ署名およびＸＭＬ暗号化プログラムを生成し、前記ＸＭＬ文書に対して前記ＸＭＬ署名およびＸＭＬ暗号化プログラムを実行し、その結果を送信することを特徴とする請求項２記載の署名・暗号化手順生成システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＸＭＬ署名およびＸＭＬ暗号化を行う方法に関するものである。
【０００２】
【従来の技術】
電子署名または暗号化を行うシステムの開発において、従来の手法では、上流工程によりあらかじめ設計された署名または暗号化手順に基づき、開発者が手作業で署名または暗号化を行うアプリケーションと署名の検証または復号化を行うアプリケーションの開発を行っている。
【０００３】
また、ＸＭＬ文書に対する署名および暗号化の方法として、ＸＭＬ署名およびＸＭＬ暗号化と呼ばれる技術がＷ３Ｃという標準化団体により標準化されている。これらの技術では、ＸＭＬの部分文書に対する署名および暗号化が可能である。また、同一ＸＭＬ文書内で複数の署名データおよび暗号化データを表現することができる。なお、ＸＭＬ文書の署名に関する公知文献として、例えば特開平６−２２４８９６号公報（特許文献１）には回覧途中で文書内容の変更を可能にしたディジタル署名の生成方法と電子化文書の認証方法が示される。
【０００４】
【特許文献１】特開平６−２２４８９６号公報
【０００５】
【発明が解決しようとする課題】
Ｗｅｂサービスは各サービスが独立して設計されるため、既存のＷｅｂサービスを利用するようなＷｅｂサービスの開発においては、利用するＷｅｂサービスが要求する署名または暗号化の手順に従って署名および暗号化を行う必要がある。特に、複数のＷｅｂサービスを利用する場合、各々のＷｅｂサービスから独立に要求される署名および暗号化手順をすべて満たすように、開発者が手作業で署名および暗号化手順を調べ、その手順に従って署名および暗号化を行うようなプログラムを開発する必要がある。例えば、親子関係にある二つの要素ｐａｒｅｎｔ、ｃｈｉｌｄへのＸＭＬ暗号化がそれぞれＷｅｂサービスＡ、Ｂから要求されており、かつＡに対してはｃｈｉｌｄ要素の内容が見えてはならないという要求がある場合、まずＢに対してｃｈｉｌｄ要素をＸＭＬ暗号化し、次にＡに対してｐａｒｅｎｔ要素を暗号化する必要がある。
【０００６】
本発明の目的は、このように複数のＷｅｂサービスから要求されるＸＭＬ署名およびＸＭＬ暗号化の手順を自動的に解析し、すべての要求を満たすような手順でＸＭＬ署名およびＸＭＬ暗号化を行うようなプログラムを自動生成することにより、Ｗｅｂサービス開発者の負担を軽減することにある。
【０００７】
【課題を解決するための手段】
上記の課題を解決するために、本発明では、以下のステップによりＸＭＬ署名およびＸＭＬ暗号化を行う。
（１）利用するそれぞれのＷｅｂサービスからＸＭＬ署名およびＸＭＬ暗号化の手順を記載した手順書を取得し、ＸＭＬ署名およびＸＭＬ暗号化の対象となる要素のスキーマを取得する。
（２）上記ステップにより取得した手順書とスキーマを解析し、すべての要求を満たすための適切なＸＭＬ署名およびＸＭＬ暗号化手順を出力する。
（３）上記ステップにより出力された手順に従ってＸＭＬ署名およびＸＭＬ暗号化を行うようなプログラムを自動生成する。
（４）Ｗｅｂサービスにおけるメッセージ送信時に、該メッセージに対して、上記ステップにより生成されたＸＭＬ署名およびＸＭＬ暗号化プログラムを実行し、その結果を送信する。
【０００８】
上記のようにあらかじめＸＭＬ署名およびＸＭＬ暗号化プログラムを生成する代わりに、実行時にＸＭＬ署名およびＸＭＬ暗号化手順の解析とＸＭＬ署名およびＸＭＬ暗号化プログラムの生成を行ってもよい。この場合、以下のステップによりＸＭＬ署名およびＸＭＬ暗号化を行う。
（１）Ｗｅｂサービスにおけるメッセージ送信時に、メッセージ内の記述からＸＭＬ署名およびＸＭＬ暗号化手順書のＵＲＩとＸＭＬ署名およびＸＭＬ暗号化の対象となる要素のスキーマのＵＲＩを特定し、該手順書と該スキーマを取得する。
（２）上記ステップにより取得した手順書とスキーマを解析し、すべての要求を満たすための適切なＸＭＬ署名およびＸＭＬ暗号化手順を出力する。
（３）上記ステップにより出力された手順に従ってＸＭＬ署名およびＸＭＬ暗号化を行うようなプログラムを自動生成する。
（４）該メッセージに対して、上記ステップにより生成されたＸＭＬ署名およびＸＭＬ暗号化プログラムを実行し、その結果を送信する。
【０００９】
【発明の実施の形態】
以下、図１から図１７を用いて、本発明の一実施形態によるＸＭＬ署名およびＸＭＬ暗号化方法について説明する。
【００１０】
まず、図１を用いて、本実施形態によるＸＭＬ署名およびＸＭＬ暗号化方法の概要について説明する。各構成部分の詳細については後に説明する。以下では、ユーザが既存のＷｅｂサービスを利用するようなＷｅｂサービスを新規に開発する場合を考える。まず、ユーザはＷｅｂサービス呼出し順定義画面１０２を利用して、新規に開発するＷｅｂサービスが利用するＷｅｂサービスおよびそれらの間の呼出し順を定義する。１０２はＷｅｂサービスの呼出し順や各Ｗｅｂサービスが要求するＸＭＬ署名・暗号化手順書のＵＲＩを記述したデータ１０３を生成する。
ＸＭＬ署名・暗号化モジュール生成部１０１はＸＭＬ署名・暗号化を行うモジュールを生成する処理部分であり、ＸＭＬ署名・暗号化手順書取得部１０５、ＸＭＬ署名・暗号化手順解析部１０７、ＸＭＬ署名・暗号化モジュール出力部１１０、ＸＭＬ署名・暗号化モジュール登録部１１２からなる。
【００１１】
１０１は１０３を入力として呼び出され、まず１０５が実行される。１０５は１０３を解析し、１０３に記述されている各ＷｅｂサービスのＸＭＬ署名・暗号化手順書ＵＲＩからＸＭＬ署名・暗号化手順書１０４を取得し、それらをＸＭＬ署名・暗号化手順書リスト１０６として出力する。
次に、１０７が実行される。１０７は１０６とＸＭＬ署名・暗号化の対象となる要素のＸＭＬスキーマ１０８を読み込み、１０６のすべての要求手順を満たすためのＸＭＬ署名・暗号化手順を解析し、解析の結果決定された手順をＸＭＬ署名・暗号化手順１０９として出力する。
次に、１１０が実行される。１１０は１０９を解析し、１０８のスキーマに適合するＸＭＬ文書に対して１０９に記述された手順でＸＭＬ署名・暗号化を行うようなＸＭＬ署名・暗号化モジュール１１１を生成する。
次に、１１２が実行される。１１２は１０８のＸＭＬスキーマと１０３のＷｅｂサービス呼出し順と１１１のＸＭＬ署名・暗号化モジュールとの対応をＸＭＬ署名・暗号化モジュール対応表１１３に登録する。
ＸＭＬ署名・暗号化モジュールの実行時は以下のように動作する。ＸＭＬ署名・暗号化実行部１１４は１０８のスキーマに適合するＸＭＬ文書１１５を受け取り、１１５に記述されたＸＭＬスキーマおよびＷｅｂサービス呼出し順の情報と１１３から対応するＸＭＬ署名・暗号化モジュールを決定し、１１５に対して該モジュールを実行する。その結果得られたＸＭＬ文書１１６をＷｅｂサービスの送信文書として送信する。
【００１２】
次に、図２を用いて、システム全体のハードウェア構成について説明する。２０５の外部記憶装置１はプログラムが格納されている外部記憶装置であり、１０１、１０５、１０７、１１０、１１２、１１４が格納されている。２０６の外部記憶装置２はデータが格納されている外部記憶装置であり、１０３、１０４、１０６、１０８、１０９、１１１、１１３、１１５、１１６が格納されている。２０３は中央処理演算装置、２０４は主記憶装置である。２０５に格納されているプログラムが呼び出されたとき、該プログラムの内容が２０４に読み込まれ、２０３により処理される。該プログラムが２０６に格納されているデータを必要としたとき、該データの内容が２０４に読み込まれ、該プログラムにより処理される。また、該プログラムが２０４のデータを外部記憶装置に出力するとき、該データの内容が２０６に書き込まれる。２０１はＣＲＴディスプレイ等の表示装置、２０２はキーボードやマウス等の入力装置である。
【００１３】
図３はＷｅｂサービス呼出し順定義画面１０２の例である。３０１は開発するシステムの画面および画面間の遷移を定義する画面遷移定義画面の例である。ここで、３０２〜３０４は画面を表し、３０５、３０６は画面間の遷移を表す。Ｗｅｂサービス呼出し順定義画面１０２は呼び出すＷｅｂサービスの名称やそれらの間の呼出し順を定義する画面である。ここで、３０７〜３０９はＷｅｂサービスを表し、３１０、３１１はそれらの間の呼出し順を表す。３１２は３０６の画面遷移の間に呼び出されるＷｅｂサービスが３０７のチケット手配サービス、３０８のホテル予約サービス、３０９のカード決済サービスをこの順で呼び出すことを意味する。
【００１４】
図４は１０２により定義されたＷｅｂサービス呼出し順１０３の例である。４０６〜４０８の各行はそれぞれ３０７〜３０９に対して定義された情報に対応する。ここで、ＩＤ４０１はツール内で各Ｗｅｂサービスを一意に特定するための識別子である。次ＩＤ４０２は次に呼び出すＷｅｂサービスの識別子であり、４０１のいずれかの値を参照する。例えば、４０６において次ＩＤがホテル予約サービスのＩＤであるＢであることは、３１０に示されるＷｅｂサービス呼出し順を表現する。名称４０３はＷｅｂサービスの名称、ＷｅｂサービスＵＲＩ４０４は該Ｗｅｂサービスをインターネット上で一意に特定するための識別子である。ＸＭＬ署名・暗号化手順書ＵＲＩ４０５は該Ｗｅｂサービスが要求するＸＭＬ署名・暗号化手順が記述されたＸＭＬ署名・暗号化手順書をインターネット上で一意に特定するための識別子である。
【００１５】
図５はＸＭＬ署名・暗号化手順書１０４の例である。５０１〜５０３はそれぞれ４０６〜４０８のＸＭＬ署名・暗号化手順書ＵＲＩ４０５に記述されていると仮定する。５０１の意味は以下の通りである。まず、順序５０４が１であるｔｉｃｋｅｔｓ要素の暗号化をＡＥＳアルゴリズムにより行う（５０８）。次に、順序が２であるｕｓｅｒｉｎｆｏ要素の暗号化をＤＥＳｅｄｅアルゴリズムにより行う（５０９）。最後に、順序が３であるｒｏｏｔ要素に対する署名をＤＳＳアルゴリズムにより行う（５１０）。すなわち、チケット手配サービスを利用するＷｅｂサービスはこの手順に従ってＸＭＬ署名および暗号化を行ったＸＭＬ文書を送信する必要がある。５０２、５０３に対しても同様である。
【００１６】
図６はＸＭＬ署名・暗号化手順書取得部１０５のフローチャート例である。以下、本フローチャートに従ってＸＭＬ署名・暗号化手順書取得時の動作を説明する。図４に示した１０３の各行について、以下の６０２から６０４のステップを行う（６０１）。まず、１０３のＸＭＬ署名・暗号化手順書ＵＲＩ４０５で示されたＵＲＩからＸＭＬ署名・暗号化手順書を取得する（６０２）。次に、６０２で取得した手順書の各行ｔに対して、次の６０４のステップを行う（６０３）。６０４では、ｔに該ＷｅｂサービスのＩＤを追加し、ｔをＸＭＬ署名・暗号化手順書リスト１０６に挿入する。
【００１７】
図７は、図４に示したＷｅｂサービス呼出し順１０３に対して図６に示したＸＭＬ署名・暗号化手順書取得部１０５のフローチャートを実行した結果得られるＸＭＬ署名・暗号化手順書リスト１０６の例である。ここで、７０６〜７１３はそれぞれ５０８〜５１５に対して対応するＷｅｂサービスのＩＤを追加することにより得られた行である。
【００１８】
図８はＸＭＬ署名およびＸＭＬ暗号化の対象となるＸＭＬ要素のスキーマ１０８の例を木構造により表現したものである。ここで、ｒｏｏｔ要素８０１が文書型であり、８０１はｔｉｃｋｅｔｓ要素８０２とｈｏｔｅｌｓ要素８０３とｕｓｅｒｓｉｎｆｏ要素８０４を子要素としてもつ。以下同様である。
【００１９】
図９はＸＭＬ署名・暗号化手順解析部１０７のフローチャート例である。以下、本フローチャートに従って、ＸＭＬ署名・暗号化手順解析時の動作を説明する。まず、変数ｉの値を１に初期化する（９０１）。次に、１０８のＸＭＬスキーマを図８に示したように木構造により表したとき、その木を深さ優先で探索し、訪れる各ノードに対して、以下の９０３から９１３のステップを行う（９０２）。まず、訪れたノードのラベル（要素名を表す）を変数Ｅに代入する（９０３）。次に、図７に示したＸＭＬ署名・暗号化手順書リスト１０６の中で対象要素７０３の値がＥ、操作７０４の値が署名であるような行の集合を求め、それらをＥＳＬとする（９０４）。同様に、１０６の中で対象要素の値がＥ、操作の値が暗号であるような行の集合を求め、それらをＥＥＬとする（９０５）。
次に、ＥＳＬ中の各行ｓについて、以下の９０７から９０９のステップを行う（９０６）。まず、ｓのＩＤ７０１の値をＮ、ｓの順序７０２の値をＳとする（９０７）。次に、ＥＥＬの中にＩＤの値がＮで順序の値がＳより小さいような行が存在するかどうかを判定する（９０８）。もし存在しなければ、ｓの手順の値をｉとし、ｓをＸＭＬ署名・暗号化手順１０９に挿入した後、ｉの値を１増加させ、ＥＳＬからｓを取り除く（９０９）。
次に、ＥＥＬ中の各行ｔについて、次の９１１のステップを行う（９１０）。９１１では、ｔの手順の値をｉとし、ｔを１０９に挿入した後、ｉの値を１増加させる。
最後に、ＥＳＬ中の各行ｓについて、次の９１３のステップを行う（９１２）。９１３では、ｓの手順の値をｉとし、ｓを１０９に挿入した後、ｉの値を１増加させる。
【００２０】
図１０は図７に示したＸＭＬ署名・暗号化手順書リスト１０６と図８に示した対象要素のＸＭＬスキーマ１０８に対して、図９に示したＸＭＬ署名・暗号化手順解析部１０７のフローチャートを実行した結果得られるＸＭＬ署名・暗号化手順１０９の例である。以下、本例における１０７の動作について説明する。１０８の木を深さ優先で探索したとき、訪れるノードの順は８０５、８０６、８０２、８０７、８０３、８０８、８０９、８１０、８０４、８０１となる。８０５、８０６に対する繰返し実行時では、ステップ９０３でＥの値はｔｉｃｋｅｔとなるが、対象要素７０３の値がｔｉｃｋｅｔであるような行は１０６には存在しないため、ステップ９０６からステップ９１３の処理は実行されない。８０２に対する繰返し実行時では、Ｅの値はｔｉｃｋｅｔｓとなり、ＥＳＬは空集合であるが、ＥＥＬには対象要素７０３の値がｔｉｃｋｅｔｓであり操作７０４の値が暗号である７０６が含まれる。従って、ステップ９１１で、７０６の手順が１となり、７０６が１０９に挿入される。８０７、８０３、８０８、８０９、８１０に対する繰返し実行時の動作も同様である。
【００２１】
次に、８０４に対する繰返し実行時について説明する。このとき、Ｅの値はｕｓｅｒｉｎｆｏであり、ＥＳＬには対象要素７０３の値がｕｓｅｒｉｎｆｏであり操作７０４の値が署名である７１３が含まれる。ＥＥＬには署名対象の値がｕｓｅｒｉｎｆｏであり操作の値が暗号である７０７と７１０が含まれる。ステップ９０７で、変数Ｎに７１３のＩＤの値であるＣが代入され、変数Ｓに７１３の順序の値である２が代入される。次に、ステップ９０８で、ＥＥＬの中にＩＤの値がＣで順序の値が２より小さいような行が存在するかどうかの判定が行われる。本例ではそのような行は存在しないため、ステップ９０９が実行され、７１３の手順が４となり、７１３が１０９に挿入された後、ＥＳＬから７１３が除去される。
【００２２】
次に、７０７と７１０に対してステップ９１１が実行され、それぞれの手順が５、６となり１０９に挿入される。ステップ９１２の実行時にはＥＳＬは空集合であるため、９１３の処理は実行されない。８０１に対する繰返し実行時の動作は同様であるため省略する。このようにして１０９が得られる。
【００２３】
図１１はＸＭＬ署名・暗号化モジュール出力部１１０のフローチャート例である。以下、本フローチャートに従ってＸＭＬ署名・暗号化モジュール出力時の動作を説明する。１０９の各行ｔを手順１００１の値の昇順で取得し、以下の１１０２から１１０７のステップを行う（１１０１）。まず、ｔの操作１００５の値が署名であるかどうかの判定を行う（１１０２）。もしそうであれば、ｔの対象要素１００４に対してアルゴリズム１００６により署名を行い、署名要素を生成するようなプログラムコードを出力する（１１０３）。もしそうでなければ、以下の１１０４から１１０７のステップを行う。まず、ｔの対象要素１００４をアルゴリズム１００６により暗号化を行い、暗号化要素を生成するようなプログラムコードを出力する（１１０４）。次に、変数Ｅの値をｔの対象要素１００４の値、変数Ｓの値をｔの手順１００１の値とする（１１０５）。次に、１０９に対象要素の値がＥ、操作の値が暗号、手順の値がＳより大きいような行が存在するかどうかを判定する（１１０６）。もし存在しなければ、対象要素を１１０４で生成した暗号化要素で置換するようなプログラムコードを出力する（１１０７）。
【００２４】
図１２は図１０に示したＸＭＬ署名・暗号化手順１０９に対し図１１に示したＸＭＬ署名・暗号化モジュール出力部１１０のフローチャートを実行して得られるＸＭＬ署名・暗号化モジュール１１１のフローチャート例である。以下、本フローチャートに従って該ＸＭＬ署名・暗号化モジュールの動作を説明する。まず、ＸＭＬ署名・暗号化の対象要素を含むＸＭＬ文書を読み込む（１２０１）。次に、ｔｉｃｋｅｔｓ要素をＡに対する鍵を使用してＡＥＳアルゴリズムにより暗号化して暗号化要素を作成し、ｔｉｃｋｅｔｓ要素を作成した暗号化要素で置換する（１２０２）。次に、ｈｏｔｅｌｓ要素をＢに対する鍵を使用してＤＥＳｅｄｅアルゴリズムにより暗号化して暗号化要素を作成し、ｈｏｔｅｌｓ要素を作成した暗号化要素で置換する（１２０３）。次に、ｃａｒｄｉｎｆｏ要素をＣの鍵を使用してＲＳＡアルゴリズムにより暗号化して暗号化要素を作成し、ｃａｒｄｉｎｆｏ要素を作成した暗号化要素で置換する（１２０４）。次に、ｕｓｅｒｉｎｆｏ要素に対してＤＳＳアルゴリズムにより署名を行い、署名要素を作成する（１２０５）。次に、ｕｓｅｒｉｎｆｏ要素をＡに対する鍵でＤＥＳｅｄｅアルゴリズムにより暗号化して暗号化要素を作成する（１２０６）。次に、ｕｓｅｒｉｎｆｏ要素をＢに対する鍵でＡＥＳアルゴリズムにより暗号化して暗号化要素を作成し、ｕｓｅｒｉｎｆｏ要素を作成した暗号化要素で置換する（１２０７）。次に、ｒｏｏｔ要素に対してＤＳＳアルゴリズムにより署名を行い、署名要素を作成する（１２０８）。最後に、ｒｏｏｔ要素に対してＲＳＡアルゴリズムにより署名を行い、署名要素を作成する（１２０９）。
【００２５】
図１３はＸＭＬ署名・暗号化モジュール登録部１１２のフローチャート例である。以下、本フローチャートに従ってＸＭＬ署名・暗号化モジュール登録時の動作を説明する。まず、１０８のＸＭＬスキーマのスキーマＵＲＩをＳ、１０３のＷｅｂサービス呼出し順の識別子であるパスＵＲＩをＰ、１１０で作成したＸＭＬ署名・暗号化モジュールのＩＤをＭとする（１３０１）。次に、Ｓ、Ｐ、Ｍからなる組をＸＭＬ署名・暗号化モジュール対応表１１３に挿入する（１３０２）。
【００２６】
図１４はＸＭＬ署名・暗号化モジュール対応表１１３の例である。１１０で新たなＸＭＬ署名・暗号化モジュールが生成される毎に、１１３に該モジュールに対応する行が挿入される。
【００２７】
図１５はＸＭＬ署名・暗号化実行部１１４のフローチャート例である。以下、本フローチャートに従ってＸＭＬ署名・暗号化実行時の動作を説明する。まず、ＸＭＬ署名・暗号化の対象要素を含むＸＭＬ文書Ｄを受け取る（１５０１）。次に、Ｄ内の記述からスキーマＵＲＩを表すＳとパスＵＲＩを表すＰを取得する（１５０２）。次に、ＸＭＬ署名・暗号化モジュール対応表１１３からスキーマＵＲＩ１４０１の値がＳであり、パスＵＲＩ１４０２の値がＰであるような行を検索し、そのモジュールＩＤ１４０３の値から対応するＸＭＬ署名・暗号化モジュールを決定する（１５０３）。次に、Ｄに対して該ＸＭＬ署名・暗号化モジュールを実行する（１５０４）。最後に、該ＸＭＬ署名・暗号化モジュールの実行結果をＷｅｂサービスの送信文書として送信する（１５０５）。
【００２８】
図１６はＸＭＬ文書１１５の例である。ここで、ｐａｔｈ要素はＷｅｂサービスの呼出し順を表す要素であり、ｒｏｏｔ要素はＸＭＬスキーマ１０８に適合する形式をもつ要素である。ｐａｔｈ要素のｘｍｌｎｓ属性の値がパスＵＲＩを表し、ｒｏｏｔ要素のｘｍｌｎｓ属性の値がスキーマＵＲＩを表す。
【００２９】
図１７は図１６に示したＸＭＬ文書１１５に対して図１５に示したＸＭＬ署名・暗号化実行部１１４のフローチャートを実行して得られるＷｅｂサービス送信文書１１６の例である。記述は一部省略する。ここで、Ｓｉｇｎａｔｕｒｅ要素、ＥｎｃｒｙｐｔｅｄＤａｔａ要素はそれぞれＸＭＬ署名・暗号化モジュール１１１により生成された署名要素、暗号化要素である。本例では、１１４により実行されるＸＭＬ署名・暗号化モジュールのＩＤは、１１５に示されたスキーマＵＲＩの値とパスＵＲＩの値が一致する行１４０４のモジュールＩＤ１４０３の値であるＸＭＬＳＥＣ０１である。
【００３０】
次に、図１８を用いて本発明の第２の実施形態によるＸＭＬ署名およびＸＭＬ暗号化方法について説明する。第１の実施形態では、開発時にあらかじめＸＭＬ署名・暗号化モジュールを作成しておき、実行時に該モジュールを呼び出す方式であるのに対し、第２の実施形態では、実行時にＸＭＬ署名・暗号化手順の解析とＸＭＬ署名・暗号化モジュールの生成を行う。
【００３１】
図１８は本実施形態によるＸＭＬ署名およびＸＭＬ暗号化方法の概要である。ＸＭＬ署名・暗号化処理系１８０１はＸＭＬ署名・暗号化手順書取得部１８０２とＸＭＬ署名・暗号化手順解析部１０７とＸＭＬ署名・暗号化モジュール出力部１１０とＸＭＬ署名・暗号化実行部１８０３からなる。
１８０１はＸＭＬ文書１１５を入力として呼び出され、まず１８０２が実行される。１８０２は該ＸＭＬ文書に記述されたＷｅｂサービスＵＲＩをもとに各ＷｅｂサービスのＸＭＬ署名・暗号化手順書を取得する。ＸＭＬ署名・暗号化手順書リスト１０６の作成方法は１０５と同様である。その後、ＸＭＬ署名・暗号化モジュール１１１の生成までの処理は前記第１の実施形態と同様である。
【００３２】
ＸＭＬ署名・暗号化実行部１８０３は１１５に対して１１０により生成されたＸＭＬ署名・暗号化モジュール１１１を実行し、その結果得られるＸＭＬ文書１１６をＷｅｂサービスの送信文書として送信する。
【００３３】
【発明の効果】
本発明によれば、複数のＷｅｂサービスを利用するようなＷｅｂサービスを新規に開発するときに、利用するＷｅｂサービスが要求するすべてのＸＭＬ署名・暗号化手順を満たすような手順でＸＭＬ署名・暗号化を行うモジュールが自動生成されるため、開発者の負担を軽減することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態のシステム構成概要を示す図。
【図２】システム構成のハードウェア構成図。
【図３】Ｗｅｂサービス呼出し順定義画面１０２の例を示す図。
【図４】Ｗｅｂサービス呼出し順１０３の例を示す図。
【図５】ＸＭＬ署名・暗号化手順書１０４の例を示す図。
【図６】ＸＭＬ署名・暗号化手順書取得部１０５のフローチャート。
【図７】ＸＭＬ署名・暗号化手順書リスト１０６の例を示す図。
【図８】対象要素のＸＭＬスキーマ１０８の例を示す図。
【図９】ＸＭＬ署名・暗号化手順解析部１０７のフローチャート。
【図１０】ＸＭＬ署名・暗号化手順１０９の例を示す図。
【図１１】ＸＭＬ署名・暗号化モジュール出力部１１０のフローチャート。
【図１２】ＸＭＬ署名・暗号化モジュール１１１のフローチャート。
【図１３】ＸＭＬ署名・暗号化モジュール登録部１１２のフローチャート。
【図１４】ＸＭＬ署名・暗号化モジュール対応表１１３の例を示す図。
【図１５】ＸＭＬ署名・暗号化実行部１１４のフローチャート。
【図１６】ＸＭＬ文書１１５の例を示す図。
【図１７】Ｗｅｂサービス送信文書１１６の例を示す図。
【図１８】本発明の第二の実施形態によるシステム構成を示すブロック図。
【符号の説明】
１０１…ＸＭＬ署名・暗号化モジュール生成部、１０２…Ｗｅｂサービス呼出し順定義画面、１０３…Ｗｅｂサービス呼出し順、１０４…ＸＭＬ署名・暗号化手順書、１０５…ＸＭＬ署名・暗号化手順書取得部、１０６…ＸＭＬ署名・暗号化手順書リスト、１０７…ＸＭＬ署名・暗号化手順解析部、１０８…対象要素のＸＭＬスキーマ、１０９…ＸＭＬ署名・暗号化手順、１１０…ＸＭＬ署名・暗号化モジュール出力部、１１１…ＸＭＬ署名・暗号化モジュール、１１２…ＸＭＬ署名・暗号化モジュール登録部、１１３…ＸＭＬ署名・暗号化モジュール対応表、１１４…ＸＭＬ署名・暗号化実行部、１１５…ＸＭＬ文書、１１６…Ｗｅｂサービス送信文書、１８０１…ＸＭＬ署名・暗号化処理系。
【図１】
2004260366.tif 000003
【図２】
2004260366.tif 000004
【図３】
2004260366.tif 000005
【図４】
2004260366.tif 000006
【図５】
2004260366.tif 000007
【図６】
2004260366.tif 000008
【図７】
2004260366.tif 000009
【図８】
2004260366.tif 000010
【図９】
2004260366.tif 000011
【図１０】
2004260366.tif 000012
【図１１】
2004260366.tif 000013
【図１２】
2004260366.tif 000014
【図１３】
2004260366.tif 000015
【図１４】
2004260366.tif 000016
【図１５】
2004260366.tif 000017
【図１６】
2004260366.tif 000018
【図１７】
2004260366.tif 000019
【図１８】
2004260366.tif 000020