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