物理隔離下的數據交換平臺難點解析與實踐(一)

目錄數據庫

第零章、前言:爲何?作什麼?怎麼作?

最近帶隊作了公司的一個項目,叫數據交換平臺,旨在物理隔離的狀況下對多端業務系統進行數據的加密、傳輸、監控。安全

正好這個項目的架構師也在公司作了一次架構層面的技術分享,我便把這次分享和我在項目實踐中遇到的一些坑一塊兒整理出來,造成本系列文章。網絡

本系列文章介紹在物理隔離的網絡條件下進行數據交換的難點,以及如何保證文件交換的可靠性和安全性,如何與業務系統作到低耦合。架構

本文的目的在於跟讀者一塊兒經歷整個項目,看看項目之初咱們爲何去啓動這個項目,項目的邊界在哪裏?socket

項目啓動後咱們爲何去這樣架構和設計?爲何作這樣的選型?加密

再看看項目之中咱們怎樣去解決斷點續傳、文件加解密、文件傳輸監控、文件存儲策略、多節點集羣等方面的問題?架構設計

最後再看看項目結束以後咱們又收穫了什麼?是否真正地解決了問題?還有沒有可改進的地方?設計

第一章、數據交換平臺的一些基本概念

1.1 數據交換與交換平臺

數據交換在通常意義上其實是指物理硬件上的電路交換,而咱們本次探討的內容則是軟件系統間的數據交換實現。orm

那麼軟件系統中的數據交換都有哪些類型呢?

  • API接口

這應該是咱們最經常使用的一種數據交換方式了。但是,API接口也算是數據交換嗎?

事實上,咱們全部的ESB、webService、API網關、RPC、MQ等等,都是在作系統間通訊的工做。

咱們想想,不一樣的系統間通訊什麼內容呢?不就是靈與靈的交流、心與心的溝通,嗯,數據跟數據的交換嗎?

  • 共庫

這應該是最簡單的一種交換方式了,我把數據放到這個庫,而後給你開個只讀用戶,或者對你開放同義詞、視圖權限,我寫你讀,你寫我讀。

  • ETL

ETL是英文Extract-Transform-Load的縮寫,指將數據從源端抽取取、轉換、加載到目標端的一個過程。

ETL經常用在數據倉庫,但其實並不限於數據倉庫。

  • 數據交換平臺

在個人理解中,數據交換平臺其實就是ETL的一個擴展集,它能夠對多個應用子系統進行信息/數據的傳輸及共享,對各類分佈異構系統進行互聯互通,創建中心數據庫,完成數據的抽取、集中、加載、展示,有着統一的數據處理和交換方法。

1.2 什麼是物理隔離?

那咱們本次要說的數據交換平臺跟上面定義中的交換平臺有什麼區別呢?

爲何咱們的文章標題中要加一個物理隔離呢?

實際上在咱們軟件系統數據傳輸中,大部分都是經過TCP協議來通訊的,而在物理隔離的狀況下,這一法則將再也不適用。

什麼是物理隔離?

這個嘛,提及來也是頗具中國特點。在政務內網中,有個名詞頻頻被說起,就是網閘。
這個吊吊的設備提供了咱們政務內網與互聯網之間的網絡安全性。

什麼是網閘?來看看百度詞條上的一段話:

網閘是使用帶有多種控制功能的固態開關讀寫介質鏈接兩個獨立主機系統的信息安全設備。

網閘是怎麼保證內外網的安全性的?

因爲物理隔離網閘所鏈接的兩個獨立主機系統之間,不存在通訊的物理鏈接、邏輯鏈接、信息傳輸命令、信息傳輸協議,不存在依據協議的信息包轉發,只有數據文件的無協議"擺渡",且對固態存儲介質只有"讀"和"寫"兩個命令。

一句話,就是文件擺渡。另外提一嘴,這個協議隔斷但是從鏈路層搞起的哦。

當前面臨的狀況就是,一個網閘鏈接兩臺主機,只監控這兩臺主機上指定的文件夾目錄,擺渡目錄中的文件,從A1到B1,從B2到A2,如此這般。

這兩臺鏈接網閘的主機,咱們通常叫作前置機。

那麼,這兩臺前置機之間通訊只能依賴文件跟文件的交換了。哦,NO。管你什麼基於TCP、UDP的HTTP、FTP、TFTP、socket都完蛋。

好吧,看來,網閘真的神同樣的存在啊。而網絡直連的API接口訪問、共庫、ETL好像都成了鏡花水月同樣的東西,看得見,摸不着。只能走自建數據交換平臺,使用文件交換這條路了。

緊接着,咱們由於這個網閘產生的一系列問題即將接踵而來。

怎麼把數據變成文件上傳到前置機上去交換?怎麼在目標端下載下來?

怎麼保證大文件的傳輸完整呢?中途失敗了怎麼辦?

怎麼知道對面的主機收到了我發送的文件呢?網閘可不提供TCP的ACK功能。

怎麼保證數據的安全性呢?中途被篡改了怎麼辦?

怎麼保證數據的時序性呢?網閘可不按照時間順序給你傳遞文件。

怎麼監控數據流轉的狀況呢?丟包了怎麼辦?有沒有辦法能夠知道?

嗯,若是想了解以上問題,請看第二章:交換平臺的項目邊界與架構設計。

第二章在哪裏看?額,還沒寫,等兩天吧。

相關文章
相關標籤/搜索