Re: Может я чего-то не понимаю?!!
От: Trean Беларусь http://axamit.com/
Дата: 23.08.06 20:23
Оценка: +1
Здравствуйте, AlexGK, Вы писали:

Я конечно не эксперт в Java, но постараюсь ответить в меру своего понимания

AGK>Здравствуйте!


AGK>Перехожу с .Net на Java, возникает масса вопросов....

AGK>Например: архитектура ВЕБ-приложений для .NET с которыми я всегда работал выглядела примерно следующим образом:

AGK>______________________________

AGK>| UI| WEB serv |Win serv |...|
AGK>|___|__________|_________|___|
AGK>| Сервисный слой |
AGK>|____________________________|
AGK>| БД |
AGK>|____________________________|

AGK>Сервисный слой — объекты для вызова хранимых процедур (ХП) из БД, кроме того содержат интерфейсы сущностей из БД, слой осуществляет обработку результата выполнения ХП, если есть необходимость то осуществлял маппинг. Вся бизнес-логика реализована на сервере БД и вызывается сервисным слоем.

AGK>Сервисный слой также решал проблемы при одновременном обновлении, а точнее обновлении "устаревших" данных, выдавая нужное исключение

Если я правильно понял, то сервисный слой включал в себя объектную модель приложения (ии ее вообще не было, а были DataSets), и в тоже время средства для работы с базой? Не совсем понятно зачем смешивать перпендикулярные вещи в одном слое? Хранение данных лишь один из аспектов приложения. По мне, так всю бизнес логику пихать в РСУБД которая изначально предназначена для хранения и выборки данных не самое лучшее решение. Хотя бы потому, что бизнес-логика в хранимых процедурах это гарантированный vendor-locking. Да и поддерживать горы SQL-кода сложнее, чем тоже писанное на ООП языке.

AGK>Ну и UI, который "общался" с БД посредством сервисного слоя.


AGK>Вся система допускала масштабирование на кластере.

AGK>-----------------------------------------------------------
AGK>Столкнувшись с Java и иже с ним (EJB,Hibernate и проч.) в упор не понимаю зачем они нужны??!

Hibernate, EJB(Entity), JDO это в большей мере средства абстрагирования объектной модели приложения от конкретного хранилища данных, это может быть реляционная БД (здесь и нужен ORM), объектная БД, обычный XML-файл в конце концов. Если вам нужна сверхвысокая производительность на специальных запросах или хотите работать на низком уровне используйте JDBC напрямую. Зато JDO, Hiberanate помогут вам перенести приложение на другую БД без особых проблем, предоставят возможности по декларативному управлению транзакциями, кэшированием и др. полезными вещами.

AGK>О EJB — много читал, и придумал лишь одно применение (но весьма сомнительное) — "толстый" (в смысле обычное GUI или апплет, короче не WEB) клиент, но никак не WEB. Объясните — в каких случаях он применим? Как я понял он, кроме всего прочего, заменяет сервисный слой, но мне с трудом верится, что обойдется без ХП, в итоге — ... в итоге чушь.


Не понял откуда вы сделали такой вывод? Ведь EJB бывают разные entity, stateful и stateless session beans. И ни одному из них ничего не мешает работать в WEB.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.