Новые книги

В книге показано, почему в современном мире успешные спортсмены просто обречены заниматься самопиаром. Это помогает им выстраивать спортивную карьеру, а также позволяет найти своё место в жизни после её завершения. Используя игровые методы, предложенные автором книги, вы легко научитесь основным приёмам самопиара. В книгу включены конструкторы биографии, имиджа, легенды и принципы работы в Instagram.

Для спортсменов любого возраста и уровня мастерства, тренеров, спортивных психологов, PR-менеджеров.
IT-принцип «agile» стал мантрой цифровой эпохи. С ростом проектов, переходом от монолитных приложений к системе микросервисов, увеличением и накоплением продуктов возникают вопросы, которые требуют совершенно иного подхода. Теперь наибольший интерес вызывает находящаяся на стыке разработки и операционного управления методология DevOps.

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

Книга «Философия DevOps» познакомит вас с техническими, культурными и управленческими аспектами devops-культуры и позволит организовать работу так, чтобы вы получали удовольствие от разработки, поддержки и использования программного обеспечения.

Обзор архитектур прикладных систем

3.1.8. Обзор архитектур прикладных систем

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

  • системы пакетной обработки - обработка данных производится один раз для каждого набора входных данных;
  • системы непрерывной обработки - обработка данных производится непрерывно над сменяющимися входными данными (рисунок 3.5);
  • системы с интерактивным интерфейсом - системы, управляемые внешними воздействиями (рисунок 3.6);
  • системы динамического моделирования - системы, моделирующие поведение объектов внешнего мира;
  • системы реального времени - системы, в которых преобладают строгие временные ограничения;
  • системы управления транзакциями - системы, обеспечивающие сортировку и обновление данных; имеют коллективный доступ;
  • типичной системой управления транзакциями является СУБД.

При разработке системы пакетной обработки необходимо выполнить следующие шаги:

  • Разбиваем полное преобразование на фазы, каждая из которых выполняет некоторую часть преобразования; система описывается диаграммой потока данных, которая строится при разработке функциональной модели.
  • Определяем классы промежуточных объектов между каждой парой последовательных фаз; каждая фаза знает об объектах, расположенных на объектной диаграмме до и после нее (эти объекты представляют соответственно входные и выходные данные фазы).
  • Составляем объектную модель каждой фазы (она имеет такую же структуру, что и модель всей системы в целом: фаза разбивается на подфазы); разрабатываем каждую подфазу.

Рис. 3.5. Система непрерывной обработки: машинная графика

При разработке системы непрерывной обработки необходимо выполнить следующие шаги:

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

Рис. 3.6. Система с интерактивным интерфейсом: ATM

При разработке системы с интерактивным интерфейсом необходимо выполнить следующие шаги:

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

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

  • По объектной модели определяем активные объекты; эти объекты имеют атрибуты с периодически обновляемыми значениями.
  • Определяем дискретные события; такие события соответствуют дискретным взаимодействиям объекта (например, включение питания) и реализуются как операции объекта.
  • Определяем непрерывные зависимости (например, зависимости атрибутов от времени); значения таких атрибутов должны периодически обновляться в соответствии с зависимостью.
  • Моделирование управляется объектами, отслеживающими временные циклы последовательностей событий.

Разработка системы реального времени аналогична разработке системы с интерактивным интерфейсом.

При разработке системы управления транзакциями необходимо выполнить следующие шаги:

  • Отображаем объектную модель на базу данных.
  • Определяем асинхронно работающие устройства и ресурсы с асинхронным доступом; в случае необходимости определяем новые классы.
  • Определяем набор ресурсов (в том числе - структур данных), к которым необходим доступ во время транзакции (участники транзакции).
  • Разрабатываем параллельное управление транзакциями; системе может понадобиться несколько раз повторить неудачную транзакцию прежде, чем выдать отказ.

Назад | Содержание | Вперед