soa跟微服务的区别(面向服务的SOA),本文通过数据整理汇集了soa跟微服务的区别(面向服务的SOA)相关信息,下面一起看看。

soa是什么(每天都在谈SOA和微服务)

专注于Java领域优质技术,欢迎关注

作者:李东 极客时间

近几年来,我一直从事着和面向服务相关的底层软件研发工作,逐渐的形成了一些自己的看法,其中我觉得比较重要的看法就是服务需要一个更准确细致的定义。简单来说,服务的本质就是行为(业务活动)的抽象。

为了更好的阐述新服务的概念,并方便与传统的SOA中定义的服务有所区别,我将新的服务命名为S++(Service Plus Plus),接下来我会通过对比S++与SOA和微服务的区别、S++与面向对象的差异来说明这个新的概念。

为什么要重新定义服务呢?其中一个原因就是服务从不同的角度看其实是不一样的,我们举个例子。

服务到底是什么样子的?这个问题很有意思,有点儿横看成岭侧成峰的感觉。是的,传统的无论是SOA定义的服务还是微服务定义的服务,一个服务只会有一个最全面的定义,这样的定义太复杂了,最后只有技术人员能看得懂。那么如何让业务人员也能看得懂呢?一般来说就是文档在起作用,但是文档有个问题就是只能看没法改,任何对业务服务的修改最终必须还要通过技术人员。

所以,传统的服务定义是业务和技术混杂在一起的,能不能有一种方法让所有人看到的服务都是一个样子而且都能看懂都能修改呢?这就是S++要做的事情,S++通过服务的业务与技术分离彻底将传统服务中和业务无关的技术成分剥离出去,放到服务的外延中去,让服务内涵成为纯粹的业务描述。

另外一个原因是,从服务流程梳理人员的角度看,传统的服务抽象度是不够的。举个例子,一个业务流程需要完成先在帳户上扣款然后再缴费这样的业务。对于流程编排人员来说,缴费这个服务可不是一个服务,首先有很多种现存的缴费种类(电话费、水费、煤气费….),而且未来还有很多种可能的种类。

我们不可能在一开始就包含所有的业务可能,但是我们又必须在一开始就包含所有的业务可能,否则我就会陷入不停的修改之中。因此,为解决这个矛盾我们需要一个更加抽象的服务定义,在流程中只需要调用抽象的业务服务,这就是S++需要解决的另一个主要问题。

S++与传统SOA和微服务的差异

在概念和定义上的差异

对于SOA,推进结构化信息标准组织(OASIS)和开放团体(Open Group)均给出了正式定义。OASIS将SOA定义为:

A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations. 共6页: 上一页123456下一页

更多soa跟微服务的区别(面向服务的SOA)相关信息请关注本站。