Идея чисто гипотетическая, но мне кажется вполне реализуемая. Я не специалист в технологии Flash, но что если устроить сеть для распределенных вычислений с помощью рекламных баннеров?
Для реализации нужна довольно крупная баннерная сеть или посещаемый сайт. Например, имея в онлайне тысячу человек, у которых загружен рекламный (или скрытый) баннер мы
вполне можем использовать немного ресурсов их компьютера.
Схема работы следующая:
Естественно у нас возникает ряд препятствий, а конкретно:
Классы клиентских машин можно оценивать на основании свободной памяти, ширины канала, загруженности и т.п. Я не уверен в этом пункте так как не работал с технологией и все рассуждения чисто гипотетические. С помощью Java всё это реально сделать, но тут мы сталкиваемся с другими проблемами, что уже выходит за рамки статьи.
Далее переходим к серверной части. Она как обычно состоит и базы данных и диспетчера задач.
О базе говорить не будем т.к. её структура сильно зависит от решаемых задач. Диспетчер задач можно реализовать на любом удобном языке программирования но предпочтительно C# или С++ из-за более высокой производительности приложений.
Всё вышесказанное лишь мысли. Не знаю работают ли в реальности такие системы. Хотя иногда видя как очередная рекламная флешка отгрызает 50% процессорного времени начинаешь задумываться, но это скорее из-за криворукости разработчика, но кто знает.
Для реализации нужна довольно крупная баннерная сеть или посещаемый сайт. Например, имея в онлайне тысячу человек, у которых загружен рекламный (или скрытый) баннер мы
вполне можем использовать немного ресурсов их компьютера.
Схема работы следующая:
- Баннер загружается в броузер и запрашивает порцию данных для вычислений.
- Обработка данных.
- Отсылка серверу и запрос новых данных.
Естественно у нас возникает ряд препятствий, а конкретно:
- Пользователи редко проводят много времени на одной и той же странице. В связи с этим необходимо размещать наше приложение на страницах с большим количеством информации, где пользователь задерживается дольше.
- Довольно часто будет возникать ситуация когда порция данных отдана но результат не был возвращен по тем или иным причинам (закрытие страницы например). В данном случае есть смысл максимально разбивать задачу части. То есть отправлять минимально полезное количество данных для вычислений. Так же возможно придется проверять ширину канала и аппаратные ресурсы компьютера и т.п. с последующей записью класса машины в куки (не уверен насчет данного пункта).
- Согласие пользователя. Данный пункт, в принципе, на совести владельцев системы.
Классы клиентских машин можно оценивать на основании свободной памяти, ширины канала, загруженности и т.п. Я не уверен в этом пункте так как не работал с технологией и все рассуждения чисто гипотетические. С помощью Java всё это реально сделать, но тут мы сталкиваемся с другими проблемами, что уже выходит за рамки статьи.
Далее переходим к серверной части. Она как обычно состоит и базы данных и диспетчера задач.
О базе говорить не будем т.к. её структура сильно зависит от решаемых задач. Диспетчер задач можно реализовать на любом удобном языке программирования но предпочтительно C# или С++ из-за более высокой производительности приложений.
Всё вышесказанное лишь мысли. Не знаю работают ли в реальности такие системы. Хотя иногда видя как очередная рекламная флешка отгрызает 50% процессорного времени начинаешь задумываться, но это скорее из-за криворукости разработчика, но кто знает.