旧式ネットワークレイヤーの廃止

4Dクライアントと4Dサーバー間の通信の管理するためには、4Dでは3つの異なるネットワークレイヤーが用意されています:

  • 旧式ネットワークレイヤー
  • ServerNet
  • そしてQUICです。

旧式ネットワークレイヤーは、30年前の4D v3で導入され、当初はAppleTalk用に開発され、ISDN用に拡張され、その後IPXが追加され、最終的にTCP/IPが追加されました。

これが開発された当初は、現在の4Dのクライアント/サーバー通信とはかけ離れた使い方がされていました。シングルスレッドで、暗号化されていない低速ネットワークに最適化されており、多くの異なるネットワークプロトコルに対応していました。そのため、最新のネットワーク通信にはまったく最適化されておらず、サポートする機能も非常に限られています。

そのため、4D 20 R5では、旧式ネットワークレイヤーを廃止予定とし、近々削除する予定です。まだ旧式ネットワークレイヤーを使用しているのであれば、今すぐServerNetに移行することをお勧めします。この移行によってどのようなメリットが得られるか、ご説明しましょう。

約10年前、4DはServerNet の開発を開始しました。これは最新のハードウェアとネットワークに基づいた新しいプロトコルで、旧式ネットワークレイヤーを置き換えることを主眼としていました。ServerNetは、より高速で、より信頼性が高く、より機能が豊富なネットワークです。現在の弊社の最大の顧客は、1000以上の同時接続を受け入れるために毎日ServerNet接続を使用しています。

ServerNetの利点

ServerNetはプリエンプティブに実行されます:各クライアントのプリエンプティブなプロセスに対して、サーバー上ではプリエンプティブなスレッドが実行されます。旧式ネットワークを使った場合にはクライアント上でプリエンプティブスレッドを実行することはできません。数百、あるいは数千のプロセスがあるような場合には、ServerNetは必須といえます。

スリープモード:旧式ネットワークの場合、クライアントマシンがスリープモードに入ると、ネットワーク接続は閉じられ、結果としてクライアント側ではアプリケーションを終了を余儀なくされます。一方、ServerNetは、ユーザーがマシンをスリープから復帰させるまで接続を維持します。

SSO(Active Directoryによるシングルサインオン):Windowsのシングルサインオンでは、Active Directoryユーザーを使用することで、ログインダイアログを使用せずに自動的にユーザーを認証することができます。Windows上でのみ利用可能で、この機能は旧式ネットワークレイヤーでは利用できません。

QUICについて

4D 20では、4Dは新しいネットワークレイヤーに取り組んでいることが公表しました。QUICネットワークレイヤーは、(例えばHTTP/3などをサポートする)QUICプロトコルを使用し、Wi-Fiや5Gのような信頼性の低いネットワークにおけるクライアント/サーバー接続の安定性を向上させることを目的としています。

QUICは、これらのような種類のネットワークにおいてより優れたパフォーマンスを必要とする将来のアプリケーションにとって、計り知れない可能性を秘めています。4DではQUICの安定性向上に積極的に取り組んでおり、今後の開発の続報に是非ご期待ください。

それまでの間、ServerNetは、その実証済みの安定性と機能群により、ほとんどのアプリケーションで推奨される選択肢であり続けます。

4Dフォーラムでは、この変更に関するご質問やご意見をお待ちしております。皆様の経験を共有し、これらの進歩が皆様のアプリケーションにどのように役立つかを議論しましょう!

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!)のサーバーアーキテクチャに携わり、成功を収めてきました。