WS-MCV - Ws/Tech² Mobile Camera Viewer


1. Sobre o Ws/Tech² Mobile Camera Viewer
2. Instalação e Navegação no Programa (Midlet) para Celulares
3. WS-MCV Community Edition
4. Licenciamento, Distribuição e Comercialização
5. Download do WS-MCV Community Edition




1. Sobre o Ws/Tech² Mobile Camera Viewer

O Ws-MCV é um aplicativo portátil desenvolvido em Java ME que permite visualizar imagens capturadas por câmeras de vigilância a partir de qualquer dispositivo móvel (telefone celular, smartphone, etc.).

Ele está disponível em duas versões: uma comercial destinada a fabricantes ou desenvolvedores que desejam utilizá-lo em soluções fechadas. A segunda é uma versão código-livre - Community Edition - disponível para uso de toda a comunidade, desde que observadas as regras definidas na licença GPLv3. Esta última trás também o plugin para acesso ao sistema gerenciador de captura ZoneMinder.

Funcionalmente, ele é composto por três partes distintas, conforme demonstrado abaixo:
  • MidLet (Programa) no Aparelho Celular - é instalado no disposito móvel e é o componente com o qual o cliente interage para selecionar, exibir e controlar as câmeras remotas. Comunica-se com o Gateway de Comunicação através de uma conexão de dados via internet.
  • Gateway de Comunicação - é instalado em um servidor localizado no local onde estão as câmeras. É responsável por receber as solicitações do MidLet e convertê-las, através de plugins, para o protocolo utilizado pelo Servidor CFTV.
  • Servidor CFTV - é disponibilizado pelo fabricante das câmeras ou é um programa especifico construído para receber, coverter, analisar e gravar as imagens geradas pelas câmeras.


Figura 1. Diagrama de Arquitetura do Ws Mobile Camera Viewer.


Todos os dados transmitidos entre o aparelho de telefone celular e o gateway são criptografados para garantir o máximo de privacidade e segurança através da internet.



1.1. Gateway de Comunicação


O Gateway de Comunicação atua como uma "ponte" ligando o MidLet instalado no Telefone Celular e o servidor de imagens do CFTV.

Sua finalidade é abstrair a comunicação do MidLet com diferentes tipos de servidores CFTV, tornado o Ws-MVC instalado no aparelho celular independente do produto usado para capturar as imagens das câmeras de vigilância.

Podemos descrever o ciclo de vida do Gateway de Comunicação da seguinte forma:

  • Inicialmente, ele recebe, autentica e interpreta as requisições vindas do Telefone Celular, formatadas de acordo com um padrão específico e único do Ws-MCV.
  • Em seguida, o Gateway de Comunicação verifica seu arquivo de configuração para determinar qual plugin de servidor CFTV deve ser utilizado. Este plugin é responsável pela comunicação com o servidor/serviço que fornece as imagens ou informações solicitadas.
  • Por fim, o Gateway "formata" estas imagens ou informações e as envia de volta para o MidLet no Telefone Celular, novamente seguindo um protocolo específico do Ws-MCV.

1.2. MidLet (Programa) no Telefone Celular


O Programa (MidLet) instalado no aparelho móvel é responsável pela apresentação das imagens capturadas pelo servidor CFTV e formatadas no Gateway de Comunicação.




2. Instalação e Navegação no Programa (Midlet) para Celulares


2.2. Inicialização


Após completar a instalação, inicie o aplicativo WS-MCV que foi instalado na pasta de programas de seu aparelho móvel. A localização destes programas é dependente do modelo que está sendo utilizado, mas em geral o ícone do WS-MCV estará na mesma pasta que os outros programas Java intalados no aparelho.

Após a carga do programa, a tela abaixo (figura 2) será apresentada no visor do dispositivo:


Figura 2. Tela de entrada e menu principal do WS Mobile Camera Viewer.


2.3. Configuração dos Parâmetros de Acesso


