Рейтинг пользователей: / 0
ХудшийЛучший 

Рачёв С.В.

ОБЗОР АРХИТЕКТУРНЫХ СТИЛЕЙ ПРОГРАММНЫХ СИСТЕМ АВТОМАТИЗАЦИИ ЭКСПЕРИМЕНТАЛЬНЫХ УСТАНОВОК

Томский государственный университет

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

Ключевые слова: программная архитектура, автоматизация установок, архитектурные стилb, распределенные вычисления

This report examines the classic types of architectures of software systems, the conclusion about the applicability of specific types for use in automatic pilot plants.

Keywords: software architecture, automation, architecture styles, distibuted computation.

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

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

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

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

В архитектуре каналов и фильтров каждый компонент(фильтр) имеет набор входов и выходов. Компонент читает поток данных со своих входов, и генерирует выходной поток, посылая результат со своих выходов.  Особенностью стиля является то, что фильтры должны быть независимы друг от друга — состояние одного фильтра не должно оказывать никакого влияния на другие фильтры.[2].

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

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

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

Архитектура виртуальных машин рассматривает приложение как программу, написанную на специальном языке. Архитектура виртуальных машин очень полезна, если приложение состоит из процессов со сложными элементами, которые можно выразить с помощью грамматики.[3]

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

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

Литература:

1: Кондратьев Денис,  Service Oriented Architecture, Visual .NET user group  http://www.inln.ru/vng/Publications.aspx (03.07.2011)

2: Shaw M., Clements P., A Field Guide to Boxology:Preliminary Classification of Architectural Styles for Software Systems,  Carnegie Mellon University, 1996

3: Брауде Э., Технология разработки программного обеспечения. - Питер, 2004, - 655c.

 

 
Секции-октябрь 2011
КОНФЕРЕНЦИЯ:
  • "Научные исследования и их практическое применение. Современное состояние и пути развития.'2011"
  • Дата: Октябрь 2011 года
  • Проведение: www.sworld.com.ua
  • Рабочие языки: Украинский, Русский, Английский.
  • Председатель: Доктор технических наук, проф.Шибаев А.Г.
  • Тех.менеджмент: к.т.н. Куприенко С.В., Федорова А.Д.

ОПУБЛИКОВАНО В:
  • Сборник научных трудов SWorld по материалам международной научно-практической конференции.