• webservice介绍和使用


    一、概述

    1、webservice是什么?  

    Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的交互操作的应用程序。 Web Service技术能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。

    2、webservice的由来?

    近几年来,Internet的迅猛发展使其成为全球信息传递与共享的巨大的资源库。越来越多的网络环境下的Web应用系统被建立起来,利用HTML、CGI等Web技术可以轻松地在Internet环境下实现电子商务、电子政务等多种应用。然而这些应用可能分布在不同的地理位置,使用不同的数据组织形式和操作系统平台,加上应用不同所造成的数据不一致性,使得如何将这些高度分布的数据集中起来并得以充分利用成为急需解决的问题。随着网络技术、网络运行理念的发展,人们提出一种新的利用网络进行应用集成的解决方案——Web Service。Web Service是一种新的Web应用程序分支,其可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。因此,Web Service是构造分布式、模块化应用程序和面向服务应用集成的最新技术和发展趋势。

    3、webservice的目的?

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

    4、webservice的适用场景?

    • 跨防火墙通信。在一个用户界面和中间层有较多交互的应用程序中,使用WebService这种结构作为中间层组件,可以节省花在用户界面编程上的开发时间。另外,这样一个由WebService组成的中间层,完全可以在应用程序集成或其它场合下重用。最后,通过WebService把应用程序的逻辑和数据“暴露”出来,还可以让其它平台上的客户重用这些应用程序。

    • 应用程序集成。通过WebService,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。 

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

    • 软件和数据重用。WebService在允许重用代码的同时,可以重用代码背后的数据。使用WebService,只需要直接调用远端的WebService就可以了。另一种软件重用的情况是,把好几个应用程序的功能集成起来。把这些功能通过WebService“暴露”出来,就可以非常容易地把所有这些功能都集成到你的门户站点中,为用户提供一个统一的、友好的界面。

    5、WebService涉及的技术

    • UDDI (Universal Description, Discovery, and Integration) :UDDI是一种用于描述、发现、集成Web Service的技术,它是Web Service协议栈的一个重要部分。通过UDDI企业可以根据自己的需要动态查找并使用Web服务,也可以将自己的Web服务动态地发布到UDDI注册中心,供其他用户使用。

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

    • XML(Extensible Markup Language):扩展型可标记语言,是Web service平台中表示数据的基本格式,是Soap的基础。

    • Soap(Simple Object Access Protocol):简单对象访问协议,是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,可以通过SOAP调用Web服务中的一个或多个操作。

    6、webservice的完整流程

    • 发布:Web服务提供者设计实现Web服务,并将调试正确后的Web服务通过Web服务中介者发布,并在UDDI注册中心注册
    • 发现:Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注册中心,为请求者寻找满足请求的服务
    • 发现:Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息,该描述信息用WSDL写成,各种支持Web服务的机器都能阅读
    • 绑定:利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提供者,以实现Web服务的调用
    • 绑定:Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请求者

    二、webservice的实例

    1、构建webservice服务端

    选择下图模板:

    项目结构如下: 

    右击项目添加新建Web服务项

    在WebService1.asmx中添加几个方法:

    using System.Web.Services;
    
    namespace WebServiceDemo
    {
        /// <summary>
        /// WebService1 的摘要说明
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
        // [System.Web.Script.Services.ScriptService]
        public class WebService1 : System.Web.Services.WebService
        {
    
            [WebMethod]
            public string HelloWorld()
            {
                return "Hello World";
            }
            [WebMethod]
            public double Add(double a, double b)
            {
                return a + b;
            }
            [WebMethod]
            public double Sub(double a, double b)
            {
                return a - b;
            }
        }
    }

    F5运行,查看效果:

    发布webservice,右键项目,选择发布:

    配置到IIS,效果如下:

     浏览器中输入地址:http://localhost:8060/webservice1.asmx 

    2、构建webservice客户端

    选择模板,如下:

    项目结构如下:

     最重要的一步就是引用webservice ,项目->引用->右键选择“添加服务引用”,可以看到下图:

    填入之前建立的webservice 对应的url ,  点击转到即可,会出现以下Service Reference,这样就可以引用webservice了

     

     添加web窗体,引用webservice中的函数

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebServiceWeb.WebForm1" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>    
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:Button ID="Button1" OnClick="ButtonId_Click" runat="server" Text="button" />
            </div>
        </form>
    </body>
    </html>

    后台逻辑,引用webservice的函数HelloWorld()

    using System;
    using System.Windows;
    
    namespace WebServiceWeb
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
            protected void ButtonId_Click(object sender, EventArgs e)
            {
                WebServiceWeb.ServiceReference1.WebService1SoapClient webService1Soap = new WebServiceWeb.ServiceReference1.WebService1SoapClient();
                string text= webService1Soap.HelloWorld();
                MessageBox.Show(text);
            }
        }
    }

    程序运行结果

  • 相关阅读:
    WebService
    jdbc访问数据库
    ssm文件配置
    ssh文件配置
    配置数据源的三种方式和sql心跳的配置
    SQL in与exists
    套接字
    oracle 方向及资料
    ORACLE恢复数据
    SQL时间戳的使用
  • 原文地址:https://www.cnblogs.com/qtiger/p/5631931.html
Copyright © 2020-2023  润新知