上一篇博文中提到了“紧耦合”的现象。怎样解决?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. HTML学习(1)

    1.缩写和首字母缩写<abbr><acronym> <abbr title="etcetera">etc.</abbr> <a ...

  2. bash:ifconfig command not found for contos7.0

    CentOS7刚发布,我忍不住把DELL T410从CentOS6升级到CentOS7.好不容易等安装结束后,立即配置网络,然后在yum源上安装环境.可是执行ifconfig的时候系统提示让我傻了眼: ...

  3. 如何修改TextField的Label和EmptyText

    在需求中常常有修改form表单的标签和空文本提示,在渲染后组件有些字符固定下来 除非使用document进行原始修改,通过查询stackflow,我介绍更方便方法 模拟场景:点击ChangeLabel ...

  4. PHP 类型比较表

    以下的表格显示了 PHP 类型和比较运算符在松散和严格比较时的作用.该补充材料还和类型戏法的相关章节内容有关.同时,大量的用户注释和 » BlueShoes 的工作也给该材料提供了帮助. 在使用这些表 ...

  5. C++拾遗(九)类与动态内存分配(1)

    创建类时编译器自动生成以下成员函数(如果用户没有定义): 1.默认构造函数 2.拷贝构造函数 3.赋值操作符 4.默认析构函数 5.地址操作符 以下一一说明: 构造函数 构造函数在创建对象时被调用. ...

  6. Flask源码阅读笔记(一)

    作者:acezio链接:https://zhuanlan.zhihu.com/p/21358368来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. flask的url r ...

  7. 向null地址copy数据和不断改变指针指向

    #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string. ...

  8. 使用Jstl异常:The absolute uri: http://java.sun.com/jsp/jstl/core cannot&nbs

    错误提示是:        org.apache.jasper.JasperException: This absolute uri http://java.sun.com/jsp/jstl/core ...

  9. DotNET知识点总结三(笔记整合)

    使用接口的注意事项: 接口中的成员不能加访问修饰符 接口中的成员不能有任何实现 实现接口的子类必须实现接口的全部成员 一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口 ...

  10. ural 1084 Goat in the Garden

    #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> u ...