一、概述
WebService是一种跨编程语言和跨操作系统平台的远程调用技术。通过Web Services可以使运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可以相互交换数据或进行集成。因此,无论应用之间采用什么语言、平台或内部协议,都可以方便地进行数据的交换。
Web Services是基于一些常规的产业标准和已有的成熟技术,如XML和HTTP等开放式Web规范技术,因此,它具有很好的开放性和互操作性。此外,Web Services的协议、接口和注册以松耦合方式协同工作,减少了应用程序接口的花费,为整个企业间业务流程集成提供了一个通用机制。
二、特点
良好的封装性:Web Services是一种部署在Web上的对象,因此具有对象的特点,即良好的封装性。这样服务使用者只能看到对象提供的通用接口和功能列表,而不用关心服务的实现细节。
松耦合:只要Web Services的调用接口不变,其内部变更对调用者来说是透明的。使用标准协议规范Web服务是基于XML的消息交换机制,其所有公共的协约都采用Internet开放标准协议进行描述、传输和交换。相比一般对象而言,其调用更加规范化,便于机器理解。
高度可集成性:由于Web Services采取简单的、易于理解的标准协议作为组件描述,因此完全屏蔽了不同软件、平台的差异,使它们之间可以通过Web Services来实现互操作。
易于构建:要构建Web Services,开发人员可以使用任何常用的编写语言(如Java、C#、C/C++或Perl等)及其现有的应用程序组件。
三、技术架构(主流的Web服务实现方案)
基于SOAP的协议栈,要包括SOAP、WSDL、UDDI等技术,SOAP 消息是 Web 服务的工作 基础,定义了信息传输的方式。
一般Web Services角色包括服务提供者、服务注册中心和服务使用者:
服务提供者注册和发布自己的服务在服务注册中心中,并对服务请求进行响应;
服务注册中心担任中介的作用,一边接收服务提供者发来的服务,一边供服务提供者在其统一目录中查找合适的服务;
服务使用者是根据具体的应用需求调用服务的。
在典型情况下,服务提供者托管可通过网络访问特定的软件模块,定义Web Services的服务描述并将服务发布到服务注册中心统一目录中;服务请求者使用查找操作从注册中心中检索特定的服务,然后使用服务描述与服务提供者进行绑定并调用相应的服务。
四、WSDL
Web 服务描述语言 (WSDL) 是由 Microsoft 和 IBM 合作开发的一种基于 XML 的协定语言。 当给定一个 Web 服务时,最好有一种标准方法将 Web 服务接受和生成的消息归档,即将 Web 服务协定归档。一种标准的机制可以让开发人员和开发工具更加便利地创建和解释协定。
definitions 元素:WSDL 文档的根元素
types 元素:定义消息中的各种数据类型
message 元素:描述通信中使用的消息
portType 元素:定义操作消息以及与操作相关的消息
binding 元素:定义每种操作使用的协议以及描述消息使用的转换方法
service 元素:定义了协议端点
五、代码实例
实现实例代码:
namespace EricWebService
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class Service1 : System.Web.Services.WebService
{
[WebMethod(Description="求和")]
public int AddNum(int a, int b)
{
return a+b;
}
}
}
调用实例代码:
protected void Button1_Click(object sender, EventArgs e)
{ string selectFlag = selectOper.Value;
localhost.Service web = new localhost.Service();
if (selectFlag.Equals("+"))
{
Result.Text =(web.AddNum
(double.Parse(Num1.Text),
double.Parse(Num2.Text))
).ToString();
}
}