SlideShare a Scribd company logo
1 of 31
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Migrating from Applets to
Java Desktop Applications
Evolve your Applet-dependent website to a better and safer
distribution model with JavaFX Hybrid Desktop Applications
Bruno Borges
Principal Product Manager
Oracle Corp.
May, 2015
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following 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.
3
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Why are you still using Applets? A brief history check
The Future of Applets is tied to Browsers
Seamless Migrate from Applet/Browser to Java Desktop App
Hybrid JavaFX Desktop Applications
Distribution Models for Java Desktop App
1
2
3
4
5
4
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Why are you still using Applets?
A brief history check
5
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Applets used to do what browsers couldn’t
6
And provided easy distribution model for fully capable desktop applications
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Applets and Browsers these days
• HTML5, CSS3, Javascript… Browsers are well capable for most use cases
– 3D, Local storage, Canvas, Audio processing, etc
• Applets still exist for some reason
– Distribution model still interesting
• Install Java, hit a URL on the browser and you are ready to go
– Security requirements
– Communication with hardware devices in a “transparent” way
– Proprietary network protocols
– Advanced and specialized file transfer
– Local cryptography, desktop sharing, audio/video streaming, etc
7
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 8
Most banks in Brazil require 3-step verification
Example: Internet Banking Authentication Model
Segurança
Internet
Banking
Internet
Banking
Creden
tials
• User/Pass
• Bank Account ID
• SSN
Hard
ware
Token
• Hardware Auth Token
• Token Card
• SMS Token
Device
• Access Origin Check
• Singularity
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Why are you still using Applets? A brief history check.
The Future of Applets is tied to Browsers
Seamless Migrate from Applet/Browser to Java Desktop App
Hybrid JavaFX Desktop Applications
Distribution Models for Java Desktop App
1
2
3
4
5
9
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
The Future of Applets depend on Browsers
Browsers can, and already have showed signs to drop support on Applets
10
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
• Advantage
– Semi-transparent execution model
• Disadvantage
– Java “gratis” at java.com
• Highly Dependent
– Web Browsers
– Java Browser Plugin
– Operational Systems
• “Necessary Evil”
– Automatic Updates on Windows
11
Applets on Browsers – Current Access/Distribution Model
Web Browser
Your website
Java
Applets
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Applets on Browsers – 99.99% of cases
• Google Chrome
– NPAPI to be dropped in 2015
– As consequence, will drop support to execute Java Applets
• Mozilla Firefox
– Initially considered to drop support, but after community backfire decided to
continue supporting it, but disabled by default aka “Plugin Activation”
– User must manually allow execution through Firefox’s own security dialog
– Java will also ask depending the case, for execution permission
• In the end, it is up to browsers to allow/support execution of Applets
12
The usual and most common runtime environment for Applets
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Why are you still using Applets? A brief history check.
The Future of Applets is tied to Browsers
Seamless Migrate from Applet/Browser to Java Desktop App
Hybrid JavaFX Desktop Applications
Distribution Models for Java Desktop App
1
2
3
4
5
13
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Seamless Migrate from Applet/Browser
to Java Desktop App
You don’t want nor have to rewrite your solution! Reuse what you already have.
14
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 15
You may be already doing this, known as Hybrid Mobile Applications
From a Browser+Applet web application, to a Desktop
application with wrapped embedded website
+
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 16
You don’t have to shutdown your website+applet access model right away!
Keep Your Web Application. Distribute a New Access Model
Web Browser
Your website
Applets
Java Desktop Application
Embedded Browser
with your website
Libraries
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Browser and Applets, Desktop App and Libraries
• Web applications that depend on invisible Applets
– Javascript can be smart enough to communicate with Java if running on Embedded
Browser inside a Java Desktop application, while also working with legacy applets if
running on a browser
– Java code injects Java objects of legacy Applets features in the DOM tree of
embedded Java browser
• Web applications with visible Applets (AWT/Swing)
– These should be features from outside the embedded browser
• Example: file transfer feature as a popup (similar to Swing’s JDialog) from the Java desktop
application, while still being able to communicate with the page in embedded browser
17
Combining two access models while reusing code
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Why are you still using Applets? A brief history check.
The Future of Applets is tied to Browsers
Seamless Migrate from Applet/Browser to Java Desktop App
Hybrid JavaFX Desktop Applications
Distribution Models for Java Desktop App
1
2
3
4
5
18
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Hybrid JavaFX Desktop Applications
JavaFX Introduction and Resources
19
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 20
Hybrid JavaFX Desktop Application – Architecture
Windows Mac OS XLinux
Oracle JRE
JavaFX
Application
Embedded
Browser
Native UI
Controls
Native
Hardware
Access
HTML5, CSS3,
JavaScript part of
your application
(remote or local)
Native JavaFX or
Embedded Legacy
Swing Controls
Reuse your Java
libraries for hardware
integration (ie:
functionality from
legacy Applets)
Bundle the JRE with your
application for native
installers
One unified
desktop
application
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
• Advantage
– Controlled “web” environment
– Reuse your existing web application
– Reuse your existing Java libraries or UI
controls (JApplets)
• Highly Independent
– Java “gratis” or Oracle support contract
– Controlled Java updates
– Independent of 3rd-party browsers
(Firefox, Chrome, Safari, IE, etc)
21
New Access Model for your Web Application
Java Desktop Application
Embedded Browser
with your website
Legacy Applets and/or
New Rich Features, as
Libraries
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
JavaFX
• Java SE 8
– Bundled with new Javascript Engine: Nashorn
– Follows ECMAScript 262 v5.1
• JavaFX 8
– Supports embedded Java Swing components (migrate visual JApplets)
– WebView
• Support for HTML5 tags, CSS3, Javascript, and DOM tree
– WebEngine supports bi-directional calls between Java APIs and Javascript in
webpages loaded inside WebView
22
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
JavaFX 8 – Web Engine
• html5test.com
• acid3.acidtests.org
• webkit sunspider 0.9.1 test
23
Standards compatibility and performance analysis
Firefox 29: 244.8ms
Chrome 34: 259.8ms
JavaFX 8: 252.4ms
http://www.websocket.org/echo.html
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Program Agenda
Why are you still using Applets? A brief history check.
The Future of Applets is tied to Browsers
Seamless Migrate from Applet/Browser to Java Desktop App
Hybrid JavaFX Desktop Applications
Distribution Models for Java Desktop App
1
2
3
4
5
24
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Distribution Models for Java Desktop Apps
How to distribute your application to your users
25
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Before distributing, you must package it
• Tool name: javapackager (pka javafxpackager)
– Support on NetBeans out of the box
– Also as Apache Ant task
• Supported Installers
– Windows: EXE/MSI
– Mac OS X: DMG
– Linux: RPM/DEB
– Others: installer/image
26
Java tool to package your app and JRE on native installers
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Options of distribution models
• Applet and web application, on a browser
– This is where you are today
• Java Web Start
– Java Desktop application loaded off of browser. Security checks are kept
• Standalone: download links of native installers or the JAR file
– Native installers: user double click and install as desktop standalone application
– JAR file: user must have Java previously installed
• Appstores for General Purpose Desktops/Laptops
– Users are comfortable with this model, since it’s how they install apps on mobile
27
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Java Web Start
• Application files (JARs), like Applets, are hosted on website server
– User clicks on a link to load the application via JWS
– When remote JAR files are updated, JWS automatically updates on user’s computer
• With a Hybrid JavaFX Desktop application in place, this is the easiest model
to move forward before a full replacement, off of browsers
– Users will perceive as a “new window”
• Disadvantages
– Java must be installed prior to execution
– Developer must still keep up-to-date on new security Java updates, due to automatic
Java updates in some operational systems
28
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Download Link
• Provide users with a “Download” section on the website
– JAR download for reduced package size
• User must have Java installed
– Native installers per operational system
• JRE and application bundled into native installers for Windows/Mac/Linux
29
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Appstores for General Purpose Desktops/Laptops
• Publish the native installers (JRE+application bundled) on 3rd-party
appstores for PCs
– Decide which version of Java JRE is bundled. Won’t conflict with any other JRE
installed, or bundled with another application
– Keep control of when to upgrade the version of JRE bundled with the application
30
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 31
Comparison based on external users accessing the application from their own PCs
Differences between Distribution Models for the
Application Developer
Applet Web Start Download Appstore
Unnecessary to Have Java Previously Installed NO NO YES YES
Independent of Java Browser Plugin NO YES YES YES
Unaffected by Java “gratis” Auto Updates NO NO YES (1) YES
Unaffected by Java LiveConnect™ Constraints NO YES YES YES
Unaffected by Browsers Restrictions NO YES YES YES
Application Auto Update for Users OOTB YES YES NO YES
Has Control of Which Java Version Update NO NO YES YES
Has Control of Runtime Environment NO NO YES YES
(1) NO if user downloaded JAR file only, without bundled JRE
Migrating From Applets to Java Desktop Apps in JavaFX

