「長年使ってきたカスタム App がだんだん遅くなってきた。」
「他の検索はそれほど遅くないのに、ある検索だけ極端に遅い。」
「次に作るカスタム App は最初からちゃんとパフォーマンスが出るようにしたいが、どうしたらいいのかわからない。」
…
本ブログでは、こういった悩みを持つ Claris FileMaker ユーザのみなさまに、Claris がこれまでご紹介してきたパフォーマンス向上のヒントをご紹介します。
FileMaker を最近知った方も、もう何(十)年も FileMaker を使ったカスタム App 開発に従事している方も、ご自身のカスタム App で最高のパフォーマンスを実現するための糸口を探してみませんか。
FileMaker パフォーマンス向上のツボ
FileMaker は、一つのアプリケーションを構成する画面からデータベースまでを統合的に開発可能なプラットフォームです。3 層アーキテクチャで言うと、プレゼンテーション層(ユーザインタフェース)、ビジネスロジック層(アプリケーション)、データ層(データベース)のすべてを Claris FileMaker プラットフォーム上で実現することができます。
カスタム App のパフォーマンスも、この切り口で考えることができます。つまり、パフォーマンス向上のツボは、次の 3 つの部分に内在しています。
- レイアウト(画面設計)
- ロジック(計算式、スクリプト処理)
- データベース(スキーマ設計)
Claris では、上記 3 つの観点からパフォーマンスについて包括的に解説するドキュメントを FileMaker 13 プラットフォームの時代から発行しています。日本語版の最新版「FileMaker パフォーマンスを引き出す」(第 1.1 版)は、Claris の Web サイトから無料でダウンロード可能です。
以下では、上記解説書に記載されているパフォーマンス向上のエッセンスと、併せて押さえておきたいナレッジとオンラインセミナーについてご紹介します。
レイアウトとパフォーマンス
FileMaker のレイアウトは、データと利用者との唯一の接点(ユーザインタフェース)であって、利用者のみなさんが一番気になる部分ですね。なるべくたくさんの情報を伝えたい(見たい)、重要な情報はすぐに目につくようにしたい等々、いろいろ考えてあれこれ改良 (?) しているうちに、フォントの種類や色、サイズがまちまちのテキストがレイアウト上に入り乱れたり、様々な情報がレイアウト上にびっちり隙間なく配置されたりすることは、よくあることです。
FileMaker では、開発者だけでなく利用者のみなさんも、表示するテキストやフィールドをドラッグ & ドロップするだけでノーコードでレイアウトを作成したり変更したりすることができますが、レイアウトの作り方によっては、パフォーマンスが非常に悪くなることがあります。
これは、カスタム App をサーバーに置いて共有している場合に特に顕著になります。つまり、クライアント(Claris FileMaker Pro / Claris FileMaker Go / Claris FileMaker WebDirect)で画面を表示するときに、どのタイミングで、どういうデータがサーバー(Claris FileMaker Cloud / Claris FileMaker Server)から転送されるかを理解しておくことが、レイアウトにおけるパフォーマンスを考える上でとても重要です。
レイアウト設計におけるパフォーマンス向上の鍵の一つは、スタイルとテーマです。これまでインスペクタパネルの「スタイル」タブをあまり意識せず、もっぱら「外観」タブで自由にレイアウトをデザインしてきた方は、スタイルとテーマがどれほど大きな影響をパフォーマンスにもたらすのか、そして、どうすればデータ転送量を抑えてパフォーマンスを向上させることができるかについて、この下の参考ナレッジを参照してみてください。
パフォーマンス向上のもう一つの鍵は、レイアウト上に一度に表示するデータの量です。直感的に、レイアウト上に表示するデータは少ない方がパフォーマンスが上がりそうな気はするものの、どう減らせば効果的なのかわからない、また、そもそも情報量を減らさずにレスポンスを改善できないものなのか、こういった悩み・疑問をお持ちの方も、参考ナレッジの中にヒントを探してみてください。
参考ナレッジ:
- FileMaker パフォーマンスを引き出す - 2.1、2.2、3.2
- クラウド上の FileMaker カスタム App のパフォーマンス最適化
- クラウド上の FileMaker WebDirect のパフォーマンス最適化
- 知っておくと得するパフォーマンス Tips !(動画)
- クラウドに適したカスタム App の作成&運用方法 (動画)
なお、FileMaker のスタイルとテーマについて、より深く理解を深めたい方は、以下のナレッジも併せて参考にしてください。
ロジックとパフォーマンス
計算式やスクリプトは、カスタム App で利用するデータを利用者にわかりやすく伝えるために、フィールド値の表示だけでなく、レイアウトの表示の制御やデータベースの管理、セキュリティの設定などに広く利用されています。
FileMaker において計算式やスクリプトをいかにスマートに書くかは開発者であるみなさんの腕の見せ所ですが、計算式やスクリプトを書く際に、まったく同じ処理を何度も実行しないテクニックといった基本動作だけでなく、FileMaker での計算式/スクリプトの内部処理の仕組みを少し知っているだけで、計算式/スクリプトの処理速度を飛躍的に向上できることがあります。
また、何十万件、何百万件にも及ぶ大規模なデータを取り扱っていく上で、検索やソートの処理は欠かせません。このためには、索引を適切に利用することが重要です。さらに、集計値や計算結果を適切に保存することで、コストの大きい不必要な計算を減らしてレスポンスを改善することができます。
今の自分のスクリプトの書き方で大丈夫かな、もっと計算量を減らせないかな、と思ったら、以下のナレッジを参考にしてみてください。
参考ナレッジ:
- FileMaker パフォーマンスを引き出す - 4.1、4.2、4.3
- Top Tips: クラウド上の FileMaker カスタム App のパフォーマンス最適化
- FileMaker データベースのパフォーマンス最適化
- 知っておくと得するパフォーマンス Tips !(動画)
もう一つ、負荷の高い処理はサーバー上で実行する、という重要なテクニックがあります。これについては、この機能が FileMaker バージョン 13 で導入され以来、多くのドキュメントや動画で詳しく解説されていますので、サーバーでカスタム App を共有している場合には利用を検討してみてください。
参考ナレッジ:
- FileMaker パフォーマンスを引き出す - 2.1、4.3
- Top Tips: クラウド上の FileMaker カスタム App のパフォーマンス最適化
- [サーバー上のスクリプト実行]スクリプトステップに関する一般的な情報
- クラウドに適したカスタム App の作成&運用方法 (動画)
データベース構造とパフォーマンス
データベースの構造(スキーマ)は、カスタム App の土台です。土台がイマイチでも上物(レイアウトやロジック)が立派だったら別に問題ないんじゃないの、という考えは、建築物と同じで、大抵の場合は数多くの先達が味わったように残念な結果を招きます。
例えば、データベース構造あるいはリレーションシップ定義が不適切な場合に、ある 1 つのデータをレイアウト上に表示するだけのために、どれだけの不必要なデータがサーバーからクライアントに転送されるか、考えてみたことはありますか?
データベース構造がパフォーマンスに与える影響とその回避方法については、次のドキュメントを確認してみてください。
参考ナレッジ:
- FileMaker パフォーマンスを引き出す - 3.1、3.3
- Top Tips: クラウド上の FileMaker カスタム App のパフォーマンス最適化 - リレーションシップを整理してコンテキストとスコープを限定する
なお、データモデリングやリレーションシップ設計については、FileMaker Master Book 中級編(「第 5 章 リレーションシップ(関連)」)や以下の動画で詳しく説明されているので、ぜひ参考にしてください。
FileMaker Server とパフォーマンス
オンプレミスで FileMaker Server を運用する場合、ネットワークだけでなくサーバーコンピューについても配慮が必要です。推奨される構成については、以下のナレッジベースを参照してください。
なお、FileMaker Server 19.1.2 では、従来の FileMaker Server のデータベースエンジンに大幅な改良を加え、パフォーマンス、安定性、および信頼性を大きく向上させています。詳しくは、以下のナレッジベースを参照してください。
その他のリソース
以上、ご紹介したナレッジの他にも、パフォーマンスに関係するテクニックをピンポイントに学習できる Claris Web セミナーの録画や、FileMaker プラットフォームについて体系的に学習できる FileMaker Master Book とそのオンライン学習用教材など、様々なリソースが利用可能です。パフォーマンス改善のヒントやカスタム App 開発の苦手部分を補強できる材料など、ご自身に合ったリソースを見つけてください。
- Claris Web セミナーの録画(動画):レイアウト、データモデリング、リレーションシップ、検索、スクリプト、関数・計算式、など
- YouTube Claris チャンネル(過去の Claris Engage, FileMaker カンファレンスのセッションなどがご覧いただけます)
- FileMaker オンライン学習初級編(YouTube 動画インデックスページ)
- FileMaker オンライン学習中級編(YouTube 動画インデックスページ)
- FileMaker Master Book 初級編、中級編、上級編(テキスト無料ダウンロードページ)
おわりに
カスタム App において FileMaker プラットフォームが担う処理の多くは FileMaker 側で適切に最適化されますが、カスタム App を作成する際に私たち開発者が少し気をつけるだけで、FileMaker プラットフォームの負荷を軽減し、カスタム App をさらに軽快に利用できるようになります。
長年苦労して蓄積してきたデータを「宝の山」として利用し続けるために、本ブログでご紹介した数々のナレッジをヒントにしてカスタム App を見直してみてください。