Java Reference
In-Depth Information
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.
1.3
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.
1.3.1
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