創造的ウェブサービス構築基礎論
ニフティ株式会社寄付講座
第二回 (2009年10月 1日)
Martin J. Dürst, 松本
章代
データとサービス
http://www.sw.it.aoyama.ac.jp/2009/Mashup/lecture2.html
© 2009 Martin J.
Dürst 青山学院大学
今日の目的
今日の目次
- データかサービスか
- データやサービスの分野
- データやサービスの種類
- 開発環境の準備
前回からの準備
- ノートパソコンを持参
- ウェブにたくさん面白いデータがあるサイトを十個ぐらい見つける
開発環境: ハードウェア
- 自分の頭
- 紙とペン
- (O-325 のパソコン)
- 自分のパソコン
開発環境: ソフトウェア
データとサービスの概要
- データは「すでに置いてあるもの」で、サービスは「新たに計算される」で区別
- データの典型例: flickr
など
- サービスの典型例: Google
検索の計算機能
- データとサービスの間のものが多い
- ウェブにはデータとサービスの区別はない
- マッシュアップの関係ではウェブサービスをデータも含めて使用
ウェブ上のデータ交換の歴史
- ウェブの最初の応用は物理実験のデータの交換
- 長い間、ウェブはデータを人間に公開するために使われたが、
出来るだけ機械に再利用されないようにされた
- 最近考え方が変わってきた
データやサービスの分野
- 地図
- 写真・画像・ビデオ
- ブックマーク、SNS 系
- 言語系
- 書籍、音楽など
- 医療
- 旅行、ニュース、スポーツ、天気
- などなど
データやサービスの種類
- ウェブページ ((X)HTML)
- フィード (RSS/Atom)
- XML, JSON 等
- RDF
ウェブページの観察
- ウェブページからのデータ抽出 (screen scraping) が困難
- 構造が複雑で、変更が多い
- 最終手段としてたまに必要
- ウェブページの観察が大事
- データの発見 (公開の場合、ウェブページが先; Web
API に説明されてない部分がありうる)
- サイトの主な概念の発見
- URI (ウェブアドレス) の観察が大事
URI の大切さ
- ウェブページの URI
の構造でサイトの構造やデータの構造が見えてくる
- ウェブサービスの多くでは URI
によって問い合わせが行われている
例: trynt BMI
計算
- URI と遊ぶと新しい機能や設定の発見が可能
URI の構造
例:
http://www.example.org/api-path/v1/?p1=abc&p2=def
http
: Scheme, http 意外は普通使わない
www.example.org
: ドメイン名
/api-path/v1/
: API へのパス
?
: パスと問い合わせ部分の区切り
&
: 引数と引数の間の区切り ((X)HTML で
&
と記述)
=
: 引数名と引数の値の間の区切り
p1
, p2
: 引数名
(同じ引数名を二回以上使うことがある)
abc
, def
:
引数の値
URI: 特殊文字の扱い
- 特殊文字:
- US-ASCII 以外の文字 (IRI の場合不要)
- 区切り文字を区切り以外の役割に使いたい文字
- その他使えない文字 (例:
<
,
>
)
- 扱い (変換ツール):
- 文字コードを UTF-8 に
- バイト毎に
%hh
に変換 (hh は十六進数)
- 例:
- 青山 →
%E9%9D%92%E5%B1%B1
- Dürst →
D%C3%BCrst
- AT&T →
AT%26T
ウェブページの観察の例
flickr
フィード
RDF
- Semantic Web のデータ形式
- 有効グラフで「意味」を表現
- 特にクライアント側でサポートがまだ少ない
- 例: Open Directory
Web API の発見
- ウェブサイトのデータと構造、URI の構造の観察
- 「開発者のため」などの情報を探す
- Web API のリスト (例: programmableweb)
演習 1: ftp 用アカウントの登録
授業後塩澤君の指示に従って O-527 にて
演習 2: Nifty のウェブサービス
ニフティ株式会社が提供するウェブサービスを探し、一つのサービスについて簡単
(10行ほど、URI などの項目と感想;
出来るだけ他人と違うサービスを選択) にまとめ、.txt
(UTF-8) としてMoodle
にアップロード
演習 3
前回から集めたサイトでデータの構造、URI の構造、Web
API の有無などを調査してください。