Objectives of JAIN
When the JAIN JCP commenced work, their starting point was "what do we need to add to J2EE to make it suitable for communications". The short answer is to keep one or two features, but essentially to start again as the specific requirements for a telecommunications application server are very different from those of enterprise IT systems. Communications networks involve markedly different user expectations, technical requirements and business drivers from those of enterprise systems.
The result was JSLEE, an open standard describing a robust and high-performance execution environment for telecommunications applications. JSLEE APIs adopt successful patterns and concepts from JEE and incorporates other Java standards such as JMX for system management.
A SLEE – Service Logic Execution Environment – is a well known concept in the telecommunications industry. A SLEE is a high throughput, low latency event processing application environment. The service logic ‘environment’ can be realised, as it has been historically, by a set of software libraries that provide the run-time facilities that the service requires. Given the progress in software engineering techniques over the last two decades, nowadays these capabilities are more typically provided by an Application Server as an alternative to the object library approach. Regardless of the detail of how the SLEE is realised, the principle is the same: to provide the features and functions that are common to all services so that they do not need to be built in each separate case.
Until JAIN SLEE however, SLEEs have been proprietary and hence incompatible with other SLEEs as they each provide their own set of capabilities with proprietary APIs. This means services and features are not portable between SLEEs. Services and features in different SLEEs cannot interact because the SLEEs do not support interoperability. Indeed, often the SLEE is 'invisible' and the highly desirable separation between application and platform logic becomes corrupted over time as additional platform features are added in the application or vice versa.
JAIN SLEE (JSLEE – the Java SLEE) is designed specifically to allow implementations of the standard to meet the stringent requirements of communications applications, such as network signalling applications. The JSLEE specification is also designed so that implementations can achieve scalability and availability through clustering architectures.
JSLEE sits alongside other proven Java standards such as the well-established JEE standard for enterprise application servers.
JSLEE specifies server software capabilities that provide behaviour common to all services. This means that common “systems level” behaviour is not re-developed for each and every service. It also enforces a clean separation between the service (aka application) and the facilities that are a standard feature of the platform. Because the same platform is used by many services, the resulting applications/ services are more robust because the common core is already extensively tested and deployed.
