A Media Subscription Service By Peter Kriens CEO aQute OSGi Technology Officer .
Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens
-
Upload
mfrancis -
Category
Technology
-
view
77 -
download
1
Transcript of Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens
![Page 1: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/1.jpg)
©1999-2002 OSGi, All Rights Reserved
Tech Spec Overview: Introduction
Technical Specification Overview
Introduction
![Page 2: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/2.jpg)
©1999-2002 OSGi, All Rights Reserved
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 2.0 publicly available at www.osgi.org
![Page 3: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/3.jpg)
©1999-2002 OSGi, All Rights Reserved
OSGi Service Platform, Release 2 Contents
1. Framework Specification
2. Package Admin Service Specification 3. Permission Admin Service Specification 4. Service Tracker Specification 5. Log Service Specification 6. HTTP Service Specification 7. Device Access Specification 8. Configuration Admin Service Specification 9. Metatype Specification 10. Preferences Service Specification 11. User Admin Service Specification
![Page 4: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/4.jpg)
©1999-2002 OSGi, All Rights Reserved
Release 3 Planned Extensions (Preliminary)
Framework
OSGi Specifications Content
Execution Environment
Devic
e Man
ager
Log S
ervic
e Ht
tp Se
rvice
R1
User
Adm
in Se
rvice
Trac
ker
Confi
gura
tion A
dmin
Prefe
renc
es S
ervic
e
Pack
age A
dmin
Perm
ission
Adm
in
R2
Conn
ector
Ser
vice
Posit
ion
XML P
arse
r Ser
vice
UPnP
Ser
vice
Jini S
ervic
e
Wire
Adm
in
Meas
urem
ent
Star
t Lev
el UR
L Han
dler
R3 Preliminary
![Page 5: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/5.jpg)
©1999-2002 OSGi, All Rights Reserved
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
![Page 6: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/6.jpg)
©1999-2002 OSGi, All Rights Reserved
Core Functions
• Life Cycle Management – Install, Start, Stop, Update, Uninstall
• Registry of services with notifications
• Package and version management
• Open remote management architecture
• Strict separation of specifications and implementations – multiple implementations
![Page 7: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/7.jpg)
©1999-2002 OSGi, All Rights Reserved
Why Java?
• Portable byte code format – Deliverables independent of OS/CPU
• Security is integral to the language • Integrity by not allowing dangerous functions
• Mature platform • Active developer community & broad industry
support – Availability of programmers – Large available code base
![Page 8: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/8.jpg)
©1999-2002 OSGi, All Rights Reserved
Java Issues
• Integrity – Cooperative, not like an OS with guarantees
• Security – Performance intensive
• Performance cost • Size
• Lack of Resource Management
![Page 9: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/9.jpg)
©1999-2002 OSGi, All Rights Reserved
Tech Spec Overview: Framework Spec
Technical Specification Overview
Framework Specification
![Page 10: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/10.jpg)
©1999-2002 OSGi, All Rights Reserved
Framework Entities
• OSGi environment
• Framework
• Bundles
• Services
• Filters
• Events
• Security
![Page 11: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/11.jpg)
©1999-2002 OSGi, All Rights Reserved
OSGi Environment
Hardware
Bundle Bundle
Bundle
Operating System
OSGi
Java VM
Bundle (Application)
Driver Driver Driver
= service interface exported and imported by bundles
![Page 12: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/12.jpg)
©1999-2002 OSGi, All Rights Reserved
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
![Page 13: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/13.jpg)
©1999-2002 OSGi, All Rights Reserved
Framework Entities
OSGi Framework
Bundle A {}
= service, java interface
Bundle B {}
Bundle C {}
![Page 14: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/14.jpg)
©1999-2002 OSGi, All Rights Reserved
Bundles
• A bundle is the deliverable application – Like a Windows EXE file
• 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
• The Framework itself is represented as the system bundle
![Page 15: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/15.jpg)
©1999-2002 OSGi, All Rights Reserved
Bundle Specifics
• A bundle is delivered in a Java ARchive (JAR) file (zip) containing: – Resources to implement zero or more services – Manifest with information about the bundle:
• Dependencies on other resources (Java packages) • Name, description, copyrights, vendor, profile, etc.
– A class that can start/stop the bundle (Bundle Activator)
• Can also act like a library (E.g. DLL file)
• Framework can install/update/uninstall bundles dynamically
Bundle
![Page 16: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/16.jpg)
©1999-2002 OSGi, All Rights Reserved
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
![Page 17: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/17.jpg)
©1999-2002 OSGi, All Rights Reserved
Local Ethernet
Local Powernet
Management, protocols or API?
Access Net
OSGi Environment
Management System
Private protocol for example: SNMP, CIM, SyncML, etc. = Bundle
![Page 18: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/18.jpg)
©1999-2002 OSGi, All Rights Reserved
Collaborative model
• More than an Applet, MIDlet, Xlet runner
• Bundles can collaborate through: – service objects – package sharing
• A dynamic registry allows a bundle to find and track service objects
• Framework fully manages this collaboration – Dependencies, security
![Page 19: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/19.jpg)
©1999-2002 OSGi, All Rights Reserved
Bundle Bundle
Collaborative model
JAVA
Operating System
Hardware
OSGi Framework
Service registry
packages packages
![Page 20: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/20.jpg)
©1999-2002 OSGi, All Rights Reserved
Collaborative model How does OSGi relate to MIDP, Java TV, Browsers
JAVA
Operating System
Hardware
Java Application Manager
Service registry
packages packages
Midlet, Xlet, or
Applet
Midlet, Xlet, or
Applet
No native code
No package management (versions!)
No collaboration
No management bundles
![Page 21: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/21.jpg)
©1999-2002 OSGi, All Rights Reserved
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: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/22.jpg)
©1999-2002 OSGi, All Rights Reserved
Java Interfaces
Log Bundle
IBM Log
Motorola Log
implements
Gets (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: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/23.jpg)
©1999-2002 OSGi, All Rights Reserved
Services continued
• Different bundles (from different vendors) can implement the same interface – Implementation is not visible to users – Allows operator to replace implementations without disrupting
service
• OSGi defines a standard set of services
• Extensive notifications for services life cycles • Services have a unique id
![Page 24: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/24.jpg)
©1999-2002 OSGi, All Rights Reserved
A Service Defined
Object that implements a Java Interface
register
get
get
get
events: REGISTERED, UNREGISTERING, MODIFIED
![Page 25: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/25.jpg)
©1999-2002 OSGi, All Rights Reserved
Service Registry
• The Framework Service Registry is available to all bundles to collaborate with other bundles
• Requires permission – Under operator control
• Services are associated with properties – Query language to find appropriate service
• Bundles can update the properties
![Page 26: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/26.jpg)
©1999-2002 OSGi, All Rights Reserved
Service Factories
• How does a bundle customize a service per bundle?
• The ServiceFactory interface allows a bundle to return a specific customized service object for each bundle
• Framework calls back the factory for service get and unget methods.
![Page 27: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/27.jpg)
©1999-2002 OSGi, All Rights Reserved
Service Factories
Framework Bundle Standard
Bundle Factory
Bundle A { }
Bundle B { }
![Page 28: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/28.jpg)
©1999-2002 OSGi, All Rights Reserved
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 29: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/29.jpg)
©1999-2002 OSGi, All Rights Reserved
Dependencies
Framework
Bundle C { }
Bundle A { }
Bundle B { }
Install A
start
events: install
events: register
![Page 30: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/30.jpg)
©1999-2002 OSGi, All Rights Reserved
Framework
Dependencies
Bundle C { }
Bundle B { }
Uninstall stop
events: uninstall
events: unregister
Bundle A { }
![Page 31: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/31.jpg)
©1999-2002 OSGi, All Rights Reserved
An example with services
Registry Bundle A
{ }
register WAP
bundle
Events: register, unregister
Bundle C { }
Bundle B { }
Publisher get
![Page 32: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/32.jpg)
©1999-2002 OSGi, All Rights Reserved
How to find a service
• Framework supports powerful Filter object
• Syntax based on LDAP string based filters
• Searches properties registered with a service – Common data types, including arrays and vectors
![Page 33: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/33.jpg)
©1999-2002 OSGi, All Rights Reserved
Filter Syntax
• Expressions – And (&(…)(…)(…)) – Or (|(…)(…)(…)) – Not (!(…))
• Comparisons – Less (attr<=9) – Greater (attr>=9) – Approximate (attr~=osgi) – Equals (attr=9) – Substring (attr=OSG*i) – Presence (attr=*)
![Page 34: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/34.jpg)
©1999-2002 OSGi, All Rights Reserved
Filter syntax
• Sub expressions – (&(vendor=ERICSSON)(priority>4)) – (|(vendor~=ERICSSON)(vendor~=Microsoft)) – (&(objectclass=org.osgi.service.log.Log)(vendor~=IBM))
• Filter is useful in many contexts – Reduces query classes like used in Jini
• Can be used for application filtering as well – Applied widely in OSGi services
![Page 35: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/35.jpg)
©1999-2002 OSGi, All Rights Reserved
Service Tracker
• Services register and unregister all the time
• Onus on the programmer to only use services that are registered
• ServiceTracker simplifies this task: – Maintains a list of active services – Events can be overridden in subclass
• Used in almost every bundle
![Page 36: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/36.jpg)
©1999-2002 OSGi, All Rights Reserved
Classpath issues
• Java applications consists of classes placed in packages
• Java searches for a package or class in different jar files and directories – These are usually specified in the CLASSPATH environment
variable
• Applications can exend this search path dynamically with so called classloaders
![Page 37: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/37.jpg)
©1999-2002 OSGi, All Rights Reserved
Classpath issues
• Java programs are decomposed in packages
• A class name is always prefixed with the package name – package ericsson.osgi.profiler;
class X {} – Is actually class called "ericsson.osgi.profiler.X" – Creates globally unique names
• A Java package is an indivisable unit of a set of related classes
![Page 38: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/38.jpg)
©1999-2002 OSGi, All Rights Reserved
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
• Tracks shared usage of packages between between bundles
![Page 39: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/39.jpg)
©1999-2002 OSGi, All Rights Reserved
OSGi Classpath
Bundle A Export org.osgi.service.log com.ibm.service.log com.ibm.j9 Import org.osgi.service.http javax.servlet.http
Framework org.osgi.framework org.osgi.service.http
Bundle B Export ericsson.osgi javax.servlet javax.servlet.http org.osgi.service.log Import org.osgi.service.http
B resolved
A resolved
![Page 40: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/40.jpg)
©1999-2002 OSGi, All Rights Reserved
Package Admin Service
• Policy interface to Framework package handling
• Uninstalling a bundle will not withdraw exported packages – anymore (this was optional in Release 1)
• Inspect current state of im- and exporting
• Cleanup stale exported packages by stopping and starting the minimum set of bundles
![Page 41: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/41.jpg)
©1999-2002 OSGi, All Rights Reserved
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
![Page 42: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/42.jpg)
©1999-2002 OSGi, All Rights Reserved
Native code
• Java Supports native code with the "native" keyword – public class Native {
public native void test(); }
• OSGi has a number of Manifest headers allowing shared libraries to be included – Manifest-Version: 1.0
Bundle-Name: NativeCodeTest Bundle-NativeCode: http.dll;os=Win95;processor=x86 http.so;os=Solaris;processor=x86;language=en http_deutsch.so;os=Solaris;processor=x86;language=de http_sparc.so;os=Solaris;processor=sparc
![Page 43: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/43.jpg)
©1999-2002 OSGi, All Rights Reserved
Dependency Management
• When a bundle stops, it is cleaned up – Registered services are removed – References to other services removed
• Bundles can be notified when a service they depend on is unregistered
• Class path dependencies are managed
• Model allows long running applications with dynamic software updates
![Page 44: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/44.jpg)
©1999-2002 OSGi, All Rights Reserved
Real code! Hello World
• HelloWorld.java: package org.osgi.nursery.hello; import org.osgi.framework.*;
public class HelloWorld implements BundleActivator { public void start( BundleContext context ) throws Exception{ System.out.println( "Hello world" ); } public void stop( BundleContext context ) throws Exception { System.out.println( "Goodbye world" ); }
}
• Manifest: Manifest-Version: 1.0 Bundle-Activator: org.osgi.nursery.hello.HelloWorld
![Page 45: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/45.jpg)
©1999-2002 OSGi, All Rights Reserved
To get and register a service
• public interface GPS { …
}
• public void foo( BundleContext context ) { Garmin garmin = new Garmin(…); Hashtable properties = new Hashtable(); properties.put( "vendor", "garmin" ); ServiceRegistration reg = context.registerService( GPS.class.getName(), garmin, properties );
}
• public void bar( BundleContext context ) { ServiceReference ref = context.getService(
GPS.class.getName() ); GPS gps = context.getService( ref ); …
}
![Page 46: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/46.jpg)
©1999-2002 OSGi, All Rights Reserved
Security
• OSGi (optionally) uses Java 1.2 Security based on Permission classes
• A Permission class defines the semantics of what a permission means
• For example: FilePermission – Target = directory or file, "/tmp/-" – Action = what can be done, READ, WRITE
• Stack based checking
• Flexible but very complex and CPU intensive
![Page 47: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/47.jpg)
©1999-2002 OSGi, All Rights Reserved
OSGi Security
• Optional – Base Framework API not linked to java.security
• OSGi uses a single (1) protection domain per bundle – Java 2 allows multiple – Simpler
• Framework is, again, policy free
• Administration is done via the Permission Admin service
![Page 48: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/48.jpg)
©1999-2002 OSGi, All Rights Reserved
Java 2 Security overview
anA
aB
aC
A
B
C
Open file
C C B B B A
Protection Domain
Code Source
Permission Collection Permissions Permission
File Permissions
File Permission
Security Manager
Access Controller
stack
foo()
bar()
open()
checkRead(File) check(FilePermission)
get stack trace use minimal permission
Check permission
implies(FilePermission)
implies(FilePermission)
implies(FilePermission)
Policy
![Page 49: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/49.jpg)
©1999-2002 OSGi, All Rights Reserved
Permission Admin Service
• Framework uses Permission Admin Service to administer permissions
• Permissions associated with bundle location – Allows setting before bundle is downloaded
• Synchronous Bundle Listener added so that a Management Bundle – Set the permissions Just In Time
• (Simple) Serializable format for permissions
![Page 50: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/50.jpg)
©1999-2002 OSGi, All Rights Reserved
Tech Spec Overview: Component Specs
Technical Specification Overview
Component Specifications
![Page 51: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/51.jpg)
©1999-2002 OSGi, All Rights Reserved
Content R1, R2, R3
Framework
OSGi Specifications Content
Execution Environment
Devic
e Man
ager
Log S
ervic
e Ht
tp Se
rvice
R1
User
Adm
in Se
rvice
Trac
ker
Confi
gura
tion A
dmin
Prefe
renc
es S
ervic
e
Pack
age A
dmin
Perm
ission
Adm
in
R2
Conn
ector
Ser
vice
Posit
ion
XML P
arse
r Ser
vice
UPnP
Ser
vice
Jini S
ervic
e
Wire
Adm
in
Meas
urem
ent
Star
t Lev
el UR
L Han
dler
R3 Preliminary
![Page 52: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/52.jpg)
©1999-2002 OSGi, All Rights Reserved
org.osgi.service.log v1.1 Log Service
• Simple and small Log service for operator
• 4 Levels – INFO, DEBUG, WARNING, ERROR
• Automatically logs framework events in a defined way
• Other bundles can access log history – Management bundle – Length implementation dependent
![Page 53: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/53.jpg)
©1999-2002 OSGi, All Rights Reserved
org.osgi.service.log v1.1 Log Service
a log user a log reader
LogService LogEntry LogListener LogReader Service
a log service impl.
A log entry impl.
A log reader impl.
Log Service Impl. bundle
Log a message
Store a message for retrieval and broadcast
Message log
Send new log entry
Retrieve log
A log user bundle
A log reader using bundle
![Page 54: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/54.jpg)
©1999-2002 OSGi, All Rights Reserved
org.osgi.service.http v1.1 Http Service
• Provides web access to bundles
• A powerful servlet runner – Supports Servlets Version 2.1
• Very simple to export static pages and files (like images)
• Automatically unregisters servlets when bundle is stopped
![Page 55: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/55.jpg)
©1999-2002 OSGi, All Rights Reserved
org.osgi.service.http v1.1 Http Service
Impl. Of Http context
Impl. Of servlet
HttpContext NameSpace Exception HttpService
javax.servlet. Servlet
Default impl. HttpContext
Resource registration
Servlet registration
Bundles main code
javax.servlet. Request/ Response
NameSpace alias
An Http Service impl.
![Page 56: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/56.jpg)
©1999-2002 OSGi, All Rights Reserved
org.osgi.service.device v1.1 Device Access
• Dynamic device driver download model
• Plug & Play – Plugged in devices identify themselves – Device Manager will download appropriate bundle
• Matching process for best driver
• Extendable – Driver Selector, Driver locator
![Page 57: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/57.jpg)
©1999-2002 OSGi, All Rights Reserved
Device Access 1.1
Locator bundle
Device Manager
Device
A device
Driver Locator
selector bundle
Driver Selector
Driver
References to install
selects attach
![Page 58: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/58.jpg)
©1999-2002 OSGi, All Rights Reserved
Device Access
IEEE 1394B
Interface Network bundle
Driver Locator
Driver Locator
TV
7. attach
4. find bundle location
5. Install bundle
2. register
Camera 1. Insert camera
9. Select camera
8. Register camera
10. Show camera on TV
3. Select device
Device Manager
Sony CCD654
Driver 6. register
TV bundle
Camera
Device
![Page 59: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/59.jpg)
©1999-2002 OSGi, All Rights Reserved
org.osgi.service.cm v1.0 Configuration Admin Service
• Configures bundles – At startup, or any later moment
• Maintains a repository of configurations – Local – Management system
• Configurations are key/value pairs – Typed with Meta Types
• Can be extended with plugins
![Page 60: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/60.jpg)
©1999-2002 OSGi, All Rights Reserved
Configuration Admin
client bundle
Configuration Admin impl
Configuration Admin
Configuration bundle
Managed Service
client bundle
Managed Service Factory
Configuration
1
1 1
0..n
Configuration Plugin
Plugin impl
Configuration Exception
![Page 61: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/61.jpg)
©1999-2002 OSGi, All Rights Reserved
org.osgi.service.metatype V1.0 Meta Typing
• Data Descriptors for generic editors – Configurations, Properties
• Supports – Basic types like String, Integer, Byte, Short … – Arrays and Vectors
• Uses LDAP Objectclass, attribute model
• Can be localized for different languages
• General validation support
![Page 62: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/62.jpg)
©1999-2002 OSGi, All Rights Reserved
Meta Typing Class Diagram
MetaType Provider
ObjectClass Definition
Attribute Definition
1..n
1
1 1..n
Locale PID
![Page 63: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/63.jpg)
©1999-2002 OSGi, All Rights Reserved
org.osgi.service.prefs v1.0 Preferences Service
• Simple hierarchical model like Windows Registry
• Uses simple hierarchical names – /bundle/121/httpport=81
• Different trees – Multiple named trees per bundle – One system tree
• Storage can be local or on management system
![Page 64: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/64.jpg)
©1999-2002 OSGi, All Rights Reserved
org.osgi.service.prefs v1.0 Preferences Service
root Named or System
c2 /c2
d1
c1
/c1/d2
foo=8 bar=9 lex=‘acme’
d2
d1
d1
foo=8 bar=9 lex=‘acme’
d2
properties /c1/d2
/c1/d2/d1/d2
properties /c1/d2/d1/d2
![Page 65: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/65.jpg)
©1999-2002 OSGi, All Rights Reserved
Preferences Class Diagram
BackingStore Exception a bundle
Preferences Service
Bundle preferences
Service impl.
Preference Node impl.
Preferences
nodes 0..n
0..n
1
1
0..n
1
1
1
Root user nodes
Root system node
User name
![Page 66: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/66.jpg)
©1999-2002 OSGi, All Rights Reserved
org.osgi.service.useradmin v1.0 User Admin Service
• Repository of users
• Maintains data for authentication and other purposes – Private keys, passwords, bio-profile, User Preferences
• Powerful role based authorization model – Users, group of users, and groups of groups
• Administrative functions
![Page 67: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/67.jpg)
©1999-2002 OSGi, All Rights Reserved
User Admin Class Diagram
User admin impl
UserAdmin Listener UserAdmin Role
User
Group
Role impl
User impl
Group impl
UserAdmin Permission
User name
Request Authenticator
User Listener impl. Action impl
Authorization UserAdmin Event
authenticate
Consult for authorization
Has roles
Perform action
Receive events
Send event
Basic member
Required member
![Page 68: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/68.jpg)
©1999-2002 OSGi, All Rights Reserved
Wire Admin Service (R3)
• Connects Producer services to Consumer services via Wire object
• Wire objects have properties for configuration
WireAdmin
Producer Consumer Wire
![Page 69: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/69.jpg)
©1999-2002 OSGi, All Rights Reserved
Position, Measurement, State
• Support classes for Wire Admin
• Position – Supports GPS like position
• Measurement – SI measurement system to prevent calculation errors – Error calculations – Timestamp
• State
![Page 70: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/70.jpg)
©1999-2002 OSGi, All Rights Reserved
Start Levels (R3)
• Allows Management Agent to control startup/shutdown sequence of installed bundles
• Supports many levels
• System service, implemented by Framework
![Page 71: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/71.jpg)
©1999-2002 OSGi, All Rights Reserved
URL Stream & Content
• Manages the URLStreamHandlerFactory and URLContentHandlerFactory of Java – These factories can only be set once so the Framework must
manage them
• Bundles can register a URLStreamHandlerService or ContentHandler
• The Framework will automatically add these to the standard set
![Page 72: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/72.jpg)
©1999-2002 OSGi, All Rights Reserved
Universal Plug ‘n Play (R3)
• Popular UPnP specifications adapted to OSGi Service Platform
• Makes it very easy to write a UPnP control point or device
• Involves registering a simple UPnPDevice service
![Page 73: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/73.jpg)
©1999-2002 OSGi, All Rights Reserved
Jini (R3)
• Defined how Jini devices can cooperate with an OSGi service platform
• Service Platform very good environment for Jini services, but
• Security issues
![Page 74: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/74.jpg)
©1999-2002 OSGi, All Rights Reserved
Execution Environment (R3)
• OSGi defined 2 execution environments
• Minimal – Intended for really small devices
• Foundation Profile – Adapted from JCP’s Foundation Profile
• Finally!
![Page 75: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/75.jpg)
©1999-2002 OSGi, All Rights Reserved
IO Connector Service (R3)
• Adopted J2ME javax.microedition.io package
• Process in JCP is intended to make this stand-alone
• Connection type + address selected by a single string
• Connection interfaces allows client code to adapt to different schemes – Datagram, Sockets, Servers
![Page 76: Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens](https://reader030.fdocuments.in/reader030/viewer/2022032421/55a697dd1a28ab662d8b4799/html5/thumbnails/76.jpg)
©1999-2002 OSGi, All Rights Reserved
XML Parser Service
• Allows different bundles to register an XML parser
• Supports finding “best” parser for a specific application
• Based on standard Java JAR service