Para realizar a interoperabilidade entre diferentes protocolos, o proxy deverá adotar estratégias especícas para cada par de protocolos. Essas estratégias podem variar de acordo com o protocolo em questão, modicando o comportamento do proxy para a des- coberta do protocolo, como já exemplicado na Figura ?? da seção anterior, ou como cada módulo irá se comportar internamente para realizar a ponte entre os protocolos. O Módulo de Análise é o responsável direto por realizar essa operação entre os diferen- tes protocolos, abordando estratégias especícas de acordo com as especicações de cada protocolo analisado.
Em relação à interoperabilidade entre os protocolos DLNA e UPnP, o Módulo de Análise realizará duas estratégias especícas. Primeiramente na descoberta do dispositivo DLNA até sua virtualização como UPnP, como também na descoberta de quantos e quais serviços o dispositivo DLNA disponibiliza no ambiente para também integrá-los no dispositivo virtual UPnP.
O primeiro comportamento interno do proxy é a descoberta de todas as informações referentes aos dispositivos DLNA no ambiente. Informações como a descrição do dispo- sitivo, e quantos e quais serviços esses dispositivos estão disponibilizando no ambiente. Essas informações serão coletadas pelo Módulo de Descoberta ao encontrar no ambiente um dispositivo DLNA que ainda não o tenha encontrado. Ou seja, quando o proxy, depois da descoberta do dispositivo e sua interação com o mesmo, receber uma mensagem SSDP do dispositivo DLNA, ele então analisará o seu cabeçalho USN, que contém o endereço referente as informações detalhadas do dispositivo e a solicitará.
Com essas informações coletadas, que são oferecidas pelo dispositivo em um formato XML especíco do protocolo DLNA, o Módulo de Descoberta enviará ao Módulo de Aná- lise essas informações que são necessárias para que o último possa iniciar o procedimento de análise do dispositivo. Um exemplo resumido dessa descrição com as informações em destaque que serão então analisadas pelo módulo pode ser observado resumidamente no esquema XML de uma TV-DLNA na Figura 20.
Figura 20: Esquema XML da descrição de um TV-DLNA Fonte: Autor
o dispositivo UPnP equivalente. Essas informações coletadas já podem ser consideradas sucientes para virtualização do dispositivo, isso devido à especicação obrigatória e pa- dronizada para utilização do protocolo DLNA. Este documento especica as diretrizes que denem um dispositivo DLNA para que seja compatível com qualquer Ponto de Controle DLNA desenvolvido, facilitando e globalizando o seu uso. Por exemplo, existem vários pers para utilização de uma TV-DLNA, um perl com operações básicas de uma TV: ligar/desligar; aumentar/diminuir volume; mudar canal, e outros pers com operações mais avançadas, como de acesso às congurações da TV e compartilhamento de imagem e vídeo.
Na prática, não somente o protocolo DLNA segue obrigatoriamente uma especicação padronizada. O protocolo UPnP também obedece essa obrigatoriedade. São seguindo essas especicações que o proxy, em especíco o Módulo de Análise, adota como base para comparar os dispositivos DLNA com o UPnP que deverá ser virtualizado.
Com essas informações coletadas pelo proxy, este já tem autonomia suciente para virtualizar um dispositivo UPnP compatível, como exemplicado em um dos três cenários possíveis, a descoberta do dispositivo DLNA até sua virtualização como UPnP. Entretanto, para garantir a integridade e interconectividade também dos serviços disponibilizados pe- los dispositivos, real e virtual, algumas informações ainda necessitam ser capturadas pelo Módulo de Análise. Essas informações são referentes às ações de mudança de valor na va- riável de estado dos serviços disponibilizados pelo dispositivo DLNA, como essas também são padronizadas pela utilização dos protocolos em formato XML, o próprio módulo tem autonomia suciente para capturar essas informações diretamente do dispositivo. Como observado também resumidamente na Figura 21.
Este esquema XML determina a descrição do serviço disponibilizado pelo dispositivo no exemplo da TV-DLNA, recuperada do esquema XML a partir da tag <SCPDURL> .../contentDirectory.xml </SCPDURL>, do tipo de serviço <serviceType>...device:power </serviceType> apresentado na Figura 20.
Essa descrição determina quais ações e seus argumentos o serviço disponibiliza, de- ne também o estado das variáveis de cada ação e os tipos de dados de cada variável. Para o esquema ilustrado, são destacado quais ações esse serviço está disponibilizando, <name> GetPower </name>; qual o estado da variável dessa ação, <relatedStateVariable> Result </relatedStateVariable>; e qual o tipo de dados de cada ação, <dataType>boolean </dataType>.
Figura 21: Esquema XML da descrição de serviço DLNA Fonte: Autor
instanciar o dispositivo virtual UPnP adequado a partir do Módulo de Virtualização, ou seja, aquele dispositivo UPnP que poderá disponibilizar os mesmos serviços prestados pelo dispositivo DLNA, ou a maior parte deles. Isso porque em algum momento um dispositivo DLNA poderá ter mais funcionalidades ou serviços que um dispositivo UPnP existente, ou o oposto. Caso esse comportamento aconteça, será instanciado um dispositivo virtual que mais se aproxime da quantidade de serviços disponibilizados, levando em consideração o relato dessa informação ao Ponto de Controle utilizado para consumir esses serviços.
Depois de adquiridos essas informações do dispositivo DLNA, e virtualizado o dis- positivo virtual UPnP, o Módulo de Análise se responsabilizará em vigiar esses dois dis- positivos em particular. Essa vigilância se dará na similaridade de todas as informações adquiridas pelo processo de descoberta até a sua virtualização, com relação às tags cor- respondentes entre os protocolos, como melhor observado na Figura 22.
Juntamente com a coleta dessas informações, o Módulo de Análise irá comparar as variáveis de estado do dispositivo real com o virtual. Assim, quando um serviço for consu- mido, independente de qual protocolo, o módulo irá vericar qual serviço foi consumido, e se alguma variável de estado foi modicada. Caso essa variável tenha seu valor modi- cado, o módulo irá consumir esse mesmo serviço passando o mesmo valor da variável no dispositivo oposto, garantindo assim, a interoperabilidade entre os protocolos.
Figura 22: Similaridade dos esquemas XML dos dispositivos Fonte: Autor