RU2504829C2 - Системы и способы для управления мультимедийными операциями в удаленных сеансах - Google Patents

Системы и способы для управления мультимедийными операциями в удаленных сеансах Download PDF

Info

Publication number
RU2504829C2
RU2504829C2 RU2010140138/08A RU2010140138A RU2504829C2 RU 2504829 C2 RU2504829 C2 RU 2504829C2 RU 2010140138/08 A RU2010140138/08 A RU 2010140138/08A RU 2010140138 A RU2010140138 A RU 2010140138A RU 2504829 C2 RU2504829 C2 RU 2504829C2
Authority
RU
Russia
Prior art keywords
media
client
platform
server
specific
Prior art date
Application number
RU2010140138/08A
Other languages
English (en)
Other versions
RU2010140138A (ru
Inventor
Раджниш МАХАДЖАН
Владимир СТОЯНОВ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2010140138A publication Critical patent/RU2010140138A/ru
Application granted granted Critical
Publication of RU2504829C2 publication Critical patent/RU2504829C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Изобретение относится к средствам управления мультимедийными операциями в удаленных сеансах. Технический результат заключается в повышении эффективности обмена данными между сервером и клиентом. Обеспечивают сеанс совместной работы с клиентом, имеющим клиентскую медиаплатформу, специфичную для этого клиента, при этом сеанс совместной работы включает в себя первый канал связи, в котором передаются мультимедийные данные для медиакомпонента, и второй канал связи, в котором в клиент передается компонент пользовательского интерфейса. Принимают от клиента серверные команды воспроизведения мультимедийных данных, соответствующие серверной медиаплатформе, специфичной для сервера. Переводят серверные команды воспроизведения мультимедийных данных, соответствующие серверной медиаплатформе, специфичной для сервера, в общие для платформ команды воспроизведения мультимедийных данных для передачи в клиент. Передают общие для платформ команды воспроизведения мультимедийных данных в клиент, при этом клиент переводит общие для платформ команды воспроизведения мультимедийных данных в клиентские команды воспроизведения мультимедийных данных, соответствующие клиентской медиаплатформе, специфичной для данного клиента. 3 н. и 16 з.п. ф-лы, 6 ил.

Description

Уровень техники
Удаленный сеанс, который может включать в себя сеансы совместной работы, может обеспечить взаимодействие с дистанционной связью между локальным компьютером и удаленным компьютером. Совместная работа может предполагать восстановление внешнего вида части или всего графического интерфейса пользователя локального компьютера на удаленном компьютере. Графический интерфейс пользователя может быть восстановлен на удаленном компьютере с помощью одной или более методик, таких как дистанционирование. Сеансы совместной работы, которые в конечном итоге восстанавливаются на удаленном компьютере, могут управляться одним или более параметрами, которые могут быть ассоциированы с частью локального компьютера, восстанавливаемой на удаленном компьютере.
Стандартным примером сеанса совместной работы могут быть операции, относящиеся к медиаоперациям для воспроизведения мультимедийных файлов. Методики дистанционирования таких сеансов могут подразумевать передачу медиаданных от локального компьютера к удаленному компьютеру. Медиаданные могут включать в себя данные, ассоциированные с мультимедийными файлами, которые предназначены для воспроизведения, обработку данных, воспроизведение данных и т.д. Мультимедийные файлы на локальном компьютере могут удаленно воспроизводиться на удаленном компьютере посредством дистанционирования медиаданных на удаленный компьютер. Медиаданные, вместо того чтобы воспроизводиться на локальном компьютере, воспроизводятся на удаленном компьютере.
Сущность изобретения
Эта сущность предоставляется для того, чтобы ввести общие принципы управления мультимедийными операциями в сеансах удаленной связи. Эти принципы далее описываются ниже в подробном описании. Эта сущность не предназначена для установления существенных признаков заявленного предмета изобретения, не предназначена она и для использования в определении объема заявленного предмета изобретения.
Краткое описание чертежей
Подробное описание описывается со ссылкой на прилагаемые чертежи. На чертежах крайняя левая цифра(ы) позиции обозначает чертеж, на котором позиция впервые появляется. Одни и те же числа используются на всех чертежах для ссылки на подобные признаки и компоненты.
Фиг.1 - это блок-схема, иллюстрирующая типовую сеть для управления мультимедийными операциями в сеансе совместной работы.
Фиг.2 - это схема последовательности операций, иллюстрирующая управление мультимедийными операциями в сеансе совместной работы в сети с использованием компьютеров.
Фиг.3 - это типовая иллюстрация таблиц отображения для управления мультимедийными операциями в сеансе совместной работы.
Фиг.4 - это блок-схема, иллюстрирующая один или более типичных компонентов медиаплатформы.
Фиг.5 - это блок-схема последовательности операций, иллюстрирующая типовой процесс управления мультимедийными операциями в сеансе совместной работы.
Фиг.6 - это блок-схема, иллюстрирующая типовое общее окружение компьютера.
Подробное описание
Способы и системы, описанные ниже, относятся к сеансам совместной работы и обработке операций медиавоспроизведения в сеансах совместной работы. Сеансы совместной работы могут обеспечить дистанционное взаимодействие между клиентским компьютером (в дальнейшем «клиентом») и серверным компьютером (в дальнейшем «сервером»). Совместная работа может подразумевать представление части или всего серверного графического интерфейса пользователя (ГИП) на клиенте. В некоторых сценариях совместной работы медиаоперации, такие как команды медиавоспроизведения, можно обрабатывать отдельно от остального ГИП по ряду причин. Например, команды медиавоспроизведения могут обрабатываться отдельно для сохранения пропускной способности сети между сервером и клиентом. В таких случаях медиаданные могут быть перенаправлены от сервера к клиенту в необработанном или частично обработанном виде. Клиент может затем обработать медиаданные и присоединить обработанные медиаданные к остальному ГИП для создания представления серверного ГИП.
Медиаданные или медиафайлы могут сохраняться в соответствии с различными форматами, такими как форматы в соответствии с MPEG и т.д., среди прочих. Обработка медиафайлов может выполняться устройством воспроизведения медиаданных (медиаплеером), который применяет одну или более медиаплатформ, сконфигурированных для обработки формата медиафайла. Обработка медиаданных может предполагать медиаоперации, такие как команды медиавоспроизведения. Такие медиаоперации могут быть зависящими от платформы. В сценарии совместной работы клиент и сервер могут поддерживать или не поддерживать одинаковые медиаплатформы. Например, команды медиавоспроизведения, заданные для медиаплатформы, поддерживаемой на сервере, могут быть лишены смысла для медиаплатформы, поддерживаемой на клиенте.
Примеры осуществлений могут предоставить абстрактные выполняемые функции, разрешающие эффективно проводить медиаоперации в сеансе совместной работы между сервером и клиентом. Например, абстракция медиаопераций может облегчить исполнение пользовательской команды медиавоспроизведения в сеансе совместной работы. В таких случаях некоторые осуществления могут перевести команду медиавоспроизведения сервера, зависящую от платформы, в обобщенную команду медиавоспроизведения. Обобщенная команда медиавоспроизведения может затем быть переведена в зависящую от платформы команду медиавоспроизведения для медиаплатформы, поддерживаемой на клиенте. Клиент может затем исполнить команду медиавоспроизведения и присоединить результаты к остальному ГИП клиента.
В одном варианте осуществления медиаданные посылаются клиенту для обработки, вместо того чтобы обрабатываться на сервере, команды, зависящие от платформы, могут улавливаться на сервере. Как обсуждалось, сервер и клиент могут иметь или не иметь одинаковые платформы. Соответственно, команды, зависящие от серверной платформы, могут не быть поняты клиентом. Настоящие варианты осуществления могут облегчить эффективный обмен данными между сервером и клиентом, так что команды медиавоспроизведения пользователя являются исполнимыми на клиенте, независимо от платформ, применяемых на сервере и клиенте. Например, некоторые из настоящих осуществлений могут переводить команды, специфичные для платформы сервера, в обобщенные команды медиавоспроизведения. Обобщенные команды медиавоспроизведения могут затем посылаться клиенту. Клиент может преобразовать обобщенные команды в команды, которые являются специфичными для платформы, поддерживаемой клиентом. Платформа клиента может затем обработать команды для достижения желаемого эффекта (т.е. играть, сделать паузу, остановиться и т.д.) на клиентском устройстве.
Типовые системы
Фиг.1 иллюстрирует типовую систему 100 для осуществления сеансов совместной работы и для обработки медиаопераций в этих сеансах совместной работы. Система 100 может включать в себя сервер 102, связанный с клиентом 104 посредством сети 106. Рабочий стол 110 сервера может быть отображен на сервере 102. Аналогично, рабочий стол 112 клиента может быть отображен на клиенте 104.
Описанные осуществления находятся в контексте вычислительной среды как повсеместно встречающиеся в настоящий момент времени. Различные примеры могут быть осуществлены с помощью выполняемых компьютером команд или кодовых средств, таких как программные модули, которые выполняются компьютером, таким как персональный компьютер, или ПК. Обычно программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или внедряют конкретные абстрактные типы данных.
Различные примеры могут быть осуществлены в системных конфигурациях компьютера, помимо ПК. Например, различные варианты осуществления могут быть реализованы в портативных устройствах, мультипроцессорных системах, микропроцессорной или программируемой бытовой электронной аппаратуре, сетевых ПК, мини-компьютерах, универсальных вычислительных машинах, сотовых телефонах и т.п. Также, по мере того как технология продолжает развиваться, различные осуществления могут быть реализованы на классах устройств, которые еще предстоит обнаружить. Например, по мере того как цена единицы вычислительной мощности продолжает падать и беспроводные технологии расширяются, вычислительные устройства, напоминающие сегодняшние сотовые телефоны, смогут выполнять функции сегодняшнего ПК, видеокамеры, сотового телефона и не только, в едином мобильном устройстве. Это единое устройство может в одном сценарии действовать как сервер и в другом сценарии действовать как клиент. Это только один из многих существующих и развивающихся примеров для описанных осуществлений.
Различные примеры могут осуществляться на практике в распределенных вычислительных средах, где задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть передачи данных. В распределенной вычислительной среде программные модули могут быть расположены как в локальных, так и в удаленных устройствах хранилищ памяти. Далее, термины «сервер» и «клиент», как они используются здесь, не соотносятся с какими-либо относительными возможностями этих двух устройств. Клиент может иметь больше, меньше или одинаковые обрабатывающие возможности, что и сервер. Точнее, в этом описании названия «сервер» и «клиент» описывают относительное соотношение этих двух компонентов. Например, вычислительная среда первого, или серверного, устройства дистанционирована ко второму, или клиентскому, устройству. Для удобства объяснения примеры, предоставленные в этом документе, относятся к одному серверу и одному клиенту; однако это только одна потенциальная конфигурация. Следует понимать, что другие осуществления могут включать в себя один или более серверов, поддерживающих многочисленных клиентов. В некоторых осуществлениях первый компьютер может действовать как сервер для второго компьютера, который действует как сервер для третьего компьютера.
Как обсуждалось, сеансы совместной работы могут обеспечить дистанционное взаимодействие между сервером 102 и клиентом 104. Совместная работа может предполагать представление части или всего серверного графического интерфейса пользователя (ГИП) на клиенте. В этом случае ГИП представляется как рабочий стол сервера 110. В частности, совместная работа может создавать впечатление, что одно или более приложений, которые запускаются на сервере 102, на самом деле запускаются на клиенте 104.
Примеры сеансов совместной работы могут включать в себя сценарии удаленных терминальных сеансов и один или более сценариев представления, в числе прочего. В сценарии удаленного терминального сеанса ГИП из области дисплея сервера (например, рабочего стола сервера 110) может быть сформирован на клиенте 104 в виде представления, или удаленного рабочего стола 114. Сценарий представления может подразумевать дистанционирование ГИП конкретного приложения, запускаемого на сервере, а не всего рабочего стола 110. В таком сценарии ГИП сервера (например, графическое окно) приложения может быть использовано для формирования представления приложения на клиенте. Например, рабочий стол сервера 110 включает в себя графическое окно медиаплеера 116. Сеанс представления может сформировать представление 118 графического окна 116 на клиенте 104 без остального рабочего стола сервера 110. Обработка медиаданных может быть выполнена на сервере 102 медиаплеером 120 посредством медиаплатформы 122, сохраненной на сервере 102. Аналогично, обработка медиаданных может быть выполнена на клиенте 104 медиаплеером 124 посредством медиаплатформы 126, сохраненной на клиенте 104.
Как обсуждалось, большая часть процессов, соответствующих сеансу совместной работы, может происходить на сервере 102; однако в сеансе совместной работы медиаоперация может, по меньшей мере частично, обрабатываться на клиенте 104. Например, команды медиавоспроизведения могут представлять один или более типов медиаопераций. Команды медиавоспроизведения, порожденные пользователем (т.е. пользовательские команды) у клиента 104, могут переадресовываться серверу 102 для обработки. Сервер 102 обрабатывает пользовательские команды в соответствии с конфигурацией сервера 102. Например, сервер 102 обрабатывает пользовательские команды, основанные на медиаплатформе 122. В таком случае обработка пользовательских команд может породить специфичные команды медиавоспроизведения, основанные на пользовательских командах, которые являются специфичными для медиаплатформы 122.
Сеанс совместной работы может перехватить зависящие от платформы команды медиавоспроизведения и может послать команды клиенту для исполнения. В некоторых случаях клиентская медиаплатформа 126 может не понять команды медиавоспроизведения, специфичные для серверной медиаплатформы 122. В связи с этим система 100 может включать в себя уровень 130 абстрагирования медиаданных совместной работы, который может облегчить медиавзаимосвязанные обмены данными между сервером 102 и клиентом 104. Например, в настоящем примере уровень 130 абстрагирования медиаданных совместной работы может абстрагировать или обобщать команды медиавоспроизведения, специфичные для медиаплатформы 122. Эти сделанные общими команды медиавоспроизведения могут затем переводиться в команды медиавоспроизведения, специфичные для клиентской медиаплатформы 126.
Соответственно, уровень 130 абстрагирования медиаданных совместной работы может облегчить исполнение пользовательских команд в сеансе совместной работы. Более того, помимо примера команд медиавоспроизведения уровень 130 абстрагирования медиаданных совместной работы может облегчить передачу медиаопераций между сервером 102 и клиентом 104 в сеансе совместной работы.
В некоторых случаях обобщенные команды медиавоспроизведения могут пониматься клиентом 104 независимо от конфигурационных различий сервера 102 и клиента 104. Например, клиент 104 и сервер 102 могут иметь различные операционные системы, различные версии одной и той же операционной системы или различные медиаплатформы, в числе прочего. Работа системы, осуществляющей управление мультимедийными операциями в сеансе совместной работы, описывается далее в деталях в сочетании с фиг.2 и фиг.3.
Фиг.2 показывает систему 200, которая основывается на принципах, введенных относительно фиг.1. В этом случае система 200 описывается относительно удаленного терминального сеанса. Следует понимать, что похожие принципы могут быть равным образом применены к другим сеансам совместной работы. В настоящем осуществлении система 200 включает в себя сервер 202 и клиента 204, которые могут обмениваться данными посредством сети 206. Сервер 202 включает в себя медиаплатформу 208 и модуль 210 абстрагирования медиаданных удаленного терминального сеанса, или «УТС». Клиент 204 включает в себя медиаплатформу 212 и модуль 214 абстрагирования медиаданных УТС.
В этом осуществлении сервер 202 может посылать данные, относящиеся к рабочему столу 216 сервера, клиенту 204 для формирования удаленного представления, такого как удаленный рабочий стол 218, у клиента 204. Данные, ассоциированные с удаленным рабочим столом 218, могут включать в себя компонент 220 пользовательского интерфейса и медиакомпонент 222.
Компонент 220 пользовательского интерфейса может включать в себя графику и изображения, которые обычно составляют пользовательский интерфейс. Компонент 220 пользовательского интерфейса может включать в себя иконки, звук хост-устройства, изображения фона и представления приложений, таких как ГИП, ассоциированные с приложениями текстообработки, приложениями для работы с электронными таблицами, приложениями базы данных, медиаприложениями и т.д. На деле любые компоненты, которые не являются медиакомпонентом 222, являются частью компонента 220 пользовательского интерфейса. При сравнении с медиакомпонентом 222 компонент 220 пользовательского интерфейса может быть относительно статичным и относительно низким по интенсивности данных. Напротив, медиакомпонент 222 может быть относительно динамичным и крайне интенсивным по данным.
Как обсуждалось, медиакомпонент 222 может быть крайне интенсивным по данным, т.к. включает в себя элементы, насыщенные медиаданными, которые составляют медиапредставление или медиасобытие. Передача данных, ассоциированных с медиакомпонентом 222, может быть интенсивной по ширине полосы пропускания. Примеры медиакомпонента 222 включают в себя, в числе прочего, потоковые медиапредставления, включающие в себя видео и/или аудиопредставление, телевизионные передачи, такие как кабельное телевидение (КАТВ), спутниковая, с разовой платой за просмотр, или вещательная программа; взаимодействия цифровых сжатых медиаданных; радиопрограммы; записанные медиасобытия (например, воспроизводимые на кассетном видеомагнитофоне, DVD-плеере, CD-плеере, персональном видеомагнитофоне и т.п.); медиасобытия в реальном времени; и каналы фотоаппартов, среди прочего.
В целях разъяснения медиакомпонент 222 иллюстрируется как на рабочем столе 216 сервера, так и на удаленном рабочем столе 218 клиента. Следует понимать, что части или весь рабочий стол 216 сервера не обязательно может быть отображен на дисплейном устройстве сервера 202. В таких вариантах осуществления только медиакомпонент 222 (или его часть) могут появиться на клиенте. Например, рабочий стол сервера может быть дистанционирован к клиенту, даже если сервер не связан с дисплейным устройством.
Данные для удаленного рабочего стола 218 могут посылаться от сервера 202 к клиенту 204 посредством сети 206. В одном из осуществлений данные, ассоциированные с компонентом 220 пользовательского интерфейса и медиакомпонентом 222, могут передаваться по каналу пользовательского интерфейса 224 и медиаканалу 226 соответственно.
Канал пользовательского интерфейса 224 может устанавливать связь компонента 220 пользовательского интерфейса с клиентом 204. В одном из осуществлений Терминальный Сервер и Терминальные Клиентские Службы, предлагаемые Корпорацией Майкрософт (Редмонд, Вашингтон), могут обеспечить типовой канал пользовательского интерфейса 224. Для передачи данных посредством канала пользовательского интерфейса 224 может быть использован удаленный протокол. Типовые протоколы и форматы данных включают в себя протоколы удаленного рабочего стола (RDP), протокол серии T-120 или HTML (язык разметки гипертекста и многие его вариации), в числе прочего. Независимая Архитектура Вычислительной системы (ICA), разработанная Системами Citrix®, предлагает другой пример, который может поддерживать удаленный терминальный сеанс.
Медиаканал 226 может быть отдельным или интегрированным с каналом пользовательского интерфейса 224. Медиаканал 226 может быть использован для передачи взаимодействий, требующих большой пропускной способности, таких как видео или другие типы медиаданных, как указано выше. В этом примере медиаканал 226 может обеспечить канал связи для того, чтобы медиакомпонент 222 протекал отдельно от компонента 220 пользовательского интерфейса. Следовательно, медиакомпонент 222 может посылаться вне полосы по отношению к компоненту пользовательского интерфейса, но синхронизованно. Типовой протокол для передачи данных посредством медиакомпонента 226 может включать в себя, в числе прочего, Протокол Управления Передачей (TCP) и виртуальный канал с помощью RDP-соединения.
Другими словами, настоящие осуществления могут разделять на два потока доставку данных, относящихся к удаленному рабочему столу. Компоненты с относительно низкой интенсивностью данных серверного рабочего стола 216, такие как компонент 220 пользовательского интерфейса, могут обрабатываться на сервере 202 и затем передаваться клиенту 204. Компоненты с относительно высокой интенсивностью данных, такие как медиакомпонент 222, могут передаваться клиенту 204 в необработанном или менее обработанном виде. Обработка затем может быть завершена клиентом 204 и объединена с компонентами данных низкой интенсивности, чтобы создать удаленный рабочий стол 218 на клиенте 204. События (т.е. медиаоперации), которые влияют на медиапредставление, могут прослеживаться на сервере, так чтобы можно было поддерживать относительное соотношение медиапредставления к другим частям удаленного рабочего стола 218.
В настоящем примере сценария компонент 220 пользовательского интерфейса объединяется, или соединяется, с медиакомпонентом 222 для формирования удаленного рабочего стола 218 у клиента 204. Пользователь у клиента 204 может удаленно управлять сервером 202, взаимодействуя с удаленным рабочим столом 218. Например, пользователь у клиента 204 может передвигать курсор мыши по приложению на удаленном рабочем столе 218 и открывать приложение, щелкая по соответствующей иконке. Таким же образом пользователь может подавать команды на приложение через удаленный рабочий стол. Например, что касается медиаприложения, пользователь может применять щелчки мыши для ввода пользовательских команд, таких как начало воспроизведения (старт), остановка воспроизведения (стоп), ускоренная перемотка вперед, перемотка, пауза и настройка уровня громкости в числе прочего. Настоящие осуществления облегчают выполнение пользовательских команд в сценарии удаленного терминального сеанса.
В целях разъяснения рассмотрим гипотетический сценарий, где пользователь у клиента 204 вводит пользовательские команды медиавоспроизведения (пользовательские команды), относящиеся к удаленному рабочему столу 218. Пользовательские команды могут передаваться от клиента 204 серверу 202 как часть удаленного терминального сеанса посредством сети 206, как указано в общем смысле в виде команд 230. Команды 230 могут посылаться через канал 224 ИП или через другой канал. Команды 230 могут перерабатываться на сервере 202 медиаплатформой 208 в медиакоманды, зависящие от платформы. Как указывалось, обработка медиаданных медиаплатформой 208 может перехватываться как часть удаленного терминального сеанса и посылаться клиенту 204 для дальнейшей обработки.
Клиентская медиаплатформа 212 может быть или не быть такой же, как серверная медиаплатформа, такая как медиаплатформа 208, и как таковая может понимать или не понимать перехваченные медиакоманды сервера 202, зависящие от платформы. Серверный модуль 210 абстрагирования УТС может принимать перехваченные медиакоманды, зависящие от платформы. Модуль 210 абстрагирования УТС может переводить перехваченные медиакоманды, специфичные для платформы, в обобщенные или отвлеченные медиакоманды. Обобщенные медиакоманды могут посылаться от серверного модуля 210 абстрагирования медиаданных УТС клиентскому модулю 214 абстрагирования медиаданных УТС, как указано в общем смысле в виде команд 232. Клиентский модуль 214 абстрагирования медиаданных УТС может переводить обобщенные медиакоманды, такие как команды 232, в медиакоманды, которые являются специфическими для клиентской медиаплатформы 212. Клиентская медиаплатформа 212 может затем исполнять клиентские специфичные медиакоманды для выполнения пользовательской команды. Более подробный пример выполнения абстрагирования медиакоманды в удаленном терминальном сеансе описывается ниже относительно фиг.3.
Фиг.3 предоставляет пример того, как система 200 может выполнить абстракцию медиаоперации, описанную выше по отношению к фиг.2. В этом случае модули 210, 214 абстрагирования медиаданных УТС на сервере 202 и клиенте 204 соответственно выполняют абстракцию медиаоперации с помощью таблиц 302, 304 отображения удаленного терминального сеанса (УТС). Например, серверный модуль 210 абстрагирования медиаданных УТС может принимать медиакоманды, которые являются специфическими для серверной медиаплатформы 208. В одном из осуществлений команды, принятые серверным модулем 210 абстрагирования медиаданных УТС, могут быть ответом на одно или более действий, которые могут быть специфическими для событий, ассоциированных с воспроизведением медиафайлов. Например, серверный модуль 210 абстрагирования медиаданных УТС может принимать команды, когда к медиафайлу принимают доступ для воспроизведения один или более пользователей на клиенте 204.
Серверный модуль 210 абстрагирования медиаданных УТС может применить таблицу 302 отображения УТС для преобразования принятых медиаопераций в обобщенные, или абстрактные, медиаоперации. Абстрагированные медиаоперации из таблицы 302 отображения УТС могут посылаться клиентскому модулю 214 абстрагирования медиаданных УТС. Клиентский модуль 214 абстрагирования медиаданных УТС может использовать другую таблицу 304 отображения УТС. Таблица 304 отображения УТС может перевести абстрагированные медиаоперации в медиаоперации, которые являются специфическими для клиентской медиаплатформы 212. Клиентская медиаплатформа 212 может затем исполнить медиаоперации.
В целях разъяснения предположим, что серверная медиаплатформа 208 является платформой Media Foundation®, в то время как клиентская медиаплатформа 212 является платформой DShow®. В этом примере таблица 302 отображения УТС может переводить операции, специфичные для платформы Media Foundation®, указанные в общем смысле на 306А-306I, в соответствующие обобщенные медиаоперации, указанные в общем смысле на 308A-308I соответственно. Аналогично, таблица 304 отображения УТС может переводить обобщенные медиаоперации, указанные в общем смысле на 310А-310I, в соответствующие операции, специфичные для платформы DShow®, указанные в общем смысле на 312A-312I. Например, предположим, что модуль 210 абстрагирования медиаданных УТС, основанный на платформе Media Foundation, принимает операцию 306A, а именно «IMFClockStateSink:: OnClockStarted» от медиаплатформы 208. Модуль 210 абстрагирования медиаданных УТС может применить таблицу 302 отображения для перевода операции 306A в обобщенную команду 308A медиаоперации, а именно «Начать Воспроизведение». Модуль 210 абстрагирования медиаданных УТС может послать обобщенную команду 308A медиаоперации «Начать Воспроизведение» модулю 214 абстрагирования медиаданных УТС на клиенте 204.
Обобщенная команда медиаоперации, такая как обобщенная команда 308A, может быть преобразована в соответствующую команду клиентской медиаплатформы 212 на основании таблицы 304 отображения УТС. Например, модуль 214 абстрагирования медиаданных УТС может расположить обобщенную команду медиаоперации «Начать Воспроизведение», принятую от сервера 202, в таблице 304 отображения УТС. В этом случае обобщенная команда медиаоперации «Начать Воспроизведение» обозначается как 310A. Таблица 304 отображения УТС может перевести обобщенную команду медиаоперации «Начать Воспроизведение» 310 в медиаоперацию «IMediaControl::Run», специфическую для платформы DShow®, обозначенную как команда 312A. Модуль 214 абстрагирования медиаданных УТС может послать медиаоперацию «IMFMediaSession::Start» 312A, специфическую для платформы DShow®, клиентской платформе 212, которая является платформой DShow®, разрешая клиентской платформе 212 понять и исполнить медиаоперацию, специфическую для DShow. Другие отображения могут быть сделаны передвижением горизонтально поперек индивидуальной строки таблиц 302, 304 отображений. Следует понимать, что таблица 302, 304 отображений УТС на сервере 202 и клиенте 204, соответственно, может включать в себя другие команды и отображения, связывающие специфичные для платформы команды с обобщенными командами и наоборот.
В одном из вариантов осуществления таблицы 302, 304 отображений УТС могут быть сконфигурированы для перевода между медиаплатформами, которые еще предстоит разработать. В то время как таблицы 302, 304 отображений УТС, проиллюстрированные здесь, включают в себя перевод между двумя специфическими медиаплатформами, другие таблицы отображения могут включать в себя многократные переводы. Например, серверными медиаплатформами 208 могут быть DShow и Media Foundation, в то время как клиентскими медиаплатформами могут быть платформа Quick Time® и платформа Ogg®. Соответственно, в некоторых осуществлениях таблицы 302, 304 отображений УТС могут обеспечить переводы между серверной медиаплатформой и клиентской медиаплатформой.
Более того, абстрагируя медиаоперации, таблицы 302, 304 отображений УТС могут быть проще, чем другие потенциальные решения. Например, серверная таблица отображения УТС 302 не обязательно может принимать во внимание все возможные медиаплатформы, которые могут применяться на клиенте 204. Другими словами, серверная медиатаблица, такая как таблица 302 отображения УТС, может быть независимой от клиентской медиаплатформы 212 (т.е. серверная медиатаблица не обязательно должна быть сконфигурирована на основе конфигурации клиентской медиаплатформы). То же самое может быть сказано о клиентской медиатаблице 212. Более того, серверная таблица 302 отображения УТС может не нуждаться в обновлениях, в то время как развиваются новые медиаплатформы, которые могут применяться на клиенте 204. Вместо этого серверная таблица 302 отображения УТС может переводить медиаоперации, такие как операции 306А-306I, специфичные для какой бы то ни было медиаплатформы, существующей на сервере 202, в соответствующие абстрактные или обобщенные медиаоперации, такие как 308А-308I. Клиентская таблица 304 отображения УТС может затем переводить обобщенные медиаоперации, такие как 308А-308, в медиаоперации, такие как операции 310А-310I, специфичные для медиаплатформ(ы) 212 на клиенте 204. Клиентская таблица 304 отображения УТС не обязательно должна принимать во внимание все различные медиаплатформы, которые применяются или могут применяться на сервере 202. Вместо этого клиентская таблица 304 отображения УТС может просто переводить из обобщенных медиаопераций 310А-310I в медиаоперации, специфичные для медиаплатформ(ы) 212, работающих на клиенте 204.
Таблицы 302, 304 отображений УТС, как показано на чертеже, представляют только одно возможное осуществление, которое может быть выполнено с использованием документа текстообработки.
Фиг.4 - это пример представления избранных компонентов системы 400 для поддержки абстрагирования медиаопераций в удаленном терминальном сеансе. Фиг.4 относится к медиакомпоненту удаленного терминального сеанса между сервером 402 и клиентом 404. В этом осуществлении сеанс терминальных служб вызывает конфигурацию протокола удаленного рабочего стола (RDP), примеры которого проиллюстрированы выше. Система 400 может в альтернативном или дополнительном порядке применяться для других сценариев совместной работы, кроме удаленных терминальных сеансов.
Сервер 400 может включать в себя первую медиаплатформу 406 и второй медиаплеер 408. Медиаплатформа 406 ассоциируется с медиаисточником 410. Медиаплатформа 406 включает в себя модуль 412 слежения за геометрией, модуль 414 абстрагирования медиаданных УТС, модуль 416 назначения и модуль 418 диспетчера распространения, который включает в себя модуль абстрагирования медиаданных УТС 420. Медиаплатформа 406 также включает в себя видеодекодер 422, модуль 424 видеоэффектов, модуль 426 воспроизведения видео, модуль 428 абстрагирования медиаданных УТС, аудиодекодер 430, модуль 432 аудиоэффектов, модуль 434 воспроизведения аудио, модуль 436 абстрагирования медиаданных УТС и аудиопередатчик 438. Сервер также включает в себя медиаплеер 440, который может связываться с медиаплатформой 406.
Клиентская медиаплатформа 408 может включать в себя модуль 442 абстрагирования медиаданных УТС, модуль 444 слежения за геометрией и мультимедийный модуль 446, который включает в себя модуль 448 абстрагирования медиаданных УТС. Клиентская медиаплатформа 408 может также включать в себя модуль 450 абстрагирования медиаданных УТС, модуль 452 аудиоприемника, аудиодекодер 454, модуль 456 аудиоэффектов и модуль 458 воспроизведения аудио. Медиаплатформа 408 может также включать в себя модуль 460 абстрагирования медиаданных УТС, видеоприемник 462, видеодекодер 464, модуль 466 видеоэффектов и модуль 468 воспроизведения видео. Клиент также включает в себя медиаплеер 470, который может связываться с медиаплатформой 408.
В этом примере серверная медиаплатформа 406 может существовать как часть операционной системы сервера (не показана), чтобы разрешать воспроизведение медиаданных, так что приложения, которые взаимодействуют с операционной системой, могут управлять воспроизведением медиаданных, «не зная» конкретных деталей форматов медиаданных. Аналогично, клиентская медиаплатформа 408 может существовать как часть клиентской операционной системы (не показана), чтобы разрешать воспроизведение медиаданных, так что приложения, которые взаимодействуют с операционной системой, могут управлять воспроизведением медиаданных без знания медиаданных. Например, медиаплатформа 406 может разрешить приложению, такому как медиаплеер 440, запускаться без того, чтобы медиаплеер 440 знал детали относительно форматов воспроизводимых медиаданных. Аналогичным образом, клиентская медиаплатформа 408 может разрешить медиаплееру 470 запускаться как часть операционной системы сервера, чтобы разрешить воспроизведение медиаданных, так что приложения, которые взаимодействуют с операционной системой, могут управлять воспроизведением медиаданных, не зная конкретных деталей медиаформатов. Медиаплатформа 406, запускающаяся на сервере 402, может быть идентична медиаплатформе 408, запускающейся на клиенте 404. В других примерах медиаплатформа 406 на сервере 402 может быть другим продуктом и/или версией, чем медиаплатформа 408, работающая на клиенте 404. Компоненты, описанные ниже, могут позволить медиаоперациям эффективно обмениваться между сервером и клиентом как в первом, так и во втором случаях.
В этом примере серверная медиаплатформа 406 может обнаружить, запускается ли она в удаленном терминальном сеансе, посредством модуля 416 назначения. Модуль 416 назначения может быть объектом, который определяет, где нужно представить представление (например, окно, дисковый файл и т.п.) и что происходит с представлением. Далее, серверная медиаплатформа 406 может определить, что источник связан с клиентом, таким как клиент 404, который имеет возможности воспроизвести медиаданные локально. Диспетчер 418 распространения может определить, что серверная медиаплатформа 406 связана с клиентом 404 и что клиент 404 имеет возможности воспроизвести медиаданные локально. Диспетчер 418 распространения может также установить политику удаленного терминального сеанса, чтобы позволить дистанционирование медиаданных клиенту 404. Диспетчер 418 распространения может установить соединение виртуального канала с мультимедийным подключаемым модулем клиента, таким как модуль 444 мультимедийного компонента на клиенте 404. Соединение виртуального канала может разрешить обмен контрольной информацией, относящейся к удаленному терминальному сеансу, между сервером 402 и клиентом 404.
Один аспект контрольной информации для обмена через соединение виртуального канала между диспетчером 418 распространения и модулем 444 мультимедийного компонента предполагает медиаоперации в удаленном терминальном сеансе. Диспетчер 418 распространения и модуль 444 мультимедийного компонента могут пользоваться своими соответствующими модулями 420, 446 абстрагирования медиаданных УТС, чтобы согласовать, как обрабатывать медиаоперации в удаленном терминальном сеансе. Один из двух - сервер 402 и клиент 404 - может инициировать согласования по медиаоперациям. В некоторых осуществлениях согласования медиаопераций могут быть предприняты как часть процедур запуска для установления удаленного терминального сеанса. В других осуществлениях согласования медиаопераций могут быть начаты в ответ на медиаоперацию, такую как пользовательская команда воспроизведения медиаданных, принимаемую в удаленном терминальном сеансе.
В качестве иллюстративного примера в ответ на пользовательскую команду воспроизведения медиаданных сервер 402 может определять медиаформат медиаданных от медиаисточника 410. Предположим в целях этого объяснения, что сервер 402 определяет, что медиаформатом источников является MPEG IV. Серверный модуль 420 абстрагирования медиаданных УТС может запросить, поддерживает ли клиент, такой как клиент 404, медиаформат MPEG IV. Например, серверный модуль 420 абстрагирования медиаданных УТС может запросить клиентский модуль 448 абстрагирования УТС, поддерживает ли клиент конкретный медиаформат, такой как MPEG IV. Пример такого запроса предоставляется в таблицах 302, 304 отображения УТС в виде обобщенной медиаоперации «проверить поддержку формата», показанной на 308E и 310E. Клиентский модуль 448 абстрагирования медиаданных УТС может послать запрос обратно, спрашивая сервер 402, какой медиаплатформой можно воспользоваться для поддержки медиаформата. Клиент 404 может затем воспользоваться информацией от сервера 402 для определения того, поддерживает ли клиент 404 этот медиаформат. Альтернативным образом, клиент 404 может определить, что он имеет медиаплатформу, такую как медиаплатформа 408, которая поддерживает медиаформат. В последнем случае клиент 404 может дать указание серверу 402 продолжить передачу потока медиаданных. Например, клиент 404 через клиентский модуль 448 абстрагирования медиаданных УТС может иметь медиаплатформу 408, которая полностью отличается от медиаплатформы 406 на сервере 402. В таких случаях перед операциями, такими как воспроизведение, пауза и т.д., в продолжение сеансов совместной работы можно выполнить проверку платформы, поддерживаемой клиентом 404. В другом случае, вместо того чтобы дожидаться сервера, клиентский модуль 448 абстрагирования медиаданных УТС может заранее проинформировать сервер 402 о возможностях, связанных с клиентом 404, относящихся к медиаформатам, поддерживаемым клиентом 404, и/или медиаплатформам, работающим на клиенте 404.
Более того, применение соединения виртуального канала разрешает диспетчеру 418 распространения и мультимедийному компоненту 446 устанавливать распределенную топологию. Распределенная топология может выполнять различные функции. Например, распределенная топология может включать в себя сетевой передатчик на сервере 402 и сетевой приемник на клиенте 404. Сетевой приемник связан, в свою очередь, с модулями 458, 468 воспроизведения аудио и/или видео соответственно на клиенте 404. В этой конкретной конфигурации видеопередатчик 472 и аудиопередатчик 438 изображены на сервере 402, в то время как соответствующий видеоприемник 462 и аудиоприемник 452 изображены на клиенте 404.
Во время сценария медиапредставления на удаленном рабочем столе медиаданные могут быть направлены клиенту 404 в необработанном или частично обработанном виде как поток. Например, на сервере 402 медиаплатформа 406 может перехватить медиаданные, которые в противном случае обрабатывались бы на сервере 402, а именно видеодекодером 422, модулем 424 видеоэффектов, модулем 438 воспроизведения видео, аудиодекодером 430, аудиоэффектами 432 и модулем 434 воспроизведения аудио. Медиаданные могут быть перенаправлены на соответствующие видео- и аудиопередатчики 472, 438 для потоковой передачи клиенту 404. Потоковая передача может быть по различным каналам. Например, медиаданные могут идти потоком в полосе с RDP по виртуальному каналу. Такая конфигурация повторно использует существующее RDP-соединение и разрешает RDP обрабатывать различные детали, от перфорации до брандмауэров, и установление безопасного, подлинного контекста, среди других задач. Альтернативным или дополнительным образом, медиаданные могут идти потоком по соединению протокола датаграмм пользователя (UDP) побочной частоты или протокола управления передачей (TCP). В некоторых осуществлениях может быть использована внеполосная конфигурация. Например, в конкретной конфигурации внеполосное соединение может быть доступно с большей полосой частот по соединению, чем доступно в соединении через RDP.
На клиенте 404 потоковые медиаданные принимаются на мультимедийном модуле 446, который, в свою очередь, передает потоковые медиаданные видео- и аудиоприемникам 462, 452 соответственно. Видео- и аудиоприемники 462, 452 соответственно передают медиаданные преобразованиям и приемникам на стороне клиента, которые включают в себя видеодекодер 464, видеоэффект 466, модуль 468 воспроизведения видео, аудиодекодер 454, аудиоэффекты 456 и модуль 458 воспроизведения аудио. Медиаданные затем декодируются и воспроизводятся на клиенте 404. Поскольку аудио и видео передаются потоком в закодированном виде, любые инструменты синхронизации, содержащиеся в закодированных медиаданных, могут быть доступны клиенту 404 для поддержания надлежащей аудиовидеосинхронизации. Для простоты объяснения необработанные медиаданные идут потоком от сервера 402 к клиенту 404.
Некоторая обработка медиаданных может происходить в других осуществлениях. Например, предположим, что в соответствии с вышеописанным сценарием удаленного рабочего стола пользователь просит воспроизвести медиаданные, которые закодированы в источнике гипотетическим кодеком АА. В этом примере источник может содержать компоненты для декодировки гипотетического кодека АА, но клиент может и не содержать; однако и источник, и клиент могут иметь возможности кодека для второго гипотетического кодекового формата BB. В таком случае источник может декодировать медиаданные и затем перекодировать медиаданные в формат ВВ перед передачей потока медиаданных клиенту 404. Это только один пример, который представляет различные уровни обработки для медиаданных, которые могут возникнуть в компонентах системы в соответствии с принципами, описанными выше и ниже.
Компонент слежения за геометрией, или модуль слежения за геометрией 412, 444, может регистрировать и отслеживать любые изменения, относящиеся к целевому окну сеанса терминальных служб. Например, модуль 412 слежения за геометрией может регистрировать уникальный идентификатор для целевого окна и отслеживать целевое окно на удаленном рабочем столе, описанном выше. Модуль 412 слежения за геометрией может отслеживать изменения, относящиеся к ограничению целевого окна другим окном, позиции целевого окна и размеру целевого окна на стороне сервера. Эти изменения затем передаются клиенту 404 протоколами удаленного рабочего стола, где изменения направляются мультимедийному модулю на стороне клиента 446.
Слежение за геометрией может быть признаком платформы, такой как платформа Terminal Services®, которая обеспечивает систему уведомления для изменений геометрии окна. Всякий раз как геометрия окна меняется, события, содержащие новую геометрию, могут генерироваться и посылаться приемникам уведомлений в источнике. В этом примере клиент действует как источник. Геометрия окна может меняться, когда окно передвигается, минимизируется/максимизируется или ограничивается другим окном.
В некоторых случаях приложение может решить воспроизвести медиаданные на клиенте, вместо того чтобы передавать пред-воспроизведенные битовые карты от сервера. Для того чтобы это сделать, приложение создает окно как на стороне сервера, так и клиента. Окно сервера действует как метка-заполнитель и способно принимать весь ввод, а фактические медиаданные могут воспроизводиться и изображаться приложением на стороне клиента. Окно клиента изображается прямо над окном сервера, чтобы распространение было прозрачно для пользователя. Поскольку весь ввод фактически действует на окно сервера, изменения геометрии будут отражаться на сервере. Приложение отслеживает эти изменения до окна сервера и соответственно обновляет окно клиента, чтобы оба окна были геометрически синхронизованы.
Пример способа(ов)
Типовые процессы для сеансов совместной работы и обработки медиаопераций в сеансах совместной работы описаны со ссылкой на фиг.1-4. Эти процессы могут быть описаны в общем контексте исполняемых компьютером команд. Как правило, исполняемые компьютером команды могут включать в себя подпрограммы, программы, объекты, компоненты, структуры данных, процедуры, модули, функции и т.п., которые выполняют конкретные функции или внедряют конкретные типы абстрактных данных. Процессы могут также применяться на практике в распределенной вычислительной среде, где функции выполняются удаленными обрабатывающими устройствами, которые связаны через сеть передачи данных. В распределенной вычислительной среде исполняемые компьютером команды могут быть расположены в запоминающих средах как локального, так и удаленного компьютера, включая устройства хранилищ памяти.
Фиг.5 иллюстрирует пример способа 500 для сеансов совместной работы и обработки операций воспроизведения медиаданных в сеансах совместной работы. Порядок, в котором описывается способ, не предназначен для того, чтобы быть истолкован как ограничение, и любое количество описанных блоков способа может быть объединено в любом порядке для осуществления способа. Более того, способ может быть осуществлен в любом пригодном оборудовании, программном обеспечении, микропрограммах или их комбинации.
В блоке 502 принимаются команды, ассоциированные с одним или более действиями, относящимися к медиафайлам. Принятые команды являются специфическими для медиаплатформы, ассоциированной с вычислительным устройством, принимающим команды. Команды могут формироваться от другого вычислительного устройства, которое может иметь доступ к медиафайлам через сеть. Например, серверный модуль 210 абстрагирования медиаданных УТС может принимать медиакоманды, которые являются специфическими для серверной медиаплатформы 208. Такие команды могут быть сформированы в ответ на определенные действия, такие как осуществление доступа к медиафайлу.
В блоке 504 принятые команды, специфичные для платформы, ассоциируются с одной или более обобщенными медиаоперациями. Обобщенные операции могут быть общими для различных приложений для воспроизведения медиафайлов. В одном осуществлении, команды, специфичные для платформы, ассоциируются с одной или более обобщенными операциями, основанными на отображении. Например, серверный модуль абстрагирования медиаданных УТС 210 может воспользоваться таблицей 302 отображения УТС для отображения принятых медиаопераций (как указано командами 306А-306I) в обобщенные, или абстрактные, медиаоперации (как указывают 308А-308I). Пример платформы, основанной на сервере 202, включает в себя, в числе прочего, Media Foundation.
В блоке 506 обобщенные операции посылаются вычислительному устройству, запрашивающему доступ к медиафайлу. Например, обобщенные операции могут передаваться клиенту 204 от сервера 202. В одном осуществлении серверный модуль 210 абстрагирования медиаданных УТС посылает обобщенные команды от сервера 202 клиенту 204.
В блоке 508 обобщенные команды принимаются запрашивающим устройством и ассоциируются с командами, специфическими для платформы. Например, клиентский модуль абстрагирования медиаданных УТС 214 принимает обобщенные команды, посланные серверным модулем 210 абстрагирования медиаданных УТС. Клиентский модуль 214 абстрагирования медиаданных УТС может применить другую таблицу 304 отображения УТС. Таблица 304 отображения УТС может перевести абстрагированные медиаоперации в медиаоперации, которые являются специфическими для клиентской медиаплатформы 212. Клиентская медиаплатформа 212 может затем исполнить медиаоперации. Примеры медиаплатформы на клиенте 204 включают в себя, в числе прочего, платформу DShow®. Следовательно, специфичные для платформы команды сервера 202 могут переводиться в команды, специфичные для платформы клиента 204, через абстракцию специфических для платформы команд, как обобщенные операции.
Пример вычислительной среды
Фиг.6 иллюстрирует типовое общее окружение 600 компьютера, которое может быть использовано для осуществления методик, описанных здесь, и которое может представлять собой, в целом или частично, описанные здесь элементы. Окружение 600 компьютера является только одним примером вычислительной среды и не предполагает рекомендовать какое-либо ограничение в отношении области применения или функциональности компьютера и сетевых архитектур. Окружение 600 компьютера также не должно толковаться как имеющая какую-либо зависимость или требование, относящиеся к какому-либо одному или комбинации компонентов, проиллюстрированных в типовом окружении 600 компьютерной среде.
Окружение 600 компьютера включает в себя основанное на вычислениях устройство общего назначения в виде компьютера 602. Компьютер 602 может быть, например, настольным компьютером, портативным компьютером, ноутбуком или компьютером лэптоп, серверным компьютером, игровой приставкой и т.д. Компоненты компьютера 602 могут включать в себя, в числе прочего, один или более процессоров, или обрабатывающих модулей 604, системную память 606 и системную шину 608, которая соединяет различные системные компоненты, включая процессор 604, с системной памятью 606.
Системная шина 608 представляет один или более из любых различных типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессор, или локальную шину, использующие любую из различных шинных архитектур. В качестве примера такие архитектуры могут включать в себя шину Промышленной Стандартной Архитектуры (ISA), шину Микроканальной Архитектуры (MCA), шину Промышленного Стандарта Улучшенной Архитектуры (EISA), локальную шину Ассоциации по Стандартам в области Видеоэлектроники (VESA) и шину Соединений Периферийных Компонентов (PCI), также известную как шина расширения.
Компьютер 602 обычно включает в себя различные читаемые компьютером носители. Такими носителями могут быть любые доступные носители, которые доступны с компьютера 602, и включают в себя как энергозависимые, так и энергонезависимые носители, сменные и постоянно закрепленные носители.
Системная память 606 включает в себя читаемые компьютером носители в виде энергозависимой памяти, такой как оперативное запоминающее устройство (ОЗУ) 610, и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) 612. Базовая система 614 ввода/вывода (BIOS), содержащая базовые подпрограммы, которые помогают передавать информацию между элементами внутри компьютера 602, например, во время запуска, сохраняется в ПЗУ 612 (и) иллюстрируется. ОЗУ 610 обычно содержит данные и/или программные модули, которые являются непосредственно доступными и/или с которыми в настоящее время работает обрабатывающий модуль 604.
Компьютер 602 может также включать в себя другие сменные/несменные, энергозависимые/энергонезависимые компьютерные носители данных. В качестве примера фиг.6 иллюстрирует жесткий диск 616 для считывания с и записи на постоянно закрепленные, энергонезависимые магнитные носители (не показаны). Более того, фиг.6 иллюстрирует магнитный дисковод 618 для считывания с и записи на сменный, энергонезависимый магнитный диск 620 (например, «гибкий диск»), кроме того, фиг.6 иллюстрирует оптический дисковод 622 для считывания с и/или записи на сменный, энергонезависимый оптический диск 624, такой как CD-ROM, DVD-ROM или другие оптические носители. Жесткий диск 616, магнитный дисковод 618 и оптический дисковод 622 - каждый подсоединен к системной шине 608 одним или более медиаинтерфейсами данных 626. В качестве альтернативы, жесткий диск 616, магнитный дисковод 618 и оптический дисковод 622 могут быть подсоединены к системной шине 608 одним или более интерфейсами (не показаны).
Дисководы и их ассоциированные носители, читаемые компьютером, обеспечивают энергонезависимое хранение читаемых компьютером команд, структур данных, программных модулей и других данных для компьютера 602. Хотя пример иллюстрирует жесткий диск 616, сменный магнитный диск 620 и сменный оптический диск 624, следует понимать, что другие типы читаемых компьютером носителей, которые могут сохранять данные, которые доступны с компьютера, такие как магнитные кассеты или другие магнитные запоминающие устройства, карты флэш-памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ) и т.п., также могут применяться для осуществления типовой вычислительной системы и среды.
Любое количество программных модулей может храниться на жестком диске 616, магнитном диске 620, оптическом диске 624, ПЗУ 612 и/или ОЗУ 610, включая, в качестве примера, операционную систему 626, одну или более программ 628 приложений, другие программные модули 630 и программные данные 632. Каждый (модуль) из такой операционной системы 626, одной или более программ 628 приложений, других программных модулей 630 и программных данных 632 (или некоторой их комбинации) может осуществить все или часть резидентных компонентов, которые поддерживают распределенную файловую систему.
Пользователь может вводить команды и информацию в компьютер 602 через входные устройства, такие как клавиатура 634 и указательное устройство 636 (например, «мышь»). Другие входные устройства 638 (конкретно не показанные) могут включать в себя микрофон, джойстик, игровой планшет, спутниковую тарелку, последовательный порт, сканер и/или тому подобное. Эти и другие входные устройства соединяются с обрабатывающим модулем 604 посредством интерфейсов 640 ввода/вывода, которые подсоединены к системной шине 608, но могут быть соединены другим интерфейсом и шинными структурами, такими как параллельный порт, игровой порт или универсальная последовательная шина (USB).
Монитор 642 или другой тип дисплейного устройства также может соединяться с системной шиной 608 через интерфейс, такой как видеоадаптер 644. В дополнение к монитору 642 другие выходные периферические устройства могут включать в себя такие компоненты, как динамики (не показаны) и принтер 646, который может быть соединен с компьютером 602 посредством интерфейсов 640 ввода/вывода.
Компьютер 602 может работать в сетевом окружении с использованием логических связей с одним или более удаленными компьютерами, такими как основанное на вычислениях удаленное устройство 648. В качестве примера основанное на вычислениях удаленное устройство 648 может быть персональным компьютером, портативным компьютером, серверным компьютером, маршрутизатором, компьютером сети, одноранговым устройством или другим стандартным сетевым узлом, и т.п. Основанное на вычислениях удаленное устройство 648 иллюстрируется как портативный компьютер, который может включать в себя многие или все из элементов и признаков, описанных здесь по отношению к компьютеру 602.
Логические соединения между компьютером 602 и удаленным компьютером 648 изображены как локальная вычислительная сеть (LAN) 660 и общая глобальная сеть (WAN) 652. Такие сетевые среды являются обычными в офисах, широко специализированных компьютерных сетях, интранетах и Интернете.
При осуществлении в сетевой среде LAN компьютер 602 соединен с локальной сетью 660 через сетевой интерфейс или адаптер 654. При осуществлении в сетевой среде WAN компьютер 602 обычно включает в себя модем 656 или другое средство для установления связей по общей сети 652. Модем 656, который может быть внутренним или внешним к компьютеру 602, может быть связан с системной шиной 608 через интерфейсы ввода/вывода 640 или другие подходящие механизмы. Следует понимать, что проиллюстрированные сетевые соединения являются примерными и что могут применяться другие средства установления линии(й) связи между компьютерами 602 и 648.
В сетевой среде, такой как та, что проиллюстрирована вычислительной средой 600, программные модули, изображенные относительно компьютера 602, или их части могут сохраняться в удаленном устройстве хранилищ памяти. В качестве примера удаленные программы приложений 658 находятся на устройстве памяти удаленного компьютера 648. В целях иллюстрации программы приложений и другие выполняемые программные компоненты, такие как операционная система, иллюстрируются здесь в виде дискретных блоков, хотя признается, что такие программы и компоненты находятся в разные времена в разных запоминающих компонентах основанного на вычислениях устройства 602 и выполняются процессором(ами) обработки данных компьютера.
Различные модули и методики могут быть описаны здесь в общем контексте исполняемых компьютером команд, таких как программные модули, исполняемые одним или более компьютерами или другими устройствами. Как правило, программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или внедряют конкретные типы абстрактных данных. Обычно выполняемые функции программных модулей могут объединяться или распределяться по желанию в различных осуществлениях.
Осуществление этих модулей и методик может храниться или передаваться через некоторую форму читаемых компьютером носителей. Читаемые компьютером носители могут быть любыми наличными носителями, доступными для компьютера. В качестве примера, а не ограничения, читаемые компьютером носители могут содержать «компьютерные носители данных» и «коммуникационные носители».
«Компьютерные носители данных» включают в себя энергозависимые и энергонезависимые, сменные и постоянно закрепленные носители, осуществленные любым способом или технологией для хранения информации, такой как читаемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя, в числе прочего, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другую технологию памяти, CD-ROM, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован для хранения желаемой информации и который может быть доступен для компьютера.
В качестве альтернативы, части инфраструктуры могут быть осуществлены в оборудовании или комбинации оборудования, программного обеспечения и/или программно-аппаратного обеспечения. Например, одна или более специализированных интегральных микросхем (ASIC) или программируемых логических устройств (PLD) могут быть спроектированы или запрограммированы для осуществления одной или более частей инфраструктуры.
Заключение
Хотя осуществления для управления мультимедийными операциями в сеансе совместной работы описаны языком, конкретным для структурных признаков и/или способов, следует понимать, что предмет прилагаемой формулы изобретения не обязательно ограничивается конкретными описанными признаками или способами. Точнее, конкретные признаки и способы раскрываются как примеры осуществлений для управления мультимедийными операциями в сеансе совместной работы.

Claims (19)

1. Выполняемый на компьютерном устройстве способ управления мультимедийными операциями в удаленных сеансах, содержащий этапы, на которых:
обеспечивают сеанс совместной работы с клиентом, имеющим клиентскую медиаплатформу, специфичную для этого клиента, при этом сеанс совместной работы включает в себя первый канал связи, в котором передаются мультимедийные данные для медиакомпонента, и второй канал связи, в котором в клиент передается компонент пользовательского интерфейса;
принимают от клиента серверные команды воспроизведения мультимедийных данных, соответствующие серверной медиаплатформе, специфичной для сервера;
переводят серверные команды воспроизведения мультимедийных данных, соответствующие серверной медиаплатформе, специфичной для сервера, в общие для платформ команды воспроизведения мультимедийных данных для передачи в клиент; и
передают общие для платформ команды воспроизведения мультимедийных данных в клиент, при этом клиент переводит общие для платформ команды воспроизведения мультимедийных данных в клиентские команды воспроизведения мультимедийных данных, соответствующие клиентской медиаплатформе, специфичной для данного клиента.
2. Способ по п.1, дополнительно содержащий этап, на котором представляют пользовательский интерфейс в клиенте в окне мультимедийного представления и отслеживают изменения в окне мультимедийного представления.
3. Способ по п.2, в котором медиаприложение реализуют как окно мультимедийного представления на компоненте пользовательского интерфейса, причем при упомянутом отслеживании присваивают уникальный идентификатор окну мультимедийного представления, при этом изменения в окне мультимедийного представления передаются в клиент, чтобы обеспечить возможность ориентации окна мультимедийного представления относительно компонента пользовательского интерфейса.
4. Способ по п.1, в котором при переводе специфичных для платформы команд воспроизведения мультимедийных данных в общие для платформ команды воспроизведения мультимедийных данных используют таблицу соответствия, которая задает соответствие специфичных для платформы команд воспроизведения мультимедийных данных общим для платформ командам воспроизведения мультимедийных данных.
5. Способ по п.1, в котором второй канал устанавливают посредством сеанса совместной работы.
6. Способ по п.1, дополнительно содержащий этапы, на котором:
определяют формат мультимедийных данных;
оценивают возможность клиента декодировать и воспроизводить мультимедийные данные в этом формате.
7. Способ по п.6, который, в случае если клиент не имеет возможности декодировать и воспроизводить мультимедийные данные в существующем формате, дополнительно содержит этап, на котором декодируют мультимедийные данные и перекодируют мультимедийные данные во второй отличающийся формат, для работы с которым клиент сконфигурирован.
8. Способ по п.1, дополнительно содержащий этапы, на которых:
устанавливают соединение виртуального канала с клиентом,
согласовывают форматы, которые поддерживаются как источником мультимедийных данных, передаваемых в клиент, так и клиентом; и
настраивают распределенную топологию с клиентом.
9. Способ по п.8, в котором при настройке распределенной топологии вводят сетевой передатчик в упомянутый источник и сетевой приемник в клиент.
10. Сервер, содержащий:
компонент пользовательского интерфейса, который включает в себя графику и изображения, которые составляют пользовательский интерфейс, причем компонент пользовательского интерфейса поддерживает связь с клиентом через первый канал связи; и
медиакомпонент, который включает в себя данные мультимедийного представления для воспроизведения через компонент пользовательского интерфейса, при этом медиакомпонент сконфигурирован переводить специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие первой медиаплатформе, поддерживаемой сервером, в общие для платформ команды воспроизведения мультимедийных данных в результате того, что клиент не может обрабатывать специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие первой медиаплатформе, или в специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие второй медиаплатформе, поддерживаемой на удаленном клиенте терминального сеанса, при этом специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие первой медиаплатформе, принимаются от клиента, и при этом клиент переводит общие для платформ команды воспроизведения мультимедийных данных в специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие второй медиаплатформе.
11. Сервер по п.10, в котором компонент пользовательского интерфейса содержит окно медиаприложения.
12. Сервер по п.11, в котором медиакомпонент сконфигурирован с возможностью быть представленным в целевом окне мультимедийного представления внутри окна медиаприложения.
13. Сервер по п.12, в котором данные мультимедийного представления отслеживаются путем слежения за целевым окном мультимедийного представления относительно окна медиаприложения.
14. Сервер по п.13, в котором упомянутое слежение содержит передачу относительной позиции целевого окна мультимедийного представления относительно окна медиаприложения в удаленный клиент.
15. Сервер по п.13, в котором упомянутое слежение содержит введение на серверный рабочий стол метки-заполнителя, которая представляет целевое окно мультимедийного представления, и отслеживание любых изменений, влияющих на метку-заполнитель.
16. Сервер по п.10, в котором медиакомпонент сконфигурирован определять, какие форматы мультимедийных данных поддерживаются удаленным клиентом.
17. Сервер по п.10, в котором медиакомпонент сконфигурирован устанавливать распределенную топологию с удаленным клиентом.
18. Сервер по п.10, в котором медиакомпонент сконфигурирован выполнять отправку и потоковую передачу данных мультимедийного представления в сеансе терминальных служб.
19. Система для управления мультимедийными операциями в удаленных сеансах, содержащая:
механизм для предоставления клиенту, который поддерживает первый медиаплеер, медиакомпонента по первому каналу связи и для предоставления компонента пользовательского интерфейса по второму каналу связи;
механизм для приема от клиента специфичных для платформы команд воспроизведения мультимедийных данных, которые соответствуют второму медиаплееру, поддерживаемому сервером, и которые сформированы в ответ на пользовательский ввод, предоставленный во время сеанса совместной работы; и
механизм для определения того, может ли клиент обрабатывать специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие второму медиаплееру, и для перевода специфичных для платформы команд воспроизведения мультимедийных данных, соответствующих второму медиаплееру, в общие для платформ команды воспроизведения мультимедийных данных в результате того, что клиент не может обрабатывать специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие второму медиаплееру, при этом клиент переводит общие для платформ команды воспроизведения мультимедийных данных в специфичные для платформы команды воспроизведения мультимедийных данных, соответствующие первому медиаплееру, поддерживаемому клиентом.
RU2010140138/08A 2008-04-01 2009-03-06 Системы и способы для управления мультимедийными операциями в удаленных сеансах RU2504829C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/060,620 US8433812B2 (en) 2008-04-01 2008-04-01 Systems and methods for managing multimedia operations in remote sessions
US12/060,620 2008-04-01
PCT/US2009/036409 WO2009154816A2 (en) 2008-04-01 2009-03-06 Systems and methods for managing multimedia operations in remote sessions

Publications (2)

Publication Number Publication Date
RU2010140138A RU2010140138A (ru) 2012-04-10
RU2504829C2 true RU2504829C2 (ru) 2014-01-20

Family

ID=41118756

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010140138/08A RU2504829C2 (ru) 2008-04-01 2009-03-06 Системы и способы для управления мультимедийными операциями в удаленных сеансах

Country Status (7)

Country Link
US (2) US8433812B2 (ru)
EP (1) EP2274682A4 (ru)
KR (1) KR101596530B1 (ru)
CN (1) CN101981558B (ru)
MX (1) MX2010010520A (ru)
RU (1) RU2504829C2 (ru)
WO (1) WO2009154816A2 (ru)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789070B2 (en) * 2007-12-06 2014-07-22 Wyse Technology L.L.C. Local device virtualization
US8433812B2 (en) * 2008-04-01 2013-04-30 Microsoft Corporation Systems and methods for managing multimedia operations in remote sessions
US8170123B1 (en) * 2008-04-15 2012-05-01 Desktone, Inc. Media acceleration for virtual computing services
US20090284476A1 (en) * 2008-05-13 2009-11-19 Apple Inc. Pushing a user interface to a remote device
US8970647B2 (en) * 2008-05-13 2015-03-03 Apple Inc. Pushing a graphical user interface to a remote device with display rules provided by the remote device
US20100293462A1 (en) * 2008-05-13 2010-11-18 Apple Inc. Pushing a user interface to a remote device
US9870130B2 (en) 2008-05-13 2018-01-16 Apple Inc. Pushing a user interface to a remote device
US9311115B2 (en) 2008-05-13 2016-04-12 Apple Inc. Pushing a graphical user interface to a remote device with display rules provided by the remote device
US8793331B2 (en) * 2008-05-16 2014-07-29 Wyse Technology L.L.C. Multimedia redirection
EP2131271A1 (en) * 2008-06-04 2009-12-09 NEC Corporation Method for enabling a mobile user equipment to drag and drop data objects between distributed applications
US8543935B2 (en) * 2008-08-20 2013-09-24 Red Hat, Inc. Full-screen heterogeneous desktop display and control
US8375138B2 (en) * 2008-11-05 2013-02-12 Fh Innovations, Ltd Computer system with true video signals
US9135024B2 (en) * 2008-11-30 2015-09-15 Red Hat Israel, Ltd. Playing multimedia content at remote graphics display client
US20100169791A1 (en) * 2008-12-31 2010-07-01 Trevor Pering Remote display remote control
US8869239B2 (en) * 2009-04-15 2014-10-21 Wyse Technology L.L.C. Method and system for rendering composite view of an application
US20110154214A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Offloading Content Retrieval And Decoding In Pluggable Content-Handling Systems
CN102148842B (zh) * 2010-02-08 2014-06-04 联想(北京)有限公司 一种远程桌面体系的音频处理方法和设备
WO2012072651A1 (en) * 2010-11-29 2012-06-07 Dvdperplay Sa Method and collaboration system
US8904289B2 (en) * 2011-04-21 2014-12-02 Touchstream Technologies, Inc. Play control of content on a display device
US9767195B2 (en) * 2011-04-21 2017-09-19 Touchstream Technologies, Inc. Virtualized hosting and displaying of content using a swappable media player
US9130899B1 (en) 2011-04-27 2015-09-08 Cisco Technology, Inc. Integrated user interface for unified communications applications
US20120284632A1 (en) * 2011-05-06 2012-11-08 Cisco Technology, Inc. Integrated Rendering of Streaming Media in Virtualized Desktop Environment
WO2011157180A2 (zh) * 2011-06-03 2011-12-22 华为技术有限公司 一种在线应用处理方法、装置及系统
US9225763B2 (en) * 2011-06-07 2015-12-29 Cisco Technology, Inc. Distributed overlay browser for transparent streaming media support in virtualized desktop environment
US10976981B2 (en) * 2011-07-15 2021-04-13 Vmware, Inc. Remote desktop exporting
WO2013016949A1 (en) * 2011-08-01 2013-02-07 Quickbiz Holdings Limited User interface content state synchronization across devices
US11750673B2 (en) 2011-08-01 2023-09-05 Spring Design, Inc. User interface content state synchronization across devices
US10298642B2 (en) 2016-02-17 2019-05-21 Quickbiz Holdings Limited, Apia User interface content state synchronization across devices
US9250928B2 (en) 2011-10-18 2016-02-02 Mcafee, Inc. Cooperative mobile analytics
TWI451268B (zh) 2011-11-08 2014-09-01 Inst Information Industry 提供虛擬桌面之雲端系統、於虛擬桌面播放多媒體之方法以及其電腦可讀取記錄媒體
US9467305B2 (en) 2012-03-07 2016-10-11 Vmware, Inc. Multitenant access to multiple desktops on host machine partitions in a service provider network
US9055139B1 (en) 2012-03-12 2015-06-09 Cisco Technology, Inc. Display protocol interception in the network for services and network-based multimedia support for VDI
KR101325840B1 (ko) * 2012-03-13 2013-11-05 주식회사 팬택 싱크 장치를 관리하는 방법, 이를 위한 소스 장치 및 무선랜 시스템
JP5620434B2 (ja) * 2012-05-02 2014-11-05 株式会社オプティム オペレータシステム、オペレータサーバ、リモートサポート方法、オペレータサーバ用プログラム、サポート対象電化製品、及び、サポート作業画面表示装置
WO2013169556A2 (en) * 2012-05-06 2013-11-14 Citrix Online, Llc System and method for monitoring and selectively sharing an image in an image library
US9798508B2 (en) 2012-07-16 2017-10-24 Microsoft Technology Licensing, Llc Implementing previously rendered frame buffer information in a customized GUI display
US20140075377A1 (en) 2012-09-10 2014-03-13 Samsung Electronics Co. Ltd. Method for connecting mobile terminal and external display and apparatus implementing the same
JP6221214B2 (ja) * 2012-09-26 2017-11-01 富士通株式会社 システム、端末装置および画像処理方法
EP2738721A1 (de) * 2012-11-28 2014-06-04 Deutsche Telekom AG Verfahren und System zur Präsentation bei kollaborativer Zusammenarbeit
US20150365500A1 (en) * 2013-01-31 2015-12-17 Hewlett-Packard Development Company, L.P. Remote client application
CN104053015A (zh) * 2013-03-11 2014-09-17 中兴通讯股份有限公司 一种传输媒体数据的方法及虚拟桌面服务器
US20140298182A1 (en) * 2013-04-01 2014-10-02 Infosys Limited Centralized administration tool for operating with existing host system having non-centralized administrative functions
EP3012739A1 (en) * 2014-10-20 2016-04-27 TISOFT Wojciech Jedrzejewski System for synchronizing web browsers
US20170046013A1 (en) * 2015-08-14 2017-02-16 Microsoft Technology Licensing, Llc Web-browser based desktop and application remoting solution
CN106339193B (zh) * 2016-08-31 2020-06-09 武汉三好教育科技股份有限公司 一种无线手持交互方法及手持交互式多媒体系统
US10592227B2 (en) * 2016-09-16 2020-03-17 Oracle International Corporation Versioned intelligent offline execution of software configuration automation
US10673801B2 (en) * 2017-11-29 2020-06-02 International Business Machines Corporation Dynamic communication session management
US10581939B2 (en) * 2018-01-26 2020-03-03 Citrix Systems, Inc. Virtual computing system providing local screen sharing from hosted collaboration applications and related methods
US10819817B2 (en) * 2019-02-04 2020-10-27 Dell Products L.P. HTML5 multimedia redirection
US11032157B2 (en) * 2019-05-16 2021-06-08 Microsoft Technology Licensing, Llc Adaptable real-time communications plugin for virtual desktop infrastructure solutions
US11487559B2 (en) 2019-10-07 2022-11-01 Citrix Systems, Inc. Dynamically switching between pointer modes
US10887633B1 (en) * 2020-02-19 2021-01-05 Evercast, LLC Real time remote video collaboration
US11457483B2 (en) 2020-03-30 2022-09-27 Citrix Systems, Inc. Managing connections between a user device and peripheral devices
KR102551470B1 (ko) 2022-11-18 2023-07-05 조정원 건물의 실내에서 소금을 제조하는 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2004120266A (ru) * 2003-07-03 2006-01-10 Майкрософт Корпорейшн (Us) Совместное использование пошагового языка разметки и объектно ориентированного инструментального средства разработки
US20060069797A1 (en) * 2004-09-10 2006-03-30 Microsoft Corporation Systems and methods for multimedia remoting over terminal server connections
US20070124737A1 (en) * 2005-11-30 2007-05-31 Ava Mobile, Inc. System, method, and computer program product for concurrent collaboration of media
US20070174487A1 (en) * 2004-04-20 2007-07-26 Pluck Corporation Method, system, and computer program product for synchronizing information within a global computer network

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452435A (en) * 1993-03-31 1995-09-19 Kaleida Labs, Inc. Synchronized clocks and media players
US5596696A (en) * 1993-05-10 1997-01-21 Object Technology Licensing Corp. Method and apparatus for synchronizing graphical presentations
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
US5831609A (en) * 1994-06-17 1998-11-03 Exodus Technologies, Inc. Method and system for dynamic translation between different graphical user interface systems
SG82587A1 (en) * 1997-10-21 2001-08-21 Sony Corp Recording apparatus, recording method, playback apparatus, playback method, recording/playback apparatus, recording/playback method, presentation medium and recording medium
US6412031B1 (en) * 1998-02-10 2002-06-25 Gateway, Inc. Simultaneous control of live video device access by multiple applications via software locks and in accordance with window visibility of applications in a multiwindow environment
US6448980B1 (en) * 1998-10-09 2002-09-10 International Business Machines Corporation Personalizing rich media presentations based on user response to the presentation
TW392111B (en) * 1998-12-16 2000-06-01 Mustek Systems Inc Sharing system for sharing peripheral device via network
US7178106B2 (en) * 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
US6701383B1 (en) * 1999-06-22 2004-03-02 Interactive Video Technologies, Inc. Cross-platform framework-independent synchronization abstraction layer
US6615199B1 (en) * 1999-08-31 2003-09-02 Accenture, Llp Abstraction factory in a base services pattern environment
US6687745B1 (en) * 1999-09-14 2004-02-03 Droplet, Inc System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection
KR20020064888A (ko) * 1999-10-22 2002-08-10 액티브스카이 인코포레이티드 객체 지향형 비디오 시스템
US6389467B1 (en) * 2000-01-24 2002-05-14 Friskit, Inc. Streaming media search and continuous playback system of media resources located by multiple network addresses
US6466939B1 (en) * 2000-03-31 2002-10-15 Microsoft Corporation System and method for communicating video data in a digital media device
US20020019843A1 (en) * 2000-04-26 2002-02-14 Killian Robert T. Multiprocessor object control
DE60042965D1 (de) * 2000-05-24 2009-10-29 Sony Deutschland Gmbh Dienstqualitätsunterhandlung
AU2001266820A1 (en) * 2000-06-09 2001-12-17 The Trustees Of Columbia University In The City Of New York Distributed computer system using a graphical user interface toolkit
US6738356B1 (en) * 2000-08-10 2004-05-18 Convedia Corporation Object oriented video merging system
US20020129359A1 (en) * 2000-11-27 2002-09-12 Lichner Randall Manton Cross platform system and method for the management and distribution of pay per view video on demand
US7200855B2 (en) * 2001-05-24 2007-04-03 Vixs Systems, Inc. Method and apparatus of multiplexing a plurality of channels in a multimedia system
US7116894B1 (en) * 2002-05-24 2006-10-03 Digeo, Inc. System and method for digital multimedia stream conversion
US20040010560A1 (en) * 2002-07-10 2004-01-15 Sandage David A. Method and apparatus to transmit infrared signals generated from a computer application using a remote device
FR2843516B1 (fr) * 2002-08-12 2004-12-24 France Telecom Procede de diffusion en temps reel de fichiers multimedias au cours d'une visioconference, sans rupture de communication, et interface homme-machine pour la mise en oeuvre
US6909878B2 (en) * 2002-08-20 2005-06-21 Ixi Mobile (Israel) Ltd. Method, system and computer readable medium for providing an output signal having a theme to a device in a short distance wireless network
TW200411465A (en) * 2002-11-19 2004-07-01 Xepa Corp An accounting and management system for self-provisioning digital services
US20040128548A1 (en) * 2002-12-31 2004-07-01 Honeywell International Inc. Generic communication server engine
US8291009B2 (en) * 2003-04-30 2012-10-16 Silicon Graphics International Corp. System, method, and computer program product for applying different transport mechanisms for user interface and image portions of a remotely rendered image
US7613767B2 (en) * 2003-07-11 2009-11-03 Microsoft Corporation Resolving a distributed topology to stream data
US7574514B2 (en) * 2003-09-30 2009-08-11 Sharp Laboratories Of America, Inc. Systems and methods for identifying original streams of media content
JP5149507B2 (ja) * 2003-10-06 2013-02-20 ディズニー エンタープライゼス インコーポレイテッド ビデオプレーヤの再生及び特徴機能制御システム及び方法
US8196044B2 (en) * 2004-01-05 2012-06-05 Microsoft Corporation Configuration of user interfaces
US8869043B2 (en) * 2004-06-07 2014-10-21 Avaya Inc. System for presenting applications on instant messaging clients
US8103546B1 (en) * 2004-08-16 2012-01-24 Lightningcast Llc Advertising content delivery
JP5059616B2 (ja) 2004-11-19 2012-10-24 ティヴォ インク マルチメディアコンテンツの安全な転送およびプレイバックのための方法および装置
US20060111971A1 (en) * 2004-11-24 2006-05-25 Microsoft Corporation System and method for on-line and off-line advertising in content delivered to a display screen
US20060282855A1 (en) * 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
WO2007027154A1 (en) * 2005-08-31 2007-03-08 Encentuate Pte Ltd Fortified authentication on multiple computers using collaborative agents
US20070074258A1 (en) * 2005-09-20 2007-03-29 Sbc Knowledge Ventures L.P. Data collection and analysis for internet protocol television subscriber activity
US8150960B2 (en) * 2005-11-23 2012-04-03 Microsoft Corporation Event forwarding
CN101346739B (zh) * 2005-12-24 2017-10-13 富媒体俱乐部有限责任公司 通过电子网络创建、分发和跟踪广告的系统和方法
US10380602B2 (en) * 2005-12-24 2019-08-13 Rich Media Club, Llc System and method for creation, distribution and tracking of advertising via electronic networks
US11004090B2 (en) * 2005-12-24 2021-05-11 Rich Media Club, Llc System and method for creation, distribution and tracking of advertising via electronic networks
US20070271338A1 (en) * 2006-05-18 2007-11-22 Thomas Anschutz Methods, systems, and products for synchronizing media experiences
US20080007651A1 (en) * 2006-06-23 2008-01-10 Broadcom Corporation, A California Corporation Sub-frame metadata distribution server
WO2008018860A1 (en) 2006-08-07 2008-02-14 Digital Display Innovation, Llc Multiple remote display system
US20080134012A1 (en) * 2006-11-30 2008-06-05 Sony Ericsson Mobile Communications Ab Bundling of multimedia content and decoding means
US20120022915A1 (en) * 2007-10-23 2012-01-26 Pierre Carion Method and system for collection and use of wireless application activity information
EP2232365A4 (en) * 2007-12-10 2013-07-31 Deluxe Digital Studios Inc METHOD AND SYSTEM FOR USE IN COORDINATING MULTIMEDIA DEVICES
US8433812B2 (en) * 2008-04-01 2013-04-30 Microsoft Corporation Systems and methods for managing multimedia operations in remote sessions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2004120266A (ru) * 2003-07-03 2006-01-10 Майкрософт Корпорейшн (Us) Совместное использование пошагового языка разметки и объектно ориентированного инструментального средства разработки
US20070174487A1 (en) * 2004-04-20 2007-07-26 Pluck Corporation Method, system, and computer program product for synchronizing information within a global computer network
US20060069797A1 (en) * 2004-09-10 2006-03-30 Microsoft Corporation Systems and methods for multimedia remoting over terminal server connections
US20070124737A1 (en) * 2005-11-30 2007-05-31 Ava Mobile, Inc. System, method, and computer program product for concurrent collaboration of media

Also Published As

Publication number Publication date
KR20110007114A (ko) 2011-01-21
RU2010140138A (ru) 2012-04-10
KR101596530B1 (ko) 2016-02-22
EP2274682A2 (en) 2011-01-19
US8433812B2 (en) 2013-04-30
CN101981558A (zh) 2011-02-23
WO2009154816A3 (en) 2010-02-18
US20090248802A1 (en) 2009-10-01
US20130275495A1 (en) 2013-10-17
CN101981558B (zh) 2014-03-05
MX2010010520A (es) 2010-10-25
WO2009154816A2 (en) 2009-12-23
EP2274682A4 (en) 2012-08-22

Similar Documents

Publication Publication Date Title
RU2504829C2 (ru) Системы и способы для управления мультимедийными операциями в удаленных сеансах
KR101490548B1 (ko) 실시간 커널
US10298721B2 (en) Method and system to determine a work distribution model for an application deployed on a cloud
KR101037263B1 (ko) 세션 기술 메시지 확장
JP5908592B2 (ja) インターネットプロトコルを介したヒューマン入力デバイスコマンドの送信
US7590750B2 (en) Systems and methods for multimedia remoting over terminal server connections
US7421656B2 (en) Systems and methods for interacting with a user interface of a media player
TWI496008B (zh) 設備之鍊結
RU2332706C2 (ru) Определение распределенной топологии для потоковой передачи данных
US20150120813A2 (en) Pairing a media server and a media client
US9009768B2 (en) Media playback control through remote device control
US20040207723A1 (en) UI remoting with synchronized out-of-band media
US8645559B2 (en) Redirection of multiple remote devices
KR20050031866A (ko) 원격 장치 매체 능력을 판정하는 시스템 및 방법
KR100596723B1 (ko) 멀티미디어 스트리밍 서비스와 응용 프로그램 스트리밍서비스의 통합형 실행장치 및 실행방법
US20070106743A1 (en) Sharing disc changers among multiple user devices
US9762704B2 (en) Service based media player
CN112887786B (zh) 视频播放方法、装置及计算机可读介质
KR20120122846A (ko) 푸쉬 서버를 이용한 콘텐츠 공유 시스템 및 방법
Barbosa et al. Integration of SIP protocol in Android Media Framework
Park et al. Vulture: Cross-Device Web Experience with Fine-Grained Graphical User Interface Distribution
CN118214777A (zh) 通信方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150306