案件でFileMakerDBを中国大陸(杭州)と共有をしなくてはならないことがあり、
それにあたってのメモ。というか、みなさん知っていると良いかもしれない話です。
超書き殴りです。
 


中国と日本の回線のスピードについて

 
FileMakerと関係なく一般的なサーバーへの中国大陸からのアクセスは、
正直言って、極めて遅いです。
国内設置のレンタルホスティングは、
ほとんどがまともに繋がらない状況で、
クララオンラインさんなど中国大陸に関する知識を持っている
サーバーホスティングを利用するか、
あるいは、日本では遅くても中国大陸では早く表示される海外ホスティングを探して利用するのが良いです。


ではFileMakerServerはどうか

UCOMのビジネス契約の環境下でのテストで、
一般的なネットワーク回線において同じといえるかわかりませんが、
上りの速度が太ければ、
ログインまでは比較的ストレスなく接続できます。
 
が、FileMakerの共有は、ある程度のレコード数まとめてキャッシュしようとするようで、
そのため1回あたりのデータ転送量が多くなり、
レコードが200を超えたあたりから使えたものではないレベルになってきます。
(すでにDBとしては破綻している)
 


逆に中国側にFileMakerServerを置くのは?

逆に中国側にFileMakerServerを置いて運用するのはどうなんだろ?
ということで、打診したところ、
中国ではいかような目的に置いてもサーバーを設置するには、
政府の許可がいるということで断念せざるを得なくなりました。
 


詰んだ…

 
どうしようと思いダメモトで、
FileMakerServerのインスタントウェブ公開をしたところ、
比較的中国からのアクセスでもすんなり動くようです!!
CSSとJS、そしてXMLで通信しており、
何レコードもキャッシュしようとしないのがよかったようです。
 


でも機能が少ない

 
一般的なレコード編集などでは、いいですが、
・制限された機能をどうするか
・カスタムダイアログをどうするか
ということにぶつかりました。
 
結論としては、
FileMakerAPI for PHPかFX.phpで補完するのがよさそうです。
FileMaker上のWEBビューワーは、インスタントウェブ公開でも機能するため、
HTMLにおけるiframe的な使い方で補完します。


がもうひとつ問題が発生した

インスタントウェブ公開が問題なかったとしても、
同じサーバー内で動いているLAMPなどのサーバーへのHTTPアクセスが、
中国からのアクセスで激重である場合があり、
今回はそれにぶつかってしまいました。

FX.phpはバックエンドではHTTPを通じて
FileMakerServerとはXMLでやり取りをしているだけの仕組みで、
なおかつPurePHP動きます(必要なモジュールはありますが)
したがって、PHPモジュールとして実装されているFileMakerAPI for PHPと違い、
PHPが動くごく一般的なレンタルホスティングでも
問題なく動きます。このことを利用します。
 
インスタントウェブ公開に足らない機能をPHPでつくるわけですが、
PHPはFileMakerServerと同じサーバーで実行せず、
比較的中国からのアクセスが安定しているホスティングにFX.phpを置いて、
その上で実行することで解決しました。
(バックエンドの通信量が増えるので、転送量制限のあるサーバーでは注意してください)


まとめ

中国大陸とのFileMaker共有のまとめ。

・FileMakerServerは上り速度の早いネット環境下に設置
・FileMaker共有は使わずにインスタントウェブ公開を利用
・インスタントウェブ公開で足らない機能はFX.phpを使って補完
・FX.phpを動かすサーバーは、大陸からのアクセスが安定している
 レンタルホスティングを利用する。
 
これでなんとか共有できました。
 
この時点での懸念は、オブジェクトフィールドの扱いでしょうか。
インスタントウェブ公開やFX.phpでは
データの挿入はできません。
回避方法があれば、また書きます。