WebサービスをXSLTを利用してマッシュアップする
Webブラウザを使って複数のREST型Webサービスを呼び出し,そこで得られた情報を基に,マッシュアップした内容を表示するアプリケーションを組んでみる。節 2.1で紹介するマッシュアップの例は,XML,XSLTを利用しているので,以下ではXSLTマッシュアップと呼ぶことにする。ここに示す例では,WebブラウザとしてIE6を想定しており,他のブラウザではうまく稼動しない。XSLTプロセッサを用いて,予めHTMLに変換しておくことによって,他のWebブラウザでもみえるようになる。また,IE6においても,ポップアップを許可すること,異なるドメイン間へのアクセスを許可することが必要となるので,閲覧,実行する際には,注意されたい。
1. XSLTマッシュアップ
ここに紹介するXSLTマッシュアップでは,マッシュアップに関わるWebサービスの情報,パラメタなどの基礎的なデータをXMLで保持し,そのXMLに関連付けたXSLTによって,REST型Webサービスを呼び出し,HTMLにまとめる形を採用することによって,簡単にマッシュアップ・アプリケーションができる。
XSLTマッシュアップでは,XSLTによる変換処理をどこで行うかによって,クライアント変換型とサーバー変換型の2つの種類がある。クライアント変換型のXSLTマッシュアップでは,WebサイトからXMLをダウンロードして,WebブラウザのXSLT変換処理を利用する。一方,サーバー変換型のXSLTマッシュアップでは,Webサービスの呼び出し時に変換指示用のXSLTを指定して,サーバー側でXSLT変換を行う。
複数のWebサービスをマッシュアップする際に,Webサービスの連携の仕方によって,並列型と直列型がある。複数のWebサービスを順に呼び出し,その結果をマッシュアップする形態を並列型マッシュアップ呼ぶ。もう1つの形態である直列型マッシュアップは,1つのWebサービスを呼び出して,その応答メッセージからあるキーワードを抽出し,それを手掛かりに別なWebサービスを呼び出して,その結果をマッシュアップするという形態である。直列型では,はじめに呼び出したWebサービスの結果によって,それ以降のWebサービスが呼び出されるために,結果として得られるデータの意外性が生じやすい。節 2.1で扱うWebサービスの種類とその内容について以下の表 1,表 2に示す。
項 2.1.2に示す例では,クライアント変換型の直列型XSLTマッシュアップであり,項 2.1.3の例では,サーバー変換型の直列型XSLTマッシュアップである。利用するWebサービスを表 1に示す。
サービス | 内容 | 備考 |
---|---|---|
hon.jp | 電子書籍の検索 | hon.jpの電子書籍メタデータDBの内容を取得 |
amazon.co.jp | 書籍の検索 | amazon.co.jpの書籍情報の内容を取得 |
項 2.1.4のWebサービスの例では,クライアント変換型で,直列型と並列型を混合させた形態である。利用するWebサービスを表 2に示す。
サービス | 内容 | 備考 |
---|---|---|
kanzaki.com | 写真のメタ情報獲得 | 写真のメタデータをRDFとして獲得する |
ウェザーハックス | お天気情報獲得 | 今日,明日,明後日の天気情報の取得 |
グーグルマップ | 地図情報 | 位置情報を元に地図を表示 |
hon.jp | 電子書籍の検索 | hon.jpの電子書籍メタデータDBの内容を取得 |
じゃらんWebサービス | 宿・ホテル情報獲得 | 宿表示API ライトを利用 |