SlideShare une entreprise Scribd logo
1  sur  20
Eine Architektur zur dynamischen Rekonfiguration
   eingebetteter signalverarbeitender Systeme


                Dipl.-Inf. Reinhard Meyer



                        22.07.10
Motivation
●    Eingebettete Systeme:
      ●    Anwendung im sicherheitsrelevanten
           Umfeld Automotive, Luft- und Raumfahrt,
           Medizin, ...
      ●    Fortschreitende Miniaturisierung
      ●    Zunahme der Leistungsfähigkeit der
           Hardware
      ●    Implementierung von Funktionalität mit
           steigender Komplexität in Software
      ●    Verwendung von Hochsprachen zur
           Implementierung
                                                     Historie softwarebasierter
      ●    Anpassung des                             Funktionen im Automobil
           Softwareentwicklungsprozesses             [IMMOS04]



22.07.10                                                                          2
Übersicht
 ●   Softwareentwicklung für eingebettete Systeme
       ●   Anforderungen an Entwicklung und Betrieb
       ●   Maßnahmen zur Verbesserung der Softwarequalität
       ●   Warum Java und FPGA ?
       ●   Android-Plattform
       ●   OSGI – Dynamische Rekonfiguration von Software
 ●   Modellierung von verteilten Systemen für die Signalverarbeitung
       ●   Eigenschaften von Werkzeugen der Signalverarbeitung
       ●   Modellierung von Algorithmen
 ●   Konzeptvorschlag
 ●   Zusammenfassung


22.07.10                                                                 3
Softwareentwicklung für
                                                eingebettete Systeme
●
     Anforderungen:
      ●    Entwicklung:
            –   Verteiltheit und Nebenläufigkeit: Aufgaben werden auf verschiedenen
                Plattformen parallel ausgeführt:
                  ●   x86, PPC, DSP, ASIC, FPGA
                  ●   Neuer Trend: Multicore
            –   Echtzeitfähigkeit und Vorhersagbarkeit: Einhaltung von Zeitschranken,
                deterministisches Verhalten
            –   Weitere Eigenschaften: Performance, Datensicherheit, Fehlertoleranz
            –   Variantenmanagement
      ●    Betrieb (Wartung):
            –   Änderung der Funktionalität
            –   Fehlerbeseitigung

22.07.10                                                                                4
Softwareentwicklung für
                                              eingebettete Systeme
 ●    Konzepte zur Erhöhung der                    Modelling Space

      Softwarequalität                                Platform-independent        Platform-specific
                                                            Model (PIM)             Constraints
       ●   Modellgetriebene Entwicklung
            –   Modellbildung und Simulation                    Automated Transformation

            –   Automatisierte Transformation
            –   Plattform-Codegenerierung          Platform 1                   Platform N

       ●   Verwendung einer interpretierten          Platform-specific            Platform-specific
           Sprache                                    Model (PSM)                  Model (PSM)

            –   Plattformunabhängig
                                                          Code            ...          Code
            –   Verlagerung der sicherheits-            Generation                   Generation

                relevanten Konzepte vom
                Programmcode auf den Interpreter    Platform-specific            Platform-specific
                                                          Code                         Code



                                                            Modellgetriebene Entwicklung
22.07.10                                                                                              5
Softwareentwicklung für
                                            eingebettete Systeme
 ●   Charakterisierung
      ●    Modellbasierte Entwicklung
              + Höhere Codequalität durch automatische Codegenerierung
              + Änderbarkeit der Funktionalität im Modell (virtuell)
              + Einheitliches Datenmodell, vereinfachtes Variantenmanagement
              – Erhöhter Verwaltungsaufwand bei heterogenen, komplexen Strukturen
              – Informelle Auf- und Nachbereitung der Daten
      ●    Interpretierte Sprache
              + Zuverlässigkeit: Automatische Speicherverwaltung
              + Sicherheit: Mechanismen vor der Programmausführung
              – Deterministisches Verhalten und Zugriff auf Systemressourcen




22.07.10                                                                            6
Softwareentwicklung für
                                         eingebettete Systeme
 ●    Java als Sprache der Wahl:
       ●   Entstehung: Green Hill Projekt, Sun Microsystems,
           1992: Touchscreen-basiertes Steuergerät
           (StarSeven)
       ●   Konzentration auf den Desktop- und Servermarkt,
           aktuelle Version ist Java 6
       ●   Laufzeitumgebung: Virtuelle Maschine (VM) +
           Laufzeitbibliothek mit API, Programmcode wird im
           Allgemeinen interpretiert
       ●   Plattformunabhängigkeit: Bytecode ist universell,
           für eine Architektur gibt es die jeweils passende
           VM, inzwischen Vielzahl an verschiedenen VM         Sun Trademark Logo
                                                               für Java
           verfügbar


22.07.10                                                                            7
Softwareentwicklung für
                                          eingebettete Systeme
 ●    Warum Java ?
       ●   Vorurteil: „Java ist langsam, speicherintensiv
           und nicht echtzeitfähig“
            –   Kompilation von Code statt Interpretation:
                Hotspot-Compiler, AOT-Compiler mit Early-
                Binding ermöglichen beschleunigtes
                Abarbeiten von Programmen
            –   Garbage Collection: Speicherbereinigung
                als niedrig priorisierter Thread
            –   Verwendung einer reduzierten
                Laufzeitbibliothek
            –   2000: Realtime Specification for Java        SciMark 2.0 Java
                (RTSJ)                                       Benchmark Suite




22.07.10                                                                        8
Softwareentwicklung für
                                          eingebettete Systeme
 ●    Android Plattform
       ●   Softwarestack der Open Handset
           Alliance für mobile Geräte
       ●   Betriebssystem, Middleware und
           elementare Anwendungen
           zusammengefasst in einem
           Framework
       ●   Dalvik VM mit eigenem Bytecode
           (dex) zur Ausführung von
           Anwendungen, java-basiert
       ●   Linux-Kernel und native
           Codebibliotheken für zeitkritische
           Anwendungen                           Android Platform,
                                                 Quelle: http://developer.android.com



22.07.10                                                                                9
Softwareentwicklung für
                                          eingebettete Systeme
 ●    OSGI
       ●   Standard zur dynamischen
           Rekonfiguration von Software
       ●   Modularisierung von Anwendungen
           und Dienste (Bundles) in einem
           Komponentenmodell
       ●   Austausch von Code zur Laufzeit
       ●   Hardware- und Sprachunabhängig
       ●   Implementiert für Java, .Net geplant
       ●   Anwendungen im Automotive-Bereich
           (BMW), Desktop-Bereich (Eclipse),
           Heimautomatisierung                    OSGI Architecture
                                                  Quelle: http://en.wikipedia.org/wiki/OSGi



22.07.10                                                                                      10
Softwareentwicklung für
                                         eingebetteter Systeme
 ●    Warum Java i.V. mit FPGA ?
       ●   Vorteile von Java bei der
           Softwareentwicklung
       ●   Einheitliches HW/SW-Designmodell
       ●   FPGA: Erhöhung der Rechenleistung
           durch Ausnutzen der Parallelisierung
            –   Bsp.: Damenproblem (diskrete
                Optimierung)
                  ●   NQueens@home: 25-Damen-
                      Problem – 260 PC in 9 Monaten
                  ●   FPGA-Lösung: 26-Damen-
                      Problem – 18 FPGA in 6 Monaten
                [Preußer09]



22.07.10                                                      11
Softwareentwicklung für
                                         eingebettete Systeme
 ●    Warum Java i.V. mit FPGA
       ●   JBits SDK
            –   Bitstream-API für Xilinx FPGA
            –   Erzeugung und dynamische
                Rekonfiguration von Schaltkreisen
                über das XHWIF
       ●   JHDL
            –   Hardware-Beschreibungssprache
            –   Ziel: Konsistenz von
                Objektdatenflüssen SW/HW

                                                    Quelle: JBits




22.07.10                                                            12
Werkzeuge der Signalverarbeitung

 ●    Werkzeugeigenschaften
       ●   Homogenität:
            –   Überschaubare Anzahl an verschiedenen
                Werkzeugarten (Algorithmen)
            –   Hoher Grad an mathematischer Strukturierung
       ●   Optimierung:
            –   Manuelles Tuning (plattformabhängig)
            –   Auto-Tuning: Computer optimiert Algorithmen
       ●   Verteiltheit:
                                                              The Mathworks
            –   Algorithmen für PC, DSP, ASIC und FPGA        Matlab / Simulink




22.07.10                                                                          13
Werkzeuge der Signalverarbeitung

 ●    ImageJ
       ●   Java, Open-Source, lebendige
           User-Community
       ●   Flexible, erweiterbare Architektur:
            –   Erstellung benutzerdefinierter
                Macros und Plug-Ins
            –   JavaScript-Prozessor
            –   Multi-threading-fähig
            –   Server-Remote-Modus
       ●   Verarbeitung von Gleitkomma-
           Bildformaten (Astronomie, Medizin)
                                                 ImageJ Toolsuite
       ●   Umfangreiche
           Bildmanipulationsmöglichkeiten
22.07.10                                                            14
Modellierung von Algorithmen in der
                                    Signalverarbeitung
 ●   SPIRAL
      ●    Automatische Codegenerierung für
           schnelle Algorithmen in der
           Signalverarbeitung
      ●    Heuristische Suchverfahren für
           den optimalen Algorithmus
           hinsichtlich der Laufzeit auf einer
           PC-Architektur
      ●    Beschreibung der Algorithmen
           (math. Matrix-Faktorisierung)
           mittels einer Signal Processing
           Language (SPL)
      ●    Implementation der Algorithmen in
           C/FORTRAN

                                                 Architektur von SPIRAL [Püsch05]


22.07.10                                                                            15
Modellierung von Algorithmen in der
                                    Signalverarbeitung
 ●   freeSP
      ●    Ganzheitlicher Ansatz zur
           Modellierung von verteilten
           Systemen
      ●    Deskriptive, plattformunabhängige
           Beschreibung des Systems (XML)
      ●    Zerlegung des Gesamtsystems
           und Zuordnung zu einzelnen
           Prozessen
      ●    Implementierung der Algorithmen
           aus vorgehaltenen Bibliotheken
      ●    Modellierung und Simulation von
           Nebenläufigkeit mittels Petri-
           Netzen

                                               FreeSP – Grobstruktur [Weiss07]


22.07.10                                                                         16
Projektvorschlag
 ●   Konzept
      ●    Verteiltes Rechnen auf eingebetteten signalverarbeitenden Systemen
      ●    Workflow
            1. Modellierung eines signalverarbeitenden Systems
            2. Simulation des Modells
            3. Partitionierung in Hard- und Software
            4. Transformation auf die Zielplattform
      ●    Modelltransformationen
            –   Erzeugen von Java-Programmcode zur Ausführung auf dem PPC
            –   Übersetzung von parallelisierbaren Teilen der Rechenaufgabe in
                programmierbare Logik auf einem FPGA


22.07.10                                                                         17
Projektvorschlag

 ●   Plattform:
       ●   Modellierung:
           Standard-PC, IDE (Eclipse)
       ●   Ausführung:
           Virtex-II-FPGA mit Dual-
           Core-PPC
            –   (Echtzeit-)Betriebssystem
            –   Java VM – eingebettete
                Laufzeitumgebung
            –   RTR Soft- und Hardware
            –   Onboard-System zur
                Bildverarbeitung
                                            Architektur für FPGA (Ausführung, linke Seite) und PC
                                            (Modellierung, rechte Seite)


