Связь программ и документов сообщение

Обновлено: 30.06.2024

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

Как правило, приложения могут использовать IPC категории "клиенты" или "серверы". Клиент — это приложение или процесс, запрашивающий службу от какого-либо другого приложения или процесса. Сервер — это приложение или процесс, отвечающий на запрос клиента. Многие приложения действуют как клиент и сервер в зависимости от ситуации. Например, приложение для обработки текстов может выступать в качестве клиента в запросе сводной таблицы производственных затрат из приложения электронной таблицы, выступающего в качестве сервера. Приложение электронной таблицы, в свою очередь, может работать в качестве клиента при запросе последних уровней инвентаризации от приложения управления инвентаризацией.

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

  • Должно ли приложение взаимодействовать с другими приложениями, работающими на других компьютерах в сети, или достаточно для того, чтобы приложение могло обмениваться данными только с приложениями на локальном компьютере?
  • должно ли приложение взаимодействовать с приложениями, работающими на других компьютерах, которые могут работать под управлением разных операционных систем (например, 16-разрядные Windows или UNIX)?
  • Следует ли пользователю приложения выбрать другие приложения, с которыми взаимодействует приложение, или может ли приложение неявным образом найти своих взаимодействующих партнеров?
  • Следует ли, чтобы приложение взаимодействовало со многими различными приложениями обычным образом, например разрешить операции вырезания и вставки с любым другим приложением или должны ли требования к обмену информацией ограничиваться ограниченным набором взаимодействий с конкретными другими приложениями?
  • Является ли производительность критически важным аспектом приложения? Все механизмы 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

Использование каналов для 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.

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

Каждая связь имеет своё имя, которое можно редактировать.

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

В макете устанавливается набор атрибутов, по которому будет производиться поиск связанного документа.

Таблица связей

Окно отображения связей текущего документа


Рис. 17. Окно отображения связей текущего документа.

Порядок установления связи между документами

В системе существуют два способа установления связи между документами.

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

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

Связывание с помощью поиска по атрибутам

При добавлении полей нужно выбрать тип поля для поиска: тип документа или группа атрибутов.

Результат показан на рис. 15.

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

Редактор макетов связей


Рис. 19. Редактор макетов связей.

Прямое связывание

В этом способе создаются сразу жёсткие связи.

Отображение карточки документа в режиме фиксации карточки


Рис. 20. Отображение карточки документа в режиме фиксации карточки.

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

Окно параметров связи


Рис. 21. Окно параметров связи.

После этого можно выбрать другие документы. Таким образом можно сразу создать несколько связей.

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

Информация - это све­дения о лицах, фактах, событиях и явлениях, вне зависимости от формы ее представления.

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

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

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

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

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

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

Релевантностью (от англ. "relevant"- уместный, относящийся к делу) называется способность информации соответствовать запросам, нуждам, требованиям потребителя.

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

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

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

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

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

Однако с избыточностью информации дело обстоит далеко не так просто, как это может показаться на первый взгляд. Установлено, что в целом ряде случаев избыточная информация приносит даже пользу. Причём необходимость избыточности доказана эволюционным развитием. В частности, избыточными являются существующие алфавиты и языки. К примеру, в русском языке избыточность составляет 40 %, во французском - 55 %. Без некоторой избыточности человек не в состоянии длительное время воспринимать информацию. Это потребовало бы от него постоянного напряжённого внимания, что приводит к быстрому утомлению и потере способности к восприятию.

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

С полнотой связана достоверность информации. Она отражает степень объективности в процессе фиксации и передачи информации. С увеличением полноты достоверность увеличивается. Однако происходит это лишь до тех пор, пока не наступает сверхизбыточность информации, которая уже перестаёт влиять на степень её достоверности.

Достоверность зависит от источника информации, прежде всего от уровня его компетентности, от субъективизма в процессе сбора, обработки, оформления информации. Поскольку документ создаётся человеком, постольку содержащаяся в нём информация всегда субъективна. Каждому конкретному документу присуща своя, большая или меньшая, степень субъективности.

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

Со временем информация, даже самая полезная, стареет. Поэтому важнейшим её свойством является новизна. Понятие новизны относительно. Одна и та же информация, утратив новизну в оперативной среде, может оказаться новой при реконструкции событий прошлого, т.е. в процессе реализации функции документа как исторического источника.

С новизной связана своевременность информации, т.е. её способность соответствовать запросам потребителя в нужный момент времени.

Одно из свойств документированной информации - её доступность, т.е. возможность получения потребителем.

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

Ещё одним свойством информации является её эргономичность, т.е. оптимальность формы или объёма информации для конкретного потребителя.

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

Помимо внешних, существуют внутренние свойства документированной информации. Они находят своё выражение в объёме информации, в её внутренней организации, структуре.

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

Признаки документа

С целью создания возможности для проведения унификации и стандартизации документов проведена их классификация по определенным признакам

1)По способу изготовления документы

· Фоно, аудио, акустические документы

2)По ценности содержания

· Оперативные и т.д.

3)По назначению

· Документы для фиксации событий (протокол)

· Документы для передачи информации (письма)

· Документы для выполнения основных задач

4)По стадиям создания

5)По срокам хранения

· Документы постоянного бессрочного срока хранения

· Документы длительного срока хранения

· Документы временного срока хранения до 10 лет

6)По степени гласности

7)По юридической силе

· Документы подлинные (действующие и недействующие)

8)По способу изложения материала

9)По роду деятельности

· УС банковской документации

· УС финансовой, учетной, отчетной и бухгалтерской организации

· УС отчетно-статистической документации

· УС документации по труду

· УС внешнеторговой документации

· УС пенсионного фонда РФ

10)По форме

11)По происхождению

12)По срокам изготовления

13)По месту составления

Функции документа

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

1) информационные функции (собственно информационная, социальная, политическая и коммуникативная);

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

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

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

г.Коммуникативная функция документа состоит в том, что ее основная задача -передача информации во времени и пространстве.

2) функции, обеспечивающие процесс управления (управленческая, правовая, учетная);

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

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

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

3) функции, носящие культурно-исторический характер (культурная, функция исторического источника)

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

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

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

Древнейшим способом фиксации информации является руко­писное письмо. В конце XIX в. с изобретением пишущей маши­ны возник и достаточно быстро стал повсеместно применяться машинописный способ создания документов. В течение XX в. механическая пишущая машина постоянно совершенствовалась за счет появления новых моделей пишущих и организационных автоматов и создания электронных моделей пишущих машин раз­личного назначения.

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

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

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

Способ фиксации информации определяет выбор средств до­кументирования, которые подразделяют:

ü на простые (карандаш, ручка);

ü механические (пишущие машины);

ü электромеханические (магнитофоны, диктофоны, фото-, кино-, видеотехника);

ü электронные (электронные пишущие машины, персональные компьютеры).

В зависимости от применяемых средств документирования раз­личают несколько способов документирования: текстовое; кино-, фото-, фоно-, видеодокументирование; электронное.

image

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

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

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

В общем случае, взаимодействие программных систем может быть нескольких видов:

Часто программы позволяют расширять свою функциональность: текстовые редакторы и электронные таблицы позволяют создавать макросы, браузеры – добавлять расширения, все CMS – дополнять их сторонними компонентами и плагинами. Некоторые программы идут дальше по этому пути и по сути являются платформами для запуска других приложений: например, браузеры или ibm lotus notes.

Сама операционная система – это программа, единственное назначение которой — существование других программ. Она упрощает их существование, изолирует от железа, предоставляет возможность использования графического интерфейса и даёт доступ к сети, её цель – обеспечить работу другим программам.

При этом и операционные системы, и платформы, и даже CMS, которые ставят из-за единственного компонента, во многих случаях гораздо сложнее той программы, ради которой их используют, они могут включать множество самых различных обеспечивающих работу функций: разделять ресурсы, предоставлять механизм авторизации, упрощать обращение к базе данных. Это происходит и за счёт своей универсальности (например, операционная система Windows содержит несколько подсистем Win32, OS/2) для обеспечения работы для всех возможных программ.

Универсальность всегда приводит к дополнительной сложности. Это касается и тех компонент, которые программисты используют при написании программы, они гораздо сложнее и обладают гораздо большим набором функций, многие из которых не требуются и не используются. Программы часто вынуждены обеспечивать обратную совместимость – так, в Windows можно было запускать DOS-приложения. При взаимодействии систем, возможно возникновение нескольких интересных эффектов.

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

Вторую мысль озвучил Питер Норвиг в докладе Everything is Miscellaneous. Она показалась мне удивительной: если Вы посмотрите на отдельно взятого шимпанзе и отдельно взятого человека, то увидите, что между ними много общего. Ну, то есть понятно, что шимпанзе немного сильнее, человек немного умнее, но в целом, их внешний вид немного похож, их физические и даже пусть с большой натяжкой интеллектуальные возможности сопоставимы. Но теперь если Вы взглянете на культуру шимпанзе и культуру человечества, то увидите колоссальную разницу. Цивилизацию людей даже нельзя сопоставить с цивилизацией шимпанзе. Почему-то это напомнило мне о том, что 0.99 и 1.01 вроде бы не сильно отличаются, но при возведении в какую-нибудь большую степень одно число будет стремиться к нулю, а другое – к бесконечности.

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

Читайте также: