SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
JAVA ENTERPRISE БЕЗ JAVA?
Елена Сирота
EPAM Systems
НТУУ «КПИ»
Елена Сирота
Опыт в разработке приложений около 15 лет
Работаю в EPAM Systems (Киев), руководитель образовательных программ
Преподаю в НТУУ КПИ
Olena_Syrota@epam.com
О СЕБЕ
2
Новые перспективы Java Enterprise с Polyglot JVM
http://habrahabr.ru/company/epam_systems/blog/169321/
New Prospects of Java Enterprise with Polyglot JVM
http://www.epam.com/content/dam/epam/library/CC%20White%2
0Papers/New_Prospects_of_Java_Enterprise_with_Polyglot_JVM.pdf
LINKS
3
«КАКОЙ ЯЗЫК БУДЕТ ПОСЛЕ JAVA?»
4
Почему задают такой вопрос?
Что делать с Enterprise-технологиями?
5
МИР ИЗМЕНЯЕТСЯ
Java изменяется
лямбда
JVM изменяется
Modularity (Jigsaw)
invokedynamic
6
Можно ли сохранить инвестиции в Java Enterprise?
Можно ли привнести инновации?
КАК РАЗВИТИЕ JAVA/JVM
ВЛИЯЕТ НА ENTERPRISE?
7
«Неужели опять учить новый язык?»
«Неужели все, что я делал и учил до этого – бесполезно?»
КАК ЭТО ВЛИЯЕТ НА РАЗРАБОТЧИКА
8
В чем именно ценность Java Enterprise (анализ)
 Истоки архитектур серверных платформ
 Анализ архитектур серверных платформ
Java Enterprise без Java?
 Polyglot JVM
 EDA и Polyglot JVM
Выводы
AGENDA
9
ИСТОКИ OMA, CORBA
10
OMA (Object Management Architecture)
CORBA (Common Object Request Broker Architecture and Specification)
OMA, CORBA разработаны группой OMG
У ИСТОКОВ
11
Какие ассоциации с OMG?
OMG
12
OMA (Object Management Architecture) – архитектура для
объектных распределенных систем
CORBA – спецификация для реализации
Важные составляющие архитектуры
1. Контейнер для объектов бизнес-логики на сервере
2. Сервисы
АРХИТЕКТУРА OMA
13
Удаленный
вызов + функции
контейнера
Сервисы
ТИПЫ РЕСУРСОВ ДЛЯ RPC
Типы ресурсов для RPC:
Объект
Сервер
Сервис
Типы архитектур:
Распределенная объектная
Клиент-серверная
Сервис-ориентированная
• OMA, CORBA, тип ресурса для удаленного вызова: объект
• Изменение типа ресурса на сервер/сервис не помешало перенести
идеи из OMA на современные архитектуры серверных платформ
14
Идеи:
 архитектура клиента должна быть простой
 все механизмы масштабируемости находятся на сервере
=> это приводит к появлению контейнера для управления
жизненным циклом объекта на сервере
ИДЕИ ORB
15
КОНТЕЙНЕР В CORBA
16
Контейнер в ORB
это object adapter
В состав серверной платформы входят сервисы:
 список сервисов CORBA см. http://www.omg.org/spec/#CS
СЕРВИСЫ В CORBA
17
Контейнеры, сервисы
CORBA – ПОДВЕДЕМ ИТОГИ
18
ЗАЧЕМ ВСЕ ЭТО?
Независимость от ОС.
Вся инфраструктура для
enterprise приложения – в
составе платформы.
19
Понятие «Interceptor» появилось в CORBA
Сейчас активно используется в Java EE, Spring IoC
ЕЩЕ ИЗ CORBA
20
СОВРЕМЕННЫЕ АРХИТЕКТУРЫ
СЕРВЕРНЫХ ПЛАТФОРМ
НА БАЗЕ JAVA
Java EE,
Spring
21
Java EE/Spring
Заимствованы из CORBA:
 контейнеры и сервисы
Добавлены:
 веб-фреймворк (обладает функциями контейнера)
 IoC-контейнер
 ORM-фреймворк
ЭВОЛЮЦИЯ ПЛАТФОРМ СО
ВРЕМЕН CORBA
22
ВЕБ-ФРЕЙМВОРК
Сервлет-контейнер
 Servlet Container не
представляет программной
модели для написания
бизнес-логики
Веб-фреймворк
 убирает зависимость бизнес-
логики от протокола
коммуникации
 вводит архитектурные паттерны
(например, MVC) для ускорения
разработки
 обладает функциями
контейнеров (scopes - для веб-
приложений)
23
Эволюция идеи контейнеров привела к IoC-
контейнеру
IoC контейнер
 управляет жизненным циклом любого объекта на
сервере
 программный код не зависит от самого
контейнера
IOC КОНТЕЙНЕР
24
Почему я акцентирую внимание на ORM-фреймворке?
Практика показала, что данный фреймворк не должен обладать
функциями контейнера. Эта ошибка уже была допущена в EJB 2.0
ORM-ФРЕЙМВОРК
25
JAVA EE
26
Состав тот же:
 Контейнеры
 сервисы
 фреймворки
Но есть отличия:
 модульность
 Spring может
разворачиваться
отдельно либо на базе
веб-сервера
 Spring поставляет в
своем составе API для
работы с enterprise-
сервисами, которые
могут быть доставлены
по мере использования
SPRING
27
SPRING VS JAVA EE
Spring - инновации Java EE - стандартизация
Java EE and Spring Framework Panel Discussion на JavaOne 2012
28
Инновации
должны доказать
свое право на жизнь,
а затем могут быть
стандартизированы
Состав платформы
Принципы проектирования
Паттерны
Архитектуры
Фреймворки
В ЧЕМ ЦЕННОСТЬ JAVA ENTERPRISE?
29
Эта ценность не зависит
от языка
программирования - Java
JAVA ENTERPRISE БЕЗ JAVA?
30
БИЗНЕС-ЛОГИКА
31
Бизнес-логика
должна зависеть от
языка реализации
серверной платформы?
лаконичность
замыкания
функциональная парадигма программирования
динамические языки открывают путь к использованию DSL
http://qconsf.com/dl/QConSF2007/slides/public/NealFord_Building
Dsls.pdf
http://www.slideshare.net/arturoherrero/polyglot-jvm
ЗАЧЕМ НУЖЕН ДРУГОЙ ЯЗЫК ДЛЯ
ENTERPRISE-ПРИЛОЖЕНИЙ?
32
Независимость в выборе языка
программирования для бизнес-логики
Попытка была предпринята в CORBA:
 стандартизация серверной
платформы
 стандартизация типов, IDL
Жесткая стандартизация закрыла
путь инновациям
КАК ДОБИТЬСЯ НЕЗАВИСИМОСТИ?
33
Чтобы найти решение нужно выйти за пределы северной
платформы
ИЩЕМ РЕШЕНИЕ
34
Выходим за пределы серверной платформы
НАХОДИМ РЕШЕНИЕ
35
POLYGLOT JVM
36
JDK 6 – Scripting API
JDK 7 – новая инструкция invokedynamic для JVM
POLYGLOT JVM
37
позволяет сохранить все наработки в секторе корпоративных
приложений
открывает путь инновациям
позволяет использовать преимущества других языков
ПРЕИМУЩЕСТВА ДЛЯ ENTERPRISE
38
платформа Grails (на основе Groovy)
Java EE + Scala
Java EE + Groovy
Spring + Groovy
ПРИМЕРЫ
39
EDA – event driven architecture
 Для EDA-платформ применима идеология контейнеров и
сервисов
 Другой набор сервисов (например, сервис распределенных
транзакций не применим, так как непонятно где для систем на
основе обмена сообщениями устанавливать рамки
транзакций)
Ценность EDA-платформы – в составе платформы
EDA и Polyglot JVM: Akka + Scala, Akka + Java, Akka + Groovy
EDA И POLYGLOT JVM
40
Тренд Polyglot JVM экономически обоснован
Polyglot JVM - это модный тренд
Мы вынуждены будем применять в enterprise новые языки
В enterprise кроме языка важна серверная платформа
ВЫВОДЫ
41
«Неужели опять учить новый язык?»
Новые языки однозначно придется осваивать
«Неужели все, что я делал и учил до этого – бесполезно?»
Кроме языка программирования при разработке важны:
 patterns,
 frameworks,
 architectures,
 experience
 …
MESSAGE К АУДИТОРИИ
42
43
Java Enterprise without Java

Contenu connexe

En vedette (8)

