web container,ejb container是在同一个层次上的。j2ee app。
如果是使用ejb,当然要用到rmi的,对性能影响肯定是有的。
从你的问题来看: petstore目前还不适合你看。先看些基础的东西吧。
如果是使用ejb,当然要用到rmi的,对性能影响肯定是有的。
从你的问题来看: petstore目前还不适合你看。先看些基础的东西吧。
解决方案 »
- 我想通过java实现点击某个按钮打开命令提示符
- hibernate一张表多外键插入数据出错?
- HibernateUtil 工具类错误
- 一个Hibernate在Tomcat5.5下的错误信息```
- 请教下struts中redirect路径的问题
- 用java实现迷宫求解问题
- 连接池中Identity数据库自增量问题
- 各位高手们可知 SQL/J 是什么技术么?怎么用? 一起讨论
- 有关于JAVA的面试
- 异常烦恼的java异常:java.lang.IllegalStateException
- 用struts技术的代码,目前大部分在服务器上运行着,可有一页,现在变的没有反应了,只是空白页了,这页没有改过呀,要如何解决,up也有分
- 在研究apache项目中遇到的xml问题,求解答
2。同意楼上的。不要浮躁。
upupupupppupupupuppupupupppu
2. 有实现啊,当然有啦。一般命名规范是这样的远程接口如果叫AaaBbb,bean的实现类就叫AaaBbbBean,本地接口就叫AaaBbbHome。运行的时候容器还会自动生成一些类。PetStore挺深的,不要急着看,慢慢来。
2. 有实现啊,当然有啦。一般命名规范是这样的远程接口如果叫AaaBbb,bean的实现类就叫AaaBbbBean,本地接口就叫AaaBbbHome。运行的时候容器还会自动生成一些类。PetStore挺深的,不要急着看,慢慢来。
1。数据通过 jdbc从数据库序列化到ejb
2.(ejb处理以后)从ejb序列化到servlet
3.从servlet序列化到applet
这样一来,很多步骤,比如说第二步,实在是看起来多余啊,数据大的话,损耗很大啊
当然,applet通过rmi调用ejb好想也是可以的,但是rmi协议不如http这样普遍啊,很多防火墙会凤吊这个端口,不能适应大众啊
其中第一步和第二步是可以忍受的,而且通常是很快的。比如数据库服务器和应用服务器、web服务器之间以1000M网卡连接。1000M网卡的速度比本地硬盘都快。
第3步是最费时间的,但是根本没有这个必要。传20条数据以上通常都是要分页的,即使不序列化其数据量也是让客户难以忍受的。比如传20个1MB的图片给客户端,序不序列化都是不能忍受的。
ejb的调用就是基于rmi的调用。
对于servlet,她是http的门户,总不能把它拿掉吧,或者,把ejb拿掉,谁来做缓存呢?应该说四层结构还是有道理的,特别对于普通的broswer对数据量需求不大的情况可是并不是所有的应用都如此,如果有一个应用对数据的需求很大,那该如何处理呢?
可不可以实现这样一种机制,将webcontainer和ejb container和到一块去,它们之间通过引用调用(注意不是rmi), alienbat(死灵巫师)的回答很重要,我没有很仔细的看j2ee,希望这是可以实现的,能不能说的具体点?这样的话如果不考虑集群,只是简单的负载均衡,我想应该可以看作去掉第二步的序列化影响了
还有,如果我实现集群(j2ee层上的集群),是不是又要回到rmi的老路子上去,集群的服务器之间,好像也是通过该死的rmi吧(我对集群不甚了解,请拍砖)
EJB Container集成在一起的,怎么会用到RMI来连接?你想多一台机器
做Web Container一来没必要,二来老板还心痛钱呢。
其实有本地方法,和rmi方法两种。
其实性能问题,是自己设计的问题。
其实.....
^_^
的确,对于普通的企业应用来说,j2ee可能是非常合理的
其数据量可能是这样的,从底层逐渐递减,ejb完成关键的数据计算,servlet完成控制和数据的显示(如有不妥,非常欢迎指正)
/ /web / ejb / db
然而,也会有这样的应用
数据量可能是这样分布| web container |
| ejb |
| database |
整个框架像一个数据的管道,ejb负责处理数据,处理完成后,交给webcontainer,由它传给browser,大家看到多余的环节了把,数据序列化经过经过webcontainer和ejb所在的机器,(rmi调用应该通常是能够容忍的,但是如果涉及到太多的对象的序列化,我想肯定对性能的影响会不小),既然大家已经确认的告诉我servlet可以通过引用调用ejb,对我来说,应该是个好消息
但是,如果部署到不同的机器上,rmi不是又回来了吗?
1。我私下里想,就算他们是集成到一起的,也不能就非常确认的说他们就用了本地调用(不要想当然嘛,好像微软就会这么搞,好想它的很多东西都在127.0.0.1上开了个端口,比如ie,做什么用的?)
我认为j2ee含金量比较高的地方是应该是它的集群技术,以及cmp的缓存技术
(其实我是乱说的,我对j2ee不懂,欢迎来骂我)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
我错了,不在一台机器上怎么可能本地调用,看来这个坎是绕不过去喽谁有注意?
比如ejb传回1GB的数据,这1GB的数据是干吗的?是要之间传给用户吗?如果是要传给最终用户,那不就和网络下载差不多了吗?用户不等上几个小时才是怪事。如果是要进行处理,传个结果给用户,那么为什么不在ejb就处理呢?如果觉得ejb也慢,为什么不在数据库这一层处理呢?我曾经遇到这种情况需要对200多种商品进行计算,最后的方法是放到存储过程中,因为我只需要200个商品的计算结果,而不需要他们的其他数据。综上,我认为不仅j2ee,任何技术对这些应用的优化都不能自己完成,必须有赖于程序员的设计。分布式数据库就是一个明显的例子。
ejb根据数据库的内容,生成一幅或者几幅1--200k的图片,然后由servlet 把图片写的httpOutputSteam里面,这可以用来做报表,或是WMS(web map server),这种设计思路应该是没有问题吧?我们已经在ejb里生成了一幅图片,却又不得不将图片这个对象物理的挪移到servlet,这难道不是一种浪费吗?这是我主要关心的。
=========================================================================
我觉得已经大致知道应该怎么去做,过几天结贴,谢谢!
我以前也有类似的情况。