Dmitry67 wrote:ЗЫ
Я не призывал отказаться от сессий
А наоборот хотел чтобы каждой Session соответствовал thread, и система не была бы stateless
Но мелгомягкие нашли другое решение
I chto etot thread dolzhen delat'?
Mozhno opisat' v obschih chertah?
Palych wrote:Stateless vs. Stateful - дудочка и кувшинчик.
HTTP благодаря своей stateless природе лежит в основе идеи Веб-приложений, главное преимущество которых - масштабируемость.
Если вынести логику в "апплет" - от stateless запросов никуда не деться, иначе многие вещи просто невозможно реализовать. Другое дело что логику связанную текущей сессии можно вынести на клиента. Однако я сумлеваюсь что сессии на сервере никогда не понадобятся...
Вобщем - реальные приложения построенные по такой архитектуре рискуют быть гораздо уродливее современных Веб-приложений...
Sergey___K wrote:А в чем проблемы с @@SPID?@@SPID
Palych wrote:Dmitry67 wrote:ЗЫ
Я не призывал отказаться от сессий
А наоборот хотел чтобы каждой Session соответствовал thread, и система не была бы stateless
Но мелгомягкие нашли другое решение
I chto etot thread dolzhen delat'?
Mozhno opisat' v obschih chertah?
@@SPID будет меняться независимо от stateless ваша система или нет.Проблема в том что в stateless системе @@spid вашей коннекции на самом деле непредсказуемо меняется при каждом клике
Dmitry67 wrote:Вот вы начали сессию
Запустился thread
Вы открыли в нем коннекцию
так как все объекты не разрушаются после каждого клика то коннекция не закрывается и существует все время жизни сессии
Далее все переменные, списки, обхекты так и хранятся
Вот и все
Как в нормальных windows приложениях
Palych wrote:to Dmitry67
1. Stateful resource trebuet mnogo telodvizhenij chtoby podderzhivat' state na servere i kliente. Osobenno v sluchae udallennogo soedineniya. K tomuzhe pri rabote v clustere prihoditsya libo privyazyvat' usera k konkretnomu serveru, libo peredavat' state po provodam.
2. U nas bol'shinstvo specoborudovaniya dopuskaet 1(odno) soedinenie. Nekotorye - 5. Tut masshtabiruemost' dostigaetsya za schet togo chto ne vse 6000 klientov lomyatsya na odin apparat.
serialization/deserialization v dannom sluchae nuzhna ne potomu chto Stateless, a potomu chto Remote.
2.1. Zadach gde bez clusters ne obojtis' ne tak malo. Von Privet i tot rasshiryaetsya...
3. Ya vse zhe ne ponimayu chto znachit Stateful Thread...
Dmitry67 wrote:Дык если бы самописные приложения то проблем бы небыло бы
Клиент - IE
Strannik223 wrote:Проблемы statefull:
1. Ни клиент ни сервер могут быть не в состоянии определить что другой из них закрыл сессию. Например из за недоступности сети.
2. Большое количество клиентов быстро истощат память сервера своими данными. И не надо считать сколько памяти занимает поток, не много. А вот данных клиент может держать на сервере вобщем случае неопределенный объем. Множим количество клиентов на размер состояния, и получаем полную неопределеннось в потребности сервера в памяти.
3. Клиент может долгое время оставатся бездействующим занимая память на сервере своими данными.
4. Оно не масштабируемо. Сложно построить server farm. А утверждение о том что один сервер справится с любой нагрузкой...
Может сейчас и справится, а через год?
Sergey___K wrote:@@SPID будет меняться независимо от stateless ваша система или нет.Проблема в том что в stateless системе @@spid вашей коннекции на самом деле непредсказуемо меняется при каждом клике
Возьмите создайте connection (ADO) и создайте три command на этот connection, асинхронно запустите command-ы. Гляньте @@SPID. Они будут разными. @@SPID имеет смысл только в одном процессе. Если ваши три command будут каждый запускать развесистую и ленивую хранимую процедуру, то в пределах процесса, исполняющего одну вашу процедуру, (и, значит, этой процедуры), @@SPID не изменится.
Gennadiy wrote:Мы пару лет назад делали такого киента. Полноценный statefull клиент, работающий в IE и Netscape. Есть такая технология ActiveX (для Нетшкафа - plugin-s).
Честный HTTP для прохождения прокси и фаерволов.
7000 клиентов, клиентская часть поддерживала до 1000 обменов в секунду, сервера до 1 млн меседжей в секунду.
Так что все можно было и раньше сделать. Не без усилий конечно.
Еще раз, у вас @@SPID может меняться без переоткрытия коннекции.@@spid меняется если коннекция переоткрывается
В Winforms я могу открыть коннекцию и если она не рвется то держать ее
В web коннекция переоткрывается при каждом клике.
Dmitry67 wrote:Gennadiy wrote:Мы пару лет назад делали такого киента. Полноценный statefull клиент, работающий в IE и Netscape. Есть такая технология ActiveX (для Нетшкафа - plugin-s).
Честный HTTP для прохождения прокси и фаерволов.
7000 клиентов, клиентская часть поддерживала до 1000 обменов в секунду, сервера до 1 млн меседжей в секунду.
Так что все можно было и раньше сделать. Не без усилий конечно.
Думаю это был не IIS и не .Net