Project Description of Distributed Task Execution Framework
Read about the Project
Client User Interface
Client GUI Module is developed in Java NetBeans6.0.This module is for Creating and submitting Task. Two types of information are giving as inputs. Task related information and Machine related Information. Task related information contains the type of task (JRE build, JRE testing etc.) and related details based on selection. Machine related information contains ipAddress, HostName etc.
Client user interface has mainly 8 classes,
1. MenuClass.
2. MandatoryFirst.
3. MandatorySecond.
4. MainMandatory.
5. Optional.
6. CustomPanel.
7. XmlData.
8. Main.
MenuClass
Menu class creates a menu bar having menus like,
File
Help
File Menu have, menu items like,
New-new file.
Open-for opening the particular file.
Save-saving the data.
Close-existing from the window.
Help Menu have, menu items like,
About
Content
Mandatory:-
Mandatory fields must be filled by the client.Inside the MandatoryTab class, we calls the object of 2 classes like,
- MandatoryFirst
- MandatorySecond.
In these 2 classes, we are designing the GUI Fields, for the data entry of the client. Some fields are dynamically generated according to the data, selected by the user.
OptionalTab:-
The fields in this class are optional. Only some users need the fields to be filled. All classes are designed as separate panels, and all extends JPanel which is defined in the SWING package.
CustomPanel:-
This class creates the panel on the running time. The fields that needed to create the panel are read from the xml file, created by the user. The xml file is read on the XmlData class. According to the tags on xml file the panel is created. The user should enter the fields.
MainGUI:-
In MainGUI class, the objects of all the above classes are called. All the panels are added to the frame. So the MainGUI extends the JFrame of the SWING package. This interface contains two buttons like,
SAVE Button:
This button is used to save all the contents into a XML file. This file can be used later.
SUBMIT Button:
This button is used to submit the content as a XML file to the controller.
Controller GUI Module:
The Controller GUI is a front-end application. The user can view, remove, and restart task requests. Also, DTEF's GUI allows to control over remote agent, e.g. agent restart and/or shutdown. The Controller may be started with a GUI front-end attached. The DTEF's GUI has menu bar contains the following menu hierarchy:
• File
o Connect
o Quit - close the GUI front-ends
• Help
o Online Help- contains useful Web links, etc.
o About- contains some information about the authors.
The title bar of main GUI window contains the information about resources, where DTEF's GUI is currently connected to. It includes name of the lookup server and name of the connected DTEF Controller. The DTEF's GUI has 3 panels: "Scheduler", "Machines", and "Logs". They include information about the jobs' scheduling, the list of available machines, and jobs' log files, correspondingly.
Scheduler Panel:-
In the Scheduler panel, the status of the tasks is displayed. There are 3 tables on this panel:
• Jobs in queue.
• Active Jobs.
• Completed Jobs.
Under each table, there are one or more buttons. These buttons are used to control the scheduling. And buttons only work for the corresponding table.
Jobs in queue:-
After a job is submitted, it will first show up in the "Jobs in queue" table, which keeps all the tasks that are waiting for scheduling. When DTEF matches a machine for this job, and there are no higher-priority jobs in the in-queue, this job will be scheduled to the corresponding machine.
Active Jobs:-
Once the job is scheduled and dispatched to a machine, it will be moved to "Active Jobs" table, which keeps all the tasks, which are currently running on the machines.
Completed Jobs:-
After a job is finished or killed by users, this job will finally go to table "Completed jobs", where all the completed jobs are kept. There are a number of buttons in the Scheduler Panel that can be used to manipulate the tasks:
• "Remove job(s)": by clicking this button, the selected job(s) in "Jobs in queue" table will be removed. The removed job won't be scheduled any more unless the user chooses to restart it later.
• "Kill job(s)": This button can help users to kill a running job. The job will be removed from the "Active Jobs" table, and the Controller will send a command to the agent machine, trying to stop the running processes on agent machine.
• "Restart job(s)": This button can help restart the selected job in "Completed job(s)"table, and the job will go to in-queue for being scheduled later.
• "Delete job(s)": This button will remove all the jobs from the "Completed job(s)" This will only affect the "Completed" table.
Machine Panel:-
This panel displays the list of all available agent machines. The machine list will be updated automatically when there is any change to this machine list.
There are two buttons available.
• Shutdown Agent(s): By clicking on this button, the selected agent's machine will receive a signal, saying, that the Agent's process needs to be finished and VM should be stopped.
• Restart Agent(s): By clicking on this button, the selected agent machine will receive a signal, saying, that Agent's process needs to be finished and started again. So if the version of agent is updated, users don't have to go to that machine and re-run the agent again, they can only copy the jar file to the right place and click this button.
Logs Panel:-
This panel keeps the log information of select task. If a task from the the scheduling panel is selected and the popup item "log" is clicked, then the task's log will be displayed in this panel .
Scheduler module:
Scheduler module is used to store and schedule the jobs into the queue. For Scheduler module, we are creating an interface called Scheduler. This interface is created for the latter use. We can create any type of scheduler as we need.
Scheduler Interface:-
This interface has methods like,
• addTask(Task)
• getTask(Machine)
• removeTask()
These methods are implemented in the PriorityQueueScheduler Class.
PriorityQueueScheduler Class:-
In this the methods in the Scheduler interface are defined.
• addTask(Task):-
This method is used to add the task to the priority queue. In this we are using array of queue with five priorities. According to the priority the queue will be selected. On each queue the job is added at the rear position.
• getTask(Machine):-
This method is used to get the task from the array of queue. The agent machine information is passed as the argument. It is compared to the machine information of the task and if it is equal then it will take from queue and distributed to the agent.
• removeTask():-
This method is used to delete the task from the queue.
3. 10.4. Job Feeder Module:
Job Feeder Module is responsible for submitting and accepting the job. It has a client side and server side. Client Job feeder is responsible for submitting job to server. Server job Feeder is responsible for parsing the incoming Job and creating a job (out of the stream).
In Job Feeder Module, have mainly 2 classes.
1. ServerClass
2. ClientClass
• ServerClass:-
ServerClass is responsible for parsing the incoming Job and creating a job.
• ClientClass:-
ClientClass is responsible for submitting job to server.
A system and method of receiving tasks in a distributed task execution framework (DTEF) includes receiving a task in a task feeder. The task is in a task feeder-specific format. The received task is converted to a DTF-specific format and the converted task is scheduled for submission in the DTEF. Converting the task to a DTF-specific format can include identifying at least one method required to execute the task. The task includes a corresponding computing system attributes required to execute the task, a location of a required external resource, and one or more pre-execution configuration parameters required to execute the task, the task feeder is included in a server.
Controller Module:
Controller Module is responsible for submission of a job to the scheduler. The Scheduled job includes: recording a plurality of server activities in a log manager; maintaining a wait queue in a queue manager, the wait queue including the task waiting to be executed, and maintaining an execution queue in a scheduler, the execution queue including a current status corresponding to one or more converted dispatched tasks.
Task will select at least one of the plurality of leased ad-hoc computing resources from the list wherein the selected at least one of the plurality of leased ad-hoc computing resources includes the corresponding plurality of attributes required to execute the converted task waiting to be executed in the wait queue; dispatching the converted task to the selected at least one of the plurality of leased ad-hoc computing resources at a selected time to execute the converted task; and maintaining the current status of the dispatched converted task in the execution queue. The execution queue including a current status corresponding to one or more converted dispatched tasks.Controller module contains,
Task Interface:-
In task interface we are declaring the methods for getting the task information and machine information from the xml file.
CommandTask Class:-
CommandTask class is implemented from the task interface. This class uses the command class and machine class objects.
Command Class:-
Command class is used for getting the argument information.
Machine Class:-
Machine class is used for getting software and hardware requirements of the task. Inside this class, software and hardware classes are used.
Written By Saju thomas.
Read more about Module Specifications
Read more about Non Functional And Functional Requirements
Read more about Java Programming features like Socket Programming,Swing,RMI ,NetBeans and XML
Read more about Project Description
Read more about Activity, Sequence and Class Diagrams

www.jobscochin.com