44
JAVA ENTERPRISE БЕЗ JAVA? Елена Сирота EPAM Systems НТУУ «КПИ»

Java Enterprise without Java

Embed Size (px)

Citation preview

Page 1: Java Enterprise without Java

JAVA ENTERPRISE БЕЗ JAVA?Елена СиротаEPAM Systems

НТУУ «КПИ»

Page 2: Java Enterprise without Java

Елена Сирота

Опыт в разработке приложений около 15 лет

Работаю в EPAM Systems (Киев), руководитель образовательных программ

Преподаю в НТУУ КПИ

Активный участник JUG KPI

[email protected]

О СЕБЕ

2

Page 3: Java Enterprise without Java

Новые перспективы 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

Page 4: Java Enterprise without Java

«КАКОЙ ЯЗЫК БУДЕТ ПОСЛЕ JAVA?»

4

Page 5: Java Enterprise without Java

Почему задают такой вопрос?

Что делать с Enterprise-технологиями?

5

Page 6: Java Enterprise without Java

МИР ИЗМЕНЯЕТСЯ

Java изменяется

лямбда

JVM изменяется

Modularity (Jigsaw)

invokedynamic

6

Page 7: Java Enterprise without Java

Можно ли сохранить инвестиции в Java Enterprise?

Можно ли привнести инновации?

КАК РАЗВИТИЕ JAVA/JVM ВЛИЯЕТ НА ENTERPRISE?

7

Page 8: Java Enterprise without Java

«Неужели опять учить новый язык?»

«Неужели все, что я делал и учил до этого – бесполезно?»

КАК ЭТО ВЛИЯЕТ НА РАЗРАБОТЧИКА

8

Page 9: Java Enterprise without Java

В чем именно ценность Java Enterprise (анализ)

Истоки архитектур серверных платформ

Анализ архитектур серверных платформ

Java Enterprise без Java?

Polyglot JVM

EDA и Polyglot JVM

Выводы

AGENDA

9

Page 10: Java Enterprise without Java

ИСТОКИ OMA, CORBA

10

Page 11: Java Enterprise without Java

OMA (Object Management Architecture)

CORBA (Common Object Request Broker Architecture and Specification)

OMA, CORBA разработаны группой OMG

У ИСТОКОВ

11

Page 12: Java Enterprise without Java

Какие ассоциации с OMG?

OMG

12

Page 13: Java Enterprise without Java

OMA (Object Management Architecture) – архитектура для объектных распределенных систем

CORBA – спецификация для реализации

Важные составляющие архитектуры

1. Контейнер для объектов бизнес-логики на сервере

2. Сервисы

АРХИТЕКТУРА OMA

13

Удаленный вызов + функции

контейнера

Сервисы

Page 14: Java Enterprise without Java

ТИПЫ РЕСУРСОВ ДЛЯ RPC

Типы ресурсов для RPC:

Объект

Сервер

Сервис

Типы архитектур:

Распределенная объектная

Клиент-серверная

Сервис-ориентированная

• OMA, CORBA, тип ресурса для удаленного вызова: объект

• Изменение типа ресурса на сервер/сервис не помешало перенести идеи из OMA на современные архитектуры серверных платформ

14

Page 15: Java Enterprise without Java

Идеи: архитектура клиента должна быть простой

все механизмы масштабируемости находятся на сервере

=> это приводит к появлению контейнера для управления жизненным циклом объекта на сервере

ИДЕИ ORB

15

Page 16: Java Enterprise without Java

КОНТЕЙНЕР В CORBA

16

Контейнер в ORB

это object adapter

Page 17: Java Enterprise without Java

В состав серверной платформы входят сервисы:

список сервисов CORBA см. http://www.omg.org/spec/#CS

СЕРВИСЫ В CORBA

17

Page 18: Java Enterprise without Java

Контейнеры, сервисы

CORBA – ПОДВЕДЕМ ИТОГИ

18

Page 19: Java Enterprise without Java

ЗАЧЕМ ВСЕ ЭТО?

Независимость от ОС.

Вся инфраструктура для enterprise приложения – в составе платформы.

19

Page 20: Java Enterprise without Java

Понятие «Interceptor» появилось в CORBA

Сейчас активно используется в Java EE, Spring IoC

ЕЩЕ ИЗ CORBA

20

Page 21: Java Enterprise without Java

СОВРЕМЕННЫЕ АРХИТЕКТУРЫ СЕРВЕРНЫХ ПЛАТФОРМ

НА БАЗЕ JAVA

Java EE,

Spring

21

Page 22: Java Enterprise without Java

Java EE/Spring

Заимствованы из CORBA: контейнеры и сервисы

Добавлены: веб-фреймворк (обладает функциями контейнера)

IoC-контейнер

ORM-фреймворк

ЭВОЛЮЦИЯ ПЛАТФОРМ СО ВРЕМЕН CORBA

22

Page 23: Java Enterprise without Java

ВЕБ-ФРЕЙМВОРК

Сервлет-контейнер

Servlet Container не представляет программной модели для написания бизнес-логики

Веб-фреймворк

убирает зависимость бизнес-логики от протокола коммуникации

вводит архитектурные паттерны (например, MVC) для ускорения разработки

обладает функциями контейнеров (scopes - для веб-приложений)

23

Page 24: Java Enterprise without Java

Эволюция идеи контейнеров привела к IoC-контейнеру

IoC контейнер

управляет жизненным циклом любого объекта на сервере

программный код не зависит от самого контейнера

IOC КОНТЕЙНЕР

24

Page 25: Java Enterprise without Java

Почему я акцентирую внимание на ORM-фреймворке?

Практика показала, что данный фреймворк не должен обладать функциями контейнера. Эта ошибка уже была допущена в EJB 2.0

ORM-ФРЕЙМВОРК

25

Page 26: Java Enterprise without Java

JAVA EE

26

Page 27: Java Enterprise without Java

Состав тот же: Контейнеры

сервисы

фреймворки

Но есть отличия: модульность

Spring может разворачиваться отдельно либо на базе веб-сервера

Spring поставляет в своем составе API для работы с enterprise-сервисами, которые могут быть доставлены по мере использования

SPRING

27

Page 28: Java Enterprise without Java

SPRING VS JAVA EE

Spring - инновации Java EE - стандартизация

Java EE and Spring Framework Panel Discussion на JavaOne 2012

28

Инновации должны доказать свое право на жизнь, а затем могут быть стандартизированы

Page 29: Java Enterprise without Java

Состав платформы

Принципы проектирования

Паттерны

Архитектуры

Фреймворки

В ЧЕМ ЦЕННОСТЬ JAVA ENTERPRISE?

29

Эта ценность не зависит от языка программирования - Java

Page 30: Java Enterprise without Java

JAVA ENTERPRISE БЕЗ JAVA?

30

Page 31: Java Enterprise without Java

БИЗНЕС-ЛОГИКА

31

Бизнес-логика должна зависеть от языка реализации

серверной платформы?

Page 32: Java Enterprise without Java

лаконичность

функциональная парадигма программирования

метапрограммирование

динамические языки открывают путь к использованию 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

Page 33: Java Enterprise without Java

Независимость в выборе языка программирования для бизнес-логики

Попытка была предпринята в CORBA:

стандартизация серверной платформы

стандартизация типов, IDL

Жесткая стандартизация закрыла путь инновациям

КАК ДОБИТЬСЯ НЕЗАВИСИМОСТИ?

33

Page 34: Java Enterprise without Java

Чтобы найти решение нужно выйти за пределы северной платформы

ИЩЕМ РЕШЕНИЕ

34

Page 35: Java Enterprise without Java

Выходим за пределы серверной платформы

НАХОДИМ РЕШЕНИЕ

35

Page 36: Java Enterprise without Java

POLYGLOT JVM

36

Page 37: Java Enterprise without Java

JDK 6 – Scripting API

JDK 7 – новая инструкция invokedynamic для JVM

POLYGLOT JVM

37

Page 38: Java Enterprise without Java

позволяет сохранить все наработки в секторе корпоративных приложений

открывает путь инновациям

позволяет использовать преимущества других языков

ПРЕИМУЩЕСТВА ДЛЯ ENTERPRISE

38

Page 39: Java Enterprise without Java

платформа Grails (на основе Groovy)

Java EE + Scala

Java EE + Groovy

Spring + Groovy

ПРИМЕРЫ

39

Page 40: Java Enterprise without Java

GRAILS

40

Page 41: Java Enterprise without Java

EDA – event driven architecture

Для EDA-платформ применима идеология контейнеров и сервисов

Другой набор сервисов (например, сервис распределенных транзакций не применим, так как непонятно где для систем на основе обмена сообщениями устанавливать рамки транзакций)

Ценность EDA-платформы – в составе платформы

EDA и Polyglot JVM: Akka + Scala, Akka + Java, Akka + Groovy

EDA И POLYGLOT JVM

41

Page 42: Java Enterprise without Java

Тренд Polyglot JVM экономически обоснован

Polyglot JVM - это модный тренд

Мы вынуждены будем применять в enterprise новые языки

В enterprise кроме языка важна серверная платформа

ВЫВОДЫ

42

Page 43: Java Enterprise without Java

«Неужели опять учить новый язык?»

Новые языки однозначно придется осваивать

«Неужели все, что я делал и учил до этого – бесполезно?»

Кроме языка программирования при разработке важны:

patterns,

frameworks,

architectures,

experience

MESSAGE К АУДИТОРИИ

43

Page 44: Java Enterprise without Java

44