Microsoft Word - ‚²Ÿ__MyRoom_mod_“Å‘I.doc



Similar documents
2011論稿_吉川宏之.indd

Microsoft Word - ML_ListManager_10j.doc

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

内 容 1. はじめに メールのログイン 初 めてのログイン メールの 受 信 / 送 信 メールの 受 信 メールの 作 成 と 送 信 メールの 新 規 作 成 メー

PowerPoint プレゼンテーション

購買ポータルサイトyOASIS簡易説明書 b

PowerPoint プレゼンテーション

目 次 1. ログイン ユーザー 登 録 TOP 職 員...8 (1) 職 員 の 名 刺 表 示...8 (2) 職 員 の 名 刺 一 括 ダウンロード...8 (3) 職 員 の 名 刺 帳 から 検 索 検 索...9 (1) 氏 名

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

PowerPoint プレゼンテーション

ez_meishi.ppt

Microsoft Word - 311Tools_END

Microsoft Word - 生物学技研報告ONLINE ガイドブック.doc

1 林 地 台 帳 整 備 マニュアル( 案 )について 林 地 台 帳 整 備 マニュアル( 案 )の 構 成 構 成 記 載 内 容 第 1 章 はじめに 本 マニュアルの 目 的 記 載 内 容 について 説 明 しています 第 2 章 第 3 章 第 4 章 第 5 章 第 6 章 林 地

1 書 誌 作 成 機 能 (NACSIS-CAT)の 軽 量 化 合 理 化 電 子 情 報 資 源 への 適 切 な 対 応 のための 資 源 ( 人 的 資 源,システム 資 源, 経 費 を 含 む) の 確 保 のために, 書 誌 作 成 と 書 誌 管 理 作 業 の 軽 量 化 を 図

エ CarotDAV が 起 動 すると 次 のようなウィンドウが 表 示 されます メニューバーにある File から New Connection の WebDAV を 選 択 します オ 次 のような 設 定 画 面 が 表 示 されたら General タブでネットワークアドレスなどを 設

PowerPoint プレゼンテーション

Microsoft Word - 不正アクセス行為の禁止等に関する法律等に基づく公安

(Microsoft Word - [Kiyou]HiroshiUeda_HarumiMurakami_-_NDCSuggest_Modified_06\201c)

雇用保険被保険者資格取得届(様式)編

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

V-CUBE One

<4D F736F F D20819C B78AFA95DB91538C7689E68DEC90AC289

SPARQL Finder設置方法

Microsݯft Word - 91 forܠ2009November.docx

入札方式別操作

2 学 校 への 支 援 方 法 CMS(NetCommons)の 操 作 説 明 会 2-1 操 作 説 明 会 平 成 26 年 度 も 学 校 ホームページ 作 成 運 用 における 支 援 となるよう 操 作 説 明 会 を 実 施 した 基 礎 編 としてCMS(NetCommons)の

スライド 1

目 次 利 用 に 際 しての 注 意 事 項... ユーザー 登 録... ログイン... 課 題 申 請... 5 装 置 予 約... 6 ライセンス 取 得 方 法... 7 利 用 料 金 の 確 認 ( 準 備 中 ) 外 部 発 表 登 録 の 方 法... 5 < 附

R4財務対応障害一覧

スライド 1

Gmail 利用者ガイド

目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

■新聞記事

事前チェック提出用現況報告書作成ツール入力マニュアル(法人用)

「給与・年金の方」からの確定申告書作成編

Microsoft PowerPoint _リビジョンアップ案内_最終.pptx

ご 利 用 の 前 に 手 順 初 回 ご 利 用 時 に 必 ずご 確 認 ください ご 利 用 の 前 に (ご 利 用 環 境 の 確 認 ) P アクセス 方 法 (IMAGE WORKSサイトへアクセス) P 初 期 設 定 (JREのインストール) P

贈与税 faq

検 索 しよう... 1 結 果 を 見 よう ~ 検 索 結 果 一 覧 ~... 2 結 果 を 見 よう ~ 検 索 結 果 詳 細 ( 図 書 )~... 3 結 果 を 見 よう ~ 検 索 結 果 詳 細 ( 雑 誌 )~... 4 ログインしよう... 5 私 の 本 棚 を 活 用

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

Microsoft Word - 03accessデータベース演習レジメ.doc

C.1 共 有 フォルダ 接 続 操 作 の 概 要 アクセスが 許 可 されている 研 究 データ 交 換 システムの 個 人 用 共 有 フォルダまたは メーリングリストの 共 有 フォルダに 接 続 して フォルダを 作 成 したり ファイル をアップロードまたはダウンロードしたりすることがで

POWER EGG V2.01 ユーザーズマニュアル ファイル管理編

<4D F736F F D2093CD8F6F82AA954B977682C88C9A95A882CC94BB926682CC DD5F48508C668DDA E646F63>

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

(1) 3 8 (2) (3) 3 (1) ( ) 3 8

Microsoft PowerPoint - final.ppt

スライド 1

PowerPoint プレゼンテーション

別冊資料-11

スライド 1

スライド 1

6 システムを 入 れているパソコンを 入 れ 替 えたいが どうしたらいいのか 元 のパソコンから 新 しいパソコンに 昨 年 度 入 力 データを 移 行 します 手 順 は 次 のとおりです 1 元 のパソコンでシステムを 起 動 して メニュー 画 面 から バックアップ リカバリ を 選

U/Cサーバ 業務システム間転送プログラムインターフェース仕様書

地域ポータルサイト「こむねっと ひろしま」

預 金 を 確 保 しつつ 資 金 調 達 手 段 も 確 保 する 収 益 性 を 示 す 指 標 として 営 業 利 益 率 を 採 用 し 営 業 利 益 率 の 目 安 となる 数 値 を 公 表 する 株 主 の 皆 様 への 還 元 については 持 続 的 な 成 長 による 配 当 可

スライド 1

目 的 このマニュアルは Google Apps を 利 用 する 方 法 について 記 述 します 前 提 Google アカウントを 保 有 している 人 を 前 提 とします 対 象 者 Google Apps の 利 用 者 を 対 象 としています 2 / 18

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..

<819A955D89BF92B28F BC690ED97AA8EBA81418FA48BC682CC8A8890AB89BB816A32322E786C7378>

PowerPoint プレゼンテーション

事 業 者 所 在 地 事 業 者 名 役 職 電 話 番 号 メールアドレス( 当 局 が 提 供 したデ ータから 変 更 等 があれば 入 力 を 行 うこと) アンケート 設 問 数 : 全 27 問 程 度 当 該 データをとりまとめる 際 は 必 ず2 名 以 上 によるデータのチェック

