MANAGING CONFIGURATIONS OF MOBILE DEVICES ACROSS MOBILITY CONFIGURATION ENVIRONMENTS

20220330013 · 2022-10-13

Assignee

Inventors

Cpc classification

International classification

Abstract

Embodiments described herein provide for systems and methods for managing configurations of mobile devices. A server may receive an instruction inputted via a graphical control to translate configurations from a first device environment to a second device environment. The server may identify, via an interface, a resource accessible by a first plurality of mobile devices in the first device environment based on the instruction. The server may determine, from the first device environment, a first profile identifying a first plurality of attributes defining a first configuration for the first plurality of mobile devices. The server may generate, using the first profile, a second profile identifying a second plurality of attributes defining a second configuration for a second plurality of mobile devices in the second device environment. The server may transmit, via the interface, the second profile to the second plurality of mobile devices.

Claims

1. A computer-implemented method for managing enterprise device configurations, the method comprising: receiving, by a server, from a client device via a graphical control console an instruction to apply one or more configurations from a first device environment into a second device environment; identifying, by the server, a resource accessible to a first plurality of mobile devices in the first device environment based upon the instruction received via the graphical control console from the client device; determining, by the server, a first profile of the first device environment, the first profile including a first plurality of attributes defining a first configuration for the first plurality of mobile devices in the first device environment associated with the resource; generating, by the server using the first profile, a second profile identifying a second plurality of attributes defining a second configuration for a second plurality of mobile devices in the second device environment, the second plurality of attributes corresponding to the first plurality of attributes; and transmitting, by the server via the interface, the second profile to the second plurality of mobile devices, thereby configuring access to the resource for the second plurality of mobile devices in the second device environment.

2. The method of claim 1, further comprising storing, by the server, a first profile file corresponding to the first profile on a first file location and a second profile file corresponding to the second profile on a second file location, the second file location in a subfolder of the first file location in a file directory to indicate that the second profile is translated from the first profile.

3. The method of claim 1, further comprising: retrieving, by the server, from the first device environment, the first plurality of attributes for a plurality of fields to be included in the first profile; and identifying, by the server, from the second environment, the second plurality of attributes corresponding to the first plurality of attributes to be included in the second profile.

4. The method of claim 1, further comprising transmitting, by the server to the client device, display data for the graphical control console including one or more interface elements to administer configurations of mobile devices, the one or more interface elements including at least one of a first field to identify the resource, a second field to identify the first device environment, or a third field to identify to identify the second environment.

5. The method of claim 1, wherein identifying the resource further comprises identifying, by the server, from the instruction inputted via the graphical control console, a reference identifier corresponding to the resource accessible by the first plurality of mobile devices in the first device environment.

6. The method of claim 1, wherein determining the first profile further comprises creating, by the server, a first profile file in accordance with a template, the first profile file including the first plurality of attributes associated with the first plurality of mobile devices in the first device environment.

7. The method of claim 1, wherein generating the second profile further comprises translating a first profile file corresponding to the first profile to a second profile file corresponding to the second profile in accordance with a template, the second profile file including the second plurality of attributes corresponding to the first plurality of attributes.

8. The method of claim 1, wherein transmitting the second profile further comprises providing, via an invocation of the interface, the second profile to the second plurality of mobile devices in the second device environment.

9. The method of claim 1, wherein the first device environment includes a source environment identified by the instruction inputted via the graphical control console and the second device environment includes a deployment environment identified by the instruction inputted via the graphical control console.

10. The method of claim 1, further comprising receiving, by the server, a second instruction inputted via the graphical control console on the client device to reverse one or more configurations in the second environment, subsequent to transmission of the second profile.

11. A system for managing configurations of mobile devices, comprising: a server having one or more processors coupled with memory, configured to: receive, from a client device, an instruction inputted via a graphical control console to translate one or more configurations from a first device environment to a second device environment; identify, via an interface, a resource accessible by a first plurality of mobile devices in the first device environment based on the instruction inputted via the graphical control console on the client device; determine, from the first device environment, a first profile identifying a first plurality of attributes defining a first configuration for the first plurality of mobile devices in the first device environment associated with the resource; generate, using the first profile, a second profile identifying a second plurality of attributes defining a second configuration for a second plurality of mobile devices in the second device environment, the second plurality of attributes corresponding to the first plurality of attributes; and transmit, via the interface, the second profile to the second plurality of mobile devices, thereby configuring access to the resource for the second plurality of mobile devices in the second device environment.

12. The system of claim 11, wherein the server is further configured to store a first profile file corresponding to the first profile on a first file location and a second profile file corresponding to the second profile on a second file location, the second file location in a subfolder of the first file location in a file directory to indicate that the second profile is translated from the first profile.

13. The system of claim 11, wherein the server is further configured to: retrieve, from the first device environment, the first plurality of attributes for a plurality of fields to be included in the first profile; and identify, from the second device environment, the second plurality of attributes corresponding to the first plurality of attributes to be included in the second profile.

14. The system of claim 11, wherein the server is further configured to transmit, to the client device, display data for the graphical control console including one or more interface elements to administer configurations of mobile devices, the one or more interface elements including at least one of a first field to identify the resource, a second field to identify the first device environment, or a third field to identify to identify the second device environment.

15. The system of claim 11, wherein the server is further configured to identify, from the instruction inputted via the graphical control console, a reference identifier corresponding to the resource accessible by the first plurality of mobile devices in the first device environment.

16. The system of claim 11, wherein the server is further configured to create a first profile file in accordance with a template, the first profile file including the first plurality of attributes associated with the first plurality of mobile devices in the first device environment.

17. The system of claim 11, wherein the server is further configured to translate a first profile file corresponding to the first profile to a second profile file corresponding to the second profile in accordance with a template, the second profile file including the second plurality of attributes corresponding to the first plurality of attributes.

18. The system of claim 11, wherein the server is further configured to provide, via an invocation of the interface, the second profile to the second plurality of mobile devices in the second device environment.

19. The system of claim 11, wherein the first device environment includes a source environment identified by the instruction inputted via the graphical control console and the second device environment includes a deployment environment identified by the instruction inputted via the graphical control console.

20. The system of claim 11, wherein the server is further configured to receive a second instruction inputted via the graphical control console on the client device to reverse one or more configurations in the second environment, subsequent to transmission of the second profile.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

[0021] The present disclosure can be better understood by referring to the following figures. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the disclosure. In the figures, reference numerals designate corresponding parts throughout the different views.

[0022] FIG. 1 depicts a block diagram of a system for managing configurations of mobile devices in accordance with an illustrative embodiment;

[0023] FIG. 2A depicts a block diagram of an attribute aggregation process performed by the system for managing configurations of mobile devices in accordance with an illustrative embodiment;

[0024] FIG. 2B depicts a block diagram of a profile creation process performed by the system for managing configurations of mobile devices in accordance with an illustrative embodiment;

[0025] FIG. 2C depicts a block diagram of a profile translation process performed by the system for managing configurations of mobile devices in accordance with an illustrative embodiment;

[0026] FIG. 2D depicts a block diagram of an attribute aggregation process performed by the system for managing configurations of mobile devices in accordance with an illustrative embodiment;

[0027] FIG. 3 depicts a flow diagram of a method of managing configurations of mobile devices in accordance with an illustrative embodiment; and

[0028] FIGS. 4A-4G each depict a block diagram of a user interface of a graphical control console provided by the system for managing configurations of mobile devices in accordance with an illustrative embodiment.

DETAILED DESCRIPTION

[0029] References will now be made to the illustrative embodiments depicted in the drawings, and specific language will be used here to describe the same. It will nevertheless be understood that no limitation of the scope of the claims or this disclosure is thereby intended. Alterations and further modifications of the inventive features illustrated herein, and additional applications of the principles of the subject matter illustrated herein, which would occur to one skilled in the relevant art and having possession of this disclosure, are to be considered within the scope of the subject matter disclosed herein. Other embodiments may be used and/or other changes may be made without departing from the spirit or scope of the present disclosure. The illustrative embodiments described in the detailed description are not meant to be limiting of the subject matter presented.

[0030] The present disclosure is directed to systems and methods for managing of configurations of mobile devices in an enterprise infrastructure, which may include translating group configuration profiles across different environments. Each environment is defined through a capture-and-deployment software program, which includes software components hosted by a configuration server and/or executed by an administrative device to facilitate the identification of the configurations from one environment to apply to the mobile devices of another environment. The capture-and-deployment software may provide a GUI for managing configurations of mobile devices across different environments. The capture and deployment software may be configured or receive instructions via an application programming interface (API) that provides visibility and access to the configurations and various other aspects of the mobile devices and their respective environments. The functionality and operations of the tool are detailed herein below.

[0031] Referring now to FIG. 1, depicted is block diagram of a system 100 for managing configurations of enterprise assets (e.g., data storage, software applications, computing devices). The system 100 includes a configuration server 105 (sometimes generally referred to as a server), a set of profile servers 110a-n (collectively referred to as profile servers 110), an administrator client device 115, a database 120, and mobile devices 121a-n (collectively referred to as mobile devices 121). The configuration server 105 may include a console handler 125, an attribute aggregator 130, a profile creator 135, a profile translator 140, a configuration manager 145, and an interface 150. The administrator device 115 may include or provide a control console (or platform) 155 (sometimes generally referred herein as a user interface or GUI). Each profile server 110 hosts an environment 160a-n (hereinafter generally referred to as an environment 160) for mobile devices 121. Each environment 160 is a logical collection of mobile devices 121 having a common set of configurations managed by the particular profile server 110. Embodiments may comprise additional or alternative components or omit certain components from those of FIG. 1, and still fall within the scope of this disclosure. In some embodiments, the configuration server 105 and the administrator device 115 may be part of the same device.

[0032] Various hardware and software components of one or more public or private networks may interconnect the various components of the system 100. Non-limiting examples of such networks may include Local Area Network (LAN), Wireless Local Area Network (WLAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), and the Internet. The communication over the network may be performed in accordance with various communication protocols, such as Transmission Control Protocol and Internet Protocol (TCP/IP), User Datagram Protocol (UDP), and IEEE communication protocols.

[0033] The configuration server 105 may be any computing device comprising one or more processors coupled with memory and software, including capture/deployment software, and capable of performing the various processes and tasks described herein. The configuration server 105 may host or be in communication with the profile servers 110, the administrator device 115, and the database 120, among others, where the configuration server 105 receives and transmits data with any of these devices. Although shown as a single computing device, the configuration server 105 may include any number of computing devices. In some cases, multiple computing devices of the configuration server 105 may perform all or sub-parts of the processes and benefits of the configuration server 105. The configuration server 105 may further comprise multiple computing devices operating in a distributed or cloud computing configuration and/or in a mobile device 121 configuration. For example, the functionalities of the components in the configuration server 105, such as the console handler 125, the attribute aggregator 130, the profile creator 135, the profile translator 140, and the configuration manager 145 may be distributed the multiple computing devices constituting the configuration server 105.

[0034] Each profile server 110 may be any computing device comprising one or more processors coupled with memory and software, and capable of performing the various processes and tasks described herein. The profile server 110 may host or be in communication with the configuration server 105, the administrator device 115, and the database 120, among others, and may receive and transmit data with any of these. Although shown as a single computing device, each profile server 110 may include any number of computing devices. Each profile server 110 may initiate, establish, and maintain at least one environment 160 (sometimes referred herein as a configuration environment) including one or more mobile devices 121 in the environment 160. In some embodiments, a single profile server 110 may include multiple environments 160. Conversely, in some embodiments, a single environment 160 may be supported by multiple profile servers 110.

[0035] The administrator device 115 (sometimes referred herein as a client device) may be any computing device comprising one or more processors and software, and capable of performing the various processes and tasks described herein. The administrator device 115 may host or be in communication with the configuration server 105, the profile servers 110, and the database 120, among others, and may receive and transmit data with any of these. Although shown as a single device, the administrator device 115 may include any number of computing devices.

[0036] The configuration server 105 may be configured with or include the interface 150 for communications between software and hardware components of the system 100 (e.g., administrator device 115, configuration server 150, profile servers 110). The interface 150 comprises machine-readable code, such as an API, configured to validate and translate various instructions and data, or otherwise facilitates communications, among the configuration server 105, the profile servers 110, the administrator device 115, and the database 120. The interface 150 may define function calls (e.g., in the form of requests and responses) for invoking and instructing devices to perform certain operations, where the function calls could be communicated between the administrator device 115 and one or more of the profile servers 110 via the configuration server 105. In some embodiments, the interface 150 may be a web API defining function calls to be exchanged.

[0037] In addition, the configuration server 105 (e.g., the console handler 125) generates GUI data for the control console 155 GUI displayed at the administrator device 115. The control console 155 may be a GUI that receives user inputs of various types, allowing administrators to input instructions, commands, and any other types of information into the administrator device 115 and to otherwise operate the configuration software. The interface 150 ingests (e.g., receives, translates) the user inputs received via the control console 155 and provides the information to the profile servers 110 and/or the configuration server 105. Examples of the control console 155 provided by the configuration server 105 are depicted in FIGS. 4A-G. In one example, the console handler is webserver, and the control console is a website with one or more interactive webpages.

[0038] Referring now to FIG. 2A, depicted is a block diagram of an attribute aggregation process 200 for managing configurations of mobile devices 121. As illustrated, the administrator device 115 may generate a configuration instruction 205 using inputs received via the control console 155. The configuration instruction 205 may include information for applying a configuration of a set of mobile devices 121a of a source environment 160a to a set of mobile devices 121b of a target environment 160b. The configuration instruction 205 may identify or include a resource identifier 210a, a source identifier 210b, and a target identifier 210c. The resource identifiers 210a (sometimes herein referred to as a delivery number) may reference or identify a resource 215 with which a configuration of the set of mobile devices 121a of the source environment 160a is used to apply to the set of mobile devices 121b of the target environment 160b. The resource 215 may correspond to any enterprise asset, access rights, resource, process, application, or data. The source identifier 210bmay reference or identify the source environment 160a or the set of mobile devices 121a of the source environment 160aThe target identifier 210cmay reference or identify the target environment 160bor the set of mobile devices 121b of the target environment 160b. In some embodiments, the source environment 160a may be a test, sandbox, or a quality control environment to instrument or pilot a particular configuration for mobile devices 121a, while the target environment 160bmay be a deployment environment (sometime referred to as a production environment) in which to roll out the configuration after successful and approved testing, development, and quality assurance.

[0039] The configuration server 105 executes machine-readable code for the console handler 125 that receives input and provides output to be displayed via the control console 155 GUI. The console handler 125 generates and receives various types of input and output data, to and from the control console 155 software executed or accessed by the administrator device 115. The control console 155 GUI may include input fields for the resource identifier 210a, the source identifier 210b, and/or the target identifier 210c, among others. Using the control console 155, the user of the administrator device 115 inputs the resource identifier 210a, the source identifier 210b, and the target identifier 210c. Upon entry into the fields of the control console 155, the administrator device 115 sends, transmits, or provides the configuration instruction 205 to the configuration server 105. In turn, the control handler 125 software executed by the configuration server 105 retrieves, identifies, or otherwise receives the configuration instruction 205 from the administrator device 115. The console handler 125 parses the data of the configuration instruction 205 to extract or identify the resource identifier 210a, the source identifier 210b, and the target identifier 210c.

[0040] The configuration server 105 executes machine-readable code for the attribute aggregator 130 that collects or aggregates various configurations of mobile devices 121 in various environments 160. By parsing of the configuration instruction 205, the attribute aggregator 130 determines at least one resource 215 corresponding to the resource identifier 210a, the source environment 160a corresponding to the source identifier 210b, and the mobile devices 121a of the source environment 160a having access to the identified resource 215 (as indicated by the resource identifier 210a). In addition, the attribute aggregator 130 determines a set of mobile devices 121b in the target environment 160a indicated by the target identifier 210c.

[0041] In operation, the attribute aggregator 130 may send, provide, or otherwise generate a query 220 for a set of configuration attributes 225a-n (hereinafter generally referred to as attributes 225) employed by the set of mobile devices 121a of the source environment 160a. The attribute aggregator 130 then sends the query 220 to the mobile devices 121a, the profile server 110a associated with the mobile devices 121a, or to the database 120, thereby determining the set of attributes 225 employed in the source environment 160a based upon the results of the query 220. The attribute aggregator 130 invokes one or more functions of the interface 150 to generate and/or send the query 220 to the various devices. In some embodiments, the query 220 specifies the type of attributes 225 that are to be retrieved. The set of attributes 225 includes the various configurations for the set of mobile devices 121a in the source environment 160aNon-limiting examples of the attributes 225 for mobile devices 121 may include a group name, an organization group, a user group, an ownership, a platform, a model, an operating system, a software application, among others. The configuration defined by the set of attributes 225 may further include, for example, access rights to an application or application data, network configurations, and security profiles, a user identifier, among others. In some embodiments, the attribute aggregator 130 may retrieve results of the query 220 from the mobile devices 121a. The results may include the set of attributes 225, and may be in the form of a JSON file. In some embodiments, the attribute aggregator 130 may un-package or de-serialize the results to extract the set of attributes 225.

[0042] In addition, the attribute aggregator 130 generates another query 230 for a set of attributes 235a-n (hereinafter generally referred to as attributes 235) employed by the set of mobile devices 121b in the target environment 160b. The attribute aggregator 130 then sends the query 230 to the set of mobile devices 121b , the profile server 110bassociated with the mobile devices 121b , or to the database 120, thereby determining the set of attributes 235 employed in the target environment 160bbased upon the results of the query 230. The attribute aggregator 130 invokes one or more functions of the interface 150 (e.g., API function, GET call, POST call) to generate and/or send the query 230 to the various devices, or otherwise receives the functions (e.g., GET, POST) from the administrator device 115. The set of attributes 235 retrieved from the set of mobile devices 121b in the target environment 160bmay correspond to the set of attributes 225 retrieved from the set of mobile devices 121a in the source environment 160a. In some embodiments, the query 230 may specify the type of attributes 235 for retrieval from the target environment 160bto match the type of attributes 225 retrieved from the source environment 160a. In some embodiments, the attribute aggregator 130 may retrieve results of the query 220 from the mobile devices 121b. The results may include the set of attributes 235 for the mobile devices 121b or the database 120, and may be in the form of a JSON file. In some embodiments, the attribute aggregator 130 may un-package or de-serialize the results to extract the set of attributes 235.

[0043] Referring now to FIG. 2B, depicted is a block diagram of a profile creation process 240 for managing configurations of mobile devices 121. The configuration server 105 executes the profile creator 135 programming, which creates or captures groups of mobile devices 121 having common configuration attributes 225 by generating a data record (e.g., JSON file) in the database 120 containing configuration information for such groups. As illustrated, the profile creator 135 generates or determines a profile 245a (sometimes referred herein as a profile) for the source environment 160a using the set of attributes 225 retrieved via the interface 150. The profile 245a may include or identify the set of attributes 225 identified from the set of mobile devices 121a of the source environment 160aThe profile 245a may also identify, specify, or otherwise define the configuration for the set of mobile devices 121a in the source environment 160a with respect to the resource 215. In some embodiments, the profile creator 135 may generate the profile 245a in accordance with the template 250. The template 250 may specify a structure or syntax defining the arrangement of the set of attributes 225 for the profile 245a.

[0044] In some embodiments, the profile creator 135 generates a file corresponding to the profile 245a in accordance with the template 250. As with the profile 245a, the file includes or indicates the set of attributes 225 to define the configuration for the set of mobile devices 121a in the source environment 160a with respect to the resource 215. The template 250 may specify a structure or syntax defining the arrangement of the set of attributes 225 in the file corresponding to the profile 245a. For example, the template 250 may be a file defining field-value pairs, with the values to be filled in using the set of attributes 225 retrieved from the source environment 160aIn some embodiments, the template 250 may be in the form of a JSON file. In creating, the profile creator 135 may parse through the template 250. For each field in the template 250, the profile creator 135 may assign a corresponding value from the set of attributes 225. Upon creation using the template 250, the profile creator 135 may store and maintain the file on the database 120 at a file location 255a. The file location 255a may identify or indicate that the file corresponding to the profile 245a is generated from the source environment 160a and is to be used to generate a profile for the target environment 160b.

[0045] Referring now to FIG. 2C, depicted is a block diagram of a profile translation process 260 for managing configurations of mobile devices 121. As illustrated, the configuration server 105 executes the profile translator 140 programming that determines or otherwise generates another profile 245b (sometimes herein referred to as a profile) for the target environment 160b. The profile translator 140 generates the profile 245b using the profile 245a determined for the source environment 160a and the set of attributes 235 retrieved from the set of mobile devices 121b of the target environment 160b. As with the profile 245a for the source environment 160a, the profile 245b includes the set of attributes 235 identified from the set of mobile devices 121b of the target environment 160b. The profile 245b may also identify, specify, or otherwise define the configuration for the set of mobile devices 121b in the target environment 160bwith respect to the resource 265, where the resource 265 may be a type of resource, the same resource, or an analogous resource as the resource 215 of the source environment 160a but in the target environment 160b. The set of attributes 235 identified from the set of mobile devices 121b of the target environment 160bmay be the same types of attributes as the set of attributes 225 for the set of mobile devices 121a of the source environment 160a.

[0046] In generating the profile 245b, the profile translator 140 may replace or substitute the set of attributes 225 identified in the profile 245a for the source environment 160a with the set of attributes 235 identified from the target environment 160b. The replacement or substitution may be in accordance with the template 250. Using the template 250, the profile translator 140 may identify each attribute 225 in the profile 245a and replace with the value from the corresponding attribute 235 from the target environment 160b. In some embodiments, the profile translator 140 may translate the file corresponding to the profile 245a in accordance with the template 250 to create a file corresponding to the profile 245b. Using the template 250, the profile translator 140 may identify the field-value pair for each attribute 225 and may replace with the value from the corresponding attribute 235. Upon translation, the profile translator 140 may store and maintain the file on the database 120 at a file location 255b. The file location 255b may identify or indicate that the file corresponding to the target environment 160bis generated from the file corresponding to the source environment 160aFor example, the file location 255b may be in a sub folder of the file location 255a to indicate as such. The database 120 (and the files for the group profiles) may be available for subsequent access to manage the configuration of mobile devices 121 across the different environments 160.

[0047] Referring now to FIG. 2D, depicted is a block diagram of an attribute aggregation process 270 performed by the system 100 for managing configurations of mobile devices 121. The configuration server 105 receives a deployment instruction to perform a process to deploy changes to configurations using the API (sometimes referred to as a deploy-change API process). As illustrated, the administrator device 115 may generate the deployment instruction 275 using inputs received via the control console 155. The deployment instruction 275 may include information for applying the configuration of the set of mobile devices 121a of the source environment 160a to the set of mobile devices 121b of the target environment 160b. As with the configuration instruction 205, the deployment instruction 275 may identify or include a resource identifier 210a, a source identifier 210b, and a target identifier 210c. In some embodiments, the deployment instruction 275 may identify the profile 245b or the corresponding file maintained on the database 120. In some embodiments, the administrator device 115 may forego a deployment instruction 275 separate from the configuration instruction 205 for application of the configuration.

[0048] The console handler 125 hosts, supports, and provides operational instructions for the control console 155 presented at the administrator device 115, where the control console 155 comprises software programming for generating an interactive GUI (according to the console handler 125), receiving user inputs via the GUI, and forwarding the user inputs to the console handler 125. The control console 155 GUI includes, for example, input fields for the resource identifier 210a, the source identifier 210b, the target identifier 210c, and/or the profile 245b among others for generating the deployment instruction 275. Using the control console 155, a user of the administrator device 115 may input the resource identifier 210a, the source identifier 210b, and the target identifier 210c. Upon entry into the fields of the control console 155, the administrator device 115 may send, transmit, or provide the deployment instruction 275 to the configuration server 105. In turn, the control handler 125 receives the deployment instruction 275 from the administrator device 115 via the control console 155. The console handler 125 may parse the deployment instruction 275 to extract or identify the content therein.

[0049] The configuration manager 145 executed by the configuration server 105 performs the process of deploying the changes to the configuration of various mobile devices 121, for example, in accordance with the deployment instruction 275. In operation, the configuration manager 145 may transmits the profile 245b to the set of mobile devices 121b to configure the accessing of the resource 265 in the target environment 160b. In some embodiments, the transmission of the profile 245b may be in response to receipt of the deployment instruction 275. In some embodiments, the transmission of the profile 245b may be in continuation from the receipt of the configuration instruction 205. The configuration manager 145 determines the set of mobile devices 121b that the configuration manager 145 will transmit the profile 245b to, based upon the target identifier 210cof the configuration instruction 205. The configuration manager 145 sends a request to the set of mobile devices 121b , in accordance with the interface 150 (e.g., HTTP PUT API call), to push the profile 245b to the set of mobile devices 121b of the target environment 160b. In some embodiments, the configuration manager 145 may transmit the file corresponding to the profile 245b from the database 120 to the set of mobile devices 121b of the target environment 160b.

[0050] Upon transmission, the profile server ll0bapplies the configuration as specified by the profile 245b. In applying the profile 245b, the profile server 110bmay modify the configuration of each identified mobile devices 121b in the target environment 160b. By modifying the configuration, the profile server 110bmay change the access of the resource 265 by the set of mobile devices 121b in the target environment 160b. For example, the access rights to an application or the security profiles may be changed as a result of the profile 245b. As the profile 245b is generated by translating the profile 245a, the configuration may be the same or analogous as the set of mobile devices 121a in the source environment 160a had with the same type of resource in the source environment 160a. In some embodiments, the console handler 125 may send an output 280 to the control console 155 to indicate the completion of the application of the profile 245b. Using the output 280, the administrator device 115 may indicate the results of the application of the profile 245b to the target environment 160b.

[0051] In some embodiments, the administrator device 115 may generate a rollback instruction using inputs received via the control console 155. The rollback instruction may include information for reversing the configuration of the set of mobile devices 121a of the source environment 160a that was applied to the set of mobile devices 121b of the target environment 160b. In some embodiments, the rollback instruction may identify the profile 245b or the corresponding file maintained on the database 120. The console handler 125 may have provided the control console 155 to the administrator device 115. The control console 155 may include one or more fields among others for generating the rollback instruction. Upon entry into the fields of the control console 155, the administrator device 115 may send, transmit, or provide the rollback instruction to the configuration server 105. In turn, the control handler 125 may retrieve, identify, or otherwise receive the rollback instruction from the administrator device 115. The console handler 125 may parse the rollback instruction to extract or identify the content therein.

[0052] With the parsing, the configuration manager 145 may send, provide, or otherwise transmit an indication to reverse the configuration specified by the profile 245b to the set of mobile devices 121b to reconfigure the accessing of the resource 265 in the target environment 160b. In some embodiments, the configuration manager 145 may send the profile 245b with the indication of reversal. Upon transmission, the profile server 110bmay modify the configuration of each identified mobile devices 121b in the target environment 160bto revert to the previous configuration.

[0053] Configured with the interface 150, the configuration server 105 may access the attributes 225 and configurations of the individual mobile devices 121 across different environments 160 and profile servers 110. By invoking or executing functions of the interface 150, the configuration server 105 may allow the quick and efficiently capture or aggregate the information from the source environment 160a for generating the profile 245a describing the configuration of the mobile devices 121a. Furthermore, the configuration server 105 may automatically translate the profile 245a to create the profile 245b for the mobile devices 121b of the target environment 160bto apply the configurations. In addition, provision of the control console 155 may allow the administrator to observe and manage configurations across the different environments 160. In this manner, the configuration server 105 may reduce the amount of human involvement (by a system administrator of the profile servers 110) when managing the configurations of the mobile devices 121 across the different environments 160. With the reduction of manual involvement, the configuration server 105 may reduce the chance of error. By extension, the configuration server 105 may lessen the likelihood of undesired behavior in the mobile devices 121 resulting from flawed or incorrect configurations, thereby improving the overall functioning of the mobile devices 121 across different environments 160 and profile servers 110.

[0054] FIG. 3 depicts a flow diagram of a method 300 of managing configurations of mobile devices across environments. Embodiments may include additional, fewer, or different operations than those described in the method 300. The method 300 may be performed by a server executing machine-readable software code, though it should be appreciated that the various operations may be performed by one or more computing devices and/or processors.

[0055] At step 305, a server may receive a configuration instruction, which may be received executed according to one or more APIs or HTML-based calls (e.g., GET, POST) accessed by a web-based control console. The configuration instruction may be generated by an administrator device using a control console provided by the server. The control console may include one or more fields to enter for managing configurations of mobile devices across one or more mobility configuration environments. The configuration instruction may include an identifier for a resource, an identifier for a group of mobile devices in a source environment, and an identifier for a group of mobile devices in a target environment. The instructions may be to direct the application of the configurations of the mobile devices in the source environment associated with the resource to the mobile devices in the target environment. As an example, the administrator device (or other device of the system) calls a GET method to query and request a JSON object (representing the object data) to a URL of an API, which instructs the server to query and retrieve the relevant profile object data or files (e.g., JSON files).

[0056] FIG. 4A depicts a block diagram of a user interface 400 for a control console to manage the configurations of mobile devices. To generate the configuration instruction to transmit to the server, the user interface 400 includes an input field for a delivery number to initiate the capture process. The delivery number may correspond a particular configuration from a source environment to be captured and deployed onto another set of mobile devices in a target environment.

[0057] FIG. 4B depicts a block diagram of a user interface 405 for a control console to manage the configurations of mobile devices. To generate the configuration instruction to transmit to the server, the user interface 405 includes an input field for a target identifier corresponding to the target environment with the “smart group” feature. The control console may also provide a command button (e.g., labeled “capture delivery”) to run the capturing of the attributes for the generation of the profile for the target environment. Upon interaction with the command button, the control console provides the target identifier to the server for the generation of the configure instruction.

[0058] FIG. 4C depicts a block diagram of a user interface 410 for a control console to manage the configurations of mobile devices. To generate the configuration instruction to transmit to the server, the user interface 410 includes an input field for a target identifier corresponding to the target environment with the “profile” feature. The control console may also provide a command button (e.g., labeled “capture delivery”) to run the capturing of the attributes for the generation of the profile for the target environment. Upon interaction with the command button, the control console provides the target identifier to the server for the generation of the configure instruction.

[0059] At step 310, the server identifies a resource accessed by a group of mobile devices in a source environment. From the configuration instruction, the server may identify the resource referenced by the resource identifier. The resource may be accessible to the mobile devices in the source environment. The server may identify the mobile devices in the source environment that have access to the resource using the source identifier of the configuration instruction.

[0060] At step 315, the server may determine a profile for the source environment. Upon identification, the server may invoke an API to retrieve attributes from the group of mobile devices of the source environment. The attributes may define a configuration for the group of mobile devices of the source environment associated with the identified resource. With the retrieval, the server may determine the profile for the source environment using the attributes. In some embodiments, the server may write the profile as a file in accordance with a template and store the file on a database.

[0061] At step 320, the server generates a profile for the target environment. The server may generate the profile for the target environment by replacing the attributes in the profile determined for the source environment with the attributes from the target environment. The server may invoke the API to retrieve the attributes from the group of mobile devices in the target environment. In some embodiments, the server may translate the file corresponding to the profile for the source environment in accordance with the template to create a file corresponding to the profile for the target environment. The server may store the file on the database on a location to indicate that the file corresponding to the profile for the target environment is translated from the source environment.

[0062] FIG. 4D depicts a block diagram of a user interface 415 for a control console to manage the configurations of mobile devices. The user interface 415 includes a directory structure in which the final output corresponding to the file for the profile for the target environment is stored. This structure may be dynamically created to reflect the change number as the parent folder. The structure may be then followed by the target environment with subfolder. FIG. 4E depicts a block diagram of a user interface 420 for a control console to manage the configurations of mobile devices. The user interface 420 provides a directory structure in which the final output corresponding to a profile of the mobile devices is stored.

[0063] At step 325, the server transmits the profile to the group of mobile devices in the target environment, executed according to one or more APIs or HTML-based calls (e.g., GET, POST) accessed by the web-based control console. The server invokes the API to provide the profile to the group of mobile devices in the mobile device. In some embodiments, the server may transmit the profile for the target environment upon receipt of a deployment instruction generated using a control sole provided to an administrator device. The control console provided to the administrator device may include one or more fields to enter for managing configurations of mobile devices across one or more mobility configuration environments, including deployment of a configuration from the mobile devices of one environment onto the mobile devices of another environment. Upon receipt from the server, a configuration server or profile server may modify the configurations of the mobile devices of the target environment in accordance with the profile. As an example, the administrator device (or other device of the system) calls a POST method to read and push a JSON object (representing the object data) to a URL of an API, which creates or updates the object on the server side.

[0064] FIG. 4F depicts a block diagram of a user interface 425 for a control console to manage the configurations of mobile devices. The user interface 425 provides an input field for a delivery number to initiate the deployment stage. The delivery number may correspond a particular configuration to be deployed onto the set of mobile devices in the target environment. FIG. 4G depicts a block diagram of a user interface 430 for a control console to manage the configurations of mobile devices. The user interface 430 includes an interactive input field for the target identifier corresponding to the target environment to which to deploy or transmit the profile to apply the configurations to the mobile devices.

[0065] The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

[0066] Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.

[0067] The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware can be designed to implement the systems and methods based on the description herein.

[0068] When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed herein may be embodied in a processor-executable software module which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.

[0069] The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein.

[0070] While various aspects and embodiments have been disclosed, other aspects and embodiments are contemplated. The various aspects and embodiments disclosed are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.