EJB学习笔记(1)

来源:互联网 发布:生活中的禁忌知乎 编辑:程序博客网 时间:2024/05/02 01:12
EJB学习笔记(1)  
       昨天已经提到第一篇学习笔记主要谈一下《Mastering EJB 3rd》这本书的第一章的读后感。由于第一章是在公司里看完的,故读的是英文的电子版,所以一下会出现许多英文术语。
      第一章开门见山就就来了简单地定义了一下EJB到底是什么东西。Enterprise JavaBeans(EJB) is a server-side component architecture that simplifies the process of building enterprise-class distributed component applications in Java.看到这句话你知道 了EJB是一个运行在服务器端的组件架构,它的作用是使处理用java写的企业级分布式组件应用简单化。不过仍然是云里雾里,因为你不知道什么叫组件架构,甚至不能体会使企业级分布式组件应用的处理简单化究竟是怎么一回事。好了以下就是国外书籍和国内书籍的区别了。这本书在之后就撇开EJB这个名次不谈而去谈人们在开发这种企业级应用时会遇到的一些问题,并有这些问题在带出为什么需要有EJB,即介绍了EJB的需求。
      当开发这些企业级应用时我们往往会遇到这些问题(这里只列出少许):
      1.事务处理,有些处理过程必须是原子过程,即要么做要么不做,不能有做到一半的情况。这需要有事务处理的机制去完成。
      2.远程方法调用,客户端和服务器的通讯需要由远程方法调用的机制来实现。
      3.资源池,必须要由池的概念来统一管理连接,线程以及其他一些宝贵资源。
      等等等等
      以上列出的问题事实上是和企业的业务逻辑没有任何管理,只是应用了计算机软件之后所产生的各种问题。过去企业往往自己制定自己制作一些在迟久层之上,但是在业务逻辑曾之下的服务来解决上述问题。这些服务称作是中间件服务,因此现在流行的中间件概念其实就是跑这些服务的应用服务器。然而,如果每个企业都要花时间去实现自己的中间件是相当花成本的,况且这些服务有非常大的通用性。如果每个企业都通过自己去解决这些通用性强的功能,那就是一种浪费。由于没有统一的接口这些企业自己实现的中间件服务只能应用于企业自身的一些业务功能。
      所以书中指出我们需要的是一份协议,这份协议定义了这些中间件服务的接口,而所有的厂商都根据这些接口去写自己的实现。这样的话只需要有特定的中间件服务厂商去实现服务,而由于接口都一致其他的厂商可以选择任意一个中间件厂商出售的中间件组件服务来应用于自己的产品,而且更换厂商是能够做到无缝链接的!
      下面又提到了比中间件服务更上一层的概念SOA(Services-Oriented Architecture)面向服务的架构,即软件服务上为用户提供软件服务时的设计,完全是从服务本身出发,而非技术的实现甚至是组件的角度。比如,如果要实现一个财物系统,按SOA的思想,软件服务商是不应该考虑此财务系统是运行在unix上还是windows上的,理想的情况是我写面向于服务的代码,它能在任何环境下运行!也就是说今天你在unix上运行,下次你说要改在windows上了,软件服务商这里是不需要任何额外开发的成本!因为我面向的服务本身,而非其他的东西!
      因此现在流行的Web Services这个概念就是因为SOA而带出来的,事实上,Web Services就是实现SOA的一个良好手段,因为他至少能保证了客户端只需要有浏览器就能作任何事情,Windows下有ie,linux下有FireFox,苹果电脑也有诸如safari这样的浏览器,因此Web服务能让软件服务商不关心平台而棉线浏览器开发。而J2EE能使服务器端也实现跨平台。于是EJB就成了J2EE中的一个重要组成部分。
      这样就带出了EJB存在的必要。因此EJB实际上就是一种JAVA领域的构建服务器端组件的标准,它在组件服务和应用服务器上建立了一个协议,这个协议使得任何中间件厂商提供的组件服务能运行在任何应用服务器上!它还是实现SOA的有利后盾,正是有了EJB,软件开发商才能真正面向服务开发,而不用理会诸多的非业务技术实现!
        当然,现在提倡轻量级框架,EJB也暴露出许多遗严重的问题,这是后话,毕竟EJB当初提出的初衷,特别是SOA还是值得我们去学习去掌握的!
        这是第一篇学习笔记,大家对风格有什么建议,或者希望以后写成什么样的形式还请提出。
 
原创粉丝点击