How to fix the CAO Website (aka scalable systems using Drools and JMS messaging)

Just looking for the whitepaper on Scalable , Multiple Deployments of JBoss Drools? Click here

If you’re 17 or 18, and about to finish 2nd level school, chances are that you want to apply to a 3rd Level College or University. Here in Ireland you get 100 points for each ‘A’ grade in your final school exams (Leaving certificate), 85 points for a ‘B’ grade and so on. You can then use these points to ‘bid’ for your preferred course, with Medical and Legal courses ‘costing’ the most. Think of it as EBay for education, managed by the CAO (Central Applications Office).

Cao Logo

Of course, this being a Business Rules post, things are not quite as simple as that. Many courses such as Art and Drama require that you submit a portfolio of work. A lot of courses with strong people skills (e.g. Psychology) require an interview. And from this year, high demand medical courses have additional exams scores (testing for common sense and a personality!). These rules tend to be modified slightly from year to year. All these rules make the process more complex to administer, given that tens of thousands of people apply annually.

17 year olds being 17 year olds, all these applications hit the website in a 2-3 days ‘spike’ before the February 1st deadline. A 2nd spike hits the system in mid August when the actual exam results are published and college places are distributed.

Given that we’re dealing with people’s futures here how would you build the system (a) to process the rules clearly and correctly and (b) to guarantee that every application will processed , no matter how big the spike in workload is?. The current system has legacy issues, and has a history of falling over at critical moments (see stories here and here).

Problem A – how to run the course rules clearly and accurately – is a known issue, and can easily be solved using JBoss Drools.

Problem B – how to ensure the website / system is always available can also be solved quite easily : Use JMS to ‘Queue’ requests. At busy times in some call centres, instead waiting ‘musak’ you may get the message ‘ please leave your details and we’ll call you back when you get the head of the queue. BT Ireland do this for their broadband support, and they call you back in the same order that you were waiting. This guarantees that even under large spikes all requests will be handled (eventually), but with no guarantee of when. This is better than the alternative of ‘I’ll hang around online until I get the complete reply’; if the web site falls over; no guarantee when or even if you’ll get a response.

So, how do you put all of these together, perhaps with multiple versions of JBoss Drools (for extra scalability). By complete co-incidence (!) a whitepaper on how to build scalable websites using Drools and JMS messaging is here.

Advertisements

University of Ulster Graduates

Scary, but it’s been 12 years since I graduated from the University of Ulster, Coleraine (the bit of Northern Ireland right at the very top, close to Scotland). The story of those years is for another day , as is how a European Business Studies (with French!) graduate is now deeply involved in technology.

University of Ulster Logo

If you did study at the University of Ulster (in Magee, Coleraine, Jordanstown or Belfast), then the UU have a networking site to help you keep in touch with people from the time that you complained about having a lecture at 9.15am