數據分析型軟件開發框架系統的制作方法
【專利摘要】本發明提供了一種數據分析型軟件開發框架系統,包括客戶端框架模塊、服務器執行引擎、服務器基礎類庫模塊、接口,服務器基礎類庫模塊包括基礎類庫、矩陣類庫、數據源類庫、數據可視化類庫、數學運算類庫、算法類庫、數據處理類庫。本發明的有益效果是:快速開發數據分析方面的算法、快速集成數據分析方面已有算法,擴展數據分析型軟件系統功能,降低軟件開發成本;按照現實中數據分析的流程特點,使用過程流及作業的方式來解決實際數據分析/系統建模相關事務,不同解決方案可以通過不同的過程流及作業來完成,降低企業軟件使用的成本;從框架底層庫設計中對軟件跨平臺、大數據方面進行了實現,擴大了軟件的使用范圍,擴大了軟件的服務對象。
【專利說明】數據分析型軟件開發框架系統
【技術領域】
[0001]本發明屬于數據分析、商業智能、決策支持等方面的計算機領域,涉及到以過程流形式驅動的統計分析、數據挖掘、文本挖掘、數學優化、數據處理、機器學習、大數據處理等方面的軟件開發技術。
【背景技術】
[0002]隨著企業、政府等單位的信息化建設飛速發展,數據及其所包含的信息量越來越多,如何利用這些包含巨大信息量的數據都是大家所關心的問題。數據分析(統計、挖掘)作為商務智能的核心技術,又成為企業經營管理所關心的關鍵問題之一,自上個世紀九十年代起,國際大型企業普遍開始采用商務智能技術使企業經營管理更新換代。然而,不同客戶需求千差萬別,市場競爭全球化,使開發周期不斷縮短,大量的數據分析算法及建模流程作業化在實際應用中廣泛使用,如何快速集成市面上已有算法或開發出新的算法并以作業化方式運行面臨比較大的挑戰。
[0003]在數據分析過程中,一般包括數據處理、數據探索、模型訓練、模型應用、產生報表等諸多過程,而在不同的作業中,每個過程選擇的方法不盡相同,但針對同一個作業,一旦建立了一種分析方法,在流程與算法選擇上一般不會發生改變,改變的只是數據。且隨著時間的推移,用戶都將是大數據的產生者。針對數據分析中的這些特點,IT軟件商提供的產品應該具有鮮明的特色來支持這種變與不變的特性改。
[0004]經檢索發現如下專利文獻:
[0005]申請號:200710069949.7,名稱:一種面向數據分析類儀器設備的軟件應用框架及應用該框架開發嵌入式系統的裝置和方法。該發明公開了一種應用軟件應用框架快速開發數據分析類儀器設備嵌入式軟件系統的方法與裝置。該方法提供一個數字化數據分析類儀器嵌入式軟件應用框架,該框架提供復用代碼,實現了典型的嵌入式數據分析類儀器設備的業務功能,定義了設備主從處理器之間的通訊協議流程;同時該框架建立在一組面向數字化數據分析類儀器設備的嵌入式軟件應用構件庫,使得框架結構更為合理,并且框架的適應性修改和演化十分方便。該發明還提供了一個應用上述框架快速開發數字化數據分析類儀器嵌入式系統的裝置,為數據分析類儀器設備嵌入式系統開發提供了設計和代碼的復用,增強了系統的模塊化和可重用性,縮短了系統的開發周期,并提高了系統的可靠性。
[0006]目前市面提供數據分析的產品很多,有SAS、SPSS、EViews、R、Weka等等,但這些產品都有不同的缺陷,這些缺陷可羅列如下:
[0007]?新的算法無法快速開發與集成
[0008].已有的算法無法快速與現有系統集成
[0009]?菜單或命令式操作,無法滿足現實中流程式的業務方式
[0010]?數據處理方面功能不全面,需要借助其他軟件進行數據處理
[0011]?不能完美支持數據分析中變與不變的特性
[0012]?不能或不是很好地支持大數據
[0013]?產品不能很好的跨平臺、跨系統
【發明內容】
[0014]針對現有技術中的缺陷,本發明的目的是提供一種數據分析型軟件開發框架系統。從而解決現有技術的如下技術問題:
[0015]?無法快速集成已有算法、開發新算法及數據分析方面的軟件系統,導致企業軟件開發成本高的問題
[0016]?實際數據分析/系統建模過程中,軟件操作不友好、不符合業務操作方式的問題
[0017]?不支持大數據的問題
[0018]?不能跨平臺及跨系統的問題
[0019]根據本發明的一個方面,提供一種數據分析型軟件開發框架系統,包括客戶端框架模塊、服務器執行引擎、服務器基礎類庫模塊、接口,服務器基礎類庫模塊包括基礎類庫、矩陣類庫、數據源類庫、數據可視化類庫、數學運算類庫、算法類庫、數據處理類庫;
[0020]基礎類庫,基礎類庫用于提供數據結構、工具性類庫、跨平臺及跨系統相關API及其實現;
[0021]矩陣類庫用于以矩陣形式對數據進行存儲及加載;
[0022]數據源類庫用于從中數據源中獲取數記錄集及字段信息,對于記錄集信息提供按記錄塊或矩陣兩種方式訪問,記錄塊的訪問方式主要用在數據處理中,矩陣訪問方式主要用在數學運算上;
[0023]數據可視化類庫用于對數據源、算法結果中的數據進行可視化,數據可視化類庫包括圖形及圖表展示。
[0024]數學運算類庫用于實現算法的元運算及矩陣運算;
[0025]算法類庫包括統計分析函數、數據挖掘函數、數學優化函數;
[0026]數據處理類庫用于實現數據處理操作。
[0027]優選地,數學運算類庫包括如下任一種或任多種函數:
[0028]矩陣基本操作相關函數、矩陣分解的相關函數、同矩陣相關的基本數學函數、數據分析相關函數、數值微積分相關函數、隨機數相關函數、隨機變量的描述相關函數、隨機變量的累積概率相關函數、隨機變量的逆累積分布相關函數、隨機變量的數字特征相關函數、參數估計相關函數、假設檢驗相關函數、統計與概率相關函數。
[0029]優選地,數據處理類庫用于實現如下任一種或任多種數據處理操作:
[0030]重編碼、數據排序、數據合并、對數據進行變換和計算、缺失值處理、異常值處理、數據過濾(查詢)、數據抽樣、行列轉換、記錄處理、變量處理、文件合并、數據重構、分類匯
O
[0031 ] 優選地,接口包括框架類接口、功能類庫對外接口,其中,框架類接口定義了框架內各個成員間相互交互的一種協議,功能類庫對外接口定義了所有類庫對外提供服務的窗□。
[0032]優選地,功能類庫對外接口包括原生型語言接口、組件型接口、SOA型接口中的任一種或任多種接口。
[0033]優選地,服務器執行引擎包括算法執行引擎,其中,算法執行引擎用于在多用戶或算法服務部署在多個服務器的場合下,實現接收、分發、執行、回復服務請求的功能。
[0034]優選地,服務器執行引擎包括過程流/作業執行引擎,其中,過程流/作業執行引擎用于在客戶端框架模塊為過程流形式操作時,接收客戶端框架模塊寫入的過程流信息,或者用于負責解析客戶端框架模塊寫入的信息,并通過調用算法執行引擎或框架類接口執行信息里面相關的服務指令。
[0035]優選地,客戶端框架模塊包括客戶端類庫,其中,客戶端類庫采用MVC型模式、插件式框架,客戶端類庫用于實現客戶端框架模塊的操作,客戶端框架模塊的操作包括過程流式、傳統菜單式、用戶自定義式中的任一種或任多種方式。
[0036]優選地,矩陣類庫用于通過磁盤加內存片及智能預加載方式以矩陣形式對數據進行存儲及加載,其中,
[0037]磁盤加內存片具體是指:將數據儲存在磁盤、以及一定數量與大小的內存片上;
[0038]智能預加載具體是指:根據算法運行的特性,提前將磁盤中的數據加載到內存片上,使計算器能夠連續獲取到數據,而無需等待。
[0039]與現有技術相比,本發明具有如下的有益效果:
[0040]由于采用了上述技術方案,本發明的有益效果是:
[0041](I)快速開發數據分析方面的算法、快速集成數據分析方面已有算法,擴展數據分析型軟件系統功能,降低軟件開發成本;
[0042](2)按照現實中數據分析的流程特點,使用過程流及作業的方式來解決實際數據分析/系統建模相關事務,不同解決方案可以通過不同的過程流及作業來完成,降低企業軟件使用的成本;
[0043](3)從框架底層庫設計中對軟件跨平臺、大數據方面進行了實現,擴大了軟件的使用范圍,擴大了軟件的服務對象。
【專利附圖】
【附圖說明】
[0044]通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發明的其它特征、目的和優點將會變得更明顯:
[0045]圖1為數據分析型軟件開發框架系統的結構示意圖;
[0046]圖2為數據分析型軟件開發框架系統的二次開發流程圖。
【具體實施方式】
[0047]下面結合具體實施例對本發明進行詳細說明。以下實施例將有助于本領域的技術人員進一步理解本發明,但不以任何形式限制本發明。應當指出的是,對本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進。這些都屬于本發明的保護范圍。
[0048]為了解決目前常見軟件中存在的問題,本發明從數據分析型軟件開發框架設計著手,對問題進行解決。
[0049]如圖1示出的數據分析型軟件開發框架系統的結構示意圖,所述數據分析型軟件開發框架系統包括客戶端框架、服務器執行引擎、服務器基礎類庫及其接口三部分,這三部分構成了一種數據分析型軟件的核心,也完成了數據分析型軟件的絕大部分功能,IT型軟件公司只要在此產品上對功能進行組合或添加一些新的功能,就能構成面向某個領域的解決方案。下面是對該開發框架中每一個模塊的描述。
[0050]I)、基礎類庫
[0051]基礎類庫提供常見的數據結構、工具性類庫、跨平臺及跨系統相關API及其實現,對于不同操作系統功能相同但定義不同的系統API通過重新封裝技術來解決跨系統問題,對于浮點數及整數長度等問題通過重新定義類型等技術來實現。通過工廠模式、MVC模式等技術來解決不同系統之間的實現及界面同核心功能脫離的問題。
[0052]2)、矩陣類庫
[0053]矩陣是本發明中最基本的一種數據類型也是一項最重要的技術,所有的數學運算都基于矩陣,標量、向量、高維數組、關系型數據庫表數據都是矩陣的一種表現形式。通過矩陣技術可以用最簡單的數據類型來描述及解決客觀世界中最廣泛的問題,從天體、導彈的運行軌跡到日常生活中的商業規律、文本挖掘等等最終都可以轉化為矩陣運算問題。本發明中的矩陣采用“磁盤加內存片”及“智能預加載”技術對數據進行存儲及加載,采用該技術后矩陣可以快速對大數據進行操作,因為所有的數學運算都是構建在矩陣上,所以也就解決了解決一般數據分析軟件不支持大數據或性能不高的問題。
[0054]3)、數據源類庫
[0055]數據源類庫的主要功能是從中數據源中獲取數記錄集及字段信息,對于記錄信息可以提供按記錄塊或矩陣兩種方式訪問,記錄塊的訪問方式主要用在數據處理中,如ETL控件訪問,矩陣訪問方式主要用在數學運算上(即提供基于數據庫的數學運算技術)。無論是數據塊還是矩陣訪問方式,底層庫都提供了抽象的接口(IDataSet、Matrix),任何一種數據源只要實現了這兩種接口,都可以被本發明中的其它類庫調用,因此,本方面中的框架理論上基本支持所有數據源。
[0056]4)、數據可視化類庫
[0057]現有技術中,數據可視化類庫能夠對數據源、算法結果中的數據進行可視化,本發明中提供的算法類庫、數據源類庫不提供可視化服務,可視化工作由數據可視化類庫來負責,將數據提供者、數據顯示者分開有利于降低類庫之間的耦合度及可視化的自由度。可視化類庫包括常見的圖形及圖表展示。
[0058]5)、數學運算類庫
[0059]數學運算類庫是本發明中的重要類庫之一,所有算法的元運算及矩陣運算都在此類庫中實現,包括:矩陣基本操作相關函數、矩陣分解的相關函數、同矩陣相關的基本數學函數、數據分析相關函數、數值微積分相關函數、隨機數相關函數、隨機變量的描述相關函數、隨機變量的累積概率相關函數、隨機變量的逆累積分布相關函數、隨機變量的數字特征相關函數、參數估計相關函數、假設檢驗相關函數、統計與概率相關函數等。
[0060]6)、算法類庫
[0061]算法類庫是在矩陣類庫、數學運算類庫的基礎上再開發的一組類庫,包括統計分析、數據挖掘、數學優化三方面的常用算法。用戶可以在實現本發明框架接口的情況下添加新的算法類庫,擴充數據分析型軟件的功能。
[0062]7)、數據處理類庫
[0063]數據處理類庫包括常見的數據處理操作功能,包括:重編碼、數據排序、數據合并、對數據進行變換和計算、缺失值處理、異常值處理、數據過濾(查詢)、數據抽樣、行列轉換、記錄處理、變量處理、文件合并、數據重構、分類匯總等。
[0064]8)、接口
[0065]本發明中所描述的接口分為兩類:框架類接口、功能類庫對外接口。框架類接口定義了框架內各個成員間相互交互的一種協議,功能類庫對外接口定義了所有類庫對外提供服務的窗口,它分為c/c++、java.c#等原生型語言接口、組件型接口、SOA型接口,滿足多種開發環境下的調用。
[0066]9)、算法執行引擎
[0067]算法執行引擎主要用在多用戶或算法服務部署在多個服務器的場合下,它具備接收、分發、執行、回復服務請求的功能。在單機版的情況下,可以不部署該引擎,客戶端可以通過直接調用功能型類庫的接口呼叫算法服務。
[0068]10)、過程流/作業執行引擎
[0069]過程流/作業執行引擎主要用在客戶端為過程流形式操作的情況,客戶端將過程流信息寫入到過程流/作業執行引擎或該引擎可以訪問的服務端,引擎負責解析客戶端寫入的信息,并通過調用算法執行引擎或類庫接口執行信息里面相關的服務指令。
[0070]11)、客戶端框架類庫
[0071]客戶端類庫采用MVC型模式、插件式框架,容易擴展與其他系統集成,該框架完成了除插件自身功能之外的所有其他功能。客戶端的操作方式可以是過程流式、傳統菜單式或用戶自定義式。文件的打開、文件的保存、文件的關閉、復制、粘貼、用戶操作歷史的自動保存及還原、日志的輸出等常見操作都已經在框架類庫完成,二次開發者所需要關注的僅僅是插件自身功能的開發。
[0072]如圖2示出的數據分析型軟件開發框架系統的二次開發流程圖所示,在進行二次開發(功能擴展、插件開發)時,按照如下流程進行:
[0073]I)、首先將現實中的數據分析、優化等問題轉化為相應的數學問題,調用系統中的矩陣、數學運算等模塊對數學問題進行求解;
[0074]2)、對步驟I中的代碼以庫方式編譯導出,并實現框架中的算法接口 ;
[0075]3)、實現框架中的算法參數/屬性設置界面接口 ;
[0076]4)、對步驟2)、3)中的結果打包成jar文件;
[0077]5)、按照模板,書寫配置文件,并同步驟4)中的jar文件一起部署到數據分析型軟件對應的目錄文件夾下;
[0078]按照上面的5個步驟,就完成了數據分析軟件功能擴展相關事務。
[0079]在本發明的一個優選的【具體實施方式】中,以“南水北調東線工程江蘇段水資源優化配置”系統為列來說明如何采用本發明來進行現實中的開發。“南水北調東線工程江蘇段水資源優化配置”是一個解決水資源優化分配問題的系統,用到了數學優化方面的算法,按照圖2所描述的步驟,使用方法步驟如下:
[0080]I)、按照現實中的問題,歸納出南水北調的優化目標及約束條件;
[0081]2)、調用本發明算法類庫中的多目標規劃算法,對步驟I中的問題進行求解編碼,并實現IPlugin、IPluginDialog等接口,實現算法參數輸入界面;
[0082]3)、按照圖2中的步驟所示,對代碼打包部署。
[0083]以上對本發明的具體實施例進行了描述。需要理解的是,本發明并不局限于上述特定實施方式,本領域技術人員可以在權利要求的范圍內做出各種變形或修改,這并不影響本發明的實質內容。
【權利要求】
1.一種數據分析型軟件開發框架系統,包括客戶端框架模塊、服務器執行引擎、服務器基礎類庫模塊、接口,其特征在于,服務器基礎類庫模塊包括基礎類庫、矩陣類庫、數據源類庫、數據可視化類庫、數學運算類庫、算法類庫、數據處理類庫; 基礎類庫,基礎類庫用于提供數據結構、工具性類庫、跨平臺及跨系統相關API及其實現; 矩陣類庫用于以矩陣形式對數據進行存儲及加載; 數據源類庫用于從數據源中獲取記錄集及字段信息,對于記錄集信息提供按記錄塊或矩陣兩種方式訪問,記錄塊的訪問方式主要用在數據處理中,矩陣訪問方式主要用在數學運算上; 數據可視化類庫用于對數據源、算法結果中的數據進行可視化,數據可視化類庫包括圖形及圖表展示。 數學運算類庫用于實現算法的元運算及矩陣運算; 算法類庫包括統計分析函數、數據挖掘函數、數學優化函數; 數據處理類庫用于實現數據處理操作。
2.根據權利要求1所述的數據分析型軟件開發框架系統,其特征在于,數學運算類庫包括如下任一種或任多種函數: 矩陣基本操作相關函數、矩陣分解的相關函數、同矩陣相關的基本數學函數、數據分析相關函數、數值微積分相關函數、隨機數相關函數、隨機變量的描述相關函數、隨機變量的累積概率相關函數、隨機變量的逆累積分布相關函數、隨機變量的數字特征相關函數、參數估計相關函數、假設檢驗相關函數、統計與概率相關函數。
3.根據權利要求1所述的數據分析型軟件開發框架系統,其特征在于,數據處理類庫用于實現如下任一種或任多種數據處理操作: 重編碼、數據排序、數據合并、對數據進行變換和計算、缺失值處理、異常值處理、數據過濾、數據抽樣、行列轉換、記錄處理、變量處理、文件合并、數據重構、分類匯總。
4.根據權利要求1所述的數據分析型軟件開發框架系統,其特征在于,接口包括框架類接口、功能類庫對外接口,其中,框架類接口定義了框架內各個成員間相互交互的一種協議,功能類庫對外接口定義了所有類庫對外提供服務的窗口。
5.根據權利要求4所述的數據分析型軟件開發框架系統,其特征在于,功能類庫對外接口包括原生型語言接口、組件型接口、SOA型接口中的任一種或任多種接口。
6.根據權利要求1所述的數據分析型軟件開發框架系統,其特征在于,服務器執行引擎包括算法執行引擎,其中,算法執行引擎用于在多用戶或算法服務部署在多個服務器的場合下,實現接收、分發、執行、回復服務請求的功能。
7.根據權利要求1所述的數據分析型軟件開發框架系統,其特征在于,服務器執行引擎包括過程流/作業執行引擎,其中,過程流/作業執行引擎用于在客戶端框架模塊為過程流形式操作時,接收客戶端框架模塊寫入的過程流信息,或者用于負責解析客戶端框架模塊寫入的信息,并通過調用算法執行引擎或框架類接口執行信息里面相關的服務指令。
8.根據權利要求1所述的數據分析型軟件開發框架系統,其特征在于,客戶端框架模塊包括客戶端類庫,其中,客戶端類庫采用MVC型模式、插件式框架,客戶端類庫用于實現客戶端框架模塊的操作,客戶端框架模塊的操作包括過程流式、傳統菜單式、用戶自定義式中的任一種或任多種方式。
9.根據權利要求1所述的數據分析型軟件開發框架系統,其特征在于,矩陣類庫用于通過磁盤加內存片及智能預加載方式以矩陣形式對數據進行存儲及加載,其中, 磁盤加內存片具體是指:將數據儲存在磁盤、以及一定數量與大小的內存片上; 智能預加載具體是指:根據算法運行的特性,提前將磁盤中的數據加載到內存片上,使計算器能夠連續獲取到數據,而無需等待。
【文檔編號】G06F9/44GK104298496SQ201310307484
【公開日】2015年1月21日 申請日期:2013年7月19日 優先權日:2013年7月19日
【發明者】樊后禮, 馮安平 申請人:上海寶信軟件股份有限公司