IMPLEMENTAÇÃO DE UM WEB SITE DINÂMICO E INTERATIVO PARA CONTROLAR E MONITORAR TRANSDUTORES INTELIGENTES VIA INTERNET, CONFORME O PADRÃO IEEE 1451 Rafael Marcelino de Jesus1, Edson Antonio Batista 2, Silvano Renato Rossi 3, Alexandre César Rodrigues da Silva4 e Aparecido Augusto de Carvalho 5 Abstract This work presents the implementation of a dynamic and interactive Web site, that allows to control over the Internet, smart transducer activities according to IEEE 1451 Standard. Tools such as: Linux Kurumin, Apache server and Personal Home Page/My Structured Query Language (PHP/MySQL) have been used. User is able to access the information on line, obtain the informations stored in a data base and set in motion the transducers connected at the IEEE 1451.2-based module. The Web server performs the functions of a network cappable application processor that controls the communication with a smart transducer interface module, through a transducer independent interface. In this work emergent technology for automation via Internet such as open systems and opensource software is used in order to enable the cost reduction and flexibility of the remote monitoring systems. Index Terms Web, PHP, MySQL, IEEE 1451. INTRODUÇÃO Ao desenvolver aplicações dinâmicas e interativas voltadas para a Internet é necessário o emprego de linguagens para a implementação, com características diferenciais em relação às linguagens utilizadas para o desenvolvimento de aplicações comuns para a Web. Com a crescente disponibilidade de informações em tempo real “on line” na Web, torna-se necessária a utilização de linguagens que viabilizem a reutilização de equipamentos computacionais obsoletos, bem como a segurança dos dados e/ou informações a serem dispostas, a otimização de custos para conclusão de projetos e o grau de satisfação do usuário final que irá utilizar o serviço. A maioria das aplicações para a Internet são compostas por Web sites que impossibilitam a disponibilidade e atualização de informações em tempo real e a interação com o usuário, por não ser necessário ou por falta de planejamento do Webmaster. Na maioria dos casos é necessário re-desenvolver as aplicações ao invés de reutilizar os Web sites e as informações coletadas e armazenadas em servidores, envolvendo custo e tempo necessário para o desenvolvimento das novas aplicações. A seguir apresenta-se uma situação que tem como objetivo esclarecer o problema: o desenvolvimento de um Web site em que são exibidas informações fornecidas por diferentes módulos contendo dispositivos sensores e atuadores, de localizações diversas, onde os módulos estão conectados a um servidor e enviam remotamente as informações e dados. Percebe-se a inviabilidade na implementação de aplicações para a Internet utilizando apenas a linguagem HTML, usada para o desenvolvimento de aplicações estáticas e sem interação com o usuário. Dessa forma, objetivando buscar uma solução ótima para a situaçãoproblema apresentada, uma alternativa é o emprego de Personal Home Page/My Structured Query Language (PHP/MySQL). O uso de HTML implicaria realizar alterações nas respectivas páginas Web, uma a uma, toda vez que fosse necessário dispor uma nova informação. Após as alterações, deveriam ser enviadas ao servidor em que se encontra hospedado o site, usando File Transfer Protocol (FTP) a fim de torná-las disponíveis e visualizáveis. Com a utilização de PHP, tudo isso poderia ser feito automaticamente, bastando apenas utilizar um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS) baseado em MySQL, onde seriam armazenadas as respectivas informações organizadas em tabelas no banco de dados. A página Web desenvolvida em PHP seria utilizada para manipular as informações armazenadas no banco de dados da maneira em que o Webmaster preferir, ou seja, filtrando até os conteúdos das tabelas, pois as respectivas tabelas são compostas por campos que armazenam os registros que são as informações. No presente trabalho apresenta-se uma solução aplicável a um sistema de monitoramento remoto e via internet de um módulo baseado no padrão de interfaceamento IEEE 1451. O módulo se encontra conectado a um PC Desktop denominado servidor, através da porta serial. Um aplicativo implementado em Java é responsável por estabelecer uma conexão com o módulo e realizar a leitura das informações, 1 Rafael Marcelino de Jesus, Universidade Estadual Paulista, Av. Brasil Centro, 56 - 15385-000, Ilha Solteira, SP, Brasil, [email protected] Edson Antonio Batista, Universidade Estadual Paulista, Av. Brasil Centro, 56 - 15385-000, Ilha Solteira, SP, Brasil, [email protected] Silvano Renato Rossi, “Universidad Nacional del Centro de la Pcia. de Buenos Aires”, Av. Del Valle, 5737 – B7400JW1, Olavarría, Bs.As., Argentina, [email protected] 4 Alexandre César Rodrigues da Silva, Universidade Estadual Paulista, Av. Brasil Centro, 56 - 15385-000, Ilha Solteira, SP, Brasil, [email protected] 5 Aparecido Augusto de Carvalho, Universidade Estadual Paulista, Av. Brasil Centro, 56 - 15385-000, Ilha Solteira, SP, Brasil, [email protected] 2 3 © 2005 GCETE March 13 - 16, 2005, São Paulo, BRAZIL Global Congress on Engineering and Technology Education 1188 onde é gerado um arquivo no formato texto. Um dos scripts implementados em PHP é responsável por realizar a leitura dos dados contidos no arquivo de texto e disponibilizar, online, as informações no site do Sistema de Monitoramento Remoto. Após implementar o script de leitura on-line, viu-se a necessidade de implementar um script para realizar a leitura e armazenar as informações em um banco de dados implementado em MySQL. Desta forma, é possível disponibilizar dados em intervalos de tempo distintos e garantir a segurança aos dados armazenados, pois na implementação do banco foram definidas políticas de segurança para o acesso, onde um usuário tem permissão sobre tudo e mediante solicitação autoriza pessoas ao acesso. Foi utilizado um PC Desktop com sistema operacional Linux Kurumim 3.3, o servidor Web Apache para a hospedagem do site, PHP 4.0 para a interpretação das Web pages implementadas e MySQL versão 3.23.32 para o desenvolvimento da base de dados e gerenciamento das informações. aplicação ou pelo administrador do site. Os scripts implementados em PHP são embutidos dentro de uma página HTML e interpretados no servidor Web. PHP foi concebida no ano de 1994 como resultado do trabalho de uma única pessoa, Ramus Lerdorf, e foi adotado por algumas pessoas que reescreveram-na por três vezes consecutivas, a fim de proporcionar o aperfeiçoamento e a crescente aceitação que vemos hoje. A versão atual do PHP é a 4 [3]. Na Figura 1 é demonstra a utilização crescente do PHP em aplicações Web [4]. Uso do PHP / 2000-2004 Domínios IPs A LINGUAGEM PHP PHP significava originalmente Personal Home Page, mas foi alterado de acordo com a convenção para atribuição de nomes recursiva do GNU`s Not Unix (GNU), passando a ser denominada PHP Hypertext Prepocessor. O PHP é um produto do tipo código aberto. Assim, o código gerado pode ser utilizado, alterado e re-distribuído livremente. PHP é uma linguagem de criação de scripts do lado do servidor que foi projetada especificamente para o desenvolvimento de aplicações que requerem desempenho e segurança sem custo operacional [1]-[2]. Pode-se estabelecer uma analogia com uma outra linguagem de script, bastante utilizada por desenvolvedores de Webs para implementação de aplicações específicas chamada JavaScript, baseada na inserção de scripts em páginas Web, no meio do HTML que é executada no lado do cliente. Quando a página Web é acessada através do navegador, a página é carregada na memória do micro do cliente e o código em JavaScript é executado, consumindo recursos de processamento da máquina do cliente que acessou o serviço. Além disso, o código em JavaScript pode ser visto e copiado por qualquer pessoa, bastando somente solicitar ao navegador para exibir o código fonte. Com a linguagem de script PHP é exatamente o contrário, pois a página Web é executada no servidor. Quando se acessa uma página PHP por meio de seu navegador, todo código PHP é executado no servidor e os resultados são enviados para o navegador do cliente que solicitou o serviço ao servidor, onde se encontra hospedada a página Web. Portanto, o navegador exibe a página já interpretada pelo servidor onde os scripts são executados, sem consumir recursos da máquina do cliente que acessou a aplicação. É importante salientar os aspectos de segurança dos scripts implementados em PHP, embutidos na página HTML. Eles apenas podem ser vistos pelo autor da © 2005 GCETE FIGURA. 1 UTILIZAÇÃO MUNDIAL DO PHP, EM DOMÍNIOS E IPS. O SISTEMA MYSQL O MySQL é um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS) poderoso e muito rápido. O MySQL além de ser um servidor multiusuário, também é multiencadeado (multithreaded) e utiliza Structured Query Language (SQL), ou seja, a consulta padrão de banco de dados em todo o mundo. Entre os principais concorrentes do sistema MySQL estão: PostgreSQL, Microsoft SQL Server e Oracle. Dentre as vantagens de se utilizar o MySQL com um RDBMS podem ser citados alguns pontos que reforçam ainda mais a sua utilização: • Alto desempenho; • Baixo custo; • Fácil de configurar e de aprender; • Portável; • O código-fonte está disponível. MATERIAIS E MÉTODOS O presente trabalho insere-se no contexto de um projeto de um sistema de monitoramento remoto local e via Internet, em conformidade com padrão IEEE1451 [5]. Na Figura 2 é apresentado o diagrama da arquitetura do sistema de monitoramento. March 13 - 16, 2005, São Paulo, BRAZIL Global Congress on Engineering and Technology Education 1189 Cliente Internet Ethernet 100 BaseT NCAP-PC IEEE 1451.1 (Servidor) plataforma Linux Kurumim 3.3. As seguintes ferramentas têm sido utilizadas no trabalho: • PHP: a linguagem de programação; • Apache: o servidor Web. O Apache é o servidor Web mais indicado, pois o PHP roda como um módulo nativo dele; • MySQL: o Sistema de Gerenciamento de Banco de Dados. A arquitetura de processamento e armazenamento das informações no ambiente Web é mostrada na Figura 3. Cliente Internet/ Ethernet STIM IEEE 1451.2 FIGURA. 2 ARQUITETURA DO SISTEMA IEEE 1451. O sistema IEEE 1451 é composto por um nó de rede contendo um Processador de Aplicação com Capacidade de Operar em Rede (NCAP), baseado no padrão de interfaceamento IEEE 1451.1 para transdutores inteligentes em ambientes de rede e um Módulo de Interface para Transdutores Inteligentes (STIM) em conformidade com o padrão IEEE 1451.2. Ambos os módulos estão vinculados através de uma interface padronizada denominada Interface Independente de Transdutores (TII), conforme o padrão IEEE 1451.2. O STIM contém um sensor de temperatura de uso geral modelo LM35 e um ventilador agindo como atuador. Através da rede podem ser acessadas as informações dos canais transdutores implementados no STIM, obter os dados provenientes do sensor e ligar ou desligar o ventilador de forma remota. Neste contexto, objetiva-se o emprego de plataformas operacionais e softwares de domínio público visando a otimização de custos operacionais e de licença com plataformas operacionais. Hoje em diversos segmentos observa-se a utilização crescente de ferramentas de domínio público na implementação de aplicações não somente voltadas para a Web, mas também em projetos relacionados com a área de instrumentação eletrônica [6]. No que diz respeito ao desenvolvimento do site dinâmico e interativo para ser usado no monitoramento e controle dos transdutores conectados ao STIM são consideradas as seguintes etapas: definição do hardware, instalação/configuração dos softwares necessários para a execução das aplicações, armazenamento das informações e a implementação dos scripts em PHP. Na arquitetura do hardware do servidor utilizou-se um PC Desktop com placa mãe PC Chips, processador AMD K6II-550 Mhz, 128 Mb de memória RAM, disco duro de 13 Gb e placa de rede Ethernet 10/100Mbps. O Desktop servidor utiliza a © 2005 GCETE Servidor NCAP SENCAP -PC Servidor da Web Páginas armazenadas e scripts PHP Arquivos de dados RDBMS MySQL Dados do MySQL FIGURA. 3 PROCESSAMENTO E ARMAZENAMENTO DE INFORMAÇÕES NO AMBIENTE WEB. É importante lembrar que o PHP é uma linguagem voltada para a Web e, portanto, torna-se necessário um servidor Web que receba as solicitações das páginas, realize o processamento pelo PHP e retorne ao navegador um resultado, pois o PHP não roda diretamente pela linha de comando do Linux. Existem na rede diversos softwares voltados para o desenvolvimento de Web sites em PHP, sendo possível utilizar um editor de texto qualquer para desenvolver aplicações. Utilizou-se o KEdit do Linux Kurumin para implementar as páginas Web em PHP. A estrutura de uma página Web implementada em PHP e embutida no HTML pode ser observada na Figura 4. <HTML> <BODY> <?php // Aqui entra a programação da página em PHP ?> </BODY> </HTML> FIGURA. 4 PHP EM UMA ESTRUTURA HTML GENÉRICA. March 13 - 16, 2005, São Paulo, BRAZIL Global Congress on Engineering and Technology Education 1190 Após digitar o script no editor de texto basta salvá-lo com o nome de teste.php4 no diretório que é utilizado pelo servidor Apache ( /VAR/WWW ) para que possa ser visualizado pelo navegador. Para a visualização no navegador: http://localhost/teste.php4 deve ser digitado na barra de endereço. Desta maneira, o servidor Web executará a página Web no servidor e disponibilizará o resultado no navegador. O banco de dados é utilizado na implementação do projeto de monitoramento remoto para armazenar os dados, obter informações armazenadas na base e dispô-las em páginas Web, e para classificar o armazenamento dos dados organizados em tabelas e recuperar dados armazenados eficientemente. O servidor de MySQL controla o acesso aos dados para assegurar que diversos usuários possam trabalhar com os dados ao mesmo tempo, fornecer acesso rápido aos dados e garantir que somente usuários autorizados possam obter acesso. Em ambiente Linux cada pessoa precisa ter uma conta de usuário. Uma conta de usuário indica um nome de usuário e uma senha que devem ser utilizados para conectar-se ao sistema. O usuário root (ou super-usuário) é quem possui acesso irrestrito à máquina. Para criar o banco de dados no MySQL é necessário ter privilégios de super usuário ou logar como root, pois caso o usuário não tenha permissão para a criação de um banco de dados, deve-se solicitar ao seu administrador para que ele crie o seu banco de dados inicial. Como a implementação do banco de dados é por conta do próprio administrador, basta efetuar logon como root no Linux, no modo texto sem iniciar o modo gráfico. O Linux utiliza uma estrutura diferente de organização em seu sistema de arquivos. Por isso, em vez da sua pasta ser C:\Arquivos de Programas\Meus Documentos\pasta\arquivo. Txt, no Linux pode ser /home/pasta/arquivo.txt. Para conectar como root no Linux, a fim de poder carregar o utilitário mysql, devem ser executadas as etapas descritas a seguir: • [rafael@localhost /root]$ su //comando para conectar como root • [rafael@localhost /root]$ root • [rafael@localhost /root]$ senha do root Após logar como root no sistema, significa que está como super-usuário e tem permissões para criar o banco de dados. O primeiro passo é carregar o utilitário mysql, a fim de criar o banco de dados e colocá-lo em uso para definir as tabelas, campos, tipos de dados, tamanho, etc. • [root@localhost /root]# mysql • mysql>create database bdteste; • mysql>use bdteste; No MySQL é preciso executar primeiramente o utilitário gerenciador, para depois escolher o banco de dados que será utilizado, e isso é feito por meio do comando use. Ao desenvolver um banco de dados no MySQL implementa-se um nome de usuário e uma senha que ficam sob os cuidados do administrador do site ou do © 2005 GCETE administrador do banco de dados. O nome de usuário e a senha são definidos com a finalidade de implementar a segurança na base de dados, pois sem eles qualquer usuário teria permissão para visualizar, alterar e apagar a base de dados. Para acessar a base, o usuário deverá digitar o comando a seguir: • mysql –u username – p A opção –u indica que o parâmetro seguinte é o nome do usuário utilizado para acesso e a opção –p indica que será digitada uma senha para a conexão. Após digitar a senha, o usuário já estará conectado ao banco de dados criado, podendo inserir e manipular livremente seus dados. Toda a manipulação de dados deve ser feita por meio de comandos SQL. A base de dados utilizada no projeto contém duas tabelas, sendo uma para armazenar informações do(s) módulo(s) que pode(m) ser interconectado(s) ao servidor, através da porta serial e outra para armazenar as informações da leitura. A estrutura da tabela é mostrada na Figura 5. TABELA 1: leitura Campos Tipo de Dado @codle Int(5)autoincrement #codmod Int(5) data Date hora Time temp varchar(10) TABELA 2: módulo Campos Tipo de Dado @codmod Int(5)autoincrement des varchar(100) fab varchar(100) can varchar(100) FIGURA. 5 ESTRUTURA DE TABELA USADA. RESULTADOS PRELIMINARES Na Figura 6 é apresentada a página principal que foi desenvolvida através do recurso frame, em HTML. FIGURA. 6 PÁGINA WEB PRINCIPAL. March 13 - 16, 2005, São Paulo, BRAZIL Global Congress on Engineering and Technology Education 1191 Na Figura 7 é mostrada a página de acesso ao banco de dados do sistema de monitoramento, na qual é possível escolher entre várias opções para acesso às informações específicas. leitura de arquivo simples (flat file), à facilidade em criar consultas específicas por informações armazenadas para extrair conjuntos de dados que satisfaçam certos critérios, e aos mecanismos predefinidos para lidar com acesso concorrente às informações armazenadas. A plataforma operacional do servidor é executada sob o Linux Kurumim 3.3, onde foram implementadas políticas de segurança visando evitar a vulnerabilidade e gerenciar /monitorar o controle dos acessos realizados por usuários ao site. O uso de plataformas independentes e de linguagens de desenvolvimento Web, o PHP integrado com o MySQL, tem a finalidade de proporcionar ao projeto de sistemas de monitoramento remoto uma maior flexibilidade de manutenção, portabilidade para diversas plataformas, abstração do tipo de aplicação e redução de custos operacional e de implementação. AGRADECIMENTOS Os autores agradecem à FUNDUNESP e ao CCPG-DEEFEIS-UNESP pelo apoio oferecido. REFERÊNCIAS FIGURA. 7 [1] Welling, L, Thomson, L, "PHP e MySQL Desenvolvimento Web", Editora Campus, 2 º ed, 2003, p. 676. [2] Niederauer, J, "Desenvolvendo Websites com PHP 4”, Editora Novatec, 2003, p. 256. [3] Zend site, (Set.2004). [on line]. Disponível: http://www.zend.com. [4] PHP, (Set.2004). [on line]. Disponível: http://www.php.net, [5] Batista, E,A, Rossi, S,R, da Silva, A,C,R, de Carvalho, A,A, Kitano,C, “Proposta de Implementação de um Sistema de Monitoramento Remoto Baseado no Padrão IEEE 1451”, Proc. 19 th World Congress on Engineering and Technology Education, 2004, pp. 787-791. [6] Lee, K,B, Schneeman, R,D, “Distributed Measurement and Control Based on the IEEE 1451 Smart Transducer Interface Standards,” IEEE Transactions on Instrumentation and Measurement, Vol. 49, no. 3, 2000, pp. 621-627. PÁGINA ASSOCIADA AO BANCO DE DADOS. Para implementações futuras, visando a segurança do site do sistema de monitoramento remoto via Internet serão utilizados dois servidores, sendo um para armazenar e executar as aplicações em PHP com o módulo IEEE 1451 conectado, e o outro servidor para executar o MySQL e armazenar a base de dados do sistema. CONCLUSÕES A implementação de um Web site para proporcionar suporte a um sistema de monitoramento remoto baseado no padrão IEEE1451, não possibilitará apenas a disponibilidade dos dados coletados em tempo real, mas também a implementação de um RDBMS em MySQL para armazenar e disponibilizar em diferentes períodos, onde permitirá ao usuário visualizar as informações e interagir com o site. Um aplicativo implementado em Java é responsável por realizar a comunicação com o NCAP, a fim de realizar a leitura dos dados dos sensores conectados ao STIM. Após realizar a leitura dos sensores os dados são bufferizados em um arquivo texto. A leitura on-line é realizada por uma aplicação implementada em PHP que é responsável por abrir o arquivo de texto, realizar a leitura e disponibilizar as informações em uma página HTML sem que o usuário visualize a programação em PHP da aplicação. O fator principal na escolha do MySQL não está ligado somente ao armazenamento seguro dos dados, mas também à possibilidade de solucionar problemas de lentidão na © 2005 GCETE March 13 - 16, 2005, São Paulo, BRAZIL Global Congress on Engineering and Technology Education 1192