SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1
Процесс изменений
платформы Java
Алексей Фёдоров
Software Engineer, Oracle,
JCK, Java Platform Group
JEEConf 2013, Киев,
24 апреля 2013 года
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
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 involves
losing one quality or aspect of something in return
for gaining another quality or aspect.
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5
The following is intended to outline our general product
direction. It is intended for information purposes only, and
may not be incorporated into any contract.
It is not a commitment to deliver any material, code, or
functionality, and should not be relied upon in making
purchasing decisions. The development, release, and
timing of any features or functionality described for
Oracle’s products remains at the sole discretion of Oracle.
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-приложение?
JDK
Hardware
Frameworks
OS
Ваше Java-
приложение
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8
С чем работает Java-приложение?
JDK
Hardware
Frameworks
OS
Ваше Java-
приложение
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9
Как исправлять баги
OS
JDK
Frameworks
App
Hardware
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
 7u17 → 7u21
– Major platform update:
 Java 7 → Java 8
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13
Обновления Java
 Типы обновлений:
– Release update
 7u17 → 7u21
– Major platform update:
 Java 7 → Java 8
 Радикальное «обновление»: смена поставщика
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14
Обновления Java и политика
https://twitter.com/navalny/status/326243610418884610
Алексей Навальный, 22 апреля 2013 года
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
– 7u8 ?
– 7u9, 7u10, 7u11…
– 7u12?
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
– 7u8 ?
– 7u9, 7u10, 7u11…
– 7u12?
7u13, 7u15, 7u17 …
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
– 7u8 ?
– 7u9, 7u10, 7u11…
– 7u12?
7u13, 7u15, 7u17 …
– 7u19 ?
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
– 7u8 ?
– 7u9, 7u10, 7u11…
– 7u12?
7u13, 7u15, 7u17 …
– 7u19 ?
– 7u21 !
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20
Java 7 Updates versioning
7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
– 7u8 ?
– 7u9, 7u10, 7u11…
– 7u12?
7u13, 7u15, 7u17 …
– 7u19 ?
– 7u21 !
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21
Номера обновлений в JDK 7
 Раз в два месяца
 Чётные
– Исправление ошибок
– Новая функциональность
 Нечётные
– Исправление ошибок
– Обновления системы безопасности (CPU)
 CPU = Critical Patch Update
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22
Нечётные обновления – Security Baseline Updates
 Патч, закрывающий любую уязвимость в JDK 7 должен
быть портирован в JDK 6 и все более ранние
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23
Нечётные обновления – Security Baseline Updates
 Патч, закрывающий любую уязвимость в JDK 7 должен
быть портирован в JDK 6 и все более ранние
 Начальный план: обновлять трижды в год
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24
О пропавшем апдейте 7u19
7u17
7u19
– 7u19-b01
– 7u19-b02
– 7u19-b03
– …
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25
О пропавшем апдейте 7u19
7u17
7u19
– 7u19-b01
– 7u19-b02
– 7u19-b03
– …
 Exploit
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26
О пропавшем апдейте 7u19
7u17
7u18?
7u19
– 7u19-b01
– 7u19-b02
– 7u19-b03
– …
 Exploit
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27
О пропавшем апдейте 7u19
7u17  Exploit
 7u21
• 7u21-b01
• 7u21-b02
• 7u21-b03
• …
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 7
during 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
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
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 JSR 337 JVMS
8
Standalone
documents
Спецификация конкретной
версии платформы Java
играет роль протокола!
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33
Спецификация платформы Java – это протокол!
SMTP
 Тысячи серверов
 Тысячи клиентов
 тысячи + тысячи = тысячи
 Timeline
1982 – RFC 821
2001 – RFC 2821
2008 – RFC 5321
… а протокол не может меняться слишком часто
Java
 Миллионы Java-приложений
 Тысячи реализаций Java
 миллионы + тысячи = миллионы
 Timeline
1996 – JDK 1.0 2002 – J2SE 1.4
1997 – J2SE 1.1 2004 – J2SE 5.0
1998 – J2SE 1.2 2006 – Java SE 6
2000 – J2SE 1.3 2011 – Java SE 7
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34
Как управлять изменениями в Java
OpenJDK / Oracle JDK
 JDK QA
 Community
 Java-программисты по
всему миру
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35
Как управлять изменениями в Java
OpenJDK / Oracle JDK
 JDK QA
 Community
 Java-программисты по
всему миру
Java от других вендоров
Должна пройти процедуру
сертифицикации
 Java Compatibility Kit (JCK)
 Сотни тысяч тестов
 Feedback от лицензиатов
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36
Как мы управляем изменениями?
 Специальные процессы, процедуры и политики
– Множественное ревью на предмет Сompatibility,
Security, Performance etc.
– Tracking
– Accepting / Rejecting
– Проверяются изменения
 В спецификации
 В реализации
 JCP + OpenJDK
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37
Какие изменения допустимы?
Предлагаемое изменение Update Major release
Добавить что-нибудь в Public API
(пакет / класс / метод / поле)
- +
Удалить что-нибудь из Public API - -*
Добавить что-нибудь в Private API + +
Удалить что-нибудь из Private API +** +
Изменить спецификацию чего-нибудь - +**
Исправить ошибку (несоответствие
поведения требуемому в спецификации)
+**,*** +
* - @Deprecated, @Override
** - проанализировать риски
*** - см. следующий слайд
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38
Пример
Bug 5045147 Bug 2188127
Adding null key to empty TreeMap
without Comparator should throw NPE
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
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 / SpecDiff
http://jcp.org/en/resources/tdk
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/
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.42
Что в итоге
 Обновление платформы, используемой сотнями
миллионов людей– это очень сложный процесс!
 Разные политики обновления для Major Releases
(Java 7 → Java 8) и для Updates (7uXX)
– Отслеживание/Управление изменениями
– Специальные процессы
– Review изменений разными командами
– Инструменты: SpecTrac, SigTest и другие
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.43
Что в итоге
 Обновление платформы, используемой сотнями
миллионов людей– это очень сложный процесс!
 Разные политики обновления для Major Releases
(Java 7 → Java 8) и для Updates (7uXX)
– Отслеживание/Управление изменениями
– Специальные процессы
– Review изменений разными командами
– Инструменты: SpecTrac, SigTest и другие
 Мы заботимся об экосистеме Java!
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 involves
losing one quality or aspect of something in return
for gaining another quality or aspect.
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 involves
losing one quality or aspect of something in return
for gaining another quality or aspect.
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 involves
losing one quality or aspect of something in return
for gaining another quality or aspect.
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 involves
losing one quality or aspect of something in return
for gaining another quality or aspect.
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.48
Вопросы и ответы
Алексей Фёдоров
Software Engineer, Oracle, JCK Team, Java Platform Group
alexey.x.fedorov@oracle.com @23derevo
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.49
Спасибо!
Алексей Фёдоров
Software Engineer, Oracle, JCK Team, Java Platform Group
alexey.x.fedorov@oracle.com @23derevo
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.50

Mais conteúdo relacionado

Destaque

Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012Yuriy Ryashko
 
Поиск на своем сайте, обзор Open source решений (Алексей Рагозин)
Поиск на своем сайте, обзор Open source решений (Алексей Рагозин)Поиск на своем сайте, обзор Open source решений (Алексей Рагозин)
Поиск на своем сайте, обзор Open source решений (Алексей Рагозин)Ontico
 
Делаем дешевый видео-хостинг в условиях кризиса
Делаем дешевый видео-хостинг в условиях кризисаДелаем дешевый видео-хостинг в условиях кризиса
Делаем дешевый видео-хостинг в условиях кризисаnekoval
 
Grails. Поиски закончены.
Grails. Поиски закончены.Grails. Поиски закончены.
Grails. Поиски закончены.nekoval
 
Use groovy & grails in your spring boot projects
Use groovy & grails in your spring boot projectsUse groovy & grails in your spring boot projects
Use groovy & grails in your spring boot projectsFátima Casaú Pérez
 
Spring IO '15 - Developing microservices, Spring Boot or Grails?
Spring IO '15 - Developing microservices, Spring Boot or Grails?Spring IO '15 - Developing microservices, Spring Boot or Grails?
Spring IO '15 - Developing microservices, Spring Boot or Grails?Fátima Casaú Pérez
 
Исследование российского рынка BPM 2015
Исследование российского рынка BPM 2015 Исследование российского рынка BPM 2015
Исследование российского рынка BPM 2015 Andrey Koptelov
 

Destaque (7)

Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012
 
Поиск на своем сайте, обзор Open source решений (Алексей Рагозин)
Поиск на своем сайте, обзор Open source решений (Алексей Рагозин)Поиск на своем сайте, обзор Open source решений (Алексей Рагозин)
Поиск на своем сайте, обзор Open source решений (Алексей Рагозин)
 
Делаем дешевый видео-хостинг в условиях кризиса
Делаем дешевый видео-хостинг в условиях кризисаДелаем дешевый видео-хостинг в условиях кризиса
Делаем дешевый видео-хостинг в условиях кризиса
 
Grails. Поиски закончены.
Grails. Поиски закончены.Grails. Поиски закончены.
Grails. Поиски закончены.
 
Use groovy & grails in your spring boot projects
Use groovy & grails in your spring boot projectsUse groovy & grails in your spring boot projects
Use groovy & grails in your spring boot projects
 
Spring IO '15 - Developing microservices, Spring Boot or Grails?
Spring IO '15 - Developing microservices, Spring Boot or Grails?Spring IO '15 - Developing microservices, Spring Boot or Grails?
Spring IO '15 - Developing microservices, Spring Boot or Grails?
 
Исследование российского рынка BPM 2015
Исследование российского рынка BPM 2015 Исследование российского рынка BPM 2015
Исследование российского рынка BPM 2015
 

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

Полезное покрытие кода
Полезное покрытие кодаПолезное покрытие кода
Полезное покрытие кодаSQALab
 
Новые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхНовые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхAndrey Akulov
 
«Oracle Application Quality Management: Средства тестирования и управления те...
«Oracle Application Quality Management: Средства тестирования и управления те...«Oracle Application Quality Management: Средства тестирования и управления те...
«Oracle Application Quality Management: Средства тестирования и управления те...Andrey Akulov
 
What to expect from Java 9
What to expect from Java 9What to expect from Java 9
What to expect from Java 9JavaDayUA
 
Java Enterprise without Java
Java Enterprise without JavaJava Enterprise without Java
Java Enterprise without JavaOlena Syrota
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиGonchik Tsymzhitov
 
Cisco Software Defined Networks (SDN) и OnePK
Cisco Software Defined Networks (SDN) и OnePKCisco Software Defined Networks (SDN) и OnePK
Cisco Software Defined Networks (SDN) и OnePKCisco Russia
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработкиdevclub
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийMedia Gorod
 
Сценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализСценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализpcweek_ua
 
Soa12c launch 2 features cr
Soa12c launch 2 features crSoa12c launch 2 features cr
Soa12c launch 2 features crVasily Demin
 
Семинар «Системы сетевого управления»
Семинар «Системы сетевого управления»Семинар «Системы сетевого управления»
Семинар «Системы сетевого управления»Cisco Russia
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspbGonchik Tsymzhitov
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)guest40e031
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Serversrit2010
 
ОПТИМИЗАЦИЯ ИНФРАСТРУКТУРЫ И СОКРАЩЕНИЕ ЗАТРАТ ПРИ ПОМОЩИ ПРОДУКТОВ И ТЕХНОЛО...
ОПТИМИЗАЦИЯ ИНФРАСТРУКТУРЫ И СОКРАЩЕНИЕ ЗАТРАТ ПРИ ПОМОЩИ ПРОДУКТОВ И ТЕХНОЛО...ОПТИМИЗАЦИЯ ИНФРАСТРУКТУРЫ И СОКРАЩЕНИЕ ЗАТРАТ ПРИ ПОМОЩИ ПРОДУКТОВ И ТЕХНОЛО...
ОПТИМИЗАЦИЯ ИНФРАСТРУКТУРЫ И СОКРАЩЕНИЕ ЗАТРАТ ПРИ ПОМОЩИ ПРОДУКТОВ И ТЕХНОЛО...Sasha_Zavorot
 
Новости и анонсы Oracle Open World 2014
Новости и анонсы Oracle Open World 2014Новости и анонсы Oracle Open World 2014
Новости и анонсы Oracle Open World 2014Andrey Akulov
 

Semelhante a Процесс изменения платформы Java (20)

Полезное покрытие кода
Полезное покрытие кодаПолезное покрытие кода
Полезное покрытие кода
 
Новые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данныхНовые возможности платформы Oracle 12c для хранилищ данных
Новые возможности платформы Oracle 12c для хранилищ данных
 
«Oracle Application Quality Management: Средства тестирования и управления те...
«Oracle Application Quality Management: Средства тестирования и управления те...«Oracle Application Quality Management: Средства тестирования и управления те...
«Oracle Application Quality Management: Средства тестирования и управления те...
 
