一. JavaEE的架构
二. JavaEE的核心技术简介
三. JavaEE平台中的角色
四. 当前流行的JavaEE平台
五. JavaEE的应用
转自:http://blog.chinaunix.net/uid-13967518-id-2858817.html
一.JavaEE架构:
JavaEE的运行环境定义了4种类型的应用组件:
l Applet客户端
l Application客户端
l Web组件
l EJB组件
二.JavaEE核心技术:13种
EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、……
EJB ― JavaEE的基石:
l EJB (Enterprise JavaBeans) :
一个Java服务器端组件开发的规范,定义了一个用来开发面向对象分布式应用组件的标准方法,软件厂商根据它来实现EJB服务器。
Java程序员可以将一些EJB组件组合起来,从而方便、快捷地建构起分布式应用程序。EJB规范在简化分布式应用程序开发复杂性方面也做了大量的工作,EJB程序员不必太担心事务处理、多线程、资源管理等方面的问题,可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。使用EJB可以使整个程序分块明确,并且EJB可以使用其它EJB或JDBC等服务,从而增强了分布式应用程序的可扩展性和性能;另外,EJB的使用增强了整个系统程序的可靠性、可管理性和可移植性。
l EJB组件
EJB分为三种:会话EJB、实体EJB和消息驱动EJB
l EJB容器
是EJB组件的运行环境,为部署的EJB组件提供各种服务(事务、安全、远程客户端的网络发布、资源管理等)。容器厂商也可以在容器或服务器中提供额外服务的接口。
l EJB服务器
管理EJB容器的高端进程或应用程序,并提供对系统服务的访问。EJB服务器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他服务(如CORBA服务)的访问等。
CORBA体系结构:核心-ORB
CORBA技术:
l CORBA(Common Object Request Broker Architecture)是一个开发分布式对象系统标准(规范),它独立于平台,也独立于语言。由OMG制定。
l 在这个体系结构中,一个对象可以被本机上的客户或远程客户通过方法激活来访问。客户(一个对象或应用)无须知道被调用对象(称为服务对象)的运行环境,也无须知道实现这个对象的编程语言,客户只要知道服务对象的逻辑地址和提供的接口。
l 这种互操作性的关键是IDL(Interface Definition Language、接口定义语言),IDL说明对象接口中的方法,这些方法可以被其它对象(或应用)激活。
RMI技术:
l RMI(Remote Method Invoke)是一种被EJB使用的更底层的协议,正如其名字所表示的那样,RMI协议调用远程对象上方法,使用序列化方式在客户端和服务器端的对象之间传递数据。
RMI和CORBA相比:
l 两者的关键差别在于语言环境,Java RMI是一个分布式对象计算的纯Java解决方案(如,在Java RMI中,对象的接口用Java定义,而不是用IDL);
l 其次,CORBA没有定义安全服务,而Java RMI继承了Java的安全性;
l 再者,CORBA有不同的实现,不同的独立软件开发商的不同实现均有独特性,这使得在不同平台上的匹配比较困难,而且不是所有CORBA产品开发商都支持所有平台,而几乎所有平台都支持Java虚拟机,因此Java RMI具有更高的可移植性。如果客户对象和服务对象都基于Java虚拟机,那么Java RMI是分布对象计算的最好选择。当然,IIOP(Internet Inter-ORB Protocol)已经提供了Java RMI和CORBA的互操作能力,而且两者的发展有互相借鉴的趋势。
JSP技术:
l JSP是服务器端的脚本语言,是以Java和Servlet为基础开发而成的动态网页生成技术,它的底层实现是Java Servlet。
l JSP(Java Server Pages)页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
l 特点:面向对象,跨平台,和Servlet一样稳定,可以使用Servlet提供的API,克服了Servlet的缺点。
l 应用:一般和JavaBeans结合使用,从而将界面表现和业务逻辑分离。
JSP和ASP的比较(一):
相似:
l 都是运行于服务器端的脚本语言,两者都是动态网页生成技术。
l 这两项技术都使用HTML来决定网页的版面,都是在HTML 代码中混合某种程序代码,由语言引擎解释执行程序代码。HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。
JSP和ASP的比较(二):
不同:
l JSP是由Sun推出的一项技术,是基于JavaServlet以及整个java体系的Web开发技术,利用这一技术可以建立先进、安全和跨平台的动态网站。ASP是MS公司推出的技术,只能在MS的平台上运行,无法实现跨平台,也无安全性保障。
l ASP下的编程语言是 VBScript 之类的脚本语言,而JSP 使用的是Java。
l ASP 与 JSP 还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 ASP 下, VBScript 代码被 ASP 引擎解释执行;在 JSP 下,代码被编译成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。
Java Servlet技术:
l Servlets(=Server +Applet):是一些运行于Web服务器端的Java小程序,用来扩展Web服务器的功能。
l Servlets用特定的Java解决方案替代了其它的Web服务器方编程模式(如:CGI,ISAPI等),因而继承了Java的所有特性(跨平台、多线程、OO)。
l Servlets可以嵌入在不同的Java Web服务器之中,因为用来编写Servlets的Servlet API对于服务器环境和协议没有任何特殊的要求,所以Servlets具有很强的可移植性,也不像利用CGI程序等其它方式那样具有性能局限。
l Servlets也同样使用HTTP协议与客户端进行通讯,所以有时也称Sevlets为“HTTP Servlets”。
l Servlet是一种扩展Web服务器功能的简单而相似的技巧,而且由于它是用Java编写的,所以能够访问整个Java API库,包括用于访问企业数据库的JDBC API。
Java Servlet和JSP的比较:
l 两者都是基于Java的技术,所以都继承了Java的所有特性(跨平台、多线程、OO ),都可以使用Java强大的API。
l 两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。
l 两者在JavaEE体系结构中的工作层次相同,都负责与客户端的连接。
l Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简单容易。
l Servlet主要用于从客户端接收请求信息,而JSP主要负责将服务器端信息传送到客户端。
l 使用Servlet的真正意义在于:可以将界面设计和业务逻辑设计分离。
JavaBean技术:
l JavaBean是基于Java的组件模型,有点类似于Microsoft的COM组件。
l 在Java平台中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。
l 对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。
l JavaBean通过Java虚拟机(Java Virtual Machine)执行,运行JavaBean最小的需求是JDK1.1或者以上的版本。
l JavaBean传统的应用在于可视化的领域,如AWT下的应用。自从Jsp诞生后,JavaBean更多的应用在了非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。
JDBC技术:
l JDBC是一组API,定义了用来访问数据源的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。
l JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。
l JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,
l JDBC对数据库的访问也具有平台无关性。
XML技术:
l XML(Extensible Markup Language)是一种可以用来定义其它标记语言的语言,被用来在不同的商务过程中共享数据。
l XML的发展和Java是相互独立的,但是它和Java具有的相同目标即平台独立性。通过将Java和XML的组合,可以得到一个完美的具有平台独立性的解决方案。
l JavaEE平台全面支持和实施XML,这种强大的组合可使XML具备跨平台的兼容性,甚至用于对XML代码进行语法检查和调试的工具也可与平台无关。
l 因为XML可实施独立于平台的数据,而JavaEE平台则可实施独立于平台的解决方案,所以JavaEE技术和XML技术分别是企业开发的阴阳两极。XML可通过移植的方式表现数据,因此就对Java技术的可移植性构成了补充。
JavaEE其它核心技术:
JNDI(Java Naming and Directory Interface)、
JMAPI(Java Management API)、
JTS/JTA(Java Transaction Service/API)、
JMS( Java Messaging Service)、
Java Security API。
l JavaEE核心技术中最常用的技术:
EJB、 JSP、Java Servlet、JavaBean、JDBC、……
l 开发大型应用:异构、分布、数据交换
三.JavaEE平台中的角色
在JavaEE平台中规定了七种角色,这七种角色在开发JavaEE平台及JavaEE应用中承担各自的任务。
(1)JavaEE平台开发商
(2)应用组件提供者
(3)应用组装者
(4)应用发布者
(5)系统管理员
(6)工具提供者
(7)系统组件提供者
(1)JavaEE平台开发商
l JavaEE平台开发者提供实现基于JavaEE规范的产品,包括运行JavaEE应用的容器、JavaEE平台API。JavaEE平台开发者必须提供JavaEE规范规定的应用组件到网络协议的映射,提供JavaEE应用的发布与管理工具。
(2)应用组件提供者
应用组件提供者开发JavaEE应用组件,包括JSP、Servlet及EJB等。
(3)应用组装者
应用组装者负责将应用组件提供者开发的JavaEE应用组件组装为JavaEE应用。
(4)应用发布者
l 应用发布者将组装好的JavaEE应用发布到JavaEE应用的容器中,配置其运行环境,并启动JavaEE应用运行。
(5)系统管理员
l 系统管理员负责配置管理整个企业或组织的网络与计算环境,其中包括运行在JavaEE平台上的JavaEE应用。
(6)工具提供者
l 工具提供者提供JavaEE平台之外的JavaEE应用开发、组装、发布及管理工具。
(7)系统组件提供者
系统组件提供者提供系统级的通用的组件,如连接企业现有ERP系统的适配器等。
四.当前流行的JavaEE平台
l 目前市场上已经有许多成熟的实现JavaEE规范的产品,其中有的是商业公司的产品,而有的是开放源代码的免费产品。
商业公司的产品
商业公司的产品除Interstage外,另外主要还有BEA WebLogic、IBM WebSphere、Oracle Application Server、Borland Enterprise Server、SUN iPlanet Application Server等。这些产品一般都包括一组完整的产品线,用来支持JavaEE应用从开发、组装、发布及管理的整个过程。
组成
(1)应用服务器
商业公司产品中的应用服务器一般都完全支持JavaEE规范的应用服务器,除包括Servlet容器、EJB容器外,还提供WEB Services、CORBA等服务。
(2)应用集成化开发环境
商业公司的产品提供支持开发JavaEE应用的集成开发环境,可以大大提高应用开发、调试的效率。
(3)JavaEE规范之外的工具
除了在JavaEE规范中规定的部分外,商业公司的产品一般还包括提供服务器负载均衡、安全控制、开发企业门户等功能在内的工具。
开放源代码的产品
l 开放源代码的产品中有如Apache Tomcat及JBOSS等产品。这些产品不仅是免费的,而且能够提供很好的功能和性能,因此也有很广泛的应用。
l (1)Apache Tomcat
Apache Tomcat 是一个Servlet容器,它支持Servlet/JSP规范。有些商业公司的JavaEE平台产品中使用它作为自己应用服务器的Servlet容器,或者在JavaEE应用集成开发环境中作为调试应用程序的服务器。
l (2)JBOSS
JBOSS 是一个EJB容器,但是因为它是基于JMX微内核结构开发的,所以很容易与其它产品集成在一起使用,如可以很方便地将JBOSS和Tomcat集成在一起使用。另外,JBOSS还有配置简单、应用热发布(不用停止服务器及应用的情况下发布或升级应用)等优点。
五.JavaEE的应用(一)
五.JavaEE的应用(二)
使用JavaEE开发企业应用要注意的问题:
结合本企业的实际情况选用最适当的技术,需要终合考虑企业规模、业务特征、应用能力、预算费用、性能、开发周期、管理成本、维护成本等各种因素,还需要有一定的前瞻性。
JavaEE应用的现状:
l JavaEE是成长最快的技术应用框架,全球87%的新应用是由JavaEE分布式应用体系支撑的。最近,全球最大的ERP供应商SAP也宣布选用JavaEE。
l 但在中国,由于受限于技术没有普及、开发平台复杂难用、人力资源稀缺等因素,JavaEE应用还没有被客户完全接受,离大规模应用还有很长的路要走。
JavaEE应用的展望:
l JavaEE本身是一个很好的技术,JavaEE体系结构提供中间层集成框架用来满足没有太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,JavaEE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持。通过技术人员、厂商以及用户的共同努力,JavaEE一定能够成为用户进行电子商务应用和信息化建设的首选方案