赵婉芳

【摘 要】随着技术的发展,软件复用技术从最初的简单的代码及函数复用发展到当前流行的软件组件设计技术,组件技术通过软件复用,不仅缩短了软件开发过程,也有利于软件的更新换代。本文主要分析研究了组件技术的基本原理,主流技术,同时归纳总结了基于组件技术开发应用软件的过程及关注重点,对于基于组件的网络应用程序开发有一定建设指导作用。

【关键词】组件技术 CORBA标准 COM标准 EJB标准

随着技术的发展,软件开发领域面临用户需求日趋复杂的挑战,由此出现了软件复用技术来解决这个问题,随着使用的深入,软件复用技术也随之从最初的简单的代码及函数复用发展到当前流行的软件组件设计技术。如今软件复用技术已经成为计算机软件技术发展的动力和追求的目标之一,而当前解决软件复用的最有效最前沿的组件技术也已经引起软件开发行业的普片关注。

1 组件技术基本原理

组件技术是一种二进制基础上的代码复用技术。传统方式下一个应用程序通常由单个的二进制文件组成,当编译器生成此应用程序之后,就不会发生任何变化,当操作系统、硬件或客户需求发生改变时,整个应用程序必须被重新编译之后才能被认可,这个特征非常不利于软件的升级更新。而在组件模式下,单个的应用程序则被分割成多个独立的组件部分,当外界需求发生变化时,只需更新对应组件即可,很好的解决了程序易于老化的问题。在组件技术中提供服务的组件程序被称为“服务器”,要求得到这种服务的程序称之为“客户机”。组件技术的核心就是实现客户机和服务器之间的双向通信。组件按照一定的规范进行开发,每个组件提供一个或多个接口,在接口里只定义类和函数的声明,不包含具体实现。开发完成后的组件被部署在组件容器中,由容器进行组件的创建和删除管理。组件服务器管理容器同时给客户程序提供操作环境。组件服务器可以通过组件的唯一标识在需要时地确定组件所在位置。客户程序首先获得组件的接口规范,声明组件接口的本地指针,通过组件服务器找到组件程序的位置,启动组件程序,然后向客户机返回组件的信息。客户机根据返回信息处理组件接口的本地指针,然后向组件服务器发出请求调用该接口的方法,服务器接受到请求后将该请求转换为对真正组件方法的调用,最终将执行结果传送给客户机。这样,客户机就完成了对组件功能的调用。组件开发应用程序原理如图1所示。

2 组件标准

标准是组件应用的基础,统一的接口描述、规范的组件通信、标准的对象请求和远程调用,构成了组件应用的基础。目前的组件的主要标准有CORBA、EJB、COM三种技术标准。

2.1 CORBA

CORBA(Common Object Request Broker Architecture)是国际对象管理组织OMG(Object Management Group)提出的标准,是一种独立于语言的分布式对象模型,实现了平台、语言无关, 但该标准只定义了框架和内核,各种实现相差较大。CORBA其核心是ORB(Object Request Broker)即对象请求代理,对象的接口用IDL描述,在各个对象之间采用因特网ORB交互协议IIOP(Internet Inter-ORB Protocal)进行通信。

2.2 COM/DCOM/COM+

COM(Component Object Model)/DCOM(Distributed Component Object Model)/COM+是微软公司推出的组件技术标准,主要应用于Windows平台。COM是对象链接和嵌入OLE(Object Linking and Embedding)的发展,分布式COM即DCOM(Distributed COM)和COM+则是COM的基础上发展起来的技术,和COM相比,DCOM和COM+的实现更加复杂。目前基于COM的OLE(Object Linking and Embedding)和AetiveX技术已经得到广泛应用。

2.3 EJB

EJB(Enterprise Java Beans)是Sun公司基于J2EE架构提出的标准,在各个EJB之间采用远程方法调用RMI(Remote Method Invocation)进行通信,而对数据库的访问,采用的则是Java数据库连接JDBC(Java DataBase Connection)。EJB广泛应用于大型电子商务系统开发,但只适用于Java语言环境和JVM(Java Virtual Machine),未能实现程序设计语言无关性,而且运行效率低,对J2EE 服务器配置要求高。

3 组件技术在多层机构网络系统中的应用

与传统的软件开发不同,基于组件技术的软件开发的核心是:如何提取可复用组件以及如何将这些抽象出的组件组装成系统。在基于组件的软件开发中应着重进行组件的规划、设计与开发,而且组件的开发过程始终贯穿于整个应用软件开发过程中,这种组件和整个应用程序的并行开发模式从另一方面大大提高了软件开发效率。

一般情况下组件的开发过程首先是对组件进行功能分析、规划和对外接口设计,进而落实内部细节的实现,最终完成组件的部署与管理工作。而在基于组件的整个应用系统开发过程则是在进行完传统的需求分析后,首先将应用程序抽象为不同功能的各层,然后确定所需组件。组件的确定是通过系统的数据流程图和系统结构图来确定系统需要处理的各种应用请求,通过分析归纳这些应用请求就可以初步确定所需的组件。接下来创建各层之间的接口,实现组件的接口及方法。这里要注意组件本质上是独立的实体,它们之间的相互通信只经由已知的公共接口,所以组件的接口在整个应用系统中起决定性作用。接口设计不合理,不仅影响组件本身的可重用性,而且会影响到整个应用系统的升级,还会缩短系统的生命周期。所以确定组件的接口是其中最重要的一步,要尽量使接口能支持各种不同的应用;最后是实现和逻辑验证。组件不依赖于特定语言,因此开发者可根据实际需要选择合适的开发工具。在实现阶段的最后必须把经过测试的组件集成到一个系统中,并进行逻辑验证和系统测试,进行最后的确认,最终开发完成一个应用软件系统。图2是基于组件的应用程序开发过程图。

4 结语

这种以标准的组件构造应用程序的做法,很长时间以来一直是软件工程开发的一个发展目标,随着COM、CORBA、EJB、.NET组件的发展,这一目标逐渐被实现,虽然目前很多的应用程序还是需要使用特殊组件,但是一个应用程序的大部分仍然可以用标准的组件建立起来,因此组件技术对于应用软件系统的开发意义非凡。

参考文献:

[1]秦伟俊,史元春.基于多层体系结构的网络教学系统[J].清华大学学报,2006,7.

[2]刘军,阳小华.基于.NET 组件技术的教学信息发布与管理系统的设计与实现[J].微型电脑应用,2006,4.