インターネットを介したActian Zenへのアクセス
緊急事態宣言が解除され、以前の勤務体系に戻った方も多いのではないかと思いますが、第2波、第3波が危惧されており、長期戦となりそうな状況です。
緊急事態宣言中には在宅によるリモートアクセスで業務を行っていた方も多いのではないかと思います。
私共も、全社員リモートでの業務を行っていました。
リモートアクセスでは、インフラの整備が必要となるため、直ぐには実行できない企業も多かったのではないでしょうか。
世間では「With corona」があふれており、今後も少なからずリモートアクセスが必要な状況です。
実際に、緊急事態宣言が解除されても、テレワークを続けているところもあるようですし、事業所を縮小し、交代でリモートワークを行うところも出てきているようです。
リモートアクセスにも色々な方法があり、社内に置いたマシンに社外からリモートデスクトップ接続して使用する方法もありますが、この場合社内にリモートデスクトップ接続可能なマシンを置き、それとは別に社内のマシンに接続するためのマシンが必要です。
また、VPN の設定も必要になります。
Zen/PSQL を使用したシステムでは、インターネットを介しての直接アクセスも可能なことから、業務で使用しているマシンを自宅に持ち帰り、インターネットを介して使用することも可能です。
この方法なら、余分な費用を掛けることなく実現可能ですね。
インターネットを介して直接アクセスを行う場合には、幾つか注意点があります。
1.社内サーバーの共有を外部に公開しない
2.ネットワークを流れるデータは暗号化
3.外部に必要以上のポートを解放しない
1.の対応では、Btrieve API でアクセスする場合、データべース URI 形式でファイルパスを指定します。
データベース URI 形式でファイルパスを指定することで、Windows OS の共有を設定する必要がなくなります。
共有を使わないことで、セキュリティ上問題となる幾つかのポート(ポート137、138、139、445)が必要無くなることから、安全性が向上します。
アプリケーションでファイルを開く際のパスを変更する必要があります。
SQL アクセスでは、共有を使わないので、対応は必要ありません。
2.の対応は、ネットワークのセキュリティを必ず有効にすれば OK です。
Zen の設定を変更するだけで、アプリケーションの対応は不要です。
3.の対応はファイアウォールで、Btrieve API 使用時、ポート 3351 のみを通るように設定し、SQL(ODBC、OLE DB、ADO.NET、JDBC)では、ポート 1583 のみを通るように設定します。
こちらも、アプリケーションの対応は不要です。
Btrieve API でインターネットを介して直接アクセスする場合、LAN 環境と比べ数倍遅くなることが有ります。
このような問題の解決には、拡張オペレーションを使用します。
拡張オペレーションは、複数のレコードをまとめて読み込むことや、特定のキーワードが含まれるレコードのみを読み込むことができ、サーバーとクライアント間の通信を劇的に減らすことができ、結果速度の向上が期待できます。
データの読み込みが多いシステムでは、クライアントキャッシュも有効です。
データを読み込む際、ページ単位でサーバーからクライアントにデータが転送され、クライアント側でキャッシュされます。
複数のレコードを読み込む場合には、クライアント側のキャッシュにデータがあると、サーバーへのアクセスを行わず、クライアントのキャッシュから読み込むため、レスポンスが向上します。
SQL でデータの読み込みを行う場合には、Reporting Engine を使用することで、クライアント側で SQLを処理しますので、負荷分散にも役立ちます。
※Reporting Engine は、クライアント側のキャッシュ機能も持っているので、サーバーアクセスも減少します。
いずれも、LAN 環境のクライアント/サーバー構成で速度が遅いと感じている場合にも、有効です。
Zen Core 製品を使用すれば、Windows PC に限らず、Android スマートフォンやタブレット、iphoneから Btrieve API や SQL でアクセスすることも可能です。
長期化が予想される「With corona」対応のためにも、インターネットを介した直接アクセスを検討されてはいかがでしょうか。
インターネットを介しての接続は、サーバーの設置場所に制限がなくなることから、オンプレミスでの運用から、クラウドへの移行も容易です。
※Actian Zen Core は、無償で開発、配布を行うことができます。
https://www.agtech.co.jp/actian/zen/core/utilization/