Saturday, October 08, 2005

JINI...Is it relevant anymore...was it ever?

For most of its life, JINI cost too much and was somehow coupled (marketing wise) with J2ME, which was also priced into oblivion. Many years ago (1998 or so), I was involved in a project to create some networking infrastructure to ease the creation of distributed applications (a lot of wheel re-invention, but at the time we could not afford the accepted enterprise solutions). We also had to deploy on multiple operating systems. Most of my employer's software was written in C[++] back then. CORBA was well known to do what we needed (and more). However, ORBs were still too costly, and like many companies then, my employer was terrified of deploying open source. The company was dabbling with Java, and this is when I first came across JINI. It seemed to me then that JINI was little more than a Java-centric version of CORBA's naming and trading services. I realize it probably does more than this, but at the 10,000 ft level, I'd say this is an accurate description. I looked into what it would cost to license JINI, and I was blown away by the cost. There were on-going royalties that I could never get my employer to agree to. For a long time I dismissed JINI simply based on cost. Recently however (earlier this year), Sun has provided JINI under an Apache license. Perhaps it's time to give JINI a second look? It appears however, that all that is free is a starter kit. This implies to me that it is missing something you will probably need in a production environment.
Will Sun ever learn? Sun has been doing a similar thing with JMX. Sun offers a product named Java Dynamic Management Kit (JDMK). It is also priced outside the reach of most software shops. I think it is a shame that the JMX specification did not mandate SNMP support. Yes, it's an old, crusty protocol, but if you are doing any sort of real-world enterprise OA&M, your code will have to acquire a large amount of its data via SNMP. I should mention that TCP/UDP is also an old, crusty protocol.