Difference between revisions of "RPC HELP Broker Overview"

From VistApedia
Jump to: navigation, search
 
(4 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 [[RPC_HELP_execute_a_call|execute a call]]. Issues include:
+
### 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 [[RPC_HELP_RPC_BROKER_APIs|RPC BROKER APIs]]. You may need to [[RPC_HELP_RPC_Create_Your_Own_RPC|create your own RPC]] from scratch. In many cases, [[RPC_HELP_Existing_M_API|an existing M API]] can be wrapped into an RPC.
+
### 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 [[RPC_HELP_Register_An_RPC|RPC Security: How to Register an RPC.]]
+
### 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

RPC Broker Help Home

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.

  1. 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)
    1. GUI Developer Issues: None. This process is built into the RPC Broker. See the "RPC Broker Systems Manual" for details.
  2. Authentication of user. After the server connects back to the client machine, the user is asked for an Access and Verify code.
    1. GUI Developer Issues:
      1. Applications must create a context for the user. This process checks the user’s access to individual RPCs associated with the application.
      2. Developers must decide whether to enable Silent Login.
  3. Client makes a Remote Procedure Call.
    1. GUI Developer Issues:
      1. 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:
        1. Determine data types for input and return.
        2. Determine the kind of call to make.
      2. 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]
      3. In the future, components may become available to encapsulate other VistA functions.
  4. RPC execution on server
    1. 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:
      1. 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.
      2. 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.
  5. RPC returns information to the client.
    1. GUI Developer Issues: Handling the return values, including any error messages.