Frage

Ich habe vor kurzem eine Java Web Start Anwendung. Ich startete es von meinem Web-Browser eines eingebetteten jnlp Link auf der Seite mit mir sehen. Die Anwendung wurde heruntergeladen, ins Leben gerufen und funktionierte gut. Er hatte Zugang zu meinem lokalen Dateisystem und erinnerte mich an meine Vorlieben zwischen diesem neu zu starten.

Was will ich weiß, ist, warum sind Java Web Start-Anwendungen nicht ein populäres Lieferformat für komplexe Anwendungen im Web? Warum Entwickler oft viel Zeit und Energie zu replizieren Desktop-Funktionalität in HTML / JavaScript ausgeben, wenn die Leistung eines Desktop-Anwendung einfacher zugestellt werden konnte mit Hilfe von Java & Java Web Start?

Ich weiß, dass in einigen Unternehmensumgebungen, z Banken, sie sind relativ beliebte Möglichkeiten der Bereitstellung von komplexen Handelsanwendungen für Kunden, aber warum sind sie über die Bahn als Ganzes nicht allgegenwärtig?

(Aus Gründen der Diskussion wollen wir eine Welt übernehmen, wo: Download-Quellen „trusted“ sind & Anwendungen „unterzeichnet“ (dh keine Sicherheitsbedenken), Download-Geschwindigkeiten schnell (Ladezeit ist schnell) und Entwickler wissen, Java (in die Zahlen, die sie kennen html / js / php)).

War es hilfreich?

Lösung

Ich denke, der Grund ist nicht die Sicherheit noch die Startzeit der App. Lassen Sie uns verstehen, was hinter den Kulissen ist, bevor wir die Ursache herausfinden.

Java Control Panel verfügt über Einstellungen, die Benutzern erlauben, Standardbrowser des Proxy-Einstellungen zu verwenden oder sie außer Kraft zu setzen. Mit anderen Worten, sind Infrastruktur-Teams können den Windows oder OS-Installations-Images anpassen mit Enterprise-Proxy-Einstellungen haben JVM vorinstalliert. Also ich glaube, das ist überhaupt kein Problem ist.

Java Web Start-Caches tatsächlich alle Anwendungen mit anpassbaren Einstellungen in Java Control Panel. Sobald die App im Cache gespeichert wird, wird die App „installiert“ wie andere Anwendungen. Obwohl erstmals Ausführung langsam sein kann, wird das zweite Mal wegen JVM Smart Speicherzuweisung Technik schnell sein. So startet Zeit ein Problem sein könnte, aber eine Menge von Web-Seiten (auch Unternehmen intern) werden nun Portal migriert. Ein Web-Portal enthält normalerweise viele nicht genutzte Bibliotheken für Entwicklungszwecke aufgrund der Tatsache, dass das Portal selbst geht nicht davon aus, welche Arten von Portlets sind gebaut und auf einer bestimmten Seite im Einsatz. Daher könnte eine einzige Portalseite Download zu MBs verbrauchen und einer Seite in mehr als 5 Sekunden abgeschlossen; dies ist nur eine Seite und Caching hilft bis zu 30%, aber es gibt immer noch viele HTML / Javascript / CSS-Komponenten erforderlich jedes Mal, zum Download bereit. Damit ich bin sicher, dass Java Web Start ist hier von Vorteil.

Java Web Start nicht erneut herunterladen, wenn es so lange zwischengespeichert wird, wenn die Server-Kopie nicht aktualisiert wird. Deshalb, wenn z.B. eine Projektmanagement-Software wie MS Project, wird unter Verwendung von Smart Client (ähnlich JWS) abgeschlossen ist, würde der Informationsaustausch zwischen dem Client und dem Server rein Daten ohne Vorlage sein wie vollständige Aktualisierung der Seite des Browsers. Auch mit Hilfe von Ajax, nicht beseitigt es nicht volle Seite herunterladen vollständig. Außerdem betrachten viele Unternehmen Ajax noch unreif und ungesichert zu sein. Deshalb Ajax ein heißes Thema in den Kreisen der Entwickler ist aber noch nicht in Enterprise-Software. Mit dem im Verstand, JWS Anwendungen haben definitiv mehr Vorteile wie wie JWS-Anwendungen bereitgestellt und in Sandkästen ausgeführt, signiert, und haben viel mehr interaktiven GUI.

Weitere Vorteile sind eine schnellere Entwicklung (einfacher in Code und Leistung debuggen), die Benutzeroberfläche (erfordert keine Comet Server Push-Funktionalität zur Verfügung zu stellen), und die Ausführung schneller (für sicher, da Client-Computer GUI macht ohne Übersetzung wie HTML / Javascript / CSS und weniger Datenverarbeitung).

Nach all diesen habe ich berührt nicht die Frage noch, warum JWS nicht so berühmt ist?

Meine Meinung ist, dass es das gleiche wie Brian Knoblauch Kommentar, es ist ohne Bewusstsein.

IT-Leute zu werden von dem Hype von Web-Technologien, Ajax PUSH, GWT angezogen, und all diese Summen Worte sie Bias machen auf Spaß mit unterschiedlichen Technologien oder technische Herausforderungen statt zu lösen, was für die Kunden ist wirklich arbeiten.

Schauen Sie sich auf Citrix. Ich denke, Citrix eigentlich eine gute Idee ist. Citrix können Sie Ihre eigene App Farmen hinter den Kulissen bauen. Es gibt Unmengen von Upgrade- und Umsetzungsstrategien für Sie ohne Auswirkungen auf Client-Erfahrung gehen können. Citrix Einsatz ist extrem einfach, stabil und sicher. Unternehmen verwenden es immer noch. Aber ich denke, JWS ist sogar besser als Citrix. Die Idee der JWS ist Anwendungen auf Client-Rechnern statt Hosting-Tonnen-Server-Farmen laufen, wo Client-Rechner laufen diese Anwendungen selbst in der Lage sind. Das spart Unternehmen viel Geld !!! Mit JWS kann Entwicklungsteam noch Business-Logik und Daten auf Server-Seite bauen. Doch ohne die Web-Verarbeitungseinheit und lassen Sie den Client-Computer den Rendering-Prozess zu tun, ist es erheblich reduziert die Menge an Netzverbrauch und Server-Verarbeitungsleistung.

Ein weiteres Beispiel dafür, warum JWS ist eine erstaunliche Idee ist Blackberry MDS. Blackberry-Anwendungen sind eigentlich Java-Anwendungen translated von Javascript. Mit BB MDS Studio verwenden Sie das GUI-Tool BB app GUI, Codierung GUI-Logik in Javascript zu bauen. Dann Apps werden dann auf einem BES-Server übersetzt und bereitgestellt. Dann wird der BES-Server diese Anwendungen zu BB verteilen. Auf jeder BB, es läuft eine dünne Java App mit GUI-Rendering und Netzwerkfähigkeit nur. Jedes Mal, wenn die App-Daten erfordert, kommuniziert er mit dem BES über Webservices Dienste von anderen Servern zu konsumieren. Ist das nicht nur JWS BB-Version? Es war äußerst erfolgreich.

Schließlich denke ich JWS nicht populär ist, weil, wie Sun wirbt sie. BB wirbt nie, wie gut ihre BB Java-Anwendungen sind, glauben sie Kunden kümmern wird nicht einmal, was es ist. BB wirbt die Vorteile von MDS mit Anwendungen zu entwickeln. Schnell, Kosteneinsparung, Geschäft Return

Nur mein, ein bisschen zu lang, 2 Cent ...:)

Andere Tipps

Ein großes Hindernis für Java Webstart ist wahrscheinlich, dass Sie noch eine JVM installiert sein muss, bevor es sogar Ihre Anwendung kann versuchen, herunterzuladen und zu starten. Jeder hat einen Browser. Nicht jeder hat eine JVM.

Edit: Ich habe da einige Hands-on erworben webstart Erfahrung und kann diese beiden Punkte jetzt hinzufügen:

  • Die Deployment Toolkit Skript und die modularisierten JVM freigegeben irgendwo um Java 1.6u10 die JVM requirement weniger problematisch, da es automatisch eine JVM und die API-Kern und starten sie das Programm wile herunterladen der Rest herunterladen.
  • Web Start ist ernsthaft fehlerhaft. Selbst unter den Java 1.6 Versionen gab es eine, die die gesamte App jedes Mal heruntergeladen, und eine andere, die sie heruntergeladen und scheiterte dann mit einer obskuren Fehlermeldung. Alles in allem kann ich wirklich nicht empfehlen, auf einem solchen fragilen System angewiesen zu sein.

Ich denke, es ist vor allem auf einen Mangel an Bewusstsein. Es funktioniert sehr gut. Ganz nahtlos. App nur Downloads, wenn es das erste Mal ist, gibt es ein Upgrade gewesen, oder wenn die Endbenutzer den Cache gelöscht haben. Große Weise ausgewachsenen Desktop bereitstellen Anwendungen, die Benutzer müssen nicht über die manuelle Upgrade Sorgen!

Das Problem mit Webstart ist, dass Sie tatsächlich etwas ‚Start‘, die so schnell nicht überhaupt ist auch mit einer schnellen Verbindung, während sie mit einem Webapp Sie die URL eingeben und die App ist da.

Auch eine Menge Dinge können mit webstart schief gehen. Vielleicht ist der beabsichtigte Benutzer nicht über die Privilegien benötigt, oder die Proxy von webstart ist falsch konfiguriert, oder etwas schief gelaufen ist mit jre Abhängigkeiten oder gibt es einfach keine Java in erster Linie installiert. Also für den durchschnittlichen John Doe im Internet ist es überhaupt nicht angenehm.

In kontrollierten Umgebungen wie ein Unternehmen ist es eine gute und einfache Lösung in vielen Fällen.

Ich habe seit ein paar Jahren über eine Benutzerbasis von wenigen tausend und seine automatische Upgrades sind eigentlich eine große Schmerzen auf einer JWS-implementierte Anwendung gearbeitet.

Bei jedem Update aus irgendeinem Grunde Dutzenden von Benutzern erhalten „stuck in the middle“. Alles, was Sie ist die „Klasse nicht gefunden“ erhalten Ausnahme (wenn man Glück hat), oder uninformativ „nicht in der Lage zu starten“ von JWS, bevor es zu einem Code wird noch. Sieht aus wie das Update Halb heruntergeladen wird. Oder, mit anderen Worten, es nicht herunterladen und anwenden das Update atomar und hat schlechten Caching, so dass die App aus der gleichen URL Neubelebung nicht alles reparieren.

Es gibt keinen Weg, um es anderen zu lösen als JWS Cache zu löschen oder eine andere URL bereitstellt (zum Beispiel ?dummyparam=jwssucks am Ende anhängen). Ich selbst als Entwickler traf es manchmal und sieht keinen Weg, um.

Wenn es funktioniert, es funktioniert. Aber zu oft tut es nicht, und dann ist es ein großer Schmerz für Sie und Ihre Helpdesk. Ich würde es für Unternehmen oder unternehmenskritischen Einsatz nicht empfehlen.

Es ist ein sehr großes Problem, nämlich, dass es nicht erlaubt „sofort das Programm starten und dann überprüfen und downloaden Sie alle Aktualisierungen im Hintergrund“ Einsätze, das ist, was das De-facto-Verhalten von Anwendungen zu konvergieren.

Ich halte diese persönlich so groß, ein Ärgernis, dass wir aktiv auf der Suche nach einer anderen Technik werden in dem es heißt.

Von diesen Posten wie es aussieht, wenn Web Start verwendet, ist es wichtig, eine gute Versorgung über den Server zu machen. Der „große Schmerz“ Anwendung des Herunterladens bei jedem Start kann vom Server geliefert durch falsche Zeitstempel verursacht werden. Hier nicht die Anwendung aber der Server muss so konfiguriert sein Caching richtig zu nutzen und nicht nur sie zu deaktivieren. Über Buggy Start, bin ich nicht so viel sicher, aber es scheint mir, dass dies auch durch unzuverlässige Verbindung verursacht werden kann.

Wichtige Vorteile von Web Start ist, dass es schön mit OpenJDK unter Linux funktioniert. Kunden einiger glücklich Entwickler verwenden nur Windows, aber meine Kunden nicht.

HTML und JavaScript, um in der ersten Frage erwähnt, sind leichter Ansätze, die mit kleineren Aufgaben wie animierten Schaltflächen oder sogar interaktive Tabellen funktionieren. Java Nische scheint sich um viel komplexere Aufgaben.

Java Web Start ist eine Art Nachfolger von Java-Applets und Applets wurde um das neue Jahrtausend verbrannt. Aber ich denke immer noch, Java-Applets sind viel besser als GWT oder Javascript Hölle.

Java Web Start vs Embedded Java-Applet

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top