Понятие сервис ориентированной архитектуры.
Се́рвис-ориенти́рованная архитекту́ра (англ. SOA, service-oriented architecture) — модульный подход к разработке программного обеспечения (в дальнейшем ПО), основанный на использовании сервисов (служб) со стандартизированными интерфейсами.
В основе SOA лежат принципы многократного использования функциональных элементов информационных технологий (в дальнейшем ИТ), ликвидации дублирования функциональности в ПО, унификации типовых операционных процессов, обеспечения перевода операционной модели компании на централизованные процессы и функциональную организацию на основе промышленной платформы интеграции.
Компоненты программы могут быть распределены по разным узлам сети, и предлагаются как независимые, слабо связанные, заменяемые сервисы-приложения. Программные комплексы, разработанные в соответствии с SOA, часто реализуются как набор веб-сервисов, интегрированных при помощи известных стандартных протоколов (SOAP и т. п.)
Интерфейс компонентов SOA-программы предоставляет инкапсуляцию деталей реализации конкретного компонента (операционной системы, платформы, языка программирования, вендора, и т. п.) от остальных компонентов. Таким образом, SOA предоставляет гибкий и элегантный способ комбинирования и многократного использования компонентов для построения сложных распределённых программных комплексов.
SOA хорошо зарекомендовала себя для построения крупных корпоративных программных приложений. Целый ряд разработчиков и интеграторов предлагают инструменты и решения на основе SOA (например, платформы Intel SOA Expressway, JBoss SOA Platform, IBM WebSphere, Software AG webMethods, Oracle/BEA Aqualogic, Microsoft Windows Communication Foundation, SAP NetWeaver, TIBCO).
Понятие жизненного цикла программного обеспечения.
Жизненный цикл программного обеспечения (ПО) — период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации. Этот цикл — процесс построения и развития ПО.
Модели жизненного цикла, их преимущества и недостатки.
Водопадная (каскадная, последовательная) модель
Водопадная модель жизненного цикла (англ. waterfall model) была предложена в 1970 г. Уинстоном Ройсом. Она предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке. Переход на следующий этап означает полное завершение работ на предыдущем этапе. Требования, определенные на стадии формирования требований, строго документируются в виде технического задания и фиксируются на все время разработки проекта. Каждая стадия завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков.
Этапы проекта в соответствии с каскадной моделью:
Формирование требований;
Проектирование;
Реализация;
Тестирование;
Внедрение;
Эксплуатация и сопровождение.
Преимущества:
Полная и согласованная документация на каждом этапе;
Легко определить сроки и затраты на проект.
Недостатки:
В водопадной модели переход от одной фазы проекта к другой предполагает полную корректность результата (выхода) предыдущей фазы. Однако неточность какого-либо требования или некорректная его интерпретация в результате приводит к тому, что приходится «откатываться» к ранней фазе проекта и требуемая переработка не просто выбивает проектную команду из графика, но приводит часто к качественному росту затрат и, не исключено, к прекращению проекта в той форме, в которой он изначально задумывался. По мнению современных специалистов, основное заблуждение авторов водопадной модели состоит в предположениях, что проект проходит через весь процесс один раз, спроектированная архитектура хороша и проста в использовании, проект осуществления разумен, а ошибки в реализации легко устраняются по мере тестирования. Эта модель исходит из того, что все ошибки будут сосредоточены в реализации, а потому их устранение происходит равномерно во время тестирования компонентов и системы[2]. Таким образом, водопадная модель для крупных проектов мало реалистична и может быть эффективно использована только для создания небольших систем[3].
Итерационная модель
Альтернативой последовательной модели является так называемая модель итеративной и инкрементальной разработки (англ. iterative and incremental development, IID), получившей также от Т. Гилба в 70-е гг. название эволюционной модели. Также эту модель называют итеративной моделью и инкрементальной моделью[4].
Модель IID предполагает разбиение жизненного цикла проекта на последовательность итераций, каждая из которых напоминает «мини-проект», включая все процессы разработки в применении к созданию меньших фрагментов функциональности, по сравнению с проектом в целом. Цель каждой итерации — получение работающей версии программной системы, включающей функциональность, определённую интегрированным содержанием всех предыдущих и текущей итерации. Результат финальной итерации содержит всю требуемую функциональность продукта. Таким образом, с завершением каждой итерации продукт получает приращение — инкремент — к его возможностям, которые, следовательно, развиваются эволюционно. Итеративность, инкрементальность и эволюционность в данном случае есть выражение одного и то же смысла разными словами со слегка разных точек зрения[3].
По выражению Т. Гилба, «эволюция — прием, предназначенный для создания видимости стабильности. Шансы успешного создания сложной системы будут максимальными, если она реализуется в серии небольших шагов и если каждый шаг заключает в себе четко определённый успех, а также возможность «отката» к предыдущему успешному этапу в случае неудачи. Перед тем, как пустить в дело все ресурсы, предназначенные для создания системы, разработчик имеет возможность получать из реального мира сигналы обратной связи и исправлять возможные ошибки в проекте»[4].
Подход IID имеет и свои отрицательные стороны, которые, по сути, — обратная сторона достоинств. Во-первых, целостное понимание возможностей и ограничений проекта очень долгое время отсутствует. Во-вторых, при итерациях приходится отбрасывать часть сделанной ранее работы. В-третьих, добросовестность специалистов при выполнении работ всё же снижается, что психологически объяснимо, ведь над ними постоянно довлеет ощущение, что «всё равно всё можно будет переделать и улучшить позже»[3].
Различные варианты итерационного подхода реализованы в большинстве современных методологий разработки (RUP, MSF, XP).
Спиральная модель
Спиральная модель (англ. spiral model) была разработана в середине 1980-х годов Барри Боэмом. Она основана на классическом цикле Деминга PDCA (plan-do-check-act). При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования.
Каждая итерация соответствует созданию фрагмента или версии ПО, на ней уточняются цели и характеристики проекта, оценивается качество полученных результатов и планируются работы следующей итерации.
На каждой итерации оцениваются:
риск превышения сроков и стоимости проекта;
необходимость выполнения ещё одной итерации;
степень полноты и точности понимания требований к системе;
целесообразность прекращения проекта.
Важно понимать, что спиральная модель является не альтернативой эволюционной модели (модели IID), а специально проработанным вариантом. К сожалению, нередко спиральную модель либо ошибочно используют как синоним эволюционной модели вообще, либо (не менее ошибочно) упоминают как совершенно самостоятельную модель наряду с IID[3].
Отличительной особенностью спиральной модели является специальное внимание, уделяемое рискам, влияющим на организацию жизненного цикла, и контрольным точкам. Боэм формулирует 10 наиболее распространённых (по приоритетам) рисков:
Дефицит специалистов.
Нереалистичные сроки и бюджет.
Реализация несоответствующей функциональности.
Разработка неправильного пользовательского интерфейса.
Перфекционизм, ненужная оптимизация и оттачивание деталей.
Непрекращающийся поток изменений.
Нехватка информации о внешних компонентах, определяющих окружение системы или вовлеченных в интеграцию.
Недостатки в работах, выполняемых внешними (по отношению к проекту) ресурсами.
Недостаточная производительность получаемой системы.
Разрыв в квалификации специалистов разных областей.
В сегодняшней спиральной модели определён следующий общий набор контрольных точек:
Concept of Operations (COO) — концепция (использования) системы;
Life Cycle Objectives (LCO) — цели и содержание жизненного цикла;
Life Cycle Architecture (LCA) — архитектура жизненного цикла; здесь же возможно говорить о готовности концептуальной архитектуры целевой программной системы;
Initial Operational Capability (IOC) — первая версия создаваемого продукта, пригодная для опытной эксплуатации;
Final Operational Capability (FOC) –— готовый продукт, развернутый (установленный и настроенный) для реальной эксплуатации.
- Основные понятия информатики: информационные технологии, информатизация общества, информационные ресурсы. Информатика как наука и как прикладная дисциплина
- Федеральный закон Об информации, информационных технологиях и о защите информации от 8 июля 2006 года
- История развития компьютерной техники.
- Понятие информации, ее классификация, свойства информации, представление информации, единицы измерения информации.
- Формулы измерения информации Чартли и Шеннона, примеры вычислений.
- Системы счисления. Позиционные системы счисления, их представление.
- Двоичная, восьмеричная, шестнадцатеричная системы счисления.
- Правила преобразования чисел из одной системы счисления в другую.
- Примеры
- 2. Из двоичной и шестнадцатеричной систем счисления - в десятичную.
- 4. Из шестнадцатеричной системы счисления в двоичную:
- Правила перевода правильных дробей
- 1. Из десятичной системы счисления - в двоичную и шестнадцатеричную:
- 2. Из двоичной и шестнадцатеричной систем счисления - в десятичную.
- 3. Из двоичной системы счисления в шестнадцатеричную:
- 4. Из шестнадцатеричной системы счисления в двоичную:
- Понятие информационной системы. Структура ис.
- Процессы, обеспечивающие работу ис.
- Классификация информационных систем, свойства ис. Классификация по архитектуре
- Классификация по степени автоматизации
- Классификация по характеру обработки данных
- Классификация по сфере применения
- Классификация по охвату задач (масштабности)
- Типы информационных процедур.
- 1. Поиск.
- 2. Сбор и хранение.
- 3. Передача.
- 4. Обработка.
- 5. Использование.
- 6. Защита.
- Классификация ис по направлению деятельности
- Направления анализа функционирования корпоративной сети
- Экспертные системы их классификация
- Базовые функции экспертных систем
- Приобретение знаний
- Представление знаний
- Управление процессом поиска решения
- Разъяснение принятого решения
- Представление знаний. Классификация модеклей представления знаний.
- Понятие операционной системы. История развития ос.
- 1946 Г. – eniac (Electronic Numerical Integrator and Computer) – полное отсутствие какого-либо по, программирование путем коммутации устройств.
- 1952 Г. – Первая ос создана исследовательской лабораторией фирмы General Motors для ibm-701.
- 1955 Г. – ос для ibm-704. Конец 50-х годов: язык управления заданиями и пакетная обработка заданий.
- Основные принципы построения операционных систем.
- Классификация по компьютерной системы.
- Состав компонентов и функций ос
- Особенности алгоритмов управления ресурсами.(см. 27).
- Классификация ос Классификация ос
- Особенности алгоритмов управления ресурсами
- Особенности аппаратных платформ
- Особенности областей использования
- Особенности методов построения
- Сетевые ос. Варианты построения сетевых ос.
- Основные принципы построения системы информационной безопасности.
- Перечень и содержание огрганизационно-распорядительных документов иб.
- Основные механизмы доступа к информационным ресурсам.
- Способы и методы аутентификации.
- Средства защиты ис от потери информации.
- Брандмауэры и антивирусные пакеты.
- Базы и банки данных.
- Информационные сети. История развития информационных сетей.
- Классификация сетей
- Основные топологии лвс
- Понятие логической структуры сети. Элементы логической структуры.
- Основные понятия: интернет, провайдер, хост, сетевой протокол, ip-адрес, домен.
- Архитектура клиент-сервер, одноранговые сети и сети с выделенным сервером, их преимущества и недостатки.
- Понятие сервис ориентированной архитектуры.
- Алгоритм, свойства алгоритма, формы записи алгоритма, скорость выполнения алгоритма.
- Рекурсивные алгоритмы. Сущность рекурсии
- Алгоритмы сортировки.
- Понятие модели, численного метода. Подходы к реализации численных методов
- Этапы реализации решения численных задач. Методы решения численных задач.
- Алгоритмы решения задачи нахождения корней полинома: шаговый метод, метод половинного деления, метод Ньютона, метод простой итерации.
- Численные методы решения задач аппроксимации.
- Методы численного интегрирования.
- Методы одномерной оптимизации.