FileMakerがカバーする豊富な実行環境
こんにちは。株式会社ライジングサン・システムコンサルティングの岩佐です。
昨今では「クラウドファースト」という言葉もあるぐらい、どんなシステムでもクラウドで動かすのが正義のような風潮があるのではないでしょうか。実際、この数年でさまざまなクラウドサービスが登場し、大規模なシステムから、中小規模のシステムまで、幅広くクラウド環境での運用が可能になってきました。
一方、その対局にある「オンプレミス」ですが、こちらも完全に「過去のもの」になったわけではありません。特に社内のみで使う業務システムを動かす環境としては、まだまだ十分に検討のテーブルに乗せるべき実行環境です。そしてFileMakerは、国や地方自治体などの行政機関、医療施設、原子力関連施設、運航中の航空機や船舶内でも利用されるなど、ユーザのニーズに応じて、クラウドとオンプレミス、さらにそのハイブリッドと、幅広くその実行環境をカバーしています。
そもそもFileMaker Serverとは
ここで、FileMakerプラットフォームのバックボーン、もしくは心臓部といってもよいFileMaker Serverというプロダクトについて少し説明をさせてください。実はITプロフェッショナルに対して、FileMakerプラットフォームの概要をお伝えする際、このFileMaker Serverというプロダクトの位置づけが、いまいちよく理解いただけないことがあります。
FileMaker Serverとは、FileMakerプラットフォームで構築されたアプリケーションを、複数人で安全に利用するためのホスティングサービスおよびそれに付帯するさまざまなサーバサービスを提供するサーバサイドプロダクトです。
以下より、FileMaker Serverが提供する代表的な5つのサービスを解説します。
1. アプリケーションのホスティングサービス
FileMaker Serverのメインサービスです。FileMaker Serverは、データとプログラムが同梱されたファイル(fmp12ファイル)をホストし、各クライアントに対してユーザインタフェース(レイアウト)、ビジネスロジック(スクリプト/カスタム関数)の呼び出しおよびクエリリクエストなどに応答します。
各クライアントからFileMaker Serverへの接続環境は、大きく2つに分かれます。1つは、クライアントデバイスにFileMaker Pro/FileMaker Goがインストールされているケース。そしてもう1つは、これらがインストールされていないケースです。
FileMaker Pro/FileMaker Goがインストールされている場合、ユーザはクライアントデバイスで、FileMaker Pro/FileMaker Goを経由してFileMaker Serverにアクセスします。一方、インストールされていない場合は、Webブラウザを使ってFileMaker Serverにアクセスします。このときは、FileMaker WebDirectというサービスを利用します。
以下、UMLの配置図を使って、FileMaker Serverと、各クライアントのデプロイメントを表したものです。
この配置図を見ると、fmp12ファイルは各クライアントには一切配置されておらず、全てFileMaker Server内に配置されていることが分かります。FileMaker Serverでアプリケーションをホストすれば、各クライアントに対して、最新プログラムを配布するような旧来のクライアント・サーバシステムの運用の煩わしさはありません。アプリケーションの更新は、サーバサイドでの作業のみで完結します。
さらに、FileMaker ServerとFileMakerクライアント間の通信はSSLで暗号化されるので、セキュアなデータ通信が可能です(別途SSL証明書のインストールが必要)。
2. サーバサイドにおけるビジネスロジックのスケジュール実行
FileMaker Serverには、ホストしているアプリケーションに実装されたビジネスロジックをスケジュール実行できる機能が実装されています。例えば以下の機能の運用が可能です。
- 1時間ごとに連携対象の他システムへデータを取得しに行く
- 毎日深夜の時間帯に、大量のトランザクションデータから分析用データマートを生成する
- 月初の深夜に売上の締め処理を実行し、請求書を規定のフォルダにPDF出力しメール送信する
また、スケジュール実行とは少し異なりますが、FileMakerクライアントから任意のタイミングでサーバサイドでのビジネスロジック実行も可能です。FileMaker Pro/FileMaker Goで実行するアプリケーションはクライアント・サーバシステムなので、基本的にビジネスロジックはクライアントサイドで実行されます。
しかし、大量のレコードセットに対して複数のフィールドを一括更新する処理や、あるイベントを発火点として、関連する複数テーブルの複数レコードを正確に更新する、一般的に「トランザクション処理」と呼ばれる処理は、サーバサイドで実行するほうが望ましいです。処理スピードを圧倒的に高速化できるのはもちろんのこと、データの保全性を考慮してもこのような処理はサーバサイドでの実行を検討した方がよいでしょう。
3. オンラインバックアップ
FileMaker Serverには強力なオンラインバックアップ機能が実装されています。オンラインバックアップなのでシステムを停止することなく、確実に大切なデータをバックアップすることができます。また、サードパーティのプラグインやシェルスクリプトなどを組み合わせればオフサイトバックアップの実現も可能です。
バックアップJOBは、任意のスケジュール設定が可能です。そのため、デイリーの夜間バックアップに合わせて、業務時間の日中は30分に1回バックアップを実行する、といった柔軟な運用が可能です。
また、FileMaker Serverはファイル単位における「差分バックアップ」を実行します。前回バックアップ時から更新のないfmp12ファイルは、ハードリンクを生成するのみなので、対象ファイルが大きくてもバックアップは短時間で終了します。そのため、更新頻度の高いテーブルと更新頻度の低いテーブルをファイルレベルで分割しておけば、バックアップ時間の短縮が期待できます。
4. Webサーバサービス
第5回でも言及しましたが、FileMakerはWebDirectという機能を持っています。これはWebブラウザをクライアントとして、FileMaker Serverでホストしているアプリケーションを利用する形態です。FileMaker Pro/Goをクライアントにする場合と比較すると、実装できる機能に制限はありますが、Webブラウザのみでアプリケーションを使える運用の手軽さは魅力のひとつでもあります。
同様に、本連載の第3回で紹介した、FileMaker Data APIというRESTful な Web API サービスも、FileMaker Serverにて提供されます。
5. Server Administratorサービス
FileMaker Serverの各種設定機能、およびイベントログやアクセスログなどの各種ログデータの閲覧機能を、ブラウザをフロントエンドとしたGUI、もしくはコマンドラインインタフェースを介して提供します。このサービスから取得できる各種ログ情報をもとにアプリケーションで発生する遅延処理などのボトルネックを特定するほか、不正アクセスなどの追求も可能です。