版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件构件技术综述郝克刚西北大学计算机科学系陕西省西安市 710069一.引言我们的社会正在步入知识经济时代。知识经济的特点在于创造价值的主要源泉已不再是依赖于资源、资本和人的简单劳动,而是依赖于人的智慧和科技的创新。科技的更新对产业的发展将起决定性作用。软件产业是典型的高科技产业。那么当今软件技术有何新的动向,它对软件产业的发展有何影响,会带来怎样的机遇,我们能否抓住这一机遇把我国的软件产业发展上去?这是我国软件业界同仁最近一直关心和思考的问题。我们先从1999年2月美国总统 IT 顾问委员会的一份报告说起。这是一个非常重要而且很有影响的报告。在报告中列举了大量的事实论证 IT 技术对社会和国
2、家以及人民生活的重要作用。建议美国政府加大对IT 技术发展研究的投入。在建议重点支持的四大项目中,把软件列在首位。因为报告认为软件是信息所时代社会的最重要的基础设施,然而现实上这个基础却相当脆弱和不可靠。软件越来越普及而且越来越复杂,但缺乏开发可靠安全的各种软件的合用技术。软件的生产能力远远满足不了飞速发展的实际需求。为此,报告建议重点支持四个方面的软件技术的发展和研究。第一就是支持软件开发方法和构件技术的基础研究。什么是软件开发的构件技术,为什么把它提得这么高,它究竟对软件的开发和应用有些什么作用,构件技术的突破对软件产业的发展会带来什么影响和机遇,能否利用和抓住这个机遇发展我国年轻的软件产
3、业,正是本文要讨论的问题。二.面向对象到构件技术如果把当前软件技术的新动向归纳一下,我认为可以概括为以下三点,即媒体数字化、计算机网络化和软件构件化。所谓软件构件化,就是要让软件开发像机械制造工业一样,可以用各种标准和非标准的零件来进行组装,或者像建筑业一样,用各种建筑材料搭建成各式各样的建筑。软件的构件化和集成技术的目标是:软件可以由不同厂商提供的,用不同语言开发的,在不同硬件平台上实现的软件构件,方便地、动态地集成。这些构件要求能互操作,它们可以放在本地的计算机上,也可以分布式地放置在网上异构环境下的不同结点上。实现软件的构件化,这是软件业界多年来分奋斗的目标,可以说已经经过了几代人的努力
4、。早在六、七十年代,大型软件系统开发引起的软件危机,导致了 Yourdon 和De Marco 的结构化分析与结构化设计的软件工程方法的盛行。所谓结构化方法,其本质就是为了保证软件开发的质量、提高软件的零活性和软件生产效率,通过工程化方法,建立系统的软件开发过程,使开发的软件具有好的结构,即所谓可拼装、可裁剪的模块化结构。后来在八十年代出现了面向对象的方法。面向对象方法的基本思路是用对象来作为描写客观信息的基本单元,它包括封装在一起的对象标识、对象属性(数据和对象操作(方法、运算。与此相关的还有如下一些概念:如对象类、类的实例。对象类的继承、父类、子类、多重继承、方法的重载、限制以及接口等。关
5、于面向对象方法已有很多研究,最著名的有:Grady Booch方法,James Rumbaugh 的 OMT(对象模型技术,Ivar Jacobson 的 OOSE(面向对象的软件工程。这几种方法虽然基本思路相同,但仍有不少差异,从而为实际的软件开发和应用带来诸多不便。于是由 RATIONAL 软件公司发起,从1995年开始,先是 Booch 和Rumbaugh 合作,后来 Jacobson 也加盟,共同提出了一个统一的建模语言 UML ,得到很多软件公司的支持,逐渐成为面向对象方法的一个事实上的标准。正是由于有了面向对象技术的发展,多年来追求软件构件化的的梦想,才有可能成为现实。下面分别从
6、CORBA、DCOM和JAVA几个方面来介绍软件构件技术的基本内容。三.公共对象请求中介结构CORBA面向对象方法是软件构件技术的基础。为了真正实现软件构件化,还必须解决分布式计算和对象的互操作问题。因为按上述构件技术的目标,要求构件间能互操作,而且这些构件也允许分布式地放置在网上异构环境下的不同结点上。为了协调和制定分布式异构环境下应用软件开发的统一标准,1989年成立了一个国际组织,叫对象管理联盟(OMG。加盟此组织的单位愈来愈多,现已有750多个单位,其中包括软件的开发供应商,软件用户和软件技术的研究院所等。经过多年的努力,已制定了一系列的标准规约,称为 CORBA(公共对象请求中介结构
7、。 CORBA的核心是对象请求中介(ORB,是分布式对象借以相互操作的中介通道。另外还定义了最基本的对象服务构件和公共设施构件的规约。OMG所定义的CORBA并不规定具体的实现。实现CORBA的软件由各个厂家自行开发。现已有多种可用的产品版本发布。如上所述,CORBA的核心ORB的作用是将客户对象(Client的请求发送给目标对象(在CORBA中称为对象实现Object Implementation,并将相应的回应返回至发出请求的客户对象。ORB的关键特征是客户与目标对象之间通信的透明性。在通信过程中,ORB一般隐蔽了目标对象的以下内容:1.目标对象的位置:客户毋须了解具体目标对象所在的地址。
8、目标对象可在同一机器的相同或不同进程中,也可在网络上另一机器的进程中,。2.对象实现的方式:客户毋须了解具体目标对象是如何实现的,用何种语言写成的,也毋须了解该对象所在的操作系统和具体的硬件环境。3.对象执行的状态:当客户发送请求时,它毋须了解目标对象当前是否处于激活状态(即是否处于一个正在执行的进程中。若有必要ORB可透明地激活该对象。4.对象通信机制:客户毋须了解ORB使用何种底层通信机制来发送请求和响应回答(如TCP/IP,分享存储器,及本地方法调用等。ORB的通信透明性使得应用开发者可较少考虑低级分布式系统的程序设计问题,而更多地关心应用领域问题。ORB的各部分的作用如下图所示。OMG
9、接口定义语言IDL用于定义对象的接口。一个对象的接口指定该对象所支持的类型和操作,因而唯一定义了可用于该对象的请求形式。客户在构造请求时,必须了解对象的接口。如上所述,保持接口描述的“语言中性”对在异构环境中实现分布式应用是重要的。IDL仅为一个说明式语言,而不是一个全面的程序设计语言。因此,IDL本身并不提供诸如控制结构这样的特征,IDL也不能直接用于实现分布式应用。相反,客户和对象的实现是采用具体的程序设计语言完成的。因此,ORB所支持的特征必须能够在实现语言中访问。语言映射决定IDL 的内容如何映射为具体程序设计语言的设施。IDL编译器将具体接口定义翻译为目标语言代码。目前OMG已完成了
10、从IDL到C,C+,Java,Smalltalk,Ada95, Cobol等语言映射的标准化工作。OMG IDL编译器除了生成目标语言类型外,同时生成客户端的存根(Stub和服务端的骨架(Skeleton。存根是一个可有效创建和发送客户端请求的机制,而骨架是一个可将客户端请求传送至CORBA对象实现的机制。因为存根和骨架是直接从CORBA对象接口的OMG IDL描述中翻译而得,故存根和骨架通常是与特殊对象接口相关。通过存根和骨架发送和传递请求的方式通常称为静态调用。存根和骨架被直接嵌入客户应用和对象实现,因此,它们具有需调用的CORBA对象接口的所有静态信息。除了使用存根和骨架的静态调用方式外
11、,CORBA提供了动态调用接口DII和动态骨架接口DSI,前者支持动态客户请求调用,而后者支持将请求动态指派给对象。客户程序可通过使用DII对任何对象进行请求调用,而毋须持有对象的编译时信息。CORBA对象适配器(Adapter的作用是配合对象实现和ORB本身的连接。Adapter本身是一个对象,它使被调用对象的接口适配于调用对象所期望的接口。CORBA除了对核心ORB作了规定以外,还定义了对象服务和公共设施构件的规约。对象服务包括最基本和最常用的服务内容,如名字服务、事件服务等,而公共设施则包括范围更广的、建立在对象服务之上的服务,如用户界面、信息管理、系统管理和任务管理等。CORBA 对应
12、用系统未作具体规定,它可以建立在对象服务和公共设施之上,利用它们中的构件。四.构件对象模型COM和构件对象模型DCOM。微软公司是也较早采用构件技术的公司之一。1993年,微软公司提出了构件对象模型(COM。此技术已相当成熟,微软公司为Windows®和 Windows NT 开发的应用软件几乎都是基于COM的。早期的软件多在单机上运行,后来对COM 进行了扩展,允许访问其它机器上的对象。1996年提出了构件对象模型(DCOM,使得采用构件技术构建网上的应用系统成为可能。除了COM、DCOM以外,微软还为开发分布式企业级应用软件提出了很多在Windows NT®服务器上的服
13、务,如微软作业服务(MTS、微软因特网信息服务(IIS、控件服务页面(ASP、微软消息查询服务(MSMQ等。有人曾将DCOM和CORBA从程序设计结构、远程调用结构以及通信协议结构三个层次上进行了比较。虽然在基础原理和结构上有很多相近之处,但是在具体作法上还是有很大差异。也有人对DCOM和CORBA各自的优势和不足进行过评论。认为DCOM有较强的工具和系统的支持,另外由于有些功能已嵌入在操作系统中(特别是Windows NT®,所以在降低化费上有优势。但是DCOM过多地依赖微软的操作系统平台,因而对异构网络环境,在兼容性方面会有不少问题。而正相反, CORBA在支持多种平台和多种语言
14、上具有优势,而且有比较广泛的独立开发商和用户及业界的支持。此外,CORBA所采用的对象概念以及强调网络透明等在技术上也比较成熟。当然,CORBA的不足之处是不如DCOM的支持工具那么多,另外在不同的开发商提供的CORBA实现之间的兼容性方面还有不少问题。但事物在不断发展,DCOM和CORBA都会设法在改进自己的不足。五.JAVA 和JAVA2 环境平台企业版J2EEJAVA语言由于巧妙地采用了虚拟机的机制,使得编译后产生的泛代码程序可以在各种平台上执行,从而作到了程序执行与平台无关。加之用JAVA编的Applet可以方便地用浏览器下载运行,JAVA语言普及和发展得很快。JAVA采用了构件技术,
15、发展了JAVA构件(即JAVA Beans和企业级JAVA构件(即EJB.为了用构件技术组成实际的应用系统,最近又推出了 J2EE( JAVA2 环境平台企业版Version 1.2. 1999,和JAVA程序设计模型。 按照此模型组成的应用系统至少分为三层。第一层是客户层,可以采用一般的浏览器或特制的客户软件。从服务器下载的Applet可以带有JAVA Beans 一起在客户端执行。为了避免由于不同厂商提供的浏览器中虚拟机的差异,还专门提供了虚拟机软插件,作到程序的语义一致。为了保证安全,客户分防火墙内外,外客户只能从服务器进入,而内客户允许使用RMI、IIOP等直接访问EJB.第二层是中间
16、层,即业务逻辑层。其中有两个包容器,一个是Web包容器,另一个是EJB包容器。Servlets JAVA服务器页面(JSP技术使人机界面的开发变得非常容易,而Servlets则方便为Applet等客户程序提供服务。简单的业务逻辑由开发人员编写业务Beans,而复杂的业务逻辑则由EJB完成。第三层是企业的信息系统。第二层的构件通过JDBC(访问关系数据库,JNDI (Java名子目录接口,JMS(Java消息服务,JavaMail(发送和接收信件,Java IDL(与CORBA构件接口访问第三层企业的信息系统。为了保护过去的投入,第三层可以与传统的应用软件、ERP 等建立联系。六.企业级业务软件
17、EBS采用构件技术EBS 是 Enterprise Business Software 的缩写,即企业级业务软件。EBS 采用构件和集成新技术可以为企业软件用户带来如下一些好处:构件技术可以使企业方便地、快速地、平滑地增加新的功能。新的构件同原有的构件可以集成在一起可靠地工作。系统解决方案可以特别灵活地、动态地重新配置,将一个构件替换为升级的新版本不必考虑对其它构件的适配。特别对那些需要灵活地,快速地对部分系统而不是整个系统升级换代的企业带来巨大的好处。采用构件技术允许对给定的任务采用不同的软件开发供货商提供的软件。企业在实现它的解决方案时具有选择产品的充分自由。企业可以容易地、灵活地将为企业
18、特别设计的构件与整个系统集成使用,从而实现企业的特殊需求。基于构件的解决方案能够为进一步方便地扩展系统功能提供方便,因为软件构件技术综述 郝克刚 西北大学计算机科学系 定制的构件的接口也可以由用户特殊构件的使用。 企业业务软件开发商采用构件和集成新技术,还基于以下的考虑: 1、软件产业面临的最大的问题是软件维护问题而不是软件开发问题。 凡是以 EBS 为主营业务的软件产业都要考虑长远一些,因为这类软件有一 个比较长的生命周期,投资保护是一个重要方面。软件开发所依赖的技术和所实 现的软件的功能作为一个连续的过程在不断发展, 公司要在这整个过程中获取利 润,这就导致了软件维护的问题。在 IT 基础
19、设施不断更新的条件下一个软件公 司如何能保持它的技术更新和功能增强的优势?在软件要适应用户企业特殊功 能时,此问题特别突出。 2、 IT 技术变更的速度远高于企业的业务变更的速度。 软件技术更新周期愈来愈短对EBS软件影响太大。如客户服务器技术、 INTENET、B/S 结构、JAVA、以及面向对象的通信机制CORBA等新技术层出不穷。 从理论上讲这种变更还会继续下去。 与此有明显对照的是业务过程和基本原则本 身却改变相对甚少。采用构件技术后,技术的更新是以构件的形式实现的,而不 必影响企业的业务过程。 3、“职能分离”的设计原则 由于业务的改变远比技术的改变慢得多,因而在企业业务软件中将不同
20、任 务的软件按职能分离是一个非常适用的方法。如果系统中某部分进行了技术更 新,只需将此部分的构件替换成新的构件无需改变另外的构件。但软件构件能够 组合的前提是它们必须基于共同的设计。软件构件不应看作是孤立的单个的构 件,还要考虑构件间交互的方式。软件构件必须用大家都能理解的语言来交谈, 以保证能成功地协同工作。 4、综合速度和灵活性两个关键因素 过去,企业基本上采有两种可能的方式获得和使用软件来支持企业的业务 过程。一种是购买完整的标准的应用软件包,一种是由企业内部的 IT 部门来开 发和维护应用软件以满足企业的需求。第一种方式有两个优点,一是购买软件实 现相当快,二是不需内部开发部门的花费。但是,一个企业,只有自己开发软件 或者将适合它的特殊需求的软件产品进行组合才能满足企业的 IT 需求。因而现 代 EBS 领域的任务是将上述两种方式综合起来。既要软件包解决方案的速度, 又要企业内部剪裁系统的开放性和灵活性。这就是建立 EBS 构件的基本思想。 世界上所有大的企业业务软件(EB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论