0
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1
Процесс измененийплатформы JavaАлексей ФёдоровSoftware Engineer, Oracle,JCK, Java Platform GroupJEEConf 2013, Киев,24 апре...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3«А ты кто такой?» Software Engineer– Cначала были во...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4Компромиссы в обновлении платформы Java Java Platfor...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5The following is intended to outline our general prod...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6С чем работает Java-приложение?Ваше Java-приложение
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7С чем работает Java-приложение?JDKHardwareFrameworksO...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8С чем работает Java-приложение?JDKHardwareFrameworksO...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9Как исправлять багиOSJDKFrameworksAppHardware
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10ОбновленияМинимизируйте время на обновлениеВашего п...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11ОбновленияМинимизируйте время на обновлениеВашего п...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12Обновления Java Типы обновлений:– Release update 7...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13Обновления Java Типы обновлений:– Release update 7...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14Обновления Java и политикаhttps://twitter.com/navaln...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21Номера обновлений в JDK 7 Раз в два месяца Чётные–...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22Нечётные обновления – Security Baseline Updates Пат...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23Нечётные обновления – Security Baseline Updates Пат...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24О пропавшем апдейте 7u197u177u19– 7u19-b01– 7u19-b...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25О пропавшем апдейте 7u197u177u19– 7u19-b01– 7u19-b...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26О пропавшем апдейте 7u197u177u18?7u19– 7u19-b01– ...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27О пропавшем апдейте 7u197u17  Exploit 7u21• 7u21-...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28Чётные обновления – Feature UpdatesПример: Java™ SE ...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.29Другие технологии Java SE– Standalone Technologies...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30Ключевое правило
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31Ключевое правилоНе бывает 100%-совместимых изменений!
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32Протокол взаимодействияAPI spec(aka Javadoc)JLS 8 JS...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33Спецификация платформы Java – это протокол!SMTP Тыс...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34Как управлять изменениями в JavaOpenJDK / Oracle JDK...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35Как управлять изменениями в JavaOpenJDK / Oracle JDK...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36Как мы управляем изменениями? Специальные процессы,...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37Какие изменения допустимы?Предлагаемое изменение Upd...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38ПримерBug 5045147 Bug 2188127Adding null key to empt...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.39«Давайте разрешим менять спецификацию чаще!» Кто на...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.40Наши инструменты (TCK Tools) Постоянно проверяются ...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.41Выход Java 8 передвинут на март 2014 года http://mr...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.42Что в итоге Обновление платформы, используемой сотн...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.43Что в итоге Обновление платформы, используемой сотн...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.44Компромиссы в обновлении платформы Java Java Platfo...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.45Компромиссы в обновлении платформы Java Java Platfo...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.46Компромиссы в обновлении платформы Java Java Platfo...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.47Компромиссы в обновлении платформы Java Java Platfo...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.48Вопросы и ответыАлексей ФёдоровSoftware Engineer, Or...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.49Спасибо!Алексей ФёдоровSoftware Engineer, Oracle, JC...
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.50
Upcoming SlideShare
Loading in...5
×

Процесс изменения платформы Java

883

Published on

