Abstract: Disclosed is a method and system for controlling services and tasks running across servers. The servers may be present in a network. The system may present categories, instances, and locations related to the servers for accepting a user input. The system may present a list of servers to a user by grouping the servers based on the user input. The system may allow the user to select a server from the list of servers. The system may further present services and tasks running on the server selected by the user. The system may then control the services and the tasks running on the server.
CLIAMS:WE CLAIM:
1. A method for controlling services and tasks running across servers present in a network, the method comprising:
presenting, by a processor, to a user, categories, instances and locations related to servers present in a network;
selecting, by the processor, at least one of the categories, at least one of the instances, and at least one of the locations of the servers based upon a user input;
presenting, by the processor, a list of servers to the user based upon a selection by the user;
presenting, by the processor, services and tasks running on a server chosen from the list of servers by the user; and
performing, by the processor, at least one of an enabling or disabling the services and/or the tasks, changing properties of the services and/or the tasks, and changing a startup type of the services and/or the tasks in order to control the services and/or the tasks running on the server.
2. The method of claim 1, further comprising logging details of exceptions associated with the services and the tasks.
3. The method of claim 1, further comprising presenting details of the server, wherein the details comprises an operating system loaded on the server, a system directory, a version of the operating system, a manufacturer of the operating system, Central Processing Unit (CPU) usage, and details of logical drives.
4. A system for controlling services and tasks running across servers present in a network, the system comprising:
a processor; and
a memory coupled to the processor, wherein the processor is capable for executing programmed instructions stored in the memory to:
present to a user, categories, instances and locations related to servers present in a network;
selecting at least one of the categories, at least one of the instances, and at least one of the locations of the servers based upon a user input;
present a list of servers to the user based upon a selection by the user;
present services and tasks running on a server chosen from the list of servers, by the user; and
perform at least one of an enabling or disabling the services and/or the tasks, changing properties of the services and/or the tasks, and changing a startup type of the services and/or the tasks in order to control the services and/or the tasks running on the server.
5. The system of claim 4, further comprising logging details of exceptions associated with the services and the tasks.
6. The system of claim 4, further comprising presenting details of the server, wherein the details comprises an operating system loaded on the server, a system directory, a version of the operating system, a manufacturer of the operating system, Central Processing Unit (CPU) usage, and details of logical drives.
7. A non-transitory computer readable medium embodying a program executable in a computing device for controlling services and tasks running across servers present in a network, the program comprising:
a program code for presenting, to a user, categories, instances and locations related to servers present in a network;
a program code for selecting, at least one of the categories, at least one of the instances, and at least one of the locations of the servers based upon a user input;
a program code for presenting, a list of servers to the user based upon a selection by the user;
a program code for presenting, services and tasks running on a server chosen from the list of servers by the user; and
a program code for performing, at least one of an enabling or disabling the services and/or the tasks, changing properties of the services and/or the tasks, and changing a startup type of the services and/or the tasks in order to control the services and/or the tasks running on the server.
,TagSPECI:FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENT RULES, 2003
COMPLETE SPECIFICATION
(See Section 10 and Rule 13)
Title of invention:
CONTROLLING SERVICES AND TASKS RUNNING ACROSS SERVERS
Applicant
Tata Consultancy Services Limited
A Company Incorporated in India under the Companies Act, 1956
Having address:
Nirmal Building, 9th Floor,
Nariman Point, Mumbai 400021,
Maharashtra, India
The following specification particularly describes the invention and the manner in which it is to be performed.
CROSS-REFERENCE TO RELATED APPLICATIONS AND PRIORITY
[001] The present application does not claim priority from any patent application.
TECHNICAL FIELD
[002] The present subject matter described herein, in general, relates to controlling services and tasks running across servers.
BACKGROUND
[003] Numerous services and tasks may run across servers for performing one or more desired jobs. The servers may be programmed for creating an executable program to be loaded on the servers. The executable program may further comprise program sub-modules. The program sub-modules may be identified as the services and the tasks performed by the servers. Each of the functionality may be provided by the services and the tasks. A server may support a limited number of the services and the tasks based on a consumption of resources at the server, by the services and the tasks. The consumption of resources may generally correspond to Central Processing Unit (CPU) usage and memory utilized at the server. The memory may include both of a storage memory like hard disk and a physical memory like Random Access Memory (RAM).
[004] The functionality provided by the servers may be customized or modified by changing the executable program running on the servers. A login into the servers is generally required for modifying the executable program. The services and the tasks may also be modified by logging into the servers. Further, the servers may allow a limited number of users to login into the servers. The number of users allowed to login into the servers may depend on a capacity of the servers and consumption of the resources at the servers. Further, the conventional way of modifying a particular service or a task is by logging into a server running the particular service or the task. In situations when a service or a task is loaded on multiple numbers of servers, a lot of time is consumed for modifying the service or the task as it would require separate logins at several servers. In other words, a lot of time may be wasted due to individually logging into each of the servers and modifying the service or the task separately.
SUMMARY
[005] This summary is provided to introduce aspects related to systems and methods for controlling services and tasks running across servers and the aspects are further described below in the detailed description. This summary is not intended to identify essential features of the claimed subject matter nor is it intended for use in determining or limiting the scope of the claimed subject matter.
[006] In one implementation, a method for controlling services and tasks running across servers present in a network is disclosed. The method may comprise, presenting, by a processor, to a user, categories, instances, and locations related to servers present in a network. The method may further comprise selecting, by the processor, at least one of the categories, at least one of the instances, and at least one of the locations of the servers based upon a user input. The method may further comprise presenting, by the processor, a list of servers to the user, based upon a selection by the user. The method may further comprise presenting, by the processor, services and tasks running on a server chosen from the list of servers by the user. The method may further comprise performing, by the processor, at least one of an enabling or disabling the services and/or the tasks, changing properties of the services and/or the tasks, and changing a startup type of the services and/or the tasks in order to control the services and/or the tasks running on the server.
[007] In one implementation, a system for controlling services and tasks running across servers present in a network is disclosed. The system comprises a processor and a memory coupled to the processor for executing programmed instructions stored in the memory. The processor may present to a user, categories, instances, and locations related to servers present in a network. The processor may further select at least one of the categories, at least one of the instances, and at least one of the locations of the servers based upon a user input. The processor may further present a list of the servers to the user based upon a selection by the user. The processor may further present services and tasks running on a server chosen from the list of servers, by the user. The processor may further perform at least one of an enabling or disabling the services and/or the tasks, changing properties of the services and/or the tasks, and changing a startup type of the services and/or the tasks in order to control the services and/or the tasks running on the server.
[008] In one implementation, a non-transitory computer readable medium embodying a program executable in a computing device for controlling services and tasks running across servers present in a network is disclosed. The program may comprise a program code for presenting, to a user, categories, instances, and locations related to servers present in a network. The program may further comprise a program code for selecting at least one of the categories, at least one of the instances, and at least one of the locations of the servers based upon a user input. The program may further comprise a program code for presenting a list of the servers to the user based upon a selection by the user. The program may further comprise a program code for presenting services and tasks running on a server chosen from the list of servers by the user. The program may further comprise a program code for performing at least one of an enabling or disabling the services and/or the tasks, changing properties of the services and/or the tasks, and changing a startup type of the services and/or the tasks in order to control the services and/or the tasks running on the server.
BRIEF DESCRIPTION OF THE DRAWINGS
[009] The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to refer like features and components.
[0010] Figure 1 illustrates a system for controlling services and tasks running across servers present in a network, in accordance with an embodiment of the present subject matter.
[0011] Figure 2 illustrates a first user interface comprising categories, instances, and locations related to servers present in a network, in accordance with an embodiment of the present subject matter.
[0012] Figure 3 illustrates a second user interface comprising a list of servers, a category, an instance, and a status corresponding to each server present in the list of servers, in accordance with an embodiment of the present subject matter.
[0013] Figure 4 illustrates a third user interface comprising details of a server selected from the list of servers, in accordance with an embodiment of the present subject matter.
[0014] Figure 5 illustrates a fourth user interface comprising services running on the server, in accordance with an embodiment of the present subject matter.
[0015] Figure 6 illustrates a fifth user interface showing controlling a service selected from the services running on the server, in accordance with an embodiment of the present subject matter.
[0016] Figure 7 illustrates a sixth user interface comprising tasks running on the server, in accordance with an embodiment of the present subject matter.
[0017] Figure 8 illustrates a seventh user interface showing controlling a task selected from the tasks running on the server, in accordance with an embodiment of the present subject matter.
[0018] Figure 9 illustrates an eighth user interface comprising a service scheduler for identifying servers executing a service selected by the user, in accordance with an embodiment of the present subject matter.
[0019] Figure 10 illustrates a ninth user interface showing controlling the services using the service scheduler, in accordance with an embodiment of the present subject matter.
[0020] Figure 11 shows a flowchart illustrating a method for controlling services and tasks running across servers present in a network enabled to support a group of functionalities, in accordance with an embodiment of the present subject matter.
DETAILED DESCRIPTION
[0021] Systems and methods for controlling services and tasks running across servers present in a network enabled to support a group of functionalities are described in the present subject matter. The system may be connected to servers present in a network. The servers may be present at a single location or the servers may also be present at distant locations. The system may present to a user, categories, instances, and locations related to the servers. The categories and the instances may be predefined by the user. The system may accept a user input for selecting at least one of the categories, at least one of the instances, and at least one of the locations of the servers. The system may also present a list of the servers to the user. The list of the servers may be prepared by grouping the servers based on the user input. The user input comprising the categories, the instances, and the locations may group the servers based on the user input. Post grouping, the user may easily modify similar type of functionalities provided by the servers. Thus, grouping the servers helps in avoiding the need to manually identify the servers providing the similar type of functionalities.
[0022] The system may further accept a user feedback for selecting a server amongst the servers. Post selection of the server by the user, the system may further present services and tasks running on the server. Further, the system may also present details of the server. The details may comprise an Operating System (OS) loaded on the server, a system directory, a version of the OS, a manufacturer of the OS, and details of logical drives. Further the system may allow the user to control the services and the tasks running on the server. While controlling the services and the tasks, the system may allow the user to enable or disable the services and the tasks. The system may also allow the user to change properties of the services and the tasks, and to change a startup type of the services and the tasks.
[0023] While aspects of described system and method for controlling services and tasks running across servers present in a network enabled to support a group of functionalities may be implemented in any number of different computing systems, environments, and/or configurations, the embodiments are described in the context of the following exemplary system.
[0024] Referring now to Figure 1, the system 102 for controlling services and tasks running across servers 104 (104-1 to 104-N) present in a network 106 enabled to support a group of functionalities is shown, in accordance with an embodiment of the present subject matter. Although the present subject matter is explained considering that the system 102 is implemented on a computer, it may be understood that the system 102 may also be implemented in a variety of computing systems including but not limited to, a smart phone, a tablet, a notepad, a personal digital assistant, a handheld device, a laptop computer, a notebook, a workstation, a mainframe computer, a server, and a network server.
[0025] In one embodiment, the system 102 may include at least one processor 110, a memory 112, and input/output (I/O) interfaces 114. Further, the at least one processor 110 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 110 is configured to fetch and execute computer-readable instructions stored in the memory 112.
[0026] The I/O interfaces 114 may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like. The I/O interfaces 114 may allow the system 102 to interact with a user directly. Further, the I/O interfaces 114 may enable the system 102 to communicate with other computing devices, such as web servers and external data servers (not shown). The I/O interfaces 114 can 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 interfaces 114 may include one or more ports for connecting a number of devices to one another or to at least a server 104.
[0027] The memory 112 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.
[0028] Referring now to figure 2, in one implementation, the system 102 may present a first user interface comprising categories, instances, and locations related to servers present in a network. The categories may be predefined by the user based on a type, size, and time of execution of the services and the tasks on the servers. The instances may be predefined by the user based upon functionalities provided by the servers. For an example, an application may be running on three production sites. The three production sites may be Dallas [Prod D], France [Prod F], and India [Prod I]. The production sites may be used by the user for classifying the servers based on functionalities performed by the servers. In a case, the servers may be classified as database servers, Linux servers, monitoring servers, and application servers. Further, the location/site may indicate a location of the servers as the servers may be present at distant locations for supporting the functionalities. The locations may also be identified as sites as shown in the Figure 2.
[0029] Post presenting these three buckets such as the categories, the instances, and the location/site of the servers, the system 102 may accept a user input to select one or more in each of these three buckets. The user input may comprise selecting at least one of the categories, at least one of the instances, and at least one of the locations of the servers. In an example, the user may provide the input by selecting the category 1, the category 2 and category 4, the instance as Prod 5, and the location as site 1. It may be understood that prior to each new search, the system 102 may allow the user to clear results of a previous search conducted by the user.
[0030] The system 102 may prepare the list of servers by grouping the servers based on the user input/selection. Further, based upon the user selection/input, the system 102 may present the list of servers to the user as shown by second user interface in figure 3. Along with the list of servers, the second user interface may also comprise a category, an instance, and a status corresponding to each server present in the list of servers. The status corresponding to a server may indicate an active or inactive state of the server as shown in Figure 3. In one embodiment, the status corresponding to the server may be indicated by a color of status icon. A red color of the status icon may indicate the inactive state of the server whereas a green color of the status icon may indicate the active state of the server.
[0031] Subsequent to presentation of the list of servers, the system 102 may accept a user feedback for selecting a server from the list of servers. Post selecting the server from the list of servers, the system 102 may present details of the server to the user, as shown in the third user interface on figure 4. The details may comprise an Operating System (OS) loaded on the server, a system directory, a version of the Operating System (OS), a manufacturer of the Operating System (OS), Central Processing Unit (CPU) usage, and details of logical drives. The details of the logical drives may comprise a name of the logical drive, a format of the logical drive, a total size of the logical drive, a type of the logical drive, and a free space available on the logical drive.
[0032] Further, the system 102 may present services and tasks running on the server. Figure 5 illustrates a fourth user interface comprising the services running on the server. The system 102 may present a name of the service, a description about the service, a status of the service, and a startup type of the service. The system 102 may also provide a way of controlling a service selected from the services, as shown by fifth user interface of figure 6. The user may select the service to be controlled from the services. The system 102 may allow the user to start or stop the service, enable or disable the service, and change a startup type of the service.
[0033] Figure 7 illustrates a sixth user interface comprising the tasks running on the server. The tasks may be identified as scheduled tasks, as illustrated from the figure 7. The system 102 may present, to the user, details related to the tasks. The details may comprise a name of the task, a status of the task, triggers related to the tasks, and next runtime of the tasks. The system 102 may also provide a way of controlling a task selected from the tasks, as shown by seventh user interface of figure 8. The user may select the task to be controlled from the tasks. The system 102 may allow the user to change triggers of the task and to change a status of the task. The system 102 may allow the user to change the status of the task by enabling or disabling the task.
[0034] Further, the system 102 may allow the user to identify servers executing a service selected by the user, as illustrated by eighth user interface of figure 9. The system 102 may provide a service scheduler to the user for identifying the servers. The user may select the service using the service scheduler. However, multiple services may also be selected by the user by using the service scheduler. Further, the system 102 may also allow the user to select multiple search criteria like the categories, the instances, and the locations related to the service. Thus, the system 102 may provide an integrated approach to the user for identifying the servers running the service(s) selected by the user. For example, the user may search for the service ‘Tomcat6’ with category 5, and the instance as ‘Prod 5’. In a case, when the system 102 fails to identify the servers based on the service and the search criteria, the system 102 may trigger a pop-up message. The pop-up message may include a name of the service not found by the system 102 and further details related to the service.
[0035] In a case, when the system 102 identifies the servers running the service (Tomcat6), the system 102 may present a list of the servers to the user. The service may then be controlled by the user through the service scheduler, as illustrated by ninth user interface of figure 10. The service may be started or stopped at servers selected by the user and thus preventing the need to individually logging into the servers. Controlling the service running on the servers by using the service scheduler may help the user in saving the time without individually logging into the servers.
[0036] In one embodiment, the user interfaces (first user interface - ninth user interface) may be developed using Windows Presentation Foundation (WPF) providing a unified programming model to the user. The service scheduler having the user interfaces may be easily executed on a windows machine. Further, the user interface may easily be configured using an Extensible Markup Language (XML) in a Dot Net framework. The XML may define a set of rules for encoding the user interfaces. An XML file may be present in a bin folder located in an application folder. The servers may be edited, added and removed by configuring the XML file. The XML file may be configured using the user interfaces. In case of an exception occurring while controlling the service, a log may be maintained by the system 102. The exception may correspond to the irregular responses handled by the user interfaces. Further, the exception may be described using the below mentioned cases. In one case, the user may try to start a service on a server, wherein the service may not actually be installed on the server. The user interfaces may then present a pop-up window to the user. The pop-up window may comprise a message stating “service not installed on the selected server.” In another case, the user may try to view services on an inactive server. The user interfaces may then present an empty window, having no results, to the user. The above described cases correspond to the irregular responses and are identified as exceptions. The system 102 may store a log file in the memory 112 for guiding the user in case of the exception. The user may refer to the log file in case of the exceptions for determining a root cause responsible for generation of the exceptions.
[0037] Hence, the system 102 provides a unified/single user interface, comprising UIs 1st to 9th, which will display details of all the servers at one device and will allow a user to modify functionalities of the servers from the unified user interface without the need of individually logging into each server.
[0038] The order in which the method 1100 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 1100 or alternate methods. Additionally, individual blocks may be deleted from the method 1100 without departing from the spirit and scope of the subject matter described herein. Furthermore, the method can be implemented in any suitable hardware, software, firmware, or combination thereof. However, for ease of explanation, in the embodiments described below, the method 1100 may be considered to be implemented in the above described system 102.
[0039] At block 1102, categories, instances, and locations related to servers may be presented to a user.
[0040] At block 1104, a user input may be accepted for selecting a category, an instance, and a location of the servers. The user input may be accepted for filtering the servers. In one implementation, the user input may be accepted by the processor 110.
[0041] At block 1106, a list of servers may be presented to the user. The list of servers may be prepared by grouping the servers based on the user input. In one implementation, the list of servers may be presented by the processor 110.
[0042] At block 1108, services and tasks running on a server may be presented to the user. The server may be selected based on a user feedback. In one implementation, the services and the tasks running on the server may be presented by the processor 110.
[0043] At block 1110, the services and the tasks running on the server may be controlled. While controlling, the services and the tasks may be enabled or disabled, properties of the services and the tasks may be changed, and a startup type of the services and the tasks may be changed. In one implementation, the services and the tasks may be controlled by the processor 110.
[0044] Although implementations for methods and systems for controlling the services and the tasks running across servers have been described in language specific to structural features and/or methods, it is to be understood that the appended claims are not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as examples of implementations for controlling the services and the tasks running across the servers from a single UI.
| # | Name | Date |
|---|---|---|
| 1 | 3332-MUM-2014-Response to office action [25-05-2022(online)].pdf | 2022-05-25 |
| 1 | Form 3.pdf | 2018-08-11 |
| 2 | 3332-MUM-2014-Written submissions and relevant documents [13-10-2021(online)].pdf | 2021-10-13 |
| 2 | Form 2.pdf | 2018-08-11 |
| 3 | Figure for Abstract.jpg | 2018-08-11 |
| 3 | 3332-MUM-2014-US(14)-HearingNotice-(HearingDate-29-09-2021).pdf | 2021-10-03 |
| 4 | Drawings.pdf | 2018-08-11 |
| 4 | 3332-MUM-2014-Correspondence to notify the Controller [24-09-2021(online)].pdf | 2021-09-24 |
| 5 | 3441-MUM-2014-Correspondence-201114.pdf | 2018-08-11 |
| 5 | 3332-MUM-2014-FORM-26 [24-09-2021(online)].pdf | 2021-09-24 |
| 6 | 3332-MUM-2014-Power of Attorney-191214.pdf | 2018-08-11 |
| 6 | 3332-MUM-2014-CLAIMS [26-03-2020(online)].pdf | 2020-03-26 |
| 7 | 3332-MUM-2014-FORM 18.pdf | 2018-08-11 |
| 7 | 3332-MUM-2014-COMPLETE SPECIFICATION [26-03-2020(online)].pdf | 2020-03-26 |
| 8 | 3332-MUM-2014-Form 1-201114.pdf | 2018-08-11 |
| 8 | 3332-MUM-2014-FER_SER_REPLY [26-03-2020(online)].pdf | 2020-03-26 |
| 9 | 3332-MUM-2014-Correspondence-201114.pdf | 2018-08-11 |
| 9 | 3332-MUM-2014-OTHERS [26-03-2020(online)].pdf | 2020-03-26 |
| 10 | 3332-MUM-2014-Correspondence-191214.pdf | 2018-08-11 |
| 10 | 3332-MUM-2014-FER.pdf | 2019-09-26 |
| 11 | 3332-MUM-2014-Correspondence-191214.pdf | 2018-08-11 |
| 11 | 3332-MUM-2014-FER.pdf | 2019-09-26 |
| 12 | 3332-MUM-2014-Correspondence-201114.pdf | 2018-08-11 |
| 12 | 3332-MUM-2014-OTHERS [26-03-2020(online)].pdf | 2020-03-26 |
| 13 | 3332-MUM-2014-FER_SER_REPLY [26-03-2020(online)].pdf | 2020-03-26 |
| 13 | 3332-MUM-2014-Form 1-201114.pdf | 2018-08-11 |
| 14 | 3332-MUM-2014-COMPLETE SPECIFICATION [26-03-2020(online)].pdf | 2020-03-26 |
| 14 | 3332-MUM-2014-FORM 18.pdf | 2018-08-11 |
| 15 | 3332-MUM-2014-CLAIMS [26-03-2020(online)].pdf | 2020-03-26 |
| 15 | 3332-MUM-2014-Power of Attorney-191214.pdf | 2018-08-11 |
| 16 | 3332-MUM-2014-FORM-26 [24-09-2021(online)].pdf | 2021-09-24 |
| 16 | 3441-MUM-2014-Correspondence-201114.pdf | 2018-08-11 |
| 17 | 3332-MUM-2014-Correspondence to notify the Controller [24-09-2021(online)].pdf | 2021-09-24 |
| 17 | Drawings.pdf | 2018-08-11 |
| 18 | Figure for Abstract.jpg | 2018-08-11 |
| 18 | 3332-MUM-2014-US(14)-HearingNotice-(HearingDate-29-09-2021).pdf | 2021-10-03 |
| 19 | Form 2.pdf | 2018-08-11 |
| 19 | 3332-MUM-2014-Written submissions and relevant documents [13-10-2021(online)].pdf | 2021-10-13 |
| 20 | Form 3.pdf | 2018-08-11 |
| 20 | 3332-MUM-2014-Response to office action [25-05-2022(online)].pdf | 2022-05-25 |
| 1 | Search_strategy_3488DELNP2014_25-09-2019.pdf |