創造的ウェブサービス構築基礎論
ニフティ株式会社寄付講座
第二回 (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 の有無などを調査してください。