Open OLTP system MONTSUQI

Last modified: Wed Dec 28 17:44:45 JST 2005

MONTSUQI(panda)

概要

MONTSUQIは現在開発中のLinux上のOLTPモニタです。仕様や考え方は富士 通の大型汎用機用トランザクションモニタである、AIMを参考にしています。

名称がpandaからMONTSUQIという名に変更になっています。これは、作者が「も うちょっとマジメな名前にしよう」と思ったからです。元々pandaの名前は「パ ンダはきっちり食った順番に消化する」という話から、「それはトランザクショ ンキューに似てるな」と思って付けたもので、いわばコードネームなのです。 何のacronymでもないし、理由が理由なんで、あまり大きな声では言えんのです。 で、まぁちゃんと納品するプログラムなんで、もうちょっとマシな名前というこ とで、MONTSUQI(MONitor of Transaction Service, Utitily and Queue Interface)なんつーこじつけのacronymを考えて、MONTSUQIという名前にしたの が、実は去年のことです。わかる人はわかると思いますが、「紋付」というの は、英語のtuxedo(タキシード)に対応した語で、つまりは同じOLTPモニタである TUXEDO に対抗しているわけです。同じ「対抗」ということなら、「ジーパンにT シャツ」な方向もあったのですが、やはりOLTPモニタですから、「きっちりと した正装」でないとと言うことで、国産でもあるので、「西洋の正装がTUXEDO なら、日本の正装はMONTSUQIだぜい」ということで、考えた名称です。

本システムは 日本医師会 殿による、 ORCAシステム のミドルウェアとして採用されています。つまり、現状既に数100サイト(もっ と?)で業務システムを動かしているソフトウェアです。また、 Laborシリーズでも使ってい ます。

主な特徴

独自にGUIシステムを持つ
ホスト端末モデルの実行でありながら、端末がGUIで動く
webインターフェイスを持つ
webアプリケーションをTPモニタ配下で動かすことが出来る上に、 GUIシステム上のアプリケーションと同じプログラムで動く
柔軟である
様々な運用に対応出来る
多重会話をサポートしている
接続端末数が増えてもOSに与える負荷はあまり大きくならない
負荷分散を考慮している
アプリケーションサーバを複数のホストに分散させることが出来るた め、高負荷でも運用出来る
独自のデータ保全機能
データベースの機能とは無関係にレプリケーション、並列更新、ロギ ング、バックアップシステムを持つ
機能拡張が容易
シンプルな構造を持ちながら、機能拡張が容易になるように設計され ている
IP v6 ready
IP v4とIP v6のいずれの環境でも動きます
SSL support
SSL による暗号化通信と X.509 による認証に対応しています
クラスタリング対応(Ver 1.2.0より)
アプリケーションサーバのクラスタリングが可能です
国際化(Ver 1.2.0より)
内部データの扱いが国際化されていて、言語ハンドラ毎、端末毎 に設定可能です

ただし、現在公開のバージョンはトランザクション管理はしていることはして いますが、まだ私の考える仕様にはなっていません。一応使えることは確かな のですが、「まだこんなもんじゃないぜ」です。以前の版よりは、かなり強力 になりましたが。

MONTSUQIとしての言語対応は、 dotCOBOL OpenCOBOL とCと Ruby の他、CGI類似のインターフェイスにより、perl等にも対応しています。ただ しCGI類似のインターフェイスでは、Javaのような起動に時間のかかる処理系 では現実的ではないので、常駐型のハンドラを開発中です。1つの業務内で複 数の言語ハンドラが使用出来ます。つまり、アプリケーション開発言語の混ぜ 書きが可能です。

データベースはPostgreSQLに対応していますが、それ以外のデータベースシス テムへの対応は、若干のコードを追加するだけでOKです。何種類かのデータベー スシステムを、組み合わせてトランザクション管理するということも可能になっ ています。たとえば、PostgreSQLの他に全文検索エンジンを絡めるとか、imap フォルダをデータベースとしてアクセスしてアプリケーションから使うという こともコード追加で可能になっています(そのような抽象化がされている)。

MONTSUQIのモジュールにはgltermというGUIをC/Sで実現するライブラリがあり、 MONTSUQIとは無関係に利用可能です。gladeで作った画面が処理出来ます。

同様にhtserveというwebアプリケーションを動かすためのライブラリもあり、 これもMONTSUQIと無関係に利用可能です。HTML + マクロで画面を定義するこ とが出来、アプリケーション作成とデザインを全く独立に行うことが出来ます。

gltermはMONTSUQIの一部のため、プログラムはMONTSUQIの アーカイブの中にあります。

スクリーンショット

アーカイブの中にあるサンプルのスクリーンショットです。

sample1
sample2

ドキュメント

SmartDocで書いたドキュメントが、 MONTSUQI解説書にあります。このドキュメントを閲覧するのは、 EDoMaEを使っています。

環境

MONTSUQIは以下のライブラリに依存しています。

gtk+panda
libmondai
libxml2
glib

なお、web機能だけ使う場合はgtk+pandaは不要ですが、その時にはconfigure のオプションとして、

--disable-client

を指定する必要があります。

ダウンロード

アーカイブは、MONTSUQI.ORGから たどって取って下さい。 最新が欲しい人は、cvsから取って下さい。cvsも同じく MONTSUQI.ORG からたどって下さい。

問い合わせ先

質問等がありましたら、直接ま で連絡下さい。既に実績のあるソフトウェアですから、業務システムに使うの には十分でしょう。

一緒に開発したい人を歓迎です。本格的に取り組みたい方は、 勤務先の採用情報 なんぞも 見てもらうと嬉しいかと。慢性的人手不足で公私共に苦しんでおります。

gtk+panda

MONTSUQI(panda)を作るのに必要になったウィジェットです。現在は、

数値を入力するウィジェットGtkNumberEntry
その他、いろんなウィジェット(主にマウス操作を最小にする入力系 のウィジェット)
gtk+pandaをgladeで使うためのパッチ

が入っています。つまりGTK+に不足している「業務システムを作るのに必要な ウィジェット」を強化したものです。

ただ、仕事の都合で全部が全部私の作品じゃないです。

gtk+pandaに対応したlibgladeもあります。同じく、 MONTSUQI.ORGから取って下さい。

libmondai

MONTSUQIのデータ処理手続きをライブラリ化したものです。MONTSUQI内部での データ形式を介して、COBOL形式(2種類), CSV(4種類), CGI, RFC822, XML(2種 類)間での相互のデータ変換を可能にしています。同じく、 MONTSUQI.ORGから取って下さい。


おごちゃんのホームページへ