МАСШТАБИРУЕМОЕ РАЗМЕЩЕНИЕ ПОЛЬЗОВАТЕЛЬСКИХ РЕШЕНИЙ

1. Система (100) для размещения прикладного программного обеспечения (304, 402), причем система (100) содержит
локальный сервер (204), причем локальный сервер (204) включает в себя внешний интерфейсный веб-модуль (302), который обрабатывает запрос от компьютера-клиента (102) через Интернет для размещения прикладного программного обеспечения (304, 402) на сервере (202, 204, 206), причем прикладное программное обеспечение (304, 402), адаптируемое к роду деятельности пользователя, при этом прикладное программное обеспечение (304, 402) выгружается на локальный сервер (202) через Интернет,
прикладное программное обеспечение (304, 402), включенное в модули пользовательского кода, которое может быть установлено на локальном сервере (202) или на удаленном сервере (204, 206),
один или несколько удаленных серверов (204, 206), причем удаленный сервер (204, 206) включает в себя внутренний модуль (404), который управляет установкой и работой прикладного программного обеспечения (402), размещенного на удаленном сервере (204, 206),
базу данных (210) конфигураций, которая включает в себя топологическую информацию, причем топологическая информация включает в себя описания серверов (202, 204, 206), которые могут размещать прикладное программное обеспечение (304, 402), и
базу данных (208) контента, причем база данных (208) контента включает в себя информацию о контенте прикладных программ (304, 402), подлежащих размещению на сервере (202, 204, 206),
в которой внешний интерфейсный веб-модуль (302) определяет, будет ли прикладное программное обеспечение (304, 402) размещено на локальном сервере (202) или на одном или нескольких удаленных серверах (204, 206).
2. Система по п.1, в которой локальный сервер (202) дополнительно включает в себя модуль (506) балансировки нагрузки, причем модуль (506) балансировки нагрузки назначает прикладные программы (304, 402) серверам (202, 204, 206) на основании стоимости выполнения прикладной программы.
3. Система по п.2, в которой прикладные программы (304, 402) группируются по уровням на основании их характеристик производительности.
4. Система по п.2, в которой модуль (506) балансировки нагрузки является расширяемым, причем модуль (506) балансировки нагрузки использует обеспечиваемую пользователем структуру для назначения прикладных программ (304, 402) конкретным серверам (202, 204, 206).
5. Система по п.1, в которой локальный сервер (202) дополнительно включает в себя модуль (504) проверки правильности, причем модуль (504) проверки правильности включает в себя сторонние модули проверки правильности решения, причем модули проверки правильности решения определяют, нужно ли загружать прикладную программу (304, 402) на сервер (202, 204, 206).
6. Система по п.5, в которой модули проверки правильности решения выполняют задания из группы, состоящей из проверок безопасности выполнения и реализации моделей ценообразования.
7. Система по п.1, в которой внутренний модуль (404) включает в себя модуль (602) квотирования ресурсов, причем модуль (602) квотирования ресурсов обеспечивает квоту на системные ресурсы для каждого сервера (204, 206).
8. Система по п.8, в которой внутренний модуль (404) включает в себя модуль (604) мониторинга ресурсов, причем модуль мониторинга ресурсов (604) определяет, превышают ли ресурсы на сервере (204, 206) квоту на ресурсы.
9. Система по п.1, в которой внутренний модуль (404) включает в себя модуль (606) управления кэшем сборки, причем модуль (606) управления кэшем сборки управляет модулями пользовательского кода, чтобы гарантировать, что они загружаются, когда они нужны, и выгружаются, когда они не нужны.
10. Система по п.1, в которой прикладная программа (304, 402) выполняется с использованием изолированной инфраструктуры, причем изолированная инфраструктура не позволяет прикладной программе (304, 402), выполняющейся на сервере (202, 204, 206), негативно влиять на системные ресурсы на сервере (202, 204, 206).
11. Способ размещения прикладной программы (304, 402) на сервере (202, 204, 206), причем способ содержит этапы, на которых
принимают от компьютера-клиента (102) запрос на выполнение прикладной программы (304, 402) на сервере (202, 204, 206), причем прикладная программа (304, 402) включает в себя пользовательские компоненты, причем пользовательские компоненты позволяют адаптировать прикладную программу (304, 402) для нужд конкретного предприятия,
проверяют правильность прикладной программы (304, 402),
определяют уровень производительности для прикладной программы (304, 402),
определяют тип решения для прикладной программы (304, 402),
определяют топологию имеющихся хост-компьютеров (202, 204, 206),
используют уровень производительности, тип решения, топологию и алгоритм балансировки нагрузки для определения удаленного сервера (204, 206) на котором должна выполняться прикладная программа (304, 402),
назначают прикладную программу (304, 402) удаленному серверу (204, 206) на основании определения удаленного сервера (204, 206), на котором должна выполняться прикладная программа (304, 402),
выполняют прикладную программу (304, 402) на назначенном удаленном сервере (204, 206), и
отслеживают выполнение прикладной программы (304, 402) на удаленном сервере (204, 206).
12. Способ по п.11, дополнительно содержащий этап, на котором проверяют правильность прикладной программы (304, 402) с использованием критериев проверки правильности, обеспеченных третьей стороной.
13. Способ по п.12, в котором критерии проверки правильности включают в себя выполнение проверки безопасности и реализацию моделей ценообразования.
14. Способ по п.11, в котором уровень производительности определяют с использованием структуры, обеспеченной третьей стороной.
15. Способ по п.11, в котором тип решения определяют посредством алгоритма хэширования.
16. Способ по п.11, в котором обеспечивают квоту на ресурсы для системных ресурсов удаленного сервера (204, 206).
17. Способ по п.16, в котором ресурсы на удаленном сервере (204, 206) отслеживают для определения, превышают ли ресурсы квоту на ресурсы.
18. Способ по п.17, в котором выполнение прикладной программы (402) завершают, если ее ресурсы превышают квоту на ресурсы.
19. Способ по п.11, дополнительно содержащий служебный процесс хоста, который управляет выполнением пользовательских компонентов, и рабочий процесс, который выполняет код, связанный с пользовательскими компонентами.
20. Компьютерно-считываемый носитель, содержащий компьютерно-выполняемые инструкции, которые при выполнении осуществляют способ запрашивания размещения прикладных программ (304, 402) на сервере (202, 204, 206), причем способ содержит этапы, на которых
инициируют запрос с помощью локального сервера (202) для размещения прикладной программы (304, 402) на сервере (202, 204, 206),
выгружают прикладную программу (304, 402) на локальный сервер (202), причем прикладная программа (304, 402) включает в себя признаки, модифицированные в соответствии с решением приложения,
выгружают алгоритм балансировки нагрузки на локальный сервер (402), причем алгоритм балансировки нагрузки обеспечивает способ определения сервера (202, 204, 206), на котором должна быть размещена прикладная программа, и
выгружают механизм проверки правильности на локальный сервер (402), причем механизм проверки правильности обеспечивает способ определения, должна ли быть размещена прикладная программа (304, 402).