US9251492B2 - Customized-enterprise-software integration systems and methods - Google Patents
Customized-enterprise-software integration systems and methods Download PDFInfo
- Publication number
- US9251492B2 US9251492B2 US14/572,613 US201414572613A US9251492B2 US 9251492 B2 US9251492 B2 US 9251492B2 US 201414572613 A US201414572613 A US 201414572613A US 9251492 B2 US9251492 B2 US 9251492B2
- Authority
- US
- United States
- Prior art keywords
- tenant
- data model
- enterprise
- service
- customized
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/067—Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Definitions
- This disclosure is directed to the field of software, and more particularly, to systems and methods for automatically integrating with customized enterprise software.
- ERP enterprise software
- enterprise software are fundamentally directed to managing data and relationships that correspond to real-world business entities such as customers, products and shipments.
- enterprise software may be used to provide services such as automated billing, security, enterprise content management, IT service management, customer relationship management, enterprise resource planning, business intelligence, project management, collaboration, human resource management, manufacturing, enterprise application integration, enterprise forms automation, and the like.
- enterprise software allows a degree of configuration and customization.
- various examples of enterprise software might include support for a customer-specific chart-of-accounts, customer-specific report formats, customer-specific processing logic, customer-specific workflows, and/or customer-specific logos and color schemes.
- SaaS software-as-a-service
- multi-tenant In a “multi-tenant” architecture, multiple customers or “tenants” share a single instance of an enterprise software application, but each tenant typically has its own configuration data. Or more properly, each tenant has its own configuration meta data, which serve to describe to the application the tenant's customizations of the application.
- Salesforce.com allows a tenant to customize its applications in various ways, including by adding new entities to or deleting entities from the tenant's database; adding, deleting, and/or modifying fields within a database entity; adding, deleting, and/or modifying validation rules; adding, deleting, and/or modifying user permissions; and the like.
- a third-party may provide services that integrate with a tenant's customized enterprise software instance.
- a third-party integrator is Nuiku, Inc. of Redmond, Wash., which provides natural-language “virtual assistant” services that integrate with enterprise software back-ends such as SFDC.
- the Nuiku services In order to answer an end-user's questions such as “how many interactions have I had with Mary Smith relating to Zirlow promotions?”, the Nuiku services must take into account any customizations that the tenant and/or the end-user have made to their SFDC instance.
- SFDC and similar SaaS enterprise-software providers do not necessarily make a complete set of all such tenant customization meta data available to third parties that wish to integrate with a tenant's customized enterprise software instance.
- each tenant that wishes to use a third-party's integrated services would traditionally employ a consultant to customize the third-party services to match the tenant's customized enterprise software instance.
- a consultant to customize the third-party services to match the tenant's customized enterprise software instance.
- manual customizations tend to be expensive, fragile, and hard to scale, requiring frequent or periodic manual intervention to maintain.
- FIG. 1 illustrates a simplified customized enterprise-services system in which enterprise-service provider, customized-enterprise-software integration device, and client devices are connected to network.
- FIG. 2 illustrates a conceptual overview of a customized-enterprise-software integration solution, in accordance with one embodiment.
- FIG. 3 illustrates an exemplary series of communications between _Server, enterprise-service provider, and client device in accordance with one embodiment.
- FIG. 4 illustrates a new-tenant routine for generating a tenant service context for a new tenant, such as may be performed by a customized-enterprise-software integration device in accordance with one embodiment.
- FIG. 5 illustrates a customized-data-model merge subroutine for merging an integrated-service data model with a tenant-customized data model of an enterprise software service for a given tenant, such as may be performed by a customized-enterprise-software integration device in accordance with one embodiment.
- FIG. 6 illustrates a service-provision routine for providing services that integrate with a given tenant's customized enterprise software instance, such as may be performed by a customized-enterprise-software integration device in accordance with one embodiment.
- FIG. 7 illustrates several components of an exemplary customized-enterprise-software integration device in accordance with one embodiment.
- a processor and/or processing device may be configured (e.g., via non-transitory computer-readable storage media) to perform a first method for providing services that integrate with a customized enterprise software tenancy, the first method including steps similar to some or all of the following:
- obtaining the tenant service context may involve performing a service-context sub-method including steps similar to some or all of the following:
- obtaining the instruction may include elements similar to some or all of the following:
- obtaining the tenant service context may include generating a derivative data model based on the tenant service context, or the like.
- determining the interpretation of the instruction may include interpreting the instruction according to the derivative data model, or the like.
- FIG. 1 illustrates a simplified customized enterprise-services system in which enterprise-service provider 110 , customized-enterprise-software integration device 700 , and client devices 105 A-D are connected to network 150 .
- Enterprise-service provider 110 represents a provider of multi-tenant SaaS enterprise software, such as SFDC, Concur, and the like.
- enterprise-service provider 110 provides enterprise software services that are consumed by client devices 105 A-D.
- Client devices 105 A-B are associated with a first tenant (tenant A), and client devices 105 C-D are associated with a second tenant (tenant B).
- Tenants A and B have each customized their instances of the enterprise software services.
- Such customization data is stored, among other things, by enterprise-service provider 110 in a database or similar data store (not shown).
- Customized-enterprise-software integration device 700 represents a provider of services, such as Nuiku, that integrate with and/or extend those provided by enterprise-service provider 110 .
- network 150 may include the Internet, a local area network (“LAN”), a wide area network (“WAN”), and/or other data network.
- LAN local area network
- WAN wide area network
- client devices 105 A-D may include desktop PCs, mobile phones, laptops, tablets, or other computing devices that are capable of connecting to network 150 and consuming services such as those described herein.
- additional tenants may be represented within the system, and each tenant may include more client devices than are displayed in FIG. 1 .
- additional infrastructure e.g., cell sites, routers, gateways, firewalls, and the like
- additional devices may be present.
- the functions described as being provided by some or all of enterprise-service provider 110 and customized-enterprise-software integration device 700 may be implemented via various combinations of physical and/or logical devices. However, it is not necessary to show such infrastructure and implementation details in FIG. 1 in order to describe an illustrative embodiment.
- FIG. 2 illustrates a conceptual overview 200 of a customized-enterprise-software integration solution, in accordance with one embodiment.
- Enterprise service database 260 is operated and/or maintained by a provider of multi-tenant SaaS enterprise software, such as the entity that operates SFDC.
- Customized-enterprise-software integration database 740 (see FIG. 7 , discussed below) is operated and/or maintained by a third-party provider that offers services that integrate with those enterprise software services.
- the services provided by multi-tenant enterprise-software provider are driven by default enterprise software data model 205 , which describes various entities, attributes, and properties that the service utilizes.
- default enterprise software data model 205 may describe accounts, contacts, opportunities, activities, and other entities related to CRM purposes.
- enterprise service database 260 may include multiple versions (not shown) of default enterprise software data model 205 .
- Tenant-customized enterprise software data model 210 represents one such customized data model for a particular tenant.
- a contrived example is the addition of a field, called ‘Height’, to track the physical height of a contact. Furthermore, the tenant may require this Height data for every contact.
- default enterprise software data model 205 may include a description of an entity named or labeled “Opportunity”, but a given tenant may have re-named or re-labeled this entity to “Investment”.
- Many other types of customization are possible, including deleting or changing any entities, attributes, or properties included within default enterprise software data model 205 , as well as adding new entities, attributes, or properties that do not exist in default enterprise software data model 205 .
- enterprise service database 260 would typically include at least one customized data model for each tenant it supports. Such additional tenant-customized data models are not shown in FIG. 2 . In some cases, individual end-users within a given tenant may further customize tenant-customized enterprise software data model 210 . Such end-user-customized data models are also not shown.
- integrated-services data model(s) 225 describes, among other things, the concepts that the third-party provider understands from a linguistic and/or semantic perspective, as well as the maps between those concepts and the physical design of one or more back-end databases (e.g., enterprise service database 260 ).
- integrated-services data model(s) 225 may indicate that various linguistic terms (e.g., “cell”, “mobile”, “portable”) all map to one or more semantic concept of a mobile phone.
- the integrated-services data models 225 may further indicate that data related to the semantic concept of a mobile phone is stored by a given enterprise-software provider in particular tables and/or fields of default enterprise software data model 205 .
- integrated-services data model(s) 225 is expressed in terms of the default enterprise software data model 205 .
- tenants end-users and/or their companies
- can and do have customized versions of the default enterprise software data model 205 e.g., tenant-customized enterprise software data model 210 .
- integrated-services data model(s) 225 may describe semantics, data, and/or relationships related to the ‘Opportunity’ concept (as described in default enterprise software data model 205 )
- a given tenant may have a customized data model (e.g., tenant-customized enterprise software data model 210 ) that has re-labeled this concept as ‘Investment’. Consequently, if a user associated with that tenant sent a request such as “Show investments related to the ABC account,” integrated-services data model(s) 225 may be unable to translate that request into an actionable command.
- a third-party provider may employ a differencing process to generate an end-user customization map 220 that can be used to map integrated-services data model(s) 225 such that it is expressed in terms of tenant-customized enterprise software data model 210 and can be merged with tenant-customized enterprise software data model 210 to produce a tenant service context 240 that will enable users associated with the tenant to consume services in terms of tenant-customized enterprise software data model 210 .
- one or more derivative tenant service context(s) 250 may be derived from tenant service context 240 to facilitate the provision of certain services that benefit from a specialized version of tenant service context.
- One embodiment of such a map/merge/derive process is shown in customized-data-model merge subroutine 500 (see FIG. 5 , discussed below).
- tenant service context and/or derivative tenant service context(s) 250 may understand that the user is requesting information associated with a particular table (not shown) in tenant-customized enterprise software data model 210 .
- FIG. 3 illustrates an exemplary series of communications between _Server, enterprise-service provider 110 , and client device 105 in accordance with one embodiment.
- the communications shown in FIG. 3 do not encompass every combination of possibilities in which the systems and methods provided herein may be employed. Rather, the illustrated communications merely provide an overview of one simplified example scenario. Additional variations and alternatives are described more fully in the Figures and description that follow.
- client device 105 is operated by an individual who is or is associated with an entity is an existing tenant of multi-tenant enterprise software services provided by enterprise-service provider 110 . That tenant has customized its instance of the enterprise software services and now wishes to use services provided by _Server that need to integrate with the tenant's customized enterprise software services.
- client device 105 sends to _Server new tenant information 304 , such as credentials to access the tenant's data and/or meta data from enterprise-service provider 110 .
- receiving such new tenant information 304 triggers a process to obtain a data model associated with the tenant from enterprise-service provider 110 .
- Server sends to enterprise-service provider 110 a request 309 for a tenant data model associated with the tenant.
- tenant-customized enterprise software data model 210 (see FIG. 2 , discussed above).
- Server may utilize an API provided by enterprise-service provider 110 for this purpose.
- enterprise-service provider 110 retrieves 313 the requested tenant data model and sends the requested tenant data model 317 to _Server.
- the tenant has customized tenant data model 317 in ways that are currently unknown to Server.
- the data models that are used to enable the integrated services provided by Server such as integrated-services data model(s) 225 (see FIG. 2 , discussed above), are expressed in terms of a “default” or uncustomized data model, such as default enterprise software data model 205 (see FIG. 2 , discussed above).
- enterprise-service provider 110 may provide an API according to which Server may obtain a copy of the default data model.
- a third-party provider may maintain an uncustomized tenancy with enterprise-service provider 110
- _Server may utilize an API provided by enterprise-service provider 110 to obtain a copy of the uncustomized-tenant's data model.
- _Server sends to enterprise-service provider 110 a request 322 for an uncustomized tenant data model.
- enterprise-service provider 110 retrieves 326 the requested uncustomized tenant data model and sends the requested uncustomized tenant data model 330 to _Server.
- _Server determines 334 a customization map for the new tenant, the customization map indicating differences between uncustomized tenant data model 330 and the tenant's customized version. Generating such a customization map is described further in connection with block 520 (see FIG. 5 , discussed below).
- Server obtains 339 such an uncustomized integrated-services data model (e.g. from customized-enterprise-software integration database 740 ).
- _Server maps the uncustomized integrated-services data model(s) according to the customization map (such that it is expressed in terms of the customized tenant data model) and merges the resulting data with that tenant data model to generate a customized tenant service context.
- Server stores 347 the tenant service context thereby generated to enable Server to handle subsequent requests posed in terms of the tenant's customized data model.
- a certain service may be provided more efficiently using a specialized version of the tenant service context.
- _Server derives 352 one or more derivative service context(s) based on the generated customized tenant service context and stores the derivative service context(s) thereby derived.
- client device 105 sends to _Server a request 360 to perform an action.
- request 360 may take the form of a natural-language expression that may have been entered by a user and/or derived from a spoken utterance by the user.
- request 360 may be received via a speech-to-text server or module (not shown).
- Server obtains 365 a suitable derivative service context, which Server uses to interpret the request 360 and determine 369 a proposed action based on the interpretation.
- the proposed action may require confirmation that the proposed action is consistent with the user's intent.
- _Server sends to client device 105 a request 373 for the remote user to confirm the proposed action before it is performed.
- Client device 105 provides 377 the proposed action to the user for review and, upon user confirmation, sends to _Server a confirmation to perform the action.
- _Server uses an API provided by enterprise-service provider 110 to send action instructions 386 so that enterprise-service provider 110 can perform 390 the instructed action.
- Enterprise-service provider 110 sends to _Server action results 395 , which action results 399 are sent to client device 105 for presentation to the user.
- FIG. 4 illustrates a new-tenant routine 400 for generating a tenant service context for a new tenant, such as may be performed by a customized-enterprise-software integration device 700 in accordance with one embodiment.
- new-tenant routine 400 determines that an acquisition event for a given tenant has occurred. For example, in one embodiment, new-tenant routine 400 may determine that a new tenant wishes to obtain services that integrate with a multi-tenant enterprise software service. In other embodiments, new-tenant routine 400 may determine that an existing tenant-customized enterprise software data model 210 should be updated for any of various reasons. For example, an update may be triggered periodically according to a fixed schedule, when a source data model changes, when the existing tenant-customized enterprise software data model 210 fails to successfully handle a user request, or for other like reasons.
- new-tenant routine 400 calls subroutine 500 (see FIG. 5 , discussed below) to generate a tenant service context.
- New-tenant routine 400 ends in ending block 499 .
- FIG. 5 illustrates a customized-data-model merge subroutine 500 for merging an integrated-service data model with a tenant-customized data model of an enterprise software service for a given tenant, such as may be performed by a customized-enterprise-software integration device 700 in accordance with one embodiment.
- customized-data-model merge subroutine 500 obtains information associated with the given tenant, such as credentials to access the tenant's data and/or meta data from a multi-tenant multi-tenant enterprise-software provider (e.g., enterprise-service provider 110 ).
- a multi-tenant multi-tenant enterprise-software provider e.g., enterprise-service provider 110 .
- customized-data-model merge subroutine 500 obtains a tenant-customized data model from a multi-tenant enterprise-software provider using the credentials or other tenant information obtained in block 505 .
- tenant-customized enterprise software data model 210 (see FIG. 2 , discussed above).
- customized-data-model merge subroutine 500 may utilize an API provided by enterprise-software provider for this purpose.
- customized-data-model merge subroutine 500 needs to determine how the tenant-customized data model obtained in block 510 differs from a “default” or uncustomized data model provided by the enterprise-software provider. To that end, in block 515 , customized-data-model merge subroutine 500 obtains an uncustomized data model.
- the multi-tenant enterprise-software provider may provide an API according to which customized-data-model merge subroutine 500 may obtain a copy of such an uncustomized data model.
- customized-data-model merge subroutine 500 may obtain credentials that can be used to access an uncustomized tenancy with the enterprise-software provider and utilize an API provided by the enterprise-software provider to obtain a copy of the uncustomized-tenant's data model.
- customized-data-model merge subroutine 500 generates a difference map for the tenant-customized data model obtained in block 510 with respect to the uncustomized data model obtained in block 515 .
- generating such a difference map may utilize any suitable object differencing algorithm that takes a source object (here, the uncustomized data model) and a target object (here, the tenant-customized data model), and produces difference data such that given the source data and the difference data, one can reconstruct the target data.
- the generated difference map can be used to “patch” the uncustomized data model to produce the tenant-customized data model.
- enterprise software data models are typically organized into one or more entities, each of which has one or more attributes, each of which have one or more properties.
- entity is conceptually similar to a database table (although not all vendors use relational database technology).
- Example entities in a CRM-oriented enterprise software service might include Accounts, Opportunities, Contacts, and the like.
- An “attribute” is conceptually similar to a column or field within a database table.
- Example attributes of a Contacts entity include First Name, Last Name, Cell Phone Number, and the like.
- a “property” is conceptually similar to a field property of a database field.
- Example properties might include a required flag, a maximum string length, view and/or edit permissions, and the like.
- Tenant customizations can affect any level (entity, attribute, and/or property). Consequently, a suitable object differencing algorithm would typically produce a difference map that indicates differences at each of these levels.
- customized-data-model merge subroutine 500 obtains an integrated-service data model for the given tenant.
- integrated-service data model is expressed in terms of the uncustomized data model, mapping linguistic terms to semantic concepts to particular entities and/or attributes within the uncustomized data model.
- customized-data-model merge subroutine 500 maps the integrated-service data model obtained in block 525 according to the difference map generated in block 520 and merges it with tenant-customized data model.
- the difference map generated in block 520 can be used to “patch” the uncustomized data model to produce the tenant-customized data model.
- the difference map is used to “patch” or interpret the integrated-service data model such that it is expressed in terms of the tenant-customized data model and can be merged with tenant-customized data model to create a merged data model or tenant service context for the given tenant that will enable users associated with that tenant to consume services provided by a third-party provider of integrated services.
- customized-data-model merge subroutine 500 stores (e.g., in customized-enterprise-software integration database 740 ) the tenant service context merged in block 530 for the given tenant.
- a particular service may be provided more efficiently if the merged data model were reorganized in some way and/or merged with additional service-related data.
- customized-data-model merge subroutine 500 generates and stores for subsequent use one or more derivative data model(s) based on the tenant service context merged in block 530 .
- Customized-data-model merge subroutine 500 ends in ending block 599 , returning to the caller.
- FIG. 6 illustrates a service-provision routine 600 for providing services that integrate with a given tenant's customized enterprise software instance, such as may be performed by a customized-enterprise-software integration device 700 in accordance with one embodiment.
- service-provision routine 600 waits to receive an instruction from a user associated with a given tenant.
- service-provision routine 600 obtains an instruction from a remote user associated with the given tenant. For example, in one embodiment, service-provision routine 600 may receive an instruction that was originally entered and/or uttered into a remote mobile device operated by the user. In embodiments in which the user may have uttered a spoken request, the remote device or service-provision routine 600 may provide a recording of the request to speech-to-text server or module, with the textual results being provided to service-provision routine 600 .
- service-provision routine 600 obtains (e.g. from customized-enterprise-software integration database 740 ) one or more tenant service context(s), or derivatives thereof, that are suitable for processing the requested instruction.
- the tenant service context may correspond to one or more of tenant service context 240 and/or derivative tenant service context(s) 250 (see FIG. 2 , discussed above) that may have been merged as described in reference to block 530 (see FIG. 5 , discussed above).
- service-provision routine 600 uses the tenant service context obtained in block 615 to interpret the instruction received in block 610 .
- service-provision routine 600 assembles a proposed action based on the interpreted instruction.
- service-provision routine 600 may solicit confirmation from the user before performing and/or committing the action. In other embodiments, such as when the proposed action involves merely reading data, service-provision routine 600 may determine that user confirmation can be assumed.
- service-provision routine 600 determines whether the proposed action assembled in block 625 has either been confirmed by the user or does not require confirmation. If the user has confirmed or if no confirmation is required, then service-provision routine 600 proceeds to block 635 . Otherwise, service-provision routine 600 loops back to block 605 to await further instruction. Other embodiments may be configured to omit decision block 630 and to always proceed to either block 635 or block 605 .
- service-provision routine 600 commands the multi-tenant enterprise-software provider to perform the confirmed action.
- service-provision routine 600 uses an API provided by the multi-tenant enterprise-software provider for this purpose.
- service-provision routine 600 determines whether the enterprise-software provider successfully performed the action. If so, service-provision routine 600 ends in ending block 699 , in which, service-provision routine 600 handles the successful performance of the action, such as by providing feedback for presentation to the user that his or her instruction was successfully carried out.
- service-provision routine 600 determines whether refreshing or updating the tenant service context may allow service-provision routine 600 to successfully perform the action.
- tenant service context may include stale information for various reasons, such as if one of the data models from which tenant service context is merged has changed since the tenant service context was generated.
- service-provision routine 600 may determine to refresh or update the given tenant's tenant service contexts before attempting the action again. If in decision block 645 , service-provision routine 600 determines that the action failure was not likely caused by a stale tenant service context (e.g., because the tenant service context was recently updated or for other reasons), service-provision routine 600 ends in ending block 698 .
- service-provision routine 600 determines that the action may have failed because the tenant service context obtained in block 615 may be stale, then service-provision routine 600 proceeds to subroutine block 500 .
- service-provision routine 600 calls customized-data-model merge subroutine 500 (see FIG. 5 , discussed above) to generate an updated tenant service context and zero or more derivatives thereof before looping back to block 615 to attempt to perform the action again.
- service-provision routine 600 handles the unsuccessful performance of the action, such as by providing an error notification for presentation to the user.
- service-provision routine 600 may solicit or otherwise obtain input from the user or another source to learn new information that may allow service-provision routine 600 to update one or more models associated with the action and try again.
- FIG. 7 illustrates several components of an exemplary customized-enterprise-software integration device in accordance with one embodiment.
- customized-enterprise-software integration device 700 may include a desktop PC, server, workstation, mobile phone, laptop, tablet, set-top box, appliance, or other computing device that is capable of performing operations such as those described herein.
- customized-enterprise-software integration device 700 may include many more components than those shown in FIG. 7 . However, it is not necessary that all of these generally conventional components be shown in order to disclose an illustrative embodiment.
- customized-enterprise-software integration device 700 may comprise one or more physical and/or logical devices that collectively provide the functionalities described herein. In some embodiments, customized-enterprise-software integration device 700 may comprise one or more replicated and/or distributed physical or logical devices.
- customized-enterprise-software integration device 700 may comprise one or more computing resources provisioned from a “cloud computing” provider, for example, Amazon Elastic Compute Cloud (“Amazon EC2”), provided by Amazon.com, Inc. of Seattle, Wash.; Sun Cloud Compute Utility, provided by Sun Microsystems, Inc. of Santa Clara, Calif.; Windows Azure, provided by Microsoft Corporation of Redmond, Wash., and the like.
- Amazon Elastic Compute Cloud (“Amazon EC2”)
- Sun Cloud Compute Utility provided by Sun Microsystems, Inc. of Santa Clara, Calif.
- Windows Azure provided by Microsoft Corporation of Redmond, Wash., and the like.
- Customized-enterprise-software integration device 700 includes a bus 705 interconnecting several components including a network interface 710 , a display 715 , a central processing unit 720 , and a memory 725 .
- Memory 725 generally comprises a random access memory (“RAM”) and permanent non-transitory mass storage device, such as a hard disk drive or solid-state drive.
- Memory 725 stores program code for a new-tenant routine 400 for generating a tenant service context for a new tenant (see FIG. 4 , discussed above) and a service-provision routine 600 for providing services that integrate with a given tenant's customized enterprise software instance (see FIG. 6 , discussed above).
- the memory 725 also stores an operating system 735 .
- These and other software components may be loaded into memory 725 of customized-enterprise-software integration device 700 using a drive mechanism (not shown) associated with a non-transitory computer-readable medium 730 , such as a floppy disc, tape, DVD/CD-ROM drive, memory card, or the like.
- a drive mechanism (not shown) associated with a non-transitory computer-readable medium 730 , such as a floppy disc, tape, DVD/CD-ROM drive, memory card, or the like.
- Memory 725 also includes customized-enterprise-software integration database 740 .
- customized-enterprise-software integration device 700 may communicate with customized-enterprise-software integration database 740 via network interface 710 , a storage area network (“SAN”), a high-speed serial bus, and/or via the other suitable communication technology.
- SAN storage area network
- customized-enterprise-software integration database 740 may comprise one or more storage resources provisioned from a “cloud storage” provider, for example, Amazon Simple Storage Service (“Amazon S3”), provided by Amazon.com, Inc. of Seattle, Wash., Google Cloud Storage, provided by Google, Inc. of Mountain View, Calif., and the like.
- Amazon S3 Amazon Simple Storage Service
- Google Cloud Storage provided by Google, Inc. of Mountain View, Calif., and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- General Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Operations Research (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
-
- Needs assessment
- Planning and architecture design
- Database design
- Bi-directional data movement from and to other applications and data sources
- Workflow modeling
- Interface design and programming
- Programming to implement business rules
-
- obtaining, from a user, an instruction to interact with a multi-tenant enterprise-software provider on behalf of the user, the user being associated with a tenant of a multiplicity of tenants of the enterprise-software provider;
- obtaining a tenant service context;
- determining an interpretation of the instruction according to the tenant service context;
- determining an action based on the interpretation;
- commanding the enterprise-software provider to perform the action;
- proposing the action to the user for confirmation prior to commanding the enterprise-software provider to perform the action;
- determining that the enterprise-software provider failed to perform the action as a result of outdated information in the tenant service context; and consequently performing the service-context sub-method to obtain an updated tenant service context; and/or
- obtaining a subsequent instruction; determining a subsequent action based on an udpated interpretation of the subsequent instruction according to the updated tenant service context; and commanding the enterprise-software provider to perform the subsequent action.
-
- obtaining, from the enterprise-software provider, an uncustomized data model and a tenant-customized data model, the tenant-customized data model having been customized by and/or for the user such that it differs from those of other tenants of the multiplicity of tenants;
- generating a difference map for the tenant-customized data model with respect to the uncustomized data model;
- obtaining an integrated-service data model that facilitates integrating services with those of the enterprise-software provider, the integrated-service data model being expressed in terms of the uncustomized data model;
- determining a mapped integrated-service data model according to the difference map such that the mapped integrated-service data model is expressed in terms of the tenant-customized data model;
- merging the mapped integrated-service data model and the tenant-customized data model to obtain the tenant service context for the tenant; and/or
- storing the tenant service context in association with the tenant;
-
- obtaining a recording of an utterance spoken by the user; and/or
- determining the instruction based at least in part on the recording.
Claims (21)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/572,613 US9251492B2 (en) | 2013-12-16 | 2014-12-16 | Customized-enterprise-software integration systems and methods |
| US14/993,002 US9940591B2 (en) | 2013-12-16 | 2016-01-11 | Customized-enterprise-software integration systems and methods |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201361916677P | 2013-12-16 | 2013-12-16 | |
| US14/572,613 US9251492B2 (en) | 2013-12-16 | 2014-12-16 | Customized-enterprise-software integration systems and methods |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/993,002 Continuation US9940591B2 (en) | 2013-12-16 | 2016-01-11 | Customized-enterprise-software integration systems and methods |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20150170073A1 US20150170073A1 (en) | 2015-06-18 |
| US9251492B2 true US9251492B2 (en) | 2016-02-02 |
Family
ID=53368931
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/572,613 Active US9251492B2 (en) | 2013-12-16 | 2014-12-16 | Customized-enterprise-software integration systems and methods |
| US14/993,002 Active 2034-12-29 US9940591B2 (en) | 2013-12-16 | 2016-01-11 | Customized-enterprise-software integration systems and methods |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/993,002 Active 2034-12-29 US9940591B2 (en) | 2013-12-16 | 2016-01-11 | Customized-enterprise-software integration systems and methods |
Country Status (1)
| Country | Link |
|---|---|
| US (2) | US9251492B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9940591B2 (en) | 2013-12-16 | 2018-04-10 | Nortek Security & Control Llc | Customized-enterprise-software integration systems and methods |
Families Citing this family (71)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9318108B2 (en) | 2010-01-18 | 2016-04-19 | Apple Inc. | Intelligent automated assistant |
| US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
| US8676904B2 (en) | 2008-10-02 | 2014-03-18 | Apple Inc. | Electronic devices with voice command and contextual data processing capabilities |
| US10706373B2 (en) | 2011-06-03 | 2020-07-07 | Apple Inc. | Performing actions associated with task items that represent tasks to perform |
| US10276170B2 (en) | 2010-01-18 | 2019-04-30 | Apple Inc. | Intelligent automated assistant |
| US10417037B2 (en) | 2012-05-15 | 2019-09-17 | Apple Inc. | Systems and methods for integrating third party services with a digital assistant |
| DE112014000709B4 (en) | 2013-02-07 | 2021-12-30 | Apple Inc. | METHOD AND DEVICE FOR OPERATING A VOICE TRIGGER FOR A DIGITAL ASSISTANT |
| US10652394B2 (en) | 2013-03-14 | 2020-05-12 | Apple Inc. | System and method for processing voicemail |
| US10748529B1 (en) | 2013-03-15 | 2020-08-18 | Apple Inc. | Voice activated device for use with a voice-based digital assistant |
| US9483754B2 (en) * | 2013-03-15 | 2016-11-01 | Stevenson Systems, Inc. | Interactive building stacking plans |
| HK1220268A1 (en) | 2013-06-09 | 2017-04-28 | 苹果公司 | Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant |
| US10176167B2 (en) | 2013-06-09 | 2019-01-08 | Apple Inc. | System and method for inferring user intent from speech inputs |
| KR101749009B1 (en) | 2013-08-06 | 2017-06-19 | 애플 인크. | Auto-activating smart responses based on activities from remote devices |
| US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
| EP3149728B1 (en) | 2014-05-30 | 2019-01-16 | Apple Inc. | Multi-command single utterance input method |
| US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
| US9338493B2 (en) | 2014-06-30 | 2016-05-10 | Apple Inc. | Intelligent automated assistant for TV user interactions |
| US9886953B2 (en) | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
| US10460227B2 (en) | 2015-05-15 | 2019-10-29 | Apple Inc. | Virtual assistant in a communication session |
| US10200824B2 (en) | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
| US9578173B2 (en) * | 2015-06-05 | 2017-02-21 | Apple Inc. | Virtual assistant aided communication with 3rd party service in a communication session |
| US20160378747A1 (en) | 2015-06-29 | 2016-12-29 | Apple Inc. | Virtual assistant for media playback |
| US10747498B2 (en) | 2015-09-08 | 2020-08-18 | Apple Inc. | Zero latency digital assistant |
| US10740384B2 (en) | 2015-09-08 | 2020-08-11 | Apple Inc. | Intelligent automated assistant for media search and playback |
| US10671428B2 (en) | 2015-09-08 | 2020-06-02 | Apple Inc. | Distributed personal assistant |
| US10331312B2 (en) | 2015-09-08 | 2019-06-25 | Apple Inc. | Intelligent automated assistant in a media environment |
| US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
| US10691473B2 (en) | 2015-11-06 | 2020-06-23 | Apple Inc. | Intelligent automated assistant in a messaging environment |
| US10956666B2 (en) | 2015-11-09 | 2021-03-23 | Apple Inc. | Unconventional virtual assistant interactions |
| US10223066B2 (en) | 2015-12-23 | 2019-03-05 | Apple Inc. | Proactive assistance based on dialog communication between devices |
| US20190138282A1 (en) * | 2016-03-25 | 2019-05-09 | Pablo Daniel Palma Keller | System and methods for development of visual business applications |
| US12223282B2 (en) | 2016-06-09 | 2025-02-11 | Apple Inc. | Intelligent automated assistant in a home environment |
| US10586535B2 (en) | 2016-06-10 | 2020-03-10 | Apple Inc. | Intelligent digital assistant in a multi-tasking environment |
| DK179415B1 (en) | 2016-06-11 | 2018-06-14 | Apple Inc | Intelligent device arbitration and control |
| DK201670540A1 (en) | 2016-06-11 | 2018-01-08 | Apple Inc | Application integration with a digital assistant |
| US12197817B2 (en) | 2016-06-11 | 2025-01-14 | Apple Inc. | Intelligent device arbitration and control |
| US11204787B2 (en) | 2017-01-09 | 2021-12-21 | Apple Inc. | Application integration with a digital assistant |
| DK180048B1 (en) | 2017-05-11 | 2020-02-04 | Apple Inc. | MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION |
| US10726832B2 (en) | 2017-05-11 | 2020-07-28 | Apple Inc. | Maintaining privacy of personal information |
| DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
| DK201770429A1 (en) | 2017-05-12 | 2018-12-14 | Apple Inc. | Low-latency intelligent automated assistant |
| DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
| DK201770411A1 (en) | 2017-05-15 | 2018-12-20 | Apple Inc. | MULTI-MODAL INTERFACES |
| US20180336892A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Detecting a trigger of a digital assistant |
| US10303715B2 (en) | 2017-05-16 | 2019-05-28 | Apple Inc. | Intelligent automated assistant for media exploration |
| DK179560B1 (en) | 2017-05-16 | 2019-02-18 | Apple Inc. | Far-field extension for digital assistant services |
| US10818288B2 (en) | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
| US11145294B2 (en) | 2018-05-07 | 2021-10-12 | Apple Inc. | Intelligent automated assistant for delivering content from user experiences |
| US10928918B2 (en) | 2018-05-07 | 2021-02-23 | Apple Inc. | Raise to speak |
| CN108711033A (en) * | 2018-05-11 | 2018-10-26 | 安徽新汇企业管理服务有限公司 | A kind of science and technology item declares platform |
| US10892996B2 (en) | 2018-06-01 | 2021-01-12 | Apple Inc. | Variable latency device coordination |
| DK201870355A1 (en) | 2018-06-01 | 2019-12-16 | Apple Inc. | Virtual assistant operation in multi-device environments |
| DK179822B1 (en) | 2018-06-01 | 2019-07-12 | Apple Inc. | Voice interaction at a primary device to access call functionality of a companion device |
| DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
| US11462215B2 (en) | 2018-09-28 | 2022-10-04 | Apple Inc. | Multi-modal inputs for voice commands |
| WO2020102598A1 (en) * | 2018-11-14 | 2020-05-22 | SimplrOps | Systems, methods, and devices for implementing a central computing platform for distributed computing environments |
| US11348573B2 (en) | 2019-03-18 | 2022-05-31 | Apple Inc. | Multimodality in digital assistant systems |
| US11307752B2 (en) | 2019-05-06 | 2022-04-19 | Apple Inc. | User configurable task triggers |
| DK201970509A1 (en) | 2019-05-06 | 2021-01-15 | Apple Inc | Spoken notifications |
| US11140099B2 (en) | 2019-05-21 | 2021-10-05 | Apple Inc. | Providing message response suggestions |
| DK201970510A1 (en) | 2019-05-31 | 2021-02-11 | Apple Inc | Voice identification in digital assistant systems |
| DK180129B1 (en) | 2019-05-31 | 2020-06-02 | Apple Inc. | USER ACTIVITY SHORTCUT SUGGESTIONS |
| US11468890B2 (en) | 2019-06-01 | 2022-10-11 | Apple Inc. | Methods and user interfaces for voice-based control of electronic devices |
| US20210019690A1 (en) * | 2019-07-15 | 2021-01-21 | Service Titan, Inc. | Technician dispatching method and system |
| US11397739B2 (en) | 2020-03-10 | 2022-07-26 | International Business Machines Corporation | Automated information technology services composition |
| US11061543B1 (en) | 2020-05-11 | 2021-07-13 | Apple Inc. | Providing relevant data items based on context |
| US12301635B2 (en) | 2020-05-11 | 2025-05-13 | Apple Inc. | Digital assistant hardware abstraction |
| US11043220B1 (en) | 2020-05-11 | 2021-06-22 | Apple Inc. | Digital assistant hardware abstraction |
| US11490204B2 (en) | 2020-07-20 | 2022-11-01 | Apple Inc. | Multi-device audio adjustment coordination |
| US11438683B2 (en) | 2020-07-21 | 2022-09-06 | Apple Inc. | User identification using headphones |
| US12379770B2 (en) | 2022-09-22 | 2025-08-05 | Apple Inc. | Integrated sensor framework for multi-device communication and interoperability |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020198727A1 (en) * | 2001-06-22 | 2002-12-26 | International Business Machines Corporation | Method and system using an enterprise framework |
| US20070179825A1 (en) * | 2006-01-31 | 2007-08-02 | Alexander Dreiling | Method of configuring a process model |
| US20080270977A1 (en) * | 2007-04-27 | 2008-10-30 | Boomi, Inc. | System and method for automated on-demand creation of a customized software application |
| US20100286992A1 (en) * | 2009-05-08 | 2010-11-11 | Microsoft Corporation | Integration of Third-Party Business Applications with Hosted Multi-Tenant Business Software System |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6601233B1 (en) * | 1999-07-30 | 2003-07-29 | Accenture Llp | Business components framework |
| US6968535B2 (en) * | 2002-03-21 | 2005-11-22 | Sun Microsystems, Inc. | Service mapping method of enterprise application modeling and development for multi-tier service environments |
| US9251492B2 (en) | 2013-12-16 | 2016-02-02 | Nuiku, Inc. | Customized-enterprise-software integration systems and methods |
-
2014
- 2014-12-16 US US14/572,613 patent/US9251492B2/en active Active
-
2016
- 2016-01-11 US US14/993,002 patent/US9940591B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020198727A1 (en) * | 2001-06-22 | 2002-12-26 | International Business Machines Corporation | Method and system using an enterprise framework |
| US20070179825A1 (en) * | 2006-01-31 | 2007-08-02 | Alexander Dreiling | Method of configuring a process model |
| US20080270977A1 (en) * | 2007-04-27 | 2008-10-30 | Boomi, Inc. | System and method for automated on-demand creation of a customized software application |
| US20100286992A1 (en) * | 2009-05-08 | 2010-11-11 | Microsoft Corporation | Integration of Third-Party Business Applications with Hosted Multi-Tenant Business Software System |
Non-Patent Citations (3)
| Title |
|---|
| Francisca Losavio et al., "Modeling EAI", 2002, Computer Science Society, pp. 195-203. * |
| Jinyoul Lee et al., "Enterprise integration with ERP and EAI", Feb. 2003, Magazine Communications of the ACM, vol. 46 Issue 2, pp. 54-60. * |
| Mark S. Fox et al., "Enterprise Modeling", 1998, AI Magazine, vol. 19 No. 3, pp. 109-122. * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9940591B2 (en) | 2013-12-16 | 2018-04-10 | Nortek Security & Control Llc | Customized-enterprise-software integration systems and methods |
Also Published As
| Publication number | Publication date |
|---|---|
| US20160125328A1 (en) | 2016-05-05 |
| US20150170073A1 (en) | 2015-06-18 |
| US9940591B2 (en) | 2018-04-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9940591B2 (en) | Customized-enterprise-software integration systems and methods | |
| US9906599B2 (en) | Ontology based resource provisioning and management for services | |
| US8612927B2 (en) | Bulk access to metadata in a service-oriented business framework | |
| US9870202B2 (en) | Business object model layer interface | |
| US9244697B2 (en) | Stable anchors in user interface to support life cycle extensions | |
| US11687568B2 (en) | Data catalog system for generating synthetic datasets | |
| US10552771B2 (en) | Analyzing data management-related and/or contract management-related operations of an organization | |
| US10785129B2 (en) | Computerized methods and systems for maintaining and modifying cloud computer services | |
| US20130067456A1 (en) | Application configuration framework for enterprise resource planning application installation | |
| US11113664B2 (en) | Data provisioning system and method | |
| US8707398B2 (en) | Metadata container-based user interface flexibility | |
| US11416476B2 (en) | Event ordering based on an identifier for a transaction | |
| US20120089931A1 (en) | Lightweight operation automation based on gui | |
| US9513876B2 (en) | Access operation with dynamic linking and access of data within plural data sources | |
| US11538049B2 (en) | Systems and methods for predicting churn in a multi-tenant system | |
| US11824837B2 (en) | End user creation of trusted integration pathways between different enterprise systems | |
| US20190147088A1 (en) | Reporting and data governance management | |
| JP2025525551A (en) | Method, system, electronic device and computer-readable storage medium for handling data collisions | |
| CN108074074A (en) | Integration device and integration method thereof | |
| CN114489674A (en) | Data verification method and device of dynamic data model | |
| US20250124223A1 (en) | Multi-layered customization framework | |
| US8543597B1 (en) | Generic application persistence database | |
| US20190147082A1 (en) | Reporting and data governance management | |
| US9766909B2 (en) | Sequencing of business object logic extensions to ensure data consistency across layers | |
| US11526895B2 (en) | Method and system for implementing a CRM quote and order capture context service |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: NUIKU, INC., WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BAKER, WILIAM P.;REEL/FRAME:034521/0756 Effective date: 20131216 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATE Free format text: SECURITY INTEREST;ASSIGNOR:NORTEK SECURITY & CONTROL LLC;REEL/FRAME:038945/0312 Effective date: 20160603 Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, NE Free format text: SECURITY INTEREST;ASSIGNOR:NORTEK SECURITY & CONTROL LLC;REEL/FRAME:038944/0968 Effective date: 20160603 |
|
| AS | Assignment |
Owner name: NORTEK SECURITY & CONTROL LLC, CALIFORNIA Free format text: NOTICE OF RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:041326/0725 Effective date: 20160831 Owner name: NORTEK, INC., RHODE ISLAND Free format text: NOTICE OF RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:041326/0725 Effective date: 20160831 |
|
| AS | Assignment |
Owner name: NORTEK, INC., RHODE ISLAND Free format text: NOTICE OF RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION;REEL/FRAME:041346/0124 Effective date: 20160831 Owner name: NORTEK SECURITY & CONTROL LLC, CALIFORNIA Free format text: NOTICE OF RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION;REEL/FRAME:041346/0124 Effective date: 20160831 |
|
| AS | Assignment |
Owner name: NORTEK HOME CONTROL HOLDINGS, LLC, RHODE ISLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NUIKU INC.;REEL/FRAME:043751/0131 Effective date: 20160519 Owner name: NORTEK SECURITY & CONTROL LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NORTEK HOME CONTROL HOLDINGS, LLC;REEL/FRAME:043751/0352 Effective date: 20170724 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2552); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 8 |
|
| AS | Assignment |
Owner name: NICE NORTH AMERICA LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:NORTEK SECURITY & CONTROL LLC;REEL/FRAME:066242/0513 Effective date: 20220830 |