基于DotNet平台的可插拔的Web服务动态调用方法

文档序号:6483548阅读:458来源:国知局
专利名称:基于DotNet平台的可插拔的Web服务动态调用方法
技术领域
本发明涉及一种基于DotNet平台的可插拔的Web服务动态调用 方法。
背景技术
近几年,Internet已经深入企业,企业不仅仅是从Internet上 获取信息,企业的许多业务也延伸其上,Web服务的概念应运而生。 Web服务是为其它应用提供数据和服务的应用逻辑单元,应用程序通 过标准的Web协议和数据格式获得Web服务,如HTTP 、 XML和SOAP 等,每个Web服务的实现是完全独立的。Web服务具有基于组件的开 发和Web开发两者的优点。Web服务是在互联网上的一种服务协议, 采用XML作为基本的标记语言,SOAP (Simple Object Access Protocol)作为互操作协议,WSDL (Web Service Description Language)作为月艮务描述i吾言,通过UDDI (Universal Description Discovery & Integration)可以把服务注册到互联网以便搜索,为 更多的用户使用其服务。
Web服务的以上特点,决定了Web服务具有分布性、可复用性、 开放性以及可交互性等特性,这使得Web服务在各软件系统中被广泛 应用。在基于DotNet平台软件系统中调用Web服务时, 一般的解决 方案是在软件系统的代码中直接通过Web服务的地址来添加软件系 统对Web服务的引用,然后再在代码中对Web服务进行实例化,最后 再通过实例化后的Web服务实例来调用Web服务中的相关方法。
上述调用Web服务的方法存在如下缺点
(1) 软件系统与是否调用Web服务耦合度高。如果软件系统不再 需要调用Web服务,则该软件系统就要移除相关调用代码,整个软件 系统可能需要重新编译,给软件系统的稳定性带来一定风险。
(2) 软件系统与Web服务地址的耦合度高。如果相关Web服务地 址发生了更改,则调用该Web服务的软件系统相关调用代码就需要更 改,整个软件系统可能需要重新编译,给软件系统的稳定性带来一定 风险。(3)软件系统与Web服务的相关方法的耦合度高。如果相关Web 服务的相关方法发生了更改(方法名称、参数等),则调用该Web服 务的软件系统相关调用代码就需要更改,整个软件系统可能需要重新 编译,给软件系统的稳定性带来一定风险。

发明内容
本发明所要解决的技术问题是针对上述现有技术中存在缺点,而 提供一种基于DotNet平台的可插拔的Web服务动态调用方法。 本发明解决其技术问题所采用的技术方案
本方法在需要调用Web服务处实例化WSProxy类,读取配置文件 Conf ig. xml,并调用IsInvokeWebService方法检查是否需要调用Web 服务,如果需要调用,则执行InvokeWebService方法;如果不需要 调用,则执行软件项目其它业务逻辑。
本发明的具体方法步骤如下
(1) 软件系统在调用Web服务时,首先读取配置文件,把配置 文件信息发送给WsProxy类进行验证;
(2) WsProxy类通过IsInvokeWebService方法对配置文件信息 进行分析,判断调用Web服务开关是否打开;
(3) 如果开关未打开,则WsProxy类通过IsInvokeWebService 方法直接返回消息给软件系统,通知软件系统执行其他业务逻辑;
(4) 如果开关打开,则WSProxy类根据配置信息通过 InvokeWebService方法连接Web服务;
(5) 连接Web服务成功后,WSProxy类获取Web服务的WSDL描 述信息;
(6) WSProxy类根据获取的WSDL描述信息,生成客户端代理类;
(7) SProxy类在内存中动态编译代理类,执行调用Web服务的 方法,最后把方法执行的结果返回给软件系统。
本发明的有益效果如下
本发明不仅实现了灵活的调用Web服务,并且降低了调用者与 Web服务间的耦合度,为软件系统对外接口的实现提供了很好的解决 方案。本发明具有以下两个特点
(l)可插拔性Web服务调用者可以通过配置文件手工动态配置实现是否需要调 用Web服务。
(2)动态调用
Web服务接口调用者可以通过配置文件手工动态配置Web服务的 URL地址、Web服务命名空间、Web服务类名、Web服务方法名,Web 服务参数列表基本信息,来动态调用Web服务。 一旦Web服务发生变 化,调用者只需修改配置文件即可,调用此Web服务的软件系统无需 修改和重新编译。


