RPC HELP Whats New
Contents
What's New in the BDK
What’s New Through June 2004?
This topic highlights some of the major changes made to the RPC Broker V. 1.1 since its original release (patch references are included where applicable):
Classes Added
- TVistaLogin As of Patches XWB*1.1*13, this Class was added to Version 1.1 of the RPC Broker.
- TVistaUser As of Patches XWB*1.1*13, this Class was added to Version 1.1 of the RPC Broker.
- TXWBWinsock As of Patches XWB*1.1* 40, this Class was added to Version 1.1 of the RPC Broker.
Components Added:
- TCCOWRPCBroker As of Patch XWB*1.1*40, the TCCOWRPCBroker component was added to Version 1.1 of the RPC Broker. This component allows applications to be CCOW-enabled and Single Sign-On/User Context (SSO/UC)-aware.
- TSharedBroker As of Patch XWB*1.1*26, the TSharedBroker component was added to Version 1.1 of the RPC Broker. This component allows applications to share a single Broker connection.
- TSharedRPCBroker As of Patch XWB*1.1*26, the TSharedRPCBroker component was added to Version 1.1 of the RPC Broker. This component allows applications to share a single Broker connection.
- TXWBRichEdit As of Patch XWB*1.1*13, the TXWBRichEdit component was added to Version 1.1 of the RPC Broker. This component replaced the Introductory Text Memo component on the Login Form. It permits URLs to be identified and launched.
Design-time and Run-time Packages
As of Patch XWB*1.1*14, the BDK now contains separate run-time and design-time packages. See Developer Considerations for details and compiling instructions.
Functionality Added
- Support for Delphi V. 7.0—As of Patch XWB*1.1*40, the BDK supports Delphi V. 7.0.
- Single Sign-On/User Context (SSO/UC)-aware TCCOWRPCBroker Component—As of Patch XWB*1.1*40, the TCCOWRPCBroker component enabled Single Sign-On/User Context (SSO/UC) in CCOW-enabled applications.
- NOTE: For more information on SSO/UC, please consult the Single Sign-On/User Context (SSO/UC) Installation Guide and Single Sign-On/User Context (SSO/UC) Deployment Guide on the VistA Documentation Library (VDL).
- Non-Callback Connections—As of Patch XWB*1.1*35, the RPC Broker components are built with a UCX or non-callback Broker connection, so that it can be used from behind firewalls, routers, etc. This functionality is controlled via the new TRPCBroker component IsBackwardCompatibleConnection property.
- Silent Login— As of Patch XWB*1.1*13, the RPC Broker provides "Silent Login" capability. It provides functionality associated with the ability to make logins to a VistA M Server without the RPC Broker asking for Access and Verify code information.
- Two types of Silent Login are provided with Version 1.1 of the BDK:
- Access/Verify Code-based—One type of Silent Login uses Access and Verify codes provided by the application. This type of Silent Login may be necessary for an application that runs as a background task and repeatedly signs on for short periods. Another case would be for applications that are interactive with the user, but are running under conditions where they cannot provide a standard dialog window, such as that used by the Broker to request Access and Verify codes. Examples might be applications running on handheld devices or within a browser window.
- Token-based—The second type of Silent Login utilizes a token obtained by one application that is passed along with other information as a command line argument to a second application that it is starting. The token is obtained from the VistA server and remains valid for about twenty (20) seconds. When the newly started application sends this token during login the server identifies the same user and completes the login.
- Due to the various conditions under which Silent Logins might be used, it was also necessary to provide options to the applications on error handling and processing. Applications that run as system services will crash if they attempt to show a dialog box. Similarly, applications running within Web browsers are not permitted to show a dialog box or to accept windows messages. Properties have been provided to permit the application to handle errors in a number of ways.
- As a part of the Silent Login functionality, the TVistaUser class providing basic user information was added. This class is used as a property by the TRPCBroker class and is filled with data following completion of the login process. This property and its associated data is available to all applications, whether they are using a Silent Login or not.
- Two types of Silent Login are provided with Version 1.1 of the BDK:
- Documented Deferred RPCs and Capability to Run RPCs on a Remote Server:
- Multi-instances of the RPC Broker— As of Patch XWB*1.1*13, the RPC Broker code was modified to permit an application to open two separate Broker instances with the same Server/ListenerPort combination, resulting in two separate partitions on the server. Previously, an attempt to open a second Broker instance ended up using the same partition. For this capability to be useful for concurrent processing, an application would have to use threads to handle the separate Broker sessions.
- NOTE: Although we believe there should be no problems, the RPC Broker is not yet guaranteed to be thread safe.
Library Methods
Added
As of Patch XWB*1.1*13, the following library methods were new in the TVCEdit Unit:
function ChangeVerify(RPCBroker: TRPCBroker): Boolean;
function SilentChangeVerify(RPCBroker: TRPCBroker; OldVerify, NewVerify1, NewVerify2: String; var Reason: String): Boolean;
procedure StartProgSLogin(const ProgLine: String; ConnectedBroker: TRPCBroker);
Modified
As of Patch XWB*1.1*13, the following library methods were modified:
function CheckCmdLine(SLBroker: TRPCBroker): Boolean;
Changed from procedure to function with a Boolean return value.
- The GetServerInfo library function in the RPCConf1 unit, which can be used to select the desired Server name and ListenerPort, was modified to add a "new" button. This button can be used to add a new Server/ListenerPort combination to those available for selection. It will also accept and store a valid IP address, if no name is known for the location. This will permit those who have access to other Server/ListenerPort combinations that may not be available in the list on the current workstation to access them. However, they will still need a valid Access and Verify code to log on to the added location.
- TParams
- procedure Clear was moved from Private to Public.
- TRPCB Unit
TOnLoginFailure = procedure (VistaLogin: TVistaLogin) of object;
Changed from Object: TObject, since this is what should be expected by the procedure if it is called.
TOnRPCBFailure = procedure (RPCBroker: TRPCBroker) of object;
Changed from Object: TObject, since this is what should be expected by the procedure if it is called.
Properties Added
- TCCOWRPCBroker Properties: (TB: Joel, CCOW properties public or Published?)
As of Patch XWB*1.1*40, this property was added to Version 1.1 of the RPC Broker.
- TRPCBroker Properties
- CurrentContext|CurrentContext (Public)
- IsBackwardCompatibleConnection ((TB: Joel, public or Published?))
- KerneLogIn (Published)
- LogIn (Public)
- OnRPCBFailure (Public)
- RPCBError (Public)
- ShowErrorMsgs (Published)
- User (Public)
As of Patches XWB*1.1*13 and 35, these properties were added to Version 1.1 of the RPC Broker.
- TSharedBroker and TSharedRPCBroker Properties:
- AllowShared (Public)
- OnConnectionDropped ((TB: Joel, public or Published?))
- OnLogout (Published)
As of Patch XWB*1.1*23, these properties were added to Version 1.1 of the RPC Broker.
- TVistaUser Property:
- Vpid ((TB: Joel, public or Published?))
NOTE: See the "Historical Information Regarding the 16-Bit BDK vs. 32-Bit BDK" topic for properties and methods introduced with the RPC Broker 32-bit BDK. This topic also highlights disposition of the Client Manager and those properties and parameters that were obsolete and removed from the 32-bit version of the BDK.
Source Code Availability
As of Patch XWB*1.1*14, the BDK contains the Broker source code. The source code is located in the ..\BDK32\Source directory.
NOTE: Modified BDK source code should not be used to create VistA GUI applications. See Developer Considerations for details.
Not all methods and properties found in the source code are documented at this time. Only those documented methods and properties are guaranteed to be made backwards compatible in future versions of the BDK.
Types Added
As of Patch XWB*1.1*13, these Types were added to Version 1.1 of the RPC Broker.