QUICとネットワーク・スイッチングによる仕事と移動
外出先でネットワークを切り替えている間に、4Dサーバーへの4Dリモート接続が切れてしまうことほどイライラすることはないでしょう。
イーサネットからWi-Fiへ移動する時も、ホットスポット間を移動する時も、従来の接続は切断されがちで、4D Remoteは切断と再接続を余儀なくされます。
4D 21と QUICプロトコルを使えば、このような中断は過去のものとなります。
QUICは、ネットワークが変更されても回復力があり、基礎となる接続がシフトしてもセッションを維持できるように設計されています。
UDP通信を実行する新しいクラス
4D 20 R8 では TCPConnectionクラスが導入され、TCPクライアント接続をオブジェクト指向で非同期に処理できるようになりました。そして 4D 20 R9 では、TCPサーバーを構築するための TCPListenerクラスが登場しました。そして今、4D 20 R10 では、新しい UDPSocketクラス が完成したことで、あらゆるリモートマシンとの UDP通信を、クライアントとして、あるいはサーバーとして管理できるようになりました。これは特に IoT、リアルタイムモニタリング、ブロードキャスト通信に便利です。そしてなにより、このクラスは、プリエンプティブおよび非同期なUDP通信をサポートします。
最後に、この新機能は廃止予定である Internet Commands プラグインを置き換える最終ステップとなります。
それでは詳細を説明しましょう。
TCP接続の受信を処理する TCPListener クラス
4D 20 R8 では、TCPConnectionクラスを導入し、リモートサーバーへの TCP接続を開始できるようになりました。4D v20 R9 では、TCPListenerクラスが導入され、4D で直接 TCP接続の着信を処理し、TCPサーバーを構築できるようになりました。
TCPConnection と TCPListenerクラスがあれば、クライアント側とサーバー側の両方で、TCP通信を完全にコントロールすることができます。
この 2つのクラスの使い方を説明します。
TCP接続を実行する新しいクラス
4D 20 R8 のリリースに伴い、状況を一変させる機能が登場しました: TCPConnectionクラスです。オブジェクト指向のシンタックスを活用し、非同期ネットワーク接続処理をサポートしているこの最新のクラスは、廃止予定である 4D Internet Commands の代替機能を提供するものです。TCPConnection を使用すると、サーバー、プリンター、レジスター、産業用デバイスなど、事実上あらゆるものに接続できるため、さまざまなネットワーク要件に対応する汎用性の高いツールとなりえます。
このリリースでは、TCPクライアント機能が利用できるようになり、外部サーバーに接続してシームレスにデータを交換できるようになりました。
QUICネットワークレイヤーは製品での使用も可能に!
4D 20のベータ版では、新しいネットワークレイヤーを紹介しました:QUICネットワーク・レイヤーです。
その時点では、まだ開発中であったため、その後のリリースからは除外されていました。本日、QUICネットワーク・レイヤーがベータフェーズを終了し、晴れて正式に製品で使用することが可能になりました!
厳密な負荷テストと早期に使用したユーザーからの貴重なフィードバックを経て、QUICの安定性とパフォーマンスは認められ、主要な分野でServerNetをも凌ぐことが証明されました。4D 20 R5でQUIC がServerNet と同等の機能を持つようになったことで、ServerNetからQUICへと切り替えをする最適なタイミングと言えます。
しかしその前に、この素晴らしいニュースについて、もう少しお話ししましょう。
旧式ネットワークレイヤーの廃止
4Dクライアントと4Dサーバー間の通信の管理するためには、4Dでは3つの異なるネットワークレイヤーが用意されています:
- 旧式ネットワークレイヤー
- ServerNet
- そしてQUICです。
旧式ネットワークレイヤーは、30年前の4D v3で導入され、当初はAppleTalk用に開発され、ISDN用に拡張され、その後IPXが追加され、最終的にTCP/IPが追加されました。
これが開発された当初は、現在の4Dのクライアント/サーバー通信とはかけ離れた使い方がされていました。シングルスレッドで、暗号化されていない低速ネットワークに最適化されており、多くの異なるネットワークプロトコルに対応していました。そのため、最新のネットワーク通信にはまったく最適化されておらず、サポートする機能も非常に限られています。
そのため、4D 20 R5では、旧式ネットワークレイヤーを廃止予定とし、近々削除する予定です。まだ旧式ネットワークレイヤーを使用しているのであれば、今すぐServerNetに移行することをお勧めします。この移行によってどのようなメリットが得られるか、ご説明しましょう。
QUICがServerNetの機能に対応
QUICネットワークレイヤーは、ServerNetネットワークレイヤーと同等の機能をサポートするようになりました。4D 20 R5では、IPv6、ブロードキャスト、Windowsでのシングルサインオンに対応しました。
もちろん、これからのバージョンでも改良を続け、4D史上最高のネットワークレイヤーにしていくつもりです。
しかしここでは、追加した最後の新機能についてもう少し説明させていいただきます。
クライアント/サーバー接続とストアドプロシージャーに対応した新しい 4Dリモートセッションオブジェクト
4Dアプリケーションでは、4種類のセッションが存在します。4Dリモートセッション、ストアドプロシージャーセッション、モバイルセッション、Webセッションです。
Sessionコマンドはいままで、Web または モバイルセッションを返しました。これにより、セッションに関する豊富な情報と、セッション内のすべてのプロセスで共有されるオブジェクトにアクセスできます。
4D 20 R5 では、Sessionコマンドの対象がクライアント/サーバー接続とストアドプロシージャーに拡張されました。
QUICネットワークレイヤー: 自動アップデートとスリープモード
QUICネットワークレイヤーの開発は続いており、4D 20 R4 ではスリープモードと自動アップデートができるようになりました。これらの機能拡張を詳しく見て、他のネットワークレイヤーの動作と比較してみましょう。
QUICレイヤーを有効化するには
4D v20 ベータ版では、開発中の 新しいQUICネットワーク・レイヤー をお見せすることができました。このレイヤーはまだベータ版なため、LTS の最終リリースでは無効化されました。QUICレイヤーはフィーチャーリリースで提供されますので、その開発と改良に、ぜひご協力ください。
4D v20 では、ネットワークレイヤーの切り替えはインタプリターモードでのみ可能で、組み込みアプリケーションの場合は新規ビルドが必要でしたが、4D v20 R2 では、コンパイル/ビルドされたアプリケーションでもレイヤーの切り替えが可能で、本番環境であってもストラクチャー設定、ユーザー設定、およびデータファイル用のユーザー設定から切り替えてテストすることができます。
