Предоставление расширений программного обеспечения на основе использования сети

Иллюстрации

Показать все

Изобретение относится к способам и системам доставки программ с использованием сети и обеспечивает технический результат в виде хорошего приспособления к сети Интернет. Этот результат достигается благодаря следующему. В одной из форм осуществления изобретения компьютерная программа или программная платформа постоянно находится у клиента. Расширения программного обеспечения конфигурируют так, чтобы они могли быть включены в программную платформу клиента. Описания расширений доставляют клиенту через сеть, причем эти описания конфигурируют так, чтобы их можно было использовать при загрузке расширений программного обеспечения через сеть. При этом расширения программного обеспечения предоставляют для загрузки клиенту через сеть таким образом, чтобы дать возможность пользователю клиента взаимодействовать с расширением раньше, чем оно будет загружено целиком. 13 н. и 48 з.п. ф-лы, 7 табл., 20 ил.

Реферат

Область техники

Данное изобретение касается способов и систем для предоставления программного обеспечения через сеть. В частности, изобретение касается поставки программного обеспечения на основе Интернет.

Обзор известных технических решений

Инсталляция традиционных программ для персональных компьютеров требует использования физических носителей информации, таких как магнитный диск или компакт-диск, который должен быть физически вставлен в компьютер, чтобы загрузить программное обеспечение в компьютер пользователя. Как правило, этот процесс требует, чтобы пользователь ввел информацию об установочных параметрах, что может приводить пользователя в замешательство. После установки программное обеспечение обычно остается неизменным с точки зрения его местоположения и функциональных возможностей. Когда программное обеспечение модифицируется, пользователь обычно должен приобрести дополнительные физические носители информации и повторить процесс инсталляции, чтобы использовать модифицированное программное обеспечение. В этой модели программное обеспечение привязано к компьютеру, на котором оно было установлено. Если пользователь перемещается на другой компьютер, то на нем он не будет способен использовать определенное программное обеспечение без повторения процесса инсталляции.

Поскольку компьютерная техника продолжает эволюционное развитие в направлении среды компьютерных сетей, таких как Интернет, становится ясно, что традиционная модель поставки программного обеспечения, описанная выше, неадекватна запросам потребителей, которые хотят динамичного, гибкого и адаптируемого программного обеспечения, поставляемого по требованию. Поставка программного обеспечения на основе использования сети привлекает возрастающее внимание тех, кто разрабатывает и поставляет программное обеспечение. Раскрытие потенциала поставки программного обеспечения на основе использования сети будет требовать разумных, творческих и хорошо отработанных решений, особенно в тех ситуациях, где ширина полосы частот может быть ограничена.

Таким образом, это изобретение возникло из необходимости создания новых моделей поставки программ, которые особенно хорошо подходят для поставки программного обеспечения с использованием сети, например, для их поставки через Интернет.

Сущность изобретения

Описываются способы и системы для поставки программ на основе использования сети. В одной из форм осуществления изобретения компьютерная программа или программная платформа постоянно находится у клиента. Программа или платформа конфигурируется так, чтобы она была расширяемой на основе расширений программного обеспечения, которые могут поставляться по сети, такой как Интернет. Различные расширения могут быть созданы разработчиками третьей стороны для включения в программу или платформу.

В одной из описываемых форм осуществления изобретения файлы расширения, которые содержат расширение программного обеспечения, размещаются на сервере Интернет. Они содержат дескрипторные (описательные) файлы, которые описывают разные аспекты расширения программного обеспечения. Эти дескрипторные файлы логически описывают расширение, предназначенное для программы или платформы, и указывают местоположение других файлов расширения. Расширения включаются в состав платформы клиента путем обращения к конкретному сайту Интернет или другой сети, через который можно получить доступ к расширениям. Файлы, описывающие файлы расширения, загружаются клиентом. Эти файлы сообщают клиенту, где, когда и как конкретное расширение может быть подключено к программе или платформе, а также где найти подходящие файлы расширения и как их загрузить. Затем файлы расширения загружаются и включаются в состав платформы.

В одной форме осуществления изобретения предусматривается новая архитектура программного обеспечения для обработки и объединения конкретных типов описательных файлов, связанных с различными расширениями. Механизм фильтрации, названный "точками присоединения", используется для создания обработчиков различных описательных типов файлов, которые описывают расширение программного обеспечения. Каждый из этих обработчиков называется менеджером присоединения. Менеджеры присоединения предусмотрены для каждого типа расширяемой функции. Менеджеры присоединения интерпретируют данные из файлов расширений, которые поставляются точками присоединения. В дополнение к заранее заданным менеджерам присоединения могут быть созданы с использованием данных от точек присоединения заказные менеджеры присоединения. Когда расширение расширяет конкретный тип элемента программы или платформы, точки присоединения гарантируют, что только соответствующий менеджер присоединения будет уведомлен об этом, так что этот тип элемента будет эффективно включен в состав программы или платформы.

Перечень чертежей

На фиг.1 показано высокоуровневое представление системы, которая может использоваться в одной из описываемых форм осуществления изобретения.

На фиг.2 показан пример компьютерной системы, которая может использоваться в одной из описываемых форм осуществления изобретения.

Фиг.3 представляет пример файла описания расширения (EDF) и декларации пакета (PKG) в соответствии с одной из описываемых форм осуществления изобретения.

На фиг.4 показана часть файла описания расширения в соответствии с одной из описываемых форм осуществления изобретения.

На фиг.5 показана часть схемы файла описания расширения в соответствии с одной из описываемых форм осуществления изобретения.

На фиг.6 показана часть декларации пакета в соответствии с одной из описываемых форм осуществления изобретения.

Фиг.7 представляет собой блок-схему, иллюстрирующую, как значения хеш-функций файла могут использоваться для контроля версий в соответствии с одной из форм осуществления изобретения.

Фиг.8 представляет собой блок-схему, которая иллюстрирует два примера пакетных объектов в соответствии с одной из форм осуществления изобретения.

Фиг.9 представляет собой блок-схему, которая описывает шаги способа в соответствии с одной из описываемых форм осуществления изобретения.

Фиг.10 представляет собой блок-схему, которая описывает шаги способа в соответствии с одной из описываемых форм осуществления изобретения.

Фиг.11 представляет собой блок-схему, которая иллюстрирует пример средства создания декларации пакета в соответствии с одной из описываемых форм осуществления изобретения.

Фиг.12 представляет собой блок-схему, которая описывает шаги способа в соответствии с одной из описываемых форм осуществления изобретения.

Фиг.13 представляет собой блок-схему, которая описывает шаги способа в соответствии с одной из описываемых форм осуществления изобретения.

Фиг.14 представляет собой блок-схему шагов способа в соответствии с одной из описываемых форм осуществления изобретения.

Фиг.15 представляет собой блок-схему шагов способа в соответствии с одной из описываемых форм осуществления изобретения.

На фиг.16 показана часть приведенной в качестве примера структуры каталога в соответствии с одной из описываемых форм осуществления изобретения.

На фиг.17 показана блок-схема архитектуры программного обеспечения в соответствии с одной из описываемых форм осуществления изобретения.

Фиг.18 представляет собой блок-схему шагов способа в соответствии с одной из описываемых форм осуществления изобретения.

Фиг.19 представляет собой схему, которая иллюстрирует один из аспектов архитектуры точки присоединения в соответствии с одной из описываемых форм осуществления изобретения.

На фиг.20 показана схема, которая иллюстрирует один из аспектов архитектуры, показанной на фиг.17.

Подробное описание предпочтительной формы осуществления изобретения

Краткий обзор

Способы и системы, описываемые ниже, обеспечивают механизм, с помощью которого к компьютерной программе ("приложению") или программной платформе могут быть динамически добавлены новые функциональные возможности. Функциональные возможности, или "расширения", как они будут здесь называться, удобно добавлять через сеть, такую как Интернет. Расширения, которые могут выполнять новые функции или добавлять возможности существующим функциям, можно добавлять, используя только сетевой адрес, например унифицированный указатель ресурсов (URL), как основу для инсталляции (установки) расширения. То есть все файлы, которые составляют расширение, могут находиться в сети и быть доступными через один или несколько сетевых сайтов.

Расширения могут быть описаны различными способами. Один из таких способов использует иерархический язык на основе тэгов, который облегчает обработку и использование различных расширений. В одной частной форме осуществления изобретения предложена платформа программного обеспечения, которая может выполнять различные функции. Эта программная платформа и новая архитектура, описываемая ниже, дают возможность разработчикам третьей и четвертой сторон разрабатывать расширения для платформы, которые можно легко и без излишних промежуточных операций включить в состав платформы, не располагая никакой информацией о службе хостинга (или не имея связи с ней). Разработчик третьей стороны - это разработчик, который создает расширение для платформы. Разработчиком четвертой стороны может быть разработчик, который создает расширение для расширения разработчика третьей стороны. Таким образом, насколько это касается разработчиков, добавление расширений третьей и четвертой сторон является по существу прозрачным процессом.

Рассмотрим, например, фиг.1, где показан компьютер 100 пользователя и несколько так называемых источников 102, 104 и 106 расширений. Источник расширения может представлять собой любой объект, от которого через сеть может быть получено расширение для программного обеспечения. В одном примере осуществления изобретения сеть может быть сетью Интернет, хотя, конечно, могут использоваться и другие сети (например, локальные и глобальные сети). Источники расширений могут включать коммерческие организации, такие как магазины розничной торговли, которые могут использовать сетевой сайт, но не ограничиваются такими организациями. В одном из вариантов осуществления изобретения пользователь может использовать программное обеспечение на своем компьютере, который предоставляет пользователю компьютерную программу или платформу программного обеспечения. В этом документе термины "компьютерная программа" ("приложение") и "платформа программного обеспечения" ("программная платформа") будут использоваться взаимозаменяемо. Каждый из различных источников 102-106 расширений может предоставлять расширения программного обеспечения, которые могут включаться в платформу программного обеспечения, работающую на машине пользователя. Эти расширения могут доставляться через сеть, такую как Интернет, и помогать работе приложений, которые могут выполняться на машине пользователя. В описываемой форме осуществления изобретения расширения логически описываются на XML (extensible Markup Language - расширяемый язык разметки), который соответствует новым промышленным стандартам. Кроме того, в будущем использование XML будет способствовать открытости расширений благодаря поддержке использования в Интернет свойств объектных моделей документов (DOM - Document Object Model) XML. Однако должно быть ясно, что для описания расширений может использоваться любой подходящий формат, например двоичное описание.

Расширения могут поставляться от любого числа разных источников расширений. Предлагаемые способы и системы обеспечивают рациональный и организованный способ обработки предоставляемых расширений. Использование XML дает удобную возможность эффективной обработки расширений, поступающих от нескольких разных источников расширений, без чрезмерных затрат на оплату программных компонентов, которые реализуют конкретные части расширений или расширения.

В одной конкретной форме осуществления изобретения платформа программного обеспечения на машине пользователя предоставляет множество различных интегрированных функций, которые позволяют пользователю выполнять различные документно-ориентированные задачи.

Пример компьютерной среды

Форма осуществления изобретения, описываемая ниже, может использоваться в сочетании с различными компьютерными системами. Под компьютерной системой в этом описании понимается любое компьютерное устройство, которое содержит процессор какого-нибудь типа, то есть микропроцессор, и операционную систему какого-нибудь типа. Таким образом, компьютерная система включает (но не ограничивается ими) традиционные настольные компьютеры, более мощные серверы, различные карманные устройства, такие как мобильные телефоны, карманные компьютерные устройства и т.п.

На фиг.2 показан пример компьютерной системы, которая может использоваться для осуществления описываемых здесь вариантов выполнения изобретения. Компьютер 130 содержит один или несколько процессоров или процессорных блоков 132, системную память 134 и шину 136, которая соединяет различные элементы системы, в том числе подключает системную память 134 к процессору 132. Шина 136 представляет собой одну или несколько шинных структур какого-либо из нескольких возможных типов, включая шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессорную или локальную шину, использующую какую-либо из разнообразных шинных архитектур. Системная память 134 включает постоянное запоминающее устройство 138 (ROM) и оперативную память 140 (RAM). Базовая система 142 ввода-вывода (BIOS), содержащая основные управляющие программы, которые помогают пересылать информацию между элементами в пределах компьютера 130, например, во время начальных действий (запуска), хранится в постоянном запоминающем устройстве 138.

Кроме того, компьютер 130 содержит дисковод 144 жесткого диска (не показан) для чтения и записи, дисковод 146 съемного магнитного диска 148 для чтения и записи и оптический дисковод 150 для чтения или записи с использованием съемного оптического диска 152, такого как компакт-диск или другой оптический носитель информации. Дисковод 144 жесткого диска, дисковод 146 магнитного диска и оптический дисковод 150 подключены к шине 136 с помощью интерфейса 154 типа SCSI или некоторого другого подходящего интерфейса. Дисководы и связанные с ними компьютерно-читаемые носители информации обеспечивают хранение, не зависящее от наличия электропитания, компьютерно-читаемых команд, информационных структур, образованных записанными данными, программных модулей и других данных для компьютера 130. Хотя в описываемом здесь примере используются жесткий диск, съемный магнитный диск 148 и съемный оптический диск 152, специалистам должно быть понятно, что в такой операционной среде могут использоваться и другие типы компьютерно-читаемых носителей информации, способных запоминать данные, которые доступны компьютеру, например магнитные кассеты, карты флэш-памяти, цифровые видеодиски, блоки памяти с произвольным доступом, блоки постоянной памяти и т.п.

На жестком диске 144, магнитном диске 148, оптическом диске 152, в постоянной памяти 138 или в оперативной памяти 140 могут храниться несколько программных модулей, включающих операционную систему 158, одну или несколько программ-приложений 160, другие программные модули 162 и данные 164 программ. Пользователь может вводить команды и информацию в компьютер 130 через устройства ввода данных, такие как клавиатура 166 и указывающее устройство 168. Другие устройства ввода данных (не показаны) могут включать микрофон, джойстик, игровой пульт, спутниковую антенну, сканер или аналогичные устройства. Эти и другие устройства ввода данных связаны с процессором 132 через интерфейс 170, который соединен с шиной 136. Монитор 172 или устройство отображения другого типа также связан с шиной 136 через интерфейс, такой как видеоадаптер 174. В дополнение к монитору персональные компьютеры обычно имеют и другие периферийные устройства вывода (не показаны), такие как громкоговорители и принтеры.

Компьютер 130 обычно работает в сети, используя логические соединения с одним или несколькими удаленными компьютерами, например с удаленным компьютером 176. Удаленным компьютером 176 может быть другой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, равноправное устройство или другой обычный сетевой узел и, как правило, он включает многие или все элементы, описанные выше для компьютера 130, хотя на фиг.2 показано только запоминающее устройство 178. Логические подключения, показанные на фиг.2, включают локальную сеть 180 (LAN) и глобальную сеть 182 (WAN). Такие сетевые конфигурации являются обычными для офисов, компьютерных сетей предприятий, интрасетей и Интернет.

При работе в локальной сети компьютер 130 связывается с локальной сетью 180 через сетевой интерфейс или адаптер 184. При работе в среде глобальной сети компьютер 130 обычно содержит модем 186 или другие средства для установления связи в глобальной сети 182, такой как Интернет. Модем 186, который может быть внутренним или внешним, подключается к шине 136 через интерфейс 156 последовательного порта. В среде с сетевой архитектурой программные модули, описанные здесь в связи с персональным компьютером 130, или их части могут храниться в удаленном запоминающем устройстве. Должно быть понятно, что показанные сетевые подключения являются только примерами, и могут использоваться другие средства установления связи между компьютерами.

Обычно процессоры компьютера 130 программируются посредством команд, записанных в разное время на различные компьютерно-читаемые носители информации компьютера. Программы и операционные системы обычно распространяются на гибких дисках или компакт-дисках. С них они инсталлируются или загружаются во вторичную память компьютера. При выполнении они загружаются, по меньшей мере частично, в первичную электронную память компьютера. Изобретение, описываемое здесь, включает эти и другие типы компьютерно-читаемых носителей информации, которые содержат команды или программы для осуществления описываемых ниже шагов во взаимодействии с микропроцессором или другим устройством обработки данных. Изобретение также включает сам компьютер, если он запрограммирован согласно способам и алгоритмам, описываемым ниже.

В целях иллюстрации, программы и другие исполняемые программные компоненты, такие как операционная система, представлены здесь как дискретные блоки, хотя очевидно, что такие программы и компоненты находятся в различные моменты времени в различных блоках памяти компьютера и выполняются процессором (процессорами) компьютера.

Расширения

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

В описываемой форме осуществления изобретения расширения описывают с использованием XML, стандартного языка разметки, основанного на тексте. Использование XML значительно облегчает расширение программного контента. В частности, различные расширения могут создаваться третьими сторонами и описываться на XML так, чтобы их было легко интегрировать в прикладные программы. Однако должно быть понятно, что XML представляет лишь один пример описания и использования расширений. Очевидно, что могут использоваться и другие способы.

Пример организации расширения

В описываемой форме осуществления изобретения расширения организуются в виде трех отдельных, но связанных частей: файла описания расширения (EDF), декларации пакета (PKG) и кода, компонентов или "битов", которые составляют или задают расширение. Файл описания расширения может, но не обязательно, быть связан с URL (унифицированным указателем ресурса), который предоставляет клиенту путь для доступа к файлу описания расширения. В соответствии с принятым соглашением, файл PKG располагается по тому же самому адресу URL, что и файл описания расширения. Должно быть понятно, что файлы описания расширений и PKG не требуются друг для друга. В примере, который дается в этом документе, они используются совместно, но каждый из этих признаков может использоваться отдельно и независимо.

Файлы описания расширений описывают логические присоединения к программе или платформе программного обеспечения, в то время как PKG определяют физические файлы и ресурсы, которые используются для расширения. Между файлами описания расширения и файлами PKG может быть взаимно однозначное соответствие.

На фиг.3 показан пример структуры 300 расширения, которая включает файл 302 описания расширения и соответствующую декларацию 304 пакета (PKG). В показанном примере в файле 302 описания расширения используется XML, чтобы описать логические дополнения или расширения к прикладной программе. Соответствующий файл PKG 304 определяет физические файлы и ресурсы, которые связаны с конкретным расширением. Примеры типов этих файлов показаны справа от PKG 304 и включают, не ограничиваясь этим, файлы НТМ, GIF, UDO, XML, DLL и различные другие типы файлов.

Файл описания расширения (EDF)

В описываемом примере файл описания расширения является XML-файлом, который логически описывает расширение. Например, файл описания расширения может описывать HTML (язык разметки гипертекста), который формирует интерфейс пользователя (UI), объекты, которые содержат код для осуществления различных функций, и т.п. Файл описания расширения может также содержать все или часть функций, которые составляют расширение. Например, код HTML, который описывает панель инструментов, может быть непосредственно включен в состав файла описания расширения, и менеджер присоединения панели инструментов может считывать его из файла описания расширения, вместо чтения по адресу, указанному с помощью URL. Информация, содержащаяся в файле описания расширения, обрабатывается (вместе с информацией, содержащейся в PKG), и соответствующие файлы автоматически инсталлируются в компьютер пользователя. Это делается малозаметно, без манипулирования постоянными параметрами настройки компьютера, которое могло бы быть обнаружено в системном реестре пользователя.

Файл описания расширения, написанный на XML, содержит различные тэги, которые связаны с различными расширениями. Эти различные тэги могут соответствовать:

- элементам интерфейса пользователя;

- поведениям/компонентам/объектам;

- элементам хранения;

- объектам, определяемым пользователем;

- или чему-нибудь еще, что предоставляет точку расширяемости в приложении или платформе.

Файлы описания расширений предпочтительно имеют "открытую схему". Это означает, что разработчики третьей стороны могут расширять механизм расширения и включать свои собственные расширения путем создания своих собственных тэгов. Кроме того, сами расширения могут быть расширены другими разработчиками. Файлы описания расширений также могут иметь один или несколько предопределенных (стандартных) тэгов. Типичные предопределенные тэги XML для элементов интерфейса пользователя могут включать в себя тэги для типов элементов (функций), например: панели инструментов, акселераторы, пункты меню и темы. Эти типы функциональных элементов используются в однооконном приложении с возможностью навигации и приведены в следующей таблице:

Таблица 1
Тип элементаОпределение
Tool Bars (Панели инструментов)Горизонтальные контейнеры для команд над областью документа
Accelerators (Акселераторы)Горячие клавиши для команд
Menu Items (Пункты меню)Пункты всплывающего или раскрывающегося меню, которые третьи стороны могут добавлять к известным, имеющим имя, меню в платформе
Themes (Темы)Управляемый данными способ замещения известных ресурсов платформы, таких как задаваемые по умолчанию кнопки или таблица стилей

Типичные предопределенные тэги XML для поведения/компонентов/объектов включают тэги для служб ("Сервисов"). Функциональные элементы этого типа используются в однооконном приложении с возможностью навигации и приведены в следующей таблице:

Таблица 2
Тип элементаОпределение
Services (Сервисы)Сервисы - это объекты, которые расширяют существующие объекты (такие как приложение, окно или документ) в Объектной Модели платформы или приложения. Например, функции редактирования используют Дополнения Объектной Модели, присоединяемые к окну или документу, которые поддерживают контекст документа и состояние редактирования для каждого окна. Они могут также включать Дополнения Объектной Модели, присоединяемые к приложению (такие как объект словаря для проверки правописания)

Типичные предопределенные тэги XML для элементов хранения включают тэги для классов контента и автономных источников данных. Функциональные элементы этого типа используются в однооконном приложении с возможностью навигации и определяются в следующей таблице:

Таблица 3
Тип элементаОпределение
Content Classes (Классы Контента)Позволяют авторам расширений задавать новые типы XML-документов с новыми схемами.
Offline Data Sources (Автономные источники данных)Позволяют авторам расширений задавать команды репликации памяти в файле описания расширения.

Схема файла описания расширения

В описываемой форме осуществления изобретения файлы описания расширения используют определенную XML схему. Схема включает коллекции тэгов XML, которые размещаются в иерархическом порядке, чтобы облегчить доведение информации до тех компонентов программного обеспечения, которые нуждаются в определенных расширениях. В описываемой форме осуществления изобретения внешний (обрамляющий) тэг для файлов описания расширения является тэгом "расширения" ("extension").

На фиг.4 показан пример тэга расширения. Тэги "extension" могут содержать один или несколько из следующих атрибутов, все они являются необязательными:

Таблица 4
АтрибутОпределение
Urn (Унифицированное имя ресурса)Идентификатор для расширения. Позволяет авторам расширения указать относительные местоположения для содержимого в файлах описания расширения без использования относительных путей или фиксированных адресов URL. Также позволяет администраторам хостинга перемещать расширения на серверах без нарушения каких-либо связей.
Name (Имя)Имя, которое может использоваться в строке состояния или при отображении сообщения
Version (Версия)Определяемый продавцом номер версии расширения.
lastUpdateДата/время, когда файл описания расширения был последний раз изменен.
description (описание)Краткое описание расширения.

Внутри внешнего тэга "extension" имеется один или несколько дочерних тэгов, называемых также "тэги верхнего уровня". Каждый из этих тэгов верхнего уровня связан с типом элемента, который может быть добавлен посредством определенного расширения. Примеры типов элементов рассмотрены выше в таблицах 1-3. Под каждым тэгом верхнего уровня может иметься один или несколько дочерних тэгов, по отдельности связанных с определенными элементами, относящимися к тому типу элементов, который должен быть добавлен посредством конкретного расширения.

На фиг.5 показан пример построения XML схемы в соответствии с данной формой осуществления изобретения. Для каждого тэга верхнего уровня в файле описания расширения имеется связанный с ним "менеджер присоединения", который является программным компонентом, принимающим данные, связанные с тэгом, так, чтобы эти данные могли использоваться для включения расширения в платформу или программу. Различные менеджеры присоединения могут интерпретировать данные от тэга различными способами, чтобы обеспечить различные типы расширяемости, так что различные тэги верхнего уровня будут содержать различные типы данных в различных структурах. Это будет пояснено ниже в разделе "Архитектура". Обратим внимание на то, что спецификатор пространства имен XML "edf:" допускает поддержку открытой схемы, где расширения могут предоставлять свои собственные тэги и соответствующие менеджеры присоединения. Тэги в пределах пространства имен edf используются встроенными менеджерами присоединения в приложении или платформе программного обеспечения. Тэги в других пространствах имен используются третьими сторонами для предоставления дополнительных точек расширяемости.

Декларация пакета (файл PKG)

Декларации пакетов (PKG) помогают организовать загрузку программного обеспечения в виде множества файлов через сеть, такую как Интернет. В примере, приведенном здесь, файлы PKG предпочтительно используются вместе с файлами описания расширений. Однако, как сказано выше, методики, рассматриваемые в связи с файлами PKG, могут использоваться независимо от файлов описания расширения и в любом подходящем сценарии, где желательно поставлять программное обеспечение по сети, такой как Интернет. В то время как файлы описания расширений описывают логическое присоединение расширений к программе или платформе, роль декларации пакета заключается в оказании помощи при выполнении одной или более из следующих операций: организованная доставка файлов, проверка правильности файлов и/или обновление файлов, связанных с различными расширениями, которые могут быть предоставлены.

При разработке механизма поставки программного обеспечения или файлов с помощью WWW представляют интерес несколько соображений.

Где это только возможно, желательно уменьшать объем загрузок, необходимых во время операций обновления и инсталляции программного обеспечения. Из этих соображений содержимое программного обеспечения разбивается на множество пакетов. Каждый пакет содержит группу из одного или нескольких файлов, которые осуществляют общие или строго определенные функции. При разбиении содержимого на отдельные пакеты размер требуемой загрузки во время инсталляции и обновления может быть минимизирован. Каждый пакет при этом описывается декларацией пакета (PKG), которая содержит информацию о файлах, например местоположение файлов и значения хеш-функции, которые могут использоваться для проверки правильности (верификации) или защиты от несанкционированного доступа и контроля версий.

Также желательно создать для конечного пользователя впечатление, подобное веб-странице. Чтобы сделать это, расширения загружаются таким образом, что эта загрузка воспринимается пользователями скорее как загрузка страниц сети, чем прием традиционных пакетов программного обеспечения, когда пользователи должны ждать, пока не будет загружен полный пакет, прежде чем они смогут взаимодействовать с ним. В описываемой форме осуществления изобретения у пользователей создают впечатление просмотра веб-страницы, направляя поток файлов расширения клиенту так, чтобы пользователи могли начинать взаимодействовать с программой намного раньше, чем она будет загружена целиком. Например, если имеются файлы изображений пользовательского интерфейса (UI), передаваемые потоком, пользователь может видеть пользовательский интерфейс при поступлении этого потока файлов. Рассмотрим, например, единую программу, имеющую множество разных функций.

Пользователь может обратиться к функциям электронной почты и загрузить те файлы, которые необходимы для выполнения этих функций. Тогда файлы, которые связаны с различными другими функциями, будут загружаться после файлов, связанных с функциями электронной почты. Таким образом, пользователь может начинать работать в рамках конкретных функциональных возможностей без необходимости ждать все файлы, связанные со всеми другими функциями.

Другое соображение, представляющее интерес, имеет отношение к эффективности, с которой файлы расширения или "биты" доставляются клиенту. В связи с этим описываемая форма осуществления изобретения использует два различных способа загрузки: загрузку с регулированием скорости и фоновую загрузку. Загрузка с регулированием скорости осуществляется с учетом доступной полосы частот и типа среды, через которую передаются файлы. Может использоваться любой подходящий процесс загрузки с регулированием максимальной ширины полосы частот, выделяемой для трафика, известный специалистам. Фоновая загрузка производится в то время, когда пользователь работает с прикладной программой, путем распределением фонового потока так, чтобы пользователь мог продолжать свою работу. Один из способов оптимизации, который может быть использован, заключается в том, что пакетам назначаются приоритеты и пакеты доставляются пользователю с учетом того, над чем пользователь работает.

Другое соображение связано с оптимизацией использования опыта пользователя по применению компьютера. Здесь использование опыта пользователя оптимизируют, делая для пользователя доступными наиболее общие сценарии. Это фактически направлено на предоставление пользователям тех функциональных возможностей, которые они хотят получить в первую очередь, после чего посредством фонового процесса загрузки предоставляется программный код, реализующий те функциональные возможности, которые пользователь может использовать в будущем. Чтобы определить, какие функциональные возможности пользователь желает иметь в первую очередь, предусматривается автоматизированный процесс формирования пакетов, основанный на сценариях, который опирается на протоколы (журналы регистрации) использования файла из записанных сценариев.

Все эти соображения и новые решения, учитывающие их, более подробно рассматриваются ниже.

Определение декларации пакета

В описываемой форме осуществления изобретения декларация пакета (файл PKG) содержит список файлов, которые используются в пакете. В предпочтительном случае список каким-то образом сжимают и снабжают электронной цифровой подписью. Каждая декларация пакета может содержать список из одного или нескольких файлов, каждому из которых может быть сопоставлено соответствующее значение хеш-функции, и директивы загрузки, которые управляют кэшированием файлов. Как только расширение создано, может использоваться программное средство для формирования декларации пакета.

Кроме того, декларация пакета может определять несколько других блоков информации:

- ГРУППА ФАЙЛОВ

Все файлы в расширении могут быть классифицированы согласно множеству заранее заданных групп файлов. Группа файлов, к которой отнесен конкретный файл, определяет, когда этот конкретный файл станет загружаться, где он будет храниться у клиента и как он будет помещен в пакет. В описываемой форме осуществления изобретения предусматриваются четыре группы файлов, которые перечислены и описаны в таблице, приведенной ниже:

- ПРИОРИТЕТ ЗАГРУЗКИ ФАЙЛОВ

Файлы в каждой группе располагаются согласно тому порядку, в котором они должны быть загружены. Этот порядок загрузки неявно определяется упорядоченной расстановкой файлов в декларации пакета, пример которой показан на фиг.6.

- ЗНАЧЕНИЕ ХЕШ-ФУНКЦИИ ДЛЯ ЗАЩИТЫ/КОНТРОЛЯ ВЕРСИЙ

Индивидуальные файлы в декларации пакета могут и