検 討 検 討 の 進 め 方 検 討 状 況 簡 易 収 支 の 世 帯 からサンプリング 世 帯 名 作 成 事 務 の 廃 止 4 5 必 要 な 世 帯 数 の 確 保 が 可 能 か 簡 易 収 支 を 実 施 している 民 間 事 業 者 との 連 絡 等 に 伴 う 事 務 の 複 雑

2 Wee とは Wee はホームページの 更 新 ツールです Wee は サイトの 枠 組 みをWeb 製 作 業 者 が 作 成 し 更 新 は お 客 様 に 自 由 にしていただこうというコンセプトの 製 品 です インターネットに 繋 がる 場 所 ならどこからでも ブラウザでホームページ

技術報告会原稿フォーマット

DN6(R04).vin

<4D F736F F D F6F82C58AC C A4A8BC C5816A>

Microsoft Word - Active.doc

シラバスの作成と管理用Webシステムの開発

2 出 願 資 格 審 査 前 記 1の 出 願 資 格 (5) 又 は(6) により 出 願 を 希 望 する 者 には, 出 願 に 先 立 ち 出 願 資 格 審 査 を 行 いますので, 次 の 書 類 を 以 下 の 期 間 に 岡 山 大 学 大 学 院 自 然 科 学 研 究 科 等

PowerPoint プレゼンテーション

第1回

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

1.セッション3では 流 出 した 際 の 損 害 を 最 小 限 に 抑 える 対 応 仕 組 み 1

- INDEX - 1 ご 利 用 時 間 1 2 メニュー 1 3 ご 利 用 になる 前 に 行 っていただきたいこと 3 (1) 所 在 地 沿 線 設 定 3 (2) 会 員 情 報 の 管 理 ( 自 社 情 報 の 設 定 ) 5 4 物 件 情 報 の 登 録 8 (1) 操 作 概

(3) 小 単 元 の 指 導 と 評 価 の 計 画 小 単 元 第 11 章 税 のあらまし の 指 導 と 評 価 の 計 画 ( 四 次 確 定 申 告 制 度 抜 粋 ) 関 心 意 欲 態 度 思 考 判 断 技 能 表 現 知 識 理 解 小 単 元 の 評 価 規 準 税 に 関 す

Microsoft Word - 第3章.doc

返還同意書作成支援 操作説明書

Microsoft Word - 養生学研究投稿規定(改)

目 次 機 能 概 要 配 信 管 理 1. メールの 配 信 履 歴 と 予 約 を 確 認 する

電子納品チェックシステム利用マニュアル

戦略担当者のための

Microsoft Word - Jimdo基礎編(8版)

Microsoft Word - tb01.doc

研究者情報データベース


Thunderbird のメール/設定を別PCへ移行する方法(「MozBackup」を使って)

SNSとLMSの強みと弱み 統合環境を目指して (教育学部紀要投稿用)

改 定 履 歴 改 訂 日 改 訂 理 由 及 び 内 容 承 認 者 確 認 者 改 訂 者 05/8/7 新 版 発 行 05/0/5 推 奨 動 作 環 境 を 追 記

PowerPoint プレゼンテーション

スライド 1

1

Sea-NACCS 利用者研修 【通関編】

スライド 1

よりメンバーに 配 布 した 第 2 期 は 第 1 期 に 開 発 した 大 気 時 間 値 集 計 解 析 ツールをベースに 機 能 改 良 を 行 った 国 立 環 境 研 究 所 では メンバーから 寄 せられる 要 望 使 い 勝 手 に 関 する 意 見 感 想 不 具 合 発 生 など

機 能 概 要 概 要 平 成 24 年 度 シームレスな 地 域 連 携 医 療 の 実 現 実 証 事 業 に 対 応 するため 地 域 連 携 システム( 能 登 北 部 版 )を 構 築 する 機 能 < 機 能 追 加 変 更 一 覧 > 1. 画 像 連 携 機 能 院 内 で 撮 影

工事記録写真チェックシステム 操作説明書

1. アクセスする 2. 簡 易 検 索 画 面 (fig. 1) アクセスすると 最 初 に 出 る 画 面 です 検 索 語 入 力 ボックスにキーワードを 入 力 して 論 文 検 索 ボタンをクリックし ます 3. ボックス 下 部 のチェック 項

Transcription:

My Room Web System 松 江 工 業 高 等 専 門 学 校 情 報 工 学 科 研 究 者 :スワット センサワート 指 導 教 員 : 越 田 高 志 2009 年 02 月 05 日 1

目 次 1.はじめに...2 2.マッシュアップとは...3 3.Web サービスについて...4 3.1 SOAP 型 Web サービス...4 3.1.1 Soap 型 とは 何 でしょう?...4 3.1.2 必 要 なソフトウェアと 確 認 方 法 について...4 3.1.3 Axis サーバに WEB サービスを 登 録 する 方 法...8 3.2 REST 型 Web サービス...14 3.2.1 REST 型 とは 何 でしょう?..14 3.2.2 必 要 なソフトウェアとその 設 定 について...14 3.2.3 REST 型 Web サービス 実 行 例...17 4.スクリプト 言 語 について...20 4.1 PHP 言 語...20 4.2 JavaScript 言 語...20 5. My Room Web System について...20 5.1 My Room Web System の 研 究 目 的...20 5.2 システム 構 成 と 機 能...21 5.3 My Room Web System のプログラムについて 22 5.3.1 天 気 情 報 サービス.23 5.3.2 Google サービス...27 6. おわりに...31 6.1 まとめ...31 6.2 システム 評 価...31 6.3 中 間 期 末 卒 研 発 表...31 6.4 今 後 の 課 題...32 参 考 文 献 付 録 2

1. はじめに[1] 近 年,インターネットの 利 用 形 態 が 従 来 のサーバから 情 報 を 得 る 一 方 向 のみの 利 用 から,ユ ーザ 自 らがインターネットに 情 報 を 発 信 する 双 方 向 の 利 用 に 変 わりつつある.この 双 方 向 のイ ンターネット 利 用 を 核 とした 新 しい Web のあり 方 を Web2.0 [2]と 言 う.その Web2.0 時 代 において,Web サービスも 従 来 の SOAP 型 から,より 利 用 しやすい REST 型 に 移 行 し,その REST 型 Web サービスが Google,Yahoo,Amazon など 多 くの 企 業 から 提 供 されるようにな ってきた. 今 回, 我 々はこの REST 型 Web サービス API をマッシュアップして, 研 究 開 発 を 支 援 するための 新 しいサービスを 構 築 する. 2.マッシュアップとは マッシュアップ(Mash up)[3]とは, 複 数 の 異 なる 提 供 元 の 技 術 やコンテンツを 複 合 させて 新 しいサービスを 構 築 することをいう.より 具 体 的 には, 複 数 の 異 なる Web サービス API を 目 的 に 応 じて 結 合 し, 新 しいサービスとして 開 発 することをいう( 図 1 参 照 ). 図 1:マッシュアップのイメージ 図 本 システムの 開 発 を 始 める 前 に2 種 類 の Web サービス SOAP 型 と REST 型 Web サービス について, 実 際 にサーバとクライアントプログラムを 作 成 し, 動 作 確 認 を 行 った.それらにつ いて,まず 説 明 する. 3

