用于自动发现和连接到REST接口的技术的制作方法

文档序号:16050241发布日期:2018-11-24 11:13阅读:225来源:国知局

本申请涉及并要求2016年3月23日提出申请的序列号为62/311,956的美国临时专利申请的优先权,该申请的内容在此全部并入本公开文本。

背景技术

表述性状态转移(rest)已经成为网络超媒体应用(如web应用)的普遍技术。rest或restful的web服务提供了互联网上计算机系统之间的互操作性,从而允许请求系统使用一组统一的、预定义的无状态操作来访问和操作web资源的文本表示。因此,restful的web服务通常比其他web服务更轻量级,而且通常被认为更易于维护和扩展。几乎所有restful的web服务都依赖超文本传输协议(http)作为其底层应用协议。

restful的web服务是基于资源而不是基于动作的(例如,名词而不是动词)。web资源是那些可以在web上识别、命名、寻址或以其他方式处理的资源,如媒体(例如,图片、视频等)、网页,信息等。可以通过资源的统一资源标识符(uri)访问web资源。在restful的web服务中,对资源uri的请求将引发应答,包括所请求资源的表示(例如,资源表示),该表示可以是可扩展标记语言(xml)、超文本标记语言(html)、javascript对象表示法(json)或一些其他定义的格式。资源表示可以包括数据、到其他资源的链接等。

请求需要识别该请求正在寻找的(多个)资源(例如,通过uri或统一资源定位符(url))。虽然restful的体系结构定义了统一的接口来约束资源的识别,但是在请求资源之前通常期望接口、资源命名规范以及可通过接口访问的资源类型是已知的。因此,现有技术通常需要对参数(例如,查询、资源等)、图案、常见对象等进行硬编码为用于访问资源的uri(例如,通过httpget方法)。

实际上,应用程序开发公司可以将来自一个应用程序的数据和/或功能与另一个应用程序的数据和/或功能集成在一起,这个过程通常被称为应用集成(有时被称为企业应用集成(eai))。因此,应用程序开发公司可以开发与一个或多个其他网络应用程序或web服务进行接口的定制软件解决方案。这通常经由通过一组适配器或连接器(即,与底层应用程序接口的程序)连接到应用程序的总线/集线器实现。这种连接器通常依赖于独立于应用程序的或通用的数据格式,因此连接器不必按第三方应用程序的格式进行数据转换。

然而,在实际应用中,如果没有进一步的手动发现,数据格式可能是未知的和/或所述数据相对于其相关联的端点的位置可能是未知的。换句话说,因为资源表示规则(schema)可以由第三方应用程序的架构师、管理员等定义,所以可能没有数据的“通用”格式和/或路径。因此,如果事先不知道rest接口和访问资源,就可能无法发现rest接口和访问资源。因此,存在对改进用于自动发现和连接到rest接口的技术的需求。



技术实现要素:

在一个方面,一种用于自动发现和连接到表述性状态转移(rest)接口的方法包括以下步骤:供应商计算装置分析在应答已经向web服务的端点发送了http请求时从web服务rest接口接收的数据表示;供应商计算装置根据数据表示的分析来确定所述数据表示的模式;供应商计算装置根据对所述数据表示的分析和所确定的模式来分配模式的置信水平;以及供应商计算装置在确定模式的置信水平大于等于相应的置信阈值之后,根据所确定的模式生成rest接口的一个或多个可能的规则。

在一些实施例中,该方法还包括通过供应商计算装置在确定模式中的置信水平大于等于相应的置信阈值之后,根据确定模式识别数据表示的一个或多个关键值,其中为rest接口生成一个或多个可能的规则包括根据识别出的关键值为rest接口生成一个或多个可能的规则。

