IP Library Granted Patent US 10,423,445
Granted Patent B2
US 10,423,445 · App. 15/253,251 · Granted Sep 24, 2019

Composing and executing workflows made up of functional pluggable building blocks

Inventors: Debi Mishra (Cambridge, MA); Parry Husbands (Cambridge, MA); Sudarshan Raghunathan (Cambridge, MA); Andy Linfoot (Boston, MA); Damon Hachmeister (North Grafton, MA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/4881G06F8/34G06N20/00G06Q10/06
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,423,445
App. No.
15/253,251
Granted
Sep 24, 2019
Kind
B2
Abstract

A platform that provides a way to automatically compose and execute even complex workflows without writing code is described. A set of pre-built functional building blocks can be provided. The building blocks perform data transformation and machine learning functions. The functional blocks have well known plug types. The building blocks can be composed build complex compositions. Input and output files are converted to a standard data type so that modules are pluggable.

Claims (43)

1. A machine-readable storage medium have stored therein computer-readable instructions which when executed cause at least one processor of a computing device to:

receive an indication of input data and a data transformation instruction;

in response to receiving a selection of at least two of a plurality of pluggable functional building blocks and a connection indication between the at least two of the plurality of functional building blocks, automatically compose a workflow comprising a first pluggable functional building block and a second pluggable functional building block, wherein output of the first pluggable functional building block is automatically transformed into acceptable input for the second pluggable functional building block by the workflow utilizing the input data and the data transformation instruction; and

automatically publish the workflow as a web service.

2. The machine-readable storage medium of claim 1 , having stored therein further computer-readable instructions which when executed cause the at least one processor to:

use a standardized workflow interface for communication between the first pluggable functional building block and the second pluggable functional building block.

3. The machine-readable storage medium of claim 1 , having stored therein further computer-readable instructions which when executed cause the at least one processor to:

automatically convert between a workflow interface associated with the first pluggable functional building block to a workflow interface associated with the second pluggable functional building block.

4. The machine-readable storage medium of claim 1 , having stored therein further computer-readable instructions which when executed cause the at least one processor to:

convert between a schema associated with the first pluggable functional building block to a schema associated with the second pluggable functional building block.

5. The machine-readable storage medium of claim 1 , having stored therein further computer-readable instructions which when executed cause the at least one processor to:

automatically convert between a data format associated with the first pluggable functional building block to a data format associated with the second pluggable functional building block.

6. The machine-readable storage medium of claim 1 , having stored therein further computer-readable instructions which when executed cause the at least one processor to:

automatically convert a file produced by the first pluggable functional building block into an object acceptable by a pluggable module of the second pluggable functional building block.

7. A computing device, comprising:

at least one memory and at least one processor, wherein the at least one memory and the at least one processor are respectively configured to store and execute instructions that cause the computing device to perform operations, the operations comprising:

receiving an indication of input data and a data transformation instruction;

in response to receiving a selection of at least two of a plurality of pluggable functional building blocks and a connection indication between the at least two of the plurality of functional building blocks, automatically composing a workflow comprising a first pluggable functional building block and a second pluggable functional building block, wherein output of the first pluggable functional building block is automatically transformed into acceptable input for the second pluggable functional building block by the workflow utilizing the input data and the data transformation instruction; and

automatically publishing the workflow as a web service.

8. The computing device of claim 7 , wherein the operations further comprise:

using a standardized workflow interface for communication between the first pluggable functional building block and the second pluggable functional building block.

9. The computing device of claim 7 , wherein the operations further comprise:

automatically converting between a workflow interface associated with the first pluggable functional building block to a workflow interface associated with the second pluggable functional building block.

10. The computing device of claim 7 , wherein the operations further comprise:

converting between a schema associated with the first pluggable functional building block to a schema associated with the second pluggable functional building block.

11. The computing device of claim 7 , wherein the operations further comprise:

automatically converting between a data format associated with the first pluggable functional building block to a data format associated with the second pluggable functional building block.

12. The computing device of claim 7 , wherein the operations further comprise:

automatically converting a file produced by the first pluggable functional building block into an object acceptable by a pluggable module of the second pluggable functional building block.

13. A method, comprising:

receiving an indication of input data and a data transformation instruction;

in response to receiving a selection of at least two of a plurality of pluggable functional building blocks and a connection indication between the at least two of the plurality of functional building blocks, automatically composing a workflow comprising a first pluggable functional building block and a second pluggable functional building block, wherein the output of the first pluggable functional building block is automatically transformed into acceptable input for the second pluggable functional building block by the workflow utilizing the input data and the data transformation instruction; and

automatically publishing the workflow as a web service.

14. The method of claim 13 , further comprising:

using a standardized workflow interface for communication between the first pluggable functional building block and the second pluggable functional building block.

15. The method of claim 13 , further comprising:

automatically converting between a workflow interface associated with the first pluggable functional building block to a workflow interface associated with the second pluggable functional building block.

16. The method of claim 13 , further comprising:

converting between a schema associated with the first pluggable functional building block to a schema associated with the second pluggable functional building block.

17. The method of claim 13 , further comprising:

automatically converting between a data format associated with the first pluggable functional building block to a data format associated with the second pluggable functional building block.

18. The method of claim 13 , further comprising:

automatically converting a file produced by the first pluggable functional building block into an object acceptable by a pluggable module of the second pluggable functional building block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2016
From: MISHRA, DEBI; HUSBANDS, PARRY; RAGHUNATHAN, SUDARSHAN; LINFOOT, ANDY; HACHMEISTER, DAMON
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039605/0487 →
Continuity (3)
Continuation 14576256 · Dec 19, 2014
Provisional Application 62023834 · Jul 12, 2014
Related Publication 20160371117A1 · Dec 22, 2016
Cited By (5)
US 12,192,294 US 12,321,722 US 12,340,186 US 12,367,069 US 12,619,930