TBIAIM-工業(yè)互聯(lián)應(yīng)用構(gòu)件開發(fā)規(guī)范_第1頁
TBIAIM-工業(yè)互聯(lián)應(yīng)用構(gòu)件開發(fā)規(guī)范_第2頁
TBIAIM-工業(yè)互聯(lián)應(yīng)用構(gòu)件開發(fā)規(guī)范_第3頁
TBIAIM-工業(yè)互聯(lián)應(yīng)用構(gòu)件開發(fā)規(guī)范_第4頁
TBIAIM-工業(yè)互聯(lián)應(yīng)用構(gòu)件開發(fā)規(guī)范_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Q/LB.□XXXXX-XXXX目次TOC\o"1-1"\h\t"標(biāo)準(zhǔn)文件_一級條標(biāo)題,2,標(biāo)準(zhǔn)文件_附錄一級條標(biāo)題,2,"前言 II1范圍 12規(guī)范性引用文件 13術(shù)語和定義 14縮略語 15應(yīng)用構(gòu)件架構(gòu) 15.1概述 15.2構(gòu)件主體 25.3關(guān)聯(lián)依賴 25.4存儲中心 25.5構(gòu)件接口 25.6基礎(chǔ)信息 25.7測試用例 25.8與外部系統(tǒng)交互 25.9構(gòu)件運行時 36開發(fā)要求 36.1開發(fā)流程 36.2環(huán)境資源要求 36.3設(shè)計要求 36.4構(gòu)件定義 46.5構(gòu)件接口定義 66.6構(gòu)件封裝 116.7構(gòu)件測試 126.8構(gòu)件發(fā)布 13附錄A(資料性)yaml文件的關(guān)鍵配置信息示例 14附錄B(資料性)values.yaml文件的關(guān)鍵配置信息示例 15前言本文件按照GB/T1.1—2020《標(biāo)準(zhǔn)化工作導(dǎo)則第1部分:標(biāo)準(zhǔn)化文件的結(jié)構(gòu)和起草規(guī)則》的規(guī)定起草。請注意本文件的某些內(nèi)容可能涉及專利。本文件的發(fā)布機(jī)構(gòu)不承擔(dān)識別專利的責(zé)任。本文件由北京智能制造創(chuàng)新聯(lián)盟提出。本文件由北京智能制造創(chuàng)新聯(lián)盟歸口。本文件起草單位:本文件主要起草人:工業(yè)互聯(lián)應(yīng)用構(gòu)件開發(fā)規(guī)范范圍本文件規(guī)定了企業(yè)研發(fā)制造資源共享服務(wù)平臺上應(yīng)用構(gòu)件的架構(gòu)和開發(fā)要求,并給出了構(gòu)件封裝的關(guān)鍵配置信息示例。本文件適用于指導(dǎo)企業(yè)研發(fā)制造資源共享服務(wù)平臺上應(yīng)用構(gòu)件的開發(fā)和測試。規(guī)范性引用文件下列文件中的內(nèi)容通過文中的規(guī)范性引用而構(gòu)成本文件必不可少的條款。其中,注日期的引用文件,僅該日期對應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。GB/T36455—2018軟件構(gòu)件模型術(shù)語和定義下列術(shù)語和定義適用于本文件。構(gòu)件component軟件系統(tǒng)中具有相對獨立功能、可以明確辨識、接口由契約指定、和語境有明顯依賴關(guān)系、可獨立部署的可組裝軟件實體。構(gòu)件接口componentinterface軟件構(gòu)件對外交流和交互的唯一通道。構(gòu)件庫componentlibrary一種支持軟件復(fù)用的基礎(chǔ)設(shè)施。它提供對軟件構(gòu)件進(jìn)行描述、分類、存儲和檢索等功能。縮略語下列縮略語適用于本文件。CI:持續(xù)集成(Continuous

Integration)CD:持續(xù)交付(Continuous

Delivery)與持續(xù)部署(ContinuousDeployment)UAT:用戶驗收測試(UserAcceptanceTesting)API:應(yīng)用程序接口(ApplicationProgrammingInterface)YAML:YAMLAin'taMarkupLanguage的遞歸縮寫,一種數(shù)據(jù)序列化標(biāo)準(zhǔn)應(yīng)用構(gòu)件架構(gòu)概述應(yīng)用構(gòu)件為企業(yè)提供各類工業(yè)互聯(lián)應(yīng)用服務(wù),支持直接或組合應(yīng)用,應(yīng)用構(gòu)件由構(gòu)件主體、構(gòu)件存儲中心、關(guān)聯(lián)依賴、基礎(chǔ)信息和構(gòu)件接口五個部分組成,應(yīng)用構(gòu)件架構(gòu)如圖1所示。應(yīng)用構(gòu)件架構(gòu)圖構(gòu)件主體構(gòu)件主體是構(gòu)件的核心部分,包含實現(xiàn)特定功能或服務(wù)的代碼,編程語言包括Java、Python、JavaScript等,具體取決于構(gòu)件的需求和團(tuán)隊的技術(shù)棧。關(guān)聯(lián)依賴關(guān)聯(lián)依賴是構(gòu)件在運行時或編譯時所需的其他庫、框架、服務(wù)或數(shù)據(jù),這些依賴項可以是內(nèi)部的(例如構(gòu)件庫中的其他構(gòu)件)或外部的(例如第三方庫或API),為了確保構(gòu)件的可移植性和一致性,所有依賴項都應(yīng)被明確列出,并且應(yīng)通過版本控制系統(tǒng)(如Maven、npm、Pip等)進(jìn)行管理。存儲中心存儲中心是應(yīng)用構(gòu)件的存儲倉庫,負(fù)責(zé)存儲應(yīng)用構(gòu)件的各種數(shù)據(jù),提供高效的數(shù)據(jù)檢索能力,并保證數(shù)據(jù)一致性和安全性。構(gòu)件接口構(gòu)件接口定義構(gòu)件與其他構(gòu)件或外部系統(tǒng)之間的交互方式,此外,接口還可以用于生成文檔和進(jìn)行代碼自動生成,簡化開發(fā)過程。基礎(chǔ)信息基礎(chǔ)信息描述構(gòu)件的詳情和基本信息,包含構(gòu)件的基本情況和功能特點,便于用戶在需要時選擇合適的構(gòu)件進(jìn)行部署和使用。測試用例測試用例用于驗證構(gòu)件功能的正確性,包括一系列自動化測試腳本和測試步驟,用于確保構(gòu)件在不同條件下都能按預(yù)期工作,測試用例應(yīng)覆蓋構(gòu)件的所有主要功能點、邊界條件和異常處理邏輯,通過使用持續(xù)集成(CI)工具,可以自動運行測試用例,確保在每次代碼更改后都能及時發(fā)現(xiàn)問題。與外部系統(tǒng)交互構(gòu)件與外部系統(tǒng)交互可以是同步的,也可以是異步的,具體取決于構(gòu)件的設(shè)計和實現(xiàn)。在交互過程中,構(gòu)件需要確保數(shù)據(jù)的正確性和一致性,并處理可能出現(xiàn)的錯誤和異常情況。構(gòu)件運行時構(gòu)件運行時表示構(gòu)件運行時環(huán)境,包括必要的資源、庫和框架等,是用于創(chuàng)建、管理和運行構(gòu)件的工具。開發(fā)要求開發(fā)流程如圖2所示,應(yīng)用構(gòu)件的規(guī)范化開發(fā)能夠使企業(yè)統(tǒng)一、靈活、簡便地使用和組合各種應(yīng)用。應(yīng)用構(gòu)件的開發(fā)流程如下:構(gòu)件定義,根據(jù)使用需求,開發(fā)人員進(jìn)行構(gòu)件開發(fā),并且根據(jù)構(gòu)件標(biāo)準(zhǔn)化格式進(jìn)行構(gòu)件的修改和調(diào)整;構(gòu)件接口定義,利用構(gòu)件接口規(guī)則,對構(gòu)件接口進(jìn)行規(guī)范化開發(fā);構(gòu)件封裝,進(jìn)行構(gòu)件代碼質(zhì)量檢查后,對符合構(gòu)件設(shè)計標(biāo)準(zhǔn)的構(gòu)件進(jìn)行打包生成構(gòu)件鏡像和Chart格式;構(gòu)件測試,將應(yīng)用構(gòu)件鏡像通過CI/CD自動部署到測試環(huán)境,系統(tǒng)自動完成UAT測試、功能測試和性能測試;構(gòu)件發(fā)布,將擁有標(biāo)準(zhǔn)接口的構(gòu)件推送到構(gòu)件庫,并進(jìn)行構(gòu)件版本控制,以供不同需求用戶匹配使用。其中,步驟a-b由構(gòu)件開發(fā)者按照標(biāo)準(zhǔn)化定義格式完成,步驟c-e由平臺根據(jù)開發(fā)者提交的構(gòu)件源文件自動完成。應(yīng)用構(gòu)件開發(fā)流程環(huán)境資源要求本文件定義的應(yīng)用構(gòu)件以容器方式運行,支持以下運行環(huán)境:Docker;Kubernetes?;Node-RED;OCI;runc;CRI-O。設(shè)計要求應(yīng)用構(gòu)件的設(shè)計應(yīng)符合下列要求:每個構(gòu)件應(yīng)只關(guān)注一個特定的業(yè)務(wù)功能,避免將多個不相關(guān)的功能集成在一個應(yīng)用構(gòu)件中;支持代碼編輯環(huán)境,包括常規(guī)配置、代碼編輯等設(shè)置選項;支持構(gòu)件版本向下兼容;支持構(gòu)件參數(shù)的修改,能讓用戶根據(jù)個人需求修改構(gòu)件;明確日志規(guī)范,規(guī)定日志輸出的格式和應(yīng)當(dāng)包含的內(nèi)容;支持多個應(yīng)用構(gòu)件的關(guān)聯(lián)組合;支持企業(yè)快速構(gòu)建、構(gòu)件動態(tài)擴(kuò)展和多應(yīng)用場景遷移;支持應(yīng)用構(gòu)件的調(diào)用和部署;提供在線開發(fā)和離線開發(fā)上傳的方式;支持多個協(xié)同在線開發(fā)。構(gòu)件定義構(gòu)件分類根據(jù)功能和結(jié)構(gòu)特性,構(gòu)件可以劃分為不同的類別,包括:基礎(chǔ)構(gòu)件,提供基本的計算、存儲、通信等底層服務(wù),包括數(shù)據(jù)可視、消息構(gòu)件、報警構(gòu)件、算法模型、成分分析模型等;業(yè)務(wù)構(gòu)件,實現(xiàn)常見的業(yè)務(wù)邏輯、數(shù)據(jù)處理等功能,包括物料跟蹤、設(shè)備管理、運維巡檢、輔助調(diào)度、計算服務(wù)、工藝優(yōu)化、檢測報告智能生成等;智能構(gòu)件,具有更強(qiáng)的專業(yè)性,包括故障診斷、故障預(yù)警、能耗分析、設(shè)備畫像、健康維護(hù)、安全檢測、設(shè)備定位等。構(gòu)件文件目錄構(gòu)件在開發(fā)時需要遵循一定的文件組織規(guī)范,如圖3所示,分別存放構(gòu)件測試用例、構(gòu)件主體、構(gòu)件關(guān)聯(lián)依賴、構(gòu)件存儲中心、構(gòu)件接口和構(gòu)件基礎(chǔ)信息六個部分,其余部分的文件組織形式不做規(guī)范要求,模型開發(fā)者可進(jìn)行個性化開發(fā)。應(yīng)用構(gòu)件文件目錄構(gòu)件主體構(gòu)件主體包含構(gòu)件的全部功能代碼,用于實現(xiàn)構(gòu)件的主要功能和業(yè)務(wù)邏輯,根據(jù)用戶需求,明確應(yīng)用構(gòu)件的需求場景和實現(xiàn)功能,應(yīng)滿足以下要求:代碼編寫規(guī)范,可讀性高;擁有明確的功能,具有實際應(yīng)用意義;只關(guān)注單一的功能或服務(wù),便于復(fù)用和維護(hù);對每個關(guān)鍵語句單獨說明,并提供錯誤提示;具備數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)策略,確保數(shù)據(jù)的可靠性;提供錯誤的報警和基礎(chǔ)錯誤的恢復(fù)功能,便于用戶使用。構(gòu)件測試用例構(gòu)件測試用例是構(gòu)件測試中的核心組成部分,用于驗證構(gòu)件是否滿足規(guī)定的需求和功能。測試用例的設(shè)計和實現(xiàn)應(yīng)遵循一系列的要求,以確保測試的全面性和有效性。測試用例應(yīng)滿足以下要求:需求覆蓋,測試用例應(yīng)覆蓋所有的需求點,確保被測功能100%被覆蓋;正確性驗證,驗證正確性操作、正常數(shù)據(jù)和可能導(dǎo)致出錯的數(shù)據(jù)、操作;數(shù)據(jù)值域覆蓋,有數(shù)據(jù)值域的必須考慮數(shù)據(jù)值域覆蓋,包括邊界值和等價類,所有邊界值都必須覆蓋,等價類必須包含有效和無效等價類,且等價類各子類不存在交錯以避免冗余,同時,等價類的使用應(yīng)避開邊界值重疊的情況;明確性,測試用例中的描述應(yīng)清晰明確,不存在二義性或多義性,不會因執(zhí)行人不同而產(chǎn)生不同執(zhí)行結(jié)果;預(yù)期結(jié)果,每個測試用例都應(yīng)有明確的預(yù)期結(jié)果,便于準(zhǔn)確判斷是否符合要求。測試用例編寫應(yīng)包含以下要素:用例編號,具有唯一性,通常由字符和數(shù)字組成的字符串,易于識別。不同階段的測試用例應(yīng)有不同的編號規(guī)則;測試項目,對應(yīng)測試用例編號中的測試子項名,可以是功能點、性能指標(biāo)、界面控件等;測試標(biāo)題,簡要說明測試用例的出發(fā)點、關(guān)注點以及期望的測試結(jié)果;重要級別,根據(jù)測試用例的重要程度進(jìn)行劃分,如高、中、低等級別,便于制定測試規(guī)程和回歸測試;預(yù)置條件,測試用例在執(zhí)行前需要滿足的前提條件,包括環(huán)境設(shè)置、其他測試用例的執(zhí)行結(jié)果等;測試輸入,測試用例執(zhí)行過程中需要加工的外部信息,如手工輸入、文件、數(shù)據(jù)庫記錄等;操作步驟,執(zhí)行當(dāng)前測試用例需要經(jīng)過的操作步驟,需要明確的給出每一個步驟的描述;預(yù)期輸出,測試用例執(zhí)行后的預(yù)期結(jié)果,包括界面顯示、數(shù)據(jù)庫變化、相關(guān)信息變化等。構(gòu)件關(guān)聯(lián)依賴構(gòu)件關(guān)聯(lián)依賴包括:——組件依賴,可能依賴于其他構(gòu)件提供的功能或服務(wù),或是依賴于各種第三方庫,如數(shù)學(xué)計算庫、數(shù)據(jù)庫連接庫、網(wǎng)絡(luò)通信庫等;——框架依賴,包含運行的系統(tǒng)和計算框架,如Spring、Django等,這些框架本身可能包含多個庫和組件,需要依賴這些框架來構(gòu)建和運行;——數(shù)據(jù)依賴,可能依賴于配置文件中的參數(shù)或設(shè)置運行;——環(huán)境依賴,可能需要在特定的硬件環(huán)境上運行;——版本依賴,可能依賴于特定版本的構(gòu)件或庫。構(gòu)件存儲中心存儲中心應(yīng)支持:數(shù)據(jù)庫,采用關(guān)系型數(shù)據(jù)庫(如MySQL、PostgreSQL)或非關(guān)系型數(shù)據(jù)庫(如MongoDB、Cassandra)等技術(shù)來實現(xiàn)數(shù)據(jù)存儲和管理;分布式存儲,對于需要處理大量數(shù)據(jù)或具有高可用性和容錯性要求的構(gòu)件,采用分布式存儲(如Hadoop、Cassandra等)來實現(xiàn)數(shù)據(jù)存儲和擴(kuò)展性;緩存,為了提高數(shù)據(jù)訪問速度,采用緩存技術(shù)(如Redis、Memcached等)來存儲常用的數(shù)據(jù)或查詢結(jié)果。構(gòu)件基礎(chǔ)信息構(gòu)件基礎(chǔ)信息用于標(biāo)識、描述和管理構(gòu)件,構(gòu)件基礎(chǔ)信息包括:ID,唯一標(biāo)識構(gòu)件的編號;名稱,正式名稱;類型,構(gòu)件所屬的類別;詳情,描述構(gòu)件功能和使用方法;用途,主要用途或應(yīng)用場景;接口定義,構(gòu)件提供的接口的定義,包括輸入輸出、接口說明等;定價,用戶使用構(gòu)件需要支付的金額;開發(fā)者,開發(fā)人員;創(chuàng)建時間,構(gòu)件開發(fā)的時間;版本,用于區(qū)分不同版本的構(gòu)件。構(gòu)件接口定義接口描述規(guī)則構(gòu)件接口是對外交互的唯一通道,是構(gòu)件外部可見行為的描述。應(yīng)用構(gòu)件的接口描述規(guī)則如下:協(xié)議規(guī)范:采用https或http協(xié)議;域名規(guī)范:接口有且僅有一個域名和端口;API路徑規(guī)范:為了和其他路徑區(qū)分,必須在路徑中添加api目錄;版本控制規(guī)范:正式版本的服務(wù)組件應(yīng)確定接口版本,備份接口代碼,并在接口路徑中加入版本信息;API命名規(guī)范:url為域名規(guī)范+API路徑規(guī)范+版本控制規(guī)范;方法規(guī)范:采用http標(biāo)準(zhǔn)方法,如GET,POST,PUT,DELETE等;請求參數(shù)規(guī)范:公共數(shù)據(jù)使用GET方式請求,私有數(shù)據(jù)使用POST方式請求,盡量全部用POST,請求頭據(jù)需求添加配置參數(shù);接口數(shù)據(jù)格式規(guī)范:使用JSON或者XML格式數(shù)據(jù)。接口規(guī)范構(gòu)件接口應(yīng)規(guī)范化定義,如圖4所示,一個應(yīng)用構(gòu)件的接口應(yīng)包含:接口描述字段,對該接口的功能和作用進(jìn)行較為詳細(xì)的闡述,使用戶能夠了解如何與該接口對接;請求地址字段,該請求從什么地方發(fā)出;請求方式字段,該請求以什么協(xié)議發(fā)出;資源描述字段,該接口需要何種資源,實際體現(xiàn)為該構(gòu)件需要什么請求參數(shù),同時還需要在此字段對具體的返回參數(shù)進(jìn)行說明,并且給出一個正常的返回示例;資源地址字段,資源存儲在公共地址,構(gòu)件訪問該地址進(jìn)行資源的獲取;模型調(diào)用字段,寫明構(gòu)件將調(diào)用什么模型。應(yīng)用構(gòu)件接口json格式圖接口分類應(yīng)用構(gòu)件通用接口模型如圖5所示,通用接口主要分為:人機(jī)交互接口,用于用戶與構(gòu)件之間進(jìn)行交流和指令交互,包括查詢構(gòu)件信息和查詢構(gòu)件狀態(tài)等;數(shù)據(jù)接口,用于數(shù)據(jù)的傳輸,包括向應(yīng)用構(gòu)件輸入數(shù)據(jù)、從外部數(shù)據(jù)源獲取數(shù)據(jù)、從應(yīng)用構(gòu)件輸出數(shù)據(jù)等;控制接口,用于對數(shù)據(jù)傳輸進(jìn)行控制和管理,包括修改構(gòu)件參數(shù)、運行控制等;第三方工具接口,用于連接第三方工具,如依賴關(guān)系的構(gòu)件、智能模型,進(jìn)行實時數(shù)據(jù)處理、信息與健康檢測等。應(yīng)用構(gòu)件通用接口模型接口定義應(yīng)用構(gòu)件接口定義見表1:應(yīng)用構(gòu)件通用接口說明表接口類型接口描述接口名稱功能說明人機(jī)交互接口查詢構(gòu)件信息GetInfo查看構(gòu)件詳情查詢構(gòu)件狀態(tài)GetCon查看構(gòu)件運行狀態(tài)數(shù)據(jù)接口輸入數(shù)據(jù)InputData向構(gòu)件輸入數(shù)據(jù)外部數(shù)據(jù)調(diào)用GetEnternalData從外部數(shù)據(jù)源獲取數(shù)據(jù)輸出數(shù)據(jù)OutputData從構(gòu)件輸出數(shù)據(jù)控制接口修改參數(shù)ChangeOP上傳和修改構(gòu)件運行參數(shù)運行控制ControlRun控制構(gòu)件運行過程第三方工具接口依賴連接ConnectTool連接其他構(gòu)件或第三方應(yīng)用工具實時數(shù)據(jù)分析工具集成RealTimeTool與實時數(shù)據(jù)分析工具集成信息與健康檢測工具集成HealthTool在構(gòu)件自動化部署時,使用LivenessProbe和ReadinessProbe進(jìn)行容器健康信息檢測;在模型運行時反饋模型細(xì)節(jié),控制參數(shù)等輸入輸出數(shù)據(jù)類型各類接口涉及的輸入輸出數(shù)據(jù)類型包括:command類,為命令;number類,為數(shù)字;string類,為字符串;image類,為圖片;voice類,為音頻;video類,為視頻;file類,為文件;zip類,為壓縮包。人機(jī)交互接口查詢構(gòu)件信息接口查看構(gòu)件詳情的接口說明見表2。狀態(tài)碼用于判斷執(zhí)行結(jié)果是否成功。查詢構(gòu)件信息接口說明接口定義StringGetInfo(StringComName)URLhttp://localhost:8080/GetInfo請求方式GET參數(shù)構(gòu)件名稱ComName返回內(nèi)容狀態(tài)碼構(gòu)件詳情ComInfo查詢構(gòu)件狀態(tài)接口查看構(gòu)件運行狀態(tài),如是否正在運行、已完成、失敗等,接口說明見表3。查詢構(gòu)件狀態(tài)接口說明接口定義StringGetCon(StringComName)URLhttp://localhost:8080/GetCon請求方式GET參數(shù)構(gòu)件名稱ComName返回內(nèi)容狀態(tài)碼構(gòu)件狀態(tài)ComCon數(shù)據(jù)接口輸入數(shù)據(jù)接口向構(gòu)件輸入數(shù)據(jù)的接口說明見表4。T概括了所有6.5.5中列舉的數(shù)據(jù)類型,具體使用的數(shù)據(jù)由構(gòu)件功能決定,輸入數(shù)據(jù)接口應(yīng)支持大數(shù)據(jù)處理任務(wù)。輸入數(shù)據(jù)接口說明接口定義StringInputData(StringComName,TInData)URLhttp://localhost:8080/InputData請求方式POST參數(shù)構(gòu)件名稱ComName輸入數(shù)據(jù)InData返回內(nèi)容狀態(tài)碼外部數(shù)據(jù)調(diào)用從指定數(shù)據(jù)源(如公共數(shù)據(jù)庫、云服務(wù)、第三方API等)獲取數(shù)據(jù)的接口說明見表5。外部數(shù)據(jù)調(diào)用接口說明接口定義StringGetEnternalData(StringComName,StringSource,StringOPName)URLhttp://localhost:8080/GetEnternalData請求方式POST參數(shù)構(gòu)件名稱ComName數(shù)據(jù)源標(biāo)識Source查詢參數(shù)OPName返回內(nèi)容狀態(tài)碼輸出數(shù)據(jù)接口從構(gòu)件輸出數(shù)據(jù)的接口說明見表6。輸出數(shù)據(jù)接口說明接口定義TOutputData(StringComName)URLhttp://localhost:8080/OutputData請求方式GET參數(shù)構(gòu)件名稱ComName返回內(nèi)容狀態(tài)碼輸出數(shù)據(jù)OutData控制接口修改參數(shù)接口上傳和修改構(gòu)件運行參數(shù)的接口說明見表7。修改參數(shù)接口說明接口定義StringChangeOP(StringComName,StringOPName,TOPNum)URLhttp://localhost:8080/ChangeOP請求方式POST參數(shù)構(gòu)件名稱ComName參數(shù)名稱OPName參數(shù)值OPNum返回內(nèi)容狀態(tài)碼運行控制接口控制構(gòu)件的運行,如啟動和停止操作,接口說明見表8。運行控制接口說明接口定義StringControlRun(StringComName)URLhttp://localhost:8080/ControlRun請求方式POST參數(shù)構(gòu)件名稱ComName返回內(nèi)容狀態(tài)碼第三方工具接口依賴連接接口連接其他構(gòu)件或第三方應(yīng)用工具,如深度學(xué)習(xí)模型等,接口說明見表9。依賴連接接口說明接口定義StringConnectTool(StringComName,StringToolName)URLhttp://localhost:8080/ConnectTool請求方式POST參數(shù)構(gòu)件名稱ComName第三方工具名稱ToolName返回內(nèi)容狀態(tài)碼實時數(shù)據(jù)分析工具集成接口與實時數(shù)據(jù)分析工具(如Storm、Flink等)進(jìn)行集成,支持實時數(shù)據(jù)分析和處理,接口說明見表10。實時數(shù)據(jù)分析工具集成接口說明接口定義StringRealTimeTool(StringComName,StringToolConfig)URLhttp://localhost:8080/RealTimeTool請求方式GET參數(shù)構(gòu)件名稱ComName工具連接配置ToolConfig返回內(nèi)容狀態(tài)碼數(shù)據(jù)分析結(jié)果AnalysisData信息與健康檢測工具集成接口在構(gòu)件自動化部署時,使用LivenessProbe和ReadinessProbe進(jìn)行容器健康信息檢測;在模型運行時反饋模型細(xì)節(jié),控制參數(shù)等,接口說明見表11。信息與健康檢測工具集成接口說明接口定義StringHealthTool(StringComName,StringToolConfig)URLhttp://localhost:8080/HealthTool請求方式GET參數(shù)構(gòu)件名稱ComName工具連接配置ToolConfig返回內(nèi)容狀態(tài)碼構(gòu)件運行信息RunInfo構(gòu)件封裝概述本文件按照技術(shù)實現(xiàn)的邏輯順序和構(gòu)件間的調(diào)用關(guān)系,將構(gòu)件封裝劃分為鏡像封裝和Charts封裝兩個步驟,如圖6所示。應(yīng)用構(gòu)件封裝總體設(shè)計容器化封裝容器化封裝過程如下:收集構(gòu)件與構(gòu)件接口信息,對配置信息進(jìn)行標(biāo)準(zhǔn)化整合,判斷配置信息的正確性,如果不正確,則向構(gòu)件開發(fā)者反饋錯誤信息以供修改;如果正確,則通過構(gòu)件信息進(jìn)行yaml文件的自動化編寫。根據(jù)yaml文件進(jìn)行模型鏡像自動化封裝。yaml文件的關(guān)鍵配置信息示例見附錄A。Chart文件目錄Chart代碼文件目錄包括:templates/,模板文件,存放Kubernetes資源文件,如Deployment、Service、Ingress、ConfigMap、Secrets等;values.yaml,定義Chart的默認(rèn)配置值;Chart.yaml,核心配置文件,定義Chart的基本信息(如名稱、版本、描述等)以及依賴關(guān)系,包含name、version、description、icon、sources、maintainers、dependencies等字段;README.md,介紹文檔。values.yaml文件的關(guān)鍵配置信息示例見附錄B。Chart封裝應(yīng)用構(gòu)件的Chart封裝過程如下:獲取容器化封裝后容器服務(wù)的端口、健康檢測接口等關(guān)鍵信息;編寫資源定義文件,使用YAML格式編寫資源定義文件,并放置在templates/目錄下;創(chuàng)建Chart.yaml文件,在Chart的根目錄下創(chuàng)建Chart.yaml文件,并填寫Chart的基本信息,如名稱、版本、描述和依賴等;創(chuàng)建values.yaml文件,在Chart的根目錄下創(chuàng)建values.yaml文件,并定義Chart的配置參數(shù);編寫README.md文件,根據(jù)需要,編寫README.md文件,描述Chart的使用方法和注意事項;打包Chart,將Chart打包成.tgz格式的文件,完成Chart封裝。構(gòu)件測試概述構(gòu)件測試是對構(gòu)件性能進(jìn)行評估和對構(gòu)件功能進(jìn)行驗證的方法,本文件的構(gòu)件測試在Kubernetes集群中完成,主要包括UAT測試、功能測試和性能測試。UAT測試構(gòu)件開發(fā)完成后,由相關(guān)的用戶或獨立測試人員根據(jù)測試計劃和結(jié)果對構(gòu)件進(jìn)行測試和接收。這一階段的測試旨在驗證構(gòu)件是否滿足業(yè)務(wù)需求、功能要求以及用戶期望,確保軟件在實際應(yīng)用中的穩(wěn)定性和可靠性,UAT測試主要包括:驗證功能完整性,確保所有規(guī)定的功能按預(yù)期工作,無遺漏或錯誤;確認(rèn)用戶滿意度,用戶對構(gòu)件的使用體驗感到滿意,界面友好,操作便捷;發(fā)現(xiàn)并修復(fù)缺陷,在發(fā)布前識別并解決潛在的問題,確保構(gòu)件質(zhì)量;業(yè)務(wù)流程驗證,確認(rèn)構(gòu)件支持的實際業(yè)務(wù)流程無誤,符合業(yè)務(wù)需求。功能測試功能測試用于驗證構(gòu)件在實際業(yè)務(wù)場景中的表現(xiàn),根據(jù)開發(fā)者提交的測試用例模擬用戶請求并驗證構(gòu)件響應(yīng)的正確性,功能測試主要包括:邊界值測試,測試構(gòu)件在極限情況下的響應(yīng)和表現(xiàn),即測試邊界值處的構(gòu)件行為是否符合規(guī)范;等價類劃分測試,將各種輸入值看做是幾個等價類,選取一個代表性的值進(jìn)行測試;冒煙測試,運行構(gòu)件的核心功能,檢查構(gòu)件是否能夠啟動、執(zhí)行基本操作和完成基本任務(wù)等;面向場景測試,定義不同的測試場景來驗證構(gòu)件的功能和行為。性能測試性能測試用于評估構(gòu)件在各種負(fù)載條件下的響應(yīng)時間、吞吐量、資源利用率等性能表現(xiàn),測試方式包括:負(fù)載測試,通過不斷增加并發(fā)用戶數(shù)或交易量,觀察構(gòu)件的響應(yīng)時間、吞吐量等性能指標(biāo)的變化情況,以評估構(gòu)件在特定負(fù)載下的性能表現(xiàn);壓力測試,通過模擬極端負(fù)載條件,測試構(gòu)件在資源飽和或過載情況下的性能表現(xiàn),以評估穩(wěn)定性和容錯能力;并發(fā)測試,模擬多用戶同時部署構(gòu)件的場景,測試系統(tǒng)在并發(fā)訪問下的性能表現(xiàn),以發(fā)現(xiàn)潛在的并發(fā)問題,如死鎖、資源爭用等;基準(zhǔn)測試,在特定軟硬件和網(wǎng)絡(luò)環(huán)境下,模擬一定數(shù)量的虛擬用戶運行一種或多種業(yè)務(wù),將測試結(jié)果作為基準(zhǔn)線數(shù)據(jù),用于后續(xù)的性能調(diào)優(yōu)或系統(tǒng)評測;穩(wěn)定性測試,在特定負(fù)載條件下,長時間運行構(gòu)件,觀察其性能指標(biāo)的穩(wěn)定情況,以評估系統(tǒng)的長期運行穩(wěn)定性。測試工具構(gòu)件測試在Kubernetes集群環(huán)境中完成,為了實現(xiàn)構(gòu)件的自動測試,可以使用以下工具:KUTTL;Kubemark;Clusterloader2;Popeye;Kubescape;Mirrord;Kube-linter;Prometheus+Grafana;Sysdig。構(gòu)件發(fā)布發(fā)布流程構(gòu)件通過測試后使用HTTP/HTTPS通信協(xié)議將封裝后的構(gòu)件文件傳輸?shù)綐?gòu)件庫,完成構(gòu)件的發(fā)布,發(fā)布過程如下:系統(tǒng)前端收集開發(fā)好的應(yīng)用構(gòu)件信息,向后端發(fā)送發(fā)布請求;系統(tǒng)后端完成模型鏡像的打包,封裝為Image和Charts格式;使用HTTP/HTTPS通信協(xié)議將封裝好的構(gòu)件上傳到構(gòu)件庫中;構(gòu)件發(fā)布完成,向開發(fā)者返回發(fā)布結(jié)果,用戶可以在構(gòu)件庫中查看發(fā)布的構(gòu)件。在構(gòu)件發(fā)布的過程中需要完成開發(fā)者的身份驗證,只有注冊的開發(fā)者才能夠進(jìn)行構(gòu)件的發(fā)布。版本控制構(gòu)件的版本控制是確保構(gòu)件穩(wěn)定性和可追溯性的重要手段。版本控制過程如下:版本號的定義,版本號格式為“主版本號.修訂號”,其中,主版本號當(dāng)添加構(gòu)件新功能時遞增,修訂號當(dāng)進(jìn)行向下兼容的問題修復(fù)時遞增;版本發(fā)布,詳細(xì)記錄本次版本更新的內(nèi)容、修復(fù)的問

溫馨提示

  • 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

提交評論