关于SOA架构设计的案例分析
SOA架构开发
SOA介绍
1、什么是SOA
SOA是:面向服务的体系结构(Service Oriented Architecture)指的是一个系统的架构,他的研究领域是大型分布式系统的“架构”范式。而OOP指的是程序具体开发过程中的“编程”范式。再通俗一点说就是在一个具体的软件内我们谈论OOP,但是在讨论软件与软件,系统与系统的关系的时候我们会借助SOA的理念帮助我们处理他们(指各个系统)之间的关系。
2、SOA的核心理念
支持异质(异构)
不要奢望企业中的每个系统都是java平台的,不要奢望企业中的每个系统都运行在Window平台上,不要奢望企业中的数据库都是结构化的……随着时间的流逝老版本的系统依在(里面的数据是无价的,别跟我说可以重新开发一套新系统,然后把旧系统的数据导出来,这就相当于让一个环境的某个物种短时间内重新进化,梦一样幼稚的想法!)新系统层出不穷,SOA要做的就是在这些异质(异构)的系统之上保证他们的“和平相处”。
支持变化
SOA绝不是一次性的事件,随着企业的发展要在系统环境的变化中产生出具有自己风格的SOA,这次整合了新旧系统兴许不就的将来,一次公司的收购就会迎来新的一轮SOA过程。
松耦合
目的是保证整个系统的灵活性和可伸缩性。
并且:
SOA中,服务之间应保持独立。更改一个服务不能影响到服务的调用。
SOA由一些通过标准消息通信的服务组成,标准消息机制让他们彼此独立。服务之间应该能进行异步通信。服务应该提供安全的通信和可靠的消息服务。
3、企业服务总线ESB
企业服务总线(Enterprise Service Bus)是SOA的基础设施,用于保证消费者能够调用供应者提供的服务。
ESB的核心作用
数据格式转换
因为SOA是支持异质的,所以ESB主要的作用就是处理不同平台不同语言之间的相互调用。那么首先要做的就是数据格式的转换。
引入一个中间格式然后将不同平台中的API都映射到这种格式上来。大多数情况人们选择的是和平台无关的WebServices技术,于是SOAP也就成为了这种中间格式。
(智能)路由
不同优先级的消息,不同类型的消息是需要给予不同处理。从这个角度说ESB就不单单是一个传递消息的通道了,还需要有一套自己的能识别其他服务提供数据方法。关于智能路由的另一个作