Web Service基础知识

什么是Web Service

       Web Service是以独立于平台的方式,通过标准的Web协议,可以由程序访问的应用程序逻辑单元。它是一种分布式计算技术,一种自包含、自描述、模块化的应用,可以发布、定位、通过Web调用。一旦部署之后 ,其它Web Service应用程序可以发现并调用它部署的服务。它运用了Web网络技术和基于组件开发的精华成分。DCOM、CORBA和其它基于组件的分布式计算技术都依赖于特定的对象模型协议,而Web Service扩展了这些模型,使之可以和SOAP(简单对象访问协议)以及XML通信以根除特定对象模型协议带来的通信障碍。

下表是DCOM、CORBA和Web Service的比较:

特征

DCOM

CORBA

Web Service

远程过程调用(RPC)机制

分布式计算环境远程过程调用(DCE-RPC)

Internet Inter-ORB协议

超文本传输协议(HTTP)

编码

网络数据表示(NDR)

通用数据表示(CDR)

扩展标记语言(XML)

接口描述

接口定义语言(IDL)

接口定义语言(IDL)

Web服务描述语言(WSDL)

发现

注册库

命名服务与交易服务

通用发现、描述与集成机制(UDDI)

防火墙的友好性

协议的复杂性

跨平台性

部分

Web Service的主要优点是:允许在不同平台上、以不同语言编写的各种程序以基于标准的方式相互通信。。它就是个对外的接口,里面有函数可供外部客户调用。注意Web Service传递的数据只能是序列化的数据,典型的就是XML数据

Web服务三个重点:

一、简单对象访问协议(SOAP)

SOAP是一种基于XML的通信协议,包括三个部分:

1、 SOAP封装结构:定义消息的XML格式,包括整体框架、消息内容、谁处理这些内容等

2、 SOAP编程规则:定义如何将程序数据表示为XML

3、 SOAP RPC表示:定义如何使用SOAP进行远程过程调用

二、Web服务描述语言(WSDL)

1、 是一个XML文档,用于说明一组SOAP消息以及如何交换这些信息

2、 定义了服务的位置以及使用服务的通信协议

3、 可提供更高层次的消息,如Web服务的业务类型和关联关键字等

三、同一描述、发现和继承(UDDI)

1、 Web服务的黄页

2、 其核心组件是UDDI商业注册,它使用一个XML文档来描述Web服务。包括三个部分:

a)         白页:介绍提供服务的公司,包括名称、地址、联系方式

b)        黄页:包括按照标准分类进行分类的行业类别

c)         绿页:细则介绍、访问服务接口等技术信息

SOAP、WSDL和UDDI都基于XML。SOAP使用XML作为其数据编码格式。WSDL使用XML Schema来描述Web服务的结构。UDDI使用XML描述商业实体和Web服务

Web服务基础结构:

基础结构块

职能

XML Web服务目录

XML Web服务目录提供一个中央地址,用于定位其它组织提供的XML Web服务。象UDDI登记这样的XML Web服务目录实现这个职能。XML Web服务的客户端可以引用XML Web服务目录,也可以不引用XML Web服务目录

XML Web服务发现

XML Web服务发现是使用web服务描述语言(WSDL)定位或发现一个或多个描述特别的XML Web服务的相关文档。DISCO规格定义了定位服务描述的规则。如果XML Web服务客户了解服务描述的位置,他们可以绕过发现步骤

XML Web服务描述

为了了解如何与一个特定的XML Web服务交互利用,需要提供一个描述来定义XML Web服务支持的交互操作。XML Web服务客户端在可以使用一个XML Web服务之间必须了解如何与它交互

XML Web服务连接格式

为了能够进行通用通信,XML Web服务使用开发连接格式来进行通信,这些是任何支持最普通的web标准的系统都能够理解的协议。SOAP是用于进行XML Web服务通信的关键协议

C#创建Web服务(环境:.NET Framework3.0 VS2005

创建一个简单的Web服务,用于说明Web服务的作用和代理类的生成方法

步骤一:新建—>网站—>ASP.NET Web服务

步骤二:项目中生成Service.asmx文件,App_Code/Service.cs。

Service.asmx文件内容:

