第五章应用系统开发模式PPT课件_第1页
第五章应用系统开发模式PPT课件_第2页
第五章应用系统开发模式PPT课件_第3页
第五章应用系统开发模式PPT课件_第4页
第五章应用系统开发模式PPT课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

06.06.2020,.,1,应用系统开发模式和体系结构,06.06.2020,.,2,应用系统开发模式大体上分为4种:主机终端模式、文件服务器模式(File/Server,简称F/S)、客户机/服务器模式(Client/Server,简称C/S)和Web浏览器/服务器模式(Browser/Server,简称B/S)。主机终端模式由于硬件选择有限,硬件投资得不到保证,已被逐步淘汰。而文件服务器模式只适用小规模的局域网,对于用户多、数据量大的情况就会产生网络瓶颈,特别是在互联网上不能满足用户要求。因此,现代网络应用系统开发模式主要考虑C/S模式和B/S模式。,06.06.2020,.,3,C/S模式(1),在C/S模式中,主动发起请求的一方为客户,而被动接受请求的一方为服务器。在这种模式下,数据的处理是分散的,而系统的控制是集中的。这种模式也称为胖客户机模式,其开发重点在客户机。,06.06.2020,.,4,C/S模式(2),从物理结构上来说,C/S两层体系结构的前端是客户机,即用户界面(Client),接受用户的请求,并向数据库服务器提出请求;后端是服务器,即数据管理(Server)。服务器将数据提交给客户端,客户端将数据进行计算并将结果呈现给用户。服务器还要提供完善的安全保护及对数据的完整性处理等操作,并允许多个客户同时访问同一个数据库。,06.06.2020,.,5,C/S模式(3),C/S两层体系结构的优点是在技术上很成熟、交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。,06.06.2020,.,6,C/S模式(4),C/S模式有以下缺点:当客户端数目激增时,服务器端的性能会因为负载过重而大大降低;客户端和服务器端耦合度太高,变更不够灵活,维护和管理的难度较大,不利于扩展;由于该结构的每台客户机都需要安装相应的客户端程序,一旦应用的需求发生变化,客户端和服务器端的应用程序都需要进行修改,给应用维护和升级带来了极大的不便,不能实现快速部署安装和配置,只能由具有一定专业水准的技术人员去完成;大量的数据传输增加了网络的负载。,06.06.2020,.,7,B/S模式(1),B/S模式即浏览器/服务器模式。客户通过统一的浏览器进入系统,处理工作全部在服务器一端完成。这种模式也称为瘦客户机模式。其开发重点在服务器。,06.06.2020,.,8,B/S模式(2),但随着业务流程复杂度的提高,服务器端的压力越来越大,从而影响了系统的工作效率。为了解决这些问题,人们提出将业务逻辑提取出来作为单独的一层称为中间层,为所有用户共享。中间层作为整个系统的核心,提供了以下主要功能:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个多层结构应用的开发、运行、部署和管理的平台,具有事务处理、安全控制以及为满足不同数量客户机的请求而具有进行性能调整的能力。,06.06.2020,.,9,B/S模式(3),这样,就使传统的二层B/S结构演变成三层B/S结构,在层与层之间相互独立,任何一层的改变不会影响其它层的功能,所以它极大地降低了客户端和服务器的耦合度,企业需求变化时,改动业务逻辑层的内容即可,不影响其他层,管理和维护变得相对简单。,06.06.2020,.,10,B/S模式(4),B/S三层架构示意图如下:,浏览器,WEB服务器,应用服务器,数据访问接口,数据资源,表示层,业务逻辑层,数据层,HTTP,HTTP,数据请求,返回数据,06.06.2020,.,11,B/S模式(5),B/S三层体系结构具有以下优点:瘦客户端结构。客户端只要安装浏览器,系统扩展也非常容易,所有开发均集中在服务器端;具有开放性和可跨平台性,可以很容易与互联网上的资源连接。,06.06.2020,.,12,B/S模式(6),B/S模式的缺点:它采用点对点、多点对多点的开放的结构模式,并采用TCP/IP这一类运用于Internet的开放性协议,其安全性无法和适用于局域网的网络协议(例如WindowsNT的NetBEUI协议)相比,只能靠信息加密和身份验证来保证,需要构筑防火墙来进一步提高系统的安全性。,06.06.2020,.,13,B/S模式应用系统的开发,微软的.NET开发平台。J2EE开发平台。WEB服务(WebServices)技术。,06.06.2020,.,14,什么是WebServices,是以独立于平台的方式,通过标准的Web协议,可以由程序访问的程序逻辑单元。Web服务(WebServices)技术是当今计算机软件业的焦点,它的目标是在现有的各种异构平台上实现一个通用的与平台无关、语言无关的技术层,使各种平台上的应用系统可以依靠这个技术层来实现彼此的连接与集成。,06.06.2020,.,15,WebServices的执行过程,1、开发WEB服务并部署使用,2、由WSDL文档生成SOAP请求,3、解析SOAP请求,调用WEB服务并生成SOAP响应,4、SOAP响应返回客户,06.06.2020,.,16,Web服务的体系结构(1),Web服务的体系结构基于三种角色:服务提供者(ServiceProvider)、服务请求者(ServiceRequester)和服务注册中心(ServiceRegistry)。三种角色互相交互,涉及到发布(Publish)、绑定(Bind)和发现(Find)的操作。,06.06.2020,.,17,Web服务的体系结构(2),Web服务体系结构中的角色:服务提供者。从企业的角度看,这是服务的所有者。从体系结构的角度看,这是托管服务的平台。服务请求者。从企业的角度看,这是一个寻求服务功能的请求者。从体系结构的角度看,这是寻找并调用服务,或启动与服务的交互的应用程序。服务注册中心。是服务提供者发布其服务描述的地方,服务请求者从这里发现服务并得到绑定信息。,06.06.2020,.,18,Web服务的体系结构(3),发现,服务注册中心,服务请求者,服务提供者,发布,发现,绑定,06.06.2020,.,19,Web服务的操作(1),发布。为了使服务可访问,需要发布服务描述以使服务请求者可以查找它。发布服务描述的位置可以根据应用程序的要求而变化。发现。在发现操作中,服务请求者直接检索服务描述或在服务注册中心中查询所要求的服务类型。对于服务请求者,可能会在两个不同的生命周期阶段中牵涉到发现操作:在设计时为了程序开发而检索服务的接口描述,而在运行时为了调用而检索服务的绑定和位置描述。,06.06.2020,.,20,Web服务的操作(2),绑定。在绑定操作中,服务请求者使用服务描述中的绑定细节来定位、连接和调用服务,从而在运行时调用或启动与服务的交互。其中,服务描述包含服务的接口和实现的细节,如服务的数据类型、操作、绑定信息和网络位置。还可能包括可以方便服务请求者发现和利用的分类及其它元数据。服务描述可以被发布给服务请求者或服务注册中心。,06.06.2020,.,21,WebServices主要技术规范,SOAPXML格式的消息交换协议消息/文档交换协议Web服务对象的面向对象的访问界面WSDL基于XML的组件描述UDDI可通过Web访问的注册中心使用SOAP消息来访问WSFLWebService间工作流描述,06.06.2020,.,22,Web服务协议堆栈(1),左边是基本协议。右边是扩展协议。(安全、管理和服务质量),06.06.2020,.,23,SimpleObjectAccessProtocol,SOAP是Web服务最重要的协议,它是在分布式的环境中交换信息的轻量级协议,是一个基于XML的协议,包括:SOAP消息格式:定义了XML文档格式,是语法定义,语义由具体的实现定义;SOAP编码规则:用于表示应用程序需要使用的数据类型的实例;SOAPRPC表示,表示远程过程调用和应答的协定;SOAP绑定方式:使用底层协议交换信息。独立于任何编程语言、对象模型、操作系统平台。,06.06.2020,.,24,SOAP消息格式,Envelope是表示该消息的XML文档的顶级元素,Header则是为了支持在松散环境下在通讯方之间尚未预先达成一致的情况下为SOAP消息增加特性的通用机制。,Body为该消息的最终接收者所想要得到的那些必须处理的信息提供了一个容器。,06.06.2020,.,25,reader,06.06.2020,.,26,WebServicesDescriptionLanguage,使用XML进行描述类似IDL,不过是使用XML格式描述了服务的操纵信息服务接口(即对象的方法)接口的参数和返回类型传输协议服务的URLWSDL是早先技术的综合IBM的NASSLMicrosoft的SDL,06.06.2020,.,27,WSDL,WSDL文档也是XML文档,它将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问。,06.06.2020,.,28,WSDL格式,含服务接口描述部分和服务实现部分。,06.06.2020,.,29,WSDL的元素(1),types:描述将会使用的数据类型message:定义传入传出的消息格式portType:定义了一个接口的类型(使用了怎样的request/response消息对)binding:确定portType将会使用何种传输协议(SOAP/HTTP-POST/)port:定义了一个关联某个binding的服务入口service:一组port组成的WebService,06.06.2020,.,30,WSDL的元素(2),消息指对交换数据的抽象描述;端口类型指操作的抽象集合。绑定是用于特定端口类型的具体协议和数据格式规范。绑定可以再次使用。端口用来将Web访问地址与可再次使用的绑定相关联。端口的集合则定义为服务。,06.06.2020,.,31,UniversalDescription,DiscoveryandIntegration,是一套基于Web的、分布式的、为Web服务提供信息的注册中心的实现标准规范.UDDI包括三部分内容:注册中心,包括定义注册中心需要提供的标准服务接口及其所用到的数据结构。这部分是服务器端的技术。剩下两部分是客户端的技术:关于发布服务的规范,也就是定义了发布服务的API接口;关于发现服务的规范,也就是定义了发现服务的API接口。,06.06.2020,.,32,UDDI的数据类型,构成商业注册的信息包括五种数据类型,这五种数据类型组成了UDDI服务描述框架中所提供的所有信息。,06.06.2020,.,33,UDDI的数据类型关系,06.06.2020,.,34,UDDI的数据类型(1),businessEntity结构描述了发布企业(或实体)的所有信息,其中包括发布企业(或实体)的描述信息及它们所提供的服务的信息。每一个businessService结构表示了一个逻辑服务分类,而每一个businessService结构又都是一个独立的businessEntity结构的逻辑子结构。,06.06.2020,.,35,UDDI的数据类型(2),businessService结构将一系列有关商业流程或分类目录的Web服务的描述组合到一起。businessService和bindingTemplate一起构成了“绿页”信息。对于每一个businessService,存在一个或多个Web服务的技术描述bindingTemplate。这些技术描述包括应用程序连接远程Web服务并与之通讯所必须的信息,包括Web应用服务的地址、应用服务宿主和调用服务前必须调用的附加应用服务等。,06.06.2020,.,36,UDDI的数据类型(3),tModel结构的任务之一就是具有对符合某种规范、概念甚至是某种共享设计的描述能力。tModel结构的组成信息非常简单。它包括一个键,一个名,一个可选的描述以及一个指向某处的URL。两个具有关联关系的商业实体就可以使用xx_publisherAssertion消息来发布彼此商业关系的声明。,06.06.2020,.,37,WEB服务应用(1),例如,人才市场的Web服务按以下方式被部署。首先编写处理人才信息的程序,这是一个普通的Java类。(publicclassEmploymentService)再把这个程序部署成为一个Web服务。parametername=methodNamevalue=getEmployee/,06.06.2020,.,38,WEB服务应用(2),部署Web服务后还需要生成它的接口描述文档WSDL文档:,06.06.2020,.,39,WEB服务应用(3),该人才市场的人才招聘Web服务是位于http:/localhost:8081/axis/services/urn:employmentservice这个URL表示的位置,06.06.2020,.,40,WEB服务应用(4),生成这个Web服务的WSDL文档后,还需要注册这个Web服务到UDDI注册中心,提供人才市场信息,提供Web服务的信息以及提供企业自动调用Web服务的信息。publicclassEmploymentPublishpublicstaticfinalStringinquiryURL=services/uddi/testregistry/protect/publishapi;publicstaticfinalStringuserid=caoyuan;publicstaticfinalStringpassword=111;protectedUDDIProxyproxy=null;,06.06.2020,.,41,WEB服务应用(5),通过UDDI可以得到这个Web服务的WSDL文档的存储位置。根据WSDL文档,使用IBM公司的wsdl4j.jar可以得到这个Web服务的所有信息便于调用。Definitiondef=WSDLReader.readWSDL(null,newInputSource(WSDLdocurl);serviceURLs.put(soapaction,serviceURL);,06.06.2020,.,42,WEB服务应用(6),根据从WSDL文档得到的信息,编写调用Web服务的客户端程序。:Serviceservice=newService();Callcall=(Call)service.createCall();call.setTargetEndpointAddress(.URL(endpointURL);call.setOperationName(methodName);call.setProperty(Call.NAMESPACE,soapaction);Employeeemployee=newEmployee();QNameqn=newQName(soapaction,Employee);Listresponse=(List)call.invoke(newObjectyearoldmin,yearoldmax,gender,area,status);,06.06.2020,.,43,Web服务组合(1),随着Web服务技术的日益成熟,越来越多的稳定易用的Web服务共享在网络上。但单个的Web服务能够提供的功能有限,为了更加充分地利用共享的Web服务,有必要将共享的Web服务组合起来,提供更为强大的服务功能,加快系统开发的速度,快速满足用户需求。Web服务组合作为Web服务一项重要的增值功能,为服务的重用与自动化集成提供了应用的基础。,06.06.2020,.,44,Web服务组合(2),定义利用Internet上分布的现有Web服务,根据用户的应用需求,自动地选择合乎需要的服务,在服务组合支撑平台的支持下,按照一定的规则协同完成服务请求。Web服务组合可以利用较小的、较简单的、且易于执行的轻量级服务来创建功能更为丰富、更易于用户定制的复杂服务,从而能够将松散耦合的、分散在Internet上的各类相关Web服务有机地组织成一个更为可用的系统,支持企业内、外部的企业应用集成EAI和电子商务等网络应用。,06.06.2020,.,45,Web服务组合(3),特点层次性和扩展性:Web服务组合通过重用并组装己有的Web服务来生成一个粗粒度的服务,使得组合Web服务具有层次性和扩展性。动态与自适应性:Web服务组合是一个动态与自适应的过程,它在标准协议的基础上,根据客户的需求,对封装特定功能的现有服务进行动态地发现、组装和管理。,06.06.2020,.,46,Web服务组合(4),特点提高了交易过程的自动化程度:Web服务组合通过动态的语义分析与服务的自动化匹配,减少了不必要的人工干预,易于实现动态电子商务交易过程的自动化。提高了软件生产率:通过重用己有的服务,并自动化地生成新的服务或系统,极大提高了软件的生产效率。,06.06.2020,.,47,Web服务组合(5),Web服务的组合方式一般可抽象地划分为静态组合与动态组合两种类型,其主要区别在于选择被组合服务的时机不同,前者是由设计人员在设计时确定,而后者则是在运行时选择。除此之外,也还有探测性组合、固化组合、半固化组合等分类。,06.06.2020,.,48,Web服务组合(6),一个Web服务组合,当它根据其应用场景由不同的构件块按照某种组合逻辑形成时,实际上经历了几个渐进的发展阶段,这几个发展阶段一起构成了服务组合的生命周期。服务组合的生命周期一般由五个阶段构成:计划编制阶段:根据用户提出的服务请求确定需要检索和聚合的服务操作(或活动)系列,这个服务请求是根据领域模型提供的信息来执行的。,06.06.2020,.,49,Web服务组合(7),定义阶段:利用WSDL与BPEL对组合服务进行抽象定义。调度阶段:确定各种应用服务将会怎样执行,什么时候执行,并为执行这些应用服务进行准备,同时提出可替代的组合调度并将其提供给应用开发者进行选择。构建阶段:构建一个具体而明确的服务组合,这个服务组合由一系列潜在有效相匹配的应用服务构成。执行阶段:在确定服务组合规范的基础上,将组合服务绑定,并执行服务。,06.06.2020,.,50,Web服务组合(8),06.06.2020,.,51,面向服务的体系结构SOA(1),定义:SOA是一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程。服务(service)是指封装成用于业务流程的可重用组件的应用程序函数。可以完成某一特定功能且提供一致性的接口供其它服务调用。,06.06.2020,.,52,面向服务的体系结构SOA(2),服务是独立的是指外部组件不用关心服务是如何实现的,只关心它的返回结果即可。服务是可调用的是指它们在什么位置、如何连接都不用考虑,按规定方法进行调用即可。,06.06.2020,.,53,面向服务的体系结构SOA(3),面向服务的重要术语:服务:逻辑实体,是一个或多个已发布接口定义的契约。服务提供者:实现服务规范的软件实体。服务使用者(或请求者):调用服务提供者的软件实体。传统上,它称为“客户端”。服务使用者可以是终端用户应用程序或另一个服务。服务定位器:一种特殊类型的服务提供者,它作为一个注册中心,允许查找服务提供者接口和服务位置。服务代理:一种特殊类型的服务提供者,它可以将服务请求传送到一个或多个其他的服务提供者。,06.06.2020,.,54,面向服务的体系结构SOA(4),在面向服务的体系结构中,映射到业务功能的服务是在业务流程分析的过程中确定的。服务可以是细粒度的,也可以是粗粒度的,这取决于业务流程。每个服务都有定义良好的接口,通过该接口就可以发现、发布和调用服务。企业可以选择将自己的服务向外发布到业务合作伙伴,也可以选择在组织内部发布服务。服务还可以由其他服务组合而成。,06.06.2020,.,55,面向服务的体系结构SOA(5)

温馨提示

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

评论

0/150

提交评论