ラベル PHP の投稿を表示しています。 すべての投稿を表示
ラベル PHP の投稿を表示しています。 すべての投稿を表示

2016年11月30日水曜日

FileMaker Cloud(ファイルメーカークラウド)

こんにちは!

カンファレンスでも発表がありました、FileMaker Cloudです!

アマゾンが提供するクラウド上のサーバー提供サービスのEC2というもので、FileMaker Serverが利用できるサービスのようです。

……ようです。というのもの、まだ、EC2でも使用できるリージョン(サーバーの場所)がアメリカなど一部に限られ、日本のリージョンではまだ提供されていないからです。

ちょっと覗いてみたところ、

通常、EC2のインスタンス(サーバー)を作成し、リモートデスクトップを開いて、FileMaker Serverをインストールして……という作業が必要なところ、

EC2のウィザードだけでFileMaker Serverが利用できるようになるもののようです。

しかも、以前は最も簡単な方法でも、FileMaker Serverのライセンスの年間ライセンスを購入して、当然自分で直接お金も払う必要がありました。

なんと、AWS(アマゾンウェブサービス)が代行で管理してくれる感じなので、ライセンスをEC2のインスタンスと同じように、使った分だけ払えばいいだけなので、AWSにインスタンスの料金と一緒に請求さるようです。

非常に楽ですね。

価格が気になるところなので、少し調べてみました。

リージョンが違うので、日本リージョンでは違う可能性もあります。

5ユーザーライセンスの場合、1時間あたり0.99ドルライセンス料としてかかるようです。

英語が得意ではないので、よくわかりませんでしたが、短期間の場合はこの料金だけど、上限が年間888ドルになる? というような感じでした。

ちなみに直接FileMakerから年間ライセンスを購入すると96,000円です。

888ドルは1ドル=110円換算で97,680円なので、ほとんど変わりません。当たり前ですよね。

クラウドにFileMaker Serverを運用する敷居が下がってくると思いますので、便利になってきますね!

---追記-----
クラウドは、FileMaker Serverの機能を完全に有しているわけではなく、カスタムWeb公開など一部の機能は使えません。

2015年11月24日火曜日

ファイルメーカー(FileMaker)を同期で使おう Part1


こんにちは、いつもご覧いただきありがとございます。

FileMaker Server(ファイルメーカーサーバー)13より、無料のクライアントの同時接続ライセンスが導入されました。

これは、iPad、iPhoneのアプリFileMaker Go、WebDirectからFileMaker Serverでホストするファイルにアクセスする場合、FileMaker Serverに同時接続ライセンスを購入しないと接続できないというものです。

FileMaker Server14では、Proのクライアントソフトの値段と同じくらいの価格になり、地味に辛くなってきました。

できるだけ同時接続を節約したいと思う方は多いのではないでしょうか。

これから数回にわたって、そんな悩みの解決になればということで、同時接続を節約する同期モデルという方法について解説をしていきます。

今回ここで紹介するのは、FileMaker Goでの同期モデルの方法です。WebDirectではPHPを使ってアクセスすれば節約できますが、コーディングが必要になってきます。

同期モデルってなに?

FileMakerGoからFileMaker Serverホストされている共有ファイルを開くと、そのファイルを直接ファイルを開くことになり、同時接続ライセンスを1つ消費します。

また、そのファイルを開いている間はFileMaker Serverと繋ぎっぱなしの状態になり、同時接続ライセンスを繋ぎ続けることになります。

この繋ぎっぱなしをなくし、データのやり取り時だけ、サーバに接続するというのが同期モデルと言われるものです。

同期モデルのもう一つの効果

同期モデルには接続ライセンスを節約するということを目的にする場合と、Wi-Fiなどの電波が届かなく、インターネットに接続できない環境下でもデータを入力したい場合などに使われます。

また、接続できたとしてもクライアント側の電波状況が悪い場合で、FileMaker Serverとうまくつながらない状況下でも効果的です。

同期モデルの二つの方法

①まず、データをFileMaker Serverに送ったり、受け取ったりするとき(同期時)だけFileMaker Serverに接続する方法と、

②インターネットに繋がっている状況であれば、常にFileMaker Serverに繋がっている方法の二つがあります。

②は接続ライセンスの節約というよりは、クライアントにいろいろな状況があり、インターネットに繋がりにくい環境下で作業することがある場合です。

①は②に加えて接続ライセンスの節約もできるという方法です。

ここでは、①の方法を扱っていきます。

また、二つの方法がどう違うかを見ていきます。

①完全同期モデル

先ほどの①モデルでは、FileMaker Server上の共有ファイル、同じiPad、iPhone(以下デバイス)上の2つのファイルが必要になります。

入力用のファイルと、中間ファイルは同じデバイスにあります。

役割としては、入力用のファイルは入力(や閲覧)だけをするためにあります。

中間ファイル(コンテナ)は入力用のファイルのデータをFileMaker Serverのファイルを開いて更新したり、または受け取ったりします。

なぜ、このような複雑な方法と取るかというと、入力用のファイルに直接FileMaker Serverのファイルのデータを取得しようとすると、その入力用のファイルを開いている間、FileMaker Serverに接続している状態になるからです。

