http://blog.sina.com.cn/s/blog_8ce4eca80101azdd.htmlEJB详解
http://blog.csdn.net/han_yankun2009/article/details/22784559
http://www.cnblogs.com/iOS-mt/p/5640330.html
http://www.cnblogs.com/yjmyzz/p/3518386.html比较好的说EJB和Spring之间区别
EJB——Enterprise JavaBean
EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序当然,还有许多方式可以实现分布式应用,类似微软的.net技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB 是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,EJB称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDrivenean)。EJB 是为"服务集群"和"企业级开发"提供服务。
服务器集群与企业级开发
服务器集群即将很多服务器集中起来一起进行同一种服务,在客户端看来就象是只有一个服务器 集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。在集群系统中,所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户所使用。集群必须可以协调管理各分离组件的错误和失败,并可透明的向集群中加入组件。用户的公共数据被放置到了共享的磁盘柜中,应用程序被安装到了所有的服务器上,也就是说,在集群上运行的应用需要在所有的服务器上安装一遍。当集群系统在正常运转时,应用只在一台服务器上运行,并且只有这台服务器才能操纵该应用在共享磁盘柜上的数据区,其它的服务器监控这台服务器,只要这台服务器上的应用停止运行(无论是硬件损坏、操作系统死机、应用软件故障,还是人为误操作造成的应用停止运行),其它的服务器就会接管这台服务器所运行的应用,并将共享磁盘柜上的相应数据区接管过来。
企业级开发指大型企业级应用的结构复杂,涉及的外部资源众多、事务密集、数据量大、用户数多,有较强的安全性考虑。部署多个彼此连接的、相互通过不同集成层次进行交互的企业级应用,同时这些应用又都有可能与其它企业的相关应用连接,从而构成一个结构复杂的、跨越Intranet和Internet的分布式企业应用群集。
企业级开发指大型企业级应用的结构复杂,涉及的外部资源众多、事务密集、数据量大、用户数多,有较强的安全性考虑。部署多个彼此连接的、相互通过不同集成层次进行交互的企业级应用,同时这些应用又都有可能与其它企业的相关应用连接,从而构成一个结构复杂的、跨越Intranet和Internet的分布式企业应用群集。
在EJB中通过部署描述符的方式来使用JNDI在网络中查找各种资源 ,使EJB更具有健壮性。构件开发人员开发那些实现了应用系统逻辑的构件,将不同的构件部署到不同的服务器中,从代码代码的复用上升到应用级组件的复用,使逻辑能够在更大程度上得到复用,而这种分布式部署也大大降低了耦合度。总而言之J2EE中,EJB及其他J2EE技术的配合使应用更具健壮性、各个模块之间松散耦合、组件达到逻辑复用。
EJB工作原理
一个软件的核心部分是它的业务逻辑。业务逻辑抽象了整个业务流程,并使用计算机语言将他们实现。J2EE 对于这个问题的处理方法是将业务逻辑从客户端软件中抽取出来,封装在一个组件中。这个组件运行在一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻辑,而客户端软件的功能单纯到只负责发送调用请求和显示处理结果。在J2EE 中,这个运行在一个独立的服务器上,并封装了业务逻辑的组件就是EJB组件。
如下图:将一个完成的业务逻辑抽象出来划分为3个功能模块,并将3个功能模块的逻辑实现分别部署到服务器A、B、C上,客户端通过网络将信息传递给服务器A、B、C,信息经由服务器处理后将信息返回到客户端显示或者再通过网络存储到数据库中
以下来源于网上外加一点自己的随笔。
--------------------------------------------------------------------------------------------------
到底EJB是什么
到底EJB是什么?被口口相传的神神秘秘的,百度一番,总觉得没有讲清楚的,仍觉得一头雾水。百度了很久,也从网络的文章的只言片语中,渐渐有了头绪。
用通俗话说,EJB就是:"把你编写的软件中那些需要执行制定的任务的类,不放到客户端软件上了,而是给他打成包放到一个服务器上了"。是的,没错!EJB 就是将那些"类"放到一个服务器上,用C/S 形式的软件客户端对服务器上的"类"进行调用。快崩溃了吧!这么几句就非常清楚的解释了EJB是什么(也是本人在高人的博文里看来的),而很多文章总是执着于解释EJB原理,EJB出现的意义。
再次将这篇费了很大力气找的文章地址贴出来,博文对EJB的原理和实质的解释非常清晰:http://blog.csdn.net/jojo52013145/article/details/5783677
另外,EJB的出现引起很大的争议,这里一片引用一篇,04年的,有点老了,但其对自己的看法做了详细的阐述:http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7227796945468d4e419ce3b46111727feed7c63525483846b6776fc081efdf142226a5060e1c09e9f4babba993f2f8c7c62671df04019d41dabdf037881769f4d98ab0e93bbe74493b9a2d4c855239d0b55&p=9972c35d85cc45fe0ebd9b780864&user=baidu&fm=sc&query=???EJB&qid=92abc8ea09204a86&p1=10
EJB在架构中所处的位置如上图,EJB在J2EE开发中的详细:
总结:
a.EJB实现原理: 就是把原来放到客户端实现的代码放到服务器端,并依靠RMI进行通信。
b.RMI实现原理 :就是通过Java对象可序列化机制实现分布计算。
c.服务器集群: 就是通过RMI的通信,连接不同功能模块的服务器,以实现一个完整的功能。