vraptor 3, jpa, hibernate, geotools e openlayers, ajudando pedro alvares cabral com geoprocessamento
Post on 30-Jun-2015
2.285 Views
Preview:
DESCRIPTION
TRANSCRIPT
Carlos Alberto Junior Spohr Poletto http://carlos4web.wordpress.com
@carlosjrcabello https://github.com/carlosjrcabello
Ajudando Pedro Alvares Cabral com geoprocessamento.
Centro Internacional de Hidroinformática;
Aplicações de informações geográficas;
Tecnologias;
Aplicação de estudo de caso;
Apresentação sobre o trabalho do CIH;
Entendimento sobre aplicações voltadas a geoprocessamento;
Função e papel das tecnologias utilizadas;
Aplicação para estudo de caso;
Clareamento das possibilidades com os recursos da WEB atual;
Centro UNESCO - Categoria 2 (*) (*) Rede mundial de 20 Centros Especializados, credenciados pela UNESCO/PHI para trabalhar temas relacionados com a gestão das águas. CIH - Promover a HIDROINFORMÁTICA (*) aplicada em gestão das águas. (*) Ramo da Ciência da Computação dedicado a gestão das águas.
• Dar Suporte aos Programas UNESCO-PHI: HELP, FRIEND, ISI, ISARM, GRAPHIC e ao PHI-LAC, COBRAPHI e CONAPHI – PY; • Divulgar das boas práticas dos Governos Brasil e Paraguai e da ITAIPU; • Incentivar as relações e negócios de desenvolvimento e inovação tecnológica no âmbito do Parque Tecnológico Itaipu; • Desenvolver ferramentas em Software Livre de Código Aberto para garantir o acesso universal à Hidroinformática e intensificar a difusão dessas ferramentas.
Acrônimo de GIS - Geographic Information System; Manipulação e visualização de informações geográficas como polígonos, linhas , pontos, etc.; Análise e projeção destas informações; Consultas espaciais ao invés do modelo relacional tradicional; Padrões definidos pela Open Geospatial Consortium, exemplos: OGC, WMS, WFS, WCS, WPS, KML, KMZ, OWC, etc.;
Mapeamento de casos de dengue;
Mapeamento de crimes ocorridos (WikiCrimes);
Viabilidade de implantação de biodigestores (SigBiogás - CIH);
Sistemas de rotas e tráfego;
Georreferenciamento de áreas produtivas (glebas);
Já desenvolveu e/ou desenvolve para WEB ?
Java EE ?
Servidores de aplicação, Inversão de Controle e injeção de dependências ?
Conhece e/ou já utilizou PostgreSQL e/ou Postgis?
Conhecimentos em dados espaciais, como geometrias, servidores de mapas, etc.?
Apresentação e definição de todas as tecnologias utilizadas.
VRaptor 3.4
Hibernate Spatial Hibernate
Spring framework 3.0 JPA 2
Geotools
Banco de dados (relacional + geográfico)
OpenLayers jQuery
XHTML
AJAX
Outras APIs
Framework WEB focado em produtividade; Encapsula a complexidade da API javax.servlet; Pouca ou nenhuma dependência entre os seus componentes nativos (core); Boas práticas adotadas:
Convenção sobre configuração; Injeção de dependências; Forte orientação a objetos;
Framework Brasileiro, mantido pela Caelum e a comunidade;
Separação de lógicas em forma de componentes reutilizáveis; Redirecionamentos e encaminhamentos de maneira programática; Mapeamento de URL’s amigáveis através de um modelo REST; Suporte aos contêiners Spring, Pico e Guice; Serializadores e deserializadores para JSON, XML, etc.;
Paranamer; Guava; Apache Commons; Shapefilereader; Primefaces; Jetty library
jQuery UI; jQuery.plugins; TinyMCE; jQuery Validator;
Java Javascript
Desenvolvimento de uma aplicação de estudo de caso para consolidar o entendimento sobre aplicações de geoprocessamento.
Definição da regra de negócio; Diagramação da regra de negócio (DER);
Dependências; Configurações do projeto; Classes beans/pojo; Estrutura do template, CSS e bibliotecas Javascript; Codificação e mão na massa
Cadastro de propriedades;
Cadastro de glebas;
Consulta das propriedades através de uma área desenhada no mapa;
Upload de um shapefile;
CRUD de propriedades, a qual contém os campos: Id – Long; Nome da propriedade – String; Ponto de localização – Geometry (Point); Glebas – List das glebas da propriedade;
CRUD de glebas, a qual contém os campos: Id – Long; Descrição – String; Propriedade – Referência da propriedade pertencente; Área da gleba – Polígono (Geometry - Polygon);
Persistência e acesso a dados: JPA 2 (hibernate-jpa-2.0-api-1.0.0.Final.jar); Hibernate (hibernate3.jar); Hibernate Spatial (hibernate-spatial-1.1.jar e hibernate-spatial-
postgis-1.1.jar); hibernate-validator-4.0.2.GA.jar
Geo Geotools geotools 2.7.1 (http://goo.gl/ffaKf);
Contêiner: Spring framework (aop, asm, aspects, beans, context, core,
expression, web) na versão 3.0;
VRaptor 3.4
Uma classe que será acessível no contexto WEB deve estar anotada com @Resource; Somente métodos públicos são acessíveis; A partir do VRaptor 3.4 é possível injetar dependências via parâmetros diretamente; Carregamento automático por meio da anotação @Load (Caelum – Lucas) ou @LoadObject (Carlos A. Junior); Se usar um redirectTo ou forwardTo não é necessário um arquivo .jsp de saída;
ClienteController • formulario(); • listarInativos();
WEB-INF/jsp/
cliente
formulario.jsp listaInativos.jsp
Cada método público, pode ser anotado com: @Get : acessível somente por requisições GET; @Post : somente acessível por requisições POST; @Path: acessível por GET e/ou POST (duplica a URL); @Delete, @Put: devem utilizar o parâmetro _method em
uma requisição POST;
É possível colocar um caminho relativo na própria classe com @Path;
Template HEADER – Código de abertura da página.
Template FOOTER – Código de fechamento da página.
<cih:template path=“template” part=“header”/>
Trecho de código HTML/JSTL/JS da lógica do controlador. <cih:template path=“template” part=“footer”/>
Scripts comuns, importação, etc.
Lógicas JS/JSTL de fim de página.
Inclusão CSS, scripts comuns, etc.
Definição do idioma da página <fmt:locale>
Usar de preferência somente o JPA para operações CRUD; Em consultas usar a Criteria API do seu framework de persistência, ou então ser cabra-macho e usar a CriteriaBuilder do JPA para manter a aplicação independente da camada de persistência; Deixar o controle de transações para o próprio VRaptor , sim, isso é possível, mas como ?
<context-param> <param-name>br.com.caelum.vraptor.packages</param-name> <param-value>br.com.caelum.vraptor.util.jpa</param-value> </context-param>
@Override protected void registerCustomComponents(ComponentRegistry registry) { registry.register(EntityManagerCreator.class, EntityManagerCreator.class); registry.register(EntityManagerFactoryCreator.class, EntityManagerFactoryCreator.class); registry.register(JPATransactionInterceptor.class, JPATransactionInterceptor.class); // ou uma factory minha, que esteja anotada com @Component. registry.register(MinhaFactory.class, MinhaFactory.class); }
Ou na versão programática registrando um componente.
Necessita da commons-fileupload;
Formulários HTML com o enctype definidos;
Abstração da lógica de upload através da interface UploadedFile;
Configuração da leitura do shapefile com o componente ShapefileReader;
Browser
Aplicação VRaptor
UploadedFile ShapeFileReader
JPA
Comunidade gvSIG; GUJ; Grupo de usuários VRaptor (Google groups); Spring framework; JPA 2 com outros frameworks de persistência; OpenLayers; jQuery e plugins; HTML 5; Servidores de mapas;
Cícero J. Bley Jr. Coordenador do
Centro Internacional de Hidroinformática - ME cbley@itaipu.gov.br
Ana Carolina Gossen Coordenadora do
Centro Internacional de Hidroinformática - MD gossen@itaipu.gov.py
Carlos Alberto Junior Spohr Poletto Analista de Sistemas
carlosjrcabello@gmail.com carlos@pti.org.br @carlosjrcabello
carlos4web.wordpress.com
top related