u06-desenvolvimento de software multicamadas (metodologia)
DESCRIPTION
Uploaded from Google DocsTRANSCRIPT
![Page 1: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/1.jpg)
UNID 6 - Desenvolvimento de Software Multicamadas
UNID 6 - Desenvolvimento de Software Multicamadas
UNAMA – Universidade da AmazôniaPRÓ-REITORIA DE PESQUISA, PÓS-GRADUAÇÃO E EXTENSÃOPÓS-GRADUAÇÃO LATO SENSUCurso de Especialização em Desenvolvimento de Sistemas Baseado em Software Livre
Desenvolvimento de Aplicações Multicamadas
Prof. Cláudio Martins [email protected]
![Page 2: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/2.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
2
AssuntosAssuntos
Especificação e modelagem de sistemas multicamadas
Arquitetura em camadas (MVC e variantes)
Papéis (roles) e Responsabilidades
Servidor de Aplicação
Configuração do Servidor de Aplicação
![Page 3: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/3.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
3
Especificação e modelagem de sistemas multicamadas
![Page 4: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/4.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
4
Paradigma de desenvolvimento baseado em Paradigma de desenvolvimento baseado em componentescomponentes
Ao longo da disciplina percebemos que o desenvolvimento de sistemas/aplicações em uma arquitetura multicamadas traz muitos benefícios para quem desenvolve software, em especial a possibilidade de criar software com qualidade e enfatizando a reutilização de componentes.
A separação da aplicação em “camadas” permite que os desenvolvedores sejam alocados em tarefas especifícas (dos seus componentes) e a construção do software seja modular.
![Page 5: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/5.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
5
No caso das aplicações JEE, podemos construir toda a solução a partir de componentes de aplicação prédefinidos.
Se a solução é totalmente em Java, os componentes de aplicação que se vai trabalhar são os seguintes, considerando as duas principais camadas:
Camada cliente
Camada Servidora
![Page 6: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/6.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
6
Componentes de uma solução JEEComponentes de uma solução JEE
![Page 7: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/7.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
7
Contêineres presentes na solução JEEContêineres presentes na solução JEE
Servidor JEE
![Page 8: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/8.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
8
Uma metodologia para desenvolvimentoUma metodologia para desenvolvimento Para o desenvolvimento de uma aplicação distribuída, o
sistema deve ser modelado no paradigma orientada a objetos.
Os passos que se deve executar para construir (desenvolver) o software multicamadas:
– Especificação da aplicação
– Projeto e arquitetura detalhada
– Implementação da camada do servidor (regras de negócio)
– Implementação da camada cliente (pode haver mais de um cliente)
– Testes
– Configuração e implantação do servidor JEE
![Page 9: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/9.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
9
Arquitetura em camadas (MVC e variantes)
![Page 10: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/10.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
10
Padrão MVCPadrão MVC
Como vimos anteriormente, o padrão MVC é o mais indicado para o desenho da solução da camada cliente (incluindo a camada web).
MVC é um padrão que defende a separação do software em três partes bem definidas:– A Visão
– O Controlador da aplicação
– E o Modelo
![Page 11: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/11.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
11
Solução MVCSolução MVC
![Page 12: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/12.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
12
Como funciona o MVC?Como funciona o MVC?1 – O usuário dispara um evento através da camada de visualização (clica em um botão , p.ex);
2 – O controlador recebe o evento e coordena a aplicação, determinando o fluxo de navegação e quais objetos serão necessários para realizar a regra de negócio;
3 – O “modelo” é utilizado para representar o domínio das informações da aplicação (dados). Além disso, o modelo pode ser chamado pelo controlador para a realizar algumas regras de negócio. O modelo pode ainda ser usado para enviar os dados para a visão (uma página web, por exemplo);
4 – Depois que o controlador realiza a regra de negócio, ele renderiza a nova visão e a envia para o usuário.
![Page 13: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/13.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
13
MVC em Arquitetura Web (Java)MVC em Arquitetura Web (Java) Na camada web, usando JAVA EE, podemos ver
isso da seguinte forma:– A VISÃO é representada por páginas JSP e HTML
– O CONTROLADOR é delegado a classes Servlet’s (ou JSP sem tags html)
– No MODELO pode ser utilizado objetos “java beans” (com um tempo de vida determinado, “request” ou de “sessão”, por exemplo).● Em JSF esses objetos são chamados “managed beans”
![Page 14: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/14.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
14
MVC em Arquitetura WebMVC em Arquitetura Web
Browser envia a solicitação (request)
Controlador interage com o modelo
Controlador chama a visão
Visão formata a resposta ao browser
![Page 15: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/15.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
15
Tipos de MVCTipos de MVC Há alguns variações do padrão MVC quando se trabalha
na web. Por exemplo:
MVC 1
– Foi a primeira geração para implementar a arquitetura MVC em páginas JSP. Onde requisições HTTP são enviadas para uma página JSP que implementa um controlador que envia as requisições para o modelo para que sejam retornadas para a camada de visão.
MVC 2
– O MVC2 pode ser modelado com apenas um controlador para toda a aplicação. Um característica é regra o uso de Servlet como controladores e páginas JSP apenas para visualização.
![Page 16: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/16.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
16
Papéis e responsabilidades
![Page 17: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/17.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
17
Papéis e responsabilidadesPapéis e responsabilidades A especificação EJB define alguns papéis para os envolvidos
no processo de desenvolvimento de aplicações JEE. Estes papéis variam baseados no tamanho da empresa ou projeto.
![Page 18: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/18.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
18
Papéis e responsabilidadesPapéis e responsabilidades
![Page 19: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/19.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
19
Servidor de Aplicação
![Page 20: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/20.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
20
Qual o ambiente e servidor JEE?Qual o ambiente e servidor JEE? O papel do servidor é hospedar a aplicação, que deve estar
empacotada em um arquivo do tipo “ear”.
– A operação de implantação de uma aplicação chama-se “deploy”.
Antes, é necessário definir qual máquina, sistema operacional e servidor (implementação JEE) deverá ser utilizada.
– O computador deve ser configurado para atender as demandas máximas de estresse, carga de processamento, conexões simultâneas, etc.
– Quanto aos servidores há boas opções livres como Jboss, Glassfish, e outros. A escolha é um decisão que dependerá do “expertise” do suporte local para resolver problemas que sempre surgem.
– O ambiente operacional é uma opção muito relacionada ao tipo de computador e ao suporte que será dado ao servidor. Opções: Linux, Sun/Solaris, ou Windows Server?
![Page 21: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/21.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
21
Serviços a configurar no ServidorServiços a configurar no Servidor Após a escolha do servidor e ambiente, é necessário
realizar os ajustes de configuração, uma vez que o servidor pode atender alguns perfis de aplicações.
É necessário estabelecer alguns parâmetros para escolher a melhor configuração, pois as aplicações podem necessitar de alguns serviços no servidor, como:
– JDBC, RMI, JavaMail, JMS, JMX, servlets, portlets, JSF, web services e outros
– Cada serviço “levantado” no servidor acarreta alocação de recursos do servidor e, consequentemente, do equipamento (memória, disco, processador, etc) onde está instalado o servidor.
![Page 22: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/22.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
22
Como instalar e configurar um servidor Como instalar e configurar um servidor GlassFishGlassFish
O GlassFish é um produto da Oracle, com versão “livre” e open-source, porém existe uma versão proprietária chamada GlassFish Enterprise Server.
Para instalá-lo é preciso fazer o download em http://glassfish.java.net/public/downloadsindex.html
Atualmente está na versão 3.1.2 (aderente ao JEE 6), com as seguintes características:
– “Clusterização”, Administração centralizada e na web, suporte a SSH e DCOM, alta disponibilidade, suporte à atualização automática, APIs embutidas e muito mais.
– Suporte nativo aos componentes de terceiros (RichFaces, Primefaces, Grizzly, Weld, Mojarra, Jersey, EclipseLink, OSGi, JavaDB, …).
– Suporta a nova versão do Java (JDK 7) e muito mais.
Leia mais em “Como instalar e configurar um servidor GlassFish.pdf” disponível no disco virtual da disciplina.
![Page 23: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/23.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
23
Configuração do Servidor de Aplicação
![Page 24: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/24.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
24
Por que é necessário configurar o servidor?Por que é necessário configurar o servidor?
Apesar dos ambientes de desenvolvimento (IDEs, como o Netbeans e Eclipse) facilitarem a implantação das aplicações nos servidores JEE, quando chega o momento de implantar em servidores de produção, algumas configurações são necessárias.
No Glassfish, por exemplo, se uma aplicação utilizar JNDI com data sources e connection pool é necessário configurar no servidor antes de implantar (deploy) a aplicação empacotada (EAR).
![Page 25: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/25.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
25
Passos para configura os serviços de Passos para configura os serviços de acesso ao banco de dadosacesso ao banco de dados
Os passos para você utilizar o serviço de nomes com JNDI para acesso a um banco de dados:– Copiar o driver do banco (jar) no servidor
– Configurar o Pool de Conexões
– Testar o Pool de Conexões
– Criar o Recurso JDBC
– Implantar e testar a aplicação
![Page 26: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/26.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
26
Copiar o driver do banco (jar) no servidorCopiar o driver do banco (jar) no servidor Copie o driver do banco para a pasta
[GLASSFISH_HOME]/glassfish/domains/domain1/lib/ (domain default).
– Para isso, basta baixar o driver jdbc4, correspondente à sua versão do PostgreSQL, em http://jdbc.postgresql.org.
– Para o PostgreSQL 8.x use o arquivo postgresql-8.3-603.jdbc3.jar
Reinicie o servidor para que ele passe a reconhercer o driver.
![Page 27: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/27.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
27
Configurar o Pool de ConexõesConfigurar o Pool de ConexõesApós a reinicialização, vá ao console de administração (normalmente porta 4848 - ex.: http://localhost:4848/) e selecione a opção Recursos > JDBC > Grupo de conexões JDBC (Connection Pools), no menu à esquerda. Clique em “Novo”.
![Page 28: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/28.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
28
Configurar o Pool de Conexões (2)Configurar o Pool de Conexões (2)
Defina o nome que achar melhor para o pool de conexões (ex.: pgPool). Selecione a opção javax.sql.ConnectionPoolDataSource na combo 'Tipo de Recurso' e selecione PostgreSQL em 'Fornecedor do driver...' (Database Vendor). Clique no botão 'Avançar'.
![Page 29: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/29.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
29
Agora, vamos configurar os demais parâmetros. Selecione o nome da classe do 'Datasource' org.portgresql.ds.PGConnectionPoolDataSource, na combo. Em seguida, vá ao final da página e informe os seguintes dados:
DatabaseName=[nome-do-banco], Password=[senha-do-banco], PortNumber=5432 (porta default), ServerName=[nome-do-servidor ou ip], User=[usuario-do-banco].
Clique em 'Concluir' para salvar o pool.
Configurar o Pool de Conexões (3)Configurar o Pool de Conexões (3)
![Page 30: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/30.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
30
Testando a conexãoTestando a conexãoAgora que o pool de conexões foi criado, é hora testá-lo. Para isso, selecione o pool recém criado e clique em 'Ping'. A mensagem "Ping executado com êxito", indica que tudo está funcionando corretamente.
![Page 31: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/31.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
31
Criar o Recurso JDBCCriar o Recurso JDBCCom o pool criado e testado, falta apenas permitir que suas aplicações o utilizem. Para isso, crie um nome JNDI para o acesso ao JDBC do banco.- Vá ao menu Recursos > JDBC > Recursos do JDBC, clique em Novo.
![Page 32: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/32.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
32
Criar o Recurso JDBC (2)Criar o Recurso JDBC (2)Agora, especifique o nome do recurso no formato jdbc/[nome-do-banco].Selecione o pool de conexões criado nos passos anteriores e clique em 'OK', para finalizar.
- No exemplo, o nome dado é “jndi/aulas”.Este nome deverá ser utilizado nas aplicações, para permitir a
comunicação com o banco de dados através do pool de conexões.
![Page 33: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/33.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
33
Visão do recurso JDBC no NetbeansVisão do recurso JDBC no Netbeans
![Page 34: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/34.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
34
Configurando uma fonte de dados JDBC e o pool
de conexão Usando o Netbeans
![Page 35: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/35.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
35
Introdução – Definindo a conexão JDBCIntrodução – Definindo a conexão JDBC Além do administrador do Glassfish, é possível criar o recurso
JDBC de acesso ao banco de dados usando o Netbeans para esse trabalho.
Antes de iniciar o processo, crie uma conexão com o banco de dados.
– Entre em Serviços – Banco de Dados e acrescente a conexão com o banco.
![Page 36: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/36.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
36
Etapa 1Etapa 1 Inicie o processo com a opção Arquivo > Novo Arquivo, na
categoria Glassfish. Em seguida, Recurso JDBC e clique em Próximo
![Page 37: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/37.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
37
Etapa 2Etapa 2 Na Etapa 2, Atributos gerais, escolha a opção Criar novo pool
de conexão JDBC e, em seguida, no campo de texto Nome JNDI, digite o nome do data source no formato jdbc/nomeDatasource.
– No exemplo: jdbc/meuDatasource
![Page 38: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/38.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
38
Adicionando as propriedades de conexãoAdicionando as propriedades de conexão
Na etapa 3, Propriedades adicionais, você pode adicionar propriedades, porém podemos configurar nas etapas seguintes essas propriedades.
![Page 39: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/39.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
39
Escolhendo a conexãoEscolhendo a conexão Na Etapa 4, informe o Nome do pool de conexão JDBC.
Certifique-se de que a opção Extrair da conexão existente esteja selecionada e escolha jdbc:postgres... na lista suspensa.
![Page 40: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/40.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
40
Etapa 5 – Adicionando propriedadesEtapa 5 – Adicionando propriedades Adicione propriedades como o nome do banco... Em seguida clique em
Finalizar.
![Page 41: u06-Desenvolvimento de Software Multicamadas (Metodologia)](https://reader034.vdocuments.net/reader034/viewer/2022050805/557202014979599169a2c862/html5/thumbnails/41.jpg)
Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins
41
ExercícioExercício
Teste a conexão no Netbeans e no Glassfish.