SlideShare a Scribd company logo
1 of 76
Download to read offline
©1999-2002 OSGi, All Rights Reserved
Tech Spec Overview:
Introduction
Technical
Specification
Overview
Introduction
©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
©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
©1999-2002 OSGi, All Rights Reserved
Release 3 Planned Extensions
(Preliminary)
Framework
OSGi Specifications Content
Execution Environment
DeviceManager
LogService
HttpService
R1
UserAdmin
ServiceTracker
ConfigurationAdmin
PreferencesService
PackageAdmin
PermissionAdmin
R2
ConnectorService
Position
XMLParserService
UPnPService
JiniService
WireAdmin
Measurement
StartLevel
URLHandler
R3 Preliminary
©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
©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
©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
©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
©1999-2002 OSGi, All Rights Reserved
Tech Spec Overview:
Framework Spec
Technical
Specification
Overview
Framework Specification
©1999-2002 OSGi, All Rights Reserved
Framework Entities
•  OSGi environment
•  Framework
•  Bundles
•  Services
•  Filters
•  Events
•  Security
©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
©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
©1999-2002 OSGi, All Rights Reserved
Framework Entities
OSGi Framework
Bundle A
{}
= service, java interface
Bundle B
{}
Bundle C
{}
©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
©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
©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
©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
©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
©1999-2002 OSGi, All Rights Reserved
BundleBundle
Collaborative model
JAVA
Operating System
Hardware
OSGi Framework
Service
registry
packages
packages
©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
©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
©1999-2002 OSGi, All Rights Reserved
Java Interfaces
LogBundle
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 );
}
}
©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
©1999-2002 OSGi, All Rights Reserved
A Service Defined
Object that
implements a
Java Interface
register
get
get
get
events: REGISTERED, UNREGISTERING,
MODIFIED
©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
©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.
©1999-2002 OSGi, All Rights Reserved
Service Factories
Framework Bundle
Standard
Bundle
Factory
Bundle A
{ }
Bundle B
{ }
©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
©1999-2002 OSGi, All Rights Reserved
Dependencies
Framework
Bundle C
{ }
Bundle A
{ }
Bundle B
{ }
Install A
start
events: install
events: register
©1999-2002 OSGi, All Rights Reserved
Framework
Dependencies
Bundle C
{ }
Bundle B
{ }
Uninstall
stop
events: uninstall
events: unregister
Bundle A
{ }
©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
©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
©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=*)
©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
©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
©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
©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
©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
©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
©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
©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
©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
©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
©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
©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 );
…
}
©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
©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
©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
©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
©1999-2002 OSGi, All Rights Reserved
Tech Spec Overview:
Component Specs
Technical
Specification
Overview
Component Specifications
©1999-2002 OSGi, All Rights Reserved
Content R1, R2, R3
Framework
OSGi Specifications Content
Execution Environment
DeviceManager
LogService
HttpService
R1
UserAdmin
ServiceTracker
ConfigurationAdmin
PreferencesService
PackageAdmin
PermissionAdmin
R2
ConnectorService
Position
XMLParserService
UPnPService
JiniService
WireAdmin
Measurement
StartLevel
URLHandler
R3 Preliminary
©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
©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
©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
©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.
©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
©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
©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
©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
©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
11
0..n
Configuration
Plugin
Plugin impl
Configuration
Exception
©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
©1999-2002 OSGi, All Rights Reserved
Meta Typing Class Diagram
MetaType
Provider
ObjectClass
Definition
Attribute
Definition
1..n
1
1 1..n
Locale
PID
©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
©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
©1999-2002 OSGi, All Rights Reserved
Preferences Class Diagram
BackingStore
Exception
a bundle
Preferences
Service
Bundle
preferences
Service impl.
Preference
Node impl.
Preferences
nodes0..n
0..n
1
1
0..n
1
1
1
Root user nodes
Root system node
User name
©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
©1999-2002 OSGi, All Rights Reserved
User Admin Class Diagram
User admin
impl
UserAdmin
Listener
UserAdminRole
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
©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 ConsumerWire
©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
©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
©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
©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
©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
©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!
©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
©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

More Related Content

What's hot

OpenFlow Switch Management using NETCONF and YANG
OpenFlow Switch Management using NETCONF and YANGOpenFlow Switch Management using NETCONF and YANG
OpenFlow Switch Management using NETCONF and YANGTail-f Systems
 
