Nettyを使用してサーバーに接続するデスクトップクライアント(基本クライアント/サーバーのセットアップ)があります。クライアントはCRUDだけでなく、複雑なビジネスロジックを行うために多くのオブジェクト(POJO)を持っています。なぜなら、私はクライアントがデータベースに直接話すことができないからです。また、私はすべてのSQLロジックをクライアントに配置したくありません。Netty - たくさんのPOJOを持つデスクトップアプリケーション用のクライアント/サーバーのアーキテクチャに最適な方法
だから、例えば私が持っている:
boolean RaceTrackDAO.saveTrack(Track track);
int RaceTrackDAO.getFastestLapTime(Track track);
Driver[] RaceTrackDAO.getTopDriversForTrack(int trackID)
...
boolean DriverDAO.saveDriver(Driver driver);
bollean DriverDAO.updateDriver(Driver driver);
Driver[] DriverDAO.getTopTenDrivers(Driver driver);
...
などを...クライアントで
は、私が持っている:
someUICode()
{
...
Driver[] topTenDrivers = DriverDAO.getTopTenDrivers();
...
}
を質問はIアーキテクチャ/実装行う方法ですクライアント/サーバーシステムでNetDAtyを使用するためのDriverDAOレイヤー?
私はyou can send POJO's through the Channelを理解していますが、ドキュメンテーションはPOJOの1つのタイプの送信について実際に話しています。私はいくつかの調査をして、すべての種類のオプションがあることを知りました。面白く見えるコマンドと状態のパターンがあります。
私にとって重要なのは、可能な限り定型的なコーディングを避けることです。 Nettyにはシリアル化によってPOJOのマーシャリングとアンマーシャリングを行うためのツールが組み込まれていることはわかっています。それは簡単な部分です。私は百万のif文ですべての可能なpojo(そしてどのバックエンド呼び出しを作るかを知る)に対処するために立ち往生したくありません。
私にとっての鍵は、全体を非常に保守的に保つことです。パフォーマンスは良いですが、システムは一度に何千もの接続を処理する必要がないので、少し余裕があります。
DAOレイヤでNettyを使用するようなシステムを設計するには、何が最善のアーキテクチャですか?
上記以外の理由により、RMIは最適ではありません –