Although developers know that abstraction and code reuse are the best way to develop faster, projects so often start with a complete green-field and end up re-implementing standard business functionality. Service Oriented Architecture was one attempt to solve this, but the overhead in managing and communicating with remote services is often too much for a project to bear. OSGi, a technology for modularizing Java software, moves that service style of thinking into the application itself.
OSGi is an open standard which is implemented in a variety of containers, which allows you to choose from the bare-bones, embedded-focused 80kb Concierge to the full featured Equinox. The basic idea is to provide a module system within Java itself, built off of packages but smaller than the size of an application. By working with these modules and services instead of reaching directly into packages, true reusability and clear differentiation of concerns can be accomplished in the normal day-to-day work of building the application.
Robert Fischer is a multi-language open source developer currently specializing in Groovy in Grails. In the past, his specialties have been in Perl, Java, Ruby, and OCaml. In the future, his specialty will probably be F# or (preferably) a functional JVM language like Scala or Clojure.
Robert is the author of Grails Persistence in GORM and GSQL, a regular contributor to GroovyMag and JSMag, the founder of the JConch Java concurrency library, and the author/maintainer of Liquibase-DSL and the Autobase database migration plugin for Grails.More About Robert »