Удаленный доступ к защищенным файлам через потоковую передачу данных

Иллюстрации

Показать все

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

Реферат

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

Варианты осуществления настоящего изобретения относятся к области мультимедийных проигрывателей для удаленного доступа к защищенным файлам. В частности, варианты осуществления этого изобретения относятся к применению сценария, в котором пользователь на удаленном устройстве может управлять/осуществлять навигацию/производить поиск пользовательскими файлами на устройстве-источнике с помощью стандартных инструментальных средств и, при вызове воспроизведения отдельного файла на устройстве-источнике, предложить безопасный URL потоковой передачи данных, посредством которого устройство-источник предоставляет файл удаленному устройству.

Используя традиционные файловые операции, только защищенный файл, такой как файл, управляемый посредством управления цифровыми правами (DRM), может быть воспроизведен на устройстве, таком как ПК, который содержит его лицензию. Например, когда файл должен быть воспроизведен посредством WINDOWS Media Player (WMP), WMP открывает файл и пытается воспроизвести его. В этом процессе если найденный файл содержит DRM, то вызывается подсистема DRM, чтобы подтвердить лицензию. В отсутствие действительной лицензии на ПК, выполняющем WMP, производится попытка получить ее для ПК. Поскольку DRM-содержимое, как правило, имеет небольшой лимит, например, по числу машин (например, 3), которые могут быть лицензированы, доступ посредством удаленного ПК ограничен. Если файл пришел от ПК-источника, ПК-источник, вероятно, уже имеет лицензию. Повторное использование исходной лицензии является одним предпочтительным решением.

По меньшей мере некоторые операционные системы, такие как WINDOWS®, обладают возможностями службы потоковой передачи мультимедиа, например "WINDOWS® Media Connect" (WMC). WMC разрешает потоковую передачу содержимого от одного устройства другому, например от ПК к ПК, способом, который не требует строгих правил лицензирования. Таким образом, потоковая передача усиливает протоколы потоковой передачи мультимедиа. Эти протоколы приспособлены для воспроизведения содержимого и, как правило, не разрешают файловые операции, такие как обновления метаданных, обновления содержимого и т.д. Содержимое может быть дополнительно зашифровано при передаче от одного устройства к другому, так что только запрашивающее устройство может дешифровать содержимое. Содержимое, как правило, рассматривается как "защищенное", когда передается в потоковом режиме, тогда как оно считается очень уязвимым, когда доступно через протоколы копирования файлов (SMB).

В то время как почти любой протокол передачи, такой как SMB, HTTP, RTSP или MMS, может использоваться как для потоковой передачи, так и для копирования файлов, владельцы авторского права на мультимедийное содержимое зачастую требуют добавления шифрования к протоколу, так как существуют многочисленные программы, которые создают копии файла из предположительно "потоковых" протоколов, перечисленных выше.

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

Пользователи WINDOWS® осуществляют интенсивное использование протокола SMB как части общих приложений типа приложения оболочки WINDOWS® Explorer. Это приложение позволяет пользователю просматривать файлы где угодно в своей сети и управлять ими. Мультимедийное содержимое, которое защищено управлением цифровыми правами (DRM), может не воспроизводиться в этом сценарии по вышеупомянутым причинам.

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

Варианты осуществления изобретения включают в себя доступ, который имеет протокол уровня безопасности (к примеру, SMB-протокол, не-SMB протокол, NFS и т.п.). В варианте осуществления изобретение включает в себя потоковую передачу защищенного файла по пути безопасным способом. Варианты осуществления изобретения применимы к любым устройствам, распознающим SMB, многие из которых существуют из-за открытых SMB-пакетов источника, таких как сервер SAMBA.

Альтернативно, варианты осуществления изобретения предоставляют безопасный доступ к DRM-зашифрованному содержимому (например, мультимедийным файлам), имея устройство-источник, которое просматривает удаленное устройство, чтобы аутентифицировать пользователя удаленного устройства. Кроме того, варианты осуществления изобретения создают протоколы, чтобы найти DRM-защищенное содержимое, эти протоколы отличаются от протоколов, используемых для потоковой передачи содержимого.

Альтернативно, варианты осуществления изобретения могут содержать разные другие способы и устройства.

Другие признаки будут частично очевидны и частично указаны далее в данном документе.

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

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

Фиг.1 является блок-схемой примерного варианта осуществления удаленного ПК, обращающегося к DRM-защищенному файлу на ПК-источнике.

Фиг.2 является блок-схемой, иллюстрирующей хронологическую работу варианта осуществления изобретения.

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

Соответствующие ссылочные символы указывают соответствующие части на всех чертежах.

Подробное описание

Обращаясь сначала к фиг.1, представлена блок-схема, чтобы проиллюстрировать примерный вариант осуществления удаленного устройства, такого как удаленный ПК 102, обращающийся к защищенному файлу, такому как файл 104, защищенный механизмом управления цифровыми правами, на устройстве-источнике, таком как ПК-источник 106. ПК 102 упоминается как удаленный, так как он является неким образом отдельным от ПК-источника 106. В этой иллюстрации предполагается, что пользователь 108 удаленного ПК 102 имеет право на доступ к DRM-защищенному файлу 104.

В одном варианте осуществления пользователь удаленного ПК 102 первоначально будет идентифицировать (посредством просмотра или другого обзора) один или более файл на ПК-источнике 106, как указано стрелкой 110. После того как желаемый DRM-защищенный файл 104 идентифицирован пользователем 108 через удаленный ПК 102, пользователь 108 вызовет мультимедийный проигрыватель 112, чтобы обратиться к желаемому файлу 104 через протокол, такой как SMB (блок сообщений службы) на этапе 114. Далее, мультимедийный проигрыватель 112 создает URL на этапе 116, чтобы взаимодействовать с программным модулем 118 потоковой передачи приложения доставки мультимедиа (MDA) 120 через WINDOWS® Media Connect (WMC) 122 ПК-источника 106. В одном варианте осуществления MDA 120 может быть компонентом или модулем приложения, приложением, программным обеспечением, прикладной программой или набором машиноисполняемых инструкций, которые доставляют или помогают в доставке мультимедийных файлов от ПК-источника 106 к удаленному ПК 102. В одном варианте осуществления WMC 122 является приложением или модулем связи ПК-источника 106, который взаимодействует с, размещает и/или управляет MDA 120.

В одном примере для каждого запроса, принятого от пользователя 108, MDA 120 формирует события, например событие аутентификации. В одном варианте осуществления это событие аутентификации или авторизации содержит логический URL, также как и полный запрос от мультимедийного проигрывателя 112. WMC 122 преобразует логический URL в физический путь файла. В другом варианте осуществления для некоторых логических URL WMC 122 не нужно предпринимать какое-либо действие, а можно просто вернуть успешное значение MDA 120. Альтернативно, для других логических URL WMC 122 определяет, авторизован ли какой-либо запрос от удаленного ПК 102, чтобы получить доступ к файлу (например, файлу 104). Если логический URL сформирован из UNC-пути, такого как путь, предоставленный SMB-сервером на ПК-источнике 106, WMC 122 тогда нужно аутентифицировать пользователя 108 прежде, чем WMC 122 позволяет MDA 120 передать в потоковом режиме файл 104 мультимедийному проигрывателю 112.

В одном варианте осуществления, когда требуется аутентификация пользователя, WMC 122 передает ответ на (опознавательный) вызов из события аутентификации модулю 124 аутентификации. Модуль 124 аутентификации проверяет, присутствует ли ответ на вызов в событии аутентификации. Если ответ на вызов отсутствует, процесс аутентификации в результате заканчивается ошибкой ACCESS_DENIED (доступ запрещен), и доступ пользователю запрещается. В другом варианте осуществления модуль 124 аутентификации формирует вызов аутентификации для мультимедийного проигрывателя 112. В этом варианте осуществления WMC 122 передает этот вызов к MDA 120, а MDA 120 не исполняет запрос от мультимедийного проигрывателя 112 и передает вызов аутентификации мультимедийному проигрывателю 112. Мультимедийный проигрыватель 112 может ответить на вызов аутентификации, отправляя ответ на вызов аутентификации. Этот ответ на вызов, по существу, представляет удостоверения пользователя мультимедийного проигрывателя 112. Формат и/или форма ответа на вызов могут изменяться в зависимости от используемого протокола аутентификации. По приеме нового запроса, включающего в себя ответ на вызов, от мультимедийного проигрывателя 112 MDA 120 формирует похожее событие аутентификации в ответ на новый запрос, хотя в этот раз ответ на вызов включен в запрос от мультимедийного проигрывателя 112, и передает ответ на вызов с событием. WMC 122 удаляет ответ на вызов из события и передает событие модулю 124 аутентификации, который определяет, запретить или разрешить запрос. Когда модуль 124 аутентификации успешно аутентифицирует пользователя 108, модуль 124 аутентификации формирует маркер доступа, который WMC 122 может использовать позже, чтобы авторизовать доступ пользователя к запрошенному содержимому (например, файлу 104). Следует отметить, что в зависимости от используемой схемы аутентификации могут требоваться многочисленные запросы-ответы между источником и приемником от мультимедийного проигрывателя 112 к MDA 120, чтобы аутентифицировать мультимедийный проигрыватель 112.

