我正在为基本的在线协作 IDE 构建 Java 应用程序。在此应用程序中,客户端将命令发送到服务器,服务器将这些命令序列化,然后将结果返回给每个客户端。我正在尝试确定能够最大限度地提高性能、效率和代码简单性的架构风格。
目前,我正在使用客户端-服务器模型和发布-订阅模型之间的一种混合。客户端向服务器发送命令(即编辑代码、远程编译等的请求)。对于特定的客户端命令,在服务器响应命令之前,客户端的文件实际上并没有改变。由于该项目的主要目标之一是 IDE 允许实时协作,因此每次输入的按键都会发送客户端命令。这是客户端-服务器方面。
但是,由于客户端还必须接收从其他客户端转发给它们的事件,因此它不是纯粹的客户端-服务器设置。我正在使用 ExecutorService 类来实现这个发布-订阅行为。
我的问题是 - 是否有与这样的应用程序相对应的特定架构风格?我可以采取另一种方法来实现应用程序目标吗?或者,也许,我已经在使用最好的建筑风格了?