SlideShare a Scribd company logo
1 of 46
Download to read offline
Presente e Futuro:
Java EE.next()
Bruno Borges
Oracle Product Manager e Java Evangelist
blogs.oracle.com/brunoborges
@brunoborges
The preceding is intended to outline our general product direction. It is
intended for information purposes only, and may not be incorporated
into any contract. It is not a commitment to deliver any material, code,
or functionality, and should not be relied upon in making purchasing
decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole
discretion of Oracle.

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 6
10 Dezembro, 2009

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 6 – Estatísticas

 50+ Milhões de Downloads de Componentes Java EE 6
 #1 Escolha para Desenvolvedores Enterprise
 #1 Plataforma de Desenvolvimento de Aplicações
 Implementação mais Rápida de uma versão do Java EE

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Top Ten Features in Java EE 6

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

EJB packaging in a WAR
Type-safe dependency injection
Optional deployment descriptors (web.xml, faces-config.xml)
JSF standardizing on Facelets
One class per EJB
Servlet and CDI extension points
CDI Events
EJBContainer API
Cron-based @Schedule
Web Profile

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Scope
JSR 342
 Developer Productivity
– Less Boilerplate
– Richer Functionality
– More Defaults

 HTML5 Support
– WebSocket
– JSON
– HTML5 Forms

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Themes





 Batch Applications
 Concurrency Utilities
 Simplified JMS and
Compatibility

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

WebSocket
JSON Processing
Servlet 3.1 NIO
REST
HTML5-Friendly
Markup






More annotated POJOs
Less boilerplate code
Cohesive integrated platform
Default resources
WebSockets

Java EE 7 for Next Generation Applications

Deliver HTML5 Dynamic Scalable Apps

 Reduce response time with low latency data exchange using WebSockets
 Simplify data parsing for portable applications with standard JSON support
 Deliver asynchronous, scalable, high performance RESTful Services
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 7 for the Developer
110101011101010011000101001001010001
PRODUCTIVITY
011001011010010011010010010100100001
001010100111010010110010101001011010
010010100100001001010100111010011101
010111010100110001010010010100010110
010110100100110100100101001000010010
101001110100101100101010010110100100
101001000010010101001110100100110101

Increased Developer Productivity

 Simplify application architecture with a cohesive integrated platform
 Increase efficiency with reduced boiler-plate code and broader use of annotations
 Enhance application portability with standard RESTful web service client support

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 7 for the Enterprise
Scaling to the Most Demanding Requirements

 Break down batch jobs into manageable chunks for



Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

uninterrupted OLTP performance
Easily define multithreaded concurrent tasks for
improved scalability
Simplify application integration with standard Java
Messaging Service interoperability
Java EE 7 JSRs
CDI
Extensions

JSF 2.2,
JSP 2.3,
EL 3.0

Web
Fragments

JAX-RS 2.0,
JAX-WS 2.2

JSON 1.0

WebSocket
1.0

Servlet 3.1

CDI 1.1

Interceptors
1.2, JTA 1.2

Common
Annotations 1.1

EJB 3.2

Managed Beans 1.0

JPA 2.1

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

JMS 2.0

Concurrency 1.0

JCA 1.7

Batch 1.0
Top 10 Features Java EE 7
 WebSocket client/server endpoints
 Batch Applications
 JSON Processing
 Concurrency Utilities
 Simplified JMS API
 @Transactional and @TransactionScoped!
 JAX-RS Client API
 Default Resources
 More annotated POJOs
 Faces Flow
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for WebSocket 1.0
Annotated Endpoint
import javax.websocket.*;
@ServerEndpoint("/hello")
public class HelloBean {
@OnMessage
public String sayHello(String name) {
return “Hello “ + name;
}
}

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for WebSocket 1.0
Chat Server
@ServerEndpoint("/chat")
public class ChatBean {
static Set<Session> peers = Collections.synchronizedSet(…);
@OnOpen
public void onOpen(Session peer) {peers.add(peer);}
@OnClose
public void onClose(Session peer) {peers.remove(peer);}
@OnMessage
public void message(String message, Session client) {
peers.forEach(peer -> peer.getRemote().sendObject(message);
}
}
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for JSON Processing 1.0
 API to parse and generate JSON
 Streaming API
– Low-level, efficient way to parse/generate JSON
– Provides pluggability for parsers/generators

