u06-desenvolvimento de software multicamadas (metodologia)

41
UNID 6 - Desenvolvimento de Software Multicamadas UNID 6 - Desenvolvimento de Software Multicamadas UNAMA – Universidade da Amazônia PRÓ-REITORIA DE PESQUISA, PÓS-GRADUAÇÃO E EXTENSÃO PÓS-GRADUAÇÃO LATO SENSU Curso de Especialização em Desenvolvimento de Sistemas Baseado em Software Livre Desenvolvimento de Aplicações Multicamadas Prof. Cláudio Martins [email protected]

Upload: claudio-martins

Post on 24-Jul-2015

168 views

Category:

Documents


0 download

DESCRIPTION

Uploaded from Google Docs

TRANSCRIPT

Page 1: u06-Desenvolvimento de Software Multicamadas (Metodologia)

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)

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)

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

3

Especificação e modelagem de sistemas multicamadas

Page 4: u06-Desenvolvimento de Software Multicamadas (Metodologia)

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)

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)

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)

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)

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)

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

9

Arquitetura em camadas (MVC e variantes)

Page 10: u06-Desenvolvimento de Software Multicamadas (Metodologia)

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)

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

11

Solução MVCSolução MVC

Page 12: u06-Desenvolvimento de Software Multicamadas (Metodologia)

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)

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)

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)

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)

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

16

Papéis e responsabilidades

Page 17: u06-Desenvolvimento de Software Multicamadas (Metodologia)

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)

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

18

Papéis e responsabilidadesPapéis e responsabilidades

Page 19: u06-Desenvolvimento de Software Multicamadas (Metodologia)

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

19

Servidor de Aplicação

Page 20: u06-Desenvolvimento de Software Multicamadas (Metodologia)

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)

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)

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)

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

23

Configuração do Servidor de Aplicação

Page 24: u06-Desenvolvimento de Software Multicamadas (Metodologia)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

Desenvolvimento de Aplicações MulticamadasProf. Cláudio Martins

41

ExercícioExercício

Teste a conexão no Netbeans e no Glassfish.