[發明專利]支持運行時模型擴展的對象關系映射系統和方法有效
| 申請號: | 200810087972.3 | 申請日: | 2008-03-28 |
| 公開(公告)號: | CN101546259A | 公開(公告)日: | 2009-09-30 |
| 發明(設計)人: | 楊洋;謝國彤;王晨;劉升平;曹鋒 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 中國國際貿易促進委員會專利商標事務所 | 代理人: | 吳麗麗 |
| 地址: | 美國*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 支持 運行 模型 擴展 對象 關系 映射 系統 方法 | ||
技術領域
本發明涉及對象關系映射(ORM)系統,具體地說,涉及支持 運行時模型擴展的對象關系映射系統和方法。
背景技術
隨著面向對象的程序設計變為企業軟件開發的范例,對象關系映 射(ORM)已成為一種越來越受歡迎的實現對象持久性的技術。在 面向對象的(OO)的程序設計中,數據管理任務一般是通過操縱對 象來實現的。然而,關系數據庫例如DB2、Oracle只能存儲和操縱關 系數據,這些關系數據被組織在表中。因此,為了將對象保存到數據 庫中,程序員必須手動設計對象的關系數據庫模式(schema)并把對象 轉換成關系記錄。對于比較小的對象模型而言,這可能比較容易。但 是在應用大規模對象模型的情況下,需要使用的對象模型越來越多, 為對象模型手工設計數據庫會變得困難。
對象關系映射(ORM)被用于將面向對象的程序設計模型映射到 由Oracle、DB2、Sybase和其它關系數據庫管理器(RDBMS)管理 的關系數據庫模型。從程序員的角度看,ORM系統應當看起來象一 個永久的對象存儲庫。程序員只需生成對象并將它們傳送到ORM系 統。ORM系統自動地將這些對象保存到關系數據庫中。目前有很多 流行的ORM產品,例如Websphere?Metadata?Server(XMeta)、 Apache?OJB、Hibernate、Oracle’s?TopLink等。
下面參考圖1介紹ORM系統的基本組成和工作原理。
圖1示出了現有技術的ORM系統10的結構框圖,它包括模型 注冊模塊11、對象關系(OR)映射模塊12和關系數據庫(RDB)13。 在ORM系統10以外還有代碼生成器17和應用程序18。代碼生成器 17用于識別面向對象的模型中的類和屬性,根據識別結果生成應用程 序接口(API)并將生成的API傳遞給應用程序18。應用程序18利 用從代碼生成器17傳遞來的API生成對象。關于代碼生成器17和應 用程序18的操作是本領域的技術人員公知的,這里不再詳細描述。
為了使用ORM系統10,用戶需要將面向對象的模型注冊到 ORM系統10。該系統10利用對象關系映射模塊12產生適于已注冊 的模型的關系數據庫模式。然后,應用程序18可以將符合已注冊模 型的對象串行送入ORM系統10。對象關系映射模塊12把這些對象 自動翻譯成SQL(結構化查詢語言)語句。通過使用ORM系統10, 程序員可以以面向對象的方式將注意力集中于商業邏輯,而不需要花 費時間手動處理對象進行關系數據庫翻譯,這將大大減輕程序員的工 作負擔。下面舉例說明應用ORM系統的典型步驟。
(1)由設計人員根據所需的商業邏輯設計適于具體應用的面向 對象的模型,例如在一個機票預訂系統中,可以聲明一個類 “TicketOrder”,它包含例如三個屬性:時間“Time”、客戶姓名 “Name”、航班號“Flight”,當然在實際中可以包含更多的屬性,例如 價格、航空公司名稱、退票/改簽等等,這里只是舉例說明。當然,如 果模型已經存在,則可以跳過這個步驟。
(2)將步驟(1)中的數據模型分別輸入到代碼生成器17和 ORM系統10中的模型注冊模塊11,在模型注冊模塊11中注冊該數 據模型并將其輸入到對象關系映射模塊12。對象關系映射模塊12根 據數據模型產生關系數據庫模式,這里的關系數據庫模式例如是指在 關系數據庫13中的表的結構。另一方面,如上所述,代碼生成器17 根據面向對象的模型生成相應的API。
(3)對象關系映射模塊12在步驟(2)中產生的關系數據庫模式被 部署到關系數據庫13中。
(4)應用程序18利用生成的API產生數據對象,對象關系映射 模塊12使用SQL語言將該數據對象保存/加載到關系數據庫13中。 在上述例子中,每次有一個客戶提出機票預訂請求,應用程序18就 生成一個數據對象,它含有與“Time”、“Name”、“Flight”相對應的三 個屬性值。這個數據對象被保存到關系數據庫13中,成為表的一個 條目。
以上例子可以參考下面的表,在該表中還附加了一個“ID”列, 這可以在生成關系數據庫模式時由對象關系映射模塊12自動加入。 當然,這一列也可以不存在。
類:TicketOrder
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810087972.3/2.html,轉載請聲明來源鉆瓜專利網。





