©1999-2002 OSGi, All Rights Reserved Tech Spec Overview: Introduction Technical Specification Overview Introduction.

Slides:



Advertisements
Similar presentations
This course is designed for system managers/administrators to better understand the SAAZ Desktop and Server Management components Students will learn.
Advertisements

MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
When Applications can Roam Freely OSGi Service Platform R4 Peter Kriens Technical Director OSGi
©2003 aQute, All Rights Reserved Tokyo, August 2003 : 1 OSGi Service Platform Tokyo August 28, 2003 Peter Kriens CEO aQute, OSGi Fellow
© OSGi, All Rights Reserved - Brussel Jan 22 Ertico/OSGi Tech Spec Overview: Introduction OSGi R3 and Remote Management Ertico/OSGi meeting Jan.
AQute Bundle Programming By Peter Kriens CEO aQute OSGi Technology Officer and OSGi Fellow.
IWay Service Manager 6.1 Product Update Scott Hathaway iWay Software Copyright 2010, Information Builders. Slide 1.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
The road to reliable, autonomous distributed systems
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
OSGi: Open Services Gateway Initiative Richard Chapman 5 Sept
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
1 Build a Web Application on J2EE. 2 J2EE Scenario Client – Web Server – EIS Resources Client – Web Server – EIS Resources Client – Application Server.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 7 Configuring File Services in Windows Server 2008.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
WINDOWS SERVICES. Introduction You often need programs that run continuously in the background Examples: – servers –Print spooler You often need.
OSGi.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
Choon Oh Lee OSGi Service Platform. About OSGi Service Platform What it is, Where it is used, What features it provides are Today’s Content.
Using JavaBeans and Custom Tags in JSP Lesson 3B / Slide 1 of 37 J2EE Web Components Pre-assessment Questions 1.The _____________ attribute of a JSP page.
Objectives Configure routing in Windows Server 2008 Configure Routing and Remote Access Services in Windows Server 2008 Network Address Translation 1.
Module 7: Fundamentals of Administering Windows Server 2008.
第十四章 J2EE 入门 Introduction What is J2EE ?
SUSE Linux Enterprise Desktop Administration Chapter 12 Administer Printing.
© 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Introduction to HP Availability Manager.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Chapter 3 Servlet Basics. 1.Recall the Servlet Role 2.Basic Servlet Structure 3.A simple servlet that generates plain text 4.A servlet that generates.
Comparing JavaBeans and OSGi Towards an Integration of Two Complementary Component Models HUMBERTO CERVANTES JEAN-MARIE FAVRE 09/02.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Migrating Desktop The graphical framework for running grid applications Bartek Palak Poznan Supercomputing and Networking Center The.
1 Schema Registries Steven Hughes, Lou Reich, Dan Crichton NASA 21 October 2015.
Webservice versioning using osgi Allard Buijze, Jettro Coenradie.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
© 2002, Youngjoon Choi, RESL, Inha University Page : 1 Open Services Gateway initiative OSGi Open Services Gateway Initiative Youngjoon Choi © Realtime.
Introduction to Java Beans CIS 421 Web-based Java Programming.
ECI – electronic Commerce Infrastructure “ An application to the Shares Market ” Demetris Zeinalipour ( Melinos Kyriacou
Jini Architecture Introduction System Overview An Example.
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
Getting Started with the Open Services Gateway Initiative (OSGi) CNT 5517 Dr. Sumi Helal, Ph.D. Professor Computer & Information Science & Engineering.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
REST By: Vishwanath Vineet.
Module 6: Administering Reporting Services. Overview Server Administration Performance and Reliability Monitoring Database Administration Security Administration.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Introduction to OSGi +ActorFrame Surya Bahadur Kathayat
Active Directory Domain Services (AD DS). Identity and Access (IDA) – An IDA infrastructure should: Store information about users, groups, computers and.
©2001 OSGi, All Rights Reserved The OSGi Gateway and the Network Delivery of Managed Services Dave Marples
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Real-Time Systems Lab. OSGi overview January 23, 2002 Sung-ho Park.
Architecture Review 10/11/2004
Overall Architecture and Component Model
Knowledge Byte In this section, you will learn about:
IBM Certified WAS 8.5 Administrator
Windows Internals Brown-Bag Seminar Chapter 1 – Concepts and Tools
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
Plug-In Architecture Pattern
Presentation transcript:

© OSGi, All Rights Reserved Tech Spec Overview: Introduction Technical Specification Overview Introduction

© 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

© OSGi, All Rights Reserved Release 3 Planned Extensions (Preliminary) Framework OSGi Specifications Content Execution Environment Device ManagerLog ServiceHttp Service R1 User Admin Service TrackerConfiguration Admin Preferences Service Package AdminPermission Admin R2 Connector Service Position XML Parser Service UPnP ServiceJini ServiceWire Admin Measurement Start LevelURL Handler R3 Preliminary

© 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

© 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

© 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

© OSGi, All Rights Reserved Java Issues Integrity –Cooperative, not like an OS with guarantees Security –Performance intensive Performance cost Size Lack of Resource Management

© OSGi, All Rights Reserved Tech Spec Overview: Framework Spec Technical Specification Overview Framework Specification

© OSGi, All Rights Reserved Framework Entities OSGi environment Framework Bundles Services Filters Events Security

© OSGi, All Rights Reserved OSGi Environment Hardware Bundle Operating System OSGi Java VM Bundle (Application) Driver = service interface exported and imported by bundles

© 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

© OSGi, All Rights Reserved Framework Entities OSGi Framework Bundle A {} = service, java interface Bundle B {} Bundle C {}

© 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

© 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

© 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

© 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

© 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

© OSGi, All Rights Reserved Bundle Collaborative model JAVA Operating System Hardware OSGi Framework Service registry packages

© 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 Midlet, Xlet, or Applet Midlet, Xlet, or Applet No native code No package management (versions!) No collaboration No management bundles

© 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

© 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 ); } }

