SOA,它是一个面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言,这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
SOA的核心主体是服务,所谓服务,从业务角度而言,即是一个可重复的经过标准,服务就像是一堆“元器件”,这些元器件通过封装形成标准服务,服务就像一堆“元器件”,这些元器件通过封装形成标准服务,他们有相同的接口和语义表达规则。但服务要组装成一个流程和应用,还需要有效的“管理”,包括如何注册服务、如何发现服务、如何包装服务的安全性和可靠性,这些就是SOA治理。SOA治理乃是将SOA这一堆元器件,进行有效组装,形成一个“产品”的关键,否则它永远是一堆器件,而无法形成一个有机整体。
基于服务的应用系统的本质特征是松耦合,以基本业务功能(服务封装)为系统的基本实现单元,然后通过服务编排(流程管理)来“组装”业务应用系统。相对于以往的应用系统,是面向技术组件,由系统程序实现业务流程,在复用、耦合方面都存在灵活性问题。
以金蝶为例,金蝶BOS是一个开放的集成与应用平台,能够为企业灵活而迅速的设计、构建、实施和执行一套随需应变的企业管理软件系统,并能够与现有的IT基础设施无缝地协同运作。金蝶BOS基于TOGAF的SOA参考架构,是实现金蝶SOA解决方案的基础技术平台。
(一)业务流程编排(Business Process Choreographer)
业务流程编排是把多个业务系统的服务通过业务流程建模的方式编排为业务流程的方式。通过流程编排的方式业务流程的活动可以分布在不同的异构业务应用系统和异构的操作系统和硬件平台上,而且通过流程统一编排和事件处理机制,使各业务系统的服务之间耦合很低:
(二)业务流程调用服务组件库
为了统一的管理业务服务,金蝶BOS提供了统一服务管理系统,将WebService或SCA组件注册到统一服务管理系统的服务组件库后,在流程建模中就可以直接引用。在执行时流程引擎也能通过统一服务管理系统的服务调用框架来调用定义的服务。
(三)业务流程调用WebService
在流程建模中也可以直接引入WebService定义:
如图是一个跨系统的流程编排事例,集团总部使用了金蝶EAS系统,分公司使用金蝶K/3系统,K/3系统的采购订单生成后要在集团总部EAS系统生成销售订单,EAS销售订单转为采购入库单后也要同时在K/3系统生成采购入库单。
(四)信息服务
提供金蝶ERP EAS、K/3 以及异构系统之间的数据集成解决方案的软件,提供企业数据建模、消息转换、消息璐由、企业数据总线、调度编排等功能。信息服务支持BOS元数据体系,支持连接业界三大主流数据库产品DB2, Oracle, SQL Server,通过对异构系统数据访问、对异构系统间的数据格式的转换,实现异构系统的数据集成。
(五)数据访问功能
支持连接三种主流数据库:Oracle, DB2, SQLServer,通过数据模型的OR Mapping方法实现数据读取和写入功能,读取时支持设置取数栏位、取数条件、增量条件、增量语义(新增、修改、删除)的配置,支持事件监控取数功能。写入时可以选择写入栏位、配置消息转换规则。
(六)调度配置功能
提供基于Quartz表达式的调度配置功能,调度表达式的格式是 秒 分钟 小时 日期 月份 星期 年(可选) ,提供四种配置方式: 每天定时、每周定时、一次性执行。
(七)ESB与集成监控功能
提供消息队列存储、消息异步传输、消息格式转换、消息路由功能。支持故障重传,复机任务自动执行未完成功能。
提供运行期监控集成任务功能,实现集成任务总数据量、当前处理量、成功数量的统计监控功能。
(八)管理服务
实现了部署与系统监控、集成方案定义、数据转换定义、流程配置与监控的SOA运营管理体系。是为所有其他业务系统提供服务的系统,对外提供的服务包括:工作流的配置、业务预警配置、附件统一管理、编码规则管理、引入引出管理、所有的参数管理、后台事务管理、套打管理等。
SOA的目标在于让IT系统变得更有弹性,以便更灵活、更快地响应不断改变的企业业务需求,解决软件领域一直以来存在的“如何重用软件功能”问题。
其5大基本特征为软件功能重用提供了解决的办法。①服务之间通过简单、精确定义的接口进行通信,不涉及底层编程接口和通信模型;②粗粒度性:粗粒度服务提供一项特定的业务功能,采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复,一次往复就足够了;③松耦合性:松耦合性要求SOA架构中的不同服务之间应该保持一种松耦合 的关系,也就是应该保持一种相对独立无依赖的关系。这样的好处有两点,首先是具有灵活性,其次当组成整个应用程序的服务内部结构和实现逐步地发生变化时,系统可以继续地独立存在。而紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时 这种结构就显得非常脆弱;④位置透明性:位置透明性要求SOA系统中的所有服务对于其调用者来说都是位置透明的,也就是说,每个服务的调用者只需要知道想要调用的是哪一个服务,但并不需要知道所调用服务的物理位置在哪;⑤协议无关性:协议无关性要求每一个服务都可以通过不同的协议来调用。采用SOA来构建信息平台,无疑是未来的发展方向。
原文地址:https://www.cnblogs.com/mqlblog/p/10902157.html