US20220330013A1 - Managing configurations of mobile devices across mobility configuration environments - Google Patents
Managing configurations of mobile devices across mobility configuration environments Download PDFInfo
- Publication number
- US20220330013A1 US20220330013A1 US17/719,038 US202217719038A US2022330013A1 US 20220330013 A1 US20220330013 A1 US 20220330013A1 US 202217719038 A US202217719038 A US 202217719038A US 2022330013 A1 US2022330013 A1 US 2022330013A1
- Authority
- US
- United States
- Prior art keywords
- profile
- mobile devices
- server
- environment
- attributes
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 17
- 238000007726 management method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000013519 translation Methods 0.000 description 7
- 230000014616 translation Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 5
- 238000004220 aggregation Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/18—Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
-
- 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
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- 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
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- 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
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0843—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
-
- 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
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0846—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on copy from other elements
-
- 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/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
- H04L41/0856—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information by backing up or archiving configuration information
-
- 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/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0859—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions
- H04L41/0863—Retrieval of network configuration; Tracking network configuration history by keeping history of different configuration generations or by rolling back to previous configuration versions by rolling back to previous configuration versions
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
Definitions
- This application generally relates to systems and methods for managing mobile devices.
- this application relates to managing configurations of mobile devices using translations of profiles across environments.
- Facilitating a remote and mobile digital workforce is an important aspect of modern enterprise infrastructures, which includes enabling mobile devices (e.g., laptops, tablets, mobile phones) to securely access enterprise data and enterprise applications as though users were physically located on-premises and/or physically wired into network components of the enterprise infrastructure.
- mobile devices e.g., laptops, tablets, mobile phones
- a number of software and hardware products are available to facilitate workforce mobility.
- One goal of such mobility solutions, among others, is to match or even improve upon workforce and device effectiveness, productivity, and efficiency as compared to when the workforce is primarily located on-premises.
- Another goal is to maintain security and managerial control over various enterprise configurations and assets, including the mobile devices, network devices, enterprise applications, and enterprise data.
- EMM Enterprise mobility management
- Microsoft Intune®, VMware AirWatch®, Citrix Xen Mobile®, Mobile Iron® evolved according to varied approaches to mobility, including enterprise-owned and issued mobile devices, employee-owned “bring your own device” (BYOD) arrangements, and hybrid approaches, among others.
- EMM products include hardware and software components allowing remote users and remote client devices to securely access various enterprise infrastructure assets, such as enterprise applications and databases.
- Hybrid approaches are growing increasingly common, allowing some users to access the infrastructure assets with enterprise-issued devices, other users to employ user-owned (BYOD) devices, or some combination thereof.
- BYOD user-owned
- EMM solutions facilitate such varied arrangements accordingly.
- MDM Mobile device management
- UEM unified endpoint management
- EMM, MDM, and UEM products often include an administrative software tool for managing the configurations and aspects.
- Such user interface operations and available options are typically less-than-robust and routinely oblige enterprise administrators to perform time consuming and tedious efforts.
- mobile devices might be organized into logical collections (e.g., business units, security levels, testbed sandboxes) for simplified and organized configuration management (sometimes called “mobility configuration environments” or “enterprise mobility environments”).
- the mobile devices include various configurations set by the administrator according to a given collection of mobile device. There may be scenarios where it is desirable to copy the configurations from one environment over to another environment. But due to the limited utility of the configuration software for mobility management products, it is often difficult or inefficient to port the configurations from one environment to another environment.
- Prior approaches to managing the configurations of enterprise mobility environments typically lack sufficient automation or a suitable user interface for accessing and configuring mobile devices across the various environments. For example, to update a configuration profile and assign the profile to mobile devices in a given environment, a system administrator often manually composes instructions to apply the profile to the mobile devices.
- the instructions define configurations applied to the mobile devices in a source environment, so that the instruction is used to also manually apply those configurations to the mobile devices in a target environment.
- Manually composing these configuration instructions consumes an inordinate amount of time, thus decreasing the utility of the environment and making it inefficient to quickly port over the configuration profiles from one environment to another.
- the testing administrator may have to compose the instructions manually and meticulously for the deployment administrator to follow, or vice-versa.
- the chance for human error escalates, thereby leading to unexpected and undesired behaviors from the mobile devices across the different environments.
- prior approaches to porting objects from one MDM or device environment to another could not leverage APIs and web-based interfaces, typically relying instead on command-line shell programs (e.g., Unix shell, PowerShell) for batch automation tasks.
- command-line shell programs e.g., Unix shell, PowerShell
- the administrative user need only interact with a webpage or web-based interface for interacting with the hosting server and update a target environment or port objects from a target environment to the source environment, by leveraging APIs exposed through the hosting server.
- Embodiments described herein include a graphical control console to manage hardware and software configurations of mobility management products (e.g., EEM, MDM, UEM) of various computing devices across an enterprise infrastructure, allowing the software and hardware configurations of one mobility configuration environment of the enterprise infrastructure to be easily deployed in another environment of the enterprise infrastructure.
- an administrative device executes a configuration management software program (sometimes referred to as a capture and deployment software tool) that identifies, facilitates, and manages configurations of mobile computing devices across environments, including applying the configurations from the mobile devices of one environment to the mobile devices of another environment.
- the software tool provides a graphical user interface (GUI) for managing configuration profiles for mobile device across different environments of the enterprise infrastructure.
- the software tool communicates with one or more enterprise configuration servers via an API that provides visibility and access to the configurations and various other aspects of the mobile devices and the respective environments.
- the functionality and operations of the configuration software may be divided into a capture stage and a deployment stage.
- a hosting server hosts a plurality of environments (e.g., source environment, target environment), which includes hosting the environments according to one or more configurations and enforcing one or more policies.
- an administrator's client device may receive instructions or queries from an administrative user to pull certain configurations or policies for a group of devices or other objects (e.g., users, apps) according to one or more corresponding identifiers (e.g., device identifiers, group identifiers, user identifiers), which the administrator's client device forwards to the hosting server.
- the hosting server returns the configurations according to the query, which the client device stores in data files (e.g., JSON files) representing the particular objects, into a local or network-accessible memory.
- data files e.g., JSON files
- the client device also queries and receives the configurations for a second environment, and may receive user inputs indicating updates to the configurations that the administrator would like to impose on the objects.
- the client device executes a GET method to a URL of the hosting server, instructing the web server or other software of the hosting server to perform the query on a database of object information for the source environment.
- the client device updates the data files representing the objects in accordance with the configurations of the second environment and/or based upon the user inputs.
- the client device uploads or transmits the updated data files for the objects to the hosting server, which then executes the machine-readable data files, instructing the hosting server to deploy the updated objects into the second environment.
- the client device executes a POST method to a URL of the hosting server, instructing the web server or other software of the hosting server to perform the updating query on the database of object information for the target environment according to the updated data files representing the objects.
- the embodiments described herein refer to a “configuration server” or “profile server,” though the configuration server and profile server may be the same physical device or logical component.
- the above-mentioned hosting server may include the configuration server, the profile server, or both.
- a system administrator may use the GUI to enter an identifier for a group of mobile devices in a source environment (sometimes referred to as a source group identifier) and an identifier for a group of mobile devices in a target environment (sometimes referred to as a target group identifier). This may be to port over the configurations of the group of mobile devices in the source environment to the group of mobile devices in the target environment.
- the tool may use the API to identify the group of mobile devices in the source environment and aggregate attributes therefrom.
- the attributes may identify various information in regards to the mobile devices in the source environment, a group name, an organization group, a user group, an ownership, a platform, a model, and operating system, among others.
- the attributes may define a configuration of the group of mobile devices in accessing a resource in the source environment.
- the configuration may include, for example, an access control specifying a level of complexity for a password in authenticating a user of a mobile device in the group for accessing of the resource.
- the tool may automatically generate a profile for the group of mobile devices of the source environment in accordance with a template.
- the profile may be stored and maintained by the tool in the form of a file (e.g., a JavaScript Object Notation (JSON)) in a file location to indicate that the file is to serve as the source for the profile of the target environment.
- JSON JavaScript Object Notation
- the tool may generate a profile for the group of mobile devices in the target environment.
- the tool may use the API to identify the group of mobile devices in the target environment, and may aggregate attributes from the group.
- the tool may translate the profile of the source environment to create the profile of the target environment using the template.
- the tool may replace the attributes specific to the source environment with the corresponding attributes aggregated from the target environment. In doing so, the tool may allow the configuration originally specified by the profile for the source environment to be applicable to the mobile devices in the target environment.
- the tool may store and maintain the output profile in a form of a file (e.g., JSON) in the mobile device in a file location to indicate that the profile is for the target environment.
- the translation may be repeated over multiple group profiles generated from the source environment to be applied to the target environment.
- the system administrator may use the GUI to command the application of the profile generated for the target environment to the group of mobile devices in the target environment.
- the command may reference the file location from which the profile for the target environment is to be identified.
- the tool may provide the profile to the group of mobile devices of the target environment and may modify the configurations of each of the mobile devices in accordance with the profile specifications.
- the capture and deployment tool may reduce the amount of manual involvement undertaken by a system administrator to manage configurations across different configuration environments.
- the tool may also decrease the chances of human error in configuring and by extension lessen the likelihood of undesired behavior in mobile devices from incorrect configurations.
- the capture and deployment tool may thus facilitate for the quick and organized translation of configurations from one environment to another environment.
- a computer-implemented method for managing enterprise device configurations comprises 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 pluralit
- a system for managing configurations of mobile devices in which the system comprises a server having one or more processors coupled with memory, where the server is 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,
- a computer-implement method comprises receiving, by a computer via a graphical control console, a porting instruction indicating a device object representing a device of a source device environment and a target device environment; transmitting, by the computer to a configuration server, a query for one or more attributes of the device object of the source device environment; receiving, by the computer from the configuration server, a first object file representing the device object in the source device environment, the first object file including code representing the one or more attributes of the device object for the source environment; updating, by the computer, the code for an attribute of the first object file according to a target configuration required by the target environment, thereby generating, by the computer, a second object file representing the device object for the target environment; and transmitting, by the computer to the configuration server, the second object file according to the porting instruction to include the second object file in the target environment.
- a system comprises a computer having one or more processors coupled to a non-transitory medium and configured to receive, via a graphical control console, a porting instruction indicating a device object representing a device of a source device environment and a target device environment; transmit, to a configuration server, a query for one or more attributes of the device object of the source device environment; receive, from the configuration server, a first object file representing the device object in the source device environment, the first object file including code representing the one or more attributes of the device object for the source environment; update the code for an attribute of the first object file according to a target configuration required by the target environment, thereby generating a second object file representing the device object for the target environment; and transmit, to the configuration server, the second object file according to the porting instruction to include the second object file in the target environment.
- FIG. 1 depicts a block diagram of a system for managing configurations of mobile devices in accordance with an illustrative embodiment
- 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
- 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
- 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
- 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
- FIG. 3 depicts a flow diagram of a method of managing configurations of mobile devices in accordance with an illustrative embodiment
- 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.
- 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.
- API application programming interface
- the system 100 includes a configuration server 105 (sometimes generally referred to as a server), a set of profile servers 110 a - n (collectively referred to as profile servers 110 ), an administrator client device 115 , a database 120 , and mobile devices 121 a - 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 160 a - 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.
- the configuration server 105 and the administrator device 115 may be part of the same device.
- 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.
- TCP/IP Transmission Control Protocol and Internet Protocol
- UDP User Datagram Protocol
- 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.
- 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.
- the functionalities of the components in the configuration server 105 may be distributed the multiple computing devices constituting the configuration server 105 .
- 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.
- 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 .
- a single profile server 110 may include multiple environments 160 .
- a single environment 160 may be supported by multiple profile servers 110 .
- 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.
- 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 .
- the interface 150 may be a web API defining function calls to be exchanged.
- 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 .
- the console handler is webserver
- the control console is a website with one or more interactive webpages.
- 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 121 a of a source environment 160 a to a set of mobile devices 121 b of a target environment 160 b .
- the configuration instruction 205 may identify or include a resource identifier 210 a , a source identifier 210 b , and a target identifier 210 c .
- the resource identifiers 210 a may reference or identify a resource 215 with which a configuration of the set of mobile devices 121 a of the source environment 160 a is used to apply to the set of mobile devices 121 b of the target environment 160 b .
- the resource 215 may correspond to any enterprise asset, access rights, resource, process, application, or data.
- the source identifier 210 b may reference or identify the source environment 160 a or the set of mobile devices 121 a of the source environment 160 a
- the target identifier 210 c may reference or identify the target environment 160 b or the set of mobile devices 121 b of the target environment 160 b .
- the source environment 160 a may be a test, sandbox, or a quality control environment to instrument or pilot a particular configuration for mobile devices 121 a
- the target environment 160 b may 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.
- 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 210 a , the source identifier 210 b , and/or the target identifier 210 c , among others.
- the user of the administrator device 115 uses the control console 155 , the user of the administrator device 115 inputs the resource identifier 210 a , the source identifier 210 b , and the target identifier 210 c .
- the administrator device 115 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 .
- 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 210 a , the source identifier 210 b , and the target identifier 210 c .
- 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 .
- the attribute aggregator 130 determines at least one resource 215 corresponding to the resource identifier 210 a , the source environment 160 a corresponding to the source identifier 210 b , and the mobile devices 121 a of the source environment 160 a having access to the identified resource 215 (as indicated by the resource identifier 210 a ).
- the attribute aggregator 130 determines a set of mobile devices 121 b in the target environment 160 a indicated by the target identifier 210 c.
- the attribute aggregator 130 may send, provide, or otherwise generate a query 220 for a set of configuration attributes 225 a - n (hereinafter generally referred to as attributes 225 ) employed by the set of mobile devices 121 a of the source environment 160 a .
- the attribute aggregator 130 then sends the query 220 to the mobile devices 121 a , the profile server 110 a associated with the mobile devices 121 a , or to the database 120 , thereby determining the set of attributes 225 employed in the source environment 160 a 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.
- 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 121 a in the source environment 160 a
- Non-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.
- the attribute aggregator 130 may retrieve results of the query 220 from the mobile devices 121 a .
- the results may include the set of attributes 225 , and may be in the form of a JSON file.
- the attribute aggregator 130 may un-package or de-serialize the results to extract the set of attributes 225 .
- the attribute aggregator 130 generates another query 230 for a set of attributes 235 a - n (hereinafter generally referred to as attributes 235 ) employed by the set of mobile devices 121 b in the target environment 160 b .
- the attribute aggregator 130 then sends the query 230 to the set of mobile devices 121 b , the profile server 110 b associated with the mobile devices 121 b , or to the database 120 , thereby determining the set of attributes 235 employed in the target environment 160 b based 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 121 b in the target environment 160 b may correspond to the set of attributes 225 retrieved from the set of mobile devices 121 a in the source environment 160 a .
- the query 230 may specify the type of attributes 235 for retrieval from the target environment 160 b to match the type of attributes 225 retrieved from the source environment 160 a .
- the attribute aggregator 130 may retrieve results of the query 220 from the mobile devices 121 b .
- the results may include the set of attributes 235 for the mobile devices 121 b or the database 120 , and may be in the form of a JSON file.
- the attribute aggregator 130 may un-package or de-serialize the results to extract the set of attributes 235 .
- 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.
- the profile creator 135 generates or determines a profile 245 a (sometimes referred herein as a profile) for the source environment 160 a using the set of attributes 225 retrieved via the interface 150 .
- the profile 245 a may include or identify the set of attributes 225 identified from the set of mobile devices 121 a of the source environment 160 a
- the profile 245 a may also identify, specify, or otherwise define the configuration for the set of mobile devices 121 a in the source environment 160 a with respect to the resource 215 .
- the profile creator 135 may generate the profile 245 a 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 245 a.
- the profile creator 135 generates a file corresponding to the profile 245 a in accordance with the template 250 .
- the file includes or indicates the set of attributes 225 to define the configuration for the set of mobile devices 121 a in the source environment 160 a 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 245 a .
- 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 160 a
- the template 250 may be in the form of a JSON file.
- 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 255 a . The file location 255 a may identify or indicate that the file corresponding to the profile 245 a is generated from the source environment 160 a and is to be used to generate a profile for the target environment 160 b.
- FIG. 2C depicted is a block diagram of a profile translation process 260 for managing configurations of mobile devices 121 .
- the configuration server 105 executes the profile translator 140 programming that determines or otherwise generates another profile 245 b (sometimes herein referred to as a profile) for the target environment 160 b .
- the profile translator 140 generates the profile 245 b using the profile 245 a determined for the source environment 160 a and the set of attributes 235 retrieved from the set of mobile devices 121 b of the target environment 160 b .
- the profile 245 b includes the set of attributes 235 identified from the set of mobile devices 121 b of the target environment 160 b .
- the profile 245 b may also identify, specify, or otherwise define the configuration for the set of mobile devices 121 b in the target environment 160 b with 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 160 a but in the target environment 160 b .
- the set of attributes 235 identified from the set of mobile devices 121 b of the target environment 160 b may be the same types of attributes as the set of attributes 225 for the set of mobile devices 121 a of the source environment 160 a.
- the profile translator 140 may replace or substitute the set of attributes 225 identified in the profile 245 a for the source environment 160 a with the set of attributes 235 identified from the target environment 160 b .
- the replacement or substitution may be in accordance with the template 250 .
- the profile translator 140 may identify each attribute 225 in the profile 245 a and replace with the value from the corresponding attribute 235 from the target environment 160 b .
- the profile translator 140 may translate the file corresponding to the profile 245 a in accordance with the template 250 to create a file corresponding to the profile 245 b .
- 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 .
- the profile translator 140 may store and maintain the file on the database 120 at a file location 255 b .
- the file location 255 b may identify or indicate that the file corresponding to the target environment 160 b is generated from the file corresponding to the source environment 160 a
- the file location 255 b may be in a sub folder of the file location 255 a 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 .
- 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).
- 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 121 a of the source environment 160 a to the set of mobile devices 121 b of the target environment 160 b .
- the deployment instruction 275 may identify or include a resource identifier 210 a , a source identifier 210 b , and a target identifier 210 c . In some embodiments, the deployment instruction 275 may identify the profile 245 b 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.
- 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 210 a , the source identifier 210 b , the target identifier 210 c , and/or the profile 245 b among others for generating the deployment instruction 275 .
- a user of the administrator device 115 may input the resource identifier 210 a , the source identifier 210 b , and the target identifier 210 c .
- the administrator device 115 may send, transmit, or provide the deployment instruction 275 to the configuration server 105 .
- 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.
- 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 .
- the configuration manager 145 may transmits the profile 245 b to the set of mobile devices 121 b to configure the accessing of the resource 265 in the target environment 160 b .
- the transmission of the profile 245 b may be in response to receipt of the deployment instruction 275 .
- the transmission of the profile 245 b may be in continuation from the receipt of the configuration instruction 205 .
- the configuration manager 145 determines the set of mobile devices 121 b that the configuration manager 145 will transmit the profile 245 b to, based upon the target identifier 210 c of the configuration instruction 205 .
- the configuration manager 145 sends a request to the set of mobile devices 121 b , in accordance with the interface 150 (e.g., HTTP PUT API call), to push the profile 245 b to the set of mobile devices 121 b of the target environment 160 b .
- the configuration manager 145 may transmit the file corresponding to the profile 245 b from the database 120 to the set of mobile devices 121 b of the target environment 160 b.
- the profile server ll 0 b Upon transmission, the profile server ll 0 b applies the configuration as specified by the profile 245 b .
- the profile server 110 b may modify the configuration of each identified mobile devices 121 b in the target environment 160 b .
- the profile server 110 b may change the access of the resource 265 by the set of mobile devices 121 b in the target environment 160 b .
- the access rights to an application or the security profiles may be changed as a result of the profile 245 b .
- the configuration may be the same or analogous as the set of mobile devices 121 a in the source environment 160 a had with the same type of resource in the source environment 160 a .
- the console handler 125 may send an output 280 to the control console 155 to indicate the completion of the application of the profile 245 b .
- the administrator device 115 may indicate the results of the application of the profile 245 b to the target environment 160 b.
- 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 121 a of the source environment 160 a that was applied to the set of mobile devices 121 b of the target environment 160 b .
- the rollback instruction may identify the profile 245 b 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.
- the administrator device 115 may send, transmit, or provide the rollback instruction to the configuration server 105 .
- 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.
- the configuration manager 145 may send, provide, or otherwise transmit an indication to reverse the configuration specified by the profile 245 b to the set of mobile devices 121 b to reconfigure the accessing of the resource 265 in the target environment 160 b .
- the configuration manager 145 may send the profile 245 b with the indication of reversal.
- the profile server 110 b may modify the configuration of each identified mobile devices 121 b in the target environment 160 b to revert to the previous configuration.
- 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 160 a for generating the profile 245 a describing the configuration of the mobile devices 121 a . Furthermore, the configuration server 105 may automatically translate the profile 245 a to create the profile 245 b for the mobile devices 121 b of the target environment 160 b to 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 .
- 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 .
- 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.
- 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.
- the administrator device 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).
- a JSON object presents the object data
- a URL of an API which instructs the server to query and retrieve the relevant profile object data or files (e.g., JSON files).
- FIG. 4A depicts a block diagram of a user interface 400 for a control console to manage the configurations of mobile devices.
- 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.
- FIG. 4B depicts a block diagram of a user interface 405 for a control console to manage the configurations of mobile devices.
- 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.
- the control console Upon interaction with the command button, the control console provides the target identifier to the server for the generation of the configure instruction.
- FIG. 4C depicts a block diagram of a user interface 410 for a control console to manage the configurations of mobile devices.
- 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.
- the control console Upon interaction with the command button, the control console provides the target identifier to the server for the generation of the configure instruction.
- 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.
- the server may determine a profile for the source environment.
- 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.
- the server may determine the profile for the source environment using the attributes.
- the server may write the profile as a file in accordance with a template and store the file on a database.
- 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.
- 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.
- 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.
- 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.
- a configuration server or profile server may modify the configurations of the mobile devices of the target environment in accordance with the profile.
- the administrator device or other device of the system
- 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.
- 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.
- the functions 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.
- 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 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.
- 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.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
Description
- This application claims priority to U.S. Provisional Application No. 63/174,310, entitled “Managing Configurations of Mobile Devices Across Mobility Configuration Environments,” filed Apr. 13, 2021, which is incorporated by reference in its entirety.
- This application generally relates to systems and methods for managing mobile devices. In particular, this application relates to managing configurations of mobile devices using translations of profiles across environments.
- Facilitating a remote and mobile digital workforce is an important aspect of modern enterprise infrastructures, which includes enabling mobile devices (e.g., laptops, tablets, mobile phones) to securely access enterprise data and enterprise applications as though users were physically located on-premises and/or physically wired into network components of the enterprise infrastructure. A number of software and hardware products are available to facilitate workforce mobility. One goal of such mobility solutions, among others, is to match or even improve upon workforce and device effectiveness, productivity, and efficiency as compared to when the workforce is primarily located on-premises. Another goal, however, is to maintain security and managerial control over various enterprise configurations and assets, including the mobile devices, network devices, enterprise applications, and enterprise data.
- Enterprise mobility management (EMM) products (e.g., Microsoft Intune®, VMware AirWatch®, Citrix Xen Mobile®, Mobile Iron®) evolved according to varied approaches to mobility, including enterprise-owned and issued mobile devices, employee-owned “bring your own device” (BYOD) arrangements, and hybrid approaches, among others. EMM products include hardware and software components allowing remote users and remote client devices to securely access various enterprise infrastructure assets, such as enterprise applications and databases. Hybrid approaches are growing increasingly common, allowing some users to access the infrastructure assets with enterprise-issued devices, other users to employ user-owned (BYOD) devices, or some combination thereof. For example, some remote users elect to use an enterprise-issued laptop and a user-owned mobile phone. EMM solutions facilitate such varied arrangements accordingly. This often results in different software variants of an EMM product being installed or executed for a particular user's circumstances and devices. Moreover, users do not have the same access rights or productivity requirements, so the EMM product must be configurable according to the particular user's permissions (e.g., access rights) and needs (e.g., applications). Mobile device management (MDM) products are similar enterprise management products that evolved alongside EMM products. MDM products include hardware and software components for enterprise administration and configurations for the various types of mobile devices (e.g., laptops, tablets, smartphones). MDM products typically focused primarily on the configurations mobile devices, while EMM products typically focused on broader aspects of application and content management.
- Over time, distinctions between MDM and EMM products blurred and recently the various types of mobility management products are increasingly integrated, evolving into unified endpoint management (UEM) software products (e.g., Microsoft Intune®, Citrix Endpoint Management®, VMware Workspace ONE®, Mobilelron UEM®). A common benefit of UEM products includes a single point of reference managing mobile devices, along with most all devices, of the enterprise infrastructure.
- EMM, MDM, and UEM products often include an administrative software tool for managing the configurations and aspects. Such user interface operations and available options are typically less-than-robust and routinely oblige enterprise administrators to perform time consuming and tedious efforts. For example, mobile devices might be organized into logical collections (e.g., business units, security levels, testbed sandboxes) for simplified and organized configuration management (sometimes called “mobility configuration environments” or “enterprise mobility environments”). The mobile devices include various configurations set by the administrator according to a given collection of mobile device. There may be scenarios where it is desirable to copy the configurations from one environment over to another environment. But due to the limited utility of the configuration software for mobility management products, it is often difficult or inefficient to port the configurations from one environment to another environment.
- Prior approaches to managing the configurations of enterprise mobility environments typically lack sufficient automation or a suitable user interface for accessing and configuring mobile devices across the various environments. For example, to update a configuration profile and assign the profile to mobile devices in a given environment, a system administrator often manually composes instructions to apply the profile to the mobile devices. The instructions define configurations applied to the mobile devices in a source environment, so that the instruction is used to also manually apply those configurations to the mobile devices in a target environment. Manually composing these configuration instructions consumes an inordinate amount of time, thus decreasing the utility of the environment and making it inefficient to quickly port over the configuration profiles from one environment to another.
- The drawbacks of this handcrafted and manual composition approach is exacerbated with more complex environments or enterprise infrastructures. Continuing with the prior example (porting configurations from a source environment to a target environment), the administrators often painstakingly and routinely compose multiple iterations of instructions in order to deploy gradual changes from the source environment into the target environment. This results in possible duplicative efforts, increases time-consumption to port over configurations, and escalates the potential for errors. Moreover, the instructions may have to be provided to different administrators responsible for the various environments, adding further complexity and potential for errors. For instance, a testing administrator who is responsible for managing a test environment for testing and developing configurations and a deployment administrator who is responsible for managing a live production environment. In such a setting, the testing administrator may have to compose the instructions manually and meticulously for the deployment administrator to follow, or vice-versa. At each handoff, the chance for human error escalates, thereby leading to unexpected and undesired behaviors from the mobile devices across the different environments.
- What is therefore needed is more robust software application and related software application programming interfaces (APIs) for improved management and automated configurations for mobility management products. This includes automated software operations for capturing and deploying configuration profiles across any number of mobility configuration environments.
- Disclosed herein are systems and methods capable of addressing the above described shortcomings and may also provide any number of additional or alternative benefits and advantages. Oftentimes, prior approaches to porting objects from one MDM or device environment to another could not leverage APIs and web-based interfaces, typically relying instead on command-line shell programs (e.g., Unix shell, PowerShell) for batch automation tasks. According to the system and methods described herein, the administrative user need only interact with a webpage or web-based interface for interacting with the hosting server and update a target environment or port objects from a target environment to the source environment, by leveraging APIs exposed through the hosting server.
- Embodiments described herein include a graphical control console to manage hardware and software configurations of mobility management products (e.g., EEM, MDM, UEM) of various computing devices across an enterprise infrastructure, allowing the software and hardware configurations of one mobility configuration environment of the enterprise infrastructure to be easily deployed in another environment of the enterprise infrastructure. To address various technical challenges, an administrative device executes a configuration management software program (sometimes referred to as a capture and deployment software tool) that identifies, facilitates, and manages configurations of mobile computing devices across environments, including applying the configurations from the mobile devices of one environment to the mobile devices of another environment. The software tool provides a graphical user interface (GUI) for managing configuration profiles for mobile device across different environments of the enterprise infrastructure. The software tool communicates with one or more enterprise configuration servers via an API that provides visibility and access to the configurations and various other aspects of the mobile devices and the respective environments. The functionality and operations of the configuration software may be divided into a capture stage and a deployment stage.
- In some cases, a hosting server hosts a plurality of environments (e.g., source environment, target environment), which includes hosting the environments according to one or more configurations and enforcing one or more policies. In operation, an administrator's client device may receive instructions or queries from an administrative user to pull certain configurations or policies for a group of devices or other objects (e.g., users, apps) according to one or more corresponding identifiers (e.g., device identifiers, group identifiers, user identifiers), which the administrator's client device forwards to the hosting server. The hosting server returns the configurations according to the query, which the client device stores in data files (e.g., JSON files) representing the particular objects, into a local or network-accessible memory. The client device also queries and receives the configurations for a second environment, and may receive user inputs indicating updates to the configurations that the administrator would like to impose on the objects. In some implementations, the client device executes a GET method to a URL of the hosting server, instructing the web server or other software of the hosting server to perform the query on a database of object information for the source environment. To port the objects over to the second environment, the client device updates the data files representing the objects in accordance with the configurations of the second environment and/or based upon the user inputs. After updating the data files representing the objects, the client device uploads or transmits the updated data files for the objects to the hosting server, which then executes the machine-readable data files, instructing the hosting server to deploy the updated objects into the second environment. In some implementations, the client device executes a POST method to a URL of the hosting server, instructing the web server or other software of the hosting server to perform the updating query on the database of object information for the target environment according to the updated data files representing the objects. The embodiments described herein refer to a “configuration server” or “profile server,” though the configuration server and profile server may be the same physical device or logical component. The above-mentioned hosting server may include the configuration server, the profile server, or both.
- At the capture stage, a system administrator may use the GUI to enter an identifier for a group of mobile devices in a source environment (sometimes referred to as a source group identifier) and an identifier for a group of mobile devices in a target environment (sometimes referred to as a target group identifier). This may be to port over the configurations of the group of mobile devices in the source environment to the group of mobile devices in the target environment. Upon input, the tool may use the API to identify the group of mobile devices in the source environment and aggregate attributes therefrom. The attributes may identify various information in regards to the mobile devices in the source environment, a group name, an organization group, a user group, an ownership, a platform, a model, and operating system, among others. In addition, the attributes may define a configuration of the group of mobile devices in accessing a resource in the source environment. The configuration may include, for example, an access control specifying a level of complexity for a password in authenticating a user of a mobile device in the group for accessing of the resource. Using the attributes, the tool may automatically generate a profile for the group of mobile devices of the source environment in accordance with a template. The profile may be stored and maintained by the tool in the form of a file (e.g., a JavaScript Object Notation (JSON)) in a file location to indicate that the file is to serve as the source for the profile of the target environment.
- Using the profile from the source environment, the tool may generate a profile for the group of mobile devices in the target environment. As with the source environment, the tool may use the API to identify the group of mobile devices in the target environment, and may aggregate attributes from the group. With the aggregation of attributes, the tool may translate the profile of the source environment to create the profile of the target environment using the template. During the translation, the tool may replace the attributes specific to the source environment with the corresponding attributes aggregated from the target environment. In doing so, the tool may allow the configuration originally specified by the profile for the source environment to be applicable to the mobile devices in the target environment. Upon completion, the tool may store and maintain the output profile in a form of a file (e.g., JSON) in the mobile device in a file location to indicate that the profile is for the target environment. The translation may be repeated over multiple group profiles generated from the source environment to be applied to the target environment.
- At the deployment stage, the system administrator may use the GUI to command the application of the profile generated for the target environment to the group of mobile devices in the target environment. The command may reference the file location from which the profile for the target environment is to be identified. Once identified, the tool may provide the profile to the group of mobile devices of the target environment and may modify the configurations of each of the mobile devices in accordance with the profile specifications. In this manner, the capture and deployment tool may reduce the amount of manual involvement undertaken by a system administrator to manage configurations across different configuration environments. As a result, the tool may also decrease the chances of human error in configuring and by extension lessen the likelihood of undesired behavior in mobile devices from incorrect configurations. The capture and deployment tool may thus facilitate for the quick and organized translation of configurations from one environment to another environment.
- In an embodiment, a computer-implemented method for managing enterprise device configurations, in which the method comprises 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.
- In another embodiment, a system for managing configurations of mobile devices, in which the system comprises a server having one or more processors coupled with memory, where the server is 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.
- In another embodiment, a computer-implement method comprises receiving, by a computer via a graphical control console, a porting instruction indicating a device object representing a device of a source device environment and a target device environment; transmitting, by the computer to a configuration server, a query for one or more attributes of the device object of the source device environment; receiving, by the computer from the configuration server, a first object file representing the device object in the source device environment, the first object file including code representing the one or more attributes of the device object for the source environment; updating, by the computer, the code for an attribute of the first object file according to a target configuration required by the target environment, thereby generating, by the computer, a second object file representing the device object for the target environment; and transmitting, by the computer to the configuration server, the second object file according to the porting instruction to include the second object file in the target environment.
- In another embodiment, a system comprises a computer having one or more processors coupled to a non-transitory medium and configured to receive, via a graphical control console, a porting instruction indicating a device object representing a device of a source device environment and a target device environment; transmit, to a configuration server, a query for one or more attributes of the device object of the source device environment; receive, from the configuration server, a first object file representing the device object in the source device environment, the first object file including code representing the one or more attributes of the device object for the source environment; update the code for an attribute of the first object file according to a target configuration required by the target environment, thereby generating a second object file representing the device object for the target environment; and transmit, to the configuration server, the second object file according to the porting instruction to include the second object file in the target environment.
- It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.
- 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.
-
FIG. 1 depicts a block diagram of a system for managing configurations of mobile devices in accordance with an illustrative embodiment; -
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; -
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; -
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; -
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; -
FIG. 3 depicts a flow diagram of a method of managing configurations of mobile devices in accordance with an illustrative embodiment; and -
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. - 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.
- 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.
- Referring now to
FIG. 1 , depicted is block diagram of asystem 100 for managing configurations of enterprise assets (e.g., data storage, software applications, computing devices). Thesystem 100 includes a configuration server 105 (sometimes generally referred to as a server), a set of profile servers 110 a-n (collectively referred to as profile servers 110), anadministrator client device 115, adatabase 120, and mobile devices 121 a-n (collectively referred to as mobile devices 121). The configuration server 105 may include aconsole handler 125, anattribute aggregator 130, aprofile creator 135, aprofile translator 140, a configuration manager 145, and aninterface 150. Theadministrator 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 160 a-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 ofFIG. 1 , and still fall within the scope of this disclosure. In some embodiments, the configuration server 105 and theadministrator device 115 may be part of the same device. - 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. - 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 thedatabase 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 theconsole handler 125, theattribute aggregator 130, theprofile creator 135, theprofile translator 140, and the configuration manager 145 may be distributed the multiple computing devices constituting the configuration server 105. - 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 thedatabase 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. - 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 thedatabase 120, among others, and may receive and transmit data with any of these. Although shown as a single device, theadministrator device 115 may include any number of computing devices. - 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). Theinterface 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, theadministrator device 115, and thedatabase 120. Theinterface 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 theadministrator device 115 and one or more of the profile servers 110 via the configuration server 105. In some embodiments, theinterface 150 may be a web API defining function calls to be exchanged. - In addition, the configuration server 105 (e.g., the console handler 125) generates GUI data for the
control console 155 GUI displayed at theadministrator device 115. Thecontrol 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 theadministrator device 115 and to otherwise operate the configuration software. Theinterface 150 ingests (e.g., receives, translates) the user inputs received via thecontrol console 155 and provides the information to the profile servers 110 and/or the configuration server 105. Examples of thecontrol console 155 provided by the configuration server 105 are depicted inFIGS. 4A-G . In one example, the console handler is webserver, and the control console is a website with one or more interactive webpages. - Referring now to
FIG. 2A , depicted is a block diagram of anattribute aggregation process 200 for managing configurations of mobile devices 121. As illustrated, theadministrator device 115 may generate a configuration instruction 205 using inputs received via thecontrol console 155. The configuration instruction 205 may include information for applying a configuration of a set ofmobile devices 121 a of asource environment 160 a to a set ofmobile devices 121 b of atarget environment 160 b. The configuration instruction 205 may identify or include aresource identifier 210 a, asource identifier 210 b, and atarget identifier 210 c. Theresource identifiers 210 a (sometimes herein referred to as a delivery number) may reference or identify aresource 215 with which a configuration of the set ofmobile devices 121 a of thesource environment 160 a is used to apply to the set ofmobile devices 121 b of thetarget environment 160 b. Theresource 215 may correspond to any enterprise asset, access rights, resource, process, application, or data. The source identifier 210 bmay reference or identify thesource environment 160 a or the set ofmobile devices 121 a of the source environment 160 aThe target identifier 210 cmay reference or identify the target environment 160 bor the set ofmobile devices 121 b of thetarget environment 160 b. In some embodiments, thesource environment 160 a may be a test, sandbox, or a quality control environment to instrument or pilot a particular configuration formobile devices 121 a, while the target environment 160 bmay 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. - The configuration server 105 executes machine-readable code for the
console handler 125 that receives input and provides output to be displayed via thecontrol console 155 GUI. Theconsole handler 125 generates and receives various types of input and output data, to and from thecontrol console 155 software executed or accessed by theadministrator device 115. Thecontrol console 155 GUI may include input fields for theresource identifier 210 a, thesource identifier 210 b, and/or thetarget identifier 210 c, among others. Using thecontrol console 155, the user of theadministrator device 115 inputs theresource identifier 210 a, thesource identifier 210 b, and thetarget identifier 210 c. Upon entry into the fields of thecontrol console 155, theadministrator device 115 sends, transmits, or provides the configuration instruction 205 to the configuration server 105. In turn, thecontrol handler 125 software executed by the configuration server 105 retrieves, identifies, or otherwise receives the configuration instruction 205 from theadministrator device 115. Theconsole handler 125 parses the data of the configuration instruction 205 to extract or identify theresource identifier 210 a, thesource identifier 210 b, and thetarget identifier 210 c. - 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, theattribute aggregator 130 determines at least oneresource 215 corresponding to theresource identifier 210 a, thesource environment 160 a corresponding to thesource identifier 210 b, and themobile devices 121 a of thesource environment 160 a having access to the identified resource 215 (as indicated by theresource identifier 210 a). In addition, theattribute aggregator 130 determines a set ofmobile devices 121 b in thetarget environment 160 a indicated by thetarget identifier 210 c. - In operation, the
attribute aggregator 130 may send, provide, or otherwise generate aquery 220 for a set of configuration attributes 225 a-n (hereinafter generally referred to as attributes 225) employed by the set ofmobile devices 121 a of thesource environment 160 a. Theattribute aggregator 130 then sends thequery 220 to themobile devices 121 a, theprofile server 110 a associated with themobile devices 121 a, or to thedatabase 120, thereby determining the set of attributes 225 employed in thesource environment 160 a based upon the results of thequery 220. Theattribute aggregator 130 invokes one or more functions of theinterface 150 to generate and/or send thequery 220 to the various devices. In some embodiments, thequery 220 specifies the type of attributes 225 that are to be retrieved. The set of attributes 225 includes the various configurations for the set ofmobile devices 121 a in the source environment 160 aNon-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, theattribute aggregator 130 may retrieve results of thequery 220 from themobile devices 121 a. The results may include the set of attributes 225, and may be in the form of a JSON file. In some embodiments, theattribute aggregator 130 may un-package or de-serialize the results to extract the set of attributes 225. - In addition, the
attribute aggregator 130 generates anotherquery 230 for a set of attributes 235 a-n (hereinafter generally referred to as attributes 235) employed by the set ofmobile devices 121 b in thetarget environment 160 b. Theattribute aggregator 130 then sends thequery 230 to the set ofmobile devices 121 b , the profile server 110 bassociated with themobile devices 121 b , or to thedatabase 120, thereby determining the set of attributes 235 employed in the target environment 160 bbased upon the results of thequery 230. Theattribute aggregator 130 invokes one or more functions of the interface 150 (e.g., API function, GET call, POST call) to generate and/or send thequery 230 to the various devices, or otherwise receives the functions (e.g., GET, POST) from theadministrator device 115. The set of attributes 235 retrieved from the set ofmobile devices 121 b in the target environment 160 bmay correspond to the set of attributes 225 retrieved from the set ofmobile devices 121 a in thesource environment 160 a. In some embodiments, thequery 230 may specify the type of attributes 235 for retrieval from the target environment 160 bto match the type of attributes 225 retrieved from thesource environment 160 a. In some embodiments, theattribute aggregator 130 may retrieve results of thequery 220 from themobile devices 121 b. The results may include the set of attributes 235 for themobile devices 121 b or thedatabase 120, and may be in the form of a JSON file. In some embodiments, theattribute aggregator 130 may un-package or de-serialize the results to extract the set of attributes 235. - Referring now to
FIG. 2B , depicted is a block diagram of aprofile creation process 240 for managing configurations of mobile devices 121. The configuration server 105 executes theprofile 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 thedatabase 120 containing configuration information for such groups. As illustrated, theprofile creator 135 generates or determines aprofile 245 a (sometimes referred herein as a profile) for thesource environment 160 a using the set of attributes 225 retrieved via theinterface 150. Theprofile 245 a may include or identify the set of attributes 225 identified from the set ofmobile devices 121 a of the source environment 160a The profile 245 a may also identify, specify, or otherwise define the configuration for the set ofmobile devices 121 a in thesource environment 160 a with respect to theresource 215. In some embodiments, theprofile creator 135 may generate theprofile 245 a in accordance with thetemplate 250. Thetemplate 250 may specify a structure or syntax defining the arrangement of the set of attributes 225 for theprofile 245 a. - In some embodiments, the
profile creator 135 generates a file corresponding to theprofile 245 a in accordance with thetemplate 250. As with theprofile 245 a, the file includes or indicates the set of attributes 225 to define the configuration for the set ofmobile devices 121 a in thesource environment 160 a with respect to theresource 215. Thetemplate 250 may specify a structure or syntax defining the arrangement of the set of attributes 225 in the file corresponding to theprofile 245 a. For example, thetemplate 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 160 aIn some embodiments, thetemplate 250 may be in the form of a JSON file. In creating, theprofile creator 135 may parse through thetemplate 250. For each field in thetemplate 250, theprofile creator 135 may assign a corresponding value from the set of attributes 225. Upon creation using thetemplate 250, theprofile creator 135 may store and maintain the file on thedatabase 120 at afile location 255 a. Thefile location 255 a may identify or indicate that the file corresponding to theprofile 245 a is generated from thesource environment 160 a and is to be used to generate a profile for thetarget environment 160 b. - Referring now to
FIG. 2C , depicted is a block diagram of aprofile translation process 260 for managing configurations of mobile devices 121. As illustrated, the configuration server 105 executes theprofile translator 140 programming that determines or otherwise generates anotherprofile 245 b (sometimes herein referred to as a profile) for thetarget environment 160 b. Theprofile translator 140 generates theprofile 245 b using theprofile 245 a determined for thesource environment 160 a and the set of attributes 235 retrieved from the set ofmobile devices 121 b of thetarget environment 160 b. As with theprofile 245 a for thesource environment 160 a, theprofile 245 b includes the set of attributes 235 identified from the set ofmobile devices 121 b of thetarget environment 160 b. Theprofile 245 b may also identify, specify, or otherwise define the configuration for the set ofmobile devices 121 b in the target environment 160 bwith respect to theresource 265, where theresource 265 may be a type of resource, the same resource, or an analogous resource as theresource 215 of thesource environment 160 a but in thetarget environment 160 b. The set of attributes 235 identified from the set ofmobile devices 121 b of the target environment 160 bmay be the same types of attributes as the set of attributes 225 for the set ofmobile devices 121 a of thesource environment 160 a. - In generating the
profile 245 b, theprofile translator 140 may replace or substitute the set of attributes 225 identified in theprofile 245 a for thesource environment 160 a with the set of attributes 235 identified from thetarget environment 160 b. The replacement or substitution may be in accordance with thetemplate 250. Using thetemplate 250, theprofile translator 140 may identify each attribute 225 in theprofile 245 a and replace with the value from the corresponding attribute 235 from thetarget environment 160 b. In some embodiments, theprofile translator 140 may translate the file corresponding to theprofile 245 a in accordance with thetemplate 250 to create a file corresponding to theprofile 245 b. Using thetemplate 250, theprofile 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, theprofile translator 140 may store and maintain the file on thedatabase 120 at afile location 255 b. Thefile location 255 b may identify or indicate that the file corresponding to the target environment 160 bis generated from the file corresponding to the source environment 160 aFor example, thefile location 255 b may be in a sub folder of thefile location 255 a 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. - Referring now to
FIG. 2D , depicted is a block diagram of anattribute aggregation process 270 performed by thesystem 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, theadministrator device 115 may generate thedeployment instruction 275 using inputs received via thecontrol console 155. Thedeployment instruction 275 may include information for applying the configuration of the set ofmobile devices 121 a of thesource environment 160 a to the set ofmobile devices 121 b of thetarget environment 160 b. As with the configuration instruction 205, thedeployment instruction 275 may identify or include aresource identifier 210 a, asource identifier 210 b, and atarget identifier 210 c. In some embodiments, thedeployment instruction 275 may identify theprofile 245 b or the corresponding file maintained on thedatabase 120. In some embodiments, theadministrator device 115 may forego adeployment instruction 275 separate from the configuration instruction 205 for application of the configuration. - The
console handler 125 hosts, supports, and provides operational instructions for thecontrol console 155 presented at theadministrator device 115, where thecontrol 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 theconsole handler 125. Thecontrol console 155 GUI includes, for example, input fields for theresource identifier 210 a, thesource identifier 210 b, thetarget identifier 210 c, and/or theprofile 245 b among others for generating thedeployment instruction 275. Using thecontrol console 155, a user of theadministrator device 115 may input theresource identifier 210 a, thesource identifier 210 b, and thetarget identifier 210 c. Upon entry into the fields of thecontrol console 155, theadministrator device 115 may send, transmit, or provide thedeployment instruction 275 to the configuration server 105. In turn, thecontrol handler 125 receives thedeployment instruction 275 from theadministrator device 115 via thecontrol console 155. Theconsole handler 125 may parse thedeployment instruction 275 to extract or identify the content therein. - 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 theprofile 245 b to the set ofmobile devices 121 b to configure the accessing of theresource 265 in thetarget environment 160 b. In some embodiments, the transmission of theprofile 245 b may be in response to receipt of thedeployment instruction 275. In some embodiments, the transmission of theprofile 245 b may be in continuation from the receipt of the configuration instruction 205. The configuration manager 145 determines the set ofmobile devices 121 b that the configuration manager 145 will transmit theprofile 245 b to, based upon the target identifier 210 cof the configuration instruction 205. The configuration manager 145 sends a request to the set ofmobile devices 121 b , in accordance with the interface 150 (e.g., HTTP PUT API call), to push theprofile 245 b to the set ofmobile devices 121 b of thetarget environment 160 b. In some embodiments, the configuration manager 145 may transmit the file corresponding to theprofile 245 b from thedatabase 120 to the set ofmobile devices 121 b of thetarget environment 160 b. - Upon transmission, the profile server ll0 bapplies the configuration as specified by the
profile 245 b. In applying theprofile 245 b, the profile server 110 bmay modify the configuration of each identifiedmobile devices 121 b in thetarget environment 160 b. By modifying the configuration, the profile server 110 bmay change the access of theresource 265 by the set ofmobile devices 121 b in thetarget environment 160 b. For example, the access rights to an application or the security profiles may be changed as a result of theprofile 245 b. As theprofile 245 b is generated by translating theprofile 245 a, the configuration may be the same or analogous as the set ofmobile devices 121 a in thesource environment 160 a had with the same type of resource in thesource environment 160 a. In some embodiments, theconsole handler 125 may send anoutput 280 to thecontrol console 155 to indicate the completion of the application of theprofile 245 b. Using theoutput 280, theadministrator device 115 may indicate the results of the application of theprofile 245 b to thetarget environment 160 b. - In some embodiments, the
administrator device 115 may generate a rollback instruction using inputs received via thecontrol console 155. The rollback instruction may include information for reversing the configuration of the set ofmobile devices 121 a of thesource environment 160 a that was applied to the set ofmobile devices 121 b of thetarget environment 160 b. In some embodiments, the rollback instruction may identify theprofile 245 b or the corresponding file maintained on thedatabase 120. Theconsole handler 125 may have provided thecontrol console 155 to theadministrator device 115. Thecontrol console 155 may include one or more fields among others for generating the rollback instruction. Upon entry into the fields of thecontrol console 155, theadministrator device 115 may send, transmit, or provide the rollback instruction to the configuration server 105. In turn, thecontrol handler 125 may retrieve, identify, or otherwise receive the rollback instruction from theadministrator device 115. Theconsole handler 125 may parse the rollback instruction to extract or identify the content therein. - With the parsing, the configuration manager 145 may send, provide, or otherwise transmit an indication to reverse the configuration specified by the
profile 245 b to the set ofmobile devices 121 b to reconfigure the accessing of theresource 265 in thetarget environment 160 b. In some embodiments, the configuration manager 145 may send theprofile 245 b with the indication of reversal. Upon transmission, the profile server 110 bmay modify the configuration of each identifiedmobile devices 121 b in the target environment 160 bto revert to the previous configuration. - 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 theinterface 150, the configuration server 105 may allow the quick and efficiently capture or aggregate the information from thesource environment 160 a for generating theprofile 245 a describing the configuration of themobile devices 121 a. Furthermore, the configuration server 105 may automatically translate theprofile 245 a to create theprofile 245 b for themobile devices 121 b of the target environment 160 bto apply the configurations. In addition, provision of thecontrol 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. -
FIG. 3 depicts a flow diagram of amethod 300 of managing configurations of mobile devices across environments. Embodiments may include additional, fewer, or different operations than those described in themethod 300. Themethod 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. - 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). -
FIG. 4A depicts a block diagram of auser interface 400 for a control console to manage the configurations of mobile devices. To generate the configuration instruction to transmit to the server, theuser 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. -
FIG. 4B depicts a block diagram of auser interface 405 for a control console to manage the configurations of mobile devices. To generate the configuration instruction to transmit to the server, theuser 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. -
FIG. 4C depicts a block diagram of auser interface 410 for a control console to manage the configurations of mobile devices. To generate the configuration instruction to transmit to the server, theuser 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. - 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. - 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. - 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. -
FIG. 4D depicts a block diagram of auser interface 415 for a control console to manage the configurations of mobile devices. Theuser 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 auser interface 420 for a control console to manage the configurations of mobile devices. Theuser interface 420 provides a directory structure in which the final output corresponding to a profile of the mobile devices is stored. - 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. -
FIG. 4F depicts a block diagram of auser interface 425 for a control console to manage the configurations of mobile devices. Theuser 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 auser interface 430 for a control console to manage the configurations of mobile devices. Theuser 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. - 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/719,038 US20220330013A1 (en) | 2021-04-13 | 2022-04-12 | Managing configurations of mobile devices across mobility configuration environments |
US17/726,521 US20220329490A1 (en) | 2021-04-13 | 2022-04-21 | Managing configurations of mobile devices across mobility configuration environments |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163174310P | 2021-04-13 | 2021-04-13 | |
US17/719,038 US20220330013A1 (en) | 2021-04-13 | 2022-04-12 | Managing configurations of mobile devices across mobility configuration environments |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/726,521 Continuation US20220329490A1 (en) | 2021-04-13 | 2022-04-21 | Managing configurations of mobile devices across mobility configuration environments |
Publications (1)
Publication Number | Publication Date |
---|---|
US20220330013A1 true US20220330013A1 (en) | 2022-10-13 |
Family
ID=83509676
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/719,038 Pending US20220330013A1 (en) | 2021-04-13 | 2022-04-12 | Managing configurations of mobile devices across mobility configuration environments |
US17/726,521 Pending US20220329490A1 (en) | 2021-04-13 | 2022-04-21 | Managing configurations of mobile devices across mobility configuration environments |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/726,521 Pending US20220329490A1 (en) | 2021-04-13 | 2022-04-21 | Managing configurations of mobile devices across mobility configuration environments |
Country Status (2)
Country | Link |
---|---|
US (2) | US20220330013A1 (en) |
CA (1) | CA3155095A1 (en) |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060031435A1 (en) * | 2000-12-06 | 2006-02-09 | Tindal Glen D | System and method for configuring a network device |
US7668903B2 (en) * | 2003-07-07 | 2010-02-23 | Xerox Corporation | Method and apparatus for dynamically delivering service profiles to clients |
WO2013022411A1 (en) * | 2011-08-10 | 2013-02-14 | Google Inc. | Coordinating software deployment |
US20130204986A1 (en) * | 2005-07-22 | 2013-08-08 | At&T Intellectual Property I, L.P. | Remote Configuration of Client Devices |
US8572625B2 (en) * | 2009-08-04 | 2013-10-29 | International Business Machines Corporation | Method and system for application migration using per-application persistent configuration dependency |
US20140025627A1 (en) * | 2012-07-17 | 2014-01-23 | International Business Machines Corporation | Targeted Maintenance of Computing Devices in Information Technology Infrastructure |
US20140068035A1 (en) * | 2012-09-05 | 2014-03-06 | International Business Machines Corporation | Managing network configurations |
US20140189681A1 (en) * | 2012-12-31 | 2014-07-03 | Oracle International Corporation | Defining configurable characteristics of a product and associating configuration with enterprise resources |
US20150358810A1 (en) * | 2014-06-10 | 2015-12-10 | Qualcomm Incorporated | Software Configurations for Mobile Devices in a Collaborative Environment |
US20160034269A1 (en) * | 2014-08-04 | 2016-02-04 | International Business Machines Corporation | Updating Software based on Similarities between Endpoints |
WO2017046679A1 (en) * | 2015-09-14 | 2017-03-23 | Appviewx Inc | Application provisioning system for requesting configuration updates for application objects across data centers |
US20170171024A1 (en) * | 2015-12-11 | 2017-06-15 | International Business Machines Corporation | Automatically generating configuration images and deploying computer components in a computing environment that comprises a shared pool of configurable computing resources |
WO2019037414A1 (en) * | 2017-08-25 | 2019-02-28 | 深圳壹账通智能科技有限公司 | Page configuration update method and device, and server and storage medium |
US20200174993A1 (en) * | 2018-11-30 | 2020-06-04 | Hewlett Packard Enterprise Development Lp | Systems and methods for live, on-device configuration validation |
US20200228400A1 (en) * | 2019-01-15 | 2020-07-16 | Vmware, Inc. | Data driven user interface for configuring device settings |
US20210092015A1 (en) * | 2019-09-25 | 2021-03-25 | Microstrategy Incorporated | Centralized platform management for computing environments |
US20210224165A1 (en) * | 2020-01-20 | 2021-07-22 | Oracle International Corporation | Techniques for implementing rollback of infrastructure changes in a cloud infrastructure orchestration service |
US20210281481A1 (en) * | 2020-03-09 | 2021-09-09 | Microsoft Technology Licensing, Llc | Secure management of devices |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070038982A1 (en) * | 2005-08-11 | 2007-02-15 | International Business Machines Corporation | Method and process to automatically perform test builds or translated files for a software product |
US8453144B1 (en) * | 2008-09-23 | 2013-05-28 | Gogrid, LLC | System and method for adapting a system configuration using an adaptive library |
US8819561B2 (en) * | 2008-11-12 | 2014-08-26 | Citrix Systems, Inc. | Tool for visualizing configuration and status of a network appliance |
US20100257403A1 (en) * | 2009-04-03 | 2010-10-07 | Microsoft Corporation | Restoration of a system from a set of full and partial delta system snapshots across a distributed system |
US8850423B2 (en) * | 2009-10-29 | 2014-09-30 | International Business Machines Corporation | Assisting server migration |
US9152522B2 (en) * | 2010-10-22 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Methods for configuration management using a fallback configuration |
US9059960B2 (en) * | 2012-08-31 | 2015-06-16 | International Business Machines Corporation | Automatically recommending firewall rules during enterprise information technology transformation |
US9755900B2 (en) * | 2013-03-11 | 2017-09-05 | Amazon Technologies, Inc. | Managing configuration updates |
US9588749B2 (en) * | 2014-10-14 | 2017-03-07 | Microsoft Technology Licensing, Llc | Configuration transform for application deployment |
US11475353B2 (en) * | 2017-12-01 | 2022-10-18 | Appranix, Inc. | Automated application reliability management using adaptable machine learning models |
US20200136930A1 (en) * | 2018-10-24 | 2020-04-30 | CA Software Österreich GmbH | Application environment provisioning |
JP2022515994A (en) * | 2018-12-13 | 2022-02-24 | ドライブネッツ リミテッド | Orchestration of the activity of an entity running in the network cloud |
US10797952B1 (en) * | 2019-07-16 | 2020-10-06 | Hewlett Packard Enterprise Development Lp | Intelligent rollback analysis of configuration changes |
US11392360B2 (en) * | 2020-12-21 | 2022-07-19 | Atlassian Pty Ltd. | Systems and methods for redeploying source code builds |
US11265211B1 (en) * | 2021-04-02 | 2022-03-01 | Vmware, Inc. | Continuous delivery of management configurations |
-
2022
- 2022-04-12 US US17/719,038 patent/US20220330013A1/en active Pending
- 2022-04-12 CA CA3155095A patent/CA3155095A1/en active Pending
- 2022-04-21 US US17/726,521 patent/US20220329490A1/en active Pending
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060031435A1 (en) * | 2000-12-06 | 2006-02-09 | Tindal Glen D | System and method for configuring a network device |
US7668903B2 (en) * | 2003-07-07 | 2010-02-23 | Xerox Corporation | Method and apparatus for dynamically delivering service profiles to clients |
US20130204986A1 (en) * | 2005-07-22 | 2013-08-08 | At&T Intellectual Property I, L.P. | Remote Configuration of Client Devices |
US8572625B2 (en) * | 2009-08-04 | 2013-10-29 | International Business Machines Corporation | Method and system for application migration using per-application persistent configuration dependency |
WO2013022411A1 (en) * | 2011-08-10 | 2013-02-14 | Google Inc. | Coordinating software deployment |
US20140025627A1 (en) * | 2012-07-17 | 2014-01-23 | International Business Machines Corporation | Targeted Maintenance of Computing Devices in Information Technology Infrastructure |
US20140068035A1 (en) * | 2012-09-05 | 2014-03-06 | International Business Machines Corporation | Managing network configurations |
US20140189681A1 (en) * | 2012-12-31 | 2014-07-03 | Oracle International Corporation | Defining configurable characteristics of a product and associating configuration with enterprise resources |
US20150358810A1 (en) * | 2014-06-10 | 2015-12-10 | Qualcomm Incorporated | Software Configurations for Mobile Devices in a Collaborative Environment |
US20160034269A1 (en) * | 2014-08-04 | 2016-02-04 | International Business Machines Corporation | Updating Software based on Similarities between Endpoints |
WO2017046679A1 (en) * | 2015-09-14 | 2017-03-23 | Appviewx Inc | Application provisioning system for requesting configuration updates for application objects across data centers |
US20170171024A1 (en) * | 2015-12-11 | 2017-06-15 | International Business Machines Corporation | Automatically generating configuration images and deploying computer components in a computing environment that comprises a shared pool of configurable computing resources |
WO2019037414A1 (en) * | 2017-08-25 | 2019-02-28 | 深圳壹账通智能科技有限公司 | Page configuration update method and device, and server and storage medium |
US20200174993A1 (en) * | 2018-11-30 | 2020-06-04 | Hewlett Packard Enterprise Development Lp | Systems and methods for live, on-device configuration validation |
US20200228400A1 (en) * | 2019-01-15 | 2020-07-16 | Vmware, Inc. | Data driven user interface for configuring device settings |
US20210092015A1 (en) * | 2019-09-25 | 2021-03-25 | Microstrategy Incorporated | Centralized platform management for computing environments |
US20210224165A1 (en) * | 2020-01-20 | 2021-07-22 | Oracle International Corporation | Techniques for implementing rollback of infrastructure changes in a cloud infrastructure orchestration service |
US20210281481A1 (en) * | 2020-03-09 | 2021-09-09 | Microsoft Technology Licensing, Llc | Secure management of devices |
Non-Patent Citations (1)
Title |
---|
Machine-Translation of WO-2019037414-A1 (Chinese-to-English); Retrieved from PE2E-Search (FIT Database). (Year: 2019) * |
Also Published As
Publication number | Publication date |
---|---|
US20220329490A1 (en) | 2022-10-13 |
CA3155095A1 (en) | 2022-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10827008B2 (en) | Integrated user interface for consuming services across different distributed networks | |
JP6750054B2 (en) | A system for building and modeling web pages | |
US11240344B2 (en) | Integration of remote software applications into a workflow | |
US20200301674A1 (en) | Guided definition of an application programming interface action for a workflow | |
US8924592B2 (en) | Synchronization of server-side cookies with client-side cookies | |
US8612406B1 (en) | Sharing business data across networked applications | |
US20170039078A1 (en) | Application configuration in a virtual environment | |
CN113595796A (en) | Network-based resource configuration discovery service | |
US20200264858A1 (en) | Method and system for cross-platform deployment | |
US10963370B2 (en) | Default mock implementations at a server | |
US11061696B2 (en) | Extension points for web-based applications and services | |
US9876678B2 (en) | Data defined infrastructure | |
US20220358190A1 (en) | Automated role management for resource accessing code | |
US11838176B1 (en) | Provisioning and deploying RAN applications in a RAN system | |
US20210200780A1 (en) | System and method for importation of configuration item (ci) data into a configuration management database (cmdb) | |
AU2022245632B2 (en) | Run-time communications protocol parameter adjustment in containerized applications | |
AU2019204978A1 (en) | External data management in a remote network management platform | |
US11461288B2 (en) | Systems and methods for database management system (DBMS) discovery | |
CN115525396A (en) | Application management method and device based on cloud protogenesis | |
US20190306257A1 (en) | Cloud enabling resources as a service | |
US20220330013A1 (en) | Managing configurations of mobile devices across mobility configuration environments | |
US11757976B2 (en) | Unified application management for heterogeneous application delivery | |
US11301271B1 (en) | Configurable replacements for empty states in user interfaces | |
US20240338225A1 (en) | Method for criteria-based desired state management | |
US20240152372A1 (en) | Virtual representations of endpoints in a computing environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BANK OF MONTREAL, CANADA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MLADEK, MARTIN;MOMAYEZI, SHADIA;SIGNING DATES FROM 20210411 TO 20210413;REEL/FRAME:059586/0359 |
|
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 COUNTED, NOT YET MAILED |
|
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 |
|
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 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |