Bioinformatics Portal on the NetBeans Platform
My name is David Rigsby and I am a Senior Research Scientist with the Battelle Memorial Institute. My job includes project management, systems architecture and design, and the rest of the System Development Lifecycle gamut. I enjoy solving problems using a combination of process, procedure, and technology. I have a Bachelor’s Degree in CIS and I have been employed in the programming field for the last 20 years.
My current project is a Bioinformatics Portal, which is a NetBeans Platform application, that is used to bring together in-house and 3rd party data storage and analysis technologies.
The above is from a poster that we recently presented at the April 2010 Bio-IT World conference:
Here is the poster (PDF): BioIT_Poster_April2010.pdf
The purpose of the application is to allow users to curate, exchange, and analyze data using various technologies from a central platform in a seamless fashion.
One of the design goals of the application is to maintain a completely decoupled approach in the architecture and compartmentalize knowledge and information within modules specific to a given technology. With regards to data exchange, this poses a problem in that each of the technologies serves and stores data in different ways. Creating the architecture to allow data exchange between the modules in a generic and common way has been a challenge.
The NetBeans Platform provides a good framework for decoupling. We are able to create modules that have no knowledge of each other and yet enable them to communicate indirectly using service provider interface layers. While this could be accomplished without the NetBeans Platform, the design and architecture of the NetBeans Platform allowed us to focus on this task without having to worry about the entire background infrastructure to make it possible (e.g., module format, user interface, update center, etc).
Due to the dynamic nature of the project, one of the main architecture goals was to create a truly modular and decoupled platform. In so doing, new technologies and enhancements could be added to the application in a fraction of the time normally required in tightly-coupled applications. The architecture of the NetBeans Platform lends itself very nicely to this goal. Using the NetBeans Platform enabled the team to concentrate on creating the modules and business logic that directly related to the project, as opposed to spending countless hours designing, coding, incorporating, and testing the application architecture (e.g., docking framework, update center, etc).
In my opinion, there are very few types of desktop applications not suitable for being based on the NetBeans Platform (e.g., simple utilities). I believe that most graphical applications would be suitable to be based on the NetBeans Platform, if for no other reason than the fact that the NetBeans Platform provides a solid User Interface Framework with as many or as little bells and whistles as one may need. Granted, if all your application requires is a JFrame with a few widgets, then basing it on the NetBeans Platform could be considered overkill.