SOA体系架构
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
不同种类的操作系统,应用软件,系统软件和应用基础结构(application infrastructure)相互交织,这便是IT企业的现状。一些现存的应用程序被用来处理当前的业务流程(business processes),因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构(application infrastructure)的投资来解决新的业务需求,为客户,商业伙伴以及供应商提供新的互动渠道,并呈现一个可以支持有机业务(organic business)的构架。SOA凭借其松耦合的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择从而可以通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务, 从而保护了现有的IT基础建设投资。
如图1的例子所示,一个使用SOA的企业,可以使用一组现有的应用来创建一个供应链复合应用(supply chain composite application),这些现有的应用通过标准接口来提供功能。
服务架构
为了实现SOA,企业需要一个服务架构,图2显示了一个例子:
在图2中, 服务消费者(service consumer)可以通过发送消息来调用服务。这些消息由一个服务总线(service bus)转换后发送给适当的服务实现。这种服务架构可以提供一个业务规则引擎(business rules engine),该引擎容许业务规则被合并在一个服务里或多个服务里。这种架构也提供了一个服务管理基础(service management infrastructure),用来管理服务,类似审核,列表(billing),日志等功能。此外,该架构给企业提供了灵活的业务流程,更好地处理控制请求(regulatory requirement),例如Sarbanes Oxley(SOX),并且可以在不影响其他服务的情况下更改某项服务。
基础结构
SOAP, WSDL, UDDI
WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。
WS-I Basic Profile
WS-I Basic Profile,由Web服务互用性组织(Web Services Interoperability Organization)提供,是SOA服务测试与互用性所需要的核心构件。服务提供者可以使用Basic Profile测试程序来测试服务在不同平台和技术上的互用性。
J2EE 和 .Net
尽管J2EE和.NET平台是开发SOA应用程序常用的平台,但SOA不仅限于此。像J2EE这类平台,不仅为开发者自然而然地参与到SOA中来提供了一个平台,还通过他们内在的特性,将可扩展性,可靠性,可用性以及性能引入了SOA世界。新的规范,例如 JAXB(Java API for XML Binding),用于将XML文档定位到Java类;JAXR(Java API for XML Registry)用来规范对UDDI注册表(registry)的操作;XML-RPC(Java API for XML-based Remote Procedure Call)在J2EE1.4中用来调用远程服务,这使得开发和部署可移植于标准J2EE容器的Web服务变得容易,与此同时,实现了跨平台(如.NET)的服务互用。
服务品质
在企业中,关键任务系统(mission-critical system,译注:关键任务系统是指如果一个系统的可靠性对于一个组织是至关重要的,那么该系统就是该企业的关键任务系统。比如,电话系统对于一个电话促销企业来说就是关键任务系统,而文字处理系统就不那么关键了。)用来解决高级需求,例如安全性,可靠性,事物。当一个企业开始采用服务架构作为工具来进行开发和部署应用的时候,基本的Web服务规范,像WSDL,SOAP,以及UDDI就不能满足这些高级需求。正如前面所提到的,这些需求也称作服务品质(QoS,quality of services)。与QoS相关的众多规范已经由一些标准化组织(standards bodies)提出,像W3C(World Wide Web Consortium)和OASIS(the Organization for the Advancement of Structured Information Standards)。下面的部分将会讨论一些QoS服务和相关标准。
安全质量
Web服务安全规范用来保证消息的安全性。该规范主要包括认证交换, 消息完整性和消息保密。该规范吸引人的地方在于它借助现有的安全标准,例如,SAML(as Security Assertion Markup Language)来实现web服务消息的安全。OASIS正致力于Web服务安全规范的制定。
可靠信度
在典型的SOA 环境中,服务消费者和服务提供者之间会有几种不同的文档在进行交换。具有诸如“仅且仅仅传送一次”( once-and-only-once delivery),“最多传送一次”( at-most-once delivery),“重复消息过滤”(duplicate message elimination),“保证消息传送”(guaranteed message delivery)等特性消息的发送和确认,在关键任务系统(mission-critical systems)中变得十分重要。WS-Reliability 和 WS-ReliableMessaging是两个用来解决此类问题的标准。这些标准都由OASIS负责。
策略计划
服务提供者有时候会要求服务消费者与某种策略通信。比如,服务提供商可能会要求消费者提供Kerberos安全标示,才能取得某项服务。这些要求被定义为策略断言(policy assertions)。一项策略可能会包含多个断言。WS-Policy用来标准化服务消费者和服务提供者之间的策略通信。
控制能力
当企业着手于服务架构时,服务可以用来整合数据仓库(silos of data),应用程序,以及组件。整合应用意味着例如异步通信,并行处理,数据转换,以及校正等进程请求必须被标准化。在SOA中,进程是使用一组离散的服务创建的。BPEL4WS 或者 WSBPEL(Web Service Business Process Execution Language)是用来控制这些服务的语言。WSBPEL也由OASIS负责。
管理能力
随着企业服务的增长,所使用的服务和业务进程的数量也随之增加,一个用来让系统管理员管理所有运行在多相环境下的服务的管理系统就显得尤为重要。WSDM(Web Services for Distributed Management)规定了任何根据WSDM实现的服务都可以由一个WSDM适应(WSDM-compliant)的管理方案来管理。
其它的qos特性,比如合作方之间的沟通和通讯,多个服务之间的事务处理,都在WS-Coordination 和 WS-Transaction 标准中描述, 这些都是OASIS 的工作。
Web服务
在理解SOA和Web服务的关系上,经常发生混淆。根据2003年4月的Gartner报道,Yefim V. Natis就这个问题是这样解释的:“Web服务是技术规范,而SOA是设计原则。特别是Web服务中的WSDL,是一个SOA配套的接口定义标准:这是Web服务和SOA的根本联系。”从本质上来说,SOA是一种架构模式,而Web服务是利用一组标准实现的服务。Web服务是实现SOA的方式之一。用Web服务来实现SOA的好处是你可以实现一个中立平台,来获得服务,而且随着越来越多的软件商支持越来越多的Web服务规范,你会取得更好的通用性。
SOA优势
SOA的概念并非什么新东西,SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。SOA伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。
发展效益
A. 平衡最初的旧系统投资(Leverage initial investment):
组织过去所投资的系统、软硬体,如果能再利用等于赋予其新的价值,这也替组织降低成本并增加竞争力。
B. 基础建设的便利性(Infrastructure Commoditization):
让所有的应用程式能相互沟通(互通性)。
C. 快速的接近市场(Faster time-to-market):
服务的重复使用(再利用),来缩短过去的组织流程,更快速的提供服务来接近市场。
D. 减少支出(Reduce Cost):
服务的重复使用,可降低开发成本。因为开发新系统的成本,大部份比更新旧有系统来的花费大。
E. 减低风险(Risk mitigation):
开发新系统的风险远大于更新旧系统。
F. 持续改善商业流程的循环(Continuous improvement cycle for business process)
G. 中心流程处理(Process-centric processing)
主要优势
一,SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。通过SOA架构,企业可以与其业务伙伴直接建立新渠道,建立新伙伴的成本得以降低。
二,SOA与平台无关,减少了业务应用实现的限制。要将企业的业务伙伴整合到企业的“大”业务系统中,对其业务伙伴具体采用什么技术没有限制。
三, SOA具有低耦合性特点,业务伙伴对整个业务系统的影响较低。在企业与各业务伙伴关系不断发生变化的情况下,节省的费用会越来越多。
四, SOA具有可按模块分阶段进行实施的优势。可以成功一步再做下一步,将实施对企业的冲击减少到最小。
五, SOA的实施可能并不具有成本显著性。这要分三种情况加以讨论:
(1) 当企业从零开始构建业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。
(2) 当企业业务发展或发生企业重组等变化而原有系统不能满足需要,而需要重构业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。
(3) 当企业业务发生缓慢变化并可预见到将来需要重构业务系统时,由于可以按模块分阶段逐步实施SOA以适应变化的需要,这样企业不需一下投入一大笔经费进行系统改造,而是根据企业业务发展情况和资金情况逐步投入,缓解了信息投入的压力。
推动因素
IDC负责企业平台研究的副总裁Michelle Bailey说,最近的IDC的研究表明,到2011年,18%以上的全部新服务器都将采用虚拟化技术,对于服务器硬件供应商来说,这是一个年收入达220亿美元的市场机会。
对于企业来说,日益增长的挑战是如何管理和保证虚拟环境的安全,因为随着机构采用虚拟化技术,传统的管理物理服务器蔓延的挑战正在转向管理虚拟机蔓延的挑战。机构将需要可靠的、稳定的、安全的和可管理的虚拟化解决方案。
绿色IT一直被列为头号的战略技术和2008年大多数机构的趋势。据IDC称,虚拟化的绿色的好处不仅是减少服务器占地面积,而是还包括减少碳排放量和耗电量。这些好处正在成为重要的好处。
据IDC对亚太地区绿色IT的调查,75%的受访者对于IT部门没有绿色IT政策。然而,80%以上的受访者认为他们的IT供应商的“绿色”在未来几年将更加重要。
虚拟化在这方面将发挥重要作用,一些企业将采用更环保的方法经营业务以便赢得政府部门的合同。其它机构正在采用虚拟化技术以便得到节省电源的好处和减少碳排放量的奖励。
同时,一些企业管理者和市场研究人士也对虚拟化的未来发展发表了看法:
Avnet公司营销经理Michael Costigan:
尽管虚拟化有巨大的潜力,许多转销商不知道这种有潜力的新技术的实际状况。机构能够获得显著的能量和计算效率,同时提高技术的应用率和灵活性。
为了帮助你的客户认识到这些好处并且为你的企业建立强大的市场占有率,你需要了解这个强大的新技术的细节,了解需要采取什么有效手段识别和利用虚拟化的真正机会。
虚拟化正在用来解决范围日益广泛的商业目标和挑战,如服务器整合/保留、业务持续性、测试/开发优化、软件开发与发布以及桌面管理和安全。
人们对于虚拟化的未来显然非常感兴趣。但是,还有许多言过其实的宣传。第一波x86服务器虚拟化的应用一直集中在服务器整合方面,重点是减少资本开支 (也就是服务器开支)以及电源和冷却等运营开支。在未来的五年里,机构将超越服务器整合寻求如何利用虚拟化技术得到其它的好处,如重点减少运营成本(也就是物理管理成本)和让基础设施更有活力和更灵活,以便改善IT对于不断变化的商业需求的反应能力。
分析师认为,虚拟化的下一个大事将是高可用性和灾难恢复工具。灾难恢复在历史上一直是非常难管理的。虚拟化将提供一个节省成本的和容易管理的灾难恢复解决方案。
虚拟桌面基础设施、资源平衡和应用程序级高可用性可能是其它的未来应用实例。这些解决方案有一些技术的和经济的障碍。这些障碍必须要在虚拟化广泛应用前克服。但是,考虑到虚拟化的重点,这些障碍已经在开始克服。虚拟化还将成为SOA(面向服务的架构)技术应用的推动因素。 [4] 面向服务的体系结构基于这些实际活动或业务服务进行组织,而不是形成公司所维护的不同的信息竖井 (Silo)。通过实现 SOA,可以带来大量好处,包括以下各个方面: *更高的业务和 IT 一致性
*基于组件的系统
*松散耦合的组件和系统
*基于网络的基础设施,允许分散于各地且采用不同技术的资源协同工作
*动态构建的按需应用程序
*更高的代码重用率
*更好地标准化整个企业内的流程
*更易于集中企业控制