Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados



Documentos relacionados
DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

Sistema de Informações Gerenciais do Interlegis APO-CASA

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Image Enable: conceito

Documento de Arquitetura

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

4 Um Exemplo de Implementação

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Anexo I Formulário para Proposta

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Integração com o Ambiente Virtual de Aprendizagem Moodle

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Notas de versão do Capture Pro Software Versão 3.1.0

Relatório I Produto: Webscan

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Programando em PHP. Conceitos Básicos

O PaperPort 12 Special Edition (SE) possui uma grande variedade de novos e valiosos recursos que ajudam a gerenciar seus documentos.

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Critérios para certificação de Sites SciELO: critérios, política e procedimentos para a classificação e certificação dos sites da Rede SciELO

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

SENADO FEDERAL Secretaria Especial do Interlegis - SINTER Subsecretaria de Tecnologia da Informação - SSTIN. Produto: ATU-PM

Manual de Instalação do OASIS

Associação Carioca de Ensino Superior Centro Universitário Carioca

O que há de novo no PaperPort 11? O PaperPort 11 possui uma grande variedade de novos e valiosos recursos que ajudam a gerenciar seus documentos.

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

Capture Pro Software. Guia de referência. A-61640_pt-br

Um Driver NDIS Para Interceptação de Datagramas IP

A Empresa. Alguns Clientes que já utilizam nossa tecnologia.

Manual de Instruções. Programa para Baixar Arquivos XML XML CONQUER

O que há de novo no PaperPort 12? O PaperPort 12 possui uma grande variedade de novos e valiosos recursos que ajudam a gerenciar seus documentos.

Instalando o WordPress em localhost

Tutorial Sistema de Eventos de Certificação e Capacitação

FACULDADES INTEGRADAS DO BRASIL

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

Plano de Gerenciamento do Projeto

Projeto Disciplinar de Infra-Estrutura de Software SISPA FACULDADE SENAC

Manual Xerox capture EMBRATEL

Manual do Usuário - ProJuris Web - Fila de s Página 1 de 8

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

Anexo V - Planilha de Apuração Aquisição de Solução de Redes Sociais

5 Detalhes da Implementação

ACESSO E UTILIZAÇÃO DO OTRS

Desenvolvendo Websites com PHP

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

Minicurso de Introdução a GNU/Linux. Nicolas Katte Dornelles Raul José Chaves Róbson Tolfo Segalla

Web Services. Autor: Rômulo Rosa Furtado

Atualizado em 9 de outubro de 2007

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

Sistemas Distribuídos

Luciano Rocha Diretor Técnico Enial Coord..de TI Sec. Geral Mesa da ALES - luciano@al.es.gov.br Tel.:

Manual de Procedimentos para Desenvolvimento de Softwares

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Instalação do ByYou ESB. Guia de Instalação e Atualização do ByYou ESB

Computação II Orientação a Objetos

Documento de Análise e Projeto VideoSystem

Manual de Utilização do GLPI

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS

SIMEC Sistema Integrado de Planejamento, Orçamento e Finanças

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Criação de formulários no Sphinx

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.

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

02 - Usando o SiteMaster - Informações importantes

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

REFORMULAÇÃO SITE ARCA BRASIL

Instalação e Configuração do CollabNet Subversion Edge

O servidor de banco de dados ORACLE corporativo da empresa deve possuir a seguinte especificação mínima:

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 BAIXA DE CONTAS A PAGAR RELEASE 4.1

Como Instalar Programas no GNU/Linux. Elexsandro Rangel dos Santos

GERAÇÃO DE RELATÓRIOS

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Aplicação Prática de Lua para Web

ARQUITETURA DO SISTEMA ERP PEGASUS

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

BANCO DE DADOS GEOGRÁFICOS

LEIA ISTO PRIMEIRO. IBM Tivoli Configuration Manager, Versão 4.2.1

Manual de Utilização do Zimbra

Desenvolvimento de um sistema de gestão acadêmica com software livre Rodrigo Bainy Fagundes

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

Material de Apoio Configuração Auditoria Pós

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

Bem-vindo! O que há de novo no PaperPort 10?

02/10/2012. Padronização de interfaces. Referências

Relatorio do trabalho pratico 2

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

INTRODUÇÃO 2 ACESSO AO SIGTECWEB 3 TEMPO DE CONEXÃO 5 NAVEGAÇÃO 7 BARRA DE AÇÕES 7 COMPORTAMENTO DOS BOTÕES 7 FILTROS PARA PESQUISA 8

PROJETO. Desenvolvimento de WebSite para gerenciamento de conteúdo e efetivação de campanhas publicitárias. Proposta. Objetivos. Etapas / Atividades

TRIBUNAL REGIONAL FEDERAL DA 2ª REGIÃO Secretaria de Tecnologia da Informação

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Transcrição:

Produto: Webscan Relatório II Programas desenvolvidos, testados e documentados Sérgio Oliveira Campos Contrato N : 2008/000514

Sumário 1 Introdução 1 2 Bibliotecas Utilizadas 2 2.1 Reconhecimento de Texto - Tesseract-OCR........... 2 2.2 Exposição de métodos - Django................. 2 2.2.1 Processamento de requisições Web........... 2 2.3 Geração de PDF - Reportlab................... 2 2.4 Interface Web - JQuery...................... 3 3 Modularização 5 3.1 Lista de diretórios e arquivos................... 5 3.2 Módulo Daemon......................... 6 3.2.1 Descrição de arquivos................... 6 3.3 Módulo UI............................. 9 4 Considerações Finais 11 5 Glossário 12 Lista de Figuras 1 Mapeamento de URL's - urls.py................. 3 2 Action geradora de PDF's - pdf.py............... 4 3 Procura de scanners disponíveis................. 9 4 Digitalizando página em um novo documento.......... 10 5 Mensagem de sucesso e lista de páginas digitalizadas..... 10 Lista de Tabelas I

1 Introdução Na segunda fase do projeto webscan foi realizada a atividade de codicação. Para que esta etapa fosse realizada com sucesso algumas mudanças foram feitas na documentação apresentada no relatório I. Estas mudanças serão descritas neste relatório porém estarão mais detalhadas no relatório III. Neste documento serão apresentados e descritos os principais pontos necessários para o entendimento do código fonte do produto, tais como estrutura de diretórios e algoritmos utilizados. 1

2 Bibliotecas Utilizadas 2.1 Reconhecimento de Texto - Tesseract-OCR O reconhecimento de texto em imagens digitalizadas é parte fundamental do projeto webscan, pois somente com o uso desta tecnica é possível se gerar documentos com páginas indexáveis. Após pesquisar diversas bibliotecas (pesquisa apresentada no relatório I) a biblioteca escolhida foi a Tesseract-OCR 1, que atualmente possui código aberto e é mantida por um grande grupo. 2.2 Exposição de métodos - Django O framework Python adotado para a exposição HTTP da lib webscan foi Django, pois além proporcionar recursos para um desenvolvimento ágil de aplicações Web ele ainda facilita a organização do código fonte de aplicações deste tipo. A separação de interesses sugerida nesse framework possui uma nomenclatura sutilmente diferente da nomenclatura comumente adotada por vários frameworks de aplicações Web. Ao invés do conhecido MVC (Model View and Controller) utiliza-se MTV (Model Template and View) assim o elemento `View' do MVC chama-se `Template' no MTV e o `Controller' do MVC chama-se `View' no MTV, dos quais o webscan utiliza apenas o elemento `View'. Consulte a documentação ocial 2 para informações detalhadas sobre Django. 2.2.1 Processamento de requisições Web As requisições Web são mapeadas para uma 'View' através do arquivo urls.py. Nesse arquivo podemos congurar expressões regulares que identi- cam cada uma das urls e associam a uma determinada função de callback (View). O código abaixo é um trecho do arquivo urls.py do módulo server do webscan: 2.3 Geração de PDF - Reportlab A biblioteca utilizada para geração de PDF foi a reportlab. O código-fonte abaixo implementa a ação que gera um documento PDF apartir da imagem proviniente de um pipeline e seu respectivo texto OCR, se disponível. 1 http://code.google.com/p/tesseract-ocr 2 http://docs.djangoproject.com/en/dev/ 2

Figura 1: Mapeamento de URL's - urls.py 2.4 Interface Web - JQuery O módulo UI, o qual é implementada a interface do projeto, utiliza-se apenas de tecnologias web client-side tais como HTML, Javascript e CSS. A utilização destas tecnologias, teoricamente, viabilizam a execução deste artefato em qualquer plataforma que possua um navegador web compatível com elas, porém esbarrando no problema de compatibilidade e adoção dos padrões internacionais W3C e ECMA. Para que estes problemas fossem reduzidos a biblioteca JQuery 3 foi utilizada. Em seu núcleo, a JQuery, implementa wrappers para os diferentes métodos e detalhes implementados por cada navegador, cando assim responsável por garantir a compatibilidade do Javascript nos navegadores mais utilizados. 3 http://www.jquery.com 3

Figura 2: Action geradora de PDF's - pdf.py 4

3 Modularização 3.1 Lista de diretórios e arquivos webscan -- ui -- index.html -- jquery-1.2.6.js `-- scanner.js `-- daemon -- setup.py `-- webscan -- init.py -- lib -- init.py -- conf -- init.py `-- global_settings.py -- contrib -- init.py -- action -- init.py -- ocr.py `-- pdf.py `-- wrapper -- Sane.py `-- init.py `-- core -- init.py -- action.py -- driver_wrapper.py -- scanners -- init.py `-- scanners.py -- type.py `-- user.py `-- server -- init.py `-- django -- init.py -- example -- init.py -- manage.py -- settings.py `-- urls.py -- urls.py -- utils.py 5

`-- views -- init.py -- scanner.py `-- user.py 3.2 Módulo Daemon Este módulo é responsável pela interface com drivers dos scanners, execução de ações, escrita de arquivos em discos além de expor todos os métodos relevantes como webservices. Todos os webservices utilizados retornam JSON e estão preparados para serem executados através de chamadas cross-domain 4. 3.2.1 Descrição de arquivos Os arquivos init.py são inicializadores de pacotes padrões na linguagem python e por este motivo não serão detalhados neste documento. Maiores detalhes sobre o funcionamento de pacotes em python podem ser encontrados na documentação ocial da linguagem 5. setup.py Arquivo de instalação do projeto. Neste arquivo são definidos os metadados utilizados para a geração de pacotes e instalação do software. Este arquivo segue o padrão setuptools. webscan/ Diretório que contém todo o código-fonte do módulo daemon. Este diretório é utilizado apenas para manter separação entre os arquivos de instalação e dos arquivos fonte. webscan/lib/ Contém tudo o que for utilizado por servidores para a execução das tarefas de escaneamento e escrita em disco. webscan/lib/conf/ Contém o arquivo de configuração default. webscan/lib/conf/global_settings.py 4 http://en.wikipedia.org/wiki/cross_domain_solutions 5 http://docs.python.org/tutorial/modules.html#packages 6

Arquivo de configuração default. webscan/lib/contrib/ Diretório que pode vir a receber arquivos externos acopláveis ao sistema(como plugins). webscan/lib/contrib/action/ Contém as ações padrões que podem ser aplicadas em imagens sucessivamente. webscan/lib/contrib/action/ocr.py Ação que extrai conteúdo textual das imagens. webscan/lib/contrib/action/pdf.py Ação responsável pela geração de PDF's a partir de imagens. Pode ser utilizada em conjunto com a ação ocr para gerar documentos indexáveis. webscan/lib/contrib/wrapper/ Local onde ficam todos os wrappers para drivers e especificações de quando eles devem ser utilizados. webscan/lib/contrib/wrapper/sane.py Wrapper para os drivers sane. Utilizado em sistemas posix. webscan/lib/contrib/wrapper/twain.py Wrapper para os drivers Twain. Utilizado nas plataformas Windows. webscan/lib/core/ Núcleo do sistema responsável pelo processamento de ações, imagens, além de prover classes abstratas para criação de ações e wrappers. webscan/lib/core/action.py Instruções responsáveis pelo processamento de ações. 7

webscan/lib/core/driver_wrapper.py Classe abstrata para a construção de um wrapper. webscan/lib/core/type.py Estruturas de dados utilizadas no projeto. webscan/lib/core/user.py Rotinas criadas para tratar do espaço de usuário, incluindo grupos de imagens e escrita em disco. webscan/lib/core/scanners/ Implementa o singleton coleção de scanners. webscan/lib/core/scanners/scanners.py Funções utilizadas pela coleção de scanners. webscan/server/ Espaço reservado para implementação de métodos para a exposição da API, via HTTP. webscan/server/django/ Aplicação Django criada para expor os métodos do projeto via HTTP. webscan/server/django/urls.py Arquivo de mapeamento de URL's para funções (views). webscan/server/django/utils.py Funções utilizadas por mais de uma view. webscan/server/django/example/ Instância exemplo da aplicação Django. webscan/server/django/example/manage.py 8

Arquivo criado, automaticamente, ao se criar um projeto Django. webscan/server/django/example/settings.py Arquivo de configuração de um projeto Django. webscan/server/django/example/urls.py Arquivo base de mapeamento de urls. Default em projetos Django. webscan/server/django/views/ Métodos wrappers utilizados para chamar funções do webscan.lib e modificar as saídas para formatos esperados pelo Django. webscan/server/django/views/scanner.py Implementa os wrappers necessários à implementação, dos métodos do objeto scanner utilizando Django. webscan/server/django/views/user.py Implementa os wrappers das funções relacionadas diretamente ao usuários do sistema. 3.3 Módulo UI O módulo UI implementa a interface web utilizada para fazer chamadas assíncronas ao módulo daemon. Este módulo é composto apenas por arquivos Javascript e HTML e utiliza a biblioteca Jquery apresentada na seção 2. Segue abaixo algumas capturas de tela da interface desenvolvida. Figura 3: Procura de scanners disponíveis 9

Figura 4: Digitalizando página em um novo documento Figura 5: Mensagem de sucesso e lista de páginas digitalizadas 10

4 Considerações Finais Ao aliar as informações apresentadas neste documento, documentação interna (de código) e documentações ociais das bibliotecas de terceiros, utilizadas na implementação do webscan, futuros desenvolvedores têm as informações necessárias para dar continuidade e manutenção no projeto. O código fonte do produto, incluindo sua respectiva documentação interna, pode ser encontrado no CD que acompanha este relatório e também no repositório do projeto Interlegis: http://repositorio.interlegis.gov.br/digidoc/branches/1.0/. Apesar da versão 1.0 do projeto ter sido entregue o projeto terá continuidade como software livre e seu código-fonte atualizado poderá ser baixado através do repositório do Google Code 6 ou pelo link (svn:externals) presente no repositório interlegis: http://repositorio.interlegis.gov.br/digidoc/trunk/. 6 http://webscan.googlecode.com/trunk/ 11

5 Glossário UI: Interface Gráca (Inglês: User Interface). Wrapper: Design pattern utilizado para modicar a entrada ou saída de um método ou função. Web Service: Tecnica utilizada para promover a interoperabilidade entre aplicações utilizando uma rede. URL: Endereço de uma página web (Inglês: Uniform Resource Locator). PDF: Formato de documento portável (Inglês: Portable Document Format). CSS: Liguagem utilizada para geração de estilos em documentos HTML. W3C: Entidade responsável pela normatização de tecnologias web. ECMA: Organização de normatização responsável pela especicação do ECMA script. OCR: Reconhecimento optico de caracteres (Inglês: Optical Character Recognition. Daemon: Software executado de maneira oculta para o usuário. Twain: Biblioteca que gerência drivers de scanners em Windows. Sane: Biblioteca que gerência drivers de scanners em Linux. 12