zoukankan      html  css  js  c++  java
  • WCF概念

    WCF 概念

    WCF是.NET Framework 上灵活通讯技术。在.NET 3.0推出之前,一个企业解决方案需要几种通讯方式。对于独立于平台的通讯,使用ASP.NET Web服务。对于比较高级的 Web 服务-可靠性、独立于平台的安全性和原子事务等技术-Web Service Enhancements 增加了ASP.NET Web 服务的复杂性。如果要求通讯比较快,客户和服务都是.NET 应用程序,就应使用.NET Remoting 技术。 .NET Enterprise Services 支持自动事务处理,它默认使用DCOM 协议,比用.NET Remoting 快。 DCOM也是允许传递事务的唯一协议。所有这些技术都有不同的编程模型,这些模型都需要开发人员有许多的技巧。

    .NET Framework 3.0 引入了一种通讯技术WCF,它包含上述技术的所有功能,把他们合并到一个编程模型中:Window Communication Foundation(WCF)。

    本章介绍的明明空间是System.ServiceModel。

    WCF合并了ASP.NET Web服务、.NET Remoting 、消息列队和Enterprise Service 的功能,WCF 的功能包括:

    存储组件和服务

    与联合使用自定义主机、.NET Remoting 和 WSE 一样,也可以将WCF 服务存放在ASP.NET运行库、WINDOW服务、COM+进程 或 WINDOW 窗体应用程序中。

    声明行为

    不要求派生自基类(.NET Remoting 和 Enterprise Service 有这个要求),也可以使用属性定义服务。这类似于用ASP.NET开发Web服务。

    通信信道

    在改变通信信道方面,.NET Remoting 非常灵活,WCF 也不错 ,因为它提供了相同的灵活性。WCF提供了用HTTP、TCP和IPC 信道进行通信的多条信道。也可以创建使用不同的传输协议的自定义信道。

    安全结构

    为了实现独立于平台的Web服务,必须使用标准化的安全环境。所提出的标准用WSE 3.0 S实现,这在WCF中被继承下来。

    可扩展性

    .NET Remoting 有丰富的扩展功能。他不仅能创建自定义信道、格式化程序和代理,还能将功能注入客户端和服务器上的消息流。WCF提供了类似的可扩展性。但是WCF的扩展性用SOAP标题创建。

    支持以前的技术

    要使用WCF,根本不需要完全重写分布式解决方案,因为WCF可以与已有的技术集成。WCF提供的信道使用DCOM与服务组件通信。用ASP.NET开发的Web服务也可以与WCF集成。

    最终目标是通过进程和不同的系统、通过本地网络和通过Internet 收发客户和服务之间的消息。

    如果需要以独立于平台的方式尽快收发消息,就应这么做。在远程试图上,服务提供了一个端点,她用协定、绑定和地址来描述。协定定义了服务提供的操作,绑定给除了协议和编码信息,地址是服务的位置。呵护需要一个兼容的端点来访问服务。

    客户调用代理上的一个方法。代理提供了服务定义的方法。但把方法调用转换为一条消息,并把该消息传输倒信道上。信道有一个客户端部分和一个服务器端部分,他们通过一个网络协议来通信。在信道上,吧消息传递给调度程序,调度程序再把消息转换为用服务调用的方法调用。

    WCF支持几个通信协议。为了进行独立于平台的通信,需要支持Web服务标注。要在.NET应用程序之间通讯,可以使用较快的通信协议,其系统开销较小。

    下面几节介绍独立于平台的通讯所使用的核心服务的功能。

    SOAP

    为了记性独立于平台的通讯,可以使用SOAP协议,它得到WCF 的直接支持。

    WSDL

    文档描述了服务的操作和信息。

    REST

    WCF还提供了使用REST进行通信的功能。REST并不是一个协议,但定义了使用服务访问资源的几条规则。支持REST的Web服务是基于HTTP协议和REST规则的简单服务。

    JSON

    除了发送SOAP消息之外,从Javascript中访问服务最好使用JSON。.NET包含一个数据协定序列化程序,可以用JSON标记创建对象。

    名称:多罗贝勒
    博客地址:http://www.cnblogs.com/objctccc/
    欢迎转载

  • 相关阅读:
    Java 简单算法--打印乘法口诀(只使用一次循环)
    Java简单算法--求100以内素数
    ubuntu 16.04 chrome flash player 过期
    java 网络API访问 web 站点
    java scoket (UDP通信模型)简易聊天室
    leetcode1105 Filling Bookcase Shelves
    leetcode1140 Stone Game II
    leetcode1186 Maximum Subarray Sum with One Deletion
    leetcode31 Next Permutation
    leetcode834 Sum of Distances in Tree
  • 原文地址:https://www.cnblogs.com/objctccc/p/6139553.html
Copyright © 2011-2022 走看看