ライブラリサービスを支える技術@code4lib japan conference(2013.08.31)

28
ラララララララララララララララ How to build a library service ララ ララ ラララララララララ 一() Ikki Ohmukai, Ph.D. National Institute of Informatics @i2k

Upload: ikki-ohmukai

Post on 31-May-2015

1.042 views

Category:

Documents


0 download

TRANSCRIPT

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

ライブラリサービスを支える技術How to build a library service

大向 一輝(国立情報学研究所)Ikki Ohmukai, Ph.D.

National Institute of Informatics

@i2k

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

ここは Code4Lib なので、

テクノロジーの話をしましょう

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

Web Researcher

Web Service Provider

Library Director

Self Introduction

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

Self Introduction

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

Library Services by NII

Articles   CiNii Articles   NII-ELS

Books / Serials   CiNii Books   NACSIS-CAT

Fund Reports   KAKEN

IR   JAIRO   JAIRO Cloud

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

ライブラリサービスのいま

•「ウェブという名の大自然の中で、巨人の肩の上に乗り、巨人と戦う」

•プラットフォーム化・クラウド化

•○○ だけあればいい、○○不要論

•エコロジカル・ニッチをどう守るか

•コモディティ化

•オープンソース・「ムーアの法則」

•個人・小さな組織の可能性が拡大

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

ライブラリサービスのいま

•テクノロジーの力を使って

•自らの手でアイデアを実現する

•現時点で最も複雑な「総合芸術」

• Just for Fun!

•ケーススタディ

•CiNii Articles• 大向一輝 : CiNii Articles のシステムデザインとデータモデル , 情報

の科学と技術 , Vol.62, No.11, pp.473-477 (2012).

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

CiNii Articles とは•NII-ELS 400 万件

• 論文・紀要の電子化

•雑誌記事索引 1000 万件

• 国立国会図書館

•J-STAGE 40 万件

• 科学技術振興機構

•機関リポジトリ 60 万件

• 大学・研究機関

•書誌合計 1500 万件

• 同定・統合処理

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

CiNii Articles とは

•NII-ELS (電子図書館サービス)

• 学協会論文・大学紀要の電子化

• オープンアクセス論文:約 45%

• 定額アクセス論文:約 45%

• サイトライセンス契約数:約 900 機関

• 有料論文:約 10%

• 認証

• IP ベース

• サイトライセンス個人 ID

• 学認

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

Facts 2010.9.1 〜 2013.8.31

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

テクノロジースタック

•ソーシャル

•コンテンツ

•インターフェイス

•アプリケーション

•ミドルウェア

•OS

•仮想マシン

•ハードウェア

•ネットワーク

•ファシリティ

•設計

•開発

•運用

• 内製

• 外注

• 連携

• オンプレミス

• クラウド

• …

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

無限の選択肢の中から

•「吉野家の定理」

•はやい、やすい、うまい

•同時に実現できるのは 2 つまで

•CiNii の場合

•「やすい」は前提条件(公的サービス)

•「はやい」か「うまい」か

•はやいのは七難隠す

•うまいは外部のアイデアを→ API 公開へ

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

「はやい」「やすい」システム

•ボトルネックを考える

•処理の内容から見る

•リアルタイム系・バッチ系・参照系

•同期・非同期

•アーキテクチャから見る

•CPU ・メモリ・ディスク I/O ・ネットワーク

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

CiNii の場合

•ボトルネックはリアルタイム系・ディスクI/O

•業務とサービスがバランスしない

•業務:リアルタイムだが利用回数小

•サービス:必ずしもリアルタイムである必要はないが利用回数大

•データベースアプリケーションだけで両者を提供することの限界

•業務とサービスの完全分離

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

サービス系の分離

•CiNii は 2 つの機能に集約される

•キーワードを入力→該当する ID のリストを出力

• ID を指定→書誌を出力

•検索エンジン+ KVS

•本質的には RDBMS を必要としない

•例:史上最速の OPAC@ Code4Lib Camp 2011

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

業務系の分離

•CiNii Articles ではバッチ系でデータ管理を行う

•CiNii Core ( 2013.4 〜)

•データ管理:週次

•名寄せ:ベストエフォート

• ID の変遷はリダイレクト情報として管理

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

CiNii Core

マスターデータベース

ローダ 1

ローダ 2

ローダ n

CiNii 用情報生成

名寄せエンジン

研究用途など

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

サービスレベルと投資規模

•コストの大きい処理の極小化・局在化

•リアルタイム >> バッチ(日次 > 週次 > 月次) >> ベストエフォート

•例:書誌は日次、貸し出し情報はリアルタイム( Yes/No ・予約数)

•サービスレベルの再定義・詳細化

•勘定系レベルのリアルタイム性は必要か?

•Near Real Time

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

ハードウェア

2009

2013

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

CiNii Articles 2009

20

CiNiiAP サーバ

CiNiiWeb サーバ

CiNiiAP サーバ

CiNiiWeb サーバ

検索プロセス

検索サーバ (1 セット目 )

検索サーバ (2 セット目 )

検索サーバ (3 セット目 )

横断検索API①

横断検索API②

横断検索API③

CiNii 業務サーバ 各種ログデータ

PostgreSQL PostgreSQL

週末は、ここでインデキシング等のデータ処理を行う。

CiNiiAP サーバ

PostgreSQL

↓待機系

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

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 業務サーバ

各種ログデータ

サムネイル作成ディレクトリ作成

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

CiNii Articles 2013

•小型・集密化

•運用コストの低減

•仮想化

•BCP へのアプローチ

•オープン化

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

アーキテクチャとアプリケーション

•API ファースト

•UI は API をラップしたもの

•疎結合

•富豪主義•オーバーヘッド大・負荷大

•どんなサービスでも作れる

•3000 万アクセスを支えるアーキテクチャ

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

新しい技術トレンド

•ゲームのルールは突然かつ根本的に変わりうる

•インメモリ処理

•SSD ( PCIe )・メモリアレイ

•不揮発性メモリ

•…

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

まとめ

•サービスレベルを設計し、現代の道具を使って問題解決を

•作ることの苦しみと苦しみと喜びは何物にも代えがたい

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

One More Thing…

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

Code4Lib のみなさんへ

•CiNii JSON-LD API 公開予定

•Access-Control-Allow-Origin対応

•クライアントサイドでのクロスドメイン通信可能

•新しいユーザインターフェイスのデモ

•近日 GitHub (か何か)でソース公開予定

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

Thank You!