• Nenhum resultado encontrado

Contribuições do Trabalho Proposto

As seguintes contribuições foram identificadas no âmbito desta tese:

• definição de um modelo independente de tecnologia para o desenvolvimento orientado a com- ponentes de software de novas aplicações, definido por meio da linguagem UML (Unified Mod-

eling Language);

• construção de protótipos de plataformas de suporte ao modelo de componentes de software proposto;

• validação das plataformas (e por conseguinte, do modelo) pelo protótipo de uma aplicação telemática e ubíqua de grande porte, o laboratório virtual REAL1.

Consideramos estas contribuições um passo importante para atender aos requisitos impostos pelas aplicações telemáticas e ubíquas listados na seção anterior. Em adição, o desenvolvimento baseado em componentes de software atende o requisito de suporte para a integração de componentes em oposição à programação. A integração entre os paradigmas de componentes de software e agentes móveis atende o requisito de suporte para novos paradigmas de computação distribuída. O suporte a interfaces de fluxo contínuo com facilidades de qualidade de serviço atende ao requisito de suporte para interações baseadas em multimídia distribuída em tempo real. Finalmente, o requisito de suporte para adaptação dinâmica das aplicações aos ambientes de execução pode ser atendido pelo emprego de agentes móveis como relatado em Guimarães [25].

Modelo para o Desenvolvimento Orientado a Componentes de Software de Novas Aplicações

A principal contribuição deste trabalho é a proposta e validação experimental de um modelo para o desenvolvimento orientado a componentes de software de aplicações telemáticas e ubíquas. O modelo proposto pela autora, denominado CM-tel2[26][25] apresenta características inéditas em relação aos

modelos de componentes existentes.

O modelo CM-tel é independente de tecnologia e facilita o processo de desenvolvimento de soft-

ware fornecendo uma solução integrada em que os componentes de software, agentes móveis e am-

bientes de execução são fornecidos de forma automatizada por uma plataforma, a partir de especi- ficações de alto nível e também independentes de tecnologia. Alguns aspectos não-funcionais pro- porcionados incluem distribuição, mobilidade de código, comunicação multimídia distribuída com facilidades de qualidade de serviço e acesso transparente aos serviços requisitados por componentes e agentes.

1Remotely Accessible Laboratory.

O modelo de componentes de software proposto utiliza o mecanismo de perfis (extensões) da linguagem UML (UML profile) para definir os seus artefatos (componentes e seus ambientes de exe- cução) que serão usados para descrever aplicações telemáticas e ubíquas de forma independente de tecnologia. Um perfil UML [27] é uma especificação que especializa o metamodelo UML [28] para um domínio específico de referência. O perfil UML definido permite validar os componentes e ambi- entes de execução aderentes ao modelo proposto e especificados em UML. Posteriormente, o modelo é mapeado para plataformas de middleware com diferentes tecnologias de implementação, mantendo as mesmas especificações em UML. Acreditamos que o desenvolvimento utilizando um alto nível de abstração em UML terá um papel central nas propostas das plataformas de suporte da próxima geração. As futuras aplicações distribuídas se concentrarão na especificação e terão a maior parte do código gerada automaticamente.

Componentes especificados segundo o perfil UML definido pelo modelo CM-tel oferecem um conjunto de interfaces que abrangem as três interfaces prescritas pelo modelo de referência RM-ODP: interfaces de fluxo contínuo (ou stream) para suporte à comunicação multimídia distribuída, interfaces de notificação (de eventos) e interfaces operacionais para suporte à interação tipo cliente/servidor. A combinação destas três interfaces integradas no mesmo modelo de componentes é inédita e possibilita especificar interações de elevada complexidade pela composição de portas complementares no nível de projeto. O processo de composição é bastante simplificado, o que viabiliza inclusive a construção de plataformas leves para o modelo (por exemplo, para execução em dispositivos móveis sem fio). Em adição, o modelo fornece uma interface para a especialização de componentes.

O modelo de componentes CM-tel proposto é inovador também no que diz respeito ao ambiente de execução, os chamados contêineres. Nos modelos de componentes existentes, o papel reservado ao contêiner é a instanciação e controle do ciclo de vida dos componentes, além de prover funções, tais como transação, persistência e segurança. No modelo de componentes proposto, o contêiner tem um papel adicional, qual seja, abrigar também código móvel (isto é, o contêiner desempenha o papel de agência na terminologia de agentes móveis). Desta forma, além de suportar de forma integrada as interfaces citadas acima, uma solução integrada entre os paradigmas de agentes móveis e de componentes de software também é facilitada, posto que ambos compartilham o mesmo ambiente de execução. O ponto forte desta solução integrada é permitir a sua utilização em alto nível sem que o desenvolvedor se preocupe com os detalhes de acesso a estas funcionalidades providenciadas pelo contêiner. De forma semelhante a componentes, o contêiner fornece uma interface para a sua especialização, bem como para a gerência do conjunto de componentes e agentes hospedados.

Plataformas de Suporte ao Modelo de Componentes de Software CM-tel

Plataformas de suporte ao modelo de componentes de software CM-tel viabilizam a geração, ins- talação, configuração e gerência de componentes, contêineres e agentes móveis para uma dada tec-

nologia. O trabalho proposto apresenta uma estratégia de desenvolvimento de plataformas baseada no conceito de mapeamento. Um mapeamento pode ser visto como uma transformação de uma es- pecificação neutra (no caso, em linguagem UML) para uma especificação em uma dada tecnologia (por exemplo, CORBA). Este trabalho propõe uma estratégia geral de mapeamento baseada em trans- formações XML (Extensible Markup Language) [29].

Para a construção do protótipo da primeira plataforma para o suporte ao modelo de componentes de software CM-tel, denominada plataforma CCM-tel3 [30][25], escolhemos um mapeamento para

as tecnologias CORBA e Java. A primeira versão da ferramenta de geração de código para esta plataforma foi desenvolvida pelo aluno Miglinski, como tema de sua dissertação de mestrado [2]. Esta ferramenta gera código com o emprego de um analisador XML, que transforma especificações XML de componentes e contêineres CM-tel em código Java e CORBA.

Uma versão mais elaborada desta plataforma, desenvolvida pela autora com contribuição do professor Eleri Cardozo, inclui o desenvolvimento e integração na plataforma dos quatro serviços CORBA de suporte que foram utilizados nos protótipos4. Nesta nova versão, a plataforma CCM-tel

emprega transformações XSLT (XML Stylesheet Language Transformation) [31] na ferramenta para geração de código a partir de especificações XML de componentes e contêineres do modelo CM-tel. O aluno Gomes [32] contribuiu com a implementação de novas transformações XSLT na plataforma CCM-tel (transformação de UML para XML). Estas transformações possibilitam a geração de código a partir de especificações de componentes e contêineres em UML, conforme definido pelo modelo CM-tel. A inclusão de facilidades de qualidade de serviço no nível do modelo, do serviço de comu- nicação multimídia e da plataforma foram adicionados pela autora, enquanto que no nível de rede houve a contribuição dos alunos Pinto [33][34] e Souza [35].

O protótipo de uma segunda plataforma, denominada WSCM-tel, está em desenvolvimento e contempla a implementação de um mapeamento do modelo CM-tel proposto para as tecnologias de Serviços Web (SOAP5, WSDL6 e UDDI7) e J2ME (Java 2 Micro Edition). Este protótipo gera código para utilização tanto em dispositivos móveis sem fio de baixo poder computacional, quanto em computadores convencionais. Este protótipo faz parte da dissertação de mestrado de Gomes [32].

Validação do Modelo e da Plataforma de Suporte

Uma contribuição que também consideramos importante é a validação do modelo CM-tel e da plataforma CCM-tel. Para isto, desenvolvemos dois protótipos de uma aplicação telemática e ubíqua

3CORBA Component Model for telematic applications.

4Serviços de eventos, de propriedades, de comunicação multimídia distribuída e de gerência de agentes móveis. 5Simple Object Access Protocol [36].

6Web Service Description Language [37].

no âmbito do laboratório virtual REAL [39][40][30]. Esta aplicação permite o acesso remoto, através da intranet ou Internet, a equipamentos robóticos autônomos e móveis localizados no CenPRA8.

O projeto REAL foi iniciado em 1997 pelo Dr. Marcel Bergerman, pesquisador do CenPRA na época. O Dr. Bergerman coordenou o projeto até o seu desligamento do CenPRA em 2001. No desenvolvimento do primeiro protótipo do laboratório REAL utilizamos uma plataforma de objetos distribuídos (CORBA e Java), implementada no início desta tese e, no segundo protótipo utilizamos a plataforma CCM-tel. Participaram do desenvolvimento do primeiro protótipo os alunos Maffeis [41] e Pereira [42] (modo avançado de interação), Russo [43] (modo básico de interação), a autora (modo assistido de interação) e Pinto [25] (sessão de acesso aderente a TINA). Esta implementação foi demonstrada na mostra de Ciência e Tecnologia para o Desenvolvimento (CIENTEC) [44], onde o usuário localizado na UNICAMP enviou e acompanhou remotamente a execução dos seus algoritmos de navegação executados pelo robô localizado no CenPRA.

O segundo protótipo foi desenvolvido pelos alunos Maffeis (modo avançado de interação), Souza [45] (modo básico de interação), Sassi [46] (modo assistido de interação) e pela autora (nova sessão de acesso e aplicação de controle de QoS [25]). A autora atua como coordenadora do projeto REAL junto ao CenPRA, tendo participado da concepção dos protótipos das aplicações.

Para a validação da segunda plataforma (WSCM-tel), duas aplicações estão sendo desenvolvidas para a utilização de dispositivos móveis como terminais de acesso: uma primeira aplicação na área de gerência de redes e uma segunda que reutiliza o projeto do modo básico de interação do labo- ratório REAL. Estas aplicações estão em fase de desenvolvimento pelos alunos Gomes e Pereira [47], respectivamente.