SOA——面向服务的体系架构

摘要:
SOA=面向服务的体系结构SOA是一个组件模型。我个人更喜欢这样的解释:SOA是一种软件系统架构,它通过连接独立的功能实体来实现,这些功能实体可以完成特定任务,以满足互联网环境中业务集成的需求。SOA不是一种语言,也不是一种详细的技术,而是一种软件系统架构。SOA的三个基本特征:独立的功能实体。SOA架构强调实体的自我管理和弹性。由于其松散耦合特性,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——面向服务的体系架构第1张

免责声明:文章转载自《SOA——面向服务的体系架构》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【经验】在CSS中定义超链接样式a:link、a:visited、a:hover、a:active的顺序freemarker字符串转换成日期和时间下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Element没更新了?Element没更新,基于El的扩展库更新

think-vuele 基于Vue和ElementUI框架进行整合二次开发的一个框架.提供一些elementUI没有的或当时没有的控件.优化了或简化了便于2B软件开发的一些控件 demo:http://vuele.tennetcn.com github:https://github.com/chfree/think-vuele element-ui的控件库是...

加快播放视频的播放速度

根据具体情况某些部分没有听清或者听懂就减速播放。比如一个视频的时长是30分钟,我用2倍的速度播放,那么我只需要15分钟就可以看完了,当然第一遍可能理解的比较少,条件允许的话大不了就再看一遍或者就其中的某些再看一遍,这样花费的时间也少些,效率也高一点。 我是怎么加速播放视频的呢?我是在Windows平台下用potplayer播放视频的,别的播放器我也没用过,不...

Linux package installation: deb and rpm

一般来说著名的 Linux 系统基本上分两大类: RedHat 系列:Redhat、Centos、Fedora 等 Debian 系列:Debian、Ubuntu 等 Dpkg (Debian系): dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装、更新及移除。所有源自Debian的Linux发行版...

大型项目架构演进过程及思考

淘宝架构 我们以淘宝架构为例,了解下大型的电商项目的服务端的架构是怎样,如图所示 上面是一些安全体系系统,如数据安全体系、应用安全体系、前端安全体系等。中间是业务运营服务系统,如会员服务、商品服务、店铺服务、交易服务等。还有共享业务,如分布式数据层、数据分析服务、配置服务、数据搜索服务等。最下面呢,是中间件服务,如MQS即队列服务,OCS即缓存服务等。 图...

大规模SOA系统中的分布事务思考

首先是不建议采用XA两阶段提交方式去处理分布式事务,要知道要能够支持XA分布式事务,必须是要实现XA规范才可以,而Service本身是无状态的,如果这样去做了等于是把Service内部的东西暴露了出去。对于分布式事务最好的方式还是事务补偿或者BASE基于消息的最终一致性。可以设想一个最简单的分布式事务场景,对于跨银行的转账操作,该操作涉及到调用两个异地的Se...

国际开源社区OW2成立快应用兴趣小组,助推快应用生态发展

近日,总部位于欧洲的国际开源社区OW2正式成立快应用兴趣小组(英文名 Quick App Initiatives),旨在为全球开发者提供一个快应用技术交流共享的平台。该兴趣组将聚集多行业和多领域的国际专家,一起探索快应用技术在各个垂直领域的应用场景,共同推动快应用技术迭代和生态发展。 华为欧洲研究院副院长王学民先生提到,此次在欧洲开源社区OW2成立快应用兴趣...