Слайды с моего выступления на JEEConf 2013 в Киеве

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
883
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Процесс изменения платформы Java"

  1. 1. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1
  2. 2. Процесс измененийплатформы JavaАлексей ФёдоровSoftware Engineer, Oracle,JCK, Java Platform GroupJEEConf 2013, Киев,24 апреля 2013 года
  3. 3. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3«А ты кто такой?» Software Engineer– Cначала были военные,– потом legacy systems на Java EE– С 2011 года в Oracle: JCK Team, Java Platform Group Community driver:– JUG.ru, CodeFreeze, JPoint Peopleware advocate ФМЛ 239 (2004), СПбГУ (2009), к.ф.-м.н. (2011). @23derevo, http://about.me/alexey.fyodorov
  4. 4. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4Компромиссы в обновлении платформы Java Java Platform Trade-offs:– Cкорость выхода новых версий vs. качество– Cкорость vs. частота выпуска CPU– Совместимость vs. развитиеИнженерное искусство – это искусство компромисса!A trade-off (or tradeoff) is a situation that involveslosing one quality or aspect of something in returnfor gaining another quality or aspect.
  5. 5. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5The following is intended to outline our general productdirection. It is intended for information purposes only, andmay not be incorporated into any contract.It is not a commitment to deliver any material, code, orfunctionality, and should not be relied upon in makingpurchasing decisions. The development, release, andtiming of any features or functionality described forOracle’s products remains at the sole discretion of Oracle.
  6. 6. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6С чем работает Java-приложение?Ваше Java-приложение
  7. 7. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7С чем работает Java-приложение?JDKHardwareFrameworksOSВаше Java-приложение
  8. 8. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8С чем работает Java-приложение?JDKHardwareFrameworksOSВаше Java-приложение
  9. 9. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9Как исправлять багиOSJDKFrameworksAppHardware
  10. 10. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10ОбновленияМинимизируйте время на обновлениеВашего приложенияБиблиотекиОСЖелезо
  11. 11. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11ОбновленияМинимизируйте время на обновлениеВашего приложенияБиблиотекиОСЖелезо
  12. 12. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12Обновления Java Типы обновлений:– Release update 7u17 → 7u21– Major platform update: Java 7 → Java 8
  13. 13. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13Обновления Java Типы обновлений:– Release update 7u17 → 7u21– Major platform update: Java 7 → Java 8 Радикальное «обновление»: смена поставщика
  14. 14. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14Обновления Java и политикаhttps://twitter.com/navalny/status/326243610418884610Алексей Навальный, 22 апреля 2013 года
  15. 15. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
  16. 16. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …– 7u8 ?– 7u9, 7u10, 7u11…– 7u12?
  17. 17. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …– 7u8 ?– 7u9, 7u10, 7u11…– 7u12?7u13, 7u15, 7u17 …
  18. 18. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …– 7u8 ?– 7u9, 7u10, 7u11…– 7u12?7u13, 7u15, 7u17 …– 7u19 ?
  19. 19. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …– 7u8 ?– 7u9, 7u10, 7u11…– 7u12?7u13, 7u15, 7u17 …– 7u19 ?– 7u21 !
  20. 20. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20Java 7 Updates versioning7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …– 7u8 ?– 7u9, 7u10, 7u11…– 7u12?7u13, 7u15, 7u17 …– 7u19 ?– 7u21 !
  21. 21. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21Номера обновлений в JDK 7 Раз в два месяца Чётные– Исправление ошибок– Новая функциональность Нечётные– Исправление ошибок– Обновления системы безопасности (CPU) CPU = Critical Patch Update
  22. 22. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22Нечётные обновления – Security Baseline Updates Патч, закрывающий любую уязвимость в JDK 7 долженбыть портирован в JDK 6 и все более ранние
  23. 23. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23Нечётные обновления – Security Baseline Updates Патч, закрывающий любую уязвимость в JDK 7 долженбыть портирован в JDK 6 и все более ранние Начальный план: обновлять трижды в год
  24. 24. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24О пропавшем апдейте 7u197u177u19– 7u19-b01– 7u19-b02– 7u19-b03– …
  25. 25. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25О пропавшем апдейте 7u197u177u19– 7u19-b01– 7u19-b02– 7u19-b03– … Exploit
  26. 26. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26О пропавшем апдейте 7u197u177u18?7u19– 7u19-b01– 7u19-b02– 7u19-b03– … Exploit
  27. 27. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27О пропавшем апдейте 7u197u17  Exploit 7u21• 7u21-b01• 7u21-b02• 7u21-b03• …
  28. 28. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28Чётные обновления – Feature UpdatesПример: Java™ SE 7 Update 4 Highlights JDK Support for Mac OS X New JVM (Java HotSpot Virtual Machine, version 23) New Supported Garbage Collector: Garbage First (G1) JavaFX 2.1 Runtime co-installs with JRE 7during auto-update JAXP upgraded to 1.4.6 Java DB upgraded to 10.8.2.2 SPARC T4 specific crypto optimizations in the security area New flag to unlock Commercial Features
  29. 29. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.29Другие технологии Java SE– Standalone Technologies JAXP, JAXB, JNLP, JAX-WS– Везде своя нумерация!– IANA Time Zone Database (aka Olson Data)– New platform support: Mac OS X, Windows 8 etc.– New HotSpot VM versions: new GC, new –XX options Not Java SE
  30. 30. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30Ключевое правило
  31. 31. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31Ключевое правилоНе бывает 100%-совместимых изменений!
  32. 32. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32Протокол взаимодействияAPI spec(aka Javadoc)JLS 8 JSR 337 JVMS8StandalonedocumentsСпецификация конкретнойверсии платформы Javaиграет роль протокола!
  33. 33. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33Спецификация платформы Java – это протокол!SMTP Тысячи серверов Тысячи клиентов тысячи + тысячи = тысячи Timeline1982 – RFC 8212001 – RFC 28212008 – RFC 5321… а протокол не может меняться слишком частоJava Миллионы Java-приложений Тысячи реализаций Java миллионы + тысячи = миллионы Timeline1996 – JDK 1.0 2002 – J2SE 1.41997 – J2SE 1.1 2004 – J2SE 5.01998 – J2SE 1.2 2006 – Java SE 62000 – J2SE 1.3 2011 – Java SE 7
  34. 34. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34Как управлять изменениями в JavaOpenJDK / Oracle JDK JDK QA Community Java-программисты повсему миру
  35. 35. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35Как управлять изменениями в JavaOpenJDK / Oracle JDK JDK QA Community Java-программисты повсему мируJava от других вендоровДолжна пройти процедурусертифицикации Java Compatibility Kit (JCK) Сотни тысяч тестов Feedback от лицензиатов
  36. 36. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36Как мы управляем изменениями? Специальные процессы, процедуры и политики– Множественное ревью на предмет Сompatibility,Security, Performance etc.– Tracking– Accepting / Rejecting– Проверяются изменения В спецификации В реализации JCP + OpenJDK
  37. 37. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37Какие изменения допустимы?Предлагаемое изменение Update Major releaseДобавить что-нибудь в Public API(пакет / класс / метод / поле)- +Удалить что-нибудь из Public API - -*Добавить что-нибудь в Private API + +Удалить что-нибудь из Private API +** +Изменить спецификацию чего-нибудь - +**Исправить ошибку (несоответствиеповедения требуемому в спецификации)+**,*** +* - @Deprecated, @Override** - проанализировать риски*** - см. следующий слайд
  38. 38. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38ПримерBug 5045147 Bug 2188127Adding null key to empty TreeMapwithout Comparator should throw NPE
  39. 39. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.39«Давайте разрешим менять спецификацию чаще!» Кто начнёт сходить с ума?– Пользователи– Инженеры Java Platform– Лицензиаты Java Совместимость может нарушаться!– Java SE 7 and JDK 7 Compatibility Compatibility: binary, source, behavioral Incompatibilities– between Java SE 7 and Java SE 6– between JDK 7 and JDK 6
  40. 40. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.40Наши инструменты (TCK Tools) Постоянно проверяются изменения в сигнатурах– SigTest - http://sigtest.java.net/ JDK – Public API– Жёсткие правила для Major Releases– Очень жёсткие правила для Updates NetBeans – Plugin API– Разметка спецификации и привязка тестов SpecTrac / SpecDiffhttp://jcp.org/en/resources/tdk
  41. 41. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.41Выход Java 8 передвинут на март 2014 года http://mreinhold.org/blog/secure-the-train– Люди не берутся из ниоткуда– Добавляя людей в конце проекта сроки не уменьшить– Какие рассматривались варианты? Выкинуть Lambda Выпустить в срок с сыроватыми Lambda Подвинуть на полгода http://openjdk.java.net/projects/jdk8/
  42. 42. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.42Что в итоге Обновление платформы, используемой сотнямимиллионов людей– это очень сложный процесс! Разные политики обновления для Major Releases(Java 7 → Java 8) и для Updates (7uXX)– Отслеживание/Управление изменениями– Специальные процессы– Review изменений разными командами– Инструменты: SpecTrac, SigTest и другие
  43. 43. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.43Что в итоге Обновление платформы, используемой сотнямимиллионов людей– это очень сложный процесс! Разные политики обновления для Major Releases(Java 7 → Java 8) и для Updates (7uXX)– Отслеживание/Управление изменениями– Специальные процессы– Review изменений разными командами– Инструменты: SpecTrac, SigTest и другие Мы заботимся об экосистеме Java!
  44. 44. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.44Компромиссы в обновлении платформы Java Java Platform Trade-offs:Инженерное искусство – это искусство компромисса!A trade-off (or tradeoff) is a situation that involveslosing one quality or aspect of something in returnfor gaining another quality or aspect.
  45. 45. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.45Компромиссы в обновлении платформы Java Java Platform Trade-offs:– Cкорость выхода новых версий vs. качествоИнженерное искусство – это искусство компромисса!A trade-off (or tradeoff) is a situation that involveslosing one quality or aspect of something in returnfor gaining another quality or aspect.
  46. 46. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.46Компромиссы в обновлении платформы Java Java Platform Trade-offs:– Cкорость выхода новых версий vs. качество– Cкорость vs. частота выпуска CPUИнженерное искусство – это искусство компромисса!A trade-off (or tradeoff) is a situation that involveslosing one quality or aspect of something in returnfor gaining another quality or aspect.
  47. 47. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.47Компромиссы в обновлении платформы Java Java Platform Trade-offs:– Cкорость выхода новых версий vs. качество– Cкорость vs. частота выпуска CPU– Совместимость vs. развитиеИнженерное искусство – это искусство компромисса!A trade-off (or tradeoff) is a situation that involveslosing one quality or aspect of something in returnfor gaining another quality or aspect.
  48. 48. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.48Вопросы и ответыАлексей ФёдоровSoftware Engineer, Oracle, JCK Team, Java Platform Groupalexey.x.fedorov@oracle.com @23derevo
  49. 49. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.49Спасибо!Алексей ФёдоровSoftware Engineer, Oracle, JCK Team, Java Platform Groupalexey.x.fedorov@oracle.com @23derevo
  50. 50. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.50
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×