Профессиональное программирование на PHP

Страница 341 из 591


352 Глава 14 Поддержка сеансов

ма эффективны в аспекте использования баз данных и серверов. Это также означает, что они вполне (при незначительной модификации) применимы для распределенных систем.

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

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

Клиентские сеансы

Для того чтобы назначить эффективное лечение, врачу необходима медицинская история пациента. Один из способов предоставить такую информацию заключается в том, чтобы носить историю с собой и предоставлять ее врачу. Этот метод гарантирует, что у врача всегда будут наиболее актуальные медицинские записи по данному пациенту, поскольку существует единственная их копия и она хранится у самого пациента. И хотя эта практика более не является широко распространенной в Соединенных Штатах, благодаря недавним достижениям в технологии хранения данных, каждый человек может получить смарт-карту, содержащую его полную медицинскую историю. Такие методы очень похожи на клиентские сеансы, поскольку пользователь носит с собой всю информацию, которая может понадобиться. Это устраняет необходимость в централизованном хранении данных.

Альтернативный способ заключается в том, чтобы оставить медицинские данные на хранение в офисе врача или HMO (Health Maintenance Organization — в настоящее время этот способ распространен в США). Такой метод похож на серверные сеансы, при которых пользователь носит с собой только идентификационную карточку, а его записи ищутся на основании номера социального страхования или другого идентификатора.

Такая аналогия ярко демонстрирует уязвимость клиентских сеансов.

 Существует потенциальная возможность неавторизованного изучения и фальсификации данных.

 Клиентские сеансы сложно транспортировать.

 Существует потенциальная угроза потери данных.

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




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006