Skip to main content

Anwendungsbeispiel 5: Interaktive Diagnostik an http-Beschleunigern der Deutschen Welle

  • Chapter
  • First Online:
Funktionale Programmierung und Metaprogrammierung
  • 3743 Accesses

Zusammenfassung

Programmierung auf der Metaebene, also das Schreiben von Programmmen, die Programme schreiben, ist nicht einfach akademisches Spielzeug, sondern geeignet, ganz konkrete Probleme aus der Welt zu schaffen. Im hier vorgestellten Beispiel hat bei der Deutschen Welle ein Stück Software, das in wesentlichen Teilen in Metaprogrammierung entstanden ist, ein dringend benötigtes Abfragesystem bereitgestellt, um die Administration einer komplexen Internet-Infrastruktur zu erleichtern. Dabei wurde eine exzellente Arbeitsgeschwindigkeit der Software erreicht.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    http://www.varnish-cache.org

  2. 2.

    Im normalen Betrieb werden deswegen auch keine Log-Informationen erzeugt. Bei Varnish muss man ein zusätzliches Programm namens =varnishlog= starten, das sich mit dem Cache verbindet und dessen Verarbeitungen loggt. Das ist eine sinnvolle Lösung, denn für die dabei anfallende Datendeponie gibt es im Normalbetrieb wenig sinnvolle Verwendung.

  3. 3.

    Das ist nur scheinbar ein Widerspruch zum vorhergehenden Absatz, denn die höhere Geschwindigkeit bezieht sich auf eine bestimmte Klasse von Programmen.

  4. 4.

    Trotzdem ist COMMON LISP fraglos eine wesentlich „höhere“ Hochsprache als Java, C++, Perl oder Python.

  5. 5.

    Der Autor hat die schlimmsten juristischen Ausseinandersetzungen bei Softwareprojekten im Zusammenhang mit Performance-Problemen gesehen. Dabei waren diese immer so tief mit dem Ansatz verwurzelt, dass sie sich nicht mehr in einem späteren Projektabschnitt adressieren ließen. Fähige Projektleiter halten das Thema Performance daher immer im Auge, ohne allerdings das Projekt dadurch in Mitleidenschaft zu ziehen. Das geschähe etwa dann, wenn man durch zu große Angst vor Performance-Problemen Strukturen schafft, die die Komplexität deutlich steigern.

  6. 6.

    Oft auch DSL für domain specific language genannt. Das ist eine Sprache, die im Gegensatz zu einer General Purpose Language wie Lisp nur einem bestimmten Anwendungsbereich zugeordnet ist. Ein populäres Beispiel ist die Datenbank-Abfragesprache SQL. Komplexe Software-Interfaces werden häufig als DSL implementiert.

  7. 7.

    VarnishQ steht aber im Internet unter https://github.com/iqool/varnishq zum Download, zum Studium und zur freien Benutzung zur Verfügung.

  8. 8.

    Meiner Meinung nach eine mögliche Übersetzung von closure ins Deutsche, da beides das (räumlich) Abgeschlossene bezeichnet.

  9. 9.

    http-Requests, die nicht aus dem Cache bedient werden können und deswegen von einem der zuständigen Applikation-Server beantwortet werden müssen.

  10. 10.

    http-Requests, die aus dem Cache bedient werden können. Sie ergänzen sich mit den Cache-Misses zu 100 %.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Patrick M. Krusenotto .

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer Fachmedien Wiesbaden

About this chapter

Cite this chapter

Krusenotto, P. (2016). Anwendungsbeispiel 5: Interaktive Diagnostik an http-Beschleunigern der Deutschen Welle. In: Funktionale Programmierung und Metaprogrammierung. Springer Vieweg, Wiesbaden. https://doi.org/10.1007/978-3-658-13744-1_18

Download citation

Publish with us

Policies and ethics