RU2501075C2 - Изоляция контента посредством процессов в приложении - Google Patents
Изоляция контента посредством процессов в приложении Download PDFInfo
- Publication number
- RU2501075C2 RU2501075C2 RU2010129244/08A RU2010129244A RU2501075C2 RU 2501075 C2 RU2501075 C2 RU 2501075C2 RU 2010129244/08 A RU2010129244/08 A RU 2010129244/08A RU 2010129244 A RU2010129244 A RU 2010129244A RU 2501075 C2 RU2501075 C2 RU 2501075C2
- Authority
- RU
- Russia
- Prior art keywords
- processes
- isolation
- tab
- content
- execution
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
- Multi Processors (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Изобретение относится к области выполнения процессов, которые содержат в себе контент, полученный через сеть. Техническим результатом является изоляция контента посредством процессов в приложении. В варианте осуществления выполнение одного или более процессов, которые содержат принятый через сеть контент, управляется посредством другого процесса одного приложения, которое включает в себя один или более процессов. Управление включает в себя завершение одного или более процессов, когда они не отвечают. Выполнение одного или более процессов изолировано от другого процесса так, что, когда один или более процессов не отвечают, другой процесс остается реагирующим. Затем контент в одном или более завершенных процессов восстанавливается. 3 н. и 17 з.п. ф-лы, 5 ил.
Description
УРОВЕНЬ ТЕХНИКИ
Приложения могут быть выполнены с возможностью потреблять широкое многообразие контента. Например, приложение обозревателя может быть выполнено с возможностью переходить по широкому многообразию различного контента, доступного через сеть, такого как web страницы, музыка, интерактивное видео и т.д. Этот интернет контент обычно является не заслуживающим доверия и/или ненадежным и, следовательно, его выполнение должно быть ограничено как в использовании ресурсов, так и в управлении доступом. В некоторых случаях этот контент может быть выполнен в качестве кода расширения, который служит для того чтобы расширить функции самого приложения обозревателя, который иногда называется как «подключаемый модуль», «сторонний подключаемый модуль», «дополнительный компонент» и так далее. Тем не менее этот код расширения может оказывать вредное влияние на выполнение самого приложения обозревателя, даже доводя его до точки отказа. Он также может пытаться выполнить действия, которые пользователь не хотел бы, чтобы происходили.
Например, приложение обозревателя может принять сторонний подключаемый модуль для того чтобы расширить функциональность приложения обозревателя. Так как это «сторонний» подключаемый модуль, тем не менее он может быть написан в соответствии со стандартами качества, которые не согласуются со стандартами автора приложения обозревателя. Например, дополнительный модуль может вызвать отказ во время выполнения совместно с приложением обозревателя. Из-за того что подключаемый модуль является кодом расширения, который может совместно использовать ресурсы с приложением обозревателя, сбой подключаемого модуля может вызвать отказ приложения обозревателя, такого как аварийный отказ, «зависание» и т.д.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Описана изоляция контента посредством процессов в приложении. В варианте осуществления выполнение одного или более процессов, которые содержат в себе контент, полученный через сеть, управляется посредством другого процесса одного приложения, которое включает в себя один или более процессов. Управление включает в себя завершение или перезапуск одного или более процессов, когда они не отвечают, дают сбой или иным способом не выполняются должным образом. Выполнение одного или более процессов изолируется от других процессов таким образом, что, когда один или более процесс не отвечает, другой процесс остается реагирующим. Затем контент в завершенном одном или более процессах восстанавливается. Следовательно, выполнение одного или более процессов может быть изолировано от других процессов так, что их клиентское удостоверение и управление доступом могут быть установлены и ограничены на основании политики для источника Интернет контента и выполняющего его пользователя. Выполнение контента из Интернет затем может управляться посредством удостоверения операционной системы клиента и/или ограничений управлением доступа характерных для источника интернета и, сверх этого, приложенных на основании удостоверения пользователя локального клиента.
В другом варианте осуществления один или более машиночитаемых носителей включает в себя команды, которые являются исполняемыми для того чтобы предоставить приложению обозревателя возможность иметь один или более процессов вкладки и процесс фрейма. Один и более процессов вкладки содержат в себе контент, принятый через сеть так, что каждый процесс вкладки изолирует соответствующий контент один от другого. Процесс фрейма управляет выполнением одного или более процессов вкладки. По меньшей мере, одному из процессов вкладки назначается уровень доверия, который ниже чем у процесса фрейма, так, что процесс фрейма имеет доступ к одному или более ресурсам, которые не доступны контенту, содержащемуся, по меньшей мере, в одном процессе вкладки.
Это краткое описание предоставлено для того, чтобы в явной форме представить выбор идей, которые дополнительно описаны ниже в Подробном Описании. Это краткое описание не предназначено для того, чтобы определить ключевые признаки или неотъемлемые признаки заявленного предмета, а также не предназначено для того, чтобы быть использованным в качестве средства для определения объема заявленного предмета.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
Подробное описание описано со ссылкой на прилагаемые фигуры. В фигурах крайняя левая цифра(ы) ссылочного номера определяет фигуру, в которой ссылочный номер появляется впервые. Использование одних и тех же ссылочных номеров в различных примерах в описании и фигурах может указывать аналогичные или идентичные элементы.
Фиг. 1 является иллюстрацией окружения в типичном варианте осуществления, которое является рабочим для того, чтобы использовать технологию изоляции.
Фиг. 2 является иллюстрацией архитектуры, показывающей компоненты, которые могут использоваться для формирования инфраструктуры приложения.
Фиг. 3 описывает типичную инфраструктуру изоляции для приложения обозревателя в качестве организованной по уровням.
Фиг. 4 является иллюстрацией типичного варианта осуществления процесса фрейма и процесса вкладки, как осуществленные через компоненты Фиг. 2 и 3.
Фиг. 5 является блок-схемой, описывающей процедуру в типичном варианте осуществления, в которой выполнение одного или более процессов, которые изолируют контент, управляется посредством других процессов.
ПОДРОБНОЕ ОПИСАНИЕ
ОБЗОР
Многообразие различных приложений, которые выполняет полученный через сеть контент, может быть расширено посредством динамически загружаемого и выполняемого предоставленного из интернета контента. Этот контент может включать в себя как «внешний», так и «встроенный» код, но в любом случае он вызывает выполнение команд на локальном компьютере. Этот контент включает в себя не только «специфичный для интернет узла» код, такой как HTML, но так же «код расширения», который может включать в себя «подключаемые модули», «дополнительные компоненты», «драйверы» и т.д., которые предназначены для выполнения на различных или всех контентах интернет узла или на ресурсах локальной машины.
Код расширения обычно представлен как «машинный код», который выполняется без стандартных механизмов управления доступом в интернет или механизмов управления надежностью. Он может иметь меняющийся уровень качества и доверия. Дополнительно код расширения может совместно с приложением, которое его размещает, использовать ресурсы (например, память, дескрипторы, пространство процесса и т.д.). Следовательно, отказ кода расширения также может вызвать отказ приложения (например, вызвать «аварийный отказ» или «зависание» приложения), вызвать неэффективное потребление ресурсов, может привести к нарушению безопасности и т.д.
Описана изоляция контента, принятого через сеть (например, Интернет контент), посредством процессов в приложении. В варианте осуществления для того чтобы изолировать выполнение интернет контента используются процессы. Например, приложение интернет обозревателя может быть выполнено с возможностью включать в себя процесс фрейма, который отвечает за управление (и вследствие этого в нижеследующем описании также называемый как «процесс управления») основной функциональностью обозревателя, такой как формирование функциональности и управления самого обозревателя, включая кнопки «назад» и «вперед» для перехода по web страницам, адресную строку, которая принимает в качестве входных данных адрес унифицированного указателя ресурсов (URL) и т.д.
Приложение обозревателя также может поддерживать процессы, которые используются для того чтобы изолировать (и вследствие этого в нижеследующем описании также называемые как «процессы изоляции») контент, принятый через просмотр, лежащий в основе функциональности самого приложения обозревателя. Эти процессы, например, могут отражаться как вкладки внутри приложения обозревателя, каждая выполняемая в отдельном процессе. Процесс фрейма может выполняться для того, чтобы управлять выполнением процессами вкладок и из-за изоляции, и если один или более процессов вкладки отказал (например, не отвечает), процесс фрейма может продолжить выполняться в качестве предназначенного вместе с другими процессами вкладки, которые не отказали. Дополнительно процесс фрейма может предпринимать одно или более корректирующее воздействие такое, чтобы завершить неотвечающий процесс вкладки и затем восстановить контент, который был выполнен в процессе вкладки. Также рассматривается многообразие других примеров, дальнейшее обсуждение которых может быть найдено в описании к нижеследующим фигурам.
В другом варианте осуществления технология изоляции может использоваться совместно с «оценкой доверия» для того, чтобы ограничить управление доступом и удостоверением контента. Ранее описанный контент, принятый через интернет, включающий в себя код расширения, может быть написан с намерением и для того, чтобы добиться целей, которые не в интересах пользователя или локального клиента. Следовательно, оценка доверия к контенту может быть сделана, используя, например, знание об источнике контента или средства, используемые для того, чтобы идентифицировать и/или принимать контент, используемые для того, чтобы назначить уровень «удостоверения и управления доступом» для соответствующего контента. Оценка доверия может использоваться в качестве основы для доступа к ресурсам компьютера, который выполняет код расширения. Тем не менее обычные технологии были выполнены на основе «из расчета на приложение». Например, для того чтобы взаимодействовать с web контентом, имеющим различное доверие, выполнялись многочисленные приложения обозревателя, которые не применяли управление доступом операционной системы клиента, а идентифицировали, что возможно ресурс неэффективный и возможно расстраивающий и сбивающий с толку для пользователя с точки зрения простоты работы. Дальнейшее обсуждение доверия может также быть найдено в описании к нижеследующим фигурам.
В нижеследующем обсуждении сначала описано типичное окружение, которое является рабочим для того, чтобы использовать технологию изоляции. Затем описаны типичные процедуры, которые могут быть использованы в типичном окружении, так же, как и в других окружениях. Несмотря на то что в некоторых примерах описано приложение обозревателя как использующее технологию изоляции, также эту технологию может использовать многообразие других приложений, которые выполняют интернет контент, такие как приложения «технических новинок», которые выполняют сторонний код расширения (например, на боковой панели) на рабочей поверхности компьютера для того чтобы предоставить дополнительную функциональность, такую как информация о погоде, заголовки, интерактивное видео и т.д.
ТИПИЧНОЕ ОКРУЖЕНИЕ
Фиг. 1 является иллюстрацией окружения 100 в типичном варианте осуществления, которое является рабочим для того чтобы использовать технологию изолирования. Проиллюстрированное окружение 100 включает в себя множество поставщиков 102(1)-102(M) контента и компьютер 104, которые коммуникативно соединены друг с другом через сеть 106. Компьютер 104 может быть скомпанован различными способами. Например, компьютер 104 может быть выполнен с возможностью обмениваться информацией через сеть 106, как, например, настольный компьютер, мобильная станция, устройство для развлечения, телевизионная абонентская приставка, коммуникативно соединенная с дисплейным устройством, беспроводной телефон, игровая приставка и т.д.
Несмотря на то что сеть 106 проиллюстрирована как сеть Интернет, сеть может предполагать широкое многообразие исполнений. Например, сеть 106 может включать в себя глобальную сеть (WAN), локальную сеть (LAN), беспроводную сеть, телефонную сеть общего пользования, интрасеть и так далее. Дополнительно несмотря на то что показана единичная сеть 106, сеть 106 может быть выполнена с возможностью включать в себя разнообразные сети.
Каждое из множества поставщиков контента 102(1)-102(M) проиллюстрированы как включающие в себя модули 102(1)-102(M) управления соответствующим контентом, которые являются образцами функциональности для того, чтобы предоставить соответствующий контент 110(c), 112(k) (где «c» и «k» могут быть целочисленными значениями между 1 и «C», 1 и «K» соответственно) компьютеру 104 через сеть 106. Контент может быть сформирован различными способами. Например, контент 112(k) может быть сформирован как web страницы 114, сценарии 116, код расширения 118 и т.д.
Компьютер 104 проиллюстрирован как включающий в себя процессор 120 и память 122. Процессоры не ограничены материалами, из которых они сформированы, или используемыми ими механизмами обработки. Например, процессоры могут содержать в себе полупроводник(и) и/или транзисторы (например, электронные интегральные схемы (IC)). В таком контексте выполняемые процессором команды могут быть командами, выполняемыми при помощи электронных устройств. В качестве альтернативы механизмы процессоров или механизмы для процессоров и, следовательно, устройств вычисления или для устройств вычисления могут включать в себя, но не ограничены, квантовые вычисления, оптические вычисления, механические вычисления (например, используя нанотехнологию) и так далее. В добавление несмотря на то что показана одна память 122, может быть использовано широкое многообразие типов и комбинаций памяти, такие как оперативная память (RAM), память на жестком диске, съемные запоминающие устройства и другие типы машиночитаемых носителей.
Компьютер также проиллюстрирован как выполняющий процессором 120 приложение 124, которое является хранящимся в памяти 122. Приложение 124 может быть выполнено с возможностью предоставлять широкое многообразие функциональности, такое как приложение обозревателя (дальнейшее описание которого может быть найдено в описании к Фиг. 3), рабочее приложение и т.д.
В качестве примера приложение 124 может следовать модели компонента и структуре изоляции, которые могут использовать базисные элементы операционной системы (например, процессы) для того чтобы изолировать компоненты друг от друга посредством использования процессов управления и процессов изоляции. Такой пример показан для приложения 124 в качестве инфраструктуры изоляции, которая включает в себя процесс 126 фрейма, который является примером процесса управления, и множество процессов 128(1)-128(T) вкладки, которые являются примерами процессов изоляции. Процесс 126 фрейма является образцом функционирования для того чтобы управлять процессами 128(1)-128(T) вкладки, как, например, принимать решение, «где» в компьютерных 104 ресурсах (например, процессор 120 и/или память 122) процессы 128(1)-128(T) вкладки должны выполняться и/или поддерживаться, отслеживать время жизни и способность к реагированию процессов вкладки 128(1)-128(T), прекращать процессы 128(1)-128(T) вкладки, восстанавливать соответствующий контент 112(1)-112(T), когда соответствующие процессы 128(1)-128(T) вкладки отказывают и т.д. Следовательно, выполнение контента 112(1)-112(T) в соответствующих процессах 128(1)-128(T) вкладки не пересекается с выполнением процесса 126 фрейма, тем самым поддерживая способность к реагированию процесса 126 фрейма, даже когда один или более процессов 128(1)-128(T) вкладки и заключенные в них контенты 112(1)-112(T) не отвечают и дальнейшее обсуждение которых может быть найдено начиная с описания к Фиг. 4. В дополнительном варианте осуществления эта изоляция достигается посредством разделения процесса, который дополнительно держит контент 112(1) в одном процессе 128(1) вкладки от пересечения с контентом 112(T) в другом процессе 128(T) вкладки в одном приложении, например приложение 124.
Технология изоляции, такая как инфраструктура изоляции, также может поддерживать многообразие другой функциональности. Например, изоляция контента 112(1)-112(T) в соответствующих процессах 128(1)-128(T) вкладки может позволять использование различных уровней «доверия» одним приложением. Контенту 112(1), выполняемому в процессе 128(1) вкладки, например, может быть назначен уровень доверия, который ниже, чем уровень доверия, назначенный процессу 126 фрейма. Следовательно, процесс 126 фрейма может иметь разрешение для доступа к дополнительным ресурсам (например, к программной части, такой как операционная система и/или к аппаратной, такой как совместно используемая память), к которым контент 112 (1) в процессе 128(1) не имеет разрешение доступа. Подобным образом, контенту 112(1) в процессе 128(1) вкладки может быть назначен уровень доверия, отличный от уровня для контента 112(T) в процессе 128(T) вкладки, и дан доступ к различным ресурсам внутри одного и того же приложения 124. Дальнейшее обсуждение уровней доверия может быть найдено в нижеследующем обсуждении начиная с описания к Фиг. 5.
Использование процессов одним приложением может поддерживать многообразие другой функциональности. Например, процессы могут быть выполнены с возможностью нести разное количество «битов» так, что процесс 126 фрейма может выполняться на 64 битах, в то время как один или более процессов 128(1)-128(T) вкладки работают на 32 битах, при этом процессы 128(1)-128(T) вкладки могут работать на отличных (друг от друга) полосах пропускания и т.д. Предполагается также многообразие других примеров, дальнейшее обсуждение которых может быть найдено описаниях к нижеследующим фигурам.
В целом любая описанная здесь функция может быть осуществлена, используя программное обеспечение, встроенное программное обеспечение (например, фиксированная логическая схема), ручную обработку или комбинацию этих исполнений. Используемые здесь термины «модуль», «функциональность» и «логика» в общем смысле представляют программное обеспечение, встроенное программное обеспечение или комбинацию обычного и встроенного программного обеспечения. В случае осуществления в программном обеспечении модуль, функциональность или логика представляют собой код программы, который выполняет указанные задачи при выполнении процессором (например, центральным процессором или центральными процессорами). Код программы может быть сохранен на одном или более машиночитаемых устройствах памяти, например в памяти 122 на Фиг. 1. Описанные ниже признаки технологии изолирования являются платформо-независимыми, означая, что технология может быть реализована на многообразии коммерческих вычислительных платформ, имеющих многообразие процессоров.
Фиг. 2 изображает архитектуру 200, показывающую компоненты 202, 204, которые могут быть использованы для формирования инфраструктуры приложения. Архитектура 200 может предоставлять инфраструктуру изоляции (ISO), которая служит в качестве основы для особенностей приложения. ISO может быть разделена посредством кода приложения на отдельные подсистемы, которые могут быть повторно использованы, например использованы множество раз различными особенностями приложения и для проверки так, что корректность, безопасность и надежность ISO могут быть проверены непосредственно.
Например, ISO может быть создана так, чтобы предоставлять асинхронную связь. Составная модель объекта (COM), например, является дуплексным механизмом и по этой причине не поддерживает полудуплексные связи. В другом примере ISO может поддерживать различные уровни доверия для средств идентификации, обязательство знания уровня доверия для средств идентификации и предоставлять возможность для обнаружения уровня доверия. В дополнительном примере местоположение средств идентификации может изменяться между в-процессе-в-потоке, в-процессе/другом потоке, другом потоке, другом уровне обязательной целостности/отсеке и т.д. В еще одном примере ISO может давать возможность изменения и расширения исполнения «под» интерфейсами прикладного программирования (API) ISO.
О главной единице архитектуры 200 ISO можно думать как о «компоненте», примеры которого проиллюстрированы на Фиг. 2 как компонент 202 и компонент 204 архитектуры 200. О компоненте можно думать как о единице размещения и обмена сообщениями. На иллюстрации Фиг. 2 компоненты 202, 204 имеют WINDOWS (WINDOWS является торговой маркой Microsoft Corp., Рэдмонд, Вашингтон) циклы 206, 208 обработки сообщения. Компоненты 202, 204 в дальнейшем проиллюстрированы как существующие «на» соответствующих потоках 210, 212 и «в» соответствующих процессах 214, 216 (например, процесс WINDOWS). Несмотря на то что соответствующие потоки 210, 212 проиллюстрированы раздельно, они могут существовать «внутри» соответствующих процессов 214, 216.
Между компонентами 202, 204 может поддерживаться многообразие различных типов связи. Например, компоненты могут обмениваться информацией, используя асинхронное сообщение 218 через цикл обработки сообщения. В другом примере межконтейнерный синхронный COM (Составная Модель Объекта) вызов может быть выполнен в контейнерах COM так, что вызов объекта COM может вводить или откладывать объект. В дополнительном примере совместный буфер 222 может использоваться, например, для потоковых данных. Также предполагаются еще и другие примеры.
Фиг. 3 изображает типичную инфраструктуру 300 изоляции для приложения 302 обозревателя в качестве организованной по уровням. «Нижний» уровень (например, метод абстракции) приложения 302 обозревателя на Фиг. 3 включает в себя низкоуровневую связь 304 (например, обмен сообщениями WINDOWS) и низкоуровневую совместно используемую память 306. Следующий уровень 308 включает в себя физически-основанные программные интерфейсы приложения (API), например потоки, буферы, процессы, уровни обязательной целостности (MIC) и т.д. Следующий уровень выше включает в себя компоненты 310, например удостоверение, безопасность, обмен сообщениями и принадлежность ресурса. Верхний уровень в проиллюстрированном примере включает в себя действия 312, такие как асинхронное последовательное программирование, как и «посредников» и интерфейсы, например «COM-подобное» асинхронное программирование, которое асинхронно имитирует COM технологию.
Фиг. 4 является иллюстрацией типичного варианта осуществления 400 процесса 402 фрейма и процесса 404 вкладки как осуществленных через компоненты Фиг. 2 и 3. Процесс 402 фрейма и процесс 404 вкладки могут соответствовать или могут не соответствовать процессу фрейма и процессу вкладки на Фиг. 1.
Типичный вариант осуществления 400 на Фиг. 4 является иллюстративным для инфраструктуры изоляции, которая разделяет приложение на Фиг. 1 на компоненты и управляет обменом и совместным использованием данных и управлением между этими компонентами. Использование инфраструктуры изоляции способствует свободно взаимодействующему компонентному представлению приложения, как предложено на фигуре.
Процесс 404 вкладки является «границами» контента и может быть выполнен с возможностью изолировать контент один от другого посредством использования множества вкладок. Поэтому несмотря на то что проиллюстрирован единственный процесс 404 вкладки, может быть осуществлено множество процессов вкладки.
Процесс 404 вкладки, например, может быть использован для того, чтобы «содержать в себе» расширение для приложения, такого как приложение 302 обозревателя на Фиг. 3. Примеры контента, который «выполняется» в процессе 404 вкладки, проиллюстрированы как потоки 406, 408 и «iso» (т.е. изоляция) поток 410. Каждый из потоков (например, поток фрейма 406, 408 и 410) проиллюстрированы как компонент, как ранее описано в описании к Фиг. 2, и вследствие этого включают в себя циклы обработки сообщения WINDOWS, потоки и процессы. Процесс 404 вкладки может выполняться «в-процессе» по отношению к фреймам и может выполняться «вне-процесса» по отношению к другим процессам. Несмотря на то что не проиллюстрировано, процесс 404 вкладки также может включать в себя управляющий поток, который «владеет» содержимым процесса 404 вкладки.
Процесс 402 фрейма включает в себя управляющий поток 406, который является образцом функциональности для того чтобы управлять выполнением процесса 404 вкладки. Например, процесс 402 фрейма посредством управляющего потока 412 может принять решение, «где» должен выполняться процесс 404 вкладки, может отслеживать существование и способность к реагированию процесса 404 вкладки и может высылать, заменять или восстанавливать процесс 404 вкладки, когда произошла ошибка. Управляющий поток 406, например, может определять, что процесс 406 вкладки «завис» (например, попал в бесконечный цикл) и по этой причине восстанавливает процесс 404 вкладки так, чтобы отыскать контент, который ранее выполнялся процессом вкладки. Таким образом, пораженный процесс 404 вкладки восстанавливается без повторной инициализации всего приложения, например в этом случае приложения обозревателя. Связь между потоками и процессами может производиться, как ранее описано в описании к Фиг. 2.
Следовательно, в процессе фрейма существует один управляющий поток (например, «полномочный» управляющий поток), который выполняет функции управления, такие как отслеживание времени жизни и т.д. Также существуют один или более потоки фрейма, которые отвечают за визуализацию интерфейса пользователя фрейма (например, кнопки перехода назад, кнопки перехода вперед, адресной строки и т.д.) и отвечающие за ввод пользователем данных во фрейм.
В процессе вкладки существует один управляющий поток (который не является полномочным управляющим потоком, как описано для процесса фрейма), который отвечает за дальнейшее создание компонентов изоляции в процессе вкладки по запросу фрейма. Также существуют один или более потоков вкладки, которые выполняют компоненты вкладки в процессе вкладки и отвечают за визуализацию контента вкладки (например, страницы HTML) и отвечающие за использование ввода для контента.
Дополнительно могут существовать ноль или больше потоков компонента для других компонентов, которые могут выполняться либо в процессе фрейма, либо в процессе вкладки. Они не являются вкладкой, но изолированы в том же процессе для того, чтобы добавить преимущества изоляции, но предотвратить всплеск производительности из-за разгона процесса для каждого из них.
ТИПИЧНАЯ ПРОЦЕДУРА
Следующее обсуждение описывает технологию изоляции, которая может быть осуществлена, используя ранее описанные системы и устройства. Аспекты каждой из процедур могут быть осуществлены в аппаратной части, встроенной программной части или программной части или их комбинации. Процедура показана как набор блоков, которые устанавливают действия, выполняемые одним или более устройствами, и не являются обязательно ограниченными порядком, показанным для выполнения действий соответствующими блоками. В некоторых частях следующего обсуждения может быть сделана ссылка на типичное окружение, описанное в описаниях к Фиг. 1-4.
Фиг. 5 изображает процедуру 500 в типичном варианте осуществлении, в котором выполнение одного или более процессов, которые изолируют контент, управляется другим процессом. Выполнение одного или более процессов, которые содержат в себе контент, принятый через сеть, управляется другим процессом одного приложения, которое включает в себя один или более процессов (блок 502). Например, приложение 124 проиллюстрировано как включающее в себя процесс 126 фрейма и множество процессов 128(1)-128(T) вкладки. Приложение 124, например, может соответствовать приложению 302 обозревателя с процессом 126 фрейма, отвечающим за предоставление основы управляющих элементов (например, кнопок перехода вперед и назад, адресной строки и т.д.), внутри которого принятый через сеть 106 контент 118(c), 112(k) может быть выведен посредством использования процессов 128(1), 128(T) вкладки. Следовательно, окно приложения 302 обозревателя может включать в себя фрейм, предоставленный процессом 126 фрейма, посредством которого контент 112(1)-112(T) выдается посредством процессов 128(1)-128(T) вкладки. Несмотря на то что описан прием контента через сеть, контент может приниматься многообразием других способов, таких как через машиночитаемый носитель.
Ресурсы указаны для того чтобы использоваться для выполнения одного или более процессов (блок 504). Например, процесс 126 фрейма может указывать аппаратные ресурсы (например, конкретно совместно используемая память), программную функциональность (например, дескрипторы, диапазоны дескриптора и/или границы дескриптора) и т.д. для использования процессом 128(1) вкладки для того чтобы изолировать контент 112(1), принятый через сеть 106. Также предполагается многообразие других примеров, таких как указывать уровни доверия для использования для выполнения одного или более процессов (блок 506). Уровни доверия, для примера, могут определяться на основе политики конфиденциальности, источника контента 112(1), сертификатов, включенных в контент 112(1) (например, либо самоподписывающегося, либо от уполномоченного сертификата), и т.д.
Управление также может включать в себя завершение одного или более процессов, когда он не отвечает (блок 508). Процесс 126 фрейма, например, может периодически опрашивать процессы 128(1)-128(T) вкладки. Когда ответ не принят от одного или более процессов 128(1)-128(T) вкладки в течение предопределенного периода времени, соответствующий один или более процессов 128(1)-128(T) вкладки могут быть завершены. Следовательно, даже когда один или более процессов 128(1)-128(T) вкладки отказывают (например, «зависает», «занят» и т.д.), этот отказ не «распространяется» на процесс 126 фрейма (например, и на осуществление других процессов вкладки), так что процесс вкладки остается реагирующим. Соответственно, может быть предпринято многообразие корректирующих действий.
В качестве примера контент может быть восстановлен в одном или более процессах (блок 510). Например, процесс 126 фрейма может определить, «где» (например, URL) был получен контент 112(1) в процессе вкладки, вновь запустить процесс 128(1) вкладки, который был завершен, и вновь получить контент 112(1). Следовательно, в отличие от вызова общего отказа приложения, с чем ранее сталкивались в такой ситуации, контент 112(1) может быть автоматически восстановлен и без вмешательства пользователя.
ЗАКЛЮЧЕНИЕ
Несмотря на то что изобретение было описано на языке, специфичном для структурных признаков и/или методологических действий, должно быть понятно, что изобретение, определенное в прилагаемой формуле изобретения, не обязательно ограничено конкретными признаками или описанными действиями. Наоборот, конкретные признаки и действия раскрыты в качестве типичных форм осуществления заявленного изобретения.
Claims (20)
1. Считываемый компьютером носитель, содержащий команды, которые являются исполняемыми для предоставления приложения, имеющего:
один или более процессов изоляции, которые содержат код расширения, принятый через Интернет, для добавления функциональности приложению; и
процесс управления для управления выполнением этих одного или более процессов изоляции, так что выполнение нежелательного действия со стороны исполняющегося кода расширения в соответствующем процессе изоляции изолируется от и управляется посредством процесса управления, причем этот соответствующий процесс изоляции дополнительно изолируется от другого процесса изоляции, при этом упомянутый соответствующий процесс изоляции включает в себя:
управляющий поток процесса изоляции, сконфигурированный создавать, в ответ на запрос от процесса управления, компоненты для изоляции упомянутого соответствующего процесса изоляции, причем эти компоненты упомянутого соответствующего процесса изоляции сконфигурированы сообщаться друг с другом,
один или более потоков исполнения для исполнения кода расширения, соответствующего упомянутому соответствующему процессу изоляции.
один или более процессов изоляции, которые содержат код расширения, принятый через Интернет, для добавления функциональности приложению; и
процесс управления для управления выполнением этих одного или более процессов изоляции, так что выполнение нежелательного действия со стороны исполняющегося кода расширения в соответствующем процессе изоляции изолируется от и управляется посредством процесса управления, причем этот соответствующий процесс изоляции дополнительно изолируется от другого процесса изоляции, при этом упомянутый соответствующий процесс изоляции включает в себя:
управляющий поток процесса изоляции, сконфигурированный создавать, в ответ на запрос от процесса управления, компоненты для изоляции упомянутого соответствующего процесса изоляции, причем эти компоненты упомянутого соответствующего процесса изоляции сконфигурированы сообщаться друг с другом,
один или более потоков исполнения для исполнения кода расширения, соответствующего упомянутому соответствующему процессу изоляции.
2. Считываемый компьютером носитель по п.1, при этом приложение является приложением обозревателя для перемещения по контенту, доступному через Интернет.
3. Считываемый компьютером носитель по п.2, при этом:
процесс управления выполнен в качестве процесса фрейма, который предоставляет один или более управляющих элементов, которые являются выбираемыми для выполнения перемещения; и
эти один или более элементов управления включают в себя кнопку перехода назад, кнопку перехода вперед и адресную строку.
процесс управления выполнен в качестве процесса фрейма, который предоставляет один или более управляющих элементов, которые являются выбираемыми для выполнения перемещения; и
эти один или более элементов управления включают в себя кнопку перехода назад, кнопку перехода вперед и адресную строку.
4. Считываемый компьютером носитель по п.1, при этом код расширения является подключаемым модулем, сторонним подключаемым модулем или дополнительным модулем.
5. Считываемый компьютером носитель по п.1, при этом управление выполнением одного или более процессов изоляции посредством процесса управления включает в себя восстановление кода расширения и его текущего контекста исполнения в соответствующем процессе изоляции, когда соответствующий процесс изоляции отказал.
6. Считываемый компьютером носитель по п.1, при этом управление выполнением одного или более процессов изоляции посредством процесса управления включает в себя определение того, реагирует ли исполнение кода расширения в соответствующем процессе изоляции.
7. Считываемый компьютером носитель по п.6, при этом управление выполнением одного или более процессов изоляции посредством процесса управления включает в себя завершение соответствующего процесса изоляции, когда код расширения в соответствующем процессе изоляции не реагирует.
8. Считываемый компьютером носитель по п.1, при этом для выполнения процесса управления предусмотрены удостоверение и уровень доверия, которые отличаются от упомянутых одного или более процессов изоляции, так что процесс управления обеспечивается доступом к ресурсам, которые не предоставляются этим одному или более процессам изоляции.
9. Считываемый компьютером носитель по п.1, при этом связь между процессом управления и упомянутыми одним или более процессами изоляции включает в себя использование одного или более асинхронных сообщений.
10. Считываемый компьютером носитель по п.1, при этом:
упомянутые один или более процессов изоляции включают в себя первый процесс изоляции и второй процесс изоляции; и
связь между первым и вторым процессами изоляции включает в себя одно или более асинхронных сообщений.
упомянутые один или более процессов изоляции включают в себя первый процесс изоляции и второй процесс изоляции; и
связь между первым и вторым процессами изоляции включает в себя одно или более асинхронных сообщений.
11. Считываемый компьютером носитель, на котором сохранены команды, которые, при их исполнении клиентской системой, предписывают клиентской системе предоставлять приложение обозревателя, имеющее:
один или более процессов вкладки в приложении обозревателя, которые ассоциированы с соответствующими вкладками в пользовательском интерфейсе и которые содержат принятый через сеть контент, так что каждый процесс вкладки изолирует соответствующий контент один от другого и от других частей клиентской системы, основываясь на оценке надежности контента; и
процесс фрейма в приложении обозревателя для управления выполнением этих одного или более процессов вкладки, при этом по меньшей мере одному процессу вкладки назначается уровень доверия, который ниже, чем у процесса фрейма, так что процесс фрейма имеет доступ к одному или более ресурсам, которые не доступны контенту, содержащемуся в этом по меньшей мере одном процессе вкладки, при этом каждый процесс вкладки включает в себя:
управляющий поток процесса вкладки, сконфигурированный создавать, в ответ на запрос от процесса фрейма, компоненты для изоляции данного процесса вкладки, причем эти компоненты процесса вкладки сконфигурированы так, что один компонент сообщается с другим компонентом с использованием, по меньшей мере, асинхронного обмена сообщениям, и
один или более потоков визуализации для визуализации соответствующего контента данного процесса вкладки.
один или более процессов вкладки в приложении обозревателя, которые ассоциированы с соответствующими вкладками в пользовательском интерфейсе и которые содержат принятый через сеть контент, так что каждый процесс вкладки изолирует соответствующий контент один от другого и от других частей клиентской системы, основываясь на оценке надежности контента; и
процесс фрейма в приложении обозревателя для управления выполнением этих одного или более процессов вкладки, при этом по меньшей мере одному процессу вкладки назначается уровень доверия, который ниже, чем у процесса фрейма, так что процесс фрейма имеет доступ к одному или более ресурсам, которые не доступны контенту, содержащемуся в этом по меньшей мере одном процессе вкладки, при этом каждый процесс вкладки включает в себя:
управляющий поток процесса вкладки, сконфигурированный создавать, в ответ на запрос от процесса фрейма, компоненты для изоляции данного процесса вкладки, причем эти компоненты процесса вкладки сконфигурированы так, что один компонент сообщается с другим компонентом с использованием, по меньшей мере, асинхронного обмена сообщениям, и
один или более потоков визуализации для визуализации соответствующего контента данного процесса вкладки.
12. Считываемый компьютером носитель по п.11, при этом оценка доверия основана, по меньшей мере частично, на намерении или надежности контента.
13. Считываемый компьютером носитель по п.11, при этом другому процессу вкладки назначается уровень доверия, который отличается от упомянутого по меньшей мере одного процесса вкладки, так что контент этого другого процесса вкладки имеет доступ к упомянутым одному или более ресурсам, которые не доступны контенту, содержащемуся в упомянутом по меньшей мере одном процессе вкладки.
14. Считываемый компьютером носитель по п.11, при этом другому процессу вкладки назначается уровень доверия, который отличается от упомянутого по меньшей мере одного процесса вкладки, так что контент обоих упомянутых процессов вкладки не имеет доступа к упомянутым одному или более ресурсам, которые доступны контенту, содержащемуся в по меньшей мере одном другом процессе вкладки.
15. Считываемый компьютером носитель по п.11, при этом контент включает в себя код расширения от стороннего производителя, который является исполняемым для расширения функциональности приложения обозревателя.
16. Считываемый компьютером носитель по п.15, при этом исполнение кода расширения в соответствующем процессе вкладки изолировано от процесса фрейма, так что отказ кода расширения в соответствующем процессе вкладки не вызывает отказ процесса фрейма.
17. Компьютерно-реализуемый способ изоляции контента посредством процессов в приложении, содержащий этапы, на которых:
управляют выполнением одного или более процессов в одном приложении, которые содержат контент, принятый через сеть, посредством другого процесса этого одного приложения, которое включает в себя эти один или более процессов, посредством:
завершения упомянутых одного или более процессов, когда они не реагируют, при этом выполнение этих одного или более процессов изолировано от упомянутого другого процесса, так что, когда упомянутые один или более процессов не реагируют, этот другой процесс остается реагирующим, при этом упомянутые один или более процессов изолируются от упомянутого другого процесса с использованием отдельных средств управления изолированием для каждого из этих одного или более процессов, причем одно средство управления изолированием для одного процесса сконфигурировано создавать компоненты для этого одного процесса, которые сообщаются друг с другом, чтобы изолировать данный один процесс; и
восстановления контента в завершенных одном или более процессах; и
управляют и ограничивают удостоверение и контроль доступа упомянутых одного или более процессов.
управляют выполнением одного или более процессов в одном приложении, которые содержат контент, принятый через сеть, посредством другого процесса этого одного приложения, которое включает в себя эти один или более процессов, посредством:
завершения упомянутых одного или более процессов, когда они не реагируют, при этом выполнение этих одного или более процессов изолировано от упомянутого другого процесса, так что, когда упомянутые один или более процессов не реагируют, этот другой процесс остается реагирующим, при этом упомянутые один или более процессов изолируются от упомянутого другого процесса с использованием отдельных средств управления изолированием для каждого из этих одного или более процессов, причем одно средство управления изолированием для одного процесса сконфигурировано создавать компоненты для этого одного процесса, которые сообщаются друг с другом, чтобы изолировать данный один процесс; и
восстановления контента в завершенных одном или более процессах; и
управляют и ограничивают удостоверение и контроль доступа упомянутых одного или более процессов.
18. Способ по п.17, в котором изоляция выполнения упомянутых одного или более процессов от упомянутого другого процесса осуществляется посредством выполнения в разных процессах.
19. Способ по п.17, в котором изоляция выполнения упомянутых одного или более процессов от упомянутого другого процесса выполняется посредством использования одного или более асинхронных сообщений, так что отказ упомянутых одного или более процессов отвечать на эти одно или более асинхронных сообщений упомянутого другого процесса не вызывает отказ этого другого процесса.
20. Способ по п.17, в котором контент включает в себя код расширения.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/014,744 US20090183155A1 (en) | 2008-01-15 | 2008-01-15 | Isolation of Content by Processes in an Application |
US12/014,744 | 2008-01-15 | ||
PCT/US2009/030184 WO2009091628A1 (en) | 2008-01-15 | 2009-01-06 | Isolation of content by processes in an application |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2010129244A RU2010129244A (ru) | 2012-01-20 |
RU2501075C2 true RU2501075C2 (ru) | 2013-12-10 |
Family
ID=40851817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2010129244/08A RU2501075C2 (ru) | 2008-01-15 | 2009-01-06 | Изоляция контента посредством процессов в приложении |
Country Status (13)
Country | Link |
---|---|
US (1) | US20090183155A1 (ru) |
EP (1) | EP2235643A4 (ru) |
JP (1) | JP5438688B2 (ru) |
KR (1) | KR20100110823A (ru) |
CN (1) | CN101911056A (ru) |
AU (1) | AU2009205600A1 (ru) |
BR (1) | BRPI0906438A2 (ru) |
CA (1) | CA2707970A1 (ru) |
MX (1) | MX2010007394A (ru) |
MY (1) | MY155188A (ru) |
RU (1) | RU2501075C2 (ru) |
SG (1) | SG187462A1 (ru) |
WO (1) | WO2009091628A1 (ru) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2649796C1 (ru) * | 2017-03-24 | 2018-04-04 | Акционерное общество "Лаборатория Касперского" | Способ выявления категории данных с использованием API, применяемого при создании приложений для пользователей с ограниченными возможностями |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8667505B2 (en) * | 2010-09-14 | 2014-03-04 | Microsoft Corporation | Message queue management |
CN102843394B (zh) * | 2011-06-22 | 2015-12-09 | 腾讯科技(深圳)有限公司 | 网络应用的框架装置及运行方法 |
US9928083B2 (en) | 2011-07-08 | 2018-03-27 | Microsoft Technology Licensing, Llc | Tab trimming |
US9384101B2 (en) * | 2011-07-26 | 2016-07-05 | Apple Inc. | Web application architecture |
CN103425225B (zh) * | 2012-05-16 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 便携数据设备操作系统中的应用程序装置及其运行方法 |
US9069766B2 (en) | 2012-11-02 | 2015-06-30 | Microsoft Technology Licensing, Llc | Content-based isolation for computing device security |
US9367211B1 (en) * | 2012-11-08 | 2016-06-14 | Amazon Technologies, Inc. | Interface tab generation |
US9652130B1 (en) * | 2014-04-23 | 2017-05-16 | Google Inc. | Auto-sizing an untrusted view |
US9747165B1 (en) * | 2014-04-23 | 2017-08-29 | Google Inc. | Self-recovering application |
CN106484507B (zh) * | 2016-09-18 | 2019-11-29 | 天脉聚源(北京)传媒科技有限公司 | 一种应用线程的处理方法及装置 |
US20190347315A1 (en) * | 2018-05-08 | 2019-11-14 | International Business Machines Corporation | Methods and systems for rendering web pages with restricted features |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2004131028A (ru) * | 2003-10-23 | 2006-04-10 | Майкрософт Корпорейшн (Us) | Безопасная идентификация исполняемого файла для определяющего доверие логического объекта |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724559A (en) * | 1993-10-28 | 1998-03-03 | International Business Machines Corporation | Method for displaying ISPF panels in a VM non-ISPF environment |
US6442620B1 (en) * | 1998-08-17 | 2002-08-27 | Microsoft Corporation | Environment extensibility and automatic services for component applications using contexts, policies and activators |
DE19856975A1 (de) * | 1998-12-10 | 2000-06-21 | Alcatel Sa | Verfahren, System, Rechner und Vermittlungsstelle zum Betreiben eines Rechners |
US6332210B1 (en) * | 1998-12-22 | 2001-12-18 | Litton Systems, Inc. | Method of creating and using system-independent software components |
US7523466B2 (en) * | 1999-02-11 | 2009-04-21 | Amdocs Software Systems Ltd. | Method and apparatus for customizing a marketing campaign system using client and server plug-in components |
US6654903B1 (en) * | 2000-05-20 | 2003-11-25 | Equipe Communications Corporation | Vertical fault isolation in a computer system |
US6988135B2 (en) * | 2001-02-15 | 2006-01-17 | International Business Machines Corporation | Method and system for specifying a cache policy for caching web pages which include dynamic content |
US7315892B2 (en) * | 2001-06-27 | 2008-01-01 | International Business Machines Corporation | In-kernel content-aware service differentiation |
US6898733B2 (en) * | 2001-10-31 | 2005-05-24 | Hewlett-Packard Development Company, L.P. | Process activity and error monitoring system and method |
US20030187991A1 (en) * | 2002-03-08 | 2003-10-02 | Agile Software Corporation | System and method for facilitating communication between network browsers and process instances |
US7802234B2 (en) * | 2003-01-02 | 2010-09-21 | Oracle International Corporation | Integration of context-sensitive runtime metrics into integrated development environments |
US7174545B2 (en) * | 2003-04-08 | 2007-02-06 | The Boeing Company | Apparatus and method for producing display application software for embedded systems |
US7237223B2 (en) * | 2003-04-11 | 2007-06-26 | The Boeing Company | Apparatus and method for real-time caution and warning and system health management |
WO2005043360A1 (en) * | 2003-10-21 | 2005-05-12 | Green Border Technologies | Systems and methods for secure client applications |
US20050137836A1 (en) * | 2003-12-23 | 2005-06-23 | Clark Noel E. | Computer system architecture transformation |
US7774751B2 (en) * | 2003-12-26 | 2010-08-10 | Yefim Zhuk | Knowledge-driven architecture |
US7890954B2 (en) * | 2004-12-22 | 2011-02-15 | Argela Technologies | Method and system for communicating between application software |
US7596760B2 (en) * | 2005-04-07 | 2009-09-29 | Microsoft Corporation | System and method for selecting a tab within a tabbed browser |
US20060245096A1 (en) * | 2005-04-29 | 2006-11-02 | Microsoft Corporation | Application framework phasing model |
US8849968B2 (en) * | 2005-06-20 | 2014-09-30 | Microsoft Corporation | Secure and stable hosting of third-party extensions to web services |
CN101233494B (zh) * | 2005-07-29 | 2012-03-21 | 株式会社爱可信 | 插件模块、浏览器、邮箱运行方法及终端装置 |
US7698685B2 (en) * | 2005-10-12 | 2010-04-13 | Microsoft Corporation | Discovery, qualification, and activation of software add-in components |
US20070094495A1 (en) * | 2005-10-26 | 2007-04-26 | Microsoft Corporation | Statically Verifiable Inter-Process-Communicative Isolated Processes |
US7676811B2 (en) * | 2006-03-23 | 2010-03-09 | Microsoft Corporation | Ensuring thread affinity for interprocess communication in a managed code environment |
US7580946B2 (en) * | 2006-08-11 | 2009-08-25 | Bizweel Ltd. | Smart integration engine and metadata-oriented architecture for automatic EII and business integration |
-
2008
- 2008-01-15 US US12/014,744 patent/US20090183155A1/en not_active Abandoned
-
2009
- 2009-01-06 CN CN2009801025554A patent/CN101911056A/zh active Pending
- 2009-01-06 EP EP09703025.8A patent/EP2235643A4/en not_active Withdrawn
- 2009-01-06 CA CA2707970A patent/CA2707970A1/en not_active Abandoned
- 2009-01-06 BR BRPI0906438-9A patent/BRPI0906438A2/pt not_active Application Discontinuation
- 2009-01-06 KR KR1020107015541A patent/KR20100110823A/ko not_active Application Discontinuation
- 2009-01-06 SG SG2013002506A patent/SG187462A1/en unknown
- 2009-01-06 AU AU2009205600A patent/AU2009205600A1/en not_active Abandoned
- 2009-01-06 WO PCT/US2009/030184 patent/WO2009091628A1/en active Application Filing
- 2009-01-06 MY MYPI2010002675A patent/MY155188A/en unknown
- 2009-01-06 RU RU2010129244/08A patent/RU2501075C2/ru not_active IP Right Cessation
- 2009-01-06 MX MX2010007394A patent/MX2010007394A/es not_active Application Discontinuation
- 2009-01-06 JP JP2010542306A patent/JP5438688B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2004131028A (ru) * | 2003-10-23 | 2006-04-10 | Майкрософт Корпорейшн (Us) | Безопасная идентификация исполняемого файла для определяющего доверие логического объекта |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2649796C1 (ru) * | 2017-03-24 | 2018-04-04 | Акционерное общество "Лаборатория Касперского" | Способ выявления категории данных с использованием API, применяемого при создании приложений для пользователей с ограниченными возможностями |
Also Published As
Publication number | Publication date |
---|---|
AU2009205600A1 (en) | 2009-07-23 |
CN101911056A (zh) | 2010-12-08 |
EP2235643A4 (en) | 2016-04-20 |
BRPI0906438A2 (pt) | 2015-07-14 |
CA2707970A1 (en) | 2009-07-23 |
KR20100110823A (ko) | 2010-10-13 |
JP2011510380A (ja) | 2011-03-31 |
MY155188A (en) | 2015-09-15 |
WO2009091628A1 (en) | 2009-07-23 |
JP5438688B2 (ja) | 2014-03-12 |
RU2010129244A (ru) | 2012-01-20 |
SG187462A1 (en) | 2013-02-28 |
EP2235643A1 (en) | 2010-10-06 |
MX2010007394A (es) | 2010-10-15 |
US20090183155A1 (en) | 2009-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2501075C2 (ru) | Изоляция контента посредством процессов в приложении | |
US10162661B2 (en) | Interdependent virtual machine management | |
US10503371B2 (en) | Virtual tabs supporting web content suspension | |
US8356305B2 (en) | Thread boundaries comprising functionalities for an event by a single thread and tasks associated with the thread boundaries configured in a defined relationship | |
US10579442B2 (en) | Inversion-of-control component service models for virtual environments | |
KR20190085108A (ko) | 국소화된 디바이스 조정기에서의 요구 시 코드 실행 | |
WO2009147802A1 (ja) | 優先度制御装置及び優先度制御方法 | |
KR102286989B1 (ko) | 원격 세션에 대한 사용자 특정 애플리케이션 활성화 기법 | |
US11089081B1 (en) | Inter-process rendering pipeline for shared process remote web content rendering | |
CN118012572A (zh) | 用于自动配置用于容器应用的最小云服务访问权限的技术 | |
US7496761B2 (en) | Method and system for batch task creation and execution | |
JP2015517159A (ja) | コンピュータ・システムのハードウエア資源の使用を制御する方法と、システムとピース・オブ・コード方法 | |
CN112714166B (zh) | 分布式存储系统的多集群管理方法及装置 | |
US10733005B1 (en) | Providing access to mobile applications by heterogeneous devices | |
US20210349711A1 (en) | Method and apparatus for implementing a ui modernization application module | |
KR102185692B1 (ko) | 단말 장치, 서버, 단말 장치의 브라우저 구동 시스템, 단말 장치의 브라우저 구동 방법 | |
US20150242256A1 (en) | Techniques to facilitate communication across domains | |
CN111414625A (zh) | 支持主动可信能力的计算机可信软件栈实现方法及系统 | |
US11782736B2 (en) | System and method for implementing an attended automation module | |
US10915343B2 (en) | Server computer execution of client executable code | |
CN115328665A (zh) | 基于Hypervisor的GPU虚拟化方法、装置及电子设备 | |
JP2009252136A (ja) | 情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC41 | Official registration of the transfer of exclusive right |
Effective date: 20150526 |
|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20180107 |