Relatório I Produto: Webscan



Documentos relacionados
Manual Xerox capture EMBRATEL

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

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

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

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

Ajuda das opções Fiery 1.3 (cliente)

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral

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

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

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

BACKUP ONLINE PASSOS PARA CONFIGURAÇÃO INICIAL DO PRODUTO

Portaria Express 3.0

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

GUIA INTEGRA SERVICES E STATUS MONITOR

MANUAL DO GERENCIADOR ESCOLAR WEB

Capture Pro Software. Introdução. A-61640_pt-br

Google Drive. Passos. Configurando o Google Drive

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

Visão Geral sobre o tutorial de Utilização de

Manual do sistema SMARsa Web

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Aplicação Prática de Lua para Web

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta:

BAIXA E INSTALAÇÃO DE CERTIFICADO A1. Versão 1.0r0 de 29 de Janeiro Classificação: Ostensivo

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Easytrade Admin Client

MQSeries Everyplace. Leia-me primeiro G

Manual Captura S_Line

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

Configurando o DDNS Management System

V 1.0 LINAEDUCA - GUIA DE USO

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Manual de Utilização do GLPI

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

Atualização De Mapas GPS Apontador. 1º Acessar site: 2º Selecione o Idioma para Português no seu canto direito.

Procedimentos para Reinstalação do Sisloc

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

Tema UFPel 2.0 WP Institucional Guia de Opções de Personalização

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

Ajuda das opções Fiery 1.3 (servidor)

Manual Integra S_Line

Smart Laudos 1.9. A Forma Inteligente de Criar seus Laudos Médicos. Manual do Usuário

Sankhya Print Service. Manual de instalação e uso

Documento de Análise e Projeto VideoSystem

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

Profibus View - Software de Parametrização de Equipamentos Profibus PA

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.

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

Tutorial WEB CONTENT MANAGEMENT [WCM] Obtenha benefícios a partir das aplicações customizadas da ADMT.

Versão /10. Xerox ColorQube 9301/9302/9303 Serviços de Internet

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

W o r d p r e s s 1- TELA DE LOGIN

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

Manual de Utilização do TOTVS Restore

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0

Comm5 Tecnologia Manual de utilização da família MI. Manual de Utilização. Família MI

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

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

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

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

www. inf.br Outubro/2008 5www.habisp.inf.br TREINAMENTO HABISP VERBA DE ATENDIMENTO

2. INSTALAÇÃO E CONFIGURAÇÃO

Aprovação da Ficha de Tratamento Beneficiários Correios.

Manual de Utilização das Funções Básicas do Sistema ClinicWeb

Madis Rodbel Soluções de Ponto e Acesso Ltda.

Autoridade Certificadora Notarial CONFIGURAÇÃO DA MÁQUINA DA AR COM WINDOWS VISTA E WINDOWS 7 AC NOTARIAL. Página 1 de 14

INSTALAÇÃO DO SISTEMA CONTROLGÁS

Ministério da Cultura

CAPÍTULO 8 Conexões de banco de dados para programadores ASP.NET

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Guia de conexão na rede wireless

Digifort Mobile Manual Version 1.0 Rev. A

AVG Admin 2012 SQL Server 2005 Express

Manual de Instalação Software do etoken Aladdin pro 72k

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

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

ATENÇÃO: * Arquivos com tamanho superior a 500 KB NÃO SERÃO ACEITOS * SOMENTE serão aceitos documentos do formato: PDF

Manual do MySuite. O MySuite é a solução adotada pela MKData para gerenciar o atendimento aos clientes.

atube Catcher versão 3.8 Manual de instalação do software atube Catcher

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

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

MANUAL DE IMPLEMENTAÇÃO DO MÓDULO NOTA FISCAL ELETRONICA

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

Guia de instalação Command WorkStation 5.5 com o Fiery Extended Applications 4.1

Moodle - CEAD Manual do Estudante

Manual do usuário. Mobile Auto Download

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

Revisão: - 1 Desinstalando Versões Anteriores

Como configurar s nos celulares. Ebook. Como configurar s no seu celular. W3alpha - Desenvolvimento e hospedagem na internet

Manual do Usuário Android Neocontrol

SCIM 1.0. Guia Rápido. Instalando, Parametrizando e Utilizando o Sistema de Controle Interno Municipal. Introdução

Manual Comunica S_Line

Tutorial de Instalação do CentOS Versão 3.3

Transcrição:

Relatório I Produto: Webscan Sérgio Oliveira Campos Contrato N : 2008/000514 I

Sumário 1 Introdução 1 1.1 Terminologia.............................. 1 1.1.1 Atividade de Desenvolvimento................. 1 1.1.2 OCR - Optical Character Recognition............. 2 1.1.3 JSON.............................. 2 1.1.4 Web Services.......................... 3 2 Casos de Uso 4 2.1 Diagrama de Casos de Uso....................... 4 2.2 Casos de Uso Completos........................ 5 2.2.1 Caso de Uso: Digitaliza Documento.............. 5 2.2.2 Caso de Uso: Edita Documento................ 6 2.2.3 Caso de Uso: Remove Documento............... 7 2.2.4 Caso de Uso: Adiciona Scanner................ 8 2.2.5 Caso de Uso: Remove Scanner................. 9 2.2.6 Caso de Uso: Configurar Scanner............... 10 3 Modelo de Dados 11 3.1 Diagrama Entidade-Relacionamento.................. 11 4 Interface 12 4.1 Digitalizar Documento......................... 12 4.2 Configurar Scanner........................... 14 5 Web Services 21 5.1 Introdução................................ 21 5.2 Premissas................................ 21 5.3 Convenções............................... 21 II

5.4 Serviços Disponíveis.......................... 22 5.4.1 Scanner............................. 22 5.4.2 User............................... 23 5.4.3 Auth............................... 25 6 Bibliotecas de Digitalização 27 6.1 TWAIN................................. 27 6.1.1 Descrição............................ 27 6.1.2 Bibliotecas............................ 27 6.2 SANE.................................. 28 6.2.1 Descrição............................ 28 6.2.2 Bibliotecas............................ 28 7 Bibliotecas OCR 30 7.1 Introdução................................ 30 7.2 Informações obtidas........................... 30 8 Resultados e Decisões de Projeto 31 8.1 Decisões de projeto........................... 31 8.1.1 Linguagem de programação.................. 31 8.1.2 Interface............................. 31 8.1.3 Web Services.......................... 31 8.1.4 Bibliotecas de digitalização................... 32 8.1.5 Bibliotecas de OCR....................... 32 III

Lista de Figuras 1 Objeto JSON.............................. 3 2 Diagramas de casos de uso....................... 4 3 Diagrama entidade-relacionamento.................. 11 4 Tela inicial do sistema......................... 12 5 Tela indiciando erro: o scanner selecionado não está corretamente configurado ou não está ligado..................... 13 6 Tela indicando o sistema está pronto e o usuário pode começar a digitalizar documentos......................... 14 7 Tela indicando que uma página está sendo digitalizada....... 15 8 Tela mostrando amostras das páginas já digitalizadas........ 16 9 Tela para a entrada de um nome e descrição para o novo documento 17 10 Tela confirmando a criação de um novo documento......... 18 11 Tela mostrando a situação de páginas previamente digitalizadas.. 18 12 Tela mostrando a seleção de scanners para configuração....... 19 13 Tela mostrando as configurações de um scanner........... 20 IV

1 Introdução Durante a primeira fase da elaboração do projeto webscan, foram realizadas as seguintes atividades: Casos de uso: Nessa atividade, descrita na seção 2, foram elaborados diagramas de casos de uso, representando as principais interações entre atores e o sistema. Também foram elaborados os casos de uso completo-abstrato, de forma a dar detalhamento a cada caso de uso contido no diagrama; Modelagem de dados: A modelagem de dados do projeto foi realizada para dar uma visão geral dos dados que serão tratados e como eles se relacionam. A seção 3 apresenta o resultado obtido desse trabalho realizado. Interface: Para essa atividade, descrita com mais detalhes na seção 4, foram elaboradas as candidatas às telas de interface do sistema (mockups) e também o curso de ações que um usuário pode realizar (storyboards); Elaboração dos Web Services: Essa atividade consistiu na espeficação dos métodos que compoem a interface de comunicação da aplicação com outros sistemas. Toda a especificação está disponível na seção 5. Pesquisa de bibliotecas: Essa atividade (apresentada nas seções 6 e 7) consistiu na realização de uma pesquisa sobre as bibliotecas de digitalização e de reconhecimento de textos respectivamente. 1.1 Terminologia 1.1.1 Atividade de Desenvolvimento Atividade de desenvolvimento se refere à quantidade de escritas (ou seja, código sendo atualizado/adicionado) em um sistema de controle de versões, quando disponível. Alta: diversas atividades no último mês. Baixa: algumas atividades ao longo dos últimos 3 meses. Parado: não houve nenhuma atividade de escrita nos últimos 6 meses. 1

1.1.2 OCR - Optical Character Recognition O OCR (Optical Character Recognition), ou Reconhecimento Óptico de Caracteres, é a tecnologia responsável pela obtenção de texto a partir de uma imagem. Durante este projeto a tecnologia será empregada para gerar documentos indexáveis 1. 1.1.3 JSON Algumas vezes é necessário que uma pequena informação seja transmitida entre aplicações, e o formato XML acaba burocratizando demasiadamente este processo. Outro cenário é o de múltiplas requisições em um curto espaço de tempo, que leva o cliente e o servidor a uma sobrecarga para executar o parser, além de um uso de excessivo da banda para a transmissão dos dados. A padronização de um formato Javascript para a transfêrencia de dados poderia ser uma alternativa para solucionar estes problemas, e foi por isso que no ano de 2002, Douglas Crockford, engenheiro da Yahoo! Inc. propôs o formato JSON. O principal objetivo era criar um padrão para troca de dados utilizando código Javascript, ou seja, em forma textual, gerando o mínimo de texto possível, o que tornaria o formato leve e ao mesmo tempo fácil de ser interpretado pelo navegador. Para isso algumas assertivas foram seguidas: Não poderia ser uma linguagem de marcação; Não seria um formato de documento; Não permitiria a representação de funções; Não permitiria a representação de estruturas cíclicas. No ano de 2006 o formato foi oficializado pelo Network Working Group e apresentado oficialmente à comunidade durante a conferencia XML 2006. O padrão apresentado é basicamente composto de um objeto (Figura 1) que possui uma string descritiva e o seu valor, que pode assumir os formatos: String 1 Documentos indexáveis: Que podem ser encontrados pelo sistema de busca 2

Número Vetor Objeto true, false e null Figura 1: Objeto JSON As definições detalhadas de cada um dos tipos e exemplos de código podem ser encontrados no site http://www.json.org/. 1.1.4 Web Services A W3C 2 define web services como um padrão que provê a interoperabilidade entre duas aplicações de software, rodando sob diferentes plataformas e/ou frameworks. A interoperabilidade fornecida pelos web services é disponibilizada por meio de funções ou mesmo objetos na web, de forma que estes possam ser chamados através de um HTTP request e sua resposta retornada através de um HTTP response. Para que uma aplicação consiga se comunicar com a outra, é necessário que ela conheça e entenda o formato de entrada e saída de dados; para isso, é de costume que seja utilizado XML ou JSON. Outro problema é que a aplicação deve saber qual o tipo de dados de um determinado valor que chega a ela, e como ela implementa este valor. Este problema pode ser resolvido de formas distintas; uma delas é a especificação trazer as informações necessárias; a outra é o uso de um arquivo que traz esse tipo de informação, de tal forma que a aplicação apenas leia este arquivo e faça as conversões necessárias. 2 http://www.w3c.org/ 3

2 Casos de Uso Para o projeto, foram elaborados casos de uso do sistema. Na figura 2 tem-se o diagrama de casos de uso. Na seção 2.2 tem-se os casos de uso completo-abstrato, que indicam as principais atividades que acontecem em cada caso de uso, presentes no diagrama da figura 2. 2.1 Diagrama de Casos de Uso Digitaliza Documento Edita Documento Editor Remove Documento Adiciona Scanner Remove Scanner Administrador Configura Scanner Figura 2: Diagramas de casos de uso 4

2.2 Casos de Uso Completos 2.2.1 Caso de Uso: Digitaliza Documento Descrição: Nesse caso de uso o ator tem como função colocar um documento no scanner para digitalizá-lo. Pré-condições: 1. Há um documento no scanner; 2. O scanner está configurado corretamente; 3. O scanner está ligado e funcionando corretamente; Pós-condições: 1. O documento estará digitalizado; 2. O documento estará indexado para busca; Cenário de sucesso: 1. O scanner já foi previamente configurado e está operando corretamente; 2. O ator colocou um documento no scanner; 3. O ator ativa o procedimento de digitalização; 4. O ator muda a página do documento; 5. O ator realiza os passos 3 e 4 até que todo o documento esteja digitalizado; 6. O ator decide um nome para o novo documento; Fluxos alternativos: 1. O scanner não foi configurado ou não está operando; (2-8). O scanner deixa de operar; (1-8). O ator desiste da operação; 5

2.2.2 Caso de Uso: Edita Documento Descrição: Nesse caso de uso o ator tem como função selecionar um documento no sistema para alterar suas características. Pré-condições: 1. Há pelo menos um documento digitalizado; Pós-condições: 1. O documento foi alterado; Cenário de sucesso: 1. O ator encontrou o documento; 2. O ator alterou os dados do documento; 3. O ator confirmou as alterações; Fluxos alternativos 1. Não há documentos digitalizados; 3. O ator não confirmou as alterações; 6

2.2.3 Caso de Uso: Remove Documento Descrição: Nesse caso de uso o ator tem como função selecionar um documento para ser removido do sistema. Pré-condições: 1. Há pelo menos um documento digitalizado; Pós-condições: 1. O documento foi removido do sistema; Cenário de sucesso: 1. O ator encontrou o documento; 2. O ator acionou a remoção do documento; 3. O ator confirmou a remoção do documento; Fluxos alternativos 1. Não há documentos digitalizados; 3. O ator não confirmou a remoção do documento; 7

2.2.4 Caso de Uso: Adiciona Scanner Descrição: Nesse caso de uso o ator tem como função preencher os dados necessários para a adição de um novo scanner no sistema. Pré-condições: 1. Há pelo menos um scanner conectado ao computador onde o sistema está instalado; Pós-condições: 1. O novo scanner está configurado e pronto para uso; Cenário de sucesso: 1. O ator preencheu os dados do scanner corretamente; 2. O sistema encontrou o scanner que o ator se referiu; 3. O sistema registrou o novo scanner; Fluxos alternativos 1. Os dados digitados pelo autor são inválidos; 2. Não há scanners conectados ao computador; 8

2.2.5 Caso de Uso: Remove Scanner Descrição: Nesse caso de uso o ator tem como função escolher um scanner para ser removido do sistema. Pré-condições: 1. Há pelo menos um scanner registrado no sistema; Pós-condições: 1. O scanner não estará mais registrado no sistema; Cenário de sucesso: 1. O ator escolheu o scanner a ser removido; 2. O ator confirmou a remoção do scanner do sistema; Fluxos alternativos 1. Não há scanners registrados no computador; 2. O ator não confirmou a remoção do scanner; 9

2.2.6 Caso de Uso: Configurar Scanner Descrição: Nesse caso de uso o ator tem como função escolher um scanner e em seguida inserir novos dados sobre esse scanner. Pré-condições: 1. Há pelo menos um scanner registrado no sistema; Pós-condições: 1. O scanner estará configurado e pronto para usar; Cenário de sucesso: 1. O ator escolheu o scanner a ser configurado; 2. O ator configurou o scanner; 3. O ator confirmou os dados das novas configurações; Fluxos alternativos 1. Não há scanners registrados no computador; 2. As configurações supridas pelo ator não são válidas; 3. O ator não confirmou as novas configurações do scanner; 10

3 Modelo de Dados A modelagem de dados foi realizada com o intuito de representar os dados utilizados pelo webscan da maneira mais abstrata possível, sem se preocupar com locais ou métodos de armazenamento. Para modelar a aplicação foi utilizado o diagrama de entidade-relacionamento (Figura 3, que faz parte da metodologia do Modelo Entidade-Relacionamento). 3.1 Diagrama Entidade-Relacionamento descrição localização fabricante modelo Indexavel Tamanho de papel imagem texto id nome Scanner N 1 Geração Página N N N Uso Posse Composição senha N 1 1 nome Usuário N Posse 1 N Documento nome Agrupamento N Grupo nome descrição Figura 3: Diagrama entidade-relacionamento 11

4 Interface Nesta seção será apresentadas as telas do sistema, tanto para digitalização de novos documentos quanto para a configuração de scanners. Na seção 4.1, tem-se os passos para digitalizar um novo documento (storyboard) e as telas que o sistema apresentará para o usuário (mockups). Na seção seguinte (seção 4.2), tem-se as telas para configuração de scanners. 4.1 Digitalizar Documento Ao iniciar o sistema, o usuário é apresentado com a tela na figura 4. É interessante destacar o aviso no topo da tela, mostrando que o sistema está procurando por scanners instalados e configurados no sistema. Configurar Ajuda Aguarde, verificando scanner. Este processo pode levar alguns minutos. Digitalizar documento Para digitalizar uma página selecione o scanner e clique no botão "Digitalizar página". Ao finalizar o processo de digitalização clique em "Gerar documento". Scanner: Scanner 3 Digitalizar página Gerar documento Figura 4: Tela inicial do sistema Caso não haja nenhum scanner configurado no sistema, um aviso é apresentado ao usuário, pedindo a ele configure o scanner selecionado para ser usado pelo sistema. Se o scanner estiver corretamente configurado e ligado, o usuário pode iniciar a criação de um novo documento, clicando no botão Digitalizar página, apresentado na figura 6. Nessa situação, o botão Gerar documento está desativado e emite uma mensagem caso o usuário tente clicá-lo. 12

