Честно говоря, я и сам в этом не большой специалист. За чте мне, как профессиональному программисту, наверное должно быть стыдно. Впрочем, я утешаюсь тем фактом, что в своё время, когда комьютеры ещё были большими, а ум, честь и совесть имели вполне конкретное воплощение, всё обстояло примерно также. Помнится, когда в нашу сверхсекретную контору в первый раз завезли персоналки и сделали из них «коммуналки», первыми, кто их раально освоил, были наши сантехники. Тогда как нам, грешным, дискуты (5,25 дюйма, 360 КБ) выдавали (кому вообще выдавали) поштучно, у них откуда-то они брались целыми пачками, забитыми всевозможными игрушками.
Однако, хватить ностальгических воспоминаний о счастливом советском детсте, отрочестве и юности. К делу. Недавно мне показали некую P2P сеть, под названием eDonkey. Самая популярная (насколько я понял) клиентская программа для доступа к ней представлена вот здесь, зовут eMule:
Как туда заносить новые файлы, я ещё не разбирался, но это не должно быть слишком сложно. Идея же, что Вы делаете некоторые свои справочники доступными для других через специфический протокол. Вы запускаете клиента (на полупостоянной основе) и он сообщает серверу (их очень много, но все они как-то связаны между собой, так что, если я ничего не путаю, без большой разницы, с каким именно связывается клиент), что именно у него есть. Далее Вы можете посмотреть, что есть у других и поискать несколькими методами то, что Вам интересно и сказать клиенту, что вот это, мол, я хочу (кучу всего одновременно, с приоритетами). Он всё это запомнит и после будет регулярно выяснять у сервера, где такое есть, а выяснив, обращаться своим собратьям непосредственно за интересующими Вас файлами. Собратья же эти выстраивают все полученные запросы в очередь и порядке её их удовлетворяют. При этом скачивание одного файла может идти (и обычно идёт) сразу из нескольких мест, поскольку каждому вновь поступившему в систему файлу присваивается уникальный идентификатор (GUID?), который потом распространяется вместе с файлом. При этом скачивание идёт небольшими кусками и в случае любых разрывов связи по чьей бы то ни было вине восстанавливается с любого другого доступного источника. Например, Вы выкладываете это кино и я начинаю его скачивать. Сразу же в сети появляется сразу два источника — Вы и я — и если кто-то третий начинает его скачивать, то то, что я уже скачал, он будет брать у меня, а остальное — у Вас. И т.д. В каждый конкретный момент Вы качаете роазные файлы или разные куски одного и того же файла из разных мест и посылаете куски того, что есть у Вас в несколько других мест. Но чтобы всё это не мешало Вашей нормальной работе Вы явно указываете, какую пропускную способность своего канала Вы под это выделяете: отдельно на скачивание и отдельно на передачу другом.
Да, данный конкретный клиент — OpenSource, так что каких-либо гадостей от него ожидать вряд ли можно. Я правда, от излишней паранойи запустил его на виртуальной машине, но это, наверное, перестраховка.
Re: Как насчёт выложить куда-нибудь?
Date: 2006-02-11 05:58 pm (UTC)Однако, хватить ностальгических воспоминаний о счастливом советском детсте, отрочестве и юности. К делу. Недавно мне показали некую P2P сеть, под названием eDonkey. Самая популярная (насколько я понял) клиентская программа для доступа к ней представлена вот здесь, зовут eMule:
http://www.emule-project.net/home/perl/general.cgi?l=1
Как туда заносить новые файлы, я ещё не разбирался, но это не должно быть слишком сложно. Идея же, что Вы делаете некоторые свои справочники доступными для других через специфический протокол. Вы запускаете клиента (на полупостоянной основе) и он сообщает серверу (их очень много, но все они как-то связаны между собой, так что, если я ничего не путаю, без большой разницы, с каким именно связывается клиент), что именно у него есть. Далее Вы можете посмотреть, что есть у других и поискать несколькими методами то, что Вам интересно и сказать клиенту, что вот это, мол, я хочу (кучу всего одновременно, с приоритетами). Он всё это запомнит и после будет регулярно выяснять у сервера, где такое есть, а выяснив, обращаться своим собратьям непосредственно за интересующими Вас файлами. Собратья же эти выстраивают все полученные запросы в очередь и порядке её их удовлетворяют. При этом скачивание одного файла может идти (и обычно идёт) сразу из нескольких мест, поскольку каждому вновь поступившему в систему файлу присваивается уникальный идентификатор (GUID?), который потом распространяется вместе с файлом. При этом скачивание идёт небольшими кусками и в случае любых разрывов связи по чьей бы то ни было вине восстанавливается с любого другого доступного источника. Например, Вы выкладываете это кино и я начинаю его скачивать. Сразу же в сети появляется сразу два источника — Вы и я — и если кто-то третий начинает его скачивать, то то, что я уже скачал, он будет брать у меня, а остальное — у Вас. И т.д. В каждый конкретный момент Вы качаете роазные файлы или разные куски одного и того же файла из разных мест и посылаете куски того, что есть у Вас в несколько других мест. Но чтобы всё это не мешало Вашей нормальной работе Вы явно указываете, какую пропускную способность своего канала Вы под это выделяете: отдельно на скачивание и отдельно на передачу другом.
Да, данный конкретный клиент — OpenSource, так что каких-либо гадостей от него ожидать вряд ли можно. Я правда, от излишней паранойи запустил его на виртуальной машине, но это, наверное, перестраховка.
Re: Как насчёт выложить куда-нибудь?
Date: 2006-02-12 03:35 pm (UTC)Re: Как насчёт выложить куда-нибудь?
Date: 2006-02-12 04:15 pm (UTC)