RU2498394C2 - Синхронизация жизненных циклов виртуальной машины и приложения - Google Patents

Синхронизация жизненных циклов виртуальной машины и приложения Download PDF

Info

Publication number
RU2498394C2
RU2498394C2 RU2010150809/08A RU2010150809A RU2498394C2 RU 2498394 C2 RU2498394 C2 RU 2498394C2 RU 2010150809/08 A RU2010150809/08 A RU 2010150809/08A RU 2010150809 A RU2010150809 A RU 2010150809A RU 2498394 C2 RU2498394 C2 RU 2498394C2
Authority
RU
Russia
Prior art keywords
application
virtual machines
level
virtual machine
virtual
Prior art date
Application number
RU2010150809/08A
Other languages
English (en)
Other versions
RU2010150809A (ru
Inventor
Игорь СЕДУХИН
Дэниел ЭШНЕР
Роберт М. ФРИС
Майкл О. НИРИ
Александр Е. НОСОВ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2010150809A publication Critical patent/RU2010150809A/ru
Application granted granted Critical
Publication of RU2498394C2 publication Critical patent/RU2498394C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

Уровень техники
В настоящее время повсеместно используются традиционные вычислительные системы для широкого диапазона целей для производительности, развлечения или подобного. Одним поводом для этого является то, что вычислительные системы не только имеют тенденцию для увеличения эффективности при использовании автоматизации задач, но вычислительные системы могут быть легко сконфигурированы или реконфигурированы с течением времени для таких задач. Например, если пользователь обнаруживает, что одна или более из прикладных программ запускаются очень медленно, это может быть соответственно непосредственным поводом для того, чтобы пользователь добавил больше памяти (например, оперативное запоминающее устройство (RAM)), или добавил или разгрузил один или более процессоров (например, центральный процессор (CPU), графический процессор (GPU), и т.д.). Это может быть непосредственным поводом для добавления или улучшения устройства памяти, или даже для добавления или замены других периферийных устройств, которые могут быть использованы для совместной работы над объемом работ или для обработки объема работ. Подобным образом, это может быть непосредственным поводом для пользователя установить или обновить различные прикладные программы на компьютере, включающие в себя операционную систему. Это теоретически имеет тенденцию быть верным даже для большого масштаба уровня предприятия.
На практике, однако, простая возможность добавить или заменить физические компьютерные аппаратные средства может быть часто запугивающей, в особенности в крупных масштабах, иногда приводя к нескольким часам дополнительного времени для замены или конфигурации новой вычислительной системы (или обновления компонентов). К счастью, недавние разработки в технологии виртуальной машины (VM) улучшили или устранили много из этих типов ограничений. Например, виртуальная машина содержит набор электронных файлов, которые работают как дополнительная, уникальная вычислительная система, хоть и в пределах и ограниченности ресурсов другой физической вычислительной хост-системы.
В дополнение, этот набор файлов для каждой виртуальной машины может быть легко сконфигурирован или реконфигурирован в терминах доступа к ресурсам, и на одном физическом хост-узле могут быть установлены несколько различных виртуальных машин. Более того, каждая виртуальная машина может иметь доступ к ресурсам хост-узла на различных уровнях. Кроме того еще, число виртуальных машин и распределение ресурсов для каждой виртуальной машины на любой заданной вычислительной хост-системе могут с относительной легкостью меняться время от времени. Пользователи каждой виртуальной машины, однако, имеют тенденцию к тому, чтобы быть огражденными от таких изменений и, обычно, быть способными иметь доступ и видеть каждую отличную виртуальную машину так, как будто она является индивидуальной отдельной физической вычислительной системой с ее собственными ресурсами. По меньшей мере, по этим соображениям, организации используют технологию виртуальной машины все с большими и большими масштабами.
В дополнение, другое преимущество виртуальных систем в том, что администраторы могут добавлять почти столько виртуальных машин, сколько потребуется по первому требованию, для того, чтобы запустить необходимое количество прикладных программ. Например, системный администратор мог определить потребность какой-то точки в создании одной или более виртуальной машины для обработки приложения базы данных в одном сетевом размещении и определить потребность создать другой набор виртуальных машин для обработки сетевого и почтового потока в другом сетевом размещении. При осуществлении намерения системный администратор по существу создает виртуальные машины, где требуется, и затем конфигурирует виртуальные машины для этих приложений. Такие конфигурации могут вовлекать системного администратора (или, в некоторых случаях, другого администратора приложений) установить подходящие прикладные программы на виртуальные машины. Все это - и выделение ресурсов и установка - может происходить в пределах только нескольких часов от определения начальных потребностей.
Конечно, простота, с которой администратор может создавать и настраивать виртуальные машины для обработки приложений, может приводить к другим проблемам, относящимся к управлению не только виртуальных машин, но также к прикладным программам, запускаемым на них. Более точно, нарастающая общая проблема состоит в том, что организации часто создают и используют виртуальные машины более быстро, чем они могут отслеживать. По причине скорости создания виртуальной машины любой взятый администратор может быть не осведомлен в том, сколько точно сделано виртуальных машин в определенное время, и какие виртуальные машины созданы для любого конкретного физического хост-узла.
Подобным образом, часто существует разобщенность в ведении записей, что происходит при идентификации того, какие виртуальные машины запущены и какие приложения запущены на виртуальных машинах. Традиционные механизмы отслеживания такой информации обычно предусматривают поддержку администратором детализированных журналов (например, в электронных таблицах) о том, что они создали и что они удалили или вывели из эксплуатации. Не только это может быть в известной степени обременительным для большого количества виртуальных машин и прикладных программ, но и существование частой несогласованности между тем, что администраторы создадут, и тем, что администраторы запишут в свой журнал. Это в особенности является верным для систем масштаба предприятия, которые могут иметь большое количество администраторов или пользователей, которые устанавливают и используют виртуальные машины.
Таким образом, нередко случается, особенно в больших организациях, системному администратору отслеживать конкретный набор виртуальных машин на одном наборе физических хост-узлов, но не быть осведомленным о том, что другой администратор установил другие приложения на этих виртуальных машинах. Если администратор, который первоначально создал виртуальную машину, пытался удалить или вывести из эксплуатации виртуальную машину, этот администратор мог принять сообщение об ошибке, указывающее, что другие приложения запущены на виртуальной машине. Тогда первоначальный администратор мог оставить виртуальную машину в покое. Когда другой администратор позже устраняет другую прикладную программу, которая предотвращала удаление виртуальной машины, и терпит неудачу в удалении виртуальной машины, виртуальная машина может оставаться в системе почти бесконечно.
Таким образом, будет принято во внимание то, что жизненный цикл заданной прикладной программы часто не удается совместить с жизненным циклом виртуальной машины. Это частично существует, пока есть недостаточная гарантия того, что администратор будет выводить из эксплуатации или устранять виртуальную машину, когда администратор уже деинсталлировал прикладную программу и больше не нуждается в виртуальной машине. По этим и другим причинам организации, которые реализуют виртуальную технологию, часто сталкиваются с проблемой, общеизвестной как "разрастание виртуальных машин" (VM разрастание).
По существу, разрастание виртуальных машин описывает ситуацию, в которой организация может неоднократно создавать виртуальные машины, но в остальном терять отслеживание того, как виртуальные машины используются, и/или кто может все еще использовать виртуальные машины. Будет принято во внимание, что разрастание виртуальных машин может создать ненужный непроизвольный расход ресурсов организации. Непроизвольный расход происходит, по меньшей мере, отчасти, когда виртуальные машины, которые должны быть удалены, могут все еще занимать различные аппаратные ресурсы, которые не могут быть использованы другими виртуальными машинами. Этот непроизвольный расход также происходит, по меньшей мере, отчасти, когда персонал организации может иметь потребность тратить большое количество сил и средств для того, чтобы правильно идентифицировать особенности каждой виртуальной машины в системе, и определять, нужны ли вообще виртуальные машины.
Соответственно, существует некоторое количество трудностей в управлении виртуальными машинами для организации, которые могут быть урегулированы. Будет принято во внимание, что такие трудности могут быть особенно острыми, когда организация использует распределенные прикладные программы, которые вовлекают несколько компонентов, исполняемых на нескольких различных виртуальных (и физических) машинах.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Реализации настоящего изобретения преодолевают одну или более проблем в области техники с системами, способами и компьютерными программными продуктами, сконфигурированными для эффективного управления созданием, работой и выводом из эксплуатации виртуальных машин в организации. В одной реализации, например, система содержит уровень приложений, который координирует и руководит созданием виртуальной машины через один или более уровней виртуальных машин в ответ на запросы об установке или деинсталляции прикладной программы. Уровень приложений может дополнительно координировать то, что является установленным и/или деинсталлированным благодаря общей структуре данных, к которой могут обратиться другие управляющие приложения, работающие в системе. По существу, уровень приложений может обеспечивать то, что жизненные циклы виртуальной машины и прикладной программы совпадают.
Например, способ с позиции уровня приложений может повлечь прием одного или более запросов в уровне приложений для инициации прикладной программы. Способ также может повлечь определение из одного или более свойств запрошенной прикладной программы, какая из одной или более виртуальных машин должна быть развернута для исполнения запрошенной прикладной программы. В дополнение, способ может повлечь отправку одной или более команд виртуальной машины от уровня приложений к уровню виртуальных машин для развертывания определенной одной или более виртуальных машин для запрошенной прикладной программы. Более того, способ может повлечь установку запрошенной прикладной программы на развернутые одну или более виртуальные машины.
В дополнение к вышеприведенному, способ с позиции комплексной системы управления созданием, работы и вывода из эксплуатации одной или более виртуальных машин сможет повлечь прием одного или более запросов на уровне (103) приложений для инициирования прикладной программы. Запрошенная прикладная программа включает в себя одно или более свойств, которые указывают тип и число виртуальных машин, которые должны быть использованы. Способ может также повлечь просмотр одной или более структур данных в уровне приложений для идентификации одной или более виртуальных машин, которые являются доступными в автоматизированной среде. В дополнение способ может повлечь инструктирование уровня виртуальных машин, чтобы установить запрошенную прикладную программу, которая устанавливается на один или более физических хост-узлов. Более того, способ при идентификации через структуру данных того, что запрошенная прикладная программа была деинсталлирована с виртуальной машины, может повлечь автоматическое управление уровня приложений удалением виртуальной машины с соответствующего физического хост-узла.
Этот раздел предоставлен, чтобы представить выборку концепций в упрощенном виде, которые дополнительно описаны ниже в подробном описании. Краткое изложение не предназначено для определения ключевых или существенных признаков заявленного объекта изобретения и не предназначено, чтобы быть использованным как помощь в определении объема заявленного объекта изобретения.
Дополнительные признаки и преимущества изобретения будут изложены в описании, которое следует, и частично будут очевидными из описания или могут быть изучены при осуществлении изобретения на практике. Признаки и преимущества изобретения могут быть реализованы и получены посредством средств и сочетаний, конкретно указанных в прилагаемой формуле изобретения. Эти и другие признаки настоящего изобретения станут более очевидными из следующего описания и прилагаемой формулы изобретения, или могут быть изучены при осуществлении изобретения, изложенного в материалах настоящей заявки, на практике.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Для того чтобы описать способ, в котором могут быть получены вышеизложенные и другие преимущества и признаки, более точное описание вышеописанного вкратце изобретения будет выполнено посредством ссылки к его конкретным вариантам осуществления, которые проиллюстрированы в прилагаемых чертежах. При понимании того, что эти чертежи изображают только типичные варианты осуществления изобретения и, следовательно, не должны быть приняты ограничивающими его объем, изобретение будет описано и объяснено с дополнительной спецификой и деталями посредством использования прилагаемых чертежей, на которых:
фиг.1А иллюстрирует обзорное схематичное представление, на котором уровень приложений реализует одну или более из инструкций по установке приложения с уровнем виртуальных машин в соответствии с реализацией настоящего изобретения;
фиг.1B иллюстрирует схематическое представление фиг.1А, в котором уровень приложений устанавливает или конфигурирует запрошенные приложения на одной или более виртуальных машинах, настроенных уровнем виртуальных машин;
фиг.1C иллюстрирует обзорное схематичное представление, на котором уровень приложений идентифицирует, что в прошлом установленное приложение было деинсталлировано, и, таким образом, устраняет соответствующую виртуальную машину посредством уровня виртуальных машин;
фиг.2 иллюстрирует блок-схему последовательности операций способа с позиции уровня приложений для установки виртуальных машин, которые соответствуют запрошенному приложению; и
фиг.3 иллюстрирует блок-схему последовательности операций способа с позиции комплексной системы для координации жизненного цикла приложения с виртуальной машиной.
ПОДРОБНОЕ ОПИСАНИЕ
Реализации настоящего изобретения распространяются на системы, способы и компьютерные программные продукты, сконфигурированные для эффективного управления созданием, работой и выводом из эксплуатации виртуальных машин в организации. В одной реализации, например, система содержит уровень приложений, который координирует и руководит созданием виртуальной машины и удалением, посредством одного или более уровней виртуальных машин, в ответ на запрос об установке или о деинсталляции прикладной программы. Уровень приложений может дополнительно координировать то, что является установленным и/или деинсталлированным посредством общей структуры данных, к которой могут обращаться другие управляющие приложения, работающие в системе. По существу, уровень приложений может обеспечивать то, что жизненные циклы виртуальной машины и прикладной программы совпадают.
Как будет принято во внимание более полно в материалах настоящей заявки, реализации настоящего изобретения могут выполнять эти и другие задачи комплексом программ, который включает в себя уровень приложений и уровень управления созданием виртуальной среды (или "уровень виртуальных машин"). Эти два уровня имеют различные полномочия и взаимодействуют друг с другом, используя уникальный диалог. Будет принято во внимание, что эти и другие компоненты, описанные в материалах настоящей заявки, могут предоставить поддержку для гибридной виртуальной и физической аппаратной среды, а также для конкретной установки предложенной программной стековой архитектуры. Более точно, реализации настоящего изобретения могут быть использованы для предоставления интегрированной платформы приложения через интегрированный менеджер виртуальных машин. Интегрированная платформа приложения, в свою очередь, может управляться одной или более структурами данных, которые представляют описательные модели приложений и виртуальных сред.
Например, по меньшей мере, один способ в соответствии с реализацией настоящего изобретения включает в себя построение виртуальных сред на основе описательных моделей приложения. В дополнение, способы в соответствии с реализацией настоящего изобретения могут содержать управление жизненными циклами виртуальных машин в виртуальной среде, координируемые с жизненными циклами приложений. В дополнение, такие способы могут включать в себя отслеживание и управление приложениями, запущенными в виртуальных средах на основе описательных моделей. Как будет принято во внимание в материалах настоящей заявки, такие способы могут быть выполнены в фактически любой операционной среде, включающей в себя виртуальные среды, которые сконструированы на оконечной аппаратуре или в глобальной сети (т.е. где-нибудь в сети), или где модули приложения запускаются на оконечной аппаратуре или в глобальной сети.
Фиг.1А иллюстрирует обзорное представление системы 100, которая содержит уровень 103 приложений и уровень 107 виртуальных машин, которые работают вместе для установки и управления виртуальными машинами совместно с приложениями. Например, фиг.1А показывает, что уровень приложений 103 содержит, по меньшей мере, управляющее приложение 105. Вообще, управляющее приложение 105 содержит один или более наборов исполняемых инструкций, которые выполняют различные запросы (например, установить приложение), исполняя описательную модель - описанный поток последовательности операций способа. Как будет понятно более подробно ниже, управляющее приложение 105 принимает информацию о заданном приложении из различных описательных моделей 115 и дорабатывает эту информацию в конкретные команды, которые посылаются к различным виртуальным машинам.
Например, фиг.1А показывает, что уровень 103 приложений содержит репозиторий 110 приложений. Репозиторий 110 приложений дополнительно содержит набор вышеупомянутых описательных моделей 115, которые связывают различные приложения 135 с соответствующими свойствами 137, включающие в себя "намерения" для приложения. Такие намерения приложения (т.е. в свойствах 137) в описательных моделях 115 могут включать в себя различные функциональные требования аппаратных средств и виртуальной машины для каждого приложения 135, а также информацию жизненного цикла приложения. В частности, намерения данной описательной модели 115 для управляющей программы могут включать в себя разновидности виртуальных машин (например, конкретные сконфигурированные шаблоны виртуальных машин, или даже существующие виртуальные машины), что может потребоваться для запуска заданного приложения 135, в дополнение к числу виртуальных машин, которые могут или должны быть использованы. Например, если запрошенное приложение 115 было распределенным приложением, описательные намерения могли точно определить несколько различных виртуальных машин (и даже типов виртуальных машин) и несколько различных физических хост-узлов (или типов физических хост-узлов) для каждого компонента распределенного приложения. Такие намерения описательной модели могут также включать в себя различную информацию жизненного цикла заданной прикладной программы, такую как максимальный временной интервал, в ходе которого приложение, являющееся перед этим установленным, может исполняться.
В дополнение, фиг.1А показывает, что уровень 103 приложений через управляющее приложение 105 может содержать одну или более общую структуру 123 данных. Вообще, одна или более общая структура 123 данных является доступной широкому диапазону компонентов (включая в себя другие управляющие приложения в системе). Общие структуры 123 данных хранят и соотносят информацию статуса о приложениях и виртуальных машинах, установленных в системе 100. По меньшей мере, в одной реализации структура 123 данных указывает, например, где и когда различные прикладные программы были установлены (физические и/или сетевые размещения), а также где и когда различные виртуальные машины были установлены (физическое и/или сетевое размещение). Как упомянуто ранее, структура 123 данных может дополнительно включать в себя информацию о приложении и/или жизненных циклах виртуальной машины, которую управляющее приложение 105 доработало/определило из описательных моделей 115. Поскольку структура 123 данных является общедоступной для обширного числа компонентов, к структуре 123 данных могут обращаться и обновлять ее различные компоненты на обоих уровнях - уровне 103 приложений и уровне 107 виртуальных машин, для того, чтобы содействовать в поддержке согласованности.
Обращаясь опять к фигурам, фиг.1А показывает, что уровень 107 виртуальных машин может содержать один или более менеджер 120 виртуальных машин. Менеджер 120 виртуальных машин в свою очередь содержит один или более наборов исполняемых инструкций для установки и деинсталлирования виртуальных машин, а также для выделения ресурсов виртуальных машин на заданном хост-узле. Менеджер 120 виртуальных машин также отслеживает производительность каждой виртуальной машины на физическом хост-узле. Например, когда менеджер 120 виртуальных машин устанавливает заданную виртуальную машину, менеджер 120 виртуальных машин также устанавливает один или более агентов-наблюдателей, которые предоставляют обратную связь к менеджеру 120 виртуальных машин. Такая обратная связь может включать в себя качество использования назначенного ресурса (например, являются ли назначения процессора и памяти достаточными), а также то, как запускаются различные прикладные программы, установленные на нем.
В дополнение, фиг.1А показывает, что менеджер 120 виртуальных машин может быть сконфигурирован для связи с одной или более библиотекой 125 виртуальных машин. Вообще, библиотека 125 виртуальных машин состоит из одного или более шаблонов 150 виртуальных машин, где каждый представляет "оперативный резерв", которые менеджер 120 виртуальных машин может копировать поверх и устанавливать на заданный физический хост-узел (например, 130). Например, фиг.1А показывает, что библиотека 125 виртуальных машин содержит хранилище виртуальных машин "VM1" 150a, "VM2" 150b, "VM3" 150c и "VM4" 150d. Каждая из этих виртуальных машин 150(a-d) в свою очередь может быть индивидуально сконфигурирована для работы с конкретными типами приложений и даже конкретными версиями приложений. Например, виртуальные машины 150a и 150b могут быть индивидуально сконфигурированы (в терминах назначений/потребностей ресурсов) для работы с конкретными версиями приложений базы данных, тогда как виртуальные машины 150c и 150d могут быть индивидуально сконфигурированы (в терминах назначений/потребностей ресурсов) для работы с другими версиями приложений базы данных или, альтернативно, с интернет-приложениями.
В любом случае, каждый из вышеописанных компонентов в системе 100 сконфигурирован для работы вместе для обеспечения того, что приложения и виртуальные машины установлены вместе и деинсталлированы вместе в рамках одних и тех же жизненных циклов. По меньшей мере, в одной реализации эта координация большей частью обрабатывается посредством уровня 103 приложений через управляющее приложение 105. Например, фиг.1А показывает, что уровень 103 приложений получает один или более запрос/инструкцию 113 для установки приложения (т.е. приложения 135a), и этот запрос 113 принимается управляющим приложением 105. В ответ, управляющее приложение 105 посылает один или более запросов 140 в пределах уровня 103 приложений для определения, как запрос должен быть обработан. Например, фиг.1А показывает, что управляющее приложение 105 посылает один или более запросов к репозиторию 110 приложений для идентификации свойств, предназначенных или, другими словами, ассоциативно связанных с запрошенным приложением. Более точно, фиг.1А показывает, что управляющее приложение 105 посылает запрос 140, который запрашивает свойства, ассоциативно связанные с приложением 135а.
Репозиторий 110 приложений в свою очередь идентифицирует одну или более описательные модели 115, ассоциативно связанные с запрошенным приложением 135а. Например, фиг.1А показывает, что этот репозиторий 110 приложений включает в себя хранилище для описательных моделей 115, которое ассоциативно связывает свойства 137a и 137b с приложениями 135a и 135b. Эти свойства выражают различные описательные намерения каждой прикладной программы 135. Такие описательные намерения могут включать в себя требуемую продолжительность запуска прикладной программы, количество и/или тип виртуальных машин, которые должны быть установлены для обработки приложения. Такие описательные намерения также включают в себя такую информацию, как различные сетевые (или физические) размещения, где прикладная программа должна исполняться. Например, администратор может определить, что некоторые приложения должны исполняться только на защищенных серверах и/или в защищенных сетевых размещениях.
В любом случае, по приему запроса 140, фиг.1А показывает, что репозиторий 110 приложений отвечает одним или более сообщениями 145 обратно к управляющему приложению 105. Управляющее приложение 105 может затем интерпретировать или "дорабатывать" свойства 137a, полученные от репозитория 110, и хранить их как набор соответствующих инструкций/команд в одной из одной или более общих структур 123 данных. Вообще, доработка в данном контексте означает прогрессивную переработку деталей принятой от репозитория 110 информации, такую как дополнение данных описательной модели (например, принятой от свойств 137a в сообщении 145), и запись добавленных данных в структуре 123 данных. Как понятно более подробно в материалах настоящей заявки, доработка перерабатывает детали, пока описательная модель не станет достаточно точно понятной и преобразованной конкретным драйвером виртуальной машины.
По меньшей мере, в одной реализации свойства 137, которые соответствуют описательным моделям приложения, могли включать в себя информацию, указывающую, что конкретное приложение 135a идеально устанавливается на две разных виртуальных машины, и эти виртуальные машины должны быть сконфигурированы для использования базой данных. Фиг.1А, таким образом, показывает структуру 123 данных, включающую в себя, по меньшей мере, указание, что приложение 135a должно быть установлено на виртуальных машинах 150a и 150b. В дополнение, свойства 137a могут также включать в себя предпочтение на исполнение прикладной программы 135а на конкретном физическом хост-узле. Таким образом, например, фиг.1А также показывает, что структура 123 данных указывает, что приложение 135 должно быть установлено на физическом хост-узле 130.
При определении различных свойств и инструкций для запрошенной прикладной программы уровень 103 приложений может затем отсылать одну или более инструкций к уровню 107 виртуальных машин для установки подходящих виртуальных машин. Например, фиг.1А показывает, что управляющее приложение 105 посылает одну или более инструкции 147, которые соответствуют доработанной информации, хранимой в структуре 123 данных, к уровню 107 виртуальных машин. Более точно, фиг.1А показывает, что инструкции 147 включают в себя один или более запросов для установки виртуальных машин 150a ("VM1") и 150b ("VM2"), и что менеджер 120 виртуальных машин в пределах уровня 107 виртуальных машин принимает эти инструкции.
Тогда уровень 107 виртуальных машин осуществляет запросы. Например, фиг.1А показывает, что менеджер 120 виртуальных машин осуществляет координацию с библиотекой 125 виртуальных машин для идентификации запрошенных шаблонов, которые должны быть установлены, в данном случае - виртуальных машин 150a и 150b. В дополнение, фиг.1А показывает, что менеджер 120 виртуальных машин посылает один или более запросов 155 к физическому хост-узлу 130 для установки виртуальных машин 150a и 150b. По меньшей мере, в одной реализации уровень 107 виртуальных машин (например, через менеджер 120 виртуальных машин) дополнительно осуществляет обратное взаимодействие с уровнем 103 приложений (например, с управляющим приложением 105) одним или более сообщениями (не показаны), которые указывают, что установка и конфигурация виртуальной машины теперь завершена.
Например, менеджер 120 виртуальных машин может передать информацию подтверждения установки (не показана) непосредственно к структуре 123 данных. Управляющее приложение 105 может тогда произвести чтение структуры 123 данных в качестве части периодического обзора или в ответ на некоторый сигнал о том, что структура 123 данных была обновлена. Тогда управляющее приложение 105 идентифицирует, что запрашиваемые виртуальные машины завершили установку. В других случаях, менеджер 120 виртуальных машин передает эту информацию непосредственно управляющему приложению 105, которое затем вносит эту информацию в структуру 123 данных. В любом случае, информация, предоставленная менеджером 120 виртуальных машин, может включать в себя не только сам факт установки на хост-узле 130, но также другую релевантную информацию, такую как имена виртуальных машин и сетевые адреса.
При подтверждении установки/развертывания запрошенных виртуальных машин уровень 103 приложений может тогда устанавливать и конфигурировать запрошенное приложение(я) посредством уровня 107 виртуальных машин. В этих целях фиг.1B показывает, что управляющее приложение 105 взаимодействует непосредственно с драйверами развернутых виртуальных машин 150 на хост-узле 130. Например, управляющее приложение 105 может использовать информацию, предоставленную менеджером 120 виртуальных машин, такую как имена виртуальных машин и сетевые адреса, для определения размещения и идентификации подходящих драйверов виртуальных машин.
В дополнение фиг.1B показывает, что уровень 103 приложений (через управляющее приложение 105) посылает одно или более сообщения/инструкции 160a и 160b к уровню 107 виртуальных машин. Драйверы соответственно адресованных виртуальных машин 150a и 150b тогда принимают сообщения 160a и 160b на физическом хост-узле 130. Вообще, сообщения 160a и 160b могут содержать не только инструкции по установке приложения для запрошенного приложения 135a, но также инструкции, относящиеся к свойствам 137a, предварительно принятым от репозитория 110 приложений. Например, сообщения 160a и 160b могут содержать индивидуально преобразованную/доработанную описательную информацию намерения в форме конкретных команд о жизненном цикле приложения, о том, как приложение должно исполняться на виртуальной машине, а также любую контролируемую информацию.
Драйверы для каждой виртуальной машины 150(a-b) в свою очередь преобразуют и/или реализуют эти команды (160) для соответствующих контейнеров приложений (не показаны) на виртуальной машине. Более точно, проиллюстрированные драйверы виртуальной машины преобразуют достаточно подробные описательные модели в императивные действия, которые должны быть осуществлены на виртуальной машине. Эти преобразованные инструкции в свою очередь управляют и конфигурируют контейнеры приложений и модули приложений на установленных виртуальных машинах 150 в соответствии с намерением, описанным в модели (например, через свойства 137).
По этому принципу будет принято во внимание, что преобразование драйверами может учитывать знание особенностей реализации контейнера приложений и его текущей конфигурации. В одной реализации, по этой причине, драйверы виртуальных машин могут дополнительно взаимодействовать с управляющим приложением 105 для запроса любых дополнительных данных модели (например, того, что может храниться в структуре 123 данных). Например, драйверы виртуальных машин 150 могли запрашивать данные модели, относящиеся к их работе по преобразованию, только перед завершением команды (команд). Драйверы виртуальных машин могут также оснащать инструментальными средствами модули приложений и их контейнеры приложений для порождения событий, относящихся к их поведению и изменениям в среде, как описано в модели.
Информация, предоставляемая драйверами виртуальных машин, может включать в себя не только информацию состояния, относящуюся к установленному приложению 135a и/или виртуальной машине 150(a-b), но также информацию, касающуюся событий о прекращении использования приложения. Например, драйверы виртуальной машины могут посылать одно или более сообщений к управляющему приложению 105, когда приложение, являющееся деинсталлированным, было деинсталлировано, или о том, что должно быть деинсталлировано с хост-узла 130. Информация, предоставляемая драйверами виртуальных машин, может, в свою очередь, быть принята и сохранена в структуре 123 данных. Например, драйверы виртуальной машины 150 посылают одно или больше таких сообщений непосредственно к структуре 123 данных или к управляющему приложению 105, которое затем, соответственно, обновляет структуру 123 данных. В любом случае, уровень 103 приложений может, таким образом, идентифицировать, когда ему нужно начать выводить из эксплуатации соответствующую виртуальную машину(ы).
Например, фиг.1С иллюстрирует, что может произойти, когда конкретная прикладная программа было деинсталлирована с виртуальной машины 150. В частности, когда прикладная программа деинсталлируется, фиг.1С показывает, что уровень 107 виртуальных машин (например, через драйверы на физическом хост-узле 130) посылает одно или более сообщений 170 к уровню 103 приложений для указания того, что приложение 135a должно быть деинсталлировано или было деинсталлировано. Как упоминалось выше, например, физический хост-узел 130 может передать сообщение 170 непосредственно к структуре 123 данных, тогда как в альтернативных реализациях физический хост-узел 130 посылает сообщение 170 к управляющему приложению 105. В любом случае, структура 123 данных в конечном счете обновляется, чтобы отражать удаление приложения. Например, фиг.1С показывает, что структура 123 данных содержит информацию о том, что приложение 135a теперь деинсталлировано. Поскольку в этом примере приложение 135а было единственным приложением, установленным на виртуальной машине 150a и 150b, уровень 103 приложений через управляющее приложение 105, таким образом, определяет, что виртуальные машины 150a и 150b теперь должны быть удалены с физического хост-узла 130, так как они больше не являются используемыми.
Соответственно, фиг.1С показывает, что уровень 103 приложений через управляющее приложение 105 посылает одно или более сообщений 180 к уровню 107 виртуальных машин. Как и ранее, менеджер 120 виртуальных машин затем получает сообщения 180 на уровне 107 виртуальных машин. В проиллюстрированном примере сообщения 180 включают в себя инструкции для удаления виртуальных машин 150a и 105b (т.е., "VM1" и "VM2") с одного или более физических хост-узлов, на которых они установлены, в данном случае с физического хост-узла 130. В ответ, уровень 107 виртуальных машин тогда осуществляет любые действия для удаления и подтверждения удаления виртуальных машин. Например, фиг.1С показывает, что менеджер 120 виртуальных машин посылает одно или более соответствующих сообщений 190 к физическому хост-узлу 130, эти сообщения инструктируют физический хост-узел 130 об удалении или деинсталляции виртуальных машин 150a и 150b.
Будет принято во внимание, что существует некоторое количество способов и механизмов для "удаления" или "вывода из эксплуатации" виртуальной машины (150b). Например, любая заданная виртуальная машина может быть восстановлена или сохранена на основе предшествующей "контрольной точки". Вообще, контрольная точка представляет конкретное состояние в момент времени операционной системы (или другого набора файловых структур в виртуальной машине). Например, каждый раз, когда пользователь производил исправление операционной системы на виртуальной машине, виртуальная машина (или административный компонент, запускающий или хранящий виртуальную машину) могла сохранить это конкретное состояние файлов как контрольную точку.
Более того, виртуальная машина (или административный компонент, запускающий или хранящий виртуальную машину) может поддерживать несколько различных контрольных точек для заданной виртуальной машины. Таким образом, например, некоторые из виртуальных машин в библиотеке 125 виртуальных машин могут быть настроены различными способами не только по отношению к конкретным конфигурациям приложений, но также и на основе различных контрольных точек для произведенных исправлений или обновлений операционной системы. Подобны образом, виртуальные машины 150a-b, которые установлены на физический хост-узел 130, могут также подвергаться нескольким различным обновлениям контрольных точек, некоторые из них могут быть особенно подходящими для управляющего приложения 135a.
Как результат, в некоторых случаях администратор может выбирать или "удаление" или "вывод из эксплуатации" конкретной версии виртуальной машины 150a-b на физическом хост-узле 130, когда устраняется приложение 135а либо совместно с удалением виртуальной машины, либо лишь с возвращением виртуальной машины к конкретной контрольной точке. В таком случае инструкции 190, посланные от менеджера 120 виртуальных машин, могут альтернативно или дополнительно включать в себя инструкции для возвращения виртуальных машин 150a-b к предшествующей контрольной точке, которая может быть более широко применима для других приложений, которые могут быть позже установлены на физический хост-узел 130.
Будет принято во внимание, что сохранение более ранних версий виртуальных машин 150a-b на физическом хост-узле 130 может сохранить ресурсы, которые могли бы быть нужны в последующей точке для копирования целой виртуальной машины 150 из библиотеки 125 обратно на физический хост-узел 130. Конечно, было ли это удаление или выведение из эксплуатации (т.е. полное удаление, или возвращение к конкретной контрольной точке), система 100 сконфигурирована для обеспечения того, что структура 123 данных может поддерживать релевантную информацию, так что система 100 никогда не потеряет записи отслеживания состояния или присутствия конкретной виртуальной машины или приложения.
Например, фиг.1С дополнительно показывает, что при удалении или выведении из эксплуатации/деинсталляции/возврате виртуальных машин физический хост-узел 130 может тогда послать одно или более подтверждающие сообщения. В частности, уровень 107 виртуальных машин подтверждает уровню 103 приложений, что удаление (т.е. удаление, вывод из эксплуатации или возврат к контрольной точке) виртуальных машин было завершено. Например, физический хост-узел 130 может посылать одно или более подтверждающих сообщений обратно к менеджеру 120 виртуальных машин, который тогда сообщает такую информацию уровню 103 приложений, т.е. менеджер 120 виртуальных машин может обновлять структуру 123 данных информацией об удалении (удалении или возврате к контрольной точке) или, в другом случае, посылать соответствующее сообщение к управляющему приложению 105, которое этим же затем обновит структуру 123 данных. В дополнительных или альтернативных реализациях физический хост-узел 130 взаимодействует напрямую с структурой 123 данных и/или с управляющим приложением 105 для подтверждения удаления (удаления или возврата к контрольной точке) виртуальных машин 150(a-b).
Соответственно, фиг.1А-1С иллюстрируют многообразие компонентов, механизмов и схем для координирования жизненных циклов прикладных программ с виртуальными машинами. Будет принято во внимание, что любые или все из вышеописанных процессов могут быть осуществлены автоматически, таким образом разрешая достоверное ведение учета и поддержку виртуальных машин и прикладных программ, которые происходят с минимальными административными накладными расходами.
В дополнение к вышеупомянутому, реализации настоящего изобретения могут также быть описаны в терминах блок-схем последовательностей операций способа, содержащих одно или более действий в способе для совершения конкретного результата. Например, фиг.2 иллюстрирует блок-схему последовательности операций способа с позиции исполнения приложения 105 для использования одного приложения для установки обеих виртуальных машин и прикладных программ на физическом хост-узле, тогда как фиг.3 иллюстрирует альтернативную блок-схему последовательности операций способа с позиции системы 100 для координирования установки и жизненных циклов прикладных программ и виртуальных машин. Этапы фиг.2 и 3 описаны более подробно ниже по отношению к компонентам и представлениям фиг.1А-1С.
Например, фиг.2 иллюстрирует, что способ с позиции управляющего приложения 105 может содержать этап 200 приема запроса для инициирования приложения. Этап 200 включает в себя прием одного или более запросов на уровне приложений для инициирования прикладной программы. Например, фиг.1А показывает, что уровень 103 приложений через управляющее приложение 105 принимает инструкции 113 по установке приложения, которые включают в себя один или более запросов на установку прикладной программы 135а.
Фиг.2 также показывает, что способ может содержать этап 210 определения виртуальных машин для развертывания. Этап 210 включает в себя определение от одного или более свойств запрошенной прикладной программы, какая из одной или более виртуальных машин должна быть развернута для исполнения запрошенной прикладной программы. Например, фиг.1А показывает, что управляющее приложение 105 устанавливает связь с репозиторием 110 приложений и обменивается сообщениями 140 и 145 для идентификации свойств запрошенного приложения 135а. Эти свойства 137а связывают различные описательные намерения описательных моделей 115, которые соответствуют запрошенному приложению 135a. В дополнение, управляющее приложение 105 дорабатывает и/или преобразует полученные свойства 137а в конкретные инструкции, которые затем поддерживаются в структуре 123 данных. В одной реализации преобразование этих команд включает в себя число и тип виртуальных машин 150, которые должны быть установлены для исполнения запрошенного приложения 135а.
В дополнение, фиг.2 показывает, что способ, с позиции управляющего приложения 105, может содержать этап 220 развертывания подходящих виртуальных машин. Этап 220 включает в себя отправку одного или более запросов от уровня приложений к уровню виртуальных машин для развертывания определенной одной или более виртуальных машин для запрошенной прикладной программы. Например, фиг.1А показывает, что управляющее приложение 105, находящееся на уровне 103 приложений, посылает одно или более сообщений 147 к менеджеру 120 виртуальных машин, находящемуся на уровне 107 виртуальных машин. Как показано на фиг.1А, инструкции 147 включают в себя один или более запросов на установку идентифицированных виртуальных машин 150a и 150b.
Более того, фиг.2 показывает, что способ может содержать этап 230 установки запрошенного приложения на виртуальной машине. Этап 230 включает в себя установку прикладной программы на развернутой одной или более виртуальной машине. Например, как показано на фиг.1B, как только виртуальные машины 150a и 150b были установлены менеджером 120 виртуальных машин на физическом хост-узле 130, уровень 103 приложений через управляющее приложение 105 посылает одно или более сообщений 160a и 160b к соответствующему уровню 107 виртуальных машин через драйверы виртуальных машин 150. Драйверы виртуальных машин, в свою очередь, инструктируют об установке и конфигурации запрошенного приложения 135а в соответствии со свойствами 137а.
В дополнение к вышеупомянутому, фиг.3 иллюстрирует, что дополнительный или альтернативный способ с позиции комплексной системы 100 в соответствии с реализацией настоящего изобретения может содержать этап 300 идентификации свойств приложения для запроса на установку. Этап 300 включает в себя прием одного или более запросов уровня приложений для инициирования прикладной программы, в котором запрошенная прикладная программа содержит одно или более свойств, которые указывают тип и количество виртуальных машин, которые должны быть использованы. Например, фиг.1А показывает, что при приеме запроса 113 на установку управляющее приложение 105 и репозиторий 110 приложений в уровне 103 приложений взаимодействуют для приема свойств 137а, которые относятся к запрошенному приложению 135а. Как обсуждено ранее, свойства 137а могут включать в себя многообразие типов информации о запрошенной прикладной программе 135а, такое как предпочтения типа или размещения физического хост-узла и типы, количества или потребности в ресурсах виртуальных машин, которые должны быть использованы для запуска прикладной программы.
Фиг.3 также показывает, что способ с позиции управляющего приложения 105 может содержать этап 310 просмотра структуры 123 данных для доступных виртуальных машин. Этап 310 включает в себя просмотр одной или более структур данных на уровне приложений для идентификации одной или более виртуальных машин, которые доступны в автоматизированной среде. Например, фиг.1А и 1В показывают, что управляющее приложение 105 на уровне приложений 103 интерпретирует и/или дорабатывает полученные свойства 137а для определения того, что приложение 135а должно быть установлено на хост-узел 130 и в пределах двух виртуальных машин, в данном случае - виртуальных машин 150а и 150b.
В дополнение, фиг.3 показывает, что способ с позиции управляющего приложения 105 может содержать этап 320 установки приложения на предназначенные виртуальные машины. Этап 320 включает в себя инструктирование уровня виртуальных машин по установке запрошенной прикладной программы на одну или более доступные виртуальные машины, которые установлены на один или более физические хост-узлы. Например, как показано на фиг.1А, уровень приложений 103 через управляющее приложение 105 посылает одно или более сообщений 147 к уровню 107 виртуальных машин через менеджер 120 виртуальных машин. Проиллюстрированные сообщения 147 включают в себя инструкции по установке виртуальных машин 150а и 150b на физическом хост-узле 130. Фиг.1А дополнительно показывает, что уровень 107 виртуальных машин действует на запрос так, что менеджер 120 виртуальных машин посылает одно или более соответствующих сообщений 155 к физическому хост-узлу 130. Сообщения 155 в свою очередь инструктируют физический хост-узел 130 об установке запрошенных виртуальных машин 150a и 150b.
Более того, фиг.3 показывает, что способ с позиции управляющего приложения 105 может содержать этап 330 удаления виртуальной машины, когда устраняется приложение. Этап 330 включает в себя, при идентификации посредством структуры данных, что запрошенная прикладная программа была деинсталлирована с виртуальной машины, руководствуясь удалением уровня приложений виртуальной машины с соответствующего физического хост-узла. Например, как показано на фиг.1С, уровень 103 приложений принимает сообщение 170 в структуре 123 либо непосредственно, либо посредством управляющего приложения 105. Управляющее приложение 105 тогда идентифицирует, что приложение 135а было деинсталлировано и, таким образом, что виртуальные машины 150а и 150b должны быть удалены (т.е. удалены с физического хост-узла 130 или возвращены к предыдущей версии на физическом хост-узле 130). Соответственно, уровень приложений 103 через управляющее приложение 105 посылает одно или более сообщений 180 к уровню 107 виртуальных машин для удаления (т.е. удаления или восстановления к контрольной точке) виртуальных машин 150а и 150b с хост-узла 130.
Реализации настоящего изобретения, поэтому, предоставляют согласованный и эффективный подход к управлению разрастанием виртуальных машин. Более точно, подход, полученный на основе описательной модели, описанный в материалах настоящей заявки, предоставляет простоту (и, следовательно, главным образом уменьшение в административных расходах) абстрагированием и управлением множественными различными уникальными конфигурациями виртуальных машин как композитными приложениями. В частности, платформа/система, описанная в материалах настоящей заявки, использует описательные модели композитных приложений для автоматического создания предназначенных конфигураций виртуальных машин для запуска запрошенного приложения и для управления жизненным циклом виртуальных машин. Представление уменьшения произвольного числа виртуальных машин для рабочих приложений предоставляет значительные экономические прибыли в управлении созданием виртуальной среды.
В дополнение, одно будет принято во внимание, что оба уровня - уровень виртуальных машин и уровень приложений, описанные в материалах настоящей заявки, - могут быть сконфигурированы для поддержки обоих развертываний на оконечной аппаратуре или в глобальной сети. По этой причине виртуальная машина может быть запущена на оконечной аппаратуре, но также может также быть запущена в глобальной сети, и уровень приложений может развернуть и запустить различные веб-службы или модули приложений баз данных на оконечной аппаратуре, или может развернуть и запустить модули приложений в глобальной сети. Будет принято во внимание, что такой подход способствует оперативности действий и уменьшает административные расходы, ассоциативно связанные с запущенными приложениями для деловой сферы в виртуальном пространстве любой организации.
Варианты осуществления настоящего изобретения могут содержать вычислительное устройство специального или общего назначения, включающее в себя различные компьютерные аппаратные средства, как обсуждено подробно ниже. Варианты осуществления в пределах объема настоящего изобретения также включают в себя машиночитаемые носители для выполнения и содержания машиночитаемых инструкций или структур данных, хранимых на них. Такие машиночитаемые носители могут быть любым имеющимся в распоряжении носителем, который может быть доступен для вычислительного устройства специального или общего назначения.
В качестве примера, а не ограничения, такой машиночитаемый носитель может содержать ОЗУ, ПЗУ, электрически стираемое и программируемое ПЗУ, CD-ROM или другие оптические дисковые запоминающие устройства, магнитные запоминающие диски или другие магнитные запоминающие устройства, либо любой другой носитель, который может быть использован для выполнения или хранения желаемого средства управляющей программы в форме исполняемых компьютером инструкций или структур данных и который может быть доступен для вычислительного устройства специального или общего назначения. Когда информация передается или предоставляется в сети, или другие средства связи (либо аппаратные, беспроводные, либо комбинация аппаратных или беспроводных) подключаются к компьютеру, компьютер, в сущности, рассматривает подключение как машиночитаемый носитель. Таким образом, любое такое подключение, в сущности, называется машиночитаемым носителем. Сочетания вышеописанного также включаются в сферу применения машиночитаемой среды.
Исполняемые компьютером инструкции содержат, например, инструкции и данные, которые заставляют вычислительное устройство общего назначения, вычислительное устройство специального назначения или устройство обработки специального назначения осуществлять конкретную функцию или группу функций. Хотя объект изобретения был описан на языке, характерном для структурных признаков и/или методологических действий, необходимо понимать, что объект изобретения, определенный в прилагаемой формуле, не обязательно ограничен описанными выше характерными признаками или действиями. Точнее, характерные признаки и действия, описанные выше, раскрыты как примерные формы, реализующие формулу изобретения.
Настоящее изобретение может быть воплощено в других своеобразных формах, не выходя из его сущности и неотъемлемых характеристик. Описанные варианты осуществления должны быть рассмотрены во всех отношениях только как иллюстративные, а не как ограничивающие. Объем изобретения, поэтому, указан прилагаемой формулой изобретения, а не предшествующим описанием. Все изменения, которые оказываются в пределах значения и диапазона эквивалентности формулы изобретения, должны включаться в пределы ее объема.

Claims (20)

1. Способ, реализуемый на уровне (103) приложений компьютеризированной системы (100), которая дополнительно содержит уровень (107) виртуальных машин и одну или более прикладных программ (135), которые должны исполняться на одной или более виртуальных машинах (150), и предназначенный для инициирования и управления посредством уровня приложений созданием и работой одной или более виртуальных машин для одной или более прикладных программ через уровень виртуальных машин, содержащий этапы, на которых:
на уровне (103) приложений принимают (200) один или более запросов (113) на инициирование прикладной программы (135);
определяют (210) из одного или более свойств (137) запрошенной прикладной программы, какие из одной или более виртуальных машин (150) должны быть развернуты для исполнения запрошенной прикладной программы;
отправляют (220) одну или более команд (147) виртуальных машин с уровня приложений на уровень (107) виртуальных машин для развертывания упомянутых определенных одной или более виртуальных машин (150) для запрошенной прикладной программы; и
инсталлируют (230) запрошенную прикладную программу на развернутых одной или более виртуальных машинах.
2. Способ по п.1, в котором:
уровень (103) приложений содержит управляющее приложение (105), которое принимает запрос (113) на инициирование прикладной программы; и
управляющее приложение (105) преобразует полученные свойства (137) в упомянутые одну или более команд (147) виртуальных машин.
3. Способ по п.2, в котором уровень (107) виртуальных машин содержит один или более диспетчеров (120) виртуальных машин, которые принимают упомянутые одну или более команд (147) виртуальных машин от управляющего приложения (105).
4. Способ по п.2, в котором:
свойства (137), соответствующие запрошенному приложению (135), содержат одну или более описательных моделей (115), ассоциированных с запрошенной прикладной программой (135); и
эти одна или более описательные модели содержат одну или более конфигураций для упомянутых определенных виртуальных машин.
5. Способ по п.4, в котором свойства (137), соответствующие запрошенному приложению (135), указывают один или более физических хостов (130), на которых запрошенное приложение (135) должно быть развернуто.
6. Способ по п.4, в котором свойства (137), соответствующие запрошенному приложению (135), указывают количество и тип виртуальных машин (150), которые должны быть развернуты для запрошенной прикладной программы (135).
7. Способ по п.6, в котором любое или все из количества и типа виртуальных машин (150) зависит от версии запрошенного приложения (135).
8. Способ по п.1, в котором этап инсталляции (330) запрошенной прикладной программы дополнительно содержит этап, на котором посредством уровня (103) приложений посылают одну или более инструкций (160) драйверу каждой из одной или более развернутых виртуальных машин (150).
9. Способ по п.1, дополнительно содержащий этап, на котором обновляют структуру (123) данных для указания взаимосвязи между запрошенным приложением и развернутыми одной или более виртуальными машинами (150).
10. Способ по п.8, дополнительно содержащий этап, на котором обновляют структуру (123) данных для указания того, что запрошенное приложение (135) было инсталлировано на развернутые одну или более виртуальных машин (150) и на один или более физических хостов (130).
11. Способ по п.9, дополнительно содержащий этап, на котором определяют, что запрошенное приложение (135) было деинсталлировано.
12. Способ по п.11, дополнительно содержащий этапы перед определением того, что запрошенное приложение (135) было деинсталлировано, на которых:
определяют, что запрошенное приложение (135) должно быть деинсталлировано с одной или более развернутых виртуальных машин; и
отправляют одну или более инструкций с уровня (103) приложений на уровень (107) виртуальных машин деинсталлировать запрошенное приложение (135).
13. Способ по п.12, в котором этап определения того, что запрошенное приложение (135) должно быть деинсталлировано, содержит этап, на котором определяют из одного или более свойств (137) в структуре (123) данных, которые соответствуют запрошенному приложению (135), что приложение (135) готово к тому, чтобы быть деинсталлированным или выведенным из эксплуатации.
14. Способ по п.11, дополнительно содержащий этап, на котором отправляют одну или более инструкций с уровня (103) приложений на уровень (107) виртуальных машин удалить развернутые одну или более виртуальных машин (150) с соответствующего физического хоста.
15. Способ по п.14, дополнительно содержащий этап, на котором обновляют структуру (123) данных для указания того, что прежде развернутые одна или более виртуальных машин (150) были удалены с соответствующего физического хоста.
16. Способ, реализуемый в компьютеризированной системе (100) компьютеризированного окружения, которое включает в себя уровень (103) приложений, содержащий управляющее приложение (105), уровень (107) виртуальных машин, содержащий диспетчер (120) виртуальных машин, и одну или более прикладных программ (135), которые должны исполняться на одной или более виртуальных машинах (150), и предназначенный для управления созданием, работой и выведением из эксплуатации одной или более виртуальных машин вместе с одной или более прикладными программами посредством уровня (103) приложений и уровня (107) виртуальных машин, при этом способ содержит этапы, на которых:
на уровне (103) приложений принимают (300) один или более запросов на инициирование прикладной программы (135), при этом запрошенная прикладная программа содержит одно или более свойств (137), которые указывают тип и количество виртуальных машин (150a-b), которые должны быть использованы;
анализируют (310) одну или более структур (123) данных на уровне (103) приложений для идентификации одной или более виртуальных машин (150a-d), которые являются доступными в компьютеризированном окружении;
инструктируют (320) уровню (107) виртуальных машин инсталлировать запрошенную прикладную программу на одну или более доступных виртуальных машин (150a-b), которые инсталлированы на один или более физических хостах (130); и
по определении через структуру (123) данных того, что запрошенная прикладная программа (135) была деинсталлирована с виртуальной машины, посредством уровня (103) приложений автоматически управляют (330) удалением виртуальной машины (150) с соответствующего физического хоста (130).
17. Способ по п.16, в котором:
идентифицированные одна или более виртуальные машины (150) содержат один или более наборов шаблонов виртуальных машин для контрольной точки операционной системы; и
этап (330) удаления виртуальной машины (150) с соответствующего физического хоста (130) содержит этап, на котором восстанавливают виртуальную машину (150) к предшествующей контрольной точке, так что обновленная версия виртуальной машины устраняется с физического хоста (130) и более ранняя версия виртуальной машины, соответствующая предшествующей контрольной точке, остается на физическом хосте (130).
18. Способ по п.16, в котором уровень (103) приложений дополнительно содержит одну или более структур (123) данных, которые могут быть обновлены одним или более компонентами уровня (103) приложений или уровня (107) виртуальных машин.
19. Способ по п.16, в котором структура данных указывает все виртуальные машины (150), которые развернуты в системе (100), все прикладные программы (135), которые инсталлированы на виртуальных машинах, и одно или более свойств (137), которые указывают намеченный жизненный цикл для каждого из инсталлированных приложений и развернутых виртуальных машин.
20. Машиночитаемый носитель, на котором сохранены машиноисполняемые инструкции, которые при их исполнении предписывают одному или более процессорам компьютерной системы осуществлять способ на уровне (103) приложений в компьютеризированном окружении (100), содержащем управляющее приложение (105), уровень (107) виртуальных машин, содержащий диспетчер (120) виртуальных машин, и одну или более прикладных программ (135), которые должны исполняться на одной или более виртуальных машинах (150), при этом способ содержит этапы, на которых:
на уровне (103) приложений принимают (300) один или более запросов (113) на инициирование прикладной программы (135);
определяют (310) из одного или более свойств (137) запрошенной прикладной программы, какие из одной или более виртуальных машин (150) должны быть развернуты для исполнения запрошенной прикладной программы;
отправляют (320) одну или более команд (147) виртуальных машин с уровня приложений на уровень (107) виртуальных машин для развертывания упомянутых определенных одной или более виртуальных машин (150) для запрошенной прикладной программы; и
инсталлируют (330) запрошенную прикладную программу на развернутых одной или более виртуальных машинах.
RU2010150809/08A 2008-06-13 2009-05-15 Синхронизация жизненных циклов виртуальной машины и приложения RU2498394C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/138,591 2008-06-13
US12/138,591 US8161479B2 (en) 2008-06-13 2008-06-13 Synchronizing virtual machine and application life cycles
PCT/US2009/044263 WO2009151875A1 (en) 2008-06-13 2009-05-15 Synchronizing virtual machine and application life cycles

Publications (2)

Publication Number Publication Date
RU2010150809A RU2010150809A (ru) 2012-06-20
RU2498394C2 true RU2498394C2 (ru) 2013-11-10

Family

ID=41415945

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010150809/08A RU2498394C2 (ru) 2008-06-13 2009-05-15 Синхронизация жизненных циклов виртуальной машины и приложения

Country Status (10)

Country Link
US (1) US8161479B2 (ru)
EP (1) EP2310940A4 (ru)
JP (1) JP5367074B2 (ru)
KR (1) KR101574366B1 (ru)
CN (1) CN102057355B (ru)
AU (1) AU2009257865B2 (ru)
BR (1) BRPI0911610B1 (ru)
CA (1) CA2723907C (ru)
RU (1) RU2498394C2 (ru)
WO (1) WO2009151875A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9182974B1 (en) 2014-04-18 2015-11-10 AO Kaspersky Lab System and methods for updating software of templates of virtual machines

Families Citing this family (156)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101506683B1 (ko) * 2008-08-06 2015-03-30 삼성전자 주식회사 다수개의 운영 시스템을 지원하는 장치 및 방법
US8656018B1 (en) 2008-09-23 2014-02-18 Gogrid, LLC System and method for automated allocation of hosting resources controlled by different hypervisors
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8565118B2 (en) 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8190769B1 (en) 2008-12-30 2012-05-29 Juniper Networks, Inc. Methods and apparatus for provisioning at a network device in response to a virtual resource migration notification
US20100250228A1 (en) * 2009-03-30 2010-09-30 International Business Machines Corporation Modeling a composite application
US8954487B2 (en) * 2009-06-23 2015-02-10 Samsung Electronics Co., Ltd. Management server and method for providing cloud computing service
US8812796B2 (en) 2009-06-26 2014-08-19 Microsoft Corporation Private memory regions and coherence optimizations
US8953603B2 (en) 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US8789041B2 (en) * 2009-12-18 2014-07-22 Verizon Patent And Licensing Inc. Method and system for bulk automated virtual machine deployment
US9130912B2 (en) 2010-03-05 2015-09-08 International Business Machines Corporation System and method for assisting virtual machine instantiation and migration
CN102656561A (zh) * 2010-03-16 2012-09-05 松下电器产业株式会社 信息处理装置、虚拟机生成方法及应用发布系统
US8473587B1 (en) 2010-05-20 2013-06-25 Gogrid, LLC System and method for caching server images in a hosting system
US10095530B1 (en) 2010-05-28 2018-10-09 Bromium, Inc. Transferring control of potentially malicious bit sets to secure micro-virtual machine
US9148428B1 (en) 2011-05-25 2015-09-29 Bromium, Inc. Seamless management of untrusted data using virtual machines
US9116733B2 (en) 2010-05-28 2015-08-25 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US9767274B2 (en) 2011-11-22 2017-09-19 Bromium, Inc. Approaches for efficient physical to virtual disk conversion
US9135038B1 (en) 2010-05-28 2015-09-15 Bromium, Inc. Mapping free memory pages maintained by a guest operating system to a shared zero page within a machine frame
US9558051B1 (en) 2010-05-28 2017-01-31 Bormium, Inc. Inter-process communication router within a virtualized environment
US8752047B2 (en) 2010-05-28 2014-06-10 Bromium, Inc. Automated management of virtual machines to process untrusted data based on client policy information
US8972980B2 (en) * 2010-05-28 2015-03-03 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US9104837B1 (en) 2012-06-18 2015-08-11 Bromium, Inc. Exposing subset of host file systems to restricted virtual machines based on upon performing user-initiated actions against host files
US10310696B1 (en) 2010-05-28 2019-06-04 Bromium, Inc. Supporting a consistent user interface within a virtualized environment
US9386021B1 (en) 2011-05-25 2016-07-05 Bromium, Inc. Restricting network access to untrusted virtual machines
US9239909B2 (en) 2012-01-25 2016-01-19 Bromium, Inc. Approaches for protecting sensitive data within a guest operating system
US8171349B2 (en) 2010-06-18 2012-05-01 Hewlett-Packard Development Company, L.P. Associating a monitoring manager with an executable service in a virtual machine migrated between physical machines
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
JP5653151B2 (ja) * 2010-09-17 2015-01-14 キヤノン株式会社 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション
US9384054B2 (en) * 2010-09-22 2016-07-05 Nokia Technologies Oy Process allocation to applications executing on a mobile device
US8584121B2 (en) 2010-11-19 2013-11-12 International Business Machines Corporation Using a score-based template to provide a virtual machine
US9128803B2 (en) 2010-12-15 2015-09-08 Microsoft Technology Licensing, Llc Application model for implementing composite applications
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
US8745734B1 (en) 2010-12-29 2014-06-03 Amazon Technologies, Inc. Managing virtual computing testing
US8918785B1 (en) * 2010-12-29 2014-12-23 Amazon Technologies, Inc. Managing virtual machine network through security assessment
US8607067B1 (en) 2011-03-01 2013-12-10 Amazon Technologies, Inc. Techniques for attesting to information
US8839241B2 (en) 2010-12-31 2014-09-16 Emc Corporation Virtual appliance deployment
US8601472B1 (en) 2010-12-31 2013-12-03 Emc Corporation Instantiating virtual appliances
US8799915B1 (en) * 2010-12-31 2014-08-05 Emc Corporation Decommissioning virtual appliances
JP5592303B2 (ja) * 2011-04-07 2014-09-17 株式会社日立製作所 実行環境構築装置および実行環境構築システム
US9043767B2 (en) * 2011-04-12 2015-05-26 Pivotal Software, Inc. Release management system for a multi-node application
US8850419B1 (en) * 2011-05-20 2014-09-30 Amazon Technologies, Inc. Descaling computing resources
US8799888B1 (en) 2011-05-20 2014-08-05 Amazon Technologies, Inc. Updating an application
US8869135B1 (en) 2011-05-20 2014-10-21 Amazon Technologies, Inc. Deploying updates to an application during periods of off-peak demand
US9959174B2 (en) 2011-05-23 2018-05-01 International Business Machines Corporation Storage checkpointing in a mirrored virtual machine system
US10546118B1 (en) 2011-05-25 2020-01-28 Hewlett-Packard Development Company, L.P. Using a profile to provide selective access to resources in performing file operations
US10846396B1 (en) 2011-05-25 2020-11-24 Hewlett-Packard Development Company, L.P. Downloading data in a dedicated virtual machine
US8839245B1 (en) 2012-06-18 2014-09-16 Bromium, Inc. Transferring files using a virtualized application
US9921860B1 (en) 2011-05-25 2018-03-20 Bromium, Inc. Isolation of applications within a virtual machine
US10013281B2 (en) * 2011-06-29 2018-07-03 Microsoft Technology Licensing, Llc Controlling network utilization
US8819679B2 (en) * 2011-07-28 2014-08-26 International Business Machines Corporation Methods and systems for on-boarding applications to a cloud
WO2013018914A1 (ja) * 2011-08-01 2013-02-07 日本電気株式会社 試験装置、システム、プログラム、及び、方法
US9639402B2 (en) * 2011-08-05 2017-05-02 Oracle International Corporation Systems and methods for automatic hardware provisioning based on application characteristics
US20130055243A1 (en) * 2011-08-24 2013-02-28 Dell Products, Lp Unified Management Architecture to Support Multiple Platform-as-a-Service Workloads
US9094449B2 (en) 2011-09-14 2015-07-28 Architecture Technology Corporation Fight-through nodes for survivable computer network
US9766986B2 (en) 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US8640238B2 (en) * 2011-09-14 2014-01-28 Architecture Technology Corporation Fight-through nodes for survivable computer network
US9769250B2 (en) 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US9838415B2 (en) 2011-09-14 2017-12-05 Architecture Technology Corporation Fight-through nodes for survivable computer network
JP5134149B1 (ja) * 2011-09-26 2013-01-30 株式会社北洋銀行 ネットワークシステム及びその制御方法
US9245095B2 (en) 2011-10-25 2016-01-26 Ca, Inc. System and method for license management of virtual machines at a virtual machine manager
US8924723B2 (en) 2011-11-04 2014-12-30 International Business Machines Corporation Managing security for computer services
TWI478063B (zh) * 2011-11-21 2015-03-21 Inst Information Industry 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體
US8826277B2 (en) * 2011-11-29 2014-09-02 International Business Machines Corporation Cloud provisioning accelerator
US10310878B2 (en) * 2011-12-16 2019-06-04 Vmware, Inc. Execution of an application in a runtime environment installed in a virtual appliance
US9069607B1 (en) 2012-01-31 2015-06-30 Vmware, Inc. Selective migration of virtualized applications and configuration settings thereof
US20130219387A1 (en) * 2012-02-22 2013-08-22 Vmware, Inc. Establishing secure two-way communications in a virtualization platform
US9058198B2 (en) * 2012-02-29 2015-06-16 Red Hat Inc. System resource sharing in a multi-tenant platform-as-a-service environment in a cloud computing system
US9720668B2 (en) 2012-02-29 2017-08-01 Red Hat, Inc. Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system
US9047107B2 (en) 2012-02-29 2015-06-02 Red Hat, Inc. Applying a custom security type label to multi-tenant applications of a node in a platform-as-a-service environment
US9038128B2 (en) 2012-02-29 2015-05-19 Red Hat, Inc. Applying security category labels to multi-tenant applications of a node in a platform-as-a-service environment
JP5978659B2 (ja) 2012-03-06 2016-08-24 日本電気株式会社 シンクライアントシステム、管理サーバ、業務環境設定方法、及び業務環境設定プログラム
US9245108B1 (en) 2012-03-13 2016-01-26 Bromium, Inc. Dynamic adjustment of the file format to identify untrusted files
US8666938B1 (en) * 2012-03-28 2014-03-04 Vmware, Inc. Installed application cloning and failover to virtual server
WO2013145434A1 (ja) * 2012-03-29 2013-10-03 株式会社北洋銀行 ネットワークシステム及びその制御方法
US9571332B2 (en) * 2012-04-17 2017-02-14 Adara Networks, Inc. Methods and apparatuses for remote application provisioning automation over virtualized IT infrastructure
US20130275968A1 (en) * 2012-04-17 2013-10-17 Petio Petev Application management methods and systems
US9665411B2 (en) 2012-05-01 2017-05-30 Red Hat, Inc. Communication between a server orchestration system and a messaging system
US8850514B2 (en) 2012-05-01 2014-09-30 Red Hat, Inc. Cartridges in a multi-tenant platforms-as-a-service (PaaS) system implemented in a cloud computing environment
US9245111B2 (en) 2012-05-01 2016-01-26 Red Hat, Inc. Owner command execution in a multi-tenant cloud hosting environment
US9342330B2 (en) * 2012-05-11 2016-05-17 Sap Se Deploying a user-configured virtual appliance template including a portion of an existing computing application to enhance functionality
US9378255B2 (en) 2012-05-11 2016-06-28 Sap Se Cloud logistics
US10169000B2 (en) * 2012-05-30 2019-01-01 Red Hat Israel, Ltd. Provisioning composite applications using secure parameter access
US11023088B2 (en) 2012-06-18 2021-06-01 Hewlett-Packard Development Company, L.P. Composing the display of a virtualized web browser
US9201850B1 (en) 2012-06-18 2015-12-01 Bromium, Inc. Composing the display of a virtualized web browser
US9727534B1 (en) 2012-06-18 2017-08-08 Bromium, Inc. Synchronizing cookie data using a virtualized browser
US9384026B1 (en) 2012-06-18 2016-07-05 Bromium, Inc. Sharing and injecting cookies into virtual machines for retrieving requested web pages
US10095662B1 (en) 2012-06-18 2018-10-09 Bromium, Inc. Synchronizing resources of a virtualized browser
US9734131B1 (en) 2012-06-18 2017-08-15 Bromium, Inc. Synchronizing history data across a virtualized web browser
US9183031B2 (en) * 2012-06-19 2015-11-10 Bank Of America Corporation Provisioning of a virtual machine by using a secured zone of a cloud environment
US9887872B2 (en) 2012-07-13 2018-02-06 Microsoft Technology Licensing, Llc Hybrid application environments including hosted applications and application servers for interacting with data in enterprise environments
US8978035B2 (en) 2012-09-06 2015-03-10 Red Hat, Inc. Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
CN103677983B (zh) * 2012-09-20 2018-05-04 三亚中兴软件有限责任公司 应用的调度方法及装置
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
GB2513535A (en) * 2012-12-14 2014-11-05 Ibm Software installer with built-in hypervisor
CN103049268B (zh) * 2012-12-25 2016-08-03 中国科学院深圳先进技术研究院 一种基于Naplet的应用开发管理系统
US20140282581A1 (en) * 2013-03-15 2014-09-18 Mckesson Financial Holdings Method and apparatus for providing a component block architecture
US9348608B2 (en) 2013-04-24 2016-05-24 QRC, Inc. System and method for registering application and application transforms on a radiofrequency digitization and collection device
US9729465B2 (en) 2013-05-01 2017-08-08 Red Hat, Inc. Policy based application elasticity across heterogeneous computing infrastructure
US9584364B2 (en) 2013-05-21 2017-02-28 Amazon Technologies, Inc. Reporting performance capabilities of a computer resource service
US9292328B2 (en) 2013-05-24 2016-03-22 Bromium, Inc. Management of supervisor mode execution protection (SMEP) by a hypervisor
US9383986B2 (en) 2013-06-18 2016-07-05 Disney Enterprises, Inc. Safe low cost web services software deployments
EP3022649A1 (en) * 2013-07-19 2016-05-25 Hewlett Packard Enterprise Development LP Virtual machine resource management system and method thereof
US9852000B2 (en) * 2013-08-27 2017-12-26 Empire Technology Development Llc Consolidating operations associated with a plurality of host devices
US10599565B2 (en) 2013-12-24 2020-03-24 Hewlett-Packard Development Company, L.P. Hypervisor managing memory addressed above four gigabytes
US10430614B2 (en) 2014-01-31 2019-10-01 Bromium, Inc. Automatic initiation of execution analysis
CN103823657A (zh) * 2014-02-17 2014-05-28 汉柏科技有限公司 一种超线程设备板间通信的方法
US20150347170A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US11228637B2 (en) 2014-06-26 2022-01-18 Vmware, Inc. Cloud computing abstraction layer for integrating mobile platforms
US9680873B1 (en) 2014-06-30 2017-06-13 Bromium, Inc. Trusted network detection
US20170123847A1 (en) * 2014-07-08 2017-05-04 Ntt Docomo, Inc. Control node, node creation system and node creation method
US10311122B1 (en) 2014-08-22 2019-06-04 Bromium, Inc. On-demand unprotected mode access
US10009292B2 (en) 2014-10-03 2018-06-26 International Business Machines Corporation Cloud independent tuning service for autonomously managed workloads
US9619266B2 (en) 2014-10-10 2017-04-11 International Business Machines Corporation Tearing down virtual machines implementing parallel operators in a streaming application based on performance
CN104375877A (zh) * 2014-10-15 2015-02-25 国云科技股份有限公司 一种虚拟机在线快照生成与删除方法
US11340943B2 (en) 2014-12-04 2022-05-24 Nokia Solutions And Networks Gmbh & Co. Kg Steering of virtualized resources
JP6107801B2 (ja) * 2014-12-12 2017-04-05 日本電気株式会社 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
JP6312139B2 (ja) * 2014-12-26 2018-04-18 日本電信電話株式会社 動的制御システム及び動的制御方法
US10795856B1 (en) * 2014-12-29 2020-10-06 EMC IP Holding Company LLC Methods, systems, and computer readable mediums for implementing a data protection policy for a transferred enterprise application
CN104506651B (zh) * 2015-01-05 2018-02-23 浪潮(北京)电子信息产业有限公司 一种虚拟应用服务管理方法及系统
US9614931B2 (en) * 2015-01-20 2017-04-04 Sphere 3D Inc. Identifying a resource set require for a requested application and launching the resource set in a container for execution in a host operating system
US9213540B1 (en) * 2015-05-05 2015-12-15 Archive Solutions Providers Automated workflow management system for application and data retirement
US10242122B2 (en) 2015-05-05 2019-03-26 DGD Systems, Inc. Automated workflow management system for application and data retirement
US9658894B2 (en) 2015-10-15 2017-05-23 International Business Machines Corporation Automatically and dynamically reclaiming resources during virtual machine decommission
US10007498B2 (en) 2015-12-17 2018-06-26 Architecture Technology Corporation Application randomization mechanism
US10412114B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Application randomization mechanism
US10284592B1 (en) 2015-12-17 2019-05-07 Architecture Technology Corporation Application randomization mechanism
US10412116B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Mechanism for concealing application and operation system identity
US10200406B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Configuration of application randomization mechanism
US10200401B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Evaluating results of multiple virtual machines that use application randomization mechanism
US10394587B2 (en) 2016-01-06 2019-08-27 International Business Machines Corporation Self-terminating or self-shelving virtual machines and workloads
US10255092B2 (en) * 2016-02-09 2019-04-09 Airwatch Llc Managed virtual machine deployment
CN107077577B (zh) * 2016-03-25 2021-10-22 深圳前海达闼云端智能科技有限公司 一种应用程序启动方法及装置
US10169027B2 (en) * 2016-05-05 2019-01-01 International Business Machines Corporation Upgrade of an operating system of a virtual machine
US10768920B2 (en) 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
JP6631710B2 (ja) * 2016-06-29 2020-01-15 富士通株式会社 仮想化管理プログラム、仮想化管理装置および仮想化管理方法
US10885219B2 (en) * 2017-02-13 2021-01-05 Microsoft Technology Licensing, Llc Privacy control operation modes
US10554685B1 (en) 2017-05-25 2020-02-04 Architecture Technology Corporation Self-healing architecture for resilient computing services
US11070432B2 (en) * 2017-07-20 2021-07-20 Cisco Technology, Inc. Dynamic and customizable virtual network functions
US10990432B1 (en) 2017-11-30 2021-04-27 Ila Corporation Method and system for interactive cyber simulation exercises
US11221865B2 (en) * 2018-07-31 2022-01-11 Nutanix, Inc. Batch management of operations over virtualized entities
US20200073678A1 (en) * 2018-08-31 2020-03-05 Dell Products L.P. Systems and methods for operating system deployment
US11301338B2 (en) * 2018-09-20 2022-04-12 EMC IP Holding Company LLC Recovery on virtual machines with existing snapshots
KR20200093168A (ko) * 2019-01-28 2020-08-05 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법
US10848379B2 (en) 2019-01-30 2020-11-24 Hewlett Packard Enterprise Development Lp Configuration options for cloud environments
US10915312B2 (en) * 2019-07-02 2021-02-09 Vmware, Inc. Lifecycle management of virtual compute templates
US11605166B2 (en) 2019-10-16 2023-03-14 Parsons Corporation GPU accelerated image segmentation
KR102643727B1 (ko) * 2019-10-30 2024-03-04 주식회사 케이티 고장 탐지 모델 배포 방법 및 이를 위한 장치
US11303306B2 (en) 2020-01-20 2022-04-12 Parsons Corporation Narrowband IQ extraction and storage
US11619700B2 (en) 2020-04-07 2023-04-04 Parsons Corporation Retrospective interferometry direction finding
US11569848B2 (en) 2020-04-17 2023-01-31 Parsons Corporation Software-defined radio linking systems
US11575407B2 (en) 2020-04-27 2023-02-07 Parsons Corporation Narrowband IQ signal obfuscation
US12050924B2 (en) * 2020-11-16 2024-07-30 Sap Se Dynamic configuration of access restrictions for an application in relation to databases running in a cloud environment
US11849347B2 (en) 2021-01-05 2023-12-19 Parsons Corporation Time axis correlation of pulsed electromagnetic transmissions

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2003136020A (ru) * 2002-12-11 2005-05-27 Интел Корпорейшн (Us) Механизм для управления внешними прерываниями в системе виртуальных машин
JP2005208999A (ja) * 2004-01-23 2005-08-04 Ntt Data Corp 仮想マシン管理プログラム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002033543A1 (fr) * 2000-10-16 2002-04-25 Shima, Masahiko Système de location de logiciels
JP2002351682A (ja) * 2001-05-30 2002-12-06 Canon Inc 情報処理方法および情報処理システム
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
JP2004102398A (ja) * 2002-09-05 2004-04-02 Sharp Corp アプリケーション管理装置、その方法およびそのコンピュータ・プログラム
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US20050005018A1 (en) 2003-05-02 2005-01-06 Anindya Datta Method and apparatus for performing application virtualization
EP1678617A4 (en) 2003-10-08 2008-03-26 Unisys Corp COMPUTER SYSTEM PARAVIRTUALIZATION BY USING A HYPERVISOR IMPLEMENTED IN A PARTITION OF THE HOST SYSTEM
US20050132367A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management
US7454748B2 (en) * 2004-07-27 2008-11-18 Nokia Corporation System and method for specifying virtual machines
US20060070066A1 (en) 2004-09-30 2006-03-30 Grobman Steven L Enabling platform network stack control in a virtualization platform
EP1669864B1 (en) 2004-12-03 2010-06-02 STMicroelectronics Srl A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US7434218B2 (en) 2005-08-15 2008-10-07 Microsoft Corporation Archiving data in a virtual application environment
US8949364B2 (en) 2005-09-15 2015-02-03 Ca, Inc. Apparatus, method and system for rapid delivery of distributed applications
US8490082B2 (en) * 2005-11-03 2013-07-16 International Business Machines Corporation System and method for representing user processes as software packages in a software package management system
US9032164B2 (en) 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
US8015563B2 (en) * 2006-04-14 2011-09-06 Microsoft Corporation Managing virtual machines with system-wide policies
US8108668B2 (en) 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
CN101512488B (zh) 2006-08-07 2013-11-27 甲骨文国际公司 在虚拟机环境中提供硬件虚拟化的系统和方法
US8949826B2 (en) 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
JP2008107966A (ja) * 2006-10-24 2008-05-08 Hitachi Ltd 計算機システム
US8448161B2 (en) * 2007-07-30 2013-05-21 Adobe Systems Incorporated Application tracking for application execution environment
CN100553214C (zh) * 2007-09-17 2009-10-21 北京航空航天大学 移动虚拟环境系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2003136020A (ru) * 2002-12-11 2005-05-27 Интел Корпорейшн (Us) Механизм для управления внешними прерываниями в системе виртуальных машин
JP2005208999A (ja) * 2004-01-23 2005-08-04 Ntt Data Corp 仮想マシン管理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9182974B1 (en) 2014-04-18 2015-11-10 AO Kaspersky Lab System and methods for updating software of templates of virtual machines
RU2573789C2 (ru) * 2014-04-18 2016-01-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ запуска виртуальной машины

Also Published As

Publication number Publication date
BRPI0911610A2 (pt) 2015-10-06
KR20110030447A (ko) 2011-03-23
US20090313620A1 (en) 2009-12-17
EP2310940A4 (en) 2014-01-01
AU2009257865B2 (en) 2015-02-26
JP2011524053A (ja) 2011-08-25
CA2723907C (en) 2016-03-01
BRPI0911610B1 (pt) 2019-11-12
EP2310940A1 (en) 2011-04-20
KR101574366B1 (ko) 2015-12-03
AU2009257865A1 (en) 2009-12-17
CN102057355B (zh) 2013-08-07
CN102057355A (zh) 2011-05-11
WO2009151875A1 (en) 2009-12-17
RU2010150809A (ru) 2012-06-20
CA2723907A1 (en) 2009-12-17
US8161479B2 (en) 2012-04-17
JP5367074B2 (ja) 2013-12-11

Similar Documents

Publication Publication Date Title
RU2498394C2 (ru) Синхронизация жизненных циклов виртуальной машины и приложения
US8239505B2 (en) Progressively implementing declarative models in distributed systems
US9471365B2 (en) Techniques for performing virtual machine software upgrades using virtual disk swapping
EP2633400B1 (en) Stateful applications operating in a stateless cloud computing environment
US9851989B2 (en) Methods and apparatus to manage virtual machines
KR101432463B1 (ko) 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법
US8595714B1 (en) User controlled environment updates in server cluster
US7970892B2 (en) Tuning and optimizing distributed systems with declarative models
US8918783B2 (en) Managing virtual computers simultaneously with static and dynamic dependencies
US20090260021A1 (en) Workflow managed composite applications
US10715594B2 (en) Systems and methods for update propagation between nodes in a distributed system
WO2009055753A2 (en) Processing model-based commands for distributed applications
CN101159596A (zh) 用于布置服务器的方法和设备
US20210311712A1 (en) Validation of desired software state image for hardware incompatibilities
Nielsen et al. Private cloud configuration with metaconfig
CN113439258A (zh) 在二级存储系统上托管虚拟机
Walters et al. Planning and Installing SQL Server 2008
Walters et al. Planning and Installing SQL Server 2012

Legal Events

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

Effective date: 20150306

MM4A The patent is invalid due to non-payment of fees

Effective date: 20190516