Использовать ли REST + JSON вместо Protocolbuffers в более медленном сервисе - PullRequest
0 голосов
/ 12 января 2012

Я думаю об изменении моей клиент-серверной системы, которая использует буфер протоколов, на веб-службу REST, но у меня есть некоторые проблемы, с которыми приходится сталкиваться.Я не уверен, должен ли я сделать перевод вообще.Это моя история:

Около года назад я разработал систему клиент-сервер, используя буфер протокола Google с собственным форматом сообщений.Это делает сообщения компактными, что положительно для клиентов, которые являются iPhone / iPad / iPod (на данный момент).В настоящее время он сначала договаривается об аутентификации, затем клиент может запросить данные с сервера.Эти данные зависят от пользователя, вошедшего в систему.

Это означает, что при текущей настройке ни один пользователь не может запрашивать данные других пользователей, кроме себя.С одной стороны, это хорошо для безопасности, но я бы хотел иметь возможность запрашивать данные и у нескольких пользователей.

Кроме того, было нелегко заставить буфер протоколов работать хорошо с моим программным обеспечением, и я предвижу больше проблем, когдапереходя и на другие платформы.

Однако при использовании HTTP + JSON (REST) ​​я вижу некоторые недостатки: его формат больше текущего, и я хочу сохранить низкое использование данных (телефоны и приложение).используется на 97% учащимися старших классов), и меньшее количество данных означает, что он тоже быстрее.

Основная проблема - время, необходимое серверу для проверки учетных данных пользователя.REST утверждает, что сервер не хранит состояние клиента, и клиенту, таким образом, нужно будет отправлять учетные данные пользователя при каждом запросе.Затем серверу необходимо найти пользователя в базе данных пользователей (в данном случае MS Active Directory) и пройти аутентификацию в нем.Этот процесс занимает довольно много времени и может прерваться, если большое количество пользователей одновременно подключится к серверу.(По этой причине серверу также нужен простой пароль, поэтому я не могу использовать HTTP Auth Basic или Digest.)Я злюсь на это (размер, скорость, аутентификация и переносимость, повторное использование протоколов).

Заранее спасибо

...