999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

實時數據庫數據集成的實現及性能比較

2014-01-01 00:00:00唐亮
文化產業 2014年4期

摘 要:以Aspen公司的實時數據庫產品IP21為例,介紹幾種不同的方式實現實時數據庫和其它應用系統的數據集成。并對不同的數據集成方式在應用范圍、性能、使用效果等方面進行比較。

關鍵詞:實時數據庫;數據集成;API;ODBC;WebService;

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

引言

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

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

一、 實時數據庫介紹

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

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

二、實時數據庫系統總體架構

實時數據庫系統總體架構分為數據采集層、數據存儲層、數據應用層。數據采集層通過OPC接口進行生產裝置的數據采集并傳入IP21實時數據庫;數據存儲層主要是將采集的實時數據存儲到IP21的歷史庫中;數據應用層主要是對采集上來的實時數據和保存的歷史數據進行一些基本應用。

系統架構圖如下所示:三、實時數據庫集成方式的實現

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

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

32位系統中注冊信息為:

[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位系統中注冊信息為:

[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驅動在系統中注冊完成后,可以直接在操作系統的ODBC數據源管理器中進行數據源配置。如下圖所示:

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

(二)API方式

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

[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);

封裝完成后,可以在微軟的集成開發環境visual studio中直接調用函數來訪問IP21中的數據。

(三)webservice方式

Web Service技術能使得運行在不同機器上的不同應用無須借助第三方軟件或硬件,就可相互交換數據或集成。以這種方式實現IP21的數據集成能更容易達到利用實時數據庫數據的目的。實現方法為先基于實現了ODBC或API方式正常獲取IP21中的數據后,再開發部署取數服務。筆者用微軟IIS服務管理器來部署IP21的數據服務。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);

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

四、3種集成方式的比較

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

五、結論

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

主站蜘蛛池模板: 免费一级无码在线网站 | 国产第八页| 91小视频在线观看| 日韩不卡高清视频| 一级毛片免费不卡在线视频| 高清色本在线www| 色婷婷电影网| 成人毛片免费在线观看| 欧美激情首页| 青青草国产免费国产| 一级黄色片网| 91麻豆精品视频| 亚洲天堂啪啪| 制服无码网站| 欧美一区二区啪啪| 小13箩利洗澡无码视频免费网站| 日本国产在线| 欧美成人怡春院在线激情| 91国内视频在线观看| 青青青亚洲精品国产| 国产黄色免费看| 日韩不卡免费视频| 欧美日韩久久综合| 91年精品国产福利线观看久久| 国产福利小视频高清在线观看| 伊人久久福利中文字幕| 一区二区三区四区精品视频| 九色综合伊人久久富二代| 女人18毛片水真多国产| 天天色天天综合网| 精品人妻一区二区三区蜜桃AⅤ| 2019年国产精品自拍不卡| 国产一区二区三区在线观看视频 | 国产第二十一页| 国产香蕉在线视频| 亚洲欧美成人综合| 欧美精品1区2区| 中文字幕一区二区视频| 国产午夜福利亚洲第一| 欧洲高清无码在线| 久久国产乱子伦视频无卡顿| 五月丁香在线视频| 亚洲欧美人成电影在线观看| 日韩欧美中文在线| 中文字幕无码av专区久久 | 三区在线视频| 国产精品视频导航| 亚洲男人的天堂网| 蝌蚪国产精品视频第一页| 国产乱人乱偷精品视频a人人澡 | 99激情网| 三级欧美在线| 欧美怡红院视频一区二区三区| 国产自视频| 国产欧美精品一区二区 | 久久大香香蕉国产免费网站| 综合久久久久久久综合网| 亚洲黄网视频| 亚洲人成人无码www| 美女被操91视频| a级毛片在线免费观看| 中文字幕久久精品波多野结| 久久毛片网| 中文字幕第4页| 国产丝袜一区二区三区视频免下载| 欧美在线视频不卡第一页| 美女视频黄又黄又免费高清| 亚洲国产成熟视频在线多多| 国产精品久久久免费视频| 亚洲水蜜桃久久综合网站| 国产最新无码专区在线| 欧美色伊人| 真人免费一级毛片一区二区 | 这里只有精品免费视频| 国产成人综合亚洲欧美在| 2019国产在线| 国产一级在线观看www色| 2021无码专区人妻系列日韩| 亚洲一级毛片免费看| 91综合色区亚洲熟妇p| 天堂中文在线资源| 亚洲精选无码久久久|