UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS



Documentos relacionados
DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

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

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

Manual de Procedimentos para Desenvolvimento de Softwares

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB

TECNOLOGIAS E FRAMEWORKS PARA O DESENVOLMENTO DE INTERFACES WEB

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

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

HIBERNATE EM APLICAÇÃO JAVA WEB

TECNOLOGIAS E FERRAMENTAS UTILIZADAS EM UMA ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB

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

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

Integração de sistemas utilizando Web Services do tipo REST

SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

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

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

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

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Clóvis Diego Schuldt. Orientador: Prof. Wilson Pedro Carli

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

Aprenda as melhores práticas para construir um completo sistema de teste automatizado

ARQUITETURA DO SISTEMA ERP PEGASUS

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

SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS

Universidade Paulista

4 Um Exemplo de Implementação

Arquiteto de Software. Projeto. Professor MSc Wylliams Barbosa Santos h:p://about.me/wylliams Infra- Estrutura de SoCware

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

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

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

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

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor

ORDEM DE SERVIÇO OS 003/DINFO/ /09/2013

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

ENGENHARIA DE SOFTWARE I

Sistemas Distribuídos

Projeto SIAC 2.0: Uma aplicação do framework Demoiselle para o desenvolvimento de Sistema de Informações Acadêmicas da UFBA (SIAC)

Figura 1 - Arquitetura multi-camadas do SIE

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO

PROJETO PEDAGÓGICO DE CURSOS

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.


Projeto Disciplinar de Infra-Estrutura de Software SISPA FACULDADE SENAC

J2EE TM Java 2 Plataform, Enterprise Edition

Documento de Arquitetura

ISO/IEC 12207: Gerência de Configuração

Desenvolvimento de um software de gerenciamento de projetos para utilização na Web

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

PPS - Processo de Proposta de Solução Versão 1.3.1

CURSO DESENVOLVEDOR JAVA Edição 2010

Grécia Um Framework para gerenciamento de eventos científicos acadêmicos utilizando componentes

Padrões de Projeto WEB e o MVC

Introdução à Engenharia de Software

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux

UFG - Instituto de Informática

Projeto Arquitetural do IEmbedded

Analista de Negócio Pleno

ERP Enterprise Resource Planning

UFG - Instituto de Informática

Escola Superior de Tecnologia de Setúbal. Projecto Final

BIG DATA: UTILIZANDO A INTERNET PARA TOMADA DE DECISÕES

Rotina de Discovery e Inventário

Curso - Padrões de Projeto Módulo 5: Model-View- Controller

Gerenciamento de Níveis de Serviço

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

UM CASE DE IMPLANTAÇÃO DA GERÊNCIA DE CONFIGURAÇÃO E MUDANÇA (NÍVEL F) DO MPS.BR UTILIZANDO PADRÕES ABERTO PARA O DESENVOLVIMENTO CORPORATIVO

Plano de Gerência de Configuração

Simular de Financiamento

TUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges

Documento de Análise e Projeto VideoSystem

PORTARIA N Nº Rio de Janeiro, 24 de Outubro de 2013.

Governança de TI. ITIL v.2&3. parte 1

Gestão de Modificações. Fabrício de Sousa

UTILIZAÇÃO DA TECNOLOGIA ENTERPRISE JAVABEANS NO DESENVOLVIMENTO DE APLICAÇÕES DISTRÍBUIDAS

Universidade da Beira Interior

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

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

Gerência de Configuração. Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia

PROJETO DE FÁBRICA DE SOFTWARE

UFG - Instituto de Informática

Programação para Internet II

Transcrição:

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com, wmagalhaes@unipar.br Resumo. Este artigo descreve a utilização de uma arquitetura consistente para desenvolvimento de software web baseado na plataforma J2EE (Java 2 Enterprise Edition) acoplada a tecnologias como JSF (Java Server Faces), Maven, Primefaces, Spring Security e Subversion. Bem como seu emprego na construção do projeto técnico de software proporcionando um caso de uso para exibir como resultado a geração de um CRUD (Create, Read, Update, Delete) envolvendo a arquitetura proposta. 1. Introdução Todo software construído para plataforma web requer uma arquitetura consistente e segura para se adequar ao escopo do projeto e requisitos do software. A ISO/IEC/IEEE 42010:2013, define arquitetura como uma organização fundamental de um sistema incorporada em seus componentes, seus relacionamentos com o ambiente, e os princípios que conduz seu design e evolução. Essa arquitetura alinhada a tecnologias e frameworks é indispensável no desenvolvimento de uma aplicação web que pode ser seguida por uma escala de menor para maior complexidade. Hoje no mercado temos muitas tecnologias que podem ser moldadas para projetos web como, JSF, Maven, Subversion, Plataforma J2EE, Primefaces e Spring Security. O objetivo dessa pesquisa é apresentar uma arquitetura otimizada na plataforma J2EE agregada a essas tecnologias web, implicando na descrição das mesmas, permitindo a junção de todo o processo para gerar um CRUD em JSF, que irá demonstrar a arquitetura construída a partir de um estudo de caso contido no projeto técnico de sistemas de informação (software). 2. Arquitetura de Software Introduzida a Plataforma J2EE A arquitetura de um software consiste na definição de seus componentes, as propriedades externamente visíveis destes elementos e os relacionamentos entre eles, enfatizando a separação dos interesses [BASS 2003]. A plataforma Java 2 Enterprise Edition é uma tecnologia de referência para desenvolvimento de aplicações web. Essa tecnologia acopla um sistema de multicamadas suportando componentes de apresentação (JSF, Servlet), componentes de regra de negócio e persistência dos dados como Enterprise Java Beans (EJB), Contexts and Dependency Injection (CDI), dá suporte a conexão com banco de dados e gerencia

a camada de controle da aplicação. Tornando assim uma arquitetura flexível buscando simplificar e padronizar a estrutura do projeto. 2.1. A camada modelo-visão-controle (MVC) Esse modelo introduz um padrão para desenvolvimento de software permitindo isolar a lógica de negócio da interface (apresentação), proporcionado um desacoplamento entre os objetos permitindo desenvolver e testar separadamente cada parte do projeto. Segundo SAM [2007] esse padrão implementa um use-case interativo em três componentes: Modelo: Mantém o estado atual da View. É responsável por alterar o estado e fornecer à View os valores atuais. View (apresentação): Captura ações do usuário e comunica com o controle para que sejam executadas. Controle: Recebe solicitações da View, invoca as regras de negócio necessárias, comanda a alteração do estado do Modelo e a atualização das informações exibidas na View. 2.2. Integrando o framework JSF a camada da aplicação O JSF é um framework da especificação Java Enterprise Edition (JEE) desenvolvido para aplicações web, sua estrutura é definida por um modelo único de componente (UIComponents), o qual utiliza conceito de eventos para trabalhar com interface, além de poder ser mesclados com novas tecnologias web como as tags HTML5 e estilos do CSS 3, validações e conversões de dados. O JSF é uma tecnologia que incorpora características de um framework MVC para web e de um modelo de interface gráficas baseado em eventos. Por basear-se no padrão MVC, uma de suas melhores vantagens é a clara separação entre a visualização (View) e regras de negócio (Controle) [PITANGA]. Como mostra a figura 1. Figura 1: Modelo MVC do JavaServer Faces (Fonte: Mota, Roberto Dias)

2.3. Primefaces a suite para JSF O Primefaces é uma biblioteca de componentes para JSF que implementa tecnologia AJAX e JavaScript, ao todo são mais de 100 componentes todos personalizáveis e de fácil utilização, pois disponibiliza um showcase com todos os exemplos implementados. Esse framework foi o primeiro a dar suporte para JSF 2.0 e sua estrutura é leve sendo que todas as decisões são tomadas baseadas em manter o Primefaces mais leve quanto possível [Prime Tecnology, 2013]. 2.4. Repositório maven O Maven é uma ferramenta para gerenciamento de dependências, seu comportamento distribui ao projeto as bibliotecas e arquivos jars necessário para o desenvolvimento, essas injeções chegam ao projeto através de repositórios disponíveis na web ou repositórios locais contido no diretório classpath onde foi instalado o JDK (Java Development Kit). Basicamente a configuração do Maven é feita por um arquivo chamado pom.xhtml (Project Object Model) nele declaramos a estrutura, características e dependências do projeto. 2.5. Gerenciando o projeto com subversion O Subversion é um sistema de controle de versão (SVN) que gerencia arquivos e diretórios, e as modificações feita no mesmo ao longo do desenvolvimento do projeto. Esse sistema permite o trabalho em equipe, onde diversas pessoas podem trabalhar no mesmo projeto em locais distintos. As operações (atualizar cópia, submeter alterações, reverter alterações) fazem parte do ciclo de trabalho do projeto. Para o gerenciamento da SVN são criado os diretórios Trunk que contém o projeto em desenvolvimento e suas atualizações, os Branches armazena as versões paralela do Trunk, porém isolada deste. O Branch é uma versão final do projeto que é gerada a partir do Trunk. A figura 2 ilustra o ciclo de trabalho na SVN Figura 2: Ciclo de trabalho na SVN (Fonte: Moreira, Anderson L. S.) 3. Estudo de Caso (A Aplicação) O estudo de caso proposto visa desenvolver um projeto técnico de sistema resultando em um Software Web para Gestão Comercial (SW-GC). Sua construção partiu dos

