欢迎来到天天文库
浏览记录
ID:58863391
大小:244.53 KB
页数:8页
时间:2020-09-22
《基于XML的可配置服务实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于XML的可配置服务实现及应用1简介在合适的应用场景中,使用模块化、可配置的服务可很大程度上降低代码量,提高系统健壮性,减少代码调试工作量。本案实现的服务有以下特性:1、通过配置定制服务行为以响应不同的请求。2、服务模块化、不同的业务逻辑可通过实现约定接口的服务类来响应不同的业务请求,服务类可通过配置文件指定服务行为并装载类实例。3、在跨边界的通讯中,可通过同一通道传输服务配置文档来请求服务,调用者接口相对简单,传输通道和传输方式可灵活多样。4、通过XML传输请求以及结果回复,使用方便快捷,各平台都支持良好。具有广泛的
2、通用性。5、在频繁的业务变更时,通过修改配置来适应业务逻辑变化。2默认约定默认情况下,本案提及的配置或代码清单均用.net框架实现,读者请结合所使用的开发平台以及框架加以理解。3必备知识XML、XPath、XQuery、Reflection。4应用场景1、本方案适用的场景有如下特点:2、跨边界1、业务可抽象为单一或数量不多的接口2、跨语言1通讯模型客户端请求时,将调用细节封装为一个Xml报文,通过单一传输通道进行传输,而通道可用多种方式实现,如WCF、Socket等方式,根据实际情况合理选择。服务端收到请求报文后,解释报
3、文,获取相应的服务来响应请求,请求完成后,将结果以Xml的方式通过传输通道返回给调用者。1应用场景样例1.1服务请求1.2请求响应1.1三方通讯注:三方通讯时,中心主要起转发作用,中心服务仅在请求需要拦截处理时调用。1服务实现1.1服务端1.1.1通讯接口由于系统使用同一传输通道进行传输,定义一个通讯接口即可:publicRequestMessageRequest(RequestMessageStruct,由接收方,Xml请求报文等信息组成的结构体。RequestMsg)1.1.2服务接口约定方法参数返回值备注Const
4、ructXmlNodenode无构造服务,配置服务行为。ExecuteObjectmsgobject运行服务。IsFree无bool检测服务是否空闲,用于构造服务缓冲池。SetFreeboolFree无设置服务空闲状态。1.1.3服务配置1.1.3.1样例一以下是一个访问数据库的服务配置样例,不同服务可单独实现不同的配置内容,只要在Construct方法内识别即可:RC.XmlDbService.XmlDbService服务类名,RC.XmlDbService服务所在程序集
5、Service>P_Query服务执行的存储过程或SQL语句StoredProcedure声明CommandText是SQL语句还是存储过程hibernate.cfg.xml数据库连接配置,不同服务可连接不同数据库6、s/SchDate"default默认值=""mandatory强制不能为空="False"/>1.1.1.1样例二以下是一个动态调用WebService接口的服务配置样例
6、s/SchDate"default默认值=""mandatory强制不能为空="False"/>
7、,由单独的程序把WSDL编译成一个Dll,调用WebService时只要访问此服务即可:RC.XmlWSService.XmlWSService服务类名,RC.XmlWSService服务类所在的程序集RC.Webservice.NetSaleServiceWebservice程序集(WSDL编译产生)NetSaleServiceWebservice类名8、Name>P_QueryWebservice方法名1.1.2实现
8、Name>P_QueryWebservice方法名
此文档下载收益归作者所有