IP Library Granted Patent US 9,251,492
Granted Patent B2
US 9,251,492 · App. 14/572,613 · Granted Feb 2, 2016

Customized-enterprise-software integration systems and methods

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 9,251,492
App. No.
14/572,613
Granted
Feb 2, 2016
Kind
B2
Abstract

A third-party provider may integrate services with a customized enterprise-software tenancy via a tenant service context determined using an uncustomized data model and a tenant-customized data model from the enterprise-software provider. A difference map is generated for the tenant-customized data model with respect to the uncustomized data model, and is used to determine a mapped integrated-service data model, which facilitates integrating services with those of the enterprise-software provider. The mapped integrated-service data model is merged with the tenant-customized data model to obtain the tenant service context for the tenant. When a user provides an instruction to interact with the multi-tenant enterprise-software provider, the tenant service context is used to determine an action based on an interpretation of the instruction, and the enterprise-software provider is commanded to perform the action.

Claims (78)

1. A computer-implemented method for providing services that integrate with a customized enterprise-software tenancy, the method comprising:

obtaining, by the computer from a user, an instruction to interact with a multi-tenant enterprise-software provider on behalf of said user, said user being associated with a tenant of a multiplicity of tenants of said enterprise-software provider;

obtaining, by the computer, a tenant service context;

determining, by the computer, an interpretation of said instruction according to said tenant service context;

determining, by the computer, an action based on said interpretation; and

commanding, by the computer, said enterprise-software provider to perform said action;

wherein obtaining said tenant service context includes performing, by the computer, a service-context sub-method comprising:

obtaining, from said enterprise-software provider, an uncustomized data model and a tenant-customized data model, said tenant-customized data model having been customized by and/or for said user such that it differs from those of other tenants of said multiplicity of tenants;

generating a difference map for said tenant-customized data model with respect to said uncustomized data model;

obtaining an integrated-service data model that facilitates integrating services with those of said enterprise-software provider, said integrated-service data model being expressed in terms of said uncustomized data model;

determining a mapped integrated-service data model according to said difference map such that said mapped integrated-service data model is expressed in terms of said tenant-customized data model;

merging said mapped integrated-service data model and said tenant-customized data model to obtain said tenant service context for said tenant; and

storing said tenant service context in association with said tenant.

2. The method of claim 1 , further comprising proposing said action to said user for confirmation prior to commanding said enterprise-software provider to perform said action.

3. The method of claim 1 , further comprising:

determining that said enterprise-software provider failed to perform said action as a result of outdated information in said tenant service context; and consequently

performing said service-context sub-method to obtain an updated tenant service context.

4. The method of claim 3 , further comprising:

obtaining a subsequent instruction;

determining a subsequent action based on an updated interpretation of said subsequent instruction according to said updated tenant service context; and

commanding said enterprise-software provider to perform said subsequent action.

5. The method of claim 1 , wherein obtaining said instruction comprises:

obtaining a recording of an utterance spoken by said user; and

determining said instruction based at least in part on said recording.

6. The method of claim 1 , wherein obtaining said tenant service context further comprises generating a derivative data model based on said tenant service context.

7. The method of claim 6 , wherein determining said interpretation of said instruction comprises interpreting said instruction according to said derivative data model.

8. A computing apparatus for providing services that integrate with a customized enterprise-software tenancy, the apparatus comprising a processor and a memory storing instructions that, when executed by the processor, configure the apparatus to:

obtain, from a user, an instruction to interact with a multi-tenant enterprise-software provider on behalf of said user, said user being associated with a tenant of a multiplicity of tenants of said enterprise-software provider;

obtain a tenant service context;

determine an interpretation of said instruction according to said tenant service context;

determine an action based on said interpretation; and

command said enterprise-software provider to perform said action;

wherein the instructions that configure the apparatus to obtain said tenant service context further comprise instructions configuring the apparatus to perform a service-context sub-method comprising:

obtaining, from said enterprise-software provider, an uncustomized data model and a tenant-customized data model, said tenant-customized data model having been customized by and/or for said user such that it differs from those of other tenants of said multiplicity of tenants;

generating a difference map for said tenant-customized data model with respect to said uncustomized data model;

obtaining an integrated-service data model that facilitates integrating services with those of said enterprise-software provider, said integrated-service data model being expressed in terms of said uncustomized data model;

determining a mapped integrated-service data model according to said difference map such that said mapped integrated-service data model is expressed in terms of said tenant-customized data model;

merging said mapped integrated-service data model and said tenant-customized data model to obtain said tenant service context for said tenant; and

storing said tenant service context in association with said tenant.

9. The apparatus of claim 8 , wherein the memory stores further instructions that further configure the apparatus to propose said action to said user for confirmation prior to commanding said enterprise-software provider to perform said action.

10. The apparatus of claim 8 , wherein the memory stores further instructions that further configure the apparatus to:

determine that said enterprise-software provider failed to perform said action as a result of outdated information in said tenant service context; and consequently

perform said service-context sub-method to obtain an updated tenant service context.

11. The apparatus of claim 10 , wherein the memory stores further instructions that further configure the apparatus to:

obtain a subsequent instruction;

determine a subsequent action based on an updated interpretation of said subsequent instruction according to said updated tenant service context; and

command said enterprise-software provider to perform said subsequent action.

12. The apparatus of claim 8 , wherein the instructions that configure the apparatus to obtain said instruction further comprise instructions configuring the apparatus to:

obtain a recording of an utterance spoken by said user; and

determine said instruction based at least in part on said recording.

13. The apparatus of claim 8 , wherein the instructions that configure the apparatus to obtain said tenant service context further comprise instructions configuring the apparatus to generate a derivative data model based on said tenant service context.

14. The apparatus of claim 13 , wherein the instructions that configure the apparatus to determine said interpretation of said instruction further comprise instructions configuring the apparatus to interpret said instruction according to said derivative data model.

15. A non-transitory computer-readable storage medium having stored thereon instructions including instructions that, when executed by a processor, configure the processor to:

obtain, from a user, an instruction to interact with a multi-tenant enterprise-software provider on behalf of said user, said user being associated with a tenant of a multiplicity of tenants of said enterprise-software provider;

obtain a tenant service context;

determine an interpretation of said instruction according to said tenant service context;

determine an action based on said interpretation; and

command said enterprise-software provider to perform said action;

wherein the instructions that configure the processor to obtain said tenant service context further comprise instructions configuring the processor to perform a service-context sub-method comprising:

obtaining, from said enterprise-software provider, an uncustomized data model and a tenant-customized data model, said tenant-customized data model having been customized by and/or for said user such that it differs from those of other tenants of said multiplicity of tenants;

generating a difference map for said tenant-customized data model with respect to said uncustomized data model;

obtaining an integrated-service data model that facilitates integrating services with those of said enterprise-software provider, said integrated-service data model being expressed in terms of said uncustomized data model;

determining a mapped integrated-service data model according to said difference map such that said mapped integrated-service data model is expressed in terms of said tenant-customized data model;

merging said mapped integrated-service data model and said tenant-customized data model to obtain said tenant service context for said tenant; and

storing said tenant service context in association with said tenant.

16. The non-transitory computer-readable storage medium of claim 15 , having stored thereon further instructions that further configure the processor to propose said action to said user for confirmation prior to commanding said enterprise-software provider to perform said action.

17. The non-transitory computer-readable storage medium of claim 15 , having stored thereon further instructions that further configure the processor to:

determine that said enterprise-software provider failed to perform said action as a result of outdated information in said tenant service context; and consequently

perform said service-context sub-method to obtain an updated tenant service context.

18. The non-transitory computer-readable storage medium of claim 17 , having stored thereon further instructions that further configure the processor to:

obtain a subsequent instruction;

determine a subsequent action based on an updated interpretation of said subsequent instruction according to said updated tenant service context; and

command said enterprise-software provider to perform said subsequent action.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions that configure the processor to obtain said instruction further comprise instructions configuring the processor to:

obtain a recording of an utterance spoken by said user; and

determine said instruction based at least in part on said recording.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions that configure the processor to obtain said tenant service context further comprise instructions configuring the processor to generate a derivative data model based on said tenant service context.

21. The non-transitory computer-readable storage medium of claim 20 , wherein the instructions that configure the processor to determine said interpretation of said instruction further comprise instructions configuring the processor to interpret said instruction according to said derivative data model.

Assignments (8)
CHANGE OF NAME Recorded Jan 9, 2024
From: NORTEK SECURITY & CONTROL LLC
To: NICE NORTH AMERICA LLC
Reel/Frame 066242/0513 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2017
From: NORTEK HOME CONTROL HOLDINGS, LLC
To: NORTEK SECURITY & CONTROL LLC
Reel/Frame 043751/0352 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2017
From: NUIKU INC.
To: NORTEK HOME CONTROL HOLDINGS, LLC
Reel/Frame 043751/0131 →
NOTICE OF RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jan 11, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: NORTEK, INC.; NORTEK SECURITY & CONTROL LLC
Reel/Frame 041346/0124 →
NOTICE OF RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jan 10, 2017
From: BANK OF AMERICA, N.A.
To: NORTEK, INC.; NORTEK SECURITY & CONTROL LLC
Reel/Frame 041326/0725 →
SECURITY INTEREST Recorded Jun 17, 2016
From: NORTEK SECURITY & CONTROL LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 038944/0968 →
SECURITY INTEREST Recorded Jun 17, 2016
From: NORTEK SECURITY & CONTROL LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038945/0312 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2014
From: BAKER, WILIAM P.
To: NUIKU, INC.
Reel/Frame 034521/0756 →