
SOA是一种架构模型,它通过分布服务组件的形式,提高企业的效率,灵活性,以及生产率。应用程序的业务逻辑或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。服务接口和实现相对独立。应用开发人员可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用.NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,以及使用的不同的开发语言。
SOA具有以下特性
SOA服务具有平台独立的自我描述XML文档。WSDL是用于描述服务的标准语言。
SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。
在一个企业内部,SOA服务通过注册表的方式来进行服务维护。应用程序在注册表处寻找并调用某项服务。UUDI是服务注册表的标准。
每项SOA服务都有一个与之相关的QoS。QoS的一些关键元素,有安全需求(例如认证和授权),可靠通信以及谁能调用服务的策略。
为什么选择SOA
IT企业的现状往往是,不同种类的操作系统,应用软件,系统软件和应用基础结构相互交织。一些现存的应用程序被用来处理当前的业务流程,因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道,并呈现一个可以支持原有业务的统一构架。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需求,使企业可以通过不同的渠道提供服务成为可能,并可以把企业现有的或已有的应用作为服务,从而保护了现有的IT基础建设投资。
服务架构
实现SOA,企业需要的服务架构,如下图:
SOA的优势
SOA的概念并非是什么新东西,SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着统一的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在新建的和现有的应用之上创建应用;SOA能够使客户或服务消费者避免服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用,组合产生新服务的快捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。