Разрешить выход из системы при загрузке нескольких больших файлов - PullRequest
0 голосов
/ 17 июня 2009

Меня попросили реализовать программу загрузки файлов. Программа представляет собой приложение Java Web Start, отвечающее за загрузку содержимого компакт-диска в веб-приложение. Здесь есть два требования:

  1. Загрузчик должен работать в фоновом режиме с минимальным взаимодействием (без богатого графического интерфейса).
  2. Пользователи могут не захотеть смотреть загружаемый файл. Пользователь должен иметь возможность выйти из системы, пока загрузчик все еще работает. Загрузка должна продолжаться, даже если пользователь выходит из системы.

Мне кажется, что №2 в лучшем случае небезопасен, а в худшем - невозможен. По сути, для реализации такого варианта использования вам необходимо создать новый идентификатор сеанса для загрузчика; независимо от исходного сеанса и без пароля пользователя.

У кого-нибудь был подобный вариант использования? Если да, то какой подход вы выбрали?

Ответы [ 2 ]

1 голос
/ 17 июня 2009

От пользователя POV я не вижу № 2 когда-либо актуальным. Пользователь думает, что если он «выйдет из системы», то любые текущие операции будут отменены, тогда он, скорее всего, выключит свой компьютер - в этом случае ваш перевод не будет продолжен. Просто позвольте им свернуть интерфейс к маленькому значку в правом нижнем углу (у человека, имеющего мозговое пердеть, не могу вспомнить, как они называются) панели задач в Windows.

1 голос
/ 17 июня 2009

Я не уверен, почему это сложно, даже если пользователь выходит из системы.

Сессия запускается при входе в систему, идентификатор сессии назначен.

Пользователь начинает загрузку файла с информацией об идентификаторе сеанса в имени файла. например session_id_user_name.DAT

Пользователь выходит из системы

Файл завершен, фоновый процесс на хосте идентифицирует информацию на основе идентификатора сеанса, перемещает файл в местоположение.

Пользователь снова входит в систему

Файл распознан и привязан к учетной записи.

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

Возможно, я упростил это, но это кажется простым.

...