在十多年的時間里,我們已經(jīng)成功地實現(xiàn)了許多使用版本3的系統(tǒng)和更早期版本2.x和1.x、 但即使是最新版本,我們也看到了很大的改進空間。
代碼是基于項目/客戶機進行分支的,沒有整合到單個代碼庫中,一個解決方案可能只適用于單個客戶機,而版本控制系統(tǒng)中有很多解決方案。這種情況限制了我們通過組件/層、固定數(shù)據(jù)模式和斷開連接的解決方案改進系統(tǒng)的能力,這些解決方案具有自己的層和組件,如web2用戶界面、中間件、手持代碼和數(shù)據(jù)處理:
· 從底層數(shù)據(jù)層為解決方案固定了數(shù)據(jù)模型和模式,這使得該解決方案無法再用于具有不同數(shù)據(jù)模型的其他應(yīng)用程序,甚至是微小差異的應(yīng)用程序
· 過時的用戶界面,我們可以感覺到系統(tǒng)很舊,不適用于web 應(yīng)用程序。.
· 斷開連接的存儲庫限制了系統(tǒng)的增長,如果在解決方案中添加了新功能,其他解決方案保持不變
· 缺陷修復(fù)只能針對單個解決方案,必須為所有解決方案填充代碼
· 所有解決方案的質(zhì)量保證都是不可能的
· 除非此人之前處理過類似項目,否則無法確定使用新項目的解決方案
· 與整合系統(tǒng)相比,所有解決方案的文檔都太多了
出于業(yè)務(wù)原因,基于項目的系統(tǒng)展示了一種不可擴展、膚淺的解決方案,而且從來沒有企業(yè)系統(tǒng)這樣做過。它很難管理、理解、修復(fù)和有效地擴展。
我們將新的RFID系統(tǒng)4.0命名為GAO BLE、RFID和IoT(物聯(lián)網(wǎng))引擎。如果用一句話來說,新系統(tǒng)是一個整合的系統(tǒng),一個提供所有RFID解決方案的單一系統(tǒng),包括BLE技術(shù)。
我們的目標(biāo)是提供一個可擴展的解決方案,可以輕松滿足新的業(yè)務(wù)需求和技術(shù)變化,以及垂直和水平的系統(tǒng)擴展?;旧?,這將使我們能夠以時間效率、更低的成本和更好的質(zhì)量在市場上競爭.
版本3中大約有30個解決方案(或多或少),幾乎每個新項目都需要復(fù)制舊代碼并在其上進行更改。第4版我們不應(yīng)該像那樣繼續(xù)前進。相反,我們應(yīng)該為核心RFID系統(tǒng)構(gòu)建一個可以通過單一解決方案擴展的系統(tǒng),該系統(tǒng)具有以下關(guān)鍵概念:
1) 除了添加新代碼以滿足新的業(yè)務(wù)需求和硬件/設(shè)備接口(設(shè)備驅(qū)動程序等)外,系統(tǒng)應(yīng)可擴展和配置業(yè)務(wù)模塊、讀卡器設(shè)備和各種操作模型,而不涉及核心系統(tǒng)代碼/架構(gòu)。設(shè)計目標(biāo)是使系統(tǒng)能夠在不與業(yè)務(wù)邏輯深度耦合的情況下與標(biāo)簽通信,并能夠基于可配置的業(yè)務(wù)模塊和可插拔設(shè)備解釋各種標(biāo)簽活動。
2) 我們應(yīng)該利用最近(過去10年)的軟件進步,如HTML5、JavaScript、TypeScript/Angular、NoSQL、VPN等,來應(yīng)對業(yè)務(wù)和技術(shù)的動態(tài)性和分布式/云性質(zhì)的挑戰(zhàn)。.
3) 版本3代碼提供了一個測試過的設(shè)備驅(qū)動程序和業(yè)務(wù)模塊列表,我們應(yīng)該將這些測試過的代碼遷移到版本4中。
系統(tǒng)將盡可能多地重用版本3代碼,從版本3的幾個解決方案開始,中間件和web服務(wù)器組件將保持相同的性能。Net平臺。網(wǎng)絡(luò)用戶界面將引入谷歌Angular,使GUI現(xiàn)代化。中間件將合并版本3設(shè)備驅(qū)動程序和業(yè)務(wù)模塊,以形成一個具有以下設(shè)計細節(jié)的整合企業(yè)系統(tǒng):
1) NoSQL
除了使用SQL server管理結(jié)構(gòu)化數(shù)據(jù)(如標(biāo)簽、閱讀器)外,新系統(tǒng)還將使用NoSQL數(shù)據(jù)庫管理半結(jié)構(gòu)化和動態(tài)/非結(jié)構(gòu)化數(shù)據(jù)。NoSQL server的使用將使我們能夠處理數(shù)據(jù)模式的動態(tài)性質(zhì),簡化并重新激活我們的系統(tǒng),避免數(shù)據(jù)和業(yè)務(wù)邏輯之間的直接耦合,并避免不同數(shù)據(jù)模式的代碼更改,這是使用NoSQL的關(guān)鍵概念
為了提供一個穩(wěn)定的解決方案,首先我們需要有一個穩(wěn)定的數(shù)據(jù)層,這是版本4的關(guān)鍵。
2) Data Synchronization 數(shù)據(jù)同步
我們已經(jīng)看到了多站點部署需要同步數(shù)據(jù),以及使用MS SQL Server技術(shù)配置數(shù)據(jù)同步的困難。此外,我們很少有項目通過代碼更改實現(xiàn)數(shù)據(jù)同步。這個問題的根源在于部署在各個位置的數(shù)據(jù)庫服務(wù)器。
如今,新技術(shù)為解決這一挑戰(zhàn)提供了許多有價值的選擇,我認(rèn)為我們應(yīng)該使用VPN技術(shù),因為它使用簡單,成本低或沒有成本,具有高級別或軍事級別的安全性。這種方法可用于版本3和版本4的未來多站點部署。無需更改中間件中的代碼,通過VPN直接連接到同一數(shù)據(jù)庫。
我們應(yīng)該確定一個VPN技術(shù)供應(yīng)商作為我們的首選供應(yīng)商,也有一些免費的VPN,但我們需要找到一個適合我們的系統(tǒng)。
基于Angular的web用戶界面的廣泛接受已成為評估web應(yīng)用程序的行業(yè)標(biāo)準(zhǔn),我們將使用Angular框架構(gòu)建真正的Web2應(yīng)用程序。除了提供模型化的用戶界面之外,Angular還可以在編譯時檢測錯誤,因為TypeScript是一種靜態(tài)類型的語言,而不是像JavaScript那樣的運行時語言。
該系統(tǒng)將提供以下功能:
1) 用于管理系統(tǒng)用戶、標(biāo)簽、位置、讀卡器和天線配置的Web瀏覽器用戶界面
2) 用于資產(chǎn)管理、人員跟蹤等應(yīng)用程序的CRUD操作的Web瀏覽器用戶界面。該界面應(yīng)能夠定義特定于應(yīng)用程序的元數(shù)據(jù)、將用于目標(biāo)應(yīng)用程序的模式
3) 報表模塊為固定數(shù)據(jù)表提供報表,為動態(tài)和半結(jié)構(gòu)化數(shù)據(jù)提供報表
4) REST服務(wù)——具有用于穩(wěn)定實體的固定CRUD API,以及用于特定于業(yè)務(wù)的API的可插拔模塊。應(yīng)該為潛在的集成商發(fā)布REST API
5) 移動設(shè)備提供REST APIs
6) 用戶界面組件使用谷歌Angular技術(shù)
7) 我們應(yīng)該只為多站點環(huán)境部署一個web服務(wù)器,而不是按照當(dāng)前版本3的做法部署每個站點
8) 取消IIS作為web服務(wù)器,將使用本機Windows服務(wù)來處理web用戶請求/響應(yīng),REST API,還為發(fā)布者和訂閱者功能提供實時監(jiān)控功能,作為當(dāng)前信號器調(diào)用
中間件組件的核心功能與版本3相同,提供了基礎(chǔ)功能
1) 為不同的客戶需求加載業(yè)務(wù)模塊,2)為不同的讀卡器加載設(shè)備驅(qū)動程序,3)將驅(qū)動程序RFID標(biāo)簽活動直接發(fā)送到活動的業(yè)務(wù)模塊。
對于版本4,我們可以使用相同的版本3,或者至少從最穩(wěn)定的版本3代碼開始。
中間件可以在沒有BLE、RFID和物聯(lián)網(wǎng)服務(wù)器的情況下遠程部署,只要它可以本地或通過VPN連接到它和數(shù)據(jù)庫服務(wù)器。
手持設(shè)備代碼在不同的平臺上運行,比如Android。iOS等——我們應(yīng)該保留當(dāng)前代碼,將現(xiàn)有REST API集成到web組件中的版本4 REST API中。
我們應(yīng)該擁有版本3提供的所有功能。并將當(dāng)前代碼整合到新系統(tǒng)中,該組件的主要工作將是與新的數(shù)據(jù)層REST API接口。
我們可能需要遷移一些3版業(yè)務(wù)模塊,它們是:
Name |
Subversion URL |
Description |
|
|
|
|
|
|
每個RFID固定讀卡器都有一個唯一的驅(qū)動程序代碼,用于與RFID中間件通信。大多數(shù)驅(qū)動程序代碼應(yīng)該從版本3繼承。 因為它只與中間件組件通信,與數(shù)據(jù)層沒有直接耦合
驅(qū)動程序?qū)⒃诎姹?/span>4中提供:
Name |
SKU No. |
Subversion URL |
Description |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
下面的系統(tǒng)文圖提供了運行時系統(tǒng)組件及其耦合的高級說明。組件連接可能位于LAN、Internet和VPN上,具體取決于系統(tǒng)性能、數(shù)據(jù)安全性和復(fù)雜性。許多企業(yè)已經(jīng)開發(fā)了與GAO-BLE、RFID和物聯(lián)網(wǎng)中間件直接局域網(wǎng)連接的讀卡器,這些中間件提供了高系統(tǒng)性能、可靠性和安全性,而許多其他企業(yè)在云端部署了我們的解決方案,將固定讀卡器連接到云環(huán)境中的GAO-BLE、RFID和物聯(lián)網(wǎng)服務(wù)器。
GAO BLE, RFID & IoT系統(tǒng)文圖
GAO BLE, RFID & IoT系統(tǒng)包括中間件、Web服務(wù)器、讀卡器應(yīng)用程序和手持讀卡器應(yīng)用程序
GAO BLE, RFID & IoT 中間件是一種基于Windows的服務(wù),為RFID讀卡器、業(yè)務(wù)模塊和數(shù)據(jù)同步提供運行時的接口,以便在讀卡器應(yīng)用程序和手持讀卡器上進行嵌入式通信。中間件提供了一個業(yè)務(wù)模塊和RFID閱讀器驅(qū)動程序庫,如下所述:
GAO BLE, RFID & IoT 系統(tǒng)組件和層
· GAO BLE, RFID & IoT Middleware– 基于Windows的服務(wù),為RFID固定讀卡器、業(yè)務(wù)模塊和數(shù)據(jù)同步提供運行時的接口,該模塊在運行時直接與讀卡器驅(qū)動程序和業(yè)務(wù)模塊鏈接。中間件連接到局域網(wǎng)或VPN環(huán)境中的數(shù)據(jù)庫服務(wù)器