在一些实施例中,分析数据表示包括:(i)识别可用于识别主数据集的数据表示的数据;(ii)针对数据成员分析数据集的多条记录以找到包含可能数据的集合;以及(iii)分析数据的数据字段路径以确定可用于识别主数据集的一个或多个可能的数据类型。在其他实施例中,识别可用于识别主数据集的数据表示的数据包括在数据表示中搜索重复数据集。在其他实施例中,识别可用于识别主数据集的数据表示的数据包括搜索一个或多个标准分页控制字段,例如但不限于计数、数字、偏移量、开始、结束等。应当理解,分页控制字段可以指分页或分块的数据控制字段,以及可用于获取大数据集作为小块序列的任何其他类型的控制字段。

在一些实施例中,分析数据表示还包括根据符合已知标识符模式的数据字段确定可能的标识符集合,并分析标识符以确定每组数据可能的唯一标识符。在其他实施例中,分析数据表示还包括验证所确定的可能的唯一标识符。在其他实施例中,验证所确定的可能的唯一标识符包括根据所确定的可能唯一标识符向web服务的端点发送一个或多个附加的http请求,并分析返回的与一个或多个附加的http请求相关联的数据表示。在其他实施例中,http请求包括httpget请求和httppost请求中的一个。

在另一个方面,一种用于自动发现和连接到表述性状态转移(rest)接口的供应商计算装置包括一个或多个计算机可读介质,所述计算机可读介质包括指令和耦合在其上的一个或多个处理器,并且被配置为执行指令以执行以下操作:在响应已经向web服务的端点发送http请求时分析从web服务的rest接口接收的数据表示;根据数据表示的分析确定数据表示的模式;根据对数据表示的分析和所确定的模式,为模式分配置信水平;以及在确定模式中的置信水平大于等于相应的置信阈值之后,根据所确定的模式生成rest接口的一个或多个可能规则。

在一些实施例中,所述一个或多个处理器还被配置为执行所述指令,以在确定模式置信水平大于等于相应的置信阈值之后,根据所确定模式来识别用于所述数据表示的一个或多个键值,其中为所述rest接口生成一个或多个可能的规则包括根据所识别的键值来生成用于所述rest接口的一个或多个可能的规则。

在一些实施例中,分析数据表示包括:(i)识别可用于识别主数据集的数据表示的数据;(ii)针对数据成员分析数据集的多个记录以找到包含可能数据的集合;以及(iii)分析数据的数据字段路径以确定可用于识别主数据集的一个或多个可能的数据类型。在其他实施例中,识别可用于识别主数据集的数据表示的数据包括在数据表示中搜索重复数据集。在其他实施例中,识别可用于识别主数据集的数据表示的数据包括搜索一个或多个标准分页控制字段。

在一些实施例中,分析数据表示还包括根据符合已知标识符模式的数据字段确定可能的标识符集合,并分析标识符以确定每组数据可能的唯一标识符。在其他实施例中,分析数据表示还包括验证所确定的可能的唯一标识符。在其他实施例中,验证所确定的可能的唯一标识符包括根据所确定的可能的唯一标识符向web服务的端点发送一个或多个附加的http请求,并分析返回的与一个或多个附加的http请求相关联的数据表示。在其他实施例中,http请求包括httpget请求和httppost请求中的一个。

附图说明

通过参考下面结合附图对本申请各种示例性实施例的描述,这里包含的实施例和其他特征、优点和公开内容以及实现它们的方式将变得显而易见,并且也会更好理解本申请,在附图中:

图1是用于自动发现和连接到表述性状态转移(rest)接口的系统的至少一个实施例的简化方框图,该系统包括客户端-服务器架构中的消费者计算装置和供应商计算装置;

图2是图1系统的客户端和远程计算装置的至少一个实施例的简化方框图;

图3a和图3b是用于自动发现并连接到可以由图1和2的远程计算装置执行的rest接口的方法的至少一个实施例的简化流程图;以及

图4是用于分析数据表示以确定可以由图1和图2的远程计算装置执行的模式的方法的至少一个实施例的简化流程图。

具体实施方式

为了促进对本申请原理的理解,现在参考附图中所示的实施例,并且使用特定的语言来描述这些实施例。然而,应当理解,这并不因此意图限制本申请的范围。

图1是用于自动发现和连接到表述性状态转移(rest)接口的示例性系统100,所述系统包括通过网络108耦合通信的集成计算装置102和供应商计算装置110。示例性集成计算装置102包括应用集成解决方案104和客户端集成构建器接口。示例性的供应商计算装置110包括网络应用程序112和数据分析平台116。示例性系统100另外还包括第三方供应商计算装置124,所述第三方供应商计算装置也通过网络108与供应商计算装置110耦合通信。示例性的第三方供应商计算装置124包括web服务126和远程数据库130。

在使用中,集成计算装置102的客户端集成构建器接口106被配置为与供应商计算装置110的网络应用程序112进行接口,或者更具体地被配置为与网络应用程序112的供应商集成构建器接口114进行接口。类似地,网络应用程序112被配置为与web服务126进行接口,或者更具体地,网络应用程序112的供应商集成构建器接口114被配置为与web服务126的rest接口128进行接口。

在示例性示例中,网络应用程序集成者(例如,应用程序开发人员)可以负责开发与网络应用程序112进行接口的应用集成解决方案(例如,应用集成解决方案104)。另外,网络应用程序112还可能需要额外与第三方供应商计算装置124的web服务126进行接口,以便检索资源数据(例如,媒体、网页、信息等),例如可以从第三方供应商计算装置124的远程数据库130中检索,和/或针对至少一部分检索到的数据执行特定功能。例如,(多个)功能可以包括根据检索到的数据采取动作(例如,打电话、发送电子邮件、更新日志等),从而以可视的可读格式向集成应用程序的用户呈现数据,等等。

因此,网络应用程序112被配置为检索可经由rest接口访问的数据。为此,网络应用程序112被配置为从应用集成解决方案104接收用于检索必要数据的信息。然而,网络应用程序集成器可能不知道该规则(例如,数据的组织结构)。应当理解的是尽管这里提到的数据被示例性地示出为存储在远程数据库130中,但是在一些实施例中,数据可以不存储在数据库中。因此,在这样的实施例中,该规则可以不引用数据库规则(例如,规则可以引用与文件结构相对的位置)。

为了确定规则,可以执行发现。然而,不同于传统的手动发现技术,供应商集成构建器接口114被配置为自动执行发现和与web服务126的rest接口128的连接。为此,供应商集成构建器接口114被配置为经由客户端集成构建器接口106从网络应用集成器接收与web服务126的端点相对应的统一资源定位符(url)或统一资源标识符(uri)。应当理解,虽然可以接收uri或url,但是为了描述清楚起见,这里将资源定位符/标识符称为url。

当接收到url时,供应商计算装置110的数据分析平台116被配置为根据该url发送请求(例如,使用http方法),并分析与该请求的应答一起接收到的数据表示(更多细节参见,例如,图3a-3b的方法300和图4的方法400)。在分析期间,数据分析平台116被配置成为通过rest接口128访问的数据确定一个或多个可能规则。应当理解,规则可以用于识别数据类型、标识符和数据成员,使得集成器在调用网络应用程序112时可以依赖其应用集成解决方案104中的规则。例如,网络应用程序112可以生成并使用定义来连接到rest接口,并将必要的数据带入网络应用程序112的环境中,用于工作流、用户接口、分析计算等。

集成计算装置102、供应商计算装置110和第三方供应商计算装置124中的每一个可以是任何类型的能够执行这里所描述的各种功能的计算装置132。例如,集成计算装置102、供应商计算装置110和第三方供应商计算装置124中的每一个可以是但不限于一个或多个服务器(例如,独立的、机架式的,等等)、计算装置、存储装置、台式计算机和/或云架构网络或数据中心中的(例如,存储区域网络(san)的)计算刀片和数据存储装置的组合。

同样,尽管集成计算装置102、供应商计算装置110和第三方供应商计算装置124中的每一个被示为单个计算装置132,但是应当理解,在一些实施例中,集成计算装置102、供应商计算装置110和/或第三方供应商计算装置124中的任何一个可以包括多于一个的计算装置132(例如,在分布式计算架构中),其中的每一个可以用于执行在此所述的功能的至少一部分。例如,在一些实施例中,网络应用程序112可以在一个或多个计算装置132上执行,而数据分析平台116可以在一个或多个其他计算装置132上执行。

现在参照图2,示例性的计算装置132(例如,集成计算装置102、供应商计算装置110和/或第三方供应商计算装置124)包括中央处理单元(cpu)200、输入/输出(i/o)控制器202、主存储器204、网络通信电路206、一个或多个i/o外围设备208和数据存储装置212。在一些可选实施例中,计算装置132可以包括与示例性计算装置132的部件相比附加的、更少的和/或替代的部件,例如图形处理单元(gpu)。应当理解,所述示例性部件中的一个或多个可以组合在单个集成电路(ic)上的单个片上系统(soc)上。

另外,应当理解,相应的计算装置132的部件和/或硬件/软件资源的类型可以根据相应的计算装置132的类型和预期用途来预测。还应当理解,在计算装置132中的一个包括多于一个的计算装置的实施例中,一个或多个计算装置可以被配置为相对于另一个计算装置具有更少的计算容量和更多的存储容量的数据库服务器。类似地,一个或多个其他计算装置可以被配置为相对于另一个计算装置具有更多计算容量和更少存储容量的应用服务器。

cpu200或处理器可以实现为能够处理数据的硬件和电路的任何组合。在一些实施例中,计算装置132可以包括多于一个的cpu200。根据所述实施例,cpu200可以包括例如在单核处理器架构中的一个处理核(未示出)或者例如在多核处理器架构中的多个处理核。不管处理核和cpu200的数量如何,cpu200都能够读取和执行程序指令。在一些实施例中,cpu200可以包括高速缓冲存储器(未示出),所述高速缓冲存储器可以直接与cpu200集成或者放置在与cpu200单独互连的单独芯片上。应当理解,在一些实施例中,流水线逻辑可以用于执行软件和/或硬件操作(例如,网络流量处理操作),而不是向cpu200发出命令或从cpu200发出命令。

i/o控制器202或i/o接口可以是能够在输入/输出装置和计算装置132之间进行连接的任何类型的计算机硬件或电路组合。示例性地,i/o控制器202被配置为从cpu200接收输入/输出请求,并且向各个输入/输出装置发送控制信号,从而管理去往/来自计算装置132的数据流。

存储器204可以是能够保存用于处理的数据和指令的任何类型的计算机硬件或电路组合。这种存储器204可以被称为主存储器或一级存储器。应当理解,在一些实施例中,计算装置132的一个或多个部件可以直接访问存储器,使得特定的数据可以独立于cpu200经由直接存储器存取(dma)来存储。

网络通信电路206可以为能够经由无线和/或有线通信模式管理网络接口通信(例如,消息、数据报、信息包等)的任何类型的计算机硬件或电路组合。因此,在一些实施例中,网络通信电路206可以包括能够被配置为将计算装置132连接到计算机网络以及其他装置(根据所述实施例)的网络接口控制器(nic)。

一个或多个i/o外围设备208可以是被配置为连接到计算装置132并与所述计算装置通信的任何辅助装置。例如,i/o外围设备208可以包括但不限于鼠标、键盘、监视器、触摸屏、打印机、扫描仪、麦克风、扬声器等。因此,应当理解,一些i/o装置能够具有一种功能(即,输入或输出)或者两种功能(即,输入和输出)。示例性的i/o外围设备208包括显示器,该显示器可以是能够通过触摸(例如,一个或多个手指、指示笔(stylus)等)接收用户输入的触摸屏显示器。

在一些实施例中,i/o外围设备208可以经由计算装置132的线缆(例如,带状线缆、电线、通用串行总线(usb)线缆、高清多媒体接口(hdmi)线缆等)连接到计算装置132。在这样的实施例中,线缆可以连接到计算装置132的相应端口(未示出),所述端口之间进行的通信可以由i/o控制器202管理。在可选的实施例中,i/o外围设备208可以经由可以由网络通信电路206管理的无线通信模式(例如,等)连接到计算装置132。

数据存储装置212可以是能够非易失性存储数据的任何类型的计算机硬件(例如,半导体存储介质、磁性存储介质、光学存储介质等)。这种数据存储装置212通常被称为辅助或二级存储器,并且通常用于存储相对于上述存储器204来说的大量数据。

返回到图1,如前所述,集成计算装置102包括应用集成解决方案104和客户端集成构建器接口106。应用集成解决方案104可以是任何类型的基于网络的软件应用(例如,瘦/零客户端、云应用、网络应用、软件即服务(saas)应用等),所述软件应用被配置为通过网络108以客户端-服务器关系与供应商计算装置110通信。如前所述,应用集成解决方案104被配置为用作用户(例如,经由应用集成解决方案104的图形用户界面(gui))和用户的访问计算装置(例如,桌面、移动计算装置、服务器等)之间的基于软件的界面,所述界面被配置为访问网络应用程序112。客户端集成构建器接口106可以是用于与供应商计算装置110的供应商集成构建器接口114通信的任何类型的接口,例如web浏览器、客户端门户、网络应用程序112的模块等。

网络108可以是任何类型的有线和/或无线网络,包括局域网(lan)、广域网(wan)、全球网络(互联网)等。因此,网络116可以包括一个或多个通信耦合的网络计算装置(未示出),以用于通过一系列有线和/或无线互连促进网络通信业务的流动和/或处理。这种网络计算装置可以包括但不限于一个或多个接入点、路由器、交换机、服务器、计算装置、存储装置等。

如前所述,供应商计算装置110包括网络应用程序112和数据分析平台116。网络应用程序112可以是任何类型的基于网络的软件应用(例如,瘦/零客户端、云应用、网络应用、软件即服务(saas)应用等),所述软件应用可以配置为通过网络108以客户端-服务器关系与执行应用集成解决方案104的计算装置(未示出)通信。示例性的网络应用程序112包括供应商集成构建器接口114。供应商集成构建器接口114可以是用于执行这里描述的功能的任何类型的接口,例如但不限于门户、网络应用程序112的模块等。应当理解,在一些实施例中,供应商集成构建器接口114可以不是网络应用程序112的接口。在这样的实施例中,供应商集成构建器接口114可以是独立接口、数据分析平台116的部件或者供应商计算装置110的另一个应用的部件。

数据分析平台116可以实现为硬件、固件、软件或者可用于执行这里描述的功能的电路的任何组合。示例性的数据分析平台116包括模式确定器118和数据分析器120,它们中的每一个都可以是被配置为执行这里描述的功能的任何类型的固件、硬件、软件、电路或其组合。在一些实施例中,模式确定器118和/或数据分析器120可以包括其上存储有指令的一个或多个计算机可读介质(例如,存储器204、数据存储装置210和/或任何其他介质存储装置)、以及与一个或多个计算机可读介质耦合并被配置为执行指令以执行这里描述的功能的一个或多个处理器(例如,cpu200)。

模式确定器118可以被实现为任何类型的固件、硬件、软件、电路或其组合,所述模式确定器被配置为根据对(多个)数据表示执行的分析来确定一个或多个模式,例如可以由数据分析器执行。为此,模式确定器118被配置为根据网络应用集成器接收的web服务端点的url生成http请求(例如,httpget请求)。

模式确定器118还被配置为在已经执行分析之后检索模式的置信水平并将置信水平与置信阈值(例如,模式置信阈值)进行比较。如果模式中的置信水平满足或超过阈值,则模式确定器118被配置为根据所识别的模式来识别一个或多个关键值。另外,模式确定器118被配置成为rest接口128生成一个或多个可能的规则,这些规则被网络应用程序112用来生成连接到rest接口128并从中检索数据的表示的定义。

模式确定器118还被配置为如果模式确定器118确定检索到的模式的置信水平不大于或等于置信阈值(即,模式置信阈值),则识别用于增加模式的置信水平的一个或多个问题。此外,模式确定器118被配置为提示网络应用集成器回答所识别的(多个)问题,使得可以根据从网络应用集成器接收的回答来执行进一步的分析(例如,可以由数据分析器120执行)。

在特定情况下,模式可能会不确定,或者根据回答的(多个)问题在进一步分析时更新的模式的置信水平可能不大于或等于相应的模式置信阈值。因此,在这样的情况下,模式确定器118可以被配置为使用暴力破解(bruteforce)技术检索数据,从而返回比先前分析过程中返回的数据集更大的数据集,并且分析检索到的数据集以识别返回数据集的一个或多个关键值,以生成用于从rest接口128检索数据的一个或多个可能的规则。

数据分析器120可以是任何类型的固件、硬件、软件、电路或其组合,所述数据分析器被配置为分析数据表示以确定数据的模式。数据分析器120还被配置为确定模式的置信水平(即,模式置信水平)。模式置信水平可以被定义为任何量(例如,百分比、x和y之间的数值,其中x和y是大于0的整数值,等等),可用于传达对所确定模式的信任程度。在一些实施例中,模式的一个或多个方面可以相对于模式的其他方面被加权。示例方面可以包括但不限于数据类型、标识符、数据成员等。

在特定情况下,所确定的模式置信水平可能不满足或超过相应的模式置信阈值。因此,数据分析器120还被配置为分析表示,以根据对网络应用集成器询问的问题的一个或多个回答(例如,可以由模式确定器118接收)来确定数据的模式。应当理解,在一些实施例中,数据分析器120可以被配置为在数据分析期间确定对应于一个或多个回答的一个或多个问题。还应当理解,在一些实施例中,数据分析器120可以被配置为确定多于一种的可能模式。因此,在这样的实施例中,数据分析器120可以被配置为确定所识别的每个可能模式的模式置信水平。

现在参照图3a和图3b,提供了用于自动发现和连接到rest接口的示例性方法300,该rest接口可以由web服务供应商计算装置(例如,图1的供应商计算装置110)执行,或者更具体地由供应商计算装置110的数据分析平台116执行。方法300开始于方框302,根据所述实施例,在方框302中,数据分析平台116确定其是否已经从用户接收到url或uri。应该理解,url对应于用户已知的web服务的端点,但是对于该端点,规则(即,数据的结构)是未知的。

如果在方框302中已经接收到web服务端点的url,则方法300前进到方框304,在方框304中,数据分析平台116根据方框302中接收的web服务端点url,利用http方法(例如get、post等)生成http请求。在方框306中,数据分析平台116将生成的http请求发送到web服务端点url。在方框308中,数据分析平台116确定是否已经接收到对http请求的响应。如果是,则方法300前进到方框310,在方框310中,数据分析平台116分析接收到的响应的数据表示(例如,参见图4的方法400进行示例性分析),以确定返回的数据表示内的模式。如前所述,可以使用json、xml、html或者可用于web服务之间的数据交换的任何其他适用格式来格式化数据表示。

在方框312中,数据分析平台116根据分析结果检索所确定模式的置信水平(即,模式置信水平),例如可以根据分析来确定。在方框314中,数据分析平台116将在方框312中检索到的模式置信水平与预定模式置信阈值进行比较。如前所述,模式置信水平可以被定义为任何量(例如,百分比、x和y之间的数值,其中x和y是大于0的整数值,等等),可用于传达对模式的信任程度。在一些实施例中,模式的一个或多个方面可以相对于模式的其他方面被加权。这些方面可以包括数据类型、标识符、数据成员等。

如果数据分析平台116确定模式置信水平不大于或等于(即,小于)模式置信阈值,则方法300分支到图3b中所示的方框320,这将在下面说明。否则,如果数据分析平台116确定模式置信水平不大于或等于(即,小于)模式置信阈值,则方法300分支到方框316。在方框316中,数据分析平台116根据在方框312中检索到的模式识别返回数据集的一个或多个关键值。在方框318中,数据分析平台116根据所识别的关键值、所确定的模式和返回的数据,为期望的web服务接口生成一个或多个规则(即,与方框302的url相关联)。应当理解,在一些实施例中,所提出的(多个)规则可以(例如,经由供应商集成构建器接口114)向集成器呈现一定范围的配置选项,以尝试和使用集成器要测试的数据探索模式(例如,确定使用所提出的规则是否产生预期的数据)。

返回到方框314,如前所述,如果数据分析平台116确定模式置信水平不大于或等于模式置信阈值,则方法300分支到方框320。在方框320中,数据分析平台116确定可用于将模式置信水平增加到可接受水平(即,大于模式置信阈值)的一个或多个问题。所述问题可以包括集成器可以回答的任何询问,以更好地分析数据并确定模式。例如,这样的问题可以包括所识别的属性是否错误、甚至是否可以查询url的数据等。在一些实施例中,可以从在方框310中执行的分析期间确定为需要回答的预定义问题的列表中呈现这些问题。在方框322中,数据分析平台116提示用户回答所识别的(多个)问题。

在方框324中,数据分析平台116确定用户已经回答了所有问题。如果是的话,则方法300前进到方框326,在方框326中,数据分析平台116根据接收到的(多个)回答分析在方框308中接收到的数据表示,以确定模式或更新先前确定的模式(即,在方框310中确定的模式)。在方框328中,数据分析平台116检索根据方框326中执行的分析所确定的更新的模式置信水平。在方框330中,数据分析平台116确定更新的模式置信水平是否大于或等于模式置信阈值。如果是,则方法300分支到方框316,其中如前所述,数据分析平台116根据方框326中确定的模式识别返回数据集的一个或多个关键值。否则,如果数据分析平台116确定更新的模式置信水平小于模式置信阈值,则方法300分支到方框332。

在方框332中,数据分析平台116使用暴力破解检索与方框302中接收的url相关联的数据。因此,返回的数据集比其他情况下更大。在方框334中,数据分析平台116过滤并分析在方框332中使用暴力破解方法检索到的数据集。在方框336中,数据分析平台116根据方框334中执行的分析的结果来识别返回数据集的任何关键值。在方框338中,数据分析平台116根据识别的关键值和检索到的数据为与url相关联的web服务接口生成一个或多个规则。

现在参照图4,提供了用于自动发现并连接到rest接口(例如,图1的rest接口128)的示例性方法400,该rest接口可以由web服务供应商计算装置(例如,图1的供应商计算装置110)执行,或者更具体地由供应商计算装置110的数据分析平台116执行。如前所述,数据分析平台116包括模式确定器118和数据分析器120。因此,这里描述的方法400的方框中至少有一部分可以由模式确定器118和/或数据分析器120执行。

同样如前所述,示例性方法400可以作为先前所述的图3中方法300的一个或多个方框的至少一部分(例如,在方框310、方框326等中)来执行。应当理解,在方法400被启动之前,从网络应用集成器接收url,初始http请求(例如,根据所接收的url生成的httpget请求)被先发送到web服务端点,并且在响应中接收包括所请求数据的表示(即,数据表示)的响应。

方法400开始于方框402,其中数据分析平台116分析数据表示,从而可以分析生成的数据集。在方框404中,数据分析平台116搜索可用于识别主数据集的数据。为此,在方框406中,数据分析平台116在接收的数据表示的解析结果中搜索重复数据集。例如,重复数据集可以包括任何多值集,例如数组、列表、地图(例如,其中标识符是属性名)等。应当理解,在一些实施例中,重复数据集可以包含在单个记录中。另外,在方框408中,数据分析平台116搜索一个或多个标准分页控制字段,例如计数、数字、偏移量、开始、结束等。例如,数据分析平台116可以确定数据是否返回了具有一个或多个标准分页控制字段的记录、以及作为结果的数据的内部数组。

在方框410中,数据分析平台116确定搜索是否产生重复数据集。如果是,则方法400跳到方框418,这将在下面说明;否则,如果数据分析平台116确定搜索没有查获重复数据集,则方法400前进到方框412。在方框412中,数据分析平台116确定搜索是否返回端点支持对数据分页访问的指示。如果搜索返回端点支持对数据分页访问的指示,则方法400跳转到方框418,这将在下面说明。否则,方法400分支到方框414。

在一些实施例中,在方框414中,数据分析平台116可以被配置为识别可用于识别模式的一个或多个问题。如前所述,这些问题可以提示集成器响应于所识别的属性是否错误、甚至是否可以查询url的数据等。在一些实施例中,可以从预定义问题的列表中选择问题。此外,在方框416中,数据分析平台116将模式置信水平设置为小于模式置信阈值的数值。因此,数据分析平台116可以采取必要的步骤来获得已经回答的(多个)问题。

应当理解,不包括多数据集且不包括数据被分页的任何指示的数据可以是单个记录。因此,在这样的情况下,在方框414中识别一个或多个问题之前,数据分析平台116可以被配置为确定数据是否实际上是单个记录,并且结果可以是url仅仅返回单个值的高置信度。为此,数据分析平台116可以被配置为确定记录中的可能标识符是否与url中的值匹配。如果是,可以推断这是一个键码(key),或者多个键码中的一个,可用于获取这种类型的其他记录,例如可以使用单个记录的键码的输入参数来获取。此外,如果rest接口128响应于该请求仅返回单个记录的置信度很高,则数据分析平台116可以被配置为尝试仅处理单个行,并且在由集成器识别一个或多个问题以进行澄清或确认之前验证假设是否正确,如方框414中执行的。

如前所述,如果数据分析平台116在方框408中确定搜索产生重复数据集,或者在方框412中确定端点支持对数据的分页访问,则方法400分支到方框418。在方框418中,数据分析平台116针对数据成员分析数据集(例如,重复数据集或分页数据集)的多个记录进行分析,以找到包含可能数据的集合。例如,可以分析记录以确定已知字段(例如,“结果”)是否具有拥有许多成员的多数据集,这将增加该字段包括感兴趣数据的概率。在方框420中,数据分析平台116分析数据表示和数据字段路径,以识别可能数据的最可能数据类型。例如,分析可以包括确定数据类型是否是由数据类型可以采用的值定义的特定种类的数据项,例如数字、布尔、uuid、混合大小写(例如,名称)、固定值集(例如,枚举(“m”、“f”)等。

在方框422中,数据分析平台116根据符合标识符模式所匹配的那些字段来确定可能的标识符集合。换句话说,对数据进行分析,以确定数据中的某些内容对于每个值来说是否是唯一的。例如,字段名可以提高置信水平,但是如果字段的值重复,那么该字段显然不是标识符。应当理解,在一些实施例中,唯一标识符可能需要使用多个字段。在方框424中,数据分析平台116分析标识符以确定每组数据可能的唯一标识符。例如,一个字段(例如,“selfurl”)可以指向一段特定的数据,这可以提高该字段是标识符的置信水平。

在方框426中,数据分析平台116验证所确定的可能的(多个)唯一标识符。为此,在方框428中,数据分析平台116使用确定的可能唯一标识符将一个或多个http请求(例如,httpget请求、httppost请求等)发送到rest接口128的端点,并分析返回的数据表示。在示例性示例中,数据分析平台116可以向端点发送httpget请求,并将返回的数据记录与来自初始请求的数据记录进行比较,以确定它们是否匹配,从而提供所使用的标识符被声明以及端点的get模式(例如,getone)也被声明的高置信度。在方框430中,数据分析平台116根据方框426中执行的验证来设置模式的置信水平(即,模式置信水平)。

应当理解,方法300和400中所述的置信水平可以在所提出的规则的多个级别上分配,以指示所识别的数据类型、标识符、数据成员等的置信度。还应当理解,虽然web服务126的rest接口128已经被描述为restful接口,但是在一些实施例中,这里执行的分析可以扩展到xml和/或html网页。

虽然在附图和前面的描述中详细说明和描述了本申请,但是应当认为这是示意性的而非限制性的,应当理解,仅示出和描述了某些实施例,并且希望保护在本申请精神内的所有改变和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1