2. Agenda
• Introduction to the OSGi User’s User Form
– What is the forum all about?
– What is the OSGi Alliance?
– OSGi Alliance
– Alliance and Forum Relationship
– OSGi Users’ Forum US DC Metro Charter
– Who we are
– What we offer
– Getting Involved
• News and Announcements
• Introduction to OSGi
3. What is the forum all about?
• Members only community
– Not OSGi Alliance Membership
• Membership is free
• Open to end user organizations, individuals,
academic institutions and vendors based in
the US
• Exchange information, knowledge and ideas
around OSGi technology in the US
• Approved by the OSGi Alliance
4. What is the OSGi Alliance?
• OSGi™ - The Dynamic Module System for Java™
• Independent non-profit corporation comprised of
worldwide consortium of technology innovators &
developers
• Focused on interoperability of applications & services
based on its Module System
• Founded in 1998 by IBM, Ericsson, Nortel, Sybase, Sun,
Motorola, Oracle, Nokia, and many others
• Originally was JSR8
• Goal was to develop a standard for home automation
• The Alliance provides specifications, reference
implementations, test suites and certification
5. OSGI Alliance
• Alliance members represent diverse markets
including SmartHome, automotive electronics,
mobile and enterprise
• 3 levels of membership
– Full,
– Adopter Associate,
– Supporter (Free!)
• Further details on OSGi Alliance Membership
at http://www.osgi.org/About/Join
6. Alliance & Forum Relationship
• You don’t have to be an OSGi Alliance Member to
become a member of the OSGi Users’ DC Metro Forum
• Can join either or both
• OSGi Users’ DC Metro Forum does not represent the
OSGi Alliance
• OSGi Users’ DC Metro Forum is not a legal entity
• OSGi Users’ Forum is governed by OSGi Alliance
Trademark Agreement
• OSGi Alliance sets Charter for Worldwide Users’
Forums
7. OSGi Users’ DC Metro Forum Charter
• Set by the OSGi Alliance
1. Promote the OSGi service platform
2. Share experiences of OSGi deployments
3. Encourage business collaboration
8. Who We Are
• Chairman – Paul Hadrosek (iNovex)
• Secretary – Jack Rodriguez (APT)
• Founding Members
– Sam Chance (iNovex)
– Stan Moyer (Telcordia Technologies)
– Eddie Lee (PTFS)
• It’s all of US! It’s up to everyone to participate
9. What we offer
• Forum for interaction between peers interested
in OSGi
• Mail list
• Face to Face meetings – every 3 to 4
months/location
• Announcing interesting OSGi activities
– Conferences
– Meetings
– Training
– Relevant News
10. Thanks for getting involved
• Open Floor later
• We want your input:
– What do you want from the Forum?
– What meeting topics would you like covered?
– Any suggestions?
11. News & Announcements
• OSGi DevCon 2012
– March 26-29, 2012
– Reston, VA
• Users’ Forum DC Metro Meeting at OSGi DevCon
2012
– March 27, 2012
– 7:00
– Reston, VA
– Free to members
• OSGi Training Course - TBA
12. OSGi DevCon
• For more information :
http://www.osgi.org/DevCon2012/HomePage
14. What does OSGi stand for?
• Open Services Gateway initiative
– This abbreviation is no longer used
• “The Dynamic Module System for Java”
– Designed to be light weight and dynamic
– Allows to partition a system into a number of modules
(a.k.a. bundles)
– Strict visibility rules (similar to private and protected)
– Resolution of dependencies and versioning
– Dynamic Modules can be installed, started, stopped,
uninstalled and updated - all at runtime
15. What is the OSGi Service Platform
• A Java framework for developing remotely deployed
service applications, that require:
– Reliability
– Large scale distribution
– Wide range of devices
– Collaborative
• Created through collaboration of industry leaders
• Spec 4.0+ publicly available at www.osgi.org
16. OSGi Environment
Bundle
Bundle
Bundle
= service interface
exported and imported Bundle (Application/Service)
by bundles
OSGi
•Open standard and based on Java
•Sits on top of the operating
system (thus is OS independent) Java VM
•Not device or CPU specific.
•Client-server software Operating System
architecture
Driver Driver Driver
Hardware
17. OSGi Framework
• Allows applications to share a single Java VM
• Manages applications
– Life cycle, Java Packages, Security, Dependencies
between applications
• Service registry for collaboration
• Extensive notification mechanism
18. OSGi Bundles
• OSGi specification defines the OSGi as the unit
of modularization
• A bundle is
– Cohesive
– Self-contained unit
• Defines dependencies to other modules/services
• Explicitly defines its external API (interface)
– A jar file with additional meta information stored
in the MANIFEST.MF file
20. Cooperative Model
• Bundles can cooperate through:
– service objects
– package sharing
• A dynamic registry allows a bundle to find and
track service objects
• Framework fully manages this cooperation
– Dependencies, security
21. Service Specifics
• A service is an object registered with the
Framework by a bundle to be used by other
bundles
service
• The semantics and syntax of a service are
specified in a Java interface
22. Services & Java Interfaces
public interface Log {
public void log(String s);
}
Gets from Framework
interface
(with query)
Bundle Log
public class SimpleLog implements Log {
public void log(String s) {
System.out.println( s ); implements
}
}
Simple IBM Motorola
Log Log Log
23. Dependencies
• The Framework manages the dependencies
between bundles
• Bundles that are installed and started will
register services
• Framework will automatically unregister
services when a bundle stops
• Event notifications for all important events
24. Dependencies
Install A
Framework
start Bundle A
{}
Bundle B
{}
events: install
= service, java interface Bundle C
{}
25. Dependencies
Framework
Uninstall
stop Bundle A
{}
Bundle B events:
{} unregister
events: uninstall
= service, java interface Bundle C
{}
26. The Classpath in OSGi
• Each bundle has its own class loader
• Bundles can only shares packages when:
– Import and export clauses in the manifest match
– Have permission to do so for those packages
• The framework manages the overall CLASSPATH for
bundles
• Assures that all bundles use the same class (of the same
version)
• Tracks shared usage of packages between bundles
28. What problems does OSGi solve?
• Visibility By default, a bundle is a black box.
It's completely protected and you can't see
inside it, not even with reflection or any other
classloading trickery. Only exported packages
are visible outside of the exporting bundle.
This stops unintended coupling between
modules, enables independent development,
faster development cycles and security.
29. What problems does OSGi solve?
• Operational Control
An OSGi container allows you to see all modules
and their status - using the OSGi console or JMX.
You can get information on wiring, install new
bundles, activate bundles (and publish services),
deactivate bundles (and unregister services),
refresh bundles, stop bundles and uninstall
bundles. The beauty? You can do all of this
without stopping or restarting the application!
30. Who doing OSGi containers?
• Open-source implementations: Equinox, Felix
(Apache), Knopflerfish
• Significant Enterprise usage: Eclipse,
Netbeans, IBM (WebSphere), Red (Jboss),
Oracle (Glassfish, WebLogic), TIBCO ESB,
WSO2 Carbon, Fuse ESB…
31. Who’s doing frameworks?
• Hitachi provides a complete OSGi solution yet with standards
compliant and potentially independent elements (only vendor
with all 4 elements):
1. JVM Options (to insure broadest availability of ported JVMs and
optimized JVMs):
• SuperJEngine (optimized CVM) (better performance, less memory, non-
open source)
• or Oracle Binary solutions: CDC JVM or JavaSE Embedded (reduce risk; add
value)
2. SuperJFramework (client software) (performance, less memory,
not open source)
• SuperJManagement Agent (links to SJDMS) (meets SPs authentication &
security)
3. SuperJDMS (Management Server) (manage clients/bundles/apps
in device; large scale)
4. SuperJTools (SDK development tools for 3rd party apps) (Eclipse
based)