首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

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

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:武汉虹信技术服务有限责任公司

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

主权项:1.一种智能建筑综合管理平台系统中WCF通信消息拦截方法,其特征在于:用于智能建筑综合管理平台系统中,智能建筑综合管理平台系统中Server端和DataBase端只有一个实例,Client能够有多个实例,对DataBase端基础数据环境配置,进行数据表的初始化,Client端和Server端用WCF的机制进行通信;当Client端向Server端发送WCF消息请求后,通过消息拦截处理过程拦截Server端返回的消息响应,并进行智能建筑综合管理平台系统中日志打印以及异常的捕捉处理,最后将消息返回给Client端;消息拦截处理过程实现如下,步骤1,建立接口类IAopOperator,该类提供一个方法ProcessIMethodCallMessage_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,在所有需要进行消息拦截的类前面加上[AopProxyAttributetypeofAopWcfProxyFactory]标签,用于实现消息拦截功能;其中,AopProxyAttribute为步骤4中定义的拦截属性类,typeof为关键词,AopWcfProxyFactory为步骤6中定义的工厂类,用来创造步骤5中的AopWcfProxy对象的工厂类。

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

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

百度查询: 武汉虹信技术服务有限责任公司 智能建筑综合管理平台系统中WCF通信消息拦截方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。