3层架构系统

时间:2014-03-11 04:27:20

标签: c# java

我们公司有7家工厂,分别位于不同的地理区域,并通过专线互连,所有工厂都在Windows服务器的一个域中。我必须开发一个采购系统,供每个地点的用户使用。我可以拥有一个集中式数据库。我正在考虑使用3层架构来设计它。目前我心中的设计如下。 (我之前没有设计过3层系统)。 1.在每个位置的服务器中安装业务层。 2.在数据库所在的总公司安装数据访问层。 3.在每个用户计算机中安装表示层(可以是swing应用程序或Web浏览器)。

这个方法值多少钱?其他问题是1.在每个位置服务器上安装业务层或在总公司服务器上安装它的优势是什么? 2.在不同位置的层之间传递消息的技术是什么?例如:从远程位置的业务层中的对象调用总公司数据访问层中的方法“savePurchaseOreder(purchaseOrder)”

3 个答案:

答案 0 :(得分:2)

您是不是将“等级”与“地理位置”混为一谈?这些确实是不同的概念。构建3层或n层应用程序是非常典型的,除了浏览器在地理上位于同一数据中心之外的所有层。 “层”是关于创建干净的抽象:您在功能类型之间建立了逻辑边界,例如您的“数据持久层”,“业务逻辑层”和“用户界面层”。地理位置并没有真正参与其中。

回答你的问题:

  1. 位置或总部的业务逻辑服务器?可能取决于您的私有WAN链接的带宽。通过在地理位置上靠近用户定位业务层服务器,您可以实现浏览器客户端与业务层服务器之间通信的非常快的响应时间。但是,如果您与中央数据库的WAN连接速度很慢,则无关紧要。相反,如果您在办公地点和总部之间建立了良好的WAN链接,那么将业务逻辑服务器分配到本地办公室将不会产生太大的影响,如果它们是核心,它们可能更容易维护。

  2. 分布式服务器之间的通信方法。如果您感兴趣,可以使用RMI,或者通过TCP / IP简化REST调用。使用TCP / IP的REST很可能更容易实现。

  3. 希望这有帮助。

    - 标记

答案 1 :(得分:2)

如果您有足够的工厂带宽,您可以在总部部署业务和数据逻辑,并将应用程序作为基于Web的应用程序提供给远程位置。

您可能还需要考虑一种替代方法,将app服务器部署到工厂以托管业务/数据逻辑和Web服务器以提供演示。然后,您需要将数据库中的数据(即复制)同步回您的总部。这具有更高的维护成本,但如果系统出现故障,它确实可以将故障隔离到一个工厂,并且还可以在升级系统时将风险降至最低。

更先进的方法是探索云。这是我撰写的关于将内部部署系统部署到云的文章。

http://serena-yeoh.blogspot.com/2014/01/layered-applications-and-windows-azure.html

答案 2 :(得分:1)

为什么不创建一个Web应用程序并将其托管在其中一个办公室中?其他办公室可以通过网络浏览器轻松使用它......

如果担心安全问题,我相信您的网络团队将能够帮助您进行Intranet设置或VPN连接,以便外部人员无法访问该网站。

相关问题