第2部分高级软件工程主题开发模式与平台_第1页
第2部分高级软件工程主题开发模式与平台_第2页
第2部分高级软件工程主题开发模式与平台_第3页
第2部分高级软件工程主题开发模式与平台_第4页
第2部分高级软件工程主题开发模式与平台_第5页
已阅读5页,还剩182页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主要内容主要内容第第2节节 J2EE 概述概述第第3节节 .NET 概述概述第第4节节 J2EE 与与 .NET 比较比较第第1节节 软件开发模式概述软件开发模式概述第一节第一节 软件开发模式概述软件开发模式概述软件开发模式概述软件开发模式概述一、网络计算模式一、网络计算模式二、软件开发模式二、软件开发模式三、三、Web架构架构MVC一、网络计算模式一、网络计算模式n网络模型(network model)是指网络上计算机处理信息的方式,又被称为网络计算模式。在不同计算模式的网络上,其数据或者信息的处理方式是不同的。一、网络计算模式n以大型机为中心的计算模式-分时共享模式(time-sharin

2、g)特点:许多用户共享CPU资源和数据存储功能,终端只用于命令的输入和结果的显示n以服务器为中心的计算模式-资源共享(resource-sharing)模式特点:共享共同的应用,如文件服务器,打印服务器n客户/服务器(Client/Server)模式特点:系统使用了客户和服务器双方智能、资源和计算能力来执行一个特定的任务。提出服务请求的一方称为“客户机”,而提供服务的一方则称为“服务器”。应用软件安装在:前端(即客户部分)/后端(服务器部分)n浏览器/服务器( Browser/Server)模式特点: B/S结构的客户端采用了人们普遍使用的浏览器,它是一个简单的、低廉的、以Web技术为基础的“

3、瘦”C/S系统。应用软件安装在:后端(服务器部分)n对等(Peer to Peer,P2P)模式特点:用户和资源处于对等状态,分布式计算客户/服务器模式(Client/Server)客户服务器请求命令服务结果网络接口操作系统(TCP/IP)服务应用核心服务驱动网络接口操作系统(TCP/IP)客户应用用户界面applicationtransportnetworkdata linkphysicalapplicationtransportnetworkdata linkphysicalrequestreply客户客户/服务器模式服务器模式ServerClientClientClientClientC

4、lientClient单点失效单点失效性能瓶颈性能瓶颈(计算、存储资源受限,(计算、存储资源受限,网络拥塞等)网络拥塞等)浏览器/服务器(B/S)模式(3层)Web ServerBrowserBrowserBrowserData Server浏览器/服务器(B/S)模式(N层)Web ServerBrowserBrowserBrowserData ServerApplication Server中间件中间件浏览器/服务器(B/S)模式nB/S模式以Web服务器为系统的中心,客户机端通过其浏览器向Web服务器提出查询请求(HTTP协议方式),Web服务器根据需要向数据库服务器发出数据请求。数据库

5、则根据查询或查询的条件返回相应的数据结果给Web服务器,最后Web服务器再将结果翻译成为HTML或各类脚本语言的格式,并传送给客户机上的浏览器,用户通过浏览器即可浏览自己所需的结果。n使用B/S结构的浏览器访问数据库的三层方式,与C/S结构的二层结构相比,具有成本低,易于更新和改动,用户可以自行安装浏览器软件,并使用通用的浏览器进行访问,与网络平台完全无关,客户端软件廉价,安全保密控制灵活等显著的优点。对等模式(Peer to Peer,P2P)PeerPeerPeerPeerPeerPeer将服务器的功能分将服务器的功能分散到客户端,充分散到客户端,充分利用客户端的计算、利用客户端的计算、存

