(2)EJB(Enterprise JavaBean)
之前说过,分布式应用是Java EE一个基础的需求,额……那在不同机器上的“分布式”的应用到底会以一个什么样的形态出现呢?答案就是:EJB。EJB属于业务逻辑层上的东东。
所谓Bean,其实是“组件”的意思。EJB可以让你像搭积木一样,通过本地/分布式调用组装不同应用到大型应用中,使你能集中精力来处理企业的业务逻辑,而像事务、网络、安全等等这些底层服务则统统留给EJB服务器开发商来解决。
利用基于组件的开发,可以把代码重用上升到一个新的高度。利用面向对象开发,重用的是类,而基于组件时,重用的则是更大的功能块。
【1】EJB vs Java Bean
我个人认为,Java Bean相当于是数据存储类(不涉及具体业务逻辑),专门用来存数数据,提供getter,setter方法,并且在JVM上可直接运行。EJB则相当于一个功能模块,提供业务逻辑的服务,而运行时,则需要EJB容器的帮助。
EJB是业务逻辑层最重要的技术哦!
(3)Container(容器)
Container这个概念经常在Java EE中出现,所谓Container,在Java EE 5 Tutorial中有这样一段解释:“Containers are the interface between a component and the low-level platform-specific functionality that supports the component.”,而Container的作用,我个人的认为是:为“应用程序”提供一个环境,使其可以不必须关注某些问题,如:系统环境变量,事务,生命周期…….通俗地说,Container就像“秘书”,帮“应用程序”管理着各种杂乱的问题,为其提供运行时支持。
其中,Java EE里有两个很重要的容器:Web容器和EJB容器
【1】Web容器
Web容器是用于托管“Web应用程序”的J2EE容器,主要负责管理“Servlet”和“JSP”运行。
【2】Servlet容器
其实,上图中的Servlet指的就是Servlet容器。而Servlet的设计初衷,实际是基于线程池的更好的线程容器,见下图:
【3】EJB容器
EJB容器主要负责管理“EJB”的运行。
而EJB的设计实际上是基于对象池的思想,你可以认为EJB=对象池+远程对象池。见下图:
【4】Servlet与EJB
其实,根据Servlet和EJB的设计初衷,我们已经可以看出Java EE对两者角色的定义了。线程的本质决定了Servlet只适合一些比较简单的轻量级应用;一旦问题复杂了,最好的就是使用EJB。
(4)RMI
RMI全称:Java Remote Method Invocation,就是利用Java对象序列化的机制,实现远程类对象的实例化以及调用的方法。
RMI在Java EE中的主要是负责解决通信问题,特别是不同的EJB容器之间的通信。大家知道,在分布式应用中,各个功能模块(EJB)之间通信需要有统一的RPC协议,否则没法通信,而RMI就是负责这方面的工作。
【1】RMI 与 CORB
可以说,RMI就是CORBA的Java版实现。
【2】再谈“远程调用”
现在主流的远程调用方式,不管是com/com+,soap,webservice,rmi,.netremoting,说白了都一样的,就是序列化,网络传输,反序列化。
序列化方式:同种runtime的,可以native的二进制序列化,序列化的效率高。文本的序列化(xml/json/自定义格式)的方式,可以跨平台和语言,一般基于中间类型。但此序列化方式的效率低,数据量也偏大。
网络传输:则可以使socket/http或是自定义协议的。 socket数据冗余最小,效率最高。RMI其实是socket上的自定义协议。 http要走http的报文,文本的方式最合适,实现最简单,开发和部署方便。
(5)JMS
JMS:Java Message Service。JMS提供一种消息机制,主要作用是提供异步通信的支持,是Java EE的重要基础模块。值得注意,异步通信,一般都采用消息机制,这种情况在Windows中最常见。
(6)JTA
JTA:Java Transaction API,主要提供事务服务和分布式事务管理功能,保证分布式事务的一致性,是Java EE的重要的基础模块。
分享到:
相关推荐
JAVA EE实验二 官方推荐,学习JAVA EE的同志们,不看后悔啊!
java ee基础使用教程郑阿奇里面含有书中的所有ppt和代码
精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码....
基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java ...
java ee
Java EE 7 tutorial 中的examples代码,找了很久才找到下来的,跟Java EE 7 tutorial配套使用,是官方的学习资料。
Practical JSF in Java EE 8 pdf Master the Java EE 8 and JSF (JavaServer Faces) APIs and web framework with this practical, projects-driven guide to web development. This book combines theoretical ...
本书是一个面向任务的实用指南,通过一系列实用示例来介绍如何开发Java EE 7(java平台企业版7)企业应用。这本书由Oracle的Java EE文档小组成员倾力编写,会让初学者和中缎Java程序员深入了解这个平台。 这个指南包括...
《轻量级Java EE企业应用实战:Struts2+Spring4+Hibernate整合开发(第4版)》是《轻量级Java EE企业应用实战》的第4版,第4版保持了前几版内容全面、深入的特点,主要完成全部知识的升级。 《轻量级Java EE企业...
java EE,servlet jsp java web 开发的帮助文档,API
Java EE 设计模式 Professional Java EE Design Patterns
Develop professional applications in Java EE 7 with this essential reference guide
JavaEE课程设计报告-基于Java EE身体健康管理平台.pdfJavaEE课程设计报告-基于Java EE身体健康管理平台.pdfJavaEE课程设计报告-基于Java EE身体健康管理平台.pdfJavaEE课程设计报告-基于Java EE身体健康管理平台....
精通Java EE:精通Java EE 整合应用案例\源代码第五章
精通Java EE:精通Java EE 整合应用案例\源代码第三章
java ee 8实现的微服务,涵盖范围广泛,所有java ee技术条线的微服务技术都有介绍,完整的样例。
精通轻量级Java EE 框架整合方案,光盘资料
这是官方的英文版的JAVA EE 6的API,带索引功能的。