Web サービスマッシュアップを利用した Web アプリケーションの開発

平成 19 年度情報工学科卒業研究発表会 2008.1.31
Web サービスマッシュアップを利用した Web アプリケーションの開発
研究者:福島 美菜, 指導教員:越田 高志
1.はじめに
今,Web2.0 といわれる新しいインターネットの時
代に入ってきている.Web2.0[1]とは,従来のサーバ
から情報を受け取るだけの受身のサービスから,ユ
ーザ自らもサービスや情報を発信する新しい Web の
あり方をいう.それにともない Web サービスも従来の
SOAP 型から,より利用しやすい REST 型へと移り変
わりつつある.現在,Yahoo,Google,Amazon など
様々な企業がその REST 型 Web サービスを提供し
てきている.それらの Web サービスを組み合わせて,
新しい Web サービスを開発することをマッシュアップ
という.そのマッシュアップにおいては,目的に応じ
て,如何に最適に Web サービスを組み合わせるか,
という利用技術が重要であり,そのプログラミング技
術も従来からの Java を始め,PHP,JavaScript など複
数の言語を使うことも必要になる.
本研究では,JavaScript を利用し,Yahoo と Flickr
の REST 型 Web サービスをマッシュアップしたコスメ
ティック検索システムの開発を行い,この開発を通し
て,JavaScript プログラミング技術やマッシュアップな
どの Web2.0 アプリケーション開発技術を習得するこ
とを目的とする.
2.REST 型 Web サービスについて
サービスについて[2]
について[2]
REST とは,Representational State Transfer の略
で , HTTP を 使 っ て 通 信 をお こ な う 手 法 で ある .
REST の最大の特徴は「Web ブラウザに URL を入力
すれば実行できる」事である.Web ブラウザから容易
に実行できるため,すでに存在しているサービスに
対しては「まずはアクセスしてみて必要な情報が得ら
れるか確認し,実際に使うかどうかはそれから考え
る」という使い方ができる点で利用しやすい.
3.コスメティック検索
コスメティック検索システム
検索システムの
システムの開発
3.1 システムの
システムの概要
化粧品は多くの女性にとっての必需品であり,用
途に応じた最適な化粧品の選択が必要であるが,そ
の選択は難しい.そこで本研究では,Yahoo の検索
及びショッピング Web サービス[3][4]と画像に関する
Flickr の photos.search を結合し,JavaScript を用い
てシステム全体を開発し,その問題解決を図る.
(1) 年齢・予算・メイクスタイル・肌質・メーカなど
の項目指定とキーワードによる検索を行う,さらにコ
スメティック製品を検索する
(2) 検索結果で表示されたコスメティックの価格
とレビューを表示する
(3) 検索キーワードに対応したコスメティック使
用画像を表示する
3.2 システムの
システムの開発
システム全体は JavaScript を用いて開発した[5][6].
図1にシステムの入力画面を示す.
図 1 コスメテック検索システム入力画面
この入力画面で,検索キーワードの入力とパラメ
ータの選択を行う.入力したキーワードと選択したパ
ラメータの内容は図2のように,Web サービスの URL
や callback 関数などと一緒に組み込ませる.この入
力画面の検索には米国 Yahoo の WebSearchService
が対応し,ショッピングには ShoppingService が対応
している.ラジオボタン(図2)に対する入力パラメー
タの抽出が最初はできなくて,困った部分であるが,
図3の処理で正確に抽出することができた.
<input type="radio" name="cosme" value="Shiseido">資生堂
<input type="radio" name="cosme" value="Dior">
クリスチャン・ディオール
<input type="radio" name="cosme" value="KOSE">コーセー
<input type="radio" name="cosme" value="Kanebo">
カネボウ
<input type="radio" name="cosme" value="CHANEL">
シャネル
図2 ラジオボタンによる入力パラメータ指定部分
obj.cosme1 =
document.getElementsByName('cosme');
for (var i=0; i<obj.cosme1.length; i++){
if(obj.cosme1[i].checked){
memo3= i;
} }
obj.cosme1[memo3].value;
図3 ラジオボタンの入力パラメータ抽出
①YahooWeb サービスの
サービスの組み込み
本 シ ス テ ム で は Ajax の 活 用 も 見 据 え て ,
JavaScript の 軽 量 デ ー タ フ ォ ー マ ッ ト で あ る
JSON(JavaScript Object Notation)[7]利用技術の修
得とコールバック関数を利用するために米国 Yahoo
のサービスを利用した.これらは日本の Yahoo Web
サービスでは提供されていない.JSON は JavaScript
Web サービスマッシュアップを利用した Web アプリケーションの開発(8-1)
平成 19 年度情報工学科卒業研究発表会 2008.1.31
で利用されるテキストベースのデータ記述言語であ
り,XML より簡素にオブジェクトデータを記述でき,
可読性が高い. また,本システムでは,入力画面が
切り替わることなく,出力結果が表示されるように,入
力パラメータを組み込んだ REST 型 Web サービスを
実行する JavaScript を動的に生成している. 更に
Web サービスの出力は JSON 形式で返され,その出
力データを解析する関数を callback パラメータで実
行時に指定している.このため,Web サービスへの
入力パラメータの設定と実行,及びその出力まで全
て自動で画面の切り替わりがなく,表示できる.その
プログラム部分を図4に示す.
function photo_search ( param ) {
param.api_key= ユーザ ID;
param.method = 'flickr.photos.search';
param.per_page = 10;
param.sort
= 'date-posted-desc';
param.format = 'json';
param.jsoncallback = 'jsonFlickrApi';
var url = 'http://www.flickr.com/services/rest/?'+
obj2query( param );
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = url;
document.body.appendChild( script );
};
図6 Flickr 画像検索実行部分
obj.s = document.createElement('script');
obj.s.type ='text/javascript';
obj.s.charset ='utf-8';
obj.s.src='http://search.yahooapis.com/WebSearchSe
rvice/V1/WebSearch?appid= ユーザ ID
&output=json & callback= コールバック関数
&results=10&type=all&query=
'+encodeURIComponent(obj.q.value)+'……..;
document.getElementsByTagName('head')[0].appen
dChild(obj.s);
図4 Web サービス実行の JavaScript 部分
コールバック関数は JSON 形式の出力データを解析
して,タイトル,URL,商品価格と商品情報を表示す
るように工夫した.その解析部分を図5に示す.
コールバック関数: function(z) {
abc.text = obj.q.value;
Flickr 検索のメソッド
photo_search(abc);
obj.r.innerHTML = '';
for(var i = 0; i < z.ResultSet.Result.length; i++){
var li = document.createElement('li');
var a = document.createElement('a');
a.href = z.ResultSet.Result[i].ClickUrl;
a.innerHTML= z.ResultSet.Result[i].Title;
li.innerHTML += 'Summary : ' +
z.ResultSet.Result[i].Summary+'<br> ';
li.appendChild(a);
obj.r.appendChild(li);
}
};
図5 コールバック関数の処理内容
②FlickrWeb サービスの
サービスの組込み
組込み[8]
[8]
画像デ ー タ の 表 示の た め に , 写真検 索を 行う
flickr.photos サービスを利用した.flickr でも検索結果
出力フォーマットが JSON の場合はコールバック関数
が 利 用 で き る . そ の Web サ ー ビ ス 実 行 部 分 の
JavaScript を図6に示す.画像表示も含むシステムの
実行画面を図7に示す.
図7 実行画面
6.おわりに
JavaScript 言語を使って Yahoo と Flikcr の REST
型 Web サービスをマッシュアップしたコスメテック検
索システムを開発した.JavaScript 言語の理解と修
得,また Web サービス API と出力結果の解析部分に
苦労したが,何とか開発できた.しかし最適な検索
結果を得ることは難しいと感じた.検索キーワードと
入力パラメータにうまく適合したサイト,
また画像
が表示されるようにこれからも検討していきたい.
参考文献
[1]大向一輝,橋本大也:Web2.0 について,
情報処理,Vol.47 No.11(2006).
[2] 荒本道隆:Web2.0 時代の WebServices,
http://www.xmlconsortium.org/wg/
web2.0/teigensho/4--REST-SOAP.html
[3]Yahoo Web Service:
http://developer.yahoo.com/
[4]Yahoo Web サービス:
http://developer.yahoo.co.jp/
[5]古旗一浩:JavaScript テクニカルブック,
C&R 研究所(2007).
[6]半場方人: JavaScript&DynamicHTML 辞典,
秀和システム(2007).
[7]JSON:http://www.json.org/
[8]Flickr: http://www.flickr.com/
Web サービスマッシュアップを利用した Web アプリケーションの開発(8-2)