OSGi for FORCES

Download Report

Transcript OSGi for FORCES

The OSGi Gateway and the Network Delivery of Managed Services Dave Marples

[email protected]

©2001 OSGi, All Rights Reserved

Aims and Objective

• To introduce everyone to the OSGi • To show the way in which OSGi is expected to develop • To highlight problems that this deployment model will create • To start people thinking about how they might contribute to solve the problems of next generation software deployment – both to OSGi and in general ©2001 OSGi, All Rights Reserved 2

Overview

• Introduction • Where OSGi fits in – purpose and rationale • System Architecture • Technical Overview • Implications for Feature Design • Questions and Open discussion ©2001 OSGi, All Rights Reserved 3

Who is OSGi?

2Wire, ABB, Acronet, Acunia, Adtranz PUTCC, Alcatel, AMI-C, BellSouth, Broadband Gateways, Cablevision, CCL/ITRI, Coactive Networks, Compaq, Deutsche Telekom, Domosys, e2-Home, Echelon, Electricite de France, Electrolux Home Products, Elisa Communications, emWare, Enikia, Ericsson, Espial Group, France Telecom, Gatespace, Hewlett Packard, Home Director, IBM, Infomatec, inSilicon, Invensys Controls, KDD R&D, Legend Computer Systems, Lineo, Lucent Technologies, Maytag, Metavector, Motorola, National Semiconductor, Netpliance, Nokia, Nortel Networks, Novell, Oracle, Panasonic, Patriot Scientific, Philips, ProSyst Software, PTSC, Quest, Samsung Electronics, Schindler Aufzuge, Schneider Electric, ShareGate, Sharp, Shell, Siemens, Sonera, Sony, Sprint Communications, ST Microelectronics, Sun Microsystems, Symbol Technologies, TAC AB, Telcordia Technologies, Telia, Texas Instruments, Tokyo Electric Power Company, Toshiba, Tridium, Ucentric Systems, Ubicom, Union Fenosa, VDO Car Communications, Verizon, Villa Montage Systems, Whirlpool, Wind River Systems, Yello Strom ©2001 OSGi, All Rights Reserved 4

• There are many wide area network standards • There is no service delivery standard • The are many in home network standards ©2001 OSGi, All Rights Reserved

What’s Missing?

DOCSIS, DSL, ISDN, Satellite, W-CDMA… OSGi Bluetooth, CEBus HAVi, HomePNA, HomeRF, Jini, L ON W ORKS , UPnP… 5

What Is A Services Gateway?

•A cable modem •A set top box •A DSL modem •A web phone •A PC •A automotive multimedia gateway •A dedicated residential gateway •Anything running the OSGi APIs!

©2001 OSGi, All Rights Reserved 6

Benefits of OSGi To Cable Operators

• Increases “content” available on their systems – Creates new service revenue opportunities – Increases customer loyalty – Reduces customer churn by increasing customer switching costs • Transforms set top boxes into an expandable and extensible service delivery platform – Enables provisioning of new services at virtually no incremental cost – Opens new market segments and services ©2001 OSGi, All Rights Reserved 7

System Architecture

©2001 OSGi, All Rights Reserved

Service Provider

End-to-End Model with API Locations

Wide Area Network Gateway Operator Local Network Devices Open Services Gateway Client Client Service Management System

©2001 OSGi, All Rights Reserved

Service 1 Service 2 OSGi Framework Device Standardized OSGi API

9

The OSGi API

1.0 Spec Active work

©2001 OSGi, All Rights Reserved Services Framework Java Virtual Machine Embedded OS 10

The OSGi API

• Enables zero-administration services gateways • Supports secure remote operation by a service aggregator • Enables multiple services to cooperatively share a common services gateway • Supports any combination of remote and local networks • Can be used in home, small business, home office, auto, industrial applications ©2001 OSGi, All Rights Reserved 11

= service interface exported and imported by bundles

Software Stack

Bundle Bundle Bundle Bundle (Application) OSGi Driver Java VM Operating System Driver Driver Hardware

©2001 OSGi, All Rights Reserved 12

Bundle Interaction

Install, start, stop, update, uninstall

OSGi Services Framework Service Registry

Bundle A {...}

get

Bundle B {…} Bluetooth {…} Networks Java Virtual Machine

Internet

Platform (OS and Hardware) ©2001 OSGi, All Rights Reserved 13

Technical Overview

©2001 OSGi, All Rights Reserved

Goal • Software framework for large

scale electronic service deployment on small devices

Network delivery of managed

services…

©2001 OSGi, All Rights Reserved 15

Requirements

• Reliable – large scale deployments fail without very high reliability • Portable – Attract third party developers to create the very much needed innovative services • Dynamic – Allow the configuration to adapt to users and operator needs over time ©2001 OSGi, All Rights Reserved 16

Requirements

• Security – Protect service providers from each other – Guarantee a certain quality of service • Scalability – Members have very different configurations for their deployment of OSGi frameworks ©2001 OSGi, All Rights Reserved 17

Functions

• Life Cycle Management – Install, Start, Stop, Update, Uninstall • Component model • Remote management • Basic utility services: Logging, HTTP, Device access • Clean separation of specification and implementation ©2001 OSGi, All Rights Reserved 18

Key Benefits

• Platform independence (Java) • Services can be deployed and upgraded dynamically • Multiple independent services within a single services framework • Java security ©2001 OSGi, All Rights Reserved 19

OSGi Terminology

• A Bundle is the deliverable application – Like a Windows EXE file • It registers zero or more services – A service is specified as a Java interface and implemented by some bundles • Lookups can be used to find services from other bundles – Query language ©2001 OSGi, All Rights Reserved 20

Dependency Management

• When a bundle is stopped, 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 will allow long running applications with dynamic software updates ©2001 OSGi, All Rights Reserved 21

Management

• Residential gateways need remote management • Management system controls via a bundle • Due to the download facility of the resident gateway, APIs can replace protocols • Only protocol required is bootstrap – But this is usually implementation dependent anyway – Being considered for standardization ©2001 OSGi, All Rights Reserved 22

The Next Steps

Work for OSGi 2.0

©2001 OSGi, All Rights Reserved

New Work Areas…

• Remote Management – Protocols and APIs • Specialist (Vertical?) Segments – In-Vehicle • Dedicated Security Group • Device Discovery and Excitation • User Interface Group, Phones Group, CM Group?

©2001 OSGi, All Rights Reserved 24

Approximate Timescales…

• OSGi Service Platform Release 2 – Publicly available end Q2 2001 • Revision of 1.0 specification plus… • Accounting, Configuration Management, User Manager, Preferences • OSGi Vehicle Release 1 (2001) • OSGi Remote Management Release 1 (2001) • OSGi Cable Platform Release 1 (???-TBD) • Individual specifications can be released when ready, and formed into ‘Releases’ when needed.

©2001 OSGi, All Rights Reserved 25

Issues

• In this multi-vendor world we’re going to see many different services, from independent operators, all needing to work together. HOW? • We want to be able to deploy services onto the available in home devices to render the service – how can we describe these capabilities? • Our software development and deployment models are not ready for massive scale distribution and interworking – Discuss.

©2001 OSGi, All Rights Reserved 26

Technical Backup

©2001 OSGi, All Rights Reserved

Framework

• org.osgi.framework

• Programmable environment for hosting dynamically downloadable services – service inter-dependency – service download and lifecycle – ...

©2001 OSGi, All Rights Reserved 28

The framework

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

Bundle

Bundle A { } • A JAR file (zip) containing – Java classes – Manifest with information about bundle – Resources • Can also act like a DLL (Shared Library) • Framework can install/update/uninstall bundles • Bundles can be started and stopped ©2001 OSGi, All Rights Reserved 30

Service

• A service is an object registered by a bundle to be used by other bundles • The specification of a service is a Java interface • Different bundles (read vendors) can implement the same interface • Implementation is indistinguishable for users • The OSGi defines a standard set of services ©2001 OSGi, All Rights Reserved 31

Java Interfaces

Bundle Gets (with query)

Log

public class SimpleLog implements Log { public void log(String s) { System.out.println( s ); } } Simple Log IBM Log public interface Log { public void log(String s); } interface implements Motorola Log ©2001 OSGi, All Rights Reserved 32

The Framework

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

The Framework

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

register ©2001 OSGi, All Rights Reserved

A service defined

get Object that implements a Java Interface get get events: REGISTERED, UNREGISTERING, MODIFIED 35

An example with services

Bundle A { } Bundle B { } Bundle C { } register

Registry

Publisher get WAP bundle Events: register, unregister ©2001 OSGi, All Rights Reserved 36

Service Factories

• A Factory allows a bundle to control what object a bundle gets • Framework calls back the factory for service creation Bundle A { }

Framework

Bundle Standard Bundle B { } ©2001 OSGi, All Rights Reserved Bundle Factory 37

Real code! Hello World

• HelloWorld.java: package ericsson.osgi.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: ericsson.osgi.hello.HelloWorld

©2001 OSGi, All Rights Reserved 38

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 ); … } ©2001 OSGi, All Rights Reserved 39

"Process model"

• A bundle is installed on a framework once • Services registered by a bundle can be optionally configurable • OSGi will define more extensive configuration management in the next release – IBM Configuration proposal – ERICSSON Task management ©2001 OSGi, All Rights Reserved 40

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 ©2001 OSGi, All Rights Reserved 41

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 ©2001 OSGi, All Rights Reserved 42

Current Service APIs

• Logging – Standard way for a bundle to provide progress information with access to log information • HTTP server, Servlet Engine – Allows registration of servlets, access to resources • Device Access – Interface to hardware – Generic model for matching devices to drivers ©2001 OSGi, All Rights Reserved 43

LOG Service

• org.osgi.service.log

• This service enables the specification, recording, and receiving of messages (e.g., messages related to specific events and errors) ©2001 OSGi, All Rights Reserved 44

HTTP Service

• org.osgi.service.http

• This service allows the access to resources (e.g., files, images) and server programs (Java servlets) via HTTP (either HTTP 1.0 or 1.1) ©2001 OSGi, All Rights Reserved 45

Device Access

• org.osgi.service.device

• This service specifies the way in which devices can be found (through matching) and the appropriate device drivers can be associated with the devices ©2001 OSGi, All Rights Reserved 46

Device Access

Camera IEEE 1394B Interface Network bundle register Device Bundle match Driver Locator event: register Device get TV TV Bundle get Camera event: register ©2001 OSGi, All Rights Reserved register magic Sony CCD542 47

©2001 OSGi, All Rights Reserved

Management, protocols or API?

Management System Standard protocol Residential Gateway Access Net Private protocol Local Ethernet Local Powernet = Bundle

48

©2001 OSGi, All Rights Reserved 49