Development of a Model Architecture for Job Scheduling

Job scheduling has a long history. Job schedulers have been one of the major component of IT infrastructure since the early mainframe system, at first, stacks of punched cards were processed one after the other, hence the term batch processing. The aim of a job scheduler was to arrange, control and optimize work and workload in a production process. The study aimed at achieving a job scheduler that can assign jobs to available resources in such a way that workload leveling can be achieved. The objectives of the study included to; ascertain the existing schedule system, design a model platform for job scheduling, implement the model platform for job scheduling, and test and deploy the model platform for job scheduling. The study adopted the spiral development model. The proposed system was developed using java script which is a client scripting language which is used for creating web and windows application and it has almost all online application since the system is an online system. The developed application was tested with field Meta data and the outcome was according to specification and of desired output. The application was hosted on three different servers, one server for the frontend, another server for the backend and the third server for the database, hosting on the three different servers did the magic by making the system faster and easy to optimize.


Introduction
Statement of the Problem The pen-and-paper method is the old way of job scheduling for a workload, in which all job scheduling is funneled through an operation manager or the business owner. In this model, the personnel in charge manually write down the available jobs and available staff / machines to carry out the jobs, with this method labor load leveling becomes so hard to achieve, and thereby leads to chaos in a situation where workers are paid according to their workload. With large workgroups or very busy schedules, this system can rapidly become untenable, record keepings becomes difficult, as books use to manually record the scheduling get filled up, and there is no real time information and can also have negative effect on productivity. This project will design an automated job scheduler that will carry out repetitive tasks as required in a schedule-based calendar and event conditions. There is no reason to manually check off jobs in a log as they finish, the entire process will be automated thereby producing real time information, labor load leveling will be achieved, time wasted in the manual process will be reduce thereby increasing productivity and efficiency of the organization.
Purpose of the Study The main aim of the study was to develop a model architecture for job scheduling system. The objectives of the study include the following.
1. To ascertain the existing schedule system. 2. Design a model platform for job scheduling.
3. Implement the model platform for job scheduling. 4. Test and deploy the model platform for job scheduling.
Scope of the Study The study is limited to a job scheduler that is automated, a job scheduler that will be arranging, controlling and optimizing work and workloads of IKODOTENE solutions, achieving labor load leveling, producing real time information and increasing efficiency of the organization. This work will develop a tool that is limited to generating schedules and assigning shifts based on employee's qualifications, availability and a variety of other customizable parameters.

Related Literature
Job Scheduling Architecture Job scheduling architecture is the operations' architecture and governance that is responsible for the standards and frameworks to support a unified, centrally administered job scheduling capability across all computing platforms within a data center, Wicken [1].
Multiple Resource Theory (MRT) Wicken's MRT in proposes that the human operator does not have one single information [2]. Applying Wicken's theory help to identify and assign jobs that can be performed concurrently to same or different resources, and task that would interfere with each other are assigned separately and are given priority to avoid interference. Task that other tasks depend on to be executed are assign to the needed resource and are given high priority to avoid loss of performance of other tasks that depend on it.
In 1903 Gantt, Gantt proposes that the main record shows what each worker should do and did do, and the daily balance shows the amount of work to be done and the amount that is done, [3]. In modern job scheduling software this is known as the 'management information' this information is use for management decision making, this information include what each worker should do and what was done by each worker, it also shows the daily or weekly or monthly (depending on the system design) jobs to be executed and the amount that is executed.
In 1916 Gantt, Gantt also proposes that each day a list of jobs to be executed be given to the foreman, [4]. A job scheduling system can only function efficiently when the jobs to be executed are made available to the system on a daily or weekly basis (depending on the system design and nature of jobs) for efficient scheduling.
Work front Silicon slopes in 2019, Designed a modern work management application platform (Work front), the main objective of this design was to help people do their best work, so companies can thrive in a digital world [5].
Work front was designed for people, effortlessly connecting teams and easily integrating into existing applications and systems, it was implemented using PHP and MySQL, with one platform to set goals, track goals, manage work, track progress, and measure results. When work front was implemented, it has the ability to track progress, integration into existing system has helped thousands of companies successfully transform their businesses into modern enterprises that increase revenue, improve customer experiences, and reduce cost. It was develop using a lightweight programming language, it is easy to access via web by the workers to check their schedule. Work front help organizations solve the essential challenge of large enterprises aligning people and teams to effectively and efficiently achieve company objectives, [6,7].
People do their best work when they know their role, have clear goals, and understand how the work they are doing supports company objectives," one of the developers of work front [8]. The limitation of work front was that jobs were just assigned to each worker without specifying the deadline for each job. This will be addressed in the current study. The current study will provide a user interface, the interface will help the user create jobs and specify deadline for each job created.
Open Shop Scheduling in a Manufacturing Company Using Machine Learning Strand's work was limited to a manufacturing environment (scheduling task between machines). Hence did not address staff scheduling. The proposed system of the current study is designed to address this gap in knowledge which was left open in the work of Strand [9]. The current study will provide an interface in which workers of an enterprise can view their schedule, shift and jobs allocated to them.
Optimization Techniques for Task Allocation and Scheduling in Distributed Multi-Agent Operations In Tompkins's work, jobs were only assigned to available agent at real time, agent break time, off duties were not captured by the system [10]. This will be addressed in the current study. The current system will give the human resources personnel the opportunity to assign jobs to available resources to be executed later (depending on the nature of the job), and can also assign jobs at real time.
Dynamic Resource Management and Job Scheduling for High Performance Computing Prabhakaran's work in Strand [9], was limited to scheduling task in a computing environment, and did not handle enterprise workload scheduling. The proposed system of the current study is designed to address this gap in knowledge which was left open in the work of Prabhakaran in Strand [9]. The current system will handle enterprise workload scheduling, by assigning real life jobs to available staff of an enterprise, and ensure workload leveling between workers of an enterprise, [11].

