亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于云服務(wù)的異構(gòu)數(shù)據(jù)庫管理系統(tǒng)的設(shè)計與實現(xiàn)

        2018-02-13 01:38:12石明翔田濟瑋李文齊郭學節(jié)
        計算機時代 2018年12期
        關(guān)鍵詞:云服務(wù)

        石明翔 田濟瑋 李文齊 郭學節(jié)

        摘? 要: 為了解決企業(yè)中由于異構(gòu)數(shù)據(jù)庫增多而帶來的管理難度增加、運維成本高漲等問題,設(shè)計實現(xiàn)了基于云服務(wù)的異構(gòu)數(shù)據(jù)庫管理系統(tǒng),采用面向服務(wù)的SOA架構(gòu),分為應(yīng)用層、云數(shù)據(jù)庫應(yīng)用服務(wù)接口、任務(wù)調(diào)度層、云數(shù)據(jù)庫數(shù)據(jù)處理接口和云數(shù)據(jù)庫等五層,能夠?qū)ocker環(huán)境下的異構(gòu)數(shù)據(jù)庫完成創(chuàng)建、管理、讀寫、分析等操作,為用戶提供了一種高效方便的異構(gòu)數(shù)據(jù)庫管理工具。

        關(guān)鍵詞: 云服務(wù); 異構(gòu)數(shù)據(jù)庫; Docker; 數(shù)據(jù)庫管理系統(tǒng)

        中圖分類號:TP391? ? ? ? ? 文獻標志碼:A? ? ?文章編號:1006-8228(2018)12-25-04

        Abstract: In order to solve the problems such as increased management difficulty and high operation and maintenance cost caused by the increase of heterogeneous databases in enterprises, this paper designed and implemented a cloud service based heterogeneous database management system. The system adopts a service-oriented SOA architecture, which is divided into five layers, namely, application layer, cloud database application service interface, task scheduling layer, cloud database data processing interface and cloud database. It is able to complete the creation, management, reading and writing, analysis and other operations of heterogeneous database in Docker environment, providing users with an efficient and convenient heterogeneous database management.

        Key words: cloud service; heterogeneous database; Docker; DBMS

        0 引言

        近年來,隨著信息化建設(shè)不斷深入,各企事業(yè)單位的數(shù)據(jù)信息呈幾何倍數(shù)增長,從一兩個數(shù)據(jù)庫增長為多個甚至幾十個不同種類、不同結(jié)構(gòu)的數(shù)據(jù)庫,而庫與庫之間又有很多業(yè)務(wù)交叉點,一個數(shù)據(jù)庫的數(shù)據(jù)更新可能會影響到多個數(shù)據(jù)庫。同時,數(shù)據(jù)庫的多樣化帶來了諸多問題:一是不同種類的數(shù)據(jù)庫對系統(tǒng)的軟硬件環(huán)境有著不同要求;二是數(shù)據(jù)庫的異構(gòu)也增加了管理難度,要求管理人員不僅要熟悉多種數(shù)據(jù)庫的接口,而且在管理不同數(shù)據(jù)庫時也要投入大量時間。這些問題導(dǎo)致了數(shù)據(jù)庫運維成本不斷增加,異構(gòu)數(shù)據(jù)庫的整合和管理變得迫在眉睫。

        本文主要依托于Docker技術(shù),將多種不同種類的主流數(shù)據(jù)庫(Oracle、SqlServer、Mysql)部署在云平臺上,并開發(fā)基于云服務(wù)的異構(gòu)數(shù)據(jù)庫管理系統(tǒng),能夠?qū)Ξ悩?gòu)數(shù)據(jù)庫完成快速創(chuàng)建、表數(shù)據(jù)快速錄入、全文檢索、一鍵查詢、查詢模版管理、多表查詢、統(tǒng)計分析、導(dǎo)入導(dǎo)出等操作。系統(tǒng)還設(shè)置了用戶管理、權(quán)限管理、選擇數(shù)據(jù)管理、分級數(shù)據(jù)管理等主要模塊,增加了系統(tǒng)安全性,不但為用戶提供了一種清晰、方便的異構(gòu)數(shù)據(jù)庫管理分析工具,還對提高數(shù)據(jù)庫的使用效率,降低企業(yè)人工成本有著很高的實際意義。

        1 關(guān)鍵技術(shù)研究與介紹

        本系統(tǒng)利用Java語言進行開發(fā),采用面向服務(wù)的SOA架構(gòu),主要涉及云數(shù)據(jù)庫虛擬化、數(shù)據(jù)交換格式、云數(shù)據(jù)庫服務(wù)應(yīng)用接口開發(fā)等技術(shù)。

        1.1 云數(shù)據(jù)庫虛擬化

        將多種異構(gòu)數(shù)據(jù)庫部署到云端一般使用虛擬化技術(shù),傳統(tǒng)是將不同的數(shù)據(jù)庫安裝到對應(yīng)的虛擬機中,但虛擬機技術(shù)實際上是在原有操作系統(tǒng)中安裝獨立的OS并利用Hypervisor技術(shù)虛擬出CPU、內(nèi)存、IO等設(shè)備來達到資源隔絕的目的,因此,存在耗費資源較大、訪問內(nèi)存效率較低等問題[1-2]。

        而近年出現(xiàn)的虛擬容器與虛擬機有著完全不同的實現(xiàn)原理,以Docker為例,它不必再安裝獨立的OS,而是使用更輕量級的LXC(Linux Containers)將虛擬機進程偽裝為HOST進程,并利用命名空間(NameSpace)和群組控制(Cgroups)完成各個Docker進程間的隔離及資源分配,并且所有Docker共享宿主機的內(nèi)核與硬件[3]。虛擬容器相比虛擬機有著讀寫內(nèi)存效率高、啟動時間快及資源利用率高等優(yōu)勢,同時獨有的鏡像發(fā)布也使應(yīng)用的安裝、備份和遷移變得更為便捷[4],因此本文使用Docker技術(shù)將Mysql、Oracle、SqlServer三種數(shù)據(jù)庫部署到云端。

        1.2 數(shù)據(jù)交換格式

        JSON(JavaScript Object Notation)是由歐洲計算機協(xié)會于1999年制定的ECMAScript中的一個子集,采用輕量級的“名值對”集合來表示和存儲數(shù)據(jù)[5],具備跨平臺、跨語言、易解析、體積小等優(yōu)點,比傳統(tǒng)的XML更適合大數(shù)據(jù)量的網(wǎng)絡(luò)傳輸[6],因此本文選用JSON作為異構(gòu)數(shù)據(jù)庫結(jié)果的表示格式。

        1.3 云數(shù)據(jù)庫服務(wù)接口開發(fā)

        本文使用基于HTTP協(xié)議的輕量級架構(gòu)Restful WebService開發(fā)應(yīng)用服務(wù)層接口,相比于傳統(tǒng)的SOAP WebService具有簡潔、高效、操作性強等優(yōu)勢[7],并且Restful是一種面向資源的服務(wù),其創(chuàng)建、獲取、修改、刪除資源的操作對應(yīng)著HTTP協(xié)議提供的PUT、GET、POST及DELETE方法,這種針對WEB應(yīng)用的設(shè)計方式,可以減小系統(tǒng)復(fù)雜度和耦合性,提升軟件的可擴展性[8]。

        2 系統(tǒng)架構(gòu)及工作流程

        本系統(tǒng)由應(yīng)用服務(wù)層、云數(shù)據(jù)庫應(yīng)用服務(wù)接口、任務(wù)調(diào)度層、云數(shù)據(jù)庫處理接口和Docker化的云數(shù)據(jù)庫層等三層兩個接口構(gòu)成,系統(tǒng)架構(gòu)如圖1所示。

        <E:\方正創(chuàng)藝5.1\Fit201812\圖\smx圖1.tif>

        圖1? 系統(tǒng)架構(gòu)圖

        用戶從應(yīng)用層發(fā)出的操作請求首先提交到云數(shù)據(jù)庫應(yīng)用服務(wù)接口,該接口會利用異構(gòu)語義解析技術(shù)將用戶請求解析成不同的邏輯操作集合并發(fā)送到任務(wù)調(diào)度層。任務(wù)調(diào)度層會將這些集合轉(zhuǎn)換為對應(yīng)的處理任務(wù)后發(fā)送給云數(shù)據(jù)庫處理接口,該接口會將不同的子任務(wù)按對應(yīng)數(shù)據(jù)源分發(fā)到不同數(shù)據(jù)庫進行執(zhí)行,最后將返回結(jié)果利用異構(gòu)結(jié)果合成技術(shù)進行轉(zhuǎn)換后以JSON格式發(fā)送至客戶端。

        3 系統(tǒng)實現(xiàn)

        3.1 應(yīng)用層

        應(yīng)用層為系統(tǒng)前端,主要負責與用戶進行直接交互,包括創(chuàng)建服務(wù)、創(chuàng)建數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)表、數(shù)據(jù)管理、分級表管理、選擇表管理、數(shù)據(jù)查詢、多表查詢、統(tǒng)計分析、用戶角色管理等功能,可以把用戶的操作請求通過Http協(xié)議發(fā)送到云數(shù)據(jù)庫應(yīng)用服務(wù)接口進行處理,并將反饋結(jié)果呈現(xiàn)給用戶。

        3.2 云數(shù)據(jù)庫應(yīng)用服務(wù)接口

        云數(shù)據(jù)庫應(yīng)用服務(wù)接口位于服務(wù)器端,以Restful WebService形式統(tǒng)一向外提供調(diào)用服務(wù),主要包括用戶操作語句解析和查詢結(jié)果表示等功能。本接口的核心為操作語句解析模塊,當模塊收到應(yīng)用層發(fā)來的操作請求后,會根據(jù)不同的數(shù)據(jù)源將請求解析成對應(yīng)的邏輯操作子集合(例如:選擇、連接、聚合等),并發(fā)送到任務(wù)調(diào)度層進行執(zhí)行,待執(zhí)行結(jié)果返回后再以JSON格式回傳給應(yīng)用層。其工作流程如圖2所示。

        3.3 任務(wù)調(diào)度層

        任務(wù)調(diào)度層為系統(tǒng)緩沖層,主要負責接收云數(shù)據(jù)庫應(yīng)用服務(wù)接口發(fā)送來的邏輯操作子集合,并根據(jù)對應(yīng)的數(shù)據(jù)源將其轉(zhuǎn)換為處理任務(wù)后進行判斷:如果是非實時任務(wù)則放入緩沖區(qū)等待;如果是實時任務(wù)則放入執(zhí)行區(qū),并依據(jù)先到先服務(wù)原則(FIFO)交由下一層進行處理。其處理流程如圖3所示。

        任務(wù)調(diào)度層的主要功能有以下。

        ⑴ 任務(wù)區(qū)管理

        任務(wù)區(qū)主要包括執(zhí)行區(qū)(實時任務(wù)排隊)和緩沖區(qū)(非實時任務(wù)排隊)。操作任務(wù)被分類后加入相應(yīng)任務(wù)區(qū)中排隊等待,如有新的任務(wù)提交或處理,任務(wù)管理模塊會更新隊列結(jié)構(gòu)。

        ⑵ 任務(wù)提取

        任務(wù)區(qū)中的數(shù)據(jù)結(jié)構(gòu)采用隊列(先進先出)結(jié)構(gòu),每當有新的請求到來時,任務(wù)管理模塊會從對應(yīng)的隊列頭部提取任務(wù)并提交。

        ⑶ 處理非實時任務(wù)

        所有的非實時任務(wù)都會有時間戳屬性,當執(zhí)行時間到達時,任務(wù)管理模塊會將該任務(wù)轉(zhuǎn)換為實時任務(wù)后提交給判斷模塊進行處理。

        ⑷ 處理實時任務(wù)

        為了降低下層數(shù)據(jù)庫處理接口的負載,所有實時任務(wù)在被處理前會加入任務(wù)執(zhí)行區(qū),任務(wù)管理模塊會依據(jù)下層接口的處理速度,從執(zhí)行區(qū)取出待處理任務(wù)進行提交。

        3.4 云數(shù)據(jù)庫數(shù)據(jù)處理接口

        該層為整個系統(tǒng)的核心,負責將上層執(zhí)行任務(wù)解析成不同數(shù)據(jù)庫的sql語句并執(zhí)行,再將執(zhí)行結(jié)果合成后上傳到任務(wù)調(diào)度層。主要有異構(gòu)語義映射和查詢結(jié)果合成兩個模塊。

        ⑴ 異構(gòu)語義映射

        目前對關(guān)系數(shù)據(jù)庫的操作主要通過結(jié)構(gòu)化查詢語言(SQL)來完成,但是不同數(shù)據(jù)庫產(chǎn)商在實現(xiàn)時并沒有嚴格執(zhí)行ANSI(美國國家標準化組織)標準,這就導(dǎo)致不同數(shù)據(jù)庫所支持的SQL語句在很多細節(jié)方面有所差異,以查看表結(jié)構(gòu)為例,SqlServer語法是exec sp_help @tablename,Oracle語法為desc @tablename,MySql語法為describe @tablename。此外,三種數(shù)據(jù)庫還在修改表名、修改列名、添加約束以及各種函數(shù)使用上存在諸多差異[9]。

        為了能讓用戶操作被不同數(shù)據(jù)庫正確執(zhí)行,異構(gòu)語義映射模塊可以將上層傳入的操作任務(wù)通過識別后轉(zhuǎn)換為對應(yīng)數(shù)據(jù)庫所支持的sql語句,并交由相應(yīng)的數(shù)據(jù)源進行執(zhí)行。其核心類圖如圖4所示。

        ① DBConnection類:數(shù)據(jù)庫連接類。getConnection方法用于返回不同數(shù)據(jù)庫的連接。

        ② DBOperate接口:數(shù)據(jù)庫操作接口。convertSql用法用于將操作任務(wù)轉(zhuǎn)換為不同數(shù)據(jù)庫的sql語句,execQuery方法用于執(zhí)行查詢操作,execNonQuery方法用于執(zhí)行刪除、更新等非查詢操作。DBOperate接口的實現(xiàn)類為MySqlOperate、OracleOperate和SqlServerOperate,主要用于對MySql、Oracle、SqlServer等數(shù)據(jù)庫進行操作。

        ③ SemanticMapping類:異構(gòu)語義映射類。receiveTask方法用于接收上一層發(fā)送的數(shù)據(jù)庫操作任務(wù),operate方法用于執(zhí)行操作任務(wù),sendResult方法用于將數(shù)據(jù)庫查詢結(jié)果返回任務(wù)調(diào)度層。

        ⑵ 查詢結(jié)果合成

        查詢結(jié)果合成模塊主要將異構(gòu)數(shù)據(jù)庫返回的結(jié)果合成為具有相同格式的結(jié)果集,再以JSON形式返回給任務(wù)調(diào)度層。其主要步驟如下。

        ① 查詢結(jié)果合成模塊通過MySqlOperate、OracleOperate、SqlServerOperate等數(shù)據(jù)庫操作類獲取異構(gòu)數(shù)據(jù)源數(shù)據(jù)。

        ② 利用Mybatis框架中的ORM技術(shù)將數(shù)據(jù)庫表映射為Java的POJO對象,其中數(shù)據(jù)表的列被映射為對象屬性,數(shù)據(jù)表的各行記錄被轉(zhuǎn)換為各個持久化對象。

        ③ 利用基于哈希表的集合差集算法去除記錄集中的重復(fù)值并進行合并。算法的核心代碼如下:

        HashMap differenceFilter(HashMap<String, String>

        map1,HashMap map2) {

        HashMap resultMap=(HashMap)map1.clone();

        //將map1中的所有記錄拷貝至resultMap

        Iterator<Entry<String, Integer>> it1=

        map1.entrySet().iterator();

        while(it1.hasNext()) { //通過遍歷,找出存在于map2但不

        存在于map1中的所有記錄,并添加到resultMap中

        Entry<String, String> entry1=it1.next();

        String value2=tempMap.get(entry1.getKey());

        if(value2==null||(!value2.equals(entry1.getValue()))) {

        resultMap.put(entry1.getKey(),entry1.getValue());

        }

        }

        return resultMap;

        }

        ④ 將最終結(jié)果表示為JSON格式,返回給任務(wù)調(diào)度層。

        4 結(jié)束語

        本文依托于云計算平臺,利用Docker虛擬容器技術(shù)將三種不同的異構(gòu)數(shù)據(jù)庫部署到云端,并綜合應(yīng)用Java、JSON、Restful Webservice和Mybatis等技術(shù)設(shè)計并實現(xiàn)了“基于云服務(wù)的異構(gòu)數(shù)據(jù)庫管理系統(tǒng)”,用于對異構(gòu)數(shù)據(jù)庫管理和操作。在系統(tǒng)實現(xiàn)過程中,重點解決了異構(gòu)語義映射、異構(gòu)結(jié)果合成、異構(gòu)數(shù)據(jù)信息表示等技術(shù)難題。通過測試對比分析證明了系統(tǒng)無論是在運行效率還是可擴展性上都有良好的表現(xiàn)。

        參考文獻(References):

        [1] 柯偉.異構(gòu)數(shù)據(jù)庫中表的相似性查詢系統(tǒng)設(shè)計與實現(xiàn)[D].華中科技大學,2016.

        [2] 汪青峰.面向多業(yè)務(wù)的異構(gòu)數(shù)據(jù)庫中間件的設(shè)計與實現(xiàn)[D].北京郵電大學,2016.

        [3] 杜寶麗.基于Docker的云數(shù)據(jù)庫服務(wù)系統(tǒng)的設(shè)計與實現(xiàn)[D].西安電子科技大學,2015.

        [4] 王男.面向證券業(yè)務(wù)系統(tǒng)的虛擬化測試平臺的研究[D].吉林大學,2015.

        [5] JSON[EB/OL].http://json.org/json-zh.html

        [6] XML[EB/OL].https://en.wikipedia.org/wiki/XML

        [7] 王曉瑞.基于SOA的分布式異構(gòu)數(shù)據(jù)庫數(shù)據(jù)信息同步系統(tǒng)的研究與應(yīng)用[D].河南大學,2016.

        [8] 萬一東,謝俊岱.云計算環(huán)境下異構(gòu)數(shù)據(jù)庫整合技術(shù)的研究與實現(xiàn)[J].電腦知識與技術(shù),2013.5:3232-3235

        [9] 熊現(xiàn).基于JAVA_XML 的異構(gòu)數(shù)據(jù)同步系統(tǒng)的設(shè)計和實現(xiàn)[D].上海交通大學,2007.

        猜你喜歡
        云服務(wù)
        淺析如何拓展教育管理信息化云服務(wù)
        亞太教育(2016年36期)2017-01-17 18:19:38
        云會計在中小企業(yè)中的應(yīng)用研究
        云服務(wù)信息存儲技術(shù)在防雷安全監(jiān)管中的應(yīng)用
        基于會計服務(wù)的SWOT分析
        廣電網(wǎng)絡(luò)前端業(yè)務(wù)融合云服務(wù)平臺設(shè)計
        互聯(lián)網(wǎng)背景下傳媒業(yè)的轉(zhuǎn)型
        云服務(wù)環(huán)境中低碳型教育信息化模式研究
        中國市場(2016年38期)2016-11-15 00:28:18
        云服務(wù)環(huán)境下的高校協(xié)同創(chuàng)新研究
        基于云服務(wù)的加密式門禁系統(tǒng)設(shè)計
        云服務(wù)背景下的圖書館知識建構(gòu)管理模型
        科技視界(2016年23期)2016-11-04 11:42:26
        日韩精品一区二区三区四区| 在线观看日本一区二区三区四区 | 久久天堂av色综合| 久久蜜臀av一区三区| 一区二区三区日本视频| 亚洲国产一区二区三区精品| 日韩综合无码一区二区| 麻豆精品久久久久久久99蜜桃| 精品国产18久久久久久| 久久亚洲成a人片| 夫妻一起自拍内射小视频| 色噜噜色哟哟一区二区三区| 日韩人妻无码精品一专区二区三区| 久久久久亚洲av片无码下载蜜桃 | 国产98色在线 | 国产| 亚洲av日韩av无码污污网站| 香蕉成人啪国产精品视频综合网| 韩日无码不卡| 久久蜜臀av一区三区| 国产亚洲成性色av人片在线观| 国产乱人伦av在线a麻豆| 亚洲日本va中文字幕| 国产日b视频| 日本一区二区不卡超清在线播放 | 亚洲第一黄色免费网站| 亚洲国产精品无码久久一区二区| 人妻熟女一区二区三区app下载| 无码中文字幕在线DVD| 亚洲素人日韩av中文字幕| 中文字幕av高清人妻| 国产成人无码a区在线观看视频 | 国产国拍精品亚洲av在线观看| 国产av天堂亚洲国产av天堂| 国产zzjjzzjj视频全免费| 亚洲午夜无码AV不卡| 亚洲中字永久一区二区三区| 国产一区二区三区激情视频| 亚洲日韩一区二区一无码| 國产AV天堂| 少妇爽到爆视频网站免费| 女同视频一区二区在线观看 |