Здравствуйте.
Как и моя прошлая статья, эта ориентированна на опытных пользователей и потому содержит только теоретические сведения, реализацию идеи могу предоставить совершенно бесплатно администратору данного сайта и знакомым мне пользователям.
Появление не так давно метода асинхронной передачи данных и запросов небольших порций данных побудило меня к разделению серверной и клиентской части программы дабы запретить перезагрузку статических частей страницы. Для этого я разделил веб-программирование на следующие уровни: разметка, дизайн, клиентское исполнение, протокол "интерфейс-сервер", серверное исполнение, база данных. Все кроме протокола уже давно существует в веб-программировании, потому я поставил задачу написать способ передачи и принятия любых объектов между клиентом и сервером, при чем так, чтобы эти объекты выглядели после передачи именно так, как они выглядели до. Более того, необходима была возможность вызова определенных функций сервера и передача в них аргументов из клиентской части. Мной был написан протокол который позволяет: передавать любые объекты (примитивные типы, объекты любой вложенности, массивы любой вложенности) так, чтобы после передачи они не теряли своих объектных свойства, вызывать серверные функции из клиентской части программы.
Написанный мной протокол использует методы сериализации и десериализации данных на уровне XML, при этом появляется возможность передавать объекты любой сложности без потерь (а в совокупности с огромным выигрышем) в производительности и затратам трафика.
Приведу пример передачи массива от клиента, серверу:
//на клиенте
протокол = new ПротоколИС();
протокол.Данные = new array(1,2,3);
протокол.Адрес = 'server.php';
протокол.сериализовать();
протокол.запрос();
//на сервере
$протокол = new ПротоколИС();
$протокол->Десериализовать();
echo &протокол->Данные[1]; // вернется 2