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