SAS/SHARE Is a Multi-User Data Server

SAS/SHARE Enables Concurrent Update Access

SAS/SHARE is a multi-user data server that provides several advantages for local and remote SAS clients and external clients (that is, not SAS applications). The multi-user SAS/SHARE server enables two or more clients to write to the same SAS file at the same time. This is called concurrent update access.
Often, SAS/SHARE is run in an environment in which multiple client sessions want to share (read from and write to) records in the same SAS data set.
The following list gives a sample of operations that multiple clients can perform concurrently:
  • While one user is creating a member in a data library, other users can create, read, delete, and update members in the same library.
  • While one user is using the SAS Explorer window on a data library, other users can open the same window to browse, delete, edit, or re-name members in the same library. You can also copy a member from the SAS Explorer window.
  • While one user opens the CATALOG window on a catalog, other users can open the CATALOG window to browse, copy, delete, or rename entries in the same catalog.
  • While one or more users are using the FSEDIT procedure, the FSVIEW procedure in edit mode, the UPDATE statement in the SQL procedure, or an SCL program to update a SAS data set, other users can perform the following activities:
    • update the SAS data set by using the MODIFY, REMOVE, or REPLACE statement in a DATA step
    • read the SAS data set as input data by using the SET statement in a DATA step
    • add observations to the SAS data set by using the APPEND or SQL procedure or remove observations by using the SQL procedure
    • copy the SAS data set that is being updated (and copy other members of the library) into another library by using the COPY or the CATALOG procedure

SAS/SHARE Provides a Path to Remote Data

The multi-user SAS/SHARE server also provides remote clients a path to shared data, even if they want only to read that data, without the overhead of a SAS/CONNECT sign-on.
In this scenario, you might have a network of client machines that need read access to a data set that resides on a central server system machine. You have two choices. You can use SAS/CONNECT and have each client create a SAS/CONNECT server session on the central server machine. However, if you need to read only a small-to-moderate amount of data, the overhead for each client that is signing on to the central server and starting a SAS/CONNECT server session might be significant. Also, the additional load on the central machine that comes with each of these server sessions might have a negative impact. Alternatively, you can have those client sessions access data through a SAS/SHARE server that is running on the central machine and avoid the overhead and additional load. Because the server is already running and it serves multiple users, connecting to the server and accessing the data takes very little time.

SAS/SHARE Is the Hub between Data and Clients

Think of a SAS/SHARE server as a hub that serves clients with data from many different sources. For example, a server must use a SAS/ACCESS engine to Oracle in order to access data that is stored in an Oracle DBMS. Or, a server can access SAS data through a Native Library engine. See your SAS/ACCESS documentation for details about using an engine to access specific data. The following figure shows a sample of the data sources that a SAS/SHARE server can provide to its clients.
Data Sources for a SAS/SHARE Server
Data Sources for a SAS/SHARE Server
With an identified DBMS, a SAS/SHARE server provides data to the requesting client for its data processing needs. Beginning with SAS 8, this support extends to clients other than the classic SAS client.
Licensing SAS/SHARE*NET software enables you to send requests to a SAS/SHARE server from a client that is not a SAS application. A SAS/SHARE*NET server is a SAS/SHARE server that includes the Data Services component of SAS/IntrNet software.
Here are some examples of clients that are not SAS applications:
htmSQL
runs a Web server and provides a gateway to your SAS data from a Web browser. It enables you to incorporate data into a Web page by using SQL queries.
Java applets or applications
use SAS/SHARE*NET Driver for JDBC, which enables you to write Java applets or applications that can view and update data through a direct connection to a SAS/SHARE*NET server.
C programs
use the SAS SQL Library for C, which is an API that enables you to create applications that use SQL queries and statements to access data in SAS data sets and in other database management systems.
Applications that use the ODBC driver, such as Microsoft Excel
use the ODBC driver, which provides ODBC-compliant Windows applications with read-and-write access to local and remote SAS data sets.
OLE DB consumer or ADO applications
(beginning in SAS 8) use ShareProvider to view and update data through a direct connection to a SAS/SHARE*NET server. ShareProvider implements the Microsoft OLE DB specification and can be used by OLE DB-compliant or ADO-enabled applications.
Each of the preceding client interfaces or applications has its own documentation.
The following figure shows a sample of the types of clients that a SAS 8 (and later) server supports and a SAS/SHARE server that is running in a SAS session in a supported operating environment. A server administrator starts the SAS/SHARE server session. SAS/SHARE clients can connect to the server from any machine on your network. SAS clients use the REMOTE engine to access data through a SAS/SHARE server.
SAS/SHARE Server Clients
SAS/SHARE Server Clients
“Other client” refers to a client that is not a SAS application. For each of these clients, the appropriate client-side drivers and libraries must be invoked.