第09讲:webservice介绍_第1页
第09讲:webservice介绍_第2页
第09讲:webservice介绍_第3页
第09讲:webservice介绍_第4页
第09讲:webservice介绍_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

WebService,哈尔滨工业大学计算机学院唐好选Email:tanghx,基本内容,WebService基础WebService的数据格式XML面向服务的架构SOA简单对象访问协议:SOAP服务描述:WSDLUDDI,WebService基础,一种新的网络模型,WebService由URI标识,由XML描述,通过基于Internet的协议实现XML消息的交互能够在一个分布式计算环境中动态地描述、发布、发现和调用,发布、查找和绑定服务:UDDI服务描述:WSDL服务接口:SOAP统一数据格式:XML通信方式:Internet,HTTP,WebService的基础,Client,Webserver,WebService,obj=newWebService();result=obj.Add(20,99);,WebService的数据格式:XML,XML是一种类似于HTML的扩展标记语言XML主要用于描述数据,用来传输和存储数据XML的所有标记不是由XML定义的,而是由用户自定义的,是可自由扩展的XML利用DTD和XMLSchema来描述数据,XML定义,XML和HTML的主要区别,XML和HTML的设计目的不同XML是以描述数据为目的而设计的,主要集中在WhatDatais?HTML是以显示数据为目的而设计的,主要集中在Howdatalooks?XML是对HTML的补充,用于对数据的结构化、存储及数据的传递目的,JoMaryReminderDontforgetmethisweekend!,XML文档的一个简单例子,XML的命名空间namespace,当两个不同的文档使用相同的元素名时,就会发生命名冲突namespace主要用于避免名字冲突,XML的命名空间namespace,默认的命名空间(DefaultNamespaces)元素定义默认命名空间可省去在所有的子元素使用前缀默认命名空间可表示为:,DTD和XSD主要定义文档结构DTD(DocumentTypeDefinition),用于定义文档合法性、文档应该有哪些元素及其属性,还有其他一些约束性规则XSD(XMLSchemaDefinition)是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式。XMLSchema规定XML文档实例的结构和每个元素/属性的数据类型,XML的文档结构,DTD可以定义在XML内,也可以定义在一个单独的文件里内部DTD必须定义在一个DOCTYPE元素里格式为:如果一个DTD定义在一个单独的DTD文件里,则XML文件须引用DTD文件格式为:,DTD,JoMaryReminderDontforgetmethisweekend,InternalDTDexample,XMLschema用于描述XML文档结构定义文档中可显示的元素定义文档中可显示的属性定义子元素及子元素的顺序定义子元素的数量定义属性和元素的数据类型定义元素和属性的默认值XMLSchema是可扩充的,支持数据类型和命名空间XMLSchema文档本身也是xml文档,而不是像DTD一样使用自成一体的语法。XMLSchema文档支持数据类型,支持属性组,并且大大扩充了数据类型,XMLSchema,XMLSchemaexample,面向服务的架构SOA,SOA的实现类图,简单对象访问协议:SOAP,SOAP类似于CORBA中的IIOP和RMI的JRMP,支持基于XML的RPCSOAP是基于XML的简易协议,可使应用程序在HTTP协议之上交换信息,或者说:SOAP是用于访问网络服务的协议SOAP主要用于分布式环境中结构化信息的传递,利用XML技术定义了独立于编程模型的可扩展的消息框架,关于SOAP的理解,传统应用程序大都通过使用RPC在诸如DCOM与CORBA等对象之间进行通信。RPC会产生兼容性及安全问题;防火墙和代理服务器通常会阻止此类流量通过HTTP在应用程序间通信是更好的方法,因为HTTP得到了所有的因特网浏览器及服务器的支持。SOAP就是被创造出来完成这个任务的SOAP提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信,为什么需要SOAP,WebService的框架,一条SOAP消息就是一个普通的XML文档,包含下列元素:必需的Envelope元素,可把此XML文档标识为一条SOAP消息可选的Header元素,包含头部信息必需的Body元素,包含所有的调用和响应信息可选的Fault元素,提供有关在处理此消息所发生错误的信息所有元素均被声明于针对SOAP封装和SOAP编码集及数据类型的默认命名空间中:/2001/12/soap-envelope、/2001/12/soap-encoding必要的语法规则SOAP消息必须用XML来编码SOAP消息必须使用SOAPEnvelope命名空间SOAP消息必须使用SOAPEncoding命名空间SOAP消息不能包含DTD引用SOAP消息不能包含XML处理指令,SOAP消息,SOAP的消息结构,WSDL,一种用于描述WebService的XML语言,主要用于描述WebService的接口信息利用WSDL可描述客户端和服务端交互的具体细节:操作和消息的抽象定义具体的网络协议、地址及消息编码通过WSDL可实现通信的自动化客户端自动读取WSDL,自动调用由WSDL定义的服务,关于WSDL的理解,Type:数据类型定义Message:要传递的数据,是通信消息数据结构的抽象类型化定义。使用Type所定义的类型来定义消息的数据结构Part:消息参数Operation:对服务所支持操作的抽象描述PortType:一个或多个端点支持的操作抽象集Binding:特定端口类型的具体协议和数据格式规范Port/Endpoint:绑定和网络地址的组合Service:相关端点集合,包括其关联接口、操作、消息等,WSDL的元素,要传递的数据类型?,要传递的消息?,支持什么操作?,消息如何传递?,服务的位置?,WSDL的文档结构,WSDL的元素-,cmcc_mas_wbs_sms.xsd文件片段:,WSDL的元素-,WSDL的元素-,WSDL的元素-,WSDL的元素-,WSDL的元素-,WSDL支持4种消息交换方式:单向(One-way):服务端接收消息请求响应(Request-response):服务端接收请求消息,然后发送响应消息要求应答(Solicit-response):服务访问端发送要求消息,然后接收应答消息通知(Notification):服务访问端点发送通知消息,WSDL支持的消息交换方式,WebService调用,Connector-PropertySoapAction=http:/DefaultNamespace/MASRegsiterRequest;Connector-BeginMessage();Serializer.CreateInstance(_uuidof(SoapSerializer30);Serializer-Init(_variant_t(IUnknown*)Connector-InputStream);Serializer-StartEnvelope(,);Serializer-StartBody();Serializer-StartElement(MASRegsiterRequest,http:/DefaultNamespace/,);Serializer-StartElement(RegsiterReq,http:/DefaultNamespace/,);Serializer-StartElement(Version,http:/DefaultNamespace/,);Serializer-WriteString(_bstr_t(m_version);Serializer-EndElement();Serializer-StartElement(MsgType,http:/DefaultNamespace/,);Serializer-WriteString(_bstr_t(msgType);Serializer-EndElement();,Web服务的调用(C+),Serializer-StartElement(SequenceID,http:/DefaultNamespace/,);Serializer-WriteString(_bstr_t(sequenceID);Serializer-EndElement();Serializer-StartElement(TimeStamp,http:/DefaultNamespace/,);Serializer-WriteString(_bstr_t(timeStamp);Serializer-EndElement();Serializer-StartElement(MASID,http:/DefaultNamespace/,);Serializer-WriteString(_bstr_t(m_masID);Serializer-EndElement();Serializer-EndElement();Serializer-EndElement();Serializer-EndBody();Serializer-EndEnvelope();Connector-EndMessage();,Web服务的调用(C+),UDDI介绍,UDDI的定义,是一套基于WEB的、分布式的、为Web服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册以使得别的企业能够发现的访问协议的实现标准UDDI商业注册中心创建的目的是促进企业Web服务的发展以及为企业发现适当的Web服务,WEB服务体系结构组成,服务提供者通过在服务代理者那里注册来配置和发布服务服务请求者通过查找服务代理者那里的被发布服务登记记录来找到服务服务请求者绑定服务提供者并使用可用的服务,发布的服务使用“通用描述、发现和集成(UDDI)API”查找服务使用UDDI和Web服务描述语言的组合(WSDL)绑定服务处理WSDL和简单对象访问协议(SOAP),WEB服务体系结构组成,UDDI的技术发现层,UDDIdatamodel通过XMLScheme描述业务和服务UDDIAPI通过基于SOAP的API查找和发布UDDI数据,DiscoveryUDDI,DescriptionWSDL,MessageXML-RPC,SOAP,XML,TransportHTTP,SMTP,FTP,BEEP,WebService协议栈,UDDI描述四个核心类型信息businessEntity关于实际业务的描述,比如业务名称businessService关于业务服务bindingTemplate关于如何访问服务及服务位置tModel(TechnicalModel)关于服务的技术描述和分类,UDDI的数据模型,UDDIBusinessRegistry,:,:,:,Registry,UDDIClient,UDDIRegistryNode,WrappedbySOAPenvelopeandsentthruHTTP,注册,XMethods,WrappedbyaSOAPenvelope,UDDIAP

温馨提示

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

评论

0/150

提交评论