В другом варианте осуществления после того, как запрос прошел успешно, MDA 120 формирует событие авторизации к WMC 122. WMC 122 далее использует маркер доступа, полученный во время события аутентификации, чтобы верифицировать права пользователя на воспроизведение защищенного содержимого (например, файла 104). Если пользователь не имеет права на доступ к содержимому, WMC 122 может не исполнить событие авторизации. В таком случае MDA 120 не исполнит запрос от мультимедийного проигрывателя 112 с ошибкой "Запрещенный".

Обращаясь далее к фиг.2, представлена примерная схема, иллюстрирующая хронологическую работу варианта осуществления изобретения. В одном варианте осуществления рассматривается сценарий, когда удаленный ПК 202 пытается воспроизвести защищенный файл на ПК-источнике 204. Удаленный ПК 202 запускает мультимедийный проигрыватель (например, WINDOWS® Media Player или другое устройство) на этапе 206. ПК-источник 204 запускает сервер потоковой передачи мультимедиа (мультимедийных данных) (например, приложение доставки мультимедиа - MDA), так же как и службу совместного использования мультимедиа, на этапе 208. ПК-источник 204 разделяет для совместного использования мультимедиа через свои общие ресурсы UNC (например, по протоколу SMB) на этапе 208. Пользователь на удаленном ПК 202 просматривает или осуществляет поиск мультимедийных данных на ПК-источнике 204 по общим ресурсам UNC через SMB на этапе 210. Пользователь вызывает действие воспроизведения (PLAY) относительно одного из мультимедийных файлов, и мультимедийный проигрыватель запрашивается на воспроизведение файла через ассоциативную связь автоматического воспроизведения на этапе 212.

Когда мультимедийному проигрывателю нужно передать в потоковом режиме содержимое, обнаруженное по SMB-пути (WserverSMB\folder\...), мультимедийный проигрыватель создает индивидуальный URL (например, URL потоковой передачи SMB-HME) и использует созданный URL для потоковой передачи содержимого на этапе 214. Этот созданный URL направляется к MDA, такому как сервер MDA на серверной машине, предоставляющей SMB-путь, на этапе 216. Например, мультимедийный проигрыватель извлекает формат пути из устройства-источника, читая новый тэг в источнике (например, документ устройства мультимедийного сервера UPnP), который устройство-источник использует, чтобы определить, какой порт должен быть использован для передачи, например, RTSP. Далее, мультимедийный проигрыватель постоянно создает URL (т.е. жестко запрограммированные коды) некоторых конкретных путей (описанных ниже), чтобы передать в потоковом режиме содержимое. Варианты осуществления URL принимают форму одного из следующего, использующего либо HTTP, либо RTSP протокол:

//serverSMB:10243/WMPNSSv3/UNC/?UNC=\\serverSMB\asf\artist \title.wma

//serverSMB:554/WMPNSSv3/UNC/?UNC=\\serverSMB\asf\artist

\title.wma

В указанных выше вариантах осуществления URL протоколы HTTP или RTSP потоковой передачи определены, но остаток URL является одинаковым. Специалистам в области техники очевидны другие варианты осуществления.

В другом варианте осуществления формат URL может также быть частью документа устройства или другим источником, который предоставляет устройство-источник. Еще в одном варианте осуществления только конкретный путь может быть частью документа устройства или другого источника, который предоставляет устройство-источник.

