2015-06-23

WebDirectの導入事例を渉猟す

 WebDirect の導入に際してやはり気になるのは先行する導入事例。 
 小社でも時たま導入事例の紹介記事を探していますが、記事は多くありません。

 FileMaker 13 の WebDirect は、FileMaker Pro レイアウトのレンダリングが魅力的である反面、動作条件の厳しさ(高スペックなハードウェアの要求)、デザイン時に考慮すべき点の多さ、実行速度の問題など、機能的にはまだまだ発展途上という感じでした(これらの問題については、WebDirect 開発の勘どころ をご参照ください。)


 そんな折、2015年5月13日に FileMaker 14 が発売になりましたが、やはり WebDirect の進化に注目が集まるっているようですね。

 ということで、小社では改めてWebDirect(WD)の導入事例を探してみました。
 以下は見つかった記事の要約、編訳となります。 

※WebDirectが2013年12月にお目見えしてから1年半。まだまだ導入事例は少ない感じです。Ver14で状況は変わるのでしょうか。

【WebDirect の導入事例】

1. Braun Electric Company, Inc. (米国カリフォルニア州)


 電設会社。
 435人以上の従業員の安全を FileMaker Go for iPad/iPhone で管理。
 SeedCode 社の GoMaps プラグインを併用し、従業員の現在地を GoogleMap で確認。

 今後は複数の業務処理の自動化に向けて、WebDirect を導入していく“予定”とのこと(予定なんで、これ、全然導入事例ではないです。GoMapsがCoolそうなんで、思わず載せました。すみません)。

 参照元:http://www.filemaker.com/solutions/customers/stories/braun-electric-company.html 
 参考リンク: GoMaps プラグイン(英語)

2. Annex Medical, Inc. (米国ミネソタ州)


  医療用精密機器製造会社。
 従業員数 20人。
 社内のシステムを FileMaker Go for iPad でフル活用。
 品質記録、検品、工数管理、原料管理、在庫管理、配送、送り状作成までをトータルに行っている。

 作業効率化のためにダッシュボードをWebDirect で公開し、従業員の作業工数をチェックできるようになっている。 

 参照元:http://www.filemaker.com/solutions/customers/stories/annex-medical-inc.html

3. Cure Kids (ニュージーランド・オークランド)


 児童健康研究所。

 乳幼児突然死のリスク計算アプリを WebDirect メインで開発。

 データ入力を行うと、瞬時に死亡率のリスク計算ができるところがウリ。 
 開発期間が数週間だったにもかかわらず、ここ一年間で大きな修正はない。
 今後はカスタム開発を行い、ソリューションを完全レスポンシブな Web アプリケーションに発展させる予定(うーん、このWDソルーションはCWPソルーションに置き換わるのか。 WDで超高速開発して急場を凌だり、あるいはWDでプロトタイプを作成してエンドユーザに試用してもらう。で、本番システムはCWPで開発、みたいな)。

 参照元:http://www.teamdf.com/work/cure-kids
 開発元:http://www.teamdf.com/


【WebDirect 導入の具体例を示しているエンドユーザ】

1. Beko BBL (ドイツ・ケルン)


 プロバスケットボールリーグ。
 32 人の審判と 10 人のスタッフ監督で運用中。

 全国バスケットボールリーグの所属審判を WebDirect および FileMaker Go で管理。


 (動画はドイツ語)


 
 スケジュール、評価、目標達成度、その他要素を含むすべての関連データを iPhone またはiPad で審判に公開。
 審判は、どこにいても iPhone または iPad を使い、 WebDirect や FileMaker Go 経由でシステムにアクセスしてデータ入力可能。
 
 一元管理された目標達成やその他要素を含む情報は、リーグ管理者および審判が人選に利用。

 FileMaker プラットフォームで審判データベースを開発することにより、人材管理を実現。
 所在地情報をはじめ、年間出場試合数、身体データ、資格情報、関連情報、一般・技術審判の区分などを含む試合関連情報に関する個人データを管理。

 参照元:http://www.filemaker.com/de/solutions/customers/stories/bbl.html 

