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

Иллюстрации

Показать все

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

Реферат

Уровень техники

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

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

Сущность изобретения

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

Краткое описание чертежей

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

Фиг.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 абстрагирования медиаданных УТС может запрос