CN106844156A - 智能建筑综合管理平台系统中wcf通信消息拦截方法 - Google Patents
智能建筑综合管理平台系统中wcf通信消息拦截方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message 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(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方法,用来获得被拦截对象的执行类。
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)
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)
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 |
-
2017
- 2017-01-24 CN CN201710060017.XA patent/CN106844156B/zh active Active
Patent Citations (3)
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)
Title |
---|
听哥哥的话: ".net自定义AOP,透明代理与真实代理", 《博客园》 * |
Cited By (4)
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 |