ZeroFootprint RIA

Hallo zusammen,

folgendes Problem:

Ich hab hier eine Javaanwendung die bisher beim Kunden als Applet läuft. Die Software ist sehr umfangreich in Sachen Bildbearbeitung/Bildbetrachtung und erfordert einige Tricks in Sachen Java Speichermanagement (Bilder können gern mal >90MB sein), was einer der Gründe ist warum wir hier z.B. nicht einfach auf eine klassische “Webanwendung” umsatteln können.

Das Haupt-Feature der Anwendung und das eigentliche Alleinstellungsmerkmal ggü. der Mitbewerber ist “Zero Footprint”. Es reicht aus Java 1.4 bzw. seit neusten Java 1.6 auf dem Kundenrechner zu haben und schon kann der Kunde mit nur einem Klick loslegen.

Seit einiger Zeit zeichnet sich aber ab, dass das Java-Plugin im Browser eine aussterbende Art ist. Google hat in Chroma die NPAPI angekündigt, so dass bald das Java-Plugin nicht mehr funktionieren wird.
Mozilla mit seinem Firefox ist da zögerlicher. Aber auch hier scheint man der NPAPI und dem Java-Plugin nicht besonderlich wohlgesonnen zu sein.

Fakt ist wohl, das über kurz oder lang Java-Applets wohl überhaupt nicht mehr funktionieren werden wenn man “aktuelle” Software einsetzen möchte.
Ob Oracle das Java-Applet durch die migration zu einer NPAPI-Alternativen Schnittstelle (PPAPI?) weiter am leben hält ist fraglich.

Ziel ist jetzt eine alternative Strategie zu entwickeln/zu finden die nach wie vor “Zero Footprint” berücksichtigt, aber nicht mehr auf das Javaplugin aufbaut.

Eine Möglichkeit ist hier wohl Java Webstart. Allerdings fallen damit so “Features” wie “aus einer HTML/Javascript-Seite heraus Methoden in der Java-Anwendung aufrufen” wohl erstmal weg. Hier wird es neue/alternative Schnittstellen geben müssen auf die 3rd-party Module migrieren müssen.

Denke diesen Migrationsaufwand werden wir so oder so haben, da es keinen 1:1 Ersatz für JavaApplets gibt der nicht auf das JavaPlugin setzt.

Die Frage ist viel mehr: Was für Möglichkeiten gibt es noch außer Webstart?

HTML5 und Co. fallen als Java-Anwendungsersatz raus. Denn die da vorhandenen Features decken sich nicht mit den Anforderungen an unsere Anwendung. Es muss also eine Java-Anwendung bleiben. Nur diese muss sich mit “zero footprint” ohne vorangehende Installation von Nicht-Standardsoftware erschlagen lassen.

Hat jemand noch eine Idee?

Mit JavaScript kann ich ja keine Files vom Server laden, entpacken und als lokale Anwendung starten (Stichwort Sandbox), oder liege ich hier falsch?

Gruß
Alex

eine im Download-Ordner per Doppelklick ausführbare fat-jar (war schon immer das nächstbeste nach webstart)

so weit ich das sehe, steigen zur Zeit viele komplett auf Javascript um (GWT, Vaadin, dazu WebGL, REST,…) - da geht vieles, was noch vor 5 Jahren undenkbar war.

Lokale Bilder mit 90MB - da wird es halt schwierig, da fällt mir auch nicht allzuviel ein :slight_smile:

[QUOTE=Bleiglanz]eine im Download-Ordner per Doppelklick ausführbare fat-jar (war schon immer das nächstbeste nach webstart)
[/quote]

Das „sieht für den Anwender dann wie ein Download aus“ … Fällt somit flach.

so weit ich das sehe, steigen zur Zeit viele komplett auf Javascript um (GWT, Vaadin, dazu WebGL, REST,…) - da geht vieles, was noch vor 5 Jahren undenkbar war.

Für eine klassiche Webanwendung ist das ja auch prima. Aber eine „fette Desktopanwendung“ lässt sich damit nicht wirklich abbilden. So zumindest unser aktueller Recherchestand.

Lokale Bilder mit 90MB - da wird es halt schwierig, da fällt mir auch nicht allzuviel ein :slight_smile:

Nicht alle Bilderserien sind so groß. Aber es gibt durchaus Serien da hast du 8 und mehr Bilder á 90MB die gleichzeitig im Speicher sein müssen (Stichwort: schnelle Bildumschaltung). Das ist auch schon zu viel für den JavaHeap, weswegen mit viel trickserei in den nativen Prozesspeicher ausgelagert wird und die Anwendung auch oft als 64bit Anwendung laufen muss damit genug Speicher zur Verfügung steht.

Wollte hier eigentlich nur die Bestätigung dass ich nichts in meinen Überlegungen übersehen habe und es nicht doch noch eine Technik neben Webstart gibt.

Scheint mir auch fast unmöglich da was zu finden - vielleicht mal bei Newest ‚java‘ Questions - Programmers Stack Exchange nachfragen :slight_smile: