Upload
nikita-lipsky
View
483
Download
0
Embed Size (px)
Citation preview
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
Web Advantages
1. No client side installation
2. Built-in free “auto updates“
3. Lazy partial downloading
Web Advantages
1. No client side installation
2. Built-in free “auto updates“
3. Lazy partial downloading
4. Simple expressive means: HTML + JavaScript
Web Advantages
1. No client side installation
2. Built-in free “auto updates“
3. Lazy partial downloading
4. Simple expressive means: HTML + JavaScript
5. Runs anywhere (where browser exists)
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)
Live Demo!
https://www.youtube.com/watch?v=2LUF7lgpKLg#t=8
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
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!
What’s the Trick?!
• Web with native client look-n-feel
OR
• Native client with dynamics & flexibility
of the Web
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
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!
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
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
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
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.
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!
Q&A
Nikita Lipsky
Excelsior
twitter: @pjBooms
https://github.com/brunoborges/webfx
https://github.com/pjBooms/Java-ReStart