Добавление каждого нового процессора в действительно масштабируемой системе должно давать прогнозируемое увеличение производительности и пропускной способности при приемлемых затратах. Одной из основных задач при построении масштабируемых систем является минимизация стоимости расширения компьютера и упрощение планирования. В идеале добавление процессоров к системе должно приводить к линейному росту ее производительности. Однако это не всегда так. Потери производительности могут возникать, например, при недостаточной пропускной способности шин из-за возрастания трафика между процессорами и основной памятью, а также между памятью и устройствами ввода/вывода. В действительности реальное увеличение производительности трудно оценить заранее, поскольку оно в значительной степени зависит от динамики поведения прикладных задач.
Возможность масштабирования системы определяется не только архитектурой аппаратных средств, но зависит от заложенных свойств программного обеспечения. Масштабируемость программного обеспечения затрагивает все его уровни от простых механизмов передачи сообщений до работы с такими сложными объектами как мониторы транзакций и вся среда прикладной системы. В частности, программное обеспечение должно минимизировать трафик межпроцессорного обмена, который может препятствовать линейному росту производительности системы. Аппаратные средства (процессоры, шины и устройства ввода/вывода) являются только частью масштабируемой архитектуры, на которой программное обеспечение может обеспечить предсказуемый рост производительности. Важно понимать, что простой переход, например, на более мощный процессор может привести к перегрузке других компонентов системы. Это означает, что действительно масштабируемая система должна быть сбалансирована по всем параметрам.
Концепция программной совместимости впервые в широких масштабах была применена разработчиками системы IBM/360. Основная задача при проектировании всего ряда моделей этой системы заключалась в создании такой архитектуры, которая была бы одинаковой с точки зрения пользователя для всех моделей системы независимо от цены и производительности каждой из них. Огромные преимущества такого подхода, позволяющего сохранять существующий задел программного обеспечения при переходе на новые (как правило, более производительные) модели были быстро оценены как производителями компьютеров, так и пользователями и начиная с этого времени практически все фирмы-поставщики компьютерного оборудования взяли на вооружение эти принципы, поставляя серии совместимых компьютеров. Следует заметить однако, что со временем даже самая передовая архитектура неизбежно устаревает и возникает потребность внесения радикальных изменений архитектуру и способы организации вычислительных систем.
В настоящее время одним из наиболее важных факторов, определяющих современные тенденции в развитии информационных технологий, является ориентация компаний-поставщиков компьютерного оборудования на рынок прикладных программных средств. Это объясняется прежде всего тем, что для конечного пользователя в конце концов важно программное обеспечение, позволяющее решить его задачи, а не выбор той или иной аппаратной платформы. Переход от однородных сетей программно совместимых компьютеров к построению неоднородных сетей, включающих компьютеры разных фирм-производителей, в корне изменил и точку зрения на саму сеть: из сравнительно простого средства обмена информацией она превратилась в средство интеграции отдельных ресурсов - мощную распределенную вычислительную систему, каждый элемент которой (сервер или рабочая станция) лучше всего соответствует требованиям конкретной прикладной задачи.
Этот переход выдвинул ряд новых требований. Прежде всего такая вычислительная среда должна позволять гибко менять количество и состав аппаратных средств и программного обеспечения в соответствии с меняющимися требованиями решаемых задач. Во-вторых, она должна обеспечивать возможность запуска одних и тех же программных систем на различных аппаратных платформах, т.е. обеспечивать мобильность программного обеспечения. В третьих, эта среда должна гарантировать возможность применения одних и тех же человеко-машинных интерфейсов на всех компьютерах, входящих в неоднородную сеть. В условиях жесткой конкуренции производителей аппаратных платформ и программного обеспечения сформировалась концепция открытых систем, представляющая собой совокупность стандартов на различные компоненты вычислительной среды, предназначенных для обеспечения мобильности программных средств в рамках неоднородной, распределенной вычислительной системы.
Одним из вариантов моделей открытой среды является модель OSE (Open System Environment), предложенная комитетом IEEE POSIX. На основе этой модели национальный институт стандартов и технологии США выпустил документ "Application Portability Profile (APP). The U.S. Government's Open System Environment Profile OSE/1 Version 2.0", который определяет рекомендуемые для федеральных учреждений США спецификации в области информационных технологий, обеспечивающие мобильность системного и прикладного программного обеспечения. Все ведущие производители компьютеров и программного обеспечения в США в настоящее время придерживаются требований этого документа.
1.2 Технические средства локальной вычислительной сети
1.2.1 Модели взаимодействия открытых систем OSI
Модель взаимодействия открытых систем – OSI (OpenSystemInterconnect) модель, является дальнейшей детализацией процессов взаимодействия прикладных программ в открытых системах. В OSI модели достаточно сложная задача разработки единого интерфейса между взаимодействующими компьютерами разбита на семь более простых. В каждом компьютере передаваемые данные проходят семь уровней преобразований, образующих стек интерфейсов и протоколов взаимодействия, как показано на рисунке 1.3.
Рисунок 1.3 - OSI модель взаимодействия открытых систем
Многоуровневая обработка передаваемых данных в компьютерах объясняется существенными отличиями понятий, которыми оперируют прикладные программы и сетевые устройства. Так, например, прикладная программа оперирует текстовыми документами, таблицами и схемами, а передающие и принимающие сетевые устройства воспринимают их только в виде логических нулей и единиц, которые к тому же в среде передачи данных могут быть представлены электрическими, оптическими или радио сигналами. Следующей проблемой является адресация передаваемых данных. Если передающее устройство воспринимает только физические адреса доступных ему устройств, то прикладная программа должна указать какие данные, какой программы, какого компьютера такой-то подсети такой-то сети нужно передать.
Семь уровней OSI модели могут быть разделены на две категории: верхние и нижние уровни.
Верхние уровни – прикладной, представлений и сеансовый, уровни приложений, взаимодействуют с прикладной программой и могут быть реализованы только программным способом. Прикладной уровень работает непосредственно с прикладной программой, которая должна иметь в своем составе специальный компонент для взаимодействия с приложениями других систем.
Нижние уровни модели называются уровнями передачи данных. Реализация физического и канального уровней обеспечивается программными средствами и специальной сетевой аппаратурой. При этом физический уровень является ответственным за непосредственную передачу данных между устройствами.
В модели OSI на рисунке 1.3 стрелками показано вертикальное и горизонтальное перемещение данных во взаимодействующих системах. Вертикальные стрелки обозначают передачу данных от одного уровня к другому внутри одной системы. Проходя вниз по уровням модели, данные преобразуются в формат, воспринимаемый физическим уровнем, передаются в другую систему, в которой проходят обратный путь снизу вверх. Каждый уровень модели предоставляет свои услуги смежному верхнему уровню и пользуется услугами смежного нижнего уровня.
Несмотря на то, что в процессе передачи данных каждый уровень обслуживает запросы смежного верхнего уровня, основной его задачей является подготовка информации для одноименного уровня в другой системе. Горизонтальные стрелки в модели OSI означают, что хоть одноименные уровни непосредственно не обмениваются данными, но подготавливаемая каждым уровнем информация предназначена и будет воспринята только аналогичным уровнем другой системы.
Процесс преобразования данных при их передаче между уровнями модели проиллюстрирован на рисунке 1.4.
Рисунок 1.4 - Процесс обмена данными в модели OSI
Порция передаваемой между уровнями OSI модели данных состоит из заголовка и непосредственно данных. Заголовок содержит служебную информацию соответствующего уровня модели.
Предположим, что прикладной программе компьютера А нужно передать данные или запрос на получение данных некоторой программе компьютера В. Смысловое значение передаваемых прикладной программой данных, данные это, запрос или что-то ещё, понятно только прикладной программе, которой оно адресовано. Для уровней OSI модели это просто порция информации. Прикладная программа запрашивает сервис прикладного уровня компьютера А и передает ему данные. Прикладной уровень компьютера А добавляет к полученным данным свой заголовок со служебной информацией, которая является смысловой только для прикладного уровня модели компьютера В, и передает их на уровень представлений. Уровень представлений, в свою очередь, добавляет к полученным данным свой заголовок и передает его на следующий нижележащий уровень. Таким образом, каждый раз увеличиваясь в объеме на величину добавляемого заголовка, данные доходят до физического уровня и передаются в другой компьютер. При этом передаваемые данные содержат вложенные заголовки всех уровней модели.