logo资料库

软件构件技术综述.doc

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