More Related Content

What's hot

Chain of responsibility
Chain of responsibilityChain of responsibility
Chain of responsibilityShakil Ahmed
 
Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Javier Rubiano Quiroga
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de ClasesAdal Dg
 
Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCIgnacio Aular Reyes
 
Framework de programacion de paginas web
Framework de programacion de paginas webFramework de programacion de paginas web
Framework de programacion de paginas webGeraldyn De Sousa
 
오렌지6.0 교육자료
오렌지6.0 교육자료오렌지6.0 교육자료
오렌지6.0 교육자료Seok-joon Yun
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetesMoises Cruz
 
Static PIE, How and Why - Metasploit's new POSIX payload: Mettle
Static PIE, How and Why - Metasploit's new POSIX payload: MettleStatic PIE, How and Why - Metasploit's new POSIX payload: Mettle
Static PIE, How and Why - Metasploit's new POSIX payload: MettleBrent Cook
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Jose R. Hilera
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLSorey García
 
Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado Magyll
 
UML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxUML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxNwabueze Obioma
 
Oracle Forms Creation-List of Values (LOV)
Oracle Forms Creation-List of Values (LOV)Oracle Forms Creation-List of Values (LOV)
Oracle Forms Creation-List of Values (LOV)Sekhar Byna
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenariosUCATEBA
 
