Способ, устройство и терминал для загрузки файлов
METHOD, DEVICE AND TERMINAL FOR DOWNLOADING FILES

Перекрестные ссылки на родственные заявки
В настоящей заявке испрашивается приоритет китайской заявки на патент №201610015559.0, поданной 8 января 2016 г., содержание которой в полном объеме включено в настоящий документ путем ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится, в целом, к области технологий компьютерной и мобильной связи, в частности, к способу загрузки файлов, соответствующему устройству и соответствующему терминалу.
УРОВЕНЬ ТЕХНИКИ
При использовании многопоточного способа загрузки целевого файла через сеть, целевой файл может быть разделен на множество сегментов файла, загружаемых через множество соответствующих потоков. Множество сегментов файла можно загрузить по-отдельности и затем собрать в один целый файл.
Однако, из-за неопределенности планирования многопоточной загрузки системы, когда в множестве потоков загрузки соответствующим образом загружаются подходящие сегменты файла, нельзя гарантировать одновременное выполнение задач загрузки для множества потоков загрузки.
В случае неудовлетворительного состояния сети, моменты времени выполнения заданного количества задач загрузки могут существенно отличаться друг от друга. В особенности для мобильных терминалов, имеющих относительно низкие характеристики центрального процессора, подчас один из потоков загрузки еще даже не начал загрузку как другой поток загрузки уже выполнил свою задачу загрузки. Таким образом, в таких ситуациях неудовлетворительного состояния сети или низкого качества работы оборудования скорость загрузки, как правило, очень низкая.
Раскрытые здесь способ и устройство направлены на решение одной или более вышеизложенных проблем, а также других возможных проблем.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Согласно некоторым вариантам осуществления изобретения, предлагаются способ загрузки файлов, соответствующее устройство и соответствующий терминал.
Согласно одному из аспектов изобретения предложен способ загрузки файлов, содержащий этапы, на которых: на основании информации о целевом файле для целевого файла, запускают множество потоков загрузки сегментов для загрузки множества сегментных файлов целевого файла; когда один из множества потоков загрузки сегментов выполнил свою задачу загрузки, идентифицируют в качестве ассистируемого потока загрузки сегмента тот поток загрузки сегмента, который все еще имеет незагруженный контент, отрезают концевую часть незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции; и запускают поток загрузки сегмента, выполнивший свою задачу загрузки, снова для загрузки концевой части незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента.
В некоторых вариантах осуществления изобретения в качестве ассистируемого потока загрузки сегмента идентифицируют один из множества потоков загрузки сегментов, который имеет незагруженный контент наибольшего размера.
В некоторых вариантах осуществления изобретения в качестве ассистируемого потока загрузки сегмента идентифицируют один из множества потоков загрузки сегментов, который имеет наибольшее ожидаемое оставшееся время загрузки.
В некоторых вариантах осуществления изобретения этап, на котором, на основании информации о целевом файле для заданного целевого файла, запускают множество потоков загрузки сегментов для загрузки множества сегментных файлов целевого файла, предусматривает: получение размера файла для целевого файла на основании информации о целевом файле; осуществление процесса сегментации целевого файла для получения множества сегментных файлов целевого файла; распределение множества потоков загрузки сегментов на основании общего количества сегментных файлов множества; и запуск множества потоков загрузки сегментов для загрузки множества сегментных файлов целевого файла, соответственно.
В некоторых вариантах осуществления изобретения, перед отрезанием концевой части незагруженного контента, способ дополнительно включает в себя определение, меньше ли объем данных незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, предварительно заданного порогового значения; использование ассистируемого потока загрузки сегмента для прямой загрузки незагруженного контента, когда определено, что объем данных незагруженного контента меньше предварительно заданного порогового значения; и отрезание концевой части незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции, когда определено, что объем данных незагруженного контента не меньше предварительно заданного порогового значения.
В некоторых вариантах осуществления изобретения способ дополнительно включает в себя этапы, на которых осуществляют: мониторинг статуса загрузки множества потоков загрузки сегментов и изменения размера незагруженных частей множества сегментных файлов во время процесса загрузки; определяют, выполнил ли какой поток загрузки сегмента свою задачу загрузки; когда определено, что один поток загрузки сегмента выполнил свою задачу загрузки, определяют, выполнили ли все потоки загрузки сегментов свои задачи загрузки; если определено, что не все потоки загрузки сегментов выполнили свои задачи загрузки, один из потоков загрузки сегмента идентифицируют в качестве ассистируемого потока загрузки сегмента; когда же определено, что ни один из потоков загрузки сегментов не выполнил свою задачу загрузки, осуществляют непрерывный мониторинг статуса загрузки множества потоков загрузки сегментов и изменения размера незагруженных частей множества сегментных файлов во время процесса загрузки.
В некоторых вариантах осуществления изобретения этап, на котором отрезают концевую часть незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции, включает в себя: нарезку незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, на переднюю часть и концевую часть в соответствии с дихотомическим способом; и привязку концевой части незагруженного контента к потоку загрузки сегмента, который выполнил свою задачу загрузки.
В некоторых вариантах осуществления изобретения процесс сегментации равным образом делит целевой файл на множество сегментных файлов целевого файла.
В некоторых вариантах осуществления изобретения общее количество множества сегментных файлов целевого файла меньше или равно предварительно заданному пороговому значению; причем предварительно заданное пороговое значение установлено пользователем для ограничения количества множества потоков загрузки сегментов.
В некоторых вариантах осуществления изобретения, после отрезания концевой части незагруженного контента, способ дополнительно включает с себя добавление новой записи сегментного файла в таблицу данных о загрузке файлов, соответствующую целевому файлу.
Согласно другому аспекту изобретения предложено устройство для загрузки файлов, содержащее: первый пусковой модуль, выполненный с возможностью, на основании информации о целевом файле, запуска множества потоков загрузки сегментов для загрузки множества сегментных файлов целевого файла; получающий модуль, выполненный с возможностью, когда один из множества потоков сегментов файла выполнил свою задачу загрузки, идентификации потока загрузки сегмента, который все еще имеет незагруженный контент, в качестве ассистируемого потока загрузки сегмента; отрезающий модуль, выполненный с возможностью отрезания концевой части незагруженного контента, соответствующего указанному ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции; и второй пусковой модуль, выполненный с возможностью запуска потока загрузки сегмента, который выполнил свою задачу загрузки, снова для загрузки концевой части незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента.
В некоторых вариантах осуществления изобретения в качестве ассистируемого потока загрузки сегмента идентифицируется один из множества потоков загрузки сегментов, который имеет незагруженный контент наибольшего размера.
В некоторых вариантах осуществления изобретения в качестве ассистируемого потока загрузки сегмента идентифицируется один из множества потоков загрузки сегментов, который имеет наибольшее ожидаемое оставшееся время загрузки.
В некоторых вариантах осуществления изобретения первый пусковой модуль содержит: блок получения информации, выполненный с возможностью получения размера файла для целевого файла на основании информации о целевом файле; блок сегментации, выполненный с возможностью осуществления процесса сегментации целевого файла для получения множества сегментных файлов целевого файла; блок распределения потоков, выполненный с возможностью распределения множества потоков загрузки сегментов на основании количества сегментных файлов множества; и блок запуска потоков, выполненный с возможностью запуска множества потоков загрузки сегментов для загрузки множества сегментных файлов целевого файла, соответственно.
В некоторых вариантах осуществления изобретения устройство дополнительно содержит: определяющий модуль, выполненный с возможностью определения, меньше ли объем данных незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, предварительно заданного порогового значения; управления поддерживаемым потоком загрузки сегмента для прямой загрузки незагруженного контента, когда определено, что объем данных незагруженного контента меньше предварительно заданного порогового значения; управления отрезающим модулем для отрезания концевой части незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции, когда определено, что объем данных незагруженного контента не меньше предварительно заданного порогового значения.
В некоторых вариантах осуществления изобретения получающий модуль дополнительно выполнен с возможностью мониторинга статуса загрузки множества потоков загрузки сегментов и изменений размера незагруженных частей множества сегментных файлов во время процесса загрузки; определения, выполнил ли какой поток загрузки сегмента свою задачу загрузки; если определено, что один поток загрузки сегмента выполнил свою задачу загрузки, определения того, выполнили ли все потоки загрузки сегментов свои задачи загрузки; если определено, что не все потоки загрузки сегментов выполнили свои задачи загрузки, идентификации одного из потоков загрузки сегментов в качестве ассистируемого потока загрузки сегмента; когда же определено, что ни один из потоков загрузки сегментов не выполнил свою задачу загрузки, непрерывного мониторинга статуса загрузки множества потоков загрузки сегментов и изменений размера незагруженных частей множества сегментных файлов во время процесса загрузки.
В некоторых вариантах осуществления изобретения отрезающий модуль дополнительно выполнен с возможностью нарезки незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, на переднюю часть и концевую часть в соответствии с дихотомическим способом; и привязки концевой части незагруженного контента к потоку загрузки сегмента, который выполнил свою задачу загрузки.
В некоторых вариантах осуществления изобретения процесс сегментации равным образом делит целевой файл на множество сегментных файлов целевого файла.
В некоторых вариантах осуществления изобретения общее количество множества сегментных файлов целевого файла меньше или равно предварительно заданному пороговому значению; причем предварительно заданное пороговое значение устанавливается пользователем для ограничения количества множества потоков загрузки сегментов.
В некоторых вариантах осуществления изобретения второй пусковой модуль дополнительно выполнен с возможностью добавления новой записи сегментного файла в таблицу данных о загрузке файлов, соответствующей целевому файлу.
Другие аспекты изобретения станут понятны специалисту в данной области техники после ознакомления с описанием, формулой изобретения и прилагаемыми чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Различные задачи, признаки и преимущества изобретения можно оценить в полной мере по прочтении приведенного далее подробного описания изобретения в совокупности с прилагаемыми чертежами, на которых сходные номера позиций обозначают сходные элементы. Следует отметить, что чертежи представлены лишь для примера, в целях иллюстрации различных раскрытых вариантов осуществления и не ограничивают объем притязаний по настоящей заявке.
На фиг. 1 представлена структурная схема аппаратной части примера терминала согласно некоторым вариантам осуществления изобретения.
На фиг. 2 представлена блок-схема примера способа загрузки файлов согласно некоторым вариантам осуществления изобретения.
На фиг. 3 представлена блок-схема примера способа загрузки файлов согласно некоторым другим вариантам осуществления изобретения.
На фиг. 4 представлена структурная схема примера устройства загрузки файлов согласно некоторым вариантам осуществления изобретения.
На фиг. 5 представлена структурная схема примера устройства загрузки файлов согласно некоторым другим вариантам осуществления изобретения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Далее приведено подробное описание примерных вариантов осуществления изобретения, проиллюстрированных на прилагаемых чертежах. Ниже варианты осуществления изобретения раскрыты со ссылкой на чертежи. По возможности, одинаковые номера позиций использованы на всех чертежах для обозначения одних и тех же или подобных частей. Очевидно, что раскрытые варианты представляют собой лишь некоторые, не все возможные варианты осуществления изобретения. На основе раскрытых вариантов осуществления изобретения специалист в данной области техники сможет создать и другие варианты в рамках объема правовой охраны изобретения.
Согласно различным вариантам осуществления изобретения предлагается способ загрузки файлов, соответствующее устройство и соответствующий терминал.
На фиг. 1 представлена структурная схема аппаратной части примера терминала согласно некоторым вариантам осуществления изобретения.
Раскрытые здесь способ и устройство загрузки файлов применимы в любом подходящем терминале, например, пользовательском терминале или сервере и т.д. Например, раскрытые здесь способ и устройство для загрузки файлов применимы в терминале 100, проиллюстрированном на фиг. 1.
В некоторых вариантах осуществления изобретения терминал 100 может представлять собой мобильный терминал, например, смартфон, планшетный компьютер, электронную книгу, портативный компьютер, или носимый мобильный терминал и т.д.
Как показано на фиг. 1, терминал 100 может содержать память 102, контроллер 104 памяти, один или более аппаратных процессоров 106 (на фиг. 1 показан только один из них), периферийный интерфейс 108, радиочастотный модуль 110, аудио модуль 112, сенсорный экран 114, и любые другие подходящие компоненты. Эти компоненты могут обмениваться данными друг с другом посредством одной или более коммуникационных шин 116.
Память 102 может быть использована для хранения компьютерных программ и программных модулей, например, программных инструкций/модулей, соответствующих раскрытому способу и устройству для загрузки файлов. Аппаратный процессор 106 может реализовывать компьютерные программы и программные модули, хранящиеся в памяти 102, для исполнения различных функций и обработки данных, например, способа загрузки файлов согласно отдельным вариантам осуществления изобретения.
Память 102 может содержать высокоскоростное оперативное запоминающее устройство, а также энергонезависимую память, например, одно или более магнитных запоминающих устройств, флэш-память, или другую энергонезависимую полупроводниковую память. Доступы процессора 106 и другие возможные компоненты памяти 102 могут быть реализованы под управлением контроллера 104 памяти.
Периферийный интерфейс 108 может быть использован для подсоединения различных устройств ввода/вывода к аппаратному процессору 106 и памяти 102. В некоторых вариантах осуществления изобретения периферийный интерфейс 108, аппаратный процессор 106 и контроллер 104 памяти могут быть реализованы в одном чипе. В других вариантах осуществления изобретения периферийный интерфейс 108, аппаратный процессор 106 и контроллер 104 памяти могут быть реализованы на отдельных чипах.
Радиочастотный модуль 110 может быть использован для приема и передачи электромагнитных волн, для воздействия на взаимные преобразования электромагнитных волн и электрических сигналов и, тем самым, для обмена данными с коммуникационной сетью или другими устройствами.
Аудио модуль 112 может обеспечивать один или более аудио интерфейсов, которые могут включать в себя один или более микрофонов, одну или более акустических систем, и аудио схему.
Сенсорный экран 114 может одновременно обеспечивать выходной и входной интерфейс между терминалом 100 и пользователем. В частности, сенсорный экран 114 может отображать вывод видеоданных для пользователя, содержание которых включает, например, текст, графические данные, видео и любую их комбинацию.
Следует отметить, что структура аппаратной части с фиг. 1 носит лишь иллюстративный характер, и терминал 100 может также содержать один или более компонентов, помимо тех, что проиллюстрированы на фиг. 1, а также может иметь конфигурацию, отличную от той, что показана на фиг. 1. Компоненты, показанные на фиг. 1, могут быть реализованы с помощью программных средств, аппаратных средств или их комбинации.
В некоторых вариантах осуществления изобретения в терминал 100 может быть установлен клиент, причем клиент может представлять собой браузер или прикладное программное обеспечение стороннего разработчика, и может обеспечивать сервис пользователю, соответствующий серверу. Например, клиент может загружать в терминал 100 файлы с сервера.
Для повышения скорости загрузки в случае неудовлетворительного состояния сети или низких характеристик терминала, здесь раскрыты способ и устройство для загрузки файлов. Когда для загрузки множества сегментов целевого файла используется множество потоков загрузки, если один из потоков загрузки выполнил текущую задачу загрузки, можно проанализировать другие потоки загрузки. Возможна идентификация одного из других потоков загрузки, который имеет незагруженный контент наибольшего размера или имеет наибольшее ожидаемое оставшееся время загрузки. Часть незагруженного контента сегмента файла, соответствующая идентифицированному потоку загрузки, может быть перераспределена для того потока загрузки, что уже выполнил свою текущую задачу загрузки. Данный процесс может повторяться до тех пор, пока не будут полностью загружены все сегменты файла. Поскольку потоки загрузки, которые выполнили свои текущие задачи загрузки, могут ассистировать другим потокам загрузки в выполнении части задач загрузки, может быть увеличена общая скорость загрузки.
На фиг. 2 представлена блок-схема примера способа загрузки файлов согласно одному из вариантов осуществления изобретения. Как показано на чертеже, способ загрузки файлов может включать в себя следующие этапы.
На этапе S110, на основании информации о подлежащем загрузке целевом файле (или просто «целевом файле»), запускают множество потоков загрузки сегментов для загрузки множества сегментных файлов целевого файла. Каждый поток загрузки сегмента может загружать один или более сегментов файла в виде сегментного файла. Все сегменты могут иметь один и тот же размер или разные размеры, и/или сегментный файл может иметь одно и то же количество или разное количество сегментов, в зависимости от конкретного случая применения.
В некоторых вариантах осуществления изобретения, информация о целевом файле может идентифицировать целевой файл, так что множество потоков загрузки сегментов могут надлежащим образом идентифицировать целевой файл. Информация о целевом файле может включать в себя информацию о размере, заголовке файла, имени файла, и любую другую подходящую информацию о целевом файле. Для повышения скорости загрузки, на основании информации о целевом файле, может быть создано множество потоков загрузки сегментов для загрузки целевого файла, связанного с информацией о целевом файле.
На этапе S120, когда один из множества потоков загрузки сегментов выполнил свою задачу загрузки, один из других потоков загрузки сегментов, имеющий незагруженный контент наибольшего размера или наибольшее ожидаемое оставшееся время загрузки, идентифицируют и рассматривают в качестве ассистируемого потока загрузки сегмента.
Часть незагруженного контента указанного идентифицированного потока загрузки сегмента, имеющего незагруженный контент наибольшего размера или имеющего наибольшее ожидаемое оставшееся время загрузки, можно загрузить посредством потока загрузки сегмента, который уже выполнил свою задачу загрузки. Таким образом, незагруженный контент может быть полностью загружен быстрее.
На этапе S130 отрезают концевую часть незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции.
В некоторых вариантах осуществления изобретения предварительно заданная пропорция может быть определена на основании разницы между объемом данных незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, и объемом данных незагруженного контента, соответствующего другим потокам загрузки сегментов. Если эта разница мала, предварительно заданная пропорция будет относительно небольшой. Если же разница существенна, то предварительно заданная пропорция будет относительно большой. Концевую часть можно рассматривать в качестве части незагруженного контента, которая наиболее удалена от загруженного контента, определенного на основании предварительно заданной пропорции и незагруженного контента. Напротив, переднюю часть можно рассматривать в качестве части незагруженного контента, которая ближе всего к загруженному контенту, определенному на основании предварительно заданной пропорции и незагруженного контента. В некоторых обстоятельствах для определения также может использоваться загруженный контент.
На этапе S140 тот поток загрузки сегмента, что выполнил свою задачу загрузки, может быть запущен снова для загрузки концевой части.
Этапы S120-S140 можно повторять до тех пор, пока не будет полностью выполнена загрузка всех сегментных файлов множества.
В некоторых вариантах осуществления изобретения способ загрузки файлов может включать в себя: определение одного потока загрузки сегмента, который имеет незагруженный контент наибольшего размера или имеет наибольшее ожидаемое оставшееся время загрузки, в качестве ассистируемого потока загрузки сегмента, отрезание концевой части незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции, и запуск одного потока загрузки сегмента, завершившего свою задачу загрузки, для загрузки концевой части. Данный процесс можно повторять до тех пор, пока все сегментные файлы не будут полностью загружены. Поскольку потоки загрузки сегментов, которые выполнили свои текущие задач загрузки, могут ассистировать другим потокам загрузки сегментов в выполнении части задач загрузки, может быть увеличена общая скорость загрузки файлов.
На фиг. 3 представлена блок-схема примера способа загрузки файлов согласно другому варианту осуществления изобретения. Как показано на чертеже, способ может включать в себя следующие этапы:
На этапе S201 может быть создана задача загрузки на основании адреса загрузки.
На этапе S202 для задачи загрузки может быть получен размер загружаемого целевого файла.
Для получения размера целевого файла может быть запущен поток контроллера загрузки файла, который обновляет информацию о размере файла в таблице данных о загружаемом файле.
На этапе S203 может быть осуществлен процесс сегментации целевого файла для получения множества сегментных файлов целевого файла.
Поток контроллера загрузки файла может делить целевой файл на множество сегментных файлов, используя предварительно заданный принцип сегментации. Количество сегментных файлов может не превышать предварительно заданное пороговое значение. Предварительно заданное пороговое значение может быть использовано для ограничения количества запускаемых потоков загрузки и может представлять собой устанавливаемое по умолчанию значение или может быть задано пользователем. В некоторых вариантах осуществления изобретения, целевой файл может быть равным образом разделен на множество сегментных файлов. В других вариантах осуществления изобретения могут быть использованы любые другие подходящие принципы сегментации.
На этапе S204 может быть запущено множество потоков загрузки сегментов для загрузки множества сегментных файлов целевого файла, соответственно.
Поток контроллера загрузки файлов на основании количества сегментных файлов может распределить количество потоков загрузки сегментов, создать соответствующую таблицу данных о потоках загрузки сегментов и далее запустить множество потоков загрузки сегментов для загрузки сегментных файлов целевого файла, соответственно.
На этапе S205 может осуществляться мониторинг статуса загрузки всех потоков загрузки сегментов множества и изменений размера незагруженных частей сегментных файлов во время процесса загрузки.
Поток контроллера загрузки файлов может осуществлять непрерывный мониторинг статуса загрузки всех потоков загрузки сегментов и изменений размера незагруженных частей сегментных файлов целевого файла, и может обновлять таблицу данных о загружаемых файлах в режиме реального времени.
Во время процесса загрузки множество потоков загрузки сегментов может оповещать поток контроллера загрузки файлов об изменении статуса и изменении размера незагруженных частей сегментных файлов. Таким образом, возможно обновление соответствующей таблицы данных о загружаемом файле и таблицы данных о потоках загрузки сегментов.
На этапе S206 может определяться, завершил ли какой поток загрузки сегмента выполнение своей задачи загрузки. Если результат определения положителен, можно выполнить этап S207 и процесс может вернуться на этап S205.
Во время процесса загрузки каждый поток загрузки сегмента может оповещать поток контроллера загрузки файлов об изменении статуса и изменении размера незагруженных частей сегментных файлов. При этом возможно обновление соответствующей таблицы данных о загружаемом файле и таблицы данных о потоках загрузки сегментов. Таким образом, поток контроллера загрузки файлов на основании указанного оповещения может определить, выполнил ли какой поток загрузки сегмента свою задачу загрузки.
На этапе S207 может определяться, выполнили ли все потоки загрузки сегментов свои задачи загрузки. Если результат определения положителен, процесс загрузки может быть завершен. В противном случае может осуществляться этап S208.
На этапе S208 один из множества потоков загрузки сегментов, имеющий незагруженный контент наибольшего размера или наибольшее ожидаемое оставшееся время загрузки, может идентифицироваться и рассматриваться в качестве ассистируемого потока загрузки сегмента.
Когда поток загрузки сегмента выполнил свою задачу загрузки сегмента, поток контроллера загрузки может принять оповещение о статусе завершения загрузки от потока загрузки сегмента. Далее, поток контроллера загрузки может осуществить поиск одного из множества потоков загрузки сегментов, который имеет незагруженный контент наибольшего размера или наибольшее ожидаемое оставшееся время загрузки.
На этапе S209 может определяться, меньше ли объем данных незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, чем предварительно заданное пороговое значение. Если результат определения положителен, процесс можно вернуть на этап S205. В противном случае может осуществляться этап S210.
На этапе S210 может отрезаться концевая часть незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции.
В некоторых вариантах осуществления изобретения, если объем данных незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, меньше предварительно заданного порогового значения, незагруженный контент, соответствующий ассистируемому потоку загрузки сегмента, может не делиться. Можно подождать, пока не завершится загрузка незагруженного контента посредством ассистируемого потока загрузки сегмента. В противном случае, незагруженный контент может быть разделен на переднюю часть и концевую часть в соответствии с дихотомическим способом. Концевую часть незагруженного контента можно привязать к потоку загрузки сегмента, который выполнил свою задачу загрузки. Кроме того, в таблицу данных о потоках загрузки сегментов может добавляться новая запись о загружаемом сегменте файла, при этом можно обновить запись о загружаемом сегменте файла потока загрузки сегмента, соответствующего незагруженному контенту.
На этапе S211 снова запускают указанный поток загрузки сегмента, который уже выполнил свою задачу загрузки, для загрузки концевой части.
Когда поток контроллера загрузки определяет, что все потоки загрузки сегментов имеют статус завершения загрузки, задача загрузки целевого файла выполнена.
На фиг. 4 представлена структурная схема примерного устройства загрузки файлов согласно одному из предпочтительных вариантов осуществления изобретения. Раскрытое устройство загрузки файлов может функционировать в терминале, описанном выше со ссылкой на фиг. 1.
Как показано на фиг. 4, устройство 30 загрузки файлов может содержать первый пусковой модуль 31, получающий модуль 32, отрезающий модуль 33 и второй пусковой модуль 34.
Первый пусковой модуль 31 может быть использован для запуска множества потоков загрузки сегментов для загрузки множества сегментных файлов целевого файла, на основании информации о целевом файле.
Получающий модуль 32 может быть использован для идентификации одного из потоков загрузки сегментов, который имеет незагруженный контент наибольшего размера или имеет наибольшее ожидаемое оставшееся время загрузки, в качестве ассистируемого потока загрузки сегмента, когда один из множества потоков загрузки сегментов выполнил свою задачу загрузки.
Отрезающий модуль 33 может быть использован для отрезания концевой части незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции.
Второй пусковой модуль 34 может быть использован для запуска потока загрузки сегмента, который уже выполнил свою задачу загрузки, снова для загрузки концевой части.
Модули/блоки в некоторых вариантах осуществления изобретения, раскрытых выше со ссылкой на фиг. 4, могут быть реализованы посредством компьютерных программ. При этом раскрытые выше модули/блоки могут храниться в памяти 102 терминала 100, описанного выше со ссылкой на фиг. 1. В некоторых вариантах осуществления изобретения модули/блоки могут быть реализованы с помощью аппаратных средств, например, чипов интегральной схемы.
На фиг. 5 представлена структурная схема примерного устройства загрузки файлов согласно некоторым другим вариантам осуществления изобретения. Раскрытое устройство загрузки файлов может функционировать в терминале, описанном выше со ссылкой на фиг. 1.
Как показано на фиг. 5, устройство 40 загрузки файлов может содержать первый пусковой модуль 41, получающий модуль 42, отрезающий модуль 43, второй пусковой модуль 44 и определяющий модуль 45.
Первый пусковой модуль 41 может быть использован для запуска множества потоков загрузки сегментов для загрузки множества сегментных файлов целевого файла на основании информации о целевом файле.
Получающий модуль 42 может быть использован для идентификации одного из других потоков загрузки сегментов, имеющего незагруженный контент наибольшего размера или имеющего наибольшее ожидаемое оставшееся время загрузки, в качестве ассистируемого потока загрузки сегмента, когда один из множества потоков загрузки сегментов выполнил свою задачу загрузки.
Отрезающий модуль 43 может быть использован для отрезания концевой части незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции.
Второй пусковой модуль 44 может быть использован для повторного запуска потока загрузки сегмента, который выполнил свою задачу загрузки, для загрузки концевой части.
В некоторых вариантах осуществления изобретения первый пусковой модуль 41 может содержать: блок 411 получения информации, блок 412 сегментации, блок 413 распределения потоков и блок 414 запуска потоков.
Блок 411 получения информации может быть использован для получения размера файла для целевого файла на основании информации о целевом файле.
Блок 412 сегментации может быть использован для осуществления процесса сегментации целевого файла для получения множества сегментных файлов целевого файла.
Блок 413 распределения потоков может быть использован для распределения множества потоков загрузки сегментов на основании количества сегментных файлов множества.
Блок 414 запуска потоков может быть использован для запуска множества потоков загрузки сегментов для загрузки множества сегментных файлов целевого файла, соответственно.
В некоторых вариантах осуществления изобретения устройство 40 загрузки файлов дополнительно содержит: определяющий модуль 45, используемый для определения, меньше ли объем данных незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, предварительно заданного порогового значения. Если результат определения положителен, незагруженный контент может быть напрямую загружен посредством ассистируемого потока загрузки сегмента. В противном случае отрезают концевую часть незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции.
Кроме того, получающий модуль 42 может также быть использован для мониторинга статуса загрузки всех потоков загрузки сегментов множества и изменений размера незагруженных частей сегментных файлов во время процесса загрузки, и для определения, выполнил ли какой поток загрузки сегмента свою задачу загрузки. Если определено, что один поток загрузки сегмента выполнил свою задачу загрузки, получающий модуль 42 может быть также использован для определения, выполнили ли все потоки загрузки сегментов свои задачи загрузки.
Кроме того, отрезающий модуль 43 может быть также использован для нарезки незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, на переднюю часть и концевую часть в соответствии с дихотомическим способом; и для привязки концевой части незагруженного контента к потоку загрузки сегмента, который выполнил свою задачу загрузки.
Модули/блоки в некоторых вариантах осуществления изобретения, раскрытых выше со ссылкой на фиг. 5, могут быть реализованы посредством компьютерных программ. При этом раскрытые выше модули/блоки могут храниться в памяти 102 терминала 100, описанного выше со ссылкой на фиг. 1. В некоторых вариантах осуществления изобретения модули/блоки могут быть реализованы с помощью аппаратных средств, например, чипов интегральной схемы.
Таким образом, согласно изобретению способ и устройство для загрузки файлов могут определять один из потоков загрузки сегмента, имеющий незагруженный контент наибольшего размера или наибольшее ожидаемое оставшееся время загрузки, в качестве ассистируемого потока загрузки сегмента, отрезать концевую часть незагруженного контента, соответствующего ассистируемому потоку загрузки сегмента, согласно предварительно заданной пропорции, и запускать один из потоков загрузки сегмента, который выполнил свою задачу загрузки, для загрузки концевой части. Данный выше процесс может повторяться до полной загрузки всех сегментных файлов. Поскольку потоки загрузки, выполнившие свои текущие задачи загрузки, могут ассистировать другим потокам загрузки в выполнении части задач загрузки, может быть увеличена общая скорость загрузки файла.
Следует отметить, что различные варианты осуществления изобретения раскрыты здесь постепенно, так что каждый вариант осуществления характеризуется отличиями от других вариантов. Одинаковые и сходные части вариантов осуществления изобретения могут ссылаться друг на друга.
В некоторых вариантах осуществления изобретения устройство и система загрузки файлов, могут иметь тот же принцип реализации и технический результат, что и раскрытые выше варианты. Для упрощения варианты осуществления устройства и системы загрузки файлов могут иметь ссылки на соответствующие варианты осуществления способа загрузки файлов.
Кроме того, структурные схемы и блок-схемы, представленные на фигурах чертежей, иллюстрируют различные варианты осуществления раскрытого здесь способа и системы, а также архитектуру, функции и операции, которые реализуемые компьютерным программным продуктом. В данном случае каждый блок структурных схем или блок-схем может представлять собой модуль, кодовый сегмент, часть программного кода. Каждый модуль, каждый кодовый сегмент, и каждая часть программного кода может включать в себя одну или более исполняемых инструкций для реализации предварительно заданных логических функций. Также следует отметить, что в некоторых альтернативных вариантах осуществления изобретения функции, представленные в блоках, могут быть исполнены или осуществлены в любом порядке или последовательности, не ограниченных порядком и последовательностью, описанными и проиллюстрированными на чертежах. Например, два последовательных блока могут быть в действительности исполнены по существу одновременно, где это необходимо, или параллельно для уменьшения времени задержки и обработки, или даже могут быть исполнены в обратном порядке в зависимости от имеющихся функциональных возможностей. Также следует отметить, что каждый блок в блок-схемах и/или структурных схемах, а также комбинации блоков в структурных схемах и блок-схемах, могут быть реализованы посредством специализированной аппаратной системой для специфических функций, или же посредством специализированной системы, объединенной с аппаратной частью и компьютерными инструкциями.
Объектом изобретения также является компьютерный программный продукт, включающий в себя программные коды хранения машиночитаемого носителя данных. Программные коды содержат инструкции для осуществления раскрытого выше способа. Конкретные реализации раскрытого способа могут относиться к различным вариантам, описанным выше со ссылкой на фиг. 1-5.
Специалисту в данной области техники будет ясно, что для удобства и простоты описания конкретные рабочие процессы систем, устройств и блоков, раскрытых выше, могут относиться к соответствующим процессам различных вариантов осуществления раскрытого выше способа.
Следует понимать, что в различных раскрытых здесь вариантах осуществления изобретения система, устройство и способ могут быть реализованы и другими средствами. Раскрытые варианты осуществления устройства носят лишь иллюстративный характер. Например, деление блоков представляет собой лишь деление логических функций, которые в реальных реализациях могут быть разделены иным образом. В качестве другого примера, множество блоков или компонентов могут быть скомбинированы или интегрированы в другую систему. Некоторыми признаками можно пренебречь или не осуществлять их. При этом проиллюстрированное и рассмотренное взаимное соединение, прямое соединение или коммуникационное соединение может быть обеспечено посредством электрического, механического коммуникационного интерфейса или коммуникационных интерфейсов иных типов.
Блок, раскрытый как отдельный элемент, может представлять собой физически отдельный блок. Компонент, проиллюстрированный как блок, может представлять собой физический блок. Блок может быть расположен в одном месте или же распределен между множеством сетевых компонентов. Согласно реальным потребностям, часть или все блоки могут быть выбраны для реализации назначения объекта изобретения.
Кроме того, различные функциональные блоки в различных вариантах осуществления изобретения могут быть интегрированы в обрабатывающий блок или могут представлять собой отдельные физические блоки. Два или более функциональных блоков могут также быть интегрированы в один блок.
Если функции реализованы в виде программных функциональных блоков и используются или продаются как самостоятельный продукт, продукт может храниться в машиночитаемом носителе данных. Из вышеизложенного следует, что существенная часть технических характеристик раскрытого объекта или некоторая часть технических характеристик раскрытого объекта, которая может вносит вклад в уровень техники, или любая часть технических характеристик раскрытого объекта, может быть воплощена в форме компьютерного программного продукта. Компьютерный программный продукт может храниться в носителе данных, включающем в себя множество инструкций для управления компьютерным устройством (например, персональным компьютером, сервером или сетевым оборудованием) для осуществления всех или части этапов способа согласно различным вариантам осуществления изобретения. Упомянутый выше носитель данных может представлять собой: U-диск, съемный жесткий диск, постоянное запоминающее устройство ПЗУ (ROM), оперативное запоминающее устройство ОЗУ (RAM), дискету, постоянное запоминающее устройство на компакт-дисках (CD-ROM), или любой другой подходящий носитель, в котором могут храниться программные коды.
Следует отметить, что встречающиеся в настоящем документе относительные термины, такие как «первый», «второй», и т.д., используются исключительно для отделения одной операции/элемента от другой операции/элемента и не обязательно требуют или предполагают, что эти элементы или операции имеют реальное взаимоотношение или порядок. Кроме того, термины «содержащий», «включающий в себя» и любые другие их вариации соответствуют открытому перечню, то есть, когда процесс, способ, изделие или устройство, содержащие группу элементов, включают в себя не только эти элементы, но также включают в себя другие явным образом не указанные элементы или же дополнительно включают в себя некоторые элементы, присущие такому процессу, способу, изделию или устройству. Таким образом, упоминание элемента в выражении «содержит…», не исключает наличия другого такого же элемента в таком процессе, способе, изделии или устройстве.
Хотя изобретение раскрыто и проиллюстрировано на основании приведенных выше вариантов осуществления, следует понимать, что описание дает лишь примеры осуществления, и в настоящее изобретение может быть внесено множество изменений в рамках его сущности и объема правовой охраны, которые ограничены лишь нижеследующей формулой изобретения. Признаки раскрытых вариантов осуществления могут быть скомбинированы и перегруппированы различными путями. Специалисту в данной области техники будут понятны различные модификации изобретения, его различные эквиваленты и усовершенствования, которые могут быть осуществлены и которые следует рассматривать, как находящиеся в объеме правовой охраны изобретения. Следует отметить, что сходные номера позиций и буквенные обозначения относятся к сходным элементам на фигурах чертеже; соответственно, если один элемент обозначен на одной фигуре, его уже не обязательно обозначать и пояснять иным образом на последующих фигурах.