Now that the essential components of STAF have been introduced, the overall architecture can be presented and the user will see how all the major pieces fit together. For example, a block diagram of one possible configuration of STAF is shown below. In this configuration, five ASPs and nine PAMs are linked. All of the ASPs communicate with other ASPs and with the software bus (SOC) through CORBA compliant interfaces (shown as hashed bars). Each analysis module interfaces (shown as dotted bars) to a C++ object which presents a CORBA compliant interface to the rest of the system.
The diagram illustrates the independence of the SPX and TDM packages from all other ASPs, and shows that the DIO, TOP, and AMI packages depend upon the TDM package (i.e. TDM must be loaded before DIO, TOP, or AMI can be loaded or used.
Figure 1. Block diagram of the STAF architecture for one possible configuration
of ASPs and PAMs.
Software Bus
Simply stated, a software bus is a pathway of communication between software components. It provides a common centralized resource for locating software components and routing communication and control through well regulated channels.
STAR SOFI's choice of CORBA as a software bus standard was dictated by the distributed, heterogeneous nature of our computer resources, our reliance on UNIX, and by our investigations into the availability and suitability of open standards two years ago when the choice was made. Other choices are now available (DCOM/Active X, distributed Java), but CORBA still remains the most viable choice for the immediate future.
CORBA
The Common Object Request Broker Architecture (CORBA) standard is a non-proprietary software bus specification developed and maintained by the Object Management Group (OMG ) - a consortium of over 700 computer industry hardware and software companies. CORBA can be considered an object-oriented client-server system which offers location transparency and access transparency for objects within the systems. This allows programmers to write code without knowledge of or concern about where needed software resources exist in the application. The ORB makes sure that objects communicate properly whether they are in the same process, in different processes on the same machine, or on different machines connected by a network. For further details see:
http://www.rhic.bnl.gov/STAR/html/ssd_l/staf_l/STAF-current/sw_bus.html