59
Java Restart with WebFX A new web and a new web browser Nikita Lipsky (twitter: @pjBooms) Excelsior

Java Restart with WebFX

Embed Size (px)

Citation preview

Java Restart with WebFX

A new web and a new web browser

Nikita Lipsky (twitter: @pjBooms)Excelsior

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

Client side today

• Web

• Mobile

• Desktop

Three different worlds

What’s Good with Web

Web Advantages

1. No client side installation

Web Advantages

1. No client side installation

2. Built-in free “auto updates“

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)

What’s Wrong with Web

Browser Hell

Irresponsive UI

JavaScript Is Ineffective

Mobile and Desktop

• Two worlds, same property: installable native clients

What’s Good with Native Clients

Fast and Responsive

Effective Programming Languages

Look (almost) the same on any PC

• Do not depend on multiple external renderers

What’s Wrong with Native Clients

Segmentation

Large systems weigh too much

Explicit Auto Updates

Summary

We need a system with the advantages of both worlds and without their disadvantages.

Summary

• No client side installation

Summary

• Runs anywhere (where “browser” exists)

Summary

• The same in all browsers

Summary

• With built-in transparent auto updates

Summary

• With lazy downloading of required parts

Summary

• Simple!

Summary

• With fast responsive expressive UI

Summary

• Written in effective programming languages

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)

Science fiction?

WebFX Project

Bruno Borges

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!

Check list

No client side installation

Check list

Runs anywhere (where “browser” exists)

Check list

The same in all browsers

Check list

With built-in transparent auto updates

Check list

With lazy downloading of only required parts

Check list

Simple!

Check list

With fast responsive UI (native UI is allowed)

Check list

In effective programming languages

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

• 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

[email protected]

twitter: @pjBooms

https://github.com/brunoborges/webfx

https://github.com/pjBooms/Java-ReStart