Founder's BlogSpeed has been losing importance in the programming world over the years. The success of Java is a clear example of this: who would want to run any enterprise software on what was basically an interpreted language 30 years ago? Even today, when an application really needs to squeeze as much as possible from hardware, it is written in C/C++ (games, for example).
And yet, speed can still be a problematic business requirement. It is not very prevalent when it comes to billing systems, with a few exceptions: invoice generation, payment processing and mediation (processing of CDRs).
The recent release of jBilling 2 had a nice surprise: it comes bundled with the latest release of Drools (also known as JBoss Rules). In the jBilling 1.x world, you had to install Drools in a separate application server. That meant having two separate application servers often running at the same time: JBoss 3 to run jBilling 1, and JBoss Web to run Drools. This was not only annoying but also ironic: jBilling 1 would not run on JBoss Web (which is based on JBoss 4), and Drools would not run on JBoss 3: so we need to JBosses ;)
As the packing and final testing of jBilling 2 is under way, I thought I would take a few minutes to give you a peek into jBilling 2.
The most important change is where jBilling runs. In the 1.x world you had to use JBoss 3. Most of you know that this is quite an old version of JBoss, while others would rather use other application servers. JBilling 2 runs in any application server: Websphere, Weblogic, jBoss 5 and even those that do not implement the whole Java EE stack: Tomcat or Jetty for example.
From a billing perspective there isn't a lot a pressure with performance. Even a modest server can do pretty well when it comes to invoice generation (which is the most typical batch process). I do remember a good 15 years ago, when this was not the case. The billing system was written in C, and it ran on a high-end Sun server. And it did manage to get all the invoices out in time, but if anything went wrong and the process had to be ran again, we were in trouble.
On January this year, I decided it was time to get a new computer. May be catch a boxing day deal. After choosing a nice quad core with 4 GB of RAM, I realize one 'small' problem with this Dell: it comes with Vista. Any other options for the OS? Nope, it's Vista or Vista.
If, at the time, I had not had previous experience with Vista, I would've been happy to get it. But another box I had bought for the living room came with Vista, so I knew it.
jbilling-telco was announced a few days ago, and the amount of interest has been tremendous. We've got a lot of questions regarding the features, architecture, etc. For all of you out there wandering about jbilling-telco, rest assured that there are people here at jbilling working hard at finishing new pages in the web site that will satisfy (most) of your curiosity. There will be a road-map page with a detailed list of all the features and the estimated date of release.
Object Relationship Mapping (ORM) is probably the best things that happened to enterprise software development since the invention of the Lego brick in 1949. Implementing the database access through ORM allows you to access the account data of a customer through the class 'Account' (with pure Java code), rather than having to mix SQL code in your Java classes. A framework does the job of translating your Java code to SQL statements and executing them though a JDBC connection.
If you are reading this, chances are you already know the advantages of open source. Open source is free, benefits from a community of contributors, it's well tested, the list of benefits is long... right?
Performance is a subject that seems straight forward, but can get controversial easily. After all, we all want our software to be fast, right?. But there is a catch, performance comes often at a high price: code that is difficult to understand, change or extend.
First of all, I'd like to start my first blog entry with a special thanks to Edwin De Souza from MySQL. I would not be blogging if it wasn't for his kind advice. Thanks!
Now to the subject in question. It seems like the word "enterprise" is now just a marketing term that really means nothing and its added freely to all sorts of software. Since we emphasize jbilling as an enterprise billing system, I'd like to clarify my understanding of what enterprise means, at least to me.