Слайд 2Основные идеи
Трехзвенная архитектура
Клиенты для разных платформ
Удаленный вызов процедур
Сервер базы данных
Сервер прило-жений
Клиент
![Основные идеи Трехзвенная архитектура Клиенты для разных платформ Удаленный вызов процедур Сервер](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/449426/slide-1.jpg)
Слайд 3Приложение
Четыре клиента:
Оконное приложение
GWT
Android
iPad
Языки программирования:
Java
ObjectiveC
Сервер:
AppEngine
![Приложение Четыре клиента: Оконное приложение GWT Android iPad Языки программирования: Java ObjectiveC Сервер: AppEngine](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/449426/slide-2.jpg)
Слайд 4Постановка задачи
Исследовать существующие подходы
Реализовать необходимые языки
Создать генераторы для них
Разработать метод кодирования данных
Произвести
![Постановка задачи Исследовать существующие подходы Реализовать необходимые языки Создать генераторы для них](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/449426/slide-3.jpg)
внедрение
Слайд 5Существующие технологии
Удаленный вызов процедур
XML-RPC, JSON-RPC, SOAP, .NET Remoting, RMI, Corba и другие
Минусы
Тяжеловесны
![Существующие технологии Удаленный вызов процедур XML-RPC, JSON-RPC, SOAP, .NET Remoting, RMI, Corba](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/449426/slide-4.jpg)
или сложны (Corba, Soap)
Нет кроссплатформенности (.NET Remoting, RMI)
Ограниченность функционала (Thrift)
Нерациональная сериализация (XML-RPC)
Слайд 6Существующие технологии - 2
Сериализация
Избыточность формата
Избыточность структуры
Отсутствие информации о передаваемых данных
![Существующие технологии - 2 Сериализация Избыточность формата Избыточность структуры Отсутствие информации о передаваемых данных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/449426/slide-5.jpg)
Слайд 7Сжатие информации
Основа алгоритма – алгоритм protobuf
Оптимизации
Объединение запросов
Жесткая структура сообщений
Дополнительная информация о сообщении
Использование
![Сжатие информации Основа алгоритма – алгоритм protobuf Оптимизации Объединение запросов Жесткая структура](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/449426/slide-6.jpg)
идентификаторов узлов
Слайд 9service myService {
AccessLevel getAccess(User u) throws UserException;
}
messages MyMessages {
enum AccessLevel
![service myService { AccessLevel getAccess(User u) throws UserException; } messages MyMessages {](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/449426/slide-8.jpg)
{
READ,
WRITE,
ADMIN
}
message Resource {
int id;
AccessLevel level;
array editors;
}
}
Слайд 10Генерация в Objective C
Разработка паттернов
Перечисления
Анонимные классы
Асинхронные вызовы
Управление памятью
![Генерация в Objective C Разработка паттернов Перечисления Анонимные классы Асинхронные вызовы Управление памятью](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/449426/slide-9.jpg)