J500 Aplicações Distribuídas com J2EE TM e JBoss TM Helder da Rocha www.argonavis.com.br 1
Objetivos Este curso tem como objetivo oferecer uma introdução prática às tecnologias J2EE, mostrando como usar em conjunto as APIs JNDI (Java Naming and Directory Interface) JMS e RMI-IIOP através de Enterprise JavaBeans Servlets e JSP JavaMail* APIs Java para XML e WebServices* Para atingir esses objetivos, usaremos apenas recursos padrão e ferramentas de código aberto JBoss application server J2EE Reference Implementation Ant * módulos opcionais 2
Pré-requisito fundamental Experiência com programação em Java (inclusive JDBC) 3
Assuntos abordados Este curso explora os seguintes assuntos Como escrever componentes J2EE (Web e EJB), como compilá-los, empacotá-los, implantá-los e executá-los: Como criar Session beans, Entity beans, Message-driven beans, servlets e JSP Como escrever aplicações distribuídas compostas de componentes Web e EJB combinados Como configurar componentes J2EE para usar serviços disponibilizados pelo servidor de aplicações Principais serviços e APIs de acesso a serviços (serviço de nomes, transações, autenticação e persistência): JNDI, JTS/JTA, JAAS, BMP e CMP Uso de ambiente de desenvolvimento J2EE baseado no Ant 4
Assuntos abordados superficialmente Os seguintes assuntos são abordados de maneira superficial neste curso Aplicações de objetos distribuídos com RMI-IIOP e JMS EJB-QL Utilização de transações declarativas por método e fundamentos da API de transações Autenticação de usuários e autorização para acesso a recursos no servidor Boas práticas e padrões de projeto J2EE (discutidos superficialmente no módulo 16) MVC e modelagem de aplicações Web XML e Web Services (opcionais) JavaMail (opcional) 5
Assuntos não abordados Os seguintes assuntos não são abordados neste curso Java e JDBC básico (pré-requisitos) Configuração de autenticação e autorização em servlets e JSP (controlamos apenas métodos de negócio em EJBs) Tópicos avançados de transações ou segurança Tópicos avançados de arquitetura de aplicações J2EE: modelagem, relacionamentos avançados com EJB-QL Análise, design ou técnicas e práticas para desenvolver aplicações robustas, seguras e eficientes Padrões de projeto J2EE UML (Unified Modelling Language) Uso de ambientes integrados (IDEs) gráficos, debuggers, profilers, sistemas de controle de versão, etc. 6
Roteiro (1) Parte I Fundamentos 1. Plataforma J2EE: introdução prática 2. Serviços de Localização (JNDI) 3. Fundamentos de Java IDL e RMI-IIOP 4. Fundamentos de JMS Parte II Tecnologia Web 5. Componentes e servidores Web 6. Servlets 7. JavaServer Pages 8. Custom tags, JSTL, MVC e Struts 7
Roteiro (II) Parte III Tecnologia EJB 9. Enterprise JavaBeans 10. Session Beans 11. Entity Beans com BMP 12. Message-driven Beans Parte IV EJBs e serviços de middleware 13. Entity Beans com CMP e EJB-QL 14. Transações 15. Segurança 16. Construção de uma aplicação J2EE Parte V Outras APIs (módulos opcionais) 17. JavaMail* 18: APIs para XML e Web Services* * Módulos opcionais: +8h 8
Tecnologias abordadas Plataforma J2EE Caps 1 e 16 Cap 5 Cap 2 JNDI Web Container Cap 9 EJB Container Cap 12 Message-driven Beans Cap 14 JTS Cap 4 JMS Opcionais JAXP e WebServices JavaMail Caps 7 e 8 JavaServer Pages Cap 10 Session Beans Cap 3 RMI-IIOP Cap 6 Servlets Caps 11 e 13 Entity Beans Cap 15 JAAS Tecnologias J2EE não exploradas: JDBC JCA 9
Estrutura do curso Distrubuição dos assuntos Montagem e instalação de aplicações J2EE APIs e Serviços Implementação de Componentes Web Implementação de Componentes EJB APIs e Serviços Módulos do curso relacionados 1 2, 3, 4 5, 6, 7, 8 9, 10, 11, 12, 13 14, 15 Principais papéis J2EE envolvidos B A A C A B C B A B C C Montagem e instalação de aplicações J2EE 16 A B C Papéis J2EE* relevantes para este curso A. Desenvolvedor de componente B. Montador de aplicação C. Instalador de aplicação (deployer) Camadas da aplicação e plaforma J2EE * de acordo com a especificação J2EE Aplicação J2EE Apresentação Negócios Dados Infraestrutura J2EE 10
Características importantes sobre este curso J2EE abrange muitas tecnologias. Este curso explora seus conceitos fundamentais APIs: JNDI, JTA/JTS, JAAS Protocolos: RMI-IIOP e JMS Arquiteturas de componentes: servlets, JSP, EJB O objetivo é iniciá-lo(a) no uso prático dessas tecnologias Não são abordados em grande profundidade Questões sobre arquitetura, padrões, etc. são deixados em segundo plano Use este curso como ponto de partida para aprofundamento nas tecnologias abordadas 11
Resultados esperados Ao final deste curso você terá os conhecimentos essenciais da arquitetura J2EE e saberá como implantar aplicações distribuídas em qualquer servidor compatível. Será capaz de Criar componentes Enterprise JavaBeans Criar servlets e páginas JSP para aplicações Web; Empacotar aplicações em componentes JAR, WAR e EAR; Instalar, configurar, implantar e usar (na implementação de referência e no JBoss) aplicações distribuídas consistindo de enterprise beans, servlets e páginas JSP; Conhecer e aplicar os fundamentos básicos de modelagem usando Entity Beans (relacionamentos e EJB-QL) Controlar, em cada componente, o acesso aos serviços de autenticação, persistência e transações do servidor Utilizar as APIs JavaMail, JAXP e JAX-RPC* * módulo opcional 12
Como tirar o melhor proveito deste curso Faça perguntas Faça os exercícios Explore os exemplos Vá além dos exemplos e exercícios: invente exemplos similares, teste trechos de código Explore e se familiarize com a documentação Procure desenvolver um projeto que utilize Java, seja no trabalho, seja no seu tempo livre Não fique sem programar nos próximos meses ou todo o esforço terá sido em vão! Leia revistas, artigos e livros sobre Java e J2EE e mantenha-se atualizado. 13
Recursos didáticos utilizados Apresentação Slides (em alguns módulos) e demonstrações interativas Roteiros didáticos em livros-texto (veja a seguir) Exercícios são propostos ao final de cada módulo Aplicações triviais (para fixar conceitos aprendidos) Projeto J2EE Finalidade é usar as tecnologias aprendidas e montar uma aplicação J2EE simples, porém completa (ir além das aplicações triviais) Realizado no exercício do módulo 16: projeto completo combinando todas as tecnologias aprendidas, com discussão sobre boas práticas e padrões de projeto 14
CD O CD que acompanha este curso contém todo o material necessário, software e fontes adicionais de informação A sua estrutura geral é a seguinte cap01 a cap18: arquivos com código-fonte correspondente a cada módulo do curso. Cada um possui um ou mais build.xml (roteiro para o Ant) que permite instalar e rodar as aplicações slides: contém as apresentações em PDF utilizadas em aula software: contém todo o software usado em aula e mais (J2SDK, J2EE SDK Win e Linux, JBoss, WebLogic 6.1-30 dias, OpenLDAP, Joram, Netbeans, JEdit, JUnit, Cactus, HttpUnit, etc.) docs: livros-texto em PDF, tutoriais online da Sun, especificações J2EE e CORBA em PDF, whitepapers, código-fonte O objetivo do CD é facilitar o acesso ao material do curso. Sempre que possível, procure versões mais atuais na Internet. 15
Fontes Este material (slides) é utilizado como roteiro de treinamento. Não pretende ser uma fonte detalhada de informação sobre J2EE. Para detalhes, consulte as fontes abaixo [1] The J2EE Tutorial, Sun http://java.sun.com/j2ee/tutorial/ livros-texto principais [2] Mastering EJB 2.0, Ed Roman et al. e EJB Design Patterns, F. Marinescu http://www.theserverside.com/books/masteringejb/index.jsp http://www.theserverside.com/books/ejbdesignpatterns/index.jsp [3] The JNDI Tutorial, Sun http://java.sun.com/products/jndi/tutorial/ [4] The JMS Tutorial, Sun http://java.sun.com/products/jms/tutorial/ [5] The Java Web Services Tutorial, Sun http://java.sun.com/webservices/docs/ea2/tutorial/index.html [6] Java and XML, 2ed, Bret McLaughin (publicado pela O'Reilly) [7] Enterprise JavaBeans, 3ed, Richard Monson-Haefel (O'Reilly) [8] Web Development with JavaServer Pages, D. Fields, M. Kolb (Manning) Veja no CD em docs/ livros-texto usados em módulos específicos 16
Check-list de instalação em Windows J2SDK 1.4.0 Rode /software/java/j2sdk1.4.0-win.exe J2SDK EE 1.3.1 Rode /software/j2ee/j2sdkee-1_3_1-win.exe JBoss 3.0.0 Descompacte o arquivo /software/j2ee/jboss-3.0.0.zip em C:\ Jakarta Ant Descompacte /software/java/jakarta-ant-1.5-bin.zip em C:\ Mude o nome do diretório raiz criado (jakarta-ant-*) para ant JEdit 4.0 Rode /software/java/jedit40install.jar e siga as instruções 17
Check-list de configuração (Windows) Crie as seguintes variáveis de ambiente JAVA_HOME=c:\j2sdk1.4.0 ANT_HOME=c:\ant J2EE_HOME=c:\j2sdkee1.3.1 JBOSS_HOME=c:\jboss-3.0.0 Acrescente, à sua variável PATH os seguintes caminhos %JAVA_HOME%\bin;%J2EE_HOME%\bin;%ANT_HOME%\bin; Suporte a Cloudscape Copie D:\jboss\cloudscape_config\j2ee_ri_windows\cloudscape98.bat para c:\j2sdkee1.3.1\bin\ Siga as outras instruções de D:\jboss\cloudscape_config\README.txt para copiar arquivos para diretórios do JBoss Crie atalhos na sua área de trabalho para: c:\j2sdkee1.3.1\bin\cloudscape98.bat c:\jboss-3.0.0\bin\run.bat 18
helder@argonavis.com.br argonavis.com.br jav500 - Java 2 Enterprise Edition, Maio 2002 19