2021-11-18

人・モノの動きをマップ上で可視化するオブジェクトトラッキング

 IPS の一般的な機能の一つに、人・モノの動きを追跡し、可視化する機能(以下、オブジェクトトラッキング)があります。下図は当社製品『TPC_IPS』及び『QuickIPS』で同機能を実行した際のもので、XとY軸に二次元マップを、Z軸には時間を表示しています。青と橙(オレンジ)の線がオブジェクトの時間ごとの位置を示しています。例えば、橙(bcn0-5)は、13:37:58 には、座標(0, 6)にいたことが判ります。
 この3DグラフはPC画面上で回転させることができるため、赤と青が接触あるいは近接したかどうかを視覚的に判断することも可能です。

注:
  • オブジェクトトラッキング機能は2022年4月現在開発中です。『TPC_IPS』及び『QuickIPS』の将来のバージョンに搭載予定です。
  • 仕様は予告なく変更されることがあります。

オブジェクトの移動を時系列と共に3D表示
  

用途

 オブジェクトトラッキングは、人・モノの動きをマップ上に時系列と共に表示する機能で、2Dと3D表示が可能です。 感染症罹患者、店舗利用者、運搬機、従業員等の行動・運動を正確に把握する際に有用です。 

人・モノの移動を2Dマップ上に時刻と共に表示

オブジェクトトラッキングで使用するツール等

 『QuickIPS』で使用するツール、アプリケーションは以下の通りです。

使用ツール用途
Python, matpotlib, 他 2D/3D描画を行う。
pyodbc, ODBC, 他 PythonからSQLクエリをデータベースに対して発行。座標、時間、UUIDなどのオブジェクト属性をデータベースから取得し、matplotlib に渡す。
FileMaker Pro
注:QuickIPS で必要
オブジェクトトラッキングはコマンドラインから実行可。『QuickIPS』では、GUIから Python のコマンドを実行。

仕様

  1. オブジェクトの位地を時系列と共に2D、3D表示
    3Dの場合、Z軸には時刻を取る

  2. 『QuickIPS』のGUI上で以下のパラメータの指定
    パラメータ  用途
    時間指定 トラック(追跡)する期間を12桁のコードで指定
    2D/3D トラック図を2Dにするか3Dするか選択
    プロット場所 トラック図を表示する場所を QuickIPS の Webビューア内か、独立した Python-matplotlib ウインドウ内にするかを選択
    ビーコン ピッカーインタフェイスから複数のビーコンを選択可

    操作方法
    1. QuickIPS ウインドウズの[Time] にオブジェクトトラッキングを行う時間帯を12桁のコード(YYYYMMDDHHMMSS、オブジェクト座標を計測した日時)で指定します。


    2. [Plot in...]では、オブジェクトトラッキングの図を表示するアプリケーションを指定します。「QuickIPS」を指定すると QuickIPSの「Webビューア」に、「Separate window」を指定すると Python-matplotlib のウインドウ内にトラッキング図を表示します。ここでは、「QuickIPS」を選択します。
    3. ピッカーアイコンを使って追跡したいビーコンを選択します。上図では、「bcn2-8」 と 「bcn0-5」 の 2種類のビーコンを選択しています。
    4. トラッキング図を2Dで描画するにはラジオボタンで「2D」を選択し、トラッキングボタンをクリックします。QuickIPSウインドウの「Webビューア」に指定した2つのビーコンの移動経路と時刻を示す図が表示されます。




      上記ステップ2の[Plot in...]で「Separate window」を選択していた場合、下図のように Python-matplotlib のウインドウ内にトラッキング図を表示されます。

      人・モノの移動を2Dマップ上に時刻と共に表示

      このウインドウでは、フロアマップを拡大・縮小することにより、詳細を確認できます。


      3Dオブジェクトトラッキング

      3D でオブジェクトトラッキングを実行するするには、上記ステップ4のラジオボタンで「3D」を選択し、トラッキングボタンをクリックします。この時、[Plot in...]で「QuickIPS」が選択されていると、同ウインドウの 「Webビューア」内にトラッキング図が表示されます。

      Webビューア内の画像はマウス操作不可

      [Plot in...]で「Separate window」が選択されてた状態でトラッキングボタンをクリックすると、 Python-matplotlib のウインドウ内に3Dトラッキング図が表示されます。

       この図はマウス操作あるいはウインドウ内のボタン等を利用し、回転させたり、縮小拡大させることができます。以下の動画ではその様子をご覧いただけます。

