aqute about the osgi alliance peter kriens osgi fellow
TRANSCRIPT
aQuteAbout the OSGi Alliance
Peter KriensOSGi Fellow
©1999-2004 aQute, All Rights Reserved slide #2
Contents
• OSGi Alliance
• Consumer View
• History
• Service Platform
• Evolution
• Technical View
• Remote Management
• The Process
©1999-2004 aQute, All Rights Reserved slide #3
What will you learn
• What the OSGi tried to achieve
• How the organization evolved a vertical standard to a horizontal standard
• What the core concepts of the service platform are
• How the process works
©1999-2004 aQute, All Rights Reserved slide #4
OSGi Alliance
• Founded in 1998 by IBM, Ericsson, Nortel, Sybase, Sun, Motorola, Oracle, Nokia, and many others
• Was first called Connected Alliance
• Goal was to develop a standard for home automation– Based on Java Embedded
Server
©1999-2004 aQute, All Rights Reserved slide #5
Interactive TV
Kitchen Pad
• Ease of Use
• Internet
• Mobility
Screen Phone
PDA
E-Toys
PC
Cordless & MobilePhone
Consumer View
©1999-2004 aQute, All Rights Reserved slide #6
OSGi Alliance
• The economy caught up with the Alliance in 2000 and much of the momentum was lost, except technically– SP R1 release was May 2000– SP R2 release was November 2001– SP R3 release was March 2003
• The Expert Groups continued working on the specifications
• The result was a specification that was technically advanced and applicable in many other areas– In 2001, the automotive industry joined OSGi– In 2003, the mobile phone industry became interested
©1999-2004 aQute, All Rights Reserved slide #7
Who is the OSGi Alliance?
4DHomeNet, Inc., Alpine Electronics Europe GmbhAMI-C, Atinav Inc., Belgacom, BMW, Cablevision Systems, Deutsche Telekom, Echelon Corp., Electricite de France (EDF), Espial Group, Inc.,ETRI, France Telecom, Fraunhofer Gesellschaft,Gatespace Telematics AB, IBM Corporation, Insignia Solutions, Institute for Infocomm Research, KDDI R&D Laboratories Inc., Mitsubishi Electric Corporation, Motorola, Inc.,Nokia, NTT, Object XP AG, Oracle Corporation,Panasonic Technologies, Inc., Philips, ProSyst Software AG, Robert Bosch Gmbh, Samsung Electronics Co., Sharp Corporation, Shell, Siemens, Sun Microsystems, Telcordia Technologies, Telefonica I+D, TeliaSonera, Texas Instruments, Inc., Toshiba Corporation
OSGi AllianceMembers by Region
41% 32%
27%
Asia/Pacific
EMEA
North/South America
Global Cross Industry Consortium
©1999-2004 aQute, All Rights Reserved slide #8
OSGi Deployment Facts
• 26 OSGi member company deployments (non-confidential)– Smart Home/Health Care (14)– Automotive/Infotainment (8)– Service Provisioning (4)
• Plus 10 EU-projects (using OSGi-certified platforms)
• More information:
Deployment Fact Sheet on www.osgi.org
…AND MORE TO COME…
©1999-2004 aQute, All Rights Reserved slide #9
Internet AnyBroadbandModem
MS1000
Home Monitoring & Control
Audio entertainment
Photo storage & sharing with friends and family
Shared internet access with content filter
USB
802.11 & Ethernet
Sensor network
User Access
Instant messaging
Vision - MS1000 Powers The Connected Home
©1999-2004 aQute, All Rights Reserved slide #10
Shell Home Genie
• OSGi based-Motorola Gateway and Motorola Gateway Management System (MGMS) selected as the heart of Shell Home Genie
• Shell Home Genie is initially focused on home comfort and management
– Manage climate, lighting, and small appliances from home or away 24/7
• Over time, new services can be added to the HomegenieTM offering, thereby offering a more connected valuable user experience
• A service that makes broadband more universally appealing
©1999-2004 aQute, All Rights Reserved slide #11
iPronto: Dashboard for a Connected Home
©1999-2004 aQute, All Rights Reserved slide #12
Why OSGi?serve@Home 1.0 Introduction package
B/S/H/Residential Gateway
BSH-Gateway and Plint (Powerline Interface)
Tablet PC
WLA
NGSM
Powerline
System Interface
Indoor Communication
Outdoor Communication
©1999-2004 aQute, All Rights Reserved slide #13
About the specifications
• The spec was submitted as JSR 8!
• JCP rules were not compatible with the consortium’s rules and it was decided to leave the JCP
• This has created a gap between JSRs and the OSGi specifications
• JSR 232 hopefully will close this gap
©1999-2004 aQute, All Rights Reserved slide #14
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 3.0 publicly available at www.osgi.org
©1999-2004 aQute, All Rights Reserved slide #15
UPnPInitial ProvisioningName SpaceJiniStart LevelIO ConnectorWire AdminXML ParserMeasurement & StatePositionExecution Env.
Application ManagerMIDP ContainerSigned BundlesDeclarative ServicesPower ManagementDevice ManagementSecurity PoliciesUPnP ExporterDiagnostics/MonitoringFramework LayeringInitial ProvisioningUPnP…
2000 2001 2003 2005
R1
R2
R3
Planned R4H
ome
Aut
omat
ion
Veh
icle
Mob
ile
FrameworkHttpLogDevice Access
Package AdminConfiguration AdminPermission AdminUser AdminPreferencesMetaTypeService Tracker
©1999-2004 aQute, All Rights Reserved slide #16
Release 3 Services
Framework
OSGi Specifications Content
Execution Environment
Devic
e M
anag
er
Log
Serv
ice
Http
Ser
vice
R1
User
Adm
in
Serv
ice T
rack
er
Conf
igur
atio
n Ad
min
Pref
eren
ces
Serv
ice
Pack
age
Adm
in
Perm
issio
n Ad
min
R2
Conn
ecto
r Ser
vice
Posit
ion
XML
Pars
er S
ervic
e
UPnP
Ser
vice
Jini S
ervic
e
Wire
Adm
in
Mea
sure
men
t
Star
t Lev
el
URL
Hand
ler
R3
©1999-2004 aQute, All Rights Reserved slide #17
Essentials
• Reliable– Large-scale deployments fail without extremely high reliability
• Portable– Attract third-party developers to create essential innovative services
• Dynamic– Allow configuration to adapt to user & operator needs over time
• Secure– Protect service providers from each other– Guarantee a prescribed quality of service
• Scalable– Members have very different configurations for their deployment of
OSGi frameworks
©1999-2004 aQute, All Rights Reserved slide #18
Core Functions
• Life Cycle Management– Install, Start, Stop, Update, Uninstall
• Dynamic Service Registry
• Version management
• Open remote management architecture
• Strict separation of specifications and implementations – multiple implementations
©1999-2004 aQute, All Rights Reserved slide #19
OSGi Environment
Hardware
BundleBundle
Bundle
Operating System
OSGi
Java VM
Bundle (Application)
Driver Driver Driver
= service interfaceexported and importedby bundles
©1999-2004 aQute, All Rights Reserved slide #20
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
• Policy free
©1999-2004 aQute, All Rights Reserved slide #21
Framework Entities
OSGi Framework
Bundle A{}
= service, java interface
Bundle B{}
Bundle C{}
©1999-2004 aQute, All Rights Reserved slide #22
Bundles
• A bundle is the deliverable application– Like a Windows EXE file
• Contains programs + resources
• A bundle registers zero or more services– A service is specified in a Java interface and may be implemented
by multiple bundles
• Searches can be used to find services registered by other bundles– Query language (filters)
• The Framework itself is represented as the system bundle
©1999-2004 aQute, All Rights Reserved slide #23
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
• More than an Applet, MIDlet, Xlet runner
©1999-2004 aQute, All Rights Reserved slide #24
Cooperative Model
JAVA
Operating System
Hardware
Java Application Manager
Serviceregistry
packagespackages
Midlet,Xlet,
orApplet
Midlet,Xlet,
orApplet
No native code
No management bundlesServiceregistry
packagespackages No package management
(versions!)
No cooperation
©1999-2004 aQute, All Rights Reserved slide #25
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
©1999-2004 aQute, All Rights Reserved slide #26
Services & Java Interfaces
LogBundle
IBMLog
MotorolaLog
implements
Gets from Framework (with query)
interface
public interface Log { public void log(String s);}
SimpleLog
public class SimpleLog implements Log { public void log(String s) { System.out.println( s ); }}
©1999-2004 aQute, All Rights Reserved slide #27
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
©1999-2004 aQute, All Rights Reserved slide #28
Dependencies
Framework
Bundle C{ }
Bundle A{ }
Bundle B{ }
Install A
start
events: install
events: register
©1999-2004 aQute, All Rights Reserved slide #29
Framework
Dependencies
Bundle C{ }
Bundle B{ }
Uninstall
stop
events: uninstall
events: unregister
Bundle A{ }
©1999-2004 aQute, All Rights Reserved slide #30
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 between bundles
©1999-2004 aQute, All Rights Reserved slide #31
Native code
• JAR file contains both Java classes + native code
• Matching of correct operating system, processor and language
• Life cycle bound to bundles life cycle
• Requires Java 1.2 support
• Notice that JAR format is only delivery format
©1999-2004 aQute, All Rights Reserved slide #32
OSGi Security
• Separates bundles from each other, in all aspects
• Optional– Base Framework API not linked to java.security
• OSGi uses a single (1) protection domain per bundle
• Framework is policy free
• Administration is done via the Permission Admin service
©1999-2004 aQute, All Rights Reserved slide #33
Remote Management
• Framework provides mechanisms, but is policy free
• Management policy provided by a bundle specific to the operator: – Called a Management Bundle
• Management policies made/selected by the operator
• Enables standardized OSGi management bundles from network management vendors
©1999-2004 aQute, All Rights Reserved slide #34
LocalEthernet
LocalPowernet
Management, protocols or API?
AccessNet
OSGiEnvironment
ManagementSystem
= Bundle
Private protocolfor example:SNMP,CIM, SyncML, etc.
©1999-2004 aQute, All Rights Reserved slide #35
OSGi Development Process
• Specifications are developed in the Expert Groups– CPEG – Core group– VEG – Vehicle Group– MEG – Mobile Group– Requirements Group
• Groups meet every 6-12 weeks somewhere in the world• New work is started with an RFP• An RFC tracks the progress of technical work• The RFC is voted upon by the EG• CPEG will validate the design• The editor will then write the specification• The EGs will vote the specification• The specification is submitted to the board• The board asks the members to look for IP• The board approves the specfiication
©1999-2004 aQute, All Rights Reserved slide #36
For Members
• All information is stored on– membercvs.osgi.org
• Information is available through web as well as CVS for convenient access– News– Request for Proposals (RFPs)– Request for Comments (RFCs)– Source tree for Reference Implementations as well as Tests– Tiny Tutorial– Marketing information– Expert Group minutes and info
• Request a login account at www.osgi.org
©1999-2004 aQute, All Rights Reserved slide #37
Conclusion
• Open specification process, not a patented API
• Java Based
• Cooperative
• (Remote) Managed
• Secure
• Component Market
• Contact www.aQute.biz for further information
©1999-2004 aQute, All Rights Reserved slide #38
aQute
www.aQute.biz
+15126929173, [email protected]
z
©1999-2004 aQute, All Rights Reserved slide #39
OSGi System Architecture
ServicePlatformServer
ServicePlatform
Operator
invoiced by
ServiceApplication
ServiceUser
ServiceProvider
ServiceAggregator
ServiceBundle
ServiceDeploymentManager
ServiceOperationsSupport
executes
ServiceCustomer
provides
delegates to
deploys for
deploys on
supports
executes
consists of
responsible for
subscribes to services of
aggergates for
1
0..* 0..*
1
1..*
1
0..*
0,1
1..*
0,1 0..*0..* 0..*
1
1..*
0,1
0..*
0,1 0..*
0,1 0..*
0..*
receives services
ServiceDeveloperprocures from develops
0..*
0..*
0..*
1..*
permits
1
0..*has member
charges1on behalf of
controls
1
NetworkProvider
connects
Manufacturer
builds
1
1..*Owner
owns1 0..*
ChargingProvider
receives payment
services for
0..*
0..*
uses infrastructure of