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

Documentos relacionados
ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

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

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

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

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

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

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

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

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

Universidade da Beira Interior

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

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

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

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

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

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

HIBERNATE EM APLICAÇÃO JAVA WEB

Sistemas Distribuídos

Artur Petean Bove Júnior Tecnologia SJC

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

Documento de Arquitetura

Semântica para Sharepoint. Busca semântica utilizando ontologias

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: ou

18/04/2006 Micropagamento F2b Web Services Web rev 00

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

Padrões de Projeto WEB e o MVC

3 Serviços na Web (Web services)

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

UFG - Instituto de Informática

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

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

Aplicação Prática de Lua para Web

3 SCS: Sistema de Componentes de Software

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

Unidade II MODELAGEM DE PROCESSOS

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

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

Projeto Disciplinar de Infra-Estrutura de Software SISCOP TORRE FORTE CONSTRUÇÕES LTDA.

UML - Unified Modeling Language

UFG - Instituto de Informática

Engenharia de Requisitos Estudo de Caso

SISTEMA GERENCIADOR DE BANCO DE DADOS

Especificação do 3º Trabalho

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Sistemas de Produtividade

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

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

Planejando o aplicativo

Documento de Análise e Projeto VideoSystem

LEIA ISTO PRIMEIRO. IBM Tivoli Configuration Manager, Versão 4.2.1

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

DESENVOLVIMENTO DE APLICATIVO MÓVEL PARA AUXÍLIO NA PREVENÇÃO DE TRAGÉDIAS EM DECORRÊNCIA DE ENCHENTES

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

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

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Escola Superior de Tecnologia de Setúbal. Projecto Final

Programação para Web Artefato 01. AT5 Conceitos da Internet

TECNOLOGIAS E FRAMEWORKS PARA O DESENVOLMENTO DE INTERFACES WEB

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

Kassius Vargas Prestes

Curso de Aprendizado Industrial Desenvolvedor WEB

Desenvolvendo Websites com PHP

PADRÕES PARA O DESENVOLVIMENTO NA WEB

Wilson Moraes Góes. Novatec

Figura 1 - Arquitetura multi-camadas do SIE

LINGUAGEM DE BANCO DE DADOS

Processos de Desenvolvimento de Software

Feature-Driven Development

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Consultoria sobre Joomla!

A Linguagem de Modelagem Unificada (UML)

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

1. INTRODUÇÃO 3 2. ESCOPO DO SERVIÇO DE CUSTOMIZAÇÃO 3

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

MVC e Camadas - Fragmental Bliki

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

2 Engenharia de Software

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

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

SISTEMA DE GESTÃO DE PROJETOS DE SOFTWARE - SGPS

O uso do gestor de conteúdos plone no suporte a processos de software

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

Programação para Internet Orientada a Objetos com PHP & MySQL Instalando e configurando um ambiente de ferramentas PHP e MySQL. Prof. MSc.

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

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

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 BAIXA DE CONTAS A PAGAR RELEASE 4.1

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

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

Desenvolvimento de um CMS 1 para a criação e publicação de web sites acessíveis por deficientes visuais.

Transcrição:

TECNOLOGIAS E FERRAMENTAS UTILIZADAS EM UMA ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB Ruan Alves Brandão 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil brandao15@gmail.com ricardo@unipar.br Resumo. O presente artigo é composto de uma revisão bibliográfica de tecnologias e ferramentas que compõem uma arquitetura de software web, com o objetivo de apresentar para o leitor uma arquitetura de software de alto nível e referência no mercado de trabalho, para tanto foi realizada uma pesquisa bibliográfica em diversos meios como livros, e-books, e etc. O conhecimento proporcionado por meio das pesquisas para o desenvolvimento permite inferir que existem ainda mais tecnologias e ferramentas que podem ser exploradas, mas as destacadas neste artigo apresentam grande performance e são recomendadas por diversos desenvolvedores experientes. 1. Introdução No atual contexto de produção de software web um conjunto de tecnologias e ferramentas que ao serem utilizadas juntas trazem um resultado satisfatório que algumas vezes pode exceder as expectativas dos indivíduos envolvidos no projeto de software em questão, e consequentemente tornar-se uma arquitetura de desenvolvimento de software referência, sendo adotada por diversos desenvolvedores e fábricas de software, onde essa arquitetura referência pode até transforma-se em uma solução coorporativa. A arquitetura de software possui diversas definições, uma delas é o conjunto de elementos arquiteturais que possuem alguma organização, os elementos e sua organização são definidos por decisões tomadas para satisfazer objetivos e restrições, os elementos destacados são: processamento, dados e conexão. As relações entre os elementos possuem propriedades e restringem como os elementos devem interagir de forma a satisfazer os objetivos do sistema. Os conceitos citados e explicados acima traduzem na seguinte fórmula: Arquitetura = {Elementos, Organização, Decisões} [Perry; Wolf, 1992]. O padrão ISO/IEEE define arquitetura de software como a organização fundamental de um sistema em seus componentes, seus relacionamentos com o ambiente, e os princípios que conduzem seu design e evolução [ISO-Architecture, 2011]. Essa pesquisa tem como objetivo apresentar tais componentes ou elementos que formam a arquitetura de software.

2. Metodologia Para a realização desse trabalho foram necessárias diversas pesquisas em materiais como livros, e-books, sites da internet e artigos. O material levantado pelas pesquisas é de grande volume, por isso só as partes principais foram utilizadas para construção desse artigo. A verdadeira meta foi apresentar um pouco sobre cada ferramenta e tecnologia utilizada em uma arquitetura de desenvolvimento de software web. 3. Desenvolvimento 3.1. Modelagem Utilizando a UML A UML (Unified Modeling Language) (Linguagem de Modelagem Unificada) é uma linguagem de modelagem que foi criada visando a criação de modelos abstratos de processos, assim pode ser utilizada para descrever o mundo real e os detalhes internos que descrevem um software. É uma linguagem formal e visual ao mesmo tempo, pois é definhada de forma gramatical e é baseada em diversos diagramas. A UML é considerada uma linguagem de modelagem moderna e eficiente para o desenvolvimento de artefatos como documentações e especificações de uma aplicação computacional [Gudwin, 2010]. É importante destacar que apesar da UML possuir versão, sendo a última versão disponibilizada 2.4.1 pelo seu grupo mantenedor Object Management Group não deve ser compreendida como uma linguagem de programação, pois na verdade a UML é uma linguagem de modelagem sendo umas das principais características a possibilidade de ser uma linguagem visual, para modelagem de software utilizando o paradigma de orientação a objeto. Segue como exemplo a Figura 1 Diagrama de classe simples., um simples diagrama de classe, nele foi aplicado um dos conceitos do paradigma orientado a objeto a herança. Figura 1 Diagrama de classe simples. 3.2. Plataforma de Operação e o Framework JSF A plataforma J2EE Java 2 Platform Enterprise Edition é uma plataforma robusta, utilizada principalmente para o desenvolvimento e execução de aplicações no lado do servidor, possui capacidade para desenvolvimento de aplicações robustas e escaláveis, a ideia seria que o desenvolvedor escreva menos código, aproveitando toda uma plataforma de serviços e APIs (Application Programming Interface) já existente, afinal o J2EE estende do Java [Melo JR, 2007]. O JSF (Java Server Faces) é um framework de componentes do lado do servidor, é caracterizado como uma tecnologia que permite criar aplicações Java para Web utilizando componentes visuais prontos, é considerada robusta e flexível pois permite separar modelo da visão, além disso ele incorpora especificação do J2EE [Caelum, s.d.].

Um framework utilizado no mundo inteiro, é considerado uma referência para o desenvolvimento de aplicações web, ele utiliza modelo de arquitetura de software chamado MVC (Model-view-controller). Esse modelo é multicamadas, pois suporta componentes de apresentação, componentes da regra de negócio e persistência de dados e componentes da camada de controle da aplicação. O modelo MVC é considerado fantástico, pois pode ser utilizado em qualquer aplicação, utilizando qualquer tecnologia ou pacote. O padrão MVC implementa um usecase interativo nos três componentes citados anteriormente, segue uma breve descrição cada um deles [Melo JR, 2007]: Modelo (Model): É utilizado para manipular informações, mantém o estado da View e fornece a mesma os valores atuais. Visão (View): Camada que permite a interação do usuário com a aplicação, ela captura as ações do usuário e se comunica com o controle (Controller). Controle (Controller): Recebe solicitações da camada de visão (View), invoca as regras de negócio necessárias, comanda a alteração do estado do modelo (Model), e a atualização das informações exibidas na camada de visão (View). Com intuito de deixar de melhor esclarecer o funcionamento do MVC, segue a Figura 2 com a representação gráfica apresentada através de um diagrama de sequência: Figura 2 - Diagrama de sequência do modelo MVC. Fonte: [Melo JR, 2007] 3.3. Primefaces Suite para JSF Esse framework implementa a especificação do JSF e deve ser utilizando em conjunto

