CN114787810A - 使用交互模式的应用程序集成 - Google Patents

使用交互模式的应用程序集成 Download PDF

Info

Publication number
CN114787810A
CN114787810A CN202080086137.7A CN202080086137A CN114787810A CN 114787810 A CN114787810 A CN 114787810A CN 202080086137 A CN202080086137 A CN 202080086137A CN 114787810 A CN114787810 A CN 114787810A
Authority
CN
China
Prior art keywords
application
data
api
apis
role
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.)
Pending
Application number
CN202080086137.7A
Other languages
English (en)
Inventor
J·G·H·雷乌泽尔
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of CN114787810A publication Critical patent/CN114787810A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Medical Treatment And Welfare Office Work (AREA)

Abstract

本公开涉及控制各种应用程序之间的通信或使用交互模式集成各种应用程序。生成定义交互模式的多个角色的交互模式数据。每个角色与事务相关联,并且是事务的源或目标。使用应用程序编程接口(API)执行事务。基于角色是事务的源还是目标,角色可以是API的提供者或使用者。生成应用程序一致性数据,其定义由应用程序实施的一组角色。应用程序被准许调用另一应用程序的API,如果该应用程序实施第一角色并且另一应用程序实施第二角色,并且第一角色和第二角色分别是使用API执行的事务的源和目标。

Description

使用交互模式的应用程序集成
技术领域
本专利申请公开了与使用交互模式来集成应用程序有关的各种系统和方法。
背景技术
计算机系统中的软件提供机器对机器接口,其通常称为应用程序编程接口(API)。可以由应用程序使用这些API在另一个应用程序中启动过程或方法。API通常以机器可解析的格式形式化,例如OpenAPI和网络服务定义语言(WSDL)。然而,此类规范仅仅提供进出实施API的服务的消息的语法(和部分语义)。当多个API以某种方式相关时(例如,服务可能必须实施两个API,或者需要实施某个API的服务来调用一些其他API),这些API规范方法无法表示这些关系。有时可能指定此类多API交互和对应的行为要求。然而,它们不在机器可解析的定义中捕获,并且这样一来可能不用于应用程序逻辑(例如支架或自动化多API测试套件)中。服务注册中心通常会公开哪些服务能够实施API的服务器侧。通常未注册的是此类API的潜在客户。没有客户端注册,不能查询、跟踪或控制系统依赖关系。
发明内容
因此,本公开的一个或多个方面涉及一种用于控制多个应用程序之间的通信的方法,该方法由执行一个或多个计算机程序指令的一个或多个处理器实施,使得当被执行时,一个或多个处理器实现生成交互模式数据的方法,该交互模式数据为多个交互中的每个定义多个角色。每个角色与用另一角色执行的事务相关联,其中,事务是使用应用程序编程接口(API)执行的。该方法还包括生成应用程序一致性数据,该应用程序一致性数据针对多个应用程序中的每个定义了由对应的应用程序实施的一组角色。该方法还包括生成应用程序实例数据,该应用程序实例数据包括与应用程序的实例相关联的多个API的位置数据。该方法包括基于交互模式数据、应用程序一致性数据和应用程序实例数据(统称为“配置数据”)来控制第一应用程序和第二应用程序之间的通信。
本公开的另一方面涉及一种用于控制多个应用程序之间的通信的方法,该方法由执行一个或多个计算机程序指令的一个或多个处理器实施,使得当被执行时,一个或多个处理器实现在服务器处接收来自多个应用程序中的第一应用程序以调用与多个应用程序中的第二应用程序相关联的指定API的请求的方法。该方法包括从存储系统获得交互模式数据,其中,交互模式数据定义使用多个角色的多个交互中的每个,其中,每个角色被配置为消费来自另一角色的API,或者将API提供给另一角色。该方法还包括从存储系统获得应用程序一致性数据,其中,应用程序一致性数据针对多个应用程序中的每个定义了由对应的应用程序实施的一组角色。该方法还包括由服务器基于应用程序一致性数据确定第一应用程序被配置为实施第一角色并且第二应用程序被配置为实施第二角色,并且交互模式数据指示第一角色被配置为消费与第二角色相关联的指定API。该方法还包括由服务器准许第一应用程序调用第二应用程序的指定API。
本公开的又一方面涉及一种控制计算机网络中的多个应用程序之间的通信的系统,该系统包括一个或多个处理器,该一个或多个处理器由机器可读指令配置为:生成交互模式数据,该交互模式数据使用多个角色来定义多个交互中的每个交互。每个角色与利用另一角色执行的事务相关联,其中,事务是使用API执行的。该系统还被配置为生成应用程序一致性数据,该应用程序一致性数据针对多个应用程序中的每个定义了由对应的应用程序实施的一组角色。该系统还被配置为生成应用程序实例数据,该应用程序实例数据包括与应用程序的实例相关联的多个API的位置数据。该系统还被配置为基于配置数据控制第一应用程序和第二应用程序之间的通信。
本公开的又一方面涉及一种控制计算机网络中的多个应用程序之间的通信的系统,该系统包括一个或多个处理器,所述一个或多个处理器由机器可读指令配置为:从配置子系统获得配置数据,该配置数据包括交互模式数据、应用程序一致性数据和应用程序实例数据。交互模式数据可以定义使用多个角色的交互,其中,每个角色是应用程序编程接口(API)的消费者或API的提供者。应用程序一致性数据可以定义由应用程序实施的一组角色,并且应用程序实例数据可以包括与应用程序的实例相关联的多个API的网络地址。该系统还可以基于配置数据配置网关子系统以生成用于将请求从用于访问与第二应用程序相关联的指定API的第一应用程序路由到与指定API相关联的指定网络地址的网络路由数据。该系统还被配置为基于配置数据经由网关子系统控制第一应用程序和第二应用程序之间的通信。
在参考附图考虑下面的描述和所附权利要求后,本公开的这些和其他目的、特征和特性、以及结构的相关元件的操作和功能以及部件的组合和制造的经济性将变得更加显而易见,所有这些形成本说明书的一部分,其中,相似的附图标记指定各个图中的对应部分。然而,应明确理解,附图仅用于说明和描述的目的,而不旨在作为对本公开的限制的定义。
附图说明
图1A和1B示出了根据各种实施例的用于控制(协调或促进)计算机网络中的应用程序之间的通信的系统;
图2示出了根据各种实施例的患者数据交换交互模式的表示;
图3示出了根据各种实施例的被配置为实施来自各种交互模式的角色的应用程序的表示;
图4示出了根据各种实施例的用于生成配置数据的数据结构;
图5示出了根据各种实施例的用于控制应用程序之间的通信的方法的流程图;
图6示出了根据各种实施例的用于控制第一应用程序和第二应用程序之间的通信的方法的流程图;
图7示出了根据各种实施例的用于执行发现过程的方法的流程图;
图8示出了根据各种实施例的用于执行授权过程的方法的流程图;
图9示出了根据各种实施例的用于实施上述方面中的一个或多个的计算机系统。
具体实施方式
如本文所使用的,“一”、“一个”和“所述”的单数形式包括复数引用,除非上下文另有明确规定。如本文所使用的,术语“或”意指“和/或”,除非上下文另有明确规定。如本文所使用的,术语“数量”应该意指一或大于一的整数(即,多个)。
在权利要求中,放置在括号之间的任何附图标记不应被解释为对权利要求的限制。词语“包括”或“包含”不排除权利要求中列出的元素或步骤之外的元素或步骤的存在。在列举若干模块的设备权利要求中,这些模块中的若干可以由同一项硬件体现。元素之前的词语“一”或“一个”不排除多个这样的元素的存在。在列举若干模块的任何设备权利要求中,这些模块中的若干可以由同一项硬件来体现。尽管在互不相同的从属权利要求中列举了特定元素,但是这并不指示不能组合使用这些元素。
图1A示出了根据各种实施例的用于控制(协调或促进)计算机网络中的应用程序之间的通信的系统100。在一些实施例中,系统100包括配置子系统112(例如,一个或多个服务器或其他计算机系统)、网关子系统114(例如,一个或多个服务器或其他计算机系统)、计量子系统116(例如,一个或多个多个服务器或其他计算机系统)和应用程序子系统118(例如,一个或多个服务器或其他计算机系统)。应用程序子系统118可以托管多个应用程序(例如,医疗保健相关应用程序),诸如第一应用程序110a(例如,患者计划提供者应用程序)和第二应用程序110b(例如,患者急迫度分层应用程序)。
系统100促进基于交互模式控制应用程序110之间的通信,所述交互模式定义了要由一个或多个应用程序执行以达到公共目标的操作。配置子系统112可以促进可以用于控制应用程序之间的通信的配置数据125的生成。配置数据125包括交互模式数据126,其依据角色、事务、应用程序编程接口(API)及其相互依赖关系来定义交互模式。例如,一个角色与使用相关联的API与另一角色一起执行的事务相关联。角色可以是事务的来源(例如,与事务关联的API的消费者),或事务的目标(例如,与事务关联的API的提供者)。配置数据125包括应用程序一致性数据127,其定义了由应用程序实施的一组角色。在一些实施例中,由应用程序实施的角色可以用于确定该应用程序可以访问哪些其他应用程序及其相关联的API。此外,配置数据125包括应用程序实例数据128,其指定与应用程序的实例相关联的API的位置数据(例如,诸如服务器或其他计算机系统的端点的统一资源定位符(URL),其托管API)。通常,配置数据125可用于确定应用程序之间的允许的交互(例如,应用程序的哪个API可以基于定义的角色调用其他应用程序的哪些API)。
配置子系统112还提供发现API以查找应用程序及可被应用程序访问的其相关联的API。应用程序可以使用发现API来获得应用程序及可被应用程序访问的其相关联的API的列表。在一些实施例中,发现API使用配置数据125,诸如由应用程序实施的角色(例如,由源应用程序和目标应用程序实施的角色)以及与这些角色相关联的API,以确定应用程序及可被应用程序访问的其相关联的API的列表。
配置子系统112还提供授权API,如果特定应用程序应该接受来自另一个应用程序的传入请求,则应用程序子系统118可以使用该授权API来提供授权决定,并且如果是,则授权API还可以让请求应用程序知道特定应用程序的哪些API是可访问的(基于配置数据125,诸如由应用程序实施的角色以及与这些角色相关联的API)。通过上述方法,系统100提供了一种形式的基于角色的访问控制,尽管应用在应用程序水平而不是用户水平。
网关子系统114促进网络路由数据的生成和设置用于将API访问请求从请求应用程序路由到所请求的API的网关。网关子系统114可以充当应用程序之间的中间体(例如,接收来自请求应用程序的API访问请求并将其路由到具有所请求API的适当端点)。网关子系统114使用配置数据125,诸如API的位置数据,以生成网络路由数据。网关子系统114还可以将标签(例如,交互模式名称、源API、源应用程序、目标应用程序或目标API)添加到通过网关子系统114的网络流量(例如,应用程序交互,诸如API访问请求和响应),其可以用于计量或其他分析学目的。
计量子系统116可以促进计量数据的收集和聚合,其可以用于生成具有各种分析功能中的任何的报告。由于基于标签对通过网关子系统114的交互进行标记/分类,因此可以生成描绘不同种类的交互模式知识的报告。报告的示例包括关于生态系统使用情况的业务报告、财务报告、运营报告、安全报告。这些报告可以包括分析功能,例如由应用程序使用的交互模式的类型、一对应用程序之间的交互的数量或与应用程序相关联的其他此类性能度量。
下面至少参考图1B描述了系统100的额外细节。
图1B示出了根据各种实施例的用于控制计算机网络中的应用程序之间的通信的系统100的详细视图。在一些实施例中,系统100包括计算机系统102(例如,一个或多个服务器或其他计算机系统)、提供者客户端设备104和数据库130。尽管仅示出了单个提供者客户端设备104,但系统100可以包括多个与提供者客户端设备104相同或相似的提供者客户端设备。计算机系统102、提供者客户端设备104和数据库130被配置成可操作地彼此耦合,使得计算机系统102、提供者客户端设备104和数据库130中的每一个可以通过网络150彼此通信或与其他组件、设备和系统通信。例如,网络150能够被系统100的任何组件使用传输控制协议和互联网协议(“TCP/IP”)、用户数据报协议(UDP)(例如,每个TCP/IP层中使用的任何协议)、超文本传输协议(“HTTP”)、WebRTC、SIP和无线应用协议(“WAP”)来访问。在一个实施例中,网络150促进系统100的组件或其他组件之间通过使用HTTP的网络浏览器相互通信。用于促进系统100的组件之间的通信的各种附加通信协议包括但不限于Wi-Fi(例如,802.11协议)、蓝牙、射频系统(例如,900MHz、1.4GHz和5.6GHz通信系统)、蜂窝网络(例如,GSM、AMPS、GPRS、CDMA、EV-DO、EDGE、3GSM、DECT、IS136/TDMA、iDen、LTE或任何其他合适的蜂窝网络协议)、红外线、BitTorrent、FTP、RTP、RTSP、SSH和/或VOIP。
数据库130包括一个或多个交互模式数据库132、一个或多个应用程序一致性数据库134、一个或多个应用程序实例数据库136以及一个或多个报告数据库138。在一些实施例中,系统100包括数据库130的多个实例。然而为简单起见,描述了每个数据库130的单个实例。例如,如本文所述,“交互模式数据库134”指的是单个交互模式数据库或多个交互模式数据库。包括在数据库130中的每个数据库能够是分布式数据库、基于云的存储数据库等。
提供者客户端设备104与计算机系统102交互(例如,用于访问由计算机系统102托管的应用程序)。在一些实施例中,提供者客户端设备104与位于护理机构的提供者相关联。如本文所述,护理机构包括综合医院、精神病院或任何其他卫生机构、诊所或社区辅助生活社区,或任何其他类型的长期(例如,过夜)护理机构。此外,提供者可以是医生、护士、技术人员、紧急医疗提供者、社会工作者、家庭成员。提供者客户端设备104可以是可穿戴设备和/或一个或多个移动计算机设备。在一些实施例中,提供者客户端设备104包括分配给提供者的计算设备(例如,台式或膝上型计算机、平板电脑或智能手机),其可以执行应用程序(例如,由计算机系统102托管的应用程序之一)。在一些实施例中,提供者客户端设备104也可以是可以执行诸如护理提供者应用程序之类的云托管应用程序(例如,由计算机系统102托管的应用程序之一)的计算设备。例如,护理提供者应用程序可以:从计算机系统102接收指示处方药组合的效果的通知。此外,护理提供者应用程序可以与电子健康记录(EHR)应用程序(例如,由计算机系统102托管)直接接口(例如,作为附加组件),以便在护理提供者正在审查患者的EHR记录时提供关于处方药的通知。可替代地,护理提供者应用程序可以与报告数据库138接口,该报告数据库138可由EHR应用程序使用,以便从EHR应用程序访问药物数据。
在一些实施例中,计算机系统102包括配置子系统112、网关子系统114、计量子系统116和应用程序子系统118。此外,计算机系统102可以包括一个或多个处理器120、存储器122和/或其他组件。存储器122可以包括计算机程序指令,当计算机程序指令由处理器120执行时,实施要执行的操作,包括使任何子系统112-118的功能被执行。计算机程序指令可以指的是存储在存储器122中并且可以响应于执行一个或多个特定功能或两者的请求而由处理器120自动执行的机器可读指令。存储器122可以包括有形程序载体,例如非瞬态计算机可读存储介质。
在一些实施例中,应用程序子系统118被配置为托管多个应用程序(例如,医疗保健相关应用程序),例如第一应用程序110a(例如,患者计划提供者应用程序)和第二应用程序110b(例如,患者急迫度分层器应用程序),如至少参考图1A所描述的。应用程序子系统118可以实施为一个或多个服务器或其他计算机系统。此外,应用程序子系统118可以实施为基于云的平台,该平台可以向多个租户(例如,护理机构)提供对一个或多个应用程序的访问。在一些实施例中,应用程序子系统118可以为每个租户托管应用程序的单独实例。例如,可以为第一护理机构(例如,由提供者客户端设备104表示)托管第一和第二应用程序的第一组实例,并且可以为第二护理机构(例如,可以由类似于提供者客户端设备104的另一个提供者客户端设备表示)托管第一和第二应用程序的第二组实例。然而,为了简单起见,可以在所公开的实施例中描述单个护理机构的一组实例。此外,一些应用程序可以由一个或多个服务器或其他计算机系统托管在护理机构的计算机网络中(例如,在与提供者客户端设备104相同的计算机网络中)。应用程序可以提供一个或多个API,另一个应用程序可以使用/访问/调用这些API以与该应用程序通信(例如,从该应用程序消费数据或向该应用程序提供数据)。
在一些实施例中,配置子系统112被配置为生成配置数据125,计算机系统102可以使用该配置数据来控制应用程序之间的通信。例如,当提供者客户端设备104正在访问的第一应用程序110a请求访问第二应用程序110b的指定API时,计算机系统102可以通过分析配置数据125来确定是否准许第一应用程序110a访问指定API。配置数据125根据交互模式、角色、事务、API以及它们的相互依赖关系来描述由应用程序执行的交互,计算机系统102基于这些交互模式、角色、事务、API以及它们的相互依赖关系可以确定如何控制应用程序之间的通信。
配置子系统112可以提供用于定义/生成交互模式数据126的图形用户界面(GUI)。用户(例如,应用程序开发者)可以使用GUI来生成交互模式。在一些实施例中,生成交互模式包括定义多个角色并将角色配置为事务的源或目标。在一些实施例中,事务是两个角色之间的通信路径。事务可以使用一个或多个API来执行操作。此外,如果将角色配置为事务的源,则该角色是与事务关联的API的消费者。如果将角色配置为事务的目标,则该角色是与事务关联的API的提供者。在一些实施例中,如果两个角色与事务相关联,则它们可以相互通信。如果必须使第一角色和第二角色能够通信,则第一角色和第二角色可能必须与事务相关联。可以意识到,事务可以确定哪些角色可以调用哪些其他角色。
作为示例,至少参考图2描述了患者数据交换交互模式200。在一些实施例中,患者数据交换交互模式是可以用于在两个或更多个应用程序之间交换患者数据的交互。患者数据交换交互模式200包括诸如患者数据源、患者数据接收器、患者数据存储设备、患者数据消费者、患者数据位置索引或患者数据身份消费者的角色。角色“患者数据存储设备”202和“患者数据消费者”204通过事务“数据查询”206连接/与其相关联。角色“患者数据消费者”204是事务“数据查询”206的源,并且角色“患者数据存储设备”202是事务“数据查询”206的目标,这意味着实施角色“患者数据消费者”204的应用程序可以调用与实施角色“患者数据存储设备”202的应用程序的事务“数据查询”206相关联的API 212。这种API的示例包括:“FHIR-读取”,其指的是在快速医疗保健互操作性资源(FHIR)接口上的读取操作;或“DICOM-网络-读取”,指的是医学数字成像和通信(DICOM)-网络接口上的所有读取操作。
在一些实施例中,交互模式还可以包括依赖角色,该角色是依赖于另一角色的角色。当角色依赖于另一角色时,依赖角色继承它所依赖于的角色的所有要求,包括提供所需的API。这种依赖关系可以用于将公共功能提取到单独的角色中。作为示例,在患者数据交换交互模式200中,角色“位置索引”208依赖于角色“患者数据消费者”204。角色“位置索引”208和“患者数据消费者”204与事务“索引-查询”210,其中,角色“患者数据消费者”204是事务210的源。在一些实施例中,角色“位置索引”208允许角色“患者数据消费者”204找到哪些数据存储设备具有关于特定患者的数据。通过依赖于角色“患者数据消费者”204,角色“位置索引”208也可以像角色“患者数据消费者”204一样工作并且提供或消费角色“患者数据消费者”204提供或消费的API。角色“位置索引”208可以查询一个或多个数据存储设备,如角色“患者数据消费者”204,并且然后构建数据存储设备的索引,其然后可以由角色“患者数据消费者”204查询/消费。
配置子系统112可以将交互模式数据126(其包括关于交互模式、角色、事务和API的信息)存储在注册表或数据库中,例如交互模式数据库134。在一些实施例中,一旦交互模式存储在交互模式数据库134中,交互模式可以被认为是“已注册的”,这意味着交互模式(例如,它的角色和事务)可用于由应用程序实施。用户(例如,应用程序开发者)可以使用存储在交互模式数据库134中的交互模式来配置应用程序以实施一个或多个角色,这实际上控制了应用程序之间的集成或通信。
在一些实施例中,配置子系统112还提供用于生成应用程序一致性数据127的GUI。应用程序一致性数据127描述了由应用程序实施的一组角色。在一些实施例中,配置应用程序以实施角色可以使应用程序能够消费(例如,调用)由其他应用程序提供的一个或多个API,或提供一个或多个API以供其他应用程序消费。作为示例,为了使第一应用程序能够调用第二应用程序的指定API,可以搜索交互模式数据库132以识别具有分别是使用指定API执行的事务的源和目标的第一角色和第二角色的交互模式。然后可以将第一应用程序配置为实施第一角色并且将第二应用程序配置为实施第二角色。
作为示例,图3示出了显示各种应用程序和由应用程序实施的角色的GUI 300。配置子系统112使得所有注册的交互模式(即来自交互模式数据库132的交互模式数据126)对用户(例如,应用程序开发者)有用,以用于配置应用程序以实施一个或多个角色。用户可以选择这些角色中的一个或多个来相应地定义应用程序交互。图3的GUI 300示出了被配置为实施来自各种交互模式的角色的应用程序患者急迫度分层器302、患者计划提供者304、问卷提供者306和护理应用程序308。然而,为了简单起见,以下段落描述了关于来自患者数据交换交互模式200的角色的应用程序的配置。
应用程序患者急迫度分层器302被配置为实施来自患者数据交换交互模式200的角色“患者数据存储设备”202和“患者数据消费者”204;应用程序患者计划提供者304被配置为实施角色“患者数据存储设备”202;应用程序问卷提供者306被配置为实施角色“患者数据存储设备”202;并且护理应用程序308被配置为实施角色“患者数据位置索引”208。
上述应用程序一致性数据127在应用程序交互方面可以意味着以下:(a)应用程序患者急迫度分层器302可以调用由通过应用程序实施的角色“患者数据存储设备”202提供的应用程序患者急迫度分层器302、患者计划提供者304和问卷提供者306的API;以及(b)应用程序患者急迫度分层器302可以调用由通过护理应用程序308实施的角色“位置索引”208提供的护理应用程序308的API;以及(c)护理应用程序308可以调用应用程序患者急迫度分层器302可以调用的API,因为由护理应用程序308实施的角色“位置索引”208依赖于由应用程序患者急迫度分层器302实施的角色“患者数据消费者”204。
尽管没有详细讨论,但是应用程序患者急迫度分层器302还被配置为实施来自其他交互模式的角色,诸如来自调查交互模式的调查请求者角色和来自患者转诊交互模式的推荐人角色。类似地,应用程序患者计划提供者304被配置为实施来自其他交互模式的角色,诸如来自患者转诊交互模式的“计划提供者”角色。类似地,应用程序问卷提供者306被配置为实施来自其他交互模式的角色,诸如来自调查交互模式的“调查提供者”角色。
注意,GUI 300还经由使用箭头来示出角色之间的关联,所述箭头描绘了与角色相关联的事务。例如,应用程序患者急迫度分层器302中的“患者数据消费者”204与由应用程序患者急迫度分层器302、患者计划提供者304和问卷提供者306实施的角色“患者数据存储设备”202连接,这指示患者急迫度分层器302可以经由与连接这些角色的事务相关联的API与患者计划提供者304和问卷提供者306通信。然而,在将应用程序交互定义为事务和角色的关联被定义为交互模式的部分时,用户可能不必将这些角色与事务相关联。
在定义应用程序交互之后,应用程序一致性数据127(其包括关于应用程序和由应用程序实施的角色的信息)被存储在应用程序一致性数据库134中。应用程序一致性数据库134存储已被配置为实施一个或多个角色的应用程序列表。在一些实施例中,应用程序一致性数据库134充当“市场”,其中,用户(例如,应用程序开发者)可以搜索兼容的应用程序及其与其他应用程序集成的能力(例如,基于由应用程序实施的角色)。
在一些实施例中,配置子系统112使用一种或多种数据结构来存储配置数据125。图4示出了用于定义/生成/存储配置数据125的数据结构,包括交互模式数据126、应用程序一致性数据127和应用程序实例数据128。作为示例,交互模式数据126使用第一数据结构450存储在交互模式数据库134中。在一些实施例中,数据结构包括定义使用该数据结构存储的数据的多个属性和关系。第一数据结构450包括交互模式属性451,其可以指定与交互模式相关联的名称或标识(ID)和版本或其他信息。角色属性452指定由交互模式实施的角色的名称或ID。可以为交互模式定义许多这样的角色。事务属性453指定事务的名称或ID。API属性454指定API的名称和版本。在一些实施例中,API名称在应用程序中是唯一的。选项属性455定义了可以启用或停用的API的一个或多个特征。作为示例,选项之一可以是“敏感的”,这使API能够检索被归类为敏感数据或与患者相关联的个人数据的内容,如果该选项未设置为“敏感”,则不会检索这些内容。此外,指定API的选项可以是任选的。
关系属性定义了各种属性之间的关系。作为示例,角色-事务关系属性456定义角色和事务之间的关系。例如,角色可以是相关联的事务的源或目标。角色的角色-依赖关系属性457指定该角色所依赖的另一角色。事务-API属性458指定用于执行事务的一个或多个API。API选项属性459指定与API相关联的一个或多个选项。
在一些实施例中,应用程序一致性数据127使用第二数据结构460存储在应用程序一致性数据库134中。第二数据结构460包括应用程序属性461,其可以指定名称或标识(ID)或与应用程序相关联的其他信息。角色属性462指定由应用程序实施/支持的角色的名称。许多这样的角色可以由应用程序实施。选项属性463定义了可以被启用以与其他应用程序交互的应用程序的一个或多个特征。此外,指定API的选项可以是任选的。
在一些实施例中,应用程序实例数据128使用第三数据结构470存储在应用程序实例数据库136中。第三数据结构470包括应用程序实例属性471,其可以指定应用程序实例的ID或其他信息。如前所述,在一些实施例中,应用程序实例是应用程序的逻辑实例并且可以指代应用程序的独立客户部署以及在该应用程序的共享部署处的配置租户。例如,如果为两个护理机构部署了一个应用程序,则可能有两个单独的应用程序实例。与第一护理机构相关联的应用程序实例可以具有第一实例ID,并且与第二护理机构相关联的应用程序实例可以具有第二实例ID。API位置属性472指定应用程序实例的API被定位于的位置数据(例如,IP地址、URL或端点的其他此类网络地址)。选项属性473定义了可以被启用以与其他应用程序交互的应用程序的一个或多个特征。例如,选项属性可以用于定义由应用程序实施的角色是针对应用程序的特定实例启用还是停用。此外,指定API的选项可以是任选的。在一些实施例中,与特定客户相关联的应用程序实例也用组ID标记,并且通常允许应用程序实例与具有相同组ID的其他应用程序实例通信。
访问许可数据480定义应用程序的访问许可。例如,访问许可数据480定义可以访问第一应用程序的应用程序列表,而不管或无关于由第一应用程序实施的角色。在另一示例中,访问许可数据480定义可以由第一应用程序访问的一组应用程序。在又一示例中,访问许可数据480定义第一应用程序是否可以访问第二应用程序的特定角色,而不管或无关于第一应用程序和第二应用程序是否实施与其中第一应用程序是事务的源且第二应用程序是事务的目标的事务相关联的角色。
在一些实施例中,控制通信可以包括发现应用程序可以调用的API的列表,确定应用程序是否可以调用指定的API,或者授权服务器接受来自客户端设备的传入API访问请求。配置子系统112执行配置分析以确定如何控制应用程序之间的通信。例如,作为配置分析的一部分,配置子系统112可以基于第一应用程序110a的实例在应用程序实例数据库136中的存在来确定第一应用程序110a在应用程序一致性数据库134中注册为提供一些集成能力。接下来,从应用程序一致性数据库134并使用第二数据结构460,配置子系统112可以确定第一应用程序110a正在实施来自交互模式数据库132的一组角色。接下来,从交互模式数据库134并使用第一数据结构450,配置子系统112可以确定作为事务源的角色的第一子集,并且将与这些事务相关联的API确定为可由第一应用程序110a调用的API。类似地,配置子系统112可以确定作为事务的目标的角色的第二子集,并且将与这些事务相关联的API确定为要由第一应用程序110a实施以供其他应用程序消费的API。
在一些实施例中,用户(例如,应用程序开发者)可以配置一个或多个端点以按角色的第二子集托管API,并相应地更新应用程序实例数据128中的这些API的位置数据(例如,在用于与第一应用程序110a相关联的实例的第三数据结构470中的API位置属性472)。
在另一示例中,执行配置分析以确定第一应用程序110a的实例可以访问与第二应用程序110b相关联的指定API可以包括确定(a)基于访问许可数据480,第一应用程序110a的实例被准许与第二应用程序110b的实例通信;(b)基于应用程序一致性数据127,第一应用程序110a正在实施第一角色并且第二应用程序110b正在实施第二角色;(c)基于应用程序实例数据128,针对第一应用程序110a的实例启用第一角色,并针对第二应用程序110b的实例启用第二角色;(d)基于交互模式数据126,在第一角色和第二角色之间定义事务,其中,第一角色是事务的源,并且第二角色是事务的目标;以及(e)事务被定义为基于交互模式数据126使用API。
配置子系统112可以提供发现API,可以由应用程序使用该发现API来确定可以由应用程序调用的API。在发现过程中可以涉及到多个操作。作为示例,在第一操作中,由提供者客户端设备104执行的第一应用程序110a可以请求计算机系统102提供可由第一应用程序110a访问的API的列表。计算机系统102可以返回具有托管发现API的端点(例如,服务器或其他计算机系统)的位置细节的第一响应。在一些实施例中,第一响应可以包括以下细节:
{
authorization_endpoint:“https://iam.hsdp....”
token_endpoint:“https://iam.hsdp.ph.com/...”
...
introspect_endpoint:“https://cce.ph.com/.../introspect”
discovery_endpoint:https://cce.ph.com/...
}
授权端点是提供者客户端设备104可以向计算机系统102认证其自身并且在成功认证之后从令牌端点获得访问令牌的端点。发现端点指定托管发现API的端点的位置。
在发现过程的第二操作中,提供者客户端设备104可以向发现端点发送调用发现API的请求。提供者客户端设备104还可以在请求中提供访问令牌。发现端点处理访问令牌以确认允许提供者客户端设备104调用发现API并向提供者客户端设备104返回第二响应。第二响应可以包括由第一应用程序110a可访问(例如,可调用)的API的列表以及要由第一应用程序110a实施(例如,提供)的API。在一些实施例中,第二响应可以包括具有以下信息的发现文档:
Figure BDA0003688654710000081
在一些实施例中,第二响应的自身部分指示(a)第一应用程序110a被配置为提供/发布/实施以供其他应用程序消费的API,以及(b)这些API可访问的端点的位置数据。
第二响应的应用程序部分提供可以由第一应用程序110a调用的应用程序(例如,“应用程序_id”)及其相关联的API(例如,“api”)的列表。应用程序部分还包括由对应应用程序托管API的端点的位置数据(例如“基本_URL”)。在一些实施例中,API用相关联的交互模式、角色和事务的ID(例如,其从上述数据结构中获得)来标记。
此外,第二响应还包括有效性指示符(例如,“exp”),其指示在第二响应中提供的细节的到期日期或时间。在到期之后,提供者客户端设备104可能不得不再次调用发现API以获得新的API的列表,该列表可能已经或可能没有从先前获得的API的列表中改变。在一些实施例中,提供者客户端设备104可以将API的列表缓存在与提供者客户端设备104相关联的存储器中并且参考缓存列表而不是调用发现API,从而节省计算或网络资源。然而,在缓存的API的列表到期之后,提供者客户端设备104可能必须调用发现API以获得新的API的列表。
在一些实施例中,发现API可以基于上述配置分析(例如,使用三个数据结构450、460和470对配置数据125的分析)确定可由第一应用程序110a调用的上述API的列表。在从发现API获得API的列表之后,在提供者客户端设备104处执行的第一应用程序110a可以从API的列表中选择指定API,并向托管与第二应用程序110b相关联的指定API的指定端点发送用于访问指定的API的请求。
当指定端点从提供者客户端设备104接收到用于访问指定API的请求时,指定端点执行检查以确定第一应用程序110a是否被授权访问由服务器端点托管的第二应用程序以及第一应用程序110a是否被授权访问第二应用程序的指定API。在一些实施例中,配置子系统112提供授权API,指定端点可以使用该授权API来确定授权。例如,在接收到来自在提供者客户端设备104处执行的第一应用程序110a的API访问请求时,指定端点利用一对访问令牌调用授权端点处的授权API,一个与指定端点相关联,而另一个接收自提供者客户端设备104(例如,如上面至少参考发现API所描述的)。授权API处理访问令牌以确定第一应用程序110a的实例正在请求调用第二应用程序的实例。授权API然后确定是否准许第一应用程序110a的实例使用访问许可数据480调用第二应用程序110b的实例。如果访问许可数据480指示第一应用程序110a不被允许访问第二应用程序110b,则授权API向指定端点返回指示这样做的响应,并且指定端点还可以通知提供者客户端设备104其被限制访问第二应用程序。然而,如果访问许可数据480指示允许第一应用程序110a访问第二应用程序110b,则授权API向指定端点返回指示允许第一应用程序110a访问的API的列表的响应。在一些实施例中,来自授权API的响应可以包括以下信息:
{
active:true
scope:[‘fhir-read’,‘fhir-read-sensitive’]
client_id:‘1234-56-7980’
group_id:‘id x’
exp:59874327
}
在一些实施例中,“活动”属性指示指定端点是否应允许API访问请求。“范围”属性指示允许第一应用程序在指定端点访问的API的列表。“客户端_id”是请求应用程序(例如,第一应用程序110a)的唯一标识符。“组_id”属性指示交互的部署组。如上所述,在一些实施例中,允许实例与同一组ID内的其他实例通信。在一些实施例中,组ID指示多租户云平台中的租户ID,其可以表示特定实体(例如,护理机构)的部署。云平台可以支持为多个租户部署应用程序,并且每个租户可以有唯一的组ID,每个租户的应用程序的实例被分组在对应的组ID下。有效性指示符“exp”指示响应有效的时间值(并且因此,响应可以缓存在服务器端点以防止对授权API进行后续调用的时间)。
在指定端点接收到来自授权端点的授权响应后,指定端点可以根据授权响应确定由第一应用程序110a请求的指定API是否被包括在API的列表中,并且如果其被包括,则准许第一应用程序110a访问指定API。
在一些实施例中,授权API,如发现API,可以基于上述配置分析(例如,使用三个数据结构450、460和470的配置数据125的分析)确定由第一应用程序110a可访问的API的列表)。
在一些实施例中,网关子系统114促进网络路由数据的生成和基于网络路由数据将来自请求应用程序的API访问请求路由到所请求的API。网关子系统114分析配置数据125(例如,执行如上所述的配置分析)以确定应用程序可以调用的API的列表、API的位置数据(例如,托管API的端点的URL)并相应地生成网络路由数据。然后用网络路由数据配置网关以相应地路由访问请求。例如,当提供者客户端设备104访问位于发现文档中指示的指定端点的指定API时,发现端点通知提供者客户端设备104将请求引导到网关子系统114,网关子系统114然后基于网络路由数据将访问请求路由到指定端点。在一些实施例中,发现API可以将发现文档中的指定API的URL替换为网关的实例的URL,该网关可以将来自提供者客户端设备104的请求路由到指定端点处的指定API。因此,当提供者客户端设备104访问网关的URL时,网关可以将API访问请求路由到指定端点。可以使用各种方法来配置网关子系统114。在一些实施例中,网关子系统114是使用Envoy代理配置API配置的。
在一些实施例中,在多云平台设置中,可以配置网关的网络。例如,如果一个应用程序是一个网络区(例如,外部云基础设施,诸如在护理机构的计算机网络之外),而另一个应用程序位于第二个网络区(例如,内部云基础设施,诸如在护理机构的计算机网络内),网关可以放置在每个网络区的边缘(例如,一个在内部云基础设施中,而另一个在内部云基础设施之外)。然后,网关被配置为将外部流量路由到内部服务,反之亦然,将来自内部服务的请求通过其他代理路由到位于其他地方的相关服务。在一些实施例中,为了实现这种跨网络区的请求的路由,应用程序可能必须用它们放置于的网络区ID来标记。网关子系统114然后可以基于网络区来生成网络路由数据。
此外,在一些实施例中,由于网关子系统114具有对配置数据125的访问权,网关子系统114可以确定与通过网关子系统114的网络流量相关联的交互模式、服务器端点、请求应用程序、目标应用程序/API。网关子系统114可以将标签(例如,交互模式名称、源API、源应用程序、目标应用程序、目标API、服务器端点或其他信息)添加到通过网关子系统114的网络流量(例如,应用程序交互,诸如API访问请求和响应)并生成标记的访问日志。网关子系统114可以将标记的访问日志存储在报告数据库138中。
作为示例,计量子系统116可以分析标记的访问日志以生成具有任何各种分析的报告。报告的示例包括使用情况报告,例如描述某种交互模式类型的交互发生了多少(例如,患者数据交换)。报告可以进一步基于各种参数进行归类,例如请求应用程序和被请求的应用程序。报告还可以包括财务数据,例如已经与特定端点发生了多少次交互,这些财务数据可用于按使用付费类型的财务模型。报告还可以包括操作数据,例如客户端和服务器性能指示符,包括可用率、响应时间等。报告还可以包括安全信息,例如有关失败请求的信息(例如,出于安全原因/未经授权的请求)、意外交互、或行为改变,这对于检测安全漏洞很有用。
如可以意识到的,使用配置数据125来实现各种服务,包括发现服务、授权服务、API访问请求的路由以及计量/报告服务。
示例流程图
图5-8是实现如上面详细描述的系统的各种特征和功能的方法的处理操作的示例流程图。以下呈现的每种方法的处理操作旨在是说明性而非限制性的。在一些实施例中,例如,方法可以利用一个或多个未描述的额外操作和/或无需所讨论的操作中的一个或多个来实现。此外,这些方法的处理操作被说明(并在下面描述)的顺序并非旨在进行限制。
图5示出了根据各种实施例的用于控制应用程序之间的通信的方法500的流程图。在操作502中,
生成交互模式数据。作为示例,生成交互模式数据可以包括定义交互模式的多个角色以及将角色配置为事务的源或目标。在一些实施例中,使用一个或多个API来执行事务。如果将角色配置为事务的源,则该角色是与事务关联的API的消费者。如果将角色配置为事务的目标,则该角色是与事务关联的API的提供者。在一些实施例中,如果它们与事务相关联,则两个角色可以彼此通信。例如,如果将第一角色被配置为与第二角色通信,则第一角色和第二角色可能必须与事务相关联。至少参考图2描述了交互模式的示例。在一些实施例中,操作502由与配置子系统112、应用程序子系统118或它们的组合相同或相似的子系统执行。
在操作504中,生成应用程序一致性数据。作为示例,生成应用程序一致性数据包括配置应用程序以实施一组角色。在一些实施例中,配置应用程序以实施角色可以使应用程序能够消费(例如,调用)由其他应用程序提供的一个或多个API,或提供一个或多个API以供其他应用程序消费。例如,为了使第一应用程序能够调用第二应用程序的指定API,识别具有分别作为使用指定API执行的事务的源和目标的第一角色和第二角色的交互模式(例如,来自交互模式数据库),并且第一应用程序可以被配置为实施第一角色并且第二应用程序可以被配置为实施第二角色。至少参考图3描述了生成应用程序交互的示例。在一些实施例中,操作504由与配置子系统112、应用程序子系统118或它们的组合相同或相似的子系统执行。
在操作506中,生成应用程序实例数据。作为示例,生成应用程序实例数据包括将应用程序实例与由应用程序提供的API的位置数据相关联。作为示例,位置数据可以包括托管/定位应用程序实例的API的端点的IP地址、URL或其他此类网络地址。在一些实施例中,生成应用程序实例数据还可以包括生成访问许可数据,其定义准许哪些应用程序实例访问哪些应用程序实例。在一些实施例中,操作506由与配置子系统112、应用程序子系统118或其组合相同或相似的子系统执行。
在操作508中,基于配置数据控制应用程序之间的通信,该配置数据包括交互模式数据、应用程序一致性数据和应用程序实例数据。控制应用程序之间的通信的示例可以包括发现应用程序可以调用的API的列表,确定应用程序是否可以调用指定API,或授权服务器接受来自客户端设备的传入API访问请求,其中一些在下面至少相对于图6-8进行了描述。在一些实施例中,操作508由与配置子系统112、网关子系统114、应用程序子系统118或其组合相同或相似的子系统执行。
图6示出了根据各种实施例的用于控制第一应用程序和第二应用程序之间的通信的方法600的流程图。在操作602中,从第一应用程序接收请求以调用第二应用程序的指定API。作为示例,该请求可以由托管指定API的指定端点(例如,应用程序子系统118中的服务器或其他计算机系统)接收。在一些实施例中,第一应用程序基于从发现端点获得的发现文档(下面至少参考图7描述)来找到托管指定API的指定端点。在一些实施例中,操作602由与配置子系统112、网关子系统114、应用程序子系统118或其组合相同或相似的子系统执行。
在操作604中,获得与第一应用程序和第二应用程序相关联的配置数据。例如,从数据库130获得交互模式数据和应用程序一致性数据。如上所述,交互模式数据可以定义使用角色、事务和API的交互。一个角色可以消费来自另一角色的API,或者将API提供给另一角色。在一些实施例中,操作604可以由授权端点(例如,配置子系统112中的服务器或其他计算机系统,并且如下面至少参考图8所描述的)执行。还如上所述,应用程序一致性数据描述了由应用程序实施的一组角色。在一些实施例中,操作602由与配置子系统112、网关子系统114、应用程序子系统118或其组合相同或相似的子系统执行。
在操作606中,基于配置数据来做出对是否准许第一应用程序调用第二应用程序的指定API的确定。在一些实施例中,可以执行配置分析(其涉及分析如上所述的配置数据125)以确定第一应用程序是否被允许调用第二应用程序的指定API。在一些实施例中,操作606的至少一部分可以由授权端点执行。作为示例,如果应用程序一致性数据指示第一应用程序被配置为实施第一角色并且第二应用程序被配置为实施第二角色,并且交互模式数据指示第一角色被配置为消费与第二角色相关联的指定API,则做出对准许第一应用程序调用指定API的确定。因此,在操作608中,准许第一应用程序调用指定API。然而,如果配置数据指示第一应用程序没有实施第一角色或者第二应用程序没有实施第二角色,则做出对不准许第一应用程序调用指定API的确定。因此,在操作610中,限制第一应用程序调用指定API。在一些实施例中,还可以将不准许调用指定API的原因通知第一应用程序。在一些实施例中,操作608-610由与配置子系统112、网关子系统114、应用程序子系统118或它们的组合相同或相似的子系统执行。
图7示出了根据各种实施例的用于执行发现过程的方法700的流程图。在一些实施例中,使用发现端点(例如,配置子系统112中的服务器或其他计算机系统)的发现API来执行方法700。在操作702中,从指定应用程序接收对指定应用程序可访问的API的列表的请求。
在操作704中,获得与指定应用程序相关联的配置数据。作为示例,配置数据可以包括交互模式数据、应用程序一致性数据和应用程序实例数据。配置数据可以从数据库130中获得。
在操作706中,做出关于可由指定应用程序访问的API的列表的确定。在一些实施例中,可以执行配置分析(其涉及分析如上所述的配置数据125)以确定允许指定应用程序调用的API的列表。作为示例,(a)由指定应用程序实施的一组角色是基于应用程序一致性数据确定的,(b)被配置为一个或多个事务的源的角色的子集以及与这些事务关联的API是基于交互模式数据确定的,以及(c)与API中的每个相关联的位置数据(例如,托管API的端点的URL)从应用程序实例数据中确定。
在操作708中,具有API地列表和其他信息(例如,与API相关联的应用程序、位置数据或有效性指示符)的发现文档被返回到指定应用程序。
图8示出了根据各种实施例的用于执行授权过程的方法800的流程图。在一些实施例中,使用授权端点(例如,配置子系统112中的服务器或其他计算机系统)的授权API来执行方法800。在一些实施例中,方法800在操作802中,从指定端点接收授权请求,以用于授权来自第一应用程序的访问请求。在一些实施例中,访问请求用于访问由指定端点托管的第二应用程序的指定API。
在操作804中,获得与第一应用程序相关联的配置数据。作为示例,配置数据可以包括交互模式数据、应用程序一致性数据和应用程序实例数据。配置数据可以从数据库130中获得。
在操作806中,做出关于可由第一应用程序访问的API的列表的确定。在一些实施例中,可以执行配置分析(其涉及分析如上所述的配置数据125)以确定允许第一应用程序调用的API的列表。例如,(a)由第一应用程序实施的一组角色是基于应用程序一致性数据确定的,(b)被配置为一个或多个事务以及与这些事务关联的API的源的角色的子集是基于交互模式数据确定的,并且(c)由指定端点托管的那些API的子集是根据应用程序实例数据确定的。
在操作808中,可由第一应用程序访问的指定端点上的API的列表被发送到指定端点。在一些实施例中,在从授权端点接收到API的列表时,然后指定端点可以检查由第一应用程序请求的指定API是否在API的列表中。如果指定API在列表中,则指定端点可以准许第一应用程序访问指定API。
图9示出了根据各种实施例的用于实施上述方面中的一个或多个的示例计算机系统900。计算机系统900可以描绘提供者客户端设备104的一个或多个部件。在一些实施例中,提供者客户端设备104可以排除由计算机系统900描述的一个或多个部件。此外,提供者客户端设备104可以包括一个或多个额外部件,并且前述仅仅是说明性的。
在一些情况下,计算机系统900的多个实例可以经由网络进行通信以以分布式方式实施本技术。在一些情况下,实例可能包括捕获图像的移动计算设备(如带相机的智能手机),本专利申请的技术在所述图像上操作。在一些情况下,实例可能包括用经过训练的模型执行训练和分析的服务器侧实例(例如,在微服务架构或单体架构中)。本文描述的系统和方法的各个部分可以包括类似于计算机系统900的一个或多个计算机系统或在类似于计算机系统900的一个或多个计算机系统上执行。此外,本文描述的过程和模块可以由类似于计算机系统900的处理系统的一个或多个处理系统执行。
计算机系统900被配置为包括一个或多个处理器(例如,处理器910-1-1510-N),处理器通过输入/输出(I/O)接口950耦合到存储器920、输入/输出I/O设备接口930和网络接口940。如本文所述,处理器可以包括单个处理器或多个处理器(例如,分布式处理器)。处理器可以是能够执行或以其他方式执行指令的任何合适的处理器。处理器可以包括执行程序指令以执行计算机系统900的算术、逻辑和输入/输出操作的中央处理单元(CPU)。处理器可以执行代码(例如,处理器固件、协议栈、数据库管理系统、操作系统或其组合)为程序指令创建执行环境。处理器可以包括可编程处理器。处理器可以包括通用或专用微处理器。处理器可以从存储器(例如,存储器920)接收计算机程序指令和数据。计算机系统900可以是包括一个处理器(例如,处理器910a)的单处理器系统,或者是包括任何数量的合适处理器(例如,910-1-1510-N)的多处理器系统。可以采用多个处理器来提供本文所述技术的一个或多个部分的并行或顺序执行。本文描述的诸如逻辑流的过程能够由一个或多个可编程处理器执行,该处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成对应的输出来执行功能。本文描述的过程可以由专用逻辑电路执行,并且装置也可以实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。计算机系统900可以包括多个计算设备(例如,分布式计算机系统)以实施各种处理功能。
I/O设备接口930被配置为提供用于将诸如计算机系统102、可穿戴设备104和/或提供者客户端设备104的一个或多个I/O设备连接到计算机系统900的接口。I/O设备可以包括接收输入(例如,来自患者、提供者)或输出信息(例如,给用户、提供者)的设备。I/O设备(例如,提供者客户端设备)可以包括,例如,呈现在显示器(例如,阴极射线管(CRT)或液晶显示器(LCD)监测器)上的图形用户接口、指点设备(例如,计算机鼠标或轨迹球)、键盘、小键盘、触摸板、扫描设备、语音识别设备、手势识别设备、打印机、音频扬声器、麦克风、相机等。I/O设备可以通过有线或无线连接连接到计算机系统900。I/O设备可以从远程位置连接到计算机系统900。例如,位于远程计算机系统上的I/O设备可以通过网络和网络接口940连接到计算机系统900。
网络接口940可以包括提供计算机系统900到网络的连接的网络适配器。网络接口940可以促进计算机系统900和连接到网络的其他设备之间的数据交换。网络接口940可以支持有线或无线通信。该网络可以包括电子通信网络,例如因特网、局域网(LAN)、广域网(WAN)、蜂窝通信网络等。
系统存储器920可以被配置为存储计算机程序指令922和/或数据924。计算机程序指令922可以由处理器(例如,处理器910-1-1510-N中的一个或多个)执行以实施一个或多个本专利申请技术的更多实施例。计算机程序指令922可以包括计算机程序指令的模块,用于实施本文关于各种处理模块描述的一种或多种技术。计算机程序指令可以包括计算机程序(其在某些形式中称为程序、软件、软件应用程序、脚本或代码)。计算机程序可以用编程语言编写,包括编译或解释语言,或者声明性或过程性语言。计算机程序可以包括适合在计算环境中使用的单元,包括作为独立程序、模块、部件或子例程的单元。计算机程序可能对应于文件系统中的文件,或可能不对应于文件系统中的文件。程序可以存储在包含其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论程序的单个文件或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。可以部署计算机程序以在一个或多个计算机处理器上执行,该计算机处理器位于本地一个站点或分布在多个远程站点上并通过通信网络互连。
存储器920可以包括其上存储有程序指令的有形程序载体。有形程序载体可以包括非瞬态计算机可读存储介质。非瞬态计算机可读存储介质可以包括机器可读存储设备、机器可读存储基板、存储器设备或其任何组合。非瞬态计算机可读存储介质可以包括非易失性存储器(例如,闪存、ROM、PROM、EPROM、EEPROM存储器)、易失性存储器(例如,随机存取存储器(RAM)、静态随机存取存储器(SRAM)、同步动态RAM(SDRAM))、大容量存储器(例如CD-ROM和/或DVD-ROM、硬盘驱动器)等。存储器920可以包括非瞬态计算机可读存储介质,其上存储有程序指令,这些程序指令可由计算机处理器(例如,处理器910-1-1510-N中的一个或多个)执行以引起本文所描述的主题和功能操作。存储器(例如,存储器920)可以包括单个存储器设备和/或多个存储器设备(例如,分布式存储器设备)。提供本文描述的功能的指令或其他程序代码可以存储在有形非瞬态的计算机可读介质上。在一些情况下,整个指令集可以同时存储在介质上,或者在一些情况下,指令的不同部分可以在不同时间存储在相同介质上。
I/O接口950可以被配置为协调处理器910-1-1510-N、系统存储器920、网络接口940、I/O设备(例如,可穿戴设备104、提供者客户端设备104)和/或其他外围设备之间的I/O流量。I/O接口950可以执行协议、定时或其他数据转换以将来自一个部件(例如,存储器920)的数据信号转换成适合由另一部件(例如,处理器910-1-1510-N)使用的格式。I/O接口950可以包括对通过各种类型的外围总线连接的设备的支持,例如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变体。
本文描述的技术的实施例可以使用计算机系统900的单个实例或被配置为托管实施例的不同部分或实例的多个计算机系统900来实施。多个计算机系统900可以提供本文描述的技术的一个或多个部分的并行或顺序处理/执行。
本领域的技术人员将意识到,计算机系统900仅仅是说明性的,并不旨在限制本文描述的技术的范围。计算机系统900可以包括可以执行或以其他方式提供本文描述的技术的执行的设备或软件的任何组合。例如,计算机系统900可以包括云计算系统、数据中心、服务器机架、服务器、虚拟服务器、台式计算机、膝上型计算机、平板计算机、服务器设备、客户端设备、移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、车载计算机或全球定位系统(GPS)等或是它们的组合。计算机系统900还可以连接到未图示的其他设备,或者可以作为独立系统操作。此外,由所图示的部件提供的功能在一些实施例中可以组合在更少的部件中或分布在额外的部件中。类似地,在一些实施例中,可能不提供所图示部件中的一些的功能,或者其他额外功能可能可用。
本领域技术人员还将意识到,尽管各种项目被说明为在使用时存储在存储器中或存储在存储设备中,但这些项目或它们的部分可以在存储器和其他存储设备之间转移,以用于存储器管理和数据的完整性的目的。备选地,在其他实施例中,一些或所有软件部件可以在另一设备上的存储器中执行并且经由计算机间通信与所图示的计算机系统通信。一些或所有系统部件或数据结构也可以存储(例如,作为指令或结构化数据)在计算机可访问介质或便携式物品上,以由适当的驱动器读取,其各种示例如上所述。在一些实施例中,存储在与计算机系统900分离的计算机可访问介质上的指令可以经由传输介质或诸如电、电磁或数字信号的信号传输到计算机系统900,经由诸如网络或无线链路的通信介质传送。各种实施例还可包括在计算机可访问介质上接收、发送或存储根据前述描述实施的指令或数据。因此,本技术可以用其他计算机系统配置来实践。
尽管上面提供的描述基于当前被认为是最实用和优选的实施例的内容提供了用于说明目的的细节,但应理解,此类细节仅仅用于该目的,并且本公开不限于明确公开的实施例,而是相反,旨在涵盖在所附权利要求的精神和范围内的修改和等效布置。例如,应理解,本专利申请预期,在可能的范围内,任何实施例的一个或多个特征可以与任何其他实施例的一个或多个特征组合。
将参考以下列举的实施例更好地理解本技术:
1、一种用于基于交互模式数据、应用程序一致性数据和应用程序实例数据来控制多个应用程序之间的交互的方法。
2、根据实施例1所述的方法,其中,所述交互模式数据包括角色、事务、API、选项或角色依赖关系,其中,所述事务与至少一对角色相关联或连接至少一对角色,其中,所述事务是使用API执行的。
3、根据实施例1-2所述的方法,其中,应用程序一致性数据包括多个应用程序的应用程序数据和由应用程序实施的角色,其中,角色是在交互模式数据中定义的角色之一。
4、根据实施例1-3所述的方法,其中,对于应用程序的实例,应用程序实例数据包括为该实例启用的API位置数据、角色和选项。
5、根据实施例4所述的方法,其中,API位置数据包括托管API的端点的URL。
6、根据实施例1和4所述的方法,其中,所述应用程序实例数据包括应用程序之间的访问许可。
7、根据实施例6所述的方法,其中,所述访问许可定义用于第一应用程序访问第二应用程序或一组应用程序的许可。
8、根据实施例6-7所述的方法,其中,所述访问许可定义一组应用程序访问特定应用程序的许可。
9、根据实施例6-8所述的方法,其中,所述访问许可定义第一应用程序访问第二应用程序上的启用角色的许可。
10、根据实施例1-9所述的方法,还包括:提供发现API以使得应用程序能够检索其他应用程序上的可访问API。
11、根据实施例1-10所述的方法,其中,对与第二应用程序相关联的API的可访问性是基于应用程序许可、应用程序一致性和交互模式来确定的。
12、根据实施例11所述的方法,还包括:基于以下来确定API是可访问的:(a)第一应用程序的实例(“第一应用程序实例”)被允许与第二应用程序的实例(“第二应用程序实例”)通信;(b)第一应用程序正在实施第一角色,而第二应用程序正在实施第二角色;(c)对于第一应用程序实例启用第一角色,对于第二应用程序实例启用第二角色;(d)在第一角色和第二角色之间定义事务,其中,第一角色是事务的源,第二角色是事务的目标;并且(e)事务被定义为使用API。
13、根据实施例1-12所述的方法,还包括:提供授权API以使第二应用程序能够验证第一应用程序对API的访问。
14、根据实施例1-13所述的方法,其中,验证对API的访问是基于根据实施例12所述的操作来确定的。
15、根据实施例1-14所述的方法,还包括:提供在应用程序之间路由数据的网关。
16、根据实施例15所述的方法,其中,所述网关是基于API位置数据来配置的。
17、根据实施例16所述的方法,其中,网关限制将数据路由到与应用程序相关联的API,其中,路由是基于应用程序实例数据、访问许可、应用程序一致性数据和交互模式数据来确定的。
18、根据实施例17所述的方法,其中,网关被配置为如果应用程序具有根据实施例12的操作对该API的访问,则将来自源应用程序的数据路由到API。
19、根据实施例16-18所述的方法,其中,网关被配置为在将来自源应用程序的请求转发到托管与应用程序相关联的API的靶向端点之前执行授权逻辑。
20、根据实施例16-19所述的方法,其中,所述网关被配置为记录关于在应用程序之间路由以供计量系统消费的数据的信息。
21、根据实施例20所述的方法,其中,所述日志被标记有交互模式数据,诸如API、事务或角色。
22、根据实施例15所述的方法,还包括:提供多个网关,其中,网关形成网络拓扑,其中,每个网关从对应的网关的网络区内的应用程序路由数据以及将数据路由到对应的网关的网络区内的应用程序,其中,所述网关在网络区中间彼此传递数据。
23、根据实施例22所述的方法,其中,所述网络拓扑包括网状网络或星形网络。
24、根据实施例10和15所述的方法,其中,发现API用网关的实例的位置数据替换API的位置数据,以将网关插入在应用程序与具有应用程序已请求访问的API的目标应用程序之间的通信路径中。

Claims (27)

1.一种用于控制多个应用程序与计算机系统(102)之间的通信的方法,所述计算机系统包括一个或多个硬件处理器(120),所述方法包括:
生成交互模式数据(126),其中,所述交互模式数据针对多个交互中的每个交互定义多个角色,其中,每个角色与利用另一角色执行的事务相关联,其中,所述事务是使用应用程序编程接口(API)执行的;
生成应用程序一致性数据(127),其中,所述应用程序一致性数据针对多个应用程序中的每个应用程序定义由对应的应用程序实施的一组角色;
生成应用程序实例数据(128),其中,所述应用程序实例数据包括与所述多个应用程序中的应用程序的实例相关联的多个API的位置数据;并且
基于所述交互模式数据、所述应用程序一致性数据和所述应用程序实例数据来控制所述多个应用程序中的第一应用程序(110a)与所述多个应用程序中的第二应用程序(110b)之间的通信。
2.根据权利要求1所述的方法,其中,生成所述交互模式数据包括:
将所述多个角色中的第一角色和所述多个角色中的第二角色与指定事务进行关联,以使得所述第一角色和所述第二角色能够彼此通信。
3.根据权利要求2所述的方法,其中,基于指示所述第一角色是所述指定事务的源的所述交互模式数据,所述第一角色是与所述指定事务相关联的API的消费者。
4.根据权利要求2所述的方法,其中,基于指示所述第一角色是所述指定事务的目标的所述交互模式数据,所述第一角色是与所述指定事务相关联的API的提供者。
5.根据权利要求1所述的方法,其中,生成所述应用程序一致性数据包括:
将所述第一应用程序配置为实施第一角色并且将所述第二应用程序配置为实施第二角色,以使得所述第一应用程序能够调用与所述第二应用程序相关联的API,其中,所述交互模式数据指示所述第一角色被配置为调用所述第二角色,以使用与所述第二应用程序相关联的所述API来执行事务。
6.根据权利要求1所述的方法,其中,生成所述应用程序实例数据包括:
通过指定用于访问所述多个API的统一资源定位器(URL)来针对所述应用程序的所述实例配置所述位置数据。
7.根据权利要求1所述的方法,其中,控制所述第一应用程序与所述第二应用程序之间的所述通信包括:
在服务器处从执行所述第一应用程序的实例的客户端设备接收对能由所述第一应用程序访问的API的列表的请求,其中,所述API的列表与所述多个应用程序中的一个或多个应用程序相关联;
由所述服务器使用发现API来确定:
(a)由所述第一应用程序基于所述应用程序一致性数据实施的一组角色,
(b)来自所述一组角色的基于所述交互模式数据而被配置为一个或多个事务的源的角色的子集,以及
(c)与一个或多个事务相关联的所述API的列表;并且
将具有所述API的列表的信息返回给所述客户端设备。
8.根据权利要求7所述的方法,其中,所述信息包括与所述API的列表中的每个API相关联的位置数据。
9.根据权利要求7所述的方法,其中,所述信息包括与所述API的列表中的每个API相关联的应用程序的应用程序ID。
10.根据权利要求7所述的方法,其中,所述信息包括有效性指示符,所述有效性指示符指示一时间,直到所述时间在所述API的列表中提供的数据是有效的。
11.根据权利要求8所述的方法,还包括:
由所述第一应用程序使用所述位置数据从所述API的列表调用指定API,其中,所述指定API与所述第二应用程序相关联。
12.根据权利要求1所述的方法,其中,控制所述第一应用程序与所述第二应用程序之间的所述通信包括:
在执行所述第二应用程序的实例的服务器处,从执行所述第一应用程序的实例的客户端设备接收对调用与所述第二应用程序相关联的指定API的请求,
由所述服务器并且使用授权API基于被配置用于所述多个应用程序的实例的访问许可来确定所述第一应用程序是否被准许访问所述第二应用程序,
响应于确定所述第一应用程序被准许访问所述第二应用程序,由所述服务器基于所述交互模式数据和所述应用程序一致性数据来确定与能由所述第一应用程序访问的所述第二应用程序相关联的一组API,并且
由所述服务器基于对所述指定API是所述一组API中的一个API的确定来准许所述第一应用程序调用所述指定API。
13.根据权利要求1所述的方法,其中,控制所述第一应用程序与所述第二应用程序之间的所述通信包括:
使用发现API来确定关于与能由所述第一应用程序访问的所述第二应用程序相关联的一组API的信息,其中,所述信息包括所述一组API在计算机网络中的地址,并且
将网关子系统配置为将来自所述第一应用程序的用于访问所述第二应用程序的特定API的请求路由到所述计算机网络中的指定地址。
14.根据权利要求1所述的方法,其中,控制所述第一应用程序与所述第二应用程序之间的所述通信还包括:
使用计量子系统来确定关于所述第一应用程序与所述第二应用程序之间的通信的信息,其中,所述信息包括交互模式的类型、与指定应用程序的交互的数量、或与所述多个应用程序相关联的性能度量。
15.一种包括计算机程序指令的非瞬态计算机可读介质(122),所述计算机程序指令当由一个或多个处理器(120)执行时实现包括根据权利要求1-14中的任一项所述的方法的操作。
16.一种用于控制计算机网络(150)中的多个应用程序(110)之间的通信的系统(100),所述系统包括:
一个或多个处理器(120),其由机器可读指令配置为:
生成交互模式数据(126),其中,所述交互模式数据使用多个角色来定义多个交互中的每个交互,其中,每个角色与利用另一角色执行的事务相关联,其中,所述事务是使用应用程序编程接口(API)执行的,
生成应用程序一致性数据(127),其中,所述应用程序一致性数据针对多个应用程序中的每个应用程序定义由对应的应用程序实施的一组角色,
生成应用程序实例数据(128),其中,所述应用程序实例数据包括与所述多个应用程序中的应用程序的实例相关联的多个API的位置数据,并且
基于所述交互模式数据、所述应用程序一致性数据和所述应用程序实例数据来控制所述多个应用程序中的第一应用程序(110a)与所述多个应用程序中的第二应用程序(110b)之间的通信。
17.根据权利要求16所述的系统,其中,通过将所述多个角色中的第一角色和所述多个角色中的第二角色与指定事务进行关联以使得所述第一角色和所述第二角色能够彼此通信来使所述一个或多个处理器生成所述交互模式数据。
18.根据权利要求17所述的系统,其中,还使所述一个或多个处理器对与所述指定事务相关联的指定API的选项进行配置,其中,所述选项使得所述指定API的部分能够或不能被访问。
19.根据权利要求16所述的系统,其中,通过以下操作来使所述一个或多个处理器生成所述应用程序一致性数据:
将所述第一应用程序配置为实施第一角色并且将所述第二应用程序配置为实施第二角色,以使得所述第一应用程序能够调用与所述第二应用程序相关联的API,其中,所述交互模式数据指示所述第一角色被配置为调用所述第二角色,以使用与所述第二应用程序相关联的所述API来执行事务。
20.根据权利要求16所述的系统,其中,通过以下操作来使所述一个或多个处理器控制所述第一应用程序与所述第二应用程序之间的所述通信:
使用发现API来确定能由所述第一应用程序访问的API的列表,其中,所述确定包括确定:
(a)由所述第一应用程序基于所述应用程序一致性数据实施的一组角色,
(b)来自所述一组角色的基于所述交互模式数据而被配置为一个或多个事务的源的角色的子集,以及
(c)与一个或多个事务相关的所述API的列表;并且
将具有所述API的列表的信息返回给所述第一应用程序。
21.根据权利要求20所述的系统,其中,还使所述一个或多个处理器使用所述位置数据从所述第一应用程序调用来自所述API的列表的指定API,其中,所述指定API与所述第二应用程序相关联。
22.一种用于控制多个应用程序与计算机(102)之间的通信的方法,所述计算机包括一个或多个处理器(120),所述方法包括:
从多个应用程序中的第一应用程序(110a、302)接收对调用与所述多个应用程序中的第二应用程序(110b、304)相关联的指定API(212)的请求;
从存储系统(130)获得交互模式数据(126)和应用程序一致性数据(127),
其中,所述交互模式数据使用多个角色来定义多个交互中的每个交互,其中,每个角色被配置为消费来自另一角色的API,或者将所述API提供给另一角色,
其中,所述应用程序一致性数据针对多个应用程序中的每个应用程序定义由对应的应用程序实施的一组角色;
基于所述应用程序一致性数据和所述交互模式数据来确定所述第一应用程序被配置为实施第一角色(204)并且所述第二应用程序被配置为实施第二角色(202),其中,所述交互模式数据指示所述第一角色被配置为消费与所述第二角色相关联的所述指定API;并且
准许所述第一应用程序调用所述指定API。
23.一种包括计算机程序指令的非瞬态计算机可读介质(122),所述计算机程序指令当由一个或多个处理器(120)执行时实现包括根据权利要求22所述的方法的操作。
24.一种用于控制计算机网络(150)中的多个应用程序之间的通信的系统(100),所述系统包括:
一个或多个处理器(120),其由机器可读指令配置为:
从配置子系统获得配置数据(125),所述配置数据包括:
交互模式数据(126),其中,所述交互模式数据定义使用多个角色的交互,其中,每个角色是应用程序编程接口(API)的消费者或所述API的提供者,
应用程序一致性数据(127),其中,所述应用程序一致性数据定义由应用程序实施的一组角色,以及
应用程序实例数据(128),其中,所述应用程序实例数据包括与所述应用程序的实例相关联的多个API的网络地址;
基于所述配置数据将网关子系统(114)配置为:
生成网络路由数据,所述网络路由数据用于将来自第一应用程序(110a)的用于访问与第二应用程序(110b)相关联的指定API的请求路由到与所述指定API相关联的指定网络地址;并且
基于所述配置数据经由所述网关子系统来控制所述第一应用程序与所述第二应用程序之间的通信。
25.根据权利要求24所述的系统,其中,所述一个或多个处理器由机器可读指令配置为:
将计量子系统配置为确定关于所述第一应用程序与所述第二应用程序之间的通信的信息,其中,所述信息包括交互模式的类型、与所述第一应用程序或所述第二应用程序的交互的数量、或者与所述第一应用程序或所述第二应用程序相关联的性能度量。
26.根据权利要求24所述的系统,其中,通过以下操作来使所述一个或多个处理器控制所述第一应用程序与所述第二应用程序之间的所述通信:
使用所述配置子系统的发现API来确定具有能由所述第一应用程序访问的API的列表的信息,其中,所述信息包括:
(a)由所述第一应用程序基于所述应用程序一致性数据实施的一组角色,
(b)来自所述一组角色的基于所述交互模式数据而被配置为一个或多个事务的源的角色的子集,以及
(c)与一个或多个事务相关联的所述API的列表;并且
将具有所述API的列表的信息返回给所述第一应用程序。
27.根据权利要求24所述的系统,其中,通过以下操作来使所述一个或多个处理器控制所述第一应用程序与所述第二应用程序之间的所述通信:
从执行所述第一应用程序的实例的客户端设备接收对调用与所述第二应用程序相关联的指定API的请求,
使用所述配置子系统的授权API基于所述配置子系统中被配置用于所述第一应用程序的实例的访问许可来确定所述第一应用程序是否被准许访问所述第二应用程序,
响应于确定所述第一应用程序被准许访问所述第二应用程序,基于所述配置数据来确定与能由所述第一应用程序访问的所述第二应用程序相关联的一组API,并且
基于对所述指定API是所述一组API中的一个API的确定经由所述网关子系统来准许所述第一应用程序调用所述指定API。
CN202080086137.7A 2019-12-12 2020-12-10 使用交互模式的应用程序集成 Pending CN114787810A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962947028P 2019-12-12 2019-12-12
US62/947028 2019-12-12
PCT/EP2020/085393 WO2021116237A1 (en) 2019-12-12 2020-12-10 Application integration using interaction patterns

