Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 1 Обзор архитектур современных программных.

Презентация:



Advertisements
Похожие презентации
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 2 Понятие об облачных вычислениях. Обзор платформ.
Advertisements

Развитие платформы облачных вычислений Microsoft Windows Azure Лекция 1 Новые принципы архитектуры современных программных систем Сафонов Владимир Олегович.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 3 Основные концепции и архитектура Microsoft.
Развитие платформы облачных вычислений Microsoft Windows Azure Лекция 7 Новая версия Windows Azure Compute Сафонов Владимир Олегович Профессор кафедры.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 7 Windows Azure Compute Сафонов Владимир Олегович.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 12 Инструменты Windows Azure Сафонов Владимир.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 16 Перспективы Windows Azure Сафонов Владимир.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 10 Разработка приложений для Windows Azure.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 5 Windows Azure Fabric Сафонов Владимир Олегович.
Развитие платформы облачных вычислений Microsoft Windows Azure Лекция 16 Перспективы развития и использования новой версии Windows Azure Сафонов Владимир.
называют cloud computing одной из самых перспективных стратегических технологий прогнозируют перемещение в ближайшие пять лет большей части существующих.
Учебный курс Технологии и средства разработки корпоративных систем Лекция 1 Открытые системы. Клиент и сервер Лекции читает кандидат технических наук,
Развитие платформы облачных вычислений Microsoft Windows Azure Лекция 8 Управление Web-сервисами в новой версии Windows Azure Сафонов Владимир Олегович.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 8 Управление Web-сервисами в Windows Azure.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 13 Методы и инструменты применения Windows.
Программное обеспечение как услуга (SaaS) Подготовлено для сайта SaaSCatalog.ru.
WEB- ТЕХНОЛОГИИ Лекция 6. Понятие Web- сервисов 1 Интерфейс в глобальную сеть для некоторого абстрактного программного обеспечения, этот интерфейс позволяет.
1 Современные системы программирования. Часть 2. Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
Студенников Валерий Юрьевич Лекции и материалы:
Развитие платформы облачных вычислений Microsoft Windows Azure Лекция 11 Основы практического использования новой версии Windows Azure Сафонов Владимир.
Транксрипт:

Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 1 Обзор архитектур современных программных систем Сафонов Владимир Олегович Профессор кафедры информатики Заведующий лабораторией Java-технологии Санкт-Петербургский государственный университет WWW:

1.Cloud Computing – A Practical Approach, Anthony T. Velte, Toby J. Velte, Robert Elsenpeter, McGraw Hill, Cloud Computing with the Windows Azure Platform, Roger Jennings, Wiley, Сафонов В.О. Основы современных операционных систем. Учебный курс Сафонов В.О. Основы современных операционных систем. – М.: ИНТУИТ.РУ. БИНОМ. Лаборатория знаний, 2011, 583 с. 5.Сафонов В.О. Архитектуры и модели программ и знаний. Спецкурс для студентов 4 курса. x?ID=8480&Login&= x?ID=8480&Login& (C) Сафонов В.О Литература по курсу

Клиент-серверные системы Web – сервисы и Web-приложения Интегрированные распределенные решения (solutions) Встроенные системы Системы реального времени Программное обеспечение мобильных устройств Программное обеспечение носимых (wearable) компьютеров Программное обеспечение промежуточного уровня (middleware) ПО для облачных вычислений и центров обработки данных ПО для компьютерных кластеров ПО для виртуализации ПО для управления информацией (information management) ПО для управления знаниями (knowledge management) ПО для научных вычислений (scientific computing) (C) Сафонов В.О Некоторые виды современного программного обеспечения

Ориентация на использование в WWW Универсальное представление программных моделей (UML) и данных (XML) Повышенные требования к безопасности и надежности (соблюдение принципов TWC – Trustworthy Computing) Интеграция различных языков программирования, инструментальных средств, баз данных и знаний в единую инфраструктуру Проектирование и разработка программных компонент для многократного использования (software reusability) Спецификация и реализация сервисов (Web-сервисов или Интранет- сервисов) ; поддержка сервис-ориентированной архитектуры (SOA) Виртуализация ресурсов и сред – аппаратуры, ОС, платформы, инфраструктуры Масштабируемость – предоставление идентичных или аналогичных сервисов для различных классов устройств – настольных и портативных компьютеров, мобильных устройств и др. Предоставление пользователям Web-сервисов в виде облачных вычислений Все более широкое использование знаний (knowledge) для представления семантики информации в Web и для разработки программных решений (intelligent solutions); необходимость интеграции методов инженерии программ и инженерии знаний (C) Сафонов В.О Характерные черты современных программных систем

