“OSGi at the UK’s Biggest Science Lab.”

Slides:



Advertisements
Similar presentations
NetServ Dynamic in-network service deployment Henning Schulzrinne (Columbia University) Srinivasan Seetharaman (Georgia Tech) Volker Hilt (Bell Labs)
Advertisements

OpusCollege and Spring-DM. OSGi based web applications – three strategies OSGi container embedded in another container: OSGi Bridge Server (OBS)  e.g.
COM vs. CORBA.
Introduction Main technologies: core written in Java embedded Jython interpreter code managed using the Eclipse plugin framework client program uses Eclipse.
Why OSGi matters for Enterprise Java Infrastructures
1 Principles of Reliable Distributed Systems Tutorial 12: Frangipani Spring 2009 Alex Shraer.
Web Services Andrea Miller Ryan Armstrong Alex. Web services are an emerging technology that offer a solution for providing a common collaborative architecture.
SE 464: Industrial Information systems Systems Engineering Department Industrial Information System LAB 02: Introduction to SAP.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Agenda Introduction to the Guidewire platform
OSGi.
INTRODUCING SCA Byungwook Cho Nov.2007.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
STAC usage at Diamond Richard Fearn Software Engineer.
Opus College - overview. OpusCollege - background First project: ICT Capacity Building Mozambican Higher Education Institutions Partners: RUG Groningen,
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Web Services based e-Commerce System Sandy Liu Jodrey School of Computer Science Acadia University July, 2002.
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.
Webservice versioning using osgi Allard Buijze, Jettro Coenradie.
MACCE and Real-Time Schedulers Steve Roberts EEL 6897.
Copyright © IBM Corp., All rights reserved. From SWT to RCP: Experiences implementing RSSOwl 2.0 with RCP Benjamin Pasero.
Processes Introduction to Operating Systems: Module 3.
1 Choices “Our object-oriented system architecture embodies the notion of customizing operating systems to tailor them to support particular hardware configuration.
Real Time Programming Language. Intro A programming language represents the nexus of design and structure. But misuse of the programming language can.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
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.
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.
High Performance Flexible DSP Infrastructure Based on MPI and VSIPL 7th Annual Workshop on High Performance Embedded Computing MIT Lincoln Laboratory
Event Management. EMU Graham Heyes April Overview Background Requirements Solution Status.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
Event Sources and Realtime Actions
Mobile Device Development
Introduction to Oracle Forms Developer and Oracle Forms Services
WebSphere Diego Leone.
Dispatcher Phoenix Is…
Operating System Structures
Platform as a Service (PaaS)
SparkBWA: Speeding Up the Alignment of High-Throughput DNA Sequencing Data - Aditi Thuse.
N-Tier Architecture.
Sections Basic Concepts of Programming
Introduction to Oracle Forms Developer and Oracle Forms Services
Object-Oriented Analysis and Design
LOCO Extract – Transform - Load
Overall Architecture and Component Model
Introduction to Oracle Forms Developer and Oracle Forms Services
CORBA Alegria Baquero.
AMGA Web Interface Salvatore Scifo INFN sez. Catania
Wireless Instant Messaging Using J2ME
Exam : Implementing Microsoft Azure Infrastructure Solutions
Introduction to J2EE Architecture
Section 11.1 Class Variables and Methods
CMPE419 Mobile Application Development
GeoScience and µServices
OOP vs Structured Programming
CORBA Alegria Baquero.
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
AMGA Web Interface Vincenzo Milazzo
Objectives In this lesson you will learn about: Need for servlets
Analysis models and design models
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
Hardware-less Testing for RAS Software
Developing and testing enterprise Java applications
Introducing Java.
Afonso Mukai Scientific Software Engineer
New Tools In Education Minjun Wang
CMPE419 Mobile Application Development
Java phoneME CDC AMS July, 15, 2008 by Wooram Noh.
Mark Quirk Head of Technology Developer & Platform Group
ONAP Architecture Principle Review
Presentation transcript:

“OSGi at the UK’s Biggest Science Lab.” goo.gl/1f5HnD

DLS

Movie 1 Electron Journey DLS

Movie 2 – experiment DLS

MX Robots Movie 3 – Robot Arm DLS

Software Generic Data Acquisition or GDA Java Server -> 3 million lines -> static classpath Thick Java Client (written in RCP) Legacy System - inherited from a previous synchrotron ‘Run from Source’ Culture Software

The Creeping Cost of Support Cost Support of Acquisition >> Proportion of Development << Different APIs that do similar things Overly Interconnected Projects and Classes Improper Encapsulation Poor Unit Tests Development Coordination = Hard Software

The Mapping Project nD scanning Move Sample – Not Machine Scan Path Analysis – Run fast stuff New file format Multiple languages and layers Online Analysis Required Examples VMXi – Automated, versatile and crystal friendly Spectroscopy of 2D samples Software

VMXi – Early Prototype Work 2015/16 Movie 4 - VMXi

Mapping – Early Prototype Movie 5 – Mapping

Software

OSGi OSGi

Real world problem #1: Integration We made a single product! OSGi = Big Footprint, Small Running Memory Run from source hard! Investigated and deployed JRebel OSGi

Real world problem #2: Multiple configurations Single Product : Multiple Configurations Wanted to keep Spring Spring makes objects after OSGi Services OSGi breaks up classloader - Spring No Like Solution? Eclipse Buddy which is an Equinox Feature OSGi

Real world problem #3: Migrating to bundles Modularity! >> No more ‘core’ bundles which glue things Bundles which use things and those which provide things org.eclipse.scanning.server has TWO bundle dependencies Create API bundles with NO dependencies OSGi Services -> implement interfaces Gradual Migration Practical Solution -> Needs Developer Participation OSGi

Real world problem #4: The static, non-modular algorithm GDA8 Scanning System Many ‘static’ parts Non-modular Unable to work with new NeXus API Slow in some cases Not Deprecated in 9 GDA9 / Solstice Scan Service based, Modular Instance !Singletons Annotations !Interfaces NeXus API++ Fast and Scalable Executor Based Less Features Malcolm OSGi

Real world problem #5: Cardinality In OSGi you have the following options for a cardinality of a service: 0..1 (meaning zero or one service instances) 0..n (meaning zero to n) 1..1 (one and if it is not available, things start to fail) 1..n (one or more) 1..1 and static can block errors injecting services in funny ways OSGi

Real world problem #6: Declarative services Do not ignore OSGi messages Some serious Some ignorable!! -Dequinox.ds.print=true 0..1 cardinality for a service not yet available - Not an error !ENTRY org.eclipse.equinox.ds 1 0 2016-11-08 10:25:48.544 !MESSAGE Could not bind a reference of component Scanning Servlet Services. OSGi

Real world problem #7: The hidden cost of TDD Modularity -> Easy and Complete Unit Testing Services easy parts to Mock out Unit Test Examples Scannable Service Runnable Device (Detectors!) Service End to end NeXus scans 1000’s new tests = BUILD PROBLEM Modular Product + Github + Travis CI = Sub-builds, No Waiting OSGi

Software Front-End Mapping Movie 6 – Front End

Conclusions OSGi made Acquisition Server Modular Service Oriented in Architecture Fast Startup Industry Standard Mature, Online Help Great Easy to do Opportunity to increase tests New Features Added! (Scanning + NeXus + UI)