RPC versus ACI

We are about to undertake some new development. Currently we utilize ACI in one system and RPC in another system. The traffic and utilization are quite different between the two systems so we are unable to compare the ROI between ACI and RPC. The development team is very knowledgeable in our current files (ADABAS) and the Natural programming language.

What, if any, requirements should we be considering in determining ACI or RPC? What are the pros and cons of either? Any and all input is greatly appreciated. Thank you.

RPC is generally easier to code: the Natural program calling an RPC service issues a CALLNAT, and the called Natural subprogram is just a subprogram - the Natural RPC Server program provides the EntireX interface for you. RPC provides field level communication and translation; ACI sends/receives a string buffer only.

Most applications will be satisfied with the RPC mechanism.

ACI provides for more complex communication partnership with the EntireX Broker and the partner aplication. RPC is generally limited to synchronous request/reply (although the new RPC servers provide asynchronous capabilities also). ACI has more choices for communication patterns - synchronous, asynchronous. conversational (synchronous reply to synchronous request is possible), zero to n replies to request, etc, but of course these require more programming effort and coordinated development between the communication partners (which really are one tightly-coupled “program” with parts running on different platforms).