Введение:
Далеко не все приложения, выполняющиеся в любой операционной системе являются самодостаточными. Очень многим, если не большей части приложений, требуется информация от других приложений, либо они должны эту информацию сообщать. Именно поэтому в операционную систему встраивается множество механизмов, которые обеспечивают так называемое межпроцессное взаимодействие (Interproccess Communication, IPC).
Средств, обеспечивающих взаимодействие между процессами, создано достаточно много. Большое их количество реализовано в операционных системах семейства Windows.
ОС Windows обеспечивает программистов механизмами, облегчающими взаимодействие приложений и совместный доступ к данным.
Основная часть:
Приложения, использующие IPC, принято разделять на клиентские и серверные. Клиент - приложение или процесс, запрашивающее сервис у другого приложения или процесса, а сервер - приложение или процесс, предоставляющее такой сервис. Многие приложения, в зависимости от ситуации, являются и клиентами и серверами. Например, текстовый процессор может выступать в роли клиента при получении некоторых данных от приложения, поддерживающего электронные таблицы, которое в свою очередь, выступает в роли клиента по отношению к приложению, предоставляющему данные для электронной таблицы.
Тот факт, что механизмы IPC работают на уровне операционной системы, положительно сказывается на скорости и надежности программ и программных комплексов, построенных с их использованием. Эффективность приложений соответственно возрастает.
Точнее было бы называть механизмы IPC механизмами межпотокового взаимодействия. В операционной системе выполняются именно потоки, они же и обмениваются данными. Однако, смысл для отдельных механизмов взаимодействия появляется только в том случае, если эти потоки принадлежат разным процессам. Ведь потоки, выполняющиеся в рамках одного процесса, вовсе не нуждаются в дополнительных средствах для общения между собой. Так как они разделяют одно адресное пространство, обмен данными могут обеспечить обычные переменные. Таким образом, IPC становится необходим в том случае, если поток одного процесса должен передать данные потоку другого процесса.
Заключение:
Операционные системы Windows обеспечивает программистов механизмами, облегчающими взаимодействие приложений и совместный доступ к данным. Механизмы IPC позволяют нескольким специализированным процессам совместно выполнять обработку данных, а другие - распределенную обработку данных в сети.
Разработчик прикладной программы может выбрать метод IPC, соответствующий потребностям приложения. Вполне возможно, что будет использоваться не один механизм IPC. Определить, что именно Вам нужно использовать, помогут ответы на следующие вопросы:
- должно ли приложение взаимодействовать с приложениями, расположенными на одном компьютере или в сети;
- должно ли приложение взаимодействовать с приложениями, выполняемыми под управлением разных ОС;
- должен ли пользователь приложения сам выбирать другие приложения или этот выбор (или поиск) должно сделать само приложение;
- должно ли приложение взаимодействовать с другими стандартным способом, или же это взаимодействие ограничено специфическими свойствами других приложений;