MyWackoSite: РаспределенноеХранилище ...

Home Page | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация | Вход:  Пароль:  
Это старая версия РаспределенноеХранилище за 2007-08-09 12:23:45..
SRS
Цель – создание клиента, позволяющего выкладывать файлы в распределенное хранилище и скачивать их оттуда.
То есть на основе которого возможно создание децентрализованной пиринговой сети, каждый участник которой
выступает как в роли сервера так и в роли пользователя. Таким образом обмен информацией с помощью него не 
будет зависеть от работоспособности и наличия в сети серверов, в отличие от многих других существующих
пиринговых систем.

Поиск файлов:
– поиск должен осуществляться аналогично быстро в сравнении с другими паринговыми системами;
– поиск должен производится по полному имени, маске, расширению, ключевым словам, типу файлов (audio,
video, картинки и прочее);
– поиск должен запрашивать у пользователя ограничения по размеру искомого файла;
– ограничения по размеру файла (сверху) должны быть не менее 9 Гб;

– в случае отказа должна быть 100%-ая уверенность в том, что искомый файл действительно не присутствует в сети;
– клиент должен подсчитывать рейтинг других пользователей сети, идентификацинные номера которых он 
хранит у себя в таблицах. Если клиент не отвечает на запросы или часто выходит и сети то его рейтинг должен
понижаться и при появлении новых кандидатур замене естественно пожлежат участники с наименьшим рейтингом.
Таким образом в итоге клиент должен составить таблицу наиболее надежных участников, обеспечивая этим надежность
и быстроту поиска.

Скачивание и выкладывание файлов:
– процесс выкладывания небольших файлов в хранилище не должен занимать много времени ;
– клие должен быть способным продолжить скачивание, после перерыва (например отключении из сети и тп), при желании пользователя;

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

Аппаратное\программное обеспечение:
– в основном опеределяется разработкой проекта на Java – то есть наличие у пользователя java-машины необходимо;
– клиент должен быть поддерживаемым всеми популярными операционными системами.

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





Tests:

OLD: Ожидаемый результат: Результат тестирования:
1. При наличии n узлов расшарить файл, скачать его файл скачается пройден
2. Скачать этот файл с другого узла тоже что 1 пройден
3 Скачать этот файл предварительно отключив к узлов если число подключенных узлов – хранителей полосок достаточно для сборки файла, то он скачается не реализован специально, вроде работает
4. Скачать этот файл предварительно отключив к узлов среди которых должен быть источник тоже что 3 не реализован специально, вроде работает
5. расшарить файл, отключить все узлы, снова включить, и попробовать скачать его тоже что 1 пройден
6. расшарить файл, затем изменить содержимое источника, снова расшарить, скачать в сети будет два разных файла пройден
7. тоже что и 6, но:
– пусть указаны n+k узлов, a[1]..а[n+k]
– подключаем к сети a[1]..a[n]
– расшариваем файл
– отключаем a[1]..a[n-k]
– подключаем a[n+1]..a[n+k]
– расшариваем файл с измененным содержимым
– подключаем a[1]..a[n-k]
скачаем оба файла пройден


NEW:
test klient's work on one computer:
Ожидаемый результат: Результат тестирования:
1. подключить клиенты на одном компьетере с одинаковыми ТСР портами, одинаковыми UDP портами, и тем и другим одновременно;
клиент не подключается к сети и просит пользователя ввести другие значения портов, в отдельном диалоге пройден
2. подключить клиенты с разными портами и впроцессе работы поменять значения портов на одинаковые и переподключиться; при смне тср порта клиент должен предложить прорестартить систему, при смене тср – пока что не понятно провален
3. подключить к сети два (или более) клиента с одного компьтера и :
– расшарить на одном из них файл, найти и скачать его с с узла на другом компьютере, с узла на этом же компьютере
– расшарить с обоих клиентов одинаковые файлы, файлы с одним именем, один и тот же файл
клиенты работают корректно как два независимых узла сети пройден
4. провести вышеперчисленные тесты если один из клиентов подключен к к клиенту находящемся на том же компьютере тоже что и 3. пройден
IN THE FUTURE:
1. расшарить файл, исказить содержимое хранилища, попробовать скачать. Файл скачается не реализовано
2. расшарить файл, исказить содержимое n-k+1 хранилищ, попробовать скачать. Клиент сообщит, что файл непоправимо испорчен не реализовано
3. попробовать расшарить файл уже расшаренный с другого узла, найти его и скачать файл скачается (просто полосок в хранилище будет больше) пройден
4. расшарить разные файлы с одним и тем же именем с одного узла и с разных узлов, попробовать их найти и скачать Оба файла сохранятся в сети(id считается по содержимому) пройден
5. расшарить достаточно большой файл, начать закачку, приостановить, продолжить до конца. Файл скачается провален
6. попробовать скачивать два файла одновременно, повторить тест, но при этом приостановить скачивание одного файла, докачать второй и возобновить скачивание первого
файлы должны скачиваться одновременно, после прерывания скачивание должно возобновляться скачивание двух файлов – пройден, приостановка – провален
7. провести все перечисленные тесты на Unix – системах (на пример на Linux =)) то же что и в Windows не проведен
8. расшарить файл больше 2 ГБ  файл расшарится\скачается не реализовано





!!ПланРабот:!!
1. Тестирование и отладка новой системы поиска, и всех зависящих от нее функциональностей ( Distributer ).//8 чч 
2. Создание методов для корректного завершения работы клиента ( сохранение закачек, хранителя линок в файлы ).//32 чч
3. Разработка и реализация системы отката файлов из хранилища ( например, посредством оповещения о валидности и удаления по 
таймауту ).//разработка – 8чч, реализация – 32чч в зависимости от результатов разработки
4. Отладка и корректирование работы класса, отвечающего за отправку\прием пакетов для ускорения процесса скачивания ( оповещения о потере пакетов, их переотправке без остановки работы класса для ожидания утерянного пакета ).// 48чч
5. Создание методов, отвечающих за реакцию клиента на смену некоторых конфигурационных параметров (ТСР и UDP портов) в процессе работы приложения, то есть оправданный, корректный перезапуск приложения или соответствующих потоков или, возможно, изменении настроек без перезапуска.// 32чч.
6. Корректирование соответствующих методов для работы с файлами размером больше 2 Гб.// 32чч.
7. Тестирование клиента по вышеприведенным тестам, исправление найденных ошибок.// 8чч.
8. Документирование проекта.// 40чч.
9. Разработка Help с инструкциями о подключении клиента к сети, использований функциональностей, возможных предупреждениях об ошибках, необходимости рестарта клиента; документации с подробным сравнением с существующими Р2Р-сетями. // 8чч – разработка, 16чч – написание текста.
10. Работа над графическим интерфейсом.// 16чч.
11. Разработка сайта проекта.// 32чч.



Всего: 304чч
 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]