com o mesmo, tem código aberto, disponibiliza uma versão gratuita e outra paga, sua utilização é possível em projetos de código aberto ou comerciais, desde que respeitados os termos da licença [PrimeFaces, s.d.]. O Primafaces conta com diversos componentes, todos personalizáveis e que implementam as tecnologias AJAX e JavaScript. O que torna o Primefaces um framework muito utilizado é o fato de ela possuir um showcase com muitos exemplos práticos da utilização de seus componentes, alguns com diversos exemplos para diversos tipos de usos, fazendo com que o desenvolvedor possa tentar aprender a usá-lo sozinho. 3.4. Eclipse A IDE (Integrated Development Environment) (Ambiente Integrado de Desenvolvimento), está IDE é open-source e não possui um fabricante e sim uma comunidade que presta o que pode ser chamado de um suporte geral à ferramenta, prestando suporte no rastreio de bugs, fóruns de discussão para os usuários entre outros, o nome dessa comunidade é Free and open-source software community. O Eclipse foi incialmente desenvolvido pela IBM (International Business Machine), que gastou a considerável quantia de 40 milhões de dólares para o desenvolvimento inicial. Pode-se notar que na última década no século XXI a IBM fez fortes contribuições para a comunidade de software livre, uma delas foi à doação da primeira versão do Eclipse a comunidade de software livre [Junnarkar, 2001]. A IDE em questão é vastamente utilizada no mercado pelo seu alto rendimento no desenvolvimento, suporta a linguagem JAVA, C/C++, PHP entre outras, e também a plataforma Android, possui uma arquitetura que pode ser considerada modular, pois permite a utilização de diversos plug-ins para contemplar todas as necessidades extras do desenvolvedor. 3.5. Banco de dados Um banco de dados é um sistema que permite armazenar informações em forma de registros, também permite buscar, atualizar e remover essa informação que pode ser qualquer coisa pertinente ao utilizador. O PostgreSQL é um banco de dados relacional que utiliza o padrão ANSI (American National Standards Institute) (Instituto Americano Nacional de Padrões) e possui todas as características de vários outros bancos de dados robustos, mas com uma diferença, ele é open-source, essa é uma propriedade interessante caso o desenvolvedor tenha interesse em mudar algo em seu banco de dados com objetivo de satisfazer alguma necessidade específica do projeto de software, esse banco pode ser gerenciado pelo SGBD (Sistema Gerenciador de Banco de Dados) pgadmin que possui uma interface gráfica agradável e de fácil utilização mesmo por um desenvolvedor pouco experiente. O PostgreSQL é considerado o banco de dados mais avançado do mundo devido á diversas propriedades que em sua maioria somente estão presentes em produtos comerciais [Worsley; Drake, 2013].

