2

我想开发一个 SaaS 聊天,用户可以将其嵌入到他们的网站上,并且还会有一个桌面聊天客户端。类似于Live Chat的东西。问题是我从未开发过服务器或数据库程序。此外,我是 Java 新手,但在桌面 C# 编程方面有一些经验(开发了一些 gui 应用程序)。事实上,我是一名学生,没有那么多经验。

我正在尝试为我们的服务器设计一个良好的可扩展架构,但经过几天的谷歌搜索和阅读维基百科后,我对如此大量的信息感到不知所措。服务器需要简单,因为它不包含任何演示代码,但它必须非常快,因为如果服务变得流行,我预计会有高流量。目前我已经选择了我将要使用的大部分技术。这是我的服务器架构版本:

我现在的架构

现在最大的问题是如何设计这个包含业务逻辑的“码头”大片。我已经知道我需要使用 MVP 模式。但仍然存在一些主要问题:

  1. 如何正确使用数据库?制作可以将对象加载和保存到数据库的静态DatabaseManager类?或者在类上制作特殊的静态SaveToDbLoadFromDb方法?我认为必须有一个已经开发的框架来处理这些事情(这对于服务器来说一定是非常常见的任务)
  2. 如何设计事件系统?如何正确通知“聊天室”中的所有客户他们有新消息?NewMessage由于大多数客户都在数据库中,而不是在内存中,因此我无法轻松地将所有客户订阅到聊天室的事件。
  3. 如果您发布一些主要类的简化设计,这将有很大帮助MessageUserChat room. 消息从用户发送到聊天室,聊天室是订阅用户的集合。这将是对前两个问题的回答。

如果您向我指出适当的技术或设计模式,那将是非常好的。

4

1 回答 1

2

您缺少的是 ORM(对象关系映射器)的概念。查看什么是 ORM,以及它如何帮助您解决 Jetty 层中的业务逻辑问题。正如评论中提到的,Hibernate 是一个很棒的 ORM;那里有很多 ORM。研究一下 ORM 可以为您做什么;我相信这是你所缺少的谜题的一部分。

于 2011-06-27T19:33:47.890 回答