部分企业级Java组.ppt
《部分企业级Java组.ppt》由会员分享,可在线阅读,更多相关《部分企业级Java组.ppt(492页珍藏版)》请在三一办公上搜索。
1、1,第三部分企业级Java组件,2,第6章Java 2 Enterprise Edtion,课程提纲,J2EE OverviewJ2EE Application ComponentsJ2EE Services:Service APIJ2EE Services:Run-time ServicesCommunicationsJ2EE应用程序基于角色的开发MVC设计模式Benefits of J2EE,3,课程提纲,J2EE OverviewJ2EE Application ComponentsJ2EE Services:Service APIJ2EE Services:Run-time Servi
2、cesCommunicationsJ2EE应用程序基于角色的开发MVC设计模式Benefits of J2EE,4,Java 2平台,5,What is J2EE?,支持以构件化的方法开发、部署、管理多层结构的分布式企业(Web)应用。提供一种统一的、开放标准的多层平台。构件依赖于系统级实体容器(Container)的运行时支持。容器提供:生命周期管理构件的部署为构件的运行指派线程(构件不是独立运行的)许多构件行为都可以在部署时以声明的方式进行定制。,6,J2EE平台技术,应用构件(组件)由开发人员实现,构成应用系统运行在J2EE平台上包含:客户端构件AppletsApplication Cl
3、ients服务端构件Web构件(Servlets,JSPs)EJBs,7,J2EE平台技术,服务J2EE应用构件所使用的功能由J2EE平台提供商实现,分为:Service API(开发时使用)运行时服务,9,J2EE平台技术,通信支持协作构件之间的通信由Container提供,J2SE,J2SE,J2SE,J2EE平台的执行模型,JMS,JNDI,RMI/IIOP,JDBC,JavaMail,JAF,Application Client Container,JMS,JNDI,RMI/IIOP,JDBC,JTA,JCA,Web Container,EJB Container,Database,E
4、IS(CICS),EIS(SAP),Applet Container,J2SE,Applet,ApplicationClient,Servlet,JSP,EnterpriseBean,HTTPSSL,HTTPSSL,RMI/IIOP,Client Tier,Middle Tier,EIS Tier,JavaMail,JAF,JMS,JNDI,RMI/IIOP,JDBC,JTA,JCA,10,Component/Container结构,Comp,Services J2EE Container,不需要关心底层(复杂的)常用服务的实现,提供底层常用的服务,Comp,Comp,Comp,11,Cont
5、ainer,每个J2EE构件都运行在某个特定的容器内,容器由J2EE平台提供商提供。容器为组件提供特定的开发用服务和运行时服务(如生命周期管理、安全性管理、事务处理等)不同类型的容器提供不同的服务。,12,开发与部署的分离,开发与部署互不相关,不互相限制。开发与部署的分离大大提高了可重用性和可维护性,也使得软件不依赖于具体的厂商。开发人员一次开发的软件可以部署在不同的环境中不同的系统资源,如数据库不同厂商的平台上不同事务处理、安全性控制策略的应用场合开发与部署的分离要依赖于J2EE平台提供的大量的服务和系统级特性以及J2EE标准的开放性。,13,基于角色的开发过程,将构建整个软件系统的任务划分
6、到不同的角色明确的划分任务与责任不同的阶段有不同的关注重点,这种划分使得每个角色仅关注他所要完成的工作实现了开发与部署的分离.,14,课程提纲,J2EE OverviewJ2EE Application ComponentsJ2EE Services:Service APIJ2EE Services:Run-time ServicesCommunicationsJ2EE应用程序基于角色的开发MVC设计模式Benefits of J2EE,15,Client Side Components-Applets,Java类图形界面(GUI)组件,一般运行在Web浏览器中,也可以运行在支持applet编
7、程模型的应用中(如Java SDK中的appletviewer)。在J2EE应用中一般用来提供用户界面。,16,Client Side ComponentsApplication Clients,Java程序一般具有图形用户界面。可以直接访问J2EE中间层的所有构件。可以直接调用EJB提供的服务。一般基于浏览器的客户端只能直接访问Web构件的服务,17,Server-Side Components-Servlets,Java类运行在服务端不需要图形界面接收HTTP请求,动态生成HTTP响应。,18,Server-Side Components-Servlets,/demostrate hand
8、ling a GET requestimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class GetDemo extends HttpServletpublic void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOExceptionresp.setContentType(text/html);PrintWriter out=resp.getWriter();String us
9、ername=req.getParameter(uname);String password=req.getParameter(userpw);out.println();out.println(GetDemo);out.println();out.println(Hello+username+);out.println(Your password was:+password+);out.println();out.println();out.close();,19,Server-Side Components-Servlets,20,Server Side Components-Java S
10、erver Pages(JSP),HTML document:嵌入了JSP特定的tag在页面中加入Java代码,动态生成页面的内容在服务器端,JSP页面被编译成Java Servlet执行。,Ch2 Simple jspDate and Time:hellohow are u?,21,Server Side Components-Enterprise JavaBeans(EJB)(1 of 2),EnterpriseJava Beans,Entity Beans,ContainerManagedPersistence,BeanManagedPersistence,Session Beans,S
11、tateless,Stateful,Message DrivenBeans,EJB 2.0中引入,22,Server Side Components-Enterprise JavaBeans(EJB)(2 of 2),客户端利用JNDI查找EJB Home。客户端利用EJB Home的create方法创建一个 EJB。本地EJB Home通知容器创建一个远程 EJB构件。容器向客户端返回EJB Object stub。客户端调用EJB Object上的方法,调用被转发到远程的EJB完成。,23,课程提纲,J2EE OverviewJ2EE Application ComponentsJ2EE
12、Services:Service APIJ2EE Services:Run-time ServicesCommunicationsJ2EE应用程序基于角色的开发MVC设计模式Benefits of J2EE,24,JNDI支持在程序中存取带名字的 Java对象。用于在网络中查找/定位组件或资源。目录服务JNDI非常类似于通用的目录服务。目前有很多种可用的目录服务,如果编写 一个应用时使用了某种特定的目录服务,很难迁移到另一种目录服务上。,Service API-JNDI(1/6),25,Service API-JNDI(1/6),JNDI屏蔽了不同目录服务之间的差异。JNDI service
13、API是和具体的目录服务无关的。这使得我们利用JNDI开发的应用可以不用修改代码而应用到不同的目录服务上。,26,Service API-JDBC(2/6),提供与厂商无关的数据库连接。提供一种通用的方法用来查询、更新关系 型数据库表,并且把数据库操作的结果 转化成Java的数据类型。一个JDBC驱动支持完成三件事情(跨平台):1.建立与数据库的连接2.向数据源发送查询和更新语句3.处理结果,27,Service API-JDBC(2/6),目前JDBC service API的版本是JDBC 2.0JDBC 2.0包含了一个内嵌的数据库连接池。增强了应用的数据库无关性。,28,Service
14、 API-JTA(3/6),事务(交易)管理支持可靠的服务端计算,这在很多关键系统中都是必需的。事务具有如下特性:原子性所有相关的操作必须全部成功;如果任何一个操作失败,则所有操作全部撤销。一致性 一致性保证事务所作的任何改变不会使系统处于无效状态。隔离性 并发的事务不会互相影响。事务访问的任何数据不会受其它事务所作的修改的影响,直到第一个事务完成。耐久性事务提交时,对数据所作的任何改变都要记录到持久存储器中。通常由事务日志实现。,29,Service API-JTA(3/6),More concerns on distributed transaction因为分布式事务可能会跨越多个组件、多
15、台机器,并可能涉及多个数据源,所以需要一种两阶段提交协议来实现。JTA:Java Transaction API支持分布式事务处理的标准API,与实现无关。如WebSphere中,利用一种支持两阶段提交的数据库驱动来实现JTA。可以通过在代码外的描述来定义事务处理级别参Run-time Service-Transaction,30,Service API J2EE Connector Architecture(JCA)(4/6),J2EE Server Runtime,JCA,J2EE构件,J2EE构件,J2EE构件,Resource Adapterfor the EIS CICS,Resou
16、rce Adapterfor the EIS IMS,Resource Adapterfor the EIS SAP,EIS(SAP),EIS(IMS),EIS(CICS),与具体要连接的系统无关的统一的API,由EIS厂商或者第三方厂商提供,31,Service API-Java Mail(5/6),Java Mail API定义了一组在程序中用来 调用邮件功能的API。这组API屏蔽了 真正的邮件服务所使用的协议。Sun提供了一种Java Mail API的实现,支持我们在应用中使用Email功能。,32,Service API-Java Mail(5/6),Java Mail servi
17、ce API使得Email可以在Internet中跨越平台和邮件协议传输。,33,Service API-Java IDL(6/6),Java IDL service API是用Java实现 的CORBA规范。支持异质(heterogeneous)对象的连接 与互操作性。,34,课程提纲,J2EE OverviewJ2EE Application ComponentsJ2EE Services:Service APIJ2EE Services:Run-time ServicesCommunicationsJ2EE应用程序基于角色的开发MVC设计模式Benefits of J2EE,35,Run
18、-time Services Life cycle,主要指EJB的生命周期管理由Container来管理运行于其中的构件的生命周期EJB规范统一了生命周期管理策略厂商实现J2EE平台时按照规范实现生命周期管理功能编写构件时要注意构件的生存期特性,36,Run-time Services-Transaction,事务(交易)管理支持可靠的服务端计算,这在很多关键系统中都是必需的。事务具有如下特性:原子性所有相关的操作必须全部成功;如果任何一个操作失败,则所有操作全部撤销。一致性 一致性保证事务所作的任何改变不会使系统处于无效状态。隔离性 并发的事务不会互相影响。事务访问的任何数据不会受其它事务所
19、作的修改的影响,直到第一个事务完成。耐久性事务提交时,对数据所作的任何改变都要记录到持久存储器中。通常由事务日志实现。,37,Run-time Services-Transaction,More concerns on distributed transaction因为分布式事务可能会跨越多个组件、多台机器,并可能涉及多个数据源,所以需要一种两阶段提交协议来实现。Container-Managed Transaction容器来管理事务,method-level可以在部署时指定事务属性Bean-Managed Transaction程序员在代码中利用JTA控制事务,38,Run-time Ser
20、vices-Security,安全控制级别认证(Authentication)Who r u?授权(Authorization)判定某个个体(Principal)是否具有在特定资源上执行某种操作的权限。资源:网页、Servlets、JSPs、EJBs等。,39,Run-time Services-Security,安全性控制声明的方式由容器控制声明一些安全性角色,并把角色映射到实际的安全域中Security-Role:逻辑的用户组,如经理角色、职员角色Security-Domain:安全控制实际应用的领域,如操作系统域、实际的应用域(xx公司)声明一些规则来进行安全性控制规则1:“经理”角色可
21、以执行“员工管理”Bean的“辞退员工”方法规则2:“所有人(未经过身份认证)”可以访问商品信息页面,40,Run-time Services-Security,安全性控制编程的方式,要结合声明的方式使用EJBContext.getCallerPrincipal()EJBContext.isCallerInRole(String role),41,Run-time Services-Persistence,Entity Bean相关的数据库操作由两种实现方式:Container Managed Persistence由容器进行具体的数据库操作Bean Managed Persistence由程
22、序员自己写代码(使用JDBC)完成具体的数据库操作,42,Run-time Services Resources,J2EE运行平台维护/管理应用所用到的系统资源:数据库连接池系统线程池带来的好处提高系统资源的利用率和效率应用程序与具体的资源相对无关(开发与部署分离),43,课程提纲,J2EE OverviewJ2EE Application ComponentsJ2EE Services:Service APIJ2EE Services:Run-time ServicesCommunicationsJ2EE应用程序基于角色的开发MVC设计模式Benefits of J2EE,44,Commun
23、ications:RMI and RMI/IIOP,RMI-Remote Method Invocation特定于Java语言,仅支持用Java语言编写的对象之间进行远程交互。使用JRMP(Java Remote Messaging Protocol)协议通信。RMI/IIOP 基于IIOP实现的RMIEJB客户端使用 RMI/IIOP与EJB通信厂商的实现使得程序员不必关心协议的细节。,45,Communications:JMS,JMS-Java Messaging Service定义了一组API,提供可靠的、异步的消息发送和接收功能。不同的厂商根据API实现异步 消息处理机制一般提供一个消
24、息服务器,46,课程提纲,J2EE OverviewJ2EE Application ComponentsJ2EE Services:Service APIJ2EE Services:Run-time ServicesCommunicationsJ2EE应用程序基于角色的开发MVC设计模式Benefits of J2EE,47,J2EE应用组装与安装,48,Packaging,构件提供者开发的构件被打包在不同的文档中JAR-Java ArchiveEJBs,Application ClientsWAR-Web ArchiveJSPs,HTML,GIF,JPG,Servlet classEAR-
25、Enterprise ArchiveJARs and WARsDeployment Descriptor打包JAR、WAR、或EAR都需要提供相应的DD。,49,J2EE Packaging,50,J2EE Packaging Contents,51,Deployment Descriptors,XML格式的文件用于描述:模块中所包含的组件模块所需要的环境(如安全性控制)每个模块或ear文件都有一个DD。可以由厂商提供的工具自动生成,并进行可视化的编辑:如Websphere可以手工创建和编辑,52,EJB Deployment Descriptor,The ejb-jar.xml同一jar文档
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 部分 企业级 Java
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6146700.html