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

        ?

        實時數(shù)據(jù)庫數(shù)據(jù)集成的實現(xiàn)及性能比較

        2014-01-01 00:00:00唐亮
        文化產(chǎn)業(yè) 2014年4期

        摘 要:以Aspen公司的實時數(shù)據(jù)庫產(chǎn)品IP21為例,介紹幾種不同的方式實現(xiàn)實時數(shù)據(jù)庫和其它應(yīng)用系統(tǒng)的數(shù)據(jù)集成。并對不同的數(shù)據(jù)集成方式在應(yīng)用范圍、性能、使用效果等方面進行比較。

        關(guān)鍵詞:實時數(shù)據(jù)庫;數(shù)據(jù)集成;API;ODBC;WebService;

        中圖分類號:TE-9 文獻標(biāo)識碼:A 文章編號:1674-3520(2014)-04-00169-03

        引言

        實時數(shù)據(jù)庫系統(tǒng)是生產(chǎn)流程型企業(yè)(如:石化企業(yè)、電力企業(yè)、冶煉企業(yè))的基礎(chǔ)數(shù)據(jù)平臺。在生產(chǎn)過程中,生產(chǎn)流程型企業(yè)主要使用實時數(shù)據(jù)進行生產(chǎn)管理、調(diào)度和數(shù)據(jù)分析。不同類型的企業(yè)對實時數(shù)據(jù)的要求不盡相同,如冶煉企業(yè)主要關(guān)注的是模擬量數(shù)據(jù),對溫度、壓力、流量信號的數(shù)據(jù)準(zhǔn)確性要求較高;電力企業(yè)更加關(guān)注開關(guān)量數(shù)據(jù),對電網(wǎng)調(diào)度開關(guān)信號的響應(yīng)速度要求更高;石化企業(yè)則對模擬數(shù)據(jù)和開關(guān)數(shù)據(jù)的實時性都有較高的要求。

        隨著信息化發(fā)展進程的深入,企業(yè)中越來越多的上層應(yīng)用系統(tǒng)需要使用到實時數(shù)據(jù)。如:MES(生產(chǎn)制造執(zhí)行系統(tǒng))系統(tǒng)使用實時數(shù)據(jù)能減少人工數(shù)據(jù)的錄入、提高系統(tǒng)中生產(chǎn)數(shù)據(jù)的準(zhǔn)確性和及時性;環(huán)境監(jiān)測系統(tǒng)使用實時數(shù)據(jù)在線監(jiān)控環(huán)保指標(biāo),及時調(diào)整生產(chǎn),達到國家環(huán)保要求;設(shè)備管理系統(tǒng)利用設(shè)備運行中的實時數(shù)據(jù)能分析出設(shè)備運行狀態(tài)等。實時數(shù)據(jù)庫系統(tǒng)如何能快速高效的和這些上層應(yīng)用系統(tǒng)進行數(shù)據(jù)集成,也已成為企業(yè)信息化建設(shè)過程中普遍關(guān)注的問題。

        一、 實時數(shù)據(jù)庫介紹

        (一) 實時數(shù)據(jù)庫特性。區(qū)別于關(guān)系數(shù)據(jù)庫,實時數(shù)據(jù)庫的特性就是實時性。包括數(shù)據(jù)實時性和事務(wù)實時性兩個指標(biāo)。數(shù)據(jù)的實時性是指儀表IO數(shù)據(jù)的更新周期,這個指標(biāo)主要受儀表設(shè)備等硬件條件的制約。事務(wù)的實時性是指實時數(shù)據(jù)庫對其事務(wù)處理的速度。這個指標(biāo)根據(jù)實時數(shù)據(jù)庫的軟件產(chǎn)品而有所不同。事務(wù)一般采取事件觸發(fā)或定時觸發(fā)這兩種方式。事件觸發(fā)是該事件一旦發(fā)生可以立刻獲得調(diào)度,這類事件可以得到立即處理,但是比較消耗系統(tǒng)資源;而定時觸發(fā)是在一定時間范圍內(nèi)獲得調(diào)度權(quán)。舉個簡單的例子,一般模擬量數(shù)據(jù)都有高低報警,如果采取事件觸發(fā),報警方式為:一旦數(shù)據(jù)超過了報警上下限制,系統(tǒng)立即調(diào)度觸發(fā)事件;如果采取定時觸發(fā),則報警的方式為:系統(tǒng)定時調(diào)度一段時間內(nèi)這個數(shù)據(jù)是否有超標(biāo)數(shù)據(jù)發(fā)生,并執(zhí)行相應(yīng)的事務(wù)。

        (二)實時數(shù)據(jù)庫產(chǎn)品。主流實時數(shù)據(jù)庫有3 個產(chǎn)品:OSI公司的 PI ( Plant Information System ) 、HONEYWELL公司的 PHD ( Process History Database ) 、AspenTech公司的 IP21 ( InfoPlus .21 )。 PI 采用了旋轉(zhuǎn)門壓縮專利技術(shù)對數(shù)據(jù)進行了最有效的壓縮,極大地節(jié)省了硬盤空間,是效率最高,在國際上也使用最廣泛的實時數(shù)據(jù)庫。PHD HONEYWELL主要使用在工控領(lǐng)域DCS端,其內(nèi)核使用的是簡化版的關(guān)系數(shù)據(jù)庫,因此在數(shù)據(jù)存儲方面沒有優(yōu)勢。在國內(nèi)市場主要使用的是AspenTech公司IP21實時數(shù)據(jù)庫, IP21進入中國市場10 a多,現(xiàn)已成為中國石化使用的最多的實時數(shù)據(jù)庫。

        二、實時數(shù)據(jù)庫系統(tǒng)總體架構(gòu)

        實時數(shù)據(jù)庫系統(tǒng)總體架構(gòu)分為數(shù)據(jù)采集層、數(shù)據(jù)存儲層、數(shù)據(jù)應(yīng)用層。數(shù)據(jù)采集層通過OPC接口進行生產(chǎn)裝置的數(shù)據(jù)采集并傳入IP21實時數(shù)據(jù)庫;數(shù)據(jù)存儲層主要是將采集的實時數(shù)據(jù)存儲到IP21的歷史庫中;數(shù)據(jù)應(yīng)用層主要是對采集上來的實時數(shù)據(jù)和保存的歷史數(shù)據(jù)進行一些基本應(yīng)用。

        系統(tǒng)架構(gòu)圖如下所示:三、實時數(shù)據(jù)庫集成方式的實現(xiàn)

        (一)ODBC方式。ODBC(Open Database Connectivity)是微軟提出的數(shù)據(jù)訪問接口標(biāo)準(zhǔn)。其定義了訪問數(shù)據(jù)的一個規(guī)范,這個規(guī)范獨立于具體編程語言,是一種通用的數(shù)據(jù)集成的方式。按照ODBC規(guī)范,數(shù)據(jù)庫廠商提供ODBC驅(qū)動程序以方便用戶訪問數(shù)據(jù)庫中的數(shù)據(jù)。一般比較熟悉使用的是如:ORACLE、SQL SERVER等關(guān)系數(shù)據(jù)庫的ODBC驅(qū)動,和關(guān)系數(shù)據(jù)庫類似的,實時數(shù)據(jù)庫也提供了ODBC的驅(qū)動程序。

        IP21的ODBC驅(qū)動程序主要包含3個動態(tài)鏈接庫:ip21odbc.dll、libc21.dll和PFWAuth.dll。在使用驅(qū)動程序之前,需要在系統(tǒng)中注冊這3個庫文件。當(dāng)然,注冊前需要將這3個庫文件拷貝到SYSTEM32系統(tǒng)目錄下。

        32位系統(tǒng)中注冊信息為:

        [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\AspenTech SQLplus]

        \"UsageCount\"=dword:00000007

        \"Driver\"=\"C:\\WINDOWS\\system32\\ip21odbc.dll\"

        \"Setup\"=\"C:\\WINDOWS\\system32\\ip21odbc.dll

        [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]

        \"AspenTech SQLplus\"=\"Installed\"

        64位系統(tǒng)中注冊信息為:

        [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\AspenTech

        SQLplus]

        \"UsageCount\"=dword:00000007

        \"Driver\"=\"C:\\AspenODBC32\\system32\\ip21odbc.dll\"

        \"Setup\"=\"C:\\AspenODBC32\\system32\\ip21odbc.dll\"

        [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers]

        \"AspenTech SQLplus\"=\"Installed\"

        IP21的ODBC驅(qū)動在系統(tǒng)中注冊完成后,可以直接在操作系統(tǒng)的ODBC數(shù)據(jù)源管理器中進行數(shù)據(jù)源配置。如下圖所示:

        建立完數(shù)據(jù)源后,即可通過編程方式使用這個數(shù)據(jù)源來訪問IP21,訪問方法和通過ODBC訪問關(guān)系數(shù)據(jù)庫是一樣的。也可在一些應(yīng)用程序中直接訪問ODBC數(shù)據(jù)源,如通過使用Excel軟件中的MICROSOFT QUERY功能,可以直接在Excel表格中引用IP21的實時數(shù)據(jù)和歷史數(shù)據(jù)。

        (二)API方式

        IP21實時數(shù)據(jù)庫提供了一組靈活的用于數(shù)據(jù)訪問的API接口,程序開發(fā)人員可以調(diào)用接口中的函數(shù)來訪問和操作數(shù)據(jù)庫。調(diào)用API函數(shù)需要用到的動態(tài)鏈接庫有:infoplus21_api.dll、cimsrvapi.dll、CimWin32Util.dll、ip21admin_client.dll、ip21ezrpcw32.dll、ip21winrpc32.dll、libc21.dll。由于IP21的API接口是非托管代碼,在dotnet環(huán)境下進行開發(fā)的開發(fā)人員,在使用前需要對接口進行重新封裝。下面給出主要的封裝代碼:

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"DaInitialize\")]

        private static extern bool Init(bool isReadCfgFile);

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"DaShutdown\")]

        private static extern bool UnInit();

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"DaAddServer\")]

        private static extern short AddServer(string configLine, ref ERRBLOCK err);

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"GETNAMDB\")]

        private static extern void GetNameByRecID(ref int recid, byte[] name, ref short len);

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"DECODFT\")]

        private static extern void GetFldIDByFldName(string name, short len, ref int id, ref ERRBLOCK err);

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"FIELDDEFNINFO\")]

        private static extern void GetFldInfo(int recid, int fldid, int seq, ref FIELDDEFN flddefinfo, ref short stop, ref ERRBLOCK err);

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"DB2REAL\")]

        private static extern void ReadFloat(int recid, int ft, ref float data, ref ERRBLOCK err);

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"DB2DUBL\")]

        private static extern void ReadDouble(int recid, int ft, ref double data, ref ERRBLOCK err);

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"RHIS21DATA\")]

        private static extern void ReadHisData(int mode, int step, int outsiders, int recid, int fid, ref XUSTS startTime, ref XUSTS endTime, short numFts, int[] fts, short[] ptdtypes, int maxNum, short[] keyLevels, XUSTS[] keyTimes, IntPtr ptdatas, ref short occsok, ref short ftsok, ref ERRBLOCK err);

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"REALADD2DB\")]

        private static extern void WriteFloat(int recid, int ft, ref float data, ref ERRBLOCK err);

        [DllImport(\"infoplus21_api.dll\", EntryPoint = \"DUBLADD2DB \")]

        private static extern void WriteDouble(int recid, int ft, ref double data, ref ERRBLOCK err);

        封裝完成后,可以在微軟的集成開發(fā)環(huán)境visual studio中直接調(diào)用函數(shù)來訪問IP21中的數(shù)據(jù)。

        (三)webservice方式

        Web Service技術(shù)能使得運行在不同機器上的不同應(yīng)用無須借助第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成。以這種方式實現(xiàn)IP21的數(shù)據(jù)集成能更容易達到利用實時數(shù)據(jù)庫數(shù)據(jù)的目的。實現(xiàn)方法為先基于實現(xiàn)了ODBC或API方式正常獲取IP21中的數(shù)據(jù)后,再開發(fā)部署取數(shù)服務(wù)。筆者用微軟IIS服務(wù)管理器來部署IP21的數(shù)據(jù)服務(wù)。webservice代碼整理如下:

        using System;

        using System.Collections.Generic;

        using System.Web;

        using System.Web.Services;

        using IPLIB;

        using System.Configuration;

        namespace IPServices

        [WebService(Namespace = \"http://tempuri.org/\")]

        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

        [System.ComponentModel.ToolboxItem(1)]

        public class IPService : System.Web.Services.WebService

        [WebMethod]

        public double GetRDData(string tagName)

        Rtdb db = new Rtdb();

        return db.GetTagData(tagName);

        [WebMethod]

        public double GetHisRDData(string tagName,DateTime dataTime)

        Rtdb db = new Rtdb();

        return db.GetTagDataByTime(tagName, dataTime);

        以上代碼提供取數(shù)的web服務(wù),IPLIB命名空間實現(xiàn)IP21的取數(shù)邏輯,可以由ODBC或API來實現(xiàn)。服務(wù)部署后,其它應(yīng)用系統(tǒng)可以在代碼中直接引用服務(wù)器地址,通過上面代碼中的兩個方法獲取實時數(shù)據(jù)和歷史數(shù)據(jù)。

        四、3種集成方式的比較

        采用webService方式獲取IP21的數(shù)據(jù),開發(fā)成本最低,部署一臺服務(wù)器提供IP21取數(shù)服務(wù),就可實現(xiàn)整個網(wǎng)絡(luò)內(nèi)各個應(yīng)用系統(tǒng)對IP21的數(shù)據(jù)集成,但這種方式數(shù)據(jù)響應(yīng)速度相對較慢,執(zhí)行效率不高,對有大批量數(shù)據(jù)需求的應(yīng)用系統(tǒng)有性能瓶頸;應(yīng)用系統(tǒng)通過ODBC方式實現(xiàn)對IP21的數(shù)據(jù)集成可以解決一部分的性能問題,但由于每個客戶端都需要部署安裝IP21的驅(qū)動,這樣就增加了應(yīng)用系統(tǒng)的實施難度和應(yīng)用范圍。以API方式集成IP21實時數(shù)據(jù),技術(shù)難度和開發(fā)成本較高,每個要集成IP21數(shù)據(jù)的應(yīng)用系統(tǒng)都需要單獨開發(fā)取數(shù)模塊,但這種方式具有性能優(yōu)勢,取數(shù)效率最高。

        五、結(jié)論

        針對這三種不同方式的優(yōu)缺點,筆者建議:類似于生產(chǎn)執(zhí)行系統(tǒng)(MES)這種應(yīng)用范圍廣但實時數(shù)據(jù)需求量不大的系統(tǒng),可以使用webService方式獲取數(shù)據(jù);數(shù)據(jù)需求量大且用戶數(shù)也較多的應(yīng)用系統(tǒng),如在線監(jiān)測系統(tǒng),工藝參數(shù)分析系統(tǒng)等可以使用API方式進行數(shù)據(jù)集成;數(shù)據(jù)需求量大但用戶數(shù)較少的應(yīng)用系統(tǒng)則直接用ODBC方式獲取數(shù)據(jù),如生產(chǎn)調(diào)度系統(tǒng)、全流程優(yōu)化系統(tǒng)等。

        在线观看网址你懂的| 无码精品国产一区二区三区免费| 麻豆网神马久久人鬼片| 男受被做哭激烈娇喘gv视频| 久久亚洲AV成人一二三区| 日本一区二区高清视频在线| 伊人久久精品亚洲午夜| 区二区三区玖玖玖| 日本高清不卡二区| 亚洲春色视频在线观看| 青青草免费在线爽视频| 日韩精品久久久肉伦网站| 欧美精品在线一区| 国产人妖一区二区av| 午夜久久精品国产亚洲av| 丰满熟女人妻一区二区三区| 国产情侣一区二区| 国产99视频精品免视看9| 99久久国产亚洲综合精品| 偷拍视频十八岁一区二区三区| 亚洲av无码一区二区三区天堂| 99精品国产高清一区二区麻豆| 精品久久久久久电影院| 人妻系列中文字幕av| 又色又爽又黄高潮的免费视频| 欧美亚洲国产精品久久高清| 亚洲最大av免费观看| 男人天堂亚洲天堂av| 亚洲春色在线视频| 麻豆AV免费网站| 白色白色视频在线观看| 国产精品毛片va一区二区三区| 久久亚洲精品无码va大香大香| 久久久久久人妻一区二区无码Av| 男人天堂亚洲天堂av| 亚洲欧洲精品无码av| 亚洲AV无码成人精品区网页| 青青草视频视频在线观看| 亚洲av无码成人精品区狼人影院| 亚洲国产精品一区二区久| 在线看不卡的国产视频|