J2EE组成及其在企业开发中的应用.ppt
J2EE组成及其在企业开发中的应用,说 明,本次交流不深入具体技术,而是从一个比较宏观的角度讲述J2EE平台所涉及的一些技术,对于每种技术只介绍其特点以及应用,如有可能对相似技术做了一些简单的比较。,内 容,一、J2EE的由来 二、J2EE的组成三、J2EE的应用,*一 般 知 识*,一、计算机应用程序的一般特点:大多数应用,从PC机上的简单报表程序到大型机上的复杂计算,都由三部分组成:用户界面部分:表示层应用逻辑部分:业务逻辑层数据访问部分:数据访问层 二、应用程序开发模型的变迁过程:单层 两层 三层 N层,1,2,3,1,2,3,1,2,3,1,2,3,4,一、J2EE的由来,1、传统应用程序模型 2、Web应用程序模型3、为什么需要J2EE4、什么是J2EE,1、传统应用程序模型(一),数据访问、表示和业务逻辑在一个应用中功能紧紧耦合在一起代码复用、代码可维护性、代码的修改十分困难应用不是分布式的,不具有可伸缩性,主机系统或单层结构:主机/终端模式,1、传统应用程序模型(二),服务器的数据库必须同每一个活动的客户保持连接,消耗大量的运算资源,随着客户数目的增加性能不断下降,且存在死锁及崩溃的可能数据模型“紧耦合”在每一客户端,数据库结构改变将导致全体客户端改变,不利于更新和维护用户界面和程序逻辑绑在一起,代码难以重用原始数据通过网络传递:加重网络负担不适应在多用户、多数据库、且非安全的网络环境,可扩展性差客户端应用程序越来越大,对使用者的要求也越来越高,客户/服务器结构:“胖”客户端,一、J2EE的由来,1、传统应用程序模型2、Web应用程序模型 3、为什么需要J2EE4、什么是J2EE,2、Web应用程序模型(一),传统的Web应用程序模型:三层分布式架构,2、Web应用程序模型(一),WWW浏览方式带来的变化:“Browser-based”的客户端与“Internetworking”计算方式向服务器端的集中转化客户端:业务数据模型与UI分开,更“瘦”业务逻辑在中间层,通过:连接池,多线程中间层可以处理多客户端(早期应用)编程困难且性能比较差:CGI(C/C+,VB,Perl等等),ISAPI,NSAPI,传统的Web应用程序模型:三层分布式架构,2、Web应用程序模型(二),N层计算模式的引入,采用N层计算结构,从逻辑角度看,系统分成客户端、Web服务器、应用服务器、数据库服务器四层;从物理角度看,应用服务器可以视用户并发数从1到N台进行扩充,以保证客户端用户的响应要求。,2、Web应用程序模型(二),从1层到N层,得到的改进:每一层可以被单独改变,而无需其它层的改变降低了部署与维护的开销,提高了灵活性、可伸缩性瘦客户端的引入使Internet接入方便,而计算被集中至服务器端,使性能提高成为可能仍然存在的问题:对企业级应用开发人员的要求太高:需要熟悉分布式协议(IIOP、IIOPS、HTTP、HTTPS、CGI、ISAPI、NSAPI),进行一致性事务处理,负载平衡,考虑安全性,N层计算模式的引入,2、Web应用程序模型(三),应用程序各部分之间松耦合,从而应用程序各部分的更新相互独立业务逻辑集中放在服务器上由所有用户共享,使得系统的维护和更新变得简单,也更安全数据库不再和每一个活动的用户保持一个连接,而是由应用程序组件负责与数据库打交道,降低数据库服务器的负担,提高了性能组件之间和编程语言之间的战争不会影响互操作性,多层应用程序的真正优点,一、J2EE的由来,1、传统应用程序模型2、Web应用程序模型3、为什么需要J2EE 4、什么是J2EE,3、为什么需要J2EE,在企业级应用开发中所面临的而且必须解决的问题:分布式可移植面向Web体系可装配能满足企业计算要求一致性事务性安全性还要有好的特性可伸缩可扩展易维护,3、为什么需要J2EE,J2EE提供了一套完整的解决所有这些问题的框架方案:提供了分布式、可移植构件的框架简化了服务器端中间层构件的设计为构件与应用服务器提供标准API获得了业界的广泛支持,一、J2EE的由来,1、传统应用程序模型2、Web应用程序模型3、为什么需要J2EE4、什么是J2EE,4、什么是J2EE,Open and standard based platform for developing,deploying and managing n-tier,Web-enabled,server-centric enterprise applications开放的、基于标准的平台,用以开发、部署和管理N层结构、面向Web的,以服务器为中心的企业级应用,内 容,一、J2EE的由来二、J2EE的组成 三、J2EE的应用,二、J2EE的组成,1、What is Java 2 Platform 2、J2EE的组成3、J2EE架构及核心技术简介,1、What is Java 2 Platform,Java的版本历史:从一种语言发展为一种平台Java的前身是一种与平台无关的语言“OaK”,诞生于1991年Sun公司的一个研究项目,最初目的是为了应用于消费类电子设备的开发;1994年Internet开始起步,1995年NetScape宣布把Java集成到其浏览器中,可执行的Java代码可以以Applet的形式在浏览器中运行,Java开始流行。Sun公司1996年1月发布JDK1.0,1997年2月发布JDK1.1,Java开始在企业中应用。1998年12月发布JDK1.2,即Java 2 平台,并于1999年6月经集成重组后重新发布。目前J2SE的最高版本为1.4。目前主要的Java平台及特点如下:J2ME-Java 2 Micro Edition:用于创建嵌入式应用程序的Java平台(如PDA、仪表)。J2SE-Java 2 Standard Edition:用于创建典型的桌面与工作站应用的Java平台。J2EE-Java 2 Enterprise Edition:用于创建可扩缩的企业应用的Java平台。,二、J2EE的组成,1、What is Java 2 Platform2、J2EE的组成 3、J2EE架构及核心技术简介,2、J2EE的组成,J2EE,J2EESpecification,J2EEReference Implementation,J2EECompatibilityTest Suite,J2EEBlue Prints,2、J2EE的组成,J2EE,J2EESpecification,J2EEReference Implementation,J2EECompatibilityTest Suite,J2EEBlue Prints,J2EE规范:定义J2EE的规范,开发商按 照这个规范实现自己的J2EE系统。,2、J2EE的组成,J2EE,J2EESpecification,J2EEReference Implementation,J2EECompatibilityTest Suite,J2EEBlue Prints,J2EE参考实现:J2EE平台的软件开发包(J2EE SDK);J2EE的完全实现;一组工具和运行环境;完全免费得到(,2、J2EE的组成,J2EE,J2EESpecification,J2EEReference Implementation,J2EECompatibilityTest Suite,J2EEBlue Prints,J2EE兼容测试包:用来测试一种应用是否符合J2EE的规范,2、J2EE的组成,J2EE,J2EESpecification,J2EEReference Implementation,J2EECompatibilityTest Suite,J2EEBlue Prints,J2EE蓝图:提供了用于实施基于J2EE的多层应用的文档和实例套件的编程模型,简化了开发基于J2EE的多层应用程序的复杂性。它应被用作开发人员设计和优化组件的原则,以便从策略上对开发工作进行分工,分配技术资源。,二、J2EE的组成,1、What is Java 2 Platform2、J2EE的组成3、J2EE架构及核心技术简介,3、J2EE架构及核心技术简介,J2EE架构:,3、J2EE架构及核心技术简介,J2EE核心技术:13种 EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC XML、,3、J2EE架构及核心技术简介,EJB J2EE的基石:EJB(Enterprise JavaBeans):不是一个具体的产品,而是一个Java服务器端组件开发的规范,其目的是为了定义一个用来开发面向对象分布式应用组件的标准方法,软件厂商根据它来实现EJB服务器。使用EJB,Java程序员可以将一些定义明确的程序块组合到一起,从而方便、快捷地建构起分布式应用程序。EJB规范在简化分布式应用程序开发复杂性方面也做了大量的工作,所以EJB程序员不必太担心事务处理、多线程、资源管理等方面的问题,可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。使用EJB可以使整个程序分块明确,并且EJB可以使用其它EJB或JDBC等服务,从而增强了分布式应用程序的可扩展性和性能;另外,EJB的使用增强了整个系统程序的可靠性、可管理性和可移植性。EJB容器是:一个管理一个或多个EJB类/实例的抽象。它通过规范中定义的接口使EJB类访问所需的服务。容器厂商也可以在容器或服务器中提供额外服务的接口。,3、J2EE架构及核心技术简介,EJB J2EE的基石:EJB服务器是:管理EJB容器的高端进程或应用程序,并提供对系统服务的访问。EJB服务器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他服务(如CORBA服务)的访问。一个EJB服务器必须提供支持对JNDI的名字服务和TS事务服务的可访问。EJB分为两种:会话EJB和实体EJB,会话EJB向客户提供一定的服务,如:特定的商业逻辑、数据库查询等;而实体EJB则代表数据对象,通常代表的是数据表记录集的一行,一个实体EJB可以同时与多个客户进行交互。,3、J2EE架构及核心技术简介,J2EE核心技术:EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、,3、J2EE架构及核心技术简介,CORBA体系结构:核心ORB,3、J2EE架构及核心技术简介,CORBA技术:CORBA(Common Object Request Broker Architecture)是一个分布式对象体系结构,它独立于平台,也独立于语言。在这个体系结构中,一个对象可以被本机上的客户或远程客户通过方法激活来存取。客户(一个对象或应用)无须知道被调用对象(称为服务对象)的运行环境,也无须知道实现这个对象的编程语言,客户只要知道服务对象的逻辑地址和提供的接口。这种互操作性的关键是IDL(Interface Definition Language、接口定义语言),IDL说明对象接口中的方法,这些方法可以被其它对象(或应用)激活。,3、J2EE架构及核心技术简介,J2EE核心技术:EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、,3、J2EE架构及核心技术简介,RMI技术:RMI(Remote Method Invoke)是一种被EJB使用的更底层的协议,正如其名字所表示的那样,RMI协议调用远程对象上方法,使用序列化方式在客户端和服务器端的对象之间传递数据。RMI和CORBA相比:两者的关键差别在于语言环境,Java RMI是一个分布式对象计算的纯Java解决方案(如,在Java RMI中,对象的接口用Java定义,而不是用IDL);其次,CORBA没有定义安全服务,而Java RMI继承了Java的安全性;再者,CORBA有不同的实现,不同的独立软件开发商的不同实现均有独特性,这使得在不同平台上的匹配比较困难,而且不是所有CORBA产品开发商都支持所有平台,而几乎所有平台都支持Java虚拟机,因此Java RMI具有更高的可移植性。如果客户对象和服务对象都基于Java虚拟机,那么Java RMI是分布对象计算的最好选择。当然,IIOP已经提供了Java RMI和CORBA的互操作能力,而且两者的发展有互相借鉴的趋势。,3、J2EE架构及核心技术简介,J2EE核心技术:EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、,3、J2EE架构及核心技术简介,JSP技术:JSP是服务器端的脚本语言,是以Java和Servlet为基础开发而成的动态网页生成技术,它的底层实现是Java Servlet。JSP(Java Server Pages)页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。特点:面向对象,跨平台,和Servlet一样稳定,可以使用Servlet提供的API,克服了Servlet的缺点。应用:一般和JavaBeans结合使用,从而将界面表现和业务逻辑分离。,3、J2EE架构及核心技术简介,JSP和ASP的比较(一):相似:都是运行于服务器端的脚本语言,两者都是动态网页生成技术。这两项技术都使用HTML来决定网页的版面,都是在HTML 代码中混合某种程序代码,由语言引擎解释执行程序代码。HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。,3、J2EE架构及核心技术简介,JSP和ASP的比较(二):不同:JSP是由Sun推出的一项技术,是基于JavaServlet以及整个java体系的Web开发技术,利用这一技术可以建立先进、安全和跨平台的动态网站。ASP是MS公司推出的技术,只能在MS的平台上运行,无法实现跨平台,也无安全性保障。ASP下的编程语言是 VBScript 之类的脚本语言,而JSP 使用的是Java。ASP 与 JSP 还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 ASP 下,VBScript 代码被 ASP 引擎解释执行;在 JSP 下,代码被编译成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。,3、J2EE架构及核心技术简介,J2EE核心技术:EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、,3、J2EE架构及核心技术简介,Java Servlet技术:Servlets(Server Applet):是一些运行于Web服务器端的Java小程序,用来扩展Web服务器的功能。Servlets用特定的Java解决方案替代了其它的Web服务器方编程模式(如:CGI,ISAPI等),因而继承了Java的所有特性(跨平台、多线程、OO)。Servlets可以嵌入在不同的Java Web服务器之中,因为用来编写Servlets的Servlet API对于服务器环境和协议没有任何特殊的要求,所以Servlets具有很强的可移植性,也不像利用CGI程序等其它方式那样具有性能局限。Servlets也同样使用HTTP协议与客户端进行通讯,所以有时也称Sevlets为“HTTP Servlets”。Servlet是一种扩展Web服务器功能的简单而相似的技巧,而且由于它是用Java编写的,所以能够访问整个Java API库,包括用于访问企业数据库的JDBC API。,3、J2EE架构及核心技术简介,Java Servlet和JSP的比较:两者都是基于Java的技术,所以都继承了Java的所有特性(跨平台、多线程、OO),都可以使用Java强大的API。两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。两者在J2EE体系结构中的工作层次相同,都负责与客户端的连接。Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简单容易。Servlet主要用于从客户端接收请求信息,而JSP主要负责将服务器端信息传送到客户端。使用JSP的真正意义在于:可以将界面设计和业务逻辑设计分离。,3、J2EE架构及核心技术简介,J2EE核心技术:EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、,3、J2EE架构及核心技术简介,JavaBean技术:JavaBean是基于Java的组件模型,有点类似于Microsoft的COM组件。在Java平台中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。JavaBean通过Java虚拟机(Java Virtual Machine)执行,运行JavaBean最小的需求是JDK1.1或者以上的版本。JavaBean传统的应用在于可视化的领域,如AWT下的应用。自从Jsp诞生后,JavaBean更多的应用在了非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。,3、J2EE架构及核心技术简介,J2EE核心技术:EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、,3、J2EE架构及核心技术简介,JDBC技术:JDBC是一组API,定义了用来访问数据源的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据库的访问也具有平台无关性。,3、J2EE架构及核心技术简介,J2EE核心技术:EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、,3、J2EE架构及核心技术简介,XML技术:XML(Extensible Markup Language)是一种可以用来定义其它标记语言的语言,被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但是它和Java具有的相同目标即平台独立性。通过将Java和XML的组合,可以得到一个完美的具有平台独立性的解决方案。J2EE平台全面支持和实施XML,这种强大的组合可使XML具备跨平台的兼容性,甚至用于对XML代码进行语法检查和调试的工具也可与平台无关。因为XML可实施独立于平台的数据,而J2EE平台则可实施独立于平台的解决方案,所以J2EE技术和XML技术分别是企业开发的阴阳两极。XML可通过移植的方式表现数据,因此就对Java技术的可移植性构成了补充。,3、J2EE架构及核心技术简介,J2EE核心技术:EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、,3、J2EE架构及核心技术简介,J2EE其它核心技术:EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、,几个对应于几种服务的企业级API:JNDI(Java Naming and Directory Interface)、JMAPI(Java Management API)、JTS/JTA(Java Transaction Service/API)、JMS(Java Messaging Service)、Java Security API。,3、J2EE架构及核心技术简介,J2EE核心技术中最常用的技术:EJB、CORBA、RMI、JSP、Java Servlet、JavaBean、JDBC、XML、开发大型应用:异构、分布、数据交换,内 容,一、J2EE的由来二、J2EE的组成三、J2EE的应用,三、J2EE的应用(一),三、J2EE的应用(二),使用J2EE开发企业应用要注意的问题:结合本企业的实际情况选用最适当的 技术,需要终合考虑企业规模、业务特征、应用能力、预算费用、性能、开发周期、管理成本、维护成本等各种因素,还需要有一定的前瞻性。,三、J2EE的应用(三),J2EE应用的现状:J2EE是成长最快的技术应用框架,全球87%的新应用是由J2EE分布式应用体系支撑的。最近,全球最大的ERP供应商SAP也宣布选用J2EE。但在中国,由于受限于技术没有普及、开发平台复杂难用、人力资源稀缺等因素,J2EE应用还没有被客户完全接受,离大规模应用还有很长的路要走。J2EE应用的展望:J2EE本身是一个很好的技术,J2EE体系结构提供中间层集成框架用来满足没有太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持。通过技术人员、厂商以及用户的共同努力,J2EE一定能够成为用户进行电子商务应用和信息化建设的首选方案。,内 容,一、J2EE的由来 二、J2EE的组成 三、J2EE的应用,非常高兴能和大家一起交流谢谢!,