网络服务器访问系统及方法

文档序号:7975774阅读:132来源:国知局
专利名称:网络服务器访问系统及方法
技术领域
本发明涉及一种网络服务器访问系统及方法。
技术背景Web services (Web服务)是一种应用程序,它通过Web通讯协议及数据格式的开放式标 准(如HTTP、 XML及SOAP等)来为其它的应用程序提供服务,向外界开放一个能够通过Web进 行调用的API (Application Programming Interface,应用编程接口),用户能够用编程的 方法通过Web来调用Web services应用程序。Web services平台需要一套协议来实现分布式应用程序的创建,任何平台都有它的数据 表示方法和类型系统,要实现互操作性,Web servic:es平台必须提供一套标准的类型系统, 用于沟通不同平台、编程语言和组件模型中的不同类型系统,以下为Web services用到的一 些技术。1. 可扩展标记语言XML (Extensible Markup Language) , XML是Web services平台中 表示数据的基本格式,除了易于建立和易于分析外,XML主要的优点在于它既与平台无关, 又与厂商无关。2. 简单对象访问协议SOAP (Simple Object Access Protocol) , SOAP提供了标准的远 程过程调用(RPC, Remote Procedure Call)协议来调用Web services, SOAP规范定义了 SOAP消息的格式,以及怎样通过HTTP协议(Hypertext Transmission Protocol,超文本传 输协议)来使用SOAP。 SOAP也是基于XML的,XML是SOAP的数据编码方式。3. Web services描述语言WSDL (Web Services Description Language),这是一种基 于XML的语言,用于描述Web services及其函数、参数和返回值。每个Web service都有一个 用WSDL编写的描述文件,以提供给用户每个Web service的具体使用方法及所需要的参数信 息等。在2006年3月29日公开、申请号为200510029089.5的中国专利申请案,揭露了一种Web services的实时、动态合成方法,用户只要选择一定的输入和所期望的输出,就可实时、动 态地在现有的Web services基础上合成一个新的Web service,来完成所要求的査询。但该 方法对用户自定义的复杂类型不能完全满足,当输入/输出参数是用户自定义的复杂类型时 ,如果该类型没有装载到当前执行域中,这种方法就不能实现
发明内容
鉴于以上内容,有必要提供一种网络服务器访问系统,其可自动创建自定义输出类的实 例,处理用户自定义的复杂类型。鉴于以上内容,还有必要提供一种网络服务器访问方法,其可自动创建自定义输出类的 实例,处理用户自定义的复杂类型。一种网络服务器访问系统,包括用户端、业务系统服务器、控制服务器及网络服务器, 所述网络服务器中存储有用于处理用户服务请求的Web服务,所述业务系统服务器用于接收 用户端发送的服务请求,并根据所述服务请求向网络服务器调用一个相应的Web服务,所述 的控制服务器包括判断模块,用于判断所述调用的Web服务是否有效;载入模块,用于在 确认所述Web服务有效后载入该Web服务的配置信息;消息生成模块,用于根据载入的配置信 息生成一个简单对象访问协议请求,并将该简单对象访问协议请求发送给网络服务器中的所 述Web服务进行处理;消息处理模块,用于收集该网络服务器的Web服务处理该简单对象访问 协议请求后所返回的响应消息,生成输出结果,然后创建一个自定义输出类的实例,将该输 出结果填充至该自定义输出类的实例中,并将输出结果填充至该自定义输出类的实例的结果 返回给业该务系统服务器。一种网络服务器访问方法,包括如下步骤接收用户端发送的服务请求;向网络服务器 调用与所述服务请求相应的Web服务;判断该Web服务是否有效;若该Web服务有效后,则载 入该Web服务的配置信息;根据载入的配置信息生成一个简单对象访问协议请求,并将该简 单对象访问协议请求发送给网络服务器中的该Web服务进行处理;收集网络服务器的Web服务 处理该简单对象访问协议请求后所返回的响应消息,生成输出结果,然后创建一个自定义输 出类的实例,将输出结果填充至该自定义输出类的实例中;将输出结果填充至该自定义输出 类的实例的结果返回给业该务系统服务器。相较于现有技术,所述的网络服务器访问系统及方法,在用户输入输出参数是复杂类型 时,可自动创建自定义输出类的实例,处理用户的服务请求。


