code4 libカーリルの技術と図書館apiの使い方

Post on 08-Jul-2015

3.652 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

2010/03/24

TRANSCRIPT

図書館検索「カーリル」の技術と

図書館APIの使い方 Nota Inc 洛西+吉本 @Code4Lib

目次 •  会社紹介 •  カーリルのコンセプト (5) •  フロントエンド技術 (5) •  バックエンド技術 (10) •  APIの解説と使い方 (10) •  APIの申し込み方法 (10)

Founded in Silicon Valley

Nota Inc 2007年12月、シリコンバレー・サンノゼに設立

インターネット上で、ユーザーに クリエイティブな体験を提供する

図書館システムの問題点 •  図書館システムがばらばら •  OPAC/WebOPACが機能していない •  図書館にある本しか探せない •  書誌情報はだれでも手に届かない •  予算不足 •  利用者視点で作られていない

使われていない

カーリルのきっかけ •  吉本の中津川市における情熱 – 行政システムの開発に一人で関わる – 利用者が少ないことに対する懸念 – 現実的、かつ斬新な手法で問題を解決

•  「ライフログ」のブレインストーミング – 日常の情報を共有することでもっと世界は楽しく豊かになる

– 本は、コミュニケーションの起点になる

カーリルの発想 •  本を起点にネットでコミュニケーションを生むには?

–  どこからでもアクセスできる書誌情報が必要 –  OPACがそのはずだが時代遅れになっている

•  誰もがクリエイター・開発者になれる時代 –  開発できる人やツールは山ほどある –  どこにいても、個人でもできる

•  APIの発想は、新しい公共の発想 –  基盤を整備することでフラットなネットワークをつくる –  図書館を整備することは地方の若者流出につながる

そこで..

DEMO

開発ストーリー •  平均年齢は27歳。開発は主に4人。

– ディレクション、インターフェース開発 – 検索エンジン・API開発 – インターフェース開発 – アート・デザイン – 図書館データベース作成 – ユーザーサポート

サンノゼ  

中津川  

藤沢  

京都  

インターフェース •  迷いのない操作 •  待たせないアニ

メーション •  入力欄は一つ •  蔵書のありなしを

色分けして表示 •  ベストセラー/作

家リスト/カテゴリー

•  読みたいリスト

•  コンピュータが人間に合わせるという考え方=HCI

アートワーク •  目指したのは、住んでいる町をイメージできる「地域感」

•  「本」から連想する本棚や木目調を避けた •  図書館という「場」から地図を採用

雲、町の風景、山、海、乗り物、動物 = 日常

Mash Up! •  カーリルは、他のサイトのMashupのカタマリ

•  利用しているAPI •  Amazon API •  Google Maps / Geocoding •  WikiPedia •  Yahoo Image Search •  日本発のサービスがないのが悲しい…

バックエンド 紹介

カーリルのインフラ 【サーバー環境】=クラウド・ハイブリッド •  Google App Engine   ・CPU時間単位の課金 •  Linux Server@中津川   ・時間のかかる処理 •  コストの最適化   ・GAEはCPU時間に課金される   ・図書館システムは遅い・・

ソフトウェア環境 •  100% Pure Python •  どこでも動く •  Python2.5/2.6の標準ライブラリ+   オープンソースライブラリのみで構成   “インストールしたLinuxにファイルを入れて立ち上げるだけでタスク処理開始”

分散処理 •  共有メモリ(memcache)ベースのキュー •  司令塔(マネージャー)はGAEにある •  キューの処理はGoogle App Engineでも   他のサーバーでも分散して処理できる ・時間のかかる処理はGoogle App Engineを  なるべく使わない

・アクセスが増えたらGAEでスケール サーバー増設でコストダウン

Google  App  Engine  

中津川サーバー 中津川サーバー 中津川サーバー

サーバー構成

負荷対策 •  同時接続数を制限 1接続~10接続  オーバーした場合は平等に待たされる

•  セッションの再利用 •  キャッシュ

図書館クラス ・基底クラス『LibrarySystem』     ↓継承  システムクラス『iLiswing21_We_V2』      ↓継承   図書館クラス『Gifu_Nakatsugawa』 図書館ごとの違いはシステムクラスの関数や パラメーターをオーバーライドするだけ。 図書館毎にフルカスタマイズ可能

OPACの管理 •  Googleマッシュアップの探索ツール •  システムエラーを検知して調査 •  Twitterのつぶやきに対応 •  常に10カ所くらいはシステム更新中

API •  XMLとJSON •  GET

図書館情報 •  近くの図書館 •  県別の図書館 •  システムの詳細情報

http://api.calil.jp/library? geocode=136.7163027,35.390516& format=xml

蔵書貸出状況の確認 •  複数のISBN/複数のシステムあわせて最大100冊の書籍の状況を一括確認できる

・初回のアクセスによりセッションIDが発行

・そのセッションIDを使ってポーリング  →10秒以上ポーリングがないと一時停止

JavaScript ライブラリ var calil = new Calil({ 'appkey' : '1f797b98033661', 'render': new CalilRender('list'), 'isbn' : isbn_list, 'systemid' : $('#systemid').val() }); calil.search();

API DEMO

API制限 •  IP単位で1000冊/時間まで •  RESTFulのAPIも提供予定

APIの申し込み方法 •  まずは、API仕様書へアクセス – http://blog.calil.jp/p/api.html

•  アプリケーションキーを申請 – http://api.calil.jp/apply

図書館・本のサービスをもっと盛り上げよう

ということで、

APIコンテスト開催決定!!

API コンテスト

夜の図書館ダイアローグ

•  Vol1. @中目黒カフェバー コンバイン •  Vol2. @中津川市立図書館    

•  #toshokan

図書館ダイアローグの話題 – 地域と図書館 – デジタル化 – 著作者はどうなる? – 子供時代の本との出会い –  ISBNのない郷土資料・行政資料 – 行政と民間の役割

今後の予定 •  書籍デジタル化時代を見据えて、本の魅力をもっとアピール (4月30日は図書館の日)

•  図書館だけでなく出版・書店とも提携 •  さらに検索できる書籍を広げる •  ユーザーの声をうけて機能開発を進める

top related