Ela seria uma linguagem de domínio específico? Aplicação específica? Arquétipo específico? Podem chamá-la do que quiserem. Mas a linguagem W...
Ela seria uma linguagem de domínio específico? Aplicação específica? Arquétipo específico? Podem chamá-la do que quiserem. Mas a linguagem WASP (Wireless sensor network Archetype-Specific Programming) parece ser tudo o que pesquisadores que utilizam redes de sensores sem fios pediram a Deus.
Interface de programação da versão melhorada da linguagem WASP (WASP2)
Pesquisadores que monitoram abalos sísmicos, rastreiam o deslocamento de animais ou medem a vibração em pontes e viadutos, se ressentem de uma forma mais amigável de programar o software embarcado nos sensores que formam um rede sem fio para coleta de dados.
Essas redes de sensores sem fios são conjuntos de aparelhos dedicados à coleta contínua de dados (meteorológicos, sismológicos, vulcanológicos etc).
Como a disposição espacial desses equipamentos em rede prevê que essas informações devem ser colhidas em inúmeros nós espalhados, ininterruptamente e em tempo real, os próprios sensores devem ter uma capacidade de processamento suficiente para transmitir seus dados para um nó central, onde eles serão processados. E isso se dá acoplando a eles um circuito baseado em microprocessadores.
Esse tipo de equipamento é um exemplo de um sistema dedicado (embedded systems), ou seja, um sistema cuja função é efetuar uma tarefa específica, ao contrário de um computador comum, projetado para executar infindáveis tarefas diferentes e cuja finalidade fica ao sabor de seu proprietário.
Módulo composto por sensor e sistema de processamento
O grande problema é a dificuldade de se programar os microprocessadores dos sistemas dedicados (embedded systems), com suas linguagens de baixo nível e com pouquíssima disponibilidade de memória, o que contrasta com a programação de um computador tradicional, com inúmeras linguagens gráficas de alto nível disponíveis, bem amigáveis e teoricamente mais produtivas.
Esse é um dos principais entraves na proliferação do uso das redes de sensores, o que dificulta a pesquisa em diversas áreas.
Para conceber a nova linguagem de programação para sistemas dedicados, os pesquisadores Robert Dick, Lan Bai, e Peter Dinda, estudaram as variáveis que um cientista normalmente deseja monitorar com a rede de sensores sem fios e as áreas nas quais a pesquisa exige maior flexibilidade.
Assim, eles obtiveram 19 dessas propriedades em nível de aplicação. Em seguida, essas propriedades foram agrupadas em sete categorias (arquétipos) que reúnem os diferentes tipos de monitoramento que os cientistas normalmente realizam.
O WASP faz parte de um projeto mais amplo denominado ABSYNTH (The Archetype-Based SYNTHesis Project), que tem o objetivo de simplificar o projeto e a implementação de redes de sensores por cientistas, e é a linguagem para a programação do primeiro arquétipo e já está pronta para uso.
Por exemplo, linguagens tradicionalmente usadas em dispositivos desse tipo (por exemplo: SwissQM e TinyDB), costumam fazer uma abstração dos dados coletados como sendo um instantâneo (snapshot) da rede de sensores que contém somente os dados atuais. Para consultas tempestivas sobre os dados históricos um storage point (ponto de armazenamento) precisa ser criado explicitamente. Exemplificando, na linguagem TinyDB o comando
CREATE STORAGE POINT recentlight SIZE 8
AS (SELECT nodeid, light
FROM sensors
SAMPLE PERIOD 10s)
criaria um storage point para as últimas oito amostras de luz. Uma simples aplicação que comparasse as amostras atuais com leituras prévias necessitaria que os programadores provesse consultas do tipo join (junção) entre as tabelas dos sensores e o ponto de armazenamento criado.
Ocorre é que joins são estruturas de consulta complexas onde até experientes usuários de banco de dados cometem erros.
O WASP minimiza essa complexidade tornando ambos os dados, históricos e atuais, disponíveis para os programadores. Eles permite que os desenvolvedores vejam a rede como matrizes indexadas onde cada uma corresponde a uma variável no nível de um nó da rede e armazena o fluxo de um tipo de dado em particular.
Amostras recentes ou dados computados atuais seriam inseridos no topo da matriz e esta seria indexada começando por 0 (zero). Dessa forma, os dados históricos seriam alcançados percorrendo-se a matriz. Outra diferença da linguagem WASP é que ela permite que o programa seja especificado em dois níveis. No nível do nó (iniciado pelo comando "local:") e no nível da rede (iniciado pelo comando "network:").
De acordo com os estudos com usuários, o WASP reduziu o tempo médio de desenvolvimento em 44,4% quando comparado com outras linguagens.
Para avaliar a facilidade de programação da linguagem WASP, o time de pesquisadores fez uma avaliação, na qual 28 programadores tinham 56 horas para fazer um programa para um sistema incorporado.
Usando as linguagens de sua preferência, 30% dos programadores conseguiram executar a tarefa. Quando passaram a usar WASP, a taxa de sucesso subiu para 81%. Um dos programadores fez o programa em apenas 12 minutos. :-)
Agora a equipe do Dr. Dick está trabalhando nos outros seis arquétipos, para que a linguagem possa auxiliar no desenvolvimento das redes de sensores sem fios em todas as suas possibilidades de aplicação.
Seria muito bom que as experiências advindas desse projeto pudessem ajudar estudiosos de outras áreas do conhecimento, leigos em programação avançada, a desenvolver soluções informatizadas de uma maneira mais amigável. Embora isso já tenha sido tentado incontáveis vezes, essa abordagem pode indicar um meio mais proativo de atacar o problema.
Fonte: Archetype-Based Design: Sensor Network Programming for Application Experts, Not Just Programming Experts, Inovação Tecnológica, Dr. Dobb´s CodeTalk
Pesquisadores que monitoram abalos sísmicos, rastreiam o deslocamento de animais ou medem a vibração em pontes e viadutos, se ressentem de uma forma mais amigável de programar o software embarcado nos sensores que formam um rede sem fio para coleta de dados.
A maioria das linguagens de programação para redes de sensores sem fios são um pesadelo para os não-programadores. Nós estamos trabalhando em formas de permitir que os cientistas que realmente usam os equipamentos programem-nos de forma confiável sem ter que contratar um especialista em linguagem de programação de embedded systems.
Robert Dick, Universidade de Michigan, EUA
Essas redes de sensores sem fios são conjuntos de aparelhos dedicados à coleta contínua de dados (meteorológicos, sismológicos, vulcanológicos etc).
Como a disposição espacial desses equipamentos em rede prevê que essas informações devem ser colhidas em inúmeros nós espalhados, ininterruptamente e em tempo real, os próprios sensores devem ter uma capacidade de processamento suficiente para transmitir seus dados para um nó central, onde eles serão processados. E isso se dá acoplando a eles um circuito baseado em microprocessadores.
Esse tipo de equipamento é um exemplo de um sistema dedicado (embedded systems), ou seja, um sistema cuja função é efetuar uma tarefa específica, ao contrário de um computador comum, projetado para executar infindáveis tarefas diferentes e cuja finalidade fica ao sabor de seu proprietário.
O grande problema é a dificuldade de se programar os microprocessadores dos sistemas dedicados (embedded systems), com suas linguagens de baixo nível e com pouquíssima disponibilidade de memória, o que contrasta com a programação de um computador tradicional, com inúmeras linguagens gráficas de alto nível disponíveis, bem amigáveis e teoricamente mais produtivas.
Esse é um dos principais entraves na proliferação do uso das redes de sensores, o que dificulta a pesquisa em diversas áreas.
Nova linguagem de programação
Para conceber a nova linguagem de programação para sistemas dedicados, os pesquisadores Robert Dick, Lan Bai, e Peter Dinda, estudaram as variáveis que um cientista normalmente deseja monitorar com a rede de sensores sem fios e as áreas nas quais a pesquisa exige maior flexibilidade.
Assim, eles obtiveram 19 dessas propriedades em nível de aplicação. Em seguida, essas propriedades foram agrupadas em sete categorias (arquétipos) que reúnem os diferentes tipos de monitoramento que os cientistas normalmente realizam.
O WASP faz parte de um projeto mais amplo denominado ABSYNTH (The Archetype-Based SYNTHesis Project), que tem o objetivo de simplificar o projeto e a implementação de redes de sensores por cientistas, e é a linguagem para a programação do primeiro arquétipo e já está pronta para uso.
Os cientistas inserem as necessidades e nosso sistema organiza os detalhes da implementação automaticamente.
Robert Dick, Universidade de Michigan, EUA
Por exemplo, linguagens tradicionalmente usadas em dispositivos desse tipo (por exemplo: SwissQM e TinyDB), costumam fazer uma abstração dos dados coletados como sendo um instantâneo (snapshot) da rede de sensores que contém somente os dados atuais. Para consultas tempestivas sobre os dados históricos um storage point (ponto de armazenamento) precisa ser criado explicitamente. Exemplificando, na linguagem TinyDB o comando
CREATE STORAGE POINT recentlight SIZE 8
AS (SELECT nodeid, light
FROM sensors
SAMPLE PERIOD 10s)
criaria um storage point para as últimas oito amostras de luz. Uma simples aplicação que comparasse as amostras atuais com leituras prévias necessitaria que os programadores provesse consultas do tipo join (junção) entre as tabelas dos sensores e o ponto de armazenamento criado.
Ocorre é que joins são estruturas de consulta complexas onde até experientes usuários de banco de dados cometem erros.
O WASP minimiza essa complexidade tornando ambos os dados, históricos e atuais, disponíveis para os programadores. Eles permite que os desenvolvedores vejam a rede como matrizes indexadas onde cada uma corresponde a uma variável no nível de um nó da rede e armazena o fluxo de um tipo de dado em particular.
Amostras recentes ou dados computados atuais seriam inseridos no topo da matriz e esta seria indexada começando por 0 (zero). Dessa forma, os dados históricos seriam alcançados percorrendo-se a matriz. Outra diferença da linguagem WASP é que ela permite que o programa seja especificado em dois níveis. No nível do nó (iniciado pelo comando "local:") e no nível da rede (iniciado pelo comando "network:").
Comparação entre linguagens de programação
De acordo com os estudos com usuários, o WASP reduziu o tempo médio de desenvolvimento em 44,4% quando comparado com outras linguagens.
Para avaliar a facilidade de programação da linguagem WASP, o time de pesquisadores fez uma avaliação, na qual 28 programadores tinham 56 horas para fazer um programa para um sistema incorporado.
Usando as linguagens de sua preferência, 30% dos programadores conseguiram executar a tarefa. Quando passaram a usar WASP, a taxa de sucesso subiu para 81%. Um dos programadores fez o programa em apenas 12 minutos. :-)
Agora a equipe do Dr. Dick está trabalhando nos outros seis arquétipos, para que a linguagem possa auxiliar no desenvolvimento das redes de sensores sem fios em todas as suas possibilidades de aplicação.
Seria muito bom que as experiências advindas desse projeto pudessem ajudar estudiosos de outras áreas do conhecimento, leigos em programação avançada, a desenvolver soluções informatizadas de uma maneira mais amigável. Embora isso já tenha sido tentado incontáveis vezes, essa abordagem pode indicar um meio mais proativo de atacar o problema.
Fonte: Archetype-Based Design: Sensor Network Programming for Application Experts, Not Just Programming Experts, Inovação Tecnológica, Dr. Dobb´s CodeTalk
Já passou da hora de criarem uma linguagem assim, aliás, deveria haver uma sistema para se evitar a programação, já que tudo o que executamos são as mesmas rotinas.
ResponderExcluirA linguagem de suporte parece um sistema arcaico onde todos que acessam a internet, querem ter um site, estão sujeitos.
Os sites pré construidos são ridículos.