SOA的理解

 一、SOA简介         

        SOA(Service-Orientated Architecture)面向服务的体系结构,它将应用程序的不同功能单元(又称为服务)通过服务之间定义良好的接口和契约联系起来,接口是采用中立

的方式实现的,即接口的实现不依赖与硬件平台、软件系统和编程语言。这使得各个不同的系统可以通过统一的、通用的方式进行交互,而不用管各个系统的架构(如数据传输方

式用xml方式来实现)。所以SOA是一种粗粒度、松散耦合的服务架构,服务之间通过简单、精确制定接口来实现通信。相当于webservice的契约优先实现。

        SOA的基础是服务层,可以直接被其他系统应用调用,SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。

二、SOA核心要素

        SOA的核心要素:标准化、复用、松耦合可编排。

1)标准化

        在软件的互操作方面,传统中间件只是实现了访问互操作,即通过标准化的API实现了同类系统之间的调用互操作,而连接互操作还是依赖于特定的访问协议,如JAVA使

用RMI,CORBA使用IIOP等。而SOA通过标准的、支持Internet、与操作系统无关的SOAP协议实现了连接互操作。而且,服务的封装是采用XML协议,具有自解析和自定义的特

性,这样,基于SOA的中间件还可以实现语义互操作。

        SOA要实现互操作,就是通过一系列的标准族,来实现访问、连接和语义等各种层面的互操作。


2)复用

       传统架构的核心是组件对象的管理。但分布式组件也是严重依赖其计算环境,由于构件实现和运行支撑技术之间存在着较大的异构性,不同技术设计和实现的构件之间无法

直接组装式复用

       而现代SOA的重要特征就是以服务为核心,如WebService,SCA/SDO等。通过服务,或者服务组件来实现更高层次的复用、解耦和互操作,即SOA架构中间件。

因为服务是通过标准封装,服务组件之间的组装、编排和重组,来实现服务的复用。而且这种复用,可以在不同企业之间,全球复用,达到复用的最高级别,并且是动态可配置

的复用。


3)松耦合

       传统软件将软件之中核心三部分网络连接、数据转换、业务逻辑全部耦合在一个整体之中,形成“铁板一块”的软件,“牵一发而动全身”,软件就难以适应变化。分布式对象技

术将连接逻辑进行分离,消息中间件将连接逻辑进行异步处理,增加了更大的灵活性。消息代理和一些分布式对象中间件将数据转换也进行了分离。SOA架构,通过服务的封

装,实现了业务逻辑与网络连接、数据转换等进行完全的解耦。

三、举个例子

        比如一个学校,它有学生系统、财务系统、就业系统等等,这几个系统不能确定是用什么编程语言开发的,有的是java,有的是C,有的是Python等。但是这几个系统之间

是有关联的,比如学生系统需要访问财务系统,查询哪些学生缴费,哪些学生没有缴费,这肯定需要提供一个接口,我们传统的做法是财务系统向学生系统提供一个接口,学生

系统根据这个接口来获得数据,或者一个报表系统也需要财务系统的数据,那么也根据这个接口来获得数据。所以设计的时候就得设计得使这几个系统相互兼容,各个字段要对

应起来,如果不兼容,就不能很好的利用接口服务。SOA的服务架构体系,就是在开发初期,把这些服务接口标准化,各个系统都根据这个接口来开发,这样学校上的各个系统

就能够相互使用服务,相互调用。

       个人理解不深,如果有不对的地方,望大家不吝赐教,谢谢。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值