14
Simulator X: A Scalable and Concurrent Architecture for Intelligent Realtime Interactive Systems Marc Erich Latoschik and Henrik Tramberend Wilson de Carvalho Sistemas de Tempo Real - 10/2014

Realtime Systems - Seminar

Embed Size (px)

Citation preview

Page 1: Realtime Systems - Seminar

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

Page 2: Realtime Systems - Seminar

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

Page 3: Realtime Systems - Seminar

Motivação

Page 4: Realtime Systems - Seminar

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

Page 5: Realtime Systems - Seminar

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

Page 6: Realtime Systems - Seminar

Arquitetura

• Aumentar a escalabilidade

• Minimizar acoplamento

• Maximizar coesão

Page 7: Realtime Systems - Seminar

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)

Page 8: Realtime Systems - Seminar

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

Page 9: Realtime Systems - Seminar

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.

Page 10: Realtime Systems - Seminar

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

Page 11: Realtime Systems - Seminar

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

Page 12: Realtime Systems - Seminar

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

Page 13: Realtime Systems - Seminar

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

Page 14: Realtime Systems - Seminar

Dúvidas?