Diagramas de componentes exposicion martes
Diagramas de componentes exposicion  martesDiagramas de componentes exposicion  martes
Diagramas de componentes exposicion martesJackson Marshelo
 

What's hot (20)

Ejemplo Java Rmi
Ejemplo Java RmiEjemplo Java Rmi
Ejemplo Java Rmi
 
Chain of responsibility
Chain of responsibilityChain of responsibility
Chain of responsibility
 
Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1Arquitectura de objetos distribuidos 1
Arquitectura de objetos distribuidos 1
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de Clases
 
Calculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVCCalculadora Gráfica Java implementando el Patrón MVC
Calculadora Gráfica Java implementando el Patrón MVC
 
Framework de programacion de paginas web
Framework de programacion de paginas webFramework de programacion de paginas web
Framework de programacion de paginas web
 
오렌지6.0 교육자료
오렌지6.0 교육자료오렌지6.0 교육자료
오렌지6.0 교육자료
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
 
Static PIE, How and Why - Metasploit's new POSIX payload: Mettle
Static PIE, How and Why - Metasploit's new POSIX payload: MettleStatic PIE, How and Why - Metasploit's new POSIX payload: Mettle
Static PIE, How and Why - Metasploit's new POSIX payload: Mettle
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)Patrón de diseño Modelo-Vista-Controlador (MVC)
Patrón de diseño Modelo-Vista-Controlador (MVC)
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAML
 
Proxy design pattern
Proxy design patternProxy design pattern
Proxy design pattern
 
Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado Diagramas de Objetos, Clases y Estado
Diagramas de Objetos, Clases y Estado
 
Adapter Pattern
Adapter PatternAdapter Pattern
Adapter Pattern
 
UML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxUML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptx
 
Oracle Forms Creation-List of Values (LOV)
Oracle Forms Creation-List of Values (LOV)Oracle Forms Creation-List of Values (LOV)
Oracle Forms Creation-List of Values (LOV)
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenarios
 
Diagramas de componentes exposicion martes
Diagramas de componentes exposicion  martesDiagramas de componentes exposicion  martes
Diagramas de componentes exposicion martes
 
Modelo de requerimientos
Modelo de requerimientosModelo de requerimientos
Modelo de requerimientos
 

Viewers also liked

Embedding Web UIs in your Eclipse application
Embedding Web UIs in your Eclipse applicationEmbedding Web UIs in your Eclipse application
Embedding Web UIs in your Eclipse applicationBoris Bokowski
 
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
 
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
 
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
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014Ryan Cuprak
 
Oracle RAC on Extended Distance Clusters - Customer Examples
Oracle RAC on Extended Distance Clusters - Customer ExamplesOracle RAC on Extended Distance Clusters - Customer Examples
Oracle RAC on Extended Distance Clusters - Customer ExamplesMarkus Michalewicz
 
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
 
Oracle Flex ASM - What’s New and Best Practices by Jim Williams
Oracle Flex ASM - What’s New and Best Practices by Jim WilliamsOracle Flex ASM - What’s New and Best Practices by Jim Williams
Oracle Flex ASM - What’s New and Best Practices by Jim WilliamsMarkus Michalewicz
 
SORACOMでのJava/AWS活用
SORACOMでのJava/AWS活用SORACOMでのJava/AWS活用
SORACOMでのJava/AWS活用Akio Katayama
 
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Markus Michalewicz
 
Oracle Database In-Memory Meets Oracle RAC
Oracle Database In-Memory Meets Oracle RACOracle Database In-Memory Meets Oracle RAC
Oracle Database In-Memory Meets Oracle RACMarkus Michalewicz
 
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...Markus Michalewicz
 
Corn mill machine gets good response
Corn mill machine gets good responseCorn mill machine gets good response
Corn mill machine gets good responsePenny Hou
 
1.3.1 Решения для монолитного строительства
1.3.1 Решения для монолитного строительства1.3.1 Решения для монолитного строительства
1.3.1 Решения для монолитного строительстваIgor Golovin
 
Intervento apogea marzo 2017
Intervento apogea marzo 2017Intervento apogea marzo 2017
Intervento apogea marzo 2017Davide Zucchetti
 
Tutorial wix
Tutorial wixTutorial wix
Tutorial wixjenniz
 

Viewers also liked (20)

Embedding Web UIs in your Eclipse application
Embedding Web UIs in your Eclipse applicationEmbedding Web UIs in your Eclipse application
Embedding Web UIs in your Eclipse application
 
Laporan rajut zhie
Laporan rajut zhieLaporan rajut zhie
Laporan rajut zhie
 
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
 
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
 
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
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014
 
Oracle RAC on Extended Distance Clusters - Customer Examples
Oracle RAC on Extended Distance Clusters - Customer ExamplesOracle RAC on Extended Distance Clusters - Customer Examples
Oracle RAC on Extended Distance Clusters - Customer Examples
 
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
 
Oracle Flex ASM - What’s New and Best Practices by Jim Williams
Oracle Flex ASM - What’s New and Best Practices by Jim WilliamsOracle Flex ASM - What’s New and Best Practices by Jim Williams
Oracle Flex ASM - What’s New and Best Practices by Jim Williams
 
SORACOMでのJava/AWS活用
SORACOMでのJava/AWS活用SORACOMでのJava/AWS活用
SORACOMでのJava/AWS活用
 
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
 
Oracle Database In-Memory Meets Oracle RAC
Oracle Database In-Memory Meets Oracle RACOracle Database In-Memory Meets Oracle RAC
Oracle Database In-Memory Meets Oracle RAC
 
Foot care for people with diabetes mellitus
Foot care for people with diabetes mellitusFoot care for people with diabetes mellitus
Foot care for people with diabetes mellitus
 
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
Oracle RAC 12c (12.1.0.2) Operational Best Practices - A result of true colla...
 
Corn mill machine gets good response
Corn mill machine gets good responseCorn mill machine gets good response
Corn mill machine gets good response
 
1.3.1 Решения для монолитного строительства
1.3.1 Решения для монолитного строительства1.3.1 Решения для монолитного строительства
1.3.1 Решения для монолитного строительства
 
Intervento apogea marzo 2017
Intervento apogea marzo 2017Intervento apogea marzo 2017
Intervento apogea marzo 2017
 
2017 NAEC
2017 NAEC2017 NAEC
2017 NAEC
 
ICDS1 IARIA presentation M. Hartog
ICDS1 IARIA presentation M. HartogICDS1 IARIA presentation M. Hartog
ICDS1 IARIA presentation M. Hartog
 
Tutorial wix
Tutorial wixTutorial wix
Tutorial wix
 

