CN106844156A - 智能建筑综合管理平台系统中wcf通信消息拦截方法 - Google Patents

智能建筑综合管理平台系统中wcf通信消息拦截方法 Download PDF

Info

Publication number
CN106844156A
CN106844156A CN201710060017.XA CN201710060017A CN106844156A CN 106844156 A CN106844156 A CN 106844156A CN 201710060017 A CN201710060017 A CN 201710060017A CN 106844156 A CN106844156 A CN 106844156A
Authority
CN
China
Prior art keywords
class
message
wcf
management platform
intelligent building
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710060017.XA
Other languages
English (en)
Other versions
CN106844156B (zh
Inventor
叶晓珊
钟卫为
胡志勇
阳许军
邱显龙
蔡剑峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Hong Xin Technological Service Co Ltd
Original Assignee
Wuhan Hong Xin Technological Service Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Hong Xin Technological Service Co Ltd filed Critical Wuhan Hong Xin Technological Service Co Ltd
Priority to CN201710060017.XA priority Critical patent/CN106844156B/zh
Publication of CN106844156A publication Critical patent/CN106844156A/zh
Application granted granted Critical
Publication of CN106844156B publication Critical patent/CN106844156B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种智能建筑综合管理平台系统中WCF通信消息拦截方法,当Client端向Server端发送WCF消息请求后,通过消息拦截过程拦截Server端返回的消息响应,并进行智能建筑综合管理平台系统中日志打印以及异常的捕捉处理,最后将消息返回给Client端,本发明利用AOP编程的方式实现了对WCF通信消息的拦截实现日志打印和异常处理的功能。本发明能够实现自动化消息拦截,降低了资源成本,应用广泛,商业价值高。

Description

智能建筑综合管理平台系统中WCF通信消息拦截方法
技术领域
本发明涉及智能建筑综合管理平台,具体涉及基于WCF(Windows CommunicationFoundation)通信框架开发的智能建筑综合管理平台客户端和服务端通信的消息拦截统一处理的实现方法。
背景技术
在智能建筑综合管理平台中,客户端与服务端的通信机制采取的是WCF通信机制,在智能建筑综合管理平台中的 WCF通信过程中有打印日志和异常处理的需求。
WCF是由微软开发的一系列支持数据通信的应用程序框架。对于WCF的客户端来说,WCF服务就像是一个Web Service一样,所有WCF的通信链接都是由客户端的服务代理来完成,客户端开发人员不需要在WCF通信方面花费精力,只需专注客户端的业务开发,对于开发客户端系统很便利。同时WCF通信也采取了SOAP(Simple Object Access Protocol,简单对象访问协议),这种简单对象访问协议消息通信机制,使得通信过程很安全。由于WCF开发的便利性和安全性,当前在智能建筑综合管理平台中采取了WCF的通信机制。
但是,在智能建筑综合管理平台中需要处理日志打印和异常的捕捉处理的地方非常多,如果编程人员在每一个需要日志打印和异常处理的地方都手动编写代码,无疑将增加工作量,编写大量重复代码降低开发效率,出错率也会上升。传统的日志打印方法和异常处理方法无法满足智能建筑综合管理平台快速开发的需求。
发明内容
针对现有技术的问题, 本发明提供了一种智能建筑综合管理平台系统中WCF通信消息拦截方法。
本发明提供一种智能建筑综合管理平台系统中WCF通信消息拦截方法,当Client端向Server端发送WCF消息请求后,通过消息拦截处理过程拦截Server端返回的消息响应,并进行智能建筑综合管理平台系统中日志打印以及异常的捕捉处理,最后将消息返回给Client端;消息拦截处理过程实现如下,
步骤1,建立接口类IAopOperator,该类提供一个方法Process(IMethodCallMessage _call),其中参数_call的类型为IMethodCallMessage,IMethodCallMessage为微软提供的系统类,_call参数为方法调用消息接口信息;
步骤 2,建立抽象类AopProxyBase,所有自定义消息拦截代理类都从此类派生;该类继承步骤1中IAopOperator接口类和微软系统提供的RealProxy类,实现步骤1中的接口类IAopOperator中的Process方法, Process方法用来返回拦截的WCF消息所执行的方法结构;
步骤3,建立接口类IAopProxyFactory,用于创建特定的消息拦截代理的实例,IIAopProxyFactory类提供一个方法CreateAopProxyInstance,该方法用来返回步骤2中定义的抽象类AopProxyBase;
步骤4,建立类AopProxyAttribute,该类继承微软提供的系统类ProxyAttribute;
步骤5,建立类AopWcfProxy,该类继承自步骤2中的AopProxyBase类;该类覆写了AopProxyBase中的Process方法,实现对WCF通信过程中消息拦截的处理,在智能建筑综合管理平台中实现通用的日志打印和异常的捕捉处理;
步骤6,建立工厂类AopWcfProxyFactory,该类继承步骤3中的接口类IAopProxyFactory,实现接口的方法CreateAopProxyInstance,返回步骤5中的AopWcfProxy对象;
步骤7,在所有需要进行消息拦截的类前面加上[AopProxyAttribute(typeof(AopWcfProxyFactory))]标签,用于实现消息拦截功能;
其中,AopProxyAttribute为步骤4中定义的拦截属性类,typeof 为关键词,AopWcfProxyFactory为步骤6中定义的工厂类,用来创造步骤5中的AopWcfProxy对象的工厂类。
而且,步骤4中,AopProxyAttribute重写了ProxyAttribute类中的CreateInstance方法,用来获得被拦截对象的执行类。
在智能建筑综合管理平台中的 WCF通信过程中有对消息拦截进行打印日志和异常的捕捉处理的需求,本发明正是利用AOP编程的方式实现了对WCF通信消息的拦截实现日志打印、异常的捕捉处理的功能。在智能建筑综合管理平台中任何需要日志打印和异常的捕捉处理的地方按照约定的规则编码的时候给函数加上属性,就能实现异常的捕捉和处理以及日志的的打印,解决了重复编写代码的问题和提高了开发效率,降低了资源成本。进一步地,本发明中实现的对WCF消息进行拦截并进行日志打印和异常处理的功能可以应用的场景不限于智能建筑,任何需要实现消息拦截的功能都可以达到要求,应用广泛,商业价值高。
附图说明
图1为本发明实施例中系统拓扑连接图。
图2为本发明实施例中WCF通信的消息拦截的流程图。
具体实施方式
以下结合附图和实施例具体说明本发明的技术方案。
本发明的实施例基于WCF的分布式集群环境,基本运行环境的拓扑图如图1所示,使用分布式架构,智能建筑综合管理平台系统中Server(服务器)端和DataBase(数据库)端只有一个实例,Client(客户端)可以有多个实例。
在进行具体实施之前,需要对DataBase端基础数据环境配置,进行数据表的初始化。Client端和Server端用WCF的机制进行通信。
AOP(Aspect Oriented Programming)是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术,在不修改源代码的情况下给程序动态添加功能。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发效率。AOP的主要功能是日志记录,性能统计,安全控制,事物处理,异常的捕捉处理等。
利用AOP方式实现Client端对Server端的WCF通信的消息进行拦截,进行日志打印和异常的捕捉处理的实现方法包括如下步骤:
步骤1:建立接口类IAopOperator。该类提供一个方法Process(IMethodCallMessage _call) 。其中参数_call的类型为IMethodCallMessage,IMethodCallMessage为微软提供的系统类,_call参数为方法调用消息接口信息。方法Process的实现和使用参见下一步骤。
步骤 2:建立抽象类AopProxyBase,所有自定义消息拦截代理类都从此类派生。该类继承步骤1中IAopOperator接口类和微软系统提供的RealProxy类。实现步骤1中的接口类IAopOperator中的Process方法。该Process方法主要用来返回拦截的WCF消息所执行的方法结构。RealProxy类的Invoke方法为微软系统提供的现有技术,可重写RealProxy类的Invoke方法来调用Process方法。这样在所有继承AopProxyBase的类中只要覆写Process方法,就可以加入特殊的处理,比如日志打印或者异常的捕捉处理等。但是开发人员不能在每一个需要实现日志打印和异常的捕捉处理的地方都去重写Process方法。需要实现一个通用的方法以达到目的,减少代码的编写量。接下来的步骤就是来实现这个通用的方法。
步骤3:建立接口类IAopProxyFactory,用于创建特定的消息拦截代理的实例,IAopProxyFactory的作用是使消息拦截独立于具体的消息拦截代理类。IAopProxyFactory类提供一个方法CreateAopProxyInstance,该方法返回步骤2中定义的抽象类AopProxyBase。
步骤4:建立类AopProxyAttribute。该类继承微软提供的系统类ProxyAttribute。如果一个类想实现具体的消息拦截,只要实现步骤2中的抽象类AopProxyBase和步骤3中的IAopProxyFactory类,然后加上AopProxyAttribute特性即可。AopProxyAttribute重写了ProxyAttribute类中的CreateInstance方法,用来获得被拦截对象的执行类。ProxyAttribute类中的CreateInstance方法为微软系统提供的现有技术,本发明不予赘述。
步骤5:建立类AopWcfProxy,该类继承自步骤2中的AopProxyBase类。该类覆写了AopProxyBase中的Process方法。实现对WCF通信过程中消息拦截的处理,在智能建筑综合管理平台中实现的是通用的日志打印和异常的捕捉处理。
步骤6:建立工厂类AopWcfProxyFactory,该类继承步骤3中的接口类IAopProxyFactory。实现接口的方法CreateAopProxyInstance,返回步骤5中的AopWcfProxy对象。
步骤7:在所有需要进行消息拦截的类前面加上[AopProxyAttribute(typeof(AopWcfProxyFactory))]标签即可实现消息拦截功能。其中AopProxyAttribute为步骤4中定义的拦截属性类,typeof 为关键词, AopWcfProxyFactory为步骤6中定义的工厂类,用来创造步骤5中的AopWcfProxy对象的工厂类。消息拦截功能实现了捕获了WCF通信过程中所有的异常和日志记录,并进行个性化处理后返回给Client。
利用上述方案来实现Client端的日志打印以及异常的捕捉处理的流程参见图2。在Client端向Server端发送WCF消息请求后,本发明中实现的消息拦截处理过程会拦截Server端返回的消息响应,并进行日志打印以及异常的捕捉处理,最后将消息返回给Client端。具体实施时,本发明技术方案可由本领域技术人员采用软件技术实现,在需要实现日志打印以及异常的捕捉处理的地方只要加上约定的代码就可以轻易实现,实现自动日志打印以及异常的捕捉处理,达到了代码的复用目的,减少了代码的编写量,降低出错率。
上述实施例流程描述仅为了清楚说明本发明的基本方法和装置,但本发明并不仅限于上述实施例;凡是依据本发明的技术实质上实施例所作的任何简单修改、等同变化与修饰,均落入本发明的技术方案的保护范围之内。

Claims (2)

1.一种智能建筑综合管理平台系统中WCF通信消息拦截方法,其特征在于:当Client端向Server端发送WCF消息请求后,通过消息拦截处理过程拦截Server端返回的消息响应,并进行智能建筑综合管理平台系统中日志打印以及异常的捕捉处理,最后将消息返回给Client端;消息拦截处理过程实现如下,
步骤1,建立接口类IAopOperator,该类提供一个方法Process(IMethodCallMessage _call),其中参数_call的类型为IMethodCallMessage,IMethodCallMessage为微软提供的系统类,_cal参数为方法调用消息接口信息;
步骤 2,建立抽象类AopProxyBase,所有自定义消息拦截代理类都从此类派生;该类继承步骤1中IAopOperator接口类和微软系统提供的RealProxy类,实现步骤1中的接口类IAopOperator中的Process方法, Process方法用来返回拦截的WCF消息所执行的方法结构;
步骤3,建立接口类IAopProxyFactory,用于创建特定的消息拦截代理的实例,IIAopProxyFactory类提供一个方法CreateAopProxyInstance,该方法用来返回步骤2中定义的抽象类AopProxyBase;
步骤4,建立类AopProxyAttribute,该类继承微软提供的系统类ProxyAttribute;
步骤5,建立类AopWcfProxy,该类继承自步骤2中的AopProxyBase类;该类覆写了AopProxyBase中的Process方法,实现对WCF通信过程中消息拦截的处理,在智能建筑综合管理平台中实现通用的日志打印和异常的捕捉处理;
步骤6,建立工厂类AopWcfProxyFactory,该类继承步骤3中的接口类IAopProxyFactory,实现接口的方法CreateAopProxyInstance,返回步骤5中的AopWcfProxy对象;
步骤7,在所有需要进行消息拦截的类前面加上[AopProxyAttribute(typeof(AopWcfProxyFactory))]标签,用于实现消息拦截功能;
其中,AopProxyAttribute为步骤4中定义的拦截属性类,typeof 为关键词,AopWcfProxyFactory为步骤6中定义的工厂类,用来创造步骤5中的AopWcfProxy对象的工厂类。
2.根据权利要求1所述智能建筑综合管理平台系统中WCF通信消息拦截方法,其特征在于:步骤4中,AopProxyAttribute重写了ProxyAttribute类中的CreateInstance方法,用来获得被拦截对象的执行类。
CN201710060017.XA 2017-01-24 2017-01-24 智能建筑综合管理平台系统中wcf通信消息拦截方法 Active CN106844156B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710060017.XA CN106844156B (zh) 2017-01-24 2017-01-24 智能建筑综合管理平台系统中wcf通信消息拦截方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710060017.XA CN106844156B (zh) 2017-01-24 2017-01-24 智能建筑综合管理平台系统中wcf通信消息拦截方法

Publications (2)

Publication Number Publication Date
CN106844156A true CN106844156A (zh) 2017-06-13
CN106844156B CN106844156B (zh) 2020-08-07

Family

ID=59121829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710060017.XA Active CN106844156B (zh) 2017-01-24 2017-01-24 智能建筑综合管理平台系统中wcf通信消息拦截方法

Country Status (1)

Country Link
CN (1) CN106844156B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678869A (zh) * 2017-07-26 2018-02-09 上海壹账通金融科技有限公司 客户端异常定位方法、装置、计算机设备和存储介质
CN109471773A (zh) * 2018-10-31 2019-03-15 武汉斗鱼网络科技有限公司 一种前端日志多通道输出的方法、装置、服务器及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508702A (zh) * 2011-10-20 2012-06-20 北京金和软件股份有限公司 一种基于aop技术进行拦截来处理业务通用逻辑的方法
CN103188289A (zh) * 2011-12-28 2013-07-03 北京新媒传信科技有限公司 一种客户端与服务端的消息通信方法
US20140059108A1 (en) * 2012-08-27 2014-02-27 Microsoft Corporation Unified communication interface for distributed computing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508702A (zh) * 2011-10-20 2012-06-20 北京金和软件股份有限公司 一种基于aop技术进行拦截来处理业务通用逻辑的方法
CN103188289A (zh) * 2011-12-28 2013-07-03 北京新媒传信科技有限公司 一种客户端与服务端的消息通信方法
US20140059108A1 (en) * 2012-08-27 2014-02-27 Microsoft Corporation Unified communication interface for distributed computing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
听哥哥的话: ".net自定义AOP,透明代理与真实代理", 《博客园》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678869A (zh) * 2017-07-26 2018-02-09 上海壹账通金融科技有限公司 客户端异常定位方法、装置、计算机设备和存储介质
CN107678869B (zh) * 2017-07-26 2020-01-10 深圳壹账通智能科技有限公司 客户端异常定位方法、装置、计算机设备和存储介质
CN109471773A (zh) * 2018-10-31 2019-03-15 武汉斗鱼网络科技有限公司 一种前端日志多通道输出的方法、装置、服务器及存储介质
CN109471773B (zh) * 2018-10-31 2022-04-12 武汉斗鱼网络科技有限公司 一种前端日志多通道输出的方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN106844156B (zh) 2020-08-07

Similar Documents

Publication Publication Date Title
US10467321B2 (en) Systems and methods for dynamic C# serialization
US7734687B2 (en) Environment service architectures for netcentric computing systems
CN103559118B (zh) 一种基于aop与注解信息系统的安全审计方法
US5778228A (en) Method and system for transferring remote procedure calls and responses over a network
US8719844B2 (en) Merging realtime data flows
US8468541B2 (en) Event driven sendfile
CN109670297B (zh) 业务权限的开通方法、装置、存储介质及电子设备
EP3364631B1 (en) Dynamic orchestration of microservices
US20050289388A1 (en) Dynamic cluster configuration in an on-demand environment
US10353750B2 (en) Discovery and exposure of transactional middleware server-based applications as consumable service endpoints
CN103150154B (zh) 一种应用程序插件的实现方法及装置
CN103049268A (zh) 一种基于Naplet的应用开发管理系统
CN104615489A (zh) 一种多节点数据交互的实现方法
CN110187986B (zh) 一种命令管理方法、系统、装置及计算机可读存储介质
CN106844156A (zh) 智能建筑综合管理平台系统中wcf通信消息拦截方法
US20030055965A1 (en) User-defined units of context in a distributed computer environment
CN108496157B (zh) 使用扩展接口提供运行时跟踪的系统和方法
Sirer et al. Distributed virtual machines: A system architecture for network computing
CN105260179A (zh) 一种实现flex与servlet交互的方法
KR101943936B1 (ko) 웹 표준 애플리케이션 개발을 위한 통합 외부 연동 시스템 및 방법
CN113835904A (zh) 一种远程过程调用控制方法、装置、设备及存储介质
US20030046406A1 (en) HTTP connector
Zhou Eager Handlers-communication optimization in Java-based distributed applications with reconfigurable fine-grained code migration
CN113504956B (zh) 微服务平台下公共功能的调用方法、装置、设备及介质
CN113190367B (zh) 基于浏览器实现的跨系统数据交互方法及装置、电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant