O documento apresenta um mini-curso gratuito sobre Enterprise Java Beans (EJB) 3.0. A agenda inclui tópicos como a plataforma Java EE, conceitos iniciais de EJB, session beans, message-driven beans, Java Persistence API e serviços disponíveis como injeção de dependência e transações. O curso será ministrado por um palestrante com 8 anos de experiência na área de desenvolvimento Java.
Este documento fornece um resumo introdutório sobre Enterprise JavaBeans 3.0, incluindo sessão beans, message-driven beans, transações e interceptadores. O programa abrange esses tópicos além de web services. O objetivo é fornecer uma introdução prática a EJB 3.0 com demonstrações.
O documento discute Enterprise JavaBeans (EJB), que fornece serviços como transações, segurança e persistência para componentes em aplicações corporativas. EJB pode ser visto como um modelo de componentes ou framework. Componentes EJB, como session beans e entity beans, são executados em um contêiner EJB que oferece tais serviços de infraestrutura.
Este documento fornece um resumo introdutório sobre Enterprise JavaBeans 3.0, incluindo sessão beans, message-driven beans, transações e interceptadores. O programa abrange esses tópicos além de web services. O objetivo é fornecer uma introdução prática a EJB 3.0 com demonstrações.
O documento discute Enterprise JavaBeans (EJB), que fornece serviços como transações, segurança e persistência para componentes em aplicações corporativas. EJB pode ser visto como um modelo de componentes ou framework. Componentes EJB, como session beans e entity beans, são executados em um contêiner EJB que oferece tais serviços de infraestrutura.
Hands-on-Lab (TP) sur l'utilisation de Git en mode avancé dispensé avec mes collègues Alexis DMYTRYK et Thomas COLLIGNON lors de DevoxxFR 2018.
Présentation disponible ici : https://fr.slideshare.net/JrmeTAMBORINI/tp-git-avanc-devoxxfr-2018-pres
Objectif général :
Prendre en main l’une des bibliothèques JavaScript les plus utilisés pour créer des interfaces utilisateurs
Objectifs spécifiques :
Découper l’interface utilisateur avec les composants
Passer des informations (données ou instructions) d’un composant à son composant fils avec « props »
Gérer l’état local d’un composant avec « state »
Afficher une listes de composants avec map()
Afficher un composant en fonction de l’état de l’application
Interagir avec un utilisateur grâce à la gestion des événements
Interagir avec un utilisateur par le biais des formulaires
Communiquer avec un serveur HTTP avec AJAX
Afficher des vues en fonction de l’URL avec le routage
Mettre en forme un composant
O documento discute estratégias de comunicação distribuída, incluindo EJB. Ele lista vários tipos de comunicação em sistemas distribuídos como sockets, RMI, CORBA, EJB e serviços Web. O documento também discute instalação e configuração do JBoss e conceitos relacionados a JEE, como EJB, entidades e unidades de persistência.
Support Complet sur la technologie EJB 3.1. Ce cours Traite l'architecture JEE. Les différents types EJB (Session, Entity, MDB). Des exemple complets sont aussi présentés.
Support de cours EJB :
- Architecture JEE
- Séparer le code métier et le code technique
- Inversion de contrôle
- EJB session
- EJB Entity
- Mise en oeuvre des projets EJB
- EJB et Web services
- JMS
- MDB
- Gestion de transactions avec EJB
- Application
This document compares the JavaScript frameworks React and Vue. It provides an introduction and history of both, explaining that React was created by Facebook in 2013 and Vue was created by Evan You in 2014. It then demonstrates building a shopping list application without and with React/Vue to showcase their core features like virtual DOM, components, updating and passing events, two-way data binding, and state management. Statistics on GitHub stars, NPM trends, Google Trends, and performance benchmarks are presented, followed by a Q&A section.
Java Spring framework, Dependency Injection, DI, IoC, Inversion of ControlArjun Thakur
Hi, I just prepared a presentation on Java Spring Framework, the topics covered include architecture of Spring framework and it's modules. Spring Core is explained in detail including but not limited to Inversion of Control (IoC), Dependency Injection (DI) etc. Thank you and happy learning. :)
O documento discute o papel do arquiteto de software, incluindo a definição de arquitetura de software e estilos arquiteturais. Também aborda a descrição de arquiteturas usando linguagens como ADL e o papel importante do arquiteto de software no projeto de sistemas.
O documento apresenta as principais novidades da especificação EJB 3.1, incluindo a simplificação da arquitetura com a remoção da dependência de interfaces, melhorias no agendamento de tarefas e suporte a beans assíncronos, e a padronização dos nomes JNDI para maior portabilidade.
O documento discute três itens relevantes sobre EJB: 1) o uso de anotações para adicionar metadados às classes e métodos; 2) a utilização mínima de descritores XML; 3) a injeção de dependência, onde objetos necessários são injetados no código ao invés de serem localizados manualmente.
Hands-on-Lab (TP) sur l'utilisation de Git en mode avancé dispensé avec mes collègues Alexis DMYTRYK et Thomas COLLIGNON lors de DevoxxFR 2018.
Présentation disponible ici : https://fr.slideshare.net/JrmeTAMBORINI/tp-git-avanc-devoxxfr-2018-pres
Objectif général :
Prendre en main l’une des bibliothèques JavaScript les plus utilisés pour créer des interfaces utilisateurs
Objectifs spécifiques :
Découper l’interface utilisateur avec les composants
Passer des informations (données ou instructions) d’un composant à son composant fils avec « props »
Gérer l’état local d’un composant avec « state »
Afficher une listes de composants avec map()
Afficher un composant en fonction de l’état de l’application
Interagir avec un utilisateur grâce à la gestion des événements
Interagir avec un utilisateur par le biais des formulaires
Communiquer avec un serveur HTTP avec AJAX
Afficher des vues en fonction de l’URL avec le routage
Mettre en forme un composant
O documento discute estratégias de comunicação distribuída, incluindo EJB. Ele lista vários tipos de comunicação em sistemas distribuídos como sockets, RMI, CORBA, EJB e serviços Web. O documento também discute instalação e configuração do JBoss e conceitos relacionados a JEE, como EJB, entidades e unidades de persistência.
Support Complet sur la technologie EJB 3.1. Ce cours Traite l'architecture JEE. Les différents types EJB (Session, Entity, MDB). Des exemple complets sont aussi présentés.
Support de cours EJB :
- Architecture JEE
- Séparer le code métier et le code technique
- Inversion de contrôle
- EJB session
- EJB Entity
- Mise en oeuvre des projets EJB
- EJB et Web services
- JMS
- MDB
- Gestion de transactions avec EJB
- Application
This document compares the JavaScript frameworks React and Vue. It provides an introduction and history of both, explaining that React was created by Facebook in 2013 and Vue was created by Evan You in 2014. It then demonstrates building a shopping list application without and with React/Vue to showcase their core features like virtual DOM, components, updating and passing events, two-way data binding, and state management. Statistics on GitHub stars, NPM trends, Google Trends, and performance benchmarks are presented, followed by a Q&A section.
Java Spring framework, Dependency Injection, DI, IoC, Inversion of ControlArjun Thakur
Hi, I just prepared a presentation on Java Spring Framework, the topics covered include architecture of Spring framework and it's modules. Spring Core is explained in detail including but not limited to Inversion of Control (IoC), Dependency Injection (DI) etc. Thank you and happy learning. :)
O documento discute o papel do arquiteto de software, incluindo a definição de arquitetura de software e estilos arquiteturais. Também aborda a descrição de arquiteturas usando linguagens como ADL e o papel importante do arquiteto de software no projeto de sistemas.
O documento apresenta as principais novidades da especificação EJB 3.1, incluindo a simplificação da arquitetura com a remoção da dependência de interfaces, melhorias no agendamento de tarefas e suporte a beans assíncronos, e a padronização dos nomes JNDI para maior portabilidade.
O documento discute três itens relevantes sobre EJB: 1) o uso de anotações para adicionar metadados às classes e métodos; 2) a utilização mínima de descritores XML; 3) a injeção de dependência, onde objetos necessários são injetados no código ao invés de serem localizados manualmente.
O documento apresenta três opções de arquitetura para aplicações JEE, discutindo tecnologias como JSF, JPA, EJB e injeção de dependência. Os palestrantes apresentam suas experiências e o objetivo é simplificar o desenvolvimento de aplicações JEE modernas.
Apostila JavaEE 5 Componentes Distribuídos EJB 3 e JBossGilberto Holms
Este documento fornece uma introdução aos principais conceitos e ferramentas para desenvolvimento de aplicações distribuídas em Java EE, incluindo: (1) Uso do JBoss Application Server e ferramentas como Eclipse IDE e MySQL; (2) Conceitos de computação distribuída e arquiteturas como CORBA e RMI; (3) Serviço de nomes JNDI; (4) Introdução à plataforma Java EE; (5) Enterprise JavaBeans; (6) Java Persistence API; (7) Mensageria JMS.
O documento discute os conceitos de J2EE e EJB 3.0. Especificamente, descreve o que é J2EE, suas características e o que é EJB, seus tipos de componentes (session bean, entity bean e message-driven bean), interfaces e como implementar um bean.
O documento descreve uma introdução ao Java EE 5 e às mudanças entre EJB 2.1 e EJB 3.0. Ele apresenta os pré-requisitos e referências para o curso, a ementa do curso, as principais especificações do Java EE 5, as diferenças em relação ao J2EE e as características e limitações do EJB 2.1 em comparação com o EJB 3.0.
O documento discute estratégias de comunicação distribuída e lista diferentes tipos de comunicação em sistemas distribuídos, incluindo EJB. O documento também fornece detalhes sobre instalação e configuração do JBoss para implantar aplicativos Java EE.
Os Melhores do Mundo, um comparativo entre Spring e EJB 3.0Rafael Carneiro
O documento compara as tecnologias Spring e EJB 3.0, mostrando suas vantagens e desvantagens. Ele apresenta uma agenda para a comparação, incluindo tópicos como injeção de dependência, transações, agendamento, AOP, web services, segurança e conclusões. Dois desenvolvedores Java experientes irão construir uma aplicação usando ambas as tecnologias para demonstrar os recursos de cada uma.
O documento resume as principais tecnologias da plataforma Java EE, incluindo Java Persistence API (JPA), Enterprise JavaBeans (EJB), JavaServer Faces (JSF), Contexts and Dependency Injection (CDI) e Java EE 7.
Venha conhecer as principais tecnologias disponibilizadas para o desenvolvimento de aplicações Web utilizando a plataforma Java Enterprise.
Neste mini-curso serão demonstrados conceitos e exemplos das bibliotecas para o desenvolvimento Java EE, como: JSF, JPA, CDI EJB, JAX-RS, dentre outras.
Este documento fornece informações sobre uma palestra gratuita sobre Java EE 6. Ele inclui o objetivo da palestra, a agenda, informações sobre o palestrante e uma seção de doações para uma instituição de caridade local.
O documento apresenta uma agenda para um treinamento sobre desenvolvimento de aplicações com Java EE, abordando tópicos como JPA, EJB, JSF, CDI e novidades da Java EE 7.
- JBoss Forge é uma ferramenta que auxilia na criação e manutenção de aplicações Java EE através de plugins para tarefas repetitivas e integração com outras tecnologias e ferramentas. Ele fornece CDI, integração com frameworks e compartilhamento de código no GitHub.
O documento apresenta um mini-curso gratuito sobre Java Enterprise Edition (Java EE). O objetivo é conhecer a plataforma Java EE 5 e entender as principais diferenças desta versão em relação às versões anteriores. A agenda inclui tópicos como as principais tecnologias da plataforma como Java Servlet, JSP, JSF, EJB, JPA e segurança.
Este documento apresenta uma introdução aos principais frameworks Java EE para desenvolvimento de aplicações web: Java Server Faces (JSF), Java Persistence API (JPA) e Context Dependency Injection (CDI). A apresentação inclui uma explicação dos conceitos e funcionalidades de cada framework, como JSF permite a criação de interfaces gráficas web, JPA mapeia objetos Java para bancos de dados e CDI gerencia o ciclo de vida de componentes e injeção de dependências. A apresentação termina com uma demonstração prática do uso conjunto destes frameworks.
O documento descreve o framework JavaServer Faces (JSF), incluindo: 1) O que é JSF e suas principais características como um framework baseado em componentes, dirigido a eventos e padrão de mercado; 2) Por que usar JSF, com seus benefícios como produtividade, reusabilidade e suporte a diversas ferramentas; 3) Uma visão geral da tecnologia, abordando conceitos como componentes, renderers, managed beans e conversão/validação.
GlassFish, Maven, Cloud e o futuro do Java EEBruno Borges
O documento discute as seguintes tecnologias Java EE: Java EE 6, Java EE 7, GlassFish, Apache Maven e o plugin Embedded GlassFish Maven. O apresentador descreve as principais funcionalidades dessas tecnologias e como elas podem ser usadas para desenvolvimento moderno com Java EE.
O documento fornece um resumo sobre o framework Spring, descrevendo:
1) Por que foi criado o Spring para substituir o EJB do Java EE, tornando o desenvolvimento Java mais leve e flexível;
2) Os principais conceitos do Spring como injeção de dependência e gerenciamento de beans;
3) As principais partes do framework Spring e projetos relacionados como Spring Boot, Spring MVC e Spring Data.
1. JBoss Forge é uma ferramenta que auxilia na criação e manutenção de aplicações Java EE através de plugins para tarefas repetitivas.
2. Ele resolve problemas de configuração e fragmentação ao integrar ferramentas e tecnologias existentes de forma consistente.
3. Plugins adicionam novas funcionalidades, como integração com frameworks populares.
O que ganhamos com Java e Cloud Computing?Bruno Borges
1. O documento apresenta uma palestra sobre WebLogic 12c e Fusion Middleware.
2. O palestrante Bruno Borges é um desenvolvedor Java com 12 anos de experiência que trabalhou em Florianópolis, Rio de Janeiro e São Paulo.
3. A palestra discute as tecnologias Java SE 7, Java EE 6, Java EE 7, GlassFish, NetBeans, MySQL Server e Java Embedded.
A apresentação visa repensar os padrões JavaEE para evitar o uso de padrões obsoletos, focando no container server-side, para criar arquiteturas enxutas.
O documento discute o futuro do Java EE, GlassFish e Apache Maven. Em três frases:
1) O documento apresenta as novidades do Java EE 7 e do servidor de aplicação GlassFish 4.0, que será a implementação de referência do Java EE 7.
2) Também discute o uso do Apache Maven para gerenciamento e build de projetos Java EE, incluindo plugins úteis como o plugin do GlassFish Embedded para executar o servidor localmente durante o desenvolvimento.
3) Por fim, aborda a importância do Java EE na nuvem e suas caracterí
O documento discute o projeto HornetQ e o futuro do projeto SwitchYard. Ele apresenta o que é JMS e mensageria, explica porque o HornetQ substitui o JBoss Messaging, destaca as características e funcionalidades do HornetQ, e discute brevemente o SwitchYard como uma nova geração de ESB.
O documento apresenta a arquitetura de projetos JEE da baixa plataforma da Unisys, incluindo os frameworks e ferramentas utilizados como o UGOFramework, JBoss e Eclipse. O desenvolvimento baseado em componentes e frameworks é destacado por promover a reutilização de código, aumentar a produtividade e facilitar a manutenção dos sistemas.
[1] O documento discute o desenvolvimento web com JavaServer Faces (JSF), um framework MVC para construção de interfaces web com componentes.
[2] JSF fornece uma especificação e APIs para representar componentes de interface, manipular eventos e validação de entrada do usuário, e controlar a navegação entre páginas.
[3] O documento explica conceitos-chave de JSF como componentes, renderers, managed beans, converters, validadores e o ciclo de vida das requisições, demonstrando porque JSF é uma boa opção para
O documento discute as novidades da especificação Java Message Service (JMS) 2.0, incluindo:
1) A simplificação da API JMS 1.1 através da introdução dos objetos JMSContext e JMSProducer para envio de mensagens de forma mais simples;
2) Melhorias na integração com o Java EE, como a injeção do JMSContext e o gerenciamento do escopo das sessões pelo container;
3) Novas funcionalidades como tornar mais fácil a criação de assinaturas duráveis.
O documento resume as principais características e mudanças introduzidas nas versões Java 9, 10 e 11. Java 9 trouxe a modularização do JDK, ferramentas como o jlink e jdeps, arquivos JAR multi-versão e melhorias na API de coleções. Java 10 adicionou inferência de tipo para variáveis locais, melhor apoio a Docker e compartilhamento de classes de aplicativos. Java 11 removeu módulos legados, adicionou o Flight Recorder e algoritmos criptográficos ChaCha20 e Poly1305.
O desenvolvimento de aplicações no ambiente de nuvem já tornou-se ?mainstream?. É fato também que o deployment de uma aplicação Java EE neste ambiente pode ser feito rapidamente, sem muita necessidade de adaptação. Mas, muitos são os desafios enfrentados e as melhores práticas recomendadas afim de extrair todo o benefício (escalabilidade, elasticidade, produtividade, adaptabilidade, resiliência) que este ambiente pode oferecer. Nesta talk iremos demonstrar como tirar proveito dos recursos e serviços computacionais oferecidos pela nuvem (Microsoft Azure) no desenvolvimento de uma aplicação Java EE utilizando os últimos recursos da versão EE 8 (JAX-RS, CDI, JPA, EJB, JSON-P, Servlets, etc).
O documento discute boas práticas e estratégias para implementar segurança em microserviços, incluindo o uso de OAuth2, JWT e OpenID Connect para autenticação e autorização. Também recomenda criar um API gateway, limitar tráfego de entrada, aplicar segurança no nível do container e monitoramento para proteger os microserviços.
Microservices have become the hottest topic in software architecture over the past year, and much can be said about their benefits. But there are many challenges related to their security implementation and security context propagation over their components. This session addresses how to perform authentication and authorization inside a microservices architecture, covering technologies such as OAuth2, OpenID Connect, and JSON Web Token and use of Spring Cloud Security to integrate with a Spring and/or Java EE–based application platform.
O documento resume as principais novidades da versão 9 do Java, incluindo: (1) modularização do código Java para torná-lo mais escalável e flexível, (2) novas APIs para coleções imutáveis, métodos privados em interfaces e programação reativa, (3) melhorias nas APIs de processos, HTTP/2 e JShell.
Workshop Microservices - Distribuindo os Microservices com Docker e KubernetesRodrigo Cândido da Silva
Este documento apresenta um workshop sobre distribuição de microservices com Docker e Kubernetes. Os objetivos são compreender como empacotar projetos de microservices com Docker, publicar imagens em repositórios Docker, compor uma arquitetura de microservices com Docker Compose e orquestrar a arquitetura com Kubernetes.
O documento descreve um workshop sobre microservices utilizando Spring Cloud e Netflix OSS. O workshop abordará tópicos como configuração centralizada com Spring Cloud Config, registro e descoberta de serviços com Netflix Eureka, balanceamento de carga e tolerância a falhas com Netflix Ribbon e Hystrix, segurança com Spring Cloud Security e roteamento com Netflix Zuul.
O documento apresenta os tópicos a serem abordados em um workshop sobre microserviços utilizando Spring Boot, incluindo implementação de APIs RESTful, persistência de dados com Spring Data e segurança com Spring Security.
O documento discute arquitetura de microserviços, comparando-a com arquitetura monolítica. Aborda definições, benefícios, desafios e padrões de projeto de microserviços, incluindo deployment e monitoramento.
O documento discute proteção de microserviços em Java, abordando tópicos como OAuth 2.0, JWT e Spring Cloud Security. Ele explica as diferenças entre arquiteturas monolíticas e de microserviços e os desafios de segurança nesse último modelo, e apresenta estratégias como Basic Auth, Certificate Based e OAuth 2.0 para proteger APIs REST. Também demonstra como Spring Cloud e JWT podem ser usados para implementar autenticação e autorização em microsserviços.
Serviços reativos foram definidos pelo Manifesto Reativo. Eles são construídos para serem flexíveis, fracamente acoplados, escaláveis, e também qualificados com base nos quatro principais princípios: responsividade, resiliência, elasticidade e dirigido à mensagens. Java e a plataforma Java EE oferecem uma ótima estrutura com bibliotecas para implementar serviços reativos e transformá-los em uma arquitetura otimizada para micro-serviços. Esta palestra apresentará as melhores práticas para implementar serviços reativos em Java usando RxJava, definindo uma arquitetura de micro-serviços baseada em casos reais e boa práticas aplicadas.
O documento discute a combinação de micro-serviços com práticas DevOps, incluindo Docker e AWS ECS. Aborda os desafios de micro-serviços como configuração, descoberta e balanceamento de serviços e como ferramentas como Spring Cloud, Netflix OSS, Docker e ECS podem ajudar a superar esses desafios.
Serviços reativos foram definidos pelo Manifesto Reativo. Eles são desenvolvidos para serem mais flexíveis, fracamente acoplados, escaláveis e também qualificados a partir dos quatro princípios: responsivo, resiliente, elástico e direcionados a mensagens. A plataforma Java e Java EE oferecem uma ótima estrutura e bibliotecas para implementarem serviços reativos e transformá-los em uma arquitetura de micro-serviços resiliente.
Reactive services were defined by the Reactive Manifesto. They are built to be more flexible, loosely-coupled and scalable and also they are qualified based on the four principles: responsive, resilient, elastic and message driven. Java and the Java EE platform offers a pretty good structure and libraries to implement reactive services and transform it in a microservices architecture designed.
O documento apresenta uma arquitetura para combinar AngularJS com Java EE utilizando RESTful Web Services e WebSocket. A arquitetura proposta permite que aplicações Java EE forneçam dados dinâmicos e recursos para clientes ricos implementados com AngularJS.
Spring Data REST oferece uma customização no topo do projeto Spring Data que exporta os repositórios automaticamente como serviços REST. Implementa conceitos e boas práticas em arquiteturas REST, como RESTful, ALPS, HATEOAS, permitindo os clientes encontrarem e explorarem as funcionalidades expostas de uma maneira fácil e organizada.
Esta palestra irá abordar como desenvolver rapidamente uma API de microservicos REST utilizando Spring Boot e Spring Data REST. Será principalmente orientada a exemplos de código demonstrando a implementação destas tecnologias.
O documento apresenta uma introdução sobre microserviços e como utilizar o Spring Cloud e as bibliotecas do Netflix para desenvolver aplicações baseadas em microserviços de forma auto-curável. É apresentada uma agenda com os principais tópicos como balanceamento de carga, tolerância a falhas, roteamento e segurança. São demonstrados exemplos práticos utilizando Spring Cloud Config, Eureka, Ribbon, Hystrix e Zuul.
O documento apresenta uma arquitetura de aplicação web rica utilizando AngularJS no frontend e Java EE no backend, com as seguintes tecnologias:
1) Serviços RESTful implementados com JAX-RS para comunicação entre frontend e backend;
2) Uso de WebSocket para comunicação full-duplex;
3) Integração de AngularJS com Java EE utilizando JSON para troca de dados.
QCon SP 2016 - Construindo Microservices Auto-curáveis com Spring Cloud e Net...Rodrigo Cândido da Silva
Os microservices tornaram-se o tema mais quente na arquitetura de software, e muito se pode dizer sobre os seus benefícios. Mas é importante compreender que ao começar a decompor o monolito entramos no reino de sistemas distribuídos. Precisamos lidar com cenários de transparência de localização, recuperação de falhas, escalabilidade, autonomia, facilidade de atualização e outros aspectos. Por outro lado, quando tratamos toda essa complexidade, conseguimos definir aplicações que rodam “eternamente” – tornando-se auto-curáveis (self-healing) e muito escaláveis.
O projeto Spring Cloud traz ferramentas para facilitar a aplicação desses conceitos na prática, definindo padrões de implementação para sistemas distribuídos com suporte a gerenciamento de configuração, descoberta de serviços, circuit breakers, roteamento, distribuição de sessões, barramento de controle, dentre outras técnicas. Pode também ser combinado com a plataforma Netflix OSS, que oferece componentes especialmente úteis em um ambiente de microservices, como Eureka (registro), Ribbon (localização), Hystrix (tolerância a falhas), Zulu (roteamento).
Nesta palestra será demonstrado como usar na prática essas ferramentas, bem como os desafios e lições aprendidas – tudo com base em casos reais de uso de uma arquitetura de microservices implementada com Spring Cloud e Netflix OSS.
O documento apresenta uma arquitetura de aplicação web rica utilizando AngularJS no frontend e Java EE no backend, com ênfase nas seguintes tecnologias:
1) Arquitetura RESTful utilizando JAX-RS para serviços web;
2) Integração de AngularJS com serviços RESTful para comunicação cliente-servidor;
3) Demonstração de uma aplicação combinando essas tecnologias.
3. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 3
4. Palestrante
Rodrigo Cândido da Silva – rcandidosilva@gmail.com
Trabalha: Arquiteto Java / Instrutor
Experiência: 8 anos na área de desenvolvimento
de sistemas, trabalhando com Java desde 2001;
Certificações: SCJA, SCJP, SCWCD, SCBCD, SCEA
Hobby Favorito: Futebol, Praia, Filmes, etc
Globalcode Slide 4
5. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 5
6. Plataforma Java EE
• Suporte ao desenvolvimento de aplicações “enterprise”
Aplicações distribuídas, seguras, escaláveis, de alta disponibilidade e com
baixo custo de manutenção
• Plataforma para desenvolvimento de componentes para
aplicações em multicamadas
Enterprise JavaBeans
JavaServer Pages
Servlets
• Componentes “rodam” em um servidor Java EE
Gerencia e oferece serviços de alto nível aos componentes por meio de
Containers
container segue uma especificação padrão
Globalcode Slide 6
9. Plataforma Java EE
• Serviços oferecidos pelos containers:
Escalabilidade
Gestão de memória, ciclo de vida de objetos e estado de objetos
Conexões, Transações, Serviço de nomes
Segurança
Tolerância a falhas
Integração
WebServices
Clustering
Alta disponibilidade
Confiabilidade
…
Globalcode Slide 9
10. Plataforma Java EE
• Servidores 100% compatíveis com a especificação Java EE 5
Globalcode Slide 10
11. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 11
12. Conceitos Iniciais (EJB)
Porque Precisamos de EJB?
Cliente
SOA / WS
Regras de
Negócio
web
Swing /
JavaFX
Web Browser Java Web
JVM + Container EE
Rede Local
Globalcode Slide 12
13. Conceitos Iniciais (EJB)
• Plataforma para criação de aplicações de negócio portáveis,
robustas e reutilizáveis usando a linguagem de programação Java;
• Componente para construir aplicações sem precisar reinventar
uma série de recursos e serviços (transações, segurança,
persistência);
• Modelo de alto nível para objetos distribuídos (computação
distribuída);
• Padrão de mercado para componentes de negócio;
• É o CICS do Java.
Globalcode Slide 13
14. Conceitos Iniciais (EJB)
Componentes de Negócio Compartilhados
Cliente
SOA / WS
EJB
Session Bean
web
Swing /
JavaFX
Web Browser Java Web
JVM + Container EE
Rede Local
Globalcode Slide 14
15. Conceitos Iniciais (EJB)
javax.ejb
EJB Server / Container
Nível programação
JRMP / RMI - IIOP
TCP / IP java.rmi
Aplicação
Apresentação
Transporte
rede
java.net
Globalcode Slide 15
16. Conceitos Iniciais (EJB)
Infra Estrutura do Container
EJB
Controle Transacional
Escalabilidade
Segurança
EJB
Session Bean
Config. de Dados
Ambiente Legados
Middleware
de
Mensagens
Globalcode Slide 16
17. Conceitos Iniciais (EJB)
• Tipos de EJB:
Session Bean
Representa um simples processo de negócio
Message-Driven Bean
Trabalha de forma assíncrona
Entity Bean
Representa um objeto persistente
Definido pela especificação JPA
Globalcode Slide 17
18. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 18
19. Session Bean
• Representa um processo de negócio (regra de negócio);
• Pode ser do tipo Stateless ou Stateful;
• Stateless
Não mantém estado de conversão com o cliente;
Não tem compromisso de manter uma sessão;
Não devemos utilizar atributos de negócio, somente atributos técnicos em
cache;
É um EJB econômico;
• Stateful
Mantém estado de conversão com o cliente;
Cada cliente terá uma instancia do EJB exclusiva, desde a criação até a
remoção;
Podemos ter atributos de negócio com métodos getters e setters;
Globalcode Slide 19
20. Session Bean
• Stateless (sem estado)
Período que uma instancia do
EJB fica “preso” a um cliente
Globalcode Slide 20
21. Session Bean
• Stateless (sem estado)
Globalcode Slide 21
22. Session Bean
• Stateful (com estado)
Período que uma
instancia do EJB fica
“preso” a um cliente
Globalcode Slide 22
24. Session Bean
• Clientes acessam o Session Bean através de uma interface Java
simples (POJI);
• Métodos (serviços) são publicados através desta interface;
• A interface deve ser implementada pela classe do Bean;
• Tipos de Interfaces
Local (@Local)
Somente acesso local (mesma JVM);
Cliente pode ser um componente Web ou outro EJB;
Localização não é transparente (não suporta clusterização).
Remota (@Remote)
Suporta acesso remoto (fora da JVM);
Cliente pode ser um componente Web, outro EJB ou aplicação desktop;
Transparência de localização (suporta clusterização).
Globalcode Slide 24
26. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 26
27. Message-Driven Bean (MDB)
• EJB que é acionado de forma assíncrona;
• Trabalha totalmente vinculado ao conceito de
utilização de um serviço de mensagens;
• Utiliza a API do Java Message Service (JMS) em
conjunto com Session Beans;
• Facilita a quebra de acoplamento entre o cliente e o
destino;
• Serviços de mensagens introduzem novos conceitos de
arquiteturas e aumenta a confiabilidade da solução;
Globalcode Slide 27
28. Message-Driven Beans (MDB)
• Vejamos o comparativo de uma chamada síncrona, e uma
chamada assíncrona utilizando um serviço de mensagens
Síncrono Assíncrono
Globalcode Slide 28
29. Message-Driven Beans (MDB)
• Existem dois tipos de destinos JMS
Point-to-point (queue): uma mensagem enviada para a fila será consumida
apenas por um cliente;
Publish-subscriber (topic): uma mensagem pode ser recepcionada por
múltiplos clientes;
Globalcode Slide 29
30. Message-Driven Beans (MDB)
• MDB fica anexado a uma fila ou tópico;
• Ao receber uma mensagem, o EJB será acionado para consumir a
mensagem, o container chama o método onMessage(...) do EJB;
• Vantagens:
Limitar o número de EJBs consumidores, evitando super-consumo do servidor;
Requisições dos usuários são armazenadas em filas e processadas conforme
capacidade do servidor;
Globalcode Slide 30
32. Message-Driven Bean (MDB)
• Como enviar uma mensagem
Configurar um repositório de conexões;
Abrir uma nova conexão;
Criar uma sessão de envio;
Criar um produtor de mensagens
associado a um destino;
Criar uma nova mensagem;
Solicitar ao produtor enviar a
mensagem para o destino associado.
Globalcode Slide 32
34. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 34
35. Java Persistence API
• Primeira especificação (padrão) de mapeamento de
objetos Java para base de dados relacional
Integração com outros frameworks
Hibernate é uma implementação de JPA
TopLink Essencials é uma implementação de JPA (RI)
• POJO (Plain Old Java Objects) Entidades
Mapeamento via metadados (annotation Java 5)
• Pode ser utilizado fora de containres EJBs (ligthweigth
container)
• Uso de injeção de dependência ao invés de lookups JNDI
Globalcode Slide 35
42. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 42
43. Injeção de Dependência
• Mecanismo de “injeção” de recursos necessários a um
componente de forma automática
Sem a presença de instruções explícitas para acessar o
recurso
• Exemplo:
O componente de negócios A depende do componente de
negócios B e do pool de conexões C.
B
A
C
Globalcode Slide 43
44. Injeção de Dependência
• Sem injeção de dependência:
Código fonte do componente A contém instruções para
“buscar” o componente B e o recurso C.
lookups
Serviço de Nomes
A
“ejb/componenteB”
“jdbc/dataSourceC”
B
C
Globalcode Slide 44
46. Injeção de Dependência
• Com injeção de dependência
Código do componente A não busca recursos e outros
componentes
Devemos declarar as dependências de componentes e
recursos nos atributos ou métodos setters do componente A
Container (Java EE) interpreta as dependências declaradas no
componente A e “injeta” os recursos e componentes
necessários
Globalcode Slide 46
47. Injeção de Dependência
class ComponenteA {
@EJB(name=“ejb/componenteB”) InterfaceB b;
@Resource(name=“jdbc/dataSourceC”) DataSource c;
}
injeção
Serviço de Nomes
A
“ejb/componenteB”
“jdbc/dataSourceC”
B
C
Globalcode Slide 47
49. Injeção de Dependência
Quem pode receber injeção ?
EJB, Interceptor
Servlet, Filter, *Listener, JSP Tag Handler
JSF Managed Beans
Endpoints JAX-WS e Handlers
O que pode ser injetado ?
Referências a EJBs e a Web Services
DataSource JDBC
Destination e ConnectionFactory JMS
UserTransaction
EntityManager (JPA)
Globalcode Slide 49
50. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 50
51. Callback Methods
• Anotações para tratamento de eventos nas fases do ciclo de
vida dos EJBs;
• Gerenciados pelo container Java EE;
• Substitui os antigos métodos definidos nas interfaces do EJB
2.x e implementados pela classe EJB;
@PostConstruct
Após o container criar uma nova instância de um EJB
@PrePassivate
Imediatamente antes do EJB sofrer o processo de passivação
@PostActivate
Imediatamente depois do EJB sofrer o processo de ativação
@PreDestroy
Antes do EJB ser destruído pelo container
Globalcode Slide 51
53. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 53
54. Transações
• São unidades de trabalho com propriedades ACID
Atomicidade
Consistência
Isolamento
Durabilidade
• São gerenciadas pelo container EJB (JTA)
• Transações nos EJB podem ser
Container Managed Transaction (CMT) - (default)
Definida declarativamente
Bean Managed Transaction (BMT)
Programada através UserTransaction API
Globalcode Slide 54
55. Transações
• Configurações Transacionais para CMT
Required (default)
Sempre deve rodar dentro de uma transação
RequiresNew
Sempre deve rodar dentro de sua própria transação
Mandatory
Deve ser chamado dentro de uma transação já iniciada
Supports
Utiliza transação somente se uma transação já estiver acontecendo
Not Supported
Executa sem nenhuma transação
Never
Não poderá ser executado caso esteja acontecendo uma transação
Globalcode Slide 55
56. Transações
• Exemplo de Utilização de CMT
Globalcode Slide 56
57. Transações
• Exemplo de Utilização de BMT
Globalcode Slide 57
58. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 58
59. Segurança
• Java EE suporta todos os níveis de segurança;
• Utiliza o Java Authentication and Autorization Service (JAAS);
• Consiste no mecanismo de autenticação e autorização de
usuários, baseado em uma identidade e roles (perfil de acesso)
associados.
Globalcode Slide 59
60. Segurança
• Exemplo de Verificações de Segurança Declarativa
Globalcode Slide 60
61. Segurança
• Exemplo de Verificações de Segurança Programática
Globalcode Slide 61
62. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 62
63. Interceptors
• Novidade introduzida com o EJB 3.0;
• Permite que um código customizado seja aplicado para um EJB;
• Utiliza conceitos de programação orientada à aspectos (AOP);
• Intercepta a chamada do método do EJB para executar um
código intermediário;
• Utiliza anotações plugáveis nos EJBs;
• Podem ser configurados no próprio Bean ou em classes
externas;
• Exemplos de utilização
Auditoria;
Logging;
Segurança customizada;
Globalcode Slide 63
64. Interceptors
• Exemplo de Classe Interceptor
Globalcode Slide 64
65. Interceptors
• Exemplo de Configuração para Interceptação
Globalcode Slide 65
66. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 66
67. Timers
• Desde a versão 1.4 foi criado o serviço de timer para os
componentes EJB;
• Permite a programação de tarefas para serem executadas em
um determinado horário (processos agendados);
• Equivalente a CRONTAB, Quartz, etc;
• É gerenciado pelo container Java EE;
• Os tipos de agendamentos suportados são:
Tarefa para execução única (one-shot);
Tarefas periódicas com taxa fixa (fixed-rate);
• Exemplos de utilização de agendamento
Realizar backups periódicos;
Rodar a folha de pagamento;
Enviar e-mails de expiração de senhas para usuários.
Globalcode Slide 67
68. Timers
• Para criar o agendamento, o EJB deve se registrar no serviço de
timer, criando um novo timer;
• Além disto o EJB precisa definir um método Timeout
responsável por realizar a executação da tafera (utilizando
@Timeout);
• O serviço de timer irá gerenciar o agendamento, e uma vez que
identifique o target, ele deverá chamar o método responsável
pela execução da tarefa.
Globalcode Slide 68
69. Timer
• Exemplo de EJB Timer
Globalcode Slide 69
70. Agenda
Plataforma Java EE
Conceitos Iniciais (EJB)
Session Bean
Message-Driven Bean (MDB)
Java Persistence API (JPA)
Serviços Disponíveis
Injeção de Dependência
Callback Methods
Transações
Segurança
Interceptors
Timers
Conclusões
Perguntas e Respostas
Globalcode Slide 70
71. Conclusões
Problemas das especificações EJB < 3.0
• Muitas Interfaces ia
• Interface Home Remota e Local
c
ra
• Interfaces de Ciclo de Vida
c
• SessionBean ro
• EntityBean u
• MessageDrivenBean
B
lta
• Interface S.E.I. (Web Service JAX-RPC)
ADescriptors
• Deployment
Globalcode Slide 71
72. Conclusões
Objetivos da especificação JSR-220
• Simplificar o trabalho do desenvolvedor
d e
• Defaults programáticos
id a
• Meta-dados = Annotations javax.ejb.*
iv
• Configuration by Exception t
• Injeção de Dependência dmenos
u lookup )
•
ro(
Menos Interfaces Obrigatórias
• Interfaces Home
P
• Interfaces de
a isciclo de vida
M
Globalcode Slide 72
73. Conclusões
• EJB’s:
Componentes distribuídos que podem rodar em vários
servidores;
Clustering;
Persistência automática utilizando JPA;
Suporte transacional;
Segurança declarativa;
Programação AOP;
Serviços de agendamento de tarefas;
Tunning de Threads e entidades de banco;
Otimização de memória e threads;
• E você ainda esta pensando se vale a pena?
Globalcode Slide 73