2011-06-27 11 views
2

ユーザーが自分のWebサイトに埋め込むことができるSaaSチャットを開発したいと思います。 Live Chatと似ています。問題は、サーバーやデータベースプログラムを開発したことがないことです。また、私はJavaを使い慣れていませんが、デスクトップC#プログラミング(いくつかのGUIアプリケーションを開発)の経験があります。実際、私は学生であり、それほど多くの経験はありません。SaaSチャットのための高速かつスケーラブルなサーバーアーキテクチャを設計するための助けが必要です

私はサーバーのスケーラビリティに優れたアーキテクチャを設計しようとしていますが、数日間のグーグル・グーグルの読書や読書の後、私はそのような情報量に圧倒されました。サーバーにはプレゼンテーションコードが含まれていないのでシンプルにする必要がありますが、サービスが普及すればトラフィックが大きくなることを期待しているため、サーバーは非常に高速にする必要があります。今のところ私は使用している技術の大半を選んだ。ここでは、サーバ・アーキテクチャの私のバージョンがあります:

My current architecture

今、最大の疑問は、ビジネス・ロジックが含まれているこの大きな「桟橋」の部分をどのように設計するかです。私はすでにMVPパターンを使用する必要があることを知っています。しかし、まだ大きな問題がいくつかあります:

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

私が適切な技術やデザインパターンを教えてくれればとてもいいです。

+0

これは写真でよく書かれた「teh codezを送る」です... –

+0

Nope。私は、他の多くの人々が同様のものを設計するために使用するパターンと技術について尋ねています。私は、JavaのすべてのWebサイトがそれ自身の独自開発のデータベースフレームワークを使用していることを信じていません。 3番目の質問への回答は大きな助けになりますが、最初の2つにはちょうど答えるだけで十分です。 – Poma

+0

は、Googleで* Hibernate *への参照を見つけられなかったことを真剣に示唆していますか?もしそうなら、はるかに小規模なプロジェクトに取り組む必要があります。 –

答えて

1

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

+0

ありがとうございます。私はすでにそれを見つけたので、データベースからロードオブジェクトをどのように保存するかを知っています。しかし、問題は、このロードと保存のための適切な場所はどこですか?ベストプラクティスとは何ですか?それらをすべてシングルトン 'DbManager'に置くか、すべてのクラスに広げますか?あるいは、何らかのインターフェースをしているかもしれませんか? – Poma

関連する問題