原文链接:
http://www.cppblog.com/zhangji198543/archive/2006/04/17/5684.html认真的阅读了这篇文章,总结了一下:
首先,必须理解 Web 服务并不等同于面向服务的体系结构(SOA)。
Web 服务是包括 XML,SOAP,WSDL 和 UDDI 在内的技术的集合,它使人们能够针对特定的消息传递和应用程序集成问题构建编程解决方案。随着时间的推移,人们有理由相信这些技术将逐渐成熟并最终为更好、更有效、更健壮的技术所取代,但是,就目前的情况而言,它们可以发挥作用。至少,它们是 SOA 能够最终实现这种观念的证明。
SOA 只不过是一种体系结构。它不是任何诸如 Web 服务这样的特定技术的集合;而是超越它们的,在理想的情况下,是完全独立于它们的。在业务环境中,SOA 的纯粹的体系结构定义可能会是这样的“
一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程”。看以下对该定义的解释:
1.所有功能都定义为服务。这仅仅包括业务功能、由底层功能组成的业务事务和系统服务功能。
2.所有的服务都是独立的。它们就像“黑匣子”一样运行:外部组件既不知道也不关心它们如何执行它们的功能,而仅仅关心它们是否返回期望的结果。
3.在其最一般的意义上来说,接口是可调用的;也就是说,在体系结构的层面上,它们究竟是本地的(在本系统内)还是远程的(在直接系统外)、是用什么互连 Scheme 或协议来调用或需要什么样的基础架构组件来连接,都是无关紧要的。服务可能是在相同的应用程序中,也可能是在公司内部网内完全不同的系统上的不对称多处理器的不同地址空间中,还有可能是在用于 B2B 配置的合作伙伴的系统上的应用程序中。
其次,要明白应用SOA的原因。SOA可以解决企业面临的重大问题-----成本。SOA可以利用现有的资产。现有系统很少可以抛弃,它们通常都包含对于企业很有价值的东西。从战略上讲,目标是构造一个新的体系结构来创造所有想要的价值,但是,从战术上讲,必须集成现有系统,以便随着时间的推移,可以在可管理、渐进式项目中分化或取代它们。