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
13. OMA (Object Management Architecture) – архитектура для
объектных распределенных систем
CORBA – спецификация для реализации
Важные составляющие архитектуры
1. Контейнер для объектов бизнес-логики на сервере
2. Сервисы
АРХИТЕКТУРА OMA
13
Удаленный
вызов + функции
контейнера
Сервисы
14. ТИПЫ РЕСУРСОВ ДЛЯ RPC
Типы ресурсов для RPC:
Объект
Сервер
Сервис
Типы архитектур:
Распределенная объектная
Клиент-серверная
Сервис-ориентированная
• OMA, CORBA, тип ресурса для удаленного вызова: объект
• Изменение типа ресурса на сервер/сервис не помешало перенести
идеи из OMA на современные архитектуры серверных платформ
14
15. Идеи:
архитектура клиента должна быть простой
все механизмы масштабируемости находятся на сервере
=> это приводит к появлению контейнера для управления
жизненным циклом объекта на сервере
ИДЕИ ORB
15
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
Инновации
должны доказать
свое право на жизнь,
а затем могут быть
стандартизированы
33. Независимость в выборе языка
программирования для бизнес-логики
Попытка была предпринята в CORBA:
стандартизация серверной
платформы
стандартизация типов, IDL
Жесткая стандартизация закрыла
путь инновациям
КАК ДОБИТЬСЯ НЕЗАВИСИМОСТИ?
33
34. Чтобы найти решение нужно выйти за пределы северной
платформы
ИЩЕМ РЕШЕНИЕ
34
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