專利名稱:一種調(diào)用通用構(gòu)件的方法
技術(shù)領(lǐng)域:
本發(fā)明設計計算機的應用技術(shù),具體地說是一種調(diào)用通用構(gòu)件的方法。
背景技術(shù):
隨著構(gòu)件技術(shù)發(fā)展的成熟,構(gòu)件在企業(yè)管理軟件中的使用范圍日益擴大和使用頻率也逐漸提高。由于構(gòu)件的種類繁多,調(diào)用方式大同小異,因此業(yè)務系統(tǒng)的代碼中經(jīng)常出現(xiàn)大量相似的調(diào)用構(gòu)件的代碼,這些代碼散落在業(yè)務系統(tǒng)中,復雜且難于維護。軟件開發(fā)者開發(fā)出很多針對特定調(diào)用方式的公共構(gòu)件調(diào)用組件,但苦于找不到多種構(gòu)件的抽象調(diào)用模型,而無法設計出具有普遍意義的通用構(gòu)件調(diào)用方式。
發(fā)明內(nèi)容
本發(fā)明的調(diào)用通用構(gòu)件的方法具體內(nèi)容步驟如下包括構(gòu)件的調(diào)用機制、構(gòu)件發(fā)布和構(gòu)件的存儲方法,實現(xiàn)步驟(a)發(fā)布構(gòu)件,將構(gòu)件通過注冊界面注冊到系統(tǒng)中,對不同的構(gòu)件類型使用不同的注冊界面,構(gòu)件通過唯一的構(gòu)件id標識;(b)用戶將要調(diào)用構(gòu)件的id傳給構(gòu)件工廠,并配置正確的實參和構(gòu)造函數(shù)參數(shù),構(gòu)件工廠將根據(jù)構(gòu)件id,查找到構(gòu)件的注冊信息,根據(jù)構(gòu)件的類型,創(chuàng)建出指定類型的構(gòu)件;(c)用戶調(diào)用構(gòu)件的Invoke方法執(zhí)行構(gòu)件或直接使用構(gòu)件對象。
本發(fā)明的有益效果是本發(fā)明的方法解決了多種構(gòu)件的調(diào)用機制、完整的構(gòu)件發(fā)布和存儲的解決等方案。構(gòu)件的調(diào)用類型可以任意擴展,構(gòu)件發(fā)布、存儲方案也可以完全的替換。
附錄說明
圖1是構(gòu)件代理工廠和構(gòu)件代理的結(jié)構(gòu)示意圖。
圖2是構(gòu)件實體的結(jié)構(gòu)示意圖。
圖3是構(gòu)件工廠的部署環(huán)境示意圖。
實施方式1、已實現(xiàn)的構(gòu)件調(diào)用類型包括Dotnet程序集、WebService、存儲過程、單條的SQL語句、COM+組件、WinForm窗體、WebForm窗體、自定義表單、java的jar。
2、構(gòu)件描述結(jié)構(gòu)中,構(gòu)件頭信息的結(jié)構(gòu)是相同的,包括構(gòu)件的ID、編號、名稱、RunAtServer、具體構(gòu)件的類型。構(gòu)件體信息根據(jù)不同的構(gòu)件類型而不同,約定了統(tǒng)一的形參格式,定義參數(shù)類型,參數(shù)模式包括IN、INOUT和OUT。還支持帶構(gòu)造函數(shù)的構(gòu)件的調(diào)用。
3、該組件可被部署于客戶端和服務器端,以供客戶端程序和服務器端使用。組件根據(jù)注冊的構(gòu)件上的RunAtServer字段選擇不同構(gòu)件管理方式。使用步驟(a)發(fā)布構(gòu)件,將構(gòu)件通過注冊界面注冊到系統(tǒng)中,對不同的構(gòu)件類型使用不同的注冊界面。構(gòu)件通過唯一的構(gòu)件id標識。(b)用戶將要調(diào)用的構(gòu)件的id傳給構(gòu)件工廠,并配置正確的實參和構(gòu)造函數(shù)參數(shù),構(gòu)件工廠將根據(jù)構(gòu)件id,查找到構(gòu)件的注冊信息,根據(jù)構(gòu)件的類型,創(chuàng)建出指定類型的構(gòu)件。(c)用戶調(diào)用構(gòu)件的Invoke方法執(zhí)行構(gòu)件,或直接使用構(gòu)件對象。
本發(fā)明應用于業(yè)務系統(tǒng)中的構(gòu)件調(diào)用場景。例如業(yè)務系統(tǒng)需要調(diào)用一個MathLib.dll中的Add方法(void Add(int a,int b,ref int c)),首先使用構(gòu)件注冊工具將這個工具注冊到系統(tǒng)中,并得到構(gòu)件的唯一標識id;使用的時候,調(diào)用Invoke(string componentId,Parameter[]paramArr)就完成了構(gòu)件的調(diào)用;從參數(shù)中可以得到經(jīng)過構(gòu)件處理之后的數(shù)據(jù)。
權(quán)利要求
1.一種調(diào)用通用構(gòu)件的方法,其特征在于包括構(gòu)件的調(diào)用機制、構(gòu)件發(fā)布和構(gòu)件的存儲方法,實現(xiàn)步驟(a)發(fā)布構(gòu)件,將構(gòu)件通過注冊界面注冊到系統(tǒng)中,對不同的構(gòu)件類型使用不同的注冊界面,構(gòu)件通過唯一的構(gòu)件id標識;(b)用戶將要調(diào)用構(gòu)件的id傳給構(gòu)件工廠,并配置正確的實參和構(gòu)造函數(shù)參數(shù),構(gòu)件工廠將根據(jù)構(gòu)件id,查找到構(gòu)件的注冊信息,根據(jù)構(gòu)件的類型,創(chuàng)建出指定類型的構(gòu)件;(c)用戶調(diào)用構(gòu)件的Invoke方法執(zhí)行構(gòu)件,或直接使用構(gòu)件對象。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于實現(xiàn)調(diào)用的構(gòu)件有Dotnet程序集、Web服務、存儲過程、單條的SQL語句、COM+組件、WinForm窗體、WebForm窗體、自定義表單、java的jar構(gòu)件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,1)各構(gòu)件頭信息的結(jié)構(gòu)是相同的,如構(gòu)件的ID、編號、名稱、RunAtServer、具體構(gòu)件的類型;2)構(gòu)件體信息根據(jù)不同的構(gòu)件類型而不同,約定統(tǒng)一的形參格式,帶構(gòu)造函數(shù)構(gòu)件的調(diào)用、定義參數(shù)類型,參數(shù)模式包括IN、INOUT和OUT。3)根據(jù)前兩點而形成的構(gòu)件統(tǒng)一描述語言格式,參見附圖4。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于1)各構(gòu)件被部署于客戶端和服務器端供客戶端程序和服務器端使用,構(gòu)件根據(jù)注冊的構(gòu)件上的RunAtServer字段選擇不同構(gòu)件管理方式。2)提供可擴展接口,提供異構(gòu)系統(tǒng)中的構(gòu)件部署方式及構(gòu)件創(chuàng)建方式。
全文摘要
本發(fā)明是一種處理多種類型構(gòu)件(可獨立發(fā)布的、實現(xiàn)特定接口的應用程序集合)的方法,一套通用的調(diào)用構(gòu)件的組件,屬于GSP平臺(完全使用構(gòu)件化開發(fā)思想、提供大量靈活配置功能和高度可擴展性的業(yè)務系統(tǒng)設計和開發(fā)平臺)的一個核心組件。由于其提供的可調(diào)用的外部應用程序的種類豐富,以及有松散的可擴展的結(jié)構(gòu),因此可以廣泛的應用于GSP平臺和其他業(yè)務系統(tǒng)中。該組件提供簡潔的用戶接口,充分考慮到各種應用場景,為使用者提供方便的、統(tǒng)一的外部應用程序的調(diào)用方式。
文檔編號G06F9/44GK101021786SQ200710013400
公開日2007年8月22日 申請日期2007年3月15日 優(yōu)先權(quán)日2007年3月15日
發(fā)明者李海波, 朱金晨, 廉明威 申請人:浪潮集團山東通用軟件有限公司