Чтобы не было недопониманий и многократных объяснений, опишу на словах, как должен выглядеть сетевой протокол.
Сетевой обмен подразумевается на двух (а, возможно, и больше, если будет ещё UDP) уровнях.
- Одноразовые соединения для закачки данных и объектов, в духе современного HTTP. Более того, это может быть именно HTTP. Опционально - torrent (
peer-to-peer)
- Постоянное соединение ("командный поток") на манер нынешнего у L2, по которому сервер будет управлять клиентом, а клиент - отчитываться серверу.
Т.е. на однонодовом уровне работа будет выглядеть как типичная работа L2-сервера с клиентом, с поправкой на то, что в командах сервера вместо ObjectID будут передаваться универсальные сетевые идентификаторы объектов, которые потом клиент, при необходимости, будет доставать из сети.
Межсерверная же работа будет выглядеть, безусловно, намного сложнее и потребует тщательной проработки.