Grails Framework - 4 anos e vários sistemas
Marcos Vinicius Fidelis
Analista de Informática – Universidade Estadual de Pon...
Agenda
●

Apresentação

●

Dados do sistema

●

Sistemas Legados

●

Contribuição

●

Grails

●

Para refletir...

●

O qu...
Universidade Estadual de Ponta Grossa
A Universidade Estadual de Ponta Grossa (UEPG) é uma
instituição pública de ensino s...
Universidade Tecnológica Federal do Paraná
A Universidade Tecnológica Federal do Paraná (UTFPR) é a
primeira assim denomin...
Sistemas Legados
●

●

Mas o que é um sistema legado? Alguns dizem que é um sistema antigo,
outros que é um sistema recebi...
Problemas comuns em projetos
●

●

●

●

Em geral se perde muito tempo para configurar
ambientes de programação
Gasta-se m...
Grails
●

●

●

●

O principal objetivo do Grails é ser um framework web de alta produtividade para
a plataforma Java.
Par...
Características
●

É guiado pelas práticas
–

CoC (convention over configuration) e
●
●
●

–

DRY (don't repeat yourself);...
Arquitetura Grails

9
Por que Grails?
●

Dispõe de ampla variedade de plugins (já implementados e
testados) para a realização das mais diferente...
Na prática ...
●

Em questão de minutos você cria toda a
estrutura de banco de dados, as telas HTML e
CSS, tudo já funcion...
Diretórios de uma aplicação
●

grails-app - diretório base para os artefatos Grails
–

conf – possui os arquivos de config...
Exemplo de uma classe de domínio
class Livro {
String titulo
String autor
String descricao
Date dataPublicacao
static hasM...
O que já fizemos?
●

●

A utilização de Grails começou em 2009
Desafio: projetar e implementar um novo sistema de
gestão a...
SGA-Sistema de Gestão Acadêmica
●

●

●

●

O SGA constitui o conjunto de ferramentas que atendem todo o
controle administ...
Outros sistemas
●

Acadêmico online

●

Professor online

●

Sistema acadêmico – (Módulo administrativo principal)

●

Esp...
Difícil falar em sistemas sem falar em
relatórios ...
●

Diário de classe completo e online

●

Certidões de matrícula, de...
E para relatórios?

Este foi outro ponto onde
tivemos que melhorar a
produtividade da equipe.

18
O complemento é JasperReports!
O JasperReports é um framework para a geração de
relatórios. É uma ferramenta totalmente op...
IDE: iReport
O iReport é um aplicativo gráfico, que permite que você “desenhe”
um relatório, utilizando uma palheta, e arr...
Interface do usuário
Report Designer

JasperServer Library

Elements palette
Formatting tools

Report Inspector

Property ...
Seções de um relatório
Um relatório JasperReport é dividido nas seções:
1. Title: como o nome o indica, esta seção contém ...
Um relatório

23
A interface dos sistemas

24
Tela inicial

25
SISACAD-Listagem de acadêmicos

26
SISACAD-Listagem de departamentos

27
SISACAD-Visualização de departamentos

Hiperlink para o cadastro de setores

28
SISACAD-Edição de departamentos

29
SISACAD-Outro cadastro

Parecido com os outros cadastros?
Sim.

30
Professor online

31
Visualização de lançamentos Diário de Classe

32
Diário de classe

Este programa não é gerado automaticamente.
Tem que programar também.

33
Academico online 1

34
Academico online 2

35
Academico online 3

36
Academico online 4

37
Academico online 5

38
Academico online 6

39
Visualização dos relatórios

Como controlar a segurança no acesso aos relatórios?

40
OpenReports
●

●

●

●

É um front-end para JasperReports
Oferece várias funcionalidades que você teria que programar para...
OpenReports 1

42
OpenReports 2 - Grupos

43
OpenReports 3 - Relatórios

44
OpenReports 4 - Argumentos

45
E o Banco de Dados?
●

Utilização intensa de
–

Constraints

–

Views

–

User defined functions (UDF)

–

Stored Procedur...
Volume armazenado
Cadastro

em 2012

Total (até jun/2013)

12.691 (2.032)

54.148

Cursos

44

75

Currículos

59

440

De...
Outros dados do sistema
●

Mais de 270 cadastros utilizando Grails, onde as principais operações (incluir, alterar, exclui...
Contribuição
●

●

A informatização na área acadêmica não é novidade, mas a utilização de
frameworks e a abordagem do proj...
Para refletir...
●

Frameworks não são bala de prata
–

Sempre existe código para ser desenvolvido

–

Reforçando: Não se ...
Relevância para o interesse público
●

●

●

O atendimento às leis estaduais de incentivo ao SL e as próprias
diretrizes d...
Relevância para o interesse público
Outros benefícios:
●

●

●

●

●

●

Produtividade e Qualidade. Um das principais dire...
Novos projetos
●

Matrícula Online (jan/2014)
–

●

●

Maior dificuldade = sistema seriado anual

Atualizar a interface de...
Mudando a interface

54
Equipe
●

Coordenador
–

●

Analista de Informática
–

●

Marcelo Pontes

Programadores
–

●

Marcos Vinicius Fidelis

Eva...
Onde conseguir mais informações?
●

http://grails.org/

●

http://www.grailsbrasil.com.br/

●

https://twitter.com/grails_...
Contato
Obrigado a todos!
Marcos Vinicius Fidelis
mvfidelis@uepg.br - fidelis@utfpr.edu.br

57
Próximos SlideShares
Carregando em…5
×

Grails latinoware

733 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
733
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
13
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • {}
  • Grails latinoware

    1. 1. Grails Framework - 4 anos e vários sistemas Marcos Vinicius Fidelis Analista de Informática – Universidade Estadual de Ponta Grossa Professor – Universidade Tecnológica Federal do Paraná fidelis@utfpr.edu.br - mvfidelis@uepg.br 1
    2. 2. Agenda ● Apresentação ● Dados do sistema ● Sistemas Legados ● Contribuição ● Grails ● Para refletir... ● O que já fizemos? ● – SGA e outros sistemas Relevância para o interesse público ● Relatórios ● Equipe ● Interface ● Mais informações ... ● BD ● Encerramento 2
    3. 3. Universidade Estadual de Ponta Grossa A Universidade Estadual de Ponta Grossa (UEPG) é uma instituição pública de ensino superior mantida pelo Governo do Estado do Paraná, com sede em Ponta Grossa fundada em 1969 pela fusão de várias faculdades. A UEPG oferta atualmente 44 cursos de graduação, além da pós-graduação. www.uepg.br O Estado do Paraná possui leis estaduais específicas que incentivam a utilização: Lei 14.058/2003, Lei 14.195/2003 e a Lei 15.742/2007. Desde 2006 o Centro de Processamento de Dados (CPD) pesquisa e incentiva soluções baseadas em Software Livre. O CPD é Responsável pelos sistemas administrativos da universidade. O Núcleo de Tecnologia e Educação Aberta e a Distância da UEPG (NUTEAD), é um Órgão Suplementar diretamente vinculado a Reitoria, que fornece suporte para todos os cursos e programas semipresenciais e a distância existentes na UEPG www.nutead.org Responsável pela parte pedagógica do Ensino à Distância. 3
    4. 4. Universidade Tecnológica Federal do Paraná A Universidade Tecnológica Federal do Paraná (UTFPR) é a primeira assim denominada no Brasil e, por isso, tem uma história um pouco diferente das outras universidades. A Instituição não foi criada e, sim, transformada a partir do Centro Federal de Educação Tecnológica do Paraná (CefetPR). Como a origem deste centro é a Escola de Aprendizes Artífices, fundada em 1909, a UTFPR herdou uma longa e expressiva trajetória na educação profissional. http://dainf.pg.utfpr.edu.br A UTFPR é constituída por doze câmpus, localizados em: Apucarana, Campo Mourão, Cornélio Procópio, Curitiba, Dois Vizinhos, Francisco Beltrão, Guarapuava, Londrina, Medianeira, Pato Branco, Ponta Grossa e Toledo, todos no Estado do Paraná. O DAINF (Departamento Acadêmico de Informática) tem três cursos na UTFPR - Câmpus Ponta Grossa: Técnico em Informática (modalidade EaD), Tecnologia em Análise e Desenvolvimento de Sistemas e Bacharelado em Ciência da Computação. 4
    5. 5. Sistemas Legados ● ● Mas o que é um sistema legado? Alguns dizem que é um sistema antigo, outros que é um sistema recebido de terceiros e há quem diga que é um sistema que não pode ser alterado. Na verdade, não existe uma definição única do que é um sistema legado, mas existe um conjunto de indicadores que devemos analisar. Motivos – Tempo de vida – Utilidade – Tecnologia e Hardware obsoletos – Dificuldade de manutenção – Documentação 5
    6. 6. Problemas comuns em projetos ● ● ● ● Em geral se perde muito tempo para configurar ambientes de programação Gasta-se muito tempo para aprender uma linguagem de programação nova É difícil disciplinar o processo de desenvolvimento Leva-se muito tempo no desenvolvimento de cadastros. 6
    7. 7. Grails ● ● ● ● O principal objetivo do Grails é ser um framework web de alta produtividade para a plataforma Java. Para isso ele utiliza tecnologias consideradas maduras do mundo Java, como os frameworks Hibernate e Spring, através de uma interface que busca ser simples e consistente. Isola o desenvolvedor dos detalhes complexos da persistência de dados e incorpora o padrão de desenvolvimento MVC de maneira natural. Ele também fornece templates web para fácil implementação da interface com o usuário e suporte para programação em Ajax. Lançado em mar/2006 7
    8. 8. Características ● É guiado pelas práticas – CoC (convention over configuration) e ● ● ● – DRY (don't repeat yourself); ● ● ● – Programar seguindo as convenções do framework Se não quiser configurar nada, siga o que foi convencionado As convenções definem o padrão de funcionamento do framework Boa parte do trabalho de desenvolvimento é repetitiva Deixe por conta do framework O código fica mais enxuto e limpo. É full stack, após instalado vem com todos os componentes para iniciar o trabalho funcionando. É construído sobre tecnologias maduras como: Groovy, ANT, Log4J, Sitemesh, Spring Framework e Hibernate, entre outras; ● 8
    9. 9. Arquitetura Grails 9
    10. 10. Por que Grails? ● Dispõe de ampla variedade de plugins (já implementados e testados) para a realização das mais diferentes tarefas; ● É compatível com a especificação JEE; ● Permite a migração incremental de outras aplicações “legado”; ● Dispõe de scaffolding dinâmico ou estático para operações CRUD (Create, Read, Update and Delete); – É uma evolução dos antigos geradores de código, uma técnica suportada por frameworks MVC. – Com apenas alguns comandos é gerado todo o CRUD 10
    11. 11. Na prática ... ● Em questão de minutos você cria toda a estrutura de banco de dados, as telas HTML e CSS, tudo já funcionando. Foco na Produtividade do Desenvolvedor 11
    12. 12. Diretórios de uma aplicação ● grails-app - diretório base para os artefatos Grails – conf – possui os arquivos de configuração da aplicação – controllers - web controllers (C) – tratam de requisições web – domain - classes de domínio (M) – classes onde serão mapeados os objetos e propriedades do mundo OO para o mundo relacional (tabelas x colunas) – services - camada de serviço – views - .jsp, .gsp, .ftl (V) – mostram o retorno das requisições do navegador ● lib - bibliotecas de suporte (.jar) ● src - classes Groovy e Java de suporte para a aplicação ● scripts - Gant scripts ● test - testes unitários e integrados 12
    13. 13. Exemplo de uma classe de domínio class Livro { String titulo String autor String descricao Date dataPublicacao static hasMany = [comentarios: Comentario] static constraints = { titulo nullable: false, blank: false, size: 1..1024 autor nullable: false, blank: false, size: 2..255 descricao nullable:true, blank: true, maxSize: 1000000 dataPublicacao nullable: true } } 13
    14. 14. O que já fizemos? ● ● A utilização de Grails começou em 2009 Desafio: projetar e implementar um novo sistema de gestão acadêmica para a UEPG – Problemas? ● – Falta de recursos para investimentos em TI, falta de mão de obra, investe-se em HW e não em SW, e etc. Alguma instituição pública tem problemas parecidos? 14
    15. 15. SGA-Sistema de Gestão Acadêmica ● ● ● ● O SGA constitui o conjunto de ferramentas que atendem todo o controle administrativo da atividade acadêmica dos alunos dos cursos de graduação presenciais e à distância. É o primeiro dos grandes sistemas da UEPG 100% WEB. Gerencia desde as chamadas do vestibular até a emissão do Diploma de Graduação. É composto basicamente pelos módulos: Acadêmico, Professoronline, Acadêmico-online, Calouro, Vestibular e Registro de Diplomas, além de uma interface especializada para relatórios. 15
    16. 16. Outros sistemas ● Acadêmico online ● Professor online ● Sistema acadêmico – (Módulo administrativo principal) ● Espaço Físico ● Registro de Diplomas ● Sistema de Seguros ● Sistema de Isenção do Vestibular ● Sistema de Chamadas do Vestibular ● Sistema de Matrícula ● Sistema de Currículos 16
    17. 17. Difícil falar em sistemas sem falar em relatórios ... ● Diário de classe completo e online ● Certidões de matrícula, de registro, de conclusão, etc. ● Várias opções de Histórico Escolar e de visualizações de rendimento acadêmico ● Emissão do Diploma ● Extrato de Matrícula ● Visualização de currículos ● Ocupação de salas ● Professores/turmas/horários ● Perfil de matrícula (regime seriado anual) ● Protocolos diversos ● Plano de matrícula ● Relatórios de visualização de cadastros ● Entre outros 17
    18. 18. E para relatórios? Este foi outro ponto onde tivemos que melhorar a produtividade da equipe. 18
    19. 19. O complemento é JasperReports! O JasperReports é um framework para a geração de relatórios. É uma ferramenta totalmente open source e gratuita, e a mais utilizada com esse propósito atualmente. Funcionalidades: ● exporta relatórios para diversos formatos diferentes, tais como PDF, HTML, XML, XLS, etc. ● aceita diversas formas de entrada de dados, tais como um arquivo XML ou CSV, conexão com o banco de dados, uma sessão do Hibernate, uma coleção de objetos em memória, etc. ● permite o uso de diagramas, gráficos e códigos de barras. ● recursos como crosstab, subreports, gráficos e tabelas 19
    20. 20. IDE: iReport O iReport é um aplicativo gráfico, que permite que você “desenhe” um relatório, utilizando uma palheta, e arrastando e soltando componentes, de forma bem parecida com a criação de interfaces e janelas para programas. Ao salvar, automaticamente será gerado um JRXML que você poderá utilizar na aplicação que estiver desenvolvendo. A vantagem é que não é necessário que você conheça a fundo o XML a ser editado, economizando tempo de desenvolvimento. Ele também traz um conjunto pronto de templates que você já pode utilizar diretamente, ou então, escrever seus próprios templates e reaproveitá-los sempre que precisar criar um novo tipo de relatório. 20
    21. 21. Interface do usuário Report Designer JasperServer Library Elements palette Formatting tools Report Inspector Property sheet Styles library Problems list 21
    22. 22. Seções de um relatório Um relatório JasperReport é dividido nas seções: 1. Title: como o nome o indica, esta seção contém o título do relatório; 2. Page Header: esta seção aparece no topo de cada página (como esperado). É um bom lugar para colocar datas, numeração de páginas, etc.; 3. Column Header: esta seção aparece no topo de cada coluna; 4. Detail: nesta área serão colocadas as informações para cada item de registro. O JasperReports gera uma seção de detalhe para todo e cada registro processado; 5. Column Footer: esta seção aparece ao final de cada coluna; 6. Page Footer: esta seção aparece ao final de cada página; 7. Last Page Footer: esta seção aparece ao final da última página; 8. Summary: esta seção aparece ao término do relatório, logo após o último registro. 22
    23. 23. Um relatório 23
    24. 24. A interface dos sistemas 24
    25. 25. Tela inicial 25
    26. 26. SISACAD-Listagem de acadêmicos 26
    27. 27. SISACAD-Listagem de departamentos 27
    28. 28. SISACAD-Visualização de departamentos Hiperlink para o cadastro de setores 28
    29. 29. SISACAD-Edição de departamentos 29
    30. 30. SISACAD-Outro cadastro Parecido com os outros cadastros? Sim. 30
    31. 31. Professor online 31
    32. 32. Visualização de lançamentos Diário de Classe 32
    33. 33. Diário de classe Este programa não é gerado automaticamente. Tem que programar também. 33
    34. 34. Academico online 1 34
    35. 35. Academico online 2 35
    36. 36. Academico online 3 36
    37. 37. Academico online 4 37
    38. 38. Academico online 5 38
    39. 39. Academico online 6 39
    40. 40. Visualização dos relatórios Como controlar a segurança no acesso aos relatórios? 40
    41. 41. OpenReports ● ● ● ● É um front-end para JasperReports Oferece várias funcionalidades que você teria que programar para executar relatórios na WEB (usuários, senhas e grupos de relatórios) Você define os usuários que executam cada relatório e pode adicionar parâmetros que serão atribuídos a um relatório Permite exportar um relatório para um arquivo PDF, HTML, CSV, XLS ou PNG ● Definição de parâmetros como queries, obrigatório/opcional, datas ● Log de relatórios, scheduling ● Open Source / customizável 41
    42. 42. OpenReports 1 42
    43. 43. OpenReports 2 - Grupos 43
    44. 44. OpenReports 3 - Relatórios 44
    45. 45. OpenReports 4 - Argumentos 45
    46. 46. E o Banco de Dados? ● Utilização intensa de – Constraints – Views – User defined functions (UDF) – Stored Procedures – Triggers Lógica do Negócio no BD 46
    47. 47. Volume armazenado Cadastro em 2012 Total (até jun/2013) 12.691 (2.032) 54.148 Cursos 44 75 Currículos 59 440 Departamentos 37 40 Disciplinas 1.939 4.674 Turmas 6.400 76.333 Acadêmicos x turmas 119.689 1.447.582 Acadêmico x nota 306.441 4.924.059 Campi presenciais e a distância 13 53 Professores 893 2.789 Acadêmicos ● Em 2012 foram 44 coordenadores de curso que fiscalizam a atividade de 893 docentes, acompanhando o rendimento de 12.691 discentes em 6.400 turmas em 13 campi 47
    48. 48. Outros dados do sistema ● Mais de 270 cadastros utilizando Grails, onde as principais operações (incluir, alterar, excluir e consultar) foram construídas automaticamente, ou seja, sem elaboração de programas por programadores. A quantidade de cadastros se justifica, pois toda a informação/decisão realizada pelo sistema vem de informações cadastradas no BD. ● Mais de 450 arquivos de relatórios (utilizando JasperReports). ● Perfil dos usuários em 2012 – Navegadores utilizados ● ● IE-29% ● Firefox-26% ● – Chrome-41% Outros-4% (Android 0,47%) Sistema Operacional ● Windows-95% ● Linux-3% ● Outros-2% 48
    49. 49. Contribuição ● ● A informatização na área acadêmica não é novidade, mas a utilização de frameworks e a abordagem do projeto do sistema foi o que garantiu a velocidade necessária na construção do sistema. A utilização de frameworks de desenvolvimento de software ainda é pouco difundida em empresas privadas e principalmente no setor público pela ausência de investimentos em Tecnologia da Informação. Um exemplo brasileiro que demonstra a importância do tema é o Framework Demoiselle do SERPRO 49
    50. 50. Para refletir... ● Frameworks não são bala de prata – Sempre existe código para ser desenvolvido – Reforçando: Não se desenvolve o sistema inteiro com scaffolding – Conhecimento de linguagem de programação (pelos programadores) é essencial – Conhecer a plataforma java é obrigatório – Use a ferramenta certa para cada tarefa – o desafio é o equilíbrio entre o que desenvolver com cada ferramenta – Conhecer banco de dados e programação em BD facilita muito o trabalho com frameworks – Característica deste projeto foi utilizar frameworks como camada de apresentação (jasperReports) e acesso (Grails) de dados 50
    51. 51. Relevância para o interesse público ● ● ● O atendimento às leis estaduais de incentivo ao SL e as próprias diretrizes do Governo Federal são o principal aspecto desta participação. Embora as políticas governamentais na área sejam dinâmicas, o SL é indissociável da Administração Pública mesmo que se considere apenas a economia com licenças de software, sem levar em conta outras economias e vantagens. A UEPG também é uma das maiores beneficiárias deste trabalho, pois incrementou e modernizou o Processo de Desenvolvimento de Software com baixo investimento. Aumentou a disponibilidade do sistema que no caso do legado era em um número reduzido de máquinas, e atualmente em qualquer equipamento ligado a internet. A UEPG possui polos de ensino a distância em 13 cidades, inclusive no estado de Santa Catarina. E a comunidade universitária que consulta e altera dados atualizados. 51
    52. 52. Relevância para o interesse público Outros benefícios: ● ● ● ● ● ● Produtividade e Qualidade. Um das principais diretrizes do projeto foi a busca e utilização de ferramentas de desenvolvimento que estimulassem a produtividade e garantissem a qualidade dos sistemas. Padronizar para facilitar a manutenção. A padronização contribuiu nas tarefas de manutenção de software. Atualidade e sintonia com o mercado. Uma universidade que possui cursos de informática dispõe de recursos humanos para construção de software, mas a baixa remuneração provoca uma alta rotatividade nas equipes. Logo, não se dispõe de muito tempo para treinamento, e a utilização de tecnologias ultrapassadas desmotiva qualquer equipe. Para contornar este problema foi necessária a adoção de tecnologias ágeis de desenvolvimento com curvas de aprendizado menores. Disponibilidade através da web com segurança. É cada vez maior a exigência por parte dos usuários de que os sistemas sejam disponíveis pela internet. O desafio é a escolha de linguagens e ferramentas que garantam o desenvolvimento de sistemas WEB seguros e protegidos de práticas como “injeção de código externo” entre outras. Os frameworks utilizados fornecem estas garantias. Bom e amplo projeto de Banco de Dados se tornou fundamental. Executou a migração de um sistema legado obsoleto, para um sistema 100% WEB e com inúmeros novos recursos. 52
    53. 53. Novos projetos ● Matrícula Online (jan/2014) – ● ● Maior dificuldade = sistema seriado anual Atualizar a interface de relatórios (OpenReports está com o projeto estacionado pelo desenvolvedor) - JasperServer Modernização da interface do sistema (visual) preservando os benefícios de frameworks (em andamento) ● Desenvolvimento para smartphones/tablets ● Migração para um SGBD opensource ● Estágio Online (atualmente em PHP) 53
    54. 54. Mudando a interface 54
    55. 55. Equipe ● Coordenador – ● Analista de Informática – ● Marcelo Pontes Programadores – ● Marcos Vinicius Fidelis Evandro Raphaell Gura, Emanoély Fernanda Gura, Eunelson José da Silva Júnior, Everton Rodrigo Horn, Fábio Stankievicz, Fernando Luiz Wottrich, Iohan Gomes Pierdoná, Jessyca Kawana Franquitto, Larissa Lourenço Nunes Benck, Michael Julian Bereza Analistas de Informática colaboradores – Adriane Teresinha Caxambu, Carlos Alberto Volpi, Jonathan de Matos, Luiz Gustavo Barros, Sandro Teixeira 55
    56. 56. Onde conseguir mais informações? ● http://grails.org/ ● http://www.grailsbrasil.com.br/ ● https://twitter.com/grails_brasil ● http://www.itexto.net/devkico/?page_id=220 – Instalação, groovy, desenvolvimento de uma aplicação – Groovy: o Java que eu sempre quis ● http://blog.aracomp.com.br/2010_09_01_archive.html ● Youtube, etc. – ● Desenvolvendo uma aplicação em minutos. Visite a UEPG para ver nossos sistemas em funcionamento. 56
    57. 57. Contato Obrigado a todos! Marcos Vinicius Fidelis mvfidelis@uepg.br - fidelis@utfpr.edu.br 57

    ×