The Software Communications Architecture (SCA) is an open architecture framework that tells designers how elements of hardware and software are to operate in harmony within a software defined radio. SCA governs the structure and operation of the U.S. military's Joint Tactical Radio System (JTRS), enabling programmable radios to load waveforms, run applications, and be networked into an integrated system. A Core Framework, providing a standard operating environment, must be implemented on every hardware set. Interoperability among radio sets is enhanced because the same waveform software can be easily ported to all radio sets.
The Object Management Group (OMG), a not-for-profit consortium that produces and maintains computer industry specifications for interoperable enterprise applications, has established a Software Based Communications Domain Task Force (SBC-DTF). This group and the Wireless Innovation Forum (formerly Software Defined Radio Forum) (WINNF), are working on an international commercial standard based on the SCA.
The SCA is extending its coverage to programmable hardware FPGA and digital signal processors.
A software-defined radio's transmitter can be changed through software, not hardware, to alter frequency range, modulation type, and maximum radiated or conducted output power. The Software Communication Architecture (SCA) outlines several interfaces, which describe what operations the various components can be made to do.
Member variables are not exposed to the outside world. The device interface in the diagram provides an interface with attributes, shown in the first compartment, and operations, shown in the second. It is easy to make the erroneous association of CORBA attributes to C++ member variables and CORBA operations to C++ operations. In CORBA, both attributes and operations are operations. Attributes have implicit set and query operations. Again using the device interface in the diagram as an example, the label attribute has implicit operation signatures:
The software component provides the internal storage variable for the label string. It is not directly available to the outside world. The CORBA interface provides the implicit operations for changing the variable.