SOAPモジュール v0.23

Hippo2000 (2000/7/18)

SOAPモジュールのサブクラスのドキュメントなのです。対応しているSOAPのバージョンが1.0と最新の1.1とは互換性がありません。

必要な場合は自分で直しましょう!(^^;;

作者はKeith Brownさんです。メールで許可をいただきました。

なおSOAPモジュールには以下のサブクラスがあります。

クラス名 説 明
SOAP::Defs 定数の定義
SOAP::Envelope SOAPストリームの作成
SOAP::EnvelopeMaker SOAP envelope の作成
SOAP::GenericHashSerializer Perlハッシュのための汎用シリアライザ(ドキュメントはほぼ空)
SOAP::GenericInputStream SOAP::Parser 出力のためのデフォルトハンドラ
SOAP::GenericScalarSerializer Perlスカラのための汎用シリアライザ(ドキュメントはほぼ空)
SOAP::OutputStream SOAPフラグメントの出力
SOAP::Packager SOAP 内部ヘルパクラス
SOAP::Parser SOAPドキュメントを解析する
SOAP::TypeMapper Perl型をシリアライザ/デシリアライザ・クラスにマッピングする
SOAP::Transport::HTTP::Apache SOAP mod_perl ハンドラ
SOAP::Transport::HTTP::CGI 汎用SOAP CGI ハンドラ
SOAP::Transport::HTTP::Client クライアント側のSOAP/PerlのHTTPサポート
SOAP::Transport::HTTP::Server サーバ側のHTTP SOAP/Perlサポート

目次


名前

SOAP - PerlでのSOAPクライアントとサーバのためのライブラリ


概要

  use SOAP;
  print "This is SOAP/Perl-$SOAP::VERSION\n";

説明

SOAP/Perl はSimple Object Access Protocl (SOAP)への簡単で一貫性のあるアプリケーション・インターフェース(API)を提供するPerlモジュールの集まりです。

SOAPについてさらに調べるためには、FAQをご覧ください:<URL:http://www.develop.com/soap/soapfaq.htm>

このライブラリはSOAPクライアントとサーバを構築するためのツールを提供します。

ライブラリにはSOAPの高レベルでの使用のためのモジュールだけでなく、さらにちょっとしたカスタマイズが必要な場合での下位レベルためのモジュールが入っています。ライブラリはあなたができるように分解されています。

SOAP/PerlはPerlのオブジェクト指向機能を十分に使っています。これらのモジュールによって直接エクスポートされているサブルーチンはありません。

SOAP/PerlのこのバージョンではSOAP 1.0 仕様をサポートしています、これはIETFインターネット・ドラフトです。詳細については<URL:http://www.ietf.org> をご覧ください。

ライブラリの主な機能は以下の通りです:


EnvelopeMakerオブジェクト

SOAP::EnvelopeMaker はheaderオブジェクトの配列と1つのbodyオブジェクトを入力として取ります。(現在は、これらの"オブジェクト"は単なるPerlハッシュです、ゆくゆくはblessされたオブジェクト・リファレンスのサポートを加えるつもりです)、そしてXMLストリームを出力として生成します。


Parserオブジェクト

SOAP::Parser は文字列(またはファイル/ファイルハンドル)を入力として取り、内容をSOAP エンベロープ(envelope)として解析します。これは結果、headerオブジェクトの配列と1つのbody要素になります。

SOAPシリアライゼーション/デシリアライゼーションのコードをHTTPと一緒にするのを避けるため、ロード可能な転送も提供されています。転送アーキテクチャのドキュメントのために以下のモジュールをご覧ください:

 SOAP::Transport::HTTP::Client
 SOAP::Transport::HTTP::Server
 SOAP::Transport::HTTP::Apache
 SOAP::Transport::HTTP::CGI

プログラム例があるところ

クライアント側の例についてはSOAP::EnvelopeMakerをご覧ください。SOAPリクエストのシリアライゼーション、HTTPをベースにした送信、応答の受信、応答のデシリアライゼーションについて示しています。

サーバ側の例についてはSOAP::Transport::HTTP::Apacheをご覧ください。やってきたHTTPリクエストをどのように、あなた自身のPerlクラスでのメソッド呼び出しにマップするかを示しています。


クラスとパッケージの概要

以下の表はこのライブラリによって提供されくクラスの概要です:

-- ここから始めるべき上位レベルクラス --

 SOAP::EnvelopeMaker   -- SOAPバーへオブジェクトをシリアル化
 SOAP::Parser          -- SOAPバーをオブジェクトへデシリアル化
 SOAP::Transport       -- 転送アーキテクチャの説明
 SOAP::Transport::HTTP -- HTTP転送の説明
 SOAP::Transport::HTTP::Client -- HTTPのクライアント側サポート。
                                  libwww-perlを使用
 SOAP::Transport::HTTP::Server -- HTTPのサーバ側サポート。
                                  WebサーバAPIからは離されています
 SOAP::Transport::HTTP::Apache -- Apache/mod_perl サポート
 SOAP::Transport::HTTP::CGI    -- Vanilla CGI サポート

-- シリアライゼーション・アーキテクチャ --

 SOAP::Envelope      -- SOAPシリアル化への下位レベルアクセス
 SOAP::OutputStream  -- SOAPシリアル化への下位レベルアクセスのための
                        SOAP::Envelopeと一緒に使われます
 SOAP::Packager      -- SOAP 1.0 パッケージの実装を助けます。
                        SOAP::Envelope と SOAP::OutputStreamによって使われます。
 SOAP::GenericHashSerializer   -- Perlハッシュ・リファレンスのための汎用シリアライザ
 SOAP::GenericScalarSerializer -- Perlスカラのための汎用シリアライザ

-- デシリアライゼーション・アーキテクチャ --

 SOAP::GenericInputStream.pm   -- もしデシリアライゼーション・フレームワークを
                                  独自のオブジェクトをシリアライズできるように拡張
                                  することに興味があればご覧ください。
-- その他 --
 SOAP::TypeMapper    -- シリアライゼーション・アーキテクチャを対象とした
                        実験的な拡張
 SOAP::Defs          -- 他のモジュールによって使われる定数

さらなるドキュメント

すべてのモジュールにそれぞれが提供するインターフェースについての詳しい情報が入っています。


バグと制約

シリアル化フレームワークはまだ配列を扱っていません。そしてHTTPトランスポートはM-POSTを扱っていません。


謝辞

(原文のまま)

Keith Brown is the original and current author of this work, but he worked very closely with Don Box in developing a common design and implementation architecture (Don was building a Java implementation side-by-side, and Keith and Don worked together in a kind of XP style of programming - it was fun). GopalK at Microsoft was tremendously helpful in ferreting out issues in the SOAP spec. Mike Abercrombie at DevelopMentor (where Keith and Don work) was very supportive of the effort as well. Thanks Mike!


著作権(COPYRIGHT)

(原文のまま)

  Copyright 1999-2000, DevelopMentor. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


利用できる場所

これの最新バージョンはCPANから利用できます:

 http://www.develop.com/soap

このプログラムについて議論する一番よい場所はSOAPメーリングリストです:

 http://discuss.develop.com/soap.html

ホーム Perlの小技

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。