一、WebService到底是什么?

先来看下标准的定义:Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

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

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

二、WebService平台技术

SOAP、WSDL、UDDI(UniversalDescriptionDiscovery andIntegration)三者构成了WebService的三要素。下面,详细阐述这三大技术:

  • SOAP

    WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用Web Service。 
    SOAP协议组成: 
    SOAP协议 = HTTP协议 + XML数据格式 
    SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。打个比喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。

  • WSDL

    好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。 
    WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。

  • UDDI

    UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

三、WebService调用原理

实现一个完整的Web服务工作流程:
  • Web服务提供者设计实现Web服务,并将调试正确后的Web服务通过Web服务中介者发布,并在UDDI注册中心注册;

  • Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注册中心,为请求者寻找满足请求的服务;

  • Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息,该描述信息用WSDL写成,各种支持Web服务的机器都能阅读;

  • 利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用;

  • Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请求者。

  • 四、WebService实例教程

    以.Net创建WebService服务为例: 
    1. 启动VisualStudio(本教程用VisualStudio2017为例),新建网站项目;

    2.选择新建ASP.NET 空网站,点击“确定”,继续;

    3.点击新建的项目名称 右键–>添加–>添加新项;

    4.在添加新项列表中选择Web服务(ASMX),点击“确定”, 继续;

    5.在webservice.cs中添加自定义测试功能代码;

        //自定义测试功能
    [WebMethod(Description = "返回两数之和")]
    public int GetSum(int a, int b)
    {
    return a + b;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    6.我们开始运行一下WebService.asmx文件;

    如果运行的效果和上面的截图一致,那么你的WebService运行正确,现在记住这个服务地址(即浏览器中的地址)。接下来,我们一起看看在ASP.NET网站中如何调用这个服务呢?

    我们,继续!

    7.和第二步一样,新建一个空网站项目;

    8.点击新建的项目名称 右键–>添加–>添加新项,在添加新项列表中选择Web窗体,点击“确定”, 继续;

    9.在新建的Add.aspx页面中 ,在工具箱中拖出三个控件:textbox1,textbox2,label分别用来显示 整数a,整数b,计算的和用label显示。

    那么,如何添加Web服务呢?

    10.选中你的网站项目,右键–>添加服务引用;

    11.将你的服务地址(教程中的第六步)复制到地址栏中,点击“转到”—>打开服务“WebService”—>点击“确定”按钮,同时留意命名空间;

    12.添加服务后,如果你的目录结构是这样的,那么你成功添加服务了!

    13.我们在Add.aspx中添加一个按钮控件,并在对应的Add.aspx.cs文件中添加对应业务逻辑,实例化创建一个服务对象:

        protected void Button1_Click(object sender, EventArgs e)
    {
    ServiceReference1.WebServiceSoap ws = new ServiceReference1.WebServiceSoapClient();
    Label1.Text = Convert.ToString(ws.GetSum(Convert.ToInt32(TextBox1.Text.Trim()), Convert.ToInt32(TextBox2.Text.Trim())));
    }
    • 1
    • 2
    • 3
    • 4
    • 5

    14.现在运行我们的Add.aspx页面:

    运行两个数,点击“调用WebService按钮”,输出结果为3,我们成功啦!!

     

WebService 工作原理及实例教程的更多相关文章

  1. Webservice工作原理及实例

    Web Service工作原理及实例   一.Web Service基本概念   Web Service也叫XML Web Service WebService是一种可以接收从Internet或者In ...

  2. WebService工作原理

    1.WebService工作原理-SOAP 当客户端调用一个WebService的方法时,首先将方法名称和需要传递的参数包装成XML,也就是SOAP包,通过HTTP协议传递到服务器端,然后服务器端解析 ...

  3. 轻松搞懂WebService工作原理

    用更简单的方式给大家谈谈WebService,让你更快更容易理解,希望对初学者有所帮助. WebService是基于网络的.分布式的模块化组件. 我们直接来看WebService的一个简易工作流程: ...

  4. CyclicBarrier的工作原理及其实例

    CyclicBarrier是多线程中一个重要的类,主要用于线程组内部之间的线程的相互等待问题. 1.CyclicBarrier的工作原理 CyclicBarrier大致是可循环利用的屏障,顾名思义,这 ...

  5. 【转载】轻松搞懂WebService工作原理

    用更简单的方式给大家谈谈WebService,让你更快更容易理解,希望对初学者有所帮助. WebService是基于网络的.分布式的模块化组件. 我们直接来看WebService的一个简易工作流程: ...

  6. Ajax工作原理及实例

    1.关于ajax的名字 ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式. 2. ...

  7. [转载] Web Service工作原理及实例

    一.Web Service基本概念   Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...

  8. WebService工作原理及传输安全问题

    WebService是一种能够接收从Internet或者Intranet外其它系统发来的请求,是一种轻量级的独立通讯技术. XML(Extensible MarkUp Language)扩展型标记语言 ...

  9. 详解AJAX工作原理以及实例讲解(通俗易懂)

    什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味 ...

随机推荐

  1. Windows phone自定义控件(无外观控件)——FlipPanel

    编码前 无外观自定义控件的定义在上一篇中已经有了,至于这一篇的自定义控件,比之前多加入了状态的变化,就像默认的Button具有Pressed.Normal等状态.在状态转变的同时可以加上一些动画,可以 ...

  2. [leetcode]636. Exclusive Time of Functions函数独占时间

    Given the running logs of n functions that are executed in a nonpreemptive single threaded CPU, find ...

  3. uploadify在chrome下初始化失败,在Firefox下却可以原因探析

    如果没有报错,在其他浏览器下没问题,那就只有一种可能:浏览器flash加载失败,解决办法是,更改浏览器对站点flash的设置.参考下图:

  4. Shell编程实例

    一.简介 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更 ...

  5. Sketch小妙招:在线分享设计

    Sketch是很多产品经理.UI.UX设计师常使用的一款的设计工具,但是我在使用Sketch的过程中发现了一个让我困扰的事儿,或者说它缺少了一个我非常需要的服务:在线分享设计.可能很多使用Sketch ...

  6. 1、wei-d-s嵌入式与PC区别,LED等的点亮以及调用C函数

    tiny6410之点亮Led灯: .global _start _start: ldr r0,0x70000000 //目的是把外设基地址告诉cpu orr r0,r0,#0x13 mcr p15,0 ...

  7. Python 函数式编程和OOP编程 0001测试

    # encoding: utf- stu1 = { ' } stu2 = { ' } def stu_score(stu_score): print ('%s , %s ' % ( stu_score ...

  8. Spring Boot与Logback的运用(自定义异常+AOP)

    在开发以及调试过程中,程序员对日志的需求是非常大的,出了什么问题,都要通过日志去进行排查,但是如果日志不清或者杂乱无章,则不利于维护 这边就比较详细的列举几种类型的日志,供大家参考 首先明白logba ...

  9. 管理型交换机IEEE 802.1Q VLAN设置应用实例

    转载标注: IEEE802.1Q 我粗略理解为对交换机入口规则和出口规则设置,入口打上VID,设置从哪些口可以出去,并且是否带标签. 一 VLAN的概念 VLAN(Virtual Local Area ...

  10. 2018.10.04 NOIP模拟 航班(tarjan+树形dp)

    传送门 考场上自己yy了一个双连通只有40分. 然后换根dp求最长路就行了. 代码