SOA的强大和灵活性将给企业带来巨大的好处。如果某组织将其IT架构抽象出来,将其功能以粗粒度的服务形式表示出来,每种服务都清晰地表示其业务价值,那么,这些服务的顾客(可能在公司内部,也可能是公司的某个业务伙伴)就可以得到这些服务,而不必考虑其后台实现的具体技术。更进一步,如果顾客能够发现并绑定可用的服务,那么在这些服务背后的IT系统能够提供更大的灵活性。但是,要得到种强大和灵活性,需要有一种实现架构的新方法,这是一项艰巨的任务。企业架构设计师必须要变成“面向服务的架构设计师”,不仅要理解SOA,还要理解SOA的实践。在架构实践和最后得到的架构结果之间的区别非常微妙,也非常关键。本文将讨论SOA的实践,即:面向架构的设计师在构建SOA时必须要做的事情。
SOA的原则
SOA是一种企业架构,因此,它是从企业的需求开始的。但是,SOA和其它企业架构方法的不同之处在于SOA提供的业务敏捷性。业务敏捷性是指企业对变更快速和有效地进行响应、并且利用变更来得到竞争优势的能力。对架构设计师来说,创建一个业务敏捷的架构意味着创建这样一个IT架构,它可以满足当前还未知的业务需求。
要满足这种业务敏捷性,SOA的实践必须遵循以下原则:
业务驱动服务,服务驱动技术
从本质上说,在抽象层次上,服务位于业务和技术中间。面向服务的架构设计师一方面必须理解在业务需求和可以提供的服务之间的动态关系,另一方面,同样要理解服务与提供这些服务的底层技术之间的关系。
业务敏捷是基本的业务需求
SOA考虑的是下一个抽象层次:提供响应变化需求的能力是新的“元需求”,而不是处理一些业务上的固定不变的需求。从硬件系统而上的整个架构都必须满足业务敏捷的需求,因为,在SOA中任何的瓶颈都会影响到整个IT环境的灵活性。
一个成功的SOA总在变化之中
SOA工作的场景,更象是一个活的生物体,而不是象传统所说的“盖一栋房子”。IT环境唯一不变的就是变化,因此面向服务架构设计师的工作永远不会结束。对于习惯于盖房子的设计师来说,要转向设计一个活的生物体要求崭新的思维方式。如下文所写的,SOA的基础还是一些类似的架构准则。
SOA基础
在IT行业有两个越来越普遍的发展方向,一个是架构方面的,一个是方法学方面的,面向服务的架构设计师可以从中有所收获。第一个就是模型驱动架构(MDA),由提出CORBA的OMG模型提出。MDA认为架构设计师首先要对待创建的系统有一个形式化的UML(也是由OMG提出)的模型。MDA首先给出一个平台无关的模型来表示系统的功能需求和Use Cases,根据系统搭建的平台,架构设计师可以由这个平台无关的模型得到平台相关的模型,这些平台相关模型足够详细,以至于可以用来直接生成需要的代码。
MDA的核心就在于在设计阶段系统就已经完全描述,这样,在创建系统的时候,几乎就没有错误解释的可能,模型也就可以直接生成代码。但MDA有一些局限性:首先,MDA假设在创建模型之前,业务需求已经全部描述,而这一点,在当前典型的动态业务环境中几乎是不可能的。第二,MDA没有一个反馈机制。如果开发人员对模型有需要改动的地方,并没有提供给他们这么一个途径。
SOA的另一个基础是敏捷方法(AM),其中非常有名的方法是极限编程(XP)。象XP这样的AM提供了在需求未知或者多变的环境中创建软件系统的过程。XP要求在开发团队中要有一个用户代表,他帮助书写测试来指导开发人员的日常工作。开发团队中的所有成员都参与到设计之中,并且设计要尽量小并且非形式化。AM的目标是仅仅创建用户想要的,而不是在一些形式化模型上耗费工作量。AM的核心思想就在于其敏捷性-处理需求变更的敏捷性。AM的主要弱点是其规模上的限制,例如,XP 在一个小团队和中型项目中效果不错,但是当项目规模增大时,如果没有一个一致的清晰的计划,项目成员很难把握项目中的方方面面。
从表面看来,MDA和AM似乎是相对立的-MDA假定需求是固定的,而AM恰恰相反。MDA的中心是形式化的模型,而AM恰恰要避开它们。但是,我们还是决定冒险把这些不同方法中的一些元素提取出来,放入到一个一致的架构实践中。
在SOA中有三个抽象层次,按照SOA的第一条准则:业务驱动服务、服务驱动技术。AM将业务模型直接和实践连接起来,表现在平台相关的模型之中。MDA 并没有把业务模型和平台无关模型分开来,而是把平台无关模型做为起点。SOA必须连接这些模型,或者说抽象层次,得到单一的架构方法。我们将从五个视图的架构实现方法来实现这个连接.
本文转自: http://wiki.ccw.com.cn/%E9%9D%A2%E5%90%91%E6%9C%8D%E5%8A%A1%E7%9A%84%E6%9E%84%E6%9E%B6#.E9.9D.A2.E5.90.91.E6.9C.8D.E5.8A.A1.E6.9E.B6.E6.9E.84.EF.BC.88SOA.EF.BC.89.E7.9A.84.E5.8E.9F.E5.88.99
分享到:
相关推荐
面向服务架构(Service-Oriented Architecture,简称SOA)是一种设计模式,旨在通过将业务功能解耦并封装成独立的服务,实现业务与技术的分离,从而提高企业的业务敏捷性。在SOA中,服务是核心元素,它们是业务流程...
面向服务架构(SOA,Service-Oriented Architecture)是一种软件设计和开发的策略,它强调通过独立、可重用的服务来构建系统。这些服务能够通过标准化的接口进行通信,允许不同系统之间的数据交换和功能集成。SOA的...
### 企业SOA:面向服务架构的最佳实战 #### 一、引言与背景 随着信息技术的不断进步,企业面临着越来越复杂的技术挑战。为了应对这些挑战并保持竞争力,企业需要采用更加灵活、高效的信息技术架构。面向服务架构...
面向服务架构(Service-Oriented Architecture,简称SOA)是一种设计和构建企业级信息系统的方法,其核心理念是将业务逻辑和功能以独立的服务形式存在,这些服务之间通过标准的接口进行通信,从而实现松散耦合和互...
面向服务架构(Service-Oriented Architecture,简称SOA)是一种软件设计范式,它强调将功能作为独立的服务...在“真实世界里的面向服务架构”中,理解和实践SOA的关键原则和技术对于任何IT专业人员来说都至关重要。
浪潮Loushang是一款面向企业级应用的SOA产品,它提供了丰富的服务集成工具和管理平台,帮助企业构建高效的SOA架构。 ##### (四) SAP SAP是全球领先的企业管理软件供应商之一,其SOA解决方案主要包括NetWeaver平台...
SOA架构的设计原则包括服务分解、接口设计、服务发现、服务调用、数据交互等。服务分解是SOA架构的核心,它将软件系统分解为多个独立的服务,每个服务都是一个独立的功能单元。接口设计是SOA架构的另一个重要方面,...
面向服务架构设计(SOA,Service-Oriented Architecture)是一种软件设计模式,旨在通过网络将松散耦合的、粗粒度的应用组件分布式部署、组合和使用,以满足灵活、可扩展和可重用的需求。服务层是SOA的核心,允许...
因为服务基础架构基于粗粒度、松散耦合和基于标准的服务这些SOA原则,所以它使IT能够保持主动。通过为IT提供全局解决方案,降低应用程序和基础架构复杂性,提高业务服务的重用和服务编制能力,它使IT能够及时响应...
在面向服务的架构(SOA)中,明确的边界是构建稳定、可靠且可扩展的服务的基础。这一原则强调了服务之间的交互必须通过清晰界定的边界来进行,边界内部的具体实现对外部来说应该是不可见的。这种明确的边界可以通过...
"微服务架构SOA分为2种 SOAP即Webservice和REST"这部分内容可能会讨论微服务架构如何采用SOA思想,并对比SOAP Web服务和REST服务在微服务场景下的适用性。微服务架构主张将单个大型应用拆分为多个小型、独立的服务,...
**SOA**(Service-Oriented Architecture,面向服务的架构)是一种架构模式,它定义了一组原则和设计模式,用于构建灵活且可扩展的应用程序和服务。在当前系统开发的趋势下,SOA因其高度的灵活性和可复用性而变得尤为...
面向服务体系架构(Service-Oriented Architecture,简称SOA)是一种设计和构建分布式系统的架构风格,其核心思想是将业务逻辑分解为一系列可复用的服务,这些服务之间通过标准的接口进行交互,从而实现业务流程的...
面向服务架构(SOA)是一种设计原则,旨在构建松散耦合、可重用和可扩展的系统。这种架构风格的核心思想是将复杂的系统分解为一系列独立的服务,这些服务能够通过标准化的接口相互通信,以实现业务流程的集成。在SOA...
面向服务的架构(SOA)是一种软件设计策略,它的核心思想是将应用程序的不同功能单元划分为独立的服务,这些服务通过标准化的接口进行通信,从而实现松散耦合和互操作性。SOA允许不同的系统、应用程序和服务在统一的...
面向服务架构(SOA)是一种软件设计方法,它提倡将应用程序构建为一组可重用的服务,这些服务可以独立地开发和部署,然后通过标准接口进行交互。这种架构风格旨在提高系统的灵活性、可重用性和互操作性。在本课程中...