способы обмена данными между приложениями
Интеграция на основе сообщений. Преимущества и отличия от других подходов
Каждое предприятие в течение своей жизнедеятельности накапливает различные программные решения для реализации своих бизнес-процессов. В результате возникает задача обеспечения взаимодействия между этими программными продуктами для реализации сквозных бизнес-процессов, которые опираются на данные и функциональные возможности, находящиеся за рамками одного программного продукта.
Основные способы интеграции приложений:
• Обмен файлами
• Обмен через общую базу данных
• Удаленный вызов функций
• Сервисная шина предприятия (MQ, ESB)
Обмен файлами
Этот способ обмена основан на файловом механизме, который является базисом всех современных операционных систем. Главным достоинством обмена файлами является то, что система-источник ничего не должна знать о системах-потребителях. Мы просто формируем файл с данными и выкладываем его в хранилище (например, файловый каталог), где остальные участники интеграционного процесса могут получить из него информацию. Существует довольно много программных решений, которые до сих пор используют этот подход к интеграции, как основной.
К плюсам интеграции через обмен файлами следует отнести:
• Отсутствие строгих связей между интегрируемыми приложениями
• Отсутствие необходимости в установке дополнительного программного обеспечения
• Общая простота реализации, отсутствие высоких требований к квалификации разработчика
Однако у этой схемы есть и несколько важных ограничений, которые надо учитывать при разработке интеграционной модели:
• Большинство приложений действуют довольно «эгоистично» и оперируют таким файлом, как его единственные потребители. В результате, довольно часто возникают ситуации, когда системы конкурируют между собой за доступ к файлу. Особенно ярко это проявляется в тех случаях, когда подтверждением о доставке данных является перемещение файла в специальный каталог или его удаление.
• Для ухода от первой проблемы довольно часто применяется подход, когда для каждого потребителя формируется отдельный файл. Но в этом случае мы получаем сразу несколько новых проблем: увеличение объема данных, формируемых системой-источником, увеличение исходящего трафика и увеличение временных задержек на размещение файлов в общих папках. Есть и еще одна проблема при таком подходе: чтобы правильно сформировать файлы, система-источник должна четко себе представлять, кто будет потребителем этих данных по каждому типу данных.
• Многие системы не имеют встроенных средств взаимодействия с файловой системой. Они не предоставляют возможности подписаться на события записи или изменения файла, отследить событие завершения записи в файл и т.д. В таких системах приходится реализовывать циклы периодического опроса файловых ресурсов, что накладывает дополнительную нетипичную нагрузку на систему – часть своих ресурсов она вынуждена тратить не на обслуживание собственных бизнес-процессов, а на реализацию интеграционного взаимодействия. Иногда для обеспечения более надежного обмена файлами приходится явно выделять отдельные регламентные периоды для выгрузки и для загрузки данных. Это приводит к временной рассинхронизации интегрируемых систем.
• Обмен выполняется по принципу «точка-точка». Достаточно сложно централизованно проследить маршруты и историю прохождения данных. Затруднено централизованное управление интеграционной моделью.
Обмен через общую базу данных
Обмен данными через общую базу данных является развитием метода передачи данных через файл с целью преодоления его недостатков. В этом подходе выделяется единая интеграционная база данных, к которой имеют возможность подключиться все участники интеграционного процесса. Система-источник размещает свои данные в этой базе данных, а системы-потребители считывают только те данные, которые им нужны.
К основным плюсам можно отнести:
• Встроенные механизмы СУБД для разграничения доступа к конкурентным данным. Данные не могут быть прочитаны или изменены до завершения процедуры записи.
• Единые механизмы записи и считывания данных. Все приложения оперируют стандартными механизмами СУБД по работе с данными. Это позволяет организовать единые подходы к разработке и внесению изменений.
• Единый формат данных для всех участников интеграционного процесса. Устраняется проблема семантического диссонанса. Все приложения выполняют приведение данных к единым типам, любое приложение владеет всей полнотой знаний о текущих типах данных и их структуре.
• Более высокая скорость доставки данных относительно файлового обмена. В этой схеме не требуется выделять регламентные периоды доступа к данным – они могут быть прочитаны сразу после их фиксации в БД.
• Встроенные механизмы СУБД для протоколирования доступа к данным позволяют проводить расследования о причинах того или иного отклонения при доставке.
К недостаткам схемы относим:
• Единая БД является точкой отказа для всего интеграционного контура. Выход из строя единой БД приводит к невозможности функционирования интеграционной схемы в целом. Приложения должны обеспечивать собственные механизмы накопления неотправленной информации и механизмы контроля состояния доступа к интеграционной БД.
• При высокой интенсивности обмена сама интеграционная БД может стать узким местом. Появляется конкурентность доступа к данным, возможны возникновения блокировок на изменения данных.
• Довольно высокая степень связанности приложений. Внесение изменения в схему обмена потребует согласованного изменения в соответствующих системах.
• Работа с единым форматом приводит к более высоким требованиям при проектировании схемы интеграционной БД, так как хранимые данные должны удовлетворять всех участников интеграционного процесса. Данные должны храниться в форматах и структурах, которые могут быть однозначно прочитаны всеми участниками интеграционных процессов.
• Все участники интеграционного ландшафта должны иметь возможность подключения к интеграционной БД. При этом надо понимать, что не все участники интеграционных процессов поддерживают работу с современными СУБД. Это является ограничивающим фактором при выборе СУБД и может приводить к повышению накладных расходов на передачу. Более того, не редки случаи, когда приложение вовсе не имеет механизмов записи и чтения из сторонних СУБД.
• При работе в распределенных сетях появляется избыточный трафик. Если половина систем-потребителей размещена в сегментах, отличных от размещения интеграционной БД, но система-источник находится в одном сегменте с системами-потребителями, то данные из такого сегмента все равно должны быть размещены в интеграционной БД и только потом прочитаны системами-потребителями. Получаем избыточную транспортировку данных между сегментами.
• Существует некоторая рассогласованность между отправляемыми и принимаемыми данными, так как система-источник никак не влияет на дискретность получения данных системами-потребителями. В таких условиях бывает довольно трудно проследить полноту и согласованность данных, полученных системами-получателями. Высока вероятность случаев, когда полученные данные не могут быть обработаны по причине задержки в доставке связанных данных, и отсутствует понимание, когда их можно будет обработать (по факту получения недостающих данных). Требуется организация механизмов постобработки и накопления данных.
Удаленный вызов функций
Вышеописанные подходы (обмен файлами и обмен через общую БД) направлены на обеспечение взаимодействия между приложениями в части данных, но не в части функций. Для обеспечения взаимодействия на уровне функций используют различные технологии и механизмы вызова удаленных функций.
Для реализации такого подхода могут использоваться следующие технологии, предоставляющие механизмы удаленного вызова процедур:
• COM
• CORBA
• SOAP
• Java RMI и т.д.
В этом случае приложение должно самостоятельно реализовывать механизмы предоставления удаленного доступа к данным.
К основным плюсам подхода следует отнести:
• Отсутствие необходимости организовывать промежуточное хранилище данных. Системы-потребители самостоятельно запрашивают данные по мере возникновения такой потребности.
• Согласованность данных. Система-источник выполняет предварительную подготовку данных, включая всю функциональность по обеспечению целостности данных.
• Скорость получения данных. Отсутствуют задержки, связанные с необходимостью выполнения записи и получения данных из хранилищ-посредников.
• Возможность организовывать схемы «вытягивания» и «выталкивания» данных. В первом случае система-источник предоставляет необходимую функциональность по получению данных, а системы-подписчики осуществляют ее вызов по мере возникновения необходимости в получении данных. Во втором случае системы-источники предоставляют функционал для загрузки данных; передачу осуществляет система-источник при возникновении соответствующего события.
К недостаткам подхода следует отнести:
• Высокую связанность приложений. Работоспособность системы-потребителя начинает полностью зависеть от доступности и работоспособности системы-источника. В системах необходимо реализовывать буферы данных, которые сохраняют интеграционные данные на период отсутствия связи с остальными участниками интеграционного процесса.
• При масштабировании интеграционного ландшафта требуется доработка систем-источников и систем-потребителей.
• Если в интеграционный ландшафт входят системы, реализующие различные технологии предоставления удаленных процедур, например, часть приложений реализуют CORBA, а часть SOAP, то либо все приложения должны уметь реализовывать все подходы, либо появляется слой проксирующих приложений, сводящих обмен к одной технологии.
• Из-за разности технологий системы могут оперировать различными структурами и типами данных. Появляются дополнительные расходы на преобразование данных.
• При высокой интенсивности обмена приложение начинает тратить все больше ресурсов не на обслуживание своих бизнес-процессов, а на обслуживание интеграционного слоя.
Сервисная шина предприятия
Для комплексного решения проблемы передачи данных с получением доступа к функциональности приложений используется подход передачи сообщений посредством специализированных продуктов. Условно эти продукты можно разделить на два типа: сервисы очередей сообщений (Message Queue Services, MQS) и сервисные шины предприятия (Enterprise Service Bus, ESB). Общий подход к построению интеграции таков: система подключается к интеграционной шине посредством специализированных коннекторов. Главная задача коннектора – обеспечение канала приема данных в систему и передачи данных из нее. Задача системы-источника — передать данные в коннектор, а маршрутизация, трансформация и доставка сообщений в системы-потребители осуществляются уже без ее участия.
Коннекторы располагаются максимально «близко» к системам и гарантируют возможность передачи данных даже при отсутствии сетевого соединения, тем самым разгружая системы, участвующие в интеграции, от накладных расходов по обеспечению сохранности и передаче данных.
Основными плюсами системы являются:
• Слабые связи между системами, участвующими в интеграции. Более того, в правильно построенной интеграционной модели система вообще ничего не знает о других участниках интеграционного ландшафта. Вся работа сводится к передаче сообщений в сервисную шину и прием сообщений от шины. Этим достигается самый высокий уровень гибкости и масштабируемости относительно всех ранее рассмотренных систем.
• Возможности для трансформации данных. Позволяют интегрировать приложения, рассчитанные на различные форматы данных, без необходимости их доработок. Это помогает снизить затраты на обработку данных системами (данные отправляются один раз в формате системы-источника и принимаются системами-потребителями в своих «родных» форматах), а также задействовать в интеграции системы, доработка которых невозможна или крайне нежелательна по тем или иным причинам. Причем затраты на трансформацию данных не ложатся на интегрируемые системы.
• Маршрутизация данных. Один из важнейших механизмов сервисной шины, позволяющий резко снизить зависимость и связанность участников интеграционных процессов. При наличии механизма маршрутизации система-источник может просто однократно передать сообщение в шину. Ей не требуются знания о том, кто должен получить это сообщение, готов ли он к приему сообщения и т.д. Сообщение будет доставлено всем потребителям в соответствии с текущим маршрутом.
Соответственно, при масштабировании схемы нам также не требуется вносить изменения во все системы. Достаточно внести изменения в маршрут, добавив или удалив потребителя данных. Это также позволяет выполнять доставку сообщений согласно определенным условиям. Причем сами системы не участвуют в определении условий прохождения маршрута, а значит это поведение может быть легко модифицировано без необходимости вносить изменения в системы.
• Гарантированная доставка данных. Этот механизм сервисной шины предприятия существенно упрощает схемы доставки данных на каналах с низкой стабильностью, снимая нагрузку с систем-источников. Им не приходится реализовывать механизмы для проверки наличия канала связи и промежуточные хранилища для сообщений на время отсутствия канала доставки. Также этот механизм позволяет снизить алгоритмическую нагрузку по реализации механизма квитирования доставки. Этот функционал реализован на уровне интеграционных механизмов сервисной шины.
• Обеспечение безопасности при передаче данных. Ни для кого не секрет, что во многих случаях утечка конфиденциальных данных происходит именно при их передаче. Шины обеспечивают шифрование передаваемых данных, а также поддерживают защищенные сетевые соединения.
• Централизованное управление интеграционной схемой является важным компонентом любого интеграционного ландшафта. Такой подход сильно снижает накладные расходы на первичную настройку, масштабирование и поддержание работоспособности схемы в целом. Также это позволяет сконцентрировать необходимые компетенции в одном месте, не распыляя их по интегрируемым системам.
• Диагностика состояния. Важной особенностью использования специализированных сервисных шин являются механизмы диагностики. Использование этих механизмов позволяет выявить проблемы, связанные как с передачей данных, так и с состоянием систем, участвующих в интеграции. Наиболее продвинутые системы предоставляют средства проактивной диагностики. Этот вид диагностики позволяет выявлять потенциальные проблемы на начальных этапах до того, как проблема проявит себя в полную силу, и своевременно осуществлять комплекс упреждающих воздействий.
Основными недостатками модели принято считать:
• Дополнительные затраты на приобретение и поддержку специализированных программных продуктов (MQ, ESB). Зачастую необходимо выделение дополнительных серверных ресурсов.
• Необходимость проведения обучения персонала по этим программным продуктам.
Критерии выбора способа интеграции
Каковы же критерии выбора того или иного способа интеграции? Можно выделить несколько основных критериев, однако стоит учитывать, что вес того или иного критерия определяется текущими условиями и решаемыми задачами:
• Возможность всех приложений интеграционного контура использовать выбранный способ интеграции
Не секрет, что разные приложения могут быть реализованы в разных архитектурных стилях и парадигмах разработки. Есть приложения, обеспечивающие интеграционные механизмы, есть приложения, таких механизмов не имеющие. Есть приложения, реализующие какой-то один интеграционный механизм. Например, если мы выбираем способ интеграции «Обмен файлами», то мы должны быть уверены, что все приложения интеграционного контура способны обмениваться файлами и умеют работать с предоставляемыми каждым приложением форматами.
• Возможность внесения изменений в приложения
Исходя из ранее озвученного критерия, возникает необходимость оценить возможность доработки приложения для обеспечения его вовлеченности в интеграционный контур. Также следует оценить общие трудозатраты на доработку и доступность специалистов на рынке.
• Требования к обеспечению надежности
Следует оценить, каковы требования к обеспечению надежности доставки данных, требуется ли подтверждение доставки, возможна ли повторная доставка ранее отправленных данных, поддерживаются ли используемые механизмы функциональности по обеспечению надежности.
• Уровень связанности приложений
В зависимости от избираемой модели интеграции, приложения вовлекаются в интеграционный контур с различной степенью жесткости связывания. Следует оценить возможность обеспечения заданной жесткости связывания. Например, если мы используем интеграцию приложений посредством вызова удаленных функций, нам следует понимать, готово ли приложение к работе в схеме, когда отсутствие системы-потребителя приводит к невозможности передачи данных.
• Временные задержки доставки данных
Тип выбранной интеграции и подходы к формированию отправляемой информации накладывают ограничения на периодичность и скорость передачи данных. Следует оценить влияние временных задержек при доставке данных на бизнес-процессы предприятия.
• Требования к защите данных
Следует оценить требования по обеспечению защиты данных при интеграции систем. Защита может выполняться путем шифрации данных или путем работы с защищенными каналами передачи.
Выводы
Если применить критерии выбора к ранее рассмотренным шаблонам интеграции, то можно сформулировать следующие выводы:
• Файловый обмен можно использовать в интеграционных моделях с низкой интенсивностью обмена и небольшим количеством систем, входящих в интеграционный контур. При росте количества интегрируемых систем, интенсивности и сложности обмена такой подход лучше не применять.
• Использование обмена через общую базу снимает часть проблем файлового обмена, но все также не рекомендуется к использованию в сложных и интенсивных интеграционных ландшафтах по многим причинам: формируются сильные локальные связи между системами, затруднено частное изменение схемы взаимодействия, требуется доработка приложений для обеспечения работы с данными в интеграционной базе данных, средняя скорость обмена данными. Кроме этого сама интеграционная база данных может стать узким местом всей схемы.
• Удаленный вызов функций подходит при организации обмена в едином технологическом стеке. В большинстве случаев требуется доработка систем для обеспечения работы с новыми данными. Высокая скорость обмена данными при формировании событийной модели. При этом подход характеризуется высокой сложностью обслуживания и масштабирования.
• Обмен сообщениями посредством сервисной шины предприятия имеет наиболее сбалансированный характер, даже при небольшом количестве систем и несложных интеграционных ландшафтах. А высокая скорость обмена и слабая связанность приложений делают такую схему подходящей для интеграции большого количества приложений с последующим масштабированием решения.
Таким образом, с большой уверенностью можно утверждать, что обмен данными посредством механизма сообщений, реализуемого сервисными шинами, будет являться наиболее подходящим для организации обмена данными и заслуживающим пристального внимания любого разработчика, участвующего в создании интеграционных схем. Такой выбор может существенно сэкономить время, затраты и нервы при условии подбора правильной сервисной шины.
Обмен данными между процессами
операционная система Windows предоставляет механизмы для облегчения обмена данными и совместного использования данных между приложениями. В совокупности действия, которые поддерживаются этими механизмами, называются взаимосвязями (IPC). Некоторые формы IPC упрощают разделение труда между несколькими специализированными процессами. Другие формы IPC облегчают разделение труда между компьютерами в сети.
Как правило, приложения могут использовать IPC категории «клиенты» или «серверы». Клиент — это приложение или процесс, запрашивающий службу от какого-либо другого приложения или процесса. Сервер — это приложение или процесс, отвечающий на запрос клиента. Многие приложения действуют как клиент и сервер в зависимости от ситуации. Например, приложение для обработки текстов может выступать в качестве клиента в запросе сводной таблицы производственных затрат из приложения электронной таблицы, выступающего в качестве сервера. Приложение электронной таблицы, в свою очередь, может работать в качестве клиента при запросе последних уровней инвентаризации от приложения управления инвентаризацией.
После принятия решения о том, что приложение будет выгодным из IPC, необходимо решить, какой из доступных методов IPC использовать. Скорее всего, приложение будет использовать несколько механизмов IPC. Ответы на эти вопросы определяют, может ли приложение использовать преимущества одного или нескольких механизмов IPC.
Windows поддерживает следующие механизмы IPC:
Использование буфера обмена для IPC
Буфер обмена выступает в качестве центрального депозита для совместного использования данных между приложениями. Когда пользователь выполняет операцию вырезания или копирования в приложении, приложение помещает выбранные данные в буфер обмена в одном или нескольких стандартных или определенных форматах приложения. Затем любое другое приложение может получить данные из буфера обмена, выбрав из доступных форматов, которые он понимает. Буфер обмена — это очень слабо связанный носитель Exchange, где приложения должны быть согласованы только с форматом данных. Приложения могут находиться на одном компьютере или на разных компьютерах в сети.
Ключевой момент: Все приложения должны поддерживать буфер обмена для тех форматов данных, которые они понимают. Например, текстовый редактор или текстовый процессор должен иметь по крайней мере возможность создавать и принимать данные из буфера обмена в формате чистого текста. Дополнительные сведения см. в разделе буфер обмена.
Использование COM для IPC
Приложения, использующие OLE для управления составными документами, то есть документы, состоящие из данных различных приложений. OLE предоставляет службы, облегчающие приложениям вызов в других приложениях для редактирования данных. Например, текстовый процессор, использующий OLE, может внедрить граф из электронной таблицы. Пользователь может автоматически запустить электронную таблицу с помощью текстового процессора, выбрав внедренную диаграмму для редактирования. OLE берет на себя запуск электронной таблицы и представление графа для редактирования. Когда пользователь закрывает электронную таблицу, диаграмма будет обновлена в исходном документе текстового процессора. Электронная таблица является расширением текстового процессора.
Основой OLE является объектная модель компонента (COM). Программный компонент, использующий COM, может взаимодействовать с множеством других компонентов, даже если они еще не были написаны. Компоненты взаимодействуют как объекты и клиенты. Распределенная модель COM расширяет модели программирования COM таким образом, чтобы она работала по сети.
Ключевой момент: OLE поддерживает составные документы и позволяет приложению включать внедренные или связанные данные, которые при выборе автоматически запускают другое приложение для редактирования данных. Это позволяет расширить приложение с помощью любого другого приложения, использующего OLE. Объекты COM предоставляют доступ к данным объекта через один или несколько наборов связанных функций, известных как интерфейсы. дополнительные сведения см. в разделе COM и ActiveX службы объектов.
Использование копирования данных для IPC
Ключевой момент: копирование данных можно использовать для быстрой отправки сведений в другое приложение с помощью Windows messaging. Дополнительные сведения см. в разделе копирование данных.
Использование DDE для IPC
DDE — это протокол, позволяющий приложениям обмениваться данными в различных форматах. Приложения могут использовать DDE для одноразовых обменов данными или для текущих обменов, в которых приложения обновляются по мере появления новых данных.
Форматы данных, используемые DDE, совпадают с форматами, используемыми в буфере обмена. DDE можно рассматривать как расширение механизма буфера обмена. Буфер обмена почти всегда используется для одноразового ответа на пользовательскую команду, например для выбора команды вставить в меню. DDE также обычно инициируется пользователем с помощью пользовательской команды, но часто остается без вмешательства пользователя. Кроме того, можно определить пользовательские форматы данных DDE для особого целевого IPC между приложениями с более тесно связанными требованиями к обмену данными.
Обмен DDE может происходить между приложениями, запущенными на одном компьютере, или на разных компьютерах в сети.
Ключевой момент: DDE не так эффективнее, как новые технологии. Тем не менее можно по-прежнему использовать DDE, если другие механизмы IPC не подходят или если необходимо взаимодействовать с существующим приложением, которое поддерживает только DDE. дополнительные сведения см. в разделе платформа динамических данных Exchange и платформа динамических данных библиотеки управления Exchange.
Использование сопоставления файлов для IPC
Сопоставление файлов позволяет процессу обрабатывать содержимое файла так, будто он был блоком памяти в адресном пространстве процесса. Процесс может использовать простые операции с указателями для проверки и изменения содержимого файла. Когда двум или более процессам выполняется доступ к одному сопоставлению файлов, каждый процесс получает указатель на память в своем собственном адресном пространстве, который может использоваться для чтения или изменения содержимого файла. Для предотвращения повреждения данных в многозадачной среде процессы должны использовать объект синхронизации, например семафор.
Для предоставления именованной общей памяти между процессами можно использовать особый вариант сопоставления файлов. При указании файла подкачки системы при создании объекта сопоставления файлов объект сопоставления файлов рассматривается как блок общей памяти. Другие процессы могут получить доступ к тому же блоку памяти, открыв тот же объект сопоставления файлов.
Сопоставление файлов является довольно эффективным, а также предоставляет поддерживаемые атрибуты безопасности операционной системы, которые могут помочь предотвратить несанкционированный повреждение данных. Сопоставление файлов может использоваться только между процессами на локальном компьютере. его нельзя использовать по сети.
Ключевой момент: Сопоставление файлов является эффективным способом для двух или более процессов на одном компьютере для совместного использования данных, но необходимо обеспечить синхронизацию между процессами. Дополнительные сведения см. в разделе Сопоставление файлов и Синхронизация.
Использование слота для IPC
Маилслотс обеспечивают односторонний обмен данными. Любой процесс, создающий почтовый слот, — это сервер слота сообщений. Другие процессы, называемые клиентами слота, отправляют сообщения на сервер слота, записывая сообщение в почтовый слот. Входящие сообщения всегда добавляются в почтовый слот. Почтовый слот сохраняет сообщения до тех пор, пока сервер слота не прочитает их. Процесс может быть как сервером слота, так и клиентом слота, поэтому двустороннее взаимодействие возможно с помощью нескольких маилслотс.
Клиент слота сообщений может отправить сообщение в почтовый слот на локальном компьютере, в почтовый слот другого компьютера или на все маилслотс с тем же именем на всех компьютерах в указанном сетевом домене. Сообщения, передаваемые во все маилслотс в домене, не могут быть длиннее 400 байт, а сообщения, отправляемые в один почтовый слот, ограничиваются только максимальным размером сообщения, указанным сервером слота при создании слота.
Ключевой момент: Маилслотс предлагают пользователям простой способ отправки и получения коротких сообщений. Они также предоставляют возможность рассылать сообщения между всеми компьютерами в сетевом домене. Дополнительные сведения см. в разделе маилслотс.
Использование каналов для IPC
Существует два типа каналов для двусторонней связи: анонимные каналы и именованные каналы. Анонимные каналы позволяют связанным процессам передавать данные друг другу. Как правило, анонимный канал используется для перенаправления стандартного ввода или вывода дочернего процесса, чтобы он мог обмениваться данными с родительским процессом. Для обмена данными в обоих направлениях (дуплексная операция) необходимо создать два анонимных канала. Родительский процесс записывает данные в один канал, используя его маркер записи, в то время как дочерний процесс считывает данные из этого канала, используя его маркер чтения. Аналогичным образом дочерний процесс записывает данные в другой канал, а родительский процесс считывает из него. Анонимные каналы не могут использоваться по сети и не могут использоваться между несвязанными процессами.
Именованные каналы используются для обмена данными между процессами, которые не являются связанными процессами и между процессами на разных компьютерах. Как правило, серверный процесс именованного канала создает именованный канал с известным именем или именем, которое должно обмениваться с клиентами. Клиентский процесс именованного канала, который знает имя канала, может открыть его другой конец с учетом ограничений доступа, заданных процессом сервера именованных каналов. После того как сервер и клиент подключены к каналу, они могут обмениваться данными, выполняя операции чтения и записи в канале.
Ключевой момент: Анонимные каналы предоставляют эффективный способ перенаправлять стандартные входные или выходные данные в дочерние процессы на том же компьютере. Именованные каналы предоставляют простой программный интерфейс для передачи данных между двумя процессами независимо от того, находятся ли они на одном компьютере или по сети. Дополнительные сведения см. в разделе каналы.
Использование RPC для IPC
RPC позволяет приложениям вызывать функции удаленно. Таким образом, RPC делает IPC проще, чем вызов функции. RPC работает между процессами на одном компьютере или на разных компьютерах в сети.
RPC, предоставляемый Windows, соответствует требованиям к распределенным вычислительным средам (использование) Open Software Foundation (DCE). Это означает, что приложения, использующие RPC, могут взаимодействовать с приложениями, работающими с другими операционными системами, поддерживающими DCE. RPC автоматически поддерживает преобразование данных для учета различных архитектур оборудования и для упорядочения байтов между разнородными средами.
Клиенты и серверы RPC тесно связаны, но по-прежнему поддерживают высокую производительность. Система активно использует RPC для упрощения связи между клиентом и сервером между различными частями операционной системы.
Ключевой момент: RPC — это интерфейс уровня функции с поддержкой автоматического преобразования данных и взаимодействия с другими операционными системами. С помощью RPC можно создавать высокопроизводительные распределенные приложения с высоким уровнем производительности. Дополнительные сведения см. в разделе компоненты Microsoft RPC.
использование сокетов Windows для IPC
Windows Сокеты — это независимый от протокола интерфейс. В нем используются возможности связи базовых протоколов. в сокетах Windows 2 при необходимости можно использовать обработчик сокетов в качестве файла с стандартными функциями файлового ввода-вывода.
Windows Сокеты основаны на гнездах, которые впервые популярны по Berkeley Software Distribution (BSD). приложение, которое использует сокеты Windows, может взаимодействовать с другой реализацией сокета в других типах систем. Однако не все поставщики транспортных служб поддерживают все доступные варианты.
ключевой момент: Windows сокеты — это независимый от протокола интерфейс, поддерживающий текущие и новые сетевые возможности. дополнительные сведения см. в разделе сокеты Windows 2.