大家说说 JavaBean 与EJB的区别
说说 WebService在 开发中的运用。
DCOM 与COM的区别。
JavaEE方面我都会做开发。但不太理解如何利用。
JavaBean(SSH) VS EJB
EJB Vs WebService。
JavaBean Vs COM
EJB Vs DCOM
.。比较基本的我都懂。
也可以做开发。
但本质的应用 大家谈一下。

解决方案 »

  1.   

    用户需要什么样的软件产品?这是一个多选题,但高效,健壮是肯定会被选种的。作为一名软件开发人员如何做才能满足用户的需要呢?必须要保证升级应用时不破坏与以前版本的向后兼容性。必须做到扩展系统服务时不依赖特定的操作系统。面向对象的程序设计显然是一次革命性的改变。采用面向对象的设计方法我们可以很容易的把要解决的问题事物抽象成各种类,并将内部动作封装隐藏起来,只提供一些接口。但这并没有完全解决我们的问题。昨天我在《程序员》杂志上看到,现在是后OO时代,那OO以后是什么呢?应该是面向组件吧。
    简单地说,COM是一种跨应用和语言共享二进制代码的方法。与C++不同,它提倡源代码重用。ATL便是一个很好的例证。源码级重用虽然好,但只能用于C++。它还带来了名字冲突的可能性,更不用说不断拷贝重用代码而导致工程膨胀和臃肿。
      Windows使用DLLs在二进制级共享代码。这也是Windows程序运行的关键——重用kernel32.dll, user32.dll等。但DLLs是针对C接口而写的,它们只能被C或理解C调用规范的语言使用。由编程语言来负责实现共享代码,而不是由DLLs本身。这样的话DLLs的使用受到限制。
      MFC引入了另外一种MFC扩展DLLs二进制共享机制。但它的使用仍受限制——只能在MFC程序中使用。
      COM通过定义二进制标准解决了这些问题,即COM明确指出二进制模块(DLLs和EXEs)必须被编译成与指定的结构匹配。这个标准也确切规定了在内存中如何组织COM对象。COM定义的二进制标准还必须独立于任何编程语言(如C++中的命名修饰)。一旦满足了这些条件,就可以轻松地从任何编程语言中存取这些模块。由编译器负责所产生的二进制代码与标准兼容。这样使后来的人就能更容易地使用这些二进制代码。
      在内存中,COM对象的这种标准形式在C++虚函数中偶尔用到,所以这就是为什么许多COM代码使用C++的原因。但是记住,编写模块所用的语言是无关的,因为结果二进制代码为所有语言可用。
      此外,COM不是Win32特有的。从理论上讲,它可以被移植到Unix或其它操作系统。但是我好像还从来没有在Windows以外的地方听说过COM。
      

  2.   

    Microsoft Distributed Component Object Model(DCOM)是Component Object Model(COM)的扩展,它支持不同的两台机器上的组件间的通信,而且不论它们是运行在局域网、广域网、还是Internet上。借助DCOM你的应用程序将能够任意进行空间分布。
      由于DCOM是COM这个组件技术的无缝升级,所以你能够从你现有的有关COM得知识中获益,你的以前在COM中开发的应用程序、组件、工具都可以移入分布式的环境中。DCOM将为你屏蔽底层网络协议的细节,你只需要集中精力于你的应用。
      例如,你可以为一个网站创建应用页面,其中包括了一段能够在网络中另一台更加专业的服务器电脑上处理(在将它们发送到发出请求的用户之前)的脚本或者程序。使用DCOM接口,网络服务器站点程序(现在以客户端对象方式发出动作)就能够将一个远程程序调用(RPC)发送到一个专门的服务器对象,它可以通过必要的处理,并给站点返回一个结果。结果将发送到网页浏览器上。 
      DCOM还可以工作在位于企业内部或者除了公共因特网之外的其他网络中。它使用TC/IP和超文本传输协议。DCOM是作为Windows操作系统中的一部分集成的。DCOM将很快在所有的主流UNIX平台和IBM的大型服务器产品中出现。DCOM替代了OLE远程自动控制。 
      在提供一系列分布式范围方面,DCOM通常与通用对象请求代理体系结构(CORBA)相提并论。DCOM是微软给程序和数据对象传输的网络范围的环境。CORBA则是在对象管理组织(OMG)的帮助下,由信息技术行业的其他商家提供赞助的。 
      DCOM概述 
      Microsoft的分布式COM(DCOM)扩展了组件对象模型技术(COM),使其能够支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。使用DCOM,你的应用程序就可以在位置上达到分布性,从而满足你的客户和应用的需求。
      因为DCOM是世界上领先的组件技术COM的无缝扩展,所以你可以将你现在对基于COM的应用、组件、工具以及知识转移到标准化的分布式计算领域中来。当你在做分布式计算时,DCOM处理网络协议的低层次的细节问题,从而使你能够集中精力解决用户所要求的问题。
      

  3.   

    楼上的楼上帅气,呵呵;至于技术直接关系问题,14楼说的很透彻,呵呵;
    JavaBean 与EJB的区别 ,这个简单,JavaBean你可以理解为对象,EJB可以作为组件,组件可以有多个对象,呵呵;
    WebService,运用的话,一般用在外网,就是公司对外的业务,如果是公司内部业务最好使用EJB,呵呵;JavaBean(SSH) VS EJB ,其实ssh中spring曾经就是要取代EJB的存在,当然他并没有完全取代的能力,但是EJB2.0本身的失败很明显,所以3.0已经
    是很不错的存在了,无论哪个方面,ssh用于一般结构的开发还是可以的,但是如果是相当大的项目,比如说集群的开发,模块开发,以及一些分布式上完全和EJB3.0没有办法相比,3.0仅仅事务的种类就有三种,而且我还有特别为集群开发的事务等等;
    EJB3.0集成的JPA很不错,而且可以直接移植到hibernate中,这样看出,其实技术之间他们本身也是想互补作用的;EJB Vs WebService:安全上个人认为EJB要强,当然这是个人意见,web服务是无视语言的,这个EJB是没有办法匹敌的;Web服务还可以暴露对外接口,
    EJB却是需要已知的条件才能调用,适用于系统内部的一个组件作用,相当于一个零件;对于c++没有什么研究,所以其他的没有办法帮到了;楼上说的很锐利的说,想起以前一次复试的时候,那个项目经理让改一个功能,让说说思路,然后他问有没有办法,不修改任何类,配置文件,不增加任何类,相当于不允许让你动任何的东西去更改一个功能,当时想了很久,一直思路就在代码上,代码扩展到模式运用,各种各样的想法最后都被PASS了,最后他说,无论任何修改都是下乘,他说是去修改底层的表关系,当时摔倒了;所以说不同的公司注重不同的技术,你会的未必是他需要,他需要的却是你一定要会的,包括思想,呵呵
      

  4.   

    SSH、Ant、IBatis、jsf、seam、portal、设计模式、 
    ZK、DWR、ajax、CSS 等技术交流 
    QQ高级群:62318889 
      

  5.   

    呵呵~还没结贴呢?再来大话一下:其它的我不懂,关于JavaBean和EJB再罗嗦一句。EJB=Enterprise JavaBean。所以,JavaBean和EJB的区别就在于EJB多了一个E。E是企业的意思,所以,EJB专用于企业级开发。简单的说,企业需要什么?企业需要的是高强度,高性能,高安全,高可靠性的软件。所以,EJB就是一个支持高强度,高性能,高安全,高可靠性的JavaBean。这就是EJB和JavaBean的区别。太抽象?那就具体点:EJB可以分布式,JavaBean不可以;EJB可以持久化,JavaBean不可以。而分布式和持久化都是许多企业级应用中的基本要求,它们能保证软件的高强度,高性能,高可靠性。
      

  6.   

    LZ,真菜,你难道不知道 MS的COM++技术,很古老,很过时吗?只支持Windows平台吗?现在有几个企业不用Linux....,不支持 Linux,要分布式做什么实在无语~~~而且COM++技术性能实在不敢恭维,因为它的垃圾回收机制,很消耗资源~~~ 
      

  7.   

    简单地说,COM是一种跨应用和语言共享二进制代码的方法。与C++不同,它提倡源代码重用。ATL便是一个很好的例证。源码级重用虽然好,但只能用于C++。它还带来了名字冲突的可能性,更不用说不断拷贝重用代码而导致工程膨胀和臃肿。 
      Windows使用DLLs在二进制级共享代码。这也是Windows程序运行的关键——重用kernel32.dll, user32.dll等。但DLLs是针对C接口而写的,它们只能被C或理解C调用规范的语言使用。由编程语言来负责实现共享代码,而不是由DLLs本身。这样的话DLLs的使用受到限制。 
      MFC引入了另外一种MFC扩展DLLs二进制共享机制。但它的使用仍受限制——只能在MFC程序中使用。 
      

  8.   

    大家说说 JavaBean 与EJB的区别
    JavaBean在一般情况下指的是实体类,在大部分情况下和POJO是同义词,基本构成就是一些字段和与之对应的
    setter、getter方法,如果一个JavaBean需要在不同的JVM的进程中进行传递,还需要实现Serializable接口;
    EJB = Enterprise Java Bean,它和JavaBean有本质的区别,最好不要将他们混淆起来,就像不要将Java和
    Javascript混淆起来一样。EJB有3中类型:Session, Entity和Message-driven。EJB2.x使用起来很复杂,
    这些缺点在EJB3.0已经不存在了。http://blog.csdn.net/pathuang68/archive/2009/04/19/4091645.aspx这里有怎样开发EJB的详细教程,说到JavaBean和EJB的区别,我们可以这么说,他们几乎没有什么是相同的,如果非要说有什么区别的话,那就是:
    1. JavaBean的使用可以不需要容器,EJB的运行一般需要EJB容器(即应用服务器,如JBoss/Weblogic/Websphere...等等)
    2. EJB可以使用JavaBean,尤其是Entity EJB的时候,但几乎没有看到JavaBean可以使用EJB的。
    说说 WebService在 开发中的运用。
    1. WebService由于采用http协议,而且使用和web服务相同的端口(如80),因此它可以不受防火墙的限制
    2. WebService由于采用了XML做传输载体,因此它对所有的编程语言来说都是中性的,也就是说,不同的编程语言可以通过WebService进行通讯
    3. 也正因为WebService采用XML做传输载体,由于XML中存在很多标记(就像HTML中的<html>之类的东西),因此通信效率相对比较低。
    4. 以前Webservice的通信,在网络上传输的时候不是很安全,现在这些都已经解决,如MS的WSE,当然也可以自己写代码来保证安全。
    5. Webservice出现之初,由于采用XML进行传输,因此传输二进制文件如图片就存在问题,解决办法是首先将图片文件进行诸如Base64之类的编码,传输到接收端后,再有接收端进行反编码,从而得到二进制文件。
    DCOM 与COM的区别
    1. COM不支持分布式通讯,而DCOM(Distributed COM)支持
    2. COM的运行不需要容器,而DCOM需要,如MTS
    3. COM可以通过工具转换成DCOM
    4. COM和DCOM有点过时,但目前仍有很多应用在使用他们
    JavaEE方面我都会做开发。但不太理解如何利用。 
    JavaBean(SSH) VS EJB
    这个问题我觉得改成SSH vs. EJB可能更合适一点。SSH = Spring + Struts + Hibernate,他们组合起来可以实现和EJB类似的功能。但一般情况下SSH应用与小型项目,EJB通常用于较正式的、大型的项目。比如想象中国移动这样的公司可能会用Weblogic或者Webshpere,即使用EJB,而不会采用SSH,其中一个很重要的原因是SSH都是开源框架,没有专门的技术服务支持,当然还有一些其他原因。
    EJB Vs WebService。
    1. 他们的通信方式不同。EJB采用的是IIOP的机制,Webservice用的就是http
    2. EJB仅限于Java应用之间的通信,Webservice的通信可以跨语言
    3. EJB通信的效率要比Webservice要高
    4. EJB也可以部署成Webservice
    JavaBean Vs COM
    两者之间没有太大的可比性。COM的原理是非常复杂的(如果感兴趣,可以去研究一下MSDN相关技术文档),JavaBean如前面所说是非常简单的。EJB Vs DCOM
    这两个东西的确比较类似,它们运行都需要容器EJB需要诸如Weblogic,Webshpere以及JBoss这样的EJB容器,DCOM的容器则是MTS,他们都可以进行分布式计算。不过DCOM目前已经逐渐被COM+代替,不过而开发和部署人员来说DCOM和COM+的过渡是相当平滑的。DCOM/COM+是Microsoft的技术,EJB是SUN的技术,EJB被支持的基础更广泛一些,著名的厂家如IBM,Oracle等等如支持EJB,这主要是因为EJB得益于Java是开源的缘故。楼主兄弟这个题目很大,我只能就自己的经验谈谈自己的一些浅见,难免错漏,望各位硕学大家指正,以期共同进步。
      

  9.   

    JavaBean在一般情况下指的是实体类,在大部分情况下和POJO是同义词,基本构成就是一些字段和与之对应的 
    后面的不知道了
      

  10.   

    27楼讲的很好啊!长见识了..我还在SSH级别滚爬...
      

  11.   

    EJB DCOM 我的了解呢 其实很简单
    为了 进行 几台 运行服务程序的服务器 聚族
    用很多相对廉价的 中小型机(甚至微机) 跑一个服务程序
    服务很多 用户 而不是一台极贵的大型机
    所以 SSH和EJB 应用场合是不同的 当年EJB2。x很难用
    有人说要被SSH 淘汰 其实 也是不太可能的
    当然 也可EJB 取代SH 为ES 也这么用
      

  12.   

    Microsoft Distributed Component Object Model(DCOM)是Component Object Model(COM)的扩展,它支持不同的两台机器上的组件间的通信,而且不论它们是运行在局域网、广域网、还是Internet上。借助DCOM你的应用程序将能够任意进行空间分布。 
      由于DCOM是COM这个组件技术的无缝升级,所以你能够从你现有的有关COM得知识中获益,你的以前在COM中开发的应用程序、组件、工具都可以移入分布式的环境中。DCOM将为你屏蔽底层网络协议的细节,你只需要集中精力于你的应用。 
      例如,你可以为一个网站创建应用页面,其中包括了一段能够在网络中另一台更加专业的服务器电脑上处理(在将它们发送到发出请求的用户之前)的脚本或者程序。使用DCOM接口,网络服务器站点程序(现在以客户端对象方式发出动作)就能够将一个远程程序调用(RPC)发送到一个专门的服务器对象,它可以通过必要的处理,并给站点返回一个结果。结果将发送到网页浏览器上。  
      DCOM还可以工作在位于企业内部或者除了公共因特网之外的其他网络中。它使用TC/IP和超文本传输协议。DCOM是作为Windows操作系统中的一部分集成的。DCOM将很快在所有的主流UNIX平台和IBM的大型服务器产品中出现。DCOM替代了OLE远程自动控制。  
      在提供一系列分布式范围方面,DCOM通常与通用对象请求代理体系结构(CORBA)相提并论。DCOM是微软给程序和数据对象传输的网络范围的环境。CORBA则是在对象管理组织(OMG)的帮助下,由信息技术行业的其他商家提供赞助的。
      

  13.   

    还没使用过的顶。  学习ing
      

  14.   

    这话题很不错!我虽然是学习.net的,求职时候个人简历只写.net,现在开始学校java,希望能得到更多的支持!