一種基于彈性云的多點(diǎn)接入方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于彈性云的多點(diǎn)接入方法。
【背景技術(shù)】
[0002] 隨著信息時(shí)代不斷前進(jìn)的腳步,企業(yè)信息化建設(shè)也不斷深入,業(yè)務(wù)系統(tǒng)數(shù)量不斷 增加,各業(yè)務(wù)系統(tǒng)之間數(shù)據(jù)交互,各子業(yè)務(wù)系統(tǒng)與核心業(yè)務(wù)系統(tǒng)之間數(shù)據(jù)交互,諸如此類(lèi)場(chǎng) 景的應(yīng)用需求不斷出現(xiàn)。而隨著企業(yè)的發(fā)展壯大,對(duì)這些系統(tǒng)通訊的要求也越來(lái)越高,原來(lái) 只在自己內(nèi)部局域網(wǎng)應(yīng)用的系統(tǒng)可能就要擴(kuò)展到互聯(lián)網(wǎng)來(lái)使用,比如原來(lái)一套人事管理系 統(tǒng)就只在公司內(nèi)部使用,隨著各地分公司的建立,各分公司也需要使用這套系統(tǒng)并且總公 司也需要所有的數(shù)據(jù)集中到一起統(tǒng)一管理,那么這套系統(tǒng)就必須部署到互聯(lián)網(wǎng)才能讓各地 分公司都能訪問(wèn),而基于網(wǎng)絡(luò)安全性考慮,內(nèi)部私有的系統(tǒng)部署到互聯(lián)網(wǎng)是不合適的,同時(shí) 因?yàn)榫W(wǎng)絡(luò)安全的考慮,不少企業(yè),政府機(jī)關(guān)等都做了內(nèi)外網(wǎng)的隔離,以有限的方式提供內(nèi)外 網(wǎng)的訪問(wèn),也不適宜這種內(nèi)網(wǎng)直接訪問(wèn)外網(wǎng)的方案,這就需要一種可靠安全的方法能讓處 于不同網(wǎng)絡(luò)的業(yè)務(wù)系統(tǒng)能進(jìn)行數(shù)據(jù)交互,也就是能通過(guò)互聯(lián)網(wǎng)來(lái)連接各個(gè)局域網(wǎng),構(gòu)建一 個(gè)"私有網(wǎng)絡(luò)",在這個(gè)"私有網(wǎng)絡(luò)"范圍內(nèi),不能進(jìn)行對(duì)該網(wǎng)絡(luò)外的數(shù)據(jù)交互,但是卻能不受 內(nèi)外網(wǎng)的限制,在各個(gè)節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)交互,只要接入這個(gè)"私有網(wǎng)絡(luò)",就能訪問(wèn)到該網(wǎng) 絡(luò)內(nèi)部任意一個(gè)節(jié)點(diǎn),這樣既保證安全性,又能不受內(nèi)外網(wǎng)限制來(lái)進(jìn)行數(shù)據(jù)交互。
[0003] 目前基于網(wǎng)絡(luò)通訊的眾多技術(shù)與產(chǎn)品,雖然很多都實(shí)現(xiàn)了內(nèi)外網(wǎng)穿透與點(diǎn)對(duì)點(diǎn)數(shù) 據(jù)交互,但基本只是單一應(yīng)用,并沒(méi)有能構(gòu)成這樣一個(gè)"私有網(wǎng)絡(luò)"能夠使接入網(wǎng)絡(luò)的節(jié)點(diǎn) 與其他節(jié)點(diǎn)能進(jìn)行數(shù)據(jù)交互,并且接入的節(jié)點(diǎn)也能提供接入口,構(gòu)成能多點(diǎn)接入的彈性云。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明要解決技術(shù)問(wèn)題是:克服現(xiàn)有技術(shù)的上述不足,利用純軟件技術(shù)手段,提供 一種基于彈性云的多點(diǎn)接入方法,能連接多個(gè)局域網(wǎng)實(shí)現(xiàn)彈性云內(nèi)部各節(jié)點(diǎn)之間的數(shù)據(jù)交 互。
[0005] 為了解決以上技術(shù)問(wèn)題,本發(fā)明提供的一種基于彈性云的多點(diǎn)接入方法,包括以 下特征: 采用通用的標(biāo)準(zhǔn)通訊協(xié)議和接口規(guī)范:為滿足不同業(yè)務(wù)系統(tǒng)的數(shù)據(jù)交互,通訊層必須 和應(yīng)用無(wú)關(guān),采用通用的標(biāo)準(zhǔn)通訊協(xié)議和接口規(guī)范,這樣就可以保證不同的應(yīng)用在通用的 通訊底層上進(jìn)行協(xié)同。
[0006] 提供統(tǒng)一的通訊模塊供調(diào)用:為統(tǒng)一業(yè)務(wù)系統(tǒng)服務(wù)器端,客戶端之間的通訊,底層 通訊模塊對(duì)通訊的實(shí)現(xiàn)與一些通訊協(xié)議進(jìn)行了封裝,服務(wù)端程序,客戶端程序均統(tǒng)一調(diào)用 底層通訊模塊,采用TCP長(zhǎng)連接方式進(jìn)行連接和通訊。應(yīng)用程序的開(kāi)發(fā)可無(wú)需考慮通訊部 分的實(shí)現(xiàn),專注本身功能的實(shí)現(xiàn)。
[0007] 本發(fā)明的部署架構(gòu)包含以下幾個(gè)組成部分: 客戶端:各業(yè)務(wù)系統(tǒng)的客戶端,必須接入彈性云才能連接到具體的業(yè)務(wù)系統(tǒng)服務(wù)器。
[0008] 通訊服務(wù)器:負(fù)責(zé)數(shù)據(jù)的路由與中轉(zhuǎn),保證數(shù)據(jù)能中轉(zhuǎn)到達(dá)目標(biāo)機(jī)器,不需要數(shù)據(jù) 庫(kù),可方便的部署與接入彈性云,在接入的同時(shí)也提供接口可接受其他通訊服務(wù)器與客戶 端的接入。
[0009] 應(yīng)用服務(wù)器:業(yè)務(wù)服務(wù)器,處理特定的業(yè)務(wù),部署企業(yè)的業(yè)務(wù)系統(tǒng),提供各種具體 的應(yīng)用服務(wù)。
[0010] 索引服務(wù)器:連接管理,負(fù)責(zé)分配用戶的索引服務(wù)器,使客戶端知道自己的業(yè)務(wù)數(shù) 據(jù)與哪個(gè)應(yīng)用服務(wù)器進(jìn)行交互。索引服務(wù)器實(shí)際上是應(yīng)用服務(wù)器,提供網(wǎng)絡(luò)中應(yīng)用服務(wù)器 的應(yīng)用與尋址服務(wù)。應(yīng)用服務(wù)器接入網(wǎng)絡(luò)應(yīng)向索引服務(wù)器提供注冊(cè)信息,即自己的ID和提 供的是什么服務(wù)。例如應(yīng)用服務(wù)器1提供的是網(wǎng)上開(kāi)票服務(wù),應(yīng)用服務(wù)器2提供的是稅企 互動(dòng)服務(wù),客戶端連接通訊服務(wù)器后應(yīng)向索引服務(wù)器查詢具體的應(yīng)用服務(wù)器ID,如稅企互 動(dòng)客戶端就能查詢到需要與應(yīng)用服務(wù)器2進(jìn)行數(shù)據(jù)交互。索引服務(wù)器應(yīng)設(shè)為一個(gè)固定的 ID,如127. 0.0.1 (ID,與實(shí)際IP地址無(wú)關(guān)),這樣客戶端可以連接任意一臺(tái)通訊服務(wù)器,向 127. 0. 0. 1的ID發(fā)送查詢請(qǐng)求,獲知具體應(yīng)用的服務(wù)器ID后就可與具體的應(yīng)用服務(wù)器進(jìn)行 數(shù)據(jù)交互。實(shí)現(xiàn)任意地點(diǎn)登錄都可訪問(wèn)相應(yīng)應(yīng)用。
[0011] 因服務(wù)端程序均統(tǒng)一調(diào)用底層通訊模塊,所有服務(wù)器均具有通訊服務(wù)器的功能。
[0012] 服務(wù)端必須有一個(gè)唯一的ID進(jìn)行標(biāo)識(shí),該ID以IP地址形式提供,一般與本機(jī)IP 一致,但也可以任意指定。服務(wù)端之間的數(shù)據(jù)轉(zhuǎn)發(fā)依賴此ID進(jìn)行。底層通訊模塊傳輸?shù)耐?訊數(shù)據(jù)包的包頭中包含發(fā)送方客戶端ID,發(fā)送方服務(wù)器ID,接收方服務(wù)器ID,接收方客戶 端ID,根據(jù)始發(fā)服務(wù)器ID與終點(diǎn)服務(wù)器ID,中間的數(shù)據(jù)轉(zhuǎn)發(fā)由通訊服務(wù)器完成。
[0013] 為保證安全性,服務(wù)器之間的連接必須有授權(quán)認(rèn)證,通過(guò)配置文件進(jìn)行設(shè)置。例如 服務(wù)器A連接服務(wù)器B,A的配置文件中必須有登錄服務(wù)器B的ID和密碼,B的配置文件中 也需要有A的ID和認(rèn)證密碼,兩者匹配才能建立連接。
[0014] 服務(wù)端之間的連接由配置文件指定,底層通訊模塊自動(dòng)根據(jù)配置文件中指定的服 務(wù)器地址連接其他服務(wù)端并交換各自的路由信息,形成網(wǎng)絡(luò)中任意服務(wù)器/客戶端的數(shù)據(jù) 交互可達(dá)。
[0015] 服務(wù)器端之間的連接可以配置為以下3種方式: 1、主動(dòng)連接:服務(wù)程序啟動(dòng)后主動(dòng)連接其他服務(wù)器,這是最常見(jiàn)的方式。
[0016] 2、接受連接:服務(wù)程序啟動(dòng)后并不主動(dòng)連接其他服務(wù)器,而是等待其他服務(wù)器的 連接,適用于位于互聯(lián)網(wǎng)的服務(wù)器。由于內(nèi)外網(wǎng)的隔離,不能連接內(nèi)網(wǎng)的服務(wù)器,只能等待 內(nèi)網(wǎng)的服務(wù)器連接。
[0017] 3、雙向連接:服務(wù)程序啟動(dòng)后主動(dòng)連接其他服務(wù)器,同時(shí)等待該服務(wù)器的連接,即 服務(wù)器之間會(huì)有兩條SOCKET連接,適用于網(wǎng)絡(luò)通訊情況惡劣的環(huán)境,當(dāng)其中一條連接斷開(kāi) 的時(shí)候,底層通訊模塊會(huì)自動(dòng)使用另一條連接傳輸數(shù)據(jù)。由于網(wǎng)絡(luò)情況不穩(wěn)定,可能存在連 接經(jīng)常斷開(kāi)的情況,底層通訊模塊有斷連檢測(cè)及自動(dòng)重連機(jī)制,當(dāng)一條連接斷開(kāi)重連的時(shí) 候,可以使用另一條連接進(jìn)行數(shù)據(jù)傳輸。
[0018] 服務(wù)端之間的數(shù)據(jù)轉(zhuǎn)發(fā)尋址機(jī)制: 數(shù)據(jù)的尋址轉(zhuǎn)發(fā)依賴傳輸數(shù)據(jù)包頭中的服務(wù)器ID與客戶端ID。底層通訊模塊會(huì)自動(dòng) 在傳輸?shù)臄?shù)據(jù)包加上該數(shù)據(jù)包頭。數(shù)據(jù)包頭有4個(gè)字段,指定了目標(biāo)服務(wù)器ID,目標(biāo)客戶 端ID,發(fā)送者服務(wù)器ID,發(fā)送者(客戶端)ID??蛻舳苏{(diào)用底層通訊模塊發(fā)送數(shù)據(jù)的時(shí)候可 分別指定服務(wù)器ID和客戶端ID,也可指定其中任意一個(gè)或兩者均不指定,可分為以下幾種 情況: 1、指定服務(wù)器ID和客戶端ID :通訊服務(wù)器將數(shù)據(jù)轉(zhuǎn)發(fā)到指定服務(wù)器,該服務(wù)器再將數(shù) 據(jù)轉(zhuǎn)發(fā)到指定客戶端。指定的客戶端必須已連接到指定服務(wù)器,否則數(shù)據(jù)轉(zhuǎn)發(fā)失敗。
[0019] 2、指定客戶端ID :通訊服務(wù)器將數(shù)據(jù)直接轉(zhuǎn)發(fā)到指定客戶端,該客戶端必須已連 接通訊服務(wù)器。這種情況是同一服務(wù)端的客戶端之間的數(shù)據(jù)交互。
[0020] 3、指定服務(wù)器ID:該服務(wù)器ID-般是應(yīng)用服務(wù)器的ID,通訊服務(wù)器