目录
一、SOA
SOA百度百科的解释— —面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以使用一种统一和通用的方式进行交互。
一般的有一下几种理解:
一种软件架构——W3C,一种针对分布式系统的软件结构一套技术体系——开发面向服务软件的相关标准和技术
一种开发范型——业务敏捷的、随需而变的开发
开发范型的变迁
结构化程序设计->面向对象的架构->基于组件的架构->面向服务的架构
从单机系统、分布式系统、异构分布式系统,软件的规模和复杂度逐步提高,模块耦合度逐步降低
和以前的架构的不同之处
1)系统构成元素——服务服务的抽象性(基于接口的编程)
服务的自治性(实现分布式应用)
服务的自描述性(支持动态调用)
服务的可组合性(支持快速组装)
2)交互方式——基于消息的松耦合式通信不关心对方是谁、在哪里、怎么做
不访问服务的实现实体,只向服务发消息
不获得服务实现体的对象引用,不对服务实现体进行直接操作
一般是基于XML的标准化消息,如SOAP消息
技术和平台无关
地址是透明的
SOA架构的优势
使用共享服务 — 无需 “再造轮子”松耦合 — 应用变化时影响最小化
位置透明性 — 重新部署应用影响最小化
基于开放的标准 —互操作性、互联互通,减少对厂商私有方案的依赖
面向服务的技术体系
早期的设想:三角体系三类组件角色:服务提供者、服务请求者、服务代理
三种交互操作:发布、查找、绑定
已有的SOA实现方案
Web Service 应用范围:EAI、面向网络的分布式应用OSGI 应用范围:基于Java的单虚拟机内的应用
CORBA 早期的实现技术,因过于复杂,应用较少。