QUICネットワークレイヤー: 自動アップデートとスリープモード

QUICネットワークレイヤーの開発は続いており、4D 20 R4 ではスリープモードと自動アップデートができるようになりました。これらの機能拡張を詳しく見て、他のネットワークレイヤーの動作と比較してみましょう。

スリープモード

マシンをスリープ状態にすると、4D は “スリープモード” と呼ばれる状態になります。サーバーへの接続を切断し、マシンを起こしたときに再接続します。その間、4D Server はこのセッションを特定の時間 (デフォルトでは 2日間) 開いておき、再接続がなければセッションを終了します。たとえば昼休みなどで短時間コンピュータから離れる際に作業中のデータを失うのを防ぐため、スリープモードは必要不可欠です。そのため、この機能は今回、QUICネットワークレイヤーで実装されました。
余談ですが、ServerNetレイヤーの “延期” 方式 (およびアイドル時間タイムアウト) は、QUICネットワークレイヤーでは役に立たないため使われていません。

自動アップデート

アプリケーションを QUICネットワークレイヤーにどのように移行させるべきか、疑問に思っている方も多いと思います。ご心配なく! 自動アップデートはQUICネットワークレイヤーで完璧に機能します。しかし、その働きは単純とはいえないため、どのように動作するかを正確に説明したいと思います。

QUIC は TCP ではなくUDP をベースにしているため、4Dネットワークレイヤーの中ではユニークな存在です。結果、QUIC を知らないバージョンの 4D で作られた古い 4Dクライアントと、QUICネットワークレイヤー上で動作する 4D Server との通信は、技術的に不可能です。しかし幸いなことに、この問題に対応して、動作するようにしました。

実際には、QUICネットワークレイヤーで動作していても、4D Server はServerNetレイヤーを使用する 4Dクライアントからの TCP接続を受け入れます。そのため、この接続をアップデートに利用することができます。正確には、アップデートのためにしか使用できません。そして古い 4Dクライアントが最新バージョンにアップデートされれば、QUICネットワークレイヤーを使用する 4D Serber への接続に問題はありません。

今後は…

4D 20 R5 にも、QUIC の新機能がたくさん追加される予定です。ご期待ください!

Nicolas Brachfogel
- プロダクトオーナー & シニアデベロッパー - Nicolas Brachfogelは、2017年にシニアデベロッパーとして4Dに入社しました(4D Serverとネットワークを担当)。Apple Siliconのリリースを管理するプロダクトオーナーとして、ユーザーストーリーを書いて機能仕様に落とし込み、機能実装が顧客のニーズを満たしているかを確認する役割を担っています。Institut Supérieur d'Informatique Appliquée (INSIA) を卒業した Nicolas は、2001年にソフトウェア開発者としてのキャリアをスタートさせました。JavaとC++で数年間コーディングした後、ゲーム会社のクライアント・サーバー開発を専門に担当。サーバー開発者/アーキテクトとして、多くのゲーム(Dofus Arena、Drakerz、Trivial Pursuit Go!)のサーバーアーキテクチャに携わり、成功を収めてきました。