|
SOA对网络的意义
很多SOA解决方案都忽略了网络。它假定网络能够在应用转型之后顺利支持新的SOA应用。
著名的计算机科学家 L. Peter Deutsch曾经总结出“分布式计算的八大谬误”。这些假设为:
1.网络是可靠的;
2.延迟为零;
3.带宽是无限的;
4.网络是安全的;
5.拓扑是不变的;
6.只有一位管理员;
7.传输成本为零;
8.网络是同构的。
尽管Deutsch
在1991年就总结出了这些谬误,但一直到今天研究“崭新的”SOA概念时,才得到了重视。使用Web服务的SOA实际上就是分布式应用。设计Web服务时,我们必须牢记这八个方面。
需要特别注意的是,在网络上大量使用Web服务会带来以下结果:
·应用的“Web化”通常意味着增加5~10倍的流量;
·在SOA框架中,消耗应用将Web服务视为URL,可以放置在任何地方,供Web访问。来自不同系统的不同模块一起执行业务流程,意味着与典型的客户机-服务器应用相比,网络流量模式更难以预测,分布范围更大。
·创建SOA 应用时,通常假设它具有相当于LAN的性能。但部署时,SOA应用交互过程会增加WAN延迟和包丢失,从而造成超时。
·从网络角度看,SOA 应用通常类似于互联网http/https 流量。网络管理员需要定期检查SOA http/https
流量的SLA和QoS,并与其它纯Web流量隔离,例如员工访问其个人Webmail时产生的流量。
·SOA
服务可以由ASP等外部机构或商业合作伙伴提供。网络必须是端到端网络,不但要包括内部网络,还要包括包含公共互联网的“外部网络”(通过IPSec或SSL)。
部署SOA时必须考虑上述问题。一般情况下,SOA项目预算只包含软件和服务器,但如上所述,其实很多方面都需要考虑。因此,整个计划应该包括网络升级(如果需要,应该考虑路由器、交换机、防火墙和应用加速设备的升级),以便支持SOA。
|