2. Akubra Hats (オーストラリア・ニューサウスウェールズ州)


 服飾品製造業。
 
 生産管理・受注管理に会計パッケージを統合させたシステムを FileMaker プラットフォームで開発。
 新たに導入されたレポート機能によって、季節ごとの商品在庫レベルを把握しやすくなり、在庫回転率が向上。
 早期受注にも対応でき、受注状況の確定も迅速化。

 システム導入後、一年間で受注レコード 2万件(受注明細レコード数 25万件、関連サイズ別レコードも含めると 56万件)を管理。
 工場および事務処理の一日 20 時間相当の業務をこのシステムで実現。
 今後のシステム最適化により、さらなる業務効率化が期待される。

 FileMaker Go と FileMaker WebDirect の併用により、モバイル顧客および遠隔顧客のニーズにも対応。
 また、2015 年の小売業者向けオンライン受注システム導入に向けて WebDirect によるモジュールをテスト運用中。


 参照元:http://www.filemaker.com/au/solutions/customers/local_stories/akubra-hats.html
 

3. サンラモン市街化区域(スペイン)


 都市開発事業。

 マドリードの民間開発区域、サンラモン市の 2000人の居住者を、18人の従業員により24時間体制で監視するシステムを運用。
 一日 3 シフト制でサンラモン市内を監視。
 訪問者・車両登録処理を含め、地域の安全を目指すのが基本目的。
 
 FileMaker Go および WebDirect によるアクセス。

 email を利用した居住者自宅訪問の実現。
 FileMaker Go for iPad を使ったレコード承認、訪問スケジュール管理
 WebDirect を使った居住者データベース管理
 
 より安全でシンプルな承認作業と堅牢なアクセス管理を実現。

 居住者に公開しているデータベースは二種類。
 居住者連絡先詳細データベースは地域事務所が WebDirect を使って更新。
 登録車両情報データベースは居住者自身が編集可能。

 訪問者がある場合は、e-mail または SMS で訪問者情報を監視員に送信。
 これにより 訪問者登録に要する時間を98% 削減。

 FileMaker Go for iPad による訪問者登録処理が可能になり、業務が簡略化されるとともにセキュリティログの記録量が 300% 増加。


 参照元:http://www.filemaker.com/es/solutions/customers/local_stories/Ciudad_San_Ramon.html



【WebDirect を使ったソリューションを提供している業者の開発例】

1. Contraflow (オーストラリア)


 道路交通網関連団体の計画作業と管理サービスを提供するシステムを構築。
 150人の従業員による内勤作業・オンサイト作業の両方に対応したあらゆる管理業務向けのソリューション。

 25 人の FileMaker Pro ユーザ、80人の FileMaker Go ユーザ、関連会社 5 社による WebDirect アクセスによりシステムを運用。

 【導入効果】
 コンプライアンスと安全性の向上、監査時不適合案件の減少、
 ワークフローのペーパーレス化。即時更新、各ステージの時間短縮、
 カオス化の完全排除、効率化されたプロセス、 自動 SMS 送信により電話による通話を廃止
 拠点呼び出しの時間と労力の削減、給与計算の自動化
 回転率の予測作業の迅速化と単純化、人員管理、必要車両とVIP 客の特定


参照元: http://info2.filemaker.com/Contraflow_Contraflow.html

2. SeedCode Calendar for WebDirect (米国)


 WebDirect 対応の FileMaker Pro 向けカレンダープラグイン。
 カレンダーの週間表示、月間表示、 テーマ切替、ガントチャート表示などに対応。

(動画は英語)



 その他詳細は SeedCode 社の製品ページをご参照ください。
 SeedCode Calendar for WebDirect



弊社でも FileMaker 13 版 WebDirect 対応の在庫管理テンプレート製品『FMEasy在庫IWP/WD R1.5』を販売しております。

FMEasy在庫 IWP/WD R1.5 製品紹介ページはこちら
 
この動画には WebDirect の動画部分は含まれていませんm( _ _ )m インスタントWeb(IWP)の動画となっております。 14も出たことだし、WD部分の動画も作ろうか、と思う今日この頃です。
  


(亀)

2015-05-15

ポートスキャン、リモートコード実行、VoIP 攻撃

 先日、連続ネットワークアクセスのログが大量に記録されました。

 こんな感じです。


IP アドレス: 1.20.150.223 (タイ)
ポートスキャン後、連続アクセス。

IPS Prevention Alert: WEB-ATTACKS bash Access, SID: 8920, Priority: Medium -  1.20.150.223, 5313

bash Access とあるので、bash シェルの脆弱性(Shellshock)を狙った攻撃のようです。
 Unix、Linux、Mac OS X をお使いの方は注意が必要ですね。

参考:
bashに存在する「Shellshock」脆弱性についての注意喚起

 そして、この Shellshock 狙いどおり、リモートコード実行試行が10分間で 5700 回以上の連続アクセスが記録されていました。
 攻撃先のポートが 80 (http) だったので、Web サーバ狙いでしょうね。

