JavaRush /จาวาบล็อก /Random-TH /การเปิดตัว JDK เวอร์ชันใหม่บ่อยครั้งจะนำไปสู่อะไร?

การเปิดตัว JDK เวอร์ชันใหม่บ่อยครั้งจะนำไปสู่อะไร?

เผยแพร่ในกลุ่ม
เป็นยุคแห่งการเปลี่ยนแปลงของ Java เวอร์ชัน JDK จะได้รับการเผยแพร่ตามกำหนดเวลา แทนที่จะเป็นฟังก์ชันใหม่ที่จะพร้อมใช้งาน วิธีนี้มีข้อดีและข้อเสีย แต่การเปลี่ยนแปลงดังกล่าวจะส่งผลต่อ JDK 8 อย่างไร Simon Ritter ผู้เผยแพร่ Java ที่มีชื่อเสียง แชมป์ Java และรอง CTO ของ Azul Systems อธิบายว่าทำไม "Java ใหม่ตามกำหนดเวลา" จึงเป็นการแลกเปลี่ยนระหว่างความเสถียร ความปลอดภัย และต้นทุน
การเปิดตัว JDK เวอร์ชันใหม่บ่อยครั้งจะนำไปสู่อะไร - 1
ในปี 2561 การเปลี่ยนแปลงครั้งสำคัญกำลังรอคอยโลกของ Java ตามที่ได้ประกาศไปเมื่อปีที่แล้ว เรากำลังจะเปิดตัวเวอร์ชัน JDK ตามกำหนดเวลา แทนที่จะออกเวอร์ชันเมื่อมีฟังก์ชันใหม่พร้อมใช้งาน นี่เป็นข่าวดีเพราะขณะนี้ฟีเจอร์ใหม่ๆ จะถูกรวมไว้ในรุ่นต่างๆ เมื่อพร้อม และนักพัฒนาจะสามารถเข้าถึงฟีเจอร์เหล่านั้นได้เร็วยิ่งขึ้นมาก JDK 10 มีกำหนดวางจำหน่ายในเดือนมีนาคม และเราได้เข้าสู่การแก้ไขข้อบกพร่องระยะที่ 2 แล้ว ดังนั้นทุกอย่างจึงเป็นไปตามแผน Java Specification Request (JSR) อยู่ระหว่างการพัฒนาและพร้อมสำหรับความคิดเห็นสาธารณะ มีแม้กระทั่งข้อเสนอการปรับปรุง JDK (JEP) ที่กำหนดเป้าหมายJDK 11 อยู่ แล้ว ดูเหมือนว่า Java จะทำได้ดีมาก

กาลเวลาเปลี่ยนไป

อย่างไรก็ตาม มีการเปลี่ยนแปลงอื่นๆ อีกมากมายที่เกี่ยวข้องกับกำหนดการเปิดตัวนี้ซึ่งจะปรากฏให้เห็นในปีนี้ และอาจไม่น่าพอใจนัก กว่า 22 ปีครึ่งที่เราได้ทำความคุ้นเคยกับความจริงที่ว่า Java ในฐานะแพลตฟอร์ม มีคุณสมบัติพื้นฐานสามประการที่เกี่ยวข้องโดยตรงกับวิธีการรองรับ
  1. ความมั่นคง ก่อนหน้านี้ คุณลักษณะที่เพิ่มเข้ามาใน JDK รุ่นใหม่ แม้ว่าจะผ่านการทดสอบอย่างละเอียดแล้ว แต่จำเป็นต้องมีการทดสอบในการใช้งานจริง สิ่งนี้ช่วยระบุข้อบกพร่องที่จำเป็นต้องแก้ไข เพื่อให้แน่ใจว่าผู้ใช้สามารถทำงานกับบิลด์ที่เสถียรต่อไปในขณะที่ทดสอบบิลด์ใหม่ การอัปเดตจึงทับซ้อนกันบางส่วนตามเวลาเสมอ

    หากเราดูสองสามรุ่นล่าสุดที่เริ่มต้นด้วย JDK 6 เราจะเห็นว่าการอัปเดตสำหรับ JDK 5 ยังคงได้รับการเผยแพร่ต่อไปอีกเกือบ 3 ปี (2 ปี 11 เดือนที่แน่นอน) ด้วยการเปิดตัว JDK 7 การอัปเดตสาธารณะสำหรับ JDK 6 ได้รับการเผยแพร่เป็นเวลาหนึ่งปีและ 9 เดือน และการอัปเดตสำหรับ JDK 7 ได้รับการเผยแพร่ภายใน 13 เดือนนับจากการเปิดตัว JDK 8


  2. ความปลอดภัย . ทีมพัฒนาและสนับสนุน OpenJDK, Oracle และก่อนหน้านั้น Sun Microsystems (บริษัทที่สร้าง Java, หมายเหตุบรรณาธิการ) ให้ความสำคัญกับความปลอดภัยของแพลตฟอร์มมาโดยตลอด อย่างที่คุณจำได้ เดิมที Java มีไว้สำหรับอุปกรณ์พกพา (โดยเฉพาะ Star7 PDA)



    เป้าหมายการพัฒนาที่สำคัญประการหนึ่งคือเพื่อให้แน่ใจว่าโค้ดสามารถถ่ายโอนผ่านเครือข่ายและดำเนินการได้อย่างปลอดภัย มีการเผยแพร่การอัปเดตเป็นประจำสำหรับ JDK ซึ่งรวมถึงแพตช์สำหรับปัญหาด้านความปลอดภัยที่ค้นพบ หากคุณติดตั้งโปรแกรมปรับปรุงเหล่านี้ทันทีหลังจากที่เผยแพร่ คุณจะปลอดภัยอย่างสมบูรณ์


  3. ต้นทุนเป็นศูนย์ สิ่งที่ยอดเยี่ยมอย่างหนึ่งเกี่ยวกับ Java ก็คือมันเป็นแพลตฟอร์มฟรีมาโดยตลอด แม้กระทั่งก่อนที่จะเปิดตัวเป็นซอฟต์แวร์โอเพ่นซอร์สในปี 2549 ก็ตาม มีข้อจำกัดบางประการเกี่ยวกับตำแหน่งที่สามารถใช้ Java ได้ฟรี แต่สิ่งนี้ใช้ได้กับแอปพลิเคชันมือถือและแอปพลิเคชันแบบฝังเสมอ สำหรับไคลเอนต์เดสก์ท็อปและเซิร์ฟเวอร์องค์กร Java เวอร์ชันปัจจุบันจะให้บริการฟรีเสมอ หนึ่งในการเปลี่ยนแปลงที่กำลังดำเนินการกับ JDK คือการเปิดตัวโปรแกรมปฏิบัติการ OpenJDK ภายใต้ลิขสิทธิ์ GPLv2 โดยมีข้อยกเว้น "Classpath" ใบอนุญาตนี้ไม่ได้กำหนดข้อจำกัดใดๆ เกี่ยวกับวิธีการปรับใช้ Java Runtime Environment

อย่างไรก็ตาม การเปลี่ยนแปลงวิธีการพัฒนาและเผยแพร่ JDK จำเป็นต้องพิจารณาแผนการโยกย้ายแอปพลิเคชันไปยัง Java เวอร์ชันใหม่อย่างรอบคอบ ด้วยกำหนดการเปิดตัวใหม่นี้ ความพยายามเพื่อให้แน่ใจว่ามีการอัปเดตสำหรับรุ่นก่อนหน้าหลายรายการอาจไม่สามารถทำได้ เพื่อตอบสนองความต้องการของผู้ใช้สองกลุ่มที่แตกต่างกัน (ผู้ที่ต้องการคุณสมบัติใหม่อย่างรวดเร็วและผู้ที่ให้ความสำคัญกับความเสถียรในระยะยาว) Oracle จึงตัดสินใจเปลี่ยนมาใช้โมเดลการสนับสนุนระยะยาว (LTS) JDK เวอร์ชันเฉพาะจะถือเป็นการเผยแพร่ LTS ซึ่งหมายความว่าจะได้รับการอัปเดตเป็นเวลาสามปี การเผยแพร่ระดับกลางอื่นๆ ทั้งหมดเรียกว่า การเผยแพร่ ฟีเจอร์และรับการอัปเดตเพียง 6 เดือนเท่านั้น เพื่อให้ซิงค์กับระบบใหม่นี้ JDK 8 จึงถูกจัดประเภทเป็นรุ่น LTS รุ่นถัดไปจะเป็น JDK 11 ซึ่งมีกำหนดในเดือนกันยายน 2018 การเปลี่ยนแปลงที่ใหญ่ที่สุดที่รุ่นใหม่นี้นำมาคือการอัปเดตระหว่างรุ่นต่างๆ จะไม่ทับซ้อนกันตามเวลาอีกต่อไป ฉันใส่มันด้วยตัวเอียงตัวหนาเป็นพิเศษเพราะมันชัดเจนมาก นี่คือกราฟิกแสดงความพร้อมใช้งานของการอัปเดตสำหรับ JDK รีลีสจนถึง JDK 19
การเปิดตัว JDK - 2 เวอร์ชันใหม่บ่อยครั้งจะนำไปสู่อะไร?
ในรูป: วงจรการใช้งาน Java SE – ตารางเวลา 5 ปีขึ้นไป การอัปเดตสาธารณะไม่มีการทับซ้อนกัน ("การสนับสนุน Cliff") การสนับสนุนเชิงพาณิชย์ของ Oracle Oracle Extended Commercial Support
วงจรการใช้งาน Java SE - การอัปเดตสาธารณะตามกำหนดเวลา 5 ปีขึ้นไป Zero Time Overlap ปฏิบัติการสาธารณะจาก Oracle (ไม่มีการสนับสนุน) Oracle Commercial Support Oracle Extended Commercial Support
ผลที่ตามมาโดยตรงจากการเปลี่ยนแปลงเหล่านี้ แพลตฟอร์ม Java ยังคงมีเสถียรภาพ ปลอดภัย และฟรี แต่ตอนนี้คุณต้องเลือกสองในสามคุณสมบัตินี้ ในการปรับใช้ Java ในอนาคต คุณสมบัติทั้งสามจะไม่สามารถใช้ได้ในเวลาเดียวกัน

ให้ฉันอธิบายเพิ่มเติมเล็กน้อย

สมมติว่าคุณกังวลเกี่ยวกับความปลอดภัย (อย่างที่ควรจะเป็น) แต่คุณไม่ต้องการใช้จ่ายเงิน ในกรณีนี้ คุณต้องย้ายไปยัง JDK เวอร์ชันใหม่ทันทีที่เผยแพร่ ในกรณีที่การสนับสนุนไม่ทับซ้อนกันตามเวลา (ฟีเจอร์และ LTS ที่เผยแพร่) คุณจะต้องดำเนินการนี้เพื่อรับการแก้ไขด้านความปลอดภัยใหม่ น่าเสียดายที่หากไม่มีเวลาทับซ้อนกัน คุณจะต้องย้ายไปยังรุ่น JDK ที่ยังไม่ได้ทดสอบในการผลิตทันที ดังนั้นคุณจะสูญเสียความเสถียรก่อนหน้านี้ อีกทางเลือกหนึ่งคือเลือกความเสถียรโดยไม่มีค่าใช้จ่าย อีกครั้ง สิ่งนี้เป็นไปได้: สิ่งที่คุณต้องทำคือใช้ LTS เวอร์ชันก่อนหน้าต่อไปหลังจากที่เวอร์ชันใหม่ออกวางจำหน่าย คุณจะได้รับความเสถียรเท่าเดิม คุณไม่จำเป็นต้องจ่ายอะไรเลย แต่คุณจะไม่ได้รับแพตช์ด้านความปลอดภัยใดๆ เนื่องจากไม่มีให้ใช้งานในรุ่นนี้อีกต่อไป สุดท้ายนี้ หากคุณต้องการความมั่นคงและความปลอดภัย คุณจะต้องจ่ายเงิน คุณสามารถใช้ LTS รุ่นก่อนหน้าต่อไปได้ แต่การเข้าถึงความปลอดภัยและการแก้ไขจุดบกพร่องจะมีให้ผ่านสัญญาการสนับสนุนเชิงพาณิชย์เท่านั้น

