基本概念
SOA---Service Oriented Architecture,简单可被认为是,面向服务的框架
但是,更被认为是,一整套新的分布式软件系统构造方法和环境,包含运行环境、编程模型、架构风格和相关方法论等在内。涵盖服务的整个生命周期:建模-开发-整合-部署-运行-管理。
在SOA的架构风格中,服务是最核心的抽象,业务被划分为(组件化)一些粗粒度的业务服务和业务流程,业务服务是独立的,自包含,可重用的,由一系列的分布式系统提供,业务流程由服务组装,一个"服务"定义了一个与业务功能或业务数据相关的接口,以及约束这个接口的契约 , 接口和契约采用中立、基于标准的方式进行定义,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在不同系统中的服务可以以一种统一的和通用的方式进行交互、相互理解。除了这种不依赖于特定技术的中立特性,通过服务注册库(Service Registry)加上企业服务总线(Enterprise Service Bus)来支持动态查询、定位、路由和中介(Mediation)的能力,使得服务之间的交互是动态的,位置是透明的。技术和位置的透明性,使得服务的请求者和提供者之间高度解耦。这种松耦合系统的好处有两点:一点是它适应变化的灵活性;另一点是当某个服务的内部结构和实现逐渐发生改变时,不影响其他服务。
SOA架构带来的另一个重要观点是业务驱动IT,即IT和业务更加紧密地对齐。以粗粒度的业务服务为基础来对业务建模,会产生更加简洁的业务和系统视图;以服务为基础来实现的IT系统更灵活、更易于重用、更好(也更快)地应对变化;以服务为基础,通过显式地定义、描述、实现和管理业务层次的粗粒度服务(包括业务流程),提供了业务模型和相关IT实现之间更好的"可追溯性",减小了它们之间的差距,使得业务的变化更容易传递到IT。
因此,可以将SOA的主要优点概括为:IT能够更好更快地提供业务价值(Business Centric)、快速应变能力(Flexibility)、重用(Reusability)。
第一, SOA是架构风格,是方法;而不是具体架构具体实现技术(如Web Service)、具体架构元素(如企业服务总线,Enterprise Service Bus,ESB)。
第二,