Java Enterprise without Java

Post on 15-Jun-2015

576 views 0 download

Tags:

transcript

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

НТУУ «КПИ»

Елена Сирота

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

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

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

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

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%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