标签:ejb
实习回来后,发现有点和集体脱节了,什么对于我来说都是神秘的,高大上的!就是怀着这种心情踏上了回家的的路,首先来揭开它的面纱—EJB
在这条路上,首先要解决的就是是什么的问题!从官网上查是这样的:
EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。进一步来说:商务软件的核心部分是它的业务逻辑。业务逻辑抽象了整个商务过程的流程,并使用计算机语言将他们实现。
J2EE对于这个问题的处理方法是将业务逻辑从客户端软件中抽取出来,封装在一个组件中。这个组件运行在一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻辑,而客户端软件的功能单纯到只负责发送调用请求和显示处理结果。在J2EE 中,这个运行在一个独立的服务器上,并封装了业务逻辑的组件就是EJB(Enterprise Java Bean)组件。
通俗的来说就是“把你编写的软件中那些需要执行制定的任务的类,不放到客户端软件上了,而是给他打成包放到一个服务器上”那么我们对它的期望是什么呢?
1、提供一个标准的分布的、基于OO的组件架构
2、屏蔽复杂的系统级功能需求
3、Writeonce, run anywhere
4、与非Java应用之间的互操作能力
5、兼容CORBA标准
那么知道了它的期望之后,是不是更想进一步了解它了。
接下来就来看看它在J2EE开发中的详细情况:
通过以上对EJB整体的了解,接下来会进一步介绍它的细节,包括定义客户端访问接口,JMS,拦截器,JPA及打包发布等等。
EJB的优点:
1 规范详细性:EJB是一种基于规范性的技术。(这同时构成了EJB的主要优点和主要的缺点)。EJB规范说明书中描述了应用程序执行的各个方面,包括数据类型,组件声明周期,角色分布以及其它的东西。。
2 和J2EE紧密整合:有许多服务器技术以J2EE为中心构建,其中包括EJB和其它一些相关技术,如:servlets、JavaServerPages、Java Message Service、J2EE 连接器架构、Java 数据库连接、JavaAuthentication、Authorization Service, Java TransactionAPI、JavaMail技术等等。这些技术使J2EE 和 EJB是有机的结合构成一个非常吸引人的解决方案。
3很好的伸缩性:只要你的应用程序服务器通过了大多数的资源管理功能,开发商就可以应用更为复杂的可伸缩算法。
4 有权使用资源管理系统:连同EJB容器一起,你可以获得上千行的代码来访问管理资源,包括事务管理系统、安全管理系统、目录服务。因为有了EJB我们可省去亲手实现的这一部分。
EJB的缺点:
EJB优点表现固然卓著,但是缺点和优点同样显著:
1巨大而复杂的规格说明:对于一个复杂的分布式系统,有一个文档进行说明是一件很合理的事情。但是,并不是所有的文档信息都是真正必需的,EJB的文档反而成了一个非常不便利的工具。
2 庞大的文件:在你开发一个项目之前,你通常需要阅读1000多页的文档。这是部署EJB时非常痛苦的事情。
3 增加程序调试时间:制定EJB解决方案比远比使用普通的Java代码所需的时间长,调试EJB程序也比调试普通的Java代码所需要的时间也长。主要原因是我们不知道bug是出在代码本身还是出在容器上。
4 EJB代码更加复杂:举个例子,为了实现一个sessionbean,你必须写三个类,为了实现一个实体bean,你需写四个类。增加几个部署描述语句,比如说最简单的"Helloworld"程序需要10个文件,而不是一个文件。
5 重复设计的危险:导致这种结果的原因是复杂的文档所致。。如果你没有完全理解EJB的概念,你就不会很好的驾奴它,让它你所用,反之为你所累。
6 维护困难:EJB是一个不断更新的技术,在新技术不断推出的时候,代码需要升级,这就就需要额外的努力和成本来使你的程序和新的EJB容器兼容。
1、EJB实现原理: 就是把原来放到客户端实现的代码放到服务器端,并依靠RMI进行通信。
2、RMI实现原理 :就是通过Java对象可序列化机制实现分布计算。
3、服务器集群: 就是通过RMI的通信,连接不同功能模块的服务器,以实现一个完整的功能。
标签:ejb
原文地址:http://blog.csdn.net/liu_yujie2011com/article/details/45691177