著者名: Nicolas Brachfogel

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

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

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

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

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

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

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

未分類 blank

QUICがServerNetの機能に対応

QUICネットワークレイヤーは、ServerNetネットワークレイヤーと同等の機能をサポートするようになりました。4D 20 R5では、IPv6ブロードキャストWindowsでのシングルサインオンに対応しました。

もちろん、これからのバージョンでも改良を続け、4D史上最高のネットワークレイヤーにしていくつもりです。

しかしここでは、追加した最後の新機能についてもう少し説明させていいただきます。

製品 blank

共有クラス

一般的なオブジェクト記法に従い、use/end useを指定しなくても自動的に呼び出す、シンプルな共有オブジェクトの使い方をお探しですか?

お待たせいたしました、共有クラスのご紹介です!

製品 blank

4D のシングルトン

4D 20 R5 は、デベロッパーのための強力な機能を提供します: シングルトンの登場です!

シングルトンデザインパターンでは、アプリケーション全体でアクセス可能なクラスのインスタンスを 1つだけ作成します。

このパターンには、以下のような多くの利点があります:

  • インタープロセス値の提供
  • ユーティリティクラスの作成
  • ファクトリーデザインパターンのベースとして
  • ほかにも多数

この新しいコンセプトの詳細については、このまま読み進めてください!

製品 blank

ノンブロッキング印刷

4D 20 R4 では、4D 内部の印刷ジョブの管理が大幅に改善されました。4D は、複数の印刷ジョブを並行して実行できるようになり、アプリケーションの反応性が格段に向上すると同時に、並行する印刷ジョブの管理が容易になりました。

詳しく説明しましょう!

製品 blank

クライアントサーバー通信用のSSL/TLS証明書を自動生成

クライアントサーバー間の通信のセキュリティを簡素化するために、4D 20 R4以降、4D Server は、4D が提供するデフォルトの証明書に依存する代わりに、独自のSSL/TLS証明書を生成します。

このアップデートは、テスト環境と本番環境の両方に大きなメリットをもたらします。独自の証明書を提供する必要なく、セキュリティ対策が強化されます。何が変わるのか説明しましょう。

製品 blank

SSL/TLS: ECDSA証明書のサポート

4D は SSL/TLS を使用して、クライアントサーバー間の通信と HTTPリクエストを保護します。4D は10年以上前から RSA暗号をサポートしており、4D 20 R3 では ECDSA暗号を追加しました。いい機会なので、セキュリティについて少しお話ししましょう。

製品 blank

ORDA: Blob/ピクチャー属性へのパスの割り当て

従来のやり方では、SET EXTERNAL DATA PATHコマンドを使うことによって、ピクチャーや BLOB をデータファイルの外に置くことができました。このコマンドは ORDA に適応していないため、v20 R3 では同様の機能を追加することにしました: Blob およびピクチャー属性に、ファイルへの参照を割り当てる機能です。詳しく説明しましょう。

製品 blank

PHPコマンドの廃止予定と4DビルトインのPHPインタプリタの削除

PHPは、Web開発において重要な役割を果たし、またzip、ハッシュ、LDAP機能など、ネイティブ言語ではまだ利用できない機能を提供するために4D v12で導入されました。4Dは、これらのPHP機能の多くをコア機能に取り込んできました。その結果、4D v20 R3ではビルトインのPHPインタプリタを削除し、v21ではPHPコマンドの廃止予定プロセスを開始することにしました。

4DからPHPコマンドを完全に削除するわけではありませんが、今後はPHPコードを実行するためにはシステムワーカーを使って実行することが強く推奨されます。

このブログでは、この移行プロセスについて説明しながら、PHP Execute コマンドを通して外部インタープリタを使用する方法や、システムワーカーでPHP コードを効率的に実行する方法を説明します。