Projeto e Implementação de uma Plataforma de Sistemas Distribuídos Configurável
SANTOS, B.S. COSTA, F.M. (orientador)
Instituto de Informática
Universidade Federal de Goiás
{brunosilva, fmc}@inf.ufg.br
Resumo
Um sistema distribuído é uma coleção de computadores autônomos, fornecendo ao usuário a impressão de um sistema centralizado. Um sistema distribuído possui problemas típicos não existentes em um sistema centralizado, como assincronismo, duplicação de pacotes e heterogeneidade de dispositivos e protocolos de rede. Tais problemas são mascarados através de uma camada de software denominada plataforma de middleware. Assim, este trabalho apresenta uma plataforma de middleware configurável, baseada no modelo de objetos da plataforma Meta-ORB, voltada para Palmtops.
Palavras-chave: plataformas de middleware, middleware configurável, sistemas distribuídos, computação móvel.
Um sistema distribuído é composto por um conjunto de computadores independentes, com o objetivo de fornecer ao usuário, a visão de um sistema simples, isto é, centralizado. Como esses computadores, normalmente, não possuem a mesma arquitetura e a mesma forma de comunicação pela rede, os sistemas distribuídos são organizados utilizando-se uma camada de software, comumente denominada plataforma de middleware.
As plataformas de middleware existentes e mais conhecidas possuem uma arquitetura na qual o funcionamento da plataforma se mantém constante, independentemente da categoria da aplicação. Assim, se faz necessário a implementação de plataformas de middleware que possam ser configuradas de maneira flexível, aproveitando, da melhor forma os recursos e condições atuais do sistema.
Neste contexto, o presente trabalho apresenta uma versão, em Java 2 Micro Edition (J2ME) [SUN1, 2004], da plataforma Meta-ORB [COSTA, 2001], voltada para dispositivos móveis, notadamente, Palmtops.
Metodologia
A implementação J2ME do núcleo da plataforma Meta-ORB está sendo realizada utilizando a configuração CLDC/MIDP 1.0 de J2ME, e seguindo o modelo incremental, descrito a seguir:
a) estabelecimento de comunicação entre um programa escrito em J2ME localizado em um PDA (Palmtop), com um servlet Java, através do protocolo de comunicação http;
b) integração de um midlet (programa escrito em J2ME) com o repositório de tipos da plataforma Meta-ORB, obtendo definições de componentes que integram a plataforma;
c) estabelecimento de um binding implícito sobre HTTP entre um midlet e um componente definido segundo o modelo da plataforma, permitindo que o midlet se comporte como cliente deste componente;
d) implementação de bindings primitivos para a comunicação entre uma parte da plataforma, localizada no PDA, e o restante da plataforma Meta-ORB, localizada em um Desktop.
Existem alguns aplicativos necessários para a construção de programas voltados para o ambiente portátil dentre os quais podemos citar:
O principal resultado obtido deste trabalho é a implementação de uma versão, escrita em J2ME, da plataforma Meta-ORB, possibilitando a sua execução em um Palmtop. Esta versão possui elementos básicos da plataforma, tais como os componentes (entidades para encapsulamento de estado e funcionalidade) e os bindings implícitos e primitivos.
Os bindings implícitos se destinam à realização de chamadas remotas de métodos. Contudo, o fato de MIDP 1.0 disponibilizar apenas HTTP como protocolo de comunicação e não haver formas de se localizar um Palmtop na rede, nos forçou a implementar uma arquitetura baseada em proxies, a fim de servir como meio de comunicação fixa e bem conhecida entre uma aplicação no Palmtop e uma em Desktop.
Bindings primitivos são objetos distribuídos, geralmente localizados em mais de um espaço de endereçamento de memória, com o objetivo de conectar as interfaces de componentes que interagem entre si. Um binding encapsula aspectos e mecanismos de baixo nível, tais como o protocolo de comunicação utilizado, a multiplexação e demultiplexação de interações, transformações nos pacotes de dados (compressão, criptografia, etc), e controle da Qualidade de Serviço (QoS). Sua implementação em J2ME, assim, como os bindings implícitos, também é baseada em uma arquitetura de proxies, uma vez que parte do binding pode estar em um dispositivo móvel.
Uma grande contribuição deste trabalho é o fornecimento de uma plataforma de middleware configurável e voltada para dispositivos móveis. Assim, o programador tem liberdade para customizá-la, conforme a ocasião, de forma bem flexível.
Entretanto, pelo fato de termos adotado J2ME, alterações tiveram que ser feitas no intuito de manter as características do modelo de objetos da plataforma Meta-ORB. Funcionalidades como bindings implícitos tiveram que possuir toda uma arquitetura elaborada para que a sua realização fosse possível. Outra dificuldade enfrentada com a utilização de MIDP 1.0 é comunicação com HTTP, o que se refletiu em formas contornar essa limitação, como, por exemplo, as sucessivas requisições feitas pelo CommServer ao proxy, no intuirto de verificar se uma invocação remota de método foi efetuada.
Finalmente, o estado atual desta versão J2ME possibilitará a implementação de elementos mais complexos do modelo de objetos da plataforma Meta-ORB (componentes e bindings compostos).
Referências Bibliográficas
[COSTA 2001] Costa, F.M. Combining Meta-Information Management and Reflection in an Arquitecture for Configurable and Reconfigurable Middleware, in Computing Department. 2001, University of Lancaster: Lancaster.
[SUN1, 2004] SUN MICROSYSTEMS, INC. Java 2 Platform, Micro Edition (J2ME). Disponível em: <http://java.sun.com/j2me/>. Acesso em: 19 de setembro de 2004.
[SUN2, 2004] ______, Java 2 Platform Micro Edition, Wireless Toolkit Disponível em: <http://java.sun.com/products/j2mewtoolkit/>. Acesso em: 19 de setembro de 2004.
[SUN3, 2004] ______, MIDP for Palm OS. Disponível em: <http://java.sun.com/products/midp4palm/>. Acesso em: 19 de setembro de 2004.
Financiamento
Este período de bolsa foi financiado pelo Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq).