公开/公告号CN103491133A
专利类型发明专利
公开/公告日2014-01-01
原文格式PDF
申请/专利权人 兴唐通信科技有限公司;
申请/专利号CN201310379157.5
申请日2013-08-27
分类号H04L29/08;G06F9/44;
代理机构北京路浩知识产权代理有限公司;
代理人王莹
地址 100191 北京市海淀区学院路40号
入库时间 2024-02-19 22:10:12
法律状态公告日
法律状态信息
法律状态
2017-02-01
授权
授权
2014-02-05
实质审查的生效 IPC(主分类):H04L29/08 申请日:20130827
实质审查的生效
2014-01-01
公开
公开
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于Erlang的分布式 快速开发系统及方法。
背景技术
传统的分布式开发模型有OMG组织提出的CORBA(公共对象请求 代理体系结构)、Sun公司提出的EJB(企业级JavaBean)等。CORBA 体系结构由三部分组成:(1)对象请求代理ORB,作为分布式对象通信 基础设施;(2)IDL接口定义语言的语法、语义以及到各种程序语言的 映射;(3)ORB间通信协议GIO/I IOP,作为保证互操作性的标准。EJB 体系结构是基于组件的开发模式,分为实体组件、会话组件和消息驱 动组件三大类,具有很好的规范性。在德讯科技股份有限公司的发明 专利“面向对象的中间件分布式系统开发平台”中,客户端与服务器 端采用Web访问,服务器端与各设备间采用ICE接口进行通信。
但是,传统的分布式开发模型具有以下问题:
首先,传统的分布式开发模型中业务组件和技术平台紧密耦合, 功能特性和非功能特性相互交织,过于侧重分布式系统中分布策略及 性能优化,使得组件之间的调用关系错综复杂,导致开发周期变长, 难以应对业务功能需求的快速变化以及后期维护。
其次,传统的分布式开发模型的规格说明过于复杂,各类文档说 明过于庞大,导致程序调试时间长,代码复杂,重复设计等缺点。
再次,传统的分布式开发模型为了满足各种分布式系统的诸多需 求,仅提供基础分布式服务,并未统一考虑模型级的高可靠和高可用 特性。
因此,急需一种新的开发模型能够降低甚至消除业务组件与技术 平台之间的耦合,并且操作简单,可用性和可靠性较高的分布式快速 开发系统。
发明内容
(一)要解决的技术问题
本发明所要解决的技术问题是:如何提供一种分布式快速开发系 统及方法,能够消除业务组件与技术平台之间的耦合,并且操作简单, 可用性和可靠性高。
(二)技术方案
为了解决上述技术问题,一方面,本发明提供了一种基于Erlang 的分布式快速开发系统,主要包括:
分布式技术平台,包括即插即用模块、服务引用模块、负载均衡 模块和备份模块,用于提供非功能性系统支撑服务,通过统一接口与 业务组件进行交互;
业务组件,用于完成与具体业务相关的功能性服务,通过统一接 口与分布式技术平台进行交互,不同业务组件之间通过桩接口进行调 用;
自动化工具,用于完成包括配置、打包和发布的辅助功能。
进一步地,所述分布式技术平台包括:即插即用模块、服务引用 模块、负载均衡模块和备份模块,上述模块相互独立,面向系统提供 相应的支撑服务。
具体地,所述即插即用模块基于Erlang虚拟机的天然透明性支持, 采用同步或者异步的方式,使节点加入或者退出集群时对于业务组件 来说透明无感。
具体地,所述备份模块基于Erlang的failover和takeover支持,用 于在节点失效或者崩溃时对该节点的业务组件以及该节点本身进行备 份;
备份的具体过程为:按照分布式应用规则对业务组件进行设定, 当业务组件对应的节点失效或者崩溃时,将该节点承担的业务组件的 分布式应用失效转移到备份节点,完成业务组件级备份,将一个节点 上的所有分布式应用均转移到备份节点,则完成节点级备份。
具体地,所述服务引用模块基于Erlang的消息机制和RPC支持, 为业务组件提供服务引用标签,节点或者其他业务组件根据所述标签 通过服务引用模块实现对业务组件的调用,服务引用模块根据业务组 件在分布式节点的部署情况以及负载均衡策略向提供服务的节点请求 服务,并返回服务结果。
具体地,所述负载均衡模块具体为:分布式技术平台实时监控集 群中各个节点的负载情况,服务应用发生时,分布式技术平台依据负 载均衡策略将服务请求发送到相应节点,以分担系统负荷。
进一步地,所述桩接口具体为:当前业务组件采用桩的方式调用 本地或远程的其他业务组件,其他业务组件的部署细节对于当前业务 组件来说是透明的。
另一方面,本发明还提供了一种基于Erlang的分布式快速开发方 法,具体包括如下步骤:
S1、开发分布式技术平台,为业务组件及其他使用者提供高并发、 高可靠、鲁棒性强的服务保障;
S2、开发分布式业务组件,并根据实际需要封装出对外开放的服 务接口;
S3、根据业务组服务接口,封装成桩模块,以实现业务组件的分 布化;
S4、依托自动化开发工具生成相应的配置文件,并按节点类型打 成整体包;
S5、将整体包进行生产存档,并进行电路板的烧写维护。
(三)有益效果
上述技术方案有如下优点:
本发明充分利用Erlang的分布式特性,业务组件与技术平台从逻 辑上解耦,实现了系统功能性与非功能性需求的分离。并且通过自动 化工具全面辅助系统开发过程,使得整个系统具备快速开发、轻量级 和高可用的特点。
业务组件应用分布式代理的思想,通过统一接口和桩接口提供服 务,轻量地实现了分布式业务组件的部署和运行,提高了业务组件的 可移植性。
业务组件从技术平台的体系结构中独立出来,使得技术平台在不 同系统中的复用成为可能,增强了系统的可用性。
技术平台通过一系列技术手段保证了系统的可靠性和可用性,包 括备份技术完成节点级和应用级的失效转移和接管;即插即用技术完 成节点自动探测;负载均衡技术完成系统高并发服务时负荷分担等。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点 和优点将变得更加清楚。
附图说明
图1为本发明实施例基于Erlang的分布式快速开发系统结构示意图。
具体实施方式
下面结合说明书附图和实施例,对本发明的具体实施方式作进一 步详细描述。以下实施例仅用于说明本发明,但不用来限制本发明的 范围。
本实施例提供了一种基于Erlang的分布式快速开发系统,主要包 括:
分布式技术平台,包括即插即用模块、服务引用模块、负载均衡 模块和备份模块,用于提供非功能性系统支撑服务,通过统一接口与 业务组件进行交互。
业务组件,用于完成与具体业务相关的功能性服务,通过统一接 口与分布式技术平台进行交互,不同业务组件之间通过桩接口进行调 用。由于本系统能够提供的具体业务多种多样,这些业务对应的业务 组件也就多种多样,往往需要多种业务组件的相互调用来完成具体的 应用功能。
自动化工具的主要作用是面向发开人员、部署人员和生产人员完 成包括配置、打包和发布的辅助功能。
进一步地,所述分布式技术平台包括:即插即用模块、服务引用 模块、负载均衡模块和备份模块,上述模块相互独立,面向系统提供 相应的支撑服务。下面对上述模块做具体介绍。
即插即用模块,为节点加入和退出集群提供接口,当节点启动时, 技术平台以同步或异步方式按照某种策略(系统按需定制)将此节点 以业务组件透明无感知的方式加入集群的节点集中;反之,当节点退 出时,此节点同样以业务组件透明无感知的方式退出集群的节点集。
服务引用模块为业务组件提供服务引用标签,节点或者其他业务 组件根据所述标签通过服务引用模块实现对业务组件的调用,服务引 用模块根据业务组件在分布式节点的部署情况以及负载均衡策略向提 供服务的节点请求服务,并返回服务结果。技术平台通过统一接口的 代理方法提供业务组件的服务引用。业务组件获得其他业务组件的服 务时调用此方法。
负载均衡模块具体为:分布式技术平台实时监控集群中各个节点 的负载情况,服务应用发生时,分布式技术平台依据负载均衡策略将 服务请求发送到相应节点,以分担系统负荷。
备份模块基于Erlang的分布式支持,用于在节点失效或者崩溃时 对该节点的业务组件以及该节点本身进行备份。备份的具体过程为: 按照分布式应用规则对业务组件进行设定,当业务组件对应的节点失 效或者崩溃时,将该节点承担的业务组件的分布式应用失效转移到备 份节点,当节点恢复时备份节点再将备份的内容移交给原节点,完成 业务组件级备份和移交,将一个节点上的所有分布式应用均转移到备 份节点,则完成节点级备份。
进一步地,所述桩接口具体为:当前业务组件采用桩的方式调用 本地或远程的其他业务组件,其他业务组件的部署细节对于当前业务 组件来说是透明的。采用桩的方式进行本地或远程组件接口调用,表 现形式为组件接口的本地代理。组件对其他组件的服务获取必须通过 组件桩而不能通过组件接口实现。
本实施例还提供了上述基于Erlang的分布式快速开发系统的具体 开发方法,步骤如下:
S1、开发分布式技术平台,为业务组件及其他使用者提供高并发、 高可靠、鲁棒性强的服务保障;
S2、开发分布式业务组件,并由业务组件开发人员根据实际需要 封装出对外开放的服务接口;
S3、桩开发人员根据业务组服务接口,封装成桩模块,以实现业 务组件的分布化;
S4、部署人员依托自动化开发工具生成相应的配置文件,并按节 点类型打成整体包;
S5、生产人员将整体包进行生产存档,并进行板子的烧写维护。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领 域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以 做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
机译: 一种基于复制的分布式对象系统,该复制对象能够根据客户端系统和实体之间的情况来复制必要程度的仅状态信息或唯一信息,并提供其方法
机译: 一种基于屏幕的主机与各种分布式和自由样式的包含项目的交互的多媒体方法和系统,以及与此类系统一起使用的包含信息的项目
机译: 一种基于屏幕的主机与各种分布式和自由样式的包含项目的交互的多媒体方法和系统,以及与此类系统一起使用的包含信息的项目