<%@ WebService Language=”C#” CodeBehind=”~/App_Code/Service.cs” Class=”Service” %>

Service.cs文件内容:

using System;

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols

[WebService(Namespace = http://tempuri.org/)]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class Service : System.Web.Services.WebService

{

public Service() {

//如果使用设计的组件,请取消注释以下行

//InitializeComponent();

}

[WebMethod]

public string HelloWorld() {

return “Hello World”;

}

[WebMethod]

public int Add(int a , int b) {

return a + b;

}

}

步骤三:在浏览器中查看

http://localhost/WebService1/Service.asmx

页面中显示HelloWorld方法和Add方法。点击方法并调用。注意如果方法需要传参,则输入相关参数。最后页面显示出调用结果。

这样,一个简单的WebService就制作好了。接下来就要在其它项目中进行调用,即我们常说的使用代理类(代理类:可以引用远程的Web服务,在用户的应用程序中使用其功能,就像返回的数据是本地生产的一样)

步骤一:添加引用。

可以添加URL(http://localhost/WebService1/Service.asmx),也可以添加dll引用。

添加地址较为简单,VS会有相关提示。主要讲解dll引用的添加

如何生成dll文件?

方法一:选中Web服务,并发布网站,在根目录下找到bin目录,里面有生成的dll。可惜因为VS2005的bug,生成的dll都自动命名为App_Code.dll。可以安装微软提供的Web服务部署工具Web Deployment 。安装完成后,Web服务上右键选择Add Web Deployment Project…就可以正常部署Web项目并生成你想要的dll文件了

方法二:VS2005命令提示

a)       wsdl url /n:namespace

生成和name.asmx相同文件名的C#源文件name.cs

b)      编译第一步生成的cs文件,生成dll

csc /out:name.dll /t:library /r:System.Web.Services.dll directory

/out:name.dll是要输出的dll文件,/t:library是输出文件类型,/r:System.Web.Services.dll是要引用的组件,directory是第一步生成的cs文件所在的路径和文件名,比如D:"name.cs

c)       在需要引用的工程中添加dll引用,即可调用WebService

步骤二:实例化对象

WebService1.Service s = new WebService1.Service();

int temp = s.Add(1,2);

Console.Write(“temp”);

Web服务的发布和部署

部署XML Web服务:

部署一个XML Web服务包括把.asmx文件和任何XML Web服务使用的汇编文件,而不是Microsoft.NET Framework的一部分,复制到Web服务器上

XML Web服务发布的条目

条目

描述

Web应用程序目录

作为你的XML Web服务的根目录。所有的文件都存放在这个目录中。这个目录应该被标记为一个IIS Web应用程式所用

.asmx文件

调用XML Web服务的客户端的基本URL。这个文件可以为任何有效的文件名

.disco文件

(可选的)作为XML Web服务的发现机制。.disco文件不会自动地为XML Web服务创建。这个文件可以为任何有效的文件名

Web.config文件

(可选择的)如果你需要覆盖默认配置设置,可以包含一个web.config文件。XML Web服务使用这个配置文件来允许系统的定制和可扩展性

"Bin目录

包含用于这个XML Web服务的二进制文件。如果你的XML Web服务类和.asmx文件不在同一个目录下,那么包含类的部件必须在"Bin目录中

总结

本文简单的介绍了Web Service的基本概念并给出了一个简单的例子用以理解。Web Service做到了平台无关性,可穿透防火墙,允许开发者方便地重用代码,限制了对数据库的连接,允许用户通过编程的方式访问Internet上的对象等。我们还可以通过Web服务外置数据,确保安全性。

其它的一些用法后面介绍:Web服务的状态,异步Web服务,Web服务中的事务处理,Web服务中的缓存技术和Web服务的性能优化

什么是Web Service

       Web Service是以独立于平台的方式,通过标准的Web协议,可以由程序访问的应用程序逻辑单元。它是一种分布式计算技术,一种自包含、自描述、模块化的应用,可以发布、定位、通过Web调用。一旦部署之后 ,其它Web Service应用程序可以发现并调用它部署的服务。它运用了Web网络技术和基于组件开发的精华成分。DCOM、CORBA和其它基于组件的分布式计算技术都依赖于特定的对象模型协议,而Web Service扩展了这些模型,使之可以和SOAP(简单对象访问协议)以及XML通信以根除特定对象模型协议带来的通信障碍。

下表是DCOM、CORBA和Web Service的比较:

特征

DCOM

CORBA

Web Service

远程过程调用(RPC)机制

分布式计算环境远程过程调用(DCE-RPC)

Internet Inter-ORB协议

超文本传输协议(HTTP)

编码

网络数据表示(NDR)

通用数据表示(CDR)

扩展标记语言(XML)

接口描述

接口定义语言(IDL)

接口定义语言(IDL)

Web服务描述语言(WSDL)

发现

注册库

命名服务与交易服务

通用发现、描述与集成机制(UDDI)

防火墙的友好性

协议的复杂性

跨平台性

部分

Web Service的主要优点是:允许在不同平台上、以不同语言编写的各种程序以基于标准的方式相互通信。。它就是个对外的接口,里面有函数可供外部客户调用。注意Web Service传递的数据只能是序列化的数据,典型的就是XML数据

Web服务三个重点:

一、简单对象访问协议(SOAP)

SOAP是一种基于XML的通信协议,包括三个部分:

1、 SOAP封装结构:定义消息的XML格式,包括整体框架、消息内容、谁处理这些内容等

2、 SOAP编程规则:定义如何将程序数据表示为XML

3、 SOAP RPC表示:定义如何使用SOAP进行远程过程调用

二、Web服务描述语言(WSDL)

1、 是一个XML文档,用于说明一组SOAP消息以及如何交换这些信息

2、 定义了服务的位置以及使用服务的通信协议

3、 可提供更高层次的消息,如Web服务的业务类型和关联关键字等

三、同一描述、发现和继承(UDDI)

1、 Web服务的黄页

2、 其核心组件是UDDI商业注册,它使用一个XML文档来描述Web服务。包括三个部分:

a)         白页:介绍提供服务的公司,包括名称、地址、联系方式

b)        黄页:包括按照标准分类进行分类的行业类别

c)         绿页:细则介绍、访问服务接口等技术信息

SOAP、WSDL和UDDI都基于XML。SOAP使用XML作为其数据编码格式。WSDL使用XML Schema来描述Web服务的结构。UDDI使用XML描述商业实体和Web服务

Web服务基础结构:

基础结构块

职能

XML Web服务目录

XML Web服务目录提供一个中央地址,用于定位其它组织提供的XML Web服务。象UDDI登记这样的XML Web服务目录实现这个职能。XML Web服务的客户端可以引用XML Web服务目录,也可以不引用XML Web服务目录

XML Web服务发现

XML Web服务发现是使用web服务描述语言(WSDL)定位或发现一个或多个描述特别的XML Web服务的相关文档。DISCO规格定义了定位服务描述的规则。如果XML Web服务客户了解服务描述的位置,他们可以绕过发现步骤

XML Web服务描述

为了了解如何与一个特定的XML Web服务交互利用,需要提供一个描述来定义XML Web服务支持的交互操作。XML Web服务客户端在可以使用一个XML Web服务之间必须了解如何与它交互

XML Web服务连接格式

为了能够进行通用通信,XML Web服务使用开发连接格式来进行通信,这些是任何支持最普通的web标准的系统都能够理解的协议。SOAP是用于进行XML Web服务通信的关键协议

C#创建Web服务(环境:.NET Framework3.0 VS2005

创建一个简单的Web服务,用于说明Web服务的作用和代理类的生成方法

步骤一:新建—>网站—>ASP.NET Web服务

步骤二:项目中生成Service.asmx文件,App_Code/Service.cs。

Service.asmx文件内容:

<%@ WebService Language=”C#” CodeBehind=”~/App_Code/Service.cs” Class=”Service” %>

Service.cs文件内容:

using System;

using System.Web;

using System.Web.Services;

using System.Web.Services.Protocols

