連載:世界のWebサービス 第5回 非.NET環境のWebサービス 2.Apache SOAP田口景介 |
多数のプラットフォームで動作し、圧倒的なシェアを誇るWWWサーバがApacheである。Netcraft社の調査によれば、2001年5月現在でのWebサーバ市場におけるApacheのシェアは6割を超すという(Netcraft社のApacheのシェアに関する調査のページ)。そのApacheでWebサービスをホスティングするためのツールキットがApache SOAP(Apache SOAPのページ)である。Apache SOAPは、IBMのAlphaWorksで開発されていたSOAP for Javaを元にしており、その後Apacheに寄贈された経緯を持つ。Apache上でWebサービスをホスティング可能となることで、IISと合わせて、現在稼働する8割以上のWWWサーバでWebサービスが利用可能になる。
SOAP for Javaの名前が示すとおり、Apache SOAPはJavaでWebサービスを実装するためのフレームワークである。また、Javaでクライアント・アプリケーションを開発するためのクラスも定義されている。
Apache SOAPを利用するためには、ApacheとApache SOAPに加えて、XMLパーサであるXerces-Jが必要だ。また、Webサービスはサーブレットとして実装されるため、サーブレット・エンジンであるTomcatなどが必要となる。なお、Apache SOAPはApacheによって開発されているためそ
の名を冠しているが、サーブレットを実行可能なWWWサーバであれば、Apache以外でも動作可能なようだ。Apache SOAPの具体的な導入手順については、当サイトのXML eXpert eXchangeフォーラム「SOAPの仕掛けはどうなっている?」が詳しいので、こちらも参照して欲しい。
進む相互接続性の検証
ここでは2つの非.NET SOAPツールキットを紹介したが、このほかにもPerl用のSOAPツールキットであるSOAP::Liteなど、すでに20を越えるSOAPツールキットがさまざまなOS、さまざまな言語向けに実装されている。このこと自体は喜ばしいことだが、こうなると心配されるのが、各ツールキットで作成したWebサービスとクライアント間の相互接続性が保証されるのかということだ。SOAPは名前のとおり比較的シンプルなプロトコルだが、それでも登場したてのプロトコルには互換性の問題が付き物だ。これが特定のアプリケーション・プロトコルならば、特定のアプリケーションにしか影響を及ぼすことはないし、リファレンス・モデルを実装するベンダが存在して収束を図るだろう。しかしSOAPは今後あらゆるアプリケーションの根幹をなすプロトコルとなりうる存在であり、また当初から多数の実装が存在するオープン・プロトコルである。早い段階で相互接続性を確保しておかなければ、Webサービスの立ち上がりが遅れるばかりか、後々まで引きずるような問題を抱え込むはめになりかねない。
などと、こんなところで問題提起するまでもなく、実はすでに相互接続性の検証作業は着々と進められ、その成果はMicrosoft SOAP Interop SiteやSOAPBuilders Interoperability Labに見ることができる。前者では、Microsoft.NETやMSSOAPで実装したクライアント・アプリケーションから、さまざまなサーバ上のWebサービスを呼び出したときの成否がまとめられている。また後者のSOAPBuilders Interoperability Labでは、さらに幅広くMicrosoft以外のベンダによるSOAPツールキットを利用した実装での動作検証が行われている。このサイトは各種SOAPツールキットへのリンクとしても役に立つ。
Microsoft SOAP Interop Site |
Microsoftが運営しているらしいSOAPの相互接続性の検証サイト。Microsoft.NETやMSSOAPで実装したクライアント・アプリケーションから、さまざまなサーバ上のWebサービスを呼び出したときの成否がまとめられている。すでにMicrosoft.NET ベータ2での検証が行われている。 |
こうして数々の実装が進んでいる状況を見ると、Webサービスというコンセプトが受け入れられ、急ピッチに環境が整いつつあることが改めて実感できる。.NETが発表された当初は、いったいWebサービスとは何者なのか? と誰しも頭を悩ませたものだ。今でもWebサービスが普及した将来を具体的にイメージすることは難しいが、少なくともプラットフォームを越えてWebサービスが連携し、アプリケーションを組み上げることが可能になるのは間違いないようだ。
関連リンク | |
Apacheのシェアに関する調査のページ | |
Apache SOAPのページ | |
SOAPの仕掛けはどうなっている? | |
Microsoft SOAP Interop Site | |
SOAPBuilders Interoperability Lab |
INDEX | ||
[連載]世界のWebサービス―― 究極のWebサービスを求めて ―― | ||
第5回 非.NET環境のWebサービス | ||
1.Microsoft SOAP Toolkit 2.0 | ||
2.Apache SOAP | ||
「世界のWebサービス」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|