目次
1. 序論 .................................................................................................................................. 2
1.1
研究の背景 ................................................................................................................. 2
1.2
研究の目標 ................................................................................................................. 2
2. XAMPPLite について ..................................................................................................... 2
3. 本システムの機能と概要 ................................................................................................. 3
4
3.1
システムの概要 .......................................................................................................... 3
3.2
マッシュアップした Web サービスについて............................................................. 3
3.3
システムの機能について ........................................................................................... 5
システムの実装について .................................................................................................. 6
4.1 画面表示プログラムについて....................................................................................... 6
4.2
入力プログラムについて ........................................................................................... 6
4.3
検索関係のプログラムについて................................................................................. 7
4.4
データベース検索関係のプログラムについて......................................................... 10
4.5
ユーザ登録関係のプログラムについて.................................................................... 14
5. システムの評価.............................................................................................................. 15
5.1
実行結果 ................................................................................................................... 15
5.2
類似システムとの比較 ............................................................................................. 17
6. 結論 ................................................................................................................................ 18
6.1
本研究の成果............................................................................................................ 18
6.2
今後の課題 ............................................................................................................... 18
参考文献 ............................................................................................................................... 19
付録
1
1.
序論
1.1 研究の背景
近年、様々な企業が Web サービスを提供している。中には、Web サービスを用いて
プログラムを作成するための API を提供している企業も存在する。Web サービスには、
REST 型、SOAP 型の二つがあり、SOAP はデータ交換を行うためにはクライアント側
でプログラムを作成する必要があるが、
REST はその必要がなく操作も容易である[1]。
そのため、REST 型の Web サービスが多くの人々に利用されている。また、インター
ネットにより、書籍の活用の方法も変化してきている。インターネット通販の普及、図
書館の利用などにより書籍の入手が容易となり、自分の読了した書籍を管理する蔵書管
理サービス、それらに対する自分の感想を他のユーザと共有するサービスなどが登場し
た。
1.2
研究の目標
読書には、思考力や想像力を養う、知識を増やすなど様々な利点がある。近年は、イ
ンターネット通販、図書館の利用により書籍の入手が容易となったが、ひとつのサービ
スを利用するだけでは目当ての書籍が入手できない可能性がある。また、書籍に対する
感想などを他人と共有することにより、自分とは違う考えに触れたり、読書をする楽し
みが増えると考える。そこで、複数の検索サービスをひとつにまとめ、検索をスムーズ
にする機能、ユーザごとに書籍を管理できるような蔵書管理機能をもった、読書をより
便利に、より楽しくするシステムを開発ことを目標とした。
2.
XAMPPLite について[2]
本システムは、
XAMPPLite を利用して開発した。
XAMPPLite は Http サーバや MySQL、
PHP などを導入できるフレームワークである。利用したバージョン機能、バージョンは以
下のとおりである。
XAMPP Lite (Basis Package) version 1.7.3
・Apache 2.2.14 (IPV6 enabled)
・MySQL 5.1.41(Community Server) with PBXT engine 1.0.09-rc
・PHP 5.3.1 (PEAR)
XAMPPLite は xampplite フォルダの xampp-control を立ち上げ利用したい機能を選択す
るという方法で起動する。
2
3.
本システムの機能と概要
3.1 システムの概要
本システムは「ユーザ登録機能」
、
「書籍名検索機能」
、
「カーリル検索機能」
、
「データ
ベース検索機能」の四つの機能を有している。書籍名を入力することにより、複数の検
索サービスからの結果が一度に表示され、データベースに書籍を登録すると、ユーザご
とに管理され、いつでも感想を書き込むことができる。また、データベースの検索を行
うことで、他人が登録した書籍、それに対する感想などを表示する。
3.2
マッシュアップした Web サービスについて
本システムでは、Web サービス「カーリル」
、
「楽天ブックス書籍検索」
、
「Yahoo!シ
ョッピング商品検索」をマッシュアップし、それらと MySQL データベースを連携させ
ている。各サービスの詳細を以下に示す。
3.2.1 カーリル Web サービスについて[3]
カーリルは全国の図書館から、蔵書情報と貸出状況を取得できる Web サービス
である。図1は、カーリルの Web サイトで松江市の図書館を指定し、
「google」をキ
ーワードとして検索を行った結果である。
図1 カーリルの検索結果
3
カーリルは、ISBN 情報をもとに、全国の図書館に指定した ISBN の蔵書が存在
するかどうかとその貸出状況を取得できる蔵書検索 API を提供している。本シス
テムでは蔵書検索 API を利用する。実行 URL を図 2 に示す。
http://api.calil.jp/check?appkey=[keyid]&isbn=[isbn]&systemid=[systemid]&format=xml
図2 カーリル API の実行 URL
ここで、keyid は API を利用するために必要なアプリケーション ID、isbn は検索した
い書籍の書籍コード、systemid は検索したい図書館がある都道府県コードである。
3.2.2 楽天ブックス書籍検索 API について[4]
楽天ブックス書籍検索 API は、楽天が提供している API であり、楽天ブックス
に登録されている商品の情報を取得することができる。実行 URL を図 3 に示す。
http://api.rakuten.co.jp/rws/3.0/rest?developerId=[keyid]&operation=BooksBookS
earch&version=2010-03-18&title=[keyword]
図 3 楽天ブックス書籍検索 API の実行 URL
ここで、keyid は API を利用するために必要なアプリケーション ID 、keyword は、検
索したい書籍名である
3.2.3 Yahoo ショッピング商品検索 API[5]
Yahoo ショッピング商品検索API はYahoo!ショッピングでの商品検索のためのAPI
である。検索結果の出力形式は XML、JSONP、PHPserialize 形式の三種類が用意さ
れている。本システムでは XML を用いる。実行 URL を図 4 に示す。
http://shopping.yahooapis.jp/ShoppingWebService/V1/itemSearch?appid=[keyid]&
query=[keyword]
図4
Yahoo ショッピング商品検索 API の実行 URL
ここで、keyid は API を利用するために必要なアプリケーション ID 、keyword は検索
したい書籍名である。
4
3.3
システムの機能について
本システムの四つの機能について詳細に説明する。
① ユーザ登録機能
ユーザ登録機能は、入力された ID、PASS を基に、MySQL に適切な権限をもっ
たユーザとテーブルを作成する機能である。
② 書籍名検索機能
書籍名検索機能は、入力されたキーワードをもとに、そのキーワードと一致す
るタイトルの書籍を Yahoo!ショッピングと楽天ブックスから取得し、ユーザに表示
する機能である。表示された結果から、書籍登録、カーリル検索、商品ページへの
リンクを行うことができる。
③ カーリル検索機能
カーリル検索機能は、ISBN 情報をもとにそれと一致する書籍を全国の図書館
から検索し、各図書館の蔵書情報、貸出状況を表示する機能である。
④ データベース検索機能
データベース検索機能は、入力された ID、PASS を基にデータベースを検索、
そのユーザが今まで登録した書籍情報を表示するプログラムである。また、感想の
更新、書籍名でデータベースを検索し、その書籍に対するすべてのユーザのレビュ
ーを表示する、登録されたすべての書籍に対するすべてのユーザのレビューを表示
する機能も有する。
5
4
システムの実装について[6]
各機能実装について開発したプログラムとともに説明する。
4.1
画面表示プログラムについて
処理内容について、プログラムリストとともに説明する。
<frameset cols="16%,84%">
①
<frame name="1" src="bookform.html">
<frame name="2" src="booksearch.php">
</frameset>
プログラムの
プログラムの説明
①画面をフレームで左右に分け、左に入力プログラムを、右に検索プログラムを表
示する。
4.2
入力プログラムについて
処理内容について、プログラムリストとともに説明する。
<form action="booksearch.php" method="POST" target="2" >
<input type="text" name="keyword" >
<br>
<input type="submit" value="タイトル検索">
<br>
</form>
<form action="CALIL.php" method="POST" target="2" >
<input type="text" name="isbn" >
<br>
<input type="submit" value="カーリル検索">
<br>
</form>
<form action="database.php" method="POST" target="2" >
ID<br><input type="text" name="ID" >
<br>
PASS<br><input type="password" name="PASS" >
<br>
<input type="submit" value="データベース検索">
<br>
</form>
<form action="register.html" method="POST" target="2" >
<input type="submit" value="ユーザー登録">
<br>
</form>
①
②
③
④
プログラムの
プログラムの説明
①書籍名検索プログラム booksearch3.php に form を利用して、
キーワード情報を送る。
②カーリル検索プログラム CALIL.php に form を利用して、ISBN 情報を送る。
③データベース検索プログラム database.php に form を利用して ID 情報と PASS
情報を送る。
④ユーザ登録情報入力プログラム register.html を呼び出す。
6
4.3
検索関係のプログラムについて
検索関係のプログラムについてプログラムとともに説明する。
4.3.1 書籍名検索プログラムについて
処理内容について、プログラムリストとともに説明する。
function ItemSearch_yahoo($keyword){
$request_yahoo="http://shopping.yahooapis.jp/ShoppingWebService
/V1/itemSearch?appid=".KEYIDy."&query=".$keyword."";
①
$restData_yahoo = file_get_contents($request_yahoo);
$restData_yahoo = str_replace('Hit Index', 'Hit', $restData_yahoo);
$parsed_xml_yahoo = simplexml_load_string($restData_yahoo);
②
return $parsed_xml_yahoo;
}
function ItemSearch_rakuten($keyword){
$request="http://api.rakuten.co.jp/rws/3.0/rest?developerId=
".KEYIDr."&operation=BooksBookSearch&version=
2010-03-18&title=".$keyword."";
①
$restData = file_get_contents($request);
$restData1 = str_replace('header:Header', 'header', $restData);
$restData2=str_replace('booksBookSearch:BooksBookSearch',
'booksBookSearch', $restData1);
②
$parsed_xml = simplexml_load_string($restData2);
return $parsed_xml;
}
function ItemSearchResults_yahoo($parsed_xml1){
echo "<font size=5>Yahoo 検索結果</font></br></br>";
$current1=$parsed_xml1->Result;
<?php
foreach($current1->Hit as $current2){
$imgs = $current2->Image->Small;
?>
<tr>
<td><?php echo "<img src=$imgs></br>";?></td>
<td><?php echo $current2->Name."</br>"; ?></td>
<td><?php echo $current2->Price."円(税込)</br>";?></td>
<td><?php echo $current2->Description."</br>";?></td>
<?php
if($current2->IsbnCode!=""){
?>
<td>
<form action="calil.php" method="POST" >
<input type="hidden" name="isbn" value=
<?php echo $current2->IsbnCode; ?> >
<input type="submit" value=
<?php echo $current2->IsbnCode; ?> >
</form>
</td>
<?php
}else{
?>
<td>ISBN データ無し</br></td>
<?php
}
?>
<td><?php echo "<font color=red></font><a
href=$current2->Url>$current2->Url</a>";?></td>
<td>
7
③
④
⑤
<form action="bookregister.php" method="POST">
<input type="hidden" name="name" value=
<?php echo $current2->Name; ?> >
<input type="hidden" name="isbn" value=
<?php echo $current2->IsbnCode; ?> >
<input type="submit" value="登録">
</form>
</td>
</tr>
⑥
function ItemSearchResults_rakuten($parsed_xml){
echo "<br><font size=5>楽天検索結果</font></br></br>";
$current3=$parsed_xml->Body->booksBookSearch;
foreach($current3->Items->Item as $current4){
$imgs = $current4->smallImageUrl;
?>
<tr>
<td><?php echo "<img src=$imgs></br>";?></td>
<td><?php echo $current4->title."</br>";?></td>
<td><?php echo $current4->itemPrice."円(税込)</br>";?></td>
③
<td><?php echo $current4->itemCaption."</br>";?></td>
<td>
<form action="calil.php" method="POST" >
<input type="hidden" name="isbn" value=
<?php echo $current4->isbn; ?>>
<input type="submit" value=<?php echo $current4->isbn; ?>>
④
</form>
</td>
<td><?php echo "<font color=red></font>
<a href=$current4->itemUrl>$current4->itemUrl</a>";?></td>
⑤
<td>
<form action="bookregister.php" method="POST">
<input type="hidden" name="name" value=
<?php echo $current4->title; ?> >
<input type="hidden" name="isbn" value=
<?php echo $current4->isbn; ?>>
<input type="submit" value="登録">
</form>
</td>
<tr>
⑥
プログラムの
プログラムの説明
①実行 URL を作成し実行、XML データを受け取る。
②XML データを simplexml_load_string 関数を用いて配列として扱えるようにす
る。しかし、楽天、Yahoo から返ってくるデータはタグ名が特殊なため、その
ままでは simplexml_load_string を実行できない。よって、str_replace を用い
てタグ名を変更する。
③商品の画像、名前、価格、説明を表示する。
④ISBN 情報がある場合は、
form によりカーリル検索プログラム calil.php に ISBN
情報を送る。
⑤商品ページへのリンクを張る。
8
⑥form を用いて、書籍登録プログラム bookregister.php に ISBN 情報と名前情報
を送る。
4.3.2 カーリル検索プログラムについて
処理内容について、プログラムリストとともに説明する。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>
<body>
<?php
define("KEYID","1d7f41e9643abfab2f4e9ef45b6c904d");
$isbn=$_POST["isbn"];
①
$systemid="Hokkaido_Pref,Aomori_Pref,Iwate_Pref,Miyagi_Pref,
Akita_Pref,Yamagata_Pref,Fukushima_Pref,Ibaraki_Pref,
Tochigi_Pref,Gunma_Pref,Saitama_Pref,Chiba_Pref,Tokyo_Pref,
Kanagawa_Pref,Niigata_Pref,Toyama_Pref,Ishikawa_Pref,
Fukui_Pref,Yamanashi_Pref,Nagano_Pref,Gifu_Pref,Shizuoka_Pref,
Aichi_Pref,Mie_Pref,Shiga_Pref,Kyoto_Pref,Osaka_Pref,Hyogo_Pref,
Nara_Pref,Wakayama_Pref,Tottori_Pref,Shimane_Pref,
Okayama_Pref,Hiroshima_Pref,Yamaguchi_Pref,Tokushima_Pref,
Kagawa_Pref,Ehime_Pref,Kochi_Pref,Fukuoka_Pref,Saga_Pref,
Nagasaki_Pref,Kumamoto_Pref,Oita_Pref,Miyazaki_Pref,
Kagoshima_Pref,Okinawa_Pref";
function Search($isbn,$systemid){
$request="http://api.calil.jp/check?appkey=".KEYID."&isbn=".$isbn."
&systemid=".$systemid."&format=xml";
$restData = file_get_contents($request);
$parsed_xml = simplexml_load_string($restData);
return $parsed_xml;
}
function SearchResults($parsed_xml){
$current=$parsed_xml->books->book;
foreach($current->system as $sy){//Item(商品)の個数分繰り返す
echo "県名: ".$sy["systemid"]."</br>";
echo "貸出状況: ".$sy->libkeys->libkey."</br>";
echo "リンク: <a href=$sy->reserveurl>$sy->reserveurl</a></br>";
echo "</br>";
echo "------------------------------------------------------------</br>";
}
②
③
④
}
プログラムの
プログラムの説明
①ISBN 情報を受け取る。
②全都道府県を対象とするシステム ID を作成する。
③実行 URL を作成し実行、返ってきた XML データを simplexml_load_string を
使い解析する。
④解析したデータを表示する。
9
4.3.3 書籍登録プログラムについて
処理内容について、プログラムリストとともに説明する。
<?php
session_start();
①
?>
<?php
define("DB_NAME", "book");
define("DB_USER", $_SESSION["ID"]);
define("DB_PASS", $_SESSION["PASS"]);
if($_SESSION["ACE"]==1){
②
$link = mysql_connect("localhost", DB_USER, DB_PASS) or die
("MySQL との接続に失敗しました。");
mysql_select_db(DB_NAME) or die("データベースとの接続に失敗しました。");
mysql_query("SET NAMES utf8") or die( "クエリーの実行に失敗しました" );
$query = "INSERT INTO ".$_SESSION["ID"]." SET title =
'" . $_POST["name"] . "', isbn = '" . $_POST["isbn"] . "'";
mysql_query($query) or die("クエリーを実行できませんでした。");
print "データを追加しました。¥n";
③
④
プログラムの
プログラムの説明
①SESSION をスタート。
②データベース検索プログラムで ID と PASS を使いデータベースと接続できてい
たか確認する。
③MySQL と接続する。
④書籍の題名と ISBN を登録するクエリーを作成し、実行する。
4.4
データベース検索関係のプログラムについて
データベース検索関係のプログラムについてプログラムとともに説明する。
4.4.1 データベース検索プログラムについて
処理内容について、プログラムリストとともに説明する。
<?php
session_start();
①
?>
define("DB_NAME","book");
define("DB_USER",$_POST["ID"]);
②
define("DB_PASS",$_POST["PASS"]);
$link=mysql_connect("localhost",DB_USER,DB_PASS) or die("MySQL との接続に失敗。");
mysql_select_db(DB_NAME) or die("データベースとの接続に失敗しました。");
$r=mysql_query("SET NAMES utf8") or die("クエリーの実行に失敗しました。");
③
$_SESSION["ID"]=$_POST["ID"];
$_SESSION["PASS"]=$_POST["PASS"];
$_SESSION["ACE"]=$r;
④
$query="select * from ".$_POST["ID"];
$result=mysql_query($query) or die ("クエリーを実行できませんでした。");
$rows=mysql_num_rows($result);
10
⑤
while($row=mysql_fetch_array($result)){
?>
<tr>
<td><?php echo $row["title"]?></td>
<td><?php echo $row["isbn"]?></td>
<td><?php echo $row["impre"]?></td>
<td>
<form action="bookupdate.php" method="POST">
<input type="hidden" name="title" value=
<?php echo $row["title"]?>>
<input type="hidden" name="isbn" value=
<?php echo $row["isbn"]?>>
<input type="submit" value="更新">
</form></td>
</tr>
⑥
⑦
<?php
}
}
?>
<form action="datasearch.php" method="POST">
<input type="text" name="keyword">
<input type="submit" value="レビュー検索">
<form>
<br>
<br>
<form action="datasearch.php" method="POST">
<input type="submit" value="全レビュー表示">
<form>
⑧
⑨
プログラムの
プログラムの説明
①SESSION をスタートする。
②ID と PASS を受け取る。
③データベースに接続し、SET NAMES UTF8 を実行する。
④SESSION 変数 ID に ID、PASS に PASS、ACE に②のクエリーが実行できた
かを格納する。
⑤自分のテーブルのすべての値を出力するクエリーを作成し実行する。
⑥⑤で受けとった値を出力する。
⑦データベース更新入力プログラム bookupdate.php に題名情報と ISBN 情報を送
る form を作成する。
⑧データベース詳細検索プログラム datasearch.php にキーワード情報を送る
form を作成する。
⑨データベース詳細検索プログラム datasearch.php を呼び出す form を作成する。
11
4.4.2 データベース詳細検索プログラムについて
処理内容について、プログラムリストとともに説明する。
<?php
session_start();
①
?>
define("DB_NAME","book");
define("DB_USER",$_SESSION["ID"]);
define("DB_PASS",$_SESSION["PASS"]);
②
$query="show tables from book";
$result=mysql_query($query) or die ("クエリーを実行できませんでした。");
$rows=mysql_num_rows($result);
$query="";
$i=0;
while($row=mysql_fetch_array($result)){
if($i==0){
$query="select * from ".$row["Tables_in_book"];
}else{
$query=$query." union select * from ".$row["Tables_in_book"];
}
$i++;
}
③
④
$result=mysql_query($query) or die ("クエリーを実行できませんでした。");
$rows=mysql_num_rows($result);
while($row=mysql_fetch_array($result)){
if($_POST["keyword"]==""){
?>
<tr>
<td><?php echo $row["title"]?></td>
<td><?php echo $row["isbn"]?></td>
<td><?php echo $row["impre"]?></td>
</tr>
<?php
}else{
if(ereg($_POST["keyword"],$row["title"])==1){
?>
<tr>
<td><?php echo $row["title"]?></td>
<td><?php echo $row["isbn"]?></td>
<td><?php echo $row["impre"]?></td>
</tr>
⑤
⑥
プログラムの
プログラムの説明
①SESSION 開始する。
②SESSION 変数を受け取る。
③データベース「book」からすべてのテーブル名を出力するクエリを作成し、実
行する。
④③の結果を用いて、すべてのテーブルの値を出力できるクエリを作成し、実行
する。
⑤キーワード情報を受け取っていない場合、すべてのテーブルの値を表示する。
12
⑥キーワード情報を受け取っている場合、そのキーワードの書籍の情報を表示す
る。
4.4.3 データベ-ス更新入力プログラムについて
処理内容について、プログラムリストとともに説明する。
<form action="bookupdate2.php" method="POST">
<table border="1">
<td>題名</td>
<td>ISBN</td>
<td>感想</td>
</tr>
<tr>
<td><?php echo $_POST["title"] ?></td>
<td><?php echo $_POST["isbn"] ?></td>
<td><input type="text" size="40" name="impre" ></td>
</tr>
①
</table>
<input type="hidden" name="title" value="<?php echo $_POST["title"] ?>">
<input type="hidden" name="isbn" value="<?php echo $_POST["isbn"] ?>">
<input type="submit" value="更新">
</form>
プログラムの
プログラムの説明
①データベース更新プログラム bookupdate2.php に題名情報と ISBN 情報、入力
した感想を送る form を作成する。
4.4.4 データベース更新プログラムについて
処理内容について、プログラムリストとともに説明する。
<?php
session_start();
①
define("DB_NAME", "book");
define("DB_USER", $_SESSION["ID"]);
define("DB_PASS", $_SESSION["PASS"]);
②
$query = 'update '.DB_USER.' SET title = "' . $_POST["title"] . '",
isbn = "' . $_POST["isbn"] . '", impre="'.$_POST["impre"].'"
where isbn = "' . $_POST["isbn"].'"';
mysql_query($query) or die("クエリーを実行できませんでした。");
③
プログラムの
プログラムの説明
①SESSION 開始する。
②SESSION 変数を受け取る。
③うけとった題名情報、ISBN 情報、感想情報をもとにテーブルを更新するクエ
リを作成し実行する。
13
4.5
ユーザ登録関係のプログラムについて
ユーザ登録関係のプログラムについてプログラムとともに説明する。
4.5.1 ユーザ登録情報入力プログラムについて
処理内容について、プログラムリストとともに説明する。
ID とパスワードを入力してください
<form action="register.php" method="POST" target="2" >
ID<br><input type="text" name="ID" >
<br>
PASS<br><input type="text" name="PASS" >
<br>
<input type="submit" value="登録">
<br>
</form>
①
プログラムの
プログラムの説明
①ID と PASS をユーザ登録プログラム register.php に送る form を作成する。
4.5.2 ユーザ登録プログラムについて
処理内容について、プログラムリストとともに説明する。
$s='"';
①
$query="create table ".$_POST["ID"]." (title varchar(32),
isbn varchar(32),impre varchar(32))character set cp932";
mysql_query($query) or die ("クエリーを実行できませんでした。");
②
$query="grant select on book.* to ".$_POST["ID"]."
identified by ".$s.$_POST["PASS"].$s;
mysql_query($query) or die ("クエリーを実行できませんでした。");
③
$query="grant select,insert,delete,update on
book.".$_POST["ID"]." to ".$_POST["ID"]."
identified by ".$s.$_POST["PASS"].$s;
mysql_query($query) or die ("クエリーを実行できませんでした。");
④
プログラムの
プログラムの説明
①クエリを作成するさい、”をそのまま利用するとエラーとなる個所があるので、
変数に格納して利用する。
②ユーザの名前のテーブルを作成するクエリを作成し、実行する。
③入力された ID、PASS を基に、すべてのテーブルの情報を表示する権限をもっ
たユーザを作成する。
④入力された ID、PASS を基に、自分のテーブルを表示、挿入、更新、削除する
権限をもったユーザを作成。これにより、③の権限と④の権限を併せ持ったユ
ーザが作成される。
14
5.
システムの評価
5.1 実行結果
本システムの実行結果を示す。
図 5 は「ぐりとぐら」をキーワードとし、書籍検索を行った結果である。書籍
の画像、題名、価格、説明と ISBN ボタン、URL リンク、登録ボタンが表示され
ている。ISBN ボタンをクリックすることでのカーリル検索の実行、URL リンク
での商品ページへの移動、登録ボタンでのデータベースへの書籍登録を確認し
た。
図 5 「ぐりとぐら」をキーワードとした書籍検索結果
図 6 は「9784834024616」を ISBN とし、カーリル検索を行った結果である。県
名、貸出状況、URL リンクの表示、URL リンクでの図書館ページへの移動を確
認した。
図6
カーリル検索結果
図 7 は ID と PASS を入力し、データベース検索を行った結果である。自分が投稿
した書籍の題名、ISBN、感想と更新ボタンの表示を確認した。
15
図 7 データベース検索結果
図 8 は,「ぐり」をキーワードとしレビュー検索を行った結果である。「ぐり」
が題名に入っている書籍だけが表示されていることを確認した。
図 8 レビュー検索の実行結果
図 9 は全レビュー表示を行った結果である。他のユーザのレビューが表示されて
いることを確認した。
16
図 9 全レビュー表示の実行結果
5.2
類似システムとの比較
本システムと類似した Web サービスはいくつか存在している。その中でも「ブクロ
グ」[7]、「読書メーター」[8]はとくに利用者が多い。本システムとの比較結果を示す。
それぞれのシステムで書籍の検索をすると本システムは、商品ページへのリンク、カ
ーリル検索、データベース登録、ブクログは Amazon と他人のレビューページへのリ
ンク、読書メーターは他人のレビューページへのリンクが表示される。そのため、商
品検索は読書メーターが一歩劣っている。図書館の検索は、ブクログでは各レビュー
ページからカーリルのページにいき、そこで検索するという使い方なので少し使いに
くい。また、読書量とは読んだ本のページ数などから自分がどれほどの読書をしたか
を表すものであり、読書メーターはこれの管理が可能である。レビューの共有に関し
ては、本システムは他のシステムに比べかなり使いづらい。
本システム
ブクログ
読書メーター
読書メーター
検索機能
・楽天
・Yahoo
Amazon
・Amazon
・他多数
図書館検索
○
×
△
読書量の
読書量の管理
×
○
×
商品検索のしやすさ
商品検索のしやすさ
○
△
○
レビューの
レビューの共有
△
○
○
表 1 類似システムとの比較
17
6.
結論
6.1 本研究の成果
カーリル、楽天、YahooWeb サービスをマッシュアップし、MySQL と連携させて、
書籍の検索と蔵書の管理の機能を持ったシステムを開発した。書籍名で Yahoo と楽天
の商品検索、カーリルでの図書館検索やデータベースへの登録がおこなえる。また、
カーリルでの検索は、ISBN を用いて行うこともできる。ユーザごとの蔵書を管理し、
感想を投稿したり、他人のレビューを機能ことも可能である。各 Web サービスの
XML の解析、各機能の連携、ユーザごとのテーブルの作成などに苦労したが、完成さ
せることができた。この研究を通じて、API の利用、PHP と MySQL の連携について
深く学ぶことができた。
6.2
今後の課題
検索の部分に時間をかけすぎてしまい、蔵書の管理機能がかなり使いづらいものと
なってしまった。また、書籍を登録するには、あらかじめデータベース検索を行い、
ID と PASS を入力しなければならないといった問題もある。今後は類似システムとの
比較を基に蔵書管理の機能を向上させる、ログインボタンの作成などでシステムを使
いやすくするなどが課題となる。
18
参考文献
[1]Web サービス,
http://www.xmlconsortium.org/wg/web2.0/teigensho/4--REST-SOAP.html
[2]Xmapplite, http://www.apachefriends.org/jp/xampp-windows.html
[3]カーリル, http://calil.jp/
[4]楽天, http://webservice.rakuten.co.jp/api/booksbooksearch/
[5]Yahoo, http://developer.yahoo.co.jp/
[6]MySQL, 田中ナルミ/阿部忠光,標準 MySQL 改訂第3版,ソフトバンククリエイティブ株式会
社,2007 年.
[7]ブクログ, http://booklog.jp/
[8]読書メーター, http://book.akahoshitakuya.com/
19
© Copyright 2026 Paperzz