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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Промежуточный уровень между клиентом и БД 
:(
    Опции темы
VSergeyV
Дата 22.2.2007, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Необходимо сделать промежуточный уровень, между клиенским приложением и сервером БД (Sybase ASE), через сервер приложений, как я понимаю это реализуется на веб сервисах. Хотелось бы узнать, что в данном случае оптимальный использовать, промежуточном уровне не предпологается никакая аглоритмическая обработка. Взаимодествие между клиентом и сервером приложений предпологается взаимодейсвие по SOAP. Также необходимо предусмотреть сессионость между клиентом и сервером приложений.

Хотелось бы узнать, что использовать в данной задачи (AXIS, AXIS2,  Burlap, и др)  и вообще при разработке веб сервисов по состоянию на настоящее время. Как подходят Sun-овские технологии для разработки веб сервисов, в том числе и в SE6

А еще чтобы можно было пересылать сложные объекты, ResulSet, например

Это сообщение отредактировал(а) VSergeyV - 22.2.2007, 09:21
PM MAIL ICQ   Вверх
Mikamj
Дата 22.2.2007, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.2.2007
Где: Владимир

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



Веб-сервисы предназначены для интеграции гетерогенных приложений, написанных на разных платформах, и использовать их где-попало вредно, т.к. их использование приводит к снижению производительности. А зачем вам вообще промежуточный слой, если не предполагается никакая алгоритмическая обработка? Middleware ведь как раз и предназначен для ее реализации.
PM WWW ICQ   Вверх
VSergeyV
Дата 22.2.2007, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Просто требование, чтобы не пускать внешних клиентов напрямую к БД, не открывать для них внешний порт, вроде все пока, ну может еще как одно дополнительное средство идентификации клиентских приложений, вообщем дана такая постанова задачи smile 
PM MAIL ICQ   Вверх
Mikamj
Дата 22.2.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.2.2007
Где: Владимир

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



Ну т.е. я так понял что вам нужно просто сделать приложение для доступа к БД? Ну тогда лучше использовать EJB на сервере приложений для реализации логики доступа к БД. Клиентом в данном случае может быть как веб-приложение, так и обычная GUI-программа.
Кстати можно использовать Stateful Session Bean для хранения информации в течении сессии.
PM WWW ICQ   Вверх
chief39
Дата 22.2.2007, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


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

Репутация: 11
Всего: 77



Ох не знаю... EJB - тяжёлая кувалда и забивать ей каждый гвоздь...
Да и стэйтфул - тяжёлая вещь....
У нас вся логика в EJB, но сессионность - вэб средствами. Все фасады - стэйтлесс... Хотя, если вэб-клиентов будет мало...

Кстати... Mikamj, я просто не работал с вебсервисами... неужели они медленнее еджиби? Имхо, на маршаллинг и сложные финты ушами еджиби-контейнера времени должно уходить не меньше... но вот вместе производительность не тестил...

Надо чтоб тонкий ценитель вебсервисов Stampede заглянул... хотя тогда он одеяло на них потянет. smile


VSergeyV, главная цель - изоляция уровней приложения с оглядкой на дальнейшую возможную модернизацию?


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
VSergeyV
Дата 22.2.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(chief39 @  22.2.2007,  12:11 Найти цитируемый пост)
главная цель - изоляция уровней приложения с оглядкой на дальнейшую возможную модернизацию? 

да и это в том числе, если не не одно из главных
PM MAIL ICQ   Вверх
Mikamj
Дата 22.2.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 19.2.2007
Где: Владимир

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



Цитата(chief39 @ 22.2.2007,  12:11)
Кстати... Mikamj, я просто не работал с вебсервисами... неужели они медленнее еджиби? Имхо, на маршаллинг и сложные финты ушами еджиби-контейнера времени должно уходить не меньше... но вот вместе производительность не тестил...

Сервисы медленнее, ведь для взаимодействия с ними используется текстовый протокол SOAP. А с веб-сервисами практически тоже самое происходит, что и с EJB, тот же например маршаллинг. Просто за счет независимого протокола SOAP появляется возможность создать оболочки над двумя приложениями, написанными например на дотнете и Java и эти приложения спокойно смогут взаимодействовать между собой посредством вызова нужных сервисов. Именно для этого и была создана технология веб-сервисов, в первую очередь для интеграции.
PM WWW ICQ   Вверх
chief39
Дата 22.2.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


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

Репутация: 11
Всего: 77



Цитата(Mikamj @  22.2.2007,  17:15 Найти цитируемый пост)
Просто за счет независимого протокола SOAP появляется возможность создать оболочки над двумя приложениями, написанными например на дотнете и Java и эти приложения спокойно смогут взаимодействовать между собой посредством вызова нужных сервисов. Именно для этого и была создана технология веб-сервисов, в первую очередь для интеграции. 

Это таки да...

Цитата(Mikamj @  22.2.2007,  17:15 Найти цитируемый пост)
А с веб-сервисами практически тоже самое происходит, что и с EJB, тот же например маршаллинг. 

Гм.. надо будет протестить как-то... В еджибях служебная обработка, насколько помню, потяжелее всего остального.. 



--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
Stampede
Дата 22.2.2007, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



VSergeyV, усли уж вводить промежуточный слой (что, положа руку на сердце, сразу делает прогу на порядок сложнее), то тогда уж и задействовать все те (очень немалые) преимущества, которые предоставляет трехзвенка. В первую очередь - вынести бизнес-логики на сторону сервера приложения. А то я так понял, ты собрался ResultSet'ы по сети гонять smile

Что касается взаимодействия между сервером и клиентом. Я думаю, никто не будет спорить, что лучше текста (XML, хотя и не обязательно) по HTTP тут ничего пока не придумано. Тут тебе и кроссплатформенность, и интероперабельность, и максимальная прокси-проходимость smile

Но вот на чем это сделать - тут есть варианты. Самое распространенное решение - это AXIS(AXIS2). Но я не считаю, что оно самое удачное. Я вообще категорически против любых решений, котрые за тебя генерят какой-то код - будь то SQL-скрипты, оконные Java-классы или описатели WSDL с классами-заглушками впридачу. Концептуально Burlap в этом отношении в тысячу раз сильнее: ему безразлично, что ты хочешь ремоутить. Дай ему только внешний контракт (интерфейс) компонента, и предоставь класс-реализацию - и фсе! Не надо никаких чудовищных WSDL файлов, не надо всяких стабов - все сразу начинает работать, тут же, на глазах.

Другая приятная особенность Burlap'а - это несравненная простота его XML формата. В частности, это позволяет запросто накидать парсер к нему практически на любом языке программирования. Например, я в своих прогах вызываю удаленные ("забурлапленные") методы напрямую из ... браузера, посредством объекта XmlHttpRequest и маленькой библиотечки, которая запаковывает и распаковывает объекты JavaScript в бурлапный XML-формат и обратно.

У Бурлапа, конечно, тоже есть свои недостатки, но тут уж ничего не поделаешь. Я вообще считаю, это позор для Java-комьюнити, что у нас до сих пор нет единого, независимого, многофункционального, гибкого и расширяемого средства ремоутинга, особенно принимая во внимание, что сделать-то его, собственно, не так уж и сложно. Чай, не бином Ньютона smile

Ну а пока, за неимением лучшего, рекомендую все-таки Burlap.


--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
COVD
Дата 22.2.2007, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

А еще чтобы можно было пересылать сложные объекты, ResulSet, например


ResultSet у вас врядли получится отослать. Здесь когда-то уже обсуждали. 
PM MAIL   Вверх
VSergeyV
Дата 2.3.2007, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(COVD @  22.2.2007,  22:19 Найти цитируемый пост)
ResultSet у вас врядли получится отослать. Здесь когда-то уже обсуждали.  

вообщемто это и не оптимально

хотелось бы узнать как оптимальней серелизовать результат вызова удаленной процедуры? C помощью ORM (Hibernate, iBatis), кстати что из них лучше? или вручную писать XML smile 

И еще вопрос про AXIS2 (хоть и Burlap мне очень понравилсь, но решили заюзать AXIS2 чтобы набудующее гарантировать позможность взаимодействия с разношерстными клиентами, хотя и по Burlapy есть либы для С, С шарп, хотя может и Burlap оставим smile ), так вот

вообще для реализации данной задачи у мне нужно предусмотреть
1) Вызов чистого SQL - хранимых процедур с параметрами, название функции и параметры передает клиет
2) Возврат клиенту результата выполнения хранилки, благо в хранилках никогда не бывает нескольких возвращаемых результатов SELECT
3) Возврат клиенту исключений уровня сервера БД
4) Возврат клиенту исключений уровня JDBC

По поводу передачи исключений, AXIS2 позволяет возбуждать исключения на сервисе и перехватывать их на клиенте (пример faulthandling из samples), хотел бы вот узнать, для того чтобы их ловить клиент должен обязательно заюывать AXIS2 или это в SOAP предусмотрено, и вообще значит и на С++ и на С шапр можно будет поймать искючение и его обработать



PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0917 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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