zoukankan      html  css  js  c++  java
  • EJB是什么?(节选)

    近期的项目中使用了EJB。当时就仅仅知道怎么用,没有深入的去理解。当完毕这个项目之后。再回想项目中使用的技术、框架以及工具的时候,突然感觉对EJB这个概念非常是模糊,于是上网搜一些资料。可是,非常多的资料都是“官方语言”。没有我想要的答案,可是机缘巧合下,发现了一篇可以给我解惑的文章。这里就节选一部分(查看全文)。

    1. 我们不禁要问。什么是"服务集群"?什么是"企业级开发"?

    既然说了EJB 是为了"服务集群"和"企业级开发",那么,总得说说什么是所谓的"服务集群"和"企业级开发"吧!
    这个问题事实上挺关键的。由于J2EE 中并没有说明确,也没有详细的指标或者事例告诉广大程序猿什么时候用EJB 什么时候不用。于是大家都产生一些联想,觉得EJB"分布式运算"指得是"负载均衡"提高系统的执行效率。然而,预计非常多人都搞错了,这个"服务群集"和"分布式运算"并没有根本解决执行负载的问题,尤其是针对数据库的应用系统。
    为什么?
    我们先把EJB 打回原形给大家来慢慢分析。



    2. 把EJB 掰开了揉碎了
    我们把EJB 的概念好好的分析一下。看看能发现些什么蛛丝马迹。

    3.1 EJB 概念的剖析
    我们先看一下,EJB 的官方解释:
    商务软件的核心部分是它的业务逻辑。业务逻辑抽象了整个商务过程的流程,并使用计算机语言将他们实现。……
    J2EE 对于这个问题的处理方法是将业务逻辑从client软件中抽取出来,封装在一个组件中。这个组件执行在一个独立的server上,client软件通过网络调用组件提供的服务以实现业务逻辑,而client软件的功能单纯到仅仅负责发送调用请求和显示处理结果。

    在J2EE 中。这个执行在一个独立的server上,并封装了业务逻辑的组件就是EJB(Enterprise Java Bean)组件。
    这当中我们主要关注这么几点,我们来逐条剖析:
    剖析1:所谓:"业务逻辑"
    我们注意到在EJB 的概念中主要提到的就是"业务逻辑"的封装。而这个业务逻辑究竟是什么?说的那么悬乎。事实上这个所谓的"业务逻辑"我们全然能够理解成运行特定任务的"类"。
    剖析2:所谓:"将业务逻辑从client软件中抽取出来,封装在组件中……执行在一个服
    务器上"

    既然我们知道了"业务逻辑"的概念就是执行特定任务的"类",那么,什么叫"从client软件中抽取出来"?事实上,这个就是把原来放到client的"类",拿出来不放到client了,放到一个组件中。并将这个组件放到一个server上去执行。


    3.2 把EJB 这个概念变成大白话
    变成大白话就是,"把你编写的软件中那些须要运行制定的任务的类,不放到client软件上了,而是给他打成包放到一个server上了"。
    3.3 发现问题了
    无论是用"八股文"说。还是用大白话说这个EJB 概念都提到了一个词--"client软件"。
    "client软件"?难道EJB 的概念中说的是C/S 软件?
    是的,没错!


    EJB 就是将那些"类"放到一个server上。用C/S 形式的软件client对server上的"类"进行调用。


    结束语:我认为文章中的“把你编写的软件中那些须要运行制定的任务的类,不放到client软
    件上了,而是给他打成包放到一个server上了”这句话就是我想要的。

    用通俗易懂的语言把那些晦涩难懂的“官方语言”解说清楚,这也是一种能力。

  • 相关阅读:
    FileWriter写数据路径问题及关闭和刷新方法的区别
    FileWriter剖析
    2018-10-27 22:44:33 c language
    2018-10-23 23:29:54 clanguage
    Just write about
    2018-10-19 00:13:35 ArrayList
    2018-10-18 22:15:32 c language
    Why do collection classes appear
    2018-10-17 22:20:39 c language
    2018-10-16 22:56:13 c language
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/6769515.html
Copyright © 2011-2022 走看看