Java Reference
In-Depth Information
In 2006, many
OSG
i supporters pushed for the introduction of
JSR
291 (titled
“Dynamic Component Support for Java”), which was an effort to bring
OSG
i technol-
ogy properly into
JCP
standardization. The goal was twofold: to create a bridge
between the two communities and to ensure
OSG
i technology integration was consid-
ered by
JSR
277. The completion of
JSR
291 was fairly quick because it started from the
OSG
i R4 specification and resulted in the R4.1 specification release. During this
period,
OSG
i technology continued to gain momentum.
JSR
277 continued to make
slow progress through 2008 until it was put on hold indefinitely.
1.4.8
JSR 294
During this time in 2006,
JSR
294 (titled “Improved Modularity Support in the Java
Programming Language”) was introduced as an offshoot of
JSR
277. Its goal was to
focus on necessary language changes for modularity. The original idea was to intro-
duce the notion of a
superpackage
into the Java language—a package of packages.
The specification of superpackages got bogged down in details until it was scrapped
in favor of adding a module-access modifier keyword to the language. This simplifica-
tion ultimately led to
JSR
294 being dropped and merged back into
JSR
277 in 2007. But
when it became apparent in 2008 that
JSR
277 would be put on hold,
JSR
294 was pulled
back out to address a module-level access modifier.
With
JSR
277 on hold, Sun introduced an internal project, called
Project Jigsaw
, to
modularize the
JDK
. The details of Jigsaw are still evolving after the acquisition of Sun
by Oracle.
1.4.9
Service Component Architecture
Service Component Architecture (
SCA
) began as an industry collaboration in 2004
and ultimately resulted in final specifications in 2007.
SCA
defines a service-oriented
component model similar to
OSG
i's, where components provide and require services.
Its component model is more advanced because it defines
composite components
(com-
ponents made of other components) for a fully recursive component model.
SCA
is intended to be a component model for declaratively composing compo-
nents implemented using various technologies (such as Java, Business Process Execu-
tion Language [
BPEL
],
EJB
, and C++) and integrated using various bindings (such as
SOAP
/
HTTP
, Java Message Service [
JMS
], Java
EE
Connector Architecture [
JCA
], and
Internet Inter-Orb Protocol [
IIOP
]).
SCA
does define a standard packaging format,
but it doesn't define a sophisticated module layer like
OSG
i provides. The
SCA
specifi-
cation leaves open the possibility of other packaging formats, which makes it possible
to use
OSG
i as a packaging and module layer for Java-based
SCA
implementations;
Apache Tuscany and Newton are examples of an
SCA
implementation that use
OSG
i.
In addition, bundles could be used to implement
SCA
component types, and
SCA
could be used as a mechanism to provide remote access to
OSG
i services.
1.4.10
.NET
Although Microsoft's .
NET
(released in 2002) isn't a Java technology, it deserves men-
tion because it was largely inspired by Java and did improve on it in ways that are similar