亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種資源業(yè)務(wù)對象的持久化和查詢方法

文檔序號:6556950閱讀:249來源:國知局
專利名稱:一種資源業(yè)務(wù)對象的持久化和查詢方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種適用于電信運營支撐系統(tǒng)(簡稱OSS)的本地網(wǎng)資源管理系統(tǒng)中的業(yè)務(wù)對象的持久化方法和基于該持久化方法的查詢方法。
背景技術(shù)
經(jīng)過十幾年的高速發(fā)展,通信網(wǎng)絡(luò)規(guī)模已經(jīng)非常龐大。電信運營商如何通過一種網(wǎng)絡(luò)資源動態(tài)管理體系,調(diào)度企業(yè)各部門有效配置網(wǎng)絡(luò)資源,盤活網(wǎng)絡(luò)存量資產(chǎn),提高資源利用率,最大限度滿足客戶需要,支撐前端業(yè)務(wù),是提高網(wǎng)絡(luò)綜合效能和企業(yè)競爭力的重要保證。
為此,電信運營商普遍采用了基于計算機信息管理技術(shù)的電信OSS本地網(wǎng)資源管理系統(tǒng),其參照了eTom的模型體系,以計算機系統(tǒng)為基礎(chǔ),實現(xiàn)傳輸網(wǎng)、數(shù)據(jù)網(wǎng)、交換網(wǎng)、動力網(wǎng)等各專業(yè)網(wǎng)的物理設(shè)備資源、邏輯配置資源、業(yè)務(wù)調(diào)度和業(yè)務(wù)開通流程的集中統(tǒng)一管理,為電信運營商提供了電信網(wǎng)絡(luò)管理的綜合解決方案,不僅使新的網(wǎng)絡(luò)資源的快速方便的擴展成為可能,并幫助電信運營商極大地提高了新業(yè)務(wù)生成的速度。
通常以管理人員操作客戶端上運行的管理系統(tǒng)的方式對資源(即對象)進行管理和查詢,而所管理的各種資源最終均存儲在服務(wù)器端的數(shù)據(jù)庫中,并最終通過服務(wù)器端的數(shù)據(jù)庫管理系統(tǒng)來查詢。
在電信OSS本地網(wǎng)資源管理系統(tǒng)中,通常采用面向?qū)ο蠹夹g(shù)對資源進行建模,其中管理許多不同類型的資源業(yè)務(wù)對象,如空間資源(站點、機房等)、物理資源(網(wǎng)元、端口、端子等)、邏輯資源(SDH、PDH、電路等),而且每個資源業(yè)務(wù)對象都會有許多屬性,如網(wǎng)元就有名稱、編碼、廠商、設(shè)備種類、客戶等數(shù)十個屬性。當(dāng)前,在把業(yè)務(wù)對象持久化到數(shù)據(jù)庫的過程中,即在數(shù)據(jù)庫對象持久化層上,或者采用直接使用JDBC寫sql語句的方式,或者采用O/R Mapping中間件工具,把數(shù)據(jù)庫表和字段封裝成對象和屬性?,F(xiàn)在已經(jīng)有不少成熟的中間件產(chǎn)品,如JDO、Toplink、Hibernate等。
但對于現(xiàn)有的電信OSS本地網(wǎng)資源管理系統(tǒng),在涉及到具體業(yè)務(wù)領(lǐng)域時,直接使用這些產(chǎn)品仍有一些不足之處。例如,應(yīng)用代碼和具體O/R Mapping產(chǎn)品綁定,如果以后要遷移到其他產(chǎn)品的話,則需要重新編寫代碼,代價很大;對于每一種資源業(yè)務(wù)對象的持久化和查詢,都需要寫許多定制的代碼;缺乏有效封裝,客戶端可以直接獲取數(shù)據(jù)庫的對象,可以直接對數(shù)據(jù)庫進行操作,違反了分層的原則,并降低安全性;調(diào)用方法分散,缺乏統(tǒng)一的管理,無法在性能和功能上進行統(tǒng)一處理和維護;對于帶有多層關(guān)聯(lián)子業(yè)務(wù)對象的資源對象,無法做到靈活查詢;無法滿足資源統(tǒng)一命名規(guī)范,同時又兼顧拼裝名稱的靈活定制顯示。

發(fā)明內(nèi)容
為克服以上的不足,本發(fā)明的目的是提供一種電信OSS本地網(wǎng)資源管理系統(tǒng)中的業(yè)務(wù)對象持久化方法和以此為基礎(chǔ)的業(yè)務(wù)對象查詢方法,它們是統(tǒng)一的和對象類型無關(guān)的。
本發(fā)明提供了一種電信運營支撐系統(tǒng)的本地網(wǎng)資源管理系統(tǒng)中的業(yè)務(wù)對象的持久化方法,其特征在于包括步驟在客戶端對業(yè)務(wù)對象和/或其關(guān)聯(lián)業(yè)務(wù)對象進行修改,并針對所修改的業(yè)務(wù)對象設(shè)定與所述修改相應(yīng)的持久化類型標(biāo)記;將包括所述被修改的業(yè)務(wù)對象的對象樹提交到服務(wù)器以請求持久化;在服務(wù)器端根據(jù)持久化標(biāo)記對所提交的對象樹實施修改,以得到最終的對象樹;以及將最終的對象樹持久化到數(shù)據(jù)庫中。
根據(jù)一個實施例,所述實施修改的步驟包括遍歷該對象樹,當(dāng)遍歷經(jīng)過一個業(yè)務(wù)對象時,實施該業(yè)務(wù)對象的簡單屬性的修改;以及當(dāng)遍歷經(jīng)過一個關(guān)聯(lián)時,判斷與該關(guān)聯(lián)相關(guān)的父業(yè)務(wù)對象和子業(yè)務(wù)對象之間的關(guān)系,如果父業(yè)務(wù)對象和子業(yè)務(wù)對象之間是1∶1或n∶1的關(guān)系,則根據(jù)子對象的持久化類型不同,重新設(shè)置該父業(yè)務(wù)對象和子業(yè)務(wù)對象的關(guān)系;以及如果該父業(yè)務(wù)對象和子業(yè)務(wù)對象是1∶n或n∶n的關(guān)系,則先遞歸持久化子業(yè)務(wù)對象,然后在遞歸返回父業(yè)務(wù)對象時重新設(shè)置該父業(yè)務(wù)對象和子業(yè)務(wù)對象之間的關(guān)系。
根據(jù)一個實施例,所述持久化類型包括新增,修改和刪除。
根據(jù)一個實施例,所述客戶端通過統(tǒng)一的入口來進行所述請求。
根據(jù)一個實施例,所述客戶端能夠通過該入口提交多個對象樹。
根據(jù)一個實施例,所述持久化步驟是通過中間件工具進行的。
本發(fā)明還提供一種電信運營支撐系統(tǒng)的本地網(wǎng)資源管理系統(tǒng)中的業(yè)務(wù)對象查詢方法,其特征在于包括步驟在客戶端定義查詢請求,該查詢請求包括查詢表達(dá)式和關(guān)聯(lián)對象組裝字符串;發(fā)送查詢請求到服務(wù)器;服務(wù)器根據(jù)預(yù)定的查詢表達(dá)式映射將所接收的查詢請求中的查詢表達(dá)式轉(zhuǎn)換成針對相應(yīng)中間件的表達(dá)式;根據(jù)轉(zhuǎn)換的查詢表達(dá)式執(zhí)行查詢并根據(jù)關(guān)聯(lián)對象組裝字符串來生成查詢結(jié)果;以及將生成的查詢結(jié)果返回給客戶端。
根據(jù)一個實施例,所述執(zhí)行查詢并生成查詢結(jié)果的步驟包括查詢出滿足查詢表達(dá)式的業(yè)務(wù)對象的集合;針對該集合中的每個對象,查詢出滿足要求的對象;以及解析關(guān)聯(lián)對象組裝字符串,遞歸組裝業(yè)務(wù)對象樹,以生成查詢結(jié)果。
根據(jù)一個實施例,所述查詢請求還包括資源命名拼裝字符串,并且所述執(zhí)行查詢并生成查詢結(jié)果的步驟包括解析資源命名拼裝字符串,以及得到業(yè)務(wù)對象類型和命名上下文名稱;根據(jù)該業(yè)務(wù)對象類型和命名上下文名稱從預(yù)定義的命名規(guī)則中找到對應(yīng)的命名規(guī)則;根據(jù)命名規(guī)則的前提條件,生成相應(yīng)拼裝的SQL語句,查詢出命名顯示子項;對所述命名顯示子項進行命名顯示名稱取值轉(zhuǎn)換;以及用經(jīng)過轉(zhuǎn)換后的名稱替換查詢結(jié)果中與所述業(yè)務(wù)對象類型相應(yīng)的對象的名稱。
根據(jù)一個實施例,所述解析并遞歸組裝的步驟包括針對每個解析出的關(guān)聯(lián)子對象,根據(jù)預(yù)定映射關(guān)系得到相應(yīng)的設(shè)置方法;以及調(diào)用該設(shè)置方法,以設(shè)置該關(guān)聯(lián)子對象。
根據(jù)一個實施例,所述中間件為Toplink或Hibernate。
根據(jù)一個實施例,所述查詢請求包括指定當(dāng)前查詢的頁數(shù)和每頁查詢的記錄數(shù)目的信息,并且所述查詢業(yè)務(wù)對象集合的步驟包括根據(jù)分頁號和每頁的數(shù)目進行查詢。
根據(jù)本發(fā)明,資源業(yè)務(wù)查詢服務(wù)器有預(yù)定義的查詢表達(dá)式,能轉(zhuǎn)換成不同O/R Mapping產(chǎn)品的查詢表達(dá)式,以支持不同的O/RMapping產(chǎn)品。
根據(jù)本發(fā)明,查詢時能夠方便地設(shè)置查詢業(yè)務(wù)對象的任意關(guān)聯(lián)子對象。
根據(jù)本發(fā)明,提供了滿足本地網(wǎng)資源統(tǒng)一命名規(guī)范,同時又能實現(xiàn)命名靈活定制顯示。


通過下面結(jié)合附圖所進行的對本發(fā)明的描述,能夠明白本發(fā)明的上述及其它目的,特征和優(yōu)點,其中圖1示出了根據(jù)本發(fā)明的業(yè)務(wù)對象持久化方法的一個實施例;圖2示出了根據(jù)本發(fā)明的業(yè)務(wù)對象查詢方法的一個實施例;圖3示出了修改之前的對象樹的例子;圖4示出了客戶端所提交的對象樹;圖5示出了在服務(wù)器端的數(shù)據(jù)庫中持久化后的對象樹;圖6示出了一個資源對象樹的例子;圖7示出了一棵端口的對象樹的例子。
具體實施例方式
下面結(jié)合附圖來說明本發(fā)明的具體實施例。
圖1示出了根據(jù)本發(fā)明的業(yè)務(wù)對象持久化方法的一個實施例。
如圖1所示,在步驟S1,由用戶在系統(tǒng)客戶端對業(yè)務(wù)對象的持久化進行設(shè)定。根據(jù)業(yè)務(wù)對象之間的關(guān)聯(lián),可以在邏輯上將存在關(guān)聯(lián)的若干對象視為對象樹。對象樹的一個特例是單節(jié)點樹,即單個對象。對象樹在面向?qū)ο蟪绦蛟O(shè)計語言中得到廣泛的支持。例如系統(tǒng)可采用開發(fā)語言Java,Java本身是一個面向?qū)ο蟮恼Z言,每一個資源業(yè)務(wù)對象都會對應(yīng)到一個Java的Object對象。
一個業(yè)務(wù)對象持久化,可分為新增、修改、刪除三種情況。持久化既包括持久化業(yè)務(wù)對象本身的基本屬性,也包括持久化該業(yè)務(wù)對象關(guān)聯(lián)的子業(yè)務(wù)對象。對于修改的情況,既包括對象基本屬性的修改,如修改了名稱,也包括關(guān)聯(lián)子對象的改動,子對象的增、刪、改都意味著父對象做了修改。這些子對象的類和父對象的類之間有多對一、一對多、一對一、多對多等多種關(guān)聯(lián)關(guān)系,比如類A和類B有關(guān)聯(lián)關(guān)系,反映在具體實現(xiàn)上就是類A有例如getB()的方法,類B有例如getA()的方法,通過兩者get方法返回值是單個還是集合可以確定兩者之間的關(guān)聯(lián)關(guān)系類型,子對象的持久化也分新增、修改、刪除三種情況,子對象又有子對象,所以每個對象的持久化操作都是一棵對象樹的持久化操作。
業(yè)務(wù)對象持久化包括新增、修改、刪除三種情況。在步驟S1的設(shè)定操作中,把有關(guān)業(yè)務(wù)對象打上不同的持久化標(biāo)記來表示新增、修改和刪除。
接著,在步驟S3,當(dāng)用戶選擇保存對象樹時,系統(tǒng)客戶端將包含加有持久化標(biāo)記的對象的對象樹提交到系統(tǒng)服務(wù)器端以請求在數(shù)據(jù)庫中持久化。業(yè)務(wù)對象持久化方法提供了一個遠(yuǎn)程接口方法persistBObjects(long_sessionKey,List_objects),作為統(tǒng)一的操作入口,可以完成對不同類型資源對象樹的持久化操作。其中參數(shù)sessionKey為長整型,記錄了當(dāng)前用戶的信息,參數(shù)objects為要持久化的對象樹集合,該接口方法支持批量的對象樹持久化操作。對象樹的傳送方法是本領(lǐng)域已知的。以Java為例,這里所有對象可以都實現(xiàn)Java的Serializable接口,這樣在遠(yuǎn)程RMI調(diào)用時,對象會被自動的序列化和反序列化。
接著,在步驟S5,系統(tǒng)服務(wù)器端在接收到所提交的對象樹之后,在對象樹中遵循對象之間的關(guān)聯(lián)進行遍歷。在遍歷過程中,通過確定對象關(guān)聯(lián)的方法(例如Java的反射功能,遍歷該對象所有的get/set方法)來進行遍歷。當(dāng)遍歷經(jīng)過一個業(yè)務(wù)對象時,根據(jù)業(yè)務(wù)對象的持久化類型,實施簡單屬性的修改;當(dāng)遍歷經(jīng)過一個關(guān)聯(lián)時,判斷父業(yè)務(wù)對象和關(guān)聯(lián)子對象之間的關(guān)系,如果父業(yè)務(wù)對象和子業(yè)務(wù)對象(例如對應(yīng)的get方法返回值是集合)之間是1∶1或n∶1的關(guān)系,則根據(jù)子對象的持久化類型不同,重新設(shè)置該父業(yè)務(wù)對象和子業(yè)務(wù)對象的關(guān)系;如果該父業(yè)務(wù)對象和子業(yè)務(wù)對象是1∶n或n∶n的關(guān)系(例如對應(yīng)的get方法返回值是單個實體),則先遞歸持久化子業(yè)務(wù)對象,然后在遞歸返回父業(yè)務(wù)對象時重新設(shè)置該父業(yè)務(wù)對象和子業(yè)務(wù)對象之間的關(guān)系。由于查找對象關(guān)聯(lián)關(guān)系是通過例如Java的反射功能來實現(xiàn)的,所以不需要任何的硬編碼,也不依賴業(yè)務(wù)對象的具體類型。在遍歷完成后,系統(tǒng)服務(wù)器端形成最終的對象樹。
接著,在步驟S7,系統(tǒng)服務(wù)器端將所形成的對象樹通過持久化工具保存在數(shù)據(jù)庫中。
該方法在步驟S9結(jié)束。
在一個可選實施例中,本發(fā)明的持久化方法可以和常規(guī)方法結(jié)合使用。例如,對于大部分的資源業(yè)務(wù)對象,在持久化的時候都遵循著本發(fā)明的方法,只有少部分的業(yè)務(wù)對象持久化時需要額外的定制操作。
下面結(jié)合圖3-5示出的對象樹更詳細(xì)地說明圖1的方法。圖3示出了修改之前的對象樹的例子。圖4示出了通過客戶端的修改而要持久化的對象樹。圖5示出了在服務(wù)器端的數(shù)據(jù)庫中持久化后的對象樹。
對于步驟S1,在客戶端保存之前,對業(yè)務(wù)對象進行修改,并把業(yè)務(wù)對象打上相應(yīng)的持久化的標(biāo)記,標(biāo)記有A、U、D三種,分別表示新增、修改和刪除。
對比圖3示出的對象樹,如圖4所示,對象A修改時,會新增子對象B,同時修改子對象C,子對象C修改時,會刪除子對象D,同時會對關(guān)聯(lián)的E對象(C和E之間是1對多關(guān)系)進行修改。
對于步驟S3,提交到服務(wù)器端的輸入是一棵打上持久化標(biāo)記的對象樹,以下面網(wǎng)元的修改為例,對象樹如圖6所示。
網(wǎng)元修改時,同時會修改機框1,新增機框2(新增機框2時同時新增機框2包含的插盤),修改所屬客戶。
對于步驟S5,服務(wù)器端處理時實現(xiàn)如下先根據(jù)該業(yè)務(wù)對象的持久化類型,調(diào)用簡單屬性的修改操作。簡單的持久化操作只持久化對象的簡單屬性,比如網(wǎng)元的名稱、編碼等一些簡單屬性,不包括網(wǎng)元和機框之間這種對象間的屬性關(guān)系。
通過Java的反射功能獲得對應(yīng)get方法,根據(jù)返回類型判斷該業(yè)務(wù)對象和關(guān)聯(lián)子對象之間的關(guān)系。這又分成兩種情況該業(yè)務(wù)對象和子對象之間是1∶1或n∶1的關(guān)系在這種情況下,根據(jù)子對象的持久化類型不同,重新設(shè)置該業(yè)務(wù)對象和子對象的關(guān)系。如網(wǎng)元類有g(shù)etCustomer()方法,返回類型是Customer對象,這樣我們就知道網(wǎng)元和客戶的關(guān)系是n∶1(或1∶1,這里關(guān)系是n∶1,兩種關(guān)系處理方法相同),這里就會調(diào)用網(wǎng)元的類對應(yīng)的setCustomer(Customer customer)方法,重新設(shè)置網(wǎng)元的所屬客戶對象。
該業(yè)務(wù)對象和子對象是1∶n或n∶n的關(guān)系在這種情況下,先遞歸持久化子業(yè)務(wù)對象,然后重新設(shè)置父對象和子對象之間的關(guān)系。比如網(wǎng)元和機框的關(guān)系是1∶n,這里就會遞歸持久機框?qū)ο?,修改機框1,新增機框2,同時新增機框2所包含的插盤。1∶n和n∶n兩種情況對于對象的處理方式相同,只是數(shù)據(jù)庫中的持久化方式不同,O/R Mapping工具會屏蔽掉持久化方式上的不同。
最后調(diào)用O/R Mapping工具的接口持久化修改后的對象樹,并把保存后的網(wǎng)元對象作為方法輸出返回下面參照圖2和7描述本發(fā)明的業(yè)務(wù)對象查詢方法。
本發(fā)明的業(yè)務(wù)對象查詢方法提供了一個統(tǒng)一的操作入口,可以完成不同類型資源對象的查詢和資源命名定制顯示的操作。客戶端在查詢資源之前,設(shè)置查詢關(guān)聯(lián)對象組裝字符串和資源命名拼裝格式,然后系統(tǒng)服務(wù)器會解析組裝字符串和資源命名拼裝格式,實現(xiàn)不同對象的關(guān)聯(lián)查詢和資源命名靈活顯示功能。
已有的技術(shù)方案一般都偏向技術(shù)實現(xiàn)的底層,用于簡化數(shù)據(jù)庫操作和軟件模塊的整合等,比如O/R Mapping工具或是其他一些中間件產(chǎn)品,而缺乏適用于上層OSS業(yè)務(wù)領(lǐng)域的實現(xiàn)方案。本發(fā)明設(shè)計面向電信OSS領(lǐng)域,能有效的解決OSS領(lǐng)域資源業(yè)務(wù)對象管理的實際問題。
在電信本地網(wǎng)資源管理系統(tǒng)中,用戶最基本的操作就是對業(yè)務(wù)對象的增、刪、改、查,所有基本操作都離不開對業(yè)務(wù)對象的查詢和顯示。每個操作對查詢的要求都會不同,所以需要有一種通用的查詢方法來支持所有情況。該查詢方法實現(xiàn)了業(yè)務(wù)對象的查詢功能,支持任意多層關(guān)聯(lián)對象組合查詢,并可擴展支持不同類型的O/R Mapping產(chǎn)品。
當(dāng)查詢某個業(yè)務(wù)對象時,有時希望返回的結(jié)果不只是對象本身,還有該對象關(guān)聯(lián)的其他對象。比如查詢“端口”對象,在某些情況下,希望返回的結(jié)果中還要有端口所屬屬網(wǎng)元的信息,希望返回的是一棵端口的對象樹,如圖7所示。
在不同的情況下客戶端對業(yè)務(wù)對象展現(xiàn)的層次要求不同,所以在查詢結(jié)果中對組裝對象的要求也不一樣。如果為每一種組裝情況都提供不同的查詢方法,這樣查詢方法數(shù)目就會很多,如果通過實現(xiàn)一個最復(fù)雜組裝的方法來滿足所有情況,性能的代價又太大。而且這都是針對單個業(yè)務(wù)對象而言,而系統(tǒng)中有成百上千的不同類型的業(yè)務(wù)對象,一個統(tǒng)一的查詢方法非常必要。
圖2示出了本發(fā)明的業(yè)務(wù)對象查詢方法的一個實施例的示意流程圖。
如圖2所示,方法從步驟S11開始,其中由用戶在客戶端輸入查詢請求。該查詢請求包含有對象組裝字符串,來滿足不同的查詢情況。例如,一個對象組裝字符串格式可以如下。以端口為例,格式為“[Port[NE]]”,這表示返回的結(jié)果中,端口(Port)需要設(shè)置網(wǎng)元(NE)對象,設(shè)置是通過調(diào)用相應(yīng)方法,例如setNE()來實現(xiàn),其中可以采用方法名和組裝字符串相匹配的方式,但也可以采用其它關(guān)聯(lián)方式。對于復(fù)雜的情況,比如需要端口(Port)關(guān)聯(lián)上插盤(CircuitPack),插盤還要關(guān)聯(lián)上插盤類型(CircuitPackType),網(wǎng)元(NE)要關(guān)聯(lián)上機房(Host)等,只需修改一下組裝字符串為“[Port[CircuitPack[CircuitPackType]][NE[Host]]]”就可以了,不需要修改其他代碼。本領(lǐng)域技術(shù)人員明白,上面只是對象組裝字符串的具體例子,本發(fā)明并不局限于這樣的例子。
可選地,查詢請求也可包含命名拼裝字符串,來滿足不同的資源命名需要。雖然在所有的本地網(wǎng)中資源都有統(tǒng)一的命名規(guī)范,但是不同用戶在不同資源使用場合下需要不同的資源名稱。在不同的上下文環(huán)境中,用戶可能希望看到不同的顯示名稱。比如以“端子”這個資源為例,端子是在某個連接面板上,連接面板有可能在機架上,也可能在連接設(shè)備上,機架和連接設(shè)備可以是單面,也可以是雙面。對于上述不同情況的組合,用戶希望能夠得到不同的顯示名稱,也就是需要為不同上下文情況提供不同的拼裝顯示規(guī)則。而且由于各個用戶情況不同,即使對于同一種上下文情況,拼裝顯示的規(guī)則可能也不相同。如果命名拼裝邏輯和代碼綁定,只能通過為不同的用戶開發(fā)不同的命名代碼,為不同的資源使用場合開發(fā)不同的資源命名代碼。實現(xiàn)和維護代價大,而且對現(xiàn)場修改要求的響應(yīng)時間長。
本發(fā)明的資源命名靈活定制方法將命名邏輯從代碼中分離,并保存到外部配置中,而代碼中僅僅保留通用的處理邏輯。當(dāng)用戶有對命名邏輯的修改要求時,直接修改外部配置即可。同時為不同的命名上下文,定義不同的命名規(guī)則,以實現(xiàn)命名拼裝的靈活性。
命名規(guī)則包括●名稱,命名規(guī)則的唯一標(biāo)識。每個資源實體在系統(tǒng)中都有一套缺省命名規(guī)則。
●前提條件。一個命名規(guī)則中會有多個前提條件,可以針對不同的前提條件生成不同的拼裝命名,前提條件可以是一個sql表達(dá)式,用于限定哪些對象滿足這個前提。
●拼裝方法命名拼裝過程如下,以關(guān)于端口的命名拼裝字符串“Port{顯示名稱-系統(tǒng)缺省setNameObj}”為例根據(jù)該業(yè)務(wù)對象(Port)的類型和命名上下文名稱(“顯示名稱-系統(tǒng)缺省”),找到對應(yīng)的命名規(guī)則。
根據(jù)命名規(guī)則的前提條件,篩選出滿足要求的業(yè)務(wù)對象。其中可根據(jù)不同的前提條件,生成不同拼裝的SQL語句,查詢出命名顯示子項。比如前提條件是“端口有插盤,插盤有機框,機框無子架”,系統(tǒng)就會根據(jù)對應(yīng)的拼裝方法“網(wǎng)元Name+機框No+插盤PackNo+端口Position+端口種類信息”生成相應(yīng)的sql語句。
對所述命名顯示子項進行命名顯示名稱取值轉(zhuǎn)換。因為查詢出的值可能是某個數(shù)據(jù)字典值或者定義的常量等,要把這些值轉(zhuǎn)換成相應(yīng)的可閱讀的顯示名稱。比如端口光電特性在數(shù)據(jù)庫中是用數(shù)值0、1來表示,在顯示時會根據(jù)數(shù)據(jù)字典轉(zhuǎn)換成“光口”或“電口”。
因此,能夠形成定制的業(yè)務(wù)對象顯示名稱。
雖然前面參照一個具體實施例描述了本發(fā)明的資源命名特征,然而本領(lǐng)域技術(shù)人員明白,能夠得到其它達(dá)到同樣目的的資源命名方法。
接著在步驟S13,從客戶端將查詢請求發(fā)送到服務(wù)器端以請求查詢。
接著在步驟S15,服務(wù)器將接收的查詢請求中的自定義的查詢表達(dá)式轉(zhuǎn)換成某個具體O/R Mapping產(chǎn)品的查詢表達(dá)式,例如支持Toplink。不同的O/R Mapping產(chǎn)品都提供了各自的數(shù)據(jù)庫查詢表達(dá)式,這些查詢表達(dá)式之間互不兼容。為了做到對具體產(chǎn)品透明,根據(jù)本發(fā)明,在服務(wù)器端定義了自己的查詢表達(dá)式映射,客戶端在查詢時設(shè)置好表達(dá)式的內(nèi)容,服務(wù)器端會根據(jù)該映射把表達(dá)式解釋成O/RMapping產(chǎn)品的表達(dá)式。這樣首先使客戶端獨立于具體的第三方產(chǎn)品,而且也使服務(wù)器端能夠很方便的通過擴展支持不同的產(chǎn)品,例如Toplink和Hibernate等。
接著在步驟S17,根據(jù)轉(zhuǎn)換的查詢表達(dá)式執(zhí)行查詢并根據(jù)業(yè)務(wù)對象組裝字符串來生成查詢結(jié)果。
例如,在步驟S17中,查詢出滿足查詢表達(dá)式的業(yè)務(wù)對象的集合,例如在通過id標(biāo)識對象的情況下,先查出滿足要求的業(yè)務(wù)對象的id集合,接著根據(jù)對象id,查詢出對象集合。
接著解析業(yè)務(wù)對象組裝字符串,遞歸組裝業(yè)務(wù)對象樹。
接著在步驟S19,將最終結(jié)果,即遞歸組裝的對象樹返回給客戶端。
該方法在步驟S21結(jié)束。
下面通過具體的例子詳細(xì)解釋該實施例。在這個例子中,假設(shè)查詢的對象為端口Port,組裝字符串為“[Port[NE[Host]]]”,表示端口查詢返回時要關(guān)聯(lián)上網(wǎng)元對象,網(wǎng)元要關(guān)聯(lián)上機房對象,命名拼裝字符串為“Port{顯示名稱-系統(tǒng)缺省setNameObj}”,表示命名拼裝上下文為“顯示名稱-系統(tǒng)缺省”。
對于步驟S17,在組裝端口對象樹的時候,會遞歸組裝下層網(wǎng)元對象,關(guān)聯(lián)上機房對象。
在一個可選實施例中,如果查詢請求包括命名拼裝字符串,則在步驟17中,還解析命名拼裝字符串,定制業(yè)務(wù)對象的拼裝命名。在這個例子中,根據(jù)命名上下文“顯示名稱-系統(tǒng)缺省”找到對應(yīng)的命名規(guī)則,然后根據(jù)這個命名規(guī)則拼裝端口命名。
在一個可選實施例中,如果業(yè)務(wù)對象查詢結(jié)果的數(shù)據(jù)量很大,可以支持分頁查詢。即每次只查詢和展現(xiàn)一頁的數(shù)據(jù),可以任意指定當(dāng)前查詢的頁數(shù)和每頁查詢的記錄數(shù)目。對于步驟S17,根據(jù)分頁號和每頁的數(shù)目查詢出滿足要求的業(yè)務(wù)對象的集合。
采用本方法后,可以實現(xiàn)各種不同類型資源業(yè)務(wù)對象的持久化和查詢功能,可以靈活定制各種資源的命名顯示,減輕了系統(tǒng)的復(fù)雜度,大大提高了整個系統(tǒng)的靈活性和顯示的友好性。
權(quán)利要求
1.一種電信運營支撐系統(tǒng)的本地網(wǎng)資源管理系統(tǒng)中的業(yè)務(wù)對象的持久化方法,其特征在于包括步驟在客戶端對業(yè)務(wù)對象和/或其關(guān)聯(lián)業(yè)務(wù)對象進行修改,并針對所修改的業(yè)務(wù)對象設(shè)定與所述修改相應(yīng)的持久化類型標(biāo)記;將包括所述被修改的業(yè)務(wù)對象的對象樹提交到服務(wù)器以請求持久化;在服務(wù)器端根據(jù)持久化標(biāo)記對所提交的對象樹實施修改,以得到最終的對象樹;以及將最終的對象樹持久化到數(shù)據(jù)庫中。
2.根據(jù)權(quán)利要求1的持久化方法,其特征在于所述實施修改的步驟包括遍歷該對象樹,當(dāng)遍歷經(jīng)過一個業(yè)務(wù)對象時,實施該業(yè)務(wù)對象的簡單屬性的修改;以及當(dāng)遍歷經(jīng)過一個關(guān)聯(lián)時,判斷與該關(guān)聯(lián)相關(guān)的父業(yè)務(wù)對象和子業(yè)務(wù)對象之間的關(guān)系,如果父業(yè)務(wù)對象和子業(yè)務(wù)對象之間是1∶1或n∶1的關(guān)系,則根據(jù)子對象的持久化類型不同,重新設(shè)置該父業(yè)務(wù)對象和子業(yè)務(wù)對象的關(guān)系;以及如果該父業(yè)務(wù)對象和子業(yè)務(wù)對象是1∶n或n∶n的關(guān)系,則先遞歸持久化子業(yè)務(wù)對象,然后在遞歸返回父業(yè)務(wù)對象時重新設(shè)置該父業(yè)務(wù)對象和子業(yè)務(wù)對象之間的關(guān)系。
3.根據(jù)權(quán)利要求1或2的持久化方法,其特征在于所述持久化類型包括新增,修改和刪除。
4.根據(jù)權(quán)利要求1的持久化方法,其特征在于所述客戶端通過統(tǒng)一的入口來進行所述請求。
5.根據(jù)權(quán)利要求4的持久化方法,其特征在于所述客戶端能夠通過該入口提交多個對象樹。
6.根據(jù)權(quán)利要求1的持久化方法,其特征在于所述持久化步驟是通過中間件工具進行的。
7.一種電信運營支撐系統(tǒng)的本地網(wǎng)資源管理系統(tǒng)中的業(yè)務(wù)對象查詢方法,其特征在于包括步驟在客戶端定義查詢請求,該查詢請求包括查詢表達(dá)式和關(guān)聯(lián)對象組裝字符串;發(fā)送查詢請求到服務(wù)器;服務(wù)器根據(jù)預(yù)定的查詢表達(dá)式映射將所接收的查詢請求中的查詢表達(dá)式轉(zhuǎn)換成針對相應(yīng)中間件的表達(dá)式;根據(jù)轉(zhuǎn)換的查詢表達(dá)式執(zhí)行查詢并根據(jù)關(guān)聯(lián)對象組裝字符串來生成查詢結(jié)果;以及將生成的查詢結(jié)果返回給客戶端。
8.根據(jù)權(quán)利要求7的查詢方法,其特征在于所述執(zhí)行查詢并生成查詢結(jié)果的步驟包括查詢出滿足查詢表達(dá)式的業(yè)務(wù)對象的集合;以及解析關(guān)聯(lián)對象組裝字符串,遞歸組裝業(yè)務(wù)對象樹,以生成查詢結(jié)果。
9.根據(jù)權(quán)利要求7或8的查詢方法,其特征在于所述查詢請求還包括資源命名拼裝字符串,并且所述執(zhí)行查詢并生成查詢結(jié)果的步驟包括解析資源命名拼裝字符串,以及得到業(yè)務(wù)對象類型和命名上下文名稱;根據(jù)該業(yè)務(wù)對象類型和命名上下文名稱從預(yù)定義的命名規(guī)則中找到對應(yīng)的命名規(guī)則;根據(jù)命名規(guī)則的前提條件,生成相應(yīng)拼裝的SQL語句,查詢出命名顯示子項;對所述命名顯示子項進行命名顯示名稱取值轉(zhuǎn)換;以及用經(jīng)過轉(zhuǎn)換后的名稱替換查詢結(jié)果中與所述業(yè)務(wù)對象類型相應(yīng)的對象的名稱。
10.根據(jù)權(quán)利要求8的查詢方法,其特征在于所述解析并遞歸組裝的步驟包括針對每個解析出的關(guān)聯(lián)子對象,根據(jù)預(yù)定映射關(guān)系得到相應(yīng)的設(shè)置方法;以及調(diào)用該設(shè)置方法,以設(shè)置該關(guān)聯(lián)子對象。
11.根據(jù)權(quán)利要78的查詢方法,其特征在于所述中間件為Toplink或Hibernate。
12.根據(jù)權(quán)利要求7的查詢方法,其特征在于所述查詢請求包括指定當(dāng)前查詢的頁數(shù)和每頁查詢的記錄數(shù)目的信息,并且所述查詢業(yè)務(wù)對象集合的步驟包括根據(jù)分頁號和每頁的數(shù)目進行查詢。
全文摘要
一種電信運營支撐系統(tǒng)的本地網(wǎng)資源管理系統(tǒng)中的業(yè)務(wù)對象的持久化方法,其特征在于包括步驟在客戶端對業(yè)務(wù)對象和/或其關(guān)聯(lián)業(yè)務(wù)對象進行修改,并針對所修改的業(yè)務(wù)對象設(shè)定與所述修改相應(yīng)的持久化類型標(biāo)記;將包括所述被修改的業(yè)務(wù)對象的對象樹提交到服務(wù)器以請求持久化;在服務(wù)器端根據(jù)持久化標(biāo)記對所提交的對象樹實施修改,以得到最終的對象樹;以及將最終的對象樹持久化到數(shù)據(jù)庫中。
文檔編號G06Q50/00GK101030271SQ20061005974
公開日2007年9月5日 申請日期2006年3月3日 優(yōu)先權(quán)日2006年3月3日
發(fā)明者萬宏謀, 張騏, 張玲, 章靖達(dá), 汪學(xué)強, 齊麟, 周俊鋒, 李娟 , 邰恩智, 李玉宏 申請人:中國電信股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1