一、课程介绍

一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上。所以在本次分享课开课之前,我们要“约法三章”不谈论以下几个比较“严肃”和“敏感”的话题:WebService已经过时了啦,学习它干什么用啊!为什么要用WebService,而不用基于当前流行的RestFul ASP.NET WebAPI ?  对于上面的问题阿笨的回答很简单:因为它就是它,不一样烟火的WebService!

本次分享课您将学习到以下干货知识点:

1)、WebService技术调用原理图。

2)、C# WebService常用的几种调用方式。

3)、C# WebService调试小技巧和开发必备工具分享。

4)、实战演练之如何通过优雅的方式进行WebService调用。  优不优雅,你看了就知道了,我们尽可能的Write Less Do More !(强烈推荐)

在此插播一条硬广告:下一堂分享课程阿笨计划将给大家带来《C#远程调用技术WebService葵花宝典》,课程的重点将给大家分享一下“C# WebService两种不同引用使用方式”,“WebService如何使用异步调用”以及“关于C# WebService如何让客户端以安全的方式进行调用目前常用几种的解决方案”等等。阿笨尽量给大家带来一些干货分享!

如果您对本次分享课感兴趣的话,那么请跟着阿笨一起学习吧。废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

hi大家好,我的名字叫WebService!

二、概念名称含义解释

2.1、什么是远程调用技术(简称:RPC技术)?

一个系统远程调用另一个系统的服务,来获取远程系统的业务数据。

2.2、为什么使用RPC技术?

基于安全性的考虑,一般企业不会开放自己的数据库,只能使用远程调用技术。

2.3、什么是SOAP?

SOAP:(Simple Object Access Protocol)简单对象存取协议。SOAP最早是针对RPC的一种解决方案;SOAP是XML文档形式的调用方法的规范。

2.4、什么是WebService?

WebService是一种使用HTTP传输的SOAP协议的远程调用技术。

2.5、WebService采用的是什么通信协议?

WebService 采用的的基本通信协议是SOAP ,它是在分散或分布式环境中交换信息,它基于XML的协议,通过SOAP协议可以实现不同项目、不同地点、甚至异地调用应用程序。

2.6、为什么说WebService是跨平台的?

实际上,WebService 的主要目标是跨平台的可互操作性。为了达到这一目标,WebService 完全基于XML (可扩展标记语言)、XSD (XMLSchema )等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。

2.7、WebService实现包含那三要素?

WSDL作用:webservice服务端的使用说明书。(Web Service Description Language)

SOAP作用:规范XML标签。

UDDI:提供webservice服务端的搜索和注册功能。

2.8、WebService有哪些优势?

1)、可操作的的分布式应用程序。

可以实现不同应用程序和在不同系统平台上开发出来的应用程序之间通信。

2)、普遍性、使用HTTP和XML进行通信。

任何支持HTTP和XML 技术的设备都可以拥有和访问Web Service,不同平台不同开发语言照样可以调用我们发布的Web Service。

3)、Web Service 甚至可以穿越防火墙,真正的自由通信。

一般要访问的Web服务器以及要访问的Web Service的客户端很可能位于防火墙后面,都默认关闭其它端口而开发HTTP端口,而Web service 正是基于HTTP的,所以它可以穿越防火墙.

4)、异构平台之间的互通性。

Web Service 最大的优势是提供了异构平台的无缝街接技术手段。由于不同的用户使用不同的硬件平台,不同的操作平台,不同的操作系统,不同的软件,不同的 协议通信,这就产生了互相通信的需求。 Web Service 使任何两个应用程序,只要能读写XML,那么就能互相通信。 通过 SOAP 协议实现异地调用。

小结:

阿笨用通俗一点语言解释就是在当前C#、JAVA、PHP等语言都可以使用标准的WebService技术实现不同语言的应用程序之间进行互相通信,即互相调用。

三、WebService技术调用原理图

WebService工作原理图一

WebService工作原理图二

3.1、Webservice是如何实现远程调用?三要素在webservice的作用?

(1)Webservice原理:webservice是一种使用http传输的SOAP协议的数据的远程调用技术。

(2) WSDL作用:webservice服务端的使用说明书。(Web Service Description Language)

(3)SOAP作用:规范XML标签。

(4) UDDI:提供webservice服务端的搜索和注册功能。

3.2、WebService关键原理说明:

服务者:发布者需要部署Webservice服务应用程序。

调用者:客户端需要参考webservice服务端的使用说明书(WSDL)进行调用。

四、C# WebService常用的几种调用方式

4.1、C#通过Dynamic动态调用WebService。

