日常產(chǎn)品管理及服務(wù)監(jiān)控_第1頁
日常產(chǎn)品管理及服務(wù)監(jiān)控_第2頁
日常產(chǎn)品管理及服務(wù)監(jiān)控_第3頁
日常產(chǎn)品管理及服務(wù)監(jiān)控_第4頁
日常產(chǎn)品管理及服務(wù)監(jiān)控_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

畢業(yè)論文(設(shè)計)日常產(chǎn)品管理及服務(wù)監(jiān)控ManageProductandServerMonitoringSystem完成日期2013年04月.日吉林大學(xué)珠海學(xué)院本科畢業(yè)論文(設(shè)計)開題報告日常產(chǎn)品管理及服務(wù)器監(jiān)控摘要隨著科技的發(fā)展,移動互聯(lián)網(wǎng)已經(jīng)開始走進(jìn)我們的生活。中小型移動互聯(lián)網(wǎng)企業(yè)將變得越來越多,移動互聯(lián)網(wǎng)產(chǎn)品也會隨之越來越多。每個產(chǎn)品從構(gòu)思到形成產(chǎn)品都有一套流程,每個產(chǎn)品的流程又有差異。所以很多的企業(yè)內(nèi)部都有自己的一套規(guī)范和工作流程。一個好的工作平臺,能夠提高工作的效率,能夠盡可能的減少重復(fù)性的操作。也能夠減少中間環(huán)節(jié)出現(xiàn)的錯誤,所以,一個好的產(chǎn)品的管理流程是對于企業(yè)來講是非常重要的。本次設(shè)計只要是針對企業(yè)的一些流程開發(fā)的一套管理產(chǎn)品的工作流程。主要根據(jù)公司流程的一些特點,將部分的手工操作以轉(zhuǎn)化成自動化的操作。設(shè)計上主要講述了從產(chǎn)品設(shè)計到形成到發(fā)布的一系列工作的設(shè)計思路。基本滿足公司的需求,并且能夠簡化日常的工作。關(guān)鍵詞:產(chǎn)品管理;PHP;MySql;Shell;PythonManageProductandServerMonitoringSystemAbstractWiththedevelopmentoftechnology,theInternethascomeintoourlives.Therearemoresmallandmedium-sizedInternetbusinessenterprisesandmoreInternetproductsaswell.Fromasimpleideatoproductformation,eachproducthasasetofprocess,withdifferencesinoneandanother.That’swhyalotofbusinessenterpriseshavetheirownsetofnormsandworkflow.Agoodworkplatformcanhelptoimprovetheworkefficiency,whiletoreducerepeatabilityofoperationasmuchaspossible.Italsoreducestheerrorsoftheintermediateparts.Thus,agoodproductmanagementprocessisveryimportantforbusinessenterprises.Thedesignisaimedatasetofmanagementproductsintheprocessofworkflowdevelopmentfortheenterprise.Accordingtothefeaturesofthebusinessenterprise,mainly,itistotransformthepartialmanualoperationintoautomaticoperation.Thedesignfocusesontheideasofaseriesofworkingprocessesfromproductdesigntoproductformationandfinalproductrelease,whichnotonlymeetstheneedsofthebusinessenterprise,butalsosimplifiesthedailywork.Keywords:ProductManagement;PHP;MySql;Shell;Python目錄緒論………1研究背景………1數(shù)據(jù)庫介紹………1MYSQL概述 2LDAP概述 2開發(fā)環(huán)境簡介………2語言的選擇………2開發(fā)平臺………3服務(wù)端與客戶端簡介 ………3服務(wù)器端基礎(chǔ)環(huán)境………3客戶端使用須知………3文件夾組織結(jié)構(gòu)………3服務(wù)器部署圖………52需求分析 6

