Thursday August 09, 2007
Instant JChem: Platform for Chemical Applications
This week, an interesting article was published (here) about Instant JChem (IJC), which is an IDE for scientists. There's a lot of reason for celebration—IJC 2.0 has just been released. IJC is a complete out-of-box application for working easily and efficiently with chemical structures. The article quotes IJC lead developer Tim Dudgeon as saying: "Scientists want a powerful yet easy-to-use application that lets them sketch structures and run queries efficiently while insulating them from the complexities of how.” (Many animations of working with IJC can be found here.)
In other words, IJC is to scientists what NetBeans IDE is, in at least some respects, to developers... Especially when you look at the NetBeans Visual Web Pack (formerly known as Creator), the 'hiding of complexities' factor is very comparable to what IJC does for scientists. But, in fact, IJC is a lot more than that. Just like NetBeans IDE is built on top of an infrastructure that can be reused by other applications, IJC itself is also built on a reusable infrastructure. Now, before you think: "Ah, okay, this is another NetBeans Platform story," let's back up a bit, because this is not another NetBeans Platform story.
In short: IJC is, strictly speaking, not built on the NetBeans Platform. It is built on top of the IJC Platform. The IJC Platform consists of several different components, one of which is the NetBeans Platform. Here's a picture that sums it all up:
Interestingly, just like the NetBeans Platform, the IJC Platform can be extended too! Why would you want to extend it? For the same reasons as one would want to extend the NetBeans Platform. Either you are enhancing an application that is based on the IJC Platform (such as IJC itself, for example) or you are creating a completely new application on top of the IJC Platform. Both are possible. You can disassemble IJC because, just like NetBeans IDE, it is composed of modules. Then you can rebuild it, together with your own additions, thus forming your own new application.
And the IJC Platform provides three modules with APIs that you can reuse:
- Discovery Informatics Framework: Provides the data model and persistence tiers for applications that need to use chemical and biological data.
- Instant JChem Core: Provides the basic user interface for Instant JChem and through its API it provides the ability to extend the IJC user interface.
- UI Widget Renderers: Provides the basic set of visual components, known as widgets, which can be used in the form designer. All widgets implement APIs provided by the Instant JChem Core module and are plugged into the system using declarative XML layers. Some widgets share the rendering of data values and so make use of the UI Widget Renderers module, which contains shared renderer implementations.
And how do you get started using these three modules? Well, there's even a set of IJC API tutorials, to help you get started:
Aug 09 2007, 04:25:29 AM PDT Permalink


