免费预览已结束,剩余58页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 论 文J2EE和.NET平台体系结构分析 J2EE平台体系结构分析Analysis of J2EE and .NET Architecture Analysis of J2EE Architecture姓 名: 学 号: 学院:软件学院系:软件工程专 业:软件工程年 级:指导教师: 年 月 摘要随着三层/多层企业信息系统结构的深度发展和下一代分布式计算模型Web服务的出现,企业应用中关于平台、框架、语言的竞争也愈演愈烈。J2EE平台在过去几年里一直引领着企业应用的潮流,但最近微软强力推出的.NET平台也开始吸引着众多IT企业和开发人员的注意力,向J2EE平台提出了强有力的挑战。企业应用领域的技术对抗也因此拉开了架势。随着企业应用系统日益复杂,企业对应用系统开发技术和平台的要求越来越高。J2EE平台与.NET平台,企业该如何选择合适的开发技术和平台,以建立具有生命力的企业应用系统,成为很多企业面临的一个问题,同时程序员们对二者也是极其关注的。你可以看到在J2EE与.NET平台技术之间有很大的重叠。但是如何在它们之间进行选择呢?所以,深入研究分析两大平台之间的特点和优势,从而帮助企业选择合适的技术和平台来构建系统,并给程序员选择技术的建议,具有十分重要的意义。我们的课题是对目前市场上两个主要企业级应用开发平台J2EE和.NET进行分析研究,总结出两种平台的应用程序的组成以及软件质量属性的分析论证,在此过程中,我主要负责J2EE平台的研究。文章就企业级应用开发平台J2EE作简要的介绍,并从企业应用系统特信息和分层这两个角度对它们进行分析和比较,以明了二者在企业应用集成中的优劣和技术特点,试图帮助企业选择合适的技术和平台来构建完善的应用系统。关键词:.NET;J2EE;体系结构;AbstractAlong with the three/multi-layered enterprise information system structures depth development and the appearance of the next generation distributed computing model of the Web service, the competion between enterprise applications on the platform, framework, and language is also increasingly fierce. The J2EE in the past few years has been leading the trend of enterprise applications, but the recent launch of Microsofts powerful .NET have begun to attract a large number of IT enterprises and the attention of developers, presented the powerful challenge to the J2EE. With the increasingly complex applications of enterprise, the demanding of enterprise application development and platform is higher. How do companies and programmers choose the appropriate technology and development platform between J2EE and .NET to build a viable enterprise application;How should the enterprise choose the appropriate development technology and platform to develop the vitality enterprise application system, becomes a question which many enterprises face, simultaneously the programmers are also pay attention extremely to them. You may see there is big overlapping between J2EE and .NET platform. Therefore, the deep research analyzes to the characteristics and the superiority of these two big platforms, so as to help enterprise to choose the appropriate technology and the platform constructs the system, has the very vital significance.Our topic is to analysis the two major enterprise applications development platform on the current market- J2EE and .NET, summarizes two kind of platform application procedure composition as well as the software quality attribute analysis proof, during this process, I response for the J2EE platform research.This paper makes a brief statement for J2EE on the market, at one time, analyses and compares J2EE and .NET from two perspectives Technology and market of enterprise applications system, trying to help Enterprise choose a suitable Technology and platform to build a perfect applications, and trying to help programmers the advice of how to choose the technology.Key words: .NET; J2EE; Architecture; 目 录第一章引言11.1.J2EE体系结构研究的背景与意义11.2.J2EE简介11.2.1.J2EE技术的发展21.2.2.J2EE体系结构概述31.3.主要研究内容和任务61.4.本文结构7第二章基于EAS分层的比较82.1.表示层比较82.1.1.胖客户端的Swing模型92.1.2.Servlets102.1.3.JSP122.1.4.表示层对比结果162.2.中间层比较172.2.1.J2ee的核心EJB172.2.2.目录服务192.2.3.事务处理212.2.4.消息服务242.2.5.安全服务262.2.6.中间层对比结果282.3.数据层比较282.3.1.JDBC概述282.3.2.数据层对比结果302.4.开发工具30第三章基于EAS特征的比较363.1.可集成性比较363.1.1.可移植性363.1.2.语言无关性393.2.可用性比较403.2.1.可靠性403.2.2.可重用性403.2.3.可扩展性413.3.安全性比较413.4.系统效率比较423.4.1.开发效率423.4.2.代码执行效率423.4.3.中间件支持42第四章就业市场和薪资比较434.1.就业市场和薪资调查434.2.薪酬调查与技术结合结论47第五章总结与展望495.1.J2EE现状及发展趋势495.2.个人总结50参考文献51致谢53ContentsChapter1Introduction11.1.The Background and Significance of the J2EE Archtecture11.2.Introduce to J2EE11.2.1.The Development of J2EE Technology21.2.2.Introduce to J2EE Architecture31.3.Content and Target61.4.Organization of This Paper7Chapter2Comparison based on the Stratifed of EAS82.1.Comparison of the Presentation Layer82.1.1.The Swing Model of Fat Client92.1.2.Servlets102.1.3.JSP122.1.4.Confrontation of the Presentation Layer162.2.Comparison of the Middle Layer172.2.1.The Core of J2EEEJB172.2.2.Directory Services192.2.3.Transaction of Processing212.2.4.Message Services242.2.5.Security Services262.2.6.Confrontation of the Middle Layer282.3.Comparison of the Data Layer282.3.1.Introduce to JDBC282.3.2.Confrontation of the Data Layer302.4.The Development Tools30Chapter3Comparison based on the Features of EAS363.1.Integration363.1.1.Portability363.1.2.Language Independent393.2.Availability403.2.1.Reliability403.2.2.Reusability403.2.3.Scalability413.3.Comparison of Security413.4.Comparion of System Efficiency423.4.1.Development Efficiency423.4.2.Code execution Efficiency423.4.3.Middleware Supportment42Chapter4Comparison of the Job Market and Wages434.1.Survey of the Job Market and Wages434.2.Conclusion of Survey47Chapter5Conclusion and Future Work495.1.The Current Situation and Development Trend of J2EE495.2.Personal Conclusions50Acknowledgements51References53第一章 引言第1章 引言1.1. J2EE体系结构研究的背景与意义随着三层/多层企业信息系统结构的深度发展和下一代分布式计算模型Web服务的出现,企业应用中关于平台、框架、语言的竞争也愈演愈烈。J2EE平台在过去几年里一直引领着企业应用的潮流,但最近微软强力推出的.NET平台也开始吸引着众多IT企业和开发人员的注意力,向J2EE平台提出了强有力的挑战。企业应用领域的技术对抗也因此拉开了架势。需要强调的是,.NET是战略产品,而J2EE是描述产品的标准,现在有很多符合J2EE标准的产品。在可以预见的未来,它们都将是构建企业信息系统应用的基础性平台,尤其是开发和部署Web服务的重要平台。尽管可以同时使用几种系统平台和语言,但对于企业来说,还需要选择一个战略性的平台来实现数据的无缝集成,加速企业应用的部署。为了满足企业业务需求,企业应用系统要实现跨平台、开发效率高、开发成本低、易于维护升级、安全性高、厂商的广泛支持、支持分布式、执行性能高等特性。为了达到这样的目标,企业该如何选择合适的开发技术和平台呢?毫无疑问,程序员,软件开发商,企业IT经理一直都在密切的关注着J2EE和.NET的发展,但是选择一个在性能,价格,时间上满足他们需求的平台却并不是一件简单的事情。本课题就目前市场上两个主要的企业级应用开发平台J2EE和.NET的体系结构组成深入分析,通过对两种流行的平台的分析研究,总结两种平台的应用程序的组成以及软件质量属性的分析论证,希望对于他们做选择时有所帮助。1.2. J2EE简介企业应用系统的开发一直面临着重大挑战:一方面,企业应用系统面对的是一个异构的分布式环境,它必须支持与已有系统的集成性和与其他系统的互操作性;另一方面,作为为客户、合作伙伴和企业内部提供信息服务的平台,企业系统还必须具有高可用性、安全性、可靠性和可伸缩性。这些要求再加上复杂多变的用户需求和不断伸缩的交付时间,使得企业系统的开发越来越困难。开发商和广大程序员一直在努力推动和殷切期待一个成熟、标准的企业平台来简化和规范企业系统的开发和部署。Java技术的出现,尤其是J2EE(Java 2 Platform Enterprise Edition)平台的推出正是这种努力的结果,也使得企业系统的开发由此变得更加快速和方便。需要指出的是,J2EE本身是一个标准,它为不同厂商创建平台产品提供了标准,使不同J2EE平台产品之间的交互成为可能。准确来说J2EE并不是框架,而是许多技术规范的集合。J2EE是各厂商共同发起的,并得到广泛认可的一个工业标准,它是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB、Servlet、JSP以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时对现有应用程序集成提供强有力支持。1.2.1. J2EE技术的发展Java于1996年由Sun公司推出,当时它的主要用途是制作产生动态网页的Applet。后来,人们发现Java的“一次开发,多次运行”、纯面向对象的特性、垃圾回收机制和内置的安全性特别适合于开发企业应用系统。于是,企业应用开发商纷纷在Java标准版的基础上各自扩展出许多企业应用API,其结果导致基于Java的企业应用呈爆炸式增长。但是各企业系统API之间又不能相互兼容,破坏了Java的平台独立性。鉴于此,Sun公司联合IBM、Oracle、BEA等大型企业应用系统开发商于1998年共同制订了一个基于Java组件技术的企业应用系统开发规范,该规范定义了一个多层企业信息系统的标准平台,旨在简化和规范企业应用系统的开发和部署。这一规范和其定义的平台就构成了J2EE。目前J2EE的最新版本是J2EE1.3。需要注意的是,J2EE本身是一个标准,而不是一个现成的产品(虽然现在有很多符合J2EE标准的产品),它由以下几个部分组成:(1)J2EE规范。该规范定义了J2EE平台的体系结构、平台角色及J2EE中每种服务和核心API的实现要求。它是J2EE应用服务器开发商的大纲。(2)J2EE兼容性测试站点。Sun公司提供的一个测试J2EE应用服务器是否符合J2EE规范的站点,对通过该站点测试的产品,Sun公司将发放兼容性证书。(3)J2EE参考实现。即J2EE SDK,它既是Sun公司自己对J2EE规范的一个非商业性实现,又是为开发基于J2EE企业级应用系统原型提供的一个免费的底层开发环境。(4)J2EE实施指南。即BluePrints文档,该文档通过实例来指导开发人员如何去开发一个基于J2EE的多层企业应用系统。1.2.2. J2EE体系结构概述与.NET平台相比,Sun公司的标准定义的J2EE体系结构有很少可以讨论的空间,因为就没有什么可讨论的。如果一个人注意某个具体开发商的产品,如IBM公司的WebSphere,那么就会看到其技术的最大的一部分是WebSphere专用的。比较所有开发商对J2EE的具体改进,已经超出了本文的范围,在我的经验中,大多数对J2EE作为一个平台感兴趣的公司对该标准的可移值性感兴趣。任何对可移值性感兴趣的人都会需要将他们自己局限于Sun公司所定义的标准。J2EE体系结构可以被分为5部分:(1)Java语言系统(2)客户端程序设计模型 (3)中间层基础结构 (4)程序员企业级API (5)非程序员可见API最后一部分,非程序员可见API,包括定义了如何将其他产品插入到J2EE中的API,如连接器API,以及J2EE模型中被最近的改进有效替代的API,如JTA(Java Transaction API)。最后一部分,非程序员可见API,包括定义了如何将其他产品插入到J2EE中的API,如连接器API,以及J2EE模型中被最近的改进有效替代的API,如JTA(Java Transaction API)。为了J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,如图1-1是J2EE典型的四层结构:图1-1 J2EE平台框架(1)运行在客户端机器上的客户层组件:J2EE应用程序可以是基于web方式的,也可以是基于传统方式的。(2)运行在J2EE服务器上的web层组件:J2EE web层组件可以是JSP页面或Servlets按照J2EE规范,静态的HTML页面和Applets不算是web层组件。web层可能包含某些Java Bean对象来处理用户输入,并把输入发送给运行在业务层上的enterprise bean来进行处理。(3)运行在J2EE服务器上的业务层组件:业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务层上的enterprise bean进行处理.下图表明了一个 enterprise bean是如何从客户端程序接收数据,进行处理(如果必要的话),并发送到EIS层储存的,这个过程也可以逆向进行。(4)运行在EIS服务器上的企业信息系统层:企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库系统和其它的遗留信息系统。例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。J2EE是一个基于组件-容器模型的系统平台,其核心概念是容器。容器是指为特定组件提供服务的一个标准化的运行时环境,Java虚拟机就是一个典型的容器。组件是一个可以部署的程序单元,它以某种方式运行在容器中,容器封装了J2EE底层的API,为组件提供事务处理、数据访问、安全性、持久性等服务。在J2EE中组件和组件之间并不直接访问,而是通过容器提供的协议和方法来相互调用。组件和容器间的关系通过“协议”来定义。容器的底层是J2EE服务器,它为容器提供J2EE中定义的各种服务和API。一个J2EE服务器(也叫J2EE应用服务器)可以支持一种或多种容器。在图1-1中,你可能已经注意到每个容器的服务包括两部分:J2SE(Java 2 Platform Standard Edition)和一组扩展的服务。这是因为J2EE是以Java标准版为基础的,各容器在J2SE之上再根据需要提供一些扩展的服务,如目录服务、事务管理、数据访问、消息机制、安全性等。J2EE平台的构成:(1)EJB即企业级的javaBean,J2EE中间层,完成商业逻辑;(2)JAASJ2EE处理认证和授权的API;(3)Java ConnectorsJ2EE用于连接异种数据源的API,对上层来讲是透明的;(4)JSP,Java ServletsJ2EE的表示层技术,用于生成用户界面,就是在HTML文件中加入服务器端的VB Script或jiavaScript代码,构成动态网页技术;(5)Java Virtual MachineJava语言运行环境;(6)JDBCJ2EE数据库访问;(7)JMSJ2EE的异步消息队列;即java消息服务,是用于和面向消息的中间件相互通信的应用程序接口(API);(8)JNDIJ2EE的名字查找API,独立于目录服务器;(9)JTSJ2EE用于处理交易的API;(10)RMI/IIOPJ2EE的分布式对象的通讯API,提供了和CORBA交互的能力。即远程方法调用;1.3. 主要研究内容和任务在表现形式上,J2EE是一组规范,而.NET更象是一组产品。但它们的目的都是为了企业应用提供分布式的,高可靠性的解决方案.它们在架构上有着很多的相似之处,如表1-1所示是一个简单对照。表1-1 J2EE和.NET平台构成比较J2EE.NET编程语言JavaC#,VB.NET,COBOL运行时环境Java Virtual Machine (JVM)Common Language Runtime (CLR)胖客户端Java SwingWindows Forms目录服务Java Naming and Directory Interface (JNDI)Active Directory Services Interface (ADSI)数据访问Java Database Connection (JDBC),Java ConnectorsADO.NET异步消息处理Java Message Service (JMS)Microsoft Message Queue表示层技术Servlets, Java Server Page(JSP)ASP.NET中间层组件模型EJB,JavaBeanCOM+,COM安全访问JAASCOM+ Security,Call Context事物处理Java Transaction Server (JTS)Microsoft Distributed Transaction Coordinator (MS-DTC)开发工具WebGain Visual Cafe,Borland JBuilder,IBM VisualAge 等(第三方提供,规范本身没有定义)Visual Studio.NET本课题的主要目标是通过对两种流行的平台的分析研究,总结两种平台的应用程序的组成以及软件质量属性的分析论证。我们主要依据表1-1中所述的技术对J2EE和.NET两个平台进行分析比较。我主要研究的内容侧重对于对J2EE的分析,并从企业应用系统特性和分层这两个角度对它们进行分析和比较,阐述了二者在企业应用集成中的优劣和技术特点,试图帮助企业选择合适的技术和平台来构建完善的应用系统。1.4. 本文结构第一章总体介绍建设J2EE平台体系结构研究的背景和意义,概述J2EE平台体系结构的构成及研究方法。第二章深入分析J2EE体系结构各种技术,得出J2EE体系结构的一个整体评价。第三章从企业应用系统的角度分析J2EE平台体系结构的优缺点。第四章从市场前景和薪酬的角度分析J2EE的特点。第五章对全文进行总结,对下一步工作进行规划和展望。55第二章 基于EAS分层的比较第2章 基于EAS分层的比较EAS分层是为了提高软件开发的生产力,缩短开发周期,提高系统的可维护性、减小系统的耦合性,而把整个系统划分为多个层次,通常帮企业应用系统划分为表示层、业务层、持久层三个层次。基于多层分布式计算结构已毋庸置疑地成为当今企业应用的主流模式,也是两个平台较量的着力点。图2-1是J2EE的逻辑结构图:图2-1 J2EE逻辑结构图以上层次一般也指三层应用,因分布在三个不同位置:客户计算机、J2EE服务器及后台的数据库或过去遗留下来的系统。2.1. 表示层比较在客户端,表示层负责用户与系统的交互。两种架构都同时支持胖客户端和瘦客户端,即C/S模式和B/S模式。对于胖客户端,J2EE提供了替代Java AWT的Java Swing,同时作为可视化组件的Java Bean也可用来构造系统。对于瘦客户端的表示层,J2EE使用Servlet、JSP、HTML、XML等技术来实现。2.1.1. 胖客户端的Swing模型当java1.0刚刚出现时还没有swing,当时的GUI基本编程库,sun取名叫AWT(Abstract Window Toolkit),基本AWT库处理用户界面的方法是将这些元素的创建行为交给底层操作系统的GUI工具箱进行处理,来实现WORA的目的。而因为种种原因,不同的OS之间存在差异,使得AWT界面库存在许多bug。1996年sun同Netscape通力合作创建了新的库取名Swing。如果没有Swing,java的图形界面就不名一文。Swing内部采用了MVC体系结构(model-view-controller)。model负责存放Swing组件的状态(数据),controller负责处理事件,view负责绘制图形。Swing使用了简化的MVC变体,controller和view合并称为UI代理。这种设计使得一个model可以对应多个UI代理,因此非常灵活。Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。由所有Java图形用户界面(GUI)组件所构成,可运行在任一支持Java虚拟机(JVM)的本地平台上。由于这些组件全都是用Java语言编写的,因此它们可以提供比本地平台GUI组件更多的功能。(与抽象窗口工具箱对比)Java Swing是java的基础类,是Java Foundation Classes(JFC)的一部分。完整的JFC是很巨大的,包括的组件也很多。JFC包含了AWT,Swing,辅助功能,API,Java2D,拖放。在Swing中,Sun开发了一个经过仔细设计的、灵活而强大的GUI工具包。Swing是在AWT组件基础上构建的。它的出现是为了解决AWT(Abstract Window Toolkit)的移植性和提供更多的企业级应用程序所需要的功能,它所提供的功能要比AWT提供的更为广泛。它也是Java技术的一种标准配置。Swing建立在核心AWT库上,JDK1.2以及更高的版本已经包含了Swing库。一个Java GUI通常由顶层容器、中间容器以及多个原子组件组成。每个原子组件或容器都可能触发相应事件的产生。容器是一类能够在其中容纳其他组件的特殊组件。Swing的GUI组件类是按照类属层次以树状结构进行组织的。在这个树的最顶层,即树的根部,使一个最基本的容器类,被称为顶层容器。Swing提供了三个通用的顶层容器类JFrame,JDialog和JApplet。JFrame提供了基于窗体的应用程序,JDialog提供对话框形式的界面,JApplet提供Java小应用程序的界面形式。在顶层容器下是中间容器,用于容纳其他的组件。通常窗格本身在显示界面中是看不到的。面板类Panel是一种中间容器,它的唯一作用是使组件更容易定位。顶层容器通过getContentPane()方法获取内部的一个内容窗格。2.1.2. ServletsServlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。它担当Web浏览器或其他HTTP客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servle的Java虚拟机。一个Servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然Servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。Java Servlet技术为这些应用程序定义了一个特定于HTTP的Servlet类。javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现Servlet接口,该接口定义了生命周期方法。当实现一个通用的服务时,您可以使用或扩展由Java Servlet API提供GenericServlet类。HttpServlet类提供了一些方法,诸如doGet和doPost,以用于处理特定于HTTP的服务。Servlets是Java专注于CGI开发的一种技术。运行在Server端,并产生动态的结果。为什么要使用Servlets来代替传统的CGI程序呢?图2-2 Servlet运行机制与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。在未来的技术发展过程中,Servlet有可能彻底取代CGI。在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择。效率:使用传统的CGI程序,每当收到一个HTTP请求的时候,系统就要启动一个新的进程来处理这个请求,这样会导致系统性能的降低。而使用Servlets,Java VMs一直在运行,当接到一个请求之后Java VMs就创建一个Java线程马上进行处理,如此要比每次都启动一个新的系统进程效率要高的多。功能强大:Servlets使你可以使用传统CGI不能提供的许多强大功能。在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。安全:Servlets运行在Servlets引擎的限制范围之内,就象可以在Web浏览器中运行Applets一样,这样有助于保护Servlets不受威胁。节省投资:不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。灵活性:由于Servlets是在Java平台上运行的,所以由于Java的跨平台性,Servlets也可以从一个平台轻易地转移到另一个操作系统平台上,从而大大提高了灵活性。一个Servlets实际上就是一个Java类,需要运行在Java的虚拟机上,使用Servlets引擎。当某个Servlets被请求的时候,Servlets引擎调用该Servlets并一直运行到这个被调用的Servlets运行完毕或Servlets引擎被关闭。2.1.3. JSP在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照Sun的说法,JSP能够适应市场上包括Apache Web Server、IIS4.0在内的85%的服务器产品。即使您对ASP“一往情深”,我们认为,关注JSP的发展仍旧很有必要。JSP是Servlets技术的一个扩展。JSP可以做的任何事情,Servlets都可以完成。但是JSP使编写HTML变得更简单,它允许你将Java代码轻松地和HTML语言混合在一起使用,并完成强大的功能。可以使你容易的阅读代码并在浏览器中浏览到程序执行的结果。JSP的执行过程:客户端发出Request(请求);JSP Container将JSP转译成Servlet的源代码;将产生的Servlet的源代码经过编译后,并加载到内存执行;把结果Response(响应)至客户端。JSP规范给出了使用JSP页面构建Web应用程序的两个方案:JSP模型1和模型2体系结构。这两个模型的区别在于处理的位置。在模型1的体系结构中,如图2-3示,JSP页面负责处理请求并将响应发送给客户端。图2-3 JSP模型1体系结构模型2体系结构,如图2-4所示,集成使用了Servlets和JSP页面。在该模型中,JSP页面用于表示层,并且Servlets负责处理各类任务。Servlet作为一个控制器,负责处理请求并创建JSP页面所需的任何bean。该控制器也负责确定将该请求传递到哪个JSP页面。JSP页面检索servlet创建的对象,并提取动态内容插入在一个模板中。图2-4 JSP模型2体系结构该模型促进了模型视图控制器(MVC)体系结构风格设计模式的使用。注意,早就存在多个框架能够实现该有用的设计模式,并将内容和表示真正地独立开来。Apache Struts是MVC的形式化框架。该框架非常适用于复杂的应用程序,在这些复杂的应用程序中单个请求或表单提交会产生看起来截然不同的结果。JSP与ASP方面有许多相似之处,两者都为动态网页的技术,并且双方都能够替代CGI技术,使网站的开发时程能够大大缩短,在性能上也有较高的表现,更重要的一点是,两者都能够为程序员提供组件的设计功能,通过组件设计,将网页中逻辑处理部分交由组件负责处理,而和风页上的排版,美工分离。尽管JSP技术和ASP在许多方面都很相似,但仍然存在很多不同之外,其中本质上的区别在于:两者是来源于不同的技术规范组织。(1)平台和服务器的弹性ASP技术主要在微软的Windows平台上行,并且搭配其WEB服务器IIS。但是,在其他的平台运行时,不是性能低落,就是根本不支持,因此,当在开发网站系统时,先择NTIISASP的体系结构时,未来当系统无法负荷时,也只能选择windows平台的服务器,无法改写在性能表现相当优异的UNIX平台上。JSP技术主要运行在操作系统上的一个JVM虚拟机器上,因此,它能够跨所有的平台,除了能在各式各样的操作系统上执行,并且能搭配现有的WEB服务器:Apache,IIS,Netscape,Enterprise Server,等等。将静态的HTML网页交由执行速度较快的Web Server处理,而动态产生的网页的部分,就交由JSP Container来执行。由上述可知,JSP技术在跨平台的表现比ASP来得更有弹性。WEB网页程序员未来在开发电子商务平台时,就不需要再考虑客户厂商的操作系统平台,可更专心于系统功能的开发。相应的,厂商在使用JSP技术开的发系统平台时,不再需要担心未来在扩充软、硬件时,是否产生不兼容的问题,光这一点,就能为企业省下一大笔的费用,这是JSP的主要优点。(2)语法结构ASP语法结构上,是以作为标记符号,而JSP也是使用相同标记符号作为程序的区段范围的,但不同的是,标记符号之间所使用的语言:ASP为JavaScript或VBScript:而JSP为Java。Java是有严格规划,强大且易扩充的语言,远优于VBScript语言。Java使程序员的工作在其他方面也变得一样容易、简单。例如:当ASP应用程序在Windows NT系统可能会造成系统Crash(当机)时,由于JSP是在JVM上执行程序,且提供强大的异常事件处理机制,因此,不会因为程序撰写的疏忽,而导致服务器操作系统的损毁。并且Java语言提供防止直接存取内存的功能,存取内存产生的错误,通常也正是造成服务器损毁的最主要原因之一。最后,最重要的原因,Java语言是一个有严谨规范、有系统组织的语言,对一个专业的Java程序员来说,也真正达到Learn Once,Write Anywhere(学一次,皆可开发)的境界。(3)开放的开发环境JSP应用程序接口(API)毫无疑问已经取得成功,并随着Java组织不断扩大其应用的范围,目前全力发展Java技术的厂商不胜枚举,例如:最近IBM公司强力推广的WebSphere 家族,正是完全支持J2EE标准而开发。数据库厂商Oracle也发展自己的Application Server来和自己公司本身数据库产品Oracle9i做一紧密的结合。那也更不用提Amazon系统的供货商BEA公司,它的产品WebLogic也是完全支持Java Server Pages技术和J2EE规范的。相反,ASP技术仅依靠微软本身的推动,其发展建立在独占、封闭的基础之上,并且微软本身的技术又只允许在微软相关平台的服务器上执行,因此,在标准方面显得有点力不从心。(4)语法的延展性ASP和JSP都使用标签与Scripting Language来制作动态WEB网页,Java Server Pages 2.0新规范中,能够让程序员自由扩展JSP标签来应用。JSP开发者能自定义标签库(Tag Library),所以网页制作者能充分利用与XML兼容的标签技术强大的功能,大大减低对Java语法的依赖,并且也可以利用XML强大的功能,做到数据、文件格式的标准化。(5)执行性能表现ASP和JSP在执行性能的表现上,有一段显著的差距,JSP除了在一开始加载的时间会比较久外,之后的表现就远远比ASP的表现来得好。原因在于:JSP在一开始接受到请求时,会产生一份Servlet实体(instance),它会先被暂存在内存中,我们称之为持(Persistence),当再有相同请求时,这实体会产生一个线程(thread)来服务它。如果过了一段时间都不再用到此实体时,Container 会自动将其释放,至于时间的长短,通常都是可以在Container 上自行设定的,而ASP在每次接收到请求时,都必须要重新编译。因此,JSP的执行比每次都要编译执行的ASP要快,尤其是程序中存在循环操作时,JSP的速度要快上1到2倍。不过,ASP在这部分的缺陷,将随ASP+的出现有所改观,在新版的ASP+技术中,性能表现上有很大的突破。2.1.4. 结论(1)客户端设备独立性的差别对于不同的处理要求,.NET和J2EE都提出了基于桌面的应用程序和基于浏览器的Web应用的开发组件:Java Application与Windows表单、Java Servlet/JSP与ASP.NET双双形成犄角之势。但Windows表单依赖微软桌面系统的天然优势,不管在交互速度还是在界面的表现性能上都较Java Application稍胜一筹。Servlet/JSP与ASP.NET是目前企业在“瘦客户端”应用的重点,两者都基于HTTP请求/响应模型,通过HTML浏览器页面完成用户交互。虽然ASP.NET声称在底层通过编译执行获得了相当高的处理速度,以及服务器方控件的浏览器自适应能力,但目前并没有这方面的硬性数据,很难据此而论高下。在缓存、状态优化等方面两者可谓旗鼓相当。另一个和客户端应用相关的技术是ActiveX与Applet,但从目前的趋势来看,它们在两个平台上的地位逐渐边缘化,也不为大多数企业所接受。(2)程序设计模型之间的差别J2EE和.NET平台表示层程序设计模型之间主要差别是,利用Java,决定传输给客户端的最终HTML的是表示层程序员,而使用.NET,则是Visual Studio NET控件。这种Java方法有三个问题。第一个问题,它需要很多位于表示层的代码,因为每个可能的瘦客户端运行需要一个不同的代码路径。第二个问题,很难使用每个可能的瘦客户端系统对代码进行测试。第三个问题,很难给现有的应用添加新的瘦客户端,因为这样做会涉及搜索和修改数量惊人的表示层逻辑。.NET Framew
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出租车收费协议合同书
- 公司采购空调合同范本
- 位临时工保安合同协议
- 农村旧房拆除合同范本
- 出租沿街房转让协议书
- 动画模板制作合同协议
- 农村承包水池合同范本
- 动画设计制作合同范本
- 2025年人体解剖联考试题及答案
- 劳务平行发包合同范本
- 西安鸡蛋行业现状分析
- 柜子安装服务流程
- patran培训教材(有限元分析)
- 汽车设计-汽车 仪表板横梁设计规范模板
- 危急值的报告制度与流程
- 腾讯云大数据云平台TBDS 产品白皮书
- 《创新思维》考试复习题库(含答案)
- 口腔种植学 课件 口腔种植学导论-课件
- 2021年投资学考研真题(含复试)与典型题详解
- 非谓语动词在写作上的应用 课件 【知识导航+拓展迁移】高三英语一轮复习
- GB/T 1864-2012颜料和体质颜料通用试验方法颜料颜色的比较
评论
0/150
提交评论