6、储、带宽等资源存储、带宽等资源无中心服务器无中心服务器Peer既是客户端,既是客户端,又是服务器又是服务器P2P的定义的定义nP2P通信模式中各方都具有相同的能力通信模式中各方都具有相同的能力,其中任何一方都可以发起一个通信会,其中任何一方都可以发起一个通信会话。在话。在P2P通信过程中,每个通信节点通信过程中,每个通信节点同时具有服务器和客户端的功能。同时具有服务器和客户端的功能。nP2P网络中的节点间采用网络中的节点间采用P2P通信模式,通信模式,它是构筑在现有网络基础设施上的一个它是构筑在现有网络基础设施上的一个重叠网络(重叠网络(Overlay Network)Internet逻辑的P

7、2P网络(overlay)P2P连接资源的方式n基于目录服务器使用中心目录服务器用于资源发布和定位如SETIhome、Napster、Groove等n完全分布式无任何中心服务器,资源的定位使用泛洪如Gnutellan层次结构将节点分为一般节点和超级节点,一般节点通过超级节点来发布和定位资源,超级节点之间采用泛洪方式来定位资源如KazaA、Skypen结构化P2P将资源和其存储位置关联起来如Chord、CAN、Tapestry、Pastry等目标:实现资源共享目标:实现资源共享过程:发布过程:发布定位定位使用或者下载使用或者下载基于目录服务器:基于目录服务器:NapsterI have xyz.

8、mp3!PublishInsert(xyz.mp3,).目录服务器目录服务器基于目录服务器:基于目录服务器:NapsterWhere is xyz.mp3?QueryReplyFetchSearch(xyz.mp3)目录服务器目录服务器完全分布式:完全分布式:GnutellaI have xyz.mp3I have xyz.mp3Where is xyz.mp3?QueryReplyFetch简单,无单点瓶颈简单,无单点瓶颈泛洪加重网络负担泛洪加重网络负担不保证查找结果不保证查找结果层次层次P2P网络:网络:K

9、azaAI have xyz.mp3!PublishInsert(xyz.mp3,).SupperNode层次层次P2P网络:网络:KazaAWhere is xyz.mp3?QueryRepliesSupperNodeSearch(xyz.mp3)FetchP2P网络的特征网络的特征nP2P网络是一个应用层网络,一般由网网络是一个应用层网络,一般由网络边缘节点构成,充分利用资源络边缘节点构成,充分利用资源n网络的扩展性好网络的扩展性好n资源分布在各个节点中,而不是集中在资源分布在各个节点中,而不是集中在一个服务器上进行管理,不存在单点瓶

10、一个服务器上进行管理,不存在单点瓶颈问题颈问题n节点之间可直接建立连接,交互共享资节点之间可直接建立连接,交互共享资源源需要解决的问题:动态性、安全性、可管理性需要解决的问题:动态性、安全性、可管理性二、应用软件开发模型二、应用软件开发模型1、计算机应用软件的一般特点、计算机应用软件的一般特点 : 大多数应用,从PC机上的简单报表程序到大型机上的复杂计算,都由三部分组成:u用户界面部分:表示层u应用逻辑部分:业务逻辑层u数据访问部分:数据访问层 2、应用软件开发模型的变迁过程、应用软件开发模型的变迁过程: 单层单层 两层两层 三层三层 N层层 1 2 31 2312312 3 4三、三、 We

11、b架构架构MVC模式模式 nMVC基本概念及应用领域nMVC主体结构nMVC动态特征nMVC实现n软件体系结构、框架与设计模式nMVC开发方式开发方式n常见的MVC组件n应用实例MVC基本概念:模型-视图-控制器(1)nMVC(Model-View-Controller)将一个交互式应用程序分成3个组件模型:包含核心功能和数据 (核心业务逻辑)视图:向用户显示信息控制器:处理用户输入n变更-传播机制保证了模型和用户界面之间的一致性MVC基本概念:模型-视图-控制器(2)n目的将人机交互从核心功能中分离出来(M) 模型对用户来说是透明的,用户只需要观察视图(V)用户与模型的交互通过控制器提供的安

12、全方法来实现(C)MVC应用领域n具有灵活人-机界面的交互式应用程序可以灵活选择不同的信息显示方式可以灵活选择用户的输入方式n针对不同的用户角色,提供不同的用户界面不同用户具有不同权限,操作的方式也有所不同三、三、 Web架构架构MVC模式模式nMVC基本概念及应用领域nMVC主体结构nMVC动态特征nMVC实现n软件体系结构、框架与设计模式nMVC开发方式开发方式n常见的MVC组件n应用实例模型(Model)n封装了内核功能和数据业务逻辑(软件的核心)数据以及访问它们的函数(视图组件使用)执行特定应用程序处理的过程(控制器代表用户调用)n模型对于用户来说是不可见的(M与V独立)n模型独立于特

13、定输出表示或者输入方式(M与C独立)n用户只能通过控制器操作模型(C是M与V之间的桥梁)变更-传播机制(1)n一个模型可对应多个视图如果用户通过一个视图的控制器改变了模型中的数据,那么依赖于该数据的其他视图也应该反映出这样的变化一旦模型的数据发生了变化,模型需要通知所有相关的视图做出相应的变化n维护数据的一致性变更-传播机制(2)n工作原理:模型维护了一个表所有视图还有一些控制器在这个表中登记了对变更通知的需求模型状态的改变将触发变更-传播机制,每个在表中登记的视图和控制器都会收到变更通知n这样的方式可以通过观察者(Observer)设计模式完成视图(View)n向用户显示信息不同的视图使用不

14、同的方法呈现信息每个视图组件都有一个更新函数,这个函数被模型变更通知激活这个函数被激活(此时模型已经改变)后,将使得视图重新和模型一致在初始化阶段,视图向模型登记请求变更通知(表)n从模型获得数据通过状态查询函数实现例如:定时刷新控制器(Controller)n每个视图有一个相关的控制器组件(一一对应)n控制器组件接受事件,并翻译成输入事件如何发送到控制器由用户界面平台决定事件被翻译成为对模型或者视图的请求如果控制器的行为依赖于模型的状态,那么控制器也需要向模型登记请求变更通知例如:用户点击按钮,按钮的事件响应函数将采取相应的措施处理用户要求n用户仅仅通过控制器与系统交互MVC组件类型的关系和

15、功能注意n视图与控制器是一一对应的关系n模型与视图是一对多的关系n变更-传播机制保持模型与视图、控制器之间状态的一致性三、三、 Web架构架构MVC模式模式nMVC基本概念及应用领域nMVC主体结构nMVC动态特征nMVC实现n软件体系结构、框架与设计模式nMVC开发方式开发方式n常见的MVC组件n应用实例动态特征(1):MVC系统的初始化过程Main programModelViewControllermodelviewmodel,viewcontrollerstart动态特征(2):MVC系统的初始化过程n创建模型实例,并初始化其数据n创建视图对象,并用对模型的引用作为初始化参数之一n视图

16、通过调用附属过程支持变更-传递机制n视图创建控制器,此时将模型和视图的引用作为参数传递给控制器初始化过程n控制器通过调用附属过程来支持变更-传递机制n初始化完成,应用程序开始处理事件动态特征(3):输入导致模型变化,并触发变更-传递机制notifyhandleEventControllerViewModelserviceupdateupdategetDatagetDatadisplay动态特征(4):输入导致模型变化,并触发变更-传递机制n控制器接受到事件,解释事件并且启动模型的服务过程(handleEvent、 service)n模型执行相应的过程,并导致内部状态的变化(notify)n模型

17、调用其更新过程,向所有登记请求了变更-传播机制的视图和控制器发出通知(update)n每个视图从模型中读取新数据并且重新显示(getData)n每个控制器修改自己的行为,比如禁用某个功能n最初的控制器恢复控制并从事件处理过程返回三、三、 Web架构架构MVC模式模式nMVC基本概念及应用领域nMVC主体结构nMVC动态特征nMVC实现n软件体系结构、框架与设计模式nMVC开发方式开发方式n常见的MVC组件n应用实例MVC实现(1)n设计并实现模型组件封装内核所需要的数据和功能确定模型的哪一部分应该通过控制器向用户显示,提供访问待显示数据的功能实现核心业务逻辑MVC实现(2)n实现变更-传播机制

18、采用观察者(Observer)设计模式每个视图和需要观察模型变更的控制器都在模型中注册自己的观察者(表)模型中可以随意添加和删除观察者实现通知各观察者并改变其状态的方法MVC实现(3)n设计并实现视图设计视图的外观,并实现画图过程来将视图显示在屏幕上(需要使用用户界面平台的功能)实现更新过程来反映模型的变化可以简单地调用画图功能,但是不适应模型频繁变化的情况向更新过程提供一些参数来确定是否重画,以及重画范围可以通过累积变化的方式减少重画的频率n还需要实现视图的初始化过程支持变更-传递机制初始化控制器MVC实现(4)n设计并实现控制器对于每个视图,指定回应用户动作的系统行为控制器用一个专用的过程

19、来接受并且解释这些用户动作(事件)实现事件响应函数MVC实现(5)n实现MVC的总体的初始化部分首先创建并初始化模型实例创建和初始化视图实例同时会创建相应的控制器实例初始化之后进入一个循环,或者包含循环的过程三、三、 Web架构架构MVC模式模式nMVC基本概念及应用领域nMVC主体结构nMVC动态特征nMVC实现n软件体系结构、框架与设计模式nMVC开发方式开发方式n常见的MVC组件n应用实例软件体系结构:Architecture(1)n迄今为止还没有一个被大家所公认的定义n确定了系统整体结构、层次划分以及不同部分之间的协作等设计考虑n是软件设计过程中的第一个层次,常用于总体设计nMVC是一

20、种软件体系结构软件体系结构:Architecture(2)nKruchten指出,软件体系结构有四个角度,它们从不同方面对系统进行描述概念角度:描述系统的主要构件及它们之间的关系模块角度:包含功能分解与层次结构运行角度:描述了一个系统的动态结构代码角度:描述了各种代码和库函数在开发环境中的组织框架:Frameworkn框架不是现成可用的应用系统,而是一个半成品,需要后来的开发人员进行二次开发,实现体功能的应用系统n框架构成了通用的、具有一般性的系统主体部分,二次开发人员只是像做填空一样,根据具体业务,完成特定应用系统中与众不同的特殊部分n框架比体系结构更具体,更偏重于技术n一般来说,确定框架后

21、,软件体系结构也随之确定,而对于同一软件体系结构(比如Struts是基于Web的MVC框架),可以通过多种框架来实现nMVC不是框架设计模式:Design Patternn设计模式研究的是单一设计问题的解决方法n构思如何组合已有的组件,使其发挥出最大的功效n描述问题中出现的类和接口,以及它们之间的关系n只是思想,不是代码只是思想,不是代码n可由不同语言实现,提高代码的可重用性nMVC不是设计模式三、三、 Web架构架构MVC模式模式nMVC基本概念及应用领域nMVC主体结构nMVC动态特征nMVC实现n软件体系结构、框架与设计模式nMVC开发方式开发方式n常见的MVC组件n应用实例MVC开发方

22、式(开发方式(1)nJava开发开发Web ApplicationJava开发Web Application有几种符合MVC设计模式的开发方式。 1: Jsp+Servlet+JavaBean(EJB) 2: Jsp+JavaBean(Controller)+JavaBean(EJB)(Model) 3: TDK(Turbine,Velocity.) 4: Xsp 5: Jsp+Struts+JavaBean(EJB) 6: SSH (Struts + Spring + Hibernate) q Hibernate是一个开放源代码的ORM(Object/Relational Mapping,对

23、象关系映射 )框架,是一种数据持久化的实现技术。它对JDBC进行了轻量级的对象封装,使得Java程序员可以随心所欲地使用面向对象编程思维来操作数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP(Container Managed Persistence ),完成数据持久化的重任。 MVC开发方式(开发方式(2)n.NET开发开发Web Application.NET开发Web Application可以采用: 1:ASP.N

24、ET MVC Framework(ASP.NET MVC ) 2:MonoRail (RC3) 3:ASP.NET (MVC2) nphp 开发开发Web Applicationphp 开发Web Application 可以采用: 1. Zend framework PHP官方框架 2. fleaphp/Qeephp 等国内流行框架 3. CakePHP 等国外流行框架 4. ThinkPHP 等其他框架 三、三、 Web架构架构MVC模式模式nMVC基本概念及应用领域nMVC主体结构nMVC动态特征nMVC实现n软件体系结构、框架与设计模式nMVC开发方式n常见的MVC组件n应用实例常见的

25、MVC组件 组件扮演着控制器Controller的角色。nStruts: Apache的,最流行的MVC组件 nStruts2 :Apache用Struts 和 WebWork的组合出来的新产品,目前上升势头强劲 nWebWork: 这个可是老牌的MVC组件,后来组合成了Struts2, 不过自身仍在发展 nSpring MVC:SpringFramework自己整合自己Spring的优势推出的MVC组件,用户也不少 nJSF: 这个是一个规范,Sun的和 Apache的都有各自的实现。用户量很大,被众多IDE支持。 Java Server Faces (JSF) 是一种用于构建 Web 应用

26、程序的新标准 Java 框架。它提供了一种以组件为中心来开发 Java Web 用户界面的方法,从而简化了开发。nTapestry: 最彻底的MVC开发框架,丰富的组件资源,重用性很高。Model1: Jsp+JavaBean 开发模型n从上图可以看出,模型1也实现了页面表现和业务逻辑相分离。然而使用这种方式就要在JSP页面使用大量的Java代码,当需要处理的业务逻辑很复杂时,这种情况会变得非常糟糕。大量嵌入式代码使整个页面程序变得异常复杂。对于前端界面设计的网页开发人员来说,这简直是一场噩梦。所以,模型1不能满足大型应用的需要,但是对于小型应用,因为该模型简单,不用涉及诸多要素,从而可以很好

27、地满足小型应用的需要,所以在简单应用中,可以考虑模型一。Model1: Jsp+JavaBean开发模型n好处: 程序的可读性高,将复杂的程序代码写在JavaBean之中,减少和网页标签混合的情况。 可重复利用性高,由于通过JavaBean来封装重要的商业逻辑运算,不同的JSP可以调用许多共享性的组件,增加开发效能。n缺点; 缺乏流程控制。每一个JSP都要验证需求的参数正确性、确认用户身份权限、异常发生的处理,甚至还包含显示断的网页编码原则及语系的处理Model 2 :MVC架构的开发模式n这一模型结合了JSP和Servlet技术,充分利用了JSP 和Servlet两种技术原有的优势。这个模型

28、使用JSP技术来表现页面,使用Servlet技术完成大量的事务处理,使用Bean来存储数据。 Servlet用来处理请求的事务,充当一个控制者的角色,并负责向客户发送请求。它创建JSP需要的Bean和对象,然后根据用户请求的行为,决定将哪个JSP页面发送给客户。Model 2 :MVC架构的开发模式优点:n开发流程更为明确:区别开显示端和商业逻辑端,美工设计人员和程序员能够专注于本身的工作,有利于大型系统的开发。n核心的程序管控 :由Controller控制整个流程,可以减少JSP需要撰写许多条件判断逻辑及流程管控等等的程序代码。n维护容易:不论是后端商业逻辑对象或间断的网页呈现,都通过控制中

29、心来掌控,如果有商业逻辑的变更,可以轻易的修改Model段的程序,而不用去修改相关的JSP文件。缺点:n学习时间较长:各家公司都有自己MVC架构,花更多的时 间去熟悉了解他们的流程与概念。n发时间较长:因为需要设计MVC个对象比吃的数据交换与方法,会需要更多的时间在系统设计之上。举例:购物车程序nEShop.jsp显示商店所提供的商品目录nCart.jsp 显示购物车的内容nCheckout.jsp显示用户预购买的物品清单和价格nBook.java它是一个JavaBean内容为书籍的属性nShoppingServlet.java它除了新增、移出购物车内的物品和结账的功能之外,并且也扮演流程控制

30、的角色。它本身是Servlet。Servlet API2.1中有一RequestDispatcher接口来做流程控制nRequestDispatcher接口提供两种方法: public void include(HttpServletRequest,HttpServletResponse) 将目前的请求服务转交给另一个JSP页面或是Servlet; public void forward(HttpServletRequest,HttpServletResponse)将它的内容一并包含到原来的Servlet中。三、三、 Web架构架构MVC模式模式nMVC基本概念及应用领域nMVC主体结构nMV

31、C动态特征nMVC实现n软件体系结构、框架与设计模式nMVC开发方式n常见的MVC组件n应用实例网站设计中的网站设计中的MVC架构架构n控制层将显示层得到的数据,判断交由哪个商业逻辑层作处理,然后再将结果交由显示层,显示出数据处理后的结果。nMVC最主要的精神之一是Model和View的分离 ,网页设计师和程序员能够独立工作,互不影响,从而增加了维护的效率。同时将商业逻辑层的数据处理建立成许多的组件,增加了程序的可重用性,一方面减轻了程序员的工作负担和公司的开发成本;另一方面增进了网站功能扩充的弹性。DataBase应用实例(1)n需求有两个窗口,每个窗口分别有一个标签和一个按钮点击其中一个窗

32、口中的按钮,可以使标签的字体增大,点击另一个可以使其字体减小一个窗口对字体的改变必须立即反映在另一个窗口中n目的采用MVC模式设计实现使用观察者(Observer)设计模式模拟变更-传播机制应用实例(2):类图Observer+update()V1-c1+V1(M)+update()V2-c2+V2(M)+update()M-observers-size+M()+enlarge()+abridge()+addObserver(Observer)+removeObserver(Observer)+notifyObservers()C1-v1-m+C1(V1, M)+register()+acti

33、onPerformed(ActionEvent)C2-v2-m+C2(V2, M)+register()+actionPerformed(ActionEvent)应用实例(3):Observer接口interface Observer /更新函数public void update();应用实例(4):M类class M private int size = 20; /字体大小/使字体变大 public void enlarge() this.setSize( this.getSize() + 5 );/使字体变小public void abridge() this.setSize( this

34、.getSize() - 5 ); 应用实例(5):M类/观察者队列private List observers = new ArrayList();public void addObservers( Observer observer )this.observers.add( observer );/当模型有变更时,通知所有观察者改变相应的视图public void notifyObservers()Iterator iter = this.observers.iterator();while( iter.hasNext() )iter.next().update();应用实例(6):C1类

35、class C1 implements ActionListener /一个控制器与一个视图和一个模型对应private V1 v1;private M m;/构造函数public C1( V1 v1, M m )this.m = m;this.v1 = v1;/向模型注册此控制器对应的视图的观察者public void register()this.m.addObservers( this.v1 );应用实例(7):C1类/* * 实现事件监听器, * 当点击按钮时,增大标签的字体 */public void actionPerformed( ActionEvent e )this.m.en

36、large();this.m.notifyObservers();应用实例(8):V1类class V1 implements Observer JLabel label = new JLabel( MVC );JButton button = new JButton( 增大字体 );private C1 c1; /与视图V1对应的控制器/实现Observer接口,当有变更时,改变相应视图public void update()Font font = new Font( this.label.getText(), c1.getM().getStyle(), c1.getM().getSize(

37、) );this.label.setFont( font );应用实例(9):V1类public V1(M m)/实例化一个链接此视图和模型的控制器c1 = new C1( this, m );/注册此视图的观察者到模型中c1.register();应用实例(10):主程序TestnC2与V2的实现与C1和V1的实现相似public class Test /* * param args */public static void main(String args) M m = new M();V1 v1 = new V1(m);V2 v2 = new V2(m);第二节第二节 J2EE J2EE

38、 概述概述主要内容 nJ2EE的由来nJ2EE的组成一、一、J2EE的由来n传统应用程序模型 nWeb应用程序模型n为什么需要J2EEn什么是J2EE1、传统应用程序模型(一)数据访问、表示和业务逻辑在一个应用中代码复用、代码可维护性、代码的修改十分困难应用不是分布式的,不具有可伸缩性主机系统或单层结构:主机/终端模式1、传统应用程序模型(二)用户界面和程序逻辑绑在一起,代码难以重用服务器的数据库必须同每一个活动的客户保持连接,消耗大量的运算资源,随着客户数目的增加性能不断下降,且存在死锁及崩溃的可能数据模型“紧耦合”在每一客户端,数据库结构改变将导致全体客户端改变,不利于更新和维护原始数据通

39、过网络传递:加重网络负担客户端应用程序越来越大,对使用者的要求也越来越高客户/服务器结构:“胖”客户端胖客户端:胖客户端:表示逻辑表示逻辑业务逻辑业务逻辑业务数据模型业务数据模型通讯通讯Fat clientFat client2、 Web应用程序模型(一)传统的Web应用程序模型:三层分布式架构2、 Web应用程序模型(一)WWW浏览方式带来的变化:l“Browser-based” 的客户端与“Internetworking”l计算方式向服务器端的集中转化客户端:业务数据模型与UI分开,更“瘦”业务逻辑在中间层,通过:连接池,多线程可以处理多客户端早期应用编程困难且性能比较差:CGI(C/C+

40、, VB, Perl等等),ISAPI ,NSAPI(Network Service Access Point Identifier )传统的Web应用程序模型:三层分布式架构2、 Web应用程序模型(二)N层计算模式的引入 采用N层计算结构,从逻辑角度看,系统分成客户端、Web服务器、应用服务器、数据库服务器四层;从物理角度看,应用服务器可以视用户并发数从1到N台进行扩充,以保证客户端用户的响应要求。 2、 Web应用程序模型(二)从1层到N层,得到的改进:l每一层可以被单独改变,而无需其它层的改变l降低了部署与维护的开销,提高了灵活性、可伸缩性l引入瘦客户端,计算被集中至服务器端,使性能提

41、高成为可能仍然存在的问题:l对企业级应用开发人员的要求太高:l 需要熟悉分布式协议(IIOP、HTTP、CGI、ISAPI、NSAPI),进行一致性事务处理,负载平衡,考虑安全性lIIOP (Internet Inter-ORB Protocol,互联网内部对象请求代理协议)用来在CORBA对象请求代理之间交流的协议。Java中使得程序可以和其他语言的CORBA实现互操作性的协议。是一个实现互操作性的协议,它使得由不同语言编写的分布式程序在因特网中可以实现彼此的交流沟通。 N层计算模式的引入2、 Web应用程序模型(三)应用程序各部分之间松耦合,从而应用程序各部分的更新相互独立业务逻辑集中放在

42、服务器上由所有用户共享,使得系统的维护和更新变得简单,也更安全数据库不再和每一个活动的用户保持一个连接,而是由应用程序组件负责与数据库打交道,降低数据库服务器的负担,提高了性能多层应用程序的真正优点3、为什么需要J2EE在企业级应用开发中所面临的而且必须解决的问题:n分布式n可移植n旧系统集成支持n面向Webn可装配n满足企业计算要求一致性事务性安全性n要有好的特性可伸缩可扩展易维护3、为什么需要J2EE J2EE提供了一套完整的解决所有这些问题的框架方案:n提供了分布式、可移植构件的框架提供了分布式、可移植构件的框架n为构件与应用服务器提供标准为构件与应用服务器提供标准APIn简化了服务器端

43、中间层构件的设计简化了服务器端中间层构件的设计3、为什么需要J2EEJ2EE对开发者和用户来说意味着:n更短的开发时间可重用构件JSPEJBn更简化的连接XML,JDBC,RMI-IIOP4、什么是J2EEnOpen and standard based platform for developing, deploying and managing n-tier, Web-enabled, server-centric enterprise applicationsn开放的、基于标准的平台,用以开发、部署和管理N层结构、面向Web的,以服务器为中心的企业级应用二、二、J2EE的组成nWhat

44、is Java 2 Platform nJ2EE的组成nJ2EE架构及核心技术简介 1、What is Java 2 PlatformJava的版本历史:从一种语言发展为一种平台从一种语言发展为一种平台nJava的前身是一种与平台无关的语言“OaK”,诞生于1991年Sun公司的一个研究项目,最初目的是为了应用于消费类电子设备的开发;n1994年Internet开始起步,1995年年NetScape宣布把Java集成到其浏览器中,可执行的Java代码可以以Applet的形式在浏览器中运行,Java开始流行。nSun公司1996年年1月发布JDK1.0,1997年年2月发布JDK1.1,Java

45、开始在企业中应用。n1998年年12月发布JDK1.2,即Java 2 平台,并于1999年年6月经集成重组后重新发布。n目前JDK的流行版本为1.7。目前主要的Java平台及特点如下:nJ2ME - Java 2 Micro Edition:用于创建嵌入式应用程序的Java平台(如PDA、仪表)。nJ2SE - Java 2 Standard Edition:用于创建典型的桌面与工作站应用的Java平台。nJ2EE - Java 2 Enterprise Edition:用于创建可扩缩的企业应用的Java平台。2、J2EE的组成J2EE J2EESpecification J2EERefer

46、ence Implementation J2EECompatibilityTest Suite J2EEBlue Prints 3、J2EE架构及核心技术简介nJ2EE架构:3、J2EE架构及核心技术简介nJ2EE容器和构件:容器处理容器处理构件处理构件处理分布性分布性可伸缩性可伸缩性可用性可用性事务性事务性安全性安全性 生命周期管理生命周期管理表示表示JSP, Servlet, Applet业务逻辑业务逻辑EJB数据访问逻辑数据访问逻辑EJB3、J2EE架构及核心技术简介nJ2EE核心技术:13种种 EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、JDB

47、C XML、JMS3、J2EE架构及核心技术简介EJB J2EE的基石:nEJB (Enterprise JavaBeans) :EJB不是一个具体的产品,而是一个Java服务器端组件开发的规范,软件厂商根据它来实现EJB服务器。使用EJB,Java程序员可以将一些定义明确的程序块组合到一起,从而方便、快捷地建构分布式应用程序。使用EJB可以使整个程序分块明确,并且EJB可以使用其它EJB或JDBC等服务,从而增强了分布式应用程序的可扩展性和性能;EJB规范在简化分布式应用程序开发复杂性方面做了大量的工作,所以EJB程序员不必太担心事务处理、多线程、资源管理等方面的问题,可以专注于支持应用所需

48、的商业逻辑,而不用担心周围框架的实现问题。EJB的使用增强了整个系统程序的可靠性、可管理性和可移植性。3、J2EE架构及核心技术简介EJB J2EE的基石:nEJB容器是: EJB的运行环境。它提供规范中定义的接口使EJB类访问所需的服务。容器厂商也可以在容器或服务器中提供额外服务的接口。 它的责任包括:3、J2EE架构及核心技术简介EJB J2EE的基石:nEJB服务器是: 管理EJB容器的高端进程或应用程序,并提供对系统服务的访问。EJB服务器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他服务(如CORBA服务)的访问。一个EJB服务器必须提供支持对JNDI的名字服务和TS事务服

49、务的可访问。 nEJB分为两种: 会话EJB和实体EJB,会话EJB向客户提供一定的服务,如:特定的商业逻辑、数据库查询等;而实体EJB则代表数据对象,通常代表的是数据表记录集的一行,一个实体EJB可以同时与多个客户进行交互。3、J2EE架构及核心技术简介nJ2EE核心技术: EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、JDBC、XML、JMS3、J2EE架构及核心技术简介CORBA体系结构:核心ORB3、J2EE架构及核心技术简介CORBA技术:nCORBA(Common Object Request Broker Architecture)是一个分

50、布式对象体系结构,它独立于平台,也独立于语言。n在这个体系结构中,一个对象可以被本机上的客户或远程客户通过方法激活来存取。客户(一个对象或应用)无须知道被调用对象(称为服务对象)的运行环境,也无须知道实现这个对象的编程语言,客户只要知道服务对象的逻辑地址和提供的接口。n这种互操作性的关键是IDL(Interface Definition Language、接口定义语言),IDL说明对象接口中的方法,这些方法可以被其它对象(或应用)激活。3、J2EE架构及核心技术简介nJ2EE核心技术: EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、JDBC、XML、JM

51、S3、J2EE架构及核心技术简介RMI技术:nRMI(Remote Method Invoke)是一种被EJB使用的更底层的协议,正如其名字所表示的那样,RMI协议调用远程对象上方法,使用序列化方式在客户端和服务器端的对象之间传递数据。RMI和CORBA相比:n两者的关键差别在于语言环境,Java RMI是一个分布式对象计算的纯Java解决方案(如,在Java RMI中,对象的接口用Java定义,而不是用IDL);n其次,CORBA没有定义安全服务,而Java RMI继承了Java的安全性;n再者,CORBA有不同的实现,不同的独立软件开发商的不同实现均有独特性,这使得在不同平台上的匹配比较困

52、难,而且不是所有CORBA产品开发商都支持所有平台,而几乎所有平台都支持Java虚拟机,因此Java RMI具有更高的可移植性。如果客户对象和服务对象都基于Java虚拟机,那么Java RMI是分布对象计算的最好选择。n最后,IIOP( Internet Inter-ORB Protocol )已经提供了Java RMI和CORBA的互操作能力,而且两者的发展有互相借鉴的趋势。3、J2EE架构及核心技术简介nJ2EE核心技术: EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、JDBC、XML、JMS3、J2EE架构及核心技术简介JSP技术:nJSP是服务器

53、端的脚本语言,是以Java和Servlet为基础开发而成的动态网页生成技术,它的底层实现是Java Servlet。nJSP(Java Server Pages)页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。n特点:面向对象,跨平台,和Servlet一样稳定,可以使用Servlet提供的API,克服了Servlet的缺点。n应用:一般和JavaBeans结合使用,从而将界面表现和业务逻辑分离。 3、J2EE架构及核心技术简介JSP和ASP的比较(一):相似:n都是运行于服务器端的脚本语言

54、,两者都是动态网页生成技术。n这两项技术都使用HTML来决定网页的版面,都是在HTML 代码中混合某种程序代码,由语言引擎解释执行程序代码。HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。3、J2EE架构及核心技术简介JSP和ASP的比较(二):不同:nJSP是由Sun推出的一项技术,是基于JavaServlet以及整个java体系的Web开发技术,利用这一技术可以建立先进、安全和跨平台的动态网站。ASP是MS公司推出的技术,只能在MS的平台上运行,无法实现跨平台,也无安全性保障。nASP下的编程语言是 VBScript 之类的脚本语言,而JSP 使用的是Java。nAS

55、P 与 JSP 还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 ASP 下, VBScript 代码被 ASP 引擎解释执行;在 JSP 下,代码被编译成 Servlet 并由 Java 虚拟机执行,这种编译操作仅在对 JSP 页面的第一次请求时发生。3、J2EE架构及核心技术简介nJ2EE核心技术: EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、JDBC、XML、JMS3、J2EE架构及核心技术简介Java Servlet技术:nServlets(Server Applet):是一些运行于Web服务器端的Java小程序

56、,用来扩展Web服务器的功能。nServlet是一种扩展Web服务器功能的技术,而且由于它是用Java编写的,所以能够访问整个Java API库,包括用于访问企业数据库的JDBC API。nServlets用特定的Java解决方案替代了其它的Web服务器方编程模式(如:CGI,ISAPI等),因而继承了Java的所有特性(跨平台、多线程、OO)。n用来编写Servlets的Servlet API对于服务器环境和协议没有任何特殊的要求,所以Servlets具有很强的可移植性,也不像利用CGI程序等其它方式那样具有性能局限。nServlets也同样使用HTTP协议与客户端进行通讯,所以有时也称Se

57、vlets为“HTTP Servlets”。3、J2EE架构及核心技术简介Java Servlet和JSP的比较:相似:n两者都是基于Java的技术,所以都继承了Java的所有特性(跨平台、多线程、OO ),都可以使用Java强大的API。n两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。n两者在J2EE体系结构中的工作层次相同,都负责与客户端的连接。不同:n编程方式不同。Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简单容易。n应用目的不同。Servlet主要用于从客户端接收请求信息,而JSP主要负责将服务器端信息传送到客

58、户端。n使用JSP的真正意义在于:可以将界面设计和业务逻辑设计分离。3、J2EE架构及核心技术简介nJ2EE核心技术: EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、JDBC、XML、JMS3、J2EE架构及核心技术简介JavaBean技术:nJavaBean是基于Java的组件模型,有点类似于Microsoft的COM组件。nJavaBean通过Java虚拟机(Java Virtual Machine)执行,运行JavaBean最小的需求是JDK1.1或者以上的版本。n在Java平台中,通过JavaBean可以无限扩充Java程序的功能,通过JavaB

59、ean的组合可以快速的生成新的应用程序。n对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。nJavaBean传统的应用在于可视化的领域,如AWT(Abstract Windowing Toolkit,抽象窗口工具包 )下的应用。自从Jsp诞生后,JavaBean更多的应用在了非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。3、J2EE架构及核心技术简介nJ2EE核心技术: EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean、JDBC、XML、JMS3、J2EE架构及核心技术简介JDB

60、C技术:nJDBC是一组API,定义了用来访问数据源的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。nJDBC对数据库的访问具有平台无关性。 nJDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题。nJDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。3、J2EE架构及核心技术简介nJ2EE核心技术: EJB、 CORBA、 RMI、JSP、 Java Servlet、JavaBean

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论