และบล็อกโฆษณาเล็กๆ น้อยๆ จากผู้เขียน :)

Azul (บริษัทของฉัน) ได้สร้างชุดโปรแกรมปฏิบัติการ OpenJDK ภายใต้แบรนด์ Zulu Enterprise ซึ่งสร้างขึ้นจากแหล่งที่มา ทดสอบด้วยการทดสอบ TCK/JCK และแม้แต่วิเคราะห์ด้วยโปรแกรมอรรถประโยชน์ที่เราพัฒนาขึ้นเพื่อให้แน่ใจว่าไม่มีความเสียหายของโค้ดโอเพ่นซอร์สเนื่องจากส่วนหัวที่ไม่ดี ไฟล์. เราให้โอกาสในการดาวน์โหลดเวอร์ชันปัจจุบันได้ฟรี รวมถึงการสนับสนุนเชิงพาณิชย์สำหรับผู้ที่สนใจ เมื่อเร็วๆ นี้เราได้เริ่มเสนอตัวเลือกการสนับสนุนชุดใหม่สำหรับ Zulu โดยมีเป้าหมายเพื่อให้ลูกค้ามีความยืดหยุ่นสูงสุด เราต้องการให้ผู้ใช้สามารถโยกย้ายไปยัง JDK เวอร์ชันใหม่ที่เหมาะสมกับธุรกิจและความต้องการของลูกค้า สำหรับสิ่งนี้ เรามีตัวเลือกการสนับสนุนสามตัวเลือก:
  1. การสนับสนุนระยะสั้น (STS) STS ช่วยให้ผู้ใช้เข้าถึงคุณสมบัติ Java ใหม่ได้รวดเร็วที่สุด พร้อมการรองรับที่เพียงพอสำหรับการเปลี่ยนไปใช้ JDK รุ่นใหม่ ๆ ได้อย่างราบรื่น Zulu Enterprise ให้สิทธิ์เข้าถึงการแก้ไขข้อบกพร่อง การอัปเดตความปลอดภัย และการแก้ไขอื่นๆ ของ STS ตามความจำเป็น (“การสนับสนุนด้านการผลิต”) เป็นเวลา 12 เดือน พร้อมการสนับสนุนเพิ่มเติมอีก 6 เดือนที่เน้นไปที่การสนับสนุนการให้คำปรึกษา และช่วยเหลือผู้ใช้ในการโยกย้ายไปยัง JDK เวอร์ชันที่ใหม่กว่า ("การสนับสนุนเพิ่มเติม") ซึ่งเท่ากับวงจรชีวิต 18 เดือน

  2. การสนับสนุนระยะกลาง (MTS) การเผยแพร่ MTS อนุญาตให้คุณใช้คุณลักษณะใหม่ที่มีอยู่ในการเผยแพร่คุณลักษณะในการผลิตโดยไม่ต้องรอ LTS ใหม่ Azul วางแผนการเปิดตัว MTS หนึ่งครั้งต่อปีระหว่างการเปิดตัว LTS และให้การสนับสนุนการผลิตเป็นเวลา 18 เดือนหลังจากวันที่เผยแพร่ LTS ที่พร้อมใช้งานทั่วไปครั้งถัดไป ซึ่งช่วยให้มั่นใจว่าเวลาที่ทับซ้อนกันและการเปลี่ยนแปลง "ราบรื่น" ระหว่างการใช้งานจริง หลังจากการสนับสนุนการผลิตสิ้นสุดลง จะมีการสนับสนุนเพิ่มเติมอีก 12 เดือน

  3. การสนับสนุน ระยะยาว (LTS) จัดทำขึ้นสำหรับการเปิดตัว LTS ที่พิจารณาโดยชุมชน OpenJDK และให้การสนับสนุนการผลิตเป็นเวลา 8 ปีพร้อมการสนับสนุนเพิ่มเติมอีกสองปี