Java (Sun Microsystems, 1995) – платформа для разработки программ на объектно-ориентированном языке Java, программы на котором компилируются в Java байт-код (до сих пор имеет статус ведомственного стандарта Sun).NET (Microsoft, 2000) – многоязыковая объектно- ориентированная платформа для разработки программ с общим промежуточным языком (CIL), общей инфтаструктурой языков (CLI) и единым представлением данных на основе XML (стандарты ISO/ ECMA). Язык C# - наиболее удобный язык программирования для.NET, но не единственный и не обязательный для использования Обе платформы уделяют особое внимание надежности и безопасности, на основе исполнения управляемого кода и динамического контроля типов Обе платформы поддерживают разработку Web-сервисов, содержат базовые средства для реализации cloud computing Другие современные платформы и языки: Ruby, Python, Scala и др. (C) Сафонов В.О Современные платформы для разработки программ

С точки зрения пользователя: Работоспособность, полезность Дружественный к пользователю интерфейс (преимущественно – Web- интерфейс) Надежность, безопасность, защита конфиденциальных данных (Trustworthy Computing - TWC) С точки зрения разработчика: Повторная используемость модулей; компонентно-ориентированное программирование Модульность Эффективность (необходимо сформулировать ее критерии; всем критериям одновременно удовлетворить невозможно) Переносимость Познаваемость (читаемость) ; легкость сопровождения Применение принципов TWC и SDLC (Security Development Life Cycle) при проектировании и реализации (C) Сафонов В.О Характеристики, свойства и качества программных продуктов

