第19章:物理层和部署在MSDN 中描述的“分布式部署”(见图2)。都很好。

在我的经验,我们一直都部署了我们的基于Web的系统按照他们所说的“非分布式部署”(图1)。我的理解是,在微软的世界“应用程序服务器”作为一个独立的东西是不存在的(因为它在Java世界中),因为它有效地“烘烤”的OS / Windows的。

所以我的问题是,如果你的UI和业务逻辑(BL)分发到不同的服务器/层,他们会怎么沟通?

我知道一个答案是使用“服务层” - 有什么选择?你会如何真正做到这一点?这将是什么样的,从代码的角度?

有帮助吗?

解决方案

首先关闭。不这样做。只是不要。你在痛苦的世界。逻辑层和物理层是不同的东西。应用层的逻辑分离是一个好主意。应用层的物理分离往往不是一个灾难。如果有一个很好的理由部署(在另一台电脑共享支付处理器),当然,请便。您可以使用标准的机制,我们都知道,爱 - WCF,MSMQ,HTTP,...选择你的毒药。但不承担辜负在MSDN白皮书一些神话理想的缘故开销和复杂性。

其他提示

应用程序服务器被炮制为理念,以帮助配给稀缺资源:计算能力,在中间层。这个想法来自主机的土地,首先,在CPU是稀缺和昂贵,因此时间和精力,很多钱是花在切割出主机CPU到各个用户,节流工作量,保持负载关闭数据库,“钝化“交易小时后,直到负荷减少,等等。在那些日子里,人们花了数百万美元的软件,保持轨道上的大型交易,以便能够执行“扣费” - 内部成本占使用expen $ IVE主机。是的,人们花的钱容载量,使他们能够为使用大型机的做计费内部部门。

问题是,英特尔(后来AMD),思科(等人),EMC,微软和Linux渲染整个想法毫无意义。计算变得便宜。真的很便宜。还有就是真的,真的,真的没有必要比中间层计算资源。什么是这些天双CPU的服务器去?你的那些多少能部署之一,它的家伙年薪?这是大型机计算的旧经济,其中的计算是昂贵的,稀缺资源的反转,而人们比较(!!)便宜。现在人们都在昂贵的部分,和计算是便宜。

应用服务器,所有的花里胡哨,他们有限制访问的计算,或者parceling出来,或节流它甚至是“监视”的交易扣款的目的....这些东西是没有必要的,当你具有廉价的AMD服务器机架。

另一件事的应用服务器所做的是从工作量屏蔽数据库。从本质上讲,从DB服务器卸载工作。时间,开发商把业务逻辑在存储过程和繁荣,有你的应用程序。但也有使用这种方法的可扩展性问题。但现在,存储的特效是快速,高效。数据库服务器可以扩展,便宜。机会是,你没有在世界顶级100工作量卷无法在英特尔的硬件来承担,用存储过程的逻辑之一。

与存储过程中的做法虽然一个主要的问题是,它仍然是那种很难在主流语言作者存储的特效(Java,C#,VB等),并进行管理。是的,我知道SQL CLR和Java虚拟机,通过DB管理。但这些都不是主流方式。另外,DB管理员不喜欢码骑师搞乱他利用率图形。由于这些原因,还有专用于为目的的独立的语言编写业务逻辑的欲望。而且还是运行和管理的专用计算资源逻辑的欲望。但是......传统的“应用程序服务器”?号它是没有意义的。

把英特尔的服务器上的所有你的逻辑,让呃RIP!如果您需要更多的规模,克隆盒。所有的业务逻辑是无状态(是吗?),这样你就可以向外扩展。使用3“应用”服务器的机器,或4或5或但是你需要多。所有正好运行相同的代码。彼此的克隆。不管你有多少业务逻辑机器都有,并不实际分配工作量。对于最大的可扩展性,努力把每一笔交易在一个机箱中。这对效率和资源的最佳使用的配方。

它是在你的应用程序的体系结构使用逻辑层的最佳实践。这使得更容易开发和维护。但是,不要假设逻辑分离必须暗示,甚至建议,物理分离。它不是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top