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

Click here to load reader

  • date post

    22-Apr-2015
  • Category

    Documents

  • view

    111
  • download

    2

Embed Size (px)

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

  • Slide 1
  • Introduo J2EE Conceitos da arquitetura Ricardo Cavalcanti [email protected] Jobson Ronan [email protected]
  • Slide 2
  • 2 Viso geral EJB um padro baseado em componentes server-side que simplifica o processo de construir aplicaes distribudas em Java. Suporta portabilidade e reusabilidade num middleware de qualquer fabricante.
  • Slide 3
  • 3 Motivao Vamos construir um grande sistema, com o que precisamos nos preocupar? Balanceamento de carga Transaes Tolerncia a falhas Gerenciamento de sistemas Message-driven middleware ...
  • Slide 4
  • 4 Arquitetura baseada em componentes Utilizar os servios de cada componente, independentemente. No preciso implementar controle de transaes, compro o componente que faz isso. Problema: padres precisam ser seguidos
  • Slide 5
  • 5 Sistemas de objetos distribudos 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
  • Slide 6
  • 6 Middleware explcito necessrio implementar cada utilizao em cada mtodo Cliente Stub Objeto Remoto Skeleton Rede Transaction Service Security Service Database Service public void transferir(Conta origem, Conta destino, double valor){ //Chama a API para verificar segurana //Chama a API para iniciar a transao //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 transao }
  • Slide 7
  • 7 Middleware implcito Apenas a lgica de negcio Os servios so declarados em um outro arquivo Uma ferramenta vai gerar seu interceptador baseado no seu arquivo descritor Cliente Stub Interceptador de requisies Skeleton Rede Transaction Service Security Service Database Service public void transferir(Conta origem, Conta destino, double valor){ //Subtrair o valor da conta origem e somar no destino } Objeto Remoto
  • Slide 8
  • 8 Introduzindo os EJBs Padro baseado em componentes Define os contratos entre componentes e servidores de aplicaes Qualquer enterprise bean pode ser importado e carregado em qualquer servidor
  • Slide 9
  • 9 Conseqncias Padro entre a indstria Portabilidade Desenvolvimento rpido
  • Slide 10
  • 10 EJB x JavaBeans Conceitos distintos, ambos parte de uma arquitetura de componentes EJB so componentes compostos de classes, interfaces e documentos XML de configurao, para implantar automaticamente num servidor Javabeans so classes com construtor sem argumentos e mtodos getX () e setX().
  • Slide 11
  • 11 Java 2 Enterprise Edition Uma especificao para servidores de aplicao 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 servios multicamada
  • Slide 12
  • 12 Servidores de Aplicao Responsveis pela infra-estrutura Oferecem: Suporte arquitetura de componentes EJB Suporte a servios Web, servlets e JSP Suporte a servios de middleware explcito e implcito Utilizaremos o JBoss-AS
  • Slide 13
  • 13 Conteiners J2EE Um container a interface entre o componente e as funes de baixo nvel da plataforma onde roda Prov um ambiente para um enterprise bean rodar. Gerenciam os EJBs chamando mtodos obrigatrios de gerenciamento uma entidade abstrata, ningum invoca explicitamente o container
  • Slide 14
  • 14 Servios Configurveis Segurana Transaes Nomes (JNDI lookup) Conectividade remota No configurveis Persistncia Ciclo de vida de beans
  • Slide 15
  • 15 Segurana Autenticao e Autorizao API JAAS - Java Authentication and Authorization Service Autenticao depende da implementao do servidor Controle de acesso definido declarativamente
  • Slide 16
  • 16 Transaes Gerenciadas pelo container ou pelo bean Suporte a transaes distribudas Vrios servidores e vrios bancos de dados
  • Slide 17
  • 17 Nomes Atravs da API JNDI Associar um nome a recursos computacionais como endereos de memria, de rede, de servios objetos e referncias
  • Slide 18
  • 18 Conectividade remota O modelo de conectividade permite ao cliente invocar mtodos como se estivesse na mesma mquina virtual do servidor
  • Slide 19
  • 19 Persistncia Mesmo no configurvel, permite sobrescrever o gerenciamento pelo container (CMP) para obter mais controle Sincronizao de dados, pesquisa e remoo
  • Slide 20
  • 20 Arquitetura em camadas Browser Cliente de Web service Aplicativo Java Aplicaes CORBA Pginas HTML e applets Servidor J2EE Camada WEB Camada de Negcios Camada de Dados
  • Slide 21
  • 21 Componentes na camada de negcio Podem ser EJbs! Formam o ncleo de uma aplicao distribuda Processam as requisies do cliente Processam os dados provenientes da camada de dados EJBs so objetos CORBA EJbs so sempre escritos em java
  • Slide 22
  • 22 Tipos de EJB Session Beans Modelam processos de negcio. Podem manter ou no estado no-persistente Debitar, creditar... Entity Beans Modelam dados de negcio. Representam informaes em bancos de dados Mantm estado persistente Uma conta, um cliente Message-driven beans Modelam processos assncronos. Respondem a eventos. Agem somente quando recebem uma mensagem No mantm estado
  • Slide 23
  • 23 Exemplo clssico BD Entity bean Message-driven bean Session Bean Cliente JMS MOM Cliente CORBA Cliente HTML Cliente WebService Servlet JSP Taglib Cliente Swing
  • Slide 24
  • Papis Quem faz o que em J2EE
  • Slide 25
  • 25 Papis Provedor de componentes (bean provider) Desenvolvedor que cria os componentes J2EE Provedor de ferramentas (tool provider) Oferecem ferramentas para facilitar a montagem e manuteno das aplicaes J2EE Ferramentas de modelagem de dados, ferramentas de montagem de componentes, etc. Montador de aplicaes (application assembler) Arquiteto de aplicaes que monta aplicaes usando componentes desenvolvidos pelo provedor de componentes com as ferramentas do provedor de ferramentas Escreve cdigo de integrao entre componentes, lgica de relacionamentos, etc.
  • Slide 26
  • 26 Papis Provedor dos containers (container/server provider) Fabricantes que oferecem containers EJB e Web Garantem o ambiente de execuo onde vivem os beans e os servios de middleware que eles tm acesso JBoss, WebLogic, WebSphere, Tomcat (Web), IPlanet, etc. Implantador de aplicaes (deployer) Instala e coloca para funcionar a aplicao no software fornecido pelo provedor de containers Garante a integrao com sistemas e servios, escolhe o hardware, ajusta a segurana, performance, acesso a servios e recursos externos Administrador do sistema (system administrator) Garante a estabilidade da soluo operacional
  • Slide 27
  • 27 Por que a diviso em papis? Poder de especializao Pode combinar alguns papis Tool ProviderBean ProviderContainer ProviderApplication Assembler DeployerSystem Administrator Fornece Ferramentas Constri EJBs Monta a aplicao Fornece Servidor Implanta o sistema