На чем сделать сервис?

Все, что вы хотели знать о программизме, но боялись спросить.
Yocto
Частый Гость
Сообщения: 36
Зарегистрирован: 07 окт 2003, 11:06

Сообщение Yocto »

MarkM писал(а):[trn]
Nu i chto, chto SOAP protokol'no nezavisimyj. Mozhno sdelat' solid-sessiju i na stejtless protokole. Tomu primer eta konfa - tred eto kak by sessija, my obmenivaemsja messagami v kontekste etoj sessii.
[/trn]
В данном случае (пример с форумом) серверу невозможно определить момент окончания моей сессии, поскольку только я сам могу решить, писать в эту тему или уже хватит. И растёт эта неопределённость из того факта, что используемый форумом протокол - stateless в своей природе. Так что сессия в этом понимании - ни что иное, как некая достаточно близкая апроксимация, реализованная доступными в протоколе методами. Стало быть, пример не совсем корректен.

И, поскольку все протоколы, на которых может паразитировать SOAP, являются также stateless, все решения, которые будут найдены, останутся только лишь апроксимацией.

Socket тут тоже не будет идеальным решением, поскольку TCP соединение тоже может рваться. Ты что-же, будешь требовать reauthentication после каждого обрыва связи?
Я намекаю на то, что вряд ли данная проблема может быть решена в рамках сетевого транспорта. По логике - это относится к application domain. Другими словами - твоя личная, как разработчика, головная боль. Не зря существует отдельная сущность, такая, как authentication ticket.
Кстати, и с сокетом тоже не всё просто. Ты хочешь обмен данными также вести по SSL? Если нет, тогда и socket тебя не спасёт, поскольку придётся устанавливать два физическиз соединения.
Если да, то только в этом случае ты можешь более-менее защититься от replay или man-in-the-middle.
Ну и можешь начать готовиться к тому, что некоторые сервера могут принудительно разрывать соединение после ответа на HTTPS request. :)

Я тебя, конечно, понимаю. Выбирать в конечном счёте тебе. Я никакой из методов защищать не собираюсь. Просто позднее может оказаться, что об изначальном выборе более сложного в реализации метода начинаешь жалеть. Когда уже достаточно поздно, в полном соответствии с.
MarkM
Пользователь
Сообщения: 113
Зарегистрирован: 24 сен 2003, 21:52

Сообщение MarkM »

Yocto писал(а):
MarkM писал(а):[trn]
Nu i chto, chto SOAP protokol'no nezavisimyj. Mozhno sdelat' solid-sessiju i na stejtless protokole. Tomu primer eta konfa - tred eto kak by sessija, my obmenivaemsja messagami v kontekste etoj sessii.
[/trn]
В данном случае (пример с форумом) серверу невозможно определить момент окончания моей сессии, поскольку только я сам могу решить, писать в эту тему или уже хватит. И растёт эта неопределённость из того факта, что используемый форумом протокол - stateless в своей природе. Так что сессия в этом понимании - ни что иное, как некая достаточно близкая апроксимация, реализованная доступными в протоколе методами. Стало быть, пример не совсем корректен.
[trn]
V bol'shinstve izvestnyh mne protokolov vremja zhizni sessii opredeljaetcja storonami-uchastnikami. Ljuboj mozhet oborvat' sesiju.
Poka obe storony etogo ne delajut sessija dlitsja forever. obychno.
Forum - primer mnogoshagovoj sessii. HTTP - odnoshagovoj.
[/trn]
Yocto писал(а): И, поскольку все протоколы, на которых может паразитировать SOAP, являются также stateless, все решения, которые будут найдены, останутся только лишь апроксимацией.
[trn]
Ja by skazal _realizaciej_ statefull sessii na stateless protokole
[/trn]
Yocto писал(а): Socket тут тоже не будет идеальным решением, поскольку TCP соединение тоже может рваться. Ты что-же, будешь требовать reauthentication после каждого обрыва связи?
[trn]
Da. Rvat' sessiju po tajmautu i vybrasyvat' eksepshn v log.
Klient dolzhen ubit' oborvannuju sessiju i podsoedinjat'sja kak v pervyj raz.
[/trn]
Yocto писал(а): Кстати, и с сокетом тоже не всё просто. Ты хочешь обмен данными также вести по SSL?
[trn]
Da.
[/trn]
Yocto писал(а): Ну и можешь начать готовиться к тому, что некоторые сервера могут принудительно разрывать соединение после ответа на HTTPS request. :)
[trn]
Esli ja budu delat' na SSLsoketak to mne ne nuzhen HTTPS. Esli na servletah, to nehaj rvut. Servlet enzhin dolzhen obrabatyvat' takie situacii. Sledujushij HTTPS rekvest otkroet novuju SSL odnoshagovuju sessiju. Dumaju servlet kontejner sdelaet vse nuzhnoe v plane povtornoj autentikacii. Oshibajus'?
[/trn]
Yocto
Частый Гость
Сообщения: 36
Зарегистрирован: 07 окт 2003, 11:06

Сообщение Yocto »

MarkM писал(а):[trn]
Dumaju servlet kontejner sdelaet vse nuzhnoe v plane povtornoj autentikacii. Oshibajus'?
[/trn]
Без понятия. В сервлетах я не копенгаген.
MarkM
Пользователь
Сообщения: 113
Зарегистрирован: 24 сен 2003, 21:52

Сообщение MarkM »

[trn]
A pochemu nikto ne posovetoval [/trn] Apache Avalon Merlin, Picocontainer ili JBoss[trn] kakoj nibud'?
[/trn]
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8563
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

дык апач не только веб сервер :) на нем слепить целый вагон всего можно только зачем? за три дня можно было скомпилять апач, написать один CGI на С или С++ с сохранением сессии и вызовом твоего барахла из базы. в чем проблема то? :) майнтейнить сервак (административно) намного дешевле чем майнтейнить код. Марк, ты эстет? :)
Последний раз редактировалось папа Карло 04 ноя 2003, 15:51, всего редактировалось 1 раз.
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

MarkM писал(а):[trn]
A pochemu nikto ne posovetoval [/trn] Apache Avalon Merlin, Picocontainer ili JBoss[trn] kakoj nibud'?
[/trn]
Точно, я сам удивляюсь, как это никто ещё не посоветовал Cobol, RPG, Delphi или на худой конец JavaScript :-)
Неплохо смотрятся так же Microsoft Indigo и BPE4WS...
Я бы так же повнимательнее посмотрел на CORBA и MQSeries...
:lol: :lol: :twisted: :twisted:
MarkM
Пользователь
Сообщения: 113
Зарегистрирован: 24 сен 2003, 21:52

Сообщение MarkM »

папа Карло писал(а):дык апач не только веб сервер :) на нем слепить целый вагон всего можно только зачем? за три дня можно было скомпилять апач, написать один CGI на С или С++ с сохранением сессии и вызовом твоего барахла из базы. в чем проблема то? :) майнтейнить сервак (административно) намного дешевле чем майнтейнить код. Марк, ты эстет? :)
[trn]Ne, ty ne ponjal. Ne HTTP server a Merlin. Kak kontejner dlja moego prostogo servisnogo komponenta.
Sejchas chitaju pro Pikokontejner, eto drugoj kontejner. Vrode vse kak doktor propisal.
Ves' frejmvork uzhe est'. Nado tol'ko tuda vstavit' svoj klass, kotoryj realizuet app-level protokol.
[/trn][/trn]
MarkM
Пользователь
Сообщения: 113
Зарегистрирован: 24 сен 2003, 21:52

Сообщение MarkM »

Marmot писал(а):
MarkM писал(а):[trn]
A pochemu nikto ne posovetoval [/trn] Apache Avalon Merlin, Picocontainer ili JBoss[trn] kakoj nibud'?
[/trn]
Точно, я сам удивляюсь, как это никто ещё не посоветовал Cobol, RPG, Delphi или на худой конец JavaScript :-)
Неплохо смотрятся так же Microsoft Indigo и BPE4WS...
Я бы так же повнимательнее посмотрел на CORBA и MQSeries...
:lol: :lol: :twisted: :twisted:
[trn] A chto plohogo v ispol'zovanii tret'estoronnego frejmvorka?
Ja ponimaju, chto servisok na soketah i za 1 den' navajat' mozhno.
No potom nado budet pisat' vokrug nego vsju infrastrukturu, logi, kontroly, sekjurity. Gimor eshe tot. Ja iskal gotovyj frejmvork, v kotorom eto vse uzhe est. Ja tol'ko hotel vstavit' v nego svoj klass dlja protokola urovnja prilozhenija. Po tipu IoC.
Servlety mne ne ponravilis' ubogoj realizaciej Sessii. SessionID peredaetsja v URLe ili v kuke. Chisto sokety, vse rukami, sm. vyshe.
Sejchas smotrju na Pikokontejner.
Ne znaju naskol'ko tjazhel Avalon Merlin. Posmotrim.

Ja cho sovsem ne v tu storonu kopaju? Dak ty skazhi, a ne nasmehajsja.
Skazhi pochemu Pikokontejner ne pojdet? [/trn]http://picocontainer.org/introduction.html
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

MarkM писал(а):
Marmot писал(а):
MarkM писал(а):[trn]
A pochemu nikto ne posovetoval [/trn] Apache Avalon Merlin, Picocontainer ili JBoss[trn] kakoj nibud'?
[/trn]
Точно, я сам удивляюсь, как это никто ещё не посоветовал Cobol, RPG, Delphi или на худой конец JavaScript :-)
Неплохо смотрятся так же Microsoft Indigo и BPE4WS...
Я бы так же повнимательнее посмотрел на CORBA и MQSeries...
:lol: :lol: :twisted: :twisted:
[trn] A chto plohogo v ispol'zovanii tret'estoronnego frejmvorka?
Ja ponimaju, chto servisok na soketah i za 1 den' navajat' mozhno.
No potom nado budet pisat' vokrug nego vsju infrastrukturu, logi, kontroly, sekjurity. Gimor eshe tot. Ja iskal gotovyj frejmvork, v kotorom eto vse uzhe est. Ja tol'ko hotel vstavit' v nego svoj klass dlja protokola urovnja prilozhenija. Po tipu IoC.
Servlety mne ne ponravilis' ubogoj realizaciej Sessii. SessionID peredaetsja v URLe ili v kuke. Chisto sokety, vse rukami, sm. vyshe.
Sejchas smotrju na Pikokontejner.
Ne znaju naskol'ko tjazhel Avalon Merlin. Posmotrim.

Ja cho sovsem ne v tu storonu kopaju? Dak ty skazhi, a ne nasmehajsja.
Skazhi pochemu Pikokontejner ne pojdet? [/trn]http://picocontainer.org/introduction.html
Марк, PicoContainer не имеет никакого отношения к netwok connections.
Это просто контейнер типа JNDI.
Ты его конечно можешь использовать, но он тебе никак не поможет.
Servlets + Apache HttpClient это единственное разумное решение в твоём случае imho.
Session тебе не надо, достаточо положить что нибудь encypted в cookie и проверять наличие этого дела при втором requeste.
MarkM
Пользователь
Сообщения: 113
Зарегистрирован: 24 сен 2003, 21:52

Сообщение MarkM »

Marmot писал(а):Servlets + Apache HttpClient это единственное разумное решение в твоём случае imho.
Session тебе не надо, достаточо положить что нибудь encypted в cookie и проверять наличие этого дела при втором requeste.
Naverno tak i sdelaju. Tol'ko klient ne apache, eto budet procedura v baze.
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

