PostgreSQLを活用した自治体向け
業務システムとデスクトップ環境の
オープンソース化への取り組み

日本PostgreSQLユーザ会
関西オープンソース2005 ユーザ企画

2005-10-28＠大阪産業創造館 5F A+B会議室

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

http://tri-osaka.jp/

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

○石島 悌（いしじま だい）

平松 初珠（ひらまつ はつみ）

本日のお話

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

研究所と業務の紹介

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

特徴、システム構成など

PostgreSQLの活用について

導入のきっかけ

システムでの利用

デスクトップ環境のオープンソース化について

クライアントにFreeBSDやLinuxを

まとめと今後の課題

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

大阪府が設置した「公設試験研究機関」

職員（研究者）は大阪府の公務員

全国の自治体（主に都道府県）に同種の機関がある

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

府内の産業振興・中小企業の技術支援が目的

機械、金属、化学、電気など「ものづくり支援」

もちろん、情報通信技術の支援もやってます

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

大阪府産技研（あるいは単に「産技研」）と
略されることが多い

ちなみに国の「独立行政法人 産業技術総合研究所」
は「産総研」と略されることが多い（？）

続・大阪府産技研について

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

大阪市内から１時間ぐらかかる

泉北高速鉄道の終点（和泉中央）からさらにバス

多様な業種が利用

中小企業の利用が７０％

大阪府内の企業が７０％、近畿で９０％
もちろん他府県からも利用あり

沿革

１９２９（Ｓ４）年 大阪市西区に工業奨励館

１９９６（Ｈ８）年 現在地に移転・統合

移転時に業務システム（所内情報システム）を構築

２００４年に業務システムを更新、オープンソース化

大阪府産技研の業務

技術相談、実地指導（なんと無料！）

来所あるいは現地で技術的な相談を受ける

電話やネットでの相談も

依頼試験・設備開放（有料）

各種試験装置や計測機器などを利用を希望する
企業に開放

技術研修・講習会・セミナーなど

基礎から応用まで、ニーズに応じて実施

研究

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

大学などとの共同研究、企業からの受託研究（有料）

利用概況

件数

歳入(百万円）

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

研究業務の支援

研究計画・研究発表などの決裁および帳票管理

薬品や危険物などの管理

技術支援業務の支援

技術相談、実地指導などの記録

依頼試験、設備開放（機器利用）などの予約
および歳入管理

その他

図書管理、催事情報管理

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

大阪府総務サービスセンター ISBN4-8449-8896-4
「大阪府庁の総務事務改革～官民協働によるシェアードサービス」

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

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

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

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

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

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

あまり例がない

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

自主開発にいたるまで

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

UNIX WS + Oracle、Windows 3.1 + VB

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

速度の低下、不便さ

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

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

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

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

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

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

機器構成

サーバはいわゆる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モード互換）

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

詳しくは後ほど

開発の分担

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

研究管理システム（ポータルシステム）

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

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

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

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

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

共通しているのはPostgreSQL

研究管理（ポータル）システム

Linux / PostgreSQL / Resin / Java

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

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

職員と顧客・企業の管理

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

所内掲示板

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

次スライドに画面例を

トップ画面および「研究成果発表等伺」

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

FreeBSD / PostgreSQL / Apache / PHP

依頼試験の登録、決裁

機器と設備の利用

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

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

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

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

次スライドに「依頼試験登録画面」の画面例を

さらにその次に処理の流れを

処理の流れの例

使用者の認証

入力画面表示

利用者情報入力

利用者

検索

検索

確定

試験･機器

検索

検索

確定

利用者番号

番号や氏名の一部など

番号や名称の一部など

番号、名称、単価

入力完了

料金計算

利用日・件数

試験・機器

テーブル

利用者

テーブル

試験・機器

情報入力

予約入力メイン

（PHP）

料金計算

（JavaScript）

き

試験・機器検索（PHP）

利用者検索

（PHP）

次のページへ

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

Win2k / PostgreSQL / Apache / PHP

薬品および危険物の管理

出入庫

使用者

使用量

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

次スライドに「薬品・危険物管理」の画面例を

歳入・歳出管理

外部委託で作っていただいた

Linux (FreeBSD) / PostgreSQL / Apache / PHP

開発時はLinux (RedHat 7.3)

現在はFreeBSD 4.9Rで（試験・機器サーバで一緒に）

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

領収書などの帳票発行

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

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

Oracle → MS Access → PostgreSQL

次スライドに「歳入管理」の画面例を

サブシステムのまとめ

職員管理

顧客管理

研究帳票管理

技術指導管理

掲示板

決裁フロー管理

試験登録

機器利用登録

施設利用登録

技術研修生登録

情報検索登録

歳入管理

歳出管理

書籍管理

データ移行ツール

帳票発行

料金計算

薬品･危険物管理

高圧ガス管理

動静表

その他

その他

その他

その他

薬品・危険物管理

研究管理（ポータル）

依頼試験・機器利用

歳入・歳出管理（外注）

プログラムの量

ファイルの数

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

外注部分でおよそ200

ファイルの数 ≒ 画面の数

容量

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

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

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

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

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

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

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

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

それらの実績と経験

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

予算の問題

なぜPostgreSQLを採用？

2000年頃に大阪外国語大学と多国語DBの共同研究

多国語間機械翻訳向け基礎データ（文字・音声など）収集

多国語・マルチメディア対応のPostgreSQLを選択

インターネットでの技術情報提供システムにも採用

メルマガ配信のユーザ管理、蔵書・特許検索

テクニカルシート（A4サイズにまとめた技術資料）

PostgreSQL 6.5.3、シーラカンス本の初版の頃（？）

これ以降、PostgreSQLがメインに

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

めっき加工業向け生産管理システム（フロントエンドはAccess）

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

PostgreSQL以外は？

Oracle

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

MySQL

最近使い始めた

geeklog、xoopsなどの
CMS（コンテンツ・マネジメント・システム）で

MS SQL

企業への技術支援で

生産管理システムなど

データベースの設計

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

開発期間の短縮、しかし、問題がないわけではない

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

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

例

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) |

使いこなし・互換性について

凝ったことはしていない

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

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

例外

オブジェクトID

シーケンス

LIMIT、OFFSET句

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

バックアップ（crontabで定期的に）

pg_dumpによるバックアップ

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

バキューム処理（crontabで定期的に）

ログの保存

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

１年分保存

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

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

特になし

運用上の問題点など

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

PostgreSQLに関する不具合はゼロ

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

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

細かなミスの修正や改良は随時

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

初歩的な失敗でちょっと苦労したこともあり

テーブル再作成時にビューの更新を忘れた

ODBC経由でAccessをフロントエンドにしたとき
バージョンの違いによる挙動の違いで悩んだ

initdb時に「--nolocale」オプション追加で解決

クライアントにオープンソース

サーバでオープンソースはもう珍しくないから
次はクライアントのオープンソース化を

開発当初はターゲットはInternet Explorer限定

日々の業務にオープンソースを使っている人も
ハッピーな環境を構築したい

全部のクライアントをオープンソース化するなど、
原理主義的なことを目指しているわけではない

これまでのスライドでお気づきの方も？

一部の画面キャプチャはWindows上でのFirefox

OSもオープンソースで

FreeBSDとLinuxで動作検証

FreeBSDをクライアントに

FreeBSD 4.11R で検証

+ packages

mozilla-1.7.5_1,2 + ja-mozilla-jlp-1.7.5,1

acroread-5.10.1

ja-kinput2-canna+freewnn_3.1.2, etc

次スライド以降に画面キャプチャを

職員動静表、名刺印刷申請書作成

帳票表示もできている

Linuxをクライアントに

knoppix_v4.0.2DVD20050923-20051006_IPAFont.iso
を使って検証

マシンはPen4 2.8GHz, 512M RAM

ブラウザとしてFirefoxとKonqueror

Konquerorで文字化け…

単に <META … charset= … >を忘れてるだけ？

次スライド以降に画面キャプチャを

掲示板・ミーティングボード

動かないサブシステムも

外注した「歳入・歳出管理システム」

ブラウザのチェックを行っている

本質的にはJavaScriptの問題

次スライドに画面キャプチャを

その次にブラウザチェック部分を

どれぐらい使える？

現場の研究員が業務に使うのは問題ない（と思う）

入力済みデータの参照

新たなデータの入力

そもそも開発時にMozillaを使ってたし…

JavaScriptのデバッグがIEより楽（JavaScriptコンソール）

動かないサブシステムもあり、要改造かも

しかし、使用者はオープンソース派でないから…

そもそも問題なのは業務システムではない

上級官庁から降りてくるデータがべたべたの
ベンダー依存であること、など

「ユニバーサルデザイン」とか言ってる割に（以下自粛）

まとめと今後の課題

府内の企業を支援する大阪府産技研を紹介

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

職員が開発および運用を担当、オープンソースを採用

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

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

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

オープンソースクライアントでも使える

さらに使えるようにしたい

次年度の研究テーマとしてより本格的に

システム全体のIPv6対応に取り組んでいる

次年度以降の所内ネットワークのIPv6化にあわせて

謝辞

大阪府産技研の業務はPostgreSQLを
はじめとするOSSなしには成り立たちません

それらの開発者ならびにコミュニティの皆様に
感謝の意を表します

業務システム開発の成果を公開、
企業への技術支援に活かすことによって
フィードバックしたいと考えています

ご清聴ありがとうございました

研太� 産�\

2005-09-02T10:26:37