System Analysis and Design
Analysis of the Existing System The existing system is a manual job scheduling system. The Human Resources Personnel (HR) of IKODOTENE solution has been carrying out workload scheduling manually. It involve HR Personnel identifying the jobs to be executed for a new week over the weekend before the week commences, most times work changes as the week goes on, the personnel has to check every morning jobs to be executed and available resources to execute the jobs, if need be for rescheduling, he has to reschedule. And he has to check on daily basis to ensure workload leveling is achieved to some extent. The file containing this schedules are manually stored.
Limitation of the Existing System The following are the bottleneck of the existing system; 1. It is stressful and tedious. 2. It is time wasting, thereby having negative effect on productivity. 3. Labor load leveling is hard to achieve.
4. No real time information, so therefore management decision can't be made at real time. Analysis of the Proposed System The proposed system is an automated job scheduling system. This system automatically schedule available jobs among available resources. A software engine is responsible for scheduling jobs for available resources as against the manual process in the existing system. When available jobs are entered into the system, the system allocates these jobs dynamically to the available resources which are stored in the database of the software engine. The proposed system has interfaces which help to define workflows and or job dependencies. The system tracks each job and automatically submits executions.
Justification of the Proposed System The proposed system provides the following merits over the existing system: 1. An organized database of available resources. 2. Save time and improve productivity.

Speed-up business processing. Method used in the Study
The method adopted for this study is the spiral development model. This method provides solution to problem in corkscrew approach such that one solution step leads to another until the overall solution is achieved.
Architecture of the Proposed System The architecture of the proposed system is made up of one interface, the graphical user interface (GUI). It is structured to coordinate schedule jobs, status and history, as well as control jobs. Consequently, it also offers components that enable the administrator to create new resources into the resources database, and also retrieve jobs assign to resources from the map tasks to resources database.
Below is the explanation for the various parts of the proposed system: Job Scheduler: it maintains records of incoming jobs, queue status of jobs, details of processed and processing jobs and the next jobs scheduled for processing. It starts the task mapping agent process and feeds it the necessary information to retrieve available resources and assign it to the jobs, and also submit the mapping result to the map tasks to resources database via the Scheduler agent, it access data directly from the database.
Client GUI: this interface helps you do the following; 1. Load input data (new resources) into resources database. 2. Submit jobs. 3. Extract assigned jobs from the map tasks to resources database. Resources database: All of the information about resources is stored here.
Task mapping agent: This agent is part of the job scheduler, it does the task to resource mapping.
Scheduler agent: this agent is also part of the job scheduler; it takes the job mapping from the task mapping agent and sends to the map tasks to resources database.