※『QuickIPS』及びオブジェクトトラッキング の仕様は今後変更されることがあります。


(亀)


IPS関連のBlog記事

土屋企画のIPS製品について/IPS product of TPC

2021-10-22

Windows Server 2012 の Hyper-V に Windows 11 をインストールする方法

 Windows 11 を Hyper-V 環境にインストールするには、Windows Server 2016、Windows Server 2019、Windows 10 Pro が必要となります。
 通常、Windows Server 2012 には Windows 11 をインストールできません。

 それでも 「Win 2012 のハイパー で Win 11 を操作したいんだお!」とワガママを言う人、いませんか? うちにもそういう困った人がいて、しょうがないので今回 Windows Server 2012 Hyper-V 上に Windows  11 インストールし、動作させてみました。

参考にさせて頂いたページ:非サポートPCにWindows11をクリーンインストールする方法
https://www.nichepcgamer.com/archives/how-to-install-windows11-on-an-unsupported-pc.html

注意事項

 本稿記載のインストール方法は、マイクロソフト社が推奨するインストール方法ではありません。アプリケーションが起動しなかったり、クラッシュしたり、Windows Update が機能しないなど、予期せぬ動作を起こす可能性があります。実施は自己責任でお願いいたします。

本稿が対象とする読者

 Hyper-V の基本的な使い方を理解している方


前提条件

 今回のインストールでは、最低限以下の設定が必要となります。
  1. Hyper-V が稼働している Windows Server 2012
  2. 4GB 以上の 未使用RAM(仮想マシン用)
  3. 2コア以上のプロセッサ(仮想マシン用)
  4. 180GB 以上のサイズの仮想ハードディスク (VHDX形式)

 

Hyper-V 2012 への Windows 11 インストール方法

  以下の手順で Windows 11 のインストールを行います。
 Windows 11 インストーラ iso ファイルは事前に準備しておいてください。

  参考リンク:Windows 11 をダウンロードする
 https://www.microsoft.com/ja-jp/software-download/windows11

 

  1. 仮想ハードディスクの作成
    最低 128GB 必要とのことなので、128GB 固定ディスクとして VHDX 仮想ディスクを作成しておきます。

  2. 仮想マシンの作成

    以下のように、メモリ 4096MB(=4GB)以上、2プロセッサ以上になるにように設定し、SCSI コントローラに上記 1. で作成したハードドライブと DVD ドライブを接続します。


  3. ブート順の設定

     仮想マシンの設定画面を閉じる前に、ブート順を DVD ドライブ優先にしておきます。また、Windows 11 はセキュアブートが必須ですので、[セキュアブートを有効にする]にもチェックを入れておきます。


    ここまで設定できたら “OK”をクリックし、仮想マシンを起動します。

  4. Windows 11 インストーラの読み込み

    上記の手順2. で Windows 11 インストーラ iso を指定してある場合は、起動直後に何らかのキーボードのキーを押すことによって Windows 11 インストーラが起動します。

    もし、手動でディスクを挿入する必要がある場合は、仮想マシンが停止している状態で以下のようにディスクを挿入してから仮想マシンを起動してください。


  5. レジストリ修正

    インストーラの最初の画面が表示されたらすぐに Shift キーと F10 を同時に押し、コマンドプロンプト画面を表示させます。



    ここに regedit と入力し、レジストリエディタを起動させます。
     レジストリエディタに以下の項目を追加していきます。

    • HKEY_LOCAL_MACHINE\SYSTEM\Setup キー配下に LabConfig キーを追加
    • LabConfig キーに以下の5つの値を追加

      • BypassTPMCheck  DWORD 0x0000001
      • BypassSecureBootCheck  DWORD 0x0000001
      • BypassRAMCheck  DWORD 0x0000001
      • BypassStorageCheck  DWORD 0x0000001
      • BypassCPUCheck  DWORD 0x0000001

    設定後の値の状態は以下のようになります。


    ここまでできたら、レジストリエディタとコマンドプロンプトを閉じます。

  6. インストール

    あとは画面の指示に従って Windows 11 をインストールします。
 
 とっても強引ですが、これで Windows 2012 の Hyper-V な環境でもWindows 11が利用できます。





(亀)

2021-07-24

まだまだいける FileMaker 5.5/6 ― レガシーFileMaker の延命 2021 ―

 FileMaker 5.5/6 の発売は今から約20年前ですが、巷ではまだまだ使用している会社も多いです。 今回は レガシーFileMaker のサーバとクライアントのOSの互換性に関して、当社の運用実績、検証、推測を基にレポートします。また、レガシーの修正や改変の際に必要となる分析方法についても記します。

※Windows 11 は 64bit マシン専用OSですが、通常は Windows 32bit アプリケーション も運用可能です。 アプリケーションによっては障害が発生する可能性がありますが、32bit アプリである FileMaker Pro 5.5/6 も Windows 11 にインストールし、起動することができます。 2021年10月現在、トラブル無く運用できています。 今後、運用時間を延ばし、本稿にて状況をレポートする予定です。


FileMaker の最強3トップ

注:
  • レガシーFileMakerのOSとの互換性/延命に関するご意見等は、コメント欄にご投稿ください。
  • 本稿に基づき読者がシステムを構築された場合に問題や障害等が発生しても、当社では責任を負いません

FileMaker Server 5.5とWindows OSとの互換性 

 下表はFileMaker Server 5.5(以下、FMS)と Windows OS との互換性を示します。

Windows  OS 互換性 備考
2000 Server FileMaker社による動作保証
2003  当社等の運用実績に基づく[1]
2008 当社等の運用実績に基づく[1]
2012 当社等の運用実績に基づく[2]
2016 当社検証に基づく、非推奨[3]
2019 ? 未検証[4]
     
2000 Pro FileMaker社による動作保証
XP ? 未検証[5]
7 ? 未検証[5]
10 × 当社検証に基づく、非推奨[6]
[1]:「当社他の運用実績」は、当社及び当社顧客の運用実績有
[2]: 運用可。但、FMS管理コンソールでクラッシュするケースあり、以下の「仮想マシン上で FMSを運用する場合」参照
[3]: DB公開はできるがFMS管理コンソールでクラッシュする、非推奨
[4]: 2019はWindows10系である為、公開はできるがFMS管理コンソールでクラッシュすると推定、非推奨
[5]: System7はWindows 2000 Pro(公式サポートOS)に近いため運用できる可能性有、検証の価値有
[6]: FMS管理コンソールでDBを公開できる時とできない時があり非常に不安定、非推奨

FileMaker Pro 5.5/6 とWindows OSの互換性

 下表はFileMaker Pro 5.5/6(以下、FMP)と Windows OS との互換性を示します。
表中、サーバOSが含まれていますが、これはリモートデスクトップサービスを使用し、マルチユーザライセンスのFMPを複数ユーザで使用することを想定しています。

Windows  OS 互換性 備考
2000 Pro/Server FileMaker社による動作保証
2003  当社等の運用実績に基づく[1]
2008 当社等の運用実績に基づく[1]
2012 当社等の運用実績に基づく[1]
2016 当社等の運用実績に基づく[1]
2019 未検証[2]
     
