СИСТЕМА И СПОСОБ ОПИСАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ОБЕСПЕЧЕНИЯ УПРАВЛЯЕМОСТИ И ЭФФЕКТИВНОЙ МАСШТАБИРУЕМОЙ УСТАНОВКИ
SYSTEM AND METHOD FOR DESCRIBING APPLICATIONS FOR MANAGEABILITY AND EFFICIENT SCALABLE DEPLOYMENT

Область техники, к которой относится изобретение
Компьютерные приложения разрабатываются для работы на конкретной вычислительной платформе. Как правило, вычислительные платформы предназначены для управления одним компьютером и, как результат, приложения, предназначенные для вычислительной платформы, также предназначены для работы на одном компьютере. Интернет привел к появлению новых подходов к установке программ на компьютеры. Хотя способ установки изменился, конечные пользователи, тем не менее, рассчитывают, что на работу компьютерных приложений не будет влиять то, установлены ли они по сети Интернет, либо находятся в компьютере конечного пользователя.
Сущность изобретения
Варианты реализации настоящего изобретения относятся к системам, способам и компьютерному носителю информации, обеспечивающим работу масштабируемой вычислительной платформы. Принимают описание службы, описывающее запрошенную службу. После приема описания службы определяют требуемые ресурсы и доступные ресурсы. Ресурсы, требуемые для обеспечения установки службы, ставят в соответствие доступным ресурсам вычислительной платформы, в результате чего можно установить службу. Описание экземпляра корректируют при каждой установке службы, чтобы обеспечить надежную установку этой службы.
Это краткое изложение сущности изобретения дано, чтобы в упрощенной форме ознакомить с подборкой принципов, которые более конкретно рассмотрены ниже в подробном описании изобретения. Это краткое изложение сущности изобретения не имеет своей целью указать ключевые или существенные признаки заявляемого изобретения, а также не предназначено для использования в качестве средства определения объема заявляемого изобретения.
Краткое описание чертежей
Ниже настоящее изобретение описано более подробно со ссылкой на приложенные чертежи, из которых:
Фиг. 1 - структурная схема примерной вычислительной среды, подходящей для использования при реализации на практике вариантов настоящего изобретения;
Фиг. 2 - структурная схема примерной системы, обеспечивающей работу масштабируемой вычислительной платформы, согласно одному из вариантов реализации настоящего изобретения;
Фиг. 3 - блок-схема примерного способа, обеспечивающего работу масштабируемой вычислительной платформы, согласно одному из вариантов реализации настоящего изобретения;
Фиг. 4 - схема жизненного цикла описания службы при прохождении через различные узлы, согласно вариантам реализации настоящего изобретения;
Фиг. 5 графическое представление примерной топологии, согласно одному из вариантов реализации настоящего изобретения;
Фиг. 6 структурная схема, на которой показан канал регулирования загрузки, согласно одному из вариантов реализации настоящего изобретения;
Фиг. 7 - структурная схема, на которой показан канал коммутации с учетом состояния, согласно одному из вариантов реализации настоящего изобретения;
Фиг. 8 - структурная схема, на которой показан канал коммутации без учета состояния, согласно одному из вариантов реализации настоящего изобретения; и
Фиг. 9 блок-схема процесса установки службы, согласно одному из вариантов реализации настоящего изобретения.
Подробное описание изобретения
Чтобы удовлетворить требованиям законодательства, здесь подробно рассмотрена сущность вариантов реализации настоящего изобретения. Однако предполагается, что само по себе описание не ограничивает объем этого изобретения. Вместо этого, авторы настоящего изобретения подразумевают, что предмет заявляемого изобретения может также быть воплощен другими путями, предполагающими включение в себя других этапов или комбинаций этапов, аналогичных описанным в этом документе, в соединении с другими известными или возможными в будущем технологиями. Помимо этого, хотя термины "этап" и/или "блок" могут использоваться здесь для указания на различные составные части применяемых способов, данные термины не должны восприниматься как подразумевающие конкретный порядок следования множества описанных здесь этапов, если только порядок следования отдельных этапов не указан явным образом.
Варианты реализации настоящего изобретения относятся к системам, способам и компьютерному носителю информации, обеспечивающим работу масштабируемой вычислительной платформы. Принимают описание службы, описывающее запрошенную службу. После приема описания службы определяют требуемые ресурсы и доступные ресурсы. Ресурсы, требуемые для обеспечения установки службы, ставят в соответствие доступным ресурсам вычислительной платформы, в результате чего можно установить службу. Описание экземпляра корректируют при каждой установке службы, чтобы обеспечить надежную установку этой службы.
Согласно другому аспекту настоящего изобретения, предлагается способ, обеспечивающий работу масштабируемой вычислительной платформы. Этот способ включает в себя прием запроса на предоставление одной или более служб, причем с запросом на предоставление службы (служб) связан контракт на службу. Каждая служба состоит из элемента и канала, причем канал представляет собой, по меньшей мере, одно из следующего: канал регулирования загрузки, канал коммутации с учетом состояния и канал коммутации без учета состояния. Способ также включает в себя прием описания службы для упомянутых одной или более служб, причем описание службы состоит из, по меньшей мере, одного из следующего: параметра конфигурации приложения, параметра конфигурации системы и ссылки на ресурсы. Выполнение способа продолжается на этапе определения ресурсов, требуемых для установки упомянутых одной или более служб, а также определения, по меньшей мере, одного доступного ресурса масштабируемой вычислительной платформы, после чего формируют первое описание экземпляра. Как только определены требуемые ресурсы и доступные ресурсы, при дальнейшем выполнении способа эти ресурсы ставят в соответствие друг другу, а также устанавливают упомянутые одну или более служб, чтобы получить результат. После чего при дальнейшем выполнении способа передают результат установленной службы.
Согласно следующему аспекту настоящего изобретения, предлагается способ, обеспечивающий работу масштабируемой вычислительной платформы. Этот способ включает в себя прием дополнительного запроса на предоставление одной или более служб, определение ресурсов, требуемых для установки службы (служб), определение, по меньшей мере, одного доступного ресурса масштабируемой вычислительной платформы, формирование второго описания экземпляра, установление соответствия между ресурсами, требуемыми для установки службы (служб) и доступным ресурсом (ресурсами) масштабируемой вычислительной платформы, установку службы (служб) для получения результата и передачу этого результата. Способ также обеспечивает модификацию первого описания экземпляра и второго описания экземпляра, чтобы отразить постановку в соответствие ресурсов, требуемых для установки службы (служб), упомянутому, по меньшей мере, одному доступному ресурсу (ресурсам) масштабируемой вычислительной платформы.
Согласно еще одному аспекту настоящего изобретения, предлагается компьютерная система, реализованная на одном или более носителях информации, содержащей исполняемые машиной инструкции для выполнения способа, обеспечивающего работу масштабируемой вычислительной платформы. Упомянутая система содержит компонент приема, который принимает запрос на предоставление службы, включая в себя описание службы, содержащее описание ресурса (ресурсов), требуемых для установки связанной с ним службы, компонент определения ресурсов, который определяет ресурс (ресурсы), требуемые для установки службы, компонент постановки ресурсов в соответствие, который ставит в соответствие ресурс (ресурсы), требуемый(ые) для установки службы, и компонент установки, который устанавливает службу, связанную с поставленным в соответствие ресурсом (ресурсами), требуемым(ми) для установки службы.
После краткого обзора вариантов настоящего изобретения далее рассмотрим примерную рабочую среду, подходящую для реализации его вариантов на практике.
На чертежах и, в частности на Фиг. 1, примерная рабочая среда, подходящая для реализации на практике вариантов настоящего изобретения, показана в виде вычислительного устройства, в общем обозначенного ссылочным номером 100. Вычислительное устройство 100 является всего лишь одним из вариантов подходящей вычислительной среды, который не предполагает какого-либо ограничения диапазона использования или функциональных возможностей настоящего изобретения. Кроме того, вычислительная среда 100 не должна восприниматься как зависящая от наличия какого-либо одного или комбинации изображенных модулей/компонентов, либо требующая их наличия.
Варианты реализации настоящего изобретения могут быть описаны в общем контексте машинного кода или используемых машиной инструкций, включая в себя исполняемые машиной инструкции, такие как программные модули, исполняемые компьютером или другой машиной, например, персональным цифровым помощником (PDA) или другим портативным устройством. В общем случае программные модули, включая в себя процедуры, программы, объекты, модули, структуры данных и т.п., относятся к коду, который обеспечивает выполнение конкретных задач или реализует конкретные типы абстрактных данных. Варианты настоящего изобретения могут быть воплощены на практике в системах различной конфигурации, включая в себя портативные устройства, бытовую электронику, компьютеры общего назначения, специализированные вычислительные устройства и т.д. Варианты настоящего изобретения также могут быть воплощены на практике в распределенных вычислительных средах, где задачи выполняются устройства удаленной обработки, которые соединены посредством сети связи.
Если продолжить рассмотрение Фиг. 1, вычислительное устройство 100 включает в себя шину 110, которая напрямую или опосредованно соединяет следующие устройства: память 112, один или более процессоров 114, один или более модулей 116 представления данных, порты 118 ввода/вывода (I/O), модули 120 ввода/вывода (I/O) и приведенный в целях иллюстрации источник 122 питания. Шина 110 отражает возможное наличие одной или более шин (например, адресной шины, шины данных, либо их комбинации). Хотя на Фиг. 1 для ясности различные блоки показаны с использованием линий, в реальности разграничение модулей не является столь четким, и, образно говоря, более правильным было бы показать эти линии серыми или нечеткими. Например, можно считать модуль представления данных, например, устройство отображения информации, модулем ввода/вывода. Кроме того, процессоры содержат память. Поэтому авторы настоящего изобретения признают, что такова природа данной области техники, и снова повторяются, что схема, показанная на Фиг. 1, является всего лишь иллюстрацией примерного вычислительного устройства, которое может быть использовано вместе с одним или более вариантов реализации настоящего изобретения. Не делается различий между таким категориями, как "рабочая станция", "сервер", "переносной компьютер", "портативное устройство" и т.д., так как все они, как предполагается, охвачены Фиг. 1 и ссылкой на "компьютер" или "вычислительное устройство".
Вычислительное устройство 100 в типичном случае содержит различные машиночитаемые носители информации. В качестве примера, не подразумевая под этим ограничения, машиночитаемый носитель информации может включать в себя Оперативное запоминающее устройство (ОЗУ), Постоянное запоминающее устройство (ПЗУ); Электронно-стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ); флэш-память или устройства на основе других технологий запоминания; ПЗУ на компакт-диске (CDROM), цифровые универсальные диски (DVD) или другие оптические или голографические носители информации; магнитные кассеты, магнитную ленту, устройства хранения информации на магнитных дисках или другие магнитные устройства хранения информации, несущие волны или любые другие носители, которые можно использовать для кодирования требуемой информации и к которым может обращаться вычислительное устройство 100.
Память 112 включает в себя носитель информации в виде энергозависимой и/или энергонезависимой памяти. Память может быть съемной, несъемной, либо их комбинацией. Примерные аппаратные устройства включают в себя твердотельную память, приводы жестких дисков, приводы оптических дисков и т.д. Вычислительное устройство 100 включает в себя один или более процессоров, которые считывают данные из различных объектов, таких как память 112 или модули 120 ввода/вывода. Модуль (модули) 116 представления данных демонстрируют данные пользователю или другому устройству. Примерные модули представления данных включают в себя устройство отображения информации, громкоговоритель, модуль печати, модуль создания вибрации и т.п. Порты 118 ввода/вывода позволяют вычислительному устройству 100 логически соединяться с другими устройствами, включая модули 120 ввода/вывода, некоторые из которых могут быть встроенными. В качестве иллюстрации, модулями являются микрофон, джойстик, игровой манипулятор, спутниковая тарелка, сканер, принтер, беспроводное устройство и т.п.
На Фиг. 2 показана структурная схема примерной системы 200, используемой в качестве масштабируемой вычислительной платформы, согласно одному из вариантов реализации настоящего изобретения. Вычислительная платформа 200 является всего лишь одним из примеров подходящей вычислительной платформы, который не предполагает какого-либо ограничения диапазона использования или функциональных возможностей настоящего изобретения. Кроме того, вычислительная платформа 200 не должна восприниматься как зависящая от наличия какого-либо одного или комбинации изображенных модулей/компонентов, либо требующая их наличия.
Если продолжить рассмотрение Фиг. 2, вычислительная платформа 200 содержит компонент 212 приема, компонент 214 генерации описания службы, компонент 216 определения ресурсов, компонент 218 постановки ресурсов в соответствие, компонент 220 установки, все из которых связаны друг с другом посредством сети 210. Сеть 210 может включать в себя, не подразумевая под этим ограничения, одну или более локальных сетей (LAN) и/или сетей большого региона (WAN). Такие сетевые среды обычно используются в офисах, вычислительных сетях предприятий, сетях интранет и сети Интернет. Соответственно, сеть 210 не описывается здесь более подробно.
В примерном варианте вычислительной платформы 200 собирают различные компоненты в средство 240 создания экземпляров и средство 250 установки. Компонент 216 определения ресурсов включают в состав средства 240 создания экземпляров. Компонент 218 постановки ресурсов в соответствие и компонент 220 установки включают в состав средства 250 установки. Хотя в изображенном варианте вычислительной платформы 200 компоненты, соответствующие настоящему изобретению, объединяют в конкретные указанные узлы, специалистам в данной области техники будет понятно и очевидно, что эти узлы не ограничиваются средством 240 создания экземпляров и средством 250 установки. Специалистам в данной области техники также будет понятно и очевидно, что компоненты не ограничены конкретными указанными узлами, а также вообще нет необходимости объединять их в узлы.
Компонент 212 приема принимает запрос на предоставление службы. Служба представляет собой структурированный объект, где структура определяется описанием службы, принятым компонентом 212 приема. Принятое описание службы "подгоняется" под контракт, связанный с службой, которая запрашивается. Описание службы представляет собой набор параметров конфигурации, последовательность интерфейсов ввода и последовательность зависимостей от интерфейсов других служб. Чтобы служба была структурированным объектом, она составлена из структурированного набора правил, групп и каналов. Правила обеспечивают шаблонное описание компьютерной программы. Правила описываются путем указания машинного кода, реализующего данное правило, управляющей среды, требуемой правилом, параметров конфигурации, набором конечных точек для правила и моделью эффективности их функционирования. Параметры конфигурации в правиле могут включать в себя коллективно используемые параметры, которые совместно используются всеми экземплярами правила, либо индивидуальные параметры, которые являются особыми для каждого экземпляра правила. В дополнение к этому, набор конечных точек, включенный в описание правила, дополнительно классифицируется на входные конечные точки и выходные конечные точки. Выходная конечная точка правила представляет собой точку на стороне исходного элемента для соединения с входной конечной точкой целевого элемента. Для экземпляра правила связь осуществляется через его конечные точки. Экземпляр правила также определяется ресурсами, включенными в его описание. Кроме того, правила могут группироваться в наборы правил, чтобы получить группу. Группа минимального размера состоит из одного правила. Таким образом, группы и правила могут быть описаны как элемент, если нет необходимости их различать. Служба также включает в себя каналы. Каналы создают соединения между различными элементами через конечные точки элемента.
Компонент 212 приема принимает запрос на предоставление службы и описание службы. Описание службы включает в себя информацию об ограничениях в возможностях конфигурирования и установки службы, а также информацию, которая может быть использована для анализа эффективности функционирования службы. В дополнение к этому, описание службы предоставляет достаточно информации для того, чтобы при использовании данного изобретения можно было выделить и скоординировать ресурсы, требуемые для обеспечения установки службы.
Описание системы и описание экземпляра включает в себя элементы и каналы, которые в общих чертах характеризуют службу. Описание экземпляра формируется компонентом 216 определения ресурсов, чтобы объединить элементы и каналы, которые в общих чертах характеризуют службу, в том виде, как они включены в принятое описание службы, а также ресурсы, которые определены как необходимые для конкретного экземпляра устанавливаемой службы. Описание взаимосвязи между различными элементами и различными каналами представляет собой топологию службы. Топология описывает конечные точки, через которые каналы соединяют различные элементы. Если каналы или элементы изменяются, топология для службы также изменяется. Топология службы включает в себя информацию, относящуюся к сопрягаемости элементов, необходимой для правильного функционирования службы, созданию соединений между входными конечными точками элементов и входным интерфейсом службы, созданию соединений между выходными конечными точками элементов и подчиненными объектами службы, минимальному числу копий каждого элемента, которое необходимо, рекомендациям по обслуживанию, которое должно проводиться, чтобы избежать прерывания в предоставлении службы, описаниям параметров эффективности функционирования, которые могут быть использованы для оценки эффективности функционирования службы, сведениям о родственности правил, которые информируют средство 250 установки о правильной постановке в соответствие, и сведениям о распространении параметров конфигурации между элементами.
Каналы, включенные в состав описания системы, которое помогает определить топологию, могут иметь различный вид. Канал может представлять собой любое из следующего: канал регулирования загрузки, канал коммутации с учетом состояния и канал коммутации без учета состояния. Канал регулирования загрузки соединяет одну выходную конечную точку со стороны исходного элемента с входной конечной точкой целевого элемента. Трафик от исходного элемента перераспределяется в один из целевых элементов в соответствии некоторой политикой, связанной с каналом. Примеры политик, которые могут определять распределение графика, включают в себя, не подразумевая под этим ограничения, равномерное распределение, создание соединений с наименьшими затратами, создание соединений с учетом родственности, либо любую другую схему распределения, которая облегчает соединение двух элементов. Канал регулирования загрузки имеет емкость, позволяющую работать с любым числом входных конечных точек и выходных конечных точек. Исходным элементам будет необходимо всего лишь включить в себя информацию о виртуальном адресе, связанном со средством регулирования загрузки, находящимся в канале регулирования загрузки. После чего средство регулирования загрузки будет перераспределять соединение по множеству целевых элементов вне зависимости от числа этих элементов.
Примерный канал регулирования загрузки, соответствующий одному из вариантов реализации настоящего изобретения, показан в структурной схеме на Фиг. 6 и в общем обозначен ссылочным номером 610. Предполагается, что множество исходных элементов 620, 622 и 624 устанавливают соединение по каналу регулирования загрузки с множеством целевых элементов 630 и 632. Однако упомянутое множество исходных элементов 620, 622 и 624 не обладает необходимой информацией для установления прямого соединения с целевыми элементами 630 и 632. Вместо этого исходные элементы 620, 622 и 624 имеют виртуальный адрес, указывающий на средство 610 регулирования загрузки. Поэтому исходные элементы 620, 622 и 624 соединяются со средством 610 регулирования загрузки. После чего средство 610 регулирования загрузки перераспределяет соединения в целевые элементы 630 и 632, исходя из политики, назначенной этому конкретному каналу регулирования загрузки.
Вторым типом канала является канал коммутации с учетом состояния. Канал коммутации с учетом состояния связан с m различных адресов, где m число экземпляров целевого элемента. Когда используется канал коммутации с учетом состояния, исходному элементу известно о числе m целевых элементов. В этом случае исходный элемент выбирает один из m экземпляров целевых элементов, с которым нужно соединиться. Таким образом, исходные элементы содержат указание на то, с каким экземпляром из m нужно соединиться. Маршрутизатор, находящийся в канале, затем направляет соединение в соответствующий целевой элемент. Примерный (но не накладывающий ограничений) вариант реализации настоящего изобретения предусматривает хранение в исходных элементах m адресов в конфигурации каждого из экземпляров исходного элемента и содержание в нем выбранного адреса m, связанного с соединением с запрошенной целью. Затем маршрутизатор, находящийся в канале коммутации с учетом состояния, направляет соединение в соответствующий целевой элемент.
Примерный канал коммутации с учетом состояния показан в структурной схеме на Фиг. 7. Канал содержит маршрутизатор 710, множество исходных элементов 720, 722 и 724, а также множество целевых элементов 730 и 732. Каждому из исходных элементов 720, 722 и 724 известно о двух целевых элементах 730 и 732. Таким образом, каждый из исходных элементов 720, 722 и 724 выбирает свое соединение с одним или более конкретных целевых элементов. Указание соединения направляется в маршрутизатор 710, который распределяет соединение в соответствующий целевой элемент (целевые элементы) 730 и/или 732.
Третий тип канала, канал коммутации без учета состояния, требует от исходного элемента выбрать целевой элемент. В отличие от канала коммутации с учетом состояния, канал коммутации без учета состояния не требует от исходного элемента конфигурации адреса целевого элемента. Таким образом, канал коммутации без учета состояния предусматривает следующее: исходный элемент определяет, что требуется соединение с целевым элементом, но выбранный целевой элемент не идентифицирован в указании соединения. Маршрутизатор, находящийся в канале коммутации без учета состояния, соединяет исходный элемент с целевыми элементами, исходя из протокола связи, инструкции, предоставленной другим элементом, либо другим средством распределения.
Примерный канал коммутации без учета состояния показан в структурной схеме на Фиг. 8. Канал коммутации без учета состояния содержит маршрутизатор 810 и исходные элементы 820, 822 и 824, а также целевые элементы 830 и 832. Каждому из исходных элементов 820, 822 и 824 известно о двух целевых элементах 830 и 832. Соединение от этих исходных элементов 820, 822 и 824 не включает в себя указаний распределения для маршрутизатора 810, чтобы распределить соединение к идентифицированным целевым элементам 830 или 832. Вместо этого, в данном примерном варианте реализации настоящего изобретения маршрутизатор 810 распределяет соединения, исходя из данных, принятых от альтернативного канала. Как результат, соединения исходных элементов 820, 822 и 824 с целевыми элементами 830 и 832 устанавливаются, исходя из указаний по распределению, принятых маршрутизатором 810.
Специалисту в данной области техники будет понятно и очевидно, что варианты реализации настоящего изобретения, изображенные на Фиг. 6, Фиг. 7 и Фиг. 8, по своей природе являются примерными и не подразумевают ограничения числа исходных элементов, целевых элементов, каналов, соединяющих элементы, либо соединений, установленных внутри каждого канала.
Описание службы, в дополнение к включению в него топологии службы, может также содержать параметры конфигурации и ссылки на ресурсы. Параметры конфигурации включают в себя параметры конфигурации приложения и параметры конфигурации системы. Параметры конфигурации приложения являются частью определения элемента, и поэтому неотъемлемыми свойствами семантики и поведения элемента являются декларирование и вытекающая из этого интерпретация конфигурации приложения. Параметры конфигурации приложения в элементе могут быть специфическими для экземпляра или общими. Общий параметр используется совместно всеми экземплярами элемента. Параметр, специфический для экземпляра, может иметь различные значения для каждого уникального экземпляра элемента.
Вторым типом параметра конфигурации является параметр конфигурации системы. Параметры конфигурации системы представляют собой свойства внедрения или инкорпорирования элемента в группу правил. В отличие от параметров конфигурации приложения, которые являются неотъемлемой частью определения элемента, параметры конфигурации системы интерпретируются и используются вычислительной платформой. Назначением параметров конфигурации системы управляет вычислительная платформа, которая работает в пределах политик, назначенных этому параметру конфигурации системы.
В описание службы также могут быть включены ссылки на ресурсы. Ссылки на ресурсы указывают на необходимость обращения к некоторым ресурсам, предоставляемым вычислительной платформой. Типы доступных ресурсов диктуются вычислительной платформой. Примеры ресурсов включают в себя локальное пространство файловой системы, соответствующее интерфейсу конкретной программы-приложения, например, ресурсы файлов, каталогов и приводов. В дополнение к этому, примерами ресурсов, которые делает доступными вычислительная платформа, являются потоки, связанные с регистрацией, и счетчики событий.
Как показано на Фиг. 2, средство 240 создания экземпляров включает в себя компонент 216 определения ресурсов. Назначением средства 240 создания экземпляров является создание службы для ее установки, исходя из описания службы и описания экземпляра. Средство создания экземпляров обеспечивает выделение экземпляров службы средству 250 установки для установки при помощи компонента 220 установки и компонента 218 постановки ресурсов в соответствие. Средство 240 создания экземпляров использует ресурсы, которые определены для экземпляра устанавливаемой службы, а также описание службы, чтобы сформировать описание экземпляра, делающее возможным либо первоначальную установку службы, либо постепенную установку службы. Вне зависимости от того, является ли установка первоначальной или постепенной, средство 240 создания экземпляров определяет доступность службы. Средство 240 создания экземпляров использует компонент 216 определения ресурсов, чтобы определить ресурсы, требуемые для установки службы, а также ресурсы, доступные для установки службы, в соответствии с соглашением со средством 250 установки. Компонент 216 определения ресурсов оценивает описание службы и определяет то, каким образом должна быть сконфигурирована служба, чтобы ее масштабировать с целью обеспечения ее емкости, достаточной для соответствия текущей потребности в этой службе. Чтобы сконфигурировать службу для масштабированной установки, компонент определения ресурсов оценивает (отчасти) ресурсы, требуемые для соответствия экземпляра потребностям в службе. Затем компонент 216 определения ресурсов формирует описание экземпляра, исходя из определения этим компонентом ресурсов, требуемых и доступных для обеспечения достаточной емкости службы.
Средство 250 установки принимает описание экземпляра, предоставленное средством 240 создания экземпляров. Средство 250 установки использует компонент 218 постановки ресурсов в соответствие, чтобы поставить в соответствие требуемые ресурсы, подробно указанные в описании службы, физическим устройствам и соответствующим параметрам связности этих устройств. Примеры физических устройств, которым могут быть поставлены в соответствие ресурсы, включают в себя, не подразумевая под этим ограничения, вычислительное устройство 100, показанное на Фиг. 1. В дополнение к этому, и в подтверждение характеристики вычислительного устройства 100, показанного на Фиг. 1, физические устройства, которым могут быть поставлены в соответствие ресурсы, представляют собой устройства, в типичном случае связанные с центрами обработки данных, которые включают в себя, только в качестве примера, коммутаторы, серверы, стойки, маршрутизаторы, виртуальные вычислительные устройства, удаленные вычислительные устройства, вычислительные устройства с одноранговым соединением, выделенные вычислительные устройства и назначаемые вычислительные устройства. Специалистам в данной области техники будет понятно и очевидно, что перечисленные физические устройства, как предполагается, не ограничивают диапазон физических устройств, которым могут быть поставлены в соответствие требуемые ресурсы, указанные в описании службы. Параметры связности для физического устройства могут включать в себя IP-адрес физического устройства или другой протокол идентификации.
Компонент 220 установки устанавливает службу. Чтобы установить службу, которая описана в описании экземпляра, сформированном компонентом 216 определения ресурсов, компонент 220 установки использует постановку в соответствие друг другу требуемых и доступных ресурсов, которая выполнена компонентом 218 постановки ресурсов в соответствие. Чтобы установить службу, средство 240 создания экземпляров и средство 250 установки используют компоненты масштабируемой вычислительной платформы 200. Цикл, определенный действиями средства 240 создания экземпляров и средства 250 установки, повторяется с каждым новым экземпляром службы. Каждый новый экземпляр службы использует различные компоненты масштабируемой вычислительной платформы 200 множеством способов, чтобы эффективным образом предоставить службу с требуемой емкостью этой службы, и не допуская перерывов в ее предоставлении.
Теперь обратимся к Фиг. 3, на которой показана блок-схема примерного способа 300, обеспечивающего работу масштабируемой вычислительной платформы, согласно одному из вариантов реализации настоящего изобретения. Сначала, как показано в блоке 310, принимается первоначальный запрос на предоставление службы. Первоначальный запрос на предоставление службы включает в себя контракт на службу и описание службы. В контракте на службу в общих чертах указан диапазон устанавливаемой службы. Диапазон включает в себя требования, пределы и ограничения, которые будут учитываться в описании службы, и которым это описание будет следовать. Принятый запрос на предоставление службы может включать в себя описание службы, а также контракт на службу, либо запрос на предоставление службы может приниматься независимо от описания службы и контракта на службу. По сути, предполагается, что принимается любое из следующего: запрос на предоставление службы, контракт на службу и описание службы, и все их комбинации. Как показано на чертеже, запрос на предоставление службы принимается в блоке 310, а описание службы принимается в блоке 315. Как только принято описание службы, как показано на чертеже, в блоке 320 определяются конфигурация и ресурсы, требуемые для функционирования службы, а также доступные ресурсы в блоке 325. После того, как определены ресурсы, требуемые для функционирования службы, та также ресурсы, доступные для установки службы, как показано на чертеже, в блоке 330 формируется описание экземпляра для службы. Как показано на чертеже, в блоке 340 требуемые ресурсы ставятся в соответствие доступным ресурсам. Постановка ресурсов в соответствие друг другу позволяет установить службу, описанную в описании службы, как показано на чертеже в блоке 350. После того, как служба установлена, в блоке 360, как показано на чертеже, генерируется и передается результат.
Как показано на чертеже, если в блоке 384 принят дополнительный запрос на предоставление службы, то при выполнении способа происходит возврат к формированию описания экземпляра в блоке 330. Если дополнительный запрос не принимается, происходит ожидание возможного повторного формирования описания экземпляра. На чертеже это показано в блоке 382.
При каждом дополнительном запросе на предоставление службы устанавливается новый экземпляр службы. Повторное формирование описания экземпляра после приема дополнительного запроса позволяет масштабируемой вычислительной платформе учитывать изменения в требуемых ресурсах для описания экземпляра, а также изменения в доступных для установки ресурсах. В дополнение к этому, повторное формирование описания экземпляра делает возможным внесение вместе с каждым новым экземпляром службы усовершенствований, новых требований, изменений в эффективности функционирования, а также делает возможным обслуживание. Это позволяет масштабируемой вычислительной платформе обеспечить неоднократную установку службы с одновременным масштабированием установки и включением в себя элементов нового описания экземпляра.
Теперь обратимся к Фиг. 4, на которой приведена схема жизненного цикла описания службы при прохождении через различные узлы, в общем обозначенная ссылочным номером 400. Фаза 410 разработки включает в себя прием запроса на предоставление новой службы или на усовершенствование существующей службы. Во время фазы 410, реализуемой средством разработки, могут также вводиться новые требования. Чтобы определить службу, запрос на предоставление новой службы, запрос на усовершенствование и новые требования включаются в описание службы, выполненное средством разработки. Описание службы, выполненное средством разработки, направляется в фазу 420, реализуемую узлом создания экземпляров, где определяются требуемые ресурсы и доступные ресурсы, и описание службы, выполненное средством разработки, изменяется для того, чтобы оно стало описанием экземпляра. Описание экземпляра направляется в фазу 430, реализуемую узлом установки. Служба, в общих чертах определенная описанием экземпляра, устанавливается. Получают информацию, относящуюся к мониторингу, а также изменения в центре обработки данных, например, информацию о физическом устройстве. После чего информация, относящаяся к мониторингу, изменения в центре обработки данных и статус установки передаются в узел создания экземпляров и средство разработки для включения в их соответствующие описания экземпляров для более позднего экземпляра службы.
Теперь обратимся к Фиг. 5, на которой графически представлена примерная топология, в общем обозначенная ссылочным номером 500. Как ранее рассмотрено со ссылкой на Фиг. 2, топология обеспечивает описание взаимосвязи между различными элементами и различными каналами службы. Топология 500 включает в себя элементы и их соответствующие конфигурационные значения, которые обозначены ссылочными номерами 502, 504, 508, 510, 512, 516 и 518. В дополнение к этому, ссылочными номерами 506 и 514 обозначен канал. Из топологии 500 видно, что элементы, имеющие ссылочные номера 502 и 504, соединены с элементами, имеющими ссылочные номера 508, 510 и 512. Между двумя наборами элементов находится канал, указанный ссылочным номером 506. Канал распределяет соединение в соответствующие входные конечные точки элементов, имеющих номера 508, 510 и 512. Эти элементы соединены своими выходными конечными точками с каналом, имеющим номер 514. Таким образом, канал 514 распределяет соединения в элементы, обозначенные ссылочными номерами 516 и 518. Полученная в результате топология 500 включается в описание службы, чтобы в общих чертах охарактеризовать элементы, каналы и конфигурационные значения для этой службы.
Обратимся теперь к Фиг. 9, на которой приведена блок-схема процесса установки службы, в общем обозначенного ссылочным номером 900. Процесс 900 установки службы начинается с запроса на предоставление новой службы, который приводит к созданию службы, как обозначено ссылочным номером 910. Служба устанавливается, как обозначено ссылочным номером 920, в виде первого экземпляра 930 службы. Жизненный цикл службы продолжается, как описано со ссылкой на Фиг. 3 и 4. Описание службы изменяется с каждым ее экземпляром. Принимается второй запрос на предоставление службы, и она устанавливается, как указано ссылочным номером 940, в виде второго экземпляра 950 службы. Цикл продолжается для n экземпляров службы, последний из которых (n-ый) обозначен ссылочным номером 960. После n-го экземпляра службы служба удаляется из масштабируемой вычислительной платформы, как указано ссылочным номером 970.
Как можно видеть, варианты реализации настоящего изобретения относятся к системам, способам и компьютерному носителю информации, обеспечивающим работу масштабируемой вычислительной платформы. Принимают описание службы, описывающее запрошенную службу. После приема описания службы определяют требуемые ресурсы и доступные ресурсы. Формируют описание экземпляра. Ресурсы, требуемые для обеспечения установки службы, ставят в соответствие доступным ресурсам вычислительной платформы, в результате чего можно установить службу. Описание экземпляра корректируют при каждой установке службы, чтобы обеспечить надежную установку этой службы.
Настоящее изобретение описано применительно к конкретным вариантам его реализации, которые во всех их аспектах предполагаются иллюстративными, а не накладывающими ограничения. Альтернативные варианты реализации настоящего изобретения, не выходящие за пределы его объема, станут очевидными специалистам в данной области, имеющим обычную квалификацию, на которых это изобретение рассчитано.
На основе приведенного выше можно увидеть, что данное изобретение позволяет достичь всех указанных выше целей и решить все указанные выше задачи, а также обеспечить другие преимущества, которые очевидны и присущи упомянутым системе и способу. Понятно, что некоторые особенности и подкомбинации являются вопросом удобства и могут быть использованы без обращения к другим особенностям и подкомбинациям. Это предусмотрено в пунктах приложенной Формулы изобретения и не выходит за пределы их объема.