Решение задач интеграции мобильных приложений на разных устройствах и платформах

Использование MEAP для разработки мобильных приложений

Сегодня облачные вычисления идут рука об руку с мобильными приложениями, тем не менее, первый шаг на пути к интеграции мобильных приложений в облако может создать проблемы. Автор этой статьи рассказывает о платформе мобильных корпоративных приложений (MEAP) и объясняет, почему ее выбор может обеспечить лучшую модель разработки для среды предприятия. Он приводит пример реальной облачно-ориентированной системы MEAP Convertigo Mobilizer, в создании которой сам участвовал.

Оливье Пиччиотто, генеральный директор, Convertigo

Оливье Пиччиотто (Olivier Picciotto) ― соучредитель компании Convertigo; он участвует в общем управлении компании, играет роль технического пропагандиста ее продукции и обладает более чем 15-летним опытом управления ИТ-компаниями. До Convertigo основал и управлял бизнесом по разработке средств обмена сообщениями с конечными пользователя предприятия на платформе Marben Produits, создав мощную систему обмена сообщениями на базе X.400. Имеет диплом инженера E.S.M.E по специальности ИТ.



06.03.2013

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

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

Проблемы интеграции мобильных устройств

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

  • поддержка мобильных устройств существующими приложениями;
  • сложные языки разработки мобильных приложений;
  • тенденция к использованию сотрудниками собственных устройства (bring-your-own-device trend - BYOD);
  • задача структурирования и позиционирования бизнес-логики;
  • задача выбора мобильной Web-ориентированной архитектуры SOA.

Рассмотрим их более подробно; позже я расскажу, как моя группа решила эти проблемы при разработке своего продукта.

Существующие приложения не поддерживают мобильные устройства

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

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

Разработка мобильных приложений обычно требует некоторых сложных ресурсов Objective C и Java™, с которыми Web-разработчики, как правило, не знакомы. Однако в структурном плане мобильные приложения работают с пользовательскими интерфейсами, которые требуют знания HTML5 и JavaScript, а оно у Web-разработчиков есть. Решение этой задачи – предоставить мост, чтобы Web-разработчики могли писать код мобильных приложений с применением знакомых им технологий.

Необходимость поддерживать несколько платформ и тенденция к использованию сотрудниками собственных устройств

Эта проблема вынуждает предприятия разрабатывать мобильные приложения, способные работать на разных операционных платформах (iOS, Android, Blackberry, Windows Phone и т.д.) и разных устройствах (смартфоны, планшеты и т.п.) с разными размерами памяти и дисплея. Как упоминалось выше, ключом к решению этой задачи может стать общая, более простая в применении промежуточная среда.

Где лучше размещать бизнес-логику приложения?

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

Не путайте SOA с WOA

Большинство предприятий знакомо (или работает) с идеями и структурами сервис-ориентированной архитектуры. У них есть информационная система на основе Web-сервисов SOAP, организуемая через каналы служб предприятия. Однако мобильный мир основывается не на SOA. Среда мобильных устройств, как правило, полагается на WOA, Web-ориентированную архитектуру, основанную на службах REST или JSON с проверкой подлинности по протоколам OAuth. Эти протоколы гораздо лучше оптимизированы для сетей 3G с их низкой пропускной способностью. Нужен способ использовать SOA-атрибуты организации в мире WOA; одним из решений является промежуточный уровень интерфейса между структурированной и жесткой SOA и гибкой и подвижной WOA. Он позволил бы, например, несколькими нажатиями кнопки заменить существующие Web-сервисы SOAP на службу REST/JSON.

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


MEAP изнутри

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

Вот некоторые из наиболее общих атрибутов MEAP:

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

Общая структура MEAP

