OSGi(1) and the JSR 291(2) represent an emerging technology, which is widely adopted in various industries. Although, this new environment is more restrictive than plain Java, it is extremely rewarding in terms of lifecycle management, software reuse, modularization and dynamism. Out of the box UIMA is not capable of running in pure OSGi environment and benefit from its features. To leverage the usage of UIMA even in such an environment, IBM has published an adaptor project on AlphaWorks(3), which enables the use of UIMA in any OSGi environment (like Apache Felix, Knopflerfish or Eclipse Equinox) or OSGi based products.
The introduced approach maintains the current UIMA programming model, so that the learning effort is considerably low. Even the migration of existing analytics towards OSGi-Bundles is (for well written code) fairly easy. However, to speed up the process of getting started, additional videos are provided (under Demo) to explain each step in detail. Questions concerning the usage or concrete implementation should be addressed in the designated forum(4) on AlphaWorks. General architectural discussions are more than welcome on the uima mailing list.
(1) Open Service Gateway initiative: http://www.osgi.org
(2) JSR 291 - Dynamic Component Support for JavaTM SE: http://jcp.org/en/jsr/detail?id=291
(3) Dynamic Module Enabler for Unstructured Information Management Architecture Component Analytics: http://www.alphaworks.ibm.com/tech/dmeuima/
(4) DME-UIMA Forum: http://www.alphaworks.ibm.com/tech/dmeuima/forum