Similar to Migrating From Applets to Java Desktop Apps in JavaFX

Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudBruno Borges
 
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014Joelith
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaJAXLondon_Conference
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXBruno Borges
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsPavel Bucek
 
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceBruno Borges
 
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cDeveloping Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cBruno Borges
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScriptGeertjan Wielenga
 
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with OracleMobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with OracleChris Muir
 
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Marco Antonio Maciel
 
Oracle JET, with JET Mobile Content
Oracle JET, with JET Mobile ContentOracle JET, with JET Mobile Content
Oracle JET, with JET Mobile ContentGeertjan Wielenga
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKWolfgang Weigend
 
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...jeckels
 
Mastering DevOps with Oracle
Mastering DevOps with Oracle Mastering DevOps with Oracle
Mastering DevOps with Oracle jeckels
 

Similar to Migrating From Applets to Java Desktop Apps in JavaFX (20)

Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
Continuous Integration Fundamentals: Maven - OFM Canberra July 2014
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise Applications
 
Oracle Cloud: Anything as a Service
Oracle Cloud: Anything as a ServiceOracle Cloud: Anything as a Service
Oracle Cloud: Anything as a Service
 
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cDeveloping Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
 
JavaCro'15 - Managing Java at Scale Security and Compatibility Applications -...
JavaCro'15 - Managing Java at Scale Security and Compatibility Applications -...JavaCro'15 - Managing Java at Scale Security and Compatibility Applications -...
JavaCro'15 - Managing Java at Scale Security and Compatibility Applications -...
 
10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript10 Building Blocks for Enterprise JavaScript
10 Building Blocks for Enterprise JavaScript
 
Java 101
Java 101Java 101
Java 101
 
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with OracleMobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
 
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
JavaCro'15 - Everything a Java EE Developer needs to know about the JavaScrip...
 
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
Tweet4Beer (atualizada): Torneira de Chopp Controlada por Java, JavaFX, IoT ...
 
Slovenian Oracle User Group
Slovenian Oracle User GroupSlovenian Oracle User Group
Slovenian Oracle User Group
 
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ć
 
Oracle JET, with JET Mobile Content
Oracle JET, with JET Mobile ContentOracle JET, with JET Mobile Content
Oracle JET, with JET Mobile Content
 
Imworld.ro
Imworld.roImworld.ro
Imworld.ro
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDK
 
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
 
Mastering DevOps with Oracle
Mastering DevOps with Oracle Mastering DevOps with Oracle
Mastering DevOps with Oracle
 

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
 
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
 
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
 
The Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle KeynoteThe Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle KeynoteBruno Borges
 
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e AndroidCrie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e AndroidBruno Borges
 
Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?Bruno Borges
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoBruno Borges
 
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsMigrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsBruno 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...
 
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]
 
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
 
The Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle KeynoteThe Developers Conference 2014 - Oracle Keynote
The Developers Conference 2014 - Oracle Keynote
 
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e AndroidCrie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
Crie Aplicações Mobile Híbridas Escritas em Java, para iOS e Android
 
Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?Servidores de Aplicação: por que ainda precisamos deles?
Servidores de Aplicação: por que ainda precisamos deles?
 
WebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo ConectadoWebSockets - Realtime em Mundo Conectado
WebSockets - Realtime em Mundo Conectado
 
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de AppsMigrando de Applets para JavaFX, e Modelos de Distribuição de Apps
Migrando de Applets para JavaFX, e Modelos de Distribuição de Apps
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
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
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
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
 
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
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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
 
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!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
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
 
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
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 

