Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011 Introdução Conceitos Servidores de aplicação Arquitetura de componentes Plataforma JEE: arquitetura, APIs, serviços Componentes JEE Conceitos Enterprise – identifica as tecnologias Java utilizadas em sistemas distribuídos. JEE – especificação Java para sistemas distribuídos. Justificativa para se usar Independência de fornecedor. Preservação do investimento. Estado-da-arte em tecnologia. Suporte ao legado. Aderência a padrões reais. Baixo custo de propriedade e de acesso. Visão geral Especificação para servidores de aplicação que define um padrão de suporte a componentes e serviços. Tem como objetivo reduzir custos e complexidade de sistemas multi-camadas. Um servidor JEE fornece suporte a: Arquitetura de componentes EJB. Web Services. Servlets e JSP. Especificação A especificação JEE é o agrupamento de várias especificações diferentes, que atendem às mais diversas finalidades. Componentes JEE JDBC (acesso a bancos relacionais). JCA (conectividade com sistemas legados). JNDI (serviço de diretórios). JTA (transações distribuídas). JTS (componentes transacionais). JMS (serviço de mensagens, operações assíncronas). JavaMail (serviço de e-mail). Servlets (web). EJB (componentes distribuídos e persistentes). JAXP (processamento de XML e web services). JMX (gerenciamento de servidores). Arquitetura de componentes Simula um contrato entre duas partes. Seus componentes funcionam em qualquer servidor JEE. Permite que os clientes substituam componentes existentes por outros similares. Um novo componente pode ser plugado no servidor e passa a funcionar imediatamente. Componentes de terceiros Exemplos de Componentes (CIT, jcompany, java-source.net). Veja alguns exemplos de componentes e suas funcionalidades, o que poderia agregar em sua organização. Componentes WEB Servlets Classes pré-compiladas que processam requisições HTTP e devolvem respostas HTTP. JSP Páginas de texto contendo código Java embutido. EJB – Enterprise Java Beans Núcleo de uma aplicação distribuída. Recebem e processam dados de clientes e enviam à camada de dados ou o caminho inverso. Camadas Tipos de EJB Session Beans: Modelam regras de negócio. São ações como validar, comprar, processar. Entity Beans: Dados do negócio. Representam informações persistidas em banco de dados. Message-driven Beans: Processos assíncronos. Respondem a eventos. Application Server Informalmente chamado de AppServer. Software que implementa a especificação JEE. A especificação JEE não é um produto, mas um conjunto de regras (uma especificação!) que devem ser seguidas para garantir todos os benefícios. Vários fabricantes (Sun, IBM, Bea, JBoss, Apache). Vantagens Uma parte significativa do trabalho de desenvolvimento fica encapsulada em um AppServer. Persistência, controle de transações, pool de objetos, otimização de performance são alguns dos itens que já estão prontos em qualquer AppServer. JBoss Open Source. Líder de mercado. Suporta cluster e outros recursos sofisticados. Site: jboss.org (agora é um produto RedHat). Arquitetura do servidor Dúvidas?