柔情似水 发表于 2015-1-18 11:32:07

JAVA编程:几种构件模子的对照剖析仓酷云

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。


<br>
Java三种收集会见机制
----远程办法挪用机制RMI是组成Java散布对象模子的基本布局。RMI体系包含桩/框架层、远程援用层和传输层。今朝,RMI的传输层是基于TCP完成的,未来的RMI系统布局创建在IIOP协定之上,能够完成Java手艺与CORBA手艺的深层交融。使用层创建在RMI体系之上。给出了各层之间的干系。


<br>
RMI体系中各层之间的干系
----比来两年,Java又提出了企业JavaBean(EJB)的头脑,其布局完整接纳基于软件构件模子的散布对象盘算系统,如所示。


<br>
企业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进一步细化了每种准绳请求,并给出了三种软件构件手艺的对照了局。这些数据完整来自履历,其实不代表深切仔细的查询拜访了局。


<br>
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好。

山那边是海 发表于 2015-1-21 09:37:18

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

柔情似水 发表于 2015-1-25 13:56:38

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

若天明 发表于 2015-1-25 22:52:13

是一种为 Internet发展的计算机语言

蒙在股里 发表于 2015-1-25 23:11:43

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

admin 发表于 2015-2-4 08:49:46

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

海妖 发表于 2015-2-5 11:49:26

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

愤怒的大鸟 发表于 2015-2-6 17:01:05

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

冷月葬花魂 发表于 2015-2-11 05:49:55

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

精灵巫婆 发表于 2015-3-1 21:57:30

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

不帅 发表于 2015-3-11 00:04:37

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

若相依 发表于 2015-3-16 05:17:09

是一种突破用户端机器环境和CPU

灵魂腐蚀 发表于 2015-3-22 20:11:32

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

谁可相欹 发表于 2015-3-23 17:57:47

是一种使用者不需花费很多时间学习的语言

变相怪杰 发表于 2015-3-24 10:04:35

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。

老尸 发表于 2015-3-25 20:21:44

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

仓酷云 发表于 2015-4-4 03:10:13

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

莫相离 发表于 2015-4-11 06:10:45

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

因胸联盟 发表于 2015-4-15 07:55:16

Java是一种计算机编程语言,拥有跨平台、面向对java

简单生活 发表于 2015-4-26 18:10:47

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
页: [1] 2
查看完整版本: JAVA编程:几种构件模子的对照剖析仓酷云