Antes de iniciar a navegação nas telas do MidLet é preciso configurar os endereços, logins e senhas para o acesso ao servidor onde está localizado o Gateway e ao ZoneMinder.

Para isso, com o WS-MCV aberto na tela principal, deve-se clicar no botão Menu do teclado do aparelho. As opções Atualizar e Configurar irão aparecer no visor (Figura 3) e, selecionando Configurar, será apresentada a tela (figura 4) para edição dos parâmetros de configuração do programa.


Figura 3. Opções de Menu na tela principal do WS Mobile Camera Viewer.

Figura 4. Parâmetros de configuração do WS Mobile Camera Viewer.

Parâmetros (Figura 4):

  • Endereço do Servidor: endereço WEB do servidor onde está instalado o Gateway de Comunicação. Deve utilizar o protoloco HTTP, por exemplo http://host.domain/. Default: não há.

  • Usuário: Nome de usuário para acesso ao servidor CFTV. Note que este é o usuário configurado no servidor CFTV (ZoneMinder, etc.) e não o login descrito no item 3.4. cuja finalidade é restringir o acesso ao Gateway de Comunicação. Default: não há.

  • Senha: . Senha do usuário para acesso ao servidor CFTV. Note que este é o usuário configurado no servidor CFTV (ZoneMinder, etc.) e não o login descrito no item 3.4. cuja finalidade é restringir o acesso ao Gateway de Comunicação. Default: não há.

  • Usuário HTTP: Nome de usuário para acesso HTTP ao Gateway de Comunicação. Este é o usuário descrito no último passo do item 3.4. Default: não há.

  • Senha HTTP: Senha do usuário para acesso HTTP ao Gateway de Comunicação. Este é o usuário descrito no último passo do item 3.4. Default: não há.

  • Altura: Altura em pixels da área disponível para imagens no visor do dispositivo móvel (telefone celular) . Default: 130.

  • Largura: Largura em pixels da área disponível para imagens no visor do dispositivo móvel (telefone celular) . Default: 130.

  • Caminho do index.php: Caminho (URL) do script que executa o Gateway no servidor HTTP. Default: /wsmcv/index.php

Após preencher estes parâmetros, deve-se selecionar a opção Salvar no Menu para armazenar no aparelho as novas configurações.
Por fim,seleciona-se Voltar para retornar a tela principal (Figura 2) e iniciar a navegação nas câmeras do servidor CFTV.

2.4. Navegação


A partir da tela principal (Figura 2) é possível recuperar e exibir as imagens atuais e gravadas das câmeras instaladas no servidor CFTV.

2.5. Listando as câmeras disponíveis


Para verificar as câmeras intaladas no sistema deve-se selecionar a opção Atualizar no menu do dispositivo, conforme a figura 5. Note que o acesso ao menu difere conforme o modelo do aparelho que está sendo utilizado, mas em geral o usuário já está familiarizado com o seu próprio aparelho para saber como ativar o Menu.
A ação acima faz com que o MidLet se comunique com o Gateway e recupere a lista das câmeras disponíveis no servidor CFTV, apresentado-as na tela principal, de maneira similar a figura 6.


Figura 5. Menu com a opção Atualizar realçada.

Figura 6. Lista das câmeras conectadas ao servidor CFTV.


2.6. Exibindo a última imagem capturada


A partir da lista de câmeras descrita no item 2.5 (Figura 6), deve-se pressionar a tecla de comando do aparelho para carregar a última imagem capturada pelo servidor CFTV para a câmera selecionada.
Novamente aqui, a posição desta tecla vária de aparelho para aparelho, mas a exemplo dos casos anteriores é muito provável que o usuário já esteja familiarizado com seu próprio aparelho para executar esta atividade sem dificuldades.

Para resincronizar a imagem com o servidor CFTV é preciso selecionar no Menu a opção Atualizar. A recarga não é automática.


Figura 7. Imagem atual da câmera selecionada.


2.7. Verificando as imagens armazenadas para uma câmeras


Estando na tela da imagem atual (Figura 7) deve-se pressionar o botão menu do aparelho para exibir a lista de opções disponíveis, conforme a figura 8.

Nesta lista, deve-se selecionar a opção Eventos e pressionar o botão de comando do aparelho para carregar todos os eventos gravados para a câmera, conforme a figura 9.


Figura 8. Menu com a opção Eventos realçada.

Figura 9. Eventos gravados para a câmera selecionada.


Para visualizar as imagens de um evento específico, basta pressionar novamente o botão de comando sobre o seu respectivo identificador na lista (Figura 9) e aguardar o carregamento das imagens armazenadas no servidor CFTV.




3. WS-MCV Community Edition

O WS-MCV CE é a versão livre (GPLv3) do Mobile Camera Viewer. Ela dispõe de todas as funcionalidades da versão comercial além do exclusivo plugin para interface com o ZoneMinder e de algumas funcionalidades experimentais ainda em estágio de aprimoração e desenvolvimento.

O ZoneMinder é um gerenciador CFTV de código aberto disponível na maioria das distribuições Linux.
A sua interface WEB, da forma como foi projetada, permite facilmente a utilização de novos "formatos" para visualização das imagens das câmeras e das informações vinculadas a elas.

O Ws-MCV por sua vez, utiliza esta estrutura para publicar estas imagens e listas usando um formato simplificado, mais adequado para as restrições de memória e de banda de rede que existem nos dispositivos móveis.

3.1. Instalação dos Componentes para o ZoneMinder


Assumindo que já existe uma versão do ZoneMinder operacional e configurada, é preciso descompactar os arquivos do pacote wsmvc-ce_1.X.X-zoneminder_1.2X.X para o mesmo diretório onde estão instalados os demais .php do ZoneMinder.
Nas distribuições Debian e Ubuntu, por exemplo, este diretório é o /usr/share/zoneminder/.

3.2. Configuração dos Componentes para o ZoneMinder


Nenhuma configuração adicional é necessária para ativar estes componentes. Espera-se entretanto que o ZoneMinder já esteja ajustado para capturar e armazenar as imagens do CFTV.

Recomenda-se restringir o acesso as imagens produzidas pelo Zoneminder através de algum módulo de autenticação do Apache, tal como o mod_auth por exemplo. Os usuários e senhas definidos nesta configuração são cadastrados no Telefone Celular para habilitar o acesso as imagens do servidor Zoneminder.
Somente este método de autenticação deve ser usado, pois até o momento o plugin para o Gateway de Comunicação não suporta o mecanismo de autenticação nativo (builtin).

3.3. Instalação do Gateway de Comunicação

  • Descompactar os arquivos do pacote wsmvc-ce-gateway-1.X.X.tar.gz no diretório do sistema arquivos onde se encontra o raiz do servidor HTTP. Nas distribuições Debian e Ubuntu, por exemplo, este diretório é o /var/www/. Neste caso o gateway ficará na pasta /var/www/wsmcv/ e acessível através do endereço http://seu.host/wsmcv/.

  • Criar a pasta /var/log/wsmcv/ e atribuir permissão de leitura e escrita para o usuário do servidor WEB, normalmente este usuário chama-se www-data,nobody ou apache.

  • Instalar o módulo pear HTTP_Request e o módulo PHP GD.

3.4. Configuração do Gateway de Comunicação


O Gateway de Comunicação pode ser executado em qualquer servidor HTTP com suporte a PHP 5.1 ou superior. Neste documento e na configuração padrão distribuída com o WS-MCV CE utilizamos o Apache 2.x com o Zoneminder rodando na mesma máquina que o Gateway, mas deve-se ter em mente que isto não é obrigatório e que outras configurações (IIS/Windows por ex.) são possíveis.

