Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ライブラリサービスを支える技術
How to build a library service
大向 一輝(国立情報学研究所)
Ikki Ohmukai, Ph.D.
National Institute of Informatics
@i2k
ここはCode4Libなので、
テクノロジーの話をしましょう
Web Researcher
Web Service Provider
Library Director
Self Introduction
Self Introduction
Library Services by NII
Articles
CiNii Articles
NII-ELS
Books / Serials
CiNii Books
NACSIS-CAT
Fund Reports
KAKEN
IR
JAIRO...
ライブラリサービスのいま
• 「ウェブという名の大自然の中で、巨人の肩
の上に乗り、巨人と戦う」
• プラットフォーム化・クラウド化
• ○○だけあればいい、○○不要論
• エコロジカル・ニッチをどう守るか
• コモディティ化
• オープンソー...
ライブラリサービスのいま
• テクノロジーの力を使って
• 自らの手でアイデアを実現する
• 現時点で最も複雑な「総合芸術」
• Just for Fun!
• ケーススタディ
• CiNii Articles
• 大向一輝:CiNiiArti...
CiNii Articlesとは
• NII-ELS 400万件
• 論文・紀要の電子化
• 雑誌記事索引 1000万件
• 国立国会図書館
• J-STAGE 40万件
• 科学技術振興機構
• 機関リポジトリ 60万件
• 大学・研究機関
...
CiNii Articlesとは
• NII-ELS(電子図書館サービス)
• 学協会論文・大学紀要の電子化
• オープンアクセス論文:約45%
• 定額アクセス論文:約45%
• サイトライセンス契約数:約900機関
• 有料論文:約10%
...
Facts 2010.9.1〜2013.8.31
テクノロジースタック
• ソーシャル
• コンテンツ
• インターフェイス
• アプリケーション
• ミドルウェア
• OS
• 仮想マシン
• ハードウェア
• ネットワーク
• ファシリティ
• 設計
• 開発
• 運用
• 内製
• 外注...
無限の選択肢の中から
• 「吉野家の定理」
• はやい、やすい、うまい
• 同時に実現できるのは2つまで
• CiNiiの場合
• 「やすい」は前提条件(公的サービス)
• 「はやい」か「うまい」か
• はやいのは七難隠す
• うまいは外部のア...
「はやい」「やすい」システム
• ボトルネックを考える
• 処理の内容から見る
• リアルタイム系・バッチ系・参照系
• 同期・非同期
• アーキテクチャから見る
• CPU・メモリ・ディスクI/O・ネットワーク
CiNiiの場合
• ボトルネックはリアルタイム系・ディスクI/O
• 業務とサービスがバランスしない
• 業務:リアルタイムだが利用回数小
• サービス:必ずしもリアルタイムである必
要はないが利用回数大
• データベースアプリケーションだけ...
サービス系の分離
• CiNiiは2つの機能に集約される
• キーワードを入力→該当するIDのリストを
出力
• IDを指定→書誌を出力
• 検索エンジン+KVS
• 本質的にはRDBMSを必要としない
• 例:史上最速のOPAC@Code4L...
業務系の分離
• CiNii Articlesではバッチ系でデータ管理を行
う
• CiNii Core(2013.4〜)
• データ管理:週次
• 名寄せ:ベストエフォート
• IDの変遷はリダイレクト情報として管理
CiNii Core
マスター
データベース
ローダ1
ローダ2
ローダn
…
CiNii用情報生成
名寄せエンジン
研究用途など
サービスレベルと投資規模
• コストの大きい処理の極小化・局在化
• リアルタイム >> バッチ(日次 > 週次 > 月
次)>> ベストエフォート
• 例:書誌は日次、貸し出し情報はリアルタ
イム(Yes/No・予約数)
• サービスレベルの...
ハードウェア
2009
2013
CiNii Articles 2009
20
CiNii
APサーバ
CiNii
Webサーバ
CiNii
APサーバ
CiNii
Webサーバ
検索プロセス
検索サーバ(1セット
目)
検索サーバ(2セット
目)
検索サーバ(3セット
目)
...
CiNii Articles 2013
21
CiNii
Webサーバ
CiNii
Webサーバ
CiNii
Webサーバ
CiNii APサーバ1
検索エンジン
(BizSearch)
CiNii検索サーバ1(1) CiNii検索サーバ1(2...
CiNii Articles 2013
• 小型・集密化
• 運用コストの低減
• 仮想化
• BCPへのアプローチ
• オープン化
アーキテクチャとアプリケーション
• APIファースト
• UIはAPIをラップしたもの
• 疎結合
• 富豪主義
• オーバーヘッド大・負荷大
• どんなサービスでも作れる
• 3000万アクセスを支えるアーキテクチャ
新しい技術トレンド
• ゲームのルールは突然かつ根本的に変わりう
る
• インメモリ処理
• SSD(PCIe)・メモリアレイ
• 不揮発性メモリ
• …
まとめ
• サービスレベルを設計し、現代の道具を使っ
て問題解決を
• 作ることの苦しみと苦しみと喜びは何物にも
代えがたい
One More Thing…
Code4Libのみなさんへ
• CiNii JSON-LDAPI公開予定
• Access-Control-Allow-Origin対応
• クライアントサイドでのクロスドメイン通
信可能
• 新しいユーザインターフェイスのデモ
• 近日Gi...
Thank You!
Upcoming SlideShare
Loading in …5
×

ライブラリサービスを支える技術@Code4Lib Japan Conference(2013.08.31)

1,775 views

Published on

  • Be the first to comment

ライブラリサービスを支える技術@Code4Lib Japan Conference(2013.08.31)

  1. 1. ライブラリサービスを支える技術 How to build a library service 大向 一輝(国立情報学研究所) Ikki Ohmukai, Ph.D. National Institute of Informatics @i2k
  2. 2. ここはCode4Libなので、 テクノロジーの話をしましょう
  3. 3. Web Researcher Web Service Provider Library Director Self Introduction
  4. 4. Self Introduction
  5. 5. Library Services by NII Articles CiNii Articles NII-ELS Books / Serials CiNii Books NACSIS-CAT Fund Reports KAKEN IR JAIRO JAIRO Cloud
  6. 6. ライブラリサービスのいま • 「ウェブという名の大自然の中で、巨人の肩 の上に乗り、巨人と戦う」 • プラットフォーム化・クラウド化 • ○○だけあればいい、○○不要論 • エコロジカル・ニッチをどう守るか • コモディティ化 • オープンソース・「ムーアの法則」 • 個人・小さな組織の可能性が拡大
  7. 7. ライブラリサービスのいま • テクノロジーの力を使って • 自らの手でアイデアを実現する • 現時点で最も複雑な「総合芸術」 • Just for Fun! • ケーススタディ • CiNii Articles • 大向一輝:CiNiiArticlesのシステムデザインとデータモデル,情報の科学 と技術,Vol.62, No.11,pp.473-477 (2012).
  8. 8. CiNii Articlesとは • NII-ELS 400万件 • 論文・紀要の電子化 • 雑誌記事索引 1000万件 • 国立国会図書館 • J-STAGE 40万件 • 科学技術振興機構 • 機関リポジトリ 60万件 • 大学・研究機関 • 書誌合計 1500万件 • 同定・統合処理
  9. 9. CiNii Articlesとは • NII-ELS(電子図書館サービス) • 学協会論文・大学紀要の電子化 • オープンアクセス論文:約45% • 定額アクセス論文:約45% • サイトライセンス契約数:約900機関 • 有料論文:約10% • 認証 • IPベース • サイトライセンス個人ID • 学認
  10. 10. Facts 2010.9.1〜2013.8.31
  11. 11. テクノロジースタック • ソーシャル • コンテンツ • インターフェイス • アプリケーション • ミドルウェア • OS • 仮想マシン • ハードウェア • ネットワーク • ファシリティ • 設計 • 開発 • 運用 • 内製 • 外注 • 連携 • オンプレミス • クラウド • …
  12. 12. 無限の選択肢の中から • 「吉野家の定理」 • はやい、やすい、うまい • 同時に実現できるのは2つまで • CiNiiの場合 • 「やすい」は前提条件(公的サービス) • 「はやい」か「うまい」か • はやいのは七難隠す • うまいは外部のアイデアを→API公開へ
  13. 13. 「はやい」「やすい」システム • ボトルネックを考える • 処理の内容から見る • リアルタイム系・バッチ系・参照系 • 同期・非同期 • アーキテクチャから見る • CPU・メモリ・ディスクI/O・ネットワーク
  14. 14. CiNiiの場合 • ボトルネックはリアルタイム系・ディスクI/O • 業務とサービスがバランスしない • 業務:リアルタイムだが利用回数小 • サービス:必ずしもリアルタイムである必 要はないが利用回数大 • データベースアプリケーションだけで両者を 提供することの限界 • 業務とサービスの完全分離
  15. 15. サービス系の分離 • CiNiiは2つの機能に集約される • キーワードを入力→該当するIDのリストを 出力 • IDを指定→書誌を出力 • 検索エンジン+KVS • 本質的にはRDBMSを必要としない • 例:史上最速のOPAC@Code4Lib Camp 2011
  16. 16. 業務系の分離 • CiNii Articlesではバッチ系でデータ管理を行 う • CiNii Core(2013.4〜) • データ管理:週次 • 名寄せ:ベストエフォート • IDの変遷はリダイレクト情報として管理
  17. 17. CiNii Core マスター データベース ローダ1 ローダ2 ローダn … CiNii用情報生成 名寄せエンジン 研究用途など
  18. 18. サービスレベルと投資規模 • コストの大きい処理の極小化・局在化 • リアルタイム >> バッチ(日次 > 週次 > 月 次)>> ベストエフォート • 例:書誌は日次、貸し出し情報はリアルタ イム(Yes/No・予約数) • サービスレベルの再定義・詳細化 • 勘定系レベルのリアルタイム性は必要か? • Near Real Time
  19. 19. ハードウェア 2009 2013
  20. 20. CiNii Articles 2009 20 CiNii APサーバ CiNii Webサーバ CiNii APサーバ CiNii Webサーバ 検索プロセス 検索サーバ(1セット 目) 検索サーバ(2セット 目) 検索サーバ(3セット 目) 横断検索 API① 横断検索 API② 横断検索 API③ CiNii業務サーバ 各種ログデータ PostgreSQL PostgreSQL 週末は、ここでインデキシン グ等のデータ処理を行う。 CiNii APサーバ PostgreSQL ↓待機系
  21. 21. CiNii Articles 2013 21 CiNii Webサーバ CiNii Webサーバ CiNii Webサーバ CiNii APサーバ1 検索エンジン (BizSearch) CiNii検索サーバ1(1) CiNii検索サーバ1(2) 検索エンジン (Solr) CiNii検索サーバ2(1) 検索エンジン (BizSearch) 検索エンジン (Solr) CiNii検索サーバ2(2) 静的ファイル 本文提供 認証課金 Detail Search 本文呼出 (Lognavi) pgpool PostgreSQL CiNii APサーバ2 本文提供 認証課金 Detail Search 本文呼出 (Lognavi) pgpool PostgreSQL NASストレージ 本文PDF CiNii検索サーバ3 検索エンジン (BizSearch) CiNii検索サーバ4 検索エンジン (Solr) CiNii インデキシング インデキシングサーバCiNii業務サーバ 各種ログデータ サムネイル作成 ディレクトリ作成
  22. 22. CiNii Articles 2013 • 小型・集密化 • 運用コストの低減 • 仮想化 • BCPへのアプローチ • オープン化
  23. 23. アーキテクチャとアプリケーション • APIファースト • UIはAPIをラップしたもの • 疎結合 • 富豪主義 • オーバーヘッド大・負荷大 • どんなサービスでも作れる • 3000万アクセスを支えるアーキテクチャ
  24. 24. 新しい技術トレンド • ゲームのルールは突然かつ根本的に変わりう る • インメモリ処理 • SSD(PCIe)・メモリアレイ • 不揮発性メモリ • …
  25. 25. まとめ • サービスレベルを設計し、現代の道具を使っ て問題解決を • 作ることの苦しみと苦しみと喜びは何物にも 代えがたい
  26. 26. One More Thing…
  27. 27. Code4Libのみなさんへ • CiNii JSON-LDAPI公開予定 • Access-Control-Allow-Origin対応 • クライアントサイドでのクロスドメイン通 信可能 • 新しいユーザインターフェイスのデモ • 近日GitHub(か何か)でソース公開予定
  28. 28. Thank You!

×