2

ユーザーが自分のWebサイトに埋め込むことができ、デスクトップチャットクライアントもあるSaaSチャットを開発したいと思います。ライブチャットに似たもの。問題は、私がサーバーまたはデータベースプログラムを開発したことがないということです。また、私はJavaを初めて使用しますが、デスクトップC#プログラミングの経験があります(いくつかのGUIアプリを開発しました)。実際、私は学生で、それほど経験はありません。

サーバー用の優れたスケーラブルなアーキテクチャを設計しようとしていますが、数日間グーグルでウィキペディアを読んだ後、そのような量の情報に圧倒されたように感じます。サーバーにはプレゼンテーションコードが含まれていないためシンプルである必要がありますが、サービスが普及するとトラフィックが増えると予想されるため、非常に高速である必要があります。今のところ、使用するテクノロジーのほとんどを選択しました。これが私のバージョンのサーバーアーキテクチャです。

私の現在のアーキテクチャ

ここで最大の問題は、ビジネスロジックを含むこの大きな「Jetty」ピースをどのように設計するかです。MVPパターンを使用する必要があることはすでに学びました。しかし、まだいくつかの大きな問題があります。

  1. データベースを適切に操作する方法は?DatabaseManagerオブジェクトをデータベースにロードおよび保存できる静的クラスを作成しますか?または、クラスに特別な静的メソッドSaveToDbとメソッドを作成しますか?LoadFromDbそのようなもののためにすでに開発されたフレームワークがなければならないと思います(それはサーバーにとって非常に一般的なタスクでなければなりません)
  2. イベントシステムの設計方法は?「チャットルーム」のすべてのクライアントに新しいメッセージがあることを正しく通知するにはどうすればよいですか?NewMessageほとんどのクライアントはメモリではなくデータベースにあるため、すべてのクライアントをチャットルームのイベントに簡単にサブスクライブすることはできません。
  3. メインクラスの簡略化された設計を投稿すると、非常に役立ちます:Message、、。メッセージがユーザーからチャットルームに送信され、チャットルームはサブスクライブされたユーザーのコレクションです。これは、前の2つの質問に対する一種の答えになります。UserChat room

適切な技術やデザインパターンを教えていただければとても嬉しいです。

4

1 に答える 1

2

欠けているのは、ORM(Object Relational Mapper)の概念です。ORMとは何か、そしてそれがJettyレイヤー内のビジネスロジックの問題を解決するのにどのように役立つかを調べてください。コメントで述べたように、Hibernateは優れたORMです。そこには多くのORMがあります。ORMがあなたのために何ができるかについていくつかの調査をしてください。それはあなたが見逃しているパズルの一部だと私は信じています。

于 2011-06-27T19:33:47.890 に答える