SOA架构设计案例分析
一、SOA知识介绍
SOA中文名字:面向服务的架构,是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
SOA概述:
SOA 是一种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)模型的方法。 SOA 并不是一个新鲜事物,而只是面向对象模型的一种替代。虽然基于 SOA 的系统并不排除使用 OOD 来构建单个服务,但是其整体设计却是面向服务的。由于 SOA 考虑到了系统内的对象,所以虽然SOA 是基于对象的,但是作为一个整体,它却不是面向对象的。
SOA 系统原型的一个典型例子是 CORBA,它已经出现很长时间,其定义的概念与 SOA 相似。SOA 建立在 XML 等新技术的基础上,通过使用基于 XML 的语言来描述接口,服务已经转到更动态且更灵活的接口系统中,CORBA 中的 IDL 无法与之相比。下图描述了一个完整的
在SOA 模型中,所有的功能都定义成了独立的服务。服务之间通过交互和协调完成业务的整体逻辑。所有的服务通过服务总线或流程管理器来连接。这种松散耦合的架构使得各服务在交互过程中无需考虑双方的内部实现细节,以及部署在什么平台上。
SOA的架构框架:SOA的核心主体是服务。
SOA的核心要素:SOA的目标就是实现灵活可变的IT系统。要达到灵活性,通过三个途径来解决:标准化封装、复用、松耦合可编排。
标准化封装:传统软件架构,因为封装的技术和平台依赖性,一直没有彻底解决互操作问题。互联网前所未有的开放性意味着各节点可能采用不同的组件、平台技术,对技术细节进 行了私有化的约束,构件模型和架构没有统一标准,从而导致架构平台自身在组件描述、发布、发现、调用、互操作协议及数据传输等方面呈现出巨大的异构性。各 种不良技术约束的结果是软件系统跨互联网进行交互变得困难重重,最终导致了跨企业/部门的业务集成和重组难以灵活快速的进行。在软件的互操作方面,传统中间件只是实现了访问互操作,即通过标准化的API实现了同类系统之间的调用互操作,而连接互操作还是依赖于特定的访问协议,如JAVA使用RMI,CORBA使用IIOP等。而SOA通过标准的、支持Internet、与操作系统无关的SOAP协议实现了连接互操作。而且,服务的封装是采用XML协议,具有自解析和自定义的特性,这样,基于SOA的中间件还可以实现语义互操作。SOA要实现互操作,就是通过一系列的标准族,来实现访问、连接和语义等各种层面的互操作。
软件复用:软件复用,即软件的重用,也叫再用,是指同一事物不作修改或稍加改动就多次重复使用。从软件复用技术的发展来看,就是不断提升抽象级别,扩大复用范围。最早 的复用技术是子程序,人们发明子程序,就可以在不同系统之间进行复用了。但是,子程序是最原始的复用,因为这种复用范围是一个可执行程序内复用,静态开发 期复用,如果子程序修改,意味着所有调用这个子程序的系统必须重新编译、测试和发布。为了解决这个问题,人们发明了组件(或者叫控件),如MS操作系统下的DLL组件。组件将复用提升了一个层次,因为组件可以在一个系统内复用(同一种操作系统),而且是动态、运行期复用。这样组件可以单独发展,组件与组件调用者之间的耦合度降低。为解决分布式网络计算之间的组件复用,人们发明了企业对象组件,如(Com+,.NET,EJB等),或者叫分布式组件。通过远程对象代理,来实现企业网络内复用,不同系统之间复用。传统架构的核心是组件对象的管理。但分布式组件也是严重依赖其计算环境,由于构件实现和运行支撑技术之间存在着较大的异构性,不同技术设计和实现的构件之间无法直接组装式复用。而现代SOA的重要特征就是以服务为核心,如WebService,SCA/SDO等。通过服务,或者服务组件来实现更高层次的复用、解耦和互操作,即SOA架构中间件。因为服务是通过标准封装,服务组件之间的组装、编排和重组,来实现服务的复用。而且这种复用,可以在不同企业之间,全球复用,达到复用的最高级别,并且是动态可配置的复用。
耦合关系:SOA架 构在松耦合解耦过程也发展到了最后的境界。传统软件将软件之中核心三部分网络连接、数据转换、业务逻辑全部耦合在一个整体之中,形成“铁板一块”的软件, “牵一发而动全身”,软件就难以适应变化。分布式对象技术将连接逻辑进行分离,消息中间件将连接逻辑进行异步处理,增加了更大的灵活性。消息代理和一些分 布式对象中间件将数据转换也进行了分离。而SOA架构,通过服务的封装,实现了业务逻辑与网络连接、数据转换等进行完全的解耦。
二、SOA案例分析
金蝶readySOA实施方法
金蝶readySOA实施方法包括结合TOGAF形成的SOA实施方法、SOA架构成熟度模型等。
TOGAF架构开发方法ADM提供了可灵活利用的组织企业架构的开发和治理的过程。一个成功的SOA落地项目的建设并非一蹴而就,而是分阶段逐步实现的,其生命周期过程主要可以分为初步阶段、架构阶段、实施阶段、变更管理阶段四大环节完成。通常要从组织的某个独立的业务单元开始,之后再由小及大,逐渐在跨组织范围的整体业务中扩散,逐步完善整个组织的SOA 平台,最终实现随需应变的企业IT架构。针对SOA项目的指导,TOGAF定义了其架构开发方法ADM各阶段和SOA项目全生命周期的各阶段之间的映射关系,形成了具有良好操作性的架构开发方法体系。
金蝶readySOA中间件平台
金蝶Apusic中间件SOA完整实现产品系列
金蝶Apusic应用服务器(AAS)为企业应用提供稳定、高效、安全的开发平台与运行引擎,是所有组件和服务的容器与计算环境。
金蝶Apusic消息中间件(AMQ)提供消息传输服务的基础系统软件,保障数据在复杂的网络中高效、稳定、安全、可靠的传输,并确保传输的数据不错、不重、不漏、不丢,是实现SOA分布式计算的集成通信平台。
金蝶Apusic 企业服务总线(AESB)以面向服务的方式,实现异构、分布式系统之间集成共享、互联互通的基础软件平台,是SOA治理(服务注册、服务存储、服务路由、安全控制和版本管理)的基础设施。
金蝶Apusic业务流程管理(ABPM)是一款面向业务的、具有高度扩展性和强大整合能力的流程中间件,支持BPEL协议,完整并有力支撑了业务流程管理的全生命周期,实现服务的组合和流程编排。
金蝶Apusic数据交换和管理平台AEI(Apusic Exchange & Integrator),能够针对分布式的异构数据源,对数据进行分析、采集、转换、清洗、影射、持久等操作,提供分布式数据源之间数据集成和交换的解决方案,实现SOA的信息服务。
金蝶Apusic门户平台(APS-Apusic Portal Server)使组织的应用、人员、信息、流程有机聚合,使用户能够通过单一渠道访问所需的个性化信息,它支持标准的JSR Portlet的交互和个性化编排。
金蝶Apusic OperaMasks开发平台,是构建SOA服务和集成化的开发平台。AOM AppFrame是开放高效的基础应用运行平台,为企业应用开发提供构件化的编程模型与运行期支撑;AOM Studio是全开发生命周期支持的集成开发环境,为企业应用开发提供从代码开发、展现设计,到配置管理、协同开发的一站式支持;而 AOM BizModeler以直观快速的图形化方式地对业务逻辑进行分析建模、服务封装、流程编排、部署发布。
金蝶Apusic Universal Manager是金蝶中间件2.0产品的统一管控平台,依托于MaaS理念,基于浏览器的、完全可视化的、拥有插件体系可扩展的管控平台。
金蝶中间件Ready SOA支撑平台产品完全按照TOG-SOA参考架构进行设计,传承了金蝶十余年从事大规模关键性企业级应用开发以及核心基础设施建设之丰富经验。在SOA项目的全生命周期的建设过程中,金蝶Ready SOA支撑平台,能够有效地简化新项目开发和已有项目资产集成的过程,提升效率,降低运维成本。对期望通过建设SOA来改善其业务和IT基础设施的灵活性,提升业务敏捷性的组织而言,金蝶Ready SOA支撑平台是最佳选择。
三、结束语
关于SOA的内容还有很多,我只是介绍了很少的一部分,如今我对于SOA架构分析还是止于学习阶段,还没有实际工作项目的经验,日后若有这方面的项目再回来补充通过实战获得的理解。