Продуктивная разработка Java EE-приложений с применением Oracle ADF
Продуктивная разработка Java EE-приложений с применением Oracle ADFПродуктивная разработка Java EE-приложений с применением Oracle ADF
Продуктивная разработка Java EE-приложений с применением Oracle ADF
 
Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservices
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис Цыплаков
 
Static Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE PlatformStatic Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE Platform
 
Web Interface
Web InterfaceWeb Interface
Web Interface
 
Java худеет. Спроси меня как.
Java худеет. Спроси меня как.Java худеет. Спроси меня как.
Java худеет. Спроси меня как.
 
Введение в веб каркас Struts2
Введение в веб каркас Struts2Введение в веб каркас Struts2
Введение в веб каркас Struts2
 
Основы Java. 4. Web
Основы Java. 4. WebОсновы Java. 4. Web
Основы Java. 4. Web
 

Similaire à Java Enterprise without Java

Процесс разработки Agile & Java
Процесс разработки Agile & JavaПроцесс разработки Agile & Java
Процесс разработки Agile & Java
devclub
 
Валерий Куваев, HP на пути к Enterprise Agile
Валерий Куваев, HP на пути к Enterprise AgileВалерий Куваев, HP на пути к Enterprise Agile
Валерий Куваев, HP на пути к Enterprise Agile
ScrumTrek
 
Газинформсервис. Сергей Лачугин "Актуальные проблемы защиты SAP"
Газинформсервис. Сергей Лачугин "Актуальные проблемы защиты SAP"Газинформсервис. Сергей Лачугин "Актуальные проблемы защиты SAP"
Газинформсервис. Сергей Лачугин "Актуальные проблемы защиты SAP"
Expolink
 
Новое поколение серверов SPARC
Новое поколение серверов SPARCНовое поколение серверов SPARC
Новое поколение серверов SPARC
Andrey Akulov
 

Similaire à Java Enterprise without Java (20)

АРМ - платформа разработки проекта "Госархивы СПб"
АРМ - платформа разработки проекта "Госархивы СПб"АРМ - платформа разработки проекта "Госархивы СПб"
АРМ - платформа разработки проекта "Госархивы СПб"
 
Процесс разработки Agile & Java
Процесс разработки Agile & JavaПроцесс разработки Agile & Java
Процесс разработки Agile & Java
 
Liferay Portal и приемы разработки
Liferay Portal и приемы разработкиLiferay Portal и приемы разработки
Liferay Portal и приемы разработки
 
Step 1
Step 1Step 1
Step 1
 
Процесс изменения платформы Java
Процесс изменения платформы JavaПроцесс изменения платформы Java
Процесс изменения платформы Java
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
 
redux: the best for isomorphic apps
redux: the best for isomorphic appsredux: the best for isomorphic apps
redux: the best for isomorphic apps
 
Oracle maf overview_rus_for publishing
Oracle maf overview_rus_for publishingOracle maf overview_rus_for publishing
Oracle maf overview_rus_for publishing
 
Валерий Куваев, HP на пути к Enterprise Agile
Валерий Куваев, HP на пути к Enterprise AgileВалерий Куваев, HP на пути к Enterprise Agile
Валерий Куваев, HP на пути к Enterprise Agile
 
Автоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharpАвтоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharp
 
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
KAZOOMEETUP MOSCOW 2015. Михаил Родионов. Введение в KAZOO (KAZOO 101)
 
Oracle Application Management and Testing Suites for Siebel CRM
Oracle Application Management and Testing Suites for Siebel CRMOracle Application Management and Testing Suites for Siebel CRM
Oracle Application Management and Testing Suites for Siebel CRM
 
Газинформсервис. Сергей Лачугин "Актуальные проблемы защиты SAP"
Газинформсервис. Сергей Лачугин "Актуальные проблемы защиты SAP"Газинформсервис. Сергей Лачугин "Актуальные проблемы защиты SAP"
Газинформсервис. Сергей Лачугин "Актуальные проблемы защиты SAP"
 
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
Java/Scala Lab: Владимир Илюшенко - Jelastic PaaS v2.5 Capabilities and Benef...
 
Odoo Halloween Edition (Minsk Python Meetup 31th of October)
Odoo Halloween Edition (Minsk Python Meetup 31th of October)Odoo Halloween Edition (Minsk Python Meetup 31th of October)
Odoo Halloween Edition (Minsk Python Meetup 31th of October)
 
OpenSource CMS и ERP система в одном флаконе / Олег Курьян / технический дире...
OpenSource CMS и ERP система в одном флаконе / Олег Курьян / технический дире...OpenSource CMS и ERP система в одном флаконе / Олег Курьян / технический дире...
OpenSource CMS и ERP система в одном флаконе / Олег Курьян / технический дире...
 
Новое поколение серверов SPARC
Новое поколение серверов SPARCНовое поколение серверов SPARC
Новое поколение серверов SPARC
 
0. hello java world
0. hello java world0. hello java world
0. hello java world
 
Serverless on AWS
Serverless on AWSServerless on AWS
Serverless on AWS
 

Java Enterprise without Java

  • 1. JAVA ENTERPRISE БЕЗ JAVA? Елена Сирота EPAM Systems НТУУ «КПИ»
  • 2. Елена Сирота Опыт в разработке приложений около 15 лет Работаю в EPAM Systems (Киев), руководитель образовательных программ Преподаю в НТУУ КПИ Olena_Syrota@epam.com О СЕБЕ 2
  • 3. Новые перспективы Java Enterprise с Polyglot JVM http://habrahabr.ru/company/epam_systems/blog/169321/ New Prospects of Java Enterprise with Polyglot JVM http://www.epam.com/content/dam/epam/library/CC%20White%2 0Papers/New_Prospects_of_Java_Enterprise_with_Polyglot_JVM.pdf LINKS 3
  • 4. «КАКОЙ ЯЗЫК БУДЕТ ПОСЛЕ JAVA?» 4
  • 5. Почему задают такой вопрос? Что делать с Enterprise-технологиями? 5
  • 6. МИР ИЗМЕНЯЕТСЯ Java изменяется лямбда JVM изменяется Modularity (Jigsaw) invokedynamic 6
  • 7. Можно ли сохранить инвестиции в Java Enterprise? Можно ли привнести инновации? КАК РАЗВИТИЕ JAVA/JVM ВЛИЯЕТ НА ENTERPRISE? 7
  • 8. «Неужели опять учить новый язык?» «Неужели все, что я делал и учил до этого – бесполезно?» КАК ЭТО ВЛИЯЕТ НА РАЗРАБОТЧИКА 8
  • 9. В чем именно ценность Java Enterprise (анализ)  Истоки архитектур серверных платформ  Анализ архитектур серверных платформ Java Enterprise без Java?  Polyglot JVM  EDA и Polyglot JVM Выводы AGENDA 9
  • 11. OMA (Object Management Architecture) CORBA (Common Object Request Broker Architecture and Specification) OMA, CORBA разработаны группой OMG У ИСТОКОВ 11
  • 13. OMA (Object Management Architecture) – архитектура для объектных распределенных систем CORBA – спецификация для реализации Важные составляющие архитектуры 1. Контейнер для объектов бизнес-логики на сервере 2. Сервисы АРХИТЕКТУРА OMA 13 Удаленный вызов + функции контейнера Сервисы
  • 14. ТИПЫ РЕСУРСОВ ДЛЯ RPC Типы ресурсов для RPC: Объект Сервер Сервис Типы архитектур: Распределенная объектная Клиент-серверная Сервис-ориентированная • OMA, CORBA, тип ресурса для удаленного вызова: объект • Изменение типа ресурса на сервер/сервис не помешало перенести идеи из OMA на современные архитектуры серверных платформ 14
  • 15. Идеи:  архитектура клиента должна быть простой  все механизмы масштабируемости находятся на сервере => это приводит к появлению контейнера для управления жизненным циклом объекта на сервере ИДЕИ ORB 15
  • 17. В состав серверной платформы входят сервисы:  список сервисов CORBA см. http://www.omg.org/spec/#CS СЕРВИСЫ В CORBA 17
  • 18. Контейнеры, сервисы CORBA – ПОДВЕДЕМ ИТОГИ 18
  • 19. ЗАЧЕМ ВСЕ ЭТО? Независимость от ОС. Вся инфраструктура для enterprise приложения – в составе платформы. 19
  • 20. Понятие «Interceptor» появилось в CORBA Сейчас активно используется в Java EE, Spring IoC ЕЩЕ ИЗ CORBA 20
  • 22. Java EE/Spring Заимствованы из CORBA:  контейнеры и сервисы Добавлены:  веб-фреймворк (обладает функциями контейнера)  IoC-контейнер  ORM-фреймворк ЭВОЛЮЦИЯ ПЛАТФОРМ СО ВРЕМЕН CORBA 22
  • 23. ВЕБ-ФРЕЙМВОРК Сервлет-контейнер  Servlet Container не представляет программной модели для написания бизнес-логики Веб-фреймворк  убирает зависимость бизнес- логики от протокола коммуникации  вводит архитектурные паттерны (например, MVC) для ускорения разработки  обладает функциями контейнеров (scopes - для веб- приложений) 23
  • 24. Эволюция идеи контейнеров привела к IoC- контейнеру IoC контейнер  управляет жизненным циклом любого объекта на сервере  программный код не зависит от самого контейнера IOC КОНТЕЙНЕР 24
  • 25. Почему я акцентирую внимание на ORM-фреймворке? Практика показала, что данный фреймворк не должен обладать функциями контейнера. Эта ошибка уже была допущена в EJB 2.0 ORM-ФРЕЙМВОРК 25
  • 27. Состав тот же:  Контейнеры  сервисы  фреймворки Но есть отличия:  модульность  Spring может разворачиваться отдельно либо на базе веб-сервера  Spring поставляет в своем составе API для работы с enterprise- сервисами, которые могут быть доставлены по мере использования SPRING 27
  • 28. SPRING VS JAVA EE Spring - инновации Java EE - стандартизация Java EE and Spring Framework Panel Discussion на JavaOne 2012 28 Инновации должны доказать свое право на жизнь, а затем могут быть стандартизированы
  • 29. Состав платформы Принципы проектирования Паттерны Архитектуры Фреймворки В ЧЕМ ЦЕННОСТЬ JAVA ENTERPRISE? 29 Эта ценность не зависит от языка программирования - Java
  • 32. лаконичность замыкания функциональная парадигма программирования динамические языки открывают путь к использованию DSL http://qconsf.com/dl/QConSF2007/slides/public/NealFord_Building Dsls.pdf http://www.slideshare.net/arturoherrero/polyglot-jvm ЗАЧЕМ НУЖЕН ДРУГОЙ ЯЗЫК ДЛЯ ENTERPRISE-ПРИЛОЖЕНИЙ? 32
  • 33. Независимость в выборе языка программирования для бизнес-логики Попытка была предпринята в CORBA:  стандартизация серверной платформы  стандартизация типов, IDL Жесткая стандартизация закрыла путь инновациям КАК ДОБИТЬСЯ НЕЗАВИСИМОСТИ? 33
  • 34. Чтобы найти решение нужно выйти за пределы северной платформы ИЩЕМ РЕШЕНИЕ 34
  • 35. Выходим за пределы серверной платформы НАХОДИМ РЕШЕНИЕ 35
  • 37. JDK 6 – Scripting API JDK 7 – новая инструкция invokedynamic для JVM POLYGLOT JVM 37
  • 38. позволяет сохранить все наработки в секторе корпоративных приложений открывает путь инновациям позволяет использовать преимущества других языков ПРЕИМУЩЕСТВА ДЛЯ ENTERPRISE 38
  • 39. платформа Grails (на основе Groovy) Java EE + Scala Java EE + Groovy Spring + Groovy ПРИМЕРЫ 39
  • 40. EDA – event driven architecture  Для EDA-платформ применима идеология контейнеров и сервисов  Другой набор сервисов (например, сервис распределенных транзакций не применим, так как непонятно где для систем на основе обмена сообщениями устанавливать рамки транзакций) Ценность EDA-платформы – в составе платформы EDA и Polyglot JVM: Akka + Scala, Akka + Java, Akka + Groovy EDA И POLYGLOT JVM 40
  • 41. Тренд Polyglot JVM экономически обоснован Polyglot JVM - это модный тренд Мы вынуждены будем применять в enterprise новые языки В enterprise кроме языка важна серверная платформа ВЫВОДЫ 41
  • 42. «Неужели опять учить новый язык?» Новые языки однозначно придется осваивать «Неужели все, что я делал и учил до этого – бесполезно?» Кроме языка программирования при разработке важны:  patterns,  frameworks,  architectures,  experience  … MESSAGE К АУДИТОРИИ 42
  • 43. 43