一種基于Erlang的分布式快速開發(fā)系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種基于Erlang的分布式快速開發(fā)系統(tǒng)及方法,屬于網(wǎng)絡通信【技術(shù)領域】,所述系統(tǒng)包括:分布式技術(shù)平臺,用于提供非功能性系統(tǒng)支撐服務,通過統(tǒng)一接口與業(yè)務組件進行交互;業(yè)務組件,用于完成與具體業(yè)務相關(guān)的功能性服務,通過統(tǒng)一接口與分布式技術(shù)平臺進行交互,不同業(yè)務組件之間通過樁接口進行調(diào)用;自動化工具,用于完成包括配置、打包和發(fā)布的輔助功能。本發(fā)明所述一種基于Erlang的分布式快速開發(fā)系統(tǒng)及方法能夠降低甚至消除業(yè)務組件與技術(shù)平臺之間的耦合,并且操作簡單,可用性和可靠性較高。
【專利說明】—種基于Erlang的分布式快速開發(fā)系統(tǒng)及方法
【技術(shù)領域】
[0001]本發(fā)明涉及網(wǎng)絡通信【技術(shù)領域】,尤其涉及一種基于Erlang的分布式快速開發(fā)系統(tǒng)及方法。
【背景技術(shù)】
[0002]傳統(tǒng)的分布式開發(fā)模型有OMG組織提出的CORBA (公共對象請求代理體系結(jié)構(gòu))、Sun公司提出的EJB (企業(yè)級JavaBean)等。CORBA體系結(jié)構(gòu)由三部分組成:(I)對象請求代理0RB,作為分布式對象通信基礎設施;(2) IDL接口定義語言的語法、語義以及到各種程序語言的映射;(3) ORB間通信協(xié)議G10/I Ι0Ρ,作為保證互操作性的標準。EJB體系結(jié)構(gòu)是基于組件的開發(fā)模式,分為實體組件、會話組件和消息驅(qū)動組件三大類,具有很好的規(guī)范性。在德訊科技股份有限公司的發(fā)明專利“面向?qū)ο蟮闹虚g件分布式系統(tǒng)開發(fā)平臺”中,客戶端與服務器端采用Web訪問,服務器端與各設備間采用ICE接口進行通信。
[0003]但是,傳統(tǒng)的分布式開發(fā)模型具有以下問題:
[0004]首先,傳統(tǒng)的分布式開發(fā)模型中業(yè)務組件和技術(shù)平臺緊密耦合,功能特性和非功能特性相互交織,過于側(cè)重分布式系統(tǒng)中分布策略及性能優(yōu)化,使得組件之間的調(diào)用關(guān)系錯綜復雜,導致開發(fā)周期變長,難以應對業(yè)務功能需求的快速變化以及后期維護。
[0005]其次,傳統(tǒng)的分布式開發(fā)模型的規(guī)格說明過于復雜,各類文檔說明過于龐大,導致程序調(diào)試時間長,代碼復雜,重復設計等缺點。
[0006]再次,傳統(tǒng)的分布式開發(fā)模型為了滿足各種分布式系統(tǒng)的諸多需求,僅提供基礎分布式服務,并未統(tǒng)一考慮模型級的高可靠和高可用特性。
[0007]因此,急需一種新的開發(fā)模型能夠降低甚至消除業(yè)務組件與技術(shù)平臺之間的耦合,并且操作簡單,可用性和可靠性較高的分布式快速開發(fā)系統(tǒng)。
【發(fā)明內(nèi)容】
[0008](一)要解決的技術(shù)問題
[0009]本發(fā)明所要解決的技術(shù)問題是:如何提供一種分布式快速開發(fā)系統(tǒng)及方法,能夠消除業(yè)務組件與技術(shù)平臺之間的耦合,并且操作簡單,可用性和可靠性高。
[0010](二)技術(shù)方案
[0011]為了解決上述技術(shù)問題,一方面,本發(fā)明提供了一種基于Erlang的分布式快速開發(fā)系統(tǒng),王要包括:
[0012]分布式技術(shù)平臺,包括即插即用模塊、服務引用模塊、負載均衡模塊和備份模塊,用于提供非功能性系統(tǒng)支撐服務,通過統(tǒng)一接口與業(yè)務組件進行交互;
[0013]業(yè)務組件,用于完成與具體業(yè)務相關(guān)的功能性服務,通過統(tǒng)一接口與分布式技術(shù)平臺進行交互,不同業(yè)務組件之間通過樁接口進行調(diào)用;
[0014]自動化工具,用于完成包括配置、打包和發(fā)布的輔助功能。
[0015]進一步地,所述分布式技術(shù)平臺包括:即插即用模塊、服務引用模塊、負載均衡模塊和備份模塊,上述模塊相互獨立,面向系統(tǒng)提供相應的支撐服務。
[0016]具體地,所述即插即用模塊基于Erlang虛擬機的天然透明性支持,采用同步或者異步的方式,使節(jié)點加入或者退出集群時對于業(yè)務組件來說透明無感。
[0017]具體地,所述備份模塊基于Erlang的failover和takeover支持,用于在節(jié)點失效或者崩潰時對該節(jié)點的業(yè)務組件以及該節(jié)點本身進行備份;
[0018]備份的具體過程為:按照分布式應用規(guī)則對業(yè)務組件進行設定,當業(yè)務組件對應的節(jié)點失效或者崩潰時,將該節(jié)點承擔的業(yè)務組件的分布式應用失效轉(zhuǎn)移到備份節(jié)點,完成業(yè)務組件級備份,將一個節(jié)點上的所有分布式應用均轉(zhuǎn)移到備份節(jié)點,則完成節(jié)點級備份。
[0019]具體地,所述服務引用模塊基于Erlang的消息機制和RPC支持,為業(yè)務組件提供服務引用標簽,節(jié)點或者其他業(yè)務組件根據(jù)所述標簽通過服務引用模塊實現(xiàn)對業(yè)務組件的調(diào)用,服務引用模塊根據(jù)業(yè)務組件在分布式節(jié)點的部署情況以及負載均衡策略向提供服務的節(jié)點請求服務,并返回服務結(jié)果。
[0020]具體地,所述負載均衡模塊具體為:分布式技術(shù)平臺實時監(jiān)控集群中各個節(jié)點的負載情況,服務應用發(fā)生時,分布式技術(shù)平臺依據(jù)負載均衡策略將服務請求發(fā)送到相應節(jié)點,以分擔系統(tǒng)負荷。
[0021]進一步地,所述樁接口具體為:當前業(yè)務組件采用樁的方式調(diào)用本地或遠程的其他業(yè)務組件,其他業(yè)務組件的部署細節(jié)對于當前業(yè)務組件來說是透明的。
[0022]另一方面,本發(fā)明還提供了一種基于Erlang的分布式快速開發(fā)方法,具體包括如下步驟:
[0023]S1、開發(fā)分布式技術(shù)平臺,為業(yè)務組件及其他使用者提供高并發(fā)、高可靠、魯棒性強的服務保障;
[0024]S2、開發(fā)分布式業(yè)務組件,并根據(jù)實際需要封裝出對外開放的服務接口 ;
[0025]S3、根據(jù)業(yè)務組服務接口,封裝成樁模塊,以實現(xiàn)業(yè)務組件的分布化;
[0026]S4、依托自動化開發(fā)工具生成相應的配置文件,并按節(jié)點類型打成整體包;
[0027]S5、將整體包進行生產(chǎn)存檔,并進行電路板的燒寫維護。
[0028](三)有益效果
[0029]上述技術(shù)方案有如下優(yōu)點:
[0030]本發(fā)明充分利用Erlang的分布式特性,業(yè)務組件與技術(shù)平臺從邏輯上解耦,實現(xiàn)了系統(tǒng)功能性與非功能性需求的分離。并且通過自動化工具全面輔助系統(tǒng)開發(fā)過程,使得整個系統(tǒng)具備快速開發(fā)、輕量級和高可用的特點。
[0031]業(yè)務組件應用分布式代理的思想,通過統(tǒng)一接口和樁接口提供服務,輕量地實現(xiàn)了分布式業(yè)務組件的部署和運行,提高了業(yè)務組件的可移植性。
[0032]業(yè)務組件從技術(shù)平臺的體系結(jié)構(gòu)中獨立出來,使得技術(shù)平臺在不同系統(tǒng)中的復用成為可能,增強了系統(tǒng)的可用性。
[0033]技術(shù)平臺通過一系列技術(shù)手段保證了系統(tǒng)的可靠性和可用性,包括備份技術(shù)完成節(jié)點級和應用級的失效轉(zhuǎn)移和接管;即插即用技術(shù)完成節(jié)點自動探測;負載均衡技術(shù)完成系統(tǒng)高并發(fā)服務時負荷分擔等。
[0034]結(jié)合附圖閱讀本發(fā)明實施方式的詳細描述后,本發(fā)明的其他特點和優(yōu)點將變得更加清楚。
【專利附圖】
【附圖說明】
[0035]圖1為本發(fā)明實施例基于Erlang的分布式快速開發(fā)系統(tǒng)結(jié)構(gòu)不意圖。
【具體實施方式】
[0036]下面結(jié)合說明書附圖和實施例,對本發(fā)明的【具體實施方式】作進一步詳細描述。以下實施例僅用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
[0037]本實施例提供了一種基于Erlang的分布式快速開發(fā)系統(tǒng),主要包括:
[0038]分布式技術(shù)平臺,包括即插即用模塊、服務引用模塊、負載均衡模塊和備份模塊,用于提供非功能性系統(tǒng)支撐服務,通過統(tǒng)一接口與業(yè)務組件進行交互。
[0039]業(yè)務組件,用于完成與具體業(yè)務相關(guān)的功能性服務,通過統(tǒng)一接口與分布式技術(shù)平臺進行交互,不同業(yè)務組件之間通過樁接口進行調(diào)用。由于本系統(tǒng)能夠提供的具體業(yè)務多種多樣,這些業(yè)務對應的業(yè)務組件也就多種多樣,往往需要多種業(yè)務組件的相互調(diào)用來完成具體的應用功能。
[0040]自動化工具的主要作用是面向發(fā)開人員、部署人員和生產(chǎn)人員完成包括配置、打包和發(fā)布的輔助功能。
[0041]進一步地,所述分布式技術(shù)平臺包括:即插即用模塊、服務引用模塊、負載均衡模塊和備份模塊,上述模塊相互獨立,面向系統(tǒng)提供相應的支撐服務。下面對上述模塊做具體介紹。
[0042]即插即用模塊,為節(jié)點加入和退出集群提供接口,當節(jié)點啟動時,技術(shù)平臺以同步或異步方式按照某種策略(系統(tǒng)按需定制)將此節(jié)點以業(yè)務組件透明無感知的方式加入集群的節(jié)點集中;反之,當節(jié)點退出時,此節(jié)點同樣以業(yè)務組件透明無感知的方式退出集群的節(jié)點集。
[0043]服務引用模塊為業(yè)務組件提供服務引用標簽,節(jié)點或者其他業(yè)務組件根據(jù)所述標簽通過服務引用模塊實現(xiàn)對業(yè)務組件的調(diào)用,服務引用模塊根據(jù)業(yè)務組件在分布式節(jié)點的部署情況以及負載均衡策略向提供服務的節(jié)點請求服務,并返回服務結(jié)果。技術(shù)平臺通過統(tǒng)一接口的代理方法提供業(yè)務組件的服務引用。業(yè)務組件獲得其他業(yè)務組件的服務時調(diào)用此方法。
[0044]負載均衡模塊具體為:分布式技術(shù)平臺實時監(jiān)控集群中各個節(jié)點的負載情況,月艮務應用發(fā)生時,分布式技術(shù)平臺依據(jù)負載均衡策略將服務請求發(fā)送到相應節(jié)點,以分擔系統(tǒng)負荷。
[0045]備份模塊基于Erlang的分布式支持,用于在節(jié)點失效或者崩潰時對該節(jié)點的業(yè)務組件以及該節(jié)點本身進行備份。備份的具體過程為:按照分布式應用規(guī)則對業(yè)務組件進行設定,當業(yè)務組件對應的節(jié)點失效或者崩潰時,將該節(jié)點承擔的業(yè)務組件的分布式應用失效轉(zhuǎn)移到備份節(jié)點,當節(jié)點恢復時備份節(jié)點再將備份的內(nèi)容移交給原節(jié)點,完成業(yè)務組件級備份和移交,將一個節(jié)點上的所有分布式應用均轉(zhuǎn)移到備份節(jié)點,則完成節(jié)點級備份。
[0046]進一步地,所述樁接口具體為:當前業(yè)務組件采用樁的方式調(diào)用本地或遠程的其他業(yè)務組件,其他業(yè)務組件的部署細節(jié)對于當前業(yè)務組件來說是透明的。采用樁的方式進行本地或遠程組件接口調(diào)用,表現(xiàn)形式為組件接口的本地代理。組件對其他組件的服務獲取必須通過組件樁而不能通過組件接口實現(xiàn)。
[0047]本實施例還提供了上述基于Erlang的分布式快速開發(fā)系統(tǒng)的具體開發(fā)方法,步驟如下:
[0048]S1、開發(fā)分布式技術(shù)平臺,為業(yè)務組件及其他使用者提供高并發(fā)、高可靠、魯棒性強的服務保障;
[0049]S2、開發(fā)分布式業(yè)務組件,并由業(yè)務組件開發(fā)人員根據(jù)實際需要封裝出對外開放的服務接口;
[0050]S3、樁開發(fā)人員根據(jù)業(yè)務組服務接口,封裝成樁模塊,以實現(xiàn)業(yè)務組件的分布化;
[0051]S4、部署人員依托自動化開發(fā)工具生成相應的配置文件,并按節(jié)點類型打成整體包;
[0052]S5、生產(chǎn)人員將整體包進行生產(chǎn)存檔,并進行板子的燒寫維護。
[0053]以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本【技術(shù)領域】的普通技術(shù)人員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進和變型,這些改進和變型也應視為本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種基于Erlang的分布式快速開發(fā)系統(tǒng),其特征在于,包括: 分布式技術(shù)平臺,用于提供非功能性系統(tǒng)支撐服務,通過統(tǒng)一接口與業(yè)務組件進行交互; 業(yè)務組件,用于完成與具體業(yè)務相關(guān)的功能性服務,通過統(tǒng)一接口與分布式技術(shù)平臺進行交互,不同業(yè)務組件之間通過樁接口進行調(diào)用; 自動化工具,用于完成包括配置、打包和發(fā)布的輔助功能。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述分布式技術(shù)平臺包括:即插即用模塊、服務引用模塊、負載均衡模塊和備份模塊,上述模塊相互獨立,面向系統(tǒng)提供相應的支撐服務。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述即插即用模塊基于Erlang虛擬機的天然透明性支持,采用同步或者異步的方式,使節(jié)點加入或者退出集群時對于業(yè)務組件來說透明無感。
4.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述備份模塊基于Erlang的failover和takeover支持,用于在節(jié)點失效或者崩潰時對該節(jié)點的業(yè)務組件以及該節(jié)點本身進行備份; 備份的具體過程為:按照分布式應用規(guī)則對業(yè)務組件進行設定,當業(yè)務組件對應的節(jié)點失效或者崩潰時,將該節(jié)點承擔的業(yè)務組件的分布式應用失效轉(zhuǎn)移到備份節(jié)點,完成業(yè)務組件級備份,將一個節(jié)點上的所有分布式應用均轉(zhuǎn)移到備份節(jié)點,則完成節(jié)點級備份。
5.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述服務引用模塊基于Erlang的消息機制和RPC支持,為業(yè)務組件提供服務引用標簽,節(jié)點或者其他業(yè)務組件根據(jù)所述標簽通過服務引用模塊實現(xiàn)對業(yè)務組件的調(diào)用,服務引用模塊根據(jù)業(yè)務組件在分布式節(jié)點的部署情況以及負載均衡策略向提供服務的節(jié)點請求服務,并返回服務結(jié)果。
6.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述負載均衡模塊用于監(jiān)控集群中各個節(jié)點的負載情況,服務應用發(fā)生時,負載均衡模塊依據(jù)負載均衡策略將服務請求發(fā)送到相應節(jié)點,以分擔系統(tǒng)負荷。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述樁接口具體為:當前業(yè)務組件采用樁的方式調(diào)用本地或遠程的其他業(yè)務組件,其他業(yè)務組件的部署細節(jié)對于當前業(yè)務組件來說是透明的。
8.一種基于Erlang的分布式快速開發(fā)方法,其特征在于,包括如下步驟: S1、開發(fā)分布式技術(shù)平臺,為業(yè)務組件及其他使用者提供高并發(fā)、高可靠、魯棒性強的服務保障; S2、開發(fā)分布式業(yè)務組件,并根據(jù)實際需要封裝出對外開放的服務接口; S3、根據(jù)業(yè)務組服務接口,封裝成樁模塊,以實現(xiàn)業(yè)務組件的分布化; S4、依托自動化開發(fā)工具生成相應的配置文件,并按節(jié)點類型打成整體包; S5、將整體包進行生產(chǎn)存檔,并進行電路板的燒寫維護。
【文檔編號】G06F9/44GK103491133SQ201310379157
【公開日】2014年1月1日 申請日期:2013年8月27日 優(yōu)先權(quán)日:2013年8月27日
【發(fā)明者】張昌昌, 周星, 曹睿學, 葉瑯 申請人:興唐通信科技有限公司