版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题型总述:一、选择题3*10二、判断题1*10三、填空题1*18四、简答题8*3五、问答题9*2一SOA技术概述1为什么要引入SOA需求拉动:Internet环境下的分布式企业业务的协同异构系统的集成,交互,与互操作快速响应频繁变化的交互操作与集成需求技术推动:面向服务的计算架构具有屏蔽异构性,实现互操作,共性凝练和复用等优点,能够有效解决软件技术发展中的四个基本问题:质量、效率、互操作、柔性构造问题。2SOA的三个核心要素标准化封装,服务松耦合可编排,复用。3SOA的典型优势①能够在Internet这样的分布式环境下,实现分布式异构系统的集成与互操作②通过透明化位置,接口与实现实体化隔离和标准化通讯协议(XML),实现了完全的松散耦合③允许以大数据量的方式一次性进行数据交换,实现大数据低频访问,从而显著提高系统的响应速度和稳定性④信息传递基于文本,不包含处理逻辑和数据类型,屏蔽兼容性问题⑤拥有独立于服务使用的上下文环境⑥使用粗粒度服务接口和大粒度复用体,复用效率更高4SOA适合应用的场景处于分布式环境下的异构软件实体需要进行协同和交互或频繁地变化的场景。5点对点的服务发布与调用体系结构模式基本模式:发布-访问服务提供者服务提供者服务注册中心服务客户端(1)注册(WSDL)(2)发现(UDDI)(3)绑定(SOAP)模式中的基本操作:发布(Publish)、发现(Find)、绑定(Bind)、调用(Invoke)6.企业服务总线企业服务总线(EnterpriseServiceBus)是一个整合应用和服务的灵活的连接基础组织,支持实现多个服务的编排。ESB在请求者和服务之间实现了:•路由服务间的消息•转化请求者和服务之间的传输协议•转化请求者和服务之间的传输协议•处理分离资源间的业务事件二SOA参考架构1IBM层次模型层次:业务流程层(服务组合与协同层):将数个单独的服务整合到一起,实现更繁杂的业务。访问层(表现层):提供用户接口(自顶向下:从业务需求出发,通过模型驱动,构造SOA蓝图)服务层:完整的独个服务,允许被发现和调用(自底向上:充分利用遗留系统的投资,封装可被服务所使用的功能)企业功能构件层:实现功能和保证服务的质量遗留系统层:原始的,已经建立的系统应用实体等级:集成:通过引入一组可靠的功能来实现服务集成服务质量:功能需要被监控和管理,已维护服务的安全性,可用性数据结构管理2SOA平台模型包含的组件和作用基础设施服务组件:为整个SOA组件和框架提供一个可靠的、运行期完整的软件支撑运行环境,以及服务组件容器。企业服务总线(ESB)组件:提供可靠消息传输、服务接入、协议转换、数据格式转换、基于内容的路由等功能,屏蔽了服务的物理位置,协议和数据格式。是实现SOA治理的重要支撑平台,是SOA解决方案的核心。关键服务实现组件:通常包括交互服务、流程服务、信息服务、伙伴服务、企业应用服务和接入服务。这些服务都可以接入ESB,进行集中统一管理。开发工具和管理工具组件:提供完善的、可视化的服务开发和流程编排工具,涵盖服务的设计、开发、配置、部署、监控、重构等完整的SOA项目开发生命周期。3面向服务的建模和设计(SOMA,Service-OrientedModeling&Analysis)①建立业务模型②识别对象和服务③设计服务(接口、内部)和服务编排④用编程语言实现服务⑤SOA系统的配置与运行SOMA的核心:识别、设计和实现服务(services)、用来支持服务的构件(components)、以及服务之间形成的协同(choreography)三WEB服务基础1WEBSERVICEWebService是一种部署在Web上的对象;WebService是建立在以XML为主的、开放的Web标准协议规范的基础上的分布式应用新平台;WebService的实质是一套标准,它定义了应用程序如何在Web上实现互操作。WebService的四个核心:XML,SOAP,WSDL,UDDI。2SOAP(SimpleObjectAccessProtocol,简单对象访问协议)SOAP基于XML和HTTP协议。一条SOAP消息就是一个普通的XML文档,包含下列元素:必需的Envelope元素,可把此XML文档标识为一条SOAP消息,包括üxmlns:soap命名空间和encodingStyle属性可选的Header元素,包含头部信息必需的Body元素,包含所有的调用和响应信息可选的Fault元素,提供有关在处理此消息所发生错误的信息,如果已提供了Fault元素,则它必须是Body元素的子元素SOAP消息基本结构<?xmlversion="1.0"?><soap:Envelopexmlns:soap="/2001/12/soap-envelope"soap:encodingStyle="/2001/12/soap-encoding"> <soap:Header>
...</soap:Header><soap:Body>
...
<soap:Fault>
...
</soap:Fault></soap:Body></soap:Envelope>SOAP请求:<?xmlversion="1.0"?><soap:Envelopexmlns:soap="/2001/12/soap-envelope"soap:encodingStyle="/2001/12/soap-encoding"><soap:Body>
<m:GetPricexmlns:m="/prices">
<m:Item>Apples</m:Item>
</m:GetPrice></soap:Body></soap:Envelope>soap响应<?xmlversion="1.0"?><soap:Envelopexmlns:soap="/2001/12/soap-envelope"soap:encodingStyle="/2001/12/soap-encoding"><soap:Body>
<m:GetPriceResponsexmlns:m="/prices">
<m:Price>1.90</m:Price>
</m:GetPriceResponse></soap:Body></soap:Envelope>SOAP方法指的是遵守SOAP编码规则的HTTP请求/响应。SOAP请求可能是HTTPPOST或HTTPGET请求,其中HTTPPOST请求规定至少两个HTTP头:Content-Type和Content-Length。加上SOAP方法后的SOAP请求:POST/InStockHTTP/1.1Host:Content-Type:application/soap+xml;charset=utf-8Content-Length:nnn<?xmlversion="1.0"?><soap:Envelopexmlns:soap="/2001/12/soap-envelope"soap:encodingStyle="/2001/12/soap-encoding">
<soap:Bodyxmlns:m="/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>加上SOAP方法后的响应HTTP/1.1200OKContent-Type:application/soap+xml;charset=utf-8Content-Length:nnn<?xmlversion="1.0"?><soap:Envelopexmlns:soap="/2001/12/soap-envelope"soap:encodingStyle="/2001/12/soap-encoding">
<soap:Bodyxmlns:m="/stock">
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Envelope>3WSDL(WebServiceDescriptionLanguage,网络服务描述语言)定义了一套基于XML的语法,将Web服务描述为能够进行消息交换的服务访问点的集合。是Web服务的接口描述语言,包含以下内容:Web服务做什么,Web服务位于哪里,怎样调用元素描述<import>引用其他服务接口文档<types>描述将使用的数据类型<message>定义传入传出的消息格式<portType>定义了一组操作及消息:单请求、单响应、请求/响应、响应/请求<operation>对服务中所支持的操作的抽象描述,一般单个operation描述了一个访问入口的请求/响应消息对<binding>确定protType将会使用何种传输协议(如SOAP)<port>定义了一个关联某个binding的服务入口<service>一组port组成的网络服务WSDL概念模型服务接口(抽象定义):消息(message),操作(operation),端口类型(portype),服务实现(具体定义):绑定(binding),服务(service),端口(port)WSDL文档规范:<definitionsnamespace=“http://…”>
<types>XMLschematypes</type>
<message>
definitionofamessage</message>
<portType>asetofoperations</portType>
<binding>communicationprotocols</binding>
<service>alistofbindingandports</service></definitions>4UDDI(UniversalDescription,Discovery,andIntegration,统一描述、发现和集成)是一个基于XML的跨平台的描述规范,可以使世界范围内的企业在网络上发布自己所提供的服务。四WEB服务实现(实验一)1如何开发一个web服务2如何调用已有的web服务五REST基础1REST是什么RepresentationalStateTransfer,(资源)表述性状态转化,这是一种以资源为核心的设计风格,通过指定特定的URI,将寄存于服务器的可供操作的事物(即资源)的表现形式进行状态转化。简单地说,即客户端通过四个HTTP动词,对服务器端资源进行操作。Rest的六个特点:·客户端-服务器的·无状态的·可缓存的·统一接口·分层系统·按需编码2为什么要做RESTful架构①可以提供一套统一的接口为异构的系统提供服务②将用户界面和数据存储分离,提高系统的可移植性③基于成熟的HTTP安全模型,属于轻量级架构④无状态请求可以由任何可用服务器回答3REST与RPC的对比REST服务是一种ROA(ResourceOrientedArchitecture)应用,其主要特点是方法信息存在于HTTP协议的方法中,作用域存在于URI中,风格更轻量和快速。从方法信息角度,REST采用标准的HTTP方法,RPC请求都是HTTP协议的POST方法,其方法信息包含于SOAP协议包或HTTP协议包中,方法名称不具有通用性。从作用域角度看,REST采用URI显示定义作用域,而RPC这一信息同样包含于协议包中,不能直观呈现。RPC风格的开发关注于服务器-客户端之间的方法调用,是面向方法调用过程的,而REST是面向资源状态的。六RESTAPI设计(实验二)1统一接口安全性:是指外系统对该接口的访问,不会使服务器资源的状态发生改变幂等性:是指外系统对同一REST接口的多次访问,得到的资源状态是相同的。在网速不够快的情况下,客户端发送一个请求后不能立即得到响应,由于不能确定是否请求是否被成功提交,所以它有可能会再次发送另一个相同的请求,幂等性决定了第二个请求是否有效。GET:获取服务提供的资源。幂等且安全。GET方法本身是幂等且安全的,但是如果将一个本不该使用GET方法的API定义为之,就有可能违背安全性和幂等性。PUT:更新或添加服务资源。幂等但不安全。POST:创建或添加服务资源。不幂等也不安全。在REST中使用的POST方法可以称为POST(a),区别于RPC中的POST(p),POST(a)不需要服务器进行解析,而是直接处理请求。DELETE:删除服务提供的资源。幂等但不安全。总结:除GET外均是不安全的,除POST均是幂等的。2资源定位URI设计:问号用来分隔资源地址和查询字符串,其中&用来分割查询条件中的参数逗号用来分隔有次序的作用域信息分号用来分隔无次序的作用域信息注意:资源地址相同,但HTTP方法不同的两个方法是两个不同的REST接口。HTTP方法和资源地址结合在一起才可以完成对资源的定位。注释设计:@Path使得JAVA类能够处理REST请求@QueryPararm定义查询参数,包括分页查询列表数据,排序并分页查询列表数据和查询单项数据@PathParam定义路径参数,每个参数对应一个子资源。@FormParam注释来定义表单参数@CookieParam注解用以匹配Cookie中的键值对3内容协商@Produces表示类或者方法返回的MIME数据类型@Consumes用于定义方法的请求实体的数据类型4如何开发和调用RestfulAPIservices七服务组合技术1服务编排(ServiceOrchestration)将多个小粒度的Web服务按照特定的业务逻辑规则构造为一个可执行的业务过程,同时又可以看作是一个大粒度的复合Web服务。执行时需要有中心控制机制;由一个组织所拥有;侧重点:如何使用已有的服务来构造新的服务。BPEL基本结构过程中的基本功能单元:活动<activity>活动之间的次序关系:先后次序<sequence>多分支<switch>循环<while>并发与同步<flow>非确定性选择<pick>过程的相关数据:容器<container>错误处理机制:<catching>、<handlingfaults>补偿机制:<compensationhandler>2服务协同(ServiceChoreography)将多个零散的、分别由多方提供的服务/业务流程按照彼此之间的协同关系组织起来,支持多方的交互行为。无需中心控制;无需完全由一个组织所拥有;侧重点:不同服务之间的消息传递的次序与规则,以保证期望的协同行为。描述语言:WS-CDL(WebServiceChoreographyDescriptionLanguage)3服务编排和服务协同的对比①服务协同无需中心控制,而服务编排在执行时需要中心控制机构②服务协同可以将多个已经经过服务编排的服务整合到一起③服务协同在SOA标准协议栈中比服务编排要高一级④二者实现语言BPEL4WS与WS-CDL不同及对比BPEL需要集中式的控制机制;递归式的服务组合;可执行的过程建模语言;需要调用Web服务;WS-CDL无需集中式的控制机制(分布在各个参与方);描述性语言,不可执行;无需调用Web服务;八业务流程(实验三)1BPEL规范BPEL,业务过程执行语言,是一种基于XML的,用来描写业务流程的编程语言。BPEL的基本结构<processname="ncname"targetNamespace="uri"
queryLanguage="anyURI"?
expressionLanguage="anyURI"?
suppressJoinFailure="yes|no"?
enableInstanceCompensation="yes|no"?
abstractProcess="yes|no"?>
<bpel:import....></bpel:imp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业固体废物处理处置工岗位保密考核试卷含答案
- 固体饮料加工工岗中理论能力考核试卷含答案
- 版画制作工诚信道德竞赛考核试卷含答案
- 焦炉煤气冷凝净化工安全素养考核试卷含答案
- 棕草编织工岗前交接考核试卷含答案
- 2026年秋季久坐危害与课间微运动
- 2025年都兰县数学三年级下学期期末达标测试试题含答案
- 2026年秋季开学骨干教师专业成长课件
- 2026事业单位工勤技能-吉林-吉林假肢制作装配工一级(高级技师)历年参考题库含答案详解
- 电工下册基础试题及答案解析
- 一带一路风险课题申报书
- 发展经济学(第二版)课件 第0-9章 绪论 - 城市化与城乡发展
- 幼儿园中班数学《家里的数字》课件
- 《协商决定班级事务》课件
- 水厂卫生知识培训资料课件
- 外科腔镜器械介绍
- 锅炉制图培训课件
- 《高速铁路概论(第2版)》高职铁路专业全套教学课件
- DB31/T 1238-2020分布式光伏发电系统运行维护管理规范
- 200句记忆高中英语3500词(语法填空练习)
- 差旅费管理办法宣贯
评论
0/150
提交评论