SOA与WCF
背景:
高校平台马上就要进入编程阶段了,对于没怎么做过正式项目的我们来说,要学的东西实在太多了。一下子面对这么多学习资料时,我们也不能着急,还是踏踏实实,一个一个地去了解,其实他们都没那么神秘。这篇博客主要介绍SOA与WCF的基础知识。
SOA
软件设计思想的发展,从面向过程,到我们所推崇的面向对象,接着到SOA面向服务的思想演变。SOA,Service-Oriented
Architecture,核心就是服务。在面向服务的应用程序中,我们关注于业务逻辑的编写。然后就是客户端调用,而不是服务代码或者它的实现包。SOA架构比传统的三层架构多了一层Service。
在SOA中,每个服务具有明确的边界,服务都是独立的。这样也符合低耦合的思想。还有,SOA中,采用标准的契约定义和通信协议,是一个规范的体系。它的服务是自解释的。它帮助企业工程师们站在一个新的高度理解企业级架构中的各种组件开发部署,帮助企业更迅速,更可靠、更具重用性的架构整个业务系统。与之前相比,更能从容的面对业务的变化。
WCF
WCF,英文全称Windows Communication Foundation,意为Windows通讯开发平台。是一系列支持数据通信的应用程序框架,本质上来说,它是一套软件开发包。
为什么要使用WCF开发?如下图所示:
由上图可知:WCF整合了原有的一些机制,并融合了HTTP和FTP等相关技术。它实现了跨平台性,与平台无关。WCF很好的实现了SOA,SOA即面向服务的架构。
WCF主要分服务端和客户端两部分。我们需要在服务端创建服务,然后将服务通过终结点EndPoint与客户端进行通信。客户端在使用服务时,需要首先创建一个代理服务,然后调用这个代理服务。这里所说的EndPoint中,即我们接下来要说的ABC。
服务的三要素,简单概括来说,即ABC。
1)A——Address(地址)
Where?在哪里
地址,是一个路径。每个服务都关联到一个唯一的地址。它包括两部分内容:服务位置和传输协议。
地址例子:
http://localhost:80
http://localhost:80/HelloService
2)B——Binding(绑定)
How?如何实现
绑定,是制定好的通道栈,它是负责具体实现。
我们需要了解如何进行绑定的基本设置。
3)C——Contracts(契约)
What?做什么
契约,也叫协定。它描述了服务的特征和功能。
四种契约
Service Contract
:主要是客户端所能执行的操作。
Data Contract :与服务交互的数据类型。
Message Contract
:允许程序员直接操纵服务消息的内容和格式。
Fault Contract
相关博客:
《初识MVC框架》 《Linq与扩展方法》
《Axure+SVN》
小结:
SOA,是面向服务架构,但对于其具体的定义,还是存在很大的争议。但需要指出的是,WCF是一种SOA解决方式。因此,WCF主要功能和工作原理等都是围绕着“服务”而展开。
总的来说,无论是SOA还是WCF,看着是新的东西,但是从它们的目的或功能来看,并不新,都是为了提高可靠性、可重用性,更好的解耦。在这一点上,和之前的东西有很多的共鸣。了解了这些,剩下的就是怎样好好使用WCF了。
SOA与WCF的更多相关文章
- SOA和WCF&WebAPI
SOA http://www.cnblogs.com/leslies2/archive/2011/12/12/2272722.html WCF开发框架形成之旅--如何实现X509证书加密 WebAPI ...
- RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用
RDIFramework.NET框架SOA解决方案(集Windows服务.WinForm形式与IIS形式发布)-分布式应用 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架 ...
- SOA与C#
What is SOA? SOA or Service oriented architecture is an architecture style for building business app ...
- Service Oriented Architecture and WCF 【转】
http://www.codeproject.com/Articles/515253/Service-Oriented-Architecture-and-WCF Introduction This a ...
- NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用
NET框架SOA解决方案(集Windows服务.WinForm形式与IIS形式发布)-分布式应用 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.N ...
- 通过 WCF 实现点对点文件共享 z
下载免费的项目源代码 下载项目的数据库 目录 简介 背景 为什么是WCF? WCF历史简述 WCF基础 点对点概念 代码分析(它是怎么工作的) 核心转化引擎层 下载管理层 服务层 代码的使用(如何运行 ...
- 前面部分(WCF全面解析1)
WCF全面解析 [同力推荐] 我经历了COM时代,一直把Don BOx的<COM本质论>奉为我的指路明灯.能把SOA机理和WCF这种特定厂商实现的技术讲得如<COM本质论>一样 ...
- RDIFramework.NET框架SOA解(集Windows服务、WinForm形式和IIS发布形式)-分布式应用程序
RDIFramework.NET框架SOA解决方式(集Windows服务.WinForm形式与IIS形式公布)-分布式应用 RDIFramework.NET,基于.NET的高速信息化系统开发.整合框架 ...
- 我大中华微软MVP中国区人才库
刘海峰:国内知名微软开源技术网站51Aspx 创始人,十年以上的Asp.net从业经验,微软MSDN特约讲师.Teched讲师.ImagineCup大赛评委.人大出版社研修班特约讲师,曾多次受邀访问美 ...
随机推荐
- HTTP的DELETE方法Body传递参数问题解决
理论上,Delete method是通过url传递参数的,如果使用body传递参数呢? 前提: 使用HttpClient发送http请求 问题: httpDelete对象木有setEntity方法 解 ...
- left join后面加上where条件浅析
select a.*,b.* from table1 a left join table2 b on b.X=a.X where XXX 如上:一旦使用了left join,没有where条件时,左表 ...
- caffe中protobuf问题
安装caffe时,protobuf在使用import caffe时,python版的会提示protobuf的问题,原因是因为protobuf的安装是用python-proto,而在安装anaconda ...
- 11_1_GUI
11_1_GUI 1. AWT AWT(Abstract Window Toolkit)包括了很多类和接口,用于Java Application的GUI(Graphics User Interface ...
- jquery 筛选元素(1)
.eq() 减少匹配元素的集合为指定的索引的那一个元素. .eq(index) index一个整数,指示元素的位置,以0为基数. $("li").eq(2).css('backgr ...
- POJ2154 Color(Polya定理)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 11654 Accepted: 3756 Description Bead ...
- 【赛时总结】 ◇赛时·III◇ AtCoder ABC-099
◆赛时·III◆ ABC-099 ■唠叨■ 不要问我为什么先给ABC-100写了博客再写的ABC-099-- 莫名觉得这次比赛特别简单--虽然我并没有参加比赛,只是之后再补做的.QwQ ■试题& ...
- winrar压缩工具
WinRAR使用心得 免广告 英文版可以设置广告关闭,地址: https://www.win-rar.com/predownload.html?&Version=64bit 把WinRAR默认 ...
- 理解volatile与synchronized
用 volatile 修饰的变量可以保证线程的"可见性",也就是,任何线程修改了这个 volatile 修饰的值都会通知其他线程来主缓存中重新读取值. 下面通过例子加以说明: pu ...
- python——字符串的操作判断
s为字符串 s.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则返回 False. s.isalpha() 所有字符都是字母,为真返回 Ture,否则返回 False. s ...