Goal Oriented Scheduling for Java is a way of organising processing priorities based on goals. Each goal is processed based on its time to complete, and its progress towards that goal. Deadlines are used to act as the target completion time for a goal, and can be expressed in either relative or absolute terms.