История изменений
Исправление den73, (текущая версия) :
Ну ведь в COM в офтопике это есть, а в DCOM это можно растаскивать как минимум по процессам. Видимо, в CORBA тоже. Мне не казалось это каким-то шиком. Понятно, что перекинуть вообще говоря нельзя ввиду того, что удалённый узел может упасть. Но за вычетом этого падения - можно. Т.е. логика будет другая, но способ вызова - такой же.
Сами по себе кроссязыковые обвязки делаются в SWIG, для тяжёлого языка, такого, как C++. Т.е. там генерируются, скажем, обвязки для заранее выбранных воплощений шаблонов, и код на клиентской стороне, позволяющий эти же функции вызывать, и экземпляры пробрасываются, и эксепшены, и плюсовый объект становится, скажем, питоновским объектом с одноимёнными методами.
Просто в качестве транспорта используется FFI, а не, скажем, сокеты.
Был бы у меня SWIG на стороне сервера, а не клиента - я бы уже подумал прикрутить сокеты к свигу вместо FFI.
Исправление den73, :
Ну ведь в COM в офтопике это есть, а в DCOM это можно растаскивать как минимум по процессам. Видимо, в CORBA тоже. Мне не казалось это каким-то шиком. Понятно, что перекинуть вообще говоря нельзя ввиду того, что удалённый узел может упасть. Но за вычетом этого падения - можно. Т.е. логика будет другая, но способ вызова - такой же.
Сами по себе кроссязыковые обвязки делаются в SWIG, для тяжёлого языка, такого, как C++. Т.е. там генерируются, скажем, обвязки для заранее выбранных воплощений шаблонов, и код на клиентской стороне, позволяющий эти же функции вызывать, и экземпляры пробрасываются, и эксепшены, и плюсовый объект становится, скажем, питоновским объектом с одноимёнными методами.
Просто в качестве транспорта используется FFI, а не, скажем, сокеты.
Исправление den73, :
Ну ведь в COM в офтопике это есть, а в DCOM это можно растаскивать как минимум по процессам. Видимо, в CORBA тоже. Мне не казалось это каким-то шиком. Понятно, что перекинуть вообще говоря нельзя ввиду того, что удалённый узел может упасть. Но за вычетом этого падения - можно. Т.е. логика будет другая, но способ вызова - такой же.
Сами по себе кроссязыковые обвязки делаются в SWIG, для тяжёлого языка, такого, как C++. Т.е. там генерируются, скажем, обвязки для заранее выбранных воплощений шаблонов, и код на клиентской стороне, позволяющий эти же функции вызывать, и экземпляры пробрасываются, и эксепшены.
Просто в качестве транспорта используется FFI, а не, скажем, сокеты.
Исправление den73, :
Ну ведь в COM в офтопике это есть, а в DCOM это можно растаскивать как минимум по процессам. Видимо, в CORBA тоже. Мне не казалось это каким-то шиком. Понятно, что перекинуть вообще говоря нельзя ввиду того, что удалённый узел может упасть. Но за вычетом этого падения - можно. Т.е. логика будет другая, но способ вызова - такой же.
Сами по себе кроссязыковые обвязки делаются в SWIG, для тяжёлого языка, такого, как C++. Т.е. там генерируются, скажем, обвязки для шаблонов, и код на клиентской стороне, позволяющий эти же функции вызывать, и экземпляры пробрасываются, и эксепшены.
Просто в качестве транспорта используется FFI, а не, скажем, сокеты.
Исправление den73, :
Ну ведь в COM в офтопике это есть, а в DCOM это можно растаскивать как минимум по процессам. Видимо, в CORBA тоже. Мне не казалось это каким-то шиком. Понятно, что перекинуть вообще говоря нельзя ввиду того, что удалённый узел может упасть. Но за вычетом этого падения - можно. Т.е. логика будет другая, но способ вызова - такой же.
Сами по себе кроссязыковые обвязки делаются в SWIG, для тяжёлого языка, такого, как C++.
Исходная версия den73, :
Ну ведь в COM в офтопике это есть, а в DCOM это можно растаскивать как минимум по процессам. Видимо, в CORBA тоже. Мне не казалось это каким-то шиком. Понятно, что перекинуть вообще говоря нельзя ввиду того, что удалённый узел может упасть. Но за вычетом этого падения - можно. Т.е. логика будет другая, но способ вызова - такой же.