上一篇博文中提到了“紧耦合”的现象。怎样解决?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——面向服务的体系架构的更多相关文章

  1. 面向服务的体系架构SOA

    面向服务的体系架构SOA 序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微 ...

  2. 面向服务的体系架构(SOA)

    面向服务的体系架构(SOA) 1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概 ...

  3. 说说面向服务的体系架构SOA

    序言 在.Net的世界中,一提及SOA,大家想到的应该是Web Service,WCF,还有人或许也会在.NET MVC中的Web API上做上标记,然后泛泛其谈! 的确,微软的这些技术也确实推动着面 ...

  4. 面向服务的体系架构 SOA(二) --- 服务的路由和负载均衡

    2. 服务的路由和负载均衡 1.2.1 服务化的演变 SOA设计思想:分布式应用架构体系对于业务逻辑复用的需求十分强烈,上层业务都想借用已有的底层服务来快速搭建更多.更丰富的应用,降低新业务开展的人力 ...

  5. 设计模式之 SOA面向服务的体系

    SOA英文直译是,面向服务的体系结构. SOA是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能.一个服务通常以独立的形式存在于操作系统进程中. 想要看到更多玮哥的学习笔记.考试 ...

  6. 面向服务的体系架构 SOA(三) --- Zookeeper API、zkClient API的使用

    zookeeper简单介绍及API使用 1.1 zookeeper简介 zookeeper是一个针对大型分布式系统的可靠的协调系统,提供的功能包括配置维护.名字服务.分布式同步.组服务等.zookee ...

  7. 大型分布式架构设计与实现-第一章SOA(面向服务的体系架构)

    拜读了大型分布式架构设计与实现,觉得该书作为入门不错,但内容过于简单,描述过于琐碎,小节之间连续性不强,不适合深入钻研学习.但为了更多的希望向架构师行业靠拢的工程师学习需要,本博客将对上书进行简化讲解 ...

  8. 分布式架构设计(一) --- 面向服务的体系架构 SOA

    1.1 基于TCP协议的RPC 1.1.1 RPC名词解释 RPC的全称是Remote Process Call,即远程过程调用,RPC的实现包括客户端和服务端,即服务调用方和服务提供方.服务调用方发 ...

  9. SOA面向服务体系架构

    SOA概念 1.什么是SOA 面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型. 它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的 ...

随机推荐

  1. Wijmo 日历插件

    说明: 因为项目(OA)的需要,我负责开发日程的模块,相信大家用过谷歌的日历了吧,是不是觉得挺好用,但又苦于无法实现? 这里告诉你一个很好的插件,Wijmo,而里面有一个类似谷歌的日历事件插件,真的很 ...

  2. Jsp笔记(1)

    1. jsp页面中出现中文乱码怎么解决? <%@ page contentType="text/html; charset=GB2312"%> <%@ page ...

  3. 星座物语APP

    效果图: 这里的后台管理用的是duducat,大家可以去百度看说明.图片,文字都在duducat后台服务器上,可以自己修改的.(PS:图片这里是随便找的) http://www.duducat.com ...

  4. SQL查询表字段、字段说明、类型、长度、主键

    SELECT  表名=d.name,case when a.colorder=1 then d.name else '' end, 字段序号=a.colorder, 字段名=a.name, 标识=ca ...

  5. Undefined symbols for architecture x86_64:

    真机运行正常, 但要在模拟器运行的时候, 编译就报错了: 解决方法: 1.将Build Settings的Architectures修改为arm7 armv7s.Xcode7默认是加上arm64的,但 ...

  6. Backbone学习笔记

    model model的get和set是对model.attributes进行操作,并不是直接对model进行操作 collection collection.set()会触发相应的add,remov ...

  7. CSS强制图片大小

    相信大家做网页时经常会碰到大分辨率的图片会把表格涨破以致漂亮的网页面目全非,但只要使用以下的CSS语句即可解决. 该CSS的功能是:大于600的图片自动调整为600显示. <style type ...

  8. 2016年9月3日 文成小盆友python-num18 - django进阶一

    一.深入django的路由系统 下面为django的请求生命周期 下面来看下整个生命周期中的路由系统: 在Django的urls中我们可以根据一个URL对应一个函数名来定义路由规则如下: " ...

  9. 基于.NET MVC的高性能IOC插件化架构(一)

    最近闲下来,整理了下最近写的代码,先写写架构,后面再分享几个我自己写的插件 最近经过反复对比,IOC框架选择了Autofac,原因很简单,性能出众,这篇博文是我的各大IOC框架的性能测试:http:/ ...

  10. 针对苹果最新审核要求为应用兼容IPv6-备用

    在WWDC2015上苹果宣布iOS9将支持纯IPv6的网络服务.2016年初开始所有提交到App Store的应用必须支持IPv6.为确保现有的应用是兼容的,我们需要注意下面几点. 不建议使用底层的网 ...