Студопедия — App Engine
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

App Engine






Google App Engine позволяет выполнять ваши веб-приложения в инфраструктуре Google. Приложения App Engine легко создавать, поддерживать и усовершенствовать по мере увеличения трафика и хранилища данных. При работе с App Engine вам не понадобится поддерживать сервер: просто загрузите свое приложение, и пользователи смогут работать с ним.

Приложение можно опубликовать в собственном домене (например, http://www.example.com) с помощью Служб Google. Или воспользоваться бесплатным именем в домене appspot.com. Приложение можно сделать доступным для всех или предоставить доступ только участникам вашего коллектива.

Google App Engine поддерживает приложения, написанные на нескольких языках программирования. Благодаря среде выполнения Java App Engine можно создавать приложения с помощью стандартных технологий Java, в том числе JVM, сервлетов Java и языка программирования Java, или другого языка, использующего интерпретатор или компилятор на JVM, например JavaScript или Ruby. Кроме того, App Engine предоставляет специальную среду выполнения Python, которая включает быстрый интерпретатор и стандартную библиотеку Python. Среды выполнения Java и Python разработаны специально для того, чтобы приложения могли быстро и безопасно выполняться без взаимодействия с другими приложениями в системе.

С App Engine нужно платить, только за то, что используете. Не требуется платить за установку или вносить периодические платежи. Оплата за использованные приложением ресурсы, такие как объем хранения и трафик, измеряемые в гигабайтах, взимается по обоснованным ставкам. Можно управлять максимальным количеством ресурсов, которые приложение может использовать, что позволит всегда оставаться в пределах бюджета.

Начать использовать App Engine можно бесплатно. Вам не придется платить за приложения, использующие менее 500 МБ хранилища, а также ресурсы ЦП и трафик, достаточные для эффективного приложения, обслуживающего до пяти миллионов просмотров страниц в месяц. Включив оплату для приложения, эти ограничения повышаются, а оплата взимается только за ресурсы, использованные свыше бесплатных уровней.

Среда приложений

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

  • динамическую работу в Интернете с полной поддержкой основных веб-технологий;
  • постоянное хранилище с запросами, сортировкой и транзакциями;
  • автоматическое масштабирование и регулировку нагрузки;
  • API для аутентификации пользователей и отправку электронной почты с помощью аккаунтов Google;
  • полнофункциональную локальную среду разработки, имитирующую Google App Engine на вашем компьютере.
  • запланированные задачи для отслеживания событий в определенное время или через регулярные интервалы.

Приложение может выполняться в одной из двух сред выполнения: Java и Python. Каждая среда предоставляет стандартные протоколы и основные технологии для разработки веб-приложений.

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

Ниже приведены примеры ограничений надежной тестовой среды.

Приложение может получать доступ к другим компьютерам в Интернете только через предоставленные API, службу получения данных по URL и службу электронной почты. Другие компьютеры могут подключаться к приложению только путем HTTP-запросов (или HTTPS-запросов) на стандартных портах.

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

Код приложения выполняется только в ответ на веб-запрос или задачу Cron и в любом случае должен возвращать данные ответа в течение 30 секунд. Обработчик запросов не может создать подпроцесс или выполнить код после отправки ответа.

Для среды выполнения Java можно разработать приложение с помощью стандартных инструментов веб-разработки Java и стандартных API. Приложение взаимодействует со средой с помощью стандарта Java Servlet и может использовать стандартные технологии веб-приложения, такие как страницы JavaServer Pages (JSP).

Среда выполнения Java использует Java 6. SDK Java App Engine поддерживает разработку приложений с помощью Java 5 и 6.

Среда включает платформу Java SE Runtime Environment (JRE) 6 и библиотеки. Ограничения на тестовую среду реализованы в JVM. Приложение может использовать байтовый код JVM или библиотеки в пределах ограничений тестовой среды. Например, при попытке байтового кода открыть сокет или записать файл возникнет исключение среды выполнения.

Доступ к большинству служб App Engine можно получить через стандартные API Java. Для хранилища данных App Engine SDK Java содержит реализации интерфейсов объектов данных Java (JDO) и Java Persistence API (JPA). Чтобы отправлять сообщения по электронной почте с помощью службы Mail App Engine, можно использовать API JavaMail. У API HTTP java.net есть доступ к службе получения данных по URL App Engine. Кроме того, для своих служб App Engine включает низкоуровневые API, которые реализуют дополнительные адаптеры и позволяют использовать службы напрямую из приложения. Ознакомьтесь с документацией по API хранилища данных, кэша памяти, получения данных по URL, почты, изображений и аккаунтов Google.

Обычно, чтобы разработать веб-приложения для JVM, Java-разработчики используют язык программирования Java и API. Используя совместимые с JVM компиляторы и интерпретаторы, можно разрабатывать веб-приложения на других языках, таких как JavaScript, Ruby и Scala.

Благодаря среде выполнения Python App Engine можно создавать приложения с помощью языка программирования Python и выполнять их с помощью оптимизированного интерпретатора Python. App Engine включает разнообразные API и инструменты для разработки веб-приложений Python, в том числе API моделирования обогащенных данных, простую в использовании инфраструктуру веб-приложений и инструменты для управления и доступа к данным приложения. Для разработки веб-приложений Python можно воспользоваться преимуществами широкого набора библиотек и инфраструктур, например Django.

Среда выполнения Python использует Python версии 2.5.2. Для будущего выпуска рассматривается возможность поддержки Python 3.

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

Код приложения, созданный для среды Python, должен быть написан исключительно на Python. Расширения, написанные на языке C, не поддерживаются.

Среда Python предоставляет мощные API Python для служб хранилища данных, аккаунтов Google, получения URL и электронной почты. App Engine также предоставляет простую инфраструктуру веб-приложения Python под названием webapp, которая облегчает создание приложений.

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

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

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

Для объектов хранилища данных не требуется схема. Структура объектов данных определяется в коде приложения. Интерфейсы JDO/JPA Java и хранилища данных Python включают функции для применения структуры в приложении. Приложение может получить прямой доступ к хранилищу данных, чтобы реализовать нужную часть структуры.

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

Хранилище данных реализует транзакции в своей распределенной сети с помощью "групп записей". Транзакция осуществляет действия над записями в одной группе. Записи каждой из групп хранятся вместе для эффективного выполнения транзакций. При создании записей приложение может присоединять их к группам.

App Engine поддерживает интеграцию приложения с аккаунтами Google для аутентификации пользователей. Ваше приложение может позволить пользователю войти в свой аккаунт Google и получить доступ к адресу электронной почты и отображаемому имени, связанным с аккаунтом. Использование аккаунтов Google дает пользователю возможность быстрее начать использовать ваше приложение, поскольку ему не придется создавать новый аккаунт. Это также снимает с вас необходимость реализовывать систему аккаунтов пользователей только для своего приложения.

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

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

App Engine предоставляет набор служб, позволяющих выполнять рядовые операции при управлении приложением. Для доступа к этим службам предоставлены следующие API.

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

  • Электронная почта

Приложения могут отправлять сообщения электронной почты с помощью почтовой службы App Engine. Для отправки электронных сообщений эта служба использует инфраструктуру Google.

  • Memcache

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

  • Работа с изображениями

Служба изображений позволяет приложению работать с изображениями. С помощью этого API можно изменять размер, обрезать, поворачивать и отражать изображения в форматах JPEG и PNG.

  • Запланированные задачи

Служба Cron позволяет планировать задачи для выполнения через определенные интервалы. Подробнее о ней можно узнать в документации по службе Cron Python и Java.

  • Процесс разработки

Инструментарий разработки App Engine (SDK) для Java и Python включает приложение на веб-сервере, которое имитирует службы App Engine на локальном компьютере. Каждый SDK включает все API и библиотеки, доступные в App Engine. Кроме того, веб-сервер имитирует безопасную тестовую среду, включающую проверку на доступ к системным ресурсам, запрещенную в App Engine.

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

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

SDK Java выполняется на любой платформе с Java 5 или Java 6. SDK доступен в виде ZIP-файла. При использовании среды разработки Eclipse, чтобы создать, проверить и добавить приложения App Engine, можно использовать плагин Google для Eclipse. SDK также содержит инструменты, работающие из командной строки, позволяющие запускать сервер разработки и добавлять приложения.

SDK Python реализован на чистом Python и выполняется на любой платформе с Python 2.5, в том числе Windows, Mac OS X и Linux. SDK доступен в виде Zip-файла, а для Windows и Mac OS X доступны программы установки.

Консоль администрирования – это веб-интерфейс для управления приложениями, работающими в App Engine. Ее можно использовать для создания новых приложений, настройки доменных имен, изменения рабочей версии приложения, изучения доступа и журналов ошибок и просмотра хранилища данных приложения.

  • Квоты и ограничения

Создать приложение в App Engine не только просто, но и бесплатно! Вы можете создать аккаунт и опубликовать приложение, которое можно будет использовать сразу же, бесплатно и без дополнительных требований. Приложение с бесплатным аккаунтом может использовать до 500 МБ хранилища данных и до пяти миллионов просмотров страниц в месяц. Если нужно больше, включите оплату, установите максимальный дневной бюджет и распределите его между ресурсами в соответствии со своими потребностями.

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

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

Для некоторых функций ограничения не связаны с квотами, а предназначены для сохранения стабильности системы. Например, если приложение вызывается для выполнения веб-запроса, оно должно создать ответ в течение 30 секунд. Если этот процесс длится слишком долго, то он прекращается, а сервер возвращает пользователю код ошибки. Таймаут запроса динамичен и может уменьшаться для экономии ресурсов, если обработчик запросов достигает его слишком часто.

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

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

Список квот и объяснение системы квот, включая квоты, которые можно увеличить, включив оплату, можно посмотреть в статье Квоты.

Краткие итоги:

В ходе данной лекции мы рассмотрели несколько наиболее ярких примеров облачных сервисов. Количество данных сервисов увеличивается постоянно. Все больше идей и стартапов реализуется именно в "облаках". Все это свидетельствует о популярности данных технологий.







Дата добавления: 2015-10-19; просмотров: 419. Нарушение авторских прав; Мы поможем в написании вашей работы!



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Метод Фольгарда (роданометрия или тиоцианатометрия) Метод Фольгарда основан на применении в качестве осадителя титрованного раствора, содержащего роданид-ионы SCN...

Потенциометрия. Потенциометрическое определение рН растворов Потенциометрия - это электрохимический метод иссле­дования и анализа веществ, основанный на зависимости равновесного электродного потенциала Е от активности (концентрации) определяемого вещества в исследуемом рас­творе...

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

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия