Нужна помощь в выборе технологии

Мне надо сделать некое веб-приложение, которое позволит посетителю сформировать список необходимых ему файлов и после оплаты скачать их в виде архива.

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

Мне почему-то не очень нравится идея запускать процесс на сервере с помощью веб-приложения. Во-первых, мне кажется, что Java EE дает спецификацию на взаимодействие между клиентской веб-частью приложения и средствами находящимися на сервере. В идеале, по-моему, веб-клиент вообще не должен знать о существовании средств, которыми сервер вернет запрошенные файлы. Возможно должно генерироваться какое-то событие, например, завершение формирования списка. Слушать это событие должно приложение, или класс которое и будет работать с файлами. Была мысль сделать некий семафор, наличие которого было бы указанием на начало обработки файлов. Появление этого семафора проверять по cron например каждые 10-20 секунд. Но это значит увеличение нагрузки на сервер независимо от того, запрашивал ли клиент файлы, или нет. Я правильно рассуждаю, не так ли? В тоже время одновременно может прийти несколько запросов на разные файлы от разных посетителей и здесь, как мне кажется, уже всплывает вопрос многопоточности и параллельности.

Прежде мне не приходилось делать ни чего подобного, поэтому теория у меня хромает. Если я где-то не правильно понимаю то, как подобные задачи должны решаться, пожалуйста поправте меня.

В свое время я почитывал книги по Java EE и мне кажется, что это как раз тот случай, когда стоит к ней обратиться, да и такое решение, по-моему, будет более производительным чем на РНР. Подскажите пожалуйста, где можно почитать о подобных решениях, посмотреть примеры?

Сразу благодарю всех откликнувшихся.
no image

Аноним

22 ноября, 23:02
302

Нет комментариев

Добавить комментарий
Вы не можете оставлять комментарии. Чтобы добавить комментарий, залогиньтесь или зарегистрируйтесь
Вы не можете голосовать. Чтобы проголосовать, залогиньтесь или зарегистрируйтесь

1 ответ

На чём писать, на чём проще на том и пиши. 99% хороших проектов заглохли именно на том что программисты просто пытались перепрыгнуть через свою собственную шкуру что-бы родить нечто новое.

Пиши на PHP, он тупо простой.

Для серверной части тебе понадобиться почитать :
http://kvz.io/blog/2009/01/09/create-daemons-in-php/

Запрос на построение выгледит прим. так:
insert into client_requests ( client_id, prepared, active, progress, done, code ) values ( ид, 0, 0, 0, 0, 0 )
set @lid = last_insert_id();
insert into client_files ( requiest_id , file ) values ( @lid, 'super_puper.txt' );
update client_requests SET prepared = 1 where id = @lid;

Ищшь постоянно где prepared=1 и active=0 и done=0
Начал читать файлы поставил active=1 и начал писать progress
Закончил поставил done=1, active=0 и записал уникальный код файла.

no image

Аноним

22 ноября, 23:20

Нет комментариев

Добавить комментарий
Вы не можете отвечать на вопросы. Чтобы ответить на вопрос, пожалуйста залогиньтесь или зарегистрируйтесь
Работа в Украине
Вакансии от WORK.ua
Jira Administrator
Одесса, Snap Ukraine
Front-End Developer
Киев, M-Stream
ASO specialist
Киев, EvoPlay
Аналитик, 15000 грн.
Киев, Lexstatus Group
PHP Full-Stack senior developer, 54000 грн.
Киев, УА.-Медіа.
IT Product Manager
Киев, Pro Group Consult
E-mail Marketing Manager
Киев, Tamga (Poland)
C++ Software Engineer
Киев, SoftServe