distribuídos para a JVM Conheça Akka, uma plataforma para o JVM para desenvolvimento de sistemas concorrentes e/ou distribuídos através do paradigma de Atores. Descreveremos o paradigma de atores, suas vantagens e desvantagens, e mostraremos exemplos da API em Java e em Scala, com execução local e distribuída, memória transacional e tolerância a falhas.
em 2011 pelos criadores da linguagem de programação Scala e do middleware Akka. • O Typesafe Stack contém Scala, Akka e ferramentas de desenvolvimento, tudo open source. • A Typesafe Subscription provê suporte comercial.
Exception { if (message instanceof String) { String msg = (String)message; if (msg.equals("Hello") && getContext().getSenderFuture().isDefined()) { // Reply to original sender of message using the channel getContext().channel().sendOneWay(msg + " from " + getContext().getUuid()); } } }
! Work(arg, nrOfElements) Concisão • val a = actorOf(new MyActor(..)).start() Parâmetros “by-name” • Ver exemplo de concisão acima! Parâmetros implícitos
cada vez • Modificações de cada origem processadas em ordem Modificações Assíncronas • Toma parte em transações Integrado ao STM • Valor “atual” após todas modificações enfileiradas Futuros
Deixe outro lidar com o problema Deixe falhar... • Erlang OTP • Proteção em Profundidade Supervisores • OneForOne • AllForOne Estratégias de Supervisão
priorizados • Eventos com work-stealing Dispatcher • Dispatcher (roteador, não módulo) • Load balance • Actor pool Routing • Usados por atores, agentes, dataflow e outros componentes Futuros