SOA——面向服务的体系架构
上一篇博文中提到了“紧耦合”的现象。怎样解决?SOA。採用面向服务的体系架构。
一、What?
SOA=Service-oriented Architecture面向服务的体系结构
SOA是一个组件模型。它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
我个人更加倾向于这种一种解释:SOA是指为了解决在Internet环境下业务集成的须要,通过连接能完毕特定任务的独立功能实体实现的一种软件系统架构。
所以。SOA是什么?SOA不是一种语言,也不是一种详细的技术而是一种软件系统架构。
二、How?
SOA的最基本的应用场合在于解决在Internet环境下的不同商业应用之间的业务集成问题。
SOA的3个基本特征:独立的功能实体。大数据量低频率訪问,基于文本的消息传递。
1.独立的功能实体:SOA很强调架构中提供服务的功能实体的全然独立自主的能力。
SOA架构中很强调实体自我管理和恢复能力。
常见的用来进行自我恢复的技术。比方事务处理(Transaction),消息队列(MessageQueue)。冗余部署(Redundant
Deployment)和集群系统(Cluster)在SOA中都起到至关关键的数据。SOA在这一点上大大提高了软件的稳定性,尤其是基于Internet之上的。
2.大数据量低频率訪问:在Internet的环境下,通过client和server来回非常多次函数调用给系统的响应速度和稳定性带来的非常大的影响,并且往往这些因素是决定整个系统能否正常工作的一个关键决定因素。因此SOA系统推荐採用大数据量的方式一次性进行信息交换。
3.基于文本的消息传递:在Internet环境下,不同语言,不同平台对数据、甚至是一些基本数据类型定义不同,给不同的服务之间传递对象带来的非常大困难。因为基于文本的消息本身是不包括不论什么处理逻辑和数据类型的。因此服务间仅仅传递文本,对数据的处理依赖于接收端的方式能够帮忙绕过兼容性这个的大泥坑。
此外。对于一个服务来说。Internet与局域网最大的一个差别就是在Internet上的版本号管理极其困难,传统软件採用的升级方式在这样的松散的分布式环境中差点儿无法进行。
採用基于文本的消息传递方式。数据处理端能够仅仅选择性的处理自己理解的那部分数据。而忽略其他的数据,从而得到的很理想的兼容性。
三、Why?
IT企业的现状:不同种类的操作系统。应用软件。系统软件和应用基础结构(applicationinfrastructure)相互交织。
对SOA的须要来源于须要使业务IT系统变得更加灵活。以适应业务中的改变。
通过同意强定义的关系和依旧灵活的特定实现,IT系统既能够利用现有系统的功能,又能够准备在以后做一些改变来满足它们之间交互的须要。
SOA凭借其松耦合的特性,使得企业能够依照模块化的方式来加入新服务或更新现有服务,以解决新的业务须要。提供选择从而能够通过不同的渠道提供服务,并能够把企业现有的或已有的应用作为服务,从而保护了现有的IT基础建设投资。
四、SO VS OO
讲到这里。可能有人会想到面向对象。并且面向服务和面向对象看起来都差点儿相同啊,都可以解决紧耦合的问题。so,我将会在下一篇博文中,与大家分享面向对象与面向服务的关系。期待与大家的交流!
ps:解惑上一篇博客《初识EPC》,用一张图展现EPC与SOA的最佳组合!
SOA——面向服务的体系架构的更多相关文章
- 面向服务的体系架构SOA
面向服务的体系架构SOA 序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微 ...
- 面向服务的体系架构(SOA)
面向服务的体系架构(SOA) 1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概 ...
- 说说面向服务的体系架构SOA
序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...
- 面向服务的体系架构 SOA(二) --- 服务的路由和负载均衡
2. 服务的路由和负载均衡 1.2.1 服务化的演变 SOA设计思想:分布式应用架构体系对于业务逻辑复用的需求十分强烈,上层业务都想借用已有的底层服务来快速搭建更多.更丰富的应用,降低新业务开展的人力 ...
- 设计模式之 SOA面向服务的体系
SOA英文直译是,面向服务的体系结构. SOA是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能.一个服务通常以独立的形式存在于操作系统进程中. 想要看到更多玮哥的学习笔记.考试 ...
- 面向服务的体系架构 SOA(三) --- Zookeeper API、zkClient API的使用
zookeeper简单介绍及API使用 1.1 zookeeper简介 zookeeper是一个针对大型分布式系统的可靠的协调系统,提供的功能包括配置维护.名字服务.分布式同步.组服务等.zookee ...
- 大型分布式架构设计与实现-第一章SOA(面向服务的体系架构)
拜读了大型分布式架构设计与实现,觉得该书作为入门不错,但内容过于简单,描述过于琐碎,小节之间连续性不强,不适合深入钻研学习.但为了更多的希望向架构师行业靠拢的工程师学习需要,本博客将对上书进行简化讲解 ...
- 分布式架构设计(一) --- 面向服务的体系架构 SOA
1.1 基于TCP协议的RPC 1.1.1 RPC名词解释 RPC的全称是Remote Process Call,即远程过程调用,RPC的实现包括客户端和服务端,即服务调用方和服务提供方.服务调用方发 ...
- SOA面向服务体系架构
SOA概念 1.什么是SOA 面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型. 它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的 ...
随机推荐
- mongodb权威指南读书笔记
一个服务器能不能运行多个不同端口的mongo实例? 如果两个对象不相等,hashcode一定不相等:如果两个对象相等,hashcode相等或者不相等? 修改器速度42页 update({},{&quo ...
- 【转】深入理解Java内存模型(四)——volatile
volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别.理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这 ...
- Swift - 41 - swift1.2新特性(1)
更简洁的if-let import UIKit func attack(name: String, enemyName: String, weapon: String) { print("\ ...
- Python----定义
变量的定义: 变量第一次出现不是声明类型就是赋初值,才能后续使用. 函数的定义: ''' 函数的返回值不用声明类型 函数参数值最好赋一个类型值,例如整型赋值0,列表[] 函数名后面必须跟: ''' d ...
- union关键字 与大小端模式
union 关键字(主要用来压缩空间,如果一些数据不可能同一时间同时用到,可是考虑使用union) union关键字声明的变量称之为联合体变量: (1)联合体变量只配置一个足够大的空间来容纳最大长度的 ...
- Mysql中存储方式的区别
MySQL的表属性有:MyISAM 和 InnoDB 2种存储方式: MyISAM 不支持事务回滚 InnoDB 支持事务回滚 可以用 show create table tablename 命令看表 ...
- mysql命中索引规律
就算where条件里写了and两个条件,然后建了2个独立索引,1个组合索引,他具体命中哪个是不确定的,他会根据数据分布情况选择. 比如 possible_keys :f1,f2,f1f2,有三种 ...
- thinkphp基础入门(2)
第一节介绍了thinkphp基本路径问题,第二节将介绍thinkphp的常见用法(M层跟V层) 我们先在Controller层新建个IndexController.class.php(新建文件的格式为 ...
- 百度SEO优化
下面是一些SEO优化的基本步骤: 一.内部优化 (1)TITLE,KEYWORDS,DESCRIPTION等的优化 (2)内部链接的优化,包括相关性链接,锚文本链接,各导航等链接页 (3)每天保持站内 ...
- Azure构建PredictionIO和Spark的推荐引擎服务
Azure构建PredictionIO和Spark的推荐引擎服务 1. 在Azure构建Ubuntu 16.04虚拟机 假设前提条件您已有 Azure 帐号,登陆 Azure https://port ...