我有一个基于Java的客户端服务器应用程序,用于服务器。
现在我必须用Web客户端替换Java客户端。
我有三种不同的achitectur概念来实现网络服务器并将其链接到应用服务器。但我不确定应该使用哪个。我对网络应用程序并不十分坚定,但我认为这不是网络客户端的纯粹决定。 有人可以给我一些关于不同概念的利弊,或者请告诉我我的概念是否有错误。
这些是概念:
在我的应用程序服务器中使用嵌入式Web服务器。 Pro:我不得在Web服务器和应用程序服务器之间实现任何会话处理。 Web服务器可以使用应用程序服务器的数据存储来进行请求。 缺点:客户必须决定是否允许应用服务器启动自己的Web服务器。而且我不确定将web ui逻辑与应用服务器的业务逻辑混合是一种好的方式
将网络ui的业务逻辑嵌入到独立Web服务器的战争中。 Pro:基本安全性问题,如https处理将由Web服务器完成。对于客户而言,部署可能更容易接受。我不能在Web服务器和应用程序服务器之间实现任何会话处理。 Web服务器可以使用应用程序服务器的数据存储来进行请求。 缺点:应用程序服务器有很多内存和CPU使用。这可能是Web服务器的问题。
将web ui嵌入到Web服务器中,并通过套接字连接将其链接到应用程序服务器。 Pro: ui和业务逻辑之间的严格分离。不得更改应用程序服务器,因为Web服务器和应用程序服务器之间的套接字连接可以使用胖客户端的现有套接字连接。 缺点:用户会话的处理必须处理两次。首先是Web会话,然后是第二次到应用程序服务器的会话。此外,Web服务器必须为数据设置自己的存储,并且必须使它们与应用程序服务器中的存储保持同步。
我的第一个想法是采用第一个概念,因为我在一个应用程序中拥有所有东西。 但我的第二个想法是使用第三个概念,因为严格的分离和真正的Web服务器的好处。但是我的问题是每个用户处理两个会话。还是有更好的概念?
感谢您给我输入!