International Journal of Computer Applications (0975 8887) Volume 60No.17, December 2012 13 Priority based Distributed Job Processing System P. Srinivasa Rao Computer Science YPR College of Engineering &Technology, A.P, India V.P.C Rao, PhD. Computer Science St. Peter's Engineering College, A.P, India A.Govardhan, PhD. Computer Science JNT University Hyderabad A.P, India ABSTRACT This paper proposes a framework for implementing a Priority Based Job processing system that has the capability to specify the priority of a job at the time of submission, execute the job at as per the priority at the job processor end. The framework will scale horizontally as well as vertically without any change in the components. This feature is achieved through simple configuration. The advantages of such a framework over other implementations is that we are using a global queue where in the processors can be dynamically added or removed without affecting the overall processing of jobs. This makes it flexible enough for any processor to handle any type of job without any restriction. While, it is still possible to impose restrictions on specific processors handling special type of jobs that is implemented as a configuration option and does not in any way impose restrictions on the processors. Therefore, new types of processors can seamlessly added to the entire network of processors without affecting the existing processors. General Terms Distributed Job Processing, Load Balancing,Parallel Processing. Keywords Distributed, Job Processing, Priority,Load Balancing , Monitoring, Recovery. 1. INTRODUCTION There are several Job/Batch processing systems implemented over the past decades, majority of them being on Mainframe systems. While such systems have met the functional requirements, the usage of them has been mostly restricted to offline / batch mode operations. Few of such systems are Payroll Processing systems, Back office systems in a financial institution for interest computation etc. Such systems, having lengthy processing time, processing large volumes of data, never had the requirement for a real-time computation or priority based computation. Several batch / job processing systems do exist today, but they may not have priority based scheduling implementation. Some of the obvious problems are: 1. Some of the system may not have the capability to define a priority. 2. Not many levels of priorities are supported. 3. No clarity on how priority is managed. 4. It is not clear which component manages priority (Dispatcher or Processor) While such challenges do exist today, given the technology available today, it is not difficult to implement a Job Processing system that supports priority based scheduling. There are several challenges in implementing such a system. So, how do we build such a system? Some of the critical challenges are: 1. Defining a priority. 2. Handling of the priority by the processor. 3. Technology support available in implementing such a mechanism. 2. APPROACH In this article, we will discuss about an approach and feasible implementations of a priority based job processing system. It is assumed that there is more than one processor available, but not necessarily online, in the system. By ‘not necessarily online’, we mean that a system is capable of processing the job, but is currently not available and will be available in the near future. Also, since the entire system has the reporting capability, is does have its own persistence, possibly through a local or remote database. So, the status of a job is maintained in the persistence, a database. The reporting can be done from the data available in this database. To start with, let us consider the basic requirement of a priority based job scheduling system. The capabilities should include the following: 1. Should clearly define the priority levels. 2. There should be a mechanism to assign priority to a Job. 3. The processor should be able to handle job processing requests based on the priority. 3. DESIGN Let us consider feasibility of implementation of such a system. How can the priority handling be implemented? Solution 1: The processors can be classified based on the priority. This means: a. Each processor is identified with a priority; apart from its other attributes. b. The dispatcher has the information about all the processors and their priority levels. c. When a job is about to be submitted, the dispatcher identifies the job’s priority, identifies the processor with the appropriate priority. d. The dispatcher then checks if the processor is free to take up this job. It then dispatches the job to the appropriate processor.