?

基于Java Web分析外設適配方案設計路徑

2023-05-29 09:23李萬波
電子技術與軟件工程 2023年7期
關鍵詞:外設調用應用程序

李萬波

(中國電視報社 北京市 100038)

本次研究中,相關工作人員基于Java Web 應用程序使用外設時,由于不同類型的外設具有不同的接口和協議,因此可能會出現兼容性問題。為了克服這些問題,需要設計合適的外設適配方案,將不同類型的外設與Java Web 應用程序進行無縫集成,從而實現數據的有效采集和處理?;谶@樣的背景和需求,Java Web 分析外設適配方案設計應運而生。該方案旨在解決外設兼容性問題,提高數據處理和分析效率,進一步完善和豐富Java Web 應用程序的功能,從而滿足用戶不斷增長的需求。

1 接口適配解決方案

1.1 接口規范化

接口規范化可以讓不同供應商提供的不同硬件或軟件模塊之間容易互操作。這些模塊可能形成系統的不同層次或模塊。在Java Web 技術的外設接口適配過程中,接口規范化涉及以下內容:

1.1.1 接口協議的制定

在設計適配方案時,需要定義合適的接口協議,該協議規定了不同組件之間的數據傳輸方式、協議規定的值類型、速率以及其他相對應的細節[1]。

1.1.2 接口格式的規范化

為了實現方便的接口,一般采用數據格式內部標準化,比如XML,JSON 等格式,這樣可以讓不同的硬件或軟件模塊使用同一個數據結構交換數據并進行信息處理。

1.1.3 接口文檔的編寫

為了更好地管理接口,必須編寫相關的接口文檔,文檔中記錄了接口的具體功能、調用方式以及錯誤處理等信息,并且需要注意對接口文檔進行更新和維護。

1.2 方案庫引入

方案庫可以幫助項目團隊進行更高效的開發和更準確的數據處理?;诜桨笌炷軌蛱峁┐罅刻幚矸桨负蛿祿Y構,以及相關代碼等資源,并使得開發者能快速找到類似問題的已有解決方案,從而節約代碼開發時間,降低成本,并提高整個系統的穩定性和可靠性。

1.2.1 確定方案庫引入目的

在項目設計之初,需要針對項目需求確定方案庫引入的目的。這樣可以更好地選擇所需的方案庫,為項目的順利運行做出決策[2]。

1.2.2 選擇合適的方案庫

根據項目的實際需求,選擇適應需求的方案庫。不同的方案庫有各自特色、優勢和限制。在選擇方案庫時需要根據項目的實際情況和需求,綜合考慮各種因素進行選擇。

1.2.3 模塊化開發

本次研究中,相關工作人員以MVC 框架作為基礎進行模塊設計與開發工作。MVC 模式常用于構建各種應用程序。MVC 模式的核心思想是將應用程序的不同功能分為三個獨立的部件:模型、視圖和控制器,并通過它們之間的協作來實現該應用程序的功能(如圖1 所示)。

圖1:MVC 框架圖

1.3 接口適配整合

整合過程一般包括識別、抽象、對齊以及集中化等步驟。通過整合不同型號、不同供應商提供的設備可以減少因應用程序升級而導致的硬件更新成本,在后期的維護工作中也具有極其重要的作用。

研究人員針對每一種設備或者相應類別的增加設備樣式計劃(設備置換部署),編寫數據獲取以及數據處理協議的可擴展框架,指定處理異常機制以及錯誤的提示方式。對整個系統工作情況進行監控跟進,實現對應函數庫(例如DLL)與不同的硬件交互調用,并選擇設備進行串行或者并行的處理(如圖2 所示)。

圖2:適配方案數據流程圖

2 外設適配方案設計

2.1 構建方案庫管理的表結構

方案庫管理系統能夠幫助使用者管理各種應用場景下的設備使用方案,并對方案進行合理規劃和分類組織。為了有效實現方案庫管理,研究人員需要構建相應的管理表結構。

2.1.1 確定基礎數據表

首先需要確定方案庫管理所需的基礎數據表,包括設備信息表、方案信息表、參數配置表等。例如:設備信息表包含該設備的型號、制造商、通訊協議等信息;方案信息表包含方案名稱、方案描述、所屬設備類型等信息;參數配置表則包含與某種設備的特定功能相關的參數配置信息[4]。

2.1.2 設計關聯關系

在已有基礎數據表的基礎上,需要設計各個數據表之間的關聯關系,從而更好地組織各種方案。例如:將設備信息表中的設備類型與方案信息表中的設備類型進行對應,以便確定可選方案信息;通過參數配置表與設備信息表進行關聯,以便確定方案應用于哪種具體的硬件設備。

2.1.3 優化數據存儲

根據方案庫管理需求,對表結構進行優化,比如輸入信息增加了一些特性,可以考慮將數據拆分到不同的表中。方案存儲時可以嘗試使用二進制結果集(Blob/Clob),這種方式可以僅為保存一個文件而進行操作,避免數據解碼時出錯和提高效率。