3. Web サービスについて[2] まず Web サービスとは 何 だろうか.この 場 合 サービス とはプログラム 処 理 のことを 指 す. 通 常 のプログラムでは 入 力 を 受 け 取 り, 処 理 を 行 って 出 力 を 返 す. 同 様 の 流 れをイ ンターネットのサーバ 上 で 行 うのが Web サービスである.つまりインターネット 経 由 での リクエストメッセージを 入 力 とし, 処 理 を 行 い 出 力 をレスポンスメッセージとしてクライ アントに 返 すという 処 理 を 行 っている. 従 って,Web サービスとは 我 々が 普 段 利 用 してい る Web サイトに 限 られるわけではなく,Web 経 由 でアクセスできるあらゆるサービス(プ ログラム)と 捉 えることができる. Web サービスは, 大 きく SOAP 型 Web サービスと 最 近 利 用 が 増 えている REST 型 Web サ ービスに 分 類 できる. 3.1 SOAP 型 Web サービス 3.1.1 SOAP とは 何 でしょう?[2] SOAP(Simple Object Access Protocol)とは,Web サービスとそれを 利 用 するクライア ント 間 の XML ベースのメッセージ 交 換 プロトコルである.SOAP を 利 用 する 事 によって Web サービスとクライアントプログラム 間 とのメッセージ 交 換 や RPC(Remote Procedure Call)を 容 易 に 実 現 できる. SOAP 仕 様 は,インターネット 上 での 分 散 処 理 を 実 現 する 仕 様 として 策 定 された.XML デ ータを 交 換 するため,システム 開 発 が 容 易 でオペレーティングシステムやプログラミング 言 語 に 関 して 完 全 に 中 立 であり,またプラットフォーム 独 立 でもある.SOAP は,より 複 雑 な 相 互 作 用 および 構 築 できるプロトコル 上 に 最 小 のレベルの 伝 送 を 提 供 するように 意 図 している.そ の SOAP プロトコルを 利 用 した Web サービスが SOAP 型 Web サービスである. 3.1.2 必 要 なソフトウェアとその 開 発 方 法 について ここでは,SOAP 型 Web サービスのサーバ 上 への 実 装 とそれを 利 用 するクライアントプ ログラムの 構 築 について 具 体 的 に 説 明 する. 1 開 発 環 境 必 要 なソフトウェア Apache Axis1.1,TomCat4.1.37,J2SDK1.5,Xerces1.4.4 ( 全 てインターネットからダウンロード 可 能 ) ダウンロードをしてから 展 開,インストールする. 2 システム 環 境 変 数 の 設 定 利 用 するソフトウェアに 対 する 各 種 のシステム 環 境 変 数 を 指 定 する 必 要 がある.それら を 図 2と 表 1にまとめて 示 す. 詳 細 は 各 ソフトウェア 添 付 文 書 を 参 照 のこと. 4

図 2:システム 環 境 変 数 の 設 定 画 面 5

表 1 のように 設 定 する. (Axis は C: ドライブにインストールして 置 いた.Xerces も C: ドライブにインスト ールして 置 いた) 表 1:システム 環 境 変 数 の 設 定 例 変 数 値 CATALINA_HOME C: Program Files Apache Software Foundation Tomcat 4.1 JAVA_HOME PATH C: Program Files Java jdk1.5.0_15.;%java_home% bin;%systemroot% system32;%systemroot%;%syst emroot% System32 Wbem CLASSPATH.;%JAVA_HOME% lib tools.jar;%catalina_home% common lib s ervlet.jar;%catalina_home% common lib jaxrpc.jar;%catalina _HOME% common lib saaj.jar;c: axis-1_1 axis-1_1 lib axis.jar;c: axis-1_1 axis-1_1 lib axis-ant.jar;c: axis-1_1 axis-1_1 lib jaxrpc.jar ;C: axis-1_1 axis-1_1 lib saaj.jar;c: axis-1_1 axis-1_1 lib commons -logging.jar;c: axis-1_1 axis-1_1 lib commons-discovery.jar;c: axis-1 _1 axis-1_1 lib log4j-1.2.4.jar;c: axis-1_1 axis-1_1 lib wsdl4j.jar;c: xerces1_4 xerces-1_4_4 lib xerces.jar AXIS_HOME C: axis-1_1 axis-1_1 3 Axis の 構 築 C: axis-1_1 axis-1_1 webapps の 中 の axis というフォルダをコピーして, C: Program Files Apache Software Foundation Tomcat 4.1 webapps に 貼 り 付 け る. 次 に,C: axis-1_1 axis-1_1 webapps WEB-INF lib の 中 にある jaxrpc.jar と saaj.jar をコピーして,C: Program Files Apache Software Foundation Tomcat 4.1 common lib に 貼 り 付 ける. 4 サーバの 動 作 確 認 TomCat と Axis が 動 作 しているかを 確 認 する.まず,TomCat の 動 作 確 認 を 行 う. 図 3, 図 4に 示 す. 6

図 3:Tomcat 起 動 画 面 (MS-DOS) 図 3の 画 面 表 示 を 確 認 した 後 に,ブラウザ 上 で http://localhost:8080/を URL の 部 分 に 入 力 する. 以 下 の 画 面 が 表 示 されれば TomCat は 正 常 動 作 している. 図 4:TomCat 確 認 画 面 7

続 いて Axis の 動 作 を 確 認 する. 同 じブラウザで URL 部 分 を 以 下 http://localhost:8080/axis/index.html に 変 更 し,Enter を 押 す. 以 下 の 画 面 ( 図 5)のように 表 示 されれば Axis は 正 常 に 動 作 している. 図 5:Axis 確 認 画 面 3.1.3 Axis サーバに WEB サービスを 登 録 する 方 法 実 験 のために 開 発 したプログラムは,Java 言 語 で 開 発 した Data.java, サーバプログ ラム SotuService2.java, クライアントプログラム SotuClient2.java である. 各 々のプ ログラムについて 以 下 で 具 体 的 に 示 す. Data.java public class Data{ // code : 商 品 コード, maker : 商 品 コードを 取 り 扱 うメーカ String code, maker; // 引 数 なしのコンストラクタ(code, maker の 初 期 設 定 ) public Data(){ code = null; maker = null; // 引 数 に code, maker を 持 つコンストラクタ public Data( String code, String maker ){ setcode( code ); setmaker( maker ); 8