需求分析………6系統(tǒng)功能分析圖………73總體設(shè)計………8系統(tǒng)目標(biāo)………8數(shù)據(jù)庫設(shè)計………8系統(tǒng)數(shù)據(jù)分析………8系統(tǒng)E—R圖 93.2數(shù)據(jù)字典………10申請構(gòu)建表………10構(gòu)建完成………10申請測試………11渠道………11用戶………11監(jiān)控………124設(shè)計思想與實現(xiàn) 13用戶登錄模塊………13菜單………15申請構(gòu)建頁面………16構(gòu)建列表………19構(gòu)建完成頁面………21部署頁面………22郵件表格………23傳包發(fā)布頁面………24監(jiān)控圖………255系統(tǒng)測試與運行5系統(tǒng)測試與運行5.1系統(tǒng)驗收測試5.2系統(tǒng)運行……5.3系統(tǒng)的維護(hù)…6結(jié)束語…………參考文獻(xiàn)…………致謝………………1緒論………………27………………27…………28……………28……29……3031研究背景移動互聯(lián)網(wǎng)在最近幾年的發(fā)展非常的迅速,手機(jī)成了人與人之間溝通和交流的重要工具之一,移動應(yīng)用產(chǎn)品也隨之越來越多,移動互聯(lián)網(wǎng)公司之間的競爭也也來越激烈。產(chǎn)品要想獲得用戶的信賴和肯定,就需要不斷的完善和創(chuàng)新。對于一個企業(yè)來說,有沒有競爭力,關(guān)鍵在于有沒有一個團(tuán)結(jié),高效的一個團(tuán)隊。而對于一個團(tuán)隊來將,工具是非常重要的。就像Facebook,特別強(qiáng)調(diào)團(tuán)隊內(nèi)部工具的重要性,好的工具能讓效率事半功倍,能更快的推出產(chǎn)品,贏得先機(jī)。工欲善其事,必先利其器。自動化工具在IT行業(yè)的需求越來越大,單純依靠人力勞動是不可取的。一個大型企業(yè)的生產(chǎn)開發(fā)線會有許許多多的程序,如果沒有一套自動化生產(chǎn)工具,那需要付出多少的人力勞動。例如Google的服務(wù)器有成千上萬臺,如果他們的運維人員沒有一套工具去操作,而一個個ssh連接到服務(wù)器去操作,那是一件多么耗時的體力活啊。實現(xiàn)運維自動化,不依賴手工操作,這將會有效的提高工作效率,降低企業(yè)成本。也不會使IT部門覺得重復(fù)的做一件事情,疲憊不堪。而有更多的時間和精力投入到其他事情中去。在參加學(xué)校生產(chǎn)實習(xí)的過程中,我加深對IT企業(yè)的認(rèn)識。工作的過程也發(fā)現(xiàn),我們需要根據(jù)工作的需要,寫一些腳本去協(xié)助我們更好的完成工作。例如去統(tǒng)計數(shù)臺服務(wù)器一周的登陸人數(shù),一個個的去數(shù)可以完成任務(wù),但是這個會比較耗時間,而且很大的可能會數(shù)錯。編寫腳本去統(tǒng)計的話就會有效的節(jié)省時間,得到的數(shù)據(jù)也比較可靠。對于監(jiān)控方面,服務(wù)器的運行關(guān)系很重要,有一個比較直觀的數(shù)據(jù)展示能讓我們更好的了解服務(wù)器的狀態(tài),盡量減少我們工作的時候服務(wù)器宕機(jī)。并且有助于我們更好的了解服務(wù)器的性能,充分利用服務(wù)器。監(jiān)控在這里面只是其中很小的一部分,其實是需要建立一套完整的體系的,常用的監(jiān)控方案有好幾種,這里只是做一個嘗試,之后回獨立做一個有關(guān)這方面的一個系統(tǒng)。根據(jù)以上的問題。為了簡化工作流程,提高工作效率和人工操作的失誤,決定開發(fā)一套關(guān)于產(chǎn)品的管理流程,方便對產(chǎn)品和服務(wù)的管理,規(guī)范管理流程。數(shù)據(jù)庫介紹數(shù)據(jù)庫是一門重要的計算機(jī)技術(shù),數(shù)據(jù)的存儲及管理是一個企業(yè)的核心。企業(yè)對于大數(shù)據(jù)的處理也越來越重視,很多時候都是數(shù)據(jù)驅(qū)動應(yīng)用,數(shù)據(jù)能夠說明用戶的需求。本設(shè)計的數(shù)據(jù)存儲采用Mysql+LDAP。MYSQL概述MYSQL容易入手。該系統(tǒng)使用它來存儲數(shù)據(jù),主要是考慮到數(shù)據(jù)量并不大,而且本系統(tǒng)主要以linux作為服務(wù)器,SQL-Server只能運行在windows系統(tǒng)上面。而與Oracle相比較,oracle的成本則比較高,因為oracle并非免費版本,oracle在處理大數(shù)據(jù)方面具備優(yōu)勢,但是對于這種小數(shù)據(jù)量來說,oracle的優(yōu)勢并不能得到體現(xiàn)。所以我們就選擇了mysql。LDAP概述LDAP是LightweightDirectoryAccessProtocol的簡稱,是數(shù)據(jù)庫的一種,但是他和關(guān)系數(shù)據(jù)庫不一樣,他是以樹狀結(jié)構(gòu)存儲數(shù)據(jù)的,這種目錄組織結(jié)構(gòu)經(jīng)常用來存儲用戶信息,可以包含郵件,電話,家庭住址等等。LDAP目錄中,每一條條目都有一個唯一的DN。它是由基礎(chǔ)的DN和CN組成的。例如:基礎(chǔ)的DN為dc=jluzh,dc=com,那么該學(xué)校里的某學(xué)生可以這么設(shè)置:cn=mou,ou=student,dc=jluzh,dc=com,如果要以系別分,例如計算機(jī),可以設(shè)置為cn=mou,ou=computer,ou=student,dc=jluzh,dc=com,這就是一個LDAP的一個條目。LDAP適合不需要頻繁更新,但需要頻繁讀取的數(shù)據(jù)源應(yīng)用,所以本設(shè)計用他來做驗證登錄。開發(fā)環(huán)境簡介語言的選擇本系統(tǒng)的開發(fā)語言是PHP+Shell+Python,這個組合是開發(fā)的過程中商量決定的,應(yīng)為各自有自己語言的特點,能夠利用其特點獲得我們想要的效果。PHP是WEB開發(fā)的重要工具,前臺的展示也都是由PHP處理,Shell是Linux下的一中腳本語言,在Linux系統(tǒng)下的執(zhí)行效率相對比較高,有部分的處理便使用Shell進(jìn)行,Python是一門面向?qū)ο蟮挠嬎銠C(jī)語言,包含了完善而且容易理解的標(biāo)準(zhǔn)庫,能夠輕松的完成很多常見的任務(wù)。PHP是HypertextPreprocessor的簡稱,他是一種服務(wù)器端解釋的腳本語言。PHP與HTML的兼容性非常的好,PHP的運行速度較快,運行損耗較小。這也是PHP的一大優(yōu)勢。Shell是Linux的腳本語言,也可以說是Linux的一個命令程序。能夠便捷快速的處理用戶的任務(wù)。能夠調(diào)用系統(tǒng)內(nèi)核的大部分功能來幫助我們實現(xiàn)要求。開發(fā)平臺開發(fā)平臺是ubuntu+ZendStudioUbuntu是linux操作系統(tǒng),因其開源和穩(wěn)定而受歡迎。絕大多數(shù)的服務(wù)器也都采用linux系統(tǒng)。ZendStudio是PHP語言的集成開發(fā)環(huán)境,本系統(tǒng)用他來做開發(fā)。服務(wù)端與客戶端簡介服務(wù)端和客戶端的介紹,主要是介紹基礎(chǔ)環(huán)境、程序文件夾結(jié)構(gòu)和服務(wù)器的部署。這有助于我們認(rèn)識程序的基本結(jié)構(gòu),使得我們的思路更加清晰。服務(wù)器端基礎(chǔ)環(huán)境操作系統(tǒng):linuxserver服務(wù)器:nginx1.3.2PHP軟件:PHP5.6.1數(shù)據(jù)庫:Mysql開發(fā)工具:ZendStudio瀏覽器:Chrome或者firefox客戶端使用須知瀏覽器:Chrome或者firefox文件夾組織結(jié)構(gòu)設(shè)計的時候,將整體的文件夾框架建立起來,方便開發(fā),不會導(dǎo)致開發(fā)工程混亂,規(guī)范開發(fā)代碼。圖1-1為設(shè)計的文件夾結(jié)構(gòu)圖。主要是將各個模塊分出來,將公共的模塊抽出來單獨完成,這樣減少代碼的重復(fù)編寫。也使得條例清晰。主工程名為product,里面包含有多個文件夾,這些都是按照特定的功能分開的,about是存放軟件關(guān)于信息很相關(guān)操作的ajax文件夾主要是存放運用到的ajax頁面的代碼,buid文件夾是關(guān)于構(gòu)建模塊的,有關(guān)構(gòu)建的提交,構(gòu)建的處理,構(gòu)建完成的代碼模塊都是在這里完成。connect里面是有關(guān)數(shù)據(jù)庫mysql的連接,關(guān)閉。css是存放頁面的css樣式和布局,distribute這部分是產(chǎn)品發(fā)布的功能實現(xiàn),所有的發(fā)布代碼都在這個文件夾里面。html,這個是用來存放html文件的,image存放程序使用到的圖片,js存放程序使用到的js文件,log,程序日志輸出文件夾。send_mail發(fā)送郵件的功能模塊,test存放測試相關(guān)操作的代碼。主界面的代碼都是放在根目錄下面,也很容易找到對應(yīng)的功能代碼,這樣存放基本的層次結(jié)構(gòu)就比較清晰了,開發(fā)過程也能較快的找到相應(yīng)的代碼修改。這樣使得開發(fā)效率更高。圖1-1文件結(jié)構(gòu)圖服務(wù)器部署圖如圖1-2所示,服務(wù)器A主要是部署主要的工程,web服務(wù)器是Nginx、FastCGI。由于產(chǎn)品人員需要提交產(chǎn)品資料,這是一個帶圖片和產(chǎn)品說明及更新文檔的文件夾。所以還需要搭建一個samba服務(wù)器作為共享的目錄。程序從這個samba共享目錄中去讀取相關(guān)的文件。服務(wù)器B需要部署OpenLDAP作為認(rèn)證中心。這里面存放的是員工的基本信息。服務(wù)器C需要部署的時Nginx和python的基礎(chǔ)環(huán)境,python用來批量的修改大量的文件內(nèi)容,將版本信息及其他相關(guān)的信息修改成需要的內(nèi)容。服務(wù)器D需要部署的時Django的環(huán)境,使python編寫的一個頁面,使用Ant構(gòu)建,將程序打包處理。這里其實可以將所有的東西放到一臺服務(wù)器上運行,但是考慮到服務(wù)器的性能和程序運行的效率,才將這些拆開,以最好的效果展現(xiàn)。服務(wù)器Amysql+nginx+php+sambaBCLDAP驗證測試部署D構(gòu)建平臺圖1-2服務(wù)器部署圖2需求分析需求分析對于公司產(chǎn)品的管理,不同的人有不同的職責(zé)。因此,這個管理平臺需要為用戶提供不同的功能和權(quán)限,需要為他根據(jù)產(chǎn)品的設(shè)計流程,能夠提供便捷的操作,界面簡潔。綜合考慮,本系統(tǒng)的要求如下:能夠給開發(fā)人員提交構(gòu)建需求:(1)提供svn代碼地址,版本,是否有定制需求,渠道號;要求輸入能判斷是否有效,能最快速填寫表單;能夠處理構(gòu)建需求:(1)使用Ant構(gòu)建,將程序打包并且簽名;(2)使用Ant自帶的郵件發(fā)送功能將軟件包的地址發(fā)送到相關(guān)人員郵箱中。能夠處理產(chǎn)品驗收通過并提交申請測試:提供申請測試頁面,能夠從前面的構(gòu)建信息中繼續(xù)操作;僅僅填寫很少的信息并讓需要知道的人知曉;能夠給測試人員填寫測試計劃:(1)測試人員填寫測試計劃表單,部分會插入HTML表格;能夠測試提交測試環(huán)境部署并處理:構(gòu)建過程生成一個升級包,測試人員可以點擊對應(yīng)產(chǎn)品的這一條任務(wù)而執(zhí)行申請部署并且自動執(zhí)行升級包的部署;能通過網(wǎng)頁查看升級文件的詳細(xì)信息判斷和收手機(jī)的信息是否一致;有測試結(jié)果的處理:提交測試通過或者不通過的列表;能夠申請發(fā)布,將軟件包傳到外網(wǎng):(1)申請發(fā)布操作,需要將構(gòu)建好懂俄程序包和產(chǎn)品放到samba中的文件夾合并;(2)能夠打包成7z壓縮包;可以將壓縮包上傳到外網(wǎng)的一個固定的地址;(4)程序還需要讀取產(chǎn)品放到samba中的文件夾的資料,需要讀出產(chǎn)品簡介、更新日志的內(nèi)容和圖片的像素大??;可以將上面獲取到的信息以表格的形式制成一張表以郵件形式發(fā)送給相關(guān)的人員;能夠產(chǎn)品狀態(tài)查詢:查詢產(chǎn)品處于哪個狀態(tài),是測試中還是構(gòu)建未完成。這里都需要能通過對應(yīng)的信息查詢到。以便相關(guān)人員查看;能夠?qū)崿F(xiàn)服務(wù)器的狀態(tài)監(jiān)控:(1)服務(wù)器的相關(guān)狀態(tài)顯示,只有運維人員需要知曉,其他人不需要權(quán)限查看。需要監(jiān)控nginx的狀態(tài)、cpu使用情況、系統(tǒng)負(fù)載等信息;所有的操作都能有郵件實時通知:每個操作都會需要通知相關(guān)的人員,所以郵件能便捷的提醒相關(guān)人員。系統(tǒng)功能分析圖如圖2-1所示,系統(tǒng)功能分析如下,各部門有對應(yīng)的功能模塊,也將整個程序串成一條連貫的流水線:登錄產(chǎn)品部門研發(fā)部門運維部門測試部門產(chǎn)品資料產(chǎn)品發(fā)布環(huán)境部署構(gòu)建任務(wù)監(jiān)控處理任務(wù)結(jié)束圖2-1系統(tǒng)功能分析圖3總體設(shè)計系統(tǒng)目標(biāo)根據(jù)需求分析以及與用戶的溝通,系統(tǒng)地基本目標(biāo)如下:系統(tǒng)界面簡潔,美觀大方,框架清晰,能實現(xiàn)基本的功能。數(shù)據(jù)傳輸存儲安全可靠。對用戶的輸入框提供校驗功能,盡可能的減少失誤。具有郵箱提示能,最快速的通知相關(guān)的人員。網(wǎng)站的維護(hù)簡單,易操作。獲取圖片像素功能準(zhǔn)確。文件上傳功能邏輯正確,安全可靠。壓縮資源快速準(zhǔn)確。Wimdows文件和Linux文件互相傳遞沒有編碼問題。系統(tǒng)運行穩(wěn)定,能夠支持公司員工多人操作。構(gòu)建的處理及時,準(zhǔn)確。測試部署邏輯準(zhǔn)確,有效。用戶權(quán)限控制合理,權(quán)限能給的盡量給到最低。監(jiān)控力度實時有效,監(jiān)控圖直觀。數(shù)據(jù)庫設(shè)計系統(tǒng)數(shù)據(jù)分析通過對整個流程的分析,該流程主要的數(shù)據(jù)實體有這么幾類:構(gòu)建、測試、渠道、用戶,申請測試這些實體涉及的實體項目分別是:(1)構(gòu)建:id、標(biāo)題、工程名稱、svn地址、版本、渠道、定制需求、郵件、備注、構(gòu)建后軟件包地址、更新包地址、更新信息、狀態(tài)、人員、測試ID(2)測試:id、標(biāo)題、當(dāng)前時間,測試文檔、軟件包地址、修改內(nèi)容、備注、狀態(tài)、需要測試時間渠道:渠道號,渠道名,渠道簡短名用戶:中文名,名字拼音.2系統(tǒng)E—R圖申請構(gòu)建提交構(gòu)建處理產(chǎn)品版本渠道Svn地址定制需求軟件信息更新包地址軟件包地址驗收申請測試產(chǎn)品需求文檔軟件包地址要包時間備注測試計劃處理目的內(nèi)容人員時間版本設(shè)備測試結(jié)果測試部署提交結(jié)果內(nèi)容版本設(shè)備人員時間測試處理申請發(fā)布產(chǎn)品可發(fā)布監(jiān)控ftp服務(wù)器htt、tomcatSamba更新包N111N1N11111圖3-1系統(tǒng)E-R圖3.2數(shù)據(jù)字典申請構(gòu)建表申請購建表主要用于開發(fā)提交構(gòu)建申請,id為該表的主鍵,該數(shù)據(jù)表結(jié)構(gòu)如表3-1所示:表3-1申請構(gòu)建表構(gòu)建完成構(gòu)建完成的表主要是存儲構(gòu)建完成的數(shù)據(jù)包地址,具體的表結(jié)構(gòu)如表3-2所示:表3-2構(gòu)建完成表申請測試申請測試表主要用于存儲申請測試的信息。Aid是主鍵,id是構(gòu)建表的外鍵,數(shù)據(jù)表的結(jié)構(gòu)如表3-3所示:表3-3申請測試表渠道渠道信息表主要用于存儲渠道信息,id作為表的主鍵,其數(shù)據(jù)結(jié)構(gòu)如表3-4所示:表3-4渠道信息表用戶用戶表主要用于存儲用戶的信息,主要是用戶的姓名和姓名的拼音,數(shù)據(jù)表沒有外鍵,與其他表格的聯(lián)系不大,只是用來方便用戶輸入的,所以只有有三個數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)如表3-5所示:表3-5用戶表監(jiān)控監(jiān)控表主要用于存放監(jiān)控獲取到的數(shù)據(jù),主要包含id、流量、接口、php-fpm。如表3-5所示:表3-6用戶表4設(shè)計思想與實現(xiàn)用戶登錄模塊登錄模塊,對用戶身份的驗證,使用比較簡介的設(shè)計,只需要用戶輸入帳號和密碼,就會到LDAP服務(wù)器上去驗證。如圖4-1所示。本系統(tǒng)是沒有用戶表的,在公司有多個系統(tǒng)的情況下能使用統(tǒng)一的帳號密碼進(jìn)行登錄,實現(xiàn)單點登錄。當(dāng)然,權(quán)限的設(shè)置在程序中還是必須要的。圖4-1登陸模塊登陸模塊主要的思路是:根據(jù)LDAP的特性,驗證是通過DN和密碼來驗證的。上面介紹過LDAP的一些基礎(chǔ)信息。例如基礎(chǔ)的DN設(shè)置成dc=jluzh,dc=com。那么我們個人的DN可以是cn=zhangsan,ou=student,dc=jluzh,dc=com,如果驗證的話,我們不可能讓用戶輸入這么長的用戶名,所以,我們只讓用戶輸入前面的cn。然后去服務(wù)器通過cn獲取到用戶的dn,然后再通過DN去驗證。用到的一些函數(shù),主要是關(guān)于LDAP的連接的函數(shù)。session_start()打開session的函數(shù),用session來保存用戶名和密碼,這個能在之后的權(quán)限設(shè)置上發(fā)揮比較大的作用。ldap_connect("ip:port")LDAP連接函數(shù),返回的是一個鏈接代號。ldap_search($conn,$base_dn,cn)根據(jù)cn獲取到用戶的信息,列出樹狀資料。這里我們將會獲取到用戶的全部信息。然后再去處理。ldap_get_entries($conn,$search)把用戶的信息放到一個數(shù)組里面。然后通過一個for循環(huán)找出用戶dn。ldap_bind($conn,$user_dn,$pass連接函數(shù),用戶dn和密碼正確返回true。錯誤返回false。驗證結(jié)束。驗證通過之后跳轉(zhuǎn)到main頁面。如圖4-2所示,代碼的編寫如下:圖4-2登陸代碼菜單如圖4-3所示:這是所有的產(chǎn)品管理的菜單欄。能夠最快速的找到我們需要完成的任務(wù)。側(cè)邊攔主要就是把所有的功能列出來,供用戶直觀的看到系統(tǒng)的功能,找到相應(yīng)的操作。部分代碼實現(xiàn)如下所示:<divclass="box"><h2id="current_project”>當(dāng)前目錄:</h2><ulclass="menu"><liclass="level1"><ahref="">構(gòu)建</a><ulclass="level2"><?phpif($ou=="運維組"||$ou=="測試組"){echo'<liid="newProject"><ahref="./build//submit.php"target="cFrame”>提交構(gòu)建</a></li><liid="prolist"><ahref="./build/list_build.php"target="cFrame”>構(gòu)建任務(wù)</a></li><liid="newProject"><ahref="./build/build_complete.php"target="cFrame”>構(gòu)建完成</a></li>';//<liid="newProject"><ahref="AssetManegement/addcomputer.php"target="cFrame"></a></li>}if($ou=="產(chǎn)品組"||$ou=="客戶端"){echo'<liid="newProject"><ahref="./build/html/submit.html"target="cFrame”>提交構(gòu)建</a></li><liid="newProject"><ahref="./build/list_build.php"target="cFrame”>任務(wù)列表</a></li>';}?>圖4.3菜單欄申請構(gòu)建頁面如圖4-4所示,申請構(gòu)建頁面的表單較簡單,主要用到的技術(shù)有JS動態(tài)添加一組對話框、根據(jù)對話框多少將數(shù)據(jù)錄入數(shù)據(jù)庫和Ajax不刷新頁面自動顯示輸入數(shù)據(jù)后面部分這三個。圖4-4申請構(gòu)建一、JS動態(tài)添加一組對話框。動態(tài)添加對話框,其實就是在JS寫一個點擊事件的函數(shù),點擊后將HTML顯示到一個DIV里面。關(guān)鍵代碼如下:$(function(){$('#addTextImput').click(function(){$('#addTextImput').append("輸出");});});將上面的輸出替換成我們需要的東西就能夠?qū)崿F(xiàn)動態(tài)添加的需求。二、數(shù)據(jù)錄入數(shù)據(jù)庫。錄入數(shù)據(jù)的條目是根據(jù)上面的i得到的,然后調(diào)用錄入數(shù)據(jù)庫的函數(shù),成功則返回這一條數(shù)據(jù)的ID,多個構(gòu)建任務(wù)時循環(huán)調(diào)用這個函數(shù)。數(shù)據(jù)庫的錄入用到的知識其實就是sql的insert語法,這里建立了一個錄入的函數(shù),主要是考慮到多個輸入之后輸出的問題,需要返回插入數(shù)據(jù)庫之后的ID,關(guān)鍵代碼有:插入語法:insertinto表名(字段)values(字段)獲取ID語法:selectidfrom表明where條件。三、Ajax不刷新頁面自動顯示輸入后面數(shù)據(jù)根據(jù)需求分析,我們要求系統(tǒng)能最大的節(jié)省我們的輸入和嚴(yán)格的控制輸入的正確性,所以本系統(tǒng)對文本框多處的使用了輸入一部份自動顯示其他的功能。這樣就能減少人工輸入錯誤。提高輸入的效率。針對這個一要求,在做渠道號輸入框的時候,就運用了這個技巧,填寫的過程中不斷的后臺搜索并且展示15個結(jié)果。主要實現(xiàn)的思路如下:.獲取輸入框的id,監(jiān)聽輸入框的keyup事件。.通過AJAX的GET方式提交數(shù)據(jù),傳遞參數(shù)到我們需要的頁面,在處理頁面成功執(zhí)行之后返回一個字符串,然后把字符串放到我們創(chuàng)建的一個table中這樣就能把數(shù)據(jù)顯示出來了。.然后我們在通過鼠標(biāo)的懸浮,并且監(jiān)聽鼠標(biāo)的點擊事件。將鼠標(biāo)點擊的值傳遞給輸入框,從而達(dá)到我們的要求。具體的實現(xiàn)代碼如圖所示:圖4-5輸入框Ajax4.4構(gòu)建列表如圖4-4所以,構(gòu)建列表主要顯示標(biāo)題、渠道和申請的時間,這里顯示的都是處理的構(gòu)建任務(wù),加入處理完成,會默認(rèn)把這個產(chǎn)品放到下一個工作流程中去。這里的技術(shù)點有兩個:詳細(xì)信息的顯示。*點擊詳細(xì)信息之后,下方會出現(xiàn)這個構(gòu)建的所有信息,這是通過Ajax實現(xiàn)的,實現(xiàn)不刷新頁面動態(tài)顯示詳細(xì)信息,減少用戶查看需要刷新頁面的苦惱。實現(xiàn)的思路:(1)首先獲取到鼠標(biāo)點擊button的id值,Ajax傳遞ID給后臺頁面處理。(2)后臺處理頁面將數(shù)據(jù)傳送到前臺頁面,前臺提供一個table存放這些數(shù)據(jù)。(3)關(guān)鍵代碼:xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){varstr=xmlHttp.responseText;document.getElementById('info').innerHTML=str;varobj=eval('('+xmlHttp.responseText+')');}}vararr=document.getElementsByTagName('button');for(vari=0;i<arr.length;i++){arr[i].onclick=function(){//alert(this.id);vardata=document.getElementById(this.id).value;;xmlHttp.open("POST","show_info.php",true);xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xmlHttp.send("id="+data);}}}構(gòu)建的處理如圖4-6所示,點擊詳細(xì)信息下面的框的數(shù)據(jù)會變化。圖4-6構(gòu)建列表如圖4-7所示,編譯的代碼主要是使用python編寫的,主要是使用python做一些其他的處理,例如構(gòu)建升級包,增加定制的需求,主要的核心是使用google的ant構(gòu)建。主要是使用google的ant構(gòu)建。Ant構(gòu)建的過程主要是通過build.xml文件執(zhí)行的;(2)生成一個release的apk;需要簽名,打包;(4)用ant自帶的郵件功能發(fā)送郵件。圖4-7構(gòu)建代碼構(gòu)建完成頁面如圖4-6所示,構(gòu)建完成的頁面是同樣適用ajax技術(shù),增加一個多選的操作。復(fù)選框的實現(xiàn):(1)支持多選,就要獲取到用戶的鼠標(biāo)點擊事件,所以就用JS獲取到點擊的checkbox的值。(2)將checkbox的ID變成以逗號隔開的字符串形式傳遞個下一個頁面,下一個頁面可以通過字符串切割得到各個ID,然后通過ID查詢到相關(guān)數(shù)據(jù)。圖4-6構(gòu)建完成部署頁面如圖4-6所示,主要用到的是批量修改文件。圖4-6部署頁面部署頁面的設(shè)計思路是:軟件包會有一個更新文件,部署的話分當(dāng)前版本和高版本的部署,當(dāng)前版本可以直接將構(gòu)建出來的軟件包解壓到一個nginx的目錄里面,客戶端會去讀取對應(yīng)的配置文件。高版本的升級則需要修改配置文件,將version的屬性修改。還有修改log日志。日志會更具apk包的名字不同而有所差異。所以修改的關(guān)鍵是修改apk包名字,apk包的MD5值變化更新到配置文件,配置文件的version也需要更改。由于配置文件有時候是近百個,所以手動修改時不可取的。因此需要軟件批量修改。郵件表格郵件表格功能的實現(xiàn),效果如圖4-7。主要的功能點有:動態(tài)獲取samba上產(chǎn)品上傳的文件夾里面的資料信息,包括圖片尺寸大小,文檔名稱,產(chǎn)品簡介和更新日志里面的內(nèi)容,并發(fā)送郵件。獲取圖片大小是去遞歸遍歷文件夾,判斷是否是圖片,然后獲取圖片大小遞歸遍歷文件夾代碼實現(xiàn)(1)使用opendir($dir)打開文件夾,通過if(is_dir($dir.DIRECTORY_SEPARATOR.$file))判斷是不是文件夾,不是則輸出文件名和路徑,是文件夾則繼續(xù)打開,繼續(xù)上一步操作。最后返回一個文件名的數(shù)組獲取圖片大小的實現(xiàn)(1)使用getimagesize獲取到圖片的基本信息,獲取到的是一個數(shù)組,(2)由得到的數(shù)組很多信息是我們不需要的,我們僅僅只是需要其中的像素大小這一個數(shù)據(jù)。通過array($img_info[0],$img_info[1])通過這個獲取到圖片的大小(3)函數(shù)return一個圖片像素值。獲取txt文檔內(nèi)容實現(xiàn)(1)使用fopen打開文件(2)使用file_get_contents獲取文本內(nèi)容(3)使用explode函數(shù)分行顯示圖4-7郵件表格傳包發(fā)布頁面這個主要是把軟件包傳送到一個FTP服務(wù)器上面去,然后有相關(guān)的人員去獲取軟件包,主要的過程有:去samba服務(wù)器獲取對應(yīng)的文件夾,將文件夾壓縮成7z包,將包發(fā)送到FTP7zip壓縮時使用linux的7za命令執(zhí)行的,將對應(yīng)的軟件包打包之后,包會自動刪刪除。PHP調(diào)用外部命令的方式主要有兩種,一種是system的方法。另外一種是使用exec()進(jìn)行調(diào)用。如exec(7zaa文件夾.7z文件夾)的形式就可以打包。產(chǎn)品文件夾的數(shù)據(jù)來源是根據(jù)前面兩個下拉列表的信息得到的,是聯(lián)動下拉列表,聯(lián)動下拉列表的實現(xiàn)主要是使用Ajax實現(xiàn)的,也是將參數(shù)傳遞到一個php頁面,然后在服務(wù)端處理完之后將數(shù)據(jù)返回到客戶端顯示。Ajax技術(shù)的實現(xiàn),使我們的頁面簡介性得到優(yōu)化,也使得我們的操作顯得流暢,舒服。獲取對應(yīng)的文件夾使用的是Ajax基本思路是將按鈕聯(lián)動,選擇前面兩個選擇框的數(shù)據(jù),將直接影響下面的下來選框出現(xiàn)的數(shù)據(jù)是samba上的那個目錄的文件夾。連接FTP發(fā)送文件的實現(xiàn)$ftp_server="192.xx.xx.xx";$ftp_user_name="ftpuser";$ftp_user_pass="passwd";$conn=ftp_ssl_connect($ftp_server,21,3000)ordie("cannotconnectftp");$login_result=ftp_login($conn,$ftp_user_name,$ftp_user_pass);ftp_pasv($conn,true);圖4-8傳包發(fā)布監(jiān)控圖如圖4-9所示,監(jiān)控的圖像,主要是使用snmp獲取數(shù)據(jù),然后使用js將數(shù)據(jù)展示出來。主要的思路是,使用shell和snmp結(jié)合,從服務(wù)器獲取到需要的基礎(chǔ)數(shù)據(jù),然后將這些數(shù)據(jù)保存到數(shù)據(jù)庫中,數(shù)據(jù)的處理是每五分鐘一次。將這些數(shù)據(jù)使用rrd的形式繪圖。(1)檢查物理內(nèi)存值:#free-m|grepMem|awk{print$4}(2)檢查緩沖區(qū)的指:#free-m|grep-|awk{print$4}(3)Swap交換分區(qū)的值:#free-mIgrepSwapIawk{print$4}(4)提取本服務(wù)器的IP地址信息IP='ifconfigeth0Igrep"inetaddr"Icut-f2-d":"Icut-f1-d""'圖4-8監(jiān)控圖像圖4-8監(jiān)控圖像系統(tǒng)測試與運行系統(tǒng)驗收測試系統(tǒng)的驗收,主要檢查系統(tǒng)的功能與需求是否一致,檢查系統(tǒng)的邏輯是否正常。系統(tǒng)驗收前的詳細(xì)部署可以查看第一章圖1-2。系統(tǒng)驗收測試分兩個方面,性能測試和功能測試:性能測試程序會24小時運行以測試系統(tǒng)的穩(wěn)定性,并會模擬用戶訪問測試系統(tǒng)的并發(fā)量。測試程序能承受多少壓力。功能測試主要驗收的功能如圖5-1所示:表5-1系統(tǒng)功能驗收表系統(tǒng)運行系統(tǒng)驗收測試完成,系統(tǒng)將開始正常的使用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論