其实与手工创建添加引用步骤一样,只是在这里把手动变成了自动而已,动态生成代理类,利用反射动态调用了方法。详细请参考:[C#通过Dynamic动态调用WebService.pdf]文档。

4.2、C#通过模拟HTTP请求协议Get、POST方式进行调用WebService。(根据个人项目情况使用)

详细请参考:[C#通过模拟HTTP请求协议Get、POST方式进行调用WebService.pdf]文档。

4.3、通过手动生成客户端WSDL代理类进行调用。(根据个人项目情况使用)

采用微软给我们提供的wsdl.exe工具生成wsdl本地代理类。

4、通过SOAP协议手动引用方式进行调用。(微软强烈推荐)

五、C# WebService调试小技巧和开发必备工具分享

5.1、C# 如何调试WebService服务以及调试远程Web服务。

详细请参考[C# WebService如何远程调试.pdf]

5.2、Webservice调试利器

1、微软提供的.NET WebService Studio

下载地址:http://webservicestudio.codeplex.com/

2、Storm(推荐)

下载地址:http://storm.codeplex.com/ ,顺便提及下该工具还有一个它的“同胞兄弟”叫 WCF Storm 哦。

3、soapui(强烈推荐)

下载地址:https://www.soapui.org/downloads/latest-release.html

六、实战演练之如何通过优雅的方式进行WebService调用

统一入口获取指定T类型的WebService服务实例

 
客户端调用者将采用统一入口进行访问

 
 

C#远程调用技术WebService修炼手册的更多相关文章

  1. C#远程调用技术WebService葵花宝典

    一.课程介绍 直接开门见山吧,在学习之前阿笨想问大家一句,关于WebService远程过程调用技术(RPC) 你真的会了吗?不要跟老夫扯什么WebService技术已经过时,如果你的内心有在偷偷告诉你 ...

  2. WebService远程调用技术

    1.---------------------------------介绍-------------------------------------------------- (1)远程调用:一个系统 ...

  3. Spring远程调用技术<2>-Hessian和Burlap

    上篇谈到RMI技术,加上Spring的封装,用起来很方便,但也有一些限制 这里的Hessian和Burlap解决了上篇提到的限制,因为他们是基于http的轻量级远程服务. Hessian,和RMI一样 ...

  4. Spring远程调用技术<1>-RMI

    在java中,我们有多种可以使用的远程调用技术 1.远程方法调用(remote method invocation, RMI)  适用场景:不考虑网络限制时(例如防火墙),访问/发布基于java的服务 ...

  5. Java[2] 分布式服务架构之java远程调用技术浅析(转http://www.uml.org.cn/zjjs/201208011.asp)

    转自:http://www.uml.org.cn/zjjs/201208011.asp 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如: ...

  6. Spring远程调用技术<3>-Spring的HTTP Invoker

    前面提到RMI使用java标准的对象序列化机制,但是很难穿透防火墙.  另一方面,Hessian和Burlap能很好地穿透防火墙,但是使用私有的对象序列化机制. Spring提供的http invke ...

  7. WebService与RMI(远程调用方式实现系统间通信)

    前言 本文是<分布式java应用基础与实践>读书笔记:另外参考了此博客,感觉讲的挺好的,尤其是其中如下内容: 另外,消息方式实现系统间通信本文不涉及.RMI则只采用spring RMI框架 ...

  8. 架构设计:一种远程调用服务的设计构思(zookeeper的一种应用实践)

    在深入学习zookeeper我想先给大家介绍一个和zookeeper相关的应用实例,我把这个实例命名为远程调用服务.通过对这种应用实例的描述,我们会对zookeeper应用场景会有深入的了解. 远程调 ...

  9. 跨平台调用之WebService

    一.简介 web service是一种跨编程语言和跨操作系统平台的远程调用技术,是基于网络的.分布式的模块化组件. 跨编程语言就是说服务器端程序采用 Java 编写,客户端程序则可以采用其他编程语言编 ...

随机推荐

  1. State Estimation for Robotics (Tim Barfoot) exercises Answers

    Here are some exercises answers for State Estimation for Robotics, which I did in June, 2017. The bo ...

  2. 春夏秋冬又一春之Redis持久化

    历史文章推荐: 一只准程序猿的唠叨 可能是最漂亮的Spring事务管理详解 Java多线程学习(八)线程池与Executor 框架 面试中关于Redis的问题看这篇就够了 非常感谢<redis实 ...

  3. Virut.ce-感染型病毒分析报告

    1.样本概况 病毒名称 Virus.Win32.Virut.ce MD5 6A500B42FC27CC5546079138370C492F 文件大小 131 KB (134,144 字节) 壳信息 无 ...

  4. CEO、COO、CFO、CTO、CXO

    CEO:Chief Executive Officer 首席执行官——类似总经理.总裁,是企业的法人代表 COO:Chief Operating Officer 首席营运官——类似常务总经理 CFO: ...

  5. Mycat 配置及优化【转】

    前言 Mycat 是一个数据库分库分表中间件 MyCAT 是作为通用代理设计的,后端是以 Mysql协议 和 JDBC 的方式连接数据库,可以支持 Oracle.DB2.SQL Server . mo ...

  6. phantomhs获取网页的高度

    function heheda() { window.setTimeout(function () { console.log("---------------------Capture O ...

  7. springcloud中的API网关服务Zuul

    到目前为止,我们Spring Cloud中的内容已经介绍了很多了,Ribbon.Hystrix.Feign这些知识点大家都耳熟能详了,我们在前文也提到过微服务就是把一个大的项目拆分成很多小的独立模块, ...

  8. Linux删除以减号开头的文件

    2014年5月5日 10:33:47 原因:文件乱码了,乱码后以减号开头,删不掉 摘抄: 文件系统出现一个文件 -C.html 如何删除/新建?rm -- "-C.html" to ...

  9. 嵌入式telnet的安装

    一 在已经安装telnet上,执行查询命令将查到的命令拷贝的未安装telnet的134上. [NTP-Fedora20 system]#whereis xinetd xinetd: /usr/sbin ...

  10. 测试开发之Django——No4.Django中前端框架的配置与添加

    我们在开发一个web项目的时候,虽然我们不是专业开发,但是我们也想要做出来一个美美的前端页面. 这种时候,百度上铺天盖地的前端框架就是我们的最好选择了. 当然,在网上直接下载的框架,我们是不能直接用的 ...