SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
Разработка мобильного
и веб-интерфейса для
InterSystems Caché
Лебедюк Эдуард
• Сервер
• Клиент-серверное взаимодействие
• Клиент
План
Сервер
Организация API взаимодействия с данными
Организация API
Данные
Терминальное API
Web API
Клиент
• Взаимодействие с данными
• Данные не должны изменяться иначе, чем через это API
• Возвращают объекты или статус
• Не пишут на устройство
Особенности
Терминальное API
• Преобразуют входящий запрос в форму, понимаемую терминальным API
• Вызывают методы терминального API
• Отправка результата выполнения терминального API клиенту
• Не взаимодействуют с данными напрямую
Особенности
Web API
• Терминальное API является основой логики приложения
• Функция Web API – преобразование запросов клиента в форму понятную
терминальному API и возврат клиенту результатов исполнения запроса
• Преимущества этого подхода:
– API выполняющие разные функции максимально разделены
– Возможна отладка вне веб-контекста
Преимущества
Разделение API
Клиент-серверное взаимодействие
REST, WebSockets, JSON
• Серверной генерации статического HTML
О чём не будем говорить
План
• REST
• WebSockets
• JSON
О чём будем говорить
• Стиль архитектуры программного обеспечения для распределенных систем,
таких как World Wide Web
• Как правило используется для построения веб-служб
• Любые данные однозначно определяется URL – это значит, что URL по сути
является первичным ключом для единицы данных.
– https://server:80/webapp/book/:bookid
REST
 Разделение клиента и сервера
 Независимость от состояния (stateless)
 Кэшируемая и многоуровневая архитектура
 Единый интерфейс
 Все запросы к RESTful web API состоят из корневого URL приложения плюс
частные подзапросы
• CRUD (Create , Read, Update, Delete) через HTTP
Принципы
REST
 Независимость от языка/фреймворка/платформы
 Клиентs на Java, JS, .Net и т.д.
 Легкость разработки
 Проще чем SOAP
 Нет необходимости в специальных инструментах
 Соответствует дизайну и принципам Web
 Нет необходимости в дополнительных сообщениях
Преимущества
REST
• Стандартная реализация – наследуется от %CSP.REST
• Дополнения – на https://github.com/intersystems-ru/REST
– Поддержка русского языка (любой не-латиницы)
– Полная поддержка JSON
– Валидация запросов
– Поддержка CORS
– Дополнительная поддержка сессий
– Макросы отладки ($$$Debug, $$$Public и т.д.)
Реализация
REST
• По сути – соответствие запрашиваемых URL методам Caché
• Стандартный вид пути:
<Route
Url="/path/:param1/:param2"
Method="GET"
Call=“Package.Class:ClassMethod"
/>
• ClassMethod – любой метод класса Caché
REST
• Расширения для браузера
• Перехватывающий прокси-сервер
• Анализатор трафика
Отладка
REST
• Использовать curl
• Использовать wget
• Использовать cli инструменты
Не надо
• Протокол полнодуплексной связи поверх TCP-соединения, предназначенный для
обмена сообщениями между браузером и веб-сервером в режиме реального
времени
• Устанавливается канал связи между клиентом и сервером, по которому
осуществляется двустороннее взаимодействие
• Не является заменой REST (и наоборот), дополняют друг друга
• В Caché – наследуется от %CSP.WebSocket
WebSockets
• Chrome Developer Tools
• Перехватывающий прокси-сервер
Отладка
WebSockets
 Наиболее популярный способ передачи данных при работе в REST приложениях
является JSON.
 За счёт своей читабельности и удобству обработки на клиенте, по сравнению
с XML, формат JSON может быть более подходящим для представления сложных
данных.
Формат общения клиента и сервера
JSON
{
"firstName": "Иван",
"lastName": "Иванов",
"address":
{
"street": "Арбузная 177. д 3.",
"city": "Новосибирск",
"postalCode": 101101
},
"phoneNumbers": [ "812 123-1234", "916 123-4567" ]
}
• Все JavaScript фреймворки поддерживают json
• Поддержка JSON в Caché начиная с 2014.1
• Начиная 2016.1 поддержка JSON переведена в ядро
• Скорость работы с JSON не хуже чем в node,js
JavaScript Object Notation
JSON
Организация приложения
JSON
REST
WebSockets
COS
Extends %PersistentДанные
Терминальное API
Web API
Клиент
Клиент (веб-приложение)
Составляющие, мобильная разработка, отладка
• Современное веб-приложение
• Отладка
• Построение мобильных приложений
План
• CSS фреймворк
• JS фреймворк
• HTML, JS, CSS код приложения
Основа
Современное веб-приложение
• Набор готовых компонентов
• Предоставляют дизайн-шаблоны
• Обеспечивают отзывчивость интерфейса
CSS фреймворк
• Примеры (Twitter Bootstrap, Material Design Lite)
CSS фреймворки
• Упрощение работы с JavaScript (jQuery)
• Работа с DOM (jQuery, AngularJS)
• Получение/передача данных
• Реализация сложных моделей поведения
• Поддержка архитектуры приложения
– MVC (AngularJS, Backbone.js, React)
– MVVM (Kendo UI, Knockoutjs)
– MVP (Ext JS)
Функции
JS фреймворк
MVC
-
• Консоль браузера
– Chrome Developer Tools
• Фреймворк-специфичные отладчики
– AngularJS Batarang
– React Developer Tools
Отладка веб-приложений
• Идея!
– Берём готовое веб приложение
– На его основе генерируем мобильное приложение-браузер с локальной копией сайта
– Предоставляем доступ к своему API, абстрагирующему различные API мобильных
операционных систем
• Преимущества
– Время разработки (в случае современного веб-приложения) стремится к нулю
– Единство кодовой базы
– Не требуется знание JAVA, Objective C, .Net
• Примеры
– Phonegap
– Sencha Touch
– …
Мобильное приложение на основе веб-приложения
• Набор API для разработки мобильных приложений
• В сочетании с фреймворками для разработки интерфейсов (JQuery Mobile, Dojo,
Angular Mobile UI), позволяет создавать приложения используя лишь HTML, CSS и
Javascript
• Разработчик получает доступ к родным функциям устройства (камера,
акселерометр и т.д.) через JavaScript методы
Cordova / Phonegap
Amazon-FireOS
Android
BlackBerry
FirefoxOS
iOS
Ubuntu
Доступные платформы
Windows
WP8
Bada
Symbian
WebOS
Tizen
Для основной разработки:
 Node.js (npm)
 Git client
Для компиляции под Android:
 Android SDK tools
 SDK build-tools, SDK platform-tools, AVD
Набор разработчика
DeepSee Mobile cAdmin
Пример мобильного приложения
Конец

Mais conteúdo relacionado

Mais procurados

Сергей Рыжиков (1С-Битрикс)
Сергей Рыжиков (1С-Битрикс)Сергей Рыжиков (1С-Битрикс)
Сергей Рыжиков (1С-Битрикс)Ontico
 
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"ITGinGer
 
Михаил Сенин "Передача дополнительной информации о сайте через Яндекс.Вебмастер"
Михаил Сенин "Передача дополнительной информации о сайте через Яндекс.Вебмастер"Михаил Сенин "Передача дополнительной информации о сайте через Яндекс.Вебмастер"
Михаил Сенин "Передача дополнительной информации о сайте через Яндекс.Вебмастер"Yandex
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...solit
 
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBТехнология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBFedor Malyshkin
 
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish CacheУскоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish CacheIgor Sazonov
 
01 server definition
01 server definition01 server definition
01 server definitionmcroitor
 
живые сайты
живые сайтыживые сайты
живые сайтыzexzex
 
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)Ontico
 
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьAPI в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьEatDog
 
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"Provectus
 
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...Fedor Lavrentyev
 
Использование встроенных или подключаемых средств браузеров для тестирования ...
Использование встроенных или подключаемых средств браузеров для тестирования ...Использование встроенных или подключаемых средств браузеров для тестирования ...
Использование встроенных или подключаемых средств браузеров для тестирования ...SQALab
 
RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)Sergey Skvortsov
 
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...QAFest
 

Mais procurados (20)

Правильный REST API
Правильный REST APIПравильный REST API
Правильный REST API
 
Сергей Рыжиков (1С-Битрикс)
Сергей Рыжиков (1С-Битрикс)Сергей Рыжиков (1С-Битрикс)
Сергей Рыжиков (1С-Битрикс)
 
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
MPD2011 | Олег Донцов "Введение в разработку bada Flash & Web приложений"
 
Михаил Сенин "Передача дополнительной информации о сайте через Яндекс.Вебмастер"
Михаил Сенин "Передача дополнительной информации о сайте через Яндекс.Вебмастер"Михаил Сенин "Передача дополнительной информации о сайте через Яндекс.Вебмастер"
Михаил Сенин "Передача дополнительной информации о сайте через Яндекс.Вебмастер"
 
Проблемы с индексацией сайта?
Проблемы с индексацией сайта?Проблемы с индексацией сайта?
Проблемы с индексацией сайта?
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
 
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBТехнология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
 
ASP.NET MVC 4
ASP.NET MVC 4ASP.NET MVC 4
ASP.NET MVC 4
 
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish CacheУскоряем Wordpress: кеширование, CDN, Varnish Cache
Ускоряем Wordpress: кеширование, CDN, Varnish Cache
 
01 server definition
01 server definition01 server definition
01 server definition
 
живые сайты
живые сайтыживые сайты
живые сайты
 
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
 
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемостьAPI в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
API в SAAS, с облаком и без: ресурсы, SLA, балансировка, расширяемость
 
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
 
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
 
Использование встроенных или подключаемых средств браузеров для тестирования ...
Использование встроенных или подключаемых средств браузеров для тестирования ...Использование встроенных или подключаемых средств браузеров для тестирования ...
Использование встроенных или подключаемых средств браузеров для тестирования ...
 
Full Stack разработка на JavaScript
Full Stack разработка на JavaScriptFull Stack разработка на JavaScript
Full Stack разработка на JavaScript
 
REST
RESTREST
REST
 
RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)
 
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
 

Destaque (14)

Harley davidson
Harley davidsonHarley davidson
Harley davidson
 
gaurav sharma_2015
gaurav sharma_2015gaurav sharma_2015
gaurav sharma_2015
 
On lease call center seats in gurgaon
On lease call center seats in gurgaonOn lease call center seats in gurgaon
On lease call center seats in gurgaon
 
Anilagala vartane 18
Anilagala vartane 18Anilagala vartane 18
Anilagala vartane 18
 
EMC Presentation
EMC PresentationEMC Presentation
EMC Presentation
 
Riesgos de la informatica electronica
Riesgos de la informatica electronicaRiesgos de la informatica electronica
Riesgos de la informatica electronica
 
Resume_Amit Agrawal
Resume_Amit AgrawalResume_Amit Agrawal
Resume_Amit Agrawal
 
Ruchika Chhabra (1)
Ruchika Chhabra (1)Ruchika Chhabra (1)
Ruchika Chhabra (1)
 
2012-2-28
2012-2-282012-2-28
2012-2-28
 
RITU SINHA
RITU SINHARITU SINHA
RITU SINHA
 
Unidad didactica la programación en c# para electronica
Unidad didactica la programación en c# para electronicaUnidad didactica la programación en c# para electronica
Unidad didactica la programación en c# para electronica
 
L’aparell reproductor masculí
L’aparell reproductor masculíL’aparell reproductor masculí
L’aparell reproductor masculí
 
Turizmi Në ShqipëRi Dhe Prespektiva Per Te Ardhmen Qarku Vlore
Turizmi Në ShqipëRi Dhe Prespektiva Per Te Ardhmen Qarku VloreTurizmi Në ShqipëRi Dhe Prespektiva Per Te Ardhmen Qarku Vlore
Turizmi Në ShqipëRi Dhe Prespektiva Per Te Ardhmen Qarku Vlore
 
Interleucinas
InterleucinasInterleucinas
Interleucinas
 

