Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti [email protected] Jobson Ronan...

27
Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti [email protected] Jobson Ronan [email protected]

Transcript of Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti [email protected] Jobson Ronan...

Page 1: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

Introdução à J2EE

Conceitos da arquitetura

Ricardo [email protected]

Jobson [email protected]

Page 2: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

2

Visão geral

EJB é um padrão baseado em componentes server-side que simplifica o processo de construir aplicações distribuídas em Java.

Suporta portabilidade e reusabilidade num middleware de qualquer fabricante.

Page 3: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

3

Motivação

Vamos construir um grande sistema, com o que precisamos nos preocupar? Balanceamento de carga Transações Tolerância a falhas Gerenciamento de sistemas Message-driven middleware ...

Page 4: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

4

Arquitetura baseada em componentes

Utilizar os serviços de cada componente, independentemente. Não preciso implementar controle de

transações, compro o componente que faz isso.

Problema: padrões precisam ser seguidos

Page 5: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

5

Sistemas de objetos distribuídos

O Stub representa o objeto remoto para o cliente

O skeleton representa o cliente para o objeto remoto

Cliente

Stub

Objeto Remoto

Skeleton

Rede

Interface Remota

Page 6: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

6

Middleware explícito

É necessário implementar cada utilização em cada método

Cliente

Stub

ObjetoRemoto

Skeleton

Rede

Transaction Service

SecurityService

DatabaseService

public void transferir(Conta origem, Conta destino, double valor){ //Chama a API para verificar segurança //Chama a API para iniciar a transação

//Chama a API para carregar dados do banco//Subtrair o valor da conta origem e somar no destino//Chama a API para guardar dados no banco//Chama a API para fechar a transação

}

Page 7: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

7

Middleware implícito

Apenas a lógica de negócio

Os serviços são declarados em um outro arquivo

Uma ferramenta vai gerar seu interceptador baseado no seu arquivo descritor

Cliente

Stub

Interceptador de requisições

Skeleton

Rede

Transaction Service

SecurityService

DatabaseService

public void transferir(Conta origem, Conta destino, double valor){//Subtrair o valor da conta origem e somar no destino

}

ObjetoRemoto

Page 8: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

8

Introduzindo os EJBs

Padrão baseado em componentes Define os contratos entre

componentes e servidores de aplicações Qualquer enterprise bean pode ser

importado e carregado em qualquer servidor

Page 9: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

9

Conseqüências

Padrão entre a indústria Portabilidade Desenvolvimento rápido

Page 10: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

10

EJB x JavaBeans

Conceitos distintos, ambos parte de uma arquitetura de componentes

EJB são componentes compostos de classes, interfaces e documentos XML de configuração, para implantar automaticamente num servidor

Javabeans são classes com construtor sem argumentos e métodos getX () e setX().

Page 11: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

11

Java 2 Enterprise Edition

Uma especificação para servidores de aplicação e componentes

Um conjunto de interfaces, para os servidores e seus componentes poderem conversarem

Seu objetivo é reduzir o custo e a complexidade do desenvolvimento de serviços multicamada

Page 12: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

12

Servidores de Aplicação

Responsáveis pela infra-estrutura Oferecem:

Suporte à arquitetura de componentes EJB

Suporte a serviços Web, servlets e JSP Suporte a serviços de middleware

explícito e implícito Utilizaremos o JBoss-AS

Page 13: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

13

Conteiners J2EE

Um container é a interface entre o componente e as funções de baixo nível da plataforma onde roda

Provê um ambiente para um enterprise bean rodar.

Gerenciam os EJBs chamando métodos obrigatórios de gerenciamento

É uma entidade abstrata, ninguém invoca explicitamente o container

Page 14: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

14

Serviços

Configuráveis Segurança Transações Nomes (JNDI lookup) Conectividade remota

Não configuráveis Persistência Ciclo de vida de beans

Page 15: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

15

Segurança

Autenticação e Autorização API JAAS - Java Authentication and

Authorization Service Autenticação depende da

implementação do servidor Controle de acesso é definido

declarativamente

Page 16: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

16

Transações

Gerenciadas pelo container ou pelo bean

Suporte a transações distribuídas Vários servidores e vários bancos de

dados

Page 17: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

17

Nomes

Através da API JNDI Associar um nome a recursos

computacionais como endereços de memória, de rede, de

serviços objetos e referências

Page 18: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

18

Conectividade remota

O modelo de conectividade permite ao cliente invocar métodos como se estivesse na mesma máquina virtual do servidor

Page 19: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

19

Persistência

Mesmo não configurável, permite sobrescrever o gerenciamento pelo container (CMP) para obter mais controle

Sincronização de dados, pesquisa e remoção

Page 20: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

20

Arquitetura em camadas Browser

Cliente de Web service

Aplicativo Java

Aplicações CORBA

Páginas HTML e applets

Servidor J2EE Camada WEB

Camada de Negócios

Camada de Dados

Page 21: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

21

Componentes na camada de negócio

Podem ser EJbs! Formam o núcleo de uma aplicação

distribuída Processam as requisições do cliente Processam os dados provenientes da

camada de dados EJBs são objetos CORBA EJbs são sempre escritos em java

Page 22: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

22

Tipos de EJB

Session Beans Modelam processos de negócio. Podem manter ou não estado não-persistente Debitar, creditar...

Entity Beans Modelam dados de negócio. Representam informações em bancos de dados Mantêm estado persistente Uma conta, um cliente

Message-driven beans Modelam processos assíncronos. Respondem a eventos. Agem somente quando recebem uma mensagem Não mantêm estado

Page 23: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

23

Exemplo clássico

BD

Entity bean Entity bean Entity beanEntity bean

Message-driven bean

Session BeanSession Bean

Cliente JMS

MOMCliente CORBA

Cliente HTML

Cliente WebService

Servlet

JSP

TaglibCliente Swing

Page 24: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

Papéis

Quem faz o que em J2EE

Page 25: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

25

Papéis

Provedor de componentes (bean provider) Desenvolvedor que cria os componentes J2EE

Provedor de ferramentas (tool provider) Oferecem ferramentas para facilitar a montagem e

manutenção das aplicações J2EE Ferramentas de modelagem de dados, ferramentas de

montagem de componentes, etc. Montador de aplicações (application assembler)

Arquiteto de aplicações que monta aplicações usando componentes desenvolvidos pelo provedor de componentes com as ferramentas do provedor de ferramentas

Escreve código de integração entre componentes, lógica de relacionamentos, etc.

Page 26: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

26

Papéis

Provedor dos containers (container/server provider)

Fabricantes que oferecem containers EJB e Web Garantem o ambiente de execução onde vivem os beans

e os serviços de middleware que eles têm acesso JBoss, WebLogic, WebSphere, Tomcat (Web), IPlanet,

etc. Implantador de aplicações (deployer)

Instala e coloca para funcionar a aplicação no software fornecido pelo provedor de containers

Garante a integração com sistemas e serviços, escolhe o hardware, ajusta a segurança, performance, acesso a serviços e recursos externos

Administrador do sistema (system administrator) Garante a estabilidade da solução operacional

Page 27: Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan jrjs@cin.ufpe.br.

27

Por que a divisão em papéis?

Poder de especialização Pode combinar alguns papéis

Tool Provider

Bean Provider

Container Provider

Application Assembler

Deployer System Administrator

Forn

ece Fe

rramenta

s

Constrói EJBsMonta a aplicação

Fornece Servidor

Implanta o sistema