|
by Phelim O'Doherty May 2003 1 IntroductionThis document outlines the principles behind a Service Logic Execution Environment (SLEE) for the Java Platform [1]. It also highlights the requirements difference between event driven systems and enterprise systems that motivated the definition of the JAIN SLEE [2] specification through the Java Community Process [3]. Examples of event driven systems are telecom switching, industrial automation, or flow control systems. These types of systems were never meant to be enterprise systems, but are specialized high performing event driven engines. The following table illustrates a high-level comparison between event driven and enterprise systems requirements specific to common elements.
Table 1: High-level requirement comparison of event driven and enterprise systems To solve the requirements differential between these types of systems and incorporate other key requirements of event driven application servers the following functions were identified as key motivators for the SLEE specification:
1.1 Event ModelEvent routing between data resources and SLEE components, including inter-component event routing, is a core function of the SLEE. The SLEE event model is based on a publish/subscribe model (similar to JMS [4]). This model decouples event producers from event sources via an indirection mechanism which routes event from sources to consumers,and is referred to as the SLEE event routing mechanism. The event router mechanism describes how an event emitted by an event producer is routed and delivered to one or more component instances interested in the event. This router receives events emitted from producers and delivers events to multiple component instances interested in the event. Event consumers subscribe for events by attaching to Activity Contexts. Event producers publish events to Activity Contexts. An event producer is not directly aware of its event consumers and an event consumer is not directly aware of its event producers. The SLEE defined Activity Contexts maintain the relationships among event producers and event consumers. The SLEE event model has the following benefits:
1.2 Component ModelThe SLEE component model is targeted at event driven applications or asynchronous applications. The component model eliminates direct references among event producers i.e. network resources and event consumers i.e. application components. A SLEE component is called a Service Building Block (SBB) and is hosted by a SLEE container. A SBB complies with certain idioms and programming restrictions. The container acts as the building block's run-time environment and provides the following infrastructure services to the SBB:
A deployment descriptor allows a declarative association between the infrastructure services and the SBBs hosted by the container at deployment time. SLEE components receive requests in the form of events that typically represent an occurrence requiring application processing. It carries information describing the occurrence, such as the source of the event. A component running within the SLEE may use events to signal, invoke, or communicate with other applications running in the SLEE. The SLEE component model models the external interface of an event driven application as a set of events that the application can receive. Each event type is handled by its own event handler method to enforce a well-defined event interface. The event driven component model allows the SLEE to provide the event routing logic for the application. While the SLEE component model borrows heavily from the Enterprise JavaBeans(EJB) [5] component model its does not explicitly inherit from the EJB component. This is because the SLEE is a specialized lightweight environment for high-speed, low-latency event processing application servers not requiring the full function of J2EE. However, the SLEE Reference Implementation is built upon the EJB Reference Implementation to illustrate the mapping of SLEE components to J2EE components and highlight how SLEE deployments can exist on J2EE application server platforms. 1.3 Management CapabilitiesIn order to operate, administer and manage elements of event-driven systems, an administrator needs the ability to set and inspect values that characterize the configuration of those systems. These configuration aspects are typically provisioned using proprietary interfaces. The SLEE defines a standard set of interfaces for managing the event driven application server, for example, communication systems built using SLEE enable administrators to manage services, profile data and network resources in a uniform manner. These management interfaces enable an administrator to install, uninstall, start and stop services in the SLEE. The SLEE specification also notes how applications running in the SLEE access provisioned data, for example, adding and removing subscriber services. The SLEE defines management interfaces using Managed Beans (MBean's) as specified by the Java Management Extensions (JMX) [6] specification. An MBean is an external representation of a functional and physical domain of a system. By defining management interfaces as MBean's the SLEE builds upon the standardized management interface for Java platforms and enables the inspection of component attributes and the modification of components via the operations defined by the MBean interfaces. 1.4 Resource CapabilitiesEvent driven applications developed within the SLEE need to communicate with network resources. A network resource represents a system that is external to a SLEE (i.e. protocol stacks and databases). These resources may or may not have Java APIs and define interfaces to represent events emitted by the resource. The SLEE architecture defines how applications running within the SLEE interact with resources through resource adaptors. Resource adaptors adapt resources to the requirements of the SLEE. A resource adaptor type declares the common characteristics for a set of resource adaptors by defining the Java interfaces implemented and the event types fired by resource adaptors of the same type. A resource adaptor is an implementation of a particular resource adaptor type and consists of a set of Java classes with a deployment descriptor. The resource adaptor architecture is important in addressing integration of event driven resources and provides a framework to send and receive events to different network resources. Using resource adaptors to access an event-driven network resource is akin to using JDBC [7] to access a database. Event driven integration implies that the data passed between systems will be in the form of an event or request. Outbound event integration involves requesting data from a remote system in a request form. With inbound event integration, a system receives a request for data via a request and responds with a response. Event oriented integration lends itself to loose coupling between systems because a system remains unaware of the object types existing on the remote system. The resource adaptor architecture is yet to be standardized by the SLEE specification. This standardization process will begin after SLEE achieves final release. Standardizing the resource adaptor architecture prevents each resource adaptor vendor from creating a proprietary resource adapter interface for its own network resource, thus requiring an adapter to be developed for each network resource vendor and SLEE combination. 1.5 Profile CapabilitiesThe SLEE specification defines a generic provisioned data schema that is easy to use to define, provision, and access profiles. It includes interfaces for adding, removing, and modifying provisioned data. Typical provisioned data includes configuration data, such as per-subscriber data. Provisioned data is represented by a profile, where the schema of the profile defines the attributes that may be provisioned in the profile. Profiles that share a schema are grouped into a profile table. A profile specification specifies the provisioned data required by the application to perform its function. A profile specification contains interfaces, classes, and deployment descriptor elements needed to define a profile schema and the interfaces used to provision and access a profile that conforms to that profile schema. The profile specification also describes the schema of profile tables created from the profile specification by the Administrator. 1.6 Facilities CapabilitiesTo effectively manage application usage, services, event flow and resources it is necessary to monitor and measure the present performance, utilization and availability of these attributes, while estimating future such characteristics. The SLEE specification defines a number of facilities that may be used to satisfy these requirements. Management interfaces typically employ a combination of measurements and alarms to monitor the current status of the network. From these results an administrator can derive the expected future performance. The facilities defined by the SLEE include:
It is the responsibility of the management application to provide recommendations on measurements regarding the categorization, unit of measurement, when and how often collection should be made, and whether or not it is defined as obligatory from a management point of view to present these measurements. 2 ConclusionThe capability set that defines the SLEE principles provides a robust framework and component model for event driven applications. The SLEE was developed for telecommunications systems, however it is generic in design to provide application to other specialized event driven systems. The SLEE defines an architecture enabling traditional proprietary event driven systems in telecommunications and other vertical markets to migrate to off-the-shelf Java platforms. 3 References[1] Sun Microsystems, "The Java Programming Language", 1996. See http://java.sun.com. [2] Sun Microsystems, "JAIN SLEE Specification - JSR 22", 2002. See http://jcp.org/en/jsr/detail?id=22. [3] Sun Microsystems, "Java Community Process Program - JSR 171", 2002. See http://jcp.org/en/jsr/detail?id=171. [4] Sun Microsystems, "Java Message Service - JSR 914", 2002. See http://jcp.org/en/jsr/detail?id=914. [5] Sun Microsystems, "Enterprise JavaBeans Specification - JSR 153", 2002. See http://jcp.org/en/jsr/detail?id=153. [6] Sun Microsystems, "Java Management Extensions Specification - JSR 003", 2002. See http://jcp.org/en/jsr/detail?id=3. [7] Sun Microsystems, "JDBC Specification - JSR 054", 2002. See http://jcp.org/en/jsr/detail?id=54. | ||||||||||||||||||||||||||
|
| ||||||||||||