Adessowiki

Visão Geral do Sistema

date:Abril de 2009
author:Roberto A. Lotufo e Rubens C. Machado
organization:UNICAMP / CTI
subject:Adessowiki
logo:Adessowiki, abril/2009
email:
pagetrans:Replace

Adessowiki

  • Características
    • Literate Programming (Knuth)
      • Em um ambiente colaborativo
    • É uma wiki que permite a inclusão de fragmentos de código em suas páginas.
    • Recursos criados pela execução do código (imagens, textos etc) são inseridos na página wiki.
    • As páginas são criadas através de uma linguagem de marcação simples mas poderosa.
    • Documentos e aplicações
      • Páginas interativas
    • Permite a criação de módulos reusáveis de software
      • Python e C/C++

Componentes

  • Wiki
    • Model-View-Controler
    • Django / Python
  • reST
    • reStructuredText
    • Extensões para inclusão de código
  • XSandbox
    • Execução de código Python em ambiente controlado
    • Construção de módulos escritos em C/C++

Organização

/media-1/adessowiki03a.png

Wiki

  • Django Model-View-Controller
    • Modelagem dos dados através de classes Python (ORM)
    • Templates/CSS para aspectos visuais
    • Facilidades para extensão do sistema
    • Back-end MySQL
  • Autenticação de usuários
    • Controle de acesso através da divisão em espaços (sub-wikis)
    • Grupos de usuários
    • Sistema de convites e registro de usuários

Wiki

  • Comentários
  • Controle de versão
    • recuperação de versões anteriores através da própria página
  • Gerenciamento de anexos (mídia)
    • servidores separados para mídia
    • controle de acesso
  • Estatísticas diversas
    • acessos, links, páginas órfãs

Linguagem de Marcação

  • reST
    • conexão entre a wiki e o sandbox
    • baseada no projeto docutils, originalmente criado para documentação de programas Python
    • usada também em outras wikis
    • Extensões
      • execução de código Python
      • criação de módulos Python
      • criação de módulos C/C++ para o Python
      • equações
      • wiki links

Transformações de Documentos

/media-1/adessowiki01.png

Sandbox de Execução

  • Implementado como um servidor independente
    • comunica-se com a wiki através de um protocolo simples
    • cada página causa um fork
    • cada fragmento lança um thread
  • Provê serviços para
    • execução de código; captura e devolve ao cliente:
      • textos enviados para a saída padrão
      • imagens que seriam mostradas pelo código
      • parâmetros de entrada especificados no código
    • compilação/ligação de código C/C++ para criação de módulos Python
      • geração automática das interfaces

Sandbox de Execução

  • Ambiente controlado para a execução de código.
    • O código do usuário não pode
      • escrever no sistema de arquivos
      • abrir sockets diretamente
      • lançar processos ou threads
      • usar outras chamadas de sistema como signals etc
    • Extensões C/C++
      • restrições devem ser impostas na compilação/ligação.

Sandbox de Execução

/media-1/xsandbox_seq.png

Próximos Passos

/media-1/adessowiki04.png

Próximos Passos: XSandbox

  • Middleware para gerenciar a interação wiki/sandboxes
    • avaliar plataformas existentes, p.ex., Ice -- Internet Communications Engine
    • sistema publish/subscribe para desacoplar a wiki do(s) sandbox(es)
  • Sandboxes Especializados
    • processamento de imagens, robótica, controle de processos etc
    • construção de módulos em diferentes plataformas
      • Linux, MacOSX, Windows
    • hardware especial
      • GPU para utilização como multiprocessador
    • simuladores
    • compartilhamento de recursos de laboratórios

Próximos Passos: XSandbox

  • Virtualização
    • virtualização dos servidores web e dos sandboxes
    • ambientes isolados
  • Criação de distribuições de software
    • empacotamento de toolboxes e aplicações

Futuro: reST

  • Arquitetura de plugins para transformação de documentos
    • novos formatos de saída
    • integração com ferramentas de escritório comuns
  • Extensões de Markup
    • novas maneiras de capturar parâmetros de entrada
    • linguagens visuais
    • suporte a múltiplos sandboxes

Futuro: Wiki

  • Aperfeiçoamento da experiência de utilização
    • temas visuais
    • preferências de usuário
    • widgets Ajax
    • adaptação a diferentes tipos de navegadores/dispositivos
    • editores de textos especiais para reST (Javascript)
    • internacionalização da interface
  • Plugins para navegadores
    • ambientes integrados de desenvolvimento (IDEs)

Futuro: Wiki

  • Aplicações complementares para especializar o site
    • suporte a determinado workflow
      • por exemplo, ferramentas para ensino
[–] Comments
Matheus Oliveira at 2015-03-05 13:45h
 0
Ótima explicação, gostei muito dos gráficos que fizeram chegar nas conclusões.