Upload
wilson-de-carvalho
View
19
Download
0
Embed Size (px)
Citation preview
Simulator X: A Scalable and Concurrent Architecture for
Intelligent Realtime Interactive Systems
Marc Erich Latoschik and Henrik Tramberend
Wilson de CarvalhoSistemas de Tempo Real - 10/2014
Motivação
• Plataforma para pesquisa em Sistemas Interativos de Tempo Real (Realtime Interactive Systems – RIS)
• Concebida para:
• Realidade Virtual (Virtual Reality - VR)
• Realidade Aumentada (Augmented Reality - AR)
• Realidade Mista (Mixed Reality - MR)
• Jogos de Computador
Motivação
Características Experimentais
• Modelo concorrente unificado baseado em atores
• Modelo de entidades compartilhadas usando estado distribuído
• Arquitetura de componentes usando o modelo de concorrência
• Abordagem funcional/OO em Scala
• Ligação semântica para integração de IA
• Suporte genérico para interfaces multimodais
Características Experimentais
• Avaliar o modelo de programação por atores (Actor Programming Model)
• Paralelismo e concorrência de alta granularidade
• Linguagem Scala
• Portabilidade (JVM)
• Orientação a Objetos
• Programação Funcional
• Modelo de Programação por Atores
Arquitetura
• Aumentar a escalabilidade
• Minimizar acoplamento
• Maximizar coesão
Modelo de Programação por Atores• Criado no MIT em 1970 por Carl Hewitt e sua
equipe
• Simplificar a construção de sistemas concorrentes
• Auxiliar desenvolvedores a pensar sobre programas concorrentes
• Dados imutáveis
• Comunicação por mensagens
• Alta confiabilidade (let it crash)
E funciona?
• AXD301: 99,9999999% de confiabilidade (9 9s)
• 20 anos sem sair do ar
• Está na tese de doutorado de Joe Armstrong, autor da linguagem Erlang
• https://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf
Voltando ao Simulator X
• Redes de fluxos de dados são um esquema de execução consolidado para RIS:
• Fácil compreensão;
• Esquemas de execução híbridos com elementos procedurais, eventos assíncronos ou mensagens podem causar problemas de consistência.
• Esquema de execução e gerenciamento de dados estão fortemente conectados.
Estado e Modelo de Atores
• Atores são leves e podem ser criados a qualquer momento
• Cada ator representa um segmento de execução• Nível de paralelismo depende da implementação e do
hardware
• Atores se comunicam exclusivamente via mensagens assíncronas
• Estado do programa é armazenado localmente por cada ator, ou seja, não existe um estado global compartilhado
Entidades
• São conjuntos de propriedades que descrevem um objeto da aplicação
• Cada uma pode ter seu esquema de execução independente
• Uma propriedade associa uma variável de estado a um símbolo que dá semântica na aplicação
Interface Externa (World Interface)• Construída sobre as demais camadas• Fornece acesso a aspectos relevantes da
operação interna do simulador• Esconde detalhes técnicos do núcleo do sistema
(representação de dados interna, esquemas de execução, etc)
• Operações principais:• Notificação de eventos de alterações de estado
relevantes• Execução de ações alterando estados relevantes• Processamento de consultas de estado• Configuração de eventos relevantes e ações
permitidas
Conclusão
• Inicialmente, mudança para um modelo de programação baseado em mensagens reduz produtividade
• Suporte OO de Scala foi benéfico durante fase de aprendizado dos desenvolvedores
• Modelo de entidades com atores criou a ilusão de uma área compartilhada de estados globais
• Vários aplicativos de demonstração foram criados para demonstrar a utilidade e adequação da arquitetura
Dúvidas?