Платформа облачных вычислений Microsoft Windows Azure
Покупка
Тематика:
Windows
Издательство:
ИНТУИТ
Автор:
Сафонов Владимир Олегович
Год издания: 2016
Кол-во страниц: 250
Дополнительно
Продвинутый курс для студентов старших курсов и аспирантов с 16 теоретическими лекциями и практическими занятиями (в виде 4 лабораторных работ) по облачным вычислениям и новой облачной платформе Microsoft Windows Azure, ее архитектуре, возможностях, областях и методах применения.
Курс знакомит студентов с концепциями и инструментами облачных вычислений, архитектурой, возможностями и методами применения наиболее развитой платформы облачных вычислений Microsoft Windows Azure. Курс дает более глубокое научное изложение и анализ платформы Azure (которым в предшествующих учебных материалах не уделено достаточного внимания): анализ архитектуры платформы Azure; обучение фундаментальным технологиям и принципам, на которых она базируется (.NET, WCF и др.); обучение архитектуре платформы Azure, которая, даже с учетом усложнения современных программных архитектур, является достаточно сложной для понимания,
изучения и использования; обучение методам практического применения платформы Azure для решения различных классов задач (хранение и использование данных, реализация бизнес-логики, коммуникация, научные вычисления и др.).
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
- 09.04.02: Информационные системы и технологии
- 09.04.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Платформа облачных вычислений Microsoft Windows Azure 2-е издание, исправленное Сафонов В.О. Национальный Открытый Университет “ИНТУИТ” 2016 2
Платформа облачных вычислений Microsoft Windows Azure/ В.О. Сафонов - М.: Национальный Открытый Университет “ИНТУИТ”, 2016 Продвинутый курс для студентов старших курсов и аспирантов с 16 теоретическими лекциями и практическими занятиями (в виде 4 лабораторных работ) по облачным вычислениям и новой облачной платформе Microsoft Windows Azure, ее архитектуре, возможностях, областях и методах применения. Курс знакомит студентов с концепциями и инструментами облачных вычислений, архитектурой, возможностями и методами применения наиболее развитой платформы облачных вычислений Microsoft Windows Azure. Курс дает более глубокое научное изложение и анализ платформы Azure (которым в предшествующих учебных материалах не уделено достаточного внимания): анализ архитектуры платформы Azure; обучение фундаментальным технологиям и принципам, на которых она базируется (.NET, WCF и др.); обучение архитектуре платформы Azure, которая, даже с учетом усложнения современных программных архитектур, является достаточно сложной для понимания, изучения и использования; обучение методам практического применения платформы Azure для решения различных классов задач (хранение и использование данных, реализация бизнес-логики, коммуникация, научные вычисления и др.). (c) ООО “ИНТУИТ.РУ”, 2011-2016 (c) Сафонов В.О., 2011-2016 3
Введение Концепция облака используется как метафора в литературе по ИТ уже много лет, с момента появления компьютерных сетей и, в особенности, Интернета. Облако – метафорический образ, обозначающий совокупность сетевых ресурсов, доступных через Интернет. Однако подход облачных вычислений внес принципиально новые возможности в ставшую привычной за несколько десятков лет картину организации вычислений - один или несколько клиентских компьютеров, соединенных в локальную сеть и при необходимости “выходящие” в Интернет. Облачные вычисления – это перенос всех вычислений и хранения всех данных в Интернет и взаимодействие клиентов облака через Web-интерфейс облачных приложений. Такой подход к организации вычислений дает огромные, небывалые возможности клиентам, независимо от мощности и класса их компьютеров (настольные компьютеры, ноутбуки, мобильные устройства и др.). При этом облачные вычисления обеспечивают доступ к облаку миллионам пользователей в каждый момент. Однако подобный подход создает и массу проблем и вызывает целый ряд вопросов у пользователей: прежде всего, это безопасность пользовательских данных (у пользователей нет уверенности в том, что сохранится конфиденциальность их данных и программ, хранящихся на “чужих” компьютерах) и невысокая скорость соединения с Интернетом. Последнее особенно существенно для российских пользователей. Далеко не каждому доступен Интернет 4G со скоростью доступа 10-100 Мбит / с. При скорости же соединения порядка 5-10 килобайт в секунду (характерной для протокола GPRS, используемого в мобильных устройствах) пользоваться облачными вычислениями практически нереально – слишком велико время ожидания. В этом практический смысл приведенного выше эпиграфа. В этом, по-видимому, состоит также основная проблема использования облачных вычислений в России. Облачные вычисления – это технология для пользователей “с быстрым Интернетом”. Надеемся, через несколько лет, после перехода на цифровое телевидение, быстрый Интернет по цифровым телевизионным каналам станет, наконец, доступен десяткам миллионов российских пользователей, и тогда в России наступит эпоха облачных вычислений. Об авторе Сафонов Владимир Олегович – доктор технических наук, выпускник математикомеханического факультета СПбГУ (1977), профессор кафедры информатики и заведующий лабораторией Java-технологии математико-механического факультета (мат-мех) Санкт-Петербургского государственного университета (СПбГУ). Личная Web-страница: ссылка: http://www.vladimirsafonov.org http://www.vladimirsafonov.org/ . 4
Основные научные интересы: Языки программирования и компиляторы; наиболее известны монография “Trustworthy Compilers” – John Wiley & Sons, 2010, ссылка: http://www.vladimirsafonov.org/trustworthycompilers http://www.vladimirsafonov.org/trustworthycompilers , и монография “Языки и методы программирования в системе “Эльбрус” – М.: Наука, 1989; операционные системы; наиболее известно учебное пособие “Основы современных операционных систем”, М.: ИНТУИТ.РУ. БИНОМ. Лаборатория знаний, 2011, 584 с. аспектно-ориентированное программирование (АОП); наиболее известны проект Aspect.NET (ссылка: http://www.aspectdotnet.org - http://www.aspectdotnet.org/), монография “Using Aspect-Oriented Programming for Trustworthy Software Development”. – John Wiley & Sons, 2008, и учебное пособие “Аспектноориентированное программирование“, СПб: изд-во СПбГУ, 2011, 104 с. надежные и безопасные вычисления (trustworthy computing); управление знаниями (knowledge management) и экспертные системы; наиболее известны проект Knowledge.NET ( ссылка: http://www.knowledge-net.ru http://www.knowledge-net.ru/ ) и учебник “Экспертные системы – интеллектуальные помощники специалистов”. - СПб: Знание, 1992; Java-технология; наиболее известен учебник “Введение в Java-технологию”. – СПб: Наука, 2002; платформа .NET параллельное программирование; наиболее известен проект Parallel Dwarfs (ссылка: http://paralleldwarfs.codeplex.com - http://paralleldwarfs.codeplex.com/) . В.О. Сафонов – авторитетный и признанный в России и в мире специалист в области ИТ. Автор 150 научных трудов, в том числе - 13 книг (две из них – на английском языке), 4 патентов США и 4 патентов РФ по компиляторам и технологиям программирования, 16 Интернет-курсов, опубликованных на сайтах Microsoft, Sun/Oracle, ИНТУИТ.РУ. Член-корреспондент Российской Академии Естествознания (РАЕ). Заслуженный деятель науки и образования РАЕ. Лауреат премии Правительства Санкт-Петербурга (1999). Лауреат премии Санкт-Петербургского государственного университета за научные труды (2010). Почетный работник высшего профессионального образования РФ (2002) Международные почетные звания и награды: Academician of the American Biographical Institute (2011) International Scientist of the Year 2008 (International Biographical Centre, UK) Man of the Year 2008 (American Biographical Institute) International Educator of the Year 2009 (International Biographical Centre, UK) Pinnacle Achievement Award (American Biographical Institute, 2011) 5
Научная биография включена в международные справочники : “Who’s Who in the World” “Who’s Who in America” “Who’s Who in Science and Engineering” “Who’s Who in Asia” “Great Minds of the 21st Century” “2000 Outstanding Intellectuals of the 21st Century” “International Profiles of Accomplished Leaders” и опубликована на академическом сайте Microsoft (2007) 6
Обзор архитектуры современных программных систем В данной вводной лекции рассмотрены классы задач, решаемых современным программным обеспечением; характеристики и свойства современного ПО и требования к нему; некоторые основные концепции из области архитектуры программных систем.. Акцентируется внимание на разнообразии и значительном усложнении ПО. Даются определения основных терминов, связанных с видами архитектур программного обеспечения. Формулируются требования к современному программному обеспечению: масштабируемость, стандартизация технологий, безопасность, ориентация на использование Web и др. Делается вывод о необходимости принципиально новых технологий разработки и использования программного обеспечения, к которым и относятся облачные вычисления. Цель лекции: Ознакомление с современными архитектурами программного обеспечения, решаемыми задачами, требованиями к современному программному обеспечению, тенденциями его развития, основными концепциями архитектуры ПО. Презентацию к данной лекции Вы можете скачать здесь скачать: http://old.intuit.ru/department/se/pmsazure/1/Azure_course_1.pptx. 1.1 Введение. Данный курс познакомит Вас с принципами современных облачных вычислений и наиболее перспективной платформой облачных вычислений Windows Azure и научит ее практически использовать. Будет дан детальный научный анализ концепции облачных вычислений в целом, оценены ее достоинства, недостатки, перспективы и проблемы развития. 1.2. Комментарии к списку литературы. Список литературы по курсу приведен в конце данной лекции. Вот некоторые комментарии к этому списку. В книге [1] рассмотрен широкий круг практических вопросов, связанных с облачными вычислениями в целом: затраты на облачные вычисления, проблемы их безопасности, ограничения, поставщики облачных сервисов (Google, Microsoft, Amazon, Yahoo, IBM, EMC/VMware, Salesforce.com и др.), используемое оборудование и инфраструктура облачных вычислений, клиенты, платформы, приложения, сервисы, память, стандарты (HTTP, HTML, DHTML, XMPP, SSL, OpenIDWeb, REST, SOAP, JSON), концепции Platform as a Service (PaaS), Software as a Service (SaaS), Software plus Services (S+S), среды и инструменты разработки программ для облачных вычиcлений, понятия тонкого клиента и виртуализации. Книга [2] посвящена в основном платформе Windows Azure. В книге проанализированы отличия локальных (on-premises) приложений от облачных и рассмотрены проблемы, возникающие при разработке облачного ПО, - безопасность, 7
защита конфиденциальных данных, соблюдение общих правил и ограничений, резервное копирование и восстановление, каталогизация элементов облака и другие общие технические вопросы. Описаны принципы и примеры разработки облачных компонент, включая память (Storage), SQL Data Services и .NET Services. Рассмотрены также более специфические вопросы: Сформулированы преимущества использования платформы Azure Services Platform для облачных вычислений Показано на примерах, как использовать компоненты Windows Azure, включая Azure Table and Blob storage, .NET Services и SQL Azure Описаны проблемы разработки гибридных приложений, сочетающих облачные компоненты и обычные Web-сервисы Приведены конкретные работающие примеры облачных приложений, доступные для скачивания с сопроводительного Web-сайта книги. Книга [3] и учебное пособие [4] автора курса предназначены для изучения современных операционных систем. В частности, в курсе и книге кратко рассмотрены основные принципы и возможности Windows Azure и бесплатных облачных сервисов Windows Live. Курс автора [5] – обзорно-аналитический курс по архитектурам и моделям программ и знаний. Одна из лекций курса посвящена основам облачных вычислений и Windows Azure. 1.3. Некоторые виды современного программного обеспечения. Прежде чем обратиться непосредственно к облачным вычислениям и к платформе Azure, рассмотрим важные основные концепции современной архитектуры ПО и проанализируем место облачных вычислений в этой общей схеме. Рассмотрим некоторые наиболее характерные виды современного программного обеспечения: Клиент-серверные системы Web – сервисы и Web-приложения Интегрированные распределенные решения (solutions) Встроенные системы Системы реального времени Программное обеспечение мобильных устройств Программное обеспечение носимых (wearable) компьютеров Программное обеспечение промежуточного уровня (middleware) ПО для облачных вычислений и центров обработки данных ПО для компьютерных кластеров ПО для виртуализации ПО для управления информацией (information management) ПО для управления знаниями (knowledge management) ПО для научных вычислений (scientific computing) 8
В целом для современного ПО характерна тенденция к значительному усложнению архитектуры. Клиент-серверные системы получили широкое распространение уже в течение десятков лет. Известны следующие основные разновидности серверов: сервер приложений, Web-сервер, сервер баз данных, сервер электронной почты, файл-сервер и другие [3]. Интернет (Web) – приложения предназначены для исполнения в Сети. В современных условиях большинство из них разрабатывается на платформе .NET или Java, хотя некоторые программисты и фирмы до сих пор пишут Интернет-приложения на C. В современном Web-программировании также широко используются языки с динамическими типами – JavaScript, Python, Ruby, для которых характерно динамическое изменение и конструирование типов во время выполнения программы, что удобно, так как отражает динамичную природу Web-приложений и Web-сайтов. Интернет-приложения подразделяются на клиентские (например, браузеры) и серверные (например, Web-сервисы). Интегрированные решения являются распределенными программными системами для управления информацией и функционированием предприятий, фирм, банков, университетов. Для интегрированных решений характерно наличие модулей аутентификации и авторизации пользователей, работы с базами данных, работы с сетью, реализации бизнес-логики. Интегрированные решения могут быть разработаны с использованием различных языков программирования. Встроенные системы – это программное обеспечение специализированных микропроцессоров, управляющих работой самых различных устройств – от атомных реакторов до холодильников, кардиостимуляторов, линий электропередач и автомобилей. Характерным требованием к программному обеспечению встроенных систем является фиксированность предельно допустимого времени ответа (response time), от которого зависит работоспособность, надежность и безопасность системы и управляемого ею объекта в целом, а подчас и само существование объекта или живого организма. Типичное требование к основному циклу работы подобной системы – отсутствие прерываний, которые могут вызвать недопустимые временные задержки. Программное обеспечение мобильных устройств – одна из наиболее современных и широко распространенных разновидностей ПО. Его особенности: ограничения на ресурсы (прежде всего – на объем памяти), необходимость учитывать различия в архитектуре конкретных моделей мобильных устройств (дисплеев и клавиш управления). ПО мобильных устройств, как правило, разрабатывается на платформе Java, либо с использованием продуктов Microsoft, например, .NET Compact Framework. Как экзотический, но актуальный пример, приведем также ПО носимых компьютеров. Они встроены в спецодежду или обувь., используемые человеком, выполняют мониторинг состояния и поведения человека и дают экспертные рекомендации. Данный класс устройств также имеет весьма жесткие ограничения по памяти. ПО промежуточного уровня (middleware) занимает промежуточное положение между 9
клиентом и сервером. К наиболее типичным примерам middleware относится, например, ПО для поддержки протоколов отправки и приема мгновенных сообщений (instant messaging and presence). ПО центров обработки данных (ЦОД) - еще один современный вид программного обеспечения. В нем особо важную роль играют СУБД, например, Microsoft SQL Server. ПО для виртуализации – это современный вид ПО, предназначенный для инсталляции и использования виртуальных машин на реальное оборудование с целью расширения функций компьютерной аппаратуры, использования других ОС и ПО для других платформ. Пример – Microsoft Virtual PC. ПО для облачных вычислений (cloud computing) – это сетевые операционные системы (например, Microsoft Windows Azure) и программное обеспечение, функцией которого является обеспечение работы пользователей через “облако”, т.е. через сеть, хранения данных и приложений на “облачных” серверах. ПО для управления знаниями играет в настоящее время все более важную роль, в связи с интеллектуализацией Web и все большей популярностью разработки интеллектуальных программных решений. Примеры: Protege, система управления знаниями, разработанная в Стэнфордском университете, обеспечивающая работу на языке определения онтологий OWL; система Knowledge.NET разработки СанктПетербургского университета, расширение C# средствами представления знаний и интегрированная среда для платформы .NET. ПО для управления информацией (information management) – офисные приложения (например, Microsoft Office, OpenOffice) и системы управления базами данных, например, Oracle, MySQL, Microsoft SQL Server. ПО для научных вычислений – разнообразные инструменты и пакеты программ для поддержки решения научных задач, Пример: MATHLAB. 1.4. Характерные черты современных программных систем Рассмотрим теперь наиболее характерные черты современных программных систем, которые присущи большинству из них, независимо от их предметной области и платформы, на которой они используются. Наиболее важная особенность современных программных систем – Web -awareness, т.е. ориентация на использование в Интернете. Наилучшими воплощениями этого принципа являются платформы .NET и Java. Для современного ПО характерна универсализация представления моделей программ и данных, которая во многом вытекает из сетевой ориентации ПО. Unified Modeling Language (UML) уже 20 лет используется как де-факто стандарт для моделирования программ и процессов их разработки. Что касается представления данных, то здесь дефакто стандартом является XML, обеспечивающий единое текстовое структурированное представление данных. 10