2.2 方案庫前端設計

研究人員在設計方案庫前端過程中,需要分清業務需求和用戶體驗感受,以最優化的方式設計各種界面、控件和交互方式。

方案庫前端頁面示意圖如圖3 所示。

圖3:方案庫前端頁面示意圖

2.2.1 界面設計

設計人員根據方案庫管理的實際需求確定所需要的主頁面、子頁面、表單等界面元素,并且篩選可用的UI 組件,如按鈕、菜單、列表等組件。確定UI 風格以及系統配色情況,以保證初次體驗時系統呈現出統一良好的界面外觀。

2.2.2 交互方式設計

設計人員根據方案庫管理所涉及的功能,確定相應的用戶操作流程和交互方式。需要考慮易用性、高效性、一致性和規范性等多重要素,如可以使用彈窗和模態框等組件提升交互體驗和注意事項展示以便于用戶更好的清楚了解當前的處理進度狀態[5]。

2.2.3 數據展示

方案庫管理功能需要用戶查看和編輯的一些數據,這些數據需要以列表、表格等形式呈現給用戶。數據分頁,搜素、時間區間等更多的查詢條件可以提高用戶搜索數據的效率,保證系統性能。同時擁有重要的業務操作比如用戶添加、修改、刪除,應該非常顯眼并設置切實可行的按鈕操作。

2.3 基于NIO與TCP協議的數據傳輸

目前常見的Java NIO 框架包括Netty 以及Apache兩種,這兩種Java NIO 框架與高性能網絡均具有良好的適應性。因此,研究人員對二者進行橫向對比,挑選更為適宜的Java NIO 框架。本次研究中,工作人員使用Netty 以及MINA 創建基于Java NIO 的獨立EchoServer,通過實驗觀察兩種框架的大小不同的網絡報文條件下的性能表現。其測試結果如表1、表2。

表1:MINA 測試結果

表2:Netty 測試結果

研究人員通過分析MINA 和Netty 的源碼得出,兩個框架在處理IO 讀事件時buあer 分配策略上存在差異。由于網絡IO 處理中socket API 每次從TCP buあer 讀取的字節數是不穩定的,因此NIO 框架在處理每個讀事件時需要動態分配一個buあer 來臨時存放讀到的字節,而buあer 分配效能是影響網絡IO 框架程序性能表現的關鍵因素。本次測試中,雖然Netty 的TPS 更高,但其CPU消耗明顯高于MINA。結合以上多方面比較與考慮,最終選擇了Apache MINA 框架。

2.4 動態調用DLL函數

動態調用DLL 函數使得程序模塊的功能復用性有了很大的提高,方便二次開發和程序優化,但同時也會增加程序可讀性、可移植性和靈活性等方面的挑戰。

2.4.1 加載DLL

在C/C++語言中,使用LoadLibrary 函數可加載指定名稱的DLL。這個函數接收一個字符串類型的參數,代表需要加載的DLL 的路徑、名稱以及擴展名等信息。LoadLibrary 返回一個模塊句柄HMODULE 作為加載該DLL 后的唯一標識符,如果返回NULL 則表示加載失敗。例如:

2.4.2 獲取DLL 函數地址

獲取DLL 函數地址的方法需要結合GetProcAddress函數和LoadLibrary 函數。先用LoadLibrary 加載所需的DLL,然后再依據對應函數名稱,通過GetProcAddress函數得到該函數入口點在內存中的地址,即可對該DLL中的函數直接調用。例如:

該案例中,研究人員先定義一個函數指針MY_PROC 作為函數調用的接口,然后使用GetProcAddress函數獲取DLL 中函數fnAdd 的入口地址,并將其轉化為MY_PROC 類型的函數指針pFnAdd。此時就可以通過pFnAdd 實現對DLL 中函數的直接調用。

3 結語

本次研究中,相關工作人員在設計方案庫模塊時,著重設計了表結構、業務處理和前端UI;在數據傳輸部分,通過對“MINA”和“Netty”的測試分析,并詳細講解了MINA 的原理和構造,并基于該框架設計了TCP 的Server 端和Client 端;在DLL 調用部分,介紹了JNative 的使用方法,并以D3 為例詳細設計了DLL函數的調用過程;最后,對舊的外設連接方法與新方案進行了對比分析,得出新方案在實際應用中更優越的結論。

猜你喜歡
外設調用應用程序
核電項目物項調用管理的應用研究
刪除Win10中自帶的應用程序
LabWindows/CVI下基于ActiveX技術的Excel調用
基于系統調用的惡意軟件檢測技術研究
Microchip推出具備雙ADC外設的全新器件,擴展其低成本8位PIC?單片機產品線
利用RFC技術實現SAP系統接口通信
外設天地行情
三星電子將開設應用程序下載商店
外設天地行情
外設天地行情
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合