Input Model
The input design describes the process through which data filled in by the user is passed to the software engine for manipulation. A client input the jobs for scheduling with the aid of a keyboard and click on next to input another job till all jobs are inputted, and then click on submit button which triggers the process.

Process Model
The process begins with the processing of the various tasks entered. When the administrator enters the task, it is first stored and then the available resources are crosschecked to examine which one will best suit the job. The deadline of the task is examined and the speed at which the resource can execute the task is also examined if the resource cannot execute the task within the deadline, the task is assigned to another resource or resources that can meet up with the deadline. The process design is explained with a flowchart for comprehension of the steps.
Output Model The output model is dependent on the jobs inputted by the user and also the available resources. Once list of workflow is entered in the user interface, it is displayed on the screen and when the process is triggered upon clicking the submit button, the mapping of jobs to resources is displayed.  Database of the Proposed System The proposed system database will help to read (view data via queries), create (add data, table, rows or columns), update (change data, table, rows or columns) and delete data. Conditions are added to perform such function which includes: 1. The field name: This is for alphanumeric data (all digits and printable characters). 2. The field type: Determines the type of data which the user can enter into the field (alphanumeric, numeric etc). 3. The field width: This is the percentage of the outer container.

System Implementation
Choice of Programming Language The programming languages used in the implementation of this project are; 1. JavaScript. 2. HTML (Hypertext Mark-up Language).

MongoDB (NoSQL). Justification of Programming Language
JavaScript is a client scripting language which is used for creating web and windows application.
Implementation Architecture The implementation architecture provides for only one login form for users and admin. Once the first user of the system login, he can create other users, and he then becomes the admin. So there are two types of users which are; the admin and other users. Behind the scene when a user or admin login and the login is processing, the system checks if the user has the role of a user or an admin. If the role of the user returns admin, it takes the user to the admin panel, where he or she can input task and assign type of task, add new users, assign roles to user base on their areas of experience, view assign jobs and can also give a user admin privileges. But if the role of the user return user, it takes the user to the view job assignment page, were the user can view jobs assigned to him or her, as well as update the status of the job. When the admin input new jobs, add new users, add new admin, the data are stored in the database. When a user updates the status of his or her assigned job, it is stored in the database.

Summary
The purpose of this project was to develop a job scheduler that is automated, that will be arranging, controlling and optimizing work and workloads of an enterprise, achieving labor load leveling, producing real time information and increasing efficiency of the organization, the job scheduler achieve this by generating schedules and assigning shifts based on employee's qualifications, availability and a variety of other customizable parameters. The study adopted the spiral development model. This model encompasses the strengths of the waterfall model, while including risk analysis, risk management, support and manages processes.
The design of the proposed system was done using data flow diagram (DFD) and entity relation diagram (ERD). Data flow diagram (DFD) was used to show the flow of information in the system, which include data input and output, data stores and all the sub-processes the data move through. The proposed system was developed using java script. JavaScript is a client scripting language which is used for creating web and windows application and it has almost all online application since the system is an online system, then it becomes an ideal programming language that can be used to implement the proposed system effectively and the database was developed using Mongo db, which is an opensource document-oriented database. This work will be beneficial to the IKODOTENE solution's management board and other workers of the company who may come in contact with the system as well as their clients, and other related organizations. Conclusion In this work, we have successfully developed an automated job scheduling system which automatically schedule available jobs among available resources; a software engine is responsible for scheduling jobs for available resources as against the manual process in the existing system. The application was hosted on three different servers to make it faster, one server for the frontend, another server for the backend and the third server for the database, for reason that if the application was hosted on one server, to access the frontend you also access the server, to access the backend you also access the server and so on which will eventually make the application slow. Hosting on three different server does the magic and easy to optimize if the code breaks, if it is the frontend code you just have to go to the front end server to fix it, same with backend code and the database. The workers of an enterprise can easily and conveniently view jobs assign to them at real time by logging into the system.

Recommendations
1. All enterprises should adopt an automated scheduling system. 2. Enterprises should encourage and train their staff to be computer literate, so that they can use the automated scheduler. 3. Enterprises that have adopted an automated scheduling system should ensure 24hours availability of internet. 4. System administrator and users of the automated system should have a good working relationship in order to provide accurate data for the system.