SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
Azure back-end для
iOS	
  и Android
Особенности	
  разработки	
  и	
  	
  
быстрый	
  старт
Виталий	
  Баум	
  
vitaly.baum@gmail.com	
  
@butaji	
  
Структура	
  доклада
•  Требования	
  к	
  мобильному	
  
приложению	
  
•  Особенности	
  реализации 	
  
•  Практические	
  советы	
  
•  Как	
  быстро	
  построить	
  
прототип
http://bit.ly/1819mzC	
  
	
  
Dealer Mobility
•  Мобильная	
  платформа	
  
для	
  автодилеров	
  
Новости,	
  спецпредложения	
  
Запись	
  на	
  ТО,	
  личный	
  кабинет	
  
Оповещения	
  с	
  помощью	
  push	
  
Ресурсы
•  Серверная	
  команда	
  
– Разработчики	
  .NET
•  Мобильная	
  команда	
  
– Разработчики	
  iOS
– Разработчики	
  Android
Контракт	
  взаимодействия
•  Серверная	
  команда	
  не	
  знает	
  что	
  писать	
  
•  Клиентская	
  команда	
  ждёт	
  пока	
  серверная	
  
напишет	
  что-­‐нибудь	
  
•  Контракты	
  бесполезно	
  передавать	
  с	
  
помощью	
  POCO
Протокол	
  взаимодействия
•  HTTP REST/JSON
•  Запросы	
  через	
  HTTPS + AppKey
Проблема	
  протокола:	
  
•  Версионирование	
  
•  Решено	
  через	
  /api/v1/…
Серверная	
  сторона
•  Всё	
  начиналось	
  в	
  2011	
  году
•  WCF REST Starter Kit
Что	
  необходимо	
  мобильному	
  
приложению	
  от	
  backend?
Что	
  нужно	
  для	
  приложения?
•  Хранение	
  данных	
  (База,	
  Файлы)	
  
•  Пуш	
  уведомления	
  
•  Управление	
  пользователями	
  
•  Трансляция	
  звука/видео	
  
•  Аналитика	
  использования	
  
Наш	
  случай
•  Есть	
  .net разработчики,	
  которые	
  умеют	
  
хорошо	
  готовить	
  SQL Server
•  Есть	
  требование,	
  что	
  продукт	
  можно	
  
ставить	
  On Premise
Хранение	
  данных
В	
  Azure есть:
•  Реляционное	
  хранилище	
  
•  Blob storage
Решение:	
  
•  SQL Server + Entity Framework	
  
	
  
Синхронизация	
  данных
•  Требование	
  –	
  работа	
  офлайн
•  Есть	
  две	
  стратегии	
  
– Плохой	
  кеш	
  
– Хороший	
  кеш	
  
Data Sync
•  Вести	
  аудит	
  изменений	
  данных	
  
–  Фактически	
  логировать	
  CRUD операции	
  
–  Или	
  ввести	
  атрибуты	
  
•  CreatedAt
•  UpdatedAt	
  
•  Deleted	
  
Data Sync
время
изменения	
  данных данные	
  для	
  синхронизации