В этот момент на этапе 218 MDA начинает аутентифицировать пользователя перед обратной передачей потока к мультимедийному файлу или даже подтверждением существования файла. В одном варианте осуществления аутентификация производится в следующей последовательности.

Мультимедийный проигрыватель пытается передать в потоковом режиме из URL потоковой передачи SMB-HME.

MDA полагается на функцию связывания мультимедиа (например, WINDOWS® Media Connect (WMC)), чтобы анализировать URL на этапе 220. В одном частном варианте осуществления MDA формирует событие аутентификации, включающее в себя преобразованный URL (например, URL потоковой передачи SMB-HME) в WMC на этапе 220. В другом варианте осуществления WMC анализирует и преобразует URL потоковой передачи SMB-HME в физический путь и возвращает к MDA на этапе 220. В альтернативном варианте осуществления MDA полагается на функцию связывания мультимедиа, чтобы преобразовать URL, переданный посредством MDA в событии аутентификации на этапе 220, в физический путь файла. В этом варианте осуществления MDA формирует событие аутентификации, включающее в себя логический URL, в WMC на этапе 220. WMC анализирует и преобразует URL потоковой передачи SMB-HME в физический путь. По существу, MDA не нужен физический путь во время события аутентификации.

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

Незащищенная потоковая передача:

GET /WMCv2/ UNC/?UNC=\\serverSMB\asf\artist\title.wma HTTP/1.1

Прием: */*

Агент пользователя: NSPlayer/10.0.0.3646 WMFSDK/10.0

Кодировка приема: gzip, deflate

Узел: sbhatt4:10243

Соединение: Keep-Alive

HTTP/1.1 200 OK

Длина содержимого: 618330

Тип содержимого: audio/x-ms-wma Server: Microsoft-HTTPAPI/1.0

Диапазон приема: байты

TransferMode.DLNA.ORG: Streaming

Date: Thu, 21 Jul 2005 19:58:08 GMT

Ниже приведен пример логического URL и переведенного URLS

Логический URL:

/WMCv2/ UNC/?UNC=\\serverSMB\asf\artist\title.wma HTTP/1.1

Физический URL:

C:\users\username\music\asf\artist\title.wma \\serverSMB\share переводится в c:\users\username\music

Защищенная потоковая передача:

GET/WMCv2/ UNC/?UNC=\\serverSMB\asf\artist\title.wma HTTP/1.1

Прием: */*

Агент пользователя: NSPlayer/10.0.0.3646 WMFSDK/10.0

Кодировка приема: gzip, deflate

Узел: sbhatt4:10243

Connection: Keep-Alive

HTTP/1.1 401 Unauthorized

Content-Length: 618330

Content-Type: audio/x-ms-wma Server: Microsoft-HTTPAPI/1.0

Диапазон приема: байты

TransferMode.DLNA.ORG: Streaming

Date: Thu, 21 Jul 2005 19:58:08 GMT

GET/WMCv2/ UNC/?UNC=\\serverSMB\asf\artist\title.wma HTTP/1.1