3.6. Servlet Container Um servlet container é um programa compilado e executável, a função principal do servlet é carregar, inicializar e executar servlets, quando uma página web faz uma solicitação ao servlet, o servidor entrega a solicitação para o container que contém o servlet, esse container gerencia o ciclo de vida e da suporte às páginas, o sistema será executado utilizando o Apache Tomcat na versão 7.0 da Apache Software Foundation. O Apache Tomcat é servlet container é muito estável e possui todas as propriedades de um servlet container comercial, mesmo sendo uma ferramenta opensource [Vukotic; Goodwill, 2011]. Sua capacidade estende-se pois o mesmo pode atuar como um servidor web HTTP (Hyper Text Transfer Protocol) totalmente em Java. 3.7. Repositório Maven Na última década, notou-se a necessidade de gerir melhor o desenvolvimento de software para se criar as chamadas soluções corporativas a fim de garantir propriedades como: segurança, robustez, acessibilidade, integração, etc. Maven é uma ferramenta utilizado para gerenciamento de projetos, e suas dependências, é um projeto de código livre mantido pela Apache Software Foundation [Santos, 2008]. O Maven é configurado por meio do arquivo pom.xml, (Project Object Model) nele são inseridas as configurações gerais do projeto, como nome do projeto, tipo de empacotamento, suas dependências, repositórios de onde as dependências serão buscadas, esses repositórios podem ser locais ou remotos, se o artefato não for localizado no repositório local, o Maven irá tentar buscar utilizando um repositório remoto o mesmo estiver inserido. Também é permitida a configuração de plug-ins adicionais, para satisfazer a necessidade do desenvolvedor ao construir e fazer o deploy do seu projeto. 3.8. Segurança A maioria dos softwares são contemplados com um módulo de segurança, mesmo que seja uma implementação mínima, mas ela existe, afinal é uma necessidade proteger a informação a fim de garantir a integridade da mesma. Spring Security é um framework utilizado para a implementação da segurança, a utilização do framework é considerada simples pois não necessita de muitas alterações no código, para implementação do Spring Security o mínimo necessário é a adição de alguns filtros ao descritor de implantação do J2EE, (web.xml), e a adição de um arquivo XML (extensible Markup Language) (Linguagem de Marcação Extensível) ao projeto com as especificações mínimas necessárias para o funcionamento da ferramenta junta ao projeto, o site do framework disponibiliza um amostra desse arquivo e indicações de como deve ser integrada ao projeto, a utilização do framework para implementação de autenticação por login e senha é simples, mas se o desenvolvedor desejar ir mais a fundo, a ferramenta permite, pois possui uma arquitetura altamente mutável [Spring Security, s.d.].

4. Considerações Finais Uma arquitetura de software web que adapta-se bem a diferentes escopos e traz bons resultados ao processo de desenvolvimento de software, é algo muito importante para qualquer profissional na vasta área da Tecnologia da Informação que esteja envolvido no desenvolvimento de uma aplicação computacional para qualquer tipo de plataforma. A tecnologia, ou ferramenta só é tão boa quanto o domínio que o seu usuário tem sobre ela, para qualquer tecnologia, ferramenta ou novo processo é necessário tempo, para agregar conhecimento até chegar ao ponto que possa ser aproveitado o máximo oferecido. Os elementos da arquitetura aqui proposta não é considerado um modelo a ser seguido, pois um indivíduo não deve acorrentar-se a uma única arquitetura, afinal de contas o mercado de software e as necessidades dos clientes são mutáveis, mas essa é uma arquitetura que já provou ser bem eficaz e se necessário pode ser adaptável de acordo com a necessidade do projeto de software. 5. Referências ISO-Architeture. ISO/IEC/IEEE 42010:2011: System and software engineering Architecture description. Available on: <http://www.iso-architecture.org/ieee- 1471/afs/>. Access: August 13. 2014. Gudwin, Ricardo. (2010). Introdução à linguagem UML. Disponível em: <www.dca.fee.unicamp.br/~gudwin/ftp/ea976/estruturais2010.pdf>. Acesso em: 15/08/2014. Junnarkar, Sandeep. (2001). IBM makes $40 million open-source offer, CNET, San Fransisco, nov. 2001. News - Business Tech. Available on: <news.cnet.com/ibm-makes-40-million-open-source-offer/2100-1001_3-275388.html>. Access: May 20. 2014. Melo Jr, Cleuton Sampaio, 2007, Guia do Java Enterprise Edition 5: desenvolvendo aplicações corporativas. 5. ed. Rio de Janeiro: Brasport. Perry, D. E.; WOLF, A. L. (1992). Foundations for The Study of Software Architecture. Available on: <users.ece.utexas.edu/~perry/education/se-intro/swasen.pdf >. Access: August 13. 2014. SIGSOFT Software Engineering Notes, 17(4), 40 52. PrimeFaces. PrimeFaces ultimate JSF comonent suite. Available on: <www.primefaces.org/>. Access: August 14. 2014. Santos, W. (2008). Introdução ao Apache Maven. Belo Horizonte: Eteg. Spring Security. Spring Security. Available on: <projects.spring.io/springsecurity/>. Access: August 20. 2014. Vukotic, A. and Goodwin, J. (2010). Apache Tomcat 7. Las Vegas: Apress, 2010, 296 p. Worsley. J. and Drake, D, J. (2012). Pratical PostgreSQL. Sebastopol, O Reilly Media, 2012, 640p.