// code, maker にデータを 格 納 するための setter メソッド public void setcode( String code ) { this.code = code; public void setmaker( String maker ) { this.maker = maker; // code, maker からデータを 取 得 するための getter メソッド public String getcode() { return code; public String getmaker() { return maker; サーバプログラム SotuServices2.java import java.sql.*; public class SotuService2{ public TestData gettempmaker(string code) throws Exception{ String dburl = "jdbc:odbc:soap", driver = "sun.jdbc.odbc.jdbcodbcdriver"; TestData ret = null; try{ // ドライバクラスをロード Class.forName(driver); // データベースへ 接 続 Connection con = DriverManager.getConnection(dbUrl); // プリステートメントオブジェクトを 生 成 PreparedStatement prstmt = con.preparestatement( "select * from reg where code =?" ); prstmt.setstring( 1, code ); // クエリーを 実 行 して 結 果 セットを 取 得 ResultSet rs = prstmt.executequery(); // 取 り 扱 いメーカを 取 得 if ( rs.next() ) ret = new TestData( rs.getstring("code"), rs.getstring("maker") ); // データベースから 切 断 rs.close(); prstmt.close(); con.close(); catch (Exception e){ e.printstacktrace(); return ret; クライアントプログラム SotuClient2.java import org.apache.axis.client.call ; import org.apache.axis.client.service ; import org.apache.axis.encoding.ser.beandeserializerfactory ; 9

