На чем сделать сервис?
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Пользователь
- Сообщения: 113
- Зарегистрирован: 24 сен 2003, 21:52
На чем сделать сервис?
хай-левел коммуникэйшн протокол:
--------------------------------------------------------------------
# Клиент ............... Сервис
---------------------------------------------------------------------
1. "Hello. I'm klient 'Scott'" ------------->
2. <------------- "Hi. take 5."
3. "Give me data" ---------->
4. <------------- "data: 1 2 'blabla' 3 45 345 'blablabla' 64..."
Сразу скажу - шаг 2 нужен.
прочие требования.
- заворачиваемость в ССЛ.
- передача бинарных данных в шаге 4
- мултитред на Сервисе, по типу форканья дочернего процесса/трэда. Т.к. обработка шага 4 может занять некоторое время - надо дать возможность другим Клиентам соединиться.
- Шаг 4 будет работать с БД.
Сомнения - делать все в одной сессии или в виде двух Request/Reply сессий.
Что использовать?
1 просто Сокеты/ССЛсокеты и писать все(малтитрэд) руками.
2 использовать готовый HTTP server
3 использовать готовый Java Servlet container
4 использовать готовый WebService SOAP server
(знаки вопроса ниже означает мое сильное сомнение)
№1 Сокеты.
Достоинства - Неизбыточность.
Недостатки - много разработки, поддержки...
№2 HTTP
Достоинства - готовый малтитрэд.
Недостатки - избыточность функционала. Проблема с передачей бинарных данных?. Отсутствие пула ДБ соединений.
№3 Servlet
Достоинства - готовый малтитрэд. пул ДБ соединений
Недостатки - избыточность функционала.
№4. WebService SOAP
Достоинства - XML как контэйнер для данных. готовый малтитрэд. пул ДБ соединений.
Недостатки - избыточность функционала. Секьюрити?Производительность?
Ваши рекомендации, господа.
--------------------------------------------------------------------
# Клиент ............... Сервис
---------------------------------------------------------------------
1. "Hello. I'm klient 'Scott'" ------------->
2. <------------- "Hi. take 5."
3. "Give me data" ---------->
4. <------------- "data: 1 2 'blabla' 3 45 345 'blablabla' 64..."
Сразу скажу - шаг 2 нужен.
прочие требования.
- заворачиваемость в ССЛ.
- передача бинарных данных в шаге 4
- мултитред на Сервисе, по типу форканья дочернего процесса/трэда. Т.к. обработка шага 4 может занять некоторое время - надо дать возможность другим Клиентам соединиться.
- Шаг 4 будет работать с БД.
Сомнения - делать все в одной сессии или в виде двух Request/Reply сессий.
Что использовать?
1 просто Сокеты/ССЛсокеты и писать все(малтитрэд) руками.
2 использовать готовый HTTP server
3 использовать готовый Java Servlet container
4 использовать готовый WebService SOAP server
(знаки вопроса ниже означает мое сильное сомнение)
№1 Сокеты.
Достоинства - Неизбыточность.
Недостатки - много разработки, поддержки...
№2 HTTP
Достоинства - готовый малтитрэд.
Недостатки - избыточность функционала. Проблема с передачей бинарных данных?. Отсутствие пула ДБ соединений.
№3 Servlet
Достоинства - готовый малтитрэд. пул ДБ соединений
Недостатки - избыточность функционала.
№4. WebService SOAP
Достоинства - XML как контэйнер для данных. готовый малтитрэд. пул ДБ соединений.
Недостатки - избыточность функционала. Секьюрити?Производительность?
Ваши рекомендации, господа.
- Marmot
- Графоман
- Сообщения: 38347
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Canyon Heights
- Контактная информация:
#3 возьми jetty: http://jetty.mortbay.org/jetty/ , отрежь ему всё что не надо и вперёд...
Не помню, есть ли у него DBConnectionPool, но его можно взять на jakarta commons...
Не помню, есть ли у него DBConnectionPool, но его можно взять на jakarta commons...
-
- Частый Гость
- Сообщения: 36
- Зарегистрирован: 07 окт 2003, 11:06
Re: На чем сделать сервис?
Судя по сумбурности изложения, у тебя в голове наблюдается приличная каша из всего вышеперечисленного.MarkM писал(а): Что использовать?
Мне, например, не совсем понятно, почему разноуровневые и несмешиваемые протоколы (такие как HTTP и SOAP) вынесены в разные пункты. Или почему отсутствие пула соединений с ДБ ставится в упрёк HTTP (!). Или что такое "избыточный функционал" и почему он является недостатком.
И вообще зачем тебе это всё нужно? Если это курсовая работа, поработай с SSL handshake вручную (вариант 1 'сокеты'). Приобретёшь достаточно ценный опыт и поймёшь, что этот вопрос лучше ни трогать при наличие любой альтернативы.
В остающихся трёх пунктах при удалении спорного тезиса о наличии/неналичии пула соединений с ДБ и всех тезисов, удачно помеченных вопросительными знаками (ты правильно их пометил, этих проблем там либо нет, либо они неприменимы к соответствующим пунктам) ты увидишь, что никакой разницы не осталось. Её и нет (конечно, в моём представлении). То есть, можешь смело выбирать тот метод, который тебе знаком более остальных.
- Marmot
- Графоман
- Сообщения: 38347
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Canyon Heights
- Контактная информация:
Re: На чем сделать сервис?
Проблема не в сумбурности, а в том, что контекст проблемы не описан...Yocto писал(а):Судя по сумбурности изложения, у тебя в голове наблюдается приличная каша из всего вышеперечисленного.MarkM писал(а): Что использовать?
Но, так как, я например, работаю в том же контексте, вопрос кажется простым, понятным и обоснованным
-
- Пользователь
- Сообщения: 113
- Зарегистрирован: 24 сен 2003, 21:52
Да контекст проблемы прост.
Надо подключиться к Сервису и взять из него некоторые данные.
Я понимаю, что это можно сделать 1001 разными способами.
Хочется выбрать:
- наиболее простой,
- с наименьшим объемом программирования и поддержки,
- с наименьшим количеством тяжелых третьесторонних компонент, типа мощных универсальных Веб/Апп серверов, которые для такой задачи как из пушки по воробъям.
- в то же время надо иметь секьюрити, и возможность хай-эвэйлабилити и скэйлабилити.
ЗЫ. Возможно каша в голове есть. Но я понимаю разницу м-ду ХТТП и СОАП. Я так же понимаю, что можно реализовать свой велосипед(протокол) на голых сокетах, а можно использовать готовый, такой как просто HTML/HTTP или SOAP in HTTP. Можно заворачивать данные в HTML а можно в XML а можно и просто в классах передавать.
Т.к. опыта мало, то я прошу помощи. Что вам людям с опытом кажется наиболее работоспособным в реальных условиях?
Кстати, в клиенте надо будет навигироваться в данных, переданных с сервера. Это будет вроде как таблица (String NAME , int Version, String DATA). НАвигация по ключу (NAME, Version). Строк не много - десятки, максимум сотни.
Если это будет XML документ, то сильно ли это медленне чем, чисто джавовский хэш?
ЗЫЫ. Это не курсовой.
Надо подключиться к Сервису и взять из него некоторые данные.
Я понимаю, что это можно сделать 1001 разными способами.
Хочется выбрать:
- наиболее простой,
- с наименьшим объемом программирования и поддержки,
- с наименьшим количеством тяжелых третьесторонних компонент, типа мощных универсальных Веб/Апп серверов, которые для такой задачи как из пушки по воробъям.
- в то же время надо иметь секьюрити, и возможность хай-эвэйлабилити и скэйлабилити.
ЗЫ. Возможно каша в голове есть. Но я понимаю разницу м-ду ХТТП и СОАП. Я так же понимаю, что можно реализовать свой велосипед(протокол) на голых сокетах, а можно использовать готовый, такой как просто HTML/HTTP или SOAP in HTTP. Можно заворачивать данные в HTML а можно в XML а можно и просто в классах передавать.
Т.к. опыта мало, то я прошу помощи. Что вам людям с опытом кажется наиболее работоспособным в реальных условиях?
Кстати, в клиенте надо будет навигироваться в данных, переданных с сервера. Это будет вроде как таблица (String NAME , int Version, String DATA). НАвигация по ключу (NAME, Version). Строк не много - десятки, максимум сотни.
Если это будет XML документ, то сильно ли это медленне чем, чисто джавовский хэш?
ЗЫЫ. Это не курсовой.
- Marmot
- Графоман
- Сообщения: 38347
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Canyon Heights
- Контактная информация:
- папа Карло
- Шарманщик
- Сообщения: 8563
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
- Marmot
- Графоман
- Сообщения: 38347
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Canyon Heights
- Контактная информация:
- папа Карло
- Шарманщик
- Сообщения: 8563
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
- Marmot
- Графоман
- Сообщения: 38347
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Canyon Heights
- Контактная информация:
"разумеется пробовал", или "разумеется представляю"?папа Карло писал(а):разумеется.Marmot писал(а):Папа, а ты это пробовал делать, перед тем как советовать?папа Карло писал(а):#2. Apache.... откомпиляешь его с тем что тебе надо... сессию только надо хранить будеть. сешен лесс системы легче скалить.
Объём геморроя представляешь?
- папа Карло
- Шарманщик
- Сообщения: 8563
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
- aldep
- Маньяк
- Сообщения: 1593
- Зарегистрирован: 18 фев 2003, 08:06
- Откуда: Toronto
- Контактная информация:
-
- Пользователь
- Сообщения: 113
- Зарегистрирован: 24 сен 2003, 21:52
- ajkj3em
- Маньяк
- Сообщения: 2063
- Зарегистрирован: 12 ноя 2006, 06:53
есть мнение, что все зависит от имеющихся в наличии навыков. знаешь сервлеты - пиши на них, знаешь сокеты и чувствуешь комфортно со своим протоколом - делай так ..MarkM писал(а): Другие мнения?
единственный, пожалуй, комментарий общего плана - HTTP имеет смысл рассматривать только, если в requirements есть пункт про proxy traversal. а так - гимор выше среднего (как папа карло уже сказал, надо добавлять statefulness к http, что есть та еще радость).
- ajkj3em
- Маньяк
- Сообщения: 2063
- Зарегистрирован: 12 ноя 2006, 06:53
Re: На чем сделать сервис?
можно полюбопытствовать - почему ?Yocto писал(а):[Если это курсовая работа, поработай с SSL handshake вручную (вариант 1 'сокеты'). Приобретёшь достаточно ценный опыт и поймёшь, что этот вопрос лучше ни трогать при наличие любой альтернативы.