SpotFlow: Tracking Method Calls and States at Runtime
Java Restart with WebFX
1. Java Restart with WebFX
A new web and a new web browser
Nikita Lipsky (twitter: @pjBooms)
Excelsior
2. Agenda
• Client side: Web vs. Native clients
• WebFX live demo
• WebFX and Java ReStart technical highlights
• FAQ
– WebFX vs. Java applets
– Java ReStart vs. Java Web Start
– WebFX and Java ReStart vs. RDP
– Security
• Future Development
• Q&A
36. Next Big Client Wish list
1. No installation (one click access)
2. Transparent “auto updates“
3. Instant startup (lazy partial downloading)
4. Fast, expressive UI that is the same in all
browsers (written in effective languages)
5. Runs anywhere (where “browser” exists)
40. WebFX Key Features
• FXML as a new HTML
• Any JVM scripting language can be integrated
with FXML
• Arbitrary Java byte-code downloaded
on demand via Java ReStart
41. Java ReStart Technical Highlights
• Client downloads classes/resources on demand
• App executes in parallel with downloading
(streaming a la YouTube)
• Server collects app downloading profile
• Subsequent clients can prefetch required
classes/resources with a single HTTP request
Result: startup of an application from the web can
be at least as fast as local startup!
50. What’s the Trick?!
• Web with native client look-n-feel
OR
• Native client with dynamics & flexibility
of the Web
51. Java Applets
• Have not evolved since 1995
• Applets are foreigners in the traditional web
• Applets are not supported by browser vendors
• Applets are monolithic
• No “download-on-demand” out-of-the-box
• Poor startup time as a result
52. Java Web Start
• Cool idea, but implementation not so cool
• There is lazy jar downloading but no “lazy”
downloading of jar contents
• As a result, applications are monolithic with
poor startup time
• Very unusual for end-user: apps are not
in a browser, but are not native either
• Too many security warnings!
53. RDP-like Approaches
• Tight and constant communication with
the server provokes lags
• Session context on the server is the whole
program
– Result: poor scalability on the server
55. Security
• Security is often a social, not technical problem
• Do you feel secure when you run a just-
downloaded native client?
• Are you sure that you can’t get malware when
surfing the Internet?
• I feel secure only when I trust the vendor of an
internet resource
56. Security
• WebFX reuses Java security model
– At least more secure than C/C++
• Can run on top of HTTPS/SSL, to ensure the
source of the remote content
• Can employ mobile like security:
– an app describes what it needs, an end-user has to
provide access for the app to what it needs
• Application stores as secure place for apps
57. Future Developments
• Create Java application store
– Start with Java apps hosting for JavaFX community
• Run Java IDEs via Java ReStart (to employ the
hype around cloud-based IDEs)
• WebFX browser as rebrandable standalone
“small” native client.
58. Conclusion
• Web and native clients have their advantages
in comparison with each other
• It is possible to erase the borders between
web/mobile/desktop
• We can run Java applications from the web as fast
as locally
• So the network is the computer! Finally!