[WebService(Namespace = http://tempuri.org/)]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class Service : System.Web.Services.WebService

{

public Service() {

//如果使用设计的组件,请取消注释以下行

//InitializeComponent();

}

[WebMethod]

public string HelloWorld() {

return “Hello World”;

}

[WebMethod]

public int Add(int a , int b) {

return a + b;

}

}

步骤三:在浏览器中查看

http://localhost/WebService1/Service.asmx

页面中显示HelloWorld方法和Add方法。点击方法并调用。注意如果方法需要传参,则输入相关参数。最后页面显示出调用结果。

这样,一个简单的WebService就制作好了。接下来就要在其它项目中进行调用,即我们常说的使用代理类(代理类:可以引用远程的Web服务,在用户的应用程序中使用其功能,就像返回的数据是本地生产的一样)

步骤一:添加引用。

可以添加URL(http://localhost/WebService1/Service.asmx),也可以添加dll引用。

添加地址较为简单,VS会有相关提示。主要讲解dll引用的添加

如何生成dll文件?

方法一:选中Web服务,并发布网站,在根目录下找到bin目录,里面有生成的dll。可惜因为VS2005的bug,生成的dll都自动命名为App_Code.dll。可以安装微软提供的Web服务部署工具Web Deployment 。安装完成后,Web服务上右键选择Add Web Deployment Project…就可以正常部署Web项目并生成你想要的dll文件了

方法二:VS2005命令提示

a)       wsdl url /n:namespace

生成和name.asmx相同文件名的C#源文件name.cs

b)      编译第一步生成的cs文件,生成dll

csc /out:name.dll /t:library /r:System.Web.Services.dll directory

/out:name.dll是要输出的dll文件,/t:library是输出文件类型,/r:System.Web.Services.dll是要引用的组件,directory是第一步生成的cs文件所在的路径和文件名,比如D:"name.cs

c)       在需要引用的工程中添加dll引用,即可调用WebService

步骤二:实例化对象

WebService1.Service s = new WebService1.Service();

int temp = s.Add(1,2);

Console.Write(“temp”);

Web服务的发布和部署

部署XML Web服务:

部署一个XML Web服务包括把.asmx文件和任何XML Web服务使用的汇编文件,而不是Microsoft.NET Framework的一部分,复制到Web服务器上

XML Web服务发布的条目

条目

描述

Web应用程序目录

作为你的XML Web服务的根目录。所有的文件都存放在这个目录中。这个目录应该被标记为一个IIS Web应用程式所用

.asmx文件

调用XML Web服务的客户端的基本URL。这个文件可以为任何有效的文件名

.disco文件

(可选的)作为XML Web服务的发现机制。.disco文件不会自动地为XML Web服务创建。这个文件可以为任何有效的文件名

Web.config文件

(可选择的)如果你需要覆盖默认配置设置,可以包含一个web.config文件。XML Web服务使用这个配置文件来允许系统的定制和可扩展性

"Bin目录

包含用于这个XML Web服务的二进制文件。如果你的XML Web服务类和.asmx文件不在同一个目录下,那么包含类的部件必须在"Bin目录中

总结

本文简单的介绍了Web Service的基本概念并给出了一个简单的例子用以理解。Web Service做到了平台无关性,可穿透防火墙,允许开发者方便地重用代码,限制了对数据库的连接,允许用户通过编程的方式访问Internet上的对象等。我们还可以通过Web服务外置数据,确保安全性。

其它的一些用法后面介绍:Web服务的状态,异步Web服务,Web服务中的事务处理,Web服务中的缓存技术和Web服务的性能优化

时间: 2024-10-29 19:05:51

Web Service基础知识的相关文章

Android笔记之 Web Service 基础

一.Web Service是什么? 就是网络服务,根据W3C的定义,WebServices(Web服务)是一个用于支持网络间不同机器互操作的软件系统,它是一种自包含.自描述和模块化的应用程序,它可以在网络中被描述.发布和调用,可以将它看作是基于网络的.分布式的模块化组件.  Web Services是建立在通用协议的基础之上的,包括HTTP.SOAP.UDDI.WSDL等.其中Web Service三要素就是SOAP.WSDL和UDDI. SOAP用来描述传递信息的格式, WSDL用来描述如何访

web前端基础知识学习网站推介

内容:一.基础知识及学习资料1. HTML入门学习:http://www.w3school.com.cn/html/index.aspHTML5 入门学习:http://www.w3school.com.cn/html5/index.asp 2. CSS入门学习:http://www.w3school.com.cn/css/index.aspCSS3入门学习:http://www.w3schools.com/css3/default.asphttp://css3-tutorial.com/ 3.

linux web服务基础知识,dns

Web服务基础 用户访问网站的基本流程 我们每天都会用web客户端上网,浏览器就是一个web客户端,例如谷歌浏览器,以及火狐浏览器等. 当我们输入www.oldboyedu.com/时候,很快就能看到老男孩教育的官网了,这一切看起来很平淡无奇,背后又是什么道理呢?普通人可以不知道,但是咱们作为it开发人员,必须得掌握清楚背后的技术. 下面超哥为你揭晓用户访问网站的基本流程 老男孩教育某python总监,讲了一天课感觉很累,下了班躺床上打开他的macbook pro,双击浏览器,输入www.por

web性能测试基础 知识(引用)

1.1基本概念 并发用户:用户并发一般发生在使用比较频繁的模块中,而且遇到异常通常都是程序的问题. 用户并发数量:在线用户数量是计算并发用户数量的主要依据之一.=使用系统的用户数量*(5%~20%) 并发主要针对WEB服务器而言,是否并发的关键是看用户的操作是否对服务器产生了影响. 吞吐量:一次性能测试过程中网络上传输的数据量的总和. 吞吐率:吞吐量/传输时间,单位时间内网络上传输的数据量,也可以指单位时间内处理的客户端请求数量.吞吐率用“请求数/秒”或者“页面数/秒”来衡量. 点击率:每秒钟用

web前端基础知识总结

上个寒假总结的web前端的一些知识点给大家分享一下 1.<html>和</html> 标签限定了文档的开始和结束点. 属性: (1)  dir: 文本的显示方向,默认是从左向右 (2) lang: 表示整个文档中所使用的语言,en--英文,zh--中文 (3) version:定义创作文档的HTML的标准版本 2.<head></head>用于封装位于文档头部的其他标签 属性: (1) dir:文本的显示方向 (2)  Lang:语言信息 (3)  Prof

web前端基础知识

#HTML 什么是HTML,和他ML... 网页可以比作一个装修好了的,可以娶媳妇的房子. 房子分为:毛坯房,精装修 毛坯房的修建: 砖,瓦,水泥,石头,石子.... 精装修的房子:在毛坯房的基础上进行粉刷,覆盖,雕琢,修饰等操作.... HTML标签 相当于盖毛坯房用的石子,砖瓦....:房子成功,但是不会很好看. CSS属性  相当于装修时候使用的刷子,涂料,扣板...: 可以让毛坯房变得更加美观 HTML 超文本标记语言. HyperText Markup Language HTML标签的

web前端基础知识 - Django进阶

1. 路由系统 1.1 单一路由对应 url(r'^index$', views.index), 1.2 基于正则的路由 url(r'^index/(\d*)', views.index), url(r'^manage/(?P<name>\w*)/(?P<id>\d*)', views.manage), 找到urls.py文件,修改路由规则 from django.conf.urls import url,include from django.contrib import adm

web前端基础知识整理

1.we标准的理解 (1)Web标准规范要求,书写标签必须闭合.标签小写.不乱嵌套(可提高搜索引擎搜索效率,SEO优化). (2)使用外链css和js脚本,从而达到结构与行为.结构与表现的分离,提高页面的渲染速度,能更快地显示页面的内容. (3)样式与标签的分离,使结构与表现分离,更少的代码和组件, 从而降低维护成本.改版更方便 . (4)不需要变动页面内容,便可提供打印版本而不需要复制内容,提高网站易用性 . 2.前端页面的三层结构及其作用 结构层(structural layer)由 HTM

web前端基础知识!

[HTML文档的基本结构和语法][基本结构]: <HTML> HTML 文件开始 <HEAD> HTML 文件的头部开始 <title> 网页的标题</title> ...... ...... HTML文件的头部内容 </HEAD> HTML文件的头部结束 <BODY> HTML文件的主体开始 ...... ...... HTML文件的主体内容 </BODY> HTML文件的主体结束 </HTML> HTML文