软件测试分布对象技术的新进展[2] 软件测试工具
关键字:面向对象 分布对象
相比之下,Java标准的制订就快得多,Java是Sun公司自己定的,演变的很快。Java的优势是纯语言的,跨平台性非常好。Java分布对象技术通常指远程方法调用(RMI)和企业级JavaBean(EJB)。RMI提供了一个Java对象远程调用另一Java对象的方法的能力,与传统RPC类似,只能支持初级的分布对象互操作。Sun公司于是基于RMI,提出了EJB。基于Java服务器端组件模型,EJB框架提供了像远程访问、安全、交易、持久和生命期管理等多种支持分布对象计算的服务。目前,Java技术和CORBA技术有融合的趋势。
COM技术是Microsoft独家做的,是在Windows 3.1中最初为支持复合文档而使用OLE技术上发展而来,经历了OLE 2/COM、ActiveX、DCOM和COM+等几个阶段,目前COM+把消息通讯模块MSMQ和解决关键业务的交易模块MTS都加进去了,是分布对象计算的一个比较完整的平台。Microsoft的COM平台效率比较高,同时它有一系列相应的开发工具支持,应用开发相对简单。但它有一个致命的弱点就是COM的跨平台性较差,如何实现与第三方厂商的互操作性始终是它的一大问题。从分布对象技术发展的角度来看,大多数人认为COM竞争不过COBRA。
目前我们经常谈到的分布式对象技术主要就是这3种,涉及到它的模型、规范、标准和实现。3种分布对象技术的详细比较可参见附表。
问:据说,国外软件厂商像Oracle、Sybase、Lotus等纷纷宣布其软件产品中采用了分布对象技术,并呈现出很好的应用势头。那么,分布式对象技术有哪些应用?如何应用呢?有人说,我国在分布式对象技术领域基本与国外处在同一起跑线下,您对此怎么看?介绍一下我国的情况,以及分布式对象技术的新进展。
答:Oracle、Sybase和Lotus等国外软件产商均在其主流产品中支持CORBA、EJB和DCOM技术以支持企业级应用和Web应用,这些产品在企业ERP和电子商务中均得到大量的应用。
分布对象技术在比较大型的网络系统中应用较多,比如像医学方面的医学信息系统、银行业、交通、电信,几乎各行各业都有成功的例子,但在国内成功的比较少。
分布对象技术应用起来比较复杂,因为这种软件通常都比较庞大,涉及到网络、对象技术等多种技术,尤其是COBRA,系统开发比较困难。分布式系统通常采用组合框架软件(Component Software)方法进行开发或集成,是基于软件体系结构的集成,只有特殊需求的组件才需要新开发,与其他组件在集成框架下集成为一个整体。当然使用组合框架软件进行分布式系统开发需要一整套方法、工具和平台的支持。
国外利用分布对象技术开发的大型应用相对传统方法也不是很多,除了开发难度较大外,我想这里面还有这样一个原因,那就是人们都喜欢用成熟的技术。而在大型软件采用分布对象技术,在项目开发过程的控制方面的经验不足,从一定程度上限制了分布对象技术的应用。对于分布式对象计算这样的应用来说,需要有一系列方法论、软件工程的方法和工具。如果不从开始就按照面向对象的方法来设计,利用面向对象的方法论和工具来支持的话,很难做成一个成功的分布式应用。
我个人不赞成处于同一起跑线上这一说法。我认为,在分布式对象技术方面,我国和国外的差距还是全面的,应该说国内一直在跟踪这个技术,也在研究开发方面加入了一些中国特色,比如通讯方面,中国的通讯线路不太好,我们就专门针对通讯模块做了改进。说差距是全面的,首先所有分布对象技术的标准均是国外组织和企业制定的;第二在支撑平台上,国外有名的产品已不下百种,而中国除了少数几个科研院所和公司有一些原型外,基本没有自己的产品;第三,成功的应用太少。一般说来,网络分布式应用的第一代模式叫Client/Server模式,第二代叫3层Client/Server模式,第三代叫分布式对象模式,目前国外基本上已经从第二代向第三代过渡,电子商务的兴起将加速这一进程。而我国目前大型应用还主要是简单Client/Server结构,但越来越多地采用3层Client/Server的模式。
谈到分布式对象技术的新进展,目前国外的一个进展就是将分布对象计算与Web 以及嵌入式移动计算结合在一起,另外就是和中间件(如交易中间件、通讯中间件等)的结合。例如COBRA新的标准里加入了Internet服务和消息服务,消息服务可以支持异步的方法的调用,可以提高程序的吞吐量,并行能力的加强提高了系统整体的性能,并增加了系统的灵活性。
问:有人说,分布式对象技术的发展方向是智能Agent技术,这种说法您怎么看?请您谈一下分布式对象技术将来的发展趋势?
答:我认为,分布式对象技术和Agent技术具有一些共性,它的某一个分支可能会发展成智能Agent,但智能Agent技术不能代表分布式对象技术的全部。Agent通常包含2个含义:第一,Agent较普通组件具有更高的自主性,能够对周围环境具有一定的赶制性,第二,Agent可以理解为移动组件,它可以根据需要在网络节点间移动。
分布对象技术中,有关其软件体系结构及开发方法上还有许多研究课题,此外如何通过统一的方式集成不同标准的组件也是未来值得研究的课题。分布对象技术将会向智能化、小型化和标准融合的方向发展,并将在移动计算和电子商务的应用中发挥巨大的作用。