MEAP обычно состоит из трех компонентов.

  • Промежуточный сервер мобильных приложений: управляет всей интеграцией системы, безопасностью, связью, масштабируемостью, кросс-платформенной поддержкой и т.п. Данные не хранятся на сервере; он управляет передачей данных между центральной системой и устройствами.
  • Клиентское мобильное приложение: подключается к промежуточному серверу и переносит в устройство пользовательский интерфейс и бизнес-логику. Может быть «толстым» (приложения, установленные на устройстве) или «тонким» (выполняются в браузере устройства с чем-то вроде HTML5).
  • Мобильный инструментарий управления конфигурацией/разработки: создает и настраивает мобильные компоненты.

Когда применять MEAP?

Аналитическая фирма Gartner предлагает организациям обращаться к MEAP, когда нужно поддерживать три или более мобильных приложений или операционных систем, либо интегрировать по крайней мере три централизованных источника данных (Gartner RAS Core Research Note G00211688, 20 апреля 2011 г.; необходима регистрация.)


Реальный пример: Convertigo Mobilizer

Моя группа разработала MEAP-среду Convertigo Mobilizer, которая обеспечивает единую, гибкую систему мобильной интеграции, позволяющую разрабатывать мобильные приложения корпоративного класса и использовать существующие ценные активы организации. Mobilizer составляет ядро технологической платформы, которая позволяет мгновенно извлекать и обрабатывать данные из любого источника данных предприятия или приложения; он также может выполнять динамическую и транзакционную интеграцию из любого существующего Web-сайта или приложения. Convertigo интегрируется с мейнфреймом и приложениями, работающими на таких системах, как IBM® iSeries или zSeries. На рисунке 1 показано, где располагается Convertigo Mobilizer в общей среде предприятия.

Рисунок 1. Место MEAP Mobilizer в ИТ-среде предприятия
Место MEAP Mobilizer в ИТ-среде предприятия

Помните о проблемах интеграции мобильных приложений, которые упоминались выше? Mobilizer решает их все.

  • Поддержка мобильных устройств существующими приложениями. Эта задача решается путем предоставления набора мощных коннекторов, способных подключаться и гладко взаимодействовать с любыми приложениями на базе Web или мейнфрейма без необходимости внесения каких-либо изменений в целевые приложения.
  • Сложные языки разработки мобильных приложений. Эта задача решается с помощью популярных Web-архитектур, таких как JQuery Mobile и Sencha Touch (на базе технологии Apache Cordova/PhoneGap). Эти компоненты позволяют Web-разработчикам писать мобильные приложения для разных платформ, пользуясь своими любимыми языками.
  • Тенденция к использованию сотрудниками собственных устройства (bring-your-own-device trend - BYOD). Эта задача решается путем интеграции только что упомянутых архитектур (JQuery Mobile, Sencha Touch и PhoneGap).
  • Задача структурирования и позиционирования бизнес-логики. Решается путем предоставления мощного уровня бизнес-логики, способного комбинировать, организовывать и вычислять данные из нескольких источников предприятия. Convertigo Sequencer может обрабатывать сложную бизнес-логику и выполнить процессы бизнес логики, программируемые оператором, не имеющим глубоких технических знаний. Кроме того, Sequencer выполняет процессы, описываемые метаданными, что позволяет избежать написания или компиляции кода. Это способствует организации гибких процессов разработки, экономящих время и деньги.
  • Задача выбора мобильной Web-ориентированной архитектуры для SOA. Эта задача решается путем поддержки предложенного выше механизма — он обеспечивает необходимый промежуточный интерфейс между весьма структурированной и жесткой SOA и более гибкой и подвижной WOA.

Теперь давайте посмотрим, как использовать Convertigo Mobilizer на платформе IBM SmartCloud Enterprise.


Convertigo Mobilizer на платформе IBM SmartCloud Enterprise

MEAP Convertigo Mobilizer на платформе IBM SmartCloud Enterprise позволяет предприятиям использовать мощные функции IBM SmartCloud для поддержки корпоративных мобильных приложений.

Приступая к работе

  1. Войдите в IBM SmartCloud, запустите экземпляр, выберите свой центр обработки данных и найдите образ Convertigo Enterprise Mashup Server. На рисунке 2 приведен пример образа Convertigo в центре обработки данных Raleigh.
    Рисунок 2. Добавление экземпляра
    Добавление экземпляра

    Образ Convertigo доступен на правах BYOL (bring your own license), что означает, что нужно иметь действительную производственную лицензию Convertigo. Без лицензии Convertigo Enterprise Mashup Server (EMS) предоставляет полный комплекс услуг в течение 30 дней.

  2. Выберите образ Convertigo EMS и нажмите кнопку Next.
  3. Заполните необходимые поля для запуска экземпляра. Рекомендуется запускать Convertigo по модели Copper или Silver. Запуск с конфигурацией сервера более высокого класса не улучшит производительность, так как этот образ Convertigo предназначен для использования двух- четырех виртуальных ядер ЦП.
  4. Запустите экземпляр и дождитесь завершения инициализации IBM SmartCloud. Вы увидите следующую панель.
    Рисунок 3. Страница консоли SmartCloud
    Страница консоли SmartCloud
  5. Посмотрите на IP-адрес, назначенный IBM SmartCloud (выделен красным цветом на рисунке 3). Запустите браузер Google Chrome и обратитесь к работающему экземпляру Convertigo EMS по адресу: http://<IPaddr>. Вы должны увидеть EMS Convertigo на странице приветствия IBM SmartCloud.

Создание постоянной рабочей области на сервере Convertigo

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

  • развернутых проектов Convertigo;
  • журналов событий;
  • информации о лицензии.

Эти данные хранятся в файловой системе, называемой рабочей областью. Чтобы настроить постоянную рабочую область, добавьте с консоли IBM SmartCloud постоянную файловую систему и смонтируйте ее в /mnt/extra. Эта файловая система будет содержать информацию о лицензии, поэтому после настройки постоянного хранилища достаточно ввести действительный лицензионный ключ Convertigo с консоли администрирования Convertigo (рисунок 4).

Рисунок 4. Стартовый экран сервера Convertigo
Стартовый экран сервера Convertigo

Разработка первого проекта мобильного приложения

  1. Convertigo Studio помогает разрабатывать мобильные приложения. Загрузите этот пакет, нажав кнопку Download Convertigo Studio на стартовой странице сервера Convertigo (рисунок 4). Convertigo Studio представляет собой инструмент разработки на основе Eclipse, который обеспечивает среду программирования сервера Convertigo. Когда проект будет готов, созданное приложение можно развернуть на Convertigo EMS в IBM SmartCloud.
  2. Дождитесь окончания загрузки Convertigo Studio (около 250 МБ) и запустите файл convertigo-studio-6.x.x-vXXXX-win32-install.exe. В процессе установки нужно будет ввести параметры прокси-сервера. Настройте их правильно, иначе вы не сможете развертывать проекты Convertigo EMS в IBM SmartCloud.

    Пока Convertigo Studio работает только на Windows; Mac-версии предоставляются по особому запросу.

  3. Запустите Convertigo Studio. При первом запуске Convertigo Studio запрашивает свидетельство о регистрации. Для IBM SmartCloud оно не требуется, нажмите кнопку Ignore (рисунок 5).
    Рисунок 5. Окно регистрации.
    Окно регистрации
  4. В следующем окне сообщения нажмите yes.

Теперь Convertigo Studio работает.

Разработка первого проекта

Сначала нужно усвоить модель программирования Convertigo. Она основана на программировании на стороне сервера и на стороне клиента (мобильного). Сервер и клиент взаимодействуют через протоколы JSON/REST/XML по http или https. Convertigo Studio позволяет программировать обе стороны в одной уникальной интегрированной среде Convertigo Studio на основе Eclipse.

Рисунок 6. Взаимодействие мобильного приложения с сервером
Взаимодействие мобильного приложения с сервером

Модель программирования на стороне сервера
Программирование на стороне сервера основано на сборке и настройке объектов Convertigo, называемых коннекторами, транзакциями и последовательностями.

  • Коннекторы управляют соединением с централизованными приложениями. Существует несколько типов коннекторов:
    • SQL-коннектор подключается к любой JDBC-совместимой базе данных;
    • HTTP-коннектор принимает любой существующий Web-сервис SOAP/REST/JSON;
    • Legacy Screen-коннекторы подключаются к любым приложениям на основе представления на платформах iSeries, zSeries или UNIX®;
    • HTML-коннекторы подключаются к любому существующему Web-приложению.
  • Транзакции управляют взаимодействием с удаленной системой. Все транзакции основываются на одном из существующих коннекторов Convertigo. Например:
    • SQL-транзакции выполняют специальный запрос SQL через SQL-коннектор для чтения или записи в базу данных;
    • HTTP-транзакции вызывают любой Web-сервис на базе HTTP с помощью SOAP/REST или JSON;
    • HTML-транзакции могут подключаться любому существующему Web-приложению, взаимодействовать с ними, заполнять формы и воздействовать на любые элементы пользовательского Web-интерфейса, создавая страницу результатов, которая выглядит и структурирована как XML-ответ;
    • Legacy Screen-транзакции могут подключаться к любым приложениям на базе представлений TN5250, TN3270 или Telnet, взаимодействуя с ними и читая, записывая и возвращая данные в виде структурированных XML-ответов.
  • Последовательности отвечают за согласование транзакций по разным коннекторам. Последовательности реализуют поток бизнес логики, могут принимать решения, управлять циклами и выполнять несколько потоков одновременно.

Если коннекторы SQL и Web-сервисы, имеющиеся в Convertigo, довольно часто встречаются и в других MEAP, то HTML- и Legacy Screen-коннекторы уникальны для MEAP Convertigo. Они обеспечивают мощную технологию поддержки мобильных устройств, гарантируя неинтрузивное подключение к любым существующим бизнес-приложениям.

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

Рисунок 7. Подключение к любому уровню целевого приложения
Подключение к любому уровню целевого приложения

На рисунке 8 показано взаимодействие между различными компонентами Convertigo.

Рисунок 8. Глобальные компоненты Convertigo
Глобальные компоненты Convertigo

Дополнительные сведения о программировании на стороне сервера можно почерпнуть в кратких руководствах (см. раздел "Ресурсы").

Модель программирования на стороне клиента
Программирование на стороне клиента в MEAP Convertigo осуществляется с использованием HTML5 и JavaScript. Convertigo объединяет поддержку JQuery Mobile и Sencha Touch рамок для пользовательского интерфейса с использованием PhoneGap/Apache Cordova для кросс-платформенной поддержки приложений.

Это позволяет написать одно клиентское приложение, которое можно запускать на четырех разных мобильных платформах (iOS, Android, Blackberry 6 и Windows Phone 7.5). Его можно выполнять и как мобильное Web-приложение, избегая процедур развертывания хранилища приложений. Краткое руководство (см. раздел Ресурсы) поможет вам разработать свой первый проект клиентского пользовательского интерфейса.

Разработка проекта по образцу US Directory
Можно также воспользоваться действующим образцом, таким как проект US Directory, который прилагается к Studio. Он демонстрирует, как сделать мобильным Web-сайт usdirectory.

  1. Чтобы загрузить образец в ConvertigoStudio, выберите File > New > Project.
  2. Найдите Convertigo projects > Sample > Mobile Samples и выберите Sencha-based US Directory Sample (рисунок 9).
    Рисунок 9. Образец US Directory
    Образец US Directory
  3. Выполните мастер; в этом проекте используется пакет Sencha Framework, поэтому мастер предложит загрузить его.
    Рисунок 10. Мастер загрузки Sencha
    Мастер загрузки Sencha

    Загружайте версию Sencha Touch 1.x. Ссылка в окне мастера может указывать на страницу загрузки Sencha 2.0, но вам нужно найти Sencha 1.X.

  4. По окончании загрузки Sencha Framework скопируйте ZIP-файл в выделенный в окне мастера каталог и нажмите кнопку Finish. Образец US Directory загрузится в Convertigo Studio.
    Рисунок 11. Загрузка образца
    Загрузка образца

