一步一个脚印学习WCF之一WCF概要(上)之WCF与SOA

 一: WCF与SOA

    1:什么是WCF?

    .Windows Communication Foundation

      WCF全称叫做Windows Communication Foundation(Windows 通信 基础),从全称可以看到是为我们提供基于Windows平台下关于通信方面的一个基础架构,利用这个WCF我们能够实现基于Windows平台下的各种通信技术的开发以及应用。

    .NET FrameWork 3.0的组成部分

    WCF本身是.NET FrameWork 3.0的组成部分之一,从图一中大家可以看到WCF和WF,WPF,CardSpace一样都作为.NET FrameWork 3.0的组件存在于.NET FrameWork 3.0当中的,在Windows Vista和Windwos Server 2008操作系统当中,WCF作为操作系统的一部分存在的,也就是说如果你现在使用的是这两个操作系统,意味着你现在操作系统本身已经支持WCF了,如果你是Windows XP或者Windows Server 2003操作系统的话,要使用WCF的话请去微软网站上下载.NET FrameWork 3.0,就可以在开发当中使用WCF的特性了。

                    

                                图一

    .Microsoft平台上的SOA架构

    WCF能给我们带来哪些好处或者说它具体的作用是什么?WCF是Microsoft平台上的一个SOA架构,主要作用是构建分布式和可交互操作的应用程序。

    .统一ASMX,.NET Remoting,Enterprise Service的开发模型

    它的一个最大的特点是把以前的多种的开发模型统一了起来,在WCF以前的话,我们要开发一个分布式的系统的话,我们可以使用ASMX也可以使用NET Remoting等,对于不同的问题我们要使用不同的开发模型来解决,这样的话给我们带来了一个问题,就是说作为我们开发人员来说,我们在解决不同的问题要学习不同的技术,这样无疑为了我们增加了学习量,WCF的出现统一了各种不同的开发模型,使得我们在一个统一的编程模型当中来使用不同的技术去解决不同应用中的需求,它的另外一个特点是在WCF当中它把配置提高到了非常灵活的一个层面,像一些协议的选择,消息的格式,进程的分配等等我们可以通过配置文件来完成。

    .面向服务

    WCF是面向服务的基础架构。

    .松耦合

    在传统的分布式应用程序当中,如果我们有新的需求或者说我们的部署环境发生了变化的话,我们要去修改我们的代码,我们的项目需要编译,需要重新在客户的生产服务器上来部署,这样给开发人员和客户带来了非常麻烦的工作。现在在WCF当中我们只需要修改配置文件就可以了。

    .可交互

    WCF提供了非常好的可交互性,可交互性主要体现在两个方面,第一个方面是遵循基于Web Services的核心标准,这种核心标准实际上是WS*的行业的Web Services标准,这方面的好处体现在,我们利用WCF构建出来的Web Service它具有了很强的跨平台的特性。也就是说我们这个服务是利用WCF构建的,那么我们使用了行业认可的WS*这种标准的核心协议,使用其他技术来构建的客户端可以无障碍的来访问基于WCF构建的服务或者Host,WCF在设计的时候充分考虑了可扩展性的需求,一但出现新的协议,或者原有的协议发生改变,WCF能够快速的更新。

    .整合性

    把早期的微软的一些构建分布式应用程序的技术,整合成WCF。

  2:WCF与SOA之间的关系

    .WCF与SOA之间的关系

    大家看这个图二,下面这个图二是典型的三层架构图,分为客户层,业务逻辑层,数据访问层,客户层调用业务逻辑层,业务逻辑层根据不同的业务进行处理,当涉及数据访问的时候,会调用下面的数据访问层,来进行数据的获取和更新,这样就存在一个问题,客户层和业务逻辑层是直接暴露的,这种直接暴露的关系一方面会与具体的技术产生强烈的耦合性,比如说我们的业务逻辑层是使用Com技术来构建的,那么客户层就必须使用Com的方式来访问业务逻辑层。随着Web Service的发展,现在基于SQA的架构是在业务逻辑层和客户层之间,我们封装成一个Service层(服务层)如图三,这个服务层里面,它把一个一个业务逻辑封装成为Service暴露给用户,Web Service是通过http协议来走的,并且由于Web Service是行业标准的一个协议,就破除了前面所讲的基于技术强烈的耦合性。另一方面非SOA架构,比如面向对象的设计中,作为业务逻辑层而言它暴露给客户层的是一个一个的对象以及一个一个方法,面对一些比较复杂的业务逻辑,可能会涉及到多个对象以及多个方法的互操作,由于在传统的非SOA架构下业务逻辑层与客户层是直接暴露的关系,客户层的开发人员会直接看到业务逻辑层的相应对象以及相应的方法,在SOA出现以后呢,通过服务层它可以把一个一个对象封装成一个服务,通过把这个服务暴露给客户层,再有客户层的开发人员调用这些服务最终来满足用户的需求,这样当用户的相应的业务逻辑大发生变化的时候,我们只需要修改业务逻辑层里面相应的代码,只要我们的服务没有发生变化我们的服务就不需要去进行修改,也就意味着客户层不需要去修改,这样的话客户层和业务逻辑层就形成了松耦合的关系。

                              

图二
图三

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值