版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/developerworks/cn/webservices/ws-arcsoa1/架构设计师与SOA, 第 1 部分 HYPERLINK /developerworks/cn/webservices/ws-arcsoa1/#author#author l author#author 强 王 ( HYPERLINK mailto:shilir?subject=架构设计师与SOA,%20第%201%20部分 shilir), IBM中国软件开发实验室 - SOA Design CenterSOA(Serrvice-Oriennted AArchittecturre),即面面向服务的架架构,这是最
2、最近一两年出出现在各种技技术期刊上最最多的词汇了了。现在有很很多架构设计计师和设计开开发人员简单单的把SOAA和Web Serviices技术术等同起来,认认为SOA就就是Web Serviice的一种种实现。本质质上来说,SSOA体现的的是一种新的的系统架构,SSOA的出现现,将为整个个企业级软件件架构设计带带来巨大的影影响。本系列列两部分文章章将根据作者者自己的理解解来帮助大家家分析和了解解什么是SOOA架构,SSOA将怎样样对企业系统统架构设计带带来积极的影影响,什么是是SOA架构构设计师的角角色,以及SSOA架构师师在设计SOOA系统架构构时有哪些应应该特别注意意的地方。1. 什么是架
3、架构?什么是是基于SOAA的架构?11 什么是是架构从架构设计师的的角度来看,架架构就是一套套构建系统的的准则。通过过这套准则,我我们可以把一一个复杂的系系统划分为一一套更简单的的子系统的集集合,这些子子系统之间应应该保持相互互独立,并与与整个系统保保持一致。而而且每一个子子系统还可以以继续细分下下去,从而构构成一个复杂杂的企业级架架构。当一名架构设计计师在构建某某个企业级的的软件系统时时,除了要考考虑这个系统统的架构以及及其应具有的的功能行为以以外,还要关关注整个架构构的可用性,性性能问题,容容错能力,可可重用性,安安全性,扩展展性,可管理理维护性,可可靠性等各个个相关方面。有有的时候一名名
4、好的架构设设计师甚至还还需要考虑所所构建的系统统架构是否合合乎美学要求求。由此我们们可以看到,我我们衡量一个个好的架构设设计并不能只只从功能角度度出发,还要要考虑很多其其他的因素,对对任何一个方方面的欠缺考考虑都有可能能为整个系统统的构建埋下下隐患。12 什么是是基于SOAA的架构SOA本身就是是一种面向企企业级服务的的系统架构,简简单来说,SSOA就是一一种进行系统统开发的新的的体系架构,在在基于SOAA架构的系统统中,具体应应用程序的功功能是由一些些松耦合并且且具有统一接接口定义方式式的组件(也也就是serrvice)组组合构建起来来的。因此,基基于SOA的的架构也一定定是从企业的的具体需
5、求开开始构建的。但但是,SOAA和其它企业业架构的不同同之处就在于于SOA提供供的业务灵活活性。业务灵灵活性是指企企业能对业务务变更快速和和有效地进行行响应、并且且利用业务变变更来得到竞竞争优势的能能力。对企业业级架构设计计师来说,创创建一个业务务灵活的架构构意味着创建建一个可以满满足当前还未未知的业务需需求的IT架架构。利用基于SOAA的系统构建建方法,如图图1中所示的的一样,一个个基于SOAA架构的系统统中的所有的的程序功能都都被封装在一一些功能模块块中,我们就就是利用这些些已经封装好好的功能模块块组装构建我我们所需要的的程序或者系系统,而这些些功能模块就就是SOA架架构中的不同同的服务(
6、sservicces)。图图1因此,SOA架架构本质上来来说体现了一一种复合的概概念:它不仅仅为一个企业业中商业流程程的组织和实实现提供了一一种指导模式式,同时也为为具体的底层层serviice开发提提供了指导。2. SOA架架构设计师的的角色21 SOAA架构设计师师应该具备什什么?谈到SOA架构构设计师的角角色,我们首首先要了解架架构设计师应应具有的能力力。总体上来来说,一个好好的架构设计计师不仅应该该是一个成熟熟的,具有实实际经验的并并具有快速学学习能力的人人,而且他还还应该具有良良好的管理能能力和沟通能能力。只有具具备了必需的的能力,架构构设计师才能能在关键的时时刻作出困难难的决定,这
7、这就是一名架架构设计师应应该承担的责责任。从角色色上来看,SSOA 架构构师不仅会负负责端到端的的服务请求者者和提供者的的设计,并且且会负责对系系统中非功能能服务请求的的调研和表述述。 对于任何一名经经验丰富的架架构设计师来来说,不论他他是采用基于于传统的架构构设计方法(基基于J2EEE架构或者.NET架构构)还是采用用基于SOAA的架构设计计方法来构建建一个企业级级的系统架构构,具有相关关商业领域的的知识对于架架构设计师来来说都是必不不可少的,架架构设计师往往往可以通过过实际的工作作经验积累以以及接受相关关的专项培训训来获得这些些商业领域的的知识。除了了具有相关商商业领域的知知识以外,一一名
8、合格的架架构设计师必必须具有较广广泛的技术背背景,这可能能包括软硬件件,通信,安安全等各个方方面的知识。但但这并不是意意味着要成为为一名架构设设计师就必须须熟悉每一门门具体技术的的细节,架构构设计师必须须至少能对各各种技术有一一个整体上的的了解,能够够熟知每种技技术的特点以以及优缺点,只只有这样架构构设计师才能能在特定的应应用场景下正正确地选择各各种技术来设设计企业整体体架构。22 什么是是SOA架构构设计师的职职责?那什么是企业级级SOA架构构设计师的具具体角色呢?什么是SOOA架构设计计师与设计和和开发人员之之间的差别呢呢?相信这些些都是使大家家最容易产生生迷惑的问题题。举个实际际的例子来
9、说说,当构建一一个基于SOOA架构的系系统的时候,针针对一个具体体的 serrvice,系系统设计人员员主要应该关关注的是这个个serviice能够为为外部用户提提供什么样的的服务,也就就是说系统设设计人员关注注的是这个sservicce所提供的的功能。而对对于SOA架架构设计师来来说,他们更更关心的可能能是当有一千千个用户同时时调用这个 serviice的时候候,什么会发发生?也就是是说架构设计计师关注的应应该是一些商商业需求和服服务级别(sservicce-levvel)需求求。所有的架架构设计师的的角色都包含含了在构建一一个系统的一一开始就应该该尽量减少可可能存在的技技术风险。而而技术风
10、险一一般指的是一一切未知的、未未经证明的或或未经测试所所带来的风险险。这些风险险通常与服务务级别(seervicee-leveel)需求相相关,偶尔也也会与企业具具体的业务需需求相关。无无论是哪种类类型的风险,在在项目初期设设计整体系统统架构的过程程中更易于发发掘这些风险险,如果等到到架构实施时时再发觉这些些风险,那么么很可能会致致使大量的开开发人员等在在那里,直到到这些风险被被妥善解决。如如果进一步的的细化,我们们可以看到SSOA架构设设计师的主要要任务包括对对整个系统解解决方案轮廓廓的构建,需需求分析,对对体系结构的的整体决策,相相关组件建模模,相关操作作建模,系统统组件的逻辑辑和物理布局
11、局设计。作为SOA架构构设计师必须须要能够领导导整个开发团团队,这样才才能保证设计计和开发人员员是按照构建建好的系统架架构来开发整整个系统的,这这一点十分的的重要。这就就要求一名架架构设计师不不仅要有很好好的技术洞察察力,同时还还要具有一定定的项目管理理和项目实施施的能力。在在系统开发的的过程中,架架构设计师必必须要有良好好的沟通和表表达能力,这这就体现在由由架构设计师师构建的系统统模型是否具具有很好的可可读性和易理理解性。如果果由架构设计计师构造出的的系统模型不不是很清晰的的话,就可能能会影响设计计和开发人员员对于整个系系统架构的理理解。为了避避免这种情况况的出现,定定期由架构设设计师主持的
12、的开发团队内内部讨论是十十分重要的。3. 构建SOOA架构时应应该注意的问问题31 原有系系统架构中的的集成需求当架构师基于SSOA来构建建一个企业级级的系统架构构的时候,一一定要注意对对原有系统架架构中的集成成需求进行细细致的分析和和整理。我们们都知道,面面向服务的体体系结构是当当前及未来应应用程序系统统开发的重点点,面向服务务的体系结构构本质上来说说是一种具有有特殊性质的的体系结构,它它由具有互操操作性和位置置透明的组件件集成构建并并互连而成。基基于SOA的的企业系统架架构通常都是是在现有系统统架构投资的的基础上发展展起来的,我我们并不需要要彻底重新开开发全部的子子系统;SOOA可以通过过
13、利用当前系系统已有的资资源(开发人人员、软件语语言、硬件平平台、数据库库和应用程序序)来重复利利用系统中现现有的系统和和资源。SOOA是一种可可适应的、灵灵活的体系结结构类型,基基于SOA构构建的系统架架构可以在系系统的开发和和维护中缩短短产品上市时时间,因而可可以降低企业业系统开发的的成本和风险险。因此,当当SOA架构构师遇到一个个十分复杂的的企业系统时时,首先考虑虑的应该是如如何重用已有有的投资而不不是替换遗留留系统,因为为如果考虑到到有限的预算算,整体系统统替换的成本本是十分高昂昂的。当SOA架构师师分析原有系系统中的集成成需求的时候候,不应该只只限定为基于于组件构建的的已有应用程程序的
14、集成,真真正的集成比比这要宽泛得得多。在分析析和评估一个个已有系统体体系结构的集集成需求时,我我们必须考虑虑一些更加具具体的集成的的类型,这主主要包括以下下几个方面:应用程序集集成的需求,终终端用户界面面集成的需求求,流程集成成的需求以及及已有系统信信息集成的需需求。当SOOA架构师分分析和评估现现有系统中所所有可能的集集成需求的时时候,我们可可以发现实际际上所有集成成方式在任何何种类的企业业中都有一定定程度的体现现。针对不同同的企业类型型,这些集成成方式可能是是简化的,或或者没有明确确地进行定义义的。因而,SSOA架构师师在着手设计计新的体系结结构框架时,必必须要全面的的考虑所有可可能的集成
15、需需求。例如,在在一些类型的的企业系统环环境中可能只只有很少的数数据源类型,因因此,系统中中对消息集成成的需求就可可能会很简单单,但在一些些特定的系统统中,例如航航运系统中的的EDI(EElectrronic Data Interrchangge 电子数数据交换)系系统,会有大大量的电子数数据交换处理理的需求,因因此也就会存存在很多不同同的数据源类类型,在这种种情况下整个个系统对于消消息数据的集集成需求就会会比较复杂。因因此,如果SSOA架构师师希望所构建建的系统架构构能够随着企企业的成长和和变化成功地地继续得以保保持,则整个个系统构架中中的集成功能能就应该由服服务提供,而而不是由特定定的应用
16、程序序来完成。32 服务粒粒度的控制以以及无状态服服务的设计当SOA架构师师构建一个企企业级的SOOA系统架构构的时候,关关于系统中最最重要的元素素,也就是SSOA系统中中的服务的构构建有两点需需要特别注意意的地方:首首先是对于服服务粒度的控控制,另外就就是对于无状状态服务的设设计。服务粒度的控制制 SOA系统中的的服务粒度的的控制是一项项十分重要的的设计任务。通通常来说,对对于将暴露在在整个系统外外部的服务推推荐使用粗粒粒度的接口,而而相对较细粒粒度的服务接接口通常用于于企业系统架架构的内部。从从技术上讲,粗粗粒度的服务务接口可能是是一个特定服服务的完整执执行,而细粒粒度的服务接接口可能是实
17、实现这个粗粒粒度服务接口口的具体的内内部操作。 举个例子来来说,对于一一个基于SOOA架构的网网上商店来说说,粗粒度的的服务可能就就是暴露给外外部用户使用用的提交购买买表单的操作作,而系统内内部的细粒度度的服务可能能就是实现这这个提交购买买表单服务的的一系列的内内部服务,比比如说创建购购买记录,设设置客户地址址,更新数据据库等一系列列的操作。虽虽然细粒度的的接口能为服服务请求者提提供了更加细细化和更多的的灵活性,但但同时也意味味着引入较难难控制的交互互模式易变性性,也就是说说服务的交互互模式可能随随着不同的服服务请求者而而不同。如果果我们暴露这这些易于变化化的服务接口口给系统的外外部用户,就就
18、可能造成外外部服务请求求者难于支持持不断变化的的服务提供者者所暴露的细细粒度服务接接口。而粗粒粒度服务接口口保证了服务务请求者将以以一致的方式式使用系统中中所暴露出的的服务。虽然然面向服务的的体系结构(SSOA)并不不强制要求一一定要使用粗粗粒度的服务务接口,但是是建议使用它它们作为外部部集成的接口口。通常架构构设计师可以以使用BPEEL来创建由由细粒度操作作组成的业务务流程的粗粒粒度的服务接接口。无状态服务的设设计 SOA系统架构构中的具体服服务应该都是是独立的、自自包含的请求求,在实现这这些服务的时时候不需要前前一个请求的的状态,也就就是说服务不不应该依赖于于其他服务的的上下文和状状态,即
19、SOOA架构中的的服务应该是是无状态的服服务。当某一一个服务需要要依赖时,我我们最好把它它定义成具体体的业务流程程(BPELL)。在服务务的具体实现现机制上,我我们可以通过过使用 EJJB 组件来来实现粗粒度度的服务。我我们通常会利利用无状态的的Sessiion Beean来实现现具体的服务务,如果基于于Web SServicce技术,我我们就可以将将无状态的SSessioon Beaan暴露为外外部用户可以以调用的到的的Web服务务,也就是把把传统的Seessionn Facaade模型转转化为了 EEJB 的WWeb服务端端点,这样,我我们就可以向向 Web 服务客户提提供粗粒度的的服务。
20、如果我们要在 J2EE的的环境下(基基于WebSSpheree)构建Weeb服务,WWeb 服务务客户可以通通过两种方式式访问 J22EE 应用用程序。客户户可以访问用用 JAX-RPC AAPI 创建建的 Webb 服务(使使用 Serrvlet 来实现);Web 服服务客户也可可以通过 EEJB的服务务端点接口访访问无状态的的Sessiion Beean,但WWeb 服务务客户不能访访问其他类型型的企业Beean,如有有状态的Seessionn Beann,实体Beean和消息息驱动Beaan。后一种种选择(公开开无状态 EEJB 组件件作为 Weeb 服务)有有很多优势,基基于已有的EE
21、JB组件,我我们可以利用用现有的业务务逻辑和流程程。在许多企企业中,现有有的业务逻辑辑可能已经使使用 EJBB 组件编写写,通过 WWeb 服务务公开它可能能是实现从外外界访问这些些服务的最佳佳选择。EJJB 端点是是一种很好的的选择,因为为它使业务逻逻辑和端点位位于同一层上上。另外EJJB容器会自自动提供对并并发的支持,作作为无状态SSessioon Beaan实现的 EJB 服服务端点不必必担心多线程程访问,因为为 EJB 容器必须串串行化对无状状态会话 bbean 任任何特定实例例的请求。 由于EJBB容器都会提提供对于Seecuritty和Traansacttion的支支持,因此BBe
22、an的开开发人员可以以不需要编写写安全代码以以及事务处理理代码。 性性能问题对于于Web服务务来说一直都都是一个问题题,由于几乎乎所有 EJJB 容器都都提供了对无无状态会话 Bean 群集的支持持以及对无状状态Sesssion BBean 池池与资源管理理的支持,因因此当负载增增加时,可以以向群集中增增加机器,WWeb 服务务请求可以定定向到这些不不同的服务器器,同时由于于无状态Seessionn Beann 池改进了了资源利用和和内存管理,使使 Web 服务能够有有效地响应多多个客户请求求。由此我们们可以看到,通通过把 Weeb 服务模模型化为 EEJB 端点点,可以使服服务具有更强强的可
23、伸缩性性,并增强了了系统整体的的可靠性。4. 结束语本文简要介绍了了有关架构设设计师以及SSOA架构的的知识,分析析了SOA架架构师在设计计SOA系统统架构时有哪哪些应该特别别注意的地方方。本文的第二部分分将向您介绍绍在构建基于于SOA架构构的企业系统统时应该怎样样保证所构建建的系统架构构能够满足系系统中不同的的服务级别需需求。从架构构设计师的角角度,SOAA是一种新的的设计模式,方方法学。因此此,SOA本本身涵盖了很很多的内容,也也触及到了系系统整体架构构设计、实现现、维护等各各个方面。本本文的内容只只是涉及到了了有关于架构构方面的一部部分内容,希希望能对广大大的SOA系系统开发设计计人员起
24、到一一定的帮助作作用。参考资料 HYPERLINK /Redbooks.nsf/RedbookAbstracts/sg246303.html?Open Patternns: Seervicee-orieented Archiitectuure annd Webb Servvices红红皮书,SGG24-63303-000,20044 年 4 月,作者MMark EEndreii 等。 DevelopperWorrks 的 HYPERLINK /developerworks/cn/webservices/ws-esbscen/ SSOA 和 Web 服服务专区有大大量专题文章章以及关于开开发 W
25、ebb 服务应用用程序的入门门级、中级和和高级教程。 有关随需应变商商务的更多信信息,请参阅阅 HYPERLINK /developerworks/ondemand/?S_TACT=105AGX52&S_CMP=cn-a-ws Deveeloperr resoourcess for an onn demaand woorld WWeb siite HYPERLINK /developerworks/cn/webservices/ws-roles/index.html Web 服务项项目角色 描描述了 Weeb 服务开开发项目中所所涉及到的各各种不同的工工作角色,包包括各自的目目标,任务以以及彼
26、此之间间是如何协作作的。 HYPERLINK /developerworks/cn/webservices/ws-soad1/index.html 面向服务的分析析与设计原理理一文研究了了OOAD、EEA 和 BBPM 中的的适当原理。 HYPERLINK /developerworks/cn/webservices/ws-esb1/ 企业服务总线解解决方案剖析析,第 1 部分 介绍绍了面向服务务的体系结构构(servvice-oorientted arrchiteecturee,SOA)和企业服务务总线(Ennterprrise SServicce Buss,ESB)的基本知识识,ESB的的
27、技术沿革,以以及ESB与与SOA之间间的关系。 关于作者王 强,IBMM软件工程师师,工作在IIBM中国软软件开发实验验室 - SSOA Deesign Centeer,从事IIncubaator及SSOA,Grrid项目的的工作,对JJ2EE架构构、SOA架架构、MDAA/MDD以以及网格计算算等技术有较较深入的研究究。联系方式式: HYPERLINK mailto:wangq?cc= wanggqcn.ibm.ccom 架构设计师与 SOA , 第 2 部部分本系列的 HYPERLINK /developerworks/cn/webservices/ws-arcsoa1/ 第 11 部分
28、介介绍了有关架架构设计师以以及 SOAA 架构的知知识,分析了了 SOA 架构师在设设计 SOAA 系统架构构时有哪些应应该特别注意意的地方。本本文将延续第第一部分的内内容,向您介介绍了 SOOA 为企业业级架构设计计带来的影响响,以及在构构建基于 SSOA 架构构的企业系统统时应该怎样样保证所构建建的系统架构构能够满足系系统中不同的的服务级别需需求。1 SOA 为企业级架架构设计带来来的影响11 SOAA 的特点及及其使用范围围SOA 既不是是一种语言,也也不是一种具具体的技术,它它是一种新的的软件系统架架构模型。 SOA 最最主要的应用用场合在于解解决在Intternett环境下的不不同商
29、业应用用之间的业务务集成问题。IInternnet环境区区别于Inttranett环境的几个个特点主要是是:(a)大量异构构系统并存,不不同计算机硬硬件工作方式式不同,操作作系统不同、编编程语言也不不同;(b)大量、频频繁的数据传传输的速度仍仍然相对较缓缓慢并且不稳稳定;(c)无法完成成服务(seervicee)的版本升升级,甚至根根本就无法知知道互联网上上有哪些机器器直接或者间间接的使用某某个服务。SOA 架构具具有一些典型型特性,主要要包括松耦合合性,位置透透明性以及协协议无关性。松松耦合性要求求 SOA 架构中的不不同服务之间间应该保持一一种松耦合的的关系,也就就是应该保持持一种相对独独
30、立无依赖的的关系;位置置透明性要求求 SOA 系统中的所所有服务对于于他们的调用用者来说都是是位置透明的的,也就是说说每个服务的的调用者只需需要知道他们们调用的是哪哪一个服务,但但并不需要知知道所调用服服务的物理位位置在哪里;而协议无关关性要求每一一个服务都可可以通过不同同的协议来调调用。通过这这些 SOAA 架构所具具有的特性我我们可以看到到,SOA 架构的出现现为企业系统统架构提供了了更加灵活的的构建方式,如如果企业架构构设计师基于于 SOA 来构建系统统架构,就可可以从底层架架构的级别来来保证整个系系统的松耦合合性以及灵活活性,这都为为未来企业业业务逻辑的扩扩展打好了基基础。12 SOA
31、A 架构的分分层模型接下来简要介绍绍一下 SOOA 系统中中的分层模型型,整个 SSOA 架构构的分层模型型如图2所示示。在 SOA 系系统中不同的的功能模块可可以被分为77层:第一层层就是系统已已经存在的程程序资源,例例如ERP或或者CRM系系统等。第22层就是组件件层,在这一一层中我们用用不同的组件件把底层系统统的功能封装装起来。第33层就是 SSOA 系统统中最重要的的服务层,在在这层中我们们要用底层功功能组件来构构建我们所需需要的不同功功能的服务。总总的来说,SSOA 中的的服务可以被被映射成具体体系统中的任任何功能模块块,但是从功功能性方面可可以大致划分分为以下三种种类型:(11)商
32、业服务务(busiiness serviice) 或或者是商业过过程(bussinesss proccess)。这这一类的服务务是一个企业业可以暴露给给外部用户或或者合作伙伴伴使用的服务务。比如说提提交贷款申请请,用户信用用检查,贷款款信用查询。(2)商业功功能服务(bbusineess fuunctioon serrvice), 这类服务会会完成一些具具体的商业操操作,也会被被更上层的商商业服务调用用,不过大多多数情况下这这类服务不会会暴露给外部部用户直接调调用,比如说说检索用户帐帐户信息,存存储用户信息息等。(3)技术功能服服务(tecchnicaal funnctionn servvic
33、e),这这类服务主要要完成一些底底层的技术功功能,比如说说日志服务以以及安全服务务等。在服务务层之上的第第4层就是商商业流程层,在在这一层中我我们利用已经经封装好的各各种服务来构构建商业系统统中的商业流流程。在商业业流程层之上上的就是第55层表示层了了,我们利用用表示层来向向用户提供用用户接口服务务,这一层可可以用基于pportall的系统来构构建。以上这这5层都需要要有一个集成成的环境来支支持它们的运运行,第6层层中的企业服服务总线(EESB)提供供了这个功能能。第7层主主要为整个 SOA 系系统提供一些些辅助的功能能,例如服务务质量管理,安安全管理这一一类的辅助功功能。2 SOA 架构中的
34、非非功能性服务务级别(seervicee-leveel)需求除了系统的业务务需求,架构构设计师还必必须要保证构构建出来的系系统架构能够够满足系统中中的非功能性性服务级别(sservicce-levvel)需求求以及服务质质量(QoSS)方面的需需求。在项目目初始及细化化阶段,架构构设计师应该该与系统所有有涉及方(SStakehholderrs)一起,为为每一个服务务级别需求定定义其相关的的衡量标准。构构建出的系统统架构必须要要能满足以下下几方面的服服务水准要求求:性能、可可升级性、可可靠性、可用用性、可扩展展性、可维护护性、易管理理性以及安全全性。架构设设计师在设计计架构过程中中需要平衡所所有
35、的这些服服务级别需求求。例如,如如果服务级别别需求中最重重要的是系统统性能,架构构设计师很有有可能不得不不在一定程度度上牺牲系统统的可维护性性及可扩展性性,以确保满满足系统性能能上的要求。随随着互联网的的发展,新构构建的系统对对于服务级别别需求也变得得日益重要,现现在基于互联联网的企业系系统的用户已已经不仅仅局局限于是本企企业的雇员,企企业的外部客客户也会成为为企业系统的的主要用户。 架构设计师的职职责之一就是是要尽可能地地为提高系统统设计人员和和系统开发人人员的工作效效率考虑。在在构建整个企企业系统架构构的过程中,需需要充分重视视各种服务级级别需求,从从而避免在系系统开发和运运行的时候出出现
36、重大问题题。一个企业业级系统中的的服务级别需需求往往是十十分错综复杂杂的, SOOA 架构设设计师需要凭凭借丰富的专专业经验和扎扎实的理论知知识来分离和和抽象系统中中不同的服务务级别需求,图图3展示了这这种分析的过过程。 图33经过 SOA 架构设计师师分析和抽象象的服务级别别需求主要分分为以下几类类:性能是指系统提提供的服务要要满足一定的的性能衡量标标准,这些标标准可能包括括系统反应时时间以及处理理交易量的能能力等; 可升级性是指当当系统负荷加加大时,能够够确保所需的的服务质量,而而不需要更改改整个系统的的架构; 可靠性是指确保保各应用及其其相关的所有有交易的完整整性和一致性性的能力; 可用
37、性是指一个个系统应确保保一项服务或或者资源永远远都可以被访访问到; 可扩展性是指在在不影响现有有系统功能的的基础上,为为系统填加新新的功能或修修改现有功能能的能力; 可维护性是指在在不影响系统统其他部分的的情况下修正正现有功能中中问题或缺陷陷,并对整个个系统进行维维护的能力; 可管理性是指管管理系统以确确保系统的可可升级性、可可靠性、可用用性、性能和和安全性的能能力; 安全性是指确保保系统安全不不会被危及的的能力。 1) 性能 我们通常可以根根据每个用户户访问的系统统响应时间来来衡量系统的的整体性能;另外,我们们也可以通过过系统能够处处理的交易量量(每秒)来来衡量系统的的性能。对于于架构设计师
38、师来说,无论论采取哪种衡衡量系统性能能的方法来构构建系统架构构,这些对于于性能的考虑虑对系统设计计开发人员来来说都应该是是透明的,也也就是说对于于系统整体架架构性能的考考虑应该是架架构设计师的的工作,而不不是系统设计计开发人员应应该关注的事事情。在较传传统的基于EEJB或者XXML-RPPC的分布式式计算模型中中,它们的服服务提供都是是通过函数调调用的方式进进行的,一个个功能的完成成往往需要通通过客户端和和服务器来回回很多次的远远程函数调用用才能完成。在在Intraanet的环环境下,这些些调用给系统统的响应速度度和稳定性带带来的影响都都可以忽略不不计,但如果果我们在基于于 SOA 的架构中使
39、使用了很多WWeb Seervicee来作为服务务提供点的话话,我们就需需要考虑性能能的影响,尤尤其是在Innterneet环境下,这这些往往是决决定整个系统统是否能正常常工作的一个个关键决定因因素。因此在在基于 SOOA 的系统统中,推荐采采用大数据量量低频率访问问模式,也就就是以大数据据量的方式一一次性进行信信息交换。这这样做可以在在一定程度上上提高系统的的整体性能。2) 可升级性性 可升级性是指当当系统负荷加加大时,仍能能够确保所需需的服务质量量,而不需要要更改整个系系统的架构。当当基于 SOOA 的系统统中负荷增大大时,如果系系统的响应时时间仍能够在在可接受的限限度内,那么么我们就可以
40、以认为这个系系统是具有可可升级性的。要要想理解可升升级性,我们们必须首先了了解系统容量量或系统的承承受能力,也也就是一个系系统在保证正正常运行质量量的同时,所所能够处理的的最大进程数数量或所能支支持的最大用用户数量。如如果系统运转转时已经不能能在可接受时时间范围内反反应,那么这这个系统已经经到达了它的的最大可升级级状态。要想想升级已达到到最大负载能能力的系统,你你必须增加新新的硬件。新新添加的硬件件可以以垂直直或水平的方方式加入。垂垂直升级包括括为现在的机机器增加处理理器、内存或或硬盘。水平平升级包括在在环境中添置置新的机器,从从而增加系统统的整体处理理能力。作为为一个系统架架构设计师所所设计
41、出来的的架构必须能能够处理对硬硬件的垂直或或者水平升级级。基于 SSOA 的系系统架构可以以很好地保证证整体系统的的可升级性,这这主要是因为为系统中的功功能模块已经经被抽象成不不同的服务,所所有的硬件以以及底层平台台的信息都被被屏蔽在服务务之下,因此此不管是对已已有系统的水水平升级还是是垂直升级,都都不会影响到到系统整体的的架构。3) 可靠性 可靠性是指确保保各应用及其其相关的所有有交易的完整整性和一致性性的能力。当当系统负荷增增加时,你的的系统必须能能够持续处理理需求访问,并并确保系统能能够象负荷未未增加以前一一样正确地处处理各个进程程。可靠性可可能会在一定定程度上限制制系统的可升升级性。如
42、果果系统负荷增增加时,不能能维持它的可可靠性,那么么实际上这个个系统也并不不具备可升级级性。因此,一一个真正可升升级的系统必必须是可靠的的系统。在基基于 SOAA 来构建系系统架构的时时候,可靠性性也是必须要要着重考虑的的问题。要在在基于 SOOA 架构的的系统中保证证一定的系统统可靠性,就就必须要首先先保证分布在在系统中的不不同服务的可可靠性。而不不同服务的可可靠性一般可可以由其部署署的应用服务务器或Webb服务器来保保证。只有确确保每一个 SOA 系系统中的服务务都具有较高高的可靠性,我我们才能保证证系统整体的的可靠性能够够得以保障。4) 可用性 可用性是指一个个系统应确保保一项服务或或者
43、资源应该该总是可被访访问到的。可可靠性可以增增加系统的整整体可用性,但但即使系统部部件出错,有有时却并不一一定会影响系系统的可用性性。通过在环环境中设置冗冗余组件和错错误恢复机制制,虽然一个个单独的组件件的错误会对对系统的可靠靠性产生不良良的影响,但但由于系统冗冗余的存在,使使得整个系统统服务仍然可可用。在基于于 SOA 来构建系统统架构的时候候,对于关键键性的服务需需要更多地考考虑其可用性性需求,这可可以由两个层层次的技术实实现来支持,第第一种是利用用不同服务的的具体内部实实现内部所基基于的框架的的容错或者冗冗余机制来实实现对服务可可用性的支持持;第二种是是通过UDDDI等动态查查找匹配方式
44、式来支持系统统整体的高可可用性。在 SOA 架架构设计师构构建企业系统统架构的时候候,应该综合合考虑这两个个方面的内容容,尽量保证证所构建的 SOA 系系统架构中的的关键性业务务能具有较高高的可用性。5) 可扩展性性 可扩展性是指在在不影响现有有系统功能的的基础上,为为系统添加新新的功能或修修改现有功能能的能力。当当系统刚配置置好的时候,你你很难衡量它它的可扩展性性,直到第一一次你必须去去扩展系统已已有功能的时时候,你才能能真正去衡量量和检测整个个系统的可扩扩展性。任何何一个架构设设计师在构建建系统架构时时,为了确保保架构设计的的可扩展性,都都应该考虑下下面几个要素素:低耦合,界界面(intt
45、erfacces)以及及封装。当架架构设计师基基于 SOAA 来构建企企业系统架构构时,就已经经隐含地解决决了这几个可可扩展性方面面的要素。这这是因为 SSOA 架构构中的不同服服务之间本身身就保持了一一种无依赖的的低耦合关系系;服务本身身是通过统一一的接口定义义(可以是WWSDL)语语言来描述具具体的服务内内容,并且很很好地封装了了底层的具体体实现。在这这里我们也可可以从一个方方面看到基于于 SOA 来构架企业业系统能为我我们带来的好好处。6) 可维护性性 可维护性是指在在不影响系统统其他部分的的情况下修改改现有系统功功能中问题或或缺陷的能力力。同系统的的可扩展性相相同,当系统统刚被部署时时
46、,你很难判判断一个系统统是否已经具具备了很好的的可维护性。当当创建和设计计系统架构时时,要想提高高系统的可维维护性,你必必须考虑下面面几个要素:低耦合、模模块性以及系系统文档记录录。在企业系系统可扩展性性中我们已经经提到了 SSOA 架构构能为系统中中暴露出来的的各个子功能能模块也就是是服务带来低低耦合性和很很好的模块性性。关于系统统文档纪录,除除了底层子系系统的相关文文档外,基于于 SOA 的系统还会会引用到许多多系统外部的的由第三方提提供的服务,因因此如果人力力资源准许的的话,应该增增加专职的文文档管理员来来专门负责有有关整个企业业系统所涉及及的所有外部部服务相关文文档的收集、归归类和整理
47、,这这些相关的文文档可能涉及及到第三方服服务的接口(可可以是WSDDL)、服务务的质量和级级别、具体性性能测试结果果等各种相关关文档。基于于这些文档,就就可以为 SSOA 架构构设计师构建建企业 SOOA 架构提提供很好的文文档参考和支支持。7) 可管理性性 可管理性是指管管理系统以确确保整个系统统的可升级性性、可靠性、可可用性、性能能和安全性的的能力。具有有可管理性的的系统,应具具备对服务质质量需求(QQoS)的系系统监控能力力,通过改变变系统的配置置从而可以动动态地改善服服务质量,而而不用改变整整体系统架构构。一个好的的系统架构必必须能够监控控整个系统的的运行情况并并具备动态系系统配置管理
48、理的功能。在在对复杂系统统进行系统架架构建模时, SOA 架架构设计师应应该尽量考虑虑利用将系统统整体架构构构建在已有的的成熟的底层层系统框架(FFramewwork)上上。对于 SSOA 架构构设计师来说说,可以选择择的底层系统统框架有很多多,可以选用用基于MQ, MesssageBoorker,WWebSphhere AAppliccationn Servver等产品品来构建企业业服务总线(EEnterpprise Serviice Buus)以支持持企业的 SSOA 系统统架构,也可可以选用较新新的基于WeebSpheere Appplicaation Serveer 6中内内嵌的Sib
49、bus来构建建企业的ESSB以支持 SOA 系系统架构。具具体选择哪种种底层框架来来实施 SOOA 系统架架构要根据每每个系统各自自的特点来决决定,但这些些底层的框架架都已经提供供了较高的系系统可管理性性。因此,分分析并选择不不同的产品或或底层框架来来实现企业系系统架构也是是架构设计师师的主要职责责之一。有关关于如何利用用已有底层架架构来构建 SOA 系系统,中国 SOA 设设计中心已经经发表了一系系列相关的文文章,大家可可以在DevvelopeerWorkks中的 SSOA 专栏栏看到它们。8) 安全性 安全性是指确保保系统安全不不会被危及的的能力。目前前,安全性应应该说是最困困难的系统质质
50、量控制点。这这是因为安全全性不仅要求求确保系统的的保密和完整整性,而且还还要防止影响响可用性的服服务拒绝(DDeniall-of-SServicce)攻击。这这就要求当 SOA 架架构设计师在在构建一个架架构时,应该该把整体系统统架构尽可能能地分割成各各个子功能模模块,在将一一些子功能模模块暴露为外外部用户可见见的服务的时时候,要围绕绕各个子模块块构建各自的的安全区,这这样更便于保保证整体系统统架构的安全全。如果一个个子模块受到到了安全攻击击,也可以保保证其他模块块相对安全。如如果企业 SSOA 架构构中的一些服服务是由Weeb Serrvice实实现的,在考考虑这些服务务安全性的时时候也要同
51、时时考虑效率的的问题,因为为WS-Seecuritty会为Weeb Serrvice带带来一定的执执行效率损耗耗。3结束语本系列两部分介介绍了有关架架构设计师以以及 SOAA 架构的知知识,分析了了 SOA 架构师在设设计 SOAA 系统架构构时有哪些应应该特别注意意的地方并在在最后简要介介绍了在构建建基于 SOOA 架构的的企业系统时时应该怎样保保证所构建的的系统架构能能够满足系统统中不同的服服务级别需求求。从架构设设计师的角度度, SOAA 是一种新新的设计模式式,方法学。因因此, SOOA 本身涵涵盖了很多的的内容,也触触及到了系统统整体架构设设计、实现、维维护等各个方方面。本文的的内容
52、只是涉涉及到了有关关于架构方面面的一部分内内容,希望能能对广大的 SOA 系系统开发设计计人员起到一一定的帮助作作用。参考资料 HYPERLINK /Redbooks.nsf/RedbookAbstracts/sg246303.html?Open Patternns: Seervicee-orieented Archiitectuure annd Webb Servvices红红皮书,SGG24-63303-000,20044 年 4 月,作者MMark EEndreii 等。 DevelopperWorrks 的 HYPERLINK /developerworks/cn/webservice
53、s/ws-esbscen/ SOA 和和 Web 服务专区有有大量专题文文章以及关于于开发 Weeb 服务应应用程序的入入门级、中级级和高级教程程。 有关随需应变商商务的更多信信息,请参阅阅 HYPERLINK /developerworks/ondemand/?S_TACT=105AGX52&S_CMP=cn-a-ws Deveeloperr resoourcess for an onn demaand woorld WWeb siite HYPERLINK /developerworks/cn/webservices/ws-roles/index.html Web 服务项项目角色 描描述了
54、 Weeb 服务开开发项目中所所涉及到的各各种不同的工工作角色,包包括各自的目目标,任务以以及彼此之间间是如何协作作的。 HYPERLINK /developerworks/cn/webservices/ws-%20SOA%20d1/index.html 面向服务的分析析与设计原理理一文研究了了OOAD、EEA 和 BBPM 中的的适当原理。 HYPERLINK /developerworks/cn/webservices/ws-esb1/ 企业服务总线解解决方案剖析析,第 1 部分 介绍绍了面向服务务的体系结构构(servvice-oorientted arrchiteecturee, SO
55、AA )和企业业服务总线(Enterrprisee Servvice BBus,ESSB)的基本本知识,ESSB的技术沿沿革,以及EESB与 SSOA 之间间的关系。企业服务总线解解决方案剖析析,第 1 部分: 企企业服务总线线的基本概念念http:/www.iibm.coom/devvelopeerworkks/cn/webseervicees/ws-esb1/ HYPERLINK /developerworks/cn/webservices/ws-esb1/#author#author l author#author 李珉, 高级软软件工程师,技技术经理, IBM 中中国软件开发发实验室
56、SSOA设计中中心 HYPERLINK /developerworks/cn/webservices/ws-esbscen/ 案,第 1 部部分(deevelopperWorrks,20003 年 12 月)作者 HYPERLINK /developerworks/cn/webservices/ws-esbscen/index.html#author1#author1 l author1#author1 Riick Roobinsoon。 HYPERLINK /Redbooks.nsf/65f0d9cea6e0ab57852569e0007452bb/2b0de69b65f8a81285256
57、e620078c4c9?OpenDocument Patternns: Immplemeentingg an SSOA ussing aan Entterpriise Seervicee Bus,SSG24-66346-000,作者 Martiin Keeen 等。 Enterprrise sservicce buss - maaking SOA rreal作者者 Bethh Hutcchisonn, Petter Laambross, Robb Phipppen, Marc-Thomss Schiimdt 关于作者IBM中国软件件开发实验室室SOA设计计中心 是IIBM全球四四个SOA设设计
58、中心中最最大的一个,成成立一年多来来,已经取得得了可喜的成成就。我们已已经在全球范范围内成功地地实施了多个个 SOA 应用项目,为为多个行业的的客户成功地地提供了 SSOA 解决决方案。我们们正在实施的的 SOA 项目涵盖了了很多的重要要行业,包括括零售业、航航运业、电力力、银行、保保险等等。通通过这些不断断增长的成功功案例,我们们不仅深入地地推广了 SSOA 的理理念,树立了了 SOA 成功实施的的范例,也为为我们的队伍伍积累了经验验,培养了人人才。与此同同时,我们还还是 IBMM 开发 SSOA 的软软件平台 - SOAA Inteegratiion Frramewoork - 的主力军军
59、。该产品基基于模型驱动动的思想,旨旨在最大化地地重用软件资资产,它为 SOA 项项目的实施提提供了一整套套源自成功实实践的方法论论,设计范式式和工具集。它它的出现将极极大地方便 SOA 系系统架构师、设设计人员、开开发人员快速速地开发基于于SOA的应应用项目。参参与本系列撰撰写的主要技技术人员包括括:毛新生 IBM 中中国软件开发发实验室 资资深经理, SOA计中中心中国区 首席架构师师李珉 IBBM 中国软软件开发实验验室 SOAA设计中心 高级软件工工程师,技术术经理周志荣荣 IBM 中国软件开开发实验室 SOA设计计中心 软件件工程师张柯柯 IBM 中国软件开开发实验室 SOA设计计中心
60、 软件件工程师金戈戈 IBM 中国软件开开发实验室 SOA设计计中心 资深深软件工程师师,技术经理理 理解面向服务的的体系结构中中企业服务总总线场景和解解决方案,第第 1 部分分企业服务总线中中的工作角色色本文确定了一组组最低功能,可可以满足企业业服务总线(EEnterpprise Serviice Buus,ESBB)与面向服服务的体系结结构(serrvice-oriennted aarchittecturre,SOAA)的原则保保持一致的基基本需要。通通过确定这些些最低功能,您您可以确定利利用何种现有有技术来实现现支持 SOOA 的 EESB。通过过考虑特定情情形下的需求求如何确定对对额外
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年杭州市上城区望江街道办事处编外人员招聘2人考试参考题库及答案解析
- 2026年理财规划师之二级理财规划师自测题库含答案详解【A卷】
- 江西新鸿人力资源服务有限公司2026年招聘静配中心8人考试备考试题及答案解析
- 2026年房屋建筑施工人员测试卷(B卷)附答案详解
- 2026青岛啤酒春季校园招聘考试备考试题及答案解析
- 2026陕西特岗教师招聘刷题合集(2500题)考试备考试题及答案解析
- 2026江西九江市瑞昌市宏顺贸易有限公司招聘1人考试参考试题及答案解析
- 2026年甘肃省酒泉市玉门市市场监督管理局招聘公益性岗位工作人员考试参考题库及答案解析
- 2026浙江宁波市鄞州区委老干部局下属事业单位编外人员招聘1人考试备考试题及答案解析
- 2026年马鞍山花山区机关事务管理中心招聘4人考试备考题库及答案解析
- 医疗纠纷预防和处理课件
- 前庭大腺脓肿切开护理查房
- 2025年甘肃省中考英语试卷真题(含标准答案及解析)
- 护士呼吸科进修专题汇报
- 辽宁省2025年初中学业水平模拟考试 语文试卷(一)(含答案)
- 电力拖动自动控制系统-运动控制系统(第5版)习题答案
- 2025年高考英语复习难题速递之语法填空(2025年4月)
- 美团电子合同协议
- 期刊图书馆管理员
- 考研动员讲座
- 【MOOC】国际商务-暨南大学 中国大学慕课MOOC答案
评论
0/150
提交评论