WEB-ATTACKS Web Application Remote Code Execution 45, SID: 5617, Priority: Medium - 1.20.150.223


IP アドレス: 212.83.136.198 (フランス)

 ポートスキャン後、 連続アクセス。
 過去のレポートを見ていると、先月末からもちょこちょこアクセスしている記録がありますし、この IP アドレスは以前から悪用が報告されているようです。
IPS Prevention Alert: VoIP-ATTACKS SIPVicious Activity 1, SID: 5616, Priority: Medium - 212.83.136.198, 5093

 VoIP で攻撃先のポートが SIP だったので、IP 通話関係の接続確立を試みたようです。



 みなさまもお気を付けください。




2015-04-14

ファイル起動時にFileMakerからMySQLに投げられるクエリ

FileMaker Pro をフロントエンド、MySQLを バックエンドにしたアプリを起動する時には、以下のようなクエリが投げられるんですね。 
(FileMaker Pro 13使用時)

SET NAMES utf8 [参考URL]

SET NAMES indicates what character set the client will use to send SQL statements to the server. Thus, SET NAMES 'cp1251' tells the server, future incoming messages from this client are in character set cp1251. It also specifies the character set that the server should use for sending results back to the client.

A SET NAMES 'charset_name' statement is equivalent to these three statements:
SET character_set_client = charset_name;
SET character_set_results = charset_name;←A
SET character_set_connection = charset_name; 

SET character_set_results = NULL [参考URL]


If you want the server to perform no conversion of result sets or error messages, set character_set_results to NULL or binary:  

SET SQL_AUTO_IS_NULL = 0 [参考URL]

If this variable is set to 1 (the default), then after a statement that successfully inserts an automatically generated AUTO_INCREMENT value, you can find that value by issuing a statement of the following form:
SELECT * FROM tbl_name WHERE auto_col IS NULL
If the statement returns a row, the value returned is the same as if you invoked the LAST_INSERT_ID() function.

つまり、INSERT直後、 AUTO_INCREMENT値は存在するにもかかわらず、IS NULL として認識されるというもろ刃の剣。

SET AUTOCOMMIT=0  [参考URL]

The autocommit mode. If set to 1, all changes to a table take effect immediately. If set to 0, you must use COMMIT to accept a transaction or ROLLBACK to cancel it. By default, client connections begin with autocommit set to 1. If you change autocommit mode from 0 to 1, MySQL performs an automatic COMMIT of any open transaction.

set @@sql_select_limit=DEFAULT  [参考URL]

The maximum number of rows to return from SELECT statements. The default value for a new connection is the maximum number of rows that the server allows per table, which depends on the server configuration and may be affected if the server build was configured with --with-big-tables. Typical default values are (232)–1 or (264)–1. If you have changed the limit, the default value can be restored by assigning a value of DEFAULT.
If a SELECT has a LIMIT clause, the LIMIT takes precedence over the value of sql_select_limit.
sql_select_limit does not apply to SELECT statements executed within stored routines. It also does not apply to SELECT statements that do not produce a result set to be returned to the client. These include SELECT statements in subqueries, CREATE TABLE ... SELECT, and INSERT INTO ... SELECT. 
※うちのDEFAULTは、 (264)–1=18446744073709551615 でした。こんなん返されても困るわ。

SET SQL_MODE='STRICT_ALL_TABLES' [参考URL]

For transactional tables, an error occurs for invalid or missing values in a data-change statement when either STRICT_ALL_TABLES or STRICT_TRANS_TABLES is enabled. The statement is aborted and rolled back.

SELECT TABLE_NAME, TABLE_COMMENT, TABLE_TYPE, TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE 'easyinv15' AND ( TABLE_TYPE='BASE TABLE' OR TABLE_TYPE='VIEW' ) AND TABLE_NAME LIKE '郵便番号'

INFORMATION_SCHEMA から、アプリで使用さているビューを含むテーブル情報を取得。


select database()

接続中のデータベース名を返す

describe `郵便番号`

当該テーブルのコラム情報を取得

SHOW KEYS FROM `easyinv15`.`郵便番号`

プライマリ等キー情報を取得、Cardinality ってここにあるのね。


SELECT TABLE NAME ~ から SHOW KEYS ~ (イタリック部)は、FileMaker ファイル内に登録されたすべてのMySQLシャドウテーブル(ビュー含む)に対して実行される(キリッ


(土屋)