MySQL 8.0
MySQL 8.0MySQL 8.0
MySQL 8.0
 
What to expect from Java 9
What to expect from Java 9What to expect from Java 9
What to expect from Java 9
 
Java Enterprise without Java
Java Enterprise without JavaJava Enterprise without Java
Java Enterprise without Java
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
 
Cisco Software Defined Networks (SDN) и OnePK
Cisco Software Defined Networks (SDN) и OnePKCisco Software Defined Networks (SDN) и OnePK
Cisco Software Defined Networks (SDN) и OnePK
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработки
 
Проверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложенийПроверено и работает. Инструменты Oracle для разработки веб приложений
Проверено и работает. Инструменты Oracle для разработки веб приложений
 
Сценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализСценарии перехода в облако. Сравнительный анализ
Сценарии перехода в облако. Сравнительный анализ
 
Soa12c launch 2 features cr
Soa12c launch 2 features crSoa12c launch 2 features cr
Soa12c launch 2 features cr
 
Семинар «Системы сетевого управления»
Семинар «Системы сетевого управления»Семинар «Системы сетевого управления»
Семинар «Системы сетевого управления»
 
JD Edwards Orchestrator and AIS server
JD Edwards Orchestrator and AIS serverJD Edwards Orchestrator and AIS server
JD Edwards Orchestrator and AIS server
 
Jiramania презентации @augspb
Jiramania презентации   @augspbJiramania презентации   @augspb
Jiramania презентации @augspb
 
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Servers
 
Atlassian user group
Atlassian user groupAtlassian user group
Atlassian user group
 
ОПТИМИЗАЦИЯ ИНФРАСТРУКТУРЫ И СОКРАЩЕНИЕ ЗАТРАТ ПРИ ПОМОЩИ ПРОДУКТОВ И ТЕХНОЛО...
ОПТИМИЗАЦИЯ ИНФРАСТРУКТУРЫ И СОКРАЩЕНИЕ ЗАТРАТ ПРИ ПОМОЩИ ПРОДУКТОВ И ТЕХНОЛО...ОПТИМИЗАЦИЯ ИНФРАСТРУКТУРЫ И СОКРАЩЕНИЕ ЗАТРАТ ПРИ ПОМОЩИ ПРОДУКТОВ И ТЕХНОЛО...
ОПТИМИЗАЦИЯ ИНФРАСТРУКТУРЫ И СОКРАЩЕНИЕ ЗАТРАТ ПРИ ПОМОЩИ ПРОДУКТОВ И ТЕХНОЛО...
 
Новости и анонсы Oracle Open World 2014
Новости и анонсы Oracle Open World 2014Новости и анонсы Oracle Open World 2014
Новости и анонсы Oracle Open World 2014
 

Mais de Alexey Fyodorov

Non-blocking Michael-Scott queue algorithm
Non-blocking Michael-Scott queue algorithmNon-blocking Michael-Scott queue algorithm
Non-blocking Michael-Scott queue algorithmAlexey Fyodorov
 
How threads help each other
How threads help each otherHow threads help each other
How threads help each otherAlexey Fyodorov
 
Помоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуПомоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуAlexey Fyodorov
 
Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)Alexey Fyodorov
 
Non-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need itNon-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need itAlexey Fyodorov
 
Синхронизация без блокировок и СМС
Синхронизация без блокировок и СМССинхронизация без блокировок и СМС
Синхронизация без блокировок и СМСAlexey Fyodorov
 
Unsafe: to be or to be removed?
Unsafe: to be or to be removed?Unsafe: to be or to be removed?
Unsafe: to be or to be removed?Alexey Fyodorov
 
Общество Мертвых Потоков
Общество Мертвых ПотоковОбщество Мертвых Потоков
Общество Мертвых ПотоковAlexey Fyodorov
 
JDK: CPU, PSU, LU, FR — WTF?!
JDK: CPU, PSU, LU, FR — WTF?!JDK: CPU, PSU, LU, FR — WTF?!
JDK: CPU, PSU, LU, FR — WTF?!Alexey Fyodorov
 
Atomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithmsAtomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithmsAlexey Fyodorov
 
Java Platform Tradeoffs (Riga 2013)
Java Platform Tradeoffs (Riga 2013)Java Platform Tradeoffs (Riga 2013)
Java Platform Tradeoffs (Riga 2013)Alexey Fyodorov
 
Java Platform Tradeoffs (CEE SECR 2013)
Java Platform Tradeoffs (CEE SECR 2013)Java Platform Tradeoffs (CEE SECR 2013)
Java Platform Tradeoffs (CEE SECR 2013)Alexey Fyodorov
 
Java: how to thrive in the changing world
Java: how to thrive in the changing worldJava: how to thrive in the changing world
Java: how to thrive in the changing worldAlexey Fyodorov
 

Mais de Alexey Fyodorov (14)

Non-blocking Michael-Scott queue algorithm
Non-blocking Michael-Scott queue algorithmNon-blocking Michael-Scott queue algorithm
Non-blocking Michael-Scott queue algorithm
 
How threads help each other
How threads help each otherHow threads help each other
How threads help each other
 
Помоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуПомоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другу
 
Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)Counter Wars (JEEConf 2016)
Counter Wars (JEEConf 2016)
 
Non-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need itNon-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need it
 
Синхронизация без блокировок и СМС
Синхронизация без блокировок и СМССинхронизация без блокировок и СМС
Синхронизация без блокировок и СМС
 
Unsafe: to be or to be removed?
Unsafe: to be or to be removed?Unsafe: to be or to be removed?
Unsafe: to be or to be removed?
 
Общество Мертвых Потоков
Общество Мертвых ПотоковОбщество Мертвых Потоков
Общество Мертвых Потоков
 
JDK: CPU, PSU, LU, FR — WTF?!
JDK: CPU, PSU, LU, FR — WTF?!JDK: CPU, PSU, LU, FR — WTF?!
JDK: CPU, PSU, LU, FR — WTF?!
 
Atomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithmsAtomics, CAS and Nonblocking algorithms
Atomics, CAS and Nonblocking algorithms
 
Philosophers
PhilosophersPhilosophers
Philosophers
 
Java Platform Tradeoffs (Riga 2013)
Java Platform Tradeoffs (Riga 2013)Java Platform Tradeoffs (Riga 2013)
Java Platform Tradeoffs (Riga 2013)
 
Java Platform Tradeoffs (CEE SECR 2013)
Java Platform Tradeoffs (CEE SECR 2013)Java Platform Tradeoffs (CEE SECR 2013)
Java Platform Tradeoffs (CEE SECR 2013)
 
Java: how to thrive in the changing world
Java: how to thrive in the changing worldJava: how to thrive in the changing world
Java: how to thrive in the changing world
 

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

  • 1. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1
  • 2. Процесс изменений платформы Java Алексей Фёдоров Software Engineer, Oracle, JCK, Java Platform Group JEEConf 2013, Киев, 24 апреля 2013 года
  • 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. 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 involves losing one quality or aspect of something in return for gaining another quality or aspect.
  • 5. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 6. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6 С чем работает Java-приложение? Ваше Java- приложение
  • 7. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7 С чем работает Java-приложение? JDK Hardware Frameworks OS Ваше Java- приложение
  • 8. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8 С чем работает Java-приложение? JDK Hardware Frameworks OS Ваше Java- приложение
  • 9. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9 Как исправлять баги OS JDK Frameworks App Hardware
  • 10. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10 Обновления Минимизируйте время на обновление Вашего приложения Библиотеки ОС Железо
  • 11. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11 Обновления Минимизируйте время на обновление Вашего приложения Библиотеки ОС Железо
  • 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. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13 Обновления Java  Типы обновлений: – Release update  7u17 → 7u21 – Major platform update:  Java 7 → Java 8  Радикальное «обновление»: смена поставщика
  • 14. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14 Обновления Java и политика https://twitter.com/navalny/status/326243610418884610 Алексей Навальный, 22 апреля 2013 года
  • 15. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15 Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 …
  • 16. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16 Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … – 7u8 ? – 7u9, 7u10, 7u11… – 7u12?
  • 17. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17 Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … – 7u8 ? – 7u9, 7u10, 7u11… – 7u12? 7u13, 7u15, 7u17 …
  • 18. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18 Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … – 7u8 ? – 7u9, 7u10, 7u11… – 7u12? 7u13, 7u15, 7u17 … – 7u19 ?
  • 19. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19 Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … – 7u8 ? – 7u9, 7u10, 7u11… – 7u12? 7u13, 7u15, 7u17 … – 7u19 ? – 7u21 !
  • 20. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20 Java 7 Updates versioning 7, 7u1, 7u2, 7u3, 7u4, 7u5, 7u6, 7u7 … – 7u8 ? – 7u9, 7u10, 7u11… – 7u12? 7u13, 7u15, 7u17 … – 7u19 ? – 7u21 !
  • 21. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21 Номера обновлений в JDK 7  Раз в два месяца  Чётные – Исправление ошибок – Новая функциональность  Нечётные – Исправление ошибок – Обновления системы безопасности (CPU)  CPU = Critical Patch Update
  • 22. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22 Нечётные обновления – Security Baseline Updates  Патч, закрывающий любую уязвимость в JDK 7 должен быть портирован в JDK 6 и все более ранние
  • 23. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23 Нечётные обновления – Security Baseline Updates  Патч, закрывающий любую уязвимость в JDK 7 должен быть портирован в JDK 6 и все более ранние  Начальный план: обновлять трижды в год
  • 24. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24 О пропавшем апдейте 7u19 7u17 7u19 – 7u19-b01 – 7u19-b02 – 7u19-b03 – …
  • 25. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25 О пропавшем апдейте 7u19 7u17 7u19 – 7u19-b01 – 7u19-b02 – 7u19-b03 – …  Exploit
  • 26. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26 О пропавшем апдейте 7u19 7u17 7u18? 7u19 – 7u19-b01 – 7u19-b02 – 7u19-b03 – …  Exploit
  • 27. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27 О пропавшем апдейте 7u19 7u17  Exploit  7u21 • 7u21-b01 • 7u21-b02 • 7u21-b03 • …
  • 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 7 during 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. 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. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30 Ключевое правило
  • 31. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31 Ключевое правило Не бывает 100%-совместимых изменений!
  • 32. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32 Протокол взаимодействия API spec (aka Javadoc) JLS 8 JSR 337 JVMS 8 Standalone documents Спецификация конкретной версии платформы Java играет роль протокола!
  • 33. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33 Спецификация платформы Java – это протокол! SMTP  Тысячи серверов  Тысячи клиентов  тысячи + тысячи = тысячи  Timeline 1982 – RFC 821 2001 – RFC 2821 2008 – RFC 5321 … а протокол не может меняться слишком часто Java  Миллионы Java-приложений  Тысячи реализаций Java  миллионы + тысячи = миллионы  Timeline 1996 – JDK 1.0 2002 – J2SE 1.4 1997 – J2SE 1.1 2004 – J2SE 5.0 1998 – J2SE 1.2 2006 – Java SE 6 2000 – J2SE 1.3 2011 – Java SE 7
  • 34. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34 Как управлять изменениями в Java OpenJDK / Oracle JDK  JDK QA  Community  Java-программисты по всему миру
  • 35. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35 Как управлять изменениями в Java OpenJDK / Oracle JDK  JDK QA  Community  Java-программисты по всему миру Java от других вендоров Должна пройти процедуру сертифицикации  Java Compatibility Kit (JCK)  Сотни тысяч тестов  Feedback от лицензиатов
  • 36. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36 Как мы управляем изменениями?  Специальные процессы, процедуры и политики – Множественное ревью на предмет Сompatibility, Security, Performance etc. – Tracking – Accepting / Rejecting – Проверяются изменения  В спецификации  В реализации  JCP + OpenJDK
  • 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. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38 Пример Bug 5045147 Bug 2188127 Adding null key to empty TreeMap without Comparator should throw NPE
  • 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. 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 / SpecDiff http://jcp.org/en/resources/tdk
  • 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. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.42 Что в итоге  Обновление платформы, используемой сотнями миллионов людей– это очень сложный процесс!  Разные политики обновления для Major Releases (Java 7 → Java 8) и для Updates (7uXX) – Отслеживание/Управление изменениями – Специальные процессы – Review изменений разными командами – Инструменты: SpecTrac, SigTest и другие
  • 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. 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 involves losing one quality or aspect of something in return for gaining another quality or aspect.
  • 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 involves losing one quality or aspect of something in return for gaining another quality or aspect.
  • 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 involves losing one quality or aspect of something in return for gaining another quality or aspect.
  • 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 involves losing one quality or aspect of something in return for gaining another quality or aspect.
  • 48. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.48 Вопросы и ответы Алексей Фёдоров Software Engineer, Oracle, JCK Team, Java Platform Group alexey.x.fedorov@oracle.com @23derevo
  • 49. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.49 Спасибо! Алексей Фёдоров Software Engineer, Oracle, JCK Team, Java Platform Group alexey.x.fedorov@oracle.com @23derevo
  • 50. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.50