Moving AWS workloads to OpenStack
Moving AWS workloads to OpenStackMoving AWS workloads to OpenStack
Moving AWS workloads to OpenStackMirantis
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16Kentaro Ebisawa
 
Getting Started: Developing Tropo Applications
Getting Started: Developing Tropo ApplicationsGetting Started: Developing Tropo Applications
Getting Started: Developing Tropo ApplicationsCisco DevNet
 

What's hot (6)

OpenFlow Switch Management using NETCONF and YANG
OpenFlow Switch Management using NETCONF and YANGOpenFlow Switch Management using NETCONF and YANG
OpenFlow Switch Management using NETCONF and YANG
 
Moving AWS workloads to OpenStack
Moving AWS workloads to OpenStackMoving AWS workloads to OpenStack
Moving AWS workloads to OpenStack
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16Open Network OS Overview as of 2015/10/16
Open Network OS Overview as of 2015/10/16
 
Getting Started: Developing Tropo Applications
Getting Started: Developing Tropo ApplicationsGetting Started: Developing Tropo Applications
Getting Started: Developing Tropo Applications
 
SSL Everywhere!
SSL Everywhere!SSL Everywhere!
SSL Everywhere!
 

Similar to Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens

OSGi user forum dc metro v1
OSGi user forum dc metro v1OSGi user forum dc metro v1
OSGi user forum dc metro v1pjhInovex
 
The OSGi Complete - Pavlin Dobrev
The OSGi Complete - Pavlin DobrevThe OSGi Complete - Pavlin Dobrev
The OSGi Complete - Pavlin Dobrevmfrancis
 
OSGi Specification Evolution - BJ Hargrave
OSGi Specification Evolution - BJ HargraveOSGi Specification Evolution - BJ Hargrave
OSGi Specification Evolution - BJ Hargravemfrancis
 
How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...mfrancis
 
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...mfrancis
 
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...mfrancis
 
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...mfrancis
 
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...IndicThreads
 
OSGi on Google Android using Apache Felix
OSGi on Google Android using Apache FelixOSGi on Google Android using Apache Felix
OSGi on Google Android using Apache FelixMarcel Offermans
 
OSGi Technology Value Proposition - December 2013
OSGi Technology Value Proposition - December 2013OSGi Technology Value Proposition - December 2013
OSGi Technology Value Proposition - December 2013mfrancis
 
Update OSGi Residential Expert Group
Update OSGi Residential Expert Group Update OSGi Residential Expert Group
Update OSGi Residential Expert Group OSGiUsers
 
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...mfrancis
 
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OpenBlend society
 
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...mfrancis
 
2005 OSGi Alliance Status - John Barr, Ph.D., Past President, OSGi Alliance; ...
2005 OSGi Alliance Status - John Barr, Ph.D., Past President, OSGi Alliance; ...2005 OSGi Alliance Status - John Barr, Ph.D., Past President, OSGi Alliance; ...
2005 OSGi Alliance Status - John Barr, Ph.D., Past President, OSGi Alliance; ...mfrancis
 
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009Roland Tritsch
 

Similar to Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens (20)

OSGi user forum dc metro v1
OSGi user forum dc metro v1OSGi user forum dc metro v1
OSGi user forum dc metro v1
 
The OSGi Complete - Pavlin Dobrev
The OSGi Complete - Pavlin DobrevThe OSGi Complete - Pavlin Dobrev
The OSGi Complete - Pavlin Dobrev
 
OSGi Specification Evolution - BJ Hargrave
OSGi Specification Evolution - BJ HargraveOSGi Specification Evolution - BJ Hargrave
OSGi Specification Evolution - BJ Hargrave
 
How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...How the OSGi Residential Specifications can help to build an ecosystem for sm...
How the OSGi Residential Specifications can help to build an ecosystem for sm...
 
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
Service Scenarios and Learnings from the Belgacom EasyHome Lab - Bernard Boël...
 
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...
OSGi Technology in the France Telecom Plugs Home Platform - Gilles Deflandre,...
 
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...
How to Use the OSGi Service Framework in Real-Life Projects - Kai Hackbath, P...
 
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
 
OSGi on Google Android using Apache Felix
OSGi on Google Android using Apache FelixOSGi on Google Android using Apache Felix
OSGi on Google Android using Apache Felix
 
OSGi Technology Value Proposition - December 2013
OSGi Technology Value Proposition - December 2013OSGi Technology Value Proposition - December 2013
OSGi Technology Value Proposition - December 2013
 
OUGF - OSGi / Flex
OUGF - OSGi / FlexOUGF - OSGi / Flex
OUGF - OSGi / Flex
 
OUGF OSGi/Flex
OUGF OSGi/FlexOUGF OSGi/Flex
OUGF OSGi/Flex
 
Update OSGi Residential Expert Group
Update OSGi Residential Expert Group Update OSGi Residential Expert Group
Update OSGi Residential Expert Group
 
Os gi l
Os gi lOs gi l
Os gi l
 
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...
OSGi Best Practices – Learn how to prevent common mistakes and build robust, ...
 
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
OSGi & Java EE: A hybrid approach to Enterprise Java Application Development,...
 
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...
Building Global Telematics System by Using OSGi Technology - Dimitar Valtchev...
 
2005 OSGi Alliance Status - John Barr, Ph.D., Past President, OSGi Alliance; ...
2005 OSGi Alliance Status - John Barr, Ph.D., Past President, OSGi Alliance; ...2005 OSGi Alliance Status - John Barr, Ph.D., Past President, OSGi Alliance; ...
2005 OSGi Alliance Status - John Barr, Ph.D., Past President, OSGi Alliance; ...
 
RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009RESTful Services and Distributed OSGi - 04/2009
RESTful Services and Distributed OSGi - 04/2009
 
OSGi introduction
OSGi introductionOSGi introduction
OSGi introduction
 

More from mfrancis

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...mfrancis
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)mfrancis
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)mfrancis
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruumfrancis
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...mfrancis
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...mfrancis
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...mfrancis
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)mfrancis
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...mfrancis
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)mfrancis
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...mfrancis
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...mfrancis
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...mfrancis
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)mfrancis
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)mfrancis
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)mfrancis
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...mfrancis
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)mfrancis
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...mfrancis
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)mfrancis
 