นี่คือภาพวาดอื่นเพื่อให้ชัดเจนยิ่งขึ้น
การเปิดตัว JDK - 3 เวอร์ชันใหม่บ่อยครั้งจะนำไปสู่อะไร?
ในรูป: วงจรการใช้งาน Java SE – ตารางเวลา 5 ปีขึ้นไป Oracle ไบนารีที่เปิดเผยต่อสาธารณะ (ไม่รองรับ) Oracle Commercial Support Oracle Extended Commercial Support Azul Zulu Production Commercial Support Azul Zulu Extended (Passive) Commercial Support
วงจรการใช้งาน Java SE - กำหนดการปฏิบัติการสาธารณะ 5 ปีขึ้นไปจาก Oracle (ไม่รองรับ) การสนับสนุนเชิงพาณิชย์ของ Oracle Oracle การสนับสนุนเชิงพาณิชย์แบบขยาย การสนับสนุนการผลิตเชิงพาณิชย์จาก Azul Zulu การสนับสนุนเชิงพาณิชย์แบบขยาย (พาสซีฟ) จาก Azul Zulu
หากคุณกำลังใช้ JDK 8 โดยไม่มีสัญญาการสนับสนุนเชิงพาณิชย์ และกำลังรักษาระบบของคุณให้เสถียรและปลอดภัยผ่านการอัปเดตสาธารณะ คุณอาจต้องการพิจารณาว่าคุณจะทำอะไรเริ่มตั้งแต่เดือนกันยายน Azul มุ่งมั่นที่จะช่วยเหลือคุณในเรื่องนี้ ดังนั้นอย่าลังเลที่จะติดต่อเราหากคุณต้องการความช่วยเหลือ

ข้อสรุป

มีหลายแง่มุมของแพลตฟอร์ม Java ที่มีการเปลี่ยนแปลงในปีนี้ โดยส่วนใหญ่จะดีขึ้น เข้าถึงคุณสมบัติใหม่ๆ ได้เร็วขึ้น ยูทิลิตี้รุ่นเปิด เช่น Flight Recorder และ Mission Control การเปิดตัวโปรแกรมปฏิบัติการ OpenJDK ภายใต้ลิขสิทธิ์ GPLv2 โดยมีข้อยกเว้น "Classpath" อย่างไรก็ตาม ความจริงที่น่าเศร้าก็คือ การสนับสนุนฟรีสำหรับแพลตฟอร์ม Java ตามปกติกำลังกลายเป็นเรื่องในอดีตไปแล้ว Java ยังคงเสถียร ปลอดภัย และฟรี คุณสมบัติสองในสามข้อใดที่สำคัญที่สุดสำหรับคุณและผู้ใช้ของคุณ
การเปิดตัว JDK - 4 เวอร์ชันใหม่บ่อยครั้งจะนำไปสู่อะไร?

เกี่ยวกับผู้เขียน

Simon Ritter ดำรงตำแหน่งรองผู้อำนวยการฝ่ายเทคนิคของ Azul Systems Simon อยู่ในธุรกิจไอทีมาตั้งแต่ปี 1984 และสำเร็จการศึกษาระดับปริญญาตรีสาขาฟิสิกส์จากมหาวิทยาลัย Brunel ในสหราชอาณาจักร

Simon เข้าร่วม Sun Microsystems ในปี 1996 และใช้เวลาทั้งในด้านการพัฒนา Java และการให้คำปรึกษา ตั้งแต่ปี 1999 เขาได้สาธิตเทคโนโลยี Java ให้กับนักพัฒนา โดยมุ่งเน้นไปที่ทั้งแพลตฟอร์ม Java หลักและไคลเอนต์และแอปพลิเคชันแบบฝังตัว ปัจจุบันที่ Azul Systems เขายังคงช่วยให้ผู้คนเข้าใจผลิตภัณฑ์ JVM ของ Java และผลิตภัณฑ์ Azul ได้ดีขึ้น คุณสามารถติดตามเขาได้บน Twitter : @speakjava

ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION