Systems, methods, and media for graphical task creation
Summary by NHIP
Graphical Task Creation System
The system receives instructions to define configurable automation tasks and applies matching access controls to stored groups. It generates a script based on received parameter definitions and values, then transmits it to remote target systems for execution.
Claim Score by NHIP
Abstract
Embodiments of the disclosure enable a user to utilize graphical options for a creating a parameterized task. In one aspect, a computer-implemented method and system for task creation and management are provided. An instruction to define a task to define a configurable automation task based on structured data is received. One or more parameter definitions associated with the task are received. A first user interface is generated based on the one or more parameter definitions, through which one or more parameter definition values are received. Based on the instruction, the one or more received parameter definitions, and the one or more received parameter values, a script is generated. A second user interface is configured to integrate the generated script with one or more remote execution capabilities.

Term
9.2 yearsleft in the term
Expires 23 November 2035, including 5 days of term adjustment.
- Priority and filed
- Granted
- Today
- Expires
20 claims: 3 independent, 17 dependent
- 1Broadest claimClaim Score 17, narrow(NHIP)A method comprising:receiving, by a computing device, a first instruction to define a configurable automation task based on structured data;applying access controls to the configurable automation task that match a group stored on the computing device;adjusting one or more remote target systems in the configurable automation task based on the group stored on the computing device;upon determining that the configurable automation task is at least partly a remote task rather than a local task, obtaining data relating to a first remote target system of the one or more remote target systems associated with the configurable automation task;upon determining that the obtained data relating to the first remote target system of the one or more remote target systems matches data of at least one target system of target systems associated with the computing device, receiving one or more parameter types and parameter definitions associated with the configurable automation task;generating, by a processor, a first user interface based on the received one or more parameter types and parameter definitions;receiving one or more parameter definition values via the generated first user interface;generating, by the processor, a script based on the received first instruction, the received one or more parameter definitions, and the received one or more parameter definition values;transmitting the generated script to the first remote target system to perform a first operation of one or more operations associated with the configurable automation task in accordance with the received one or more parameter definitions, and the received one or more parameter definition values;and utilizing, by the processor, a second user interface configured to integrate the generated script with one or more remote execution capabilities of the one or more remote target systems by transmitting, to a second remote target system of the one or more remote target systems, a second instruction to perform a second operation of the one or more operations associated with the configurable automation task, the second operation being different from the first operation.
- 11A computing device for generating a task, the computing device comprising:a memory storing data associated with one or more client devices, and computer-executable instructions;and a processor configured to execute the computer-executable instructions to: receive, by the computing device, a first instruction to define a configurable automation task based on structured data;apply access controls to the configurable automation task that match a group stored on the computing device;adjust one or more remote target systems in the configurable automation task based on the group stored on the computing device;upon determining that the configurable automation task is at least partly a remote task rather than a local task, obtain data relating to a first remote target system of the one or more remote target systems associated with the configurable automation task;upon determining that the obtained data relating to the first remote target system of the one or more remote target systems matches data of at least one target systems associated with the computing device, receive one or more parameter types and parameter definitions associated with the configurable automation task;generate a first user interface based on the received one or more parameter definitions and one or more parameter types;receive one or more parameter definition values via the generated first user interface;generate a script based on the received first instruction, the received one or more parameter definitions, and the received one or more parameter definition values;transmit the generated script to the first remote target system to perform a first operation of one or more operations associated with the configurable automation task in accordance with the received one or more parameter definitions, and the received one or more parameter definition values;and utilize a second user interface configured to integrate the generated script with one or more remote execution capabilities of the one or more remote target systems by transmitting, to a second remote target system of the one or more remote target systems, a second instruction to perform a second operation of the one or more operations associated with the configurable automation task, the second operation being different from the first operation.
- 16A computer-readable storage medium having computer-executable instructions embodied thereon, wherein, upon execution by at least one processor, the computer-executable instructions cause the processor to:receive, by a computing device, a first instruction to define a configurable automation task based on structured data;apply access controls to the configurable automation task that match a group stored on the computing device;adjust one or more remote target systems in the configurable automation task based on the group stored on the computing device;upon determining that the configurable automation task is at least partly a remote task rather than a local task, obtain data relating to a first remote target system of the one or more remote target systems associated with the configurable automation task;upon determining that the obtained data relating to the first remote target system of the one or more remote target systems matches data of at least one target system of target systems associated with the computing device, receive one or more parameter types and parameter definitions associated with the configurable automation task;generate a first user interface based on the received one or more parameter definitions and the received one or more parameter types;receive one or more parameter definition values via the generated first user interface;based on the received first instruction, the one or more received parameter definitions, and the one or more received parameter values, generating a script;transmit the generated script to the first remote target system to perform a first operation of one or more operations associated with the configurable automation task in accordance with the received one or more parameter definitions, and the received one or more parameter definition values;and utilize a second user interface configured to integrate the generated script with one or more remote execution capabilities of the one or more remote target systems by transmitting, to a second remote target system of the one or more remote target systems, a second instruction to perform a second operation of the one or more operations associated with the configurable automation task, the second operation being different from the first operation.
Independent claims3
64 paragraphs in 5 sections, as filed
FIELD OF DISCLOSURE
0001The subject matter described herein relates generally to automated task creation and more specifically, to using graphical and/or platform-agnostic parameters to create a task.
BACKGROUND
0002In computer systems, tasks provide a way for users to set up actions or programs to achieve a desired functionality. Tasks often have parameters, which may include variables that correspond to received information. Through parameterization, it is possible to create robust tasks. Creating tasks has traditionally been performed by technical users that understand how to write programming code to define a task and its parameters. Non-technical users of a system may recognize ways in which a task improves performance of their job functions, or the system overall. However, these non-technical users are typically unable to write the code to create a task and its associated parameters.
SUMMARY
0003Embodiments of the disclosure enable a script to be generated in a straightforward manner. In one aspect, a computer-implemented method for creating a task is provided. The method includes receiving a configurable automation instruction based on structured data, along with one or more parameter definitions associated with the task. A first user interface is generated based on the one or more parameter definitions. One or more parameter definition values are received. Based on the instruction, the one or more parameter definitions, and the one or more parameter values, a script is generated in accordance with the one or more parameters. A second user interface is configured to integrate the generated script with one or more remote execution capabilities.
0004In another aspect, a computing device for generating a task is provided. The computing device includes a memory storing data associated with one or more client devices, and computer-executable instructions, and a processor configured to execute the computer-executable instructions. The computer-executable instructions provide for receiving an instruction to define a configurable automation task based on structured data and receiving one or more parameter definitions associated with the task. The computer-executable instructions further provide for generating a first user interface based on the one or more parameter definitions. The computer-executable instructions further provide for receiving one or more parameter definition values. The computer-executable instructions further provide for generating a script to perform one or more operations associated with the task in accordance with the one or more parameters, based on the instruction, the one or more parameter definitions, and the one or more parameter values. The computer-executable instructions further provide for a second user interface configured to integrate the generated script with one or more remote execution capabilities.
0005In yet another aspect, a computer-readable storage medium having computer-executable instructions embodied thereon is provided. Upon execution by at least one processor, the computer-executable instructions cause the processor to receive an instruction to define a configurable automation task based on structured data, along with one or more parameter definitions associated with the task. The computer-executable instructions further provide generating a user interface based on the one or more parameter definitions and receiving one or more parameter definition values. The computer-executable instructions also provide for generating a script, based on the received instruction, the one or more received parameter definitions, and the one or more received parameter values. The computer-executable instructions also provide a second user interface configured to integrate the generated script with one or more remote execution capabilities.
0006This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
0007<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram illustrating an example operating environment.
0008<figref idref="DRAWINGS">FIG. 2</figref> is a flowchart illustrating an example method for defining a task to generate a script.
0009<figref idref="DRAWINGS">FIG. 3</figref> is a flowchart illustrating an example method for managing a task.
0010<figref idref="DRAWINGS">FIG. 4</figref> is a flowchart illustrating an example method for managing task endpoints.
0011<figref idref="DRAWINGS">FIG. 5</figref> is a flowchart illustrating an example method for creating a task.
0012<figref idref="DRAWINGS">FIG. 6</figref> is a block diagram illustrating an example computing device.
0013Corresponding reference characters indicate corresponding parts throughout the drawings.
DETAILED DESCRIPTION
0014Embodiments of the disclosure enable a task to be created, exported, and/or managed using information processing, parameterization, and/or graphical task creation. Some embodiments provide for receiving a request for creating a new task at a computing device. The computing device may receive information regarding the task. For example, the computing device may receive information specifying a task type, a task location, and parameter definition information. Some embodiments provide for task creation options to be presented graphically.
0015Aspects of the disclosure provide for effectively and efficiently creating a task. A task may be any type of parameterized function or program. For example, input from a non-technical user may be received which selects parameters to generate a script without having to code the script. In this manner, the non-technical user may be provided the advantage of configuring or programming a computing device in a way that is far more efficient than having the non-technical user struggle with coding the operations. Moreover, access to the generated script may be provided to other users. The other users that seek to use the script may also be non-technical, and may be provided the ability to utilize the script without having to understand the underlying code. Another aspect provides for specifying one or more remote system endpoints so that the task may be remotely executed, which may involve using management software already present on the remote system endpoint. This in turn may provide for parameterized task execution on the remote endpoint system. Additionally, tasks may be imported and exported, such as in a file. In this manner, the task may be run on remote systems without specialized coding knowledge. A further aspect provides for assigning a task to one or more task groups, where access controls may be assigned to a group and/or individuals in the group. In this manner, a task may be authorized for a group such that, upon transmission of the task to a remote system, access control may be applied to the task on the remote system.
0016The methods and systems described herein may be implemented using computer programming or engineering techniques including computer software, firmware, hardware or a combination or subset thereof. As described above, at least one technical problem known in task creation systems is how to provide a user with an interface to create a task without the user having to write code. The systems, methods, and media described herein address at least that technical problem. For example, by presenting task creation options, the accuracy of a task creation process may be improved by removing inadvertent coding errors. This, in turn, improves both the efficiency and the accuracy of task creation. Just as important, an incorrectly configured task introduces errors for the users that then use the task. As such, an incorrectly configured task is often worse than no task at all. This is because an incorrect task produces a cascading effect for all the subsequent users of the task, along with having to determine where the errors are occurring. This in turn tends to decrease efficiency and accuracy more than if the task had not been utilized in the first place. Allowing non-technical users to create tasks correctly, the first time, helps ensure smoother system operations not just for the user creating the task, and all subsequent users of the task, but even users who tangentially interact with data utilized by the task.
0017The technical effect of the systems and processes described herein is achieved by performing at least one of the following operations: a) receiving an instruction to define a configurable automation task based on structured data; b) receiving one or more parameter definitions associated with the task; c) generating a first user interface based on the one or more parameter definitions; d) receiving one or more parameter definition values; e) based on the instruction, the one or more parameter definitions, and the one or more parameter values, generating a script in accordance with the one or more parameters; f) utilizing a second user interface configured to integrate the generated script with one or more remote execution capabilities; g) transmitting, to a first target system of one or more target systems, a first instruction to implement a first operation of the one or more operations; h) generating the script comprises transmitting, to a second target system of the one or more target systems, a second instruction to implement a second operation of the one or more operations; i) generating the script such that the script is configured to access at least one remote data device to retrieve data; j) generating the script such that the script is configured to transmit, to a first target system of one or more target systems, a first instruction to retrieve first data from a first remote data device; k) transmitting, to a second target system of the one or more target systems, a second instruction to retrieve first data from the first remote data device; l) transmitting, to a second target system of the one or more target systems, a second instruction to retrieve first data from a second remote data device; m) identifying at least one target system to perform at least one operation; n) determining whether a return value received from at least one target system satisfies a predetermined threshold, and generate feedback indicative of the determination; o) outputting the one or more parameter definitions as graphical selection choices in the user interface based on a parameter type and a template value associated with a parameter definition; p) comparing a task identifier with a group identifier on at least one or more target systems; q) determining whether a group identifier corresponds to the task identifier and assigning a task permission level; r) determining whether a return value received from at least one target system satisfies a predetermined threshold, and generate feedback indicative of the determination; s) providing access to at least one remote target system of one or more target systems to retrieve data and to transmit, to the at least one remote target system, a first instruction to implement at least one operation; t) transmitting the script to one or more target systems to perform one or more operations associated with the script, and transmitting the script to a second target system of the one or more target systems to perform a second operation associated with the script in accordance with the one or more parameters; u) receive input specifying a task group identifier associated with the script, the task group identifier for comparison with a target group identifier on at least one target system to determine script access based on a comparison of the task group identifier with the target group identifier; v) receiving input corresponding to an operating system or management software of a first target system, and generating the script such that the script is configured according to the operating system or the management software; w) reducing network bandwidth usage due to at least a lower task error rate; x) improved user efficiency via user interface interaction; y) increased user interaction performance; and z) increased speed of task creation.
0018<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram illustrating an embodiment of an operating environment <b>100</b>. The environment <b>100</b> includes one or more computing devices <b>110</b>. The terms “computing system,” “computing device,” “device,” and “computer” may be used interchangeably. Computing device <b>110</b> is configured to receive, store, and transmit data (such as user input, task data, script data, operating system data, access control data, etc.) with respect to other computing devices. A task navigator <b>120</b> is configured to provide access to one or more tasks stored in the computing device <b>110</b>. For example, the task navigator <b>120</b> may provide an interface for a user to view and/or utilize any available tasks (e.g., a first interface). A task editor <b>130</b> may be configured to provide for editing of one or more tasks stored in the computing device <b>110</b>. For example, the task editor <b>130</b> may provide a graphical representation of a task. In some embodiments, the task editor <b>130</b> is configured to be text-based (e.g., command line, etc.).
0019The computing device <b>110</b> is configured to receive input from a user <b>140</b>. A user <b>140</b> may, for example, input data into the computing device <b>110</b> to utilize the task navigator <b>120</b> and/or task editor <b>130</b>. Computing device <b>110</b> may receive data from and/or transmit data to another computing device over a network <b>150</b>. The network <b>150</b> may include a Transmission Control Protocol/Internet Protocol (TCP/IP) infrastructure to facilitate communication over the Internet, although any suitable type of computer network may be utilized.
0020The environment <b>100</b> includes one or more endpoints <b>160</b>. The terms “endpoint,” “remote computing device,” “remote computer,” “target,” “target computer,” “target system,” and “target device” may be used interchangeably. Any suitable number of endpoints <b>160</b> may be accessed from the computing device <b>110</b>, and multiple endpoints <b>160</b> may be accessed simultaneously in some embodiments. Data on endpoints <b>160</b> utilized by the computing device <b>110</b> may include, for example, access rights, group identifiers, operating system information, configuration data, task data, script data, parameter data, command line data, etc. In other embodiments, this data may be transmitted to the endpoints <b>160</b> by the computing device <b>110</b> “on demand” at the time the task is executed.
0021<figref idref="DRAWINGS">FIG. 2</figref> is a flowchart of an embodiment of a method <b>200</b> of script generation in a computing device <b>110</b> (for example, a server, client, mobile device, etc.). At <b>210</b>, the computing device <b>110</b> receives one or more instructions to define a task. A task may be any type of program or function in a computing system. Task behavior may be defined through a task editor <b>130</b>. A task may take one of two primary forms: simple or complex. Examples of simple tasks include system commands, application commands, and pre-existing scripts. An example of a simple system command is “uname—a”. An example of a simple application command is “service apache2 restart”. An example of a custom script stored in a system is “/apps_01/scripts/stopApp.sh”. By contrast, complex tasks implement software code which is stored within the computing device <b>110</b>, rather than on another system.
0022At <b>220</b>, the computing device receives a parameter definition. The parameter may be used to receive and store input into a task. Parameter definitions have properties, such as a parameter name (or identifier), a description, a parameter type, a template value, and the like. The parameter name may identify the parameter utilizing any suitable naming convention (such as “$1” for the first parameter of a task, “$2” for the second parameter of a task, etc.). The description may provide information about describing the parameter. The parameter type may be used to generate graphical interface elements such as radio buttons, drop-down lists, checkboxes, text fields, and/or any other suitable graphical input mechanism. Command-line interfaces (input fields, menus, yes/no selections, etc.) may also be utilized. A template value may be determined based on, for example, input received specifying which options are to be displayed as a graphical input mechanism (such as a radio button).
0023At <b>230</b>, the computing device checks to see if there are more parameter definitions. In one embodiment, the computing device may receive a predetermined quantity of parameter definitions associated with a task, such as where a task is associated with a predetermined number of parameters. In other embodiments, the quantity of parameters may not be known ahead of time (such as a runtime declaration).
0024At <b>240</b>, a script is generated to enable a computing device to perform one or more operations associated with the parameter(s), which are in turn associated with the received task. The script may be performed on the same computing device, such as in the case of a local task. The script may also be performed remotely on one or more endpoints <b>160</b> through an interface (e.g., a second user interface), as depicted in the exemplary operating environment of <figref idref="DRAWINGS">FIG. 1</figref>. For example, a received task may have two parameters, a first parameter $1 having a checkbox type and a second parameter $2 having a drop-down list type. Each of these parameters may also have a description associated with it, which may include text appearing near an input field, and/or “alt text” that appears upon hovering a selection mechanism (such as a cursor/pointer utilized by a mouse, finger/limb movement/gesture, eye movement/blink, etc.) over the input field. Each parameter may have one or more template values associated with it. For example, a drop-down list may allow the selection of one of multiple values based on a template value that is a pipe-delimited (|) data set, such as “Option 1|Option 2|Option 3.” Any suitable delimiter may be used. Another example would be:
0025Server_type directory:/apps_01/www|server-directory:/server|Temporary directory:/tmp
0026In this example, the generated script would enable a device to display the options “Server_type directory”, “server-directory”, and “Temporary directory” and pass respective values “/apps_01/www”, “/server”, and “/tmp” to the parameter, depending on what is selected. Here, each option/value pair is delimited with a colon, and each option is delimited from other options with a pipe-delimiter. In other embodiments, the values need not be delimited. In some embodiments, the displayed values may differ from parameters passed into the task when the particular displayed value is selected. In some embodiments, the script is performed on a centralized system instead of remotely.
0027<figref idref="DRAWINGS">FIG. 3</figref> is a flowchart of an embodiment of a method <b>300</b> of task endpoint and group management in a computing device (for example, a server, client, mobile device, etc.). At <b>310</b>, the computing device receives and/or imports a file. Any suitable type of file may be utilized. The file may be received remotely over any suitable connection, such as over the Internet or other computer network, such as the network <b>150</b> shown by way of example in <figref idref="DRAWINGS">FIG. 1</figref>. Alternatively, the file may be received by local delivery, such as a disk or Universal Serial Bus (USB) storage device.
0028At <b>320</b>, a new task is created. The new task may be based on the received/imported file, but may also already reside in the computing system. The new task is generated based on the associated parameters stored within the file. Another property of a task is task permissions. Permissions control, for example, the types of access one may have with respect to a particular type of task. Types of permissions include read-only and executable access to run the task. Another type of permission is administrative, which provides a user with rights to manage and/or edit the task, as well as manage access for other users and/or groups, as explained below. Another type of access includes auditor access, which allows a user to view other users' historical task execution, which may (but need not necessarily) apply across all tasks accessed by a particular user and/or all users associated with a task.
0029Users may belong to one or more groups of users. Membership in one or more groups may be mandatory or optional. Some embodiments do not utilize groups. Different embodiments may restrict users to one group, whereas other embodiments permit membership in multiple groups. Group membership may be granted on the basis of current access rights level, and/or being granted membership by a user belonging to the group (either of which may be revocable in some embodiments). Group membership may be time-limited and/or contingent upon satisfying one or more criteria, and may include the revocation of membership upon expiration of a time period and/or violating a criterion. Exceptions may also be provided, such that one or more individuals may be excluded from accessing (or having other varying access rights to) a task to which the group (of which such member) is provided access. Conversely, members may be provided access (or varying access rights) to tasks even though their group membership does not, on its own, afford such access.
0030A task may be associated with one or more groups. At <b>330</b>, an identifier of a group (such as a group name) associated with the task is compared to one or more group names associated with the computing system. The comparison determines the permissions afforded to the user (e.g., read-only access, executable access, audit access). The comparison may be exact, or probability/similarity-based. As discussed above, the task navigator <b>120</b> may provide an interface for a user to view and/or utilize any tasks available to the user. If the group name associated with the received/imported task does not match at least one group name associated with the receiving computing device, a warning message may be transmitted in order to output the warning message at <b>340</b> stating that the task is not selectable to users with respect to the receiving computing device. The group name associated with the received/imported task is compared to at least one group name associated with the receiving computing system. In some embodiments, tasks and groups may be associated within a central system. Other embodiments may associate tasks and groups remotely.
0031At <b>350</b>, if the comparison results in a match, the access controls associated with the matching group name are applied to the task. A task may have one or more targets (e.g., the subject of the operations of the task) that are local, remote, or both. A local task includes one or more operations that stay within the same computing system. That is, a local task does not perform one or more operations that affect another computing system. For example, a local task on a server may be used to maintain the server itself. By contrast, a remote task performs one or more operations that affect another computing system. A remote task includes one or more endpoints that specify one or more location(s) of one or more remote systems with which the computing device containing the task interacts. Some embodiments allow a task to run on multiple endpoints at once. If the task is being exported, the endpoint may be exported as part of the export file. An endpoint may be a Universal Resource Locator (URL), Uniform Resource Identifier (URI), a network path, or any other suitable way to represent the location of a remote location and/or system. A task may also be both remote and local, such as having target locations on remote computing devices along with target locations on the receiving computing device.
0032One or more endpoints may be output to a user as choices in a graphical user interface, and received as input upon selection by the user. For example, a user selects a target operating system (UNIX® brand operating system, LINUX® brand operating system, WINDOWS® brand operating system) and the type of remote access mechanism available on the target system (IBM® Tivoli® brand network monitoring software, ZABBIX® brand network monitoring software, SSH® brand remote access protocol, etc.) for integration in running commands on the remote system (UNIX is a registered trademark of X/Open Company Limited Corporation, LINUX is a registered trademark of Linus Torvalds, WINDOWS is a registered trademark of Microsoft Corporation, IBM and Tivoli are registered trademarks of International Business Machines Corporation, ZABBIX is a registered trademark of Zabbix SIA Limited Liability Company, and SSH is a registered trademark of SSH Communications Security Corporation). Some embodiments allow a user to specify and/or modify the requirements associated with the operating system and/or remote access mechanism for integration in running commands on the remote system.
0033Tasks may be configured to allow endpoints to be entered in a free-form manner (e.g., manually-entered text), rather than selected from predefined endpoints. For example:
0034Modify Task Id <b>123</b> Set Flag any_Endpoint
0035Some free-form input for endpoints may pose a security risk, and require authentication and/or confirmation. Input may be received that designates a task as a potential security risk. For example:
0036Modify Task Id <b>123</b> Set Flag Dangerous
0037At <b>360</b>, an endpoint specified in the file is compared to one or more endpoints associated with the receiving computing device. If the endpoint specified in the file do not match one or more endpoints associated with the receiving computing device (e.g., based on operating system type, location of the remote system, etc.), then the receiving computing device may transmit or otherwise return an instruction that provides a warning that the task is not selectable to users on the receiving system at <b>370</b>. At <b>380</b>, adjusted endpoints may be received. For example, a user with sufficient privileges (such as administrator privileges with respect to the instant task) may modify one or more endpoints in the task, so that the endpoints specified in the file match or correspond to one or more endpoints associated with the receiving computing device.
0038On the other hand, if the endpoint specified in the file matches one or more endpoints associated with the receiving computing device, the endpoint may be displayed at <b>390</b> to a user utilizing the task. If the file contains both matching and non-matching endpoints, the matching endpoints may be made available to users of the receiving computer system, while generating and/or presenting a warning for the non-matching endpoints.
0039In some embodiments, execution of a task, whether local or remote, may result in a return code to determine success or failure. A task results page or data structure may be used to indicate the result. For example, as shown in Table 1 (below), a return code of 0 may be interpreted, for example by a computing device or a user, as a success. By contrast, a return code of a value including and between 100 and 249 may be interpreted as a warning, and any other return code may be interpreted as a failure.
0040<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 1</entry></row><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Return Code Ranges</entry></row><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="1" colwidth="133pt" align="center" /><colspec colname="2" colwidth="84pt" align="left" /><tbody valign="top"><row><entry>0</entry><entry>Success</entry></row><row><entry> 1 to 99</entry><entry>Failure</entry></row><row><entry>100 to 249</entry><entry>Warning</entry></row><row><entry>250 to 255</entry><entry>Failure</entry></row><row><entry namest="1" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0041Along with importing/receiving a file, a computing device may send, export, and/or upload a task as a file. For example, a user may select an export icon through any type of suitable interface, such as a graphical user interface (e.g., creation wizard, etc.). Other embodiments may provide a command-line interface. This export process may traverse the data associated with the task to be exported, capturing one or more linked data elements and one or more items of uploaded content referenced within the linked data elements. The user may then be provided with a file that includes some or all of these elements, wherein the user may then be prompted to save the file, or the file may be immediately downloaded to a location specified by the system and/or the user.
0042<figref idref="DRAWINGS">FIG. 4</figref> is a flowchart of an embodiment of a method <b>400</b> of remote task management in a computing device (for example, a server, client, mobile device, etc.). In some embodiments, remote task management may utilize a plug-in interface for integration with remote execution capabilities common in existing monitoring and provisioning tools. The plug-in interface may be completely or partially platform agnostic. The plug-in interface may be run, for example, from any Internet browser.
0043At <b>410</b>, the computing device receives input selecting a task. At <b>420</b>, the task is analyzed to determine whether one or more endpoints are required for the task to interact with another computing device. If the task requires one or more endpoints, then at <b>430</b> the task is checked for endpoints (e.g., it is determined whether one or more endpoints are specified). If the task (or file) does not include (or is missing) an endpoint, then the user may be prompted to provide one or more endpoints, wherein one or more endpoints are received at <b>440</b>. At <b>450</b>, one or more endpoints may be checked for validity (e.g., it is determined whether endpoint should be modified). If, for example, an endpoint has a path or an operating system that is not compatible with a target system to which the endpoint is referring, then modification may be required. At <b>460</b>, the computing device may then prompt a user to provide a modification to the endpoint and/or one or more modified/updated endpoints or, alternatively, the computing device may dynamically update the endpoints based upon the current path and/or operating system information (for example) which may be utilized to determine the endpoint. <figref idref="DRAWINGS">FIG. 5</figref> is a flowchart of an embodiment of a method <b>500</b> of task creation in a computing device (for example, a server, client, mobile device, etc.). At <b>510</b>, the computing device receives a task creation request. At <b>520</b>, the computing device receives a task type. At <b>530</b>, a determination is made as to whether the task is a remote task. If the task is determined to be a remote task, then the computing device may prompt a user to provide endpoints, and receive an endpoint at <b>540</b>. At <b>550</b>, it is checked to determine whether there is another endpoint not yet considered. If it is determined that there is another endpoint, the endpoint is received at <b>540</b>. This process may be repeated until each endpoint has been received. If the task is a local task (e.g., a task that is not associated with an endpoint), or once the endpoints have been received, then the computing device determines if the task has one or more parameters at <b>560</b>.
0044The computing system receives one or more parameter properties at <b>570</b>. For example, the computing system may receive a parameter name/id (such as $1), a parameter description (such as descriptive text), a parameter type (such as a drop-down list), and/or a template value (such as multiple-choice selection options). At <b>580</b>, once the parameter properties have been received, it is determined if there are additional tasks not yet considered. If it is determined that there are more tasks at <b>580</b>, then at <b>520</b> another task is received. At <b>584</b>, once the tasks have been processed, a user interface is generated. At <b>588</b>, the user interface may receive input specifying parameter values. The parameter values may be received from a user, which may be different from the user providing the parameter definitions. At <b>590</b> a script may be generated based upon the received parameter values.
0045<figref idref="DRAWINGS">FIG. 6</figref> is a block diagram illustrating an example computing device <b>600</b> that may be representative of one or more devices performing actions in any of the flowcharts (shown in <figref idref="DRAWINGS">FIGS. 2-5</figref>). While some embodiments of the disclosure are illustrated and described herein with reference to the computing device <b>600</b> being a computing device, aspects of the disclosure are operable with any computing device that executes instructions to implement the operations and functionality associated with the computing device <b>600</b>.
0046For example, the computing device <b>600</b> may include a mobile device, a mobile telephone, a phablet, a tablet, a client device, a server device, a gaming device, a portable media player, a netbook, a laptop, a desktop computer, a computing pad, a kiosk, a tabletop device, an industrial control device, and other computing devices. The computing device <b>600</b> may represent a group of processing units or other computing devices. Additionally, any computing device described herein may be configured to perform any operation described herein including one or more operations described herein as being performed by another computing device.
0047The computing device <b>600</b> includes one or more computer-readable media, such as a memory <b>610</b> storing computer-executable instructions, message data, security data, parameter data, and other data, and one or more processors <b>620</b> programmed to execute the computer-executable instructions for implementing aspects of the disclosure. The memory <b>610</b> includes any quantity of media associated with or accessible by the computing device <b>600</b>. The memory <b>610</b> may be internal to the computing device <b>600</b> (as shown in <figref idref="DRAWINGS">FIG. 6</figref>), external to the computing device <b>600</b> (not shown), or both (not shown).
0048The processor <b>620</b> includes any quantity of processing units, and the instructions may be performed by the processor <b>620</b> or by multiple processors within the computing device <b>600</b> or performed by a processor external to the computing device <b>600</b>. The processor <b>620</b> is programmed to execute instructions such as those illustrated in the figures (e.g., <figref idref="DRAWINGS">FIGS. 1, 2, 3, 4</figref>, and/or <b>5</b>). Although the processor <b>620</b> is shown separate from the memory <b>610</b>, embodiments of the disclosure contemplate that the memory <b>610</b> may be onboard the processor <b>620</b> such as in some embedded systems.
0049Upon programming or execution of these instructions, the processor <b>620</b> is transformed into a special purpose microprocessor or machine. For example, instructions in the computing device <b>600</b>, when executed by the processor <b>620</b>, cause the processor <b>620</b> to receive an instruction, receive one or more parameters, and/or generate a script.
0050In some examples, instructions in a computing device <b>600</b>, when executed by the processor <b>620</b>, causes the processor <b>620</b> to receive a file, create a new task, apply access controls that match a group stored on the computing device <b>600</b>, and adjusts endpoints for a task whose group name matches a group stored on the computing device <b>600</b>. Various examples include instructions in a computing device <b>600</b>, that when executed by the processor <b>620</b>, cause the processor <b>620</b> to export a task as a file to a different instance, where endpoints are specified and/or modified. Several examples include instructions in a computing device <b>600</b>, when executed by the processor <b>620</b>, causes the processor <b>620</b> to receive a task creation request along with a task type, receiving endpoints for a remote task, and receive parameter name/id, description, type, and value data for a scripted task. Although the processor <b>620</b> is shown separate from the memory <b>610</b>, embodiments of the disclosure contemplate that the memory <b>610</b> may be onboard the processor <b>620</b> such as in some embedded systems.
0051The computing device <b>600</b> includes at least one database <b>630</b>. Any type of database, such as centralized, decentralized, distributed, remote, cloud-based, etc., may be utilized. Any type of data may be stored and retrieved, for example, a task at <b>110</b> (as shown in <figref idref="DRAWINGS">FIG. 1</figref>) and/or a task type at <b>420</b> (as shown in <figref idref="DRAWINGS">FIG. 4</figref>). The database <b>630</b> may reside within the memory <b>610</b>, outside the memory <b>610</b> within the computing device <b>600</b>, or outside the computing device <b>600</b>. In one example, in a computing device <b>600</b>, a request from another computing device (not shown) may be received by the communication interface device <b>640</b>, executed by the processor <b>620</b> as a query upon the database <b>630</b>, whereupon the processor <b>620</b> may instruct the communication interface device <b>640</b> to send the query results back to the requesting computing device and/or any other device.
0052The computing device <b>600</b> includes at least one user interface <b>640</b> for exchanging data between the computing device <b>600</b> and a user <b>650</b>. For example, the user interface <b>640</b> includes or is coupled to a presentation device configured to present information, such as text, images, audio, video, graphics, alerts, and the like, to the user <b>650</b>. The terms “user interface” and “user interface device” may be used interchangeably. The presentation device may include, without limitation, a display, a speaker, or a vibrating component. Additionally or alternatively, the user interface <b>640</b> may include or be coupled to an input device (not shown) configured to receive information, such as user commands, from the user <b>650</b>. The input device may include, without limitation, a controller, a camera, a microphone, or an accelerometer. In at least some embodiments, the presentation device and the input device are integrated in a common user interface <b>640</b> configured to present information to the user <b>650</b> and receive information from the user <b>650</b>. For example, the user-interface device may include, without limitation, a capacitive touch screen display or a controller including a vibrating component. In some embodiments, the user <b>650</b> may interface with the computing device <b>600</b> via another computing device.
0053The computing device <b>600</b> includes at least one communication component <b>660</b> for exchanging data between the computing device <b>600</b> and a computer-readable media or another computing device. Communication between the computing device <b>600</b> and a computer-readable media or another computing device may occur using any protocol or mechanism over any wired or wireless connection. In some examples, the communications interface component includes a network interface card and/or computer-executable instructions (e.g., a driver) for operating the network interface card. Communication between the computing device and other devices may occur using any protocol or mechanism over any wired or wireless connection. In some examples, the communications interface is operable with short range communication technologies such as by using near-field communication (NFC) tags, wireless networks (such as wireless fidelity), and/or cellular networks.
0054The block diagram of <figref idref="DRAWINGS">FIG. 6</figref> is merely illustrative of an example system that may be used in connection with one or more embodiments of the disclosure and is not intended to be limiting in any way. Further, peripherals or components of the computing devices known in the art are not shown, but are operable with aspects of the disclosure. At least a portion of the functionality of the various elements in <figref idref="DRAWINGS">FIG. 6</figref> may be performed by other elements in <figref idref="DRAWINGS">FIG. 6</figref> or an entity (e.g., web service, applications, etc.) not shown in <figref idref="DRAWINGS">FIG. 6</figref>.
0055Although described in connection with an example computing system environment, embodiments of the disclosure are capable of implementation with numerous other general purpose or special purpose computing system environments, configurations, or devices.
0056Example computer-readable media and/or computer-readable devices include flash memory drives, digital versatile discs (DVDs), compact discs (CDs), floppy disks, and tape cassettes. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media are tangible and mutually exclusive to communication media. Computer storage media are implemented in hardware and exclude carrier waves and propagated signals. Computer storage media for purposes of this disclosure are not signals per se. Example computer storage media include hard disks, flash drives, and other solid-state memory. In contrast, communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media.
0057Embodiments of well-known computing systems, environments, and/or configurations that may be suitable for use with aspects of the disclosure include, but are not limited to, mobile computing devices, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, gaming consoles, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, mobile computing and/or communication devices in wearable or accessory form factors (e.g., watches, glasses, headsets, earphones, and the like), network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. Such systems or devices may accept input from the user in any way, including from input devices such as a keyboard or pointing device, via gesture input, proximity input (such as by hovering), and/or via voice input.
0058Embodiments of the disclosure may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices in software, firmware, hardware, or a combination thereof. The computer-executable instructions may be organized into one or more computer-executable components or modules. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the disclosure may be implemented with any number and organization of such components or modules. For example, aspects of the disclosure are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the disclosure may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
0059The order of execution or performance of the operations in embodiments of the disclosure illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the disclosure may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the disclosure.
0060When introducing elements of aspects of the disclosure or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. Furthermore, references to an “embodiment” or “example” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments or examples that also incorporate the recited features. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. The phrase “one or more of the following: A, B, and C” means “at least one of A and/or at least one of B and/or at least one of C.”
0061Having described aspects of the disclosure in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the disclosure as defined in the appended claims. As various changes could be made in the above constructions, products, and methods without departing from the scope of aspects of the disclosure, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.
0062In some embodiments, the operations illustrated in the drawings may be implemented as software instructions encoded on a computer readable medium, in hardware programmed or designed to perform the operations, or both. For example, aspects of the disclosure may be implemented as a system on a chip or other circuitry including a plurality of interconnected, electrically conductive elements.
0063The examples illustrated and described herein as well as examples not specifically described herein but within the scope of aspects of the disclosure constitute exemplary means for task creation. For example, the elements illustrated in <figref idref="DRAWINGS">FIGS. 1 and 6</figref>, such as when encoded to perform the operations illustrated in <figref idref="DRAWINGS">FIGS. 2-5</figref>, constitute exemplary means for receiving an instruction to define a task, exemplary means for receiving one or more parameters associated with the task, and exemplary means for generating a script that is executable on one or more target systems to perform one or more operations associated with the task in accordance with the one or more parameters.
0064While the aspects of the disclosure have been described in terms of various embodiments with their associated operations, a person skilled in the art would appreciate that a combination of operations from any number of different embodiments is also within scope of the aspects of the disclosure.
Contents5
7 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2005044215A1 | Cites | United States of America | Search report |
| US2007192748A1 | Cites | United States of America | Applicant |
| US2007226259A1 | Cites | United States of America | Search report |
| US2009031226A1 | Cites | United States of America | Search report |
| US2009037551A1 | Cites | United States of America | Search report |
| US2009164988A1 | Cites | United States of America | Search report |
| US2010037127A1 | Cites | United States of America | Search report |
| US2010229155A1 | Cites | United States of America | Search report |
| US2012117569A1 | Cites | United States of America | Search report |
| US2012150939A1 | Cites | United States of America | Search report |
| US2012192069A1 | Cites | United States of America | Search report |
| US2012221893A1 | Cites | United States of America | Search report |
| US2012233595A1 | Cites | United States of America | Applicant |
| US2014123129A1 | Cites | United States of America | Applicant |
| US2015229645A1 | Cites | United States of America | Applicant |
| US6154875A | Cites | United States of America | Applicant |
| US6763498B2 | Cites | United States of America | Applicant |
| US7581190B2 | Cites | United States of America | Search report |
| US7627833B2 | Cites | United States of America | Search report |
| US20050044215A1 | Cites | United States of America | Search report |
| US20070192748A1 | Cites | United States of America | Applicant |
| US20070226259A1 | Cites | United States of America | Search report |
| US20090031226A1 | Cites | United States of America | Search report |
| US20090037551A1 | Cites | United States of America | Search report |
| US20090164988A1 | Cites | United States of America | Search report |
| US20100037127A1 | Cites | United States of America | Search report |
| US20100229155A1 | Cites | United States of America | Search report |
| US20120117569A1 | Cites | United States of America | Search report |
| US20120150939A1 | Cites | United States of America | Search report |
| US20120192069A1 | Cites | United States of America | Search report |
| US20120221893A1 | Cites | United States of America | Search report |
| US20120233595A1 | Cites | United States of America | Applicant |
| US20140123129A1 | Cites | United States of America | Applicant |
| US20150229645A1 | Cites | United States of America | Applicant |
| Sommermeyer, Katrin, “International Search Report”, International Application No. PCT/US2016/061561, dated Mar. 16, 2017, 9 pages. | Non-patent | – | Applicant |
| Sommermeyer, Katrin, “Written Opinion”, International Application No. PCT/US2016/061561, dated Mar. 16, 2017, 9 pages. | Non-patent | – | Applicant |
| Sommermeyer, Katrin, “International Search Report”, International Application No. PCT/US2016/061561, dated Mar. 16, 2017, 9 pages. | Non-patent | – | Applicant |
| Sommermeyer, Katrin, “Written Opinion”, International Application No. PCT/US2016/061561, dated Mar. 16, 2017, 9 pages. | Non-patent | – | Applicant |
3 members in 2 offices; this record represents the family
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 201514944896 | United States of America | A | |
| US201514944896 | – | – | – |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| US2017139680A1 | United States of America | A1 | |
| WO2017087274A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US10095482B2This record | United States of America | B2 |
69 transactions on the USPTO file
Allowed after 2 non-final rejections, 1 final rejection and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Post CardPST_CRD | PST_CRD | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Interview Summary - Examiner Initiated - TelephonicEXET | EXET | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Response after Non-Final ActionA... | A... | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Letter Accepting Permission for Application Access by Foreign IPOSB39ACPR | SB39ACPR | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTR | EML_NTR | |
| Email NotificationEML_NTF | EML_NTF | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Mail Pre-Exam NoticeMPEN | MPEN | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Cleared by OIPE CSRL194 | L194 | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 10095482
- Publication, DOCDB
- 10095482
- Publication, EPODOC
- US10095482
- Application
- 14944896
- Application, DOCDB
- 201514944896
- Application, EPODOC
- US201514944896
Titles
- English
- Systems, methods, and media for graphical task creation
Patent term adjustment
- A delay
- +5 daysthe office missed an examination deadline
- Net adjustment
- 5 days
Classification
- CPC, 4
- G06F8/30
- G06F8/34
- G06F8/20
- G06F9/5027
- IPC, 5
- G06F9 44
- G06F8 30
- G06F8 20
- G06F8 34
- G06F9 50
- USPC, 1
- 715762000