baidu google都问过了!也看了好几次了!好像明白了点,又没通的感觉
不知道有没有人愿意点拨一下啊!
关于java的分布式,我理解分布式就是把一个整体业务,拆分成不同的模块然后,分别部署到不同的Server上!
然后她们之间可以互现调用!我的第一个问题就是不知道,我这个理解对不对!如果我的理解没问题的话!那我有两个server,分别部署两个webservice也可以叫分布式了?
又或者我一个系统有两个功能提交和撤销.然后我把这两个功能分别部署在不同的server上!点提交就server1自己处理.点撤销就提交到server2处理并返回!
这也叫分布式了?
可是我看资料上都说在这些j2ee架构里只有ejb支持分布式!不知道是什么意思啊?
hb spring struts都不支持分部
为什么这样说阿!希望得到大家的帮助啊

解决方案 »

  1.   

    根据分布式运算的定义来看,楼主所说的的确都属于分布式运算。(有关分布式运算的定义,请参考:http://baike.baidu.com/view/402382.htm),以下截取最关键的一段:----- 引用开始 -----  专业定义 (中国科学技术信息研究所对分布式计算的定义)
      分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算比起其它算法具有以下几个优点:
      1、稀有资源可以共享,
      2、通过分布式计算可以在多台计算机上平衡计算负载,
      3、可以把程序放在最适合运行它的计算机上,
      其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。
      实际上,网格计算就是分布式计算的一种。如果我们说某项工作是分布式的,那么,参与这项工作的一定不只是一台计算机,而是一个计算机网络,显然这种“蚂蚁搬山”的方式将具有很强的数据处理能力。网格计算的实质就是组合与共享资源并确保系统安全。----- 引用结束 -----不过楼主所举的例子,有点“杀鸡用牛刀”的意思。分布式运算一般用于解决“一个需要非常巨大的计算能力才能解决的问题。这类问题一般是跨学科的、极富挑战性的、人类急待解决的科研课题。”据我的理解,Java中实现分布式运算至少有三种方式:
    1、RMI远程调用
    2、Http远程调用
    3、Web服务EJB采用的是RMI远程调用,自然是支持分布式运算了。
    但不能说其它组件或框架就不支持分布式运算。不管EJB被吹嘘得如何强大,说到底还是一堆Java代码。我们完全可以使用相同的技术,写出我们自己的具有分布式运算功能的组件。
    实际上,以上三种远程调用的方式,Spring全部支持。
      

  2.   

    个人理解是这样的:
    分布式是指多个JVM上的线程进行通信,就是说应用是部署在不同的java虚拟机上,然后这些虚拟机上的线程可以进行通信,java的多线程机制还是设计的比较好的,可以多看些资料,正在学习中...
      

  3.   

    顶2楼的。分布式,个人理解,就是一件可以用一台电脑完成的事情,用多台电脑来完成。
    当然,一般来讲,会在多台电脑中选出一台电脑,做协调管理工作。分布式,一般是指,数据的分布式处理。
    打个比方,我们有500万个用户的手机号码,我们要分别统计C网和G网用户,
    其手机号码的尾数(最后一位数)在所有同类(C网或者G网)号码中的比重。
    结果,应该是20条记录,分别标明C网和G网尾数所占的比重。这件事情,可以用一台电脑来处理。同样,也可以用多台电脑来处理。
    显然,对于多台电脑处理,一般情况下,效率要高很多。当然分布式处理,肯定是多台电脑的事情,当然,通常,我们也是称某个软件是否支持分布式处理的功能。
      

  4.   

    我所理解的分布式(自己的理解而已,不严谨,也不一定准确,请扔砖头):
    分布式就是把一个任务分解给很多个程序处理,这些程序可能在不同的机器,不同的地方。
    早先一个程序完成一个任务,但需求复杂后这种方式不行了,因为你不可能把一个程序的功能开发得完全满足需求。比如一个程序的功能是产生报表数据(不带格式),而客户的要求是把数据做成报表,并输出成EXCEL。那么你是不是要为这个程序写一个EXCEL呢?显然不行,幸好EXCEL提供了OLE,使你能驱动EXCEL,达到这个目的。
    这就是组件的思想,COM(Component Object Model),COM所建立的是一个软件模块与另一个软件模块之间的链接规范,而当这种链接建立之后,模块间就可以通过称之为“接口”的规范来进行通信。
    再后来,就是DCOM(Distributed COM),COM+,就是把组件的思想放到了分布式环境中,能支持网络和事务。
    J2EE的分布式思想也基本上就是这个来历,没什么新花样。
    JNDI,为远程查找可用的组件接口提供了方便
    RMI,使得远程调用就像在本地一样方便。
    EJB,就是在RMI的基础上加入了BEAN的思想。
    这些你都可以把它们看成一种“协议”,协议里面定义的是通信、数据串行化、功能代码驱动等内容。
    虽然大家思想一致,但是做法不一致,各种标准不兼容,M$有M$的做法,SUN有SUN的做法。
    于是大家都想,如果有一个标准,无论你的代码是用什么实现的,别人都可以调用,那该多好了。
    于是WEB SERVICE出现了。综上所述,分布不分布,不是hibernate说了算,也不是spring说了算,也不是struts说了算。那谁说了算?--你啊!
      

  5.   

    分布式,个人理解,就是一件可以用一台电脑完成的事情,用多台电脑来完成。 
    当然,一般来讲,会在多台电脑中选出一台电脑,做协调管理工作。 分布式,一般是指,数据的分布式处理。 
    打个比方,我们有500万个用户的手机号码,我们要分别统计C网和G网用户, 
    其手机号码的尾数(最后一位数)在所有同类(C网或者G网)号码中的比重。 
    结果,应该是20条记录,分别标明C网和G网尾数所占的比重。 这件事情,可以用一台电脑来处理。同样,也可以用多台电脑来处理。 
    显然,对于多台电脑处理,一般情况下,效率要高很多。 当然分布式处理,肯定是多台电脑的事情,当然,通常,我们也是称某个软件是否支持分布式处理的功能。
    在java中,最好用EJB3做分布式
      SSH不支持分布式