Open Source im professionellen Einsatz

Akka stellt Release 1.0 fertig

17.02.2011

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

326

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 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 ü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 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 acht 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");

[Diese Meldung stammt vom ADMIN-Magazin]

Ähnliche Artikel

  • Scala 2.10.0: Promises, Futures und Akka-Actors

    Die objektorientierte und funktionale Programmiersprache Scala ist in Version 2.10.0 mit einigen Neuerungen erhältlich.

  • Scala

    Die Programmiersprache Scala setzt die Kunst des funktionalen Programmierens pragmatisch um. Mit wenig Schreibarbeit, Funktionen höherer Ordnung und Comprehensions erfreut sie den Entwickler, im Orchester mit Java zelebriert sie bei Twitter & Co. spektakuläre Auftritte.

  • Play 2.0 - Beta des Webframeworks

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

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.