XP FileMaker社による動作保証
7 当社等の運用実績に基づく[1]
10 当社等の運用実績に基づく[1]
11 2021年10月現在テスト中。経過は順調[3]
[1]:「当社他の運用実績」は、当社及び当社顧客の運用実績有
[2]: 2019はWindows10系である為、運用可能と推定
[3]: 2021年10月現在Hyper-VにWindows11を搭載しテスト中。適時本ページで経過をレポート予定。

新設するサーバ機とOSとの互換性(仮想マシン不使用)

 サーバ機の老朽化によるマシン本体のリプレースについて考えます。この時、仮想マシンを使用せずに、新サーバ(物理マシン)に Windows 2000/2003/2008/2012 をインストールし、このOS上で FMS を運用しようとする場合、物理マシンが各OSをサポートしているか否かはチェックポイントとなります。経験上、メーカーが公式対応していないOSであっても動作する可能性は高いですが、メーカーが公式対応を謳っているマシンであれば、それに越したことはありません。

Dellサーバ機のOS互換性

HPサーバ機のサーバOS互換性

仮想マシン上で FMSを運用する場合

次に仮想サーバ上での FMSの運用について考えます。この方法では仮想マシンにWindows 2000/2003/2008/2012 をインストールして、FMS を運用します。
 既に仮想環境を構築済みであれば、マシン調達に伴う金銭的コストを負わなくても済むので、担当者の心理的負担は少ないです(経験者談)。逆にFMSだけのために仮想環境を新たに導入するとなると、コスト大の上、担当の心理的負担も大となります(同談)。

 注意点が一つあります。当方で遭遇した現象ですが、Dell PowerEdge T105 のハイパーバイザ上の仮想マシン(Windows Server 2012R2 )では、 FMS5.5 が問題なく動作していましたが、PowerEdge R330 のハイパーバイザ上の仮想マシン(Windows Server 2012R2 )に FMS5.5 を新規インストールした後にFMS の コンソールで「ファイルメーカー Server」を右クリックして「プロパティ」を選択するとコンソールがクラッシュする、ということがありました。 この時、正常稼働している PowerEdge T105 上 の仮想ディスク(VHD)を丸ごと PowerEdge R330 にコピーして仮想マシンを再構成したところ、コンソールで「プロパティ」を選択することができました。
 このように、一見同じに見えるシステム環境であっれも、FMSで障害が発生することがある、と言う事です。
 
 当社ではFileMakerレガシーの延命を多くうけたまわっており、現在までほぼ成功裡に終わっていますが、リスクがあることをユーザに十分理解頂き、業務を進行することがやはり大切です。
 もっとも、最新のテクノロジーでシステムを構築する!、と言っても、既存システムとの互換性、開発失敗リスク、最新テクノロジー故の不安定性・未成熟性といったリスクもあります。また、ベンダーが勝手に契約条件を変更する近年のサブスクリプションというビジネスモデルも大きなリスクです。

 5G、AI、機械学習、IoT/M2M、DXを行わない企業に未来はない!などと、漠然としたIT用語や根拠不明の言説が巷に溢れる中、現行仕様で満足している、或いは現行仕様を修正・拡張しながら利用できれば十分というシステムも普通にあるわけで、であればレガシーシステムの延命は十分考慮に値すると思います。


Windows Server の Windows Update 

 Windows update を行わなければ FileMaker Server 5.5(FMS) が動作しないということはありませんが、Windows 2008/2012 などの古いOSを運用する際に重要なことなので、本項にて触れておきます。

 通常、新たにサーバ機を購入したり、サーバOSをインストールした際は、Windows update を行い、OS を最新の状態にします。これは以下の理由によります。
  1. セキュリティ上の要請
  2. 運用開始後の Update のリスクを低減する
    運用開始後に Windows update を実施すると、何らかの障害が発生し、運用中のソフトウェアが動作しなくなる可能性があります。できるだけ導入・テストの段階で利用可能な全ての update を当て、運用後のダウンタイムを減らしましょう。
  3. Windows Server がある程度最新の状態でないと動作しないプログラムがある
    ある種のアプリケーションをインストールする際、一定のバージョン以上の Internet Explorer や .NET Framework を要求され、インストールを実行できない、ということはままあります。この一定のバージョンに辿り着くまで、何回か Windows update を行う必要があることがあります。導入時に最新のUpdateを当てておけば、運用後にこれらの作業を低減することができます。
  4. Windows Update 自体が動作しなくなることがある
    後述のように Windows Update エージェントが古いと Update 自体ができないことがあります。

Windows update ができない時 

 FileMaker Server 5.5 と互換性の高い Windows Server 2008/2012 ですが、これらのOS のインストール直後に Windows update を実行すると、 0x80072efe というエラーが発生して、Windows Update が完了しないことがあります。
 このエラーは Windows Update エージェント自体に問題あり、Windows Update エージェントのアップデートプログラムを単独でダウンロードし、これを実行することにより解決できます。

 ※ご利用の Windows Server のバージョンに適合したものをダウンロード後、インストールしてください。

 この他にも、いくつかのアップデートを実行できないこともあります。その場合は Windows Update の順番を変えてみたり、個別にアップデートプログラムをダウンロードしたりして対応する必要が出てきます。

 以上、運用開始後のダウンタイムを低減するために、導入段階で Windows Update をできるだけ進め、OSを最新の状態にしておきましょう。

Windows Server のライフサイクル

 参考までに、Windows Server のライフサイクルの表(2021/07/26時点)を挙げておきます。
Windows  OS サポート終了日 延長サポート終了日
Windows Server 2003 2010/07/13 2015/07/14
Windows Server 2003R2 2010/07/13 2015/07/14
Windows Server 2008 2015/01/13 2020/01/14
Windows Server 2008 R2 2015/01/13 2020/01/14
Windows Server 2012 2018/10/09 2023/10/10
Windows Server 2012 R2 2018/10/09 2023/10/10
Windows Server 2016 2022/01/11 2027/01/12
Windows Server 2019 2024/01/09 2029/01/09

実行速度とテストについて

 物理マシン或いは仮想マシンを問わず、構築した新環境に於ける実行速度が旧環境のそれに比べて明らかに遅い場合、問題となります。 旧環境から新環境への移行業務の早い段階で、必要十分な実行速度が得られているかをユーザに判断してもらうべきです。 業務終了間際に実行速度が遅すぎると判明すると、行った作業が全て無駄になる可能性があります。

 当社では実行速度の可否を判断する際、約12万件の郵便番号情報が入った郵便番号.fp5 のファイルをFMSで公開し、FMPからアクセスして住所フィールド(都道府県+市区町村+町域を1つに結合したフィールド)のソートを行います。 この12万レコードのソートが30~40秒程度で終了する、というのを一応の合格基準としています。
注:
これは未ソートの状態で新たににソートした場合の基準です。一旦ソートされた状態で再度ソートすると、ソート時間が30~40%改善するとがあります。このため、ソートテストは常にソートされていない状態で実行してください。

 ユーザは実行速度には敏感ですので、旧環境と新環境で郵便番号をソートのデモを行うのも良い考えだと思います。

 当方の経験上、コア数やメモリも増やしても、実行速度はほとんど改善されません。ただ、ネットワーク(NIC)の設定を変更することにより、劇的に改善することがあります。これについては、こちらを参照してください。

レガシーFileMaker の分析

 当社では第三者が開発したレガシーFileMakerの保守・開発を引き受けていますが、そのシステムを拝見するとデータベースの正規化が無視されていたり、同種のスクリプトを延々と繰り返していたり(コードの再利用という考えがない)、逆にスクリプトが意味不明に細かく分割されていたり、セキュリティが考慮されていなかったりと、掟破りのシステムを目にすることが少なくありません。

 掟破りシステムに障害があると、当社担当が分析・修正するとなるとなります。熟練開発者が書いたスクリプトでも、その開発者の支援無しに第三者がデバッグするのは元々困難な作業です。 これが非熟練者により開発されたものとなると、通常の十倍からそれ以上の工数を要する大変な作業となります。 このような状況では、スクラッチ開発(一から再開発)お勧めしたいのですが、膨れ上がった掟破りシステムをスクラッチ開発するには、多くの時間と費用を要するため、当社担当がデバッグすることになります。

 さて、このような悲惨な状況下での頼みの綱がデバッガや分析ツールですが、旧FileMaker にも FileMaker Developer 5.5/6 (以下、Developer)という製品があり、これによりデバッグや分析を行うことができます。
 Developerを使うと、下図のようなデータベースデザインレポート(実体は FileMakerのファイル)を作成することができます。 このレポートはシステムの開発量(フィールド、レイアウト、スクリプト等の数)を知るのに有用です。



 一方、検索機能が不十分、というか無いに等しいので、保守や障害対応で特定のオブジェクトの検索を行うには、データベースデザインレポートは不適です。
 例えば、システムの改変時にフィールドAに対して何らかの変更を加える場合、そのフィールドが影響を及ぼすオブジェクト(他のフィールド、スクリプト、レイアウト、値一覧、リレーション)が無いかをリストアップし、それぞれ検討を行い、悪影響があると判断される場合には対応が必要になります。この時、上記のデータベースデザインレポートには、フィールドAを指定して、関連するオブジェクトを抽出する機能がありません。
 この種の検索機能が無いと膨大な作業を人力で行う事になりますが、これは実務上ほぼ不可能となります。このため当社ではオブジェクト検索を行う以下のサブシステムを用意しています。
 

 図の「TPC Database Analyzer」は FileMaker 5.5/6用データベース分析ツールです。[検索条件]に「売上日」と入力して検索を実行すると、[売上日]を含むオブジェクトがすべて検索されます。その検索結果が下図です。


 画面左を見るとレコード数が約3万1千ありますが、これがこのシステムを構成するオブジェクトの数です。該当件数が299となっていますが、これが[売上日]が関連するオブジェクトの数です。約3万1千あるオブジェクトから人力で[売上日]を含むオブジェクトをしらみつぶしに調べるのは、実務上ほぼ不可能ですが、299件であれば一つ一つチェックしていければ、時間はかかると思いますが、熟練の開発者であれば必要な修正を加えることが可能です。

 このような分析ツールは障害や部分改変を行う際に限らず、新システムのスクラッチ開発時に旧システムを分析する際にも非常に有用なツールとなります。
(本項は21/10/14に加筆)
 
(NuckyT)




■ FileMaker 5/6等レガシーシステム関連記事

正月休み明け、仮想マシン上の FileMaker Server 5.5 バックアップが失敗していた(22/01/25投稿)
仮想マシンの外部ディスクでI/Oエラーが出た際の復旧方法

まだまだいける FileMaker 5.5/6 ― レガシーFileMaker の延命 2021 ―(21/07/24投稿)
レガシーFileMaker とOSの互換性、移行時の留意点について

IIS6 + FileMaker Web コンパニオン構成の Web サーバ機で TLS1.2 が動作するようにリバースプロキシを設定する (20/07/06投稿)
TLS1.2 非対応の IIS6 に Web ブラウザアクセス時に警告メッセージが出ないようにする

太古の FileMaker システムを延命させる! ― 後日談FileMaker(17/09/07投稿)
下記記事のレガシー延命スキームの実施と結果について。

太古の FileMaker システムを延命させる!(17/04/25投稿)
Remote Desktop Server/FileMaker Pro 5.5 搭載の Windows Server 2008 物理マシンを P2Vし、Hyper-Vに移行することにより、レガシーシステムの延命を図る。

FileMaker 5.5/6 をモバイルで使う(16/05/25投稿)
Android/iOS に Remote Desktop Client を載せて、FileMaker Go のようなことをしてみます。

今なお輝くFileMaker 5.5/6(16/05/23投稿)
レガシーFileMaker の意外な利点。