Python, Plone und Zope in der  Luft- und Raumfahrtforschung 8. DZUG-Tagung (04.-05.06.2007, PIK, Potsdam) Andreas Schreibe...
<ul><li>Das DLR </li></ul><ul><li>Deutsches Zentrum für Luft- und Raumfahrt  Raumfahrt-Agentur der Bundesrepublik Deutschl...
Zahlen zum DLR <ul><li>DLR ist die größte deutsche Forschungseinrichtung </li></ul><ul><li>5.300 Mitarbeiter arbeiten in  ...
Software-Entwicklungen in Luft- und Raumfahrt Klassifizierung <ul><li>Software  für  missionskritische  Systeme </li></ul>...
Einsatzfelder von Python <ul><li>Art der Software </li></ul><ul><ul><li>Wissenschaftliche Software und Prototypen </li></u...
Warum Python in der Luft- und Raumfahrt? Zielgruppe: Ingenieure, Physiker, Mathematiker <ul><li>Beschreibung </li></ul><ul...
Beispiele für Einsatz von Python, Plone und Zope Virtual Lab Steuerung großer Simulationen Projekt- Webseite
Virtual Lab Web-basiertes Repository für wissenschaftliche Codes <ul><li>Portal zur Bereitstellung wissenschaftlicher Soft...
Virtual Lab (2) Technologie <ul><li>Datenbanken  </li></ul><ul><ul><li>Daten: ZODB </li></ul></ul><ul><ul><li>Metadaten: M...
Virtual Lab (3) Integration von Codes <ul><li>Integration von Codes geschieht durch Spezifikation von Input und Output des...
Virtual Lab (4) Beispiel: Streuungsberechnung <ul><li>Liste verfügbarer Codes im Virtual Lab </li></ul><ul><li>Berechnung ...
Virtual Lab (5) Bsp.: Parametersatz für Streuung eines Wassertropfens
Virtual Lab (6) Bsp.: Output der Berechnung
Virtual Lab (7) Bsp.: Einfache Visualisierung der Ergebnisse
Beispiele für Einsatz von Python, Plone und Zope Steuerung großer Simulationen Virtual Lab Projekt- Webseite
Steuerung von  großen  Simulationen  Einführung <ul><li>Software wie Virtual Lab reicht für „kleine“ Simulationsanwendunge...
Komplexe Workflows Beispiele aus der Praxis <ul><li>Softwaretechnische Aufgaben: </li></ul><ul><li>Nutzung von Codes mit u...
Integrations- uns Simulationsumgebung System zur Steuerung komplexer Simulationen <ul><li>Integrations- und   Simulationsu...
Beispiel: Gekoppelte Simulation in der Luftfahrt Flugmanöverberechnung <ul><li>Interaktive Simulation eines frei fliegende...
Kopplungs-Steuerung als Python-Skript
Ergebnis der Rechnungen Strömung
Scripting in Applikationen Einbettung von Python-Interpretern <ul><li>Allgemein gilt:  Anwendungen können von Haus aus nic...
Scripting in Applikationen Abstraktion der (komplexen) Framework-Architektur Applikation Framework /  Plattform Kenntnis d...
Beispiele für Einsatz von Python, Plone und Zope Virtual Lab Steuerung großer Simulationen Projekt- Webseite
Projekt-Webseiten Nutzung von Plone als CMS <ul><li>Plone wird eingesetzt für (öffentliche) Projekt-Webseiten </li></ul><u...
Einsatz von Plone Vorteile   <ul><li>Plone basiert auf Zope, damit auf Python </li></ul><ul><ul><li>Entwicklung von Erweit...
Plone-Beispiel-Seite AeroGrid-Projektseite <ul><li>Webseite des BMBF-Projekts AeroGrid </li></ul><ul><ul><li>Grid-basierte...
Turbinensimulation in AeroGrid Simulation -> Entwurf -> Einsatz (Bilder: © DLR bzw. MTU Aero Engines)
AeroGrid-Seite Informationen mit Querverweisen <ul><li>Intensive Nutzung von Stichwörtern und Referenzen </li></ul>
Schlussbemerkungen <ul><li>Es gibt viele weitere Python-Anwendungen  </li></ul><ul><ul><li>im DLR </li></ul></ul><ul><ul><...
Ganz am Ende… Hinweise <ul><li>pyCologne:   Python User Group Köln </li></ul><ul><ul><li>Monatliche Treffen von  Python-In...
 
Nächste SlideShare
Wird geladen in …5
×

Python, Plone und Zope in der Luft- und Raumfahrtforschung

2.090 Aufrufe

Veröffentlicht am

Vortrag 8. DZUG-Tagung (04.-05.06.2007, PIK, Potsdam)

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.090
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
29
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Python, Plone und Zope in der Luft- und Raumfahrtforschung

  1. 1. Python, Plone und Zope in der Luft- und Raumfahrtforschung 8. DZUG-Tagung (04.-05.06.2007, PIK, Potsdam) Andreas Schreiber < [email_address] > Deutsches Zentrum für Luft- und Raumfahrt e.V., Köln-Porz http://www.dlr.de/sc/verteiltesysteme
  2. 2. <ul><li>Das DLR </li></ul><ul><li>Deutsches Zentrum für Luft- und Raumfahrt Raumfahrt-Agentur der Bundesrepublik Deutschland </li></ul>
  3. 3. Zahlen zum DLR <ul><li>DLR ist die größte deutsche Forschungseinrichtung </li></ul><ul><li>5.300 Mitarbeiter arbeiten in 28 Forschungsinstituten und Einrichtungen </li></ul><ul><ul><li> 9 Standorten, </li></ul></ul><ul><ul><li>7 Außenstellen. </li></ul></ul><ul><li>Kernkompetenzen des DLR liegt im Bereich Ingenieurwissenschaften </li></ul><ul><li>Mehr als 1000 DLR-Mitarbeiter entwickeln Software </li></ul><ul><li> DLR ist eines der größten Softwarehäuser Deutschlands! </li></ul> Köln - Porz  Lampoldshausen  Stuttgart  Oberpfaffenhofen Braunschweig   Göttingen Berlin- -  Adlershof  Bonn Trauen   Hamburg  Neustrelitz Weilheim  Berlin- Charlottenburg   Sankt Augustin  Darmstadt Bremen 
  4. 4. Software-Entwicklungen in Luft- und Raumfahrt Klassifizierung <ul><li>Software für missionskritische Systeme </li></ul><ul><ul><li>Embedded Software und Real-Time-Software in Satelliten, Flugzeugen, Space Station, … </li></ul></ul><ul><li>Software mit großen Userzahlen </li></ul><ul><ul><li>Internet/Intranet/Email, Webshop für Satellitendaten </li></ul></ul><ul><li>Software mit großem Anteil an der Wertschöpfungskette </li></ul><ul><ul><li>Prozessunterstützung, Datenmanagement, Modellierungs- und Simulationsumgebungen, … </li></ul></ul><ul><li>Software deren Effizienz sich unmittelbar auf die Betriebskosten auswirkt </li></ul><ul><ul><li>Numerische Simulationscodes </li></ul></ul>
  5. 5. Einsatzfelder von Python <ul><li>Art der Software </li></ul><ul><ul><li>Wissenschaftliche Software und Prototypen </li></ul></ul><ul><ul><li>Selten Einsatz in Produkten </li></ul></ul><ul><ul><li>Kein Einsatz in kritischen Systemen </li></ul></ul><ul><li>Beispiele für Einsatzfelder von Python </li></ul><ul><ul><li>Web-Anwendungen (  Plone, Zope) </li></ul></ul><ul><ul><li>Datenmanagement </li></ul></ul><ul><ul><li>Steuerung von (großen) Simulationen </li></ul></ul><ul><ul><li>Visualisierung </li></ul></ul><ul><ul><li>Skript-Schnittstellen für numerische Software </li></ul></ul><ul><ul><li>Test und Qualitätssicherung von wissenschaftlicher Software </li></ul></ul>
  6. 6. Warum Python in der Luft- und Raumfahrt? Zielgruppe: Ingenieure, Physiker, Mathematiker <ul><li>Beschreibung </li></ul><ul><ul><li>Objektorientierte vollständige Programmiersprache </li></ul></ul><ul><ul><li>Klare, einfache Syntax </li></ul></ul><ul><ul><li>Portabel, verfügbar auf allen Plattformen mit C-Compiler </li></ul></ul><ul><li>Warum ist Python geeignet für Ingenieure und industrielle Anwender? </li></ul><ul><ul><li>Sehr einfach zu lernen und zu benutzen ( = steile Lernkurve ) </li></ul></ul><ul><ul><li>Erlaubt eine schnelle Entwicklung ( = geringe Entwicklungszeit ) </li></ul></ul><ul><ul><li>Inherent great maintainability </li></ul></ul>“ Python has the cleanest, most-scientist- or engineer friendly syntax and semantics.” (Paul F. Dubois. Ten good practices in scientific programming. Comp. In Sci. Eng., Jan/Feb 1999, pp.7-11)
  7. 7. Beispiele für Einsatz von Python, Plone und Zope Virtual Lab Steuerung großer Simulationen Projekt- Webseite
  8. 8. Virtual Lab Web-basiertes Repository für wissenschaftliche Codes <ul><li>Portal zur Bereitstellung wissenschaftlicher Software </li></ul><ul><li>Einfache numerische Codes werden integriert („eingestellt“) </li></ul><ul><li>Nutzer können Eingabedateien hochladen und Rechnungen starten </li></ul><ul><li>Entwickelt vom DLR-Institut für Methodik der Fernerkundung </li></ul><ul><li>http://vl.nz.dlr.de/VL </li></ul>
  9. 9. Virtual Lab (2) Technologie <ul><li>Datenbanken </li></ul><ul><ul><li>Daten: ZODB </li></ul></ul><ul><ul><li>Metadaten: MySQL </li></ul></ul><ul><ul><li>User: OpenLDAP </li></ul></ul><ul><li>Task-Management </li></ul><ul><ul><li>OpenPBS </li></ul></ul><ul><li>Web-Schnittstelle </li></ul><ul><ul><li>ZOPE </li></ul></ul>
  10. 10. Virtual Lab (3) Integration von Codes <ul><li>Integration von Codes geschieht durch Spezifikation von Input und Output des Codes </li></ul><ul><li>Input Description Language </li></ul><ul><ul><li>Benutzt Python als Basis </li></ul></ul><ul><li>Generierung von Eingabeelementen für numerische Werte </li></ul><ul><li>Beispiel: </li></ul>ID(na= 'Lambda' , pe= '_NF and _Lambda_use' , ty= 'FloatType' , de= '0.5' , ce= 'Lambda > 0.0' , un= 'mu_m' , an= 'Input wavelength' ),
  11. 11. Virtual Lab (4) Beispiel: Streuungsberechnung <ul><li>Liste verfügbarer Codes im Virtual Lab </li></ul><ul><li>Berechnung von Streuungseigenschaften </li></ul><ul><ul><li>MIESCHKA </li></ul></ul><ul><ul><li>CYL </li></ul></ul><ul><li>Durchführung von „ virtuellen Experimenten “ </li></ul><ul><ul><li>Parameter-Eingabe </li></ul></ul><ul><ul><li>Durchführen einer Rechnung </li></ul></ul><ul><ul><li>Visualisierung der Ergebnisse </li></ul></ul><ul><ul><li>Download der Ergebnisse </li></ul></ul>
  12. 12. Virtual Lab (5) Bsp.: Parametersatz für Streuung eines Wassertropfens
  13. 13. Virtual Lab (6) Bsp.: Output der Berechnung
  14. 14. Virtual Lab (7) Bsp.: Einfache Visualisierung der Ergebnisse
  15. 15. Beispiele für Einsatz von Python, Plone und Zope Steuerung großer Simulationen Virtual Lab Projekt- Webseite
  16. 16. Steuerung von großen Simulationen Einführung <ul><li>Software wie Virtual Lab reicht für „kleine“ Simulationsanwendungen </li></ul><ul><li>Viele komplexere Probleme erfordern hochgenaue numerische Simulationen mit vielen Verarbeitungsschritten („Workflows“) </li></ul><ul><li>Oft wird multidisziplinär gekoppelt simuliert </li></ul><ul><ul><li>Strömung – Struktur – Wärme – Flugmechanik – Radarsignatur … </li></ul></ul><ul><li>Solche Rechnungen werden softwaretechnisch ständig komplexer! </li></ul>
  17. 17. Komplexe Workflows Beispiele aus der Praxis <ul><li>Softwaretechnische Aufgaben: </li></ul><ul><li>Nutzung von Codes mit umfangreichen Schnittstellen </li></ul><ul><li>Anstoßen unterschiedlichster Codes in korrekter Reihenfolge </li></ul><ul><li>Nutzung von Höchstleistungsrechnern und Clustern </li></ul><ul><li>Transferieren von Daten zwischen den Codes </li></ul><ul><li>Zusammenarbeit mit Kollegen </li></ul>Orbit Model Atmosphere Model Instrument Model Downlink Model L0 Processor L1b Processor L2 Processor L2 Processor Satellitendaten- Prozessing PCrash PCrash PCrash Script DesParO Permas PView PView PView Medina SFE Concept Nasbif Pammed Kopf positionierung DesParO GUI Parameter ASCII File mit Ergebnissen 1 2 n Struktur-Optimierung Geometry Definition Main Analysis Subroutine Structures Aerodynamics Stability & Control Propulsion Induced Drag Friction Drag Wave Drag Field Perf . Weights Wing Weight Noise Flight Perf . Fuel Volume Objective Function & Constraints Optimizer (DOT) Design Variables Balance SFC Engine Weight Engine/Aero Drag Geometry Definition Geometry Definition Main Analysis Subroutine Structures Structures Aerodynamics Stability & Control Stability & Control Propulsion Propulsion Induced Drag Friction Drag Wave Drag Field Perf . . Weights Weights Wing Weight Noise Noise Flight Perf . Flight Perf . Fuel Volume Fuel Volume Objective Function & Constraints Objective Function & Constraints Optimizer (DOT) Design Variables Balance Balance SFC Engine Weight Engine/Aero Drag Engine/Aero Drag Flugzeug-Design
  18. 18. Integrations- uns Simulationsumgebung System zur Steuerung komplexer Simulationen <ul><li>Integrations- und Simulationsumgebung „TENT“ für ingenieurwissenschaftliche Anwendungen. </li></ul><ul><li>Gesamtsoftware-System entwickelt in Java </li></ul><ul><li>Python als eingebettete Skriptsprache </li></ul><ul><ul><li>Integration von Jython </li></ul></ul><ul><li>Haupt-Anwendungsfälle von Skripten </li></ul><ul><ul><li>Integration von Applikationen („Wrapper“) </li></ul></ul><ul><ul><li>Steuerung von Simulationen </li></ul></ul><ul><ul><li>Formelauswertung </li></ul></ul>
  19. 19. Beispiel: Gekoppelte Simulation in der Luftfahrt Flugmanöverberechnung <ul><li>Interaktive Simulation eines frei fliegenden elastischen Kampfflugzeugs </li></ul><ul><li>Hochgenaue Simulation erfordert Kopplung von </li></ul><ul><ul><li>Aerodynamik (Strömung) </li></ul></ul><ul><ul><li>Flugmechanik </li></ul></ul><ul><ul><li>Aeroelastik </li></ul></ul><ul><li>Hohe Rechenzeiten </li></ul><ul><ul><li>Mehrere Wochen auf großem Cluster </li></ul></ul><ul><li>Steuerung der Kopplung als Python- Skript in der Simulations-Umgebung </li></ul><ul><li>http://www.dlr.de/as/sikma </li></ul>
  20. 20. Kopplungs-Steuerung als Python-Skript
  21. 21. Ergebnis der Rechnungen Strömung
  22. 22. Scripting in Applikationen Einbettung von Python-Interpretern <ul><li>Allgemein gilt: Anwendungen können von Haus aus nicht alles! </li></ul><ul><li>Aber Scripting erlaubt das einfache Hinzufügen fehlender Features </li></ul><ul><li>Realisierung durch Einbettung („Embedding“) von Python-Interpretern </li></ul><ul><ul><li>(C-)Python oder Jython </li></ul></ul><ul><li>Erfahrung: Nutzung von Python erhöht Akzeptanz bei Anwendern </li></ul><ul><li>Voraussetzung: Das Scripting-API muss einfach sein </li></ul>
  23. 23. Scripting in Applikationen Abstraktion der (komplexen) Framework-Architektur Applikation Framework / Plattform Kenntnis der Architektur notwendig Extension-API Versteckt Komplexität vor dem Benutzer Benutzer-Skripte Architektur- unabhängig Erweiterung
  24. 24. Beispiele für Einsatz von Python, Plone und Zope Virtual Lab Steuerung großer Simulationen Projekt- Webseite
  25. 25. Projekt-Webseiten Nutzung von Plone als CMS <ul><li>Plone wird eingesetzt für (öffentliche) Projekt-Webseiten </li></ul><ul><li>Weitere eingesetzte Web-Systeme </li></ul><ul><ul><li>Typo3: Häufig als CMS für Projektseiten verwendet </li></ul></ul><ul><ul><ul><li>z.B. D-Grid-Site (Grid Computing): http//www.d-grid.de </li></ul></ul></ul><ul><ul><ul><li>z.B. SESIS-Site (Schiffbau): http://www.sesis.de </li></ul></ul></ul><ul><ul><li>MS SharePoint Portal Server: Intranet-Anwendungen </li></ul></ul><ul><ul><li>contentXXL: DLR-Webseite ( http://www.dlr.de ) </li></ul></ul>
  26. 26. Einsatz von Plone Vorteile <ul><li>Plone basiert auf Zope, damit auf Python </li></ul><ul><ul><li>Entwicklung von Erweiterungen sind leicht möglich </li></ul></ul><ul><ul><li>Viele Ingenieure und Wissenschaftler nutzen bereits Python </li></ul></ul><ul><li>Plone bietet WebDAV-Zugang </li></ul><ul><ul><li>WebDAV wird auch für wissenschaftlich-technisches Datenmanagement verwendet </li></ul></ul><ul><li>Die Bearbeitung von Inhalten ist einfach </li></ul><ul><ul><li>Geeignet für Gelegenheitsnutzer </li></ul></ul><ul><ul><li>Erfahrung: Steilere Lernkurve als z.B. bei Typo3 </li></ul></ul>
  27. 27. Plone-Beispiel-Seite AeroGrid-Projektseite <ul><li>Webseite des BMBF-Projekts AeroGrid </li></ul><ul><ul><li>Grid-basierte Zusammenarbeit in der Luftfahrtforschung </li></ul></ul><ul><li>Information der Öffentlichkeit </li></ul><ul><li>http://www.aero-grid.de </li></ul><ul><li>Plone 2.5.2 </li></ul><ul><li>SuSE 9.2 (VMware, ¼ Blade) </li></ul><ul><ul><li>Betrieb durch T-Systems SfR </li></ul></ul><ul><li>Anbindung an ActiveDirectory/LDAP des DLR </li></ul>
  28. 28. Turbinensimulation in AeroGrid Simulation -> Entwurf -> Einsatz (Bilder: © DLR bzw. MTU Aero Engines)
  29. 29. AeroGrid-Seite Informationen mit Querverweisen <ul><li>Intensive Nutzung von Stichwörtern und Referenzen </li></ul>
  30. 30. Schlussbemerkungen <ul><li>Es gibt viele weitere Python-Anwendungen </li></ul><ul><ul><li>im DLR </li></ul></ul><ul><ul><li>In anderen Luft- und Raumfahrt Organisationen und Firmen </li></ul></ul><ul><li>Neue eigenständige Projektseiten basieren auf Plone </li></ul><ul><ul><li>Ehemals: Typo3, PHP </li></ul></ul><ul><li>In einigen Projekten wird an der Neuimplementierung existierender Software in Python gearbeitet </li></ul><ul><ul><li>Ehemals: Perl, C, PHP </li></ul></ul>
  31. 31. Ganz am Ende… Hinweise <ul><li>pyCologne: Python User Group Köln </li></ul><ul><ul><li>Monatliche Treffen von Python-Interessierten aus dem Großraum Köln </li></ul></ul><ul><ul><li>http://wiki.python.de/User_Group_Köln </li></ul></ul><ul><ul><li>Dort gibt es auch eine längere Fassung dieses Vortrags ( https://wiki.sistec.dlr.de/AndreasSchreiber/ PythonInDerLuftUndRaumfahrt ) </li></ul></ul><ul><li>Interesse an spannenden Tätigkeiten in Luft- und Raumfahrt? </li></ul><ul><ul><li>https://wiki.sistec.dlr.de/StellenAusschreibungen </li></ul></ul>

×