CN103491133A - 一种基于Erlang的分布式快速开发系统及方法 - Google Patents
一种基于Erlang的分布式快速开发系统及方法 Download PDFInfo
- Publication number
- CN103491133A CN103491133A CN201310379157.5A CN201310379157A CN103491133A CN 103491133 A CN103491133 A CN 103491133A CN 201310379157 A CN201310379157 A CN 201310379157A CN 103491133 A CN103491133 A CN 103491133A
- Authority
- CN
- China
- Prior art keywords
- service
- node
- distributed
- service component
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种基于Erlang的分布式快速开发系统及方法,属于网络通信技术领域,所述系统包括:分布式技术平台,用于提供非功能性系统支撑服务,通过统一接口与业务组件进行交互;业务组件,用于完成与具体业务相关的功能性服务,通过统一接口与分布式技术平台进行交互,不同业务组件之间通过桩接口进行调用;自动化工具,用于完成包括配置、打包和发布的辅助功能。本发明所述一种基于Erlang的分布式快速开发系统及方法能够降低甚至消除业务组件与技术平台之间的耦合,并且操作简单,可用性和可靠性较高。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于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、生产人员将整体包进行生产存档,并进行板子的烧写维护。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (8)
1.一种基于Erlang的分布式快速开发系统,其特征在于,包括:
分布式技术平台,用于提供非功能性系统支撑服务,通过统一接口与业务组件进行交互;
业务组件,用于完成与具体业务相关的功能性服务,通过统一接口与分布式技术平台进行交互,不同业务组件之间通过桩接口进行调用;
自动化工具,用于完成包括配置、打包和发布的辅助功能。
2.根据权利要求1所述的系统,其特征在于,所述分布式技术平台包括:即插即用模块、服务引用模块、负载均衡模块和备份模块,上述模块相互独立,面向系统提供相应的支撑服务。
3.根据权利要求2所述的系统,其特征在于,所述即插即用模块基于Erlang虚拟机的天然透明性支持,采用同步或者异步的方式,使节点加入或者退出集群时对于业务组件来说透明无感。
4.根据权利要求2所述的系统,其特征在于,所述备份模块基于Erlang的failover和takeover支持,用于在节点失效或者崩溃时对该节点的业务组件以及该节点本身进行备份;
备份的具体过程为:按照分布式应用规则对业务组件进行设定,当业务组件对应的节点失效或者崩溃时,将该节点承担的业务组件的分布式应用失效转移到备份节点,完成业务组件级备份,将一个节点上的所有分布式应用均转移到备份节点,则完成节点级备份。
5.根据权利要求2所述的系统,其特征在于,所述服务引用模块基于Erlang的消息机制和RPC支持,为业务组件提供服务引用标签,节点或者其他业务组件根据所述标签通过服务引用模块实现对业务组件的调用,服务引用模块根据业务组件在分布式节点的部署情况以及负载均衡策略向提供服务的节点请求服务,并返回服务结果。
6.根据权利要求2所述的系统,其特征在于,所述负载均衡模块用于监控集群中各个节点的负载情况,服务应用发生时,负载均衡模块依据负载均衡策略将服务请求发送到相应节点,以分担系统负荷。
7.根据权利要求1所述的系统,其特征在于,所述桩接口具体为:当前业务组件采用桩的方式调用本地或远程的其他业务组件,其他业务组件的部署细节对于当前业务组件来说是透明的。
8.一种基于Erlang的分布式快速开发方法,其特征在于,包括如下步骤:
S1、开发分布式技术平台,为业务组件及其他使用者提供高并发、高可靠、鲁棒性强的服务保障;
S2、开发分布式业务组件,并根据实际需要封装出对外开放的服务接口;
S3、根据业务组服务接口,封装成桩模块,以实现业务组件的分布化;
S4、依托自动化开发工具生成相应的配置文件,并按节点类型打成整体包;
S5、将整体包进行生产存档,并进行电路板的烧写维护。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310379157.5A CN103491133B (zh) | 2013-08-27 | 2013-08-27 | 一种基于Erlang的分布式快速开发系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310379157.5A CN103491133B (zh) | 2013-08-27 | 2013-08-27 | 一种基于Erlang的分布式快速开发系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103491133A true CN103491133A (zh) | 2014-01-01 |
CN103491133B CN103491133B (zh) | 2017-02-01 |
Family
ID=49831086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310379157.5A Active CN103491133B (zh) | 2013-08-27 | 2013-08-27 | 一种基于Erlang的分布式快速开发系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103491133B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141630A (zh) * | 2015-09-18 | 2015-12-09 | 厦门市光娱投资管理有限公司 | 一种服务器与客户端通信数据自动解析的方法和装置 |
CN107102847A (zh) * | 2016-02-23 | 2017-08-29 | 中国水电工程顾问集团有限公司 | 基于微服务的软件开发方法、装置及系统 |
CN107645557A (zh) * | 2017-09-29 | 2018-01-30 | 厦门大宛科技有限公司 | 一种基于业务组件的集成应用系统 |
CN109683859A (zh) * | 2018-12-04 | 2019-04-26 | 郑州云海信息技术有限公司 | 一种计算机软件开发管理平台,设备及可读存储介质 |
CN110069278A (zh) * | 2019-03-25 | 2019-07-30 | 福州智永信息科技有限公司 | 一种自动化分布式多任务打包方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414889A (zh) * | 2008-11-25 | 2009-04-22 | 中国网络通信集团公司 | 业务开发系统和方法 |
US20120222015A1 (en) * | 2011-02-25 | 2012-08-30 | International Business Machines Corporation | Security Role Testing Using an Embeddable Container and Properties Object |
-
2013
- 2013-08-27 CN CN201310379157.5A patent/CN103491133B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414889A (zh) * | 2008-11-25 | 2009-04-22 | 中国网络通信集团公司 | 业务开发系统和方法 |
US20120222015A1 (en) * | 2011-02-25 | 2012-08-30 | International Business Machines Corporation | Security Role Testing Using an Embeddable Container and Properties Object |
Non-Patent Citations (2)
Title |
---|
王文龙: "分布式软件开发平台的设计与实施", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 8, 15 August 2012 (2012-08-15) * |
陈寅秋: "Erlang—一种支持大规模并发处理的高可靠性编程语言", 《电脑与电信》, no. 11, 10 November 2009 (2009-11-10) * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141630A (zh) * | 2015-09-18 | 2015-12-09 | 厦门市光娱投资管理有限公司 | 一种服务器与客户端通信数据自动解析的方法和装置 |
CN105141630B (zh) * | 2015-09-18 | 2018-01-26 | 厦门市光娱投资管理有限公司 | 一种服务器与客户端通信数据自动解析的方法和装置 |
CN107102847A (zh) * | 2016-02-23 | 2017-08-29 | 中国水电工程顾问集团有限公司 | 基于微服务的软件开发方法、装置及系统 |
CN107645557A (zh) * | 2017-09-29 | 2018-01-30 | 厦门大宛科技有限公司 | 一种基于业务组件的集成应用系统 |
CN107645557B (zh) * | 2017-09-29 | 2020-08-14 | 厦门大宛科技有限公司 | 一种基于业务组件的集成应用系统 |
CN109683859A (zh) * | 2018-12-04 | 2019-04-26 | 郑州云海信息技术有限公司 | 一种计算机软件开发管理平台,设备及可读存储介质 |
CN109683859B (zh) * | 2018-12-04 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种计算机软件开发管理平台,设备及可读存储介质 |
CN110069278A (zh) * | 2019-03-25 | 2019-07-30 | 福州智永信息科技有限公司 | 一种自动化分布式多任务打包方法及系统 |
CN110069278B (zh) * | 2019-03-25 | 2022-07-12 | 宝宝巴士股份有限公司 | 一种自动化分布式多任务打包方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103491133B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103491133A (zh) | 一种基于Erlang的分布式快速开发系统及方法 | |
CN100426751C (zh) | 保证集群系统中配置信息一致的方法 | |
CN101442555B (zh) | 面向hla的仿真资源代理服务系统 | |
WO2007059465A2 (en) | Server side application integration framework | |
CN102880475A (zh) | 计算机软件系统中基于云计算的实时事件处理系统及方法 | |
CN111124277A (zh) | 一种深度学习数据集缓存方法、系统、终端及存储介质 | |
CN110955534A (zh) | 一种基于中间件的业务流程自动化系统及方法 | |
CN111381983A (zh) | 虚拟试验靶场验证系统的轻量级消息中间件系统及方法 | |
CN106385330B (zh) | 一种网络功能虚拟化编排器的实现方法及装置 | |
CN104954458A (zh) | 一种基于龙芯平台的云操作系统的部署方法 | |
CN109739640A (zh) | 一种基于申威架构的容器资源管理系统 | |
CN111541599B (zh) | 基于数据总线的集群软件系统及方法 | |
CN113630265A (zh) | 一种基于智能网卡的虚拟网络冗余备份方法及装置 | |
Li et al. | Federate migration in a service oriented hla rti | |
CN115145683A (zh) | 云服务实现方法及装置 | |
CN111158949A (zh) | 容灾架构的配置方法、切换方法及装置、设备和存储介质 | |
CN111741135A (zh) | 一种混合云灾备系统及其控制方法 | |
KR20080024751A (ko) | 임베디드 단말의 OSGi 미들웨어 환경에서 이원화된애플리케이션 관리를 통한 애플리케이션 경량화를 위한장치 및 그 방법 | |
CN102684930B (zh) | 基于ice的分布式应用高可靠性的实现系统的运行方法 | |
CN103140851A (zh) | 包括中间件机环境的系统 | |
CN101459690B (zh) | 一种无线公共对象请求代理结构应用中的容错方法 | |
CN114615268B (zh) | 基于Kubernetes集群的服务网络、监控节点、容器节点及设备 | |
CN116243930A (zh) | 多版本并行环境设计方法及搭建系统 | |
CN112398668B (zh) | 一种基于IaaS集群的云平台和节点的切换方法 | |
Furda et al. | Developing a microservices integration layer for next-generation rail operations centers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |