“光伏云”是近年來在新能源領(lǐng)域興起的概念失息,通過運用現(xiàn)代互聯(lián)網(wǎng)技術(shù)譬淳,光伏云系統(tǒng)可以深度分析客戶運營數(shù)據(jù),幫助用戶智能化的管理光伏資產(chǎn)盹兢,甚至提供電量邻梆、電站交易,社區(qū)交互等功能绎秒。
從Web系統(tǒng)的角度來看浦妄,光伏云系統(tǒng)主要有以下特點:
1.單用戶數(shù)據(jù)量較高。以常見的每5分鐘記錄一次為例,單個設(shè)備每年的原始數(shù)據(jù)量為10萬條剂娄,采用中小型逆變器的電站各類需采集的設(shè)備接近上百蠢涝,單個電站的數(shù)據(jù)量每年就在1000萬條左右。因此對于擁有多個電站的區(qū)域投資商用戶來講阅懦,僅設(shè)備原始數(shù)據(jù)數(shù)量就很可觀和二。
2.數(shù)據(jù)可視化為交互重點。類似其他偏中后臺的分析管理系統(tǒng)耳胎,由于面向?qū)I(yè)用戶惯吕,光伏云系統(tǒng)的交互更注重功能性,目前功能開發(fā)的熱點大多基于數(shù)據(jù)的分析怕午,數(shù)據(jù)可視化是光伏云系統(tǒng)前端交互設(shè)計的重點废登。
在光伏云系統(tǒng)的開發(fā)實踐中,我們發(fā)現(xiàn)由于以下的原因郁惜,傳統(tǒng)的“確定需求——設(shè)計架構(gòu)——開發(fā)”方式難以正常的運作:
1.業(yè)務(wù)形式多樣堡距,定制化需求要求高。作為一個新興的概念兆蕉,光伏云系統(tǒng)尚未形成標準的業(yè)務(wù)模式吏颖,存在云端數(shù)據(jù)中心提供接入、區(qū)域集控中心部署等多種業(yè)務(wù)模式恨樟。具體功能需求也尚在摸索之中半醉,往往用戶會提出定制化的需求。故光伏云系統(tǒng)的開發(fā)是一個持續(xù)的劝术、不斷積累與改進的過程缩多。
2.領(lǐng)域?qū)I(yè)處于不斷研發(fā)中,功能變動頻繁养晋。不同于一般的互聯(lián)網(wǎng)產(chǎn)品衬吆,光伏云系統(tǒng)的功能設(shè)計高度依賴電氣、氣象等領(lǐng)域?qū)I(yè)绳泉,算法設(shè)計往往由其他專門的研發(fā)部門承擔逊抡,開發(fā)往往需要與領(lǐng)域?qū)I(yè)的研發(fā)工作異步并行。
3.電站實況千差萬別零酪,設(shè)備數(shù)據(jù)模型碎片化冒嫡。光伏云系統(tǒng)往往定位的是“后市場”,即目標用戶是已建成的電站四苇,接入方式(就地通訊管理機孝凌、電站二次監(jiān)控、設(shè)備通訊模塊等)也任由用戶選擇月腋,這就導(dǎo)致了設(shè)備接入的數(shù)據(jù)難有統(tǒng)一的標準蟀架。傳統(tǒng)的構(gòu)建統(tǒng)一的原始數(shù)據(jù)表結(jié)構(gòu)的嘗試要么無法覆蓋所有實際設(shè)備瓣赂,要么過于冗余影響性能,且新電站片拍、新型號的設(shè)備還在不斷加入煌集,因此并不合適。
基于對以上問題的思考捌省,我們借鑒近年來在前端領(lǐng)域廣為應(yīng)用的“漸進式”理念對光伏云系統(tǒng)的開發(fā)進行實驗性的重構(gòu)苫纤。
植物總是從土壤中的一粒種子長出,種子伸出的根系必須穩(wěn)固枝葉才能繁茂所禀,我們提出“核數(shù)據(jù)”的概念作為光伏云系統(tǒng)的“種子”與“根系”。核數(shù)據(jù)是按照底層實際設(shè)備型號組織的原始數(shù)據(jù)放钦,數(shù)據(jù)模型如實反映實際設(shè)備上送點表的結(jié)構(gòu)色徘。它是底層千差萬別的設(shè)備在光伏云系統(tǒng)中的存在形式,是光伏云系統(tǒng)與電站的交界面接口操禀。
受徐飛觀點的啟發(fā)褂策,核數(shù)據(jù)按照“主張最少”原則對設(shè)備數(shù)據(jù)模型進行約定。傳統(tǒng)的做法在數(shù)據(jù)入庫時會對設(shè)備會進行歸類與抽象颓屑,對特定類別的設(shè)備數(shù)據(jù)會有一定的要求斤寂,這種要求就是“主張”,因為要考慮各種情況揪惦,主張往往帶來數(shù)據(jù)項冗余或缺失遍搞,無法優(yōu)雅的代表底層。核數(shù)據(jù)不對設(shè)備進行任何的歸類與抽象器腋,不同型號設(shè)備的數(shù)據(jù)點表單獨的映射在數(shù)據(jù)庫中溪猿,力求主張最少,忠實的反映底層設(shè)備的原貌纫塌。
明確了根基诊县,就可以按照類似Vue.js的“自底向上增量開發(fā)”方式構(gòu)建系統(tǒng)。通過檔案數(shù)據(jù)集合中存儲的各種關(guān)系與映射措左,核數(shù)據(jù)可以被抽象為“虛設(shè)備”數(shù)據(jù)供給上層業(yè)務(wù)功能使用依痊。類似于數(shù)據(jù)模型與領(lǐng)域模型之別,核數(shù)據(jù)僅面向底層各種設(shè)備怎披,而虛設(shè)備數(shù)據(jù)僅面向上層業(yè)務(wù)功能胸嘁,它按照光伏云系統(tǒng)的常見結(jié)構(gòu),設(shè)有虛逆變器凉逛、虛并網(wǎng)接口設(shè)備缴渊、虛環(huán)境監(jiān)測儀、虛匯流箱等鱼炒。
一種虛設(shè)備衔沼,可對應(yīng)多個實際設(shè)備的型號蝌借,因此虛設(shè)備可起到傳統(tǒng)標準設(shè)備數(shù)據(jù)表歸類和標準化實際設(shè)備的作用;
同時一種實際設(shè)備的型號也可對應(yīng)為多種不同的虛設(shè)備指蚁,很多集成多種功能的設(shè)備通信只會有一張點表菩佑,在數(shù)據(jù)庫中只對應(yīng)一個核數(shù)據(jù)集合,但根據(jù)業(yè)務(wù)的需要可映射到不同的標準虛設(shè)備數(shù)據(jù)模型凝化。通過這種多對多的靈活方式稍坯,在滿足業(yè)務(wù)需求的情況下,最大化避免數(shù)據(jù)庫的不足與冗余搓劫。
從ODM層獲取核數(shù)據(jù)與檔案數(shù)據(jù)后瞧哟,組裝虛設(shè)備數(shù)據(jù)的過程通過Repository層封裝,上層業(yè)務(wù)功能調(diào)用的是Repository層的接口枪向,這樣實現(xiàn)數(shù)據(jù)庫與業(yè)務(wù)的解耦勤揩,方便根據(jù)用戶要求部署不同數(shù)據(jù)庫。
鑒于光伏云業(yè)務(wù)的摸索與領(lǐng)域?qū)I(yè)的研發(fā)進度秘蛔,開發(fā)的需求會動態(tài)增長陨亡,因此我們計劃首先專注于一點作為功能模塊開發(fā)的起點。“數(shù)據(jù)分析與可視化”在光伏云系統(tǒng)所有當前和未來的的業(yè)務(wù)中居于基礎(chǔ)而核心的地位深员,其他諸如預(yù)測负蠕、管理、交易等業(yè)務(wù)都源于此基礎(chǔ)倦畅,我們以此作為漸進式展開功能模塊的起點遮糖。
在技術(shù)棧的選擇上,由于本次實驗性重構(gòu)開發(fā)不存在遷移成本與生產(chǎn)環(huán)境壓力叠赐,我們希望探索次世代Web技術(shù)的應(yīng)用止吁,按照“大前端”的理念,盡可能采用基于JavaScript的方案統(tǒng)一全棧燎悍,畢竟“可以由JavaScript實現(xiàn)的需求敬惦,最終都將有JavaScript實現(xiàn)”。后續(xù)隨著開發(fā)實踐的過程谈山,本系列將對各個部分進行闡述與總結(jié)俄删。