СПОСОБ И УСТРОЙСТВО ЗАГРУЗКИ ДАННЫХ
METHOD AND APPARATUS FOR LOADING DATA

По настоящему изобретению испрошен приоритет китайской заявки на патент №200910091701.X, поданной 24 августа 2009 г. под названием "Способ и устройство загрузки данных ". Все содержание предыдущей китайской заявки на патент включено в настоящее описание посредством ссылки.
Область технологии
Настоящее изобретение относится к технологиям сетевой связи, в частности к технологиям загрузки данных в сети.
Предпосылки к созданию изобретения
В системе связи данные, подлежащие загрузке, могут быть разделены на несколько порций. Каждая порция данных может быть дополнительно разделена на несколько небольших порций. Данные, передаваемые между загрузчиком и источником загрузки, представляются в виде порций и небольших порций. В одноранговой сети (P2P) представление данных в виде порций и небольших порций используется для загрузки данных между равноправными узлами.
В процессе загрузки загрузчик, например равноправный узел, принимающий загружаемые данные, обычно регистрирует информацию о состоянии загрузки, указывающую, выполнена ли загрузка некоторой порции данных. В случае приостановки загрузки из-за проблем в сети, отключения источника загрузки или загрузчика загрузчик обычно повторяет загрузку с учетом сохраненной информации о состоянии загрузки данных.
В процессе работы над настоящим изобретением автором обнаружены, по крайней мере, следующие проблемы в реализациях на базе известного уровня техники. Если несколько небольших порций данных одной порции данных загружено, а остальные не загружены, загрузчик повторяет загрузку этой порции данных в ходе следующего процесса загрузки, т.е. он загружает все небольшие порции этой порции данных снова. В результате ресурсы передачи сети затрачиваются впустую, время загрузки увеличивается и эффективность загрузки снижается.
Краткое описание изобретения
В реализациях настоящего изобретения предлагаются способ и устройство загрузки данных для обеспечения экономного использования ресурсов передачи сети и повышения эффективности загрузки.
В реализации изобретения предлагается способ загрузки, в котором предусмотрены следующие действия:
определение загрузчиком порций данных процесса загрузки по сохраненной информации об их загрузке, определение загрузчиком небольших порций незагруженных данных по сохраненной информации об их загрузке и загрузка загрузчиком небольших порций незагруженных данных.
В реализации изобретения предлагается устройство загрузки, содержащее:
модуль хранения для хранения информации о загрузке порций и небольших порций данных;
модуль определения для определения порций данных процесса загрузки по сохраненной в модуле хранения информации об их загрузке; этот модуль определения предназначен также для определения небольших порций незагруженных данных по сохраненной информации об их загрузке;
модуль загрузки для загрузки небольших порций незагруженных данных, определенных модулем определения.
Из представленного выше описания технического решения следует, что загрузчик может определять незагруженные небольшие порции данных некоторой порции загружаемых данных, сохраняя информацию о загрузке порции данных и ее небольших порций. Поэтому загрузка может выполняться целенаправленно для исключения ненужного процесса загрузки. В результате экономно используются ресурсы передачи сети, сокращается время загрузки и повышается ее эффективность.
Краткое описание фигур
На фиг.1 приведена блок-схема способа загрузки в соответствии с первой реализацией изобретения.
На фиг.2 представлена диаграмма, иллюстрирующая структуру файла в соответствии с первой реализацией изобретения.
На фиг.3 показана блок-схема, иллюстрирующая устройство загрузки в соответствии со второй реализацией изобретения.
Реализации изобретения
Первая реализация касается способа загрузки. На фиг.1 показана последовательность действий, предусмотренная способом загрузки.
В блоке 100 загрузчик начинает загружать данные. В этом блоке может быть возобновлена загрузка с точки приостановки данных, подлежащих загрузке, или начата первая загрузка подлежащих загрузке данных.
В этой реализации загрузчик сохраняет информацию о загрузке порций и небольших порций данных, соответствующих данным, которые требуется загрузить. Эта информация может сохраняться в загрузчике в виде файла. При первоначальной загрузке подлежащих загрузке данных загрузчик может инициализировать информацию о загрузке порции и небольших порций данных согласно объему загружаемых данных и предварительно согласованной информации, т.е. задать для информации о загрузке порции и небольших порций данных начальное значение. Когда информация о загрузке порции и небольших порций данных сохранена в загрузчике в виде файла, загрузчик должен инициализировать этот файл. Предварительно согласованной информацией может быть правило фрагментации порции и небольших порций данных и т.д. В процессе загрузки загрузчик может своевременно или периодически изменять полученную информацию о загрузке порции и небольших порций данных в зависимости от условий загрузки.
В блоке 110 загрузчик находит некоторые порции данных процесса загрузки, анализируя сохраненную информацию о загрузке порций данных, и переходит к блоку 120. Названными выше некоторыми порциями данных процесса загрузки могут быть также неуспешно загруженные порции данных.
Упомянутая выше информация о загрузке порций данных может содержать сведения о числе порций данных и объеме загруженных данных каждой порции. Число порций данных - это количество порций данных, на которое делится пакет данных, подлежащий загрузке. Например, если подлежащий загрузке пакет данных разделен на 100 порций, то число порций данных - 100. Объем загруженных данных каждой порции данных отражает долю загруженных данных порции. Объем загруженных данных порции данных может представляться числом загруженных байтов или значением в процентах, а также битом маркера байта. Объем загруженных данных порции данных может также использоваться для загрузчики, чтобы он мог создавать статистику по загруженному объему подлежащих загрузке данных, а также другим аспектам. Конкретный способ представления объема загруженных данных порции данных и другие конкретные варианты применения реализацией изобретения не ограничиваются.
Ниже приведен пример, касающийся информации о загрузке порций данных после процесса инициализации для случая, когда информация о загрузке порций данных содержит число порций данных и объем загруженных данных каждой порции. После деления данных, подлежащих загрузке, определяется число порций данных, а объем загруженных данных каждой порции приравнивается нулю. Объем загруженных данных каждой порции данных может изменяться в ходе последующего процесса загрузки в зависимости от конкретных условий загрузки.
В случае, когда информация о загрузке порций данных содержит число порций данных и объем загруженных данных каждой порции, загрузчик может получать объем загруженных данных каждой порции из соответствующей позиции хранения согласно числу порций данных. Ниже приведен пример получения объема загруженных данных порции данных. Если число порций данных - 100, объем загруженных данных каждой порции представляется четырьмя байтами. Число порций данных, объем загруженных данных каждой порции и информация о загрузке небольшой порции данных хранятся в последовательно расположенных позициях хранения. После считывания числа 100, указывающего количество порций данных, загрузчик может определить информацию, сохраненную в 400 байтах, начиная с начальной позиции хранения объема загруженных данных порции данных, следующим образом. Объем загруженных данных определяется для последовательных порций данных, начиная с порции с порядковым номером 0 до порции с порядковым номером 99. То есть, согласно последовательности хранения, число, представляемое каждыми четырьмя байтами, отражает объем загруженных данных одной порции данных.
Успешность загрузки порции данных загрузчик определяет по полученному объему загруженных данных порции: превышает ли он нулевое значение и достиг ли заранее заданного значения. Если объем загруженных данных порции данных больше нуля и меньше заранее заданного значения, загрузчик считает эту порцию неуспешно загруженной. Если объем загруженных данных порции данных равен заранее заданному значению, загрузчик считает эту порцию успешно загруженной. Например, пусть заранее заданный объем данных - 500 байтов, т.е. одна порция данных состоит из 500 байтов. Если объем загруженных данных порции данных, полученный загрузчиком, равен 400 байтам, загрузчик считает, что эта порция данных загружена неуспешно. Кроме того, если загрузчик определяет, что объем загруженных данных порции данных - 0 байтов (отсутствие данных), он может больше не запрашивать информацию о загрузке небольших порций данных, соответствующих этой порции данных. Вместо этого загрузчик может сразу определить необходимость загрузки этой порции данных, т.е. всех ее небольших порций. Указанный выше заранее заданный объем данных может быть получен загрузчиком от источника загрузки. Заранее заданный объем данных может быть равен объему всей порции данных.
Следует отметить, что в этой реализации изобретения информация о загрузке порций данных может представлять конкретные условия загрузки каждой порции данных. Конкретный способ представления информации о загрузке порций данных не ограничивается рассмотренными в приведенном выше примере числом порций данных и объемом загруженных данных каждой порции. Информация о загрузке порций данных может представляться также другими способами. Например, информация о загрузке порции данных может представляться тремя битами. Первый бит указывает, являются ли данные порцией данных. Второй и третий биты обозначают одно из следующих событий; загрузка завершена; загрузка не инициализирована; загрузка не завершена успешно, т.е. загружены только некоторые небольшие порции данных всей порции данных. Биты, соответствующие каждой порции данных, хранятся подряд согласно последовательности деления порции данных. Ниже приведен пример представления информации о загрузке порции данных с помощью трех битов. Комбинация 000 представляет успешную загрузку порции данных. Комбинация 001 означает, что загрузка порции данных не инициализирована. Комбинация 010 означает, что загрузка порции данных завершилась неуспешно. Определив, что информация о загрузке некоторой порции данных имеет значение 010, загрузчик делает вывод, что эта порция данных загрузилась неуспешно. Кроме того, три бита в приведенном выше примере могут быть также преобразованы в один байт и т.д. Конкретный способ представления информации о загрузке порции данных реализацией изобретения не ограничивается.
В блоке 120, касающемся неуспешно загруженной порции данных, загрузчик, проанализировав сохраненную информацию о загрузке небольших порций данных, определяет неуспешно загруженные небольшие порции данных и переходит к блоку 130. Под неуспешно загруженной порцией данных понимается порция данных, только несколько небольших порций которой загружено.
Упомянутая выше информация о загрузке небольших порций данных может содержать сведения о числе небольших порций и состояниях загрузки каждой небольшой порции данных. Число небольших порций - это количество небольших порций данных, полученное после деления порции данных на небольшие порции. Например, если порция данных разделена на 100 небольших порций, то число небольших порций - 100. Состояние загрузки небольшой порции данных указывает, успешно ли она загружена. Состояние загрузки небольшой порции данных может представляться режимом загрузки. Например, если небольшая порция данных загружена успешно, в ее состоянии загрузки указывается режим загрузки (например, одноранговый режим, режим HTTP, гибридный режим, стековый режим и т.д.). Если загрузка небольшой порции данных завершилась неуспешно, в состоянии загрузки этой порции указывается на отсутствие данных. При этом загрузчик может определить, успешно ли загружена небольшая порция данных, по состоянию ее загрузки: не указывается ли в состоянии на отсутствие данных.
Следует отметить, что информация о состоянии загрузки небольшой порции данных может указывать, что загрузка выполнена (т.е. завершилась успешно) или не выполнена (т.е. завершилась неуспешно), и не может представлять условия, касающиеся загрузки некоторых небольших порций данных. Кроме того, по информации о состоянии загрузки каждой небольшой порции данных загрузчик может определить небольшие порции данных, полученные в надежном режиме загрузки, и небольшие порции данных, полученные в ненадежном режиме загрузки. Например, загрузчик может определить небольшую порцию данных, полученную с использованием режима загрузки HTTP, как небольшую порцию данных, полученную в надежном режиме. Для небольших порций данных, полученных в надежном режиме загрузки, загрузчик может создать начальные значения. Затем загрузчик может выполнять последующие операции, используя несколько способов применения начальных значений. Пример применения начального значения: загрузчик отправляет файл начального значения на сервер, чтобы использовать это значение для предоставления соответствующих услуг.
Из представленного выше описания информации о состоянии загрузки небольшой порции данных следует, что с помощью этой информации может гарантироваться точность начального значения, чтобы исключить предоставление ненадежных услуг из-за неточного начального значения. В результате может быть повышена надежность сети.
В этой реализации загрузчик может определить позицию хранения информации о загрузке небольшой порции данных, соответствующей определенной порции данных, на основе числа небольших порций, получить информацию о состоянии загрузки небольшой порции данных из соответствующей позиции хранения и определить незагруженную небольшую порцию данных по полученной информации о состоянии ее загрузки. Например, если число небольших порций - 100 и информация о состоянии загрузки небольшой порции данных занимает 1 байт, то, начиная с позиции хранения состояния загрузки небольшой порции данных, первые 100 байтов представляют информацию о состоянии загрузки небольших порций данных, соответствующих порции данных с порядковым номером 0. Вторые 100 байтов представляют информацию о состоянии загрузки небольших порций данных, соответствующих порции данных с порядковым номером 1, и т.д. до информации о состоянии загрузки небольших порций данных, соответствующих последней порции данных.
Следует отметить, что в этой реализации информация о загрузке небольшой порции данных может представлять конкретные условия загрузки каждой небольшой порции данных. Конкретный способ представления информации о загрузке небольшой порции данных не ограничен рассмотренными в приведенном выше примере числом небольших порций данных и информацией о состоянии загрузки каждой небольшой порции данных. Информация о загрузке небольшой порции данных может представляться также другими способами. Например, информация о загрузке небольшой порции данных может представляться двумя битами. Первый бит указывает, относятся ли данные к небольшой порции данных. Второй бит указывает, выполнена ли загрузка небольшой порции данных. Например, комбинация 10 представляет успешную загрузку небольшой порции данных. Комбинация 11 означает, что загрузка небольшой порции данных не выполнена. Биты, соответствующие каждой небольшой порции данных, размещаются и хранятся согласно последовательности деления на небольшие порции данных. Два бита в приведенном выше примере могут стать одним байтом и т.д. Конкретный способ представления информации о загрузке небольшой порции данных в этой реализации не ограничивается.
В блоке 130 загрузчик загружает небольшие порции данных, которые определены как незагруженные. Загрузчик может загружать небольшие порции незагруженных данных в нескольких режимах загрузки. Конкретные режимы загрузки, используемые загрузчиком в процессе загрузки небольших порций данных, не ограничиваются.
В блоке 140 загрузчик обновляет сохраненную информацию о загрузке порции и небольшой порции данных согласно условиям загрузки этих порций данных.
После загрузки небольшой порции данных загрузчик может изменить состояние загрузки этой небольшой порции в информации о ее загрузке с "загрузка не выполнена" (например, данные не загружены) на "загрузка выполнена" (например, данные загружены). При изменении условий загрузки порции данных загрузчик может обновить объем загруженных данных этой порции в информации о ее загрузке.
Из приведенного выше описания следует, что загрузчик в этой реализации может определять неуспешно загруженные порции данных и небольшие порции данных, загрузка которых не инициализирована, сохраняя информацию о загрузке порций и небольших порций данных. Таким образом, в процессе загрузки загрузчик может загружать незагруженные небольшие порции данных неуспешно загруженной порции данных для обеспечения целенаправленности процесса загрузки и исключения повторной загрузки уже загруженных небольших порций данных неуспешно загруженной порции данных. Это позволяет избежать ненужного процесса загрузки. В результате экономно используются ресурсы передачи сети, сокращается время загрузки и повышается ее эффективность.
В этой реализации даже в случае успешной загрузки некоторой порции данных она, возможно, не сможет нормально использоваться загрузчиком из-за высокого коэффициента ошибок и т.д. Загрузчик должен еще раз загрузить все небольшие порции данных такой порции, т.е. в процессе загрузки загрузчик может считать такую порцию данных неуспешно загруженной.
Загрузчик может определить порцию данных, которую нужно загрузить еще раз, по информации о результате проверки этой порции данных, содержащейся в информации о загрузке этой порции данных, т.е. определить, следует ли считать успешно загруженную порцию данных неуспешно загруженной, чтобы загрузить все ее небольшие порции еще раз. В информации о результате проверки порции данных может указываться, прошла ли проверка порции. Информация о результате проверки порции данных может состоять из одного бита, одного байта и т.д.
Указанная выше информация о результате проверки порции данных может также использоваться в других приложениях. Например, обслуживающая сторона получает от каждого загрузчика информацию о результате проверки порции данных и обслуживает загруженные данные согласно полученной информации о результатах проверки нескольких порций данных. Пример обслуживания загруженных данных: если в информации о результате проверки некоторой порции данных указывается, что в нескольких загрузчиках проверка не прошла, обслуживающая сторона обновляет эту порцию данных и т.д. Конкретная область применения информации о результате проверки порции данных и режим обслуживания загруженных данных обслуживающей стороной реализацией не ограничиваются.
Из приведенного выше описания информации о результате проверки порции данных следует, что благодаря этой информации каждый загрузчик может получать более надежные данные во избежание ситуаций, при которых нормально использовать загруженные данные невозможно. Это позволяет повысить надежность загрузки данных.
В этой реализации информация о загрузке порций данных может также содержать сведения о режиме загрузки каждой порции данных. В сведениях о режиме загрузки каждой порции данных могут указываться разные режимы загрузки, например одноранговый режим, режим HTTP, гибридный режим или стековый режим. По информации о режиме загрузки каждой порции данных загрузчик может определить порции данных, полученные в надежном режиме загрузки, и порции данных, полученные в ненадежном режиме загрузки. Например, загрузчик может определить порцию данных, полученную с использованием режима загрузки HTTP, как полученную в надежном режиме загрузки. Для порции данных, полученной в надежном режиме загрузки, загрузчик может создать начальное значение. Затем загрузчик может выполнять последующие операции, используя несколько способов применения начального значения. Пример применения начального значения: загрузчик отправляет файл начального значения на сервер, чтобы использовать это значение для предоставления соответствующих услуг.
Из представленного выше описания информации о режиме загрузки порции данных следует, что с помощью этой информации может гарантироваться точность начального значения, чтобы исключить предоставление ненадежных услуг из-за неточного начального значения. В результате может быть повышена надежность сети.
Если информация о загрузке порций и небольших порций данных хранится в виде файла, в реализации предусмотрена возможность хранения этой информации в разных позициях. Например, информация о загрузке порций данных может храниться в содержимом файла или в заголовке файла и содержимом файла. Информация о загрузке небольших порций данных также может храниться в содержимом файла или в заголовке файла и содержимом файла.
Если информация о загрузке порций и небольших порций данных хранится в виде файла, в заголовке файла может содержаться, по крайней мере, один из следующих элементов: флаг типа файла, зарезервированное поле и номер версии. Флаг типа файла может указывать, что в файле содержится информация о загрузке порций и небольших порций данных. Зарезервированное поле может быть оставлено пустым, чтобы упростить последующее использование при расширении файла. Номер версии может представлять информацию о версии системы загрузки (например, одноранговая система P2P). Информация о версии может использоваться, например, при просмотре версии системы загрузки или при загрузке обновлений системы.
Для первой реализации пример файла, в котором хранится информация о загрузке порций и небольших порций данных, приведен на фиг.2.
Файл, показанный на фиг.2, имеет суффикс TDI. Заголовок TDI-файла содержит флаг типа файла, зарезервированное поле, номер версии, число порций данных (т.е. число порций, показанных на фиг.2) и число небольших порций данных. Флаг типа файла указывает, что это файл типа TDI.
В содержимом файла, показанном на фиг.2, сначала сохраняются сведения о загруженном объеме, режиме загрузки и результате проверки порции данных (на фиг.2 - условия проверки). Эти сведения входят в информацию о загрузке порции данных. Это содержимое сохраняется в порядке, в котором данные разделены на порции, т.е. сведения о загруженном объеме, режиме загрузки и результате проверки порции данных с порядковым номером 0 находятся в первой части содержимого файла. Затем последовательно сохраняются сведения о загруженном объеме, режиме загрузки и результате проверки порций данных с порядковыми номерами 1, 2 и т.д., до сведений о загруженном объеме, режиме загрузки и результате проверки последней порции данных.
После сохранения сведений о загруженном объеме, режиме загрузки и результате проверки порций данных последовательно сохраняется информация о состоянии загрузки каждой небольшой порции данных. Для успешно загруженной небольшой порции данных в информации о состоянии загрузки может указываться режим загрузки этой порции данных. Информация о состоянии загрузки каждой небольшой порции данных сохраняется последовательно в порядке, в котором данные разделены на порции. Что касается нескольких небольших порций данных одной порции данных, информация о состоянии загрузки каждой небольшой порции данных сохраняется последовательно в порядке деления на небольшие порции. Например, сначала сохраняется информация о состоянии загрузки небольших порций данных, соответствующих порции данных с порядковым номером 0. Затем последовательно сохраняется информация о состоянии загрузки небольших порций данных, соответствующих порциям данных с порядковыми номерами 1, 2 и т.д., до информации о состоянии загрузки небольших порций данных последней порции данных. Информация о состоянии загрузки небольших порций данных, соответствующих каждой порции данных, сохраняется последовательно согласно порядковым номерам небольших порций данных, начиная с порядкового номера 0 и до последней небольшой порции данных.
Указанная выше последовательность от порции данных с порядковым номером 0 до последней порции данных может быть также заменена другой последовательностью - от последней порции данных до порции с порядковым номером 0. Последовательность от небольшой порции данных с порядковым номером 0 до последней небольшой порции данных может быть также заменена другой последовательностью - от последней небольшой порции данных до небольшой порции с порядковым номером 0. Может быть также использована другая предварительно согласованная последовательность.
На фиг.2 приведен конкретный пример только для TDI-файла. Это не означает, что информация о загрузке порции и небольшой порции данных должна соответствовать показанной на фиг.2. Пример, приведенный на фиг.2, может иметь несколько вариантов. Например, суффикс файла может быть не TDI. Другой пример: после информации о загрузке порции данных сохраняется информация о загрузке небольших порций данных этой порции данных и т.д. Кроме того, в заголовке файла могут отсутствовать зарезервированное поле и номер версии. В содержимом файла сохраняется, по крайней мере, одна из нескольких порций данных и нескольких небольших порций данных и т.д. (здесь эти варианты подробно не рассматриваются).
Кроме того, эту реализацию можно применять в нескольких системах для загрузки порций и небольших порций данных. Например, ее можно применять в одноранговой системе. Блоки 110 и 120 могут выполняться параллельно или последовательно. Если эти блоки выполняются параллельно, и была обнаружена неуспешная загрузка нескольких порций данных, то незагруженные небольшие порции данных нескольких неуспешно загруженных порций могут быть загружены одновременно. Если блоки 110 и 120 выполняются последовательно, предположим, что была обнаружена неуспешная загрузка некоторой порции данных. В этом случае могут быть загружены ее незагруженные небольшие порции. После оценки и загрузки этой порции данных могут быть выполнены оценка и загрузка другой порции данных и т.д. до последней порции данных. Кроме того, процессы оценки для определения неуспешно загруженных порций данных могут выполняться параллельно, а процессы загрузки небольших порций данных - последовательно. В качестве альтернативы, процессы оценки для определения неуспешно загруженных порций данных могут выполняться последовательно, а процессы загрузки каждой небольшой порции данных - параллельно.
Вторая реализация касается устройства загрузки. Его структура показана на фиг.3.
Устройство 300 загрузки на фиг.3 содержит модуль 310 хранения, модуль 320 определения, модуль 330 загрузки, модуль 340 применения начального значения и модуль 350 обновления.
В модуле 310 хранения хранится информация о загрузке порций и небольших порций данных.
В модуле 310 хранения информация о загрузке порций и небольших порций данных может храниться в виде файла. Когда загрузчик загружает подлежащие загрузке данные, информация, хранящаяся в модуле 310 хранения, может быть инициализирована. Объектом выполнения операций инициализации может быть модуль 310 хранения, модуль 320 определения, модуль 330 загрузки или другие модули устройства загрузки. Процесс инициализации информации о загрузке порций и небольших порций данных аналогичен представленному в описании рассмотренной выше реализации. Информация о загрузке порций и небольших порций данных, сохраненная в модуле 310 хранения, может своевременно или периодически изменяться и обновляться в процессе загрузки. Объектом выполнения операций изменения и обновления может быть модуль 330 загрузки.
Модуль 320 определения определяет порцию данных процесса загрузки по информации о загрузке этой порции данных, сохраненной в модуле 310 хранения. Для порции данных процесса загрузки модуль 320 определения определяет незагруженные небольшие порции данных по информации о загрузке этих порций, сохраненной в модуле 310 хранения, и информирует модуль 330 загрузки о незагруженных небольших порциях данных. При определении незагруженных порций данных по сохраненной в модуле 310 хранения информации о загрузке порции данных модуль 320 определения непосредственно информирует модуль 330 загрузки о необходимости загрузки всех небольших порций данных этой порции данных. Модуль 320 определения может выполнять операции определения параллельно или последовательно. Процесс выполнения операций аналогичен представленному в описании рассмотренной выше реализации. Здесь это описание не повторяется.
Если сохраненная в модуле 310 хранения информация о загрузке порции данных содержит число порций данных и объем загруженных данных каждой порции, модуль 320 определения может получить объем загруженных данных порции данных из соответствующей позиции хранения информации в модуле 310 хранения согласно числу порций данных. Пример получения объема загруженных данных порции данных аналогичен представленному в описании выше и здесь не повторяется. Модуль 320 определения может определить успешность загрузки порции данных по полученному объему загруженных данных порции: превышает ли он нулевое значение, и достиг ли заранее заданного значения. Модуль 320 определения определяет, что порция данных загружена неуспешно, если объем загруженных данных этой порции больше нуля, но меньше заранее заданного значения. Модуль 320 определения также определяет, что порция данных загружена успешно, если объем загруженных данных этой порции равен заранее заданному значению.
Следует отметить, что конкретный способ представления сохраненной в модуле 310 хранения информации о загрузке порции данных не ограничивается рассмотренными в приведенном выше примере числом порций данных и объемом загруженных данных каждой порции. Информация о загрузке порции данных может представляться также другими способами. Пример аналогичен представленному в описании выше и здесь не повторяется.
Для неуспешно загруженной порции данных модуль 320 определения оценивает сохраненную в модуле 310 хранения информацию о загрузке небольших порций данных и определяет незагруженные небольшие порции данных. Информация о загрузке небольших порций данных, сохраненная в модуле 310 хранения, может содержать число небольших порций и состояние загрузки каждой небольшой порции данных. Число небольших порций - это количество небольших порций данных, полученное после деления порции данных на небольшие порции. Модуль 320 определения в этой реализации может определять позиции хранения (в модуле 310 хранения) информации о загрузке небольших порций данных конкретной порции данных с учетом числа небольших порций, получать из соответствующих позиций хранения информацию о состоянии загрузки небольших порций данных и по этой информации определять незагруженные небольшие порции данных. Пример аналогичен представленному в описании рассмотренной выше реализации. В информации о состоянии загрузки небольшой порции данных указывается, выполнена ли загрузка этой небольшой порции. Состояние загрузки небольшой порции данных может представляться режимом загрузки. Например, при загрузке небольшой порции данных состояние ее загрузки, сохраненное в модуле 310 хранения, изменяется и обновляется с указанием режима загрузки этой небольшой порции данных (например, однорангового режима, режима HTTP, гибридного режима, стекового режима и т.д.). Если загрузка небольшой порции данных завершилась неуспешно, состояние ее загрузки, сохраненное в модуле 310 хранения, - "отсутствие данных". При этом модуль 320 определения может определить, загружена ли небольшая порция данных, по информации о состоянии ее загрузки, сохраненной в модуле 310 хранения, в частности, по тому, не является ли состоянием загрузки этой небольшой порции состояние "отсутствие данных".
Следует отметить, что информация о состоянии загрузки небольшой порции данных, сохраненная в модуле 310 хранения, может указывать, что загрузка выполнена (т.е. завершилась успешно) или не выполнена (т.е. завершилась неуспешно), и не может представлять условия, касающиеся загрузки некоторых небольших порций данных. Кроме того, модуль 320 определения в устройстве загрузки может по сохраненной в модуле 310 хранения информации о состоянии загрузки каждой небольшой порции данных определять небольшие порции данных, полученные в надежном режиме загрузки, и небольшие порции данных, полученные в ненадежном режиме загрузки. Модуль 340 применения начального значения в устройстве загрузки может создать начальное значение, используя полученные в надежном режиме загрузки небольшие порции данных, определенные модулем 320 определения. Затем модуль 340 применения начального значения может выполнять последующие операции, используя несколько способов применения начального значения.
Следует отметить, что информация о загрузке небольшой порции данных, сохраненная в модуле 310 хранения, может представлять конкретные условия загрузки каждой небольшой порции данных. Конкретный способ представления информации о загрузке небольшой порции данных не ограничен рассмотренными в приведенном выше примере числом небольших порций данных и информацией о состоянии загрузки каждой небольшой порции данных. Информация о загрузке небольшой порции данных может также представляться другими способами, аналогичными представленным в описаниях рассмотренной выше реализации. Здесь эти описания не повторяются. Пример файла с сохраненной в модуле 310 хранения информацией о загрузке порций и небольших порций данных приведен на фиг.2 и здесь не повторяется.
Модуль 330 загрузки загружает небольшие порции незагруженных данных, определенных модулем 320 определения, согласно информации от этого модуля. Модуль 330 загрузки может загружать небольшие порции незагруженных данных в нескольких режимах загрузки. Конкретные режимы загрузки, используемые модулем 330 загрузки в процессе загрузки небольших порций данных, в этой реализации не ограничены. Модуль 330 загрузки может загружать небольшие порции данных параллельно или последовательно. Параллельная и последовательная загрузка выполняется так же, как в рассмотренной выше реализации. Соответствующие описания здесь не повторяются.
Модуль 350 обновления служит для обновления сохраненной в модуле 310 хранения информации о загрузке порций и небольших порций данных согласно загрузке этих порций, выполняемой модулем 330 загрузки.
После загрузки небольшой порции данных модуль 350 обновления может изменить состояние загрузки этой небольшой порции в информации о ее загрузке с "загрузка не выполнена" (например, данные не загружены) на "загрузка выполнена" (например, данные загружены). При изменении условий загрузки порции данных модуль 350 обновления может обновить объем загруженных данных этой порции в информации о ее загрузке.
Из представленного выше описания следует, что в модуле 310 хранения во второй реализации хранится информация о загрузке порций и небольших порций данных, с помощью которой модуль 320 определения может определять неуспешно загруженные порции данных и неуспешно загруженные небольшие порции данных. Таким образом, в процессе загрузки модуль 330 загрузки может загружать неуспешно загруженные порции данных и неуспешно загруженные небольшие порции данных, чтобы обеспечить целенаправленность процесса загрузки во избежание повторной загрузки уже загруженных небольших порций данных неуспешно загруженной порции. Это позволяет исключить ненужный процесс загрузки. В результате экономно используются ресурсы передачи сети, сокращается время загрузки и повышается ее эффективность.
В этой реализации даже в случае успешной загрузки некоторой порции данных модулем 330 загрузки она, возможно, не сможет нормально использоваться загрузчиком из-за высокого коэффициента ошибок и т.д. Модуль 330 загрузки может повторно загрузить все небольшие порции данных такой порции.
Для успешно загруженных порций данных модуль 320 определения может определить порцию данных, которую нужно загрузить еще раз, по информации о результате проверки этой порции данных, содержащейся в информации о загрузке этой порции данных в модуле 310 хранения, т.е. определить, следует ли считать успешно загруженную порцию данных неуспешно загруженной и загрузить все ее небольшие порции еще раз. В информации о результате проверки порции данных может указываться, прошла ли проверка порции. Информация о результате проверки порции данных может состоять из одного бита, одного байта и т.д. Соответственно, модуль 330 загрузки настроен также для загрузки порции данных, которую требуется загрузить еще раз.
Информация о результате проверки порции данных, хранящаяся в модуле 310 хранения, может также использоваться в других приложениях. Например, обслуживающая сторона получает информацию о результате проверки порции данных от модуля 310 хранения каждого устройства загрузки и обслуживает загруженные данные согласно полученной информации о результатах проверки нескольких порций данных. Пример обслуживания загруженных данных аналогичен представленному в описанной выше реализации. Конкретная область применения информации о результате проверки порции данных и режимы обслуживания загруженных данных обслуживающей стороной в реализации не ограничиваются.
Информация о загрузке порций данных, хранящаяся в модуле 310 хранения, может содержать сведения о режиме загрузки каждой порции данных. В сведениях о режиме загрузки порций данных могут указываться разные режимы загрузки, например одноранговый режим, режим HTTP, гибридный режим или стековый режим. По информации о режиме загрузки каждой порции данных модуль 320 определения в устройстве загрузки может определить порции данных, полученные в надежном режиме загрузки, и порции данных, полученные в ненадежном режиме загрузки. Модуль 340 применения начального значения в устройстве загрузки может создать начальное значение на основе полученной в надежном режиме загрузки порции данных, определенной модулем 320 определения. Затем модуль 340 применения начального значения может выполнять последующие операции, используя несколько способов применения начального значения.
Если информация о загрузке порций и небольших порций данных хранится в модуле 310 хранения в виде файла, позиции хранения этой информации могут гибко изменяться так же, как указано в описании рассмотренной выше реализации.
Если указанная выше информация о загрузке порций и небольших порций данных хранится в модуле 310 хранения в виде файла, в заголовке файла, находящегося в этом модуле, может содержаться, по крайней мере, один из следующих элементов: флаг типа файла, зарезервированное поле и номер версии. Флаг типа файла может указывать, что в файле содержится информация о загрузке порций и небольших порций данных. Зарезервированное поле может быть оставлено пустым, чтобы упростить последующее использование при расширении файла. Номер версии может представлять информацию о версии системы загрузки (например, одноранговая система). Информацию о версии можно использовать, например, при просмотре версии системы загрузки или обновлении системы загрузки.
Прочитав представленные выше описания способов реализации, специалисты среднего уровня в данной области техники могут понять, что настоящее изобретение можно реализовать путем добавления необходимых аппаратных средств и использования программного обеспечения. Данное изобретение можно также реализовать только аппаратными средствами. Во многих случаях предпочтительным способом реализации является первый способ. Таким образом, весь вклад (или его часть) технического решения изобретения в известный уровень техники можно продемонстрировать в виде программного продукта. Программный продукт может храниться в запоминающей среде, например в постоянной памяти (ПЗУ), оперативной памяти (ОЗУ), на дискете, компакт-диске и т.д. Он содержит ряд команд, с помощью которых компьютерное устройство (персональный компьютер, сервер, сетевое устройство и т.д.) может выполнять действия, предусмотренные способом каждой реализации, или некоторые блоки способа, соответствующие части реализации изобретения.
Хотя изобретение было описано с реализациями, специалисты среднего уровня в данной области техники могут обнаружить, что многие варианты и модификации в рамках его сущности охватываются пунктами формулы изобретения.