Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Архитектурное решение. Данную архитектуру мы считаем нужным описать в трех представлениях




Данную архитектуру мы считаем нужным описать в трех представлениях. Пред­ставление процессов разъясняет реализацию распределения; многоуровневое пред­ставление помогает понять механизм разделения задач в Ship System 2000; наконец, представление декомпозиции на модули демонстрирует распределение обязан­ностей между несколькими крупными элементами системы: системными функ­циями (system functions) и группами системных функций (system function groups). Охарактеризовав архитектуру в категориях этих трех представлений, мы обсу­дим ряд проблем сопровождения и применения линейки продуктов, с которыми столкнулась компания CelsiusTech.

Представление процессов: удовлетворение требований по распределению и средства расширения линейки продуктов

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

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

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

♦ В качестве механизма межпроцессного взаимодействия выступает прото­кол транспортировки данных между Ada-приложениями; он обеспечивает независимость от местоположения, а значит, и возможность передачи дан­ных между приложениями на любых процессорах. Такая «анонимность распределения процессоров» позволяет переносить процессы с одного про­цессора на другой, проводить предпрогонную регулировку производитель­ности и реконфигурацию в период прогона (обе эти операции относятся к средствам обеспечения отказоустойчивости) без внесения изменений в исходный код.

♦ Средства назначения Ас1а-задач участвуют в реализации модели поточной обработки.

Выполняя свои функции, производитель данных не знает, кто окажется их потребителем. Содержание и обновление данных концептуально отделены от их использования. Это наглядный пример применения тактики реализации моди­фицируемости под названием «введение посредника» посредством образца класс­ной доски. Основным потребителем данных выступает компонент человеко-ма­шинного интерфейса. Компонент, в котором содержится репозитарий, называется универсальным менеджером объектов (common object manager, COOB).

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

Ниже перечислены соглашения по производству данных.

♦ Отправка данных производится только в случае их изменения. Это предот­вращает появление в сети избыточного трафика сообщений.

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

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

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

♦ Благодаря распределению данных время отклика на запрос о поиске сокра­щается.

Рис. 15.13. Применение (и обход) менеджера СООВ

 

♦ В системе обеспечивается долгосрочная непротиворечивость данных. Крат­косрочная противоречивость допускается.

♦ Сетевые соглашения заключаются в следующем:

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

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

♦ «Пропуск» приложением нерегулярных обновлений данных считается до­пустимым. К примеру, местоположение судна постоянно меняется, и про­пущенное обновление информации о местоположении можно будет вывес­ти на основе сопутствующих обновлений.

♦ Существует также ряд других соглашений, не относящихся ни к одному из вышеперечисленных аспектов:

♦ Настраиваемость языка Ada широко задействуется как механизм повтор­ного использования.

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

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




Поделиться с друзьями:


Дата добавления: 2015-04-25; Просмотров: 575; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.