Мигрирование виртуальной машины, которая владеет ресурсом, таким, как аппаратное устройство

Иллюстрации

Показать все

Изобретение относится к способу и механизму, которые могут применяться, чтобы переместить виртуальную машину, которая владеет ресурсом с первой машины или платформы на вторую машину или платформу. Техническим результатом является обеспечение сохранения информации о состоянии, относящейся к ресурсу при миграции. Система содержит: ресурс для предоставления службы ресурса; и вычислительное устройство, имеющее первую и вторую виртуальные машины (VM), созданные на вычислительном устройстве, первая VM первоначально владеет ресурсом и службой, предоставляемой им, вторая VM впоследствии связывается с возможностью передачи данных с ресурсом, а ресурс впоследствии назначается второй VM после того, как ресурс был удален из первой VM, так что вторая VM впоследствии владеет ресурсом и службой, предоставленной им. 3 н. и 12 з.п. ф-лы, 6 ил.

Реферат

Область техники

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

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

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

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

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

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

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

Соответственно, возможен случай, когда ресурс эмулируется уровнем виртуализации/монитором виртуальной машины как находящийся в конце стека. В реальности уровень виртуализации пересылает запрос для ресурса к VM-H, который владеет или имеет доступ к такому ресурсу. Подобным образом возможен случай, когда VM-C может быть наделен информированными возможностями, в которых такой VM-C осведомлен о своем виртуальном существовании, и отправляет запросы отдельному ресурсу посредством "информированного" стека, в конце которого находится VM-шина или другой маршрут связи, который соединяет VM-C с VM-H, который владеет или имеет доступ к ресурсу, где VM-шина обходит уровень виртуализации. Также, подобным образом, возможен случай, когда VM-C с информированными возможностями отправляет запросы отдельному ресурсу посредством виртуального канала между VM-C и VM-H, как реализуется с помощью VM-шины. Какой бы протокол связи ни применялся, VM-C обращается к отдельному ресурсу посредством VM-H, и, соответственно, каждый запрос, отправленный посредством VM-C отдельному ресурсу, следует по маршруту к отдельному ресурсу посредством соответствующего VM-H.

В частности, относительно VM-H, который владеет отдельным ресурсом, затем, должно быть оценено, что такой VM-H может непосредственно обращаться к ресурсу посредством подходящего адаптера для ресурса, который выделен для VM-H. В типичном варианте, хотя не обязательно, адаптер является частью аппаратных средств или программного обеспечения VM-H, где такие аппаратные средства или программное обеспечение служат средством связи ресурса с VM-H. Например, такой адаптер может быть картой сетевого интерфейса или видеокартой или программным эквивалентом. Тогда с помощью прямого доступа к такому адаптеру VM-H может использовать ресурс с относительно высокой степенью эффективности и производительности. Отметим здесь, что отдельный ресурс может иметь множество соответствующих адаптеров, каждый из который потенциально назначен отдельному VM-H, и, соответственно, множество VM-H могут владеть отдельным ресурсом. Однако только один VM-H может быть назначен для или "владеть" отдельным адаптером в один любой момент времени, по меньшей мере, в типичном варианте. Во всяком случае в типичном варианте может допускаться, что владение отдельным адаптером равносильно владению ресурсом отдельного адаптера.

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

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

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

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

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

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

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

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

Вторая VM потом связывается с возможностью передачи данных с ресурсом, и ресурс впоследствии назначается второй VM после того, как ресурс удаляется из первой VM, так что вторая VM впоследствии владеет ресурсом и службой, предоставленной им. Вторая VM, как собственник ресурса, связывается с возможностью передачи данных со вторым портом первой VM посредством среды передачи, и каждый запрос доступа на втором порту дополнительно перенаправляется, в свою очередь, второй VM посредством среды передачи и затем дополнительно перенаправляется, в свою очередь, ресурсу посредством второй VM, которая должна быть задействована таким ресурсом. Соответственно, все запросы доступа из стека ресурса первой VM обрабатываются ресурсом последовательно, даже после того, как ресурс был удален из первой VM и назначен второй VM, и после этого сохранение или мигрирование могут быть завершены.

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

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

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

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

Фиг.3 является блок-схемой, показывающей вычислительное устройство, с множеством подключенных разделов, включающих в себя главный раздел с виртуальной машиной (VM-H), которая владеет отдельным ресурсом и предоставляет службы ресурса, и клиентский раздел с виртуальной машиной (VM-C), которая использует службы ресурса VM-H в соответствии с вариантами осуществления настоящего изобретения;

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

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

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

Подробное описание изобретения

Вычислительное окружение

Фиг.1 и последующее обсуждение предназначены, чтобы предоставить краткое общее описание подходящего вычислительного окружения, в котором может быть реализовано изобретение. Тем не менее следует понимать, что карманные, портативные и другие вычислительные устройства всех типов рассматриваются для использования в связи с настоящим изобретением. Хотя ниже описан компьютер общего назначения, это лишь один пример. Таким образом, настоящее изобретение может быть реализовано в окружении сетевых размещаемых служб, в которых привлекается немного или минимум клиентских ресурсов, к примеру, в сетевом окружении, в котором клиентское устройство выступает просто как обозреватель или интерфейс к всемирной сети.

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

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

Относительно фиг.1 примерная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не в качестве ограничения, блок 120 обработки, системную память 130 и системную шину 121, которая соединяет различные компоненты системы, включая системную память, с блоком 120 обработки. Системная шина 121 может быть любой из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующих любую из многообразия шинных архитектур. В качестве примера, но не ограничения, такие архитектуры включают в себя шину стандартной архитектуры для промышленного применения (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), шину стандарта (VESA) локальной видеошины для ПК и шину соединения периферийных компонентов (PCI), также известную как мезонинная шина, и PCI Express.

Компьютер 110 в типичном варианте включает в себя многообразие машиночитаемых носителей. Машиночитаемыми носителями могут быть любые возможные носители, доступ к которым может быть осуществлен компьютером 110 и которые могут быть как энергозависимыми или энергонезависимыми, так и съемными или несъемными. В качестве примера, но не ограничения, машиночитаемые носители могут содержать компьютерные устройства хранения и среду передачи данных. Компьютерное устройство хранения включает в себя как энергозависимые и энергонезависимые носители, так и съемные и несъемные носители, реализованные в рамках любого способа или технологии для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерное устройство хранения включает в себя, но не в качестве ограничения, RAM, ROM, EEPROM, флэш-память, или другую технологию памяти, CD-ROM, цифровой универсальный диск (DVD) или другой оптический дисковый носитель, магнитные кассеты, магнитную ленту, магнитный дисковый накопитель или другие магнитные устройства хранения, или любой другой носитель, который может быть использован, чтобы хранить желаемую информацию и к которому может быть осуществлен доступ компьютером 110. Среда передачи данных обычно воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном информационном сигнале, таком как несущая волна, или другом транспортном механизме, и включает в себя любую среду доставки информации. Термин "модулированный информационный сигнал" означает сигнал, который обладает одной или несколькими характеристиками, заданными или измененными таким способом, как кодирование информации в сигнале. В качестве примера, а не ограничения, среда передачи включает в себя проводную среду, такую как проводная сеть или прямое кабельное соединение или волоконно-оптическое соединение, и беспроводную среду, такую как акустическая, RF, инфракрасная, оптическая, фазированная антенная решетка, функционирующая на любой длине волны, направленные и ненаправленные электромагнитные излучатели и приемники, работающие на любой длине волны, и другую беспроводную среду.

Комбинации любых из вышеприведенных также должны быть включены в объем машиночитаемых носителей.

Системная память 130 включает в себя носитель хранения вычислительной машины в виде энергозависимого и/или энергонезависимого запоминающего устройства, такого как постоянное запоминающее устройство 131 (ROM) и оперативное запоминающее устройство 132 (RAM). Базовая система 133 ввода/вывода (BIOS), содержащая в себе базовые подпрограммы, которые помогают передавать информацию между элементами в рамках компьютера 110, к примеру, во время запуска, в типичном варианте сохранена в ROM 131. RAM 132 в типичном варианте содержит в себе данные и/или программные модули, которые непосредственно доступны и/или являются собственно выполняемыми блоком 120 обработки. В качестве примера, но не ограничения, фиг.1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные устройства хранения. Только в качестве примера, фиг.1 иллюстрирует накопитель 141 на жестком диске, который считывает с или записывает на несъемный энергонезависимый магнитный носитель, накопитель 151 на магнитных дисках, который считывает с или записывает на съемный энергонезависимый магнитный диск 152, и накопитель 155 на оптических дисках, который считывает с или записывает на съемный энергонезависимый оптический диск 156, такой как CD-ROM, или другой оптический накопитель. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут быть использованы в примерном операционном окружении, включают в себя, но не в качестве ограничения, магнитные кассеты, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельные RAM, твердотельные ROM. Накопитель 141 на жестком диске в типичном варианте подключен к системной шине 121 через интерфейс несъемной памяти, такой как интерфейс 140, а накопитель 151 на магнитных дисках и накопитель 155 на оптических дисках в типичном варианте подключены к системной шине 121 посредством интерфейса съемной памяти, такого как интерфейс 150.

Накопители и ассоциированные с ним компьютерные устройства хранения, обсужденные выше и проиллюстрированные на фиг.1, предоставляют хранение машиночитаемых инструкций, структур данных, программных модулей, и других данных для компьютера 110. На фиг.1, например, накопитель 141 на жестких дисках проиллюстрирован в качестве хранящего операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут либо быть такими же, как, или отличными от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 даны здесь с разными номерами, чтобы проиллюстрировать, что, как минимум, они являются различными копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, например, клавиатура 162 и указательное устройство 161, обычно упоминаемое как мышь, трекбол или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер. Эти и другие устройства ввода данных часто подключены к блоку 120 обработки через пользовательский интерфейс 160 ввода данных, который соединен с системной шиной 121, однако могут подключаться через другие интерфейсы и структуры шин, такие как параллельный порт, игровой порт или универсальная последовательная шина (USB).

Монитор 191 или другой тип устройства отображения также подключен к системной шине 121 через интерфейс, например видеоинтерфейс 190. Графический интерфейс 182, такой как Северный мост, может быть также подключен к системной шине 121. Северный мост представляет собой набор микросхем, которые связываются с CPU или ведущим блоком 120 обработки, и несет ответственность за передачу данных через ускоренный графический порт (AGP). Один или более графических блоков 184 обработки (GPU) могут присоединяться к графическому интерфейсу 182. В этой связи GPU 184 в общем включают в себя размещенное на микросхеме устройство памяти, такое как регистровое хранилище, и GPU 184 связываются с видеопамятью 186. GPU 184, тем не менее, являются одним из примеров сопроцессоров, и такое разнообразие сопроцессорных устройств может быть включено в компьютер 110. Монитор 191 или другой тип устройства отображения также подключен к системной шине 121 через интерфейс, например видеоинтерфейс 190, который может в свою очередь связываться с видеопамятью 186. В дополнение к монитору 191 компьютер может также включать другие периферийные устройства вывода, такие как громкоговорители 197 и принтер 196, которые могут быть присоединены через интерфейс 195 вывода для периферийных устройств.

Компьютер 110 может работать в сетевом окружении, использующем логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленным компьютером 180 может быть персональный компьютер, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой общий узел сети, и он в типичном варианте включает в себя многие или все элементы, описанные выше относительно компьютера 110, хотя на фиг.1 проиллюстрировано только устройство 181 памяти. Логические соединения, показанные на фиг.1, включают в себя локальную вычислительную сеть (LAN) 171 и глобальную вычислительную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды являются обычными в офисах, корпоративных компьютерных сетях, сетях интранет и Интернете.

Когда используется в сетевом LAN-окружении, компьютер 110 подключен к LAN 171 через сетевой интерфейс или адаптер 170. Когда используется в сетевом WAN-окружении, компьютер 110 в типичном варианте включает в себя модем 172 или другое средство для установления связи по WAN 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть подключен к системной шине 121 через интерфейс 160 пользовательского ввода или с использованием другого подходящего механизма. В объединенном в сеть окружении программные модули, изображенные относительно компьютера 110, или их части, могут быть сохранены в удаленном устройстве памяти. В качестве примера, а не ограничения, фиг.1 иллюстрирует удаленные прикладные программы 185 как находящиеся на устройстве 181 памяти. Должно быть очевидно, что показанные сетевые соединения являются примерными, и может быть использовано другое средство установления линии связи между компьютерами.

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

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

Фиг.2 представляет блок-схему примерного сетевого или распределенного вычислительного окружения. Распределенное вычислительное окружение содержит в себе вычислительные объекты 10a, 10b и т.д. и вычислительные объекты или устройства 110a, 110b, 110c и т.д. Эти объекты могут содержать программы, способы, хранилища данных, программируемую логику и т.д. Объекты могут содержать части одних и тех же или разных устройств, таких как PDA, телевизоры, MP3-проигрыватели, телевизоры, персональные компьютеры и т.д. Каждый объект может связываться с другим объектом посредством сети 14 связи. Сеть сама может содержать другие вычислительные объекты и вычислительные устройства, которые предоставляют службы системе на фиг.2. В соответствии с аспектом изобретения каждый объект 10 или 110 может содержать приложение, которое может запрашивать технологии аутентификации настоящего изобретения для доверяемого графического конвейера(ов).

Следует также принимать во внимание, что объект, например, 110c может размещаться на другом вычислительном устройстве 10 или 110. Таким образом, хотя изображенное физическое окружение может показывать подключенные устройства как компьютеры, эта иллюстрация является просто примерной, и альтернативно может быть изображено или описано физическое окружение, содержащее различные цифровые устройства, например PDA, телевизоры, проигрыватели MP3 и т.д., программные объекты, такие как интерфейсы, COM-объекты и т.п.

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

В домашних сетевых окружениях существуют, по меньшей мере, четыре несопоставимых сетевых транспортных среды, которые, каждая, могут поддерживать уникальный протокол, такой как линия питания, среда передачи данных (как беспроводная, так и проводная), среда передачи голоса (например, телефон) и средства развлечения. Большинство домашних устройств управления, таких как переключатели света и приборы, могут использовать линию питания для связности. Службы данных могут входить в дом как широкополосный канал передачи (например, либо DSL, либо кабель-модем) и доступны в доме с помощью либо беспроводной (например, HomeRF или 802.11b), либо проводной (например, Home PNA, категория 5, даже линия питания) связи. Голосовой трафик может входить в дом, либо как проводной (например, категория 3), либо как беспроводной (например, сотовые телефоны), и может распределяться в доме с помощью проводки категории 3. Средства развлечения могут входить в дом либо через спутник, либо через кабель и в типичном варианте распределяются в доме с помощью коаксиального кабеля. IEEE 1394 и DVI также проявляются как цифровые межсоединения для групп мультимедийных устройств. Все из этих сетевых окружений и другие, которые могут возникнуть в качестве стандартов протоколов, могут быть связаны, чтобы сформировать интрасеть, которая может быть соединена с внешним миром посредством Интернета. Вкратце, множество несопоставимых источников существуют для хранения и передачи данных и, следовательно, двигаясь вперед, вычислительным устройствам потребуются способы защиты содержимого во всех частях конвейера обработки данных.

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

Сетевая инфраструктура разрешает множество сетевых топологий, таких как клиент/сервер, одноранговая или гибридная архитектуры. "Клиент" является членом класса или группы, которая использует службы другого класса или группы, к которой он не привязан. Таким образом, в вычислении клиент является процессом, т.е. грубо набором инструкций или задач, который запрашивает службу, предоставляемую другой программой. Клиентский процесс использует запрошенную службу без необходимости "знать" какие-либо рабочие детали о другой программе или самой службе. В клиент/серверной архитектуре, в частности сетевой системе клиентом обычно является компьютер, который осуществляет доступ к общим сетевым ресурсам, предоставляемым другим компьютером, к примеру сервером. В примере на фиг.2 компьютеры 110a, 110b и т.д. могут рассматриваться как клиенты, а компьютеры 10a, 10b и т.д. могут рассматриваться как серверы, где серверы 10a, 10b и т.д. хранят данные, которые затем дублируются в клиентских компьютерах 110a, 110b и т.д.

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

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