專利名稱:數據庫中間件系統的制作方法
技術領域:
本發明涉及通信領域,具體涉及一種用于通信行業的數據庫中間件。
背景技術:
目前商用的數據庫如0raCle、SQL Server, MySQL等都是使用c和c++開發的,所以它對外提供的接口基本上是c的API (應用程序接口),于是以前的數據庫都是使用嵌 入式的c或c++等進行訪問,這就給開發系統帶來了困難。后來隨著數據技術的發展,數據 庫管理系統的廠商開始針對不同的語言提供不同語言的API,這是一個巨大的進步,但是又 存在一個問題使用不同的數據庫的應用程序,不能相互移植,即各個數據庫管理系統不兼 容。這就給軟件的開發,移植和擴展帶來了很大的問題,違背了軟件工程的思想。基于上述背景,數據庫中間件技術應運而生。其中最典型的當數微軟的數據庫中 間件方案ODBC,及其擴展和發展如OLEDB、ADO以及ADO. NET和JAVA平臺的JDBC技術,以 及在其上所開發的更高層的中間件技術。目前主要存在以下各種技術從最原始的GUI技 術和數據庫API使用,再到微軟數據庫中間件技術,再到JAVA平臺的數據庫訪問技術。這 些技術都存在著不同的缺點,比如,CGI程序不能被多個客戶請求共享,每當接到一個客戶 請求,即使有一個該CGI程序的實例在運行,也必須重新啟動一個相同的實例,即創建一個 并發進程.并發請求越多,創建的并發進程越多,占用了大量內存,限制了應用程序自身所 用的內存資源,而且每個請求創建一個進程也會消耗很多時間,在需要多個數據庫連接的 多用戶應用中,采用CGI來連接數據庫勢必會隨用戶的增加而增加用戶連接數據庫的等待 時間,使系統的性能降低,并可導致系統最終的崩潰。再比如,API相互之間不兼容,它們只 能在特定的服務器和操作系統上運行,由于采用了動態鏈接庫的形式,一旦代碼質量較差 就比較容易造成服務器系統的崩潰,并且進行程序設計時會更復雜,由于它們與具體的數 據庫耦合性太強,對于不同的數據庫來說開發應用靈活性差,加上依賴于具體的平臺和相 應的數據庫版本,使其移植性差,從而導致開發周期加大,可靠性難以得到保障。
發明內容
一種數據庫中間件系統,其與外部數據庫連接,所述數據庫中間件系統包括數據處理通信組件,為外部應用程序組件提供應用程序接口以便加載所述中間件 系統,且調度與管理所述數據庫中間件系統通過msip協議與外部應用程序組件通信,從而 實現所述外部應用程序組件與所述外部數據庫的通信;數據庫處理組件,包括1)共享數據 庫連接模塊,其和所述外部數據庫通信,以及2)數據庫操作監控器模塊,其檢測所述數據 庫中間件系統與所述外部數據庫之間的連接是否有效,若發現連接無效則調用所述共享數 據庫連接模塊以實現與所述外部數據庫的連接;以及信息管理組件,包括服務管理器模塊, 其為不同的任務設定不同的處理優先級,且與所述數據處理通信組件以及數據庫處理組件 相互協調,根據所設定的處理優先級,并根據任務與其所處的網絡環境的相互關系,動態地 調度任務;其中當收到外部應用程序組件對數據的請求時,所述數據處理通信組件與所述服務管理器模塊通信,所述服務管理器模塊根據所述請求,調度所述共享數據庫連接模塊 使其提供與所述請求相應的接口,再由所述共享數據庫連接模塊與外部數據庫進行交互數 據操作,并返回操作結果。以上概述僅為示意性的,并不意在以任何方式進行限制。除了上文所述的示意性 方面、實施例和特征之外,將通過參照附圖和下文的詳細描述而使進一步的方面、實施例和 特征變得明顯。
圖1是根據本公開內容的一個實施方案的數據庫中間件系統的模塊架構圖。
具體實施例方式在下文的詳細描述中,將參照形成本說明書一部分的附圖。在附圖中,相似的附圖 標記通常指代相似的部件,除非上下文中另行指出。在詳細說明書、附圖和權利要求書中所 描述的示意性實施例并不意在限制。在不偏離在此展現的主體的精神和范圍的情況下,可 以采用其他實施例,并且可以進行其他變化。易于理解的是,在此所大致描述的以及附圖 中所圖示的本公開內容的各方面可以在寬泛的配置變化中進行排列、替換、組合、分拆和刪 節,所有這些均被明確考慮于此。圖1是根據本公開內容的一個實施方案的數據庫中間件系統的模塊架構圖。在此 實施方案中公開了一種數據庫中間件系統100,其與外部數據庫300如圖中所示的Oracle 數據庫310、DB數據庫320等連接,數據庫中間件系統100包括數據處理通信組件101,為外部應用程序組件200諸如自動呼叫分配系統210、人 工坐席系統220等提供應用程序接口以便加載數據庫中間件系統100,且調度與管理數據 庫中間件系統100通過msip協議與外部應用程序組件200通信,從而實現外部應用程序 組件200與外部數據庫組件300的通信。msip協議是一種中間件與外部各應用程序通信 協議,該通信協議按照通信行業特點設計,涵蓋通信行業數據處理各種內容,協議可自動加 載,自動升級,自動識別不同通訊版本和通訊請求。中間件系統100通過msip協議與外部 應用程序組件的通信采用TCP/IP的方式進行,支持單包、多包,根據業務特點自動拆包、自 動組包,支持根據業務優先級和屬性保持數據零丟失、零誤碼。在這個實施方案中,數據庫中間件系統100還包括了數據庫處理組件120,其包括 1)共享數據庫連接模塊121,其和外部數據庫300諸如Oracle數據庫310、DB數據庫320 等通信,負責與外部數據庫之間通信,接口的實現,實現中間件與各種數據庫連接的物理操 作;以及2)數據庫操作監控器模塊122,其檢測數據庫中間件系統100與外部數據庫諸如 Oracle, DB等之間的連接是否有效,若發現連接無效則調用共享數據庫連接模塊121以實 現與外部數據庫300的連接。也就是說,數據庫操作監控器模塊122負責調度管理中間件 系統100與外部數據庫300的物理連接的有效性和連接池的動態維護。在這個實施方案中,數據庫中間件系統100還包括了信息管理組件130。針對通信 行業中網絡環境具有異構性、動態性和分布性,數據流量大,不同業務有著等級處理區別, 加之對數據實時性和準確性要求高的特點,信息管理組件130采用了業務優先動態調度自 適應算法,這需要數據處理通信組件110、數據庫操作監控器模塊122、共享數據庫連接模塊121的相互協調。該算法利用業務和環境的交互模型來動態地實現網絡中的任務分配。 相比于現有技術的方法,該算法對于網絡中的動態環境具有更好的適應性,且調度性能更 優。在這個實施方案中,信息管理組件130包括例如服務管理器模塊131,其為不同的任務 設定不同的處理優先級,且與數據處理通信組件101以及數據庫處理組件120相互協調,根 據所設定的處理優先級,并根據任務與其所處的網絡環境的相互關系,動態地調度任務。服 務管理器模塊131管理所有服務信息,協調中間件100內各個組件的調度,同時也為外部組 件提供共享數據呈現,兼容各種操作系統和32位及64位系統。當收到外部應用程序組件200對數據的請求時,所述數據處理通信組件110與服 務管理器模塊131通信,所述服務管理器模塊根據所述請求,調度共享數據庫連接模塊121 使其提供與所述請求相應的接口,再由共享數據庫連接模塊121與外部數據庫300進行交 互數據操作,并返回操作結果。中間件操作結果提供成功、失敗、異常、多結果集、單結果 集、自定義結果集等多種類型,數據類型及字段定義與數據庫無關,實現了數據庫切換或操 作系統切換時的兼容性問題,滿足通信行業操作系統種類繁多、數據庫種類繁多、分布式部 署、跨平臺部署、異地部署等特性。在根據本公開內容的一個實施方案中,數據庫中間件系統還包括輔助功能組件 140,其包括日志管理器模塊141。日志管理器模塊141記錄數據庫中間件系統100中各組 件的日志信息,并讀取配置文件150供數據庫中間件系統100的各組件調用,例如通過全局 變量142讀取配置文件150。輔助功能組件140實現了配置文件信息管理、日志記錄等功 能,并協調中間件內其他各模塊的動作,方便外部應用程序組件200對各種操作的事件和 結果進行跟蹤,有效的減低排查問題的時間周期。在此實施方案中,對外部數據庫300相關 的信息進行的修改均通過調用配置文件150而實現,所述修改可包括對數據請求的增加和 減少,還可包括對數據字段的名稱、屬性、長度以及內容的修改。任何改動無需修改中間件 程序和業務層程序(外部應用程序組件)。根據本發明的實施方案的數據庫中間件系統,所有與外部數據庫有關的操作都集 成在該中間件,部署時用一個應用程序加載該中間件系統作為服務端,而外部組件只需要 遵循msip協議規范通過加載了該中間件的應用程序即可實現與數據庫的信息交互,從而 可實現不同數據庫間快速切換,且數據庫切換時無需增加額外數據庫授權,整體平臺業務 層即外部應用程序組件不需做任何調整,大大降低了大容量、高可靠性系統的開發周期。根 據本發明的實施方案的數據庫中間件系統適合通信行業中不同規模的公司,適于被不同業 務特點、不同容量的系統使用,且在系統用戶數變化、系統容量、性能有所調整后,能適應系 統調整前后的多種操作系統或數據庫的性能要求。在滿足以上需求的同時,根據本發明的 實施方案的數據庫中間件系統與現有的各種中間件相比較又無需安裝多種數據引擎系統 包,軟件綠色,易加載使用,且經過了上千萬用戶級大系統長期無間斷運行的考驗。雖然已結合優選實施方案和特定實施例描述了本公開內容,但并不意味著本公開 內容的范圍僅限于所闡述的特定實施方案,因為此處的實施方案在所有方面均為描述目的 而不為限制目的。對本領域技術人員而言,顯然可以對本公開內容作出修改和變更而不脫 離其范圍和精神。此處的說明和實施例僅為舉例,而本公開內容的真正范圍和精神將由下 面的權利要求書表示。
權利要求
一種數據庫中間件系統,其與外部數據庫連接,所述數據庫中間件系統包括數據處理通信組件,為外部應用程序組件提供應用程序接口以便加載所述中間件系統,且調度與管理所述數據庫中間件系統通過msip協議與外部應用程序組件通信,從而實現所述外部應用程序組件與所述外部數據庫的通信;數據庫處理組件,包括1)共享數據庫連接模塊,其和所述外部數據庫通信,以及2)數據庫操作監控器模塊,其檢測所述數據庫中間件系統與所述外部數據庫之間的連接是否有效,若發現連接無效則調用所述共享數據庫連接模塊以實現與所述外部數據庫的連接;以及信息管理組件,包括服務管理器模塊,其為不同的任務設定不同的處理優先級,且與所述數據處理通信組件以及數據庫處理組件相互協調,根據所設定的處理優先級,并根據任務與其所處的網絡環境的相互關系,動態地調度任務;其中當收到外部應用程序組件對數據的請求時,所述數據處理通信組件與所述服務管理器模塊通信,所述服務管理器模塊根據所述請求,調度所述共享數據庫連接模塊使其提供與所述請求相應的接口,再由所述共享數據庫連接模塊與外部數據庫進行交互數據操作,并返回操作結果。
2.根據權利要求1所述的數據庫中間件系統,其中所述數據庫中間件系統還包括輔助 功能組件,其包括日志管理器模塊,其記錄所述數據庫中間件系統各組件的日志信息,并讀取配置文件 供所述數據庫中間件系統各組件調用。
3.根據權利要求2所述的數據庫中間件系統,其中對與所述外部數據庫相關的信息進 行的修改均通過調用所述配置文件而實現。
4.根據權利要求3所述的數據庫中間件系統,其中對與所述外部數據庫相關的信息進 行的修改包括了對數據請求的增加和減少,以及對數據字段的名稱、屬性、長度以及內容的 修改。
全文摘要
數據庫中間件系統,與外部數據庫連接,包括數據處理通信組件,為外部應用程序組件提供應用程序接口以加載中間件系統,調度管理數據庫中間件系統通過msip協議與外部應用程序組件通信,實現外部應用程序組件與外部數據庫的通信;數據庫處理組件,包括和外部數據庫通信的共享數據庫連接模塊,及數據庫操作監控器模塊,檢測數據庫中間件系統與外部數據庫之間的連接是否有效。數據庫中間件系統還包括信息管理組件,其包括服務管理器模塊,為不同任務設定不同處理優先級,與數據處理通信組件和數據庫處理組件協調,根據設定的處理優先級并根據任務與所處的網絡環境的關系,動態調度任務。
文檔編號G06F9/46GK101840348SQ200910260170
公開日2010年9月22日 申請日期2009年12月24日 優先權日2009年12月24日
發明者倫建成, 姚濱暉 申請人:陜西移數通電訊有限公司