nt to standardize the interfaces; this means 2.4a.5.1 Application software standardizing the function names, variable names, and variable types, as well as the functionality associated with The application level of the system is where the cognitive each component. The SCA contains specifications for an engine is likely to operate. At this level, the cognitive API to achieve this compatibility goal. The structure of engine is just another application in the system. The big- the SCA's API is based on building blocks, where the gest difference between a cognitive application and a tra- interfaces are designed in a sufficiently generic fashion ditional application such as a Web browser is that the such that they can be reused or combined to make more cognitive engine has some deep connections with the un- sophisticated interfaces. derlying baseband software. Unlike baseband systems, There are two types of APIs in the SCA: real-time, which are generally light and mainly comprise highly op- shown as A in Figure 2.4a-13, and non-real-time, shown as timized software, application-level design has more leeway B in Figure 2.4a-13. Real-time information is both data and in design overhead, allowing the use of a rich and varied set time-sensitive control, whereas non-real-time is control of solutions that sometimes add significant performance information, such as setup and configuration, which does overhead. Beyond the typical OSs, such as products by not have the sensitivity of real-time functionality. An in- Microsoft or products of the Linux family, and the typical teresting aspect of the SCA, API is that it describes in- toolkits, such as wxWindows for graphing, or OS-specific teraction between different layers as would be described in solutions such as Microsoft's DCOM, there exist three the Open Systems Interconnection (OSI) protocol stack. technologies that can have a significant impact on the ap- The API does not include interfacing information for plication environment for CR: Java, Binary Runtime En- intralayer comm