1.04.20132011
Data Sync
void Update(NewsItem newsItem)
{
//…update database record
EventLog.Append(
“NewsItem”,“Updated”,
newsItem.Id, newsItem.ToJson());
}
Data Sync
/changes?since=01.04.2013
{
News :
{
Added : [1,2,3,4,5],
Updated: [2,3],
Deleted: [5]
}
}
Data Sync
Changes GetChanges(DateTime since)
{
return EventLog
.FetchSince(since)
.GroupBy(x => x.ItemType);
}
Data Sync
/news/changes?since=01.04.2013
{
Added : [1,2,3,4,5],
Updated: [2,3],
Deleted: [5]
}
Data Sync
/news/changes?since=01.04.2013&data=true
{
Added : [{ Id : 1,Text: “Latest news”},
Updated: [{ Id : 2,Text: “Shock news”}],
Deleted: [3,4,5]
}
Файлы	
  /	
  изображения
/image?id=123&width=720&height=360
•  Разные	
  разрешения	
  экранов	
  
•  Разные	
  платформы	
  
•  Ленивые	
  контент-­‐менеджеры	
  J
Пуш	
  уведомления
•  Azure Worker Role
•  PushSharp	
  
•  Пул	
  сообщений	
  (почта/пуши/смс)
– http://sendgrid.com	
  
– http://twillio.com
Пуш	
  уведомления
•  Apple Push Notification Service
– The maximum size allowed for a notification
payload is 256 bytes
•  Google Cloud Messaging
– Message can be up to 4kb in size
Управление	
  пользователями
•  Кастомная	
  реализация	
  
– Basic auth
– Facebook, twitter, vk.com, odnoklassniki
– Профили	
  пользователей
•  Общий	
  AppId на	
  серверном	
  и	
  мобильном	
  
приложении	
  
Аналитика	
  использования
•  Приложение	
  использует	
  Flurry, Google
Analytics
•  Админочка	
  использует	
  flurry api, чтобы	
  
показывать	
  красивые	
  графики	
  
пользователям	
  
Аналитика	
  использования
•  Аудит:	
  логирование	
  всех	
  вызовов	
  методов	
  
– Статистика	
  просмотра	
  данных	
  
– Статистка	
  регистраций	
  пользователей
– Статистика	
  действий	
  пользователей	
  
Как	
  построить	
  прототип	
  в	
  
кратчайшие	
  сроки
Прототипирование
•  Сделать	
  за	
  вечер	
  
•  Не	
  дороже	
  200$/мес
•  Мобильный	
  API и	
  может	
  понадобиться	
  
админка	
  
Backend as Service
•  Windows Azure Mobile Services
– Windows Store
– Windows Phone 8
– iOS
– Android
– HTML/JavaScript
– REST API
WAMS: iOS,Android
•  Есть	
  SDK для	
  упрощения	
  доступа	
  к	
  данным	
  
– Абстракция	
  над	
  подключением	
  и	
  таблицами	
  
– Асинхронные	
  запросы	
  с	
  callback’ами	
  для	
  
получения	
  данных	
  
•  Язык	
  запросов
Демо:	
  iOS и	
  Android
WAMS == node.js
•  Пакеты	
  для	
  пушей	
  (apns,	
  mpns,	
  wns, gcm)
•  Для	
  Azure сервисов	
  (azure)
•  Для	
  HTTP запросов	
  (request)
•  Для	
  отправки	
  email (sendgrid)
WAMS REST API
•  Передавать	
  X-ZUMO-APPLICATION
•  READ == HTTP GET + OData Query
Options ($filter, $orderby, $top, $skip)
•  CREATE == HTTP POST
•  UPDATE == HTTP PATCH
•  DELETE == HTTP DELETE	
  
WAMS REST API
-­‐  Можно	
  бесшовно	
  поменять	
  оснастку	
  на	
  
Web Api (OData Query Options)	
  
Плюсы	
  и	
  минусы	
  WAMS
•  Callback hell
•  Debugging
•  Source control
Рекомендации	
  по	
  использованию	
  
WAMS
•  Отключить	
  Dynamic Scheme
•  Четко	
  провести	
  грань,	
  когда	
  прототип	
  стал	
  
приложением	
  и	
  заранее	
  запланировать	
  
миграцию
Что	
  должен	
  уметь	
  Back-end для	
  	
  
мобильных	
  клиентов?
Возможности	
  back-end
•  Хранение	
  данных	
  
•  Отправка	
  push
•  Управление	
  пользователями	
  
•  Трансляция	
  видео/аудио	
  
•  Аналитика	
  использования
Спасибо	
  за	
  внимание!

Mais conteúdo relacionado

Destaque

TRAIL - Broadcast ERP
TRAIL - Broadcast ERPTRAIL - Broadcast ERP
TRAIL - Broadcast ERPRajiv Advani
 
Ploegsteert Memorial
Ploegsteert MemorialPloegsteert Memorial
Ploegsteert MemorialEUOTC
 
So much content, so little time - productivity tips for bloggers
So much content, so little time - productivity tips for bloggersSo much content, so little time - productivity tips for bloggers
So much content, so little time - productivity tips for bloggersTBEX
 
What kind of media institution might distribute your media product and why
What kind of media institution might distribute your media product and whyWhat kind of media institution might distribute your media product and why
What kind of media institution might distribute your media product and whyemily whittaker
 
συντακτικον τζαρτζανου εμπλουτισμενο με παραδειγματα απο βιβλια της εκκλησιας
συντακτικον τζαρτζανου εμπλουτισμενο με παραδειγματα απο βιβλια της εκκλησιαςσυντακτικον τζαρτζανου εμπλουτισμενο με παραδειγματα απο βιβλια της εκκλησιας
συντακτικον τζαρτζανου εμπλουτισμενο με παραδειγματα απο βιβλια της εκκλησιαςπ. Γ. Θ.
 
Curso Virtual sobre correcto llenado del Certificado de Defunción Relacsis
Curso Virtual sobre correcto llenado del Certificado de Defunción Relacsis Curso Virtual sobre correcto llenado del Certificado de Defunción Relacsis
Curso Virtual sobre correcto llenado del Certificado de Defunción Relacsis Roberto Coste
 
Como utilizar sql en visual basic 6
Como utilizar sql en visual basic 6Como utilizar sql en visual basic 6
Como utilizar sql en visual basic 6Narcisa Fuentes
 
R. villano colophon libro musei
R. villano   colophon libro museiR. villano   colophon libro musei
R. villano colophon libro museiRaimondo Villano
 
Mass Communication and Media Studies
Mass Communication and Media StudiesMass Communication and Media Studies
Mass Communication and Media StudiesUrvi Dave
 
Primer dia en el liceo la alborada
Primer dia en el liceo la alboradaPrimer dia en el liceo la alborada
Primer dia en el liceo la alboradadomenica2000
 
anemia smartphone final
anemia smartphone finalanemia smartphone final
anemia smartphone finalPhanith Sovann
 
Рынок онлайн-коммерции и платежей в России: тренды, аналитика, перспективы.
Рынок онлайн-коммерции и платежей  в России: тренды, аналитика, перспективы.Рынок онлайн-коммерции и платежей  в России: тренды, аналитика, перспективы.
Рынок онлайн-коммерции и платежей в России: тренды, аналитика, перспективы.Data Insight
 

Destaque (14)

TRAIL - Broadcast ERP
TRAIL - Broadcast ERPTRAIL - Broadcast ERP
TRAIL - Broadcast ERP
 
Ploegsteert Memorial
Ploegsteert MemorialPloegsteert Memorial
Ploegsteert Memorial
 
So much content, so little time - productivity tips for bloggers
So much content, so little time - productivity tips for bloggersSo much content, so little time - productivity tips for bloggers
So much content, so little time - productivity tips for bloggers
 
What kind of media institution might distribute your media product and why
What kind of media institution might distribute your media product and whyWhat kind of media institution might distribute your media product and why
What kind of media institution might distribute your media product and why
 
συντακτικον τζαρτζανου εμπλουτισμενο με παραδειγματα απο βιβλια της εκκλησιας
συντακτικον τζαρτζανου εμπλουτισμενο με παραδειγματα απο βιβλια της εκκλησιαςσυντακτικον τζαρτζανου εμπλουτισμενο με παραδειγματα απο βιβλια της εκκλησιας
συντακτικον τζαρτζανου εμπλουτισμενο με παραδειγματα απο βιβλια της εκκλησιας
 
Curso Virtual sobre correcto llenado del Certificado de Defunción Relacsis
Curso Virtual sobre correcto llenado del Certificado de Defunción Relacsis Curso Virtual sobre correcto llenado del Certificado de Defunción Relacsis
Curso Virtual sobre correcto llenado del Certificado de Defunción Relacsis
 
Como utilizar sql en visual basic 6
Como utilizar sql en visual basic 6Como utilizar sql en visual basic 6
Como utilizar sql en visual basic 6
 
Vida Financeira Equilibrada (1)
Vida Financeira Equilibrada  (1)Vida Financeira Equilibrada  (1)
Vida Financeira Equilibrada (1)
 
R. villano colophon libro musei
R. villano   colophon libro museiR. villano   colophon libro musei
R. villano colophon libro musei
 
Mass Communication and Media Studies
Mass Communication and Media StudiesMass Communication and Media Studies
Mass Communication and Media Studies
 
Cake house2
Cake house2Cake house2
Cake house2
 
Primer dia en el liceo la alborada
Primer dia en el liceo la alboradaPrimer dia en el liceo la alborada
Primer dia en el liceo la alborada
 
anemia smartphone final
anemia smartphone finalanemia smartphone final
anemia smartphone final
 
Рынок онлайн-коммерции и платежей в России: тренды, аналитика, перспективы.
Рынок онлайн-коммерции и платежей  в России: тренды, аналитика, перспективы.Рынок онлайн-коммерции и платежей  в России: тренды, аналитика, перспективы.
Рынок онлайн-коммерции и платежей в России: тренды, аналитика, перспективы.
 

Semelhante a Azure Mobile Backend

Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, SkypeOntico
 
Hivext – облачная платформа для быстрой разработки интернет приложений
Hivext – облачная платформа для быстрой разработки  интернет приложений Hivext – облачная платформа для быстрой разработки  интернет приложений
Hivext – облачная платформа для быстрой разработки интернет приложений guest800050
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинPVasili
 
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseDmitry Semenov
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложенийAnatoly Sharifulin
 
Архитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.comАрхитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.comPryaniky.com
 
Платформа Docsvision
Платформа DocsvisionПлатформа Docsvision
Платформа DocsvisionDocsvision
 
Зачем покупать, если можно не покупать
Зачем покупать, если можно не покупатьЗачем покупать, если можно не покупать
Зачем покупать, если можно не покупатьКРОК
 
SECON'2016. Алексеев Олег, Живой API
SECON'2016. Алексеев Олег, Живой APISECON'2016. Алексеев Олег, Живой API
SECON'2016. Алексеев Олег, Живой APISECON
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Ontico
 
Intalio+Alfresco=Офис 2.0
Intalio+Alfresco=Офис 2.0Intalio+Alfresco=Офис 2.0
Intalio+Alfresco=Офис 2.0КРОК
 
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...it-people
 
Modern apps Windows Azure
Modern apps Windows AzureModern apps Windows Azure
Modern apps Windows AzureZaur Abutalimov
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015Alexandr Petrov
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
 

Semelhante a Azure Mobile Backend (20)

Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
Hivext 04.2010
Hivext 04.2010Hivext 04.2010
Hivext 04.2010
 
Hivext – облачная платформа для быстрой разработки интернет приложений
Hivext – облачная платформа для быстрой разработки  интернет приложений Hivext – облачная платформа для быстрой разработки  интернет приложений
Hivext – облачная платформа для быстрой разработки интернет приложений
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
 
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложений
 
Архитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.comАрхитектура и технологии Pryaniky.com
Архитектура и технологии Pryaniky.com
 
Платформа Docsvision
Платформа DocsvisionПлатформа Docsvision
Платформа Docsvision
 
Зачем покупать, если можно не покупать
Зачем покупать, если можно не покупатьЗачем покупать, если можно не покупать
Зачем покупать, если можно не покупать
 
SECON'2016. Алексеев Олег, Живой API
SECON'2016. Алексеев Олег, Живой APISECON'2016. Алексеев Олег, Живой API
SECON'2016. Алексеев Олег, Живой API
 
DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Intalio+Alfresco=Офис 2.0
Intalio+Alfresco=Офис 2.0Intalio+Alfresco=Офис 2.0
Intalio+Alfresco=Офис 2.0
 
Errors Tracker
Errors TrackerErrors Tracker
Errors Tracker
 
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
DUMP-2012 - Мобильные технологии - "Как мы выстраиваем разработку сервиса под...
 
Modern apps Windows Azure
Modern apps Windows AzureModern apps Windows Azure
Modern apps Windows Azure
 
доклад на вмк 15.10.2015
доклад на вмк 15.10.2015доклад на вмк 15.10.2015
доклад на вмк 15.10.2015
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
 

Azure Mobile Backend