«Основы облачного программирования для школьников»
статья по информатике и икт (8 класс) на тему

Шантило Сергей Иванович

 

В настоящее время в связи с интенсивным развитием облачных вычислений, важное значение приобретают вопросы разработки программных комплексов и систем, предназначенных для эксплуатации в распределенной среде. Главными задачами облачных приложений являются эффективное использование ресурсов распределенной вычислительной системы и достижение высокой производительности самих вычислений. Для разработки облачных приложений может использоваться языки программирования Go, который учитывает специфику архитектуры распределенных вычислительных систем и предоставляет возможности эффективного и удобного программирования многопоточности и иных механизмов распараллеливания процессов. 

Скачать:

ВложениеРазмер
Microsoft Office document icon oblachnoe_programmirovanie.doc205.5 КБ

Предварительный просмотр:

Тема: «Основы облачного программирования для школьников»

Введение

В настоящее время в связи с интенсивным развитием облачных вычислений, важное значение приобретают вопросы разработки программных комплексов и систем, предназначенных для эксплуатации в распределенной среде. Главными задачами облачных приложений являются эффективное использование ресурсов распределенной вычислительной системы и достижение высокой производительности самих вычислений. Для разработки облачных приложений может использоваться языки программирования Go, который учитывает специфику архитектуры распределенных вычислительных систем и предоставляет возможности эффективного и удобного программирования многопоточности и иных механизмов распараллеливания процессов.

Изучение особенностей облачных технологий является неотъемлемой составляющей информационной подготовки школьников. Получение навыков облачного программирования у школьников позволит приобщить их к современному информационному пространству и подготовить к осознанному выбору будущей профессии.

Сущность облачных вычислений

Облачные вычисления (англ. Cloud Computing) – представляют собой концепцию, которая возникла в середине 2000-х гг., согласно которой создается инфраструктура «вычислительного облака», которое, инкапсулируя в себе данные, вычислительные ресурсы и другие элементы, предоставляет удаленным пользователям доступ к реализованным сервисам. При этом для доступа к ним пользователю достаточно иметь компьютер с web-браузером. Облачная инфраструктура представляет собой сложный распределенный программно-аппаратный комплекс. Нагрузка внутри «вычислительного облака» распределяется автоматически. В общем смысле «облако» можно считать суперкомпьютером который находится в сети и доступ к нему осуществляется через глобальную сеть Internet.

Одним из ключевых механизмов функционирования облаков является виртуализация, предполагающая возможность выполнения на одном сервере множества виртуальных машин, сократить издержки, осуществлять распределение ресурсов в реальном времени. Виртуализация позволяет создавать машины, специально предназначенные для определенных задач пользователей. При этом нет необходимости в закупке или модернизации оборудования – вся настройка виртуальной машины происходит в облаке. Это позволяет мгновенно увеличить мощности, выделяемые на сервисы пользователя. При этом программисту не приходится переписывать сервис или изменять его архитектуру [1].

Современное развитие облачных технологий привело к возникновению «облачных архитектур», в которых не только специальные сервисы выполняются внутри инфраструктуры, но и все приложение целиком распложено в облаке. Создатели приложения вместо использования собственной инфраструктуры, заключают договор об аренде определенных мощностей и сервисов облака.

При создании облаков объединяется множество технологий и идей, которые ранее не взаимодействовали напрямую. Облачные вычисления позволяют организовывать инфраструктуры виртуальных сетей, серверов и машин, создавать гибкие платформы для распределенных вычислений, предоставлять возможности для организации различных сервисов [2]. Внутренняя структура облака состоит из комплекса аппаратных и программных средств, который называется операционной системой облака. Типичная организация архитектуры облачных вычислений представлена на рисунке 1.

Самой важной частью рассматриваемой архитектуры, является промежуточное ПО, которое обеспечивает управление облачными приложениями и выступает единоличным поставщиком связи между оборудованием, на базе которого функционирует облако, системными сервисами облака и пользовательскими приложениями в нем.

Системные сервисы облака необходимы для поддержки основной функциональности, такой как масштабируемость, виртуализация и предоставление ресурсов облачных приложений. Кроме того, системные сервисы облака отвечают за безопасность, управление доступом, резервирование и менеджмент инфраструктур внутри облака.

Рисунок 1 – Архитектура облачных вычислений

Изучение сущности облачных вычислений позволит получить общее представление о данной технологии и сформулировать требования к инструментам для их реализации облачных вычислений.

Обзор языка программирования распределенных систем Go

Современное информационное пространство изобилует различными языками программирования. Однако, следует отметить, что не все подходят для облачного программирования. Ярким представителем языков программирования под облачные технологии, является язык Go.

Язык программирования Go представляет собой разработку компании «Google» и предназначен для программирования распределенных систем. Основной этап разработки Go длился с 2007 г. по 2009 г., его авторами являются Роберт Гризмер, Роб Пайк и Кен Томпсон, занимавшиеся до этого проектом разработки операционной системы Inferno, а в прошлом принимавшими участие в создании ОС UNIX и языка Си.

С помощью языка Go компанией «Google» была сделана попытка объединения синтаксиса легких в освоении интерпретируемых языков с динамической типизацией и компиляции в машинный код с использованием статически строгой типизации. Кроме того, при создании Go его разработчики ориентировались на его основное применение как средства для создания сетевых и многопоточных программ.

Синтаксис языка Go напоминает язык C/C++, и в нем явно чувствуется влияние Limbo и различных скриптовых языков. Язык поддерживает сборку мусора, ассоциативные массивы и строки. В Go принципиально отсутствуют такие возможности, как наследование типов, обобщенное программирование, использование утверждений и переопределение методов [3].

Язык Go предоставляет мощные возможности по написанию многопоточных программ. Одним из механизмов поддержки многопоточности являются так называемые goroutines – сверхлегкие потоки, отображающиеся на потоки ОС. Благодаря этому блокировка одной goroutine не заблокирует остальные потоки выполнения программы. Сама goroutine представляет собой обычный вызов функции, только происходит он в потоке, отдельном от главного потока выполнения программы. В этом концепция goroutines очень похожа на концепцию сверхлегких нитей в Limbo.

Концепция каналов в языке Go почти полностью перенесена из ОС Inferno и языка Limbo. В Go каналы могут быть использованы как для обмена сообщениями в между потоками, так и в качестве механизма синхронизации.

Message Passing Interface (MPI, интерфейс передачи сообщений) – программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу. Разработан Уильямом Гроуппом, Эвином Ласком и др.

Интерфейс MPI является наиболее распространённым стандартом интерфейса обмена данными в параллельном программировании. Его реализации существуют для большого числа компьютерных платформ. Используется при разработке программ для кластеров и суперкомпьютеров. Основным средством коммуникации между процессами в MPI является передача сообщений друг другу. Стандартизацией MPI занимается MPI Forum. В стандарте MPI описан интерфейс передачи сообщений, который должен поддерживаться как на платформе, так и в приложениях пользователя. В настоящее время существует большое количество бесплатных и коммерческих реализаций MPI, включая реализации для языков C и C++.

В первую очередь MPI ориентирован на системы с распределенной памятью, т. е. на системы, в которых затраты на передачу данных велики. Известна также разновидность MPI – OpenMPI, ориентированная на системы с общей памятью (многоядерные системы с общим кэшем). Обе технологии могут использоваться совместно с целью максимально эффективного использования возможностей кластерных и многоядерных систем.

Проведенный анализ сущности облачных вычислений и инструментов позволяет сделать выводы о серьезных возможностях данных технологий в быстром и легком выполнении и совместном использовании облачных ресурсов.

Средства программирования в облаке (обзор on-line IDE)

Представителем облачных технологий является web-сервис Ideone, при помощи его, также можно разрабатывать программы для облачных сервисов.

Ideone.com на сегодняшний день является самым известным проектом. Так же, как JS Fiddle и Python Fiddle, ideone обеспечивает подсветку синтаксиса и возможность сохранять и обмениваться фрагментами кода. Однако, в отличие от двух других, ideone поддерживает более чем 20 различных языков, включая C, C++, C#, Java, JavaScript, Go, Groovy, Objective-C, Perl, Python и Ruby. ideone стремится быть универсальным средством для тестирования любых фрагментов кода. Интерфейс Ideone представлен на рисунке 2.

Рисунок 2 – Интерфейс Ideone

Заключение

В процессе выполнения данной работы было установлено, что сегодня значительное внимание специалистов в области информационных технологий уделяется вопросам разработки и обслуживания облачных вычислительных систем, разработки соответствующего программного обеспечения и обеспечения безопасности и надежности распределенных вычислительных инфраструктур. В связи с повсеместным внедрением облачных технологий появляется серьезная необходимость в разработке надежных и безопасных приложений, ориентированных на применение в составе распределенных систем.

Проведенный анализ проблемы облачного программирования позволяет сделать следующие выводы: облачные технологии являются перспективным направлением современности и изучение данных технологий в школе позволит на начальном этапе приобщить школьников к этим технологиям; изучение языка программирования Go в среде разработки Ideone позволит развить алгоритмическое мышление школьников и позволит им разрабатывать собственные облачные приложения.

Список использованной литературы

  1. Облачная архитектура ИТ – бизнес-выгоды, модели, технологии. Науч.конф. – М. 2010. – 534 с.
  2. Таненбаум, Э., Стеен, М. Распределенные системы. Принципы и парадигмы. – СПб.: Питер, 2009. – 877 с
  3. Интернет-ресурс Wikipedia. Язык Go. Режим доступа: http://ru.wikipedia.org/wiki/Go


По теме: методические разработки, презентации и конспекты

Основы языка программирования Бейсик

В презентации дано понятие транслятора, описаные основные элементы языка программирования Бейсик: алфавит, стандартные функции, понятие перемонной, операторы ввода/вывода. Дан пример программы с испол...

Методическое обоснование курса «Основы алгоритмизации программирование»

Руководствуясь дидактическими аспектами профильного обучения и психолого-педагогическими основами теории П.Я. Гальперина и Н.Ф. Талызиной применительно к конкретным урокам информатики Аляб...

Программирование для школьников: Разбор задач командной олимпиады по программированию на языке Лого – 2015

Весной 2015 года, в Петербурге проходила восемнадцатая командная олимпиада по программированию  на  языке  Лого.  В каждой  команде  два  человека  и  один...

Основы web-программирования. Тест.

Этот тест создан для проверки учебного материала - "Основы Web-программирования"....

Образовательный проект «Ресурсный центр робототехники и программирования для школьников Барышского района»

Одной из тенденций современного российского образования является развитие естественно-научной и технической составляющей общего образования. Современное школьное образование должно способствовать...

Рабочая программа элективного курса "Основы языка программирования Python

Рабочая программа элективного курса "Основы языка программирования Pytho...

Опорный конспект для учащихся по теме: "Основы языка программирования Паскаль", 9кл

Опорный конспект распечатывается каждому учащемуся в классе и заполняется по ходу обхъяснения нового материала учителем. Этот материал остается у учащегося, заполняется и используется на последующих у...