CN110740046B - 分析服务契约的方法和装置 - Google Patents

分析服务契约的方法和装置 Download PDF

Info

Publication number
CN110740046B
CN110740046B CN201810789229.6A CN201810789229A CN110740046B CN 110740046 B CN110740046 B CN 110740046B CN 201810789229 A CN201810789229 A CN 201810789229A CN 110740046 B CN110740046 B CN 110740046B
Authority
CN
China
Prior art keywords
service
service contract
contract data
data
instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810789229.6A
Other languages
English (en)
Other versions
CN110740046A (zh
Inventor
张晋军
刘海锋
易阳华
丁俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201810789229.6A priority Critical patent/CN110740046B/zh
Publication of CN110740046A publication Critical patent/CN110740046A/zh
Application granted granted Critical
Publication of CN110740046B publication Critical patent/CN110740046B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种分析服务契约的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:从运行的服务实例中提取服务契约的服务契约数据;在结果集合中查询服务契约的最新服务契约数据;分析服务契约数据和最新服务契约数据以确定服务契约是否发生变化;在服务契约发生变化时,将服务契约数据记录在结果集合中。该实施方式能够保证最终得到的服务契约数据与实际运行情况的一致性;并能够精准、高效地确定服务契约是否发生变化。

Description

分析服务契约的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种分析服务契约的方法和装置。
背景技术
计算机技术的发展,微服务越来越多地应用于计算机应用。按照微服务的理念,每个微服务可以单独开发和部署,在实际应用中每个微服务可能存在多个运行实例,这样可以做到水平扩展和高可用。
通常,一个计算机应用的内部可以根据业务边界划分设置多个微服务,每个微服务的功能职责单一,这些微服务彼此之间主要通过RPC方式或超文本传输协议(HTTP)方式进行通信,共同协作完成应用的所有功能。RPC是一种进程间通信方式,允许像调用本地服务一样调用远程服务;HTTP方式是一种客户端、浏览器、其他服务器和网络服务器之间的应用层通信协议。一次服务调用由两方(两个微服务)构成,发起调用的一方被称为服务调用方,被调用的一方被称为服务提供方;双方按照一定的信息格式进行通信,这种信息格式被称为服务契约。服务契约可能会更新或发生变化,如果双方的服务契约不同,则无法正常通信,因此,相关方都希望能够及时、准确地知道服务契约是否发生变化以及如何变化。
现有技术中,如何获知服务契约的变化有以下方式:
1、人工记录、整理服务契约以及版本变化的文档,再由人工通知相关方。对于版本变化,也可以在服务契约中加入版本信息,便于人工查看;
2、在专门的编辑器中填写服务契约的内容或导入现存的服务契约。编辑器可以导出服务契约文档,由人工发现服务契约的变化并通知相关方;
3、借助语言的注解机制,服务提供者在代码中合适地方写入与服务契约相关的注解,在应用启动时,可以根据这些注解自动生成相应的服务契约文档,此时,服务契约位于程序内存中,可通过统一资源定位符(URL)地址来访问服务契约文档,同样由人工发现服务契约的变化并通知相关方。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1.人工发现服务契约的变化以及人工告知相关方的方式,效率低、易出错、不精准以及通知不及时或出现遗漏;
2.应用部署发布环节与维护文档环节并不相关,维护的服务契约文档可能与实际运行情况不符。
发明内容
有鉴于此,本发明实施例提供一种分析服务契约的方法和装置,能够保证最终得到的服务契约数据与实际运行情况的一致性;并能够精准、高效地确定服务契约是否发生变化。
为实现上述目的,根据本发明实施例的一个方面,提供了一种分析服务契约的方法。
本发明实施例的一种分析服务契约的方法包括:从运行的服务实例中提取服务契约的服务契约数据;在结果集合中查询所述服务契约的最新服务契约数据;分析所述服务契约数据和所述最新服务契约数据以确定所述服务契约是否发生变化;在所述服务契约发生变化时,将所述服务契约数据记录在所述结果集合中。
可选地,所述服务契约数据包括所述服务契约的契约内容、摘要信息、时间戳、实例标识、服务标识或是否处理标识。
可选地,分析所述服务契约数据和所述最新服务契约数据以确定所述服务契约是否发生变化包括:在携带有所述服务标识的所述服务契约数据中,基于是否处理标识查找未被处理过的服务契约数据,加入循环集合;遍历所述循环集合中的服务契约数据在比对集合中是否存在;若不存在,则将所述循环集合中的服务契约数据加入所述比对集合;若存在,则比对所述循环集合中的服务契约数据的摘要信息和所述比对集合中的服务契约数据的摘要信息,若不一致则将所述循环集合中的服务契约数据加入所述比对集合;若一致则不再将所述循环集合中的服务契约数据加入所述比对集合;将所述最新服务契约数据的摘要信息与所述比对集合中的服务契约数据的摘要信息进行比对;若不一致,则服务契约发生变化;若一致则服务契约未发生变化。
可选地,所述方法还包括:展示所述结果集合;或比对所述结果集合中所述服务契约的任意两个所述服务契约数据,并展示比对结果。
可选地,从运行的服务实例中提取服务契约数据之前还包括:为所述服务实例添加服务契约注解;其中,所述服务契约注解的属性包括方法的注释说明、方法的名称、方法的请求类型和方法的返回值。
可选地,从运行的服务实例中提取服务契约数据包括:解析所述服务实例的所述服务契约注解得到注解信息;基于所述注解信息提取服务契约数据。
可选地,解析所述服务实例的所述服务契约注解得到注解信息包括:在所述服务实例运行期间采用推送方式或拉取方式获取所述服务实例,解析所述服务实例的所述服务契约注解生成注解信息;或在所述服务实例部署期间采用推送方式或拉取方式获取所述服务实例,利用应用部署工具从代码版本控制***中检出所述服务实例的代码,扫描所述服务实例的代码找出所述服务契约注解,对所述服务契约注解进行解析生成注解信息。
可选地,拉取方式包括:利用所述服务实例的通信协议与所述服务实例进行定期通信或随机通信以获取所述服务实例。
可选地,从运行的服务实例中提取服务契约数据包括:利用反射机制从运行的服务实例中提取服务契约数据。
可选地,分析所述服务契约数据和所述最新服务契约数据以确定所述服务契约是否发生变化之前还包括:将所述服务契约数据转换为预设格式或预设结构并去除空白部分。
可选地,将所述服务契约数据记录到所述结果集合中包括:为所述服务契约数据生成版本信息;将所述版本信息、所述契约内容、所述摘要信息、所述服务标识和所述时间戳记录到所述结果集合中。
可选地,所述方法还包括:在所述服务契约发生变化时,将所述版本信息、所述契约内容、所述摘要信息、所述服务标识和所述时间戳发送至服务调用方。
可选地,在结果集合中查询所述服务契约的最新服务契约数据包括:利用时间戳在结果集合中查询所述服务契约的最新服务契约数据。
为实现上述目的,根据本发明实施例的又一方面,提供了一种分析服务契约的装置。
本发明实施例的一种分析服务契约的装置包括:提取模块,用于从运行的服务实例中提取服务契约的服务契约数据;查询模块,用于在结果集合中查询所述服务契约的最新服务契约数据;分析模块,用于分析所述服务契约数据和所述最新服务契约数据以确定所述服务契约是否发生变化;记录模块,用于在所述服务契约发生变化时,将所述服务契约数据记录在所述结果集合中。
可选地,所述服务契约数据包括所述服务契约的契约内容、摘要信息、时间戳、实例标识、服务标识或是否处理标识。
可选地,所述分析模块还用于:在携带有所述服务标识的所述服务契约数据中,基于是否处理标识查找未被处理过的服务契约数据,加入循环集合;遍历所述循环集合中的服务契约数据在比对集合中是否存在;若不存在,则将所述循环集合中的服务契约数据加入所述比对集合;若存在,则比对所述循环集合中的服务契约数据的摘要信息和所述比对集合中的服务契约数据的摘要信息,若不一致则将所述循环集合中的服务契约数据加入所述比对集合;若一致则不再将所述循环集合中的服务契约数据加入所述比对集合;将所述最新服务契约数据的摘要信息与所述比对集合中的服务契约数据的摘要信息进行比对;若不一致,则服务契约发生变化;若一致则服务契约未发生变化。
可选地,所述装置还包括:展示模块,用于展示所述结果集合;或比对所述结果集合中所述服务契约的任意两个所述服务契约数据,并展示比对结果。
可选地,所述装置还包括:添加模块,用于为所述服务实例添加服务契约注解;其中,所述服务契约注解的属性包括装置的注释说明、装置的名称、装置的请求类型和装置的返回值。
可选地,所述提取模块还用于:解析所述服务实例的所述服务契约注解得到注解信息;基于所述注解信息提取服务契约数据。
可选地,所述提取模块进一步用于:在所述服务实例运行期间采用推送方式或拉取方式获取所述服务实例,解析所述服务实例的所述服务契约注解生成注解信息;或在所述服务实例部署期间采用推送方式或拉取方式获取所述服务实例,利用应用部署工具从代码版本控制***中检出所述服务实例的代码,扫描所述服务实例的代码找出所述服务契约注解,对所述服务契约注解进行解析生成注解信息。
可选地,拉取方式包括:利用所述服务实例的通信协议与所述服务实例进行定期通信或随机通信以获取所述服务实例。
可选地,所述提取模块还用于:利用反射机制从运行的服务实例中提取服务契约数据。
可选地,所述装置还包括:转换模块,用于将所述服务契约数据转换为预设格式或预设结构并去除空白部分。
可选地,所述记录模块还用于:为所述服务契约数据生成版本信息;将所述版本信息、所述契约内容、所述摘要信息、所述服务标识和所述时间戳记录到所述结果集合中。
可选地,所述装置还包括:发送模块,用于在所述服务契约发生变化时,将所述版本信息、所述契约内容、所述摘要信息、所述服务标识和所述时间戳发送至服务调用方。
可选地,所述查询模块还用于:利用时间戳在结果集合中查询所述服务契约的最新服务契约数据。
为实现上述目的,根据本发明实施例的又一方面,提供了一种分析服务契约的电子设备。
本发明实施例的一种分析服务契约的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种分析服务契约的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种分析服务契约的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用从运行的服务实例中提取服务契约的服务契约数据;在结果集合中查询服务契约的最新服务契约数据;分析服务契约数据和最新服务契约数据以确定服务契约是否发生变化;在服务契约发生变化时,将服务契约数据记录在结果集合中的技术手段,所以克服了维护的服务契约文档可能与实际运行情况不符;效率低、易出错、不精准以及通知不及时或出现遗漏的技术问题,进而达到保证最终得到的服务契约数据与实际运行情况的一致性;能够精准、高效地确定服务契约是否发生变化,并能够及时通知相关方的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的分析服务契约的方法的主要步骤的示意图;
图2是根据本发明一个可参考实施例的分析服务契约的方法的主要流程的示意图;
图3是根据本发明一个可参考实施例的提取服务契约数据的主要流程的示意图;
图4是根据本发明另一个可参考实施例的提取服务契约数据的主要流程的示意图;
图5是根据本发明一个可参考实施例的分析服务契约数据的主要流程的示意图;
图6是根据本发明实施例的分析服务契约的装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性***架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
微服务彼此之间的通信方式是,基于某个服务契约采用RPC方式或HTTP方式进行通信。对于RPC方式,通信双方需要获取以下内容:接口名称、方法名称、每个方法的入参和出参、入参包括哪些字段以及字段的类型、出参包括哪些字段以及字段的类型,其中,某个字段如果是对象类型,还需要知道里面的字段类型。对于HTTP方式,通信双方需要获取以下内容:URL中的固定部分和URL中的可变部分,其中,每个功能对应一个URL。
在实际应用中,一个微服务的所有运行实例的服务契约可能不完全一致,造成这种现象的原因有很多,可能是用户把运行实例分成两组,一组按照一种服务契约运行,另外一组按照另一种服务契约运行;还可能是,由于业务逻辑等发生变化,导致服务契约发生变化。服务契约每次变化后的稳定内容,称为一个版本,服务契约多次变化就会产生多个版本,在线上环境中也可能同时运行多个版本。
很明显,服务契约在服务调用方不知情的情况下发生变化会造成其调用失败,有可能需要花费大量时间来解决调用失败的原因。对于需求调研阶段来说,掌握准确的服务契约详情也是非常必要的,否则在编码阶段无法进行。
因此,不管在什么情况下,服务调用方都非常希望能够及时、准确地知道服务契约是否发生变化以及如何变化;而对于服务提供方而言,他们也希望有方法可以辅助他们维护服务契约及变化,最好还能自动通知服务调用方,节省时间和人力。
图1是根据本发明实施例的分析服务契约的方法的主要步骤的示意图。
如图1所示,本发明实施例的分析服务契约的方法主要包括以下步骤:
步骤S101:从运行的服务实例中提取服务契约的服务契约数据。
现有技术中,应用部署发布环节与维护文档环节并不相关,维护的服务契约文档可能与实际运行情况不符。为此,本发明实施例提出,从正在运行的服务实例中提取所使用的服务契约的服务契约数据,从而保证服务契约的实效性,并能够及时发现服务契约的变化。
需要说明的是,提取服务契约的服务契约数据时,可以从所有正在运行的服务实例中提取,也可以仅从一个或多个指定的正在运行的服务实例中提取。
在本发明实施例中,服务契约数据可以包括服务契约的契约内容、摘要信息、时间戳、实例标识、服务标识或是否处理标识。其中,契约内容是指服务契约的具体内容,其可以采用原始字符串(original_json)的形式;摘要信息是指契约内容的摘要,可以用MD5或哈希值等来表示;时间戳可以是一个版本的服务契约生成时间;实例标识是服务实例的标识;服务标识用于表示服务提供方与服务调用方之间采用了何种通信方式,如果是RPC方式服务标识就是接口名,如果是HTTP方式服务标识就是URL;是否处理标识用于表示该服务契约数据是否被处理过(即是否已分析过该服务契约数据)。
以表1为例来说明服务契约数据,service_id表示服务标识;handled_flag表示是否处理标识;instance_id表示实例标识;digest表示摘要信息;timestamp表示时间戳;original_json表示契约内容。服务实例“com.jd.server1”一共有四个服务契约数据,其中第一个和第四个的摘要信息是一样的,但来自不同的服务实例;同样,第二个和第三个的摘要信息是一样的,也来自不同的服务实例,这说明,服务实例“com.jd.server1”在线上环境中,存在两种不同的服务契约格式,其摘要信息分别是xxxxxx1和xxxxxx2。
表1
Md5是一种信息摘要的技术,不管输入多长的字符串信息,md5处理后,都将输出固定长度的字符串(即摘要信息),输入相同的字符串一定会输出相同的输出摘要,输入不同的字符串一定会输出不同的输出摘要。需要注意的是,“不同输入”产生“相同输出”的发生概率是16的32次方分之一,所以,可以认为几乎不可能发生。
可以通过注解的方式从服务实例中提取服务契约数据。在本发明实施例中,从运行的服务实例中提取服务契约数据之前,还可以为服务实例添加服务契约注解。其中,服务契约注解的属性包括方法的注释说明、方法的名称、方法的请求类型(例如“POST”、“GET”等)和方法的返回值。
例如,对服务实例的方法添加服务契约注解:
“@ApiOperation(value="第三方加入专辑",httpMethod="POST",response=BaseVo.class,notes="第三方加入专辑")”;以及
对服务实例的参数添加服务契约注解:
“@ApiModelProperty(value="专辑名称",required=true)
private String name;
@ApiModelProperty(value="第三方专辑Id",required=true)
private String thirdAlbumId;//第三方专辑Id
@ApiModelProperty(value="第三方专辑Id",required=true)
private String thirdSystemId;//第三方***Id”。
上例中的notes表示方法的注释说明、value表示方法的名称、httpMethod表示方法的请求类型和response表示方法的返回值,required表示这个属性是必须有的,不能为空。
具体地,通过注解的方式从服务实例中提取服务契约数据可以通过以下方式实现:解析服务实例的服务契约注解得到注解信息;基于注解信息提取服务契约数据。解析服务契约注解能够得到注解信息,该注解信息包括了服务契约的基本信息,从而基于该注解信息能够得到服务契约数据。
在本发明实施例中,解析服务实例的服务契约注解得到注解信息可以通过以下两种方式实现:在服务实例运行期间采用推送方式或拉取方式获取服务实例,解析服务实例的服务契约注解生成注解信息;或,在服务实例部署期间采用推送方式或拉取方式获取服务实例,利用应用部署工具从代码版本控制***中检出服务实例的代码,扫描服务实例的代码找出服务契约注解,对服务契约注解进行解析生成注解信息。
服务契约注解有两种使用方式,第一种是在服务实例部署期间,第二种是在服务实例运行期间,这两种方式的效果是相同的。对于第一种方式,目前很多公司使用应用部署工具,该应用部署工具可以从代码版本控制***中将指定版本的代码检出,进行编译和构建后打包成可执行的二进制软件包,再分发到主机上,比如物理机、虚拟机或者容器。当检出代码后,可以***一个步骤,按照注解语法对代码进行扫描,找出所有服务契约注解并进行解析,生成注解信息。对于第二种方式,可以利用程序语言对注解机制的支持,来完成对服务契约注解的解析,生成注解信息。
服务实例主动发送数据的方式称为“推送方式”;通过通信获取数据的方式称为“拉取方式”。在本发明实施例中,拉取方式包括:利用服务实例的通信协议与服务实例进行定期通信或随机通信以获取服务实例。
需要说明的是,采用随机通信获取服务实例的方式能够降低通信量。
此外,还可以利用程序语言(例如Java)的反射机制,从运行的服务实例中得到服务契约数据。在本发明实施例中,从运行的服务实例中提取服务契约数据还可以通过以下方式实现:利用反射机制从运行的服务实例中提取服务契约数据。
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;即能够动态获取信息以及动态调用对象方法。反射机制是程序语言***运行时的一部分,可以轻松地获取服务的接口名称、服务的方法名称以及每个方法的出入参数,并且还可以递归地知道每个参数的字段的信息,直到原子类型。但是,反射机制只能用于RPC方式。
在本发明实施例中,基于最新服务契约数据分析服务契约是否发生变化之前,还可以将服务契约数据转换为预设格式或预设结构并去除空白部分。
这种方式既减小了服务契约的存储尺寸,又规避了同一内容由于空格的不同而造成下一环节分析的出错。此外,该预设格式或预设结构可以由服务提供方定义,服务调用方遵守约定,使用该预设格式或预设结构。
例如服务契约数据:
去除空白部分后:
“{“Service_name”:“com.xxx.yyy.zzz”,“Methods”:[{“name”:“xxx_method”,“in_parameters”:[{“type”:“string”}].“out_parameters”:[{“type”:“ref_type1”}]}],“ref_type1”:{“field1”:“xxx”,“field2”:“yyy”}}”。
步骤S102:在结果集合中查询服务契约的最新服务契约数据。
通常,每个服务契约对应有多个服务契约数据,一个服务契约数据对应一个版本的服务契约,而在现有技术中,每个服务契约的所有服务契约数据都是单独维护的,没有集中存储及管理,不便于后期查询、分析。本发明实施例采用集中存储、管理的方式,将对应于同一个服务契约的服务契约数据记录在结果集合中,这样能够快速发现服务契约数据是否有变化。服务契约的最新服务契约数据就是已记录的最新版本的服务契约。
由于服务契约数据包括时间戳,因此,可以基于该时间戳确定哪一个服务契约数据是最新记录的。在本发明实施例中,步骤S102可以通过以下方式实现:利用时间戳在结果集合中查询服务契约的最新服务契约数据。
步骤S103:分析服务契约数据和最新服务契约数据以确定服务契约是否发生变化。
在通过步骤S101和步骤S102得到服务契约数据和最新服务契约数据之后,对服务契约数据和最新服务契约数据进行分析,从而精准、高效地确定服务契约是否发生变化,例如直接比对服务契约数据和最新服务契约数据。
可以通过服务契约的服务标识、是否处理标识和摘要信息等服务契约数据来确定服务契约是否发生变化,在同时处理多个服务契约数据时还可以先进行过滤再分析。在本发明实施例中,步骤S103可以通过以下方式实现:在携带有服务标识的服务契约数据中,基于是否处理标识查找未被处理过的服务契约数据,加入循环集合;遍历循环集合中的服务契约数据在比对集合中是否存在;若不存在,则将循环集合中的服务契约数据加入比对集合;若存在,则比对循环集合中的服务契约数据的摘要信息和比对集合中的服务契约数据的摘要信息,若不一致则将循环集合中的服务契约数据加入比对集合;若一致则不再将循环集合中的服务契约数据加入比对集合;将最新服务契约数据的摘要信息与比对集合中的服务契约数据的摘要信息进行比对;若不一致,则服务契约发生变化;若一致则服务契约未发生变化。
通过服务标识和是否处理标识可以对服务契约数据进行过滤,去除已经被分析过的服务契约数据,从而减小计算量,释放计算资源。并且,摘要信息是契约内容的摘要,能够代表契约内容,因此,仅仅比对摘要信息能够进一步减小计算量。
步骤S104:在服务契约发生变化时,将服务契约数据记录在结果集合中。
通过步骤S103可以确定服务契约是否发生变化,如果未发生变化则不需要做进一步处理,如果发生变化则可以将服务契约数据记录在结果集合中,该服务契约数据即代表最新版本的服务契约。
在本发明实施例中,将服务契约数据记录在结果集合中可以通过以下方式实现:为服务契约数据生成版本信息;将契约内容、摘要信息、版本信息、服务标识和时间戳记录到结果集合中。即结果集合中可以记录服务契约的具体内容、契约内容的摘要、该契约内容对应的版本、服务提供方与服务调用方之间采用了何种通信方式以及该版本的服务契约生成时间等信息。其中,版本信息可以基于***内部制定的规则而生成,这样比较符合人们对版本的通常理解,便于交流使用。
以表2为例来说明结果集合,service_id表示服务标识;version表示版本信息;digest表示摘要信息;timestamp表示时间戳;original_json表示契约内容。服务实例“com.jd.server1”在结果集合中存在两条记录,所对应的摘要信息是不一样的,V1.1的摘要信息是:xxxxxx1,xxxxxx2,而V1.2的摘要信息是xxxxxx1,xxxxxx3。
表2
本发明实施例的分析服务契约的方法还可以包括:展示结果集合;或,比对结果集合中服务契约的任意两个服务契约数据,并展示比对结果。
完整地保留所有版本的服务契约,便于了解服务契约的变迁以及排查问题。例如,在当前版本上调用失败了,但是在上一版本是成功的,通过比对两个版本的差异,可以很快发现问题所在。此外,在展示时,还可以更改所展示数据的格式,采用符合阅读习惯的格式。
由于人工发现服务契约的变化以及人工告知相关方的方式,效率低、易出错、不精准以及通知不及时或出现遗漏。为此,本发明实施例提出,在服务契约发生变化时,可以将版本信息、契约内容、摘要信息、服务标识和时间戳发送至服务调用方。
根据本发明实施例的分析服务契约的方法可以看出,因为采用从运行的服务实例中提取服务契约的服务契约数据;在结果集合中查询服务契约的最新服务契约数据;分析服务契约数据和最新服务契约数据以确定服务契约是否发生变化;在服务契约发生变化时,将服务契约数据记录在结果集合中的技术手段,所以克服了维护的服务契约文档可能与实际运行情况不符;效率低、易出错、不精准以及通知不及时或出现遗漏的技术问题,进而达到保证最终得到的服务契约数据与实际运行情况的一致性;能够精准、高效地确定服务契约是否发生变化,并能够及时通知相关方的技术效果。
图2是根据本发明一个可参考实施例的分析服务契约的方法的主要流程的示意图。
如图2所示,本发明实施例的分析服务契约的方法主要分为服务契约数据采集和服务契约分析两部分,具体地:
关于服务契约数据采集,提取服务契约的原始数据(即服务契约数据),有多种方式可以用来获取这部分数据,但是这些方式都有一个相同的出发点:就是从实际运行的服务实例中获取数据,这样才能保证最终得到的服务契约数据与实际运行情况的一致性。可以从所有正在运行的服务实例中提取,也可以仅从一个或多个指定的正在运行的服务实例中提取。
提取服务契约的服务契约数据可以采用以下两种方式,通过注解的方式从服务实例中提取服务契约数据,或利用程序语言的反射机制,从运行的服务实例中得到服务契约数据。
服务契约数据可以包括服务契约的契约内容、摘要信息、时间戳、实例标识、服务标识或是否处理标识等。采集到的服务契约数据可以存放到某种存储中,例如云存储、关系型数据库或非关系型数据库等存储产品,在分析时从存储中调用;也可以发送到消息队列,在分析时从消息队列拉取服务契约数据;或者通过RPC方式或HTTP方式直接发送到分析服务契约数据的地方,例如分析服务器或分析平台等。
关于服务契约分析,即分析服务契约是否发生变化,可以从服务契约数据呈分析出服务契约的具体内容,以及确定服务契约是否发生变化;并将分析结果存储到某种存储中,例如云存储、关系型数据库或非关系型数据库等存储产品。当分析出服务契约变化时,可以将服务契约数据记录在结果集合中,还可以直接通知相关方(服务调用方和服务提供方),并告知如何变化,例如将服务契约数据发送至服务调用方。
需要说明的是,可以通过服务契约的服务标识、是否处理标识和摘要信息等服务契约数据来确定服务契约是否发生变化,在同时处理多个服务契约数据时还可以先进行过滤再分析。
此外,对于服务契约分析的结果,可以对结果集合进行展示,即从结果集合中读取服务契约内容,以一种符合阅读习惯的格式的方式供他人查看,展示服务契约的所有版本的详细内容。还可以展示任意两个版本差异的比对,即比对结果集合中服务契约的任意两个服务契约数据,并展示比对结果。
结果集合中可以记录服务契约的具体内容、契约内容的摘要、该契约内容对应的版本、服务提供方与服务调用方之间采用了何种通信方式以及该版本的服务契约生成时间等信息。在服务契约发生变化时,还可以将版本信息、契约内容、摘要信息、服务标识和时间戳发送至服务调用方。
图3是根据本发明一个可参考实施例的提取服务契约数据的主要流程的示意图。
如图3所示,可以利用服务契约注解的方式实现服务契约数据的提取,具体地:
一、可以使用服务契约采集器采集正在运行的服务实例的服务契约注解,解析服务契约注解生成注解信息:
服务契约采集器在服务实例运行期间采用推送方式或拉取方式获取服务实例,对该服务契约注解进行解析并生成注解信息;
或者,在服务实例部署期间采用推送方式或拉取方式获取服务实例,利用应用部署工具从代码版本控制***中检出服务实例的代码,扫描服务实例的代码找出服务契约注解,服务契约采集器对服务契约注解进行解析并生成注解信息;
二、基于注解信息提取原始数据(即服务契约数据)。
图4是根据本发明另一个可参考实施例的提取服务契约数据的主要流程的示意图。
如图4所示,可以利用反射机制实现服务契约数据的提取,具体地:
利用反射机制从正在运行的服务实例中提取原始数据(即服务契约数据)。
需要说明的是,反射机制只能应用于采用RPC方式进行通信的场景中。
图5是根据本发明一个可参考实施例的分析服务契约数据的主要流程的示意图。
如图5所示,分析服务契约数据的主要流程包括:
步骤S501:从原始数据中找出携带有服务标识的服务契约数据:
原始数据即所有的服务契约数据。
步骤S502:将未被分析过的服务契约数据加入循环集合:
在携带有服务标识的服务契约数据中,基于是否处理标识查找未被处理过(即还没有被分析)的服务契约数据,加入循环集合。
步骤S503:遍历循环集合中的服务契约数据在比对集合中是否存在,若不存在则执行步骤S504;若存在则执行步骤S505:
比对集合用于存放具有服务标识且未被分析过的服务契约数据。
步骤S504:将循环集合中的服务契约数据加入比对集合。
步骤S505:比对循环集合中的服务契约数据的摘要信息和比对集合中的服务契约数据的摘要信息,若不一致则执行步骤S504;若一致则执行步骤S506。
步骤S506:结束该服务契约数据的分析:
不将循环集合中的服务契约数据加入比对集合。
步骤S507:将最新服务契约数据的摘要信息与比对集合中的服务契约数据的摘要信息进行比对;若不一致,则服务契约发生变化;若一致则服务契约未发生变化。
图6是根据本发明实施例的分析服务契约的装置的主要模块的示意图。
如图6所示,本发明实施例的分析服务契约的装置600包括:提取模块601、查询模块602、分析模块603和记录模块604。
其中,
提取模块601,用于从运行的服务实例中提取服务契约的服务契约数据;
查询模块602,用于在结果集合中查询所述服务契约的最新服务契约数据;
分析模块603,用于分析所述服务契约数据和所述最新服务契约数据以确定所述服务契约是否发生变化;
记录模块604,用于在所述服务契约发生变化时,将所述服务契约数据记录在所述结果集合中。
此外,所述服务契约数据可以包括所述服务契约的契约内容、摘要信息、时间戳、实例标识、服务标识或是否处理标识。
在本发明实施例中,所述分析模块603还可以用于:在携带有所述服务标识的所述服务契约数据中,基于是否处理标识查找未被处理过的服务契约数据,加入循环集合;遍历所述循环集合中的服务契约数据在比对集合中是否存在;若不存在,则将所述循环集合中的服务契约数据加入所述比对集合;若存在,则比对所述循环集合中的服务契约数据的摘要信息和所述比对集合中的服务契约数据的摘要信息,若不一致则将所述循环集合中的服务契约数据加入所述比对集合;若一致则不再将所述循环集合中的服务契约数据加入所述比对集合;将所述最新服务契约数据的摘要信息与所述比对集合中的服务契约数据的摘要信息进行比对;若不一致,则服务契约发生变化;若一致则服务契约未发生变化。
在本发明实施例中,所述装置还可以包括:展示模块(图中并未示出),用于展示所述结果集合;或比对所述结果集合中所述服务契约的任意两个所述服务契约数据,并展示比对结果。
在本发明实施例中,所述装置还可以包括:添加模块(图中并未示出),用于为所述服务实例添加服务契约注解;其中,所述服务契约注解的属性包括装置的注释说明、装置的名称、装置的请求类型和装置的返回值。
在本发明实施例中,所述提取模块601还可以用于:解析所述服务实例的所述服务契约注解得到注解信息;基于所述注解信息提取服务契约数据。
在本发明实施例中,所述提取模块601进一步可以用于:在所述服务实例运行期间采用推送方式或拉取方式获取所述服务实例,解析所述服务实例的所述服务契约注解生成注解信息;或在所述服务实例部署期间采用推送方式或拉取方式获取所述服务实例,利用应用部署工具从代码版本控制***中检出所述服务实例的代码,扫描所述服务实例的代码找出所述服务契约注解,对所述服务契约注解进行解析生成注解信息。
此外,拉取方式包括:利用所述服务实例的通信协议与所述服务实例进行定期通信或随机通信以获取所述服务实例。
在本发明实施例中,所述提取模块601还可以用于:利用反射机制从运行的服务实例中提取服务契约数据。
在本发明实施例中,所述装置还可以包括:转换模块(图中并未示出),用于将所述服务契约数据转换为预设格式或预设结构并去除空白部分。
在本发明实施例中,所述记录模块604还可以用于:为所述服务契约数据生成版本信息;将所述版本信息、所述契约内容、所述摘要信息、所述服务标识和所述时间戳记录到所述结果集合中。
在本发明实施例中,所述装置还可以包括:发送模块(图中并未示出),用于在所述服务契约发生变化时,将所述版本信息、所述契约内容、所述摘要信息、所述服务标识和所述时间戳发送至服务调用方。
在本发明实施例中,所述查询模块602还可以用于:利用时间戳在结果集合中查询所述服务契约的最新服务契约数据。
根据本发明实施例的分析服务契约的装置可以看出,因为采用从运行的服务实例中提取服务契约的服务契约数据;在结果集合中查询服务契约的最新服务契约数据;分析服务契约数据和最新服务契约数据以确定服务契约是否发生变化;在服务契约发生变化时,将服务契约数据记录在结果集合中的技术手段,所以克服了维护的服务契约文档可能与实际运行情况不符;效率低、易出错、不精准以及通知不及时或出现遗漏的技术问题,进而达到保证最终得到的服务契约数据与实际运行情况的一致性;能够精准、高效地确定服务契约是否发生变化,并能够及时通知相关方的技术效果。
图7示出了可以应用本发明实施例的分析服务契约的方法或分析服务契约的装置的示例性***架构700。
如图7所示,***架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息)反馈给终端设备。
需要说明的是,本发明实施例所提供的分析服务契约的方法一般由服务器705执行,相应地,分析服务契约的装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机***800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机***800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有***800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括提取模块、查询模块、分析模块和记录模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,查询模块还可以被描述为“在结果集合中查询所述服务契约的最新服务契约数据的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:步骤S101:从运行的服务实例中提取服务契约的服务契约数据;步骤S102:在结果集合中查询服务契约的最新服务契约数据;步骤S103:分析服务契约数据和最新服务契约数据以确定服务契约是否发生变化;步骤S104:在服务契约发生变化时,将服务契约数据记录在结果集合中。
根据本发明实施例的技术方案,因为采用从运行的服务实例中提取服务契约的服务契约数据;在结果集合中查询服务契约的最新服务契约数据;分析服务契约数据和最新服务契约数据以确定服务契约是否发生变化;在服务契约发生变化时,将服务契约数据记录在结果集合中的技术手段,所以克服了维护的服务契约文档可能与实际运行情况不符;效率低、易出错、不精准以及通知不及时或出现遗漏的技术问题,进而达到保证最终得到的服务契约数据与实际运行情况的一致性;能够精准、高效地确定服务契约是否发生变化,并能够及时通知相关方的技术效果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (28)

1.一种分析服务契约的方法,其特征在于,包括:
从运行的服务实例中提取服务契约的服务契约数据;
在结果集合中查询所述服务契约的最新服务契约数据;
分析所述服务契约数据和所述最新服务契约数据以确定所述服务契约是否发生变化,包括:在携带有服务标识的所述服务契约数据中,基于是否处理标识查找未被处理过的服务契约数据,加入循环集合;通过遍历所述循环集合中的服务契约数据在比对集合中是否存在,以确定所述服务契约是否发生变化;
在所述服务契约发生变化时,将所述服务契约数据记录在所述结果集合中。
2.根据权利要求1所述的方法,其特征在于,所述服务契约数据包括所述服务契约的契约内容、摘要信息、时间戳、实例标识、服务标识或是否处理标识。
3.根据权利要求2所述的方法,其特征在于,通过遍历所述循环集合中的服务契约数据在比对集合中是否存在,以确定所述服务契约是否发生变化,包括:
遍历所述循环集合中的服务契约数据在比对集合中是否存在;
若不存在,则将所述循环集合中的服务契约数据加入所述比对集合;
若存在,则比对所述循环集合中的服务契约数据的摘要信息和所述比对集合中的服务契约数据的摘要信息,若不一致则将所述循环集合中的服务契约数据加入所述比对集合;若一致则不再将所述循环集合中的服务契约数据加入所述比对集合;
将所述最新服务契约数据的摘要信息与所述比对集合中的服务契约数据的摘要信息进行比对;若不一致,则服务契约发生变化;若一致则服务契约未发生变化。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
展示所述结果集合;或
比对所述结果集合中所述服务契约的任意两个所述服务契约数据,并展示比对结果。
5.根据权利要求1所述的方法,其特征在于,从运行的服务实例中提取服务契约数据之前还包括:
为所述服务实例添加服务契约注解;其中,所述服务契约注解的属性包括方法的注释说明、方法的名称、方法的请求类型和方法的返回值。
6.根据权利要求5所述的方法,其特征在于,从运行的服务实例中提取服务契约数据包括:
解析所述服务实例的所述服务契约注解得到注解信息;
基于所述注解信息提取服务契约数据。
7.根据权利要求6所述的方法,其特征在于,解析所述服务实例的所述服务契约注解得到注解信息包括:
在所述服务实例运行期间采用推送方式或拉取方式获取所述服务实例,解析所述服务实例的所述服务契约注解生成注解信息;或
在所述服务实例部署期间采用推送方式或拉取方式获取所述服务实例,利用应用部署工具从代码版本控制***中检出所述服务实例的代码,扫描所述服务实例的代码找出所述服务契约注解,对所述服务契约注解进行解析生成注解信息。
8.根据权利要求7所述的方法,其特征在于,拉取方式包括:利用所述服务实例的通信协议与所述服务实例进行定期通信或随机通信以获取所述服务实例。
9.根据权利要求1所述的方法,其特征在于,从运行的服务实例中提取服务契约数据包括:
利用反射机制从运行的服务实例中提取服务契约数据。
10.根据权利要求1所述的方法,其特征在于,分析所述服务契约数据和所述最新服务契约数据以确定所述服务契约是否发生变化之前还包括:
将所述服务契约数据转换为预设格式或预设结构并去除空白部分。
11.根据权利要求2所述的方法,其特征在于,将所述服务契约数据记录到所述结果集合中包括:
为所述服务契约数据生成版本信息;
将所述版本信息、所述契约内容、所述摘要信息、所述服务标识和所述时间戳记录到所述结果集合中。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在所述服务契约发生变化时,将所述版本信息、所述契约内容、所述摘要信息、所述服务标识和所述时间戳发送至服务调用方。
13.根据权利要求2所述的方法,其特征在于,在结果集合中查询所述服务契约的最新服务契约数据包括:
利用时间戳在结果集合中查询所述服务契约的最新服务契约数据。
14.一种分析服务契约的装置,其特征在于,包括:
提取模块,用于从运行的服务实例中提取服务契约的服务契约数据;
查询模块,用于在结果集合中查询所述服务契约的最新服务契约数据;
分析模块,用于分析所述服务契约数据和所述最新服务契约数据以确定所述服务契约是否发生变化,包括:在携带有服务标识的所述服务契约数据中,基于是否处理标识查找未被处理过的服务契约数据,加入循环集合;通过遍历所述循环集合中的服务契约数据在比对集合中是否存在,以确定所述服务契约是否发生变化;
记录模块,用于在所述服务契约发生变化时,将所述服务契约数据记录在所述结果集合中。
15.根据权利要求14所述的装置,其特征在于,所述服务契约数据包括所述服务契约的契约内容、摘要信息、时间戳、实例标识、服务标识或是否处理标识。
16.根据权利要求15所述的装置,其特征在于,所述分析模块还用于:
遍历所述循环集合中的服务契约数据在比对集合中是否存在;
若不存在,则将所述循环集合中的服务契约数据加入所述比对集合;
若存在,则比对所述循环集合中的服务契约数据的摘要信息和所述比对集合中的服务契约数据的摘要信息,若不一致则将所述循环集合中的服务契约数据加入所述比对集合;若一致则不再将所述循环集合中的服务契约数据加入所述比对集合;
将所述最新服务契约数据的摘要信息与所述比对集合中的服务契约数据的摘要信息进行比对;若不一致,则服务契约发生变化;若一致则服务契约未发生变化。
17.根据权利要求14所述的装置,其特征在于,所述装置还包括:
展示模块,用于展示所述结果集合;或比对所述结果集合中所述服务契约的任意两个所述服务契约数据,并展示比对结果。
18.根据权利要求14所述的装置,其特征在于,所述装置还包括:
添加模块,用于为所述服务实例添加服务契约注解;其中,所述服务契约注解的属性包括装置的注释说明、装置的名称、装置的请求类型和装置的返回值。
19.根据权利要求18所述的装置,其特征在于,所述提取模块还用于:
解析所述服务实例的所述服务契约注解得到注解信息;
基于所述注解信息提取服务契约数据。
20.根据权利要求19所述的装置,其特征在于,所述提取模块进一步用于:
在所述服务实例运行期间采用推送方式或拉取方式获取所述服务实例,解析所述服务实例的所述服务契约注解生成注解信息;或
在所述服务实例部署期间采用推送方式或拉取方式获取所述服务实例,利用应用部署工具从代码版本控制***中检出所述服务实例的代码,扫描所述服务实例的代码找出所述服务契约注解,对所述服务契约注解进行解析生成注解信息。
21.根据权利要求20所述的装置,其特征在于,拉取方式包括:利用所述服务实例的通信协议与所述服务实例进行定期通信或随机通信以获取所述服务实例。
22.根据权利要求14所述的装置,其特征在于,所述提取模块还用于:
利用反射机制从运行的服务实例中提取服务契约数据。
23.根据权利要求14所述的装置,其特征在于,所述装置还包括:
转换模块,用于将所述服务契约数据转换为预设格式或预设结构并去除空白部分。
24.根据权利要求15所述的装置,其特征在于,所述记录模块还用于:
为所述服务契约数据生成版本信息;
将所述版本信息、所述契约内容、所述摘要信息、所述服务标识和所述时间戳记录到所述结果集合中。
25.根据权利要求24所述的装置,其特征在于,所述装置还包括:
发送模块,用于在所述服务契约发生变化时,将所述版本信息、所述契约内容、所述摘要信息、所述服务标识和所述时间戳发送至服务调用方。
26.根据权利要求15所述的装置,其特征在于,所述查询模块还用于:
利用时间戳在结果集合中查询所述服务契约的最新服务契约数据。
27.一种分析服务契约的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-13中任一所述的方法。
28.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-13中任一所述的方法。
CN201810789229.6A 2018-07-18 2018-07-18 分析服务契约的方法和装置 Active CN110740046B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810789229.6A CN110740046B (zh) 2018-07-18 2018-07-18 分析服务契约的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810789229.6A CN110740046B (zh) 2018-07-18 2018-07-18 分析服务契约的方法和装置

Publications (2)

Publication Number Publication Date
CN110740046A CN110740046A (zh) 2020-01-31
CN110740046B true CN110740046B (zh) 2023-08-08

Family

ID=69234361

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810789229.6A Active CN110740046B (zh) 2018-07-18 2018-07-18 分析服务契约的方法和装置

Country Status (1)

Country Link
CN (1) CN110740046B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434175B (zh) * 2021-06-29 2024-02-27 平安科技(深圳)有限公司 数据处理方法、装置、存储介质及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101331478A (zh) * 2005-12-15 2008-12-24 微软公司 使web服务符合更新的合同
CN101364236A (zh) * 2008-09-18 2009-02-11 中兴通讯股份有限公司 一种web页面的数据处理装置及处理方法
CN105959138A (zh) * 2016-04-29 2016-09-21 深圳前海大数点科技有限公司 基于云计算的微服务动态部署的***及方法
CN106506605A (zh) * 2016-10-14 2017-03-15 华南理工大学 一种基于微服务架构的SaaS应用构建方法
CN107277086A (zh) * 2016-04-06 2017-10-20 阿里巴巴集团控股有限公司 业务处理***、业务处理方法以及业务更新方法
CN107317830A (zh) * 2016-04-26 2017-11-03 中兴通讯股份有限公司 一种服务发现的处理方法及装置
CN107911430A (zh) * 2017-11-06 2018-04-13 上海电机学院 一种微服务基础设施装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040019669A1 (en) * 2002-07-25 2004-01-29 Sridatta Viswanath Event notification in an administration framework for server systems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101331478A (zh) * 2005-12-15 2008-12-24 微软公司 使web服务符合更新的合同
CN101364236A (zh) * 2008-09-18 2009-02-11 中兴通讯股份有限公司 一种web页面的数据处理装置及处理方法
CN107277086A (zh) * 2016-04-06 2017-10-20 阿里巴巴集团控股有限公司 业务处理***、业务处理方法以及业务更新方法
CN107317830A (zh) * 2016-04-26 2017-11-03 中兴通讯股份有限公司 一种服务发现的处理方法及装置
CN105959138A (zh) * 2016-04-29 2016-09-21 深圳前海大数点科技有限公司 基于云计算的微服务动态部署的***及方法
CN106506605A (zh) * 2016-10-14 2017-03-15 华南理工大学 一种基于微服务架构的SaaS应用构建方法
CN107911430A (zh) * 2017-11-06 2018-04-13 上海电机学院 一种微服务基础设施装置

Also Published As

Publication number Publication date
CN110740046A (zh) 2020-01-31

Similar Documents

Publication Publication Date Title
CN110019350B (zh) 基于配置信息的数据查询方法和装置
EP3251031B1 (en) Techniques for compact data storage of network traffic and efficient search thereof
US11615082B1 (en) Using a data store and message queue to ingest data for a data intake and query system
KR102634058B1 (ko) 입력 및 출력 스키마 매핑
CN109800207B (zh) 日志解析方法、装置、设备及计算机可读存储介质
US11159397B2 (en) Lower-tier application deployment for higher-tier system data monitoring
CN112685433B (zh) 元数据更新方法、装置、电子设备及计算机可读存储介质
US9535966B1 (en) Techniques for aggregating data from multiple sources
US11755531B1 (en) System and method for storage of data utilizing a persistent queue
WO2016095360A1 (zh) 物联网本体模型处理方法及装置
US20230014346A1 (en) Indexing data at a data intake and query system based on a node capacity threshold
CN109783562B (zh) 一种业务处理方法和装置
US11153071B2 (en) Citation and attribution management methods and systems
Kamilaris et al. WOTS2E: A search engine for a Semantic Web of Things
US20220245095A1 (en) Method and apparatus for efficient synchronization of search heads in a cluster using digests
CN111427899A (zh) 存储文件的方法、装置、设备和计算机可读介质
CN114168149A (zh) 一种数据转换方法及装置
CN110740046B (zh) 分析服务契约的方法和装置
US10713014B2 (en) Multi-platform interface framework
CN116069725A (zh) 文件迁移方法、装置、设备、介质和程序产品
CN112818026A (zh) 数据整合方法和装置
KR102169930B1 (ko) M2M/IoT 플랫폼에서의 시맨틱 정보 관리 방법
CN113326305A (zh) 一种处理数据的方法和装置
CN112637288A (zh) 流式数据分发方法和***
CN113779018A (zh) 一种数据处理方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant