版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
<任務(wù)調(diào)度中心后臺管理系統(tǒng)>需求規(guī)格說明書作者:完成日期:修訂歷史記錄日期版本說明作者V1.0目錄TOC\o"1-5"\h\z\o"CurrentDocument"引言4\o"CurrentDocument"1.1目的4\o"CurrentDocument"1.2背景4\o"CurrentDocument"1.3概述4\o"CurrentDocument"1.4參考文獻(xiàn)4\o"CurrentDocument"項(xiàng)目概述5\o"CurrentDocument"2.1產(chǎn)品特性5\o"CurrentDocument"2.2產(chǎn)品設(shè)計(jì)理念6\o"CurrentDocument"2.3用戶特點(diǎn)6\o"CurrentDocument"2.4一般約束6\o"CurrentDocument"2.5假設(shè)與依據(jù)7\o"CurrentDocument"總體設(shè)計(jì)7\o"CurrentDocument"3.1架構(gòu)設(shè)計(jì)73.1.1設(shè)計(jì)思想73.1.2系統(tǒng)組成7\o"CurrentDocument"3.1.3架構(gòu)圖8\o"CurrentDocument"3.1.4調(diào)度中MHA(集群)8\o"CurrentDocument"3.1.5調(diào)度線程池8\o"CurrentDocument"3.1.6日志回調(diào)任務(wù)9
\o"CurrentDocument"3.1.7調(diào)度日志9\o"CurrentDocument"3.1.8任務(wù)依賴10\o"CurrentDocument"3.1.9通訊數(shù)據(jù)加密10\o"CurrentDocument"3.2.0分片廣播、動態(tài)分片10\o"CurrentDocument"3.2.1訪問令牌(AccessToken)10\o"CurrentDocument"3.2.2故障轉(zhuǎn)移、失敗重試11\o"CurrentDocument"3.2.3任務(wù)超時(shí)控制11\o"CurrentDocument"系統(tǒng)功能11\o"CurrentDocument"4.1功能需求114.1.1系統(tǒng)角色及登陸11\o"CurrentDocument"4.1.2工作流程12\o"CurrentDocument"4.2外部接口需求124.2.1用戶接口124.2.2硬件接口124.2.3軟件接口134.2.4通信接口13\o"CurrentDocument"4.3性能需求13\o"CurrentDocument"4.4屬性134.4.1可用性134.4.2安全性13引言1.1目的該文檔首先給出項(xiàng)目的整體結(jié)構(gòu)和功能結(jié)構(gòu)概貌,試圖從總體架構(gòu)上給出整個(gè)系統(tǒng)的輪廓。同時(shí)對功能需求、性能需求進(jìn)行了詳細(xì)的描述。便于用戶、開發(fā)人員進(jìn)行理解和交流,反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)以及確認(rèn)測試和驗(yàn)收的依據(jù)。本文檔面向多種讀者對象:(1)項(xiàng)目經(jīng)理:項(xiàng)目經(jīng)理可以根據(jù)該文檔了解預(yù)期產(chǎn)品的功能,并據(jù)此進(jìn)行系統(tǒng)設(shè)計(jì)、項(xiàng)目管理。(2)設(shè)計(jì)員:對需求進(jìn)行分析,并設(shè)計(jì)出系統(tǒng),包括數(shù)據(jù)庫的設(shè)計(jì)。(3)程序員:了解系統(tǒng)功能,編寫《用戶手冊》。(4)測試員:根據(jù)本文檔編寫測試用例,并對軟件產(chǎn)品進(jìn)行功能性測試和非功能性測試。(5)用戶:了解預(yù)期產(chǎn)品的功能和性能,并與分析人員一起對整個(gè)需求進(jìn)行討論和協(xié)商。在閱讀本文檔時(shí),首先要了解產(chǎn)品的功能概貌,然后可以根據(jù)自身的需要對每一功能進(jìn)行適當(dāng)?shù)牧私狻?.2背景本次待開發(fā)的軟件為任務(wù)調(diào)度中心后臺管理系統(tǒng)。用戶通過使用該系統(tǒng)在移動終端完成任務(wù)分配等操作。1.3概述該平臺是一個(gè)輕量級分布式任務(wù)調(diào)度平臺,其核心設(shè)計(jì)是統(tǒng)一管理任務(wù)調(diào)度平臺上調(diào)度任務(wù),負(fù)責(zé)出發(fā)調(diào)度執(zhí)行,并且提供任務(wù)管理平臺。1.4參考文獻(xiàn)GB-T8567-2006,《計(jì)算機(jī)軟件文檔編制規(guī)范》[S]
項(xiàng)目概述2.1產(chǎn)品特性1、簡單:支持通過Web頁面對任務(wù)進(jìn)行CRUD操作,操作簡單,容易上手;2、動態(tài):支持動態(tài)修改任務(wù)狀態(tài)、暫停/恢復(fù)任務(wù),以及終止運(yùn)行中任務(wù),即時(shí)生效;3、調(diào)度中MHA(中心式):調(diào)度采用中心式設(shè)計(jì),“調(diào)度中心”基于集群Quartz實(shí)現(xiàn)并支持集群部署,可保證調(diào)度中心HA;4、執(zhí)行器HA(分布式):任務(wù)分布式執(zhí)行,任務(wù)〃執(zhí)行器〃支持集群部署,可保證任務(wù)執(zhí)行HA;5、注冊中心:執(zhí)行器會周期性自動注冊任務(wù),調(diào)度中心將會自動發(fā)現(xiàn)注冊的任務(wù)并觸發(fā)執(zhí)行。同時(shí),也支持手動錄入執(zhí)行器地址;6、彈性擴(kuò)容縮容:一旦有新執(zhí)行器機(jī)器上線或者下線,下次調(diào)度時(shí)將會重新分配任務(wù);7、路由策略:執(zhí)行器集群部署時(shí)提供豐富的路由策略,包括:第一個(gè)、最后一個(gè)、輪詢、隨機(jī)、一致性HASH、最不經(jīng)常使用、最近最久未使用、故障轉(zhuǎn)移、忙碌轉(zhuǎn)移等;8、故障轉(zhuǎn)移:任務(wù)路由策略選擇〃故障轉(zhuǎn)移〃情況下,如果執(zhí)行器集群中某一臺機(jī)器故障,將會自動Failover切換到一臺正常的執(zhí)行器發(fā)送調(diào)度請求。9、失敗處理策略;調(diào)度失敗時(shí)的處理策略,策略包括:失敗告警、失敗重試;10、失敗重試:調(diào)度中心調(diào)度失敗且啟用〃調(diào)度失敗重試〃策略時(shí),將會自動重試一次;執(zhí)行器執(zhí)行失敗且啟用〃執(zhí)行失敗重試〃策略,或回調(diào)失敗重試狀態(tài)時(shí),也將會自動重試一次;11、阻塞處理策略:調(diào)度過于密集執(zhí)行器來不及處理時(shí)的處理策略,策略包括:單機(jī)串行(默認(rèn))、丟棄后續(xù)調(diào)度、覆蓋之前調(diào)度;12、任務(wù)超時(shí)控制:支持設(shè)置任務(wù)超時(shí)時(shí)間,任務(wù)運(yùn)行超時(shí)的情況下,將會主動中斷任務(wù);13、分片廣播任務(wù):執(zhí)行器集群部署時(shí),任務(wù)路由策略選擇〃分片廣播〃情況下,一次任務(wù)調(diào)度將會廣播觸發(fā)集群中所有執(zhí)行器執(zhí)行一次任務(wù),可根據(jù)分片參數(shù)開發(fā)分片任務(wù);14、動態(tài)分片:分片廣播任務(wù)以執(zhí)行器為維度進(jìn)行分片,支持動態(tài)擴(kuò)容執(zhí)行器集群從而動態(tài)增加分片數(shù)量,協(xié)同進(jìn)行業(yè)務(wù)處理;在進(jìn)行大數(shù)據(jù)量業(yè)務(wù)操作時(shí)可顯著提升任務(wù)處理能力和速度。15、事件觸發(fā):除了"Cron方式〃和〃任務(wù)依賴方式〃觸發(fā)任務(wù)執(zhí)行之外,支持基于事件的觸發(fā)任務(wù)方式。調(diào)度中心提供觸發(fā)任務(wù)單次執(zhí)行的API服務(wù),可根據(jù)業(yè)務(wù)事件靈活觸發(fā)。16、任務(wù)進(jìn)度監(jiān)控:支持實(shí)時(shí)監(jiān)控任務(wù)進(jìn)度;
17、Rolling實(shí)時(shí)日志:支持在線查看調(diào)度結(jié)果,并且支持以Rolling方式實(shí)時(shí)查看執(zhí)行器輸出的完整的執(zhí)行日志;18、GLUE:提供WebIDE,支持在線開發(fā)任務(wù)邏輯代碼,動態(tài)發(fā)布,實(shí)時(shí)編譯生效,省略部署上線的過程。支持30個(gè)版本的歷史版本回溯。19、腳本任務(wù):支持以GLUE模式開發(fā)和運(yùn)行腳本任務(wù),包括Shell、Python、NodeJS等類型腳本;20、任務(wù)依賴:支持配置子任務(wù)依賴,當(dāng)父任務(wù)執(zhí)行結(jié)束且執(zhí)行成功后將會主動觸發(fā)一次子任務(wù)的執(zhí)行,多個(gè)子任務(wù)用逗號分隔;21、一致性:“調(diào)度中心”通過DB鎖保證集群分布式調(diào)度的一致性,一次任務(wù)調(diào)度只會觸發(fā)一次執(zhí)行;22、自定義任務(wù)參數(shù):支持在線配置調(diào)度任務(wù)入?yún)?,即時(shí)生效;23、調(diào)度線程池:調(diào)度系統(tǒng)多線程觸發(fā)調(diào)度運(yùn)行,確保調(diào)度精確執(zhí)行,不被堵塞;24、數(shù)據(jù)加密:調(diào)度中心和執(zhí)行器之間的通訊進(jìn)行數(shù)據(jù)加密,提升調(diào)度信息安全性;25、郵件報(bào)警:任務(wù)失敗時(shí)支持郵件報(bào)警,支持配置多郵件地址群發(fā)報(bào)警郵件;26、推送maven中央倉庫:將會把最新穩(wěn)定版推送到maven中央倉庫,方便用戶接入和使用;27、運(yùn)行報(bào)表:支持實(shí)時(shí)查看運(yùn)行數(shù)據(jù),如任務(wù)數(shù)量、調(diào)度次數(shù)、執(zhí)行器數(shù)量等;以及調(diào)度報(bào)表,如調(diào)度日期分布圖,調(diào)度成功分布圖等;28、全異步:系統(tǒng)底層實(shí)現(xiàn)全部異步化,針對密集調(diào)度進(jìn)行流量削峰,理論上支持任意時(shí)長任務(wù)的運(yùn)行;2.2產(chǎn)品設(shè)計(jì)理念當(dāng)前各大行業(yè)人群密集,因大量繁瑣的任務(wù)分配不及時(shí)而困擾,繁瑣的根源便是郵件的收發(fā)、電話溝通,需要人工分配任務(wù),最終人工匯總表格,工作量大且出錯(cuò)率高。任務(wù)調(diào)度中心系統(tǒng)致力于通過平臺便捷地完成此項(xiàng)工作,且大大降低出錯(cuò)率。2.3用戶特點(diǎn)本系統(tǒng)的最終用戶群體普遍接受高等教育,學(xué)習(xí)及適應(yīng)能力強(qiáng)。能快速適應(yīng)該軟件,并充分感受到在任務(wù)調(diào)度中心的效能變化,提出合理改進(jìn)意見。操作人員及維護(hù)人員為了解該工作的整體流程,深入用戶交流,便于調(diào)整軟件功能,實(shí)現(xiàn)客戶需求。2.4—般約束進(jìn)行本系統(tǒng)開發(fā)工作的約束條件如下:
開發(fā)周期短:兩個(gè)月的開發(fā)時(shí)間需要開發(fā)者合理規(guī)劃時(shí)間,做到多項(xiàng)任務(wù)并發(fā)。所采用的方法與技術(shù)有限:項(xiàng)目團(tuán)隊(duì)成員的技術(shù)水平不夠成熟,需要在開發(fā)中并發(fā)學(xué)習(xí)多種技術(shù)和能力。2.5假設(shè)與依據(jù)本項(xiàng)目是否能夠成功實(shí)施,主要取決于以下的條件:(1)團(tuán)隊(duì)成員的積極合作配合,為了項(xiàng)目的開發(fā)和實(shí)施,對個(gè)人時(shí)間進(jìn)行合理規(guī)劃同時(shí)為團(tuán)隊(duì)做出合理犧牲,配合隊(duì)友完成任務(wù)。(2)完整詳細(xì)的功能和性能需求資料,以便于團(tuán)隊(duì)對其進(jìn)行分析,從而形成完善的軟件需求。(3)團(tuán)隊(duì)掌握先進(jìn)的能夠適用于該項(xiàng)目的技術(shù),這是系統(tǒng)的性能是否優(yōu)化和項(xiàng)目能否成功的保證??傮w設(shè)計(jì)3.1架構(gòu)設(shè)計(jì)3.1.1設(shè)計(jì)思想將調(diào)度行為抽象形成“調(diào)度中心”公共平臺,而平臺自身并不承擔(dān)業(yè)務(wù)邏輯,“調(diào)度中心”負(fù)責(zé)發(fā)起調(diào)度請求。將任務(wù)抽象成分散的JobHandler,交由“執(zhí)行器”統(tǒng)一管理,“執(zhí)行器”負(fù)責(zé)接收調(diào)度請求并執(zhí)行對應(yīng)的JobHandler中業(yè)務(wù)邏輯。因此,“調(diào)度”和“任務(wù)”兩部分可以相互解耦,提高系統(tǒng)整體穩(wěn)定性和擴(kuò)展性;3.1.2系統(tǒng)組成調(diào)度模塊(調(diào)度中心):負(fù)責(zé)管理調(diào)度信息,按照調(diào)度配置發(fā)出調(diào)度請求,自身不承擔(dān)業(yè)務(wù)代碼。調(diào)度系統(tǒng)與任務(wù)解耦,提高了系統(tǒng)可用性和穩(wěn)定性,同時(shí)調(diào)度系統(tǒng)性能不再受限于任務(wù)模塊;支持可視化、簡單且動態(tài)的管理調(diào)度信息,包括任務(wù)新建,更新,刪除,GLUE開發(fā)和任務(wù)報(bào)警等,所有上述操作都會實(shí)時(shí)生效,同時(shí)支持監(jiān)控調(diào)度結(jié)果以及執(zhí)行日志,支持執(zhí)行器Failover。
執(zhí)行模塊(執(zhí)行器):負(fù)責(zé)接收調(diào)度請求并執(zhí)行任務(wù)邏輯。任務(wù)模塊專注于任務(wù)的執(zhí)行等操作,開發(fā)和維護(hù)更加簡單和高效;接收“調(diào)度中心”的執(zhí)行請求、終止請求和日志請求等。3.1.3架構(gòu)圖氛據(jù)中心訓(xùn)鹿中心|口gE謝B:謂踱[i3UI&LI!&|RoiinaHAJabHondlHr{cHjeueJ3.1.4調(diào)度中心HA(集群)氛據(jù)中心訓(xùn)鹿中心|口gE謝B:謂踱[i3UI&LI!&|RoiinaHAJabHondlHr{cHjeueJ基于Quartz的集群方案,數(shù)據(jù)庫選用Mysql;集群分布式并發(fā)環(huán)境中使用QUARTZ定時(shí)任務(wù)調(diào)度,會在各個(gè)節(jié)點(diǎn)會上報(bào)任務(wù),存到數(shù)據(jù)庫中,執(zhí)行時(shí)會從數(shù)據(jù)庫中取出觸發(fā)器來執(zhí)行,如果觸發(fā)器的名稱和執(zhí)行時(shí)間相同,則只有一個(gè)節(jié)點(diǎn)去執(zhí)行此任務(wù)。3.1.5調(diào)度線程池調(diào)度采用線程池方式實(shí)現(xiàn),避免單線程因阻塞而引起任務(wù)調(diào)度延遲。任務(wù)調(diào)度中心系統(tǒng)中業(yè)務(wù)邏輯在遠(yuǎn)程執(zhí)行器執(zhí)行,全異步化設(shè)計(jì),調(diào)度中心每次觸發(fā)調(diào)度時(shí)僅發(fā)送一次調(diào)度請求,執(zhí)行器會將請求存入執(zhí)行隊(duì)列并且立即響應(yīng)調(diào)度中心,異步運(yùn)行;相比直接在quartz的QuartzJobBean中執(zhí)行業(yè)務(wù)邏輯,極大的降低了調(diào)度線程占用時(shí)間;任務(wù)調(diào)度中心系統(tǒng)中每個(gè)邏輯非?!拜p”,單個(gè)一次運(yùn)行平均耗時(shí)基本在"10ms"之內(nèi)(基本為一次請求的網(wǎng)絡(luò)開銷);因此,可以保證使用有限的線程支撐大量的并發(fā)運(yùn)行;理論支撐任務(wù)量公式如下:
理論支撐任務(wù)量=線程數(shù)配置/平均調(diào)度頻率(每秒)*平均觸發(fā)耗時(shí)(單位S)實(shí)際場景中,由于調(diào)度中心與執(zhí)行器ping延遲不同、DB讀寫耗時(shí)不同、任務(wù)調(diào)度密集程度不同,會導(dǎo)致任務(wù)量上限會上下波動。如若需要支撐更多的任務(wù)量,可以通過〃調(diào)大調(diào)度線程數(shù)〃、〃降低調(diào)度中心與執(zhí)行器ping延遲〃和〃提升機(jī)器配置〃幾種方式實(shí)現(xiàn)。3.1.6日志回調(diào)任務(wù)調(diào)度模塊的“調(diào)度中心”作為Web服務(wù)部署時(shí),一方面承擔(dān)調(diào)度中心功能,另一方面也為執(zhí)行器提供API服務(wù)3.1.7調(diào)度日志調(diào)度中心每次進(jìn)行任務(wù)調(diào)度,都會記錄一條任務(wù)日志,任務(wù)日志主要包括以下三部分內(nèi)容:任務(wù)信息:包括“執(zhí)行器地址”、“JobHandler”和“執(zhí)行參數(shù)”等屬性,點(diǎn)擊任務(wù)ID按鈕可查看,根據(jù)這些參數(shù),可以精確的定位任務(wù)執(zhí)行的具體機(jī)器和任務(wù)代碼。調(diào)度信息:包括“調(diào)度時(shí)間”、“調(diào)度結(jié)果”和“調(diào)度日志”等,根據(jù)這些參數(shù),可以了解“調(diào)度中心”發(fā)起調(diào)度請求時(shí)具體情況。執(zhí)行信息:包括“執(zhí)行時(shí)間”、“執(zhí)行結(jié)果”和“執(zhí)行日志”等,根據(jù)這些參數(shù),可以了解在“執(zhí)行器”端任務(wù)執(zhí)行的具體情況;調(diào)度日志,針對單次調(diào)度,屬性說明如下:執(zhí)行器地址:任務(wù)執(zhí)行的機(jī)器地址;JobHandler:Bean模式表示任務(wù)執(zhí)行的JobHandler名稱;任務(wù)參數(shù):任務(wù)執(zhí)行的入?yún)ⅲ徽{(diào)度時(shí)間:調(diào)度中心,發(fā)起調(diào)度的時(shí)間;調(diào)度結(jié)果:調(diào)度中心,發(fā)起調(diào)度的結(jié)果,SUCCESS或FAIL;調(diào)度備注:調(diào)度中心,發(fā)起調(diào)度的備注信息,如地址心跳檢測日志等;執(zhí)行時(shí)間:執(zhí)行器,任務(wù)執(zhí)行結(jié)束后回調(diào)的時(shí)間;執(zhí)行結(jié)果:執(zhí)行器,任務(wù)執(zhí)行的結(jié)果,SUCCESS或FAIL;
執(zhí)行備注:執(zhí)行器,任務(wù)執(zhí)行的備注信息,如異常日志等;執(zhí)行日志:任務(wù)執(zhí)行過程中,業(yè)務(wù)代碼中打印的完整執(zhí)行日志。3.1.8任務(wù)依賴任務(wù)調(diào)度中心每個(gè)任務(wù)都對應(yīng)有一個(gè)任務(wù)ID,同時(shí),每個(gè)任務(wù)支持設(shè)置屬性“子任務(wù)ID”,因此,通過“任務(wù)ID”可以匹配任務(wù)依賴關(guān)系。當(dāng)父任務(wù)執(zhí)行結(jié)束并且執(zhí)行成功時(shí),將會根據(jù)“子任務(wù)ID”匹配子任務(wù)依賴,如果匹配到子任務(wù),將會主動觸發(fā)一次子任務(wù)的執(zhí)行。在任務(wù)日志界面,點(diǎn)擊任務(wù)的“執(zhí)行備注”的“查看”按鈕,可以看到匹配子任務(wù)以及觸發(fā)子任務(wù)執(zhí)行的日志信息,如無信息則表示未觸發(fā)子任務(wù)執(zhí)行。3.1.9通訊數(shù)據(jù)加密調(diào)度中心向執(zhí)行器發(fā)送的調(diào)度請求時(shí)使用RequestModel和ResponseModel兩個(gè)對象封裝調(diào)度請求參數(shù)和響應(yīng)數(shù)據(jù),在進(jìn)行通訊之前底層會將上述兩個(gè)對象對象序列化,并進(jìn)行數(shù)據(jù)協(xié)議以及時(shí)間戳檢驗(yàn),從而達(dá)到數(shù)據(jù)加密的功能;3.2.0分片廣播、動態(tài)分片執(zhí)行器集群部署時(shí),任務(wù)路由策略選擇〃分片廣播〃情況下,一次任務(wù)調(diào)度將會廣播觸發(fā)對應(yīng)集群中所有執(zhí)行器執(zhí)行一次任務(wù),同時(shí)傳遞分片參數(shù);可根據(jù)分片參數(shù)開發(fā)分片任務(wù);〃分片廣播〃以執(zhí)行器為維度進(jìn)行分片,支持動態(tài)擴(kuò)容執(zhí)行器集群從而動態(tài)增加分片數(shù)量,協(xié)同進(jìn)行業(yè)務(wù)處理;在進(jìn)行大數(shù)據(jù)量業(yè)務(wù)操作時(shí)可顯著提升任務(wù)處理能力和速度。"分片廣播〃和普通任務(wù)開發(fā)流程一致,不同之處在于可以可以獲取分片參數(shù),獲取分片參數(shù)進(jìn)行分片業(yè)務(wù)處理。3.2.1訪問令牌(AccessToken)為提升系統(tǒng)安全性,調(diào)度中心和執(zhí)行器進(jìn)行安全性校驗(yàn),雙方AccessToken匹配才允許通訊;調(diào)度中心和執(zhí)行器,可通過配置項(xiàng)”xxl.job.accessToken”進(jìn)行AccessToken的設(shè)置。調(diào)度中心和執(zhí)行器,如果需要正常通訊,只有兩種設(shè)置;
一:調(diào)度中心和執(zhí)行器,均不設(shè)置AccessToken;關(guān)閉安全性校驗(yàn);二:調(diào)度中心和執(zhí)行器,設(shè)置了相同的AccessToken;3.2.2故障轉(zhuǎn)移、失敗重試一次完整任務(wù)流程包括〃調(diào)度(調(diào)度中心)+執(zhí)行(執(zhí)行器)〃兩個(gè)階段〃故障轉(zhuǎn)移〃發(fā)生在調(diào)度階段,在執(zhí)行器集群部署時(shí),如果某一臺執(zhí)行器發(fā)生故障,該策略支持自動進(jìn)行Failover切換到一臺正常的執(zhí)行器機(jī)器并且完成調(diào)度請求流程?!ㄊ≈卦嚒òl(fā)生在〃調(diào)度+執(zhí)行〃兩個(gè)階段,如下調(diào)度失敗重試:調(diào)度中心調(diào)度失敗且啟用〃調(diào)度失敗重試〃策略時(shí),將會自動重試一次;執(zhí)行失敗重試:執(zhí)行器執(zhí)行失敗且啟用〃執(zhí)行失敗重試〃策略,或回調(diào)失敗重試狀態(tài)(IJobHandler.FAIL_RETRY)時(shí),也將會自動重試一次;3.2.3任務(wù)超時(shí)控制支持設(shè)置任務(wù)超時(shí)時(shí)間,任務(wù)運(yùn)行超時(shí)的情況下,將會主動中斷任務(wù);系統(tǒng)功能4.1功能需求4.1.1系統(tǒng)角色及登陸該系統(tǒng)共有三種角色:JobClient(作業(yè)客戶機(jī)),JobTracker(作業(yè)跟蹤器),TaskTracker(守護(hù)進(jìn)程者)。所有角色都具有登陸功能,根據(jù)角色不同登陸后進(jìn)入各個(gè)角色所對應(yīng)的頁面。登錄界面用戶通過輸入賬號密碼,點(diǎn)擊登錄,登錄不同的賬號自動判斷角色,進(jìn)入不同的界面。JobClient:主要負(fù)責(zé)提交任務(wù)和接收任務(wù)執(zhí)行反饋結(jié)果。JobTracker:負(fù)責(zé)接收并分配任務(wù),任務(wù)調(diào)度。
TaskTracker:負(fù)責(zé)執(zhí)行任務(wù),執(zhí)行完反饋給JobTracker。4.1.2工作流程JobClient提交一個(gè)任務(wù)給JobTracker,這里我提供了兩種客戶端API,一種是如果JobTracker不存在或者提交失敗,直接返回提交失敗。另一種客戶端是重試客戶端,如果提交失敗,先存儲到本地leveldb(可以使用NFS來達(dá)到同個(gè)節(jié)點(diǎn)組共享leveldb文件的目的,多線程訪問,做了文件鎖處理),返回給客戶端提交成功的信息,待JobTracker可用的時(shí)候,再將任務(wù)提交。JobTracker收到JobClient提交來的任務(wù),先生成一個(gè)唯一的JoblD。然后將任務(wù)儲存在Mongo集群中。JobTracker發(fā)現(xiàn)有(任務(wù)執(zhí)行的)可用的TaskTracker節(jié)點(diǎn)(組)之后,將優(yōu)先級最大,最先提交的任務(wù)分發(fā)給TaskTracker。這里JobTracker會優(yōu)先分配給比較空閑的TaskTracker節(jié)點(diǎn),達(dá)到負(fù)載均衡。TaskTracker收到JobTracker分發(fā)來的任務(wù)之后,執(zhí)行。執(zhí)行完畢之后,再反饋任務(wù)執(zhí)行結(jié)果給JobTracker(成功or失敗[失敗有失敗錯(cuò)誤信息]),如果發(fā)現(xiàn)JobTacker不可用,那么存儲本地leveldb,等待TaskTracker可用的時(shí)候再反饋。反饋結(jié)果的同時(shí),詢問JobTacker有沒有新的任務(wù)要執(zhí)行。JobTacker收到TaskTracker節(jié)點(diǎn)的任務(wù)結(jié)果信息,生成并插A(mongo)任務(wù)執(zhí)行日志。根據(jù)任務(wù)信息決定要不要反饋給客戶端。不需要反饋的直接刪除,需要反饋的(同樣JobClient不可用存儲文件,等待可用重發(fā))。JobClient收到任務(wù)執(zhí)行結(jié)果,進(jìn)行自己想要的邏輯處理。4.2外部接口需求4.2.1用戶接口本系統(tǒng)采用B/S架構(gòu),所有界面使用APP風(fēng)格,用戶界面的具體細(xì)在功能需求文檔中描述。4.2.2硬件接口無特殊需求。
4.2.3軟件接口無特殊需求。4.2.4通信接口無特殊需求。4.3性能需求非功能性需求當(dāng)前尚未形成完整文檔。4.4屬性4.4.1可用性(1)方便操作,操作流程合理。盡量從用戶角度出發(fā),以方便使用本產(chǎn)品。如:新增信息時(shí),敲入回車鍵光標(biāo)的自動跳轉(zhuǎn)、輸入法的自動轉(zhuǎn)換,信息檢索時(shí)輸入漢語簡拼快速檢索到結(jié)果等。(2)控制必錄入項(xiàng)。本系統(tǒng)能夠?qū)Ρ仨氫浫氲捻?xiàng)目進(jìn)行控制,使用戶能夠確保信息錄入的完整。同時(shí)對必錄入項(xiàng)進(jìn)行有效的統(tǒng)一的提示。(4)容錯(cuò)能力。系統(tǒng)具有一定的容錯(cuò)和抗干擾能力,在非硬件故障或非通訊故障時(shí),系統(tǒng)能夠保證正常運(yùn)行,并有足夠的提示信息幫助用戶有效正確地完成任務(wù)。(5)操作完成時(shí)有統(tǒng)一規(guī)范的提示信息。例如刪除操作時(shí),系統(tǒng)可提示警示框“您確認(rèn)刪除記錄嗎?操作不可恢復(fù)!”,用戶點(diǎn)擊確認(rèn)后,系統(tǒng)才執(zhí)行刪除操作,刪除后可直接返回相關(guān)頁面。4.4.2安全性(1)權(quán)限控制根據(jù)不同用戶角色,設(shè)置相應(yīng)權(quán)限,用戶的重要操作都做相應(yīng)的日志記錄以備查看,沒有權(quán)限的用戶禁止使用系統(tǒng)。(2)重要數(shù)據(jù)加密
對一些重要的數(shù)據(jù)按一定的算法進(jìn)行加密,如用戶口令、重要參數(shù)等。(3)數(shù)據(jù)備份允許用戶進(jìn)行數(shù)據(jù)的備份和恢復(fù),以彌補(bǔ)數(shù)據(jù)的破壞和丟失。(4)記錄日志本系統(tǒng)應(yīng)該能夠記錄系統(tǒng)運(yùn)行時(shí)所發(fā)生的所有錯(cuò)誤,包括本機(jī)錯(cuò)誤和網(wǎng)絡(luò)錯(cuò)誤。這些錯(cuò)誤記錄便于查找錯(cuò)誤的原因。日志同時(shí)記錄用戶的關(guān)鍵性操作信息。4.4.3可維護(hù)性當(dāng)前尚未形成完整文檔。系統(tǒng)開發(fā)計(jì)劃和時(shí)間規(guī)劃該系統(tǒng)分為5個(gè)階段執(zhí)行,系統(tǒng)為期六個(gè)月,項(xiàng)目參與總?cè)藬?shù)為20人。5.1系統(tǒng)啟動階段此階段處于整個(gè)項(xiàng)目實(shí)施工作的最前期,由成立項(xiàng)目組、前期調(diào)研、編制總體項(xiàng)目計(jì)劃、啟動會四個(gè)階段組成(大體為以上四個(gè)階段)。5.1.1成立項(xiàng)目組一般項(xiàng)目合同簽署完成后,公司會通過《項(xiàng)目實(shí)施流程表》先通過“市場管理中心”審核檢閱,主要包括合同相關(guān)款項(xiàng)及系統(tǒng)簽署的相應(yīng)功能模塊是否符合要求;審核結(jié)束后到項(xiàng)目部部門經(jīng)理接到實(shí)施申請后,任命該項(xiàng)目的項(xiàng)目經(jīng)理,指定項(xiàng)目目標(biāo),由項(xiàng)目經(jīng)理指定項(xiàng)目組成員及成員任務(wù),并報(bào)相關(guān)分管副總或者總經(jīng)理。5.1.2前期需求調(diào)研項(xiàng)目經(jīng)理及項(xiàng)目組成員,在商務(wù)人員或者銷售人員配合下,建立與用戶的聯(lián)系,對合同中簽訂的系統(tǒng)主要功能模塊進(jìn)行調(diào)研。確定客戶他們的需求和期望,如何修改完善滿足和影響這些需求、期望以確保項(xiàng)目能夠成功。若涉及到相關(guān)的硬件設(shè)備,在做需求調(diào)研的同時(shí),需協(xié)調(diào)系統(tǒng)集成部門完成硬件服務(wù)器及網(wǎng)絡(luò)環(huán)境的搭建。
5.1.3制定《項(xiàng)目總體計(jì)劃》《項(xiàng)目總體計(jì)劃》文檔主要介紹項(xiàng)目建設(shè)目標(biāo)、主要項(xiàng)目實(shí)施階段、里程碑、可交付成果。通常包括以下幾方面內(nèi)容:項(xiàng)目建設(shè)背景描述,項(xiàng)目建設(shè)目標(biāo)、主要項(xiàng)目階段、里程碑、可交付成果。所計(jì)劃的職責(zé)分配參與配合的相應(yīng)客戶人員;溝通管理計(jì)劃,確定客戶人員溝通的需要。5.1.3啟動會項(xiàng)目組成員與用戶共同召開的宣布該項(xiàng)目正式開始的會議5.2需求調(diào)研確定階段此階段的主要工作是項(xiàng)目實(shí)施人員向用戶調(diào)研后用戶對系統(tǒng)的需求,包括系統(tǒng)流程調(diào)研、功能需求調(diào)研、數(shù)據(jù)查詢需求調(diào)研等,實(shí)施人員調(diào)研完成后,會編寫相關(guān)文檔,并交付用戶進(jìn)行確認(rèn)并且簽字確認(rèn),待用戶對文檔上所提到的需求確認(rèn)簽字完畢后,項(xiàng)目實(shí)施人員將提交該需求調(diào)研分析書給相關(guān)副總或總經(jīng)理簽字,簽字完成后以此為依據(jù)提交開發(fā)進(jìn)行軟件功能的修改完善。5.2.1進(jìn)行需求調(diào)研前期準(zhǔn)備5.2.2制定《需求文檔
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度船舶租賃及船舶交易合同4篇
- 2025年度住宅窗戶智能化升級改造合同4篇
- 2025年紅黃麻繩行業(yè)深度研究分析報(bào)告
- 2025年計(jì)算機(jī)機(jī)房建設(shè)市場分析現(xiàn)狀
- 2025年高端裝備制造廠房股權(quán)交易執(zhí)行協(xié)議4篇
- 2025版工業(yè)用地租賃居間差價(jià)合同3篇
- 2025年度摩托車行業(yè)展會組織服務(wù)合同范本4篇
- 2025年石化節(jié)能減排項(xiàng)目評估報(bào)告
- 二零二五年度風(fēng)力發(fā)電項(xiàng)目風(fēng)力葉片制造合同3篇
- 2020-2025年中國制冰機(jī)行業(yè)市場前景預(yù)測及投資方向研究報(bào)告
- 土地買賣合同參考模板
- 新能源行業(yè)市場分析報(bào)告
- 2025年天津市政建設(shè)集團(tuán)招聘筆試參考題庫含答案解析
- 房地產(chǎn)運(yùn)營管理:提升項(xiàng)目品質(zhì)
- 自愿斷絕父子關(guān)系協(xié)議書電子版
- 你劃我猜游戲【共159張課件】
- 專升本英語閱讀理解50篇
- 中餐烹飪技法大全
- 新型電力系統(tǒng)研究
- 滋補(bǔ)類用藥的培訓(xùn)
- 北師大版高三數(shù)學(xué)選修4-6初等數(shù)論初步全冊課件【完整版】
評論
0/150
提交評論