如果两个多层 C/S 结构的应用系统之间需要相互通信,那么久产生了面向服务架构,称为 Service Oritented Architecture,简称 SOA,多个单点应用相互通信的多服务结构是一种信息系统常用的架构模式。
在 SOA 的概念中,将由多层服务组成的一个节结点应用看做是一个单一的服务。在 SOA 的定义里,对“服务”的概念进行进行的广义化,即它不是计算机层面的一个 Daemon,而是指向提供一组整体功能的独立应用系统。所谓独立应用系统是指:无论该应用系统由多少层服务组成,去掉任何一层,它都将不能正常工作,对外可以是一个提供完整功能的独立应用。这个特征可以将面向服务架构与多层单服务体系完全区分开来。
两个应用之间一般通过消息来进行通信,可以相互调用对方的内部服务、模块或数据交换和驱动交易等。在实践中,通常借助中间件来实现 SOA 的需求,如消息中间件、交易中间件等。面向服务架构在实践中,又可以具体分为异构系统集成、同构系统聚合、联邦体系结构等。
面向服务架构的本质是消息机制或远程过程调用(RPC)。虽然其具体的实现底层并不一定是采用 RPC 编程技术,但两个应用之间的相互配合确实是通过某种预定义的协议来调用对方的“过程”实现的。