JavaRush /Java-Blog /Random-DE /Wozu führt die häufige Veröffentlichung neuer Versionen d...

Wozu führt die häufige Veröffentlichung neuer Versionen des JDK?

Veröffentlicht in der Gruppe Random-DE
Es ist eine Ära des Wandels für Java. JDK-Versionen werden nun nach einem Zeitplan veröffentlicht und nicht erst, wenn neue Funktionen verfügbar werden. Dieser Ansatz hat seine Vor- und Nachteile, aber wie werden sich solche Änderungen auf JDK 8 auswirken? Simon Ritter, renommierter Java-Evangelist, Java-Champion und Associate CTO bei Azul Systems, erklärt, warum das „neue Java im Zeitplan“ einen Kompromiss zwischen Stabilität, Sicherheit und Kosten darstellt.
Wozu führt die häufige Veröffentlichung neuer Versionen des JDK? - 1
Im Jahr 2018 stehen der Java-Welt bedeutende Veränderungen bevor. Wie letztes Jahr angekündigt, gehen wir dazu über, JDK-Versionen auf geplanter Basis zu veröffentlichen, anstatt Versionen zu veröffentlichen, sobald neue Funktionen verfügbar werden. Das sind großartige Neuigkeiten, denn jetzt werden neue Funktionen in Releases aufgenommen, sobald sie fertig sind, und Entwickler werden viel schneller darauf zugreifen können. Die Veröffentlichung von JDK 10 ist für März geplant und wir sind bereits in Phase zwei der Fehlerbehebungen eingetreten, sodass alles nach Plan läuft. Der Java Specification Request (JSR) befindet sich bereits in der aktiven Entwicklung und steht für öffentliche Kommentare zur Verfügung. Es gibt sogar JDK-Erweiterungsvorschläge (JEPs), die bereits auf JDK 11 abzielen . Es sieht so aus, als ob Java großartig läuft.

Zeiten ändern sich

Mit diesem Veröffentlichungsplan sind jedoch noch viele andere Änderungen verbunden, die sich in diesem Jahr bemerkbar machen werden und möglicherweise nicht so erfreulich sind. Im Laufe von 22,5 Jahren ist es uns gelungen, uns an die Tatsache zu gewöhnen, dass Java als Plattform drei grundlegende Eigenschaften hat, die direkt mit der Art und Weise ihrer Unterstützung zusammenhängen.
  1. Stabilität . Zuvor mussten Funktionen, die mit einer neuen Version des JDK hinzugefügt wurden, zwar gründlich getestet, aber in der Produktion getestet werden. Dies half dabei, Mängel zu erkennen, die behoben werden mussten. Um sicherzustellen, dass Benutzer beim Testen eines neuen Builds weiterhin mit stabilen Builds arbeiten konnten, überlappten sich Updates immer teilweise zeitlich.

    Wenn wir uns die letzten Veröffentlichungen beginnend mit JDK 6 ansehen, sehen wir, dass Updates für JDK 5 noch fast drei Jahre lang veröffentlicht wurden (2 Jahre und 11 Monate, um genau zu sein). Mit der Einführung von JDK 7 wurden für ein Jahr und 9 Monate öffentliche Updates für JDK 6 veröffentlicht. Und Updates für JDK 7 wurden innerhalb von 13 Monaten nach der Veröffentlichung von JDK 8 veröffentlicht.


  2. Sicherheit . Die OpenJDK-Entwicklungs- und Supportteams, Oracle und vor ihnen Sun Microsystems (das Unternehmen, das Java entwickelt hat, Anm. d. Red.) haben die Plattformsicherheit immer an die erste Stelle gesetzt. Wie Sie sich erinnern, war Java ursprünglich für mobile Geräte (insbesondere Star7-PDAs) gedacht.



    Eines der wichtigsten Entwicklungsziele bestand darin, sicherzustellen, dass Code über das Netzwerk übertragen und sicher ausgeführt werden kann. Für das JDK werden regelmäßig Updates veröffentlicht, die Patches für erkannte Sicherheitsprobleme enthalten. Wenn Sie diese Updates sofort nach ihrer Veröffentlichung installieren, sind Sie auf der sicheren Seite.


  3. Keine Kosten . Das Tolle an Java ist, dass es schon immer eine kostenlose Plattform war, schon bevor es 2006 als Open-Source-Software veröffentlicht wurde. Es gab bestimmte Einschränkungen, wo Java lizenzgebührenfrei genutzt werden konnte, aber dies galt immer für mobile und eingebettete Anwendungen; für Desktop-Clients und Unternehmensserver war die aktuelle Version von Java immer kostenlos. Eine der bereits laufenden Änderungen am JDK ist die Veröffentlichung ausführbarer OpenJDK-Dateien unter der GPLv2-Lizenz mit der Ausnahme „Classpath“. Diese Lizenz enthält keine Einschränkungen hinsichtlich der Art und Weise, wie Sie die Java-Laufzeitumgebung bereitstellen können.

Änderungen in der Art und Weise, wie das JDK entwickelt und veröffentlicht wird, erfordern jedoch eine sorgfältige Prüfung der Pläne zur Migration von Anwendungen auf neue Java-Versionen. Mit diesem neuen Release-Zeitplan sind Bemühungen, sicherzustellen, dass Updates für mehrere frühere Releases verfügbar sind, möglicherweise nicht durchführbar. Um den Bedürfnissen zweier unterschiedlicher Benutzergruppen gerecht zu werden (diejenigen, die schnell neue Funktionen benötigen, und diejenigen, die Wert auf langfristige Stabilität legen), hat sich Oracle für den Übergang zu einem Modell mit langfristigem Support (LTS) entschieden. Bestimmte Versionen des JDK gelten als LTS-Releases, was bedeutet, dass sie drei Jahre lang Updates erhalten. Alle anderen Zwischenversionen werden Feature- Releases genannt und erhalten nur 6 Monate lang Updates. Um mit diesem neuen System synchron zu bleiben, wurde JDK 8 als LTS-Version klassifiziert. Die nächste Veröffentlichung wird JDK 11 sein und ist für September 2018 geplant. Die größte Änderung, die dieses neue Modell mit sich bringt, besteht darin, dass sich Aktualisierungen zwischen Veröffentlichungen zeitlich nicht mehr überschneiden . Ich habe es ausdrücklich fett und kursiv geschrieben, weil es absolut klar war. Hier ist eine Grafik, die die Verfügbarkeit von Updates für JDK-Versionen bis JDK 19 zeigt.
Wozu führt die häufige Veröffentlichung neuer Versionen von JDK-2?
In der Abbildung: Java SE-Lebenszyklus – Zeitplan für mehr als 5 Jahre. Öffentliche Updates ohne Überlappung („Support Cliff“). Oracle Commercial Support. Oracle Extended Commercial Support
Java SE-Lebenszyklus – 5+ Jahre Zeitplan für öffentliche Updates, keine zeitliche Überlappung, öffentliche ausführbare Dateien von Oracle (kein Support), kommerzieller Support von Oracle, erweiterter kommerzieller Support von Oracle
Als direkte Folge dieser Änderungen ist die Java-Plattform immer noch stabil, sicher und kostenlos, aber jetzt müssen Sie sich für zwei dieser drei Funktionen entscheiden. In zukünftigen Java-Bereitstellungen werden nicht alle drei Eigenschaften gleichzeitig verfügbar sein.

Lassen Sie mich das etwas näher erläutern

Nehmen wir an, Sie machen sich Sorgen um die Sicherheit (was auch der Fall sein sollte), möchten aber kein Geld ausgeben. In diesem Fall müssen Sie auf neue JDK-Versionen migrieren, sobald diese veröffentlicht werden. In Fällen, in denen sich der Support zeitlich nicht überschneidet (Feature- und LTS-Releases), müssen Sie dies tun, um neue Sicherheitsfixes zu erhalten. Leider müssen Sie ohne die zeitliche Überschneidung sofort auf JDK-Releases umsteigen, die noch nicht in der Produktion getestet wurden, sodass Sie die bisherige Stabilität verlieren. Eine andere Möglichkeit besteht darin, Stabilität zum Nulltarif zu wählen. Auch dies ist möglich: Sie müssen lediglich die vorherige LTS-Version weiter verwenden, nachdem die neue veröffentlicht wurde. Sie erhalten die gewohnte Stabilität, müssen nichts bezahlen, erhalten aber keine Sicherheitspatches, da diese für diese Version nicht mehr verfügbar sind. Wenn Sie Stabilität und Sicherheit wollen, müssen Sie schließlich bezahlen. Sie können die vorherige LTS-Version weiterhin verwenden, der Zugriff auf Sicherheits- und Fehlerbehebungen ist jedoch nur über einen kommerziellen Supportvertrag möglich.

Und ein kleiner Werbeblock vom Autor :)

Azul (meine Firma) hat eine Reihe ausführbarer OpenJDK-Dateien unter der Marke Zulu Enterprise erstellt, aus dem Quellcode erstellt, mit TCK/JCK-Tests getestet und sogar mit von uns entwickelten Dienstprogrammen analysiert, um sicherzustellen, dass es aufgrund fehlerhafter Header nicht zu einer Beschädigung des Open-Source-Codes kommt Dateien. Wir bieten die Möglichkeit, die aktuelle Version kostenlos herunterzuladen, sowie kommerziellen Support für Interessierte. Wir haben vor Kurzem damit begonnen, eine Reihe neuer Supportoptionen für Zulu anzubieten, die darauf abzielen, unseren Kunden maximale Flexibilität zu bieten. Wir möchten Benutzern die Möglichkeit bieten, auf eine neue Version des JDK zu migrieren, die ihren Geschäfts- und Kundenanforderungen entspricht. Hierfür bieten wir drei Supportmöglichkeiten an:
  1. Kurzfristiger Support (STS). STS bietet Benutzern den schnellsten Zugriff auf neue Java-Funktionen und bietet ausreichend Unterstützung für einen reibungslosen Übergang zu neueren JDK-Versionen. Zulu Enterprise bietet STS-Releases bei Bedarf Zugriff auf Fehlerbehebungen, Sicherheitsupdates und andere Korrekturen („Produktionssupport“) für 12 Monate sowie 6 Monate zusätzlichen Support, der sich auf Beratungsunterstützung und die Unterstützung von Benutzern bei der Migration auf eine neuere Version des JDK konzentriert ("erweiterte Unterstützung"). Dies entspricht einem Lebenszyklus von 18 Monaten.

  2. Mittelfristige Unterstützung (MTS). Mit MTS-Releases können Sie neue Funktionen, die in Feature-Releases verfügbar sind, in der Produktion nutzen, ohne auf eine neue LTS-Release warten zu müssen. Azul plant eine MTS-Veröffentlichung pro Jahr zwischen den LTS-Veröffentlichungen und bietet Produktionsunterstützung für 18 Monate nach dem nächsten allgemein verfügbaren LTS-Veröffentlichungsdatum. Dies gewährleistet zeitliche Überschneidungen und einen „reibungslosen“ Übergang während der Produktionsbereitstellung. Nach Ende des Produktionssupports wird ein zusätzlicher erweiterter Support von 12 Monaten gewährt.

  3. Langfristiger Support (LTS). Es wird für Veröffentlichungen bereitgestellt, die von der OpenJDK-Community als LTS gelten, und bietet 8 Jahre Produktionsunterstützung sowie weitere zwei Jahre erweiterten Support.
Hier ist eine weitere Zeichnung, um es klarer zu machen.
Wozu führt die häufige Veröffentlichung neuer Versionen von JDK-3?
In der Abbildung: Java SE-Lebenszyklus – 5+ Jahre Zeitplan Oracle Öffentlich verfügbare Binärdateien (nicht unterstützt) Oracle Commercial Support Oracle Extended Commercial Support Azul Zulu Production Commercial Support Azul Zulu Extended (Passive) Commercial Support
Java SE-Lebenszyklus – 5+-Jahres-Plan. Öffentliche ausführbare Dateien von Oracle (kein Support). Oracle Commercial Support. Oracle Extended Commercial Support. Kommerzieller Produktionssupport von Azul Zulu. Erweiterter (passiver) kommerzieller Support von Azul Zulu
Wenn Sie JDK 8 derzeit ohne kommerziellen Supportvertrag nutzen und Ihr System durch öffentliche Updates stabil und sicher halten, sollten Sie sich überlegen, was Sie ab September tun werden. Azul ist bestrebt, Ihnen dabei zu helfen. Zögern Sie also nicht, uns zu kontaktieren, wenn Sie Unterstützung benötigen.

Schlussfolgerungen

Mehrere Aspekte der Java-Plattform verändern sich in diesem Jahr, die meisten davon zum Besseren. Schnellerer Zugriff auf neue Funktionen, offene Veröffentlichung von Dienstprogrammen wie Flight Recorder und Mission Control, Veröffentlichung von ausführbaren OpenJDK-Dateien unter der GPLv2-Lizenz mit der Ausnahme „Classpath“. Die traurige Wahrheit ist jedoch, dass der übliche großzügige kostenlose Support für die Java-Plattform langsam der Vergangenheit angehört. Java ist immer noch stabil, sicher und kostenlos. Welche zwei dieser drei Eigenschaften sind für Sie und Ihre Benutzer am wichtigsten?
Wozu führt die häufige Veröffentlichung neuer Versionen von JDK-4?

Über den Autor

Simon Ritter ist stellvertretender technischer Direktor bei Azul Systems. Simon ist seit 1984 in der IT-Branche tätig und hat einen BSc in Physik von der Brunel University im Vereinigten Königreich.

Simon kam 1996 zu Sun Microsystems und war sowohl in der Java-Entwicklung als auch in der Beratung tätig. Seit 1999 demonstriert er Entwicklern Java-Technologien, wobei der Schwerpunkt sowohl auf der Java-Kernplattform als auch auf Client- und eingebetteten Anwendungen liegt. Jetzt bei Azul Systems hilft er weiterhin Menschen dabei, Java und die JVM-Produkte von Azul besser zu verstehen. Sie können ihm auf Twitter folgen: @speakjava .

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION