从巨石应用到微服务应用,从ESB到APIGateway,从前后端分离到中台出现,九九归一,Rest要一统天下?

本文探讨了IT技术的进化,从J2EE、SOA到中台战略,再到微服务和RESTful API的兴起。介绍了ESB在集成中的角色和API Gateway在微服务架构中的重要性。随着技术发展,REST逐步成为主流,但企业在实践中仍需兼顾旧系统,实现新旧共存与转型。
摘要由CSDN通过智能技术生成

本文系作者本人原创,如需转载,请务必写明出处,谢谢!

题目很长,想说的东西很多。

一 IT的进化论

达尔文的进化论同样适用于IT世界,能大行其道的IT技术,确实是优胜劣汰,自然的选择。 有人说J2EE想解决很多东西,可惜它不够人性,有人说,SOA多么美好,可惜它生不逢时。所以在经历多年的发展之后,J2EE也好,SOA也好,终于碰到了天花板,逐渐被其他IT技术所取代。

而最近炒得火热的中台概念,是不是因为手中握着被自然选择优胜劣汰下来的利剑?

首先让我们看看中台是个什么鬼?

二 从中台说起

以下两张图告诉我们中台要做些什么,又该怎么做。

(图片来源  Thoughtworks 王健在华为CBG IT技术合作峰会上的分享《中台战略到微服务架构》)

DDD已是旧闻,最近一些公司大谈中台建设,似乎就是想用手握的利剑,再次采用领域驱动设计的方法,帮助客户重建平台系统,从而大赚一笔?
 

比较下面这两张SOA的示意图,各位是不是就清楚了,原来中台要做的事情只是当初SOA 要做的事情的一部分(可以理解为Enterprise Service这部分)。

 

2-4.png

(图片来源 Microservices vs. service-oriented architecture  By Mark Richards July 6, 2016

这些大公司们凭什么敢做曾经没有取得大成功的事情?他们手握的自然法则锻造出来的那把利剑究竟是什么?我们得先从webservice 说起。

*  有关中台的文章,网上这两篇可参考,从中台到平台(上)      从中台到平台(下)  
另外,可参考《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战

 

三 两种最为流行的web service实现方式,后来者居上

按照进化论的角度来看,目前最主要的Web服务实现方案有两种:
SOAP:即简单对象存取协议(Simple Object Access Protocol),是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAPXML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP

REST:表征状态转移(Representational State Transfer),采用Web 服务使用标准的 HTTP 方法 (GET/PUT/POST/DELETE) 将所有 Web 系统的服务抽象为资源,REST从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录(可能这么比喻不是很好),对于各种资源的操作最后总是能抽象成为这四种基本操作,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。REST是一种软件架构风格而非协议也非规范,是一种针对网络应用的开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

如果你开始用Spring boot来编写web应用,你一定会发现用Rest风格来写web service实在是太方便了,用起来也方便,于是越来越多的web服务开始采用REST风格设计和实现。

那么我们为什么要用web service? 这要从企业应用的发展历史来谈

四 从巨石应用到微服务应用,我们一路走来

实际上,当计算机技术开始用于企业应用的时候,应用的结构是这样的(这里省略掉最初期刀耕火种的原始计算机时代,数据库技术发展),只要有个业务,我们就建一个业务系统。这个时代的应用,我们称之为monolethic application 、silo system、孤岛系统、竖井式结构。

 

 

企业应用越来越多,这时候,在新开发系统的时候,大家发现,许多数据和功能,在已有的系统里已经有了。我们将来能不能建立这样的新系统(或者改造老系统),在架构上能支持其他应用来调用一些特定功能?如何在已有的老系统上,增加一个服务集成组件,使能系统间能互相调用?SOA的理念由此提出。

针对第一个问题,我们将来能不能建立这样的新系统(或者改造老系统),在架构上能支持其他应用来调用一些特定功能?web service 的概念应运而生。如下图的J2EE架构。一个企业应用,它的用户,已经不再只是在客户端点击菜单和按钮的人,更是企业其他应用。所以,我们由 web service衍生出服务提供者,和服务消费者的概念。以SOAP协议为主的web service大行其道。

时代又开始进入了移动互联网时代,这个时代被称作VUCA的时代。企业应用开始直面最终用户,也就是2C了。谁能最快让应用上线,谁就能取得市场先机。在组件服务化的前提下,围绕着云原生技术的两条脉络清晰可见

1,前后端分离,使前段从后端分离出来,快速提高软件开发的效率。

对于原来由J2EE应用服务器提供的MVC的功能,将VC交给node.js来处理,应用服务器只处理业务包装

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

alpha xu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值