zoukankan      html  css  js  c++  java
  • 第三十五 ASP.NET和Web服务(二)

    *摘要
    。异步Web服务
    。Web服务中的事务处理
    。Web服务中的缓存技术
    。WSE技术

    * Web服务
    。Web Service是在Internet上进行分布式计算的基本构造块。
    。WebService就是一个对外的接口,里面有函数可供处部客户调用
    。WebService传递的数据只能是序列化的数据,典型的就是XML数据。
    。WebService体系结构的主要优点之一是:允许在不同平台上,以不同语言编写的各种程序以基于标准的方式相互通信。
    。我们可以将XML Web Service定义为:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

    * 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服务通信的关

    键协议。

    * 同步处理
    。同步化操作:由前后紧接的组件或函数调用组成。一个同步化调用会阻塞整个进程直到这一个操作完成。
    * 异步处理
    。异步化操作:不会阻塞启动操作的调用线程。调用程序必须通过轮流检测,软件中的中断信号或只是明确地等待完成信号来发现调用的完成。

    * 异步Web服务
    。.NET Framework为支持异步化编程模型提供了必要的服务
    。决定特定的调用是否应该异步处理的是客户机的代码
    。不需要进行额外的编程
    。CLR提供了类型安全
    。代理类提供了BeginInvoke和EndInvoke方法来支持异步处理。


    * 什么是事务处理?
    。事务是一个组组合成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。
    。如果在事务过程中没有遇到错误,事务中的所有修改将永久成为数据库的一部分。
    。如果遇到错误,则不会对数据库作出任何修改。

    * Web服务和事务处理
    。支持Web服务的事务利用公共语言运行期中的支持,其是基于Microsoft Transaction Server(MTS)和COM+ Services中相同的分布式事务模型。该模型基于明确的判断一个对象是否参与一个事务,而不是编写特定的代码用来处理委托和回调一个事务。
    。对于一个使用ASP.NET创建的XML Web服务,你可以通过设置其应用到一个XML Web服务方法上的WebMethod属性的TransactionOption属性来声明一个XML Web服务的事务行为。如果该XML Web服务方法执行的进修抛出一个异常,那么该事务自动地结束:相反,如果没有发生异常,该事务自动委托。
    。[WebMethod(TransactionOption=TransactionOption.RequiresNew)]

    * TransactionOption属性
    。Disabled(默认)指示XML Web Services方法不在事务的范围内运行。当处理请求时,将在没有事务的情况下执行XML Web Services方法
    。NotSupported:指示XML Web Services方法不在事务的范围内运行。当处理请求时,将在没有事务的情况下执行XML Web Services 方法
    。Supported:指示XML Web Services方法不在事务范围内运行。当处理请求时,将在没有事务的情况下创建XML Web Services.
    。Required:指示XML WSb Services方法需要事务。由于Web服务方法只能作为根对象参与事务,因此将为Web服务方法创建一个新事务。
    。RequiresNew:指示XML Web Services 方法需要新事务。当处理请求时,将在新事务内创建XML Web Services。

    * 缓存技术
    1、什么是缓存技术?
    缓存是计算机快速地再次获得数据地方式。
    2、缓存原理
    将经常访问地数据存储到计算机可以更快,更容易地读取地位置。

    3、什么时候用缓存?
    。使用缓存的情况
    1)、缓存那些经常被访问、并且变化不大的数据
    2)、缓存整个应用程序都要使用的设置或对象(但这些设置和对象必须在其生存期内不变化)
    。不应该使用缓存的情况
    1)、不要缓存个人信息,以防止别人盗用。
    2)、不要缓存包含时间的页面
    3)、不要缓存用户随时都会修改的对象,如购物车。

    4、Web服务中的缓存
    。ASP.NET有两种用于WEB应用的缓冲技术:
    -输出缓冲指:把一次请求所产生的动态输出保存于内存中。
    -数据缓冲指:按照一定的策略把事先不确定的对象保存于内存中。它允许页面保存和索引HTTP请求所要求的各种各样的对象。
    。这ASP.NET中的缓存技术在Web服务中都可以断续使用。只是使用方法有一些区别。

    * Web Services Enhancements
    。Web Service技术的基础核心是XML,而在XML中多数情况下传递的都是文本格式的数据流。如何传递非文本格式的数据流?如果是以十进

    制或者base64编码方式,则附件大小会增加30%!
    。WSE技术是微软发布的一种针对Web Service技术的增强技术,通过它可以使得广大的基于.NET平台的开发人员将安全、路由、附件等技术同WebService技术完美地结合在一起。
    。WSE是一个独立的软件开发包,下载地址:
    。VS2002,下载WSE1.0 sp1; VS2003可以下载 WSE2.0 sp3; vs2005下载 WSE3.0


    * WSE
    。WSE技术主要提供了对如下几个Web Service技术规格的支持:
    -WS-Securiry;保证Web服务安全的规范;尤其是在消息完整性,消息机密性和单独消息认证方面。WS-Security规范是由Microsoft,IBM,和Verisign联合制定并提交OASIS批准的。
    -WS=Routing:定义了路由SOAP消息的机制。
    -WS-Attachments:在WSE技术中对于附件是采用DIME规范来进行消息的打包和传送的。DIME是Internet直接消息打包的缩写。WS-Attachments规格则是定义了如何使用DIME在SOAP消息中包含附件以及如何在DIME数据报中引用这些附件。

    * SoapContext类
    。在WSE技术中,一个非常重要的类就是SoapContext。该类提供了对WS-Security,WS-Routing,WS-Attachments的存取实现支持。

    SoapContext类提供对SOAP请求和SOAP响应的两方面的支持。
    。SoapContext是一个密封类,即一个不能被继承的类。
    。在服务端通过HttpSoapContext.RequestContext和HttpSoapContext.ResponseContext存取;
    。在客户端通过WebServicesClientProtocol的成员属性RequestSoapContext和ResponseSoapContext获得。


     

  • 相关阅读:
    簇索引与非簇索引在查询中的应用与分析(转载) dodo
    都是防火墙惹的祸:sqlserver连接服务器数据库提示注册失败 dodo
    C#中如何将字符串转换成流,同时如何将流转换成字符串? dodo
    dataType参数不能为空,未处理的“System.ArgumentNullException”类型的异常出现在 mscorlib.dll 中 dodo
    错误(Client does not support authentication protocol requested by server; consider upgrading MySQL client)? dodo
    php分页函数(转) dodo
    c#2.0匿名方法三(转) dodo
    ASP.NET 2.0 中改进的缓存功能(转) dodo
    解决apache服务器默认编码为西欧编码的问题 dodo
    常用的正则表达式 dodo
  • 原文地址:https://www.cnblogs.com/iceberg2008/p/1434811.html
Copyright © 2011-2022 走看看