Прием: */*

Агент пользователя: NSPIayer/10.0.0.3646 WMFSDK/10.0

Кодировка приема: gzip, deflate

Авторизация: Negotiate

YIIOIAYGKwYBBQUCollOFDCCDhCgJDAiBgkqhkiC9xlBAglGCSqGSIb3EgE CAgYKKwYBBAGCNwlCCqKCDeYEgg3iYIIN3gYJKoZlhvcSAQICAQBugg3N MIINyaADAgEFoQMCAQ6iBwMFACAAAACjggzlYYIM4TCCDN2gAwlBBaEc GxpSRURNT05ELkNPUIAuTUIDUk9TT0ZULkNPTalcMBqgAwlBAaETMBEb D3dtcy1kb2dmb29kLXdzbKOCDJgwggyUoAMCARehAwlBHqKCDIYEggyCD dZHPdQ6WT+AK13cZU6B7TW0Py+1gdfYpVH8/0vrTrOCayV93pUak4qyE1c O0H77oyJRMzn+R/ZsAwPbwCBxgGJSS72cnF4e4vNP24GUXJyFd1fj5Plmq HVFphFXMUO3QaQwyXteVuzYyBCMIO0SIOPtGMV9nsfQkz0YOJRcczeSL2 IEnYs8ifwRUE40Y1IT+2f8Hy2vZFFqXo3aM+/vvDvWJpuPer5IBGZPZbADPfk a6QRh3JqpSA9iJnOFKGe1E02CHfWZ3bsd4f/8wRxWkmQ9nZi4QIDpT9Lye Yh7RlnY1alShS9y/qQ5QGFwA/o0YCTalW77RGQknl8STZmi0e65nosp7uSH 0kYVZjGfq42j1Dd+fpMWAjy/BIT6xuelDrTBh+3hD6/fzpJTSIbmyXglHubQgXW Pr/KM+K4UpQRgoGoidBPYr3r1eXhJuBf0kJqhHgtx26f6C7/PjSua+Rlsl41r4AI FNPIDEsjfsHrC2pueGDEzFQTSpw9jWNK753MLM9E2wdQ12YhuotlcAQ6yH ZKs2VA0RBH/Vus/IAyjh38oMmqxscpPrFCwFi6sN2CjocNaucJaSGLVj0VPTV S/EjI4Z RURNT05E

Host: sbhatt4:10243 Connection: Keep-Alive

HTTP/1.1 200 OK

Длина содержимого 618330

Тип содержимого: audio/x-ms-wma Server: Microsoft-HTTPAPI/1.0

Диапазон приема: байты

TransferMode.DLNA.ORG: Streaming

Date: Thu, 21 Jul 2005 19:58:08 GMT

Понятно, что, в то время как примерные запросы, иллюстрированные выше, используют протокол управления DLNA Http и протокол аутентификации Negotiate, другие протоколы, совместимые протоколы управления и/или протоколы аутентификации могут использоваться без отступления от рамок изобретения.

MDA полагается на WMC, чтобы аутентифицировать разрешение удаленного пользователя на доступ по этому URL на этапе 222 (см. также примерные запросы, иллюстрированные выше). Например, в одном варианте осуществления MDA предоставляет событие аутентификации, включающее в себя URL потоковой передачи SMB-HME, к WMC и, в ответ, WMC формирует соответствующий вызов через интерфейс поставщика средств обеспечения безопасности (SSPI) или другой интерфейс и возвращает вызов MDA. MDA затем отправляет вызов мультимедийному проигрывателю на этапе 222. Мультимедийный проигрыватель отвечает на вызов и, как результат, MDA получает маркер доступа на этапе 224. Например, маркером доступа может быть дескриптор WINDOWS®, который представляет конкретного пользователя. Этот дескриптор может быть передан или отправлен другим API, чтобы проверить достоверность пользователя и/или олицетворять пользователя. Другие типы маркеров идентификации или ключей, которые представляют или идентифицируют пользователя, могут использоваться без отступления от рамок настоящего изобретения. WMC успешно аутентифицирует пользователя на этапе 226. Кроме того, MDA формирует событие авторизации в WMC, а WMC подтверждает, имеет ли пользователь доступ к содержимому. Если пользователь имеет доступ к содержимому, WMC передает физическое местоположение файла к MDA на этапе 226. Таким образом, MDA определяет, что запрос потоковой передачи исходит от аутентифицированного пользователя, который может обращаться к этому файлу, и разрешает доступ к защищенному файлу, и MDA передает в потоковом режиме содержимое, соответствующим образом обоснованное, мультимедийному проигрывателю на этапе 228.

В одном варианте осуществления эта последовательность иллюстрирует, что MDA способен использовать UNC-путь и воспроизводить поток при проверке достоверности пользователя с помощью существующих технологий. В вариантах осуществления клиента WINDOWS® Media Player протоколом аутентификации может быть SSPI, так как он использует удостоверения пользователя и точно утверждает, что пользователь имеет доступ к файлу, о котором идет речь.

В одном варианте осуществления среды WINDOWS® WINDOWS® Explorer запускает зарегистрированное приложение для расширения файла. В случае WINDOWS® Media Audio или WINDOWS® Medial Video приложением является WINDOWS® Media Player (WMP). Заданный UNC-путь из WINDOWS® Explorer, WMP:

i. проверяет достоверность того, что зарегистрированный пользователь имеет доступ к UNC-пути;

ii. разрешает UNC-путь в URL потоковой передачи; и

iii. открывает URL потоковой передачи для воспроизведения.

Если выполнены какие-либо редактирования по данным, ассоциативно связанным с файлом 104, предоставленным через URL потоковой передачи, может использоваться SMB-путь, чтобы применять любые изменения. Это разрешает любому пользователю ПК, который может подтвердить доступ к доступному по SMB файлу на устройстве-источнике, передать файл в потоковом режиме от устройства-источника к удаленному устройству без требования приобретения лицензии на удаленном устройстве. Например, пользователь 108 может пройти этапы 206-212 для потоковой передачи содержимого, которое не требует лицензии, такого как незащищенное содержимое. Кроме того, на этапе 216 URL и запрос лицензии потоковой передачи направляется в MDA, раскрывающий SMB-путь. Этот запрос может включать в себя сертификат, доказывающий ошибкоустойчивость устройства и приверженность правилам, предоставленным в любой лицензии, предоставленной позже. Пользователь 108 может пройти этапы 218-226 для потоковой передачи содержимого, которое не требует лицензии. MDA проверяет сертификат или другую информацию, предоставленную на этапе 216, и возвращает лицензию и ключ, которые позволяют мультимедийному проигрывателю дешифровать и воспроизвести содержимое, переданное позже.

Таким образом, в одном варианте осуществления, когда задан UNC-путь, воспроизведение файла, защищенного посредством DRM, разрешено без необходимости того, чтобы новый ПК регистрировался в службе или заново приобретал лицензию от другого компьютера, отличного от компьютера, содержащего UNC-путь. Этот вариант осуществления разрешает пользователю WINDOWS Shell/Explorer свободно просматривать или искать и воспроизводить музыку, защищенную посредством DRM, у себя дома. Дополнительно, любой дополнительный риск в отношении безопасности может быть минимизирован, предлагая другой способ доступа к файлам. Хотя "плоскость попыток нарушения защиты" достигает большего, не было добавлено путей меньшей безопасности, например, файл, который данный пользователь не мог раньше видеть/слышать, теперь больше не предоставляется.

В работе в одном варианте осуществления компьютер 130, такой как иллюстрированный на фиг.3, выполняет машиноисполняемые инструкции, такие как иллюстрированные выше, чтобы функционировать либо как удаленное устройство, либо как устройство-источник.

Фиг.3 показывает один пример вычислительного устройства общего назначения в форме компьютера 130. В одном варианте осуществления изобретения компьютер, такой как компьютер 130, подходит для использования на других чертежах, проиллюстрированных и описанных в данном документе. Компьютер 130 имеет один или более процессор или процессорное устройство 132 и системную память 134. В проиллюстрированном варианте осуществления системная шина 136 подключает различные системные компоненты, в том числе системную память 134, к процессорам 132. Шина 136 представляет один или более из нескольких типов структур шин, в том числе шины памяти или контроллера памяти, периферийной шины, ускоренного графического порта и процессора или локальной шины, используя любую из множества архитектур шин. В качестве примера, но не ограничения, такие архитектуры включают в себя шину стандартной архитектуры для промышленного применения (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), шину стандарта (VESA) локальной видеошины для ПК и шину соединения периферийных компонентов (PCI), также известную как мезонинная шина.

Компьютер 130 в типичном варианте имеет, по меньшей мере, некоторую форму машиночитаемых носителей. Машиночитаемым носителем, который включает в себя энергозависимый и энергонезависимый носитель, сменный и стационарный носитель, может быть любой доступный носитель, к которому можно обращаться с помощью компьютера 130. В качестве примеров, но не ограничения, машиночитаемых носителей можно привести компьютерный носитель хранения и носитель передачи данных. Компьютерный носитель хранения включает в себя как энергозависимый и энергонезависимый, так и съемный и несъемный носитель, реализованный любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Например, компьютерный носитель хранения включает в себя, но не в качестве ограничения, ОЗУ, ПЗУ (постоянное запоминающее устройство), ЭСППЗУ (электрически стираемое и программируемое ПЗУ), флеш-память или другую технологию памяти, диски CD-ROM (ПЗУ на компакт-диске), универсальные цифровые диски (DVD) или другое запоминающее устройство на оптическом диске, магнитные дискеты, магнитную ленту, запоминающее устройство на магнитном диске или другие магнитные устройства хранения или любые другие носители, которые могут быть использованы для сохранения желаемой информации и которые могут быть доступны посредством компьютера 130. Носитель передачи данных типично реализует машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированных информационных сигналах, таких как сигнал несущей или другой механизм распространения, и включает в себя любые носители доставки информации. Специалисты в данной области техники знакомы с модулированным информационным сигналом, который имеет одну или более характеристики, установленные или изменяемые таким образом, чтобы кодировать информацию в сигнале. Проводной носитель, такой как проводная сеть или непосредственное проводное соединение, и беспроводной носитель, такой как акустическая среда, радиочастотное, инфракрасное излучение и другая беспроводная среда, являются примерами носителей передачи данных. Сочетания любого из вышеперечисленного также следует включить в число машиночитаемого носителя.

Системная память 134 включает в себя компьютерный носитель хранения в виде энергозависимого и/или энергонезависимого запоминающего устройства. В проиллюстрированном варианте осуществления системная память 134 включает в себя постоянное запоминающее устройство (ПЗУ) 138 и оперативное запоминающее устройство (ОЗУ) 140. Базовая система 142 ввода-вывода (BIOS), содержащая основные процедуры, которые помогают передавать информацию между элементами в компьютере 130, например, при загрузке, типично сохраняется в ПЗУ 138. ОЗУ 140 типично содержит данные и/или программные модули, к которым можно осуществлять мгновенный доступ и/или обрабатываемые в данный момент процессором 132. В качестве примера, но не ограничения, фиг.3 иллюстрирует операционную систему 144, прикладные программы 146, другие программные модули 148 и программные данные 150.

Компьютер 130 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители. Например, фиг.3 иллюстрирует накопитель 154 на жестком диске, который считывает или записывает на стационарный энергонезависимый магнитный носитель. Фиг.3 также показывает накопитель 156 на магнитных дисках, который считывает или записывает на съемный энергонезависимый магнитный диск 158, и накопитель 160 на оптических дисках, который считывает или записывает на съемный энергонезависимый оптический диск 162, такой как CD-ROM или другой оптический носитель. В качестве других сменных/стационарных, энергозависимых/энергонезависимых компьютерных носителей хранения, которые могут использоваться в примерном операционном окружении, могут выступать (но не только) кассеты на магнитных лентах, карты флеш-памяти, универсальные цифровые диски, цифровые видеоленты, полупроводниковое ОЗУ, полупроводниковое ПЗУ и т.п. Накопитель 154 на жестких дисках, накопитель 156 на магнитных дисках и накопитель 160 на оптических дисках типично подключены к системной шине 136 посредством интерфейса стационарного запоминающего устройства, такого как интерфейс 166.

Накопители или другие запоминающие устройства большой емкости и ассоциативно связанный с ним компьютерный носитель хранения, описанные выше и проиллюстрированные на фиг.3, обеспечивают хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера 130. На фиг.3, например, накопитель 154 на жестких дисках проиллюстрирован в качестве сохраняющего операционную систему 170, прикладные программы 172, другие программные модули 174 и программные данные 176. Заметим, что эти компоненты могут либо быть аналогичными или отличаться от операционной системы 144, прикладных программ 146, других программных модулей 148 и программных данных 150. Операционная система 170, прикладные программы 172, другие программные модули 174 и программные данные 176 даны в настоящем документе с разными номерами, чтобы проиллюстрировать, что как минимум они являются различными копиями.

Пользователь может вводить команды или информацию в компьютер 130 посредством устройств ввода или устройств выбора пользовательского интерфейса, например клавиатуры 180 и указательного устройства 182 (к примеру, мыши, шарового манипулятора, пера или сенсорной панели). Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер или тому подобное. Эти и другие устройства ввода подключены к процессору 132 посредством интерфейса 184 пользовательского ввода, который подключен к системной шине 136, но могут быть подключены посредством другого интерфейса и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 188 или другой тип дисплейного устройства также подключен к системной шине 136 посредством такого интерфейса, как видеоинтерфейс 190. Помимо монитора, компьютеры могут также включать в себя другие периферийные устройства вывода (не показаны), например принтер и динамики, которые могут быть подключены средствами периферийного интерфейса вывода (не показан).

Компьютер 130 может работать в сетевом окружении, использующем логические соединения с одной или более удаленными компьютерами, такими как удаленный компьютер 194. Удаленным компьютером 194 может быть персональный компьютер, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой общий узел сети, и она типично включает в себя многие или все элементы, описанные выше относительно компьютера 130. Логические соединения, показанные на фиг.3, включают в себя локальную вычислительную сеть (LAN) 196 и глобальную вычислительную сеть (WAN) 198, но могут также включать в себя другие сети. LAN 136 и/или WAN 138 могут быть любой проводной сетью, беспроводной сетью или их сочетанием и т.п. Такие сетевые окружения широко распространены в офисах, корпоративных вычислительных сетях, сетях интранет и глобальных вычислительных сетях (к примеру, в Интернете).

Когда используется в локальном сетевом окружении, компьютер 130 подключается к LAN 196 посредством сетевого интерфейса или адаптера 186. Когда используется в глобальном окружении WAN, компьютер 130 в типичном варианте включает в себя модем 178 или другое средство установления обмена данными по WAN 198, такой как Интернет. Модем 178, который может быть внутренним или внешним, подключается к системной шине 136 по пользовательскому интерфейсу 184 ввода данных или с использованием другого подходящего механизма. В сетевом окружении программные модули, изображенные по отношению к компьютеру 130, или их части могут храниться на удаленном устройстве хранения данных (не показано). В качестве примера, а не ограничения, фиг.3 иллюстрирует удаленные прикладные программы 192 как находящиеся на запоминающем устройстве. Показанные сетевые соединения являются примерными, и могут быть использованы другие средства установления канала связи между компьютерами.

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

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

Хотя описано в связи с примерным окружением вычислительной системы, включающим в себя компьютер 130, варианты осуществления изобретения работоспособны с многочисленными другими окружениями или конфигурациями в вычислительных системах общего назначения или специального назначения. Окружение вычислительной системы не предназначено, чтобы означать какое-либо ограничение на область использования или функциональность вариантов осуществления изобретения. Более того, окружение вычислительной системы не должно быть интерпретировано в качестве имеющего какую бы то ни было зависимость или требование, относящееся к любому одному или сочетанию из компонентов, проиллюстрированных в примерном операционном окружении. Примеры широко распространенных вычислительных систем, окружений и/или конфигураций, которые могут быть подходящими для использования с вариантами осуществления изобретения, включают в себя (но не только) персональные компьютеры, серверные компьютеры, "карманные" или переносные устройства, многопроцессорные системы, системы на базе микропроцессоров, декодеры телевизионных каналов, программируемую бытовую электронную аппаратуру, мобильные телефоны, сетевые ПЭВМ, мини-ЭВМ, мейнфреймы, распределенные вычислительные окружения, которые содержат любую из вышеуказанных систем и устройств, и т.п.

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

Интерфейс в контексте архитектуры программного обеспечения включает в себя программный модуль, компонент, кодовую часть или другую последовательность машиноисполняемых инструкций. Интерфейс включает в себя, например, первый модуль, осуществляющий доступ ко второму модулю, чтобы выполнять вычислительные задачи от имени первого модуля. Первый и второй модули включают в себя, в одном примере, интерфейсы прикладного программирования (API), такие как предоставленные операционными системами, интерфейсы модели компонентных объектов (COM) (к примеру, для обмена данными одноранговых приложений) и интерфейсы формата обмена метаданными расширяемого языка разметки (XMI) (к примеру, для обмена данными между веб-службами).

Интерфейс может быть явно связанной синхронной реализацией, такой как Java 2 Platform Enterprise Edition (J2EE), COM или распределенной COM (DCOM). Альтернативно или помимо этого, интерфейс может быть неявно связанной асинхронной реализацией, такой как веб-служба (к примеру, используя простой протокол объектного доступа). В общем случае интерфейс включает в себя любое сочетание следующих характеристик: явно связанный, неявно связанный, синхронный или асинхронный. Дополнительно, интерфейс может соответствовать стандартному протоколу, собственному протоколу