本发明专利技术公开了一种CORBA分布式应用的透明集群化的方法,目的是解决将服务端从单一服务器转化成多服务器集群的问题。技术方案是构建一个由多个客户机和一个服务入口节点、多个服务节点构成的客户端/集群化服务端环境;服务入口节点执行集群实例管理程序和请求拦截转发程序,状态更新部件将CORBA服务程序实例加入到服务状态表;客户机的CORBA客户端程序、服务入口节点的请求拦截转发程序、服务节点上CORBA服务程序实例相互配合完成请求调用;当客户端程序的请求响应时间超过阈值时进行集群规模和负载能力调整,同时状态更新部件按照周期T更新服务状态表。采用本发明专利技术可以实现CORBA服务端的集群化,显著提高服务端的负载能力。
【技术实现步骤摘要】
本专利技术涉及软件构造
,具体涉及对基于CORBA中间件的分布式应用,在服务端和客户端程序都不作任何修改的情况下,将服务端从单一实例转化成多实例集群的方法。
技术介绍
分布计算中间件是位于系统软件和应用软件之间的一层软件,它封装了分布式应用共性问题(如数据通信、事务等)的解决方案,应用软件可直接使用,而无需自行提供这些问题的解决方案,从而可以大幅简化应用的开发过程。CORBA(Common Object RequestBroker Architecture)是目前主流、成熟的分布计算中间件规范,已经在电信、工业控制、电子商务、国防等领域得到广泛应用。与普通分布式应用类似,基于CORBA中间件所构建的分布式应用(以下简称CORBA应用)可以划分为服务端程序和客户端程序:服务端程序对外提供可被远程调用的接口,这些接口采用IDL(Interface Definit1n Language)语言定义(以下简称IDL接口),并对外暴露出惟一的地址(以下简称CORBA地址,CORBA地址由IP地址、端口号和对象名称组成);客户端程序通过服务端程序的CORBA地址进行定位,并远程调用服务端程序的接口。集群化是数据中心等环境下应对高用户负载的基本手段之一:当运行于单台机器上的软件服务无法有效应对海量用户请求时,将很多服务器集中起来部署同一种软件服务,并且通过负载均衡等手段使得在客户端看来就像是只有一个服务器,从而有效提高服务的负载能力。透明集群化是指在不对服务端和客户端程序进行任何修改的情况下,将服务端从单一服务器转化成多服务器集群;集群的可扩展是指在部署以后,集群中的服务器个数可以在线进行修改,从而适应用户负载的变化。虽然在分布计算领域已经存在Glassfish(由SUN公司开发的应用服务器)等应用服务器可以实现服务端的透明可扩展集群化,但是它们针对的是遵循Java EE规范的应用,无法支持CORBA应用。当前,CORBA应用的服务端程序要么是单一实例,要么在集群化时必须对服务端程序进行修改。如何在不修改CORBA服务端和客户端程序的情况下,将服务端从单一服务器转化成多服务器集群,并且使得集群中服务器个数可以在线扩展,是软件构造
需要解决的技术问题。目前尚无公开的技术资料涉及CORBA应用透明可扩展集群化的成果或成熟技术方案。
技术实现思路
本专利技术要解决的技术问题是对采用CORBA中间件的分布式应用,如何在服务端和客户端程序都不作任何修改的情况下,将服务端从单一服务器转化成多服务器集群。该多服务器集群能够像单一服务端程序一样对外提供服务,表现为一个统一的逻辑实体,并且集群中服务器的个数可以动态增加,从而显著提高软件服务的负载能力。本专利技术的技术方案是首先构建一个客户端/集群化服务端环境,然后服务入口节点执行集群实例管理程序和请求拦截转发程序,最后客户机使用请求拦截转发程序的地址,执行CORBA客户端程序,完成请求调用。本专利技术包括以下步骤:第一步,构建一个客户端/集群化服务端环境,它由多个客户机和一个服务入口节点、多个服务节点构成。客户机、服务入口节点和服务节点是可独立运行的计算机,可以是普通PC机或者服务器。客户机、服务入口节点和服务节点通过网络设备互连。除安装有操作系统(例如windows、Linux)之外,客户机还安装了 CORBA客户端程序,CORBA客户端程序向CORBA服务端程序发送请求,多个客户机可以并发执行请求。除安装有操作系统(例如windows、Linux)之外,服务节点还安装了 CORBA服务端程序,多个服务节点构成了一个服务集群。CORBA服务程序实例指服务端程序在某台服务节点上的运行实例。服务端程序可以有多个服务实例。服务入口节点提供客户请求的分发功能。除安装有操作系统(例如windows、Linux)之外,服务入口节点上还安装有集群实例管理程序和请求拦截转发程序。集群实例管理程序对集群中的多个服务节点进行管理,由初始配置文件、服务状态表、状态更新部件和实例管理接口四个部分组成。初始配置文件是一个XML(extensible Markup Language)文件,描述了所有服务节点中CORBA服务程序实例的地址。服务状态表是一个二维表,描述了 CORBA服务程序运行时地址和CORBA服务程序的当前运行状态(包括已启动、未启动两种状态)。服务状态表共有Idi (k为CORBA服务程序实例的个数,(k多I))。状态更新部件更新服务状态表中的CORBA服务程序实例的当前运行状态。实例管理接口提供增加CORBA服务程序实例功能。实例管理接口接受外部请求,动态对服务状态表中的CORBA服务程序实例的地址进行维护,从而实现集群的动态扩展。请求拦截转发程序与CORBA服务程序具有相同的IDL接口,请求拦截转发程序拦截所有来自CORBA客户端程序的请求,并将CORBA服务程序实例的地址返回给客户端。第二步,多个服务节点运行CORBA服务端程序,获得CORBA服务程序实例。第三步,服务入口节点执行集群实例管理程序,将CORBA服务程序实例加入到服务状态表中;并执行请求拦截转发程序生成请求拦截转发程序的地址。具体步骤如下:3.1系统管理员编写初始配置文件,写入所有CORBA服务程序实例的地址;3.2服务入口节点执行集群实例管理程序,集群实例管理程序的状态更新部件从初始配置文件中读入所有CORBA服务程序实例的地址;3.3状态更新部件为每一个CORBA服务程序实例在服务状态表中新增一行,设置CORBA服务程序实例的当前运行状态为未启动;3.4服务入口节点执行请求拦截转发程序;3.5 请求拦截转发程序使用 CORBA 中间件的 DSI (Dynamic Skeleton Interface)机制生成请求拦截转发程序的地址,将请求拦截转发程序的地址发送给客户机。第四步,客户机从服务入口节点获得请求拦截转发程序的地址,客户机的CORBA客户端程序、服务入口节点的请求拦截转发程序、服务节点上CORBA服务程序实例相互配合完成请求调用。具体步骤如下:4.1客户机获得服务入口节点上的请求拦截转发程序的地址;4.2客户机执行CORBA客户端程序;4.3 CORBA客户端程序向服务入口节点上的请求拦截转发程序发送请求;4.4请求拦截转发程序使用DSI机制拦截客户请求;4.5请求拦截转发程序从服务状态表中当前运行状态为“已启动”的CORBA服务程序实例中随机选择一行,获得CORBA服务程序实例的地址;4.6请求拦截转发程序使用CORBA的Locat1nForward消息将CORBA服务程序实例的地址返回给CORBA客户端程序;4.7 CORBA客户端程序使用CORBA服务程序实例的地址,向CORBA服务程序实例发送请求;4.8服务节点当前第1页1 2 3 本文档来自技高网...
【技术保护点】
一种CORBA分布式应用的透明集群化的方法,其特征在于包括以下步骤:第一步,构建一个客户端/集群化服务端环境,它由多个客户机和一个服务入口节点、多个服务节点构成;客户机、服务入口节点和服务节点是可独立运行的计算机,客户机、服务入口节点和服务节点通过网络设备互连;除安装有操作系统之外,客户机还安装了CORBA客户端程序,CORBA客户端程序向CORBA服务程序发送请求,多个客户机可以并发执行请求;除安装有操作系统之外,服务节点还安装了CORBA服务程序,多个服务节点构成了一个服务集群;服务入口节点提供客户请求的分发功能,除安装有操作系统之外,服务节点上还安装有集群实例管理程序和请求拦截转发程序;集群实例管理程序对集群中的多个CORBA服务器进行管理,由初始配置文件、服务状态表、状态更新部件和实例管理接口四个部分组成;初始配置文件是一个XML文件,描述了所有服务节点中CORBA服务程序实例的地址;服务状态表是一个二维表,描述了CORBA服务程序运行时地址和CORBA服务程序的当前运行状态;服务状态表共有k行,k为CORBA服务程序实例的个数,k≥1;状态更新部件维护服务状态表中的CORBA服务程序实例的当前运行状态,当前运行状态包括已启动、未启动两种状态;实例管理接口提供增加和删除CORBA服务程序实例的方法;实例管理接口接受外部请求,动态对服务状态表中的CORBA服务程序实例的地址进行维护,从而实现集群的动态伸缩;请求拦截转发程序与CORBA服务程序具有相同的IDL接口,请求拦截转发程序拦截所有来自CORBA客户端程序的请求,并将CORBA服务程序实例的地址返回给客户端;第二步,多个服务节点运行CORBA服务端程序,获得CORBA服务程序实例;第三步,服务入口节点执行集群实例管理程序,将CORBA服务程序实例加入到服务状态表中;并执行请求拦截转发程序生成请求拦截转发程序的地址,方法是:3.1系统管理员编写初始配置文件,写入所有CORBA服务程序实例的地址;3.2服务入口节点执行集群实例管理程序,集群实例管理程序的状态更新部件从初始配置文件中读入所有CORBA服务程序实例的地址;3.3状态更新部件为每一个CORBA服务程序实例在服务状态表中新增一行,设置CORBA服务程序实例的当前运行状态为未启动;3.4服务入口节点执行请求拦截转发程序;3.5请求拦截转发程序使用CORBA中间件的DSI机制生成请求拦截转发程序的地址,将请求拦截转发程序的地址发送给客户机;第四步,客户机的CORBA客户端程序、服务入口节点的请求拦截转发程序、服务节点上CORBA服务程序实例的请求拦截转发程序相互配合完成请求调用;第五步,当CORBA客户端的请求负载增大,客户端程序的请求响应时间超过阈值时,系统管理员扩展服务节点,进行集群规模和负载能力的扩展;同时集群实例管理程序的状态更新部件按照周期T,更新服务状态表,所述T应根据系统的变化性进行动态调整。...
【技术特征摘要】
【专利技术属性】
技术研发人员:刘惠,丁博,史殿习,王怀民,尹刚,王涛,丁滟,李艺颖,温尚敏,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:湖南;43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。