PostgreSQLを活用した
自治体機関向け業務システムの
構築と運用

PostgreSQL事例セミナー２００５

2005-09-16＠日本SGI株式会社 セミナールーム

大阪府立産業技術総合研究所

http://tri-osaka.jp/

情報電子部 制御情報系 情報通信分野

石島 悌（いしじま だい）

本日のお話

大阪府立産業技術総合研究所について

公設試験研究機関とは

業務内容

業務システム（所内情報システム）について

特徴、システム構成など

PostgreSQLの活用について

導入のきっかけ

システムでの利用

まとめと今後の課題

公設試験研究機関とは

地域産業の振興などを目的として、
各自治体に設置された試験研究機関

工業系だけでなく、幅広い領域をカバー

農林水産系、環境系、医療系、など

地方自治体の各部局の出先機関

全国に629機関（2005年９月）
研究開発支援総合ディレクトリReaD・研究機関DDB
http://read.jst.go.jp/ddbs/plsql/KKN_TOP

近畿に74機関

大阪の公設試験研究機関

大阪府内に15機関

府立（１２）

公衆衛生研究所、環境情報センター、
成人病センター、成人病センター研究所、
母子保健総合医療センター研究所、
水道部水質管理センター、産業デザインセンター、
産業技術総合研究所、産業開発研究所、水産試験場、
食とみどりの総合技術センター、
食とみどりの総合技術センター水生生物センター、

市立（３）

大阪市立環境科学研究所、大阪市立工業研究所、
堺市衛生研究所

工業系公設試験研究機関

名称：以下のようなものが多い

（○×県立）工業技術センター

（○×県立）工業技術試験場

全国各地にある

北海道立工業試験場～沖縄県工業技術センター

分野と業務

機械、金属、化学、電気、電子などの分野において
研究開発、技術指導、依頼試験などを行っている

地域産業の振興、地域の中小企業の技術支援

産業振興・企業の成長→税収増

工業系公設試験研究機関の業務

技術相談、技術指導（無料）

技術的な相談を受けたり、助言を行う

開放試験室（有料：装置の利用期間などにより金額が決定）

先端技術の開発などに必要な試験装置や計測機器を
利用を希望する企業のために開放

大阪府産技研では、依頼試験と機器開放

技術研修・講習会（有料・無料）

基礎的、応用的技術知識を習得できるよう、
地域のニーズに応じた技術に関する研修を実施

研究

産業振興、新産業の育成、技術力の向上、成果の普及

大阪府産技研について

所在地は大阪府和泉市のトリヴェール和泉

多様な業種が利用

７０％は大阪、９０％は近畿、
もちろん他府県からの利用も

中小企業が７０％

沿革

昭和４年 大阪市西区に工業奨励館を創設

１９９６年 現在地に移転統合

移転と同時に業務システムを構築

２００４年に業務システムを更新

利用概況

件数

