|
|
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
компонентщикЗдесь хоть спрашивают "как сделать самому|лучше|правильно" а вот тут только ищут. Сами знаете что. Offtop: Что то ты батенька, что "в лужу перднул" (с) местные идиоматические конструкции. Твой запрос - выдал меньше 1% от всех тем, не говоря уже о том, что в 50% от этого <1% вообще про поиск компонента речь не идёт. -- Совсем fine-grained-part-of + GoF "концепции" способность мысли выражать разъели? Впрочем, хочешь верить в свою брякнутую глупость - верь (собственно говоря - это лишь твои личные жизненные трудности). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2007, 20:51:08 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
нетчик у которого ЗП короче 90кР Хрюхрюшкин. скажите НЕТТаки имел дело и с джава и ежб. Расскажи тогда плз что такого есть в ежб в двух словах? EJB — удобное средство для централизации всей бизнес-логики приложения. Тебя устроит такое определение? :) А если бизнес-логику поместить в сборку ( просто jar ), и поставить на него ссылку отовсюда где он нужен? Конечный клиент или ASP.NET ( сперто под именем JSF ) - напрямую линкуем эту сборку. ВинФорм клиент ( недоСвинг зато быстрое ) - обращается к вебсервису который цепляет эту сборку. Что тут не так? Чего еще нехватает - ау господа за 90+Кр :) Добрый день, товарищи! Как я понял большинство нетчиков считает что EJB это такая муйня которая позволяет вызвать методы удаленно... Ну что с них взять? Нет они конечно правы (в первом приближении)! Вот только там есть еще пара интересных слов(на самом деле их больше): stateless и statefull. Представьте что у вас есть класс A, есть два варианта использования его как Session EJB: 1. Класс А представляет компонент без состояния (stateless). В этом случае нет гарантии что два разных вызова от одного будут обрабатанны одним экземпляром класса компонента. Т.е. компонент представляет собой просто набор независимых методов. Зачем это нужно? А дело в том что в этом случае у контейнера развязаны руки - он может заранее создать пул экземпляров и раздавать запросы любым из них => можно делить нагрузку между разными контейнерами. При это многие задачи замечательно ложаться на компоненты без состояния. Если вам не нужен пул экземпляров, и не нужно иметь в будущем возможность создать кластер => Вам нахрен не нужен не нужен EJB - Spring Remoting в руки и вперед. А если прикрутить к нему какой-нибудь JPA (к EJB тоже можно), то клепать распределенные приложения для работы с БД можно стахановскими темпами (по крайней мере те из них которые работают по модели store&forward), например: ..... public void saveMessageList(Collection<Message> _list) throws RemoteException { .... EntityManager em=.... for (Message m : _list) {em.persist(m);} .... } .... .... public class Message implements Serializable {...} .... 2. Класс A представляет компонент с состоянием (statefull). В этом случае как ясно из название компонент сохраняет состояние между вызовами одного и того же клиента. В этом случае контейнер обеспечивает что запросы клиента будут доставлены именно тому экземпляру компонента, которому надо. Кроме того контейнер по собственным соображениям может переместить тот или иной экземпляр в постоянное хранилище (например если клиент долго молчит). В этом случе создатель компонента должен обработать данную ситуацию реализовав методы ebjActivate/ejbPassivate (например чтобы получить/отдать коннект к БД). В случае если долго молчавший клиент даст о себе знать - контейнер десериализует экземпляр из постоянного хранилища. Если задача требует сохранения состояния и не ложиться на stateless, тогда компоненты с состоянием самое то (учтите также что EJB могут выступать как backend для веб сервисов). Ключевой вопрос для такого компонета - кто и с помощью каких механизмов это состояние обеспечивает (А как рабатает поддержка состояние в .NET Remoting и в .NET веб сервисах ;) ?) А что же представляет собой контейнер? В случае Geronimo это монументальный класс (что то типа EJBConatainer..) с торчащим наружу методом: public Object invoke(String _methodName, Object[] _args) throws ЧегоТоТам; (точно не помню). А все механизмы в том числе взаимодействие с менеджером транзакций, сохранение/восстановление спрятаны внутри. Добавьте сюда коннектор (RMI/SOAP), принимающий запрос по сети и в общем это все (не считая локального интерфейса). Что же до интерфейсов - то это просто декларация методов которые реализует компонент (для локального и удаленного интерфейсов) + домашний интерфейс (для создания). В J2EE 5 - используются аннотации. При этом EJB например могут выступать как жопа для JMS - Message Driven Bean это stateless EJB.. Прибавьте сюда деклариативное управление безопасностью (роли), менеджер транзакций (в том числе глобальных), декларативное определение ресурсов и получите довольно неплохой комплект, если знать когда и как его применять. А теперь вопрос к нетчикам: для обеспечения всего этого мне нужен любой J2EE совместимый сервер приложений (учтите что туда еще входит и веб контейнер, пул соединений к БД и пр.), например geronimo, и 100-200 Мб на жестаке (+100 Мб на J2SE). При этом мне не надо заморачиваться на ОС (windows/linux). (ЦЕНА: НОЛЬ!). Что нужно чтобы пользоваться аналогичными благами в .NET (не забудьте учесть ОС), какие механизмы за что отвечают и во сколько мне это обойдется? Чисто технический вопрос: кто и каким образом обеспечивает состояние Вашему веб сервису? P.S. Не надо путать распределенные компоненты и возможность подцепить удаленную библиотеку. P.P.S. Хотя моя ЗП гораздо меньше 90кр :( (в провинции знаете ли все равно Java или Net - одинэсеры сожрали всех...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 12:32:46 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
вобще-то и пул соединений с склсервером и хранение состояний объектов в дотнет изначально входил. Единственное преимущество ежб это распределение нагрузки. Если это надо конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 13:14:47 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
1024вобще-то и пул соединений с склсервером и хранение состояний объектов в дотнет изначально входил. Единственное преимущество ежб это распределение нагрузки. Если это надо конечно Я если не MSSQL? А кто хранит состояние объектов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 13:19:14 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
пул соединений не для мсскл а для любого склсервера хранение состояний может быть организовано несколькими способами вопросы по донету наверна в другом форуме задавать надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 15:30:42 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
автор EJB - разводка или полезная технология? Полезная разводка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 18:43:09 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
mini_rootЯ если не MSSQL? А кто хранит состояние объектов? Забавно... Интересно, а это обязательно только так рассматривать предмет: есть объекты, все, что нужно от БД - это хранить их состояния, малейший чих - это активация этих состояний в виде объектов в БД? Нафига тогда вообще СУБД - храните состояния в плоских файлах, делов то? Может иногда полезно поизучать матчасть самой БД? В целях - не тянуть эти состояния объектов на клиента БД в обязательном порядке (а самый расфуфыренный J2EE - это лишь клиент)? -- Нет? Глупость, наверное, сказал? Или против религии попер? ж) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 18:55:52 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
grexhideМожет иногда полезно поизучать матчасть самой БД? В целях - не тянуть эти состояния объектов на клиента БД в обязательном порядке (а самый расфуфыренный J2EE - это лишь клиент)?А как в БД обеспечивать целостность и непротиворечивость объектов, и их состояний? Сами данные в БД хранить это полдела. В БД оператор может залить столько противоречивых данных, что ау. PL/SQL? А если обработка нетривиальна и в процедурный код не укладывается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 19:08:00 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
shawshankА как в БД обеспечивать целостность и непротиворечивость объектов, и их состояний? Сами данные в БД хранить это полдела. В БД оператор может залить столько противоречивых данных, что ау. PL/SQL? А если обработка нетривиальна и в процедурный код не укладывается? Открой для себя транзакции СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 19:09:05 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
а также ограничения целостности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 22:29:23 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
mini_root нетчик у которого ЗП короче 90кР Хрюхрюшкин. скажите НЕТТаки имел дело и с джава и ежб. Расскажи тогда плз что такого есть в ежб в двух словах? EJB — удобное средство для централизации всей бизнес-логики приложения. Тебя устроит такое определение? :) А если бизнес-логику поместить в сборку ( просто jar ), и поставить на него ссылку отовсюда где он нужен? Конечный клиент или ASP.NET ( сперто под именем JSF ) - напрямую линкуем эту сборку. ВинФорм клиент ( недоСвинг зато быстрое ) - обращается к вебсервису который цепляет эту сборку. Что тут не так? Чего еще нехватает - ау господа за 90+Кр :) Добрый день, товарищи! Как я понял большинство нетчиков считает что EJB это такая муйня которая позволяет вызвать методы удаленно... Ну что с них взять? Нет они конечно правы (в первом приближении)! Вот только там есть еще пара интересных слов(на самом деле их больше): stateless и statefull. Представьте что у вас есть класс A, есть два варианта использования его как Session EJB: 1. Класс А представляет компонент без состояния (stateless). В этом случае нет гарантии что два разных вызова от одного будут обрабатанны одним экземпляром класса компонента. Т.е. компонент представляет собой просто набор независимых методов. Зачем это нужно? А дело в том что в этом случае у контейнера развязаны руки - он может заранее создать пул экземпляров и раздавать запросы любым из них => можно делить нагрузку между разными контейнерами. При это многие задачи замечательно ложаться на компоненты без состояния. Если вам не нужен пул экземпляров, и не нужно иметь в будущем возможность создать кластер => Вам нахрен не нужен не нужен EJB - Spring Remoting в руки и вперед. А если прикрутить к нему какой-нибудь JPA (к EJB тоже можно), то клепать распределенные приложения для работы с БД можно стахановскими темпами (по крайней мере те из них которые работают по модели store&forward), например: ..... public void saveMessageList(Collection<Message> _list) throws RemoteException { .... EntityManager em=.... for (Message m : _list) {em.persist(m);} .... } .... .... public class Message implements Serializable {...} .... 2. Класс A представляет компонент с состоянием (statefull). В этом случае как ясно из название компонент сохраняет состояние между вызовами одного и того же клиента. В этом случае контейнер обеспечивает что запросы клиента будут доставлены именно тому экземпляру компонента, которому надо. Кроме того контейнер по собственным соображениям может переместить тот или иной экземпляр в постоянное хранилище (например если клиент долго молчит). В этом случе создатель компонента должен обработать данную ситуацию реализовав методы ebjActivate/ejbPassivate (например чтобы получить/отдать коннект к БД). В случае если долго молчавший клиент даст о себе знать - контейнер десериализует экземпляр из постоянного хранилища. Если задача требует сохранения состояния и не ложиться на stateless, тогда компоненты с состоянием самое то (учтите также что EJB могут выступать как backend для веб сервисов). Ключевой вопрос для такого компонета - кто и с помощью каких механизмов это состояние обеспечивает (А как рабатает поддержка состояние в .NET Remoting и в .NET веб сервисах ;) ?) А что же представляет собой контейнер? В случае Geronimo это монументальный класс (что то типа EJBConatainer..) с торчащим наружу методом: public Object invoke(String _methodName, Object[] _args) throws ЧегоТоТам; (точно не помню). А все механизмы в том числе взаимодействие с менеджером транзакций, сохранение/восстановление спрятаны внутри. Добавьте сюда коннектор (RMI/SOAP), принимающий запрос по сети и в общем это все (не считая локального интерфейса). Что же до интерфейсов - то это просто декларация методов которые реализует компонент (для локального и удаленного интерфейсов) + домашний интерфейс (для создания). В J2EE 5 - используются аннотации. При этом EJB например могут выступать как жопа для JMS - Message Driven Bean это stateless EJB.. Прибавьте сюда деклариативное управление безопасностью (роли), менеджер транзакций (в том числе глобальных), декларативное определение ресурсов и получите довольно неплохой комплект, если знать когда и как его применять. А теперь вопрос к нетчикам: для обеспечения всего этого мне нужен любой J2EE совместимый сервер приложений (учтите что туда еще входит и веб контейнер, пул соединений к БД и пр.), например geronimo, и 100-200 Мб на жестаке (+100 Мб на J2SE). При этом мне не надо заморачиваться на ОС (windows/linux). (ЦЕНА: НОЛЬ!). Что нужно чтобы пользоваться аналогичными благами в .NET (не забудьте учесть ОС), какие механизмы за что отвечают и во сколько мне это обойдется? Чисто технический вопрос: кто и каким образом обеспечивает состояние Вашему веб сервису? P.S. Не надо путать распределенные компоненты и возможность подцепить удаленную библиотеку. P.P.S. Хотя моя ЗП гораздо меньше 90кр :( (в провинции знаете ли все равно Java или Net - одинэсеры сожрали всех...) Com+ обойдется в лицензию на винду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 23:05:17 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
mini_root Чисто технический вопрос: кто и каким образом обеспечивает состояние Вашему веб сервису? умный: 1. SELECT * from states WHERE session_id=@session_id, этот параметр приходит или в Хидере каждый запрос, или как один из параметров 2. Сессия ASP.NET - сделана аналогично сессии JSP. Может храниться в паямти другой машины, на SQL-ле (т.е. постоянно), где я захочу (если я напишу свой провайдер хранения сессии - та его часть, что согласуется с asp.net ну пол дня-день от силы. Основное именно сам механизм написать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 23:09:23 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
НЕТ чикCom+ обойдется в лицензию на виндуИ всё? А программировать этот COM+ в ноутпаде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 23:25:35 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
рифма: нетчик-минетчик. Шутка ком+ и ежб это вобщем-то технологии с одинаковыми целями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 23:46:49 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
1024ком+ и ежб это вобщем-то технологии с одинаковыми целями DCOM можно сравнивать с RMI, а EJB это больше чем RMI, также как JEE больше чем EJB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 23:54:25 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
grexhide mini_rootЯ если не MSSQL? А кто хранит состояние объектов? Забавно... Интересно, а это обязательно только так рассматривать предмет: есть объекты, все, что нужно от БД - это хранить их состояния, малейший чих - это активация этих состояний в виде объектов в БД? Нафига тогда вообще СУБД - храните состояния в плоских файлах, делов то? Может иногда полезно поизучать матчасть самой БД? В целях - не тянуть эти состояния объектов на клиента БД в обязательном порядке (а самый расфуфыренный J2EE - это лишь клиент)? -- Нет? Глупость, наверное, сказал? Или против религии попер? ж) Вы меня не поняли - я имел в виду Session EJB а не Entity. Т.е. не сущности, а именно сервисы. И хранятся они во встроенной БД(HSQL,Derby) сервера приложений в сериализованном виде (см. ObjectOutputStream). Что позволяет одновременно держать в памяти сервера определенное их количество, а остальное (от неактивных клиентов) хранит в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 09:26:24 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
И куда все нетчики разбежались - я хочу холиварчик! .... Или тоже забить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2007, 00:10:52 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
mini_rootИ куда все нетчики разбежались - я хочу холиварчик! .... Или тоже забить? мочи его ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 09:38:57 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
expp mini_rootИ куда все нетчики разбежались - я хочу холиварчик! .... Или тоже забить? мочи его готово ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 13:58:09 |
|
||
|
EJB - разводка или полезная технология?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz expp mini_rootИ куда все нетчики разбежались - я хочу холиварчик! .... Или тоже забить? мочи его готово Не... скучно! Беседа на уровне "сам дурак"... причем без огонька и сравнения/сопоставления каких-то технических моментов! С другой стороны чего еще ждать от нетчиков (да и жабрЫ там какие-то без задора). Забью я. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2007, 09:42:57 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34753331&tid=2144730]: |
0ms |
get settings: |
13ms |
get forum list: |
20ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
5ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 309ms |
| total: | 486ms |

| 0 / 0 |