图l为本发明的算法的时序图。
具体实施例方式
本实施例的的具体方法步骤如下
(1) 软件系统在调用Web服务时,首先读取配置文件,把配置 文件信息发送给WsProxy类进行验证;
(2) WsProxy类通过IsInvokeWebService方法对配置文件信息 进行分析,判断调用Web服务开关是否打开;
(3) 如果开关未打开,则WsProxy类通过IsInvokeWebService 方法直接返回消息给软件系统,通知软件系统执行其他业务逻辑;
(4) 如果开关打开,则WSProxy类根据配置信息通过 InvokeWebService方法连接Web服务;
(5) 连接Web服务成功后,WSProxy类获取Web服务的WSDL描 述信息;
(6) WSProxy类根据获取的WSDL描述信息,生成客户端代理类;
(7) SProxy类在内存中动态编译代理类,执行调用Web服务的 方法,最后把方法执行的结果返回给软件系统。
对WsProxy类的具体实现描述如下
首先根据从软件系统中传递来的配置信息调用 IsInvokeWebService方法检査Web服务调用开关是否打开,如果打 开,则初始化Web服务地址、Web服务命名空间、Web服务类名称和 Web服务方法名称;
Web服务方法参数的初始化由InitParams方法来完成,根据配置信息中的参数信息从哈希表里读取参数值;
动态调用Web服务的是通过InvokeWebService方法实现的; WsProxy类编译后的结果是动态链接库WSProxy. dll,基于 DotNet的软件项目只需引用WSProxy. dll,在需要调用Web服务处实 例化WSProxy类,读取配置文件Conf ig. xml,并调用 IsInvokeWebService方法检査是否需要调用Web服务,如果需要调 用,则执行InvokeWebService方法。如果不需要调用,则执行软件 项目其它业务逻辑。
本申请人利用本实施例的方法具体开发了日志管理平台系统,所 述日志管理平台管理系统实现了日志捕获、日志记录和日志提醒等可 插拔功能接口,使软件系统能够方便统一的进行日志管理,不仅扩展 了软件系统的功能,并且还提高了软件系统的开发效率,降低了开发 成本。
日志管理平台的可插拔功能接口的具有如下特点
(1) 可插拔。软件系统可以根据自身的业务功能特点,无需编 译,只要修改系统配置文件,即可动态决定是否需要调用日志管理平 台的相关功能接口。
(2) 动态调用。软件系统动态调用日志管理平台的相关功能接 口,在日志管理平台功能接口发生变化的情况下,软件系统无需修改 代码,只要修改系统配置文件,即可继续使用日子好管理平台相关功 能接口,保证了软件系统的独立性,降低了软件系统和日志管理平台 的耦合度。
权利要求
1、基于DotNet平台的可插拔的Web服务动态调用方法,其具体方法步骤如下(1)软件系统在调用Web服务时,首先读取配置文件,把配置文件信息发送给WsProxy类进行验证;(2)WsProxy类通过IsInvokeWebService方法对配置文件信息进行分析,判断调用Web服务开关是否打开;(3)如果开关未打开,则WsProxy类通过IsInvokeWebService方法直接返回消息给软件系统,通知软件系统执行其他业务逻辑;(4)如果开关打开,则WSProxy类根据配置信息通过InvokeWebService方法连接Web服务;(5)连接Web服务成功后,WSProxy类获取Web服务的WSDL描述信息;(6)WSProxy类根据获取的WSDL描述信息,生成客户端代理类;(7)SProxy类在内存中动态编译代理类,执行调用Web服务的方法,最后把方法执行的结果返回给软件系统。
全文摘要
本发明涉及一种基于DotNet平台的可插拔的Web服务动态调用方法。本发明在需要调用Web服务处实例化WSProxy类,读取配置文件Config.xml,并调用IsInvokeWebService方法检查是否需要调用Web服务,如果需要调用,则执行InvokeWebService方法;如果不需要调用,则执行软件项目其它业务逻辑。本发明有益效果是不仅实现了灵活的调用Web服务,并且降低了调用者与Web服务间的耦合度,为软件系统对外接口的实现提供了很好的解决方案;本发明具有可插拔性和动态调用的两个特点。
文档编号G06F9/44GK101534324SQ20091007413
公开日2009年9月16日 申请日期2009年4月14日 优先权日2009年4月14日
发明者辉 乔, 卜思宁, 卢建辉, 咏 庞, 张旭昌, 武海滨, 贾殿承 申请人:河北全通通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1