Evgeny M. Zubok wrote:

> Michael Shigorin <[EMAIL PROTECTED]> writes:
> 
>> Насколько понял XCB whitepaper, с roundtrip times тоже не супер.
> 
> А я что-то не читал такой whitepaper.  Хорошо, а какое решение мыслится
> еще, кроме XCB? Что еще можно придумать, кроме передачи группы запросов
> X-серверу на отрисовку чего-либо с отсроченным получением ответов?

Дело в том, что X протокол - это далеко не только рисование и получение
ввода. Это ещё и Atoms, Properties и т.п.

Причём и рисование, и получение ввода - операции по природе
своей "монологовые". Для рисования нужно только передавать, "что рисовать",
и не нужно никаких ответов. Следовательно, буферизация возможно сколь
угодно большая. Для ввода то же самое - передавать надо только события,
буферизируй сколько угодно.
А вот другая часть X протокола - не связанная непосредственно с обменом с
устройствами - как раз диалоговая. До получения ответа на запросы
XInternAtom или XQueryProperty программа не может продолжаться. И ей
приходится ждать, пока ответ придёт по сети. Хотя вообще говоря для
получения этого ответа доступ по удалённых устройств не нужен.

Из-за этого можно утверждать, что X протокол плохо приспособлен к работе на
медленной сети.

А решение этой проблемы - архитектура с X proxy. Когда роль X сервера играет
X proxy, работающий на сервере приложений.
А для доступа к удалённым устройствам X proxy использует не X протокол, а
что-то более приспособленное к работе на медленной сети.

Две наиболее известные реализации этой идеи - VNC и NX. В обоих случаях
налицо и X proxy, работающий на стороне сервера приложений, и протокол,
оптимизированный под работу с удалёнными устройствами.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Ответить