The Structure of a SAS Application Server

The SAS Application Server's Server Components

As mentioned in A Collection of Server Components, a SAS Application Server is a logical entity that encompasses a set of actual servers. Several types of servers might belong to a SAS Application Server, as shown in the following list:
  • SAS Workspace and SAS Pooled Workspace Servers - These servers are provided with SAS Integration Technologies and are accessed through the Integrated Object Model (IOM) workspace interface. This interface provides access to Foundation SAS features such as the SAS language, SAS libraries, the server file system, results content, and formatting services. A SAS workspace represents a session with the SAS system and is functionally equivalent to the execution of the SAS System as a batch job. A pooled workspace server is a workspace server in every respect except that it automatically uses mechanisms—server-side pooling and load-balancing—to improve performance on larger SAS deployments. (For standard workspace servers, you must set up load balancing or client-side pooling manually.)
  • Stored Process Server - The Stored Process Server is also part of SAS Integration Technologies. It retrieves SAS Stored Processes from a repository and executes them.
    A stored process is a SAS program that is stored on a server and can be executed as required by requesting applications. You can use stored processes for Web reporting, analytics, building Web applications, delivering packages to clients or to the middle tier, and publishing results to channels or repositories. Stored processes can also access any SAS data source or external file and create new data sets, files, or other data targets that are supported by SAS.
  • SAS OLAP Server - Similar to the way in which a database management system (DBMS) can read an SQL query and return data from a database, the SAS OLAP Server processes MDX queries and returns data from OLAP cubes.
    An OLAP server has a close relationship with a workspace server, and the two generally run on the same machine. The workspace server is used to build OLAP cubes, and the OLAP server is used to query the cubes.
  • SAS/CONNECT Server - The SAS/CONNECT server has several general capabilities:
    • SAS/CONNECT provides compute services. A SAS/CONNECT client running on one machine can submit code to one or more remote SAS/CONNECT servers, which execute the code.
    • SAS/CONNECT provides Remote Library Services (RLS). These services enable SAS code to read, write, and update remote data as if it were resident on the client host. RLS can be used to access SAS data sets across machines that have different architectures.
    • SAS/CONNECT provides a set of Data Transfer Services (DTS). A SAS/CONNECT client can download data from a remote host where a SAS/CONNECT server is running, or the client can upload data to the server host. The client and server host do not need to be running the same operating system.
    In addition, the SAS/CONNECT server has an important role in several features that are unique to the SAS Intelligence Platform:
    • SAS/CONNECT servers run on all of the nodes in the compute grid. Together, the servers execute SAS Data Integration Studio and SAS Enterprise Miner jobs that use parallel algorithms.
    • SAS Data Integration Studio can also use a SAS/CONNECT server for regular jobs. The application can generate code that uses the SAS/CONNECT server to upload data to a remote machine, download data from a remote machine, or execute the code for one or more transformations.
  • batch servers - A batch server is actually a metadata object that stores a SAS command that is run in batch mode to execute SAS or Java code. The batch server contains an association between the stored command and the host on which it runs and possibly a log file. These SAS commands are actually scheduled jobs that are created with programs such as SAS Data Integration Studio and SAS Web Report Studio.
    Different types of batch servers are available for different types of code: a SAS DATA Step Batch Server, a SAS Java Batch Server, and a SAS Generic Batch Server. For more information about these subtypes of the batch server, see Understanding the Batch Servers.
  • SAS Grid Server - The SAS Grid Server is similar to the batch server in that it stores a command. In this case, the server stores the command that Platform LSF will use to start SAS/CONNECT sessions on the nodes in the grid. For more information about the architecture of a system that supports grid computing, see Grid Computing in SAS.

The SASMeta Application Server

The SAS Deployment Wizard creates a second SAS application server called SASMeta by default. The SASMeta application server is used for certain metadata functions such as backup and restore that depend on a SAS Workspace Server and (for some functions) a SAS/CONNECT Server. For more information about these metadata utilities, see About Backups and Restores in SAS Intelligence Platform: System Administration Guide.
In addition, the SASMeta server context also contains the SAS Metadata Server, although the metadata server is technically not an application server component.

The Hierarchy of Metadata Objects Used to Define a SAS Application Server

When your system was first installed, an application server was created when the first server—perhaps a workspace server—was defined. Defining the application server involved creating three objects:
  • an application server
  • a logical server (for example, a logical workspace server)
  • a server (for example, a workspace server)
The Server Manager plug-in to SAS Management Console has a tree structure similar to the one shown in the following display:
Server Manager plug-in workspace server tree structure
The SASApp tree node represents the SAS Application Server. You assign resources such as libraries and OLAP schemas to this object. The result is that when an application such as SAS Web Report Studio needs to access a particular resource, it will use a server, such as a workspace server, that belongs to this application server.
The object named SASApp - Logical Workspace Server is a logical server. An application server such as SASApp can contain at most one logical server for each type of server that is listed in the section The SAS Application Server's Server Components. Generally, each logical server can contain one or more servers of the appropriate type. However, logical Grid Servers can contain only a single server.
The logical server level in the hierarchy enables you not only to group related servers together, but to control the behavior of the set of servers that belongs to the logical server. For example, if you have two workspace servers in a logical workspace server, you use the logical workspace server to indicate that you want to balance the workload that goes to these two servers. A logical server also gives you a place at which to use metadata access controls to secure all servers of a particular type in the same way.
The object named SASApp - Workspace Server represents the server that executes SAS code. In the case of a workspace server, this object contains information about the machine that the server runs on, the command that is used to start it, and the port on which it listens for requests.