здесь - Интуит

Download Report

Transcript здесь - Интуит

Развитие платформы облачных вычислений Microsoft Windows Azure

Лекция 1 Новые принципы архитектуры современных программных систем

Сафонов Владимир Олегович

Профессор кафедры информатики Заведующий лабораторией Java-технологии Санкт-Петербургский государственный университет Email: [email protected]

WWW: http://www.vladimirsafonov.org

Литература по курсу

1.

2.

3.

4.

5.

Сафонов В.О. Платформа облачных вычислений Microsoft Windows Azure. – М.: ИНТУИТ.РУ. БИНОМ. Лаборатория знаний, 2012, 235 с.

Сафонов В.О. Платформа облачных вычислений Microsoft Windows Azure. Учебный курс. http://www.intuit.ru/studies/courses/2314/614/info , декабрь 2011 Сафонов В.О. Основы современных операционных систем. Учебный курс. http://www.intuit.ru/studies/courses/641/497/info Сафонов В.О. Основы современных операционных систем. – М.: ИНТУИТ.РУ. БИНОМ. Лаборатория знаний, 2011, 583 с.

Сафонов В.О. Архитектуры и модели программ и знаний. Спецкурс для студентов 4 курса. https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8 480&Login& = (C) Сафонов В.О. 2013

Новые виды программного обеспечения

   

Развитие ПО для облачных вычислений и центров обработки данных Магазины приложений для новых ОС на основе Web сайтов Инструменты надежных и безопасных вычислений (trustworthy computing) Инструменты верификации программ

(C) Сафонов В.О. 2013

Новые черты программных систем

       Интеграция, использование и распространение ПО через Web Развитие надежных и безопасных вычислений (trustworthy computing) Развитие многоязыковых платформ с единым промежуточным кодом Развитие виртуализации ресурсов и сред Развитие облачных вычислений Перенос популярных видов приложений и инструментов в облака Унификация пользовательских интерфейсов для всех видов компьютеров (настольных, ноутбуков, планшетов, мобильных устройств), развитие интерфейсов типа multi-touch (C) Сафонов В.О. 2013

Развитие популярных платформ для разработки программ

   

Java (Oracle): ныне – многоязыковая платформа для разработки программ с единым бинарным промежуточным кодом (байт кодом) в постфиксном формате и единой виртуальной машиной (JVM), поддерживающая программирование на языках Java, Ruby, Python и др. (всего более 30 “единобайткодных” языков). Поддерживает JIT-компиляцию, профилирование программ, современные динамические языки с расширяемыми типами .NET (Microsoft): многоязыковая платформа с единым бинарным промежуточным кодом (CIL) и единой виртуальной машиной (CLR). Поддерживает JIT-компиляцию, профилирование программ, современные динамические языки с расширяемыми типами Обе платформы уделяют особое внимание надежности и безопасности, на основе исполнения управляемого кода и

динамического контроля типов

Обе платформы поддерживают разработку Web-сервисов и содержат базовые средства для реализации облачных вычислений

(C) Сафонов В.О. 2013

Важнейшие современные характеристики программных продуктов

 

Масштабируемость Следование стандартам коммуникации, представления и передачи данных

  

Возможность переноса в облако Сервисная ориентированность (SOA) Возможность быстрой интеграции с другими существующими продуктами в новое программное решение

Повышенная безопасность и надежность

(C) Сафонов В.О. 2013

      

Развитие современных основных понятий архитектуры ПО (1/3)

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

Развитие современных основных понятий архитектуры ПО (2/3)

   Промежуточное программное обеспечение (middleware) – совокупность слоев ПО, лежащих между клиентом и сервером и обеспечивающих их коммуникацию Ярус (tier) – слой программного обеспечения, реализующий какую-либо независимую часть его архитектуры; например: business tier – реализация бизнес-логики; Web tier – реализация взаимодействия с Web

Многоярусная архитектура (multi-tier architecture) –

архитектура ПО, при которой презентация результатов, обработка и управление данными реализованы как отдельные процессы. Пример: Использование middleware для взаимодействия с сервером и СУБД для взаимодействия с данными (C) Сафонов В.О. 2013

Развитие современных основных понятий архитектуры ПО (3/3)

   Многоклиентская архитектура (multi-tenant architecture) – архитектура клиент-серверного ПО, при которой один экземпляр серверного ПО, исполняемый на сервере, обслуживает несколько клиентов (tenants – букв. клиенты, арендаторы). Пример: Web-сервис С точки зрения рассмотренных концепций, облачные

вычисления соответствуют принципам multi-tiered and multi-tenant architecture

Что касается abstraction layers, для современной сложной архитектуры ПО данный термин несколько устарел, так как все модули ПО повторно используемы, и в различных системах различные ярусы (слои) могут иметь разные условные номера. Двумерная модель не в состоянии адекватно описать современное ПО (C) Сафонов В.О. 2013

Пример многоярусной архитектуры: Ярусы презентации, бизнес-логики и данных

(C) Сафонов В.О. 2013

Развитие Service-Oriented Architecture (SOA)

        Сервис – компонента программы, непосредственно доступная пользователю Основной принцип: С точки зрения пользователя, программный продукт представляет собой набор простых в использовании Web-сервисов с удобным графическим Web интерфейсом Сервис-ориентированная модель должна быть расширяемой (пользователь должен иметь возможность добавить новые сервисы или изменить набор доступных сервисов) Пользователи должны иметь возможность обращаться к сервисам через сеть с самых различных по своим возможностям устройств – desktop-машин, мобильных устройств и т.д.

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

Развитие концепции Software-as-a-Service (SaaS)

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

Развитие cloud computing

      

Cloud computing - ”облачные” вычисления

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

Резюме

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

Домашнее задание к лекции 1

1.

Проанализируйте используемое и разрабатываемое Вами программное обеспечение, с точки зрения соответствия парадигмам cloud computing и SOA 2.

Проанализируйте новые тенденции в развитии архитектуры программных систем 3.

Получите пробный академический доступ к Windows Azure и попробуйте ее использовать на простых примерах 4.

Сформулируйте проблемы безопасности программ и данных для облачных вычислений – в чем преимущество данной модели для реализации безопасности, в чем ее “подводные камни” 5.

Опубликуйте свое первое приложение в магазине приложений для Windows 8 (C) Сафонов В.О. 2013