前面我们了解到了层次架构中表示层的架构分层,分为了MVC,MVP,MVVM等架构风格,下面我们了解一下SOA架构与微服务架构。
什么是服务?
服务是一种为了满足某项业务需求的操作,规则等的逻辑组合,它包含了一系列有序活动的交互,为实现用户目标提供支持。
SOA的起源
前面学习软件工程时,我们知道软件开发方法有结构化方法,面向对象方法,还有面向服务和原型的方法。面向服务是基于面向对象,并且是面向对象的加强的一种思想的产出物。
面向服务的思想是在构件之后的,而从对象到构件的的颗粒度是变大了的,复用的可能是一个完整的功能,比如登录。而为了取复用这些东西,我们对构件执行了标准化,而标准化在其中是很重要的。
而构件还存在一些问题,比如跨平台,用Java写的构件使用C++没办法去使用。所以我们需要对构件进一步规范化,标准化。规范化之后能够更易于复用。而服务是可以做到标准化的,做得标准化后,相互的调用变得互联互通就会变得更加的容易。
我们可以把遗留系统封装为一个个服务,但是封装成服务之后,服务之间的点对点调用又变得复杂了,交互起来存在多对多很繁杂的问题。此时出现了一个很重要的技术,也就是一个服务之间的中介者框架,企业服务总线(ESB). 它负责作为中介者将服务与服务之间设置为星型网状结构,从而服务间的互联互通都通过ESB进行。