歳入(百万円）

業務を支える情報システム

研究業務の支援

研究計画、研究発表などの帳票管理

薬品・危険物などの管理

技術支援業務の支援

技術相談などの記録

依頼試験、機器利用などの予約、歳入管理

その他

図書管理、催事情報管理

出退勤、出張、休暇などは府全体のシステムで

大阪府総務サービスセンター（ISBN4-8449-8896-4）

産技研業務システムの特徴

研究所の業務（研究、技術支援）をサポート

ウェブアプリケーションとして作成

PostgreSQLなどのオープンソースを活用

自治体のシステムでもオープンソース活用は
さほど珍しくなくなったかも

仕様作成からコーディング、運用にいたるまで
そのほとんどを職員で（一部外注あり）

あまり例がない

技術支援や普及という立場なので、それぐらいは…

自主開発に至るまで

96年からの業務システムの陳腐化、問題の顕在化

UNIX WS + Oracle、Windows 3.1 + VB

サーバのメンテナンス契約切れ

速度の低下、不便さ

システム更新に多額の費用を要する（２４０M円）

じゃあ、情報系の研究員に作らせよう

一部外部委託（２１M円）

開発用機材など（７M円）

01年にメンバーを集め３年間で開発

統括１名、コーディング３名

開発の分担

所内の開発要員３名と外部への委託で開発

研究管理システム

依頼試験・機器利用システム

薬品・危険物管理システム

歳入・歳出、帳票印刷、図書管理（外注）

各システムで使っているOSなどはバラバラ

開発者の経験や好みでやりやすいものを採用

共通しているのはPostgreSQL

研究管理システム

Linux / PostgreSQL / Resin / Java

研究に関係する帳票の管理（ペーパーレス化）

技術指導に関する帳票（カルテのようなもの）
の管理

職員と顧客・企業の管理

この情報は他のシステムでも利用

所内掲示板

所内向け、職員向けの閉じたシステム
（トラブルがあっても気分的に楽？）

例:研究成果等発表伺

依頼試験・機器利用システム

FreeBSD / PostgreSQL / Apache / PHP

依頼試験の登録、決裁

機器と設備の利用

日々の業務、利用者とのかかわりが大きい

トラブルが起こらないようにかなり気を使う

料金計算や帳票出力は外部委託

外部委託部や職員管理など、他のシステムとの
スムーズな連携が必要

例：依頼試験登録画面

処理の流れ （１）

使用者の認証

入力画面表示

利用者情報入力

利用者

検索

検索

確定

試験･機器

検索

検索

確定

利用者番号

番号や氏名の一部など

番号や名称の一部など

番号、名称、単価

入力完了

料金計算

利用日・件数

試験・機器

テーブル

利用者

テーブル

試験・機器

情報入力

予約入力メイン

（PHP）

料金計算

（JavaScript）

き

試験・機器検索（PHP）

利用者検索

（PHP）

次のページへ

処理の流れ （２）

入力情報検証

登録画面表示

利用情報登録

入力完了

整理番号

シーケンス

利用状況

テーブル

料金情報登録

情報登録メイン

（PHP）

き

誰が、いつ、どれを

整理番号発行

歳入執行

テーブル

帳票表示

危険物・薬品管理システム

Win2k / PostgreSQL / Apache / PHP

薬品および危険物の管理

出入庫

使用者

使用量

消防法やISO14000シリーズとの関係

例：薬品・危険物管理

歳入・歳出管理

Linux (FreeBSD) / PostgreSQL / Apache / PHP

依頼試験手数料、設備使用料などの徴収

領収書などの帳票発行

図書の蔵書、貸し出し管理

旧システム (Oracle) からのデータ移行ツール

Oracle → MS Access → PostgreSQL

サブシステムのまとめ

職員管理

顧客管理

研究帳票管理

技術指導管理

掲示板

決裁フロー管理

試験登録

機器利用登録

施設利用登録

技術研修生登録

情報検索登録

歳入管理

歳出管理

書籍管理

データ移行ツール

帳票発行

料金計算

薬品･危険物管理

高圧ガス管理

動静表

その他

その他

その他

その他

薬品・危険物管理

研究管理

依頼試験・機器利用

歳入・歳出管理（外注）

プログラムの量

ファイルの数

依頼試験・機器利用システムだけでおよそ250

外注部分でおよそ200

ファイルの数 ≒ 画面の数

容量

依頼試験・機器利用システムだけで
およそ1.7Mバイト

外注部分でおよそ1.8Mバイト

機器構成

サーバはいわゆるPCサーバ

富士通Primagy TX200

2.4GHz Xeon×２, SCSI RAID1, UPS,...

クライアント

普通のPC（Pen3 800MHz, Celeron D 2.4GHz,...）

Windows 2000SP4, XP SP2 / IE 5.5, 6.0

構内PHS電話（iモード互換）

オープンソースクライアントでも動く（？）

Mozilla Firefox, Knoppix, FreeSBIE,...

構内PHSもクライアントに

ブラウザ内蔵のPHSからもアクセス可

どこでも仕事を…

現在はシステムの一部のみ

クライアントで

凝ったことはできない

オープンソース採用の経緯

９６年にネットワークを使い始めたころから

ウェブサーバ、メールサーバ、その他

９８年ころからサーバが
PC-UNIXベース（Linux, FreeBSD）に

共同研究や技術支援でも使うようになった

企業へのPC-UNIXの導入支援など

それらの実績と経験

システムの安定性、ノウハウの蓄積

予算の問題

なぜPostgreSQL？

2000年に大阪外国語大学と多国語DBに関する
共同研究を開始

PostgreSQL 6.5.3、シーラカンス本の初版

これ以降、PostgreSQLがメインに

例：食の安全を確保する
大阪版トレーサビリティ支援システム

業務システム外注部分を担当していただいた
会社もPostgreSQLでのシステム構築の経験

大阪外大の多国語DB

多国語間機械翻訳のための基礎データ収集

さまざまな国や地域の言語をデータベースに
（外大の専攻語２５ヶ国語全部を）

文字情報だけでなく、音声や字形情報も
扱いたい

UTF-8対応、ラージオブジェクトで
マルチメディアを扱えるPostgreSQLを採用

文部科学省 科学研究費補助金 基盤研究(B)『多言語同時処理によるアジア系言語の自然言語翻訳に関する基礎研究』課題番号14310220、他
の補助を受けています

PostgreSQL以外は？

Oracle

1996～2004年までの業務システムで使っていた

MySQL

最近使い始めた

geeklog、xoopsなどのCMSで

MS SQL

企業への技術支援で

生産管理システムなど

PostgreSQLの使いこなし（？）

あまり凝ったことはしていない

ごくごく基本的なSQLしか
マスターしていないから

SELECTで情報を検索してくる

INSERTで情報を登録する

UPDATEで情報を更新する

DELETEで情報を削除する

データベースの設計

旧システムで使っていたものを引き継ぐ

開発期間の短縮

問題がないわけではない

テーブル名、カラム名をローマ字表記に

互換性保持のために、ビューを使った

テーブルとビューの例

Table "tm_shokuin"

Column | Type | Modifiers

------------------------+--------------------------+-----------

riyousha_sb | character(1) | not null

shokuin_no | character(6) | not null

shimeikana_nm | character varying(40) | not null

shimeikanji_nm | character varying(20) | not null

View "t$職員"

Column | Type | Modifiers

----------------+--------------------------+-----------

利用者種別 | character(1) |

職員番号 | character(6) |

氏名カナ | character varying(40) |

氏名漢字 | character varying(20) |

互換性について

PostgreSQLに特化した機能は
あまり使っていない

例外

オブジェクトID

シーケンス

LIMIT、OFFSET句

データベースの管理と運用

バックアップ

pg_dumpによるバックアップ

サーバのファイルシステムのバックアップ

ログの保存

syslog経由で/var/log以下に保存

１年分保存

Apacheのログと合わせ、デバッグに役立つ

パフォーマンスチューニング

特になし

運用上の問題点

特になし。非常に安定して動作している

PostgreSQLに関する不具合はゼロ

パフォーマンスでも不満なし

利用者100名程度、年間２万件程度だから？

誤操作で悩んだことはあり

テーブル変更時にビューの変更を忘れた

細かなミスの修正は随時

所内掲示板などで寄せられた意見を随時反映

これからやりたいこと

古いデータの整理

９６年以降のすべてのデータが残っている

いつまで置いておけばいいのか

まだまだ余裕はあるが

最初のころに作ったプログラムの再構築

PostgreSQLなどのTipsを身につけたので

システム全体のIPv6対応

オープンソースクライアント対応

デスクトップ環境のオープンソース化

サーバのオープンソースはもう珍しくないから

やりたいこと その２

成果の普及

全国の試験研究機関に宣伝、配布（？）

試験研究機関だけでなく、いろんな自治体に

技術移転

開発と運用で得られたノウハウを
大阪府内を中心とした企業へ

その他、各種業務での活用

技術支援、技術相談

まとめ

地域の産業を支える公設試験研究機関を紹介

研究所の業務を支える情報システムの紹介

オープンソースを活用したウェブアプリケーション

職員が開発および運用を担当

業務システムの中でのPostgreSQLの活用

共同研究がきっかけでPostgreSQLを導入

安定動作に非常に満足している

研太� 産�\

2005-09-02T10:26:37

研太� 産�\