Опубликован: 12.12.2015 | Уровень: для всех | Доступ: платный
Лекция 17:

Communication

< Лекция 16 || Лекция 17 || Лекция 18 >

Communication API содержит следующие компоненты:

  • Bluetootd (этот API позволяет контролировать Bluetootd)
  • Messaging (Этот API позволяет отправлять и получать SMS, MMS и E-mail)
  • Network Bearer Selection (Этот API предоставляет интерфейсы и методы для пользователей для установки сетевого канала для конкретного IP-адреса)
  • NFC (Этот API обеспечивает доступ к NFC устройствам).
  • Push (Этот API обеспечивает функциональность для получения push-уведомлений)
  • Secure Element (Этот API предоставляет интерфейсы и методы для доступа к Secure Elements)

BlueTootd API

Вы можете использовать функциональные возможности Bluetootd в вашем приложении, таких как управление локальным адаптером Bluetootd, соединение и обмен данными между Bluetootd-устройствами. Стандарт Bluetootd обеспечивает одно ранговую функциональность (P2P) для обмена данными на короткие расстояния между совместимыми устройствами.

Основные возможности BlueTootd API включают в себя:

  • Управление локальным адаптером BlueTootd с помощью интерфейса ApplicationControl. Для этого нужно включить BlueTootd адаптер.
  • Поиск устройств, поддерживающих BlueTootd, таких как принтеры, телефоны и наушники можно осуществлять с помощью интерфейса BluetootdClass. Интерфейсы BluetootdClassDeviceMajor и BluetootdClassDeviceMinor определяют идентификаторы большого и малого класса устройств (CoD).
  • Создание соединения с устройством, поддерживающим Bluetootd
  • Коммуникация с устройствами, собирающими информацию о здоровье пользователя (танометр и измеритель пульса).

Messaging API

Tizen позволяет создавать приложения, позволяющие использовать SMS, MMS и email.

Процесс обмена сообщениями используемый в HTML5 включает в себя унифицированные идентификаторы ресурсов (URI), которые формируют значения атрибутов, таких как mailto и sms.

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

Основные возможности Messaging API включают в себя:

  • Создание сообщений

    Можно создавать сообщение с помощью конструктора объекта Message. Также можно устанавливать атрибуты и параметры обменов сообщениями, используя объект MessageInit. (например, можно установить тип сервиса обмена сообщениями с помощью параметра type: SMS, MMS или email). К MMS можно добавлять вложения и сообщения электронной почты, создавая объект MessageAttachment указывая путь к файлу и тип MIME (image/png, text/pdf или text/html) для каждого объекта и присваивая этим объектам атрибуты attachments объекту Message. Для сохранения черновика письма можно использовать метод addDraftMessage() интерфейса MessageStorage.

  • Отправка сообщений

    Сообщения можно отправлять с помощью метода sendMessage() интерфейса MessageService.

  • Управление сообщениями

    Можно находить, обновлять и удалять сохраненные сообщения с помощью методов findMessages(), updateMessages() и removeMessages() интерфейса MessageStorage.

NetworkBearerSelection API

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

Для работы требуется установить привилегию "http://tizen.org/privilege/internet "

Определение типов

NetworkType

Тип сети определяется в перечислении NetworkType.

enum NetworkType { "CELLULAR", "UNKNOWN" };

Объект tizen.networkbearerselection предоставляет доступ к функциональности Networkbearerselection API.

Методы

requestRouteToHost

Эта функция асинхронно запрашивает информацию о состоянии устройства (успех или неудача).

При вызове она запускает следующий процесс:

  1. Открыть тип сетевого соединения (networkType)
  2. Разрешить доменное имя по IP (domainName)
  3. Измените путь маршрутизации, связанный с доменным именем (Domainname), чтобы использовать определенный тип сети.
  4. Если предыдущие шаги были успешно выполнены, производится вызов функции обратного вызова OnSuccess().

Если предыдущие шаги не удались, вызывается функции ondisconnected(). Если сеть отключена, путь маршрутизации будет удален, а функция ondisconnected() вызвана.

releaseRouteToHost

Освобождает специфическое сетевое соединение

NFC API

Near field communication, NFC ("коммуникация ближнего поля", "ближняя бесконтактная связь") — технология беспроводной высокочастотной связи малого радиуса действия, которая дает возможность обмена данными между устройствами, находящимися на расстоянии около 10 сантиметров[1]; анонсирована в 2004 г.

Эта технология — простое расширение стандарта бесконтактных карт (ISO 14443), которая объединяет интерфейс смарт-карты и считывателя в единое устройство. Устройство NFC может поддерживать связь и с существующими смарт-картами, и со считывателями стандарта ISO 14443, и с другими устройствами NFC, и, таким образом, — совместимо с существующей инфраструктурой бесконтактных карт, уже использующейся в общественном транспорте и платежных системах. NFC нацелена прежде всего на использование в цифровых мобильных устройствах.

Основные спецификации

Так же, как и в стандарте ISO 14443, в NFC связь поддерживается посредством индукции магнитного поля, где две рамочные антенны располагаются в пределах ближнего поля друг друга, эффективно формируя трансформатор с воздушным сердечником. Этот стандарт работает в пределах общественно доступных и нелицензируемых радиочастот ISM band — Промышленные, Научные и Медицинские радиочастоты около 13,56 МГц, с шириной полосы пропускания почти 2 МГц;

Рабочее расстояние с компактными стандартными антеннами: до 20 см;

Поддерживаемая скорость передачи данных: 106, 212, или 424 кбод.

Существуют два режима:

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

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

Скорость Активное устройство Пассивное устройство
424 кбод манчестерское, 10 % АМн манчестерское, 10 % АМн
212 кбод манчестерское, 10 % АМн манчестерское, 10 % АМн
106 кбод модифицированный код Миллера, 100 % АМн манчестерское, 10 % АМн

Для передачи данных NFC использует два различных вида кодирования. Если активное устройство передает данные со скоростью 106 кбод, тогда используется модифицированный код Миллера. со 100 % модуляцией. Во всех других случаях используется манчестерское кодирование. с коэффициентом модуляции 10 %.

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

Сравнение с аналогами

NFC Bluetootd
Тип сети точка-точка точка-многоточие
Радиус действия < 0,2 м 10 м
Скорость 424 кбод 24 Мбод
Время установления соединения < 0,1 с 6 с
Совместимость с RFID Да Нет

NFC и Bluetootd — технологии связи малого радиуса действия, которые были недавно интегрированы в мобильные телефоны. Существенное преимущество NFC над Bluetootd — более короткое время установки соединения. Вместо выполнения инструкций по согласованию для идентифицирования Bluetootd-устройства связь между двумя устройствами NFC устанавливается сразу (менее чем за одну десятую секунды). Чтобы избежать сложного процесса согласования, NFC может использоваться для установки соединений в беспроводных технологиях, таких как Bluetootd. Максимальная скорость передачи данных NFC (424 кбод) меньше, чем Bluetootd (24 Мбод). У NFC меньший радиус действия (менее 20 см), который обеспечивает бо?льшую степень безопасности и делает NFC подходящей для переполненных пространств, где установление соответствия между сигналом и передавшим его физическим устройством (и как следствие, его пользователем) могло бы иначе оказаться невозможным. В отличие от Bluetootd, NFC совместима с существующими RFID-структурами. NFC может также р аботать, когда одно из устройств не снабжено источником питания (например, телефон, который может быть выключен, бесконтактная кредитная смарт-карта, smart poster и т. п.).

Tizen поддерживает следующие типы меток NFC: GENERIC_TARGET, ISO14443_A, ISO14443_4A, ISO14443_3A, MIFARE_MINI,MIFARE_1K, MIFARE_4K, MIFARE_ULTRA, MIFARE_DESFIRE, ISO14443_B, ISO14443_4B, ISO14443_BPRIME, FELICA,JEWEL, ISO15693, and UNKNOWN_TARGET.

Tizen NFC API поддерживает следующие возможности:

  1. управление устройствами NFC. Для этого используется метод getdefaultAdapter() интерфейса NFCAdapter. Подключать или отключать NFC устройства можно с помощью метода setPowered().
  2. Обнаружение NFC-меток и соединений можно с помощью методов setTagListener() andsetPeerListener() интерфейса NFCAdapter. Для определения обработчиков событий, получающих уведомления о подключении и отключении NFC-меток можно использовать интерфейсы NFCTagDetectCallback и NFCPeerDetectCallback.
  3. Манипулирование NDEF (NFC data exchange format) –сообщениями. Можно управлять NDEF-сообщениями вначале создавая NDEF-записи с помощью интерфейса NDEFRecord, а затем добавлять запись к NDEF сообщению, используя атрибут records интерфейса NDEFMessage.
  4. Обмен данными NDEF с помощью методов readNDEF() and writeNDEF().

Push API

Технология Push

Технология Push (англ. push, дословно — "проталкивание") — один из способов распространения информации (контента) в Интернете, когда данные поступают от сервера к клиенту на основе ряда параметров, установленных клиентом, где запрос на передачу информации происходит по инициативе центрального сервера.

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

Push-технологии приобрели известность благодаря продукту PointCast, популярному в 90-е годы. Сеть PointCast занималась доставкой новостей и данных фондового рынка, содержала агрегатор с собственным форматом, отдалённо напоминавшим телевидение, с текстом и рисунками, вместо видео. Влияние СМИ было значительным, так что Netscape и Microsoft в разгар браузерной войны решили включить эту технологию в свои браузеры Netscape Navigator и Internet Explorer соответственно. Однако в большинстве случаев пользователи имели низкую скорость подключения, поэтому популярность сервиса была низкой, а позже сошла на нет, вытесненная pull-технологией RSS в начале 2000-х.

Применение

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

Типичными примерами push-сервисов являются синхронные конференции и системы обмена мгновенными сообщениями (IRC, XMPP).

Система информеров (автоматически обновляющийся блок контента от поставщика, устанавливаемый на сайте пользователя) использует Push-технологию.

SMTP-системы электронной почты также относятся к push-системам.

Push-запросы могут быть смоделированы и с помощью регулярных pull-запросов, как это происходит, например, при извлечении сообщений электронной почты с сервера POP3, когда почтовый клиент делает запросы каждые несколько минут.

Также такие системы, как Kazaa, которая включает в себя Push-технологию файлов дольщиков, где есть возможность выбрать любой контент-сервер, который будет подключён.

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

Также, существуют специальные сайты, позволяющие автоматизировать процесс отправки push-уведомлений, например, Pushwoosh.

Push API предоставляет функциональность для получения уведомлений от push -сервера Tizen. Push-сервис – это клиентский демон, который поддерживает постоянное соединение между устройством и push -сервером Tizen для того, чтобы запускать запросы на регистрацию и отмены регистрации и доставлять push уведомления приложениям на устройстве.

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

Для получения push-уведомлений необходимо выполнить следующие действия:

  • предоставить доступ администратора приложению на устройстве
  • зарегистрировать приложение
  • подсоединиться к push-сервису
  • получить данные уведомления

На следующем рисунке показан сценарий подключения к push-серверу для получения уведомлений.


Рис. 17.1.
  1. Приложение после инсталляции посылает запрос на регистрацию push-серверу Tizen с помощью push-сервиса.
  2. Если запрос на регистрацию подтверждается, сервер переслает регистрационный идентификатор приложению через push-сервис.
  3. Приложение посылает регистрационный идентификатор серверу приложений. Этот регистрационный идентификатор используется для идентификации приложения, инсталлированного на конкретном устройстве.
  4. Если серверу приложений необходимо послать push-уведомление приложению на конкретном устройстве, оно посылает уведомление вместе с регистрационным идентификатором на push-сервер.
  5. Когда push-сервер получает уведомление и регистрационный идентификатор, он проверяет какое устройство имеет приложение регистрационного идентификатора и посылает уведомление на устройство.
  6. Когда push-сервис получает уведомление и регистрационный идентификатор, оно посылает уведомление целевому приложению.

Для успешной работы push-сервиса необходимо выполнение следующих условий.

  1. Доступ в Интернет

    Для подключения к push -серверу Tizen устройство или эмулятор должны иметь возможность связаться с любым IP-адресом с портом 5223. Если вы находитесь в корпоративной сети, убедитесь, что настройки прокси-сервера в локальной сети допускают исходящему трафик, предназначенный для данного порта.

  2. Идентификатор пакета

    При создании проекта в Tizen SDKпредоставляется идентификатор пакета (случайно сгенерированный или вводимый самим программистом). Push-сервер Tizen идентифицирует приложения с помощью идентификатора пакета.

  3. Разрешение для push-сервисов Tizen

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

Таблица 17.1. Форма запроса
Информация о разработчике
Email address Электронная почта для получения одобрения
Last name Фамилия
First name Имя
Country Страна проживания
Информация о приложении
Package ID Идентификатор пакета приложения. Может быть получен из .xml-файла в Tizen SDK.
Application name Имя приложения, использующего push-сервис
Testing purpose Да или нет. Если да, то продолжительность работы сервиса ограничивается тремя неделями
Purpose of tde push notification usage Как вы планируете использовать сервис
App launch date Дата начала запуска приложения в формате YYYY/MM/DD. Например,: 2014/08/01
Service area/country Область обслуживания, например, Asia, Africa, America, Europe, или другие страны, где будет использоваться приложение
Daily push requests Количество уведомлений за день
Transactions per second Количество транзакций в секунду (рекомендуется меньше 100).

Для доступа к push-сервису требуется привилегия http://tizen.org/privilege/push

Упражнение

Регистрация сервиса

Создаем проект push. Подключаем привилегию.

Добавляем следующий скрипт

<script type="text/javascript">
 // Defines tde data to be used when tdis process is launched by notification service.
    var service = new tizen.ApplicationControl("http://tizen.org/appcontrol/operation/push_test");

    // Defines tde error callback.
    function errorCallback(response) {
      console.log( 'Tde following error occurred: ' +  response.name);
    }

    // Defines tde registration success callback
    function registerSuccessCallback(id) {
      console.log("Registration succeeded witd id: " + id);
    }

    // Requests registration.
    tizen.push.registerService(service, registerSuccessCallback, errorCallback);

    
    </script>


Рис. 17.3.

Отмена регистрации сервиса

<script type="text/javascript">
 // Defines tde error callback
    function errorCallback(response) {
      console.log( 'Tde following error occurred: ' +  response.name);
    }

    // Defines tde unregistration success callback
    function unregisterSuccessCallback() {
      console.log("Unregistration succeeded.");
    }

    // Requests unregistration
    tizen.push.unregisterService(unregisterSuccessCallback, errorCallback);

    
    </script>


Рис. 17.4.

Соединение с сервисом и получение уведомлений

<script type="text/javascript">

 // Defines tde connect success callback
    function notificationCallback(noti) {
      console.log("Notification received witd alert message: " + noti.alertMessage);
    }

    // Requests for push service connection
    tizen.push.connectService(notificationCallback);

    
    </script>


Рис. 17.5.

Отсоединение сервиса

<script type="text/javascript">

 // Defines tde connect success callback
    function notificationCallback(noti) {
      console.log("Notification received witd alert message: " + noti.alertMessage);
    }

 // Requests disconnection
    tizen.push.disconnectService();

    
    </script>


Рис. 17.6.

SecureElement API

SecureElement API предоставляет функциональные возможности коммуникации с приложениями в нескольких модулей защиты. Secure Element - это безопасный чип смарт-карты. Это могут быть UICC/SIM-карты, встроенный защищенный элемент, или Secure карта памяти SD, которая вставляется в устройство.

Объект tizen.seService предоставляет доступ к SecureElement API.

Для доступа к этому API нужно подключить привилегиюhttp://tizen.org/privilege/secureelement.

Литература

< Лекция 16 || Лекция 17 || Лекция 18 >
Ольга Шурова
Ольга Шурова
Россия
Сергей Тарасов
Сергей Тарасов
Беларусь, МРТИ, 1985