RU2498394C2 - Синхронизация жизненных циклов виртуальной машины и приложения - Google Patents
Синхронизация жизненных циклов виртуальной машины и приложения Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, 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) запрошенную прикладную программу на развернутых одной или более виртуальных машинах.
на уровне (103) приложений принимают (200) один или более запросов (113) на инициирование прикладной программы (135);
определяют (210) из одного или более свойств (137) запрошенной прикладной программы, какие из одной или более виртуальных машин (150) должны быть развернуты для исполнения запрошенной прикладной программы;
отправляют (220) одну или более команд (147) виртуальных машин с уровня приложений на уровень (107) виртуальных машин для развертывания упомянутых определенных одной или более виртуальных машин (150) для запрошенной прикладной программы; и
инсталлируют (230) запрошенную прикладную программу на развернутых одной или более виртуальных машинах.
2. Способ по п.1, в котором:
уровень (103) приложений содержит управляющее приложение (105), которое принимает запрос (113) на инициирование прикладной программы; и
управляющее приложение (105) преобразует полученные свойства (137) в упомянутые одну или более команд (147) виртуальных машин.
уровень (103) приложений содержит управляющее приложение (105), которое принимает запрос (113) на инициирование прикладной программы; и
управляющее приложение (105) преобразует полученные свойства (137) в упомянутые одну или более команд (147) виртуальных машин.
3. Способ по п.2, в котором уровень (107) виртуальных машин содержит один или более диспетчеров (120) виртуальных машин, которые принимают упомянутые одну или более команд (147) виртуальных машин от управляющего приложения (105).
4. Способ по п.2, в котором:
свойства (137), соответствующие запрошенному приложению (135), содержат одну или более описательных моделей (115), ассоциированных с запрошенной прикладной программой (135); и
эти одна или более описательные модели содержат одну или более конфигураций для упомянутых определенных виртуальных машин.
свойства (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).
определяют, что запрошенное приложение (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).
на уровне (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).
идентифицированные одна или более виртуальные машины (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) запрошенную прикладную программу на развернутых одной или более виртуальных машинах.
на уровне (103) приложений принимают (300) один или более запросов (113) на инициирование прикладной программы (135);
определяют (310) из одного или более свойств (137) запрошенной прикладной программы, какие из одной или более виртуальных машин (150) должны быть развернуты для исполнения запрошенной прикладной программы;
отправляют (320) одну или более команд (147) виртуальных машин с уровня приложений на уровень (107) виртуальных машин для развертывания упомянутых определенных одной или более виртуальных машин (150) для запрошенной прикладной программы; и
инсталлируют (330) запрошенную прикладную программу на развернутых одной или более виртуальных машинах.
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)
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)
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)
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)
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 | 北京航空航天大学 | 移动虚拟环境系统 |
-
2008
- 2008-06-13 US US12/138,591 patent/US8161479B2/en active Active
-
2009
- 2009-05-15 CA CA2723907A patent/CA2723907C/en not_active Expired - Fee Related
- 2009-05-15 CN CN2009801223875A patent/CN102057355B/zh active Active
- 2009-05-15 WO PCT/US2009/044263 patent/WO2009151875A1/en active Application Filing
- 2009-05-15 BR BRPI0911610-9A patent/BRPI0911610B1/pt active IP Right Grant
- 2009-05-15 AU AU2009257865A patent/AU2009257865B2/en not_active Ceased
- 2009-05-15 JP JP2011513536A patent/JP5367074B2/ja not_active Expired - Fee Related
- 2009-05-15 KR KR1020107027645A patent/KR101574366B1/ko active IP Right Grant
- 2009-05-15 EP EP09763166.7A patent/EP2310940A4/en not_active Ceased
- 2009-05-15 RU RU2010150809/08A patent/RU2498394C2/ru not_active IP Right Cessation
Patent Citations (2)
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)
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 |