SOA是一种进行企业级系统开发的新的体系架构,在基于SOA体系架构的系统中,应用程序的具体功能是由一些松耦合和具有统一接口定义方式的组件(也就是web service,xml)等组合而建立起来的。因此,基于SOA的架构体系也一定是从企业的具体需求开始构建的。但是,SOA和其它企业体系架构的不同之处就在于SOA提供的业务灵活性。业务灵活性是指企业能对业务变更做快速进行响应和处理,通过利用这种便利来提高竞争优势的能力。对企业级架构设计师来说,即创建一个灵活的业务体系架构意味着可以满足当前还不清晰的业务需求的IT架构。
而在SOA体系架构设计中,服务是最核心的抽象方法,业务可以划分(组件化)成一系列粗粒度的服务和流程。而各组件化业务服务相对独立、自包含、可重用,由一个或者多个分布的系统来实现和组装。
一个"服务"定义了一个与业务功能或业务数据相关的一组接口,以及约束这个接口的契约描述,如服务质量指标要求、业务规则、安全性要求、法律法规的遵循、关键业绩指标(Key Performance Indicator,KPI)等。契约描述和接口采用中立、基于标准的方式进行定义,它独立于编程语言、操作系统和硬件平台等来实现服务。这使得构建在不同操作系统中的业务服务可以以一种统一的和通用的方式进行交互、相互理解。除了这种不依赖于特定技术的服务特性,通过注册服务加上企业服务总线的方式来支持中介(Mediation)、定位、动态查询、路由和转发的能力,使得业务服务之间的交互是动态的,位置是透明的。
技术和位置的透明性,使得服务的请求者和提供者之间能够构成一种松耦合。而这种松耦合平台的构成有两点好处:一点是它适应变化的灵活性;另一点是当某个业务服务的内部结构和实现方式逐步发生改变时,不影响其他服务。而紧耦合则是指应用程序之间的不同组件的接口与其功能和结构是紧密相连的,因而当每块发生变化时,而相关部分的也要随着各种紧耦合的关系进行部分甚至整个应用程序的调整,这样的体系架构就非常的脆弱了。
SOA体系架构带来的主要观点是业务驱动IT,即业务驱动和业务更加紧密地联系在一起。以粗粒度的业务服务作为基础来对公司业务进行建模,这样就可以产生简洁的业务和系统视图;以业务服务为基础来实现的IT系统更灵活、更易于重用、也更快地应对企业业务需求的变化;以业务服务为基础,通过显式地方式来定义、描述、实现和管理业务层次的粗粒度服务(包括业务流程),提供了业务服务模型和相关IT业务之间提供了更好的"可追溯性",缩小了它们之间的差距,使得业务服务的变化更容易传递到IT。下面是个人对SOA的优点理解:
第一、更易维护
业务服务提供者和业务服务使用者的松散耦合关系及对开放标准的采用确保了该特性的实现。建立在以 SOA基础上的信息系统,当需求发生变化的时候,不需要修改提供业务服务的接口,只需要调整业务服务流程或者修改操作即可,整个应用系统也更容易被维护。
第二、更高的可用性
该特点是在于服务提供者和服务使用者的松散耦合关系上得以发挥与体现。使用者无须了解提供者的具休实现细节。
第三、更好的伸缩性
依靠业务服务设计、开发和部署等所采用的架构模型实现伸缩性。使得服务提供者可以互相彼此独立地进行调整,以满足新的服务需求。
SOA体系架构将能够帮助我们的开发人员站在一个新的高度去理解企业级架构中的各种组件的开发与部署的实现,来帮助企业级架构的设计者们以更迅速、更可靠、更具重用性架构整个业务系统。较之以前,以SOA为架构的系统平台能够更加从容地面对新的业务的急剧变化。









