osgi user forum dc metro v1

31
OSGi Users’ Forum DC Metro Inaugural Meeting 27 th October 2011

Upload: pjhinovex

Post on 10-May-2015

1.172 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: OSGi user forum dc metro v1

OSGi Users’ Forum DC Metro Inaugural Meeting

27th October 2011

Page 2: OSGi user forum dc metro v1

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

Page 3: OSGi user forum dc metro v1

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

Page 4: OSGi user forum dc metro v1

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

Page 5: OSGi user forum dc metro v1

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

Page 6: OSGi user forum dc metro v1

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

Page 7: OSGi user forum dc metro v1

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

Page 8: OSGi user forum dc metro v1

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

Page 9: OSGi user forum dc metro v1

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

Page 10: OSGi user forum dc metro v1

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?

Page 11: OSGi user forum dc metro v1

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

Page 12: OSGi user forum dc metro v1

OSGi DevCon

• For more information : http://www.osgi.org/DevCon2012/HomePage

Page 13: OSGi user forum dc metro v1

Introduction to OSGi

Page 14: OSGi user forum dc metro v1

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

Page 15: OSGi user forum dc metro v1

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

Page 16: OSGi user forum dc metro v1

OSGi Environment

Hardware

Bundle

Bundle

Bundle

Operating System

OSGi

Java VM

Bundle (Application/Service)

Driver Driver Driver

= service interface

exported and imported

by bundles

•Open standard and based on Java •Sits on top of the operating system (thus is OS independent)

•Not device or CPU specific. •Client-server software architecture

Page 17: OSGi user forum dc metro v1

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

Page 18: OSGi user forum dc metro v1

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

Page 19: OSGi user forum dc metro v1

MANIFEST.MF File

Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Popup Plug-in Bundle-SymbolicName: de.vogella.rcp.intro.commands.popup; singleton:=true Bundle-Version: 1.0.0 Bundle-Activator: de.vogella.rcp.intro.commands.popup.Activator Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6

Page 20: OSGi user forum dc metro v1

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

Page 21: OSGi user forum dc metro v1

Service Specifics

• A service is an object registered with the Framework by a bundle to be used by other bundles

• The semantics and syntax of a service are specified in a Java interface

service

Page 22: OSGi user forum dc metro v1

Services & Java Interfaces

Log Bundle

IBM Log

Motorola Log

implements

Gets from Framework (with query) interface

public interface Log {

public void log(String s);

}

Simple Log

public class SimpleLog implements Log {

public void log(String s) {

System.out.println( s );

}

}

Page 23: OSGi user forum dc metro v1

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

Page 24: OSGi user forum dc metro v1

Dependencies Framework

Bundle C { }

Bundle A { }

Bundle B { }

Install A

start

events: install

= service, java interface

Page 25: OSGi user forum dc metro v1

Dependencies

Framework

Bundle C { }

Bundle B { }

Uninstall stop

events: uninstall

events: unregister

Bundle A { }

= service, java interface

Page 26: OSGi user forum dc metro v1

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

Page 27: OSGi user forum dc metro v1

Key OSGi Features

• Modularization

• Dynamic Runtime

• Service Orientation

Page 28: OSGi user forum dc metro v1

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.

Page 29: OSGi user forum dc metro v1

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!

Page 30: OSGi user forum dc metro v1

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…

Page 31: OSGi user forum dc metro v1

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)