精华内容
下载资源
问答
  • webservice原理流程
    2018-06-14 11:43:06

    WebService是基于网络的、分布式的模块化组件。

    WebService的简易工作的流程:
         客户端 ——>阅读WSDL文档(了解webservice的请求) ——> 调用WebService 
    上面的流程是一个大致的描述,客户端阅读WSDL文档发送请求,然后调用Web服务器最后返回给客户端,这和普通的http请求一样,请求->处理->响应,与普通的请求不一样的就是webservice请求中有一个WSDL文档和SOAP协议,以及.NET Framework自带的Web Service请求处理器 ISAPI Extension。

    WebService的比较完整的流程:
         客户端——> 阅读WSDL文档 (根据文档生成SOAP请求) ——>发送到Web服务器——>交给WebService请求处理器 (ISAPI Extension)——>处理SOAP请求——> 调用WebService——>生成SOAP应答 ——> Web服务器通过http的方式交给客户端

    名词解释:
         1. SOAP: 是以XML形式提供简单、轻量、用于在分散或分布式环境中交换结构化和类型信息的机制。SOAP消息的基本结构通过HTTP协议传递XML数据。简单的说就是一个基于XML的协议。
         2. WSDL : 是使用XML文档描述Web服务的标准,是Web服务的的接口定义语言,描述如何访问具体的接口,包含3个基本属性:
              a. 如何访问服务:和服务交互的数据格式以及必要的协议。
              b. 服务在哪里: 协议相关的地址,比如url信息等。
              c. 服务具有哪些功能: 服务提供的具体操作方法,=》就是你webservice中提供了哪些可调用的方法。

    原理详细描述:
         无论使用什么工具、语言编写 WebService,都可以使用 SOAP 协议通过 HTTP 调用,其工作原理相同。创建 WebService 后,将其暴露给Web客户,任何语言、平台的客户都可以阅读其  WSDL 文档,以调用 WebService 。客户可以根据 WSDL 描述文档生成一个 SOAP 请求信息。 WebService 部署在Web服务器( 如IIS )上,客户生成的 SOAP 请求会被嵌入在一个 HTTP 请求中并发送到Web服务器,Web服务器(IIS)再将请求转发给 WebService 请求处理器。
         对于.Net而言,WebService请求处理器则是一个 .NET Framework 自带的 ISAPI Extension。Web请求处理器用于解析收到的SOAP请求,调用 WebService,然后生成相应的SOAP应答。Web服务器得到SOAP应答后,在通过HTTP应答的方式将其返回给客户端。

    WebService优势:
         1.平台无关性。任何平台都可以使用WebService。
         2.编程语言无关系。 基于XML,XML本身与平台无关,使用XSD作为数据类型系统,不论用什么语言编写,所有数据类型都会被转换为XSD,只需要遵守WebService的统一标准即可。
         3.部署、升级和维护Web服务简单、方便。
         4.实现多数据、多服务的聚合。
         5.成本低。
         6.不受防火墙的影响。使用SOAP协议通信,封装了XML格式的数据,以ASCII文本的方式传输,而非二进制,调试方便,而且可以使数据容易的通过防火墙,不需要单独开通信端口。

    总结:
         WSDL、SOAP和UDDI(统一描述、发现和集成机制) 一起工作,支持WebService与Internet上的其他服务、应用程序和设备交互作用。UDDI提供了发布和定位Web服务功能(更多请自行了解),WSDL描述了Web服务,SOAP服务提供了传输消息。

    更多相关内容
  • WebService的简介, 原理, 使用,流程

    千次阅读 2019-04-04 14:19:01
    WebService的几种概念: 以HTTP协议为基础,通过XML进行客户端和服务器端通信的框架/组件 两个关键点: 1. 服务端提供的功能, 通过xml描述 2. 第一步中的描述的功能, 嵌入到HTTP协议中, 使得能通过HTTP协议...

    第一部分: 直观概述

     

    WebService的几种概念:

     

    以HTTP协议为基础,通过XML进行客户端和服务器端通信的框架/组件

     

    两个关键点:

    1.       服务端提供的功能, 通过xml描述

    2.       第一步中的描述的功能, 嵌入到HTTP协议中, 使得能通过HTTP协议进行通信【所谓的SOAP】.

     

    用图可以如下表示:

     

    图一: WebService的简要表示

     

    采用这两个技术的目的主要是:

    1.       跨平台, 支持HTTP协议的主机和服务器, 都能够建立通信联系, 并且大部分的主机和服务器(99.999%以上)将支持HTTP协议。一般而言,不同目标主机之间的通信,需要通过防火墙,打开某个端口, HTTP协议的优势在于,防火墙一般不会封掉80端口, 这样就可以方便,安全的通信。

     

    2.       跨语言, 任何语言, 都支持XML文本解析, 这个的目的是为了实现不同语言之间的通信, 通信的内容,是被xml限制的,因此这样进行通信,能跨越语言障碍,即, Java开发的服务端,客户端可以用C访问, 可以用java,VB等访问, 反之亦然。

     

    第二部分: 基本原理和架构

     

    当然,架构比我们上面说到的图要更为复杂,上面只是说明了一来一回的通信, 实际情况还需要考虑以下问题, 参照图例说明:

    1. 服务器端(Provider) 提供统一的标准化服务。就像开办一个公司(即Server Provider), 工商行政管理局,注册一下公司地址和性质。目的是, 别人要用公司的服务,从工商管理局就知道你的地址。这样统一的做法,是方便所有的公司以及所有需要公司提供服务的客户。并且这些信息是最大限度的公开。

     

    2. 客户端(Requester) 到注册中心(Registry)拿到公司的基本信息之后, 去找到这个公司, 然后使用该公司提供的服务。

     

     

    图二: 基本的WebService架构流程图

     

     

    注意上面图中的基本步骤的标号, 解释如下

    1. Provider节点提供好服务后, 首先注册到节点Registry

    2和3. Requester节点到Regitry节点查信息, 找到需要的Provider及其提供的Service

    4. Requester使用Provider提供的服务

     

    更具体的介绍, 参照参考文献[2], 下面这些基本由这个参考文献翻译而来:

     

     

    图三: 细节步骤流程图

    上图这些东西, 完完整整的呈现了WebService的整个原理流程:

    1.       Client有需要,想调用一个服务,但不知道哪里去调用. 但知道UDDI Registry上可以查到。

    2.       果然UDDI记录了某个一个叫做Web Server A的服务器能提供这样的服务。

    3.       于是Client去Web Server A, 询问确切的调用方法。

    4.       Web Server A看到Client提出的“确切方法查询”之后,立即返回给它一个WSDL描述的xml文档这里记录他能提供的各类方法接口.

    5.       Client了解到这些之后,将这些xml的接口方法,封装成为HTTP请求, 发给Web Server A. 这些封装方式采用的是标准的SOAP方式, 实质是满足HTTP协议的一些SOAP的报文消息。

    6.       Web Server A回应的也是HTTP协议的SOAP包. 这样双方的请求-响应完全畅通。

     

     

    上面我们看到的是应用原理图, 进一步深入, 可以发现如下的协议架构图:

     

    图四: 协议结构

     

     

    上面我们已经花了很大的精力, 介绍了发现Service(UDDI), Service提供的接口描述(WSDL), 调用Service(SOAP), 以及传输(HTTP)的的整个过程。因此不再做介绍。这个技术的核心是SOAP.

     

    第三部分: 实践WebService

     

    看到上面的图那么复杂, 实质上SOAP+HTTP协议已经足够成熟,犯不着让我们通过xml生成带有SOAP变迁的HTML脚本, 有很多工具可以帮住我们实现。事实上,开发起来还是相当简便的。

    情况A: 已知存在Web Service, 客户端的开发可以通过以下步骤:

     

    1. 通过UDDI,查找到Client程序需要的Web Service的位置
    2. 通过WebService找到 WSDL接口描述文件
    3. 通过工具,将步骤2得到的WSDL文件,生成一个Client Stub, 这个实质上是代码, 也就是打了一个桩。把这个stub的代码归并到Client程序中.
    4. 每次Client需要调用WebService的时候,直接调用步骤4生成的Stub 接口,就实现了对Server端的调用。

     

    情况B: Server端的开发,同样无需做解析SOAP这样的破事,框架会帮我们做好。大致步骤如下:

    1. 实现WebServer需要提供的所有功能

    2.       利用WSDL文件(或者IDL)生成Server Stub, 这些代码将负责接收从外界获得的请求,并将其转发给Web Server的Service Implementation(实现代码)。当Service Implementation的代码处理完,产生结果之后,又会把结果交给Server Stub, 然后 Server Stub可以产生一个SOAP的响应. Server Stub + Server Implementation 合在一起, 称为Web Service Container, 这玩意儿就是让发送到WebService的HTTP请求,直接送到Server Stub上面的。

     

     

     

    图五:实际应用中的调用

    参考资料:

    展开全文
  • WebService的工作原理

    2021-02-13 00:44:57
    Web Service全称XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI...

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

    XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

    Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

    WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

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

    JAX-WS是什么:

    JSX—WS(Java API for XML Web Service)。他是用来简化使用java构造web服务和web服务客户端的工作的技术。

    Web服务(项目中的流程)

    1bf86cd7ea16f33320c06b965c19be24.png

    方案一:在地址栏输入URL,http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

    48420a1ba4205d943741b2bc24df70f2.png

    5052ad28c5d5f4238a7d2f7dae8c854c.png

    方案二:通过Java代码实现

    如图所示:

    e318bc4ecfb8743f9d4267ae3fee16a9.png

    74fc4ad4e781217275b7e0dfc70eaaf0.png

    104629e5fe89391a519f8cc2b96471d0.png

    测试类:

    public static void main(String[] args) {

    MobileCodeWS ws=new MobileCodeWS();

    MobileCodeWSSoap soap=ws.getMobileCodeWSSoap();

    String address = soap.getMobileCodeInfo("1345338", "");

    System.out.println(address);

    }

    4951fbeb7b5333c0f8c7d094bf88d63c.png

    方案三:使用JAX-WS发布服务

    定义服务器类以及方法[HelloService]

    使用@WebService注解,标识一个java类或一个接口作为一个服务

    806a42edbc262c27430c76c80da19d8d.png

    服务正在监听...

    be6d2d4341759230e1bd54d9fa4abe0e.png

    在浏览器中测试:

    99ae787b14f628274ce2d278bd28f98e.png

    同理 cmd命令解析该文档的类或方法[客户端]

    3c0df16379570a3fa7585adbad9f549a.png

    2c574de5c9e1907133d55306af97de04.png

    新建一个工程,运用这些类,进行测试

    5862cfb9488eb27303ec3b250c292b4d.png

    MyTest测试类:

    public class MyTest {

    public static void main(String[] args) {

    HelloServiceService service=new HelloServiceService();

    HelloService hs = service.getHelloServicePort();

    hs.say("二傻");

    }

    }

    33fea07d3ddbe8918c506072d2a19544.png

    better late than never。

    --- 只要开始,虽晚不迟

    展开全文
  • WebService工作流程

    千次阅读 2017-04-18 12:24:25
    上面的流程是一个大致的描述,客户端阅读WSDL文档发送请求,然后调用Web服务器最后返回给客户端,这和普通的http请求一样,请求->处理->响应,与普通的请求不一样的就是webservice请求中有一个WSDL文档和SOA
    WebService是基于网络的、分布式的模块化组件。
    工作流程:
    客户端 ——>阅读WSDL文档(了解webservice的请求) ——> 调用WebService 
    上面的流程是一个大致的描述,客户端阅读WSDL文档发送请求,然后调用Web服务器最后返回给客户端,这和普通的http请求一样,请求->处理->响应,与普通的请求不一样的就是webservice请求中有一个WSDL文档和SOAP协议,以及.NET Framework自带的Web Service请求处理器 ISAPI Extension。

    客户端 ——>  阅读WSDL文档 (根据文档生成SOAP请求)  ——> 发送到Web服务器 ——> 交给WebService请求处理器 (ISAPI Extension)
    ——> 处理SOAP请求 ——>  调用WebService ——> 生成SOAP应答  ——>  Web服务器通过http的方式交给客户端
     
    1. SOAP:  是以XML形式提供简单、轻量、用于在分散或分布式环境中交换结构化和类型信息的机制。SOAP消息的基本结构通过HTTP协议传递XML数据。简单的说就是一个基于XML的协议。
    2. WSDL :  是使用XML文档描述Web服务的标准,是Web服务的的接口定义语言,描述如何访问具体的接口,包含3个基本属性:
          a. 如何访问服务:和服务交互的数据格式以及必要的协议。
         b. 服务在哪里: 协议相关的地址,比如url信息等
         c. 服务具有哪些功能: 服务提供的具体操作方法,=》就是你webservice中提供了哪些可调用的方法

    原理详细描述:
    无论使用什么工具、语言编写 WebService,都可以使用 SOAP 协议通过 HTTP 调用,其工作原理相同。创建 WebService 后,将其暴露给Web客户,任何语言、平台的客户都可以阅读其  WSDL 文档,以调用 WebService 。客户可以根据 WSDL 描述文档生成一个 SOAP 请求信息。 WebService 部署在Web服务器( 如IIS )上,客户生成的 SOAP 请求会被嵌入在一个 HTTP 请求中并发送到Web服务器,Web服务器(IIS)再将请求转发给 WebService 请求处理器。
    对于.Net而言,WebService请求处理器则是一个 .NET Framework 自带的 ISAPI Extension。Web请求处理器用于解析收到的SOAP请求,调用 WebService,然后生成相应的SOAP应答。Web服务器得到SOAP应答后,在通过HTTP应答的方式将其返回给客户端。

    WebService优势:
    1.平台无关性 。   任何平台都可以使用WebService
    2.编程语言无关系。  基于XML,XML本身与平台无关,使用XSD作为数据类型系统,不论用什么语言编写,所有数据类型都会被转换为XSD,只需要遵守WebService的统一标准即可。
    3.部署、升级和维护Web服务简单、方便。
    4.实现多数据、多服务的聚合。
    5.成本低。
    6.不受防火墙的影响。 使用SOAP协议通信,封装了XML格式的数据,以ASCII文本的方式传输,而非二进制,调试方便,而且可以使数据容易的通过防火墙,不需要单独开通信端口。 


    WSDL、SOAP和UDDI(统一描述、发现和集成机制) 一起工作,支持WebService与Internet上的其他服务、应用程序和设备交互作用。UDDI提供了发布和定位Web服务功能(更多请自行了解),WSDL描述了Web服务,SOAP服务提供了传输消息。

    调用 Web Service 方法有两种方式,同步调用和异步调用。
    同步调用是程序继续执行前等候调用的完成,而异步调用在后台继续时,程序也继续执行,不必等待方法处理完成而直接返回。具体的调用流程见下图:
    对于同步调用方法而言, UI 线程依赖于方法的实现,方法执行时间过长将导致 UI 无法及时与用户进行交互。我们知道,在 Windows 客户端中,每个进程都有单一的 UI 进程,在服务器中,可扩展性依赖于线程的使用。对于异步调用方法而言,能够及时于用户交互响应,从而提供了良好的用户体验;同时也可以改善服务器的可扩展性,将服务器与通讯问题隔离。

    客户端异步调用方法
    在客户端异步调用是完全基于 Proxy 的方法,异步行为最简单的模式。 Visual Studio WSDL.EXE 提供对它的直接支持。所以我们不必在 Web 服务应用程序中编写额外的代码来处理异步调用。
    遍及 .NET Framework 的异步调用有一个基础的设计模式: Begin 方法和 End 方法,他们分别用于开始和终止异步处理。 Visual Studio WSDL.exe 生成了这两种方法:
    Begin<WebServiceMethodName> ——该方法通知 Web 服务开始处理调用,并立即返回。该方法不返回 Web 服务调用所指定的数据类型,而是返回一种实现 IasyncResult 接口的数据类型。
    End<WebServiceMethodName> ——该方法通知 Web 服务返回先前启动的 Web 方法所生成的结果。
    IasyncResult 接口包含了 WaitHandle 类型的 AsyncWaitHandle 特性。这个公共接口允许用户的客户应用程序等待调用,而且,该接口将用 Any All 语义(例如 WaitHandle.WaitOne WaitAny WaitAll )作为信号通知客户应用程序。例如,如果想要客户应用程序异步等候一个 Web 方法,可调用 WaitOne 来处理要完成的 Web 服务。
    一般来说,客户端异步代理方法有两种实现机制:使用同步对象和回调机制(也许你可能对用这个词不习惯,实在找不到第二个词来代替,暂且这样称呼吧)

    同步对象
    同步对象允许用户对 Web 服务的方法进行调用(使用 Begin 方法),然后继续处理。在后面的程序中,可以调用 End 方法,传递同步对象,以便得到调用结果。这种方式下,能够继续执行函数中的程序流程,而不执行回调处理。在这里调用 WaitOne() 方法会挂起当前线程,避免忙等待的发生,直到 Web Services 方法调用结束返回后,该线程才会被重新唤起。

    回调机制
    从本质上说,异步回调机制是委托的 .NET 等价物,它通过在异步操作完成时建立一个被调用的单独方法来进行工作。调用应用程序能够继续处理其他的任务,直到回调函数被调用为止。这就意味着处理已经完成了,应用程序可以正常运行了。使用同步对象不同于回调机制的区别是,当检查 Web 方法是否已经完成,以及检查 Web 方法中是否含有需要的结果时,我们无法对其进行控制,而在回调的情况中, Web 方法一旦完成,这些工作就会被自动执行。

    使用回调机制还是同步对象取决于用户所面临的具体情况。在检查异步调用是否完成时,如果愿意对处理过程进行控制,那么可以选择使用同步对象。如果觉得自己编写代码来完成对 Web 服务的调用,且当方法一旦执行完毕就立即由所调用的特殊函数来处理所返回的结果更适合一些,那么就更适合用回调机制。
    在客户端使用异步方法调用,可以改进 UI 响应度,在服务器端不需要实现异步操作,对服务器来说是透明的,而且客户端能够在任何时间选择阻塞。
    展开全文
  • Webservice原理解析

    2015-10-17 20:58:41
    Webservice的基本概念: Web Services 直译过来就web 服务, 个人理解就是一种基于Internet的对外服务机制。 它的应用领域是Internet,而不仅限于局域网或试验环境。这就要求我们的Web Services 框架必须适用于...
  • webservice通信原理

    2021-08-02 07:43:26
    public class WebService1 : System.Web.Services.WebServicepublic class WebService : MarshalByValueComponentpublic class MarshalByValueComponent : IComponent, IDisposable, IServiceProviderAsp.Net Web Se...
  • 我们直接来看WebService的一个简易工作流程:客户端——>阅读WSDL文档(了解webservice的请求)——>调用WebService上面的流程是一个大致的描述,客户端阅读WSDL文档发送请求,然后调用Web服务器最后返回给...
  • 一、SOA和webservice  SOA(service-Oriented Architecture)是面向服务的架构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行...
  • WebService 工作原理及实例教程

    万次阅读 2017-05-26 15:22:18
    一、WebService到底是什么?先来看下标准的定义:Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的...
  • WebService原理流程

    千次阅读 2016-02-04 22:09:15
    WebService 的几种概念 :   以 HTTP 协议为基础,通过 XML 进行客户端和服务器端通信的框架 / 组件   两个关键点 : 1. 服务端提供的功能 , 通过 xml 描述 2. 第一步中的描述的功能 , 嵌入...
  • 1. webservice远程访问流程 1) pom文件引入cxf和wsdl相关包依赖 2) 服务端创建webservice接口 3) 服务端实现webservice接口 4) 服务端配置暴露webservice接口 5) 客户端创建暴露的webservice接口 6) 客户端调用...
  • 本文档详细说明了,EAS bos如何调用webservice ,入门及进阶操作,欢迎分享
  • 一、浏览器请求页面的简单流程 当浏览器请求静态页面时,会发送请求给服务器软件,服务器软件直接去找对应的静态页面,并返回给浏览器。 当浏览器请求动态页面时,服务器软件收到请求,发现处理不了.aspx文件,就去...
  • WebService原理

    2013-12-10 00:11:42
    1、WebService实际上就是两个应用程序之间的远程调用,而且这种调用是跨语言的。 2、应用程序调用WebService的接口,实际上就是解析XML语言。也就是说两个应用程序之间的交流实际上就是通过XML来交流的。 3、...
  • 1原理 : 服务端开发一个功能,然后发布一个http服务,然后客户端访问这个http服务,http服务内部先解析http请求体body (按照soap协议 规范构造的xml请求数据),然后调用功能实现类的对应方法获取结果。 2 关键点:...
  •  Webservice的几种概念:    以HTTP协议为基础,通过XML进行客户端和服务器端通信的框架/组件。    两个关键点:  1)服务端提供的功能,通过xml描述;  2)第一步中描述的功能,嵌入到HTTP协议中,使得...
  • webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。下面这篇文章主要给大家介绍了关于C#调用webservice接口的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习...
  • WebService

    万次阅读 多人点赞 2021-08-09 21:34:10
    2、webservice基本概念 2.1 什么是webservice 字面看web + service就是网站服务。 比如在开发的界面显示天气,那么就可以直接访问气象局提供的接口。也就是常见的网站服务。 2.2 简介 webservice即网站服务,他是...
  • WebService的简介, 原理, 使用

    千次阅读 2018-05-16 09:17:58
    第一部分 : 直观概述WebService 的几种概念 : 以 HTTP 协议为基础,通过 XML 进行客户端和服务器端通信的框架 / 组件 两个关键点 :1. 服务端提供的功能 ,... 用图可以如下表示:图一: WebService的简...
  • Webservice原理

    2012-04-07 22:51:54
    Webservice的基本概念: Web Services 直译过来就web 服务, 个人理解就是一种基于Internet的对外服务机制。 它的应用领域是Internet,而不仅限于局域网或试验环境。这就要求我们的Web Services 框架必须适用于现有...
  • 这一章节,我们主要解决关于Webservice概念性的问题,首先弄明白Webservice的概念和原理,然后弄清楚它的交互流程,这样容易理解后续Webservice的调用方法。 1 Web服务的定义 Web服务架构与Web一样,也是网络...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,061
精华内容 3,624
关键字:

webservice原理流程