Monday, April 04, 2005
JBOSS in anger, years after
Starting with sipXconfig 2.8, progess has been made towards porting existing codebase from JBoss and JSPs to Spring Framework, Tapestry and Hibernate (TapSprHib). It's not that JBoss is an inferior technology, it just doesn't meet sipXconfig requirements anymore. Here my current comparison
- Memory requirements
o 400MB RAM with JBoss - JBoss 4.0.1 currently starts at 320MB and can grow to 400MB shortly after running. It can grow even more depending on what you're doing
o 60MB RAM with TapSprHib, this will grow as more is code is ported and libraries evolve but should stay in 100MB ballpark
- Startup times
o 1 minute, 57 secs with JBoss. This has already come down from even longer startup times by disabling many services. It's possible a few more could be disabled
o 11 seconds with TapSprHib
o installing jboss from tarball requires many manual steps including:
- patching JBoss installation
- copying in certs.
- setting file system permissions properly
Binary (e.g. RPM) installation is easier but this has other issues
- maintenance of custom RPM for SIPfoundry
- availability on other distributions is limited or behind in versions
- either limits development to work on 1 copy at a time or complicates
o none - embedded Jetty jar file with 1 embedded configuration file
- Download/HD requirements
- 60MB+ as separate download for JBoss
- 4MB as part of sipXconfig download. This is a total of Jetty, Tapestry and Spring jars. Hibernate not included because its required for both
From these numbers, JBOSS is better suited for high-end enterprise systems, not as a transparent, integrated, web admin tool. EJB 3.0 spec and subsequently JBoss is evolving in an encouraging direction but it may be too little and it's certainly too late for sipXconfig.
Damian and I have already ported roughly 20% when refactoring daling plans, gateway management, managed polycom phone support. Damian and I will take a similiar tactic for sipX 3.0. Unfortunately users won't see the fruits of our labor until JBoss can be removed entirely. I logged the remaining portions of the port in the sipXconfig bug database as tasks: XCF-293 through XCF-306. I roughly estimated 60 man days to port remaining portions.