Integration of remote software applications into a workflow

US11240344B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11240344-B2
Application numberUS-201916434071-A
CountryUS
Kind codeB2
Filing dateJun 6, 2019
Priority dateJun 6, 2019
Publication dateFeb 1, 2022
Grant dateFeb 1, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system includes persistent storage configured to store definitions of interfaces of remote software applications, and a software application configured to define the interfaces. The software application identifies a remote software application system by which the remote software applications are exposed for execution, and obtains therefrom a specification of a particular remote software application. The software application determines, based on the specification, (i) objects accessible by way of the particular remote software application and (ii) functions invokable to interact with the objects. The software application generates actions that define an interface for the particular remote software application. Each action is configured to invoke execution of one or more of the functions by transmitting a request to the remote software application system and, in response, receive, by way of the remote software application system, an output of the one or more of the functions. The actions are stored in the persistent storage to define the interface.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: persistent storage configured to store definitions of respective interfaces of remote software applications for integration into workflows; one or more processors; and an action design software application configured to define the respective interfaces, wherein the action design software application is configured to perform, by way of the one or more processors, operations comprising: identifying a remote software application system from a plurality of available remote software application systems by using a particular service identifier of one or more service identifiers, on which the remote software applications are exposed for execution; obtaining, from the remote software application system, a specification that defines attributes of a particular remote software application of the remote software applications; determining, based on the specification, (i) one or more objects accessible by way of the particular remote software application and (ii) a plurality of functions of the particular remote software application invokable to interact with the one or more objects; generating a plurality of actions that define an interface for the particular remote software application by: enabling a first portion of the plurality of actions such that actions of the first portion are available for integration into the workflows; disabling a second portion of the plurality of actions such that actions of the second portion are not available for integration into the workflows; transmitting, to the remote software application system, a request for executing one or more functions of the plurality of functions based on the first portion of the plurality of actions; and receiving, from the remote software application system, an output of the one or more functions based on the request; and storing, in the persistent storage, the plurality of actions to define the interface. 2. The system of claim 1 , wherein the remote software applications are hosted by a plurality of different remote computing systems, and wherein the remote software application system is communicatively connected to each of the different remote computing systems to expose the remote software applications for execution on behalf of the workflows. 3. The system of claim 1 , wherein the particular remote software application is accessible by way of an application programming interface (API) provided by the remote software application system, and wherein execution of each respective function of the plurality of functions is invokable by way of a corresponding API function of the API, wherein the specification defines a plurality of API functions of the API, wherein each respective action is configured to, when executed by the workflows, invoke execution of the one or more corresponding functions by transmitting the request to the corresponding API function, and wherein the remote software application system is configured to cause the particular remote software application to execute the one or more corresponding functions in response to reception of the request. 4. The system of claim 1 , wherein identifying the remote software application system comprises: obtaining a uniform resource locator (URL) that addresses the remote software application system; obtaining, by way of the URL, a list of the remote software applications that are exposed by way of the remote software application system for execution on behalf of the workflows; and for each respective remote software application of the remote software applications, obtaining a list of the one or more service identifiers that allow the workflows to invoke execution of the plurality of functions of the respective remote software application, wherein each respective action of the plurality of actions is configurable to use the particular service identifier of the one or more service identifiers to invoke execution of the one or more corresponding functions. 5. The system of claim 1 , wherein the attributes defined by the specification comprise, for each respective function of the plurality of functions, (i) a uniform resource locator (URL) of an application programming interface (API) of the remote software application system by way of which the respective function is exposed for execution, (ii) an input of the respective function, and (iii) an output of the respective function, and wherein generating the plurality of actions that define the interface comprises: generating, for each respective action, (i) an input variable of the respective action that corresponds to the input of the one or more corresponding functions and (ii) an output variable of the respective action that corresponds to the output of the one or more corresponding functions; determining, for each respective action, a first mapping between the input variable and a parameter of the request transmitted to the remote software application system, wherein execution of the respective action invokes execution of the respective function by transmitting the request to the URL of the API, and wherein the request includes therein a value of the input variable according to the first mapping; and determining, for each respective action, a second mapping between the output variable and a response from the API, wherein the response is to the request, and wherein reception, from the API, of the response causes a value of the output of the one or more corresponding functions to be stored in the output variable according to the second mapping. 6. The system of claim 5 , wherein the parameter of the request transmitted to the API comprises at least one of: (i) a URL resource path parameter that identifies a specific resource provided by a server device that hosts the API, (ii) a URL query parameter comprising a key and value pair, (iii) a header parameter to be provided to the API as a hypertext transfer protocol (HTTP) header of the request, (iv) a body parameter to be provided to the API as part of an HTTP body of the request, or (v) a cookie parameter to be provided to the API within an HTTP cookie of the request. 7. The system of claim 5 , comprising: a workflow design software application configured to define the workflows that use the respective interfaces, wherein the workflow design software application is configured to perform, by way of the one or more processors, operations comprising: receiving selection of a first action and a second action to define a workflow, wherein the second action precedes the first action in the workflow, and wherein the first action is selected from the plurality of actions of the interface for the particular remote software application; receiving an assignment of an output variable of the second action to an input variable of the first action; and generating a connection between (i) the output variable of the second action and (ii) the input variable of the first action, wherein a value of the output variable of the second action is passed from the second action to the input variable of the first action during execution of the workflow. 8. The system of claim 5 , comprising: a workflow design software application configured to define the workflows that use the respective interfaces, wherein the workflow design software application is configured to perform, by way of the one or more processors, operations comprising: receiving selection of a first action and a second action to define a workflow, wherein the first action precedes the second action in the workflow, and wherein the first action is selected from the plurality of actions of the interface for the particular remote software application; receiving an assignment of an output variable of the first action to an input variable of the second action; and

Assignees

Inventors

Classifications

  • using third party service providers · CPC title

  • H04L67/34Primary

    involving the movement of software or configuration parameters  (network booting or remote initial program loading [RIPL] G06F9/4416) · CPC title

  • Remote execution · CPC title

  • Messaging middleware · CPC title

  • Task decomposition · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11240344B2 cover?
A system includes persistent storage configured to store definitions of interfaces of remote software applications, and a software application configured to define the interfaces. The software application identifies a remote software application system by which the remote software applications are exposed for execution, and obtains therefrom a specification of a particular remote software appli…
Who is the assignee on this patent?
Servicenow Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/34. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Feb 01 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).