- Вступ
- огляд сценарію
- Малюнок 1. Схема підписки
- Малюнок 2. Схема повідомлення
- Малюнок 3. Структура папок
- Малюнок 4. Консоль Worklight відображає розгорнуте додаток і адаптер
- Про програму
- Лістинг 1. Приклад SMSConfig.xml
- Лістинг 2. Файл applicationdescriptor.XML з ідентифікатором gatewayid з SMSConfig.xml
- Лістинг 3. Для підписки на SMS-повідомлення зі смартфона використовується API SMS Subscription.
- Лістинг 4. API SMS UnSubscription використовується для відмови від підписки на SMS-повідомлення.
- Лістинг 7. Функція submitNotification в адаптері
- Запуск прикладу додатки
- Малюнок 5. Вікно входу
- Малюнок 8. Виклик дії Adapter Procedure
- Малюнок 10. SMS, отримане на пристрої
- Ресурси для скачування
Вступ
Сьогодні успішні підприємства займаються реорганізацією процесів своїх відділень і призначених для користувача інтерфейсів з метою кращої взаємодії з клієнтами. Ключовим аспектом цієї реорганізації є мобільні інтерфейси з корпоративними додатками, що працюють на різних пристроях. Одним з ключових вимог є можливість розсилки мобільним клієнтам коротких повідомлень. Ці повідомлення, в свою чергу, сприяють активній діяльності користувачів.
У широкому сенсі повідомлення класифікуються як активні повідомлення, що розсилаються на смартфони, і SMS (Short Message Service), або текстові повідомлення.
- Активні повідомлення обмежуються тими телефонами, в яких є диспетчер повідомлень, пропонований постачальником ОС. Наприклад, в пристроях на базі iOS використовується служба Apple APNS. Аналогічно, в Android-телефонах використовується служба Google GCM.
- Підтримка ж SMS є повсюдно і доступна на всіх телефонах, включаючи смартфони та інші нетрадиційні телефонні пристрої.
До складу IBM Worklight V5.0.5 входить підтримка відправки SMS-повідомлень на пристрої iOS, Android, Windows Phone 7, Windows® Phone 8 і Blackberry, що підтримують функції SMS. У цій статті на прикладі програми для мобільного банкінгу пояснюються основи системи SMS-повідомлень, способи настройки інфраструктури SMS-повідомлень, а також процеси підписки на повідомлення і розсилки SMS-повідомлень на мобільні пристрої. До кінця читач повинен розуміти, як використовувати цю функцію для розробки додатків на базі SMS-повідомлень.
огляд сценарію
Типове додаток мобільного банкінгу надає клієнтам банку різні можливості, такі як запит балансу, комунальні платежі, платіжні доручення і т.п. Такі мобільні додатки можна доповнити SMS-повідомленнями. Наприклад, відправка клієнту SMS-нагадування про наближення терміну платежу по кредиту допоможе йому підтримувати в порядку свої фінанси. Аналогічно, можливість для клієнтів підписуватися на такі події, щоб отримувати SMS-повідомлення, допоможе зробити додаток мобільного банкінгу набагато більш корисним і інтерактивним.
Сценарій роботи з таким додатком починається з екрану входу в систему на смартфоні. Коли клієнт зайшов до банківської додаток, відображаються типові банківські функції разом з пропозицією підписатися на SMS-повідомлення. Вибравши пункт SMS-повідомлень, користувач може підписатися (або відписатися) на набір визначених повідомлень, таких як повідомлення про списання або надходження коштів, овердрафт і т.п.
Розробка цього сценарію складається з наступних компонентів:
- гібридне додаток мобільного банкінгу, побудоване з використанням Worklight Studio;
- адаптер Worklight, що працює на Worklight Server, який діє як зв'язка між серверної частиною банківського додатка і гібридним додатком мобільного банкінгу;
- служба банківського Web-додатки (AcmeBankWebApplication.war), що надає набір інтерфейсів;
- SMS-агрегатор для відправки SMS-повідомлень на пристрої користувачів.
Схема підписки показана на малюнку 1. У загальних рисах відбувається наступне:
- Клієнт завантажує гібридне додаток в свій пристрій і запускає його.
- Потім він вибирає категорію подій, за якими він хоче отримувати SMS-повідомлення.
- Після початкового рукостискання з метою безпеки (див. Документацію Worklight по аутентифікації) додаток посилає запит на підписку в Worklight Adapter, який працює на IBM Worklight Server.
- Worklight адаптер реєструє підписки для цього користувача.
Малюнок 1. Схема підписки
Схема повідомлень показана на малюнку 2. Ось що відбувається:
- Коли центральна служба повинна повідомити клієнта про одне або декілька подій, на які він підписаний, вона викликає метод в адаптері Worklight.
- Адаптер перевіряє, чи існує SMS-підписка для цього користувача, і якщо так, то відправляє SMS-повідомлення через попередньо налаштований SMS Aggregator.
Малюнок 2. Схема повідомлення
Налаштування
Для вирішення цього завдання потрібно IBM Worklight Studio. IBM Worklight Developer Edition можна завантажити і використовувати безкоштовно. Ця стаття містить приклади мобільного додатка Worklight (AcmeBank.zip) і Web-додатки (AcmeBankWebApplication.war) для завантаження .
Щоб створити цей приклад сценарію:
- Завантажте матеріали прикладів , Що додаються до цієї статті. Також при необхідності завантажте і встановіть IBM Worklight Developer Edition.
- Встановіть додаток мобільного банкінгу. Імпорт AcmeBank.zip в робочий простір Eclipse, де встановлений пакет Worklight Studio. Проект AcmeBank включає в себе адаптер AcmeBankAdapter (в каталозі аadapters), додаток AcmeBankApp (в каталозі apps) і файли конфігурації authenticationConfig.xml і SMSConfig.xml (в каталозі server / conf), як показано на малюнку 3.
Малюнок 3. Структура папок
- Встановіть сервер додатків. Сервер додатків потрібно для запуску банківського Web-додатки.
- завантажте і встановіть Apache Tomcat v7.0.
- У Worklight Studio створіть новий сервер, для чого виберіть File> New> Server> Server and select Apache> Tomcat v7.0 Server.
- Натисніть кнопку Add, потім в діалоговому вікні вкажіть шлях, по якому встановлено сервер Tomcat. Натисніть кнопку Finish. У Worklight Studio додано визначення нового сервера Tomcat.
- Щоб побачити цей встановлений сервер, виберіть Windows> Show View> Other> Server> Servers. Виберіть визначення сервера Tomcat і замініть порт 8080, наприклад, на 8081. Це необхідно тому, що через порт 8080 працює консоль Worklight.
- Установка центрального банківського сервера. Імпорт файл AcmeBankWebApplication.war в ту ж робочу область. Щоб розгорнути додаток на сервері додатків, клацніть правою кнопкою на сервері Tomcat в поданні сервера і виберіть пункт Add і Remove. У вікні додайте Web-додаток з панелі Available на панель Configured і натисніть кнопку Finish. Додаток буде налаштоване для роботи поверх Tomcat.
- Запустіть сервер. Клацніть правою кнопкою на сервері Tomcat і виберіть Start. Перегляньте журнали в поданні консолі, щоб переконатися, що сервер і Web-додаток запускаються без помилок.
- Розгорніть і налаштуйте мобільний додаток. Відкрийте AcmeBankAdapter.xml в папці AcmeBankAdapter. Вкажіть ім'я домену та ім'я порту, де працює сервер Tomcat. Клацніть правою кнопкою миші на додатку Worklight і виберіть Start Worklight Server. Клацніть правою кнопкою миші на AcmeBankAdapter і виберіть Run As> Deploy Worklight Adapter. Клацніть правою кнопкою миші на AcmeBankApp і виберіть Run As> Build All and Deploy. Ця дія призведе до створення додатка Worklight для всіх налаштованих середовищ і його розгортання на сервері Worklight. У файлах прикладів середу Android вже додана. Розгорнуте додаток можна побачити на консолі Worklight (рисунок 4).
Малюнок 4. Консоль Worklight відображає розгорнуте додаток і адаптер
- Попередній перегляд програми за допомогою імітатора Android. У припущенні, що у вас вже встановлений SDK Android, дія Build All and Deploy на попередньому кроці призведе до створення проекту Android з ім'ям AcmeBankAcmeBankAppAndroid. Це проект Android можна запускати точно так же, як будь-яка інша Android-додаток. Клацніть правою кнопкою миші на цьому проекті і виберіть Run As> Android Application. Якщо Android пристрій підключено через USB, і в пристрої активовано USB-налагодження, то додаток буде розгорнуто і запущено на пристрої. Якщо Android-пристрій не підключений, то Android запускає вбудований емулятор і відображає додаток в цій утиліті. Зверніть увагу, що в папці bin проекту Android знаходиться файл AcmeBankAcmeBankAppAndroid.apk, який також можна використовувати для окремої установки програми на Android-пристрої.
По завершенні перерахованих вище кроків на пристрої повинна бути запущено мобільний додаток.
Про програму
SMSConfig.xml
Щоб відправляти SMS-повідомлення з сервера Worklight, в файлі SMSConfig.xml, розташованому в папці / server / conf проекту, необхідно налаштувати один або декілька SMS-шлюзів. Щоб налаштувати SMS-шлюз, необхідно задати значення наступних елементів, піделементи і атрибутів у файлі SMSConfig.xml. При внесенні будь-яких змін в SMSConfig.xml необхідно перезапустити сервер Worklight, щоб ці зміни вступили в силу.
Для відправки SMS-повідомлень з сервера Worklight будуть потрібні SMS-агрегатор. У Worklight Server є шаблон для налаштування будь-якого SMS-агрегатора. Наприклад, якщо для пересилання SMS-повідомлень на мобільний пристрій SMS-шлюз очікує повідомлення HTTP в наступному форматі:
http: // myhost: 13011 / cgi-bin / sendsms? to = destination mobile phone
number & text = message text & username = fcsuser & password = fcspass,
то SMSConfig.xml потрібно налаштувати, як показано в лістингу 1.
Лістинг 1. Приклад SMSConfig.xml
<? Xml version = "1.0" encoding = "UTF-8"?> <Sms: config xmlns: sms = "http://www.worklight.com/sms/config" xmlns: xsi = "http: // www .w3.org / 2001 / XMLSchema-instance "> <gateway hostname =" myhost "id =" gatewayID "port =" 13011 "programName =" cgi-bin / sendsms "toParamName =" to "textParamName =" text "> < parameter name = "username" value = "fcsuser" /> <parameter name = "password" value = "fcspass" /> </ gateway> </ sms: config>Майте на увазі, що значення атрибута id в вузлі gateway в лістингу 1 (gatewayID) має відповідати атрибуту id в вузлі smsGateway в application-descriptor.xml. Код з applicationdescriptor.xml, показаний в лістингу 2, ілюструє приклад вибору вже визначеного SMS-шлюзу в SMSConfig.xml.
Лістинг 2. Файл applicationdescriptor.XML з ідентифікатором gatewayid з SMSConfig.xml
<SmsGateway id = "gatewayID" /> <android version = "1.0" securityTest = "AcmeBankAdapter-mobile-securityTest"> <worklightSettings include = "true" /> <security> <encryptWebResources enabled = "false" /> <testWebResourcesChecksum enabled = "false" ignoreFileExtensions = "png, jpg, jpeg, gif, mp4, mp3" /> <publicSigningKey> Replace this text with the public key of the certificate with which you sign the APK. For details see the Worklight Developer's Reference Guide. </ PublicSigningKey> </ security> </ android>API Worklight SMS Notification
У прикладі сценарію використовуються API-інтерфейси, які стосуються SMS-повідомленнями, наведені в наступних лістингах.
Лістинг 3. Для підписки на SMS-повідомлення зі смартфона використовується API SMS Subscription.
WL.Client.Push.subscribeSMS ( "alerts", "AcmeBankAdapter", "AcmeBankEventSource", phoneNumber, {// в разі успіху оновлення центральної частини onSuccess: updateAlertsBackend, onFailure: function () {alert ( "Failed to subscribe to alerts. Please try again later. ");}});subscribeSMS приймає п'ять параметрів.
- alerts - це псевдонім, який можна застосовувати при наявності у користувача кількох телефонів.
- AcmeBankAdapter - це адаптер, який встановлює джерело подій і взаємодіє з сервером Worklight.
- AcmeBankEventSource - це фактичний джерело подій, з яким пов'язано додаток.
- phoneNumber - номер телефону, який буде отримувати SMS-повідомлення, в ідеалі, поточний номер SIM.
- Додатковий блок JSON для обробки подій onSuccess і onFailure.
API unsubscribeSMS (лістинг 4) приймає два параметри. Перший з них - псевдонім, та ж рядок, яка використовується в subscribeSMS (лістинг 3), і додатковий блок JSON для обробки подій onSuccess і onFailure.
Лістинг 4. API SMS UnSubscription використовується для відмови від підписки на SMS-повідомлення.
WL.Client.Push.unsubscribeSMS ( "alerts", {onSuccess: updateAlertsBackend, onFailure: function () {alert ( "Failed to unsubscribe from all alerts. Please try again later.");}});Лістинг 5. API SMS check Subscription використовується для перевірки наявності підписки на SMS в цьому пристрої.
WL.Client.Push.isSMSSubscribed ();Лістинг 6. API SMS check support використовується для перевірки, чи підтримується SMS Notification для поточного середовища.
WL.Client.Push.isPushSMSSupported ();API Worklight з боку сервера відправляє SMS-повідомлення.
Коли підписка налаштована, центральне додаток може розсилати SMS-повідомлення в усі підписані телефони за допомогою функції адаптера submitNotification. Ця функція приймає два параметри: userID, який ідентифікує унікального користувача-одержувача повідомлень, і власне текст, який буде розісланий. Фактичним сервером Worklight API для розсилки SMS-повідомлень буде WL.Server.notifyDeviceSubscription. Ця функція приймає devicesubscription як аргумент, за яким слідує рядок JSON, яка містить фактичний текст (лістинг 7).
Лістинг 7. Функція submitNotification в адаптері
function submitNotification (userId, notificationText) {var userSubscription = WL.Server.getUserNotificationSubscription ( 'AcmeBankAdapter.AcmeBankEventSource', userId); if (userSubscription == null) {return {result: "No subscription found for user ::" + userId};}; WL.Logger.debug ( "submitNotification >> userId ::" + userId + ", text ::" + notificationText); WL.Server.notifyDeviceSubscription (userSubscription.getDeviceSubscriptions () [0], {badge: 1, alert: notificationText}); return {result: "Notification sent to user ::" + userId}; }За більш детальною інформацією про ці API звертайтеся до документації Worklight.
Запуск прикладу додатки
У вас повинна бути можливість розгорнути і запустити додаток мобільного банкінгу, що додається до цієї статті, без будь-яких додаткових змін. Переконайтеся, що SMSConfig.xml налаштований з відповідною інформацією SMS-агрегатора, як описано вище. Центральний банківської Web-сервіс, який розгортається на сервері Tomcat, вже містить фіктивну обліковий запис і відомості про клієнта. Для входу в додаток використовуйте одну з цих готових облікових записів. Наприклад, використовуйте в якості ідентифікатора AccountId «987654», номер телефону 9008029891 і будь-який пароль. (В цьому прикладі пароль не перевіряється.)
Готові облікові записи:
- Account 1:
- AccountId: 987654
- CustomerId: 123
- FirstName: Mike
- LastName: Preston
- PhoneNumber: 9008029891
- Account 2:
- AccountId: 456789
- CustomerId: 345
- FirstName: Kate
- LastName: Winslet
- PhoneNumber: 9008039786
Малюнок 5. Вікно входу
Малюнок 6. Екран вибору варіанту SMS-повідомлень
Малюнок 7. Екран вибору повідомлення
Дія Save призводить до створення підписки на SMS на сервері Worklight. Вибрані повідомлення передаються в серверну частину програми за допомогою адаптера Worklight і зберігаються там. Для відправки SMS-повідомлень серверна частина викликає метод адаптера Worklight submitNotification. Це можна змоделювати вручну, викликавши метод submitNotification () адаптера в Worklight Studio. Для цього клацніть правою кнопкою миші на блоці і виберіть Run As> Invoke Worklight Procedure (рисунок 8). Відкриється вікно Edit Configuration and Launch, куди можна ввести параметри налаштування функції, а потім викликати її (малюнок 9).
Малюнок 8. Виклик дії Adapter Procedure
Малюнок 9. Екран властивостей Invoke Adapter Procedure
Коли повідомлення доставлено в SMS-агрегатор, той передає SMS-повідомлення в додаток мобільного банкінгу Worklight на пристрої кінцевого користувача (рисунок 10).
Малюнок 10. SMS, отримане на пристрої
висновок
IBM Worklight забезпечує уніфіковані API для підписки на повідомлення і їх відправки. У версії Worklight V5.0.5 ця підтримка доповнена підтримкою SMS-повідомлень, яка дозволяє мобільному додатку підписуватися / відписуватися на SMS-повідомлення, а також отримувати повідомлення SMS. Крім того, можна налаштувати SMS-повідомлення з будь-яким стороннім SMS-агрегатором. У Worklight 5.0.6 підтримка SMS доповнена ще й підтримкою традиційних пристроїв (що не-смартфонів). Це буде предметом наступної статті.
Ресурси для скачування
Схожі теми
Підпишіть мене на повідомлення до коментарів
Quot; encoding = "UTF-8"?