当前位置:文档之家› 组件化可拔插的应用集成服务框架研究

组件化可拔插的应用集成服务框架研究

华中科技大学

硕士学位论文

组件化可拔插的应用集成服务框架研究

姓名:王鹏飞

申请学位级别:硕士

专业:计算机应用技术

指导教师:宋善德

2003.5.9

华中科技大学硕士学位论文

摘要

f企业应用的特点是数据量大,功能模块多,业务逻辑复杂,需求多样并且多变。为了满足不同类型的商业需求,会采用JavaBean,BeanShell,SOAP等多种不同类型的服务,组件化可拔插的服务框架是为了大幅度提高软件复用水平,提高软件开发速度,快速集成企业现有服务而提出的一种新的思路。7

组件化可拔插的服务框架采用完全开放和可插入的体系结构,服务框架由服务请求者、服务分发器、服务引擎和具体服务四个部件组成。在服务框架下,调用不同类型服务的服务插件可以灵活的从服务框架中加载和卸载。服务框架对不同的集成技术具有很好的适应性,服务框架下不同类型的服务可以以同步和异步的方式调用,服务也可以被定时调用,服务框架可以支持多种服务类型,具有灵活的扩展性。

在服务框架下,调用不同类型服务的服务插件通过一种模块的拔插机制从服务框架中加载和卸载。服务配置采用了X札语言作为服务配置语言,定义了良好的服务配置描述。服务的异步和定时调用采用了多线程技术和持久化机制,很好的实现了服务的异步和定时调用。

工作流管理系统可以应用该服务框架思想,利用服务框架,工作流管理系统中的自动型的活动可以灵活的调用外部应用组件。

关键词:软件复用:软件体系结构;o,4

l/服务xI框架VV

Abstract

Largenumberofdata,functionmodule,complexbusinesslogic,andvariousrequirementsarethecharacteristicsofenterpriseapplication.Inordertoimplementdifferentbusinessrequirements,usevarioustypesofservice,suchas]avaBean,BeanShell,SOAPetc.Componentpluggableserviceframeworkisanewidea,whichcanraisethesoftwarereuseability,softwaredevelopmentspeed:fastthepaceoflegacyservicesintegration.

Componentpluggableserviceframeworkadoptsopenandpluggablearchitectureentirely.Thisframeworkiscomposedofservicerequester,servicedispatcher,serviceengineandspecificservice.Underserviceframework,itisflexibletoinstallanduninstallserviceinsertionofdifferentservicethroughserviceframework.Theserviceframeworksuitsdifferentintegrationtechniques.Differentkindsofservicescarlbeinvokedwithsynchronousandasynchronouswayandbeinvokedregularly.Serviceframeworkalsocansupportmanykindtypesofserviceandhaveflexibleexpansibility.

Underserviceframework,differentkindsofservicesinvokedserviceinsertioninstallsanduninstallsinserviceframeworkthroughakindofpluggablemechanism.ServicedeploymentadoptsXMLlanguageasdeploymentlanguageanddefinesgooddescriptionofservicedeployment.Asynchronousandregularemploymentofserviceadoptsmulti—threadtechniqueandsustainingmecbanism,itrealizesasynchronousandregularityofservices.Theworkflowmanagementsystemcanusetheideaofthisserviceframework.Usingserviceframework,automaticactivitiesinworkflowsystemcanutilizeexteriorapplicationcomponentneatly.

Keywords:softwarereuse:softwarearchitecture:applicationintegration:service:framework

1绪论

1.1课题背景

变化已经成为现代企业的象征,面对变幻的市场、日新月异的新技术、强大的竞争压力,企业需要不断的进化,适应环境的需要。作为现代企业不可缺少的基石,企业应用软件发挥了越来越重要的作用。在构建某项企业应用时,目前大多采用“独立解决方案”,开发者和企业逻辑相结合,在特定的操作系统平台上、特定的集成开发环境下、基于特定的数据表达格式,进行特定应用软件系统的开发。很少考虑应用的可集成性、可重用性、可定制性、可移植性。造成了众多软硬件平台、各类应用系统并存的局面。

不断增长的客户和商业伙伴对实时信息的期望的持续增加,为了满足这种期望的需要,企业被迫连接他们的那些异构的系统来增加产出、提高效率以及最终使顾客满意。为使一个组织内部IT系统互相通信,导致了企业应用集成(EAI)的发展。EAI不是一个能彻底解决最终问题的方案,他更可以说是正在建立一个灵活的、标准化的企业应用底层架构,可以允许新的基于IT的应用和商业处理能够更容易和更有效的被部署。新的底层架构允许企业中的应用能够实时的,无缝的互相通信。企业应用集成技术已经从最初的点对点的集成方案发展到现在的以松散的服务捆绑集合为表现形式的Web服务集成方案,无可否认公司会跟随技术的发展来采用更加先进和便捷的集成方案,,这样公司便陷入了一个技术更新的无底洞。每一次的集成都是对大量的现有服务组件的包装,非常耗时耗力。那么有没有一种方法来减少这种耗时耗力的对大量的现有服务组件的包装呢?

本课题的目的就是通过充分运用面向对象的思想,研究如何运用如组件技术、框架技术、设计模式等现代软件工程方法。建立一个适应性强、可进化、易维护的用于应用集成的基于组件的服务框架。以框架为基础,应用程序开发者可以快速的利甩最新的技术来集成现有服务,并且在此框架的支持下开发出来的系统也能够很容易的被其它系统集成。

该服务框架虽然主要用来集成企业现有服务,但使用该服务框架开发的软件系统也具有很好的可扩展性、可适应性、可进化性。该服务框架可以很容易的插入现有的完成特定商业需求的商业组件(CTOS),运用这些商业组件,开发者不必每次都从头开始,

华中科技大学硕士学位论文

数据和商务流程。虽然现在许多这些应用都提供了更好的访问他们的内部数据和商业逻辑的方法,可是把这些系统和企业里其它系统集成仍是一个巨大的挑战。

不断增长的客户和商业伙伴对实时信息的期望的持续增加,为了满足这种期望的需要,企业被迫连接他们的那些异构的系统来增加产出、提高效率以及最终使顾客满意。为使一个组织内部IT系统互相通信,导致了企业应用集成(EAI)的发展。如图1.1,EAI通过建立底层结构,来联系横贯整个企业的异构系统、应用、数据源等。EAI解决方案的起源可以追溯到那些提供双向的解决方案以完成在企业内部的ERP、CRM、SCM、数据库、数据仓库以及其他重要的内部系统之间无缝地共享和交换数据的需要。

图1.1B2B企业应用集成

EAI不是一个能彻底解决最终问题的方案,他更可以说是正在建立一个灵活的、标准化的企业应用底层架构,可以允许新的基于IT的应用和商业处理能够更容易和更有效的被部署。新的底层架构允许企业中的应用能够实时的,无缝的互相通信。

EAI解决方案可以呈现许多种形式并以多种级别出现。EAI合适的级别依赖于许多因素,包括公司的大小、公司的行业类别、公司应用的集成度或是项目的复杂度以及预算等等。

1.用户界面集成(界面重组)

界面重组是一个面向用户的整合,他将原先系统的终端窗口和PC的图形界面使用

图1.2基于开放式商务流程的集成

4.函数/方法集成

函数和方法集成包括直接的和严格的,在网络环境中的跨平台应用程序之间的应用到应用(A2A)的集成。如图1.3所示,它涵盖了普通的代码(COBOL,C++,Java)撰写、应用程序接口(APIs)、远端过程调用(RPCs)、分布式中间件如TP监控、分布式对象、公共对象访问中介(CORBA)、Java远端方法调用(RMI)、面向消息的中间件以及Web服务等等各种软件技术。

图1.3函数/方法的集成

1。3课题主要研究工作

当前有关应用集成的研究工作可以说取得了很大的成果,但应用集成的研究工作主要集中在集成的解决方案上,也就是说问题出来了,然后针对出现的问题来找出解决方案,这些解决方案也能够很好的解决问题,但其中一个不容忽视的问题是每一种解决方案的实施都需要企业付出很大的努力,因为企业应用存在着大量的不同类型的服务。本

华中科技大学硕士学位论文

2服务框架模型概述

企业应用系统中的现有的可以重用的服务不仅数量巨大而且是属于多种类型的,当采用一种集成技术如CORBA,蹦I,EJB或WEBSERVICE来集成现有的服务时,会花费大量的时间和精力,因此有必要充分运用面向对象的思想,研究如何运用组件技术、框架技术、设计模式等现代软件工程方法,建立一个适应性强的、可进化的、易维护的用于应用集成的基于组件的服务框架。以框架为基础,应用程序开发者可以快速的利用最新的技术来集成现有服务,并且在此框架的支持下开发出来的系统也便于被其它系统集成。

2.1什么是服务

该服务框架主要用来集成企业应用系统中存在的大量可重用的服务,并对服务进行统一管理,那么到底我们所说的服务是什么呢?下面我们对此概念进行一下限定:服务就是应用系统中可以独立完成一定功能的逻辑单元,不同的服务组合在一起可以完成企业许多不同类型的商业需求。它的对外表现形式既可以简单的表现为一个类中的一个方法,也可以是一些复杂的实体,例如为完成一定的业务而定义的工作流程。

2.2企业应用程序的特点

当今企业应用是复杂的,又是多变的,这给企业应用系统的开发和集成带来了极大的困难。与其他应用系统相比,企业应用程序通常具有以下特点:

1.大量的数据

企业应用程序通常工作于大量而且复杂的数据,而且许多数据必须保留以便在多次运行程序时使用。事实上有的数据必须保持多年,比保存它本身的软硬件系统的寿命都要长。当企业准备改用新的应用系统时,原有的数据必须能够移植到新的系统中去。企业需要的数据量通常很大,一个中等的系统就可能拥有超过1GB的数据,上千万条记录,这么大量数据的管理将是系统的主要部分之一。一般会有许多人同时访问数据,系统必须支持事务管理,确保多人不会因同时访问同一数据而出错。通常系统将使用一种数据库(一般是关系型数据库)来专门处理这么多数据的问题,但开发者往往仍然需要对此付出很大的关注。

2.多样的用户界面要求

大量的的数据通常对应需要有大量的用户界面来处理,在一般的企业应用程序中,几百个不同的屏幕界面很普通。企业应用程序的用户与常规的用户有不同的习惯,通常他们对数据有着专业的要求,系统必须将数据按照不同的目的处理成不同的表现形式,如各种表格、图形、报告。随着技术的发展,有的系统用户界面已经扩展到手持设备、掌上电脑、手机等各种新型的外设上,看来用户对界面的要求是永无止境的。

3.众多的业务逻辑

企业应用程序中存在大量所谓的“业务逻辑”,即企业内部的业务规则。事实上没有什么比它更没有逻辑性了,除了用行政手段你不可能改变他们。这些规则体现了企业的管理,因而在不同的企业中哪怕是同行,具有完全相同的业务逻辑的机会几乎是没有的。大量的业务规则由众多的特殊案例形成,这导致业务逻辑变得异常复杂,除了那些领域专家们,一般人难以理解。所以业务需求往往也很难一次到位,修改或增加业务规则已经成为软件开发中必不可少的环节。

4.多应用的集成

企业应用程序很少是一个信息孤岛,各种应用通常分布在企业中不同的位置。企业计算需要分布式计算平台的支持,以便不同节点的企业应用程序相互集成。通常这些分布的系统可能在不同的时间建立,甚至采用是不同的技术建立的。企业需要通过一种通用的机制来集成这些不同的系统。

5.不断的进化过程

所有以上的这些特点决定了企业应用的集成是一项复杂的任务。事实证明,企业应用系统的集成是非常复杂的。在上面的应用集成的国内外研究概况的介绍中我们提到了四种旧系统的集成方法:用户界面集成,数据集成,商务流程集成,函数/方法集成。我们所提出的服务框架也不是万能的,它只能服务于上面所提到的两种方法:商务流程集成,函数/方法集成。它可以对企业现有的商务流程,函数/方法进行统一管理,并以统一的表现形式提供给开发人员。

2.3服务框架体系结构

该服务框架采用了完全开放和可插入的体系结构。总的来说它是介于服务请求者和具体服务之间的一个薄层。

图2.1服务框架简图

如图2.1所示,该服务框架所做的工作只是根据服务请求者发出的请求消息,来调用具体的服务进行处理。尽管这看起来过于简单,但该设计使得它能够满足复杂的企业应用集成需求,用于集成不同类型的服务,并且还能够对服务进行组合来满足更复杂的企业应用。

2.3.1服务框架的部件

1.服务请求者

服务请求者是触发服务的起始点,对于服务的请求者来说,它必须负责提供详细的要调用服务的上下文信息,这包括要调用的是什么服务以及服务的类型,服务必需的输入信息。服务分发器根据服务的类型决定把服务分发到哪一个服务引擎。调用的是什么服务用来给具体的服务引擎提供信息调用具体的服务。服务必须的输入信息是要执行的服务所需的初始话信息,如输入参数等。

服务请求者的类型是多样的,并且是可扩展的。该服务框架的一个主要目的就是为了减轻对现有服务集成的工作量而设计的。每一种集成解决方案在该服务框架下都对应一种服务请求类型。例如企业现有的服务要以WebService方式进行集成,那么无论企业现有的服务有多少,在该服务框架下,我们仅须把服务分发器以WebService方式对外提供就可以了。

2.服务分发器

服务分发器是该服务框架的核心部件。它的主要职责是负责分发服务到调用特定类型服务的服务引擎。

15

华中科技大学硕士学位论文服务分发器在分发服务到特定的服务引擎时可以进行一些辅助的工作,例如进行权限控制和调用服务之前的服务所须信息的完整性验证。

服务分发器为了完成上面所提到的职责,它必须具备服务分发的上下文信息,这些信息包括系统中的所有服务定义的详细信息,每一种服务类型所对应的服务引擎信息。3.服务引擎

服务是在服务引擎中被实际调用的。在对服务进行定义时,每一个服务都有一个引擎名与之相对应。针对每一种类型的服务都需要有一个具体的引擎与之相对应,服务引擎对外隐藏了调用相应服务的细节问题,这给调用服务的开发者带来的直接好处是使开发者可以将精力放在了解每一个服务所提供的具体功能上,而不必关心具体调用这些服务的细节。

另外服务引擎对于服务框架是可拔插的,下一章我们将具体讨论服务引擎的拔插机制,当应用系统中需要集成不同类型的服务时,我们可以构造这种服务类型的服务引擎或采用现有的符合我们需要的引擎,借用这种拔插机制我们可以很方便的集成不同类型的服务。

4.具体服务

应用系统所要完成的功能是通过具体的服务完成的。前面我们已经说过服务是应用系统中可以独立的完成一定功能的逻辑单元。它即可以是软件复用的最小单位:一个类中的静态方法,也可以是多个服务的联合体如一个具体的工作流程。当然也可以是其它的类型。

2.3.2服务框架模型所提供的增值服务

该服务框架实现了对企业应用系统中所有可以复用的服务的统一管理,这使得我们可以很容易在此框架基础上对所有的服务提供增值服务,主要体现在下面几个方面:1.可以对服务的存取权限进行统一管理。由于服务可以被不同的系统复用,因此对服务的存取权限进行统一管理是很有必要的,如果没有该服务框架,对服务的权限控制必须放到集成该服务的系统中,这不但增加了系统的复杂性,并且由于没有进行统一的管理,大大降低了系统的可维护性。

华中科技大学硕士学位论文2.可以提供服务的同步与异步控制。服务的同步与异步控制对于企业应用系统是非常有必要的,必须提供一个同步与异步控制的解决方案。由于该服务框架对服务进行了统一管理,所以只须提供一个同步与异步控制的解决方案就可以作用于系统中所有的服务。

3.可以提供服务的定时机制。企业应用系统中的很多服务都需要提供定时机制,以提供对服务的定时调用。由于该服务框架对服务进行了统一管理,所以只须提供一个定时机制的解决方案就可以作用于系统中所有的服务。

2.4服务框架的特点

系统集成总是要随着外界的变化而变化,框架提供了系统相对稳定的基础,并支持了不稳定部分的变化,将其限制在一定范围内,防止“波浪效应”。

1.对不同集成技术具有很好的适应性

随着技术的不断进步,不同的集成技术不断被提出,由于该服务框架对所有的服务提供了集中的访问点(服务分发器),如果需要对服务进行包装时,不必对所有的服务分别包装,只需要对服务分发器进行包装就可以了,因此可以很容易的适应不同的集成技术,并大大降低了集成的复杂性。

2.服务可以以同步和异步的方式调用,服务可以被定时调用

由于该服务框架对服务进行了统一管理,所以只须提供一个同步和异步调用以及定时机制的解决方案就可以作用于系统中所有的服务。从而使开发人员的精力可以集中于业务逻辑的处理上来,提高应用的开发速度和可维护性。

3.服务框架支持多种服务类型,并具有灵活的扩展性

服务框架提供一个灵活的插拔机制,提供了对不同服务类型的统一管理。因此系统可以很方便集成不同类型的服务,具有灵活的可扩展性。

2.5小结

本章首先对服务的概念进行了限定,然后通过讨论企业应用程序的特点来说明企业应用集成的复杂性,从而指出该服务框架的应用范围,接着对服务框架的体系结构进行了探讨,详细的解释了服务框架中各部件的作用。另外还讨论了该服务框架下可以提供

相关主题
文本预览
相关文档 最新文档