управление программами-компонентами в служебном приложении
Классы МПК: | G06F9/44 устройства для выполнения специальных программ |
Автор(ы): | БЕРНАБЬЮ-АУБАН Хосе (US), КХАЛИДИ Юсеф А. (US) |
Патентообладатель(и): | МАЙКРОСОФТ КОРПОРЕЙШН (US) |
Приоритеты: |
подача заявки:
2009-01-07 публикация патента:
10.07.2013 |
Изобретение относится к области управления программами-компонентами в служебном приложении. Техническим результатом является автоматическое управление программами-компонентами в служебном приложении согласно модели обслуживания. Раскрыты способы, системы и компьютерные носители хранения информации, имеющие машиноисполняемые инструкции, реализованные на них, которые, когда исполняются, выполняют способы в соответствии с вариантами осуществления изобретения для управления программами-компонентами в служебном приложении согласно модели обслуживания. Сначала настройки конфигурации, которые могут быть применяться к программам-компонентам, извлекаются из модели обслуживания. Процесс реализации инициируется, чтобы управлять служебным приложением в соответствии с изменениями в уровне нагрузки на служебное приложение и/или в спецификациях в модели обслуживания. Процесс реализации включает в себя этапы, на которых развертывают или идентифицируют как доступные программы-компоненты в центре обработки данных и автоматически распространяют формализованные значения, полученные из настроек конфигурации по развернутым программам-компонентам. Эти полученные формализованные значения устанавливаются в программы-компоненты, таким образом, обеспечивая функциональность служебного приложения, согласующуюся с моделью обслуживания. 3 н. и 17 з.п. ф-лы, 6 ил.
Формула изобретения
1. Один или более компьютерных носителей информации, имеющих машиноисполняемые инструкции, реализованные на них, которые, когда исполняются, выполняют способ управления одной или более программами-компонентами в служебном приложении согласно модели обслуживания, причем способ содержит этапы, на которых:
определяют (305) уровень нагрузки на служебное приложение, при этом служебное приложение содержит одну или более программ-компонентов, которые являются выполняемыми на отдельных вычислительных устройствах в центре обработки данных;
извлекают (310) из модели обслуживания настройки конфигурации, которые могут применяться к одной или более программ-компонентов;
инициируют (315) процесс реализации для управления служебным приложением в соответствии с уровнем нагрузки, процесс реализации содержит:
(1) развертывание (320) одной или более программ-компонентов в центре обработки данных; и
(2) автоматическое распространение (330) формализованных значений, полученных из настроек конфигурации, по одной или более развернутым программам-компонентам; и
по меньшей мере, временно сохраняют (335) формализованные значения в одной или более программах-компонентах, таким образом, обеспечивая функциональность служебного приложения, согласующуюся с моделью обслуживания.
2. Один или более компьютерных носителей информации по п.1, причем этап определения уровня нагрузки содержит наблюдение за трафиком на веб-сайте, размещающем служебное приложение.
3. Один или более компьютерных носителей информации по п.1, в котором служебное приложение содержит программное обеспечение, находящееся в центре обработки данных, поддерживаемом поставщиком услуг аренды приложений, доступным клиенту через приложение веб-браузера.
4. Один или более компьютерных носителей информации по п.3, причем модель обслуживания формируется, частично, согласно соглашению с описанием сервиса, установленному между провайдером услуги аренды приложений и клиентом.
5. Один или более компьютерных носителей информации по п.1, дополнительно содержащий выполнение служебного приложения согласно установленным формализованным значениям.
6. Один или более компьютерных носителей информации по п.1, при этом процесс реализации дополнительно содержит:
определение состояния каждой из одной или более развернутых программ-компонентов;
осуществление доступа к карте преобразования, при этом карта преобразования включает в себя логику для выражения настроек конфигурации в качестве формализованных значений, которые соответствуют состоянию каждой из одной или более программ-компонентов; и
получают формализованные значения из настроек конфигурации согласно логике карты преобразования.
7. Компьютерная система для выполнения способа реализации служебного приложения посредством распространения настроек конфигурации одной или более программам-компонентам, таким образом, поддерживая функциональность служебного приложения, причем компьютерная система содержит:
первое вычислительное устройство (255), чтобы выполнять одну или более программ-компонентов, которые поддерживают работу служебного приложения; и
второе вычислительное устройство (265), чтобы инициировать процесс реализации для осуществления служебного приложения согласно модели обслуживания, процесс реализации содержит:
(1) извлечение конфигурационных параметров из спецификаций в модели обслуживания;
(2) идентификацию одной или более программ-компонентов, находящихся на первом вычислительном устройстве, как доступных для реализации;
(3) запрашивание параметров в одной или более программах-компонентах, чтобы устанавливать, совместимы ли некоторые из одной или более программ-компонентов с настройками конфигурации;
(4) автоматическое распространение формализованных значений, полученных из настроек конфигурации, по одной или более совместимым программам-компонентам; и
(5) конфигурирование параметров одной или более совместимых программ-компонентов согласно формализованным значениям.
8. Компьютерная система по п.7, в которой процесс реализации дополнительно содержит:
прием указаний об исправлении в спецификациях модели обслуживания; и
извлечение обновленных настроек конфигурации из исправленных спецификаций.
9. Компьютерная система по п.8, в которой одна или более программ-компонентов, находящихся на первом вычислительном устройстве, разрабатываются согласно набору правил, которые разрешают параметрам переконфигурироваться автоматически при приеме формализованных значений из обновленных настроек конфигурации.
10. Компьютерная система по п.7, в которой второе вычислительное устройство дополнительно сконфигурировано, чтобы выполнять одну или более программ-компонентов, которые поддерживают работу служебного приложения.
11. Компьютерная система по п.10, в которой настройки конфигурации включают в себя адреса компонентов, адреса компонентов разрешают одной или более программам-компонентам, находящимся на первом вычислительном устройстве, координировать действия с одной или более программами-компонентами, находящимися на втором вычислительном устройстве.
12. Компьютерная система по п.7, в которой настройки конфигурации включают в себя идентификаторы алгоритмов, идентификаторы алгоритмов инструктируют одну или более программ-компонентов запускать конкретный алгоритм, таким образом, воздействуя на выполнение служебного приложения.
13. Компьютерная система по п.7, дополнительно содержащая набор зависимых служб, чтобы поддерживать работу служебного приложения, служебное приложение управляется поставщиком услуг аренды приложений, а набор зависимых служб управляется, по меньшей мере, одним объектом, отдельным от поставщика услуг аренды приложений.
14. Компьютерная система по п.13, в которой настройки конфигурации включают в себя местоположения ресурсов, местоположения ресурсов разрешают одной или более программам-компонентам координировать действия с набором зависимых служб, расположенных внешне относительно первого вычислительного устройства и второго вычислительного устройства.
15. Компьютерная система по п.14, в которой координирующие действия содержат:
обмен сообщениями между набором зависимых служб и одной или более программами-компонентами; и
сравнение переданных сообщений с формализованными значениями, установленными в параметрах одной или более совместимых программ-компонентов.
16. Компьютерная система по п.15, в которой формализованные значения включают в себя ожидаемые значения, а передаваемые сообщения включают в себя предоставленные пользователем регистрационные данные, при этом, при реализации, одна или более программ-компонентов сконфигурированы, чтобы позволять пользователю доступ к служебному приложению при совпадении предоставленных пользователем регистрационных данных с соответствующим ожидаемым значением из ожидаемых значений.
17. Компьютерная система по п.7, в которой процесс реализации дополнительно содержит:
осуществление доступа к структурной карте из одной или более совместимых программ-компонентов, при этом структурная карта включает в себя логику для определения местонахождения параметров в одной или более совместимых программах-компонентах; и
направление формализованных значений, полученных из настроек конфигурации, в соответствующие параметры согласно логике структурной карты.
18. Компьютерная система по п.7, в которой первое вычислительное устройство и второе вычислительное устройство содержат центр обработки данных, при этом центр обработки данных включает в себя ресурсы памяти, которые хранят данные, при этом данные в ресурсах памяти доступны одной или более программам-компонентам.
19. Компьютерная система по п.18, в которой настройки конфигурации включают в себя адреса ресурсов памяти, адреса ресурсов памяти разрешают одной или более программам-компонентам определять местоположение соответствующих ресурсов памяти для доступа к данным.
20. Компьютеризированный способ конфигурирования программ-компонентов служебного приложения, работающего в центре обработки данных, согласно схеме реализации, причем способ содержит этапы, на которых:
определяют (310) настройки конфигурации, запрашивая модель обслуживания;
осуществляют доступ (315) к схеме реализации, при этом схема реализации указывает, какие программы-компоненты развертывать для того, чтобы удовлетворять модели обслуживания, и при этом схема реализации предоставляет карту преобразования;
развертывают (320) указанные программы-компоненты на множестве вычислительных устройств в центре обработки данных;
преобразуют (325) настройки конфигурации в формализованные значения на основе, частично, карты преобразования;
автоматически распределяют (330) формализованные значения в развернутые программы-компоненты; и
по меньшей мере, временно сохраняют (335) распределенные формализованные значения в ассоциации с развернутыми программами-компонентами.
Описание изобретения к патенту
УРОВЕНЬ ТЕХНИКИ
Типично, приложения программного обеспечения пишутся, чтобы допускать большую степень свободы в их конфигурировании. При усилении этой характеристики различные пользователи имеют возможность настраивать конкретное приложение программного обеспечения, чтобы оно выполнялось способом, который является специфичным для каждого из пользователей. Таким образом, такая свобода, объединенная в одном приложении программного обеспечения, позволяет приложению программного обеспечения выдавать различные результаты.
Этот тип приложения программного обеспечения используется поставщиками услуг аренды приложений (ASP), которые позволяют пользователям удаленно управлять приложением через Интернет. Так как приложение программного обеспечения включает в себя степени свободы, пользователь может предоставлять требования к производительности множеству ASP, чтобы вручную запрограммировать в приложение. Дополнительно большинство приложений программного обеспечения включают в себя отдельные базовые элементы, которые должны быть индивидуально идентифицированы и вручную запрограммированы, так что приложение программного обеспечения может выражать требования к производительности. Процесс ручного программирования базовых элементов согласно принятым требованиям к производительности является трудоемким и подверженным ошибкам процессом. Соответственно, этот специальный способ настройки приложения программного обеспечения вносит уязвимость в предоставление приложения программного обеспечения от множества ASP. Эти недостатки ручного программирования чрезмерно выходят на первый план, когда множество пользователей постоянно предлагают и изменяют свои соответствующие требования к производительности.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Данная сущность предусмотрена для того, чтобы в упрощенной форме представлять концепции, которые дополнительно описываются ниже в подробном описании. Эта сущность не предназначена для того, чтобы идентифицировать ключевые признаки или важнейшие признаки заявляемого предмета изобретения, а также не предназначена для того, чтобы быть использованной в качестве помощи при определении объема заявляемого изобретения.
Варианты осуществления настоящего изобретения предоставляют подход с моделированием обслуживания, который уменьшает недостатки ручного программирования, предоставляя структуру (например, схему реализации) для автоматического управления программами-компонентами в служебном приложении согласно модели обслуживания. Сначала обнаруживается триггер, чтобы реализовывать программы-компоненты в служебном приложении. В вариантах осуществления триггер основывается на указании изменения в уровне нагрузки на служебное приложение (например, посредством наблюдения за трафиком на веб-сайте, размещающем служебное приложение), или указании изменения в спецификациях модели обслуживания (например, посредством внесения изменений в соглашение с описанием сервиса, установленное между поставщиком услуг аренды приложений и клиентом).
В случае обнаружения триггера настройки конфигурации извлекаются из спецификаций модели обслуживания, где настройки конфигурации (например, адреса программ-компонентов, идентификаторы алгоритмов, местоположения служб, адреса ресурсов памяти и т.п.) используются, чтобы конфигурировать параметры в программах-компонентах. В одном примере программы-компоненты развертываются на различных вычислительных устройствах в центре обработки данных, который выполняет служебное приложение. В другом примере ранее установленные программы-компоненты, находящиеся на различных вычислительных устройствах, идентифицируются как доступные для реализации. Эти развернутые и/или идентифицированные программы-компоненты конфигурируются согласно процессу реализации, который включает в себя следующие логические этапы: осуществление доступа к картам (например, карте преобразования, структурной карте), получение формализованных значений из настроек конфигурации согласно карте преобразования, автоматическое распространение формализованных значений по программам-компонентам, определение местоположения параметров, соответствующих формализованным значениям, согласно структурной карте и установка формализованных значений в соответствующие параметры. Этот надежный процесс реализации конфигурирует программы-компоненты автоматически, таким образом, по существу, уменьшая недостатки (обсужденные выше), присущие ручному программированию.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Варианты осуществления настоящего изобретения описаны подробно ниже со ссылкой на присоединенные чертежи, на которых:
Фиг.1 является блок-схемой примерного вычислительного окружения, подходящего для использования в реализации вариантов осуществления настоящего изобретения;
Фиг.2 является блок-схемой примерной вычислительной системы, подходящей для использования в реализации вариантов осуществления настоящего изобретения;
Фиг.3 является блок-схемой, показывающей способ управления компонентами в служебном приложении согласно модели обслуживания в соответствии с вариантом осуществления настоящего изобретения;
Фиг.4 и 5 являются блок-схемами, показывающими способы установки формализованных значений в соответствующие параметры программ-компонентов; и
Фиг.6 является блок-схемой способа реагирования на событие запуска (триггер) в соответствии с вариантом осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
Предмет изучения вариантов осуществления настоящего изобретения описан со специфичностью в данном документе, чтобы удовлетворять установленным требованиям. Однако само описание не предназначено ограничивать рамки этого патента. Скорее, изобретатели предполагают, что заявленный предмет изучения может также быть осуществлен другими способами, чтобы включать в себя разные этапы или комбинации этапов, подобных описанным в этом документе, вместе с другими представленными или будущими технологиями. Более того, хотя термины "этап" и/или "блок" могут использоваться в данном документе, чтобы означать разные элементы использованных способов, термины не должны быть интерпретированы как предполагающие какой-либо индивидуальный порядок среди или между различными этапами, раскрытыми в данном документе, за исключением и, кроме того, когда порядок индивидуальных этапов описан явно.
Варианты осуществления настоящего изобретения относятся к способам, системам и компьютерным носителям хранения информации, имеющим машиноисполняемые инструкции, реализованные на них, которые, когда исполняются, выполняют способы в соответствии с вариантами осуществления изобретения для автоматического управления программами-компонентами в служебном приложении согласно модели обслуживания. Сначала обнаруживается триггер, чтобы реализовать программы-компоненты в служебном приложении. В вариантах осуществления триггер основывается на указании изменения в уровне нагрузки на служебное приложение (например, посредством наблюдения за трафиком на веб-сайте, размещающем служебное приложение), или указании изменения в спецификациях модели обслуживания (например, посредством внесения изменений в соглашение с описанием сервиса, установленное между поставщиком услуг аренды приложений и клиентом).
В случае обнаружения триггера настройки конфигурации извлекаются из спецификаций модели обслуживания, где настройки конфигурации (например, адреса программ-компонентов, идентификаторы алгоритмов, местоположения служб, адреса ресурсов памяти и т.п.) используются, чтобы конфигурировать параметры в программах-компонентах. В одном примере программы-компоненты развертываются на различных вычислительных устройствах в центре обработки данных, который выполняет служебное приложение. В другом примере ранее установленные программы-компоненты, находящиеся на различных вычислительных устройствах, идентифицируются как доступные для реализации. Эти развернутые и/или идентифицированные программы-компоненты конфигурируются согласно процессу реализации, который включает в себя следующие логические этапы: осуществление доступа к картам (например, карте преобразования, структурной карте), получение формализованных значений из настроек конфигурации согласно карте преобразования, автоматическое распространение формализованных значений по программам-компонентам, определение местоположения параметров, соответствующих формализованным значениям, согласно структурной карте и установка формализованных значений в соответствующие параметры.
Соответственно, в одном аспекте, варианты осуществления настоящего изобретения относятся к одному или более компьютерным носителям хранения информации, имеющим машиноисполняемые инструкции, реализованные на них, которые, когда исполняются, выполняют способы управления одной или более программами-компонентами в служебном приложении согласно модели обслуживания. Способ включает в себя определение уровня нагрузки на служебное приложение, где служебное приложение включает в себя программы-компоненты, которые имеют возможность выполняться на отдельных вычислительных устройствах в центре обработки данных, извлечение из модели обслуживания настроек конфигурации, которые могут применяться к программам-компонентам, и инициирование процесса реализации для управления служебным приложением в соответствии с уровнем нагрузки. Процесс реализации включает в себя развертывание программ-компонентов в центре обработки данных, автоматическое распространение формализованных значений, полученных из настроек конфигурации, по развернутым программам-компонентам и, по меньшей мере, временная установка формализованных значений в программы-компоненты, таким образом, обеспечивая функциональность служебного приложения, согласующуюся с моделью обслуживания. В вариантах осуществления способ дополнительно включает в себя выполнение служебного приложения согласно установленным формализованным значениям.
В другом аспекте, варианты осуществления настоящего изобретения относятся к компьютерной системе, осуществленной на одном или более компьютерных носителях хранения информации, имеющих машиноисполняемые инструкции, реализованные на них, для выполнения способа реализации служебного приложения посредством распространения настроек конфигурации на программы-компоненты, таким образом, обеспечивая функциональность служебного приложения. Компьютерная система включает в себя первое вычислительное устройство и второе вычислительное устройство. Первое вычислительное устройство выполняет программы-компоненты, которые поддерживают работу служебного приложения. Второе вычислительное устройство инициирует процесс реализации для осуществления служебного приложения согласно модели обслуживания. Процесс реализации включает в себя извлечение настроек конфигурации из спецификаций в модели обслуживания, идентификацию программ-компонентов, находящихся на первом вычислительном устройстве, как доступных для реализации, запрос параметров в программах-компонентах, чтобы устанавливать, совместимы ли некоторые из программ-компонентов с настройками конфигурации, автоматическое распространение формализованных значений, полученных из настроек конфигурации, по совместимым программам-компонентам, и конфигурирование параметров совместимых программ-компонентов согласно формализованным значениям.
В еще одном аспекте, варианты осуществления настоящего изобретения относятся к компьютеризированному способу конфигурирования программ-компонентов служебного приложения, работающего в центре обработки данных, согласно схеме реализации. Компьютеризированный способ включает в себя, по меньшей мере, следующие этапы: определение настроек конфигурации посредством запроса модели обслуживания; осуществление доступа к схеме реализации, где схема реализации указывает, какие программы-компоненты развертывать для того, чтобы удовлетворять модели обслуживания, и где схема реализации предоставляет карту преобразования; развертывание указанных программ-компонентов на множестве вычислительных устройств в центре обработки информации; преобразование настроек конфигурации в формализованные значения на основе, частично, карты преобразования; автоматическое распространение формализованных значений в развернутые программы-компоненты; и, по меньшей мере, временное хранение распространенных формализованных значений в ассоциации с развернутыми программами-компонентами.
Имея описанные в нескольких словах общие сведения о вариантах осуществления настоящего изобретения, ниже описывается примерное операционное окружение, подходящее для реализации вариантов осуществления настоящего изобретения.
Обращаясь к чертежам в целом и первоначально к Фиг.1, в частности, примерное операционное окружение для реализации вариантов осуществления настоящего изобретения показано и обозначено в целом как вычислительное устройство 100. Вычислительное устройство 100 является только одним примером подходящего вычислительного окружения и не предназначено для того, чтобы предлагать какое-либо ограничение на область использования или функциональность вариантов осуществления настоящего изобретения. Вычислительное окружение 100 ни при каких условиях не должно интерпретироваться как имеющее какую-либо зависимость или требование, связанное с каким-либо одним или комбинацией иллюстрированных компонентов.
Варианты осуществления настоящего изобретения могут быть описаны в общем контексте компьютерного кода или машиноиспользуемых инструкций, включающих в себя машиноисполняемые инструкции, такие как программные компоненты, выполняемые компьютером или другой машиной, такой как персональный помощник данных или другое карманное устройство.
Как правило, программные компоненты, включающие в себя процедуры, программы, объекты, компоненты, структуры данных и т.п., ссылаются на код, который выполняет отдельные задачи или реализует отдельные абстрактные типы данных. Варианты осуществления настоящего изобретения могут быть применены на практике во множестве системных конфигураций, включающих в себя карманные устройства, бытовую электронную аппаратуру, компьютеры общего назначения, более специализированные вычислительные устройства и т.д. Варианты осуществления изобретения могут также быть применены на практике в распределенных вычислительных окружениях, где задачи выполняются удаленными устройствами обработки, которые связаны через сеть передачи данных. Продолжая ссылаться на Фиг.1, вычислительное устройство 100 включает в себя шину 110, которая непосредственно или косвенно связывает следующие устройства: память 112, один или более процессоров 114, один или более компонентов 116 представления, порты 118 ввода/вывода (I/O), компоненты 120 ввода/вывода и иллюстративный источник 122 питания. Шина 110 представляет, что могут быть одна или более шин (такие как адресная шина, шина данных или их комбинация). Хотя различные блоки на Фиг.1 показаны с помощью линий ради ясности, фактически, изображение различных компонентов не такое ясное, и, образно говоря, более точно линии должны быть серыми и нечеткими. Например, можно считать, что компонент представления, такой как устройство отображения, должен быть компонентом ввода/вывода. Также процессоры имеют память. Изобретатели данного изобретения признают, что такова природа области техники, и повторяют, что схема на Фиг.1 является просто иллюстрирующей примерное вычислительное устройство, которое может использоваться в связи с одним или более вариантами осуществления настоящего изобретения. Не делается различия между такими категориями как "рабочая станция", "сервер", "переносной компьютер", "карманное устройство" и т.д., так как все рассматриваются в рамках Фиг.1 и относительно "компьютера" или "вычислительного устройства".
Вычислительное устройство 100 в типичном варианте включает в себя множество машиночитаемых носителей. В качестве примера, а не ограничения, машиночитаемые носители могут содержать: оперативное запоминающее устройство (RAM); постоянное запоминающее устройство (ROM); электрически-стираемое программируемое постоянное запоминающее устройство (EEPROM); флэш-память или другие технологии памяти; CDROM, цифровые многофункциональные диски (DVD) или другие оптические или голографические носители; магнитные кассеты, магнитную ленту, накопитель на магнитном диске или другие магнитные устройства хранения, или любой другой носитель, который может быть использован, чтобы закодировать желаемую информацию, и быть доступным посредством вычислительного устройства 100.
Память 112 включает в себя компьютерные носители хранения в форме энергозависимой и/или энергонезависимой памяти. Запоминающее устройство может быть съемным, несъемным или комбинацией означенного. Примерные аппаратные устройства включают в себя полупроводниковое запоминающее устройство, жесткие диски, накопители на оптических дисках и т.д. Вычислительное устройство 100 включает в себя один или более процессоров, которые считывают данные из различных объектов, таких как запоминающее устройство 112 или компоненты 120 ввода-вывода. Компонент(ы) 116 представления представляют индикаторы данных пользователю или в другое устройство. Примерные компоненты представления включают в себя устройство отображения, динамик, печатающий компонент, вибрирующий компонент и т.д. Порты 118 ввода/вывода позволяют вычислительному устройству 100 быть логически связанным с другими устройствами, включающими в себя компоненты 120 ввода/вывода, некоторые из которых могут быть встроенными. Иллюстративные компоненты включают в себя микрофон, джойстик, игровую панель, спутниковую тарелку, сканер, принтер, беспроводное устройство и т.п.
Обращаясь теперь к Фиг.2, иллюстрируется блок-схема, в соответствии с вариантом осуществления настоящего изобретения, показывающая вычислительную систему 200, сконфигурированную, чтобы управлять программами-компонентами 201, 202, 203 и 204 в служебном приложении 210 согласно модели обслуживания. Будет понятно и оценено обычным специалистом в данной области техники, что вычислительная система 200, показанная на Фиг.2, является просто примером одного подходящего окружения вычислительной системы и не предназначена, чтобы накладывать какое-либо ограничение на рамки использования или функциональность вариантов осуществления настоящего изобретения. Вычислительная система 200 ни при каких условиях не должна интерпретироваться как имеющая какую-либо зависимость или требование, связанное с каким-либо одним или комбинацией иллюстрированных в данном документе компонентов. Кроме того, хотя различные блоки на Фиг.2 показаны с помощью линий ради ясности, фактически, изображение различных компонентов не такое ясное, и, метафорически, более точно линии должны быть серыми и нечеткими.
Вычислительная система 200 включает в себя клиентское вычислительное устройство 215, зависимых поставщиков 220 услуг и центр 225 обработки данных, все находятся на связи друг с другом через сеть (не показана). Сеть может включать в себя, без ограничения, одну или более локальных вычислительных сетей (LAN) и/или глобальных вычислительных сетей (WAN). Такие сетевые окружения являются обычными в офисах, корпоративных компьютерных сетях, сетях интранет и Интернете. Соответственно, сеть дополнительно не описывается в данном документе.
Каждое из клиентских вычислительных устройств 215, зависимые поставщики 220 услуг и центр 225 обработки данных, показанные на Фиг.2, могут иметь любой тип вычислительного устройства, такой как, например, вычислительное устройство 100, описанное выше со ссылкой на Фиг.1. Только в качестве примера, а не ограничения, каждое из клиентских вычислительных устройств 215 и зависимые поставщики 220 услуг могут быть персональным компьютером, настольным компьютером, переносным компьютером, карманным компьютером, мобильным телефоном, потребительским электронным устройством и т.п. В вариантах осуществления центр 225 обработки данных может быть сервером, набором вычислительных устройств или других машин, способных выполнять служебное приложение 210. Дополнительно, клиентское вычислительное устройство 215 может дополнительно включать в себя приложение 230 веб-браузера, находящееся на нем, чтобы осуществлять доступ к служебному приложению 210 через проводные или беспроводные каналы связи с центром 225 обработки данных. Следует отметить, однако, что варианты осуществления настоящего изобретения не ограничены осуществлением на таких вычислительных устройствах, и могут быть реализованы на любом из множества различных типов вычислительных устройств в рамках вариантов осуществления изобретения.
Как показано на Фиг.2, клиентское вычислительное устройство 215 сконфигурировано, чтобы выполнять приложение 230 веб-браузера для осуществления доступа к служебному приложению 210. Доступ к служебному приложению 210 может осуществляться, как правило, непосредственным образом, через канал 235 связи или посредством зависимых поставщиков 220 услуг. В вариантах осуществления доступ через зависимых поставщиков 220 услуг включает в себя передачу им предоставленных пользователем регистрационных данных. Типично, предоставленными пользователем регистрационными данными 240 являются данные для входа в систему, пароли или любая другая информация, предоставленная клиентом, чтобы удовлетворять протоколу безопасности, реализованному в зависимых поставщиках 220 услуг. В свою очередь, зависимые поставщики 220 услуг обмениваются регистрационными данными 240, в сообщениях 245, с одним или более компонентами 201, 202, 203 и 204.
В вариантах осуществления, зависимые поставщики 220 услуг расположены внешне по отношению к центру 225 обработки данных и управляются объектом, отдельным от поставщика услуг аренды приложений, который хранит служебное приложение 210. Однако зависимые поставщики 220 услуг способны координировать действия с программами-компонентами 201, 202, 203 и 204, обмениваясь между ними сообщениями 245. Координация действий между зависимыми поставщиками 220 услуг и программами-компонентами 201, 202, 203 и 204 обеспечивается механизмами указания местонахождения ресурсов этих намеченных зависимых поставщиков 220 услуг. Эти местоположения ресурсов типично устанавливаются согласно спецификациям в модели обслуживания.
Как правило, модель обслуживания - это проект интерфейса, который предоставляет инструкции для управления программами-компонентами 201, 202, 203 и 204 служебного приложения 210. Соответственно, модель обслуживания включает в себя спецификации, которые идентифицируют такие аспекты управления как-то: какие соответствия применять во время реализации; какие вычислительные устройства использовать во время распространения программ-компонентов 201, 202, 203 и 204; где каналы 246 и 247 связи между программами-компонентами 201, 202, 203 и 204 располагаются; и любую другую информацию, которая описывает конкретный способ, которым служебное приложение 210 будет выполняться центром 225 обработки данных. В одном примере модель обслуживания формируется, частично, по соглашению с описанием сервиса, установленному между клиентом и поставщиком услуг аренды приложений. Как результат соглашения с описанием сервиса, клиенту предоставляется доступ к служебному приложению 210 и другому программному обеспечению, хранимому поставщиком услуг аренды приложений.
Кроме того, модель обслуживания предоставляет ловушки в спецификациях, которые позволяют извлекать из нее скрытые и явные настройки конфигурации. В вариантах осуществления скрытые настройки конфигурации предоставляют структурную информацию (например, адреса компонентов, местоположения ресурсов и адреса ресурсов памяти), чтобы обеспечивать взаимодействие между каждой из программ-компонентов 201, 202, 203 и 204 и/или другими компонентами (например, зависимыми поставщиками 220 услуг, ресурсами 250 памяти). Дополнительно, скрытые настройки конфигурации предоставляют интерфейсы прикладного программирования (API) для использования и трансляции сообщений между вышеуказанными компонентами, таким образом, позволяя компонентам связываться гармонично. В вариантах осуществления явные настройки конфигурации предоставляют инструкции (например, идентификаторы алгоритмов и другие конфигурационные значения) параметрам в программах-компонентах 201, 202, 203 и 204, которые влияют на их функциональность. Только в качестве примера, указанные регистрационные данные для регистрации клиента в служебном приложении 210 фиксируются в модели обслуживания. Ловушки в модели обслуживания предоставляют эти регистрационные данные явным настройкам конфигурации, которые распространяют регистрационные данные компоненту 201 в качестве ожидаемых значений. Эти ожидаемые значения сравниваются с предоставленными пользователем регистрационными данными 240, которые передаются от зависимых поставщиков 220 услуг в сообщении 245. При приеме сообщения 245 компонент 201 сравнивает предоставленные пользователем регистрационные данные 240 с ожидаемыми значениями. Если сравнение заканчивается совпадением, клиенту предоставляется доступ к служебному приложению 210.
Центр 225 обработки данных предусмотрен для выполнения служебного приложения 210, среди прочего. Служебное приложение 210 включает в себя набор программ-компонентов 201, 202, 203 и 204, которые могут масштабироваться по использованию (например, числу нажатий клиентом на клавиши в час) или по исправлениям в модели обслуживания. Типично, служебное приложение 210 характеризуется тем, что состоит из многих различных компонентов (например, программ-компонентов 201, 202, 203 и 204), которые похожи на традиционные приложения. В примерном варианте осуществления служебное приложение 210 управляет различными компонентами так, что эти компоненты функционируют вместе как объединенная служба Интернета. В качестве примера, служебное приложение 210 является службой блога (дневника, который ведется он-лайн), которая позволяет множеству клиентов оставлять комментарии на конкретном веб-сайте. Так как потенциально могут быть тысячи клиентов, которые все осуществляют доступ к службе блога, множество компонентов разворачивается для этого службой блога, чтобы поддерживать ее непрерывную работу. Эти компоненты координируют действия друг с другом, чтобы функционировать как единое приложение, таким образом, развертывание и прекращение работы компонентов прозрачно для клиентов.
Хотя один пример служебного приложения 210 был показан и описан, должно быть понятно и оценено обычным специалистом в данной области техники, что множество служебных приложений может выполняться в центре 225 обработки данных и что варианты осуществления настоящего изобретения не ограничены этим показанным и описанным служебным приложением 210. В вариантах осуществления, имеющих более чем одно служебное приложение, служебное приложение 210 и другие служебные приложения (не показаны) могут работать независимо и/или совместно друг с другом. В одном примере служебные приложения, работающие одновременно в центре 225 обработки данных, совместно используют набор программ-компонентов 201, 202, 203 и 204. Только в качестве примера, набор программ-компонентов 201, 202, 203 и 204 может использоваться новым служебным приложением (например, повторно предоставляться согласно требованиям использования) или совместно использоваться между служебными приложениями (например, множеством служебных приложений, осуществляющих доступ к программному компоненту). Таким образом, ресурсы в центре 225 обработки данных, в вариантах осуществления, предоставлены для взаимодействия многих взаимозависимых, или независимых, служебных приложений.
В вариантах осуществления, центр 225 обработки данных включает в себя различные машины, такие как первое вычислительное устройство 255 и второе вычислительное устройство 265, и ресурсы 250 памяти. Вычислительные устройства 255 и 265 могут быть любым типом вычислительного устройства, таким как, например, вычислительное устройство 100 (см. Фиг.1), персональный компьютер, сервер, набор вычислительных устройств или другие машины, способные выполнять служебное приложение 210. Дополнительно, вычислительные устройства 255 и 265 способны хранить и выполнять программы-компоненты 201, 202, 203 и 204. Программы-компоненты 201, 202, 203 и 204 реализуют несколько компонентов из множества программ-компонентов, которые управляются служебным приложением 210. В вариантах осуществления программы-компоненты 201, 202, 203 и 204 разрабатываются, или пишутся, согласно спецификациям в модели обслуживания. В одном примере одна или более программ-компонентов 201, 202, 203 и 204 разрабатывается согласно набору правил в модели обслуживания, которые разрешают повторно конфигурировать параметры 270 автоматически при определении того, что произошло обновление в параметрах конфигурации. Хотя четыре программы-компоненты изображены на Фиг.2 и описаны в данном документе, варианты осуществления настоящего изобретения рассматривают использование любого числа программ-компонентов, чтобы поддерживать работу служебного приложения 210. В примерном варианте осуществления ряд программ-компонентов относится к уровню клиентской нагрузки на служебное приложение 210, где, чем выше поднимается уровень нагрузки, тем больше программ-компонентов, которые развертываются.
Параметры 270 типично находятся в программах-компонентах 201, 202, 203 и 204 или в элементах 266 и 275, находящихся в компонентах 201 и 204, соответственно. Как правило, параметры точно подстраивают решения, которые каждый из компонентов принимает внутренним образом, тем самым оптимизируя координированную производительность компонентов. Параметры 270 являются примерными по числу и природе. Т.е., хотя определенные параметры показаны в конкретных программах-компонентах или элементах, варианты осуществления настоящего изобретения предполагают от нуля до множества параметров, находящихся в любой из программ-компонентов или элементов.
Ресурсы 250 памяти типично находятся в центре 225 обработки данных и конфигурируются, чтобы хранить данные. В вариантах осуществления ресурсы 250 памяти доступны для поиска одного или более элементов данных, сохраненных в ассоциации с ними. Будет понятно и оценено обычными специалистами в данной области техники, что данные, сохраненные в хранилище 250 данных, могут быть конфигурируемыми и могут включать в себя любую информацию, относящуюся к выполнению служебного приложения 210. Содержимое и объем такой информации не предполагает ограничения рамок вариантов осуществления настоящего изобретения каким-либо образом. Кроме того, хотя иллюстрированы как единый, независимый компонент, ресурсы 250 памяти могут, в действительности, быть множеством хранилищ данных, например, кластером баз данных. Кроме того, данные, сохраненные в ресурсах 250 памяти, доступны программам-компонентам 201, 202, 203 и 204. В одном варианте осуществления настройки конфигурации снабжены адресами ресурсов памяти, которые разрешают одной или более программам-компонентам 201, 202, 203 и 204 определять местонахождение ресурсов 250 памяти, или другое подходящее распределение памяти, для того, чтобы обращаться к данным в них.
В работе, служебное приложение 210 сконфигурировано, чтобы управлять программами-компонентами 201, 202, 203 и 204. Один аспект управления предусматривает установку и конфигурирование программ-компонентов 201, 202, 203 и 204 при обнаружении события запуска. Событие запуска оповещает служебное приложение 210, чтобы реализовывать программы-компоненты 201, 202, 203 и 204 в служебном приложении при обнаружении события запуска. В вариантах осуществления триггер основывается на указании изменения в уровне нагрузки на служебное приложение 210 (например, посредством наблюдения за трафиком от одного или более клиентских вычислительных устройств 215), или указании изменения в спецификациях в модели обслуживания (посредством внесения изменений в соглашение с описанием сервиса, установленное между поставщиком услуг аренды приложений и клиентом), как более полно обсуждается ниже со ссылкой на Фиг.6.
В случае обнаружения триггера настройки 280 конфигурации извлекаются из спецификаций и/или ловушек модели обслуживания. В целом, настройки 280 конфигурации обеспечивают правильное управление служебным приложением 210. В вариантах осуществления, настройки 280 конфигурации могут быть скрытыми или явными настройками конфигурации, как более полно обсуждено выше. В отдельных случаях настройки 280 конфигурации включают в себя адреса программ-компонентов, идентификаторы алгоритмов, местоположения служб, адреса ресурсов памяти или любые другие строки данных, используемые, чтобы конфигурировать параметры в программах-компонентах.
В случае, или одновременно с, извлечения настроек 280 конфигурации, программы-компоненты 201, 202, 203 и 204 устанавливаются, чтобы соответствовать нагрузке, удовлетворять обновленной модели обслуживания или по любой другой причине, которая имеет отношение к работе служебного приложения 210. В одном примере, установка программ-компонентов 201, 202, 203 и 204 включает в себя развертывание программ-компонентов 201, 202, 203 и 204 на различных вычислительных устройствах 225 и 265 в центре 225 обработки данных.
В другом случае, установка программ-компонентов 201, 202, 203 и 204 включает в себя идентификацию в качестве доступных для реализации ранее установленных программ-компонентов, находящихся на различных вычислительных устройствах 255 и 256 и идентифицированных. Хотя два различных способа установки программ-компонентов 201, 202, 203 и 204 были показаны, должно быть понятно и оценено обычными специалистами в данной области техники, что могут быть использованы другие способы установки программ-компонентов 201, 202, 203 и 204, и что варианты осуществления настоящего изобретения не ограничены этими способами, показанными и описанными в данном документе. Эти развернутые и/или идентифицированные программы-компоненты 201, 202, 203 и 204 конфигурируются согласно процессу реализации, который включает в себя следующие логические этапы: осуществление доступа к картам (например, карте преобразования, структурной карте), получение формализованных значений 290 из настроек 280 конфигурации согласно карте преобразования, автоматическое распространение формализованных значений 290 по программам-компонентам 201, 202, 203 и 204, локализация параметров 270 в соответствии с формализованными значениями 290 согласно структурной карте и установка формализованных значений 290 в соответствующие параметры 270. В примерном варианте осуществления параметры 270 запрашиваются служебным приложением 210, чтобы определять, совместим ли каждый из компонентов 201, 202, 203 и 204 с настройками 280 конфигурации, перед установкой формализованных значений 290.
Обращаясь теперь к Фиг.3, иллюстрируется блок-схема, которая показывает общий способ 300 управления компонентами в служебном приложении согласно модели обслуживания в соответствии с вариантом осуществления настоящего изобретения. Сначала, как указано на этапе 305, указание (например, событие запуска) принимается в служебном приложении. События запуска обсуждаются более полно со ссылкой на Фиг.6. Типично указание уведомляет служебное приложение, что большее или меньшее число программ-компонентов должно быть установлено, чтобы поддерживать постоянную работу служебного приложения. В примерном варианте осуществления добавление и удаление программ-компонентов прозрачно для клиента, который в настоящее время осуществляет доступ к служебному приложению. Как указано на этапе 310, настройки конфигурации извлекаются из ловушек при запросе спецификаций в модели обслуживания. Как более полно обсуждалось выше, различные типы настроек конфигурации могут быть извлечены, например скрытые и явные настройки конфигурации.
Как указано на этапе 315, процесс реализации для управления служебным приложением, в соответствии с событиями запуска, инициируется. В вариантах осуществления процесс реализации включает в себя, по меньшей мере, следующие логические этапы: установка программ-компонентов; получение формализованных значений; автоматическое распространение формализованных значений; и установка формализованных значений. В частности, как указано на этапе 320, программы-компоненты устанавливаются посредством развертывания (например, формирования новых программ-компонентов) или идентификации в качестве доступных существующих программ-компонентов на машинах в центре обработки данных. В примерном варианте осуществления идентификации доступных существующих программ-компонентов параметры в существующих программах-компонентах запрашиваются, чтобы определять, совместимы ли они с настройками конфигурации. Соответственно, эти "совместимые" программы-компоненты принимают формализованные значения во время распространения.
В вариантах осуществления эти программы-компоненты расположены на одном или различных вычислительных устройствах в центре обработки данных. Этот стиль удаленного развертывания разрешается инструкциями (например, адресами компонентов), предоставленными устройствам-компонентам посредством настроек конфигурации. Кроме того, настройки конфигурации включают в себя инструкции для конфигурирования API в некоторых из программ-компонентов, таким образом, позволяя каждой программе-компоненту координироваться с другими типами и экземплярами программ-компонентов, ресурсами памяти и удаленными зависимыми поставщиками услуг (например, услуги, поддерживаемой партнерами по связи).
Как указано на этапе 325, формализованные значения получаются из настроек конфигурации. В вариантах осуществления формализованные значения получаются согласно карте преобразования, определенного состояния каждой из программ-компонентов или их комбинации. Эти формализованные значения автоматически распространяются в развернутые программы-компоненты, совместимые программы-компоненты или их комбинацию, как указано на этапе 330. Эти этапы (например, этапы 320, 325 и 330) могут быть взяты в любом порядке или параллельно. Как указано на этапе 335, формализованные значения устанавливаются в параметры программ-компонентов. В других вариантах осуществления формализованные значения временно сохраняются в ассоциации с соответствующим параметром. В случае установки параметров служебное приложение выполняется согласно формализованным значениям, как указано на этапе 340.
Обращаясь теперь к Фиг.4 и 5, иллюстрированы блок-схемы, показывающие способы 400 и 500 установки формализованных значений в соответствующие параметры программ-компонентов в соответствии с вариантом осуществления настоящего изобретения. Относительно Фиг.4, сначала служебное приложение осуществляет доступ к структурной карте, как указано на этапе 410. В других вариантах осуществления структурная карта доступна посредством настроек конфигурации или сохранена в них. Как указано на этапе 420, параметры в программах-компонентах обнаруживаются согласно логике в структурной карте. Соответственно, логика структурной карты помогает в направлении формализованных значений в соответствующие параметры, таким образом, содействуя правильной установке формализованных параметров, как указано на этапе 430.
Со ссылкой на Фиг.5, состояние каждой из установленных программ-компонентов устанавливается, как указано на этапе 510. В вариантах осуществления состояние, как правило, относится к экземпляру, или типу программы-компонента, или существующей конфигурации программы-компонента. Как указано на этапе 520, осуществляется доступ к карте преобразования. В примерном варианте осуществления карта преобразования включает в себя логику, которая обеспечивает выражение настроек конфигурации в качестве формализованных значений при входе в определенное состояние каждой из программ-компонентов. На основе логики получаются формализованные значения, которые соответствуют каждому экземпляру программы-компонента.
Фиг.6 является блок-схемой, показывающей способ 600 реагирования на событие запуска в соответствии с вариантом осуществления настоящего изобретения. Как указано на этапе 610, принимается указание изменений в соглашении с описанием сервиса. Как указано на этапе 620, выполняется определение того, влияют ли исправления на спецификации в модели обслуживания. Если определение указывает, что существенного влияния не оказывается, настоящая конфигурация программ-компонентов сохраняется, как указано на этапе 630. Как указано на этапе 640, наблюдается трафик в служебном приложении. Как указано на этапе 650, выполняется определение того, существует ли изменение в уровне нагрузки. Если определение указывает, что изменения нет, или значительная поправка в уровне нагрузки указывается, настоящая конфигурация программ-компонентов сохраняется, как указано на этапе 630.
Однако, если определения блоков 620 и 650 указывают, что событие запуска произошло (например, произошло существенное изменение в уровне нагрузки, или исправление в спецификации привело к существенному воздействию), обновленные настройки конфигурации обновляются согласно модели обслуживания, как указано на этапе 660. Использование модели обслуживания, чтобы создавать обновленные настройки конфигурации, обсуждается более полно выше со ссылкой на Фиг.2. Как указано на этапе 670, формализованные значения получаются из обновленных настроек конфигурации. Как указано на этапе 680, программы-компоненты переконфигурируются с помощью полученных формализованных значений. В вариантах осуществления переконфигурирование включает в себя этапы, перечисленные на Фиг.3.
Варианты осуществления настоящего изобретения были описаны относительно конкретных вариантов осуществления, которые предназначены во всех аспектах быть скорее иллюстративными, чем ограничивающими. Альтернативные варианты осуществления станут очевидны обычным специалистам в области техники, к которой принадлежат варианты осуществления настоящего изобретения, без отступления от его объема.
Из упомянутого выше будет видно, что это изобретение хорошо приспособлено, чтобы достичь всех результатов и задач, изложенных выше, вместе с другими преимуществами, которые очевидны и присущи системе и способу. Будет понятно, что определенные признаки и вспомогательные комбинации являются полезными и могут быть применены без ссылки на другие признаки и вспомогательные комбинации. Это рассматривается в объеме прилагаемой формулы.
Класс G06F9/44 устройства для выполнения специальных программ