Code4 Libカーリルの技術と図書館Apiの使い方

4,559 views

Published on

2010/03/24

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,559
On SlideShare
0
From Embeds
0
Number of Embeds
337
Actions
Shares
0
Downloads
21
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Code4 Libカーリルの技術と図書館Apiの使い方

  1. 1. 図書館検索「カーリル」の技術 と 図書館APIの使い方 Nota Inc 洛西+吉本 @Code4Lib
  2. 2. 目次•  会社紹介•  カーリルのコンセプト (5)•  フロントエンド技術 (5)•  バックエンド技術 (10)•  APIの解説と使い方 (10)•  APIの申し込み方法 (10)
  3. 3. Founded inSiliconValley
  4. 4. Nota Inc2007年12月、シリコンバレー・サンノゼに設立インターネット上で、ユーザーにクリエイティブな体験を提供する
  5. 5. 図書館システムの問題点•  図書館システムがばらばら•  OPAC/WebOPACが機能していない•  図書館にある本しか探せない•  書誌情報はだれでも手に届かない•  予算不足•  利用者視点で作られていない使われていない
  6. 6. カーリルのきっかけ•  吉本の中津川市における情熱 –  行政システムの開発に一人で関わる –  利用者が少ないことに対する懸念 –  現実的、かつ斬新な手法で問題を解決•  「ライフログ」のブレインストーミング –  日常の情報を共有することでもっと世界は楽 しく豊かになる –  本は、コミュニケーションの起点になる
  7. 7. カーリルの発想•  本を起点にネットでコミュニケーションを生むには? –  どこからでもアクセスできる書誌情報が必要 –  OPACがそのはずだが時代遅れになっている•  誰もがクリエイター・開発者になれる時代 –  開発できる人やツールは山ほどある –  どこにいても、個人でもできる•  APIの発想は、新しい公共の発想 –  基盤を整備することでフラットなネットワークをつくる –  図書館を整備することは地方の若者流出につながる
  8. 8. そこで..
  9. 9. DEMO
  10. 10. 開発ストーリー•  平均年齢は27歳。開発は主に4人。 –  ディレクション、インターフェース開発 –  検索エンジン・API開発 –  インターフェース開発 –  アート・デザイン –  図書館データベース作成 –  ユーザーサポート
  11. 11. 中津川   サンノゼ   藤沢   京都  
  12. 12. インターフェース •  迷いのない操作 •  待たせないアニ メーション •  入力欄は一つ •  蔵書のありなしを 色分けして表示 •  ベストセラー/作 家リスト/カテ ゴリー •  読みたいリスト •  コンピュータが人 間に合わせると いう考え方=HCI
  13. 13. アートワーク•  目指したのは、住んでいる町をイメージできる 「地域感」•  「本」から連想する本棚や木目調を避けた•  図書館という「場」から地図を採用 雲、町の風景、山、海、乗り物、動物 = 日常
  14. 14. Mash Up!•  カーリルは、他のサイトのMashupのカタマリ•  利用しているAPI •  Amazon API •  Google Maps / Geocoding •  WikiPedia •  Yahoo Image Search •  日本発のサービスがないのが悲しい…
  15. 15. バックエンド 紹介
  16. 16. カーリルのインフラ【サーバー環境】=クラウド・ハイブリッド•  Google App Engine  ・CPU時間単位の課金•  Linux Server@中津川  ・時間のかかる処理•  コストの最適化  ・GAEはCPU時間に課金される  ・図書館システムは遅い・・
  17. 17. ソフトウェア環境•  100% Pure Python•  どこでも動く•  Python2.5/2.6の標準ライブラリ+  オープンソースライブラリのみで構成   インストールしたLinuxにファイルを 入れて立ち上げるだけでタスク処理開始
  18. 18. 分散処理•  共有メモリ(memcache)ベースのキュー•  司令塔(マネージャー)はGAEにある•  キューの処理はGoogle App Engineでも  他のサーバーでも分散して処理できる・時間のかかる処理はGoogle App Engineを  なるべく使わない・アクセスが増えたらGAEでスケール サーバー増設でコストダウン
  19. 19. サーバー構成 Google  App  Engine  中津川サーバー 中津川サーバー 中津川サーバー
  20. 20. 負荷対策•  同時接続数を制限 1接続∼10接続  オーバーした場合は平等に待たされる•  セッションの再利用•  キャッシュ
  21. 21. 図書館クラス・基底クラス『LibrarySystem』     ↓継承 システムクラス『iLiswing21_We_V2』     ↓継承  図書館クラス『Gifu_Nakatsugawa』 図書館ごとの違いはシステムクラスの関数や パラメーターをオーバーライドするだけ。 図書館毎にフルカスタマイズ可能
  22. 22. OPACの管理•  Googleマッシュアップの探索ツール•  システムエラーを検知して調査•  Twitterのつぶやきに対応•  常に10カ所くらいはシステム更新中
  23. 23. API•  XMLとJSON•  GET
  24. 24. 図書館情報•  近くの図書館•  県別の図書館•  システムの詳細情報 http://api.calil.jp/library? geocode=136.7163027,35.390516& format=xml
  25. 25. 蔵書貸出状況の確認•  複数のISBN/複数のシステムあわせて最大 100冊の書籍の状況を一括確認できる・初回のアクセスによりセッションIDが発 行・そのセッションIDを使ってポーリング →10秒以上ポーリングがないと一時停止
  26. 26. JavaScript ライブラリvar calil = new Calil({ appkey : 1f797b98033661, render: new CalilRender(list), isbn : isbn_list, systemid : $(#systemid).val()});calil.search();
  27. 27. API DEMO
  28. 28. API制限•  IP単位で1000冊/時間まで•  RESTFulのAPIも提供予定
  29. 29. APIの申し込み方法•  まずは、API仕様書へアクセス –  http://blog.calil.jp/p/api.html•  アプリケーションキーを申請 –  http://api.calil.jp/apply
  30. 30. 図書館・本のサービスをもっと盛り上げようということで、 APIコンテスト開催決定!!
  31. 31. API コンテスト
  32. 32. 夜の図書館ダイアローグ•  Vol1. @中目黒カフェバー コンバイン•  Vol2. @中津川市立図書館    •  #toshokan
  33. 33. 図書館ダイアローグの話題–  地域と図書館–  デジタル化–  著作者はどうなる?–  子供時代の本との出会い–  ISBNのない郷土資料・行政資料–  行政と民間の役割
  34. 34. 今後の予定•  書籍デジタル化時代を見据えて、本の魅力 をもっとアピール (4月30日は図書館の日)•  図書館だけでなく出版・書店とも提携•  さらに検索できる書籍を広げる•  ユーザーの声をうけて機能開発を進める

×