 Object Model API
– Simple, easy-to-use high-level API
– Implemented on top of Streaming API

 Binding JSON to Java objects forthcoming
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for JSON Processing 1.0
Streaming API – JsonParser
{
"firstName": "John", "lastName": "Smith", "age": 25,
"phoneNumber": [
{ "type": "home", "number": "212 555-1234" },
{ "type": "fax", "number": "646 555-4567" }
]
}
Iterator<Event> it = parser.iterator();
Event event = it.next();

// START_OBJECT

event = it.next();

// KEY_NAME

event = it.next();

// VALUE_STRING

String name = parser.getString();

// "John”

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Batch Applications 1.0
 Suited for non-interactive, bulk-oriented and

long-running tasks
 Computationally intensive
 Can execute sequentially/parallel
 May be initiated
– Adhoc
– Scheduled
 No scheduling APIs included

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Batch Applications 1.0
 Job: Batch process
 Step: Independent, sequential phase of job
– Reader, Processor, Writer

 Job Operator: Manage batch processing
 Job Repository: Metadata for jobs

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Batch Applications 1.0
Job Specification Language – Chunked Step
<step id=”sendStatements”>
…implements ItemReader {
<chunk reader ref=”accountReader” public Object readItem() {
processor ref=”accountProcessor”
// read account using JPA
writer ref=”emailWriter”
}
chunk-size=”10” />
</step>
…implements ItemProcessor {
Public Object processItems(Object account) {
// read Account, return Statement
}
…implements ItemWriter {
public void writeItems(List accounts) {
// use JavaMail to send email
}
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Concurrency Utilities for Java EE 1.0
 Provide asynchronous capabilities to Java EE

application components
– Without compromising container integrity

 Extension of Java SE Concurrency Utilities API (JSR

166)
 Support simple (common) and advanced concurrency
patterns

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Concurrency Utilities for Java EE 1.0
 Provide 4 managed objects
– ManagedExecutorService
– ManagedScheduledExecutorService
– ManagedThreadFactory
– ContextService

 Context propagation
 Task event notifications
 Transactions
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Concurrency Utilities for Java EE 1.0
Submit Tasks to ManagedExecutorService using JNDI
public class TestServlet extends HTTPServlet {
@Resource(name=“concurrent/BatchExecutor”)
ManagedExecutorService executor;
Future future = executor.submit(new MyTask());
class MyTask implements Runnable {
public void run() {
. . . // task logic
}
}
}

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for RESTful Web Services 2.0
 Client API
 Message Filters and Entity Interceptors
 Asynchronous Processing – Server and Client
 Common Configuration

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java API for RESTful Web Services 2.0
Client API

// Get instance of Client
Client client = ClientBuilder.newClient();
// Get customer name for the shipped products
String name = client.target(“../orders/{orderId}/customer”)
.resolveTemplate(”orderId", ”10”)
.queryParam(”shipped", ”true”)
.request()
.get(String.class);

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java Message Service 2.0
 Simplified API
– Less verbose
– Reduced boilerplate code
– Resource injection
– Try-with-resources for Connection, Session, etc.

 Both in Java EE and SE

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java Message Service 2.0

Sending a Message using JMS 1.1
@Resource(lookup = "myConnectionFactory”)
ConnectionFactory connectionFactory;
@Resource(lookup = "myQueue”)
Queue myQueue;
public void sendMessage (String payload) {
Connection connection = null;
try {
connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer messageProducer = session.createProducer(myQueue);
TextMessage textMessage = session.createTextMessage(payload);
messageProducer.send(textMessage);
} catch (JMSException ex) {
//. . .
} finally {
if (connection != null) {
try {
connection.close();
} catch (JMSException ex) {
//. . .
}
}
}
}

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Application Server
Specific Resources

Boilerplate Code

Exception Handling
Java Message Service 2.0

Sending message using JMS 2.0
@Inject
JMSContext context;
@Resource(lookup = "java:global/jms/demoQueue”)
Queue demoQueue;
public void sendMessage(String payload) {
context.createProducer().send(demoQueue, payload);
}

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Bean Validation 1.1
 Alignment with Dependency Injection
 Method-level validation
– Constraints on parameters and return values
– Check pre-/post-conditions

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Bean Validation 1.1

Method Parameter and Result Validation
public void placeOrder(
@NotNull String productName,
Built-in
@NotNull @Max(“10”) Integer quantity,
@Customer String customer) {
Custom
//. . .
}
@Future
public Date getAppointment() {
//. . .
}
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java Persistence API 2.1
 Schema Generation
– javax.persistence.schema-generation.* properties

 Unsynchronized Persistence Contexts
 Bulk update/delete using Criteria
 User-defined functions using FUNCTION
 Stored Procedure Query

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Servlet 3.1
 Non-blocking I/O
 Protocol Upgrade
 Security Enhancements
– <deny-uncovered-http-methods>: Deny request to HTTP

methods not explicitly covered

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Servlet 3.1
Non-blocking IO - Traditional
public class TestServlet extends HttpServlet
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
ServletInputStream input = request.getInputStream();
byte[] b = new byte[1024];
int len = -1;
while ((len = input.read(b)) != -1) {
. . .
}
}
}
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Servlet 3.1
Non-blocking I/O: doGet Code Sample
AsyncContext context = request.startAsync();
ServletInputStream input = request.getInputStream();
input.setReadListener(
new MyReadListener(input, context));

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Servlet 3.1
Non-blocking I/O: MyReadListener Code Sample
@Override
public void onDataAvailable() {
try {
StringBuilder sb = new StringBuilder();
int len = -1;
byte b[] = new byte[1024];
while (input.isReady() && (len = input.read(b)) != -1) {
String data = new String(b, 0, len);
System.out.println("--> " + data);
}
} catch (IOException ex) {
. . .
}
}
. . .
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
JavaServer Faces 2.2
 Faces Flow
 Resource Library Contracts
 HTML5 Friendly Markup Support
– Pass through attributes and elements

 Cross Site Request Forgery Protection
 Loading Facelets via ResourceHandler
 File Upload Component

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java Transaction API 1.2
 @Transactional: Define transaction boundaries on

CDI managed beans
 @TransactionScoped: CDI scope for bean instances
scoped to the current JTA transaction

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Novas Possibilidades com Java EE 7
 Camada Web
 100% server-side
– JSF
 100% client-side
– JAX-RS + WebSockets + (Angular.JS)
 Híbrido
– Utilize o que achar conveniente, e melhor, para

cada caso da aplicação
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Novas Possibilidades com Java EE 7
 Camada Back-end
 Java EE Web Profile
– EJB3 Lite + CDI + JTA + JPA
 Java EE Full Profile
– WebP + JMS + JCA + Batch

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 7 Implementation

4.0

glassfish.org
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Java EE 8 and Beyond

Standards-based cloud programming model
• Deliver cloud architecture
• Multi tenancy for SaaS
applications
• Incremental delivery of JSRs
• Modularity based on Jigsaw

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

NoSQL

Storage
JSON-B
Modularity

Multitenancy

Java EE 7
Cloud
PaaS
Enablement

Thin Server
Architecture
Adopt-a-JSR
Participating JUGs

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Call to Action
•
•
•
•
•

Specs: javaee-spec.java.net
Implementation: glassfish.org
The Aquarium: blogs.oracle.com/theaquarium
Adopt a JSR: glassfish.org/adoptajsr
NetBeans: wiki.netbeans.org/JavaEE7

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Perguntas?

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
OBRIGADO!
@brunoborges
blogs.oracle.com/brunoborges

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

More Related Content

What's hot

Full Stack Reactive with React and Spring WebFlux - SpringOne 2018
Full Stack Reactive with React and Spring WebFlux - SpringOne 2018Full Stack Reactive with React and Spring WebFlux - SpringOne 2018
Full Stack Reactive with React and Spring WebFlux - SpringOne 2018Matt Raible
 
Gerenciamento de estado no Angular com NgRx
Gerenciamento de estado no Angular com NgRxGerenciamento de estado no Angular com NgRx
Gerenciamento de estado no Angular com NgRxLoiane Groner
 
Using React with Grails 3
Using React with Grails 3Using React with Grails 3
Using React with Grails 3Zachary Klein
 
Spring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerToshiaki Maki
 
Introduction to Retrofit and RxJava
Introduction to Retrofit and RxJavaIntroduction to Retrofit and RxJava
Introduction to Retrofit and RxJavaFabio Collini
 
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugToshiaki Maki
 
Agile Development with OSGi
Agile Development with OSGiAgile Development with OSGi
Agile Development with OSGiMatt Stine
 
Reactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-JavaReactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-JavaKasun Indrasiri
 
Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018
Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018
Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018Chris Gillum
 
Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Paco de la Cruz
 
Azure Durable Functions (2019-04-27)
Azure Durable Functions (2019-04-27)Azure Durable Functions (2019-04-27)
Azure Durable Functions (2019-04-27)Paco de la Cruz
 
Reactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJavaReactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJavaMatt Stine
 
Azure Durable Functions
Azure Durable FunctionsAzure Durable Functions
Azure Durable FunctionsKarthikeyan VK
 
Apollo. The client we deserve
Apollo. The client we deserveApollo. The client we deserve
Apollo. The client we deserveYuri Nezdemkovski
 
A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...Alessandro Martellucci
 
Reactive Microservice And Spring5
Reactive Microservice And Spring5Reactive Microservice And Spring5
Reactive Microservice And Spring5Jay Lee
 
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)Paco de la Cruz
 
Durable functions 2.0 (2019-10-10)
Durable functions 2.0 (2019-10-10)Durable functions 2.0 (2019-10-10)
Durable functions 2.0 (2019-10-10)Paco de la Cruz
 
Angular 2 Migration - JHipster Meetup 6
Angular 2 Migration - JHipster Meetup 6Angular 2 Migration - JHipster Meetup 6
Angular 2 Migration - JHipster Meetup 6William Marques
 

What's hot (20)

Full Stack Reactive with React and Spring WebFlux - SpringOne 2018
Full Stack Reactive with React and Spring WebFlux - SpringOne 2018Full Stack Reactive with React and Spring WebFlux - SpringOne 2018
Full Stack Reactive with React and Spring WebFlux - SpringOne 2018
 
Gerenciamento de estado no Angular com NgRx
Gerenciamento de estado no Angular com NgRxGerenciamento de estado no Angular com NgRx
Gerenciamento de estado no Angular com NgRx
 
Using React with Grails 3
Using React with Grails 3Using React with Grails 3
Using React with Grails 3
 
Spring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & Micrometer
 
Introduction to Retrofit and RxJava
Introduction to Retrofit and RxJavaIntroduction to Retrofit and RxJava
Introduction to Retrofit and RxJava
 
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
 
Agile Development with OSGi
Agile Development with OSGiAgile Development with OSGi
Agile Development with OSGi
 
Angular 2 observables
Angular 2 observablesAngular 2 observables
Angular 2 observables
 
Reactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-JavaReactive Programming in Java 8 with Rx-Java
Reactive Programming in Java 8 with Rx-Java
 
Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018
Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018
Advanced Durable Functions - Serverless Meetup Tokyo - Feb 2018
 
Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)Azure Durable Functions (2018-06-13)
Azure Durable Functions (2018-06-13)
 
Azure Durable Functions (2019-04-27)
Azure Durable Functions (2019-04-27)Azure Durable Functions (2019-04-27)
Azure Durable Functions (2019-04-27)
 
Reactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJavaReactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJava
 
Azure Durable Functions
Azure Durable FunctionsAzure Durable Functions
Azure Durable Functions
 
Apollo. The client we deserve
Apollo. The client we deserveApollo. The client we deserve
Apollo. The client we deserve
 
A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...A realtime infrastructure for Android apps: Firebase may be what you need..an...
A realtime infrastructure for Android apps: Firebase may be what you need..an...
 
Reactive Microservice And Spring5
Reactive Microservice And Spring5Reactive Microservice And Spring5
Reactive Microservice And Spring5
 
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
Serverless APIs, the Good, the Bad and the Ugly (2019-09-19)
 
Durable functions 2.0 (2019-10-10)
Durable functions 2.0 (2019-10-10)Durable functions 2.0 (2019-10-10)
Durable functions 2.0 (2019-10-10)
 
Angular 2 Migration - JHipster Meetup 6
Angular 2 Migration - JHipster Meetup 6Angular 2 Migration - JHipster Meetup 6
Angular 2 Migration - JHipster Meetup 6
 

Viewers also liked

Introducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaIntroducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaLoiane Groner
 
Desenvolvimento mobile
Desenvolvimento mobileDesenvolvimento mobile
Desenvolvimento mobileElton Minetto
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Campus Party Brasil 2017: Angular 2 #cpbr10
Campus Party Brasil 2017: Angular 2 #cpbr10Campus Party Brasil 2017: Angular 2 #cpbr10
Campus Party Brasil 2017: Angular 2 #cpbr10Loiane Groner
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysLoiane Groner
 
Ionic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocksIonic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocksJuarez Filho
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Novidades Angular 4.x e CLI
Novidades Angular 4.x e CLI Novidades Angular 4.x e CLI
Novidades Angular 4.x e CLI Loiane Groner
 
Top Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big EventTop Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big EventChromeInfo Technologies
 

Viewers also liked (14)

Introducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaIntroducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na pratica
 
Desenvolvimento mobile
Desenvolvimento mobileDesenvolvimento mobile
Desenvolvimento mobile
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
 
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com JavaExercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
Exercicios Vetores (Arrays) - Estruturas de dados e algoritmos com Java
 
Campus Party Brasil 2017: Angular 2 #cpbr10
Campus Party Brasil 2017: Angular 2 #cpbr10Campus Party Brasil 2017: Angular 2 #cpbr10
Campus Party Brasil 2017: Angular 2 #cpbr10
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
 
Ionic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocksIonic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocks
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Novidades Angular 4.x e CLI
Novidades Angular 4.x e CLI Novidades Angular 4.x e CLI
Novidades Angular 4.x e CLI
 
The Programmer
The ProgrammerThe Programmer
The Programmer
 
Paris ML meetup
Paris ML meetupParis ML meetup
Paris ML meetup
 
Top Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big EventTop Rumors About Apple March 21 Big Event
Top Rumors About Apple March 21 Big Event
 

Similar to Presente e Futuro: Java EE.next()

OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7Bruno Borges
 
Java EE7
Java EE7Java EE7
Java EE7Jay Lee
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOFglassfish
 
Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Arun Gupta
 
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...jaxLondonConference
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Jagadish Prasath
 
Java EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersJava EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersBruno Borges
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Bruno Borges
 
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...Dr. Wilfred Lin (Ph.D.)
 
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)jeckels
 
Whats Next for JCA?
Whats Next for JCA?Whats Next for JCA?
Whats Next for JCA?Fred Rowe
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Reza Rahman
 
112815 java ee8_davidd
112815 java ee8_davidd112815 java ee8_davidd
112815 java ee8_daviddTakashi Ito
 
Primavera integration possibilities technical overview ppt
Primavera integration possibilities   technical overview pptPrimavera integration possibilities   technical overview ppt
Primavera integration possibilities technical overview pptp6academy
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8PT.JUG
 

Similar to Presente e Futuro: Java EE.next() (20)

OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7
 
Java EE7
Java EE7Java EE7
Java EE7
 
Java ee7 1hour
Java ee7 1hourJava ee7 1hour
Java ee7 1hour
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5Java EE 7: Boosting Productivity and Embracing HTML5
Java EE 7: Boosting Productivity and Embracing HTML5
 
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
 
Java EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c DevelopersJava EE 7 for WebLogic 12c Developers
Java EE 7 for WebLogic 12c Developers
 
Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7Building Java Desktop Apps with JavaFX 8 and Java EE 7
Building Java Desktop Apps with JavaFX 8 and Java EE 7
 
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
 
Vaibhav_Jain
Vaibhav_JainVaibhav_Jain
Vaibhav_Jain
 
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
Oracle Coherence Strategy and Roadmap (OpenWorld, September 2014)
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
 
Java EE for the Cloud
Java EE for the CloudJava EE for the Cloud
Java EE for the Cloud
 
Goutham_DevOps
Goutham_DevOpsGoutham_DevOps
Goutham_DevOps
 
Whats Next for JCA?
Whats Next for JCA?Whats Next for JCA?
Whats Next for JCA?
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
 
112815 java ee8_davidd
112815 java ee8_davidd112815 java ee8_davidd
112815 java ee8_davidd
 
Primavera integration possibilities technical overview ppt
Primavera integration possibilities   technical overview pptPrimavera integration possibilities   technical overview ppt
Primavera integration possibilities technical overview ppt
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8
 

More from Bruno Borges

Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesBruno Borges
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on KubernetesBruno Borges
 
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX AppsFrom GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX AppsBruno Borges
 
Making Sense of Serverless Computing
Making Sense of Serverless ComputingMaking Sense of Serverless Computing
Making Sense of Serverless ComputingBruno Borges
 
Visual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring DevelopersVisual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring DevelopersBruno Borges
 
Taking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure CloudTaking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure CloudBruno Borges
 
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...Bruno Borges
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemBruno Borges
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemBruno Borges
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudBruno Borges
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXBruno Borges
 
Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?Bruno Borges
 
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Bruno Borges
 
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Bruno Borges
 
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]Bruno Borges
 
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Bruno Borges
 
Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]Bruno Borges
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudBruno Borges
 
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXTweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXBruno Borges
 
Integrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSocketsIntegrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSocketsBruno Borges
 

More from Bruno Borges (20)

Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes
 
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX AppsFrom GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
 
Making Sense of Serverless Computing
Making Sense of Serverless ComputingMaking Sense of Serverless Computing
Making Sense of Serverless Computing
 
Visual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring DevelopersVisual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring Developers
 
Taking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure CloudTaking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure Cloud
 
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFX
 
Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?
 
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
 
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
 
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
 
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
 
Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXTweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
 
Integrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSocketsIntegrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSockets
 

Recently uploaded

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Recently uploaded (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

Presente e Futuro: Java EE.next()

  • 1. Presente e Futuro: Java EE.next() Bruno Borges Oracle Product Manager e Java Evangelist blogs.oracle.com/brunoborges @brunoborges
  • 2. The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 3. Java EE 6 10 Dezembro, 2009 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 4. Java EE 6 – Estatísticas  50+ Milhões de Downloads de Componentes Java EE 6  #1 Escolha para Desenvolvedores Enterprise  #1 Plataforma de Desenvolvimento de Aplicações  Implementação mais Rápida de uma versão do Java EE Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 5. Top Ten Features in Java EE 6 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. EJB packaging in a WAR Type-safe dependency injection Optional deployment descriptors (web.xml, faces-config.xml) JSF standardizing on Facelets One class per EJB Servlet and CDI extension points CDI Events EJBContainer API Cron-based @Schedule Web Profile Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 6. Java EE 7 Scope JSR 342  Developer Productivity – Less Boilerplate – Richer Functionality – More Defaults  HTML5 Support – WebSocket – JSON – HTML5 Forms Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 7. Java EE 7 Themes       Batch Applications  Concurrency Utilities  Simplified JMS and Compatibility Copyright © 2013, Oracle and/or its affiliates. All rights reserved. WebSocket JSON Processing Servlet 3.1 NIO REST HTML5-Friendly Markup     More annotated POJOs Less boilerplate code Cohesive integrated platform Default resources
  • 8. WebSockets Java EE 7 for Next Generation Applications Deliver HTML5 Dynamic Scalable Apps  Reduce response time with low latency data exchange using WebSockets  Simplify data parsing for portable applications with standard JSON support  Deliver asynchronous, scalable, high performance RESTful Services Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 9. Java EE 7 for the Developer 110101011101010011000101001001010001 PRODUCTIVITY 011001011010010011010010010100100001 001010100111010010110010101001011010 010010100100001001010100111010011101 010111010100110001010010010100010110 010110100100110100100101001000010010 101001110100101100101010010110100100 101001000010010101001110100100110101 Increased Developer Productivity  Simplify application architecture with a cohesive integrated platform  Increase efficiency with reduced boiler-plate code and broader use of annotations  Enhance application portability with standard RESTful web service client support Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 10. Java EE 7 for the Enterprise Scaling to the Most Demanding Requirements  Break down batch jobs into manageable chunks for   Copyright © 2013, Oracle and/or its affiliates. All rights reserved. uninterrupted OLTP performance Easily define multithreaded concurrent tasks for improved scalability Simplify application integration with standard Java Messaging Service interoperability
  • 11. Java EE 7 JSRs CDI Extensions JSF 2.2, JSP 2.3, EL 3.0 Web Fragments JAX-RS 2.0, JAX-WS 2.2 JSON 1.0 WebSocket 1.0 Servlet 3.1 CDI 1.1 Interceptors 1.2, JTA 1.2 Common Annotations 1.1 EJB 3.2 Managed Beans 1.0 JPA 2.1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. JMS 2.0 Concurrency 1.0 JCA 1.7 Batch 1.0
  • 12. Top 10 Features Java EE 7  WebSocket client/server endpoints  Batch Applications  JSON Processing  Concurrency Utilities  Simplified JMS API  @Transactional and @TransactionScoped!  JAX-RS Client API  Default Resources  More annotated POJOs  Faces Flow Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 13. Java API for WebSocket 1.0 Annotated Endpoint import javax.websocket.*; @ServerEndpoint("/hello") public class HelloBean { @OnMessage public String sayHello(String name) { return “Hello “ + name; } } Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 14. Java API for WebSocket 1.0 Chat Server @ServerEndpoint("/chat") public class ChatBean { static Set<Session> peers = Collections.synchronizedSet(…); @OnOpen public void onOpen(Session peer) {peers.add(peer);} @OnClose public void onClose(Session peer) {peers.remove(peer);} @OnMessage public void message(String message, Session client) { peers.forEach(peer -> peer.getRemote().sendObject(message); } } Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 15. Java API for JSON Processing 1.0  API to parse and generate JSON  Streaming API – Low-level, efficient way to parse/generate JSON – Provides pluggability for parsers/generators  Object Model API – Simple, easy-to-use high-level API – Implemented on top of Streaming API  Binding JSON to Java objects forthcoming Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 16. Java API for JSON Processing 1.0 Streaming API – JsonParser { "firstName": "John", "lastName": "Smith", "age": 25, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] } Iterator<Event> it = parser.iterator(); Event event = it.next(); // START_OBJECT event = it.next(); // KEY_NAME event = it.next(); // VALUE_STRING String name = parser.getString(); // "John” Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 17. Batch Applications 1.0  Suited for non-interactive, bulk-oriented and long-running tasks  Computationally intensive  Can execute sequentially/parallel  May be initiated – Adhoc – Scheduled  No scheduling APIs included Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 18. Batch Applications 1.0  Job: Batch process  Step: Independent, sequential phase of job – Reader, Processor, Writer  Job Operator: Manage batch processing  Job Repository: Metadata for jobs Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 19. Batch Applications 1.0 Job Specification Language – Chunked Step <step id=”sendStatements”> …implements ItemReader { <chunk reader ref=”accountReader” public Object readItem() { processor ref=”accountProcessor” // read account using JPA writer ref=”emailWriter” } chunk-size=”10” /> </step> …implements ItemProcessor { Public Object processItems(Object account) { // read Account, return Statement } …implements ItemWriter { public void writeItems(List accounts) { // use JavaMail to send email } Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 20. Concurrency Utilities for Java EE 1.0  Provide asynchronous capabilities to Java EE application components – Without compromising container integrity  Extension of Java SE Concurrency Utilities API (JSR 166)  Support simple (common) and advanced concurrency patterns Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 21. Concurrency Utilities for Java EE 1.0  Provide 4 managed objects – ManagedExecutorService – ManagedScheduledExecutorService – ManagedThreadFactory – ContextService  Context propagation  Task event notifications  Transactions Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 22. Concurrency Utilities for Java EE 1.0 Submit Tasks to ManagedExecutorService using JNDI public class TestServlet extends HTTPServlet { @Resource(name=“concurrent/BatchExecutor”) ManagedExecutorService executor; Future future = executor.submit(new MyTask()); class MyTask implements Runnable { public void run() { . . . // task logic } } } Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 23. Java API for RESTful Web Services 2.0  Client API  Message Filters and Entity Interceptors  Asynchronous Processing – Server and Client  Common Configuration Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 24. Java API for RESTful Web Services 2.0 Client API // Get instance of Client Client client = ClientBuilder.newClient(); // Get customer name for the shipped products String name = client.target(“../orders/{orderId}/customer”) .resolveTemplate(”orderId", ”10”) .queryParam(”shipped", ”true”) .request() .get(String.class); Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 25. Java Message Service 2.0  Simplified API – Less verbose – Reduced boilerplate code – Resource injection – Try-with-resources for Connection, Session, etc.  Both in Java EE and SE Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 26. Java Message Service 2.0 Sending a Message using JMS 1.1 @Resource(lookup = "myConnectionFactory”) ConnectionFactory connectionFactory; @Resource(lookup = "myQueue”) Queue myQueue; public void sendMessage (String payload) { Connection connection = null; try { connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer messageProducer = session.createProducer(myQueue); TextMessage textMessage = session.createTextMessage(payload); messageProducer.send(textMessage); } catch (JMSException ex) { //. . . } finally { if (connection != null) { try { connection.close(); } catch (JMSException ex) { //. . . } } } } Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Application Server Specific Resources Boilerplate Code Exception Handling
  • 27. Java Message Service 2.0 Sending message using JMS 2.0 @Inject JMSContext context; @Resource(lookup = "java:global/jms/demoQueue”) Queue demoQueue; public void sendMessage(String payload) { context.createProducer().send(demoQueue, payload); } Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 28. Bean Validation 1.1  Alignment with Dependency Injection  Method-level validation – Constraints on parameters and return values – Check pre-/post-conditions Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 29. Bean Validation 1.1 Method Parameter and Result Validation public void placeOrder( @NotNull String productName, Built-in @NotNull @Max(“10”) Integer quantity, @Customer String customer) { Custom //. . . } @Future public Date getAppointment() { //. . . } Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 30. Java Persistence API 2.1  Schema Generation – javax.persistence.schema-generation.* properties  Unsynchronized Persistence Contexts  Bulk update/delete using Criteria  User-defined functions using FUNCTION  Stored Procedure Query Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 31. Servlet 3.1  Non-blocking I/O  Protocol Upgrade  Security Enhancements – <deny-uncovered-http-methods>: Deny request to HTTP methods not explicitly covered Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 32. Servlet 3.1 Non-blocking IO - Traditional public class TestServlet extends HttpServlet protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ServletInputStream input = request.getInputStream(); byte[] b = new byte[1024]; int len = -1; while ((len = input.read(b)) != -1) { . . . } } } Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 33. Servlet 3.1 Non-blocking I/O: doGet Code Sample AsyncContext context = request.startAsync(); ServletInputStream input = request.getInputStream(); input.setReadListener( new MyReadListener(input, context)); Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 34. Servlet 3.1 Non-blocking I/O: MyReadListener Code Sample @Override public void onDataAvailable() { try { StringBuilder sb = new StringBuilder(); int len = -1; byte b[] = new byte[1024]; while (input.isReady() && (len = input.read(b)) != -1) { String data = new String(b, 0, len); System.out.println("--> " + data); } } catch (IOException ex) { . . . } } . . . Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 35. JavaServer Faces 2.2  Faces Flow  Resource Library Contracts  HTML5 Friendly Markup Support – Pass through attributes and elements  Cross Site Request Forgery Protection  Loading Facelets via ResourceHandler  File Upload Component Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 36. Java Transaction API 1.2  @Transactional: Define transaction boundaries on CDI managed beans  @TransactionScoped: CDI scope for bean instances scoped to the current JTA transaction Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 37. Novas Possibilidades com Java EE 7  Camada Web  100% server-side – JSF  100% client-side – JAX-RS + WebSockets + (Angular.JS)  Híbrido – Utilize o que achar conveniente, e melhor, para cada caso da aplicação Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 38. Novas Possibilidades com Java EE 7  Camada Back-end  Java EE Web Profile – EJB3 Lite + CDI + JTA + JPA  Java EE Full Profile – WebP + JMS + JCA + Batch Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 39. Java EE 7 Implementation 4.0 glassfish.org Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 40. Java EE 8 and Beyond Standards-based cloud programming model • Deliver cloud architecture • Multi tenancy for SaaS applications • Incremental delivery of JSRs • Modularity based on Jigsaw Copyright © 2013, Oracle and/or its affiliates. All rights reserved. NoSQL Storage JSON-B Modularity Multitenancy Java EE 7 Cloud PaaS Enablement Thin Server Architecture
  • 41. Adopt-a-JSR Participating JUGs Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 42. Call to Action • • • • • Specs: javaee-spec.java.net Implementation: glassfish.org The Aquarium: blogs.oracle.com/theaquarium Adopt a JSR: glassfish.org/adoptajsr NetBeans: wiki.netbeans.org/JavaEE7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 43. Perguntas? Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 44. OBRIGADO! @brunoborges blogs.oracle.com/brunoborges Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 45. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 46. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.