[發明專利]基于統一接口的內存數據庫遠程并發訪問和界面管理方法無效
| 申請號: | 200710025309.6 | 申請日: | 2007-07-20 |
| 公開(公告)號: | CN101119363A | 公開(公告)日: | 2008-02-06 |
| 發明(設計)人: | 朱春光;張曉樂 | 申請(專利權)人: | 南京聯創科技股份有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;G06F9/44 |
| 代理公司: | 南京天翼專利代理有限責任公司 | 代理人: | 湯志武;朱戈勝 |
| 地址: | 210013江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 統一 接口 內存 數據庫 遠程 并發 訪問 界面 管理 方法 | ||
技術領域
本發明屬于電信BOSS系統中資料管理領域,特別是內存數據庫的訪問和管理。
背景技術
隨著電信運營商業務的不斷發展,在其運營支撐系統中,需要管理的資料呈“爆炸式”增長。資料信息的紛繁、龐大、難以管理、使用、擴展成為困擾開發維護人員的棘手問題。基于上述現狀,聯創公司研發了內存數據庫來管理資料,有效地解決部分問題。
然而新的問題又隨之出現了,在使用內存數據庫的過程中,我們發現,內存數據庫沒有一個統一的管理界面,資料的管理維護手段單一而復雜;那些需要訪問內存數據庫的應用必須運行在內存數據庫同一臺服務器上面,不適應分布式的計算環境,也不能做到“均衡負載”,浪費了很多系統資源。
目前主流數據庫產品之一的Oracle的附帶產品SQL*NET,SQL*NET是Oracle公司的遠程數據訪問報文式軟件,用于實現客戶機-服務器、服務器-服務器之間的通信。SQL*NET?TCP/IP在網絡通訊協議層中,對應ISO/OSI模式的第5層和第6層(即會話層和表示層),所以它運行還需要第三方的TCP/IP軟件的支持。
受此啟發,我們聯想到能不能利用類似的技術來解決內存數據庫所面對的矛盾和挑戰。
針對上述情況,聯創在新版綜合營帳系統中,在改進了內存數據庫的同時,研發了提供遠程訪問的組件MEMDB*NET和前臺管理界面MEMDB*ADMIN。用于解決分布式環境下遠程數據訪問和內存數據庫管理維護的問題。
發明內容
本發明目的是:針對現有技術中,內存數據庫不能適應現有應用分布式計算的特點,不支持遠程數據訪問,不支持并發訪問;沒有一個友好的管理界面,直觀而高效地管理和存取數據。開發出一個統一的遠程訪問接口,支持大批量并發的調用,在此基礎上開發一個WEB方式的管理界面,便于用戶直觀地觀察和管理內存數據庫。
本發明技術方案是:一種基于統一接口的內存數據庫遠程并發訪問和界面管理方法,采用SOCKET通信方法設置一套完整的報文式接口(MEMDB*NET協議),用戶根據協議規范,正確地組織報文用以存取內存數據,從而進行遠程訪問;
具體步驟是:基于TCP/IP的報文式網絡應用層協議MEMDB*NET,根據該協議組織報文,通過MEMDB*NET?SERVICE進程和內存數據庫進行間接的通訊,存取和管理內存數據庫;在此基礎上提供的MEMDB*ADMIN以WEB界面的方式管理內存數據庫:
編寫MEMDB*NET協議組件的方法是:
底層使用C++語言和socket技術,使用了多線程并發的方法,保證了統一的對外接口;
編寫MEMDB*ADMIN界面組件的方法是:
使用了TAPESTRY?WEB框架,這個組件被封裝在一個WAR包里面,通過發布和配置,使用本組件了。
遠程訪問的組件MEMDB*NET和前臺管理界面MEMDB*ADMIN提供了基于TCP/IP的報文式網絡應用層協議MEMDB*NET,用戶只要根據協議組織報文,就可以通過MEMDB*NET?SERVICE進程和內存數據庫進行間接地通訊,存取和管理內存數據庫。在此基礎上研發的MEMDB*ADMIN以WEB界面的方式,提供了友好的管理界面,增強系統的可視化程度。
具體而言:?
1.解決遠程訪問的問題
內存數據庫只有一個實例,而應用可能分布在其它服務器上面,因此我們利用SOCKET通信技術開發了一套完整的報文式接口(MEMDB*NET協議),用戶根據協議規范,正確地組織報文就可以存取內存數據了,解決了遠程訪問的問題。
支持多種主流計算機語言來調用本組件
Java調用
本組件是輕量級的組件,在你的java應用的classpath中加入jar包memdb.jar就可以了。
然后引入其中的類,就可以訪問內存數據庫了
代碼片斷1:
TCPIPConnection?connection=new?TCPIPConnection(ipAddress,port);
connection.setReceiveTimeout(20*1000);
session=new?Session(connection);
systemId=getParam(systemId);
password=getParam(password);
request.setSystemId(systemId);
request.setPassword(password);
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京聯創科技股份有限公司,未經南京聯創科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710025309.6/2.html,轉載請聲明來源鉆瓜專利網。





