Java 2 Enterprise Edition

Propaganda
Java 2 Enterprise
Edition
Pablo Vieira Florentino
8/11/2006
Contexto – Linguagem Java
l
A linguagem Java é Orientada a Objetos
l
Influenciada diretamente por C++ e Eiffel, a
linguagem segue a grande tendência das
linguagens de programação nas décadas de 80 e
90. Neste período, linguagens como Pascal, Ada,
Lisp e Cobol ganharam versões Orientadas a
Objetos.
1
Contexto – Linguagem Java
l
A linguagem é totalmente portável
Contexto – Linguagem Java
l
A linguagem implementa desalocação
automática de memória (“garbage collector”),
e não permite a desalocação manual.
l
l
l
l
Produtividade do programador
Testes
Bugs
Qualidade
2
Contexto – Linguagem Java
l
l
l
Java é uma das linguagens mais bem projetadas
desde Ada.
Java não apresenta performance comparável a
Fortran ou C.
As decisões de projeto da linguagem são ótimas
para rodar em um servidor Web.
l
l
l
Portabilidade entre diferentes sistemas operacionais.
Facilidades de multithreading incluídas na linguagem.
Baixo custo de desenvolvimento (alta produtividade).
Aplicações Web
l
Aplicações tipicamente cliente-servidor
3
Aplicações Web com Java
l
l
l
l
Applets
Servlets
JSP – Java Server Pages
Mas o que fazer com sistemas de informação
corporativos que:
l
l
l
possuem grande complexidade
exigem escalabilidade e robustez
necessitam de comunicação com objetos externos ?
J2EE
l
A Especificação Java 2 Enterprise Edition (J2EE ) fornece uma
abordagem baseada em componentes para o projeto,
desenvolvimento e a implantação de aplicações corporativas.
l
Partes Componentes
J2EE Application Programming Model
l Modelo de Programação
l J2EE Platform
l Define um conjunto de APIs e políticas de utilização
l J2EE Compatibility Test Suite
l Verifica se um produto é compatível com a plataforma J2EE
l J2EE Reference Implementation
l Demonstração das funcionalidades da especificação J2EE
l Provê definição operacional da Plataforma
Soluções J2EE são independentes de plataformas HW / SO e não são
amarradas a produtos/APIs específicas de quaisquer fabricantes.
l
l
4
Resumindo:
l
l
Estende a linguagem Java através de padrões
simples e unificados para aplicações distribuídas
através de um modelo baseado em
componentes.
J2EE especifica tanto a infra-estrutura para
gerenciar suas aplicações quanto APIs para
construí-las.
Padronização
l
l
Java Community Process. www.jcp.org
Participantes: Accenture, Adobe, BEA, Borland,
British Telecom, Bull, Cisco, Compaq, DOD, EDS,
Ericsson, Fujitsu, HP, Hitachi, IBM,Macromedia,
Mitsubishi, Motorola, NEC, Nokia,Novell, NTT,
Oracle, Panasonic, Philips, Rational,SAP, Sharp,
Siemens, Sony, Sun, Sybase,Telefonica, Texas
Instruments, Unisys, Verisign,Vignette, Vodafone,
Xerox, Yamaha,...
5
Arquitetura MVC
l
Padrão Arquitetural da plataforma J2EE
l
Model
l
l
View
l
l
Dados de negócio
Apresentação para o cliente
Controller
l
Lógica de controle
APM J2EE e Modelos em N
Camadas
l
Divide a implementação em duas partes
l
Lógica de apresentação e do negócio:
l
l
Serviços de infra-estrutura
l
l
Implementação sob responsabilidade do desenv.
Fornecidos pela plataforma J2EE
Os problemas associados a serviços de infraestrutura básica são fornecidos pela plataforma:
l
Reduz complexidade de desenvolvimento
6
APM J2EE - Componentes
l
l
Componentes J2EE são escritos em Java e
compilados da mesma forma que qualquer
programa Java
Diferença entre componentes J2EE e uma classe
Java “padrão“:
l
l
componentes são montados em uma aplicação J2EE,
verifica-se se os mesmos são bem-formados e estão de
acordo com a especificação J2EE
são entregues para a produção, onde são executados e
gerenciados pelo servidor J2EE
APM J2EE - Componentes
l
Aplicações J2EE são formadas por componentes
l
l
Um componente J2EE é uma unidade de software funcional, autocontida que é montada em uma aplicação J2EE juntamente com suas
classes e arquivos relacionados e que se comunica com outros
componentes
A especificação J2EE define os seguintes componentes J2EE:
l Aplicações e applets clientes são componentes que rodam
no cliente
l Servlets Java e páginas JSP são componentes Web que
rodam no servidor
l Enterprise JavaBeans (EJB ) são componentes de negócio
que rodam no servidor
7
APM J2EE - Componentes
Camadas de Aplicação J2EE
8
Plataforma J2EE
l
l
l
É um ambiente padrão para rodar aplicações J2EE
l um modelo de aplicação distribuído, multicamadas
l a capacidade de reutilizar componentes
l a troca de dados integrada baseada em XML
l um modelo de segurança unificado
l controle de transações flexível
Componentes:
l J2EE deployment specification
Padrão de empacotamento de aplicações para implantação.
l Java technology standards for the J2EE platform
Plataforma J2EE
l
Conjunto de padrões que devem ser suportados pelas
plataformas:
l Serviços de Infra: JMS , JNDI, JTS, etc)
l
l
l
IETF standards for the J2EE platform
Conjunto de Padrões Internet que todas as plataformas devem
suportar (Internet Engineering Task Force) ex. XML, HTTP,
HTML
l CORBA standards for the J2EE platform
Interoperabilidade com modelo CORBA
9
Empacotamento da Aplicações
J2EE
l
l
l
Componentes J2EE são empacotados
separadamente e colocados em uma aplicação
J2EE para implantação
Cada componente, seus arquivos relacionados,
como GIFs e HTMLs ou classes utilitárias que
rodem no servidor, bem como um descritor de
implantação, são montados em um módulo e
adicionados à aplicação J2EE
Uma aplicação J2EE é composta de um ou mais
enterprise bean e módulos clientes (componente
Web ou aplicação)
Empacotamento de Aplicações
J2EE
l
l
l
Um aplicação J2EE e cada um de seus módulos tem seu
próprio descritor de implantação
Um descritor de implantação é um documento XML que
descreve as configurações de implantação de seu componente
Usar XML permite ao “implantador” alterar facilmente atributos
de seu EJB. Atributos configuráveis incluem:
l
l
l
l
l
nomes das interfaces Home e Remota necessárias para o EJB
nome a ser publicado na JNDI para a interface Home do EJB
Atributos transacionais para cada método do EJB
Listas de controle de acesso para autenticação
As informações do descritor de implantação são declarativas e
podem ser alteradas sem modificar o código fonte do bean
10
Empacotamento de Aplicações
J2EE
l
l
l
l
Em tempo de execução, o servidor J2EE lê o
descritor de implantação e atua sobre o
componente de acordo com as informações lidas.
EJB-Jar file – arquivo jar que contém o EJB, as
interfaces e o descritor de implantação
Uma aplicação J2EE com todos os seus módulos
é entregue em um arquivo Enterprise ARchive
(EAR)
Um arquivo EAR nada mais é que um arquivo
Java Archive (JAR) padrão com extensão .ear
Empacotamento de Aplicações
J2EE – Na prática
l
Módulos Web
l
l
Módulos EJB
l
l
Arquivo .jar contendo ejb-jar.xml no diretório METAINF
Módulos Java
l
l
Arquivo .war contendo web.xml no diretório WEB-INF
Arquivo .jar contendo application-client.xml
Um .ear que contém application.xml no diretório
META-INF
11
Empacotamento de Aplicações
J2EE – Na prática
Plataforma J2EE - APIs
l
l
l
l
l
l
l
l
l
l
l
EJB
JDBC
Servlets
JSP
Java Messaging Service (JMS)
Java Naming and Directory Interface (JNDI)
Java Transaction Service (JTS/JTA)
Java Mail (JavaBeans Activation Framework)
Java API for XML Processing:
l – JAXP (Processig); JAXR (Registries); JAX-RPC; SAAJ
J2EE Connector Architecture
Java Authentication and Authorization Service (JAAS)
12
Plataforma J2EE - APIs
l
JDBC
l
l
l
JNDI
l
l
API padrão para acesso a base de dados
heterogêneas.
JDBC 2.0: Tipos de dados SQL 3
Acesso a serviços de nome e diretório
independentemente de sua aplicação.
RMI - IIOP
l
l
Protocolo que permite invocar métodos remotos de
objetos escritos em Java.
Permite passar dados por valor, mediante serialização.
Plataforma J2EE - Serviços
l
Java Transaction API/Java Transaction Service
(JTA/JTS)
l
l
l
l
l
Usado na arquitetura J2EE como a API transacional
Um Enterprise Bean Provider pode usar o JTS para criar
código de transações, embora o container EJB
normalmente implemente transações para os componentes
EJB
É possível definir os atributos transacionais de um
componente EJB em tempo de implantação
O Container EJB é responsável pela manipulação da
transação, tanto local quanto distribuída
A especificação do JTS é o mapeamento Java para o OTS
CORBA (Object Transaction Service)
13
Plataforma J2EE - Serviços
l
Java Authentication and Authorization Service
(JAAS)
l
l
Fornece uma forma de uma aplicação J2EE autenticar
e autorizar um usuário específico ou um grupo de
usuários para executá-la
É uma versão Java da infra-estrutura padrão PAM
(Pluggable Authentication Module), que estende a
arquitetura de segurança da plataforma Java para
suportar autorização baseada em usuário
Containers
14
Implementação de Referência J2EE
l
l
l
Definição operacional da plataforma J2EE
Plataforma padrão para testes de compatibilidade
com a especificação J2EE
Disponível na Web de forma gratuita
l
l
Popularização da plataforma J2EE
http://java.sun.com/j2ee/download.html#sdk
Visão Geral – Arquitetura J2EE
15
Papéis e Responsabilidades
Papéis e Responsabilidades
16
IDE - J2EE
l
Ambiente de Desenvolvimento
l
l
Eclipse
Ant
Servidores de Aplicação J2EE
l
l
Mais de 20 servidores de aplicação certificados
em J2EE1.2
Mais de 15 servidores de aplicação certificados
em J2EE1.3
l
BEA Weblogic
IBM Websphere
Oracle9iAs
Sun iPlanet
l
JBoss
l
l
l
17
Desempenho
l
l
l
Apesar dos custos de abstração da linguagem
Java, a performance de servlets é equivalente a
de CGI C++.
Os principais servidores de aplicação utilizam
compiladores just in time - JIT.
e-bay: 320M page views/dia. 2100
transações/segundo.
Segurança
l
l
l
l
Permite segurança como parte do deployment,
sem depender de configuração de ambiente
durante a execução da aplicação.
Facilita o desenvolvimento ao delegar a
responsabilidade para os “papéis de segurança”.
Evita misturar código de segurança à lógica do
negócio.
Permite configurar as políticas de segurança da
forma mais adequada ao ambiente de instalação.
18
JEE 5
l
Nova Versão J2EE
l
http://java.sun.com/javaee/technologies/javaee5.jsp
J2EE x EJB
l
J2EE é :
l
l
l
uma especificação
uma padronização
Dentro disto, há um modelo de desenvolvimento
baseado em componentes (DBC) que são os EJB
l
Enterprise Java Beans
19
Download