Eu li um pouco sobre o modelo de ator, mas realmente não entendo como usar atores em uma situação do mundo real - como modelar um problema com eles.
Alguém pode me explicar? Um exemplo simples ou links para exemplos seriam muito apreciados.
computer-science
concepts
actor-model
Pnutus
fonte
fonte
Respostas:
Atores, no sentido de ações de modelagem, com mensagens, etc, é uma maneira de modelar software que fornece alguns itens úteis ...
Os atores podem viver em um único encadeamento, permitindo que operações não-seguras / não simultâneas ocorram sem muita magia de bloqueio. Um ator responderá às mensagens em sua caixa de entrada. Quando você deseja que ele processe um comando, envie uma mensagem e ele cuidará deles na ordem em que são recebidos. Assim como uma fila normal. O Thread Safe é ótimo aqui, e eu uso isso em vários projetos de código aberto nos quais trabalho.
Em alguns idiomas, Scala, por exemplo, é fácil transformar código baseado em ator em um único processo em um sistema distribuído, separando os atores e transformando os canais que eles se comunicam em canais remotos. Isso muda entre as implementações sobre como é fácil, mas é um recurso incrível.
Ajuda a focar em eventos baseados em tarefas, em vez de eventos CRUD. O CRUD é simples, mas é como interagir com um arquivo. Se podemos fornecer mais valor do que o software que produzimos, por que estamos fazendo isso? Amarrar várias ações a um único comando "Atualizar" em um sistema baseado em tarefas é mais útil do que apenas salvar no banco de dados. Isso também entra em coisas como o CQRS.
fonte
A resposta de Travis é sólida. Quando você começa a falar sobre simultaneidade, está tentando resolver problemas de recursos. A simultaneidade com threads e bloqueios é muito fácil de fazer de errado. O modelo de ator ajuda a forçar você a programar partes simultâneas do seu código como pepitas independentes que podem ser executadas em paralelo e sem depender de outro trecho de código. Você está tentando evitar maldade, como condições de corrida e impasses.
Os atores são como você e eu nessa conversa. Você simplesmente não pode alcançar meu cérebro e escolher o que estou digitando. Você me passou uma mensagem dizendo "Por que existimos?" Sentei-me e triturei alguns números e enviei uma resposta "Eu penso, logo existo". Você não podia dizer o que eu estava fazendo na minha própria fatia do planeta Terra. O único contato que você tem comigo é através das mensagens que passamos para frente e para trás.
EDITAR:
Você não disse em quais idiomas se sente confortável, mas veja se há uma implementação de ator em seu idioma. Talvez o mais simples sejam algumas das bibliotecas de atores em python. Mas provavelmente o melhor para aprender seria Erlang. A linguagem é um pouco difícil, mas uma vez que você supera as nuances, é uma boa linguagem.
fonte
Os atores são um elemento dos diagramas de casos de uso que representam qualquer entidade externa (usuário, sistema externo etc.) que pode atuar em um sistema. Qualquer caso de uso básico conterá atores - basta pesquisar no Google "caso de uso" para vários exemplos.
fonte