Webサービス( Web Services
) と聞くと何だか 顧客へ在庫情報等を提供するサービスのことであると
理解されそうです。確かに、それも広義の Webサービスであるかも知れませんが、
一般的に言う Webサービスとは Webサイトを通じてプログラム的に情報を XML で提供する
サービスのことを言います。
つまりアプリケーションが別のサーバー(または自分自身のサーバー) へある要求を行って
その結果の情報を XML で取得して利用するというものです。
端的に言えばプログラム同士の Webサイトを経由した通信であるとも言うことができます。
あなたの書いた小さな RPG
または COBOL
のプログラムが、サーバー・ルームを抜けて
海の向こうのプログラムといきなり会話を始めたら、どんなに痛快でしょうか ?
Webサービスとは、そんな夢のような話を簡単に現実化してくれる技術です。
ここでは誰もが今すぐ簡単に始められるWebサービスから高度なWebサービスによる
SOA
に至る技術までを紹介していきます。
インターネットは誰にでも容易に表現が可能で、柔軟に表示を行うことができる HTML という
タグ言語を使って瞬く間に急速に普及したのはご存知のとおりです。
このとき HTML を使って静的な情報だけが発信されていましたが、やがて動的なデータも
表示するニーズが高まり、CGI
や JSP&Servlet
等が普及するに至りました。
と進化したわけです。
やがてお互いのサーバーに保管されているビジネス・ロジックやアプリケーションも公開して
相互利用しようとする動きが高まってきました。
これがWebサービスです。
例えば誰もが頻繁によく利用するビジネス・ロジックは、ある専門家が非常に安定して品質に間違いのないものを、
ひとつ作って Webサービスとして公開しておけば世界中の誰もがそのサービスを享受することができ、
多くの開発者が重複してあちこちで同じ開発をする必要がありません。
例えば郵便番号を検索することを考えてみてください。
郵便番号は静的にいつも同じであるとは限らず、いつもどこかで市町村の合併が繰り返されています。
また都心においても巨大なビルが建設されたときに、そのビルのフロア毎に郵便番号が新たに
割り振られたりもします。
また京都市内の住所表記は非常に複雑であり郵便番号検索を難しくしています。
このように考えていくと郵便番号による住所検索は保守も含めて非常に大変であることがわかります。
どこかのサイトで 郵便番号から住所を結果として戻してくれる Webサービスを公開している
信頼できるサイトがあれば便利だと思うのは当然のことです。
このようにして Webサービスが相互に利用できる形で普及し始めています。
Webサービスはプログラムから( 別のサイトにある ) 別のプログラムを呼び出してサービスの
結果を取得する仕組みのことです。
Webサービスは CGI
から、または JavaScript
からでも利用することができます。
CGI すなわち、あなたの RPG プログラムからインターネットを通じて世界中のプログラムを
利用することができるようになれば素晴らしいことだと思いませんか ?
相手のプログラムが Java
で書かれているのか、または COBOL
なのかそれとも C言語であるのか、
あなたは一切、気にする必要はありません。
また JavaScript で世界中のプログラムのビジネス・ロジックを利用できるのであれば
自分のサーバーは無くても良いとまで思えてしまいます。
なにしろ自分では何も作らなくても自分の会社だけでなく世界中のロジックを組み合わせて
短時間のうちに非常に信頼性の高い、ほとんどバグのないシステムを作り上げることだって可能です。
しかもそのプログラムの保守も誰か信頼性のある組織が行うことになりあなたは何もする必要はありません。
このように Webサービスを組み合わせて利用することを「マッシュアップ」と呼びます。
公開されているWebサービスには入門用と思えるような簡単なものから XML で詳細に
記述されている高度なものまであります。
最初のころの Webサービスとは WSDL
(Web Services Description Language
)と呼ばれる
XML によって記述された厳格な仕様に基づいたものでした。
WSDL とは Webサービス・プログラムに対して要求する形式と返答される XML の形式を
XML 自身によって記述されるている仕様のことです。
例えばその昔では企業同士が通信しようとすると通信のフォーマットやプロトコルを
事前に正確に打ち合わせておく必要がありました。
しかしそれらの仕様はすべて WSDL に記述されています。
また WSDL を読み解くのは人間ではなくプログラム自身なのです。
現在、VANサービスや IDE によって受注を受けているのであれば、古い BSC 回線を使っていると
回線の数が多いと System i のモデルも相当高価なものになってしまいます。
これに対して Webサービスの利用であればかかるコストは、ほとんどゼロです。
次世代の企業間通信はまちがいなく Webサービスとなります。
WSDL のような高度な Webサービスでは、敷居も高いのですが郵便番号から住所を検索するような
簡単な Webサービスであれば数多く提供されています。
例えば 「郵便番号検索API」 ( http://zip.cgis.biz/ ) では
http://zip.cgis.biz/xml/zip.php?zn=5700028
のようにリクエストすれば次のような XML が戻ります。
<?xml version="1.0" encoding="utf-8" ?> - <ZIP_result> <result name="ZipSearchXML" /> <result version="1.01" /> : : - <ADDRESS_value> <value state_kana="オオサカフ" /> <value city_kana="モリグチシ" /> <value address_kana="ホンマチ" /> <value company_kana="none" /> <value state="大阪府" /> <value city="守口市" /> <value address="本町" /> <value company="none" /> </ADDRESS_value> </ZIP_result>
これによって住所を XML として受け取ることができます。