© 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

© OSGi, All Rights Reserved A Service Defined Object that implements a Java Interface register get events: REGISTERED, UNREGISTERING, MODIFIED

© 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

© 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.

© OSGi, All Rights Reserved Service Factories Framework Bundle Standard Bundle Factory Bundle A { } Bundle B { }

© 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

© OSGi, All Rights Reserved Dependencies Framework Bundle C { } Bundle A { } Bundle B { } Install A start events: install events: register

© OSGi, All Rights Reserved Framework Dependencies Bundle C { } Bundle B { } Uninstall stop events: uninstall events: unregister Bundle A { }

© OSGi, All Rights Reserved An example with services Registry Bundle A { } register WAP bundle Events: register, unregister Bundle C { } Bundle B { } Publisher get

© 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

© 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=*)

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© OSGi, All Rights Reserved To get and register a service public interface GPS { … } public void foo( BundleContext context ) { Garmingarmin = 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() ); GPSgps = context.getService( ref ); … }

© 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

© 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

© 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 PermissionsPermission 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) Policy

© 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

© OSGi, All Rights Reserved Tech Spec Overview: Component Specs Technical Specification Overview Component Specifications

© OSGi, All Rights Reserved Content R1, R2, R3 Framework OSGi Specifications Content Execution Environment Device ManagerLog ServiceHttp Service R1 User Admin Service TrackerConfiguration Admin Preferences Service Package AdminPermission Admin R2 Connector Service Position XML Parser Service UPnP ServiceJini ServiceWire Admin Measurement Start LevelURL Handler R3 Preliminary

© 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

© OSGi, All Rights Reserved org.osgi.service.log v1.1 Log Service a log user a log reader LogService LogEntry LogListener LogReader Service LogReader Service a log service impl. a log service impl. A log entry impl. A log entry impl. A log reader 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

© 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

© OSGi, All Rights Reserved org.osgi.service.http v1.1 Http Service Impl. Of Http context Impl. Of Http context Impl. Of servlet Impl. Of servlet HttpContext NameSpace Exception NameSpace Exception HttpService javax.servlet. Servlet javax.servlet. Servlet Default impl. HttpContext Default impl. HttpContext Resource registration Resource registration Servlet registration Servlet registration Bundles main code Bundles main code javax.servlet. Request/ Response javax.servlet. Request/ Response NameSpace alias NameSpace alias An Http Service impl. An Http Service impl.

© 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

© OSGi, All Rights Reserved Device Access 1.1 Locator bundle Locator bundle Device Manager Device Manager Device A device Driver Locator Driver Locator selector bundle selector bundle Driver Selector Driver Selector Driver References to install selectsattach

© 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

© 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

© OSGi, All Rights Reserved Configuration Admin client bundle client bundle Configuration Admin impl Configuration Admin impl Configuration Admin Configuration Admin Configuration bundle Configuration bundle Managed Service Managed Service client bundle client bundle Managed Service Factory Managed Service Factory Configuration n Configuration Plugin Configuration Plugin Plugin impl Configuration Exception Configuration Exception

© 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

© OSGi, All Rights Reserved Meta Typing Class Diagram MetaType Provider MetaType Provider ObjectClass Definition ObjectClass Definition Attribute Definition Attribute Definition 1..n 1 1 Locale PID

© 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

© 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 foo=8 bar=9 lex=‘acme’ d2 properties /c1/d2 /c1/d2/d1/d2 properties /c1/d2/d1/d2

© OSGi, All Rights Reserved Preferences Class Diagram BackingStore Exception BackingStore Exception a bundle Preferences Service Preferences Service Bundle preferences Bundle preferences Service impl. Preference Node impl. Preference Node impl. Preferences nodes 0..n Root user nodes Root system node User name

© 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

© OSGi, All Rights Reserved User Admin Class Diagram User admin impl User admin impl UserAdmin Listener UserAdmin Listener UserAdmin Role User Group Role impl User impl Group impl UserAdmin Permission UserAdmin Permission User name Request Authenticator Request Authenticator User Listener impl. User Listener impl. Action impl Authorization UserAdmin Event UserAdmin Event authenticate Consult for authorization Has roles Perform action Receive events Send event Basic member Required member

© 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

© 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

© 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

© 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

© 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

© 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

© 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!

© 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

© 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