SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 
Java Heap Dump Analysis Primer
Java Heap Dump Analysis PrimerJava Heap Dump Analysis Primer
Java Heap Dump Analysis Primer
 
Oops in PHP
Oops in PHPOops in PHP
Oops in PHP
 
Spring andspringboot training
Spring andspringboot trainingSpring andspringboot training
Spring andspringboot training
 
What Is Php
What Is PhpWhat Is Php
What Is Php
 
Nodejs functions & modules
Nodejs functions & modulesNodejs functions & modules
Nodejs functions & modules
 
Web container and Apache Tomcat
Web container and Apache TomcatWeb container and Apache Tomcat
Web container and Apache Tomcat
 
Gradle Introduction
Gradle IntroductionGradle Introduction
Gradle Introduction
 
Introduction to JavaScript.pptx
Introduction to JavaScript.pptxIntroduction to JavaScript.pptx
Introduction to JavaScript.pptx
 
Web services SOAP
Web services SOAPWeb services SOAP
Web services SOAP
 
JavaScript - Chapter 14 - Form Handling
 JavaScript - Chapter 14 - Form Handling   JavaScript - Chapter 14 - Form Handling
JavaScript - Chapter 14 - Form Handling
 
JQuery selectors
JQuery selectors JQuery selectors
JQuery selectors
 
JAVA JDK INSTALLATION PROCEDURE
JAVA JDK INSTALLATION PROCEDUREJAVA JDK INSTALLATION PROCEDURE
JAVA JDK INSTALLATION PROCEDURE
 
Maven 3 Overview
Maven 3  OverviewMaven 3  Overview
Maven 3 Overview
 
PHP Cookies and Sessions
PHP Cookies and SessionsPHP Cookies and Sessions
PHP Cookies and Sessions
 
Ajax.ppt
Ajax.pptAjax.ppt
Ajax.ppt
 
Sap lama presentation
Sap lama presentationSap lama presentation
Sap lama presentation
 
Ajax
AjaxAjax
Ajax
 
Java NIO.2
Java NIO.2Java NIO.2
Java NIO.2
 
Promises, promises, and then observables
Promises, promises, and then observablesPromises, promises, and then observables
Promises, promises, and then observables
 

Destaque

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
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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
 

Último

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Último (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

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

Notas do Editor

  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