Akka stellt Release 1.0 fertig

16.02.2011

Mit dem Akka-Framework können Scala- wie auch Java-Programmierer zuverlässige und performante verteilte Anwendungen schreiben.

 

Nach zweijähriger Entwicklungszeit hat der Projektgründer Jonas Bonér das Release 1.0 des Akka-Frameworks angekündigt. Laut eigener Beschreibung handelt es sich dabei um eine "event-basierte, skalierbare und fehlertolerante Architektur für die JVM" (Java Virtual Machine). Dazu implementiert das in Scala geschriebene Akka eigene Objekte und Methoden, die auch über Rechnergrenzen hinweg funktionieren. So gibt es in Akka zusätzlich von den in Scala implementierten Aktoren, die eine Abstraktion zur Parallelprogrammierung darstellen, so genannte Remote Actors, die sich auf unterschiedlichen Rechnern befinden können. Zur weiteren Unterstützung der Parallelprogrammierung bietet Akka auch Software Transactional Memory (STM), das bei Konflikten einzelne Speicherbereiche wieder auf den Ausgangszustand zurücksetzen kann. Dieses Konzept ist beispielsweise auch in Haskell und Clojure implementiert.

Die event-basierte Architektur von Akka verwendet besonders leichtgewichtige Threads, die Entwickler geben als Leistungsmerkmal dafür etwa 13 Millionen erzeugter Aktoren bei 8 GByte Speicher an. Die Zuverlässigkeit und Geschwindigkeit des Gesamtsystems wird durch eine Philosophie gewährleistet, die die Entwickler "let it crash" nennen und die von in Erlang geschriebenen Systemen inspiriert ist: Einzelne Routinen sollen nicht das komplette System mitreißen und im Fehlerfall einfach neu gestartet werden.

Als neue Speicher-Backends unterstützt Akka eine Auswahl von NoSQL-Datenbanken, zum Beispiel Voldemort, HBase, Memcached, Membase, SimpleDB, Cassandra, Redis und CouchDB. Neben der Scala-Schnittstelle bietet Akka auch eine API für Java-Programmierer, die nach Angaben der Entwickler in Version 1.0 stark verbessert wurde. Einen Überblick über die zahlreichen Features und Neuerungen gibt die Ankündungs-Mail von Jonas Bonér auf der Anwender-Liste.

Der folgende Code von der Akka-Homepage zeigt, wie einfach sich ein Server und der dazu gehörige Client implementieren lassen:

// server code class HelloWorldActor extends UntypedActor { public void onReceive(Object msg) { getContext().reply(msg + " World"); } } remote().start("localhost", 9999).register( "hello-service", actorOf(HelloWorldActor.class)); // client code ActorRef actor = remote().actorFor( "hello-service", "localhost", 9999); Object res = actor.sendRequestReply("Hello");

 

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Webframework Play 2.0 als Beta veröffentlicht

Mit Version 2.0 läutet das Webframework Play eine neue Ära ein und unterstützt neben Java von Grund auf die Programmiersprache Scala.

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019