Java Reference
In-Depth Information
The paint program isn't intended to be independently useful; rather, it's used to dem-
onstrate common issues and best practices.
From a functionality perspective, the paint program only allows the user to paint
various shapes, such as circles, squares, and triangles. The shapes are painted in pre-
defined colors. Available shapes are displayed as buttons in the main window's toolbar.
To d r a w a s h a p e , t h e u s e r s e l e c t s i t i n t h e t o o l b a r a n d t h e n c l i c k s a n y w h e r e i n t h e c a n -
vas to draw it. The same shape can be drawn repeatedly by clicking in the canvas
numerous times. The user can drag drawn shapes to reposition them. This sounds
simple enough. The real value of using a visual program for demonstrating these con-
cepts will become evident when we start introducing execution-time dynamism.
We've finished our overview of the
OSG
i framework and are ready to delve into the
details; but before we do, we'll put
OSG
i in context by discussing similar or related tech-
nologies. Although no Java technology fills the exact same niche as
OSG
i, several tread
similar ground, and it's worth understanding their relevance before moving forward.
1.4
Putting OSGi in context
OSG
i is often mentioned in the same breath with many other technologies, but it's in a
fairly unique position in the Java world. Over the years, no single technology has
addressed
OSG
i's exact problem space, but there have been overlaps, complements,
and offshoots. Although it isn't possible to cover how
OSG
i relates to every conceivable
technology, we'll address some of the most relevant in roughly chronological order.
After reading this section, you should have a good idea whether
OSG
i replaces your
familiar technologies or is complementary to them.
1.4.1
Java Enterprise Edition
Java Enterprise Edition (Java
EE
, formerly
J2EE
) has roots dating back to 1997. Java
EE
and
OSG
i began targeting opposite ends of the computing spectrum (the enterprise
vs. embedded markets, respectively). Only within the last couple of years has
OSG
i
technology begun to take root in the enterprise space.
In total, the Java
EE
API
stack isn't related to
OSG
i. The Enterprise JavaBeans (
EJB
)
specification is probably the closest comparable technology from the Java
EE
space,
because it defines a component model and packaging format. But its component
model focuses on providing a standard way to implement enterprise applications that
must regularly handle issues of persistence, transactions, and security. The
EJB
deploy-
ment descriptors and packaging formats are relatively simplistic and don't address the
full component lifecycle, nor do they support clean modularity concepts.
OSG
i is also used in the Java
EE
domain to provide a more sophisticated module
layer beneath these existing technologies. Because the two ignored each other for so
long, there are some challenges in moving existing Java
EE
concepts to
OSG
i, largely
due to different assumptions about how class loading is performed. Still, progress is
being made, and today
OSG
i plays a role in all major application servers, such as
IBM
's WebSphere, Red Hat's
JB
oss, Oracle's GlassFish, ObjectWeb's
JO
n
AS
, and
Apache's Geronimo.