• Nenhum resultado encontrado

Elementos Essenciais Implementados na Plataforma CCM-tel

4.3 A Plataforma CCM-tel

4.3.6 Elementos Essenciais Implementados na Plataforma CCM-tel

Nesta seção, faz-se uma breve descrição das soluções tecnológicas adotadas na implementação da plataforma CCM-tel para os elementos essenciais CM-tel, descritos na Seção 2.2.

Padrão para Especificação do Comportamento de Componentes

O modelo CM-tel define como o comportamento de um componente CM-tel é descrito por:

• uma especificação do componente por uma notação neutra utilizando a linguagem de notação UML ou a linguagem XML (ou seja, não utiliza uma notação dependente de tecnologia tal como a linguagem IDL ou interface Java);

• interfaces (contrato de uso):

– a natureza sintática dos aspectos funcionais é provida pelas interfaces IDL geradas pela

plataforma CCM-tel;

– a natureza semântica (comportamental) dos aspectos funcionais é provida por restrições

em UML e em XML (invariantes, pré- e pós-condições).

• aspectos não-funcionais (contrato de realização):

– suporte a fluxos de áudio e vídeo com facilidades de qualidade de serviço; a agentes

móveis; mecanismos para a adaptação do ambiente de execução; e, extensões por meio de interceptadores portáveis;

– aderência ao modelo de projeto garantido pela geração automática de código.

• documentação do componente realizada por arquivo em XML8.

Esquema de Nomes Padronizado

A plataforma CCM-tel utiliza o serviço de nomes do CORBA para o registro e acesso a com- ponentes, agentes móveis e contêineres, que é feito por meio do registro do localizador de fábricas (HomeFinder) no serviço de nomes.

O padrão para nomes CCM-tel define nomes globais únicos para a identificação de componentes, agentes móveis, fábricas de componentes e de agentes móveis e localizador de fábricas, onde:

• o nome do localizador de fábricas (HomeFinder) é registrado no serviço de nomes e representa o nome de uma instância de um contêiner;

• o nome da fábrica de componentes (ComponentHome) é registrado no localizador de fábricas do contêiner;

• o nome da fábrica de agentes móveis (AgentHome) é registrado no localizador de fábricas;

• cada instância de um tipo de componente possui uma chave arbitrária (String), que é registrada na fábrica do componente;

• cada instância de um tipo de agente possui um nome (String), que é registrado na agência.

A Figura 4.23 apresenta o espaço de nomes que ilustra a hierarquia de nomes utilizada pela plataforma CCM-tel para a localização (obtenção da referência) de componentes e agentes móveis a partir dos localizadores de fábricas. Note que utilizando esta hierarquia para a obtenção de referên- cias de componentes e de agentes móveis é possível a realização de um filtro de segurança (baseado, por exemplo, em interceptadores), onde são verificados os possíveis acessos a estes elementos.

Localizador de Fábricas Localizador de Fábricas Localizador de Fábricas Componentes Fábrica de Agentes Fábrica de Componentes Fábrica de Componente Instância de Componente Instância de Instância de Agente Instância de Agente Serviço de Nomes registra

Fig. 4.23: Hierarquia de nomes na plataforma CCM-tel.

Padrão para Metadados

A plataforma CCM-tel define os conceitos de navegação para componentes, onde a partir da interface equivalente do componente é possível acessar as suas demais interfaces, bem como para agentes móveis, onde é possível a partir da agência acessar as referências dos agentes hospedados.

A plataforma CCM-tel possibilita gerar entradas para os repositórios de interface e de implemen- tação CORBA para a obtenção de informações adicionais sobre as interfaces e os seus métodos. Em adição, está previsto uma extensão ao modelo onde uma interface de introspecção do componente fornece um documento XML com estas informações. Este documento será útil para que ferramentas de distribuição conheçam informações sobre um determinado componente após a sua instalação.

Padrão para Interoperabilidade

A plataforma CCM-tel obtém interoperabilidade por meio do CORBA/IIOP, padrão usado para comunicação entre componentes. Por ser uma solução independente de linguagem, permite apenas a

passagem de objetos passíveis de serem definidos em IDL, em invocações de métodos definidos na interface do componente.

Padrão para Especialização

A plataforma CCM-tel define especialização de componentes e contêineres pelo elemento de configuração (propriedades). Tipicamente, as propriedades são ativas podendo ser configuradas no momento de instanciação de componentes e alteradas em tempo de execução.

Padrão para Composição

A plataforma CCM-tel define um padrão para composição que suporta as três principais formas de composição [34], que são comumente definidas pelas tecnologias de componentes existentes atu- almente:

• técnica de composição orientada-a-objetos, ou seja, os objetos podem ser compostos (no sentido de usados juntos), o que é proporcionado pela arquitetura CORBA;

• técnica de composição orientada-a-conexão, que é proporcionada pelo modelo CM-tel pela interconexão das portas de componentes.

• técnica de composição contextual, por meio do contêiner CCM-tel. Um contêiner encerra com- pletamente as instâncias de componentes e de agentes móveis que ele hospeda. Além disso, um contêiner está implícitamente conectado a todas as instâncias hospedadas e este pode in- terceptar e gerenciar todas as comunicações que chegam e saem, por exemplo, tratar aspectos relacionados à segurança. Ou seja, todas as instâncias hóspedes se beneficiam uniformemente dos aspectos não-funcionais fornecidos e estão restritas às políticas e propriedades impostas pelo seu contêiner.

Padrão para Suporte à Evolução

A plataforma CCM-tel permite que mudanças em um componente (substituição por um outro componente que contenha uma implementação mais atual com novas interfaces e preservando as in- terfaces existentes; ou evolução com a atualização de novas versões de uma mesma implementação) sejam realizadas sem qualquer efeito sobre os demais componentes. Porém, a aplicação é respon- sável pela atualização das novas referências e a destruição das referências removidas (por exemplo, atualizações em receptáculos que abrigam a referência do componente antigo).

Padrões para Empacotamento e Distribuição

A plataforma CCM-tel utiliza arquivos no formato nativo da linguagem Java (tipo JAR) para o empacotamento das classes necessárias à distribuição de componentes e de contêineres.

A plataforma CCM-tel utiliza descritores de distribuição expressos na linguagem XML. Além de utilizar um descritor de montagem (assembly), como no CCM, o modelo CM-tel (e, conseqüente- mente a plataforma CCM-tel) permite que o descritor de montagem possa ser obtido diretamente a partir de diagramas UML, de colaboração e de distribuição (esta facilidade encontra-se em desen- volvimento).