Parallele Anwendungen entwickeln mit Erlang/OTP

Seite 6: Module

Inhaltsverzeichnis

Außerhalb der OTP gehören noch viele weitere hilfreiche Module zum Lieferumfang von Erlang. Heutzutage unumgänglich ist eine umfangreiche Netzbibliothek. So deckt Erlang von TCP und UDP über SSL und SSH bis HTTP, FTP und TFTP alle wichtigen Protokolle ab, zudem unterstützt die Plattform das Media Gateway Control Protocol (Megaco)/H.248. Weiterhin befinden sich viele Module rund um CORBA und SNMP im Lieferumfang. Zusammen mit den vorhanden Kryptofähigkeiten (unter anderem MD5, SHA, DES, AES, RSA, DSS) lassen sich so leistungsfähige Server- und Clientlösungen implementieren.

Für die in diesen Systemen oftmals benötigten persistenten Daten stehen ebenfalls unterschiedliche Lösungen zur Verfügung. Sind nur einfache Daten zu speichern, kann man ein eigenes Modul für einfache Tabellen im Dateisystem implementieren, sollen hierfür hingegen relationale Datenbanksysteme zum Einsatz kommen, erfolgt der Zugriff über ODBC. Wer kein Drittsystem integrieren muss, kann auf Erlangs mitgeliefertes DBMS Mnesia zurückgreifen. Das leistungsfähige System ist auf den kontinuierlichen Betrieb mit nahezu Echtzeitverhalten ausgelegt, verfügt über ein hybrides Datenmodell für Relationen und Objekte, kennt unterschiedliche Strategien, lässt sich replizieren und fragmentieren und bettet sich mit seiner API für Transaktionen und Abfragen nahtlos in Erlang ein.

Weitere Module unterstützen den Entwickler mit unterschiedlichen Speicherstrukturen, der Verarbeitung regulärer Ausdrücke, ASN.1 und LALR-1, dem Lesen und Schreiben von ZIP-Dateien, dem Zugriff auf die Windows-Registry, Prozess-Spooling, Heartbeats und einem einfachen Grafiksystem. Auch für die eigentliche Entwicklungsarbeit bringt Erlang eine Vielzahl von Werkzeugen mit. Eine eigene IDE fehlt zwar, jedoch gibt es eine direkte Unterstützung für den Emacs. Neben dem Compiler und einer Shell für die interaktive Ausführung bringt Erlang integrierte Applikationen für das Debugging, Unit Testing, Cross References, Coverage, Profiling, die Generierung von Dokumentationen, Process Monitoring, Application Monitoring, Crashdump Analysis und Scripting mit. Einige dieser Applikationen führt das System zeichenorientiert in der Shell aus, andere verfügen über ein grafisches Frontend oder lassen sich im Webbrowser betrachten.

Wem dies nicht genügt, dem stehen eine Vielzahl weiterer Bibliotheken und Applikationen im Netz zur Verfügung. Aus dem Comprehensive Erlang Archive Network (CEAN) beispielsweise lassen sich Anwendungen direkt in die Laufzeitumgebung installieren oder aktualisieren.

Erlang/OTP ist eine Nischenplattform, aber aus der Nische entwickelt sich entsprechend dem Bedarf an skalierbarer Software in Multicore-/Multiprozessor-Umgebungen langsam eine immer interessanter und bekannter werdende Menge an Lösungen. Natürlich findet sich Erlang in seinem ursprünglichen Anwendungsgebiet wieder, dem Ericsson AXD301 ATM Switch, dem Ericsson GPRS System, dem Alteon (Nortel) SSL Accelerator, dem T-Mobile UK SMS System, und auch Motorola hat die Plattform für VoIP-Lösungen evaluiert. Mit Yaws existiert ein hoch skalierbarer und flexibler Web Application Server für statische und dynamisch generierte Seiten. Der Server wird in verschiedenen Softwaresystemen produktiv eingesetzt. Ein im Jabber-Umfeld gern genutzter Daemon ist der ejabberd, der ebenfalls in Erlang entwickelt wurde. Interessante Datenbanklösungen sind die CouchDB, die eine RESTful-HTTP/JSON-API bietet und so von jeder Sprache aus leicht zu nutzen ist, sowie Amazons SimpleDB. Im Grafiksektor findet sich mit Wings 3D eine auf Erlang basierende Applikation. Last, but not least steht für Entwickler mit Tsung ein Multi-Protocol Distributed Load Testing Tool zur Verfügung.