Difference between revisions of "RPC HELP Broker Overview"
From VistApedia
(3 intermediate revisions by the same user not shown) | |||
Line 32: | Line 32: | ||
# <u>Client makes a Remote Procedure Call</u>. | # <u>Client makes a Remote Procedure Call</u>. | ||
## GUI Developer Issues: | ## GUI Developer Issues: | ||
− | ### Developers creating Delphi GUI applications can use the [[RPC_HELP_TRPCBroker|TRPCBroker]] or [[RPC_HELP_TSharedRPCBroker|TSharedRPCBroker]] components to connect to VistA. For each transaction, the application must set parameters and | + | ### Developers creating Delphi GUI applications can use the [[RPC_HELP_TRPCBroker|TRPCBroker]] or [[RPC_HELP_TSharedRPCBroker|TSharedRPCBroker]] components to connect to VistA. For each transaction, the application must set parameters and [[RPC_HELP_Executing_RPC_How_to|execute a call]]. Issues include: |
#### Determine data types for input and return. | #### Determine data types for input and return. | ||
#### Determine the kind of call to make. | #### Determine the kind of call to make. | ||
Line 39: | Line 39: | ||
# <u>RPC execution on server</u> | # <u>RPC execution on server</u> | ||
## 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 [[RPC_HELP_RPCs|"RPCs"]] section of this manual for details. Issues include: | ## 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 [[RPC_HELP_RPCs|"RPCs"]] section of this manual for details. Issues include: | ||
− | ### Determine the best RPC. The BDK provides some [[ | + | ### Determine the best RPC. The BDK provides some [[RPC_HELP_Other_RPC_Broker_APIs_list|Other RPC Broker APIs]]. You may need to [[RPC_HELP_RPCs_Creating|Creating RPCs]] from scratch. In many cases, [[RPC_HELP_RPCs_Existing_API|Using 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 [[ | + | ### RPCs must be registered on the server so users of the GUI VistA application will have access to them. See [[RPC_HELP_Executing_RPC_Security_Register|RPC Security: How to Register an RPC]]. |
# <u>RPC returns information to the client.</u> | # <u>RPC returns information to the client.</u> | ||
## GUI Developer Issues: Handling the return values, including any error messages. | ## GUI Developer Issues: Handling the return values, including any error messages. |
Latest revision as of 18:49, 9 July 2015
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. 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. 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 Other RPC Broker APIs. You may need to Creating RPCs from scratch. In many cases, Using 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.