SOA Service Oriented Architecture SOA — мечта индустрии программирования о замене «кустарного» кодирования программ «от и до» на «промышленную» сборку приложений из «стандартных комплектующих», как в автомобильной, или других традиционных отраслях промышленности. Web-сервисы и их последствия для технологий проектирования Информационных Систем (программное + техническое + организационное обеспечение) 1 Цели SOA: Для крупных Информационных Систем (ИС), уровня предприятия, и выше: • • • • • сокращение процесса разработки, расширение повторного использования кода, независимость от используемых платформ, инструментов, языков разработки, повышение масштабируемости создаваемых систем, улучшение управляемости создаваемых систем. 2 SOA и информационные системы (ИС) компаний Теперь компании перестают быть зависимыми от поставщиков ПО в виде готовых ИС. Логика каждой ИС теперь строиться внутри компании в виде сборки (вызова) нужных служб. Бывшие поставщики ИС теперь ориентируются на предоставление сервисов. Внедряя SOA компании создают у себя виртуальные ИС . Внимание бизнеса переключается с названия и поставщиков ИС на качество и доступность нового сервиса. Меняются правила работы с поставщиками систем, меняется даже организационная структура компаний. 3 Инструменты реализации SOA Толчком к развитию SOA стали Web-сервисы и WCF-сервисы. В то же время, для несложных распределённых систем, могут использоваться и «традиционные» REST-технологии: Вся логика крутится вокруг ресурсов, а не операций с ними; Каждый блок некоторой информации является ресурсом с уникальным URI; Все запросы реализуются по HTTP, методами Post, Get, Put и Delete, а данные могут передаваться в любом формате (не только XML); Операции клиента с сервером реализуются без сессий. Web-сервисы – это целое семейство дополнительных протоколов и стандартов. Здесь HTTP, TCP, IPC используются как транспортные протоколы для протокола сервисов – SOAP (Simple Object Access Protocol), реализуется посредством XML. Сервисы предоставляют операции (методы), а не данные. Сервисы хорошо справляются с ошибками, транзакциями, сессиями, надёжностью… Для разработки сложных ИС, где имеются повышенные требования к безопасности и устойчивости приложения, целесообразно использовать сервисы SOAP. REST и SOAP– не конкуренты. Они представляют разные весовые категории. Любители REST предлагают использовать WCF-сервисы по REST-технологии. 4 Уровни абстракции SOA ООП и SOA на уровне предприятия С точки зрения SOA декомпозиция корпоративной ИС может осуществляться на нескольких уровнях абстракции Уровень предприятия (бизнес-функция предприятия) Уровень процесса (бизнес-функции областей деятельности предприятия) Уровень сервисов SOA (отдельные функции и сервисы, их реализующие) Уровень компонентов (компоненты ИС многократного использования) Уровень объектов (общие объекты, в контексте ООП) Использование архитектуры SOA сводит задачу оценки эффективности IT-решений к оценке экономических эффектов отдельных служб системы. 5 Разработка и внедрение SOA На разработчиков служб ложится высокая ответственность , т .к. их работа «встраивается» и существенно влияет на ИС многих компаний. Разработка или покупка готовых ИС (без SOA) – это мина замедленного действия. Когда-то любая ИС устаревает, с её смертью у вас ничего не остается – ни бизнеспроцессов, ни сервисов, ни модели данных. Время потраченное на проектирование бизнес- и технологических процессов, уникальные идеи и находки окажутся бесполезными. При разработке новых ИС необходимо выделять сервисы, которые уже существуют или необходимы и будут многократно востребованы. Создание повторно используемого компонента примерно в 2.5 раз дороже простого, т. е. сервис целесообразно создавать при условии дальнейшего использования минимум 3 раза. После перехода на SOA с каждым годом возрастает повторное использование сервисов – 10% в первый год, 20% во второй, 30% в третий, что напрямую сказывается на сокращении затрат. С точки зрения SOA жизненный цикл корпоративной системы целиком «распадается» на жизненные циклы составляющих ее компонентов. Такая декомпозиция позволяет не только оперативно реагировать на реструктуризацию бизнес-процессов, но и делает процесс развития ИС более предсказуемым и устойчивым. 6 ОЦЕНКА ЭФФЕКТИВНОСТИ СЛУЖБЫ Задачу достижения максимального экономического эффекта от использования отдельной службы системы можно определить следующим критерием: T0 T f F (t ); S (t )dt max T0 где f [0, 1] – функция, оценивающая соотношение между имеющейся функциональностью службы F(t) и степенью удовлетворения бизнес-требованиям S(t). Максимальная эффективность службы. В идеале f=1 Фаза проектирования и разработки Начало пилотного внедрения Доработка и использование продукта Решение о выводе службы из эксплуатации. Возможно – разработка новой службы 7 Потребители РАЗРАБОТКА И ВНЕДРЕНИЕ SOA – ГРАФИК «ДЛИННОГО ХВОСТА» Доход на традиционных популярных услугах Доход на услугах для небольших целевых группах (1) (2) (популярные) услуги (мало популярные) Популярные традиционные услуги заканчиваются недалеко от начала координат. Доходы, оставленные без внимания (2), соизмеримы с популярными (1). Разрабатывать ИС в области (2) невыгодно, а модернизировать службы – быстро и дёшево, их можно предложить «глобально широкой» аудитории, т. е. – выгодно. 8 ДАЛЬНЕЙШИЕ ШАГИ В SOA Сегодня выделяют (National Institute of Standards and Technology) Три основные бизнес-модели для разработчиков сервисов: 1. 2. 3. Software as a service (SaaS) – приложения, которые поставляется конечному пользователю как службы через Internet, Platform as a service (PaaS) – платформа разработки и развертывания приложений поставляется в виде службы для разработчиков, позволяющей быстро создавать и развертывать приложения SaaS, Infrastructure as a service (IaaS) – оборудование, такое как вычислительные серверы, системы хранения и сетевые элементы, предоставляются в виде служб. Windows Communication Foundation (WCF) — предоставляет единую инфраструктуру разработки сервисов, повышающую производительность и снижающую затраты на создание безопасных, надёжных и транзакционных Webсервисов нового поколения. Кроме протокола HTTP они используют и другие транспортные протоколы. Слайды Введение в WCF 9 РЫНОК SAAS Аналитики из Cloud Times делят рынок SaaS на следующие категории: • • Приложения для бизнес-управления (Business Management); Вертикальные приложения (Vertical Applications), пригодные для использования только в одной предметной области, например, средства • • • автоматизации банковской деятельности; Приложения, которые позволяют компаниям управлять всеми аспектами их взаимоотношений с клиентом – CRM (Customer Relationship Management); «Облачная» безопасность (Cloud Security); «Инструментарий» (Tools). 1 0 1 1 ДОЛЯ SAAS В ОБОРОТЕ ПО 1 2 РЫНОК SAAS-ПРИЛОЖЕНИЙ ДЛЯ КОЛЛЕКТИВНОЙ РАБОТЫ ИСТОЧНИК: FORRESTER, 2011 1 3