IT-РАБОТА · РЕГИОН: СИБИРЬ

 

Технология веб-проектирования на платформе Google: GAE, GWT и Datastore

Многие из веб-программистов рано или поздно задаются вопросом о том, что же выбрать из инструментов для создания своего проекта в Internet. В первую очередь нужно выбрать язык программирования, на котором и будет писаться вся логика приложения (Java, PHP, Python, ASP). Далее, не мало важен вопрос выбора базы данных для хранения необходимой информации (MySQL, PostgreSQL, Oracle). После этого результат связи логики с данными БД нужно как-то отображать на веб-странице – для этого выбираются подходящие фреймворки по работе с HTML, JavaScript, Flash и т.п. Всё это соответствует шаблону MVC (Model-view-controller) построения архитектуры программного обеспечения. Из вышеперечисленного списка, роль Модели (Model) играет БД, которая выполняет функцию хранения и отображения данных для Представления (View). Роль Представления играют в совокупности такие инструменты как, к примеру, HTML и JavaScript, либо определённые фреймворки, которые предлагают более оптимизированные способы работы с отображением данных. И, пожалуй, одна из самых главных ролей шаблона MVC достаётся Контроллеру (Controller). Его ещё называют как Поведение, у которого задача приёма данных от пользователей (View), обработка их, посылка запросов в информационную модель (Model), получение данных, обработка их и возврат результата обратно к пользователю (View). Фактически логика уровня Контроллера является функциональным ядром всего приложения.

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

Необходимо рассказать про такие замечательные проекты как Google App Engine, Google Datastore (оно же имитация Google BigTable) и Google Web Toolkit.

Начнем, пожалуй, с Google App Engine (далее GAE). GAE позволяет выполнять веб-приложения в инфраструктуре Google. Официально на данный момент GAE поддерживает пока только два языка: Java и Python. Хотя в неофициальных кругах уже давно реализована возможность запуска PHP и Ruby приложений.
Каков же принцип работы GAE? Google предоставляет всем бесплатный хостинг по размещению пользовательских проектов. Роль базы данных играет только BigTable и, поэтому, мы не найдём здесь возможность разработки на базе остальных нам привычнык БД, как MySQL. Условия свободного размещения своего проекта урезаются рамками использования языков Java, либо Python. Заметим, что для Java предоставляется урезанная библиотека SDK (что можно, а что нельзя расписано на официальном сайте продукта Google App Engine).

Возьмём для примера GAE под Java. Вся разработка приложений реализуется на базе инструментов SDK Java App Engine. Этот инструментарий включает в себя ПО для запуска необходимого веб-сервера (что-то на подобие Tomcat), который позволяет разрабатывать и тестировать приложения на своём компьютере. Данный сервер эмулирует все службы App Engine (которые расположены на серверах Google) и локальную версию хранилища данных Datastore (которая является имитацией реальной БД Google BigTable). Запущенные Java приложения выполняются, используя виртуальную машину JVM и библиотечный функционал SDK Java App Engine. Тут существуют поддержки многих стандартов Java и, к примеру, мы сможем найти возможность реализации сервлетов (servlets) и JSP. Вся разработка приложения на базе GAE практически ни чем не отличается от разработки в других JAVA инфраструктурах. То есть это всё подвластно каждому программисту и не нужно ничего переучивать.

GAE в шаблоне MVC исполняет роль Контроллера, в котором содержится вся логика (функционал) приложения.
Идём дальше в поисках других частей нашего шаблона.

App Engine непосредственно работает с хранилищем данных (БД), которое реализовано через Datastore. Как вы уже, наверное, догадались, подобное хранилище как раз и играет роль Модели. Если заглянуть в дерево исходных кодов своего приложения, то можно найти там некоторый файл с расширением .bin – это и есть наше хранилище, которое является обычным файлом. На первый взгляд это покажется очень странной особенностью, поэтому рассмотрим чуть подробнее, что же такое Datastore.

Хранилище данных (Datastore, BigTable) не является реляционной базой данных, поэтому здесь нет таких понятий проектировании БД как схемы. Всё основывается на объектах и непосредственной работе с ними, то есть все данные – это есть объекты, которые обладают различными свойствами. Для работы со всем этим Java SDK предоставляет реализацию интерфейсов JDO и JPA. Кроме того, хранилище данных предоставляет ещё и свои низкоуровневые API (datastore-api), которые используются напрямую для доступа к данным. JDO/JPA достаточно известные стандарты по работе с Java объектами, поэтому опытным программистам не составит труда разобраться в принципе работы их приложений с данными Datastore.

Мы уже разобрали две части шаблона MVC. Осталось найти инструментарий для третьей части – Представление. И здесь к нам на помощь приходит Google Web Toolkit (далее GWT).

Совет для многих Java программистам обратить своё внимание на данный продукт. Что же это такое? GWT представляет из себя JS-фреймворк предоставления данных на веб-странице пользователя. Теперь не нужно часами сидеть и верстать HTML тэги с JS кодом, да и ещё пытаться сделать это всё правильно для каждого браузера. Это всё уже давно является большой головной болью для многих программистов. Но теперь есть возможность избавиться от подобных мучений – GWT всё делает за тебя.

Принцип его работы достаточно простой и заключается в трансляции Java кода в JavaScript код, который автоматически оптимизируется под все известные браузеры (IE, Firefox, Opera, Chrome). Простыми словами, программист пишет некоторый код на обычном языке Java, который описывает логику создания всех HTML и прочих элементов веб-страницы. Далее компилятор GWT берёт этот код и транслирует его в JS-код, который далее и отображается. Получается, что теперь не нужно тратить многие часы на изучение языка JavaScript, что в свою очередь экономит много времени в разработке приложений.

Вот мы и разобрали шаблон проектирования MVC на базе обзора инструментов от компании Google. Добавим пару слов в поддержку данной шаблона, а именно – это практически базовый стандарт по разработке всего ПО. Поэтому советуем всем программистам уделять большое внимание данной тематике, что поможет им в дальнейшей своей профессиональной деятельности.

Следующая статья: Специфика работы веб-программиста
Предыдущая статья: Наполнение сайта информацией методом вопросов и ответов

Оставить комментарий

Внимание!!! При копировании материалов сайта ссылка на источник обязательна.

Счетчики: