`
javasee
  • 浏览: 960806 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

构件技术简介(转自http://www.sstc.org.cn)

阅读更多
软件系统的复杂性不断增长、软件人员的频繁流动和软件行业的激烈竞争迫使软件企业提高软件质量、积累和固化知识财富,并尽可能地缩短软件产品的开发周期。于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的"基于构件的软件开发"(CBSD,Component Based Sortware Development)应运而生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。为此国内外对于这一技术的研究正在不断深入,同时大型的软件公司(例如sun,microsoft)及软件组织机构(OMG)都推出了支持构件技术的软件平台。

构件技术的概念及发展

Merriam-Webster Collegiate字典里,构件一词于1645在英语中开始使用。 构件一词的语源问题:拉丁文的构件一词是componens,表示用于组合在一起的部分。

软件构件是指应用系统同中可以明确辨识的构成成分,包括源代码、需求、系统和软件的需求规约、系统和软件的构架、文档、测试计划、测试案例和数据以及其他开发活动有用的信息。基于构件的开发来自于利用构件生产应用软件的概念。开发者在设计和详细描述阶段,使用内部开发的构件和公开市场的构件来为他们的应用软件提供尽可能多的功能。然后,开发者编写其它的构件来粘联代码,把构件一一连接。他们可以把新写的构件放进公司的知识库,以至于其它人就可以使用这些构件的功能。这种做法有效提高了软件重用的效率并降低了开发成本。打个比方,如果有一个开发人员创建了一个构件能够让一个客户进入公司的数据库。那么,其他程序员就不必重新编写这个功能,而是从公司的知识库提取这个用户构件,然后直接放入程序使用其功能。

当前的三种构件标准规范

当前主流构件标准规范包括OMGCORBASunJ2EEMicrosoft DNA 2000

1. OMGCORBA

CORBA分布计算技术是OMG组织基于众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范。

CORBA分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的"软总线";在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。目前,CORBA兼容的分布计算产品层出不穷,其中有中间件厂商的ORB产品,BEAM3,IBM Component Broker,有分布对象厂商推出的产品,IONAObixOOCObacus.

CORBA CCM(CORBA Component Model)技术是在支持POACORBA规范(版本2.3以后)基础上结合EJB当前规范的基础上发展起来的。CORBA构件模型是OMG组织制定的一个用于开发和配置分布式应用的服务器端构件模型规范,它主要包括如下三项内容

(1) 抽象构件模型,用以描述服务器端构件结构及构件间互操作的结构

(2) 构件容器结构,用以提供通用的构件运行和管理环境,并支持对安全、事务、持久状态等系统服务的集成

(3) 构件的配置和打包规范,CCM使用打包技术来管理构件的二进制、多语言版本的可执行代码和配置信息,并制定了构件包的具体内容和基于XML的文档内容标准。

总之,CORBA的特点是大而全,互操作性和开放性非常好。CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢,COBRA规范从1.0升级到2.0所花的时间非常短,而再往上的版本的发布就相对十分缓慢了。在具体的应用中使用不是很多。

2. Sun的J2EE

为了推动基于Java的服务器端应用开发,Sun于是在1999年底推出了Java2技术及相关的J2EE规范,J2EE的目标是:提供平台无关的、可移植的、支持并发访问和安全的,完全基于Java的开发服务器端构件的标准。

在J2EE中,Sun给出了完整的基于Java语言开发面向企业分布应用规范,其中,在分布式互操作协议上,J2EE同时支持RMI和IIOP,而在服务器端分布式应用的构造形式,则包括了Java Servlet、JSP(Java Server Page)、EJB等多种形式,以支持不同的业务需求,而且Java应用程序具有"Write once,run anywhere"的特性,使得J2EE技术在发布计算领域得到了快速发展。 J2EE简化了构件可伸缩的、其于构件服务器端应用的复杂度,虽然DNA 2000也一样,但最大的区别是DNA 2000是一个产品,J2EE是一个规范,不同的厂家可以实现自己的符合J2EE规范的产品,J2EE规范,是众多厂家参与制定的,它不为Sun所独有,而且其支持跨平台的开发,目前许多大的分布计算平台厂商都公开支持与J2EE兼容技术。 EJB是Sun推出的基于Java的服务器端构件规范J2EE的一部分,自从J2EE推出之后,得到了广泛的发展,已经成为应用服务器端的标准技术。Sun EJB技术是在Java Bean本地构件基础上,发展的面向服务器端分布应用构件技术。它基于Java语言,提供了基于Java二进制字节代码的重用方式。EJB给出了系统的服务器端分布构件规范,这包括了构件、构件容器的接口规范以及构件打包、构件配置等的标准规范内容。EJB技术的推出,使得用Java基于构件方法开发服务器端分布式应用成为可能。从企业应用多层结构的角度,EJB是业务逻辑层的中间件技术,与JavaBeans不同,它提供了事务处理的能力,自从三层结构提出以后,中间层,也就是业务逻辑层,是处理事务的核心,从数据存储层分离,取代了存储层的大部分地位。从分布式计算的角度,EJB像CORBA一样,提供了分布式技术的基础。提供了对象之间的通讯手段。 从Internet技术应用的角度,EJB和Servlet,JSP一起成为新一代应用服务器的技术标准,EJB中的Bean可以分为会话Bean和实体Bean,前者维护会话,后者处理事务,现在Servlet负责与客户端通信,访问EJB,并把结果通过JSP产生页面传回客户端。 J2EE的优点是,服务器市场的主流还是大型机和UNIX平台,这意味着以Java开发构件,能够做到"Write once,run anywhere",开发的应用可以配置到包括Windows平台在内的任何服务器端环境中去。

3. Microsoft DNA 2000

Microsoft DNA 2000(Distributed interNet Applications)是Microsoft在推出Windows2000系列操作系统平台基础上,在扩展了分布计算模型,以及改造Back Office系列服务器端分布计算产品后发布的新的分布计算体系结构和规范。 在服务器端,DNA 2000提供了ASP、COM、Cluster等的应用支持。目前,DNA2000在技术结构上有着巨大的优越性。一方面,由于Microsoft是操作系统平台厂商,因此DNA 2000技术得到了底层操作系统平台的强大支持;另一方面,由于Microsoft的操作系统平台应用广泛,支持该系统平台的应用开发厂商数目众多,因此在实际应用中,DNA 2000得到了众多应用开发商的采用和支持。 DNA 2000融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性、异步消息队列、集群等内容。DNA使得开发可以基于Microsoft平台的服务器构件应用,其中,如数据库事务服务、异步通讯服务和安全服务等,都由底层的分布对象系统提供。 以Microsoft为首的DCOM/COM/COM+阵营,从DDE,OLE到ActiveX等,提供了中间件开发的基础,如VC,VB,Delphi等都支持DCOM,包括OLE DB在内新的数据库存取技术,随着Windows2000的发布,Microsoft的DCOM/COM/COM+技术,在DNA2000分布计算结构基础上,展现了一个全新的分布构件应用模型。首先,DCOM/COM/COM+的构件仍然采用普通的COM(Component Object Model)模型。COM最初作为Microsoft桌面系统的构件技术,主要为本地的OLE应用服务,但是随着Microsoft服务器操作系统NT和DCOM的发布,COM通过底层的远程支持使得构件技术延伸到了分布应用领域。DCOM/COM/COM+更将其扩充为面向服务器端分布应用的业务逻辑中间件。通过COM+的相关服务设施,如负载均衡、内存数据库、对象池、构件管理与配置等等,DCOM/COM/COM+将COM、DCOM、MTS的功能有机地统一在一起,形成了一个概念、功能强的构件应用体系结构。而且,DNA2000是单一厂家提供的分布对象构件模型,开发者使用的是同一厂家提供的系列开发工具,这比组合多家开发工具更有吸引力。 但是它的不足是依赖于Microsoft的操作系统平台,因而在其它开发系统平台(如Unix、Linux)上不能发挥作用。

相关性比较分析

目前,针对上述的各种分布计算平台技术,都出现了相似且具有可比性的分布式构件,即CORBA CCM(CORBA Component Model)技术、SUN的EJB(Enterprise JavaBean)技术和DNA 2000中的COM/DCOM/COM+技术。

对于以上三种技术的采用以下三种标准进行比较分析。

集成性:集成性主要反映在基础平台对应用程序互操作能力的支持上。它要求分布在不同机器平台和操作系统上、采用不同的语言或者开发工具生成的各类商业应用必须能集成在一起,构成一个统一的企业计算框架。这一集成框架必须建立在网络的基础之上,并且具备对于遗留应用的集成能力;

可用性:要求所采用的软件构件技术必须是成熟的技术,相应的产品也必须是成熟的产品,在至关重要的企业应用中能够稳定、安全、可靠地运行。另外,由于数据库在企业计算中扮演着重要角色,软件构件技术应能与数据库技术紧密集成;

可扩展性:集成框架必须是可扩展的,能够协调不同的设计模式和实现策略,可以根据企业计算的需求进行裁剪,并能迅速反应市场的变化和技术的发展趋势。通过保证当前应用的可重用性,最大程度地保护企业的投资。

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype>

虽然这三种平台因为其形成的历史背景和商业背景有所不同,各自有自己的侧重和特点,其实在它们之间也有很大的相通性和互补性。例如,EJB提供了一个概念清晰、结构紧凑的分布计算模型和构件互操作的方法,为构件应用开发提供了相当的灵活性。但由于它还处于发展初期,因此其形态很难界定。CORBA CCM是一种集成技术,而不是编程技术。它提供了对各种功能模块进行构件化处理并将它们捆绑在一起的粘合剂。EJB和CORBA在很大的程度是可以看作为互补的。这个适应WEB应用的发展要求,许多厂商多非常重视促进EJB和CORBA技术的结合,将来RMI可能建立在IIOP之上。CORBA不只是对象请求代理ORB,也是一个非常完整的分布式对象平台。CORBA可以扩展EJB在网络、语言、组件边界、操作系统中的各种应用。目前许多平台都能实现EJB构件和CORBA构件的互操作。同EJB和CORBA之间相互之间方便的互操作性相比,DCOM和CORBA之间的互操作性要相对复杂些,虽然DCOM和CORBA极其类似。DOCM的接口指针大体相当于CORBA的对象引用。为了实现CORBA和DCOM的互操作,OMG在CORBA3.0的规范中,加入了有关的CORBA和DCOM互操作的实现规范,并提供了接口方法。因为商业利益的原因,在EJB和DCOM之间基本没有提供互操作方法。

下表从集成性,可用性,可扩展性三个方面,给出了上述三种主流分布计算平台的比较结果。
分享到:
评论

相关推荐

    stc-isp-15xx-v6.92.zip

    ISP技术允许在不从电路板上移除芯片的情况下更新或修改微控制器的固件,大大简化了开发过程。 描述中的“stc-isp-15xx-v6.92”进一步确认了这是针对STC 15系列单片机的编程工具的特定版本号。STC 15系列是STC公司...

    一体化SSTC电路图

    SSTC(Solid State Tesla Coil,固态特斯拉线圈)是一种利用现代电子技术制造的特斯拉线圈,与传统的基于火花间隙或磁放大器的特斯拉线圈相比,SSTC具有更高的效率、更好的可控性和稳定性。本文将基于提供的“一体化...

    sstc-saml-tech-overview-2.0

    ### SAML 2.0 技术概览 #### 一、SAML 2.0 简介 《SAML V2.0 Technical Overview》(委员会草案02版)是一份由OASIS(组织为开放标准)安全服务技术委员会(Security Services TC)发布的文档,该文档详细介绍了...

    SAML资料 v1.1 [OASIS 200308]

    6. oasis-sstc-saml-schema-assertion-1.1.xsd和oasis-sstc-saml-schema-protocol-1.1.xsd:这两个XML Schema定义文件(XSD)分别描述了SAML断言和协议的XML结构。它们规定了SAML元素和属性的语法,使得软件可以解析...

    SSTC-Audio-Interrupter:SSTC 音频中断器

    SSTC 音频中断器 Duemilanove 的 Arduino 代码用作固态特斯拉线圈的音频中断器。 采用单声道音频源并输出与 2.5 伏(或 vref/2)的模拟偏移成正比的 ~32Khz PWM 信号。

    用SST单片机实现51仿真器

    SST是一家知名的半导体公司,以其闪存技术闻名,其单片机产品在嵌入式系统设计中也有广泛应用。 首先,我们要理解什么是51仿真器。51仿真器是一种硬件设备或软件工具,能够模拟51系列单片机的功能,允许开发者在不...

    SAML资料 V1.0 [OASIS 200205]

    (oasis-sstc-saml-conform-1.0.pdf)文档定义了产品如何符合SAML V1.0标准,包括必须满足的规范和推荐的实践。 SAML V1.0作为SSO解决方案的基础,使得企业和服务提供商能够构建安全、跨域的身份管理系统。理解并...

    山东大学信息安全实验报告

    ./client ``` - **结果显示**:展示客户端间交流的信息,包括两个客户端和三个客户端之间的交互情况。 - **Wireshark抓包分析**:使用Wireshark抓取网络包,分析聊天信息是否已被加密传输。 - 观察到...

    STC系列单片多款官方烧录软件(附使用说明)

    6. **更新与支持**:随着技术的发展,官方软件会定期更新,修复已知问题,添加新功能,保持与最新硬件的兼容性。 使用STC单片机官方烧录软件的步骤大致如下: 1. **准备环境**:首先确保电脑操作系统与软件兼容,...

    特斯拉线圈的制作

    虽然按照本文设计的是一个"标准"特斯拉线圈,制作者不必花很多精力和时间在它的原理 和计算上面,但是出于对特斯拉的尊敬和方便制作者制作其它规格的特斯拉线圈,还是大致 了解一下这里面的原理和计算方法比较好....

    HDDErase和HDDErase的使用教程,SSD性能恢复

    HDDErase是由固态存储技术协会(SSTC)开发的免费软件,它设计用于执行ATA安全擦除命令,这种命令直接作用于硬盘控制器,以确保所有数据被彻底删除,不留任何恢复的可能性。这与传统的数据删除方法不同,后者只是...

    垫片材料选择指南

    - **ZW#6600**(Frenzelit novaphit® SSTC XT):适用于温度范围-200°C至550°C之间的工作环境,最大压力为250bar。 - **ZW#3600-N/F/T**:适用于温度范围-200°C至450°C之间的工作环境,最大压力为150bar。 ###...

    基于单片机的智能窗户控制系统的设计与实现 (2).pdf

    【基于单片机的智能窗户控制系统】是一种将物联网技术与自动化控制技术相结合的创新家居解决方案。该系统设计的核心是利用单片机技术,通过集成多种传感器(如湿敏传感器、PM2.5传感器和红外传感器)来监测室外环境...

    行业文档-设计装置-方钢管混凝土柱与钢筋混凝土楼盖连接的节点及制作方法.zip

    方钢管混凝土(Square Steel Tubular Concrete,SSTC)柱因其良好的承载力、抗震性能和施工便捷性,被广泛应用于现代建筑。本文将深入探讨这一关键节点的设计原则、构造细节和施工步骤。 首先,设计目标是确保连接...

    基于多优先级稳态优化的双层结构预测控制算法及软件实现

    研究包含稳态目标计算(Steady-state target calculation,SSTC)层和动态控制层的双层结构预测控制(Model predictive control,MPC)及其实现方法.我们将已有的辨识、优化和控制方案适当地组合并软件化.通过在多优先级...

Global site tag (gtag.js) - Google Analytics