example "remote_service_admin_shm" does not work
According to the README in the directory bundles/remote_service, I want to test the remote service calling via shared memory, but it doesn't work due to no corresponding executable in DEPLOY directory, remote_service_admin_dfi works as expected with ectd server.
I know that such function is comment out by default due to the CMakeList.txt in "remote service" and "remote service/example" as below, I have a try to remove the comment and twist some changes in code, compiling is well, but no corresponding executable in server/client.
My question is that : Is such function supported so far, or should I make some workaround to enable it? Thanks
#TODO refactor shm rsa to use dfi
#add_subdirectory(remote_service_admin_shm)
# TODO refactor shm remote service admin to use dfi
# if (BUILD_RSA_REMOTE_SERVICE_ADMIN_SHM AND BUILD_RSA_DISCOVERY_SHM)
# add_celix_container(remote-services-shm
# NAME "server"
# GROUP "remote-services/remote-services-shm"
# BUNDLES discovery_shm topology_manager remote_service_admin_shm calculator shell shell_tui log_service log_writer
# )
# celix_container_bundles_dir(remote-services-shm DIR_NAME "endpoints"
# BUNDLES org.apache.celix.calc.api.Calculator_endpoint
# )
#
# add_celix_container(remote-services-shm-client
# NAME "client"
# GROUP "remote-services/remote-services-shm"
# BUNDLES topology_manager remote_service_admin_shm shell shell_tui log_service log_writer calculator_shell discovery_shm
# )
# celix_container_bundles_dir(remote-services-shm-client DIR_NAME "endpoints"
# BUNDLES org.apache.celix.calc.api.Calculator_proxy
# )
# endif ()
The shared memory remove service admin is not working anymore.
The remote service admin was refactoring to use libffi (foreign function interface) instead of requiring the creation of remote endpoint/proxy factories. The shared memory version of remote service was not refactored to use libffi and as result it does not work anymore.
This will need some significant work to get it up and running again.
Thanks @pnoltes , do you have any plan for such work?
If I want to use the shared memory RSA, would you give me some advice ? It seems that the version rel/celix-2.1.0 matched the usage of README, I will have a try for this.
At this point in time, if you really want to use something shared memory based, I would recommend something like https://github.com/continental/ecal
It's a pub/sub middleware with very good performance characteristics. It just doesn't conform to OSGi specs.
There is nothing planned to get remote service with shared memory working again.
We are looking into the remote service admin, but this is more in the area of a rewrite to support C++ and build it on top of the pubsub admins.
I got it , thanks ! It looks like the code about "remote service" changed a lot from rel/2.1 to 2.2, and the discovery shm compiled well, maybe the shared memory discovery is good to replace the "etcd" discovery in the DFI example, I will have a look the remote service to get an efficient way of rpc.
Have a try of our new rsa_shm.