УРОВЕНЬ ТЕХНИКИ
[0001] Пользователи электронных устройств все больше используют внешние вычислительные ресурсы (например, ресурсы в "общественных облаках") для своих вычислительных нужд. Например, такие внешние вычислительные ресурсы могут включать в себя один или несколько серверов, которые конфигурируются, чтобы удовлетворять нужды пользователя, когда различные приложения исполняются. Таким образом, пользователь может иметь доступ к гораздо большему количеству вычислительных ресурсов (например, хранилищу, мощности обработки и т. д.), чем в противном случае доступно на персональных устройствах пользователя.
[0002] Однако для общедоступного сервиса (например, использующего "общественное облако") может быть сложно обеспечить достаточные вычислительные ресурсы постоянно (например, в течение времени, когда множество пользователей запрашивает сервисы, которые в совокупности требуют большинства или всех "общественных" ресурсов поставщика).
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0003] Согласно одному общему аспекту, система может включать в себя устройство обработки данных, которое включает в себя машиночитаемый носитель данных, хранящий исполняемые инструкции, которые побуждают устройство обработки данных получать описание одного или нескольких требований вычислительных ресурсов для исполнения приложения, ассоциированного с общедоступным сервисом, и оппортунистически получать доступ к вычислительным ресурсам от вычислительного объекта, который включает в себя частное вычислительное устройство. Частное вычислительное устройство является внешним для и отдельным от общедоступного сервиса. Для требований вычислительных ресурсов осуществляется интеллектуальное сопоставление с доступными вычислительными ресурсами вычислительного объекта с частными вычислительными ресурсами, которые временно доступны от источника частного вычислительного устройства. Интеллектуальное сопоставление выполняется с использованием анализа оптимизации производительности.
[0004] Согласно другому аспекту, система может включать в себя по меньшей мере один процессор и машиночитаемый носитель данных, который хранит исполняемый код, который исполняется процессором. Исполняемый код включает в себя средство администрирования оппортунистических ресурсов , которое включает в себя модуль получения описания ресурсов, который получает описания одного или нескольких требований вычислительных ресурсов для исполнения одного или нескольких приложений, ассоциированных с динамически изменяющимися рабочими нагрузками. Модуль получения описания ресурсов включен в общедоступный сервис. Средство выделения ресурсов оппортунистически получает доступ к вычислительным ресурсам от одного или нескольких частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами одного или нескольких частных облаков. Общественный хост-модуль инициирует управление активностью хостинга исполнения одного или нескольких приложений с использованием сопоставленных временно доступных вычислительных ресурсов частных облаков.
[0005] Согласно другому аспекту, компьютерный программный продукт может включать в себя машиночитаемый носитель данных, хранящий исполняемый код, который побуждает по меньшей мере одно устройство обработки данных получать описание одного или нескольких требований вычислительных ресурсов для исполнения приложения. Описание требований вычислительных ресурсов обеспечивается средству выделения ресурсов общедоступного сервиса, причем средство выделения ресурсов сконфигурировано, чтобы оппортунистически получать доступ к вычислительным ресурсам от вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство, которое является внешним для и отдельным от общедоступного сервиса. Для требований вычислительных ресурсов осуществляется интеллектуальное сопоставление с доступными вычислительными ресурсами вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство. Управление активностью хостинга исполнения приложения для одного или нескольких пользователей инициируется с использованием сопоставленных доступных вычислительных ресурсов вычислительного объекта.
[0006] Это краткое описание сущности изобретения обеспечено для представления подборки концепций в упрощенной форме, которые дополнительно описываются ниже в подробном описании. Это краткое описание сущности изобретения не предназначено для определения ключевых признаков или существенных признаков заявляемого изобретения, как не предназначено и для использования для ограничения объема заявляемого изобретения. Подробности одного или нескольких осуществлений излагаются на сопроводительных чертежах и в описании ниже. Другие признаки будут очевидны из описания и чертежей, а также из формулы изобретения.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0007] Фиг.1 изображает структурную схему примерной системы для соединения частных вычислительных ресурсов с внешними сервисами.
[0008] Фиг.2 изображает блок-схему, иллюстрирующую примерные этапы для интеллектуального выделения вычислительных ресурсов, которые доступны в частных облаках, для исполнения приложений от источников, внешних по отношению к частным облакам.
[0009] Фиг.3 изображает структурную схему, иллюстрирующую примерную обобщенную систему для соединения частных вычислительных ресурсов с внешними сервисами.
[0010] Фиг.4A-4E изображают блок-схему, иллюстрирующую примерные операции системы с фиг.3.
[0011] Фиг.5A-5B изображают блок-схему, иллюстрирующую примерные операции системы с фиг.3.
[0012] Фиг.6 изображает блок-схему, иллюстрирующую примерные операции системы с фиг.3.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
I. Введение
[0013] Существует множество вычислительных сценариев, в которых общественное облако не может быть использовано (или может быть нежелательно его использовать по различным причинам), и местный, локальный или региональный центр данных требуется (или иным образом более желателен). Например, это может быть так в различных сценариях для удовлетворения необходимости в конфиденциальности коммерческого предприятия для данных или запускаемых программ, задержки для пользователей, необходимости в заказных аппаратных средствах или осуществления интерфейса с заказными системами, недоступными из общественного облака, нормативных требований, таких как национальные границы, которые некоторые данные не могут пересекать, и т. д. В этом контексте эти местные, локальные или региональные центры данных или вычислительные ресурсы могут называться здесь "частным облаком". Частные облака могут быть ограничены в том, что они не могут получать преимущества от той же самой экономии на масштабе, что и общественное облако. Например, могут быть моменты, когда конкретная область не имеет какой-либо потребности в обслуживании (например, время поздней ночи в регионе), но в общественном облаке существует потребность в вычислительных ресурсах.
[0014] В этом контексте "облако" может ссылаться на множество различных вычислительных концепций, которые задействуют одно или несколько устройств или компьютеров, которые могут быть соединены через сеть связи, такую как Интернет. Например, "облачное вычисление" может ссылаться на распределенное вычисление по сети и может задействовать возможность запускать программу или приложение на множестве соединенных компьютеров. В качестве конкретного примера, такая распределенная компьютерная система может включать в себя настольные персональные компьютеры (PC) или персональные вычислительные устройства в корпоративном здании, которые будут обрабатывать достаточные вычислительные ресурсы, чтобы обслуживать своего пользователя в течение рабочего времени, но могут бездействовать, когда пользователь уходит на встречи, или в нерабочее время.
[0015] Специалист в области техники обработки данных поймет, что примерные методики, рассмотренные здесь, могут использовать "облако" или любое другое удаленное устройство (например, удаленный сервер или более простые типы удаленных устройств) без выхода за пределы сущности рассматриваемого здесь.
[0016] В соответствии с примерными методиками, рассмотренными здесь, вышеописанная ситуация может выгодным образом разрешаться путем соединения частных облаков с общественным облаком так, что частное облако может продавать свои неиспользуемые ресурсы общественному облаку. В некоторой степени подобно тому, как локальное генерирование электроэнергии или энергия, получаемая из окружающей среды, могут быть проданы обратно энергетической системе посредством технологий интеллектуальной энергосистемы, примерные технологии интеллектуального облака, рассмотренные здесь, могут обеспечивать возможность продавать обратно доступный избыточный вычислительный ресурс общественному облаку, когда существует потребность.
[0017] Однако существуют сложности, которые необходимо решить, прежде чем ресурсы бездействия в частном облаке могут быть использованы общественным облаком. Например, возможность сетевого соединения и вычислительная производительность каждого частного облака может отличаться от таковых у общественного облака на варьируемое значение. Например, характеристики производительности конкретного частного облака могут по существу ухудшаться по сравнению с общественным облаком и могут быть неприемлемы для обслуживания всех типов потребностей, которые общественное облако может обслужить. Например, хранилище данных может требовать непрерывную доступность, которую частное облако не может иметь возможность поддерживать. Например, примеры методик, рассмотренные здесь, которые компенсируют ограничения частного облака или приспосабливают потребности потребителей общественного облака под возможности частного облака, могут рассматриваться в некоторой степени как форма "сопоставления сопротивления" между общественными и частными облаками.
[0018] Примерные методики, рассмотренные здесь, могут выгодным образом разрешать (по меньшей мере) эти технические трудности. Например, методики, рассмотренные здесь, могут выгодным образом разрешать такие проблемы, как (1) потребность маршрутизации к оптимальному частному облаку для компромисса между высокой производительностью и низкими затратами и (2) обеспечение надежной операции с динамическими изменениями в доступности частного облака.
[0019] Могут быть также и другие трудности, такие как обеспечение того, чтобы частные облака могли запускать и осуществлять хостинг тех же самых программных средств, что и разработанные для общественного облака. Например, для некоторых осуществлений надлежащая платформа виртуализации может быть использована в частных облаках и общественном облаке, которая обеспечивает возможность программным средствам, написанным для одного набора серверов, запускаться на любом другом наборе серверов. Другие примерные механизмы, такое как машины двойной или множественной загрузки, которые загружают свою операционную систему (OS) в режим частного использования, когда не продают обратно мощность общественному облаку, и загружают обратно в режим общественного облака в остальное время, могут быть задействованы.
[0020] Например, сети доставки содержимого (CDN) стандартно решили проблему потребности маршрутизации к ближайшему узлу CDN, но они не могли учесть высокую изменчивость в доступности и производительности частных центров данных. Например, в то время как ближайший (в плане задержки сети) узел CDN (если таковой имеет содержимое, которое должно быть обслужено) может быть оптимальным для клиента, ближайшее частное облако может не быть оптимальным для клиента, поскольку, например, это частное облако может в текущий момент не быть доступно, может не иметь надлежащих вычислительных ресурсов (например, пропускной способности сети, хранилища и т. д.) для целей конкретного клиента, или не может ожидаться, что оно останется доступным в течение всей продолжительности текущих потребностей конкретного клиента.
[0021] Предыдущие решения для решений в отношении надежности не могут работать непосредственно для динамических колебаний в доступности частных облаков. Например, приложение может требовать сохранения долговременных данных (например, инвентарь, остающийся в приложении электронной торговли), и может не быть частного облака, которое всегда доступно для таких данных. Таким образом, как рассмотрено здесь, примерные механизмы надежности могут быть сконфигурированы для поддержки частных облаков в установке "интеллектуального облака".
[0022] В соответствии с примерными методиками, рассмотренными здесь, примерная архитектура системы может обеспечивать доступность серверных данных, требуемых для хостинга динамически изменяющихся рабочих нагрузок в местоположениях частного облака, которые становятся доступны на временной основе.
[0023] В соответствии с примерными методиками, рассмотренными здесь, примерные методики могут обнаруживать текущую доступность частного облака и выделять эту доступность для текущей вычислительной потребности.
[0024] Кроме того, примерные механизмы и методики, рассмотренные здесь, могут выбирать оптимальное по производительности частное облако для вычислительных нужд клиента. Например, такая оптимальная производительность может быть определена в плане атрибутов, таких как скорость вычислений, задержка сети, пропускная способность сети и/или производительность хранилища.
[0025] Кроме того, примерные механизмы и методики, рассмотренные здесь, могут выбирать оптимальное по производительности частное облако, когда вычислительные нужды клиента исходят из множества местоположений (например, веб-сайт имеет вычислительные нужды обслужить клиентов, находящихся в различных частях мира).
[0026] Кроме того, примерные методики, рассмотренные здесь, могут находить компромисс между затратами и производительностью при выборе наилучшего (или наиболее подходящего) доступного частного облака для обслуживания текущей вычислительной потребности.
[0027] Кроме того, примерные методики, рассмотренные здесь, могут совместно оптимизировать выделение множества вычислительных нагрузок множеству доступных частных облаков, чтобы оптимизировать глобальную метрику, такую как производительность, предлагаемая для 99% клиентов, общий доход или другие метрики.
[0028] Кроме того, примерные методики, рассмотренные здесь, могут динамически делать вывод о требованиях миграции нагрузки и осуществлять миграцию рабочих нагрузок по мере того, как доступности частных облаков или другие затраты изменяются.
[0029] Кроме того, примерные механизмы и методики аукционов с посредниками, рассмотренные здесь, могут сопоставлять вычислительные нужды клиента с лучшим (или самым подходящим, или оптимальным, как определено примерными методиками) компромиссом производительности и стоимости, предлагаемым различными доступными частными облаками.
[0030] Кроме того, примерные методики, рассмотренные здесь, могут обеспечивать механизмы для обратного обеспечения свободных частных вычислительных ресурсов частного облака в моменты, когда существует возможность ими поделиться (например, они доступны для использования пользователями, внешними по отношению к частному облаку), частных вычислительных ресурсов, совместимых по производительности и/или стандартам образом, обратно общественному облаку.
[0031] Кроме того, примерные методики, рассмотренные здесь, могут обеспечивать механизмы для выбора набора конкретных частных облаков для хостинга конкретного приложения и во вторую очередь для выбора поднабора из этого набора частных облаков, чтобы обслуживать один или несколько конкретных запросов, принятых от клиентов конкретного приложения. Например, набор частных облаков может интеллектуально выбираться для хостинга NETFLIX, и соответственные поднаборы этого набора могут затем интеллектуально выбираться, чтобы обслуживать соответственные отдельные запросы клиентов NETFLIX для просмотра фильма.
[0032] Фиг.1 изображает структурную схему примерной системы 100 для соединения частных (например, внутренних) вычислительных ресурсов с внешними сервисами. Как показано в примере с фиг.1, частные вычислительные устройства 102 представляют примерное корпоративное или персональное вычислительное устройство (например, локальный центр данных, серверы в серверной комнате, офисные персональные компьютеры (PC), ноутбук, планшет, домашний PC и т. д.), которое в текущий момент имеет вычислительную мощность незанятости для обслуживания любой вычислительной потребности помимо потребностей от своего локального пользователя(-ей). Количество частных вычислительных устройств 102 в системе 100 может изменяться с течением времени и может быть нулевым в конкретные моменты. Количество свободной мощности, доступной в каждом из этих устройств, может изменяться по времени и может быть нулевым в конкретные моменты. В этом контексте частные вычислительные устройства 102 могут называться "частным облаком".
[0033] Как показано в примере с фиг.1, общественное облако 104 представляет облачную инфраструктуру, которая специализирована для обслуживания приложений, желаемых клиентом 108. Его проектирование оптимизировано для такого использования и в некоторых осуществлениях может не иметь локальных пользователей. Вычислительная мощность, доступная в общественном облаке 104, может также изменяться по времени (например, больше мощности доступно, когда выход панели солнечной батареи для питания серверов энергией выше). Например, доступная мощность может быть нулевой (или по существу близкой к нулю) в системе, где вся потребность (или по существу вся потребность) обслуживается с использованием частных вычислительных устройств 102. В некоторых осуществлениях сама инфраструктура общественного облака 104 не обязательно должна быть ограничена одним местоположением, а может включать в себя множество центров данных или серверов во множестве местоположений.
[0034] В примере с фиг.1 клиенты 108 могут представлять пользователей, чья вычислительная потребность должна быть обслужена программными средствами 110 приложения. Например, для аналитического приложения больших данных клиент 108 может быть компанией финансовой аналитики, которая желает запустить работы по анализу данных и, таким образом, нуждается в вычислительных ресурсах. В качестве другого примера, для веб-приложения клиенты 108 могут быть пользователями веб-сайта, которые желают осуществить доступ к веб-содержимому, обслуживаемому приложением 110. Например, для облачного игрового приложения клиенты 108 могут быть игроками, которые желают играть в эту игру. Например, для облачного приложения потокового отображения видео клиенты 108 могут быть зрителями, которые желают смотреть фильмы, телепередачи, видео и т. д. Например, клиенты 108 для конкретных программных средств 110 приложения могут быть в одном местоположении или могут быть рассредоточены по множеству местоположений.
[0035] В примере с фиг.1 программные средства 110 приложения представляют приложение, которое клиент 108 желает использовать (например, веб-сайт, веб-сервис, систему пакетной обработки данных, игровой сервер и т. д.). Хотя фиг.1 изображает только одно приложение 110 для простоты последующего рассмотрения, специалист в области техники обработки данных поймет, что примерные методики, рассмотренные здесь, также применяются к множеству приложений 110 в системе 100. Кроме того, для некоторых осуществлений, рассмотренных здесь, предполагается, что хостинг программных средств 110 приложения может осуществляться на по меньшей мере поднаборе доступных частных вычислительных устройств 102. Например, программные средства 110 приложения не могут присутствовать на каждом частном вычислительном устройстве 102 и могут, таким образом, копироваться на надлежащее частное вычислительное устройство(-а) 102 после того, как решение было принято использовать это конкретное устройство (или устройства).
[0036] В соответствии с примерными методиками, рассмотренными здесь, если программные средства 110 приложения требуют каких-либо модификаций для исполнения на различных частных вычислительных устройствах 102, то различные версии программных средств 110 могут быть сделаны доступными, или автоматизированные механизмы, чтобы осуществить эти модификации, могут быть использованы. Например, общественное облако 104 может предлагать платформу ASP.NET, и программное приложение 110 может быть написано с использованием ASP.NET. Однако если частное вычислительное устройство 102 не предлагает платформы ASP.NET, а имеет только WINDOWS OS без ASP.NET, автоматизированные методики могут быть использованы, чтобы комплектовать в пакет приложение вместе со средой исполнения и библиотеками ASP.NET так, чтобы комбинированный пакет мог запускаться в WINDOWS OS на основе частного вычислительного устройства 102. Если желательно или необходимо, приложение может также комплектоваться в пакет с OS. В некоторых случаях оператор частного облака может добавлять аппаратные средства, необходимые (или желательные) для режима использования в общественном облаке, где такие аппаратные средства не используются каким-либо локальным приложением в частном облаке (например, сопроцессор безопасности или память с улучшенным исправлением ошибок).
[0037] В примере с фиг.1 данные 112 приложения представляют данные, которые программные средства 112 приложения должны исполнить. Некоторые или все из частных вычислительных устройств 102 могут также иметь способность хранить данные 112 приложения, и некоторые из них могут иметь возможность удерживать эти данные 112, даже когда частное устройство 102 само не доступно (не имеет свободной неиспользуемой мощности), чтобы обслужить потребность. Например, это может помочь избежать необходимости переносить данные 112 на частное устройство 102, когда оно выбирается для обслуживания вычислительной потребности, если данные 112 были ранее перенесены на него. Например, хранилище 112 данных приложения в частном устройстве 102 может отсутствовать (или быть опущено), и в таких случаях программные средства 110 приложения могут использовать общественное облако 104 (например, которое может в свою очередь использовать другие частные облака) для своих нужд хранения данных и использовать вычислительные ресурсы только в частном устройстве 102. В качестве другого примера, данные 112 приложения в частном устройстве 102 могут быть устаревшими, и в таких случаях обновление может выполняться. В любом случае использование данных 112 приложения, сохраненных в частном устройстве 102, может выгодным образом помочь в уменьшении требований сети.
[0038] В примере с фиг.1 средство 114 выделения ресурсов представляет примерную логику, которая выделяет вычислительную потребность (от клиентов 108) различным доступным поставщикам вычислительных сервисов в общественном 104 и частном 102 облаках. Например, хостинг средства 114 выделения ресурсов может осуществляться в общественном облаке 104, в отдельном сервере или в качестве распределенного приложения, запущенного во множестве частных облаков и общественном облаке 104.
[0039] Как сетевые компоненты, фиг.1 также изображает три примерных сетевых линии связи: (1) от клиента к частному облаку (частным вычислительным устройствам) (116), (2) от клиента к общественному облаку (118) и (3) от частного облака к общественному облаку (120). Относительная производительность этих сетевых линий связи может отличаться для различных клиентов 108 и устройств 102 частного облака. Например, если клиент 108 использует широкополосное соединение Интернета, и частное облако имеет сетевое соединение предприятия (например, линию T1) с Интернетом, в то время как общественное облако 104 имеет соединение опорной сети с Интернетом, то клиент 108 может иметь "лучшее" соединение с общественным облаком 104 и немного более плохое соединение с частным облаком. В этом примере сетевая линия связи, доступная частному облаку для переноса программных средств 110 приложения и данных 112 приложения к себе, может быть довольно быстрой для множества приложений. В качестве другого примера, если клиент 108 является ноутбуком, соединенным с горячей точкой в аэропорту, устройство 102 частного облака является другим ноутбуком, соединенным с той же самой горячей точкой в аэропорту, в то время как общественное облако 104 то же самое, что и в предыдущем примере, то клиент 108 с большой вероятностью имеет более хорошую сетевую линию связи с частным облаком (локальной сетью), в то время как линия связи с общественным облаком 104 медленнее. Также частное облако в этом случае может иметь относительно медленное соединение для переноса программных средств 110 приложения и данных 112 приложения к себе.
[0040] В рассмотрении ниже несколько примерных методик представляются для определения соединений между ресурсами частного облака и внешними ресурсами в соответствии с нуждами клиента. Такие примерные методики могут включать в себя (по меньшей мере) методики на основе обнаружения, методики на основе производительности, методики на основе производительности и затрат, методики с множеством приложений и методики динамического выделения.
[0041] Например, целью методик на основе обнаружения является сделать доступной свободную мощность с возможностью использования клиентами 108, нуждающимися в вычислительных сервисах (например, которые не могут непосредственно учитывать производительность или затраты). Такие методики на основе обнаружения фокусируются на обнаружении доступных ресурсов.
[0042] Для того чтобы свободная мощность частного облака имела возможность использования клиентом 108, существование свободной мощности известно клиенту, и свободная мощность имеет достаточно вычислительных ресурсов (например, CPU, сеть, хранилище и т. д.), чтобы обслуживать нужды клиента; существует сетевая линия связи от клиента 108 к свободной мощности (например, в плане физической возможности соединения и разрешений проходить через соответствующие брандмауэры); и хостинг программных средств приложения осуществляется в рассматриваемом частном облаке.
[0043] В соответствии с примерными методиками, рассмотренными здесь, примерная система 100 может иметь возможность удовлетворять этим условиям, если примерные этапы, такие как обнаружение, выбор и маршрутизация, выполняются, как показано на фиг.2 и как рассмотрено ниже.
[0044] Фиг.2 изображает блок-схему 200, иллюстрирующую примерные этапы для интеллектуального выделения вычислительных ресурсов, которые доступны в частных облаках, для исполнения приложений от источников, внешних по отношению к частным облакам.
[0045] В этом контексте "интеллектуальность" ссылается на осуществление "интеллектуальных" выборов, касающихся выбора вычислительных ресурсов, которые добровольно делаются доступными частными облаками. Например, если общественный сервис (например, AMAZON, NETFLIX и т. д.) желает осуществлять хостинг приложений, которые имеют требования к производительности (например, потоковая передача фильмов клиентам эффективным и высокопроизводительным образом), то общественный сервис желает обеспечить, чтобы "добровольные" ресурсы (например, от частных хостинговых объектов) использовались интеллектуальным образом (например, не просто подключать их и запускать программные средства на них, а в зависимости от того, что необходимо приложению, делать интеллектуальный выбор в отношении того, какие ресурсы добровольного донора обеспечивают лучшую или оптимальную производительность для выполнения приложения для соответственных клиентов общественного сервиса). Таким образом, "интеллект" включает в себя примерные методики в выборе наиболее подходящих ресурсов для соответственного приложения. Например, если клиенты приложения находятся в Сиэтле, а служащий донором компьютер расположен неподалеку от Сиэтла, то может быть определение "хорошего совпадения" в сетевом доступе, но если приложение требует существенного объема хранилища, а служащий донором компьютер не имеет типа хранилища, необходимого приложению (например, служащий донором компьютер имеет больше памяти, но меньше места на жестких дисках, но приложению требуется больше места на жестких дисках и не так много памяти), то служащий донором компьютер может не быть оптимальным соответствием для требований приложения.
[0046] Как показано в примере с фиг.2, на 202 (обнаружение) клиент уже знает о существовании по меньшей мере одного хоста, который может обслуживать желаемые программные средства приложения. Например, это может быть общественное облако, но может быть и любой сервер. Знание клиента может основываться на записях DNS (сервера доменных имен) для приложения, к которому клиент желает осуществить доступ, или посредством других каналов для совместного использования такой информации. Например, если клиент желает осуществить доступ к MICROSOFT.COM, то клиент может искать существующие серверы DNS для определения сетевого адреса, где приложение MICROSOFT.COM доступно. В этом примере на 204 клиент осуществляет контакт с приложением по этому первому известному сетевому адресу.
[0047] На 206 (выбор) приложение принимает этот клиентский запрос и осуществляет его маршрутизацию к средству выделения ресурсов. Средство выделения ресурсов принимает сообщения от каждого частного облака, которое имеет доступную свободную мощность, с подробной информацией о природе доступной мощности. Средство выделения ресурсов также хранит информацию о возможности сетевого соединения и правилах брандмауэра для этих частных облаков.
[0048] На 208 средство выделения ресурсов использует эту информацию для выбора частного и/или общественного облака, вычисления ресурсов, которые удовлетворяют требованиям на ресурсы, определенным программными средствами приложения. Оно осуществляет проверку для определения, может ли клиент подключиться к этим ресурсам, на основе конфигурации сети и правил брандмауэра. Например, если частное облако не обеспечивает возможность клиентам, находящимся в Сирии, подключиться к нему, и клиентский запрос исходит от сирийского клиента, то это частное облако не будет рассматриваться.
[0049] Среди вычислительных ресурсов (частных и общественных), которые удовлетворяют клиентским требованиям, один выбирается. Этот выбор может быть произвольным или может основываться на методиках на основе производительности и затрат, как рассмотрено дополнительно ниже.
[0050] На 210 (маршрутизация), как только обслуживающее местоположение выбирается, осуществляется маршрутизация клиентского запроса к нему. Если это обслуживающее местоположение еще не имеет программных средств приложения и данных приложения для обслуживания запроса, такие программные средства и данные сначала получаются, например, от общественного облака или находящегося поблизости частного облака (например, с использованием способов одноранговой связи по сети). Запрос затем обрабатывается и ответ вычисляется.
[0051] Если желается программными средствами приложения, клиентский ответ от этого местоположения указывает свой собственный адрес, так что маршрутизация последующих запросов от клиента может осуществляться непосредственно к этому выбранному серверу. Ответ посылается клиенту.
[0052] Например, методики на основе производительности могут оптимизировать этап выбора в методиках на основе обнаружения. При выборе вычислительного ресурса для обслуживания клиента эти методики могут учитывать множество критериев производительности в осуществлении выбора. Например, критерии производительности могут включать в себя такие факторы, как время до первого ответа, среднее время ответа по множеству запросов и/или надежность облака.
[0053] Например, время до первого ответа может включать в себя время, задействованное для выбранного частного или общественного облака для вычисления ответа на первый запрос от клиента. Например, это может включать в себя время для получения программных средств приложения и данных приложения в этом местоположении.
[0054] Например, среднее время ответа по множеству запросов может включать в себя время, задействованное, в среднем, для обслуживания всех запросов от клиента. Например, как только первый ответ был вычислен, это может зависеть от вычислительных возможностей выбранного местоположения сервера, задержки сети до клиента и доли данных приложения, доступных в этом местоположении.
[0055] Например, при рассмотрении надежности облака некоторые частные облака могут испытывать больше отказов, чем другие.
[0056] Дополнительные критерии производительности могут быть значимыми для конкретных приложений, такие как предпочтение местоположений частного облака, хостинг которого осуществляется вне конкретных географических зон, частные облака, использующие конкретную марку аппаратных средств, и т. д. Такие факторы могут быть включены в примерные методики, рассмотренные ниже подобно рассмотренному выше. Специалист в области техники обработки данных поймет, что множество других факторов может быть использовано без выхода за пределы сущности рассматриваемого здесь; однако выбранные выше факторы рассматриваются здесь для ясности рассматриваемого здесь.
[0057] Кроме того, специалист в области техники обработки данных поймет, что облако, которое "лучшее" (например, определенное как оптимальное) по критериям производительности, может не быть "лучшим" (например, определенным как оптимальное) по другим критериям. Например, местоположение облака, которое очень близко к клиенту, может иметь самую выгодную (как определено в соответствии с примерными методиками, рассмотренными здесь) среднюю задержку по множеству запросов, но это местоположение облака может не иметь программных средств приложения и данных приложения изначально, и получение этих элементов может требовать по существу долгого времени до первого ответа. Другое местоположение облака, которое имеет все требуемые программные средства приложения и элементы данных приложения, может готовиться к выключению, и таким образом, даже хотя оно может обеспечивать "хорошее" время до первого ответа (как определено в соответствии с примерными методиками, рассмотренными здесь), последующие запросы не могут быть обслужены, таким образом, требуя выбора альтернативного местоположения и вызывая "более плохую" (например, менее оптимальную, как определено в соответствии с примерными методиками, рассмотренными здесь) среднюю задержку запроса.
[0058] С учетом вышеупомянутой проблемы примерный способ на основе производительности может оперировать, как рассмотрено ниже.
[0059] Каждому критерию производительности назначается количественная оценка. Комбинированная оценка вычисляется путем получения взвешенной суммы всех оценок для отдельных метрик производительности. Облако местоположение, которое дает наивысшую оценку, выбирается. Специалист в области техники обработки данных поймет, что максимизация взвешенных оценок может выполняться с использованием любой доступной методики (методик) оптимизации на основе множества критериев. Например, веса для каждого фактора зависят от приложения и предпочтений клиента. Значения по умолчанию могут быть использованы, когда такая информация от приложения и клиента недоступна.
[0060] Кроме того, примерные способы на основе производительности и затрат могут оперировать, как рассмотрено ниже.
[0061] Например, эти способы могут дополнительно улучшить ранее представленный способ, чтобы дополнительно учитывать затраты вычислительных ресурсов и пропускной способности. Например, не все частные облака могут быть доступны по одной и той же цене. В качестве примера, некоторые облака могут иметь более высокие затраты пропускной способности ввиду их местоположения и могут, таким образом, стоить больше. Например, некоторые другие могут иметь более высокие затраты энергии ввиду стоимости энергии в это время и в этом местоположении, что ведет снова к более высоким затратам. Например, некоторые облака могут иметь локальные рабочие нагрузки, которые предлагают владельцу частного облака конкретную ценность, и частное облако может затем делаться доступным предлагаемой системе, только если предлагаемая стоимость выше локальной ценности. Таким образом, каждое частное облако может иметь естественную стоимость для предложения своих ресурсов для обслуживания текущей вычислительной потребности. Примерная методика рассматривается более подробно ниже.
[0062] Например, фактор затрат, чтобы i-е частное облако предлагало свои вычислительные ресурсы, может быть обозначен как ЧастнЗатраты(i), где различные частные облака (например, обозначенные как 1-е частное облако, 2-е частное облако,... i-е частное облако,...) могут иметь различные затраты, при которых они согласны участвовать в интеллектуальном облаке. Например, задержка сети от клиента общественного облака к i-му частному облаку может быть обозначена как Задерж(i). Кроме того, примерное время обслуживания i-го частного облака (например, на основе композиции его ресурсов вычисления, памяти, хранилища и других) может быть обозначено как Обсл(i). С учетом текущего состояния данных, сохраненных в i-м частном облаке, примерные затраты запуска (например, время до первого ответа) могут быть обозначены как Зап(i). Затем примерная взвешенная стоимость может быть выражена следующим образом:
C(i)=w1*ЧастнЗатраты(i)+w2*Задерж(i)+w3*Обсл(i)+W4*Зап(i)
[0063] Во многих ситуациях фактическая задержка сети, время обслуживания и т. д. не могут быть известны детерминированным образом, и примерное ожидаемое значение, статистически вычисленное в качестве первого момента распределения вероятностей конкретного параметра, может быть использовано:
E[C(i)]=w1*E[ЧастнЗатраты(i)]+w2*E[Задерж(i)]+w3*E[Обсл(i)]+W4*E[Зап(i)]
[0064] Примерная задача оптимизации может затем быть сформулирована следующим образом:
Выбрать (i), которое минимизирует E[C(i)], подверженное ограничениям производительности и затрат, определенным клиентом (как показано ниже):
Ограничение 1: ЧастнЗатраты(i)<=min(ОбщЗатраты, КлиентПредел), где ОбщЗатраты обозначает текущие затраты получения ресурсов от общественного облака и может быть установлено на значение бесконечности (или другое подходящее значение), если никакие ресурсы не доступны в общественном облаке, и КлиентПредел обозначает максимальную стоимость, которую клиент согласен заплатить.
Ограничение 2: Задерж(i)+Обсл(i)<=КлиентПроизвЗадержкаПредел, где КлиентПроизвЗадержкаПредел обозначает примерный предел производительности в худшем случае, определенный клиентом (например, полученный от или принятый от клиента), и
Ограничение 3: Зап(i)<=КлиентЗапускПредел, где КлиентЗапускПредел обозначает примерное значение максимальной задержки, приемлемое в момент запуска.
[0065] Некоторые или все из примерных ограничений, показанных выше, могут отсутствовать в случае конкретных клиентов, которые могут быть согласны принять любую производительность при минимизации затрат или которые могут желать своего требуемого уровня производительности при любых доступных затратах.
[0066] Помимо затрат, владельцы частных облаков могут также приспосабливать свои цены под потребность. Например, частное облако, которое предлагает более высокую производительность, чем любое другое конкурирующее облако, может предлагаться по цене с надбавкой (например, по существу более высокой, чем другие конкурирующие облака). В качестве другого примера, цена может зависеть от клиентского местоположения и требований. Например, владелец облака, которое очень близко соответствует нуждам клиента, может предлагать более высокую цену, в то время как владелец облака, которое не настолько подходящее (например, имеет более высокую задержку ввиду далекого местоположения), может предлагать более низкую цену (например, ниже, чем другие конкурирующие облака).
[0067] Примерные способы на основе производительности и затрат определяют оптимальное выделение вычислительной потребности для приложения доступным облакам. Сопоставление выполняется на основе цен облака и бюджета, который приложение имеет (например, имеет в доступе) для оплаты ресурсов облака. Примерные методики, такие как многокритериальная оптимизация, автоматизированные аукционы и выделения на основе правил, могут быть использованы для выполнения сопоставления.
[0068] Кроме того, примерные способы с множеством приложений могут оперировать, как рассмотрено ниже.
[0069] В некоторых сценариях обслуживание каждого приложения независимо может генерировать неоптимальные решения или оставлять некоторые приложения недостаточно обслуженными. Как рассмотрено здесь, примерный способ с множеством приложений оперирует подобно способам на основе производительности и затрат, рассмотренным выше, но он учитывает множество приложений одновременно (например, учитываемых вместе). Таким образом, используемая методика сопоставления, такая как средство решения оптимизации, аукцион или система на основе правил, включает в себя требования от множества клиентов приложений дополнительно к множеству доступных облаков.
[0070] Кроме того, примерные способы динамического выделения могут оперировать, как рассмотрено ниже.
[0071] В некоторых сценариях никакое выделение частных облаков не может реалистично обслужить вычислительную нагрузку в течение желаемой длины сервиса, поскольку никакое одно частное облако не может быть доступно в течение всей продолжительности. Например, в таких сценариях выделение может быть динамически модифицировано, чтобы использовать новые доступные облачные ресурсы, которые становятся доступны с течением времени, и высвобождать ранее выделенные (например, "более старые" выделенные) ресурсы, которые более не доступны.
[0072] В этой примерной методике вычислительная потребность квантуется на короткие продолжительности времени (например, 1 минута или 30 минут в зависимости от продолжительности кванта, на который оператор частного облако объявляет его доступность). Ограничения на производительность и на затраты от клиентов и приложений перечисляются для каждого кванта, и схема динамической оптимизации, такая как динамическая оптимизация, алгоритм Витерби или другие способы многоквантовой оптимизации, используется для оптимизации выделения с течением времени.
[0073] Например, алгоритм Витерби является алгоритмом динамического программирования для поиска наиболее вероятной последовательности скрытых состояний (пути Витерби), который дает в результате последовательность наблюдаемых событий (например, в контексте марковских источников информации и скрытых марковских моделей).
[0074] В качестве дополнения к работе с заданными ограничениями на затраты или производительность, общественное облако может также желать оптимизировать компенсацию, предлагаемую частным облакам, которые желают пожертвовать свои ресурсы общественному облаку. На основе ограничений на производительность и затраты клиента примерная методика оптимизации может затем быть использована для вычисления лучших (например, оптимальных, наиболее желаемых) предложений компенсации частным облакам с течением времени. Цель примерной оптимизации может, таким образом, изменяться с минимизации затрат клиента на максимизацию компенсации частного облака. С использованием переменных, определенных выше, задача может быть сформулирована следующим образом:
Выбрать (i), чтобы максимизировать ЧастнЗатраты(i), подверженные ограничениям на производительность и затраты, определенным клиентами.
[0075] Вышеописанная оптимизация может выполняться в течение периода времени T квантов времени, чтобы максимизировать суммарную компенсацию или справедливость между частными облаками, что может быть обозначено следующим образом:
Выбрать (i) в каждый слот времени (t), чтобы максимизировать минимум ЧастнЗатраты(i) по t=1,..., T.
[0076] Специалист в области техники обработки данных поймет, что множество других типов методик может быть использовано для анализа и оптимизации исполнения приложений без выхода за пределы сущности рассматриваемого здесь.
[0077] Специалист в области техники обработки данных поймет, что может быть множество способов выполнения сопоставления доступных частных вычислительных ресурсов с вычислительной потребностью, ассоциированной с внешними запросами от приложений, как рассмотрено здесь, без выхода за пределы сущности рассматриваемого здесь.
II. Примерная операционная среда
[0078] Признаки, рассмотренные здесь, обеспечены в качестве примерных вариантов осуществления, которые могут осуществляться множеством различных способов, которые могут быть поняты специалистом в области техники обработки данных, без выхода за пределы сущности рассматриваемого здесь. Такие признаки должны толковаться только в качестве признаков примерного варианта осуществления и не предназначены для толкования как ограничение только этими подробными описаниями.
[0079] Как дополнительно рассматривается здесь, фиг.3 изображает структурную схему обобщенной системы 300 для соединения частных вычислительных ресурсов с внешними сервисами. Обобщенная система 300, как показано, предназначена только для иллюстрации различных примерных функциональных возможностей и/или логики, которые могут быть включены в примерные методики, как рассмотрено здесь, и не подразумевается как ограничивающая в плане осуществлений в различных аппаратных и/или программных конфигурациях.
[0080] Например, система 300 может включать в себя машиночитаемый носитель данных, хранящий инструкции для исполнения по меньшей мере одним процессором. Как изображено на фиг.3, система 300 может включать в себя устройство 302, которое включает в себя по меньшей мере один процессор 304. Устройство 302 может включать в себя средство 306 администрирования оппортунистических ресурсов , которое может включать в себя модуль 308 получения описания ресурсов, который может получать описания 310 одного или нескольких требований вычислительных ресурсов для исполнения одного или нескольких приложений 312, ассоциированных с множеством динамически изменяющихся рабочих нагрузок. Модуль 308 получения описания ресурсов может быть включен в общедоступный сервис 314.
[0081] Например, модуль 308 получения описания ресурсов может получать описание 310 одного или нескольких требований вычислительных ресурсов для исполнения приложения 312, ассоциированного с общедоступным сервисом 314.
[0082] Согласно примерному варианту осуществления, средство 306 администрирования оппортунистических ресурсов , или одна или несколько его частей, может включать в себя исполняемые инструкции, которые могут храниться на материальном машиночитаемом носителе данных, как рассмотрено ниже. Согласно примерному варианту осуществления, машиночитаемый носитель данных может включать в себя любое количество устройств хранения, и любое количество типов носителей информации, включая распределенные устройства.
[0083] В этом контексте "процессор" может включать в себя один процессор или множество процессоров, сконфигурированных для обработки инструкций, ассоциированных с обрабатывающей системой. Процессор может, таким образом, включать в себя один или несколько процессоров, обрабатывающих инструкции параллельно и/или распределенным образом. Хотя процессор 304 устройства изображен как внешний по отношению к средству 306 администрирования оппортунистических ресурсов на фиг.3, специалист в области техники обработки данных поймет, что процессор устройства 304 может осуществляться как один компонент и/или как распределенные блоки, которые могут быть расположены внутренним или внешним образом по отношению к средству 306 администрирования оппортунистических ресурсов и/или любому из его элементов.
[0084] Например, система 300 может включать в себя один или несколько процессоров 304. Например, система 300 может включать в себя по меньшей мере один материальный машиночитаемый носитель данных, хранящий инструкции, исполняемые одним или несколькими процессорами 304, причем исполняемые инструкции сконфигурированы, чтобы побуждать по меньшей мере одно вычислительное устройство (например, устройство обработки данных) выполнять операции, ассоциированные с различными примерными компонентами, включенными в систему 300, как рассмотрено здесь. Например, один или несколько процессоров 304 могут быть включены в по меньшей мере одно вычислительное устройство. Специалист в области техники обработки данных поймет, что существует множество конфигураций процессоров и вычислительных устройств, которые могут быть сконфигурированы в соответствии с рассмотренным здесь, без выхода за пределы сущности такого рассмотрения.
[0085] В этом контексте "компонент" может ссылаться на исполняемые инструкции или аппаратные средства, которые могут быть сконфигурированы для выполнения конкретных операций с помощью аппаратных средств. Такие инструкции могут включаться в компонентные группы инструкций или могут быть распределены по более чем одной группе. Например, некоторые инструкции, ассоциированные с операциями первого компонента, могут быть включены в группу инструкций, ассоциированную с операциями второго компонента (или большего количества компонентов). Например, "компонент" здесь может ссылаться на тип вычислительного объекта, сконфигурированного с функциональными возможностями, которые могут осуществляться исполняемыми инструкциями, которые могут быть расположены в одном объекте или могут быть рассредоточены или распределены по множеству объектов и могут взаимно накладываться с инструкциями и/или аппаратными средствами, ассоциированными с другими компонентами. В этом контексте "исполняемые" инструкции ссылаются на инструкции, которые конкретным образом сконфигурированы для исполнения одним или несколькими аппаратными устройствами, и не ссылаются на программные средства как таковые.
[0086] Согласно примерному варианту осуществления, средство 306 администрирования оппортунистических ресурсов может осуществляться в ассоциации с одним или несколькими пользовательскими устройствами. Например, средство 306 администрирования оппортунистических ресурсов может осуществлять связь с одним или несколькими серверами, как рассмотрено дополнительно ниже.
[0087] Например, хранилище 316 объектов может включать в себя одну или несколько баз данных, и к нему может осуществляться доступ посредством компонента 318 интерфейса баз данных. Специалист в области техники обработки данных поймет, что существует множество методик для хранения информации хранилища, рассмотренной здесь, таких как различные типы конфигураций на основе баз данных (например, реляционные базы данных, иерархические базы данных, распределенные базы данных) и конфигураций без баз данных.
[0088] Согласно примерному варианту осуществления, средство 306 администрирования оппортунистических ресурсов может включать в себя память 320, которая может, например, сохранять промежуточные данные для средства 306 администрирования оппортунистических ресурсов . В этом контексте "память" может включать в себя одно устройство памяти или множество устройств памяти, сконфигурированных для сохранения данных и/или инструкций. Кроме того, память 320 может быть рассредоточена по множеству распределенных устройств хранения.
[0089] Согласно примерному варианту осуществления, компонент 322 пользовательского интерфейса может руководить связью между пользователем 324 и средством 306 администрирования оппортунистических ресурсов . Пользователь 324 может быть ассоциирован с устройством 326 приема, которое может быть ассоциировано с дисплеем 328 и другим устройствами ввода/вывода. Например, дисплей 328 может быть сконфигурирован для связи с устройством 326 приема посредством внутренней связи по шине устройства или посредством по меньшей мере одного сетевого соединения.
[0090] Согласно примерным вариантам осуществления, дисплей 328 может осуществляться как плоскоэкранный дисплей, печатная форма дисплея, двухмерный дисплей, трехмерный дисплей, статический дисплей, движущийся дисплей, сенсорный дисплей, такой как тактильный вывод, звуковой вывод и любая другая форма вывода для связи с пользователем (например, пользователем 324).
[0091] Согласно примерному варианту осуществления, средство 306 администрирования оппортунистических ресурсов может включать в себя сетевой компонент 330 связи, который может руководить сетевой связью между средством 306 администрирования оппортунистических ресурсов и другими объектами, которые могут осуществлять связь со средством 306 администрирования оппортунистических ресурсов посредством по меньшей мере одной сети 332. Например, сеть 332 может включать в себя по меньшей мере одно из Интернета, по меньшей мере одной беспроводной сети или по меньшей мере одной проводной сети. Например, сеть 332 может включать в себя сотовую сеть, радиосеть или любой тип сети, которая может поддерживать передачу данных для средства 306 администрирования оппортунистических ресурсов . Например, сетевой компонент 330 связи может руководить сетевой связью между средством 306 администрирования оппортунистических ресурсов и устройством 326 приема. Например, сетевой компонент 330 связи может руководить сетевой связью между компонентом 322 пользовательского интерфейса и устройством 326 приема.
[0092] Средство выделения ресурсов 340 может оппортунистически получить доступ к вычислительным ресурсам 342a, 342b от одного или нескольких частных облаков 344a, 344b, которые являются внешними для и отдельными от общедоступного сервиса 314, путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами одного или нескольких частных облаков 344a, 344b. В то время как средство 340 выделения ресурсов показано на фиг.3 как внутреннее по отношению к средству 306 администрирования оппортунистических ресурсов , следует понимать, что, как рассмотрено выше, средство 340 выделения ресурсов может осуществляться во множестве форм, таких как часть средства 340 выделения ресурсов, или в качестве распределенного приложения, которое распределяется по устройствам общедоступного сервиса 314 и одного или нескольких из частных облаков 344a, 344b. Кроме того, в то время как только два частных облака 344a, 344b показаны на фиг.3 (для простоты иллюстрации и рассмотрения), следует понимать, что может быть одно или гораздо больше частных облаков, вычислительные ресурсы которых могут быть использованы системой 300.
[0093] В этом контексте "оппортунистически" ссылается на извлечение преимущества из благоприятных возможностей по мере их возникновения. Например, средство 340 выделения ресурсов получает доступ к вычислительным ресурсам 342a, 342b, когда они становятся доступны ввиду неиспользования (например, вычислительные ресурсы 342a, 342b в текущий момент бездействуют, с точки зрения частных облаков 344a, 344b, хотя вычислительные ресурсы 342a, 342b могут использоваться частными облаками 344a, 344b в моменты помимо текущего времени "доступности" средству 340 выделения ресурсов). В соответствии с примерными методиками, рассмотренными здесь, частные облака 344a, 344b отчитываются о добровольной доступности их соответственных вычислительных ресурсов 342a, 342b системе 300 с течением времени (например, это может включать в себя обеспечение отчетов о том, какие из их соответственных вычислительных ресурсов 342a, 342b будут доступны в какие моменты времени, если они не всегда доступны для использования системой 300).
[0094] Общественный хост-модуль 346 может инициировать управление активностью хостинга исполнения одного или нескольких приложений 312 с использованием сопоставленных временно доступных вычислительных ресурсов одного или нескольких частных облаков 344a, 344b.
[0095] Например, модуль 348 обнаружения ресурсов может определять вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках 344a, 344b, на основе описаний 350 доступности ресурсов, принятых от одного или нескольких частных облаков 344a, 344b.
[0096] Например, средство 340 выделения ресурсов может оппортунистически получить доступ к вычислительным ресурсам 342a, 342b путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков 344a, 344b, которые удовлетворяют по меньшей мере части из одного или нескольких требований 310 вычислительных ресурсов.
[0097] Например, модуль 348 обнаружения ресурсов может определять вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, на основе описаний 350 доступности ресурсов, принятых от одного или нескольких частных облаков 344a, 344b.
[0098] Например, модуль 352 анализа производительности может выполнять анализ критериев 354 производительности вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках 344a, 344b.
[0099] Например, средство 340 выделения ресурсов может оппортунистически получить доступ к вычислительным ресурсам 342a, 342b путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков 344a, 344b, которые удовлетворяют по меньшей мере части из одного или нескольких требований 310 вычислительных ресурсов и которые обеспечивают оптимизированную производительность исполнения одного или нескольких приложений 312, на основе анализа критериев 354 производительности.
[0100] Например, критерии 354 производительности вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках 344a, 344b, могут включать в себя одон или несколько из времени до исходного ответа одного или нескольких частных облаков 344a, 344b, которые включают в себя выбранные временно доступные вычислительные ресурсы, среднего времени ответа одного или нескольких частных облаков 344a, 344b, которые включают в себя выбранные временно доступные вычислительные ресурсы, по множеству запросов или надежности одного или нескольких частных облаков 344a, 344b, которые включают в себя выбранные временно доступные вычислительные ресурсы. Например, среднее время ответа и/или значения надежности могут быть определены в соответствии с производительностью частных облаков 344a, 344b с течением времени (например, хронологические данные, ассоциированные с частными облаками 344a, 344b) или могут быть определены на основе ресурсов, в текущий момент доступных в частных облаках 344a, 344b, или как рассмотрено дополнительно здесь. Специалист в области техники обработки данных поймет, что может быть множество методик для определения этих значений без выхода за пределы сущности рассматриваемого здесь.
[0101] Например, модуль 348 обнаружения ресурсов может определять вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках 344a, 344b, на основе описаний 350 доступности ресурсов, принятых от одного или нескольких частных облаков 344a, 344b.
[0102] Например, модуль анализа затрат 356 может выполнять анализ критериев 358 затрат вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках 344a, 344b, и затрат пропускной способности для осуществления доступа к вычислительным ресурсам свободной мощности.
[0103] Например, средство 340 выделения ресурсов может оппортунистически получать доступ к вычислительным ресурсам 342a, 342b путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков 344a, 344b, которые удовлетворяют по меньшей мере части из одного или нескольких требований 310 вычислительных ресурсов и которые обеспечивают оптимизированные затраты исполнения одного или нескольких приложений 312, на основе анализа критериев 358 затрат.
[0104] Например, средство 340 выделения ресурсов может оппортунистически получать доступ к вычислительным ресурсам 342a, 342b от одного или нескольких частных облаков 344a, 344b, которые являются внешними для и отдельными от общедоступного сервиса 314, путем сопоставления одного или нескольких требований 310 вычислительных ресурсов с временно доступными вычислительными ресурсами одного или нескольких частных облаков 344a, 344b на основе одной или нескольких из многокритериальной методики оптимизации, автоматизированного аукциона или методики выделения на основе правил.
[0105] Например, средство 340 выделения ресурсов может оппортунистически получить доступ к вычислительным ресурсам 342a, 342b из множества частных облаков 344a, 344b, которые являются внешними для и отдельными от общедоступного сервиса 314, путем сопоставления одного или нескольких требований 310 вычислительных ресурсов с временно доступными вычислительными ресурсами множества частных облаков 344a, 344b на основе одной или нескольких из методики целочисленного линейного программирования, эвристики ветвей и границ или методики жадной оптимизации.
[0106] Например, линейное программирование ссылается на решение математической задачи, касающейся максимального и минимального значений алгебраического выражения первой степени (линейного) с переменными, подверженными конкретным установленным условиям (ограничениям). Задача целочисленного программирования, в которой все переменные должны быть целыми, называется задачей полностью целочисленного программирования. Например, метод ветвей и границ ссылается на общий алгоритм для поиска оптимальных решений различных задач оптимизации, в особенности в дискретной и комбинаторной оптимизации. Алгоритм ветвей и границ может включать в себя систематическую нумерацию всех вариантов решений, где большое подмножество бесполезных вариантов массово отвергается, посредством верхней и нижней оцененных границ количества, которые оптимизируются.
[0107] Например, жадный алгоритм может следовать за эвристикой решения задачи осуществления локально оптимального выбора на каждом этапе с целью определения глобального оптимального значения. Например, жадная стратегия не может в общем случае производить оптимальное решение, но тем не менее жадная эвристика может давать локально оптимальные решения, которые дают приближение глобально оптимального решения за приемлемое время.
[0108] Например, аукцион с посредниками может иметь покупателя (например, общественное облако или клиента), продавца (например, частное облако с ресурсами, которые можно предложить) и посредника для посредничества в транзакциях между покупателями и продавцами (например, посредством предложений, торгов и т. д.).
[0109] Например, модуль 348 обнаружения ресурсов может определять вычислительные ресурсы свободной мощности, которые динамически доступны в одном или нескольких частных облаках 344a, 344b, на основе описаний 350 доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков 344a, 344b с течением времени. Например, средство 340 выделения ресурсов может динамически получать доступ к вычислительным ресурсам 342a, 342b путем динамического выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков 344a, 344b, которые удовлетворяют по меньшей мере части из одного или нескольких требований 310 вычислительных ресурсов, по мере того как вычислительные ресурсы становятся доступны с течением времени, и динамически высвобождать предыдущие вычислительные ресурсы, для которых доступ был ранее получен, если предыдущие вычислительные ресурсы становятся недоступны.
[0110] Например, описания 350 доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков 344a, 344b с течением времени, могут включать в себя доступность ресурсов в течение квантов времени предварительно определенных временных интервалов. Например, средство 340 выделения ресурсов может динамически получать доступ к вычислительным ресурсам 342a, 342b путем динамического выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков 344a, 344b, которые удовлетворяют по меньшей мере части из одного или нескольких требований 310 вычислительных ресурсов, на основе описаний 350 доступности ресурсов, по мере того как вычислительные ресурсы становятся доступны с течением времени, и динамически высвобождать предыдущие вычислительные ресурсы, для которых доступ был ранее получен, если предыдущие вычислительные ресурсы становятся недоступны.
[0111] Например, модуль 348 обнаружения ресурсов может определять для каждого из квантов времени список вычислительных ресурсов свободной мощности, которые динамически доступны в одном или нескольких частных облаках 344a, 344b, на основе описаний 350 доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени. Например, модуль 308 получения описания ресурсов может определять для каждого из квантов времени список ограничений на затраты и ограничений на производительность, ассоциированных с соответственными описаниями одного или нескольких требований вычислительных ресурсов, для исполнения одного или нескольких приложений 312. Например, средство 340 выделения ресурсов может динамически оптимизировать доступ выделения к вычислительным ресурсам 342a, 342b с течением времени.
[0112] Например, средство 340 выделения ресурсов может динамически оптимизировать доступ выделения к вычислительным ресурсам 342a, 342b с течением времени на основе одной или нескольких из методики динамической оптимизации, методики алгоритма Витерби или методики многоквантовой оптимизации.
[0113] Например, средство 340 выделения ресурсов может оппортунистически получать доступ к вычислительным ресурсам 342a, 342b от вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство 344a, 344b, которое является внешним для и отдельным от общедоступного сервиса 314, путем интеллектуального сопоставления одного или нескольких требований 310 вычислительных ресурсов с доступными вычислительными ресурсами вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство с частными вычислительными ресурсами, которые временно доступны от источника частного вычислительного устройства, причем интеллектуальное сопоставление выполняется с использованием анализа оптимизации производительности. Например, модуль 352 анализа производительности может выполнять анализ оптимизации производительности.
[0114] Например, анализ оптимизации производительности может включать в себя анализ предсказания производительности исполнения приложения 312, ассоциированного с общедоступным сервисом 314, на основе полученного описания 310 одного или нескольких требований вычислительных ресурсов и описания 350 доступных вычислительных ресурсов вычислительного объекта.
[0115] Например, анализ оптимизации производительности может включать в себя анализ одного или нескольких из скорости вычислений, задержки сети, пропускной способности сети или производительности хранилища.
[0116] Например, вычислительный объект может включать в себя по меньшей мере одно частное вычислительное устройство в по меньшей мере одном частном облаке.
[0117] Например, вычислительный объект может включать в себя множество вычислительных устройств в по меньшей мере одном частном облаке и по меньшей мере одном общественном облаке.
[0118] В качестве другого примера, модуль 308 получения описания ресурсов может получать описание 310 одного или нескольких требований вычислительных ресурсов для исполнения приложения 312.
[0119] Например, описание 310 одного или нескольких требований вычислительных ресурсов может быть обеспечено средству 340 выделения ресурсов общедоступного сервиса 314, причем средство 340 выделения ресурсов сконфигурировано, чтобы оппортунистически получать доступ к вычислительным ресурсам 342a, 342b от вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство 344a, 344b, которое является внешним для и отдельным от общедоступного сервиса 314, путем интеллектуального сопоставления одного или нескольких требований 310 вычислительных ресурсов с доступными вычислительными ресурсами вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство.
[0120] Например, общественный хост-модуль 346 может инициировать управление активностью хостинга исполнения приложения 312 для одного или нескольких пользователей с использованием сопоставленных доступных вычислительных ресурсов вычислительного объекта.
[0121] Например, хостинг средства 340 выделения ресурсов может осуществляться в общественном облаке, ассоциированном с общедоступным сервисом 314.
[0122] Например, хостинг средства 340 выделения ресурсов может осуществляться в сервере, который является отдельным от общественного облака, которое осуществляет хостинг общедоступного сервиса 314.
[0123] Например, хостинг средства 340 выделения ресурсов может осуществляться в качестве приложения выделения распределенных ресурсов, хостинг которого осуществляется в общественном облаке, ассоциированном с общедоступным сервисом 314, и на множестве частных облаков.
[0124] Специалист в области техники обработки данных поймет, что множество различных методик может быть использовано для интеллектуального выделения вычислительных ресурсов, которые доступны в частных облаках (или частных устройствах), для исполнения приложений от источников, внешних по отношению к частным облакам, без выхода за пределы сущности рассматриваемого здесь.
III. Описание блок-схем
[0125] Признаки, рассмотренные здесь, обеспечены в качестве примерных вариантов осуществления, которые могут осуществляться множеством различных способов, которые могут быть поняты специалистом в области техники обработки данных, без выхода за пределы сущности рассматриваемого здесь. Такие признаки должны толковаться только в качестве признаков примерного варианта осуществления и не предназначены для толкования как ограничение только этими подробными описаниями.
[0126] Фиг.4A-4E изображает блок-схему, иллюстрирующую примерные операции системы с фиг.3 согласно примерным вариантам осуществления. В примере с фиг.4A описания одного или нескольких требований вычислительных ресурсов для исполнения одного или нескольких приложений, ассоциированных с множеством динамически изменяющихся рабочих нагрузок, получаются модулем получения описания ресурсов, включенным в общедоступный сервис (402).
[0127] Доступ к вычислительным ресурсам оппортунистически получается от одного или нескольких частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами одного или нескольких частных облаков (404).
[0128] Управление активностью хостинга исполнения одного или нескольких приложений инициируется с использованием сопоставленных временно доступных вычислительных ресурсов одного или нескольких частных облаков (406).
[0129] Например, вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, могут быть определены на основе описаний доступности ресурсов, принятых от одного или нескольких частных облаков (408), в примере с фиг.4B.
[0130] Например, доступ к вычислительным ресурсам может быть оппортунистически получен путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов (410).
[0131] Например, вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, могут быть определены на основе описаний доступности ресурсов, принятых от одного или нескольких частных облаков (412).
[0132] Например, анализ критериев производительности вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках, может выполняться (414).
[0133] Например, доступ к вычислительным ресурсам может быть оппортунистически получен путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов и которые обеспечивают оптимизированную производительность исполнения одного или нескольких приложений, на основе анализа критериев производительности (416).
[0134] Например, критерии производительности вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках, могут включать в себя одно или несколько из времени до исходного ответа одного или нескольких частных облаков, которые включают в себя выбранные временно доступные вычислительные ресурсы, среднего времени ответа одного или нескольких частных облаков, которые включают в себя выбранные временно доступные вычислительные ресурсы, по множеству запросов или надежности одного или нескольких частных облаков, которые включают в себя выбранные временно доступные вычислительные ресурсы (418).
[0135] Например, вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, могут быть определены на основе описаний доступности ресурсов, принятых от одного или нескольких частных облаков (420), в примере с фиг.4C.
[0136] Например, анализ критериев затрат вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках, и затрат пропускной способности для осуществления доступа к вычислительным ресурсам свободной мощности может выполняться (422).
[0137] Например, доступ к вычислительным ресурсам может быть оппортунистически получен путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов и которые обеспечивают оптимизированные затраты исполнения одного или нескольких приложений, на основе анализа критериев затрат (424).
[0138] Например, доступ к вычислительным ресурсам от одного или нескольких частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, могут быть оппортунистически получены путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами одного или нескольких частных облаков на основе одного или нескольких из многокритериальной методики оптимизации, автоматизированного аукциона или методики выделения на основе правил (426).
[0139] Например, доступ к вычислительным ресурсам из множества частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, может быть оппортунистически получен путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами множества частных облаков на основе одной или нескольких из методики целочисленного линейного программирования, эвристики ветвей и границ или методики жадной оптимизации (428).
[0140] Например, вычислительные ресурсы свободной мощности, которые динамически доступны в одном или нескольких частных облаках, могут быть определены на основе описаний доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени (430), в примере с фиг.4D.
[0141] Например, доступ к вычислительным ресурсам может динамически получаться путем динамического выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов, по мере того как вычислительные ресурсы становятся доступны с течением времени, и динамического высвобождения предыдущих вычислительных ресурсов, для которых доступ был ранее получен, если предыдущие вычислительные ресурсы становятся недоступны (432).
[0142] Например, описания доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени, могут включать в себя доступность ресурсов в течение квантов времени предварительно определенных временных интервалов (434).
[0143] Например, доступ к вычислительным ресурсам может динамически получаться путем динамического выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов, на основе описаний доступности ресурсов, по мере того как вычислительные ресурсы становятся доступны с течением времени, и динамического высвобождения предыдущих вычислительных ресурсов, для которых доступ был ранее получен, если предыдущие вычислительные ресурсы становятся недоступны (436).
[0144] Например, для каждого из квантов времени список вычислительных ресурсов свободной мощности, которые динамически доступны в одном или нескольких частных облаках, может быть определен на основе описаний доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени (438), в примере с фиг.4E.
[0145] Например, для каждого из квантов времени список ограничений на затраты и ограничений на производительность, ассоциированных с соответственными описаниями одного или нескольких требований вычислительных ресурсов для исполнения одного или нескольких приложений, может быть определен (440).
[0146] Например, доступ выделения к вычислительным ресурсам может динамически быть оптимизирован с течением времени (442). Например, доступ к вычислительным ресурсам может динамически быть оптимизирован с течением времени на основе одной или нескольких из методики динамической оптимизации, методики алгоритма Витерби или методики многоквантовой оптимизации (444). Например, средство 114 выделения ресурсов может динамически оптимизировать доступ выделения к вычислительным ресурсам с течением времени на основе одной или нескольких из методики динамической оптимизации, методики алгоритма Витерби или методики многоквантовой оптимизации.
[0147] Фиг.5A-5B изображают блок-схему, иллюстрирующую примерные операции системы с фиг.3 согласно примерным вариантам осуществления. В примере с фиг.5A описание одного или нескольких требований вычислительных ресурсов для исполнения приложения, ассоциированного с общедоступным сервисом, получается (502). Доступ к вычислительным ресурсам оппортунистически получается от вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство, которое является внешним для и отдельным от общедоступного сервиса, путем интеллектуального сопоставления одного или нескольких требований вычислительных ресурсов с доступными вычислительными ресурсами вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство с частными вычислительными ресурсами, которые временно доступны от источника частного вычислительного устройства (504). Интеллектуальное сопоставление выполняется с использованием анализа оптимизации производительности.
[0148] Например, вычислительный объект может включать в себя по меньшей мере одно частное вычислительное устройство в по меньшей мере одном частном облаке (506).
[0149] Например, вычислительный объект может включать в себя множество вычислительных устройств в по меньшей мере одном частном облаке и по меньшей мере одном общественном облаке (508).
[0150] Например, анализ оптимизации производительности может включать в себя анализ предсказания производительности исполнения приложения, ассоциированного с общедоступным сервисом, на основе полученного описания одного или нескольких требований вычислительных ресурсов и описания доступных вычислительных ресурсов вычислительного объекта (510), как указано на фиг.5B.
[0151] Например, анализ оптимизации производительности включает в себя анализ одного или нескольких из скорости вычислений, задержки сети, пропускной способности сети или производительности хранилища (512).
[0152] Фиг.6 изображает блок-схему, иллюстрирующую примерные операции системы с фиг.3 согласно примерным вариантам осуществления. В примере с фиг.6 описание одного или нескольких требований вычислительных ресурсов для исполнения приложения получается (602).
[0153] Описание одного или нескольких требований вычислительных ресурсов обеспечивается средству выделения ресурсов общедоступного сервиса, причем средство выделения ресурсов сконфигурировано, чтобы оппортунистически получать доступ к вычислительным ресурсам от вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство, которое является внешним для и отдельным от общедоступного сервиса, путем интеллектуального сопоставления одного или нескольких требований вычислительных ресурсов с доступными вычислительными ресурсами вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство (604).
[0154] Управление активностью хостинга исполнения приложения инициируется для одного или нескольких пользователей с использованием сопоставленных доступных вычислительных ресурсов вычислительного объекта (606).
[0155] Например, хостинг средства выделения ресурсов может осуществляться в общественном облаке, ассоциированном с общедоступным сервисом (608).
[0156] Например, хостинг средства выделения ресурсов может осуществляться на сервере, который является отдельным от общественного облака, которое осуществляет хостинг общедоступного сервиса (610).
[0157] Например, хостинг средства выделения ресурсов может осуществляться в качестве приложения выделения распределенных ресурсов, хостинг которого осуществляется в общественном облаке, ассоциированном с общедоступным сервисом, и во множестве частных облаков (612).
IV. Аспекты конкретных вариантов осуществления
[0158] Признаки, рассмотренные здесь, обеспечены в качестве примерных вариантов осуществления, которые могут осуществляться множеством различных способов, которые могут быть поняты специалистом в области техники обработки данных, без выхода за пределы сущности рассматриваемого здесь. Такие признаки должны толковаться только в качестве признаков примерного варианта осуществления и не предназначены для толкования как ограничение только этими подробными описаниями.
[0159] Устройство обработки данных включает в себя машиночитаемый носитель данных, хранящий исполняемые инструкции, которые побуждают устройство обработки данных получать описание одного или нескольких требований вычислительных ресурсов для исполнения приложения, ассоциированного с общедоступным сервисом, и оппортунистически получать доступ к вычислительным ресурсам от вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство, которое является внешним для и отдельным от общедоступного сервиса, путем интеллектуального сопоставления одного или нескольких требований вычислительных ресурсов с доступными вычислительными ресурсами вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство с частными вычислительными ресурсами, которые временно доступны от источника частного вычислительного устройства, причем интеллектуальное сопоставление выполняется с использованием анализа оптимизации производительности.
[0160] Анализ оптимизации производительности включает в себя анализ предсказания производительности исполнения приложения, ассоциированного с общедоступным сервисом, на основе полученного описания одного или нескольких требований вычислительных ресурсов и описания доступных вычислительных ресурсов вычислительного объекта.
[0161] Анализ оптимизации производительности включает в себя анализ одного или нескольких из скорости вычислений, задержки сети, пропускной способности сети или производительности хранилища.
[0162] Вычислительный объект включает в себя по меньшей мере одно частное вычислительное устройство в по меньшей мере одном частном облаке.
[0163] Вычислительный объект включает в себя множество вычислительных устройств в по меньшей мере одном частном облаке и по меньшей мере одном общественном облаке.
[0164] Система содержит по меньшей мере один процессор и по меньшей мере один машиночитаемый носитель данных, который хранит исполняемый код, который исполняется по меньшей мере одним процессором, причем исполняемый код включает в себя средство администрирования оппортунистических ресурсов . Средство администрирования оппортунистических ресурсов включает в себя модуль получения описания ресурсов, который получает описания одного или нескольких требований вычислительных ресурсов для исполнения одного или нескольких приложений, ассоциированных с множеством динамически изменяющихся рабочих нагрузок, причем модуль получения описания ресурсов включен в общедоступный сервис. Средство администрирования оппортунистических ресурсов включает в себя средство выделения ресурсов, которое оппортунистически получает, посредством по меньшей мере одного процессора устройства, доступ к вычислительным ресурсам от одного или нескольких частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами одного или нескольких частных облаков. Средство администрирования оппортунистических ресурсов включает в себя общественный хост-модуль, который инициирует управление активностью хостинга исполнения одного или нескольких приложений с использованием сопоставленных временно доступных вычислительных ресурсов одного или нескольких частных облаков.
[0165] Система дополнительно содержит модуль обнаружения ресурсов, который определяет вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, на основе описаний доступности ресурсов, принятых от одного или нескольких частных облаков, причем средство выделения ресурсов оппортунистически получает доступ к вычислительным ресурсам путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов.
[0166] Система дополнительно содержит модуль обнаружения ресурсов, который определяет вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, на основе описаний доступности ресурсов, принятых от одного или нескольких частных облаков. Система дополнительно содержит модуль анализа производительности, который выполняет анализ критериев производительности вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках, причем средство выделения ресурсов оппортунистически получает доступ к вычислительным ресурсам путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов и которые обеспечивают оптимизированную производительность исполнения одного или нескольких приложений, на основе анализа критериев производительности.
[0167] Критерии производительности вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках, включают в себя одно или несколько из времени до исходного ответа одного или нескольких частных облаков, которые включают в себя выбранные временно доступные вычислительные ресурсы, среднего времени ответа одного или нескольких частных облаков, которые включают в себя выбранные временно доступные вычислительные ресурсы, по множеству запросов или надежности одного или нескольких частных облаков, которые включают в себя выбранные временно доступные вычислительные ресурсы.
[0168] Система дополнительно содержит модуль обнаружения ресурсов, который определяет вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, на основе описаний доступности ресурсов, принятых от одного или нескольких частных облаков, и модуль анализа затрат, который выполняет анализ критериев затрат вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках, и затрат пропускной способности для осуществления доступа к вычислительным ресурсам свободной мощности, причем средство выделения ресурсов оппортунистически получает доступ к вычислительным ресурсам путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов и которые обеспечивают оптимизированные затраты исполнения одного или нескольких приложений, на основе анализа критериев затрат.
[0169] Средство выделения ресурсов оппортунистически получает доступ к вычислительным ресурсам от одного или нескольких частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами одного или нескольких частных облаков на основе одного или нескольких из многокритериальной методики оптимизации, автоматизированного аукциона или методики выделения на основе правил.
[0170] Средство выделения ресурсов оппортунистически получает доступ к вычислительным ресурсам из множества частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами множества частных облаков на основе одной или нескольких из методики целочисленного линейного программирования, эвристики ветвей и границ или методики жадной оптимизации.
[0171] Система дополнительно содержит модуль обнаружения ресурсов, который определяет вычислительные ресурсы свободной мощности, которые динамически доступны в одном или нескольких частных облаках, на основе описаний доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени, причем средство выделения ресурсов динамически получает доступ к вычислительным ресурсам путем динамического выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов, по мере того как вычислительные ресурсы становятся доступны с течением времени, и динамически высвобождает предыдущие вычислительные ресурсы, для которых доступ был ранее получен, если предыдущие вычислительные ресурсы становятся недоступны.
[0172] Описания доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени, включают в себя доступность ресурсов в течение квантов времени предварительно определенных временных интервалов, причем средство выделения ресурсов динамически получает доступ к вычислительным ресурсам путем динамического выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов, на основе описаний доступности ресурсов, по мере того как вычислительные ресурсы становятся доступны с течением времени, и динамически высвобождает предыдущие вычислительные ресурсы, для которых доступ был ранее получен, если предыдущие вычислительные ресурсы становятся недоступны.
[0173] Модуль обнаружения ресурсов определяет для каждого из квантов времени список вычислительных ресурсов свободной мощности, которые динамически доступны в одном или нескольких частных облаках, на основе описаний доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени. Модуль получения описания ресурсов определяет для каждого из квантов времени список ограничений на затраты и ограничений на производительность, ассоциированных с соответственными описаниями одного или нескольких требований вычислительных ресурсов, для исполнения одного или нескольких приложений. Средство выделения ресурсов динамически оптимизирует доступ выделения к вычислительным ресурсам с течением времени.
[0174] Средство выделения ресурсов динамически оптимизирует доступ выделения к вычислительным ресурсам с течением времени на основе одной или нескольких из методики динамической оптимизации, методики алгоритма Витерби или методики многоквантовой оптимизации.
[0175] Компьютерный программный продукт содержит машиночитаемый носитель данных, хранящий исполняемый код, который побуждает по меньшей мере одно устройство обработки данных получать описание одного или нескольких требований вычислительных ресурсов для исполнения приложения, обеспечивать описание одного или нескольких требований вычислительных ресурсов средству выделения ресурсов общедоступного сервиса, причем средство выделения ресурсов сконфигурировано, чтобы оппортунистически получить доступ к вычислительным ресурсам от вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство, которое является внешним для и отдельным от общедоступного сервиса, путем интеллектуального сопоставления одного или нескольких требований вычислительных ресурсов с доступными вычислительными ресурсами вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство, и инициировать управление активностью хостинга исполнения приложения для одного или нескольких пользователей с использованием сопоставленных доступных вычислительных ресурсов вычислительного объекта.
[0176] Хостинг средства выделения ресурсов осуществляется в общественном облаке, ассоциированном с общедоступным сервисом.
[0177] Хостинг средства выделения ресурсов осуществляется на сервере, который является отдельным от общественного облака, который осуществляет хостинг общедоступного сервиса.
[0178] Хостинг средства выделения ресурсов осуществляется в качестве приложения выделения распределенных ресурсов, хостинг которого осуществляется в общественном облаке, ассоциированном с общедоступным сервисом, и во множестве частных облаков.
[0179] Способ включает в себя этап, на котором получают описания одного или нескольких требований вычислительных ресурсов для исполнения одного или нескольких приложений, ассоциированных с множеством динамически изменяющихся рабочих нагрузок, посредством модуля получения описания ресурсов, включенного в общедоступный сервис.
[0180] Способ включает в себя этап, на котором оппортунистически получают доступ к вычислительным ресурсам от одного или нескольких частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами одного или нескольких частных облаков.
[0181] Способ включает в себя этап, на котором инициируют управление активностью хостинга исполнения одного или нескольких приложений с использованием сопоставленных временно доступных вычислительных ресурсов одного или нескольких частных облаков.
[0182] Способ включает в себя этап, на котором определяют вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, на основе описаний доступности ресурсов, принятых от одного или нескольких частных облаков.
[0183] Способ включает в себя этап, на котором оппортунистически получают доступ к вычислительным ресурсам путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов.
[0184] Способ включает в себя этап, на котором определяют вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, на основе описаний доступности ресурсов, принятых от одного или нескольких частных облаков.
[0185] Способ включает в себя этап, на котором выполняют анализ критериев производительности вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках.
[0186] Способ включает в себя этап, на котором оппортунистически получают доступ к вычислительным ресурсам путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов и которые обеспечивают оптимизированную производительность исполнения одного или нескольких приложений, на основе анализа критериев производительности.
[0187] Критерии производительности вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках, включают в себя одно или несколько из времени до исходного ответа одного или нескольких частных облаков, которые включают в себя выбранные временно доступные вычислительные ресурсы, среднего времени ответа одного или нескольких частных облаков, которые включают в себя выбранные временно доступные вычислительные ресурсы, по множеству запросов или надежности одного или нескольких частных облаков, которые включают в себя выбранные временно доступные вычислительные ресурсы.
[0188] Способ включает в себя этап, на котором определяют вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, на основе описаний доступности ресурсов, принятых от одного или нескольких частных облаков.
[0189] Способ включает в себя этап, на котором выполняют анализ критериев затрат вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках, и затрат пропускной способности для осуществления доступа к вычислительным ресурсам свободной мощности.
[0190] Способ включает в себя этап, на котором оппортунистически получают доступ к вычислительным ресурсам путем выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов и которые обеспечивают оптимизированные затраты исполнения одного или нескольких приложений, на основе анализа критериев затрат.
[0191] Способ включает в себя этап, на котором оппортунистически получают доступ к вычислительным ресурсам от одного или нескольких частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами одного или нескольких частных облаков на основе одного или нескольких из многокритериальной методики оптимизации, автоматизированного аукциона или методики выделения на основе правил.
[0192] Способ включает в себя этап, на котором оппортунистически получают доступ к вычислительным ресурсам из множества частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, путем сопоставления одного или нескольких требований вычислительных ресурсов с временно доступными вычислительными ресурсами множества частных облаков на основе одной или нескольких из методики целочисленного линейного программирования, эвристики ветвей и границ или методики жадной оптимизации.
[0193] Способ включает в себя этап, на котором определяют вычислительные ресурсы свободной мощности, которые динамически доступны в одном или нескольких частных облаках, на основе описаний доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени.
[0194] Способ включает в себя этап, на котором динамически получают доступ к вычислительным ресурсам путем динамического выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов, по мере того как вычислительные ресурсы становятся доступны с течением времени, и динамического высвобождения предыдущих вычислительных ресурсов, для которых доступ был ранее получен, если предыдущие вычислительные ресурсы становятся недоступны.
[0195] Описания доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени, включают в себя доступность ресурсов в течение квантов времени предварительно определенных временных интервалов.
[0196] Способ включает в себя этап, на котором динамически получают доступ к вычислительным ресурсам путем динамического выбора временно доступных вычислительных ресурсов одного или нескольких частных облаков, которые удовлетворяют по меньшей мере части из одного или нескольких требований вычислительных ресурсов, на основе описаний доступности ресурсов, по мере того как вычислительные ресурсы становятся доступны с течением времени, и динамического высвобождения предыдущих вычислительных ресурсов, для которых доступ был ранее получен, если предыдущие вычислительные ресурсы становятся недоступны.
[0197] Способ включает в себя этап, на котором определяют для каждого из квантов времени список вычислительных ресурсов свободной мощности, которые динамически доступны в одном или нескольких частных облаках, на основе описаний доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени.
[0198] Способ включает в себя этап, на котором определяют для каждого из квантов времени список ограничений на затраты и ограничений на производительность, ассоциированных с соответственными описаниями одного или нескольких требований вычислительных ресурсов, для исполнения одного или нескольких приложений.
[0199] Способ включает в себя этап, на котором динамически оптимизируют доступ к вычислительным ресурсам с течением времени.
[0200] Способ включает в себя этап, на котором динамически оптимизируют доступ к вычислительным ресурсам с течением времени на основе одной или нескольких из методики динамической оптимизации, методики алгоритма Витерби или методики многоквантовой оптимизации.
[0201] Способ включает в себя этап, на котором динамически оптимизируют доступ выделения к вычислительным ресурсам с течением времени посредством средства выделения ресурсов на основе одной или нескольких из методики динамической оптимизации, методики алгоритма Витерби или методики многоквантовой оптимизации.
[0202] Способ включает в себя этап, на котором получают описание одного или нескольких требований вычислительных ресурсов для исполнения приложения, ассоциированного с общедоступным сервисом.
[0203] Способ включает в себя этап, на котором оппортунистически получают доступ к вычислительным ресурсам от вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство, которое является внешним для и отдельным от общедоступного сервиса, путем интеллектуального сопоставления одного или нескольких требований вычислительных ресурсов с доступными вычислительными ресурсами вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство с частными вычислительными ресурсами, которые временно доступны от источника частного вычислительного устройства, причем интеллектуальное сопоставление выполняется с использованием анализа оптимизации производительности.
[0204] Анализ оптимизации производительности включает в себя анализ предсказания производительности исполнения приложения, ассоциированного с общедоступным сервисом, на основе полученного описания одного или нескольких требований вычислительных ресурсов и описания доступных вычислительных ресурсов вычислительного объекта.
[0205] Анализ оптимизации производительности включает в себя анализ одного или нескольких из скорости вычислений, задержки сети, пропускной способности сети или производительности хранилища.
[0206] Вычислительный объект включает в себя по меньшей мере одно частное вычислительное устройство в по меньшей мере одном частном облаке.
[0207] Вычислительный объект включает в себя множество вычислительных устройств в по меньшей мере одном частном облаке и по меньшей мере одном общественном облаке.
[0208] Способ включает в себя этап, на котором получают описание одного или нескольких требований вычислительных ресурсов для исполнения приложения.
[0209] Способ включает в себя этап, на котором обеспечивают описание одного или нескольких требований вычислительным ресурсам средству выделения ресурсов общедоступного сервиса, причем средство выделения ресурсов сконфигурировано, чтобы оппортунистически получить доступ к вычислительным ресурсам от вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство, которое является внешним для и отдельным от общедоступного сервиса, путем интеллектуального сопоставления одного или нескольких требований вычислительных ресурсов с доступными вычислительными ресурсами вычислительного объекта, который включает в себя по меньшей мере одно частное вычислительное устройство.
[0210] Способ включает в себя этап, на котором инициируют управление активностью хостинга исполнения приложения для одного или нескольких пользователей с использованием сопоставленных доступных вычислительных ресурсов вычислительного объекта.
[0211] Хостинг средства выделения ресурсов осуществляется в общественном облаке, ассоциированном с общедоступным сервисом.
[0212] Хостинг средства выделения ресурсов осуществляется на сервере, который является отдельным от общественного облака, которое осуществляет хостинг общедоступного сервиса.
[0213] Хостинг средства выделения ресурсов осуществляется в качестве приложения выделения распределенных ресурсов, хостинг которого осуществляется в общественном облаке, ассоциированном с общедоступным сервисом, и во множестве частных облаков.
[0214] Специалист в области техники обработки данных поймет, что может существовать множество способов интеллектуального выделения вычислительных ресурсов, которые доступны в частных облаках (или частных устройствах) для исполнения приложений от источников, внешних по отношению к частным облакам, без выхода за пределы сущности рассматриваемого здесь.
[0215] Клиентская приватность и конфиденциальность были постоянными учитываемыми факторами в средах обработки данных много лет. Таким образом, примеры методик для получения таких вычислительных ресурсов могут использовать ввод пользователя и/или данные, обеспеченные пользователями, которые обеспечили разрешение посредством одного или нескольких абонентских соглашений (например, соглашений "условий обслуживания" (TOS)) с ассоциированными приложениями или сервисами, ассоциированными с такими методиками. Например, пользователи могут обеспечивать согласие на то, чтобы их ввод/данные передавались и сохранялись на устройствах, хотя может быть явным образом указано (например, посредством утвержденного соглашения пользователя), что каждая сторона может управлять тем, как передача и/или хранение происходят и какой уровень или продолжительность хранения могут поддерживаться, если таковые необходимы. Кроме того, идентификаторы, которые могут быть использованы для определения устройств, используемых пользователем, могут быть усложнены, например, путем хэширования фактической информации пользователя. Следует понимать, что любой ввод/данные пользователя могут быть получены в соответствии с законами о приватности и положениями любой имеющей к этому отношение юрисдикционной территории.
[0216] Кроме того, виртуализация и шифрование могут быть использованы, чтобы обеспечить то, что частная информация клиентов общественного сервиса может быть защищена от обладателей служащих донорами компьютеров частных облаков.
[0217] Осуществления различных методик, описанных здесь, могут осуществляться в цифровых электронных цепях или в компьютерных аппаратных средствах, программно-аппаратных средствах, программных средствах или в их комбинациях (например, устройстве, сконфигурированном для исполнения инструкций для выполнения различных функциональных возможностей).
[0218] Осуществления могут осуществляться в качестве компьютерной программы, осуществляемой в сигналах (например, чистом сигнале, таком как чистый распространяемый сигнал). Такие осуществления будут называться здесь осуществляемыми посредством "машиночитаемого носителя передачи", который не относится здесь к "машиночитаемому носителю данных" или "машиночитаемому устройству хранения", как рассмотрено ниже.
[0219] В качестве альтернативы, осуществления могут осуществляться посредством компьютерной программы, осуществленной в используемом машиной или машиночитаемом устройстве хранения (например, магнитном или цифровом носителе, таком как устройство хранения на основе универсальной последовательной шины (USB), лента, накопитель на жестком диске, компакт-диск, цифровой видеодиск (DVD) и т. д.) для исполнения посредством или для управления операцией вычислительного устройства (например, устройства обработки данных), например программируемого процессора, специализированного процессора или устройства, компьютера или множества компьютеров. Такие осуществления могут называться здесь осуществляемыми посредством "машиночитаемого носителя данных" или "машиночитаемого устройства хранения" и, таким образом, отличны от осуществлений, которые являются исключительно сигналами, такими как чистые распространяемые сигналы (и, таким образом, не относятся здесь к "машиночитаемому носителю передачи", как рассмотрено выше). Таким образом, используемая здесь ссылка на "машиночитаемый носитель данных" или на "машиночитаемое устройство хранения" конкретным образом исключает осуществления в качестве чистых сигналов (например, распространяемых сигналов) как таковых.
[0220] Компьютерная программа, такая как компьютерная программа(-ы), описанная выше, может быть написана на языке программирования любой формы, включая компилированный, интерпретируемый или машинный языки, и может устанавливаться в любой форме, включая автономную программу, или в качестве модуля, компонента, подпрограммы или другого блока, подходящего для использования в вычислительной среде. Компьютерная программа может быть материально осуществлена в качестве исполняемого кода (например, исполняемых инструкций) на используемом машиной или машиночитаемом устройстве хранения (например, машиночитаемом носителе). Компьютерная программа, которая может осуществлять методики, рассмотренные выше, может устанавливаться для исполнения на одном компьютере или на множестве компьютеров, находящихся в одном месте или распределенных по множеству мест и взаимно соединенных сетью связи.
[0221] Этапы способа могут выполняться одним или несколькими программируемыми процессорами, исполняющими компьютерную программу для выполнения функций путем операции над входными данными и генерирования выходных данных. Один или несколько программируемых процессоров могут исполнять инструкции параллельно и/или могут компоноваться в распределенной конфигурации для распределенной обработки. Примерные функциональные возможности, рассмотренные здесь, могут также выполняться посредством, и устройство может осуществляться, по меньшей мере частично, в качестве одного или нескольких аппаратных логических компонентов. В качестве примера, и без ограничения, иллюстративные типы аппаратных логических компонентов, которые могут быть использованы, могут включать в себя программируемые пользователем вентильные матрицы (FPGA), специализированные интегральные цепи (ASIC), специализированные стандартные продукты (ASSP), специализированные стандартные продукты (ASSP), системы на кристалле (SOC), сложные программируемые логические устройства (CPLD) и т. д.
[0222] Процессоры, подходящие для исполнения компьютерной программы, включают в себя, в качестве примера, как общие, так и специализированные микропроцессоры и любой один или несколько процессоров любого вида цифрового компьютера. В общем случае процессор будет принимать инструкции и данные из постоянной памяти, оперативной памяти, или обеих. Элементы компьютера могут включать в себя по меньшей мере один процессор для исполнения инструкций и одно или несколько устройств памяти для хранения инструкций и данных. В общем случае, компьютер также может включать в себя, или операционно объединяться для приема данных от или переноса данных на, или того и другого, одно или несколько устройств массового хранения для хранения данных, например магнитные, магнитооптические диски или оптические диски. Информационные носители, подходящие для осуществления компьютерных программных инструкций и данных, включают в себя все формы энергонезависимой памяти, включающей в себя в качестве примера полупроводниковые устройства памяти, например EPROM, EEPROM и устройства флэш-памяти; магнитные диски, например внутренние жесткие диски или сменные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM. Процессор и память могут дополняться или включаться в специализированные логические цепи.
[0223] Для обеспечения взаимодействия с пользователем осуществления могут осуществляться на компьютере, имеющем устройство отображения, например электронно-лучевую трубку (CRT), жидкокристаллический дисплей (LCD) или плазменный монитор, для отображения информации пользователю и клавиатуру и указывающее устройство, например мышь или трекбол, посредством которых пользователь может обеспечивать ввод в компьютер. Другие виды устройств могут быть использованы для обеспечения взаимодействия с пользователем также; например, обратная связь, обеспеченная пользователю, может быть любой формой сенсорной обратной связи, например визуальной обратной связью, слуховой обратной связью или тактильной обратной связью. Например, вывод может быть обеспечен посредством любой формы обратной связи, включая (но не ограничиваясь) визуальный вывод (например, визуальные жесты, вывод видео), звуковой вывод (например, голос, звуки устройства), тактильный вывод (например, прикосновение, перемещение устройства), температуру, запах и т. д.
[0224] Кроме того, ввод от пользователя может приниматься в любой форме, включая акустический, речевой или тактильный ввод. Например, ввод может приниматься от пользователя посредством сенсорного ввода любой формы, включая (но не ограничиваясь) визуальный вод (например, жесты, ввод видео), ввод аудио (например, голос, звуки устройства), тактильный ввод (например, прикосновение, перемещение устройства), температуру, запах и т. д.
[0225] Кроме того, естественный пользовательский интерфейс (NUI) может быть использован для осуществления интерфейса с пользователем. В этом контексте "NUI" может ссылаться на любую технологию интерфейса, которая обеспечивает возможность пользователю взаимодействовать с устройством "естественным" образом без искусственных ограничений, накладываемых устройствами ввода, такими как мыши, клавиатуры, удаленные средства управления и т. п.
[0226] Примеры методик NUI могут включать в себя те, которые полагаются на распознавание речи, распознавание прикосновения и стилуса, распознавание жестов как на экране, так и возле экрана, жесты в воздухе, отслеживание головы и глаз, голос и речь, зрение, прикосновение, наведение, жесты и машинный интеллект. Пример технологий NUI может включать в себя, но не ограничиваться, дисплеи, чувствительные к прикосновениям, распознавание голоса и речи, интерпретация намерения и цели, обнаружение жеста в движении с использованием камер глубины (например, стереоскопических или времяпролетных систем камер, инфракрасных систем камер, систем камер на основе RGB (красного, зеленого, синего) и их комбинаций), обнаружение жеста в движении с использованием акселерометров/гироскопов, распознавание лиц, 3D-дисплеи, отслеживание головы, глаз и взгляда, системы иммерсивной дополненной реальности и виртуальной реальности, все из которых могут обеспечивать более естественный интерфейс, и технологии для восприятия мозговой активности с использованием сенсорных электродов электрического поля (например, электроэнцефалография (EEG) и родственные методики).
[0227] Осуществления могут осуществляться в вычислительной системе, которая включает в себя серверный компонент, например сервер данных, или которая включает в себя компонент промежуточных программных средств, например сервер приложений, или которая включает в себя связной компонент, например клиентский компьютер, имеющий графический пользовательский интерфейс, или веб-обозреватель, через который пользователь может взаимодействовать с осуществлением, или любую комбинацию таких серверных, промежуточных программных или связных компонентов. Компоненты могут быть взаимно соединены любой формой или носителем цифровой передачи данных, например сетью связи. Примеры сетей связи включают в себя локальную сеть (LAN) и широкомасштабную сеть (WAN), например Интернет.
[0228] Хотя изобретение было описано на языке, конкретном для структурных признаков и/или методологических действий, следует понимать, что изобретение, определенное в прилагаемой формуле изобретения, не обязательно ограничивается конкретными признаками или действиями, описанными выше. В действительности, конкретные признаки и действия, описанные выше, раскрываются в качестве примерных форм осуществления формулы изобретения. В то время как конкретные признаки описанных осуществлений были проиллюстрированы, как описано здесь, множество модификаций, замещений, изменений и эквивалентов теперь придут в голову специалистам в данной области техники. Таким образом, следует понимать, что прилагаемая формула изобретения предназначена для покрытия всех таких модификаций и изменений, которые находятся в пределах объема вариантов осуществления.
Изобретение относится к средствам соединения частных вычислительных ресурсов с внешними сервисами. Технический результат заключается в обеспечении надежной операции с динамическими изменениями в доступности частного облака. Получают описания одного или нескольких требований к вычислительным ресурсам для исполнения одного или нескольких приложений, ассоциированных с множеством динамически изменяющихся рабочих нагрузок, причем упомянутое одно или несколько приложений предоставляется общедоступным сервисом. Идентифицируют частные облака, которые являются внешними для и отдельными от упомянутого общедоступного сервиса, путем сопоставления упомянутого одного или нескольких требований к вычислительным ресурсам с временно доступными вычислительными ресурсами частных облаков. Определяют соответствующее время, затрачиваемое частными облаками для получения программного обеспечения для выполнения упомянутого одного или нескольких приложений. Выбирают некоторое конкретное частное облако для осуществления хостинга упомянутого одного или нескольких приложений, основываясь по меньшей мере на соответствующем времени, затрачиваемом упомянутыми частными облаками для получения программного обеспечения для выполнения упомянутого одного или нескольких приложений. Побуждают одно или несколько приложений к хостингу на упомянутом конкретном частном облаке. 3 н. и 12 з.п. ф-лы, 11 ил.
1. Система для соединения частных вычислительных ресурсов с внешними сервисами, содержащая:
устройство обработки данных, которое включает в себя машиночитаемый носитель данных, хранящий исполняемые инструкции, которые побуждают устройство обработки данных:
получать описание одного или нескольких требований к вычислительным ресурсам для исполнения приложения, ассоциированного с общедоступным сервисом; и
определять соответствующее время, затрачиваемое разными частными вычислительными устройствами для получения программного обеспечения для выполнения упомянутого приложения, причем упомянутые разные частные вычислительные устройства являются внешними для и отдельными от упомянутого общедоступного сервиса;
учитывая соответствующее время, затрачиваемое разными частными вычислительными устройствами для получения программного обеспечения для выполнения упомянутого приложения, осуществлять интеллектуальное сопоставление упомянутого одного или нескольких требований к вычислительным ресурсам с временно доступными вычислительными ресурсами некоторого выбранного частного вычислительного устройства для выполнения программного обеспечения; и
побуждать выбранное частное вычислительное устройство к получению программного обеспечения и осуществлению хостинга упомянутого приложения.
2. Система по п.1, в которой исполняемые инструкции побуждают устройство обработки данных:
выполнить прогнозный анализ производительности исполнения приложения, ассоциированного с общедоступным сервисом, основываясь по меньшей мере на полученном описании одного или нескольких требований к вычислительным ресурсам и на другом описании временно доступных вычислительных ресурсов выбранного частного вычислительного устройства.
3. Система по п.1, в которой исполняемые инструкции побуждают устройство обработки данных:
основываясь по меньшей мере на соответствующем времени, затрачиваемом разными частными вычислительными устройствами для получения программного обеспечения для выполнения упомянутого приложения, определять соответствующее время первого ответа упомянутых разных частных вычислительных устройств для ответа на первый запрос от клиента; и
идентифицировать выбранное частное вычислительное устройство из числа упомянутых разных частных вычислительных устройств для осуществления хостинга приложения, основываясь по меньшей мере на соответствующем времени первого ответа.
4. Вычислительная система, содержащая:
по меньшей мере один процессор;
по меньшей мере один машиночитаемый носитель данных, который хранит исполняемый код, который исполняется по меньшей мере одним процессором, причем исполняемый код побуждает упомянутый по меньшей мере один процессор для:
получения описаний одного или нескольких требований к вычислительным ресурсам для исполнения одного или нескольких приложений, ассоциированных с множеством динамически изменяющихся рабочих нагрузок, причем упомянутое одно или несколько приложений предоставляются общедоступным сервисом;
идентификации одного или нескольких частных облаков, которые являются внешними для и отдельными от общедоступного сервиса, путем сопоставления упомянутого одного или нескольких требований к вычислительным ресурсам с временно доступными вычислительными ресурсами одного или нескольких частных облаков;
определения соответствующего времени, затрачиваемого одним или несколькими частными облаками для получения программного обеспечения для запуска упомянутого одного или нескольких приложений;
выбора некоторого конкретного частного облака для осуществления хостинга упомянутого одного или нескольких приложений, основываясь по меньшей мере на соответствующем времени, затрачиваемом упомянутым одним или несколькими частными облаками для получения программного обеспечения для запуска упомянутого одного или нескольких приложений; и
инициирования управления активностью хостинга по исполнению упомянутого одного или нескольких приложений на упомянутом конкретном частном облаке.
5. Система по п.4, в которой исполняемый код побуждает упомянутый по меньшей мере один процессор:
определять вычислительные ресурсы свободной мощности, которые доступны в одном или нескольких частных облаках, основываясь по меньшей мере частично на описаниях доступности ресурсов, принятых от одного или нескольких частных облаков; и
выбирать конкретное частное облако для выполнения хостинга одного или нескольких приложений, основываясь по меньшей мере на определении того, что конкретные вычислительные ресурсы свободной мощности конкретного частного облака удовлетворяют упомянутому одному или нескольким требованиям к вычислительным ресурсам.
6. Система по п.5, в которой исполняемый код побуждает упомянутый по меньшей мере один процессор:
выполнить анализ критериев производительности вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках; и
выбрать конкретное частное облако для осуществления хостинга одного или нескольких приложений, основываясь по меньшей мере на анализе упомянутых критериев производительности.
7. Система по п.6, в которой:
упомянутые критерии производительности включают в себя одно или несколько из:
времени до первоначального ответа на клиентский запрос, направленный в одно или несколько приложений,
среднего времени ответа одного или нескольких приложений по множеству запросов, и
надежности одного или нескольких частных облаков.
8. Система по п.4, в которой исполняемый код побуждает упомянутый по меньшей мере один процессор:
выполнить анализ критериев затрат вычислительных ресурсов свободной мощности, которые доступны в одном или нескольких частных облаках, и затрат пропускной способности для осуществления доступа к вычислительным ресурсам свободной мощности; и
выбрать конкретное частное облако для осуществления хостинга одного или нескольких приложений, основываясь по меньшей мере на упомянутом анализе критериев затрат и затрат пропускной способности.
9. Система по п.4, в которой исполняемый код побуждает упомянутый по меньшей мере один процессор:
выбирать конкретное частное облако для осуществления хостинга одного или нескольких приложений с использованием по меньшей мере одного из:
методики целочисленного линейного программирования, эвристики ветвей и границ, методики жадной оптимизации, методики многокритериальной оптимизации, автоматизированного аукциона и методики выделения на основе правил.
10. Система по п.4, в которой исполняемый код побуждает упомянутый по меньшей мере один процессор:
отслеживать вычислительные ресурсы свободной мощности, которые динамически доступны в одном или нескольких частных облаках; и
динамически выбирать и высвобождать отдельные вычислительные ресурсы одного или нескольких частных облаков с течением времени по мере того, как эти отдельные вычислительные ресурсы изменяются с течением времени.
11. Система по п.10, в которой исполняемый код побуждает упомянутый по меньшей мере один процессор:
отслеживать вычислительные ресурсы свободной мощности для квантов времени предварительно определенных временных интервалов; и
выбирать и высвобождать отдельные вычислительные ресурсы во время упомянутых квантов времени.
12. Система по п.11, в которой исполняемый код побуждает упомянутый по меньшей мере один процессор:
определять для каждого из квантов времени список вычислительных ресурсов свободной мощности, которые динамически доступны в одном или нескольких частных облаках, основываясь по меньшей мере на описаниях доступности ресурсов, которые динамически принимаются от одного или нескольких частных облаков с течением времени;
определять для каждого из квантов времени список ограничений на затраты и ограничений на производительность, ассоциированных с соответствующими описаниями одного или нескольких требований к вычислительным ресурсам, для исполнения одного или нескольких приложений; и
выполнять динамическую оптимизацию доступа с выделением к вычислительным ресурсам свободной мощности с течением времени.
13. Система по п.12, в которой упомянутая динамическая оптимизация применяет одно или несколько из методики динамической оптимизации, методики алгоритма Витерби и методики многоквантовой оптимизации.
14. Способ соединения частных вычислительных ресурсов с внешними сервисами, содержащий:
получение описаний одного или нескольких требований к вычислительным ресурсам для исполнения одного или нескольких приложений, ассоциированных с множеством динамически изменяющихся рабочих нагрузок, причем упомянутое одно или несколько приложений предоставляется общедоступным сервисом;
идентификацию частных облаков, которые являются внешними для и отдельными от упомянутого общедоступного сервиса, путем сопоставления упомянутого одного или нескольких требований к вычислительным ресурсам с временно доступными вычислительными ресурсами частных облаков;
определение соответствующего времени, затрачиваемого частными облаками для получения программного обеспечения для выполнения упомянутого одного или нескольких приложений;
выбор некоторого конкретного частного облака для осуществления хостинга упомянутого одного или нескольких приложений, основываясь по меньшей мере на соответствующем времени, затрачиваемом упомянутыми частными облаками для получения программного обеспечения для выполнения упомянутого одного или нескольких приложений; и
побуждение одного или нескольких приложений к хостингу на упомянутом конкретном частном облаке.
15. Способ по п.14, дополнительно содержащий:
основываясь по меньшей мере на соответствующем времени, затрачиваемом частными облаками для получения программного обеспечения для выполнения упомянутого приложения, определение соответствующего времени первого ответа упомянутых частных облаков для ответа на первый запрос от клиента; и
выбор конкретного частного облака из числа упомянутых частных облаков, основываясь по меньшей мере на соответствующем времени первого ответа.
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем | 1924 |
|
SU2012A1 |
СИСТЕМА И СПОСОБ ЗАПИСИ ДАННЫХ В ОБЛАЧНОЕ ХРАНИЛИЩЕ | 2010 |
|
RU2435236C1 |
Авторы
Даты
2019-09-05—Публикация
2015-06-29—Подача