第11章OracleJ2EE高级技术与JDeveloper1、介绍J2EE及其结构、J2EE应用程序的组成及Oracle9i的J2EE技术2、Oracle9i的J2EE服务器Oracle9iApplicationServerContainersforJ2EE(OC4J)和Oracle9iJava商业组件(BusinessComponentsforJava,BC4J)的特点3、介绍Oracle9iJ2EE应用的最佳开发工具JDeveloper4、给出通过BC4J实现J2EE应用程序的示例目录11.1Java2企业版(J2EE)11.2Oracle9i的J2EE技术与OC4J11.3Oracle9iJava商业组件(BC4J)11.4JDeveloper11.1Java2企业版(J2EE)一、J2EE的由来√二、J2EE的组成*一般知识*一、计算机应用程序的一般特点:大多数应用,从PC机上的简单报表程序到大型机上的复杂计算,都由三部分组成:用户界面部分:表示层应用逻辑部分:业务逻辑层数据访问部分:数据访问层二、应用程序开发模型的变迁过程:单层两层三层N层1231231231234一、J2EE的由来1、传统应用程序模型√2、Web应用程序模型3、为什么需要J2EE4、什么是J2EE1、传统应用程序模型(一)数据访问、表示和业务逻辑在一个应用中代码复用、代码可维护性、代码的修改十分困难应用不是分布式的,不具有可伸缩性主机系统或单层结构:主机/终端模式1、传统应用程序模型(二)用户界面和程序逻辑绑在一起,代码难以重用服务器的数据库必须同每一个活动的客户保持连接,消耗大量的运算资源,随着客户数目的增加性能不断下降,且存在死锁及崩溃的可能数据模型“紧耦合”在每一客户端,数据库结构改变将导致全体客户端改变,不利于更新和维护客户端应用程序越来越大,对使用者的要求也越来越高客户/服务器(Client/Server,C/S)结构:“胖”客户端胖客户端:表示逻辑业务逻辑业务数据模型通讯FatclientFatclient一、J2EE的由来1、传统应用程序模型2、Web应用程序模型√3、为什么需要J2EE4、什么是J2EE2、Web应用程序模型(一)传统的Web应用程序模型:三层分布式架构2、Web应用程序模型(一)WWW浏览方式带来的变化:“Browser-based”的客户端与“Internetworking”(网际互连)计算方式向服务器端的集中转化客户端:业务数据模型与UI分开,更“瘦”业务逻辑在中间层,通过:连接池,多线程可以处理多客户端早期应用编程困难且性能比较差:CGI(C/C++,VB,Perl等等),ISAPI,NSAPI传统的Web应用程序模型:三层分布式架构2、Web应用程序模型(二)N层计算模式的引入采用N层计算结构,从逻辑角度看,系统分成客户端、Web服务器、应用服务器、数据库服务器四层;从物理角度看,应用服务器可以视用户并发数从1到N台进行扩充,以保证客户端用户的响应要求。N层(N-tier)WS:WebServerAS:ApplicationServerBWSASDB2、Web应用程序模型(二)2、Web应用程序模型(二)从1层到N层,得到的改进:每一层可以被单独改变,而无需其它层的改变降低了部署与维护的开销,提高了灵活性、可伸缩性引入“瘦客户端”,计算被集中至服务器端,使性能提高成为可能仍然存在的问题:对企业级应用开发人员的要求太高:需要熟悉分布式协议(IIOP、IIOPS、HTTP、HTTPS、CGI、ISAPI、NSAPI),进行一致性事务处理,负载平衡,考虑安全性……N层计算模式的引入2、Web应用程序模型(三)应用程序各部分之间松耦合,从而应用程序各部分的更新相互独立业务逻辑集中放在服务器上由所有用户共享,使得系统的维护和更新变得简单,也更安全数据库不再和每一个活动的用户保持一个连接,而是由应用程序组件负责与数据库打交道,降低数据库服务器的负担,提高了性能多层应用程序的真正优点一、J2EE的由来1、传统应用程序模型2、Web应用程序模型3、为什么需要J2EE√4、什么是J2EE3、为什么需要J2EE在企业级应用开发中所面临的而且必须解决的问题:分布式可移植旧系统集成支持面向Web可装配满足企业计算要求一致性事务性安全性要有好的特性可伸缩可扩展易维护3、为什么需要J2EE企业级软件概述“企业”是指一个为了实现某个共同目的而在一起工作的人或实体的组织。这些组织的形式和大小并不限定,有大有小、是盈利性的或非营利性的、可能是政府机关也可能是非政府机构。一般使用术语“企业”时,极有可能指的就是大型营利性组织,如Intel、GE、Wal-Mart、摩根银行或eBay等等。企业通常都有一些共同的需求,例如信息共享与处理、资产管理与跟踪、资源规划、客户机用户管理、商业机密保护等等。而术语“企业软件”就是能够支持企业共同需求的这类软件的总称。3、为什么需要J2EE企业软件和基于组件的软件在软件开发过程中,出现面向对象开发软件的方法后,可以实现代码重用,但只能部分实现,原因之一是对象都细粒度化,造成对象间紧密耦合状态,从而使得大范围的重用变得很困难。解决问题的方法是设计软件组件。与对象不同,软件组件是在更高的抽象级别中设计的,可以提供一个完整的功能或服务。组件间的耦合更为松散。利用组件的接口,可以将组件迅速组合在一起构建更大的应用程序,这样所用的成本也比较合算。3、为什么需要J2EEJ2EE提供了一套完整的解决所有这些问题的框架方案:提供了分布式、可移植组件的框架为组件与应用服务器提供标准API(应用编程接口ApplicationProgrammingInterface)简化了服务器端中间层组件的设计3、为什么需要J2EEJ2EE对开发者和用户来说意味着:更短的开发时间可重用组件JSP(JavaServerPages)EJB(EnterpriseJavaBeans)更简化的连接XML,JDBC,RMI-IIOP一、J2EE的由来1、传统应用程序模型2、Web应用程序模型3、为什么需要J2EE4、什么是J2EE√4、什么是J2EEOpenandstandardbasedplatformfordeveloping,deployingandmanagingn-tier,Web-enabled,server-centricenterpriseapplications开放的、基于标准的平台,用以开发、部署和管理N层结构、面向Web的,以服务器为中心的企业级应用内容一、J2EE的由来二、J2EE的组成√二、J2EE的组成1、WhatisJava2Platform√2、J2EE的体系结构3、J2EE架构及核心技术简介1、WhatisJava2PlatformJava的版本历史:从一种语言发展为一种平台Java的前身是一种与平台无关的语言-“OaK”,诞生于1991年Sun公司的一个研究项目,最初目的是为了应用于消费类电子设备的开发;1994年Internet开始起步,1995年NetScape宣布把Java集成到其浏览器中,可执行的Java代码可以以Applet的形式在浏览器中运行,Java开始流行。1、WhatisJava2PlatformJava的版本历史:从一种语言发展为一种平台Sun公司1996年1月发布JDK(JavaDevelopmentKits)1.0,1997年2月发布JDK1.1,Java开始在企业中应用。1998年12月发布JDK1.2,即Java2平台,并于1999年6月经集成重组后重新发布。目前J2SE的最高版本为1.4。1、WhatisJava2Platform目前主要的Java平台及特点如下:J2ME-Java2MicroEdition:用于创建嵌入式应用程序的Java平台(如移动电话、PDA、信息家电等)。J2SE-Java2StandardEdition:用于创建典型的桌面与工作站应用的Java平台。J2EE-Java2EnterpriseEdition:用于创建可扩缩的企业应用的Java平台。J2EE运行在J2SE之上。1、WhatisJava2PlatformJ2EE规范J2EE是SUN公司定义的一个开发分布式企业级应用的规范。它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是指根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行(如Servlet组件在Servlet容器上运行,EJB组件在EJB容器上运行),容器间通过相关的协议进行通讯,实现组件间的相互调用。遵从这个规范的开发者将得到行业的广泛支持,使企业级应用的开发变得简单、快速。二、J2EE的组成1、WhatisJava2Platform2、J2EE的体系结构√3、J2EE架构及核心技术简介2、J2EE的体系结构J2EE体系结构是一个多层的、端到端的解决方案,这个系统结构横跨客户层到表示层、业务层,最终到达企业信息系统层(EIS)。2、J2EE的体系结构客户层(ClientTier)——通常是一台桌面计算机,客户可以使用GUI与应用程序进行交互。中间层(MiddleTier)——由表示层和业务层组成,通常由一个或者多个Web服务器和应用服务器组成。应用服务器处理客户的请求,执行复杂的表示形式和业务逻辑,然后将结果返回给客户层。企业信息系统层(EnterpriseInformationSystem,EIS)——也称为数据层,是驻留业务数据的地方。在处理业务逻辑时,由中间层访问EIS层。二、J2EE的组成1、WhatisJava2Platform2、J2EE的体系结构3、J2EE架构及核心技术简介√3、J2EE架构及核心技术简介J2EE架构:3、J2EE架构及核心技术简介J2EE应用程序构成:J2EE技术提供了一个基于组件的方法来设计、开发、装配和部署企业级应用程序。一个J2EE应用程序可能包含一个或多个EJB组件、Web组件,或应用程序客户端组件。组件技术:组件(component)是一个应用程序级的软件单元。J2EE组件:客户端组件:客户端应用程序和Applet服务器端Web组件:JavaServlet和JSP服务器端的商业组件:EnterpriseJavaBeans3、J2EE架构及核心技术简介J2EE容器容器是一种运行在服务器上的软件实体,用于管理特定类型的组件。为开发的J2EE组件提供了执行环境。通过容器,J2EE体系结构就能在开发和部署间提供无关性,并在不同类型的中间层服务器间提供可移植性。容器还负责管理部署在其中的组件的生命周期,及诸如资源汇集和强制执行安全之类的工作。依赖于容器的类型,还可以访问一些或全部J2EEAPI所有的J2EE组件都部署于容器中并在容器中执行。3、J2EE架构及核心技术简介J2EE容器类型:应用程序容器:管理独立的java应用程序Applet容器:为Applet提供一个执行环境Web容器:管理Web组件(JSP页面和Servlet组件)企业级容器:管理EJB组件3、J2EE架构及核心技术简介J2EE服务器和容器部署时会将J2EE应用程序组件安装到J2EE容器中,如图11.2所示。3、J2EE架构及核心技术简介J2EE服务器和容器J2EE服务器是J2EE产品的运行部分,它提供EJB容器和Web容器。3、J2EE架构及核心技术简介J2EE应用组件3、J2EE架构及核心技术简介3、J2EE架构及核心技术简介J2EE容器和组件:容器处理组件处理•分布性•可伸缩性•可用性•事务性•安全性•生命周期管理•表示•JSP,Servlet,Applet•业务逻辑•EJB•数据访问逻辑•EJB3、J2EE架构及核心技术简介J2EE核心技术:13种EJB、CORBA、