You are on page 1of 41

UNAMA Universidade da Amaznia PR-REITORIA DE PESQUISA, PS-GRADUAO E EXTENSO PS-GRADUAO LATO SENSU Curso de Especializao em Desenvolvimento de Sistemas Baseado

o em Software Livre

UNID 6

- Desenvolvimento de Software Multicamadas


Prof. Cludio Martins claudiomartins2000@gmail.com

Desenvolvimento de Aplicaes Multicamadas

Assuntos
Especificao e modelagem de sistemas multicamadas Arquitetura em camadas (MVC e variantes) Papis (roles) e Responsabilidades Servidor de Aplicao Configurao do Servidor de Aplicao

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Especificao e modelagem de sistemas multicamadas

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Paradigma de desenvolvimento baseado em componentes


Ao longo da disciplina percebemos que o

desenvolvimento de sistemas/aplicaes em uma arquitetura multicamadas traz muitos benefcios para quem desenvolve software, em especial a possibilidade de criar software com qualidade e enfatizando a reutilizao de componentes.
A separao da aplicao em camadas permite

que os desenvolvedores sejam alocados em tarefas especifcas (dos seus componentes) e a construo do software seja modular.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

No caso das aplicaes JEE, podemos construir toda a

soluo a partir de componentes de aplicao prdefinidos. aplicao que se vai trabalhar so os seguintes, considerando as duas principais camadas:

Se a soluo totalmente em Java, os componentes de

Camada cliente

Camada Servidora

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Componentes de uma soluo JEE

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Contineres presentes na soluo JEE


Servidor JEE

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Uma metodologia para desenvolvimento


Para o desenvolvimento de uma aplicao distribuda, o

sistema deve ser modelado no paradigma orientada a objetos. o software multicamadas:

Os passos que se deve executar para construir (desenvolver)


Especificao da aplicao Projeto e arquitetura detalhada Implementao da camada do servidor (regras de negcio) Implementao da camada cliente (pode haver mais de um

cliente)
Testes Configurao e implantao do servidor JEE

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Arquitetura em camadas (MVC e variantes)

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

Padro MVC
Como vimos anteriormente, o padro MVC o

mais indicado para o desenho da soluo da camada cliente (incluindo a camada web).
MVC um padro que defende a separao do

software em trs partes bem definidas:


A Viso O Controlador da aplicao E o Modelo

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

10

Soluo MVC

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

11

Como funciona o MVC?


1 O usurio dispara um evento atravs da camada de visualizao (clica em um boto , p.ex); 2 O controlador recebe o evento e coordena a aplicao, determinando o fluxo de navegao e quais objetos sero necessrios para realizar a regra de negcio; 3 O modelo utilizado para representar o domnio das informaes da aplicao (dados). Alm disso, o modelo pode ser chamado pelo controlador para a realizar algumas regras de negcio. O modelo pode ainda ser usado para enviar os dados para a viso (uma pgina web, por exemplo); 4 Depois que o controlador realiza a regra de negcio, ele renderiza a nova viso e a envia para o usurio.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

12

MVC em Arquitetura Web (Java)


Na camada web, usando JAVA EE, podemos ver

isso da seguinte forma:


A VISO representada por pginas JSP e HTML O CONTROLADOR delegado a classes Servlets

(ou JSP sem tags html)

No MODELO pode ser utilizado objetos java beans

(com um tempo de vida determinado, request ou de sesso, por exemplo).


Em JSF esses objetos so chamados managed beans

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

13

MVC em Arquitetura Web


Browser envia a solicitao (request) Controlador interage com o modelo Controlador chama a viso Viso formata a resposta ao browser

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

14

Tipos de MVC
H alguns variaes do padro MVC quando se trabalha

na web. Por exemplo:

MVC 1
Foi a primeira gerao para implementar a arquitetura

MVC em pginas JSP. Onde requisies HTTP so enviadas para uma pgina JSP que implementa um controlador que envia as requisies para o modelo para que sejam retornadas para a camada de viso.

MVC 2
O MVC2 pode ser modelado com apenas um

controlador para toda a aplicao. Um caracterstica regra o uso de Servlet como controladores e pginas JSP apenas para visualizao.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

15

Papis e responsabilidades

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

16

Papis e responsabilidades
A especificao EJB define alguns papis para os envolvidos

no processo de desenvolvimento de aplicaes JEE. Estes papis variam baseados no tamanho da empresa ou projeto.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

17

Papis e responsabilidades

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

18

Servidor de Aplicao

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

19

Qual o ambiente e servidor JEE?


O papel do servidor hospedar a aplicao, que deve estar

empacotada em um arquivo do tipo ear.


A operao de implantao de uma aplicao chama-se deploy.

Antes, necessrio definir qual mquina, sistema operacional e

servidor (implementao JEE) dever ser utilizada.


O computador deve ser configurado para atender as demandas

mximas de estresse, carga de processamento, conexes simultneas, etc.

Quanto aos servidores h boas opes livres como Jboss, Glassfish,

e outros. A escolha um deciso que depender do expertise do suporte local para resolver problemas que sempre surgem.

O ambiente operacional uma opo muito relacionada ao tipo

de computador e ao suporte que ser dado ao servidor. Opes: Linux, Sun/Solaris, ou Windows Server?

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

20

Servios a configurar no Servidor


Aps a escolha do servidor e ambiente, necessrio

realizar os ajustes de configurao, uma vez que o servidor pode atender alguns perfis de aplicaes.

necessrio estabelecer alguns parmetros para

escolher a melhor configurao, pois as aplicaes podem necessitar de alguns servios no servidor, como:
JDBC, RMI, JavaMail, JMS, JMX, servlets, portlets, JSF,

web services e outros


Cada servio levantado no servidor acarreta alocao de

recursos do servidor e, consequentemente, do equipamento (memria, disco, processador, etc) onde est instalado o servidor.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

21

O GlassFish um produto da Oracle, com verso livre e open-source,

Como instalar e configurar um servidor GlassFish

porm existe uma verso proprietria chamada GlassFish Enterprise Server. http://glassfish.java.net/public/downloadsindex.html caractersticas:

Para instal-lo preciso fazer o download em

Atualmente est na verso 3.1.2 (aderente ao JEE 6), com as seguintes


Clusterizao, Administrao centralizada e na web, suporte a SSH

e DCOM, alta disponibilidade, suporte atualizao automtica, APIs embutidas e muito mais. Primefaces, Grizzly, Weld, Mojarra, Jersey, EclipseLink, OSGi, JavaDB, ).

Suporte nativo aos componentes de terceiros (RichFaces,

Suporta a nova verso do Java (JDK 7) e muito mais.


Leia mais em Como instalar e configurar um servidor GlassFish.pdf disponvel no disco virtual da disciplina.
Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

22

Configurao do Servidor de Aplicao

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

23

Por que necessrio configurar o servidor?


Apesar dos ambientes de desenvolvimento (IDEs,

como o Netbeans e Eclipse) facilitarem a implantao das aplicaes nos servidores JEE, quando chega o momento de implantar em servidores de produo, algumas configuraes so necessrias.
No Glassfish, por exemplo, se uma aplicao

utilizar JNDI com data sources e connection pool necessrio configurar no servidor antes de implantar (deploy) a aplicao empacotada (EAR).

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

24

Os passos para voc utilizar o servio de nomes

Passos para configura os servios de acesso ao banco de dados

com JNDI para acesso a um banco de dados:


Copiar o driver do banco (jar) no servidor Configurar o Pool de Conexes Testar o Pool de Conexes Criar o Recurso JDBC Implantar e testar a aplicao

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

25

Copiar 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 verso 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.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

26

Configurar o Pool de Conexes


Aps a reinicializao, v ao console de administrao (normalmente porta 4848 - ex.: http://localhost:4848/) e selecione a opo Recursos > JDBC > Grupo de conexes JDBC (Connection Pools), no menu esquerda. Clique em Novo.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

27

Configurar o Pool de Conexes (2)


Defina o nome que achar melhor para o pool de conexes (ex.: pgPool). Selecione a opo javax.sql.ConnectionPoolDataSource na combo 'Tipo de Recurso' e selecione PostgreSQL em 'Fornecedor do driver...' (Database Vendor). Clique no boto 'Avanar'.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

28

Configurar o Pool de Conexes (3)


Agora, vamos configurar os demais parmetros. Selecione o nome da classe do 'Datasource' org.portgresql.ds.PGConnectionPoolDataSource, na combo. Em seguida, v ao final da pgina 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.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

29

Testando a conexo
Agora que o pool de conexes foi criado, hora test-lo. Para isso, selecione o pool recm criado e clique em 'Ping'. A mensagem "Ping executado com xito", indica que tudo est funcionando corretamente.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

30

Criar o Recurso JDBC


Com o pool criado e testado, falta apenas permitir que suas aplicaes 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.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

31

Criar o Recurso JDBC (2)


Agora, especifique o nome do recurso no formato jdbc/[nome-do-banco]. Selecione o pool de conexes criado nos passos anteriores e clique em 'OK', para finalizar. - No exemplo, o nome dado jndi/aulas. Este nome dever ser utilizado nas aplicaes, para permitir a comunicao com o banco de dados atravs do pool de conexes.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

32

Viso do recurso JDBC no Netbeans

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

33

Configurando uma fonte de dados JDBC e o pool de conexo Usando o Netbeans

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

34

Introduo Definindo a conexo JDBC


Alm do administrador do Glassfish, possvel criar o recurso

JDBC de acesso ao banco de dados usando o Netbeans para esse trabalho. dados.

Antes de iniciar o processo, crie uma conexo com o banco de


Entre em Servios Banco de Dados e acrescente a conexo

com o banco.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

35

Etapa 1
Inicie o processo com a opo Arquivo > Novo Arquivo, na

categoria Glassfish. Em seguida, Recurso JDBC e clique em Prximo

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

36

Na Etapa 2, Atributos gerais, escolha a opo Criar novo pool

Etapa 2

de conexo JDBC e, em seguida, no campo de texto Nome JNDI, digite o nome do data source no formato jdbc/nomeDatasource.
No exemplo: jdbc/meuDatasource

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

37

Adicionando as propriedades de conexo


Na etapa 3, Propriedades adicionais, voc pode

adicionar propriedades, porm podemos configurar nas etapas seguintes essas propriedades.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

38

Escolhendo a conexo
Na Etapa 4, informe o Nome do pool de conexo JDBC.

Certifique-se de que a opo Extrair da conexo existente esteja selecionada e escolha jdbc:postgres... na lista suspensa.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

39

Etapa 5 Adicionando propriedades


Adicione propriedades como o nome do banco... Em seguida clique em

Finalizar.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

40

Exerccio
Teste a conexo no Netbeans e no Glassfish.

Desenvolvimento de Aplicaes Multicamadas Prof. Cludio Martins

41

You might also like