Migrating From Applets to Java Desktop Apps in JavaFX

  • 1. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Migrating from Applets to Java Desktop Applications Evolve your Applet-dependent website to a better and safer distribution model with JavaFX Hybrid Desktop Applications Bruno Borges Principal Product Manager Oracle Corp. May, 2015
  • 2. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following 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. 3
  • 3. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Program Agenda Why are you still using Applets? A brief history check The Future of Applets is tied to Browsers Seamless Migrate from Applet/Browser to Java Desktop App Hybrid JavaFX Desktop Applications Distribution Models for Java Desktop App 1 2 3 4 5 4
  • 4. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Why are you still using Applets? A brief history check 5
  • 5. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Applets used to do what browsers couldn’t 6 And provided easy distribution model for fully capable desktop applications
  • 6. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Applets and Browsers these days • HTML5, CSS3, Javascript… Browsers are well capable for most use cases – 3D, Local storage, Canvas, Audio processing, etc • Applets still exist for some reason – Distribution model still interesting • Install Java, hit a URL on the browser and you are ready to go – Security requirements – Communication with hardware devices in a “transparent” way – Proprietary network protocols – Advanced and specialized file transfer – Local cryptography, desktop sharing, audio/video streaming, etc 7
  • 7. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 8 Most banks in Brazil require 3-step verification Example: Internet Banking Authentication Model Segurança Internet Banking Internet Banking Creden tials • User/Pass • Bank Account ID • SSN Hard ware Token • Hardware Auth Token • Token Card • SMS Token Device • Access Origin Check • Singularity
  • 8. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Program Agenda Why are you still using Applets? A brief history check. The Future of Applets is tied to Browsers Seamless Migrate from Applet/Browser to Java Desktop App Hybrid JavaFX Desktop Applications Distribution Models for Java Desktop App 1 2 3 4 5 9
  • 9. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | The Future of Applets depend on Browsers Browsers can, and already have showed signs to drop support on Applets 10
  • 10. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | • Advantage – Semi-transparent execution model • Disadvantage – Java “gratis” at java.com • Highly Dependent – Web Browsers – Java Browser Plugin – Operational Systems • “Necessary Evil” – Automatic Updates on Windows 11 Applets on Browsers – Current Access/Distribution Model Web Browser Your website Java Applets
  • 11. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Applets on Browsers – 99.99% of cases • Google Chrome – NPAPI to be dropped in 2015 – As consequence, will drop support to execute Java Applets • Mozilla Firefox – Initially considered to drop support, but after community backfire decided to continue supporting it, but disabled by default aka “Plugin Activation” – User must manually allow execution through Firefox’s own security dialog – Java will also ask depending the case, for execution permission • In the end, it is up to browsers to allow/support execution of Applets 12 The usual and most common runtime environment for Applets
  • 12. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Program Agenda Why are you still using Applets? A brief history check. The Future of Applets is tied to Browsers Seamless Migrate from Applet/Browser to Java Desktop App Hybrid JavaFX Desktop Applications Distribution Models for Java Desktop App 1 2 3 4 5 13
  • 13. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Seamless Migrate from Applet/Browser to Java Desktop App You don’t want nor have to rewrite your solution! Reuse what you already have. 14
  • 14. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 15 You may be already doing this, known as Hybrid Mobile Applications From a Browser+Applet web application, to a Desktop application with wrapped embedded website +
  • 15. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 16 You don’t have to shutdown your website+applet access model right away! Keep Your Web Application. Distribute a New Access Model Web Browser Your website Applets Java Desktop Application Embedded Browser with your website Libraries
  • 16. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Browser and Applets, Desktop App and Libraries • Web applications that depend on invisible Applets – Javascript can be smart enough to communicate with Java if running on Embedded Browser inside a Java Desktop application, while also working with legacy applets if running on a browser – Java code injects Java objects of legacy Applets features in the DOM tree of embedded Java browser • Web applications with visible Applets (AWT/Swing) – These should be features from outside the embedded browser • Example: file transfer feature as a popup (similar to Swing’s JDialog) from the Java desktop application, while still being able to communicate with the page in embedded browser 17 Combining two access models while reusing code
  • 17. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Program Agenda Why are you still using Applets? A brief history check. The Future of Applets is tied to Browsers Seamless Migrate from Applet/Browser to Java Desktop App Hybrid JavaFX Desktop Applications Distribution Models for Java Desktop App 1 2 3 4 5 18
  • 18. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Hybrid JavaFX Desktop Applications JavaFX Introduction and Resources 19
  • 19. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 20 Hybrid JavaFX Desktop Application – Architecture Windows Mac OS XLinux Oracle JRE JavaFX Application Embedded Browser Native UI Controls Native Hardware Access HTML5, CSS3, JavaScript part of your application (remote or local) Native JavaFX or Embedded Legacy Swing Controls Reuse your Java libraries for hardware integration (ie: functionality from legacy Applets) Bundle the JRE with your application for native installers One unified desktop application
  • 20. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | • Advantage – Controlled “web” environment – Reuse your existing web application – Reuse your existing Java libraries or UI controls (JApplets) • Highly Independent – Java “gratis” or Oracle support contract – Controlled Java updates – Independent of 3rd-party browsers (Firefox, Chrome, Safari, IE, etc) 21 New Access Model for your Web Application Java Desktop Application Embedded Browser with your website Legacy Applets and/or New Rich Features, as Libraries
  • 21. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | JavaFX • Java SE 8 – Bundled with new Javascript Engine: Nashorn – Follows ECMAScript 262 v5.1 • JavaFX 8 – Supports embedded Java Swing components (migrate visual JApplets) – WebView • Support for HTML5 tags, CSS3, Javascript, and DOM tree – WebEngine supports bi-directional calls between Java APIs and Javascript in webpages loaded inside WebView 22
  • 22. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | JavaFX 8 – Web Engine • html5test.com • acid3.acidtests.org • webkit sunspider 0.9.1 test 23 Standards compatibility and performance analysis Firefox 29: 244.8ms Chrome 34: 259.8ms JavaFX 8: 252.4ms http://www.websocket.org/echo.html
  • 23. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Program Agenda Why are you still using Applets? A brief history check. The Future of Applets is tied to Browsers Seamless Migrate from Applet/Browser to Java Desktop App Hybrid JavaFX Desktop Applications Distribution Models for Java Desktop App 1 2 3 4 5 24
  • 24. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Distribution Models for Java Desktop Apps How to distribute your application to your users 25
  • 25. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Before distributing, you must package it • Tool name: javapackager (pka javafxpackager) – Support on NetBeans out of the box – Also as Apache Ant task • Supported Installers – Windows: EXE/MSI – Mac OS X: DMG – Linux: RPM/DEB – Others: installer/image 26 Java tool to package your app and JRE on native installers
  • 26. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Options of distribution models • Applet and web application, on a browser – This is where you are today • Java Web Start – Java Desktop application loaded off of browser. Security checks are kept • Standalone: download links of native installers or the JAR file – Native installers: user double click and install as desktop standalone application – JAR file: user must have Java previously installed • Appstores for General Purpose Desktops/Laptops – Users are comfortable with this model, since it’s how they install apps on mobile 27
  • 27. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Java Web Start • Application files (JARs), like Applets, are hosted on website server – User clicks on a link to load the application via JWS – When remote JAR files are updated, JWS automatically updates on user’s computer • With a Hybrid JavaFX Desktop application in place, this is the easiest model to move forward before a full replacement, off of browsers – Users will perceive as a “new window” • Disadvantages – Java must be installed prior to execution – Developer must still keep up-to-date on new security Java updates, due to automatic Java updates in some operational systems 28
  • 28. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Download Link • Provide users with a “Download” section on the website – JAR download for reduced package size • User must have Java installed – Native installers per operational system • JRE and application bundled into native installers for Windows/Mac/Linux 29
  • 29. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Appstores for General Purpose Desktops/Laptops • Publish the native installers (JRE+application bundled) on 3rd-party appstores for PCs – Decide which version of Java JRE is bundled. Won’t conflict with any other JRE installed, or bundled with another application – Keep control of when to upgrade the version of JRE bundled with the application 30
  • 30. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 31 Comparison based on external users accessing the application from their own PCs Differences between Distribution Models for the Application Developer Applet Web Start Download Appstore Unnecessary to Have Java Previously Installed NO NO YES YES Independent of Java Browser Plugin NO YES YES YES Unaffected by Java “gratis” Auto Updates NO NO YES (1) YES Unaffected by Java LiveConnect™ Constraints NO YES YES YES Unaffected by Browsers Restrictions NO YES YES YES Application Auto Update for Users OOTB YES YES NO YES Has Control of Which Java Version Update NO NO YES YES Has Control of Runtime Environment NO NO YES YES (1) NO if user downloaded JAR file only, without bundled JRE

Editor's Notes

  1. This is a Safe Harbor Front slide, one of two Safe Harbor Statement slides included in this template. One of the Safe Harbor slides must be used if your presentation covers material affected by Oracle’s Revenue Recognition Policy To learn more about this policy, e-mail: Revrec-americasiebc_us@oracle.com
  2. Created by Sun in 1995 to provide an execution environment for visual Java applications with a simple distribution model, and to “run everywhere” Local data processing 2D and 3D visualization Audio/Image processing Animations - Hardware integration
  3. Some sort of native plugin has to be installed on users’ computers to provide Hardware Token and/or Device Singularity/Access Origin. Applets are commonly used.
  4. Why “semi-transparent”? - Your website may be selling the idea of “access from everywhere through a browser”, but you require Java to execute Applets. Means users have to do 2 things before actually access your website: (a) install a browser your modern website is compatible with, and (2) install Java. Why is “Java gratis at java.com” a disadvantage? - In cases where users access websites with Applets from their own personal computers they install Java from java.com and keep up to date from there. Your company IT has no control of these computers and thus it is technically unpractical to acquire commercial support for Java. Why “Highly Dependent”? Some operational systems may impose difficulties at setting up Java correctly to run Applets on browsers (i.e. Linux) Web browsers may block, or require extra steps, to execute Applets. They are in control. Java Browser Plugin is the piece of Java that actually runs Applets. Changes here may affect how Applets are executed, and may require changes in the Applet code/manifest/signature. Why is Automatic Update a “Necessary Evil” ? - Oracle issues security updates to Java to keep users safe. - These updates may require applets to also be updated to comply with new security requirements. - Applets not updated or compliant with new requirements may be blocked by these security updates.
  5. Chrome “press-release” - http://blog.chromium.org/2014/05/update-on-npapi-deprecation.html Firefox “press-release” - https://blog.mozilla.org/futurereleases/2013/09/24/plugin-activation-in-firefox/
  6. WebView is the Embedded Browser component of the JavaFX Platform Bundle JRE with your application. When you package your application in this architecture, the JRE is installed as part of your application, not as a pre-required software. This means it will be only used by your application and not shared with other apps nor the browsers. It is as if JRE+Your_App were one thing only.
  7. Why “Advantages”? Controlled web environment: the Java Virtual Machine provides an environment not tied to specific operational systems, and since now it provides its own embedded browser, it is now also not tied to specific web browsers if one wants to build their “own browser” using the Java WebView component Reuse your existing web app: you don’t have to write from scratch your web application (but may be require to adapt/adjust/tune). You can also continue providing users access to your web application through regular browsers that still support applets Reuse existing Java libs and UI controls: Java libraries can be easily reused within a Java desktop application. For UI controls, these may require refactoring, but JavaFX applications can embed Java Swing controls (usually used inside JApplets) Why “Highly Independent” ? You may choose to package your application with the Java “gratis” available at java.com. But remember these are not supported and they may reach End of Public Updates that may include security fixes and improvements. Since you will be in control of which JRE is bundled with your app, this technically enables you to consider a support contract with Oracle. Controlled Java Updates: again, since you control the packaging of JRE with your app, you also control when to update your application to a newer JRE and repackage it for a new version bundle. Your users won’t be required to upgrade to a newer version when Oracle issues a new update at java.com, because JRE is bundled as part of your application. Independent of 3rd-party browsers: this architecture provides an independent solution of 3rd-party browsers and focus on only the Java embedded browser. You are in control of it.
  8. JavaFX’s WebEngine is well capable of running most websites. Quake 3D implemented in Javascript and CSS ain’t one.
  9. As previously noted, the auto update feature is important to keep users safe. But application developers must keep up-to-date as well when Oracle issues a new security update.
  10. Enterprises these days are releasing their own native/hybrid mobile applications for iOS and Android. Still, they ignore Windows Store, Mac OS X Store and Ubuntu Software Center (Linux).
  11. This table illustrates an analysis of distribution models by considering use cases of customer applications being accessed by unmanaged computers. IMPORTANT The reason Commercial Support for Oracle Java is not technically feasible for Applets and/or Java Web Start is that external users (non-employees of customer holding support contract) will likely install Java “gratis” from java.com, and access from their personal desktops/laptops. If there is a problem and Oracle issues a fix for the customer, this customer would have to distribute this special JRE for their external users. The scenario is overly complicated and should be avoided. Commercial Support may be technically feasible for Applets and/or Java Web Start only when computers are managed by customer who owns the Java support contract. It should also be considered that this is for internal users only. - i.e. desktops/laptops owned by the customer and managed by an IT department