Marmot писал(а): ...
Session тебе не надо, достаточо положить что нибудь encypted в cookie и проверять наличие этого дела при втором requeste.
криво это. во-первых это означает, что весь state должен писаться в сам cookie. во-вторых (по-хорошему), cookie должно включать replay protection (хотя бы по типу syncookies) и authentication hash; encryption ключи надо периодическм вращать, соответсвенно нужно отслеживать soft/hard lifetimes и тд и тп ... при прочих равных правильно имплементировать сессии - проще
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

drain bamage писал(а):
Marmot писал(а): ...
Session тебе не надо, достаточо положить что нибудь encypted в cookie и проверять наличие этого дела при втором requeste.
криво это. во-первых это означает, что весь state должен писаться в сам cookie. во-вторых (по-хорошему), cookie должно включать replay protection (хотя бы по типу syncookies) и authentication hash; encryption ключи надо периодическм вращать, соответсвенно нужно отслеживать soft/hard lifetimes и тд и тп ... при прочих равных правильно имплементировать сессии - проще
Всё зависит от того, что там действительно нужно, и какие требования к security.
То, про что я написал это дешёво и сердито :-)
А если по взрослому делать, то конечно надо через SSL sockets с client authentication.
На Java это 1 день работы,если знаешь как делать, imho.
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

Marmot писал(а):
drain bamage писал(а):
Marmot писал(а): ...
Session тебе не надо, достаточо положить что нибудь encypted в cookie и проверять наличие этого дела при втором requeste.
криво это. во-первых это означает, что весь state должен писаться в сам cookie. во-вторых (по-хорошему), cookie должно включать replay protection (хотя бы по типу syncookies) и authentication hash; encryption ключи надо периодическм вращать, соответсвенно нужно отслеживать soft/hard lifetimes и тд и тп ... при прочих равных правильно имплементировать сессии - проще
Всё зависит от того, что там действительно нужно, и какие требования к security.
То, про что я написал это дешёво и сердито :-)
А если по взрослому делать, то конечно надо через SSL sockets с client authentication.
На Java это 1 день работы,если знаешь как делать, imho.
На С тоже не дольше :-p
Аватара пользователя
Marmot
Графоман
Сообщения: 38347
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Canyon Heights
Контактная информация:

Сообщение Marmot »

drain bamage писал(а):
Marmot писал(а):
drain bamage писал(а):
Marmot писал(а): ...
Session тебе не надо, достаточо положить что нибудь encypted в cookie и проверять наличие этого дела при втором requeste.
криво это. во-первых это означает, что весь state должен писаться в сам cookie. во-вторых (по-хорошему), cookie должно включать replay protection (хотя бы по типу syncookies) и authentication hash; encryption ключи надо периодическм вращать, соответсвенно нужно отслеживать soft/hard lifetimes и тд и тп ... при прочих равных правильно имплементировать сессии - проще
Всё зависит от того, что там действительно нужно, и какие требования к security.
То, про что я написал это дешёво и сердито :-)
А если по взрослому делать, то конечно надо через SSL sockets с client authentication.
На Java это 1 день работы,если знаешь как делать, imho.
На С тоже не дольше :-p
Я на Java сделаю за 2 часа :-D
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

Сообщение ajkj3em »

Marmot писал(а):
drain bamage писал(а):
Marmot писал(а):
drain bamage писал(а):
Marmot писал(а): ...
Session тебе не надо, достаточо положить что нибудь encypted в cookie и проверять наличие этого дела при втором requeste.
криво это. во-первых это означает, что весь state должен писаться в сам cookie. во-вторых (по-хорошему), cookie должно включать replay protection (хотя бы по типу syncookies) и authentication hash; encryption ключи надо периодическм вращать, соответсвенно нужно отслеживать soft/hard lifetimes и тд и тп ... при прочих равных правильно имплементировать сессии - проще
Всё зависит от того, что там действительно нужно, и какие требования к security.
То, про что я написал это дешёво и сердито :-)
А если по взрослому делать, то конечно надо через SSL sockets с client authentication.
На Java это 1 день работы,если знаешь как делать, imho.
На С тоже не дольше :-p
Я на Java сделаю за 2 часа :-D
пиписку не сломай :)
Ответить