l Web Service 的基本概念
l Web service 是分布式的服务组件。Web Service 本质上就是要以标准化的形式实现企业内外各个不同服务系统之间的互调或集成。其由两部分组成 :SOAP--Web Service之间的基本通信协议;WSDL--Web Service描述语言,它定义了Web Service做什么,怎么做和查询的信息 <o:p></o:p>
l Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用 <o:p></o:p>
<o:p> </o:p>
l Web service目的和优劣势<o:p></o:p>
l 目的:<o:p></o:p>
l 将逻辑服务接口调用层和逻辑服务实现层完全分离开来<o:p></o:p>
l 实现服务接口传输和调用的标准化,soap消息传输协议已经成为消息传输协议的事情标准。其独立于数据库,操作系统,以及传输协议。<o:p></o:p>
l 优势:
<st1:place w:st="on">I.</st1:place> 它的跨平台;
II. 并且SOAP协议是基于XML和HTTP这些业界的标准的,得到了所有的重要公司的支持。
III. 由于使用了SOAP,数据是以ASCII文本的方式而非二进制传输,调试很方便;并且由于这样,它的数据容易通过防火墙,不需要防火墙为了程序而单独开一个“漏洞”。
IV. 此外,WebService实现的技术难度要比CORBA和DCOM小得多。
V. 要实现B2B集成,EDI比较完善与比较复杂;而用WebService则可以低成本的实现,小公司也可以用上。
VI. 在C/S的程序中,WebService可以实现网页无整体刷新的与服务器打交道并取数。
缺点:
I. WebService使用了XML对数据封装,会造成大量的数据要在网络中传输,性能方面与非webService方法比如EJB的RMI方法要消耗约15%左右的效率。
II. WebService规范没有规定任何与实现相关的细节,包括对象模型、编程语言,这一点,它不如CORBA。<o:p></o:p>
l <o:p> </o:p>
l Webservice实现过程<o:p></o:p>
l 假如服务A 要调用服务B上的服务,要实现这个目的需要下面3个元素。<o:p></o:p>
l 服务B要以一种标准化的语言告诉服务A它能提供什么样的服务,比如调用它的服务,它的服务在那里等,这就是WEB SERVICE 的服务描述,是WHAT ,HOW,WHERE部分。<o:p></o:p>
l 服务A要以标准化的通信消息格式告诉服务B ,它想调用什么服务,并加入相应的输入参数,当服务B完成服务后,会同样以标准化的通信方式告诉B相应的服务结果,是WEB SERVICE的服务消息的request和response部分。<o:p></o:p>
l 服务B要注册到相应的公共网址,以便外部能找到,是URL部分<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
Wsdl 概念<o:p></o:p>
n WSDL的全称是Web Service Description Language ,是一种基于XML格式的关于WEB 服务的描述语言,其主要目的是在于WEB SERVICE的提供着将自己的WEB服务的所有有关内容,如所提供的服务传输方式,服务方法接口,接口参数,服务路径,生成相应的完全文档,发布给使用者,使用者通过这个WSDL文档,创建相应的SAOP请求消息,通过HTTP传递给WEB SERVICE 提供者,WEB服务在完成服务请求后,将SOAP返回消息传回请求者,服务请求者再根据WSDL文档将SOAP返回消息传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。当前wsdl版本有wsdl1.1和wsdl1.2(即wsdl2.0版本)。<o:p></o:p>
<o:p> </o:p>
l WSDL1.1文档结构
<o:p> </o:p>
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 414.75pt; HEIGHT: 233.25pt" o:ole="" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:\DOCUME~1\WANGDE~1\LOCALS~1\Temp\msohtml1\01\clip_image001.emz"></v:imagedata></v:shape>
<o:p> </o:p>
l What 部分
l Types - 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。 <o:p></o:p>
l Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。 <o:p></o:p>
l Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。 <o:p></o:p>
l PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。 <o:p></o:p>
l Binding - 特定端口类型的具体协议和数据格式规范的绑定。 <o:p></o:p>
n Port - 定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。 <o:p></o:p>
l Service- 相关服务访问点的集合
l Namespace<o:p></o:p>
<o:p> </o:p>
n <definitions>和子节点<schema>都是namespace属性<o:p></o:p>
n <wsdl:definitions targetNamespace="http://localhost:7001/webModule/services/checkUserLoginService" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:7001/webModule/services/checkUserLoginService" xmlns:intf="http://localhost:7001/webModule/services/checkUserLoginService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="urn:wsClient" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <o:p></o:p>
每个namespace属性都声明了一个缩略语,用在文档中。例如"xmlns:xsd"就为 http://www.w3.org/2001/XMLSchema定义了一个缩略语(xsd)。这就允许对该namespace的引用只需简单的在名字前加上前缀就可以了,如:"xsd:int"中的"xsd"就是合法的类型名。普通范围规则可运用于缩略前缀。也就是说,前缀所定义的元素只在元素中有效。targetNamespace表示在这个元素下的所有元素都属于这个目标名称空间,xmlns表示缺省的名称空间,xmlns:impl表示实现的命名空间, xmlns:intf表示接口的命名空间(注:本示例中接口和命名空间一致,若不一致,则通过ant 工具生成两个wsdl文件,一个是接口,一个是实现,实现中引用接口命名空间),名称空间xmlns:tns, tns是This NameSpace的缩写,用来对当前WSDL进行引用,其与<wsdl:types> 的targetNamespace匹配。<o:p></o:p>
<o:p> </o:p>
l Type
n Types是一个数据类型定义的容器,包含了所有在消息定义中需要的XML元素的类型定义。使用XML Schema具体说明服务接口方法,包括方法名,输入参数以及类型和返回结果类型 ,为了获得最大程度的互操作性和平台中立性,WSDL 选用 XSD 作为标准类型系统,并将其当作固有类型系统。 <o:p></o:p>
示例:<o:p></o:p>
n <wsdl: types><o:p></o:p>
n <!—服务接口方法 –><o:p></o:p>
n <element name=”checkUserLogin”><o:p></o:p>
n <complexType><o:p></o:p>
n <sequence><o:p></o:p>
n <element name=”loginName” nillable=”true” type=”xsd:string”/><o:p></o:p>
n <element name =”password ” nillable=”true” type=”xsd : string”/><o:p></o:p>
n </sequence><o:p></o:p>
n </complexType><o:p></o:p>
n </element><o:p></o:p>
n <!—返回结果的类型à<o:p></o:p>
n <element name=”checkUserLoginResponse”><o:p></o:p>
n <complexType><o:p></o:p>
n <sequence><o:p></o:p>
n <element name=”checkUserLoginReturn” type=”xsd: boolean”/><o:p></o:p>
n </sequence><o:p></o:p>
n </complexType><o:p></o:p>
n </element><o:p></o:p>
n </wsdl:types><o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
Messages<o:p></o:p>
n 定义Web Service 所有的请求消息,响应消息和异常消息,包括一个或多个 片断(part)参数。<o:p></o:p>
n <!—请求消息à<o:p></o:p>
n <wsdl: message name=”checkUserLoginRequest”><o:p></o:p>
n <wsdl: part eleme=”impl:checkUserLogin” name=”parameters”/><o:p></o:p>
n </wsdl: message><o:p></o:p>
n <!—返回消息—〉<o:p></o:p>
n <wsdl:message name=”checkUserLoginResponse”><o:p></o:p>
相关推荐
【Android开发之WebService介绍】 在Android开发中,与远程服务器进行数据交互是常见的需求,而WebService就是实现这种交互的一种方式。WebService是一种基于网络的、分布式的模块化组件,旨在促进不同系统之间的互...
### WebService介绍 #### 一、WebService概述 WebService是一种用于不同软件系统之间进行通信的技术,它允许应用程序在不同的操作系统和编程语言环境下交换数据。WebService基于开放标准和协议,如XML、SOAP、WSDL...
WebService是互联网上应用程序之间进行通信的一种技术,它允许不同系统之间的数据交换,打破了平台和语言的障碍。在本篇中,我们将重点讨论如何使用WebService的代理类来调用和实现跨平台的数据交互。 首先,理解...
本篇文章将详细介绍如何创建一个基础的WebService,以“BankService”为例,帮助你理解这一核心技术。 首先,理解WebService的核心概念至关重要。WebService是一种基于XML(Extensible Markup Language)标准的服务...
Web服务(WebService)是一种基于互联网的、平台独立的软件接口,它允许不同系统之间的应用程序进行交互,实现数据共享和业务协同。WebService的核心技术是XML(eXtensible Markup Language),它用于定义数据结构,...
2. **WebService介绍**: WebService是一种基于开放标准(如WSDL、SOAP和UDDI)的平台无关的服务提供方式。它允许不同系统之间的应用程序通过网络进行通信。在本场景中,我们将使用SOAP(Simple Object Access ...
**2.1 WebService介绍** WebService是一种基于标准的、平台无关的通信方式,通过SOAP消息在HTTP上进行数据交换,实现了不同系统间的互操作。 **2.2 AXIS介绍** AXIS是Apache基金会的一个项目,它提供了Java开发者...
**WebService介绍** WebService是一种基于开放标准(如SOAP、WSDL和UDDI)的Web应用程序,它可以被任何支持这些标准的平台或语言调用。WebService的主要目的是促进不同系统间的互操作性,通过HTTP协议传递XML格式的...
1. WebService介绍: WebService是一种基于HTTP协议的跨平台、跨语言的服务,它使用XML(Extensible Markup Language)作为数据交换格式,使得不同系统间的交互变得简单。在C#中,可以使用.NET Framework提供的ASMX...
WebService介绍 #### 2.1 名词解释 - **XML(eXtensible Markup Language)**:XML是一种标记语言,常用于数据交换,它允许开发者自定义标签来描述数据结构,是WebService通信的基础。 - **SOAP(Simple Object ...
##### 1.1 Webservice介绍 Webservice本质上是一种遵循特定标准(如SOAP、XML、WSDL和UDDI等)的应用程序接口(API)或组件,它们能够通过网络提供功能和服务。Webservice通常使用HTTP协议来实现不同平台间的通信,...
在Android应用开发中,...此外,因卓工作室提供的资料如"第五讲:WebService介绍.pptx"和"ListViewS01.rar"可以进一步帮助学习者深入理解Android与Web Service的结合,以及在Android中使用ListView展示数据的相关技巧。
本篇将详细介绍Web服务的基本概念、工作原理,以及提供一个实现样例,帮助理解Web服务的实践应用。 一、Web服务基本概念 1. **SOAP(Simple Object Access Protocol)**:Web服务主要使用的通信协议,它基于XML,...
**二、WebService介绍** WebService是一种基于开放标准的、平台无关的接口,允许不同系统之间进行数据交换。它通常使用SOAP(Simple Object Access Protocol)协议,通过HTTP传输XML格式的数据。开发一个WebService...
1. **Webservice介绍** Webservice是一种基于XML的网络应用接口,它使用SOAP(简单对象访问协议)进行数据传输,并通过WSDL(Web服务描述语言)定义服务接口,使用UDDI(统一描述、发现和集成)来查找和注册服务。 ...
**WebService入门介绍及实例** WebService是一种基于Web的、开放式的标准接口,它允许不同的应用程序之间进行交互和数据交换,跨越了操作系统、编程语言的界限。WebService的核心技术包括XML(可扩展标记语言)、...
**1.1 Spring WebService 介绍** Spring WebService 是 Spring 框架的一个子项目,专注于提供一个强大的 Java Web Service 开发框架。与传统的 Java Web Service 实现相比,Spring WebService 具有更高的灵活性、可...