專利名稱:用于電力調度自動化系統的進程內組件實現方法
技術領域:
本發明涉及自動化控制技術,特別是涉及一種用于電力調度自動化系統的自動化 控制進程內組件對象模型實現技術。
背景技術:
首先需要了解什么是組件,以及與組件相關的一些技術。拋開計算機軟件相關的 定義,顧名思義,組件是構成某個整體的各個部件,通常這些部件都按照某種通用 的標準被定義和生產。在計算機軟件領域,組件有多種不同的定義。有的把ActiveX 的DLL (Dynamically Linked Libraries,動態連接庫)或OCX (Object Unking and Embedding Control Extension,嵌入式對象控件)稱作組件,有些則把DLL中的 類視為組件。從使用者的角度出發, 一個系統的各個組件應該是可以裁減、拆卸和 重新組裝的。人們更習慣于按可拆分的粒度來劃分組件。抽象地講,計算機軟件領 域的組件是按照某種標準或者規范進行代碼重用的一種形式。
當前比較重要的兩個組件規范是Microsoft定義的COM/DCOM(公共對象模型/ 分布式公共對象模型)和OMG(對象管理組織)定義的CORBA(公共對象請求代理體 系結構),業界習慣地稱他們為組件平臺。基于上述組件平臺,業界有多種組件模型 實現方案,如ActiveX、 Java Beans等。
基于商用的組件模型必須基于復雜的組件環境或者特定的操作系統平臺。比如 ActiveX組件只能應用于Windows平臺,而Java Beans組件則需要JAVA平臺的支 持。
在傳統的電力調度自動化系統中,應用程序在增加任意一個新的功能模塊時都要涉及到主程序的修改,而且修改一個功能要更換整個應用,給系統的升級和功能擴 展帶來很大的不便。在電力調度自動化領域內,更多的應用場合是希望能實現跨平 臺的、輕量級的進程內組件模型,實現在同一個應用程序內靈活擴展應用程序的體 系結構,為電力調度系統的應用集成信息提供條件。本發明正是為了滿足以上要求 開發設計的。
發明內容
針對上述現有技術中存在的缺陷,本發明所要解決的技術問題是提供一種能節約 系統資源,能提高系統靈活性,能實現跨平臺應用,能對組件及其接口進行統一管 理的用于電力調度自動化系統的進程內組件實現方法。
為了解決上述技術問題,本發明所提供的一種用于電力調度自動化系統的進程內 組件實現方法,具體的實現流程如下
1) 啟動應用程序,提供應用平臺;
2) 啟動應用程序中的組件運行環境SCM_RTE (Super-2000 Component Model_ Runtime environment);
3) 組件運行環境SCM一RTE調用接口函數向組件發送信息,在組件運行環境中創 建組件;
4) 組件進行一次性初始化工作,包括注冊組件、注冊接口、申請全局內存等。
5) 至少一次加載初始化后的組件;
6) 實現應用程序與組件間的通信連接。
進一步的,在步驟l)中所述應用平臺SCM—RTE包括組件管理器、分別連接所述 組件管理器的接口管理器和內存管理器。
進一步的,所述組件為靜態組件SCM—RTE本身以及應用程序,這類組件一旦被加 載,在整個應用程序進程生命期中都不會被卸載。進一步的,所述組件為動態組件,這類組件在應用程序進程的生命周期中可能被 多次加載和卸載。
進一步的,所述組件的類型是組件通過調用接口函數注冊的。如果不調用,缺省 被認為是靜態組件。
進一步的,所述動態組件在3分鐘內其訪問記數為0的,SCM—RTE將其卸載。組 件被卸載后,如果別的組件獲取其接口,這時SCM—RTE會再次將其加載到內存中。
進一步的,所述組件之間的通信是通過用C語言定義的接口進行的。以實現跨平 臺的應用。
相比國際上通用的組件模型解決方案而言,本發明提供的用于電力調度自動化系 統的進程內組件實現方法SCM有以下優點
1) 組件模型只考慮進程內組件的通信,節約系統資源。
2) 組件模型的宿主可以是應用程序,也可以是動態鏈接庫(共享庫),提高了系 統的靈活性。
3) 組件之間的通信通過接口進行,接口用C語言定義,實現跨平臺應用。
4) 應用系統對外的API也由此組件/接口模型實現。
5) 提供一個組件運行環境,對組件及其接口進行統一管理(例如生命期的管理)。 SCM實現了一個可靈活擴展的應用程序體系結構,是電力調度自動化系統中圖形
部分和應用集成環境的實現基礎。其特有的通信接口定義方式,實現了系統的跨平 臺應用,支持UNIX、 WINDOWS各種系列版本的操作系統平臺。采用此模型可以將系 統中任意擴充的功能模塊動態加載到系統,而系統主程序無需作任何改動。這樣, 為系統的擴充和升級帶來異常方便。
圖1是本發明實施例進程內組件實現方法的流程圖;圖2是本發明實施例進程內組件實現模型框圖3是本發明實施例圖形程序加載餅圖組件人機界面示意圖。
具體實施例方式
以下結合
對本發明的實施例作進一步詳細描述,但本實施例并不用于 限制本發明,凡是采用本發明的相似結構及其相似變化,均應列入本發明的保護范 圍。
本發明實施例所提供的SCM (Super-2000 Co卿onent Model)為一個通用的輕量 級(一般而言,輕量級表示運行時占用資源少,不需要特定的容器,而重量級相反) 組件模型,用于應用程序與插件(在本說明書中插件和組件是同一概念)以及插件 之間的通信。
如圖2所示,在應用程序中提供了一個包括組件管理器、接口管理器和內存管理 器的組件運行環境SCM—RTE (SCM Runtime environment)為SCM的實現提供了可 能。接口管理器和內存管理器分別連接所述組件管理器,SCM一RTE的組件管理器負 責對組件本身、組件的調用接口及內存資源進行統一分配管理。
如圖1所示,本發明實施例所提供的一種進程內組件實現方法,把餅圖程序作為 組件調用到圖形程序中,其流程如下
1) 啟動圖形系統主程序;
2) 啟動組件運行環境SCIVLRTE;
3) SCM—RTE調用接口函數,創建餅圖程序組件;
4) 對餅圖程序組件進行初始化,包括注冊組件、注冊接口、申請全局內存等;
5) 加載餅圖程序組件;
6) 實現了圖形程序與餅圖程序間的通信連接。
本發明的關鍵點是,在圖形程序中提供了一個組件運行環境SCM一RTE,負責對組件及其接口進行統一管理。組件之間的通信通過用c語言定義的接口進行的。
需要說明的是組件在整個的應用程序周期中可能被多次加載和卸載,也就是說, 組件本身也有生命周期。組件有兩種類型, 一種是靜態組件,SCM—RTE本身以及應 用程序,這類組件一旦被加載,在整個應用程序進程生命期中都不會被卸載;另一
種是動態組件,這類組件在應用程序進程的生命周期中可能被多次加載和卸載。組 件的類型是組件通過調用接口函數注冊的,如果不調用,缺省被認為是靜態組件。
對于動態組件,SCNLRTE對每個組件維護一個訪問記數,當別的組件獲取該組件 的接口時增加其訪問記數,組件接口被釋放時減少其訪問記數,如果一個組件在3 分鐘內其訪問記數都為0, SCM一RTE將其卸載。組件被卸載后,如果別的組件獲取其 接口,這時SCM—RTE會再次將其加載到內存中。 一個應用程序可加載多個插(組)件。
如圖3所示,本發明的進程內組件實現方法中,圖形系統調用餅圖作為組件的人 機界面如下所示在圖形程序主界面上設置了一個餅圖工具按鈕,通過此圖能方便 直觀地看到餅圖組件加載到圖形程序中。在操作上,通過餅圖工具按鈕來啟動組件 運行環境SCM一RTE。 SCM—RET調用入口函數創建餅圖組件,初始化組件,并為該 組件分配內存資源。組件一旦加載后,即可作為圖形系統的功能模塊運行。
8
權利要求
1、 一種用于電力調度自動化系統的進程內組件實現方法,其特征在于,具體 的實現流程如下1) 啟動應用程序,提供應用平臺;2) 啟動應用程序中的組件運行環境SCM—RTE;3) 組件運行環境SCM—RTE調用接口函數向組件發送信息,在組件運行環境中創 建組件;4) 組件進行一次性初始化工作,包括注冊組件、注冊接口、申請全局內存等;5) 至少一次加載初始化后的組件;6) 實現應用程序與組件間的通信連接。
2、 根據權利要求1所述的進程內組件實現方法,其特征在于,在步驟1)中所 述應用平臺SCM一RTE包括組件管理器、分別連接所述組件管理器的接口管理器和內 存管理器。
3、 根據權利要求1所述的進程內組件實現方法,其特征在于,所述組件為靜態 組件SCM一RTE本身以及應用程序,這類組件一旦被加載,在整個應用程序進程生命 期中都不會被卸載。
4、 根據權利要求1所述的進程內組件實現方法,其特征在于,所述組件為動態 組件,這類組件在應用程序進程的生命周期中可能被多次加載和卸載。
5、 根據權利要求1所述的進程內組件實現方法,其特征在于,所述組件的類型 是組件通過調用接口函數注冊的。
6、 根據權利要求1所述的進程內組件實現方法,其特征在于,所述動態組件在 3分鐘內其訪問記數為0的,SCM—RTE將其卸載。
7、根據權利要求1所述的進程內組件實現方法,其特征在于,所述組件之間的通信是通過用C語言定義的接口進行的。
全文摘要
本發明公開一種用于電力調度自動化系統的進程內組件實現方法,涉及電力調度自動化系統的技術領域;所要解決的是在同一個應用程序內靈活擴展應用模塊的技術問題;該進程內組件模型實現方法的流程如下1)應用程序提供操作平臺;2)啟動組件運行環境SCM_RTE;3)調用接口函數;4)創建組件;5)初始化組件;6)加載組件;7)實現應用程序與組件間的通信連接。本發明具有非常直觀,易于操作,可靈活擴展應用程序功能模塊的特點。使用該方法,實現了在同一個應用程序內靈活擴展應用程序的體系結構,為電力調度系統的應用集成信息提供了條件。
文檔編號G05B19/04GK101311895SQ20071004105
公開日2008年11月26日 申請日期2007年5月23日 優先權日2007年5月23日
發明者章良棟 申請人:上海申瑞電力科技股份有限公司