はじめに
本連載では、全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データソース | - | - | ◎ |
各Web公開技術のメリットとデメリット
FileMakerには複数のWeb公開技術が用意されているが故に、どの開発手法を選択すべきかあらかじめ比較/検討する必要があります。各手法の特長はどのようになっているのか、それぞれどのように使い分ければいいのか、気になるところではないでしょうか。それぞれの特長を把握したうえで適材適所で使い分けができるように、各Web公開技術のメリットやデメリット、仕組みについて解説していきます。
先に結論を言えば、どの開発手法を採用するかは、主に次のような判断をすることになるのではないかと筆者は考えています。
- 利用環境が限定されていて機能面に制限があっても特に問題ない場合には「インスタントWeb公開」、そうでなければそれ以外の方法を採用する。
- 製品価格/コストを重視して「カスタムWeb公開」、もしくは既存のシステムと連係しやすい技術や開発者が慣れている開発環境を採用する。
インスタントWeb公開
インスタントWeb公開を利用すれば、データベースソフトウェアでありながらドローソフトウェアのように使用できるFileMaker Proのレイアウト機能を、Web上でも活用することができます。短時間での習得および開発が容易であり、FileMaker Proのスクリプトを駆使することで、プログラミングレスで迅速なサイト開発が可能です。
FileMakerによってすべてのページが自動変換された上で出力される仕組みになっていて、FileMakerらしい使いやすさがWeb上でも実現されていますが、それ故に通常のWebサイトのようにHTMLを自由に記述できないという仕様上の制限もあります。また、「サポートするWebブラウザが限定される」「Webブラウザの同時接続が最大100セッションまで」「FileMaker ProのスクリプトステップはWeb互換のものしか利用できない」などといった制限もあり、細かい部分で意図した通りに制御できない状況に直面することが多いのも事実です。システムに要求される機能によっては、他のWeb公開手法を採用したり、場合によってはクライアントにWebブラウザではなくFileMaker Proを使用することを検討することになるかもしれません。
XSLTによるカスタムWeb公開
カスタムWeb公開には2種類の選択肢が標準で用意されています。1つはXSLT、そしてもう1つはバージョン9で新たにサポートされたPHPです。XSLTを使用したカスタムWeb公開では、FileMaker独自のクエリーコマンドを使用して、FileMaker Proデータベースを制御します。レスポンスデータとしてXMLデータが生成され、サーバーサイドでXSLTによる変換処理が行われた後、出力結果となるHTMLをWebブラウザに返す仕組みになっています。この手法では、FileMaker独自の拡張関数を利用しながら、XSLTスタイルシートを作成してサイトを構築することになります。
XSLTはXMLドキュメントを変換するために使用される言語であるので、XML形式のデータを変換・出力したり、RSSリーダーで読める形式のデータを配信する場合などに有用です。PHPと比較するとセキュリティアップデートなどによる運用上のメンテナンスコストを抑えることができますが、他の言語と比較すると開発ツールやライブラリが少なく、習得に時間がかかるデメリットがあります。
PHPによるカスタムWeb公開
バージョン9ではカスタムWeb公開が新たにPHPにも対応しました。仕組みとしては、XSLTを使用したカスタムWeb公開と同じく内部的にXMLが利用されていますが、オブジェクト指向であるFileMaker API for PHPにより特にXMLを意識する必要はなく、PHPの豊富なライブラリやツールを利用しながらWebアプリケーションを構築することができます。また、付属のPHP Site Assistantを使用することで、サイトの雛形となるPHPファイルを用途に応じて生成することができ、効率的に開発を始めることもできます。
カスタムWeb公開機能は、通常版のFileMaker Serverでも利用可能なことから、導入時のコストを抑えられるというメリットがあります。また、カスタムWeb公開のXMLインターフェイスは、FileMakerが標準でサポートしている言語以外の開発環境や製品、言語でもよく利用されており、他の手法より枯れていて安定度が高いです。FileMaker API for PHPの正式版はバージョン9で新たに登場したものですが、それ以前はパブリックベータ版として公開されていたこともあり、安心して採用対象として検討できる候補となります。
セキュリティアップデートなどによる運用や保守にかかるコストについては他の手法よりデメリット面が目立つかもしれませんが、PHPは習得が容易なスクリプト言語であり、今後はFileMakerユーザーの間でもPHPを利用する方が増えていく可能性があります。
ODBC/JDBCデータソース
FileMaker Server Advancedを利用すると、FileMaker ProデータベースをODBC/JDBCデータソースとして使用することができます。標準規格であるODBCおよびJDBCに対応しており、さまざまな実行環境や開発環境と組み合わせながらSQLでデータベースを制御することができます。例えば、JDBCであれば言語にJavaを使用することになりますが、Javaの充実している開発環境やライブラリ、情報量を利用できるメリットがあります。ただし、FileMakerではLIMIT
句やOFFSET
句を使うことができないといった制限があります。
その他の選択肢
製品が標準でサポートしている上述の手法以外にも選択肢があり、カスタムWeb公開のXMLインターフェイスを利用したオープンソースソフトウェアや商用製品が複数存在しています。これらの中から必要なものを選択、利用すれば、開発者自身が慣れている言語や環境にあわせて開発を進めることができます。また、FileMaker Proデータベースをデータソースとして利用するだけでなく、バージョン9で追加された外部SQLデータソースとの接続機能を利用することも一案です。例えば、インスタントWeb公開のデータソースにFileMakerではなくMySQLのデータベースを利用する、といったことも可能です。FileMakerの使いやすさと拡張性を上手に活用し、目的や用途に応じてFileMakerとRDBMSを組み合わせて利用すれば、ニーズや状況の変化に素早く対応できるシステムを短時間で構築することができるでしょう。
次回は
今回はFileMaker ProデータベースのWeb公開の概要について解説しました。次回も引き続き、Web公開に関する話題を取り扱い、FileMakerらしい使いやすさを実現したインスタントWeb公開機能について具体的に解説していきます。