A seguir, são apresentados os passos para configuração do gateway em um Linux/Apache/PHP5:
  • Criar o par de chaves pública/privada para uso na comunicação com o MidLet, conforme exemplo do site http://www.madboa.com/geek/openssl/#cert-self. Note que os parâmetros -keyout e -out devem conter os mesmo valores que serão utilizados posteriormente em publicKeyFile e privateKeyFile.
    # openssl req \
      -x509 -nodes -days 1095 \
      -newkey rsa:1024 -keyout /etc/wsmcv/server_key.pem \
      -out /etc/wsmcv/server_pub_key.pem
    O acesso a chave privada deve ser restrito ao usuário do processo do servidor HTTP.

  • No arquivo ConfigService.php, ajustar os parâmetros de acordo com as informações do servidor ZoneMinder no qual o Gateway estará se conectando. De todos, os mais importantes são zmPath, zmsPath,zmEventImageDigits,zmEventImageDigits e zmEventImageDigits;

  • No arquivo ConfigService.php, ajustar os parâmetros:
    • baseDir: localização do gateway no sistema de arquivos do servidor. Default: /var/www/wsmcv/
    • publicKeyFile: localização do certificado/chave pública utilizados para comunicação criptografada com os dispositivos móveis. Default: /etc/wsmcv/server_pub_key.pem
    • privateKeyFile: localização da chave privada utilizada para comunicação criptografada com os dispositivos móveis. Default: /etc/wsmcv/server_key.pem
    • logINFO: destino dos logs nível INFO. Default: /var/log/wsmcv/info.log
    • logDEBUG: destino dos logs nível INFO. Default: /var/log/wsmcv/debug.log
    • logERROR: destino dos logs nível INFO. Default: /var/log/wsmcv/error.log

  • Restringir o acesso HTTP aos arquivos do gateway utilizando o mod_auth ou algum outro módulo de autenticação. Segue um exemplo de como ficaria o bloco de configuração no apache.conf:
    <Directory /var/www/wsmcv/>
        Options FollowSymLinks
        AllowOverride All
        AuthType Basic
        AuthName "Server Auth"
        AuthUserFile /etc/apache2/htpasswd.auth.nossl
        Require valid-user 
    </Directory>
    





4. Licenciamento, Distribuição e Comercialização

Existem duas formas de licenciamento para os códigos-fonte e binários do WS-MVC. A versão "livre" (Community Edtion) está disponível a toda comunidade Open Source seguindo o padrão GPLv3. Esta versão GPL contém o plug-in do Gateway de Comunicação para acesso ao ZoneMinder.

Também dispomos de uma versão comercial do produto para fabricantes que desejam agregar o WS-MVC a sua solução de CFTV ou para desenvolvedores privados.

Maiores detalhes são apresentados nos tópicos abaixo:

4.1. Versão GPLv3 (Community Edition)

  • Permite modificações e customizações, desde que posteriormente os códigos sejam abertos para a comunidade
  • Permite a criação de outros plugins para comunicação com outros sistemas de captura além do ZoneMinder
  • Não permite a distribuição de binários sem que eles estejam acompanhados do respectivo código-fonte
  • Não permite que os componentes do WS-MCV sejam vendidos "linkados" (mesclados) dentro da aplicação comercial

4.2. Versão Comercial

  • Permite modificações sem a necessidade de divulgá-las para a comunidade
  • Permite que os componentes do WS-MCV sejam vendidos "linkados" (mesclados) dentro da aplicação comercial





5. Download do WS-MCV Community Edition


Versão WS-MCV Community Edition Versão Zoneminder Arquivos
1.0.1 1.23.3 wsmvc-ce_1.0.1-zoneminder_1.23.3.tar.gz
wsmvc-ce-midlet-source-1.0.1.tar.gz
wsmvc-ce-midlet-bin-1.0.1.tar.gz
wsmvc-ce-midlet-bin-1.0.1.zip
wsmvc-ce-gateway-1.0.1.tar.gz


Copyright 2006-2010 WS/Tech² Informática LTDA - ME. Todos os Direitos Reservados.
Contato: / Curitiba - PR MSN Messenger: contato@wstech2.net