三层架构系统
本文关键字:系统 三层 | 更新日期: 2023-09-27 17:49:30
我们公司有7家工厂,这些工厂位于不同的地理区域,通过租用线路相互连接,所有工厂都在Windows服务器的一个域中。我必须开发一个采购系统,将由用户谁是在每个位置使用。我可以有一个集中的数据库。我正在考虑使用三层架构来设计这个。目前我脑海中的设计是这样的。(我之前没有设计过3层的系统)。1.在每个位置的服务器中安装业务层。2.在数据库所在的总部安装数据访问层。3.在每个用户的计算机上安装表示层(可以是swing应用程序或web浏览器)。
这个方法值得吗?其他问题是1。在每个地点的服务器上安装业务层或在总部服务器上安装业务层有什么好处?2.在不同位置的层之间传递消息的技术是什么?例如:从远程位置的业务层对象调用总部数据访问层中的方法"savePurchaseOreder(purchaseOrder)"
你是不是把"tier"answers"geographical location"混淆了?这些确实是不同的概念。在构建3层或n层应用程序时,除了浏览器之外的所有层都位于同一数据中心,这是非常典型的做法。"层"是关于创建干净的抽象:在功能类型之间建立逻辑边界,例如"数据持久化层"、"业务逻辑层"answers"用户界面层"。地理位置与此无关。
关于你的问题:
-
业务逻辑服务器在本地还是在总部?可能取决于您的专用WAN链路的带宽。通过将业务层服务器在地理位置上靠近用户,您可以实现浏览器客户机与业务层服务器之间通信的快速响应时间。但是,如果您的广域网连接到中央数据库的速度很慢,那就没有太大关系了。相反,如果您在办公室位置和总部之间有很好的WAN连接,那么将业务逻辑服务器分发到本地办公室不会有太大的区别,并且如果它们是中央的,它们可能更容易维护。
-
分布式服务器之间的通信方式。如果您感兴趣的话,可以使用RMI,或者通过TCP/IP进行更简单的REST调用。使用TCP/IP的REST可能更容易实现。
希望对你有帮助。
——马克
如果您有来自工厂的足够带宽,您可以在总部部署业务和数据逻辑,并将应用程序作为基于web的服务提供给远程位置。
你可能还想考虑另一种方法,你将应用服务器部署到你的工厂来托管业务/数据逻辑和web服务器来提供演示。然后,您需要将数据库中的数据(即复制)同步回总部。这需要更高的维护,但如果系统出现故障,它确实可以将故障隔离到一个工厂,并且在升级系统时也可以将风险降到最低。
更先进的方法是探索云。这是我写的一篇关于将本地系统部署到云的文章。
http://serena-yeoh.blogspot.com/2014/01/layered-applications-and-windows-azure.html为什么不创建一个web应用程序并将其托管在其中一个办公室呢?其他办公室可以简单地通过web浏览器使用它…
如果是一个安全问题,我相信你的网络团队将能够帮助你建立内部网或VPN连接,使网站不能被外部个人访问。