Развертывание проекта на сервере EMS Convertigo в SmartCloud
Теперь проект открыт в локальной студии. Чтобы развернуть его на сервере Convertigo в учетной записи IBM SmartCloud, выполните следующие действия.

  1. Щелкните правой кнопкой мыши на имени проекта в обозревателе проектов Studio и выберите Deploy.
  2. Откроется окно развертывания. Наберите в первом поле адрес Convertigo Server в SmartCloud: <IBM SCE assigned IP address >/convertigo.
  3. Введите admin в поле Server administrator и admin в поле Password. Не используйте никаких префиксов http или https. См. рисунок 12.
    Рисунок 12. Окно Deploy
    Окно Deploy
  4. Нажмите кнопку Deploy.
  5. Дождитесь, пока проект развернется (см. рисунок 13).
    Рисунок 13. Развертывание
    Развертывание
  6. При развертывании проекта появляется окно подтверждения (рисунок 14).
    Рисунок 14. Проект развернут
    Проект развернут
  7. Чтобы запустить проект, просто нажмите на указанную ссылку. Используйте браузер Google Chrome (рисунок 15).
    Рисунок 15. Платформа тестирования проекта
    Платформа тестирования проекта

Теперь проект успешно развернут на Convertigo в IBM SmartCloud.

Для запуска мобильного Web-приложения выполните следующие действия.

  1. Откройте выбранное устройство, например Android (рисунок 16).
    Рисунок 16. Запуск Web-приложения
    Запуск Web-приложения
  2. Нажмите кнопку Execute или сосканируйте QR-код WebApplication своим Android-устройством. Кнопка Execute запускает мобильное приложение на платформе тестирования Convertigo (рисунок 17).
    Рисунок 17. Запущенный проект
    Запущенный проект

    (Увеличенная версия рисунка 17).

Можно получить полный URL этого Web-приложения, скопировав URL-адрес, выделенный на странице.

Создание кросс-платформенных приложений
Имея рабочее мобильное Web-приложение, можно создавать специальные пакеты для каждой из поддерживаемых платформ. Этот процесс генерирует файлы .IPA для платформ iOS (iPhone и iPad) и пакеты .APK для платформ Android (телефоны и планшеты).

Для создания специальных пакетов выполните следующие действия.

  1. Нажмите кнопку Build mobile applications (построить мобильное приложение – рисунок 18).
    Рисунок 18. Создание специальных приложений
    Создание специальных приложений

    (Увеличенная версия рисунка 18).

  2. Нажмите кнопку Build the mobile devices (выбрать мобильное устройство). Convertigo начинает строить приложение для каждой платформы и отображает знак ожидания. Когда приложения готовы, знак ожидания сменяется QR-кодом (рисунок 19).
    Рисунок 19. Создание специальных приложений
    Создание специальных приложений

    (Увеличенная версия рисунка 19).

  3. Можно отсканировать QR-код или нажать на него, чтобы загрузить файл специального приложения в рабочую станцию. Затем эти приложения можно опубликовать в магазине Apple или Android или выложить на свой корпоративный сайт.

Заключение

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

Ресурсы

Научиться

Получить продукты и технологии

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


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

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



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

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Облачные вычисления, Мобильные приложения
ArticleID=860629
ArticleTitle=Решение задач интеграции мобильных приложений на разных устройствах и платформах
publish-date=03062013