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

Post on 22-Apr-2015

111 views 2 download

Transcript of Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti roc3@cin.ufpe.br Jobson Ronan...

Introdução à J2EE

Conceitos da arquitetura

Ricardo Cavalcantiroc3@cin.ufpe.br

Jobson Ronanjrjs@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.

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

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

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

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

}

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

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

9

Conseqüências

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

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().

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

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

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

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

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

16

Transações

Gerenciadas pelo container ou pelo bean

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

dados

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

18

Conectividade remota

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

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

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

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

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

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

Papéis

Quem faz o que em J2EE

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.

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

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