基于SOA架构的Paas中间件研究
2013-04-29康瑞锋
康瑞锋
摘要:云计算是一种能够向各种互联网应用提供硬件服务、基础架构服务、平台服务、软件服务、存储服务的系统,而SOA是一个组件模型,它将依靠各服务之间定义良好的接口和契约的应用程序联系起来。云计算与SOA紧密地结合,形成一种基于SOA的云计算框架模型。而中间件技术则是云端建设最重要的技术,构建基于SOA架构的云中间件则是充分实现了云计算与面向服务架构的优势组合,对构建企业私有云建设与相关应用将起到决定性进作用。
关键词:SOA;中间件;云计算
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)07-1537-03
中间件处于操作系统、网络、数据库与应用软件中间的一类软件。是基于分布式处理的软件或服务程序,它管理计算资源和网络通信,为上层的分布式应用软件提供运行与开发的环境,而应用软件借助中间件在不同的技术之间共享资源。
1 中间件的优势
中间件产品对各种硬件平台、操作系统、网络数据库实现了兼容和开放。基于中间件开发的产品容易在不同的架构与系统之间互相移植,中间件保持了平台的透明性,实现了对交易的一致性和完整性的保护,提高了系统的可靠性。用各类不同的中间件产品组合,配合可复用的商务对象构件进行开发,大大降低开发成本,节约编程周期,提高工作效率。
2 中间件作用与分类
1)终端仿真/屏幕转换:实现图形用户接口客户机与字符接口的服务器应用程序之间的互操作。
2)数据访问中间件:是对异构环境下的数据库或文件系统实现联接的中间件。在分布式系统中,重要的数据都集中存放在数据服务器中,这些数据有关系型的、复合文档型,多媒体型的,还有一些数据是经过加密或压缩存放的,这类中间件将可以实现在网络上虚拟缓冲存取、格式转换、解压等工作。
3)远程过程调用中间件:通过这种远程过程调用机制,编程人员编写客户端的应用,需要时可以调用位于远端服务器上的过程。
4)消息中间件:用来屏蔽掉各种平台及协议之间的特性,实现在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输。
5)交易中间件:是在分布、异构环境下提供保证交易完整性和数据完整性的中间件。在分布式事务处理系统中事务通常要多台服务器上的协调完成,一旦某台服务器发生故障,交易中间件要保证系统恢复、自动切换,高可靠不停机的运行。同时要使多台应用服务器大量事务实时并发运行并保持负载平衡。
6)对象中间件:在分布异构的网络计算环境实现分布对象有机地结合,完成系统的快速集成、对象重用。
7)Web服务器中间件
Web服务器中间件可以弥补基于HTTP协议浏览器,数据写入与、会话能力差的缺陷。
8)安全中间件
操作系统被国外垄断,安全高效的安全中间件将成为我国信息网络安全的要求。
3 云计算概念
云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。云计算具有大规模、虚拟化、可靠安全特征。它完全建立在虚拟资源层上,容易实现自我维护和管理。用户根据自己的需求动态获取所需云资源和云服务。
4 云计算特点
1)云计算集成资源提高计算效率与计算能力
云计算把大量计算资源集中到一个公共资源池中,用户通过租用的方式共享CPU等计算资源。按需所取,从而提高了计算资源利用率。
2)分布式数据中心保证系统安全性
分布式数据中心可将云终端的用户信息存储到地理上相互隔离的数据库主机中,用户不需知道信息的确切存储地点。增加了黑客的攻击门槛,提高云系统的安全性。
3)虚拟化层彻底隔离软硬件
虚拟化层将云平台上方的系统软件、应用软件和下方的硬件设备隔离开来。用户只能看到虚拟化层中虚拟出来的各类硬件设备,这种架构减少软件对硬件设备依赖性,实现了资源的动态配置。
4)模块化平台设计实现高可扩展性
云计算平台均在各层集成功能各异的软硬件设备和中间件软件。这些中间件软件和设备提供针对该平台的通用接口,允许用户扩展设备。用户利用云与云之间的对应接口,实现在不同云之间进行数据迁移、最大化满足用户需求。
5)虚拟资源池为用户提供弹性服务
云管理软件将整合的计算资源根据应用访问的具体情况进行动态调整。云计算对于非固定的需求应用,如波动性需求、阶段性需求等可以通过增大或减少资源来实现。而对规律性的固定需求可根据事先设定的规则进行预测分配、实时调整。总之弹性的云服务可以提供按需分配的计算资源。
6)按需付费降低使用成本
云计算的企业(如Google微软等)按需提供服务、按需付费。对用户来说,云计算不但省去了基础设备的购置运维费用,而且能根据企业成长的需要不断扩展订购的服务,不断更换更加适合的服务,提高了资金的利用率。
5 云计算中间件在云中的定位与作用
云计算中间件定位在是云计算的Paas层,如下图1所示, 它主要进行云计算的资源管理,并对众多应用任务进行调度,使资源能够高效、安全地为应用提供服务。均衡使用云资源节点,检测节点故障并试图恢复或屏蔽之,并对资源的使用情况进行监视统计,执行用户或应用提交的任務,包括完成用户任务映象(Image)的部署和管理、任务调度、任务执行、任务生命期管理等,云计算中间件也可提供用户交互接口、管理和识别用户身份、创建用户程序的执行环境、对用户的使用进行计费等,云计算中间件也要保障云计算设施的整体安全,包括身份认证、访问授权、综合防护和安全审计等。
6 基于云计算中间件的系统架构
云计算中间件是集成了云计算能力的中间件平台,其系统架构如下图2所示。云计算中间件平台具备以下云计算能力:
1)对虚拟资源池的管理能力,包括虚拟资源的创建,使用,回收全生命周期的管理。
2)对虚拟计算资源的动态调度能力,即中间件平台可以动态调度虚拟资源满足业务需求。
3)对分布式存储的扩展支撑能力,包括基于hadoop+hdfs的云存储架构
4)对分布式数据库的支持能力,包括key-value半结构化数据库,也包括hive等数据云数据库。
把云计算这四个能力合并到云中间件平台去。可达到在系统应用和底层IaaS层之间建立集成。云计算中间件平台可以通过IaaS层的服务接口动态创建虚拟机,并下发部署包完成程序的部署。在部署完成后可以根据业务系统的并发访问情况动态调度后台的虚拟资源池资源,真正实现计算和存储能力的弹性和可伸缩。云计算中间件实现底层资源完成黑盒,完全根据应用并发量和调度策略动态调度后台资源。完成了传统的负载均衡和集群技术往云中间件转移与动态实现。云计算中间件产品通过提供的web service去调度后台的分布式存储资源和存储节点或api开发,保证了中间件平台分布式存储能力。例如IBM有个中间件产品叫WebSphere eXtreme Scale具备提供分布式缓存的能力可以为数据层提供高性能,高扩展性数据密集型的计算应用。增加了云计算服务能力的传统中间件即是云计算中间件。云中间件是构成PaaS平台必备部份,提供PaaS层和IaaS层的集成能力。云计算中间件也可以细化为介于PaaS平台和IaaS平台之间的一个中间层。
7 基于SOA的应用集成云中间件架构
1)基础应用Framework(核心运行时)
该层是整个SOA应用集成中间件系统的最底核心层,该层包含了支撑云中间件正常运行的基础框架、基本类库等,同时还需要从底层上实现一个ESB,保证将外部的各类软件插接到上面,实现应用集成。ESB能够实现到何种程度也就意味着最终能够实现多大程度的应用集成。
2)业务支持组件
SOA应用集成中间件本身具备普通应用系统具备的公共模块,比如中间件本身需要负责的事务管理模块,数据访问控制模块,基本业务配置模块,日志管理模块,异常处理模块,邮件及消息管理模块甚至还有商业系统之间交互管理的模块。这些组件虽然不直接用于应用集成,但是对于云中间件的运行是必不可少的。
3)可扩展的服务库
基于SOA的云中间件对外部应用进行集成并转化为相应的服务。云系统服务必需随业务的变化不断扩展,必须将外部应用不断导入,并注册为预置的服务。故云中间件的服务库就会得到扩充从而使得功能越来越强大。
4)集成开发环境IDE
扩展性对SOA的云中间件产品也是非常重要的,提供开发工具让业务人员根据自己的需要调整、增加云中间件的功能,也能够使产品体系得以完善。
5)企业级Portal
基于SOA的应用集成云中间件必须提供一个外部可以访问并進行配置甚至直接操作的接口,用户可以通过浏览器登录、浏览或者使用上面的各种服务功能。这个应用集成还要具有动态配置与发布的能力、一站式登录的能力、较强的交互能力。
8 基于SOA架构的云计算中间件实现
可以用二种方法实现基于SOA架构的云计算中间件的集成,一是在现有的SOA架构中引入云,考虑到SOA平台本身的ESB能力、流程引擎能力、规则引擎能力,可以把这些能力演化为云计算的PaaS层平台的能力。SOA平台也需要IT硬件基础设施,这些基础设施可以直接使用云计算平台IaaS层的计算能力单元和存储能力单元,云平台的这些单元也可以以服务的方式接入到ESB总线上,如云存储,分布式计算等能力都可以集成到ESB总线。二是在云平台中引入SOA形成云计算中间件,首先ESB总线是该中间件平台一个必备的能力,通过ESB总线可以实现IaaS、PaaS和SaaS层之间集成。其次,PaaS既是一个在线开发环境,也是一个在线执行环境,在SOA中我们谈到的数据服务,业务服务,流程服务,展现服务等都可以作为PaaS层在线开发时的能力单元。而这些能力单元在线进行服务编排和组装又可以借助SOA本身已有的BPEL和规则引擎来完成。云化后的SOA中间件也将不再是为单个应用提供服务。
9小结
基本SOA的云计算中间件平台的系统架构由于大量采用虚拟化技术,从而实现了不同平台、物理硬件层、设备虚拟层集中管理与灵活调配。云计算中间件层屏蔽了底层硬件的差异,通过形成的硬件资源池给上层提供资源服务。通过虚拟设备单元运行的应用服务器实例,屏蔽底层不同的操作系统和异构性的硬件架构服务器,统一了计算平台和运行环境。通过SOA应用服务器的集群虚拟化和动态配置,提供按需分配的资源管理虚拟化层。云计算中间件在应用层为企业提供SOA解决方案的架构,并为SaaS应用提供支撑平台。总之基于SOA的云中间件产品可以快速帮助企业搭建、管理和控制私有云平台,利用虚拟化技术高效建设基于B/S架构的应用。方便地组建云应用服务器集群,实现虚拟设备的集群管理、监控管理,快速安装,配置,部署多层次信息的平台,完成虚拟设备、集群、用户和权限管理等。故基于SOA架构的云计算中间件产品的研发将会是未来软件业的重中之重。它将极大促进云技术的应用与发展,也必将大大促进我国云应用的建设。