quarta-feira, 24 de setembro de 2008

Trabalho 1- Orientação a objetos aplicada a computação pervasiva

A computação pervasiva surge como um modelo computacional que visa integrar de forma transparente os vários componentes de hardware e software já existentes com vistas a obter uma gama de potenciais aplicações que facilitam as tarefas dos usuários nestes ambientes. Entretanto o principal obstáculo encontrado no esforço de desenvolver ambientes pervasivos é obter a integração transparente entre as facilidades oferecidas por estes componentes com as necessidades do usuário.
A arquitetura é composta de três camadas: Aplicação, Componentes e Sistema. A camada Aplicação, por sua vez, dispõe ao programador dois níveis de abstração no desenvolvimento de aplicações. Em um nível maior de abstração, o programador apenas declara seus componentes, por meio de classes do paradigma orientado a objetos. Em outro nível, a aplicação é estendida de forma a resolver questões de mobilidade e pervasividade segundo os conhecimentos dos programadores sobre o comportamento da aplicação. O grande desafio na computação pervasiva é integrar de forma transparente os vários componentes de hardware e software existentes. Exemplos de componentes de hardware podem ser encontrados em dispositivos eletrônicos (sensores, eletrodomésticos, entre outros) e componentes móveis computacionais tais como celulares, PDAs e laptops. Já componentes de software em sua maioria constituem-se de aplicações, componentes reutilizáveis e serviços de software. Este trabalho propõe o paradigma de OOP como forma de estruturar e integrar os diferentes componentes de hardware e software existentes. A expectativa é de que, apesar das diferenças entre esses componentes, todos podem ser potencialmente representados por objetos do paradigma de OOP. Conceitualmente, este paradigma viabiliza um mapeamento direto do mundo real para o programa orientado a objetos, sendo, portanto aplicável na tarefa de modelar os diversos componentes de hardware existentes. Os objetos do paradigma possuem capacidade de receber mensagens, de processarem dados e de enviar mensagens a outros objetos, o que caracteriza a interatividade dos objetos correspondentes no mundo real.
Os serviços, por sua vez, não necessariamente são estruturados via paradigma de OOP. Essas construções essencialmente provêem serviços através de uma Interface Description Language (IDL), que define o serviço e seu protocolo de mensagem independente de sua implementação e da plataforma utilizada.

Arquitetura de MagnOb


MagnOb oferece suporte ao desenvolvimento e execução de aplicações pervasivas através de uma arquitetura em camadas, é dividida em três camadas: Aplicação, Componentes e Sistema. Na camada Aplicação, aplicações são desenvolvidas em termos de seus objetos e, opcionalmente, através do uso de facilidades providas por uma API para a manipulação destes objetos. Na camada
Componentes, estes objetos têm sua funcionalidade estendida, de forma transparente às demais camadas, para suportar diversos recursos e mapeamentos previstos no modelo de programação e de execução. A camada
Sistema, por sua vez, é responsável por criar uma arquitetura virtual de suporte à execução dos objetos de MagnOb.


Interface de programação

Para que objetos possam fazer parte do ambiente de execução pervasiva, suas respectivas classes devem ser declaradas com a palavra-reservada mclass (MagnOb class), em substituição a palavra-reservada class de Java. As classes declaradas dessa forma são pré-processadas por uma compilador integrado à ferramenta com vistas a introduzir suporte aos vários recursos oferecidos pelo modelo de programação e execução de MagnOb.
Na camada Aplicação, os recursos introduzidos pelo pré-processamento são acessados através de uma API, a qual consiste em uma interface estendida das classes que definem objetos MagnOb. Nesse contexto, instâncias dessas classes terão acesso a outros métodos além daqueles implementados ou herdados por estas classes. Esta abordagem permite que a vinculação de tipos de dados utilizados para a manipulação de objetos MagnOb seja realizada em tempo de compilação, sendo transparente em tempo de desenvolvimento e gerando menos overhead em tempo de execução.

Link: http://www.inf.unisinos.br/~barbosa/pipca/consipro1/a9.pdf

Nenhum comentário: