Web_Service与SOA_第1页
Web_Service与SOA_第2页
Web_Service与SOA_第3页
Web_Service与SOA_第4页
Web_Service与SOA_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、Web ServiceWeb Service的概念Web Service的相关技术Web Service的趋势SOA面向对象服务架构SOA的发展SOA的概念SOA的基本特征ESB Web Service,顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用. Web Service的一个最基本的目的就是提供在各个不同平台的不同应用系统的协同工作能力。 其实Web Service并不是什么神秘的东西,它就是一个可以远程调用的类,或者说是组件。uXML(Extensible Markup Language)uXSD( XML Schemas D

2、efinition )u三大技术uSOAP( Simple Object Access Protocol )uWSDLuUDDIXML:可扩展标记语言( Extensible Markup Language ),标准通用语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。优势 XML文档的内容和结构完全分离互操作性强规范统一支持多种编码可扩展性XML是Web Services技术体系中最基础的标准,Web Services的一切都建立在XML技术的基础之上,包括Web Services的消息、描述和服务实现的各个环节。利用XML,Web Services的服务提供者和请求者可以利用不同

3、的开发语言来协作完成服务调用的过程。XML是Web Services技术体系中的很多标准得以建立的基础,在Web Services系统中无处不在。可扩展标记语言可以对文档和数据进行结构化处理,从而能够在部门、客户和供应商之间进行交换,实现动态内容生成,企业集成和应用开发。可扩展标记语言可以使我们能够更准确的搜索,更方便的传送软件组件,更好的描述一些事物。例如电子商务交易等。XML解决了数据表示的问题,但它没有定义一套标准的数据类型。W3C制定的XSD就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web service平台就是用XSD来作为其数据

4、类型系统的。当你用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合Web service标准,所有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。 XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。 文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。 XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解

5、析它。1) XML Schema基于XML,没有专门的语法 2) XML可以象其他XML文件一样解析和处理 3) XML Schema支持一系列的数据类型(int、float、Boolean、date等) 4) XML Schema提供可扩充的数据模型。 5) XML Schema支持综合命名空间 6) XML Schema支持属性组。 Simple Object Access Simple Object Access ProtocolProtocol简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存

6、的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。封装封装:它定义了一个框架 ,该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的。编码规则编码规则:它定义了一种序列化的机制(数据的编码机制),用于交换应用程序所定义的数据类型的实例(遵循XML模式规范的结构和数据类型的定义)。RPCRPC表示(表示( Remote Procedure Call Protocol ):它定义了用于表示远程过程调用和应答的协定(利用XML的扩展性和灵活性来

7、封装和交换RPC调用)。绑定绑定:定义了一种使用底层传输协议来完成在节点间交换SOAP封装的约定。虽然这四个部分都作为SOAP的一部分,作为一个整体定义的,但他们在功能上是相交的、彼此独立的。特别的,封装和编码规则是被定义在不同的XML命名空间(namespace)中,这样使得定义更加简单。SOAP消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求 / 应答的模式。所有的 SOAP消息都使用 XML 编码。一条 SOAP消息是一个包含有一个必需的 SOAP 的封装包,一个可选的 SOAP 标头和一个必需的 SOAP 体块的 XML 文档。把 SOAP 绑定到 HTTP 提

8、供了同时利用 SOAP 的样式和分散的灵活性的特点以及 HTTP 的丰富的特征库的优点。在HTTP上传送 SOAP 并不是说 SOAP 会覆盖现有的 HTTP 语义,而是 HTTP 上的 SOAP 语义会自然的映射到 HTTP 语义。在使用 HTTP 作为协议绑定的场合中, RPC 请求映射到 HTTP 请求上,而 RPC 应答映射到 HTTP 应答。然而,在 RPC 上使用 SOAP 并不仅限于 HTTP 协议绑定。SOAP也可以绑定到TCP和UDP协议上。可扩展的。SOAP 无需中断已有的应用程序, SOAP 客户端、 服务器和协议自身都能发展。而且SOAP 能极好地支持中间介质和层次化的

9、体系结构。简单的。客户端发送一个请求,调用相应的对象, 然后服务器返回结果。这些消息是XML 格式的,并且封装成符合HTTP 协议的消息。因此,它符合任何路由器、 防火墙或代理服务器的要求。完全和厂商无关。SOAP可以相对于平台、 操作系统、 目标模型和编程语言独立实现。另外,传输和语言绑定以及数据编码的参数选择都是由具体的实现决定的。与编程语言无关。SOAP 可以使用任何语言来完成,只要客户端发送正确SOAP 请求( 也就是说, 传递一个合适的参数给一个实际的远端服务器)。SOAP 没有对象模型,应用程序可以捆绑在任何对象模型中。与平台无关。SOAP 可以在任何操作系统中无需改动正常运行。U

10、DDI是一种规范,它主要提供基于Web服务的注册和发现机制,为Web服务提供三个重要的技术支持: 标准、透明、专门描述Web服务的机制; 调用Web服务的机制; 可以访问的Web服务注册中心。UDDI是一种目录服务,使用它可以对WEB Service进行注册和检索。UDDI计划是一个广泛的,开放的行业计划,它使得商业实体能够 彼此发现,并定义他们怎样在internet上互相作用,并在一个全球的注册体系架构中共享信息。UDDI同时也是Web服务集成的一个体系框架。它包含了服务描述与发现的标准规范。UDDI是一个分布式的互联网服务注册机制,它集描述(Universal Description)、检

11、索(Discovery)与集成(Integration)为一体,其核心是注册机制。UDDI 基于现成的标准,如XML和SOAP。网络服务描述语言是一个用来描述Web服务和说明如何与Web服务通信的XML语言。为用户提供详细的接口说明书。怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Web service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的W

12、eb service。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Web service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。1. 构建生命周期的构建阶段包括开发和测试 Web 服务实现、定义服务接口描述和定义服务实现描述。我们可以通过创建新的 Web 服务、把现有的应用程序变成 Web 服务和由其它

13、 Web 服务和应用程序组成新的 Web 服务来提供 Web 服务的实现。2. 部署部署阶段包括向服务请求者或服务注册中心发布服务接口和服务实现的定义,以及把 Web 服务的可执行文件部署到执行环境(典型情况下,Web 应用程序服务器)中。3. 运行在运行阶段,可以调用 Web 服务。在此,Web 服务完成部署,成为可操作的服务。服务请求者可以进行查找和绑定操作。4. 管理管理阶段包括持续的管理和经营 Web 服务应用程序。安全性、可用性、性能、服务质量和业务流程问题都必须被解决前提:带宽Bandwidth更便宜,易于获得 存储器Storage更便宜,更易获得。 普遍式计算变得更加重要:大量的

14、设备,例如移动电话,页面,电脑,pc,已经在Internet上变得普遍,平台变得更多元化,像XML这样的跨平台技术变得更重要。让我们看看按照Web services角度所预示的四个趋势:内容更加动态:一个web service必须能合并从多个不同来源的内容,可以包括股票,天气,新闻等,在传统环境中的内容,如存货水平,购物订单或者目录信息等,都从后端系统而来;带宽更加便宜:web services可以分发各种类型的内容(音频,视频流等);存储更便宜::web services必须能聪明地处理大量数据,意味着要使用数据库,缓冲,和负载平衡软件等技术保持可扩展能力;普遍式计算更重要:web serv

15、ices不能要求客户使用某一版本的windows的传统浏览器,必须支持各种设备,平台,浏览器类型,各种内容类型。SOA Service-Oriented Service-Oriented ArchitectureArchitecture 面向服务架构面向服务架构 SOA的概念最初由Gartner公司提出,由于当时的技术水平和市场环境尚不具备真正实施SOA的条件,因此当时SOA并未引起人们的广泛关注,SOA在当时沉寂了一段时间。伴随着互联网的浪潮,越来越多的企业将业务转移到互联网领域,带动了电子商务的蓬勃发展。为了能够将公司的业务打包成独立的、具有很强伸缩性的基于互联网的服务,人们提出了Web服

16、务的概念,这可以说是SOA的发端。 Web 服务开始流行以后,互联网迅速出现了大量的基于不同平台和语言开发的Web服务组件。为了能够有效地对这些为数众多的组件进行管理,人们迫切需要找到一种 新的面向服务的分布式Web计算架构。该架构要能够使这些由不同组织开发的Web服务能够相互学习和交互,保障安全以 及兼顾复用性和可管理性。由此,人们重新找回面向服务的架构(Service-Oriented Architecture,SOA),并赋予其时代的特征。需求推动技术进步,正是这种强烈的市场需求,使得SOA再次成为人们关注的焦点。 这一阶段以XML(Extensible Markup Language)

17、技术为标志,时间大致从上世纪九十年代末到本世纪初。虽然这段时期很少提到SOA,但XML的出现无疑为SOA的兴起奠定了稳固的基石。 通过XML,开发人员摆脱了HTML语言的限制,可以将任何文档转换成XML格式,然后跨越互联网协议传输。借助XML转换语言,接受方可以很容易地解析和抽取XML的数据。这使得企业既能够将数据能够以一种统一的格式描述和交换,同时又不必负担SGML(Standard Generalized Markup Language)那样高的成本。事实上,XML实施成本几乎和HTML一样。 2000 年以后,人们普遍认识到基于公共专有互联网之上的电子商务具有极大的发展潜力,因此需要创建

18、一套全新的基于互联网的开放通信框架,以满足企业对电子商 务中各分立系统之间通信的要求。于是,人们提出了Web服务的概念,希望通过将企业对外服务封装为基于统一标准的Web服务,实现异构系统之间的简单交 互。这一时期,出现了三个著名的Web服务标准和规范: 简单对象访问协议(Simple Object Access Protocol,SOAP) Web服务描述语言(Web Services Description Language,WSDL) 通用服务发现和集成协议(Universal Discovery Description and Integration,UDDI) 这三个标准可谓Web服务

19、三剑客,极大地推动了Web服务的普及和发展。短短几年之间,互联网上出现了大量的Web服务,越来越多的网站和公司将其对外服 务或业务接口封装成Web服务,有力地推动了电子商务和互联网的发展。Web服务也是互联网Web 2.0时代的一项重要特征。 从2005年开始,SOA推广和普及工作开始加速。不仅专家学者,几乎所有关心软件行业发展的人士都开始把目光投向SOA。一时间,SOA频频出现在各种技术媒体、新产品发布会和技术交流会上。 各大厂商也逐渐放弃成见,通过建立厂商间的协作组织共同努力制定中立的SOA标准。这一努力最重要的成果体现在3个重量级规范上:SCA/SDO/WS-Policy。SCA(Ser

20、vice Component Architecture)和SDO(Service Data Object )构成了SOA编程模型的基础,而WS-Policy建立了SOA组件之间安全交互的规范。这三个规范的发布,标志着SOA进入了实施阶段。真正的服务必须满足两个条件: 一个服务本身是能力供给,必须有外界的需求; 一个是服务本身是可复用或重用。 所以简单的讲服务应该是可重用的任务。这种任务可以是业务方面的操作组合,也可以是一种技术能力。 面向服务则重点就是一切以服务为中心,从服务识别,服务分析,服务设计,服务开发和服务上线使用一切都是以服务为中心。但是要注意到面向服务本身不是在传统面向结构或面向对

21、象基础上的一个新方法,而是对传统面向对象和组件化思想的提升。 一般说SOA是一种架构方法,将传统的单片式应用打破,分解为离散的、自治的业务服务,利用标准提升他们的互操作性,从而可以更好地共享、重用和组装,快速构建复合的应用从而满足业务需求的变化。在这里面可以看到两个重点,一个是要找到可重用的服务,同时这些服务满足离散,自治和无状态等基本条件;其次是服务本身可以组合和编排,以满足流程整合的需要。传统应用程序传统应用程序组件化的应用程序组件化的应用程序组合的应用程序组合的应用程序因需求重新组合因需求重新组合的应用程序的应用程序3 32 21 11 1、将应用分解为模块和可重用的函数以及服务;、将应

22、用分解为模块和可重用的函数以及服务;2 2、组合服务和模块以符合业务需求;、组合服务和模块以符合业务需求;3 3、重用现有的服务和模块以满足变化的业务需求;、重用现有的服务和模块以满足变化的业务需求;粗粒度:方法和传输都简单,但是实现方法的内部过程则很复杂,业务规则或逻辑全部隐含在业务组件内部,不需要暴露。无状态:每次服务调用完成即完成,不会存储任何全局状态信息。互操作:包括位置透明,通过ESB和UDDI,只需要关心服务目录,而不需要关心具体提供服务的源系统。标准化:有精确的服务契约和服务接口,这也是在SOA方法论中在服务识别和服务分析阶段重要输出。 要运行,管理SOA应用程序,企业需要SOA

23、基础,这是SOA平台的一个部分。SOA基础必须支持所有的相关标准,和需要的运行时容器。WSDL( Web Services Description Language )用来描述服务;UDDI( Universal Description Discovery and Integration )用来注册和查找服务;SOAP( Simple Object Access Protocol ),作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。 一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后

24、通过SOAP来调用服务。WS-I Basic ProfileWS-I Basic Profile WS-I Basic Profile,由Web服务互用性组织(Web Services Interoperability Organization)提供,是SOA服务测试与互用性所需要的核心构件。服务提供者可以使用Basic Profile测试程序来测试服务在不同平台和技术上的互用性。J2EE J2EE 和和 .Net .Net 尽管J2EE和.NET平台是开发SOA应用程序常用的平台,但SOA不仅限于此。像J2EE这类平台,不仅为开发者自然而然地参与到SOA中来提供了一个平台,还通过他们内在的特

25、性,将可扩展性,可靠性,可用性以及性能引入了SOA世界。新的规范,例如 JAXB(Java API for XML Binding),用于将XML文档定位到Java类;JAXR(Java API for XML Registry)用来规范对UDDI注册表(registry)的操作;XML-RPC(Java API for XML-based Remote Procedure Call)在J2EE1.4中用来调用远程服务,这使得开发和部署可移植于标准J2EE容器的Web服务变得容易,与此同时,实现了跨平台(如。NET)的服务互用。服务品质服务品质在企业中,关键任务系统(mission-criti

26、cal system,译注:关键任务系统是指如果一个系统的可靠性对于一个组织是至关重要的,那么该系统就是该企业的关键任务系统。比如,电话系统对于一个电话促销企业来说就是关键任务系统,而文字处理系统就不那么关键了。)用来解决高级需求,例如安全性,可靠性,事物。当一个企业开始采用服务架构作为工具来进行开发和部署应用的时候,基本的Web服务规范,像WSDL,SOAP,以及UDDI就不能满足这些高级需求。正如前面所提到的,这些需求也称作服务品质(QoS,quality of services)。与QoS相关的众多规范已经由一些标准化组织(standards bodies)提出,像W3C(World W

27、ide Web Consortium)和OASIS(the Organization for the Advancement of Structured Information Standards)。下面的部分将会讨论一些QoS服务和相关标准。安全安全Web服务安全规范用来保证消息的安全性。该规范主要包括认证交换, 消息完整性和消息保密。该规范吸引人的地方在于它借助现有的安全标准,例如,SAML(as Security Assertion Markup Language)来实现web服务消息的安全。OASIS正致力于Web服务安全规范的制定。可靠可靠 在典型的SOA 环境中,服务消费者和服务提

28、供者之间会有几种不同的文档在进行交换。具有诸如“仅且仅仅传送一次”( once-and-only-once delivery),“最多传送一次”( at-most-once delivery),“重复消息过滤”(duplicate message elimination),“保证消息传送”(guaranteed message delivery)等特性消息的发送和确认,在关键任务系统(mission-critical systems)中变得十分重要。WS-Reliability 和 WS-ReliableMessaging是两个用来解决此类问题的标准。这些标准现在都由OASIS负责。策略策略服

29、务提供者有时候会要求服务消费者与某种策略通信。比如,服务提供商可能会要求消费者提供Kerberos安全标示,才能取得某项服务。这些要求被定义为策略断言(policy assertions)。一项策略可能会包含多个断言。WS-Policy用来标准化服务消费者和服务提供者之间的策略通信。控制控制当企业着手于服务架构时,服务可以用来整合数据仓库(silos of data),应用程序,以及组件。整合应用意味着例如异步通信,并行处理,数据转换,以及校正等进程请求必须被标准化。在SOA中,进程是使用一组离散的服务创建的。BPEL4WS 或者 WSBPEL(Web Service Business Pro

30、cess Execution Language)是用来控制这些服务的语言。WSBPEL目前也由OASIS负责。管理管理随着企业服务的增长,所使用的服务和业务进程的数量也随之增加,一个用来让系统管理员管理所有运行在多相环境下的服务的管理系统就显得尤为重要。WSDM(Web Services for Distributed Management)规定了任何根据WSDM实现的服务都可以由一个WSDM适应(WSDM-compliant)的管理方案来管理。其它的qos特性,比如合作方之間的溝通和通訊,多個服務之間的事務處理,都在WS-Coordination 和 WS-Transaction 標準中描述

31、, 這些都是OASIS 的工作。企业服务总线,是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。Legacy Business ServicesLegacy Business ServicesLegacy Applications and DataLegacy Applications and DataNewNewBusinessBusinessServicesServicesOn DemandOn DemandPROCESSPROCESSServicesServicesOn DemandOn DemandINFORMATI

32、ONINFORMATIONServicesServicesON DemandON DemandPEOPLEPEOPLEServicesServicesPartner (B2B) Partner (B2B) BusinessBusinessServicesServicesEnterprise Service BusEnterprise Service BusControl ServicesControl ServicesComponent ServicesComponent Services ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之

33、间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。整整合合 ESB 不是万能的,他不是一个应用程序框架,也不是一个企业应用的解决方案.它只是一个基于消息的调用企业服务的通信模块 。你可以把它嵌入到你的应用程序框架 中,例如嵌入到spring容器里面,或者嵌入到工作流系统中。 它的作用是对企业里面的SOA服务的调用提供一个框架和简便的方法。 ESB提供了一种开放的、基于标准的消息机制,通过简单的标准适配器和接口,来完成粗粒度应用(服务)和其他组件之间的互操作,能够满足大型异构企业环境

温馨提示

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

评论

0/150

提交评论