菜鸟学习WCF笔记-概念
背景
WCF这个词语一直不陌生,以前也使用过多次在实际的项目中,但是一直没有时间来做个系统的学习,最近抽点时间,看看 蒋金楠的《WCF全面解析》学习下,顺带做些笔记,如有错误,欢迎各路大神指正。
本章意在对Windows通信编程涉及到的相关词汇进行一个大概的理解不深究。
参考:http://baike.baidu.com/view/1140438.htm?fr=aladdin(不得不说百度百科,维基百科等资料很丰富),《WCF全面解析》。
WCF介绍
Windows Communication Foundation(WCF) 直译:Windows通信基础
它是.NET框架的一部分,由 .NET Framework3.0 作为一个组件发布,为顺应SOA发展潮流,整合原有的Windows通讯的.NET Remoting,WebService,Socket,MSMQ 等技术的机制(WCF是对现有分布式通信技术的整合),并融合有HTTP和FTP相关技术。
SOA面向服务架构
面向服务(Service Orientation,SO)代表的是一种设计理念,和面向对象,面向组件一样,体现的是一种思想,与技术无关。
面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
WSDL,UDDI和SOAP是SOA基础的基础部件。
WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。
SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。
Universal Description Discovery and Integration即统一描述、发现和集成协议。企业可以使用它对 Web services 进行注册和搜索。
简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。
它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。
在过去若干年终,微软先后推出了一系列分布式通信技术,比较典型的包括COM/DCOM,Enterprise Service、.NET Remoting、XML Web 服务、MSMQ等。
COM和DCOM
COM 是微软自1993年便提出的组件式软件平台,用来做进程间通信(Inter-process communication, IPC)以及当作组件式软件开发的平台。
DCOM 支持不同的两台机器上的组件间的通信,而且不论它们是运行在局域网、广域网、还是Internet上。是为了实现分布式远程调用而对COM进行的扩展。
.NET Remoting
.NET Remoting 是微软推出的第一个基于.NET的分布式通信技术,它在一定的程度上借鉴了DCOM的设计,并加强了DCOM很多方面,使其可以成为一个高性能和可扩展的分布式通信框架。但是它不能提供跨平台支持,仅仅提供服务端和客户端均处于.NET平台下的通信。
笔者最近有研究一下,如有问题欢迎各路大神指正:http://i.cnblogs.com/EditPosts.aspx?catid=615438
Web服务
为了实现跨平台支持,微软推出了ASP.NET Web Service,Web Service之所以能够提供跨平台的互操作性,是因为它建立在一系列开放的标准之上,这些标准包包括XML,XSD,SOAP,WSDL等。
XML
XSD
XML Schema Definition,它的作用是定义一份XML文档的合法组件群,就像文档类型定义(外语缩写:DTD)的作用一样。可扩展标记语言架构是以可扩展标记语言(标准通用标记语言的子集)为基础的,它用于可替代文档类型定义(外语缩写:DTD);一份XML schema文件描述了可扩展标记语言文档的结构,比 DTD 更强大。
WSDL
网络服务描述语言是一个用来描述Web服务和说明如何与Web服务通信的XML(标准通用标记语言的子集)语言。为用户提供详细的接口说明书。
WSDL是Web Service的描述语言,是一种接口定义语言,用于描述Web Service的接口信息等。
WSE
为了支持WS-*,微软在ASP.NET Web 服务的基础上推出了WSE(Web Services Enhancements) ,推出WSE是为了弥补ASP.NET Web Service 的不足,它在很多方面实现了对现有ASP.NET Web Service服务功能的加强。
WS-*
为扩展WEB服务能力,一些新的标准已经或正在被开发。这些标准通常被冠以WS字头(Web Service的简称),以下是一个WS系列追加标准的不完全列表:
- WS安全(WS-Security)
定义了如何在SOAP中使用XML加密或XML签名来保护消息传递。可作为HTTPS保护的一种替代或扩充。
- WS信赖性(WS-Reliability)
一个来自OASIS的标准协议,用来提供可信赖的WEB服务间消息传递。
- WS可信赖消息(WS-ReliableMessaging)
同样是一个提供信赖消息的协议,由Microsoft, BEA 和IBM发布。目前OASIS正对其实施标准化工作。
- WS寻址(WS-Addressing)
定义了在SOAP消息内描述发送/接收方地址的方式。
- WS事务(WS-Transaction)
- 定义事务处理方式。
MSMQ
消息队列,是微软对消息服务领域的开创性尝试,它采用了特殊的通信机制,对改善和提高系统的可伸缩性、可用性具有重要的意义。
优点:离线通信方式支持,发送方和处理方分离,可靠消息传输和错误处理,对事务的支持。
总结
笔记写的有点乱,只是把相关的介绍和概念写出,如有错误欢迎指正。
作者:释迦苦僧 出处:http://www.cnblogs.com/woxpp/p/4013670.html 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
菜鸟学习WCF笔记-概念的更多相关文章
- 菜鸟学习WCF笔记-契约(Contract)
契约,契约确保了服务的正常调用,客户端以契约的方式进行服务端调用,而服务则需要按照契约规定的方式提供服务. 契约是服务提供的一组操作的描述 功能上讲:每个操作对应着某个具体的功能实现,以及调用这个操作 ...
- 菜鸟学习WCF笔记-Address
终结点是WCF最为核心的对象,因为它承载了所有通信功能.服务通过相应的终结点发布出来,客户端通过与之匹配的终结点对服务进行调用.终结点有地址.绑定和契约ABC三要素构成. Address 作为终结点 ...
- WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]
WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...
- 学习WCF笔记之二
一.学习文章http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html 二.步骤 学习WFC,按照大神的文章一步步学习,不过 ...
- 开心菜鸟学习系列笔记-----Javascript(1)
js 一些常见的使用方法 // target : 不管是否出现冒泡,他都是代表最开始引发事件的对象 // this : 是指当前函数. //ie 事件对象 : window ...
- 开心菜鸟学习系列学习笔记------------nodejs util公共函数
global 在最外层定义的变量: 全局对象的属性: 隐式定义的变量(未定义直接赋值的变量). 一.process process 是一个全局变量,即 global 对象的属性 ...
- 每天成长一点---WEB前端学习入门笔记
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...
- WCF 笔记 (2) - 传输泛型 List 对象
WCF 笔记 (2) - 传输泛型 List 对象 本帖介绍怎么在 WCF 中,在 Server-side 和 Client-side 之间,传递默认无法传输的 List<T>.List& ...
- 深度学习word2vec笔记之算法篇
深度学习word2vec笔记之算法篇 声明: 本文转自推酷中的一篇博文http://www.tuicool.com/articles/fmuyamf,若有错误望海涵 前言 在看word2vec的资料 ...
随机推荐
- java1.7集合源码阅读: Vector
Vector是List接口的另一实现,有非常长的历史了,从jdk1.0开始就有Vector了,先于ArrayList出现,与ArrayList的最大区别是:Vector 是线程安全的,简单浏览一下Ve ...
- AngularJS学习--- AngularJS中数据双向绑定(two-way data-binding) orderBy step4
1.切换工作目录 git checkout step- #切换分支,切换到第4步 npm start #启动项目 2.代码 app/index.html Search: <input ng-mo ...
- iptables配置允许vpnserver(softether vpn)
防火墙配置 -A INPUT -p udp -m multiport --dport ,,,, -j ACCEPT
- BigDecimal类的加减乘除
Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算. 双精度浮点型变量double可以处理16位有效数,但是在实际应用中,需要对更大或者更小的 ...
- 自己随意写了个简单的依赖jquery的轮播图
//轮播图 function Switcher(obj){ this.box = $(obj.box); this.width = this.box.width(); this.banner = $( ...
- hihoCode 1078 : 线段树的区间修改
#1078 : 线段树的区间修改 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题 ...
- StringGrid 实例4 本例功能: 1、给每个单元格赋值 2、调整当前单元格位置:上下左右;
实例4 本例功能:1.给每个单元格赋值 2.调整当前单元格位置:上下左右: 运行效果图:
- PopupWindow
以前对于提示类型UI用到了PopupWindow 通过构造函数或者setContentView(View contentView)可以设置其显示内容: 显示时showAtLocation(View p ...
- CMMI整体理解
CMMI的目的,一是质量,二是时间表,三是最低的成本:我的理解就是即以最低的成本,在既定的时间表要求下,达到相应的质量水平. CMMI是什么?我的理解是,CMMI并不是一个过程说明书,它不是告诉我们怎 ...
- BZOJ 4247: 挂饰 题解
Description JOI君有N个装在手机上的挂饰,编号为1...N. JOI君可以将其中的一些装在手机上. JOI君的挂饰有一些与众不同--其中的一些挂饰附有可以挂其他挂件的挂钩.每个挂件要么直 ...