RU2473112C2 - Создание и развертывание распределенных расширяемых приложений - Google Patents
Создание и развертывание распределенных расширяемых приложений Download PDFInfo
- Publication number
- RU2473112C2 RU2473112C2 RU2010111569/08A RU2010111569A RU2473112C2 RU 2473112 C2 RU2473112 C2 RU 2473112C2 RU 2010111569/08 A RU2010111569/08 A RU 2010111569/08A RU 2010111569 A RU2010111569 A RU 2010111569A RU 2473112 C2 RU2473112 C2 RU 2473112C2
- Authority
- RU
- Russia
- Prior art keywords
- service
- batch file
- computer
- data
- list
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 69
- 230000008569 process Effects 0.000 claims description 56
- 238000009434 installation Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 8
- 238000004883 computer application Methods 0.000 claims 3
- 230000000694 effects Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 239000000126 substance Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101000666896 Homo sapiens V-type immunoglobulin domain-containing suppressor of T-cell activation Proteins 0.000 description 1
- 102100038282 V-type immunoglobulin domain-containing suppressor of T-cell activation Human genes 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- IJJVMEJXYNJXOJ-UHFFFAOYSA-N fluquinconazole Chemical compound C=1C=C(Cl)C=C(Cl)C=1N1C(=O)C2=CC(F)=CC=C2N=C1N1C=NC=N1 IJJVMEJXYNJXOJ-UHFFFAOYSA-N 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Изобретение относится к средствам создания распределенного приложения. Технический результат заключается в улучшении расширяемости распределенного приложения. Выбирают службы из списка служб, доступных на удаленном кластере серверов, при этом каждая служба предоставляет различные функциональные возможности. Для каждой выбранной службы выбирают группу компонентов из списка компонентов, доступных из выбранной службы в удаленном кластере серверов. Принимают из различных служб удаленного кластера серверов данные, требуемые для установки выбранных компонентов. Создают список инструкций, который содержит по меньшей мере часть принятых данных от каждой из этих различных служб, используемый при создании распределенного приложения и сохраняют список инструкций. 3 н. и 17 з.п. ф-лы, 6 ил.
Description
Уровень техники
Программное обеспечение, установленное в распределенной вычислительной сети, позволяет пользователям создавать "сквозные" приложения и решения, которые максимально используют множество служб, размещенных на отдельных кластерах серверов. Эти сквозные приложения могут содержать компоненты, такие как деловые данные, оформления страниц, макеты страниц и бизнес-логику, каждый из которых необязательно распределен на различных кластерах серверов. Из-за распределенной природы этих приложений их развертывание представляет различные трудности в таких областях, как координация, аутентификация, правильность содержимого, управление конфликтами и масштабируемость. Например, так как число доступных услуг быстро растет, эти приложения должны быть расширяемыми таким способом, чтобы будущие службы могли быть легко и гибко встроены в приложение, в то же время сохраняя полную обратную совместимость с предыдущими созданными приложениями.
Сущность изобретения
Эта сущность предусмотрена для того, чтобы в упрощенной форме представлять набор идей, которые дополнительно описываются ниже в подробном описании. Эта сущность не предназначена для того, чтобы идентифицировать ключевые признаки или существенные признаки заявляемого предмета изобретения, а также не предназначена для того, чтобы быть использованной в качестве помощи при определении области применения заявляемого объекта изобретения.
Способ создания распределенного приложения включает в себя выбор группы компонентов из списка компонентов, доступных на удаленном кластере серверов. Данные, требуемые, чтобы устанавливать выбранные компоненты, принимаются от удаленного кластера серверов. Список инструкций создается в ответ на принятые данные, и список инструкций сохраняется.
Материальный машиночитаемый носитель имеет исполняемые компьютером инструкции для создания распределенного приложения. Инструкции включают в себя выбор службы из списка служб, доступных в распределенной компьютерной системе. Выбирается компонент, доступный в выбранной службе. Установочные данные, относящиеся к выбранному компоненту, принимаются от распределенной компьютерной системы. Пакетный файл создается в ответ на принятые данные. Пакетный файл сохраняется.
Система для централизации управления распределенным вычислительным приложением включает в себя процессор и машиночитаемый носитель. Система также включает в себя операционную среду, сохраненную на машиночитаемом носителе и выполняемую процессором. Дополнительно в состав включена инфраструктура решения, сохраненная на машиночитаемом носителе и выполняемая процессором. Инфраструктура решения сконфигурирована, чтобы выбирать службу из списка служб, доступных на кластере служб. Выбирается компонент, доступный в выбранной службе. От выбранной службы принимаются установочные данные, относящиеся к выбранному компоненту(ам). Пакетный файл создается в ответ на принятые данные. Пакетный файл затем сохраняется на машиночитаемом носителе.
Эти и другие признаки и преимущества будут очевидны из прочтения последующего подробного описания и просмотра ассоциированных чертежей. Следует понимать, что и вышеупомянутое общее описание и последующее детальное описание являются только примерными и пояснительными, а не ограничивающими. Среди прочего, различные варианты осуществления, описанные в данном документе, могут быть осуществлены как способы, устройства или их комбинация. Кроме того, различные варианты осуществления могут принимать форму полностью аппаратного варианта осуществления, полностью программного варианта осуществления или варианта осуществления, комбинирующего аспекты программного обеспечения и аппаратных средств. Раскрытие в данном документе, следовательно, не используется в ограничивающем смысле.
Краткое описание чертежей
На чертежах одинаковые числа представляют одинаковые элементы.
Фиг.1 - это блок-схема операционной среды для реализаций реализуемых на компьютере способов, которые описаны в данном документе;
фиг.2 - это блок-схема, иллюстрирующая операционную среду для реализации инфраструктуры решения;
фиг.3 - это схема, иллюстрирующая реализацию пакетного файла;
фиг.4 - это блок-схема, иллюстрирующая операцию выбора группы компонентов;
фиг.5 - это блок-схема, иллюстрирующая операцию создания пакетного файла; и
фиг.6 - это блок-схема, иллюстрирующая операцию развертывания пакетного файла в распределенном вычислительном окружении.
Подробное описание реализаций
Ссылаясь теперь на чертежи, на которых одинаковые цифры представляют одинаковые элементы, описаны различные варианты осуществления изобретения. В частности, фиг.1 и соответствующее обсуждение предназначены для того, чтобы предоставить краткое общее описание подходящего вычислительного окружения, в котором могут быть реализованы варианты осуществления изобретения.
Как правило, предусматривается инфраструктура решения, которая отвечает за взаимодействие между конечным пользователем и кластерами служб. Инфраструктура решения может централизовать как создание, так и развертывание распределенных приложений. Многие преимущества присутствуют и в создании, и в развертывании распределенных приложений. Например, распределенное приложение может использовать компоненты множественных служб, расположенных на множестве различных удаленных серверов, для того, чтобы объединять функциональность многих отдельных служб в едином приложении.
Инфраструктура решения централизует создание распределенного приложения, действуя в качестве посредника между пользовательским интерфейсом создания и кластером служб. Прежде чем предоставлять возможность пользователю создать пакетный файл, который объединяет конкретную службу, пользователю может быть необходимо аутентифицироваться в службе. Инфраструктура решения может также централизовать этот процесс аутентификации, передавая удостоверяющую пользователя информацию каждому из кластеров серверов. Инфраструктура решения может затем предоставлять возможность аутентифицированному пользователю определять распределенное приложение, выбирая различные компоненты, которые доступны в кластере служб. В ответ на определение приложения создается пакетный файл. Правильность содержимого пакетного файла сохраняется посредством использования метаданных "водяного знака", которые включаются в файл на основе содержимого файла.
Прежде чем приложение устанавливается, пакетный файл может быть либо передан от пользователя, определяющего приложение, другому пользователю, либо просто установлен пользователем, определяющим приложение. Во время установки разрешение конфликтных ситуаций может также централизовано управляться посредством инфраструктуры решения. После того как конфликты разрешены, инфраструктура решения может связываться со всеми соответствующими кластерами служб и устанавливать компоненты в правильное местоположение на основе определенного пакетного файла.
Обращаясь теперь к фиг.1, будет описана иллюстративная компьютерная архитектура для компьютера 100, используемого в различных вариантах осуществления. Архитектура компьютера, показанная на фиг.1, может быть сконфигурирована как настольный или мобильный компьютер и включает в себя центральный процессор 5 ("CPU"), системную память 7, включающую в себя оперативное запоминающее устройство 9 ("RAM") и постоянное запоминающее устройство ("ROM") 10, и системную шину 12, которая связывает память с CPU 5.
Базовая система ввода/вывода, содержащая базовые процедуры, которые помогают передавать информацию между элементами в компьютере так, как во время начальной загрузки, хранится в ROM 10. Компьютер 100 дополнительно включает в себя устройство 14 хранения большой емкости для хранения операционной системы 16, прикладных программ 24 и инфраструктуры 26 решения, которые будут описаны более подробно ниже.
Устройство 14 хранения большой емкости подключено к CPU 5 посредством контроллера устройства хранения большой емкости (не показан), подключенного к шине 12. Устройство 14 хранения большой емкости и ассоциированные с ним машиночитаемые носители обеспечивают энергонезависимое хранилище для компьютера 100. Хотя описание машиночитаемых носителей, содержащееся в данном документе, ссылается на устройство хранения большой емкости, такое как жесткий диск, накопитель CD-ROM, машиночитаемые носители могут быть любыми доступными машиночитаемыми носителями, к которым можно осуществлять доступ посредством компьютера 100.
В качестве примера, но не для ограничения, машиночитаемые носители могут содержать компьютерные носители хранения и среду связи. Компьютерные носители хранения включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные носители хранения включают в себя (но не только) память по технологии RAM, ROM, EPROM, EEPROM, флэш-памяти или другой твердотельной технологии, CD-ROM, универсальный цифровой диск (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитный диск или другие магнитные устройства хранения, либо любой другой носитель, который может быть использован для хранения требуемой информации, и к которому можно осуществлять доступ с помощью компьютера 100.
Согласно различным вариантам осуществления, компьютер 100 может работать в объединенном в сеть окружении, используя логические соединения с удаленными компьютерами по сети 18, такой как Интернет. Персональный компьютер 100 может подключаться к сети 18 через сетевой интерфейсный модуль 20, подключенный к шине 12. Сетевое соединение может быть беспроводным и/или проводным. Блок 20 сетевого интерфейса может также использоваться, чтобы соединяться с другими типами сетей и удаленных компьютерных систем. Компьютер 100 может также включать в себя контроллер 22 ввода/вывода для приема и обработки входных данных от ряда других устройств, включающих в себя клавиатуру, мышь или электронное перо (не показано на фиг.1). Подобным образом, контроллер 22 ввода/вывода может обеспечивать вывод на экран 28 дисплея, принтер или другой тип устройства вывода.
Как вкратце упоминалось выше, ряд программных модулей и файлов данных может быть сохранен в устройстве 14 хранения большой емкости и RAM 9 компьютера 100, в том числе операционная система 16, подходящая для управления работой сетевого персонального компьютера, такая как операционная система WINDOWS VISTA от MICROSOFT CORPORATION, Редмонд, штат Вашингтон. Устройство 14 хранения большой емкости и RAM 9 могут также хранить один или более программных модулей. В частности, устройство 14 хранения большой емкости и RAM 9 могут хранить одну или более прикладных программ 24. Например, устройство 14 хранения большой емкости может хранить инфраструктуру 26 решения. Инфраструктура 26 решения централизует развертывание и установку распределенных приложений.
Фиг.2 иллюстрирует реализацию окружения, в котором инфраструктура 26 решения функционирует. Работа структуры 26 решения может быть связана с кластером служб 230. Кластер служб 230 может быть связан с инфраструктурой 26 решения через сеть, такую как Интернет или расширенная интрасеть. Кластер служб 230 может включать в себя N отдельных служб - службы 232, 234 и 236. Отдельные службы могут храниться в раздельных местоположениях. Например, служба 230 может быть сохранена на первом сервере в первом местоположении, а служба 240 может быть сохранена на втором сервере во втором местоположении. В других реализациях множество служб может быть сохранено в одном местоположении. Соответственно, инфраструктура решения может работать независимо от местоположения отдельных служб.
Каждая служба может предоставлять различные формы функциональности. Например, служба может включать в себя деловые данные, оформление или макет страницы. В других примерах служба может включать в себя бизнес-логику. Еще в других примерах служба может включать в себя любую другую форму функциональности.
Инфраструктура 26 решения может также быть связана с интерфейсом 210 создания и интерфейсом 220 развертывания. Интерфейс 210 создания может предоставлять интерфейс, предоставляющий возможность пользователю определять пакетный файл, который включает в себя группу выбранных служб. Интерфейс 220 развертывания может предоставлять интерфейс, предоставляющий возможность пользователю развертывать пакетный файл, чтобы устанавливать выбранную группу служб. В некоторых реализациях эти интерфейсы могут быть веб-интерфейсами, закодированными на языке разметки, таком как язык гипертекстовой разметки (HTML) или расширяемый язык разметки (XML). В других реализациях эти интерфейсы могут быть закодированы на других языках, таких как C# или Java.
Интерфейс 210 создания может быть расположен в первом вычислительном окружении, расположенном в первом местоположении, и позволять первому пользователю создавать пакетный файл, в то время как интерфейс 220 развертывания может быть расположен во втором вычислительном окружении, расположенном во втором местоположении, и позволять второму пользователю развертывать пакетный файл. В такой реализации пакетный файл может передаваться из первого вычислительного окружения во второе вычислительное окружение. Эта передача может выполняться любым средством передачи файла. Например, файл может быть закодирован на машиночитаемом носителе, таком как диск, физически переданном во второе вычислительное окружение. В других примерах файл может электронным образом передаваться по сетевому соединению между двумя вычислительными окружениями, как, например, посредством вложения в письмо электронной почты, отправленное через Интернет.
В других реализациях интерфейс 210 создания и интерфейс 220 развертывания могут быть расположены в одном и том же вычислительном окружении. В такой реализации один и тот же пользователь может как создавать, так и развертывать пакетный файл из одного и того же вычислительного окружения. Дополнительно, в такой реализации передача пакетного файла, требуемая выше, может не требоваться.
Соответственно, инфраструктура 26 решения управляет и централизует как создание пакетного файла, так и развертывание пакетного файла.
Фиг.3 иллюстрирует реализацию пакетного файла 300. Пакетный файл 300 может включать в себя 768 бит, биты 0-767. Пакетный файл 300 может включать в себя часть заголовка с битами 0-31. Пакетный файл 300 может также включать в себя манифест с битами 32-63, который описывает выбранный компонент. Манифест может включать в себя информацию, принятую от кластера 230 серверов, которая описывает информацию о компонентах, которые могут использоваться службами, чтобы обнаруживать потенциальные конфликты и доступность компонента. Например, манифест может включать в себя часть информации, возвращенной каждым кластером службы в момент создания паклета (packlet), которая описывает компоненты, которые находятся в паклете. Манифест спроектирован таким способом, что даже без физических паклетов метаинформация в манифесте может использоваться, чтобы обнаруживать конфликты. Следом за заголовком и манифестом пакетный файл 300 может включать в себя полезную нагрузку с битами 64-127. Как описано более подробно ниже со ссылкой на фиг.5, часть полезной нагрузки пакетного файла 300 включает в себя информацию, принятую от выбранных служб.
Для безопасности пакетный файл 300 может включать в себя открытый ключ, такой как 512-битный секретный ключ, биты 128-639. Для дополнительной безопасности и чтобы разрешать верификацию целостности, как описано более подробно ниже со ссылкой на фиг.6, пакетный файл 300 может включать в себя "водяной знак", такой как зашифрованный 128-битный хэш по безопасному алгоритму хэширования 5 (SHA-1), биты 640-767. В других вариантах осуществления "водяной знак" может включать в себя хэш по алгоритму представления сообщения в краткой форме версии 5 (MD5). Хэш может быть создан посредством применения любого алгоритма хэширования к полезной нагрузке и манифесту в пакетном файле.
Функционирование инфраструктуры решения
Обращаясь теперь к фиг.4, будет описан иллюстративный процесс 400 определения набора компонентов, которые должны быть включены в распределенное приложение.
При прочтении описания представленных в данном документе процедур следует принимать во внимание, что логические операции различных вариантов осуществления реализованы (1) как последовательность машинореализованных действий или программных модулей, выполняющихся в вычислительной системе, и/или (2) как взаимосвязанные машинные логические схемы или модули схем в рамках вычислительной системы. Реализация выбирается и зависит от требований к производительности вычислительной системы, реализующей изобретение. Следовательно, логические операции, проиллюстрированные и составляющие варианты осуществления, описанные в данном документе, указываются ссылками в различных случаях как операции, структурные устройства, действия или модули. Эти операции, структурные устройства, действия и модули могут быть осуществлены в программном обеспечении, в микропрограммном обеспечении, в специализированной цифровой логике и в любой их комбинации.
После начала работы процесс переходит к этапу 410, и список служб принимается в инфраструктуре 26 решения. Этот процесс может быть запущен, например, когда пользователь просматривает страницу создания пакета в интерфейсе 210 создания. Инфраструктура решения может затем сделать вызов кластеру 230 служб, запрашивающий список доступных служб. Чтобы определять, доступна ли конкретная служба, инфраструктура 26 решения может централизованно посредничать при разрешениях между интерфейсом 210 создания и каждой из служб в кластере 230 служб. Например, инфраструктура 26 решения может передавать кластеру 230 служб профиль пользователя и принимать, в ответ, набор служб, к которым пользователь может осуществить доступ. Соответственно, доступность может зависеть от служб, объединенных в сеть с инфраструктурой 26 решения, так же как и от отдельных пользовательских разрешений.
После того, как список доступных служб принят и завершен в инфраструктуре 26 решения, процесс переходит к этапу 420, и выбирается первая служба.
Служба может быть выбрана в ответ на команду выбора службы, принятую от интерфейса 210 создания, указывающую пользовательский запрос на просмотр компонентов в службе. После того, как служба выбрана, процесс переходит к этапу 430, где собирается список типов компонентов. Во время этой операции инфраструктура 26 решения сообщает выбранной службе запрос, чтобы передавать список типов отдельных компонентов, доступных в выбранной службе. Информация о типе может включать в себя информацию, описывающую тип доступных компонентов, и информацию, описывающую пользовательский интерфейс, который может использоваться, чтобы выбирать отдельные компоненты. В некоторых реализациях эта информация может включать в себя специальный пользовательский интерфейс для выбора типов компонентов и компонентов, характерных для этой службы.
Процесс затем переходит к этапу 440, где собирается список доступных компонентов. Аналогично доступности служб, описанной выше, доступность компонентов может зависеть не только от того, соединены ли компоненты с инфраструктурой 26 решения, но также и от проверки разрешений.
Процесс затем переходит к этапу 450, где информация о типе, ассоциированная с принятыми выбранными компонентами, обрабатывается и передается интерфейсу 210 создания, где пользователю представляется интерфейс выбора. Этот интерфейс выбора создается в ответ на информацию о типе, принятую от выбранной службы, так что специальный интерфейс выбора может отображаться, чтобы облегчать выбор отдельного типа доступных компонентов. Этот специальный интерфейс может содержать механизм для пользователя, чтобы вводить произвольные параметры в выбранный компонент. Эти параметры могут действовать в качестве дополнительной метаинформации, чтобы описывать для инфраструктуры решения и кластера служб способ, которым выбранный компонент должен быть упакован.
Процесс затем переходит к этапу 460, где пользователь выбирает требуемые компоненты с помощью интерфейса выбора, представленного в интерфейсе 210 создания на фиг.2. В некоторых реализациях во время этой операции список выбранных компонентов передается, и принимается в, кластеру 230 служб. В других реализациях список выбранных компонентов не передается кластеру 230 служб до тех пор, пока процесс не будет завершен для каждой выбранной службы после этапа 470.
Переходя к этапу 470, принимается решение относительно того, выбрана ли дополнительная служба. Если пользователь выбирает дополнительную службу, процесс возвращается к этапу 420, и процесс формирования интерфейса и выбора компонента повторяется для следующей выбранной службы. Если пользователь не выбирает дополнительную службу, процесс продолжается на этапе 480.
Переходя к этапу 480, как описано более подробно ниже со ссылкой на фиг.5, все паклеты объединяются и форматируются в один пакетный файл. Процесс затем переходит к этапу окончания и возвращается к обработке других действий.
Обращаясь теперь к фиг.5, будет описан иллюстративный процесс 500 создания пакетного файла, такого как созданный на этапе 480.
После этапа начала процесс переходит к этапу 510, и список выбранных компонентов обрабатывается инфраструктурой 26 решения. Список выбранных компонентов может быть принят от интерфейса 210 создания в инфраструктуре 26 решения. Список выбранных компонентов может быть создан, например, в соответствии с процессом 400, иллюстрированным на фиг.4.
Процесс затем переходит к этапу 520, где выбирается первая служба, в которой выбранный компонент расположен. Этот выбор является частью автоматического процесса, где инфраструктура 26 решения выполняет итерации по всем службам, в которые включены компоненты списка выбранных компонентов. Таким образом, служба может выбираться инфраструктурой 26 решения непосредственно, без вмешательства или ввода от пользователя через интерфейс 210 создания. После того, как инфраструктура 26 решения выбирает первую службу, процесс переходит к этапу 530, где описание компонентов, ассоциированных с выбранной службой, передается из инфраструктуры решения первой выбранной службе. То есть инфраструктура 26 решения передает службе список компонентов, расположенных в той службе, которую пользователь выбрал.
После того, как служба принимает список компонентов, процесс переходит к этапу 540, где служба отвечает на запрос, передавая паклет, содержащий информацию, ассоциированную с выбранными компонентами. Паклет может включать в себя поток двоичных данных, содержащих запрошенные данные, так же как и манифест, описывающий метаинформацию о запрошенных данных.
На этапе 550 выполняется определение того, должна ли быть выбрана другая служба. Если инфраструктура 26 решения циклически прошла и обработала все службы, необходимые для того, чтобы обрабатывать все выбранные компоненты, службы больше не нужно выбирать, и процесс продолжается на этапе 560. Если инфраструктура 26 решения циклически не прошла через все службы для выбранных компонентов, процесс возвращается к этапу 520, и выбирается следующая служба. В других вариантах осуществления этот процесс может выполняться асинхронно. То есть, в многопотоковой среде, где инфраструктура 26 решения одновременно вызывает все службы, чтобы принимать паклеты, и затем собирает их, когда они возвращаются. Таким образом, процесс может выполняться как асинхронным, так и линейным/последовательным образом.
На этапе 560 принятые паклеты добавляются в пакетный файл. Например, паклеты могут сцепляться вместе и добавляться в часть полезной нагрузки пакетного файла 300. В других реализациях дополнительная обработка паклетов может выполняться перед тем, как они включаются в полезную нагрузку пакетного файла 300.
На этапе 570 "водяной знак" добавляется в пакетный файл 300. В некоторых реализациях "водяной знак" может просто быть хэшем, созданным из паклетов. В других реализациях "водяной знак" может быть создан из паклетов и других данных, включенных в пакетный файл, таких как часть заголовка, часть манифеста или часть безопасности, такая как секретный ключ. В некоторых примерах "водяной знак" может быть создан с помощью алгоритма хэширования SHA-1. Соответственно, хэш позже может использоваться, чтобы верифицировать целостность данных, в том числе определение того, был ли пакетный файл 300 искажен. Процесс затем переходит к этапу окончания и возвращается к обработке других действий.
Обращаясь теперь к фиг.6, будет описан иллюстративный процесс 600 для развертывания пакетного файла 300.
После этапа начала процесс переходит к этапу 610, где пакетный файл 300 принимается в инфраструктуре 26 решения из интерфейса 220 развертывания. В некоторых примерах пакетный файл 300 может передаваться инфраструктуре 26 решения непосредственно из системы, в которой он был принят во время создания пакетного файла 300. Это может происходить в ситуациях, где пользователь, который создал пакетный файл 300, также развертывает его. В других примерах пакетный файл 300 может передаваться инфраструктуре 26 решения от другого пользователя. Например, пакетный файл 300 может быть принят в интерфейсе 210 создания первым пользователем и затем передан на компакт-диске (CD) или отправлен по электронной почте второму пользователю с интерфейсом 220 развертывания, где он впоследствии передается инфраструктуре 26 решения.
После того как пакетный файл 300 был принят в инфраструктуре 26 решения, процесс переходит к этапу 620. На этапе 620 выполняется определение относительно того, является ли пакетный файл 300 действительным. Это определение может быть выполнено со ссылкой на "водяной знак". Например, если пакетный файл 300 был поврежден во время различных передач, или пакетный файл 300 был умышленно искажен, "водяной знак" больше не может правильно соответствовать данным, содержащимся в пакетном файле 300. В других примерах могут использоваться другие критерии, чтобы определять, действителен ли пакетный файл. Например, может быть сделана ссылка на то, было ли изменено расширение файла. В других примерах может быть сделана ссылка на размер файла. То есть может быть назначен максимальный размер файла по умолчанию, и все, что больше чем размер файла по умолчанию, может быть помечено как недействительное. Таким образом, определение того, является ли пакетный файл 300 действительным, может частично зависеть от "водяного знака" и частично зависеть от других свойств пакетного файла 300. Соответственно, если пакетный файл 300 является действительным, процесс переходит к этапу 630, где обработка продолжается.
Если пакетный файл 300 больше не действителен, процесс переходит к этапу 680, где развертывание прерывается, и последовательность операций переходит к этапу окончания. В некоторых примерах операция 680 прерывания может включать в себя представление пользователю сообщений об ошибках в интерфейсе развертывания. В других примерах операция 680 прерывания может также включать в себя автоматическое исправление ошибок, так что исправимые ошибки автоматически исправляются инфраструктурой 26 решения, и процесс может продолжаться.
На этапе 630 пакетный файл 300 обрабатывается, и извлекается полезная нагрузка. Полезная нагрузка обрабатывается, чтобы определять, какие службы требуются. Инфраструктура 26 решения затем определяет, все ли службы, требуемые пакетным файлом, доступны. Если компонент, который включен в пакетный файл 300, находится в отдельной службе, эта служба требуется. Например, если прошло время между тем, когда пакетный файл 300 был создан, и тем, когда пакетный файл 300 развертывается, одна или более служб, доступных в кластере 230 служб, может быть больше недоступна.
Как описано выше, служба может также быть больше недоступна, если, например, пользователь, развертывающий пакетный файл 300, не имеет разрешения на доступ к конкретной службе, или если служба была просто отсоединена от сети. Если запрашиваемая служба недоступна, процесс переходит к этапу 680, где развертывание прерывается. Если все требуемые службы доступны, процесс переходит к этапу 640.
На этапе 640 выбирается первая служба. Этот выбор является частью автоматического процесса, где инфраструктура 26 решения выполняет итерации по всем службам, используемым компонентами в полезной нагрузке пакетного файла 300. Таким образом, служба может выбираться инфраструктурой 26 решения непосредственно, без вмешательства или ввода от пользователя через интерфейс 220 развертывания. После того, как инфраструктура 26 решения выбирает первую службу, процесс переходит к этапу 650, где выполняется проверка на конфликты.
На этапе 650 содержимое пакетного файла 300 может быть передано кластеру 230 служб. В некоторых реализациях может передаваться только манифест, чтобы сэкономить ценное время на передачу. Манифест может включать в себя часть информации, возвращенной каждым кластером служб в момент создания паклета, которая описывает компоненты, которые находятся в паклете. Манифест спроектирован таким способом, что даже без физических паклетов метаинформация в манифесте может использоваться, чтобы обнаруживать конфликты. Каждая служба затем проверяет содержимое пакетного файла 300 (или манифест в других реализациях) и сообщает инфраструктуре 26 решения детали компонента, конфликты компонента и любые другие проблемы развертывания, с которыми пользователь может столкнуться во время развертывания пакетного файла 300. Сообщая эту информацию обратно инфраструктуре 26 решения, управление процессом проверки конфликтов может быть централизовано. Если конфликт существует, процесс переходит к этапу 670. Если конфликтов не существует, процесс переходит к этапу 660, и процесс развертывания продолжается. В других вариантах осуществления процесс проверки конфликтов может выполняться асинхронно. То есть, в многопотоковом процессе, где инфраструктура 26 решения одновременно обнаруживает конфликты. Таким образом, процесс может выполняться как асинхронным, так и линейным/последовательным образом.
На этапе 670 выполняется определение того, может ли конфликт быть автоматически исправлен инфраструктурой решения. Если инфраструктура решения может автоматически исправить конфликт, инфраструктура решения может затем автоматически исправлять конфликт, и процесс может продолжаться на этапе 660. В некоторых реализациях пользователю может быть представлено предупреждающее сообщение через интерфейс 220 развертывания, чтобы информировать пользователя о конфликте, который был исправлен. Если инфраструктура 26 решения не может автоматически исправить конфликт, пользователю может быть представлено сообщение об ошибке, указывающее фатальный конфликт, и процесс переходит к этапу 680, где развертывание прерывается. В еще других реализациях пользователю может быть дана возможность автоматически блокировать любые конфликты, чтобы перезаписать конфликтующие компоненты. В таких реализациях пользователю может быть необходимо проделывать это перед попыткой развертывания пакетного файла 300, и если конфликт происходит, компоненты могут быть перезаписаны новыми компонентами из пакетного файла 300.
На этапе 660 компоненты выбранной службы развертываются посредством передачи паклетов, относящихся к выбранным компонентам, службе. Каждый паклет может включать в себя последовательность двоичных данных, характерных для службы. Выбранная служба может знать, как преобразовать из последовательной формы поток данных обратно в соответствующие данные для развертывания. После того как данные развернуты в службе, процесс продолжается на этапе 690.
На этапе 690 выполняется определение того, должна ли быть выбрана другая служба. Если дополнительные компоненты должны быть развернуты в другой службе, процесс возвращается к этапу 640, и выбирается следующая служба. Если все компоненты были развернуты, процесс переходит к этапу окончания.
В других реализациях все выбранные компоненты могут быть обработаны, чтобы проверять конфликты прежде, чем какие-либо паклеты передаются от инфраструктуры 26 решения кластеру 230 служб. Например, все службы могут быть циклически пройдены, информация о конфликтах собрана в инфраструктуре решения, где она централизованно обрабатывается, и если конфликты разрешены, паклеты затем передаются кластеру 230 служб. При таком способе все конфликты могут обрабатываться централизованно.
Дополнительно, может быть выполнен процесс постразвертывания. Например, после развертывания пакета каждый кластер служб может сообщать информацию о том, что компоненты были развернуты. Эта информация постразвертывания может затем быть сообщена обратно каждому кластеру служб. Таким образом, со всеми кластерами служб единожды опять устанавливается связь после того, как развертывание полного пакета завершено. Это позволяет кластерам служб получать сведения обо всех компонентах, которые были развернуты во всей системе. Таким образом, каждый кластер может выполнять операции постразвертывания на основе этой информации. Например, компоненты в первом кластере служб и втором кластере служб могут быть очень тесно связаны друг с другом, и, зная конечную информацию о развертывании, связанную друг с другом, службы могут выполнять бизнес-логику, которая усиливает тот факт, что это является развертыванием сквозного, тесно связанного распределенного приложения, чем множества обособленных частей.
Упомянутые ранее описание, примеры и данные предоставляют полное описание изготовления и использования состава изобретения. Поскольку многие варианты осуществления изобретения могут быть выполнены без отступления от духа и области применения изобретения, изобретение состоит в прилагаемой далее формуле изобретения.
Claims (20)
1. Реализуемый процессором способ создания распределенного приложения, содержащий этапы, на которых:
выбирают службы из списка служб, доступных на удаленном кластере серверов, при этом каждая служба предоставляет различные функциональные возможности;
для каждой выбранной службы выбирают группу компонентов из списка компонентов, доступных из выбранной службы в удаленном кластере серверов;
принимают из различных служб удаленного кластера серверов данные, требуемые для установки выбранных компонентов;
создают список инструкций, который содержит по меньшей мере часть принятых данных от каждой из этих различных служб, используемый при создании распределенного приложения; и
сохраняют список инструкций.
выбирают службы из списка служб, доступных на удаленном кластере серверов, при этом каждая служба предоставляет различные функциональные возможности;
для каждой выбранной службы выбирают группу компонентов из списка компонентов, доступных из выбранной службы в удаленном кластере серверов;
принимают из различных служб удаленного кластера серверов данные, требуемые для установки выбранных компонентов;
создают список инструкций, который содержит по меньшей мере часть принятых данных от каждой из этих различных служб, используемый при создании распределенного приложения; и
сохраняют список инструкций.
2. Способ по п.1, в котором сохранение списка инструкций дополнительно содержит этапы, на которых:
кодируют принятую информацию в списке инструкций и
кодируют "водяной знак" в списке инструкций.
кодируют принятую информацию в списке инструкций и
кодируют "водяной знак" в списке инструкций.
3. Способ по п.1, дополнительно содержащий этап, на котором выполняют вызов в удаленный кластер серверов, чтобы определить список доступных служб.
4. Способ по п.1, в котором при выборе компонента, доступного в выбранной службе, принимают данные интерфейса выбора, характерные для типа компонента, доступного в выбранной службе.
5. Способ по п.1, дополнительно содержащий этапы, на которых:
обрабатывают список инструкций для извлечения данных, требуемых для установки выбранных компонентов; и
передают данные, требуемые для установки выбранных компонентов, в удаленный кластер серверов для обеспечения возможности установки компонентов на удаленном кластере серверов.
обрабатывают список инструкций для извлечения данных, требуемых для установки выбранных компонентов; и
передают данные, требуемые для установки выбранных компонентов, в удаленный кластер серверов для обеспечения возможности установки компонентов на удаленном кластере серверов.
6. Способ по п.5, в котором обработка списка инструкций дополнительно включает в себя этапы, на которых:
передают описание выбранных компонентов службам, ассоциированным с выбранными компонентами;
принимают от служб информацию о конфликтах;
централизованно обрабатывают информацию о конфликтах для определения того, существует ли конфликт в выбранных компонентах; и,
когда конфликт не существует, передают данные, требуемые для установки выбранных компонентов, в удаленный кластер серверов для обеспечения возможности установки компонентов на удаленном кластере серверов в ответ на централизованную обработку информации о конфликтах.
передают описание выбранных компонентов службам, ассоциированным с выбранными компонентами;
принимают от служб информацию о конфликтах;
централизованно обрабатывают информацию о конфликтах для определения того, существует ли конфликт в выбранных компонентах; и,
когда конфликт не существует, передают данные, требуемые для установки выбранных компонентов, в удаленный кластер серверов для обеспечения возможности установки компонентов на удаленном кластере серверов в ответ на централизованную обработку информации о конфликтах.
7. Способ по п.6, в котором обработка списка инструкций дополнительно включает в себя этапы, на которых:
когда конфликт существует, определяют, можно ли автоматически обработать конфликт; и
автоматически обрабатывают конфликт в ответ на определение того, можно ли автоматически обработать конфликт.
когда конфликт существует, определяют, можно ли автоматически обработать конфликт; и
автоматически обрабатывают конфликт в ответ на определение того, можно ли автоматически обработать конфликт.
8. Считываемый компьютером носитель, на котором имеются исполняемые компьютером инструкции для создания распределенного приложения, содержащие:
выполнение вызова в удаленный кластер серверов для определения списка служб, которые доступны;
выбор службы из этого списка служб, доступных в распределенной компьютерной системе;
выбор компонента, доступного в выбранной службе;
прием от распределенной компьютерной системы установочных данных, относящихся к выбранному компоненту;
создание пакетного файла в ответ на принятые данные, которые включают в себя установочные данные, который используется при создании распределенного приложения; и
сохранение пакетного файла.
выполнение вызова в удаленный кластер серверов для определения списка служб, которые доступны;
выбор службы из этого списка служб, доступных в распределенной компьютерной системе;
выбор компонента, доступного в выбранной службе;
прием от распределенной компьютерной системы установочных данных, относящихся к выбранному компоненту;
создание пакетного файла в ответ на принятые данные, которые включают в себя установочные данные, который используется при создании распределенного приложения; и
сохранение пакетного файла.
9. Считываемый компьютером носитель по п.8, в котором сохранение пакетного файла дополнительно включает в себя:
кодирование манифеста, описывающего выбранный компонент, в пакетном файле;
кодирование в качестве полезной нагрузки установочных данных в пакетном файле и
кодирование "водяного знака" в пакетном файле.
кодирование манифеста, описывающего выбранный компонент, в пакетном файле;
кодирование в качестве полезной нагрузки установочных данных в пакетном файле и
кодирование "водяного знака" в пакетном файле.
10. Считываемый компьютером носитель по п.9, в котором кодирование "водяного знака" в пакетном файле дополнительно включает в себя создание зашифрованного хэша данных, включенных в пакетный файл.
11. Считываемый компьютером носитель по п.8, в котором выбор компонента, доступного в выбранной службе, дополнительно включает в себя:
прием данных интерфейса выбора, характерных для типа компонента, доступного в службе; и
передачу данных интерфейса выбора в интерфейс развертывания для формирования интерфейса выбора в ответ на данные интерфейса выбора.
прием данных интерфейса выбора, характерных для типа компонента, доступного в службе; и
передачу данных интерфейса выбора в интерфейс развертывания для формирования интерфейса выбора в ответ на данные интерфейса выбора.
12. Считываемый компьютером носитель по п.8, в котором инструкции дополнительно содержат:
обработку пакетного файла для извлечения установочных данных и
передачу установочных данных в распределенную компьютерную систему для обеспечения возможности установки распределенного приложения.
обработку пакетного файла для извлечения установочных данных и
передачу установочных данных в распределенную компьютерную систему для обеспечения возможности установки распределенного приложения.
13. Считываемый компьютером носитель по п.9, в котором обработка пакетного файла дополнительно включает в себя:
передачу манифеста выбранной службе, ассоциированной с выбранным компонентом;
прием от выбранной службы информации о конфликтах;
централизованную обработку информации о конфликтах для определения того, существует ли конфликт; и
передачу установочных данных выбранной службе для обеспечения возможности установки распределенного приложения в ответ на централизованную обработку информации о конфликтах.
передачу манифеста выбранной службе, ассоциированной с выбранным компонентом;
прием от выбранной службы информации о конфликтах;
централизованную обработку информации о конфликтах для определения того, существует ли конфликт; и
передачу установочных данных выбранной службе для обеспечения возможности установки распределенного приложения в ответ на централизованную обработку информации о конфликтах.
14. Считываемый компьютером носитель по п.12, в котором обработка пакетного файла дополнительно включает в себя:
определение того, доступна ли выбранная служба; и
передачу установочных данных в распределенную компьютерную систему для обеспечения возможности установки распределенного приложения, когда выбранная служба доступна.
определение того, доступна ли выбранная служба; и
передачу установочных данных в распределенную компьютерную систему для обеспечения возможности установки распределенного приложения, когда выбранная служба доступна.
15. Считываемый компьютером носитель по п.12, в котором обработка пакетного файла для извлечения установочных данных дополнительно включает в себя:
определение того, доступен ли выбранный компонент, на основе пользовательских разрешений; и
передачу установочных данных в распределенную компьютерную систему для обеспечения возможности установки распределенного приложения, когда выбранный компонент доступен.
определение того, доступен ли выбранный компонент, на основе пользовательских разрешений; и
передачу установочных данных в распределенную компьютерную систему для обеспечения возможности установки распределенного приложения, когда выбранный компонент доступен.
16. Система для централизации управления распределенным компьютерным приложением, содержащая:
процессор и машиночитаемый носитель;
операционное окружение, хранящееся на машиночитаемом носителе и исполняемое в процессоре; и
инфраструктуру решения, хранящуюся на машиночитаемом носителе и исполняемую процессором, которая сконфигурирована:
выбирать службу из списка служб, доступных в кластере служб;
выбирать компонент, доступный в выбранной службе;
принимать от выбранной службы установочные данные, относящиеся к выбранному компоненту;
создавать пакетный файл в ответ на принятые данные, которые включают в себя установочные данные, который используется при создании распределенного компьютерного приложения; и сохранять пакетный файл на машиночитаемом носителе.
процессор и машиночитаемый носитель;
операционное окружение, хранящееся на машиночитаемом носителе и исполняемое в процессоре; и
инфраструктуру решения, хранящуюся на машиночитаемом носителе и исполняемую процессором, которая сконфигурирована:
выбирать службу из списка служб, доступных в кластере служб;
выбирать компонент, доступный в выбранной службе;
принимать от выбранной службы установочные данные, относящиеся к выбранному компоненту;
создавать пакетный файл в ответ на принятые данные, которые включают в себя установочные данные, который используется при создании распределенного компьютерного приложения; и сохранять пакетный файл на машиночитаемом носителе.
17. Система по п.16, в которой инфраструктура решения дополнительно сконфигурирована сохранять пакетный файл на машиночитаемом носителе посредством:
сохранения манифеста, описывающего выбранный компонент, в пакетном файле;
сохранения установочных данных в пакетном файле и
сохранения "водяного знака" в пакетном файле.
сохранения манифеста, описывающего выбранный компонент, в пакетном файле;
сохранения установочных данных в пакетном файле и
сохранения "водяного знака" в пакетном файле.
18. Система по п.16, в которой инфраструктура решения дополнительно сконфигурирована:
принимать индивидуализированный интерфейс выбора, характерный для типа компонента, доступного в службе; и
передавать индивидуализированный интерфейс выбора в интерфейс развертывания.
принимать индивидуализированный интерфейс выбора, характерный для типа компонента, доступного в службе; и
передавать индивидуализированный интерфейс выбора в интерфейс развертывания.
19. Система по п.17, в которой инфраструктура решения дополнительно сконфигурирована:
обрабатывать пакетный файл для извлечения установочных данных и
передавать установочные данные в распределенную компьютерную систему для обеспечения возможности установки распределенного компьютерного приложения.
обрабатывать пакетный файл для извлечения установочных данных и
передавать установочные данные в распределенную компьютерную систему для обеспечения возможности установки распределенного компьютерного приложения.
20. Система по п.19, в которой инфраструктура решения дополнительно сконфигурирована обрабатывать пакетный файл для извлечения установочных данных посредством:
передачи манифеста выбранной службе, ассоциированной с выбранным компонентом;
приема от службы информации о конфликтах;
централизованной обработки информации о конфликтах для определения того, существует ли конфликт;
передачи установочных данных выбранной службе для обеспечения возможности установки компонентов в ответ на централизованную обработку информации о конфликтах и
передачи вызова постразвертывания в кластер служб.
передачи манифеста выбранной службе, ассоциированной с выбранным компонентом;
приема от службы информации о конфликтах;
централизованной обработки информации о конфликтах для определения того, существует ли конфликт;
передачи установочных данных выбранной службе для обеспечения возможности установки компонентов в ответ на централизованную обработку информации о конфликтах и
передачи вызова постразвертывания в кластер служб.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/861,877 US20090083732A1 (en) | 2007-09-26 | 2007-09-26 | Creation and deployment of distributed, extensible applications |
US11/861,877 | 2007-09-26 | ||
PCT/US2008/076136 WO2009042421A2 (en) | 2007-09-26 | 2008-09-12 | Creation and deployment of distributed, extensible applications |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2010111569A RU2010111569A (ru) | 2011-09-27 |
RU2473112C2 true RU2473112C2 (ru) | 2013-01-20 |
Family
ID=40473096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2010111569/08A RU2473112C2 (ru) | 2007-09-26 | 2008-09-12 | Создание и развертывание распределенных расширяемых приложений |
Country Status (7)
Country | Link |
---|---|
US (1) | US20090083732A1 (ru) |
EP (1) | EP2203842A4 (ru) |
JP (1) | JP5269081B2 (ru) |
KR (1) | KR101574811B1 (ru) |
CN (1) | CN101809563B (ru) |
RU (1) | RU2473112C2 (ru) |
WO (1) | WO2009042421A2 (ru) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7840960B2 (en) * | 2002-12-17 | 2010-11-23 | Kabushiki Kaisha Toshiba | Content distribution method and content distribution package |
FR2920935B1 (fr) | 2007-09-06 | 2009-12-11 | Miyowa | Procede pour echanger des requetes entre l'application informatique d'un terminal mobile et un serveur de messagerie instantanee |
FR2923131B1 (fr) * | 2007-10-24 | 2010-01-15 | Miyowa | Procede et systeme de messagerie instantanee pour terminaux mobiles equipe d'un serveur de presence virtuelle configure pour gerer differentes listes de contacts d'un meme utilisateur |
FR2923130A1 (fr) * | 2007-10-24 | 2009-05-01 | Miyowa Sa | Procede et systeme de messagerie instantanee pour terminaux mobiles equipe d'un serveur de presence virtuelle permettant de gerer automatiquement une session de messagerie instantanee |
FR2926176B1 (fr) * | 2008-01-08 | 2014-10-10 | Miyowa | Reseau de communication de transfert d'informations entre un terminal mobile et des serveurs sources, ainsi que terminal et procede de gestion de transfert d'informations dans un tel reseau. |
US20100179982A1 (en) * | 2009-01-15 | 2010-07-15 | Miyowa | Method for auditing the data of a computer application of a terminal |
US20100228790A1 (en) * | 2009-03-03 | 2010-09-09 | Miyowa | Method for activating functionalities proposed in a computer terminal |
FR2944624A1 (fr) * | 2009-04-16 | 2010-10-22 | Miyowa | Procede pour autoriser une connexion entre un terminal informatique et un serveur source |
KR101812165B1 (ko) * | 2010-07-06 | 2017-12-26 | 엘지전자 주식회사 | 애플리케이션 확장 방법 및 그 방법을 이용한 영상표시기기 |
US9286037B2 (en) * | 2010-12-29 | 2016-03-15 | Microsoft Technology Licensing, Llc | Platform for distributed applications |
US8825864B2 (en) * | 2011-09-29 | 2014-09-02 | Oracle International Corporation | System and method for supporting a dynamic resource broker in a transactional middleware machine environment |
US20130117749A1 (en) * | 2011-11-03 | 2013-05-09 | Microsoft Corporation | Provisioning and Managing an Application Platform |
US9569274B2 (en) | 2012-10-16 | 2017-02-14 | Microsoft Technology Licensing, Llc | Distributed application optimization using service groups |
US9323514B2 (en) | 2013-05-30 | 2016-04-26 | Microsoft Technology Licensing, Llc | Resource package indexing |
US20140357357A1 (en) | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Game bundle package |
US9766870B2 (en) | 2013-05-30 | 2017-09-19 | Microsoft Technology Licensing, Llc | Bundle package generation |
CN105094758A (zh) * | 2014-04-29 | 2015-11-25 | 国际商业机器公司 | 用于避免事务回滚的方法和装置 |
US10809989B2 (en) | 2017-05-05 | 2020-10-20 | Servicenow, Inc. | Service release tool |
JP6855348B2 (ja) * | 2017-07-31 | 2021-04-07 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置およびダウンロード処理方法 |
CN112114939A (zh) * | 2020-09-04 | 2020-12-22 | 青岛海信网络科技股份有限公司 | 一种分布式系统部署设备和方法 |
US11893120B1 (en) * | 2022-09-08 | 2024-02-06 | Soos Llc | Apparatus and method for efficient vulnerability detection in dependency trees |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020133814A1 (en) * | 2000-11-29 | 2002-09-19 | Bourke-Dunphy Erin M. | System and method to facilitate installation of components across one or more computers |
US20030182656A1 (en) * | 2001-09-06 | 2003-09-25 | Burton Leathers | Deployment manager for organizing and deploying an application in a distributed computing environment |
RU2004128233A (ru) * | 2003-09-22 | 2006-03-10 | Майкрософт Корпорейшн (Us) | Способ и система для распространения и установки программного обеспечения |
US20070168911A1 (en) * | 2003-08-20 | 2007-07-19 | Norikazu Takashima | Program creating system, program creating program, and program creating module |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09134282A (ja) * | 1995-11-08 | 1997-05-20 | Hitachi Ltd | プログラム作成方法 |
US6256771B1 (en) * | 1997-10-16 | 2001-07-03 | At&T Corp. | Method and apparatus for providing a dynamic service composition software architecture |
US6330710B1 (en) * | 1998-06-19 | 2001-12-11 | At&T Corp. | Servlet-based architecture for dynamic service composition |
US6718364B2 (en) * | 1999-08-10 | 2004-04-06 | Sun Microsystems, Inc. | Method and apparatus for expedited file downloads in an applet environment |
AU2001253716A1 (en) * | 2000-04-21 | 2001-11-07 | Togethersoft Corporation | Methods and systems for finding and displaying linked objects |
US7310801B2 (en) * | 2000-04-27 | 2007-12-18 | Microsoft Corporation | Servicing a component-based software product throughout the software product lifecycle |
US6622259B1 (en) * | 2000-07-14 | 2003-09-16 | International Business Machines Corporation | Non-disruptive migration of coordinator services in a distributed computer system |
US7188158B1 (en) * | 2000-07-15 | 2007-03-06 | Hewlett-Packard Development Company, L.P. | System and method for component-based software development |
US7363354B2 (en) * | 2001-11-29 | 2008-04-22 | Nokia Corporation | System and method for identifying and accessing network services |
US7340520B1 (en) * | 2002-04-01 | 2008-03-04 | Microsoft Corporation | System and method to facilitate manageable and agile deployment of services in accordance with various topologies |
EP1429513A1 (en) * | 2002-12-09 | 2004-06-16 | Koninklijke Philips Electronics N.V. | Method and apparatus for searching data in a peer to peer network |
US20040148370A1 (en) * | 2003-01-23 | 2004-07-29 | Electronic Data Systems Corporation | System and method for composing, configuring, deploying, and managing services using a graphical user interface |
US7412686B2 (en) * | 2003-02-10 | 2008-08-12 | Microsoft Corporation | Integrated development environment access to remotely located components |
US7072807B2 (en) * | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7260599B2 (en) * | 2003-03-07 | 2007-08-21 | Hyperspace Communications, Inc. | Supporting the exchange of data by distributed applications |
US7831693B2 (en) * | 2003-08-18 | 2010-11-09 | Oracle America, Inc. | Structured methodology and design patterns for web services |
CN100407154C (zh) * | 2004-04-29 | 2008-07-30 | 国际商业机器公司 | 在分布式网络体系结构中建模和动态部署服务的系统和方法 |
EP1684170A3 (en) * | 2005-01-21 | 2007-01-24 | Outsystems, software em redes, S. A. | Software development system and method |
US20070050446A1 (en) * | 2005-02-01 | 2007-03-01 | Moore James F | Managing network-accessible resources |
CN100416449C (zh) * | 2005-04-29 | 2008-09-03 | 国际商业机器公司 | 软件服务提供商自动获得及运行软件服务的方法和装置 |
JP4126705B2 (ja) * | 2005-06-17 | 2008-07-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ソフトウェア・パッケージを再構成する方法、装置、プログラム |
JP2007072712A (ja) * | 2005-09-06 | 2007-03-22 | Nippon Telegr & Teleph Corp <Ntt> | 利用情報を用いたサービス部品発見システム及び方法 |
US20070156872A1 (en) * | 2005-12-30 | 2007-07-05 | Stoyanova Dimitrina G | Method and system for Web services deployment |
US7925554B1 (en) * | 2006-12-29 | 2011-04-12 | Amazon Technologies, Inc. | Using configured application pricing to determine end user fees for use of invocable services |
-
2007
- 2007-09-26 US US11/861,877 patent/US20090083732A1/en not_active Abandoned
-
2008
- 2008-09-12 EP EP08834149A patent/EP2203842A4/en not_active Withdrawn
- 2008-09-12 KR KR1020107006157A patent/KR101574811B1/ko active IP Right Grant
- 2008-09-12 JP JP2010527015A patent/JP5269081B2/ja not_active Expired - Fee Related
- 2008-09-12 RU RU2010111569/08A patent/RU2473112C2/ru not_active IP Right Cessation
- 2008-09-12 WO PCT/US2008/076136 patent/WO2009042421A2/en active Application Filing
- 2008-09-12 CN CN200880109406.6A patent/CN101809563B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020133814A1 (en) * | 2000-11-29 | 2002-09-19 | Bourke-Dunphy Erin M. | System and method to facilitate installation of components across one or more computers |
US20030182656A1 (en) * | 2001-09-06 | 2003-09-25 | Burton Leathers | Deployment manager for organizing and deploying an application in a distributed computing environment |
US20070168911A1 (en) * | 2003-08-20 | 2007-07-19 | Norikazu Takashima | Program creating system, program creating program, and program creating module |
RU2004128233A (ru) * | 2003-09-22 | 2006-03-10 | Майкрософт Корпорейшн (Us) | Способ и система для распространения и установки программного обеспечения |
Also Published As
Publication number | Publication date |
---|---|
CN101809563B (zh) | 2013-03-06 |
KR20100074149A (ko) | 2010-07-01 |
EP2203842A2 (en) | 2010-07-07 |
EP2203842A4 (en) | 2011-08-24 |
JP2010541070A (ja) | 2010-12-24 |
WO2009042421A2 (en) | 2009-04-02 |
RU2010111569A (ru) | 2011-09-27 |
JP5269081B2 (ja) | 2013-08-21 |
WO2009042421A3 (en) | 2009-05-28 |
US20090083732A1 (en) | 2009-03-26 |
KR101574811B1 (ko) | 2015-12-04 |
CN101809563A (zh) | 2010-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2473112C2 (ru) | Создание и развертывание распределенных расширяемых приложений | |
US11501533B2 (en) | Media authentication using distributed ledger | |
CN110263035B (zh) | 基于区块链的数据存储、查询方法及装置和电子设备 | |
US11281457B2 (en) | Deployment of infrastructure in pipelines | |
JP7361165B2 (ja) | 分散型台帳を用いて公共のソフトウェアコンポーネント・エコシステムを管理するためのシステムおよび方法 | |
CN111213340B (zh) | 选择用于密码功能的证明委托并使其安全 | |
JP7350845B2 (ja) | ブロックチェーン・リソースを格納するブロックチェーン通知ボード | |
US9317709B2 (en) | System and method for detecting and integrating with native applications enabled for web-based storage | |
US11308194B2 (en) | Monitoring device components using distributed ledger | |
JP2021518705A (ja) | ブロックチェーン台帳のためのランタイム自己修正 | |
JP5801482B2 (ja) | キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム | |
CN112883117B (zh) | 一种数据同步方法、设备以及计算机可读存储介质 | |
CN111339551B (zh) | 数据的验证方法及相关装置、设备 | |
US8700750B2 (en) | Web deployment functions and interfaces | |
CN112131041A (zh) | 用于管理数据放置的方法、设备和计算机程序产品 | |
CN111327680B (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
CN115129275A (zh) | 一种数字文件打印方法、装置、电子设备及存储介质 | |
US10992748B1 (en) | Verification of event-based synchronization | |
JP4668099B2 (ja) | トランザクション認証方法、ファイル送受信システム、クライアント装置、サーバ装置、および記録媒体 | |
CN116804949B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN113327108B (zh) | 一种交易处理方法、相关设备及计算机可存储介质 | |
JP2008015857A (ja) | ネットワークシステム、プログラム、ネットワークシステムのアプリケーション実行方法 | |
US20240291670A1 (en) | Selecting, authenticating, and installing individual components of agent software stacks | |
EP4454201A1 (en) | Software application feature access and enhancement using non-fungible tokens | |
GB2617547A (en) | Software application feature access and enhancement using non-fungible tokens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20150526 |
|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20170913 |