|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)软件构件模子是关于开辟可重用软件构件和构件之间互相通讯的一组尺度的形貌。经由过程重用已有的软构件,利用构件对象模子的软件开辟者能够像搭积木一样疾速机关使用程序。如许不但能够节俭工夫和经费,进步事情效力,并且能够发生加倍标准、加倍牢靠的使用软件。
----软件构件应当具有以下几个特性:
----·自形貌构件必需可以辨认其属性、存取办法和事务,这些信息可使开辟情况将第三方软件构件无缝地分离起来;
----·可定制供应一个典范的图形体例情况,软件构件的属性只能经由过程把持面板来设置;
----·可集成构件必需能够被编程言语间接把持。构件也能够和剧本言语毗连大概与从代码级会见构件的情况毗连,这个特征使得软件构件能够在非可视化开辟项目中利用;
----·毗连机制构件必需能发生事务大概具有让程序员从语义上完成互相毗连的其他机制。这意味着程序员能够很简单地向按钮增加代码,使点中按钮就能够影响其他构件的举措。
----构件模子是为开辟者界说软件构件而创建的系统布局和API集,使开辟者可经由过程软件构件的静态组合来创建使用体系。构件模子由构件与容器两种次要成分组成。构件是具有可重用特征的基础软件部件。容器用于寄存和布置构件,完成构件间的交互。容器也能够作为另外一个容器的构件利用。
----本文对CORBA、DCOM和Java等三种典范的构件模子做出了对照剖析。
CORBA
----CORBA构件模子的底层布局为ORB。一个CORBA构件接纳IDL举行形貌。CORBA供应了IDL到C、C++、Java、COBOL等言语的映照机制--IDL编译器。IDL编译器能够天生Server方的Skelton和Client方的Stub代码,经由过程分离与客户端和服务端程序的联编,便可失掉响应的Server和Client程序。
----CORBA同时供应了一系列的大众服务标准--COSS,个中包含名字服务、永世对象服务、性命周期服务、事件处置服务、对象事务服务和平安服务等,它们相称于一类用于企业级盘算的大众构件。别的,CORBA还针对电信、石油等典范的使用行业供应了一系列的大众举措措施。
----CORBA是一种言语中性的软件构件模子,能够超过分歧的收集、分歧的呆板和分歧的操纵体系,完成散布对象之间的互操纵。
DCOM
----DCOM是Microsoft与其他业界厂商互助提出的一种散布构件对象模子(DistributedComponentObjectModel),其开展履历了一个相称崎岖的历程。DCOM劈头于静态数据互换(DDE)手艺,经由过程剪切/粘贴(Cut/Paste)完成两个使用程序之间共享数据的静态互换。对象毗连与嵌进OLE就是从DDE引申而来的。
----随后,Microsoft引进了构件对象模子COM,构成了COM对象之间完成互操纵的二进制尺度。COM划定了对象模子和编程请求,使COM对象能够与其他对象互相操纵。这些对象能够用分歧的言语完成,其布局也能够分歧。基于COM,微软进一步将OLE手艺开展到OLE2。个中,COM完成了OLE对象之间的底层通讯事情,其感化相似于CORBA/ORB。不外此时的COM只能感化在单机Wintel平台上。在OLE2中,也呈现了我们明天熟知的拖-放手艺和OLE主动化。
----同时,微软在VB中引进了能够嵌进任何可视构件的通用模子VBX。VBX的次要范围在于它并非一个开放的布局,也没无为第三方软件开辟商供应VBX集成的尺度。最初,微软将上述头脑会合在一同,以COM作为构件通讯框架。VBX也开展为OLE控件OCX的情势。DCOM是COM在散布盘算方面的天然持续,它为散布在收集分歧节点的两个COM构件供应了互操纵的基本布局,而一切以OLE为标记的手艺现在也已挂上了ActiveX标记。
----从CORBA的概念来看,我们能够大略地说,ActiveX控件与DCOM的干系相称于CORBA构件与ORB的干系。固然,依照微软一向的产物开辟逻辑,奇妙的头脑都退到了幕后,而供应给开辟者的是一个以Wizard体例天生各类使用的可视化开辟情况。在大众服务方面,微软提出了本人的事件服务器MTS(MicrosoftTransactionServer)和动静行列服务器MSMQ(MicrosoftMessageQueueServer)。前者与CORBA对象事件服务方针相似,后者则是为了包管使用之间举行牢靠的动静通信和办理。别的,微软在收集平安方面也有一整套有用的办理计划。
Java
----依照Sun和Javasoft对Java的界定,Java是一个使用程序开辟平台,它依照高功能、可移植、可注释的准绳,供应面向对象的编程言语和运转情况。Java盘算的实质就是使用散布在收集中的各种对象配合完成响应的义务。比方JavaApplet可按用户的需求从服务器上静态地下载到客户机的扫瞄器上,完成HTML页面的静态变更。
----Java关于软件构件的概念与CORBA中的构件概念存在必定的区分。在CORBA中,CORBA/ORB相称于一根软总线,构件能够即插即用。也就是说,从CORBA的概念看来,一切构件的位置相称,完整是一种平行的干系。而在Java中,软件构件是可以举行可视化操纵的可重用软件,它满意必定的特性请求,并能够依据必要举行定制和组装。
----Java的软件构件称为JavaBean,大概简称Bean。依照Javasoft给出的界说,Bean是可以在机关工具中举行可视化操纵的可重用软件。JavaBean的组件模子包括组件和容器两个基础要素,这一头脑在ActiveX/DCOM手艺中一样存在。作为一种典范的组件模子,JavaBean具有属性、办法、事务、自我反省、定制和永世性等6个方面的特性。个中前3种特性(属性、办法、事务)是面向对象的组件必需满意的基础请求,属性和办法包管Bean成为一个对象,而事务能够形貌组件之间的互相感化和组件与容器之间互相感乐趣的事变。经由过程事务的天生、传布和处置,构件互相之间联系关系在一同,配合完成庞大的义务。后三种特性(自我反省、定制和永世性)次要偏重于对JavaBeans组件性子的描写。内省用于表露与发明构件接口。利用内省机制,可使构件的利用者懂得到构件的属性、办法和事务。因为一个构件一般是具有必定性子和举动的对象的笼统,它常常有很年夜的通用性。为了在一个详细的使用情况中利用构件,必需对构件举行定制。JavaBean的定制一般在一个可视化天生工具中举行,经由过程构件的内省机制,发明构件的属性、办法和事务,然后使用天生工具供应的属性编纂器完成定制。永世性是将构件的形态保留在永世存储器中并可以分歧恢复的机制。Java经由过程序列化(Serialize)完成定制构件的永世性存储,经由过程反序列化能够完成构件形态的恢复。
----JavaBean构件的当地举动是在与其容器不异的地点空间内举行的。在收集上,JavaBean构件能够以三种体例举行举动:
- JDBC使Bean构件可以会见SQL数据库。Bean能够完成给定命据库中的表操纵,完成响应的营业逻辑;
- JavaRMI(远程办法挪用)使散布在收集分歧地点上的两个构件之间完成互操纵。构件之间的挪用体例接纳典范的Client/Server盘算模子;
- JavaIDL是一个Java版的CORBA/ORB。经由过程JavaIDL能够完成一个JavaBean和一个CORBA服务之间的互操纵。基于JavaIDL的Java构件互操纵模子完整同等于CORBA的头脑,只不外详细的编程言语接纳Java,而CORBA/ORB选择了JavaIDL。
Java三种收集会见机制
----远程办法挪用机制RMI是组成Java散布对象模子的基本布局。RMI体系包含桩/框架层、远程援用层和传输层。今朝,RMI的传输层是基于TCP完成的,未来的RMI系统布局创建在IIOP协定之上,能够完成Java手艺与CORBA手艺的深层交融。使用层创建在RMI体系之上。给出了各层之间的干系。
RMI体系中各层之间的干系
----比来两年,Java又提出了企业JavaBean(EJB)的头脑,其布局完整接纳基于软件构件模子的散布对象盘算系统,如所示。
企业JavaBeans布局
----企业JavaBean各构成部分的寄义为:
- JDBC(JavaDatabaseConnectivity):基于SQL尺度Java数据库毗连,其基础功效和计划与ODBC类似;
- JavaRMI(JavaRemoteMethodInvocation):Java远程办法挪用;
- JNDI(JavaNamingandDirectoryInterface):Java名字与目次服务;
- JavaIDL:Java和COBRA之间的毗连;
- JTS(JavaTransactionService):Java事件办理服务;
- JMAPI(JavaManagementAPI):Java收集办理API;
- JMS(JavaMessageService):Java动静传送服务。
----用CORBA的概念来看,企业JavaBean中包含了散布构件的基本布局,也包含了各种大众服务构件。而且因为Java与生俱来的跨平台性和言语的分歧性,使其成为软件构件模子的一个无力的合作者。
对照剖析
----上面,我们从企业盘算的角度动身,对CORBA、DCOM和Java三种构件模子举行剖析对照。依照企业盘算的请求,构件模子的对照剖析应当根据以下准绳:
----·集成性集成性次要反应在基本平台对使用程序互操纵才能的撑持上。它请求散布在分歧呆板平台和操纵体系上、接纳分歧的言语大概开辟工具天生的各种贸易使用必需能集成在一同,组成一个一致的企业盘算框架。这一集成框架必需创建在收集的基本之上,而且具有关于遗留使用的集成才能;
----·可用性请求所接纳的软件构件手艺必需是成熟的手艺,响应的产物也必需是成熟的产物,在相当主要的企业使用中可以不乱、平安、牢靠地运转。别的,因为数据库在企业盘算中饰演侧重要脚色,软件构件手艺应能与数据库手艺严密集成;
----·可扩大性集成框架必需是可扩大的,可以和谐分歧的计划形式和完成战略,能够依据企业盘算的需求举行裁剪,并能敏捷反响市场的变更和手艺的开展趋向。经由过程包管以后使用的可重用性,最年夜水平地回护企业的投资。
----这些概念本色上反应了将软件构件手艺看做一个黑箱时赐与企业IT司理们的主要不雅感。
----表1进一步细化了每种准绳请求,并给出了三种软件构件手艺的对照了局。这些数据完整来自履历,其实不代表深切仔细的查询拜访了局。
JAVA和CORBA的互补性
----Java供应了一个观点明晰、布局松散的散布盘算模子和构件互操纵的办法,为构件使用开辟供应了相称的天真性。但因为它还处于开展时代,因而其形状很难界定。CORBA是一种集成手艺,而不是编程手艺。它供应了对各类功效模块举行构件化处置并将它们绑缚在一同的粘合剂。Java和CORBA在很年夜的水平上能够看做是互补的。为了顺应WEB使用的开展请求,很多软件厂商都急于促进CORBA和Java手艺的分离,未来的RMI大概创建在IIOP之上。CORBA不但是对象哀求代办署理ORB,也是一个十分完全的散布式对象平台。CORBA能够扩大Java在收集、言语、组件界限、操纵体系中的各类使用。其次,Java也不单单是与CORBA绑缚的言语,它仍是一个易变的对象体系,也是一个运转对象的便携式OS,并且同意CORBA对象在主机、收集盘算机和蜂窝德律风等使用上运转。Java还简化了年夜型CORBA体系中的代码分派,个中内置的多线程和渣滓搜集使编写牢靠的收集对象更加便利。别的,Java能创立可挪动对象并将它们分收回往,而接纳CORBA能够将它们毗连在一同,并与盘算情况中的数据库、遗留体系、其他言语编写的对象和使用互相集成。
----CORAB与Java的基本布局也能够很好地互补。CORBA处置收集通明性,Java处置完成通明性。CORBA供应了Java便携使用情况与对象间的毗连。由此看来CORAB/Java手艺严密分离的趋向是势不成挡的。并且两者的分离将成为ObjectWeb手艺的次要形状。
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net网页编程比java好。 |
|