當前位置:
首頁 > 最新 > 什麼是適合生產管理軟體的架構?

什麼是適合生產管理軟體的架構?

作為一名CSharper,最早接觸的是單機程序以及區域網上的同構應用程序。這類應用一般無需資料庫或直連資料庫,應用間比較獨立,用於實現一些具體的業務邏輯——如數據分析,報表展示,動畫交互,調用系統資源與其它設備通訊等功能。對於生產管理軟體,這種單機架構其實有很大的優勢——如響應迅速,與生產設備交互方便,畫面呈現豐富且交互簡單,可定製化等。

然而這種單機架構的缺點也顯而易見,必須基於.NET平台,直連資料庫的方式並不安全,維護難度較大。隨著技術的發展,移動辦公成為一大趨勢,尤其是非.NET平台的設備的加入使得單機架構捉襟見肘。事實上大多數的平板,PDA,一體機等均為安卓系統,即使是Win10系統的設備,我們仍需要對PC平台的軟體進行精簡以適應移動平台。更何況出於安全考慮,安卓APP是不允許直連伺服器資料庫,必須基於CS架構。

為了實現跨平台,大家首先想到的就是BS架構。B端通過瀏覽器方式呈現業務內容,所有的資源均從S端獲取,並且資料庫操作僅在S端進行,不僅更為安全,同時部署與更新也非常方便。也是基於此,絕大多數的商業應用都已BS模式呈現,如電商,媒體,甚至網頁遊戲。

但BS架構的缺點也顯而易見,首先是對網路的高要求,以及對伺服器的高要求,否則會影響到B端的訪問效率;其次是B端瀏覽器適配的問題,由於同樣的代碼在不同的瀏覽器上會有不同的呈現,因此需要耗費大量資源進行瀏覽器適配;對於需要調用系統資源的情況,BS模式難度很大,縱然可以通過JS腳本加各種插件的形式來達成目的,但費時費力且效果不盡人意。

對於輕量級的商業應用,BS架構的缺點並不致命,但是對於生產管理軟體來說,就有些尷尬了。首先是網路問題,生產現場環境複雜,並且並不是每個工廠都有專業網管進行運維,因此任何的網路故障都會對B端產生嚴重的影響;而生產管理軟體投入的資源遠沒有商業網站那麼大,瀏覽器適配基本上不會花太大精力,解決方案為選用固定的瀏覽器版本,這樣做會給用戶帶來不小的困惑;而調用系統資源的情況在生產管理軟體中也會經常出現,BS架構的應用在與掃描槍、單片機、PLC等外設的配合上,顯然效率不高。

那麼回到CS架構上,在各種系統環境中開發C端APP,通過WebAPI與S端通訊,同樣資料庫操作僅在S端進行。C端APP具備單機架構的優點,與單機架構的區別在於APP不再直連資料庫,而是通過WebAPI進行交互。在S端做好API,可以將許多業務從C端遷移到S端,大幅提升其它系統環境的APP開發效率。

對於單機架構與BS架構的缺點,CS架構也有不錯的應對方案。安全性上,由於是通過API交互,多層安全保障比BS架構更加的安全;原生開發的優勢就在於調用系統資源效率高,能有效的和外設配合工作;在不同系統環境上有不同APP,連接統一的C端後台,也可以在C端進行統一管控,遠程部署與升級;在對網路的要求上,可以緩存大量數據減輕網路波動的干擾,甚至可以離線運行,聯機後再同步。

儘管CS架構有許多優點,對於輕量級的流程管理業務,Web方案依然更為合適。這類業務無需和外設交互,實時性要求較高,更主要的是業務變更較為頻繁。採用Web方案可以無需在不同系統環境開發同樣的UI界面的APP,也不至於在業務變更時頻繁升級軟體對用戶造成困擾。

因此,我認為最適合生產管理軟體的架構為融合的CS架構——首先每種系統環境都有一個統一的入口平台,採用統一的升級策略與安全策略;平台上各應用根據實際場景選用最合適的技術手段,web方案的應用採用內嵌瀏覽器進行操作,實現BS的融合,同時排除瀏覽器適配的問題;流程管理業務採用web方案,其它複雜業務採用定製開發APP方案,所有應用都在入口平台上根據配置來呈現,用戶根據需要選擇進入,或者根據配置開機直接啟動;額外的可以有一套配置管理系統,對C端進行許可權管理與應用配置。

不可否認,融合CS架構對技術要求應該是最高的,它似乎需要幾乎所有主流編程語言軟體工程師的參與。那麼作為一名CSharper,有沒有可能用C#來完成這個架構呢?我覺得在Serenity Application Platform,CefSharp與Xamarin的幫助下,我覺得可行。

Serenity 是建立在開源技術上的 ASP.NET MVC/Javascript 應用程序平台,最適合應用於有大量數據輸入的表單業務應用程序或者面向公眾的後台管理網站。它幫我們封裝了大量的工作,我們僅需要懂得基本的html、css、javascript、less、typescript知識,就能快速的設計出各類業務網站。

CefSharp可以幫助我們在WPF程序中調用Webkit內核,使得Web應用可以在入口平台上高速運行,且無需額外安裝或打開其它瀏覽器。

Xamarin可以讓我們用C#語言進行跨平台開發,將我們基於在Windows環境上搭建的入口平台移植到安卓或IOS平台,並且開發一些跨平台APP。

基於大多數生產管理軟體都使用了C#作為開發語言,因此本文僅從C Sharper的角度對生產管理軟體的架構進行分析,如果大家有更好的想法,歡迎留言探討。

KPT個人日誌原創作品

精誠所至

金石為開

歡迎關注KPT個人日誌

本公眾號為非贏利公益性質

KPT日誌是一個加入時光比對功能的日誌工具

歡迎有夢想有恆心有毅力的小夥伴使用

希望大家喜歡,祝諸事順利


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 KPT個人日誌 的精彩文章:

TAG:KPT個人日誌 |