專利名稱:基于遠程代理的分布式統一數據存取系統的制作方法
技術領域:
本發明屬于計算機數據處理中的數據訪問技術領域,具體涉及一種基于遠程代理的分布式統一數據存取系統。
背景技術:
目前各行各業的基于客戶端/服務器技術的數據存取系統非常多,對于分布式數據庫和分布式文件存取系統來說,它們常常將其業務數據存放在專有的數據庫服務器或文件服務器上。為了能夠察看與修改業務數據,各客戶端通常需要安裝與配置訪問各數據庫的客戶端工具(如SQL Server,Db2 Oracle都有專門的客戶包),這些訪問工具對使用客戶端的最終用戶而言實際上是不必要的,只是用來保證軟件的客戶端能夠訪問數據庫。而且,對最終用戶來說,這些客戶端訪問工具的安裝與配置較復雜,容易出錯,用戶也可能誤用某些客戶端訪問工具錯誤地修改了服務器中的數據等。另外,對于軟件開發商來說,如果數據放在不同廠商的數據庫中,更是很難以一種簡單易用的方法統一訪問。
如果將數據放在文件系統服務器上,現階段許多系統采用windows的目錄共享或Unix上的Samba,但是,這樣做的不足之處是軟件為了能夠修改數據,需要采用可寫的目錄共享,這樣太不安全,客戶可以在自己機器上直接修改數據文件,現在的許多病毒也攻擊可寫的共享目錄,因此安全性差。此外,目錄共享也不適合在Internet上使用。
發明內容
針對現有技術中存在的缺陷,本發明的目的是提供一種基于遠程代理的分布式統一數據存取系統,該系統能以一種簡便高效且安全易用的方式存取業務系統的數據,方便軟件的部署與維護,提高軟件的運行效率。
為達到以上目的,本發明采用的技術方案是一種基于遠程代理的分布式統一數據存取系統,包括存有分布式數據庫和分布式文件系統的服務器端和訪問數據的客戶端,該系統服務器端還設有代理服務器即數據訪問服務器,存有分布式數據庫和分布式文件系統的服務器端通過接口與代理服務器連接,代理服務器再通過客戶端調用接口與客戶端連接;該系統采用客戶端與服務器技術,將分布式數據庫訪問與分布式文件系統訪問的工具移動到統一的數據訪問服務器上,即實際訪問分布式數據庫和分布式文件系統的工具設置在代理服務器上,客戶端不再部署原數據庫或文件系統的客戶端工具,客戶端采用經過統一定義的訪問接口即客戶端調用接口通過代理服務器訪問實際數據庫與文件服務器中的業務數據,而不能用業務軟件之外的工具訪問業務數據。
進一步來說,設置在代理服務器上實際訪問分布式數據庫和分布式文件系統的工具包括1)數據庫訪問服務程序,該服務程序專門處理客戶端傳遞的數據庫訪問請求,然后調用相應數據庫的訪問接口,完成安全認證、數據庫連接池管理、多并發任務支持、數據庫事務SQL命令執行、SQL查詢結果集生成;2)文件訪問服務程序,該服務程序專門處理客戶端傳遞的文件系統訪問請求,然后調用相應文件訪問接口,完成安全認證、文件設備管理、目錄訪問、文件增加、刪除、復制。
更進一步,該系統采用自檢式的運行機制,系統服務采用一個主控進程,多個工作進程的模型,主控進程預先啟動幾個工作進程,然后接受客戶請求,分配給一個工作進程處理,工作進程如果必要,可以再將其分配給自身的一個線程處理,保證最大的并發度,主控進程自動檢查有問題的工作進程,終止它并重起一個工作進程。
客戶端與服務器之間的通信協議采用TCP/IP協議,并在其基礎上定義一個數據包協議,客戶端與服務器通信時先確定通信類型,然后將數據分解成一個或多個數據包,通過TCP/IP協議傳遞到另一方,對方先將數據包讀出來拼接為一塊完整的數據,解讀數據含義,執行要求的操作,返回相應的一個或多個數據包。
進一步,客戶端調用接口包括以下4個接口對象a)數據連接對象該對象用來連接服務器,通過用戶名與口令驗證用戶;b)數據庫訪問對象,該對象執行以下功能(1)對數據庫進行維護包括創建數據表,修改數據表和刪除數據表;(2)執行數據庫操作或命令;(3)獲取、打開數據庫操作結果集;
c)數據結果集對象該對象用來在結果集中上下滾動,獲取查詢的列信息及每列的值;d)文件系統訪問對象,該對象執行以下功能(1)查看文件系統信息,列出文件系統設備名稱、剩余空間;(2)列出目錄下的目錄與文件名稱、大小屬性;(3)創建或刪除目錄或文件;(4)查看文件內容。
該系統采用的客戶端與服務器端為統一數據存取服務器端和統一數據存取客戶端,統一數據存取客戶端是由一臺或多臺計算機組成,統一數據存取服務器端也是由一臺或多臺服務器組成,服務器端與代理服務器為不同的服務器或者為同一臺服務器。
該系統的客戶端即最終用戶的計算機終端統一定義了一組訪問接口,這組接口接受客戶要訪問的數據的特征信息,把它提交給服務器,并獲取服務器返回的數據內容。
該系統的代理服務器端根據客戶端傳遞的信息,訪問實際的數據,將這些實際內容按照客戶要求的方式返回給客戶端。
該系統的服務器端能夠同時響應多個客戶端的請求,客戶端也能夠同時訪問多個不同的服務器端。
該系統的客戶端與服務器端之間的通訊方式通過互聯網或局域以太網絡的方式連接。
本發明的效果在于將本發明所述的基于遠程代理的分布式統一數據存取技術應用于需要使用分布式數據庫或分布式文件系統存放業務數據的計算機系統中,實現了以一種簡便高效且安全易用的方式存取業務系統的數據,方便相關業務軟件的部署與維護,提高整個系統的運行效率。之所以具有這些效果,是因為這種方法的主要特點是制定了訪問分布式數據的統一方法,以一臺代理服務器實際訪問數據庫與文件服務器。所有的較困難部署都在這臺代理服務器上,最終客戶不能用業務軟件之外的工具非法訪問業務數據,也不需要額外安裝與部署業務軟件之外的任何客戶工具(如數據庫客戶端或分布式文件系統客戶端),保證了系統的安全性與易用性。
具體來說,相對于現有技術,本系統主要有以下一些優點1)保證了客戶端以簡單易用的方式訪問數據每個客戶端不需要配置任何數據庫工具,也沒有任何文件訪問客戶工具(用戶也不用關心這些)。軟件的安裝,數據庫的遷移都十分容易。
2)保證了服務器端數據的安全性所有的用戶都只能操作軟件限定的數據,不會發生數據被非法篡改的情況。對于文件訪問,由于功能僅局限于通過接口訪問,徹底防住了大部分通過目錄共享進行攻擊的病毒。
3)提高了軟件的效率由于實際數據處理都集中在性能較高的代理服務器上,只將較少的結果傳遞給客戶端,配置很一般的客戶端允許速度都可以接受,比客戶原來的同類軟件提高了效率。
圖1是基于遠程代理的分布式統一數據存取系統實現模型圖;圖2是數據訪問接口對象圖;圖3是數據包結構圖;圖4是服務器實現原理圖。
具體實施例方式
下面結合附圖和實施例對本發明作進一步的描述如圖1所示,一種基于遠程代理的分布式統一數據存取系統,由存有分布式數據庫1和分布式文件系統2的服務器端和訪問數據的客戶端3組成。此外,該系統還設有代理服務器即數據訪問服務器4,該系統采用客戶端/服務器技術,將數據庫訪問與分布式文件系統訪問移動到統一的數據訪問服務器4上,實際訪問分布式數據庫和分布式文件系統的工具設置在代理服務器4上,客戶端3不再部署原數據庫或文件系統的客戶端工具,客戶端采用經過統一定義的訪問接口通過代理服務器4訪問實際數據庫1與文件服務器2的業務數據,而不能用業務軟件之外的工具非法訪問業務數據。
具體來說,1)數據庫訪問服務程序在代理服務器上運行,該服務程序專門處理客戶端傳遞的數據庫訪問請求,然后調用相應數據庫的訪問接口,完成安全認證、數據庫連接池管理、多并發任務支持、數據庫事務SQL命令執行、SQL查詢結果集生成等;2)文件訪問服務程序在代理服務器上運行,該服務程序專門處理客戶端傳遞的文件系統訪問請求,然后調用相應文件訪問接口,完成安全認證、文件設備管理、目錄訪問、文件增加、刪除、復制等;3)該系統采用自檢式的運行機制,如圖4所示,系統服務采用一個主控進程,多個工作進程的模型,主控進程預先啟動幾個工作進程,然后接受客戶請求,分配給一個工作進程處理,工作進程如果必要,可以再將其分配給自身的一個線程處理,保證最大的并發度,主控進程自動檢查有問題的工作進程,終止它并重起一個工作進程;4)客戶端/服務器通信協議采用TCP/IP,在其基礎上定義一個數據包協議,數據包結構如圖3所示,包括數據包的長度、數據包的類型、數據包的狀態以及實際數據四個部分。客戶端與服務器通信時先確定通信類型,然后將數據分解成一個或多個數據包,通過TCP/IP傳遞到另一方,對方先將數據包讀出來拼接為一塊完整的數據,解讀數據含義,執行要求的操作,返回相應的一個或多個數據包;5)客戶端調用接口包括以下4個接口對象a)數據連接對象該對象用來連接服務器,通過用戶名與口令驗證用戶;b)數據庫訪問對象,該對象執行以下功能(1)對數據庫進行維護包括創建數據表,修改數據表和刪除數據表;(2)執行數據庫操作或命令;(3)獲取、打開數據庫操作結果集;c)數據結果集對象該對象用來在結果集中上下滾動,獲取查詢的列信息及每列的值;d)文件系統訪問對象,該對象執行以下功能(1)查看文件系統信息,列出文件系統設備名稱、剩余空間;(2)列出目錄下的目錄與文件名稱、大小屬性;(3)創建或刪除目錄或文件;(4)查看文件內容。
本實施例中,該系統采用客戶/服務器邏輯模型,分為統一數據存取服務器端和統一數據存取客戶端,可以分別有多個客戶端和多個服務器端,客戶端可以是不同的操作系統。
上述的客戶端為最終用戶的計算機終端,統一定義了一組訪問接口,這組接口接受客戶要訪問的數據的特征信息,如數據庫的查詢語句,文件的路徑信息,把它提交給服務器,獲取服務器返回的數據內容。
服務器端主要根據客戶端傳遞的信息,訪問實際的數據,如數據庫中的記錄,或文件系統中的相應文件,將這些實際內容按照客戶要求的方式返回給客戶端。本實施例中,服務器端能夠同時響應多個客戶端的請求,客戶端也能夠同時訪問多個不同的服務器端,客戶與服務器之間的通訊方式是通過互聯網方式連接。
下面結合本發明的兩個運用實例來說明本發明的顯著效果一、本發明應用于大百科出版社的實例大百科出版社的跨介質出版系統是客戶端/服務器結構的。
其服務器是Unix平臺的,數據庫與文件服務器都在Unix上,實際數據存儲在磁盤陣列上;客戶端在Windows平臺上。
通過采用本發明所述的系統,數據的存儲由Unix上的服務器統一管理,業務系統的部署集中在服務器上,所有的訪問數據的客戶(編輯)只部署了該系統中的一個客戶端,客戶不需要學習與使用數據庫客戶端,部署簡化到接近瀏覽器/服務器結構的程度。
大百科的跨介質出版系統在完成測試后遷移到實際運行環境中時,數據庫服務器與文件服務器都發生了變化,而幾十個編輯沒有受到任何影響,充分證實了本發明所述系統的簡單實用性。
二、本發明應用于商務印書館的實例商務印書館的辭書編撰系統通過采用本發明所述的基于遠程代理的分布式統一數據存取系統,實現了數據的安全訪問。
商務印書館原有的系統中,數據庫向每個最終客戶機公開,文件服務器上的目錄共享給客戶。經常發現數據庫蠕蟲與攻擊共享目錄的病毒,引起了嚴重的危害。
通過使用本技術,除了實現簡單高效的部屬外,由于數據庫與文件只開放給本發明的服務器,未發生過數據被非法篡改、文件服務器被攻擊現象,充分證實了發明所述系統的安全性。
權利要求
1.一種基于遠程代理的分布式統一數據存取系統,包括存有分布式數據庫和分布式文件系統的服務器端和訪問數據的客戶端,其特征在于該系統服務器端還設有代理服務器即數據訪問服務器,存有分布式數據庫和分布式文件系統的服務器端通過接口與代理服務器連接,代理服務器再通過客戶端調用接口與客戶端連接;該系統采用客戶端與服務器技術,將分布式數據庫訪問與分布式文件系統訪問的工具移動到統一的數據訪問服務器上,即實際訪問分布式數據庫和分布式文件系統的工具設置在代理服務器上,客戶端不再部署原數據庫或文件系統的客戶端工具,客戶端采用經過統一定義的訪問接口即客戶端調用接口通過代理服務器訪問實際數據庫與文件服務器中的業務數據,而不能用業務軟件之外的工具訪問業務數據。
2.如權利要求1所述的一種基于遠程代理的分布式統一數據存取系統,其特征是,設置在代理服務器上實際訪問分布式數據庫和分布式文件系統的工具包括1)數據庫訪問服務程序,該服務程序專門處理客戶端傳遞的數據庫訪問請求,然后調用相應數據庫的訪問接口,完成安全認證、數據庫連接池管理、多并發任務支持、數據庫事務SQL命令執行、SQL查詢結果集生成;2)文件訪問服務程序,該服務程序專門處理客戶端傳遞的文件系統訪問請求,然后調用相應文件訪問接口,完成安全認證、文件設備管理、目錄訪問、文件增加、刪除、復制。
3.如權利要求1或2所述的一種基于遠程代理的分布式統一數據存取系統,其特征是,該系統采用自檢式的運行機制,系統服務采用一個主控進程,多個工作進程的模型,主控進程預先啟動幾個工作進程,然后接受客戶請求,分配給一個工作進程處理,工作進程如果必要,可以再將其分配給自身的一個線程處理,保證最大的并發度,主控進程自動檢查有問題的工作進程,終止它并重起一個工作進程。
4.如權利要求3所述的一種基于遠程代理的分布式統一數據存取系統,其特征是,客戶端與服務器之間的通信協議采用TCP/IP協議,并在其基礎上定義一個數據包協議,客戶端與服務器通信時先確定通信類型,然后將數據分解成一個或多個數據包,通過TCP/IP協議傳遞到另一方,對方先將數據包讀出來拼接為一塊完整的數據,解讀數據含義,執行要求的操作,返回相應的一個或多個數據包。
5.如權利要求4所述的一種基于遠程代理的分布式統一數據存取系統,其特征是,客戶端調用接口包括以下4個接口對象a)數據連接對象該對象用來連接服務器,通過用戶名與口令驗證用戶;b)數據庫訪問對象,該對象執行以下功能(1)對數據庫進行維護包括創建數據表,修改數據表和刪除數據表;(2)執行數據庫操作或命令;(3)獲取、打開數據庫操作結果集;c)數據結果集對象該對象用來在結果集中上下滾動,獲取查詢的列信息及每列的值;d)文件系統訪問對象,該對象執行以下功能(1)查看文件系統信息,列出文件系統設備名稱、剩余空間;(2)列出目錄下的目錄與文件名稱、大小屬性;(3)創建或刪除目錄或文件;(4)查看文件內容。
6.如權利要求1所述的一種基于遠程代理的分布式統一數據存取系統,其特征是該系統采用的客戶端與服務器端為統一數據存取服務器端和統一數據存取客戶端,統一數據存取客戶端是由一臺或多臺計算機組成,統一數據存取服務器端也是由一臺或多臺服務器組成,服務器端與代理服務器為不同的服務器或者為同一臺服務器。
7.如權利要求1所述的一種基于遠程代理的分布式統一數據存取系統,其特征是該系統的客戶端即最終用戶的計算機終端統一定義了一組訪問接口,這組接口接受客戶要訪問的數據的特征信息,把它提交給服務器,并獲取服務器返回的數據內容。
8.如權利要求1所述的一種基于遠程代理的分布式統一數據存取系統,其特征是該系統的代理服務器端根據客戶端傳遞的信息,訪問實際的數據,將這些實際內容按照客戶要求的方式返回給客戶端。
9.如權利要求1所述的一種基于遠程代理的分布式統一數據存取技術,其特征是該系統的服務器端能夠同時響應多個客戶端的請求,客戶端也能夠同時訪問多個不同的服務器端。
10.如權利要求1所述的一種基于遠程代理的分布式統一數據存取技術,其特征是該系統的客戶端與服務器端之間的通訊方式通過互聯網或局域以太網絡的方式連接。
全文摘要
本發明涉及一種基于遠程代理的分布式統一數據存取系統,屬于計算機數據處理中的數據訪問技術領域。現有技術中,客戶端訪問數據庫時均需先配置各廠商的客戶端軟件,包含繁雜的安裝與配置數據庫步驟,且不能統一訪問;而對于文件服務器上的數據,現有方法采用可寫的目錄共享不太安全,容易受病毒攻擊。本發明所述的系統以一臺代理服務器實際訪問分布式數據庫與分布式文件系統服務器,而最終客戶端不能用業務軟件之外的工具訪問業務數據,也不需要額外安裝與部署業務軟件之外的任何客戶工具,如數據庫客戶端或分布式文件系統客戶端。采用本發明所述的系統,不僅實現了對分布式數據的統一訪問,而且保證了系統的安全性與易用性。
文檔編號H04L29/06GK1645799SQ20051000508
公開日2005年7月27日 申請日期2005年1月31日 優先權日2005年1月31日
發明者周祖勝, 翟因為 申請人:北京北大方正電子有限公司, 北京大學