鄧應(yīng)卓 李一媛 鄭 凱 周 斌
([1]桂林電子科技大學(xué)藝術(shù)與設(shè)計(jì)學(xué)院 廣西·桂林 541004;[2]湖南文理學(xué)院計(jì)算機(jī)與電氣工程學(xué)院 湖南·常德 415000)
在一個(gè)典型的ERP應(yīng)用系統(tǒng)中,可能包含很多個(gè)模塊,其中可能會(huì)有銷售管理、生產(chǎn)分配管理等等。通過常用的三層架構(gòu)來組織代碼結(jié)構(gòu),然后進(jìn)行開發(fā)、測(cè)試、交付上線并最終運(yùn)行。但隨著時(shí)間的推移,系統(tǒng)中功能的不斷完善和豐富,開發(fā)人員的交替更迭,代碼質(zhì)量的參差不齊,使得單體式架構(gòu)應(yīng)用的復(fù)雜度成倍增長(zhǎng),可維護(hù)性極其不理想。
隨著云計(jì)算、虛擬技術(shù)的不斷發(fā)展、成熟,這時(shí)候就需要一個(gè)新的平臺(tái)架構(gòu)模式來解決這類問題。.Net Core平臺(tái)架構(gòu)將表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層分離,將每個(gè)模塊都進(jìn)行拆分,那么每個(gè)功能都是獨(dú)立的,并且達(dá)到了高度重用。模塊拆分后,為大數(shù)據(jù)分析提供了巨大的發(fā)揮空間,可以無限級(jí)進(jìn)行水平延展。不管企業(yè)如何發(fā)展、變化,都能夠很快適應(yīng)變化,快速做出調(diào)整,減少了大型企業(yè)人員的管理成本、溝通成本、為企業(yè)創(chuàng)造出巨大的潛在價(jià)值。
.Net Core是開放源代碼通用開發(fā)平臺(tái),由Microsoft和.Net社區(qū)在GitHub上共同維護(hù),它跨平臺(tái)(支持Windows,macOS和Linux等),并且可用于生成設(shè)備、云和IoT應(yīng)用程序,下面是官方給出的特性的具體介紹:
(1)跨平臺(tái):可在Windows、macOS和linux等操作系統(tǒng)運(yùn)行。
(2)跨體系結(jié)構(gòu)一致:在多個(gè)體系結(jié)構(gòu)(X64、X86和ARM)上以同樣的行為運(yùn)行代碼。
(3)命令行工具:包括可用于本地開發(fā)和持續(xù)集成方案中易于使用的命令行工具。
(4)部署靈活:可以包含在應(yīng)用或已安裝并行(用戶或系統(tǒng)范圍安裝)中??纱钆銬ocker容器使用。
(5)開放源代碼:.NetCore平臺(tái)是開放源代碼,使用MIT和Apache2許可證。.Net Core是一個(gè).Net Foundation項(xiàng)目
(6)由Microsoft支持:.Net Core由Microsoft依據(jù).Net Core支持提供支持。
以上這些特性已經(jīng)能夠?yàn)樵崎_發(fā)、云部署提供強(qiáng)大的動(dòng)力。
Layui是一款采用自身模塊規(guī)范編寫的國(guó)產(chǎn)前端UI框架,遵循原生HTML/CSS/JS的書寫與組織形式。采用Layui可以縮減項(xiàng)目開發(fā)的周期。
基于.NetCore生產(chǎn)管理系統(tǒng)是管理生產(chǎn)車間的基礎(chǔ)信息化項(xiàng)目,將車間生產(chǎn)工藝流程的半成品和成品數(shù)據(jù)以軟件信息化的手段管理起來,通過軟、硬件支持,建立一條生產(chǎn)車間和管理層更直接、更簡(jiǎn)捷的信息流通道,對(duì)車間生產(chǎn)實(shí)行數(shù)字化管理、信息化管理、生產(chǎn)透明化管理,實(shí)現(xiàn)數(shù)據(jù)共享,為公司管理層決策提供信息支持。
系統(tǒng)的用戶身份是可配置的,即按照菜單和權(quán)限去匹配不同角色,系統(tǒng)提供了基礎(chǔ)信息模塊、系統(tǒng)管理模塊、計(jì)劃管理模塊、生產(chǎn)分配模塊、生產(chǎn)檢驗(yàn)?zāi)K、倉庫管理模塊。可以滿足角色個(gè)性化管理、生產(chǎn)個(gè)性化管理、權(quán)限個(gè)性化管理。
系統(tǒng)總體架構(gòu)是采用.NetCore架構(gòu),將模型層、數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表現(xiàn)層分離,方便項(xiàng)目的開發(fā)。
其中數(shù)據(jù)模型是現(xiàn)實(shí)實(shí)體的抽象,數(shù)據(jù)訪問層負(fù)責(zé)從數(shù)據(jù)庫和數(shù)據(jù)模型獲取需要的數(shù)據(jù),業(yè)務(wù)邏輯層主要用于實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯,通過調(diào)用數(shù)據(jù)訪問層的方法獲取相應(yīng)的數(shù)據(jù),業(yè)務(wù)邏輯層只要負(fù)責(zé)調(diào)用不同的業(yè)務(wù)邏輯,實(shí)現(xiàn)分發(fā)請(qǐng)求,表現(xiàn)層主要使用Layui框架進(jìn)行前端頁面的渲染。
當(dāng)表現(xiàn)層有用戶進(jìn)行操作的時(shí)候,會(huì)向服務(wù)器發(fā)送相應(yīng)的請(qǐng)求。例如管理員登陸的時(shí)候,回向服務(wù)端發(fā)送登錄請(qǐng)求,請(qǐng)求會(huì)根據(jù)配置文件找到相關(guān)Controller文件,并調(diào)用其中的login()方法,login()方法會(huì)調(diào)用業(yè)務(wù)邏輯中的方法查詢需要的數(shù)據(jù),并在業(yè)務(wù)邏輯層完成必要的業(yè)務(wù)邏輯處理。同時(shí),會(huì)調(diào)用數(shù)據(jù)訪問層的方法進(jìn)行數(shù)據(jù)庫數(shù)據(jù)的查詢,將數(shù)據(jù)返回到業(yè)務(wù)邏輯層,并調(diào)用相應(yīng)的視圖,而表現(xiàn)層會(huì)使用Layui框架進(jìn)行最終的頁面渲染。這樣,一個(gè)登陸界面的完整流程就結(jié)束了,其他的操作流程與此類似。這樣幾個(gè)層各司其職,上層調(diào)用下層,下層返回?cái)?shù)據(jù)給上層,共同實(shí)現(xiàn)系統(tǒng)的功能。
3.1.1 業(yè)務(wù)功能實(shí)現(xiàn)
權(quán)限模塊采用中間件模式,以角色為單個(gè)Schema,不同角色的功能權(quán)限相互獨(dú)立,互不影響。其中菜單是單個(gè)Schema中的子聚合,包含了接口和按鈕等實(shí)體,以保證聚合之間沒有業(yè)務(wù)耦合。
3.1.2 系統(tǒng)架構(gòu)實(shí)現(xiàn)
技術(shù)棧選用了微軟公司的開源跨平臺(tái)框架.NET Core在保證工程化高效開發(fā)的同時(shí)也規(guī)避了可能的版權(quán)制裁風(fēng)險(xiǎn)。
平臺(tái)系統(tǒng)基于云原生架構(gòu)實(shí)現(xiàn),以微服務(wù)方式落地,同時(shí)引入DevOps概念,使得團(tuán)隊(duì)成員在設(shè)計(jì)、構(gòu)建、測(cè)試工作中可以高效規(guī)范的展開協(xié)作,在保證系統(tǒng)高效穩(wěn)定的同時(shí)進(jìn)一步提升了工作效率。平臺(tái)將行業(yè)資產(chǎn)與實(shí)際技術(shù)結(jié)合應(yīng)用,基于數(shù)字孿生(Digital Twin)理念,實(shí)現(xiàn)了行業(yè)數(shù)字化與信息化轉(zhuǎn)型,提升了管理效率和生產(chǎn)效率,實(shí)現(xiàn)企業(yè)的價(jià)值最大化。
3.2.1 測(cè)試目的
系統(tǒng)在交付給客戶使用之前,嚴(yán)謹(jǐn)?shù)南到y(tǒng)測(cè)試是必不可少的一個(gè)環(huán)節(jié),要盡可能的在用戶測(cè)試之前發(fā)現(xiàn)并糾正問題,確保系統(tǒng)的可靠性。
3.2.2 測(cè)試結(jié)果
用戶正在進(jìn)行生產(chǎn)時(shí),管理員進(jìn)行角色修改,此時(shí)提示不成功。而當(dāng)該用戶提交生產(chǎn)結(jié)果后,管理員可對(duì)其進(jìn)行角色修改。管理員擁有著最高權(quán)限,而其他不同的角色,對(duì)應(yīng)著不同的權(quán)限、不同的模塊。
除此之外,系統(tǒng)前端頁面可以隨著分辨率的變化而變換布局,信息在不同的分辨率下都能正常顯示。
基于.Net Core的生產(chǎn)管理系統(tǒng),能夠?qū)崿F(xiàn)多用戶、多角色、多權(quán)限、多菜單的功能,能對(duì)生產(chǎn)信息進(jìn)行數(shù)字化管理、信息化管理、生產(chǎn)透明化管理,實(shí)現(xiàn)數(shù)據(jù)共享,為公司管理層決策提供信息支持,對(duì)車間進(jìn)行有效的管理。