基于SOA的设备智能维护系统架构设计及实现

发表时间:2009-9-19 朱义 陈进 刘雨 肖文斌 来源:万方数据
关键字:SOA WCF 智能维护系统
结合面向服务架构(SOA)的技术特点及设备智能维护系统的应用需求,提出基于面向服务的设备智能维护系统的体系结构,该架构与传统软件架构相比具有松耦合、可扩展、服务的柔性组合等诸多优点。在.NET平台用面向服务的分布式编程模型WCF(Windows Communication Foundation)进行系统开发,用实际项目验证了该体系的有效性,指出SOA在开发设备智能维护系统的开发与应用中的重要价值。

0 引言

传统的设备维护是一种基于被动的维修模式FAF(Fail andFix),已经不能完全满足保障设备正常、高效和安全运行的需求。智能维护是一种新兴的设备维护概念,是一种基于主动的维护模式PAP(Predict and Prevent)。它通过对设备性能的退化评估和预测,避免了传统维护方法的盲目性。要实现智能维护不仅包括理论算法的研究,也包括合适的系统平台的搭建。针对智能维护系统的研究近年来受到学术界和产业界越来越多的关注。

由于智能维护系统包括特征提取、监测诊断、评估预测、维护决策等各种功能,每一种功能又有大量的方法可供选择,故分布式、松耦合、可柔性组合等特性对智能维护系统有着重要意义。目前DCOM、CORBA等面向对象的组件技术已广泛地应用于分布式系统的开发中。,然而这些方法存在重用性差、异构平台调用困难、互操作性差、紧耦合等诸多缺陷。

近年来提出的面向服务架构(SOA)为解决上述问题提供了可行性。本文结合面向服务架构(SOA)及智能维护系统的特点,提出了一种基于SOA的智能维护系统体系结构,并用面向服务的编程模型WCF做了相关的开发,通过实例验证了该体系结构的可行性与有效性,指出了SOA在智能维护系统中的重要应用价值。

1 面向服务架构(SOA)

1.1 SOA的基本概念

SOA是一种架构模型,在1996年由Gartner公司首次提出,它将应用程序不同功能单元(服务)通过定义良好的契约和策略联系起来,具有松耦合性、互操作性、开发迅捷、异构平台资源共享等明显优势。SOA的定义目前尚未完全统一,但其核心思想都是“面向服务”。

在一个SOA体系有下列三个角色:服务提供者、服务注册中心及服务请求者,分别担任发布、查找和绑定任务。其关系如图1所示。

图1实现SOA的各个角色的关系

1.2基于SOA的典型体系结构视图

典型的SOA体系结构如图2所示,显示了三种体系结构视图:1)应用程序体系结构:这是一种面向业务的解决方案,消费服务来自于一个或多个提供者,并将它们集成到业务处理过程中。2)服务体系结构:这为实现和消费应用程序之间提供了一个桥梁,创建了服务集的一个逻辑视图,我们可以使用这些服务,通过通用的接口和管理体系结构来调用它们。3)组件体系结构:实现了具体的功能、应用程序、业务对象等。

图2三种体系结构视图

2 基于SOA的智能维护系统架构

智能维护系统是一种采用性能衰退分析和预测方法,对设备进行实时的监测诊断和性能的退化评估,并作出相应维护决策的系统。具体来说,智能维护系统集数据采集、状态监测、故障诊断、性能评估及维护决策等于一体,并辅以用户管理、权限验证、文档报表管理等系统管理模块,是一个复杂的应用程序。

为构建功能可柔性组合的、易于扩展的、互操作性强的企业级应用程序,在图2体系结构的基础上,结合智能维护系统的需要,提出图3所示的基于SOA的智能维护系统架构图。该架构由下而上分别是数据层、基础业务服务层、业务服务总线、业务处理层和表现层,以下是对它们的详细说明。

图3基于SOA的智能维护系统体系结构视

1)数据层,该层主要包括各类数据库及数据文件。其中数据库分为知识数据库、方法数据库、波形数据库、管理数据库等。知识和方法数据库为企业级设备维护提供规则和经验;波形数据库用于存储实时波形、历史波形及分析结果;管理数据库存储用户信息、配置文件等。

2)基础业务服务层,该层中包含诸多细粒度的基础服务,如数据库访问,权限验证,文档管理,特征提取,常用算法等。这些服务可以是包装为服务的组件,也可以是单个服务,并最终全部整合发布到业务服务总线上。

3)业务服务总线,结合智能维护系统的业务逻辑,整合基础业务服务层上的各细粒度服务,形成了权限管理、数据访问、设备维护、文档报表等四条业务总线。每个业务服务总线都包含了多个面向消费者的、独立于底层组件的粗粒度业务服务。这样有利于实现独立于组件的业务,在需求更改时可以整合和调整服务而不用修改底层组件。

4)业务处理层,该层根据表示层中客户端的消息请求,通过调用业务服务总线上的不同服务完成特定的业务流程,并最终返回结果给客户端。共包含系统管理服务,企业级设备维护服务及远程维护代理,如图4所示。其中企业级设备维护服务主要通过调用企业局域网内部发布的各类监测、诊断、评估、预测、决策及执行等服务完成相关的设备维护功能;远程维护代理则通过服务注册中心查询广域网中远程维护中心所提供的各类设备维护服务,调用其中合适的完成相关分析,并将分析结构返回给客户端。

图4业务服务层结构视图

5)表现层,该层首先通过U1处理模块,该模块主要作用是管理一些固定化的U1逻辑,并根据各种状态选择前端的用户界面视图。当用户登录,U1处理模块将对用户信息进行验证,并加载用户配置文件,通过用户配置文件决定该用户能浏览和使用哪些界面视图。

3 系统实现

本文依托“大型变频鼓风机故障预测与维护技术研究”项目(国家863计划),基于.NET Framework3.0平台进行某风机智能维护系统的开发。该系统使用SOA的实现技术之一——WCF编程模型,把各类不同的服务部署在网络上,由客户端按需要调用,完成对风机智能维护。整个系统体现了可柔性组合、易于扩展、松耦合等优点。

以下介绍WCF技术的基本理念,并以智能维护系统的核心模块——性能退化评估子系统为例,具体阐述WCF服务的实现、发布及消费。

3.1 WCF技术

WCF是SOA的实现技术之一,它将现有整套.NET分布式技术(如:.Net Remoting、ASMX、WSE和MSMQ等)整合为一个编程模型,通过稳定的结构、极大改进的功能性和互操作性以及良好的扩展性,全面改善了编程模式。

本质上,WCF是完全面向服务的,它是真正的面向服务的编程模型。服务可以根据安全性、传输协议等需要发布为多个端点,每个端点由地址、合同和绑定三要素构成。地址指定了发送消息的目标位置,合同描述消息所包含的内容,绑定描述如何发送消息。客户端通过对这三要素的配置即可实现对服务的访问,而不用关心服务内部是如何实现的,如图5(其中A、C、B分别代表Address、Contract和Binding)所示。因此,利用WCF技术可以很方便的满足智能维护系统远程、分布式的需要。

图5 服务和端点

3.2性能退化评估子系统

性能退化评估子系统是智能维护系统的核心模块之一。这里以基于SVDD(支持向量数据描述)坤。方法的性能退化评估服务为例。该方法通过训练正常数据以建立包络面,计算待评估数据与包络面的广义距离并将其归一化作为性能退化评估指标。

(1)服务的实现与发布

SVDD算法复杂,这里使用matlab6.5的COM组件技术把SVDD的性能退化评估matlab算法包打包为动态连接库(dll),应用WCF技术在服务器端将打包的dll包装为服务,并用IIS承载的方式把服务端点发布到网上。

首先在工程中引用System.ServiceModel创建服务接口。该接口定义了退化评估的各个方法,但并不实现。使用[Service.Contract]和[OperationContract]修饰接口和接口中定义的方法,以表明该接口和方法要作为服务的合同发布。如下申明了接口ISvdd及它的两个方法Train和Assess(省略了具体参数)。

图6发布的WCF服务

(2)服务的消费

客户端按SVDD服务的发布地址添加对SVDD的服务引用,命名为SVDDProxy,此时在客户端会自动从服务器端获取服务的端点信息,并生成一个app.config配置文件(如图7所示)。

性能退化评估子系统的主界面如图8所示。其中的性能评估曲线模拟了风机某测点处发生转子不平衡且不平衡量逐渐加大时,风机整体性能也随之下降的情况。

图8性能退化评估主界面

4 结束语

本文提出了一种基于SOA的智能维护系统的体系结构,并在.NET Framework3.0平台基于面向服务的分布式编程模型WCF进行系统开发,对该体系结构进行了初步的验证与实现,将SOA成功地应用到了实际项目中。

与传统的基于组件的分布式编程技术相比,基于SOA的体系结构有着松耦合性、互操作性、可柔性组合、易于扩展、异构平台资源共享等诸多优势,因此,SOA在智能维护系统的研究中有广阔的应用前景。为了使系统更加完善,今后将重点进行SOA中远程维护中心之间的协作模式等研究。

http://articles.e-works.net.cn/SOA/Article71462_2.htm

转载于:https://www.cnblogs.com/jdmei520/archive/2010/10/12/1848937.html

