Bernhard Dorninger Software Competence Center Hagenberg. Experiences with OSGi in industrial applications

Similar documents
Java Embedded on ARM

Modular Java Applications with Spring, dm Server and OSGi

OSGi on the Server. Martin Lippert (it-agile GmbH)

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Layers of an information system. Design strategies.

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder

ActiveVOS Technologies

Transforming Utility Grid Operations with the Internet of Things

OSGi. Building and Managing Pluggable Applications

Equinox Project Update

The vsphere 6.0 Advantages Over Hyper- V

FLUID COMPUTING. ARC FORUM, India Ricky Watts Director of Industrial Solutions, Wind River IN A SOFTWARE-DEFINED WORLD

Europe on a Disk Geodata Processing with Eclipse and OSGi. Harald Wellmann 10 Nov 2008

Using OpenSAF for carrier grade High Availability

Chapter 2 Distributed Information Systems Architecture

Introduction and Overview

FIVE BEST PRACTICES FOR ENSURING A SUCCESSFUL SQL SERVER MIGRATION

Equinox OSGi: Pervasive Componentization

Enterprise Data Architecture: Why, What and How

WebSphere Application Server, Version 5. What s New?

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements

MyCCM. A Component Based Approach for Real-Time & Critical Systems. Olivier Hachet Thales Communications

Control-M and Payment Card Industry Data Security Standard (PCI DSS)

Open Source in Automotive Infotainment

Service Execution Platform WebOTX To Support Cloud Computing

Microsoft SQL Server on Stratus ftserver Systems

Introducing SUSE Enterprise Storage 5

Virtualization. Application Application Application. MCSN - N. Tonellotto - Distributed Enabling Platforms OPERATING SYSTEM OPERATING SYSTEM

CAS 703 Software Design

Simplify IP Telephony with System i. IBM System i IP Telephony

Eclipse Tool Chain for Smart Development of High-Tech / Low Cost Embedded Systems

FlexiNet 2.1 Roundup. Richard Hayton ANSA Consortium

Powered by. These slides are powered by Open Source softwares : Debian GNU Linux Beamer LaTeX mode LaTeX Emacs. Context. Last night OSGi saved my life

Using Virtualization to Reduce Cost and Improve Manageability of J2EE Application Servers

1.2. Name(s) and address of Document Author(s)/Supplier: Sahoo: 1.3. Date of This Document: 12 July 2008

SOFTWARE ARCHITECTURE INTRODUCTION TO SOFTWARE ENGINEERING PHILIPPE LALANDA

Distributed Systems COMP 212. Lecture 18 Othon Michail

Building a government cloud Concepts and Solutions

Introduction to the Service Availability Forum

webmethods EntireX for ESB: Leveraging Platform and Application Flexibility While Optimizing Service Reuse

WHITESTEIN. Agents in a J2EE World. Technologies. Stefan Brantschen. All rights reserved.

How it can help your organisation

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4

The Impact of a Real-Time JVM on Middleware Performance: Lessons Learned from Implementing DDS on IBM s J9

ENHANCE APPLICATION SCALABILITY AND AVAILABILITY WITH NGINX PLUS AND THE DIAMANTI BARE-METAL KUBERNETES PLATFORM

Cisco Wireless Video Surveillance: Improving Operations and Security

Connected vehicle cloud

Your solution for the embedded tomorrow.

IBM Spectrum NAS. Easy-to-manage software-defined file storage for the enterprise. Overview. Highlights

Connect and Transform Your Digital Business with IBM

When (and how) to move applications from VMware to Cisco Metacloud

Genomics on Cisco Metacloud + SwiftStack

Deploying Java Platform, Standard Edition (Java SE Platform) in Today s Embedded Devices

TopLink Grid: Scaling JPA applications with Coherence

The 7 Habits of Highly Effective API and Service Management

Version Overview. Business value

2011 IBM Research Strategic Initiative: Workload Optimized Systems

2013 Cisco and/or its affiliates. All rights reserved. 1

Issues in the Development of Transactional Web Applications R. D. Johnson D. Reimer IBM Systems Journal Vol 43, No 2, 2004 Presenter: Barbara Ryder

Agenda. Why OSGi. What is OSGi. How OSGi Works. Apache projects related to OSGi Progress Software Corporation. All rights reserved.

Lambda Architecture for Batch and Real- Time Processing on AWS with Spark Streaming and Spark SQL. May 2015

Component-based Runtime Environment for Cloud Applications

Oracle WebLogic Server Multitenant:

Operation Preparation Environment (OPEN)

Open Server Architecture

ORACLE ENTERPRISE MANAGER 10g ORACLE DIAGNOSTICS PACK FOR NON-ORACLE MIDDLEWARE

Liberate your components with OSGi services

W H I T E P A P E R : O P E N. V P N C L O U D. Implementing A Secure OpenVPN Cloud

Virtustream Managed Services Drive value from technology investments through IT management solutions. Tim Calahan, Manager Managed Services

What's new in IBM Rational Build Forge Version 7.1

Continuous Testing in Eclipse. David Saff, Michael D. Ernst MIT CSAIL etx 2004, Barcelona, Spain

Website Acceleration with mod_pagespeed

IBM. Java Applications in CICS. CICS Transaction Server for z/os Version 4 Release 2 SC

COMMUNITY OR ENTERPRISE? Choosing between JBoss community projects and Red Hat JBoss Middleware

The Harmony Framework.

Chapter 1: Distributed Information Systems

Easy Access to Grid Infrastructures

JBoss Enterprise Middleware

Build and Provision: Two Sides of the Coin We Love to Hate

A Component Model and Software Architecture for CPS

2008 WebSphere System z Podcasts - Did you say Mainframe?

Spring Framework 2.5: New and Notable. Ben Alex, Principal Software Engineer, SpringSource

Requirements and Issues of V**s for Mobile Terminals

AUTOSAR proofs to be THE automotive software platform for intelligent mobility

HP SDN Document Portfolio Introduction

PI System Pervasive Data Collection

Deploying virtualisation in a production grid

Cisco UCS B460 M4 Blade Server

IBM Rational Software

Chapter 16. Layering a computing infrastructure

Oracle Data Integrator 12c: Integration and Administration

SMARTPTT PLUS FOR MOTOTRBO PREMIUM CONTROL ROOM SOLUTION FOR MOTOTRBO DIGITAL TWO-WAY RADIO SYSTEMS SOLD AND SUPPORTED BY MOTOROLA SOLUTIONS

OSGi in Action. RICHARD S. HALL KARL PAULS STUART McCULLOCH DAVID SAVAGE CREATING MODULAR APPLICATIONS IN JAVA MANNING. Greenwich (74 w. long.

A Seamless Tool Access Architecture from ESL to End Product

The p2 Provisioning Platform. Eclipse European Summit - Ludwigsburg. Oct 27-29, 2009 Henrik Lindberg, Cloudsmith Inc

The Basic Architecture of successful M2M Solutions. Field-to-Cloud Technology Building Blocks for Internet of Things Applications

Tuscany: Applying OSGi modularity after the fact

Industrial IT in a Connected Enterprise

IBM Bluemix compute capabilities IBM Corporation

Transcription:

Bernhard Dorninger Software Competence Center Hagenberg Experiences with OSGi in industrial applications

Content Who we are Requirements, Implementation and Experiences Runtime platform for computation algorithms (HA) Middleware for machine control Vehicle sensor data gateway / simulator More lessons learnt Conclusion

Who we are Institution for applied sciences outsourced R&D deliver and prepare product ideas Partner for innovative projects with new technologies Founded July 1999 by departments of the Johannes Kepler University Linz Integral part of the Softwarepark Hagenberg Form of Organisation: Non-Profit Ltd ~50 staff members Partially founded by the Austrian Government

Computation Runtime: Context Domain Steelmaking Complex computational process models (PM) PM guiding and controlling various tasks during phases of steelmaking process PM date back to the 70s Typical problems of ageing software PMs scattered over IT infrastructure Prepare Batch Various types of deployment artifacts Inconsistent interfaces Inaccurate or lacking documentation Charge Scrap Blowing Finishing Charge Hot Metal Bottom Stirring O2 Blowing / Ignition Tapping Main Blowing Phase Slag Pouring

Computation Runtime: Requirements Overall project goals Reducing efforts for PM maintenance and testing Shortening PM rollout times Reducing troubleshooting times Functional Requirements Pluggable PM components Versioning support Unified data access Legacy code integration Rule based & parallel execution Integration with modern IDE NF Requirements High availability (24x7) Fault tolerant Portability (Win, OpenVMS) Preferably based OSS Simplicity for PM maintainers (metallurgists)

Computation Runtime: Implementation Located at Level 2 (ISA-95) CR acts as container for PM, manages PM instances and their metadata executes computations based on simple rules Generic data access framework: passive or active data acquisition Uses third party process DB

Computation Runtime: Implementation / Experiences Implementation based on Eclipse Equinox from V3.2 on sufficiently stable Some issues with OpenVMS changes in OSGi core and runtime Some infrastructure bundles (CM) from Knopflerfish Pluggable PM modules with versions: out of the box Legacy code support: there, but doesn t solve JNI stability issues Parallel execution with help of Eclipse runtime jobs Execution rules: compiled Boolean expressions

Computation Runtime: Stability & HA Framework itself proved very stable PM bundles might be unstable Unstable native code crashes whole CR launch PMs containing native code in own process Automatic version fallback: last known good PM version Computations (or callbacks) may block CR and PM communication must be interruptible any time PM bundles might be greedy / evil Restricting PM code via OSGI Permission Management Works for e.g. thread or socket operations Not for excessive memory usage/turnover and CR s SPI usage

Computation Runtime: Stability & HA More measures to achieve High Availability: Full standby system may be switched within seconds Isolation of experimental PMs in their own runtime. Delayed PM bundle updates: only in certain process phases Blocking PM configuration (via OSGi CM) on operative PMs Recovery OSGi framework state additional state information saved via OSGi preferences service

Machine Control MW: Context / Req. Domain machine automation Middleware for decoupling HMI & other clients from PLCs Must support product lines Large number of different (but related) machines Vast variety of feature options for each machine Different vendors of PLCs Restricted HW resources (CPU, RAM) Dynamic updates of SW during machine operation Broad range of functions: read and influence machine state, variables, operations

Machine Control MW: Implementation CS adapters as set of bundles Machine and Movement model based on Eclipse EMF Services realized as set of bundles Varying functionality as full bundles or as fragments Binding between modules via declarative services HMI integrated into MW - directly using OSGi services Coupling remote HMIs via ECF/remote OSGi Other clients (host) coupled via WebServices (Jetty as httpd)

Machine Control MW: Experiences Declarative services: Easy to use, dependencies more comprehensible ECF/remote OSGi Alternatives examined: dosgi, RMI based proprietary solution ECF because of support in Eclipse + performance Runs well, only some minor issues: e.g. rosgi Provider silently fails upon CNFE ECF/rOSGi EMF: (Eclipse Issue 245014): problems with serializing of EMF objects: workaround via manual externalization Machine Data Sync initially with Eclipse CDO Promising functionality, but too much heap dynamics too low performance on target system dependencies bloated code base

Sensor Data Gateway (SG) SW gateway for collection, preprocessing and transmission of vehicle data Deployed into car - part of infotainment system Easy update of components during operation Remote diagnosis Configurable data filters Event detection (e.g. emergencies) Limited resources (Java CDC) self healing capabilities

SG Simulator Distributed simulation of vast amount of vehicles Flexible amount of simulator slave nodes Playback of prerecorded vehicle data Flexible data variance per vehicle session Multiple data sources per simulation scenario possible Reuses most of SG code base

SG: Architecture / Implementation Layered architecture Core bundles are common to SG and simulator Special functionality for SG and Simulator in optional bundles SG: CAN + GPS Listener, FCDFactory Sim: Remote Control (M/S), FCDReader Dynamic extensions SG: Preprocessing Classificators Sim: Value interceptors Data variance

SG: Experiences Straightforward application customization Different applications with shared core Module structure eases maintenance SW updates on running vehicle out of the box Sim M/S communication: First prototype used proprietary protocol (DRPC) switching to ECF/remoteServices in the future OSGi Execution environments proved helpful SG: Java Mobile CDC Simulator: Java 6

More lessons learnt Following best practices pays off Granularity of bundles: Encapsulate code in own bundle if can be reused in other context has to be maintained independently Separation of API interfaces and implementation bundles: Increases # bundles decouples dependent bundles: allows easy change of implementation Bundle dependencies may become very complex Increases with package level dependencies (and version matching) Impossible to handle without tool support

More lessons learnt Dynamic nature of OSGi must be taken care of Can t rely on permanent bundle/service availability Possible awkward behavior upon bundle update: e.g. Dependency graph rerouting restarts bundles. Classloading may raise confusing issues esp. combined w. reflection Declarative Services help reducing complexity DS for optional or lazily needed services exposed and needed services obvious at development time Testing Testing can easily be automated Full test bundles for (partial) integration testing Continuous Integration Bundle fragments for non public package testing

Conclusion We use OSGi mainly for headless, server-like applications OSGi applicable for industrial applications Sufficient stability (of implementation of choice) Offers everything for dynamic modifications Rather small footprint Runs in reduced environments Some constraints though Not for time critical (Hard RT) applications Cannot eliminate Java s stability risks