22.07.10                                                                                            18
Zusammenfassung

 ●    Signalverarbeitende Systeme
       ●   Neue Herausforderung an die Softwareentwicklung in Bezug auf
            –   Verteiltheit und Nebenläufigkeit
            –   Verlässlichkeit (Verfügbarkeit, Sicherheit, Wartbarkeit)
            –   Echtzeitfähigkeit und deterministisches Verhalten
            –   Variantenmanagement
       ●   Modellbasierte Entwicklung und interpretierte Sprachen als
           Designansatz
       ●   Implementierung dieses Ansatzes anhand einer Bildverarbeitungslösung
       ●   Quantifizierung des Gesamtsystems hinsichtlich Wartbarkeit und
           Performance



22.07.10                                                                     19
Quellen
●    [IMMOS04] T. Klein, M. Conrad, I. Fey, M. Grochtmann: Modellbasierte
     Entwicklung eingebetteter Fahrzeugsoftware bei DaimlerChrysler, Proc.
     Modelling LNI, 2004.
●    [JBits] S. Guccione et. Al.: Jbits – A Java Interface for Reconfigurable
     Computing, Xilinx Inc.
●    [Püsch05] M. Püschel et. Al.: SPIRAL: „Code Generation for DSP
     Transforms“, Proc. IEEE special issue on „Program Generation,
     Optimization, and Adaptation'', 2005.
●    [Preußer09] T. Preußer et. Al.: Putting Queens in Carry-Chains, In: 3rd
     HiPEAC Workshop on Reconfigurable Computing, Paphos, Cyprus, 2009.
●    [Weiss05] A. Weiss: „Deklarative Beschreibung verteilter
     signalverarbeitender Systeme“, Linux Automation Konferenz, 2005.




22.07.10                                                                        20

Contenu connexe

En vedette

Bonos prelaunch - pdf
Bonos prelaunch - pdfBonos prelaunch - pdf
Bonos prelaunch - pdfunetenet
 
Urban Art Workshop bs soultiger
Urban Art Workshop bs soultigerUrban Art Workshop bs soultiger
Urban Art Workshop bs soultigerjapesch
 
Jederzeit wieder
Jederzeit wiederJederzeit wieder
Jederzeit wiederbjwowl
 
Transverales ciudadania
Transverales  ciudadaniaTransverales  ciudadania
Transverales ciudadaniamilena1016
 
Google Text Und Tabellen
Google Text Und TabellenGoogle Text Und Tabellen
Google Text Und Tabellenharaldhaider
 
Transversales pescc
Transversales  pesccTransversales  pescc
Transversales pesccmilena1016
 
Trabajo practico 5
Trabajo practico 5Trabajo practico 5
Trabajo practico 5Nico Calleri
 
Social media day La Cosa Cine
Social media day  La Cosa CineSocial media day  La Cosa Cine
Social media day La Cosa CineKarina Zilli
 
Minipraease barcamp.co Startup Weekend
Minipraease barcamp.co Startup WeekendMinipraease barcamp.co Startup Weekend
Minipraease barcamp.co Startup WeekendSteffen Peschel
 
Presentación institucional depext
Presentación institucional   depextPresentación institucional   depext
Presentación institucional depextDEPEXT
 
El sistema solar [recuperado]
El sistema solar [recuperado]El sistema solar [recuperado]
El sistema solar [recuperado]rafael_zurdoo
 
SESEC - Vakuum und Reinigung
SESEC - Vakuum und ReinigungSESEC - Vakuum und Reinigung
SESEC - Vakuum und ReinigungDITF Denkendorf
 

En vedette (20)

Bonos prelaunch - pdf
Bonos prelaunch - pdfBonos prelaunch - pdf
Bonos prelaunch - pdf
 
Urban Art Workshop bs soultiger
Urban Art Workshop bs soultigerUrban Art Workshop bs soultiger
Urban Art Workshop bs soultiger
 
Jederzeit wieder
Jederzeit wiederJederzeit wieder
Jederzeit wieder
 
Transverales ciudadania
Transverales  ciudadaniaTransverales  ciudadania
Transverales ciudadania
 
Exoneraciones
ExoneracionesExoneraciones
Exoneraciones
 
Google Text Und Tabellen
Google Text Und TabellenGoogle Text Und Tabellen
Google Text Und Tabellen
 
Brussels
BrusselsBrussels
Brussels
 
Power Point Egipte
Power Point EgiptePower Point Egipte
Power Point Egipte
 
Transversales pescc
Transversales  pesccTransversales  pescc
Transversales pescc
 
Trabajo practico 5
Trabajo practico 5Trabajo practico 5
Trabajo practico 5
 
Social media day La Cosa Cine
Social media day  La Cosa CineSocial media day  La Cosa Cine
Social media day La Cosa Cine
 
Minipraease barcamp.co Startup Weekend
Minipraease barcamp.co Startup WeekendMinipraease barcamp.co Startup Weekend
Minipraease barcamp.co Startup Weekend
 
Presentación institucional depext
Presentación institucional   depextPresentación institucional   depext
Presentación institucional depext
 
Educacion virtual
Educacion virtualEducacion virtual
Educacion virtual
 
Energia renovable
Energia  renovableEnergia  renovable
Energia renovable
 
SWG
SWGSWG
SWG
 
El sistema solar [recuperado]
El sistema solar [recuperado]El sistema solar [recuperado]
El sistema solar [recuperado]
 
SESEC - Vakuum und Reinigung
SESEC - Vakuum und ReinigungSESEC - Vakuum und Reinigung
SESEC - Vakuum und Reinigung
 
Tarea 2
Tarea 2Tarea 2
Tarea 2
 
Modelos administrativos
Modelos administrativosModelos administrativos
Modelos administrativos
 

Similaire à Java für eingebettete Systeme

Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeNico Orschel
 
Portale 2.0 mit Liferay
Portale 2.0 mit LiferayPortale 2.0 mit Liferay
Portale 2.0 mit Liferayinovex GmbH
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudAarno Aukia
 
DACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDNUG e.V.
 
Low-Code- und No-Code-Apps im PLM: Einordnung, Nutzen, Risiken, Chancen
Low-Code- und No-Code-Apps im PLM: Einordnung, Nutzen, Risiken, ChancenLow-Code- und No-Code-Apps im PLM: Einordnung, Nutzen, Risiken, Chancen
Low-Code- und No-Code-Apps im PLM: Einordnung, Nutzen, Risiken, ChancenIntelliact AG
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
Implementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBRImplementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBRAlexander Hundt
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices
".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices
".NET und jetzt!" C# in 21 Tagen oder doch besser Best PracticesGFU Cyrus AG
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Gregor Biswanger
 
Compliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-AchtCompliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-AchtBATbern
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web ToolkitTorben Brodt
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzKai Donato
 

Similaire à Java für eingebettete Systeme (20)

Testautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für FortgeschrittendeTestautomatisierung mit CodedUI für Fortgeschrittende
Testautomatisierung mit CodedUI für Fortgeschrittende
 
Portale 2.0 mit Liferay
Portale 2.0 mit LiferayPortale 2.0 mit Liferay
Portale 2.0 mit Liferay
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
 
imatics FormEngine
imatics FormEngineimatics FormEngine
imatics FormEngine
 
DACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdfDACHNUG50 Volt MX & AppScan_20230615.pdf
DACHNUG50 Volt MX & AppScan_20230615.pdf
 
Low-Code- und No-Code-Apps im PLM: Einordnung, Nutzen, Risiken, Chancen
Low-Code- und No-Code-Apps im PLM: Einordnung, Nutzen, Risiken, ChancenLow-Code- und No-Code-Apps im PLM: Einordnung, Nutzen, Risiken, Chancen
Low-Code- und No-Code-Apps im PLM: Einordnung, Nutzen, Risiken, Chancen
 
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Implementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBRImplementierung der Knowledge Engineering Workbench in myCBR
Implementierung der Knowledge Engineering Workbench in myCBR
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Whitecoast lcty12 x_pages
Whitecoast lcty12 x_pagesWhitecoast lcty12 x_pages
Whitecoast lcty12 x_pages
 
.NET und jetzt!
.NET und jetzt!.NET und jetzt!
.NET und jetzt!
 
GWT
GWTGWT
GWT
 
".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices
".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices
".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices
 
.NET Gadgeteer
.NET Gadgeteer.NET Gadgeteer
.NET Gadgeteer
 
Global de
Global deGlobal de
Global de
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
 
Compliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-AchtCompliance und Governance in der DevOps-Acht
Compliance und Governance in der DevOps-Acht
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
What is new in Citrix xen App 2
What is new in Citrix xen App 2What is new in Citrix xen App 2
What is new in Citrix xen App 2
 
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
 

Java für eingebettete Systeme

  • 1. Eine Architektur zur dynamischen Rekonfiguration eingebetteter signalverarbeitender Systeme Dipl.-Inf. Reinhard Meyer 22.07.10
  • 2. Motivation ● Eingebettete Systeme: ● Anwendung im sicherheitsrelevanten Umfeld Automotive, Luft- und Raumfahrt, Medizin, ... ● Fortschreitende Miniaturisierung ● Zunahme der Leistungsfähigkeit der Hardware ● Implementierung von Funktionalität mit steigender Komplexität in Software ● Verwendung von Hochsprachen zur Implementierung Historie softwarebasierter ● Anpassung des Funktionen im Automobil Softwareentwicklungsprozesses [IMMOS04] 22.07.10 2
  • 3. Übersicht ● Softwareentwicklung für eingebettete Systeme ● Anforderungen an Entwicklung und Betrieb ● Maßnahmen zur Verbesserung der Softwarequalität ● Warum Java und FPGA ? ● Android-Plattform ● OSGI – Dynamische Rekonfiguration von Software ● Modellierung von verteilten Systemen für die Signalverarbeitung ● Eigenschaften von Werkzeugen der Signalverarbeitung ● Modellierung von Algorithmen ● Konzeptvorschlag ● Zusammenfassung 22.07.10 3
  • 4. Softwareentwicklung für eingebettete Systeme ● Anforderungen: ● Entwicklung: – Verteiltheit und Nebenläufigkeit: Aufgaben werden auf verschiedenen Plattformen parallel ausgeführt: ● x86, PPC, DSP, ASIC, FPGA ● Neuer Trend: Multicore – Echtzeitfähigkeit und Vorhersagbarkeit: Einhaltung von Zeitschranken, deterministisches Verhalten – Weitere Eigenschaften: Performance, Datensicherheit, Fehlertoleranz – Variantenmanagement ● Betrieb (Wartung): – Änderung der Funktionalität – Fehlerbeseitigung 22.07.10 4
  • 5. Softwareentwicklung für eingebettete Systeme ● Konzepte zur Erhöhung der Modelling Space Softwarequalität Platform-independent Platform-specific Model (PIM) Constraints ● Modellgetriebene Entwicklung – Modellbildung und Simulation Automated Transformation – Automatisierte Transformation – Plattform-Codegenerierung Platform 1 Platform N ● Verwendung einer interpretierten Platform-specific Platform-specific Sprache Model (PSM) Model (PSM) – Plattformunabhängig Code ... Code – Verlagerung der sicherheits- Generation Generation relevanten Konzepte vom Programmcode auf den Interpreter Platform-specific Platform-specific Code Code Modellgetriebene Entwicklung 22.07.10 5
  • 6. Softwareentwicklung für eingebettete Systeme ● Charakterisierung ● Modellbasierte Entwicklung + Höhere Codequalität durch automatische Codegenerierung + Änderbarkeit der Funktionalität im Modell (virtuell) + Einheitliches Datenmodell, vereinfachtes Variantenmanagement – Erhöhter Verwaltungsaufwand bei heterogenen, komplexen Strukturen – Informelle Auf- und Nachbereitung der Daten ● Interpretierte Sprache + Zuverlässigkeit: Automatische Speicherverwaltung + Sicherheit: Mechanismen vor der Programmausführung – Deterministisches Verhalten und Zugriff auf Systemressourcen 22.07.10 6
  • 7. Softwareentwicklung für eingebettete Systeme ● Java als Sprache der Wahl: ● Entstehung: Green Hill Projekt, Sun Microsystems, 1992: Touchscreen-basiertes Steuergerät (StarSeven) ● Konzentration auf den Desktop- und Servermarkt, aktuelle Version ist Java 6 ● Laufzeitumgebung: Virtuelle Maschine (VM) + Laufzeitbibliothek mit API, Programmcode wird im Allgemeinen interpretiert ● Plattformunabhängigkeit: Bytecode ist universell, für eine Architektur gibt es die jeweils passende VM, inzwischen Vielzahl an verschiedenen VM Sun Trademark Logo für Java verfügbar 22.07.10 7
  • 8. Softwareentwicklung für eingebettete Systeme ● Warum Java ? ● Vorurteil: „Java ist langsam, speicherintensiv und nicht echtzeitfähig“ – Kompilation von Code statt Interpretation: Hotspot-Compiler, AOT-Compiler mit Early- Binding ermöglichen beschleunigtes Abarbeiten von Programmen – Garbage Collection: Speicherbereinigung als niedrig priorisierter Thread – Verwendung einer reduzierten Laufzeitbibliothek – 2000: Realtime Specification for Java SciMark 2.0 Java (RTSJ) Benchmark Suite 22.07.10 8
  • 9. Softwareentwicklung für eingebettete Systeme ● Android Plattform ● Softwarestack der Open Handset Alliance für mobile Geräte ● Betriebssystem, Middleware und elementare Anwendungen zusammengefasst in einem Framework ● Dalvik VM mit eigenem Bytecode (dex) zur Ausführung von Anwendungen, java-basiert ● Linux-Kernel und native Codebibliotheken für zeitkritische Anwendungen Android Platform, Quelle: http://developer.android.com 22.07.10 9
  • 10. Softwareentwicklung für eingebettete Systeme ● OSGI ● Standard zur dynamischen Rekonfiguration von Software ● Modularisierung von Anwendungen und Dienste (Bundles) in einem Komponentenmodell ● Austausch von Code zur Laufzeit ● Hardware- und Sprachunabhängig ● Implementiert für Java, .Net geplant ● Anwendungen im Automotive-Bereich (BMW), Desktop-Bereich (Eclipse), Heimautomatisierung OSGI Architecture Quelle: http://en.wikipedia.org/wiki/OSGi 22.07.10 10
  • 11. Softwareentwicklung für eingebetteter Systeme ● Warum Java i.V. mit FPGA ? ● Vorteile von Java bei der Softwareentwicklung ● Einheitliches HW/SW-Designmodell ● FPGA: Erhöhung der Rechenleistung durch Ausnutzen der Parallelisierung – Bsp.: Damenproblem (diskrete Optimierung) ● NQueens@home: 25-Damen- Problem – 260 PC in 9 Monaten ● FPGA-Lösung: 26-Damen- Problem – 18 FPGA in 6 Monaten [Preußer09] 22.07.10 11
  • 12. Softwareentwicklung für eingebettete Systeme ● Warum Java i.V. mit FPGA ● JBits SDK – Bitstream-API für Xilinx FPGA – Erzeugung und dynamische Rekonfiguration von Schaltkreisen über das XHWIF ● JHDL – Hardware-Beschreibungssprache – Ziel: Konsistenz von Objektdatenflüssen SW/HW Quelle: JBits 22.07.10 12
  • 13. Werkzeuge der Signalverarbeitung ● Werkzeugeigenschaften ● Homogenität: – Überschaubare Anzahl an verschiedenen Werkzeugarten (Algorithmen) – Hoher Grad an mathematischer Strukturierung ● Optimierung: – Manuelles Tuning (plattformabhängig) – Auto-Tuning: Computer optimiert Algorithmen ● Verteiltheit: The Mathworks – Algorithmen für PC, DSP, ASIC und FPGA Matlab / Simulink 22.07.10 13
  • 14. Werkzeuge der Signalverarbeitung ● ImageJ ● Java, Open-Source, lebendige User-Community ● Flexible, erweiterbare Architektur: – Erstellung benutzerdefinierter Macros und Plug-Ins – JavaScript-Prozessor – Multi-threading-fähig – Server-Remote-Modus ● Verarbeitung von Gleitkomma- Bildformaten (Astronomie, Medizin) ImageJ Toolsuite ● Umfangreiche Bildmanipulationsmöglichkeiten 22.07.10 14
  • 15. Modellierung von Algorithmen in der Signalverarbeitung ● SPIRAL ● Automatische Codegenerierung für schnelle Algorithmen in der Signalverarbeitung ● Heuristische Suchverfahren für den optimalen Algorithmus hinsichtlich der Laufzeit auf einer PC-Architektur ● Beschreibung der Algorithmen (math. Matrix-Faktorisierung) mittels einer Signal Processing Language (SPL) ● Implementation der Algorithmen in C/FORTRAN Architektur von SPIRAL [Püsch05] 22.07.10 15
  • 16. Modellierung von Algorithmen in der Signalverarbeitung ● freeSP ● Ganzheitlicher Ansatz zur Modellierung von verteilten Systemen ● Deskriptive, plattformunabhängige Beschreibung des Systems (XML) ● Zerlegung des Gesamtsystems und Zuordnung zu einzelnen Prozessen ● Implementierung der Algorithmen aus vorgehaltenen Bibliotheken ● Modellierung und Simulation von Nebenläufigkeit mittels Petri- Netzen FreeSP – Grobstruktur [Weiss07] 22.07.10 16
  • 17. Projektvorschlag ● Konzept ● Verteiltes Rechnen auf eingebetteten signalverarbeitenden Systemen ● Workflow 1. Modellierung eines signalverarbeitenden Systems 2. Simulation des Modells 3. Partitionierung in Hard- und Software 4. Transformation auf die Zielplattform ● Modelltransformationen – Erzeugen von Java-Programmcode zur Ausführung auf dem PPC – Übersetzung von parallelisierbaren Teilen der Rechenaufgabe in programmierbare Logik auf einem FPGA 22.07.10 17
  • 18. Projektvorschlag ● Plattform: ● Modellierung: Standard-PC, IDE (Eclipse) ● Ausführung: Virtex-II-FPGA mit Dual- Core-PPC – (Echtzeit-)Betriebssystem – Java VM – eingebettete Laufzeitumgebung – RTR Soft- und Hardware – Onboard-System zur Bildverarbeitung Architektur für FPGA (Ausführung, linke Seite) und PC (Modellierung, rechte Seite) 22.07.10 18
  • 19. Zusammenfassung ● Signalverarbeitende Systeme ● Neue Herausforderung an die Softwareentwicklung in Bezug auf – Verteiltheit und Nebenläufigkeit – Verlässlichkeit (Verfügbarkeit, Sicherheit, Wartbarkeit) – Echtzeitfähigkeit und deterministisches Verhalten – Variantenmanagement ● Modellbasierte Entwicklung und interpretierte Sprachen als Designansatz ● Implementierung dieses Ansatzes anhand einer Bildverarbeitungslösung ● Quantifizierung des Gesamtsystems hinsichtlich Wartbarkeit und Performance 22.07.10 19
  • 20. Quellen ● [IMMOS04] T. Klein, M. Conrad, I. Fey, M. Grochtmann: Modellbasierte Entwicklung eingebetteter Fahrzeugsoftware bei DaimlerChrysler, Proc. Modelling LNI, 2004. ● [JBits] S. Guccione et. Al.: Jbits – A Java Interface for Reconfigurable Computing, Xilinx Inc. ● [Püsch05] M. Püschel et. Al.: SPIRAL: „Code Generation for DSP Transforms“, Proc. IEEE special issue on „Program Generation, Optimization, and Adaptation'', 2005. ● [Preußer09] T. Preußer et. Al.: Putting Queens in Carry-Chains, In: 3rd HiPEAC Workshop on Reconfigurable Computing, Paphos, Cyprus, 2009. ● [Weiss05] A. Weiss: „Deklarative Beschreibung verteilter signalverarbeitender Systeme“, Linux Automation Konferenz, 2005. 22.07.10 20