Rapid Application Developmentツール (1):DBフロントエンド

Rapid Application Development環境では、グラフィカルユーザインタフェースをビジュアルにデザインしてコードテンプレートを生成できる。それから、どのようなイベント(クリックなど)が発生したら何を行うかを記述するコードを追加すればよい。米Borland社のKylixは、RADアプリケーションとして知られているが、余命いくばくもないという噂だ。となると、これに代わる製品を見つけなければならない。

一般的な方向として2つ考えられる。プログラム可能/スクリプト可能なデータベースフロントエンドを使うか、新たに開発または移植されたフル機能のプログラミング言語を使うかのどちらかだ。著名なフル機能プログラミング言語には、ビジュアル開発用に拡張機能を追加したものもある。この特集の第一回では、まずデータベースフロントエンドについて見てみよう。なぜフロントエンドと呼ぶのだろうか。たとえば、Ed CarpのEscapade言語のようなWeb開発ツールは、バックグラウンドでリレーショナルデータベースサーバと通信する。 RDBMSでは、すべてのデータが構造化テーブルに保存される。ビジターがWebベースのフォームに情報を入力すると、Escapadeはネットワーク上のサーバにあるRDBMSからStructured Query Language(SQL)を使用して情報を抽出する。回答はHTMLでラップされ、Webサーバを介してビジターのブラウザに配信される。

GUIデータベースフロントエンドも同じように動作する。違いは、結果の表示と対話のためにブラウザが必要ないという点だ。ブラウザの代わりに、ツールキット(GTK、QTなど)のネイティブウィジェットがデータの表示および対話のタスクを受け持つ。アプリケーションを作成するには、プログラミング言語でフロントエンドを記述できなければならない。

では、どんなソリューションがあるか見てみよう。

Rekall

昨年11月、theKompanyは、マルチプラットフォーム、マルチデータベースの、Microsoft Accessライクな製品、Rekallを作成した。デュアルライセンスで入手可能。商用アプリケーションの開発には、製品版を$69.95(ダウンロード価格)または$79.95(ボックス価格)で購入する必要がある。開発したソフトウェアをフリーライセンスでリリースする場合には、RekallのGPL版を使用できる。

RekallのIDEは、ビジュアルフォームデザイナ、ビジュアルレポートデザイナ、データベースとテーブルの管理、クエリデザイナ、スクリプティング用Pythonエディタ/デバッガで構成される。データのインポートとエクスポート(ファイルからdbテーブル、dbテーブルからファイル)も可能だ。Rekallはよく知られた成熟した製品である。スクリプティング用にPythonを採用しているので、Pythonが動作するプラットフォームすべてで使用できる。Rekall は、MySQL, PostgreSQLDB2、XBase、ODBC準拠のデータベースサーバに接続でき、これは市場の99%のデータベースサーバを網羅している。

OpenOffice.orgとStar Office

オフィススイートにデータベースがなかったらどうなるだろうか。Microsoft OfficeにはMicrosoft Accessがあり、WordPerfect OfficeにはParadoxがあり、OpenOffice.orgStar Officeには…、ODBCドライバかJDBCドライバの存在するデータベースサーバすべてがある。適切なドライバで目的のデータベースに接続したら、後はウィザードを開始してデータベース内のレコードの表示、更新、削除用のフォーム作成工程に進むことができる。

さらに多くの対話操作が必要なら、OpenOffice.org/Star Basicを使用してアプリケーションにスクリプトを記述できる。フォームデザイナもパッケージに含まれている。OpenOffice.orgのドキュメンテーションプロジェクトでは、名前付きパラメータを使ってテーブルをリンクする方法についてのよいマニュアルが用意されており、データベーステーブルの作成からスクリプティングまで、全プロセスが説明されている。OpenOffice.org/Star Officeで構築したアプリケーションは、このOffice環境でのみ動作する。

KOfficeのKexi

KOfficeは、KDEのオフィススイートである。Kexiは、まだバージョン0.1のベータ2リリースの段階で、今も開発作業中である。スクリーンショットを見ると、エンティティリレーションシップデータベースデザイナ、ドラッグアンドドロップクエリデザイナ、ビジュアルフォームデザイナ、スクリプトエディタの様子がわかる。スクリプティングは、JavaScript/ECMAScriptライクな、Trolltech社(ノルウェー)のQtツールキット用言語、QSAで行うことができる。QSAを使うと、すべてのQtベースアプリケーションに内部スクリプティングを追加できる。KexiはMySQL、PostgreSQL、Interbase/Firebird、SQLiteに接続可能だ。また、Kexiは他のKOfficeアプリケーションともうまく統合され、Kugarでレポートのデザインと生成を容易にしたり、KWordでメールをマージしたりできる。

knoda — Knorr’s Datenbank

ドイツのプログラマ、Horst Knorr氏によるhk_classesは、データベースアプリケーション開発用のGUI独立型のC++クラスだ。hk_classesはhk_kdeclassesと組み合わせて使うことで、KDE用のrapidデータベースアプリケーション開発をサポートする。KDEとhk_classesのこの結合の成果がknodaだ。knodaはMySQL、PostgreSQL、ODBC準拠のデータベースに接続可能。ここで紹介する他のすべてのアプリケーション同様、ビジュアルフォームデザイナ、レポートジェネレータ、テーブルデザイナ、クエリデザイナが備わっている。Pythonでアプリケーションのスクリプトを記述できる。現在はバージョン0.62で、非常に安定して成熟していると思う。knodaについて私が最初に耳にしたのは2〜3年前のことだ。

Kommander Editor

Kommander Editorは、本来ならデータベースフロントエンドとしてここに登場するものではない。これについてはこの特集の第三回で詳しく取り上げる予定だが、ここでも少し紹介することにしたのは、Kommander Editorが約束する機能でデータベースフロントエンドを容易にプログラミングできるからである。Kommander Editorは、KDE HTMLエディタとしてよく知られているQuanta+の一部である。基本的にはQt Designerの拡張版で、その追加機能によってスクリプトにKDE GUIを追加できる。この概念はKaptain、XDialog、KDialogからきている。Qt Designerとの組み合わせにより、Kommanderは好きな言語による迅速なGUIスクリプティングを実現する。

ランタイムモジュールのKommander Executorは、Qtウィジェットから入力を受け取って、CLIスクリプトの変数として実行する。その結果のCLI出力は、表示用GUIウィジェットにまた接続できる。

何ヶ月か前に、Quantaメーリングリストで興味深い投稿を読んだ。データ対応ウィジェットをKommanderに追加することについてだった。Quantaプロジェクトのプロジェクトリーダー、Eric Laffoon氏にこの開発の進捗状況について聞いてみたところ、以下のように答えてくれた。

残念ながら、その機能には我々開発者が十分対応できていないといわざるを得ません。KDE 3.2をリリースできるようになったので、今後できるだけ早く対応したいと考えています。ウィジェットをもっと簡単に追加できるようにするコードをMarc Brittonが書いたのですが、まだドキュメント化しておらず、誰もこれをレビューして使用可能にする時間がなかったのです。Kommander(基本的にはQt Designerの変更版)の設計上、どんなKDEウィジェットを追加することも可能になるはずです。Horst Knorr氏とknodaウィジェットを追加することについても話し合ってきましたし、同様にKexiウィジェットの追加も可能なはずですが、まだよく検討する必要があります。計画では、開発者は簡単にウィジェットを追加できるようになる予定ですが、dataのような複雑なウィジェットについてはインタフェースサポートも含めてもう少し検討する必要があります。
Kommanderには今後注目したい。また、開発資金提供に協力することも検討すべきだろう。

Raining Data社のOmnis Studio

Raining Data社のOmnis Studioは、ここで紹介する中で唯一の完全に商用のアプリケーションである。同社のWebサイトによれば、「Omnis Studioを使えば、Oracle、Sybase、DB2、Informixや、MySQLやMS SQL ServerなどODBC準拠のすべてのデータベースを含む、主要な全サーバデータベースにアクセス可能なフォームベースクライアントアプリケーションを作成」できるという。

Omnis Studioには3種類ある。Standard Editionは$250、Enterprise Editionは$1,250。WebベースのアプリケーションをISPまたはASPとして開発する場合には$2,450のWeb Editionを購入する必要がある。ユーザランタイムライセンスには追加料金が必要だ。Enterprise EditionとWeb Editionでのみ、好きなデータベースサーバにアクセスできる。Standard Editionでは、ネイティブのOmnisデータフォーマットのみにアクセスできる。開発環境は機能豊富で使いやすい。Onmis Studioの動作環境は、Linux、Windows、Mac OSである。

結論

市場には、データベースにアクセスするアプリケーションの迅速な開発を支援する製品が多く出ている。ブラウザを使わずにデスクトップから記事データベースを管理したい場合、または社内クライアントデータベースに使いやすいインタフェースが必要な場合、Linux用フロントエンドを作成するツールはダウンロードで手に入る。中でも成熟しているのはRekallとknodaだろう。knodaはLinuxとKDEだけが対象だが、Rekallは他のプラットフォームで使用できる。どちらもスクリプティング言語としてPythonを採用している。

このように製品を列挙してみると、GTKツールがないことに気づく。どの製品も、Qtベースか、別のツールキット(OmnisとOpenOffice.org/Star Officeの場合)を採用している。ここで言及したタスクを実現できるもので、GTKやGnomeに対応したものは見当たらない。間違っていたら指摘してほしい。その場合は喜んで訂正させてもらう。

Michael ‘STIBS’ Stibane─―ドレスデン(ドイツ)近くのEastern Ore Mountains(いわゆる「Christmas County」)にある古い水車小屋に住む。Linux分野のフリーランスのトレーナーおよびコンサルタントとして働くほか、ドイツの2つのLinux雑誌に記事を執筆、またEscapade Scripting Language、MEPIS Linuxthe LPIのボランティアとしても活動。Linuxデスクトップ、Linuxターミナルサーバ、中小企業のLinuxシステム、およびLinux教育に関心を持つ。