②簡易同期モデル



このモデルでは、入力用ファイルからFileMaker Serverのファイルに直接接続します。直接、データをサーバのファイルから移動します。

このモデルでも、インターネットに繋がっていなくても、入力用のファイルが開けますので、Wi-FiモデルのiPadなどで事務所でデータを同期(ダウンロード)して、Wi-Fiのつながらない場所に移動しても入力などができます。

次回は、①完全同期モデルでの開発と解説を行っていきます。

2015年1月13日火曜日

FileMaker Proでメールを受信してみる

FileMaker Proでメールを受信してみる

FileMaker Proではメールを送ることができます。

しかし、メールを受信することができません。

受信するには何かしら外部の手助けが必要です。例えば、プラグインを使ったりします。

結構いろいろな方が、メールを受信できたらいいなという話をよく聞きます。

PHP+FileMaker Proで行う方法を紹介してみたいと思います。

しかし、自分でもまだ試行錯誤中なので、完ぺきではありません。

FileMaker Serverがあれば、PHP APIで、FileMakerデータベースに直接書き込めますが、ここではFileMaker Serverを使わずにやってみたいと思います。

準備

冒頭でも書きましたが、FileMaker  Proだけではできませんので他の手助けが必要になります。

方法としては、FileMakerからURLから挿入で、メールを受信するPHPスクリプトを起動して、送られてきたデータをフィールドに挿入し、分解していきます。

PHPスクリプトを起動するには、Webサーバが必要になります。

XAMPPというPHPやWebサーバのApacheなどが一度に開発用の環境がインストールされる、PHPとWebサーバを使用します。

このXAMPPでインストールされたApacheは初期設定では外からアクセスることができないようになっていて、自分からのアクセスだけが行えるようになっています。

このWebサーバにメールを受信するPHPスクリプトを置き、FileMaker Proから起動し、メールを受信してみます。

PHPのコード

<?php
header('Content-Type: text/html; charset=UTF-8');
mb_internal_encoding("EUC-JP");
$stream = imap_open("{メールサーバーとポート番号}INBOX","ユーザ名","パスワード");

if($stream == false){
die("false");
}

//メッセージの件数を取得
$count = imap_num_msg($stream);

for ($value = 1;$value <= $count;$value++){
$head = imap_fetch_overview($stream,$value);
$mg = '[start]'.mb_convert_encoding(imap_fetchbody($stream,$value,1),'UTF-8','JIS').'[end]';
echo $mg;
}

//メールストリームを閉じる
imap_close($stream);

?>

※メールサーバーとポートの部分の例は {pop.exsample.com/pop3:110}INBOX のような感じです。またユーザ名とパスワードもそれぞれ必要です。

FileMakerデータベース

数件のメールがまとまった形で一時保存されるフィールド「g_mail」※グローバル格納
それを1通ごとに分解したものを保存する「text」とフィールドを用意しました。

上記のコードで取得されたものはメールの本文だけで、受信者や件名などのヘッダは行っていません(いろいろと面倒がったので、またの機会に…)

また、複数のメールが一つのまとまってPHPでは取得されますので、出力するときに、メールの始まりに[start]、一通のメールの終わりに[end]を付けて出力されるようにしています。

これをFileMakerのスクリプトで探して、分解して、1レコード、1件のメールとなるようにしています。そのスクリプトが下記になります。




注意点

ただのプレーンのメールの場合はあまり問題がありませんが、HTML形式のメールだったりすると文字化けしたりします。本当であれば、ヘッダを取得して分析し、文字コードをフレキシブルに変えたりということができればいいんでしょうが…

ぜんぜん完ぺきではないので、もし試される方がいらっしゃいましたら、自己責任でお願いいたします。


2015年1月7日水曜日

FileMakerとWeb公開

多彩なWeb公開


FileMaker Serverには標準で多彩なWeb公開機能が搭載されています。

WebDirect
PHP
XML

とあり、幅広く方法でWebにFileMakerデータベースを公開することができます。

WebDirect

FileMaker Proで作成したデータベースをFileMaker Serverにホストさせ、Internet Explorer(インターネットエクスプローラー)やChrome(グーグルクローム)から特にデータベースに変更を加えずにアクセスすることができます。

頻度は多くないが、FileMaker Proを購入してまでは必要のない方にとって最適な機能でしょう。

専門的な知識はあまり必要なくデータベースをブラウザから見ることができ、デザインなどもFileMaker Proと同じように表現されるのが魅力的です。

FileMaker12まではインスタントWeb公開という機能でした。

インスタントWeb公開ではできなかったことがWebDirectではできるようになりました。

一つ問題があるとすれば、サーバのリソースを大量に使用する点でしょうか。

常時10や20アクセスのある場合はFileMaker Server2台体制(Web公開エンジンと、データベースエンジンを分離)させることは必須といえるかもしれません。

PHP

動的なWebページを表現するためのスクリプト言語であるPHPからもFileMakerデータベースにアクセスすることが可能です。

使い方としては大きく分けて2つあるでしょうか。

①すでにあるデータベースからデータを閲覧する場合

