ssible to define and access by the application developers. This has led to the introduction of APIs in the network. The first application is service enablers and other service network components with API interfaces. The API is defined as a set of technology independent interfaces in terms of procedures, events, parameters and their semantics and it is based on distributed computing concepts such as CORBA, Java and other technologies. A good API makes it easier to develop a program by providing all the building blocks. The programmer puts the blocks together. While open interfaces at the application level are the prerequisite for an open ser- vice architecture, it is important that applications' requests can be mapped appropriately onto the behaviour of the wireless network. Therefore open APIs are also needed at lower layers to enable customizations. Programmable networking aims at opening low- level access to network elements (routers, switches, base stations) by defining appropriate interfaces. These interfaces can then be accessed by various entities (protocols, agents) to offer advanced, customizable and collaborative network services. This concept can then be extended with mechanisms for distributing and executing code, which programs the interfaces on behalf of individual applications (including those running on end sys- items). The new paradigm has been called active networking. See Figure 3.36. A more telecom-oriented interpretation of API is application interface Many of the APIs correspond to service capability servers (SCSs). SCSs are service enablers that provide the applications with service capability features, and are abstractions from underlying network functionality. From the viewpoint of applications, an SCS can be seen as a resource gateway to the core network. Examples of service capability features offered by the SCSs are call control and user location. A common standard that provides a model of the network capabilities is called Parlay. See Figure 3.35. The 3GPP is committed to open interfac