
让我们首先得出结论,WebService是RPC的一种. RPC被广泛使用. 目前,基本上每个领域都有自己的RPC,并且有许多开源的成熟RPC.
根据通信协议webservice是什么,RPC可以分为基于HTTP的,基于TCP的等. 根据消息协议,它可以分为基于XML,基于JSON和二进制. 根据跨平台语言,它可以分为平台特定的和平台中立的.
WebService通常基于HTTP,XML文本,跨平台(平台无关),功能完善,系统成熟,支持交易,支持安全机制,广泛用于金融电信,传统企业业务系统,ESB / SOA系统,缺点: 过于复杂,性能不是最佳的,并且Internet使用较少.
1. 什么是WebService
WebService(w3.org/2002/ws/Activity)是一组RPC规范,应该是最详细和完整的服务协议. 每个WebService使用SOAP(w3.org/TR/soap/)作为RPC消息,使用WSDL(w3.org/TR/wsdl20/)描述语言作为服务本身的描述,并使用UDDI()作为服务目录发现机制,WS-Transaction保证可以使用事务,并且某些WS- *协议保证Web Service特定的强大和标准化功能系统,与其他各种技术的互操作性,等等. RPC的两个要点是消息协议和通信协议.

消息协议: 同时,由于WebService基于XML文本,因此它是可读的且跨平台的. 这为异构系统之间的交互提供了一种方便的集成方法,该方法广泛用于EIP框架,ESB,SOA体系结构中. 在SOAP / WSDL中,通过XSD定义了丰富的数据类型架构,因此无论是在Java,C ++,C#还是PHP,Python中,WebService都允许每个人使用相同的“标准语言”对话.
通信协议: 尽管对WebService和SOAP并没有强制要求,但我们通常使用HTTP作为通信协议,它既方便又易于使用,并且可以使用HTTP标头传递一些信息,例如传递的SoapAction信息. 在SOAP1.1中.
缺点是: XML描述更加冗余,解析消耗更多资源,HTTP本身也教TCP和其他效率低下的问题,因此尽管它非常成熟和完善,但是WebService是常见的RPC,性能更加通用,重量级RPC,通常用于各种金融系统,传统行业的业务系统等中,但在Internet上使用率不高(REST \ JSON更为主流).
2. Java / C#如何调用WebService
在Apache中有两个用于处理Web服务的库Axis2和CXF.

Axis2
Axis2是一个老式的WS实现库,具有完整的功能和更多的WS- *支持.
作为Web服务服务提供者,您可以使用非常简单的方法用jws生成ws,也可以使用aar部署,也可以直接使用Servlet处理.
Axis2的缺点是它仅在内部封装了SAAJ和AXIOM(AXIs对象模型),因此尽管用户可以理解WS的某些细节,但是却增加了学习曲线的难度,很多时候它们实际上是在使用裸XML. / OM对象,这使我们无法将XML处理与业务代码完全隔离. 模拟编程语言,如果直接拼接WebService的XML是机器语言,那么使用Axis2会有使用汇编语言的感觉.
如果在Java中使用Axis2,通常我们可以使用IDE(例如IDEA或Eclipse自己的工具),直接导入WSDL文件,然后生成调用代码,我们可以直接使用它. 您还可以使用Axis2附带的命令行工具wsdl2java生成这些代理程序包的代码,然后将其添加到项目中.

Axis2体系结构axis.apache.org

CXF
CXF的前身是XFire,它是一个与当前RPC技术相对接近的框架,几乎是WS- *的全功能,并通过Jax-RS支持REST协议,可以轻松使用和集成它. 与其他软件. 例如,直接将现有的Java代码公开为WebService服务. 它是当前最常用的WebService库. 与汇编语言Axis2相比,可以说CXF更像是一种对象语言.
Apache CXF索引cxf.apache.org

Spring-WS
Spring Web Services(Spring-WS)是Spring社区的产品,致力于创建文档驱动的Web服务. Spring Web Services旨在促进合同优先SOAP服务的开发,允许人们使用以下几种方法之一来操纵XML有效负载以创建灵活的Web服务. 该产品基于Spring本身,这意味着您可以将Spring概念(例如依赖项注入)用作Web服务的组成部分. 人们使用Spring-WS的原因很多webservice是什么,但是大多数人在找到替代SOAP堆栈时都被它吸引,而这种替代SOAP堆栈缺乏替代Web服务的最佳实践. Spring-WS使最佳实践变得简单. 其中包括诸如WS-I的基本概述,优先合同开发以及合同与实施之间的松散耦合之类的实践.
用简单的术语来说,Spring-WS打包(如Spring-jms,spring-data和其他打包)使我们可以更简单,更方便地使用WebService,几乎零成本门槛,并且可以方便地与其他服务无缝集成Spring框架,例如Spring Boot. 强烈建议直接将Spring-WS用于业务开发. 几行代码可以完成许多以前的代码.
Spring项目spring.io

SoapUI
SoapUI是一个非常好的基于Java的WebService开发和测试,压力测试工具. 它可以自动生成调用代码和模拟服务,建立用于压力测试的压力测试方案,还可以方便地查看请求和响应SOAP消息.
C#
对于C#,VS Studio很好地支持WebService. 如果要生成服务,则可以在直接创建项目时选择WebService ASMX项目. 如果要调用客户端,则可以直接添加Web引用,然后添加WSDL文件. 这将像其他库一样提供参考. 这是IDE生成的代理程序包代码. 您甚至可以对其进行修改. 这段代码.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-164291-1.html
速度高
美必不敢应战
打到康师傅金龙鱼