| Desenvolvimento de Equipamentos Terminais (IP Phone e ATA) para Telefonia IP Felipe Uderman |
O projeto Xingoo tem o objetivo de desenvolver uma solução de baixo custo e de fácil integração para Telefonia IP. Parte deste projeto consiste no desenvolvimento de Terminais de Telefonia IP: IP Phone e ATA (Analog Telephone Adapter). O IP Phone é um dispositivo que quando conectado a um software IPBX está apto a fazer e receber chamadas pela rede IP. O ATA é um adaptador que possibilita o uso de telefones analógicos convencionais em Telefonia IP. Estes terminais estão sendo desenvolvidos em uma placa de desenvolvimento ARM9 EM104V1. Esta placa está equipada com o processador Samsung S3C2410A (ARM920T core) e executa o Kernel 2.6.14 do linux. Com o Linux como Sistema Operacional da placa, o desenvolvimento é simplificado, não só pelo suporte de drivers e utilitários, mas também pela possibilidade de reutilização de software já desenvolvidos. Porém, um conhecimento adicional sobre Linux Embarcado se faz necessário. Esta placa de desenvolvimento possui praticamente todos os recursos de hardware necessários para o desenvolvimento dos terminais. Para o Telefone IP, será necessário interfacear com a placa um teclado e conectores de áudio. Para o ATA, será necessário interfacear uma interface FXS. O software do Telefone IP será baseado no projeto Verona, que implementa um softphone simplificado por linha de comando chamado Miniua. A estratégia utilizada será modificar o código do Miniua para o novo cenário. O software do ATA será baseado no Asterisk, software IPBX.
|
| Allan Edgard Silva Freitas Algoritmos Adaptáveis para Sistemas Autonômicos |
Os atuais ambientes de computação são cenários dinâmicos, em que nós, dispositivos de hardware e serviços de software cooperam no resultado de computações dos usuários. Neste cenário inerentemente distribuído, diferentes partes do sistema podem estar sujeitas a diferentes contextos com diferentes níveis de serviço e requisitos de mobilidade, topologia, recursos computacionais, exigência de requisitos temporais etc., sendo necessária a adaptação dos componentes do sistema aos aspectos do contexto do ambiente em que operam. Assim, o sistema deve-se adaptar como um todo as mudanças dos ambientes, de forma autonômica e transparente a aplicação objeto da computação. Deve-se compor modelos híbridos adequados a estes ambientes distribuídos, modelando estes diferentes aspectos e que permitam o uso de algoritmos adaptativos que implementem este comportamento autonômico de adaptação. |
| Abordando Confiabilidade em Sistemas Dinâmicos Alirio Santos de Sá |
Resumo. O desenvolvimento das tecnologias de comunicação e computação tem permitido a criação de aplicações com características mais dinâmicas, complexas, interoperáveis e heterogêneas. Tais aplicações têm permeado os mais diferentes aspectos do cotidiano, de modo que atividades desde as mais complexas (e.g. controle e supervisão de plantas industriais, operações financeiras etc.) até as mais corriqueiras (e.g. conversação, ensino, reuniões, operações de compra e venda de produtos etc.) depositam confiança no funcionamento das mesmas. Além disso, são inúmeras as infra-estruturas de computação e comunicação utilizadas, por exemplo: aparelhos celulares, computadores pessoais, arquiteturas de servidores entre outros comunicando entre si através de redes locais tracionais interfaceadas com redes sem fio e conectadas a Internet. Atribuir confiança ao funcionamento dos sistemas em cenários heterogêneos e dinâmicos não é uma atividade simples e exige o uso de técnicas relacionadas à modelagem, análise e implementação de sistemas dinâmicos associadas à construção de mecanismos adaptativos de tolerância a falhas (e.g. detecção adaptativa de defeitos, recuperação pró-ativa e reconfiguração dinâmica). Assim, o presente trabalho visa propor o desenvolvimento de mecanismos adaptativos de tolerância a falhas, utilizando um processo de análise e modelagem baseada na teoria de controle de sistemas dinâmicos, tradicionalmente usada pela área de controle e automação de processos industriais. Nesse sentido, o presente trabalho inicialmente foca na construção de detectores adaptativos auto-sintonizáveis, aqui referenciados como detectores autonômicos. |
| Criação de regras de negócios desacopladas dos modelos específicos de plataforma Jaguaraci Silva |
A MDA (Model-Driven Architecture) propõe uma arquitetura para o desenvolvimento de software orientado a modelos. A idéia base para a construção de software com base na MDA é: criar um modelo conceitual, definir regras para a transformação em um modelo específico de plataforma e gerar um novo modelo com base nessas regras para uma plataforma específica, aproveitando o mesmo modelo conceitual da aplicação em diferentes plataformas (e.g. palms, computadores e celulares). Para a construção de um modelo específico de plataforma é necessário conhecer, ao menos, três tipos de regras: de transformação de modelos independentes em específicos, de conceitos ou negócios de aplicação e de implementação, esta última está no nível de uma linguagem de programação e devem aderir aos requisitos funcionais e não-funcionais de um software. As regras de negócio são semânticas, peculiares e precisam aderir de forma coesa a um conceito, complementando as informações que dão o sentido á sua existência (e.g. João é dono de um computador, um aluno é aprovado na disciplina com média superior a 7,0). Criar sistemas críticos usando a MDA (e.g. controle de robôs, supervisórios e aviões) exige um certo grau de formalidade durante a modelagem dos requisitos de aplicação, pois as falhas de projetos podem significar perdas catastróficas e a linguagem UML, que é a base da arquitetura orientada a modelos, não permite a utilização um modelo matemático para a verificação de estados e comportamentos dos componentes de um sistema. Além disso, quando o modelo específico de plataforma é gerado, as regras de negócio são misturadas aos métodos dos objetos dificultando a sua manutenção, pois uma mesma regra pode ser utilizada em vários pontos de um sistema (e.g. log de transações, autenticação de usuários e persistência de dados).
A separação dos interesses é um dos princípios da tecnologia de programação que se aplica durante todo o processo do desenvolvimento do software. Permite que os aspectos individuais de diferentes problemas sejam tratados isoladamente. A programação orientada a aspectos é uma evolução na linha da tecnologia para a separação dos interesses. Além dela, outras aproximações contribuíram para o seu estado emergente, tais como: padrões de projeto, reflexão, desenvolvimento baseado em componentes, frameworks e composição adaptativa. O trabalho propõe a separação das regras de negócio antes para geração do modelo específico de plataforma para sistemas críticos. Para o estudo de caso, será construído um modelo conceitual para uma aplicação de supervisão e abastecimento de fornos industriais. As regras de negócio serão geradas após a verificação formal do modelo de domínio de aplicação e implementadas em uma linguagem de programação orientada a aspectos. Como resultado, espera-se avaliar a oportunidade de automatizar a geração de regras de negócio usando aspectos criando uma ferramenta para este propósito, as vantagens da verificação do modelo de domínio de aplicação para sistemas críticos e da implementação das regras de negócio usando AOP. Espera-se também avaliar as conseqüências do uso de aspectos em um modelo formalmente verificado e a concorrência entre aspectos, sob o ponto de vista de sobreposição das regras de negócio.
|
| Reconfiguração Dinâmica em Escalonadores de Tarefas para Sistemas de Tempo Real Marco Antonio Costa Simões, George Marconi Lima, Raimundo Macedo |
O Escalonamento de Tarefas utilizado em sistemas de tempo real tradicionais
geralmente é baseado em uma abordagem pessimista baseada na estimativa de pior caso para o tempo de execução de cada tarefa. Desta forma, algoritmos como rate-monotonic e earliest deadline first [1] conseguem garantir que as tarefas de tempo real não violem seus deadlines. Além disto, a utilização de servidores periódicos como deferrable Server [2,4], sporadic Server [2,3], Constant Utilization Server (CUS) [2], Total Bandwidth Server (TBS) [2], Constant Bandwidth Server (CBS) [5] permite ao escalonador suportar tarefas aperiódicas e tarefas periódicas críticas no mesmo sistema. O princípio do isolamento temporal garante que o sistema como um todo seja escalonável através de algum dos algoritmos já utilizados tradicionalmente. Assim, se uma tarefa que é atendida por um servidor ultrapassar a capacidade máxima do mesmo, terá sua execução adiada de forma a não gerar impacto sobre as demais tarefas periódicas. Em diversos sistemas de tempo real, existem tarefas em que o tempo de execução no pior caso é muito maior que o caso médio. Isto acontece com freqüência em sistemas que possuem tarefas multimídia. Por exemplo, sistemas de controle de robôs autônomos equipados com uma câmera embarcada para visão computacional possuem as tarefas de controle dos atuadores, mas também as tarefas de processamento de imagem e visão computacional associados ao elemento de percepção do ambiente. Neste caso, para garantir o desempenho do sistema, pode ser configurado o atendimento destas tarefas multimídia através de servidores CBS configurados com capacidade igual ao tempo médio de execução das tarefas. O isolamento temporal do CBS irá garantir que quando a tarefa demandar um tempo superior à média, não haverá impacto sobre as demais tarefas de tempo real, evitando que o sistema entre em overflow. Entretanto, se devido a alguma mudança no ambiente onde o sistema está inserido, esta violação do tempo do servidor CBS começar a se repetir com freqüência, o desempenho das tarefas atendidas pelo mesmo irá se degradar gerando uma queda na qualidade de serviço ao sistema. Para solucionar este impasse, este trabalho investiga as possíveis soluções para reconfiguração dinâmica dos parâmetros dos servidores CBS de forma a adaptar o sistema às mudanças no ambiente em que está inserido, em tempo de execução. Inicialmente estão sendo investigadas as soluções baseadas em algoritmos genéticos para resolver o problema em questão. Serão feitas simulações para comparação com soluções baseadas em programação dinâmica e gulosa e outras abordagens baseadas em aproveitamento de folga do sistema [6,7,8].
|
| Estudo comparativo de mecanismos de escalonamento para Sistemas de Tempo Real Tolerantes a Falhas Flávia Maristela Santos Nascimento |
A relevância e a abrangência dos sistemas de tempo real nas mais variadas áreas de
aplicação têm feito surgir um grande número de abordagens para tornar tais sistemas
tolerantes a falhas. Em geral, tais abordagens se baseiam na construção de mecanismos
de escalonamento, já que estes são considerados peças-chave para garantia da correção
temporal quando se trata de aplicações de tempo real.
Há um grande número de propostas de mecanismos de escalonamento que visa fornecer
suporte de tolerância a falhas para sistemas de tempo real. No entanto, não se conhece
uma análise comparativa ampla e abrangente entre as diferentes propostas, e este é o principal objetivo deste trabalho. Neste estudo são considerados apenas os sistemas monoprocessados, já que para estes sistemas o papel dos mecanismos de escalonamento é central, uma vez que as decisões de escalonamento podem ter implicações diretas no aumento ou diminuição da capacidade do sistema de tolerar falhas. Além disso, as soluções apresentadas fazem uso de redundância temporal. A principal motivação para a realização deste trabalho foi a ausência de uma análise comparativa entre as diferentes abordagens de escalonamento com tolerância a falhas para sistemas de tempo real, apesar da grande quantidade de propostas existente. Um outro aspecto importante veio da observação de que as propostas de escalonamento, geralmente, assumem modelos restritivos, que podem não ser adequados a determinadas aplicações.
O trabalho encontra-se em fases iniciais. Inicialmente, foi realizada uma revisão bibliográfica, procurando derivar classificações que agrupassem adequadamente as diferentes propostas estudadas. Em fases posteriores, pretende-se encontrar métricas comparativas que possam expressar a qualidade de cada abordagem estudada e usar simulações para avaliar quantitativamente as mesmas. Desta forma, este trabalho deverá preencher uma lacuna existente na área, fornecendo subsídios de escolha de soluções de escalonamento aos projetistas de sistemas de tempo real tolerantes a falhas.
|
| DoRiS – Especificação formal e desenvolvimento de DoRiS, um protocolo de comunicação tempo-real baseado em Ethernet. Paul Regnier, George Lima e Antônio Marcos Carianha |
O desenvolvimento de um protocolo de comunicação em tempo real baseado em Ethernet requer a resolução de dois desafios distintos e complementares. O primeiro consiste em definir as regras de acesso ao meio de comunicação compartilhado, necessárias para garantir o determinismo temporal da comunicação. O segundo diz respeito à implementação destas regras numa plataforma de tempo real, que possa dar suporte aos protocolos da camada de aplicação da pilha TCP/IP.
A primeira fase de desenvolvimento de DoRiS (An Ethernet Double Ring Service for Real-Time Networks) enfrentou o primeiro deste desafio, tendo como resultado a especificação e a verificação formal do protocolo em TLA+ (Temporal Logic of Actions). A solução adotada inspirou-se no protocolo VTPE (Virtual Token Passing Ethernet) [1], combinando as abordagens TDMA (Time Division Multiple Access) e de bastão virtual para implantar dois anéis lógicos de comunicação: um anel para o conjunto de tarefas críticas e um para o conjuntos de processos não-críticos. Nesta primeira fase, restringimos-nos a um modelo descentralizado de comunicação um-para-todos, que permite a implementação eficiente de mecanismos de tolerância a falhas e de sincronização temporal. Para fins de escalabilidade, a interligação de vários segmentos DoRiS poderá ser realizada através do uso de roteadores dedicados. Num segmento DoRIS isolado, o uso ótimo da banda de transmissão foi atingido pela alternância regular entre os dois anéis, o que permite a emissão das mensagens não-críticas enquanto as mensagens críticas estão sendo processadas pelos dispositivos mais lentos.
Para enfrentar o desafio da implementação, buscou-se uma plataforma de tempo real de acesso livre que fornecesse suporte a aplicações multimídia e de controle via rede TCP/IP. A plataforma Xenomai (sucessora de RTAI/Fusion) que utiliza o núcleo ADEOS [2] para permitir o desenvolvimento de aplicações de tempo real no ambiente Linux apareceu como uma escolha interessante. Testes preliminares mostraram a capacidade da plataforma Xenomai-Linux em garantir piores casos de latência no tratamento de interrupções abaixo de 20 microsegundos. Além disso, Xenomai provê uma camada de comunicação em tempo real, RTnet [3], baseada em Ethernet. Esta camada implementa um protocolo de comunicação baseado em TDMA numa topologia de rede centralizada. Decidiu-se aproveitar desta infra-estrutura de software para dotar a camada RTnet do protocolo descentralizado DoRiS. Resultados preliminares confirmaram a viabilidade desta escolha.
|
| Projeto e Implementacão de um Software para Gerencia de um
Ambiente de Telefonia IP
Sandro Santos Andrade |
A correta implantacão e configuracão de um ambiente para VoIP e Telefonia IP requer conhecimentos que permeiam áreas como sistemas de informacao, telefonia, redes de
comunicacão e teoria de sinais. O XAT (Xingoo Administration Tool) é um software integrante do projeto Xingoo - Desenvolvimento de uma Solucao Integrada para Telefonia IP. O Xingoo tem como objetivo a construcão de uma solucao integrada e de baixo custo, envolvendo
dispositivos de hardware, servicos de telefonia e o software de gerencia.
O XAT tem como objetivo possibilitar a correta configuracão do ambiente VoIP de maneira fácil e produtiva permitindo, ao mesmo tempo, uma configuracão refinada, realizada por usuários mais experientes. O projeto da ferramenta considera questões tais como: padrões de projetos, arquiteturas flexíveis, uso de plugins e solucões portáveis. O XAT foi desenvolvido na linguagem Standard C++ e utilizando o toolkit Qt4, possibilitando a sua execução em ambientes tais como GNU/Linux, Microsoft Windows e Mac OS.
|
| Um Appliance como um PABX IP Tássia Camões Araújo |
O Xingoo é um projeto de inovação tecnológica cujo objetivo é o desenvolvimento de uma solução integrada, fácil de usar e instalar, e de baixo custo, para telefonia IP. O projeto possui três linhas de trabalho, caracterizadas pelo desenvolvimento de terminais (telefone IP e ATA), um appliance PABX IP que execute o software Asterisk e um software de interface e configuração (XAT). O componente appliance atua como a central telefônica do Xingoo. Apresentaremos as etapas de desenvolvimento do Appliance, desde a escolha do hardware ao levantamento de softwares e customizações necessárias para a integração com os outros componentes. O ambiente de desenvolvimento e as ferramentas usadas em todo o processo serão expostas ao público. |