Способ передачи данных между процессами

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

 

Область техники, к которой относится изобретение

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

Уровень техники

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

Эта задача в настоящее время решается различными путями. Так, в патенте США №5437031 (опубл. 25.07.1995) раскрыт способ управления межпроцессным обменом, в котором клиентские и управляющий процессы могут обращаться к общей памяти для обмена через секцию исключительного управления, отсылая при этом извещения через секцию извещения о событиях. Недостатком этого способа является необходимость в отдельных секциях исключительного управления и извещения о событиях, обращение к которым разных процессов может тормозить обмен данными между исполняемыми процессами.

В патенте США №5787300 (опубл. 28.07.1998) описан межпроцессный обмен, в котором в качестве универсального кэша используется конвейер в общей памяти, одновременно доступный для многих сеансов, т.к. он содержит несколько конвейеров, каждый из которых содержит связанный список записей и связанный список сеансов, однако наличие нескольких конвейеров усложняет данный способ.

Патент США №7124255 (опубл. 17.10.2006) и патент США №7152231 (опубл. 19.12.2006) описывают способы обмена данными, в которых процессы, передающие данные, присоединяются к специальному запоминающему средству, наличие которого усложняет эти способы. Сходный способ описан в заявке Китая №102122256 (опубл. 13.07.2011), где данные кэшируются в запоминающем пространстве большой емкости во внешней памяти, наличие которой также усложняет выполнение этого способа.

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

Очень сложный порядок передачи данных описан в заявке Китая №101127685 (опубл. 20.02.2005), когда между передающим и получающим процессами производится множественный обмен извещениями и адресами.

Способ по патенту США №7219198 (опубл. 15.05.2007) позволяет облегчить обмен данными за счет того, что для каждого процесса формируются очереди, доступные для записи одновременно всеми процессами на одном конце и доступные для неодновременного считывания на другом конце. Однако такой способ не обеспечивает достаточной защиты данных одного процесса от влияния другого процесса.

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

Раскрытие изобретения

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

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

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

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

Краткое описание чертежей

Изобретение поясняется приложенными чертежами, которые являются чисто иллюстративными и не ограничивают объем данного изобретения.

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

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

Подробное описание вариантов осуществления

Прежде всего, приведем некоторые общие соображения.

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

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

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

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

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

Следует отметить, что процессор («processor») вычислительного средства может одновременно выполнять несколько процессов, как правило, в режиме разделения времени. При этом эти процессы могут быть как несвязанными, так и взаимосвязанными, к примеру, в случае распараллеливания конкретной задачи. В последнем случае разные процессы могут потребовать обмена данными. Такой обмен данными должен происходить так, чтобы процесс, которому передаются данные, не мог влиять на данные того процесса, который осуществляет передачу. Или если, скажем, данные одного процесса будут по какой-либо причине испорчены, остальные процессы должны остаться работоспособными.

Для реализации способа по настоящему изобретению (см. блок-схему алгоритма по Фиг. 2) в памяти вычислительного средства заранее выделяют непрерывную область ввода-вывода и разделяют эту область ввода-вывода на сегменты. Каждый из этих сегментов относится к единственному из исполняемых процессов и к каждому сегменту имеет доступ на запись только тот процесс, к которому данный сегмент относится. Доступ же на чтение к любому сегменту имеют все исполняемые процессы. Затем в области ввода-вывода формируют каналы для передачи данных между парами соответствующих процессов, именуемых далее в каждом канале процессом-отправителем и процессом-получателем. На Фиг. 1 для простоты показан один такой канал. Однако специалист поймет, что аналогичные каналы будут сформированы для любой пары взаимодействующих процессов, в том числе для той же пары процессов, показанных на Фиг. 1, в том случае, когда эти процессы поменяются ролями, т.е. показанный справа процесс станет процессом-отправителем, а показанный слева - процессом-получателем.

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

В принципе, обе указанных очереди могут быть сформированы любым известным специалистам образом. Например, это могут быть регистры типа FIFO (First-In-First-Out), как это описано в патенте США №8745291 (опубл. 03.06.2014). Однако предпочтительно, чтобы каждая из этих очередей была сформирована в виде кольцевого буфера. Использование именно кольцевых буферов в межпроцессном обмене известно, например, из выложенной заявки Япония №2009-223788 (опубл. 01.10.2009). В данном случае эти кольцевые буфера формируются следующим образом.

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

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

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

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

Примером применения рассмотренного способа может служить следующее.

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

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

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

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

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

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

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



 

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

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

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

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

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

Изобретение относится к средствам обработки информации. .

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

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

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

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

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

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

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

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

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

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

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

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

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

Наверх