Aplicação Prática de Lua para Web



Documentos relacionados
Manual do Visualizador NF e KEY BEST

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

ESTADO DE RONDÔNIA PODER JUDICIÁRIO TRIBUNAL DE JUSTIÇA DOCUMENTAÇÃO: JULGAMENTO VIRTUAL

NFe Nota Fiscal Eletronica

Portal Sindical. Manual Operacional Empresas/Escritórios

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

TCEnet. Manual Técnico. Responsável Operacional das Entidades

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

Desenvolvendo Websites com PHP

Manual Captura S_Line

FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE

INTRODUÇÃO: 1 - Conectando na sua conta

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Imóvel Mix SGI. 1. Acesso ao Sistema 2. Aspectos Gerais 3. Configuração da Empresa 4. Cadastro de Usuários

Sumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web

Documento de Requisitos Sistema WEB GEDAI

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI DEPARTAMENTO DE SISTEMAS DE INFORMAÇÕES

Material de apoio. Disponível no site: : no link: Entidades Sociais >> CNES.

MANUAL 2ª CAMADA DE SEGURANÇA E NOVAS REGRAS DE CADASTRAMENTO

Instalação do SisAlu 1. Apostila de Instalação do SisAlu

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

OI CONTA EMPRESA MANUAL DO USUÁRIO

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Manual do Sistema "Fala Comigo - Sistema de Atendimento On-Line" Editorial Brazil Informatica

Manual SAGe Versão 1.2 (a partir da versão )

Manual Portal Ambipar

O tutorial do ambiente virtual tem o intuito de abordar e solucionar problemas que venham a existir sobre os seguintes pontos:

Plano de Gerenciamento do Projeto

Fox Gerenciador de Sistemas

SGEW Sistema de Gestão de Equipamento Web

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01

NetEye Guia de Instalação

Manual Integra S_Line

Manual de Operação do Sistema de Tickets Support Suite

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI COORDENAÇÃO DE DESENVOLVIMENTO DE SISTEMAS

Sistema de Eventos - Usuário

Manual do usuário - Service Desk SDM - COPASA. Service Desk

MANUAL DO SISTEMA DE CARGA HORÁRIA ESPECIAL Diretor

Cenários do CEL. Acessar ao sistema

Módulo e-rede VirtueMart v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Central Cliente Questor (CCQ) UTILIZANDO A CCQ - CENTRAL CLIENTE QUESTOR

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

Omega Tecnologia Manual Omega Hosting

PORTAL DO ALUNO MANUAL PARA ESCOLAS CNA

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

CONSTRUÇÃO DE BLOG COM O BLOGGER

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

Instalando o WordPress em localhost

Manual Xerox capture EMBRATEL

Em 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.

Manual de Utilização Autorizador

AdminIP. Manual do Usuário Módulo Administrador IES

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Informática - Prof. Frank Mattos

Manual Q-Acadêmico 2.0 Módulo Web - Aluno

Manual de Ativação de Licenças Windows 8

Sistema de Controle de Solicitação de Desenvolvimento

MANUAL DE UTILIZAÇÃO

1. Escritório Virtual Atualização do sistema Instalação e ativação do sistema de Conexão...5

Material de apoio. Portaria SNJ nº 252, de 27/ 12/ 12, publicada no D.O.U. de 31/ 12 /12. Manual do usuário. Manual da nova comprovação de vínculo.

Personalizações do mysuite

Manual de Publicaça o no Blog da Aça o TRIBOS nas Trilhas da Cidadania

Documento de Análise e Projeto VideoSystem

Sistema de Controle de Processos ON-LINE-Versão 1.0 Prefeitura Municipal de João Pessoa (PMJP) Unidade Municipal de Tecnologia da Informação (UMTI)

Microsoft Access XP Módulo Um

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI COORDENAÇÃO DE DESENVOLVIMENTO DE SISTEMAS

Guia de Integração para Transferência

Documento de Requisitos Projeto SisVendas Sistema de Controle de Vendas para Loja de Informática.

Introdução a Banco de Dados

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

Guia do Usuário commanager

Certificado Digital A1. Instalação

Universidade Federal de Roraima Diretoria de Tecnologia da Informação SIG Software e Consultoria em T.I

Pró-Reitoria de Administração - PRAd Assessoria de Informática - AI SISTEMA DE PUBLICAÇÃO DE LICITAÇÕES. Manual de Procedimentos

Manual do Participante do Curso de Gestão da Assistência Farmacêutica - EaD

Manual Administrador - Mídia System

Documentação. Programa de Evolução Contínua Versão 1.72

UNIVERSIDADE FEDERAL DE SANTA CATARINA SECRETARIA DE RELAÇÕES INTERNACIONAIS

Faturamento Eletrônico - CASSEMS

Criação de Aplicativos de redes sociais para Autenticação

Página 1 MANUAL DE UTILIZAÇÃO DA FERRAMENTA OFFICE ONLINE WORD ONLINE EXCEL ONLINE POWER POINT ONLINE

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

IOB Mitrius Software de auditoria eletrônica de arquivos digitais de SPED. O que faz: O que oferece:

Módulo e-rede Prestashop v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Manual Sistema de Autorização Online GW

INSTRUÇÕES PARA INSCRIÇÕES EM EVENTOS DO CÂMPUS POSSE

Especialização em Engenharia de Software com Ênfase em Software Livre ESL2/2008. Projeto Agenda Saúde Requisitos e Modelagem UML

Sistema de Pedido de Registro e Inspeção online. Manual do Usuário

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Sua mais nova e completa ferramenta

Grécia Um Framework para gerenciamento de eventos científicos acadêmicos utilizando componentes

SISTEMA UNIFICADO DE ADMINISTRAÇÃO PÚBLICA SUAP

Transcrição:

Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio e do Tecgraf (Grupo de Tecnologia em Computação Gráfica). É uma linguagem que tem sido utilizada em diversos programas e sistemas. Dentre os usos mais famosos estão o middleware Ginga, a ferramenta Adobe's Photoshop Lightroom e o jogo World of Warcraft. No entanto, até hoje o desenvolvimento de aplicações web baseadas em Lua ainda é muito pequeno. O Departamento de Direito da PUC-Rio vem realizando as solicitações de De-Para (troca de turmas) manualmente e internamente. Este trabalho é feito por um grupo de funcionários do departamento e normalmente leva-se mais de 1 dia para organizar as solicitações. Esse caso foi analisado pela DAR e nos foi proposto a construção de um sistema online para registrar e processar essas solicitações. Particularmente, foi decidido usar este sistema como motivação para uma avaliação do desenvolvimento com Lua para a web. Objetivos Desenvolver uma aplicação web em Lua suprindo real necessidade do Departamento de Direito da PUC-Rio. O SGBD (Sistema de Gerenciamento de Banco de Dados) PostgreSQL código fonte aberto e licença gratuita - foi o escolhido para prover a persistência e acesso eficiente de dados. Metodologia e Definição do Problema As solicitações eram feitas manualmente, através de papéis com os dados do aluno e das turmas a serem alteradas entregues diretamente na secretaria do departamento. O trabalho manual desse esquema era grande pois era necessário ordenar os pedidos de acordo com determinada prioridade para atender as solicitações na ordem correta. Além do trabalho da ordenação, existia também o trabalho referente ao controle de quantas solicitações foram deferidas para determinada turma, e também da elaboração do relatório final, contendo todas as solicitações e o status de cada uma delas. Este relatório final era usualmente feito com o auxílio de uma planilha eletrônica. Para sanar essas necessidades do referido departamento, foi proposto um sistema web que, em determinado prazo, registraria todas as solicitações de De-Para de cada aluno. Para que o aluno tenha acesso ao sistema, foi pensado em uma autenticação na secretaria do Departamento de Direito. O aluno se encaminha à secretaria do curso e lá associa seu número de matrícula com uma senha. Deste modo, garantimos que as solicitações foram feitas pelo próprio aluno, sendo assim, de real interesse do mesmo. No final do prazo de solicitação dos alunos, os coordenadores do departamento teriam acesso a todas as solicitações através da interface web. Através desta interface de administrador (à qual somente os coordenadores do departamento e pessoas autorizadas por eles teriam acesso), seria possível acessar todas as informações das solicitações dos alunos. Tal como sumários de solicitações por turma, turmas com necessidade de se criar novas vagas e um relatório final para ser enviado ao departamento responsável pela efetivação dessas solicitações.

O sistema atuaria de acordo com os seguintes passos: 1. O aluno entra e registra suas solicitações. 2. O coordenador analisa as solicitações e defere ou não as mesmas. 3. Um relatório de vagas a criar e uma lista de solicitações deferidas são enviadas ao departamento responsável pela efetivação dos pedidos. Para o desenvolvimento desse sistema, foi utilizado o ambiente Unix. A configuração do ambiente para suporte à linguagem Lua para web foi feita instalando primeiramente o suporte à Lua, seguido da instalação do sistema de gerenciamento de módulos em Lua LuaRocks, pelo qual foram instalados o servidor de páginas web WSAPI e o CGILUA (componente responsável pela execução de programas codificados em Lua dentro de servidores web). Também foi necessária a instalação do SGBD PostgreSQL, para persistência de dados. Sessão Para controlar o acesso ao sistema desenvolvido, foi necessário utilizar o módulo de sessão disponibilizado para o CGILUA. Para utilizar esse módulo foi necessário instalar ele através do LuaRocks e incluir o arquivo cgilua.session em todas as páginas que a utilizasse. A princípio, o uso de sessão em Lua foi muito complicado de programar. Falta documentação sobre o assunto e a implementação das sessões não é tão simples. É preciso escolher um diretório no servidor onde serão armazenados os arquivos temporários de sessão. Além disso, é necessário chamar algumas funções em todas as páginas que utilizam a sessão. Para facilitar a programação das páginas do sistema desenvolvido foi criado um arquivo sessao.lp que inclui o cgilua.session e configura a sessão para ser utilizada. Para cada página que for utilizar sessão, ela só precisa incluir sessão.lp. Além disso, foi constatada uma possível falha de segurança na gerência de sessões em Lua. Caso o programador não trate a sessão de uma forma específica para evitar o acesso indevido ao sistema, o mesmo pode ficar vulnerável. Essa gerência de sessões é feita através da passagem de um parâmetro na URL de cada página de um sistema, o cgilua-session-identification, que consiste em um número aleatório de até 9 dígitos que identifica um arquivo de sessão no servidor. Esse arquivo contém todos os dados da sessão do usuário. A possível falha de segurança mencionada consiste do fato de um usuário poder gerar números aleatórios, tentando acessar uma sessão já existente. Um meio de melhorar a segurança das sessões estabelecidas em Lua é guardar algum dado de segurança nos arquivos de sessão, como o IP do usuário que criou a sessão. Desse modo, mesmo que um usuário descubra o ID da sessão de outro, só poderá utilizar os dados da sessão dele se estiver no mesmo IP. No sistema desenvolvido não foi implementado um esquema de segurança para o uso de sessão. Na próxima versão será desenvolvido um controle maior em sessões.

