EJB的来源

       EJB(EnterpriseJava Bean)JavaEE中面向服务的体系架构的解决方案,可以将功能封装在服务器端,以服务的形式对外发布,客户端在无需知道方法细节的情况下来远程调用方法,大大降低了模块间的耦合性,提高了系统的安全性和可维护性。本章将介绍EJB的作用,创建一个基于EJB的程序,讲解EJB的配置以及会话Bean的使用。

       为什么需要EJB

       要想知道为什么要使用EJB,就需要知道"面向服务"的概念。"面向服务",是软件开发过程中,异构环境下模块调用的一个比较重要的思想。同样,面向服务也只是一种设计思想,不是一种编程技术。由"面向服务"的思想,业界提出了"面向服务的体系结构(Service OrientedArchitecture, SOA)"的概念。

      用一个实际案例来引入"面向服务"的概念。在某些大型应用场合,我们要在不同的运行环境之间传递数据,比如:

A公司需要从B公司的数据库中查询一些内容之后返回,进行处理,如何实现?

最简单的结构,如图所示:



        但是,以上程序在实际操作中,是不能实现的。因为JDBC代码写在A公司部分,那就必须让A公司的程序知道B公司数据库的详细结构。在一般情况下,这是不合理的。比如,一个公司通过自己的平台向银行转账,不可能知道银行数据库的结构。于是,程序可以变为如图所示结构:



       该结构详述如下:B公司编写自己的程序,访问数据库,对外发布一个接口,并发布一个服务的名称。我们知道,接口里面并没有核心代码。该接口也被A公司获取,A公司网上寻找相应的B公司发布的服务名称,然后通过接口调用B公司程序里面的方法。

       但是,该技术不是简单就可以实现的,因为A公司和B公司的程序,可能运行在不同的虚拟机内,甚至可能是不同的语言。EJB可以解决A公司和B公司使用的都是Java语言,但是处于不同的Java虚拟机的情况。

       该问题的原型是:一个Java虚拟机内的对象能否远程调用另外一个Java虚拟机里面的对象内的方法?实际上,在Java内,该技术可以用RMI(远程方法调用)实现。而EJB的底层,就是用RMI实现的。但是还有很多其他方式也可以解决这个问题, 比如使用webservice?CORBA技术等,都能很好的解决分布式问题!

       我们为什幺选中EJB呢?

       最重要的理由:分布式!分布式对象之间互相协作,完成特定的业务功能。分布式对象之间应实现分布透明性(或位置透明性)。即在客户端代码中无需指定分布式对象的位置(通过配置来解决)。分布式对象之间的事务支持(RMI不支持事务)。所以我们的开发选择使用EJB!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值