はじめに
こんにちは。株式会社ライジングサン・システムコンサルティングの岩佐です。恐らくこの記事をお読みいただいているITプロフェッショナルの皆さまは、業務系のシステム開発に従事されている方が多いのではないかと思います。
昨今の業務系システム開発では、何らかの形で他システムとの連携を要求されることがほとんどです。利用する開発プラットフォームが、より少ない工数・コストで、他システムとの連携手法を数多く持つということは、それだけ柔軟なソフトウェア開発が可能であり、結果としてソフトウェア開発の短納期・省コスト化に貢献できます。
そのため、さまざまなローコード開発プラットフォームの導入を検討する上で、システム間連携機能はとても大切な評価ポイントになります。今回は、特にFileMakerプラットフォームがもつ、外部システム連携にフォーカスし、その魅力をお伝えしていきたいと思います。
FileMakerプラットフォームが提供する3つの他システム連携機能
FileMakerプラットフォームには、他システム連携を実現するためにさまざまな機能が提供されていますが、今回は弊社で最も利用頻度の高い3つの機能をご紹介します。
- ESS(External SQL Data Source)
- cURLオプションを活用したWebサービスとの連携
- FileMaker Data API
実はこれら以外にも、FileMaker ServerをODBCサーバとして公開する機能や、Excel、CSV、XMLファイルなどの中間ファイルをインポートする伝統的な連携方法のほか、最新バージョンの19.3ではOData(Open Data Protocol)による連携機能も提供されています。しかし、今回はこの辺りの連携手法については割愛します。
ESS(External SQL Data Source)
最初にご紹介するESSは、今回ご紹介する機能の中では最も古くから提供されているもので、システム間連携をする場合は現在でもポピュラーな方法です。ESS連携を図式化すると、以下のような接続になります。
例えば、あるプロジェクトで、FileMakerで構築するソリューションから、基幹系システムのリソース系テーブルへの参照要求が発生したとします。その基幹系システムがOracleやMicrosoft SQL Serverなど一般的なRDBMSで実装されている場合、ESSを使うと、ODBC経由で基幹系システムのリソース系テーブルにアプローチすることが可能です。ODBC接続といっても、各クライアントデバイスにODBC接続設定は必要ありません。
FileMaker Serverで接続設定をしておけば、各クライアントデバイスからはあたかもFileMaker Serverにホストされたデータベースにアクセスするように、OracleやSQL Serverに格納されているデータにアクセスすることが可能です。
ESSによる接続可能なSQL Data Sourceは、ただODBCドライバが提供されているだけではなく、FileMaker ServerがESS接続に対応している必要があります。詳しくはこちらのカタログスペックを参照してください。
ESSはとても便利であり、ODBC接続という「枯れた技術」を用いるものなので、多くのITプロフェッショナルにとっても理解しやすく、手軽に使える連携手法です。ただし、どうしてもシステム間は「密結合」となってしまい、最近のITアーキテクト的に推奨される手法ではありません。また、実際のプロジェクトでは、より厄介な問題が発生します。
例えば基幹系システムを構築したベンダーと、FileMakerソリューションを開発するベンダーが異なる場合、多くのケースではこのような基幹系システムのテーブルへ直接接続する連携は、ほぼ確実にNGとなります。
理由は、障害発生時の責任分界点が設定しづらいほか、テーブル構造そのものが知的財産権によって保護されているからです。特に基幹系システムには、パッケージ製品やERPなどが多く用いられるので、このような直接接続は実際のプロジェクトだと技術的な問題ではなく、契約的な問題で見送られるケースが多くなります。
もちろん、こういった問題を回避するために、データ連携用の中間サーバを導入したり、データ連携用のミドルウェアを導入したりする手法もありますが、これらの手法は高コストになる傾向がありますし、中間サーバをどちらのベンダーが運用・保守するのかといった新たな課題も出てきます。
ESSは手軽に使える連携手法なのですが、このような側面もありますので活用するには技術以外の部分にまで視野を広げて考慮する必要があります。
cURLを活用したWebAPIの実行
次はWeb APIを用いた連携手法についてご紹介します。昨今の業務システムは、社内にあるシステムだけではなく、さまざまなクラウドサービスと連携するケースが増えてきました。弊社でもChatworkやDropbox、クラウド会計システムのfreeeなどと連携するソリューションを開発していますが、このようなWebサービスと連携する場合に便利なのが、cURLを応用したWeb APIの実行機能です。
FileMakerプラットフォームでの開発では、「スクリプト」と呼ばれる独自のプログラムコードを記述してアルゴリズムを組み立てていきます。この「スクリプト」の1命令を「スクリプトステップ」と呼びますが、このスクリプトステップに「URLから挿入」スクリプトステップというものが用意されています。
この「URLから挿入」スクリプトステップは、パラメータとして設定されたURLの戻り値を、変数やフィールドなどに取得する機能を提供します。例えば、この「URLから挿入」スクリプトステップのURLにCodeZineのURLを渡して結果を受け取ると、ブラウザのソースコード表示機能で閲覧可能なHTMLのソースを、文字列として変数などに取得することが可能です。
この「URLから挿入」スクリプトステップに、FileMaker 16から cURLオプションが設定可能となりました。多くのITプロフェッショナル、特にWeb系エンジニアの皆さまにはおなじみの、あの「cURL」の実行オプションを設定できるようになったことで、APIが公開されているWebサービスとの連携が手軽にできるようになりました。
例えば、こちらはChatworkの任意のチャットルームに対して文字列をポストするスクリプトです。若干冗長な書き方になっていますが、たったこれだけのステップで任意のチャットルームに文字列を投稿することが可能です。
さらに、この「URLから挿入」のスクリプトステップでは、http/https以外にも、fileプロトコルやsmtp/smptsプロトコルなど、業務系システムの開発シーンで便利なプロトコルにも対応しています。例えば、smtpsプロトコルとcURLオプションを使って、HTMLメールを送信するような機能を実装することもできます。
cURLオプション自体はとてもシンプルなものですが、アイデアと技術力次第で、大きな可能性を持ったソリューションを開発できる潜在能力を秘めています。ただし、FileMakerから利用可能なcURLオプションの中には、一部サポートされないものや記述方法に若干の「方言」が含まれるものもあります。詳しくは、公式リファレンスを参照してください。
FileMaker Data APIを用いたシステム間連携
先にご紹介した2つの連携は、他システムが提供するサービス、もしくはホストしているデータに対して、FileMakerは「クライアント」として提供を受ける役割での連携でした。最後にご紹介するFileMaker Data APIはその逆で、FileMakerプラットフォームが他システムに対して、データやサービスを提供する関係性における連携機能です。
FileMaker Data APIの提供は比較的新しく、FileMaker 17より正式にリリースされました。(※最新のFileMakerのバージョンは19.3)。この機能が提供されるまで、FileMaker Severでホストしているデータを他システムに提供する方法は、ODBC公開か、もしくはCSV形式でエクスポートして物理ファイルで提供するといったレガシーな方法しかなかったのですが、FileMaker Data APIが実装されたことによって、一気にモダン化されました。
FileMaker Data APIは、一般的なWeb APIであり、かつRESTfulなサービスを「ノーコード」で実装可能です。Webサーバを別でセットアップする必要もなく、FileMaker ServerのAdmin ConsoleからFileMaker Data APIを有効にするだけでサーバサイドのセッティングは終了です。
Web APIなのでクライアントとの会話はhttpsプロトコルを用います。そのため、社内にある他システムに対してはもちろん、「社外(Firewallの外側)のシステム」に対しても安全にデータやサービスを提供することが可能です。
FileMaker Data APIの認証の仕組みや「ノーコード」でAPIが公開可能な仕組みなど、本記事内で詳しく説明したいのですが紙面上の問題もあり、ここでは弊社ブログで公開している一連の記事を紹介します。
- FileMaker Data API チュートリアル1・認証
- FileMaker Data API チュートリアル2・レコード取得
- FileMaker Data API チュートリアル3・レコードの検索
- FileMaker Data API チュートリアル4・新規追加・編集・削除
こちらの記事では、Web APIをテストするときのスタンダードアプリになっているPostmanから、FileMaker Data APIを用いて、FileMaker Serverにホストされているデータにアプローチするための一連の手続きを説明しています。
サンプルのソリューションもダウンロードできるようになっているので、興味のある方はぜひ動かしてみてください(※ただし、FileMaker 17のころに書いたものなので、最新の仕様と若干異なる部分があります)。