![Page 1: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/1.jpg)
An Introduction to OSGi
Alexandre Alves
June 24, 2008
![Page 2: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/2.jpg)
Short Bio
Employed by Oracle Corp. Previously at BEA Systems
Architect for WebLogic Event Server (rebranded into Oracle CEP) Light-weight application server just for event processing Completely built on top of Equinox/OSGi and completely
modular
OASIS BPEL 2.0 spec committee
![Page 3: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/3.jpg)
Agenda
HistoryBenefits
Architecture
Bundles
Services
Conclusion
![Page 4: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/4.jpg)
History
The OSGi Alliance is an independent non-profit corporation Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc
OSGi technology is the dynamic module system for Java First release in May 2000 Latest version 4.1 was released in May 2007
OSGi technology provides a service-oriented, component-based environment for developers and offers standardized ways to manage the software
lifecycle.
![Page 5: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/5.jpg)
Agenda
History
BenefitsArchitecture
Services
Summary
![Page 6: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/6.jpg)
Benefits
Problem Domain In large and complex systems, different components need to evolve
separatelyDeveloped by different teamsRe-used from other productsSome components need more patches than others
Solution Domain Organize components as independent versioned modules
Modules define public interface and dependenciesDesign and implement for re-use!
Bind modules dynamically and verify constraints
![Page 7: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/7.jpg)
Benefits
Dynamic module system for Java Java does not define the concept of a module Closest to it would be a JAR
Has no clear definition of its interfaces, dependencies, or version
Dynamic module system for Java One can load new classes into a Class-Loader, but cannot
un-load No standard way of loading new features into a running
platformDifferent technology/vendors have different approaches (e.g. JBI, J2EE)
![Page 8: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/8.jpg)
Agenda
History
Benefits
ArchitectureBundles
Services
Conclusion
![Page 9: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/9.jpg)
OSGi Framework Layered Architecture
The Framework is split up into different layers Execution Environment – the VM Module Layer – Module system
for the Java Platform Lifecycle Layer – Dynamic
support Service Layer – Module
collaborationOS + Hardware
Execution Environment
Secu
rity
Module
Lifecycle
ServicesBundles
© 2008 by IBM Corp and Code 9; made available under the EPL v1.0 | March 2008
![Page 10: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/10.jpg)
Execution Environment
Execution Environment The VM used to launch the
Framework The OSGi specification originated
on the J2ME platform Framework implementations can
scale down to small devices and scale up to large server environments
OS + Hardware
Execution Environment
Secu
rity
Module
Lifecycle
ServicesBundles
© 2008 by IBM Corp and Code 9; made available under the EPL v1.0 | March 2008
![Page 11: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/11.jpg)
Module Layer
Module system for the Java Platform Enforces visibility rules Dependency management Supports versioning of bundles,
the OSGi modules
Sophisticated modularity framework provides for class space
consistency for bundles supports multiple versions of
packages and bundles
OS + Hardware
Execution Environment
Secu
rity
Module
Lifecycle
ServicesBundles
© 2008 by IBM Corp and Code 9; made available under the EPL v1.0 | March 2008
![Page 12: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/12.jpg)
Lifecycle Layer
Lifecycle Layer provides API to manage bundles Installing Starting Stopping Updating Uninstalling All dynamically supported at runtime
OS + Hardware
Execution Environment
Secu
rity
Module
Lifecycle
ServicesBundles
© 2008 by IBM Corp and Code 9; made available under the EPL v1.0 | March 2008
![Page 13: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/13.jpg)
Service Layer
Provides an in-VM service model Services can be registered and
consumed inside a VM Again all operations are dynamic Extensive support for notification of
the service lifecycle
OS + Hardware
Execution Environment
Secu
rity
Module
Lifecycle
ServicesBundles
© 2008 by IBM Corp and Code 9; made available under the EPL v1.0 | March 2008
![Page 14: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/14.jpg)
Key Concepts
For most users, there are really just two main concepts to learn Bundles
Supported by Execution Environment, Module, and Lifecycle layers
Services
Supported by the Lifecycle and Service layers
![Page 15: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/15.jpg)
Agenda
History
Benefits
Architecture
BundlesServices
Conclusion
![Page 16: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/16.jpg)
Bundle as Module
OSGi technology’s modularity unit Or, in enterprise terms, OSGi technology’s deployment unit Again, main advantage of bundles is to achieve better re-use
Regular JAR file Java code Resources OSGi specific entries in MANIFEST.MF
![Page 17: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/17.jpg)
Bundle Definition
MANIFEST.MF
Bundle-SymbolicName: Bundle-Version:
Import-Package: Export-Package:
Bundle-Classpath: Bundle-Activator:
bundleexport-package import-package
![Page 18: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/18.jpg)
Importing and Exporting Packages
Import-Package/Export-Package Explicit dependency model
Rigid documentation of public interface of module, which can be shared amongst development teams
Helps with build automation (don’t under-estimate the effort of building large systems)
Allows dynamic selection (i.e. resolve) of dependencies
Allows framework to find best suitable provider of a feature
Allows framework to dynamically change provider, useful for patching system
![Page 19: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/19.jpg)
Bundle Versioning
Versioning Import-Package: com.acme.foo;version="[1.0.0.1, 2.1)“
==> 1.0.0.1 <= version < 2.1
Import-Package: com.acme.foo;version="1.0.0.1“==> 1.0.0.1 <= version < ∞
Import-Package: com.acme.foo;version="1.0“==> 1.0.0.0 <= version < ∞
![Page 20: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/20.jpg)
Importing and Exporting Packages
Attribute matching Declarative way of influencing resolving
Example:
Bundle A: Import-Package: com.acme.foo;company=ACME
Bundle B: Export-Package: com.acme.foo
Bundle C: Export-Package: com.acme.foo; company="ACME";
![Page 21: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/21.jpg)
Bundle Life-cycle
INSTALLED: Framework has bits installed
RESOLVED: Framework has resolved all dependencies successfully
STARTING: Framework is starting bundle, and invokes registered
activators in the process
ACTIVE: Bundle is running
STOPPING: Framework is shutting down bundle, and invokes registered
activators in the process
![Page 22: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/22.jpg)
Bundle Activation
Use Bundle Activator to: Contribute to start and stop of bundle Allows bundle to manage resources (e.g. start thread, read
file) Specify Bundle-Activator and import org.osgi.framework Should perform work async, or return quickly Provides bundle implementer access to BundleContext object
Note-worthy: there is no standard way of installing/un-installing bundle from remote agent
![Page 23: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/23.jpg)
Bundle Activation
Bundle-SymbolicName: example.mybundleBundle-Version: 1.0.0Bundle-Activator: example.MyBundleActivatorImport-Package: org.osgi.framework
public class MyBundleActivator implements BundleActivator {public void start(BundleContext c) {
// Initialize}public void stop(BundleContext c) {
// Shutdown}
}
![Page 24: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/24.jpg)
Bundle Activation
Another approach is to use Spring-DM Specify bundle as a Spring-DM application context
Spring-Context: META-INF/spring-context.xml
Use standard Spring-bean life-cycle interfacesInitializingBeanDisposableBean
By default, context is created asynchronously
IMO, cleaner and simpler
![Page 25: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/25.jpg)
Bundle Activation
Bundle-SymbolicName: example.mybundle
Bundle-Version: 1.0.0
Spring-Context: META-INF/spring-context.xml
Import-Package:
<bean id=“bundleBean” class=“example.myBundleBean”
init-method=“init” destroy-method=“destroy” />
![Page 26: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/26.jpg)
Agenda
History
Benefits
Architecture
Bundles
ServicesConclusion
![Page 27: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/27.jpg)
Services
SOA deals with programming-in-the-large Interaction between system components (e.g. WS-clients and
WS-providers through WSDL)
OSGi Service Layer allows one to bring SOA concepts (e.g. re-use, implementation abstraction) into the system component implementation level (e.g. programming-in-the-small)
Main benefit: de-coupling of interface and implementation allows the selection of different implementation providers Authentication/Authorization providers: LDAP, file-system
![Page 28: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/28.jpg)
Service Definition
Services are regular Java classes No need to implement technology-specific interfaces
A Service is made of three components: Service name(s)
“example.AuthenticationService”
Service implementationexample.LDAPAuthenticationServiceImpl
Service (reference) properties (optional)String property type = (‘file-system” | ‘ldap”)
![Page 29: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/29.jpg)
Service Interaction
Service-provider bundles: Register service name(s), implementation, and properties into
a Service Registry
Service-consumer bundles: Query Service Registry for a particular service name(s)
May do additional filtering by properties Communicates through returned class/interface, does not see
implementation
Service Registry: Similar to a map of services
![Page 30: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/30.jpg)
Service Registration
AuthenticationService serviceImpl = new LDAPAuthenticationServiceImpl();
Dictionary properties = new Dictionary();
properties.put(“type”, “LDAP”);
ServiceRegistration reference =
bundleContext.registerService(
new String [] {AuthenticationService.class.getName()}, serviceImpl,
properties);
![Page 31: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/31.jpg)
Service Registration
Or alternatively using Spring-DM:
<bean name=“ldapService” class=“LDAPAuthenticationServiceImpl” />
<osgi:service ref=“ldapService“ interface="example.AuthenticationService"><osgi:service-properties> <beans:entry key=“type" value=“LDAP"/> </osgi:service-properties>
</osgi:service>
![Page 32: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/32.jpg)
Referencing Services
ServiceReference reference = bundleContext.getServiceReference(
AuthenticationService.class.getName());
AuthenticationService service =
(AuthenticationService)
bundleContext.getService(reference);
![Page 33: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/33.jpg)
Referencing Services
Or
<osgi:reference id=“authenService"
interface="example.AuthenticationService"/>
![Page 34: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/34.jpg)
Services are Dynamic
Services are dynamic, they may come and go Service reference/service may be null/stale Should not cache references
ServiceListener used to keep track ServiceTracker raises the ServiceListener abstraction
Spring-DM proxies services, and will do the right thing
![Page 35: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/35.jpg)
Agenda
History
Benefits
Architecture
Bundles
Services
Conclusion
![Page 36: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/36.jpg)
Challenges
Mind-set: Understand that it is more work to create a modular solution,
but it pays off long-term
Design-time: Very large Import-Packages
Error-prone Non-intuitive Import-Packages
Hard to get correct when reflection is used (e.g. Kodo)
![Page 37: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/37.jpg)
Challenges
Runtime: Hard to debug complex class-path resolving
instanceof just fails sometimes… Service availability race-conditions
Client applications referencing to services that have not been bound it
Particularly a problem during start-up
Certain features are missing or too hard to use: Security, Configuration support, Transaction support
![Page 38: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/38.jpg)
Adoption
Many framework implementations Equinox – Open source Felix – Open source Knopflerfish – Open source Concierge – Open source ProSyst
Spring Dynamic Modules for OSGi
All Eclipse-based systems run on Equinox Runtimes (e.g., RAP, Swordfish, Riena, ECF, EclipseLink) RCP, eRCP Tooling
© 2008 by IBM Corp and Code 9; made available under the EPL v1.0 | March 2008
![Page 39: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/39.jpg)
Adoption
Equinox OSGi as a component runtime
Consistent programming model from embedded to server
Reuse components across the spectrum
Embedded Rich Client Tooling Server
eRCPNokiaSprint
NASAJPMorganLotusJazzSASSwiss RailDaimlerRiena
Rational SuiteBorlandBEAJazz
RAPSwordfishRienaWASBEAJazzSpring
© 2008 by IBM Corp and Code 9; made available under the EPL v1.0 | March 2008
![Page 40: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/40.jpg)
Lessons Learned when using OSGi
There are always opportunities for re-use Re-use within organization Re-use of standard services
HTTP ServiceService TrackerInitial ProvisioningDeclarative Services using Spring-DMStart Level Service
Modularize at all levels WL-EvS programming model itself is a separate bundle, de-coupled
from other services, which means WL-EvS could in theory support other programming models, such as SCA, etc.
![Page 41: An Introduction to OSGi - Eclipse · 2008. 7. 3. · Deutsche Telekom, Nokia, Samsung, etc IBM, Oracle, IONA, etc OSGi technology is the dynamic module system for Java First release](https://reader036.vdocument.in/reader036/viewer/2022071507/61279f2a8b86953fce12493c/html5/thumbnails/41.jpg)
Conclusion
Standard Several different implementations are available
Mature Proven technology Over 8 years-old (versus JSR-277/294)
Key-concepts Bundles: re-usability Service: flexibility, extensibility