本發(fā)明涉及計算機數據交換技術領域,尤其涉及一種數據交換方法、裝置及系統(tǒng)。
背景技術:
目前,跨系統(tǒng)的數據交換方案是首先通過對源數據庫直接查詢得到全量數據或增量數據,再將查詢得到的全量數據或增量數據傳輸至目標系統(tǒng);目標系統(tǒng)將獲取的數據與自身擁有的數據作比對,提取出變更的數據,然后將變更的數據和自身擁有的數據合并。
該種數據交換方案存在如下缺陷:第一、對源數據庫系統(tǒng)直接查詢得到全量數據或增量數據,對源數據庫和目標系統(tǒng)的壓力大,甚至直接影響源數據庫或目標系統(tǒng)正常運行,且數據交換的開發(fā)量隨著系統(tǒng)規(guī)模線性增大,對于大型項目的開發(fā)周期和風險驟增;第二、與源數據庫的耦合性低,需要花費大量精力對源數據庫設計進行調研;第三、僅限于針對現(xiàn)有項目需求做臨時開發(fā),整體架構缺乏足夠的靈活性和擴展性,當后續(xù)其他項目有相關需求時,仍需重新實現(xiàn);第四、對于數據交換的相關變更,不能自動處理,需由開發(fā)人員或維護人員手動處理,大大增加人力成本。
綜上分析,現(xiàn)有技術中缺乏在一種可耦合多種類型的源數據庫,同時對源數據庫和目標系統(tǒng)的資源占用少且可自動交換數據的數據交換技術方案。
技術實現(xiàn)要素:
本發(fā)明實施例提供一種數據交換方法、裝置及系統(tǒng),以解決現(xiàn)有技術中不存在可耦合多種類型的源數據庫、且對源數據庫和目標系統(tǒng)的資源占用少且可自動交換數據的數據交換技術方案。
根據本發(fā)明實施例提供的一種數據交換方法,包括:
獲取一源數據庫的日志文件;
通過所述日志文件提取所述源數據庫的操作記錄,并將所述操作記錄轉換為預設格式的操作記錄;
根據所述預設格式的操作記錄的字段將所述預設格式的操作記錄寫入對應的內存隊列中,供目標系統(tǒng)從所述內存隊列中提取預設格式的操作記錄并執(zhí)行,其中所述目標系統(tǒng)為分布式數據庫。
在一個實施例中,所述操作記錄中包括源數據庫的表的結構信息,所述方法還包括:
從所述預設格式的操作記錄中獲取所述源數據庫的表的結構信息,并發(fā)送至所述目標系統(tǒng),以使所述目標系統(tǒng)根據所述源數據庫的表的結構信息生成對應的表。
在一個實施例中,所述預設格式的操作記錄包括以下字段:源數據庫的庫名、源數據庫中包含的表的表名、以及源數據庫中運行的實例的實例名。
根據本發(fā)明實施例提供的一種數據交換裝置,包括:
獲取單元,用于獲取一源數據庫的日志文件;
轉換單元,用于通過所述日志文件提取所述源數據庫的操作記錄,并將所述操作記錄轉換為預設格式的操作記錄;
寫入單元,用于根據所述預設格式的操作記錄的字段將所述預設格式的操作記錄寫入對應的內存隊列中,供目標系統(tǒng)從所述內存隊列中提取預設格式的操作記錄并執(zhí)行,其中,所述目標系統(tǒng)為分布式數據庫。
在一個實施例中,所述操作記錄中包括源數據庫的表的結構信息;所述獲取單元還用于,從所述操作記錄中獲取所述源數據庫的表的結構信息;所述寫入單元還用于,將所述源數據庫的表的結構信息寫入所述內存隊列中,以使所述目標系統(tǒng)根據所述源數據庫的表的結構信息生成對應的表。
在一個實施例中,所述轉換單元轉換的預設格式的操作記錄包括以下字段:源數據庫的庫名、源數據庫中包含的表的表名、以及源數據庫中運行的實例的實例名。
根據本發(fā)明實施例提供的一種數據交換系統(tǒng),包括:
源數據庫,其日志文件中記錄有操作所述源數據庫所生成的操作記錄;
數據交換裝置,用于獲取所述源數據庫的日志文件,通過所述日志文件提取所述操作記錄并將預設格式的操作記錄寫入內存隊列;
目標系統(tǒng),用于從所述內存隊列中提取所述預設格式的操作記錄,執(zhí)行所述預設格式的操作記錄中包含的操作,其中所述目標系統(tǒng)為分布式數據庫。
在一個實施例中,所述數據交換裝置還用于,從所述操作記錄中獲取所述源數據庫的表的結構信息,將所述源數據庫的表的結構信息寫入所述內存隊列中,以使所述目標系統(tǒng)根據所述源數據庫的表的結構信息生成對應的表。
在一個實施例中,所述操作記錄中還包括源數據庫的表的結構信息;所述數據交換裝置還用于,將所述操作記錄轉換為預設格式的操作記錄,所述預設格式的操作記錄包括以下字段:源數據庫的庫名、源數據庫中包含的表的表名、以及源數據庫中運行的實例的實例名。
在一個實施例中,所述目標系統(tǒng)采用多線程的方式從所述內存隊列中提取操作記錄,和/或所述目標系統(tǒng)采用多線程的方式執(zhí)行所述操作記錄中包含的操作。
本發(fā)明實施例采用的上述至少一個技術方案能夠達到以下有益效果:
本發(fā)明提供的數據交換方法、裝置及系統(tǒng),從獲取的源數據庫的日志文件中提取操記錄并轉換預設格式的操作記錄,根據轉換的預設格式的操作記錄更新目標系統(tǒng),在本技術方案中,將提取的操作記錄轉換為預設格式的操作記錄,使本方案能匹配多種類型的源數據庫及目標系統(tǒng),本技術方案可適用于多種類型的源數據庫,無需開發(fā)人員或維護人員手動處理便可完成跨系統(tǒng)數據交換,具有擴展性好、對源數據庫系統(tǒng)和目標數據庫系統(tǒng)的資源占用少的優(yōu)點。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1為根據本發(fā)明實施例的線性通信流程的示意圖;
圖2為本發(fā)明實施例中一種數據交換方法的流程圖;
圖3為本發(fā)明實施例中源數據庫與目標系統(tǒng)的數據交換過程的示意圖;
圖4為本發(fā)明實施例中一種數據交換裝置的結構示意圖;
圖5為本發(fā)明實施例中數據交換裝置兼容多種類型的源數據庫和目標系統(tǒng)的結構示意圖;
圖6為本發(fā)明實施例中一種數據交換系統(tǒng)的結構示意圖;
圖7為本發(fā)明實施例中另外一種數據交換系統(tǒng)的結構示意圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明具體實施例及相應的附圖對本發(fā)明技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
以下結合附圖,詳細說明本發(fā)明各實施例提供的技術方案。
圖1示出了根據本發(fā)明實施例的完整的線性通信的過程。如圖1所示,包括有:源數據庫11、獲取單元121、轉換單元122、寫入單元123、內存隊列13、獲取單元141、轉換單元142、寫入單元143和目標系統(tǒng)15。其中,獲取單元121獲取源數據庫11的日志文件,轉換單元122提取該日志文件中包含的操作記錄,并將提取的操作記錄轉換為預設格式的操作記錄,寫入單元123將該預設格式的操作記錄寫入內存隊列13(In-memory Queue)中。其中,所述預設格式為一種統(tǒng)一的寫入數據庫事件的一種形式,其數據序列化和反序列化采用Google Protobf協(xié)議;該預設格式的操作記錄登記數據庫時間發(fā)生的時間、源數據庫的庫名、表名、源數據庫中的數據更改及DDL(Data Ddfination Language,數據定義語言)變更等。
獲取單元141從內存隊列13中提取預設格式的操作記錄,寫入單元143執(zhí)行預設格式的操作記錄中包含的操作并將執(zhí)行結果寫入目標系統(tǒng)15。其中,當需要對從內存隊列13中提取的操作記錄進行格式轉換等操作時,還可以包括轉換單元142,轉換單元142將獲取單元141從內存隊列中提取的預設格式的操作記錄轉換為目標格式的操作記錄,以供寫入單元143執(zhí)行該目標格式的操作記錄中包含的操作并將執(zhí)行結果寫入目標系統(tǒng),其中,該目標格式依據需求而進行設定。
其中,獲取單元121與獲取單元141、轉換單元122與轉換單元142、以及寫入單元123與寫入單元143的結構、功能及工作原理類似。
實施例1
根據本發(fā)明實施例提供一種數據交換方法,如圖2所述,該方法包括以下步驟:
步驟S201、獲取一源數據庫的日志文件;
源數據庫的日志文件中保存有對源數據庫的操作記錄,如對源數據庫中的數據進行的類似插入、刪除等類型的操作及對源數據庫進行操作的時間等,或者對源數據庫執(zhí)行的其他操作信息,如回滾(rollback操作)等。
在獲取源數據庫的日志文件時,記錄該次獲取位點,在下次因與同一目標系統(tǒng)執(zhí)行數據交換而獲取該源數據庫的日志文件時,從最后一個獲取位點開始獲取源數據庫的日志文件。如此,使獲取時間縮短,同時,提高數據交換效率。
步驟S203、通過所述日志文件提取所述源數據庫的操作記錄,并將所述操作記錄轉換為預設格式的操作記錄;
可以設置時間段,在日志文件中提取該時間段內操作源數據庫生成的操作記錄,以將該時間段內對源數據庫進行的操作更新至目標系統(tǒng)中,如:在2016.1.1上午10:00-2016.1.1上午10:05之間對源數據庫的操作包括:插入十條數據,刪除了另外五條數據。若設置的時間段為2016.1.1上午10:00-2016.1.1上午10:05,則從日志文件中提取的操作記錄包括插入十條數據,及刪除了另外五條數據。同時也可以不設置時間段,通過日志文件提取操作源數據庫生成的操作記錄,將對源數據庫的操作更新至目標系統(tǒng)。
在提取操作記錄時,可記錄每次提取的時間點,在下次提取時,從最后一個時間點開始提取,如此,便可提高提取日志文件的效率,同時擴大了數據交換效率。
將提取的操作記錄轉換為預設格式的操作記錄,以使本數據交換方法可以耦合不同類型的源數據庫,如SQL Server、Oracle等。其中,該預設格式的操作記錄對多種類型的數據庫透明,即,多種類型的數據庫均能識別該預設格式是操作記錄,因此,該預設格式的操作記錄可以被多種類型的目標系統(tǒng)識別,提高了數據交換方法與源數據庫、目標系統(tǒng)的耦合率。
步驟S205、根據所述預設格式的操作記錄的字段將所述預設格式的操作記錄寫入對應的內存隊列中,以使目標系統(tǒng)提取所述內存隊列中的預設格式的操作記錄并執(zhí)行,其中所述目標系統(tǒng)為分布式數據庫。
在此涉及到根據預設格式的操作記錄的字段將提取的預設格式的操作記錄寫入對應的內存隊列中;首先,根據預設格式的操作記錄的字段對預設格式的操作記錄進行分類,然后根據分類結果將其寫入對應的內存隊列,以供目標系統(tǒng)從相應的內存隊列中提取預設格式的操作記錄并執(zhí)行。如庫名為Basic的數據庫中,包括一個表名為student的表,還包括一個名稱為grade的表,兩個表相同的列為學生的學號?,F(xiàn)在以Basic為源數據庫,可首先根據表名將預設格式的操作記錄分類,然后將預設格式的操作記錄中的表名為student的操作記錄寫入一個子內存隊列中,將預設格式的操作記錄中表名為grade的操作記錄寫入另外一個子內存隊列;同時可記錄表名為student的操作記錄所在的子內存隊列中最后一個操作記錄所在的位點,若在下次寫入內存前不涉及目標系統(tǒng)從內存隊列中提取預設格式的操作記錄,則在下次繼續(xù)寫入預設格式的操作記錄中的表名為student的操作記錄時,從最后一個操作記錄所在的子內存隊列的位點的下一個位點開始寫入,若在兩次寫入之間涉及目標系統(tǒng)從子內存隊列中提取操作記錄,則下次寫入從提取后的最后一個位點的下一個位點開始寫入。
本發(fā)明實施例提供的數據交換方法,能夠匹配多種類型的源數據庫;與此同時,本技術方案擴展性好、對源數據庫系統(tǒng)和目標數據庫系統(tǒng)的資源占用少且無需開發(fā)人員或維護人員手動處理便可自動完成跨系統(tǒng)數據交換。
在一個實施例中,所述獲取一源數據庫的日志文件包括:通過所述源數據庫內部的應用程序接口(Application Program Interface,應用程序接口,簡稱API)獲取所述日志文件。
目標系統(tǒng)可優(yōu)先采取直接讀取日志文件的方式獲取源數據庫的日志文件,若無法通過直接讀取日志文件的方式獲取日志文件,則通過數據庫內部的API接口獲取所述日志文件。
在一個實施例中,所述操作記錄中包括源數據庫的表的結構信息,所述方法還包括:從所述操作記錄中獲取源數據庫的表的結構信息。一般情況下,源數據庫定義其包含的表的同時定義其包含的表的結構信息,該表的結構信息中可包含該源數據庫包含的表的列名及各列之間存在的依賴關系等;在獲取源數據庫的表的結構信息之后,將其發(fā)送至目標系統(tǒng),以供目標系統(tǒng)根據源數據庫的表的結構信息生成對應的表,如此,便可使目標系統(tǒng)在不更改操作記錄中包含的數據之間關系的前提下將操作記錄中的數據完整地更新至目標系統(tǒng)。
在一個實施例中,預設格式的操作記錄可包括以下字段:源數據庫的庫名、源數據庫中包含的表的表名及源數據庫中運行的實例的實例名。
下面列舉一個具體實施例進行闡述。參見圖3,為一源數據庫31與目標系統(tǒng)35的數據交換過程,下面以源數據庫為SQL Server、目標系統(tǒng)為HDFS(Hadoop Distributed File System,分布式系統(tǒng))為例進行描述。
欲將SQL Server中的表名為dbo.a和dbo.b的表中的數據分別變更復制到HDFS的/user/hive/warehouse/cdc.db/a/和/user/hive/warehouse/cdc.db/b/中。數據交換方法具體為:首先,獲取SQL Server的日志文件,圖中的獲取單元321完成該日志文件獲取功能,獲取單元321優(yōu)先從SQL Server中直接讀取日志文件;若無法直接從SQL Server中直接讀取到日志文件,則獲取單元321從源數據庫SQL Serve內部的應用程序接口中獲取日志文件。然后,轉換單元322提取獲取單元321從日志文件中獲取的表名為dho.a和dbo.b的操作記錄,并將提取的操作記錄轉換為預設格式的操作記錄。該預設格式的操作記錄對大多數數據庫透明,因此,大多數目標系統(tǒng)均能識別該預設格式的操作記錄。寫入單元323按照預設格式的操作記錄的字段分別將其寫入0號內存隊列和1號內存隊列中。
最后,由于需要分別從0號內存隊列和1號內存隊列中提取預設格式的操作記錄并執(zhí)行,目標系統(tǒng)可通過兩個獲取單元(獲取單元341和獲取單元361)以多線程的方式分別從內存隊列33的0號內存隊列中提取預設格式的操作記錄和從內存隊列33的1號內存隊列中提取預設格式的操作記錄;再通過寫入單元343執(zhí)行獲取單元341提取的預設格式的操作記錄中包含的操作并將執(zhí)行結果寫入目標系統(tǒng)HDFS的user/hive/warehouse/cdd.db/a/;同理,通過獲取單元361從1號內存隊列中提取操作記錄,寫入單元363執(zhí)行獲取單元361提取的預設格式的操作記錄中包含的操作并將執(zhí)行結果寫入目標系統(tǒng)HDFS的user/hive/warehouse/cdd.db/b/中。
其中,獲取單元341與獲取單元361可采用多線程的方式從內存隊列33中提取相應的預設格式的操作記錄,而寫入單元343和寫入單元363也可以采用多線程的方式執(zhí)行提取的預設格式的操作記錄中包含的操作并將執(zhí)行結果寫入目標系統(tǒng)HDFS。如此,便可提高源數據庫與目標系統(tǒng)的數據交換的效率。
需要說明的是,當需要對從內存隊列中提取的預設格式的操作記錄進行轉換等操作,可設置轉換單元(未示出),其可耦接在獲取單元341和寫入單元343之間。轉換單元轉換將獲取單元提取的預設格式的操作記錄轉換為目標格式的操作記錄,以供寫入單元執(zhí)行該目標格式的操作記錄中包含的操作并將執(zhí)行結果寫入目標系統(tǒng)35,其中,該目標格式依據用戶的需求而進行設定。
在從獲取單元321獲取的日志文件中提取的操作記錄中還可包含表名為dbo.a的表的結構信息和表名為dbo.b的表的結構信息,以供目標系統(tǒng)根據表名為dbo.a的表的結構信息生成user/hive/warehouse/cdd.db/a/的表的結構;及,供目標系統(tǒng)根據表名為dbo.b的表的結構信息生成user/hive/warehouse/cdd.db/b/的表的結構。
實施例2
參見圖4所示,本實施例提供一種數據交換裝置,包括獲取單元421、轉換單元422和寫入單元423。其中,獲取單元421用于獲取一源數據庫的日志文件;轉換單元422用于通過所述日志文件提取所述源數據庫的操作記錄,并將所述操作記錄轉換為預設格式的操作記錄;寫入單元423用于根據所述預設格式的操作記錄的字段將所述預設格式的操作記錄寫入對應的內存隊列中,以供目標系統(tǒng)提取所述內存隊列中的預設格式的操作記錄并執(zhí)行,其中,所述目標系統(tǒng)為分布式數據庫。
在本技術方案中,獲取單元421獲取一源數據庫的日志文件,繼而轉換單元422在日志文件提取操作源數據庫生成的操作記錄,并將操作記錄轉換為預設格式的操作記錄,該預設格式的操作記錄對大多數數據庫系統(tǒng)均透明,即大多數數據庫系統(tǒng)均能識別該預設格式的操作記錄,如此,便能兼容大多數的源數據庫和目標系統(tǒng),使數據交換裝置有較高的適用性。
在一個實施例中,獲取單元421可直接從源數據庫中直接讀取其日志文件,若獲取單元421無法直接讀取源數據庫的日志文件,則獲取單元421從源數據庫內部的應用程序接口獲取日志文件。
在一個實施例中,所述獲取單元421還用于從所述操作記錄中獲取所述源數據庫的表的結構信息;所述寫入單元423還用于將所述源數據庫的表的結構信息寫入內存隊列中,以供所述目標系統(tǒng)根據所述源數據庫的表的結構信息生成對應的表。
在一個實施例中,轉換單元422轉換的預設格式的操作記錄中包括以下字段:源數據庫的庫名、源數據庫中包含的表的表名及源數據庫中運行的實例的實例名。
參見圖5所示,源數據庫51可以為MySQL、Oracle、SQL Server或DB2等類型的數據庫,但是無論采用哪一種類型的源數據庫,數據交換裝置均可獲取其日志文件,使數據交換裝置52可以兼容多種類型的源數據庫。而作為目標系統(tǒng)55的分布式數據庫,可以為數據庫系統(tǒng)、大數據系統(tǒng)、消息系統(tǒng)、緩存系統(tǒng)或實時計算系統(tǒng),預設格式的操作記錄對上述任何一種目標系統(tǒng)均透明,使數據交換裝置有很高的適用性。
實施例3
參見圖6所示,本實施例還提供一種數據交換系統(tǒng),包括源數據庫61、數據交換裝置62和目標系統(tǒng)65。其中,源數據庫61的日志文件中記錄有所述源數據庫的操作記錄;數據交換裝置62用于獲取所述源數據庫的日志文件,通過所述日志文件提取所述操作記錄并將預設格式的操作記錄寫入內存隊列;目標系統(tǒng)65用于從所述內存隊列中提取所述預設格式的操作記錄,執(zhí)行所述預設格式的操作記錄中包含的操作,其中所述目標系統(tǒng)為分布式數據庫。
在一個實施例中,數據交換裝置62還用于從所述內存隊列中提取所述預設格式的操作記錄,執(zhí)行所述預設格式的操作記錄中包含的操作,并將執(zhí)行結果寫入目標系統(tǒng),其中所述目標系統(tǒng)為分布式數據庫。
在一個實施例中,所述數據交換裝置62還用于,將所述操作記錄轉換為預設格式的操作記錄,以提高數據交換裝置與源數據庫及目標系統(tǒng)的耦合率;所述預設格式的操作記錄包括以下字段:源數據庫的庫名、源數據庫中包含的表的表名、以及源數據庫中運行的實例的實例名。
在一個實施例中,目標系統(tǒng)65采用多線程的方式從所述內存隊列中提取操作記錄,和/或所述目標系統(tǒng)采用多線程的方式執(zhí)行所述操作記錄中包含的操作。
在一個實施例中,為了提高數據交換效率,設置多個內存隊列,同時在數據交換裝置中設置多個獲取單元、寫入單元。下面結合圖7詳細描述根據本發(fā)明實施例的目標系統(tǒng)采用多線程的方式從內存隊列中提取預設格式的操作記錄,和/采用多線程的方式執(zhí)行提取的所述預設格式的操作記錄中包含的操作的具體工作過程。
參見圖7所示,數據轉換裝置72將從源數據庫71的日志文件中提取的操作記錄轉換為預設格式的操作記錄并分別將其存儲于五個內存隊列中,分別為第一內存隊列731、第二內存隊列732……第五內存隊列735;而目標系統(tǒng)75采用多線程的方式從內存隊列73中提取的預設格式的操作記錄并執(zhí)行。
在一個實施例中,還可以包括數據轉換裝置74,目標系統(tǒng)75可通過數據轉換裝置74從內存隊列73中提取預設格式的操作記錄,并通過數據轉換裝置74執(zhí)行操作記錄中包含的操作并將執(zhí)行結果寫入目標系統(tǒng)75。
在此提出,數據轉換裝置74中可以包括多個獲取單元(獲取單元741、獲取單元761、獲取單元771、獲取單元781、獲取單元791)和多個寫入單元(寫入單元743、寫入單元763、寫入單元773、寫入單元783、寫入單元793)。其中,獲取單元741、獲取單元761、獲取單元771、獲取單元781、獲取單元791可以采用多線程的方式分別從不同的內存隊列中提取預設格式的操作記錄;和/或寫入單元743、寫入單元763、寫入單元773、寫入單元783、寫入單元793可采用多線程的方式執(zhí)行預設格式的操作記錄中包含的操作并將執(zhí)行結果寫入目標系統(tǒng)75,作為一種可選的方案,一個寫入單元與一個獲取單元對應。
可以看出,上述未涉及到數據轉換裝置74的轉換單元,若需要對獲取單元提取的預設格式的操作記錄做轉換等操作,可以設置轉換單元,可耦合在獲取單元741與寫入單元743之間;其中,轉換單元可以與數據轉換裝置74的獲取單元一一對應,也可以轉換單元的數量少于數據轉換裝置的獲取單元的數量,依據需求而設定,在此對其數量不做限制。
本發(fā)明的方法的操作步驟與裝置及系統(tǒng)的結構特征對應,可以相互參照,不再一一贅述。
綜上所述,根據本發(fā)明提供的上述技術方案,從獲取的源數據庫的日志文件中提取操記錄并將操作記錄轉換為預設格式的操作記錄,根據提取的預設格式的操作記錄更新目標系統(tǒng),本方案將提取的操作記錄轉換為預設格式的操作記錄,能匹配多種類型的源數據庫及目標系統(tǒng),本技術方案擴展性好、對源數據庫系統(tǒng)和目標數據庫系統(tǒng)的資源占用少、可適用于多種類型的源數據庫且無需開發(fā)人員或維護人員手動處理便可完成跨系統(tǒng)數據交換。
本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
本發(fā)明是參照根據本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(CD-ROM)、數字多功能光盤(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitory media),如調制的數據信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)或計算機程序產品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
以上所述僅為本發(fā)明的實施例而已,并不用于限制本發(fā)明。對于本領域技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的權利要求范圍之內。