我们做一个系统,外网一部分,内网一部分,数据库在内网。
所以内网就做了一个EJB,外网和内网通信用EJB。感觉EJB还好呀,挺好用的。
请问:1、除了用EJB还有什么其他好的解决方案吗? 2、这就是EJB的最大的用处吗?后来我们到一个地方去部署,人家那内外网没有用网闸,用的电子开关,每5分钟内外网才切换一次。
我们公司的大牛说这个EJB实现不了,于是把EJB改造成了JMS,内网一个JMS,外网一个JMS,这样实现内外网通信。
请问:1、网上看到EJB也是异步的,一定要用JMS吗? 2、这就是JMS的典型应用吗?
谢谢大家,我只是想再用过这两种技术后,总结一下。。是不是我们用到的只是皮毛。。?

解决方案 »

  1.   

    EJB 异步指的是 Message-Driven Bean,其它的还是同步的。有点不明白。你说的外网到内网用 EJB 通信指的是 web 服务器(或其它接收请求的程序)部署在直接连接外网的服务器上,这个外网上的服务器防火墙允许它连接到内网上一个 EJB 服务器?
    你说的外网一个 JMS 代替了像上面说的 Web 服务器一样的角色,内网一个 JMS 也是指定它从外面投递的队列中拿消息处理又把回复丢进应答队列?你这个网闸每5分钟切换一次是什么意思,外网到内网的连接一定会在5分钟后自动断开并重连还是别的情况?
    消息驱动 bean 肯定是异步的。JMS 你发送方发完了就不等答复而是从另一个 JMS Listener 监听在一个答复队列上的话也是异步的。
      

  2.   

    不太了解EJB
    不过第一种内外网部署应用 IP映射就可以了 
     
    第二种情况 还没碰到过不过JMS是个不错的想法
      

  3.   

    没有具体接触过EJM和JMS,我想我早晚会学会的!呵呵,祝楼主好运
      

  4.   

    学习。。以前听老师讲过,ejb不能跨语言,能进行远程调用,但是性能不好,网速慢,分站点。
      

  5.   

    内外网是怎么弄的我也不太清楚。。比如我们公司在给税局做一个网络在线开票系统,纳税人只要能上网有打印机就能开发票,那么我们这个系统就要做成2部分,外网部分给纳税人开票用,内网部分给税局管理监控等。数据库肯定是在内网啊,那外网的数据怎么进入内网呢?
    就是在税局外网的服务器上部署了一个weblogic应用,在内网的服务器上也部署了一个weblogic应用,还有一个数据库服务器,也在内网。
      

  6.   

    这种内外网混搭的情况,***外网是前端的Web应用 + 内网是后端的EJB应用
    只要内外网IP映射好了,你的内网是用EJB还是Webservice或者就是简单的Servlet,更或者就是一个Web应用都是可以的,你外网Web都能调用到,所以你的第一种情况并不见得必须就是EJB,当然使用EJB的好处就在于好多EJB容器(比如Weblogic的、JBoss的)提供包含安全、事务等等的特性,好处这种东西你可以去看看EJB规范怎么吹的,这种事情都是吹出来的。第二种情况,其实你们公司大牛说要换成JMS+JMS莫非就是因为内网往要做切换,必须得保证消息的缓存机制,这种情况使用JMS是比较合理的,但是说"EJB解决不了"这个说法不是很准确,因为EJB里面是有个MDB的,你完全可以在你内网的EJB中使用MDB就可以啦;此时你外网的Web应用通过JMS的API发消息,最终还是能被MDB处理的。
      

  7.   

    EJB和JMS没多大关系,去到网络上找下他们的定义吧,你都不知道这些东西是干什么的,就不要谈用他们做事情了。
      

  8.   

    15楼说的不错
    EJB提供远程访问的接口,实现分布式的处理,同时的代价就是服务器负荷的增大,一贯的作风了
    其实只要是Web应用,基本都可以完成这个功能,除非是大型应用或者不差那点效率的地方,通常不会用到EJB,名字可以看出,企业级的,呵呵
    当然了,内外网异步处理,基于一个原则,消息处理机制。可以用JMS消息处理中心,或者最简单的方法,通过数据库或者文件的方式处理未处置的信息(未响应的信息,继续发就好了)。