Right Java tools for J2EE, Web Service, Grid and more
|Home | Products | Documents | Downloads | Purchase | Support | Company | Partners | Contact |

J2EE Scheduler

Scheduler is one of the common facilities in computer world. Every operating system provides a schedule program to run its tasks, like 'cron' job in UNIX and 'scheduled tasks' in Microsoft Windows. It works only on an individual  machine. Nowadays a lot of computer systems are in distributed computing environment and clustering environment. Schedule program needs new features to handle the complicated environment. 

Today, big companies use J2EE technology to run their computer network over the world. Even small companies also work in distributed computing environment; their web and application servers run at their hosting companies, instead of home offices. 

Scheduled tasks fall into two categories:

In this article, we focus on schedule tasks in application level.

 

The Working environment

J2EE is a distributed computing environment by itself. There are many machines working together. J2EE applications are platform neutral and machine neutral. J2EE servers have load balance and fail-over features to optimize the system's RAS (Reliability, Availability and Serviceability). The applications may run on different machines at different times. So the scheduler must not be bound with any particular machine. Furthermore, you want to run scheduler on client machines for easy management and flexibility.

Usually, your application server is in your data center or at a hosting company. You want to control application tasks at your office on a client machine. Different departments want to manage their own tasks. For example, warehouses run inventory checking tasks while sales run sale analysis tasks. If anything goes wrong at the system level (for example database is down), the scheduler should send alert notifications to the administrator on duty. If you run scheduled business patrol tasks and find an abnormal condition at business level, the scheduler should send alarm notifications to the people in charge. All notifications should be handled by the scheduler automatically.

All the above issues require scheduler to support distributed computing environment with the following features: 

 

Working with J2EE servers

A J2EE scheduler must work with application servers providing server oriented tasks, such as deploy applications.

Many companies have policies to restart whole system (applications, database, servers and machines) regularly to make the systems are always fresh. J2EE scheduler should provide tasks to shutdown application server. J2EE scheduler also need to provide tasks to shutdown the scheduler itself and restart itself to where it was showing the same GUI monitor panels.

 

Working with Web Service servers

A J2EE scheduler must work with different Web Service servers: Web Service servers from J2EE, Web Service servers from Microsoft .NET and other Web Service servers.

 

Working with legacy system

Many companies have legacy systems written in different languages. Usually, legacy systems are platform and machine dependent. Schedulers must allow you to specify the desired machines for running specific tasks.

To run legacy system from schedulers is easy: You just call Runtime.execute( ) methods. But to allow legacy system to schedule tasks in your new schedule system is more challenging. Schedulers must provide an easy way to do so, regardless of what is the written language.

 

Visual settings instead of API

A flexible schedule system must allow you to set jobs and tasks visually. For example, an EJB task with JNDI name xyz and a list of parameters should run on the last Friday of each month with holiday policy. This is much more complicated than meets the eye. Today's technologies make windowing environment available on all operating systems.

The J2EE environment provides many modules:

These tasks are not as simple as calling an Operating System's task. Manually set these tasks are error-prone. Programmatically set these tasks are too troublesome.  These tasks should be set visually.

 

Log system

Schedulers are mission critical programs. They must log all important activities and events. Schedule is a part of the whole application system. Log messages from scheduling must be with application logging system together, so if anything happens, you can analyze the chronological order of all log messages together and trace down the problem.

 

Security

Security roles must be assigned to appropriate people. No more, no less. 

Usually, a group of people play the same role. For example, a few operators take care of backup duties, while another group of people takes care of inventory report. The same group of people should have the same privileges, so when one person is off, others can take the slack within the same group.

 

SuperScheduler

SuperScheduler is a SuperComponent of Super. It resolves all the above issues. You can download it from http://www.acelet.com.  

SuperScheduler is a J2EE scheduler designed for scheduling all J2EE applications. It runs as a client of your J2EE application server. It is entirely written in Java. It is platform neutral.


©Copyright 1999-2008 Acelet Corporation. All rights reserved.