web api入門
TRANSCRIPT
Web API入門
高久雅生(筑波大学図書館情報メディア系)
2015年6月6日(土)大図研オープンカレッジ
1
本日のお品書き
bull (自己紹介)
bull Web APIとは何か
Web APIの事例
bull Web APIの応用マッシュアップ
マッシュアップ事例
bull Web APIの課題
2
はじめに自己紹介
bull 高久雅生(たかく まさお)筑波大学図書館情報メディア系
bull 前職物質材料研究機構エンジニアbull 前々職国立情報学研究所ポスドク研究員
bull 研究分野情報検索電子図書館情報探索行動学術情報
流通専門図書館
bull その他情報知識学会理事日本図書館情報学会研究委員
Code4Lib JAPANコアメンバーsaveMLAK技術チームなど
3
宣伝Code4Lib JAPAN
bull 北米を中心とするシステムライブラリアンたちのコミュニティCode4Libの日本版「Code4Lib JAPAN」
bull 年に一回カンファレンスを実施ndash 2013南三陸町
ndash 2014鯖江市
ndash 2015東京
bull 日時9月6日(土)~7日(日)
bull 会場リクルート本社
4
参考「Web APIの過去現在未来」
5
高久雅生 Web APIの過去現在未来(特集 Web API活用術)情報の科学と技術 2014 Vol 64 No 5 p162-169
WEB API とはWhat is Web API
6
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
bull 具体的には
ウェブを介して「要求(リクエスト)」を送ってサーバが要求された処理をして「結果(レスポンス)」を送り返す仕組み
リクエストはRESTレスポンスはXMLやJSONであることが多い
7
Web APIとは
Web APIとは(概念図)
8
Webサーバ
Internet
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Internet
bull どのような形式の「要求(リクエスト)」か
bull どのような形式の「結果(レスポンス)」かを公開すること
そうすることで利用方法がわかるようになる
9
Web APIの公開とは
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Webとは
10
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
本日のお品書き
bull (自己紹介)
bull Web APIとは何か
Web APIの事例
bull Web APIの応用マッシュアップ
マッシュアップ事例
bull Web APIの課題
2
はじめに自己紹介
bull 高久雅生(たかく まさお)筑波大学図書館情報メディア系
bull 前職物質材料研究機構エンジニアbull 前々職国立情報学研究所ポスドク研究員
bull 研究分野情報検索電子図書館情報探索行動学術情報
流通専門図書館
bull その他情報知識学会理事日本図書館情報学会研究委員
Code4Lib JAPANコアメンバーsaveMLAK技術チームなど
3
宣伝Code4Lib JAPAN
bull 北米を中心とするシステムライブラリアンたちのコミュニティCode4Libの日本版「Code4Lib JAPAN」
bull 年に一回カンファレンスを実施ndash 2013南三陸町
ndash 2014鯖江市
ndash 2015東京
bull 日時9月6日(土)~7日(日)
bull 会場リクルート本社
4
参考「Web APIの過去現在未来」
5
高久雅生 Web APIの過去現在未来(特集 Web API活用術)情報の科学と技術 2014 Vol 64 No 5 p162-169
WEB API とはWhat is Web API
6
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
bull 具体的には
ウェブを介して「要求(リクエスト)」を送ってサーバが要求された処理をして「結果(レスポンス)」を送り返す仕組み
リクエストはRESTレスポンスはXMLやJSONであることが多い
7
Web APIとは
Web APIとは(概念図)
8
Webサーバ
Internet
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Internet
bull どのような形式の「要求(リクエスト)」か
bull どのような形式の「結果(レスポンス)」かを公開すること
そうすることで利用方法がわかるようになる
9
Web APIの公開とは
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Webとは
10
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
はじめに自己紹介
bull 高久雅生(たかく まさお)筑波大学図書館情報メディア系
bull 前職物質材料研究機構エンジニアbull 前々職国立情報学研究所ポスドク研究員
bull 研究分野情報検索電子図書館情報探索行動学術情報
流通専門図書館
bull その他情報知識学会理事日本図書館情報学会研究委員
Code4Lib JAPANコアメンバーsaveMLAK技術チームなど
3
宣伝Code4Lib JAPAN
bull 北米を中心とするシステムライブラリアンたちのコミュニティCode4Libの日本版「Code4Lib JAPAN」
bull 年に一回カンファレンスを実施ndash 2013南三陸町
ndash 2014鯖江市
ndash 2015東京
bull 日時9月6日(土)~7日(日)
bull 会場リクルート本社
4
参考「Web APIの過去現在未来」
5
高久雅生 Web APIの過去現在未来(特集 Web API活用術)情報の科学と技術 2014 Vol 64 No 5 p162-169
WEB API とはWhat is Web API
6
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
bull 具体的には
ウェブを介して「要求(リクエスト)」を送ってサーバが要求された処理をして「結果(レスポンス)」を送り返す仕組み
リクエストはRESTレスポンスはXMLやJSONであることが多い
7
Web APIとは
Web APIとは(概念図)
8
Webサーバ
Internet
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Internet
bull どのような形式の「要求(リクエスト)」か
bull どのような形式の「結果(レスポンス)」かを公開すること
そうすることで利用方法がわかるようになる
9
Web APIの公開とは
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Webとは
10
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
宣伝Code4Lib JAPAN
bull 北米を中心とするシステムライブラリアンたちのコミュニティCode4Libの日本版「Code4Lib JAPAN」
bull 年に一回カンファレンスを実施ndash 2013南三陸町
ndash 2014鯖江市
ndash 2015東京
bull 日時9月6日(土)~7日(日)
bull 会場リクルート本社
4
参考「Web APIの過去現在未来」
5
高久雅生 Web APIの過去現在未来(特集 Web API活用術)情報の科学と技術 2014 Vol 64 No 5 p162-169
WEB API とはWhat is Web API
6
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
bull 具体的には
ウェブを介して「要求(リクエスト)」を送ってサーバが要求された処理をして「結果(レスポンス)」を送り返す仕組み
リクエストはRESTレスポンスはXMLやJSONであることが多い
7
Web APIとは
Web APIとは(概念図)
8
Webサーバ
Internet
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Internet
bull どのような形式の「要求(リクエスト)」か
bull どのような形式の「結果(レスポンス)」かを公開すること
そうすることで利用方法がわかるようになる
9
Web APIの公開とは
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Webとは
10
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
参考「Web APIの過去現在未来」
5
高久雅生 Web APIの過去現在未来(特集 Web API活用術)情報の科学と技術 2014 Vol 64 No 5 p162-169
WEB API とはWhat is Web API
6
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
bull 具体的には
ウェブを介して「要求(リクエスト)」を送ってサーバが要求された処理をして「結果(レスポンス)」を送り返す仕組み
リクエストはRESTレスポンスはXMLやJSONであることが多い
7
Web APIとは
Web APIとは(概念図)
8
Webサーバ
Internet
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Internet
bull どのような形式の「要求(リクエスト)」か
bull どのような形式の「結果(レスポンス)」かを公開すること
そうすることで利用方法がわかるようになる
9
Web APIの公開とは
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Webとは
10
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
WEB API とはWhat is Web API
6
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
bull 具体的には
ウェブを介して「要求(リクエスト)」を送ってサーバが要求された処理をして「結果(レスポンス)」を送り返す仕組み
リクエストはRESTレスポンスはXMLやJSONであることが多い
7
Web APIとは
Web APIとは(概念図)
8
Webサーバ
Internet
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Internet
bull どのような形式の「要求(リクエスト)」か
bull どのような形式の「結果(レスポンス)」かを公開すること
そうすることで利用方法がわかるようになる
9
Web APIの公開とは
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Webとは
10
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
bull 具体的には
ウェブを介して「要求(リクエスト)」を送ってサーバが要求された処理をして「結果(レスポンス)」を送り返す仕組み
リクエストはRESTレスポンスはXMLやJSONであることが多い
7
Web APIとは
Web APIとは(概念図)
8
Webサーバ
Internet
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Internet
bull どのような形式の「要求(リクエスト)」か
bull どのような形式の「結果(レスポンス)」かを公開すること
そうすることで利用方法がわかるようになる
9
Web APIの公開とは
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Webとは
10
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIとは(概念図)
8
Webサーバ
Internet
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Internet
bull どのような形式の「要求(リクエスト)」か
bull どのような形式の「結果(レスポンス)」かを公開すること
そうすることで利用方法がわかるようになる
9
Web APIの公開とは
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Webとは
10
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Internet
bull どのような形式の「要求(リクエスト)」か
bull どのような形式の「結果(レスポンス)」かを公開すること
そうすることで利用方法がわかるようになる
9
Web APIの公開とは
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
例ある著者が書いた書籍の一覧が欲しい
例検索結果として書籍の詳細リストを
返す
Webとは
10
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Webとは
10
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
World Wide Web
bull WWW (World Wide Web)ワールドワイドウェブ
ダブリュダブリュダブリュ
bull または単に Web (ウェブ) と称する
bull 【web】 (noun)A network of silken thread spun
especially by the larvae of various insects (as a tent caterpillar) and usually serving as a nest or shelter
11httpscommonswikimediaorgwikiFileSpider_web_Belgium_Luc_Viatourjpg
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
ティムバーナーズ=リー(Tim Berners-Lee)
12Knight Foundation (2008) httpwwwflickrcomphotosknightfoundation2467553359
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Webの3要素
bull HTTP URL HTMLの3つの枠組みを用いたWebの実現
bull HTTPレイヤでのデータ転送とドキュメントフォーマット指定
bull URI指定によるリンクを通じたハイパーメディアの実現
13
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Internet
HTTPとは
bull HyperText Transfer Protocol
基本的なWebサーバとのやり取りを行う方式
GET indexhtml HTTP10
14
Webサーバ
リクエストHTTP通信
レスポンスHTTP通信
トップページの情報が欲しい
トップページのHTMLファイルをデータとして返す
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
URLとは
bull URL (Universal Resource Locator)
bull Web上でのアドレスを指し示すアドレス(識別子)として機能する
httpciniiacjpsearchq=web+api
15
サーバのアドレス サーバ内での場所
ページの表示に必要なパラメータパラメータ名qパラメータ値web+api
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
APIとは
bull Application Programming Interface
bull アプリケーションソフトウェアの開発にあたって使われる標準的なモジュール群その利用法
API = 開発環境における標準
典型的には特定のOS環境のソフトウェアは共通する標準APIを用いて開発される
bull Windows
bull Apple iOS
16
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
APIとは (2)
17
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
APIとは (3)
18
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIとは何か
bull Web + API = Web API
bull ウェブ上で他のサービスを呼び出す方式取り決め
標準的なデータやサービスの提供を行う手法
19
クライアントプログラム
Web API提供サーバプログラム
インターネット
データ(XML JSON等)
リクエスト
レスポンス
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIの歴史
bull インターネット普及前にはhellipそもそも同一環境(計算機やOS)同士で通信
する仕組みはある程度必要遠隔のサービスを呼び出す仕掛け
bull ウェブ以前にはRPC(Remote Procedure Call)
オープン環境においても通信コマンドやデータ形式の標準化(分野ごとに)
bull これらの方式を受け継いでWeb上でも行うための手段 SOAP方式
hellip一般的にはさほど普及しなかったhellipはっきり言って面倒くさい
20
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIの歴史 (2)
bull Web API別名 Web Services とも呼ばれるbull 2002年頃から一般的に使われ始める
Amazon Googleなどが代表例
bull きっかけはWeb 20 20052006年頃に爆発的に流行 当時に流行っていて先進的なサービスをまとめた用
語 その技術要素のひとつがAJAXという手法
bull 前提として必要なデータのやり取りの方式=Web API
bull Google Mapsがその代表格ndash つまりGoogle Maps APIが前提となってAJAXを実現させた
21
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
実際のWeb APIのやり取り
22
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
23httpciniiacjpopensearchsearchq=E59BB3E69BB8E9A4A8ampformat=atom
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
2つのやり取りの方式
bull SOAP方式呼び出すパラメータ類をXML形式のデータにまと
めそれを受け渡す方式
W3Cが規格化
企業による初期のWeb API提供形態
bull REST方式呼び出すパラメータ類はURL内のクエリとして発
行しデータ結果のみを受けとる方式
ブラウザからも簡単に呼び出したりテストしたりできるため今ではこちらが主流に
24
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
RESTとはbull Webの基本的なやりとりコンテンツの取得(GET)
更新(POST)といったやりとりをまとめたお約束bull ウェブAPIとの関連では
コンテンツの取得はGETメソッドを使う コンテンツの更新はPOSTメソッドを使うといったブラウザとウェブサーバのやり取りの仕方を指す
bull RESTの範囲を外れる例 データの取得にPOSTを使ったりクッキーを前提とした
ページ遷移を必要とするサービス
bull 要はGETリクエストとパラメータによって必要なデータを取得する仕組み
bull 詳細は以下の書籍を参考のこと 山本陽平 「Webを支える技術」 技術評論社 2010
377p (ISBN 978-4-7741-4204-3)25
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
URLとWeb APIリクエストの関係
bull Web APIにおいてはURLが基本的な単位となってそれに対する「操作」(処理)がやり取りを決める
URLに様々なパラメータを与える
bull 例
httpciniiacjpopensearchsearchq=図書館ampformat=atomampsort=7
26
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
URLとパラメータ
bull Web APIのサービス単位で異なる
bull CiNii Articlesの場合
q=クエリ
format=データ形式
sort=ソート方式
bull 詳細はヘルプを参照hellip
27
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
「CiNii Articles論文検索のOpenSearch」ヘルプより
28httpsupportniiacjpjaciaapia_opensearch
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
WEB APIの事例Examples of Web APIs
29
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIの種類
bull 様々なサービスがWeb APIとして提供
たとえば手元で使ったことがあるものだけでも書籍検索論文検索画像検索地図情報音声認識顔認識などなどhellip
Web APIの紹介サイトProgrammable-Webには600近いカテゴリが用意され13000を超えるWeb APIサービスが紹介されている
bull httpwwwprogrammablewebcomcategory
30
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIの事例紹介
bull CiNii (ArticlesBooks)
bull NDLサーチ
bull カーリル
bull (Google Maps)
bull (Amazon)
31
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
CiNii Articles
bull 国立情報学研究所が提供する日本の論文検索サービス httpciniiacjp
bull 検索OpenSearch httpciniiacjpopensearchsearchq=web
20apiampauthor=Takakuampformat=atom検索条件をパラメータとしてやり取りする検索結果はAtom形式(XML)やJSON形式等を
選択可能
bull 詳細レコードRDF httpciniiacjpnaid110009810692rdf詳細レコードのデータをRDF形式として返す
32
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
CiNii Articles (2)
33
httpciniiacjpopensearchsearchq=web20apiampauthor=Takakuampformat=atom
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
CiNii Articles (3)
34httpciniiacjpnaid110009810692rdf
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
NDLサーチ
bull 国立国会図書館が提供する検索サービス httpissndlgojp
bull 検索OpenSearch SRUSRW httpissndlgojpapiopensearchtitle=we
b20apiampcreator=E9AB98E4B985ampformat=atom
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
bull データ取得系OAI-PMH SRUSRWDCNDL (NDL版Dublin Core (XML))
35
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
NDLサーチ (2)
36
httpissndlgojpapiopensearchtitle=web20apiampcreator=E9AB98E4B985ampformat=atom
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
NDLサーチ (3)
37
httpissndlgojpapisruoperation=searchRetrieveampquery=title=22web20api22amprecordPacking=xmlamprecordSchema=dcndl
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
カーリル
bull カーリル社が提供する図書館横断検索サービス
独自のWeb API
bull 検索所蔵検索
httpapicaliljpcheckisbn=9784889510515ampsystemid=Tokyo_NDL
bull データ形式
JSON形式(独自)
38
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
カーリル (2)
39
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
そのほかのWeb API事例
bull 興味深い事例としてはAmazon Web ServicesやTwitterなどのように主要な商用サービスにおけるWeb APIの展開例がある
bull これらでは自身のサービスをWeb API経由で取得操作できる
Twitterクライアントの操作ツイートの投稿編集リプライなど(BOT)
Amazonにおけるインフラ系ツールをWeb APIから操作サーバインフラの増強ツールの追加
40
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
マッシュアップの事例Examples of Mashups
41
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIの応用例(マッシュアップ)
bull Web APIの典型的な応用例(アプリケーション)
bull マッシュアップとは (Mashup)
複数の機能を組み合わせて可視化したり異なる機能同士を有機的につなげて利用する
Web APIの応用アプリケーションはWebAPI機能をほかの何かと組み合わせて扱うことが多いことから「マッシュアップ」と呼ばれる
42
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
最初期のマッシュアップ
bull HousingMaps (2005年)
Google Maps + Craigslist
43
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
マッシュアップの種類
bull (付加価値サービス)
bull マッシュアップ(Mashup)
サーバサイド型マッシュアップ
Ajax型マッシュアップ
bull クライアントサイド
データ集約型マッシュアップ
bull ハーベスト型
44
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
サーバサイド型マッシュアップ
bull 最も古典的なタイプの応用例
bull 様々な類型がある
ひとつだけでなく複数のサービスを組み合わせる
Ajax型との組み合わせも
45
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
サーバサイド型マッシュアップ(概要図)
46
マッシュアッププログラム
①リクエスト
④レスポンス
インターネット
Webページ(HTML)
Web API提供サーバプログラム
②リクエスト
③レスポンス
データ(XML
JSON等)
ブラウザ
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
ふわっと関連検索
47
httpfuwattocinii
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
ふわっと関連検索での処理の流れ
48
リクエスト
論文
Webページ
テキスト
ふわっと関連検索
本文抽出
特徴語抽出
検索クエリ発行論文データベース(CiNii)類似度計算
検索結果併合
レスポンス
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
論文ったー
49httpstwittercomronbuntter
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
論文ったーの処理の流れ
50
青葉 11時 加古 並んでる 物販 今から 昨日の 完売 朝から 久しぶりに 引い あたり >RT 二度寝 運動会 買いに いい天気 掃除 待機 ゞ 改二 て良かった ありがとー だよー 来週 暑い 方向 天気 到着 晴れて 休日 行ってくる 昨日は 結局 相変わらず地元 着いた た気がする っぽい 羨ましい 今月
buzztter (RSS)
検索クエリ発行論文データベース(CiNii)検索結果
集計
対象論文選定
ツイート投稿
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Ajax型マッシュアップ
bull ブラウザ上で実行されるJavaScriptを主体としたアプリケーション
サーバ側でまとめて実行された結果がかえってくるのではなく個別のWeb APIへのリクエストがひとつずつ実行された分ごとに帰ってくるため見た目の実行時間を早める利点がある
51
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Ajax型マッシュアップ(概要図)
52
マッシュアッププログラム
①リクエスト
②レスポンス
インターネット
WebページHTML
+JavaScript
Web API提供サーバプログラム
④レスポンス
データ(XML
JSON等)
ブラウザ
③リクエスト
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
カーリル
53
httpscaliljpsearchq=E68385E5A0B1E7A791E5ADA6E68A80E8A193E58D94E4BC9A
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
データ集約型マッシュアップ
bull Web APIを通じてデータ収集し活用できるようにしたマッシュアップサービス
bull RSSリーダーなどはこの形態が多い
bull 機関リポジトリなどにおけるメタデータハーベスティング複数のRSSサイト rarr RSSフィード閲覧サー
ビス
複数の機関リポジトリ rarr 論文の横断検索サービス
54
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
JAIRO機関リポジトリ横断検索サービス
55
httpjaironiiacjp
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
WEB APIとデータ形式Data Formats and Web APIs
56
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIと標準化
bull 様々な標準規格化への欲望
bull 多様なサービス vs ニーズ vs 標準化
bull 標準化の難しさ vs 標準の乱立
bull 検索データ取得用Web API標準の例
SRU OpenSearch OAI-PMH OpenURL Sparql hellip
57
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
データ形式と標準化
bull Web APIにおいては基本的にはリクエストとレスポンスの2つの標準化がある
bull レスポンス機械可読なデータ形式
bull データ形式
XML
JSON
TSV
58
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
XMLとはbull タグ要素とその内容テキストを指定し機械的に読み取り可能
とする形式 lt親要素gt
lt要素 属性=ldquo値rdquogtlt要素gtlt親要素gt
bull なぜXMLか 階層関係(木構造が入れ子になったデータ)を扱いやすい 多言語対応(Unicode)日本語はじめ多くの言語に対応 ほとんどのプログラミング環境に対応するライブラリが完備され
ていて簡単に利用できる
bull XMLの欠点 データ量が増える(タグ要素を入れ込む分)
bull XMLの利点 メタ言語様々な形式の新しい種類の言語を規定できる
bull XHTML HTML5 SVG RSS Atom hellip
59
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
JSONとは
bull ブラウザ上で動作するJavaScript言語が標準対応する形式
XMLの複雑でデータ量が多くなる欠点をタグを使わずより簡易に書けるようにしたデータ形式
ldquo著者rdquo [ ldquo高久雅生rdquo ]ldquoタイトルrdquo ldquoWeb APIの過去現在未来rdquo
60
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
RSSフィードとは
bull RSS (Rich Site Summary または RDF Site Summary) サイトの更新情報がXML形式としてタイトル作者概要テキスト
作成日時などを表すデータ形式
bull RSSフィードとは RSS形式で配信すること 最新のお知らせ記事などを配信するのに有用
bull 例カレントアウェアネスポータル
その他検索結果を配信するのに使われることもbull 例CiNii検索
bull 機械的にアクセスし更新ごとの差分を得るのに使うのが普通 RSSリーダー
bull たいていの場合XML形式を自動で出力するツールが使われている ブログしかり図書館システムしかり
bull ユーザーの立場としてはどのURLにアクセスしたらRSS形式のデータが取得できるかだけ意識していればよい
61
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
RSSフィードとは
bull サイトの更新情報(各Webページのタイトル作者概要テキスト作成日時など)を表すデータ形式のことXML形式で表現されている
例 httpdhatenanejpjosei002-10rssの一部
タイトル
URL
概要
作者
日付 62
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
RSSフィード(RSS feed)とは
bull Webサイトの更新情報をRSS形式で配信すること(またはRSS形式で配信したデータのこと)
bull 当該Webサイトの内容が更新されるたびにRSSも更新されるようにするRSSを定期的に見れ
ば更新状況がわかる状況を作る
63
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010123
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
RSSフィードの例
bull 最新のお知らせ記事最近追加したブログ記事などを配信するのに有用例朝日新聞カレントアウェアネスポータ
ルはてなダイアリー
ブログシステムはRSSフィードに対応したシステムがほとんど
bull その他検索結果を配信するのに使われることも例CiNii検索
64
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
カレントアウェアネス-R
65httpcurrentndlgojpcar
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
RSSの一例
66
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
RSSリーダーbull 定期的にRSSをチェック
して差分をみて更新を確かめるツール
あるWebサイトhttpexamplejp
お知らせA作成日2010121
お知らせB作成日2010122
このサイトのRSShttpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125お知らせD 作成日2010127
お知らせC作成日2010125
お知らせD作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010123お知らせC 作成日2010125お知らせD 作成日2010127
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122
httpexamplejprss
お知らせA 作成日2010121お知らせB 作成日2010122お知らせC 作成日2010125
121と122に作成されたお知らせAお知らせBがあるんだな
前とってきたのと
同じなので更新されてないな
新しくお知らせCが増えたな
前とってきたのと
同じなので更新されてないな
新しくお知らせDが増えたな
RSSリーダー
67
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
RSSリーダの例
68
httpfeedlycom
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
RSS活用の例
bull 自他サービスのRSSフィードを通常のウェブサイトでも容易に利用可能
普通のウェブページ内に数行のJavaScript指定を入れるだけ(Google Feed API)
参考牧野川嶋「新着雑誌記事速報から始めてみようRSSAPIを活用した図書館サービス」日本図書館協会 2012 161p
69
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
マッシュアップの例「新着雑誌記事速報」
70
httplib-yukicityyukilgjproom_adsokuhoumainhtml
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
RSSのまとめ
bull サイトの更新情報を表すデータ形式のことXML形式
bull サイトが更新rarrRSSも更新bull RSSリーダーは定期的にRSSをチェックして
差分をみて更新を確かめるツールbull 既存のRSSを加工して自館のサービスとして
提供可能自他サービスのRSSフィードを通常のウェブサイ
トでも容易に利用可能
bull RSSフィードを提供するにはURLの決定RSSの形式の選択RSS更新の仕掛け
71
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
WEB APIの課題Issues in Web APIs
72
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIのご利益
bull サービスの「プラットフォーム化」
第3者にサービス提供する方式を標準化し利用を促進できる
近年の多デバイス環境下(PC タブレットスマートフォン)では自サービスのプラットフォーム化が必然になってしまうという側面もhellip
bull サービスの多様化
Web APIにより通常の利用形態を超えた利用を作り出すことができる
73
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
APIコンテスト
bull サービスの多様化のための具体策
bull APIコンテスト
Mashup Award
CiNii APIコンテスト
bull ハッカソン
bull 「ブレインストーミングのアウトソーシング」
74
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIの寿命
bull Web APIの永続性はそれほど長くないことに注意が必要 GoogleサーチAPI(2010年に終了) Yahoo Web検索API(2013年に終了) Twitter(2013年に大幅な更新)
bull 必然的にマッシュアップ側の寿命に影響を与えるbull 利用する場合には
ある程度代替サービスを念頭におく必要があるbull Youtube vs ニコニコ動画
bull 提供する場合には たとえば検索サービスを単純に更新するだけであっても
Web APIにおいては大きな影響を与えることとなる 最初に公開する際のリクエスト形式データモデルの設計
75
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIの制限認証
bull Web API利用は機械可読(プログラムによるやり取り)が前提であるため過負荷状態になる危険もある人手アクセスの数倍~数十倍
bull 同時利用に制限をかけることが一般的 1時間に1000アクセスまで(カーリル) 1時間に3000アクセスまで(CiNii) 1日に100000アクセスまで(Google Maps)
bull くわえてアクセス元のユーザを識別するために認証を付けることも Twitterなど
76
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78
Web APIの提供にあたって
bull URLとデータモデルの決定が非常に重要 どのURLにリクエストを送るとどんなデータが戻っ
てくるのか 「クールなURIは変わらない」
cf httpwwwkanzakicomdocsStyleURI
bull Web API vs データファイルの提供 数万件くらいの単純なデータならデータファイル全
件をダウンロードできるようにしておくだけでも十分bull 逆にデータ量が膨大だったり複雑な条件指定を行う必要が
あるものではWeb API化する恩恵もndash 「CSV最強hellip」by 吉本龍司ndash 「Excelで扱えない規模からがビッグデータhellip」by 喜連川勝
77
まとめに代えて~参考文献を紹介~
78