? ? ? 平臺技術架構采用業(yè)界最為成熟的SOA(面向服務的架構)框架,遵循統(tǒng)一技術路線手形,架構設計注重層間的松耦合與層內(nèi)的高內(nèi)聚啥供,通過對業(yè)務的抽象、映射實現(xiàn)業(yè)務對象組件化和統(tǒng)一的服務調(diào)用叁幢,充分考慮了系統(tǒng)的可擴展性滤灯、可復用性、可配置性,降低開發(fā)和維護成本使得系統(tǒng)能夠隨需而變鳞骤,快速靈活滿足業(yè)務變化的需要窒百。
? ? ?平臺分為四個層次:數(shù)據(jù)處理、數(shù)據(jù)存儲豫尽、數(shù)據(jù)應用和數(shù)據(jù)展示篙梢。依據(jù)系統(tǒng)開放性原則,本平臺所采用的技術均為開源軟件或者技術框架美旧,保證平臺開發(fā)沒有任何技術壁壘渤滞,也不會帶來額外的軟件版權費用和問題,同時也能夠給第三方對接提供最好的開放性榴嗅,技術選型支持通用的操作系統(tǒng)和多種硬件平臺環(huán)境妄呕,每個層次采用的技術如下圖所示:
數(shù)據(jù)處理層:采用ETL對數(shù)據(jù)進行質(zhì)量校驗、臟數(shù)據(jù)清洗嗽测,采用支持向量機模型對數(shù)據(jù)質(zhì)量進行提升绪励,包括異常點發(fā)現(xiàn)和處理、缺失數(shù)據(jù)補全等唠粥。統(tǒng)計分析包括發(fā)電指標統(tǒng)計疏魏、光資源指標統(tǒng)計、組件關鍵運行指標統(tǒng)計晤愧、逆變器關鍵運行指標統(tǒng)計大莫、系統(tǒng)效率指標統(tǒng)計等,提供分類匯總官份、同比環(huán)比只厘、偏差分析、排名分析等統(tǒng)計維度贯吓。除了常規(guī)的數(shù)據(jù)統(tǒng)計方法懈凹,本項目還采用聚類分析、時間序列分析和趨勢分析等模型算法悄谐,對數(shù)據(jù)進行深度挖掘介评,為用戶提供決策支持。
數(shù)據(jù)存儲層:提供三種數(shù)據(jù)存儲方式:實時內(nèi)存數(shù)據(jù)庫Redis爬舰、關系型數(shù)據(jù)庫Oracle和文件存儲系統(tǒng)们陆。
選擇Redis作為內(nèi)存數(shù)據(jù)庫,主要原因如下:
超高的性能:Redis的處理速度非城橐伲快坪仇,不少數(shù)據(jù)顯示它可以每秒進行數(shù)十萬次的操作。
支持多種數(shù)據(jù)類型:這是Memcached所不具備的垃你。除了最基礎的字符串椅文,Redis還支持多數(shù)開發(fā)人員常用的散列(Hash)表喂很、列表(List)、集合(Set)皆刺、有序集合(Sorted Set)少辣。豐富的數(shù)據(jù)結構選擇,使得設計者們可以更容易地解決多樣的業(yè)務需求羡蛾。這點與MongoDB對復雜文檔對象的支持是頗為相似的漓帅。
持久化存儲:這也是Memcached暫不支持的。Redis支持兩種持久化方式痴怨,即RDB鏡像和AOF日志忙干。
選擇關系型數(shù)據(jù)庫Oracle作為原始數(shù)據(jù)庫、歷史數(shù)據(jù)庫和統(tǒng)計數(shù)據(jù)庫浪藻。主要基于Oracle最為成熟捐迫,具備完成的數(shù)據(jù)管理功能,輕松實現(xiàn)數(shù)據(jù)倉庫的操作爱葵,可用性弓乙、可擴展性、數(shù)據(jù)安全性和穩(wěn)定性強钧惧。按照招標文件中的要求,開啟Oracle數(shù)據(jù)庫審計功能勾习,對用戶所執(zhí)行的數(shù)據(jù)庫活動的跟蹤記錄浓瞪,便于事后監(jiān)督、檢查巧婶,提高了數(shù)據(jù)庫的安全性乾颁。采用RAC、讀寫分離艺栈、歸檔英岭、災備技術,搭建Oracle集群應用湿右,當應用規(guī)模需要擴充時诅妹,用戶可以按需擴展系統(tǒng),以保證系統(tǒng)的性能和高可用性毅人。
文件系統(tǒng)傳輸技術采用HTTP吭狡、FTP、CDN丈莺、P2P四種方式划煮。HTTP利用服務器的帶寬和存儲傳輸分發(fā)文件,適合網(wǎng)頁缔俄、圖片這類的小文件弛秋;FTP也是利用服務器帶寬進行分發(fā)器躏,適合相對于HTTP傳輸較大的文件、圖片傳輸蟹略;CDN和P2P是在較大規(guī)模應用的情況下登失,文件傳輸服務器搭建的策略。
數(shù)據(jù)應用層:數(shù)據(jù)應用層提供數(shù)據(jù)服務接口科乎、消息推送服務壁畸、統(tǒng)計報表、工作流引擎茅茂、VR引擎等應用捏萍。
其中,數(shù)據(jù)服務接口采用RESTful技術實現(xiàn)空闲,為前端應用提供周期性數(shù)據(jù)訪問接口令杈,第三方系統(tǒng)也可以實現(xiàn)與平臺的高度集成,從而提高功能模塊的復用性碴倾,并降低不同系統(tǒng)之間的集成難度逗噩;WebSocket提供數(shù)據(jù)推送方式,實現(xiàn)運行監(jiān)測跌榔、實證監(jiān)測數(shù)據(jù)在網(wǎng)頁端秒級刷新顯示异雁;工作流引擎基于Spring Activiti技術實現(xiàn)。
數(shù)據(jù)展現(xiàn)層:提供門戶網(wǎng)站(Element-UI僧须、Vue.js纲刀、Axios)、圖表應用(Echarts)担平、移動應用(Mint UI)和可視化大屏展示(SVG示绊、WebGL、OpenLayers)等暂论。PC瀏覽器應用采用Element-UI技術實現(xiàn)面褐,Element-UI是一套為開發(fā)者、設計師和產(chǎn)品經(jīng)理準備的基于Vue2.0的桌面端組件庫取胎;移動端應用采用Mint UI技術實現(xiàn)展哭,Mint UI是基于Vue.js的移動端組件庫; Mint UI是Element-UI在移動端的技術實現(xiàn)方式扼菠,二者之間可以快速移植摄杂,且都可以部署在Node.js環(huán)境運行,Node.js是一個JavaScript運行環(huán)境循榆,用于方便地搭建響應速度快析恢、易于擴展的網(wǎng)絡應用,同時對桌面電腦秧饮、筆記本電腦映挂、平板和手機等訪問本系統(tǒng)頁面可自適應分辨率泽篮,保證不同分辨率模式下的用戶體驗;
VR引擎基于openVR技術實現(xiàn)柑船;GIS引擎基于OpenLayers技術實現(xiàn)帽撑。
移動APP開發(fā)采用Hybrid App模式(混合模式移動應用),介于web-app鞍时、native-app這兩者之間的app亏拉,兼具“Native App良好用戶交互體驗的優(yōu)勢”和“Web App跨平臺開發(fā)的優(yōu)勢”,既能快速生成Android和iOS應用逆巍,又能兼具良好的用戶體驗及塘,可根據(jù)請求終端的類型或屏幕分辨率自適應調(diào)整界面布局。更重要的是锐极,這種模式極大的降低了開發(fā)時間笙僚,而且能夠做到web、Android灵再、iOS三種應用快速更新肋层。