ユーザーが自分のWebサイトに埋め込むことができるSaaSチャットを開発したいと思います。 Live Chatと似ています。問題は、サーバーやデータベースプログラムを開発したことがないことです。また、私はJavaを使い慣れていませんが、デスクトップC#プログラミング(いくつかのGUIアプリケーションを開発)の経験があります。実際、私は学生であり、それほど多くの経験はありません。SaaSチャットのための高速かつスケーラブルなサーバーアーキテクチャを設計するための助けが必要です
私はサーバーのスケーラビリティに優れたアーキテクチャを設計しようとしていますが、数日間のグーグル・グーグルの読書や読書の後、私はそのような情報量に圧倒されました。サーバーにはプレゼンテーションコードが含まれていないのでシンプルにする必要がありますが、サービスが普及すればトラフィックが大きくなることを期待しているため、サーバーは非常に高速にする必要があります。今のところ私は使用している技術の大半を選んだ。ここでは、サーバ・アーキテクチャの私のバージョンがあります:
今、最大の疑問は、ビジネス・ロジックが含まれているこの大きな「桟橋」の部分をどのように設計するかです。私はすでにMVPパターンを使用する必要があることを知っています。しかし、まだ大きな問題がいくつかあります:
- データベースを正しく操作するにはどうすればいいですか?静的
DatabaseManager
クラスをロードしてオブジェクトをデータベースに保存できるクラスにしますか?または、特別な静的SaveToDb
とLoadFromDb
メソッドをクラスに作成しますか?私はそのようなもののために既に開発されたフレームワークがなければならないと思う(それはサーバにとって非常に一般的な仕事でなければならない)。 - イベントシステムの設計方法は? 「チャットルーム」内のすべてのクライアントに、新しいメッセージがあることを正しく通知するにはどうすればよいですか?私はほとんどのクライアントがデータベースではなくメモリにあるので、チャットルームの
NewMessage
イベントにすべてのクライアントを簡単に登録することはできません。 - メインクラスの簡略化されたデザインを投稿すると大きな助けになります:
Message
、User
、Chat room
です。ユーザーからチャットルームにメッセージが送信され、チャットルームは購読しているユーザーの集まりです。これは、以前の2つの質問に対する答えの一種になります。
私が適切な技術やデザインパターンを教えてくれればとてもいいです。
これは写真でよく書かれた「teh codezを送る」です... –
Nope。私は、他の多くの人々が同様のものを設計するために使用するパターンと技術について尋ねています。私は、JavaのすべてのWebサイトがそれ自身の独自開発のデータベースフレームワークを使用していることを信じていません。 3番目の質問への回答は大きな助けになりますが、最初の2つにはちょうど答えるだけで十分です。 – Poma
は、Googleで* Hibernate *への参照を見つけられなかったことを真剣に示唆していますか?もしそうなら、はるかに小規模なプロジェクトに取り組む必要があります。 –