精华内容
下载资源
问答
  • WebService是什么

    万次阅读 多人点赞 2018-03-26 11:16:44
    WebService是什么鬼?全华班 2018-03-23 14:56:35喜欢就点击上面蓝色字,更多精彩!导读 | 精选一、什么是Web Service1. 什么是Web Service呢?从表面上看,WebService就是一个应用程序,它向外界暴露出一个能够...

    WebService是什么鬼?

    全华班 2018-03-23 14:56:35

    喜欢就点击上面蓝色字,更多精彩!

    导读 | 精选

    WebService是什么鬼?

    一、什么是Web Service

    1. 什么是Web Service呢?从表面上看,WebService就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web调用来实现某个功能的应用程序。从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。

    2.Web Service便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。它可以使用标准的互联网协议,像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上。WebService平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用你喜欢的任何语言,在你喜欢的任何平台上写Web Service。

    3.WebService 为Internet 上的组件服务•通过网络提供,以URL 定位方法调用•以Internet技术为基础•未來的分散式应用程序

    二、Web Service的标准

    1. SOAP(Simple Object Access Protocol)

    2. UDDI(UnviversalDescription ,Discovery,andIntegration) 统一描述发现和集成协议–公开的,或是企业自己的注册与查询

    3. WSDL(Web Service Description Language)–WebService 描述语言

    三、Web Service的标准

    1. XMLWeb Service 通过标准的Web 协议向Web 用户提供有用的功能。多数情况下使用SOAP 协议。

    2. XMLWeb Service 可以非常详细地说明其接口,这使用户能够创建客户端应用程序与它们进行通信。这种说明通常包含在称为Web 服务说明语言(WSDL)文档的XML 文档中。

    3. XMLWeb Service 已经过注册,以便潜在用户能够轻易地找到这些服务,这是通过通用发现、说明和集成(UDDI)来完成的。

    4.XMLWeb Service 体系结构的主要优点之一是:允许在不同平台上、以不同语言编写的各种程序以基于标准的方式相互通信。

    5.我们将XMLWeb Service 定义为:通过SOAP 在Web 上提供的软件服务,使用WSDL 文件进行说明,并通过UDDI 进行注册。

    四、SOAP

    •Soap 是XML Web Service 的通信协议。

    •SOAP 是一种规范,用来定义消息的XML 格式 。包含在一对SOAP 元素中的、结构正确的XML 段就是SOAP 消息。

    •SOAP 规范的其他部分介绍如何将程序数据表示为XML,以及如何使用 SOAP 进行远程过程调用 (RPC)。这些可选的规范部分用于实现 RPC 形式的应用程序,其中客户端将发出一条 SOAP 消息(包含可调用函数,以及要传送到该函数的参数),然后服务器将返回包含函数执行结果的消息。目前,多数 SOAP 实现方案都支持 RPC 应用程序。SOAP 还支持文档形式的应用程序,在这类应用程序中,SOAP 消息只是 XML 文档的一个包装。文档形式的 SOAP 应用程序非常灵活,许多新的 XML Web Service 都利用这一特点来构建使用 RPC 难以实现的服务

    WebService是什么鬼?

    五、SOAP

    •SOAP 规范的最后一个可选部分定义了包含SOAP 消息 的 HTTP 消息的样式。此 HTTP 绑定非常重要,因为几乎所有当前的OS(以及许多以前的 OS)都支持HTTP. HTTP 绑定虽然是可选的,但几乎所有 SOAP 实现方案都支持HTTP 绑定,因为它是SOAP 的唯一标准协议。由于这一原因,人们通常误认为 SOAP 必须使用 HTTP。其实,有些实现方案也支持 MSMQ、MQ 系列、SMTP 或 TCP/IP 传输,但由于 HTTP 非常普遍,几乎所有当前的XML Web Service 都使用它。由于 HTTP 是 Web的核心协议,因此大多数组织的网络基础结构都支持HTTP。

    • 到目前为止,SOAP 最引人注目的特征是它可以在许多不同的软件和硬

    件平台上实现。这意味着SOAP 可用于链接企业内部和外部的不同系统。

    • HTTP 的普及和SOAP 的简单性使您几乎可以从任何环境调用它们,

    因此成为XMLWeb Service 的理想基础。 SOAP 的用户并不直接编写SOAP 消息,而是使用SOAP 工具包来创建和分析SOAP 消息。这些工具包通常将函数调用从某种语言转换为SOAP 消息。

    五、UDDI

    •UDDI 目录条目是介绍所提供的业务和服务的XML 文件。UDDI 目录条目包括三个部分。

    “白页”介绍提供服务的公司:名称、地址、联系方式等等;

    “黄页”包括基于标准分类法的行业类别;

    “绿页”详细介绍了访问服务的接口,以便用户能够编写应用程序以使用 Web 服务。

    服务的定义是通过一个称为类型模型(或 tModel)的 UDDI文档来完成的。多数情况下,tModel包含一个WSDL 文件,用于说明访问 XMLWeb Service 的SOAP 接口,但是tModel非常灵活,可以说明几乎所有类型的服务。

    •UDDI 目录还包含若干种方法,可用于搜索构建您的应用程序所需的服务。例如,您可以搜索特定地理位置的服务提供商或者搜索特定的业务类型。之后,UDDI目录将提供信息、联系方式、链接和技术数据,以便您确定能满足需要的服务。

    •UDDI 允许您查找提供所需的Web 服务的公司。如果您已经知道要与谁进行业务合作,但尚不了解它还能提供哪些服务,这时该如何处理呢?WS-Inspection规范(英文)允许您浏览特定服务器上提供的XML Web Service 的集合,从中查找所需的服务。

    WebService是什么鬼?

    五、wsdl

    •Web Service Description Language (WSDL):用来定义WebService交换的文件格式以及提供服务方式的说明文件

    •WSDL 表示 Web服务说明语言,是一个 XML文档,用于说明一组 SOAP 消息以及如何交换这些消息。WSDL对于 SOAP 的作用就象TLD 对于Tiglib的作用。由于WSDL 是 XML 文档,因此很容易进行阅读和编辑;但大多数情况下,它由软件生成和使用。

    •要查看 WSDL 的值,可以假设您要调用由您的一位业务伙伴提供的SOAP 方法。您可以要求对方提供一些 SOAP消息示例,然后编写您的应用程序以生成并使用与示例类似的消息。WSDL 通过明确的表示法指定请求消息必须包含的内容以及响应消息的样式。

    •WSDL 文件用于说明消息格式的表示法以XML 架构标准为基础,这意味着它与编程语言无关,而且以标准为基础,因此适用于说明可从不同平台、以不同编程语言访问的XML Web Service 接口。除说明消息内容外,WSDL 还定义了服务的位置,以及使用什么通信协议与服务进行通信。WSDL 文件定义了编写使用 XML Web Service 的程序所需的全部内容。

    •当前,许多 SOAP工具包都包括从现有程序接口生成 WSDL 文件的工具,但却几乎没有直接用于编写WSDL 的工具,而且 WSDL的工具支持也很不完整。但不久就会出现编写 WSDL 文件的工具,接着还会有生成代理和存根的工具(与 COMIDL 工具很相似),这些工具将成为多数SOAP 实现方案的一部分。到那时,WSDL将成为创建 XML Web Service 的 SOAP接口的首选方法。 •由W3C制定的标准

    声明:文章属于个人原创,转载请注明文章出处


    文章出处:http://url.cn/5fJ0dYh

    展开全文
  • 什么是REST,符合REST的API叫RESTful 两种SOA接口实现:SOAP(WebService) vs REST
  • WebService什么不如RESTful API流行

    千次阅读 2017-12-26 21:35:06
    WebService是个很重型规范,它应用协议SOAP(简单对象访问协议),它所依赖下层通信方式不单单HTTP,也有SOAP over SMTP, SOAP over TCP,由于HTTP协议群众基础广,开发调试方便,所以,成了WebService中...

    1 WebService有很多协议,为什么HTTP比较流行?

    WebService是个很重型的规范,它的应用协议是SOAP(简单对象访问协议),它所依赖的下层通信方式不单单是HTTP,也有SOAP over SMTP, SOAP over TCP,由于HTTP协议群众基础广,开发调试方便,所以,成了WebService中最为流行的方式。

    甚至很多公司在内网通信,也用HTTP来做,比如,应用调用搜索引擎,Solr就是一个例子。

    但HTTP也是TCP上性能比较差的协议,因为HTTP是基于TCP的,有3次握手,再加上HTTP是个文本传输协议(虽然也可以传二进制的附件,但业务逻辑还是文本用的多),又有很多复杂的HEADER。所以人们发明了一些更高效的通信协议来做远程调用,比如ACE、ICE、Corba、淘宝的HSF,但这是后话了,不展开细说。你只要知道,HTTP之所以流行,乃是简单易用群众基础广的结果。

    2 WebService为什么不如RESTful API流行

    WebService诞生十几年了,最初是IBM、微软比较热心在推,一直也不温不火。倒是XML-RPC, RESTful以及比RESTful还要简陋的远程调用方式后来居上。感觉是不是有点像民间的Spring干掉官方的EJB?

    究其原因,还是WebService实在太笨重了,SOAP信封犹如婆娘的裹脚布,又臭又长,广大开发人员是叔可忍嫂不能忍,于是就有了简化版的,叫XML-RPC,后来伴随着Web2.0流行,RESTful独领风骚。我在10年前做过一个产品,纯PHP+JS,标准的WebService,连WSDL我都要专门写个PHP程序来生成,还好只是我一个人开发,要是团队协作,我早就被骂得不成人形了。

    再后来,连RESTful都被嫌弃了,大伙儿干脆连PUT、DELETE都懒得用,直接用GET和POST。

    同时,我得说,这只是在互联网领域,大部分企业的业务逻辑相对简单,同时工期又变态的短(就像大部分互联网创业公司用糙快猛的PHP,而不用相对严谨的Java一样)。在某些业务复杂,稳定性和正确性要求高的领域(如ERP、电商、支付),WebService还有是用武之地的。

    3 为什么JSON比XML流行

    还是易用性,JSON的可读性比XML强几条长安街,解析规则也简单许多。XML解析的时候规则太多了,动不动就非法字符,动不动就抛异常。这对追求高开发速度和低开发门槛的企业来说,是个致命伤。

    JSON的缺点是数据类型支持较少,且不精确。比方说:

    price:12580
    

    在json里,你无法知道这个价格是int, float还是double。

    所以,如上面第二条所述,在一些业务要求较高的领域,还是XML更合适。

    最后说一下性能,JSON的性能高于XML,除此之外,基于XML和HTTP的WebService, 基于JSON的RESTful API,并没有性能差异。

    XML性能糟糕到什么地步呢,有一种专门的CPU叫做XML Accelerator,专门为XML解析提供硬件加速。

    展开全文
  • 首先,我们为什么要学习webservice这个技术,现阶段我的需求我需要运行在不同机器上的两个项目进行通信。 从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你...

    首先,我们为什么要学习webservice这个技术,现阶段我的需求是我需要运行在不同机器上的两个项目进行通信。

    1. 从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web service 的应用程序叫做客户。例如,你想创建一个Web service ,它的作用是返回当前的天气情况。那么你可以建立一个ASP或者PHP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。

      OK,说白了,webservice就是大量的接口,等着你去调用啦!

    但是问题来了:

    你会怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Web service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如Visual Studio或者Myeclipse)无法给他们提供任何帮助,因为这些工具根本就不了解你的Web service。

    这个时候wsdl就出来了

    Web service描述语言(WSDL)就是这样一个基于XML(标准通用标记语言下的一个子集)的语言,用于描述Web service及其函数、参数和返回值。WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。

    所以wsdl是可以自动生成的!
    关于更多内容请看下一节

    展开全文
  • <p>What is a good and easy <code>PHP</code> framework to create a <code>RESTFUL API</code> WebService? What I want to do, is to create API the performs CRUD operations on the table and aims to make a ...
  • wcf,webservice采用的是rpc协议,这个协议很复杂,所以每次要传递、要校验内容也很复杂,别看我们用很简单,但实际frame帮我们做掉了rpc生成、解析事情webapi遵循rest规范,它只是一种约束,并没有实际...

    wcf,webservice采用的是rpc协议,这个协议很复杂,所以每次要传递、要校验的内容也很复杂,别看我们用的很简单,但实际是frame帮我们做掉了rpc生成、解析的事情
    webapi遵循是rest规范,它只是一种约束,并没有实际的条条框框进行限制,它只是在使用http协议的基础上,简单的遵循了规范而已,而且请求、返回的也是很简单的数据格式

    做服务时,你说的都可以作为服务实现技术,但因为wcf、webservice套路太深,传递的数据量太大,所以在移动当道的现在,出于流量考虑,很少被用来作为移动端的服务提供者
    一般就个人而言,wcf、webservice可以用作局域网通信、并且不跨语言调用使用,否则的话,还是用webapi作为服务端技术更物美价廉,但实际中,就算局域网,大多数人也开是采用webapi作为通讯手段

     

     

     

    Web Service

    1、它是基于SOAP协议的,数据格式是XML

    2、只支持HTTP协议

    3、它不是开源的,但可以被任意一个了解XML的人使用

    4、它只能部署在IIS上 

    WCF

    1、这个也是基于SOAP的,数据格式是XML

    2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.

    3、WCF的主要问题是,它配置起来特别的繁琐

    4、它不是开源的,但可以被任意一个了解XML的人使用

    5、它可以部署应用程序中或者IIS上或者Windows服务中

    Web API

    1、这是一个简单的构建HTTP服务的新框架

    2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术

    3、不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)

    4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮

    5、它可以部署在应用程序和IIS上

    6、这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好

    7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。

     

    技术这么多,我该选谁?

    1、当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF

    2、当你想创建一个服务,可以用更快速的传输通道时,像TCP、NamedPipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。

    3、当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择WebAPI

    4、当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

     

     

     

     

     

     

    【转载】HTTP和SOAP完全就是两个不同的协议

     

    http:是一个客户端和服务器端请求和应答的标准(TCP)。

    http协议其目的是为了提供一种发布和接收htttp页面的方法

    http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。

    soap 协议:它描述了一种在分散或分布式的环境中如何交换信息的轻量级协议。soap在http协议的基础上,一个基于XML的协议。

    不同:都是底层的通信协议,请求包的格式不同而已,soap包是XML格式,http纯文本格式。

    关系:SOAP是个通信协议, SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数, 放在HTTP BODY上提交个WEB SERVICE服务器(SERVLET,ASP什么的) 处理完成后,结果也写成XML作为RESPONSE送回用户端, 为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。

     

    【转自】http://www.cnblogs.com/Ilin631/archive/2011/05/25/2056820.html

     

    下面这个解释的很透彻

    HTTP只负责把数据传送过去,不会管这个数据是XML、HTML、图片、文本文件或者别的什么。而SOAP协议则定义了怎么把一个对象变成XML文本,在远程如何调用等,怎么能够混为一谈。 


    这样说两种协议:  
    HTTP就是邮局的协议,他们规定了你的信封要怎么写,要贴多少邮票等。。。。  
    SOAP就是你们之间交流的协议,负责把你所需要表达的意思写在信纸上,同时也负责让对方能够看得懂你的信。

    Web service一般就是用SOAP协议通过HTTP来调用它,其实他就是一个WSDL文档,客户都可以阅读WSDL文档来用这个Web service。客户根据WSDL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器 (如IIS) 后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。请求处理器的作用在于,解析收到的SOAP请求,调用Web service,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。

    webService协议主要包括两个方面:传输协议和数据表示,关于传输协议可以是http或其他,数据表示也可以是键值对、xml或其他,只不过现在通用的是http+soap,当然其他的也可以,不知道这样理解对不对?

    SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。

     

    【转自】http://blog.csdn.net/21aspnet/article/details/1536824

     

     

     

     

    WebService学习总结(一)——WebService的相关概念

    一、序言

      大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分。但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用?

      当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(RIA),当然后一种技术相对来说更加的时髦一些(如现在很流行的Html5技术),这里主要讲前者。

      基于浏览器的瘦客户端应用程序并不是 因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问 题,另一半是因为客户和服务器之间通信的问题。传统的Windows富客户应用程序使用DCOM来与服务器进行通信和调用远程对象。配置好DCOM使其在 一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多IT工程师的噩梦。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不愿在局 域网上去运行一个DCOM。关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都在使用 HTTP协议。同时,当前许多防火墙也配置为只允许HTTP连接。许多商用程序还面临另一个问题,那就是与其他程序的互操作性。如果所有的应用程序都是使 用COM或.NET语言写的,并且都运行在Windows平台上,那就天下太平了。然而,事实上大多数商业数据仍然在大型主机上以非关系文件(VSAM) 的形式存放,并由COBOL语言编写的大型机程序访问。而且,目前还有很多商用程序继续在使用C++、Java、Visual Basic和其他各种各样 的语言编写。现在,除了最简单的程序之外,所有的应用程序都需要与运行在其他异构平台上的应用程序集成并进行数据交换。这样的任务通常都是由特殊的方法, 如文件传输和分析,消息队列,还有仅适用于某些情况的的API,如IBM的高级程序到程序交流(APPC)等来完成的。在以前,没有一个应用程序通信标 准,是独立于平台、组建模型和编程语言的。只有通过Web Service,客户端和服务器才能够自由的用HTTP进行通信,不论两个程序的平台和编程语言是什么。

    二、WebService到底是什么

       一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

       所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。

        所谓远程调用,就是一台计算机a上 的一个程序可以调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银 行服务器上。再比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以webservice服务的形式暴露出来,让第三方网站和程 序可以调用这些服务功能,这样扩展了自己系统的市场占有率,往大的概念上吹,就是所谓的SOA应用。

       其实可以从多个角度来理解 WebService,从表面上看,WebService就是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过 Web来调用这个应用程序。我们把调用这个WebService的应用程序叫做客户端,而把提供这个WebService的应用程序叫做服务端。从深层次 看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操作性,你可以用任何 你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。 

       WebService平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,WebService平台 必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。Web service平台必须提供一种标准来描述 Web service,让客户可以得到足够的信息来调用这个Web service。最后,我们还必须有一种方法来对这个Web service进行远 程调用,这种方法实际是一种远程过程调用协议(RPC)。为了达到互操作性,这种RPC协议还必须与平台和编程语言无关。

    三、WebService平台技术

      XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。

    3.1、XML+XSD

      WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的 返回结果是什么)。XML是WebService平台中表示数据的格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关 的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。 

      XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,64位?这 些细节对实现互操作性很重要。XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。WebService平台就 是用XSD来作为其数据类型系统的。当你用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合WebService标准,所 有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。

    3.2、SOAP

       WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明 HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用Web Service。

      SOAP协议 = HTTP协议 + XML数据格式

      SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。打个比 喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。

    3.3、WSDL

      好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方 法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受 的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。

      WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都 能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的 Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。

      WSDL 文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。 WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。

    四、WebService开发

      WebService开发可以分为服务器端开发和客户端开发两个方面

    4.1、服务端开发

      把公司内部系统的业务方法发布成WebService服务,供远程合作单位和个人调用。(借助一些WebService框架可以很轻松地把自己的业务对象发布成WebService服务,Java方面的典型WebService框架包括:axis,xfire,cxf 等,java ee服务器通常也支持发布WebService服务,例如JBoss。)

    4.2、客户端开发 

      调用别人发布的WebService服务,大多数人从事的开发都属于这个方面,例如,调用天气预报WebService服务。(使用厂 商的WSDL2Java之类的工具生成静态调用的代理类代码;使用厂商提供的客户端编程API类;使用SUN公司早期标准的jax-rpc开发包;使用 SUN公司最新标准的jax-ws开发包。当然SUN已被ORACLE收购)

    4.3、WebService 的工作调用原理

       对客户端而言,我们给这各类WebService客户端API传递wsdl文件的url地址,这些API就会创建出底层的代理类,我调用 这些代理,就可以访问到webservice服务。代理类把客户端的方法调用变成soap格式的请求数据再通过HTTP协议发出去,并把接收到的soap 数据变成返回值返回。对服务端而言,各类WebService框架的本质就是一个大大的Servlet,当远程调用客户端给它通过http协议发送过来 soap格式的请求数据时,它分析这个数据,就知道要调用哪个java类的哪个方法,于是去查找或创建这个对象,并调用其方法,再把方法返回的结果包装成 soap格式的数据,通过http响应消息回给客户端。

    五、适用场合

    1、跨防火墙通信

      如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服 务器。在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户 端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。如果中间层组件换成WebService的话, 就可以从用户界面直接调用中间层组件。从大多数人的经验来看,在一个用户界面和中间层有较多交互的应用程序中,使用WebService这种结构,可以节 省花在用户界面编程上20%的开发时间。

    2、应用程序集成

      企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常 需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集 成起来。通过WebService,可以很容易的集成不同结构的应用程序。

    3、B2B集成

      用WebService集成应用程序,可以使公司内部的商务处理更加自动化。但当交易跨越供应商和客户、突破公司的界限时会怎么样呢?跨公司的商务交易集成通常叫做B2B集成。WebService是B2B集成成功的关键。通过WebService,公司可以把关键的商务应用“暴露”给指定的供应商和客户。例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。当然,这并不是一个 新的概念,EDI(电子文档交换)早就是这样了。但是,WebService的实现要比EDI简单得多,而且WebService运行在Internet 上,在世界任何地方都可轻易实现,其运行成本就相对较低。不过,WebService并不像EDI那样,是文档交换或B2B集成的完整解决方案。 WebService只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。

      用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性。只要把商务逻辑“暴露”出来,成为WebService,就可以让任何指定 的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么开发语言。这样就大大减少了花在B2B集成上的时间和成本,让许多原本无法承受 EDI的中小企业也能实现B2B集成。

    4、软件和数据重用

          软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。最基本的形式是源代码模块或者类一级的重用,一种形式是二进制形式的组件重用。采用 WebService应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用,达到业务级重用。

    六、不适用场合

    1、单机应用程序

          目前,企业和个人还使用着很多桌面应用程序。其中一些只需要与本机上的其它程序通信。在这种情况下,最好就不要用WebService,只要用本地的 API就可以了。COM非常适合于在这种情况下工作,因为它既小又快。运行在同一台服务器上的服务器软件也是这样。最好直接用COM或其它本地的API来 进行应用程序间的调用。当然WebService也能用在这些场合,但那样不仅消耗太大,而且不会带来任何好处。

    2、局域网的同构应用程序

          在许多应用中,所有的程序都是用VB或VC开发的,都在Windows平台下使用COM,都运行在同一个局域网上。例如,有两个服务器应用程序需要相互通 信,或者有一个Win32或WinForm的客户程序要连接局域网上另一个服务器的程序。在这些程序里,使用DCOM会比SOAP/HTTP有效得多。与 此相类似,如果一个.NET程序要连接到局域网上的另一个.NET程序,应该使用.NETremoting。有趣的是,在.NETremoting 中,也可以指定使用SOAP/HTTP来进行WebService调用。不过最好还是直接通过TCP进行RPC调用,那样会有效得多。

      转载网上的一篇讲得比较好的文章,具体链接地址忘记了,原作者要是要是看到还望提醒一声,我好加上去。

    转载于:https://www.cnblogs.com/cjm123/p/9812410.html

    展开全文
  • WebService的工作调用原理:对客户端而言,我们给这各类WebService客户端API传递wsdl文件的url地址,这些API就会创建出底层的代理类,我调用这些代理,就可以访问到webservice服务。代理类把客户端的方法调用变成...
  • webservice是一个平台独立、低耦合、自包含、基于可编程Web应用程序,可使用开放XML(标准通用标记语言下一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式互操作应用程序。...
  • 一、WebService的概念: ... WebService的特点: 1、基于SOAP协议的、数据格式是xml ...这是一个简单的构建HTTP服务的新框架、在.net平台上WebApi是一个开源的,理想的,构建REST-ful服务的技术 Web...
  • WebService 是什么

    2009-06-10 12:22:00
    WebService 建立在可互操作分布式应用程序新平台,它一个应用程序或者一个组件,对外暴露一个可通过 Web 进行调用 API ,以供网络上其他应用程序调用,并向调用方返回数据,WebService 平台一套标准,它...
  • 关于各大平台API什么不使用RESTful风格来进行开发呢,比如:URL命名格式,只有post get 并没有put delete ,更加没有用到HttpStatusCode ,他们出于什么目的没有遵循这样面向资源开发和设计模型?...
  • 2018 .NET开发者调查报告: .NET Core 怎么样状态,这里我们看到了还有非常多.net开发人员还在观望,本文给大家一个建议。这仅代表我个人意见, 我有充分理由推荐.net 程序员使用. net core而不是. ...
  • WCF、WebAPI、WCFREST、WebService之间区别: https://www.cnblogs.com/markli/p/4460564.html mvc接口、webapiwebservice 对比 https://www.cnblogs.com/highest/p/8269183.html .net中做ajax使用webservice...
  • MVC,WebAPi,WebService区别

    2020-07-30 14:45:13
    先简单的说下:昨天一位朋友和我唠嗑突然问我一个问题:mvc和webapi的区别是什么。当时我以为问的是webapiwebservice的区别。mvc和webapi的区别,当时大闹一片空白一脸懵逼。所以我把这个好好整理出来希望可以...
  • 就是一个应用程序,向外界暴露出公开的API使别人其能在WEB对其进行远程调用,具有跨平台和跨语言的等特点,采用Internet的Http协议进行客户端与服务器之间的交互 由XML+SOAP(简单对象访问协议)+WSDL(webService 描述...
  • WS 有WS客户端调用REST 就是...有好多人问我们在设计底层服务时候到底应该选择目前最流行RestFul架构还是选择老牌的webService呢?今天我就将这两个概念做一下阐述,到底什么情况下选择什么比较合理。 ...
  • 下面使用spring MVC+jpa实现一个RESTful webservice服务器,然后用python调用API实现资源转移,数据库使用mysql,本文仅仅为了起到一个演示作用,所以无论源代码还是配置文件,都只写了有关怎样配置restful...
  • API接口与webservice接口区别

    万次阅读 2012-03-13 16:40:44
    1、Remoting可以灵活定义其所基于协议,如果定义为HTTP,则与Web Service就没有什么区别了,一般都喜欢定义为TCP,这样比Web Service稍为高效一些 2、Remoting不是标准,而Web Service标准; 3、Remoting...
  • 什么是web service? 答:soap请求HTTP POST一个专用版本,遵循一种特殊xml消息格式Content-type设置为: text/xml任何数据都可以xml化。为什么要学习web service? 答:大多数对外接口会实现web service方法...
  • 什么是WebService?

    2010-10-09 12:27:00
    就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个 Web service 的应用程序叫做客户。例如,你想创建一个Web service ,...
  • webservice

    2019-10-25 14:27:17
    1.webservice是什么?应用场景 从表面上看,WebService就是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。 我们把调用这个WebService的应用程序叫做...
  • WebService

    2017-05-07 10:51:00
    一、WebService到底是什么? 一言以蔽之:WebService是一种跨编程语言和跨操作系统平台远程调用技术。 可以从多个角度来理解WebService,从表面上看,WebService就是一个应用程序向外界暴露出一个能通过Web...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 436
精华内容 174
关键字:

webservice的api是什么