430 likes | 537 Views
D igital management of the railway sector through OSGi. The TRACK project. What is IBBT?. IBBT introduction. IBBT Research. IBBT: Entrepreneurship. IBBT: Develop & Test. Information on an OSGi based product solution. TRACK framework. Problem description.
E N D
Digital management of the railway sector through OSGi The TRACK project
What is IBBT? IBBT introduction
Information on an OSGi based product solution TRACK framework
Problem description Train A from depot back to riding Train A into depot for update Depot Update train A with software X Transfer dependent libraries
Problem description Train B from depot back to riding Train B into depot for update Depot Transfer dependent libraries Update train B with software X Library already present, blue library missing Change upload files, update train B
Problem description Custom IO handler Use 3rd party IO components Custom IO handler initiates connection over technology of choice Need diagnostics information from train… Custom IO handler Diagnostics Application
Problem description • For every other application: • custom IO handlers • preferred connection type
Solution – goal • Functional requirements • No wasted time spent in depot for updates • Immediate updates • Software version management • Extra requirements (research) • Modular system • Remotely accessible • Solve unreliable connections
4/07/2012 14
Overview • Technical requirements • Why OSGi? • TRACK overview • Feature highlights • Challenges • Way forward
Technical requirements Two types of customers Railway stakeholders… … but also … TRACK … 3rd party developers
Technical requirements Very dynamic environments: unreliable connections
Technical requirements Inter-node communication Other research group: network aspects Remote communication (inter-node)
Technical requirements Legacy application support: existing (native) applications
Why OSGi? • Only Java runtime • Modular by design • Standard JAVA language • Dynamic • Platform independent !
TRACK overview: node layout TRACK Container
TRACK overview: framework layout RST Infrastructure Central System Fleet Node modules Node modules System + Op. services TRACK Platform TRACK Platform TRACK Platform Reliable link WiFi/GPRS/3G Node modules TRACK Platform 3rd party providers
Feature highlights • Fleet management • Content management • Module deployment • Monitoring • Remote service discovery • Job scheduling • File transfer: BitTorrent • Vaadin UI • Legacy application support • Communication
Fleet management • DeviceProfile • Definition of device type/family • ID + propertiesdefinition • CaninheritfromotherDeviceProfiles inheritsfrom
Fleet management • TrackNode • Represents a node in the framework • Name • Host (IP or ID) • Is assigned a DeviceProfile
Fleet management • Querying • GENERIC/train (&(operationArea=ParisNord)(buildYear>1999)) All devicesadhering to thisprofileor subtypes… …which meet these conditions.
Content management • TRACK module Application binaries or content Track Module Meta-data Packaged as JAR/ZIP
Content management Versioned Item versions meta-data Track Module Track Module Track Module Version Version Version meta-data meta-data meta-data
Module deployment Central System Content Manager Global Update Mgr. update request INIT -> DEPLOYING Fleet Manager File Sharing Event System
Target Node Local Update Mgr. Application Manager file transfer Download Manager Update Handler Event System
Module deployment Central System Content Manager Global Update Mgr. Fleet Manager File Sharing Event System
Module updates Central System Target Node DiffGenerator Global Update Mgr. Local Update Mgr. DiffBuilder version info? Track Module 1.2 generateDiff 1.2->1.4 Δ • Archive containing: • changed/new files • build script buildModule
Remote service discovery Custom solution for OSGi 4.1 (no RSA available): R-OSGi Node B Node A Producer Consumer Remoting is transparent TRACK framewrok TRACK framework Generate proxy Expose service Register service R-OSGi R-OSGi SLP SLP Discovery: advertise R-OSGi specific communication
Job scheduling • Updates are scheduled as jobs • Concurrent update jobs • Scheduler allows • Prioritization of individual jobs • Pauze / resume of individual jobs
File transfer: BitTorrent • Downloads are divided in small parts • Clients download small parts in random order • Client stitches everything together • Unreliability solved: • In case of failure, only small piece lost • Immediately start downloading piece from other source
Vaadin UI • Webpage UI done with vaadin • Modularity of OSGi bundles visible in UI • Easily integrated with the webserver (Jetty) hosted in OSGi • All fleet and content interfaces done in Vaadin
Legacy application support Installing, uninstalling, updating … Custom update handler updatehandler Track Module TRACK container External System install Update Mechanism Controller Extension possible uninstall TRACK update handler
Legacy application support Life cycle management: start, stop … OSGi TRACK Container External legacy application MyApplication EntryPoint bridge JVM JNI OS Implement Application interface (TRACK Activator) through JNI (Java Native Interface)
Challenges • Remote communication R-OSGi • (Common) external libraries in OSGi context • Simple: wrap as OSGi bundle • Nasty: fix class loading issues (class loaders…) • Last resort: * DynamicImport-Package *
Way forward (RAILS) • Decentralizing the current framework • Allows for more robustness, server may fail, others can resolve issues.=> No single point of failure • Replace R-OSGi with Remote Service Admin • Own implementation: focus on open standards=> Better support for 3rd party • Discovery: JGroups • Service communication: HTTP/JSON
Thank you for your attention Questions?