分布式软件:分布在多台计算机,使用网络进行通信的软件。
Wcf:.net 平台分布式应用开发的一套框架。
DCOM/Enterprise Library service /.Net Remoting/WebService/MSMQ/SOA
分布式带来了复杂性,但是可以通过增加服务器来提高性能。
分布式和集中式对应,B/S和C/S对应。
SOA:是一种理念,主要是跨平台,松耦合,可以说WEBservice是SOA的一种实现,WCF也是SOA的一种实现.
.net remoting /Web service/wcf/webapi/core webapi的区别
.net remoting
可以使用TCP或者HTTP进行通信
Web Service
1、它是基于SOAP协议的,数据格式是XML
2、只支持HTTP协议
3、它不是开源的,但可以被任意一个了解XML的人使用
4、它只能部署在IIS上
WCF
1、这个也是基于SOAP的,数据格式是XML
2、这个是Web Service(ASMX)的进化版,可以支持各种各样的协议,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.
3、WCF的主要问题是,它配置起来特别的繁琐
4、它不是开源的,但可以被任意一个了解XML的人使用
5、它可以部署应用程序中或者IIS上或者Windows服务中
Web API
1、这是一个简单的构建HTTP服务的新框架
2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术
3、不像WCF REST Service.它可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)
4、它也支持MVC的特征,像路由、控制器、action、filter、模型绑定、控制反转(IOC)或依赖注入(DI),单元测试。这些可以使程序更简单、更健壮
5、它可以部署在应用程序和IIS上
6、这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好
7、Response可以被Web API的MediaTypeFormatter转换成Json、XML 或者任何你想转换的格式。
Core web api
跨平台,可部署在常见平台,不止windows系统
重新设计,性能更好
Redis/mongodb 作为分布式缓存数据库,提高程序性能。他们不是代替关系型数据库,而是补充关系型数据在KEY-VALUE存储类型的不足。
MQ 消息队列
优点是松耦合,消息可靠,离线存储,增强系统的并发性能。
面向过程
对过程的每个步骤进行建模,
比如写业务逻辑就是典型的面向过程。
面向对象
对象包括数据和方法,
面向对象重点对业务进行高度抽象,分析出对象和对象之间的关系。
面向服务
服务相比于对象,最大不同是松耦合。面向对象的时候,只考虑对象当前的关系,
但是没有考虑到如果业务变化对对象的影响。面向服务的思想把服务提供者和服务的
使用者进行分离,对服务进行管理,因此耦合比较松散。
以上三种思想怎么使用呢,其实三种思想并不矛盾,只是用来解决不同的问题,和编程语言也没有直接关系。面向过程是函数级别的复用,面向对象是类级别的复用,面向服务是组件甚至更高级别的复用。
关于SOA的文章 写的比较透彻
说说面向服务的体系架构SOA - 张龙豪 - 博客园