Лекция Архитектура информационных систем. Часть 1 Общие сведения
Скачать 391.29 Kb.
|
Лекция 8. Архитектура информационных систем. Часть 1 8.1. Общие сведения Рассмотрим определение "архитектуры информационной системы", которое дают различные источники. Архитектура ИС – это организационная структура системы. Архитектура ИС – концепция, определяющая модель, структуру, выполняемые функции и взаимосвязь компонентов информационной системы. Архитектура ИС – это базовая организация системы, воплощенная в ее компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы. Архитектура ИС – это набор значимых решений по поводу организации системы программного обеспечения, набор структурных элементов и их интерфейсов, при помощи которых компонуется система, вместе с их поведением, определяемым во взаимодействии между этими элементами, компоновка элементов в постепенно укрупняющиеся подсистемы, а также стиль архитектуры, который направляет эту организацию – элементы и их интерфейсы, взаимодействия и компоновку. Архитектура программы или компьютерной системы – это структура или структуры системы, которые включают элементы программы, видимые извне свойства этих элементов и связи между ними. Архитектура ИС – это структура организации и связанное с ней поведение системы. Архитектуру можно рекурсивно разобрать на части, взаимодействующие посредством интерфейсов, связи, которые соединяют части, и условия сборки частей. Части, которые взаимодействуют через интерфейсы, включают классы, компоненты и подсистемы. Архитектура программного обеспечения системы или набора систем состоит из всех важных проектных решений по поводу структур программы и взаимодействий между этими структурами, которые составляют системы. Проектные решения обеспечивают желаемый набор свойств, которые должна поддерживать система, чтобы быть успешной. Проектные решения предоставляют концептуальную основу для разработки системы, ее поддержки и обслуживания. Архитектура ИС – это базовая организация системы, воплощенная в ее компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы. Структура организации и связанное с ней поведение системы – это архитектура ИС. Хотя определения несколько отличаются, можно заметить определенную степень сходства. Например, большинство определений указывают на то, что архитектура связана со структурой и поведением, а также только со значимыми решениями, может соответствовать некоторому архитектурному стилю, на нее влияют заинтересованные в ней лица и ее окружение, она воплощает решения на основе логического обоснования. В дальнейшем под архитектурой ИС будем понимать совокупность решений относительно: организации информационной системы; выбора структурных элементов, составляющих систему, и их интерфейсов; поведения этих элементов во взаимодействии с другими элементами; объединения этих элементов в подсистемы; архитектурного стиля, определяющего логическую и физическую организацию системы: статические и динамические элементы, их интерфейсы и способы их объединения. Архитектура информационной системы охватывает не только ее структурные и поведенческие аспекты, но и правила ее использования и интеграции с другими системами, функциональность, производительность, гибкость, надежность, возможность повторного применения, полноту, экономические и технологические ограничения, а также вопрос пользовательского интерфейса. Архитектуру ИС по выполняемым функциям можно разделить на три слоя: слой представления, слой бизнес-логики и слой доступа к данным (рис. 1). Слой представления (пользовательский интерфейс) - все, что связано с взаимодействием приложений с пользователем: нажатие кнопок, движение мыши, вывод изображений, вывод результатов поиска и т.д. Бизнес-логика – правила и алгоритмы реакции приложений на действия пользователя или на внутренние события, правила обработки данных. Слой доступа к данным – правила хранения, выборки, модификации и удаления данных, связанных с решаемой прикладной задачей. Рис. 1. По мере развития информационных систем все большее значение приобретает их интеграция друг с другом с целью построения единого информационного пространства предприятия. Как можно видеть из вышеприведенных определений интеграция является важнейшим элементом архитектуры. Рассмотрим классификацию информационных систем по их архитектуре: Централизованная архитектура; Архитектура "файл-сервер"; Двухзвенная архитектура "клиент-сервер"; Многозвенная архитектура "клиент-сервер"; Архитектура распределенных систем; Архитектура Веб-приложений; Сервис-ориентированная архитектура. Следует заметить, что, как и любая классификация, данная классификация архитектур информационных систем не является абсолютно жесткой. В архитектуре любой конкретной информационной системы часто можно найти влияния нескольких общих архитектурных решений. Далее подробно рассмотрим особенности каждой архитектуры. 8.2. Централизованная архитектура Централизованная архитектура вычислительных систем была распространена в 70-х и 80-х годах и реализовывалась на базе мейнфреймов (например, IBM-360/370 или их отечественных аналогов серии ЕС ЭВМ), либо на базе мини-ЭВМ (например, PDP-11 или их отечественного аналога СМ-4). Характерная особенность такой архитектуры – полная "неинтеллектуальность" терминалов. Их работой управляет хост-ЭВМ (центральный компьютер). Работа информационной системы, имеющей централизованную архитектуру, построена следующим образом: база данных в виде набора файлов находится на жестком диске компьютера; все обращения к базе данных идут через СУБД; приложение, используя пользовательский интерфейс, отображает результат выполнения запросов; основные функциональные компоненты приложения располагаются в единой среде и комбинируются внутри одной исполняемой программы. Достоинства такой архитектуры: пользователи совместно используют дорогие ресурсы ЭВМ и дорогие периферийные устройства; централизация ресурсов и оборудования облегчает обслуживание и эксплуатацию вычислительной системы; отсутствует необходимость администрирования рабочих мест пользователей. Главным недостатком для пользователя является то, что он полностью зависит от администратора центральной ЭВМ (хост-ЭВМ). Пользователь не может настроить рабочую среду под свои потребности – все используемое программное обеспечение является коллективным. Использование такой архитектуры является оправданным, если хост-ЭВМ очень дорогая, например, супер-ЭВМ. Классическое представление централизованной архитектуры показано на рис.2. Центральная ЭВМ должна иметь большую память и высокую производительность, чтобы обеспечивать комфортную работу большого числа пользователей. Все приложения, работающие в такой архитектуре, полностью находятся в основной памяти хост-ЭВМ. Терминалы являются лишь устройствами ввода-вывода и таким образом в минимальной степени поддерживают интерфейс пользователя. Рис. 2. Классическое представление централизованной архитектуры 8.3. Архитектура "файл-сервер" База данных хранится на сервере, клиент обращается к серверу с файловыми командами, механизм управления всеми информационными ресурсами находится на компьютере клиента – так распределены функции в ИС, имеющих архитектуру «файл-сервер». Файл-серверные базы данных могут быть доступны многим клиентам через сеть. Сама база данных хранится на сетевом файл-сервере в единственном экземпляре. Для каждого клиента во время работы создается локальная копия данных, с которой он манипулирует. При этом возникают проблемы, связанные с возможным одновременным доступом нескольких пользователей к одной и той же информации. Эти проблемы решаются разработчиками приложений баз данных (каждый раз при обращении к данным проверяется их доступность). Файл-серверные приложения – приложения, схожие по своей структуре с локальными приложениями и использующие сетевой ресурс для хранения программы и данных. Функции сервера - хранения данных и кода программы. Функции клиента - обработка данных и все операции, относящиеся к уровню средств управления БД. Классическое представление информационной системы в архитектуре «файл-сервер» представлено на рис. 3. Рис. 3. Классическое представление архитектуры "файл-сервер" Архитектура файл-сервер обладает значительными недостатками. Одним из них является непроизводительная загрузка сети. При каждом запросе клиента данные в его локальной копии полностью обновляются из базы данных на сервере. Даже если запрос относится всего к одной записи, обновляются все записи базы данных. Если записей в базе данных много, то и при небольшом числе клиентов сеть будет загружена, что серьезно скажется на скорости выполнения запросов. В результате циркуляции в сети больших объемов избыточной информации резко возрастает нагрузка на сеть, что приводит к соответствующему снижению ее быстродействия и производительности информационной системы в целом. Другой недостаток связан с тем, что забота о целостности данных при такой организации работы возлагается на программы клиентов, что приводит к их усложнению. Если они недостаточно тщательно продуманы, в базу данных легко занести ошибки, которые могут отразиться на всех пользователях. Кроме того, в файл-серверной архитектуре изменения, сделанные в базе данных одним пользователем, не видны другим пользователям. Пока один пользователь редактирует какую-либо запись, она заблокирована для других клиентов. Возникает необходимость синхронизации работы отдельных пользователей, связанная с блокировкой записей. И еще один недостаток – управление базой данных осуществляется с разных компьютеров, поэтому в значительной степени затруднена организация контроля доступа, соблюдения конфиденциальности, что также усложняет поддержку целостности базы данных. Организация информационных систем на основе использования выделенных файл-серверов все еще является распространенной в связи с наличием большого количества персональных компьютеров разного уровня развитости и сравнительной дешевизны связывания PC в локальные сети. Основным достоинством данной архитектуры является простота организации. Проектировщики и разработчики информационной системы находятся в привычных и комфортных условиях IBM PC в среде MS-DOS, Windows или какого-либо облегченного варианта Windows Server. Имеются удобные и развитые средства разработки графического пользовательского интерфейса, простые в использовании средства разработки систем баз данных и/или СУБД. Достоинства такой архитектуры: многопользовательский режим работы с данными; удобство централизованного управления доступом; низкая стоимость разработки; высокая скорость разработки; невысокая стоимость обновления и изменения ПО. Недостатки: проблемы многопользовательской работы с данными: последовательный доступ, отсутствие гарантии целостности; низкая производительность (зависит от производительности сети, сервера, клиента), в частности, непроизводительная загрузка сети; плохая возможность подключения новых клиентов; ненадежность системы. . Рис. 4. Модель функционирования ИС файл-серверной архитектуры Недостатки архитектуры с файловым сервером вытекают главным образом из того, что данные хранятся в одном месте, а обрабатываются в другом. Это означает, что их нужно передавать по сети, что приводит к очень высоким нагрузкам на сеть и, вследствие этого, резкому снижению производительности приложения при увеличении числа одновременно работающих клиентов. Вторым важным недостатком такой архитектуры является децентрализованное решение проблем целостности и согласованности данных и одновременного доступа к данным. Такое решение снижает надежность приложения. Забота о целостности данных при такой организации работы возлагается на программы клиента. Распределение программных компонентов для файл-серверной архитектуры представлено на рис. 4 8.4. Архитектура "клиент-сервер" Клиент-сервер – вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемых серверами, и заказчиками услуг, называемых клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением. Первоначально системы такого уровня базировались на классической двухуровневой клиент-серверной архитектуре (Two-tier architecture). Под клиент-серверным приложением в этом случае понимается информационная система, основанная на использовании серверов баз данных. Схематически такую архитектуру можно представить, как показано на рис. 5. Рис. 5. Классическое представление архитектуры "клиент-сервер" Основной принцип технологии «клиент-сервер» заключается в разделении функций приложения на группы: ввод и отображение данных – с одной стороны, функции управления ресурсами – с другой. На стороне клиента выполняется код приложения, в который обязательно входят компоненты, поддерживающие интерфейс с конечным пользователем, производящие отчеты, выполняющие другие специфичные для приложения функции. Клиентская часть приложения взаимодействует с клиентской частью программного обеспечения СУБД. Интерфейс между клиентской частью приложения и клиентской частью сервера баз данных, как правило, основан на использовании языка SQL. Сервер получает от клиента текст оператора на языке SQL, производит компиляцию полученного оператора. Далее (если компиляция завершилась успешно) происходит выполнение оператора. Серверная часть двухуровневой модели удаленного доступа к данным архитектуры «клиент-сервер» выполняет следующие функции: реализация стабильности многопользовательского режима работы; оптимизация и выполнение запросов к базе данных; обеспечение системы безопасности и разграничение доступа; реализация стабильности многопользовательского режима работы. Модель сервера базы данных в ИС с двухуровневой архитектурой «клиент-сервер» представлена на рис. 6. Рис. 6. Триггеры и хранимые процедуры – это именованные блоки кода SQL, которые заранее откомпилированы и хранятся на сервере для того, чтобы быстро производить обработку запросов. Хранение и выполнение кода на сервере позволяет создавать код только один раз, а не в каждом приложении, работающем с БД. Это экономит время при написании и сопровождении программ. При этом гарантируется, что целостность данных и бизнес-правила поддерживаются независимо от того, какое именно клиентское приложение обращается к данным. Триггеры и хранимые процедуры не требуется пересылать по сети из клиентского приложения, что значительно снижает сетевой трафик. Модель организации удаленного доступа к данным в ИС с двухуровневой архитектурой «клиент-сервер» представлена на рис. 7. Рис. 7. Достоинствами данной архитектуры являются: возможность, в большинстве случаев, распределить функции вычислительной системы между несколькими независимыми компьютерами в сети; все данные хранятся на сервере, который, как правило, защищен гораздо лучше большинства клиентов, а также на сервере проще обеспечить контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа; поддержка многопользовательской работы; гарантия целостности данных. Недостатки: неработоспособность сервера может сделать неработоспособной всю вычислительную сеть; высокие требования к пропускной способности коммуникационных каналов с сервером; администрирование данной системы требует квалифицированного профессионала; высокая стоимость оборудования; бизнес логика приложений осталась в клиентском ПО. Рис. 8. Модель функционирования ИС клиент-серверной архитектуры Также данный вид архитектуры ИС называют «архитектурой с толстым клиентом». Большинство недостатков классической или 2-хслойной архитектуры клиент-сервер проистекают от использования клиентской станции в качестве исполнителя бизнес-логики ИС. Поэтому очевидным шагом дальнейшей эволюции архитектур ИС явилась идея "тонкого клиента", то есть разбиения алгоритмов обработки данных на части связанные с выполнением бизнес-функций и связанные с отображением информации в удобном для человека представлении. При этом на клиентской машине оставляют лишь вторую часть, связанную с первичной проверкой и отображением информации, перенося всю реальную функциональность системы на серверную часть. Компьютер или программа-клиент в сетях с клиент-серверной архитектурой, который переносит все или большую часть задач по обработке информации на сервер, называется «тонким клиентом». Архитектура ИС в этом случае называется «архитектурой с тонким клиентом». 5.5. Многоуровневый "клиент-сервер" Многоуровневая архитектура «клиент-сервер» (Multitier architecture) – разновидность архитектуры клиент-сервер, в которой функция обработки данных вынесена на один или несколько отдельных серверов. Это позволяет разделить функции хранения, обработки и представления данных для более эффективного использования возможностей серверов и клиентов. Среди многоуровневой архитектуры клиент-сервер наиболее распространена трехуровневая архитектура (трехзвенная архитектура, three-tier), предполагающая наличие следующих компонентов приложения: клиентское приложение (обычно говорят "тонкий клиент" или терминал), подключенное к серверу приложений, который в свою очередь подключен к серверу базы данных. Схематически такую архитектуру можно представить, как показано на рис. 9. Рис. 9. Представление многоуровневой (трехзвенной) архитектуры "клиент-сервер" Терминал – это интерфейсный (обычно графический) компонент, который представляет первый уровень, собственно приложение для конечного пользователя. Первый уровень не должен иметь прямых связей с базой данных (по требованиям безопасности), быть нагруженным основной бизнес-логикой (по требованиям масштабируемости), хранить состояние приложения (по требованиям надежности). На первый уровень обычно выносится простейшая бизнес-логика: интерфейс авторизации, алгоритмы шифрования, проверка вводимых значений на допустимость и соответствие формату, несложные операции (сортировка, группировка, подсчет значений) с данными, уже загруженными на терминал. Сервер приложений располагается на втором уровне. На втором уровне сосредоточена большая часть бизнес-логики. Сервер базы данных обеспечивает хранение данных и выносится на третий уровень. Обычно это стандартная реляционная или объектно-ориентированная СУБД. Если третий уровень представляет собой базу данных вместе с хранимыми процедурами и схемой, описывающей приложение в терминах реляционной модели, то второй уровень строится как программный интерфейс, связывающий клиентские компоненты с прикладной логикой базы данных. В простейшей конфигурации физически сервер приложений может быть совмещен с сервером базы данных на одном компьютере, к которому по сети подключается один или несколько терминалов. В "правильной" (с точки зрения безопасности, надежности, масштабирования) конфигурации сервер базы данных находится на выделенном компьютере (или кластере), к которому по сети подключены один или несколько серверов приложений, к которым, в свою очередь, по сети подключаются терминалы. Рис. 10. Модель функционирования ИС трехуровневой клиент-серверной архитектуры Достоинствами данной архитектуры являются: клиентское ПО не нуждается в администрировании; масштабируемость; конфигурируемость – изолированность уровней друг от друга позволяет быстро и простыми средствами переконфигурировать систему при возникновении сбоев или при плановом обслуживании на одном из уровней; высокая безопасность; высокая надежность; низкие требования к скорости канала (сети) между терминалами и сервером приложений; низкие требования к производительности и техническим характеристикам терминалов, как следствие снижение их стоимости. Недостатки: растет сложность серверной части и, как следствие, затраты на администрирование и обслуживание; более высокая сложность создания приложений; сложнее в разворачивании и администрировании; высокие требования к производительности серверов приложений и сервера базы данных, а, значит, и высокая стоимость серверного оборудования; высокие требования к скорости канала (сети) между сервером базы данных и серверами приложений. Некоторые авторы представляют многозвенную архитектуру (трехзвенную) в виде пяти уровней (рис. 6): Представление; Уровень представления; Уровень логики; Уровень данных; Данные. Рис. 6. Пять уровней многозвенной архитектуры "клиент-сервер" К представлению относится вся информация, непосредственно отображаемая пользователю: сгенерированные html-страницы, таблицы стилей, изображения. Уровень представления охватывает все, что имеет отношение к общению пользователя с системой. К главным функциям слоя представления относятся отображение информации и интерпретация вводимых пользователем команд с преобразованием их в соответствующие операции в контексте логики и данных. Уровень логики содержит основные функции системы, предназначенные для достижения поставленной перед ним цели. К таким функциям относятся вычисления на основе вводимых и хранимых данных, проверка всех элементов данных и обработка команд, поступающих от слоя представления, а также передача информации уровню данных. Уровень доступа к данным – это подмножество функций, обеспечивающих взаимодействие со сторонними системами, которые выполняют задания в интересах приложения. Данные системы обычно хранятся в базе данных. |