《应用服务器与J2EE.ppt》由会员分享,可在线阅读,更多相关《应用服务器与J2EE.ppt(31页珍藏版)》请在三一办公上搜索。
1、第二章 应用服务器与J2EE,应用服务器一个可以提供通过Internet来实施电子商务和企业计算的平台。Internet上的操作系统。-SUN,文件服务器-如Novell的NetWare 数据库服务器-如Oracle数据库服务器,MySQL,PostgreSQL,Microsoft SQL Server等 邮件服务器-Sendmail,Postfix,Qmail,Microsoft Exchange,Lotus Domino等 网页服务器-如Apache,thttpd,微软的IIS等 FTP服务器-Pureftpd,Proftpd,WU-ftpd,Serv-U等 应用服务器-如Bea公司的We
2、bLogic,JBoss,Sun的GlassFish 代理服务器-如Squid cache 计算机名称转换服务器-如微软的WINS服务器,2.1 传统的应用体系结构,C/S(Client/Server)模式与B/S(Browser/Server)模式,2.1.1 C/S(客户端/服务器)模式,客户机和服务器结构,通过它可以利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通信开销。,客户端,数据库,C/S体系结构图示,前台程序,后台程序,C/S体系结构特点:无论是客户端还是服务端都需要特定的软件支持。没能提供用户期望的开放环境,适用于Intranet。服
3、务器端运行负荷较轻。数据的存储管理功能较为透明。C/S体系结构的劣势是高昂的维护成本且投资大。,2.1.2 B/S(浏览器/服务器)模式,在B/S体系结构中,用户通过浏览器向分布在网络上众多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。,Browser浏览器,Web服务器,数据库,B/S体系结构图示,B/S体系结构特点:简化了客户端的工作,瘦客户端结构。对数据库的访问和应用程序的执行将在Server上完成。把技术维护人员从繁重的维护升级工作中解脱出来。,B/S体系结构不足方面:,浏览器应用于Web应用系统时,许多功能不能实现或实现困难。复杂的应用构造困难。HTTP可
4、靠性低,采用浏览器进行系统维护不安全。Web服务器同时要处理客户请求以及与数据库联接,负载过重。业务逻辑和数据安全不足。,2.2 多层应用体系结构,客户端表示层软件,中间件服务器应用逻辑:事务处理监控信息排队Web服务等,数据库,瘦客户:提供简洁的人机交互界面,完成数据的输入/输出。业务服务(中间层):完成业务逻辑、实现与数据库通信、实现分布式管理 负载均衡、Fail/Recover、安全隔离等。数据服务:提供数据存储。,2.2.1 多层分布式体系结构特点:安全性:中间层隔离了客户直接对数据库的访问,保护数据。稳定性:中间层缓冲了客户端与数据库的实际连接,使数据库 的连接数量远小于客户端应用数
5、量。易维护:业务逻辑在中间服务器,当业务规则变化后,客户端 基本不变。快速响应:通过负载均衡以及缓存数据能力,客户端能够 快速响应。5.系统扩展灵活:可以在中间层部署更多的应用服务。,2.2.2 多层体系结构开发需考虑三方面问题开发环境应用程序的集成应用程序的配置,三大技术标准:J2EE、.Net、CORBA,2.3 JavaEE,2.3.1 Java版本历史:从一种语言发展为一种平台,1.1991年,SUN的OaK语言,主要用于消费类电子设备的开发。,2.1995年,NetScape宣布把Java集成到其浏览器中。,3.1996年1月,Sun发布了JDK Java Development K
6、its 1.0。包括运行环境JRE和开发环境JDK,4.1997年2月,发布了JDK1.1。,5.1998年,JDK1.2版本发布,使用了新名称Java 2 Platform。同时Sun发布了JSP/Servlet、EJB规范以及将Java分成了J2EE、J2SE和J2ME。,6.2000年,JDK1.3 发布。,7.2002年,JDK1.4 发布。,8.2004年,JDK1.5 发布。同时JDK1.5改名为J2SE5.0。推出了EJB3.0规范。Java服务器界面编程规范JavaServer Faces(JSF)也跟着推出。,9.2005年6月,JavaOne(Open Net Enviro
7、nment)大会召开,SUN发布Java SE 6。J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME。,2.3.2 Java EE应用体系结构,Java EE是一种利用Java 2 平台简化企业解决方案的开发、部署和管理相关复杂问题的体系结构。,1.什么是Java EE?,Open and standard based platform for developing,deploying and managing n-tier,Web-enabled,server-centric enterprise applications,Client Tier,Mi
8、ddle Tier,EIS,HTML,Applet,Web Browser,JavaApp,Desktop,Java Client,Device,Web Server,JSP,JSP,Servlet,ServerServices,EJB Container,EJB,EJB,EJB,ContainerServices,Enterprise Data,2.Java EE体系结构:N层的体系结构,3.JavaEE的技术体系:,Java EE是一系列技术标准所组成的平台,包括:EJB-企业级JavaBean(Enterprise Java Beans)RMI-Remote Method Invocat
9、ion JAAS-Java Authentication and Authorization Service JACC-J2EE Authorization Contract for Containers JAF-Java Beans Activation Framework JAX-RPC-Java API for XML-Based Remote Procedure Calls JAX-WS-Java API for XML Web Services JAXM-Java API for XML Messaging JAXP-Java XML解析API(Java API for XML Pr
10、ocessing)JAXR-Java API for XML Registries JCA-J2EE连接器架构(J2EE Connector Architecture)JDBC-Java数据库联接(Java Database Connectivity)JMS-Java消息服务(Java Message Service)JMX-Java Management Extensions JNDI-Java名字与目录接口(Java Naming and Directory Interface)JSF-Java Server Faces JSP-Java服务器页面(Java Server Pages)JS
11、TL-Java服务器页面标准标签库(Java Server Pages Standard Tag Library)JTA-Java事务API(Java Transaction API)JavaMailServlet-Java Servlet API StAX-Streaming APIs for XML Parsers WS-Web Services,2.3.3 为什么需要Java EE,1.企业级应用开发中所面临的问题:,分布式可移植系统集成支持面向WEB可装配满足企业计算要求,一致性 事务性 安全性,其它特性,可伸缩 可扩展 易维护,2.Java EE提供了一套完整的解决所有这些问题的 框
12、架方案:,提供了分布式、可移植组件的框架,为组件与应用服务器提供标准API,简化了服务器端中间层组件的设计,组件:一个应用程序级的软件单元。,Java EE组件:,1.客户端组件:客户端应用程序和Applet,2.服务器端Web组件:Java Servlet和JSP,3.服务器端的商业组件:Enterprise JavaBeans,2.3.4 Java EE容器及服务器,1.Java EE容器,容器是一种运行在服务器上的软件实体,用于管理特定类型的组件。为开发的Java EE组件提供了执行环境。,如:Web组件容器Apache Tomcat,容器负责管理部署在其中的组件的生命周期,及诸如资源汇
13、集和强制执行安全之类的工作。,所有的Java EE组件都部署于容器中并在容器中执行。,2.Java EE容器类型,应用程序容器:管理独立的Java应用程序 Applet容器:为Applet提供一个执行环境 Web容器:管理Web组件(JSP页面和Servlet组件)企业级容器:管理EJB组件,3.Java EE服务器,J2EE服务器是J2EE产品的运行部分,它提供EJB容器和Web容器。,如:WebLogic、WebSphere、JBoss,3.体系结构的划分:非分布式和分布式两大体系结构,3.1 非分布式体系结构,非分布式体系结构比较适合于Web应用,它们在一个容器里处理所有的页面逻辑和业务
14、逻辑,所有的应用组件都只运行在同一个JVM里面。系统变得简单而有效。,非分布式结构下一般有以下几个开发模式:,1.数据库构建业务逻辑的Web应用,Web浏览器,EIS企业数据源,Servlet、Jsp、Html,Web容器,处理表示层逻辑,处理业务/持久层逻辑,客户端,JDBC,企业的业务逻辑主要在数据库服务器端,通过使用存储过程、触发器等数据库特有技术完成。Web容器利用JDBC调用数据库的存储过程获取数据,利用Servlet、Jsp、HTML等处理表示层的逻辑。,优点:简单性。速度。测试容易。系统部署简单。,缺点:整个应用对数据库的功能和容量要求高。维护不易。数据库代码可能会很复杂。系统扩
15、展性差,数据库性能要求高,性能调整代价大。,2.具有处理业务逻辑组件的Web应用,Web浏览器,EIS企业数据源,Servlet、Jsp、Html,Web容器,客户端,业务逻辑JavaBean,Web容器不仅负责表示层,还要处理业务逻辑。,J2EE中最常见,结构最简单的开发模式,所谓的“轻量级”企业开发模式,优点:结构简单。不需EJB容器支持的J2EE应用服务器(Tomcat、Resin)相应速度快。整个应用运行在同一个JVM内,没有远程调用。调试和测试容易。代码本地化,无需部署就可调试。系统部署容易灵活。利用Web应用服务器的负载均衡技术,在多台机器上 部署同一应用。,缺点:对外只有一个We
16、b接口,除非增加一个Web Service,否则很难支持其它 独立GUI客户端。2.整个应用只能运行在一个JVM,无法将组件自由地部署在其它机器上。3.没有用到EJB容器的事务支持,需要自己在代码里创建和管理事务。4.应用服务器不支持EJB容器,对于开发复杂的企业应用显得力不从心。,3.使用本地接口EJB的Web应用,Web浏览器,EIS企业数据源,Servlet、Jsp、Html,Web容器,客户端,本地接口调用EJB,Entity、Session、MessageBean,EJB容器,中间业务层的业务接口使用本地EJB实现,而不是采用普通JavaBean。,优点:具备第二种模式(使用Java
17、Bean)的所有优点。利用了EJB容器的各种服务,而又没有分布式EJB应用那么复杂。本地EJB不用远程调用,不需要窜行化,系统性能开销小。,缺点:开发相对复杂。2.对外也只是一个Web接口,很难支持其它客户端,除非增加Web Service。3.整个应用运行在同一JVM,所有组件必须部署在同一物理机器上。调试不容易。需要运行J2EE应用服务器。即使是本地调用,仍然慢于普通方法调用。,3.2 分布式体系结构开发模式,1.使用远程EJB的分布式应用,Web浏览器,EIS企业数据源,Servlet、Jsp、Html,Web容器,客户端,远程接口调用EJB,Entity、Session、Message
18、Bean,EJB容器,HTTP,其他客户端,远程接口调用EJB,分布式系统经典的开发模式,通过EJB及其调用EJB的组件部署在不同JVM的方式对应用进行物理的以及逻辑的划分,优点,很容易地使用J2EE应用服务器的各种现成的服务,减低开发分布式系统的难度。通过标准的RMI远程接口来支持所有的J2EE客户类型。提供灵活的部署方式。允许应用组件在不同物理机器上部署。,缺点,复杂,开发难度大。业务逻辑和表示逻辑的合理划分和设计。影响性能。应为使用了RMI远程调用。业务层组件都必须运行在EJB容器内,对J2EE应用服务器要求高。分布式应用调试和测试都是最难的。分布式系统使异常的处理变得复杂。还必须考虑网
19、络故障等引起的传输问题。,2.具有Web Service 接口的分布式应用,非分布式开发体系结构中各种开发模式为了实现分布式开发的一个扩展模式。,在原有的各种模式上增加一个Web Service服务层,不需要RMI和EJB来支持远程客户,而是通过SOAP与中间业务服务器通信。,优点,通信协议SOAP比RMI/IIOP更开放,支持JAVA外其他语言的客户端。对企业来说,提供标准的Web服务接口比提供远程EJB接口更有好处。Web Service基于Http协议,与RMI相比,防火墙更友好。,缺点,性能差。通过SOAP和XML协议传递对象的性能比RMI差。如果客户端都是基于J2EE技术,没有必要采用SOAP。传输对象编码复杂。Java对象与XML之间作转换,对复杂的Java对象支持差。,2.3.5 开发环境(开发工具+运行环境),1.MyEclipse(Tomcat+Derby),2.WebLogic+JBuilder+Oracle,3.WebSphere+Netbeans+DB2,4.JBoss+Eclipse(plug in)+MySQL,http:/,作业:请说明该企业应用架构,计算机厂家生产和销售系统,