Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Схема работы on-line приложения  (Прочитано 6805 раз)
0 Пользователей и 1 Гость смотрят эту тему.
little
Помогающий

de
Offline Offline
Пол: Мужской

« : 19-02-2008 11:48 » 

Хочу подробнее узнать о принципах работы он-лайн приложений (он-лайн игр, например).

1) На какие модули разбиваются подобные проекты?
2) Какие модули за что отвечают?
3) Как организовано взаимодействие между ними?
4) Какие способы применяются для обработки статуса клиента (отвалился, вернулся и т.п.)

Проект сейчас разрабатывается на .NET-е. Планируется связь Ядро(вин-сервис) - Веб-сервер(Веб-сервисы) - Клиент(Вин-приложение).

До этого с подобного рода разработками не сталкивался.

Что посоветуете? Где почитать про это можно?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 19-02-2008 15:42 » 

Ищи информацию по .NET Remouting - только эта технология устарела и больше поддерживаться не будет. В новом качестве под .NET это развивается в Windows Communication Framework (WCF). Веб-сервисы - это лишь частная реализация общего подхода организации распределённых вычислений при помощи SOAP (Simple Object Access Protocol) поверх HTTP (в качестве транспорта).
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 19-02-2008 15:45 » 

По поводу модулей. Скорее тут нужно решить, как выполнить распределение модулей программного комплекса по узлам сети, а не то, какие это должны быть модули... Точнее, это будет итеративный процесс последовательного наложения структуры модулей на структуру распределения по сети (обычно с целью минимизации трафика между распределёнными компонентами, хотя, бывает, и с целью переноса вычислительной нагрузки со слабых клиентов на мощный сервер или с целью балансировки нагрузки).
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
little
Помогающий

de
Offline Offline
Пол: Мужской

« Ответ #3 : 19-02-2008 15:53 » 

dimka, спасибо за ответ, WCF и намечается, но вопрос был не об инструментах реализации, а о схеме взаимодействия. Интересуют не то что бы алгоритмы, а принципы взаимодействия.

Дело еще в том, что веб-направлении я новичок, и понятия аш-ти-ти-пи контекста и сессии мне известны поверхностно.

Возьмем абстрактную он-лайн игру с клиентской частью.
Как, например, отслеживается сессия (подразумевается проверка пользователя с помощью каких-то параметров сессии).
Но больше интересует поведение в "аварийных" ситуациях - отключение клиента, лаги связи, временное выпадение клиента с последующим возвратом, падение самого сервера.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 19-02-2008 17:53 » 

WCF и намечается, но вопрос был не об инструментах реализации, а о схеме взаимодействия. Интересуют не то что бы алгоритмы, а принципы взаимодействия.
Не понял вопроса. Основная идея всех подобных технологий - "прозрачность" распределённости. Соответственно, принципы взаимодействия при переходе к подобным моделям либо не меняются, либо меняются незначительно. В идеале desktop-клиент вообще никак не замечает, что работает с размещёнными на сервере объектами (если нет проблем со скоростью и качеством соединения). Любой web-сервис выглядит в программе как класс с методами. Конечно, на самом деле на клиенте это прокси/заглушка сервера, но клиента это не должно волновать.

Веб-программирование под ASP.NET - это вообще отдельная история. Это в первую очередь программирование под браузер.

Что касается сессий - для пользователя это всего лишь хэш-таблицы, словари типа "ключ-значение", живущие всё время жизни сеанса с клиентом. На случай аварий резервные копии сессии можно сериализовывать и сбрасывать в хранилища (например, базы данных). Помимо сессии (сеанса работы клиента) - объект Session - ещё есть аналогичная хэш-таблица для хранения общих для всех клиентов объектов - объект Application - живёт всё время жизни серверного приложения.

Соответствие пользователя и сессии сохраняется до тех пор, пока сохраняется соединение пользователя с сервером. В случае необходимости можно использовать имеющийся у сессии есть её уникальный идентификатор. Хотя, скажем, передача его клиенту и обратно - занятие сомнительное с точки зрения безопасности.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines