Развитие информационных технологий

Обработка и хранение информации

Разбить на страницы
Показывать лекцию целиком

3.1. Сферы применения информационных технологий

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

Сферы применения информационных технологий в современном обществе чрезвычайно велики. В таблице 3.1 приведены основные и производные сферы использования ИТ.

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

Сферы применения информационных технологий
Экономика Политика Культура Наука
Производственные отношения Государство Эпохи Теория
Производство Власть Уклады Методы
Финансы Общество Традиции Средства
Бизнес-правила Международные и региональные организации и отношения Религия Систематизация
Взаимодействие Партии Культурные ценности Научно-технические революции
Продукт Общественные организации Этика Применение
Услуга Искусство Результаты
Система Образование Последствия
Качество Спорт
Потребитель

Внедрение персонального компьютера в информационную сферу и применение телекоммуникационных средств связи определили новый этап развития ИТ и, как следствие, изменение названия технологии за счёт присоединения одного из символов: "новая", "компьютерная" или "современная" (табл. 3.2).

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

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

3.2. Обработка информации

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

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

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

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

Следует отметить, что независимо от того, как "глубоко" будет отодвинута внутренняя граница, рецепцию всегда можно рассматривать как процесс классификации.

Формализованная модель обработки информации

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

ИТ, как и любые другие технологии, должны отвечать следующим требованиям:

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

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

    (рис 3.1) Технологический процесс переработки информации в виде иерархической структуры по уровням

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

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

    Предположим вам надо сложить 1000 последовательных данных измерений. Заводим специальный счетчик-сумматор и присваиваем ему значение 0. Для каждого из данных надо получить результат измерений и добавить его к счетчику, то есть вам надо сделать 2001 операцию при "ручном" счете. Другой вариант - написать шесть инструкций для машины:

  • Завести счетчик-сумматор и присвоить ему значение 0.
  • Завести индекс (номер) текущей операции и присвоить ему значение 0.
  • Получить новый результат измерений.
  • Добавить его к счетчику-сумматору.
  • Увеличить на 1 индекс текущей операции.
  • Если он меньше 1000, то перейти к шагу 3.
  • За прошедшее время существенно усложнились задачи обработки информации, развились способы формулировки и записи правил работы машин (программ работы). Вычислительные устройства превратились в компьютеры, а правила работы - в компьютерные программы.

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

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

    Составителями программ являются программисты. Большая часть работы программиста связана с написанием и отладкой исходного кода на одном из языков программирования.

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

    Единственный язык, напрямую выполняемый процессором - это машинный язык (также называемый машинным кодом). Изначально все программисты прорабатывали весь алгоритм в машинном коде, но сейчас эта трудная работа уже не делается. Вместо этого программисты пишут исходный код на языках высокого уровня (например, С, С++, С#, Java), а компьютер, используя компилятор или интерпретатор и уточняя все детали, транслирует его в один или несколько этапов, в машинный код, готовый к исполнению на целевом процессоре. Если требуется полный низкоуровневый контроль над системой, программисты пишут программу на языке ассемблера, мнемонические инструкции которого преобразуются один к одному в соответствующие инструкции машинного языка целевого процессора.

    В некоторых языках вместо машинного кода генерируется интерпретируемый двоичный код "виртуальной машины", также называемый байт-кодом (byte-code). Такой подход применяется в языке Forth, некоторых реализациях языков Lisp, Java, Perl, Python, а также в языках платформы .NET от Microsoft.

    Типичный процесс разработки программ состоит, в общем, из семи этапов:

  • постановка задачи;
  • формализация;
  • выбор или составление алгоритма;
  • специфицирование;
  • программирование;
  • компиляция (трансляция);
  • отладка и тестирование;
  • запуск в эксплуатацию.
  • Эксплуатируемая программа имеет дело с данными различных типов, предназначенных для решения конкретных задач.

    3.3. Хранение информации. Базы и хранилища данных

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

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

    ).

    (рис 3.2) Общая схема базы данных

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

    Система управления базами данных, СУБД (Data Base Management System) - специализированная программа или комплекс программ, предназначенные для манипулирования базой данных. Для создания информационной системы и управления ею СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор.

    СУБД часто упрощённо или ошибочно называют "базой данных". Нужно различать набор данных (собственно БД) и программное обеспечение, предназначенное для организации и ведения баз данных (СУБД).

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

    Организация структуры БД формируется, исходя из следующих соображений:

  • адекватность описываемому объекту/системе - на уровне концептуальной и логической модели;
  • удобство использования для ведения учёта и анализа данных - на уровне так называемой физической модели.
  • Виды концептуальных и логических моделей БД:

  • картотеки;
  • сетевые;
  • иерархические;
  • реляционные;
  • дедуктивные;
  • объектно-ориентированные;
  • многомерные.
  • На уровне физической модели электронная БД представляет собой файл или набор данных в dbf-форматах приложений Excel, Access, либо в специализированном формате конкретной СУБД. Также в СУБД в понятие физической модели включают специализированные виртуальные понятия, существующие в её рамках - таблица, табличное пространство, сегмент, куб, кластер и т. д.

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

    Реляционная база данных - база данных, основанная на реляционной модели. Слово "реляционный" происходит от английского "relation" (отношение).

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

    Кратко особенности реляционной базы данных можно сформулировать следующим образом:

  • данные хранятся в таблицах, состоящих из столбцов ("атрибутов") и строк ("записей");
  • на пересечении каждого столбца и строчки стоит в точности одно значение;
  • у каждого столбца есть своё имя, которое служит его названием, и все значения в одном столбце имеют один тип;
  • запросы к базе данных возвращают результат в виде таблиц, которые тоже могут выступать как объект запросов;
  • строки в реляционной базе данных неупорядочены, упорядочивание производится в момент формирования ответа на запрос.
  • Общепринятым стандартом языка работы с реляционными базами данных в настоящее время является язык структурированных запросов (Structured Query Language - SQL). Это универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Вопреки существующим заблуждениям, SQL является информационно-логическим языком, а не языком программирования.

    SQL основывается на реляционной алгебре. Язык SQL делится на три части:

  • операторы определения данных;
  • операторы манипуляции данными (insert, select, update, delete);
  • операторы определения доступа к данным.
  • Основные функции системы управления базами данных:

  • управление данными во внешней памяти (на различных носителях);
  • управление данными в оперативной памяти;
  • журналирование изменений и восстановление базы данных после сбоев;
  • поддержка языков БД (язык определения данных, язык манипулирования данными, язык определения доступа к данным).
  • Обычно современная СУБД содержит следующие компоненты (рис 3.3):

  • ядро, которое отвечает за управление данными во внешней и оперативной памяти и журналирование;
  • процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода;
  • подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД.
  • сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.
  • (рис 3.3) Основные компоненты СУБД

    По типу управляемой базы данных СУБД разделяются на: иерархические, реляционные, объектно-реляционные, объектно-ориентированные, сетевые.

    По архитектуре организации хранения данных:

  • локальные СУБД (все части локальной СУБД размещаются на одном компьютере);
  • распределенные СУБД (части СУБД могут размещаться на двух и более компьютерах).
  • Классификация СУБД по способу доступа к БД:

  • файл-серверные;
  • клиент-серверные;
  • трехзвенные;
  • встраиваемые.
  • Файл-серверные СУБД. Архитектура "файл-сервер" не имеет сетевого разделения компонентов диалога и использует компьютер для функции отображения, что облегчает построение графического интерфейса. "Файл-сервер" только извлекает данные из файлов, так что дополнительные пользователи добавляют лишь незначительную нагрузку на центральный процессор, и каждый новый клиент добавляет вычислительную мощность сети. Минус - высокая загрузка сети. На данный момент файл-серверные СУБД считаются устаревшими. Примеры: Microsoft Access, MySQL (до версии 5.0).

    Клиент-серверные СУБД. Такие СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера. Клиент-серверные СУБД, в отличие от файл-серверных, обеспечивают разграничение доступа между пользователями и меньше загружают сеть и клиентские машины. Сервер является внешней по отношению к клиенту программой, и по надобности его можно заменить другим. Недостаток клиент-серверных СУБД в самом факте существования сервера (что плохо для локальных программ - в них удобнее встраиваемые СУБД) и больших вычислительных ресурсах, потребляемых сервером. Примеры: Firebird, In-terbase, MS SQL Server, Oracle, DB2, PostgreSQL, MySQL (старше версии 5.0).

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

    Встраиваемая СУБД - это, как правило, "библиотека", которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине. Доступ к данным может происходить через SQL либо через особые функции СУБД. Встраиваемые СУБД быстрее обычных клиент-серверных и не требуют установки сервера, поэтому востребованы в локальном ПО, которое имеет дело с большими объёмами данных - например, геоинформационные системы (Geographic Informational System - GIS). Примеры: SQLite, BerkeleyDB, один из вариантов Firebird, один из вариантов MySQL.

    В общем случае СУБД могут быть классифицированы в системе координат {Неоднородность - Автономность - Распределенность} (рис 3.4).

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

    (рис 3.4) Классификация СУБД в системе НАР

    Индустрия создания баз данных и СУБД берет свое начало в 60-х годах прошлого века и к настоящему времени достаточно развита, однако понятие "хранилище данных" в современном понимании его появилось относительно недавно. Идея хранилищ данных оказалось востребованной, так как во многих видах государственной, деловой, научной, социальной деятельности необходимы тематически объединенные и исторически очищенные совокупности данных, при этом постоянно возрастала потребность:

  • в более дешевых данных;
  • в точных и структурированных данных;
  • в большей оперативности получения и обработки данных;
  • в интегрированных данных.
  • К концу 80-х годов, когда была в полной мере осознана необходимость интеграции корпоративной информации и надлежащего управления этой информацией, появились технические возможности для создания соответствующих систем, которые первоначально были названы "хранилищами информации" (Information Warehouse - IW). И лишь в 90-е годы, с выходом книги Билла Инмона, хранилища получили свое нынешнее наименование "хранилища данных" (Data Warehouse - DW) [25].

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

    В основе концепции хранилищ данных лежат следующие основополагающие идеи:

  • интеграция ранее разъединенных детализированных данных (исторические архивы, данные из традиционных систем обработки документов, разрозненных баз данных, данные из внешних источников) в едином хранилище данных;
  • тематическое и временнОе структурирование, согласование и агрегирование;
  • разделение наборов данных, используемых для операционной (производственной) обработки, и наборов данных, используемых для решения задач анализа.
  • Данные, помещаемые в хранилище, должны отвечать определенным требованиям - предметной ориентированности, интегрированности, поддержки хронологии и неизменяемости (табл. 3.3 (3.3.1)).

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

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

    Понятие хранилище данных в первоначальном понимании было основано на понятии распределенной витрины данных (Distributed Data Mart - DDM). Поэтому в классическом исполнении хранилище данных было, прежде всего, репозиторием (сквозной базой данных) данных и информации предприятия.

    (рис 3.5) Схема организации данных в хранилище

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

    С точки зрения архитектурного решения такое хранилище данных реализует свои функции через подмножество зависимых витрин данных (рис 3.5).

    Достоинствами архитектуры классического хранилища данных являются:

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

    В связи с этим возникло понимание того, что хранилище, помимо механизмов размещения и извлечения данных (On Line Trans-actional Processing - OLTP), репозитория и витрин, должно иметь соответствующее пространство для организации "сырых" данных и их многомерного анализа в режиме реального времени (On Line Analytical Processing - OLAP).

    3.4. Распределенные системы обработки данных

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

    (рис 3.6) Пример использования технологий распределенной обработки данных - DDP

    ).

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

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

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

    Способы конкретной организации процессов обработки и технические решения чрезвычайно разнообразны, однако архитектура таких систем является, как правило, двух- или трёхзвенной архитектурой "клиент-сервер" (Client-Server Architecture - CSA). В предыдущем параграфе было сказано несколько слов о клиент-серверных СУБД. Рассмотрим эту архитектуру подробнее.

    Технологии "клиент-сервер"

    Современная распределенная вычислительная система (сеть) является сложным комплексом взаимосвязанных программных и аппаратных компонентов (рис 3.7).

    (рис 3.7) Вычислительная сеть как сложный комплекс взаимосвязанных программных и аппаратных компонентов

    Этот комплекс может быть описан многослойной моделью, которая должна соответствовать общему назначению сети: компьютеры, коммуникационное оборудование, операционные системы, сетевые приложения [26].

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

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

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

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

    Архитектура "Клиент-сервер" - это модель взаимодействия компьютеров в сети. Как правило, один компьютер в сети располагает информационно-вычислительными ресурсами, такими как мощные процессоры, программные приложения, базы данных и различные сервисы. Другие же компьютеры пользуются ими (рис 3.8). Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса (Resource Server - RS), а компьютер, который пользуется этим ресурсом - клиентом (Clients). Конкретный сервер характеризуется видом ресурса, которым он владеет. Если используемым ресурсом являются базы данных, то речь идет о сервере баз данных, назначением которого является обслуживание запросов клиентов по выдаче или преобразованию данных; если файловая система или система пересылки сообщений, то говорят о файловом или почтовом сервере.

    (рис 3.8) Архитектура "клиент-сервер" как модель взаимодействия компьютеров в сети

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

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

  • компонент ввода и представления данных (Data Input/ Presentation);
  • прикладной компонент (Business Application), поддерживающий функции, необходимые для выполнения действий в данной предметной области;
  • компонент доступа к информационным ресурсам (Resource Acces) или менеджер ресурсов (Resource Manager), поддерживающий глобальные функции хранения и управления данными (базами данных, файловыми и почтовыми системами и т.д.).
  • Различия в реализации приложений в рамках технологии "клиент-сервер" определяются тем, какие механизмы используются для реализации функций всех трех групп и как логические компоненты распределяются между компьютерами в сети. Выделяются три подхода, каждый из которых реализован в соответствующей модели:

  • доступа к удаленным данным (Remote Date Access - RDA);
  • сервера базы данных (DateBase Server - DBS);
  • сервера приложений (Application Server - AS).
  • В модели RDA реализация представления данных и прикладного компонента совмещены и выполнятся на компьютере-клиенте. Этот компьютер поддерживает как функции ввода и отображения данных, так и чисто прикладные функции. Доступ к удаленным информационным ресурсам обеспечивается, как правило, с помощью специального языка запросов (Structured Querry Language - SQL) - если речь идет о базах данных; или вызовами функций специальных библиотек - если имеется соответствующий интерфейс (Application Program Interface - API).

    Запросы направляются по сети удаленному компьютеру (например, серверу базы данных), который обрабатывает и выполняет запросы и возвращает клиенту блоки данных. Говоря о таком виде архитектуры "клиент-сервер" в большинстве случаев имеют в виду модель, называемую "толстым клиентом" (рис 3.9).

    (рис 3.9) Архитектура "клиент-сервер". Модель "толстого" клиента (RDA-модель)

    ).

    (рис 3.10) Модель доступа к удаленным данным и сервисам (DBS-модель)

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

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

    В ).

    (рис 3.11) Модель сервера приложений (AS-модель)

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

    RDA и DBS модели реализуют двухзвенную схему разделения функций. В RDA-модели прикладные функции приданы программе-клиенту, в DBS-модели ответственность за их выполнение берет на себя ядро СУБД. В первом случае прикладной компонент сливается с компонентом представления, во втором - интегрируется в компонент доступа к информационным ресурсам. Напротив, в AS-модели реализована классическая трехзвенная схема разделения функций, когда прикладной компонент выделен как важнейший элемент приложения. Для его реализации используются универсальные механизмы многозадачной операционной системы и стандартизованные интерфейсы для взаимодействия с двумя другими компонентами. Собственно, из этой особенности AS-модели и вытекают ее преимущества, которые имеют важнейшее значение для чисто практической деятельности по организации коллективной работы в локальной сети или распределенной работы с удаленными базами данных или сервисными приложениями через Internet.

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

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

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

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

    В соответствии с эталонной семиуровневой моделью взаимодействия открытых систем (Reference Model of Open System Interconnection - RM OSI) в сетях коммутации пакетов для передачи данных между несмежными компьютерными системами создается сетевая платформа, образуемая физическими средствами соединения, физическим, канальным и сетевым уровнями. Оконечные системы частично погружены в эту платформу, а над ней располагаются только 4-7 уровни этих систем. На границе сетевого и транспортного уровня прикладные процессы передают друг другу пакеты данных.

    (рис 3.12) Передача данных между смежными системами на основе физической платформы

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

    Так, если три компьютера однозначно связываются двумя способами, то для четырех компьютеров можно предложить уже шесть топологически различных конфигураций (при условии однотипности компьютеров). Множество возможных конфигураций объединяются в две основные группы: полносвязные (Fully Connected Topology) и неполносвязные (Incompletely Connected Topology) (рис 3.13).

    (рис 3.13) Типы конфигураций компьютеров в сети

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

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

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

    (рис 3.14) Варианты соединений, основанные на неполносвязных топологиях

    Программно-аппаратные устройства распределенной обработки данных являются составной частью информационной инфраструктуры высокотехнологичных компаний (рис 3.6, рис 3.7). На сегодняшний день на российском рынке представлены многочисленные продукты зарубежных и российских производителей для реализации соответствующих функций в распределенных корпоративных системах [28, 29].

    Хранение данных при распределенной обработке

    Распределенная обработка данных в обязательном порядке предполагает наличие банков и баз данных. Но база данных - это не место, куда просто складывают данные: ими нужно пользоваться, актуализировать, изменять форматы и связи и совершать множество других действий. Если бессистемно наполнять базу информацией, то через некоторое время ею невозможно будет пользоваться - времени на поиск нужных данных будет уходить всё больше и больше, пространство базы переполнится. В связи с этим данные необходимо "очищать" и структурировать, а для эффективной работы с ними необходимы системы управления работой баз данных (Data Base Management System - DBMS).

    На сегодняшний день существует два основных подхода к архитектуре хранилищ данных [) и хранилище данных с архитектурой шины Ральфа Кимболла (рис 3.16).

    (рис 3.15) Корпоративная информационная фабрика Б. Инмона

    Работа корпоративной информационной фабрики (Corporate Information Factory - CIF) начинается со скоординированного извлечения данных из источников. После этого загружается реляционная база данных, содержащая соответствующие очищенные и согласованные ("атомарные") данные. Получившееся нормализованное хранилище используется для того, чтобы наполнить информацией дополнительные репозитории презентационных данных, т.е. данных, подготовленных для анализа.

    Эти репозитории, в частности, включают специализированные хранилища для изучения и добычи данных на базе применения технологий извлечения полезной информации из "сырых данных" (Data Mining - DM). После этого основной и, в случае необходимости, дополнительные репозитории используются для формирования витрин данных (Data Mart).

    (рис 3.16) Хранилище данных с архитектурой шины Р. Кимболла

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

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

  • использование реляционной модели организации атомарных данных и пространственной - для организации суммарных данных;
  • использование итеративного или "спирального" подхода при создании больших хранилищ данных, т.е. "строительство" не сразу, а по частям. Это позволяет при необходимости вносить изменения в небольшие блоки данных или программных кодов и избавляет от необходимости перепрограммировать значительные объемы данных. То же самое можно сказать и о потенциальных ошибках: они также будут локализованы в пределах сравнительно небольшого массива без риска испортить все данные хранилища разом;
  • организации атомарных данных, что обеспечивает высокую степень детальности интегрированных данных и, соответственно, предоставляет корпорациям широкие возможности для манипулирования ими и изменения формата и способа представления данных по мере необходимости;
  • хранилище данных - не является механической коллекцией разрозненных витрин данных - это концептуально и физически целостный объект.
  • Альтернативным подходом к архитектуре хранилищ данных, является подход Р. Кимболла - хранилище с архитектурой шины (Data Warehouse Bus - DWB) (рис 3.16). В этой модели первичные данные преобразуются в информацию, пригодную для использования, на этапе подготовки данных. При этом обязательно принимаются во внимание требования к скорости обработки информации и качеству данных.

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

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

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

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

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

  • использование двухуровневой архитектуры, которая включает стадию подготовки данных, недоступную для конечных пользователей, и хранилище данных с архитектурой шины как таковое. В состав последнего входят несколько витрин атомарных данных, несколько витрин агрегированных данных и персональная витрина данных. Заметим, что оно не содержит одного физически целостного или централизованного хранилища данных - это даёт известную гибкость при использовании данных;
  • использование пространственной модели организации данных с архитектурой "звезда" (Star Scheme).
  • Таким образом, хранилище данных с архитектурой шины обладает следующими характеристиками - такое хранилище:

  • является пространственным;
  • включает как данные о транзакциях, так и суммарные данные;
  • включает витрины данных, посвященные только одной предметной области или имеющие только одну таблицу фактов (Fact Table);
  • может содержать множество витрин данных в пределах одной базы данных, отражающих показатели бизнес-процессов.
  • Хранилище данных Р.Кимболла не является единым физическим репозиторием (в отличие от подхода Б.Инмона). Это виртуальное хранилище - коллекция витрин данных, каждая из которых имеет архитектуру типа "звезда".

    (рис 3.17) Схема типизированного корпоративного хранилища данных

    На рис 3.17 показана схема типизированного корпоративного хранилища данных. Вопросы его проектирования, выбора архитектуры, реализации в том или ином виде (CIF или DWB) - это серьезный проект корпоративного масштаба, охватывающий все отделы и обслуживающий нужды всех пользователей корпорации.

    3.5. Развитие инструментальных средств обработки информации

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

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

    (рис 3.18) Последовательность технологических эпох ХХ века

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

    Предыстория ЭВМ

    Древнейшим счетным инструментом, который сама природа предоставила в распоряжение человека, была его собственная рука. Понятие числа и фигуры взято не откуда-то, а из действительного мира. "Десять пальцев, на которых люди учились считать (производить первую арифметическую операцию), представляют собой все что угодно, только не продукт свободного творческого разума" (http://www.junior.ru/wwwexam/history/frame.htm).

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

    От пальцевого счета берет начало пятеричная система счисления (одна рука), десятеричная (две руки), двадцатеричная (пальцы рук и ног). У многих народов пальцы рук остаются инструментом счета и на более высоких ступенях развития.

    Хорошо был известен пальцевый счет в Риме. По свидетельству древнеримского историка Плиния-старшего на главной римской площади Форуме была воздвигнута гигантская фигура двуликого бога Януса. Пальцами правой руки он изображал число 300, пальцами левой - 55. Вместе это составляло число дней в году в римском календаре.

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

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

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

    Около 500 года нашей эры: изобретение абака.

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

    В Древнем Риме абак появился, вероятно, в V-VI вв. н. э. и назывался calculi или abakuli. Изготовлялся абак из бронзы, камня, слоновой кости и цветного стекла. До нашего времени дошёл бронзовый римский абак, на котором камешки передвигались в вертикально прорезанных желобках. Внизу помещались камешки для счета до пяти, а в верхней части имелось отделение для камешка, соответствующего пятёрке.

    Суаньпань. Китайская разновидность абака (суань-пань) - появилась в VI веке н. э.; современный тип этого счётного прибора был создан позднее, по-видимому, в XII столетии. Суаньпань представляет собой прямоугольную раму, в которой параллельно друг другу протянуты проволоки или веревки числом от девяти и более; перпендикулярно этому направлению суаньпань перегорожен на две неравные части. В большом отделении ("земля") на каждой проволоке нанизано по пять шариков, в меньшем ("небо") - по два. Проволоки соответствуют десятичным разрядам. Из рисунка видно, что суаньпань является практически точным аналогом инструмента "конторские счёты".

    Соробан - японский абак, происходит от китайского суаньпаня, который был завезен в Японию в XV-XVI веках. Соробан проще своего предшественника, у него на "небе" на один шарик меньше, чем у суаньпаня.

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

    Впрочем, в XVI веке термина "счеты" еще не существовало, и прибор именовался "дощаным счетом". Один из ранних образцов такого "счета" представлял собой два соединенных ящика, одинаково разделенных по высоте перегородками. В каждом ящике - два счетных поля с натянутыми веревками или проволочками. На верхних 10 веревках по 9 косточек (четок), на 11-й их - четыре, на остальных веревках - по одной.

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

    1614-й. Изобретение логарифмов шотландцем Джоном Непером. Вначале были составлены таблицы логарифмов, а затем, после смерти Непера, была изобретена логарифмическая линейка.

    1642-й. Француз Блез Паскаль изобрёл и построил суммирующую машину - прототип арифмометра. В этой машине каждому десятичному разряду соответствовало колёсико с нанесёнными на него делениями от 0 до 9. Соседние колёсики были механически связаны так, что избыток над 9 колёсико передавало следующему, поворачивая его на 1. Этот прибор, практически без изменений, просуществовал и был в использовании более трёх столетий!

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

    1890-й. Американец Герман Холлерит построил статистический табулятор с целью ускорить обработку результатов переписи населения. Машина Холлерита имела большой успех, на её основе было создано преуспевающее предприятие, которое в 1924 году превратилось в фирму IBM - крупнейшего производителя современной вычислительной техники.

    1936-й. Англичанин Алан Тьюринг опубликовал основополагающую работу "О вычислимых числах", заложив теоретические основы теории алгоритмов.

    Поколения ЭВМ

    1943-й. Под руководством американца Говарда Айкена по заказу и при поддержке фирмы IBM создан Mark-1 - первый программно-управляемый компьютер. Он был построен на электромеханических реле, а программа обработки данных вводилась с перфоленты.

    1945-й. Американец Джон фон Нейман в отчёте "Предварительный доклад о машине Эниак" сформулировал принципы работы и компоненты современного программно-управляемого компьютера.

    Он определил четыре основные компоненты:

  • арифметико-логическое устройство (АЛУ);
  • устройство управления;
  • память;
  • устройство ввода-вывода информации.
  • С этих пор архитектура подобных компьютеров (а подавляющее большинство современных компьютеров построено в соответствие с ней) называется фон-неймановской.

    1946-й. Американцы Джон Преспер Экерт и Джон Уильям Мочли создали первый мощный электронно-цифровой компьютер "Эниак" (ENIAC - Electronic Numerical Integrator and Calculator), в 1000 раз более быстродействующий, чем Mark-1.

    1956-й. FORTRAN - первый реализованный язык программирования высокого уровня. Создан в период с 1954 по 1957 годы группой программистов под руководством Джона Бэкуса (John Backus) в корпорации IBM (язык Планкалкюль, претендующий на пальму первенства, был изобретён ещё в 1945 году, но не был реализован вплоть до 2000 года). Название FORTRAN является аббревиатурой от FORmula TRANslator, то есть переводчик формул. Язык Фортран широко используется до сих пор - в первую очередь для научных и инженерных вычислений.

    1958-й. Американец Джек Килби сконструировал первую интегральную схему.

    1960-й. Разработан алгоритмический язык АЛГОЛ-60.

    1963-й. Профессоры Дартмутского колледжа Томас Курт (Thomas E. Kurtz) и Джон Кемени (John G. Kemeny) разработали алгоритмический язык Бейсик (BASIC - Beginner's All-purpose Symbolic Instruction Code - универсальный код символических инструкций для начинающих; Basic - основной, базовый) - семейство высокоуровневых языков программирования. Язык предназначался для обучения программированию и получил широкое распространение в виде различных диалектов, прежде всего, как язык для домашних микрокомпьютеров.

    1964-й. 7 апреля фирма IBM объявила о создании семейства компьютеров System-360. Это был важнейший шаг к унификации, совместимости и стандартизации компьютеров. В этом же году в серии статей о науке и технике будущего в английском журнале "New Scientist" впервые появилось словосочетание "персональный компьютер" (Personal Computer - PC).

    1970-й. Швейцарец Никлаус Вирт разработал язык программирования Паскаль, получивший впоследствии широкое распространение в обучении и программировании.

    1971-й. Под руководством инженера фирмы Intel Теда Хоффа создан первый микропроцессор - 4-х разрядный 4004 или, как его назвали, "компьютер в одном кристалле". Он состоял из 2250 транзисторов и выполнял все функции центрального процессора универсального компьютера.

    1974-й. На компьютерном рынке появился микрокомпьютер Altair на базе Intel 8080. Мирная жизнь рынка, где царили IBM и DEC, была нарушена маленькой компанией MITS из Альбукерке, предложившей машину для каждого. Хотя Altair с большой натяжкой можно было назвать компьютером - MITS предлагала изделие типа "сделай сам", комплект, из которого терпеливый пользователь с помощью паяльника, в конце концов, мог получить довольно сложное в эксплуатации устройство. Однако не в последнюю очередь благодаря широкой рекламе, желающих заполучить собственный компьютер за вполне доступную (400 долл.) цену оказалось предостаточно.

    1975-й. Студенты Пол Аллен и Билл Гейтс реализовали интерпретатор языка Бейсик для персонального компьютера Altair. Они же основали компанию Microsoft, являющуюся сегодня крупнейшим производителем программного обеспечения персональных компьютеров.

    Создан микропроцессор MOP-technology 6502, он состоял из 4300 транзисторов и широко использовался в персональных компьютерах того времени.

    Фирма IBM представила на рынок один из первых лазерных принтеров IBM 3800.

    1977-й. В этом году в массовое производство были запущены три персональных компьютера: Apple-2 (Apple Computer) на базе процессора 6502, PET (Commodore) на базе процессора 8088, TRS-80 (Tendy Corporation) на базе процессора Z80.

    1983-й. Фирма Apple Computer построила персональный компьютер Apple Lisa - первый компьютер, управляемый манипулятором "мышь".

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

    1985-й. Первая попытка Microsoft реализовать многозадачную операционную среду для персонального компьютера на основе графического интерфейса Windows 1.01.

    1988-й. Основатель фирмы Apple Стив Джобс со своей новой фирмой Next Computer создали компьютер Next и операционную систему Next Step.

    Фирма Philips разработала стандарт записи компакт-дисков CD-I (CD Interactiv).

    1989-й. Тим Бернерс-Ли (Tim Berners-Lee, Conseil Europeen pour la Recherche Nucleaire - CERN, Женева) предложил концепцию распределенной информационной системы с целью "объединения знаний человечества", которую он назвал "всемирной паутиной" (World Wide Web - WWW). Для её создания он объединил две существующие технологии - технологию IP-протоколов для передачи данных и технологию гипертекста (Hypertext Technology).

    1991-й. Создан первый браузер (Browser) - компьютерная программа просмотра гипертекста, работавший в режиме командной строки. Его применение позволило уже в 1992 году успешно реализовать предложенный проект, направленный в конечном итоге на создание "бесшовного информационного пространства" (Seamless Informational Area), охватывающего всю планету.

    1993-й. Компания Intel представила микропроцессор Pentium.

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

    1995-й. Главным событием в мире программного обеспечения персональных компьютеров стало создание универсальной многозадачной операционной системы Windows 95. Выпущенная в сентябре 1995 года система Windows 95 стала первой графической операционной системой для компьютеров IBM PC. Впоследствии эта операционная система получила своё развитие в Windows 98.

    Производители аппаратно-программного обеспечения изготавливают узлы и устройства так, чтобы они были совместимы с Windows 95(98). Теперь можно приобретать новые устройства и устанавливать их в компьютер, рассчитывая на то, что все прочие устройства и программы будут работать нормально. Фирма Microsoft в системе Windows 95 ввела новый стандарт самоустанавливающихся устройств (Plug and Play).

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

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

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

    Интерфейс между процессором, внутренними и внешними устройствами осуществляется с помощью шин и совокупности устанавливаемых на плате специальных микросхем (Chipset).

    Поколение Элементная база Быстродействие Программное обеспечение Применение Примеры
    1-е (1946-1959) Электронные лампы 10-20 тыс. операций/ сек Машинные языки Расчётные задачи ЭНИАК (США), МЭСМ (СССР), УРАЛ (СССР)
    2-е (1960-1969) Полупроводники 100-500 тыс. операций/ сек Алгоритмические языки, диспетчерские системы, пакетный режим Инженерные, на-учные, экономические задачи IВМ 701 (США), БЭСМ-6, БЭСМ-4 (СССР), Минск-22 (СССР)
    3-е (1970-1979) Интегральные микросхемы Порядка 1млн. операций/ сек Операционные системы, режим разделения времени АСУ, САПР, научно-технические задачи IBM 360 (США), ЕС 1030, 1060 (СССР)
    4-е (1980 - наст. время.) СБИС, микропроцессо-ры Десятки и сотни млн. операций/ сек Базы и банки данных Управление, коммуникации, АРМ, обработка текстов, графика ПЭВМ, серверы

    На плате размещается также специализированный блок (Basic Input/Output System - BIOS), который предназначен для хранения параметров конфигурации персонального компьютера, аппаратных драйверов и программы POST, проверяющей при включении компьютера работоспособность различный его устройств.

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

    (рис 3.19) Схема материнской платы персонального компьютера

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

    Программное обеспечение обычно разделяют на системное и прикладное.

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

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

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

    Суперкомпьютеры и кластеры

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

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

    Чаще всего авторство термина приписывается Д. Мишелю и С. Фернбачу, в конце 60-х годов XX века, работавшим в Ливерморской национальной лаборатории и компании Control Data Corporation. Тем не менее, известен факт, что ещё в 1920 году в газете New York World рассказывалось о "супервычислениях" (Super Computing), выполняемых при помощи уникального мощного табулятора IBM, собранного по заказу Колумбийского университета.

    Термин "суперкомпьютер" вошёл в общеупотребительный лексикон благодаря распространённости компьютерных систем американца Сеймура Крея - Control Data 6600, Control Data 7600, Cray-1, Cray-2, Cray-3 и Cray-4. (рис 3.20). С. Крей разрабатывал вычислительные машины, которые, по сути, становились основными вычислительными средствами правительственных, промышленных и академических научно-технических проектов США с середины 60-х годов до 1996 года.

    (рис 3.20) "Cray-2" - самый быстрый компьютер 90-х годов ХХ века

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

    На сегодняшний день суперкомпьютеры являются уникальными системами, создаваемыми "традиционными" лидерами компьютерного рынка, такими как IBM, Hewlett-Packard, NEC и другими, которые приобрели множество ранних компаний, вместе с их опытом и технологиями. Компания Cray Inc. по прежнему занимает достойное место в ряду производителей суперкомпьютерной техники.

    Большинство суперкомпьютеров 70-х годов ХХ века оснащались векторными процессорами. К началу и середине 80-х небольшое число (от 4 до 16) параллельно работающих векторных процессоров практически стало стандартным суперкомпьютерным решением. Типичный векторный компьютер включает в себя скалярный процессор целочисленной арифметики, функциональные блоки сложения и умножения чисел с плавающей точкой, векторный процессор и общую память. Это компьютеры, построенные по технологии < разделяемая память - один поток управления - много потоков данных > (<Shared Memory - Single Instruction - Multi Data>).

    Конец 80-х и начало 90-х годов охарактеризовались сменой магистрального направления развития суперкомпьютеров от векторно-конвейерной обработки данных к большому и сверхбольшому числу параллельно соединённых скалярных процессоров.

    Массивно-параллельные системы стали объединять в себе сотни и даже тысячи отдельных процессорных элементов, причём ими могли служить не только специально разработанные, но и общеизвестные и доступные в свободной продаже процессоры. Большинство массивно-параллельных компьютеров создавалось на основе мощных процессоров с архитектурой RISC (Reduced Instruction Set Computer), наподобие Power PC, или PA-RISC. Использование серийных микропроцессоров позволило не только гибко менять мощность установки в зависимости от потребностей и возможностей, но и значительно удешевить производство. Примерами суперкомпьютеров этого класса могут служить Intel Paragon, IBM SP, Сray T3D/T3E и ряд других.

    В ноябре 2002 года фирма Cray Inc. анонсировала решение Cray X1 с характеристиками 52,4 Тфлопс и 65,5 Тб ОЗУ (флопс - термин от английского словосочетания ), в который входят вычислительные системы, официально показавшие максимальную производительность. Его возглавила "Компьютерная модель Земли" (Earth Simulator) с результатом 35,86 Тфлопс (5120 процессоров), созданная одноименным японским центром и NEC. На втором - четвертом местах со значительным отставанием расположились решения ASCI (7,7; 7,7 и 7,2 Тфлопс). Они эксплуатируются Лос-Аламосской лабораторией ядерных исследований, а созданы Hewlett-Packard (первые два насчитывают по 4096 процессоров) и IBM (8192 процессора).

    представлен чемпион списка Тор-500 2013 года.

    (рис 3.21) Китайский суперкомпьютер Tianhe-2, июнь 2013 г.

    Однако уникальные решения с рекордными характеристиками обычно недешевы, поэтому и стоимость подобных систем никак не может быть сравнима со стоимостью систем, находящихся в массовом производстве и широко используемых в бизнесе. Прогресс в области сетевых технологий сделал свое дело: появились не слишком дорогие, но эффективные решения, основанные на коммуникационных технологиях. Это и предопределило появление кластерных вычислительных систем, фактически являющихся одним из направлений развития компьютеров с массовым параллелизмом (Massively Parallel Processing - MPP).

    Вычислительный кластер - это совокупность компьютеров, объединенных в рамках некоторой сети для решения крупной вычислительной задачи. В качестве узлов обычно используются доступные однопроцессорные компьютеры, двух- или четырехпроцессорные SMP-серверы (Symmetric Multi Processor). Каждый узел работает под управлением своей копии операционной системы, в качестве которой чаще всего используются стандартные операционные системы: Linux, NT, Solaris и т. п. Рассматривая крайние точки зрения, кластером можно считать как пару персональных компьютеров, связанных локальной 10-мегабитной сетью Ethernet, так и обширную вычислительную систему, создаваемую в рамках крупного проекта. Такой проект объединяет тысячи рабочих станций на базе процессоров Alpha, связанных вы-сокоскоростной сетью Myrinet, которая используется для поддержки параллельных приложений, а также сетями Gigabit Ethernet и Fast Ethernet для управляющих и служебных целей.

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

    На современном рынке представлено не так много поставщиков готовых крупных кластерных решений. Это связано, прежде всего, с доступностью комплектующих, легкостью построения самих систем, значительной ориентацией на свободно распространяемое про-граммное обеспечение, а также с уникальностью задач, решаемых с помощью кластерных технологий. В связи с этим многие корпоративные и университетские ИТ-команды оказались способными самостоятельно формировать свои кластерные сети. Среди наиболее известных поставщиков кластеров стоит отметить SGI, VALinux и Scali Computer.

    Летом 2000-го года Корнелльский университет (США) основал Консорциум по кластерным технологиям (ACCC - Advanced Cluster Computing Consortium), основная цель которого - координация работ в области кластерных технологий и помощь в осуществлении разработок в данной области. Ведущими компаниями, обеспечивающими инфраструктуру консорциума, стали ведущие производители компьютерного оборудования и программного обеспечения Dell, Intel и Microsoft. Среди других членов можно назвать Аргоннскую национальную лабораторию, Нью-Йоркский, Корнелльский и Колумбийский университеты, компании Compaq, Giganet, IBM, Kuck Associates и другие.

    Аналогично, в России в 2010 году при активном участии члена-корреспондента РАН Вл. В. Воеводина был организован Суперкомпьютерный консорциум университетов России. Цель создания Консорциума - использование научного потенциала Высшей школы России для развития и активного внедрения суперкомпьютерных технологий в образовании, науке, экономике, государственной и социальной жизни. Учредителями Консорциума стали крупные российские университеты, президентом - ректор МГУ, академик, вице-президент РАН В. А. Садовничий.

    Из интересных российских проектов следует отметить решение, реализованное в Санкт-Петербургском университете на базе технологии ): собранные кластеры могут использоваться и как полноценные независимые учебные классы, и как единая вычислительная установка, решающая крупную исследовательскую проблему. В Самарском научном центре пошли по пути создания неоднородного вычислительного кластера, в составе которого работают компьютеры на базе процессоров Alpha и Pentium III. В Санкт-Петербургском техническом университете собрана вычислительная установка на основе процессоров Alpha и сети Myrinet без использования локальных дисков на вычислительных узлах. В Уфимском государственном авиационном техническом университете проектируется кластер на базе двенадцати Alpha-станций, сети Fast Ethernet и ОС Linux.

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

    (рис 3.22) Научные задачи и масштаб ExaScale

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

    Компьютеры следующего поколения

    Размеры вычислительных устройств постоянно уменьшаются. Когда-то предполагалось, что более мощные машины будут требовать больше места для периферийных устройств, памяти и т. д. Это предположение оказалось неверным. В 1965 году Гордон Мур сформулировал действующее и сейчас правило, названное законом Мура, согласно которому производительность вычислительных систем удваивается каждые восемнадцать месяцев [). Как следствие из этого закона можно вывести темпы миниатюризации отдельного транзистора.

    (рис 3.23) Копия записки с формулировкой закона Г.Мура

    Ежегодное уменьшение на 10-30 % элементарных вычислительных модулей приведет в ближайшие годы к практическому использованию устройств с элементарными модулями размером примерно в 100-200 ангстрем (10-20 нм, или 0,01-0.02 мк). Другими словами, быстрое развитие цифровых электронных технологий приводит к тому, что размер элементарного вычислительного устройства приближается к размеру молекулы или даже атома.

    На таком уровне законы классической физики перестают работать и начинают действовать квантовые законы, которые для многих важных динамических задач еще не описаны теоретически. Для описания работы таких устройств не применимы классические объекты и методы информатики. В частности, в силу квантового принципа неопределенности Гейзенберга, в таких микроскопических системах нет аналога понятию "bit". Вместо двоичных цифр новые устройства будут оперировать с "волновыми функциями" ("квантовыми битами" - q-bit). В некотором смысле информатика в своем развитии в недалеком будущем должна будет перейти от "арифметики" к "функциональному анализу". С одной стороны, это обуславливает переосмысление и замену основных классических (не квантовых) алгоритмов, а с другой стороны, дает возможность вплотную подступиться к решению проблем "искусственного интеллекта".

    В научно-исследовательских лабораториях крупнейших университетов и транснациональных ИТ-компаний рассматриваются несколько возможных основных направлений создания элементной базы нового поколения вычислительных устройств [32]:

  • на принципах ядерного магнитного или электронного парамагнитного резонанса;
  • на атомных ионах, помещенных в ловушки Паули или Пеннинга;
  • с использованием явления сверхпроводимости;
  • на квантовых точках в полупроводниковых неорганических системах;
  • на основе оптической симуляции квантовой логики или на металло-биологической гибридной основе.
  • Многие из рассмотренных направлений имеют существенные недостатки, которые в некоторых случаях приводят к принципиальной невозможности создания конкурентоспособного вычислительного устройства. Характерным примером является проект корпорации IBM, которая в 1999 году только на первый этап разработки молекулярной элементной базы нового поколения выделила 17 млрд. долларов на 5 лет. В результате был создан макет, оперирующий с 5 или 7 квантовыми битами, и весом около 7 тонн, способный решать только примитивные задачи типа разложения числа 15 на два множителя 5 и 3.

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

    Страницы:

    3.1. Сферы применения информационных технологий

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

    Сферы применения информационных технологий в современном обществе чрезвычайно велики. В таблице 3.1 приведены основные и производные сферы использования ИТ.

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

    Сферы применения информационных технологий
    Экономика Политика Культура Наука
    Производственные отношения Государство Эпохи Теория
    Производство Власть Уклады Методы
    Финансы Общество Традиции Средства
    Бизнес-правила Международные и региональные организации и отношения Религия Систематизация
    Взаимодействие Партии Культурные ценности Научно-технические революции
    Продукт Общественные организации Этика Применение
    Услуга Искусство Результаты
    Система Образование Последствия
    Качество Спорт
    Потребитель

    Внедрение персонального компьютера в информационную сферу и применение телекоммуникационных средств связи определили новый этап развития ИТ и, как следствие, изменение названия технологии за счёт присоединения одного из символов: "новая", "компьютерная" или "современная" (табл. 3.2).

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

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

    3.2. Обработка информации

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

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

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

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

    Следует отметить, что независимо от того, как "глубоко" будет отодвинута внутренняя граница, рецепцию всегда можно рассматривать как процесс классификации.

    Формализованная модель обработки информации

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

    ИТ, как и любые другие технологии, должны отвечать следующим требованиям:

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

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

    (рис 3.1) Технологический процесс переработки информации в виде иерархической структуры по уровням

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

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

    Предположим вам надо сложить 1000 последовательных данных измерений. Заводим специальный счетчик-сумматор и присваиваем ему значение 0. Для каждого из данных надо получить результат измерений и добавить его к счетчику, то есть вам надо сделать 2001 операцию при "ручном" счете. Другой вариант - написать шесть инструкций для машины:

  • Завести счетчик-сумматор и присвоить ему значение 0.
  • Завести индекс (номер) текущей операции и присвоить ему значение 0.
  • Получить новый результат измерений.
  • Добавить его к счетчику-сумматору.
  • Увеличить на 1 индекс текущей операции.
  • Если он меньше 1000, то перейти к шагу 3.
  • За прошедшее время существенно усложнились задачи обработки информации, развились способы формулировки и записи правил работы машин (программ работы). Вычислительные устройства превратились в компьютеры, а правила работы - в компьютерные программы.

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

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

    Составителями программ являются программисты. Большая часть работы программиста связана с написанием и отладкой исходного кода на одном из языков программирования.

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

    Единственный язык, напрямую выполняемый процессором - это машинный язык (также называемый машинным кодом). Изначально все программисты прорабатывали весь алгоритм в машинном коде, но сейчас эта трудная работа уже не делается. Вместо этого программисты пишут исходный код на языках высокого уровня (например, С, С++, С#, Java), а компьютер, используя компилятор или интерпретатор и уточняя все детали, транслирует его в один или несколько этапов, в машинный код, готовый к исполнению на целевом процессоре. Если требуется полный низкоуровневый контроль над системой, программисты пишут программу на языке ассемблера, мнемонические инструкции которого преобразуются один к одному в соответствующие инструкции машинного языка целевого процессора.

    В некоторых языках вместо машинного кода генерируется интерпретируемый двоичный код "виртуальной машины", также называемый байт-кодом (byte-code). Такой подход применяется в языке Forth, некоторых реализациях языков Lisp, Java, Perl, Python, а также в языках платформы .NET от Microsoft.

    Типичный процесс разработки программ состоит, в общем, из семи этапов:

  • постановка задачи;
  • формализация;
  • выбор или составление алгоритма;
  • специфицирование;
  • программирование;
  • компиляция (трансляция);
  • отладка и тестирование;
  • запуск в эксплуатацию.
  • Эксплуатируемая программа имеет дело с данными различных типов, предназначенных для решения конкретных задач.

    3.3. Хранение информации. Базы и хранилища данных

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

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

    ).

    (рис 3.2) Общая схема базы данных

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

    Система управления базами данных, СУБД (Data Base Management System) - специализированная программа или комплекс программ, предназначенные для манипулирования базой данных. Для создания информационной системы и управления ею СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор.

    СУБД часто упрощённо или ошибочно называют "базой данных". Нужно различать набор данных (собственно БД) и программное обеспечение, предназначенное для организации и ведения баз данных (СУБД).

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

    Организация структуры БД формируется, исходя из следующих соображений:

  • адекватность описываемому объекту/системе - на уровне концептуальной и логической модели;
  • удобство использования для ведения учёта и анализа данных - на уровне так называемой физической модели.
  • Виды концептуальных и логических моделей БД:

  • картотеки;
  • сетевые;
  • иерархические;
  • реляционные;
  • дедуктивные;
  • объектно-ориентированные;
  • многомерные.
  • На уровне физической модели электронная БД представляет собой файл или набор данных в dbf-форматах приложений Excel, Access, либо в специализированном формате конкретной СУБД. Также в СУБД в понятие физической модели включают специализированные виртуальные понятия, существующие в её рамках - таблица, табличное пространство, сегмент, куб, кластер и т. д.

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

    Реляционная база данных - база данных, основанная на реляционной модели. Слово "реляционный" происходит от английского "relation" (отношение).

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

    Кратко особенности реляционной базы данных можно сформулировать следующим образом:

  • данные хранятся в таблицах, состоящих из столбцов ("атрибутов") и строк ("записей");
  • на пересечении каждого столбца и строчки стоит в точности одно значение;
  • у каждого столбца есть своё имя, которое служит его названием, и все значения в одном столбце имеют один тип;
  • запросы к базе данных возвращают результат в виде таблиц, которые тоже могут выступать как объект запросов;
  • строки в реляционной базе данных неупорядочены, упорядочивание производится в момент формирования ответа на запрос.
  • Общепринятым стандартом языка работы с реляционными базами данных в настоящее время является язык структурированных запросов (Structured Query Language - SQL). Это универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Вопреки существующим заблуждениям, SQL является информационно-логическим языком, а не языком программирования.

    SQL основывается на реляционной алгебре. Язык SQL делится на три части:

  • операторы определения данных;
  • операторы манипуляции данными (insert, select, update, delete);
  • операторы определения доступа к данным.
  • Основные функции системы управления базами данных:

  • управление данными во внешней памяти (на различных носителях);
  • управление данными в оперативной памяти;
  • журналирование изменений и восстановление базы данных после сбоев;
  • поддержка языков БД (язык определения данных, язык манипулирования данными, язык определения доступа к данным).
  • Обычно современная СУБД содержит следующие компоненты (рис 3.3):

  • ядро, которое отвечает за управление данными во внешней и оперативной памяти и журналирование;
  • процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода;
  • подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД.
  • сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.
  • (рис 3.3) Основные компоненты СУБД

    По типу управляемой базы данных СУБД разделяются на: иерархические, реляционные, объектно-реляционные, объектно-ориентированные, сетевые.

    По архитектуре организации хранения данных:

  • локальные СУБД (все части локальной СУБД размещаются на одном компьютере);
  • распределенные СУБД (части СУБД могут размещаться на двух и более компьютерах).
  • Классификация СУБД по способу доступа к БД:

  • файл-серверные;
  • клиент-серверные;
  • трехзвенные;
  • встраиваемые.
  • Файл-серверные СУБД. Архитектура "файл-сервер" не имеет сетевого разделения компонентов диалога и использует компьютер для функции отображения, что облегчает построение графического интерфейса. "Файл-сервер" только извлекает данные из файлов, так что дополнительные пользователи добавляют лишь незначительную нагрузку на центральный процессор, и каждый новый клиент добавляет вычислительную мощность сети. Минус - высокая загрузка сети. На данный момент файл-серверные СУБД считаются устаревшими. Примеры: Microsoft Access, MySQL (до версии 5.0).

    Клиент-серверные СУБД. Такие СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера. Клиент-серверные СУБД, в отличие от файл-серверных, обеспечивают разграничение доступа между пользователями и меньше загружают сеть и клиентские машины. Сервер является внешней по отношению к клиенту программой, и по надобности его можно заменить другим. Недостаток клиент-серверных СУБД в самом факте существования сервера (что плохо для локальных программ - в них удобнее встраиваемые СУБД) и больших вычислительных ресурсах, потребляемых сервером. Примеры: Firebird, In-terbase, MS SQL Server, Oracle, DB2, PostgreSQL, MySQL (старше версии 5.0).

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

    Встраиваемая СУБД - это, как правило, "библиотека", которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине. Доступ к данным может происходить через SQL либо через особые функции СУБД. Встраиваемые СУБД быстрее обычных клиент-серверных и не требуют установки сервера, поэтому востребованы в локальном ПО, которое имеет дело с большими объёмами данных - например, геоинформационные системы (Geographic Informational System - GIS). Примеры: SQLite, BerkeleyDB, один из вариантов Firebird, один из вариантов MySQL.

    В общем случае СУБД могут быть классифицированы в системе координат {Неоднородность - Автономность - Распределенность} (рис 3.4).

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

    (рис 3.4) Классификация СУБД в системе НАР

    Индустрия создания баз данных и СУБД берет свое начало в 60-х годах прошлого века и к настоящему времени достаточно развита, однако понятие "хранилище данных" в современном понимании его появилось относительно недавно. Идея хранилищ данных оказалось востребованной, так как во многих видах государственной, деловой, научной, социальной деятельности необходимы тематически объединенные и исторически очищенные совокупности данных, при этом постоянно возрастала потребность:

  • в более дешевых данных;
  • в точных и структурированных данных;
  • в большей оперативности получения и обработки данных;
  • в интегрированных данных.
  • К концу 80-х годов, когда была в полной мере осознана необходимость интеграции корпоративной информации и надлежащего управления этой информацией, появились технические возможности для создания соответствующих систем, которые первоначально были названы "хранилищами информации" (Information Warehouse - IW). И лишь в 90-е годы, с выходом книги Билла Инмона, хранилища получили свое нынешнее наименование "хранилища данных" (Data Warehouse - DW) [25].

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

    В основе концепции хранилищ данных лежат следующие основополагающие идеи:

  • интеграция ранее разъединенных детализированных данных (исторические архивы, данные из традиционных систем обработки документов, разрозненных баз данных, данные из внешних источников) в едином хранилище данных;
  • тематическое и временнОе структурирование, согласование и агрегирование;
  • разделение наборов данных, используемых для операционной (производственной) обработки, и наборов данных, используемых для решения задач анализа.
  • Данные, помещаемые в хранилище, должны отвечать определенным требованиям - предметной ориентированности, интегрированности, поддержки хронологии и неизменяемости (табл. 3.3 (3.3.1)).

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

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

    Понятие хранилище данных в первоначальном понимании было основано на понятии распределенной витрины данных (Distributed Data Mart - DDM). Поэтому в классическом исполнении хранилище данных было, прежде всего, репозиторием (сквозной базой данных) данных и информации предприятия.

    (рис 3.5) Схема организации данных в хранилище

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

    С точки зрения архитектурного решения такое хранилище данных реализует свои функции через подмножество зависимых витрин данных (рис 3.5).

    Достоинствами архитектуры классического хранилища данных являются:

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

    В связи с этим возникло понимание того, что хранилище, помимо механизмов размещения и извлечения данных (On Line Trans-actional Processing - OLTP), репозитория и витрин, должно иметь соответствующее пространство для организации "сырых" данных и их многомерного анализа в режиме реального времени (On Line Analytical Processing - OLAP).

    3.4. Распределенные системы обработки данных

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

    (рис 3.6) Пример использования технологий распределенной обработки данных - DDP

    ).

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

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

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

    Способы конкретной организации процессов обработки и технические решения чрезвычайно разнообразны, однако архитектура таких систем является, как правило, двух- или трёхзвенной архитектурой "клиент-сервер" (Client-Server Architecture - CSA). В предыдущем параграфе было сказано несколько слов о клиент-серверных СУБД. Рассмотрим эту архитектуру подробнее.

    Технологии "клиент-сервер"

    Современная распределенная вычислительная система (сеть) является сложным комплексом взаимосвязанных программных и аппаратных компонентов (рис 3.7).

    (рис 3.7) Вычислительная сеть как сложный комплекс взаимосвязанных программных и аппаратных компонентов

    Этот комплекс может быть описан многослойной моделью, которая должна соответствовать общему назначению сети: компьютеры, коммуникационное оборудование, операционные системы, сетевые приложения [26].

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

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

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

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

    Архитектура "Клиент-сервер" - это модель взаимодействия компьютеров в сети. Как правило, один компьютер в сети располагает информационно-вычислительными ресурсами, такими как мощные процессоры, программные приложения, базы данных и различные сервисы. Другие же компьютеры пользуются ими (рис 3.8). Компьютер, управляющий тем или иным ресурсом, принято называть сервером этого ресурса (Resource Server - RS), а компьютер, который пользуется этим ресурсом - клиентом (Clients). Конкретный сервер характеризуется видом ресурса, которым он владеет. Если используемым ресурсом являются базы данных, то речь идет о сервере баз данных, назначением которого является обслуживание запросов клиентов по выдаче или преобразованию данных; если файловая система или система пересылки сообщений, то говорят о файловом или почтовом сервере.

    (рис 3.8) Архитектура "клиент-сервер" как модель взаимодействия компьютеров в сети

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

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

  • компонент ввода и представления данных (Data Input/ Presentation);
  • прикладной компонент (Business Application), поддерживающий функции, необходимые для выполнения действий в данной предметной области;
  • компонент доступа к информационным ресурсам (Resource Acces) или менеджер ресурсов (Resource Manager), поддерживающий глобальные функции хранения и управления данными (базами данных, файловыми и почтовыми системами и т.д.).
  • Различия в реализации приложений в рамках технологии "клиент-сервер" определяются тем, какие механизмы используются для реализации функций всех трех групп и как логические компоненты распределяются между компьютерами в сети. Выделяются три подхода, каждый из которых реализован в соответствующей модели:

  • доступа к удаленным данным (Remote Date Access - RDA);
  • сервера базы данных (DateBase Server - DBS);
  • сервера приложений (Application Server - AS).
  • В модели RDA реализация представления данных и прикладного компонента совмещены и выполнятся на компьютере-клиенте. Этот компьютер поддерживает как функции ввода и отображения данных, так и чисто прикладные функции. Доступ к удаленным информационным ресурсам обеспечивается, как правило, с помощью специального языка запросов (Structured Querry Language - SQL) - если речь идет о базах данных; или вызовами функций специальных библиотек - если имеется соответствующий интерфейс (Application Program Interface - API).

    Запросы направляются по сети удаленному компьютеру (например, серверу базы данных), который обрабатывает и выполняет запросы и возвращает клиенту блоки данных. Говоря о таком виде архитектуры "клиент-сервер" в большинстве случаев имеют в виду модель, называемую "толстым клиентом" (рис 3.9).

    (рис 3.9) Архитектура "клиент-сервер". Модель "толстого" клиента (RDA-модель)

    ).

    (рис 3.10) Модель доступа к удаленным данным и сервисам (DBS-модель)

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

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

    В ).

    (рис 3.11) Модель сервера приложений (AS-модель)

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

    RDA и DBS модели реализуют двухзвенную схему разделения функций. В RDA-модели прикладные функции приданы программе-клиенту, в DBS-модели ответственность за их выполнение берет на себя ядро СУБД. В первом случае прикладной компонент сливается с компонентом представления, во втором - интегрируется в компонент доступа к информационным ресурсам. Напротив, в AS-модели реализована классическая трехзвенная схема разделения функций, когда прикладной компонент выделен как важнейший элемент приложения. Для его реализации используются универсальные механизмы многозадачной операционной системы и стандартизованные интерфейсы для взаимодействия с двумя другими компонентами. Собственно, из этой особенности AS-модели и вытекают ее преимущества, которые имеют важнейшее значение для чисто практической деятельности по организации коллективной работы в локальной сети или распределенной работы с удаленными базами данных или сервисными приложениями через Internet.

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

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

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

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

    В соответствии с эталонной семиуровневой моделью взаимодействия открытых систем (Reference Model of Open System Interconnection - RM OSI) в сетях коммутации пакетов для передачи данных между несмежными компьютерными системами создается сетевая платформа, образуемая физическими средствами соединения, физическим, канальным и сетевым уровнями. Оконечные системы частично погружены в эту платформу, а над ней располагаются только 4-7 уровни этих систем. На границе сетевого и транспортного уровня прикладные процессы передают друг другу пакеты данных.

    (рис 3.12) Передача данных между смежными системами на основе физической платформы

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

    Так, если три компьютера однозначно связываются двумя способами, то для четырех компьютеров можно предложить уже шесть топологически различных конфигураций (при условии однотипности компьютеров). Множество возможных конфигураций объединяются в две основные группы: полносвязные (Fully Connected Topology) и неполносвязные (Incompletely Connected Topology) (рис 3.13).

    (рис 3.13) Типы конфигураций компьютеров в сети

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

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

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

    (рис 3.14) Варианты соединений, основанные на неполносвязных топологиях

    Программно-аппаратные устройства распределенной обработки данных являются составной частью информационной инфраструктуры высокотехнологичных компаний (рис 3.6, рис 3.7). На сегодняшний день на российском рынке представлены многочисленные продукты зарубежных и российских производителей для реализации соответствующих функций в распределенных корпоративных системах [28, 29].

    Хранение данных при распределенной обработке

    Распределенная обработка данных в обязательном порядке предполагает наличие банков и баз данных. Но база данных - это не место, куда просто складывают данные: ими нужно пользоваться, актуализировать, изменять форматы и связи и совершать множество других действий. Если бессистемно наполнять базу информацией, то через некоторое время ею невозможно будет пользоваться - времени на поиск нужных данных будет уходить всё больше и больше, пространство базы переполнится. В связи с этим данные необходимо "очищать" и структурировать, а для эффективной работы с ними необходимы системы управления работой баз данных (Data Base Management System - DBMS).

    На сегодняшний день существует два основных подхода к архитектуре хранилищ данных [) и хранилище данных с архитектурой шины Ральфа Кимболла (рис 3.16).

    (рис 3.15) Корпоративная информационная фабрика Б. Инмона

    Работа корпоративной информационной фабрики (Corporate Information Factory - CIF) начинается со скоординированного извлечения данных из источников. После этого загружается реляционная база данных, содержащая соответствующие очищенные и согласованные ("атомарные") данные. Получившееся нормализованное хранилище используется для того, чтобы наполнить информацией дополнительные репозитории презентационных данных, т.е. данных, подготовленных для анализа.

    Эти репозитории, в частности, включают специализированные хранилища для изучения и добычи данных на базе применения технологий извлечения полезной информации из "сырых данных" (Data Mining - DM). После этого основной и, в случае необходимости, дополнительные репозитории используются для формирования витрин данных (Data Mart).

    (рис 3.16) Хранилище данных с архитектурой шины Р. Кимболла

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

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

  • использование реляционной модели организации атомарных данных и пространственной - для организации суммарных данных;
  • использование итеративного или "спирального" подхода при создании больших хранилищ данных, т.е. "строительство" не сразу, а по частям. Это позволяет при необходимости вносить изменения в небольшие блоки данных или программных кодов и избавляет от необходимости перепрограммировать значительные объемы данных. То же самое можно сказать и о потенциальных ошибках: они также будут локализованы в пределах сравнительно небольшого массива без риска испортить все данные хранилища разом;
  • организации атомарных данных, что обеспечивает высокую степень детальности интегрированных данных и, соответственно, предоставляет корпорациям широкие возможности для манипулирования ими и изменения формата и способа представления данных по мере необходимости;
  • хранилище данных - не является механической коллекцией разрозненных витрин данных - это концептуально и физически целостный объект.
  • Альтернативным подходом к архитектуре хранилищ данных, является подход Р. Кимболла - хранилище с архитектурой шины (Data Warehouse Bus - DWB) (рис 3.16). В этой модели первичные данные преобразуются в информацию, пригодную для использования, на этапе подготовки данных. При этом обязательно принимаются во внимание требования к скорости обработки информации и качеству данных.

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

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

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

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

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

  • использование двухуровневой архитектуры, которая включает стадию подготовки данных, недоступную для конечных пользователей, и хранилище данных с архитектурой шины как таковое. В состав последнего входят несколько витрин атомарных данных, несколько витрин агрегированных данных и персональная витрина данных. Заметим, что оно не содержит одного физически целостного или централизованного хранилища данных - это даёт известную гибкость при использовании данных;
  • использование пространственной модели организации данных с архитектурой "звезда" (Star Scheme).
  • Таким образом, хранилище данных с архитектурой шины обладает следующими характеристиками - такое хранилище:

  • является пространственным;
  • включает как данные о транзакциях, так и суммарные данные;
  • включает витрины данных, посвященные только одной предметной области или имеющие только одну таблицу фактов (Fact Table);
  • может содержать множество витрин данных в пределах одной базы данных, отражающих показатели бизнес-процессов.
  • Хранилище данных Р.Кимболла не является единым физическим репозиторием (в отличие от подхода Б.Инмона). Это виртуальное хранилище - коллекция витрин данных, каждая из которых имеет архитектуру типа "звезда".

    (рис 3.17) Схема типизированного корпоративного хранилища данных

    На рис 3.17 показана схема типизированного корпоративного хранилища данных. Вопросы его проектирования, выбора архитектуры, реализации в том или ином виде (CIF или DWB) - это серьезный проект корпоративного масштаба, охватывающий все отделы и обслуживающий нужды всех пользователей корпорации.

    3.5. Развитие инструментальных средств обработки информации

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

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

    (рис 3.18) Последовательность технологических эпох ХХ века

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

    Предыстория ЭВМ

    Древнейшим счетным инструментом, который сама природа предоставила в распоряжение человека, была его собственная рука. Понятие числа и фигуры взято не откуда-то, а из действительного мира. "Десять пальцев, на которых люди учились считать (производить первую арифметическую операцию), представляют собой все что угодно, только не продукт свободного творческого разума" (http://www.junior.ru/wwwexam/history/frame.htm).

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

    От пальцевого счета берет начало пятеричная система счисления (одна рука), десятеричная (две руки), двадцатеричная (пальцы рук и ног). У многих народов пальцы рук остаются инструментом счета и на более высоких ступенях развития.

    Хорошо был известен пальцевый счет в Риме. По свидетельству древнеримского историка Плиния-старшего на главной римской площади Форуме была воздвигнута гигантская фигура двуликого бога Януса. Пальцами правой руки он изображал число 300, пальцами левой - 55. Вместе это составляло число дней в году в римском календаре.

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

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

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

    Около 500 года нашей эры: изобретение абака.

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

    В Древнем Риме абак появился, вероятно, в V-VI вв. н. э. и назывался calculi или abakuli. Изготовлялся абак из бронзы, камня, слоновой кости и цветного стекла. До нашего времени дошёл бронзовый римский абак, на котором камешки передвигались в вертикально прорезанных желобках. Внизу помещались камешки для счета до пяти, а в верхней части имелось отделение для камешка, соответствующего пятёрке.

    Суаньпань. Китайская разновидность абака (суань-пань) - появилась в VI веке н. э.; современный тип этого счётного прибора был создан позднее, по-видимому, в XII столетии. Суаньпань представляет собой прямоугольную раму, в которой параллельно друг другу протянуты проволоки или веревки числом от девяти и более; перпендикулярно этому направлению суаньпань перегорожен на две неравные части. В большом отделении ("земля") на каждой проволоке нанизано по пять шариков, в меньшем ("небо") - по два. Проволоки соответствуют десятичным разрядам. Из рисунка видно, что суаньпань является практически точным аналогом инструмента "конторские счёты".

    Соробан - японский абак, происходит от китайского суаньпаня, который был завезен в Японию в XV-XVI веках. Соробан проще своего предшественника, у него на "небе" на один шарик меньше, чем у суаньпаня.

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

    Впрочем, в XVI веке термина "счеты" еще не существовало, и прибор именовался "дощаным счетом". Один из ранних образцов такого "счета" представлял собой два соединенных ящика, одинаково разделенных по высоте перегородками. В каждом ящике - два счетных поля с натянутыми веревками или проволочками. На верхних 10 веревках по 9 косточек (четок), на 11-й их - четыре, на остальных веревках - по одной.

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

    1614-й. Изобретение логарифмов шотландцем Джоном Непером. Вначале были составлены таблицы логарифмов, а затем, после смерти Непера, была изобретена логарифмическая линейка.

    1642-й. Француз Блез Паскаль изобрёл и построил суммирующую машину - прототип арифмометра. В этой машине каждому десятичному разряду соответствовало колёсико с нанесёнными на него делениями от 0 до 9. Соседние колёсики были механически связаны так, что избыток над 9 колёсико передавало следующему, поворачивая его на 1. Этот прибор, практически без изменений, просуществовал и был в использовании более трёх столетий!

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

    1890-й. Американец Герман Холлерит построил статистический табулятор с целью ускорить обработку результатов переписи населения. Машина Холлерита имела большой успех, на её основе было создано преуспевающее предприятие, которое в 1924 году превратилось в фирму IBM - крупнейшего производителя современной вычислительной техники.

    1936-й. Англичанин Алан Тьюринг опубликовал основополагающую работу "О вычислимых числах", заложив теоретические основы теории алгоритмов.

    Поколения ЭВМ

    1943-й. Под руководством американца Говарда Айкена по заказу и при поддержке фирмы IBM создан Mark-1 - первый программно-управляемый компьютер. Он был построен на электромеханических реле, а программа обработки данных вводилась с перфоленты.

    1945-й. Американец Джон фон Нейман в отчёте "Предварительный доклад о машине Эниак" сформулировал принципы работы и компоненты современного программно-управляемого компьютера.

    Он определил четыре основные компоненты:

  • арифметико-логическое устройство (АЛУ);
  • устройство управления;
  • память;
  • устройство ввода-вывода информации.
  • С этих пор архитектура подобных компьютеров (а подавляющее большинство современных компьютеров построено в соответствие с ней) называется фон-неймановской.

    1946-й. Американцы Джон Преспер Экерт и Джон Уильям Мочли создали первый мощный электронно-цифровой компьютер "Эниак" (ENIAC - Electronic Numerical Integrator and Calculator), в 1000 раз более быстродействующий, чем Mark-1.

    1956-й. FORTRAN - первый реализованный язык программирования высокого уровня. Создан в период с 1954 по 1957 годы группой программистов под руководством Джона Бэкуса (John Backus) в корпорации IBM (язык Планкалкюль, претендующий на пальму первенства, был изобретён ещё в 1945 году, но не был реализован вплоть до 2000 года). Название FORTRAN является аббревиатурой от FORmula TRANslator, то есть переводчик формул. Язык Фортран широко используется до сих пор - в первую очередь для научных и инженерных вычислений.

    1958-й. Американец Джек Килби сконструировал первую интегральную схему.

    1960-й. Разработан алгоритмический язык АЛГОЛ-60.

    1963-й. Профессоры Дартмутского колледжа Томас Курт (Thomas E. Kurtz) и Джон Кемени (John G. Kemeny) разработали алгоритмический язык Бейсик (BASIC - Beginner's All-purpose Symbolic Instruction Code - универсальный код символических инструкций для начинающих; Basic - основной, базовый) - семейство высокоуровневых языков программирования. Язык предназначался для обучения программированию и получил широкое распространение в виде различных диалектов, прежде всего, как язык для домашних микрокомпьютеров.

    1964-й. 7 апреля фирма IBM объявила о создании семейства компьютеров System-360. Это был важнейший шаг к унификации, совместимости и стандартизации компьютеров. В этом же году в серии статей о науке и технике будущего в английском журнале "New Scientist" впервые появилось словосочетание "персональный компьютер" (Personal Computer - PC).

    1970-й. Швейцарец Никлаус Вирт разработал язык программирования Паскаль, получивший впоследствии широкое распространение в обучении и программировании.

    1971-й. Под руководством инженера фирмы Intel Теда Хоффа создан первый микропроцессор - 4-х разрядный 4004 или, как его назвали, "компьютер в одном кристалле". Он состоял из 2250 транзисторов и выполнял все функции центрального процессора универсального компьютера.

    1974-й. На компьютерном рынке появился микрокомпьютер Altair на базе Intel 8080. Мирная жизнь рынка, где царили IBM и DEC, была нарушена маленькой компанией MITS из Альбукерке, предложившей машину для каждого. Хотя Altair с большой натяжкой можно было назвать компьютером - MITS предлагала изделие типа "сделай сам", комплект, из которого терпеливый пользователь с помощью паяльника, в конце концов, мог получить довольно сложное в эксплуатации устройство. Однако не в последнюю очередь благодаря широкой рекламе, желающих заполучить собственный компьютер за вполне доступную (400 долл.) цену оказалось предостаточно.

    1975-й. Студенты Пол Аллен и Билл Гейтс реализовали интерпретатор языка Бейсик для персонального компьютера Altair. Они же основали компанию Microsoft, являющуюся сегодня крупнейшим производителем программного обеспечения персональных компьютеров.

    Создан микропроцессор MOP-technology 6502, он состоял из 4300 транзисторов и широко использовался в персональных компьютерах того времени.

    Фирма IBM представила на рынок один из первых лазерных принтеров IBM 3800.

    1977-й. В этом году в массовое производство были запущены три персональных компьютера: Apple-2 (Apple Computer) на базе процессора 6502, PET (Commodore) на базе процессора 8088, TRS-80 (Tendy Corporation) на базе процессора Z80.

    1983-й. Фирма Apple Computer построила персональный компьютер Apple Lisa - первый компьютер, управляемый манипулятором "мышь".

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

    1985-й. Первая попытка Microsoft реализовать многозадачную операционную среду для персонального компьютера на основе графического интерфейса Windows 1.01.

    1988-й. Основатель фирмы Apple Стив Джобс со своей новой фирмой Next Computer создали компьютер Next и операционную систему Next Step.

    Фирма Philips разработала стандарт записи компакт-дисков CD-I (CD Interactiv).

    1989-й. Тим Бернерс-Ли (Tim Berners-Lee, Conseil Europeen pour la Recherche Nucleaire - CERN, Женева) предложил концепцию распределенной информационной системы с целью "объединения знаний человечества", которую он назвал "всемирной паутиной" (World Wide Web - WWW). Для её создания он объединил две существующие технологии - технологию IP-протоколов для передачи данных и технологию гипертекста (Hypertext Technology).

    1991-й. Создан первый браузер (Browser) - компьютерная программа просмотра гипертекста, работавший в режиме командной строки. Его применение позволило уже в 1992 году успешно реализовать предложенный проект, направленный в конечном итоге на создание "бесшовного информационного пространства" (Seamless Informational Area), охватывающего всю планету.

    1993-й. Компания Intel представила микропроцессор Pentium.

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

    1995-й. Главным событием в мире программного обеспечения персональных компьютеров стало создание универсальной многозадачной операционной системы Windows 95. Выпущенная в сентябре 1995 года система Windows 95 стала первой графической операционной системой для компьютеров IBM PC. Впоследствии эта операционная система получила своё развитие в Windows 98.

    Производители аппаратно-программного обеспечения изготавливают узлы и устройства так, чтобы они были совместимы с Windows 95(98). Теперь можно приобретать новые устройства и устанавливать их в компьютер, рассчитывая на то, что все прочие устройства и программы будут работать нормально. Фирма Microsoft в системе Windows 95 ввела новый стандарт самоустанавливающихся устройств (Plug and Play).

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

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

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

    Интерфейс между процессором, внутренними и внешними устройствами осуществляется с помощью шин и совокупности устанавливаемых на плате специальных микросхем (Chipset).

    Поколение Элементная база Быстродействие Программное обеспечение Применение Примеры
    1-е (1946-1959) Электронные лампы 10-20 тыс. операций/ сек Машинные языки Расчётные задачи ЭНИАК (США), МЭСМ (СССР), УРАЛ (СССР)
    2-е (1960-1969) Полупроводники 100-500 тыс. операций/ сек Алгоритмические языки, диспетчерские системы, пакетный режим Инженерные, на-учные, экономические задачи IВМ 701 (США), БЭСМ-6, БЭСМ-4 (СССР), Минск-22 (СССР)
    3-е (1970-1979) Интегральные микросхемы Порядка 1млн. операций/ сек Операционные системы, режим разделения времени АСУ, САПР, научно-технические задачи IBM 360 (США), ЕС 1030, 1060 (СССР)
    4-е (1980 - наст. время.) СБИС, микропроцессо-ры Десятки и сотни млн. операций/ сек Базы и банки данных Управление, коммуникации, АРМ, обработка текстов, графика ПЭВМ, серверы

    На плате размещается также специализированный блок (Basic Input/Output System - BIOS), который предназначен для хранения параметров конфигурации персонального компьютера, аппаратных драйверов и программы POST, проверяющей при включении компьютера работоспособность различный его устройств.

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

    (рис 3.19) Схема материнской платы персонального компьютера

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

    Программное обеспечение обычно разделяют на системное и прикладное.

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

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

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

    Суперкомпьютеры и кластеры

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

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

    Чаще всего авторство термина приписывается Д. Мишелю и С. Фернбачу, в конце 60-х годов XX века, работавшим в Ливерморской национальной лаборатории и компании Control Data Corporation. Тем не менее, известен факт, что ещё в 1920 году в газете New York World рассказывалось о "супервычислениях" (Super Computing), выполняемых при помощи уникального мощного табулятора IBM, собранного по заказу Колумбийского университета.

    Термин "суперкомпьютер" вошёл в общеупотребительный лексикон благодаря распространённости компьютерных систем американца Сеймура Крея - Control Data 6600, Control Data 7600, Cray-1, Cray-2, Cray-3 и Cray-4. (рис 3.20). С. Крей разрабатывал вычислительные машины, которые, по сути, становились основными вычислительными средствами правительственных, промышленных и академических научно-технических проектов США с середины 60-х годов до 1996 года.

    (рис 3.20) "Cray-2" - самый быстрый компьютер 90-х годов ХХ века

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

    На сегодняшний день суперкомпьютеры являются уникальными системами, создаваемыми "традиционными" лидерами компьютерного рынка, такими как IBM, Hewlett-Packard, NEC и другими, которые приобрели множество ранних компаний, вместе с их опытом и технологиями. Компания Cray Inc. по прежнему занимает достойное место в ряду производителей суперкомпьютерной техники.

    Большинство суперкомпьютеров 70-х годов ХХ века оснащались векторными процессорами. К началу и середине 80-х небольшое число (от 4 до 16) параллельно работающих векторных процессоров практически стало стандартным суперкомпьютерным решением. Типичный векторный компьютер включает в себя скалярный процессор целочисленной арифметики, функциональные блоки сложения и умножения чисел с плавающей точкой, векторный процессор и общую память. Это компьютеры, построенные по технологии < разделяемая память - один поток управления - много потоков данных > (<Shared Memory - Single Instruction - Multi Data>).

    Конец 80-х и начало 90-х годов охарактеризовались сменой магистрального направления развития суперкомпьютеров от векторно-конвейерной обработки данных к большому и сверхбольшому числу параллельно соединённых скалярных процессоров.

    Массивно-параллельные системы стали объединять в себе сотни и даже тысячи отдельных процессорных элементов, причём ими могли служить не только специально разработанные, но и общеизвестные и доступные в свободной продаже процессоры. Большинство массивно-параллельных компьютеров создавалось на основе мощных процессоров с архитектурой RISC (Reduced Instruction Set Computer), наподобие Power PC, или PA-RISC. Использование серийных микропроцессоров позволило не только гибко менять мощность установки в зависимости от потребностей и возможностей, но и значительно удешевить производство. Примерами суперкомпьютеров этого класса могут служить Intel Paragon, IBM SP, Сray T3D/T3E и ряд других.

    В ноябре 2002 года фирма Cray Inc. анонсировала решение Cray X1 с характеристиками 52,4 Тфлопс и 65,5 Тб ОЗУ (флопс - термин от английского словосочетания ), в который входят вычислительные системы, официально показавшие максимальную производительность. Его возглавила "Компьютерная модель Земли" (Earth Simulator) с результатом 35,86 Тфлопс (5120 процессоров), созданная одноименным японским центром и NEC. На втором - четвертом местах со значительным отставанием расположились решения ASCI (7,7; 7,7 и 7,2 Тфлопс). Они эксплуатируются Лос-Аламосской лабораторией ядерных исследований, а созданы Hewlett-Packard (первые два насчитывают по 4096 процессоров) и IBM (8192 процессора).

    представлен чемпион списка Тор-500 2013 года.

    (рис 3.21) Китайский суперкомпьютер Tianhe-2, июнь 2013 г.

    Однако уникальные решения с рекордными характеристиками обычно недешевы, поэтому и стоимость подобных систем никак не может быть сравнима со стоимостью систем, находящихся в массовом производстве и широко используемых в бизнесе. Прогресс в области сетевых технологий сделал свое дело: появились не слишком дорогие, но эффективные решения, основанные на коммуникационных технологиях. Это и предопределило появление кластерных вычислительных систем, фактически являющихся одним из направлений развития компьютеров с массовым параллелизмом (Massively Parallel Processing - MPP).

    Вычислительный кластер - это совокупность компьютеров, объединенных в рамках некоторой сети для решения крупной вычислительной задачи. В качестве узлов обычно используются доступные однопроцессорные компьютеры, двух- или четырехпроцессорные SMP-серверы (Symmetric Multi Processor). Каждый узел работает под управлением своей копии операционной системы, в качестве которой чаще всего используются стандартные операционные системы: Linux, NT, Solaris и т. п. Рассматривая крайние точки зрения, кластером можно считать как пару персональных компьютеров, связанных локальной 10-мегабитной сетью Ethernet, так и обширную вычислительную систему, создаваемую в рамках крупного проекта. Такой проект объединяет тысячи рабочих станций на базе процессоров Alpha, связанных вы-сокоскоростной сетью Myrinet, которая используется для поддержки параллельных приложений, а также сетями Gigabit Ethernet и Fast Ethernet для управляющих и служебных целей.

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

    На современном рынке представлено не так много поставщиков готовых крупных кластерных решений. Это связано, прежде всего, с доступностью комплектующих, легкостью построения самих систем, значительной ориентацией на свободно распространяемое про-граммное обеспечение, а также с уникальностью задач, решаемых с помощью кластерных технологий. В связи с этим многие корпоративные и университетские ИТ-команды оказались способными самостоятельно формировать свои кластерные сети. Среди наиболее известных поставщиков кластеров стоит отметить SGI, VALinux и Scali Computer.

    Летом 2000-го года Корнелльский университет (США) основал Консорциум по кластерным технологиям (ACCC - Advanced Cluster Computing Consortium), основная цель которого - координация работ в области кластерных технологий и помощь в осуществлении разработок в данной области. Ведущими компаниями, обеспечивающими инфраструктуру консорциума, стали ведущие производители компьютерного оборудования и программного обеспечения Dell, Intel и Microsoft. Среди других членов можно назвать Аргоннскую национальную лабораторию, Нью-Йоркский, Корнелльский и Колумбийский университеты, компании Compaq, Giganet, IBM, Kuck Associates и другие.

    Аналогично, в России в 2010 году при активном участии члена-корреспондента РАН Вл. В. Воеводина был организован Суперкомпьютерный консорциум университетов России. Цель создания Консорциума - использование научного потенциала Высшей школы России для развития и активного внедрения суперкомпьютерных технологий в образовании, науке, экономике, государственной и социальной жизни. Учредителями Консорциума стали крупные российские университеты, президентом - ректор МГУ, академик, вице-президент РАН В. А. Садовничий.

    Из интересных российских проектов следует отметить решение, реализованное в Санкт-Петербургском университете на базе технологии ): собранные кластеры могут использоваться и как полноценные независимые учебные классы, и как единая вычислительная установка, решающая крупную исследовательскую проблему. В Самарском научном центре пошли по пути создания неоднородного вычислительного кластера, в составе которого работают компьютеры на базе процессоров Alpha и Pentium III. В Санкт-Петербургском техническом университете собрана вычислительная установка на основе процессоров Alpha и сети Myrinet без использования локальных дисков на вычислительных узлах. В Уфимском государственном авиационном техническом университете проектируется кластер на базе двенадцати Alpha-станций, сети Fast Ethernet и ОС Linux.

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

    (рис 3.22) Научные задачи и масштаб ExaScale

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

    Компьютеры следующего поколения

    Размеры вычислительных устройств постоянно уменьшаются. Когда-то предполагалось, что более мощные машины будут требовать больше места для периферийных устройств, памяти и т. д. Это предположение оказалось неверным. В 1965 году Гордон Мур сформулировал действующее и сейчас правило, названное законом Мура, согласно которому производительность вычислительных систем удваивается каждые восемнадцать месяцев [). Как следствие из этого закона можно вывести темпы миниатюризации отдельного транзистора.

    (рис 3.23) Копия записки с формулировкой закона Г.Мура

    Ежегодное уменьшение на 10-30 % элементарных вычислительных модулей приведет в ближайшие годы к практическому использованию устройств с элементарными модулями размером примерно в 100-200 ангстрем (10-20 нм, или 0,01-0.02 мк). Другими словами, быстрое развитие цифровых электронных технологий приводит к тому, что размер элементарного вычислительного устройства приближается к размеру молекулы или даже атома.

    На таком уровне законы классической физики перестают работать и начинают действовать квантовые законы, которые для многих важных динамических задач еще не описаны теоретически. Для описания работы таких устройств не применимы классические объекты и методы информатики. В частности, в силу квантового принципа неопределенности Гейзенберга, в таких микроскопических системах нет аналога понятию "bit". Вместо двоичных цифр новые устройства будут оперировать с "волновыми функциями" ("квантовыми битами" - q-bit). В некотором смысле информатика в своем развитии в недалеком будущем должна будет перейти от "арифметики" к "функциональному анализу". С одной стороны, это обуславливает переосмысление и замену основных классических (не квантовых) алгоритмов, а с другой стороны, дает возможность вплотную подступиться к решению проблем "искусственного интеллекта".

    В научно-исследовательских лабораториях крупнейших университетов и транснациональных ИТ-компаний рассматриваются несколько возможных основных направлений создания элементной базы нового поколения вычислительных устройств [32]:

  • на принципах ядерного магнитного или электронного парамагнитного резонанса;
  • на атомных ионах, помещенных в ловушки Паули или Пеннинга;
  • с использованием явления сверхпроводимости;
  • на квантовых точках в полупроводниковых неорганических системах;
  • на основе оптической симуляции квантовой логики или на металло-биологической гибридной основе.
  • Многие из рассмотренных направлений имеют существенные недостатки, которые в некоторых случаях приводят к принципиальной невозможности создания конкурентоспособного вычислительного устройства. Характерным примером является проект корпорации IBM, которая в 1999 году только на первый этап разработки молекулярной элементной базы нового поколения выделила 17 млрд. долларов на 5 лет. В результате был создан макет, оперирующий с 5 или 7 квантовыми битами, и весом около 7 тонн, способный решать только примитивные задачи типа разложения числа 15 на два множителя 5 и 3.

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

    Вернуться к учебному плану