IP Library Granted Patent US 10,862,979
Granted Patent B2
US 10,862,979 · App. 15/481,998 · Granted Dec 8, 2020

Techniques for supporting remote micro-services as native functions in spreadsheet applications

Inventors: Ehab Sobhy Deraz (Bellevue, WA); Carlos Augusto Otero (Seattle, WA); Annie Colonna (Seattle, WA); Christopher John Gross (Seattle, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L67/16G06F40/18G06Q10/10G06F16/211H04L67/10
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,862,979
App. No.
15/481,998
Granted
Dec 8, 2020
Kind
B2
Abstract

The techniques described herein facilitate supporting remote micro-services from cloud-based analytics platforms as native functions in spreadsheet applications, e.g., Microsoft Excel®. In an implementation, a method of supporting remote micro-services as native functions in a spreadsheet application is disclosed. The method includes accessing a listing identifying at least one micro-service that is available for use by a user of a spreadsheet application. The at least one micro-service is remotely located in a cloud service platform. The method further includes obtaining a schema associated with the at least one remote micro-service, generating a translation model based on the schema, and registering the skeleton spreadsheet function as a native function in the spreadsheet application. The translation model maps between the at least one remote micro-service and a skeleton spreadsheet function.

Claims (64)

1. A device-implemented method of operating a spreadsheet application to support remote micro-services as native functions, the method comprising:

accessing a listing identifying a micro-service that is remotely located in a cloud service platform and available for use by a user of the spreadsheet application;

obtaining a schema associated with the micro-service, wherein the schema includes a description of the micro-service;

generating a translation model based on the schema, wherein generating the translation model comprises:

identifying input and output parameters of the micro-service; and

quantizing the input and output parameters of the micro-service to native parameters of the spreadsheet application that most closely relate to the input and output parameters of the micro-service;

wherein the translation model provides a mapping between the input and output parameters of the micro-service and a skeleton spreadsheet function that uses the quantized native parameters of the spreadsheet application as input and output parameters; and

registering the skeleton spreadsheet function as a native function of the spreadsheet application.

2. The device-implemented method of claim 1 , wherein obtaining the schema comprises:

generating a request for the schema associated with the micro-service;

sending the request for delivery to the cloud service platform; and

responsively receiving the schema.

3. The device-implemented method of claim 2 , wherein the listing identifies the micro-service and a corresponding address for accessing the schema associated with the micro-service.

4. The device-implemented method of claim 2 , wherein the description comprises a swagger document.

5. The device-implemented method of claim 1 , wherein generating the translation model further comprises creating the skeleton spreadsheet function.

6. The device-implemented method of claim 1 , wherein generating the translation model further comprises:

digesting the schema to identify the input and output parameters associated with the micro-service;

generating a mapping of the input and output parameters associated with the micro-service to the native parameters of the spreadsheet application; and

creating the translation model based on the mapping of the input and output parameters associated with the micro-service.

7. The device-implemented method of claim 6 , wherein generating the mapping of the input and output parameters associated with the micro-service further comprises:

identifying data types of the input and output parameters associated with the micro-service; and

mapping the data types associated with the input and output parameters to native data types of the spreadsheet application.

8. The device-implemented method of claim 1 , further comprising:

exposing the skeleton spreadsheet function through a user interface as a native function of the spreadsheet application.

9. The device-implemented method of claim 8 , wherein exposing the skeleton spreadsheet function to the user further comprises presenting the micro-service to the user through the user interface at an entry point.

10. The device-implemented method of claim 9 , wherein the entry point comprises one or more of an autocomplete function, a ribbon, or an insert function.

11. The device-implemented method of claim 9 , wherein a component of the user interface graphically identifies the skeleton spreadsheet function as a micro-service.

12. The device-implemented method of claim 1 , further comprising:

receiving a request to execute the skeleton spreadsheet function;

extracting values of parameters passed to the skeleton spreadsheet function;

translating the values of the parameters passed to the skeleton spreadsheet function to values corresponding to the micro-service using the translation model; and

constructing a call to the micro-service using the translated values corresponding to the micro-service.

13. A device-implemented method of supporting remote micro-services as native functions within a spreadsheet application, the method comprising:

requesting, from a cloud service, a schema for each of one or more remote micro-services that are available for use by a user of the spreadsheet application based on credential information associated with the user;

generating a translation model for each of the one or more remote micro-services based on a corresponding schema,

wherein generating the translation model comprises:

identifying input and output parameters of the one or more remote micro-services; and

quantizing the input and output parameters to native parameters of the spreadsheet application that most closely relate to the input and output parameters;

wherein each translation model provides a mapping between the input and output parameters of the one or more remote micro-services and a skeleton spreadsheet function that uses the quantized native parameters of the spreadsheet application as input and output parameters; and

registering each skeleton spreadsheet function as a native function of the spreadsheet application.

14. The device-implemented method of claim 13 , wherein generating the translation model for each of the one or more remote micro-services based on the corresponding schema comprises:

digesting each schema to identify input and output parameters associated with a corresponding micro-service;

generating a mapping of the input and output parameters associated with the corresponding micro-service to native parameters of the spreadsheet application; and

creating the translation model for each corresponding micro-service based on the mapping.

15. The device-implemented method of claim 14 , wherein generating the mapping further comprises:

identifying data types of the input and output parameters associated with each of the one or more remote micro-services; and

mapping the data types associated with the input and output parameters to native data types of the spreadsheet application.

16. The device-implemented method of claim 13 , further comprising:

exposing the skeleton spreadsheet function through a user interface as a native function of the spreadsheet application.

17. An apparatus comprising:

one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media which, when executed by a processing system, direct the processing system to at least:

access a listing identifying micro-service remotely located in a cloud service platform that is available for use by a user of a spreadsheet application;

obtain a schema associated with the micro-service;

generate, based on the schema, a translation model by quantizing input and output parameters associated with the micro-service to native parameters of the spreadsheet application that most closely relate to the input and output parameters of the micro-service, wherein the translation model provides a mapping between the input and output parameters of the micro-service and a skeleton spreadsheet function that uses the quantized native parameters of the spreadsheet application as input and output parameters; and

register the skeleton spreadsheet function as a native function in the spreadsheet application.

18. The apparatus of claim 17 , wherein to generate the translation model based on the schema, the program instructions, when executed by the processing system, further direct the processing system to:

digest the schema to identify the input and output parameters associated with the micro-service; and

generate a mapping of the input and output parameters associated with the micro-service to the native parameters of the spreadsheet application.

19. The apparatus of claim 18 , wherein to generate the mapping, the program instructions, when executed by the processing system, further direct the processing system to:

identify data types of the input and output parameters associated with the micro-service; and

map the data types of the input and output parameters associated with the micro-service to native data types of the spreadsheet application.

20. The apparatus of claim 17 , wherein the program instructions, when executed by the processing system, further direct the processing system to:

expose the skeleton spreadsheet function through a user interface as a native function of the spreadsheet application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2017
From: DERAZ, EHAB SOBHY; OTERO, CARLOS AUGUSTO; COLONNA, ANNIE; GROSS, CHRISTOPHER JOHN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 041931/0385 →
Continuity (1)
Related Publication 20180295194A1 · Oct 11, 2018
Cited By (1)
US 12,386,850