http://www.delphikingdom.ru/asp/talktopic.asp?ID=368
№ 290   24-06-2006 14:10
> -- Илья Ермаков писал(а):
> Если говорить о сетевом взаимодействии... Сейчас у меня как раз есть задача организовать параллельные расчеты в сети на взаимодействующих BlackBox-приложениях. Я предполагаю реализовать интерфейс для параллельного взаимодействия следующим образом: среды просто вызывают процедуры друг друга, посылая команды вида Module.Proc и передавая в качестве параметра процедур расширенные записи некоторого базового типа. Билиотека параллельного взаимодействия (БПВ) будет разбирать через метапрограммирование структуру передаваемой записи и выгружать ее поля в линейный поток, передая данные через сокетное соединение вместе с именем типа записи.  На "другом конце провода" БПВ по имени типа создает экземпляр того же типа и вызывает требуемую процедуру с передачей параметра. Процедура определяет, какой тип имеет переданный параметр, и либо обрабатывает его, либо игнорирует. Т.е. "тип сообщения" непосредственно ассоциирован с типом объекта в смысле языка программирования. Более того, в стандартном BlackBox Framework есть поддержка перманентных объектов, которая позволяет сериализовать в линейный поток произвольный граф ссылающихся друг на друга перманентых объектов. Поэтому через сеть можно будет легко передать такие объекты, например, графические отображения и т.п. Framework является отличным фундаментом для решения подобных задач, в нем есть все необходимые "кирпичики".
Очень интересно. Я тоже об этом подумывал.

Кстати, на счёт "разбирать через метапрограммирование структуру", на сколько я понимаю, если структура не содержит указателей (а она не должна содержать указателей, коль скоро передаётся на другую машину), то её вроде просто можно побайтово скопировать, т.е. не разбирать через метапрограммирование поля структуры...