Область техники, к которой относится изобретение
Изобретение относится к способу, системе, серверу, устройству, компьютерной программе и компьютерному программному продукту для передачи данных в компьютерной сети.
Уровень техники
В существующих компьютерных сетях, подобных хорошо известной сети связи управления перспективных научно-исследовательских проектов (ARPANET), оператор решает, какое приложение запускать на каком компоненте компьютерной сети. В типичном варианте приложения целиком размещены на одном сервере или в одном центре обработки данных.
В качестве альтернативы, части приложений могут быть запущены на различных процессорах в многоядерных системах. В этом случае приложение оценки и управления решает, какая часть какого приложения должна работать на каком процессоре.
Приложения состоят из компьютерных программ, которые выполняются на компьютере. Упомянутые компьютерные программы, например, хранятся в запоминающем устройстве упомянутого компьютера.
В качестве альтернативы, приложения могут состоять из множества компьютерных программ, которые взаимодействуют друг с другом, чтобы выполнять задачу соответствующего приложения. Упомянутые множества компьютерных программ могут быть сохранены на множестве энергонезависимых запоминающих устройств, например, на клиентах или на серверах, которые являются частью компьютерной сети.
В случае распределенных мест хранения для компьютерных программ, которые принадлежат одному приложению, в настоящее время известны два сценария.
В первом сценарии клиентский компьютер принимает упомянутые компьютерные программы, похожие на часть упомянутого приложения, или упомянутое приложение полностью от одного или нескольких серверов в упомянутой компьютерной сети и выполняет их. В этом сценарии упомянутая часть упомянутого приложения может выполняться на упомянутом клиентском компьютере, только если форматы упомянутых компьютерных программ, которые принимаются упомянутым клиентским компьютером, распознаются упомянутым клиентским компьютером. Для этого упомянутый клиентский компьютер, например, содержит таблицу распознанных или разрешенных компьютерных программ и отказывается выполнять компьютерные программы, которые не перечислены в упомянутой таблице.
Во втором сценарии первая часть упомянутого приложения, например первая компьютерная программа, хранится на упомянутом клиентском компьютере и выполняется упомянутым клиентским компьютером. Одна или более дополнительных частей упомянутого приложения, например одна или несколько вторых компьютерных программ, выполняются на одном или нескольких серверах по запросу от упомянутого клиентского компьютера. Например, одна или несколько компьютерных программ, которые хранятся на упомянутом одном или нескольких серверах, выполняются на сервере, который хранит их. Взаимодействие различных частей упомянутого приложения требует передачи данных. Передача данных возможна, только если упомянутый формат данных для передаваемых данных известен соответствующим приложениям или частям упомянутого приложения. Для этого приложении или части упомянутого приложения, например, содержат таблицу распознанных или допустимых форматов данных и отказываются обрабатывать данные, которые не перечислены в упомянутой таблице.
Также, в качестве дополнения к компьютерным программам, данные, которые обрабатываются посредством компьютерных программ, могут быть сохранены в одном запоминающем устройстве или в нескольких запоминающих устройствах в компьютерной сети. В этом случае данные управляются аналогично сценариям, описанным выше.
В любом случае места хранения для частей приложения, т.е. компьютерных программ и данных, которые обрабатываются посредством приложения, а также форматы данных для передачи и хранения, должны быть известны заранее всем приложениям или частям приложения, например статически или сообщаться между упомянутыми приложениями или частями упомянутых приложений динамически.
Чтобы преодолевать ограничения, накладываемые потенциально неизвестными форматами, обычно приложения или части приложений либо содержат поддержку настолько большого числа различных форматов, насколько возможно, либо поддерживают только очень ограниченное число форматов.
В текущих компьютерных сетях ни место хранения, ни форматы данных не могут корректироваться для сетевого окружения, например, доступной пропускной способности или вычислительной мощности, в реальном времени. Это ограничивает гибкость текущих компьютерных сетей.
Раскрытие изобретения
Таким образом, задача изобретения состоит в повышении гибкости компьютерных сетей относительно потока данных.
Поток данных в этом контексте означает, что данные передаются в упомянутой компьютерной сети.
Главной идеей изобретения является передача данных через канал передачи данных в компьютерной сети, в которой устройство в конечной точке сегмента упомянутого канала передачи данных выбирается из устройств упомянутой компьютерной сети, компьютерная программа, выполненная с возможностью обработки упомянутых данных, в частности отправки упомянутых данных в заданном формате данных, передается упомянутому устройству, и упомянутые данные обрабатываются упомянутым устройством, в частности отправляются в упомянутом заданном формате данных, посредством выполнения упомянутой компьютерной программы. Таким образом, приложение, т.е. компьютерная программа, перемещается на устройство, наиболее подходящее для обработки упомянутых данных в упомянутой компьютерной сети, вместо отправки упомянутых данных упомянутому приложению.
Предпочтительно, формат данных для передачи упомянутых данных через упомянутый сегмент выбирается, в частности, сервером из заданных форматов данных в зависимости от информации об упомянутой компьютерной сети, в частности, доступных циклах вычислений в секунду упомянутых устройств, пропускных способностях каналов передачи данных, задержке или стоимости, упомянутая компьютерная программа выполнена с возможностью отправки упомянутых данных в упомянутом формате данных, и упомянутые данные отправляются в упомянутом формате данных посредством выполнения упомянутой компьютерной программы на упомянутом устройстве. Таким образом, используется наиболее подходящий формат данных для передачи упомянутых данных, и компьютерная программа, которая создает упомянутый формат данных, перемещается в наиболее подходящее местоположение в компьютерной сети. Это означает, что упомянутая обработка упомянутых данных распределяется по всей упомянутой компьютерной сети на основе управления упомянутым потоком данных в упомянутой компьютерной сети.
Предпочтительно, упомянутая компьютерная программа выбирается из заданных компьютерных программ, в частности, сервером, в зависимости от информации об упомянутой компьютерной сети, в частности, доступных циклах вычислений в секунду упомянутых устройств, пропускной способности каналов передачи данных, задержке или стоимости. Таким образом, выбирается наиболее подходящая компьютерная программа.
Предпочтительно, упомянутое устройство выбирается, в частности, сервером, в зависимости от информации об упомянутой компьютерной сети, в частности, доступных циклах вычислений в секунду упомянутых устройств, пропускной способности каналов передачи данных, задержке или стоимости. Таким образом, выбирается наиболее подходящее устройство.
Предпочтительно, если заданное условие выполняется, упомянутая компьютерная программа передается упомянутому устройству, в частности, из запоминающего устройства, выполнение упомянутой компьютерной программы начинается на упомянутом устройстве, в частности, после завершения упомянутой передачи, упомянутые данные определяются упомянутой компьютерной программой, и упомянутые данные отправляются из упомянутого устройства.
Предпочтительно, упомянутые данные передаются упомянутому устройству в заданном первом формате данных, упомянутые данные передаются из упомянутого устройства в заданном втором формате данных, и упомянутая компьютерная программа выполнена с возможностью приема упомянутых данных в упомянутом заданном первом формате данных и определения упомянутых данных в упомянутом заданном втором формате данных. Таким образом, формат данных изменяется согласно гибкости состояния компьютерной сети.
Предпочтительно, упомянутое устройство или упомянутая компьютерная программа выбираются в зависимости от информации об упомянутых данных. Таким образом, выбирается устройство или компьютерная программа, наиболее подходящие для обработки и передачи упомянутых данных.
Дополнительные усовершенствования изобретения могут быть выведены из зависимой формулы изобретения и последующего описания.
Краткое описание чертежей
Далее изобретение будет дополнительно пояснено со ссылкой на сопровождающие чертежи.
Фиг. 1 схематически показывает первую часть компьютерной сети.
Фиг. 2 схематически показывает блок-схему последовательности операций, показывающую некоторые типичные этапы согласно первому способу.
Фиг. 3 схематически показывает вторую часть компьютерной сети.
Фиг. 4 схематически показывает блок-схему последовательности операций, показывающую некоторые типичные этапы согласно второму способу.
Осуществление изобретения
Задача нижеприведенных примеров состоит в повышении гибкости компьютерной сети относительно потока данных.
В упомянутых примерах описана передача потока данных в глобальной компьютерной сети. Хотя упомянутые примеры сосредоточены на упомянутой глобальной компьютерной сети и упомянутом потоке данных, изобретение может также быть применено к любому другому типу данных или компьютерной сети.
Передача данных или передаваемые данные означают, например, любую форму электронной отправки и приема упомянутых данных.
Компьютер в упомянутой глобальной компьютерной сети содержит, например, процессор, энергонезависимое запоминающее устройство, энергозависимое запоминающее устройство, сетевой интерфейс и шину данных, соединяющую вышеупомянутые части упомянутого компьютера. Упомянутый компьютер дополнительно содержит операционную систему, сохраненную в упомянутом энергонезависимом запоминающем устройстве.
Поток данных - это непрерывная последовательность кодированных цифровым способом сигналов определенного формата данных, сформированных в одном или нескольких источниках и распространяемых одному или более получателям, которые используют или обрабатывают данные, содержащиеся в упомянутом потоке данных. Например, упомянутый поток данных содержит последовательность наборов данных, которые отправлены упомянутым одним или несколькими источниками. Упомянутый поток данных может содержать наборы данных любого формата данных.
Потоковая передача данных означает, что упомянутые данные или упомянутый поток данных передается от упомянутого одного или более источников упомянутому одному или более получателям через один или более каналов передачи данных.
Набор данных из упомянутой последовательности наборов данных является неделимым элементом данных согласно формату данных, который позволяет блоку обработки, например упомянутому процессору упомянутого компьютера, выполнять полезную операцию.
Упомянутые наборы данных являются, например, последовательностями битов, которые структурированы согласно заданному формату данных. Упомянутый формат данных, например, описывает позицию и длину заголовка и полезных данных в упомянутых наборах данных. Упомянутый заголовок, например, содержит информацию об упомянутом одном или более получателях, позиции упомянутого набора данных в упомянутом потоке данных или позицию и длину сегмента упомянутых полезных данных. Упомянутые наборы данных могут быть фиксированной или изменяемой длины.
Первый пример, использующий один источник, например сервер 110, и один приемник, например первый клиентский компьютер 101, описывается ниже со ссылкой на фиг. 1. Фиг. 1 показывает первую часть упомянутой глобальной компьютерной сети 100.
Упомянутый первый клиентский компьютер 101 является, например, компьютером с дисплеем.
Упомянутая первая часть упомянутой глобальной компьютерной сети 100 содержит упомянутый первый клиентский компьютер 101, первый узел 121 сети, второй узел 122 сети и упомянутый сервер 110.
Упомянутый клиентский компьютер 101 и упомянутый сервер 110 соединены через первый канал передачи данных. Упомянутый первый канал передачи данных содержит сегменты. Конечные точки упомянутых сегментов являются устройствами, например упомянутым сервером 110, упомянутым первым клиентским компьютером 101, упомянутым первым узлом 121 сети или упомянутым вторым узлом 122 сети. Упомянутые сегменты упомянутого первого канала передачи данных являются соединениями между упомянутыми устройствами, например оптическими волокнами, беспроводными каналами связи или медными проводами, включающими в себя соответствующие электронные схемы для их работы. Упомянутые данные передаются по упомянутому первому каналу передачи данных с помощью протоколов передачи, например хорошо известного протокола управления передачей/протокола Интернета (TCP/IP). Любой другой тип проводных или беспроводных каналов связи, например по протоколу пользовательских дейтаграмм (UDP), Ethernet или стандарту IEEE 802.11, может также быть использован.
Упомянутый первый узел 121 сети, упомянутый второй узел 122 сети, упомянутый сервер 110 или упомянутый первый клиентский компьютер 101 могут быть соединены друг с другом напрямую или опосредованно.
Согласно упомянутому первому примеру, для того, чтобы отправлять упомянутый поток данных, упомянутые наборы данных отправляются от упомянутого сервера 110 упомянутому первому клиентскому компьютеру 101. Для этого упомянутый заголовок, например, содержит адрес по протоколу Интернета упомянутого первого клиентского компьютера 101.
Упомянутый сервер 110 является, например, цифровой видеокамерой для захвата упомянутых полезных данных, содержащей микропроцессор и сетевой интерфейс, выполненный с возможностью отправки упомянутых наборов данных через упомянутую глобальную компьютерную сеть 100 упомянутому первому клиентскому компьютеру 101 с помощью упомянутого адреса протокола Интернет.
Упомянутый сервер 110 может также содержать запоминающее устройство и может быть выполненным с возможностью считывания упомянутых полезных данных из упомянутого запоминающего устройства.
Упомянутый сервер 110 выполнен с возможностью выполнения первого приложения, например первой компьютерной программы. Например, упомянутый микропроцессор в упомянутой цифровой видеокамере выполнен с возможностью выполнения упомянутой первой компьютерной программы.
Упомянутая первая компьютерная программа при выполнении отправляет упомянутый поток данных, т.е. упомянутую последовательность упомянутых наборов данных, в заданном первом формате данных.
Содержимое упомянутого потока данных является, например, (необработанными) видеоданными, например в формате цифрового видео (хорошо известном как DV). Формат цифрового видео применяет допускающее потерю качества сжатие видео в реальном времени, пока видео записывается упомянутой цифровой видеокамерой. Упомянутый заданный первый формат данных упомянутого потока данных, например, определен, чтобы содержать в качестве полезных данных первое единственное изображение (кадр) упомянутого видео в формате цифрового видео в каждом наборе данных.
Упомянутые наборы данных могут быть разделены на множество пакетов данных согласно упомянутому протоколу управления передачей/протоколу Интернет (TCP/IP) или протоколу пользовательских дейтаграмм (UDP), которые затем отправляются через упомянутый первый узел 121 сети или упомянутый второй узел 122 сети упомянутому первому клиентскому компьютеру 101. В этом случае упомянутый первый клиентский компьютер 101 выполнен с возможностью приема упомянутого множества пакетов данных и объединения упомянутого множества пакетов данных, чтобы воссоздать упомянутые наборы данных из упомянутого множества пакетов данных согласно упомянутому протоколу управления передачей/протоколу Интернет (TCP/IP) или упомянутому протоколу пользовательских дейтаграмм (UDP).
Упомянутый первый клиентский компьютер 101 выполнен с возможностью выполнения второго приложения, например второй компьютерной программы. Например, упомянутый процессор в упомянутом клиентском компьютере 101 выполнен с возможностью выполнения упомянутой второй компьютерной программы.
Упомянутая вторая компьютерная программа при выполнении обрабатывает упомянутый поток данных, т.е. упомянутую последовательность упомянутых наборов данных, в заданном втором формате данных. Упомянутый второй формат данных является, например, MPEG-4 видео, обеспеченным в контейнере mp4 согласно ISO/IEC 14496-12 и -14, называемым далее форматом mp4.
Упомянутая вторая компьютерная программа, когда выполняется, например, принимает один из упомянутых наборов данных в упомянутом заданном втором формате данных, определяет второе единственное изображение (кадр) в зависимости от упомянутых полезных данных из одного или более упомянутых наборов данных и отображает упомянутое изображение на упомянутом дисплее.
Упомянутый формат данных цифрового видео потребляет большой объем памяти. Следовательно, поток данных цифрового видео или, более обобщенно, каких-либо объемных данных требует большой пропускной способности (т.е. транспортных ресурсов) и много ресурсов обработки во всей упомянутой глобальной компьютерной сети 100.
Чтобы уменьшать объем данных, которые требуется передавать, и, следовательно, уменьшать используемую пропускную способность, упомянутое видео может передаваться в более сжатом формате данных. Например, полезные данные в упомянутом формате цифрового видео могут быть сжаты с помощью третьего приложения, например третьей компьютерной программы.
Упомянутая третья компьютерная программа является, например, кодером или любой компьютерной программой, которая уменьшает объем полезных данных. Упомянутая третья компьютерная программа является, например, mp4-кодером для определения видео MPEG-4, обеспеченного в mp4-контейнере согласно ISO/IEC 14496-12 и -14, т.е. упомянутом формате mp4, например из входных данных в упомянутом формате цифрового видео.
Целью упомянутой третьей компьютерной программы является обеспечение преобразования упомянутого набора данных, доступного на упомянутом сервере 110 в упомянутом заданном первом формате данных, в упомянутый заданный второй формат данных, требуемый упомянутым первым клиентским компьютером 101.
Другими примерами такого преобразования являются кодеры данных, программы распознавания объектов, (аудио) фильтры, конвертеры данных, хранилище и т.д., или любая комбинация вышеуказанных.
Упомянутые приложения или компьютерные программы, например, представлены и сохранены в наборе инструкций любого типа, который упомянутые устройства, например упомянутый сервер 110, упомянутый первый клиентский компьютер 101, упомянутый второй клиентский компьютер 102, упомянутый первый узел 121 сети или упомянутый второй узел 122 сети, могут считывать или выполнять. Упомянутые приложения или компьютерные программы, например, сохранены как машинный код, бинарный код, код ассемблера или байт-код.
Упомянутый первый узел 121 сети или упомянутый второй узел 122 сети являются, например, шлюзами в упомянутой глобальной компьютерной сети 100.
Упомянутый первый узел 121 сети или упомянутый второй узел 122 сети выполнены с возможностью выполнения упомянутого третьего приложения, например упомянутой третьей компьютерной программы. Например, микропроцессор в упомянутых узлах 121, 122 сети выполнен с возможностью выполнения упомянутого третьего приложения.
Упомянутая третья компьютерная программа при выполнении принимает упомянутый поток данных, т.е. упомянутую последовательность упомянутых наборов данных, в упомянутом заданном первом формате данных и определяет упомянутый поток данных, т.е. упомянутую последовательность упомянутых наборов данных, в упомянутом заданном втором формате данных. Например, упомянутая третья компьютерная программа считывает последовательные наборы данных из входного буфера упомянутого первого узла 121 сети или упомянутого второго узла 122 сети в упомянутом заданном первом формате данных, определяет упомянутые наборы данных в упомянутом заданном втором формате данных и сохраняет последовательные наборы данных в упомянутом заданном втором формате данных в выходном буфере упомянутого первого узла 121 сети или упомянутого второго узла 122 сети.
В качестве альтернативы или дополнения упомянутая третья компьютерная программа может быть выполнена с возможностью определения одного или более упомянутых наборов данных в упомянутом заданном втором формате данных в зависимости от одного или более упомянутых наборов данных в упомянутом заданном первом формате данных.
Упомянутый сервер 110 или упомянутый первый клиент 101 могут быть также выполнены с возможностью выполнения упомянутого третьего приложения, например упомянутой третьей компьютерной программы. В этом случае упомянутый первый клиентский компьютер 101 или упомянутый сервер 110 содержит упомянутый входной буфер и упомянутый выходной буфер.
Кроме того, упомянутый первый клиентский компьютер 101 выполнен с возможностью отправки запроса для приема упомянутого потока данных в упомянутом заданном втором формате данных упомянутому серверу 110. Например, упомянутый первый клиент 101 выполнен с возможностью отправлять первое сообщение, запрос (Request), упомянутому серверу 110 с помощью упомянутого адреса по протоколу Интернета упомянутого сервера 110. Упомянутое первое сообщение является, например, сообщением GET протокола передачи гипертекста (HTTP), включающим в себя запрос приема упомянутого потока данных в формате mp4.
Кроме того, упомянутый сервер 110 выполнен с возможностью принимать упомянутый запрос, например упомянутое первое сообщение, и, например, при приеме упомянутого первого сообщения, выбирать упомянутую третью компьютерную программу из упомянутых заданных компьютерных программ или устройство в конечной точке сегмента упомянутого первого канала передачи данных из устройств упомянутой глобальной вычислительной сети 100.
Упомянутое устройство, например, выбирается из списка заданных устройств, который был сформирован администратором упомянутой глобальной компьютерной сети 100 и сохранен на упомянутом сервере 110 в базе данных, ассоциированной с адресом по протоколу Интернета соответствующего устройства.
Альтернативно могут быть использованы широковещательное сообщение, запрашивающее доступные устройства в упомянутой глобальной компьютерной сети 100, и соответствующий ответ упомянутых устройств. В этом случае упомянутые устройства и упомянутый сервер 110 выполнены с возможностью отправлять и принимать соответствующие сообщения.
Упомянутое устройство или упомянутая третья компьютерная программа, например, выбирается на основе наблюдения за доступными устройствами и соединениями между упомянутыми устройствами, которые подходят, чтобы формировать сегмент упомянутого первого канала передачи данных в упомянутой глобальной компьютерной сети 100. Например, правила выбора упомянутого устройства или упомянутой третьей компьютерной программы определяются оператором упомянутой глобальной компьютерной сети 100 и сохраняются на упомянутом сервере 110 в базе знаний. Например, экспертная система, т.е. программное обеспечение, которое обрабатывает упомянутые правила и результаты упомянутого наблюдения, используется, чтобы выбирать упомянутое устройство или упомянутую третью компьютерную программу.
Способы наблюдения за глобальной компьютерной сетью 100 хорошо известны специалисту в области техники и дополнительно не объясняются здесь.
Например, упомянутая база данных дополнительно содержит спецификации упомянутых заданных устройств упомянутой глобальной компьютерной сети 100 или упомянутых заданных компьютерных программ. Упомянутые спецификации могут быть использованы, чтобы определять информацию о доступности упомянутых заданных устройств или заданных компьютерных программ и их соответствующие функциональные возможности.
Кроме того, может быть использована информация о состоянии устройств в реальном времени или соединений, подходящих, чтобы быть сегментами упомянутого первого канала передачи данных в упомянутой глобальной компьютерной сети 100. Упомянутая информация о состоянии в реальном времени, например, собирается инструментальными средствами управления сетевыми устройствами типа Alcatel-Lucent 5670 Reporting and Analysis Manager и отправляется упомянутому серверу 110 в сообщениях-отчетах в заданные моменты времени. На основе этой информации соответствующие ресурсы обработки, т.е. устройства в упомянутой глобальной компьютерной сети 100, выбираются для выполнения упомянутой третьей компьютерной программы.
Соединения между устройствами, подходящие, чтобы формировать сегменты упомянутого первого канала передачи данных, например транспортные ресурсы типа упомянутых оптических волокон, упомянутых беспроводных линий связи или упомянутых медных проводов, включающие в себя упомянутые электронные схемы для их управления, могут быть приняты во внимание при выборе упомянутого устройства или упомянутой третьей компьютерной программы, чтобы гарантировать, что упомянутые сегменты упомянутого первого канала передачи данных или упомянутое устройство могут поддерживать требуемый обмен данными между упомянутой первой компьютерной программой, упомянутой второй компьютерной программой или упомянутой третьей компьютерной программой.
Упомянутый первый канал передачи данных, например, определяется изначально упомянутым сервером 110 посредством поиска первой записи в таблице маршрутизации, описывающей доступные устройства и соединения между устройствами, которые подходят, чтобы формировать сегменты упомянутого первого канала передачи данных в упомянутой глобальной компьютерной сети 100. Упомянутая таблица маршрутизации, например, хранится на упомянутом сервере 110. Альтернативно или дополнительно упомянутые соединения, подходящие, чтобы формировать сегменты упомянутого первого канала передачи данных, могут быть выбраны изначально с помощью других способов, аналогичных хорошо известному протоколу разрешения адреса (ARP). В этом случае информация об упомянутой маршрутизации может быть сохранена на любом устройстве в упомянутой глобальной компьютерной сети.
Кроме того, упомянутый первый канал передачи данных может быть изменен, например, посредством замены устройств или приложений, например компьютерных программ, или посредством добавления устройств или приложений, которые не были изначально частью упомянутого первого канала передачи данных. Упомянутый первый канал передачи данных, например, изменяется в реальном времени во время первоначальной настройки упомянутых приложений или устройств, например, если достаточная пропускная способность недоступна на первоначально выбранном канале передачи данных.
Кроме того, повторная замена или введение новых устройств или приложений, например компьютерных программ, в упомянутый первый канал передачи данных может применяться в реальном времени во время передачи упомянутых данных, например, чтобы реагировать на изменяющиеся модели использования упомянутых устройств, упомянутых сегментов упомянутого первого канала передачи данных или упомянутых соединений, подходящих, чтобы формировать сегменты упомянутого первого канала передачи данных.
Упомянутый сервер 110 выполнен с возможностью выбирать упомянутое третье приложение, например упомянутую третью компьютерную программу, из упомянутых заданных приложений, например упомянутых заданных компьютерных программ. Упомянутая третья компьютерная программа, например, выбирается упомянутым сервером 110 в зависимости от информации об упомянутых данных или упомянутой глобальной компьютерной сети 100. Информация об упомянутой компьютерной сети является, например, упомянутыми циклами вычислений в секунду, доступными на упомянутых устройствах для выполнения упомянутого третьего приложения, пропускной способностью упомянутого первого канала передачи данных или упомянутых соединений, подходящих, чтобы формировать сегменты упомянутого канала передачи данных, задержкой или стоимостью.
Упомянутая стоимость является, например, стоимостью потребляемой энергии, стоимостью поддержки или стоимостью аренды упомянутых заданных устройств или упомянутых соединений в упомянутой глобальной компьютерной сети 100.
Например, упомянутый сервер 110 выполнен с возможностью выбирать упомянутый mp4-кодер при приеме упомянутого запроса, чтобы принимать упомянутый поток данных как видео MPEG-4, предоставленное в mp4-контейнере согласно ISO/IEC 14496-12 и -14, т.е. в упомянутом формате mp4.
Кроме того, упомянутый сервер 110 выполнен с возможностью передавать упомянутое третье приложение, например упомянутую третью компьютерную программу, упомянутому устройству, например, с помощью упомянутого протокола передачи гипертекста (HTTP). Например, упомянутый сервер 110 отправляет второе сообщение, PUT, включающее в себя упомянутую третью компьютерную программу.
Перенос упомянутого третьего приложения, например упомянутой третьей компьютерной программы, или передача упомянутого третьего приложения, например упомянутой компьютерной программы, например, означает любую форму электронной отправки упомянутого третьего приложения, например упомянутой третьей компьютерной программы, упомянутому устройству. Например, передача означает отправку упомянутого машинного кода, упомянутого байт-кода или упомянутого кода ассемблера упомянутому устройству из места его хранения в упомянутой глобальной компьютерной сети 100.
Упомянутые заданные устройства являются, например, упомянутым сервером 110, упомянутым первым клиентским компьютером 101, упомянутым первым узлом 121 сети или упомянутым вторым узлом 122 сети.
Упомянутые заданные устройства могут также включать в себя любое другое устройство, которое является частью упомянутой глобальной компьютерной сети 100.
Для того чтобы сигнализировать о завершении передачи упомянутой третьей компьютерной программы упомянутому устройству, упомянутое устройство может быть выполнено с возможностью отправлять третье сообщение, ответ (Response), упомянутому серверу 110. Упомянутое третье сообщение является, например, сообщением 200 OK протокола передачи гипертекста.
В этом случае упомянутый сервер 110 может быть выполнен с возможностью принимать упомянутое третье сообщение и отправлять последующие наборы данных упомянутого потока данных упомянутому устройству с помощью упомянутого заданного первого формата данных при приеме упомянутого третьего сообщения. Упомянутый сервер 110, например, выполнен с возможностью отправлять упомянутые наборы данных в упомянутом формате цифрового видео упомянутому устройству при приеме упомянутого третьего сообщения.
Для того чтобы сигнализировать о прекращении передачи упомянутого потока данных упомянутому серверу 110, упомянутый первый клиентский компьютер 101 может быть выполнен с возможностью отправлять четвертое сообщение, запрос, упомянутому серверу 110. Упомянутое четвертое сообщение является, например, сообщением GET протокола передачи гипертекста (HTTP), включающим в себя запрос о прекращении передачи упомянутого потока данных.
В этом случае упомянутый сервер 110 может быть выполнен с возможностью принимать упомянутое четвертое сообщение и останавливать отправку последующих наборов данных упомянутого потока данных упомянутому устройству.
Кроме того, упомянутый сервер 110 может быть выполнен с возможностью отправлять пятое сообщение, запрос, упомянутому устройству, в частности при приеме упомянутого четвертого сообщения. Упомянутое пятое сообщение является, например, сообщением DELETE протокола передачи гипертекста (HTTP), включающим в себя запрос на удаление упомянутого третьего приложения, например упомянутой третьей компьютерной программы, с упомянутого устройства.
В этом случае упомянутое устройство, в упомянутом первом примере упомянутый второй узел 122 сети, может быть выполнен с возможностью принимать упомянутое пятое сообщение и удалять упомянутое третье приложение, например упомянутую третью компьютерную программу, из своего запоминающего устройства. Таким образом, емкость запоминающего устройства на упомянутом устройстве используется, только пока требуется упомянутое третье приложение, чтобы передавать упомянутый поток данных. При необходимости упомянутое устройство может быть выполнено с возможностью, чтобы удалять упомянутое третье приложение, если условие таймаута удовлетворяется. Например, упомянутое приложение удаляется упомянутым устройством с упомянутого устройства после 1 минуты неактивности упомянутого третьего приложения.
Кроме того, чтобы улучшить безопасность, дополнительные сообщения могут быть использованы для аутентификации. Например, может быть использовано ассиметричное шифрование, использующее пару из закрытого и открытого ключей согласно защищенному протоколу передачи гипертекста (HTTPS).
Кроме того, чтобы улучшать ошибкоустойчивость, дополнительные сообщения могут быть использованы для сигнализирования о состоянии. Например, могут быть использованы сообщения о состоянии протокола передачи гипертекста (HTTP).
В качестве дополнения, упомянутый сервер 110 может быть выполнен с возможностью определять, удовлетворяется ли заданное условие, и чтобы передавать упомянутую третью компьютерную программу упомянутому устройству, если упомянутое заданное условие выполняется.
Упомянутое заданное условие является, например, сравнением состояния упомянутой глобальной компьютерной сети 100 с заданным пороговым значением.
Например, число доступных в текущий момент циклов вычислений в секунду упомянутых устройств в упомянутом первом канале передачи данных между упомянутым сервером 110 и упомянутым первым клиентским компьютером 101 наблюдается и в реальном времени сравнивается с упомянутым заданным пороговым значением, например 10 миллионов инструкций в секунду (MIPS).
Упомянутое заданное условие в этом случае удовлетворяется, если упомянутое число доступных в текущий момент циклов вычислений в секунду падает ниже упомянутого заданного порогового значения.
Упомянутое заданное условие может также рассматривать любую другую характеристику типа задержки, стоимости или ширины полосы пропускания упомянутой глобальной вычислительной сети 100 и соответствующих других типов пороговых значений.
Кроме того, упомянутое устройство, например упомянутый сервер 110, упомянутый первый клиентский компьютер 101, упомянутый первый узел 121 сети или упомянутый второй узел 122 сети, выполнено с возможностью принимать упомянутую третью компьютерную программу, начинать выполнение упомянутой компьютерной программы после завершения передачи упомянутой компьютерной программы упомянутому устройству, и обрабатывать упомянутые данные.
Это означает, например, что упомянутое устройство, например упомянутый сервер 110, упомянутый первый клиентский компьютер 101, упомянутый первый узел 121 сети или упомянутый второй узел 122 сети, выполнены с возможностью принимать упомянутые наборы данных в заданном первом формате данных и отправлять упомянутые наборы данных в упомянутом заданном втором формате данных, выполняя упомянутую третью компьютерную программу.
Первый способ передачи упомянутых данных через упомянутый первый канал передачи данных в упомянутой глобальной компьютерной сети 100 описывается ниже со ссылкой на блок-схему последовательности операций, изображенную на фиг. 2.
В упомянутом первом способе упомянутое третье приложение, например упомянутая третья компьютерная программа, и упомянутое устройство, на котором упомянутое третье приложение, например упомянутая третья компьютерная программа, может быть развернуто и выполняться для того, чтобы обеспечивать подходящее преобразование между упомянутым первым форматом данных и упомянутым вторым форматом данных, выбирается и передается упомянутому устройству.
В упомянутом первом способе упомянутый mp4-кодер вводится в упомянутый первый канал передачи данных на упомянутом втором узле 122 сети, чтобы предоставлять упомянутый поток данных в формате, который упомянутый первый клиентский компьютер 101 принимает.
Альтернативно упомянутый mp4-кодер может быть введен в упомянутый первый канал передачи данных, чтобы уменьшать требуемую ширину полосы пропускания в сегменте упомянутого первого канала передачи данных, перед отправкой упомянутого потока данных или во время выполнения передачи упомянутого потока данных.
Упомянутый первый способ начинается, когда упомянутое первое сообщение, запрашивающее прием упомянутого потока данных в упомянутом заданном втором формате данных, принимается упомянутым сервером 110. Упомянутое первое сообщение, например, содержит упомянутый запрос приема упомянутого потока данных в упомянутом MPEG-4 видео, предоставленном в упомянутом формате mp4.
Затем выполняется этап 200.
На упомянутом этапе 200 упомянутый заданный первый формат данных для передачи упомянутых данных через упомянутый сегмент упомянутой глобальной компьютерной сети 100 выбирается, в частности, упомянутым сервером 110, из заданных форматов данных. Упомянутый заданный первый формат данных, например, выбирается в зависимости от информации об упомянутых данных или упомянутой глобальной компьютерной сети 100, в частности упомянутых доступных циклах вычислений в секунду на упомянутом устройстве, пропускной способности упомянутого первого канала передачи данных, пропускной способности упомянутых соединений, подходящих, чтобы формировать часть упомянутого первого канала передачи данных, задержке или стоимости. Например, упомянутый формат цифрового видео выбирается в качестве упомянутого заданного первого формата данных, поскольку упомянутый сервер 110 содержит специализированную интегральную схему (ASIC) для обеспечения упомянутого формата цифрового видео. Затем выполняется этап 201.
На упомянутом этапе 201 выполняется тест, чтобы определять, совпадают ли упомянутый заданный первый формат данных и упомянутый заданный второй формат данных. В случае, когда упомянутый заданный первый формат данных и упомянутый заданный второй формат данных совпадают, выполняется этап 220. Иначе выполняется этап 202.
На упомянутом этапе 220 форматы данных совпадают. Следовательно, дополнительная обработка не требуется. В этом случае упомянутое первое приложение, например упомянутая первая компьютерная программа, определяет упомянутый набор данных упомянутого потока данных в упомянутом заданном первом формате данных и отправляет его упомянутому первому клиентскому компьютеру 101 через упомянутый первый узел 121 сети или упомянутый второй узел 122 сети с помощью упомянутого протокола управления передачей/протокола Интернета (TCP/IP) или упомянутого протокола пользовательских дейтаграмм (UDP). Затем выполняется этап 221.
На упомянутом этапе 221 определяется условие прерывания. В случае, когда упомянутое условие прерывания не удовлетворяется, упомянутый этап 220 выполняется, чтобы продолжать передачу упомянутого потока данных. Иначе упомянутый первый способ заканчивается. Упомянутый первый способ заканчивается, например, в любое время, когда запрос отсоединения от упомянутого получателя, например упомянутого первого клиентского компьютера 101, принимается упомянутым сервером 110. Упомянутый запрос отсоединения является, например, упомянутым четвертым сообщением.
На упомянутом этапе 202 упомянутое третье приложение, выполненное с возможностью обрабатывать упомянутые данные, например упомянутая третья компьютерная программа, выбирается из упомянутых заданных приложений, например упомянутых заданных компьютерных программ, в зависимости от упомянутых данных или упомянутой информации об упомянутой глобальной компьютерной сети 100. Упомянутая третья компьютерная программа, например, выбирается упомянутым сервером 110 в зависимости от упомянутой информации об упомянутых данных или упомянутой глобальной компьютерной сети 100. Например, упомянутый mp4-кодер выбирается, поскольку он может определять упомянутый заданный второй формат данных, например упомянутый формат mp4, из входных данных в упомянутом заданном первом формате данных, например формате цифрового видео. Затем выполняется этап 203.
На упомянутом этапе 203 упомянутое устройство в упомянутой конечной точке упомянутого сегмента упомянутого первого канала передачи данных выбирается из заданных устройств упомянутой глобальной компьютерной сети 100 в зависимости от упомянутой информации об упомянутых данных или упомянутой глобальной компьютерной сети 100. Упомянутые заданные устройства упомянутой глобальной компьютерной сети 100 являются, например, упомянутым сервером 110, упомянутым первым клиентским устройством 101, упомянутым первым узлом 121 сети или упомянутым вторым узлом 122 сети. Например, упомянутый второй узел 122 сети выбирается в качестве упомянутого устройства, поскольку число циклов вычислений в секунду, доступных на упомянутом втором узле 122 сети, достаточно для выполнения упомянутого третьего приложения, а пропускная способность соединения между упомянутым сервером 110 и упомянутым вторым узлом 122 сети подходит, чтобы формировать упомянутый сегмент упомянутого первого канала передачи данных, например достаточна для передачи упомянутых наборов данных в упомянутом формате цифрового видео. Затем выполняется этап 204.
На упомянутом этапе 204 упомянутая третья компьютерная программа передается упомянутому устройству, например упомянутому серверу 110, упомянутому первому клиентскому компьютеру 101, упомянутому первому узлу 121 сети или упомянутому второму узлу 122 сети. Например, упомянутая третья компьютерная программа передается упомянутому второму узлу 122 сети, в частности из упомянутого запоминающего устройства в упомянутом сервере 110 или запоминающего устройства, которое соединено с упомянутой глобальной компьютерной сетью 100. Упомянутая передача, например, выполняется с помощью упомянутого второго сообщения, например сообщения PUT протокола передачи гипертекста. Кроме того, выполнение упомянутой компьютерной программы начинается на упомянутом устройстве, в частности после завершения упомянутой передачи. Затем выполняется этап 205.
На упомянутом этапе 205 упомянутое первое приложение, например упомянутая первая компьютерная программа, определяет упомянутый набор данных упомянутого потока данных в упомянутом заданном первом формате данных, например упомянутом формате цифрового видео, и отправляет их упомянутому второму узлу 122 сети. Например, одно изображение (кадр) захватывается упомянутой цифровой видеокамерой и обрабатывается упомянутой специализированной интегральной схемой (ASIC) в упомянутый формат цифрового видео. Затем выполняется этап 206.
На упомянутом этапе 206 упомянутые данные обрабатываются упомянутым устройством посредством выполнения упомянутого третьего приложения, например, упомянутой третьей компьютерной программы. Обработка упомянутых данных, например, означает прием упомянутых наборов данных в упомянутом первом формате данных, определение упомянутых наборов данных в упомянутом втором формате данных и отправку упомянутых наборов данных в упомянутом втором формате данных упомянутому первому клиентскому компьютеру 101. Например, упомянутые данные отправляются в упомянутом втором формате данных посредством выполнения упомянутой третьей компьютерной программы на упомянутом устройстве, например упомянутом втором узле 122 сети. Затем выполняется этап 207.
На упомянутом этапе 207 определяется упомянутое заданное условие. В случае, когда упомянутое заданное условие не удовлетворяется, выполняется этап 208. Иначе, т.е. если упомянутое заданное условие удовлетворяется, выполняется упомянутый этап 202. Упомянутое заданное условие, например, удовлетворяется, если упомянутое число доступных в текущий момент циклов вычислений в секунду на упомянутом устройстве падает ниже упомянутого заданного порогового значения, например 10 миллионов инструкций в секунду (MIPS).
На упомянутом этапе 208 определяется условие прерывания. В случае, когда упомянутое условие прерывания не удовлетворяется, упомянутый этап 205 выполняется, чтобы продолжать передачу упомянутого потока данных. Иначе при необходимости выполняется этап 209. Упомянутым условием прерывания является, например, запрос отсоединения от упомянутого получателя, например упомянутого первого клиентского компьютера 101, который принимается упомянутым сервером 110. Упомянутым запросом отсоединения является, например, упомянутое четвертое сообщение, например сообщение GET протокола передачи гипертекста, указывающее запрос прекращения передачи упомянутых данных.
На упомянутом этапе 209 при необходимости упомянутый сервер 110 отправляет упомянутый запрос удаления упомянутого третьего приложения, например упомянутой третьей компьютерной программы, упомянутому устройству. Например, упомянутый сервер 110 отправляет упомянутое пятое сообщение, например упомянутое сообщение DELETE протокола передачи гипертекста, указывающее запрос удаления упомянутого третьего приложения, упомянутому устройству. Затем при необходимости выполняется этап 210.
На упомянутом этапе 210 при необходимости упомянутое третье приложение, например упомянутая третья компьютерная программа, удаляется из упомянутого устройства, например, посредством упомянутого устройства при приеме упомянутого пятого сообщения. После этого упомянутый первый способ заканчивается.
Дополнительно, перед тем как упомянутый поток данных начинается, сообщения для настройки упомянутого устройства, упомянутого получателя, например упомянутого первого клиентского компьютера 101 или упомянутого источника, например упомянутого сервера 110, или любого другого узла сети упомянутого глобальной компьютерной сети 100, может быть отправлено. Например, сообщения по протоколу передачи гипертекста могут быть отправлены, чтобы настраивать упомянутое первое приложение, упомянутое второе приложение, упомянутое третье приложение или соответствующие компьютерные программы с соответствующими параметрами.
В модификации упомянутого первого способа, во время отправки упомянутых наборов данных на упомянутых этапах 220 или 205, упомянутая глобальная компьютерная сеть 100 наблюдается, например, посредством упомянутого сервера 110, чтобы собирать упомянутую информацию об упомянутой глобальной компьютерной сети 100.
Из упомянутой информации об упомянутых данных или упомянутой глобальной компьютерной сети 100 упомянутое заданное условие определяется посредством упомянутого сервера 110. Например, число доступных в текущий момент циклов вычислений в секунду устройств в упомянутом первом канале передачи данных между упомянутым сервером 110 и упомянутым первым клиентским компьютером 101 наблюдается и в реальном времени сравнивается с упомянутым заданным пороговым значением, например 10 миллионов инструкций в секунду (MIPS).
В этом случае, если упомянутые доступные циклы вычислений в секунду упомянутых устройств падают ниже упомянутого заданного порогового значения, упомянутое заданное условие удовлетворяется, и упомянутый этап 202 выполняется.
Таким образом, упомянутая третья компьютерная программа переносится на наиболее подходящее устройство в упомянутой глобальной компьютерной сети 100, пока в то же время отправка упомянутого потока данных продолжается.
Это означает, что непрерывная передача данных из упомянутого потока данных управляется в реальном времени посредством адаптации упомянутого первого канала передачи данных к изменениям в упомянутой глобальной компьютерной сети 100.
В упомянутом первом примере потеря качества (меньшее разрешение или пропуски кадров) может быть приемлемой, но видео должно быть доставлено. Для того чтобы выполнить это, упомянутый сервер 110 будет определять, какие альтернативные форматы данных подходят для доставки получателю. На основе упомянутой информации об упомянутой глобальной компьютерной сети 100, собранной посредством наблюдения, упомянутая третья компьютерная программа выполнена таким образом, чтобы удовлетворять требованиям или не превышать ограничения упомянутых заданных устройств или сегментов упомянутого первого канала передачи данных.
В упомянутом первом примере упомянутый поток данных может быть отправлен упомянутому первому клиентскому компьютеру 101 в упомянутом втором формате данных, например упомянутом формате mp4, поскольку упомянутый первый клиентский компьютер 101 запросил упомянутый поток данных в упомянутом втором формате данных. Это означает, что в упомянутом первом примере упомянутый mp4-кодер может быть помещен в любой узел сети в упомянутой глобальной компьютерной сети 100 или на упомянутый сервер 110.
В упомянутом первом примере циклы вычислений в секунду, доступные на упомянутом сервере 110, были ограничены, и, следовательно, упомянутый второй узел 122 сети был выбран в качестве упомянутого устройства. При необходимости в случае, когда упомянутый сервер 110 имеет соответствующий блок обработки, чтобы уменьшать расходование полосы пропускания во всем первом канале передачи данных, упомянутый mp4-кодер может выполняться на упомянутом сервере 110 посредством выбора упомянутого сервера 110 в качестве упомянутого устройства.
Второй пример, использующий упомянутый единственный источник, например упомянутый сервер 110, и два получателя, например упомянутый первый клиентский компьютер 101 и второй клиентский компьютер 102, описывается ниже, со ссылкой на фиг. 3. Фиг. 3 показывает вторую часть упомянутой глобальной компьютерной сети 100.
Упомянутый второй клиентский компьютер 102 имеет, например, признаки, соответствующие признакам упомянутого первого клиентского компьютера 101, которые описаны выше.
Дополнительно упомянутый сервер 110 должен принимать и обрабатывать сообщения, соответствующие сообщениям, которые принимаются от упомянутого первого клиентского компьютера 101, от упомянутого второго клиентского компьютера 102.
Дополнительно упомянутый сервер 110 должен определять и отправлять сообщения, соответствующие сообщениям, которые отправляются упомянутому первому клиентскому компьютеру 101, упомянутому второму клиентскому компьютеру 102.
Упомянутая вторая часть упомянутой глобальной компьютерной сети 100 содержит упомянутую первую часть упомянутой глобальной компьютерной сети 100, которая описана в упомянутом первом примере, и дополнительно упомянутый второй клиентский компьютер 102.
Упомянутый второй клиентский компьютер 102 и упомянутый сервер 110 соединены через второй канал передачи данных. Упомянутый второй канал передачи данных содержит сегменты. Конечные точки упомянутых сегментов являются устройствами, например упомянутым сервером 110, упомянутым вторым клиентским компьютером 102, упомянутым первым узлом 121 сети или упомянутым вторым узлом 122 сети. Упомянутые сегменты упомянутого второго канала передачи данных являются соединениями между упомянутыми устройствами, например упомянутыми оптическими волокнами, упомянутыми беспроводными линиями связи или упомянутыми медными проводами, включающими в себя соответствующие электронные схемы для их работы. Упомянутые данные передаются по упомянутому второму каналу передачи данных с помощью упомянутых протоколов передачи, например хорошо известного протокола управления передачей/протокола Интернета (TCP/IP). Любой другой тип проводных или беспроводных каналов связи, например, по протоколу пользовательских дейтаграмм (UDP), Ethernet или стандарту IEEE 802.11, может также быть использован.
При необходимости упомянутый первый клиентский компьютер 101 и упомянутый второй клиентский компьютер 102 также могут быть соединены друг с другом напрямую.
Упомянутый первый узел 121 сети, упомянутый второй узел 122 сети, упомянутый сервер 110, упомянутый первый клиентский компьютер 101 или упомянутый второй клиентский компьютер 102 могут быть соединены друг с другом напрямую или опосредованно.
Согласно упомянутому второму примеру упомянутый первый клиентский компьютер 101 запрашивает упомянутый поток данных в упомянутом втором формате данных, например упомянутом формате mp4, а упомянутый второй клиентский компьютер запрашивает упомянутый поток данных в упомянутом первом формате данных, например упомянутом формате цифрового видео.
Вместо упомянутого сервера 110, отправляющего два различных потока данных (один в каждом из запрашиваемых форматов), упомянутый поток данных может быть отправлен из упомянутого сервера 110 упомянутому устройству в одном из запрашиваемых форматов данных и отправлен из упомянутого устройства в двух потоках данных (один в каждом из запрашиваемых форматов).
Для этого упомянутый сервер 110 выполнен с возможностью выбирать из упомянутых заданных устройств устройство, которое расположено оптимально в упомянутой глобальной компьютерной сети 100, для обработки упомянутой третьей компьютерной программы и для начала отправки двух потоков данных.
Чтобы различать получателей, упомянутый заголовок упомянутых наборов данных может содержать дополнительную информацию, идентифицирующую более чем одного получателя, например содержать адреса по протоколу Интернета упомянутого первого клиентского компьютера 101 и упомянутого второго клиентского компьютера 102, и информацию о формате данных для использования наборов данных, отправленных каждому из упомянутых получателей.
Упомянутые заданные устройства имеют те же признаки, что и описанные в упомянутом первом примере. Кроме того, некоторые или все из упомянутых заданных устройств могут содержать первый выходной буфер для хранения упомянутого первого набора данных в упомянутом первом формате данных и второго набора данных в упомянутом втором формате данных.
Упомянутый сервер 110, например, выполнен с возможностью использовать функцию стоимости, рассматривающую упомянутую информацию об упомянутых данных или упомянутой глобальной компьютерной сети 100, например циклы вычислений в секунду, доступные на упомянутых устройствах, ширина полосы пропускания, доступная на упомянутых соединениях, подходящих, чтобы формировать сегменты упомянутого первого канала передачи данных или упомянутого второго канала передачи данных, задержка или стоимость могут быть использованы, чтобы выбирать упомянутое устройство из упомянутых заданных устройств, которое оптимально для обработки упомянутого третьего приложения или упомянутой третьей компьютерной программы, например упомянутого mp4-кодера.
Упомянутые заданные приложения, например упомянутые заданные компьютерные программы, согласно упомянутому второму примеру имеют те же признаки, что и описанные в упомянутом первом примере. Дополнительно одно или более упомянутых заданных приложений или заданных компьютерных программ могут быть выполнены с возможностью только пересылать упомянутые наборы данных более чем одному получателю, например упомянутому первому клиентскому компьютеру 101 и упомянутому втором клиентскому компьютеру 102.
Дополнительно некоторые или все упомянутые заданные приложения, например упомянутые заданные компьютерные программы, выполнены с возможностью обрабатывать упомянутый заголовок, чтобы идентифицировать упомянутых более чем одного получателей. Дополнительно некоторые или все упомянутые заданные приложения, например упомянутые заданные компьютерные программы, выполнены с возможностью обрабатывать упомянутый заголовок, чтобы идентифицировать упомянутую информацию о формате данных для использования наборов данных, отправленных каждому из упомянутых получателей, и чтобы отправлять упомянутые наборы данных соответствующему получателю, использующему соответствующий формат данных.
Второй способ передачи упомянутых данных описывается ниже, со ссылкой на фиг. 4.
Упомянутый второй способ начинается, например, в случае, когда упомянутое первое сообщение, запрашивающее упомянутый поток данных в упомянутом заданном первом формате данных, например формате mp4, принимается упомянутым сервером 110 от упомянутого первого клиентского компьютера 101, в то время как упомянутый сервер 110 уже отправляет наборы данных из упомянутого потока данных в упомянутом заданном втором формате данных, например формате цифрового видео, упомянутому второму клиентскому компьютеру 102.
После начала выполняется этап 400.
На упомянутом этапе 400 заданный третий формат данных, наиболее подходящий для передачи упомянутых данных через упомянутый сегмент упомянутой глобальной компьютерной сети 100 упомянутому устройству, выбирается, в частности, посредством упомянутого сервера 110, из упомянутых заданных форматов данных. Упомянутый заданный третий формат данных, например, выбирается в зависимости от информации об упомянутых данных или упомянутой глобальной компьютерной сети 100, в частности доступных циклах вычислений в секунду, пропускной способности упомянутого первого канала передачи данных, пропускной способности упомянутых соединений, подходящих, чтобы формировать часть упомянутого первого канала передачи данных, задержке или стоимости. Например, упомянутый формат цифрового видео выбирается в качестве упомянутого заданного третьего формата данных, поскольку упомянутый сервер 110 содержит специализированную интегральную схему (ASIC) для обеспечения упомянутого формата цифрового видео. Затем выполняется этап 401.
На упомянутом этапе 401 упомянутое третье приложение, выполненное с возможностью обрабатывать упомянутые данные, например упомянутая третья компьютерная программа, выбирается из упомянутых заданных приложений, например упомянутых заданных компьютерных программ, в зависимости от упомянутых данных или упомянутой информации об упомянутой глобальной компьютерной сети 100. Упомянутая третья компьютерная программа, например, выбирается упомянутым сервером 110 в зависимости от упомянутой информации об упомянутых данных или упомянутой глобальной компьютерной сети 100. Например, упомянутый mp4-кодер выбирается, поскольку он может пересылать упомянутые наборы данных в упомянутом втором формате данных, например упомянутом формате цифрового видео, и определять упомянутые наборы данных в упомянутом заданном втором формате данных, например упомянутом формате mp4, из входных данных в упомянутом заданном третьем формате данных, например формате цифрового видео. Затем выполняется этап 402.
На упомянутом этапе 402 упомянутое устройство в упомянутой конечной точке упомянутого сегмента упомянутого первого канала передачи данных выбирается из заданных устройств упомянутой глобальной компьютерной сети 100 в зависимости от упомянутой информации об упомянутых данных или упомянутой глобальной компьютерной сети 100. Упомянутые заданные устройства упомянутой глобальной компьютерной сети 100 являются, например, упомянутым сервером 110, упомянутым первым клиентским устройством 101, упомянутым первым узлом 121 сети или упомянутым вторым узлом 122 сети. Например, упомянутый второй узел 122 сети выбирается в качестве упомянутого устройства, поскольку число циклов вычислений в секунду, доступных на упомянутом втором узле 122 сети, достаточно для выполнения упомянутого третьего приложения, а пропускная способность соединения между упомянутым сервером 110 и упомянутым вторым узлом 122 сети подходит для передачи упомянутых наборов данных в упомянутом третьем формате данных, например упомянутом формате цифрового видео. Затем выполняется этап 403.
На упомянутом этапе 403 упомянутая третья компьютерная программа передается упомянутому устройству, например, как описано на этапе 204 упомянутого первого способа. Затем выполняется этап 404.
На упомянутом этапе 404 упомянутое первое приложение, например упомянутая первая компьютерная программа, определяет упомянутый набор данных из упомянутого потока данных в упомянутом заданном третьем формате данных, например упомянутом формате цифрового видео, и отправляет их упомянутому второму узлу 122 сети. Например, одно изображение (кадр) захватывается упомянутой цифровой видеокамерой и обрабатывается упомянутой специализированной интегральной схемой (ASIC) в упомянутый формат цифрового видео. Затем выполняется этап 405.
На упомянутом этапе 405 упомянутые данные обрабатываются упомянутым устройством посредством выполнения упомянутого третьего приложения, например упомянутой третьей компьютерной программы. Обработка упомянутых данных, например, означает прием упомянутых наборов данных в упомянутом третьем формате данных, анализ упомянутого заголовка, чтобы определять, какой формат данных для какого получателя использовать, определение упомянутых наборов данных в упомянутом первом формате данных и упомянутом втором формате данных и отправку упомянутых наборов данных упомянутому первому клиентскому компьютеру 101 в упомянутом втором формате данных и упомянутому второму клиентскому компьютеру 102 в упомянутом первом формате данных. Затем выполняется этап 406.
На упомянутом этапе 406 определяется упомянутое заданное условие. В случае, когда упомянутое заданное условие не удовлетворяется, выполняется этап 407. Иначе, т.е. если упомянутое заданное условие удовлетворяется, выполняется упомянутый этап 400. Упомянутое заданное условие, например, удовлетворяется, если упомянутое число циклов вычислений в секунду, доступных на упомянутом устройстве, падает ниже упомянутого заданного порогового значения, например 10 миллионов инструкций в секунду (MIPS).
На упомянутом этапе 407 определяется условие прерывания. В случае, когда упомянутое условие прерывания не удовлетворяется, упомянутый этап 404 выполняется, чтобы продолжать передачу упомянутого потока данных. Иначе при необходимости выполняется этап 408. Упомянутым условием прерывания является, например, запрос отсоединения от одного из упомянутых получателей, например упомянутого первого клиентского компьютера 101 или упомянутого второго клиентского компьютера 102, который принимается упомянутым сервером 110. Упомянутым запросом отсоединения является, например, упомянутое четвертое сообщение, например сообщение GET протокола передачи гипертекста, указывающее запрос прекращения передачи упомянутых данных.
На упомянутом этапе 408 при необходимости упомянутый сервер 110 отправляет упомянутый запрос удаления упомянутого третьего приложения, например упомянутой третьей компьютерной программы, упомянутому устройству. Например, упомянутый сервер 110 отправляет упомянутое пятое сообщение, например упомянутое сообщение DELETE протокола передачи гипертекста, указывающее запрос удаления упомянутого третьего приложения, упомянутому устройству. Затем при необходимости выполняется этап 409.
На упомянутом этапе 409 при необходимости упомянутое третье приложение, например упомянутая третья компьютерная программа, удаляется из упомянутого устройства, например, посредством упомянутого устройства при приеме упомянутого пятого сообщения. После этого упомянутый второй способ заканчивается.
В случае, когда используется множество серверов или множество получателей упомянутого потока данных, упомянутые способы применяются аналогично для отдельных устройств, каналов передачи данных и форматов данных.
Упомянутое третье приложение может выполняться на любом узле сети или на упомянутом одном или множестве источников или на упомянутом одном или множестве получателей, выполненных с возможностью выполнения упомянутого третьего приложения.
Упомянутое третье приложение может быть использовано в случае, когда упомянутые форматы данных, используемые в упомянутом одном или более источниках и упомянутом одном или более получателях, являются различными, или чтобы выполнять эффективное распределение данных.
В случае, когда различные получатели запрашивают различные форматы данных, для преобразования в запрашиваемые форматы данных любое требуемое число третьих приложений может выполняться на любом из упомянутых узлов сети, или одном или более источниках, или одном или более получателях.
В качестве альтернативы, отдельный сервер в упомянутой глобальной компьютерной сети может использоваться для выбора упомянутого третьего приложения, например упомянутую третьей компьютерной программы или упомянутого устройства.
В качестве альтернативы, упомянутая первая компьютерная программа или упомянутая вторая компьютерная программа также могут быть выбраны в зависимости от упомянутых данных или упомянутой информации об упомянутой глобальной компьютерной сети.
Вышеупомянутые способы могут быть объединены, чтобы дополнительно увеличивать гибкость упомянутого управления упомянутой потоковой передачей данных.
Упомянутые способы могут быть реализованы как компьютерная программа или могут быть сохранены как компьютерная программа на машиночитаемом носителе.
Описание и чертежи просто иллюстрируют принципы изобретения. Таким образом, следует принимать во внимание, что специалисты в данной области техники должны иметь возможность разрабатывать различные компоновки, которые, хотя не описаны или показаны явно в данном документе, осуществляют принципы изобретения и включаются в его дух и область применения. Кроме того, все примеры, изложенные в настоящем документе, принципиально предназначены явным образом только для педагогических целей, чтобы помочь читателю в понимании принципов изобретения и концепций, вносимых автором(ами) изобретения для совершенствования области техники, и должны трактоваться как не ограничивающиеся такими конкретно изложенными примерами и условиями. Более того, подразумевается, что все формулировки в данном документе, перечисляющие принципы, аспекты и варианты осуществления изобретения, также как и конкретные их примеры, также охватывают их эквиваленты.
Функции различных элементов, показанных на чертежах, включающих в себя все функциональные блоки, отмеченные как «процессоры», могут предоставляться с помощью специализированных аппаратных средств, а также аппаратных средств, допускающих выполнение программного обеспечения, в ассоциации с надлежащим программным обеспечением. Когда предоставляются посредством процессора, функции могут предоставляться посредством одного выделенного процессора, посредством одного совместно используемого процессора или посредством множества отдельных процессоров, некоторые из которых могут совместно использоваться. Более того, явное использование термина «процессор» или «контроллер» не должно истолковываться как подразумевающее исключительно аппаратные средства, способные выполнять программное обеспечение, и может неявно включать в себя, без ограничения, аппаратные средства цифрового сигнального процессора (DSP), сетевой процессор, специализированную интегральную схему (ASIC), программируемую вентильную матрицу (FPGA), постоянное запоминающее устройство (ROM) для хранения программного обеспечения, оперативное запоминающее устройство (RAM) и энергонезависимое запоминающее устройство. Другие аппаратные средства, общепринятые и/или специальные, также могут быть включены. Аналогично, любые переключатели, показанные на чертежах, являются лишь концептуальными. Их функция может выполняться посредством операции программной логики, посредством специализированной логической схемы, посредством взаимодействия программного управления и специализированной логической схемы или даже вручную, при этом конкретную методику выбирает средство реализации, как более четко ясно из контекста.
Должно быть понятно специалистам в данной области техники, что любые блок-схемы в данном документе, представляют концептуальные виды иллюстративной электрической схемы, осуществляющей принципы изобретения. Аналогично, будет понятно, что любые блок-схемы, принципиальные схемы, диаграммы перехода состояний, псевдокод и т.п. представляют различные процессы, которые могут быть по существу представлены на машиночитаемом носителе и таким образом выполняются компьютером или процессором, вне зависимости от того, показан ли такой компьютер или процессор явным образом или нет.
Специалист в данной области техники легко поймет, что этапы различных вышеописанных способов могут быть выполнены посредством запрограммированных компьютеров. В данном документе также подразумевается, что некоторые варианты осуществления охватывают устройства хранения программ, например цифровые носители данных, которыми являются машиночитаемые или считаемые компьютером и кодирующие машиноисполняемые или исполняемые компьютером программы инструкций, при этом упомянутые инструкции выполняют некоторые или все из этапов упомянутых вышеописанных способов. Устройства хранения программ могут быть, например, цифровыми запоминающими устройствами, магнитными носителями хранения, такими как магнитные диски и магнитные ленты, накопителями на жестких дисках или оптически-читаемыми цифровыми носителями хранения данных. Также подразумевается, что варианты осуществления охватывают компьютеры, запрограммированные, чтобы выполнять упомянутые этапы вышеописанных способов.
Изобретение относится к способу и устройству для передачи данных в компьютерной сети. Техническим результатом является обеспечение возможности удовлетворения запросов на данные в различных форматах данных. В заявленном способе устройство в конечной точке сегмента упомянутого канала передачи данных выбирают (203) из устройств упомянутой компьютерной сети (100). Компьютерную программу, выполненную с возможностью обработки упомянутых данных, передают (204) упомянутому устройству, и упомянутые данные обрабатывают (206) посредством упомянутого устройства посредством выполнения упомянутой компьютерной программы, причем при завершении передачи упомянутой компьютерной программы упомянутые данные передают упомянутому устройству в упомянутом первом формате данных и от упомянутого устройства упомянутому получателю во втором формате данных. 2 н. и 7 з.п. ф-лы, 4 ил.
1. Способ передачи данных через канал передачи данных в компьютерной сети (100), причем упомянутые данные отправляют через упомянутый канал передачи данных от источника к получателю в первом формате данных, отличающийся тем, что устройство в конечной точке сегмента упомянутого канала передачи данных выбирают (203) из устройств упомянутой компьютерной сети (100), компьютерную программу, выполненную с возможностью обработки упомянутых данных, передают (204) упомянутому устройству, и упомянутые данные обрабатывают (206) посредством упомянутого устройства посредством выполнения упомянутой компьютерной программы, причем при завершении передачи упомянутой компьютерной программы упомянутые данные передают упомянутому устройству в упомянутом первом формате данных и от упомянутого устройства упомянутому получателю во втором формате данных, и при этом упомянутую компьютерную программу передают упомянутому устройству посредством сервера при приеме запроса на прием упомянутых данных во втором формате данных.
2. Способ по п.1, в котором формат данных для передачи упомянутых данных через упомянутый сегмент выбирают (200), в частности, посредством сервера, из заданных форматов данных в зависимости от информации об упомянутой компьютерной сети, в частности производительности обработки, пропускной способности каналов передачи данных, задержки или стоимости, при этом упомянутая компьютерная программа выполнена с возможностью отправки упомянутых данных в упомянутом формате данных, и упомянутые данные отправляют в упомянутом формате данных посредством выполнения упомянутой компьютерной программы в упомянутом устройстве.
3. Способ по п.1, в котором упомянутую компьютерную программу выбирают (202) из заданных компьютерных программ, в частности, посредством сервера, в зависимости от информации об упомянутой компьютерной сети, в частности производительности обработки, пропускной способности каналов передачи данных, задержки или стоимости.
4. Способ по п.1, в котором упомянутое устройство выбирают (203), в частности, посредством сервера, в зависимости от информации об упомянутой компьютерной сети, в частности производительности обработки, пропускной способности каналов передачи данных, задержки или стоимости.
5. Способ по п.1, в котором, если выполняется (207) заданное условие, упомянутую компьютерную программу передают упомянутому устройству, в частности, из запоминающего устройства, выполнение упомянутой компьютерной программы начинается на упомянутом устройстве, в частности, при завершении упомянутой передачи, упомянутые данные определяют посредством упомянутой компьютерной программы, и упомянутые данные отправляют из упомянутого устройства.
6. Способ по п.1, в котором упомянутые данные передают упомянутому устройству в упомянутом заданном первом формате данных, упомянутые данные передают из упомянутого устройства в упомянутом заданном первом формате данных и упомянутом заданном втором формате данных, и упомянутая компьютерная программа выполнена с возможностью приема упомянутых данных в упомянутом заданном первом формате данных и определения упомянутых данных в упомянутом заданном первом формате данных и упомянутом заданном втором формате данных.
7. Способ по п.1, в котором упомянутое устройство или упомянутую компьютерную программу выбирают в зависимости от информации об упомянутых данных.
8. Сервер для передачи данных через канал передачи данных в компьютерной сети (100), причем упомянутые данные отправляют через упомянутый канал передачи данных от источника получателю в первом формате данных, отличающийся тем, что упомянутый сервер выполнен с возможностью выбора (203) устройства в конечной точке сегмента упомянутого канала передачи данных из заданных устройств упомянутой компьютерной сети, передачи (204) компьютерной программы, выполненной с возможностью обработки (206) упомянутых данных, в частности отправки упомянутых данных в заданном формате данных упомянутому устройству, причем при завершении передачи упомянутой компьютерной программы упомянутый сервер выполнен с возможностью передачи упомянутых данных упомянутому устройству в упомянутом первом формате данных и при этом упомянутый сервер выполнен с возможностью передачи упомянутой компьютерной программы упомянутому устройству при приеме запроса на прием упомянутых данных во втором формате данных.
9. Сервер по п.8, при этом упомянутый сервер выполнен с возможностью определения, выполняется ли заданное условие, и передачи (204) упомянутой компьютерной программы упомянутому устройству, если упомянутое заданное условие выполняется.
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Кипятильник для воды | 1921 |
|
SU5A1 |
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
Авторы
Даты
2015-01-10—Публикация
2011-05-06—Подача