THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire...

Post on 14-Jul-2020

0 views 0 download

Transcript of THE FUTURE IS FUN! - JUG Saxony · 2017-06-06 · Porting it to JavaFX Re-implementing the entire...

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

1

THE FUTURE IS FUN!

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

2

Matthias Hänel

CEO & FOUNDER OF onexip GmbH & jpro technologies AG

Herzlich Willkommen!

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

3Heuteaktuelle Crossplattform Applikationen bestehen aus vielen Technologien

● viele verschiedene Technologien

● Applikationen nutzen mehrerer Technologien

● Unterschiedliche Technologien für Desktop, Mobile und Web Applikationen

● Zu viel non-shareable code

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

4

Wir müssen das ändern.

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

5

Hans-Henry SandbaekCEO & Founder

Sandec Media AG

Florian KirmaierCTO & Founder

Sandec Media AG

Tobias BleyCTO & Founder

onexip GmbH

Matthias HänelCEO & Founder

onexip GmbH

Team Geschichtepeople bring up great solutions

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

6

technologies AG

Zusammen sind wirpeople bring up great solutions

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

7

Wie ändern wir diese Situation?

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

8

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

9

WindowsWindows Vista, 7, 8, 8.1 and 10 support

Mac OS XOS X 10.7.4 and later

Linuxany newer glibc 6 based Linux

Desktop SupportJavaFX runs on Windows, Mac and Linux

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

10IOT SupportJavaFX runs on embedded ARM systems

IoTembedded ARM Linux support

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

11

AndroidAndroid 4 and newer

iOSiOS 6 and newer

Qualitysame code on all platforms

Future safetynew platforms emerging?

Custom Designpossible mobile themed FXML for each platform

Mobile SupportJavaFX with Gluon works on iOS and Android

Gluon

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

12

for the Web

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

13

Wir nennen es einfach ...

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

14

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

15

Porting it to JavaFXRe-implementing the entire Software

Reusable librariesreusing code is one of the major advantages of the Java ecosystem on Desktop

DJ Softwaredeployed to million computers wold wide

Beispiel Desktop ApplikationUltraMixer on Desktop is great

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

16Deployment UltraMixerUltraMixer on the Web is the future

Launch

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

17Crossplattform Technologie für Java JavaFX läuft auf Desktop, Mobile und Web

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

18

Showcasejpro shows its power in those demos

jpro it is already used in some real world applications. More follow in the next months.

See http://jpro.io/?page=demos

CalendarFX Fashion Shop

Tetris

MyLeporello

Scenebuilder

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

19How does the magic work?native cross platform support mit JavaFX

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

20jpro Architekturthin client model

controller and model tier (business logic)

Server

JavaFX (JAVA, FXML, CSS)

JVM

Client

HTML5 (CSS, JS, SVG)

view tier (rendering)

Browser

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

21JavaFX ArchitekturInside JavaFX

Java Virtual Machine

JDK API Libraries & Tools

Java 2D / OpenGL / D3D

Prism / Glass Windowing Toolkit / Media Engine / Web Engine

Quantum Toolkit

JavaFX Public APIs and Scene Graph

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

22jpro ArchitekturInside jpro

Java Virtual Machine

JDK API Libraries & Tools

Java 2D / OpenGL / D3D

Quantum Toolkit

JavaFX Public APIs and Scene Graph

Prism / Glass Windowing Toolkit / Media Engine / Web Engine

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

23jpro architectureInside jpro

Node1

JFX Scene

Node2

Node3

Node4

Node1

HTML DOM

Node2

Node3

Node4

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

24

Scene3

Scene2

Scene6

Scene5

Scene1 Scene4

Scene9

Scene8

...

..

Scene7 .

JavaFX-App● JavaFX läuft auf dem

Server● eine Scene Instanz pro

Nutzer

jpro ServerarchitekturInside jpro

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

25jpro ServerarchitekturInside jpro

JavaFX-App

JavaFX-App

JavaFX-App

Die gleiche App läuft auf verschiedenen Servern oder in der Cloud.

Server1 Server2 ServerX

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

26

1 2 3 4 5 6

Any JVM

Sprachee.g. Groovy, Kotlin,

Scala or Clojure

Any JFX

bindinge.g. GroovyFX,

KotlinFX, ScalaFXor ClojureFX

Pixel perfectrendering across

browsers

Development

speedthrough consistent

tools

IP Protectionis immanent

Jede LibraryAlmost any Java

Library can be used

Möglichkeiten der Architekturinside jpro

7

Middle tiercan be dropped

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

27Browser VoraussetzungenInside jpro

● Aktueller Browser● Websocket Support● Aktiviertes JavaScript

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

28

Gradle Java 8Linuxbevorzugt:

Ubuntu> Version 2.14 Oracle JDK 8

Server TechnologienVoraussetzungen für jpro

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

29Entwicklung mit jpro

jpro app mit Sourcecode starten (z.B. während Entwicklung)

● Gradle-Script erzeugen (build.gradle + settings.gradle)

● Ordner-Struktur erzeugen

/src/main

/java/resources

/test/java/resources

● Deployment:

Gradle scripts und src-folder zum Server hochladen

Kommandozeile: gradle runBrowser oder gradle restartServer

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

30Entwicklung mit jpro

Automatisch erzeugte jpro Pfade● http://localhost:8080/test/default

● http://localhost:8080/test/fullscreen/default

Selbst definierte jpro Pfade

● Selbst definierte und zugreifbare Ressourcen liegen in: „resources/jpro/html“

● z.B. resources/jpro/html/index.html

● Zugriffe per http://localhost:8080/index.html

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

31von JavaFX zu jpro

static Attribute und Methoden (static) meidenAusnahme: alles was zwischen allen Nutzern geteilt wird

Preferences in der Cloud speichern (z.B. database, jclouds)

Dateizugriff ändern (Upload/ Download)

System.exit(0) und Toolkit.exit() entfernen

“Save as...” neu definieren. Entweder als Download oder Speichern in die Cloud

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

32jpro WebAPI

Platform switches (isDesktop() / isBrowser())

Upload/Download Files

Ausführen und eval JavaScript

Register Java Callbacks

Register JavaScript Variables

Cookies zugreifen

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

33

e.g. cache images, save effects,

optimise CSS rules, prevent

memory leaks

develop resource-aware

GUI adjustment for different

devices

Responsive Design

in case of performance

optimizations

Run JS Code in the Browser

e.g. rethink web or app metaphors

User Interfaceparadigm

like Ajax applications, defining

URLs, which direct to defined

states in a application like

home, purchase, pricing etc.

application states/pages

e.g. JMeter with Web-Driver or

Cloud services like loader.io

Run performance tests

best practicemit jpro

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

34

jpro.handsOnCode();

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

35

“Hello JPro”skinned by CSS

Controller Class

Tag Codeembed “Hello JPro”

Demo with <jpro>

Quellcodeshow case

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

36Real World ApplikationWeb page jpro.io

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

37

Server 1

AsiaServer 3: Sydney

AmericaServer 2: California

EuropeServer 1: Frankfurt

Server 2

Server N

GEO LOAD

Balancing

Real World ApplikationWeb page jpro.io

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

38

Hosting

3x Amazon EC2 t2.large

Geo-Balancing over DNS

Port-Forwarding for www.jpro.io(Port 80 => 8080)

Real World ApplikationWeb page jpro.io

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

39

= Web 3.0

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

40

Finally

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

41

W.O.R.A.Wiederverwendung von

Source Code

sharing is caring

fast developmentEine Sprache (Java),

common tools (Maven, Gradle, Jenkins)

IP ProtectionGeistiges Eigentum ist

geschützt

scale easilyserverseitiges Scaling

Crossplattform deployment

Deployment auf alle Plattformen (Desktop,

Mobile, Web)

zentrale Updatessoftware updates finden

auf dem Server statt

being a great team

java und Crossplatform Enthusiasten

Unsere Philosophiesumup everything

www.jpro-software.com© 2016 jpro technologies AG. All Rights Reserved.

42

First Alpha

Demos, Beispiele

Ende 2015

Closed BetaViele neue Demos

Early Bird Customers

Sommer 2016

Selected Early BirdsCommunity Demos

Integration in Web Services

Erste TeaVM version

Anfang 2018

Open Release

Ende Juni 2017

RoadmapProjekt Status

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

43

SIGN UP!

jpro.io/?page=signup

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

44

KAFFEE PAUSE ?….

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

45

ONE MORE THING?Go to

multiview.jpro.io

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

46MultiView?one more thing

Scene3

Scene2

Scene6

Scene5

Scene1 Scene4

Scene9

Scene8

...

..

Scene7 .

JavaFX● single Scene● Scene zu

mehreren Nutzern routen Scene5

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

47

VIELEN DANK!

jpro_io

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

48

Q & A?

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

49

jpro_io

Follow us on Twitter

www.jpro.io© 2017 jpro technologies AG. All Rights Reserved.

50