- •Часть 1. Планирование архитектуры
- •Заключение
- •Дополнительная литература
- •4.10. Дискуссионные вопросы
- •Глава 8. Моделирование условий полета. Конкретный пример архитектуры, ориентированной на интегрируемость
- •8.4. Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 9. Документирование программной архитектуры
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 10. Реконструкция программной архитектуры
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 6. Управление воздушным движением. Пример разработки, ориентированной на высокую готовность
- •Глава 7. Проектирование архитектуры
- •Глава 11. Метод анализа компромиссных архитектурных
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 12. Метод анализа стоимости и эффективности — количественный подход к принятию
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 13. Всемирная паутина. Конкретный пример реализации способности к взаимодействию 374
- •Глава 14. Линейки программных продуктов.
- •Заключение
- •Дополнительная литература
- •Глава 15. CelsiusTech. Конкретный пример разработки
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Заключение
- •Часть 1. Планирование архитектуры
- •Часть 2. Создание архитектуры
- •Часть 3. Анализ архитектуры
- •Часть 4. От одной системы к множеству
- •Часть 1
- •Глава 1
- •1.1. Откуда берутся варианты архитектуры?
- •1.2. Программный процесс и архитектурно-экономический цикл
- •1.3. Из чего складывается «качественная» архитектура?
- •1.4. Заключение
- •1.5. Дискуссионные вопросы
- •Глава 2
- •2.1. Чем является программная архитектура и чем она не является
- •2.2. Другие взгляды на архитектуру
- •2.3. Архитектурные образцы, эталонные модели и эталонные варианты архитектуры
- •2.4. Почему программная архитектура так важна?
- •2.5. Архитектурные структуры и представления
- •2.6. Заключение
- •2.7. Дополнительная литература
- •2.8. Дискуссионные вопросы
- •Глава 3
- •3.1. Связь с архитектурно-экономическим циклом
- •3.2. Требования и атрибуты качества
- •3.3. Архитектура авиационной электронной системы а-7е
- •3.4. Заключение
- •3.5. Дополнительная литература
- •3.6. Дискуссионные вопросы
- •Часть 2
- •Глава 4
- •4.1. Функциональность и архитектура
- •4.2. Архитектура и атрибуты качества
- •4.3. Атрибуты качества системы
- •4.4. Практическое применение сценариев атрибутов качества
- •4.5. Другие атрибуты качества системы
- •4.6. Коммерческие атрибуты качества
- •4.7. Атрибуты качества архитектуры
- •4.8. Заключение
- •4.9. Дополнительная литература
- •4.10. Дискуссионные вопросы
- •Глава 5
- •5.1. Определение тактики
- •5.2 Тактики реализации готовности
- •5.3. Тактики реализации модифицируемости
- •5.4. Тактики реализации производительности
- •5.5. Тактики реализации безопасности
- •5.6. Тактики реализации контролепригодности
- •5.7. Тактики реализации практичности
- •5.8. Взаимосвязь тактик и архитектурных образцов
- •5.9. Архитектурные образцы и стили
- •5.10. Заключение
- •5.11. Дополнительная литература
- •5.12. Дискуссионные вопросы
- •Глава 6
- •6.1. Связь с архитектурно-экономическим циклом
- •6.2. Требования и атрибуты качества
- •6.3. Архитектурное решение
- •6.4. Заключение
- •6.5. Дополнительная литература
- •6.6. Дискуссионные вопросы
- •Глава 7
- •7. 1. Архитектура в контексте жизненного цикла
- •7.2. Проектирование архитектуры
- •1. Выбор модуля для декомпозиции
- •2А. Выбор архитектурных мотивов
- •2Ь. Выбор архитектурного образца
- •2D. Задание интерфейсов дочерних модулей
- •7.3. Формирование рабочих групп
- •7.5. Заключение
- •7.6. Дополнительная литература
- •7.7. Дискуссионные вопросы
- •Глава 8
- •8.1 Связь с архитектурно- экономическим циклом
- •8.2. Требования и атрибуты качества
- •8.3. Архитектурное решение
- •8.2 Заключение
- •8.5 Дополнительная литература
- •8.6. Дискуссионные вопросы
- •Глава 9
- •9.1. Варианты применения архитектурной документации
- •9.2. Представления
- •9.3 Выбор значимых представлений
- •9.4. Документирование представления
- •9.5. Перекрестная документация
- •9.6. Унифицированный язык Моделирования
- •9.7. Заключение
- •9.8. Дополнительная литература
- •9.9. Дискуссионные вопросы
- •Глава 10
- •10.1. Введение
- •10.2. Извлечение информации
- •10.3. Создание базы данных
- •10.4. Объединение представлений
- •10.5. Реконструкция
- •10.6. Пример
- •10.7. Заключение
- •10.8. Дополнительная литература
- •10.9. Дискуссионные вопросы
- •Часть 3
- •Глава 11
- •Результаты проведения оценки по методу атам
- •Этапы atam
- •1 Источник: приводится по изданию [Clements 02а] (адаптированная версия).
- •11.4. Система Nightingale: конкретный пример проведения оценки по методу атам
- •11.5. Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 12
- •Результаты оценки по методу свам
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 13
- •13.1. Отношение к архитектурноэкономическому циклу
- •13.4. Еще одна итерация архитектурноэкономического цикла: эволюция вариантов веб-архитектуры систем электронной коммерции
- •13.7. Заключение
- •13.8. Дополнительная литература
- •13.9. Дискуссионные вопросы
- •Часть 4
- •Глава 14
- •За счет чего работают линейки программных продуктов?
- •Варианты архитектуры линеек продуктов
- •Факторы, усложняющие применение линеек программных продуктов
- •Заключение
- •Дополнительная литература
- •Дискуссионный вопрос
- •Глава 15
- •Связь с архитектурноэкономическим циклом
- •Требования и атрибуты качества
- •Архитектурное решение
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 16
- •Связь с архитектурноэкономическим циклом
- •16.3. Архитектурное решение
- •16.4. Решения по размещению системы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 17
- •17.2. Требования и атрибуты качества
- •17.3. Архитектурное решение
- •17.4. Механизм реализации атрибутов качества в архитектуре Luther
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 18
- •18.1. Воздействие компонентов на архитектуру
- •18.2. Архитектурное несоответствие
- •18.3. Компонентное проектирование как поиск
- •18.4. Пример приложения aseilm
- •18.5. Заключение
- •18.6. Дополнительная литература
- •Глава 19
- •19.1. Снова архитектурноэкономический цикл
- •19.2. Создание архитектуры
- •19.3. Архитектура в рамках жизненного цикла
- •Влияние коммерческих компонентов
- •Заключение
- •8 Все перечисленные специалисты работают в корпорации Inmedius (Питтсбург, сша).
Глава 17
Архитектура Luther. Конкретный пример мобильных приложений на основе архитектуры J2EE
(в соавторстве с Таней Басс, Джеймсом Беком, КеллиДолан, КуйвейЛи, АндреасомЛеером, РичардомМартином, Уильямом Россом, Тобиасом Вайсхауплем и Гоегори Железником)8
Бог — в деталях.
Людвиг Muc ван дер Роэ
Функции рабочих, управляющих или обслуживающих крупные транспортные средства (например, танки и самолеты) или объекты промышленной инфраструктуры (в частности, мосты и нефтяные вышки), крайне трудно компьютеризировать. Поскольку объекты, на которых они трудятся, отличаются большими размерами, работать с ними приходится непосредственно на месте их расположения, на открытом воздухе или в специальных помещениях — ни одна из этих категорий не предусматривает возможности применения настольных компьютеров. Таким образом, решения, как правило, сводятся к использованию беспроводной инфраструктуры и ручных/бесконтактных вычислительных устройств.
Компания Inmedius, занимающаяся техническим обеспечением квалифицированных операционистов и рабочих по обслуживанию, появилась в 1995 году как продолжение проекта по переносным компьютерам Университета Карнеги-Меллон (см. врезку «История переносных компьютеров»). Начав с разработки единичных продуктов, компания вскоре осознала необходимость в общих решениях с возможностью оперативной подгонки под потребности заказчиков.
Функции, выполняемые квалифицированными рабочими, требуют серьезного конторского обеспечения. Помимо сбора отчетов о проблемах необходимо проводить планирование ремонта, учета и повторного заказа устанавливаемых запчастей, а также заказа журнала техобслуживания. Подобного рода технологическое управление предполагает взаимодействие квалифицированного рабочего с конторским сотрудником, сидящим за настольным компьютером.
Имея в виду создать общую инфраструктуру разработки специализированных решений задач по обслуживанию, компания Inmedius спроектировала архитектуру Luther. Основанная на корпоративной apxитектуре Java 2 (Java 2 Enterprise Edition, J2EE), она являет собой приложение универсальной архитектуры J2ЕЕ/ EJB (см. главу 16) в среде, в которой конечный пользователь, действующий в рамках беспроводной сети, работает с устройством ограниченных возможностей на входе-выходе и/или ограниченных вычислительных возможностей.
ИСТОРИЯ ПЕРЕНОСНЫХ КОМПЬЮТЕРОВ
Есть мнение, согласно которому первым переносным компьютером стали наручные часы. Изобретенные около 1900 года, они поначалу оказались не способны составить конкуренцию часам карманным. Действительно, зачем носить часы на запястье, если их можно положить в карман и легко оттуда достать? Зачем покупать новые часы, если старые исправно работают? Все изменилось во время Первой мировой войны, когда для того чтобы солдаты британской армии могли согласованно вступать в атаку, не выпуская из рук оружие, им стали выдавать наручные часы. После этого такие часы как символ поддержки «парней в окопах» стали необычайно популярны в самой Британии. Сегодня карманные часы встречаются все реже.
К началу 1990-х годов технология вышла на такой уровень, при котором стали реальностью переносные цифровые полнофункциональные вычислительные устройства. Исследования по применению такого рода устройств, помимо прочих учреждений, проводились в группе по переносным компьютерам (Wearable Group) при Университете Карнеги-Меллон (руководитель группы — Дэн Севёрек (Dan Siewiorek)). Переносные компьютеры в этой группе рассматривались как средство исполнения производственных функций в местах содержания крупных транспортных средств (например, самолетов) — иначе говоря, на открытом воздухе или в крупных помещениях наподобие ангаров и железнодорожных депо.
Поскольку акцент ставился на производственные функции, требовалось в первую очередь обеспечить удобство использования и сложность проектного решения, достаточную для достижения поставленных задач. Студенты проектировали и конструировали компьютеры, а сотрудники группы по переносным компьютерам проводили с ними эксперименты на реальных рабочих местах. Эксперименты оказались успешными, на переносные компьютеры сформировался спрос, и для его удовлетворения была организована компания Inmedius.
В то же самое время в информационной лаборатории (Media Laboratory) при Массачусетском технологическом институте действовала другая группа, сотрудники которой называли себя «borgs». Переносный компьютер они рассматривали как потребительский продукт, призванный изменить жизнь своего владельца, и старались доказать справедливость этого постулата на собственном примере. Они пребывали в постоянном поиске новых вариантов применения такого компьютера и приложений, ориентированных на запоминание данных. В частности, им принадлежат идеи использования проводимости человеческой кожи как средства поддержания сетевых соединений и обмена цифровыми визитными карточками в момент рукопожатия двух владельцев переносных компьютеров.
К концу 1990-х годов две группы объединили свои усилия в деле утверждения переносных компьютеров как академической дисциплины. Крупные коммерческие предприятия начали проявлять интерес к предложениям разных компаний по поставкам переносных компьютеров и головных дисплеев. Сегодня, по мере того как аппаратные средства стремятся к большей компактности, а программные средства наращивают сложность (об этом, в частности, пойдет речь в настоящей главе), переносные компьютеры имеют все шансы получить серьезное распространение.
-LJB
17.1. Связь с архитектурно экономическим циклом
На рис. 17.1 изображен архитектурно-экономический цикл (Architecture Business Cycle, ABC) компании Inmedius и архитектуры Luther. Среди задач по качеству на рисунке обозначены возможность повторного использования, производительность, модифицируемость, гибкость потребительских устройств, а также возможность взаимодействия со стандартными коммерческими инфраструктурами; все они, как обычно, обусловлены коммерческими задачами заказчика и конечного пользователя.
Рис. 17.1. Архитектурно-экономический цикл компании Inmedius и архитектуры Luther
Факторы влияния на архитектуру
В нижеследующих разделах мы разберем обстоятельства, оказавшие на архитектуру Luther то или иное воздействие.
Конечные пользователи
Компания Inmedius специализируется на компьютеризации функций квалифицированных рабочих. На рис. 17.2 изображен рабочий с одной из аппаратных конфигураций, поддерживаемых приложениями Luther. Рабочий осуществляет производственный процесс, этапы которого выводятся на головной дисплей. Компьютер, в котором в качестве основного входного устройства используется диск управления, закреплен на груди рабочего. Производственный процесс описан в инструкции, хранящейся на конторских компьютерах; по мере исполнения его этапов (иногда их насчитывается более 500) на переносной компьютер передаются соответствующие страницы инструкции. Посредством системы рабочий сообщает и контору о выполнении отдельных компонентов процесса. К примеру, установив деталь, он указывает ее инвентарный номер; после этого конторские сотрудники вносят соответствующие изменения в опись и проводят аналитические действия, связанные с контролем качества.
Рис. 17.2. Решение от Inmedius в практической деятельности квалифицированного рабочего.
(Перепечатывается с разрешения корпорации Inmedius.)
В зависимости от процесса у рабочих бывают заняты одна или обе руки — следовательно, вводить в компьютер данные они не могут. Более того, в некоторых случаях во время выполнения своих функций рабочие находятся в движении.
Поскольку требования по мобильности и количеству свободных (для ввода данных) рук, выставляемые разными заказчиками, непостоянны, каждому процессу потенциально соответствует индивидуальная аппаратная конфигурация.
Компания-разработчик
Если на основе архитектуры Luther можно будет разрабатывать сложные корпоративные решения, затрачивая на это меньше времени, чем на производство единичных систем, компания Inmedius добьется значительного конкурентного преимущества. Для этого компании необходимо кардинально повысить оперативность выхода корпоративных решений на рынок. Сохранить конкурентоспособность на целевых рынках Inmedius сможет лишь в том случае, если сократит циклы разработки таких решений до нескольких месяцев.
Разработка решений должна проводиться группами из нескольких десятков инженеров в кратчайшие сроки и с учетом экономических соображений. Необходимым условием удовлетворения потребностей заказчика является высокое качество продукции. Кроме того, артефакты поставляемого программного обеспечения должны предусматривать легкость проведения модификаций — любые коррективы н улучшения должны вноситься сотрудниками Inmedius без особого труда и не должны подрывать целостность архитектуры первоначального решения.
Технологическая база
В архитектуре Luther отражены новейшие на момент ее создания разработки в области программного и аппаратного обеспечения. В главе 16 мы рассматривали apxитектуру J2EE, на основе которой для коммерческих организаций разрабатываются корпоративные решения. Она успешно удовлетворяет выставленное к Luther требование относительно возможности взаимодействия с конторскими процессами. Кроме того, J2EE упрощает задачу группировки предметно-ориентированных прикладных функций в компоненты, допускающие повторное использование и разного рода сочетания.
Помимо совершенствования программного обеспечения на Luther оказали воздействие новые аппаратные технологии — в частности, это касается необходимости поддержки компактных беспроводных компьютеров с речевым вводом и головными дисплеями с высоким разрешением. С другой стороны, в разных условиях требуются разные типы устройств, для каждого из которых характерен индивидуальный набор возможностей. Отсюда — требование к гибкости Luther в отношении типов поддерживаемых пользовательских интерфейсов.
Влияние архитектуры на компанию
Результаты влияния архитектуры Luther на компанию-разработчика проявляются в областях организационной структуры, опыта разработчиков программного обеспечения и принципов коммерческой деятельности.
Организационная структура
Еще до создания архитектуры Luther компания Inmedius позиционировала себя как поставщика решений; каждое из них создавалось для конкретного заказчика в качестве единичного приложения. С организационной точки зрения крупнейшей инженерной группой в компании была группа решений (Solution Group). Во время разработки архитектуры Luther была создана группа продуктов (Product Group, с группой разработки компонентов (Component Development Group) в своем составе), отвечавшая за конструирование и сопровождение предметно-ориентированных компонентов, из которых сотрудники группы решений составляли клиентские продукты. Группа продуктов (Product Group) специализируется на развитии общих направлений работы на рынке, в то время как группа решений (Solution Group) занимается проектированием конкретных приложений для конкретных заказчиков. Это яркий пример двухэлементной организационной структуры, характерной для компаний, действующих в рамках линеек продуктов. Структура эта описана в главе 14 и проиллюстрирована конкретным примером компании CelsiusTech в главе 15.
Опыт разработчиков программного обеспечения
Еще до начала работы над архитектурой Luther в компании Inmedius работали опытные и квалифицированные разработчики программных продуктов. Тем не менее, когда речь зашла о создании Luther, им пришлось приспособиться к ряду новых критериев, в частности:
изучить язык программирования Java;
получить сертификаты Sun Java Programmer;
изучить архитектуру приложений J2EE;
изучить механизмы пакетирования возможностей в рамках спецификаций J2EE и EJB;
научиться пользоваться Java-сервлетами и JavaServer Pages;
обучиться применению различных cлyжб J2EE, предусмотренных в реализации этой спецификации.
Принципы коммерческой деятельности
Архитектура Luther оказала на ведение компанией Inmedius коммерческой деятельности очень заметное влияние. Как мы уже говорили (см. главу 14), для разработки единичных решений требуются обширные ресурсы. Неоптимальное расходование ресурсов и ограниченное восприятие, характерные для процесса разработки единичных систем, препятствуют складыванию глобального мышления. Переход к линейке продуктов на основе архитектуры Luther позволил компании Inmedius сосредоточиться на построении линеек, отказавшись от ориентации на индивидуальные системы. Более того, равно как и в случае с CelsiusTech, Inmedius удалось выйти на новые рынки, которые оказались своеобразным обобщением — как в коммерческом, так и в техническом смысле — тех сегментов рынка, на которых компания присутствовала ранее.