Концепции (например, trustworthy computing) Инструменты (например, FxCop, Spec#) Схемы организации процесса разработки программ (например, CMM, CMMI, SDLC) (C) Сафонов В.О Классические элементы технологий программирования

Клиент (client) – пользователь и (или) компьютер, использующий какие-либо программные сервисы Сервер (server) – компьютер или центр обработки данных, предоставляющий программные сервисы Тонкий клиент (thin client) – клиент Web-сервиса с минимальным пользовательским интерфейсом – не имеющий состояния, сеанса, полнофункционального GUI и общающийся с Web-сервисов только через браузер и протокол HTTP посредством отправки HTTP-запросов и получения HTML-страниц Rich client (полнофункциональный клиент) – клиент Web-сервиса, имеющий полнофункциональный GUI и общающийся с Web-сервисом через слой промежуточного программного интерфейса (middleware), обеспечивающий его функциональность; примеры ПО для поддержки rich clients: Microsoft Silverlight, Oracle JavaFX Слой (layer) – крупная независимая компонента архитектуры ПО Уровень абстракции (abstraction layer) – горизонтальный слой (номер N); совокупность модулей, реализация которых использует только модули уровня N-1 (N > 0). Вертикальный срез (аспект) – совокупность рассредоточенных фрагментов кода, реализующих (сквозную) функциональность, например, проверку безопасности (C) Сафонов В.О Некоторые современные основные понятия (1/3)

Промежуточное программное обеспечение (middleware) – совокупность слоев ПО, лежащих между клиентом и сервером и обеспечивающих их взаимодействие, например, поддержку сетевых коммуникационных протоколов Ярус (tier) – слой программного обеспечения, реализующий какую-либо независимую часть его архитектуры; например: business tier – реализация бизнес-логики; Web tier – реализация взаимодействия с Web Многоярусная архитектура (multi-tier architecture) – архитектура ПО, при которой презентация результатов, обработка и управление данными реализованы как отдельные процессы. Пример: Использование middleware для взаимодействия с сервером и СУБД для взаимодействия с данными (C) Сафонов В.О Некоторые современные основные понятия (2/3)

Многоклиентская архитектура (multi-tenant architecture) – архитектура клиент-серверного ПО, при которой один экземпляр серверного ПО, исполняемый на сервере, обслуживает несколько клиентов (tenants – букв. клиенты, арендаторы). Пример: Web-сервис С точки зрения рассмотренных концепций, облачные вычисления соответствуют принципам multi-tiered and multi-tenant architecture Что касается abstraction layers, для современной сложной архитектуры ПО данный термин несколько устарел, так как все модули ПО повторно используемы, и в различных системах различные ярусы (слои) могут иметь разные условные номера. Двумерная модель не в состоянии адекватно описать современное ПО (C) Сафонов В.О Некоторые современные основные понятия (3 / 3)

(C) Сафонов В.О Пример многоярусной архитектуры (Wikipedia)

Сервис – компонента программы, непосредственно доступная пользователю Пример сервиса: Получение прогноза погоды через Интернет Основной принцип: С точки зрения пользователя, программный продукт представляет собой набор простых в использовании Web-сервисов с удобным графическим Web- интерфейсом Сервис-ориентированная модель должна быть расширяемой (пользователь должен иметь возможность добавить новые сервисы или изменить набор доступных сервисов) Пользователи должны иметь возможность обращаться к сервисам через сеть с самых различных по своим возможностям устройств – desktop-машин, мобильных устройств и т.д. Метод реализацияиWeb-сервисов (.NET, Java и др.) для пользователя несущественен Разработчик должен иметь возможность публикации своих Web-сервисов Поддержка SOA: -Microsoft SharePoint (простой инструмент для создания расширяемых Web-страниц и Web-сервисов); -UDDI (Universal Discovery, Description and Integration) – технология для публикации и поиска Web-сервисов (Microsoft) С данной точки зрения, облачные вычисления соответствуют принципам SOA (C) Сафонов В.О Понятие о Service-Oriented Architecture (SOA)

SaaS – модель разработки программ, основанная на использовании лицензируемых программных сервисов по требованию клиентами, получающими (покупающими) лицензии у сервис-провайдеров Термин SaaS возник в 1999 г. Основная идея: использование ПО по требованию (on demand) по невысокой стоимости (вместо покупки полной лицензии на ПО для всех платформ) Характеристики SaaS: -Доступ к коммерческому ПО через сеть -Удаленное управление ПО пользователями через центральный Web-сайт -Использование модели one-to-many (multi-tenant application), т.е. использование одного приложения многими клиентами -Централизация управления версиями и патчами (пользователи могут загружать новые версии через сеть) -- Постоянная интеграция программных сервисов в общий гибридный набор ПО, потребляемый пользователем, как mash-ups – гибридных Web-приложений С данной точки зрения, облачные вычисления соответствуют принципам SaaS (C) Сафонов В.О Понятие о Software-as-a-Service (SaaS)

Cloud computing - облачные вычисления Облако (cloud) –широко используемая метафора для изображения сервисов, предоставляемых через Интернет или другую коммуникационную сеть (например, через ATM-сеть) Облачные вычисления – модель вычислений, основанная на динамически масштабируемых(scalable) и виртуализованных (virtual) ресурсах - данных, приложениях, ОС и др., - которые доступны и используются как сервисы через Интернет и реализуются с помощью мощных центров обработки данных (data centers) С точки зрения пользователей, существуют облака (общедоступные или частные), предоставляемые различными компаниями для использования мощных вычислительных ресурсов, которых нет у индивидуального пользователя Перспективы облачных вычислений весьма многообещающие Недостаток: пользователь полностью зависит от облака и не может управлять даже резервным копированием своих данных и программ Наиболее популярная облачная платформа – Microsoft Windows Azure (облачная ОС) и Microsoft Azure Services Platform (реализованная на основе Microsoft.NET) В настоящее время все крупные компании (Microsoft, IBM, HP, Dell, Oracle и др.) разрабатывают свои системы облачных вычислений; имеется тенденция к интеграции этих корпоративных систем в единое доступное пользователюоблако (C) Сафонов В.О Понятие о cloud computing

Подход к разработке программ принципиально изменился Вместо индивидуальных изолированных разработок на собственном компьютере – разработка сетевых приложений и использование готовых сервисов через Web Будущее – за сетевым и распределенным программным обеспечением, основанным на Web-сервисах, многоклиентских и многоярусных архитектурах - принципах SOA, SaaS, multi-tenancy, multi-tiering Всем этим принципам соответствует модель облачных вычислений Microsoft – одна из ведущих компаний, поддерживающих и развивающих этот новый подход (.NET, Windows Azure) (C) Сафонов В.О Резюме

1.Проанализируйте используемое и разрабатываемое Вами программное обеспечение, с точки зрения соответствия парадигмам cloud computing и SOA 2.Инсталлируйте и попробуйте на простых примерах использовать Windows Azure и Azure Services Platform 3.Сформулируйте проблемы безопасности программ и данных для облачных вычислений – в чем преимущество данной модели для реализации безопасности, в чем ееподводные камни (C) Сафонов В.О Домашнее задание к лекции 1