解锁新功能丨你期待的WebService调用接口监控功能全面上线了
2021-04-12 16:12:36

1 背景

1.1 医院一体化信息平台

为满足国家互联互通评测标准要求,各医院正在竞相搭建一体化信息平台。例如在某医院建设的HRP平台。

医院的各业务系统需要通过WebService的方式集成到一体化平台,例如LIS、CIS、PACS、电子病历等,均需要调用HRP的数据集成接口(WebService)进行接入。

1.2 数据上报

医院需要定时将数据上报给相关机构。数据上报通常是采用WebService方式实现。

2 WebService

2.1 WebService的三种模型

SOA 模型(面向消息,已很少有人在使用)
RPC 模型(面向方法,大多数医院在用)
REST 模型(面向资源,针对互联网应用,也常见于存储监控接口(如EMC XtremIO)、虚拟化或超融合API等)
其中 RPC 模型,又分成三类:
XML-RPC(已很少有人在使用)
JSON-RPC(新的标准,正在逐步推广)
SOAP + WSDL (老的标准,由微软推出,目前大多数医院及厂商在用)

2.2 SOAP

在集成方调用WebService的时候,需要遵从特定的协议进行数据封包。SOAP是一种协议(简单对象访问协议),它定义了一种基于XML的标准格式。

SOAP协议所定义的XML格式包括几个必须的标记:
(1)SOAP Envelope
SOAP信封,用来包裹SOAP内容主体。
(2)SOAP Header
SOAP头,用来帮助WebService端对调用方的数据进行数据检查(如安全检查、数据有效性检查等)。
(3)SOAP Body
SOAP体,用来描述请求调用的函数名、参数等信息。

2.3 WSDL

WSDL有两个含义,第一个含义为SOAP WebService的调用地址(Endpoint),第二个含义为SOAP WebService的描述语言。

2.3.1 SOAP WebService的调用地址

在数据集成方调用WebService的时候,需要四个要素:
(1)调用方地址
通常为http(s)://xxx.xxx.xxx.xxx:xxx/xxx?wsdl
(2)Soap头
需要按照WebService提供方的约束,填入Soap头信息。
(3)函数名
通常,一个调用地址会对外暴露多个函数,调用方在调用WebService的时候,需要提供函数名。
(4)参数
进行WebService函数调用时,需要给出函数的必要参数。

2.3.2 SOAP WebService的描述语言

通常情况下,如果按照Post方式请求wsdl地址,则意味着进行WebService函数调用。如果按照Get方式请求wsdl地址,则意味着要获取WebService的描述信息。该WebService描述信息描述了该wsdl地址对外暴露的函数名、函数相关参数以及Soap头规定等信息。
获取WebService描述信息,是为了帮助开发人员了解如何对WebService进行调用。某些开发语言框架支持通过WebService描述信息生成本地的WebService调用代理,从而简化WebService调用程序的代码量。诸葛运帷监控系统运用WSDL信息帮助用户进行WebService的监控配置。

2.4 SOAP WebService的监控

对WebService的监控,包含两个监控级别:
(1)监控WSDL地址的可用性
(2)监控每个WebService函数调用的结果是否符合预期

2.4.1 监控WSDL地址的可用性

通过定期请求各WebService的WSDL对WebService的可用性进行监控。此类监控可以反映的问题包括:
(1)部署WebService的服务器宕机。
(2)WebService服务进程终止。
(3)WebService服务进程无法对外服务。
(4)WebService程序存在服务级错误(500)或编译错误。
监控流程
(1)配置WSDL地址、相关IP、相关业务。
(2)系统定期通过GET方式请求WSDL地址,根据HTTP的返回码判断状态,并记录请求时间。

2.4.2 监控每个WebService函数调用的结果是否符合预期

通过录入事先准备好的参数,调用WebService的各个函数,并判断WebService函数的返回值是否符合预期。此类监控可以反映的问题包括:
(1)部署WebService的服务器宕机。
(2)WebService服务进程终止。
(3)WebService服务进程无法对外服务。
(4)WebService程序存在服务级错误(500)或编译错误。
(5)WebService函数执行是否正常。(如是否存在逻辑错误、调用阻塞等情况)。
监控流程
(1)配置WSDL地址,相关IP、相关业务。
(2)配置要调用的函数、SOAP头、参数、预期的返回值、预期调用时间。
(3)系统定期通过POST方式根据配置进行WebService调用,传入预先配置好的SOAP头、函数名和参数。当WebService产生返回值时,根据返回值及调用时间进行判断。当返回值不符合预期或调用时间超过预期时,则进行报警。

2.5 JSON-RPC WebService

2.5.1 标准的JSON-RPC

JSON-RPC是由JSON-RPC Working Group发布的一种RPC通信标准。不同于Soap Webservice的XML,JSON-RPC的数据格式为JSON。这里采用JSON为数据格式,则意味着数据包的整体为JSON格式,而非Soap WebService中包裹了一段JSON。很多医院的HIS厂商宣称他们数据传输的格式为JSON,然而事实是,他们的WebService函数,参数为JSON格式,其实质仍然是基于Soap。这种运用方式,不属于JSON-RPC的范畴。

JSON-RPC协议的提出方有一句口号:为简单而生。所以在JSON-RPC协议中,并没有显式的规定JSON-RPC WebService必须有某种标准化的类似于WSDL的函数定义或声明文档的存在。它的文档应该是类似于API说明书之类的手册,没有统一的要求。需要开发人员阅读API接口文档,然后按照接口文档进行程序开发。因此,诸葛运帷在实现对JSON-RPC WebService监控的时候,无法根据定义帮助用户进行监控配置。用户必须手动录入相关参数。
JSON-RPC格式
当发起一个rpc调用时,除通知之外,服务端都必须回复响应。响应表示为一个JSON对象,使用以下成员:
jsonrpc
指定JSON-RPC协议版本的字符串,必须准确写为“2.0”
result
该成员在成功时必须包含。
当调用方法引起错误时必须不包含该成员。
服务端中的被调用方法决定了该成员的值。
error
该成员在失败时必须包含。
当没有引起错误时必须不包含该成员。
该成员参数值必须为5.1中定义的对象。
id
该成员必须包含。
该成员值必须于请求对象中的id成员值一致。
若在检查请求对象id时错误(例如参数错误或无效请求),则该值必须为空值。
响应对象必须包含result或error成员,但两个成员必须不能同时包含。
示例

2.5.2 非标准的JSON-RPC

JSON-RPC是由JSON-RPC Working Group出台的标准。这个标准之所以有名,是因为广大比特币交易平台都采用这个协议。但是不见得所有厂商都愿意使用这个协议。因此,也有不少厂商采用更为简单(或随意)的JSON格式封装自己的通信协议。例如,showdoc官方给出的API接口模板,就定义了一种JSON-RPC数据格式。

2.6 JSON-RPC WebService

对JSON-RPC WebService的监控,由于灵活性太大,因此留给系统辅助用户进行监控配置的空间较小。基本来说,需要用户手动录入以下四项基本信息:
(1)调用地址
http://xx.com/api/user/register
(2)请求头(Body)
与SOAP WebService不同,JSON-RPC的请求头通常放在HTTP Header里面。
(3)请求体(Body)
请求体是JSON格式的文本。不同的标准定义的请求体格式不同,用户需要根据相关API文档中的要求填入。
(4)预期返回值
请求发往目标地址后,预期的返回数据。
(5)预期的响应时间
从请求开始到WebService返回结果,最大容忍时间。
监控流程
(1)配置JSON-RPC WebService地址,相关IP、相关业务。
(2)配置要调用的请求体、预期的返回值、预期调用时间。
(3)系统定期通过POST方式根据配置进行WebService调用,传入预先配置好请求头、请求体。当WebService产生返回值时,根据返回值及调用时间进行判断。当返回值不符合预期或调用时间超过预期时,则进行报警。

3 日志监控

对调用方或WebService的日志进行监控,通过关键字识别其中的错误信息,遇到严重度较高的错误,通过监控系统进行报警。

4 工作内容

4.1 Soap WebService监控配置的完善

WebService 的分类管理、WebService 的批量导入、WebService 入参及出参的配置(更多的输入空间,而非简单输入框)。

4.2 Soap WebService服务级监控脚本

WSDL地址的请求,根据响应时间、HTTP状态码判断调用是否成功。

4.3 JSON-RPC WebService监控配置

与Soap WebService共享列表页,弹出页输入请求头、请求体,支持模拟调用。

4.4 JSON-RPC WebService监控脚本

监控脚本的实现。

4.5 WebService日志监控

读取WebService日志,分析系统报错。

4.6 WebService监控报表

展示WebService报表,包括基本信息与监控状态。

嫌麻烦不想填写表单?点击立即扫码联系销售人员。
感兴趣的产品:
*试用单位:
*所在省份:
*单位地址:
*联系人:
*联系电话:
*您主要关注哪些方面:
您从何处了解到诸葛运帷:

免费试用 ×
微信扫码,立即联系销售经理,或电话、短信致电均可。或返回填写表单
刘经理:13811576433
赵经理:18611012818
立即咨询 ×
微信扫码,立即联系销售经理进行咨询,或电话、短信致电均可。
刘经理:13811576433
赵经理:18611012818