Proxy to Skeleton Method Call
This functionality enables a proxy in one cluster to invoke methods on a skeleton located in a different cluster, with asynchronous request-response handling. The same logic applies across different processes and/or threads. The middleware supports both request-response methods (with return values) and fire-and-forget methods (where no response is expected).
Static View
The following software units are involved in proxy-to-skeleton method calls:
Transceiver Unit (Proxy side): Initiates requests and manages response callbacks (see Proxy/Skeleton Base for its class diagram)
Transceiver Unit (Skeleton side): Receives and processes requests (see Proxy/Skeleton Base)
Request/Response Unit: Manages asynchronous request lifecycle, response routing and timeouts (if enabled) (see Request/Response for its class diagram)
Message Management Unit: Allocates request/response messages and copy-constructs their payloads
Cluster Connection Unit: Routes messages between clusters
Message Queue Unit: Stores messages for inter-cluster transport
Proxy to skeleton method call component view
Notes:
Message flow is asynchronous through a shared memory queue.
ProxyMethodmanages pre-allocated future slots and invokes callbacks.A
uint16_trequest id is returned to the application for cancellation.
Dynamic View
The dynamic view illustrates the runtime interactions for a method call with an asynchronous response.
Proxy to skeleton method call sequence
Notes:
Depending on its size, the payload is copy-constructed either into the message’s internal buffer or into an external allocation.
Fire-and-forget methods follow the same flow but omit the response path: no
Futureis used, no response message is sent, and the skeleton does not callrespond<MethodName>(...). The method is marked withcall_semantic: FIRE_AND_FORGETin the service interface description.