A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Conceitos da arquitetura

Apresentações semelhantes


Apresentação em tema: "Conceitos da arquitetura"— Transcrição da apresentação:

1 Conceitos da arquitetura
Introdução à J2EE Conceitos da arquitetura Ricardo Cavalcanti Jobson Ronan

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. Utilizando EJB eu posso escrever aplicações seguras, confiáveis e escaláveis rapidamente, utilizando uma infra-estrutura previamente implementada pela indústria.

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 ... Cada um dessas preocupações podem ser denominadas serviços. Cada um desses serviços precisam de muito projeto e muito trabalho para que funcionem perfeitamente e eles são necessários em todo tipo de solução corporativa. Juntos, estes serviços formam um 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 Objeto Remoto Interface Remota Stub Skeleton Rede

6 Middleware explícito Transaction Service É necessário implementar cada utilização em cada método Cliente Security Service Objeto Remoto Database Service Stub Skeleton Rede 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 Interceptador de requisições
Middleware implícito Objeto Remoto Cliente 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 Transaction Service Interceptador de requisições Security Service Database Service Stub Skeleton Rede public void transferir(Conta origem, Conta destino, double valor){ //Subtrair o valor da conta origem e somar no destino }

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 Padrão entre a industria: os benefícios provenientes dos avanços nos componentes e servidores são para todos. Além disso, o profissional só precisa se concentrar nas necessidades de negócio. Contratar alguém e fazê-lo entender seu software será mais simples. Portabilidade: não é necessário se fixar num único fornecedor. Se um componente não lhe satisfaz mais, troque de fornecedor! Desenvolvimento rápido: a infra-estrutura de middleware favorece a rapidez no desenvolvimento.

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 Não 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 Autenticação: verifica a identidade da entidade (cliente ou outro bean) Autorização: verifica se a entidade autenticada pode ter acesso

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 Páginas HTML e applets Aplicações CORBA Aplicativo Java Cliente de Web service Servidor J2EE Camada WEB Observe que cada bloco representa um componente, e, como tais, devem ter interfaces bem definidas. 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 Entity Beans Message-driven 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 Cliente HTML Servlet Cliente JMS Cliente WebService
JSP Cliente CORBA Cliente Swing MOM Taglib Message-driven bean Session Bean Session Bean Entity bean Entity bean Entity bean Entity bean BD

24 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 Bean Provider Application Assembler Constrói EJBs Monta a aplicação System Administrator Deployer Implanta o sistema Fornece Ferramentas Tool Provider Container Provider Fornece Servidor


Carregar ppt "Conceitos da arquitetura"

Apresentações semelhantes


Anúncios Google