数据源总线化布局解决方案
2015-01-13卜梓琴叶建位陆海琛
卜梓琴 叶建位 庞 戈 陆海琛
(浙江中控软件技术有限公司,杭州 310053)
生产数据在工业控制企业的生产经营中起着至关重要的作用,它为企业的生产控制、经营管理及战略制定等方面提供了重要依据。随着节能减排及两化深度融合等国家利好政策的出台与推进,生产数据成为企业推进自动化和信息化建设的重点处理对象,采用数据整合处理及流程抽象等信息化处理技术,最终通过信息系统来实现无纸化办公和流程信息化监管。但是,企业在有步骤地提高信息化程度的过程中,逐渐显现出以下问题:第一,企业针对相应的问题实施对应的信息化解决方案,从而使得内部信息系统不断地增多,信息系统多样、重复建设及它们之间不兼容等弊端不断显现;第二,为不断优化信息化方案,上层应用的扩展为支持与多个底层信息系统交互而定制开发更多的接口软件,即采用一对一的服务模式,因此使开发成本和维护成本增加。
数据源总线化布局方案就是为解决上述问题而提出。它充分利用Windows通信开发平台(Windows Communication Foundation,WCF)的特性,通过一种总线化布局方案,使得上层应用无需再知道底层具体的数据源类型和交互细节即可使用,真正实现数据源随意插拔、上层应用无感知的效果,并可使零碎化和个性化的各个数据源统一到总线上,达到统一管理的目的。笔者提出的数据源总线化布局解决方案充分利用了WCF技术能够提供统一的、可用于建立安全、可靠的面向服务的应用高效开发平台[1]这一特性,并制定了一套统一的协议用于交互的标准化,既可达到数据源的统一管理又可实现数据源远程和独立部署的目的。
实现数据源总线化布局方案(图1),主要通过部署浙江中控软件技术有限公司研发完成的数据源管理系统(图2)来实现。数据源管理系统采用服务-客户端模式,即在服务端主要执行部署工作,将与数据源进行交互时所需的对应信息文件(以下简称数据源文件)部署到合适的位置。这些数据源文件主要为DLL文件和XML文件,是数据源管理系统主要的管理对象。在客户端,主要实现与数据源的连接。连接成功后,即可通过WCF技术公布成独立的服务以供上层应用使用。当然,为进一步提高数据源管理系统的智能化,服务端也可自启动与数据源的连接。
在服务端可部署多种数据源文件,来实现与多种数据源的交互功能。数据源管理系统启动时,会自动在服务端判定是否存在已经部署的数据源文件,如果存在,则加载已经部署的数据源文件的配置信息,并通过反射技术加载DLL文件,通过查找属性找到类的入口并生成独立的Appdomain来实现对相应数据源交互进程的保护,在此过程中,还可通过实现连接池管理来确保与数据源通信的畅通性(图3)。
图1 数据源总线化布局方案
图2 数据源管理系统设计示意图
图3 数据源管理系统与数据源交互示意图
一般的总线型结构具有高度的可扩展性,且扩充灵活,任何节点只需按照一定的要求插入到总线上即可。数据源总线化布局解决方案除了具有该优点外,还依靠数据源管理系统良好的架构设计和优良的技术特性,具有高度的独立性和较强的抗干扰性。一般的总线型结构在带来便于扩充等优点时,往往也具有任一处发生故障将导致整个结构瘫痪,且故障诊断困难的弊端,但数据源管理系统很好地克服了这一弱点。它内部采用独立的Appdomain技术,在与每个数据源交互时可智能开辟独立空间进行装箱运行并实施保护。如果某个数据源异常终止,Appdomain技术会对该异常进行隔离,从而保证与其他数据源的交互不受影响。所以不论是删除原数据的源文件、添加新的数据源文件或者启动、断开与该数据源的连接,对数据源管理系统和正在运行的其他数据源交互都不会产生任何影响。
此外,WCF技术通过契约的方式向外部开发统一的数据契约、服务契约和错误契约[1],即可实现标准化管理。数据源管理系统正是充分利用了该特点,设计并统一了数据接口标准,二次开发或上层应用扩展不再需要不断重复地投入成本来研究和测试底层数据源的特性,只需熟悉数据接口标准即可一劳永逸,即无论原计划是与哪个数据源交互,现在只要该数据源交由数据源管理系统管理,就会具有相同的数据结构及接口类型定义等,这可以极大地降低投入成本。
数据源管理系统进行架构设计时,不仅要考虑到标准化管理,还要兼顾与各个数据源交互的差异性,所以采用独立配属的方式,为每个数据源配属了独立的数据源文件,在该数据源文件内,可自定义设置对应数据源所在的IP地址、端口号及连接池初始化个数等信息,对这个信息文件内容的修改不会影响其他信息文件。统一化和差异化并举使得数据源管理和二次应用扩展的效率得以提高。
2 应用现状
基于数据源总线化布局解决方案所开发的数据源管理系统,在多个工业企业的信息化项目中得到了应用,并产生了较大的经济和社会效益。
本方案实施后,信息系统布局将构建起清晰的三层架构:应用层、数据源框架层和数据源层。在数据源层,多种数据源执行本方案的协议后,可在框架总线上随意插拔,部署完成后,通过数据源管理系统即可实现对这些数据源的交互管理,而这些数据源不论是本地部署还是远程架起都不会对数据源管理系统产生任何影响。本方案使得这些数据源成为“黑箱”,上层应用无需再根据特定的数据源实现定制开发,只需根据方案内提供的统一协议,由与原来特定的数据源直接交互方式转变为与数据源管理系统进行间接交互的方式,从原来的一对一服务模式,转变为一对多共享模式,因此极大地降低了成本并提高了通用性。
以甘肃省白银市某军工企业为例,该企业内部有复杂的信息系统,包含生产过程实时监控系统、生产计划管理、生产调度管理、生产统计报表和企业资源计划系统(ERP)与实验室信息管理系统(LIMS),并且该企业的数据来源复杂:有直接通过Modbus方式从仪表接入的数据,也有通过OSISoft PI实时数据库进行中转的数据,其中还部署了浙江中控软件技术有限公司的ESP-iSYS实时数据库采集部分控制系统的数据。针对这种情况,在该项目实施时采用了数据源管理系统作为企业的数据总线,将各种数据源通过对应的适配器整合到数据源管理系统总线上,上层的应用系统统一通过该数据源总线存取数据,这种方式极大地简化了异构系统的数据整合,使得上层各种应用系统能够基于同一个接口进行开发,进而使得整个信息化项目的实施周期缩短。
3 结束语
笔者基于数据源总线化布局解决方案所提出的数据源管理系统已经应用到工业企业的实际信息化项目中,结果表明,该数据源管理系统能够有效地解决企业在提高信息化程度过程中逐渐显现出的问题,实现了对复杂信息系统的数据整合与简化,并取得了一定的经济和社会效益。
[1] Juval L著,徐雷,徐扬译.WCF服务编程[M].武汉:华中科技大学出版社,2011.