import org.apache.axis.encoding.ser.beanserializerfactory ; import org.apache.axis.encoding.xmltype ; import org.apache.axis.utils.options ; import javax.xml.rpc.parametermode ; import javax.xml.namespace.qname ; import java.sql.* ; public class SotuClient2 { public static void main(string[] args) throws Exception{ Options options = new Options( args ) ; args = options.getremainingargs() ; // 引 数 の 数 が 正 しくない 場 合 は,コンソールにヘルプメッセージを 出 力 して 処 理 を 終 了 する if ( ( args == null ) ( args.length!= 1 ) ){ System.err.println( "Usage: java SotuClient2 [ 商 品 名 ]" ) ; System.exit(1); QName qname = new QName("urn:Data-types", "SotuService2"); try{ String dburl = "jdbc:odbc:testdb", driver = "sun.jdbc.odbc.jdbcodbcdriver"; String code = null; Class.forName(driver); Connection con = DriverManager.getConnection(dbUrl); // プリステートメントオブジェクトを 生 成 PreparedStatement prstmt = con.preparestatement( "select code from orosi where shouhin =?" ); prstmt.setstring( 1, args[0] ); // クエリーを 実 行 して 結 果 セットを 取 得 ResultSet rs = prstmt.executequery(); if ( rs.next() ) code = rs.getstring("code"); System.out.println( " 商 品 名 : " + args[0] ); rs.close(); prstmt.close(); con.close(); Service service = new Service(); Call call = (Call)service.createCall(); // サービスを 提 供 している URL を 記 述 //call.settargetendpointaddress(options.geturl()); call.settargetendpointaddress("http://localhost:8080/axis/service s/sotuservice2"); // メソッド 名 を 設 定 call.setoperationname(new QName( "SotuService2", "gettempmaker" )); // メソッドの 引 数 の 型 を 設 定 call.registertypemapping(testdata.class, qname, new BeanSerializerFactory(TestData.class, qname), 10

new BeanDeserializerFactory(TestData.class,qName)); // メソッドを 実 行 TestData ret = (TestData)call.invoke( new Object[] {code ); System.out.println( " 商 品 コード : " + ret.getcode() + " 取 り 扱 いメーカ : " + ret.getmaker() ); catch (Exception e){ e.printstacktrace(); これらのプログラムの 処 理 は,クライアントは 自 らのPC 上 のデータベースを 検 索 して, 商 品 名 からそれに 対 応 した 商 品 コードを 抽 出 する.その 商 品 コードをリ クエストデータとして Web サービスに 送 付 する.Web サービスは,その 商 品 コー ドを 受 け 取 り,サーバにあるデータベースに 接 続 し,SQL 文 を 実 行 してその 商 品 コードに 対 応 した 商 品 名 を 抽 出 し,その 実 行 結 果 をクライアントに 返 すというも のである.ますサーバとクライアントは 同 一 PC 上 にある 場 合 (サーバは Local host として)で 動 作 確 認 を 行 った.ネットワーク 上 のコンピュータをサーバとし て 実 行 する 場 合 は,クライアントプログラムの 中 の call.settargetendpointaddress("http:// サ ー バ の IP ア ド レ ス:8080/axis/services/SotuService2"); この 部 分 を 変 えれば 良 い.サーバ 上 のデータベーステーブル(reg)とクライアント 上 のデータベーステーブル(oroshi)を 図 6,7 に 示 す 図 6:サーバの DB ファイル 図 7:クライアントの DB ファイル 11

まず 上 の Data.java, サーバプログラム SotuService2.java, クライアントプログ ラム SotuClient2.java をコンパイルする. コマンド: >javac Data.java >javac SotuService2.java >javac SotuClient2.java そして 出 来 上 がった Data.class と SotuService2.class をコピーし, C: ProgramFiles ApacheSoftwareFoundation Tomcat4.1 webapps axis WEB-INF classes のフォルダに 格 納 する. 次 に,deploy.wsdd というファイルを 作 成 する(Axis サーバに Web サービスを 配 備 するためのファイルである) コマンド: >java org.apache.axis.client.adminclient deploy.wsdd deploy.wsdd の 内 容 を 下 記 にしめす. <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="sotuservice2" provider="java:rpc"> <parameter name="classname" value="sotuservice2" /> <parameter name="allowedmethods" value="gettempmaker" /> <beanmapping xmlns:ns="urn:data-types" languagespecifictype="java:data" qname="ns:sotuservice2"/> </service> </deployment> ここまで 実 行 した 後, 実 際 に Web サービスが 登 録 されているかを 確 認 する. 確 認 方 法 は 以 下 の URL をブラウザに 入 力 する. http://localhost:8080/axis/index.html そして, 図 8 と 図 9 の 画 面 が 表 示 されていれば, 正 常 に 登 録 されていることが 分 かる. 12

図 8:Axis 確 認 画 面 図 9:Axis サービス 確 認 画 面 13

Web サービスの 登 録 は 完 全 であるので, 次 はその Web サービスを 実 行 するための クライアントプログラムを 確 認 する. コマンド: >java SotuClient2 Printer 実 行 結 果 商 品 名 :Printer 商 品 コード:568 取 り 扱 いメーカ:Canon サービスを 削 除 したい 場 合 は undeploy.wsdd を 実 行 すれば 良 い コマンド: >java org.apache.axis.client.adminclient undeploy.wsdd undeploy.wsdd ファイルの 内 容 を 下 記 に 示 す. <undeployment xmlns ="http://xml.apache.org/axis/wsdd/"> <service name ="SotuService2" /> </undeployment> 3.2 REST 型 Web サービス 3.2.1 REST 型 とは 何 でしょう?[3] Web2.0 的 なサービスとして 注 目 されているのが,REST 型 の Web サービスである.デ ータを 複 数 の REST 型 Web サービスから XML で 受 け 取 り,それを 加 工 して 利 用 する 身 近 な 例 としては,RSS リーダーがあげられる.RSS 広 告 も,Web サービスの 仕 組 みを 使 って 配 信 されていることになる.ま た Java Script を 使 って 呼 び 出 す Google Maps などの 地 図 情 報 サービスも,REST 型 Web サービスの 一 種 である 3.2.2 必 要 なソフトウェアとその 設 定 について REST 型 Web サービスを 開 発 するためのフレームワークとして Restlet-1.0 があり,そのフ レームワークは Java で 作 成 されているので,プログラム 開 発 には Jdk1.5.0_15 が 必 要 である. Restlet を 展 開 したフォルダー 状 態 を 図 10 に 示 す.この 全 ての jar ファイルを 環 境 変 数 CLASSPATH に 設 定 する. 14

図 10:Restlet 解 凍 した 画 面 C: Program Files Noelios Restlet-1.0 lib にjar ファイルがある 環 境 設 定 変 数 RESTLET_HOME C: Program Files Noelios Restlet-1.0 javax.mail_1.4 などのフォルダー 内 にある 全 ての jar ファイルを 下 記 のようにコピーしてそ れらをクラスパス 指 定 に 追 加 した. 但 し,servlet のみは 2.4 と 2.5 で jar ファイル 名 が 同 じ なのでフォルダー 毎 の 指 定 とした. 15

図 11:ファイルを 追 加 した 後 の 画 面 C: Restlet(07) restrun.bat などのバッチファイルを 図 12 のように 作 成 する. 16

@echo off set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.noelios.restlet.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.noelios.restlet.ext.asyncweb_0.8.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.noelios.restlet.ext.httpclient_3.1.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.noelios.restlet.ext.javamail_1.4.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.noelios.restlet.ext.jdbc_3.0.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.noelios.restlet.ext.jetty_6.1.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.noelios.restlet.ext.net.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.noelios.restlet.ext.servlet_2.4.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.noelios.restlet.ext.simple_3.1.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.restlet.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.restlet.example.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.restlet.ext.fileupload_1.2.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.restlet.ext.freemarker_2.3.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.restlet.ext.json_2.0.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.restlet.ext.spring_2.0.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.restlet.ext.velocity_1.5.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.commons.codec.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.commons.collections.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.commons.dbcp.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.commons.fileupload.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.commons.httpclient.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.commons.io.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.commons.lang.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.commons.logging.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.commons.pool.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.mina.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.apache.velocity.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.json.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib mail.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.safehaus.asyncweb.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.simpleframework.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.slf4j.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.springframework.beans.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.springframework.context.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.springframework.core.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.mortbay.jetty.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.mortbay.jetty.ajp.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.mortbay.jetty.https.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib org.mortbay.jetty.util.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib javax.servlet_2.4 javax.servlet.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib javax.servlet_2.5 javax.servlet.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.db4o.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib com.db4o.nativequery.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib edu.oswego.cs.dl.util.concurrent.jar set CLASSPATH=%CLASSPATH%;%RESTLET_HOME% lib edu.purdue.cs.bloat.jar 図 12:バッチファイルの 内 容 3.2.3 REST 型 Web サービス 実 行 例 沢 山 の 例 を 実 行 してみたが ここでは 一 つの 例 だけを 紹 介 する.この 例 はサーバとクライア ントのやり 取 りであり,POST プロトコルの 実 装 例 である. 17

サーバ 側 のプログラム:PostServer1.java import org.restlet.data.protocol; import org.restlet.data.request; import org.restlet.data.response; import org.restlet.data.form; import org.apache.commons.httpclient.*; public class PostServer1{ public static void main(final String[] args) throws Exception{ // Creating a minimal Restlet returning "Hello World" final Restlet restlet = new Restlet(){ @Override public void handle(request request, Response response){ // リクエストから Form を 取 得 する Form form = request.getentityasform(); // パラメータの 取 得 //Parameter a = form.getfirst( "a" ); //Parameter b = form.getfirst( "b" ); // 直 接 データを 取 得 する 場 合 String a1 = form.getfirstvalue( "a" ); String b1 = form.getfirstvalue( "b" ); // 複 数 のデータを 個 別 に 取 得 する 場 合 // String a2 = form.sublist( "a" ).get(1).getvalue(); // String b2 = form.sublist( "b" ).get(1).getvalue(); //... その 他 の 処 理... System.out.println("a=" + a1); System.out.println("b=" + b1); ; //Create the HTTP server and listen on port 8182 //new Server(Protocol.HTTP, 8182, restlet).start(); Server server = new Server(Protocol.HTTP, 8182, restlet); server.start(); サーバプログラムをコンパイルして 実 行 する コマンド: >javac PostServer1.java 18

図 13:サーバのプログラムの 実 行 画 面 クライアント 側 のプログラム PostClient1.java import org.restlet.restlet; import org.restlet.client; import org.restlet.server; import org.restlet.data.mediatype; import org.restlet.data.protocol; import org.restlet.data.request; import org.restlet.data.response; import org.restlet.data.form; import org.restlet.resource.representation; import org.apache.commons.httpclient.*; import java.io.*; public class PostClient1{ public static void main(string[] args){ // 投 稿 するデータ(パラメータ)をフォームに 追 加 Form form = new Form(); form.add( "a", "パラメータ 1" ); form.add( "b", "パラメータ 2" ); // クライアントを 準 備 する Client client = new Client( Protocol.HTTP ); String url = "http://localhost:8182/"; Representation rep = form.getwebrepresentation(); // 文 字 コードを 指 定 する 場 合 Representation rep = form.getwebrepresentation( new CharacterSet( "Shift_JIS" ) ); // サーバにアクセス Response res = client.post( url, rep ); System.out.println("Client post OK!"); 19

クライアントプログラムをコンパイルして 実 行 する コマンド: >javac PostClient1.java 図 14:クライアント 実 行 画 面 4. スクリプト 言 語 について[4] スクリプト 言 語 とは 簡 単 なプログラム 言 語 であり,Web アプリケーションやツールの 動 作 内 容 を 簡 単 に 操 作 するための 言 語 である. 特 に Web ページに 良 く 使 われている.スクリプト 言 語 で 作 成 したプログラムはスクリプトと 呼 ばれる. 代 表 的 なものは PHP,JavaScript,Perl な どである. 次 に PHP 言 語 と JavaScript 言 語 について 説 明 する. 4.1 PHP 言 語 (PHP : Hypertext Preprocessor)[5] PHP 言 語 はスクリプト 言 語 の 一 つであり,Web アプリケーション スクリプトとも 呼 ばれ る.サーバプログラムに 良 く 使 われている.HTML(HyperText Markup Language)ソース コード 内 に PHP タグの 中 に PHP プログラムを 記 入 することができる.しかし,PHP プログ ラムを 実 行 するためには,Apache などの HTTP サーバが 必 要 である. 例 えば:TomCat や XAMMP などをインストールして,HTTP サーバを 構 築 すれば PHP プログラムを 実 行 できる. 4.2 JavaScript 言 語 JavaScript 言 語 はスクリプト 言 語 であり,リッチクライアント Web アプリケーションの 構 築 によく 使 われている.HTML ソースコードの script タグ 内 に 埋 め 込 めば Web ページの 動 作 を 操 作 することができて,HTML の 内 容 や Web アプリケーションなど 自 動 的 に 更 新 すること もできる.JavaScript プログラムの 実 行 は 簡 単 であり,Web ブラウザに JavaScript を 有 効 に 設 定 すれば JavaScript プログラムが 実 行 できる. 20

5. My Room Web System について 5.1 My Room Web System の 研 究 目 的 現 在, 日 常 的 にインターネットを 利 用 していて, 以 下 の 点 について 不 満 を 感 じた.それを 改 善 し, 今 後 の 研 究 開 発 をサポートする 効 率 的 でかつ 利 用 しやすい 検 索 システムを 開 発 したいと 強 く 感 じたのが 研 究 の 動 機 である. 必 要 な 情 報 を 検 索 抽 出 するために, 複 数 のサイト 毎 に 別 々の 検 索 ウィンドウを 起 動 し, 個 別 に 検 索 キーワードを 入 力 なければならず, 手 間 がかかる. その 問 題 を 解 決 するために,1ヶ 所 の 検 索 キーワード 入 力 で 同 時 に 複 数 のサイトにアクセス 可 能 にし, 効 率 良 く 必 要 情 報 を 入 手 可 能 にするシステムを 既 存 の Web サービスを 組 み 合 わせて 開 発 することと 画 面 構 成 にも 複 数 のサービスを 同 時 に 利 用 できるように 目 的 とする.あたかも, 自 分 の 室 にいるように, 必 要 なものが 必 要 なときにいつでも 手 に 取 って 使 えるような 感 覚 で 利 用 できる Web 検 索 サービスを 開 発 することが 目 的 である.それを 実 現 するシステムなので My room システムと 命 名 した. 5.2 システム 構 成 と 機 能 本 システムは, 次 の 3 機 能 1 検 索 機 能,2 動 画 検 索,3 機 能 マップ 表 示 機 能 をもち, 各 々をフレームに 分 けて 構 成 した. これらの 3 機 能 は 各 企 業 から 提 供 されている REST 型 Web サービス API をマッシュアップし た 開 発 した.マッシュアップしたサービスを 表 2に 示 す. 企 業 Google YouTube 表 2:サービス 一 覧 サービス Web, News, Blog, Book, Image, Local, Patent, PDF, Map 動 画 検 索 Livedoor(Weather Hacks) 天 気 情 報 検 索 Amazon Yahoo Amazon サービス 内 のキーワード 検 索 Yahoo サービス 内 のキーワード 検 索 また,システムの 実 行 画 面 を 図 15 に 示 す. 21

境 界 線 図 15:システム 全 体 の 実 行 画 面 My Room Web System は3つのフレームに 分 かれている.そうして, 黒 い 境 界 線 は 移 動 で きる. 本 システムは3つのフレームに 分 かれたことと 境 界 線 が 移 動 できることの 理 由 は 同 時 に 複 数 サービスを 利 用 できるようにしたいからだ. 例 えば: 右 側 の 上 のフレーム Youtube 動 画 検 索 を 聞 きたい 音 楽 検 索 してから 音 楽 を 聴 きなが ら 左 側 のフレームをサイト 検 索 などを 利 用 することができる. 次 は Youtube 動 画 検 索 の 音 楽 だけ 聴 きながら, 左 側 のフレームをローカル 検 索 などを 利 用 して,それでマップも 見 たいとき に 横 の 境 界 線 を 上 に 移 動 すればマップが 見 やすくなる.なので, 同 時 に 複 数 サービスを 利 用 で きるということである. 5.3 My Room Web System のプログラムについて My Room Web System プログラム 開 発 を 始 めたときは PHP 言 語 で 開 発 していたが, 途 中 で 全 部 を JavaScript に 変 更 した.JavaScript に 変 更 した 理 由 を 以 下 に 示 す. JavaScript はリッチクライアント Web アプリケーションの 構 築 によく 使 われており,Web ページが 動 的 に 更 新 できるためである. プログラム 実 行 が 簡 単 である. Google API が 提 供 している JavaScript のオブジェクトなど, 参 考 にできるサンプルが 多 くある. Java 言 語 による 開 発 にフレンドリであり,JavaScript と Java は 似 ている.しかし, 実 際 には 関 係 がなく, 別 のものである 本 システムは,2つのスタイルで Web サービスをマッシュアップした.そのスタイルを 下 記 で 説 明 する. 22

1 一 つ 目 はリクエスト URL と 指 定 パラメータ 一 緒 にサーバへ 送 り,サーバから 返 ってきた レスポンスは JSON(JavaScript Object Notation) 形 式 と XML(Extensible Markup Language) 形 式 で 返 ってきたので,それらをプログラムで 解 析 してマッシュアップする スタイル. 2 二 つ 目 は Google API が 提 供 してる JavaScript のクラスリファレンスを 利 用 して 簡 単 にマ ッシュアップができるスタイル 簡 単 にいうと Google API が 提 供 しているライブラリ コンストラクタ オブジェクト メッゾドなどを 利 用 してマッシュアップするスタイルと いってもいいでしょう 以 下 でマッシュアップした Web サービスについて 具 体 的 に 説 明 する. 5.3.1 天 気 情 報 サービス[6] Weather Hacks-Livedoor が 提 供 している 天 気 情 報 Web サービスである. 現 在 日 本 全 国 142 カ 所 の 今 日 明 日 あさっての 天 気 予 報 予 想 気 温 と 都 道 府 県 の 天 気 概 況 情 報 を 提 供 して います.サーバから 帰 ってきたレスポンスは XML 形 式 である.XML 形 式 をそのままで 利 用 しても 構 わないが,ちょっと 見 にくいのでプログラムで XML 形 式 を 解 析 して 見 やすい 出 力 結 果 を 整 理 する 必 要 がある. 見 やすい 結 果 を 出 力 するために, 私 は CSS(Cascading Style Sheets) ファイルと 一 緒 にプログラムに 組 み 合 わせした. 天 気 情 報 プログラムを 説 明 する 前 にちょっとサーバとクライアントはどの 風 にデータをやり 取 りするかを 次 の 図 で 示 す. リクエス Http プロトコル クライアント レスポンス サーバ 図 16:クライアントとサーバのデータ 交 換 マッシュアップした 天 気 情 報 プログラムについて 全 部 のプログラムを 説 明 するのは 大 変 な んで, 時 間 もかかりすぎだと 思 う HTML ソース 内 に Script の 中 の 重 要 な 部 分 だけ 説 明 する. まず,クライアントがリクエスト URL と 指 定 パラメータを 一 緒 にサーバへ 送 る.リクエス ト URL と 指 定 パラメータは 以 下 の 図 で 示 す. 23

http://weather.livedoor.com/forecast/webservice/r est/v1?city=92&day=today 一 つ 目 のパラメータ 二 つ 目 のパラメータ 図 17:リクエスト URL とパラメータ このURL に 対 するサーバからのレスポンスは XML 形 式 であるが,それを JSON 形 式 に 変 換 する.JSON 形 式 に 変 換 する 理 由 は,JSON 形 式 に 変 えた 方 が 出 力 しやすくなるからである. JSON に 変 換 してから,そのままの 結 果 で 利 用 できるといってもいいでしょう. 以 下 の 手 順 で 示 す. var proxy = 'http://app.drk7.jp/xml2json/'; XML を JSON に 変 換 する 図 18:XML を JSON に 変 換 する PROXY サーバ XML 形 式 レスポンスを JSON 形 式 に 変 換 を 行 う var url = proxy + 'var=' + name + '&url=' + escape('http://weather.livedoor.com/forecast/webservice/rest/v1?city=' + city + '&day=' + day); 図 19:XML を JSON に 変 換 する 変 換 した 後 の JSON 形 式 結 果 を url オブジェクトに 入 れる. 以 下 の 図 で 示 すのは XML 形 式 である. 24

<?xml version="1.0" encoding="utf-8"?> <lwws version="livedoor Weather Web Service 1.0"> <author>livedoor Weather Team.</author> <location area=" 中 国 " pref=" 島 根 県 " city=" 松 江 " /> <title> 島 根 県 松 江 - 今 日 の 天 気 </title> <link>http://weather.livedoor.com/area/32/92.html?v=1</link> <forecastday>today</forecastday> <day>saturday</day> <forecastdate>sat, 31 Jan 2009 00:00:00 +0900</forecastdate> <publictime>fri, 30 Jan 2009 17:00:00 +0900</publictime> <telop> 雨 </telop> <description> 島 根 県 では 31 日 にかけ 強 風 となり 海 岸 や 海 上 ではしける 見 込 みで す 強 風 高 波 に 注 意 して 下 さい また 松 江 地 区 雲 南 地 区 大 田 邑 智 地 区 益 田 地 区 の 山 地 の 積...</description> <image> <title> 雨 </title> <link>http://weather.livedoor.com/area/32/92.html?v=1</link> <url>http://image.weather.livedoor.com/img/icon/15.gif</url> <width>50</width> <height>31</height> </image> <temperature> <max> <celsius>8</celsius> <fahrenheit>46.4</fahrenheit> </max> <min> <celsius>6</celsius> <fahrenheit>42.8</fahrenheit> </min> </temperature> 図 20:XML 形 式 実 際 は JSON 形 式 を 利 用 するためにもう 一 つの 手 順 がある.Script の 上 に prototype.js とい うファイルをインポートした.そのファイルの 内 容 は 長 すぎので data というオブジェクト 部 分 だけ 示 す. 実 際 の prototype.js の 内 容 は 付 録 で 示 す. 25

var data = elements.inject({, function(result, element) { if (!element.disabled && element.name) { key = element.name; value = $(element).getvalue(); if (value!= null && element.type!= 'file' && (element.type!= 'submit' (!submitted && submit!== false && (!submit key == submit) && (submitted = true)))) { if (key in result) { // a key is already present; construct an array of values if (!Object.isArray(result[key])) result[key] = [result[key]]; result[key].push(value); else result[key] = value; return result; ); 図 21:data オブジェクト 次 はdata オブジェクトに 結 果 を 代 入 する( 図 22). var aream = data.location.pref; var areas = data.location.city; var telops = data.telop; var discs = data.description; var copy = data.copyright.title; 図 22: 結 果 を 各 オブジェクトに 代 入 する 最 後 に HTML ファイルに 登 録 して Web ページに 表 示 する. 見 やすい 結 果 を 表 示 するために, 私 は css.css というファイルをインポートして 利 用 した.css.css と 実 際 の 天 気 情 報 検 索 プログ ラムの 内 容 は 付 録 に 示 す. 26

図 23: 天 気 情 報 の 実 行 画 面 5.3.2 Google サービス[7] Google AJAX Search API は,Google Search をウェブ ページやその 他 のウェブ アプリ ケーションに 埋 め 込 むことを 可 能 にする Javascript ライブラリである.JSON エンコー ドされた 結 果 を 返 すサービスである. Google AJAX Search API を 利 用 するために,まず Google API の ID を 取 得 する.ID を 取 得 してから,Google AJAX Search API を 利 用 できる.HTML ソースの Script の 重 要 な 部 分 だけ 説 明 して 行 く. Google AJAX Search API を 利 用 するための 宣 言 部 分 である. http://www.google.com/jsapi?key=abqiaaaamqzn89tks4mktn... Google API の ID 図 24:Google API の 利 用 するための 宣 言 次 はGoogle AJAX Search API が 提 供 しているサービスのバージョンは 今 Ver1.0 を 提 供 している.サービスバージョン 1.0 を 利 用 する 宣 言 も 必 要 である. 以 下 の 図 25 で 示 す. 27

google.load('search', '1.0'); バージョン 1.0 図 25:Google API サービスバージョン 次 は,tabbed オブジェクトを 作 成 し,GSearchControl() 検 索 コントロールを 登 録 する. var tabbed = new GSearchControl(); 図 26:GSearchControl() 登 録 次 は,サービスを 登 録 する. 以 下 の 図 で 示 すのは 一 つ 目 のサービスの 登 録 方 法 である. サイト 検 索 オブジェクト tabbed.addsearcher(new GwebSearch()); tabbed.addsearcher(new GnewsSearch()); ニュース 検 索 オブジェクト 図 27:サービス 登 録 方 法 次 Amazon と Yahoo Web サービスを 登 録 する. 以 上 の 登 録 方 法 と 違 って, 以 下 の 図 28 の ように 複 雑 になる. 二 つ 目 の 登 録 方 法 である. 一 つの Amazon Web サービスの 登 録 例 について 説 明 する.Yahoo Web サービスも 同 様 である. 28

amaz オブジェクトを 生 成 する var amaz = new GwebSearch() amaz.setuserdefinedlabel("amazon JP"); amaz.setuserdefinedclasssuffix("sitesearch"); amaz.setsiterestriction("amazon.co.jp"); tabbed.addsearcher(amaz); Amazon のドメイン 名 図 28:Amazon Web サービス 登 録 方 法 次 はPDF フィル 検 索 サービスを 登 録 する. 以 下 の 図 29 に 示 す. pdf オブジェクトを 生 成 する var pdf = new GwebSearch(); pdf.setuserdefinedlabel("pdf ファイル"); pdf.setqueryaddition("filetype:pdf"); tabbed.addsearcher(pdf); PDF ファイル 検 索 を 指 定 する 図 29:PDF ファイル 検 索 登 録 方 法 次 は,Web ページに 検 索 結 果 を 表 示 するモードは 2 つのモードがある. 検 索 結 果 をタブモ ードまたはリニアモードで 描 画 するよう 検 索 コントロールに 指 示 することができる. 本 シ ステムではタブモードで 指 定 した. var drawoptions = new google.search.drawoptions(); drawoptions.setdrawmode(google.search.searchcontrol.dr AW_MODE_TABBED); タブモード 図 30: 検 索 結 果 表 示 モード 29

最 後 の Script に 定 義 した 関 数 をイベントハンドラとして 登 録 する. google.setonloadcallback(onload, true); 図 31:イベントハンドラ 登 録 図 32: 本 研 究 メインの 実 行 画 面 本 システムの 全 てのソースコードは 付 録 にまとめて 示 す. 30

6. おわりに 6.1 まとめ 本 システムは 全 部 で 4 企 業 から 提 供 されている 14 種 類 の Web サービスをマッシュアップし た. 全 て JavaScript と CSS で 開 発 した. 本 システムに PHP 言 語 で 開 発 してみたが, 途 中 で JavaScript に 変 えていても PHP の 勉 強 は 将 来 に 役 に 立 ち, 無 駄 の 時 間 ではなかったと 思 う. 今 まで My Room Web System を 開 発 してきたが, 完 全 に 完 璧 ではないと 思 う. 改 良 点 はた くさんあると 思 う. 来 年,もし 続 けたい 後 輩 が 居 たら 最 後 の 今 後 の 課 題 に 対 して 完 璧 して 欲 し いなと 思 っている. 私 でも 大 学 でこの My room Web System を 発 展 させて 行 きたいと 思 う. いつか 完 璧 にしてインターネット 上 で 公 開 したいと 思 っている. 6.2 システム 評 価 10 人 に 本 システムを 利 用 してもらい,3つの 項 目 について 評 価 してもらった. 以 下 の 表 で 示 す. 表 3:システム 評 価 アンケート 10 人 の 平 均 点 キーワード 入 力 が 1 回 で, 複 数 の 検 索 サービスが 利 用 できるので 便 利 で 効 率 的 であるか? 4.5 このシステムがインターネット 上 にあれば 貴 方 は 使 いたいと 思 う? 4.2 このシステムがインターネット 上 に 実 現 すれば 役 に 立 つと 思 う? 3.4 一 つの 質 問 は 5 点 満 点 である. この10 人 の 平 均 点 からみると, 良 い 評 価 をもらえたのがわかった. 凄 く 嬉 しかった コメ ントと 感 想 も 貰 えた. 以 下 の 通 りで 示 す. 2つのマップを 互 いに 対 応 してほしい 天 気 情 報 の 選 択 リストをもっと 選 択 しやすい 本 システムにもっと 機 能 や 新 しいサービスを 追 加 してほしい など コメントと 感 想 に 関 しては 今 後 に 課 題 にさせたいと 思 う.アンケートはシンプルだし, 取 り 方 もちょっと 悪 かったかなと 思 った.もう 一 つのアンケートに 気 づいたのは 本 システムに 関 す る 良 くない を 答 えた 人 にもうちょっとどうしたらいいか アドバイスなどを 書 いてもらい たかった. 31

6.3 中 間 期 末 卒 研 発 表 について 中 間 の 卒 研 発 表 では 特 に 何 もなかった. 質 問 もされなかった.よかったのか 悪 かったか, 自 分 でも 分 からなかった. 期 末 の 卒 研 発 表 では4つ 質 問 された.それらの 質 問 に 対 する 回 答 を 以 下 に 示 す. 質 問 1:マッシュアップして 新 しいサービスを 作 ったわけではないのか? 既 存 の Web サービスをマッシュアップして 新 規 のシステムを 開 発 した. 新 たな Web サービスを 作 ったのではない. 質 問 2: 拡 張 性 は? ある 質 問 3: 一 つ 一 つが 独 立 しているか? 連 動 は 考 えていたか? 一 つ 一 つが 独 立 している. 連 動 性 については 検 討 したが, 設 計 実 装 するには 時 間 が 不 足 した. 連 動 性 は 今 後 の 課 題 にしたい. 質 問 4: 連 動 はできるのか? 多 分 できると 思 う 質 問 3と 質 問 4は 凄 くいい 質 問 だったと 思 った. 今 後 の 課 題 にしたくて My Room Web System の 開 発 に 役 に 立 つと 思 う. 6.4 今 後 の 課 題 今 後 の 課 題 としては 期 末 に 質 問 された 内 容 とアンケートのコメントと 私 が 追 加 したい 項 目 を 今 後 の 課 題 にしたいと 思 う. 以 下 で 示 す. 一 つのキーワード 全 てのフレーム,サービスを 連 動 したいと 思 う. YouTube 動 画 検 索 で, 選 択 した 動 画 を 同 じフレームの 空 いているスペース 部 分 に 動 画 を 表 示 する. 本 システムに 新 たなサービスまたは, 社 会 に 役 に 立 つサービスを 検 討 し,できたら 追 加 したいと 思 う. 以 上 の 課 題 を 達 成 するために,プログラム 言 語 をもっと 勉 強 する 必 要 があると 考 える. 参 考 文 献 [1] 加 藤 智 明, 永 島 穂 波 著 :Web2.0 最 前 線 エクスメディア (2006/08). [2] http://www.utj.co.jp/xml/dev/soap/soap1_1.html [3] http://www.webdbm.jp/2008/01/1restweb_4650.html [4] http://ja.wikipedia.org/wiki/スクリプト 言 語.html [5] http://e-words.jp/w/php.html [6] 天 気 Web サービスのリクエストパラメータ, レスポンスフィールドなど http://weather.livedoor.com/weather_hacks/webservice.html [7] Google のクラスリファレンス http://code.google.com/intl/ja/apis/ajaxsearch/documentation/reference.html 32

33