Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OSGi в JEE приложении 
:(
    Опции темы
polosatij
  Дата 18.11.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8



примерно с три месяца назад я лежал на пляже (тут подумалось, нифигова было) и читал книгу


user posted image

в этой книге я не нашёл кучи вопросов по построении архитектуры не монолитного приложения.

кто-то применяет OSGi на практике? может рассказать общую структуру построения и впечатление от OSGi?



--------------------
PM   Вверх
serger
Дата 19.11.2009, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

Репутация: 2
Всего: 5



Вот, начало... и далее в блоге много об "этом"..
http://samolisov.blogspot.com/2009/03/osgi.html


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
polosatij
  Дата 19.11.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8



Цитата(serger @  19.11.2009,  14:37 Найти цитируемый пост)
Вот, начало... и далее в блоге много об "этом"..
http://samolisov.blogspot.com/2009/03/osgi.html 


1). только основы в статье
2). ни слова нет об архитектуре JEE приложения


--------------------
PM   Вверх
COVD
Дата 19.11.2009, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Предполагаю, что плагины на сервере не очень актуальны, потому что на сервере выгоднее реализовать распределенную архитектуру - набор самостоятельных приложений (сервисов). Возможно поэтому плагинно-модульные платформы обычно называют RichClient ... , т.е. применяется к клиентскому приложению. 

Это сообщение отредактировал(а) COVD - 19.11.2009, 16:56
PM MAIL   Вверх
polosatij
Дата 19.11.2009, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8



Цитата(COVD @  19.11.2009,  15:47 Найти цитируемый пост)
набор самостоятельных приложений (сервисов).


мне очень тяжело понять, как достичь нескольких сервисов, которые "должны иметь общие классы", например, для базы данных.


--------------------
PM   Вверх
COVD
Дата 19.11.2009, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Ничего нового, использовать библиотеки. Так же как используют log4j например. 

Плагинно-модульная архитектура интегрирует несколько независимых компонентов в одно приложение, работающее под одной виртуальной машиной. Термин embedded мелькает там поэтому. И платформа обеспечивает возможности динамического подключения\отключения компонентов, как если бы они были независимыми приложениями. На серверной стороне нет нужды имитировать это средствами платформы. Можно физически запустить компоненты под разными JVM, а еще лучше и на разных компьютерах, а еще лучше и в нескольких экземплярах (кластеризация),  т.е. построить нормальное распределенное приложение (а не имитировать его в "одном флаконе"). 

Это сообщение отредактировал(а) COVD - 19.11.2009, 17:29
PM MAIL   Вверх
polosatij
  Дата 20.11.2009, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8



Цитата(COVD @  19.11.2009,  16:06 Найти цитируемый пост)
Ничего нового, использовать библиотеки. Так же как используют log4j например. 


так не получится. ты не можешь в runtime вытащить библиотеку и вставить новую на это место, например.


Цитата(COVD @  19.11.2009,  16:06 Найти цитируемый пост)
Плагинно-модульная архитектура интегрирует несколько независимых компонентов в одно приложение, работающее под одной виртуальной машиной. Термин embedded мелькает там поэтому. И платформа обеспечивает возможности динамического подключения\отключения компонентов, как если бы они были независимыми приложениями. На серверной стороне нет нужды имитировать это средствами платформы. Можно физически запустить компоненты под разными JVM, а еще лучше и на разных компьютерах, а еще лучше и в нескольких экземплярах (кластеризация),  т.е. построить нормальное распределенное приложение (а не имитировать его в "одном флаконе"). 


у тебя получится несколько "глупых" флаконов


Цитата(COVD @  19.11.2009,  15:47 Найти цитируемый пост)
Предполагаю, что плагины на сервере не очень актуальны,


быть того не может, т.к. новый jboss5 и кое-какие сервера уже переходят на концепт OSGi


--------------------
PM   Вверх
COVD
Дата 20.11.2009, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Цитата

ты не можешь в runtime вытащить библиотеку .. у тебя получится несколько "глупых" флаконов

Надобности в смене библиотек "на лету" не возникает, если приложение состоит из набора "глупых" флаконов. Просто перезапускается "флакон"(можно мысль развить до абсурда и допустить, что "флакон", т.е. небольшое приложение, выполняющее одну задачу, состоит из одного класса). Это проще и , следовательно, безопаснее, чем заменять классы в рантайме. Это как ремонтировать движущийся автомобиль. Умеющие это делать заслуживают восхищения, но надежнее все же в гараже.   

Цитата

быть того не может, т.к. новый jboss5 и кое-какие сервера уже переходят на концепт OSGi 

А интересно, заденет ли это пользователей jboss5 ? . Не разработчиков компонентов jboss5, а программистов, которые пишут приложения для работы под jboss5.  
Сама - то концепция, как готовый сценарий, наверное много где может быть полезна. Я высказывал мнение, что на серверной стороне держать все в одном "флаконе" нет смысла.  А платформы Нетбинс и Эклипс  вроде заточены под одно приложение (и потому они RichClient). Мне они представляются как реализация SOA внутри приложения.   

Это сообщение отредактировал(а) COVD - 20.11.2009, 18:10
PM MAIL   Вверх
polosatij
Дата 20.11.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8





Цитата(COVD @  20.11.2009,  16:45 Найти цитируемый пост)
Надобности в смене библиотек "на лету" не возникает, если приложение состоит из набора "глупых" флаконов. Просто перезапускается "флакон"(можно мысль развить до абсурда и допустить, что "флакон", т.е. небольшое приложение, выполняющее одну задачу, состоит из одного класса). Это проще и , следовательно, безопаснее, чем заменять классы в рантайме. Это как ремонтировать движущийся автомобиль. Умеющие это делать заслуживают восхищения, но надежнее все же в гараже.   


http://www.osgi.org/About/WhyOSGi


Цитата(COVD @  20.11.2009,  16:45 Найти цитируемый пост)
А интересно, заденет ли это пользователей jboss5 ? .


причём тут пользователи?



Цитата(COVD @  20.11.2009,  16:45 Найти цитируемый пост)
а программистов, которые пишут приложения для работы под jboss5.  


естественно.. там, наверняка, есть уже какие-то интерфейсы

--------------

хочу тебе объяснить, зачем я хочу достигнуть такой архитектуры. тут есть очень много причин, многие из них, наверно, не имеет смысла тут объяснять, но

1). в runtime на одной машине было бы очень не плохо поменять части, нежели перезапускать приложение полностью
2). если приложение будет такое модульное, что можно будет менять части, то можно давать людям какие-то определённые части на разработку программного обеспечения, открыв часть svn
3). посмотри apple телефон. если падает какое-то приложение, то не падает сам телефон.

и т.д.

меня интересует реализация архитектуры не монолитного приложения   smile 


--------------------
PM   Вверх
COVD
Дата 20.11.2009, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



В моем понимании:
1. не монолитное = распределенное.
2. приложение, построенное на плагинной ( модульной ) архитектуре - монолитное, если оно бегает в одной виртуальной машине (отсюда и необходимость "update bundles on the fly" , успешной реализацией которой так гордятся (заслуженно, конечно) авторы ).

Это сообщение отредактировал(а) COVD - 20.11.2009, 19:16
PM MAIL   Вверх
polosatij
  Дата 20.11.2009, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8




Цитата(COVD @  20.11.2009,  17:50 Найти цитируемый пост)
1. не монолитное = распределенное.


имея базу, не важно где запускать модуль. отсюда и распределённое.


Цитата(COVD @  20.11.2009,  17:50 Найти цитируемый пост)
2. приложение, построенное на плагинной ( модульной ) архитектуре - монолитное, если оно бегает в одной виртуальной машине (отсюда и необходимость "update bundles on the fly" , успешной реализацией которой так гордятся (заслуженно, конечно) авторы ).


так.. терь с этого места, по подробнее  smile 




--------------------
PM   Вверх
COVD
Дата 20.11.2009, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Цитата

имея базу, не важно где запускать модуль. отсюда и распределённое.

Так что, OSGi допускает, что модули или плагины запускаются удаленно? Тогда замечательно и привлекательно для "серверостроения". 
Цитата

по подробнее  


?

PS.
Процитировал текст, слово "bundle" застряло в голове и пришло просветление smile. OSGi обновляет "на лету" не отдельно взятый класс, а "bundle", т.е. модуль целиком. И может это делать потому, что общение модуля с остальным окружением контролируется OSGi платформой.  Точно также, например, Томкат умеет обновлять "на лету" страницу JSP, которая в контексте OSGi может рассматриваться как bundle, т.е. отдельный модуль. Эта "фича" OSGi конечно удобна для любого приложения независимо от его размера. Для монстра jboss5 тем более.

В общем, спасибо, polosatij, за топик. Мне кажется, до меня стало доходить, что такое OSGi smile.   



Это сообщение отредактировал(а) COVD - 20.11.2009, 22:46
PM MAIL   Вверх
COVD
Дата 22.11.2009, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Кроме реализаций OSGi существует также модульная платформа Нетбинс. Она появилась до OSGi и на ее основе было  написано много корпоративных приложений до того, как ее стали популяризировать. В сравнениях с OSGi обычно отмечают, что они практически идентичны. И только в русскоязычных источниках типа rsdn я встречал высказывания, что OSGi - круто, а Нетбинс - "ацтой". Обьективно OSGi более популярен. Существует много имплементаций. Cамая популярная, наверное, Equinox. Spring конечно же подсуетился со Spring OSGi. Поэтому Нетбинс предпринимает усилия по сближению.  

Меня модульная архитектура интересует применительно к клиентскому приложению. Наша серверная часть уже и так функционирует, как распределенный набор компонентов и сервисов. На нашем клиенте это более актуально потому, что постоянно добавляются новые возможности для разных категорий пользователей и приложение "распухает". Разнообразие клиентских компонентов богаче серверных. Естественно, новые возможности удобно добавлять в виде модулей. 

Поэтому предстоит перевод клиентского GUI Swing приложения на модульную архитектуру. Однако я пока не определился с платформой. Используемый нами Нетбинс привлекателен тем, что платформа уже включена в JDK6 и IDE "заточено" под разработку.   

Это сообщение отредактировал(а) COVD - 22.11.2009, 20:44
PM MAIL   Вверх
polosatij
  Дата 23.11.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8



Цитата(COVD @  22.11.2009,  18:09 Найти цитируемый пост)
Меня модульная архитектура интересует применительно к клиентскому приложению... 


меня она интересует по многим причинам.. хотелось бы отдатъ например, на разработку, только часть приложения на оффшоринг, а не полностью, например smile или же время деплоя приложения и разработки хотелось бы начать двигать в сторону времени с отметкой 0, иначе, чем дальше, тем больше и больше smile

Цитата(COVD @  20.11.2009,  18:43 Найти цитируемый пост)
В общем, спасибо, polosatij, за топик. Мне кажется, до меня стало доходить, что такое OSGi


ню, если что накопаешь, свисти  smile "а то эти, ни болта не рубят" (с) мама не горюй smile


--------------------
PM   Вверх
COVD
Дата 23.11.2009, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 26.7.2005

Репутация: 4
Всего: 43



Цитата

меня она интересует по многим причинам.. хотелось бы отдатъ например, на разработку, только часть приложения на оффшоринг, а не полностью


Я подозреваю, что модульность тут не главное. Фреймворк не поможет разработать интерфейс взаимодействия, который необходим стороннему разработчику компонента. Фреймворк лишь берет на себя хлопоты подключения - поиск плагина, формальную проверку соответствия интерфейсов, версии, и возможность подключения "on the fly".  Использование фреймворка остро необходимо для массовых продуктов типа IDE, для которых все кому не лень желают писать плагины. Обуздать эту творческую активность масс можно только формализовав процедуру подключения, которая и возложена на фреймворк. А в небольшом проекте с ограниченным количеством исполнителей фреймворк является удобным инструментом, но не абсолютной необходимостью. По крайней мере, наверное можно начать проект с разработки интерфейсов компонентов, а "менеджмент" в лице фреймворка, добавить позднее.

PS. Конечно, это общая "розовая" мечта - творить интерфейсы и ... раздавать их на реализацию сторонним разработчикам. А еще лучше - рисовать прямоугольнички со стрелочками и ... раздавать их исполнителям. А еще лучше сформулировать идею на словах и ...  А еще лучше .....  smile  


Это сообщение отредактировал(а) COVD - 23.11.2009, 17:40
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0753 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.