conceitos da engenharia de software onde foi possível realizar uma análise de requisitos e definir um escopo para o desenvolvimento do projeto. Seguindo esse escopo foi possível aplicar as tecnologias abordadas nessa pesquisa cientifica construindo uma arquitetura flexível, otimizada e consistente. 3.1. Gerando um CRUD aplicando a arquitetura proposta A partir do estudo de caso foi possível gerar um CRUD, apresentando os resultados obtidos através da arquitetura proposta. A figura 3 apresenta a View (tela) de gestão de usuário do sistema. Figura 3: CRUD de gestão de usuário gerado a partir da arquitetura introduzida 3.2. Aplicando segurança ao projeto com spring security O Spring Security é um framework de autenticação e controle de acesso, altamente customizado em aplicações Enterprise Java Bean (EJB). Sua implementação é feita através de configurações declarativas via arquivo XML ou anotações com auxílio de programação orientada a aspecto (AOP). Essa ferramenta faz a segurança através de declarações baseadas em papéis (roles). Através dos roles definidos, podemos informar ao aplicativo, a qual área está sendo assegurada, quais recursos podem ser acessados e qual usuário receberá permissões para acessar o conteúdo restrito. A figura 4 implementa a parte de segurança requisitada no CRUD apresentado na figura 3. Figura 4: Arquivo applicationcontext.xml do projeto proposto apresentando os níveis de acesso para cada hole gerenciado pelo Spring Security.

4. Metodologia O trabalho é resultado de uma revisão bibliográfica acerca das tecnologias abordadas, revisando artigos científicos, livros, trabalho de conclusão de curso publicados, e ainda sites da internet especializados no assunto. Acrescendo o levantamento do caso de uso em questão coincidindo com as tecnologias pesquisadas. 5. Conclusão O desenvolvimento de software web dentro de uma arquitetura planejada tem objetivado resultados positivos no mercado, alcançando padrões de alto níveis tanto para o produto final, quanto para projetista e desenvolvedor. Outro ponto importante está nas tecnologias que envolvem essa arquitetura, pois podemos encontrar frameworks de alta performance como os descritos nessa artigo para moldar o projeto. É importante ressaltear que a arquitetura proposta não é um modelo a ser seguido e sim o acoplamento para um caso de uso especifico, podendo ser alterada de acordo com necessidade do projeto. Já o projeto técnico de sistemas (caso de uso) apresentou resultados positivos com a arquitetura implementada, deixando claro a separação entre as camadas de negócio e interface da aplicação. Referências BASS, Len and Clements, Paul and Kazman, Rick. 2003, April. Software Architecture in Practice, Second Edition. Addison-Wesley Professional. MELO JR, Cleuton Sampaio, 2007, Guia do Java Enterprise: Desenvolvendo Aplicações Corporativas. 5ª ed, Rio de Janeiro: Brasport. PITANGA Talita. Java Server Faces: a mais nova tecnologia para desenvolvimento web Disponível em:<www.guj.com.br/content/articles/jsf/jsf.pdf> 28/07/2013. MOTA, Roberto Dias, 2011, Utilizando Framework Java Serve Faces (JSF), Hibernate e Primefaces para Desenvolvimento de Software para Web. Prime Tecnology. Why PrimeFaces? Disponível em: <http://www.primefaces.org/whyprimefaces.html>. 28/07/2013. Core Spring: Desenvolvimento de Aplicações Java EE com Spring Framework. Disponível em: < http://www.globalcode.com.br/treinamentos/cursos/core-spring >. 25/07/2013 Moreira, Anderson L. S. Controle de Versões com SVN, 2011. Disponível em: <http://siep.ifpe.edu.br/anderson/blog/?page_id=993>.21/07/2013 Java Frameworks: Spring Security, 2012. Disponível em < http://javaframeworks-renzi.rhcloud.com/?cat=5 >. 20/08/2013 ISSO/IEC/IEEE 42010:2013: System and software engineering Architecture description. Disponível em:<http://www.iso-architecture.org/ieee- 1471/afs/>30/07/2013.