Rules of procedure of the Trade and
RULES OF PROCEDURE OF THE TRADE AND DEVELOPMENT BOARD 1
VII. Conduct of business QUORUM
2.4.1 Introdução
Home Networks é um termo comumente utilizado para se referir a redes de dispositivos dos mais diversos tipos que interagem entre si, independentemente da tecnologia por eles utilizada, para prover serviços que podem ser acessados num ambiente doméstico. Entre os serviços oferecidos podem ser citados os de conexão entre redes internas e externas; serviços de entretenimento, normalmente associados ao uso de mídias; serviços de comunicação; e serviços de controle e acesso remoto de dispositivos da residência.
53
de tantas tecnologias diferentes, um de seus elementos, chamado Home Gateway, ou Residential Gateway, é o responsável por prover o ambiente para execução de aplicações e entrega de serviços, locais ou remotos, relacionados a dispositivos da residência (VIANA,2009).
Devido à complexidade dos serviços entregues às Home Networks e a heterogeneidade dos dispositivos, Home Gateways agregam uma infinidade de interfaces de comunicação (USB, Ether- net, Serial, Wi-fi etc.) e implementam componentes de software que agregam serviços providos pelos diversos dispositivos a ele conectados via rede ou diretamente. Esses componentes são im- plementações de elementos dos chamados frameworks para Home Networks, dos quais podem ser citados UPnP, Jini e OSGi, que abstraem aspectos específicos sobre a forma de acesso e controle dos dispositivos.
Frameworks para Home Gateways surgem como uma solução interessante para o controle do acesso a dispositivos heterogêneos, que passam a abstrair seus aspectos específicos de implemen- tação pelo oferecimento de serviços disponibilizados na rede.
Vislumbrou-se então neste trabalho a possibilidade de se utilizar da interação entre aparelhos receptores de TV Digital e frameworks de Home Gateways para permitir a abstração, para as aplicações sensíveis ao contexto enviadas pelas emissoras de TV Digital, do acesso a informações contextuais disponíveis por esses dispositivos heterogêneos.
Uma apresentação sucinta desses frameworks é apresentada a seguir, acompanhada da jus- tificativa pela escolha do OSGI como tecnologia de framework na implementação do Gerente de Contexto do Ginga.
2.4.1.1 Jini
Jini é uma arquitetura de rede, baseada na tecnologia Java, para construção de sistemas distri- buídos na forma de serviços modulares que cooperam entre si. A base de sua arquitetura está na implementação do paradigma publish-find-bind das arquiteturas orientadas-a-serviços. Jini oferece um serviço de lookup, ou descoberta, centralizado. O desenvolvedor que pretende publi- car serviços oferecidos por seu dispositivo deve implementar um Network Service, que procura o serviço de descoberta oferecido pelo Jini e os cadastra para que outro elemento, que pode ser um programa, ou outro dispositivo, que implemente um Network Client possa descobrir seus serviços e acessá-los.
54
2.4.1.2 UPnP
O Universal Plug and Play é uma iniciativa da Microsoft para estender o paradigma do Plug and Play, que simplifica a inclusão de periféricos aos computadores, para plataformas de rede distribuídas, habilitando o registro, descoberta e controle de dispositivos.
Os componentes básicos do UPnP são Dispositivos, Serviços e Pontos de Controle. Um dispositivo contém serviços e dependências com outros dispositivos, que são descritos em docu- mentos XML. Um serviço consiste em uma tabela de estados, que mantem o estado dos serviços e de variáveis; um servidor de controle, que atualiza os estados e invoca ações de acordo com as requisições; e um servidor de eventos que disponibiliza os serviços na rede. Pontos de Controle são os mecanismos por meio dos quais dispositivos são descobertos na rede. Como, deferente- mente do Jini, não existe um elemento central de registro e descoberta de serviços, isso deve ser feito no próprio dispositivo via Ponto de Controle. Os elementos do UPnP são implementados sobre os protocolos de rede tradicionais, como TCP/IP, DHCP, HTTP, etc. O desenvolvedor que pretende publicar serviços oferecidos por seu dispositivo numa rede UPnP deve, portanto, implementar seus elementos (Dispositivo, Serviços e Pontos de Controle) e utilizar as pilhas de protocolo de rede tradicionais.
2.4.1.3 OSGi
OSGi é a especificação de um framework definido pelo consórcio Open Service Gateway initiative com suporte à implementação de aplicações Java no modelo orientado a serviços. No topo da arquitetura do OSGi se encontram os bundles, que correspondem às implementações, por parte dos programadores, dos serviços citados anteriormente.
Logo abaixo existe a camada de Serviços, onde se encontra o Registry Service, usado para conectar os bundles dinamicamente através do paradigma publish-find-bind (“publicar- achar- conectar”). O Registry Service provê um serviço de registro, onde cada bundle pode publicar os seus serviços disponíveis, e um de descoberta de serviços, no qual um bundle descobre quais outros serviços estão disponíveis para utilização. No OSGi, um serviço é uma interface Java associada à operações implementadas pelo bundle que oferece o serviço.
O desenvolvedor que pretende publicar serviços oferecidos por seu dispositivo no OSGi pode fazê-lo implementando um bundle, que trate dos aspectos específicos de comunicação com seu
55
dispositivo para executar o serviço quando requisitado.
Assim como o Jini e o UPnP, o OSGi possibilita a abstração de aspectos específicos dos dispositivos por meio do oferecimento de serviços, que podem ser descobertos na rede. Essas características são fundamentais para garantir a possibilidade de aquisição de informações con- textuais providas por dispositivos heterogêneos independentemente da tecnologia de comunicação e de forma transparente para o usuário. O grande diferencial do OSGi, porém, é que ele per- mite que os elementos dos outros frameworks sejam implementados por bundles, promovendo a integração entre diversos outros frameworks, como o Jini e o UPnP. Existem, por exemplo, imple- mentações das especificações Jini Driver e UPnP Base Driver, que permitem a integração entre redes Jini, UPnP e OSGi. Este fator foi determinante para a escolha do OSGI como tecnologia de implementação do Gerente do Contexto proposto.