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
OSGi is not a middleware, but a specifications for technology. Different industries can develop their own the OSGi technology based middleware. Before we start…
The OSGi Service Platform is… –the optimal Java based application server for networked devices. It’s scope is –standard non-proprietary software component framework. –powerful model for co-existence of components in a single JVM. –flexible deployment API that controls the life-cycle of applications. –secure environment that executes applications in a sandbox. –cooperative model where applications can discover and use services. –Flexible remote management architecture. –Number of standardized, optional services: HTTP, XML, IO, etc… Introduction
Smart Phones (Nokia) –enables to extend platform features after manufacturing. –New application or API can be installed on mobile devices over air. –new business model of client middleware. Smart Home (Siemens) –Central gateway for home automation. –Drivers(interfaces) and scenarios can be updated after initial sale. Uses cases
Eclipse (IBM) –Plugins installation without restart –New version 3.1 is built upon a OSGi Service Platform Telematics (BMW) –Centralized service platform for automobile applications –Save costs by sharing platform –Dynamic updates of features. Uses cases
Software Component Management Remote Component Management Secure Execution Environment Cooperation Between Applications Simplified Deployment Dynamic Nature Key Features of the OSGi
Life-cycle management of applications –JAR packaging of bundle (software component) –Install bundle –Start/stop bundle –Update and Uninstall bundle Advantage –Not fixed functionality from factory, –But capability to manage the code afterwards to customize device Software Component Management
Remote management of application OSGi provides higher level of abstraction of protocols like... –OMA-DM ( 유무선 단말기 관리 ) –SNMP ( 네트워크 관리, 라우터나 허브에 사용 ) –CMISE ( 공동 정보 시스템의 제어 ) –CIM ( 생산 관리 ) –Telnet/ssh –Etc… Remote Component Management
1 st level, VM security –Garbage collection –Exceptions 2 nd level, Java Language –Access modifiers for software components –Java 2 code based security: Permission for resources 3 rd level, OSGi Framework –Loosely coupled bundles Secure Execution Environment
Existed application servers –MIDP(J2ME), J2EE, Avalon(Apache), PicoContainer, JMX, etc… –Closed container. –Application runs in isolation OSGi –Bundles contribute ‘code’ to others as well as ‘service’. –Allows to use other bundles like using libraries. –Service registry provided. –Even among different vendors. Cooperation Between Applications
Java program is difficult to install –VM version, configurations, class-paths, parameters… –Hart to monitor applications In OSGi, deployment process is simplified –Just using JAR –Deployment is performed hiding underlying differences. Dynamic deployment on single JVM –Doesn’t need restart of JVM Simplified Deployment