SlideShare a Scribd company logo
1 of 28
ライブラリサービスを支える技術
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
• 大向一輝:CiNiiArticlesのシステムデザインとデータモデル,情報の科学
と技術,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
CiNii
APサーバ
CiNii
Webサーバ
CiNii
APサーバ
CiNii
Webサーバ
検索プロセス
検索サーバ(1セット
目)
検索サーバ(2セット
目)
検索サーバ(3セット
目)
横断検索
API①
横断検索
API②
横断検索
API③
CiNii業務サーバ
各種ログデータ
PostgreSQL PostgreSQL
週末は、ここでインデキシン
グ等のデータ処理を行う。
CiNii
APサーバ
PostgreSQL
↓待機系
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業務サーバ
各種ログデータ
サムネイル作成
ディレクトリ作成
CiNii Articles 2013
• 小型・集密化
• 運用コストの低減
• 仮想化
• BCPへのアプローチ
• オープン化
アーキテクチャとアプリケーション
• APIファースト
• UIはAPIをラップしたもの
• 疎結合
• 富豪主義
• オーバーヘッド大・負荷大
• どんなサービスでも作れる
• 3000万アクセスを支えるアーキテクチャ
新しい技術トレンド
• ゲームのルールは突然かつ根本的に変わりう
る
• インメモリ処理
• SSD(PCIe)・メモリアレイ
• 不揮発性メモリ
• …
まとめ
• サービスレベルを設計し、現代の道具を使っ
て問題解決を
• 作ることの苦しみと苦しみと喜びは何物にも
代えがたい
One More Thing…
Code4Libのみなさんへ
• CiNii JSON-LDAPI公開予定
• Access-Control-Allow-Origin対応
• クライアントサイドでのクロスドメイン通
信可能
• 新しいユーザインターフェイスのデモ
• 近日GitHub(か何か)でソース公開予定
Thank You!

More Related Content

More from Ikki Ohmukai

学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)
学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)
学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)Ikki Ohmukai
 
Linked Open Data入門@関西オープンデータEXPO(2015.2.11)
Linked Open Data入門@関西オープンデータEXPO(2015.2.11)Linked Open Data入門@関西オープンデータEXPO(2015.2.11)
Linked Open Data入門@関西オープンデータEXPO(2015.2.11)Ikki Ohmukai
 
図書館とLinked Open Data@大学図書館問題研究会全国大会(2014.8.24)
図書館とLinked Open Data@大学図書館問題研究会全国大会(2014.8.24)図書館とLinked Open Data@大学図書館問題研究会全国大会(2014.8.24)
図書館とLinked Open Data@大学図書館問題研究会全国大会(2014.8.24)Ikki Ohmukai
 
情報の構造化@Linked Open Data連続講座(2014.6.2)
情報の構造化@Linked Open Data連続講座(2014.6.2)情報の構造化@Linked Open Data連続講座(2014.6.2)
情報の構造化@Linked Open Data連続講座(2014.6.2)Ikki Ohmukai
 
オープンデータとLinked Open Data@筑波大学研究談話会(2013.12.18)
オープンデータとLinked Open Data@筑波大学研究談話会(2013.12.18)オープンデータとLinked Open Data@筑波大学研究談話会(2013.12.18)
オープンデータとLinked Open Data@筑波大学研究談話会(2013.12.18)Ikki Ohmukai
 
オープンデータとは@芸術・文化情報とオープンデータ(2013.11.28)
オープンデータとは@芸術・文化情報とオープンデータ(2013.11.28)オープンデータとは@芸術・文化情報とオープンデータ(2013.11.28)
オープンデータとは@芸術・文化情報とオープンデータ(2013.11.28)Ikki Ohmukai
 
災害と知識インフラ@神戸高専産学官技術フォーラム(2013.11.20)
災害と知識インフラ@神戸高専産学官技術フォーラム(2013.11.20)災害と知識インフラ@神戸高専産学官技術フォーラム(2013.11.20)
災害と知識インフラ@神戸高専産学官技術フォーラム(2013.11.20)Ikki Ohmukai
 
地場産業としてのオープンデータの可能性@関西オープンフォーラム(2013.11.8)
地場産業としてのオープンデータの可能性@関西オープンフォーラム(2013.11.8)地場産業としてのオープンデータの可能性@関西オープンフォーラム(2013.11.8)
地場産業としてのオープンデータの可能性@関西オープンフォーラム(2013.11.8)Ikki Ohmukai
 
国立情報学研究所のオープンデータに関する取り組み@図書館総合展(2013.10.30)
国立情報学研究所のオープンデータに関する取り組み@図書館総合展(2013.10.30)国立情報学研究所のオープンデータに関する取り組み@図書館総合展(2013.10.30)
国立情報学研究所のオープンデータに関する取り組み@図書館総合展(2013.10.30)Ikki Ohmukai
 
図書館データとLinked Open Data@国立国会図書館データベースフォーラム(2013.10.16)
図書館データとLinked Open Data@国立国会図書館データベースフォーラム(2013.10.16)図書館データとLinked Open Data@国立国会図書館データベースフォーラム(2013.10.16)
図書館データとLinked Open Data@国立国会図書館データベースフォーラム(2013.10.16)Ikki Ohmukai
 
オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)
オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)
オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)Ikki Ohmukai
 
CiNiiのメタデータ・デザイン@LinkedData勉強会(2012.01.18)
CiNiiのメタデータ・デザイン@LinkedData勉強会(2012.01.18)CiNiiのメタデータ・デザイン@LinkedData勉強会(2012.01.18)
CiNiiのメタデータ・デザイン@LinkedData勉強会(2012.01.18)Ikki Ohmukai
 
セマンティック・ウェブと学術情報サービス@国立国会図書館講演会(2010.07.27)
セマンティック・ウェブと学術情報サービス@国立国会図書館講演会(2010.07.27)セマンティック・ウェブと学術情報サービス@国立国会図書館講演会(2010.07.27)
セマンティック・ウェブと学術情報サービス@国立国会図書館講演会(2010.07.27)Ikki Ohmukai
 

More from Ikki Ohmukai (14)

学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)
学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)
学術コンテンツサービスでの活用事例@Lucene/Solr勉強会(2015.5.13)
 
Linked Open Data入門@関西オープンデータEXPO(2015.2.11)
Linked Open Data入門@関西オープンデータEXPO(2015.2.11)Linked Open Data入門@関西オープンデータEXPO(2015.2.11)
Linked Open Data入門@関西オープンデータEXPO(2015.2.11)
 
図書館とLinked Open Data@大学図書館問題研究会全国大会(2014.8.24)
図書館とLinked Open Data@大学図書館問題研究会全国大会(2014.8.24)図書館とLinked Open Data@大学図書館問題研究会全国大会(2014.8.24)
図書館とLinked Open Data@大学図書館問題研究会全国大会(2014.8.24)
 
情報の構造化@Linked Open Data連続講座(2014.6.2)
情報の構造化@Linked Open Data連続講座(2014.6.2)情報の構造化@Linked Open Data連続講座(2014.6.2)
情報の構造化@Linked Open Data連続講座(2014.6.2)
 
オープンデータとLinked Open Data@筑波大学研究談話会(2013.12.18)
オープンデータとLinked Open Data@筑波大学研究談話会(2013.12.18)オープンデータとLinked Open Data@筑波大学研究談話会(2013.12.18)
オープンデータとLinked Open Data@筑波大学研究談話会(2013.12.18)
 
オープンデータとは@芸術・文化情報とオープンデータ(2013.11.28)
オープンデータとは@芸術・文化情報とオープンデータ(2013.11.28)オープンデータとは@芸術・文化情報とオープンデータ(2013.11.28)
オープンデータとは@芸術・文化情報とオープンデータ(2013.11.28)
 
災害と知識インフラ@神戸高専産学官技術フォーラム(2013.11.20)
災害と知識インフラ@神戸高専産学官技術フォーラム(2013.11.20)災害と知識インフラ@神戸高専産学官技術フォーラム(2013.11.20)
災害と知識インフラ@神戸高専産学官技術フォーラム(2013.11.20)
 
地場産業としてのオープンデータの可能性@関西オープンフォーラム(2013.11.8)
地場産業としてのオープンデータの可能性@関西オープンフォーラム(2013.11.8)地場産業としてのオープンデータの可能性@関西オープンフォーラム(2013.11.8)
地場産業としてのオープンデータの可能性@関西オープンフォーラム(2013.11.8)
 
国立情報学研究所のオープンデータに関する取り組み@図書館総合展(2013.10.30)
国立情報学研究所のオープンデータに関する取り組み@図書館総合展(2013.10.30)国立情報学研究所のオープンデータに関する取り組み@図書館総合展(2013.10.30)
国立情報学研究所のオープンデータに関する取り組み@図書館総合展(2013.10.30)
 
図書館データとLinked Open Data@国立国会図書館データベースフォーラム(2013.10.16)
図書館データとLinked Open Data@国立国会図書館データベースフォーラム(2013.10.16)図書館データとLinked Open Data@国立国会図書館データベースフォーラム(2013.10.16)
図書館データとLinked Open Data@国立国会図書館データベースフォーラム(2013.10.16)
 
オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)
オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)
オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)
 
050830 openforum
050830 openforum050830 openforum
050830 openforum
 
CiNiiのメタデータ・デザイン@LinkedData勉強会(2012.01.18)
CiNiiのメタデータ・デザイン@LinkedData勉強会(2012.01.18)CiNiiのメタデータ・デザイン@LinkedData勉強会(2012.01.18)
CiNiiのメタデータ・デザイン@LinkedData勉強会(2012.01.18)
 
セマンティック・ウェブと学術情報サービス@国立国会図書館講演会(2010.07.27)
セマンティック・ウェブと学術情報サービス@国立国会図書館講演会(2010.07.27)セマンティック・ウェブと学術情報サービス@国立国会図書館講演会(2010.07.27)
セマンティック・ウェブと学術情報サービス@国立国会図書館講演会(2010.07.27)
 

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