Download - Java Enterprise without Java
JAVA ENTERPRISE БЕЗ JAVA?Елена СиротаEPAM Systems
НТУУ «КПИ»
Елена Сирота
Опыт в разработке приложений около 15 лет
Работаю в EPAM Systems (Киев), руководитель образовательных программ
Преподаю в НТУУ КПИ
Активный участник JUG KPI
О СЕБЕ
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%20Papers/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
Neal Ford, Building DSL in Static & Dynamic Languages –http://gc.blog.br/wp-content/nealford_buildingdsls.pdf
Practically Groovy: Metaprogramming with closures, ExpandoMetaClass, and categories http://www.ibm.com/developerworks/java/library/j-pg06239/index.html
Java.next: The Java.next languages -http://www.ibm.com/developerworks/library/j-jn1/
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
GRAILS
40
EDA – event driven architecture
Для EDA-платформ применима идеология контейнеров и сервисов
Другой набор сервисов (например, сервис распределенных транзакций не применим, так как непонятно где для систем на основе обмена сообщениями устанавливать рамки транзакций)
Ценность EDA-платформы – в составе платформы
EDA и Polyglot JVM: Akka + Scala, Akka + Java, Akka + Groovy
EDA И POLYGLOT JVM
41
Тренд Polyglot JVM экономически обоснован
Polyglot JVM - это модный тренд
Мы вынуждены будем применять в enterprise новые языки
В enterprise кроме языка важна серверная платформа
ВЫВОДЫ
42
«Неужели опять учить новый язык?»
Новые языки однозначно придется осваивать
«Неужели все, что я делал и учил до этого – бесполезно?»
Кроме языка программирования при разработке важны:
patterns,
frameworks,
architectures,
experience
…
MESSAGE К АУДИТОРИИ
43
44