Configurar Ajuda Atenção, o seu scanner não está configurado corretamente ou está desligado. Para configurá-lo clique aqui. Digitalizar documento Para digitalizar uma página selecione o scanner e clique no botão "Digitalizar página". Ao finalizar o processo de digitalização clique em "Gerar documento". Scanner: Scanner 3 Digitalizar página Gerar documento Figura 5: Tela indiciando erro: o scanner selecionado não está corretamente configurado ou não está ligado Após clicar no botão Digitalizar página, o é apresentada para o usuário uma mensagem para que ele espere a digitalização do documento que está no scanner, na tela apresentada na figura 7. Em seguida, na figura 8, após a digitalização de várias páginas, é exibida pequenas amostras das páginas já digitalizadas e um marcador, indicando se a página deverá ser incluída no novo documento ou não. Após a seleção das páginas, o usuário deve clicar no botão Gerar documento. No próximo passo, representado pela figura 9, o usuário deve escolher então um nome para o documento e uma breve descrição sobre ele. A descrição deste novo documento é opcional. Finalmente, após a criação do documento, o sistema mostra uma confirmação da criação do documento (figura 10) e indica seu estado. No exemplo, o sistema está pronto para digitalizar um novo documento. A figura 11 mostra a tela no caso em que o usuário digitalizou páginas anteriormente, porém não gerou um documento. Essas páginas ficam armazenadas no sistema e, logo que ele tente digitalizar novos documentos, poderá decidir se quer usar as páginas previamente digitalizadas ou descartá-las, para gerar um novo documento. 13

Configurar Ajuda Digitalizar documento Para digitalizar uma página selecione o scanner e clique no botão "Digitalizar página". Ao finalizar o processo de digitalização clique em "Gerar documento". Scanner: Scanner 3 Digitalizar página Gerar documento Para gerar um documento é necessário digitalizar ao menos uma página. Figura 6: Tela indicando o sistema está pronto e o usuário pode começar a digitalizar documentos 4.2 Configurar Scanner Ao clicar no link Configurações, o ususário deve selecionar qual scanner ele deseja configurar. Na tela 12, é possível ver uma tela que mostra a escolha de um dispositivo para configuração. Após a escolha do scanner, o usuário encontra a tela exibida na figura 13, na qual encontram-se campos para configuração do dispositivo, como tamanho da página, nome e modelo do scanner. É interessante notar os botões + e -, para a adição e remoção de scanners, respectivamente. 14

Configurar Ajuda Digitalizar documento Para digitalizar uma página selecione o scanner e clique no botão "Digitalizar página". Ao finalizar o processo de digitalização clique em "Gerar documento". Scanner: Scanner 3 Digitalizar página Gerar documento Aguarde, digitalizando página. Este processo pode levar alguns minutos. Figura 7: Tela indicando que uma página está sendo digitalizada 15

Configurar Ajuda Digitalizar documento Para digitalizar uma página selecione o scanner e clique no botão "Digitalizar página". Ao finalizar o processo de digitalização clique em "Gerar documento". Scanner: Scanner 3 Digitalizar página Gerar documento Página 1 Página 2 Página 3 Página 4 Página 5 Página 6 Página 7 Figura 8: Tela mostrando amostras das páginas já digitalizadas 16

Configurar Ajuda Digitalizar documento Para digitalizar uma página selecione o scanner e clique no botão "Digitalizar página". Ao finalizar o processo de digitalização clique em "Gerar documento". Scanner: Scanner 3 Digitalizar página Gerar documento Para gerar o documento preencha os seguintes campos: Nome do arquivo: Grafos de redes complexas Página 1 Descrição: Página 2 Página 3 Página 4 (opcional) Gerar Documento Página 5 Página 6 Página 7 Figura 9: Tela para a entrada de um nome e descrição para o novo documento 17

Configurar Ajuda Digitalizar documento Para digitalizar uma página selecione o scanner e clique no botão "Digitalizar página". Ao finalizar o processo de digitalização clique em "Gerar documento". Scanner: Scanner 3 Digitalizar página Gerar documento Seu documento foi gerado com sucesso! Figura 10: Tela confirmando a criação de um novo documento Configurar Ajuda Existem páginas digitalizadas que não foram utilizadas. Para continuar você deve escolher entre: Utilizar estas páginas Remover páginas Digitalizar documento Para digitalizar uma página selecione o scanner e clique no botão "Digitalizar página". Ao finalizar o processo de digitalização clique em "Gerar documento". Scanner: Scanner 3 Digitalizar página Gerar documento Figura 11: Tela mostrando a situação de páginas previamente digitalizadas 18

Configurar Ajuda Configurar Scanner Scanner 1 Scanner: Scanner 2 Scanner 3 Figura 12: Tela mostrando a seleção de scanners para configuração 19

Configurar Ajuda Configurar Scanner Scanner: Scanner 3 Você clicou em Remover scanner. Se continuar, perderá todas as configurações. Deseja continuar? Sim Não Nome: Scanner 3 Localização: Sala 1 Descrição: Scanner XXX modelo YYY. Fabricante: Modelo: Fabricante X Modelo Y Tamanho do papel: Gerar documentos indexáveis: A4 A3 US Letter Sim Resolução: 300 dpi Salvar configurações Cancelar Figura 13: Tela mostrando as configurações de um scanner 20

5 Web Services 5.1 Introdução Para o uso do sistema WebScan em uma rede de computadores, é de interesse que o sistema possa ser usado remotamente. Para que isso seja feito com sucesso, será feita uma interface em forma de Web Services, para que aplicações distribuídas em uma rede consigam comunicar-se de forma efetiva com o webscan. Assim, nessa seção será descrita a API (Application Programming Interface) utilizada para acessar a aplicação através de Web Services. As seções 5.2 e 5.3 apresentam respectivamente as premissas e convenções que devem ser levadas em consideração ao se analisar a API. 5.2 Premissas 1. Todas os textos entre [] são variáveis; 2. Todos os retornos são JSON; 3. O retorno default é um array associativo que contém um código de erro e sua respectiva mensagem. Se o c ódigo de erro for 0 (zero) quer dizer que não forão encontrados erros; 4. Os argumentos iniciados com * são opcionais. 5.3 Convenções Nesta seção serão utilizados os seguintes conceitos: Método Objeto instanciado Coleção (lista de objetos instanciados) Um texto seguido por / (barra) em uma URL representa membros de um objeto instanciado, e os seguidos por. (ponto) representam membros de uma coleção. Por exemplo: 21

O método modify é parte de um objeto instanciado do tipo scanner: /scanner/[name]/modify O método add é parte de uma coleção de scanners: /scanner.add 5.4 Serviços Disponíveis 5.4.1 Scanner Mostrar os scanners configurados: URL: /scanner Argumentos: Nenhum Método: GET, POST Retorna: Coleç~ao contendo todos os objetos scanner. Adicionar um novo scanner: URL: /scanner.add Argumentos: name, localization*, description*, manufacturer, model, papersize*, isindexable*, user*, group* Método: POST Retorna: Objeto scanner. Retornar um objeto scanner: URL: /scanner/[name] Argumentos: Nenhum Método: GET, POST Retorna: Objeto scanner. Modificar a configuração de um scanner: 22

URL: /scanner/[name]/modify Argumentos: name*, localization*, description*, manufacturer*, model*, papersize*, isindexable*, user, group Método: POST Retorna: Objeto scanner. Remover um scanner: URL: /scanner/[name]/delete Argumentos: Nenhum Método: DELETE Retorna: Default Retornar o código de status do scanner: URL: /scanner/[name]/status Argumentos: Nenhum Método: GET, POST Retorna: Default Digitalizar uma página: URL: /scanner/[name]/scan Argumentos: Nenhum Método: GET, POST Retorna: Objeto page. 5.4.2 User Listar todos os usuários registrados: URL: /user Argumentos: Nenhum Método: GET, POST Retorna: Coleç~ao contendo todos os objetos user. Adicionar um novo usuário: 23

URL: /user.add Argumentos: username, password, role Método: POST Retorna: Objeto user. Retornar um objeto usuário: URL: /user/[username] Argumentos: Nenhum Método: GET, POST Retorna: Objeto user. Modificar o registro de um usuário: URL: /user/[username]/modify Argumentos: username*, password*, role* Método: POST Retorna: Objeto user. Deletar um usuário: URL: /user/[username]/delete Argumentos: Nenhum Método: DELETE Retorna: Default Listar de todos as páginas digitalizadas e não utilizadas: URL: /user/[username]/page Argumentos: Nenhum Método: GET, POST Retorna: Coleç~ao com todos os objetos page. Deletar uma página: URL: /user/[username]/page/[pageid]/delete Argumentos: Nenhum Método: DELETE Retorna: Default 24

Listar os documentos gerados: URL: /user/[username]/document Argumentos: Nenhum Método: GET, POST Retorna: Coleç~ao com todos os objetos page. Deletar um documento: URL: /user/[username]/document/[docname]/delete Argumentos: Nenhum Método: DELETE Retorna: Default Criar um novo documento usando as páginas selecionadas: URL: /user/[username]/document.create Argumentos: docname, docdescript, pages (lista de pageid) Método: GET, POST Retorna: Objeto document. Baixar um documento digitalizado: URL: /user/[username]/document/[docname] Argumentos: Nenhum Método: GET, POST Retorna: Documento PDF para download. 5.4.3 Auth Autenticar um usuário: URL: /auth/signin Argumentos: username, password Método: POST Retorna: Default Desautenticar um usuário: 25

URL: /auth/signout Argumentos: Nenhum Método: GET, POST Retorna: Default 26

6 Bibliotecas de Digitalização Uma das atividades na fase atual do projeto foi elaborar uma pesquisa sobre as principais bibliotecas de digitalização de documentos disponíveis para plataformas Microsoft Windows, através da interface TWAIN e para plataforma GNU/Linux, através da interface SANE. Na seção 6.1, tem-se as principais bibliotecas encontradas para o uso da interface TWAIN e então, na seção 6.2, tem-se as principais bibliotecas encontradas para o uso da interface SANE. 6.1 TWAIN 6.1.1 Descrição TWAIN é a interface de câmeras digitais e scanners específica para plataforma Windows 32 bits apenas. Não suporta scanners distribuídos na rede e não separa interface do driver (segundo www.sane-project.org). 6.1.2 Bibliotecas Nome: TWAIN Module Linguagem(ns): Python (versões 2.1 até 2.5) Licença: GPLv2 Plataforma(s): Windows 32 bits Endereço: http://twainmodule.sourceforge.net Última versão: 1.0.3 Data da última atualização do site: Novembro de 2006 Data do último release: 31 de maio de 2007 Atividade de desenvolvimento: parado Descrição: Bem completa. Suporta atividades básicas TWAIN como funções prontas ou funções TWAIN avançadas que podem ser implementadas. Possui documentação ampla, com tutoriais, referências, guias e exemplos. Nome: EZTwain Linguagem(ns): C, C++, Visual Basic, Delphi, entre outras Licença: Domínio público Plataforma(s): Windows 32 bits 27

Endereço: http://www.dosadi.com/eztwain1.htm Última versão: 1.16 Data da última atualização do site: Não disponível Data do último release: 11 de maio de 2007 Atividade de desenvolvimento: parado Descrição: É bastante popular, inclusive é amplamente usado através de um wrapper Java para TWAIN. Documentação limitada, porém possui exemplos prontos em C. Para C, foi testado apenas em Visual C++ 5 e 6. Nome: TWAIN Development Kit Linguagem(ns): C, C++ (Visual Studio) Licença: Privada Plataforma(s): Windows 32 bits Endereço: http://www.twain.org Última versão: Não disponível Data da última atualização do site: Não disponível Data do último release: Não disponível Atividade de desenvolvimento: Não disponível Descrição: Documentação esparsa, faltam exemplos 6.2 SANE 6.2.1 Descrição SANE (Scanner Access is Now Easy) é uma implementação de aquisição de imagens comum em sistemas open-source, como o Linux e FreeBSD. Há implementações para BeOS, OS/2 e MacOS X. 6.2.2 Bibliotecas Nome: SANE API Linguagem(ns): C Licença: GPL Plataforma(s): FreeBSD, Linux, BeOS, HP-UX, entre outros. Endereço: http://www.sane-project.org Última versão: 1.0.19 Data da última atualização do site: Não disponível Data do último release: 11 de fevereiro de 2008 28

Atividade de desenvolvimento: alta Descrição: Documentação ampla, comunidade ativa, muitas implementações disponíveis para serem usadas como exemplos. Nome: PIL (Python Imaging Library) Linguagem(ns): Python (versões 2.4 e 2.5) Licença: ver http://www.pythonware.com/products/pil/license.htm Plataforma(s): FreeBSD, Linux, BeOS, HP-UX, entre outros. Endereço: http://www.pythonware.com/products/pil/ Última versão: 1.1.6 Data da última atualização do site: Não disponível Data do último release: 3 de dezembro de 2006 Atividade de desenvolvimento: Não disponível Descrição: Amplamente usada para processamento de imagens em Linux, usada por diversos front-ends que usam python. Biblioteca simples, manual com tutorial incluso no código fonte da PIL. 29

7 Bibliotecas OCR 7.1 Introdução Uma das atividades do sistema webscan é fazer o reconhecimento de caracteres usando bibliotecas open-source de reconhecimento óptico de caracteres, ou mais conhecido pelo termo OCR (Optical Character Recognition). Foram levantadas algumas características das bibliotecas encontradas. Um fator importante é o reconhecimento de caracteres presentes no português. É interessante que as heurísticas implementadas pelos sistemas pesquisados levem em consideração aspectos como caracteres com acentos agudos, circunflexos, grave ou até mesmo no uso da trema. 7.2 Informações obtidas Nome: GOCR ou JOCR Site: http://jocr.sourceforge.net Licença: GPL Descrição: Tem bom suporte ao idioma inglês, com poucos erros. Não há registro do uso dessa biblioteca com o idioma português. Nome: Conjecture Site: http://www.corollarium.com/conjecture Licença: GPL-2 Descrição: Framework C++ para desenvolvimento de sistemas de OCR, com suporte a módulos genéricos de reconhecimento. A biblioteca GOCR é implementado como módulo para essa framework. Contém os mesmos problemas da biblioteca GOCR: não há suporte a caracteres acentuados. Nome: Tesseract-OCR Site: http://code.google.com/p/tesseract-ocr/ Licença: Apache License 2.0 Descrição: Biblioteca antigamente desenvolvida pela HP, atualmente esta sob licença Apache e é conhecida como a melhor biblioteca OCR open-source da atualidade. Há suporte ao idioma português brasileiro e pode ainda ser treinada para ser melhorada. 30

8 Resultados e Decisões de Projeto A realização dos trabalhos apresentados neste documento viabiliza a codificação e implementação do projeto w ebscan de maneira concisa e objetiva. Esta seção apresentará as decisões de projeto resultantes dos trabalhos realizados na etapa 1 do edital DIGI-DOC. 8.1 Decisões de projeto 8.1.1 Linguagem de programação Para a codificação do webscan será utilizada a linguagem Python. Esta escolha facilitará a integração do sistema desenvolvido com os atuais, e em desenvolvimento, do Interlegis. Além disso o Python possibilita um desenvolvimento rápido gerando um produto estável e com excelente manutenabilidade. 8.1.2 Interface As interfaces, apresentadas na seção 4, passaram por uma validação com usuários leigos em computação e com os potenciais usuários do GITEC apresentando uma taxa de acerto de 87,5%. A princípio, a interface seguirá a proposta de telas apresentada, porém ao longo do desenvolvimento serão realizados novas pesquisas para tentar identificar pontos onde essas possam ser melhoradas. 8.1.3 Web Services A especificação dos web services apresentada na seção 5 foi elaborada a partir dos casos de uso e do modelo de dados também apresentados neste documento. Essa proposta inicial de métodos e objetos sofrerá adições e subtrações ao longo do projeto de acordo com a demanda e amadurecimento do mesmo, assim como é proposto em um modelo de desenvolvimento iterativo. 31

8.1.4 Bibliotecas de digitalização Após analisar a pesquisa das bibliotecas de digitalização foi decidido pelo uso dos módulos TWAIN Module e PIL. Os fatores mais relevantes para a escolha de ambas foram o de já possuírem implementação em Python e vasta documentação disponível com boa qualidade. Nesta etapa não foi possível avaliar a estabilidade das bibliotecas, porém o fato de possuírem licença livre permite que as mesmas possam ser melhoradas caso o comportamento não seja satisfatório. 8.1.5 Bibliotecas de OCR Para decidir qual biblioteca OCR utilzar só foi necessário utilizar um critério: suporte da lingua portuguesa e caracteres acentuados. A única biblioteca que cumpriu este critério foi a Tesseract-OCR. Apesar de ser a única que atende as necessídades do produto a Tesseract-OCR apresenta diversas outras características úteis, como suporte a outros 6 idiomas e inteligencia artificial, que possibilita a melhoria dos resultados ao longo do seu tempo de uso. 32