Читать книгу: «Проектирование отказоустойчивых распределенных информационных систем. Для студентов», страница 2
Открытость. Все протоколы взаимодействия компонент внутри распределенной системы в идеальном случае должны быть основаны на общедоступных стандартах. Это позволяет использовать для создания компонент различные средства разработки и операционные системы. Каждая компонента должна иметь точную и полную спецификацию своих сервисов. В этом случае компоненты распределенной системы могут быть созданы независимыми разработчиками. При нарушении этого требования может исчезнуть возможность создания распределенной системы, охватывающей несколько независимых организаций.
Масштабируемость. Масштабируемость вычислительных систем имеет несколько аспектов. Наиболее важный из них – возможность добавления в распределенную систему новых компьютеров для увеличения производительности системы, что связано с понятием балансировки нагрузки (load balancing) на серверы системы. К масштабированию относятся так же вопросы эффективного распределения ресурсов сервера, обслуживающего запросы клиентов.
Поддержание логической целостности данных. Запрос пользователя в распределенной системе должен либо корректно выполняться целиком, либо не выполняться вообще. Ситуация, когда часть компонент системы корректно обработали поступивший запрос, а часть – нет, является наихудшей.
Устойчивость. Под устойчивостью понимается возможность дублирования несколькими компьютерами одних и тех же функций или же возможность автоматического распределения функций внутри системы в случае выхода из строя одного из компьютеров. В идеальном случае это означает полное отсутствие уникальной точки сбоя, то есть выход из строя одного любого компьютера не приводит к невозможности обслужить запрос пользователя.
Безопасность. Каждый компонент, образующий распределенную систему, должен быть уверен, что его функции используются авторизированными на это компонентами или пользователями. Данные, передаваемые между компонентами, должны быть защищены как от искажения, так и от просмотра третьими сторонами.
Эффективность. В узком смысле применительно к распределенным системам под эффективностью будет пониматься минимизация накладных расходов, связанных с распределенным характером системы. Поскольку эффективность в данном узком смысле может противоречить безопасности, открытости и надежности системы, следует отметить, что требование эффективности в данном контексте является наименее приоритетным. Например, на поддержку логической целостности данных в распределенной системе могут тратиться значительные ресурсы времени и памяти, однако система с недостоверными данными вряд ли нужна пользователям.
Классическим примером системы, в значительной мере отвечающей всем представленным выше требованиям, является система преобразования символьных имен в сетевые IP-адреса (DNS). Система имен – организованная иерархически распределенная система, с дублированием всех функций между двумя и более серверами.
Повышение отношения производительности к затратам. Любая задача может быть разделена между между различными компьютерами в распределенной системе. Такая конфигурация обеспечивает лучшее соотношение производительности к стоимости системы. Это особенно актуально для конфигурации «сеть рабочих станций» (NOW).
Масштабируемость. Компьютеры, как правило, подключены к глобальной компьютерной сети, поэтому установка новых компьютеров непосредственно не создает узких мест в компьютерной сети.
Модульность и дополнительная расширяемость. Гетерогенные единицы могут быть добавлены в систему без снижения производительности, так как используется промежуточный уровень взаимодействия. Аналогично, существующие единицы могут быть легко заменены новыми.
Итак, можно считать, что предметная область обозначена и выделены проблемные вопросы, которые решаются специалистами информационных технологий. Исследования в области распределенных систем достаточно сложные, поэтому за выдающуюся статью по распределенным вычислениям ежегодно вручается «Премия Дейкстры» (http://www.podc.org/dijkstra/).
На данном этапе изучения дисциплины можно запомнить определение:
РИС – это совокупность автономных компьютеров, взаимодействующих через компьютерную сеть и промежуточную среду, которая позволяет компьютерам координировать свою деятельность и предоставлять доступ к ресурсам системы так, что пользователям система представляется единой и целостной. Распределенная система обладает следующими свойствами:
– отсутствие общей физической шины;
– отсутствие общей памяти;
– географическое распределение;
– автономность и гетерогенность.
Чтобы подробно разобраться со всеми проблемами, обозначенными в теории и практике РИС, ну проштудировать многотомное собрание сочинений. В данном учебном пособии обозначим рамки и направления изучения распределенных информационных систем. Объектом изучения обозначим корпоративную распределенную информационную систему организации, предприятия (рисунок 1.5).
Рисунок 1.5 – Корпоративная сеть с SQL – и WEB – серверами
Типовой пример РИС такой сети можно представить схемой компьютерного интегрированного полиграфического производства (рисунок 1.6).
УЧ – управляющая часть; ОУ – объект управления
Рисунок 1.6 -Типовой пример распределенной информационной системы
Лекционный материал учебного пособия можно сгруппировать по трем разделам. Первый раздел предназначен для изучения основных составляющих автоматизированной информационной системы (АИС). Проведем маленький эксперимент. Ответьте на два простых вопроса: что такое данные? и что такое информация? Большинство отвечающих относятся к одному варианту ответа: данные – это информация; информация – это данные. Круг замыкается! Простые и обыденные понятия, но мы с ними свыклись и не вдаемся в суть определений. Поэтому в первом разделе учебного пособия уделено основное внимание разъяснению терминов, определений объектов, составляющих информационную систему (ИС), концепции построения баз данных как основы ИС.
Второй раздел раскрывает содержание распределенной обработки информации в РИС, определяет концепцию построения распределенных баз данных (хранилищ и витрин данных) в структурах OLTP и OLAP. Важно уяснить как распределяется презентационная логика, логика аналитической обработки, логика баз данных в РИС.
Третий раздел посвящен изучению технологий и методик моделирования ИС. Должен быть понятен алгоритм проектирования РИС с учетом требований CASE -и CALS – технологий, используемых за рубежом и российских аналогов. Специалист по РИС должен знать весь перечень стадий и этапов проектирования РИС. Для проектирования РИС необходимо уметь пользоваться современными инструментальными средствами разработки. Заканчивается курс лекций практическими примерами проектирования и разработки РИС в современной инструментальной среде Visual Studio 2005, 2010, при этом проектировщику достаточно знать основы событийно управляемого программирования и разработки Windows-приложения на языке C#. Разработка базы данных демонстрируется на примере СУБД SQL Server 2005, 2008. Важно и необходимо уяснить, как проектируется и создается удаленный запрос с клиентского приложения на сервер базы данных с помощью функций пользователя или хранимых процедур. Специалист по РИС должен в обязательном порядке выполнять фрагментацию и локализацию данных в распределенной базе данных.
2 Назначение и основные компоненты информационной системы
Глава предназначена для общего введения в теорию и практику построения информационных систем на основе баз данных, рассмотрения и обсуждения основных терминов и определений компонентов информационных систем. Глава посвящена рассмотрению общетеоретических вопросов, касающихся системы баз данных как информационной системы, использующей информационные технологии по обработке информации. Некоторые термины в системе баз данных не имеют четко определенных государственным стандартом определений, что составляет основную проблему однозначного понимания некоторых определений и понятий баз данных как информационной системы. Для решения данной основной проблемы обсудим различные подходы и общепринятые соглашения (нотации), существующие в современной научной литературе.
В прошлом информация считалась сферой бюрократической работы и ограниченным инструментом для принятия решений. Сегодня информацию рассматривают как один из основных ресурсов развития общества, а информационные системы и технологии как средство повышения производительности и эффективности деятельности людей.
Наиболее широко информационные системы и технологии используются в производственной, управленческой и финансовой деятельности, хотя начались подвижки в сознании людей, занятых и в других сферах, относительно необходимости их внедрения и активного применения.
Основные идеи современной информационной технологии базируются на концепции баз данных (БД), ранее упоминаемых достаточно часто без какого-либо их детального пояснения.
Согласно данной концепции основой информационной технологии являются данные, организованные в БД, адекватно отражающие реалии действительности в той или иной предметной области и обеспечивающие пользователя актуальной информацией в соответствующей предметной области.
Развитие современного промышленного производства и бизнеса невозможно без создания автоматизированных информационных систем (АИС), одно из назначений которых – предоставление пользователю достоверной информации, необходимой для принятия оптимального решения. В настоящее время ни одна из задач управления производством и бизнесом не должна выполняться без применения автоматизированных информационных систем. Сегодня мы должны рассматривать любую деятельность любого специалиста как некоторую систему принятия решений, поэтому специалисту и нужна достоверная информация. Таким образом, одной из важнейших функций информационной системы является информационное обеспечение процесса управления.
Итак, что же такое База данных и Система управления базами данных!
К сожалению, в большинстве книг по этому направлению информационных технологий нет достаточно четких определений. Рассмотрим и обсудим термины и определения, касающиеся баз данных.
2.1 Понятие об информационных системах
Под системой понимают любой объект, который одновременно рассматривается и как единое целое, и как объединенная в интересах достижения поставленных целей совокупность разнородных элементов. Системы значительно отличаются между собой как по составу, так и по главным целям.
Приведем примеры нескольких систем, состоящих из разных элементов и направленных на реализацию различных целей (таблица 2.1).
Таблица 2.1 – Примеры систем
В информатике понятие «„система“'» широко распространено и имеет множество смысловых значений. Чаще всего оно используется применительно к набору технических средств и программ. Системой может называться аппаратная часть компьютера. Системой может также считаться множество программ для решения конкретных прикладных задач, дополненных процедурами ведения документации и управления расчетами.
Добавление к понятию «„система“» слова «„информационная“» отражает цель ее создания и функционирования. Информационные системы обеспечивают сбор, хранение, обработку, поиск и выдачу информации, необходимой в процессе принятия решений задач в любой предметной области. Появление электронных вычислительных машин и персональных компьютеров предопределило создание и внедрение автоматизированных информационных систем (АИС), которые значительно повысили производительность и результативность информационных технологий по обработке и выдачи информации.
В качестве основного классификационного признака АИС целесообразно рассматривать особенности автоматизируемой профессиональной деятельностипроцесса переработки входной информации для получения требуемой выходной информации, в котором АИС выступает в качестве инструмента должностного лица или группы должностных лиц, участвующих в управлении организационной системой.
В соответствии с предложенным классификационным признаком можно выделить следующие классы АИС (рисунок 2.1):
Рисунок 2.1 – Классификация АИС
АИС – взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной цели.
Современное понимание АИС как системы предполагает использование в качестве основного технического средства переработки информации персонального компьютера. Кроме того, техническое воплощение информационной системы само по себе ничего не будет значить, если не будет учтена роль человека, для которого предназначена производимая информация и без которого невозможно ее получение и представление.
Структуру АИС составляет совокупность отдельных ее частей, называемых подсистемами.
Подсистема – это часть системы, выделенная по какому-либо признаку.
Общую структуру информационной системы можно рассматривать как совокупность подсистем независимо от сферы применения. В этом случае говорят о структурном признаке классификации, а подсистемы называют обеспечивающими. Таким образом, структура любой информационной системы может быть представлена совокупностью обеспечивающих подсистем (рисунок 2.2).
Рисунок 2.2 – Структура АИС как совокупность обеспечивающих подсистем
Среди обеспечивающих подсистем обычно выделяют информационное, техническое, математическое, программное, организационное и правовое обеспечение.
В понятии АИС присутствуют три очень важных, емких, ключевых, фило-софско-методологических и специально-научных понятия:
– система;
– управление;
– информация.
И поэтому, чтобы разобраться в АИС, необходимо прежде всего выяснить:
– что такое система;
– что такое управление;
– что такое информация.
Система (от греч. SYSTEMA -целое, составленное из частей соединение) – это совокупность элементов, взаимосвязанных друг с другом, образующая определенную целостность, единство.
Введем набор понятий, связанных с использованием слова «система».
Элемент – некоторый объект (материальный, энергетический, информационный), обладающий определенным функциональным назначением, отличающимся от назначения системы.
Введем обозначения:
М – элемент;
{М} – совокупность элементов;
М е {М} – принадлежность элементов совокупности.
Вопрос. Сколько или какое количество элементов необходимо, чтобы их совокупность стала системой? Древние философы спорили – сколько нужно камней, сложенных вместе, чтобы они образовали кучу. Вся доступная разуму человека природа состоит из систем, которые могут быть различны по масштабам: от бесконечно больших (галактика) до бесконечно малых (атом); различны по природе: материальные, энергетические, информационные. Практически любой объект с определенной точки зрения может рассматриваться как система, если совокупность элементов обладать двумя признаками:
а) связями, которые позволяют посредством переходов по ним от элемента к элементу соединить два любых элемента совокупности;
б) Свойством (назначением, функцией), отличным от свойств отдельных элементов совокупности.
По степени автоматизации решения своих функциональных задач системы могут быть:
– ручные, т.е. без средств автоматизации;
– автоматизированные, т.е. со средствами автоматизации при участии человека;
– автоматические, т.е. типа «автомат» без участия человека. Дадим определение АСУ согласно ГОСТ 19675—74:
АСУ – это человеко-машинная система, обеспечивающая автоматизированный сбор и обработку информации, необходимой для оптимизации управления в различных сферах человеческой деятельности.
Большой системой называют систему, включающую большое количество однотипных элементов и однотипных связей. Пример: гирлянда, трубопровод.
Сложной системой называют систему, состоящую из элементов разных типов и обладающую разнородными связями между ними. Пример: космический корабль, автомобиль, морское судно и т. п.
Простая система – это система, состоящая из небольшого числа элементов и не имеющая разветвленной структуры (нельзя выявить иерархические уровни).
Структура системы – совокупность внутренних, устойчивых связей между элементами системы, определяющая ее основные свойства.
Простейшие типы структур систем показаны на рисунке 1.4.
а) последовательная
б) параллельная
в) с обратной связью. Рисунок 1.4 – Типы структур систем
Иерархические структуры – это структуры с наличием подчиненности (рисунок 1.5).
а) простая
б) сложная
Рисунок 1.5 – Иерархические структуры
С понятием структура тесно связан термин «декомпозиция» – это деление системы на части, удобное для каких-то операций.
Примеры: автомобиль состоит из систем смазки, охлаждения, питания и др. Любая книга имеет содержание (оглавление).
Различают также статистические и динамические системы. Состояние статической системы с течением времени остается постоянным, динамические системы, наоборот, изменяют свое состояние во времени.
Динамические системы разделяют на детерминированные, т.е. полностью определенных в любой момент времени, и вероятностные (стохастические).
По характеру взаимодействия системы и внешней среды различают закрытые
и открытые системы.
Системы обладают свойством целостности – это принципиальная несводимость свойств системы к сумме свойств составляющих ее элементов и, в то же время, зависимость свойств каждого элемента от его места и функции внутри системы.
Группа элементов системы, описываемая только своими входами и выходами и обладающая определенной целостностью, называется модулем (рисунок 1.6).