to jacklondon(jacklondon) 1.我不知道你说的使用EJB 的理由之一是指什么,我想可能它的分布性,或者服务器的负衡均载方面吧?这和你说的C/S结构的软件分发完全不同啊2.我对COM/ActiveX不是很了解,我说的指是一般情况,我并没有说COM/ActiveX 不能封装业务逻辑。其中的区别只能自己去慢慢体会,请你不要走极端。我只想说一个事物能够存在发展,那么必有它存在的价值,发展的理由。3.我想你是开发应用程序的吧,你说这些东西的确很少需要考虑平台问题,他要考虑的是适应大多数用户,你可以选择让他适用于大多数用户。我想你要知道一点,EJB一般都用B/S上面,他的用户是企业,集体,并不是普通的用户,是他选择你。但是对一个B/S结构的软件(如门户,电子商务,电子政务),出于安全(不用我说Windows的安全性了吧),价格等因素客户会选用不同的操作系统(一般选用Linux或Unix),难道因为用户的操作系统不同而为每个操作系统开发一套? 我们就有一个用户买的是Sun的小型机它送Sorlais的操作系统,所以他绝对不会愿意在花钱去买其他的操作系统,这是你怎么办呢?不做还是重新开发一套?至于什么开发工具好,我不想争论,因为我认为每种工具都有它的优缺点,绝对不是用销量就能下断言的。
to jamezj(我想我是海) 1. 每一个 EJB 书前几页都会有这样的内容:为什么用 EJB, 什么时候用 EJB。然后它们又都把C/S结构的软件分发不方便作为使用 EJB 的理由,因为 EJB 不存在这种不方便。 我的意思是这种理由根本不存在。 3。据我所知,用 ASP 的大用户多的是,像 HP, 西门子,他们的公司内部用户,外部用户也不少。为什么我们不能用? 至于Sun的小型机,我想用 PC server 的远比Sun的小型机 server 的用户多。从各种统计资料就可以知道。如果你的软件只是针对Sun的小型机用户,那 ASP 当然用不成了。
我想HP, 西门子之类不算小型应用吧?我现在所在的公司也是前500强的,几乎所有的 server 都是 windows 2000 server, NT4 server 也不少。“安全性要求高的用户有用PC Server的吗”这话说得太绝对了吧?在500强公司中,看好java 的不少,但是现在用java 的很少,出去 IBM 等极端反 microsoft 的公司,用 asp 的不少。 如果是国内,国内公司采购的回扣问题让他们只买贵东西(回扣多),再说了,还有国内大公司在网上说 netware 多么多么先进的,这种问题不好说。 至于“提高开发效率,商务逻辑可移植,高度可定制,支持高度可收缩性”,我怎么看都像 ASP3高级编程里面的话。这是套话,官方语言。
小弟也是刚刚接触,大家共同讨论。
有三种吧!
例如以weblogic为例,我要调用b机上的ejb那么
String url = "t3://b的ip:7001";
Properties properties = new Properties();
.......
properties.put(Context.PROVIDER_URL, url);
Context context=new InitialContext(properties);
Object ref = ctx.lookup("你要调用ejb的jndi");
........
EJB 搞这么复杂有什么好处?
至于组件可重用特性,Java Bean 可以重用, java class 可以重用, java functions 也可以在多个模块中重用,为什么一定要用 EJB ??
这话说得就像 EJB 是垃圾一样,还是不能理解
主要的区别在于,应用环境,EJB在支持分布式上要更优秀,以及实现对象的容器化管理,可以作为中间件将数据库的数据保存到逻辑层,以及对象的持久化,
其实具体应用起来,代码方面到是没有什么,主要是逻辑结构以及组件的部署,要比较麻烦如果是小型项目,根本没有必要用,用了可能适得其反。
五年以前我做 ERP 的时候,我们的ERP 只安装在客户的服务器上,共享出来,客户端把它映射成 Z 盘,从 Z盘启动客户端。
这种技术非常简单,我不相信这些 EJB 大侠们怎么会想不到?2。多层结构体系维护简单,修改某个部件不影响其他部分
其实 COM/ActiveX 正是这种目的。使用 COM/ActiveX 就足够了。
我个人认为其实使用 Class /function 即可,修改某个 function 而不影响其他代码是一个软件开发人员必备的能力。3。EJB 容器可以屏蔽数据库的差异,可以加速数据库操作。
这更是谎言。换不同的数据库,都需要重新测试。就像 java 号称跨平台,但是我们还是不得不在每一个平台上测试至少一个星期。
加速数据库操作更好的办法是买更大的内存、更快的 CPU。我有一个朋友,给被人上 oracle 系统,让客户安装了 10 TB 的内存,系统飞快。 Weblogic 的费用可以买多少内存?4。EJB 容器可以自动为数据库生成对应类,加快编程速度。
在 VC 中有一个功能,可以自动为数据库每一个表生成对应的包装类。但是据我所知,很少有写VC 程序的人用它,大家都愿意手工写。
1. 很少有人会用EJB做C/S结构,一般都是用再B/S结构上。即使用在C/S结构上,一个成熟的产品不可能用你说的这种低级的方法。2. 你对EJB的理解有错误,EJB和COM/ActiveX 的确有很多相似之处,但是要知道COM/ActiveX 一般封装是功能,而EJB一般是用来封装业务逻辑的。 而且这个和Class/Function不是同一级别上的概念。3. EJB是跨平台的,这是不用质疑的,EJB移到不同平台上 只需要修改数据库连接的JNDI和Context就可以了,我想不需要你说的一个礼拜这么久吧。 请问微软的东西如何移植到Liunx,Unix或者Sorlais系统上?使用EJB可以加快数据库操作这是肯定的。其次Java有很多免费开发工具和软件,也不一定要用weblogic 比如jboss就是个很好的免费应用服务器,适合中小型应用。4. VC可能也有映射数据库的技术,但是我想他们的应用和功效并不相同
1. 在几乎所有 EJB 书中,使用EJB 的理由之一,就是 C/S 结构的软件分发麻烦。我只想反驳这一点。
2。但是要知道COM/ActiveX 一般封装是功能,而EJB一般是用来封装业务逻辑的???
我看不出来为什么 COM/ActiveX 不能封装业务逻辑的理由
3。跨平台功能
跨平台不是最终用户考虑的问题。当年 PowerBuilder 跨的平台极多,几乎你能说得出来的操作系统它都跨了,是MIS中的霸主,最后还不是让只跨两个平台(Windows, apple)的VB打趴下?
Borland 的开发工具也跨平台了,销售量还不是不如 Visual Basic ??
跨平台只是一个市场口号。用户只知道把几个同类产品一起比较,哪个好用就买哪个
当用户选择Office软件时,有几个人知道Office 2000的开发工具是不是跨平台?有几个人知道WPS用什么开发工具做的?当用户用 winzip 的时候,有几个人因为你写的 zip 工具软件跨平台而 winzip 不跨平台就不用 winzip 改用你写的 zip 工具软件??
用户关心的是软件功能、易用性
每一种软件都有它最合适的操作系统,当你决定开发什么软件的时候,你面对的大多数用户群已经局限在一个操作系统了。如果我想开发一种化妆品高档、中档、低档用户一网打尽,可能吗?
1. 每一个 EJB 书前几页都会有这样的内容:为什么用 EJB, 什么时候用 EJB。然后它们又都把C/S结构的软件分发不方便作为使用 EJB 的理由,因为 EJB 不存在这种不方便。
我的意思是这种理由根本不存在。
3。据我所知,用 ASP 的大用户多的是,像 HP, 西门子,他们的公司内部用户,外部用户也不少。为什么我们不能用?
至于Sun的小型机,我想用 PC server 的远比Sun的小型机 server 的用户多。从各种统计资料就可以知道。如果你的软件只是针对Sun的小型机用户,那 ASP 当然用不成了。
根据你所说,刚刚我翻了《EJB应用开发详解》一书,并没有看到任何于C/S结构比较的东西。
同时这里说到了EJB开发的优势:提高开发效率,商务逻辑可移植,高度可定制,支持高度可收缩性,是一种极其通用并功能强大的多层分布。
ASP开发简单,投资少,对于要求不高的用户当然是很好的选择啊。ASP的功能有很大的局限,ASP我想很快就要过时了吧。同时ASP和EJB也是两个不同层次的上概念吧,要比较也应该和JSP比较吧。我说sun的小型机只是举个例子,我想你应该清楚这一点,J2EE架构一般是用来开发大型应用的,一个小型企业网用这么架构是完全没有必要的。我想你统计的PC Server都是一下中小型用户,你应该去统计一下大型应用的用户,你可以去电信局,医保局,银行那些数据量很大,安全性要求高的用户有用PC Server的吗?而且也很少用windows操作系统的。
同时我想说明一点,微软推出的.net技术和j2ee在体系架构上已经很难分出高下了,所以你不要一定分出他们的好坏,我对.net也有所接触,我想两者各有优缺点吧。不过有一点是肯定的.net被禁锢在微软自己操作系统上,所以现在很多人还是愿意选者j2ee技术来设计大型的应用
如果是国内,国内公司采购的回扣问题让他们只买贵东西(回扣多),再说了,还有国内大公司在网上说 netware 多么多么先进的,这种问题不好说。
至于“提高开发效率,商务逻辑可移植,高度可定制,支持高度可收缩性”,我怎么看都像 ASP3高级编程里面的话。这是套话,官方语言。
我在 EJB 书中看到的是说, EJB 的好处之一是, 屏蔽数据库差异,意思是你写的代码关于数据库操作部分,都让 ejb server 接管了,因此换一个数据库,对系统影响不大。但是我想这也只是一种理想情况。
真实的情况是, jdbc 屏蔽数据库差异,但也不是完全屏蔽,ANSI SQL 标准中没有存储过程,如果用了存储过程那肯定是数据库相关了。难道用EJB 时候用了存储过程就可以随便换数据库??我不明白
包括流行的各种版本 Linux , 如果你上他们厂商比如 redhat 网站上看,就会发现成百上千个 bug, 有什么安全可言?
而javabean跟ejb还是有本质的区别.
楼主所认为的javabean和ejb是差不多的,那是当server服务器只一台机器时,也是就jsp页面和javabean在一台机器上的时候,当你的javabean不在你web服务器上的时候,你还能调用吗???
而ejb主要就是解决远程调用的情况.至于客户端更能利用这种技术,而不单单是通过浏览器来实现远程访问.
不知道我这样说对不对,但我相信应该是这样一个道理.
noratong(诺拉) 大侠所说的"既然学java就要用java的技术,还用什么com,asp技术呢"在我们这儿行不通。
我不知道各位所说的大型应用的标准。在小型应用中用 asp 的人非常多,我想从程序员人数上面来说,用 asp 的人应该比 ejb 或者 jsp 的多。说ASP很快就要过时了无疑是错误的,对于大量的简单应用程序,不用 asp 难道要用 ejb ?
好像只用 java /ejb 的程序员老是说现在是 java/ejb 的天下,其实你去 download 网站,网上软件商城等等上面看看,大量的软件仍然是传统的 VB/VC 的天下。java/ejb 写的软件不到 10%
ejb可以跨平台和数据库
重用性比任何的技术都好
EJB用来开发商务中间件的这个大家都知道了吧...
中间件可以拿来组装,重用,移植...
EJB需要容器即应用服务器来支持...有了强大的应用服务器支持EJB效率更高...
我不明白的是什么时候用 EJB , EJB 书中所说的几种情况都不值得推敲。
在很多小型应用中EJB 完全没有地位,如果 EJB 得易用性没有重大改变,EJB 仍然不能进入小型应用
如果把ASP.NET和ASP放在同一级别,我想是错误的
ASP.net并不是ASP的升级产品吧EJB应该说J2EE技术一般是用在大型应用中
但是现在中小型的使用也并不是没有