特定のデータをPHPを使ってデータベースから引っ張り出し、Webブラウザ上に表示させたり、またデータを書き込めますので、利用場面が限られる場合などにWebDirectの代わりに使ったりできます。

また、データベースの内容を自社のホームページなどに掲載したいときにも使えます。

②MySQLなどの代わりに

PHPでは、MySQLなどのデータベースにデータを書き込み、また読み込んでWebブラウザに表示させたりするのが一般的です。ネットショップや掲示板など幅広いWebサービスにPHP+MySQLという組み合わせが使われています。
このMySQLの代わりのデータベースとしてFileMakerデータベースを使えます。

メリットとしてはデータベースの定義が簡単なこと、メンテナンスが簡単、PHPコードの記述が少なくて済む場合がある、スクリプトが使えるなどのメリットがあります。

※PHPコードの記述が少なく=PHP+MySQLでは管理機能もPHPで書く必要がありますが、FileMaker+PHPの場合は、管理機能をFileMaker Proで操作できます。


PHPを使うデメリットとしては、PHPの知識が必要ということでしょうか。PHPは比較的習得しやすい言語だといわれていますが、全くの初心者が独学で使うのは難しいかもしれません。


自分的には、PHP+FileMakerで結構いろいろなことができるんじゃないかと思ったりしています。

2015年1月5日月曜日

FileMaker+PHPでサーバの死活監視をしてみる

安定運用を支える死活監視


安定運用は、サーバやシステムが止まってしまう前に予防策(メンテナンス)を講じ、止まらないように努めることですが、いくら万全を期しても止まってしまうことはあります。

そこで、予防策と一緒に必要なのが、いかに早く障害や停止に気づくかということではないでしょうか。

それを知るには死活監視が必要です。特に、停止時にそれを教えてくれ、なおかつデータベースに記録していて後にいろいろなことを調べることも可能でしょう。

FileMaker Serverを使われている方には、FileMakerのWeb公開機能の一つPHPを使って、死活監視を行うこともできます。

といっても、特定のポートが通信できるかどうかを確かめるだけの非常に簡易的なものです。

方法

・FileMakerデータベースを用意
 監視状況を記録できるテーブルとフィールドを用意

・PHPのコードを用意

PHPのコード

$ip = {監視対象マシンのIPアドレス}
$port = {監視するポート番号} //例えばFileMaker Serverの場合は5003

$socket = @fsockopen($ip, $port, $errno, $errstr, 5);

if ($socket !== FALSE) {
echo 'OK'
 
        }else{
echo 'NG'
        }

このPHPコードをURLから挿入のスクリプトステップを使て、GETかPOSTでマシンのIPアドレスとポート番号を投げてあげれば、URLから挿入のターゲットになっているフィールドに結果が書き込まれます。

また、FileMaker API for PHPと連携して、PHPからFileMakerデータベースから監視対象のマシンのデータを参照して、結果を書き込む方法もあります。

欠点

・Windows Serverの場合、イベントログ上でエラーが出る(そのポートを使うアプリケーションの通信ではないため)
・死活監視をしているサーバの死活監視も必要(笑)


2014年10月30日木曜日

FileMakerとPHP

こんにちは!

今日はFileMakerとPHPについて書いてみたいと思います。

FileMaker ServerにはWeb公開という機能があり、FileMaker Proで作成したデータベースをブラウザなどで閲覧できるようにすることができます。

手軽にできるが接続ライセンスが必要なWebdirectや接続ライセンスの必要のないPHP向けのAPIが用意されています。

PHPは動的にホームページなどを作成するためのスクリプト言語で、動的に動くサイトではよく使われ、習得も比較的しやすいといわれている言語です。

有名なところではCMS(ブログなどによく使われる)のWordPressがあります。

FileMaker API for PHPはPHPからFileMaker Serverへアクセスし、データを取得するためのPHPの機能を提供しています。

私は昨年くらいから本格的にFileMakerとPHPに取り組んでいます。

社内の掲示板や、ドキュメントを保存するストレージのインターフェイスなどをこの機能を使って作成したりしています。

何と言ってもPHPが接続するデータベースとしてFileMakerを選ぶ理由は開発工数が減ることです。

通常、PHPに接続するデータベースはMySQLなどを使います。
PHPでコーディングするものには大きく分けて二つあり、ユーザが見る画面と、管理者が見る管理画面があります。

MySQLなどを使う場合はユーザが見る画面と、管理画面とをPHPで書くことになります。
また、データを一括で処理したいなどの処理もPHPで書きます。

FileMakerの場合ユーザが見る画面はPHPでもちろん書きますが、管理画面はPHPで書く必要がありません。FileMaker Proを使って作り、データを操作できます。

PHPでは複雑になるコーディングもFileMakerのスクリプトを使うことも可能なので、開発がすごく楽になります。

FileMakerである程度開発経験のある方なら、FileMaker社が提供しているドキュメントを見るだけで結構使いこなせたりします。

私はこのPHPとFileMakerの組み合わせが結構使えるのではないかと考えています。

いろいろと作ってみたいアイディアがありますので、機会があれば紹介できればと思います。