sábado, 20 de setembro de 2008

Solar: uma proposta de middleware pervasivo

Os sistemas pervasivos funcionam de maneira muito isolada e acabam não tirando vantagem de todos os recursos disponíveis em outros sistemas.

Se os sistemas que utilizam computação onipresente pudessem compartilhar seus recursos (como sensores, infra-estrutura de software e hardware), o custo de cada sistema pervasivo seria muito reduzido.

Diversos ramos da ciência da computação precisam ser unidos e desenvolvidos para que essa infraestrutura comum possa ser oferecida aos sistemas pervasivos.

Neste contexto existem alguns projetos que oferecem propostas de soluções para algum destes problemas. Um destes projetos é o Solar da universidade de Darthmouth que é apresentado neste trabalho:


O Sistema do Projeto Solar é constituído de quatro tipos de elementos: Estrela, Planeta, Aplicação e sensores e operadores.


A estrela é o núcleo do sistema no Solar. Existe apenas uma estrela e as aplicações devem conhecer sua localização lógica. A estrela deve receber das aplicações as especificações dos dados que devem ser fornecidos a elas.


Os planetas tanto recebem da Estrela as informações referentes aos sensores e operadores necessários, tanto podem enviar informações à Estrela, entretanto informações podem ser trocadas também entre planetas não precisando passar essas informações pela Estrela, eles devem ainda fornecer as informações necessárias a Aplicação. Desta forma o Solar busca evitar que a Estrela seja gargalo do sistema.

A aplicação está interessada nas informações que são disponibilizadas pelos sensores e operadores para oferecer determinado serviço.

Os Sensores captam a informação bruta, como temperatura ambiente ou percentual de utilização da CPU de um computador.

Para tratar as informações captadas pelos sensores, existem os operadores. Os operadores modificam as informações dos sensores para que elas se ajustem aos parâmetros fornecidos pela aplicação.


Como exemplo de aplicações do Solar temos:


Doorbell: Esta aplicação consiste em informa a disponibilidade de uma pessoa em uma sala através de uma tela posicionada à porta. Por exemplo: O sistema tem um sensor no modem que informa se o telefone da sala está sendo utilizado ou não. No caso do telefone estar sendo utilizado, o status apresentado na tela é que tem alguém. Ou o sensor ainda informa a presença de pessoas na sala.


iNote: A segunda aplicação Solar é o iNote. Esta aplicação nada mais é do que um bloco de notas. Entretanto não um simples bloco de notas, mas um inteligente. O iNote é acionado quando a quando a presença do professor não é detectada em sua sala. As mensagens são apresentadas na mesma tela da aplicação Doorbell. O sistema ainda fornece informações sobre quem está próximo a interface, o aplicativo pesquisa se existe algum recado destinado àquela pessoa, caso exista, esse recado é apresentado. O usuário pode ainda responder o recado que será devidamente armazenado e apresentado ao destinatário em momento oportuno.


WhiteBoard: O WhiteBoard é uma aplicação que se dedica a armazenar as informações discutidas em determinada reunião.

Sua interface consiste de um quadro onde são anotados os assuntos discutidos na reunião: desenhos, principais tópicos, tarefas pendentes etc.

quinta-feira, 18 de setembro de 2008

Em Direção a um Modelo para Desenvolvimento de Sistemas Computacionais de Qualidade para Aplicações Onivalentes

Resumo:

Sistemas computacionais estão cada vez mais intrusivos nas nossas vidas. Inicialmente restritos a grandes instituições, as pessoas tinham contato somente com as listagens decorrentes das execuções dos programas em grandes máquinas. Na medida em que seus componentes foram se tornando mais baratos e com maior velocidade, novos sistemas computacionais foram surgindo e nossa dependência a eles foi aumentando acentuadamente, tornando – se altamente distribuídos, compostos de inúmeros componentes autônomos que se comunicam através de sinais e protocolos. Neste cenário, há diversos problemas relativos a falhas tanto de software quanto de hardware, segurança, confiabilidade do sistema como um todo, configuração dinâmica e componentes heterogêneos de inúmeros fabricantes (muitos sem especificação conhecida ou comportamento previsível). para o futuro, prevê-se uma realidade onde processadores estarão ainda mais integrados ao cotidiano de maneira quase transparente, idealmente nos informando, nos apoiando e nos protegendo ou, no pior cenário, nos enganando e prejudicando. Pretende-se analisar e identificar interdependências entre os requisitos de dependabilidade, correção, segurança, escalabilidade e evolutividade para garantir a qualidade dos sistemas computacionais do futuro, que estarão presentes no cotidiano. Pretende-se também esboçar idéias de como tratar essas relações e conflitos de forma integrada já nas fases iniciais do projeto do sistema e apresentar os desafios que precisam ser vencidos para a construção de sistemas distribuídos autônomos escaláveis. Seguramente a solução para o tratamento adequado desses requisitos passa por um esforço de reunificação das várias especialidades da computação, aproveitando de cada área sua experiência, suas tentativas mal sucedidas e suas soluções promissoras. Uma dessas soluções seria o uso de Sistemas onivalentes, que na visão de futuro da comunidade de Informática, estarão presentes em todos os ambientes e atividades humanas prestando serviços essenciais para a saúde, educação, informação, comunicação, produção e entretenimento preservando a integridade do ambiente social,
tecnológico e natural. Tais sistemas têm por características distribuição, dinamicidade e ubiqüidade, sendo essas de difícil escalabilidade, que imporão severas dificuldades ao desenvolvimento destes futuros sistemas. Para atender as expectativas e as dificuldades de qualidade de seus inúmeros usuários, precisam garantir da melhor forma possível requisitos de correção, dependabilidade, segurança, escalabilidade e evolutividade.A Interdependência entre os diferentes requisitos serão a chave para a construção das aplicações que dominarão a sociedade futura. Os modelos e abstrações hoje utilizados deverão ser substituídos por outros onde a integração de soluções prevaleça sobre a otimização de um único parâmetro.

FONTE: XXVII Congresso da SBC - XXXIV Seminário Integrado de Software e Hardware

Link: http://www.sbc.org.br/bibliotecadigital/download.php?paper=682

quarta-feira, 17 de setembro de 2008

Sistemas Pervasivos / Pâncreas Artificial

A importância da determinação da glicose no sangue decorre da doença crônica diabete. Aproximadamente 5% da população mundial sofre de diversos tipos dessa doença metabólica. As pessoas que sofrem de diabete tipo I precisam injetar doses diárias do hormônio insulina para equilibrar o valor de glicose no sangue dentro da faixa normal.
O "pâncreas artificial" serve para distribuir aos diabéticos a insulina, hormônio que regula o nível de açúcar no sangue. O aparelho libera insulina na corrente sanguínea quando um sensor detecta aumento nos níveis de açúcar (glicose) no sangue. Normalmente, o pâncreas produz insulina, mas em pessoas com diabete tipo 1, o órgão não consegue fabricar o hormônio. Por esse motivo, esses pacientes precisam tomar injeções de insulina com freqüência para manter a taxa de açúcar sob controle. O equipamento é um reservatório de insulina, que é implantado no tecido que reveste a cavidade abdominal e se conecta a um sensor introduzido na veia jugular. Quando o sensor detecta aumento na taxa de glicose sanguínea, o reservatório libera a quantidade necessária de insulina. O aparelho precisa receber em um determinado tempo uma recarga do hormônio.
Com a utilização do aparelho os níveis de açúcar no sangue permanecem sob controle durante mais de 60 por cento do tempo. Os pacientes que injetam insulina conseguem controlar a taxa de glicose em 25 por cento do tempo. Esse resultado é decorrente da precisão do sensor. O sensor consegue a leitura contínua da taxa de glicose no sangue por fazer centenas de medições durante um período de 24 horas.

Sensores contínuos de glicose
O método de diagnóstico da glicose é através da medição da taxa de glicose sangüínea do paciente. Essa medida é feita através de um exame laboratorial de sangue. Dispositivos portáteis de teste foram desenvolvidos nas últimas décadas. Esses dispositivos requerem uma quantidade ínfima de sangue e retornam uma leitura em poucos minutos. Os sensores de obtém leituras de glicemia várias vezes ao dia, o paciente pode aplicar doses de insulina adequadas a cada situação. Assim, a criação de sensores portáteis de glicose representou um avanço importante no tratamento da diabetes. Para a criação de um pâncreas artificial, o sensor tradicional de glicose não é suficiente. Um sistema de pâncreas artificial necessita de leituras contínuas de glicose. Atualmente foram lançados no mercado alguns sensores contínuos de glicose. Devido à importância do monitoramento da glicose, um grande número de princípios de sensor foi desenvolvido. Apesar de muitas tentativas e abordagens diferentes, o monitoramento contínuo da glicose no sangue mostrou ser um desafio extraordinário.

Bombas de Insulina
Bombas de insulina são dispositivas que injetam insulina no corpo do paciente a uma taxa aproximadamente constante. Há basicamente dois tipos de bomba de insulina: externa e interna. A bomba de insulina externa é o tipo mais comum. É geralmente composta de uma unidade de controle, semelhante a um Pager, e uma agulha para a injeção de insulina. Essa agulha é subcutânea, feita em geral de um material flexível, e liga-se à unidade de controle através de um tubo. A unidade de controle contém uma bateria, um reservatório de insulina, além de um visor de cristal líquido e botões para a interação com o usuário.

Conectividade
O paradigma da computação ubíqua e pervasiva vem sendo viabilizados pelo desenvolvimento das tecnologias móveis, costumam a ser caracterizados por seu pequeno tamanho, alimentação por bateria, por sua mobilidade e por terem uma conexão sem fio. A comunicação sem fio torna nosso cotidiano cada dia mais permeado por aparelhos de informação e tecnologias como laptops, PDAs e celulares.
O pâncreas artificial idealmente teria interfaces para comunicação com dispositivos externos, tanto para fins de aferição de medidas quanto para funções de controle e ajustes. Com o objetivo principal de estabelecer um padrão de conectividade e troca de mensagens que permita a interoperabilidade dos diversos dispositivos de diferentes fabricantes e o estabelecimento de um framework para o desenvolvimento de dispositivos, estações de trabalho, interfaces e aplicações, atualmente existem várias iniciativas neste sentido, das quais se destaca o Health Level Seven (HL7). É um padrão para a troca, gerenciamento e integração de dados que suportam o cuidado clínico do paciente e o gerenciamento, entrega e avaliação de serviços de saúde.
Portanto, é previsível que tanto as iniciativas atuais, como os sensores de glicose e as bombas de insulina, quanto os futuros protótipos de pâncreas artificiais procurem ter seu desenvolvimento de acordo com padrões e protocolos que estão sendo estabelecidos para o contexto de conectividade em dispositivos de testes no local de cuidado.

Fonte: http://alexandre.sabbatini.com/documentos/pancreas-artificial.pdf