图l是本发明网络服务器访问系统较佳实施例的硬件架构图。图2是图1所示控制服务器的功能模块图。图3是本发明网络服务器访问方法较佳实施例的流程图。
具体实施方式
如图1所示,是本发明网络服务器访问系统较佳实施例的硬件架构图。该系统主要包括 用户端IO、业务系统服务器20、控制服务器30及多个网络服务器40。所迷网络服务器40中存 储有预先编写好的Web services (Web服务),每一个网络服务器40可以存储多个Web services。在本实施例中,网络服务器40存储一个Web service,所述Web service用于处理 用户的服务请求。所述控制服务器30中存储有用于接收Web service返回消息的自定义输出类,该自定义 输出类可以处理用户自定义或编译器的复杂类型(例如结构体、共用体等)。通过该输出类 可以创建一个输出类的实例,然后把Web service返回的结果填充到该实例的变量中,即用 Web service返回的结果赋值给该实例的变量,将该变量的值返回给业务系统服务器20。所述控制服务器30中还存储有每个Web service的配置信息,该配置信息是根据Web service描述文件整理得到的,它包括Web service的地址、访问的方法名、方法的输入/ 输出参数、自定义输出类位置等。当服务接口或操作细节发生变化时,例如地址变化、访问 方法名调整或访问方法输入/输出参数调整等,只需要修改Web service的配置信息即可,不 需要重新编写Web service和重新编译及测试。所述用户端10由用户进行操作,用户根据其需求从用户端10发送服务请求给业务系统服 务器20。在本较佳实施例中,业务系统服务器20与多个用户端10相连,在其它实施例中,业 务系统服务器20也可以只与一个用户端10相连。业务系统服务器20接收该用户端10的服务请求,向网络服务器40调用处理该服务的Web service,并将该服务请求传给控制服务器30。控制服务器30判断该Web service是否有效( 即判断该Web service是否正常连接、是否处于正常工作状态等),如果该Web service有效 ,则载入该Web service的配置信息,根据该配置信息生成一个SOAP请求,并将该SOAP请求 发送给处理该请求的网络服务器40 。网络服务器40接收该S0AP请求后,调用Web service对该SOAP请求进行处理,并将该处 理结果作为响应消息返回给控制服务器30。控制服务器30根据输出参数类型对该响应消息进 行调整,生成一个XML文件格式的输出结果。然后,网络服务器40根据所载入的配置信息分 析输出类型,创建一个自定义输出类的实例,遍历所述XML文件,将该XML文件各节点数据填 充至该输出类实例的变量中,将该变量的值返回给业务系统服务器20。如图2所示,是图1所示控制服务器30的功能模块图。所述控制服务器30包括判断模块 301,载入模块302,消息生成模块303及消息处理模块304。其中,判断模块301用于判断业务系统服务器20根据用户端10发送的服务请求所调用的 Web service是否有效。
载入模块302用子在确认Web service有效后载入该Web service的配置信息,该配置信 息包括Web service的地址、访问的方法名、方法的输入/输出参数、自定义输出类位置等 。所述方法可以是一种函数,它可以接收一定的输入,/输出参数,返回特定的值,该输入参 数可以是某一查询条件,该输出参数可以是用户想要得到的数据类型。消息生成模块303用于根据载入的配置信息生成一个SOAP请求,并将该SOAP请求发送给 网络服务器40中的该Web servi(:e进行处理。该SOAP请求是根据用户发送过来的服务请求转 换得到的,每个SOAP请求都有一个处理该请求的Web service和具体的处理方法,通过读取 所述配置信息中Web service的地址,可以确定处理该SOAP请求的网络服务器,该地址即Web service所在网络服务器的地址。网络服务器40中相应的Web service对该SOAP请求进行处理 后,得到每个SOAP请求的响应消息,然后将该响应消息返回给控制服务器30。消息处理模块304用于收集网络服务器40返回的响应消息,生成输出结果,然后创建一 个自定义输出类的实例,将输出结果填充至该输出类的实例中。网络服务器40处理完所述 SOAP请求后,将响应消息返回给控制服务器30,控制服务器30中的消息处理模块304根据所 述方法的输出参数类型对该响应消息进行调整,生成一个XML文件格式的输出结果。然后, 根据载入模块302所载入的Web service配置信息分析输出类型,创建一个自定义输出类的实 例,遍历所述XML文件,将该XML文件各节点数据填充到该输出类实例的变量中,将该变量的 值作为服务结果返回给业务系统服务器20。如下所述,是以员工个人信息査询为例(假设该员工个人信息是一个复杂类型),通过 前述网络服务器访问系统,实施信息査询的步骤。首先,在网络服务器40中设置处理员工个人信息査询的Web service,在控制服务器30 中设置该Web service的配置信息和接收响应消息的自定义输出类,该配置信息包括处理 员工个人信息查询的Web service地址、处理员工个人信息查询的方法名、方法的输入/输出 参数、自定义输出类等。如果用户想要査询某一员工的个人信息,可以通过用户端10输入该 员工的工号,该工号唯一确定一位员工。也可以输入该员工的其它关键信息,只要通过该关 键信息可以唯一确定该员工身份即可。用户端10将该用户的査询请求传送给业务系统服务器 20,业务系统服务器20接收该査询请求后,调用处理该请求的Web service,并将该请求发 送给控制服务器30。控制服务器30中的判断模块301判断业务系统服务器20所调用的Web service是否有效, 如果该Web service无效,则返回Web service无效信息。如果该Web service有效,则载入 模块302载入该Web service的配置信息。然后,消息生成模块303根据载入的配置信息和业
务系统服务器20发送的査询请求生成一个SOAP请求,根据处理该查询住务的Web service地 址,找到该Web service所在的网络服务器,并将该SOAP请求发送给该网络服务器。网络服务器40接收到该S0AP请求后,调用Web service对该SOAP请求进行处理,得到该 SOAP请求的响应消息,然后将该响应消息返回给控制服务器30。控制服务器30中的消息处理模块304收集网络服务器40返回的响应消息,根据员工个人 信息的类型对该响应消息进行调整,生成一个XML文件格式的输出结果。然后,消息处理模 块304根据载入模块302所载入的Web service配置信息分析员工个人信息的类型,创建一个 自定义输出类的实例,遍历所述XML文件,将该XML文件各节点数据(员工的个人信息)填充 到该输出类实例的变量中,将该变量的值返回给业务系统服务器20。 例如,自定义输出类定义为 public class ClassQuery{public ClassSubl RootObjectl; public ClassSub2 RootObject2; public string EmployeeName;class ClassSubl {public int E即loyeeAge; public string EmployeeDep;class ClassSub2 { public ClassSub3 SubObjectl;class ClassSub3 {public datetime JoinDate; public boolean IsDemission;其中,变量E即loyeeName代表员工的姓名,变量EmployeeAge代表员工的年龄,变量 EmployeeD印代表员工所在的部门,变量JoinDate代表员工开始进入公司工作的时间,变量 IsDemission代表员工的工作状态,比如用true表示员工在职,用false表示员工离职等。XML文件(S卩Web service返回的査询信息)为< xml version二"l.0〃 encoding="UTF-8W > <XmlRoot Type=〃ClassQuery〃 xmlns=〃〃> <RootObjectl Type=〃ClassSubl〃>< E即loyeeAge Type="int">21〈/SublFieldl>< EmployeeD印 Type^string〃〉人力资源管理〈/SublField2〉 </RootObjectl><RootObject2 Type=〃ClassSub2〃>〈SubObjectl Type=〃ClassSub3〃>< JoinDate Type="datetime">2006/01/01 </SublFieldl>< IsDemission Type="boolean">true</SublField2> </SubObjectl></Root0bject2>〈EmployeeName Type二〃string〃〉张三〈/RootFieldl〉 〈/XmlRoot〉消息处理模块304根据该自定义输出类ClassQuery创建一个自定义输出类的实例(比如 objectsajiiple),分别将XML文件各节点数据(员工的姓名、年龄、所在部门、开始进入公 司工作的时间及是否离职等)赋值给objectsample实例的各个变量中,具体操作如下objectsample. EmployeeName 二 〃张三〃;objectsample. RootObject丄 EmployeeAge =21;objectsample. Root0bjec1丄EmployeeDep 二〃人力资源管理〃;objectsample. Root0bject2. SubObjectl. JoinDate 2006/01/01〃;objectsample. Root0bject2. SubObjectl. IsDemission 二true;最后将所述变量的值返回给业务系统服务器20。如图3所示,是本发明网络服务器访问方法较佳实施例的流程图。首先,用户端10向业 务系统服务器20发送服务请求(步骤S400),业务系统服务器20根据该服务请求向网络服务 器40调用处理该服务的Web service (步骤S401)。然后,控制服务器30的判断模块301判断 该Web service是否有效(步骤S402),如果该Web service有效,则载入模块302载入该Web service的配置信息,该配置信息包括Web service的地址、访问的方法名、方法的输入/ 输出参数、自定义输出类位置等(步骤S403)。消息生成模块303根据载入的配置信息生成 一个SOAP请求(步骤S404),并将该S0AP请求发送给网络服务器40 (步骤S405)。 网络服务器40接收该S0AP请求后,调用该Web service进行处理,得到该SOAP请求的晌 应消息,然后将该响应消息返回给控制服务器30。控制服务器30的消息处理模块304收集网络服务器40返回的响应消息(步骤S406),根 据所述方法的输出参数类型对该响应消息进行调整,生成一个XML文件格式的输出结果(步 骤S407)。然后,消息处理模块304根据载入模块302所载入的Web service配置信息分析输 出类型,创建一个自定义输出类的实例,遍历所述XML文件,将该XML文件各节点数据填充到 该输出类实例的变量中(步骤S408),将该变量的值作为Web service的服务结果返回给业 务系统服务器20 (步骤S409)。在步骤S402中,如果该Web service无效,则返回Web service无效信息,结束流程(步 骤S410)。
权利要求
1.一种网络服务器访问系统,包括用户端、业务系统服务器、控制服务器及网络服务器,其特征在于,所述网络服务器中存储有用于处理用户服务请求的Web服务,所述业务系统服务器用于接收用户端发送的服务请求,并根据所述服务请求向网络服务器调用一个相应的Web服务,所述的控制服务器包括判断模块,用于判断所述调用的Web服务是否有效;载入模块,用于在确认所述Web服务有效后载入该Web服务的配置信息;消息生成模块,用于根据载入的配置信息生成一个简单对象访问协议请求,并将该简单对象访问协议请求发送给网络服务器中的所述Web服务进行处理;消息处理模块,用于收集该网络服务器的Web服务处理该简单对象访问协议请求后所返回的响应消息,生成输出结果,然后创建一个自定义输出类的实例,将该输出结果填充至该自定义输出类的实例中,并将输出结果填充至该自定义输出类的实例的结果返回给业该务系统服务器。
2如权利要求l所述的网络服务器访问系统,其特征在于,所述的 配置信息包括Web服务的地址、访问的方法名、方法的输入/输出参数、自定义输出类位置
3如权利要求2所述的网络服务器访问系统,其特征在于,所述消 息处理模块生成的输出结果是根据所述方法的输出参数类型对网络服务器返回的响应消息进 行调整,生成的一个可扩展标记语言文件。
4如权利要求3所述的网络服务器访问系统,其特征在于,所述消 息处理模块将该输出结果填充至该自定义输出类的实例中是通过遍历所述可扩展标记语言文 件,将该可扩展标记语言文件各节点数据填充到该自定义输出类实例的变量中实现的。
5如权利要求4所述的网络服务器访问系统,其特征在于,所述将 输出结果填充至该自定义输出类的实例的结果返回给业务系统服务器是指将所述自定义输出 类实例的变量的值作为服务结果返回给业务系统服务器。
6.一种网络服务器访问方法,其特征在于,该方法包括如下步骤.-接收用户端发送的服务请求;向网络服务器调用与所述服务请求相应的Web服务;判断该Web服务是否有效;若该Web服务有效后,则载入该Web服务的配置信息;根据载入的配置信息生成一个简单对象访问协议请求,并将该简单对象访问协议请求 发送给网络服务器中的该Web服务进行处理;收集网络服务器的Web服务处理该简单对象访问协议请求后所返回的响应消息,生成输 出结果,然后创建一个自定义输出类的实例,将输出结果填充至该自定义输出类的实例中;将输出结果填充至该自定义输出类的实例的结果返回给业该务系统服务器。
7.如权利要求6所述的网络服务器访问方法,其特征在于,所述的 配置信息包括Web服务的地址、访问的方法名、方法的输入/输出参数、自定义输出类位置
8.如权利要求7所述的网络服务器访问方法,其特征在于,所述步 骤生成输出结果包括-根据所述方法的输出参数类型对网络服务器返回的响应消息进行调整,生成一个可扩 展标记语言文件格式的输出结果。
9.如权利要求8所述的网络服务器访问方法,其特征在于,所述步 骤将输出结果填充至该自定义输出类的实例中包括遍历所述可扩展标记语言文件,将该可扩展标记语言文件各节点数据填充到该自定义 输出类实例的变量中。
10.如权利要求6所述的网络服务器访问方法,其特征在于,所述方法还包括步骤如果Web服务无效,则返回Web服务无效信息,结束流程。
全文摘要
一种网络服务器访问系统及方法,该方法包括如下步骤接收用户端发送的服务请求;调用处理该服务的Webservice;判断该Webservice是否有效;确认该Webservice有效后,载入该Webservice的配置信息;根据载入的配置信息生成一个SOAP请求,并将该SOAP请求发送给网络服务器中的Webservice进行处理;收集网络服务器返回的响应消息,生成输出结果,然后创建一个自定义输出类的实例,将输出结果填充至该自定义输出类实例的变量中,返回该变量的值。利用本发明可自动创建自定义输出类的实例,处理用户自定义的复杂类型。
文档编号H04L29/06GK101150576SQ20061020088
公开日2008年3月26日 申请日期2006年9月20日 优先权日2006年9月20日
发明者卢秋桦, 叶建发, 张晓平, 李忠一, 樊晓迪 申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1