Semelhante a Разработка мобильного и веб интерфейса для Caché

C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.Igor Shkulipa
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Ontico
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Ilya Kaznacheev
 
09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворкиRoman Brovko
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)Timur Shemsedinov
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинPVasili
 
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePointVitaly Baum
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, SkypeOntico
 
Что нового в ASP.NET 5
Что нового в ASP.NET 5Что нового в ASP.NET 5
Что нового в ASP.NET 5Microsoft
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1Technopark
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
 
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Yulia Tsisyk
 
State of the Standardized Web. YaC 2014
State of theStandardized Web. YaC 2014State of theStandardized Web. YaC 2014
State of the Standardized Web. YaC 2014Yandex
 
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized WebYandex
 

Semelhante a Разработка мобильного и веб интерфейса для Caché (20)

C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
 
09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки09 - Web-технологии. MVC фреймворки
09 - Web-технологии. MVC фреймворки
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)Impress Application Server for node.js (ru)
Impress Application Server for node.js (ru)
 
Drupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин КонстантинDrupal и мобильные устройства, Комелин Константин
Drupal и мобильные устройства, Комелин Константин
 
ASP.NET MVC: new era?
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
 
Mobile web apps
Mobile web appsMobile web apps
Mobile web apps
 
Решения сообщества для SharePoint
Решения сообщества для SharePointРешения сообщества для SharePoint
Решения сообщества для SharePoint
 
Databases on Client Side
Databases on Client SideDatabases on Client Side
Databases on Client Side
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
 
Что нового в ASP.NET 5
Что нового в ASP.NET 5Что нового в ASP.NET 5
Что нового в ASP.NET 5
 
Web servers
Web servers Web servers
Web servers
 
Web весна 2013 лекция 1
Web весна 2013 лекция 1Web весна 2013 лекция 1
Web весна 2013 лекция 1
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
Юлия Цисык «RESTFul API в вашем.NET приложении: как, зачем и почему?»
 
State of the Standardized Web. YaC 2014
State of theStandardized Web. YaC 2014State of theStandardized Web. YaC 2014
State of the Standardized Web. YaC 2014
 
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized Web
 

Разработка мобильного и веб интерфейса для Caché

  • 1. Разработка мобильного и веб-интерфейса для InterSystems Caché Лебедюк Эдуард
  • 2. • Сервер • Клиент-серверное взаимодействие • Клиент План
  • 5. • Взаимодействие с данными • Данные не должны изменяться иначе, чем через это API • Возвращают объекты или статус • Не пишут на устройство Особенности Терминальное API
  • 6. • Преобразуют входящий запрос в форму, понимаемую терминальным API • Вызывают методы терминального API • Отправка результата выполнения терминального API клиенту • Не взаимодействуют с данными напрямую Особенности Web API
  • 7. • Терминальное API является основой логики приложения • Функция Web API – преобразование запросов клиента в форму понятную терминальному API и возврат клиенту результатов исполнения запроса • Преимущества этого подхода: – API выполняющие разные функции максимально разделены – Возможна отладка вне веб-контекста Преимущества Разделение API
  • 9. • Серверной генерации статического HTML О чём не будем говорить План • REST • WebSockets • JSON О чём будем говорить
  • 10. • Стиль архитектуры программного обеспечения для распределенных систем, таких как World Wide Web • Как правило используется для построения веб-служб • Любые данные однозначно определяется URL – это значит, что URL по сути является первичным ключом для единицы данных. – https://server:80/webapp/book/:bookid REST
  • 11.  Разделение клиента и сервера  Независимость от состояния (stateless)  Кэшируемая и многоуровневая архитектура  Единый интерфейс  Все запросы к RESTful web API состоят из корневого URL приложения плюс частные подзапросы • CRUD (Create , Read, Update, Delete) через HTTP Принципы REST
  • 12.  Независимость от языка/фреймворка/платформы  Клиентs на Java, JS, .Net и т.д.  Легкость разработки  Проще чем SOAP  Нет необходимости в специальных инструментах  Соответствует дизайну и принципам Web  Нет необходимости в дополнительных сообщениях Преимущества REST
  • 13. • Стандартная реализация – наследуется от %CSP.REST • Дополнения – на https://github.com/intersystems-ru/REST – Поддержка русского языка (любой не-латиницы) – Полная поддержка JSON – Валидация запросов – Поддержка CORS – Дополнительная поддержка сессий – Макросы отладки ($$$Debug, $$$Public и т.д.) Реализация REST
  • 14. • По сути – соответствие запрашиваемых URL методам Caché • Стандартный вид пути: <Route Url="/path/:param1/:param2" Method="GET" Call=“Package.Class:ClassMethod" /> • ClassMethod – любой метод класса Caché REST
  • 15. • Расширения для браузера • Перехватывающий прокси-сервер • Анализатор трафика Отладка REST • Использовать curl • Использовать wget • Использовать cli инструменты Не надо
  • 16. • Протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени • Устанавливается канал связи между клиентом и сервером, по которому осуществляется двустороннее взаимодействие • Не является заменой REST (и наоборот), дополняют друг друга • В Caché – наследуется от %CSP.WebSocket WebSockets
  • 17. • Chrome Developer Tools • Перехватывающий прокси-сервер Отладка WebSockets
  • 18.  Наиболее популярный способ передачи данных при работе в REST приложениях является JSON.  За счёт своей читабельности и удобству обработки на клиенте, по сравнению с XML, формат JSON может быть более подходящим для представления сложных данных. Формат общения клиента и сервера JSON { "firstName": "Иван", "lastName": "Иванов", "address": { "street": "Арбузная 177. д 3.", "city": "Новосибирск", "postalCode": 101101 }, "phoneNumbers": [ "812 123-1234", "916 123-4567" ] }
  • 19. • Все JavaScript фреймворки поддерживают json • Поддержка JSON в Caché начиная с 2014.1 • Начиная 2016.1 поддержка JSON переведена в ядро • Скорость работы с JSON не хуже чем в node,js JavaScript Object Notation JSON
  • 22. • Современное веб-приложение • Отладка • Построение мобильных приложений План
  • 23. • CSS фреймворк • JS фреймворк • HTML, JS, CSS код приложения Основа Современное веб-приложение
  • 24. • Набор готовых компонентов • Предоставляют дизайн-шаблоны • Обеспечивают отзывчивость интерфейса CSS фреймворк
  • 25. • Примеры (Twitter Bootstrap, Material Design Lite) CSS фреймворки
  • 26. • Упрощение работы с JavaScript (jQuery) • Работа с DOM (jQuery, AngularJS) • Получение/передача данных • Реализация сложных моделей поведения • Поддержка архитектуры приложения – MVC (AngularJS, Backbone.js, React) – MVVM (Kendo UI, Knockoutjs) – MVP (Ext JS) Функции JS фреймворк
  • 27. MVC -
  • 28. • Консоль браузера – Chrome Developer Tools • Фреймворк-специфичные отладчики – AngularJS Batarang – React Developer Tools Отладка веб-приложений
  • 29. • Идея! – Берём готовое веб приложение – На его основе генерируем мобильное приложение-браузер с локальной копией сайта – Предоставляем доступ к своему API, абстрагирующему различные API мобильных операционных систем • Преимущества – Время разработки (в случае современного веб-приложения) стремится к нулю – Единство кодовой базы – Не требуется знание JAVA, Objective C, .Net • Примеры – Phonegap – Sencha Touch – … Мобильное приложение на основе веб-приложения
  • 30. • Набор API для разработки мобильных приложений • В сочетании с фреймворками для разработки интерфейсов (JQuery Mobile, Dojo, Angular Mobile UI), позволяет создавать приложения используя лишь HTML, CSS и Javascript • Разработчик получает доступ к родным функциям устройства (камера, акселерометр и т.д.) через JavaScript методы Cordova / Phonegap
  • 32. Для основной разработки:  Node.js (npm)  Git client Для компиляции под Android:  Android SDK tools  SDK build-tools, SDK platform-tools, AVD Набор разработчика
  • 33. DeepSee Mobile cAdmin Пример мобильного приложения