|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
WertLex : 93 Новичок
|
Ноя 11, 2011 22:01 |
|
|
| А вот кстати сейчас задумался, действительно, зачем в EJB3 два интерфейса - Local и Remote. Для удаленного и локального доступа, скажете вы. Но, ведь бин, так или иначе выполняет только одну роль. Я ведь не могу по локальному инстансу бина получить его удаленный интерфейс? Т.е. использовать один и тот же бин не получиться. Ну и зачем их тогда два? |
|
|
|
 |
Evgin : 748 Постоянный посетитель Откуда: (SPB)
|
Ноя 11, 2011 22:43 |
|
|
О какой "роли" вы говорите непонятно. Приведите пример такой роли. По-моему, "роль" - это термин из такой темы как авторизация/секурность. _________________ Велюровый Петон приветствует Вас :-*
----------------------------
Кроме того, я думаю, что Карфаген должен быть разрушен!!!
----------------------------
javax.swing.JDesktopPane <--- Печаль
----------------------------
НЕ ФЛУДИ, КОМРАД! |
|
|
|
 |
vimba : 147 Новичок Откуда: Шахты
|
Ноя 12, 2011 0:29 |
|
|
| Цитата: |
зачем в EJB3 два интерфейса - Local и Remote
|
Чтобы устранить возможный паралич связанный с невозможностью изменения внутреннего интерфейса из-за того, что на него завязаны внешние клиенты. Было раз дело, правда не в EJB а в Spring, один шибко умный деятель расшарил сервис по протоколу Burlap через интерфейс который также использовался внутри приложения, на него сразу завязались внешние клиенты, и не только java, но так как интерфейс оказался не очень удачный для использования внутри приложения, то пришлось его менять, а так как на интерфейс были завязаны внешние клиенты, то понадобился изощренный многоходовый рефакторинг растянувшийся на два релиза, сродни шахматной комбинации. Имея же два интерфейса Local и Remote мы развязываем руки рефакторингу, и можем менять Local интерфейс хоть десять раз на день, не тревожа клиентов которые находятся как вне текущего приложения, так и возможно вне зоны ответсвенности разработчика или команды. |
|
|
|
 |
WertLex : 93 Новичок
|
Ноя 12, 2011 15:51 |
|
|
У меня скорее вопрос.
А как можно использовать _одновременно_ оба интерфейса?
Т.е. Remote работает через RMI далеко-далеко. Local работает только на сервере... но ведь их нельзя использовать по-очереди в контейнере обращаясь к одному бину, так ведь? Поэтому получается, что нет необходимости в двух интерфейсах для одного бина, ведь так или иначе работа происходит либо с Remote, либо с Local, а следовательно, это могли бы быть различные бины.
Вот о чем я думаю.
Собственно вот еще вопрос, касательно EJB, который меня давно мучает. А почему нет возможности использовать не RMI, а скажем какой-либо другой менее платформозависимый RPC? Поясню откуда ноги растут: тут рядом тема есть, как я хлебнул горя с CORBA и сериализацией. Выход найден с помощью костыля, но первопричина так и не решена. Если бы это был, скажем, JSON, на данные можно было бы хоть глазами посмотреть, а тут.. даже не знаю куда и копать.
В общем, очень интересно мнение людей, который съели собаку на EJB.
2 Evgin: К бину можно обратиться как к Local или Remote. Ну и будем для проформы считать бин эээ в роли локального и удаленного. |
|
|
|
 |
vimba : 147 Новичок Откуда: Шахты
|
Ноя 12, 2011 17:24 |
|
|
| WertLex писал(а): |
У меня скорее вопрос.
А как можно использовать _одновременно_ оба интерфейса?
Т.е. Remote работает через RMI далеко-далеко. Local работает только на сервере... но ведь их нельзя использовать по-очереди в контейнере обращаясь к одному бину, так ведь? Поэтому получается, что нет необходимости в двух интерфейсах для одного бина, ведь так или иначе работа происходит либо с Remote, либо с Local, а следовательно, это могли бы быть различные бины.
Собственно вот еще вопрос, касательно EJB, который меня давно мучает. А почему нет возможности использовать не RMI, а скажем какой-либо другой менее платформозависимый RPC? Поясню откуда ноги растут: тут рядом тема есть, как я хлебнул горя с CORBA и сериализацией. Выход найден с помощью костыля, но первопричина так и не решена. Если бы это был, скажем, JSON, на данные можно было бы хоть глазами посмотреть, а тут.. даже не знаю куда и копать.
Вот о чем я думаю.
|
Ты начинаешь рассуждать как настоящий Spring разработчик, возможно для тебя пришло время переходить на настоящую взрослую платформу, и мы сможем помочь тебе итак: красная таблетка поможет тебе забыть о существующих в EJB противоречиях и продолжать жить в гармонии забыв о них, синяя таблетка Spring откроет новый мир возможно местами жестокий и более многообразный и сложный, но охватывающий границы сотен и тысяч фреймвоков, стандартов и протоколов: итак какую таблетку выбираешь красную или синюю? |
|
|
|
 |
WertLex : 93 Новичок
|
Ноя 12, 2011 17:59 |
|
|
А к Spring тетка в обтягивающем кожанном костюме прилагается?=)
А если серьезно, то читая EJB3 in action я проникся платформой. Но когда дело дошло до разработки.. либо я не умею ее готовить, либо Sun не такие уж и молодцы.
А вообще, в разрезе EJB что такое Spring? Везде пишут, что это все-все-все на все случаи жизни. |
|
|
|
 |
vimba : 147 Новичок Откуда: Шахты
|
Ноя 12, 2011 18:20 |
|
|
| WertLex писал(а): |
А вообще, в разрезе EJB что такое Spring? Везде пишут, что это все-все-все на все случаи жизни. |
Spring интеграционный фреймворк предоставляющий свободу мысли, действия, кода, рефакторинга. Это EJB является всего лишь одной из сотен технологий с которой спринг может интегрироваться но ни как не наоборот, поэтому "спринг в разрезе EJB" бессмысленная абра-кадабра. |
|
|
|
 |
nullvoid : 505 Постоянный посетитель Откуда: Красноярск
|
Ноя 12, 2011 19:00 |
|
|
| vimba писал(а): |
| WertLex писал(а): |
У меня скорее вопрос.
А как можно использовать _одновременно_ оба интерфейса?
Т.е. Remote работает через RMI далеко-далеко. Local работает только на сервере... но ведь их нельзя использовать по-очереди в контейнере обращаясь к одному бину, так ведь? Поэтому получается, что нет необходимости в двух интерфейсах для одного бина, ведь так или иначе работа происходит либо с Remote, либо с Local, а следовательно, это могли бы быть различные бины.
Собственно вот еще вопрос, касательно EJB, который меня давно мучает. А почему нет возможности использовать не RMI, а скажем какой-либо другой менее платформозависимый RPC? Поясню откуда ноги растут: тут рядом тема есть, как я хлебнул горя с CORBA и сериализацией. Выход найден с помощью костыля, но первопричина так и не решена. Если бы это был, скажем, JSON, на данные можно было бы хоть глазами посмотреть, а тут.. даже не знаю куда и копать.
Вот о чем я думаю.
|
Ты начинаешь рассуждать как настоящий Spring разработчик, возможно для тебя пришло время переходить на настоящую взрослую платформу, и мы сможем помочь тебе итак: красная таблетка поможет тебе забыть о существующих в EJB противоречиях и продолжать жить в гармонии забыв о них, синяя таблетка Spring откроет новый мир возможно местами жестокий и более многообразный и сложный, но охватывающий границы сотен и тысяч фреймвоков, стандартов и протоколов: итак какую таблетку выбираешь красную или синюю? |
Кхм... блин не хотел вмешиваться ей богу
Меня напрягают слова о серьезности спринга и опущенности EJB.
Ок если spring такая мега серьезная технология, то назови мне хоть один из ниже перечисленных проектов, в котором юзается spring =)
http://www.insight-it.ru/highload/
Возможно я не знаю (сам пробежался по статьям мельком) нигде не увидел спринга.
EJB юзается как миниум в одноклассиниках.
Если пошел холивар на эту тему, предлагаю обсудить в каких серьезных проектах юзается та или иная технология. Этим всё будет сказано. _________________ http://LinguaLeo.ru/r/8b3o08 |
|
|
|
 |
Evgin : 748 Постоянный посетитель Откуда: (SPB)
|
Ноя 12, 2011 19:05 |
|
|
| WertLex писал(а): |
У меня скорее вопрос.
А как можно использовать _одновременно_ оба интерфейса?
Т.е. Remote работает через RMI далеко-далеко. Local работает только на сервере... но ведь их нельзя использовать по-очереди в контейнере обращаясь к одному бину, так ведь?
|
Не стоит забывать что Remote-интерфейс предполагает использование сериализуемых параметров, т.е. передача объектов происходит по значению. При использовании Local - по ссылке, обычно. Это так, кстати.
Использовать remote-доступ можно и в рамках одной jvm(на сервере) вам никто не мешает.
Существует простой подход - local-интерфейс наследовать от remote-интерфейса - таким образом использование локально remote-интерфейса сводиться на нет.
| WertLex писал(а): |
Собственно вот еще вопрос, касательно EJB, который меня давно мучает. А почему нет возможности использовать не RMI, а скажем какой-либо другой менее платформозависимый RPC?
|
"Менее платформозависимый RPC" есть конечно - имеются jax-ws и jax-rs. _________________ Велюровый Петон приветствует Вас :-*
----------------------------
Кроме того, я думаю, что Карфаген должен быть разрушен!!!
----------------------------
javax.swing.JDesktopPane <--- Печаль
----------------------------
НЕ ФЛУДИ, КОМРАД! |
|
|
|
 |
nullvoid : 505 Постоянный посетитель Откуда: Красноярск
|
Ноя 12, 2011 19:09 |
|
|
|
|
|
|
 |
vimba : 147 Новичок Откуда: Шахты
|
Ноя 12, 2011 19:23 |
|
|
| nullvoid писал(а): |
Кхм... блин не хотел вмешиваться ей богу  |
Не хотел, не вмешивайся. Каждое высоко-нагруженное приложение, нагруженно по своему, какое отношение твой оффтоп к нагрузке имеет к теме обсуждения где выяснялось различие Remote и Local, непонятно. На всякий случай напишу, что тот же самый Yahoo на hadoop который в совою очередь на spring побил мировой рекорд как по количеству серверов в кластере так и по типичной пиписькомерке сортировка большого объема данных http://developer.yahoo.com/blogs/hadoop/posts/2009/05/hadoop_sorts_a_petabyte_in_162/. |
|
|
|
 |
nullvoid : 505 Постоянный посетитель Откуда: Красноярск
|
Ноя 12, 2011 19:37 |
|
|
| vimba писал(а): |
| nullvoid писал(а): |
Кхм... блин не хотел вмешиваться ей богу  |
Не хотел, не вмешивайся. Каждое высоко-нагруженное приложение, нагруженно по своему, какое отношение твой высер к нагрузке имеет к теме обсуждения где выяснялось различие Remote и Local, непонятно. На всякий случай напишу, что тот же самый Yahoo на hadoop который в совою очередь на spring побил мировой рекорд как по количеству серверов в кластере так и по типичной пиписькомерке сортировка большого объема данных http://developer.yahoo.com/blogs/hadoop/posts/2009/05/hadoop_sorts_a_petabyte_in_162/. |
Ну во первых где ты увидел высер?
Во вторых ты бы за своими высерами следил:
| Цитата: |
Spring интеграционный фреймворк предоставляющий свободу мысли, действия, кода, рефакторинга.
|
Одна реклама в каждой теме в каждом посте. Надоело пипец.
В третьих серьезность технологии определяется использользованием её в серьезных проектах. Подозреваю, что " побил мировой рекорд как по количеству серверов в кластере так и по типичной пиписькомерке сортировка большого объема данных" заслуга hadoop. _________________ http://LinguaLeo.ru/r/8b3o08 |
|
|
|
 |
vimba : 147 Новичок Откуда: Шахты
|
Ноя 12, 2011 19:47 |
|
|
| Спермотоксикоз? Или очередная пятиминутка ненависти? Использую спринг но не навижу за то что использую? |
|
|
|
 |
nullvoid : 505 Постоянный посетитель Откуда: Красноярск
|
Ноя 12, 2011 19:53 |
|
|
|
|
|
|
 |
vimba : 147 Новичок Откуда: Шахты
|
Ноя 12, 2011 20:08 |
|
|
Ты можешь аргументированно оспорить, например:
| vimba писал(а): |
Spring интеграционный фреймворк предоставляющий свободу мысли, действия, кода, рефакторинга.
|
Мог бы ответить так:
| предполагаемый_ответ писал(а): |
В отличие от вашего спринг, в EJB на мой код не налагается никаких ограничений, в EJB я могу писать код так хочу и EJB соберет это вместе, в отличии от вашего спринга
|
Тогда бы пошел разговор со взрослым человеком, а не с прыщавым подростком, который хочет выглядеть не так как все, и только по этому критикует общепризнанный выбор общества. |
|
|
|
 |
|
|
|