Abstract:
The disclosure generally relates to functioning and monitoring of robots, and more particularly, to closely monitor, administer, and track an autonomous software robots. The embodiments herein relate to automating of a plurality of repetitive tasks by deploying a plurality of software robots in an operation floor. By using the robotic console module, an administrator is able to get a holistic view of the plurality of robots deployed at various client workstations. The administrator is also capable of viewing robots deployed, the ability to start and stop of the robots and view alerts raised by the robots during execution.

Description:
PRIORITY CLAIM 
       [0001]    This U.S. patent application claims priority under 35 U.S.C. §119 to: India Application No. 4816/MUM/2015, filed on Dec. 22, 2015. The entire contents of the aforementioned application are incorporated herein by reference. 
       TECHNICAL FIELD 
       [0002]    The disclosure generally relates to functioning and monitoring of robots, and more particularly, to closely monitor, administer, and track an autonomous software robots. 
       BACKGROUND 
       [0003]    In the field of computing, a software agent is a computer program that acts for a user or other program in a relationship of agency. Particularly, in robotics, robot software is a set of coded commands that inform a mechanical device and electronic system the kind of tasks to perform and automate. Several software systems and frameworks have been proposed to make programming robots easier, Generally, robot software is used to perform tasks and automate tasks to be performed. 
         [0004]    The software architecture of a robotics system comprises of various software components used to design and operate the software. All programming methods rely on software architecture as a method of organizing a software system since it not only provides communication support but is also a critical component in hardware and software interfaces. Although, autonomous mobile robots and the software controlling them have steadily evolved in both complexity and functionality in recent years, there still continues to be several challenges. 
         [0005]    Generally machine to machine communications over the internet using HTTP and HTML is problematic. The fundamental reason for that is that HTML is more suitable as a publishing format, rather than a data exchange format. Programs that access websites, that are normally accessed by human users sitting at a computer using a web browser, are called ‘software robots’, ‘robots’, ‘software agents’, ‘agents’, ‘programs’ and so on. 
         [0006]    Programs that access (for example) web sites appear from a network and data presentation format, to the web site as an end user would. The web site or web application receives and sends information exactly as it would to a real human user, but instead the information is received, processed, and responded by a piece of software running on a computer somewhere on the Internet, rather than a live human user using a web browser. In these applications, the web site, or web application does not know it is communicating with anything other than a web browser, when in fact it is communicating with a piece of custom written software. 
         [0007]    The inventors here have recognized several technical problems with such conventional systems, as explained below. Currently, majority of robotic process automation applications are written by software programmers. Conventional techniques do not focus on automatically facilitate software robots that can manipulate existing websites and web applications. The net effect of this facilitation is a dramatic reduction in the amount of time necessary to implement machine to machine communications that utilize existing web sites and web applications. 
         [0008]    Currently, there are several autonomous robots and robotic softwares that are developed to navigate or work as mobile robots to either perform household or industrial chores. However, there seems to be a lack of concurrent and holistic development of software to automate repetitive processes. There is an unmet need for a system and a method for process automation of multi-tier applications in a computer network having a plurality of computers. Additionally, there is also an unmet need for such application in process automation in which a plurality of application components on a plurality of computers have inter-connected functionality. 
       SUMMARY 
       [0009]    Embodiments of the present disclosure present technological improvements as solutions to one or more of the above-mentioned technical problems recognized by the inventors in conventional systems. For example, in one embodiment, a computer implemented system for implementing intelligent and proactive process automation among a plurality of software robotic agents. The system comprises of a robotic console module that is configured to continuously check and monitor a plurality of deployed software robotic agents in a network. The system further comprises of a graphical user interface that is configured to provide an interactive dashboard to view at least one of real time data and historical data to deploy a plurality of the software robotic agents, a heartbeat service module configured to verify and maintain secure connectivity with at least one client in said network on a pre-defined interval. The system furthermore comprises, an archive service module configured to maintain and process the historical data of the deployed software robotic agents and a communication service module configured to dynamically check a target environment in the deployed software. 
         [0010]    In another embodiment, a computer program product for implementing intelligent and proactive process automation among a plurality of software robotic agents is disclosed. The computer program product comprises of a robotic console module that is configured to continuously check and monitor a plurality of deployed software robotic agents in a network. The computer program product further comprises of a graphical user interface that is configured to provide an interactive dashboard to view at least one of real time data and historical data to deploy a plurality of the software robotic agents, a heartbeat service module configured to verify and maintain secure connectivity with at least one client in said network on a pre-defined interval. Furthermore, the computer program product comprises, an archive service module configured to maintain and process the historical data of the deployed software robotic agents and a communication service module configured to dynamically check a target environment in the deployed software. 
         [0011]    It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]    The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate exemplary embodiments and, together with the description, serve to explain the disclosed embodiments: 
           [0013]      FIG. 1  illustrates a functional block diagram of a Software Robotic processing system  100 , in accordance with some embodiments from the present disclosure; 
           [0014]      FIG. 2  illustrates a detailed component diagram of the software robotic processing system  100 , in accordance with some embodiments from the present disclosure; 
           [0015]      FIG. 3  is a flow diagram depicting the process steps in the software robotic processing system  100 , in accordance with some embodiments from the present disclosure; and 
           [0016]      FIGS. 4   a,    4   b,    4   c  and  4   d  depict individual screenshots at different stages of an automation in an execution process, in accordance with some embodiments from the present disclosure. 
       
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
       [0017]    Exemplary embodiments are described with reference to the accompanying drawings, In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. Wherever convenient, the same reference numbers are used throughout the drawings to refer to the same or like parts, While examples and features of disclosed principles are described herein, modifications, adaptations, and other implementations are possible without departing from the spirit and scope of the disclosed embodiments. It is intended that the following detailed description be considered as exemplary only, with the true scope and spirit being indicated by the following claims. 
         [0018]    Referring now to the drawings, and more particularly to  FIGS. 1 through 4   c,  where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments and these embodiments are described in the context of the following exemplary system and/or method. 
         [0019]      FIG. 1  illustrates a functional block diagram of a Software Robotic processing system  100 , according to the embodiments as disclosed herein. As depicted in  FIG. 1 , the Software Robotic processing system  100  comprises of a server  102 . The server  102  in turn comprises of a Dashboard  104 , a Process communicator  106 , and a Database  110 . Although the present disclosure is explained by considering a scenario that the server  102  is implemented as an application. It may be understood that the server  102  is capable of supporting multiple robotic applications and users. It will be understood that the server  102  may be accessed by multiple users through one or more peer devices such as a client device (not shown in Figure) or applications residing on the client device. In one example, the client device may include, but are not limited to, a portable computer, a multi-touch surface, a personal digital assistant, a handheld device, and a workstation. The client device is communicatively coupled to the server  102  through a network (not shown in Figure). In an embodiment, there are two sets of devices that can be implemented such as 1) where the robotic applications are executed and 2) where the end user can be used to monitor the execution of the applications running at a given point of time. 
         [0020]    In one implementation, the network may be a wireless network, a wired network or a combination thereof. The network can be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area network (WAN), the internet, and the like. The network may either be a dedicated network or a shared network. The shared network represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), and the like, to communicate with one another. Further the network may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, and the like. 
         [0021]    In one embodiment, the server  102  may include at least one processor, an input/output (I/O) interface, and a memory. The at least one processor may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the at least one processor is configured to fetch and execute computer-readable instructions stored in the memory. 
         [0022]    The I/O interface may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like. The I/O interface may allow the Software robotic processing system  100  to interact with a user directly or through the client devices. Further, the I/O interface may enable the intermediary server to communicate with other computing devices, such as web servers and external data servers (not shown). The I/O interface may facilitate multiple communications within a wide variety of networks and protocol types, including wired networks, for example, LAN, cable, etc., and wireless networks, such as WLAN, cellular, or satellite. The I/O interface may include one or more ports for connecting a number of devices to one another or to another server. 
         [0023]    The memory may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. 
         [0024]    In one embodiment, the client device may include one or more processors, one or more memories, and a display. The one or more processors may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the one or more processors are configured to fetch and execute computer-readable instructions stored in the one or more memories. 
         [0025]    The display may include a LCD display, a LED display and other displays that are obvious to persons skilled in the art. 
         [0026]    Among other capabilities, the one or more processors are configured to fetch and execute computer-readable instructions stored in the one or more memories. The one or more memories may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. 
         [0027]    Referring back to  FIG. 1 , the Software Robotic processing system  100  is configured to function as a process administrator by using a monitoring capability on a plurality of software robots deployed on a floor along with a live view dashboard. In essence, the Software Robotic processing system  100  is configured to work as a robotic component to monitor a plurality of software robots in action, when such software robots are deployed in the network. 
         [0028]    In a preferred embodiment, the Software Robotic processing system  100  is capable of performing a plurality of activities such as capability to listen to client devices (machines/node) on the deployed processes and current execution processes. The dashboard  104  is capable of providing real time status of the different processes in execution on the specific nodes. By viewing history of execution of a plurality of processes on a node, the same history can be extended to provide an analytics layer to determine the efficiency of process automation. The Software Robotic Processing system  100  further comprises a communication service module that is configured to check and monitor a target environment of the surroundings in which it is implemented. 
         [0029]    Further, the Software Robotic processing system  100  provides administration capability of a plurality of starting or stopping instances of at least one process on a configured node. Administration capability is also provided for tracking of the nodes (machines) connected in the network and to configure the processes to execute on these nodes. An alert window in the Dashboard  104  provides a first view or initial view on the process robots, when process robots either abort or terminate. 
         [0030]    The dashboard  104  is also configured to view current (live) and historical (data) of robot execution either through a process view or client node view. In an embodiment, the process scheduler  206  is configured to process a mechanism in order to capture the execution schedule for a process (daily, weekly, and/or at periodic intervals) along with the ability to execute a plurality of instructions based on the defined schedule. 
         [0031]      FIG. 2  illustrates a detailed component diagram of the software robotic processing system  100 , according to the embodiments as disclosed herein. The dashboard  104  is predominantly configured to work as a GUI suite and is used to view the live and historical data on the execution of a plurality of processes/robots in a particular client node. The dashboard  104  also includes ability to administer (start and/or stop a process in execution). Initially a suite of services are deployed at the Server  102  and client machine such as:
       a) An heart beat service to verify and identify the connectivity with a plurality of client nodes in the network on a pre-defined period interval   b) An archive service adapted to archive a periodic or daily execution of the processes/software robots and accordingly maintain a historical record of execution of the plurality of processes/robots for a specific period.   c) A plurality of communication service components that facilitate a secured communication channel between end points such as server station and client desktop station. Initially, communication is initiated on event happenings (such as start of a process, completion and/or termination of the process).   d) A ‘client bridge service’ that is deployed at the client node through which a plurality of individual process (robots) communicate to the server  102 . This service provides loose coupling between the plurality of software (process) robots and the communication service at the client desktop.       
 
         [0036]    In an embodiment, the Heart beat service module  204  verifies connection or connectivity with a plurality of nodes and updates the database  110  accordingly. The heart beat service module  204  is deployed at the server end and accordingly establishes communication with each client node (using a DNS hostname) and procures its heart beat at periodic intervals. The duration of intervals can be configured according to user&#39;s convenience. 
         [0037]    The process scheduler  206  is configured to facilitate the database  110  and schedule a plurality of processes against connected nodes with suitable status based on the scheduling information captured. The process scheduler is deployed at the server  102  end and can be user configured to run at a specific time. 
         [0038]    The archiver  208  is configured to maintain daily or periodic history of information related to execution of processes and copies in order to archive tables. The archiver  208  is executed at the server  102  end and can be scheduled to run at a specific time which is user configurable. 
         [0039]    The process communication module  210  is configured to work as a listener, monitor, and instructor at the server  102 . The process communication module  210  listens to a plurality of messages sent by a client self-hosted WCF about execution of processes and software robos. The process communication module  210  monitors execution and updates database  110  on a regular basis. Further, the process communication module  210  deployed at the server  102  end instructs a plurality of nodes to either start or stop processes on nodes, based on instructions sent by an Administrator through the GUI. 
         [0040]    The indicator  212  is configured to continuously run at the server  102  and checks for periodic processes in progress since a long time and updates status as Timed out, in case the process is not responding. 
         [0041]    In an embodiment, the client bridge  112   a  is hosted at the client end to ensure that each process communicates with the client self-host  114  by providing a bridge between client and server  102  in order to send and receive messages about execution of processes and robots. 
         [0042]    The process executer  116  is capable of initiating process execution at client workstations based on daily scheduling information received at the server  102  end. The process executer  116  starts the robotic application on a plurality of user devices based on a schedule maintained at the server  102 . 
         [0043]    According to preferred embodiments of the present invention, a management server, which can be access by one or plurality of consoles, for monitoring and controlling the automated application processes is provided, such that one or more users may more preferably adjust the deployment or maintenance (or any other application process), or at least optionally view deployment progress. Such management server preferably enables the software product to be deployed, managed, verified, monitored and tracked from a single location, using the console. 
         [0044]    In an operational scenario, an human user/operator obtains an excel file containing the different accounts that need to be created for a plurality of customers along with relevant customer details. The user initially opens an account opening app (legacy app) and then the operator manually copies the details in the Software Robotic processing system  100 . The Software Robotic processing system  100  then takes control and create the accounts. This is considered as a repeatable task, The robot mimics the entire operation after training, thus reducing dependency on humans. The robot is also trained to detect discrepancies and is configured to discontinue/abort the application in such cases. The human user gets a message on his laptop/desk top or any suitable computing device in case of such discrepancies such as system restart or network outage. 
         [0045]    Customization parameters can be defined for each such script. Such parameters may include for example, whether to run it automatically or after an approval of the user to a pop-up question, and specific times (for example, only weekends or only evenings) that a facilitating script is active, etc. 
         [0046]    As an example of the automated learning of relations, suppose the operator works on a business process involving a web application and a mainframe system. The operator starts with the web application in which they get a customer&#39;s details and then they need to go into the mainframe system and perform some action for the customer (in this example, change the address of the customer.). A way to improve this manual business process is to have the system automatically learn the relations between the current set and the active screen. 
         [0047]    When a relation appears between information seen in one screen and information that is entered in a later screen, this relation is stored in a long term memory. After a few iterations going through the same screens, if the relation is repeated a predetermined number of times, the software application uses this relation to suggest to the operator to automatically fill in the fields associated with this relation. The number of times an action is repeated to constitute a reason to suggest that action in the future, may be customized by a user. Also, it may be defined that there is no contradicting behavior which should be considered. 
         [0048]    Another example would be the case where password verification is required. This can be a time consuming process where sometimes both intranet user id and password are to be filled taking up about 20 seconds of the user time. In principle, this problem can be resolved by preparing appropriate facilitating script that would identify the verification screen and fill in the necessary information. However, this would mean that the operator would have to know and install such a feature. Using an adaptive approach, this would not be necessary. The system of the present application would identify automatically the correlation between password verification request and appropriate information being filled. After several cases, user verification would be done automatically. 
         [0049]      FIG. 3  is a flow chart illustrating a control flow for an example method  300  for performing automated data processing, according to an example embodiment. In a first step  302 , initially the software robotic processing system  100  prompts a user set up at step  302 . The user set up can be initiated for a plurality of users at one go. At step  304 , an user set up initiation is done for master data processing. At step  306 , a plurality of robotic clients are defined based on the comprehensiveness and nature of the process/applications taking place. At step  308  once the robotic clients/robos are set up for multiple processes, then the robots begin with the process of administering different robotic processes at step  310 . Finally, at step  312  a plurality of robotic processes can be monitored by the user for any un-natural events. The monitoring can happen round the clock or at certain pre-defined intervals. 
         [0050]    In the embodiments of the present application, a metrics dashboard is a server hosted website providing real-time robotic process data that manages process transaction volumes, robotic arm statistics, and transaction queue management capabilities for the process supervisor. A user entitlements profile provides an administrator the capability to manage users, and their role based entitlements. A master maintenance profile gives administrator the privileges to add and update users, regions, processes, country, holidays, relationships, and so on. 
         [0051]    The administrator can configure robotic processes, execution cycles (auto or manual) and the individual robotic arms. A plurality of robotic client nodes provide privileges to the administrator to configure clients where certain robotic processes can execute and enable two way communication between a console tower and a console tower client. 
         [0052]    Extension and Agile Implementation of Robo Console App/Software Robotic Processing System  100   
         [0053]    A Console controller comprises a GUI suite (including a process dashboard) that allows the user to view, monitor, and administer the robotic process execution on different robotic client nodes. 
         [0054]    CT user entitlements provides administrator the capability to manage business users and their role based entitlements. Further, a process communicator  106  (not shown in Fig) of the Software Robotic Processing System  100  functions as a Windows communication network (WCF) based communication component that resides on the console tower server to perform a secure communication between the server and robotic client. 
         [0055]    Furthermore, the console tower services function as a set of systemic services that assist in archival, scheduling, start and stop of process services and so on. The client communicator functions by providing WCF services at robotic client in order to communicate with the process communicator  106  at the console tower. Further, the process executor manages process execution at the robotic client, based on daily/periodic scheduling information bunt at the server. 
         [0056]    While various disclosed embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Numerous changes to the subject matter disclosed herein can be made in accordance with this Disclosure without departing from the spirit or scope of this Disclosure. In addition, while a particular feature may have been disclosed with respect to only one of several implementations, such feature may be combined with one or more other features of the other implementations as may be desired and advantageous for any given or particular application. 
         [0057]    Among the multiple benefits of the present application and without wishing to be limited by a single list, the technical advantages of the invention are:
       a) Automates maintenance activities on the deployed software   b) Automates control activities on the deployed software   c) Reduces manual operations   d) Bridges gap between application teams and operation teams   e) Verifies application functionality after deployment   f) Executing jobs or commands on the computer on which agents are installed       
 
         [0064]    The present application overcomes these drawbacks of the background art by providing a system and method for process automation of one or more applications in a computer network having a plurality of computers, in which the one or more application components are preferably interdependent, and optionally and more preferably hierarchical, in terms of their operation. 
         [0065]    The present application overcomes the difficulties of the operator to invoke the automated process by preferably having two design phases in at least some embodiments. In the first phase the user, that is preferably a person that is specialized in the application, designs a plurality, and more preferably all, of the possible processes and modulates them into the relevant logical components. Such a process may optionally, for example, install certain software or monitor a certain activity. Such logical components may optionally include but are not limited to for example web-based services or a Data Base. The output of this phase is preferably used by the operator who maps the logical components into the actual environment, for example into the specific enterprise or Data Center. This phase optionally maps each logical component into at least one physical server and each logical connection between components into a physical network. 
         [0066]    The illustrated steps are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the disclosed embodiments. Also, the words “comprising,” “having,” “containing,” and “including,” and other similar forms are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items. It must also be noted that as used herein and in the appended claims, the singular forms “a,” “an,” and “the” include plural references unless the context clearly dictates otherwise. 
         [0067]    Furthermore, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present disclosure. A computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term “computer-readable medium” should be understood to include tangible items and exclude carrier waves and transient signals, Le., be non-transitory. Examples include random access memory (RAM), read-only memory (ROM), volatile memory, nonvolatile memory, hard drives, CD ROMs, DVDs, flash drives, disks, and any other known physical storage media. 
         [0068]    It is intended that the disclosure and examples be considered as exemplary only, with a true scope and spirit of disclosed embodiments being indicated by the following claims.