前几天参加一个会议,期间提到一个名词SOA,当时被震住了,汗!好歹也是搞IT的,竟然不知道。回家补习一下,网上看到是近几年提出的新概念,经过简单了解后,对资料进行整理,说说自己对这个东西的认识!
一、定义
关于SOA,目前尚未有一个统一的、业界普遍接收的定义。一般认为,SOA即面向服务的架构,他将应用程序的不同功能单元---服务,通过服务间定义良好的接口和契约联系起来。
从以上定义,我们看两点:
软件系统架构:SOA不是一门语言,也不是不项技术,更不是一个产品,而是一种软件系统架构。它给出在特定环境下推荐采用的一种架构,是人们面向应用服务的解决方案架构。
服务是SOA实现的核心:SOA架构的基本元素是服务,SOA指定一组实体(服务提供者、服务消费者、服务注册表、服务条款、服务代理和服务契约),这些实体详细说明了如何提供和消费服务。遵循SOA原则的系统必须要有服务,这些服务是可操作的、独立的、模块化的、位置明确的、松耦合的并且可以通过网络查询其地址。
二、SOA三种角色的关系
服务提供者:提供符合契约的服务,并将它们发布到服务代理。
服务请求者:也中服务使用者,它发现并调用其它的软件服务来提供解决方案。服务请求者通常称为客户端,但是,也可以是终端用户应用程序或别的服务。
服务代理者:作为储存库、电话黄页或票据交换场所,产生由服务提供者发布的软件接口。
以上3者关系通过3个基本操作:发布、查找、绑定而相互作用。服务提供者向服务代理者发布服务,服务请求者通过服务代理者查找所需要的服务,并绑定到这些服务上。服务提供者和服务消费者之间可以交互。