信息系统架构模型_2.面向服务架构(SOA)模式

前面讲的客户机/服务器模式,无论多少层的C/S软件结构,对外来讲,都只是一个单结点应用(无论它由多个不同层的"服务"相互配合来完成其功能),具体表现为一个门户网站、一个应用系统等。而多个单点应用相互通信的多服务结构也是一种信息系统常用的架构模式。

1.面向服务架构

如果两个多层C/S结构的应用系统之间需要相互进行通信,那么,就产生了面向服务架构,称为Service Oriented Architecture,简称SOA,如图1所示:

图1 多服务结构

在SOA的概念中,将由多层服务组成的一个结点应用看作是一个单一的服务。在SOA的定义里,对"服务"的概念进行的广义化,即它不是指计算机层面的一个Daemon,而是指向提供一组整体功能的独立应用系统。所谓独立应用系统是指:无论该应用系统由多少层服务组成,去掉任何一层,它都将不能正常工作,对外可以是一个提供完整功能的独立应用。这个特征便可以将面向服务架构与多层单服务体系完全区分开来。

两个应用之间一般通过消息来进行通信,可以互相调用对方的内部服务、模块或数据交换和驱动交易等。在实践中,通常借助中间件来实现SOA的需求,如消息中间件、交易中间件等。面向服务架构在实践中,又可以具体分为异构系统集成、同构系统集成、联邦体系结构等。

2.Web Service

面向服务架构体现在Web应用之间,就成为了Web Service,即两个互联网应用之间可以相互向对方开放一些内部"服务"(这种服务可以理解为功能模块、函数、过程等)。目前,Web应用对外开放其内部服务的协议主要有SOAP与WSDL。

Web Service是面向服务架构的一个最典型、最流行的应用模式,但除了由Web应用为主而组成的特点以外,Web Service最主要的应用是一个Web应用向外提供内部服务,而不像传统意义上SOA那样由更丰富的应用类型。

3.面向服务架构的本质

面向服务架构的本质是消息机制或远程过程调用(RPC)。虽然其具体的实现底层并不一定是采用RPC编程技术,但两个应用之间的相互配合确实是通过某种预定义的协议来调用对方的"过程"实现的,这与前节所讲多层架构的单点应用系统中,两个处于不同层的运行实例相互之间通信的协议类型基本是相同的。

相关推荐
想用offer打牌8 小时前
RocketMQ如何防止消息丢失?
java·后端·架构·开源·rocketmq
嗝o゚9 小时前
鱼与熊掌可兼得?用Flutter+鸿蒙的混合架构破解性能与UI的世纪难题
flutter·架构·harmonyos
小小测试开发9 小时前
提升App UI自动化性能与效率:从脚本到架构的全链路优化指南
ui·架构·自动化
黄俊懿10 小时前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——@GlobalTransactional注解与@globalLock生效的原理
java·spring cloud·微服务·云原生·架构·系统架构·架构师
黄俊懿11 小时前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——开启全局事务
java·数据库·spring·spring cloud·微服务·架构·架构师
宇擎智脑科技12 小时前
Flutter 对接高德地图 SDK 适配鸿蒙踩坑记录与通信架构解析
flutter·架构·harmonyos
Xの哲學12 小时前
Linux DRM 架构深度解析
linux·服务器·算法·架构·边缘计算
Tezign_space12 小时前
抖音AI运营工具技术实践:特赞内容矩阵架构与300%效率提升方案
人工智能·架构·aigc·内容运营·抖音·ai营销工具·特赞
亿坊电商12 小时前
无人共享茶室智慧化破局:24H智能接单系统的架构实践与运营全景!
大数据·人工智能·架构
法号:行颠13 小时前
Chaos-nano协作式异步操作系统(六):`Chaos-nano` 在手持式 `VOC` 检测设备上的应用
c语言·单片机·嵌入式硬件·mcu·系统架构