Главная страница
Навигация по странице:

  • Водяхо А.И., Выговский Л.С., Дубенецкий В.А.Цехановский В.В.

  • Глава 1. ОБЩИЕ СВЕДЕНИЯ ОБ ИНФОРМАЦИОННЫХ СИСТЕМАХ 1.1. Понятие ИС

  • 1.2. Краткая история развития информационных и программных систем

  • АРИС Текст 2. Водяхо А. И., Выговский Л. С., Дубенецкий В. А., Цехановский В. В. Архитектурные решения информационных систем


    Скачать 4.65 Mb.
    НазваниеВодяхо А. И., Выговский Л. С., Дубенецкий В. А., Цехановский В. В. Архитектурные решения информационных систем
    Дата03.06.2022
    Размер4.65 Mb.
    Формат файлаdocx
    Имя файлаАРИС Текст 2.docx
    ТипДокументы
    #568218
    страница1 из 30
      1   2   3   4   5   6   7   8   9   ...   30

    Водяхо А.И., Выговский Л.С., Дубенецкий В.А., Цехановский В.В.

    Архитектурные решения информационных систем

    ББК

    УДК 004.6
    Водяхо А.И., Выговский Л.С., Дубенецкий В.А.Цехановский В.В., Архитектурные решения информационных систем. - СПб.: Издательство «Лань» , 20 . с .
    В работе на основе современных тенденций развития информационных систем с позиций системного подхода излагаются теоретические и практически вопросы архитектуры их построения.

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

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

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

    Для студентов учреждений высшего профессионального образования.

    ВВЕДЕНИЕ

    Основной движущей силой современного этапа развития информационных технологий (ИТ) безусловно являются впечатляющие успехи в области микроэлектроники, которые позволили не только выйти на новые уровни производительности и создавать хранилища данных объемом в миллиарды терабайт, но и решить еще более сложную задачу – многократно уменьшить стоимость средств обработки и хранения информации, что привело к беспрецедентному расширению сферы применения ИТ, которые начали активно применяться в таких областях как медицина, предметы домашнего обиходы, транспорт и многих других, где ранее использование ИТ было невозможно по чисто экономическим соображениям. Другим важным источником развития ИТ является наблюдаемый в настоящее время прогресс с области телекоммуникационных технологий. В настоящее время подавляющее большинство источников и средств обработки информации оказываются связаны между собой каналами связи, при этом все чаще становятся доступными широкополосные каналы, которы позволяют передавать мультимедийный трафик. Результатом этого является появление огромного объема данных, многие из которых требуется обрабатывать в реальном времени, что приводит к необходимости применять все более мощные информационные системы (ИС). Эту проблему называют проблемой больших данных (Big Data).

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

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

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

    1. Архитектура может рассматриваться как средство общения между членами команды разработчиков и заказчиками ИС, в число которых могут входить специалисты в самых разных предметных областях.

    2. Современные средства проектирования ИС позволяют генерировать код по архитектурному описанию.

    3. Архитектурное описание или его элементы могут использоваться для построения нескольких однотипных ИС.

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

    В Российской высшей школе подготовка дипломированных специалистов – профессионалов в области ИТ осуществляется по ряду направлений, из которых наиболее глубоко реализуется по направлению 230400 – «Информационные системы и технологии». Студентам, обучающимся по этому направлению, в основном и предназначается данный учебник. Учебник соответствует программе базовой дисциплины «Информационные системы и технологии» Федерального государственного образовательного стандарта III-го поколения и включает в себя 12 глав основного материала. В отличие от первого издания материал второго издания существенно переработан, в частности добавлены главы с описанием архитектурного процесса проектирования.

    Данный учебник может использоваться в качестве основной литературы по курсу Архитектура ИС, который может читаться на 6-7 семестрах обучения. Предполагается, что студенты прослушали курсы Объектно-ориентированное программирование и База данных. Знакомство с курсом Сети ЭВМ желательно, но не обязательно.

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

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

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

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

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

    В восьмой главе детально раскрываются паттерны, антипаттерны.

    В девятой главе описываются современные фреймворки, определяется их роль в в архитектуре ИС, рассматриваются примеры использования.

    В десятой главе раскрываются компонентные технологии ИС. Определяются основные понятия компонента, компонентных технологий. Дается подробная характеристика технологий, основанных на объектной модели компонентов. Значительное внимание уделено широко используемым технологиям CORBA и Enterprise JavaBeans (EJB) .NET..

    В одиннадцатой главе авторами приводится анализ сервисно-ориентированных технологий реализации ИС, в состав которых включены: микровервисные архитектуры и Web-сервисы. Рассматривается архитектура REST, язык XML при работе с Web-сервисами, WSDL описание, UDDI реестр, бизнес-реестр ebXML, спецификации WS-*.

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

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

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


    Глава 1. ОБЩИЕ СВЕДЕНИЯ ОБ ИНФОРМАЦИОННЫХ СИСТЕМАХ

    1.1. Понятие ИС

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

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

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

    В качестве официального определения данного понятия можно рассматривать определение, которое дает Федеральный закон Российской Федерации. В законе Российской Федерации «Об информации, информационных технологиях и о защите информации» [1], в котором под ИТ понимаются процессы, методы поиска, сбора, хранения, обработки, предоставления, распространения информации и способы осуществления таких процессов и методов, а ИС определяется как совокупность содержащейся в базах данных информации и обеспечивающих ее обработку информационных технологий и технических средств. Это определение является достаточно широким, и, в большей степени, отражает пользовательский взгляд на ИС, причем обращает на себя внимание тот факт, что во главу угла ставится понятие базы данных.

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

    Более узкое понимание информационной системы ограничивает её состав данными, программами и аппаратным обеспечением, так, например, ГОСТ РВ 51987 [3] подразумевает под ИС «автоматизированную систему, результатом функционирования которой является представление выходной информации для последующего использования».

    Кроме приведенных выше определений в сети можно найти и другие определения. В настоящем учебнике в качестве базового принимается определение [1], при этом в качестве основного предмета рассмотрения выступает программная компонента ИС. Аппаратные средства, системное программное обеспечение (ПО) и телекоммуникационная компонента не рассматриваются, поскольку практически все современные ИС являются преимущественно программными системами (software-intensive systems), которые строятся на базе готовых аппаратных средств, и именно программная компонента определяет их функциональность, а разработка в основном сводится к разработке прикладного программного обеспечения (ПО) [5, 6].

    1.2. Краткая история развития информационных и программных систем

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

    К первому поколению относят ламповые компьютеры, ко второму — компьютеры, использующие в качестве элементной базы транзисторы и магнитные сердечники, к третьему — компьютеры на интегральных схемах, а к четвёртому — компьютеры на базе микропроцессоров. Вопрос о том, что такое компьютеры пятого поколения до сих пор не имеет однозначного ответа. Одним и первых проектов компьютеров пятого поколения был японский национальный проект, который был анонсирован в середине 80–х годов прошлого века. Авторы этого проекта считали, что компьютеры пятого поколения – это компьютеры, построенные с использованием сверхбольших интегральных схем (СБИС), ориентированные на работу со знаниями. Предполагалось, что компьютеры пятого поколения будут иметь не-фон Неймановскую, а основным языком программирования станет язык Пролог. В целом, проект оказался неудачным. Развитие ИТ не пошло путем создания специализированных процессоров, язык Пролог не получил широкого применения. После неудачи японского проекта машин пятого поколения стало ясно, что в обозримом будущем развитие ИТ пойдет путем стандартизации архитектур процессоров, наращивания их мощности за счет помещения нескольких процессорных ядер на кристалл. Все прочие задачи решаются на программном уровне, хотя в последние годы возрос интерес к аппаратным решениям, посредством использования технологий система на кристалле.

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

    Однако даже на базе транзисторов и памяти на магнитных сердечников удалось создать достаточно мощные компьютеры, обладающие уже значительной оперативной и внешней памятью. Число компьютеров увеличилось в десятки и сотни раз. Они стали применяться не только в научных лабораториях и военных организациях, но и в крупных фирмах для решения задач бизнеса. Сами программы стали значительно более сложными, увеличилось число программистов. Это привело тому, что расходы на разработку прикладного программного обеспечения резко выросли. Стала ощущаться нехватка программистов. Выход из сложившейся ситуации был найден в конце 50-х годов и был связан с использованием языков высокого уровня (ЯВУ). В 1958 году был создан широко известный язык ALGOL, который после доработки стал известен как ALGOL 60. В середине 60-х годов появился используемый до сих пор язык FORTRAN и много ряд других ЯВУ. Появление ЯВУ можно назвать первой революцией в области разработки ПО, что позволило освободить прикладного программиста от необходимости детально знать аппаратную архитектуру компьютера. Теперь программист мог сосредоточиться на решении прикладной задачи. Большинство языков, созданных в этот период можно отнести к процедурно-ориентированным языкам. Господствующим стилем программирования было структурное программирование. Программа должна была иметь четко определенную структуру и состояла из произвольного числа вложенных друг в друга подпрограмм. Это был достаточно удобный подход. Главный программист определял общую структуру программы и интерфейсы отдельных программных модулей и поручал их разработку членам своей команды. Постепенно по мере увеличения мощности и увеличения числа компьютеров стали появляться проблемы, связанные с использованием структурного программирования, основная из которых состояла в том, что, несмотря на все усилия разработчиков, каждое новое приложение приходилось писать «с нуля», что существенно увеличивало стоимость разработки.

    Решение было найдено в переходе на объектно-ориентированные языки программирования (ООЯП). Переход к использованию объектно-ориентированного подхода к созданию ПО можно рассматривать как вторую революцию в сфере разработки программного обеспечения. В рамках внедрения объектно-ориентированного подхода в практику проектирования ИС можно выделить 3 фазы: использование ООЯП, использование методологии объектно-ориентированного проектирования (ООП) и использование подхода к разработке, известного как Архитектура, управляемая моделью (Model Driven Architecture, MDA).

    Идеи, положенные в основу объектно-ориентированных ООЯП состоят в следующем:

    1. Всё является объектом.

    2. Вычисления осуществляются путём обмена данными между объектами.

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

    4. Каждый объект является представителем класса, который выражает общие свойства объектов.

    5. В классе задаётся поведение объекта, Все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия.

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

    Сила ООЯП состоит в том, программист может использовать готовые классы, создавать из них собственные классы, используя механизмы наследования. ООЯП появились достаточно давно. В частности, еще в 60-х годах появился язык Simula-67, который мог работать с объектами, классами, виртуальными методами и др. Широкого практического применения этот язык не получил. Значительно позже появился другой достаточно известный ООЯП - Smalltalk-80. Широкое распространение ООЯП связано с языком С++, ранние версии которого стали доступны с начала 80-х годов, хотя стандарт на этот язык был согласован только в 1998 году. Успех С++ связан с 2 моментами. Во, первых он построен на базе повсеместно распространенного языка С, в во-вторых, он позволяет пользователю постепенно приобщаться к объектно-ориентированному программированию. В настоящее время наряду с С++ используются много других языков ООЯП, Java, Delphi, C#, Python, Ruby и др.

    Второй фазой «объектно-ориентированной революции» можно считать появление объектно-ориентированного проектирования (ООП). Идея ООП состоит в следующем. Объектно-ориентированная парадигма может быть использована не только для создания алгоритмического языка, но и для моделирования поведения объектов реального мира, в частности, с использованием графических языков моделирования. Наибольшее распространение получил Unified Modeling Language (UML) — унифицированный язык моделирования — язык графического описания для объектного моделирования в области разработки программного обеспечения, моделирования бизнес-процессов, системного проектирования и отображения организационных структур. Первая версия UML появилась в 1997 году. Более подробно UML будет рассмотрен ниже. Основная привлекательность данного языка состоит в том, что, используя соответствующие инструментальные средства, от UML-моделей можно перейти к программному коду на ЯВУ. В этом плане UML-модели становятся основным рабочим инструментом прикладного программиста.

    Третьей фазой «объектно-ориентированной революции» является использование модельно-ориентированного подхода к разработке ПО, в частности, подхода известного как Архитектура, управляемая моделью (Model Driven Architecture, MDA), суть которого состоит в построении абстрактной метамодели управления и обмена метаданными (моделями) и задании способов ее трансформации в поддерживаемые технологии программирования. Более подробно MDA подход будет рассмотрен ниже.

    Третьей революцией в области разработки ПО стал перевод процесса разработки на промышленные рельсы. Если на первых этапах развития ИТ программирование часто считалось уделом избранных и качество создаваемого ПО могло зависеть от квалификации отдельного программиста, а само программирование было сродни искусству, то к концу 80-х годов стала очевидна недопустимость подобного подхода, и осознана необходимость ставить разработку ПО на промышленные рельсы, что разработка ПО должна вестись с использованием сертифицированных технологий, должна существовать система контроля качества. Работы по решению данной проблемы велись в 3 основных направлениях: разработка методологий проектирования ПО, разработка систем контроля качества разрабатываемого ПО и разработка вопросов организации процесса проектирования. Последние 2 аспекта выходят за рамки настоящего учебника. Современные подходы к тестированию ПО достаточно подробно рассмотрены, например, в [7], а вопросы организации процесса проектирования достаточно подробно рассмотрены в [8].

    Программные архитектуры являются одним из важных компонентов современного подхода к проектированию программных систем. Термин «программная архитектура» впервые появился в 1991 году [9] и быстро стал очень популярным. В 90-х годах велись интенсивные исследования и разработки в области программных архитектур. Были описаны основные архитектурные стили и паттерны, предложен ряд языков описания архитектур (Architecture Description Languages (ADL). После 2000 года программные архитектуры стали развиваться еще активнее. Если раньше обычно говорили о некоторой архитектурной фазе проектирования, то в 2000-х годах все чаще начинают говорить об архитектурном подходе к проектированию, ставя архитектуру во главу угла процесса проектирования.

    Важной вехой на пути программных архитектур послужило появление в 2000 году первого стандарта IEEE 1471-2000. В середине 2003 года вышла первая версия языка объектно-ориентированного моделирования UML. В это же время появляется свободно распространяемая система поддержки архитектурного проектирования ArchStudio.

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

    Следует заметить, что теория и практика работы с программными архитектурами постоянно совершенствуется. В настоящее время на повестке дня стоят такие вопросы как построения систем, которые могут определить идентичность архитектурного описания и реализации, автоматическая генерация тестов в соответствии с архитектурным описанием и, наконец, выход на решение проблемы получения архитектурного описания по описанию требований заказчика и последующей генерацией кода по архитектурному описанию. Следует отметить, что решение этих задач вряд ли возможно без перехода на уровень работы со знаниями.
      1   2   3   4   5   6   7   8   9   ...   30


    написать администратору сайта