Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Технологии для трехзвенки?..


Автор: Kurt 19.4.2005, 00:36
Сразу извиняюсь за такой вопрос, но поиск по форуму не дал нормального ответа.
Возможно, мне придется писать приложение под следующую задачу. (а может, и не придется smile)
Дано:
1) центральный офис и куча филиалов по всему городу;
2) есть связь по Internet;
3) в центральном офисе есть некая БД (MS SQL Server) супер-пупер важности, низзя чтоб смотрели посторонние;
4) открывать прямой доступ к БД они не хотят. Т.е. 1433, 1435 и другие порты для MS SQL закрыты;
5) филиалы ну очень хотят получать данные из центральной БД;
6) веб-интерфейс их не устраивает. Хочется дектопное приложение;
7) часть филиалов под Windows, часть - под Linux.

Итого, я так понимаю, требуется приложение на Java, причем трехзвенка. К сожалению, трехзвенку на Java мне еще писать не приходилось. Вот, ищу доки, что же мне надо изучить.
В памяти всплывают такие слова как RMI, EJB. Но точно определиться не могу.
Расскажите, пожалуйста, доки какой тематики мне следует прочитать?
Я не прошу конкретных ссылок, просто укажите направление. Конечно, я могу просто начать искать в Google, но хотелось бы получить совет от специалистов и просто любителей, дабы ограничить радиус поиска. Ибо у меня маловато времени для принятия решения.

З.Ы. Web-Services как-то не хочется использовать.


Автор: Domestic Cat 19.4.2005, 05:07
Цитата(Kurt @ 18.4.2005, 15:36)
В памяти всплывают такие слова как RMI, EJB. Но точно определиться не могу.
Расскажите, пожалуйста, доки какой тематики мне следует прочитать?

EJB. Вот тут бесплатная книга к 2.1 версии.
http://www.theserverside.com/books/wiley/masteringEJB/index.tss

Автор: tux 19.4.2005, 07:33
По-моему если нет каких-то сложных структур данных, которые нужно передавать, все-таки гораздо проще использовать что-нибудь типа XML-RPC.
http://www.xml-rpc.org/
http://ws.apache.org/xmlrpc/

Автор: 3,14 19.4.2005, 14:39
Kurt - действительно, а что тебе нужно передавать? И не пойму откуда берёться третье звено? Вроде как одно звено - а ля прокси в центральном офисе, реализует секюрити - второе звено - в филиалах - реализуют интерфейс доступа.

Автор: AntonSaburov 19.4.2005, 15:39
Цитата(3)
Kurt - действительно, а что тебе нужно передавать? И не пойму откуда берёться третье звено?

У Kurt классическая трехзвенная архитектура
1. Клиент
2. Сервер для запросов от клиентов
3. Непосредственно MS SQL

По клиенту - тут надо писать честный GUI. По серверу - EJB-server. Пихаем туда бизнес-логику (если надо). Или просто швыряем данные клиенту из MS SQL.

Автор: batigoal 19.4.2005, 16:27
Цитата(3)
И не пойму откуда берёться третье звено?

А третье - сама база. Хотя конечно, она может находится на той же машине, что и сервер приложений.

Автор: Kurt 19.4.2005, 22:47
AntonSaburov
Lamer George

Вы правы. Именно это я и задумал. А как по-другому, если они не хотят давать доступ к БД напрямую? Да и поидее, трехзвенка - это "правильно". smile
Вобщем, все понял. Спасибо всем - буду учить.


З.Ы. А RMI - это что такое? Это не из этой оперы?

Автор: tux 20.4.2005, 01:53
Из той. RMI - это удаленный вызов методов Java-объектов, но без поддержки распределенных транзакций, ORM, ролевой системы безопасности и других наворотов, которые есть в EJB. И, кроме того, RMI - это как раз то, что использует EJB для реализации удаленных вызовов. Если нет необходимости в перечисленных вещах, имеющихся в EJB, можно использовать RMI, тем более для этого не нужен сервер приложений - RMI входит в JDK.
Здесь обучалка - http://java.sun.com/docs/books/tutorial/rmi/

Автор: Domestic Cat 20.4.2005, 04:04
Цитата(tux @ 19.4.2005, 16:53)
RMI - это как раз то, что использует EJB для реализации удаленных вызовов. Если нет необходимости в перечисленных вещах, имеющихся в EJB, можно использовать RMI, тем более для этого не нужен сервер приложений - RMI входит в JDK.


Это не то, что используется в EJB. Ссылку ты дал на RMI через JRMP. EJB используют RMI IIOP, тьюториал лежит здесь:
http://java.sun.com/j2se/1.4.2/docs/guide/rmi-iiop/tutorial.html

Автор: 3,14 20.4.2005, 09:38
Цитата(AntonSaburov @ 19.4.2005, 15:39)
3. Непосредственно MS SQL

Не думал что её включают как звено, вроде как БД есть вне зависимости от того что пишет програмер, запомню на будущее.

Автор: batigoal 20.4.2005, 10:10
Цитата(3)
Не думал что её включают как звено,

Ну ведь первое звено (presentation) тоже вроде как не должно иметь к программистам отношения - это ведь работа дизайнера. Хотя я пока не сталкивался с примерами подобной изоляции - это, наверное, высший пилотаж.

Автор: AntonSaburov 20.4.2005, 10:24
Цитата(3)
Не думал что её включают как звено

Включают. Обязательно.

Цитата(Lamer @ 20.4.2005, 10:10)
Ну ведь первое звено (presentation) тоже вроде как не должно иметь к программистам отношения - это ведь работа дизайнера.

Ну тут бабушка надвое smile
Клиентская часть может быть разной и написана на разных платформах. Броузер - наибоолее простая и универсальная система, но имеет ряд недостатков - медленная реакция (логики в нем никакой). А если логику делать, то это уже не такой и простой клиент получается. Специализированный клиент может быть более удобен для пользователя. Но требует времени для разработки.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)