您的位置:首页 > 其它

基于SOA构建随需应变的企业应用

2007-12-07 17:10 483 查看
大多数企业的信息化过程,可视为信息技术的松散堆垒过程。企业为解决业务需求,往往采用当时情况下最新的技术,导致企业内部存在着种类繁多的硬件、操作系统、中间件、编程语言、数据存储;无法重用的冗余代码、数据和应用;不同的应用系统之间不能直接通信,成为一个个“信息孤岛”。不同的应用系统分散在企业不同的部门之间,当有新的业务需求出现的时候,无法重用已有的系统,从整体上协调整个企业的业务流程的实施。企业经常会放弃原有的系统,根据需求来开发新的应用系统,根本无法及时响应客户和市场需求的变化,做出有效的应对策略。最终将降低客户的满意度,导致客户流失。为解决企业现有的IT 系统不能灵活响应业务流程变更的问题、消除企业“信息孤岛”、提升企业竞争力从部门级到企业级、帮助企业制定可扩展的IT 系统发展战略,本文给出了基于SOA的企业现有IT应用集成及新应用架构方案。
[align=center]1.SOA核心思想[/align]

SOA是一种IT策略,它把企业应用中所包含的各种松散的功能组织起来,使其能够根据企业的需要快速的联合或生成基于某些标准的、能共同操作的各种服务。它只是一种软件设计的思想或方法,并不是一个具体的软件产品。
SOA应运随需应变的商务理念而生,它把业务和IT融为一体,致力于提高企业运作速度、响应能力和盈利能力,最大程度体现IT 对业务灵活性的支持。SOA致力于解决软件设计、企业级IT架构和业务架构之间的耦合性问题,通过优化服务基础架构,满足各种业务需求。它完全基于开放标准,适用于任何技术。SOA的实现过程是一个模型驱动的、不断优化的过程,通过面向服务的建模和架构将过程业务逻辑与技术平台分离开来,输出的业务模型把业务目标映射到基本业务流程,捕获组件化的业务活动、触发这些活动的事件、执行这些活动的角色以及输入、控制点和输出。如图1示,基于SOA的架构方案是一个持续优化的过程,首先通过业务建模把业务需求转化为业务流程模型,根据业务流程进行服务匹配和服务编排,通过服务监控和架构运营分析对架构状态进行评估,并进行优化。
SOA作为一个应用框架,其最大的价值在于整合企业遗留应用系统和技术,且在此基础上提供对企业新应用和技术开发的支持,它易化了构成各种业务的离散业务流程与服务的重用与组合。SOA不等同于Web服务,但基于Web服务的SOA实现,赋予了SOA最大的敏捷性和灵活性,它可以更为方便地实现快速、轻松地开发、连接业务服务组件,以及业务流程和应用程序,实现对服务基础架构的灵活扩展,降低由于业务变更而带来的IT系统运营风险,降低新应用开发成本,使企业从SOA的战略架构中获益。
[align=center]2. SOA参考架构[/align]
SOA的生命周期包括:建模、开发和组装服务、部署和管理,企业在进行面向服务的架构决策时,要充分体现对SOA生命周期的支持。在SOA架构实施过程中,最为重要的环节是服务基础架构(Service Infrastructure)的实现,它对实现面向服务的架构提供基础性的支持。服务基础架构提供了在SOA的整个生命周期里的部署、配置、保护和管理异构服务所需的全部功能,是实现IT与业务同步的关键。



服务基础架构提供了一个能在异构环境中快速、准确、无缝工作的独立平台,可以充分保护客户的IT投资,有助于让业务流程、信息和服务在异构的业务环境中安全地流动,并能够同时提升专有系统之上的业务逻辑。利用服务基础架构,企业IT部门可以将运行在任何平台上的服务部署在一个共享消息、管理、数据继承和安全服务的基础架构之上;业务流程、数据、安全专家则可以利用现有的服务组合出新的复合应用,并通过持续的优化过程实现对IT应用的整合与开发。服务基础架构的功能主要体现在以下方面:服务的发现、合作;消息代理;生命周期管理;公共数据访问以及安全、服务质量服务。企业完成服务基础架构的部署以后,可通过建模、开发服务实现SOA功能拓展。图2给出了服务参考架构。



SOA属于分布式的应用,在实施与部署时应采用分层的方法,如图3示,在SOA参考实施图中,实现了一个三层的应用结构,企业内部IT资产包括中间层(Middle Tier)、企业应用系统层(EIS Tier),企业外部为Internet Tier。外部用户通过Web服务器访问处于防火墙保护之下的企业应用和企业数据,调用企业内部的Web服务。



企业决定实施SOA的项目时,首先应根据业务需求和企业发展规划制定相应的IT系统发展战略。IT主管或项目经理形式调整、执行和控制投资的职权,有效的宏观管理是SOA项目成功的基础;业务分析员进行业务流程的分析和设计;软件架构设计师进行业务服务的设计;开发人员进行服务的开发和编排;测试人员进行服务测试和服务功能验证;集成开发人员进行服务的组装和部署;项目经理和开发团队则进行资产生命周期的管理,并通过内部协调采用最佳实践和指南,提高SOA项目的实施速度,使企业从SOA的架构方案中获益。
[align=center]3.SOA编程模型[/align]
企业完成企业服务基础架构以后,后续的开发实现成为维护整个架构运营、体现SOA对随需应变的商务理念支撑的关键,为统一行业标准,在业界各大组织的推动下,OASIS(Organization for the Advancement of Structured Information Standards)制定了一系列Web服务标准,OSOA(Open SOA)制定了服务组件的开发标准,提出了SCA(Service Component Architecture)和SDO(Service Data Object)的编程模型。
服务组件SC(Service Component)对外提供调用的接口,可以自调用或调用其他组件、服务,其接口可以为Java接口或WSDL(Web Service Description Language,服务描述语言)端口类型。如图4示,一个服务组件提供了对外的可调用接口,同时还可以调用其他的服务组件或自调用,通过对一个或多个服务组件的封装,对外表现为一个服务。一个服务组件一般涉及组件接口描述、业务规则、业务流程以及业务状态机。基于开放标准的开发和实现使得组件成为高可复用的代码,一个组件开发、部署后,可被当前或后续开发的多个组件中引用。



SCA是一种全新的、跟语言无关的编程模型,它提供了一种统一的面向服务组件的调用方式,使得客户可以把不同的软件模块通过服务构件的标准统一封装成可被调用、访问的服务。它支持业务逻辑和实现采用的技术逻辑的分离,SCA组件的接口可以通过Java语言或WSDL描述,组件自身可采用EJB、CORBA或BPEL等技术,采用JAVA、C++等编程语言作为功能实现。SCA组件支持导入和导出,使得其他组件可以方便地被访问和进行整合。导入SCA组件,使之能够通过Web服务或者JMS协议访问,导入采用其他技术实现的组件,可实现被导入的组件能够像SCA组件一样被访问。



SDO作为一种数据编程架构和API,它统一了不同数据源类型的数据编程,让开发人员可以从不同的数据源以统一的方式访问和操作数据。SCA以面向构件的方法,极大地简化了客户的业务逻辑编程,提高了应用开发和整合的灵活性,SDO则更进一步从数据对象上简化了服务的开发。SCA与SDO一道,将成为简化基于SOA 的应用程序开发的新模式,让SOA成为更容易实现的新技术与事实标准。



在以Web服务为解决方案的SOA实现中,Web服务的业务流程执行语言BPEL4WS(Business Process Execution Language for Web Services)是为整合Web服务而制定的一项规范标准,它能够创建如完成执行Web服务调用、操作数据、抛出故障或中止一个流程等不同的活动,并将这些活动连接起来,创建出更为复杂的流程。这些活动可以嵌套到结构化活动中,结构化活动定义了其所包含的活动的运行方式,比如活动的执行是串行还是取决于某些条件。BPEL4WS提供可移植的、可操作的流程模型,把一些关联的服务交互定义为业务流程,把流程本身定义为一个新的服务。WS-BPEL使用WSDL接口定义来组合业务流程,定义了抽象和可执行流程,提供了企业继承模型,创建了服务的组合。
[align=center]4.[/align]
基于SOA的软件架构思想给我们展现了软件开发应用的良好前景,而基于组件的开发标准和编程模型的制定,使得这种开发思想日趋为一种广泛应用的实现。采用基于SOA的思想进行企业应用架构,将提高企业IT系统对业务流程变更响应的敏捷度,降低IT系统开发运行风险和成本,提高企业客户满意度。本文介绍了当前备受业界推崇的SOA参考服务架构方案和实施方案,介绍了国际组织制定的组件开发的相关技术规范,包括SCA和SDO的编程模型,但基于SOA应用架构的成功实现,还有更多的实施细节需要研究。本文出自 “Thinking in SOA” 博客,请务必保留此出处http://thinkingsoa.blog.51cto.com/286315/54119
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: