US20170006118A1 - Use and configuration of templates for management of cloud providers - Google Patents
Use and configuration of templates for management of cloud providers Download PDFInfo
- Publication number
- US20170006118A1 US20170006118A1 US15/199,930 US201615199930A US2017006118A1 US 20170006118 A1 US20170006118 A1 US 20170006118A1 US 201615199930 A US201615199930 A US 201615199930A US 2017006118 A1 US2017006118 A1 US 2017006118A1
- Authority
- US
- United States
- Prior art keywords
- user
- users
- group
- model profile
- cloud service
- 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.)
- Abandoned
Links
Images
Classifications
-
- H04L67/16—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Definitions
- the disclosure generally relates to management of data within software as service products. Specifically, the disclosure relates to enhanced management of various software as a service providers and attributes via templates.
- Modern companies and associated IT consulting firms need to manage the software services that the companies provide to employees. This process can involve the provision of a variety of computer services from a variety of vendors to employees of the company. IT consulting firms can be hired by companies to manage the IT environment for a company. The services can often have various differing user interfaces and data formats, which can require a high level of overhead to manage. Different employees can need various access rights to different software services, and those access rights can vary based on for example an employee's role. For example certain employees should be provided different access to software services.
- the recognition of and management of groups of users as opposed to individual users can be challenging.
- Embodiments of the invention address these and other problems, individually and collectively.
- Embodiments can provide a management tool that can apply user settings for various cloud services to a group of users through a model profile or a template.
- model profile and “template” are used interchangeably.
- the template can be generated from scratch or generated based on an existing user profile.
- the template can contain user settings for various cloud services.
- the template can be assigned to the group of users, for example, users having a similar function within an entity.
- the user settings in the template may be applied to the user records associated with the users in the user group.
- rules may be established such that a given template may only be applied to one group of users and a given group of users may only be applied with one template.
- the management tool can be configured to receive changes of user settings in the template. After the changes are received, the updated template can be saved to the database and the changes can be automatically applied to the user records associated with the users in the user group that was assigned to the template.
- Embodiments can provide user interfaces for the aforementioned creation and modification of templates.
- Embodiments can provide aggregation of common software providers, services, users and user types into templates and associated settings privileges, and other attributes.
- FIG. 1 illustrates an exemplary system architecture for managing individual users within an entity to use multiple cloud services in accordance with the disclosure.
- FIG. 2 illustrates processing user information from two cloud services in accordance with one embodiment of the disclosure.
- FIG. 3 illustrates an exemplary common graphical user interface for managing a user for different cloud services through a user profile in accordance with one embodiment.
- FIG. 4 illustrates an exemplary interface that can be implemented to enable an operator to generate a new template.
- FIG. 5 illustrates an exemplary interface that can be implemented to enable an operator to manage a template.
- FIG. 6 illustrates a template can be applied to user records associated with a group of users after the template is saved to the database.
- FIG. 7 illustrates an exemplary method for generating and applying a template to a group of users in accordance with the disclosure.
- FIG. 8 shows examples of subsystems in a computer apparatus implementing various embodiments.
- a template in accordance with the disclosure can be considered a combination of many different user settings for different cloud services that can be applied to multiple users.
- a template can be generated from scratch. It could be generated based on user profile for an existing user. It could also be derived from an existing template. In whole, a template can be used to streamline administration of services that could generally take a person to jump back and forth between services to get it all set each up. Templates allow for time reduction by taking something that could take hours of doing the work and frustration on the end user to be lumped into a single template. Administrators may not need to go through everything for one or more partner.
- embodiments provide a management tool that can be configured to apply user settings for various cloud services to a group of users through assigning a template to the group.
- the user settings for the various cloud services may indicate features activated on the cloud services, groups available on the cloud services, licenses provided by the cloud services, and other information regarding the cloud services.
- the management tool can facilitate an operator to aggregate such user settings into the template, which can correspond to a profile for a function within an entity, such as a company.
- the template may be considered as a model profile, and as used herein, a template may be referred to as a model profile.
- a template for a sales professionals or a template for engineers, management, or other roles within a company can be generated to capture user settings for the different cloud services appropriate for users in those groups.
- users in the corresponding user group can be applied with the template such that the user settings for the various cloud services in the template can be propagated to the user profile for each user in that group.
- the management tool can use templates to propagate user setting changes for the cloud services to groups of users.
- a group of users can be assigned a particular template, and if changes are made to that template, all users that are assigned that template can have corresponding changes made to them.
- Templates can provide many technical advantages including time saving, consistency, reduction of user mistakes and simplicity in user management, and allowing for enforcing security or access policies.
- the management tool can save time making changes or applying template specific rules or policies. By applying changes or policies once to a large group, there is a decreased chance for errors being made.
- Security policies can be implemented across templates to allow for well-defined access control where appropriate.
- FIG. 1 illustrates an exemplary system architecture 100 for managing individual users within an entity to use multiple cloud services in accordance with the disclosure.
- the system architecture 100 may include a server 106 provided by the entity.
- the server 106 may include one or more processors configured to perform web services, processing jobs and/or to perform any other functions.
- the server 106 may be configured to facilitate user management for different cloud services subscribed to by the entity, to enable the users to use the cloud services via the individual client computers 104 , and/or to perform any other functions.
- the server 106 may be operatively coupled to a database 102 , which can contain user profiles associated with the individual users of the entity.
- a user profile associated with a particular user of the entity may comprise information indicating specific cloud services provided by the user.
- one or more features or settings that are available for the individual users, values (defauLt or configured) for those features or settings for the particular user, and/or any other information can be indicated through the user profile.
- the user profile associated with the particular user can be used to facilitate the particular user to use the cloud services available to the particular user as subscribed to by the entity.
- server 106 can be configured to provide virtualization of groups or teams of employees within the entity, and the ability to apply various actions across cloud services to groups or teams of users. For example, different groups or teams within the entity include sales, marketing, engineering, or the like.
- the server 106 can be configured to communicate with cloud servers, such as cloud servers 110 , 120 , 130 shown in this example.
- each of the cloud servers 110 , 120 , 130 may be provided by a cloud service provider for facilitating respective cloud-based services.
- the cloud server 110 may be a server that facilitates a cloud-based email service.
- the cloud server 120 may be a server that facilitates a network storage service.
- the cloud server 130 may be a server that facilitates a cloud-based backup service.
- the server 106 may be configured to communicate with each of the cloud servers 110 , 120 , 130 .
- the communication between the server 106 and the cloud servers may include communication of user information.
- a given cloud server may store user information for those users.
- the email cloud service provider may keep a set of user information for providing the email service to the users in the entity
- the network storage service provider may keep another set of user information for providing network storage service to the users in the entity.
- a template can be an aggregation of specific user settings for different cloud services. For example with Microsoft Office and specifically Office 365, there is Exchange, which is an email system and services like SharePoint or Skype for Business or Yammer, and of the all other offered Office 365 services that Microsoft offers within that umbrella.
- a template can specify which of these services provided by Office 365 are enabled for a particular user group or individual user.
- a template can also expose licenses and groups provided by the cloud service. An example of groups can be found in Office 365, where there are group types such as Security, Distribution, Dynamic Distribution, and Tenant groups.
- a template can also be an aggregation of licenses of cloud services, and groups of cloud services.
- a template can also contain another template.
- the management tool can start a discovery process to discover what licenses and features, and all the users that are licensed and non-licensed under a particular tenant.
- a tenant can be a domain or the customer that is being managed under a particular service. For example, a company using a particular provider could comprise a tenant.
- a template can be used to maintain all licenses and all users under a single umbrella.
- a tenant can also relate to the information a customer has for a particular SaaS provider.
- the server 106 may be configured to engage in a user information discovery process.
- each cloud server such as cloud server 110 , 120 , or 130 , can be contacted to obtain user information pertinent to the users within the entity.
- a command may be fired off during the user information discovery process to obtain user information from cloud server 110 .
- the command may include identification information that identifies the entity for the first cloud service (e.g., an email service), such as a domain name, or a company name associated with the entity.
- the cloud server 110 may then retrieve the requested user information and return it to the server 106 .
- the requested user information may represent all of the user information pertinent to the users within the entity that have been registered with the first cloud service.
- the user information discovery process may be scheduled on the server 106 to run periodically, such as nightly or weekly. In those embodiments, the user information discovery process may start at the same time on those basses. For example, the user information discovery process can be scheduled to start 11 pm every night. During that process, desired cloud servers that provide cloud services to the entity can be contacted and user information can be obtained from the cloud servers. However, this is not intended to be limiting. In some implementations, the user information discovery process can be started manually by an operator of the entity.
- the server 106 may be configured to generate error messages or alerts when the user information discovery process is not successful in obtaining user information from one or more of the cloud servers. For example, in response to server 120 not responding to the user information discovery process, the server 106 can be configured to generate an alert to notify an operator of the entity that server 120 is not responding to the user information request during the discovery process.
- connection requests could also arise when connections to one or more cloud services cannot be established, or where connections to providers are throttled or otherwise limited. If a connection were to fail and the tool did not have a connection to the cloud service at a particular time, the server 106 can be configured to place the connection requests in a queue, this queue could be used to hold those actions until server 106 can communicate with the cloud server.
- the server 106 may be configured to enable an operator of the entity to specify which one or ones of cloud services to be included in the user information discovery process.
- a separate configuration file may be stored on server 106 for each cloud service.
- the configuration file may include information such as which server(s) of the cloud service to contact in a sequence, addresses of those servers, and/or any other server information.
- a user interface may be provided to the operator to enable the operator to select the cloud services to be included in the user information discovery process.
- a set of user information may be maintained by a first cloud service for enabling the particular user to use the first cloud service, and another set of user information may be maintained by a second cloud service for enabling the particular user to use the second cloud service.
- the first set of user information may include a user ID identifying the particular user for the first cloud service
- the second set of user information may include another user ID identifying the particular user for the second service, and the two different user IDs could be very different, even though they identify the same user. Accordingly, processing of the user information obtained from different cloud servers is desired to consolidate or match it to specific users within the entity.
- FIG. 2 illustrates processing user information from two cloud services, cloud services 210 and 220 , to match specific users within an entity in accordance with one embodiment of the disclosure.
- user information 230 may be obtained from cloud service 210
- user information 240 may be obtained from cloud service 220 through the user information discovery process described above.
- the user information 230 may indicate a set of users within the entity are licensed to use cloud service 210 , and may include configuration information indicating settings configured for and/or features activated for those users for using the cloud service 210 .
- the user information 240 may indicate a set of users within the entity are licensed to use cloud service 220 , and may include configuration information indicating setting configured for and features activate for those users to use cloud service 220 .
- the user information 230 and 240 may have some overlapping information 250 , such as the names of the users that are licensed to use both cloud services 210 and 220 .
- the management tool can process the user information from different cloud services to obtain a user profile for an individual user.
- the user profile can provide a view of various user settings for the different cloud services for the individual user.
- the management tool may provide a common graphical user interface for managing the user profile.
- the user profile may comprise settings or attributes for different cloud services that can be used by the individual user associated with the user profile. Changes to the attributes can be received from the common graphical user interface and propagated to corresponding cloud server or servers to effectuate the requested changes on the cloud servers.
- FIG. 3 illustrates an exemplary common graphical user interface 300 for managing a user for different cloud services through a user profile in accordance with one embodiment.
- the interface 300 may be provided by a server 106 described and illustrated herein, and may be presented on a client computer 104 for access by an operator of an entity.
- the entity for which the users are managed by the management tool is “midland transportation”.
- the interface 300 can be configured to present a user profile 302 for a user within midland transportation, named “Arnold Rostein”.
- the user profile 302 can be constructed by the management tool from a corresponding user record stored in the database 102 .
- the user profile 302 may include some common information 308 such as first name 304 and last name 306 of the user, an address of the user, a telephone of the user, an email address of the user, and/or any other common information regarding the user.
- Some of the common information 308 can be used as criteria for matching user information from different cloud services.
- the first name 304 and last name 306 of the user can be used as criteria to match user information from one or more cloud services to specific users within the entity.
- the common information 308 may be obtained from corresponding common fields, such as fields 502 and 504 , from a user record for the user for whom the user profile 302 is constructed, e.g., user Arnold Rostein.
- the user profile 302 may comprise email information 310 for the user. As shown, the user may have a different email address for a different cloud service. These email addresses can be shown in the interface 300 for administering the user.
- the user Arnold Rostein has an email address 310 a for an office 365 service, and another email address 310 b for a network storage service.
- the interface 300 may comprise a section 312 for displaying and configuring various settings for different cloud services for the user.
- the user Arnold Rostein has two cloud services available for him to use i.e., office 365 service 314 , and a backup service 324 .
- license information 320 regarding one or more licenses granted to Arnold Rostein for the office 365 service 314 is displayed in interface 300 , As shown, an E3 license is currently assigned to user Arnold Rostein. As shown, other supported licenses for the office 365 service 314 can be granted to Arnold Rostein through a control 330 such that the operator of the entity does not have to use a tool or interface provided by office 365 service to do that.
- various specific settings 328 for the office 365 service configured for Arnold Rostein can be displayed in the interface 300 . These settings may be grouped under specific features they correspond to. As described above, the values of the settings 328 can be obtained from corresponding cloud service and stored as part of user record for Arnold Rostein. As also shown, the interface 300 can provide user controls to enable an operator of midland transportation to change the settings 328 for Arnold Rostein.
- the interface 300 can include group information 316 indicating one or more groups the user belongs to on a corresponding cloud service.
- the group information 316 may be obtained or synchronized from a corresponding cloud service.
- the user Arnold Rostein belongs to several groups on the office 365 service.
- control 332 can be provided in the interface 300 to enable the operator to add Arnold Rostein to a group on the office 365 service without having to use a tool or interface provided by the office 365 service.
- various other features such as shared mail box 318 , public folders 322 on the office 365 office service, can also be displayed and configured for user Arnold Rostein.
- the various settings for Arnold Rostein for the office 365 service 314 described above can be obtained from corresponding fields in the user record for user Arnold Rostein for the office 365 service.
- Settings for another cloud service can also be displayed and configured in interface 300 for user Arnold Rostein.
- setting 326 may be displayed to show the office 365 service for user Rostein is configured to be on.
- the interface 300 similarly enables the operator of the midland transportation to change the setting 326 for Arnold Rostein without having to use to a tool or interface provided by the backup service 324 .
- the management tool can enable an operator to create a template based on the user profile 302 .
- the operator may identify a particular user profile, for example such as user profile 302 , as a model profile.
- the operator then may be enabled to create a template using the model profile such that the template contains user settings for the different cloud services in the model profile.
- FIG. 3 illustrates one example mechanism for enabling the operator to create the template based on user profile 302 .
- a dropdown menu 334 can be displayed in interface 300 when button 336 is clicked.
- an option for saving user profile 302 as a template can be presented such that once that option is selected, the user profile 302 can be saved as a template.
- FIG. 4 illustrates an exemplary interface 400 that can be implemented to enable an operator to generate a new template 402 .
- a new template can be generated using an existing user profile identified as a model profile by the operator.
- the management tool may be configured to provide the interface 400 to enable the template to generate the new template 402 based on an existing user profile.
- the interface 400 may be presented after the operator requests to save user profile 302 as a template as shown in FIG. 3 .
- a new template can also be generated from scratch by specifying various user settings for different cloud services.
- an input box 414 can be provided in interface 400 so that the operator can give a name to the template 402 .
- the operator may name the template 402 whatever is desired, for example, engineering, marketing, and the like.
- An input box 404 can be provided in interface 400 so that the operator can provide a description for the template 402 .
- the template 402 may comprise one or more sections that group related user settings for different cloud services, such as the “license and group” section 406 shown in FIG. 4 .
- the “license and group” section 406 can contain user settings related to licenses and groups provided by different cloud services. In this example, three exemplary cloud services are shown—i.e. Office 365 408 , skykick backup service 410 , and Dropbox service 412 .
- template 402 can have user settings for license and group for each of the cloud services shown.
- a template can be assigned to a group of users. For example, within a company there might be groups for sales, marketing, engineering, management, and many others. These groups can require different levels of access to the cloud services subscribed to by the company. For instance, users in the sales group may have permissions and licensing provisions for the cloud services different from the users in the engineering group. There can thus be separate templates for engineers, marketing, management, sales, and all other groups within a company. However, this is not necessarily the only case.
- a template can be applied to multiple groups of users. For example, a template of user settings for a specific cloud service, for example Office 365, can be generated and applied to certain groups of users; and another template of user settings for another specific cloud service, for example Dropbox, can be generated and applied to those groups of users.
- rules may be established with respect to how a particular template can be assigned to user groups. For example, a rule can be established such that each template can only be assigned to one group of users, and another rule can be established such that each user group can only be assigned to one template.
- these rules may be enforced by the management tool when an operator assigns a particular template to a group of users. As illustration, when the operator assigns a template to users in a sales group, the management tool can be configured to detennine if that template has been assigned to another group of users and if the sales group has been assigned to another template. Only when the management tool determines neither condition is true, that template may be assigned to the users in the sales group.
- the management tool can provide an interface enabling an operator to manage a particular template for a group of users.
- the interface can be used to turn various services and features on and off in the template. For example, through such an interface, the operator can specify a user that gets a template applied will have access to a cloud service and have a license.
- the tool can have a framework that can be used to apply a template against a group of users.
- FIG. 5 illustrates an exemplary interface 500 that can be implemented to enable an operator to manage a template.
- a template 502 is shown being managed through interface 500 .
- the template 502 is generated from an existing user profile 302 , i.e., the user profile for Arnold Rostein, as shown in FIG. 3 .
- the interface 500 can enable an operator to configure various user settings for different cloud services.
- the template 502 is for users in a sales group within the “Midland Transportation”.
- a button 504 can be provided in the interface 500 to enable an operator to save the template 502 .
- one or more new cloud services can be associated with an existing template, such as template 502 .
- an operator of the entity may request to add the cloud services to the template 502 so that template 502 can have user settings for the new cloud services.
- an interface may be provided for the operator to specify those two cloud services may be added to template 502 .
- the management tool can receive such a request, and associate the new cloud services with the template 502 .
- the management tool in response to such a change in the template 502 , can be configured to locate user records for the users in the user group that has been assigned to the template 502 , assign the new cloud service providers to those user records so that use settings for the new cloud services can be manipulated through those user records.
- one or more existing cloud services can be removed from template 502 .
- an operator of the entity may request to remove those cloud services from template 502 .
- an interface may be provided for the operator to specify those cloud services may be removed from template 502 .
- the management tool in response to such a change in the template 502 , can be configured to locate user records for the users in the user group that has been assigned to the template 502 , and remove those cloud service providers from those user records so that use settings for those cloud services may not be manipulated, through those user records.
- a database such as the database 102 shown in FIG. 1
- a template and a user profile can have syntactically the same structure when it comes to configuration of different licenses, features, and so forth.
- user data e.g., a user record
- templates may be stored separately.
- a user record table can be stored in the database 102
- the user record table can comprise individual user records.
- Each of the user records may comprise cloud service configurations for different cloud services for an in individual user associated with the user record.
- a separate template table can be stored in the database 102 .
- the template table can comprise template records.
- Each template record can represent a specific template, for example, sales, engineering, HR, or any other template.
- the template record can comprise template data that can be mapped to configurations or settings, for example, as shown in FIG. 5 .
- the database can be based on and built using a framework such as the Entity framework and associated EDMX model, which can contain full table descriptions with all the properties on it.
- the database can contain a data object CTemplate, which may represent a highest level of data, and can contain a name of the template, for example marketing, FIR, or similar, and a description of the template.
- a given CTemplate data object can contain multiple fields “CT Provider”.
- a CT Provider can link a corresponding data object contain individual user configurations for a specific cloud service. Thus, data for different cloud services can be specified in a CT Template table.
- a template can be a framework for a group of users.
- a template can be assigned to a group of users, such that the user settings for different cloud services as specified by the template can be applied to user records for the individual users in the group.
- the template can be assigned to the group of users manually by an operator for example through an interface provided by the management tool. For instance, when creating the template through interface 400 , the operator may specify this template is to be assigned to one or more user groups, and once the template is saved by the operator at the end of the creation process, the template can be assigned to the specified group of users automatically. After the newly created template is saved to the database, the user setting in the newly created template can then be automatically applied to the those groups of users.
- one or more rules may be stored for assigning the template. For example, a rule may be established that a given template can only be assigned to one group of users, and another rule can be established such that a given group can only be assigned to one template. Such rules can be enforced when the template is being assigned to a group of users. However, this not intended to be limiting.
- a given template can be assigned to multiple groups of users. In some embodiments, a given group can be assigned to multiple templates.
- user settings for the different cloud services can be individually configured for the users in the group beyond what the template specifies through the management tool described herein. This provides a flexibility to customize a user beyond what the template assigned to user has. For example, as illustration, a user might not have access to a particular provider based on a template assigned for marketing, because access to the provider's services and tools are not needed in the marketing department. Thus, the user does not have access to that particular provider based on the template assigned to the user by virtue of the user being in the marketing group.
- the management tool can be configured to provide the user, access to the provider. Even though the user is part of a marketing group that has limited or no access to a service, the user can have additional functionality and access to services added in. This user includes more elements and access to services from one or more providers than the template that it was created from.
- the user setting changes in the template 502 may be automatically applied to the group of users associated with the template 502 , for example users in the sales group shown in FIG. 5 .
- a number of commands can be generated automatically for applying the template to individual users in the group after the template is saved as part of a template assigning process. Each command can contain one or more instructions to apply one or more user settings in the template to the user records associated with the users in the group.
- FIG. 6 illustrates a template is applied to user records associated with a group of users after the template is saved to the database.
- data in the template 602 can be saved to a corresponding template record 606 in the database 102 .
- a number of commands 604 can also be generated after the template 602 is saved to the database 102 .
- Each command 604 may contain one or more instructions that apply related user settings for a particular cloud service to the user records associated with the users in the group.
- a command containing instructions that apply license settings for cloud service #1 may be generated; another command containing instructions that apply group settings for cloud service #1 may be generated; yet another command containing instructions that apply license settings for cloud service #2 may be generated; still another command containing instructions that apply group settings for cloud service #3 may be generated; and so on.
- the commands 604 can be executed individually against user records 608 stored in the database 102 .
- the settings in the template 602 can be propagated to the individual user records 608 .
- a given user record 608 may already have fields corresponding to the fields in the template 602 .
- the given user record 608 may have one or more fields corresponding to license settings for Office 365, one or more fields corresponding to group settings for Dropbox, and etc.
- Those fields in the user records 608 can be readily updated through commands 604 .
- those fields can be generated and populated in the user record 608 according to the template.
- Errors may arise when the template 602 is applied to the user records 604 .
- the template 602 may contain a user setting indicating a user that is applied with the template 602 may have a E3 license for Office 365.
- the template 602 may be applied to users in a sales group, and there may be 50 such users.
- the entity may only have 40 E3 licenses available for Office 365.
- the management tool can be configured to generate an error message and present the error message to the operator, for example, via an email notification.
- FIG. 7 illustrates an exemplary method 700 for generating and applying a template to a group of users in accordance with the disclosure.
- the method presented in FIG. 7 and described below is intended to be illustrative and non-limiting.
- the particular series of processing steps depicted in FIG. 7 is not intended to be limiting. It is appreciated that the processing steps may be performed in an order different from that depicted in FIG. 7 and that not all the steps depicted in FIG. 7 need be performed.
- the method depicted in flowchart 700 may be implemented in one or more processing devices (e.g., a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information).
- the one or more processing devices may include one or more devices executing some or all of the operations of flowchart 700 in response to instructions stored electronically on an electronic storage medium.
- the one or more processing devices may include one or more devices configured through hardware, firmware, and/or software to be specifically designed for execution of one or more of the operations of flowchart 700 .
- a model profile can be generated based on an existing user profile.
- an interface may be provided to enable an operator to identify an existing user profile for a specific user as a model profile, and save it as a template that can be applied to other users in a specific user group.
- the template may comprise various user settings for different cloud services, for example license, group, storage and/or any other types of user settings for the different cloud services.
- An entity such as a company, may separately maintain different groups of users based on their functions within the entity. For example, the entity may maintain a sales group for sales professionals within the entity.
- the template may comprise a first user setting for a first cloud service, e.g., a type of license for the first cloud service; and a second user setting for a second cloud service, e.g., a group for the second cloud service.
- the template can be generated using interfaces the same as or substantially similar to interfaces 300 and 400 described and illustrated herein.
- the model profile (template generated at 702 can be assigned to a group of users.
- template data and user data can be stored in a database separately.
- a template table can be stored in the database to contain template records, and each template record may be mapped to a template generated at 702 .
- User record table can be stored in the database to contain user records, and each user record may comprise various user settings for different cloud services for a corresponding user.
- a given user record in the database and a given template record may share similar fields, such as license and group configurations for different cloud services.
- the user settings in the template can be applied to user records associated with users in the specific user group assigned to the template.
- a template can be generated for the sales group and applied to the users in the sales group such that each user in the sales group may have the user settings for the different cloud services in the sales template.
- operations involved in step 704 may be the same as or substantially similar to those described in section III above.
- a change of the first user setting and a change of the second user setting in the model profile generated at 702 can be received.
- an interface the same as or substantially similar to the interface 500 described and illustrated herein can be implemented for receiving the aforementioned changes.
- the updated model profile can be saved to the database.
- an interface the same as or substantially similar to the interface 500 described and illustrated herein can provide a control to enable an operator to manually save the aforementioned changes to the database. However, this is not necessarily the only case. In some other implementations, after receiving the aforementioned changes in the template, the template can be automatically saved to the database.
- the changed first and second user settings can be applied to the user records for the group users through the model profile (template) updated at 708 .
- the changes received in the updated template can be automatically applied to the group of users that is assigned to the template.
- commands can be generated to apply the changes received in the template. For example, a command containing an instruction that applies the change of the first user setting to the user records associated with the users in the group can be generated; and another command containing an instruction that applies the change of the second user setting to the user records associated with the user in the group can be generated.
- Those commands can be executed against the user records in the database to propagate the changed user settings to those user records.
- a computer system includes a single computer apparatus, where the subsystems can be the components of the computer apparatus.
- a computer system can include multiple computer apparatuses, each being a subsystem, with internal components.
- I/O controller 71 Peripherals and input/output (I/O) devices, which couple to I/O controller 71 , can be connected to the computer system by any number of means known in the art such as input/output (I/O) port 77 (e.g., USB, FireWire®).
- I/O port 77 or external interface 81 e.g. Ethernet, etc.
- I/O port 77 or external interface 81 can be used to connect computer system 10 to a wide area network such as the Internet, a mouse input device, or a scanner.
- system bus 75 allows the central processor 73 to communicate with each subsystem and to control the execution of instructions from system memory 72 or the storage device s) 79 (e.g., a fixed disk, such as a hard drive or optical disk), as well as the exchange of information between subsystems.
- system memory 72 and/or the storage device(s) 79 may embody a computer readable medium. Any of the data mentioned herein can be output from one component to another component and can be output to the user.
- a computer system can include a plurality of the same components or subsystems, e.g., connected together by external interface 81 or by an internal interface.
- computer systems, subsystem, or apparatuses can communicate over a network.
- one computer can be considered a client and another computer a server, where each can be part of a same computer system.
- a client and a server can each include multiple systems, subsystems, or components.
- any of the embodiments of the present invention can be implemented in the form of control logic using hardware e.g. an application specific integrated circuit or field programmable gate array) and/or using computer software with a generally programmable processor in a modular or integrated manner.
- a processor includes a single-core processor, multi-core processor on a same integrated chip, or multiple processing units on a single circuit board or networked. Based on the disclosure and teachings provided herein, a person of ordinary skill in the art will know and appreciate other ways and/or methods to implement embodiments of the present invention using hardware and a combination of hardware and software.
- any of the software components or functions described in this application may be implemented as software code to be executed by a processor using any suitable computer language such as, for example, Java, C, C++, Objective-C, Swift, or scripting language such as Perl or Python using, for example, conventional or object-oriented techniques.
- the software code may be stored as a series of instructions or commands on a computer readable medium for storage and/or transmission, suitable media include random access memory (RAM), a read only memory (ROM), a magnetic medium such as a hard-drive or a floppy disk, or an optical medium such as a compact disk (CD) or DVD (digital versatile disk), flash memory, and the like.
- RAM random access memory
- ROM read only memory
- magnetic medium such as a hard-drive or a floppy disk
- an optical medium such as a compact disk (CD) or DVD (digital versatile disk), flash memory, and the like.
- the computer readable medium may be any combination of such storage or transmission devices.
- Such programs may also be encoded and transmitted using carrier signals adapted for transmission via wired, optical, and/or wireless networks conforming to a variety of protocols, including the Internet.
- a computer readable medium may be created using a data signal encoded with such programs.
- Computer readable media encoded with the program code may be packaged with a compatible device or provided separately from other devices (e.g., via Internet download). Any such computer readable medium may reside on or within a single computer product (e.g., a hard drive, a CD, or an entire computer system), and may be present on or within different computer products within a system or network.
- a computer system may include a monitor, printer, or other suitable display for providing any of the results mentioned herein to a user.
- any of the methods described herein may be totally or partially performed with a computer system including one or more processors, which can be configured to perform the steps.
- embodiments can be directed to computer systems configured to perform the steps of any of the methods described herein, potentially with different components performing a respective steps or a respective group of steps,
- steps of methods herein can be performed at a same time or in a different order. Additionally, portions of these steps may be used with portions of other steps from other methods. Also, all or portions of a step may be optional. Additionally, any of the steps of any of the methods can be performed with modules, circuits, or other means for performing these steps.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This application claims benefit to U.S. Provisional Application No. 62/187,118 filed Jun. 30, 2015 entitled USE AND CONFIGURATION OF TEMPLATES FOR MANAGEMENT OF CLOUD PROVIDERS” of which is incorporated by reference herein in its entirety for all purposes.
- This application is related to U.S. Provisional Application No. 62/187,109 filed Jun. 30, 2015, entitled “MANAGING USERS OF CLOUD SERVICES WITH MANAGEMENT TOOL” and U.S. Provisional Application No. 62/187,124 filed Jun. 30, 2015, entitled “SYNCHRONIZING DATA BETWEEN CLOUD MANAGER AND PROVIDERS” each of which is incorporated by reference herein in their entirety for all purposes.
- This application is related to U.S. Non-Provisional application Ser. No. ______, filed Jun. 30, 2016 entitled “MANAGING USERS OF CLOUD SERVICES WITH MANAGEMENT TOOL” (Attorney Docket No. 096662-1003026(000610US)) and U.S. Non-Provisional application Ser. No. ______, filed Jun. 30, 2016, entitled “SYNCHRONIZING DATA BETWEEN CLOUD MANAGER AND PROVIDERS” (Attorney Docket No. 096662-1003028(000810US)) each of which is incorporated by reference herein in their entirety for all purposes.
- The disclosure generally relates to management of data within software as service products. Specifically, the disclosure relates to enhanced management of various software as a service providers and attributes via templates.
- Modern companies and associated IT consulting firms need to manage the software services that the companies provide to employees. This process can involve the provision of a variety of computer services from a variety of vendors to employees of the company. IT consulting firms can be hired by companies to manage the IT environment for a company. The services can often have various differing user interfaces and data formats, which can require a high level of overhead to manage. Different employees can need various access rights to different software services, and those access rights can vary based on for example an employee's role. For example certain employees should be provided different access to software services. However, the recognition of and management of groups of users as opposed to individual users can be challenging.
- Embodiments of the invention address these and other problems, individually and collectively.
- Embodiments can provide a management tool that can apply user settings for various cloud services to a group of users through a model profile or a template. As used herein, the terms “model profile” and “template” are used interchangeably. The template can be generated from scratch or generated based on an existing user profile. The template can contain user settings for various cloud services. After the template is generated and saved, the template can be assigned to the group of users, for example, users having a similar function within an entity. Once assigned to the group of users, the user settings in the template may be applied to the user records associated with the users in the user group. In some implementations, rules may be established such that a given template may only be applied to one group of users and a given group of users may only be applied with one template.
- The management tool can be configured to receive changes of user settings in the template. After the changes are received, the updated template can be saved to the database and the changes can be automatically applied to the user records associated with the users in the user group that was assigned to the template.
- Embodiments can provide user interfaces for the aforementioned creation and modification of templates.
- Embodiments can provide aggregation of common software providers, services, users and user types into templates and associated settings privileges, and other attributes.
- Other embodiments are directed to systems, portable consumer devices, and computer readable media associated with methods described herein.
- A better understanding of the nature and advantages of embodiments of the present invention may be gained with reference to the following detailed description and the accompanying drawings.
-
FIG. 1 illustrates an exemplary system architecture for managing individual users within an entity to use multiple cloud services in accordance with the disclosure. -
FIG. 2 illustrates processing user information from two cloud services in accordance with one embodiment of the disclosure. -
FIG. 3 illustrates an exemplary common graphical user interface for managing a user for different cloud services through a user profile in accordance with one embodiment. -
FIG. 4 illustrates an exemplary interface that can be implemented to enable an operator to generate a new template. -
FIG. 5 illustrates an exemplary interface that can be implemented to enable an operator to manage a template. -
FIG. 6 illustrates a template can be applied to user records associated with a group of users after the template is saved to the database. -
FIG. 7 illustrates an exemplary method for generating and applying a template to a group of users in accordance with the disclosure. -
FIG. 8 shows examples of subsystems in a computer apparatus implementing various embodiments. - A template in accordance with the disclosure can be considered a combination of many different user settings for different cloud services that can be applied to multiple users. A template can be generated from scratch. It could be generated based on user profile for an existing user. It could also be derived from an existing template. In whole, a template can be used to streamline administration of services that could generally take a person to jump back and forth between services to get it all set each up. Templates allow for time reduction by taking something that could take hours of doing the work and frustration on the end user to be lumped into a single template. Administrators may not need to go through everything for one or more partner.
- In accordance with the disclosure, embodiments provide a management tool that can be configured to apply user settings for various cloud services to a group of users through assigning a template to the group. The user settings for the various cloud services may indicate features activated on the cloud services, groups available on the cloud services, licenses provided by the cloud services, and other information regarding the cloud services. The management tool can facilitate an operator to aggregate such user settings into the template, which can correspond to a profile for a function within an entity, such as a company. In this sense, the template may be considered as a model profile, and as used herein, a template may be referred to as a model profile. For example, a template for a sales professionals or a template for engineers, management, or other roles within a company can be generated to capture user settings for the different cloud services appropriate for users in those groups. After a template is created, users in the corresponding user group can be applied with the template such that the user settings for the various cloud services in the template can be propagated to the user profile for each user in that group.
- Thus, the management tool can use templates to propagate user setting changes for the cloud services to groups of users. A group of users can be assigned a particular template, and if changes are made to that template, all users that are assigned that template can have corresponding changes made to them. Templates can provide many technical advantages including time saving, consistency, reduction of user mistakes and simplicity in user management, and allowing for enforcing security or access policies. By having changes or policies applied to templates, the management tool can save time making changes or applying template specific rules or policies. By applying changes or policies once to a large group, there is a decreased chance for errors being made. Security policies can be implemented across templates to allow for well-defined access control where appropriate.
-
FIG. 1 illustrates anexemplary system architecture 100 for managing individual users within an entity to use multiple cloud services in accordance with the disclosure. As shown, thesystem architecture 100 may include aserver 106 provided by the entity. In certain implementations, theserver 106 may include one or more processors configured to perform web services, processing jobs and/or to perform any other functions. Theserver 106 may be configured to facilitate user management for different cloud services subscribed to by the entity, to enable the users to use the cloud services via the individual client computers 104, and/or to perform any other functions. As shown, theserver 106 may be operatively coupled to adatabase 102, which can contain user profiles associated with the individual users of the entity. A user profile associated with a particular user of the entity may comprise information indicating specific cloud services provided by the user. For each of the specific cloud services, one or more features or settings that are available for the individual users, values (defauLt or configured) for those features or settings for the particular user, and/or any other information can be indicated through the user profile. As will be described below, the user profile associated with the particular user can be used to facilitate the particular user to use the cloud services available to the particular user as subscribed to by the entity. - In some embodiments,
server 106 can be configured to provide virtualization of groups or teams of employees within the entity, and the ability to apply various actions across cloud services to groups or teams of users. For example, different groups or teams within the entity include sales, marketing, engineering, or the like. - The
server 106 can be configured to communicate with cloud servers, such ascloud servers cloud servers cloud server 110 may be a server that facilitates a cloud-based email service. Thecloud server 120 may be a server that facilitates a network storage service. Thecloud server 130 may be a server that facilitates a cloud-based backup service. As also shown, theserver 106 may be configured to communicate with each of thecloud servers - The communication between the
server 106 and the cloud servers may include communication of user information. For enabling the respective cloud service for the users within the entity, a given cloud server may store user information for those users. For example, as mentioned above, the email cloud service provider may keep a set of user information for providing the email service to the users in the entity, and the network storage service provider may keep another set of user information for providing network storage service to the users in the entity. - A template can be an aggregation of specific user settings for different cloud services. For example with Microsoft Office and specifically
Office 365, there is Exchange, which is an email system and services like SharePoint or Skype for Business or Yammer, and of the all other offeredOffice 365 services that Microsoft offers within that umbrella. A template can specify which of these services provided byOffice 365 are enabled for a particular user group or individual user. A template can also expose licenses and groups provided by the cloud service. An example of groups can be found inOffice 365, where there are group types such as Security, Distribution, Dynamic Distribution, and Tenant groups. A template can also be an aggregation of licenses of cloud services, and groups of cloud services. A template can also contain another template. - The management tool can start a discovery process to discover what licenses and features, and all the users that are licensed and non-licensed under a particular tenant. A tenant can be a domain or the customer that is being managed under a particular service. For example, a company using a particular provider could comprise a tenant. A template can be used to maintain all licenses and all users under a single umbrella. A tenant can also relate to the information a customer has for a particular SaaS provider.
- A. Discovery Process
- For obtaining user configurations, settings, features activated, license information and/or any other user information from different cloud services subscribed to by the entity, the
server 106 may be configured to engage in a user information discovery process. During the user information discovery process, each cloud server, such ascloud server cloud server 110. The command may include identification information that identifies the entity for the first cloud service (e.g., an email service), such as a domain name, or a company name associated with the entity. Thecloud server 110 may then retrieve the requested user information and return it to theserver 106. The requested user information may represent all of the user information pertinent to the users within the entity that have been registered with the first cloud service. - In some embodiments, the user information discovery process may be scheduled on the
server 106 to run periodically, such as nightly or weekly. In those embodiments, the user information discovery process may start at the same time on those basses. For example, the user information discovery process can be scheduled to start 11 pm every night. During that process, desired cloud servers that provide cloud services to the entity can be contacted and user information can be obtained from the cloud servers. However, this is not intended to be limiting. In some implementations, the user information discovery process can be started manually by an operator of the entity. - In some embodiments, the
server 106 may be configured to generate error messages or alerts when the user information discovery process is not successful in obtaining user information from one or more of the cloud servers. For example, in response toserver 120 not responding to the user information discovery process, theserver 106 can be configured to generate an alert to notify an operator of the entity thatserver 120 is not responding to the user information request during the discovery process. - Issues could also arise when connections to one or more cloud services cannot be established, or where connections to providers are throttled or otherwise limited. If a connection were to fail and the tool did not have a connection to the cloud service at a particular time, the
server 106 can be configured to place the connection requests in a queue, this queue could be used to hold those actions untilserver 106 can communicate with the cloud server. - In some embodiments, the
server 106 may be configured to enable an operator of the entity to specify which one or ones of cloud services to be included in the user information discovery process. In those embodiments, a separate configuration file may be stored onserver 106 for each cloud service. The configuration file may include information such as which server(s) of the cloud service to contact in a sequence, addresses of those servers, and/or any other server information. In those embodiments, a user interface may be provided to the operator to enable the operator to select the cloud services to be included in the user information discovery process. - B. Identifying a Model Profile
- Since many cloud service providers operate independently, the user information maintained by them for enabling their respective services are typically not coordinated. That is, for a particular user within the entity, a set of user information may be maintained by a first cloud service for enabling the particular user to use the first cloud service, and another set of user information may be maintained by a second cloud service for enabling the particular user to use the second cloud service. For example, the first set of user information may include a user ID identifying the particular user for the first cloud service, while the second set of user information may include another user ID identifying the particular user for the second service, and the two different user IDs could be very different, even though they identify the same user. Accordingly, processing of the user information obtained from different cloud servers is desired to consolidate or match it to specific users within the entity.
-
FIG. 2 illustrates processing user information from two cloud services,cloud services user information 230 may be obtained fromcloud service 210, anduser information 240 may be obtained fromcloud service 220 through the user information discovery process described above. Theuser information 230 may indicate a set of users within the entity are licensed to usecloud service 210, and may include configuration information indicating settings configured for and/or features activated for those users for using thecloud service 210. Theuser information 240 may indicate a set of users within the entity are licensed to usecloud service 220, and may include configuration information indicating setting configured for and features activate for those users to usecloud service 220. As shown, theuser information information 250, such as the names of the users that are licensed to use bothcloud services - As a part of user information discovery, the management tool can process the user information from different cloud services to obtain a user profile for an individual user. The user profile can provide a view of various user settings for the different cloud services for the individual user. In some embodiments, the management tool may provide a common graphical user interface for managing the user profile. The user profile may comprise settings or attributes for different cloud services that can be used by the individual user associated with the user profile. Changes to the attributes can be received from the common graphical user interface and propagated to corresponding cloud server or servers to effectuate the requested changes on the cloud servers.
-
FIG. 3 illustrates an exemplary commongraphical user interface 300 for managing a user for different cloud services through a user profile in accordance with one embodiment. Theinterface 300 may be provided by aserver 106 described and illustrated herein, and may be presented on a client computer 104 for access by an operator of an entity. In this example, the entity for which the users are managed by the management tool is “midland transportation”. As shown, theinterface 300 can be configured to present auser profile 302 for a user within midland transportation, named “Arnold Rostein”. Theuser profile 302 can be constructed by the management tool from a corresponding user record stored in thedatabase 102. As shown, theuser profile 302 may include somecommon information 308 such asfirst name 304 andlast name 306 of the user, an address of the user, a telephone of the user, an email address of the user, and/or any other common information regarding the user. Some of thecommon information 308 can be used as criteria for matching user information from different cloud services. For example, thefirst name 304 andlast name 306 of the user can be used as criteria to match user information from one or more cloud services to specific users within the entity. Thecommon information 308 may be obtained from corresponding common fields, such asfields user profile 302 is constructed, e.g., user Arnold Rostein. - The
user profile 302 may comprise email information 310 for the user. As shown, the user may have a different email address for a different cloud service. These email addresses can be shown in theinterface 300 for administering the user. In this example, the user Arnold Rostein has anemail address 310 a for anoffice 365 service, and anotheremail address 310 b for a network storage service. - As shown, the
interface 300 may comprise asection 312 for displaying and configuring various settings for different cloud services for the user. In this example, the user Arnold Rostein has two cloud services available for him to use i.e.,office 365service 314, and abackup service 324. In this example, licenseinformation 320 regarding one or more licenses granted to Arnold Rostein for theoffice 365service 314 is displayed ininterface 300, As shown, an E3 license is currently assigned to user Arnold Rostein. As shown, other supported licenses for theoffice 365service 314 can be granted to Arnold Rostein through acontrol 330 such that the operator of the entity does not have to use a tool or interface provided byoffice 365 service to do that. - As shown, various
specific settings 328 for theoffice 365 service configured for Arnold Rostein can be displayed in theinterface 300. These settings may be grouped under specific features they correspond to. As described above, the values of thesettings 328 can be obtained from corresponding cloud service and stored as part of user record for Arnold Rostein. As also shown, theinterface 300 can provide user controls to enable an operator of midland transportation to change thesettings 328 for Arnold Rostein. - As also shown, the
interface 300 can includegroup information 316 indicating one or more groups the user belongs to on a corresponding cloud service. Thegroup information 316 may be obtained or synchronized from a corresponding cloud service. In this example, the user Arnold Rostein belongs to several groups on theoffice 365 service. As shown,control 332 can be provided in theinterface 300 to enable the operator to add Arnold Rostein to a group on theoffice 365 service without having to use a tool or interface provided by theoffice 365 service. As still shown, various other features such as sharedmail box 318,public folders 322 on theoffice 365 office service, can also be displayed and configured for user Arnold Rostein. The various settings for Arnold Rostein for theoffice 365service 314 described above can be obtained from corresponding fields in the user record for user Arnold Rostein for theoffice 365 service. - Settings for another cloud service, such as a
backup service 324, can also be displayed and configured ininterface 300 for user Arnold Rostein. In this example, as shown, setting 326 may be displayed to show theoffice 365 service for user Rostein is configured to be on. Theinterface 300 similarly enables the operator of the midland transportation to change the setting 326 for Arnold Rostein without having to use to a tool or interface provided by thebackup service 324. - In certain embodiments, as in the embodiment shown in
FIG. 3 , the management tool can enable an operator to create a template based on theuser profile 302. In those embodiments, the operator may identify a particular user profile, for example such asuser profile 302, as a model profile. The operator then may be enabled to create a template using the model profile such that the template contains user settings for the different cloud services in the model profile.FIG. 3 illustrates one example mechanism for enabling the operator to create the template based onuser profile 302. As shown, adropdown menu 334 can be displayed ininterface 300 whenbutton 336 is clicked. In thedropdown menu 334, an option for savinguser profile 302 as a template can be presented such that once that option is selected, theuser profile 302 can be saved as a template. - C. Generating a Template
-
FIG. 4 illustrates anexemplary interface 400 that can be implemented to enable an operator to generate anew template 402. As described above, a new template can be generated using an existing user profile identified as a model profile by the operator. As shown, the management tool may be configured to provide theinterface 400 to enable the template to generate thenew template 402 based on an existing user profile. For example, theinterface 400 may be presented after the operator requests to saveuser profile 302 as a template as shown inFIG. 3 . However, this is not necessarily the only case. A new template can also be generated from scratch by specifying various user settings for different cloud services. - As shown, an
input box 414 can be provided ininterface 400 so that the operator can give a name to thetemplate 402. The operator may name thetemplate 402 whatever is desired, for example, engineering, marketing, and the like. Aninput box 404 can be provided ininterface 400 so that the operator can provide a description for thetemplate 402. As still shown, thetemplate 402 may comprise one or more sections that group related user settings for different cloud services, such as the “license and group”section 406 shown inFIG. 4 . The “license and group”section 406 can contain user settings related to licenses and groups provided by different cloud services. In this example, three exemplary cloud services are shown—i.e.Office 365 408,skykick backup service 410, andDropbox service 412. As shown,template 402 can have user settings for license and group for each of the cloud services shown. - As described above, a template can be assigned to a group of users. For example, within a company there might be groups for sales, marketing, engineering, management, and many others. These groups can require different levels of access to the cloud services subscribed to by the company. For instance, users in the sales group may have permissions and licensing provisions for the cloud services different from the users in the engineering group. There can thus be separate templates for engineers, marketing, management, sales, and all other groups within a company. However, this is not necessarily the only case. In some examples, a template can be applied to multiple groups of users. For example, a template of user settings for a specific cloud service, for
example Office 365, can be generated and applied to certain groups of users; and another template of user settings for another specific cloud service, for example Dropbox, can be generated and applied to those groups of users. - In certain embodiments, rules may be established with respect to how a particular template can be assigned to user groups. For example, a rule can be established such that each template can only be assigned to one group of users, and another rule can be established such that each user group can only be assigned to one template. In that example, these rules may be enforced by the management tool when an operator assigns a particular template to a group of users. As illustration, when the operator assigns a template to users in a sales group, the management tool can be configured to detennine if that template has been assigned to another group of users and if the sales group has been assigned to another template. Only when the management tool determines neither condition is true, that template may be assigned to the users in the sales group.
- The management tool can provide an interface enabling an operator to manage a particular template for a group of users. The interface can be used to turn various services and features on and off in the template. For example, through such an interface, the operator can specify a user that gets a template applied will have access to a cloud service and have a license. The tool can have a framework that can be used to apply a template against a group of users.
- A. Managing the Template
-
FIG. 5 illustrates anexemplary interface 500 that can be implemented to enable an operator to manage a template. In this example, atemplate 502 is shown being managed throughinterface 500. Thetemplate 502 is generated from an existinguser profile 302, i.e., the user profile for Arnold Rostein, as shown inFIG. 3 . As shown, like theinterface 300, theinterface 500 can enable an operator to configure various user settings for different cloud services. In this example, thetemplate 502 is for users in a sales group within the “Midland Transportation”. As can be seen, abutton 504 can be provided in theinterface 500 to enable an operator to save thetemplate 502. - In some implementations, one or more new cloud services can be associated with an existing template, such as
template 502. For example, after the entity add two cloud services for use by its users, an operator of the entity may request to add the cloud services to thetemplate 502 so thattemplate 502 can have user settings for the new cloud services. For example, an interface may be provided for the operator to specify those two cloud services may be added totemplate 502. The management tool can receive such a request, and associate the new cloud services with thetemplate 502. In some embodiments, in response to such a change in thetemplate 502, the management tool can be configured to locate user records for the users in the user group that has been assigned to thetemplate 502, assign the new cloud service providers to those user records so that use settings for the new cloud services can be manipulated through those user records. - In some implementations, one or more existing cloud services can be removed from
template 502. For example, after the entity stopped subscription for some existing cloud services, an operator of the entity may request to remove those cloud services fromtemplate 502. For example, an interface may be provided for the operator to specify those cloud services may be removed fromtemplate 502. In some embodiments, in response to such a change in thetemplate 502, the management tool can be configured to locate user records for the users in the user group that has been assigned to thetemplate 502, and remove those cloud service providers from those user records so that use settings for those cloud services may not be manipulated, through those user records. - B. Storing the Template
- In implementations, a database, such as the
database 102 shown inFIG. 1 , can be used to store user data and as well as template data. As described above, a template and a user profile can have syntactically the same structure when it comes to configuration of different licenses, features, and so forth. In the database, user data (e.g., a user record) and templates may be stored separately. For example, a user record table can be stored in thedatabase 102, and the user record table can comprise individual user records. Each of the user records may comprise cloud service configurations for different cloud services for an in individual user associated with the user record. A separate template table can be stored in thedatabase 102. The template table can comprise template records. Each template record can represent a specific template, for example, sales, engineering, HR, or any other template. The template record can comprise template data that can be mapped to configurations or settings, for example, as shown inFIG. 5 . - The database can be based on and built using a framework such as the Entity framework and associated EDMX model, which can contain full table descriptions with all the properties on it. In certain implementations, the database can contain a data object CTemplate, which may represent a highest level of data, and can contain a name of the template, for example marketing, FIR, or similar, and a description of the template. A given CTemplate data object can contain multiple fields “CT Provider”. A CT Provider can link a corresponding data object contain individual user configurations for a specific cloud service. Thus, data for different cloud services can be specified in a CT Template table.
- C. Assigning and Applying the Template
- A template can be a framework for a group of users. As described above, a template can be assigned to a group of users, such that the user settings for different cloud services as specified by the template can be applied to user records for the individual users in the group. In some implementations, the template can be assigned to the group of users manually by an operator for example through an interface provided by the management tool. For instance, when creating the template through
interface 400, the operator may specify this template is to be assigned to one or more user groups, and once the template is saved by the operator at the end of the creation process, the template can be assigned to the specified group of users automatically. After the newly created template is saved to the database, the user setting in the newly created template can then be automatically applied to the those groups of users. - As described above, in certain embodiments, one or more rules may be stored for assigning the template. For example, a rule may be established that a given template can only be assigned to one group of users, and another rule can be established such that a given group can only be assigned to one template. Such rules can be enforced when the template is being assigned to a group of users. However, this not intended to be limiting. In some embodiments, a given template can be assigned to multiple groups of users. In some embodiments, a given group can be assigned to multiple templates.
- It should be understood that user settings for the different cloud services can be individually configured for the users in the group beyond what the template specifies through the management tool described herein. This provides a flexibility to customize a user beyond what the template assigned to user has. For example, as illustration, a user might not have access to a particular provider based on a template assigned for marketing, because access to the provider's services and tools are not needed in the marketing department. Thus, the user does not have access to that particular provider based on the template assigned to the user by virtue of the user being in the marketing group. However, the management tool can be configured to provide the user, access to the provider. Even though the user is part of a marketing group that has limited or no access to a service, the user can have additional functionality and access to services added in. This user includes more elements and access to services from one or more providers than the template that it was created from.
- In certain implementations, after user setting changes are made to
template 502 throughinterface 500 and thetemplate 502 is requested to be saved to the database throughbutton 504, the user setting changes in thetemplate 502 may be automatically applied to the group of users associated with thetemplate 502, for example users in the sales group shown inFIG. 5 . In certain implementations, a number of commands can be generated automatically for applying the template to individual users in the group after the template is saved as part of a template assigning process. Each command can contain one or more instructions to apply one or more user settings in the template to the user records associated with the users in the group. -
FIG. 6 illustrates a template is applied to user records associated with a group of users after the template is saved to the database. As shown, after anindividual template 602 is requested to be saved, for example, throughinterface 500, data in thetemplate 602 can be saved to acorresponding template record 606 in thedatabase 102. Also shown is that a number ofcommands 604 can also be generated after thetemplate 602 is saved to thedatabase 102. Eachcommand 604 may contain one or more instructions that apply related user settings for a particular cloud service to the user records associated with the users in the group. For example, a command containing instructions that apply license settings forcloud service # 1 may be generated; another command containing instructions that apply group settings forcloud service # 1 may be generated; yet another command containing instructions that apply license settings forcloud service # 2 may be generated; still another command containing instructions that apply group settings forcloud service # 3 may be generated; and so on. - As also shown in
FIG. 6 , after thecommands 604 are generated, they can be executed individually againstuser records 608 stored in thedatabase 102. By executing the individual commands 604, the settings in thetemplate 602 can be propagated to theindividual user records 608, As described above, a givenuser record 608 may already have fields corresponding to the fields in thetemplate 602. For example, the givenuser record 608 may have one or more fields corresponding to license settings forOffice 365, one or more fields corresponding to group settings for Dropbox, and etc. Those fields in theuser records 608 can be readily updated throughcommands 604. In situations where one or more fields in the template do not exist in auser record 608, those fields can be generated and populated in theuser record 608 according to the template. - Errors may arise when the
template 602 is applied to the user records 604. For example, as illustration, thetemplate 602 may contain a user setting indicating a user that is applied with thetemplate 602 may have a E3 license forOffice 365. In that example, thetemplate 602 may be applied to users in a sales group, and there may be 50 such users. However, the entity may only have 40 E3 licenses available forOffice 365. In that situation, when applying thetemplate 602 to the group of users, not all of the users in the group can have an E3 license, and thus an error can occur. In some implementations, when encountering such an error, the management tool can be configured to generate an error message and present the error message to the operator, for example, via an email notification. - Having described various structures and components, and a system architecture for generating and applying a template to a group of users in accordance with the disclosure, attention is now directed to a process for the same.
FIG. 7 illustrates anexemplary method 700 for generating and applying a template to a group of users in accordance with the disclosure. The method presented inFIG. 7 and described below is intended to be illustrative and non-limiting. The particular series of processing steps depicted inFIG. 7 is not intended to be limiting. It is appreciated that the processing steps may be performed in an order different from that depicted inFIG. 7 and that not all the steps depicted inFIG. 7 need be performed. - In some embodiments, the method depicted in
flowchart 700 may be implemented in one or more processing devices (e.g., a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information). The one or more processing devices may include one or more devices executing some or all of the operations offlowchart 700 in response to instructions stored electronically on an electronic storage medium. The one or more processing devices may include one or more devices configured through hardware, firmware, and/or software to be specifically designed for execution of one or more of the operations offlowchart 700. - At 702, a model profile (template) can be generated based on an existing user profile. As described in
FIG. 3 , in some embodiments, an interface may be provided to enable an operator to identify an existing user profile for a specific user as a model profile, and save it as a template that can be applied to other users in a specific user group. The template may comprise various user settings for different cloud services, for example license, group, storage and/or any other types of user settings for the different cloud services. An entity, such as a company, may separately maintain different groups of users based on their functions within the entity. For example, the entity may maintain a sales group for sales professionals within the entity. For instance, the template may comprise a first user setting for a first cloud service, e.g., a type of license for the first cloud service; and a second user setting for a second cloud service, e.g., a group for the second cloud service. In some implementations, the template can be generated using interfaces the same as or substantially similar tointerfaces - At 704, the model profile (template generated at 702 can be assigned to a group of users. As described above, template data and user data can be stored in a database separately. For example, a template table can be stored in the database to contain template records, and each template record may be mapped to a template generated at 702. User record table can be stored in the database to contain user records, and each user record may comprise various user settings for different cloud services for a corresponding user. As described above, a given user record in the database and a given template record may share similar fields, such as license and group configurations for different cloud services.
- In some implementations, after a template is saved to the database, the user settings in the template can be applied to user records associated with users in the specific user group assigned to the template. In that example, a template can be generated for the sales group and applied to the users in the sales group such that each user in the sales group may have the user settings for the different cloud services in the sales template. In some implementations, operations involved in step 704 may be the same as or substantially similar to those described in section III above.
- At 706, a change of the first user setting and a change of the second user setting in the model profile generated at 702 can be received. In some implementations, an interface the same as or substantially similar to the
interface 500 described and illustrated herein can be implemented for receiving the aforementioned changes. - At 708, the updated model profile (template) can be saved to the database. In certain implementations, an interface the same as or substantially similar to the
interface 500 described and illustrated herein can provide a control to enable an operator to manually save the aforementioned changes to the database. However, this is not necessarily the only case. In some other implementations, after receiving the aforementioned changes in the template, the template can be automatically saved to the database. - At 710, the changed first and second user settings can be applied to the user records for the group users through the model profile (template) updated at 708. In implementations, after the updated template is saved to the database, the changes received in the updated template can be automatically applied to the group of users that is assigned to the template. In those implementations, commands can be generated to apply the changes received in the template. For example, a command containing an instruction that applies the change of the first user setting to the user records associated with the users in the group can be generated; and another command containing an instruction that applies the change of the second user setting to the user records associated with the user in the group can be generated. Those commands can be executed against the user records in the database to propagate the changed user settings to those user records.
- Any of the computer systems mentioned herein may utilize any suitable number of subsystems. Examples of such subsystems are shown in
FIG. 8 incomputer apparatus 10. In some embodiments, a computer system includes a single computer apparatus, where the subsystems can be the components of the computer apparatus. In other embodiments, a computer system can include multiple computer apparatuses, each being a subsystem, with internal components. - The subsystems shown in
FIG. 8 are interconnected via asystem bus 75. Additional subsystems such as aprinter 74,keyboard 78, storage device(s) 79, monitor 76, which is coupled to displayadapter 82, and others are shown. Peripherals and input/output (I/O) devices, which couple to I/O controller 71, can be connected to the computer system by any number of means known in the art such as input/output (I/O) port 77 (e.g., USB, FireWire®). For example, I/O port 77 or external interface 81 (e.g. Ethernet, etc.) can be used to connectcomputer system 10 to a wide area network such as the Internet, a mouse input device, or a scanner. The interconnection viasystem bus 75 allows thecentral processor 73 to communicate with each subsystem and to control the execution of instructions fromsystem memory 72 or the storage device s) 79 (e.g., a fixed disk, such as a hard drive or optical disk), as well as the exchange of information between subsystems. Thesystem memory 72 and/or the storage device(s) 79 may embody a computer readable medium. Any of the data mentioned herein can be output from one component to another component and can be output to the user. - A computer system can include a plurality of the same components or subsystems, e.g., connected together by
external interface 81 or by an internal interface. In some embodiments, computer systems, subsystem, or apparatuses can communicate over a network. In such instances, one computer can be considered a client and another computer a server, where each can be part of a same computer system. A client and a server can each include multiple systems, subsystems, or components. - It should be understood that any of the embodiments of the present invention can be implemented in the form of control logic using hardware e.g. an application specific integrated circuit or field programmable gate array) and/or using computer software with a generally programmable processor in a modular or integrated manner. As used herein, a processor includes a single-core processor, multi-core processor on a same integrated chip, or multiple processing units on a single circuit board or networked. Based on the disclosure and teachings provided herein, a person of ordinary skill in the art will know and appreciate other ways and/or methods to implement embodiments of the present invention using hardware and a combination of hardware and software.
- Any of the software components or functions described in this application may be implemented as software code to be executed by a processor using any suitable computer language such as, for example, Java, C, C++, Objective-C, Swift, or scripting language such as Perl or Python using, for example, conventional or object-oriented techniques. The software code may be stored as a series of instructions or commands on a computer readable medium for storage and/or transmission, suitable media include random access memory (RAM), a read only memory (ROM), a magnetic medium such as a hard-drive or a floppy disk, or an optical medium such as a compact disk (CD) or DVD (digital versatile disk), flash memory, and the like. The computer readable medium may be any combination of such storage or transmission devices.
- Such programs may also be encoded and transmitted using carrier signals adapted for transmission via wired, optical, and/or wireless networks conforming to a variety of protocols, including the Internet. As such, a computer readable medium according to an embodiment of the present invention may be created using a data signal encoded with such programs. Computer readable media encoded with the program code may be packaged with a compatible device or provided separately from other devices (e.g., via Internet download). Any such computer readable medium may reside on or within a single computer product (e.g., a hard drive, a CD, or an entire computer system), and may be present on or within different computer products within a system or network. A computer system may include a monitor, printer, or other suitable display for providing any of the results mentioned herein to a user.
- Any of the methods described herein may be totally or partially performed with a computer system including one or more processors, which can be configured to perform the steps. Thus, embodiments can be directed to computer systems configured to perform the steps of any of the methods described herein, potentially with different components performing a respective steps or a respective group of steps, Although presented as numbered steps, steps of methods herein can be performed at a same time or in a different order. Additionally, portions of these steps may be used with portions of other steps from other methods. Also, all or portions of a step may be optional. Additionally, any of the steps of any of the methods can be performed with modules, circuits, or other means for performing these steps.
- The specific details of particular embodiments may be combined in any suitable manner without departing from the spirit and scope of embodiments of the invention. However, other embodiments of the invention may be directed to specific embodiments relating to each individual aspect, or specific combinations of these individual aspects.
- The above description of exemplary embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form described, and many modifications and variations are possible in light of the teaching above. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated.
- A recitation of “a”, “an” or “the” is intended to mean “one or more” unless specifically indicated to the contrary. The use of “or” is intended to mean an “inclusive or,” and not an “exclusive or” unless specifically indicated to the contrary.
- All patents, patent applications, publications, and descriptions mentioned herein are incorporated by reference in their entirety for all purposes. None is admitted to be prior art
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/199,930 US20170006118A1 (en) | 2015-06-30 | 2016-06-30 | Use and configuration of templates for management of cloud providers |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562187109P | 2015-06-30 | 2015-06-30 | |
US201562187118P | 2015-06-30 | 2015-06-30 | |
US201562187124P | 2015-06-30 | 2015-06-30 | |
US15/199,930 US20170006118A1 (en) | 2015-06-30 | 2016-06-30 | Use and configuration of templates for management of cloud providers |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170006118A1 true US20170006118A1 (en) | 2017-01-05 |
Family
ID=57683063
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/199,930 Abandoned US20170006118A1 (en) | 2015-06-30 | 2016-06-30 | Use and configuration of templates for management of cloud providers |
US15/199,872 Active 2036-10-02 US10728107B2 (en) | 2015-06-30 | 2016-06-30 | Managing users of cloud services with management tool |
US15/199,932 Active 2037-08-26 US10560342B2 (en) | 2015-06-30 | 2016-06-30 | Synchronizing data between cloud manager and providers |
US16/787,010 Active 2036-07-10 US11483214B2 (en) | 2015-06-30 | 2020-02-10 | Synchronizing data between cloud manager and providers |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/199,872 Active 2036-10-02 US10728107B2 (en) | 2015-06-30 | 2016-06-30 | Managing users of cloud services with management tool |
US15/199,932 Active 2037-08-26 US10560342B2 (en) | 2015-06-30 | 2016-06-30 | Synchronizing data between cloud manager and providers |
US16/787,010 Active 2036-07-10 US11483214B2 (en) | 2015-06-30 | 2020-02-10 | Synchronizing data between cloud manager and providers |
Country Status (1)
Country | Link |
---|---|
US (4) | US20170006118A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170041198A1 (en) * | 2015-08-07 | 2017-02-09 | Hewlett-Packard Development Company, L.P. | Cloud models based on network definition data |
US20180026984A1 (en) * | 2016-07-22 | 2018-01-25 | Box, Inc. | Access authentication for cloud-based shared content |
US20180359317A1 (en) * | 2017-06-13 | 2018-12-13 | Oracle International Corporation | System and method for non-intrusive context correlation across cloud services |
US20190387000A1 (en) * | 2018-06-19 | 2019-12-19 | At&T Intellectual Property I, L.P. | Data and context based role membership system |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170006118A1 (en) | 2015-06-30 | 2017-01-05 | SkyKick, Inc. | Use and configuration of templates for management of cloud providers |
CN105099793B (en) | 2015-09-24 | 2019-02-05 | 华为技术有限公司 | Hot spare method, apparatus and system |
US11074277B1 (en) * | 2017-05-01 | 2021-07-27 | Palantir Technologies Inc. | Secure resolution of canonical entities |
US10657239B2 (en) * | 2017-05-25 | 2020-05-19 | Oracle International Corporation | Limiting access to application features in cloud applications |
US11394681B1 (en) * | 2019-05-31 | 2022-07-19 | United Services Automobile Association (Usaa) | Systems and methods for caching emails for subsequent delivery |
US20210311957A1 (en) * | 2020-04-07 | 2021-10-07 | Snowflake Inc. | Cross-cloud auto ingest |
CN113691599A (en) * | 2021-08-16 | 2021-11-23 | 银清科技有限公司 | Method and device for data synchronization between service instances |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130159476A1 (en) * | 2011-12-15 | 2013-06-20 | Verizon Patent And Licensing Inc. | Method and system for managing device profiles |
US20140108506A1 (en) * | 2012-10-12 | 2014-04-17 | Citrix Systems, Inc. | Orchestration Framework for Connected Devices |
US20140280932A1 (en) * | 2013-03-13 | 2014-09-18 | Meetrix Communication, Inc. | Managing cloud service with community invitations |
US20140317187A1 (en) * | 2013-04-18 | 2014-10-23 | Canon Kabushiki Kaisha | Information processing system, document managing server, document managing method, and storage medium |
US20150039650A1 (en) * | 2013-07-31 | 2015-02-05 | International Business Machines Corporation | Profile-enabled dynamic runtime environment for web application servers |
US20150222723A1 (en) * | 2013-03-15 | 2015-08-06 | Gravitant, Inc | Budget management functionality within a cloud service brokerage platform |
Family Cites Families (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060074727A1 (en) * | 2000-09-07 | 2006-04-06 | Briere Daniel D | Method and apparatus for collection and dissemination of information over a computer network |
US7398238B1 (en) * | 2000-11-13 | 2008-07-08 | Vizor Group, Inc. | System for savings and tax management of gratuity income |
US7921201B2 (en) * | 2006-07-31 | 2011-04-05 | Fisher-Rosemount Systems, Inc. | Distributed user validation and profile management system |
US20130227653A1 (en) * | 2008-11-29 | 2013-08-29 | Yu Yung Choi | System and method for streamlined registration of products over a communication network and for verification and management of information related thereto |
US8448128B2 (en) * | 2008-06-13 | 2013-05-21 | Robert Donaldson | Post-merger integration systems |
US8762233B2 (en) * | 2008-08-01 | 2014-06-24 | Hantz Software, Llc | Single or multi-company business accounting system and method for same including account number maintenance |
US8200634B2 (en) * | 2008-10-08 | 2012-06-12 | Sap Ag | Zero downtime maintenance using a mirror approach |
US20100333116A1 (en) * | 2009-06-30 | 2010-12-30 | Anand Prahlad | Cloud gateway system for managing data storage to cloud storage sites |
US20110047480A1 (en) | 2009-08-21 | 2011-02-24 | Primadesk Inc | System and Method to aggregate users data that is spread all over the internet and show an uniform view in the form the user is most used to |
US9037711B2 (en) * | 2009-12-02 | 2015-05-19 | Metasecure Corporation | Policy directed security-centric model driven architecture to secure client and cloud hosted web service enabled processes |
US8285864B2 (en) | 2009-12-21 | 2012-10-09 | Verizon Patent And Licensing Inc. | Service delivery system using intermediary application management subsystem for managing setup provisioning delivery and updating of services |
US8521758B2 (en) * | 2010-01-15 | 2013-08-27 | Salesforce.Com, Inc. | System and method of matching and merging records |
US8606667B2 (en) | 2010-02-26 | 2013-12-10 | Red Hat, Inc. | Systems and methods for managing a software subscription in a cloud network |
US8769416B2 (en) * | 2010-03-12 | 2014-07-01 | Salesforce.Com, Inc. | Service cloud console |
US20110264541A1 (en) * | 2010-04-23 | 2011-10-27 | Sanof Deen Mohamedsadakathulla | Generation and distribution of user structured web content and advertisement, by creating a database matrix cloud across the internet |
US20110302277A1 (en) * | 2010-06-07 | 2011-12-08 | Salesforce.Com, Inc. | Methods and apparatus for web-based migration of data in a multi-tenant database system |
US8694686B2 (en) | 2010-07-20 | 2014-04-08 | Lg Electronics Inc. | User profile based configuration of user experience environment |
US8380837B2 (en) * | 2010-09-07 | 2013-02-19 | International Business Machines Corporation | Software license management within a cloud computing environment |
US8768875B2 (en) * | 2010-10-29 | 2014-07-01 | Nec Laboratories America, Inc. | Admission control in cloud databases under service level agreements |
US20120215554A1 (en) * | 2011-02-20 | 2012-08-23 | Electronic Drug Information Systems Solutions, Llc | Pharmaceutical data integration & analysis tool |
US9229905B1 (en) * | 2011-04-22 | 2016-01-05 | Angel A. Penilla | Methods and systems for defining vehicle user profiles and managing user profiles via cloud systems and applying learned settings to user profiles |
US8869244B1 (en) * | 2011-05-03 | 2014-10-21 | Symantec Corporation | Techniques for providing role-based access control using dynamic shared accounts |
FR2976379B1 (en) * | 2011-06-08 | 2019-04-26 | Schneider Electric Industries Sas | SYSTEM AND METHOD FOR SHARING DATA STORED IN A DATABASE |
US8775593B2 (en) * | 2011-06-29 | 2014-07-08 | International Business Machines Corporation | Managing organizational computing resources in accordance with computing environment entitlement contracts |
US20130013767A1 (en) * | 2011-07-05 | 2013-01-10 | International Business Machines Corporation | System and method for managing software provided as cloud service |
WO2013003945A1 (en) * | 2011-07-07 | 2013-01-10 | Locationary, Inc. | System and method for providing a content distribution network |
US8615528B2 (en) * | 2011-07-28 | 2013-12-24 | International Business Machines Corporation | Cloud database sharing |
KR101816589B1 (en) | 2011-08-10 | 2018-01-09 | 한국전자통신연구원 | Method of updating software list on software as a service and system for the same |
US8812687B2 (en) | 2011-09-15 | 2014-08-19 | Microsoft Corporation | Managing user state of cloud desktops |
US9497136B1 (en) * | 2011-09-28 | 2016-11-15 | Emc Corporation | Method and system for providing usage metrics to manage utilzation of cloud computing resources |
US8776013B2 (en) * | 2011-10-03 | 2014-07-08 | Resilient Science, Inc. | Flow-optimization system and method for cloud computing |
KR20130046155A (en) | 2011-10-27 | 2013-05-07 | 인텔렉추얼디스커버리 주식회사 | Access control system for cloud computing service |
US8874587B2 (en) * | 2011-11-23 | 2014-10-28 | Nec Laboratories America, Inc. | Tenant placement in multitenant cloud databases with one-to-many data sharing |
US9183230B2 (en) | 2012-01-11 | 2015-11-10 | International Business Machines Corporation | Content analytics system configured to support multiple tenants |
US9026631B2 (en) * | 2012-01-24 | 2015-05-05 | International Business Machines Corporation | Business-to-business social network |
WO2013123097A1 (en) * | 2012-02-13 | 2013-08-22 | SkyKick, Inc. | Migration project automation, e.g., automated selling, planning, migration and configuration of email systems |
US20130290406A1 (en) * | 2012-04-26 | 2013-10-31 | Salesforce.Com, Inc. | Mechanism for providing a cloud platform for facilitating and supporting user-controlled development and management of user products |
US9143400B1 (en) * | 2012-05-01 | 2015-09-22 | Google Inc. | Network gateway configuration |
US9443033B2 (en) * | 2012-05-05 | 2016-09-13 | Blackbaud, Inc. | Systems, methods, and computer program products for data integration and data mapping |
US8700569B1 (en) * | 2012-05-09 | 2014-04-15 | Bertec Corporation | System and method for the merging of databases |
US9043278B1 (en) * | 2012-05-09 | 2015-05-26 | Bertec Corporation | System and method for the merging of databases |
CN103455486B (en) * | 2012-05-28 | 2016-09-28 | 国际商业机器公司 | The method and system of placement database |
US20140013247A1 (en) * | 2012-07-03 | 2014-01-09 | salesforce.com,inc. | Systems and methods for providing a customized user interface for publishing into a feed |
US20140019415A1 (en) * | 2012-07-11 | 2014-01-16 | Nec Laboratories America, Inc. | Method and System for Database Cloud Bursting |
US9882829B2 (en) | 2012-07-31 | 2018-01-30 | Hewlett Packard Enterprise Development Lp | Orchestrating hybrid cloud services |
EP2701064B1 (en) * | 2012-08-24 | 2019-04-10 | Hasso-Plattner-Institut für Softwaresystemtechnik GmbH | Robust tenant placement and migration in database-as-a-service environments |
US9838370B2 (en) | 2012-09-07 | 2017-12-05 | Oracle International Corporation | Business attribute driven sizing algorithms |
EP2709006A1 (en) | 2012-09-14 | 2014-03-19 | Alcatel Lucent | Peripheral interface for residential IaaS |
US20140081903A1 (en) * | 2012-09-17 | 2014-03-20 | Salesforce.Com, Inc. | Methods and systems for displaying and filtering business analytics data stored in the cloud |
US9626637B2 (en) * | 2012-09-18 | 2017-04-18 | Salesforce.Com, Inc. | Method and system for managing business deals |
US20140136233A1 (en) * | 2012-11-14 | 2014-05-15 | William Atkinson | Managing Personal Health Record Information about Doctor-Patient Communication, Care interactions, health metrics ,customer vendor relationship management platforms, and personal health history in a GLOBAL PERSONAL HEALTH RECORD TIMELINE integrated within an (ERP/EMRSE) ENTERPRISE RESOURCE PLANNING ELECTRONIC MEDICAL RECORD SOFTWARE ENVIRONMENT localized medical data ecosystem |
US9282166B2 (en) * | 2012-11-29 | 2016-03-08 | International Business Machines Corporation | Management infrastructure analysis for cloud migration |
US8955080B2 (en) | 2012-12-07 | 2015-02-10 | Sap Se | Managing single sign-ons between different entities |
US9591052B2 (en) * | 2013-02-05 | 2017-03-07 | Apple Inc. | System and method for providing a content distribution network with data quality monitoring and management |
US9129046B2 (en) * | 2013-02-25 | 2015-09-08 | 4medica, Inc. | Systems and methods for managing a master patient index including duplicate record detection |
US10572461B2 (en) * | 2013-02-25 | 2020-02-25 | 4medica, Inc. | Systems and methods for managing a master patient index including duplicate record detection |
US20140279629A1 (en) * | 2013-03-12 | 2014-09-18 | Salesforce.Com, Inc. | System and method for generating an organization profile based on skill information |
US9818127B2 (en) * | 2013-03-15 | 2017-11-14 | International Business Machines Corporation | Implementing comparison of cloud service provider package offerings |
US20170185715A9 (en) * | 2013-03-15 | 2017-06-29 | Douglas K. Smith | Federated Collaborative Medical Records System Utilizing Cloud Computing Network and Methods |
US20140282938A1 (en) * | 2013-03-15 | 2014-09-18 | Adam Moisa | Method and system for integrated cloud storage management |
US9172621B1 (en) * | 2013-04-01 | 2015-10-27 | Amazon Technologies, Inc. | Unified account metadata management |
WO2015002695A1 (en) * | 2013-07-05 | 2015-01-08 | Evernote Corporation | Selective data transformation and access for secure cloud analytics |
US20150067171A1 (en) * | 2013-08-30 | 2015-03-05 | Verizon Patent And Licensing Inc. | Cloud service brokering systems and methods |
US20150142602A1 (en) * | 2013-11-19 | 2015-05-21 | Service Labs, Inc. | Method and system for automated identification and engagement of service providers |
US20150156131A1 (en) * | 2013-12-04 | 2015-06-04 | International Business Machines Corporation | Method and system of geographic migration of workloads between private and public clouds |
US9774582B2 (en) | 2014-02-03 | 2017-09-26 | Exablox Corporation | Private cloud connected device cluster architecture |
US9753703B2 (en) * | 2014-02-04 | 2017-09-05 | Salesforce.Com, Inc. | Generating identifiers for user interface elements of a web page of a web application |
US9600547B2 (en) * | 2014-05-30 | 2017-03-21 | International Business Machines Corporation | System and method of consuming and integrating with rest-based cloud and enterprise services |
US9832190B2 (en) | 2014-06-29 | 2017-11-28 | Microsoft Technology Licensing, Llc | Managing user data for software services |
US9825881B2 (en) * | 2014-09-30 | 2017-11-21 | Sony Interactive Entertainment America Llc | Methods and systems for portably deploying applications on one or more cloud systems |
US10027738B2 (en) * | 2014-10-01 | 2018-07-17 | SkyKick, Inc. | Optimizing data migration processes |
US10210232B2 (en) * | 2014-10-01 | 2019-02-19 | SkyKick, Inc. | Automated staged data migration |
US9495142B2 (en) * | 2014-11-07 | 2016-11-15 | Amazon Technologies, Inc. | Dynamic reconstruction of application state upon application re-launch |
US10152211B2 (en) * | 2014-11-11 | 2018-12-11 | Amazon Technologies, Inc. | Application delivery agents on virtual desktop instances |
US10169341B2 (en) * | 2014-10-17 | 2019-01-01 | Alfresco Software, Inc. | Integration of content and records management systems |
US11244261B2 (en) | 2014-11-11 | 2022-02-08 | Amazon Technologies, Inc. | Catalog service platform for deploying applications and services |
US10225245B2 (en) * | 2014-11-18 | 2019-03-05 | Auth0, Inc. | Identity infrastructure as a service |
US9722873B2 (en) * | 2014-12-04 | 2017-08-01 | Microsoft Technology Licensing, Llc | Zero-downtime, reversible, client-driven service migration |
US9560132B1 (en) * | 2015-01-12 | 2017-01-31 | Intuit Inc. | Method and system for transferring the hosting of financial service to elastic virtual computing resources from a data center and without service interruption |
US9774604B2 (en) * | 2015-01-16 | 2017-09-26 | Zingbox, Ltd. | Private cloud control |
US9984101B2 (en) * | 2015-02-19 | 2018-05-29 | Adobe Systems Incorporated | Database migration of schemas enforced by applications without downtime |
US10747622B2 (en) * | 2015-03-31 | 2020-08-18 | SkyKick, Inc. | Efficient backup, search and restore |
US10592483B2 (en) * | 2015-04-05 | 2020-03-17 | SkyKick, Inc. | State record system for data migration |
US9973572B2 (en) * | 2015-04-14 | 2018-05-15 | SkyKick, Inc. | Server load management for data migration |
US10009351B2 (en) * | 2015-05-22 | 2018-06-26 | Yu Yung Choi | System and method for access and management of physical objects over a communication network related thereto |
US10554758B2 (en) * | 2015-06-15 | 2020-02-04 | Blub0X Security, Inc. | Web-cloud hosted unified physical security system |
US9819669B1 (en) * | 2015-06-25 | 2017-11-14 | Amazon Technologies, Inc. | Identity migration between organizations |
US20170006118A1 (en) | 2015-06-30 | 2017-01-05 | SkyKick, Inc. | Use and configuration of templates for management of cloud providers |
-
2016
- 2016-06-30 US US15/199,930 patent/US20170006118A1/en not_active Abandoned
- 2016-06-30 US US15/199,872 patent/US10728107B2/en active Active
- 2016-06-30 US US15/199,932 patent/US10560342B2/en active Active
-
2020
- 2020-02-10 US US16/787,010 patent/US11483214B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130159476A1 (en) * | 2011-12-15 | 2013-06-20 | Verizon Patent And Licensing Inc. | Method and system for managing device profiles |
US20140108506A1 (en) * | 2012-10-12 | 2014-04-17 | Citrix Systems, Inc. | Orchestration Framework for Connected Devices |
US20140280932A1 (en) * | 2013-03-13 | 2014-09-18 | Meetrix Communication, Inc. | Managing cloud service with community invitations |
US20150222723A1 (en) * | 2013-03-15 | 2015-08-06 | Gravitant, Inc | Budget management functionality within a cloud service brokerage platform |
US20140317187A1 (en) * | 2013-04-18 | 2014-10-23 | Canon Kabushiki Kaisha | Information processing system, document managing server, document managing method, and storage medium |
US20150039650A1 (en) * | 2013-07-31 | 2015-02-05 | International Business Machines Corporation | Profile-enabled dynamic runtime environment for web application servers |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170041198A1 (en) * | 2015-08-07 | 2017-02-09 | Hewlett-Packard Development Company, L.P. | Cloud models based on network definition data |
US9992305B2 (en) * | 2015-08-07 | 2018-06-05 | Hewlett Packard Enterprise Development Lp | Cloud models based on network definition data |
US20180026984A1 (en) * | 2016-07-22 | 2018-01-25 | Box, Inc. | Access authentication for cloud-based shared content |
US10623406B2 (en) * | 2016-07-22 | 2020-04-14 | Box, Inc. | Access authentication for cloud-based shared content |
US20180359317A1 (en) * | 2017-06-13 | 2018-12-13 | Oracle International Corporation | System and method for non-intrusive context correlation across cloud services |
US10873628B2 (en) * | 2017-06-13 | 2020-12-22 | Oracle International Corporation | System and method for non-intrusive context correlation across cloud services |
US20190387000A1 (en) * | 2018-06-19 | 2019-12-19 | At&T Intellectual Property I, L.P. | Data and context based role membership system |
US10887315B2 (en) * | 2018-06-19 | 2021-01-05 | At&T Intellectual Property I, L.P. | Data and context based role membership system |
Also Published As
Publication number | Publication date |
---|---|
US20170006131A1 (en) | 2017-01-05 |
US20170004197A1 (en) | 2017-01-05 |
US20200177472A1 (en) | 2020-06-04 |
US11483214B2 (en) | 2022-10-25 |
US10728107B2 (en) | 2020-07-28 |
US10560342B2 (en) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170006118A1 (en) | Use and configuration of templates for management of cloud providers | |
US10778810B2 (en) | Staging and deployment to multiple service clouds | |
US10037430B2 (en) | System and method for controlling the on and off state of features of business logic at runtime | |
US8468139B1 (en) | Acceleration of cloud-based migration/backup through pre-population | |
US8959482B2 (en) | Enabling multi-tenancy for a commerce server | |
US20180176078A1 (en) | Automated platform provisioning system | |
US9971819B2 (en) | Using cloud processing to integrate ETL into an analytic reporting mechanism | |
US10621003B2 (en) | Workflow handling in a multi-tenant cloud environment | |
US10891386B2 (en) | Dynamically provisioning virtual machines | |
US9984086B2 (en) | Performing actions on objects as a result of applying tags to the objects | |
US20190228177A1 (en) | Hosted application gateway architecture with multi-level security policy and rule promulgations | |
WO2018119589A1 (en) | Account management method and apparatus, and account management system | |
US11470068B2 (en) | System and methods for securely storing data for efficient access by cloud-based computing instances | |
US10104163B1 (en) | Secure transfer of virtualized resources between entities | |
WO2015065454A1 (en) | Aggregating, presenting, and fulfilling a number of catalogs | |
KR20220152222A (en) | Security management of devices | |
US20160191309A1 (en) | Cloud system configuration method, server and device | |
US20160239681A1 (en) | Cloud-based hardware architecture | |
US20180189054A1 (en) | Automated platform re-creation system | |
US11663349B2 (en) | System and method for managing data object creation | |
US9092254B2 (en) | Enabling multi-tenancy for integrated development environment software in virtual environments | |
WO2019173179A1 (en) | Customized application architecture utilizing sparse and base metadata layers | |
US20150100888A1 (en) | Providing a common interface for accessing and presenting component configuration settings | |
US20240281341A1 (en) | Discovery of services in combination with enabling data protection and other workflows | |
US20240256331A1 (en) | Multi-phase provisioning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SKYKICK, INC., WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DENNIS, JOHN;HANDLER, DOUGLAS;RICHMAN, EVAN;AND OTHERS;SIGNING DATES FROM 20161128 TO 20161129;REEL/FRAME:040502/0394 |
|
AS | Assignment |
Owner name: VENTURE LENDING & LEASING VIII, INC., CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:SKYKICK, INC.;REEL/FRAME:041849/0862 Effective date: 20170331 Owner name: VENTURE LENDING & LEASING VII, INC., CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:SKYKICK, INC.;REEL/FRAME:041849/0862 Effective date: 20170331 |
|
AS | Assignment |
Owner name: VENTURE LENDING & LEASING IX, INC., CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:SKYKICK, INC.;REEL/FRAME:048918/0322 Effective date: 20181206 Owner name: VENTURE LENDING & LEASING VIII, INC., CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:SKYKICK, INC.;REEL/FRAME:048918/0322 Effective date: 20181206 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
AS | Assignment |
Owner name: SKYKICK, INC., WASHINGTON Free format text: RELEASE BY SECURED PARTY;ASSIGNORS:VENTURE LENDING & LEASING VIII, INC.;VENTURE LENDING & LEASING IX, INC.;VENTURE LENDING & LEASING VII, INC.;REEL/FRAME:051761/0604 Effective date: 20200130 |
|
AS | Assignment |
Owner name: AVENUE VENTURE OPPORTUNITIES FUND, LP, NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNOR:SKYKICK, INC.;REEL/FRAME:051763/0466 Effective date: 20200130 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: AVENUE VENTURE OPPORTUNITIES FUND, LP, NEW YORK Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SKYKICK, INC.;REEL/FRAME:057374/0965 Effective date: 20210901 |