基于组件的应用开发
1、组件技术的标准
直到前不久,软件开发常常还是一项相当原始的工作,产生大量没有结构、资源使用效率低下、缺乏与其他程序真正互用性的杂乱程序代码。
今天,开发人员采用基于组件(又称部件或构件)软件开发的新型软件开发技术—实现可靠的、小的对象的快速开发、装配和重复使用,以生成复杂的程序。
对于应用软件的用户和开发人员来说,组件软件开发的长处,重复使用性、可靠性、互用性和可移植性,在很大程度上仍是难以捉摸的。为此,在如何编制组件的技术规范方面出现了两个阵营:微软公司的组件对象模型(COM)和多厂商对象管理集团的公共对象请求中介结构(CORBA)。这两个标准的目标都是让开发人员生成带有可预测的标准接口的组件,这些组件可装配起来,生成应用程序,而不管这些组件位于何处、是由谁设计的。
在早期的发展过程中,COM没有分布组件,有了DCOM,微软将COM扩展到支持局域网、广域网、甚至因特网上不同计算机上对象之间的通信。DCOM是嵌入在操作系统和网络中的,对于目前Windows98和
NT的用户来说,这意味着已经有了DCOM。
据国际有关组织的测试,CORBA和DCOM的优缺点如下表所示:
测试结果一览
CORBA核心技术
CORBA遗留的问题很少,而且对象管理组正在加紧增补遗漏的部分。语言汇集接近完整,与其他对象通道的集成即将来临,应用框架的开发正在进行中。
产品质量
大多数ORB公司在提供基本CORBA函数方面作的很好,总体平台支持也无可厚非。但提供的服务工具仍然很混乱。我们见到的大多数开发工具不如WINDOWS下的开发工具。
|
优点
1.广泛的平台支持---ORB已在大量操作系统上被实现;
2.强壮的编程语言支持---ORB覆盖了所有重要语言;
3.支持本地/远程透明调用---对象调用服务不必知道位置细节;
4.支持静态或动态两种调用方法;
5.实施继承---一个界面可以继承另一个界面上的组件;
6.强壮的安全性能---提供了鉴别、授权、加密、安全域和审核服务;
7.可靠的跨ORB性能---ORB在不同的平台上协作的很好;
8.支持多线程服务;
9.多线程前不必初始化;
10.强壮的容错及负载平衡规范。
缺点
1.对CORBA的专有扩充---公司能够增加非标准化特性,而这可能会牺牲CORBA的互用性和移植性;
2.缺乏完整的技术规范支持---产品要求更进一步的规范化CORBA服务;
3.大量的命令集---学习一家公司的详细命令要花费一定的时间;
4.非标准命令集---不同的ORB公司可能执行不同的命令集,这增加了在多ORB环境下的学习难度;
5.缺乏开发工具---许多ORB公司没有提供建立组件的产品工具;
6.非直接的CORBA-TO-CORBA互操作---使得一个ORB上的客户应用调用另一个ORB上的对象要进行更多的工作。
|
|
DCOM核心技术 COM是一项纯粹的桌面技术,它的普及可想而知。但分布式COM对象增加的复杂性还没有被很好地解决,包括对授权操作系统的依赖。
产品质量
主要工具商在使他们的开发框架具有吸引力及易用性方面投入了大量精力,这为DCOM开发者带来了很大的便利。Wizard使得从COM
开发转到DCOM开发减去了大量的烦恼。 |
优点
1.高质量的开发工具---很多Windows开发者会感觉非常轻松;
2.方便的Microsoft Wizard---他们使得生成代理和存根模块代码以及增加COM组件更加容易;
3.大量的商品化ActiveX组件可供选用---Windows在桌面平台上的普及保证了独立软件组件开发者在决定不对这个平台进行开发前将会重新考虑;
4.静态或动态界面支持---开发者可以根据应用的性能和灵活性要求进行选择;
5.支持本地/远程透明调用---客户可以不知道服务器的具体位置;
6.支持多线程服务。
缺点
1.只能用在有限的操作系统下---目前,仅在WindowsNT4.0、Windows95及Sun Solaris下被支持;
2.只允许界面继承---一个界面能够从另一个界面中导出,但导出的界面不继承原始界面上的组件;
3.静态和动态调用要求不同的界面;
4.多线程要求对COM库进行初始化;
5.缺乏健全的容错及负载平衡性能---微软提供了一些相关的产品,其中微软的事务服务MIS最具吸引力;
6.大幅度的学习跨度---虽然有很好的工具,但熟悉DCOM还得花费一些工夫,对OLE新手将是一个挑战。
|
COM已经是用户为Windows购买的大多数开发工具的一部分,它是一个全面的体系结构,覆盖从前端到后端到服务器和数据库。
相比较而言,CORBA应用程序需要将CORBA ORB(Object Request
Broker—对象请求中介)安装到使用此应用程序的所有PC机上。当考虑在整个企业内部署的复杂度和范围时,就在部署和常常被忽视的升级过程中,会出现重大的管理和维护问题。
2、组件技术的应用 (1)软件重用的重要性
软件重用首先可以提高软件开发速度。一个有80%可重用能力的软件开发公司将比同等规模但只有20%可重用能力的公司具有更大的生产能力。这意味着用更少的人能开发更多的产品,同时也意味着能在更短的时间内能开发出更多的产品。
软件重用的意义还远远不止于此。软件重用可以显著地提高软件质量。人们对可重用软件的质量要求通常比对普通软件的要求高得多,这从另一方面说明采用软件重用技术开发的软件,其质量将比非重用软件的质量高,至少,其重用部分的质量是可以保证的。此外,由于开发周期缩短而带来的市场机会将更直接地影响公司的经济效益。
(2) 软件重用的方式 面向对象的程序设计将软件重用引入一个崭新的时代,出现了以下新的软件重用方式。
·类库 类库与函数库一样,都是经过特定开发语言编译后的二进制码。然而它与函数库有本质的区别,主要表现在继承、封装与派生上。类库的出现使大规模的软件重用得以实现,并使软件的重用性及可维护性得到大大增强。然而,类库也与函数库一样有受限于开发语言的缺陷,因为它也是经过特定的开发语言编译而成的。
·组件 这是迄今为止最优秀的软件重用手段。采用组件开发软件就像搭积木一样容易,组件是具有某种特定功能的软件模块,它几乎可以完成任何任务。目前,组件分为两大类,一种是由微软推出的ActiveX,
一种是Sun的JavaBean。ActiveX可以做到操作系统级兼容,即在Windows平台下运行,支持Windows平台下的各类开发工具,如Visual
C++、Visual Basic、VBScript、Visual
FoxPro和 PowerBuilder等等;JavaBean在所有支持Java的平台上皆可运行。ActiveX与JavaBean的区别其实就是性能与平台无关性的区别。在目前的商业软件中,ActiveX的应用更为广泛,无论是在Lotus推出的办公软件还是微软最新推出的NetShow中,皆可见到ActiveX的身影。
事实上,ActiveX并不是微软公司推出的最新技术,而是微软公司经过多年开发推出的产品,以下是微软进行组件开发的4个步骤∶
1.首先推出的是"动态数据交换(DDE)",它是Window程序之间传递消息的最原始协议。
2.接着是"对象链接与嵌入(OLE)",这是对DDE的一种扩展。程序员利用OLE,可在应用系统的各程序间创建可视的链接关系。
3.紧随OLE的是"组件对象模型(COM)",它几乎成了使用和设计OLE应用程序的一个工业标准。
4.最后,微软公司终于推出了ActiveX,这是COM的一种修改形式,是COM标准的一种升华,它引入了"软件组件"的概念。基于组件的编程技术能让软件设计变得更加简单,便宜和快捷,并极大的增强软件重用能力。
组件的出现将对应用型软件公司的开发带来深刻的影响。程序员不用一遍又一遍的去实现快速排序算法了,他们要做的是利用现有的组件,再加上自己的业务规则,一个应用软件就开发出来了(这听起来有点言过其实,然而这就是未来的方向)。
3、中间件的应用 应用层中包括提供业务服务规则和其它中间服务的部件,是联系用户(Client)表示服务层和数据服务层的桥梁,它们响应用户(或其它业务服务)发来的请求,执行某种业务任务,并对相
MTS(Microsoft Transaction Server)是Windows
NT4.0中的一个任选件(在Option Pack中),实际是一个中间件,它运行和管理应用(业务)层组件,负责最底层的工作,它具有如下特点:
· 面向业务的事务处理,保证业务处理的完整性; ·统一管理数据库连接,用户服务的连接数可以很多,但数据库连接可能只有几个,使用
10个连接,可以同时为100个用户提供服务; · 内设数据缓冲池,对于频繁使用的数据,MTS把它们保存在数据缓冲池内,减轻了数据库的负担,提高了效率,整个系统的性能不会因客户连接数的增多而降低。系统最复杂的部分是应用层即中间层。中间层中包括许多提供各种服务的独立组件,其基础部分的组件分为两类:一类为客户端组件,另一类为服务器端组件。
客户端组件面向业务服务,提供完善的业务服务,但不直接处理业务数据,它们通过调用服务器端组件完成业务服务。这些组件的数据结构比较庞大,只适合与客户端程序在同一台计算机上运行。它们与客户端程序的通信通过COM接口在本机上完成,因此只需考虑更完善的业务服务,不用关心数据量的大小。
运行在MTS中的服务器端组件是为数据处理而设计的,包括各种数据处理并提供简单的业务服务。系统中所有数据处理都在这些部件中进行,也就是说,只有这些组件才可以直接与数据库打交道。由于系统的主要数据处理功能在这些组件中实现,因此它们通常作为服务器程序运行在单独的计算机上。
由于MTS统一管理数据库连接、数据接收、数据同步、事务处理和线程调度等工作,从而最大限度地保障了数据的统一、完整和准确性能。
|