beyond that, and it still relies on one JAR being able to load the internal implementa-
tion class of another. Furthermore, META-INF services can't be registered programmat-
ically, and they certainly can't be unregistered.
Programming with enterprise OSGi
From what you've read so far, it probably sounds like OSG i is a lost cause for enterprise
programming. Sure, it has some cool ideas and lets you do some things that you
couldn't easily do before, but who could give up the smorgasbord of enterprise ser-
vices that don't work in OSG i? Obviously this isn't the case, or this would be a short
topic! Recently the gap between Java EE and OSG i has grown much smaller, with the
introduction of enterprise OSG i .
One of the fascinating things about OSG i's development from a platform for home
gateways, to a platform for trains and cars, to a platform for IDE s and application serv-
ers is that OSG i itself hasn't had to change that much. Even though the domains are
totally different, the capabilities provided by OSG i solved problems in all of them.
Enterprise OSG i is different because basic OSG i by itself isn't enough. To address the
needs of the enterprise, the OSG i Alliance has branched out and produced an Enter-
prise Specification with enterprise-specific extensions to core OSG i.
Enterprise OSGi and OSGi in the enterprise
Like the term enterprise Java , enterprise OSG i can mean different things to different peo-
ple. Some people refer to the use of core OSG i concepts, or an OSG i framework, to
provide business value for one or more applications. This definition is a little looser
than is normally accepted; many people feel that merely using an OSG i framework to
host business applications isn't enough to justify the description “enterprise OSG i.” A
parallel can be drawn to enterprise Java programming, a term which is linked to the
use of the Java Enterprise Edition programming model, and usually an application
server or servlet container. Using a Java Virtual Machine ( JVM ) and the Java Standard
Edition (Java SE ) API s to write a business application would not normally be consid-
ered an “enterprise Java application.” Similarly, when business applications are merely
using an OSG i framework and features from the core OSG i specifications, it's not enter-
prise OSG i, although it might be OSG i in the enterprise.
Enterprise OSG i sometimes refers strictly to the set of specifications defined by the
OSG i Enterprise Expert Group in the OSG i Enterprise Specification 4.2 and 5 releases.
This narrow definition would exclude some open source technologies which aren't in
the enterprise OSG i specification but which clearly have an enterprise OSG i “feel.” Prob-
ably the most common and accurate definition of enterprise OSG i is a blend of what's
in the specification with the more general usage of OSG i in the enterprise we discussed.
What we mean by enterprise OSG i in this topic is an OSG i-based application that makes use
of one or more enterprise services, as described in the OSG i Enterprise Specification,
to provide business value. This links both the use of OSG i concepts and an OSG i frame-
work with the OSG i Enterprise Specification, which defines how enterprise services can