• WCF之初探


    WCF是什么东东?

       WCF,是.NET Framework 3.0中的四个组件之一,是微软专门针对面向服务(Service Oriented)应用程序提供的一个分布式编程框架,可以使用托管代码建立和运行SOA的软件系统。它使得开发者能够建立一个跨平台的、安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和MSMQ,并且从分整合了.Net Remoting/Asp.Net/Xml/Web Service/MSMQ/WSE/Enterprise Service等多项分布式技术,取其精华,弃其糟粑 。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML,Kerberos,X509,用户/密码,自定义等多种标准与模式。全称"Windows Communication Foundation".

    整个WCF的架构结构图下图所示(图片来源http://dev.yesky.com/402/8079902.shtml

             

    WCF整个架构层次简单的说明:

          Contracts(契约):契约定义了整个消息系统的各个方面。而WCF契约有分好多种,数据契约描述了服务传递的每个消息的具体参数消息契约使用SOAP来定义消息的具体格式服务契约定义服务接口的方法签名而策略和绑定规定访问服务的通信条件。(这些具体的契约我们后续一起慢慢完善它,先了解了解哈!大牛Artech等博客上都有详细的描述哈)。

          Service Runtime(服务运行时):服务运行时包含了在对服务进行实际操作时才发生的一些行为,即是服务的运行时行为。WCF也分好几种,节流阀行为(Throttling Behavior),控制着有多少消息能被处理错误行为(Error Behavior)设定服务出现内部错误时,控制哪些信息被传递到客户端元数据行为(Metadata Behavior)控制着哪些元数据暴露给外部实例行为(Instance Behavior)控制着能运行多少服务的实例事务行为(Transaction Behavior)在出现错误时保证事务操作能回滚调度行为(Dispatch Behavior)控制着消息如何被整个WCF基础结构进行处理并发行为(Concurrency Behavior)控制在服务运行的并发处理;参数过滤器(Parameter Filtering)控制着参数的过滤条件。

         Messaging(消息):消息层实际上由一些通道(Channel)所组成。所谓通道,就是一个以特定方式处理消息的组件。一系列的通道串联起来就成为通道栈通道分为两种类型,协议通道和传输通道。协议通道有:WS安全协议通道(WS-Security Channel)、WS消息可靠性协议通道(WS-Reliability Channel)。传输通道有:HTTP通道(HTTP Channel)、TCP通道(TCP Channel)、命名管道通道(NamedPipe Channel)和消息队列通道(MSMQ Channel)。另外还有些编码通道(Encoders Channel)和事务流通道(Transaction Flow Channel)作为辅助,有兴趣的朋友可以更深的了解了解。

        Hosting and Activation(宿主和激活):服务必须在一个执行程序中运行。服务一般托管在外部可执行程序里面,如IIS和Windows激活服务(Windows Activation Service,WAS)。

    以上由博客园辉太整理.

  • 相关阅读:
    在LINQTOSQL中实现“级联删除”的方法
    “BindingNavigator”如何在删除前弹出确认框?
    OOP设计思考——究竟是继承自普通类,还是继承自抽象类?
    ASP.NET控件为什么无法使用结构?
    如何消除Web自定义控件的“自生成”复合属性的冗余类名称?
    用C#动态输出js单引号问题
    关于ready和load方法作用于不同情况下的比较
    关于CodeSign error : Certificate identity 'iPhone Distribution *** : ...问题
    [iOS]Xcode4/iOS5调试UncaughtException崩溃First throw call stack不打印方法名的解决方案
    Lion版本Mac OS下查看iPhone Simulator目录
  • 原文地址:https://www.cnblogs.com/aaronguo/p/2532009.html
Copyright © 2020-2023  润新知