随着技术模式的转变,Web服务受到大量媒体关注。而这些关注的焦点主要放在了Web服务能够带来的预期效益上。越来越被人们所忽略的是Web服务应用开发真实地执行情况。
要将焦点转移到用Web服务进行企业软件开发,需要在方法上向软件工程进行基本的转变。正如从传统结构开发过程到面向对象设计的转变一样,采用面向服务体系结构(SOA)的企业需要重组其设计方法,并可能需要对其开发人员进行再教育。
在大部分企业正完成向基于组件开发(CBD)体系结构转变的时候,谈论向SOA发展好像还太早。一个事实有力地支持了这一观点,那就是成功实现Web服务开发的几个关键技术问题仍不成熟。譬如说,SOAP非官方(de facto)协议的执行和可靠性引起的公众抱怨。即使是这样,大部分程序开发管理员还是十分清楚要和现有技术保持步调一致。
如果说SOA是Web服务开发的命名规范(moniker),那么面向服务程序开发(SODA)就是其执行工具。特别是,SOA是经由一个可发现接口发布的一个或多个功能“服务”的配置,这些服务在与一个或多个其他“服务”结合的时候,可以提供终端用户功能。
SOA可以看作是前面提到的基于组件系统的一个升华,因为服务本身就是从传统应用对象或组件发展而来。每个服务都执行一个或多个接口或“方法设置”。
它们可以被发布(通过检索服务定位器或注册表可以发现)也可以是公用的(需要服务请求者有接口的静态知识)。如果说服务是松散耦合在一起的,也就是意味着利用标准通信方法(如交换XML文件)将它们捆绑到了其他服务上。
SODA强调开发和执行支撑SOA中服务的程序。它包括以下几个概念: