Управляемая среда выполнения для организации взаимодействия между программными приложениями



Управляемая среда выполнения для организации взаимодействия между программными приложениями
Управляемая среда выполнения для организации взаимодействия между программными приложениями
Управляемая среда выполнения для организации взаимодействия между программными приложениями
Управляемая среда выполнения для организации взаимодействия между программными приложениями

 


Владельцы патента RU 2459238:

МАЙКРОСОФТ КОРПОРЕЙШН (US)

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

 

Предшествующий уровень техники

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

Одним примером программы программного обеспечения, разработанной так, чтобы взаимодействовать с кодом, написанным другими разработчиками, является Интернет-браузер. Интернет-браузеры разработаны так, чтобы считывать файлы, которые описывают содержимое и макет Web-страницы (к примеру, файл на языке гипертекстовой разметки (HTML)), и отображать Web-страницу согласно макету, описанному в файле. Web-страница может включать в себя сценарии (такие как написанные на JAVASCRIPT®), другой текст или ссылки на графические файлы или объекты, такие как элементы ADOBE® SHOCKWAVE® или MICROSOFT® ACTIVEX®. Код для таких сценариев и ссылок на объекты и других элементов может быть встроен непосредственно в HTML-файл. Большинство браузеров разрабатываются так, чтобы иметь возможность считывать и отображать Web-страницы, которые содержат множество сценариев, объектов и других элементов, хотя это может влечь за собой установку обновлений и/или подключаемых модулей, чтобы надлежащим образом отображать некоторые объекты.

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

Кроме того, языки подготовки сценариев, такие как JavaScript, XML и AJAX, имеют ограниченные возможности по сравнению с другими полнофункциональными языками программирования, такими как C++, C# и Visual Basic. Универсальные языки программирования, такие как вышеуказанные, намного лучше подходят для создания сложных программных взаимодействий между программами программного обеспечения. Тем не менее во многих случаях браузеры и другие приложения, разработанные для того, чтобы считывать и реализовать код, написанный другими разработчиками, приспособлены для выполнения сценариев и не предназначены для того, чтобы исполнять код, написанный на высокоуровневых языках, таких как C++, C# и Visual Basic.

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

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

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

Перечень фигур чертежей

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

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

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

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

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

Подробное описание изобретения

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

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

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

Фиг.1 иллюстрирует компьютерную архитектуру 100, в которой могут использоваться принципы настоящего изобретения. Компьютерная архитектура 100 включает в себя клиентскую компьютерную систему 101. В некоторых вариантах осуществления клиентская компьютерная система 101 выполнена с возможностью сохранять и обрабатывать одну или более программ программного обеспечения. Как правило, к таким программам программного обеспечения осуществляется доступ и они открываются через операционную систему (OS). Клиентская компьютерная система 101 включает в себя хост-программу 105 программного обеспечения.

Хост-программа 105 программного обеспечения может быть любым типом программы программного обеспечения, которая может быть выполнена с возможностью исполняться в клиентской компьютерной системе 101. Хост-программа 105 программного обеспечения включает в себя функциональные возможности 106 хост-программы программного обеспечения. Функциональные возможности 106 хост-программы программного обеспечения включают в себя три функциональных возможности 106A, 106B и 106C. Следует отметить, что число проиллюстрированных функциональных возможностей хост-программы программного обеспечения выбрано произвольно и может включать в себя больше или меньше трех функциональных возможностей. Функциональная возможность 106 хост-программы программного обеспечения может включать в себя любой тип или часть функциональности, которая полезна для хост-программы 105 программного обеспечения. Например, если хост-программой 105 программного обеспечения является текстовый процессор, то функциональной возможностью может быть тезаурус, программа проверки правописания, мастер таблиц или любой другой фрагмент функциональности в программе обработки текста. Клиентская компьютерная система 101 включает в себя не только хост-программу 105 программного обеспечения, но также и другие программы 120 программного обеспечения. Эти другие программы программного обеспечения также могут быть любым типом программы программного обеспечения, которая может быть выполнена с возможностью исполняться в клиентской компьютерной системе 101.

Хост-программа 105 программного обеспечения также включает в себя управляемую среду 110 выполнения. Термин "управляемая среда выполнения", при использовании в данном документе, упоминается как интерфейсные средства управления, выполненные с возможностью осуществлять сопряжение между компьютерной системой и хост-программой программного обеспечения. Например, в некоторых вариантах осуществления управляемая среда 110 выполнения может включать в себя средства управления, выполненные с возможностью осуществлять сопряжение между клиентской компьютерной системой 101 и хост-программой 105 программного обеспечения. Интерфейсные средства управления могут использоваться для того, чтобы регулировать обмен данными между клиентской компьютерной системой 101 и хост-программой 105 программного обеспечения.

Кроме того, управляемая среда 110 выполнения включает в себя функции 111, загружаемое содержимое 112 и модуль 113 формирования кода. Функции 111 могут включать в себя любой тип программной функции, в том числе сценарий, исполняемый файл сборки или просто функцию в файле сборки. Загружаемое содержимое 112 может включать в себя любой тип содержимого, которое может быть загружено из другой компьютерной системы и/или компьютерной сети. Такое содержимое включает в себя, но не только, текст, графику, мультимедиа (к примеру, фильмы, аудио, видеоклипы и т.д.), сценарии, функции или любое другое содержимое, которое может быть загружено. Модуль 113 формирования кода может быть выполнен с возможностью формировать код, включающий в себя текст, сценарии или полные функции. Код может быть сформирован в ответ на загружаемое содержимое, как подробнее пояснено ниже.

Клиентская компьютерная система 101 также включает в себя декларативное представление 114. "Декларативное представление", при использовании в данном документе, является репрезентативной моделью структуры или макета объекта. Более конкретно, декларативное представление может быть моделью, представляющей то, как пользователь намерен изменять структуру или макет объекта. Например, пользователь может создавать декларативное представление объектной модели документов, которая используется для того, чтобы описывать структуру или макет Web-страницы HTML. Декларативное представление может иллюстрировать то, как пользователь намерен изменять объектную модель документов Web-страницы, и таким образом влияет на то, как Web-страница будет в конечном счете отображена.

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

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

Способ 200 включает в себя этап интеграции управляемой среды выполнения в хост-программу программного обеспечения (этап 210). Например, управляемая среда 110 выполнения может быть интегрирована в хост-программу 105 программного обеспечения в клиентской компьютерной системе 101. Термин "интеграция", при использовании в данном документе, может соответствовать установке и запуску управляемой среды 110 выполнения в хост-программе 105 программного обеспечения в качестве подключаемого модуля. Или, альтернативно, управляемая среда 110 выполнения уже может быть частью хост-программы 105 программного обеспечения, и "интеграция" может соответствовать вызову функциональности управляемой среды 110 выполнения из хост-программы 105 программного обеспечения. В обоих случаях управляемая среда 110 выполнения интегрируется и выполняется в хост-программе 105 программного обеспечения.

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

Способ 200 включает в себя этап использования управляемой среды выполнения для того, чтобы взаимодействовать с одной или более функциональными возможностями хост-программы программного обеспечения, при этом управляемая среда выполнения содержит интерфейсные средства управления, выполненные с возможностью осуществлять сопряжение между компьютерной системой и хост-программой программного обеспечения (этап 220). Например, управляемая среда 110 выполнения может использоваться для того, чтобы взаимодействовать с функциональной возможностью 106A хост-программы 105 программного обеспечения, причем управляемая среда 110 выполнения содержит интерфейсные средства управления, выполненные с возможностью осуществлять сопряжение между клиентской компьютерной системой 101 и хост-программой 105 программного обеспечения. Как пояснено выше, управляемая среда 110 выполнения может использоваться для того, чтобы взаимодействовать с функциональными возможностями 106 хост-программы программного обеспечения. В одном варианте осуществления, где хост-программа 105 программного обеспечения является программой обработки текста, программная функциональная возможность 106A может представлять тезаурус, функциональная возможность 106B может представлять программу проверки правописания, а функциональная возможность 106C может представлять мастер таблиц. Управляемая среда 110 выполнения может использоваться для того, чтобы взаимодействовать с этими или другими функциональными возможностями программы обработки текста.

Способ 200 включает в себя этап изменения посредством управляемой среды выполнения одной или более из различных функциональных возможностей хост-программы программного обеспечения на основе кода, который идентифицируется в загружаемом содержимом (этап 230). Например, управляемая среда 110 выполнения может изменять функциональную возможность 106A программы программного обеспечения на основе кода, который идентифицируется в загружаемом содержимом (к примеру, загружаемом содержимом 112). Как пояснено выше, загружаемое содержимое 112 может включать в себя любой тип текста, графики, сценарии, функции или любого другого типа содержимого, которое может быть загружено из локальной или удаленной компьютерной системы через сеть. Идентифицированный код может включать в себя любой тип машинного кода, включая сценарии, функции, компилированные сборки или другую форму машинного кода.

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

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

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

Фиг.3 иллюстрирует блок-схему последовательности операций способа 300 управления взаимодействиями между приложением Интернет-браузера и компьютерной системой посредством предоставления управляемой среды выполнения, выполняющейся в приложении Интернет-браузера. Фиг.4 иллюстрирует вариант осуществления настоящего изобретения, в котором Web-страницы визуализируются с помощью объектной модели документов. Способ 300 и вариант осуществления 400 далее описываются со ссылкой на компоненты и данные среды 100.

Способ 300 включает в себя этап интеграции управляемой среды выполнения в приложение Интернет-браузера (этап 310). Например, управляемая среда 110 выполнения может быть интегрирована в приложение Интернет-браузера. Как пояснено выше относительно хост-программы 105 программного обеспечения, приложение Интернет-браузера может включать в себя управляемую среду 110 выполнения как часть приложения или, альтернативно, управляемая среда 110 выполнения может быть добавлена отдельно как подключаемый модуль с помощью модели расширяемости браузера. В некоторых вариантах осуществления приложение Интернет-браузера может выступать в качестве хост-программы программного обеспечения, как представлено хост-программой 105 программного обеспечения в клиентской компьютерной системе 101.

Способ 300 включает в себя этап использования управляемой среды выполнения для того, чтобы взаимодействовать с Web-страницей, включающей в себя объектную модель документов, при этом объектная модель документов представляет структурную схему Web-страницы, в том числе программно-доступные элементы, управляемую среду выполнения, содержащую интерфейсные средства управления, выполненные с возможностью осуществлять сопряжение между компьютерной системой и приложением Интернет-браузера (этап 320). Например, управляемая среда 110 выполнения может использоваться для того, чтобы взаимодействовать с Web-страницей 401, включающей в себя объектную модель 410 документов. Объектная модель 410 документов может представлять структурную схему Web-страницы 401, включая ссылки на элементы 405 Web-страницы. Управляемая среда 110 выполнения может включать в себя интерфейсные средства управления, выполненные с возможностью осуществлять сопряжение между клиентской компьютерной системой 101 и приложением Интернет-браузера.

Способ 300 включает в себя этап динамического изменения объектной модели документов на основе кода, который идентифицируется в загружаемом содержимом (этап 330). Например, объектная модель 410 документов может быть динамически изменена на основе кода, который идентифицируется в загружаемом содержимом 112. В некоторых случаях на код предоставляется ссылка в загружаемом содержимом 112, ссылка идентифицируется, и код загружается по запросу.

В некоторых вариантах осуществления динамически изменяются элементы, на которые ссылается объектная модель 410 документов. Элемент - это любой объект, который либо является частью, либо указывается ссылкой в HTML-файле Web-страницы. В одном примере Web-страница 401 может содержать ссылку на элемент 1 (406) и ссылку на элемент 2 (407), а также другие ссылки на другие элементы (не показаны на фиг.4 - следует отметить, что любое число ссылок на элементы может присутствовать в Web-странице 401). Обычно, когда приложение Интернет-браузера осуществляет доступ к объектной модели документов, чтобы определять макет Web-страницы, объектная модель документов не изменяет макет элементов, и элементы отображаются согласно тому, где они указаны ссылкой в Web-странице. Например, в Web-странице, которая включает в себя HTML и ссылки на элементы 405, элемент в конечном счете отображается на основе того, где размещена ссылка в HTML Web-страницы (к примеру, ссылка на элемент 1 (406) должна быть отображена выше ссылки на элемент 2 (407), потому что 406 предшествует 407 в макете Web-страницы). Продолжая этот пример, объектная модель 410 документов обычно должна идентифицировать то, где каждый элемент размещен в HTML Web-страницы, и отображать его неизмененным (которые показаны проходящими через неизмененную стрелку 411).

Тем не менее в некоторых вариантах осуществления настоящего изобретения элементы могут быть изменены (которые показаны проходящими через измененную стрелку 412), потому что объектная модель документов изменена (см. этап 330 выше). Измененная объектная модель 410 документов может изменять одну или более характеристик элемента. Например, измененная объектная модель 410 документов может изменять то, где на Web-странице отображается элемент, цвет или стиль элемента, шрифта, размера или любой другой атрибут элемента. В некоторых вариантах осуществления элементы, которые динамически изменяются, включают в себя те элементы, которые доступны через прикладной интерфейс подготовки сценариев. В других вариантах осуществления динамически измененные элементы включают в себя HTML или непосредственно XML Web-страницы.

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

Способ 300 включает в себя этап отображения Web-страницы с использованием измененной объектной модели документов (этап 340). Например, Web-страница 401 может быть отображена на дисплее 415 с помощью измененной объектной модели 412 документов. В случаях, если элементы отображаются неизмененными (элементы, показанные проходящими через неизмененную объектную модель 411 документов), результатом является отображение неизмененных элементов 416 (элемент 1) и 417 (элемент 2). Дополнительно или альтернативно, в случаях, если элементы изменяются до того, как они отображаются (элементы, показанные проходящими через измененную объектную модель 412 документов), результатом является отображение измененных элементов 418 (элемент 1B) и 419 (элемент 2B). Таким образом, если элементы, на которые ссылаются в ссылке на элемент 1 (406) и ссылке на элемент 2 (407), являются объектом ActiveX® и сценарием JavaScript®, соответственно, то в первом случае элементы должны обрабатываться и отображаться неизмененными от первоначального макета, а во втором случае элементы должны обрабатываться и отображаться в макете, измененном от оригинала (к примеру, сценарий JavaScript® может теперь появляться перед объектом ActiveX® на Web-странице или они могут иметь различные цвета, различные шрифты, различные размеры и т.д.).

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

В некоторых вариантах осуществления может быть возможным использовать несколько управляемых сред выполнения для того, чтобы динамически формировать и/или изменять содержимое Web-страницы (к примеру, Web-страницы 401). Например, одна управляемая среда 110 выполнения может быть назначена каждому элементу в Web-странице, чтобы увеличить скорость обработки и уменьшить время загрузки Web-страницы. В некоторых вариантах осуществления широкие возможности работы в сети могут быть интегрированы в приложение Интернет-браузера или другую хост-программу 105 программного обеспечения. В некоторых случаях это должно значительно повышать практичность и функциональность хост-программы программного обеспечения.

В других вариантах осуществления управляемая среда 110 выполнения может принимать вызов функции от одного из программно-доступных элементов Web-страницы для функции, предоставляемой посредством управляемой среды 110 выполнения. Как упомянуто выше, управляемая среда 110 выполнения может включать в себя функции 111, которые могут быть предоставлены другим элементам Web-страницы или функциональным возможностям 106 программы программного обеспечения. Управляемая среда 110 выполнения включает в себя двунаправленный интерфейс, который дает возможность среде 110 взаимодействовать с хост-программой 105 программного обеспечения, другими программами 120 программного обеспечения и функциональными возможностями хост-программы программного обеспечения, а также дает возможность этим программам и функциональным возможностям обмениваться данными и запрашивать информацию из управляемой среды 110 выполнения.

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

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

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

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

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

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

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

6. Машиночитаемый носитель по п.1, при этом управляемая среда выполнения добавляется к хост-программе программного обеспечения как подключаемый модуль.

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

8. Машиночитаемый носитель, имеющий машиноисполняемые инструкции, которые при их исполнении одним или более процессорами компьютерной системы предписывают компьютерной системе выполнять способ управления взаимодействиями между приложением Интернет-браузера и компьютерной системой посредством предоставления управляемой среды выполнения, выполняющейся в приложении Интернет-браузера, содержащий этапы, на которых:
интегрируют управляемую среду выполнения в приложение Интернет-браузера, причем приложение Интернет-браузера содержит одну или более функциональных возможностей, обеспечивающих функциональность;
используют управляемую среду выполнения, чтобы взаимодействовать с Web-страницей, включающей в себя объектную модель документов, при этом объектная модель документов представляет структурную схему Web-страницы, в том числе программно доступные элементы, причем управляемая среда выполнения содержит интерфейсные средства управления, выполненные с возможностью осуществлять сопряжение между компьютерной системой и приложением Интернет-браузера;
динамически изменяют объектную модель документов на основе кода, который идентифицируется в скачиваемом содержимом;
загружают посредством управляемой среды выполнения идентифицированный код;
инициализируют посредством управляемой среды выполнения идентифицированный код внутри приложения Интернет-браузера;
переносят посредством управляемой среды выполнения управление инициализированным идентифицированным кодом в точки входа в управляемой среде выполнения и обеспечивают доступ к объектам в пределах по меньшей мере одной из упомянутых одной или более функциональных возможностей и
отображают Web-страницу с помощью измененной объектной модели документов.

9. Машиночитаемый носитель по п.8, в котором способ дополнительно содержит этап, на котором динамически изменяют элементы, на которые ссылается объектная модель документов.

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

11. Машиночитаемый носитель по п.9, в котором динамически измененные элементы включают в себя HTML Web-страницы.

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

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

14. Машиночитаемый носитель по п.8, при этом управляемая среда выполнения добавляется к приложению Интернет-браузера с помощью модели расширяемости приложения браузера.

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

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

17. Машиночитаемый носитель по п.8, в котором способ дополнительно содержит этап, на котором интегрируют широкие возможности работы в сети в приложение Интернет-браузера.

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

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



 

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

Изобретение относится к области транзакционных изолированных систем хранения. .

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

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

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

Изобретение относится к средствам защиты обработки данных пользователя в компьютерных сетях. .

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

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

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

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

Изобретение относится к передаче данных, а именно к системе и способу предоставления цифровых представлений идентификации (DIR)

Изобретение относится к цифровым информационным системам, к способам и системам защиты цифровых информационных систем от несанкционированного вмешательства

Изобретение относится к вычислительной технике
Изобретение относится к области защиты от несанкционированного доступа (НСД) к информации, хранимой в компьютерных системах (КС), в особенности в системах терминального доступа (СТД)

Изобретение относится к электросвязи и может быть использовано в системах защиты от компьютерных атак путем их оперативного выявления и блокирования в информационно-вычислительных сетях
Наверх