More from mfrancis (20)

Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
Eclipse Modeling Framework and plain OSGi the easy way - Mark Hoffman (Data I...
 
OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)OSGi and Java 9+ - BJ Hargrave (IBM)
OSGi and Java 9+ - BJ Hargrave (IBM)
 
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
Simplify Web UX Coding using OSGi Modularity Magic - Paul Fraser (A2Z Living)
 
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank LyaruuOSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
OSGi for the data centre - Connecting OSGi to Kubernetes - Frank Lyaruu
 
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
Remote Management and Monitoring of Distributed OSGi Applications - Tim Verbe...
 
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
OSGi with Docker - a powerful way to develop Java systems - Udo Hafermann (So...
 
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
A real world use case with OSGi R7 - Jurgen Albert (Data In Motion Consulting...
 
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
OSGi Feature Model - Where Art Thou - David Bosschaert (Adobe)
 
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
Migrating from PDE to Bndtools in Practice - Amit Kumar Mondal (Deutsche Tele...
 
OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)OSGi CDI Integration Specification - Ray Augé (Liferay)
OSGi CDI Integration Specification - Ray Augé (Liferay)
 
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
How OSGi drives cross-sector energy management - Jörn Tümmler (SMA Solar Tech...
 
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
Improved developer productivity thanks to Maven and OSGi - Lukasz Dywicki (Co...
 
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
It Was Twenty Years Ago Today - Building an OSGi based Smart Home System - Ch...
 
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)Popular patterns revisited on OSGi - Christian Schneider (Adobe)
Popular patterns revisited on OSGi - Christian Schneider (Adobe)
 
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
Integrating SLF4J and the new OSGi LogService 1.4 - BJ Hargrave (IBM)
 
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
OSG(a)i: because AI needs a runtime - Tim Verbelen (imec)
 
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
Flying to Jupiter with OSGi - Tony Walsh (ESA) & Hristo Indzhov (Telespazio V...
 
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
MicroProfile, OSGi was meant for this - Ray Auge (Liferay)
 
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
Prototyping IoT systems with a hybrid OSGi & Node-RED platform - Bruce Jackso...
 
How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)How to connect your OSGi application - Dirk Fauth (Bosch)
How to connect your OSGi application - Dirk Fauth (Bosch)
 

Recently uploaded

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Recently uploaded (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

Technical Specification Overview - OSGi World Congress 2002 Workshop Intro - P Kriens

  • 1. ©1999-2002 OSGi, All Rights Reserved Tech Spec Overview: Introduction Technical Specification Overview Introduction
  • 2. ©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
  • 3. ©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
  • 4. ©1999-2002 OSGi, All Rights Reserved Release 3 Planned Extensions (Preliminary) Framework OSGi Specifications Content Execution Environment DeviceManager LogService HttpService R1 UserAdmin ServiceTracker ConfigurationAdmin PreferencesService PackageAdmin PermissionAdmin R2 ConnectorService Position XMLParserService UPnPService JiniService WireAdmin Measurement StartLevel URLHandler R3 Preliminary
  • 5. ©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
  • 6. ©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
  • 7. ©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
  • 8. ©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
  • 9. ©1999-2002 OSGi, All Rights Reserved Tech Spec Overview: Framework Spec Technical Specification Overview Framework Specification
  • 10. ©1999-2002 OSGi, All Rights Reserved Framework Entities •  OSGi environment •  Framework •  Bundles •  Services •  Filters •  Events •  Security
  • 11. ©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
  • 12. ©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
  • 13. ©1999-2002 OSGi, All Rights Reserved Framework Entities OSGi Framework Bundle A {} = service, java interface Bundle B {} Bundle C {}
  • 14. ©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
  • 15. ©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
  • 16. ©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
  • 17. ©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
  • 18. ©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
  • 19. ©1999-2002 OSGi, All Rights Reserved BundleBundle Collaborative model JAVA Operating System Hardware OSGi Framework Service registry packages packages
  • 20. ©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
  • 21. ©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
  • 22. ©1999-2002 OSGi, All Rights Reserved Java Interfaces LogBundle 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 ); } }
  • 23. ©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
  • 24. ©1999-2002 OSGi, All Rights Reserved A Service Defined Object that implements a Java Interface register get get get events: REGISTERED, UNREGISTERING, MODIFIED
  • 25. ©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
  • 26. ©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.
  • 27. ©1999-2002 OSGi, All Rights Reserved Service Factories Framework Bundle Standard Bundle Factory Bundle A { } Bundle B { }
  • 28. ©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
  • 29. ©1999-2002 OSGi, All Rights Reserved Dependencies Framework Bundle C { } Bundle A { } Bundle B { } Install A start events: install events: register
  • 30. ©1999-2002 OSGi, All Rights Reserved Framework Dependencies Bundle C { } Bundle B { } Uninstall stop events: uninstall events: unregister Bundle A { }
  • 31. ©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
  • 32. ©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
  • 33. ©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=*)
  • 34. ©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
  • 35. ©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
  • 36. ©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
  • 37. ©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
  • 38. ©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
  • 39. ©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
  • 40. ©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
  • 41. ©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
  • 42. ©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
  • 43. ©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
  • 44. ©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
  • 45. ©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 ); … }
  • 46. ©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
  • 47. ©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
  • 48. ©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
  • 49. ©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
  • 50. ©1999-2002 OSGi, All Rights Reserved Tech Spec Overview: Component Specs Technical Specification Overview Component Specifications
  • 51. ©1999-2002 OSGi, All Rights Reserved Content R1, R2, R3 Framework OSGi Specifications Content Execution Environment DeviceManager LogService HttpService R1 UserAdmin ServiceTracker ConfigurationAdmin PreferencesService PackageAdmin PermissionAdmin R2 ConnectorService Position XMLParserService UPnPService JiniService WireAdmin Measurement StartLevel URLHandler R3 Preliminary
  • 52. ©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
  • 53. ©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
  • 54. ©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
  • 55. ©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.
  • 56. ©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
  • 57. ©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
  • 58. ©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
  • 59. ©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
  • 60. ©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 11 0..n Configuration Plugin Plugin impl Configuration Exception
  • 61. ©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
  • 62. ©1999-2002 OSGi, All Rights Reserved Meta Typing Class Diagram MetaType Provider ObjectClass Definition Attribute Definition 1..n 1 1 1..n Locale PID
  • 63. ©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
  • 64. ©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
  • 65. ©1999-2002 OSGi, All Rights Reserved Preferences Class Diagram BackingStore Exception a bundle Preferences Service Bundle preferences Service impl. Preference Node impl. Preferences nodes0..n 0..n 1 1 0..n 1 1 1 Root user nodes Root system node User name
  • 66. ©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
  • 67. ©1999-2002 OSGi, All Rights Reserved User Admin Class Diagram User admin impl UserAdmin Listener UserAdminRole 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
  • 68. ©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 ConsumerWire
  • 69. ©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
  • 70. ©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
  • 71. ©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
  • 72. ©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
  • 73. ©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
  • 74. ©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!
  • 75. ©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
  • 76. ©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