RU2424552C2 - Расщепленная загрузка для электронных загрузок программного обеспечения - Google Patents

Расщепленная загрузка для электронных загрузок программного обеспечения Download PDF

Info

Publication number
RU2424552C2
RU2424552C2 RU2007144714/08A RU2007144714A RU2424552C2 RU 2424552 C2 RU2424552 C2 RU 2424552C2 RU 2007144714/08 A RU2007144714/08 A RU 2007144714/08A RU 2007144714 A RU2007144714 A RU 2007144714A RU 2424552 C2 RU2424552 C2 RU 2424552C2
Authority
RU
Russia
Prior art keywords
isv
software
download
customer
isvs
Prior art date
Application number
RU2007144714/08A
Other languages
English (en)
Other versions
RU2007144714A (ru
Inventor
Йорк Р. ХАТТОН (US)
Йорк Р. ХАТТОН
Кристофер С. БЛЕКЛИ (US)
Кристофер С. БЛЕКЛИ
Аджай СИККА (US)
Аджай СИККА
Даниал Дж. НЕУЛТ (US)
Даниал Дж. НЕУЛТ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2007144714A publication Critical patent/RU2007144714A/ru
Application granted granted Critical
Publication of RU2424552C2 publication Critical patent/RU2424552C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Изобретение относится к области электронных загрузок программного обеспечения. Техническим результатом является упрощение и ускорение загрузки электронного программного обеспечения по частям в основанной на компонентах структуре. Способ содержит этапы, на которых принимают заказ от заказчика на закупку загружаемого программного обеспечения; формируют транзакцию, связанную с заказом; идентифицируют множество независимых поставщиков программного обеспечения (ISV), каждый из которых выполнен с возможностью передавать часть программного обеспечения, причем для сборки полного программного обеспечения требуются все части; при этом один из множества ISV содержит диспетчер ISV, который взаимодействует с библиотекой ISV для отслеживания авторизации, безопасности и проверки достоверности, проверяет соединение между одним из множества ISV и другим из множества ISV, определяет порог выравнивания нагрузки для равномерного распределения операций обработки по множеству ISV и определяет, когда начинать, приостанавливать, возобновлять и прекращать передачу данных на любой машине, которая запрашивает обмен данными с одним из множества ISV; предоставляют транзакцию ISV; определяют информацию о закупке и загрузке, связанную с транзакцией; и отправляют информацию о закупке и загрузке заказчику. 3 н. и 8 з.п. ф-лы, 14 ил.

Description

УРОВЕНЬ ТЕХНИКИ
Растущие достижения в компьютерной технологии (например, в быстродействии микропроцессоров, емкости памяти, ширине полосы пропускания пересылки данных, программно реализованных функциональных возможностях и тому подобном), в целом, оказали содействие расширенному применению компьютеров в различных отраслях промышленности. Еще более мощные серверные системы, которые часто сконфигурированы в виде массива серверов, в большинстве случаев предусмотрены для обслуживания запросов, возникающих из внешних источников, например, таких, как Всемирная паутина.
В то время как системы программного обеспечения стали более сложными, становится общепринятым загружать и собирать такие системы из множества объектов и файлов. Например, система программного обеспечения может включать в себя сотни файлов или объектов, при этом сборка программного обеспечения или систем(ы) программного обеспечения может совершаться на одной или более сборочных машинах и загружаться в аппаратуру промежуточного запоминающего устройства. Такие сборочные машины и процессы загрузки, например, могут компилировать, компоновать, связывать и/или интерпретировать файлы или объекты. Типично - объектно-ориентированная обработка данных основана на объектной модели, в которой компоненты кода, называемые «объектами», удерживают данные (например, атрибуты) и могут содержать действия (например, операции), выполняемые над ними. Объект может быть определен его интерфейсом, при этом интерфейс определяет характеристики и поведение вида объекта, в том числе операций, которые могут выполняться над объектом такого интерфейса, и параметры для каждой операции. Отдельный экземпляр объекта идентифицируется в пределах распределенной объектной системы уникальным идентификатором, называемым объектной ссылкой.
Многие из необходимых файлов в завершенном программном продукте могут собираться на различных стадиях, соответственно требуя множества источников и/или сформированных/собранных файлов. Файлы, сформированные одной частью процесса сборки, могут потребоваться в качестве входных данных для одной или более других частей процесса сборки, а сборочные машины могут иметь в распоряжении полные копии исходных файлов. Например, если сборочная машина A формирует файл A1, а сборочная машина B формирует файл B2, сборочной машине A может понадобиться файл B1 для создания файла A2, а сборочной машине B может понадобиться файл A1 для создания файла B2.
В распределенной объектной системе клиент также может создавать заместителя, который формирует образ объекта на сервере. Типично - заместитель является образом объекта, тогда как объект находится в другой логической и/или физической сущности (например, машине, процессе, сети и тому подобном). В распределенных системах заместители могут помогать локальной обработке улучшать производительность. Объект, который представлен таким образом, может осуществлять реализацию первого набора из одного или более интерфейсов и типов данных базового класса. Более того, такой объект может требовать, чтобы заместитель загружал первый набор из одного или более атрибутов и/или методов для создания образа объекта. Когда заместитель создан для объекта, который представлен таким образом, интерфейс и базовые типы данных, реализуемые объектом, типично загружаются на клиента автоматически.
Распределение файлов, необходимых для завершения сборки системы программного обеспечения сборочными машинами, вовлеченными в сборку, является емким по пропускной способности сети, требующим больших переносов информации, некоторое количество которой может становиться искаженной или даже недействительной во время загрузки. Например, одной сборочной машине может понадобиться только десять файлов для завершения своего участка сборки, тогда как другой сборочной машине может понадобиться двести файлов для завершения своего участка сборки, но даже один отсутствующий файл или объект может препятствовать надлежащей работе необходимого приложения, например, ввиду невыполнения надлежащей загрузки во время чтения, проверки действительности или выполнения.
Одновременно загружаемые файлы от множества независимых поставщиков программного обеспечения могут быть необходимы для надлежащей работы приложения или программы. Таковое может порождать неэффективность в выборе оптимальной организации протекания развертывания и ввода в действие загруженного программного обеспечения. Например, процесс доставки сертификата и тарифа может подвергаться неблагоприятному воздействию. Более того, с точки зрения политики в области бизнеса, поставщик программного обеспечения может пожелать поставлять свое программное обеспечение непосредственно конечному пользователю без другого поставщика программного обеспечения, извлекающего выгоду из доступа к нему. К тому же ограничения лицензирования могут существовать при электронном распространении такого программного обеспечения. Дополнительно - разработчики программного обеспечения не будут распространять свои работы на платформы, которые они считают «потенциально враждебными», например, когда существует возможность для мошенничества, при этом нет никакой гарантии, что лицензия выдана авторизованному устройству.
Поэтому есть необходимость преодолеть вышеупомянутые примерные недостатки, ассоциативно связанные с традиционными системами и устройствами.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Последующее представляет упрощенное краткое изложение изобретения, для того чтобы обеспечить базовое понимание некоторых аспектов изобретения. Это краткое изложение не является исчерпывающим обозрением изобретения. Оно не предназначено для определения ключевых/критических элементов изобретения или для очерчивания объема изобретения. Его единственная цель состоит в том, чтобы представить некоторые идеи изобретения в упрощенном виде, в качестве вступления в более подробное описание, которое представлено позже.
Задача настоящего изобретения состоит в том, чтобы упростить и ускорить загрузку электронного программного обеспечения (ESD) в основанной на компонентах инфраструктуре посредством применения механизма распределения загрузки, который дает каждому независимому поставщику программного обеспечения возможность загружать соответственные порции своего программного обеспечения и/или цифрового контента к пользователю. По существу, механизм распределения загрузки может замещать обмен данными между первым ISV и вторым ISV, чтобы поставлять информацию, такую как порции программного обеспечения, которые должны загружаться к пользователю от каждого ISV, любой дополнительный или вспомогательный компонент, который еще необходимо загрузить пользователю для надлежащего запуска программного обеспечения, требования лицензирования, процедуры выставления счетов и тому подобное. Должно быть принято во внимание, что, хотя описание в материалах настоящей заявки пояснено, главным образом, в контексте для взаимодействия между первым ISV и вторым ISV, данное изобретение не является ограниченным до такой степени и может быть реализовано как часть трех или более ISV. В дополнение - в некоторых аспектах данного изобретения первый ISV может быть той же самой сущностью, что и второй ISV.
В связанном аспекте механизм распределения загрузки дополнительно может включать в себя компонент контроля для наблюдения за загрузкой программного обеспечения и/или цифрового контента от первого ISV к пользователю и подготовки процесса для установки оставшихся компонентов программного обеспечения от второго ISV к пользователю. Например, при инициировании загрузки с первого ISV, маркер может пересылаться второму ISV в фоновом режиме для предоставления информации о загрузке (например, идентификации, выставления счетов, требования лицензирования, контроля версий, аутентификации, защиты прав доступа, управления цифровыми правами и тому подобного), при этом второй ISV может снабжаться указанием поставлять надлежащую версию программного обеспечения, которое должно быть загружено (например, для конкретной географии, языка и тому подобного). Таким образом, заказчик/конечный пользователь может наслаждаться цельным впечатлением при загрузке программного обеспечения. Такая загрузка от первого ISV и второго ISV может происходить одновременно или с определенными промежутками, либо откладываться до более позднего времени с уведомлениями напоминания, отправляемыми заказчику/конечному пользователю. Более того, возможности прерываний могут быть задействованы в качестве части расщепления загрузки, при этом состояние загрузок может регистрироваться и/или прослеживаться на основании пользовательского запроса.
Согласно дополнительному аспекту данного изобретения, механизм распределения загрузки по данному изобретению может включать в себя компонент обнаружителя, который обнаруживает недостающие порции программного обеспечения, которым необходимо загружаться с первого или второго ISV, и компонент уведомления, который уведомляет пользователя, откуда следует загрузить недостающую порцию и/или получить дополнительную информацию о решении проблем, ассоциативно связанных с недостающей порцией загружаемого программного обеспечения, для их пополнения. Таковое типично может гарантировать надлежащую проверку действительности и/или выполнение программного обеспечения (или цифрового контента), загруженного конечным пользователем.
Соответственно, в управляемых компонентами архитектурах, в которых продукт может собираться из множества более мелких компонентов, таких как пакеты, которые содержат в себе группу функциональных возможностей, механизм распределения загрузки по данному изобретению может содействовать процессу загрузки наряду со смягчением проблем с вопросами лицензирования и защиты. По существу, каждый ISV может сохранять необходимый контроль над распространением своего программного обеспечения. Более того, отзывы, исправления и тому подобное могут легко обеспечиваться надлежащим ISV для соответственной загрузки. Дополнительно - может происходить распространение поставляемых в комплекте лицензий, при этом маркеры управления цифровыми правами могут сообщаться пользователям.
В еще одном аспекте предложена система для закупки и распространения программного обеспечения с использованием расщепленной загрузки. Система включает в себя многочисленные ISV, специалиста регистрации и диспетчера загрузки. Каждый ISV сконфигурирован для поставки порции загружаемого программного обеспечения, где каждая порция поставляется отдельным ISV. Специалист регистрации сконфигурирован для управления заказом на загружаемое от заказчика программное обеспечение. Специалист регистрации также сконфигурирован для формирования транзакции, ассоциативно связанной с заказом, и для выдачи транзакции на ISV. Диспетчер загрузки является клиентским компонентом на устройстве заказчика. Диспетчер загрузки сконфигурирован для загрузки порций программного обеспечения от ISV и сборки завершенного программного обеспечения из загруженных порций.
Для выполнения вышеизложенных и связанных целей изобретение, к тому же, содержит признаки, полностью описанные в дальнейшем. Последующее описание и прилагаемые чертежи подробно излагают определенные иллюстративные аспекты изобретения. Однако эти аспекты являются показывающими лишь некоторые из различных способов, с помощью которых могут применяться принципы изобретения. Другие аспекты, преимущества и элементы новизны изобретения будут становиться очевидными из последующего подробного описания изобретения, которое рассматривается в соединении с чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 иллюстрирует схематичную структурную схему механизма распределения загрузки в соответствии с аспектом данного изобретения.
Фиг.2 иллюстрирует схематичную структурную схему, основанную на компонентах среды, с механизмом распределения загрузки в соответствии с аспектом данного изобретения.
Фиг.3 иллюстрирует примерный механизм распределения загрузки в соответствии с примерным аспектом данного изобретения.
Фиг.4 иллюстрирует детализированную структурную схему решателя распределения, который может поставлять информацию о недостающих частях загруженного программного обеспечения/цифрового контента, согласно конкретному аспекту данного изобретения.
Фиг.5 иллюстрирует общую структурную схему системы контроля в качестве части механизма распределения загрузки в соответствии с дополнительным аспектом данного изобретения.
Фиг.6a и 6b иллюстрирует компоновки первого ISV и второго ISV по отношению к заказчикам и/или конечным пользователям согласно конкретному аспекту данного изобретения.
Фиг.7 иллюстрирует примерную последовательность этапов запроса между первым ISV и вторым ISV в соответствии с аспектом данного изобретения.
Фиг.8 иллюстрирует примерную архитектуру для ISV, который может расщеплять загрузку согласно конкретному аспекту данного изобретения.
Фиг.9 иллюстрирует примерный способ расщепления загрузки программного обеспечения/цифрового контента к конечному пользователю между первым ISV и вторым ISV.
Фиг.10 иллюстрирует краткое общее описание подходящей вычислительной среды, в которой могут быть реализованы различные аспекты данного изобретения.
Фиг.11 иллюстрирует систему клиент-сервер, которая может применять механизм распределения загрузки согласно одному из аспектов настоящего изобретения.
Фиг.12 показывает примерную систему для закупки и распространения программного обеспечения с использованием расщепленной загрузки.
Фиг.13 показывает примерную последовательность операций для обработки заказа на программное обеспечение, которое должно поставляться посредством расщепленной загрузки.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Изобретение далее описано со ссылкой на чертежи, на которых одинаковые номера ссылок используются для ссылки на идентичные элементы на всем протяжении. В последующем описании, в целях пояснения, многочисленные характерные детали изложены для того, чтобы обеспечить исчерпывающее понимание предмета изобретения. Однако может быть очевидно, что изобретение может быть осуществлено на практике без этих характерных деталей. В других случаях широко известные конструкции и устройства показаны в виде структурной схемы для того, чтобы облегчить описание изобретения.
В качестве используемых в этой заявке термины «компонент» и «система» предназначены для ссылки на связанную с применением вычислительной машины сущность, любое из аппаратных средств, сочетание аппаратных средств и программного обеспечения, программного обеспечения или программного обеспечения в течение исполнения. Например, компонент может быть, но не в качестве ограничения, процессом, работающим на процессоре, процессором, объектом, исполняемым файлом, потоком управления, программой и/или компьютером. В качестве иллюстрации - как приложение, работающее на сервере, так и сервер могут быть компонентом. Один или более компонентов могут находиться в пределах процесса и/или потока управления, и компонент может быть локализован на одном компьютере и/или распределен между двумя или более компьютерами.
В начале, со ссылкой на фиг.1, проиллюстрирована схематичная структурная схема механизма распределения загрузки в соответствии с аспектом изобретения. Такой механизм 100 распределения загрузки дает возможность N независимым поставщикам(у) 102, 104, 106 программного обеспечения/цифрового контента (ISV) (где N - целое число) загружать соответственную порцию своего программного обеспечения и/или цифрового контента к M конечным пользователям(ю) 101, 103 и 105 (M - целое число). Такие конечные пользователи могут содержать устройства, такие как карманные компьютеры, персональные цифровые секретари, медиаплееры, телевизоры, компьютеры и тому подобное.
В дополнение - конечный пользователь(и) 101, 103, 105 может быть частью сетевой системы 107, которая может быть сетью масштаба системы или другим типом сети, и может включать в себя несколько хост-узлов (не показаны), которые могут быть персональными компьютерами, серверами или другими типами компьютеров. Такой хост-узел обычно может быть обеспечивающим работу или выполнение одной или более программ прикладного уровня (или пользовательского уровня), а также инициирование запросов I/O (ввода/вывода) (например, I/0 считываний и записей). В дополнение - сетевая система 107 дополнительно может включать в себя один или более блоков ввода/вывода (блоков I/O), при этом такие блоки I/O могут включать в себя один или более контроллеров I/O, присоединенных к ним, а каждый I/O может быть любым из некоторых типов устройств I/O, таких как запоминающие устройства (например, накопитель на жестком диске, накопитель на магнитной ленте) или другим устройством I/O. Хост-узлы и блоки I/O, а также их прикрепленные контроллеры и устройства I/O, могут быть организованы в группы, такие как кластеры, причем каждый кластер включает в себя один или более хост-узлов и типично один или более блоков I/O (каждый блок I/O включает в себя один или более контроллеров I/O). Хост-узлы и узлы I/O могут быть взаимосвязаны через совокупность маршрутизаторов, коммутаторов и линий связи (таких как провода, соединители, кабели и тому подобное), которые соединяют наборы узлов (например, соединяют набор хост-узлов и блоков I/O) одного или более кластеров.
Более того, сетевая система 107 может быть, например, LAN (локальной сетью) Ethernet, LAN кольцевой структуры с маркерным доступом или другой LAN, либо глобальной сетью (WAN). К тому же сетевая система 107 может включать в себя тракты соединенных кабелем и/или оптических, и/или беспроводных соединений. Как будет подробно пояснено ниже, механизм 100 распределения загрузки может замещать обмен данными между ISV 102, 104, 106, чтобы поставлять информацию, такую как порции программного обеспечения, которые должны быть загружены к пользователю от каждого ISV, любой дополнительный компонент, который еще необходим пользователю для надлежащего запуска программного обеспечения, требований лицензирования, выставления счетов и тому подобного.
Как будет более подробно обсуждено ниже, загрузка комплектов программного обеспечения может расщепляться, чтобы дать поставщикам программного обеспечения возможность больших результативностей и контроля над их соответственными продуктами. Одиночному ISV больше не требуется комплектовать все программное обеспечение, ассоциативно связанное с его соответственным продуктом, и распространять такой комплект программного обеспечения пользователям. Комплекты программного обеспечения теперь могут расщепляться и электронным образом распространяться до конечных пользователей дифференцированными сущностями (например, фактическими производителями соответственного программного обеспечения). Посредством расщепления комплекта программного обеспечения вторичные порции комплекта программного обеспечения, ассоциативно связанные с первым ISV программного продукта, могут независимо поставляться производителем вторичных порций непосредственно конечному пользователю. Действие, таким образом, предоставляет производителю вторичного программного обеспечения больший контроль (например, распространения, способа распространения, установки, сопровождения, управления версиями, лицензирования, защиты и т.п.) над продуктом.
Различные сценарии будут обсуждены более подробно для такого распространения программного обеспечения, в том числе, например: (1) в то время как или после того как программное обеспечение загружается от первого ISV, второму ISV дается указание осуществлять загрузку к конечному пользователю своего соответственного программного обеспечения, ассоциативно связанного с программным обеспечением первого ISV - такое указание может возникать непосредственно от конечного пользователя или даже первого ISV; (2) второй ISV также может использовать первого ISV в качестве заместителя для загрузки своего программного обеспечения или, в качестве альтернативы, служит заместителем для первого ISV и его соответственного программного обеспечения; (3) второй ISV также может применять управление цифровыми правами и загружать многочисленные лицензии для своего соответственного программного обеспечения к конечному пользователю; (4) после начальной загрузки второй ISV может смягчать контроль версий по отношению к своему программному обеспечению, а также удерживание согласованным и совместимым с программным обеспечением первого ISV и другим программным обеспечением/аппаратными средствами конечного пользователя; (5) распространение программного обеспечения может выполняться через проводное соединение, а также беспроводным образом, и может задействовать любую подходящую среду передачи, а также протокол связи, пригодный для осуществления такого электронного распространения; (6) хотя полностью электронное распространение предполагается наиболее типичным, принимается во внимание, что распространение также может быть раздвоенным (если требуется) из условия, чтобы определенные порции программного обеспечения распространялись электронным образом, а другие порции распространялись физически; (7) схемы аутентификации, защиты и управления цифровыми правами могут применяться для совершения и облегчения электронного распространения соответственных порций комплекта программного обеспечения. Вышеизложенные и дополнительные сценарии будут обсуждены здесь и/или легко очевидны из доктрин этого документа, а все такие реализации предполагаются подпадающими под объем охраны прилагаемой к нему формулы изобретения.
В начале, со ссылкой на фиг.2, проиллюстрирован механизм 201 распределения загрузки, который может облегчать сборку приложения из пакетов (например, группы функциональных возможностей), загруженных от ISV 240 посредством применения компонента 203 обнаружителя, который выявляет недостающие части загруженного программного обеспечения и/или цифрового контента, и компонент 205 уведомления, который уведомляет пользователя, откуда следует получать недостающий объект(ы) и/или получить дополнительную информацию о решении проблем, ассоциативно связанных с недостающей частью. По существу, во время загрузки программного обеспечения от первого ISV механизм 201 распределения загрузки может выявлять недостающую часть(и) такого комплекта программного обеспечения и давать пользователю возможность загружать недостающую часть от второго ISV и/или поставлять информацию о том, каким образом решить проблемы, имеющие отношение к надлежащей загрузке и приведению в исполнение недостающих частей от второго ISV.
Как проиллюстрировано, система 200 может управлять распределением и накоплением загруженных пакетов и/или файлов, вовлеченных в сборку прикладной системы 220. Более того, в такой среде с управляемой компонентами архитектурой компоненты типично могут указываться ссылкой как отдельные компоненты функциональных возможностей, которые могут подвергаться доступу через специфицированный контрактом интерфейс. Такие компоненты могут быть самостоятельными и ясно опознаваемыми артефактами, которые описывают и/или выполняют определенные функции. Например, основные возможности основанной на компонентах системы 200 могут включать в себя способность взаимодействия по сетям, переносимость на разные аппаратные или программные платформы и способность самостоятельного управления информационными ресурсами.
Система 200 может включать в себя множество сборочных машин 202, 204, 206, 208 (от 1 до L, где L - целое число), вместе указываемых ссылкой как сборочные машины 210. Специалистами в данной области техники должно приниматься во внимание, что сборочной машиной 210 могут быть физические машины (например, один или более компьютеров), и/или виртуальные машины (например, один или более процессов, работающих на одном или более компьютерах). Сборочная машина 210 может создавать один или более сборочных файлов, применяемых в прикладной системе 220.
Сборочные машины 210 могут компилировать, компоновать, интерпретировать и/или связывать один или более исходных файлов в один или более сборочных файлов. По мере того, как один сегмент сборочной машины 210 собирает один или более сборочных файлов, другой сегмент сборочной машины 210 может компилировать списки имен тех сборочных файлов, которые опубликованы. Например, опубликованный файл может быть тем, который перечислен в качестве опубликованного файла в одном или более сборочных файлах проекта, ассоциативно связанных с системой программного обеспечения или приложением 220, загруженными от ISV 240 и собранными из такой загрузки. Сборочная машина 210 затем может передавать списки имен сборочных файлов диспетчеру 214 сборки. Один сегмент сборочных машин также может быть назначен в качестве послесборочной машины 216, при этом диспетчер 214 сборки затем может определять для каждого сегмента сборочных машин список, содержащий в себе подмножество имен файлов, которые сборочная машина 210 должна передавать послесборочной машине 216, которая создает совокупность или набор 218 сборочных файлов. Диспетчер 214 сборки также может определять для каждого сегмента сборочной машины 210 список, содержащий в себе подмножество имен файлов, которые сборочная машина 210 должна принимать обратно из послесборочной машины 216. Как только списки имен файлов для передачи в и приема из послесборочной машины 216 были распространены по сборочным машинам 210, файлы могут пересылаться в и из послесборочной машины 216. Пересылки файлов могут инициироваться, например, сегментом сборочной машины 210, диспетчером 214 сборки, послесборочной машиной 216 или другим процессом. Система 200 может подвергаться одной или более стадиям последовательностей операций, описанных выше, для завершения сборки прикладной системы 220 на машине пользователя. На одной или более стадий система 200 может ожидать, чтобы сборочные машины 210 завершили свою сборку и копирование в послесборочную машину 216 перед инициированием получения файлов из послесборочной машины 216. Должно приниматься во внимание, что, хотя диспетчер 214 сборки и послесборочная машина 216 проиллюстрированы независимо, последовательности операций, выполняемые диспетчером 214 сборки и/или послесборочной машиной 216, могут выполняться на одних и тех же физических и/или виртуальных машине или машинах. Для надлежащего выполнения прикладной системы 220 при столкновении с недостающей порцией загруженного программного обеспечения механизм 201 распределения загрузки применяет компонент 203 обнаружителя, который по загрузке пакетов на машину выявляет любую недостающую часть, и впоследствии пользователю дается возможность загрузить недостающую часть от надлежащего ISV или получить информацию о том, каким образом решить проблему через компонент 205 уведомления.
Фиг.3 иллюстрирует примерный механизм 301 распределения загрузки в соответствии с примерным аспектом данного изобретения, в котором решатель 303 распределения действует как часть компонента 305 уведомления. Механизм 301 распределения загрузки действует в распределенной объектной системе, в которой пакетные объекты 310 могут загружаться в виде загрузок программного обеспечения от ISV. При загрузке соответственной части приложения от ISV на машину пользователя решатель 303 распределения, затем может содействовать поставке недостающей порции приложения предоставлением контактной информации о конкретном ISV, с которым необходимо контактировать для надлежащей загрузки недостающей порции приложения, чтобы гарантировать его надлежащую работу. Решатель 303 распределения может определять, какие из компонентов являются недостающими из загрузки от первого ISV, а какие необходимы для получения от второго ISV. Такие элементы могут извлекаться и сохраняться на постоянной основе, при этом решатель 303 распределения может подвергаться одной или более итерациям последовательностей операций, описанных выше, чтобы завершить загрузку приложения.
Далее, обращаясь к фиг.4, проиллюстрирована детализированная структурная схема решателя 403 распределения, который может поставлять информацию о недостающей части загруженного программного обеспечения и ISV, от которого должна быть получена такая недостающая часть. Решатель 403 распределения может включать в себя одну или более подсистем (например, считыватель 410 метаданных, подсистему 420 идентификации атрибутов, подсистему 430 заполнения атрибутов) для содействия возможностям распределения загрузки предоставленным механизмом 401 распределения загрузки. Считыватель 410 метаданных может выбирать, в качестве входных данных, один или более компонентов метаданных, ассоциативно связанных с одним или более недостающими объектами и/или типами данных, которые должны быть разрешены. Такие метаданные могут содержать в себе информацию, включающую в себя, например, список атрибутов в типе данных, ассоциативно связанном с метаданными (где список включает в себя наименования атрибутов, типы, размеры и тому подобное, типы параметров, размеры параметров, адреса и тому подобное), и информацию, идентифицирующую один или более классов, которые могут применяться для взаимодействия с типом данных, если сущность, с которой требуется взаимодействие, не содержит имеющегося в распоряжении описания типа данных (например, порождающего класса).
В дополнение - структуры данных, имеющие отношение к недостающей порции программного обеспечения и объектов или ссылок, могут включать в себя массив, список, частично упорядоченное дерево, стек, таблицу, запись базы данных, таблицу базы данных, базу данных и информационный куб, которые могут применяться в соответствии с данным изобретением. Соответственно - такая информация, идентифицирующая один или более классов недостающих ссылок и/или объектов, может использоваться для взаимодействия с типом данных и для определения, откуда такие данные могут быть получены. Считыватель 410 метаданных может оперативно присоединяться к подсистеме 420 идентификации атрибутов и подсистеме 430 заполнения атрибутов, чтобы содействовать таким подсистемам, идентифицирующим и/или сравнивающим несоответствующие или недостающие объекты и/или типы данных в отношении исходных ссылок надлежащего ISV.
В дополнение - как только решатель 403 распределения через подсистему 420 идентификации атрибутов определил недостающую порцию объектов ссылок, затем подсистема 430 заполнения атрибутов может использоваться для извлечения значений и/или загрузки недостающих объектов от надлежащего ISV. Соответственно - в основанных на компонентах средах программирования, данное изобретение может способствовать распределенным загрузкам от множества ISV, чтобы дать возможность надлежащей загрузки и работы приложения на машине пользователя.
Далее, обращаясь к фиг.5, проиллюстрирована общая структурная схема системы 510 контроля в качестве части механизма распределения загрузки в соответствии с конкретным аспектом данного изобретения. Система контроля может активно следить за недостающей частью загруженного приложения и/или объектов и выдает гиперссылки в реальном времени для загрузки недостающей порции от надлежащего ISV. По существу, компонент 510 контроля может выдавать соответственные целевые сайты, которые соответствуют веб-ссылке надлежащего ISV, который может поставить недостающую порцию загруженного программного обеспечения и/или цифрового контента.
Соответственно - когда недостающая часть загруженного программного обеспечения и/или объекта обнаруживается компонентом 510 контроля, информация о таких недостающих объектах затем может комплектоваться и собираться и передаваться компоненту 520 управления каналом связи. Компонент 520 управления каналом связи может проверять информацию, переданную из компонента 510 контроля, и сравнивать ее с одним или более сохраненными запросами 530 канала связи. Запросы 530 канала связи могут содержать множество разных запросов на множество каналов связи (например, гиперссылки). Например, для любого заданного канала связи, по меньшей мере, один запрос может быть настроен или запрограммирован пользователем. Запрос может включать в себя набор условий, которые должны удовлетворяться, или действия, которые должны выполняться над каналом связи, когда удовлетворено условие(я). Каждый запрос может соответствовать, по меньшей мере, одной гиперссылке и ассоциативно связанному целевому сайту.
Более того, когда компонент 510 контроля определил, что недостающая часть загруженного программного обеспечения или цифрового контента обнаружена, он также может уведомлять пользователя через целевой компонент 540 канала связи (например, браузер). Примеры действий уведомления при обнаружении недостающей ссылки и/или объекта могут включать в себя изменение цвета гиперссылки, изменение заголовка гиперссылки для указания, что необходимо осуществить доступ к контенту, чтобы решить вопросы, относящиеся к недостающему приложению, и/или добавление символа к или удаление символа из гиперссылки. Также возможны другие типы действий уведомления, такие как подсвечивание гиперссылки, вычерчивание линии вокруг гиперссылки и/или добавление некоторой разновидности анимации к гиперссылке (например, мерцающего текста, текста с постепенным повышением/снижением затемнения, и т.п.). Пользователь также может принимать электронное почтовое или звуковое уведомление для предупреждения, что была обнаружена недостающая ссылка и/или компонент. Более того, пользователь может просто обращаться к контрольному списку гиперссылок, чтобы быстро выяснить, требуется ли контактировать с целевым веб-сайтом надлежащего ISV для успешной загрузки недостающих порций загруженной программы или цифрового контента и/или объектов.
К тому же, в связи с осуществлением доступа к надлежащему каналу связи и/или локализацией требуемых каналов связи для загрузки соответственных частей программного обеспечения или цифрового контента от соответственного ISV, данное изобретение может применять различные схемы искусственного интеллекта. Например, процесс для явного или неявного изучения того, должен ли перезагружаться объект, или поиск веб-сайта ISV, который поставляет такой объект или недостающие ссылки, может облегчаться посредством системы и процесса автоматической классификации. Классификация может применять вероятностный или основанный на статистике анализ (например, разложение на аналитические пользы и затраты) для предсказания или логического вывода действий, которые пользователь желает, чтобы выполнялись автоматически. Например, может применяться классификатор векторной машины поддержки (SVM). Другие подходы классификации включают в себя модели байесовских сетей, деревьев решений и вероятностной классификации в том случае, если могут применяться разные формы независимости. Классификация, в качестве используемой в материалах настоящей заявки, также является включающей в себя статистическую регрессионную зависимость, которая используется для построения моделей приоритета.
Как будет легко пониматься из данного изобретения, данное изобретение может применять классификаторы, которые тренируются явным образом (например, посредством общих данных тренировки), а также тренируются неявным образом (например, посредством наблюдения за поведением пользователя, приема поступающей извне информации), так что классификатор используется для автоматического определения, согласно предопределенным критериям, какой ответ возвращать на вопрос. Например, что касается SVM, которые широко известны, SVM конфигурируются посредством фазы обучения или тренировки в пределах модуля конструктора классификатора и выбора характеристик. Классификатор является функцией, которая устанавливает соответствие входного вектора атрибутов x=(x1, x2, x3, x4, xn), степени достоверности, что входные данные принадлежат классу - то есть, f(x)=confidence(class). Как показано на фиг.5, компонент 550 искусственного интеллекта (AI) может применяться для содействия логическому выводу и/или определению, когда, где и как локализовать ISV для загрузки недостающей порции программного обеспечения и/или цифрового контента. Компонент 550 AI может использовать любое многообразие подходящих, основанных на AI, схем, как описано ранее в связи с содействием различным аспектам данного изобретения.
Фиг.6a и 6b иллюстрируют компоновки первого ISV и второго ISV по отношению к заказчикам и/или машинам конечных пользователей. Как проиллюстрировано в компоновке по фиг.6a, ISV1 610 и ISV2 620 могут совместно использовать один и тот же уровень управления заказчиками. Например, ISV1 610 может поставлять приложение 630 заказчику/конечному пользователю 650, который нуждается в языке структурированных запросов (SQL) 640 от ISV2 620. Такой ISV2 620 может поставлять компонент 640 SQL, требуемый для надлежащей работы загруженного приложения, непосредственно заказчику 650. Подобным образом компоновка, согласно фиг.6b, предусматривает разные степени контроля ISV над клиентом и распространяемым программным обеспечением.
Фиг.7 иллюстрирует последовательность этапов запроса между ISV1 702, который предлагает программное обеспечение с 1 по m, где m - целое число, и ISV2 704. Сама связь может выполняться через защищенный канал. ISV2 704 может включать в себя защищенный сетевой стек 710 обслуживающей стороны, который дополнительно включает в себя реализацию уровня IP (протокола сети Интернет), реализацию уровня TCP (протокола управления передачей) обслуживающей стороны, TLS (протокол безопасности транспортного уровня) обслуживающей стороны, реализацию стека HTTP, интерфейс поставщика веб-услуг и веб-службу. ISV2 704 дополнительно может включать в себя подсистему 708 протокола обмена ключами через Интернет (IKE) для защиты сетевого потока обмена между ISV2 704 и ISV1 702. ISV2 704 также может включать в себя модули 711 политик для предоставления возможности конфигурирования подсистем 708 IKE. Модуль 711 политики также может включать в себя информацию о конфигурации защиты для защищенного сетевого стека 710, который поддерживает связь через драйвер 754 TCP/IP, в силу чего давая возможность обмена защищенного сетевого потока между ISV2 704 и ISV1 702.
ISV2 704 может регистрировать и принимать набор сообщений для выдачи цифрового сертификата сущности. Например, на 714 компонент закупки может запрашивать ISV2 704 для запроса закупки различных предложений программного обеспечения. Затем и на 716 ответ на запрос, идентифицирующий различное программное обеспечение, и сроки службы передаются обратно на ISV2 704. Впоследствии и на 718 запрос выставления счетов пересылается на ISV2 704. Затем на 720 может подготавливаться и отправляться обратно на ISV1 ответ касательно различных требований выставления счетов для выдачи цифрового сертификата.
Затем ISV1 может выбирать требуемый план закупки с парой 722(a) и 722(b) запроса/ответа закупки, обмениваемой между ISV2 704 и ISV1 702. Подобным образом набор запросов и ответов (не показан) может обмениваться между ISV2 704 и машиной(ами) конечного пользователя для запрашивания обновлений программного обеспечения и предоставления исправлений и тому подобного. Действия закупки и обновления также могут включать в себя алгоритм, чтобы машины конечного пользователя или ISV1 702 аутентифицировали себя с ISV2 704.
Фиг.8 иллюстрирует структурную схему системы 800 ISV1, которая может выдавать загрузку в соответствии с аспектом данного изобретения. Система может включать в себя диспетчер 810 ISV, который может взаимодействовать с библиотекой 814 ISV, для отслеживания авторизации, защиты проверки действительности и для проверки соединения клиента или другого ISV2 к нему. Пороговое значение загрузки также может быть предусмотрено диспетчером 810 ISV, чтобы определять, начинать ли приостанавливать, возобновлять и/или прекращать пересылку данных на любой машине, которая запрашивает обмен данными с ISV1 800, например, для уравновешивания обработки по многочисленным машинам, каковое, к тому же, может смягчать нагрузку любой одной машины. Типично - когда инициирован сеанс передачи сообщения (например, соединение), диспетчер 810 ISV может порождать экземпляр соединения для сеанса. Экземпляр соединения может заполняться информацией, указывающей клиента, загрузку программного обеспечения, других привлеченных ISV, сообщение(я) и/или ID соединения (например, подтверждающим активность сообщением). Такая информация может использоваться для начала пересылки сообщения между ISV1 и клиентом или другим ISV2. Кроме того, ID соединения может использоваться для отслеживания передачи сообщения в пределах разных машин.
Экземпляр соединения дополнительно может динамически обновляться для отражения развития передачи и предоставления истории передачи. Например, признаки, указывающие любые порции (в том числе, полное сообщение или загрузку программного обеспечения), которые были переданы успешно или претерпели неудачу, могут быть ассоциативно связаны с экземпляром соединения. История передачи может включать в себя информацию, имеющую отношение к началу и завершению, приостановкам и возобновлениям передачи, уровню ошибок активности связи, повторным представлениям, изменениям в машине обслуживания и тому подобному.
Например, когда ISV1 800 вызван, чтобы установить соединение для загрузки к клиенту или конечному пользователю, диспетчер 810 ISV может отслеживать идентичность машины (например, глобально уникальный идентификатор или GUID), чтобы порождать экземпляр соединения для такого соединения. Экземпляр соединения может включать в себя идентичность для любой из машин, на которую должно загружаться программное обеспечение, посредством системных параметров в качестве части библиотеки 814 ISV. Такая информация может использоваться для локализации требуемой машины и проверки, что требуемые машина и адаптер были снабжены доступом или были зарегистрированы надлежащим образом. Если вызов включает в себя информацию, указывающую на клиента и/или сообщение от других ISV, такая информация может дополнительно включаться в состав с экземпляром соединения. Эта информация может использоваться для локализации и проверки клиента и загруженного программного обеспечения. В дополнение - ID соединения и требуемые параметры загрузки могут включаться в состав и использоваться в качестве ключа к экземпляру соединения и к тому же диспетчером 810 ISV для управления сеансом передачи. Должно приниматься во внимание, что более чем одна машина на стороне ISV или на стороне клиента может запрашивать соединение в качестве части распределенных машин. Например, во время сеанса загрузки между ISV и конечным пользователем другой ISV может присоединяться к существующему сеансу загрузки и извлекать помещенную в кэш историю загрузки для наблюдения и/или участия в таком сеансе загрузки.
Фиг.9 иллюстрирует способ 900 расщепленной загрузки в соответствии с аспектом данного изобретения. Несмотря на то, что примерный способ проиллюстрирован и описан в материалах настоящей заявки в виде последовательности этапов, отображающих различные события и/или действия, настоящее изобретение не ограничено проиллюстрированным упорядочением таких этапов. Например, некоторые действия или события могут происходить в разных порядках и/или одновременно с другими действиями или событиями, не считая упорядочения, проиллюстрированного в материалах настоящей заявки, в соответствии с изобретением. В дополнение - не все проиллюстрированные этапы, события или действия могут быть необходимыми для реализации способа в соответствии с настоящим изобретением. Более того, будет принято во внимание, что примерный способ и другие способы, согласно изобретению, могут быть реализованы в связи со способом, проиллюстрированным и описанным в материалах настоящей заявки, а также в связи с другими системами и устройством, не проиллюстрированными и не описанными.
Прежде всего, на 910 первым ISV к конечному пользователю загружается первая порция программного обеспечения или цифрового контента. Затем и на 920 второй ISV принимает уведомление о такой загрузке и запрос на дополнение первой порции загруженного программного обеспечения. Впоследствии и на 930 второй ISV загружает вторую порцию ISV к конечному пользователю. По существу, конечный пользователь затем может надлежащим образом запускать загруженное приложение на 940, которое было загружено в расщепленном виде первым и вторым ISV.
Далее, со ссылкой на фиг.10, проиллюстрировано краткое общее описание подходящей вычислительной среды, в которой могут быть реализованы различные аспекты данного изобретения. Несмотря на то, что изобретение было описано выше в общем контексте выполняемых компьютером инструкций компьютерной программы, которая работает на компьютере и/или компьютерах, специалисты в данной области техники будут осознавать, что изобретение также может быть реализовано в комбинации с другими программными модулями. Как правило, программные модули включают в себя процедуры, программы, компоненты, структуры данных и т.п., которые выполняют конкретные задачи и/или реализуют конкретные абстрактные типы данных. Более того, специалисты в данной области техники будут принимать во внимание, что обладающие признаками изобретения способы могут быть осуществлены на практике с другими конфигурациями компьютерных систем, в том числе однопроцессорными или многопроцессорными компьютерными системами, миникомпьютерами, универсальными вычислительными машинами, а также персональными компьютерами, карманными вычислительными устройствами, основанными на микропроцессорах и/или программируемой бытовой электронике и тому подобном. Как пояснено ранее, проиллюстрированные аспекты изобретения также могут быть осуществлены на практике в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны через сеть передачи данных. Однако некоторые, если не все, аспекты изобретения могут быть осуществлены на автономных компьютерах. В распределенной вычислительной среде программные модули могут быть локализованы как в локальном, так и в удаленном запоминающих устройствах памяти. Примерная среда включает в себя компьютер 1020, в том числе блок 1021 обработки, системную память 1022 и системную шину 1023, которая присоединяет различные системные компоненты, включая системную память, к блоку 1021 обработки. Блок 1021 обработки может быть любым из различных доступных для коммерческого приобретения процессоров. Архитектуры со сдвоенными микропроцессорами и другие многопроцессорные архитектуры также могут использоваться в качестве блока 1021 обработки.
Системная шина может быть любой из некоторых типов шинных структур, в том числе USB (универсальной последовательной шиной) 1394, периферийной шиной и локальной шиной, использующими любую из многообразия доступных для коммерческого приобретения шинных архитектур. Системная память может включать в себя постоянное запоминающее устройство (ПЗУ, ROM) 1024 и оперативное запоминающее устройство (ОЗУ, RAM) 1025. Базовая система ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в пределах компьютера 1020, к примеру, во время запуска, хранится в ПЗУ 1024.
Компьютер 1020 дополнительно включает в себя накопитель 1027 на жестком диске, накопитель 1028 на магнитном диске, например, для считывания с и записи на съемный диск 1027, и накопитель 1030 на оптическом диске, например, для считывания с или записи на диск 1031 CD-ROM (ПЗУ на компакт-диске), или для считывания с или записи на другие оптические носители. Накопитель 1027 на жестком диске, накопитель 1028 на магнитном диске и накопитель 1030 на оптическом диске подключены к системной шине 1023 посредством интерфейса 1032 накопителя на жестком диске, интерфейса 1033 накопителя на магнитном диске и интерфейса 1034 накопителя на оптическом диске соответственно. Накопители и их ассоциируемые машиночитаемые носители предусматривают энергонезависимое хранение данных, структур данных, машинно-исполняемых инструкций и т.п. для компьютера 1020. Хотя описание машиночитаемых носителей, приведенное выше, упоминает жесткий диск, съемный магнитный диск и CD, специалистами в данной области техники должно быть принято во внимание, что другие типы носителей, которые пригодны для считывания компьютером, такие как магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли и тому подобное, также могут использоваться в примерной операционной среде, и, кроме того, любые такие носители могут содержать в себе машинно-исполняемые инструкции для выполнения способов по данному изобретению.
Некоторое количество программных модулей может храниться в накопителях и ОЗУ 1025, в том числе, операционная система 1035, одна или более прикладных программ 1036, другие программные модули 1037 и данные 1038 программ. Операционная система 1035 в проиллюстрированном компьютере, по существу, может быть любой доступной для коммерческого приобретения операционной системой.
Пользователь может вводить команды и информацию в компьютер 1020 через клавиатуру 1040 и координатно-указательное устройство, такое как мышь 1042. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую антенну, сканер или тому подобное. Эти и другие устройства ввода часто присоединены к блоку 1021 обработки через интерфейс 1046 последовательного порта, который связан с системной шиной, но могут присоединяться другими интерфейсами, такими как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 1047 или другой тип устройства отображения также присоединен к системной шине 1023 посредством интерфейса, такого как видеоадаптер 1048. В дополнение к монитору - компьютеры типично включают в себя другие периферийные устройства вывода (не показаны), такие как динамики и принтеры.
Компьютер 1020 может работать в сетевой среде с использованием логических соединений с одним или более удаленных компьютеров, таких как удаленный компьютер 1047. Удаленный компьютер 1047 может быть рабочей станцией, серверным компьютером, маршрутизатором, одноранговым устройством или другим общим узлом сети и типично включает в себя многие или все из элементов, описанных относительно компьютера 1020, хотя только запоминающее устройство 1050 памяти проиллюстрировано на фиг.10. Логические соединения, изображенные на фиг.10, могут включать в себя локальную сеть (LAN) 1051 и глобальную сеть (WAN) 1052. Такие сетевые среды являются обычными в офисах, компьютерных сетях масштаба предприятия, сетях Интранет (локальных сетях, основанных на технологиях Интернет) и сети Интернет.
При применении в сетевой среде LAN компьютер 1020 может быть присоединен к локальной сети 1051 через сетевой интерфейс или адаптер 1053. Когда используется в сетевой среде WAN, компьютер 1020 обычно может включать в себя модем 1054 и/или подключен к серверу связи в LAN и/или содержит другое средство для установления связи через глобальную сеть 1052, такую как сеть Интернет. Модем 1054, который может быть внутренним или внешним, может быть присоединен к системной шине 1023 через интерфейс 1046 последовательного порта. В сетевой среде программные модули, изображенные относительно компьютера 1020, или их части могут храниться в удаленном запоминающем устройстве памяти. Будет принято во внимание, что показанные сетевые соединения являются примерными, и может применяться другое средство установления канала связи между компьютерами.
В соответствии с практикой специалистов в области техники программирования компьютеров, данное изобретение было описано со ссылкой на действия и символические представления операций, которые выполняются компьютером, таким как компьютер 1020, если не указан другой способ действий. Такие действия и операции иногда упоминаются как являющиеся исполняемыми компьютером. Будет приниматься во внимание, что действия и символически представленные операции включают в себя манипулирование блоком 1021 обработки электрическими сигналами, представляющими биты данных, которое служит причиной результирующего преобразования или сжатия представления электрического сигнала и удерживания битов данных в ячейках памяти в системе памяти (включающей в себя системную память 1022, жесткий диск 1027, гибкие диски 1028 и CD-ROM 1031), чтобы в силу этого переконфигурировать или иным образом изменить работу компьютерной системы, а также другую обработку сигналов. Ячейки памяти, в которых удерживаются такие биты данных, являются физическими ячейками, которые обладают конкретными электрическими, магнитными или оптическими свойствами, соответствующими битам данных.
Далее, со ссылкой на фиг.11, проиллюстрирована система 1100 клиент-сервер, которая может применять расщепленную загрузку согласно одному из аспектов данного изобретения. Клиентом(ами) 1120 могут быть аппаратные средства и/или программное обеспечение (например, потоки, процессы, вычислительные устройства). Система 1100 также включает в себя один или более серверов 1140. Сервером(ами) 1140 также могут быть аппаратные средства и/или программное обеспечение (например, потоки, процессы, вычислительные устройства). Например, такие серверы 1140 могут вмещать потоки для выполнения преобразований посредством применения настоящего изобретения. Клиент 1120 и сервер 1140 могут поддерживать связь в виде пакетов данных, передаваемых, согласно настоящему изобретению, между двумя или более компьютерными процессами. Как проиллюстрировано - система 1100 включает в себя инфраструктуру 1180 связи, которая может содействовать связи между клиентом(ами) 1120 и сервером(ами) 1140. Клиент(ы) 1120 оперативно присоединены к одному или более клиентским хранилищам(у) 1110 данных, которые могут использоваться для сохранения информации, локальной по отношению к клиенту(ам) 1120. Более того, клиент 1120 может осуществлять доступ и обновлять базы данных 1160 на серверном компьютере 1140, выполняющем серверные процессы. В одном из аспектов настоящего изобретения инфраструктурой 1180 связи может быть сеть Интернет с клиентским процессом, являющимся веб-браузером, и серверным процессом, являющимся веб-сервером. По существу, типичный клиент 1120 может быть компьютером общего назначения, таким как традиционный персональный компьютер, содержащий центральный процессор (ЦП, CPU), системную память, модем или сетевую плату для подключения персонального компьютера к сети Интернет и дисплей, а также другие компоненты, такие как клавиатура, мышь и тому подобное. Подобным образом, типичным сервером 1140 могут быть университетские или учрежденческие универсальные вычислительные машины, либо специализированные рабочие станции и тому подобное.
Фиг.12 показывает примерную систему 1200 для закупки и распространения программного обеспечения с использованием расщепленной загрузки. Система 1200 включает в себя многочисленные ISV 1202, которые сконфигурированы для поставки программного обеспечения заказчикам, таким как устройство 1208 заказчика. Каждый ISV сконфигурирован для поставки порции программного обеспечения. Порции, поставляемые разными ISV, загружаются, а затем используются для сборки завершенного программного обеспечения. Например, устройство 1208 заказчика может включать в себя диспетчер загрузки (DLM) 1210 для управления загрузкой порций программного обеспечения.
Как показано на фиг.12, система 1200 также включает в себя специалиста регистрации (MOR) 1204, диспетчера пересылки (TM) 1212 и авторизованного специалиста (AUM) 1206. MOR 1204 является специалистом, ответственным за управление и поддержку продаж программного обеспечения, поставляемого ISV 1202. MOR 1204 может быть сконфигурирован для управления транзакционной поддержкой, возвратами, оплатой ISV 1202 или тому подобным. Например, MOR 1204 сконфигурирован для приема запросов с устройства 1208 заказчика на закупку программного обеспечения и для формирования транзакции по закупке. MOR 1204 также сконфигурирован для приема обновлений записей от ISV 1202. Обновления могут включать в себя периодический запрос транзакции, информацию о выставлении счетов и тому подобное. TM 1212 сконфигурирован для управления запросом и авторизацией передачи файлов, и для передачи посреднических данных и информации о выставлении счетов между MOR 1204 и ISV 1202. AUM 1206 является агентом, действующим от имени MOR 1204. AUM 1206 может принимать любую из ролей MOR 1204, кроме случаев в качестве агента ISV 1202. AUM является необязательным компонентом, и MOR 1204 может взаимодействовать непосредственно с устройством 1208 заказчика.
В примерном сценарии закупки программного обеспечения устройство 1208 заказчика отправляет сообщение 1251 на AUM 1206, которое включает в себя заказ на конкретный компонент программного обеспечения. Заказ может включать в себя идентификатор для программного обеспечения, количество, информацию о кредитной карте, персональную информацию и тому подобное. AUM 1206 принимает заказ и отправляет сообщение 1252 на MOR 1204, которое включает в себя запрос, ассоциативно связанный с заказом. Запрос может включать в себя идентификатор для заказчика, идентификатор для запроса, географическое местоположение, заказ и тому подобное. MOR 1204 принимает запрос и формирует транзакцию, ассоциативно связанную с запросом. MOR 1204 отправляет транзакцию на TM 1212 с помощью сообщения 1253. Сообщение 1253 может включать в себя информацию в исходном запросе, а также другую информацию, такую как идентификатор для MOR 1204, идентификатор транзакции, порядковый номер, данные, ассоциативно связанные с заказчиком, информацию о состоянии и тому подобное. MOR 1204 отправляет сообщение 1257 на AUM 1206, которое включает в себя информацию, имеющую отношение к транзакции в отношении AUM 1206.
TM 1212 принимает транзакцию от MOR 1204 и отправляет сообщения 1254 с транзакцией соответствующему ISV 1202. Типично - TM 1212 отправляет транзакцию определенным ISV, которые поставляют порции для программного обеспечения, являющегося закупаемым. В ответ определенные ISV отправляют сообщения 1255, которые включают в себя авторизацию загрузки и искомую информацию на TM 1212, которая может включать в себя идентификатор ISV, ключ, данные авторизации и тому подобное. TM 1212 принимает сообщение 1255 и отправляет авторизацию загрузки и искомую информацию на DLM 1210 в сообщении 1256. MOR 1204 отправляет сообщение 1258 на устройство 1208 заказчика, которое включает в себя информацию о заказе, такую как запись о закупке, местоположение загрузки, лицензия на программное обеспечение и тому подобное. Сообщение 1258 может отправляться в виде любого типа связи, такого как электронная почта, звуковая почта и тому подобное. DLM 1201 устанавливает связь 1259 с ISV 1202 для загрузки программного обеспечения закупки от ISV, которые поставляют компоненты программного обеспечения. DLM 1201 выдает авторизацию загрузки, принятую из сообщения 1256, на ISV, чтобы установить, что заказчик авторизован на загрузку программного обеспечения.
После того, как загрузка была завершена, DLM 1210 отправляет сообщение 1260, которое включает в себя подтверждение, на TM 1212. TM 1212 отправляет сообщения 1261 на ISV 1202 и MOR 1204 для подтверждения загрузки и для завершения транзакции.
Фиг.13 показывает примерную последовательность 1300 операций для обработки заказа на программное обеспечение, которое должно поставляться посредством расщепленной загрузки. Последовательность 1300 операций может реализовываться специалистом регистрации для системы закупки программного обеспечения с расщепленной загрузкой, чтобы обрабатывать заказ на программное обеспечение. На этапе 1302 заказ на закупку принимается от заказчика. Заказ может приниматься непосредственно с устройства заказчика или от авторизованного специалиста. На этапе 1304 формируется транзакция, ассоциативно связанная с программным обеспечением. На этапе 1306 транзакция отправляется независимым поставщикам программного обеспечения, которые поставляют порции программного обеспечения. На этапе 1308 определяется информация о закупке и загрузке для программного обеспечения. На этапе 1310 информация о закупке и загрузке поставляется заказчику. Например, информация может предоставляться заказчику посредством электронной почты. Типично - авторизация загрузки выдается заказчику из отдельного источника без прохождения через специалиста регистрации. На этапе 1312 подтверждение принимается от заказчика, после того как программное обеспечение было загружено от ISV. На этапе 1314 транзакция с ISV завершается.
Несмотря на то, что изобретение было показано и описано по отношению к определенным проиллюстрированным аспектам, будет приниматься во внимание, что эквивалентные изменения и модификации будут приходить на ум специалистам в данной области техники по прочтении и осмыслении этого описания изобретения и прилагаемых чертежей. В частности, что касается различных функций, выполняемых вышеописанными компонентами (сборками, устройствами, схемами, системами и т.п.), термины (в том числе ссылка на «средство»), используемые для описания таких компонентов, подразумеваются соответствующими, если не указано иное, любому компоненту, который выполняет заданную функцию описанного компонента (например, который функционально равносилен), даже если он структурно не эквивалентен раскрытой структуре, которая выполняет функцию в проиллюстрированных в материалах настоящей заявки примерных аспектах изобретения. В этом смысле также будет приниматься во внимание, что изобретение включает в себя систему, а также машиночитаемый носитель, содержащий исполняемые компьютером инструкции для выполнения действий и/или событий различных способов по изобретению. Более того, в пределах, в которых термины «включает в себя», «в том числе», «имеет», «обладающий» и их варианты используются либо в подробном описании, либо в формуле изобретения, эти термины подразумеваются включающими в себя, в некотором смысле, термин «содержащий».

Claims (11)

1. Машиночитаемый носитель, закодированный исполняемыми компьютером командами, побуждающими компьютер выполнять способ загрузки программного обеспечения, содержащий этапы, на которых:
принимают заказ от заказчика на закупку загружаемого программного обеспечения;
формируют транзакцию, связанную с заказом;
идентифицируют множество независимых поставщиков программного обеспечения (ISV), каждый из которых выполнен с возможностью передавать часть программного обеспечения, причем для сборки полного программного обеспечения требуются все части; при этом, по меньшей мере, один из множества ISV содержит диспетчер ISV, который взаимодействует с библиотекой ISV для отслеживания авторизации, безопасности и проверки достоверности, проверяет соединение между, по меньшей мере, одним из множества ISV и другим из множества ISV, определяет порог выравнивания нагрузки для равномерного распределения операций обработки по множеству ISV и определяет, когда начинать, приостанавливать, возобновлять и прекращать передачу данных на любой машине, которая запрашивает обмен данными с, по меньшей мере, одним из множества ISV;
предоставляют транзакцию ISV;
определяют информацию о закупке и загрузке, связанную с транзакцией; и
отправляют информацию о закупке и загрузке заказчику.
2. Машиночитаемый носитель по п.1, в котором заказ принимается от заказчика через авторизованного продавца.
3. Машиночитаемый носитель по п.1, в котором транзакция предоставляется ISV через диспетчера передачи.
4. Реализуемый на компьютере способ загрузки программного обеспечения по частям, содержащий этапы, на которых:
принимают заказ от заказчика на закупку загружаемого программного обеспечения;
формируют транзакцию, связанную с заказом;
идентифицируют множество независимых поставщиков программного обеспечения (ISV), каждый из которых выполнен с возможностью передавать часть программного обеспечения, причем для сборки полного программного обеспечения требуются все части; при этом, по меньшей мере, один из множества ISV содержит диспетчер ISV, который взаимодействует с библиотекой ISV для отслеживания авторизации, безопасности и проверки достоверности, проверяет соединение между, по меньшей мере, одним из множества ISV и другим из множества ISV, определяет порог выравнивания нагрузки для равномерного распределения операций обработки по множеству ISV и определяет, когда начинать, приостанавливать, возобновлять и прекращать передачу данных на любой машине, которая запрашивает обмен данными с, по меньшей мере, одним из множества ISV;
предоставляют транзакцию, по меньшей мере, одному из множества ISV через диспетчера передачи;
предоставляют информацию об авторизации загрузки от, по меньшей мере, одного из множества ISV диспетчеру передачи в ответ на прием транзакции от диспетчера передачи, причем в ответ на прием информации об авторизации загрузки диспетчер передачи формирует сессию передачи сообщения, в которой один из множества ISV передает информацию относительно клиента и программного обеспечения другому из множества ISV;
определяют информацию о закупке и загрузке, связанную с транзакцией;
отправляют информацию о закупке и загрузке заказчику; и
принимают подтверждение от заказчика.
5. Способ по п.4, в котором заказ принимают от заказчика через авторизованного продавца.
6. Машиночитаемый носитель, на котором хранятся команды, которые при исполнении компьютером побуждают компьютер формировать систему, содержащую:
механизм распределения загрузки, который предоставляет информацию относительно недостающей части загруженного цифрового контента независимому поставщику программного обеспечения (ISV), причем недостающая часть является обязательной для сборки полного цифрового контента, при этом механизм распределения загрузки содержит:
компонент обнаружения, который обнаруживает недостающую часть;
компонент уведомления, который уведомляет заказчика о том, где загружать недостающую часть или получать дополнительную информацию о решении проблем, связанных с недостающей частью;
компонент искусственного интеллекта, который использует автоматическую систему классификации для поиска множества ISV с целью обнаружения недостающей части загруженного цифрового контента, причем автоматическая система классификации представляет собой векторную машину поддержки;
счетно-решающее устройство распределения, которое определяет доступность загрузки недостающей части, причем счетно-решающее устройство распределения дополнительно содержит компонент считывания метаданных для получения информации о недостающей части посредством приема метаданных и структур данных, связанных с недостающей частью, подсистемой идентификации атрибутов и подсистемой заполнения атрибутов, для обеспечения возможностей распределения загрузки, предоставленных механизмом распределения загрузки; и
компонент контроля, выполненный с возможностью инсталлировать недостающую часть, причем компонент контроля выполнен с возможностью предоставлять гиперссылки в реальном времени для загрузки недостающей порции от ISV.
7. Машиночитаемый носитель по п.6, в котором система дополнительно содержит зарегистрированного продавца, способного обрабатывать заказ на загрузку цифрового контента от заказчика, причем зарегистрированный продавец также способен формировать транзакцию, связанную с заказом, и предоставлять заказ ISV.
8. Машиночитаемый носитель по п.7, в котором система дополнительно содержит диспетчера передачи, способного предоставлять ISV транзакцию, сформированную зарегистрированным продавцом, причем диспетчер передачи также способен принимать авторизацию загрузки от ISV и предоставлять авторизацию загрузки заказчику для использования при загрузке частей цифрового контента от ISV.
9. Машиночитаемый носитель по п.7, в котором все части необходимы для сборки полного цифрового контента посредством диспетчера загрузки.
10. Машиночитаемый носитель по п.7, в котором система дополнительно содержит авторизованного продавца, выступающего в качестве агента зарегистрированного продавца для обработки заказа от заказчика.
11. Машиночитаемый носитель по п.6, в котором автоматическая система классификации представляет собой байесовскую сеть или деревья решений.
RU2007144714/08A 2005-05-31 2006-04-21 Расщепленная загрузка для электронных загрузок программного обеспечения RU2424552C2 (ru)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US68636805P 2005-05-31 2005-05-31
US60/686,368 2005-05-31
US11/246,512 US20060271926A1 (en) 2005-05-31 2005-10-07 Split download for electronic software downloads
US11/246,512 2005-10-07

Publications (2)

Publication Number Publication Date
RU2007144714A RU2007144714A (ru) 2009-06-10
RU2424552C2 true RU2424552C2 (ru) 2011-07-20

Family

ID=37464929

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2007144714/08A RU2424552C2 (ru) 2005-05-31 2006-04-21 Расщепленная загрузка для электронных загрузок программного обеспечения

Country Status (15)

Country Link
US (1) US20060271926A1 (ru)
EP (1) EP1889156A4 (ru)
JP (1) JP5007301B2 (ru)
KR (1) KR20080013862A (ru)
AU (1) AU2006252906B2 (ru)
BR (1) BRPI0610096A2 (ru)
CA (1) CA2603192A1 (ru)
EG (1) EG25573A (ru)
IL (1) IL186067A0 (ru)
NO (1) NO20074871L (ru)
NZ (1) NZ561944A (ru)
RU (1) RU2424552C2 (ru)
SG (1) SG162729A1 (ru)
TW (1) TW200703030A (ru)
WO (1) WO2006130265A2 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2635878C2 (ru) * 2015-07-13 2017-11-16 Сяоми Инк. Способ и аппаратура для загрузки программы управления
RU2635891C2 (ru) * 2012-01-15 2017-11-16 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Механизм инсталляции и формат пакета для распараллеливаемых надежных инсталляций

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156485B2 (en) * 2004-12-03 2012-04-10 Google Inc. Method and apparatus for creating a pluggable, prioritized configuration engine to be used for configuring a software during installation, update and new profile creation
US7818734B2 (en) 2005-01-21 2010-10-19 Callwave, Inc. Methods and systems for transferring data over a network
EP2109981B1 (en) 2007-01-17 2014-11-26 Intertrust Technologies Corporation Methods, systems, and apparatus for fragmented file sharing
EP2660719A1 (en) * 2007-08-17 2013-11-06 Salesforce.com, Inc. On-demand database service system, method, and computer program product for verifying that a developed application will operate properly with at least one other application
US8296402B2 (en) * 2009-04-07 2012-10-23 National Instruments Corporation Determining and downloading portions of a software application in a computer system
US9424399B2 (en) 2009-05-12 2016-08-23 Microsoft Technology Licensing, Llc Availability of permission models in roaming environments
US10656931B2 (en) * 2009-05-26 2020-05-19 Comcast Cable Communications, Llc Network event triggered software updates
US10846396B1 (en) * 2011-05-25 2020-11-24 Hewlett-Packard Development Company, L.P. Downloading data in a dedicated virtual machine
CN105210033B (zh) 2012-12-12 2020-02-14 华为技术有限公司 多屏应用启用和分发服务
CN103327108B (zh) * 2013-06-26 2016-12-28 浙江大学城市学院 一种基于云的跨平台的软件管理平台及其构建方法
US10671384B1 (en) * 2017-12-07 2020-06-02 Amazon Technologies, Inc. Proactive seeding of build Artifacts
US11409511B2 (en) 2018-12-31 2022-08-09 Beijing Didi Infinity Technology And Development Co., Ltd. Method and system for downloading information
WO2020142072A1 (en) * 2018-12-31 2020-07-09 Didi Research America, Llc Method and system for downloading information
CN116074305A (zh) * 2021-10-30 2023-05-05 华为技术有限公司 应用下载安装方法、应用老化方法及电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6842896B1 (en) * 1999-09-03 2005-01-11 Rainbow Technologies, Inc. System and method for selecting a server in a multiple server license management system
JP3764311B2 (ja) * 1999-10-29 2006-04-05 シャープ株式会社 ネットワーク接続された情報処理装置の周辺機器およびデバイスドライバのバージョン管理方法
US6606744B1 (en) * 1999-11-22 2003-08-12 Accenture, Llp Providing collaborative installation management in a network-based supply chain environment
JP2002182764A (ja) * 2000-12-08 2002-06-26 Nec Corp Aspポータルサーバおよび該サーバを用いたソフトウェア提供方法、aspソフトウェア提供システム
JP2003022328A (ja) * 2001-07-06 2003-01-24 Computer Wave Inc ソフトウェア提供システムおよび仲介サーバ
US20030233455A1 (en) * 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
US7555559B2 (en) * 2003-02-28 2009-06-30 Onion Networks, KK Parallel data transfer over multiple channels with data order prioritization
JP4402411B2 (ja) * 2003-09-22 2010-01-20 大日本印刷株式会社 デジタルコンテンツの提供方法および提供装置
US7434102B2 (en) * 2004-12-29 2008-10-07 Intel Corporation High density compute center resilient booting

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2635891C2 (ru) * 2012-01-15 2017-11-16 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Механизм инсталляции и формат пакета для распараллеливаемых надежных инсталляций
RU2635878C2 (ru) * 2015-07-13 2017-11-16 Сяоми Инк. Способ и аппаратура для загрузки программы управления

Also Published As

Publication number Publication date
SG162729A1 (en) 2010-07-29
BRPI0610096A2 (pt) 2008-12-09
TW200703030A (en) 2007-01-16
CA2603192A1 (en) 2006-12-07
KR20080013862A (ko) 2008-02-13
NZ561944A (en) 2010-04-30
US20060271926A1 (en) 2006-11-30
JP2008542909A (ja) 2008-11-27
AU2006252906B2 (en) 2011-07-28
WO2006130265A2 (en) 2006-12-07
RU2007144714A (ru) 2009-06-10
IL186067A0 (en) 2008-01-20
JP5007301B2 (ja) 2012-08-22
EG25573A (en) 2012-03-06
NO20074871L (no) 2008-02-06
EP1889156A4 (en) 2009-02-11
EP1889156A2 (en) 2008-02-20
WO2006130265A3 (en) 2007-11-22
AU2006252906A1 (en) 2006-12-07

Similar Documents

Publication Publication Date Title
RU2424552C2 (ru) Расщепленная загрузка для электронных загрузок программного обеспечения
CN113711536B (zh) 从区块链网络中提取数据
JP7065956B2 (ja) 機器を制御および/またはモニターするための方法および制御システム
US20190050855A1 (en) Blockchain-based systems, methods, and apparatus for securing access to information stores
US20060075079A1 (en) Distributed computing system installation
US8230426B2 (en) Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics
US7209921B2 (en) Method and system for deploying an asset over a multi-tiered network
US7430610B2 (en) System and method for adjusting the distribution of an asset over a multi-tiered network
CN101167072A (zh) 软件许可/商业数字分发策略的补充信任模型
US20030074360A1 (en) Server system and method for distributing and scheduling modules to be executed on different tiers of a network
US20060149714A1 (en) Automated management of software images for efficient resource node building within a grid environment
US20030084134A1 (en) System and method for bridging assets to network nodes on multi-tiered networks
US20030074207A1 (en) Method and system for deploying an asset over a multi-tiered network
CN111598575A (zh) 业务流程控制方法、装置、电子设备和可读存储介质
US8577761B1 (en) System and method for dynamic offering topologies
US9946585B1 (en) System and method for asset module isolation
CN100555221C (zh) 用于电子软件下载的拆分下载系统
US10339573B1 (en) System and method for providing web service interfaces
US10657586B1 (en) System and method for dynamic offering deployment
US8725610B1 (en) System and method for managing privacy for offerings
US10235678B1 (en) System and method for managing distributed offerings
MX2007013603A (en) Split download for electronic software downloads
Instances Getting Started with Cloud Computing: Amazon EC2 on Red Hat Enterprise Linux

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: 20160422