国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

跨平臺軟件自動化編譯及監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2021-02-09 03:05徐維飛
中國信息化 2021年1期
關(guān)鍵詞:跨平臺分支管理員

徐維飛

跨平臺應(yīng)用開發(fā)在當(dāng)前軟件開發(fā)中占據(jù)越來越重要的作用,單一系統(tǒng)下開發(fā)軟件代碼,發(fā)布時(shí)分別編譯部署到多系統(tǒng)平臺;尤其在移動開發(fā)領(lǐng)域,跨平臺開發(fā)成為很多企業(yè)和開發(fā)者的首選。一直以來,跨平臺軟件開發(fā)面臨著多平臺自動編譯、分發(fā)、部署問題,本文結(jié)合實(shí)際跨平臺軟件開發(fā)經(jīng)驗(yàn),設(shè)計(jì)并實(shí)現(xiàn)了一種通用多平臺軟件自動化編譯及監(jiān)控系統(tǒng),旨在解決跨平臺軟件開發(fā)中遇到的軟件編譯、部署的效率問題,并提供實(shí)時(shí)Web服務(wù)來監(jiān)控軟件編譯、部署狀態(tài)。

一、系統(tǒng)設(shè)計(jì)

(一)總體設(shè)計(jì)

整個系統(tǒng)架構(gòu)根據(jù)核心功能不同的思路采取模塊化設(shè)計(jì),劃分為各自擁有獨(dú)立服務(wù)功能的模塊:中央服、編譯服、賬戶及權(quán)限管理服、郵件服、FTP服;各服務(wù)功能模塊之間相互獨(dú)立,互不干擾,對其他功能模塊提供獨(dú)立服務(wù)接口,具體架構(gòu)如圖1所示。

(二)編譯服模塊設(shè)計(jì)

編譯服在整個系統(tǒng)中起到最核心的作用,主要負(fù)責(zé)處理軟件自動化編譯任務(wù)。

軟件開發(fā)中通常使用特定的版本控制系統(tǒng)來進(jìn)行軟件本版開發(fā)的管理,比如常用的版本控制工具有Git、SVN、Mecurial等,可以根據(jù)項(xiàng)目需求來選擇,我們這里選用開源的分布式版本控制系統(tǒng)工具Git來作為版本控制工具。在編譯服中根據(jù)服務(wù)器空間及運(yùn)行配置,預(yù)先初始化多個目標(biāo)軟件Git源碼倉庫,我們這里稱之為編譯分支,每個編譯分支完全獨(dú)立,所有分支全部指向同一個Git源碼服務(wù)器,這樣能夠保證每個編譯分支獲取的軟件源碼等資源是相同的,我們可以自由地在其中任何一個編譯分支執(zhí)行編譯任務(wù),最終構(gòu)建的軟件輸出也是一致的,具體如圖2所示。

基于以上已經(jīng)初始化的多個獨(dú)立編譯分支的設(shè)計(jì)前提,Web Server在啟動時(shí)會根據(jù)當(dāng)前服務(wù)器編譯分支數(shù)量初始化相同數(shù)量的獨(dú)立系統(tǒng)進(jìn)程,每個進(jìn)程分別綁定一個指定編譯分支,每個進(jìn)程負(fù)責(zé)各自編譯分支的編譯任務(wù),進(jìn)程間完全獨(dú)立,最大化支持并行編譯任務(wù),尤其在當(dāng)前普遍擁有多核CPU的服務(wù)器上,對編譯效率的提升是毋庸置疑的。如果用戶需要啟動一個編譯任務(wù),首先通過瀏覽器訪問編譯服主頁,通過提供指定賬戶登陸編譯服,編譯服接收到賬戶信息后,使用提供的標(biāo)準(zhǔn)Rest API接口去賬戶認(rèn)證服校驗(yàn)賬戶及訪問權(quán)限,如果校驗(yàn)失敗,則拒絕用戶繼續(xù)訪問編譯服;檢驗(yàn)通過則返回當(dāng)前編譯服中所有編譯分支狀態(tài)信息,編譯分支是否可用。通過網(wǎng)頁,用戶選擇可用編譯分支,啟動編譯任務(wù);相應(yīng)的編譯進(jìn)程收到編譯任務(wù)指令后,進(jìn)入對應(yīng)源碼倉庫,連接源碼服務(wù)器并拉取指定版本節(jié)點(diǎn)的軟件源碼,啟動本地軟件編譯指令,正式開始軟件編譯;編譯執(zhí)行等待中,Web Server會實(shí)時(shí)返回用戶當(dāng)前編譯分支運(yùn)行狀態(tài)信息;編譯結(jié)束后,編譯輸出的平臺可執(zhí)行包體文件上傳到FTP服務(wù)器存儲,然后通過郵件服務(wù)器發(fā)送郵件給相關(guān)人員,郵件內(nèi)容包括本次編譯任務(wù)的所有的詳細(xì)編譯狀態(tài)信息、編譯結(jié)果、輸出文件鏈接等。

可根據(jù)實(shí)際項(xiàng)目需求,在編譯服上部署任意Windows、Mac或Linux等系統(tǒng)平臺來運(yùn)行編譯服務(wù),各編譯服之間完全獨(dú)立分布,可彈性搭建任意數(shù)量,并指定任意編譯服編譯任意目標(biāo)輸出系統(tǒng)平臺(Android、iOS、Windows、Mac、Linux等)軟件版本,各編譯服并行編譯,互不干擾,靈活地實(shí)現(xiàn)跨平臺并行編譯。

(三)賬戶權(quán)限管理模塊設(shè)計(jì)

對編譯服的任何訪問或操作請求,需要提供專有賬戶并驗(yàn)證通過后才能訪問,這是對軟件工程及源碼安全的最基本保護(hù)。賬戶權(quán)限管理模塊作為另一個核心模塊,主要提供賬戶創(chuàng)建、驗(yàn)證、查詢、權(quán)限管理功能,供編譯服或其他任何需要安全驗(yàn)證服務(wù)的系統(tǒng)驗(yàn)證請求。

同樣地,賬戶權(quán)限管理模塊采用以Python+Tornado為架構(gòu)基礎(chǔ)搭建的Web Server,對外提供瀏覽器頁面訪問及Rest API訪問模式。瀏覽器訪問模式主要提供管理員、普通用戶訪問。管理員擁有超級賬戶權(quán)限,可以創(chuàng)建、修改、刪除或訪問任何普通賬戶的權(quán)限;普通賬戶訪問,只能訪問或修改當(dāng)前賬戶自己的狀態(tài)信息,因此系統(tǒng)對不同權(quán)限的賬戶提差異化功能。

整個管理模塊劃包括以下子模塊:賬戶模塊、項(xiàng)目管理模塊、權(quán)限模塊及展示模塊。賬戶模塊主要負(fù)責(zé)管理管理員或個人對賬戶的增刪修改操作請求任務(wù),項(xiàng)目管理模塊主要負(fù)責(zé)管理不同項(xiàng)目,不同賬戶對項(xiàng)目的操作權(quán)限是不同的;權(quán)限模塊主要提供綁定指定賬戶對不同項(xiàng)目之間訪問權(quán)限關(guān)系,比如用戶名為”Zhang San”的賬戶對項(xiàng)目A具有普通操作權(quán)限、對項(xiàng)目B具有瀏覽權(quán)限、對項(xiàng)目C具有管理員權(quán)限,當(dāng)然,這些權(quán)限完全可以自定義;展示模塊提供管理員及普通用戶通過瀏覽器訪問,獲取相關(guān)賬戶信息進(jìn)行展示作用。以上所有的賬戶信息、項(xiàng)目信息及相關(guān)權(quán)限信息全部保存于數(shù)據(jù)庫(MySQL等常用數(shù)據(jù)庫)中進(jìn)行持久化,可隨時(shí)訪問及查看?;诎踩紤],對管理員賬戶或普通賬戶操作的關(guān)鍵信息,系統(tǒng)將通過郵件服務(wù)器發(fā)送郵件給相關(guān)人員,方便及時(shí)查看及處理。

二、測試結(jié)果及結(jié)論

此系統(tǒng)平臺是筆者在長期的跨平臺游戲App應(yīng)用軟件開發(fā)中持續(xù)研發(fā)集成的系統(tǒng)框架,主要用于面向Android、iOS、Windows平臺軟件編譯部署需求的,全自動化實(shí)現(xiàn)了一鍵軟件集成、編譯、部署等功能,在實(shí)際項(xiàng)目開發(fā)應(yīng)用中取得了良好的效果。作為通用框架,同樣適用于其他跨平臺App應(yīng)用軟件開發(fā),只需少量項(xiàng)目本地編譯環(huán)境、編譯命令等適配工作即可使用。

作者單位:上海夢之國網(wǎng)絡(luò)科技有限公司

猜你喜歡
跨平臺分支管理員
一款游戲怎么掙到全平臺的錢?
潛力雙跨平臺:進(jìn)階:誰將跨入下一個“十大”?
可疑的管理員
基于git工具的多分支并行開發(fā)上線流程
用“分散數(shù)論”對“哥德巴赫猜想”的初等證明
含有二階冪零鞍點(diǎn)的雙同宿環(huán)附近的極限環(huán)分支
基于C++語言的跨平臺軟件開發(fā)
讓管理員管不了的名字
當(dāng)小小圖書管理員
基于C++語言的跨平臺軟件開發(fā)的設(shè)計(jì)
裕民县| 东明县| 四川省| 甘洛县| 兴宁市| 肇东市| 繁峙县| 黔西| 华安县| 海原县| 昭觉县| 杂多县| 孝感市| 观塘区| 缙云县| 咸宁市| 万州区| 江川县| 合山市| 兖州市| 宜阳县| 铜鼓县| 铁力市| 裕民县| 合山市| 远安县| 阿荣旗| 丰顺县| 南城县| 馆陶县| 清远市| 长子县| 定安县| 民和| 南靖县| 忻城县| 深州市| 永康市| 潮安县| 禹州市| 铜鼓县|