| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Помогите с созданием архитектуры и с реализацией. |
| Автор: unkis 10.6.2006, 13:38 |
| Ребята вообщем начинаю изучать J2EE и чтобы небыло скучно придумал себе небольшой проект. Задача заключается в следующем. один или много пользователей, хотят получать данный с определённого сайта и в определйнное время. Чтобы получить данные с определённого сайта, нужно залогинется к сайту(login and passwot), отослать определйнные данные, получившийся ответ скачать и пропарсить. Эту всю операцию нужно делать в указанное пользователям время скажем один указал в 22:50, друго в 8:00 и т.д. Так как я толклм про J2EE ничего не знаю, я могу предположить что будет это выгляеить приблезительно так. Для регестрации пользователей на моём сайте я наверно буду использовать JSF. дальше пользователь вводит определйнное ремя, и что он хочет получить это всё тот же JSF. А вот дальше я не совсем предстовляю, думаю что должна работать какая-то программа, возможно это и есть сервлет, и в определённое пользователям время проделывать вышеописанные операции. при этом как-то надо учесть что пользователей может быть 500 и больше и что все они в одно и тоже время захотят получить разную инфу. И если она будет работать всё время то она может сожрать всю память. Надеюсь что понятно описал свою проблему. Вопрос заключается в следующем при помощи чего и как реализовать последнее действие? Зарания благодарен. |
| Автор: unkis 12.6.2006, 19:56 |
| вот попробывал написать диаграмму, может так понятней буде. http://public.rz.fh-wolfenbuettel.de/~barvenko/pr/project.pdf |
| Автор: tux 13.6.2006, 02:24 |
| Для того, чтобы запускать операции по времени можно использовать http://www.opensymphony.com/quartz/. И все равно ничего не понятно что именно тебе нужно. Каким образом ты собираешься возвращать пользователям данные в нужное время? Об архитектуре чего идет речь? В общем вопросы плиз поконкретнее. Давай по частям разбираться с задачей. |
| Автор: unkis 14.6.2006, 10:00 |
| в этой задаче, очень важным моментом для пользователяч играет время. тоесть, в определённое время надо забрать инфу с сайта, а посмотреть он её сможет и потом скажем через 2 часа, через день и т.д. Тоесть основной смысл этой программы следующий: что есть определённый сайт и данные на нём меняются скажем каждые 10 секунд, но определённые данные для каждого пользователя очень важны, и поэтому если он(пользователь) не получит эти данные в задданное им время, то потом он может получить другие, которые для него абслоютно уже не важны. Я же хочу попробывать сделать централизацию, зашёл пользователь на мой сайт, сказал что хочу зобрать те или инные данные в определйнное время, и пошёл спокойно себе спать, отдыхать. потомучто будет знать что мой сайт сделает всё за него и он ничего не пропустит. Теперь насчёт реализачии. 1) что произойдет если 1000 пользователей захатят получить разные данные, но в определённое время? 2) ну скажем будет сервлет который будет вызыватся в нужное время и забирать данные с страници, но чтобы вызвать этот сервлет должна работать програма на сервере которая будет следить за времинем, а это значит что если 10 пользоателей захотели получить данные в 15:00, 100 в 15:10, ещё 100 в 15:55 и так далее. тоесть приблезительно будет лист соостоящий из 1000 а может и 100000 елеменотов. а это значит что это всё будет весеть в памяти. и грузитть сервер, как можно продумать этот момент? Зарания благодарен. |
| Автор: Stampede 14.6.2006, 11:05 |
| unkis, я все время в таких случаях вспоминаю анекдот про чукчу: "ты не умничай, ты пальцем покажи". Решения для твоей задачи существуют, но способы реализации очень сильно зависят от деталей. Вплоть до того, что может запросто оказаться, что самым простым решением будет использовать емейл уведомления. Но это совсем не обязательно. Можно сделать и на RSS-подписках. А можно - на персонализированных веб-страничках. Но ты покажи пальцем, чего хочешь добиться! Я понимаю, ты боишься, что твою гениальную идею непременно сопрут и ты останешься на бобах. Так вот, чтобы ты знал: все гениальные идеи стоят примерно пять копеек за мешок в базарный день. Единственная ценность гениальной идеи - в том и тогда, когда ты берешься за ее осуществление. И в процессе работы над ее реализацией к тебе придет понимание, что идея-то на поверку была так себе... Зато по ходу у тебя родится новая, настоящая идея... Ну, в общем, ты понял А чтобы тебе стали виднее прорехи в твоих рассуждениях, я тебе укажу на один маленький нюанс. Вот ты боишься, что к тебе придут 10 тысяч одновременных юзеров. Да об этом мечтать нужно, а не бояться! Какой бы ни была цель твоего проекта, если (дай бог) ты сможешь привлечь столько посетителей, то поверь, ты уж найдешь возможность сделать так, чтобы проект худо-бедно сам себя окупал, включая самое навороченное железо и наикрутейший хостинг. Так что колись, чего задумал. Никак онлайновый аукцион? Или валютную биржу? Ну ладно-ладно, шучу... [шепотом] тотализатор, да? не-не, я никому - молчок |
| Автор: unkis 15.6.2006, 11:10 |
| ну допустим пусть это будет онлановый аукцион. где время это не маловажный фактор. |
| Автор: Stampede 19.6.2006, 22:48 |
Хорошо, поехали. У тебя есть аукцион, и на нем куча участников. Участники совершают следующие действия:
Рассмотрим интерфейс покупателя. С одной стороны, он должен иметь возможность лазить по всем закоулкам аукциона и видеть ту же инфу, что и все остальные: текущие лоты, историю ставок по отдельному лоту, историю продавцов, историю по категориям товаров и т. д. С другой стороны, ему важно видеть, что присходит с лотами, на которые он подал заявку. Можно ли как-то совместить эти две части интерфейса? Легче легкого! Надо просто сделать персонализированную врезку, которая будет отображаться на каждой странице, и именно для данного юзера. Врезка может выглядет примерно так: Текущие заявки:
Вот и всех делов. Сделать это можно обычными средствами серверного программирования, без привлечения Аякса и прочих фокусов. Если нужны пояснения - пиши, поясним |