US8621451B1 - Responsiveness of a computing device in connection with software distribution - Google Patents
Responsiveness of a computing device in connection with software distribution Download PDFInfo
- Publication number
- US8621451B1 US8621451B1 US13/354,205 US201213354205A US8621451B1 US 8621451 B1 US8621451 B1 US 8621451B1 US 201213354205 A US201213354205 A US 201213354205A US 8621451 B1 US8621451 B1 US 8621451B1
- Authority
- US
- United States
- Prior art keywords
- code
- computing device
- package
- core
- package information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
Definitions
- the present disclosure relates generally to computers and computer-related technology. More specifically, the present disclosure relates to improving the responsiveness of a computing device in connection with software distribution.
- Computer and communication technologies continue to advance at a rapid pace. Indeed, computer and communication technologies are involved in many aspects of everyday life. Computers commonly used include everything from hand-held computing devices to large multi-processor computer systems.
- Computers are used in almost all aspects of business, industry and academic endeavors. More and more homes are using computers as well. The pervasiveness of computers has been accelerated by the increased use of computer networks, including the Internet.
- one or more servers may provide data and services to other computers.
- the one or more servers may also be responsible for managing other computers.
- a computer network may include hundreds or even thousands of computers.
- FIG. 1 is a block diagram illustrating one configuration in which systems and methods for improving the responsiveness of a computing device in connection with software distribution may be implemented;
- FIG. 2 is a diagram illustration one configuration of the task scheduler located on the core
- FIG. 3 is a flow diagram illustrating one method for improving the responsiveness of a computing device
- FIG. 4 is a flow diagram illustrating a method for improving the responsiveness of a computing device
- FIG. 5 is a diagram illustrating one configuration for code mapping in a database
- FIG. 6 is a block diagram illustrating a configuration of a network where systems and methods for improving the responsiveness of a computing device may be implemented.
- FIG. 7 illustrates various components that may be utilized in the core and/or client.
- a computing device configured for improving responsiveness in connection with software distribution.
- the computing device includes a processor and executable instructions stored in memory that is in electronic communication with the processor.
- the computing device receives a return code and package information from a remote computing device.
- the computing device also looks up a code mapping in a cache.
- the code mapping is based on the return code.
- the computing device additionally stores the package information in a database.
- the computing device further displays the code mapping and the package information.
- the code mapping may include the return code, a message and a code type. Looking up the code mapping may return a plurality of code mappings to be stored in the cache. The code mapping may be based on a task and/or received package information.
- Receiving the return code and package information from the remote computing device may be in response to the computing device sending a software package to the remote computing device.
- the return code may be received in response to a request from the computing device.
- the instructions may be further executable to discard subsequently received package information.
- the instructions may be further executable to display the code mapping and the package information on a task scheduler.
- the task scheduler may be part of LANDesk Management Suite.
- a method for improving responsiveness of a computing device in connection with software distribution includes receiving a return code and package information from a remote computing device.
- the method also includes looking up a code mapping in a cache.
- the code mapping is based on the return code.
- the method additionally includes storing the package information in a database.
- the method further includes displaying the code mapping and the package information.
- a non-transitory computer-readable medium for improving responsiveness of a computing device in connection with software distribution includes instructions for receiving a return code and package information from a remote computing device.
- the computer-readable medium also includes instructions for looking up a code mapping in a database. The code mapping is based on the return code.
- the computer-readable medium further includes instructions for storing the package information in a database.
- the computer-readable medium additionally includes instructions for displaying the code mapping and the package information.
- the systems and methods disclosed herein may allow for improving the responsiveness of a computing device in connection with software distribution.
- improving responsiveness may occur with proprietary technology such as with LANDesk Management Suite.
- Clients on a managed network require continual maintenance, monitoring and general life-cycle management. For example, a recently released security patch needs to be applied to each and every client on the network as soon as possible. If not, known vulnerabilities may compromise clients and possibly the network.
- Each client may be controlled by a core server (core).
- the core may be an administrative system, a host or another type of computing device.
- the core may include peer or child computing devices that share management responsibilities of the managed network.
- the core may perform a Software Distribution (SWD).
- SWD Software Distribution
- the core may accomplish this through the use of a software distribution module.
- the software distribution module may be a component of a management suite, such as LANDesk Management Suite (LMS).
- LMS LANDesk Management Suite
- the software distribution module may push out updates of software packages to clients on the network.
- the software distribution module may monitor and receive status updates from multiple clients undergoing a software update.
- the redundant data may be strings of data, such as success strings or failure strings. In other instances, this redundant data may be object names and/or descriptions. Redundant data may also cause redundant operations to be performed by the core.
- using specialized caching techniques on the core may allow the software distribution component to perform more efficiently.
- the core responds more rapidly when accessing and displaying software, tasks and information than it would without specialized caching techniques.
- improved responsiveness may be obtained by delaying the loading of information.
- the core may only look up and load information from a database at the request of a user. For instance, the user may request a status update regarding a task or a software package and the core loads the requested information upon that request.
- Improved responsiveness may also be obtained by further storing the loaded information in a memory cache.
- the information once the information is loaded from a database, it may be stored in a memory cache. In this case, the same information may be retrieved out of memory instead of accessing the database. Accessing information from memory may be significantly faster than accessing the same data from a database, especially if the data is redundant.
- improved responsiveness may be obtained by using smart caching routines.
- the term “smart” refers to the core's ability to determine redundant information and more efficiently process that redundant data.
- the core may receive redundant data from a variety of devices, objects and/or clients. Further, the core may determine the data to be redundant and use a smart cache to access the data. Accessing redundant data from the smart cache allows the core to respond more rapidly than if it had to access the data from a database.
- a user may request a status update regarding a specific task on the core.
- the user may use a console application located on the core.
- the console may manage clients on the network.
- the console may be a management application.
- the user may select a task managed by the console.
- the console may include a task manager and one or more tasks may be located within the task manager, which may govern multiple tasks.
- the core may send a broadcast query to all clients undergoing that specified task.
- One or more clients may respond to the core with the requested data.
- the requested data may include a return code and package information along with other possible data.
- the core may need to look up additional information based on the return code.
- the return code may be a number that corresponds to additional status information (e.g., code mapping) and each return code may be mapped to additional information in a database. This may be done to reduce the amount of data that needs to be transmitted from a client to the core. After looking up the status information, the core may display this information to the user.
- the core may look up the entire return code mapping from a database and store it in a memory cache.
- the cache may be located on the core or externally to the core. Then, when a subsequent return code is received, the core may look up the subsequently received return code in the cache rather than in the database. This may result in a significant increase in efficiency, especially if the number of clients subjected to the specified task is large.
- the core may also store the package information received from the first responding client in the memory cache. This cache may be the same or a different memory cache as is used to store the return code mappings. Additionally, the core may compare the received package information to package information stored on the core. Upon receipt of subsequently received package information from other clients, the core may discard the package information data if that data is redundant. For example, the package information for all clients relating to the same task may be identical.
- the core may display that information to a user. Status information for additional clients may be displayed as their information is subsequently obtained. This process may occur with improved efficiency if the core accesses subsequent data that needs to be looked up and/or mapped from a cache rather than from a database.
- the entire process may repeat itself when another task is selected by a user. For example, if a system administrator selects Task A, the cache may store the mapped data related to Task A. If Task B is subsequently selected, the mapped data related to Task B may be stored in the cache. The information relating to Task B may be stored in addition to or may replace the information relating to Task A.
- a managed network with a thousand clients may take the core tens of minutes to receive a status update for a task, especially if each client requires separate calls to a database for code mappings.
- a status update for the same task may occur in a matter of seconds, or sub-seconds.
- FIG. 1 is a block diagram illustrating one configuration in which systems and methods for improving the responsiveness of a computing device 102 in connection with software distribution may be implemented.
- FIG. 1 shows a core 102 , one or more client(s) 122 and a database 134 . These components may be interconnected through a network 144 . In some cases, the network 144 may be the Internet.
- Examples of the core 102 and/or the one or more clients 122 include desktop computers, laptop computers, servers, supercomputers, smartphones, tablet devices, game consoles, e-readers and/or other devices that include memory and a processor.
- the core 102 may be a computing device.
- the one or more clients 122 may be a computing device separate or remote from the core 102 .
- the core 102 may be an administrative system and the one or more clients 122 may be managed node(s).
- the core 102 may include a console 104 , a package module 116 , cache memory 118 and a communication interface 120 .
- a “module” or “engine” may be implemented in hardware, software or a combination of both.
- the core 102 may be used in connection with LANDesk Management Suite.
- the console 104 may be used to perform maintenance, monitoring and general life-cycle management on the one or more clients 122 .
- the console 104 may be a management application.
- the console 104 may send out queries, commands, requests, etc. to the one or more clients 122 on the network 144 via a communication interface 120 .
- the console may categorize these actions into tasks 108 .
- a task scheduler 106 may include various tasks 108 .
- tasks 108 may include scheduled tasks, specified tasks, public tasks, active tasks, pending tasks, successful tasks, failed tasks and/or all potential tasks 108 .
- a task 108 may represent an action that is being performed on the one or more clients 122 .
- a task 108 may also represent future actions to be performed on the one or more clients 122 on the network 144 .
- a user may select a specific task 108 to obtain information such as status updates for each client 122 undergoing the specified task 108 .
- a task 108 may involve software distribution. For example, one or more pieces of software may be bundled into a package to be installed on the one or more clients 122 .
- the package module 116 may facilitate creating, updating, monitoring and/or sending out packages.
- the package module 116 may be a component of the console 104 , located elsewhere on the core 102 or even external to the core 102 .
- the package module 116 may create and assign custom and/or default mapping codes for each package. In other words, each return code or set of return codes may vary from package to package and from one task 108 to another.
- the package module 116 may also send a copy of the package information and return code mappings to a database 134 to be stored and later accessed by the core 102 .
- the cache memory (cache) 118 may be located on the console 104 or may be connected to the console 104 .
- the cache 118 is generally a type of volatile memory such as random access memory (RAM).
- the console 104 may store information looked up in the database 134 in the cache 118 .
- the database 134 may be non-volatile memory such as a hard drive, flash memory or other type of non-volatile memory.
- the database 134 may be located on the console 104 or externally on the network 144 .
- One or more clients 122 may be connected to the core 102 via the network 144 .
- Each client 122 may include an agent 124 and a communication interface 132 .
- the agent 124 may interact with the console 104 on the core 102 .
- the agent 124 may include a package 126 that includes return codes 128 and package information 130 .
- the package 126 may be sent to the one or more clients 122 by the package module 116 located on the core 102 .
- the console 104 may determine that a software update for one or more clients 122 is required.
- the package module 116 may create and send a customized package 126 for the one or more clients 122 .
- the package 124 may include the required software updates along with accompanying return codes 128 and package information 130 .
- Each client 122 may receive the package 126 via the communication interface 132 .
- the package 126 may be sent by the core 102 via a secure connection on the network 144 .
- the agent 124 on each client 122 may send a return code 128 and package information 130 to the core 102 .
- the return code 128 may indicate the current status of the package 126 on the one or more clients 122 .
- a first return code 128 from a first client 122 may indicate to the console 104 that the package 126 was successfully installed on the first client 122 while a second return code 128 from a second client 122 may indicate that the package 126 failed installation on the second client 122 .
- Each return code 128 may represent a unique value assigned to represent an exception handled by the one or more clients 122 during a software distribution. For example, a return code 128 may provide information on what happened to the one or more clients 122 during installation of a package 126 . Some return codes 128 may signify that action is required by a user while others may notify a user of the presence of errors or success.
- the package information 130 may be used to convey information.
- the package module 116 may send a copy of the package information (not shown) to the task 108 associated with overseeing the package installation on the one or more clients 122 .
- the package information 130 may also be used for confirmation purposes.
- the task scheduler 106 may request package information (not shown) from the package module 116 .
- the core 102 receives package information 130 from the one or more clients 122 , it may compare that package information 130 with the package information (not shown) located on the core 102 . If it is a match, then the console 104 may continue processing the received data. For instance, the console 104 may continue processing the return code 128 .
- the console 104 may store the package information 130 in a cache 118 and disregard subsequently received package information 130 from a subsequent client 122 .
- the package information confirmation check may need to occur only once.
- the package information 130 may be stored in a database 134 after it is received by the core 102 .
- the package 126 may include multiple software packages such as dependent packages.
- the core 102 may receive package information 130 containing information regarding the plurality of dependent packages and store that information in the database 134 as package information 141 .
- the core 102 may store the received package information 130 in the cache 118 for future query lookups.
- package information 141 in the database 134 may include a plurality of received package information 130 from multiple clients 122 and display an overall status to a user. For example, when displaying the overall status, the core 102 may display the total successes and failures and/or the top failures for all clients 122 having the selected task 108 .
- the core 102 and/or console 104 may look up a code mapping related to the package 126 , the package information 130 and/or the task 108 .
- a code mapping may be additional information relating to a single return code 128 , or it may be additional information relating to multiple return codes 128 . Code mappings will be discussed in greater detail in connection with FIG. 2 and FIG. 5 below.
- the console 104 may need to look up the return code 128 in a database 134 to discover additional information.
- the additional information e.g., code mapping
- the core 102 may send a return code 128 to the database 134 and may receive back one or more associated return codes 136 , messages 138 and code types 140 . This additional information may be displayed to the end user.
- the user may be shown the additional information along with data received from the one or more clients 122 .
- a system administrator may be shown the name of the one or more clients 122 , each client's Internet Protocol (IP) address, status (e.g., code type), result (e.g., message), return code, etc.
- IP Internet Protocol
- the console 104 may use the package information 130 and/or the specified task 108 to determine if the code mapping may be obtained from the cache 118 or must be obtained from the database 134 . In other words, the console 104 may perform a cache 118 check. For example, if the console 104 did not perform a cache 118 check, it may improperly retrieve incorrect code mappings from the cache 118 . For instance, the console 104 may obtain a code mapping regarding another package 126 or task 108 from the cache. This would result in the user being given incorrect information. However, if the console 104 uses the package information 130 and/or the specified task 108 to perform a cache 118 check, the console 104 may correctly identify if the cache 118 includes the specified task's 108 code mapping.
- the console 104 may send the return code 128 , the package information 130 and/or the specified task 108 to the database 134 to look up additional information pertaining to the task 108 . Additionally, it may also retrieve the entire code mapping relating to all possible return codes 128 for the specified task 108 . Once the console 104 has the code mapping, it may store it in the cache 118 . Then subsequently received return codes 128 for the same task 108 may be looked up in the cache 118 rather than in the database 134 .
- the console 104 may look up the required information from a database 134 .
- the console 104 may request information relating to a single return code 128 entry or multiple return code 128 entries. For example, each time the console 104 discovers a return code 128 not in the cache 118 , it may send a request to look up that return code's 128 code mapping. Alternatively or additionally, the console 104 may request multiple or even all entries in the database 134 associated with the return code 128 , the package information 130 and/or the specified task 108 . The package information 130 or task 108 may be sent to the database 134 to help determine the correct code mapping to be employed or retrieved.
- the cache 118 may not be able to hold all the code mapping entries. In this case, the less frequently accessed entries may be overwritten. Alternatively, another scheme for determining which entries to be overwritten in the cache 118 may be used.
- FIG. 2 is a diagram illustration one configuration of the task scheduler 206 located on the core 102 .
- the task scheduler 206 in FIG. 2 is an example of the task scheduler 106 discussed in connection with FIG. 1 .
- the task scheduler 206 may include one or more tasks 208 .
- Each task 208 may include a list of one or more clients 210 and package information 230 .
- Each client 210 may represent the one or more clients 122 discussed above in connection with FIG. 1 .
- tasks 208 described in FIG. 2 may be specific examples of the tasks 108 discussed in connection with FIG. 1 described above.
- a task 208 may represent an action that is being performed, or is scheduled to be performed, on the one or more clients 210 .
- a user may select a specific task 208 to obtain information such as a status update for each of the one or more clients 210 undergoing the specified task 208 .
- the task scheduler 206 may display a list of tasks 208 . In some instances, these tasks 208 may be laid out in a tree data structure. In this case, each task 208 may represent a base level tree node. Upon selection of the base level tree node or task 208 by a user, each client 210 associated with the selected or specified tasks 208 may be displayed to a user as a child node. Each client 210 may further display information to a user in the form of additional child nodes. Additionally, display information may be shown elsewhere in the console 104 , such as in a display window (not shown).
- the task scheduler 206 includes two tasks 208 , Task A 208 a and Task B 208 b .
- Task A 208 a includes two clients 210 , Client 1 210 a 1 and Client 2 210 a 2 .
- Client 1 210 a 1 may include a code mapping 212 a 1 .
- the code mapping 212 a 1 may include a return code 236 a 1 , a message 238 a 1 and/or a code type 240 a 1 .
- the code mapping 212 a 1 may be obtained from the cache 118 , or from the database 134 if it is not in the cache 118 .
- the console 104 may broadcast a request to Client 1 210 a 1 and Client 2 210 a 2 . If Client 1 212 a 1 responds first with a return code 236 a 1 and package information 230 a , then the console 104 may need to look up the code mapping 212 a 1 from the database 134 if the code mapping 212 a 1 is not already stored in the cache 118 . Once the code mapping 212 a 1 is obtained, the console 104 may store the code mapping 212 a 1 in the cache 118 .
- the console 104 may check to see if the return code 236 a 2 is stored in the cache 118 . If it is, then the console 104 can look up Client 2 's 210 a 2 code mapping 212 a 2 in the cache 118 . In other words, the return code 236 a 2 , message 238 a 2 and code type 240 a 2 for Client 2 210 a 2 may be looked up in the cache 118 rather than the database 134 . Thus, the code mapping 212 a 2 from Client 2 210 a 2 may be obtained and displayed to a user with increased responsiveness.
- Task A 208 a may also include package information 230 a .
- the package information 230 a may be associated with Task A 208 a .
- the package information 230 a may be displayed in the task scheduler 206 next to Task A 208 a .
- the package information 230 a may be shown in connection with each client 210 a .
- the package information 230 a may be displayed along with each client 210 a belonging to Task A 208 a.
- Task B 208 b may include Client 1 210 b 1 and Client 3 210 b 3 .
- the same client(s) 210 may be listed under multiple tasks 208 .
- Client 1 may list under Task A 208 a as Client 1 210 a 1 and also listed under Task B 208 b as Client 1 210 b 1 . This is because clients 210 may be associated with different specific tasks 208 .
- Task B 208 b may also include package information 230 b .
- the package information 230 b may be received from the package module 116 and/or may be received from the clients 210 b under Task B 208 b.
- the console 104 broadcasts a request to the clients 210 b in Task B 208 b . If Client 3 210 b 3 responds first with a return code 236 b 3 and package information 230 b , the console 104 may need to look up the code mapping 212 b 3 from the database 134 . This may be the case because the cache 118 is still storing the code mapping 212 a of Task A 208 a.
- the cache 118 may only store the code mappings 212 for one task 208 at a time. In this case, then for each subsequently displayed task 208 (e.g., Task B 208 b ), the console 104 must look up the subsequent code mapping 212 b in the database 134 and store it on the cache 118 to replace the previous code mapping 212 .
- the cache 118 may be able to store multiple code mappings 212 (e.g., code mappings 212 a and 212 b ). In this case, the console 104 may discover that both code mappings 212 are already stored in the cache 118 .
- Client 1 210 b 1 and Client 3 210 b 3 in Task B 208 b may receive a code mapping 212 b similar to the code mapping 212 a described in connection with Task A 208 a .
- Client 3 210 b 3 may respond first with a return code 236 b 3 and package information 230 b , the console 104 may need to look up the code mapping 212 b 3 from the database 134 and store the code mapping 212 b 3 in the cache 118 .
- the console 104 may look up Client 3 's 210 b 3 code mapping 212 b 3 (e.g., return code 236 b 3 , message 238 b 3 and code type 240 b 3 ) along with all code mappings 212 b (e.g., all return codes 236 b , messages 238 b and code types 240 b ) relating to Task B 208 b and/or package information 230 b .
- code mapping 212 b 3 e.g., return code 236 b 3 , message 238 b 3 and code type 240 b 3
- all code mappings 212 b e.g., all return codes 236 b , messages 238 b and code types 240 b
- the console 104 can look up the code mapping 212 b 1 (e.g., return code 236 b 1 , message 238 b 1 and code type 240 b 1 ) in the cache 118 rather than making a call to the remote database 134 .
- the code mapping 212 b 1 e.g., return code 236 b 1 , message 238 b 1 and code type 240 b 1
- FIG. 3 is a flow diagram illustrating one method 300 for improving the responsiveness of a computing device.
- the core 102 may receive 302 a return code 128 and package information 130 from one or more clients 122 .
- the return code 128 may be a number, a letter, a character, a string and/or a combination thereof.
- the package information 130 may include a package ID, a package name and/or the package return code (e.g., return code 128 ).
- the package information 130 for a single package may be tracked. For example, the package name of the main package may be returned. As another example, if there are multiple packages, such as if the main package 126 includes dependent packages, and any one of those dependent packages fail, the failing package return code may be tracked and returned. In some cases, the package return code 128 may be an integer value. In other cases where there may be multiple packages in the package installation, the return code 128 for the entire installation operation may be either the first failing package return code or the main package success return code. For example, the one or more clients 122 may process each dependent return code to validate that the dependent package has successfully installed, and if one dependent package fails to install, there may be no reason to continue the other dependent packaged installations. Thus, the return code for that failed dependent package may be returned to the core 102 along with package information 130 regarding both the main package 126 and the failed dependent package.
- the core 102 may receive the return code 128 and package information 130 from the one or more clients 122 in response to the core 102 sending a software package to the one or more clients 122 .
- the core 102 may wait to receive 302 return codes 128 for each command that is run on the one or more clients 122 .
- the one or more clients 122 may send their status on independently when they run the selected task 108 .
- the return code 128 may be used to look up 304 the code mapping 212 in the cache 118 .
- the core 102 may look up the code mapping 212 in a database 134 .
- the core 102 may request that a database 134 on the network 144 look up 304 additional information (e.g., a return code 136 , message 138 and code type 140 ) based on the return code 128 received from one or more clients 122 .
- the core 102 may also send the task 108 and/or the package information 130 to the cache 118 and/or database 134 to assist in identifying the correct code mapping 212 .
- the core 102 may store 306 the code mapping 212 and/or the package information 130 in a cache 118 .
- the cache 118 may be located on the core 102 , for example.
- the core 102 may look up 308 a subsequent code mapping 212 from the cache 118 rather than from the database 134 .
- the core 102 may display 310 the code mapping 212 and package information 130 to a user.
- the core 102 may display 310 the code mapping 212 a 1 , the subsequent code mapping 212 a 2 and the package information 230 a .
- the code mapping 212 a 1 and the subsequent code mapping 212 a 2 may be the same.
- FIG. 4 is a flow diagram illustrating a method 400 for improving the responsiveness of a computing device.
- the core 102 may receive 402 a request from a user regarding a specific task 108 .
- a user such as a system administrator may select or give focus to a task 108 and request information regarding the specified task 108 .
- the core 102 may request 404 status information from the one or more clients 122 regarding the specified task 108 .
- the core 102 may also look up 406 the return code mappings 212 from the database 134 .
- the look up function may be based on the selected task 108 and/or the user request.
- the core 102 may store 408 the code mappings 212 in the cache 118 .
- the core 102 may receive 406 a return code 128 and package information 130 from the one or more clients 122 corresponding to the specified task 108 .
- the one or more clients 122 may send status information to the core 102 at a predetermined time.
- a client 122 may be programmed to send a return code 128 to the core 102 upon completion (e.g., success or failure) of a package 126 installation.
- the core 102 may receive 410 a return code 236 a 1 and package information 230 a from a first client 210 a 1 .
- the first client 210 a 1 may send a return code 236 a 1 and package information 230 a when multiple clients 210 on the network 144 are queried.
- the core 102 may look up 408 code mappings 212 a in a database 134 . This may occur because the code mappings 212 a have not yet been stored in the cache 118 . Otherwise, the core 102 may look up 414 the code mappings from the cache 118 .
- this may occur if the one or more clients 112 are sending return codes 128 to the core 102 at arbitrary times.
- the code mappings 212 a looked up 408 in the database 134 may then be stored 410 in a cache 118 .
- the package information 230 a may also be stored 410 in the cache 118 .
- the core 102 may store 412 the package information 130 in the cache 118 and/or database 134 .
- the processes of storing 412 package information may occur for each packet information 130 received. In this way, the core 102 may be able to later present to the user the over status report of combined successes and failures of software distribution.
- the core 102 may also receive 410 a subsequent return code 236 a 2 and package information 230 a from a second client 210 a 2 for the same task 208 . Because the code mapping 212 a 2 for the second client 210 a 2 may be the same as the code mapping 212 a 1 for the first client 210 a 1 , the core 102 looks up 414 the subsequent code mapping 212 a 2 from the cache 118 . For example, the subsequent code mapping 212 a 2 may be based on the previously looked up 406 return code 236 a 1 . This may be accomplished similarly to the way the core 102 looks up 414 the code mapping 212 from the cache 118 upon receipt of the first return code 236 a 1 from the first client 210 a 1 .
- the core 102 may display 416 the code mapping 212 a 1 , the subsequent code mapping 212 a 2 , and the package information 230 a .
- the code mapping 212 a 1 , the subsequent code mapping 212 a 2 , and the package information 230 a may be displayed to a user, such as a system administrator.
- the core 102 may display 416 the status information for each client 210 a simultaneously or may display 416 the information as it is received 402 and 412 .
- FIG. 5 is a diagram illustrating one configuration for code mapping in a database 534 .
- the database 534 may include return codes 536 , messages 538 and/or code types 540 .
- the return codes 536 may be a number, digit, letter, character, string and/or any combination thereof. Each return code 536 may be associated with a specific message 538 and code type 540 .
- return code 536 “0” may be associated with the message 538 , “Successful install” and code type 540 , “Success.”
- the database 534 may look up “2” under return code 536 “2.” The database 534 may then return the message 538 , “Fatal error during installation” and code type 540 , “Failed.”
- the database 534 may return all values for each return code 536 , message 538 and code type 540 .
- the database 534 may return multiple and/or all entries in the database 534 .
- the database 534 may return ⁇ 0, Successful install, Success ⁇ , ⁇ 1, Data is invalid, Failed ⁇ , ⁇ 2, Fatal error during installation, Failed ⁇ , ⁇ 3, User canceled installation, Failed ⁇ , ⁇ 4, Parameter is invalid, Failed ⁇ , ⁇ n, Message n, Code type n ⁇ .
- Code type n may represent “successful,” “failed,” “pending,” “active,” “not specified” or a variety of other code types 540 .
- the core 102 may then store this information in a cache 118 . Then, when the core 102 receives a subsequent return codes 128 from one or more clients 122 , the core 102 can use the data stored in the cache 118 to retrieve the additional information (e.g., return code 536 , message 538 and code type 540 ).
- FIG. 6 is a block diagram illustrating a configuration of a network 600 where systems and methods for improving the responsiveness of a computing device (e.g., core) 602 may be implemented.
- a core 602 e.g., computing device and/or administrative system
- the router 642 may be connected to switches 644 a , 644 b , 644 c .
- the switch 644 a may be connected to several clients (e.g., managed nodes and/or mobile devices) 622 a , 622 b and 622 c , via their respective subnets 646 a , 646 b and 646 c .
- the switch 644 b may be connected to several clients 622 d , 622 e and 622 f , via their respective subnets 646 d , 646 e and 646 f .
- the switch 644 c is connected to several clients 622 g , 622 h and 622 i , via their respective subnets 646 g , 646 h and 646 i .
- FIG. 6 only shows one router 642 and a limited number of switches 644 , subnets 646 and clients 622 , a varied numbers of routers 642 , switches 644 , subnets 646 and clients 622 may be included in networks and/or systems where methods and systems for improving the responsiveness of a computing device 602 may be implemented.
- the core 602 illustrated in FIG. 6 may be configured similarly to the core 102 described above.
- the clients 622 illustrated in FIG. 6 may be configured similarly to the clients 112 described above.
- FIG. 7 illustrates various components that may be utilized in the core 702 and/or client 722 .
- the illustrated components may be located within the same physical structure or in separate housings or structures.
- the core 702 or client 722 may include one or more processor(s) 756 and memory 747 .
- the memory 747 may include instructions 748 a and data 750 a .
- the processor 756 controls the operation of the core 702 or client 722 and may be, for example, a microprocessor, a microcontroller, a digital signal processor (DSP) or other device known in the art.
- the processor 756 may be in electronic communication with the memory 747 .
- the processor 756 typically performs logical and arithmetic operations based on program instructions 748 b and/or data 750 b it loads from the memory 747 .
- the core 702 or client 722 typically may include one or more communication interfaces 752 for communicating with other electronic devices.
- the communication interfaces 752 may be based on wired communication technology, wireless communication technology or both. Examples of different types of communication interfaces 752 include a serial port, a parallel port, a Universal Serial Bus (USB) port, an Ethernet adapter, an IEEE 1394 bus interface, a small computer system interface (SCSI) bus interface, an infrared (IR) communication port, a Bluetooth wireless communication adapter, a network storage device, an external hard drive, an optical drive (e.g., Compact Disc (CD) drive, Digital Video Disc (DVD) drive, Blu-ray drive, etc.) and so forth.
- USB Universal Serial Bus
- IR infrared
- the core 702 or client 722 typically may include one or more input devices 754 .
- input devices 754 include a keyboard, mouse, microphone, remote control device, button, joystick, trackball, touchpad, lightpen, camera and/or other input device 754 .
- the input device 754 may receive input from another device and/or from a user of the core 702 or client 722 .
- the input device 754 may include multiple devices, blocks and/or modules that the core 702 or client 722 may use to receive information.
- an input device 754 may be an Ethernet card that can receive information from another computing device connected to a network 144 , 544 .
- the input device 754 may be a computer mouse that may be used by the core 702 or the client 722 to detect user interaction such as a “click” on an icon and/or translation of a cursor.
- the core 702 or client 722 typically may include one or more output devices 758 .
- Examples of different kinds of output devices 758 include displays, projectors, speakers, tactile devices, network cards, wireless transmitters, infrared transmitters, lights, etc.
- the output device 758 may output, transmit, send, display, project, emit and/or convey information to another device and/or to a user of the core 702 or client 722 .
- the output device 758 may be a monitor that can display information (e.g., images) to a user.
- the output device 758 may be a network card that can transmit information to another computing device connected to a network.
- the output device 758 may display a graphical user interface (GUI) to facilitate user interaction.
- GUI graphical user interface
- the client 722 may display a window with icons that a user may interact with using a keyboard and/or mouse (e.g., “keyboard/mouse”).
- Display devices 760 used with configurations disclosed herein may utilize any suitable image projection technology, such as a cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED), gas plasma, electroluminescence or the like.
- a display controller 762 may also be provided for converting data 750 a stored in the memory 747 into text, graphics and/or moving images (as appropriate) shown on the display device 760 .
- FIG. 7 illustrates only one possible configuration of a core 702 or client 722 .
- Various other architectures and components may be utilized.
- determining encompasses a wide variety of actions and, therefore, “determining” can include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” can include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” can include resolving, selecting, choosing, establishing and the like.
- processor should be interpreted broadly to encompass a general purpose processor, a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a controller, a microcontroller, a state machine, and so forth.
- a “processor” may refer to an application specific integrated circuit (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), etc.
- ASIC application specific integrated circuit
- PLD programmable logic device
- FPGA field programmable gate array
- processor may refer to a combination of processing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
- memory should be interpreted broadly to encompass any electronic component capable of storing electronic information.
- the term memory may refer to various types of processor-readable media such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, etc.
- RAM random access memory
- ROM read-only memory
- NVRAM non-volatile random access memory
- PROM programmable read-only memory
- EPROM erasable programmable read-only memory
- EEPROM electrically erasable PROM
- flash memory magnetic or optical data storage, registers, etc.
- instructions and “code” should be interpreted broadly to include any type of non-transitory computer-readable statement(s).
- the terms “instructions” and “code” may refer to one or more programs, routines, sub-routines, functions, procedures, etc.
- “Instructions” and “code” may have a single computer-readable statement or many computer-readable statements.
- a computer-readable medium refers to any available medium that can be accessed by a computer or processor.
- a computer-readable medium may have RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer or processor.
- Disk and disc includes 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. It should be noted that a computer-readable medium may be non-transitory and tangible.
- Software or instructions may also be transmitted over a transmission medium.
- a transmission medium For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of transmission medium.
- DSL digital subscriber line
- the methods disclosed herein include one or more steps or actions for achieving the described method.
- the method steps and/or actions may be interchanged with one another without departing from the scope of the claims.
- the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims.
Abstract
Description
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/354,205 US8621451B1 (en) | 2012-01-19 | 2012-01-19 | Responsiveness of a computing device in connection with software distribution |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/354,205 US8621451B1 (en) | 2012-01-19 | 2012-01-19 | Responsiveness of a computing device in connection with software distribution |
Publications (1)
Publication Number | Publication Date |
---|---|
US8621451B1 true US8621451B1 (en) | 2013-12-31 |
Family
ID=49776246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/354,205 Active 2032-03-16 US8621451B1 (en) | 2012-01-19 | 2012-01-19 | Responsiveness of a computing device in connection with software distribution |
Country Status (1)
Country | Link |
---|---|
US (1) | US8621451B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120243394A1 (en) * | 2011-03-24 | 2012-09-27 | Lee Hoo-Seung | Wireless optical disc apparatus and method of operating the same |
US20170192707A1 (en) * | 2015-12-30 | 2017-07-06 | Kevin Arnold | External hard drive device with cloud drive support |
US11570587B2 (en) * | 2017-01-26 | 2023-01-31 | Nuance Communications, Inc. | Techniques for remotely controlling an application |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020033844A1 (en) * | 1998-10-01 | 2002-03-21 | Levy Kenneth L. | Content sensitive connected content |
-
2012
- 2012-01-19 US US13/354,205 patent/US8621451B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020033844A1 (en) * | 1998-10-01 | 2002-03-21 | Levy Kenneth L. | Content sensitive connected content |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120243394A1 (en) * | 2011-03-24 | 2012-09-27 | Lee Hoo-Seung | Wireless optical disc apparatus and method of operating the same |
US20170192707A1 (en) * | 2015-12-30 | 2017-07-06 | Kevin Arnold | External hard drive device with cloud drive support |
US10642516B2 (en) * | 2015-12-30 | 2020-05-05 | Seagate Technology Llc | External hard drive device with cloud drive support |
US11570587B2 (en) * | 2017-01-26 | 2023-01-31 | Nuance Communications, Inc. | Techniques for remotely controlling an application |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220417087A1 (en) | System and method for generic configuration management system application programming interface | |
US10979440B1 (en) | Preventing serverless application package tampering | |
US10341199B2 (en) | State synchronization in a service environment | |
US10635429B2 (en) | Systems and methods of just-in-time proactive notification of a product release containing a software fix | |
CN110324399B (en) | Bringing cluster awareness into a facility management portal | |
US9092246B2 (en) | Code modification of rule-based implementations | |
US10929373B2 (en) | Event failure management | |
US11914464B2 (en) | Method and system for predicting user involvement requirements for upgrade failures | |
US11516070B1 (en) | Method and system for diagnosing and remediating service failures | |
US20200228417A1 (en) | System and method of associating metadata with computing resources across multiple providers | |
US20180123781A1 (en) | Fault tolerant automatic secret rotation | |
KR20220043818A (en) | Service information processing method, device, equipment and computer storage medium | |
EP3629522A1 (en) | Systems and methods for testing resilience of a distributed network | |
US8621451B1 (en) | Responsiveness of a computing device in connection with software distribution | |
US20190340005A1 (en) | Method and system for lifecycle management optimization | |
US10637950B1 (en) | Forwarding content on a client based on a request | |
US9288178B2 (en) | Inventory updating of an internet protocol (IP) alias within a highly available computing cluster | |
US8671186B2 (en) | Computer system management method and management apparatus | |
CN111488232B (en) | Out-of-box solution level configuration and diagnostic logging and reporting systems and methods | |
US11972028B2 (en) | Method and system for managing data protection feature compatibility | |
US11656948B2 (en) | Method and system for mapping protection policies to data cluster components | |
US11886909B2 (en) | Method and system for determining application migration eligibility in execution environments | |
US20220398346A1 (en) | Method and system for managing data protection feature compatibility | |
US11740807B2 (en) | Method and system for mapping data protection policies to data clusters | |
KR102038802B1 (en) | Method for Apparatus for Integration Management of Web Page |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CRIMSON CORPORATION, DELAWARE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MORLEY, DAVID BRADFORD;THOMPSON, BLAKE ALAN;REEL/FRAME:027659/0044 Effective date: 20120118 |
|
AS | Assignment |
Owner name: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT, CALIFO Free format text: AMENDMENT NUMBER FOUR TO PATENT SECURITY AGREEMENT;ASSIGNORS:LANDESK GROUP, INC.;LANDSLIDE HOLDINGS, INC.;LANDESK SOFTWARE, INC.;AND OTHERS;REEL/FRAME:028318/0845 Effective date: 20120601 |
|
AS | Assignment |
Owner name: LANDESK SOFTWARE, INC., UTAH Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:028413/0913 Effective date: 20120619 Owner name: CRIMSON CORPORATION, UTAH Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:028413/0913 Effective date: 20120619 Owner name: LANDSLIDE HOLDINGS, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:028413/0913 Effective date: 20120619 Owner name: CRIMSON ACQUISITION CORP., UTAH Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:028413/0913 Effective date: 20120619 Owner name: LANDESK GROUP, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO CAPITAL FINANCE, LLC;REEL/FRAME:028413/0913 Effective date: 20120619 |
|
AS | Assignment |
Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINIS Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:LANDESK SOFTWARE, INC.;REEL/FRAME:028541/0782 Effective date: 20120629 |
|
AS | Assignment |
Owner name: LANDESK SOFTWARE, INC., UTAH Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT;REEL/FRAME:030993/0622 Effective date: 20130806 |
|
AS | Assignment |
Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YO Free format text: SECURITY AGREEMENT;ASSIGNORS:LANDESK GROUP, INC.;LANDSLIDE HOLDINGS, INC.;CRIMSON ACQUISITION CORP.;AND OTHERS;REEL/FRAME:031029/0849 Effective date: 20130809 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: JEFFERIES FINANCE LLC, NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNORS:LANDESK SOFTWARE, INC.;CRIMSON CORPORATION;REEL/FRAME:032333/0637 Effective date: 20140225 |
|
AS | Assignment |
Owner name: CRIMSON CORPORATION, UTAH Free format text: RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 031029/0849;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:040171/0307 Effective date: 20160927 Owner name: CRIMSON CORPORATION, UTAH Free format text: RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 032333/0637;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:040171/0037 Effective date: 20160927 |
|
AS | Assignment |
Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YORK Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:040183/0506 Effective date: 20160927 Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YORK Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:040182/0345 Effective date: 20160927 Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YO Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:040182/0345 Effective date: 20160927 Owner name: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT, NEW YO Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:040183/0506 Effective date: 20160927 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, NEW YORK Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:041052/0762 Effective date: 20170120 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, NEW YORK Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:041459/0387 Effective date: 20170120 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL Free format text: SECOND LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:041052/0762 Effective date: 20170120 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL Free format text: FIRST LIEN PATENT SECURITY AGREEMENT;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:041459/0387 Effective date: 20170120 |
|
AS | Assignment |
Owner name: CRIMSON CORPORATION, UTAH Free format text: RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40183/0506;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:041463/0457 Effective date: 20170120 Owner name: CRIMSON CORPORATION, UTAH Free format text: RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40182/0345;ASSIGNOR:JEFFERIES FINANCE LLC;REEL/FRAME:041463/0581 Effective date: 20170120 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
SULP | Surcharge for late payment | ||
AS | Assignment |
Owner name: IVANTI, INC., UTAH Free format text: MERGER;ASSIGNOR:CRIMSON CORPORATION;REEL/FRAME:045983/0075 Effective date: 20180406 |
|
AS | Assignment |
Owner name: CRIMSON CORPORATION, UTAH Free format text: RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41052/0762;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:054560/0857 Effective date: 20201201 Owner name: CRIMSON CORPORATION, UTAH Free format text: RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41459/0387;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:054637/0161 Effective date: 20201201 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, MARYLAND Free format text: SECURITY INTEREST;ASSIGNORS:CELLSEC, INC.;PULSE SECURE, LLC;IVANTI, INC.;AND OTHERS;REEL/FRAME:054665/0062 Effective date: 20201201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNORS:CELLSEC, INC.;PULSE SECURE, LLC;INVANTI, INC.;AND OTHERS;REEL/FRAME:054665/0873 Effective date: 20201201 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |