List/Grid

Tag Archives: 消息

SOA是用来解决什么问题的?

SOA是用来解决什么问题的?

SOA的全称叫做 service-oriented architecture(面向服务的架构),不管称它为一种架构,还是一种方法,都是为了解决某一问题而提出的。 SOA是用来解决整合问题,而且是独立系统间的整合的问题。 首先不是分布式程序,分布式程序是客户/服务模式,或者是n层模式,这可以称作系统间的整合,可以采用RPC(Remote procedure call)远程方法调用的方式来实现。由于是系统内整合,开发人员对于系统比较了解,因此沿用了传统开发语言中的方法调用的模式,用方法来表达语义,这样做的好处是便于理解。 而独立系统间的整合,由于开发人员分属于不同的系统,这些系统可能属于不同的长商,这些厂商甚至可能处于竞争的地位,所以无法互相理解相互的数据结构和程序逻辑,这就需要不同于分布式程序的设计和开发模式。 SOA是与RPC相反的方式,通过消息来交互,松耦合的结构。 服务是消息的生产者或者消费者,而且消息最好以一种自描述、无状态的方式表现出来,程序的逻辑通过消息之间的流转来表达,属于事件驱动的模式。