[發(fā)明專利]一種PaaS與ErlangApp應用引擎架構執(zhí)行流程有效
| 申請?zhí)枺?/td> | 201310655663.2 | 申請日: | 2013-12-05 |
| 公開(公告)號: | CN103618732B | 公開(公告)日: | 2017-05-03 |
| 發(fā)明(設計)人: | 馬太航 | 申請(專利權)人: | 用友網(wǎng)絡科技股份有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06 |
| 代理公司: | 北京中恒高博知識產權代理有限公司11249 | 代理人: | 劉洪京 |
| 地址: | 100094 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 paas erlang app 應用 引擎 架構 執(zhí)行 流程 | ||
技術領域
本發(fā)明屬于辦公軟件領域,尤其涉及一種PaaS與Erlang App應用引擎架構執(zhí)行流程。
背景技術
目前市場上針對PaaS下APP應用架構主要采用HTTP和Socket2種方式進行通訊,分別處理長短連接,但是沒有一套方案是整合了2者的優(yōu)點并融入到APP實際應用中去,具體缺陷如下:
HTTP方式:
(1)基于B/S開發(fā)的程序,大部分采用瀏覽器和服務端的結構,瀏覽器方面如果不采用插件方式,不能實現(xiàn)實時消息通訊和交互,簡單來說無法實現(xiàn)服務器推送數(shù)據(jù)到瀏覽器。
(2)采用HTML方式開發(fā)的程序實現(xiàn)消息實時通訊,只能采用Ajax輪詢訪問服務端的方式,這樣方式在即時性上是根據(jù)請求服務器的時間粒度來保障,對服務器IO和壓力造成極大負擔,資源消耗嚴重。
(3)由于應用的復雜性和現(xiàn)有市面上大部分瀏覽器的解析標準,大量短請求會造成瀏覽器JavaScript解析器崩潰,占用大量客戶端資源。
(4)由于大量前端短連接導致事件處理管理困難。
(5)應用服務器只能采用HTTP web服務器或者WebService,無法實現(xiàn)高并發(fā)IO處理,無法高效對線程進行管理,對于快速開發(fā)實現(xiàn)難度大。
(6)技術限制導致開發(fā)應用局限度高,無法實現(xiàn)類似MMORPG(多人在 線游戲)這樣的復雜場景。
SOCKET方式:
(1)客戶端必須安裝插件,例如:Flash/Flex、Java Swing、Unity3D等,對于用戶首次UE(用戶體驗)來講體驗差。
(2)跨平臺能力差,在一些PAD端、移動端、虛擬終端中的瀏覽器無法識別支持SOCKET連接的插件。
(3)單臺服務器負載IO壓力大,例如:標準DELL R410(雙核4G內存)支持的最大連接量在4000上下幅度,其中不包括任何業(yè)務數(shù)據(jù)在里面。
(4)實現(xiàn)復雜分布式線程管理難度高,開發(fā)周期長,人員技能專業(yè)性需求高,在整合行業(yè)內尚無較好整合APP的框架。
(5)采用C++、Java開發(fā)的服務器主要面向業(yè)務,無法面向并發(fā)編程。采用Erlang、GoLang開發(fā)的服務器主要面向并發(fā)處理,支持邏輯運算能力較差,目前沒有一套方案可以高效的整合2者。
在實現(xiàn)現(xiàn)有技術的技術方案中,發(fā)現(xiàn)現(xiàn)有技術存在如下技術問題:
目前行業(yè)內沒有一套高效的方案來整合HTTP與SOCKET方式下APP存在的上述問題,對于行業(yè)內大部分公司實現(xiàn)實時交互APP而言,要不舍棄部分業(yè)務和用戶體驗,要不犧牲服務器、帶寬等資源,除了這2種方式,目前尚無存在其他更好的架構模型。
發(fā)明內容
本發(fā)明實施例的目的在于提供一種PaaS與Erlang App應用引擎架構執(zhí)行流程,旨在解決現(xiàn)有技術中無法整合HTTP與SOCKET方式下APP存在的問題。
一方面,提供一種PaaS與Erlang App應用引擎架構執(zhí)行流程,所述流程包括:
客戶端采用Javascript中Ajax方式發(fā)起長拉請求到服務端,參數(shù)經(jīng)過服務端語義解析模塊連接到Erlang并發(fā)模型;
Erlang并發(fā)模型引入Erlang OTP框架,獲取被分配資源ID,將獲取的資源ID注冊到系統(tǒng)公共組件模塊中去;
等待系統(tǒng)消息傳遞模型發(fā)送返回結果,當接收到的返回結果為正常響應消息時,會通過語義解析模塊將結果返回到前端客戶端;當接收到的返回結果為異常響應消息后,會重新引入Erlang OTP框架,獲取被分配資源ID,重新將分配資源ID中注冊到系統(tǒng)公共組件模塊中去,然后重新執(zhí)行返回結果操作;如果沒有消息被接收,當前線程會被Erlang并發(fā)模型托管接收進入線程休眠狀態(tài),直到有消息更新。
可選的,所述流程在客戶端采用Javascript中Ajax方式發(fā)起長拉請求到服務端之前還包括:
當客戶端被啟動時候,Javascript腳本會啟動前端監(jiān)控重啟模塊,并初始化Ajax請求器,Ajax請求器會發(fā)出客戶端請求給服務端,并接收服務器返回的消息,通過前端消息字典解析消息內容,并循環(huán)執(zhí)行;
所述監(jiān)控重啟模塊,用于保證Ajax請求器有且僅有一個請求被發(fā)出。
可選的,所述Ajax請求器會發(fā)出客戶端請求給服務端具體包括:
Ajax請求器發(fā)送Json格式數(shù)據(jù)給服務端語義解析模塊以使語義解析模塊會根據(jù)參數(shù)字典解析Json格式,并將Json數(shù)據(jù)轉換成Bit宏數(shù)據(jù)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于用友網(wǎng)絡科技股份有限公司,未經(jīng)用友網(wǎng)絡科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310655663.2/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。