基于SOA的设备智能维护系统架构设计及实现相关推荐

  1. 基于BPMN2.0的工单系统架构设计(下)

    版权声明: 本文为博主原创文章,未经博主允许不得转载.关注公众号技术汇(ID: jishuhui_2015) 可联系到作者. 在上两篇文章中,介绍了BPMN2.0和工作流定义语言(以下简称WDL),以 ...

  2. 基于BPMN2.0的工单系统架构设计(上)

    版权声明: 本文为博主原创文章,未经博主允许不得转载.关注公众号 技术汇(ID: jishuhui_2015) 可联系到作者. 一.前言 『工单系统』从宏观上看,是一些状态流的转换,笔者认为,工单系统 ...

  3. linux自动识别车牌设计,基于Linux的车牌智能识别系统的设计与实现

    摘要: 随着人们生活水平的不断提高,越来越多的技术应用到人们的日常生活中,通信技术和计算机技术与人们的生活密切相连,应用在视频监控.数码网络等方面,这些技术为人们的生活提供了强有力的保障.如何设计一套 ...

  4. 基于BPMN2.0的工单系统架构设计(上) 1

    版权声明: 本文为博主原创文章,未经博主允许不得转载.关注公众号 技术汇(ID: jishuhui_2015) 可联系到作者. 一.前言 『工单系统』从宏观上看,是一些状态流的转换,笔者认为,工单系统 ...

  5. ssm基于大数据的智能公交平台的设计与实现毕业设计源码261620

    目  录 摘要 1 绪论 1.1研究背景 1.2研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2智能公交平台 分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2 ...

  6. 基于Java的多元化智能选课系统 毕业设计-附源码040909

    多元化智能选课系统的设计与实现 摘 要 多元化智能选课系统使用Java语言的Springboot框架,采用MVVM模式进行开发,数据方面主要采用的是微软的Mysql关系型数据库来作为数据存储媒介,配合 ...

  7. springboot基于Java的多元化智能选课系统毕业设计源码040909

    多元化智能选课系统的设计与实现 摘 要 多元化智能选课系统使用Java语言的Springboot框架,采用MVVM模式进行开发,数据方面主要采用的是微软的Mysql关系型数据库来作为数据存储媒介,配合 ...

  8. 物联网设备网关系统架构设计

    0.写在前面的话 坦白来讲,我对物联网行业沉淀较少. 做软件出身的我,之前也学过一些单片机的知识,还有射频,ZigBee诸如此类的无线传输协议,因为那段时间"智能家居"火了,年少无 ...

  9. (附源码)基于Java的多元化智能选课系统 毕业设计040909

    多元化智能选课系统的设计与实现 摘 要 多元化智能选课系统使用Java语言的Springboot框架,采用MVVM模式进行开发,数据方面主要采用的是微软的Mysql关系型数据库来作为数据存储媒介,配合 ...

  10. 一、基于wifi控制的智能家居系统之项目简介和设计方案(硬件基于arduino+esp8266,软件Android+Web端+scoket服务器,实现语音控制)

    由于是物联网工程的学生,会一点硬件,会一点Android开发,会一点Web开发,于是乎决定毕设的时候做一个简单一点的毕设,但是能够把所有的知识都应用,串联起来,将所学的知识实践. 一.项目功能介绍 项 ...

最新文章

  1. Java List与ArrayList 的区别(List list =new Arraylist(); ArrayList<String> arrayList = new ArrayList())
  2. FineUIMvc随笔(1)动态创建表格列
  3. YouTube增加社交功能:邀请联系人聊天 可30人群聊
  4. 《剑指offer》两个链表的第一个公共节点
  5. 汇编学习笔记(二)--数据处理的两个基本问题
  6. IO流配置文件,键值对Properties 的读取
  7. 为什么年轻人挣得很多还是穷?北上广深挑战指数报告~
  8. DELPHI 中的自定义类笔记(一) OBJECT 创建类 不用 CREATE 【转】
  9. 广告系统中的Exploitation and Exploration(二)
  10. fastjson php,Fastjson 对象或数组转JSON
  11. DbVisualizer 9 解决中文乱码问题(win7,win10)
  12. XXXX is not in the sudoers file. This incident will be reported解决方法
  13. android应用虚拟内存耗尽,GuardMalloc导致虚拟内存耗尽
  14. 简述Thread的interrupt()、interrupted()及isInterrupted()的区别
  15. js如何保留对象中指定字段(太刁了)
  16. 怎么主动发起话题_怎么跟喜欢的人聊天找话题?这8个技巧让你侃侃而谈
  17. 视频教程-python全栈习题课-Python
  18. 美的冰箱微晶X探鲜计划,为你开启X种畅想!
  19. 速学堂Java300集第五章作业
  20. html5 倒计时插件,基于HTML5 time元素的倒计时jquery插件

热门文章

  1. 20189320《网络攻防》第二周作业
  2. 上海电力学院计算机软件技术大作业,计算机硬件技术大作业报告2.doc
  3. 欧姆龙485通讯示例程序_PLC的通讯到底有多强大???
  4. python自动化开发-[第九天]-异常处理、进程
  5. 元编程: is_floating_point<Tp>
  6. python sub函数用法_Python Pandas dataframe.sub()用法及代码示例
  7. navicat oracle存储过程,Navicat 运行 Oracle 存储过程示例
  8. 如何预测用户query意图 « 搜索技术博客-淘宝
  9. 计算机主机箱内的硬件设备主要有哪些,电脑主机有哪些硬件设备
  10. Spigot 算法之一 计算调和级数的和