Publications (1)

Publication Number Publication Date
CN114787810A true CN114787810A (zh) 2022-07-22

Family

ID=73834520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080086137.7A Pending CN114787810A (zh) 2019-12-12 2020-12-10 使用交互模式的应用程序集成

Country Status (5)

Country Link
US (1) US11340971B2 (zh)
EP (1) EP4073672A1 (zh)
JP (1) JP2023509319A (zh)
CN (1) CN114787810A (zh)
WO (1) WO2021116237A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552977A (zh) * 2020-04-16 2020-08-18 北京达佳互联信息技术有限公司 一种应用权限的确定方法、装置及系统
US11630649B2 (en) * 2020-06-02 2023-04-18 International Business Machines Corporation Intelligent application library management
US11900074B2 (en) * 2020-08-20 2024-02-13 Jpmorgan Chase Bank, N.A. Method and apparatus for implementing an end-to-end API design and development module integrating with firmwide tools and processes
US11579950B2 (en) * 2020-09-09 2023-02-14 Ciena Corporation Configuring an API to provide customized access constraints
US11748686B1 (en) * 2021-06-30 2023-09-05 Amazon Technologies, Inc. Automated onboarding service
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
US11803569B2 (en) * 2021-10-05 2023-10-31 Procore Technologies, Inc. Computer system and method for accessing user data that is distributed within a multi-zone computing platform

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026592A1 (en) 2000-06-16 2002-02-28 Vdg, Inc. Method for automatic permission management in role-based access control systems
US8037471B2 (en) 2006-11-16 2011-10-11 International Business Machines Corporation Systems and methods for constructing relationship specifications from component interactions
US8577914B2 (en) * 2011-05-18 2013-11-05 Google Inc. APIS discovery service
US8689298B2 (en) 2011-05-31 2014-04-01 Red Hat, Inc. Resource-centric authorization schemes
WO2015065398A1 (en) * 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L.P. Application programable interface (api) discovery
US9569288B2 (en) * 2014-07-15 2017-02-14 International Business Machines Corporation Application pattern discovery
US9836534B2 (en) * 2014-07-25 2017-12-05 International Business Machines Corporation Using ontology to discover API requirements
EP3281168A4 (en) * 2015-07-31 2018-03-14 Hewlett-Packard Enterprise Development LP Discovering and publishing api information
US10498857B2 (en) 2016-03-29 2019-12-03 Amazon Technologies, Inc. System interaction monitoring and component scaling
US20180196647A1 (en) * 2017-01-09 2018-07-12 International Business Machines Corporation Application Programming Interface Discovery Using Pattern Recognition
US11074067B2 (en) 2017-07-27 2021-07-27 Tibco Software Inc. Auto-generation of application programming interface (API) documentation via implementation-neutral analysis of API traffic
US9936005B1 (en) 2017-07-28 2018-04-03 Kong Inc. Systems and methods for distributed API gateways
US20200301761A1 (en) * 2019-03-20 2020-09-24 International Business Machines Corporation Cognitive application programming interface discovery from legacy system code
US11645144B2 (en) * 2019-03-21 2023-05-09 Vmware, Inc. Methods and systems securing an application based on auto-learning and auto-mapping of application services and APIs
US11113029B2 (en) * 2019-04-10 2021-09-07 International Business Machines Corporation Probabilistic matching of web application program interface code usage to specifications
US11036727B2 (en) * 2019-07-17 2021-06-15 International Business Machines Corporation Natural language-aided conversational exploration of self-documenting application programming interfaces

Also Published As

Publication number Publication date
JP2023509319A (ja) 2023-03-08
US11340971B2 (en) 2022-05-24
US20210182131A1 (en) 2021-06-17
EP4073672A1 (en) 2022-10-19
WO2021116237A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
US11340971B2 (en) Application integration using interaction patterns
US10193953B2 (en) Self describing configuration
US9529657B2 (en) Techniques for generating diagnostic identifiers to trace events and identifying related diagnostic information
US9529658B2 (en) Techniques for generating diagnostic identifiers to trace request messages and identifying related diagnostic information
US10592684B2 (en) Automatic operation detection on protected field
US10586061B2 (en) Federated search
US9961156B2 (en) Healthcare semantic interoperability platform
US10496837B2 (en) Support sharing the same table for protected and non-protected data columns
US20160299936A1 (en) Automated test for uniform web service interfaces
US10110447B2 (en) Enhanced rest services with custom data
US20170279928A1 (en) Pre-formed instructions for a mobile cloud service
EP3716126B1 (en) Automatic operation detection on protected field with support for federated search
US11201932B2 (en) Systems and methods for securely using cloud services on on-premises data
US20150302089A1 (en) Recovery of Information from Commercial Web Portals
US20150370999A1 (en) Method and system for providing prescription-based biometric monitoring
US20220101962A1 (en) Enabling distributed semantic mashup
Singh et al. SBUS: a generic policy-enforcing middleware for open pervasive systems
US20140244282A1 (en) Healthcare data management systems and methods
US11514140B2 (en) Method and system for post-purchase data usage and license enforcement
US20240111767A1 (en) Infrastructure for graph linking
API’s Channel Islands
Karaçalık An actor model based platform for developing context-aware applications
Font Sayeras Open Dynamic Interaction Network: a cell-phone based platform for responsive EMA
MAITHANI REST API AND DOCUMENTATION USING SWAGGER
Thirunavukkarasu Blood bank management system

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