はじめに
本連載では、全12回のリレー形式で「FileMaker Pro」というデータベースソフトウェアを紹介していきます。前回は、Juppoグループの永井氏が『FileMakerにおける大規模開発への対応』を紹介しました。
以降、3回に渡ってFileMakerのWeb公開機能を紹介します。今回は(株)エミックの松尾が、FileMakerが対応しているWeb公開の種類やその仕組み、それぞれのメリット・デメリットについて解説します。
FileMakerによるWeb公開の手法とその種類
FileMaker Proデータベースを利用してWebアプリケーションを構築する手法には複数の選択肢が用意されています。Web公開の手法に関する選択肢としては、インスタントWeb公開、カスタムWeb公開、ODBCおよびJDBCが挙げられます。
「インスタントWeb公開」は、FileMaker Proで定義したレイアウトをほぼそのままにWebブラウザから利用できる画期的な機能です。HTMLやプログラミングに関する知識がなくても、データベースと連動したWebアプリケーションを開発することができ、FileMaker Proの使いやすさを体現した機能と言えます。データベースエンジンが刷新されたバージョン7以降で飛躍的に機能が向上しており、ぜひ読者の皆さんに一度試用・評価してもらいたい箇所の1つです。ただし、インスタントWeb公開機能には仕様上の制限もありますので、インスタントWeb公開では対応できない機能が必要な場合には、カスタムWeb公開やODBC/JDBCを検討することになるでしょう。
「カスタムWeb公開」は、HTMLやプログラミングに関する知識のある開発者向けに用意されている機能であり、各種Web関連技術を活用して機能拡張や表示の調整ができるようになっています。FileMaker独自のAPIが用意されており、本記事執筆時点で最新バージョンであるバージョン9では、標準でPHPとXSLTに対応しています。その他にODBCやJDBCを使用する方法もあり、例えばJava ServletからJDBCを使用してFileMaker Proデータベースに対してSQLで制御することも可能です。
このようにFileMakerのWeb公開にはさまざまな手法が用意されており、インスタントWeb公開に見られるような使いやすさだけでなく、各種Web関連技術を活用できる拡張性も備えています。
Web公開に必要なFileMaker製品
サーバー製品の上位バージョンであるFileMaker Server Advancedであれば上述の機能がすべて含まれていますが、採用するWeb公開手法や適用規模によっては必ずしも同製品を採用する必要はありません。バージョン9では、通常版のFileMaker ServerでもカスタムWeb公開機能を新たに利用できるようになりましたので、カスタムWeb公開のみ使用する場合にはFileMaker Serverを利用するという選択もあります。FileMaker ServerとFileMaker Server Advancedの価格差を考慮すると、コスト面から今後はこの選択が増えていく可能性があります。なお、バージョン8およびそれ以前では、通常版のFileMaker ServerにWeb公開機能が備わっていないので注意してください。
インスタントWeb公開に限り、デスクトップ製品であるFileMaker ProおよびFileMaker Pro Advancedでもその機能を利用できますが、これらの製品ではインスタントWeb公開の同時接続上限数は5セッションです。コストを抑えてイントラネットで小規模に運用する場合にはFileMaker ProでインスタントWeb公開機能を利用するという選択もありますが、それ以上の規模を求める場合にはFileMaker Server Advancedが別途必要になります。
なお、サーバー製品であるFileMaker ServerとFileMaker Server Advancedは、FileMaker Proデータベースを複数のクライアントで共有することに特化したサーバーソフトウェアです。そのため、FileMaker Server単体ではFileMaker Proデータベースを作成することはできません。データベースの作成や変更、修正にはFileMaker Proもしくは開発者向けのFileMaker Pro Advancedが必要になります。
FileMaker Pro(Advanced) | FileMaker Server | FileMaker Server Advanced | |
FileMakerネットワーク共有 | ○ | ◎ | ◎ |
インスタントWeb公開 | ○ | - | ◎ |
カスタムWeb公開 | - | ◎ | ◎ |
ODBC/JDBCデータソース | - | - | ◎ |