Идентификация загружаемых приложений, совместимых с основой

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

 

УРОВЕНЬ ТЕХНИКИ

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Описание приложения, как таковое, может быть добавлено в декларацию (манифест) приложения, но необязательно ограничивается декларацией приложения, предоставляя, по крайней мере, список функций, которые требуются для того, чтобы это приложение предоставляло желаемые функциональные свойства, от основной программы на основном/клиентском компьютере. Если требуемые функции для приложения доступны на клиентском компьютере, то тогда приложение будет отображено для пользователя как доступное, и, следовательно, загружаемое с сервера в электронном магазине. Если отображенное приложение выбрано, загружено и активировано на пользовательском компьютере, это приложение будет взаимодействовать с клиентским компьютером, чтобы предоставить желаемые функциональные свойства, посредством использования функций, предоставляемых основными программами.

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Фиг. 1 иллюстрирует примерное окружение, в котором один или несколько пользовательских (клиентских или целевых) компьютеров соединены посредством среды передачи данных, такой как Интернет, с одним или несколькими серверами в электронном магазине.

Фиг. 2A иллюстрирует примерную операционную среду клиентского компьютера.

Фиг. 2B иллюстрирует примерную операционную среду сервера.

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

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

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

ПОДРОБНОЕ ОПИСАНИЕ

Нижеследующее подробное описание направлено на понятия и технологии для идентификации загружаемых программ, совместимых с основой. Хотя объект патентования, описанный в настоящем документе, представлен в общем контексте программных модулей, которые исполняют одновременно с исполнением операционной системы и прикладных программ на компьютерной системе, специалисты в данной области техники признают, что другие реализации могут быть выполнены в сочетании с другими видами программных модулей. Обычно, программные модули включают в себя подпрограммы, программы, компоненты, структуры данных и другие виды структур, которые выполняют отдельные задачи или реализуют отдельные абстрактные типы данных. Более того, специалисты в данной области техники оценят, что изобретение, описанное в настоящем документе, может быть применено с другими конфигурациями компьютерных систем, в том числе карманными устройствами, многопроцессорными системами, основанной на микропроцессоре, или программируемой бытовой техникой, миникомпьютерами, универсальными ЭВМ и тому подобными.

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

Фиг. 1 иллюстрирует примерное окружение, в котором один или несколько пользовательских (клиентских или целевых) компьютеров 10A-10M соединены посредством среды 12 передачи данных с одним или несколькими серверами 14A-14N в электронном магазине, где M и N являются целочисленными и большими чем ноль. Клиентский компьютер 10 может быть любым видом компьютерной платформы, к примеру, персональным компьютером, планшетом, или другим видом вычислительного устройства, которое размещает одну или несколько программ. Среда 12 передачи данных может быть, к примеру, Интернетом, Wi-Fi® соединением или некоторой другой средой передачи данных, которая способна передавать данные, в том числе программные приложения, от одной точки к другой. Наконец, сервер 14 также является видом вычислительного устройства, но, в этом случае, имеющим прикладные программы, хранящиеся в нем, или легко им извлекаемые.

В электронном магазине пользователь за клиентским компьютером 10, к примеру, 10A, может быть ищет программное приложение, удовлетворяющее отдельную потребность, или просто смотрит, что может быть доступно, или бесплатно или для покупки. Если программное приложение не будет правильно взаимодействовать с пользовательским компьютером 10A, то тогда восприятие пользователем этого электронного магазина и/или компании, эксплуатирующей этот конкретный сервер, будет неприятным, особенно если пользователь заплатил за приложение и не может осуществить возврат денег. Восприятие пользователем будет, однако, считаться приятным, если приложение взаимодействует, как полагается.

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

Декларация приложения является описанием того, как приложение будет интегрироваться со специализированным программным обеспечением. Одним традиционным примером формата декларации приложения является XML файл, который определяет структуру и содержимое приложения, в том числе то, как это приложение интегрируется со специализированным программным обеспечением. Традиционные декларации приложений обычно, но необязательно, содержат как требуемые элементы, так и возможные элементы. Требуемые элементы могут быть, к примеру, а не в качестве ограничения, "assembly" («сборка»), "manifest version" («версия декларации») и "assemblyIdentity" («идентификатор сборки»). Возможные элементы могут быть, к примеру, а не в качестве ограничения, "noInherit" («нет наследования»), "compatibility" («совместимость»), "application" («приложение»), "supportedOS" («поддерживаемая ОС»), "dependency" («зависимость»), "dependentAssembly" («зависимая сборка») и "file" («файл»). Другие форматы декларации приложения также возможны, и использование других форматов, в частности, включено и предусмотрено в настоящем документе.

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

Также, традиционно, если пользователь имеет основную программу, такую как программа обработки текстов, и пользователь нуждается в дополнительной возможности для отдельного проекта или цели, этот пользователь выберет меню, панель инструментов, "ленту" или другой пользовательский интерфейс в основной программе. Это поднимет окно диалога, при помощи которого пользователь может подать параметр поиска на предмет доступных приложений серверу магазина, и сервер магазина вернет список приложений, которые соответствуют параметру поиска. Пользователь может затем выбрать приложение для загрузки с сервера. Если, однако, декларация для этого приложения содержит основную программу, требуемую для работы приложения, такую как Microsoft® Excel®, а эта основная программа не доступна на пользовательском компьютере, то выбранное приложение не будет должным образом взаимодействовать с основной программой на клиентском компьютере.

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

Фиг. 2A иллюстрирует примерную операционную среду клиентского компьютера 10, такого как клиентский компьютер 10A. На клиентском компьютере 10 имеется одна или несколько основных программ 20, таких как операционная система 21, программа 22 обработки документов, программа 23 обработки электронных таблиц, программа 24 рисования, обозреватель 25 Интернет и так далее. Компьютер 10 также имеет список 26 функций, обеспечиваемых разными основными программами, и программу электронного магазина или модуль 27 для выполнения операций, перечисленных в настоящем документе.

Фиг. 2B иллюстрирует примерную операционную среду сервера 14, такого как сервер 14A электронного магазина. На сервере 14 имеется одна или несколько основных программ 30, таких как операционная система 31, программа 32 электронного магазина и программа или модуль 33 для выполнения операций, перечисленных в настоящем документе. Дополнительно, сервер 14 содержит или имеет доступ к одному или нескольким приложениям 34, которые доступны для загрузки.

Фиг. 3 иллюстрирует примерный операционный хронометраж 300 для обмена данными между клиентским компьютером 10 и сервером 14 магазина. Предположим, что пользователь использует основную программу, такую как программа обработки текстов, и пользователь нуждается в дополнительном признаке или способности, которая не предусмотрена этой программой, для конкретного проекта или цели. Пользователь выберет меню, панель инструментов, "ленту" или другой пользовательский интерфейс в основной программе. Это поднимет окно диалога, при помощи которого пользователь может подать параметр поиска на предмет доступных приложений серверу магазина. Окно диалога также может включать в себя другие возможности или рекомендации, такие как, но не ограничиваясь этим, "наиболее используемое другими", "известные приложения", "приложения, наиболее высоко оцененные другими пользователями", и так далее. После обращения к веб-узлу электронного магазина и приема страницы авторизации, клиентский компьютер посылает 302 учетные данные серверу, а сервер проверяет эти учетные данные. Процедура авторизации является необязательной, но предпочтительной.

Сервер затем посылает 304 страницу поиска или раскрывающееся меню или другой вариант пользовательского интерфейса клиентскому компьютеру, с помощью которого пользователь может указать вид приложения, которого не достает пользователю, такой как, но не ограничиваясь этим, "карта", "отслеживание посылок", "локатор ресторанов". Также, если ранее не были перечислены в окне диалога, упомянутом выше, другие возможности или рекомендации могут быть предоставлены в этот момент, такие как, но не ограничиваясь этим, "рекомендованные приложения", "наиболее часто загружаемые приложения", "приложения, наиболее высоко оцененные другими пользователями", и так далее. Клиентский компьютер отобразит эту страницу поиска пользователю и примет пользовательский поисковый запрос. После этого, клиентский компьютер посылает 306 запрос поиска приложения серверу, предпочтительно, но необязательно, вместе со списком функций или возможностей, которые поддерживаются его основными программами.

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

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

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

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

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

Фиг. 4A-4C являются блок-схемами примерной процедуры 400, иллюстрирующей работу клиентского компьютера 10 и сервера 14 магазина. Следует понимать, что операции процедуры 400, раскрываемые в настоящем документе, необязательно представлены в каком-либо конкретном порядке, и что исполнение некоторых или всех операций в альтернативном порядке(ах) является возможным и предусмотренным. Операции были представлены в продемонстрированном порядке для облегчения описания и иллюстрации. Операции могут быть добавлены, опущены и/или исполнены одновременно, не выходя за рамки объема, определяемого прилагаемой формулой изобретения.

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

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

Процедура 400 начинается операцией 401, где электронный магазин, например, предоставленный сервером 14, или библиотека для разработчиков программного обеспечения, или некоторый другой источник или поставщик, перечисляют функции, обеспечиваемые разными основными программами. В операции 402 разработчик приложения определяет, какие функциональные возможности требуются для того, чтобы приложение выполнялось вообще, и какие функциональные возможности являются желательными (дополнительными) для того, чтобы получить новые и/или расширенные признаки этого приложения. Это может произойти, когда разработчик приложения разрабатывает приложение. К примеру, разработчик может определить, что создаваемое приложение может требовать функцию обработки текста и что возможность выбрать разные шрифты, размеры шрифтов, подчеркивание, выделение жирным шрифтом и так далее, является желательным, но не необходимым. Таким образом, функция обработки текста будет требуемой функцией, а функция разметки текста будет возможной функцией. В операции 404 разработчик, затем, перечисляет требуемые функции и возможные функции в декларации приложения. В операции 406 разработчик предоставляет разработанное приложение в магазин. Электронный магазин, затем, вносит в список это приложение в опции "покупки" для разных основных программ в операции 408.

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

Сервер, такой как, но не ограничиваясь этим, веб-сервер, для электронного магазина затем определяет, какие приложения наиболее вероятно удовлетворяют пользовательским запросам и предоставляет 408 список этих приложений клиентскому компьютеру. Сервер также или посылает декларацию для каждого приложения или посылает 408 список требуемых функций для каждого приложения. Клиентский компьютер принимает 409 эту информацию, а затем извлекает список функций, которые обеспечиваются основной программой(-ами) на клиентском компьютере. Сервер, затем, определяет 416, 418, 420, 422, какие приложения поддерживаются этой основной программой. Сервер, затем, возвращает 430 список приложений, удовлетворяющих параметру поиска, и декларацию или другую идентификационную информацию для каждого приложения в списке. Сервер также может посылать информацию о цене, информацию о любом испытательном сроке и так далее. Пользовательский компьютер принимает 435 этот список и эту информацию, при наличии таковой, и, затем, представляет этот список и любую подобную дополнительную информацию пользователю.

Пользователь делает выбор доступного приложения, и пользовательский компьютер принимает 440 этот выбор и, затем, запрашивает 445 это приложение у сервера, указывая адрес приложения, в соответствии с декларацией для этого приложения, или используя другую идентифицирующую информацию для этого приложения. Любые необходимые операции "купить", "зарегистрировать", "приобрести” и так далее также выполняются. Сервер предоставляет 450, а пользовательский компьютер принимает 450, декларацию для выбранного приложения и декларацию и/или другие документы для него.

После того как декларация принята, клиентский компьютер может немедленно возобновить основную программу, с тем чтобы пользователь мог начать использовать желаемые функциональные свойства приложения. Также, если пользователь ранее получил права на использование приложения, то тогда пользователь может запустить 455 основную программу и эта основная программа может немедленно начать предоставлять желаемые функциональные свойства. Так или иначе, основная программа активирует 460 это приложение. Приложение, затем, предоставляет 475 основные функциональные свойства основной программе. К примеру, приложение может корректно работать, если основная программа обеспечивает "табличную" функцию, но не будет способно предоставить полные визуальные эффекты, если только основная программа не предоставляет функцию "цветная таблица" или функцию "разметка текста". В операции 480, если имеются любые дополнительные функциональные свойства приложения, которые поддерживаются основной программой, то тогда приложение 485 также предоставляет эти поддерживаемые дополнительные функциональные свойства основной программе. Если дополнительные функции, поддерживаемые основной программой, отсутствуют, то тогда приложение продолжает работать в базовом режиме.

После того как декларация была загружена и сохранена на пользовательском компьютере, то тогда, впоследствии, когда пользователь активирует 455 основную программу, основная программа может напрямую вызывать 460 это приложение, вместо того, что бы повторять операции 412-450.

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

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

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

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

Возможно, что клиентский компьютер 10 будет иметь или имеет доступ к двум или более основным программам, и что отдельные функции могут быть предоставлены двумя или более основными программами. Одна основная программа может, однако, обеспечивать расширение этой функции, при этом другая основная программа - нет. Если эти расширения пригодны для использования приложением, то предпочтительно, чтобы расширенные функции были использованы. Соответственно, дополнительные расширения функции могут быть перечислены. К примеру, "табличная" функция, наряду с предоставлением указанных, требуемых признаков, может также перечислять другие признаки, являющиеся доступными (основная программа) или желаемыми (загружаемое приложение). Как пример, "табличная" функция может указывать в списке "разделитель страниц" (то есть способность разбивать электронную таблицу на две или более страниц, в заданных пользователем точках) или "порядок печати страниц" (то есть способность указывать которые страницы в многостраничной электронной таблице или печатать сверху вниз, а затем слева направо, или печатать слева направо, а затем, сверху вниз). Таким образом, декларация должна указывать: "Table: page separator" («Таблица: разделитель страниц») или "Table: page printing order" («Таблица: порядок печати страниц»), или "Table: page separator; page printing order"(«Таблица: разделитель страниц; порядок печати страниц»).

Также возможно, когда отдельная функция может быть предоставлена двумя или более основными программами, что функция, предоставляемая одной основной программой, может быть более желательной в некотором отношении, например, поскольку является более надежной или работающей быстрее, или что функция, предоставляемая другой основной программой, может быть менее желательной в некотором отношении, поскольку использует чрезмерно процессорную память или время. Вследствие этого, функция также может указывать предпочтительную основную программу, с тем, чтобы оптимальный режим мог быть получен для этого приложения. К примеру, декларация может указывать: "Table: Excel®" («Таблица: Excel®»). Таким образом, если две основные программы могут предоставлять табличную функцию, то тогда Excel® будет выбран для предоставления этой табличной функции. Если, однако, имеется основная программа, которая может предоставлять табличную функцию, то тогда загружаемое приложение будет по-прежнему работать, даже если Excel® не доступен как основная программа на клиентском компьютере.

Функция также может указывать, что она должна предоставляться конкретной основной программой. К примеру, декларация может указывать: "Table: Required: Excel®" («Таблица: Требование Excel®»). Однако эта опция не так предпочтительна, поскольку данная опция ограничивает приложение известными основными программами и не предполагает возможности будущих основных программ, если только его декларация не будет обновлена позже.

Функция может также указывать, что эта функция от конкретной основной программы не будет использоваться, даже если является требуемой функцией. К примеру, декларация может указать: "Table: Not NNN" (где "NNN" является названием или другой идентификацией программы, которая не должна быть использована для предоставления этой функции). В этом случае, если "NNN" является единственной основной программой, которая может предоставить табличную функцию, то тогда это приложение не будет показано как загружаемое приложение.

Подобным образом, функция может также указывать, что она должна быть предоставлена основной программой на конкретной платформе. К примеру, декларация может указать: "Table: Required Platform: Kindle®" («Таблица: Требуемая платформа: Kindle®»). Однако эта опция не так предпочтительна, поскольку данная опция ограничивает приложение известными платформами и не предполагает возможности будущих платформ, если только его декларация не будет обновлена позже.

Также, функция может быть привязана к конкретной версии основной программы. К примеру, декларация может указать: "Table: YYYv2.5", где "YYY" является названием основной программы. Однако эта опция не так предпочтительна, поскольку данная опция ограничивает приложение этой версией этой основной программы и не предполагает возможности будущих версий или программ, если только его декларация не будет обновлена позже.

Также, функция может быть привязана к конкретной версии основной программы или более поздней. К примеру, декларация может указать: "Table: YYYv2.5+", где "YYY" является названием основной программы, а "+" обозначает, что версия 2.5 или более поздняя будет работать. Наоборот, декларация может указать: "Table: YYYv2.5-", где "YYY" является названием основной программы, а "-" обозначает, что версия 2.5 или более ранняя будет работать. Однако эта опция не так предпочтительна, поскольку данная опция ограничивает приложение этой версией (или более ранними, или более поздними) этой основной программы. Однако может быть предпочтительным привязать функции к конкретным платформам или ранним версиям основных программ в некоторых случаях, как например, когда является желательным предоставить приложение, предназначенное для устаревших устройств или устаревших программ.

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

Фиг. 5 иллюстрирует примерную компьютерную архитектуру 500 для устройства, способного исполнять процедуры, описанные в настоящем документе для сервера 14 или для клиентского компьютера 10. Таким образом, компьютерная архитектура 500 иллюстрирует примерную архитектуру для серверного компьютера, мобильного телефона, КПК, смартфона, настольного компьютера, портативного компьютера, планшетного компьютера, и/или переносного компьютера. Компьютерная архитектура 500 может быть использована для исполнения любого аспекта программных операций, представленных в настоящем документе.

Примерная компьютерная архитектура 500 включает в себя центральный процессор 502 ("CPU"), системное запоминающее устройство 504, в том числе оперативное запоминающее устройство 506 ("RAM") и постоянное запоминающее устройство 508 ("ROM"), и системную шину 510, которая соединяет запоминающее устройство 504 с CPU 502. Базовая система ввода/вывода содержит базовые подпрограммы, которые помогают передавать информацию между элементами компьютерной архитектуры 500, например, во время запуска, хранится в ROM 508. Компьютерная архитектура 500 дополнительно включает в себя запоминающее устройство 512 большой емкости для хранения операционной системы 514 и одной или нескольких основных программ 520, одной или нескольких прикладных программ 522 и одной или нескольких других программ 524.

Запоминающее устройство 512 большой емкости подключено к CPU 502 через контроллер запоминающих устройств большой емкости (не показан), подключенный к шине 510. Запоминающее устройство 512 большой емкости и его соответствующий машиночитаемый носитель обеспечивают энергонезависимое хранилище для компьютерной архитектуры 500. Хотя описание машиночитаемого носителя, содержащееся в настоящем документе, ссылается на запоминающее устройство большой емкости, такое как жесткий диск или привод CD-ROM, должно быть оценено специалистами в данной области техники, что машиночитаемый носитель может быть любой доступной компьютерной средой хранения информации или коммуникационной средой, которая может быть доступна компьютерной архитектуре 500.

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

Хотя запоминающее устройство 504 и запоминающее устройство 512 большой емкости предпочтительно являются отдельными компонентами, запоминающее устройство 504 может быть включено в запоминающее устройство 512 большой емкости. Запоминающее устройство 504 и запоминающее устройство 512 большой емкости могут быть рассмотрены и названы устройством хранения.

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

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

В качестве примера, а не ограничения, компьютерная среда хранения данных может включать в себя энергозависимый и энергонезависимый, съемный и несъемный носитель, реализованная любым способом или технологией для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули, или другие данные. К примеру, компьютерная среда хранения данных включает в себя, но не ограничивается этим, RAM, ROM, EPROM, EEPROM, флэш-память или другую технологию твердотельной памяти, CD-ROM, универсальный цифровой диск ("DVD"), HD-DVD, BLU-RAY или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитный диск или другое магнитное запоминающее устройство, или любой другой носитель, который может быть использован для хранения желаемой информации и который может быть доступен посредством компьютерной архитектуры 500. Применительно к формуле изобретения, фраза "компьютерная среда хранения данных" и ее вариации не включают в себя волны, сигналы и/или другие эфемерные и/или неосязаемые коммуникационные среды, как таковые.

Согласно различным вариантам осуществления, компьютерная архитектура 500 может работать в сетевом окружении, используя логические соединения с удаленными компьютерами и/или серверами через сеть передачи данных, такую как сеть 12 передачи данных. Компьютерная архитектура 500 может подключаться к сети 12 передачи данных через модуль 516 сетевого интерфейса, подключенный к шине 510. Следует учитывать, что модуль 516 сетевого интерфейса также может быть использован для подключения к другим видам сетей передачи данных и удаленным компьютерным системам. Компьютерная архитектура 500 также может включать в себя контроллер 518 ввода/вывода для приема и обработки ввода от ряда других устройств, в том числе клавиатуры, манипулятора типа "мышь", сенсорного экрана, сенсорной панели, дополнительной цифровой клавиатуры или светового пера (не показано на Фиг. 5). Подобным образом, контроллер 518 ввода/вывода может обеспечивать вывод на устройство отображения, печатающее устройство или другой вид устройства вывода (также не показано на Фиг. 5).

Следует учитывать, что программные компоненты, описанные в настоящем документе, могут при загрузке в CPU 502 и исполнении, преобразовывать CPU 502 и компьютерную архитектуру 500 полностью из универсальной вычислительной системы в специализированную вычислительную систему, адаптированную для обеспечения функциональных возможностей, представленных в настоящем документе. CPU 502 может быть построен на любом числе транзисторов или других дискретных элементов схемы, которые могут индивидуально или коллективно принимать любое число состояний. Более конкретно, CPU 502 может работать как конечный автомат, в ответ на исполнение команд, содержащихся в программных модулях, описанных в настоящем документе. CPU 502 может быть однопроцессорным или может быть множеством процессоров. Эти исполняемые компьютером команды могут преобразовывать CPU 502, указывая, как CPU 502 переходит между состояниями, таким образом, преобразовывая транзисторы или другие дискретные аппаратные элементы, составляющие CPU 502.

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

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

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

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

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

1. Способ работы клиентского компьютера, посредством которого приложение получается с сервера для использования с основной программой на клиентском компьютере, при этом способ содержит этапы, на которых:

определяют функции, предоставляемые основной программой на клиентском компьютере;

посылают запрос поиска приложения и список упомянутых определенных функций на сервер, при этом список упомянутых определенных функций не является списком программ или списком приложений;

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

представляют список приложений;

принимают от пользователя выбор приложения из данного списка;

посылают этот выбор на сервер;

принимают выбранное приложение; и

активируют принятое приложение, используя основную программу.

2. Способ по п. 1, дополнительно содержащий этапы, на которых:

определяют, посредством клиентского компьютера, имеет ли принятое приложение необязательное функциональное свойство;

если принятое приложение имеет необязательное функциональное свойство, то определяют, посредством клиентского компьютера, необязательную функцию для поддержки этого необязательного функционального свойства; и

определяют, посредством клиентского компьютера, находится ли данная необязательная функция в списке упомянутых определенных функций; и

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

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

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

5. Способ по п. 4, в котором декларация задает, что конкретная основная программа не должна использоваться для предоставления заданной функции.

6. Способ по п. 1, дополнительно содержащий этап, на котором, после приема выбранного приложения, основная программа клиентского компьютера активирует выбранное приложение, когда основная программа активируется.

7. Сервер, на котором имеются загружаемые программные приложения, при этом сервер содержит:

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

модуль сетевого интерфейса;

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

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

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

генерировать список идентифицированных программных приложений;

обеспечивать посылку списка идентифицированных программных приложений через модуль сетевого интерфейса в клиентский компьютер;

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

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

8. Сервер по п. 7, в котором процессор дополнительно исполняет рабочие инструкции, чтобы:

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

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

9. Сервер по п. 7, в котором процессор дополнительно исполняет рабочие инструкции, чтобы:

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

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

10. Сервер по п. 7, в котором процессор дополнительно исполняет рабочие инструкции, чтобы:

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

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

11. Сервер по п. 7, в котором процессор дополнительно исполняет рабочие инструкции, чтобы:

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

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

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

определять, посредством клиентского компьютера, функции, предоставляемые основной программой на клиентском компьютере;

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

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

представлять, посредством клиентского компьютера, список приложений пользователю;

принимать, посредством клиентского компьютера, от пользователя выбор приложения из данного списка;

посылать этот выбор на сервер;

принимать выбранное приложение с сервера; и

активировать на клиентском компьютере принятое приложение, используя основную программу.

13. Компьютерный носитель данных по п. 12, дополнительно содержащий машиночитаемые инструкции, которые, при их исполнении на клиентском компьютере, предписывают клиентскому компьютеру:

получать запрос на загрузку выбранного одного из программных приложений в списке приложений;

запрашивать загрузку выбранного программного приложения с сервера; и

получать загрузку запрошенного программного приложения с сервера.

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

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

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

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

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

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



 

Похожие патенты:

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

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

Изобретение относится к способу устранения уязвимостей в устройствах, которые создают сетевые соединения, получают и обрабатывают входящий трафик, имеют отдельный интерфейс для взаимодействия (далее - "умные" вещи).

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

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

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

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

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

Изобретение относится к распределенному отказоустойчивому межсетевому взаимодействию (DRNI) в группе агрегирования линий связи при сбое связи в сетевом устройстве. Технический результат – упрощение предоставления услуг через систему DRNI.

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

Группа изобретений относится к способу и устройству для вызова такси. Технический результат – создание интеллектуальных средств, обеспечивающих вызов такси в зависимости от обычного поведения пользователя или данных плана пользователя.

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

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

Изобретение относится к средствам определения оптимального значения параметра аукциона для цифрового объекта. Техническим результатом является уменьшение нагрузки на сервер аукциона.

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

Изобретение относится к устройствам предоставления рекомендаций пользователю. Технический результат заключается в обеспечении возможности предоставления панели рекомендаций на основе типа устройства.

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

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

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

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

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