RPC HELP Broker Overview
From VistApedia
Broker Overview
The RPC Broker is a bridge connecting the application front-end on the client workstation (e.g., Delphi-based GUI applications) to the M-based data and business rules on the VistA M Server.
Client Side of the RPC Broker
- Manages the connection to the client workstation. For details, please refer to the "RPC Broker Systems Manual."
- The RPC Broker components allow Delphi-based applications to make RPCs to the server.
- The Broker Dynamic Link Library (DLL) provides support for COTS/HOST client/server software.
Server Side of RPC the Broker
- Manages the connection to the client. For details, please refer to the "RPC Broker Systems Manual."
- Authenticates client workstation.
- Authenticates user.
- Manages RPCs from the client, executes the M code, and passes back return values.
The RPC Broker frees GUI developers from the details of the client-server connection and allows them to concentrate executing operations on the VistA M Server.
Broker Call Steps
These steps present a basic outline of the events that go into an RPC Broker call, starting with the initial client-server connection. Once the client machine and user are authenticated, any number of calls (Steps #3-5) can occur through the open connection.
GUI developer issues are noted for each step.
- Authentication of client machine. When a client machine initiates a session, the Broker Listener on the server spawns a new job. The server then calls the client back to ensure that the client’s address is accurate. (Editor's note: Newer versions of broker do not use callback method)
- GUI Developer Issues: None. This process is built into the RPC Broker. See the "RPC Broker Systems Manual" for details.
- Authentication of user. After the server connects back to the client machine, the user is asked for an Access and Verify code.
- GUI Developer Issues:
- Applications must create a context for the user. This process checks the user’s access to individual RPCs associated with the application.
- Developers must decide whether to enable Silent Login.
- GUI Developer Issues:
- Client makes a Remote Procedure Call.
- GUI Developer Issues:
- Developers creating Delphi GUI applications can use the TRPCBroker or TSharedRPCBroker components to connect to VistA. For each transaction, the application must set parameters and execute a call execute a call. Issues include:
- Determine data types for input and return.
- Determine the kind of call to make.
- In addition to the RPC Broker components, other components are available. The VA FileMan Delphi components (FMDC) encapsulate the details of retrieving, validating and updating VA FileMan data within a Delphi-based application. For further information on the VA FileMan Delphi Components, see [here]
- In the future, components may become available to encapsulate other VistA functions.
- Developers creating Delphi GUI applications can use the TRPCBroker or TSharedRPCBroker components to connect to VistA. For each transaction, the application must set parameters and execute a call execute a call. Issues include:
- GUI Developer Issues:
- RPC execution on server
- GUI Developer Issues: A Remote Procedure Call (RPC) is a defined call to M code that runs on a VistA M server. For details, see the "RPCs" section of this manual for details. Issues include:
- Determine the best RPC. The BDK provides some RPC BROKER APIs. You may need to create your own RPC from scratch. In many cases, an existing M API can be wrapped into an RPC.
- RPCs must be registered on the server so users of the GUI VistA application will have access to them. See RPC Security: How to Register an RPC.
- GUI Developer Issues: A Remote Procedure Call (RPC) is a defined call to M code that runs on a VistA M server. For details, see the "RPCs" section of this manual for details. Issues include:
- RPC returns information to the client.
- GUI Developer Issues: Handling the return values, including any error messages.