Для выполнения на мобильных устройствах все более сложных приложений требуются увеличение емкости батарей и оптимизация процессов расходования энергии. Последние исследования в этой сфере направлены на повышение энергоэффективности за счет переноса нагрузки в облако. Концепция относительно проста — в случае выявления факта интенсивного потребления энергии определенными компонентами мобильного приложения оно становится распределенным. Иначе говоря, обработка данных переносится на находящийся в облаке сервер, а результаты пересылаются обратно на мобильное устройство, что позволяет экономить энергию батарей. Однако в большинстве схем разгрузки не учитывается энергия, затрачиваемая на перенос данных по сети, что нивелирует достигаемую экономию. Поскольку условия функционирования мобильной сети постоянно меняются, решение о целесообразности переноса нагрузки должно приниматься динамически, непосредственно в момент выполнения, что требует проведения оперативного анализа, позволяющего оценить возможную экономию и накладные расходы. Такой анализ довольно сложен в силу неоднородности мобильного оборудования и неустойчивости исполняемой среды. Адаптивная облачная разгрузка требует инновационных решений как в части программных преобразований, так и с точки зрения адаптации рабочего цикла.

Ограничения и возможности

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

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

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

Снижение энергопотребления

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

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

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

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

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

Адаптивный рабочий цикл

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

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

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

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

***

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

Эли Тилевич (tilevich@cs.vt.edu) — доцент, Янг-Ву Вон (ywkwon@cs.vt.edu) — сотрудник, Технический университет Вирджинии (США).

Eli Tilevich,Kwon Young-Woo, Cloud-Based Execution to Improve Mobile Application Energy Efficiency, IEEE Computer, January 2014, IEEE Computer Society. All rights reserved. Reprinted with permission.