With Shared Memory Access (SMA) and Linked Library Access (LLA), the applications are always local; the applications connect to a solidDB server (SMA server or LLA server) that is located on the same computer. For example, ODBC functions go directly to the server, rather than going through an ODBC driver and the communications protocol (such as TCP/IP).
A remote application is a separate executable that must communicate with the server by using a network connection (such as TCP/IP) or other connection. Remote applications are usually run on a different computer from the one that is running the server, but an application is also considered to be remote if it uses a network communication protocol to communicate with the server. A single computer can run a local SMA or LLA application, while running one or more remote applications as separate processes.
The remote applications see the SMA and LLA server as similar to any other solidDB server, while the local application sees a faster, more precisely controllable version of the solidDB server.
Most applications are either local (linked to the SMA driver or LLA library) or remote (never linked). However, it is also possible to write a dual-mode application that uses both local and network-based connections. For example, an application could use the same C-language application code in either local or remote mode but be linked to one library when in local mode and another library when in remote mode.
Dual-mode applications can be useful, for example, in the following cases:
▪ You want to test your local application first before linking it with the SMA or LLA library.
▪ You want all users/processes to have the same application logic whether they are local or remote.
The remote applications can be a mix of C and Java programs. The language in which the local application is written does not restrict the languages that the remote applications can be written in. For example, if you use a local application with Java, the remote application can use C, Java, or both.
Converting a local application to run remotely
If you have an SMA or LLA application that you want to run remotely, you must link the remote application to the following libraries (instead of the SMA or LLA library). For information about location of these libraries, see solidDB directory structure and contents.
The following table details the libraries that are required for each operating system:
The SSC API stub library is required for remote applications because the SSC API functions included in the SMA and LLA libraries cannot be used with remote applications. For example, assume that you have a local application (containing SSC API functions) that links to a standard ODBC library. You want to run the same application remotely. By linking to the SSC API stub library, you avoid having to remove the SSC API function calls from your code. In this way, you can easily turn your LLA or SMA application into a normal remote client application.
Note The SSC API stub library contains "do-nothing" functions; if you call them in a remote application, they have no effect on the server. The SSC API stub library does not actually give your remote application control of the server. Instead, it allows you to compile and link your application as a remote application, without getting link-time errors from solidDB with LLA or SMA.