Registro Foi desenvolvida uma página de registro para que os alunos se cadastrassem antes de utilizar o sistema. Nessa página de registro, o aluno deve fornecer, além de seus dados pessoais, um arquivo com extensão xls que deve ser baixado diretamente do PUC Online (sistema oficial da PUC para todos os alunos). Esse arquivo, chamado Falta Cursar, contém, além de outros dados, o número de matricula do aluno e as matérias que ainda faltam ser cursadas por esse aluno. Não suficiente, esse arquivo contém uma hash que permite verificar a autenticidade do documento enviado. Esse documento serve como validação de autenticidade do aluno. Não é possível se cadastrar sem enviar o Falta Cursar, e somente o próprio aluno tem acesso ao mesmo no PUC Online. Para ler o arquivo.xls (arquivo do Microsoft Office Excel) em Lua, foi encontrado apenas uma biblioteca que funciona apenas em ambiente Microsoft Windows. Como o sistema foi desenvolvido em plataforma Linux, não era possível utilizar essa biblioteca. Sem muitas opções para ler o Falta Cursar em Lua, nesse sistema foi utilizado um parser feito em PHP. Para isso, a página de registro envia o Falta Cursar para a página PHP que lê o arquivo e verifica se o mesmo é válido. Sendo válido, a página PHP redireciona os dados para a página Lua que efetua o registro do aluno, persistindo os dados em banco e retornando o aluno à página de login. O parser do Falta Cursar é a única parte do sistema que não foi implementada em Lua. Para uma versão futura, será avaliada as possibilidades de se utilizar alguma biblioteca em Lua para realizar essa validação.

Interface Abaixo se encontram alguns retratos de tela do sistema em execução. Ao fim das figuras, se encontra um texto descritivo sobre as mesmas. Figura 1 Figura 2

Figura 3 Figura 4

Figura 1 A tela de login do sistema. Nela se encontram informações sobre o uso do sistema, além de um link para a página de registro (não explorada aqui). Figura 2 Essa é a interface do módulo do aluno. Quando o aluno entra no sistema, essa é a única tela que ele tem acesso. Na parte superior da tela se encontram alguns botões de auxílio ao aluno. Na lateral esquerda se encontra a lista (inicialmente vazia) de requisições dos alunos. E na lateral direita se encontra a lista de turmas que são possíveis de adicionar às requisições. Figura 3 Essa é a interface de administrador do sistema. Ao entrar no sistema como administrador, o sistema redireciona o indivíduo para esta tela. Nela é possível analisar os pedidos de cada aluno e atribuir um estado a eles (deferido ou indeferido). Figura 4 Esta é outra das telas da interface administrativa. Nessa tela é possível acompanhar a situação de vagas de cada turma com os deferimentos efetuados. Conclusões O uso da linguagem Lua para desenvolvimento de páginas web se demonstrou bastante poderoso, tendo se comparado a linguagens mais amplamente utilizadas para programação para web, como PHP. Lembrando que no período de desenvolvimento do sistema aqui discutido, participei do desenvolvimento de outro sistema, em PHP. Ambos os sistemas são semelhantes, e tudo o que foi possível fazer em PHP (com uma pequena ressalva sobre o leitor de arquivos do Microsoft Excel já mencionado) também foi possível fazer em Lua. Foram encontradas dificuldades devido à falta de documentação em determinados assuntos. Porém, mesmo com certa dificuldade, foi possível constatar que a linguagem Lua tem um grande potencial para ser utilizada em larga escala para desenvolver sites. Apesar de todo esse potencial, o número de sistemas para web feitos em Lua é muito limitado. Com o aumento do uso da linguagem, ocorreria o aumento da documentação disponível, gerando um imenso ganho para a linguagem Lua. O uso da linguagem Lua para o desenvolvimento desse sistema foi muito satisfatório, e me gerou muito conhecimento na área. Devido à falta de documentação no portal oficial da linguagem para configuração do servidor de páginas web em Lua em ambiente Windows, não foi possível a implementação do referido sistema em plataforma Windows. Como consequência disso, o desenvolvimento foi feito todo em ambiente Unix.