APP下载

舰船损管系统容灾性及安全机制设计

2013-01-11

船海工程 2013年4期
关键词:舰船应用程序客户端

(中国舰船研究设计中心,武汉 430064)

损害管制(damage control,DC)是指利用一切手段,尽可能准确地监视、报告舰船平台的安全状态,减轻甚至消除损害所带来的影响,并快速组织各种力量修复或采取应急措施,将舰船维持在正常或接近正常的状态下[1]。损管系统是保障舰船生命力的重要系统[2]。现代损管系统具有信息处理量大、反应速度快、辅助决策能力强等优点,正日益受到各国海军的重视[3]。

随着计算机技术和舰船自动化水平的不断发展和提高,对保证舰艇生命力的损管系统也有了更多的要求。对于损管系统本身,需要具有较强的容灾能力[4],即为了保障损管系统在一些重大灾难面前的有效性。也就是说部分损管中心及其子系统的故障或者失效不会影响到指挥员损管决策和整个损管措施实施的连续性。同时对于损管系统的权限,也就是安全机制要进行一定的控制,不同岗位设置不同控制权限。不但可以防止无关人员的非法操作误操作,还可以有效避免在灾害发生时,操作人员由于心理紧张等原因进行的越权操作。

本文对损管系统的容灾能力和安全机制分别进行了讨论。比较分析现有工业组态软件的特点,采用成熟的工业控制组态软件InTouch为开发平台进行实验研究,取得了预期的效果。

1 损管系统的容灾性

要提高损管系统的容灾能力,就需要研制搭建冗余度高、可靠性好的局部网络,最大限度地利用各种资源,在灾害发生时也尽可能地使信息贯通流畅[5]。

InTouch几乎支持所有主流的网络架构,包括了单机、基于客户端的架构、基于服务器的架构和NAD。单机架构中应用程序通常由一个充当主操作员界面的非联网计算机组成,直接连接到网络上,这种无冗余结构在舰船上显然是不适合的,下面对其它3种网络架构的形式进行讨论。

1.1 基于客户端的架构

在基于客户端的架构中运行InTouch程序的每台计算机节点或网络服务器都存在InTouch应用程序的一份惟一的副本,并且对相应网络数据源都有相同的访问权限。基于客户端的架构见图1。基于客户端的架构可以理解为独立结构,网络中每个InTouch节点是相同的,它们相互独立,互不影响。这也就意味着,任何一个损管控制台的故障或者损坏,不会影响到其它损管控制台的功能,依然可以对相应的设备进行控制。

图1 基于客户端的网络架构

基于客户端的架构由于网络节点具有内在的冗余特性,导致了每个节点都需要与共享的服务器维持一个单独的对话,增加了网络负载。同时,由于相互独立,增加了维护升级的难度。

1.2 基于服务器的架构

与基于客户端的架构不同,基于服务器的架构中每个网络节点并不是平级的,而是有一个被称为开发节点的特殊节点。开发节点把InTouch应用程序分发到其它网络节点上。多个损管控制台均访问相同的InTouch应用程序。在舰船上,开发节点可以作为专用的服务器,见图2。也可以同时当做损管监控台使用,见图3。

图2 基于服务器的网路架构1

图3 基于服务器的网路架构2

这种架构最大的好处是维护简单,维护时只需要在开发节点上操作就可以达到全舰更新的目的。同时也具有一定的冗余能力,由于其它损管控制台均访问开发节点,它们的故障不会造成其它损管控制台功能的丧失。但是如果开发节点崩溃,没有冗余备份可以使用,会导致全舰损管控制系统的瘫痪。而且由于只有一个应用程序备份,所以所有节点都必须使用相同的屏幕分辨率,对人机界面造成一定的影响。

1.3 NAD架构

NAD (network application development)架构是InTouch特有的架构,它结合了以上两种网络结构的优点。NAD架构中也有一个叫开发节点的特殊节点,这个节点负责维护应用程序的主副本。每个网络节点都会将应用程序复制到用户定义的位置并从那里运行它。一旦主副本客户端应用程序有更改,开发节点便可通知其它网络节点,并自动更新。图4中,两个网络节点都从开发节点注册了主应用程序,但实际上还是在各自的本地计算机上运行它。但在运行时,开发节点不再担任网络枢纽的角色,而是与其它网络节点相同。这种网络结构具有独立式较强的容灾能力,也具有基于服务器架构的维护便捷的特点。

图4 NAD架构

实验证明,这种结构在维护完成后,若开发节点发生故障,非开发节点的InTouch应用程序与下层数据的链路会中断。所以在每次更新操作完成后,需要对非开发节点的InTouch应用程序重启。同时需要注意的是,在配置这种结构时,需要将每个 NAD 节点上的历史数据配置成写入本地目录,而不是主应用程序节点。

2 损管系统的安全机制

InTouch平台有着自己的安全机制,包括传统的基于InTouch的安全性、基于操作系统的安全性、基于ArchestrA架构的安全性。

InTouch的安全机制很全面,可以设置不活动超时自动退出,锁定系统键等,并且操作系统、InTouch以及ArchestrA三层保护可以有效防止非法用户登录,见图5。

图5 InTouch的安全机制

但InTouch中,用户的权限分为999个级别。高级别的用户可以执行低级别的操作或者访问低级别的数据,低级别的用户不能执行高级别的操作或者访问高级别的数据。但在损管系统中,用户执行的操作却是按照系统划分的。

如图6所示,每个系统对应相应的传感器和控制元件。由于系统间功能的重叠,传感器和控制元件可以被多个系统控制,如喷淋装置可以被水灭火系统和喷淋系统控制。对于用户来说,用户1可以操作水灭火系统,用户4可以进行详细报警信息和历史记录的查询,用户2既具有用户1的权限又具有用户2的权限。这种交叉的权限对于只通过级别来控制权限的InTouch来说,虽然勉强可以通过脚本实现,但是却使权限的控制结构十分复杂,而且会增加更新维护的难度。

图6 用户权限

损管系统所需要的权限结构与Oracle数据库的角色权限机制类似[6],可以通过连接Oracle实现。Wonderware公司提供的FactorySuite中,包含了SQL Access Manager模块。InTouch SQL Access Manager附加程序支持SQL语言,并且可以简化运行时的数据、报警状态或历史数据从InTouch到SQL数据库的传递过程。更重要的是这个模块支持通用的ODBC接口。ODBC(open database connectivity)是微软公司开放服务结构(WOSA)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。InTouch应用程序与Oracle数据库连接见图7。

图7 InTouch与Oracle连接层次

结构图中ODBC驱动程序管理器(Driver Manager)和Oracle ODBC驱动程序都是DLL,ODBC驱动程序管理器是一个带有入口函数库的动态连接,用来加载ODBC驱动。Oracle ODBC驱动程序用来完成ODBC函数调用并与数据源进行对话。物理数据源是数据库管理系统、操作系统和网络的集合。采用Oracle数据库的角色权限机制能有效简化编程和维护的难度。

3 损管系统的实现

损管系统结构见图8。下层为PLC,负责数据采集和一些逻辑控制。上层为损管控制台,负责图形显示和控制。上下层通过千兆以太网连接。

图8 损管系统架构

在计算机上分别用VMWare虚拟机模拟出2个InTouch节点,加上本机InTouch开发节点,一共是3个。PLC采用Modicon公司的Concept2.6进行模拟仿真,采用Modbus通讯协议进行数据传输。并在InTouch节点上安装Modicon MODBUS Ethernet驱动程序。Oracle数据库安装在开发节点和其它任意一个InTouch节点上,进行双机互备[7],这样即使任意一台Oracle服务器损坏或出现故障,也能保证损管系统的正常运行。

实验证明,关闭任意一个无PLC仿真器节点的网络连接,其它的节点数据的传输控制都不受影响,有一定的容灾能力。

[1] 陈 光.关于某型护卫舰机电设备及损害管制自动化的研究[D].长春:吉林大学:2005.

[2] 寰 涛.分布式船舶损管培训系统的设计与实观[D].长沙:中南大学, 2011.

[3] 陶 伟,曹宏涛,周纪申.舰船损管监控系统研究[J].中国舰船研究,2012,7(1):57-60.

[4] 马 薇,娄 雨.Oracle数据库容灾备份中的流复制技术研究[J].科技通报, 2012,28(2):182-184.

[5] 方万水,李 炜,吴先高.舰船损管监控系统发展概述[J].舰船科学技术, 2002,24(6):37-39.

[6] 张开基.基于角色的数据库访问控制研究[D].青岛:中国石油大学,2009.

[7] 刘 刚,行花妮,李亚茹,等.Oracle双机热备在企业数据库环境中的应用[J].舰船科学技术, 2012(6):32-33.

猜你喜欢

舰船应用程序客户端
舰船通信中的噪声消除研究
舰船测风传感器安装位置数值仿真
删除Win10中自带的应用程序
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
舰船腐蚀预防与控制系统工程
客户端空间数据缓存策略
关闭应用程序更新提醒
三星电子将开设应用程序下载商店