I liked CORBA, mainly the IDL and IIOP (I didn't use many of the parts that other people hated). It felt like a sequel to Sun RPC and it was easy to move to gRPC. The main problem I had was the Any type wasn't performant.
After working with remote call systems for a while I concluded there should only be two RPCs:
GetMessage() (which polls for incoming messages) and PutMessage() (which sends a message). All the method information goes in the payload. There are no verbs or headers (HTTP). There is no relationship between the message and some resource system (REST). The name "message" is an indicator that a message is being passed, rather than a remote call with function-call-like semantics (similar to MPI).
After working with remote call systems for a while I concluded there should only be two RPCs:
GetMessage() (which polls for incoming messages) and PutMessage() (which sends a message). All the method information goes in the payload. There are no verbs or headers (HTTP). There is no relationship between the message and some resource system (REST). The name "message" is an indicator that a message is being passed, rather than a remote call with function-call-like semantics (similar to MPI).