Duwamish Web Services分析篇

Duwamish 7.0 web 项目中提供了一个 Web Service service/catalogservice.asmx ),以向 Internet 公开它的书目录搜索功能。 CatalogService Web Service 由一个 asmx 文件和一个代码隐藏文件组成,其中 ASMX 文件充当调用 Web Services 的客户端的基 URL ,代码隐藏文件包含实现 Web 服务的代码。不过,在整个 Duwamish 项目中并没有调用该 web service ,正如以前的 POST 中所提及的:
If you need to communicate between applications (even .NET apps) then use web services. Note this is not between tiers, but between applications – as in SOA (Service-Oriented Architecture). SOA is not useful INSIDE applications. It is only useful BETWEEN applications.
 
1. Web Services 概述
Web Services 既可以在内部由单个应用程序使用,也可通过 Internet 公开以供外部的应用程序使用。由于可以通过标准接口访问,因此 Web Services 使异类系统能够作为单个计算网络资源协同运行。
Web Services 并不追求一般的代码可移植性功能,而是为实现数据和系统的互操作性提供了一种可行的解决方案。 Web Services 使用基于 XML 的消息处理作为基本的数据通讯方式,以帮助消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异。开发人员可以用像过去在创建分布式应用程序时使用组件一样的方式创建将来自各种平台的 Web Services 组合在一起的应用程序。
Web Services 的核心特征之一是服务的实现与使用之间的高度抽象化。通过将基于 XML 的消息处理机制, Web Services 客户端和 Web Services 提供程序之间除输入、输出和位置之外无需互相了解其他信息。
Web Services 向外界发布出一个能够通过 Web 进行调用的、平台无关的 API 。也就是说,你能够在任何你喜欢的平台上,用编程的方法通过 Web 来调用这个应用程序,进行基于 Web 的分布式计算和处理。 Web Services 平台是一套标准,它定义了应用程序如何在 Web 上实现互操作性。 Web Services 平台采用 XML 来表示数据的基本格式,采用 W3C 制定的 XML Schema(XSD) 来作为其数据类型系统。
组成 Web Services 平台的三个核心的技术规范分别为 SOAP WSDL UDDI SOAP 规范定义了 SOAP 消息的格式,以及怎样通过 HTTP 协议来使用 SOAP ,来执行 Web Services 的调用。 WSDL Web Services 描述语言)用来描述 Web Services 。因为其基于 XML ,所以 WSDL 文档既是机器可阅读的,又是人可阅读的。 UDDI (统一描述,发现和集成协议)标准定义了 Web Services 的发布与发现的方法。
从技术的角度来看, Web Services 可以被认为是一种部署在 Web 上的对象( Web Object ),因此,具有对象技术所承诺的所有优点;同时, Web Services 的基石是以 XML 为主的、开放的 Web 规范技术,因此,具有比任何现有对象技术更好的开放性。
 
2. Duwamish 中的 CatalogService Web Service
(1)CatalogServer.asmx文件中仅包含一行代码:
<%@ WebService Language="c#" Codebehind="CatalogService.cs" Class="Duwamish7.Web.Service.CatalogService" %>
 
2 CatalogService.cs 代码隐藏文件包含实现 web service 的代码:
CatalogService Web 服务实现 GetBooksByTopic GetBooksByTopicSecure Web 方法,返回值为 DataSet 类型(支持 XML 编码和序列化)。 Web Service 发布的上述 Web 方法均都有 WebMethodAttribute
 
WebMethodAttribute 向使用 ASP.NET 创建的 XML Web services 中的某个方法添加此特性后,就可以从远程 Web 客户端调用该方法。
 
另外还有一些辅助的 class 和方法(调用 BusinessFacade tier ),代码比较简单。
 
3 Web.config 配置文件 <webServices> 元素:可以配置使用 ASP.NET 创建的 XML Web services 的设置。
 
 
3. Summary
Web Services 不仅可用于异构平台的相互集成,也是分布式应用开发的一种技术。 Microsoft 在推 .Net Framework 时,尽心尽力吹捧这项技术,并冠以 XML Web Services 。不过由于 Web Services 的性能不好的问题,感觉目前在企业内部应用并不多,估计还不及 .Net Remoting 技术的应用。
Microsoft 还有一个 Web Services 的增强软件开发包: Web Services Enhancements (WSE) Version 2.0 ,主要提供如下特性:安全特性(数字签名和加密),消息路由,消息附件等等,从 Reference 1 可以下载。
现在, Web Services 方面的相关规范很多,如 WS-Security, WS-Policy, WS-Trust, WS-SecureConversation…… ,令人目不暇接,在不断地向前发展。从另外一个方面也表示, Web Services 技术目前在企业应用方面还不够成熟。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值