Grails latinoware

Embed Size (px)

Citation preview

  • 1. Grails Framework - 4 anos e vrios sistemas Marcos Vinicius Fidelis Analista de Informtica Universidade Estadual de Ponta Grossa Professor Universidade Tecnolgica Federal do Paran [email protected] - [email protected] 1

2. Agenda ApresentaoDados do sistemaSistemas LegadosContribuioGrailsPara refletir...O que j fizemos?SGA e outros sistemasRelevncia para o interesse pblicoRelatriosEquipeInterfaceMais informaes ...BDEncerramento2 3. Universidade Estadual de Ponta Grossa A Universidade Estadual de Ponta Grossa (UEPG) uma instituio pblica de ensino superior mantida pelo Governo do Estado do Paran, com sede em Ponta Grossa fundada em 1969 pela fuso de vrias faculdades. A UEPG oferta atualmente 44 cursos de graduao, alm da ps-graduao.www.uepg.brO Estado do Paran possui leis estaduais especficas que incentivam a utilizao: 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 solues baseadas em Software Livre. O CPD Responsvel pelos sistemas administrativos da universidade.O Ncleo de Tecnologia e Educao Aberta e a Distncia da UEPG (NUTEAD), um rgo Suplementar diretamente vinculado a Reitoria, que fornece suporte para todos os cursos e programas semipresenciais e a distncia existentes na UEPG www.nutead.orgResponsvel pela parte pedaggica do Ensino Distncia. 3 4. Universidade Tecnolgica Federal do Paran A Universidade Tecnolgica Federal do Paran (UTFPR) a primeira assim denominada no Brasil e, por isso, tem uma histria um pouco diferente das outras universidades. A Instituio no foi criada e, sim, transformada a partir do Centro Federal de Educao Tecnolgica do Paran (CefetPR). Como a origem deste centro a Escola de Aprendizes Artfices, fundada em 1909, a UTFPR herdou uma longa e expressiva trajetria na educao profissional. http://dainf.pg.utfpr.edu.brA UTFPR constituda por doze cmpus, localizados em: Apucarana, Campo Mouro, Cornlio Procpio, Curitiba, Dois Vizinhos, Francisco Beltro, Guarapuava, Londrina, Medianeira, Pato Branco, Ponta Grossa e Toledo, todos no Estado do Paran.O DAINF (Departamento Acadmico de Informtica) tem trs cursos na UTFPR - Cmpus Ponta Grossa: Tcnico em Informtica (modalidade EaD), Tecnologia em Anlise e Desenvolvimento de Sistemas e Bacharelado em Cincia da Computao. 4 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 no pode ser alterado. Na verdade, no existe uma definio nica do que um sistema legado, mas existe um conjunto de indicadores que devemos analisar. Motivos Tempo de vidaUtilidadeTecnologia e Hardware obsoletosDificuldade de manutenoDocumentao5 6. Problemas comuns em projetos Em geral se perde muito tempo para configurar ambientes de programao Gasta-se muito tempo para aprender uma linguagem de programao nova difcil disciplinar o processo de desenvolvimento Leva-se muito tempo no desenvolvimento de cadastros.6 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, atravs de uma interface que busca ser simples e consistente. Isola o desenvolvedor dos detalhes complexos da persistncia de dados e incorpora o padro de desenvolvimento MVC de maneira natural. Ele tambm fornece templates web para fcil implementao da interface com o usurio e suporte para programao em Ajax. Lanado em mar/20067 8. Caractersticas guiado pelas prticas CoC (convention over configuration) e DRY (don't repeat yourself); Programar seguindo as convenes do framework Se no quiser configurar nada, siga o que foi convencionado As convenes definem o padro de funcionamento do framework Boa parte do trabalho de desenvolvimento repetitiva Deixe por conta do framework O cdigo fica mais enxuto e limpo. full stack, aps instalado vem com todos os componentes para iniciar o trabalho funcionando. construdo sobre tecnologias maduras como: Groovy, ANT, Log4J, Sitemesh, Spring Framework e Hibernate, entre outras;8 9. Arquitetura Grails9 10. Por que Grails? Dispe de ampla variedade de plugins (j implementados e testados) para a realizao das mais diferentes tarefas; compatvel com a especificao JEE;Permite a migrao incremental de outras aplicaes legado;Dispe de scaffolding dinmico ou esttico para operaes CRUD (Create, Read, Update and Delete); uma evoluo dos antigos geradores de cdigo, uma tcnica suportada por frameworks MVC.Com apenas alguns comandos gerado todo o CRUD10 11. Na prtica ... Em questo 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. Diretrios de uma aplicao grails-app - diretrio base para os artefatos Grails conf possui os arquivos de configurao da aplicaocontrollers - web controllers (C) tratam de requisies webdomain - classes de domnio (M) classes onde sero mapeados os objetos e propriedades do mundo OO para o mundo relacional (tabelas x colunas)services - camada de servioviews - .jsp, .gsp, .ftl (V) mostram o retorno das requisies do navegadorlib - bibliotecas de suporte (.jar)src - classes Groovy e Java de suporte para a aplicaoscripts - Gant scriptstest - testes unitrios e integrados12 13. Exemplo de uma classe de domnio 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. O que j fizemos? A utilizao de Grails comeou em 2009 Desafio: projetar e implementar um novo sistema de gesto acadmica para a UEPG Problemas? Falta de recursos para investimentos em TI, falta de mo de obra, investe-se em HW e no em SW, e etc.Alguma instituio pblica tem problemas parecidos?14 15. SGA-Sistema de Gesto Acadmica O SGA constitui o conjunto de ferramentas que atendem todo o controle administrativo da atividade acadmica dos alunos dos cursos de graduao presenciais e distncia. o primeiro dos grandes sistemas da UEPG 100% WEB. Gerencia desde as chamadas do vestibular at a emisso do Diploma de Graduao. composto basicamente pelos mdulos: Acadmico, Professoronline, Acadmico-online, Calouro, Vestibular e Registro de Diplomas, alm de uma interface especializada para relatrios.15 16. Outros sistemas Acadmico onlineProfessor onlineSistema acadmico (Mdulo administrativo principal)Espao FsicoRegistro de DiplomasSistema de SegurosSistema de Iseno do VestibularSistema de Chamadas do VestibularSistema de MatrculaSistema de Currculos 16 17. Difcil falar em sistemas sem falar em relatrios ... Dirio de classe completo e onlineCertides de matrcula, de registro, de concluso, etc.Vrias opes de Histrico Escolar e de visualizaes de rendimento acadmicoEmisso do DiplomaExtrato de MatrculaVisualizao de currculosOcupao de salasProfessores/turmas/horriosPerfil de matrcula (regime seriado anual)Protocolos diversosPlano de matrculaRelatrios de visualizao de cadastrosEntre outros 17 18. E para relatrios?Este foi outro ponto onde tivemos que melhorar a produtividade da equipe.18 19. O complemento JasperReports! O JasperReports um framework para a gerao de relatrios. uma ferramenta totalmente open source e gratuita, e a mais utilizada com esse propsito atualmente. Funcionalidades: exporta relatrios 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, conexo com o banco de dados, uma sesso do Hibernate, uma coleo de objetos em memria, etc. permite o uso de diagramas, grficos e cdigos de barras. recursos como crosstab, subreports, grficos e tabelas 19 20. IDE: iReport O iReport um aplicativo grfico, que permite que voc desenhe um relatrio, utilizando uma palheta, e arrastando e soltando componentes, de forma bem parecida com a criao de interfaces e janelas para programas. Ao salvar, automaticamente ser gerado um JRXML que voc poder utilizar na aplicao que estiver desenvolvendo. A vantagem que no necessrio que voc conhea a fundo o XML a ser editado, economizando tempo de desenvolvimento. Ele tambm traz um conjunto pronto de templates que voc j pode utilizar diretamente, ou ento, escrever seus prprios templates e reaproveit-los sempre que precisar criar um novo tipo de relatrio.20 21. Interface do usurio Report DesignerJasperServer LibraryElements palette Formatting toolsReport InspectorProperty sheetStyles library Problems list21 22. Sees de um relatrio Um relatrio JasperReport dividido nas sees: 1. Title: como o nome o indica, esta seo contm o ttulo do relatrio; 2. Page Header: esta seo aparece no topo de cada pgina (como esperado). um bom lugar para colocar datas, numerao de pginas, etc.; 3. Column Header: esta seo aparece no topo de cada coluna; 4. Detail: nesta rea sero colocadas as informaes para cada item de registro. O JasperReports gera uma seo de detalhe para todo e cada registro processado; 5. Column Footer: esta seo aparece ao final de cada coluna; 6. Page Footer: esta seo aparece ao final de cada pgina; 7. Last Page Footer: esta seo aparece ao final da ltima pgina; 8. Summary: esta seo aparece ao trmino do relatrio, logo aps o ltimo registro. 22 23. Um relatrio23 24. A interface dos sistemas24 25. Tela inicial25 26. SISACAD-Listagem de acadmicos26 27. SISACAD-Listagem de departamentos27 28. SISACAD-Visualizao de departamentosHiperlink para o cadastro de setores28 29. SISACAD-Edio de departamentos29 30. SISACAD-Outro cadastroParecido com os outros cadastros? Sim.30 31. Professor online31 32. Visualizao de lanamentos Dirio de Classe32 33. Dirio de classeEste programa no gerado automaticamente. Tem que programar tambm.33 34. Academico online 134 35. Academico online 235 36. Academico online 336 37. Academico online 437 38. Academico online 538 39. Academico online 639 40. Visualizao dos relatriosComo controlar a segurana no acesso aos relatrios?40 41. OpenReports um front-end para JasperReports Oferece vrias funcionalidades que voc teria que programar para executar relatrios na WEB (usurios, senhas e grupos de relatrios) Voc define os usurios que executam cada relatrio e pode adicionar parmetros que sero atribudos a um relatrio Permite exportar um relatrio para um arquivo PDF, HTML, CSV, XLS ou PNGDefinio de parmetros como queries, obrigatrio/opcional, datasLog de relatrios, schedulingOpen Source / customizvel41 42. OpenReports 142 43. OpenReports 2 - Grupos43 44. OpenReports 3 - Relatrios44 45. OpenReports 4 - Argumentos45 46. E o Banco de Dados? Utilizao intensa de ConstraintsViewsUser defined functions (UDF)Stored ProceduresTriggersLgica do Negcio no BD 46 47. Volume armazenado Cadastroem 2012Total (at jun/2013)12.691 (2.032)54.148Cursos4475Currculos59440Departamentos3740Disciplinas1.9394.674Turmas6.40076.333Acadmicos x turmas119.6891.447.582Acadmico x nota306.4414.924.059Campi presenciais e a distncia1353Professores8932.789AcadmicosEm 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. Outros dados do sistema Mais de 270 cadastros utilizando Grails, onde as principais operaes (incluir, alterar, excluir e consultar) foram construdas automaticamente, ou seja, sem elaborao de programas por programadores. A quantidade de cadastros se justifica, pois toda a informao/deciso realizada pelo sistema vem de informaes cadastradas no BD.Mais de 450 arquivos de relatrios (utilizando JasperReports).Perfil dos usurios 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. Contribuio A informatizao na rea acadmica no novidade, mas a utilizao de frameworks e a abordagem do projeto do sistema foi o que garantiu a velocidade necessria na construo do sistema.A utilizao de frameworks de desenvolvimento de software ainda pouco difundida em empresas privadas e principalmente no setor pblico pela ausncia de investimentos em Tecnologia da Informao. Um exemplo brasileiro que demonstra a importncia do tema o Framework Demoiselle do SERPRO49 50. Para refletir... Frameworks no so bala de prata Sempre existe cdigo para ser desenvolvidoReforando: No se desenvolve o sistema inteiro com scaffoldingConhecimento de linguagem de programao (pelos programadores) essencialConhecer a plataforma java obrigatrioUse a ferramenta certa para cada tarefa o desafio o equilbrio entre o que desenvolver com cada ferramentaConhecer banco de dados e programao em BD facilita muito o trabalho com frameworksCaracterstica deste projeto foi utilizar frameworks como camada de apresentao (jasperReports) e acesso (Grails) de dados 50 51. Relevncia para o interesse pblico O atendimento s leis estaduais de incentivo ao SL e as prprias diretrizes do Governo Federal so o principal aspecto desta participao. Embora as polticas governamentais na rea sejam dinmicas, o SL indissocivel da Administrao Pblica mesmo que se considere apenas a economia com licenas de software, sem levar em conta outras economias e vantagens. A UEPG tambm uma das maiores beneficirias 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 nmero reduzido de mquinas, e atualmente em qualquer equipamento ligado a internet. A UEPG possui polos de ensino a distncia em 13 cidades, inclusive no estado de Santa Catarina. E a comunidade universitria que consulta e altera dados atualizados. 51 52. Relevncia para o interesse pblico Outros benefcios: Produtividade e Qualidade. Um das principais diretrizes do projeto foi a busca e utilizao de ferramentas de desenvolvimento que estimulassem a produtividade e garantissem a qualidade dos sistemas. Padronizar para facilitar a manuteno. A padronizao contribuiu nas tarefas de manuteno de software. Atualidade e sintonia com o mercado. Uma universidade que possui cursos de informtica dispe de recursos humanos para construo de software, mas a baixa remunerao provoca uma alta rotatividade nas equipes. Logo, no se dispe de muito tempo para treinamento, e a utilizao de tecnologias ultrapassadas desmotiva qualquer equipe. Para contornar este problema foi necessria a adoo de tecnologias geis de desenvolvimento com curvas de aprendizado menores. Disponibilidade atravs da web com segurana. cada vez maior a exigncia por parte dos usurios de que os sistemas sejam disponveis pela internet. O desafio a escolha de linguagens e ferramentas que garantam o desenvolvimento de sistemas WEB seguros e protegidos de prticas como injeo de cdigo externo entre outras. Os frameworks utilizados fornecem estas garantias. Bom e amplo projeto de Banco de Dados se tornou fundamental. Executou a migrao de um sistema legado obsoleto, para um sistema 100% WEB e com inmeros novos recursos. 52 53. Novos projetos Matrcula Online (jan/2014) Maior dificuldade = sistema seriado anualAtualizar a interface de relatrios (OpenReports est com o projeto estacionado pelo desenvolvedor) - JasperServer Modernizao da interface do sistema (visual) preservando os benefcios de frameworks (em andamento)Desenvolvimento para smartphones/tabletsMigrao para um SGBD opensourceEstgio Online (atualmente em PHP)53 54. Mudando a interface54 55. Equipe Coordenador Analista de Informtica Marcelo PontesProgramadores Marcos Vinicius FidelisEvandro Raphaell Gura, Emanoly Fernanda Gura, Eunelson Jos da Silva Jnior, Everton Rodrigo Horn, Fbio Stankievicz, Fernando Luiz Wottrich, Iohan Gomes Pierdon, Jessyca Kawana Franquitto, Larissa Loureno Nunes Benck, Michael Julian BerezaAnalistas de Informtica colaboradores Adriane Teresinha Caxambu, Carlos Alberto Volpi, Jonathan de Matos, Luiz Gustavo Barros, Sandro Teixeira 55 56. Onde conseguir mais informaes? http://grails.org/http://www.grailsbrasil.com.br/https://twitter.com/grails_brasilhttp://www.itexto.net/devkico/?page_id=220 Instalao, groovy, desenvolvimento de uma aplicaoGroovy: o Java que eu sempre quishttp://blog.aracomp.com.br/2010_09_01_archive.htmlYoutube, etc. Desenvolvendo uma aplicao em minutos.Visite a UEPG para ver nossos sistemas em funcionamento.56 57. Contato Obrigado a todos! Marcos Vinicius Fidelis [email protected] - [email protected]