JAIN SLEE Dima Ionut Daniel. Contents What is JAIN SLEE? Basic Concepts – Resource Adaptor – Activity/ActivityContext – Events – Services – SBB – Deployable.

Slides:



Advertisements
Similar presentations
J0 1 Marco Ronchetti - Basi di Dati Web e Distribuite – Laurea Specialistica in Informatica – Università di Trento.
Advertisements

SIP Servlets. SIP Summit SIP Servlets Problem Statement Want to enable construction of a wide variety of IP telephony.
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
A Cooperative Approach to Support Software Deployment Using the Software Dock by R. Hall, D. Heimbigner, A. Wolf Sachin Chouksey Ebru Dincel.
1 Mobicents Training JSLEE & SIP Servlets Interoperability through the Mobicents Communications Platform Jean Deruelle, Mobicents SIP Servlets Lead.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
JAVA Technology. Java Technology Java technology is a portfolio of products that are based on the power of networks and the idea that the same software.
Introduction to Enterprise JavaBeans. Integrating Software Development Server-side Component Model Distributed Object Architecture –CORBA –DCOM –Java.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
JSLEE. What is JSLEE ? is an event oriented application middleware. Its main job is to receive events from external resources and deliver these events.
The Architecture of Transaction Processing Systems
WebDynpro for ABAP Short introduction.
J2EE Kenneth M. Anderson CSCI Web Technologies October 3, 2001.
Web Applications Basics. Introduction to Web Web features Clent/Server HTTP HyperText Markup Language URL addresses Web server - a computer program that.
SIP APPLICATION SERVERS & WeSIP SIP APPLICATIONS SERVERS AND WeSIP FOR OpenSER BERLIN
Overview SAP Basis Functions. SAP Technical Overview Learning Objectives What the Basis system is How does SAP handle a transaction request Differentiating.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
The Design Discipline.
EJB. Component Characteristics An enterprise Bean typically contains business logic that operates on the enterprise’s data. An enterprise Bean’s instances.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Apache Mina Dima Ionut Daniel. Contents What is Apache Mina? Why Apache Mina? Mina Architecture Mina Core Mina Advanced JMX Support Spring Integration.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Introduction to J2EE Architecture Portions by Kunal Mehta.
EJB Framework.  As we know, EJB is the center of the J2EE architecture that provides a sturdy framework for building enterprise applications. The major.
Message-Driven Beans and EJB Security Lesson 4B / Slide 1 of 37 J2EE Server Components Objectives In this lesson, you will learn about: Identify features.
第十四章 J2EE 入门 Introduction What is J2EE ?
J2EE Structure & Definitions Catie Welsh CSE 432
SUSE Linux Enterprise Desktop Administration Chapter 12 Administer Printing.
Page  1 A practical investigation of billing for next generation services. Name: Moses T Nkhumeleni Supervisors: Professor Alfredo Terzoli and Mr Mosiuoa.
FI-CORE Data Context Media Management Chapter Release 4.1 & Sprint Review.
Computer Emergency Notification System (CENS)
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Ch 2 – Application Assembly and Deployment COSC 617 Jeff Schmitt September 14, 2006.
A Secure JBoss Platform Nicola Mezzetti Acknowledgments: F. Panzieri.
Collaborate Lesson 4C / Slide 1 of 22 Collaborate Knowledge Byte In this section, you will learn about: The EJB timer service Message linking in EJB 2.1.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Object storage and object interoperability
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Introduction to EJB. What is an EJB ?  An enterprise java bean is a server-side component that encapsulates the business logic of an application. By.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
© Ivelin Ivanov Java.net Communications Community JavaOne 6/2005 Java Users Group, Austin 8/2005 Mobicents The First Certified Open Source Implementation.
©NIIT Introducing Enterprise JavaBeans (EJB) Lesson 1A / Slide 1 of 43J2EE Server Components Objectives In this lesson, you will learn about: The features.
Jetty 9 Dima Ionut Daniel. Contents What is Jetty? History Jetty 9 new features Jetty Configuration Deployment Arhitecture JMX SPDY Handlers WebSocket.
Java Message Service Introduction to JMS API. JMS provides a common way for Java programs to create, send, receive and read an enterprise messaging system’s.
Google Code Libraries Dima Ionut Daniel. Contents What is Google Code? LDAPBeans Object-ldap-mapping Ldap-ODM Bug4j jOOR Rapa jongo Conclusion Bibliography.
Apache Solr Dima Ionut Daniel. Contents What is Apache Solr? Architecture Features Core Solr Concepts Configuration Conclusions Bibliography.
EJB. Introduction Enterprise Java Beans is a specification for creating server- side scalable, transactional, multi-user secure enterprise-level applications.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
Active Directory Domain Services (AD DS). Identity and Access (IDA) – An IDA infrastructure should: Store information about users, groups, computers and.
Business Process Execution Language (BPEL) Pınar Tekin.
Enterprise Java Beans. Contents  Understanding EJBs  Practice Section.
Name of Presentation Red Hat Presenter RED HAT Developer conference Brno 2009 Mobicents/JBCP Pavel Slegr.
z/Ware 2.0 Technical Overview
Java Servlets By: Tejashri Udavant..
Introduction to J2EE Architecture
Oracle Solaris Zones Study Purpose Only
Ch > 28.4.
Understanding and Designing with EJB
Harjutus 3: Aünkroonne hajussüsteemi päring
Objectives In this lesson you will learn about: Need for servlets
Component-based Applications
Software interoperability in the NGN Service layer
Enterprise Java Beans.
Knowledge Byte In this section, you will learn about:
Objectives In this lesson, you will learn about:
Software Development Process Using UML Recap
Presentation transcript:

JAIN SLEE Dima Ionut Daniel

Contents What is JAIN SLEE? Basic Concepts – Resource Adaptor – Activity/ActivityContext – Events – Services – SBB – Deployable Unit – Profiles – Usage Parameters SBB Lifecycle Facilities Management Resource Adaptor Transactions SLEE Vendors Mobicents SLEE – Diameter Base RA Conclusions Bibliography

What is JAIN SLEE? SLEE stands for Service Logic Execution Environment. JAIN stands for Java APIs for Intelligent Networks JAIN SLEE is Java based "Write once – Run anywhere". JAIN SLEE is standardized in Java Community Process: – JAIN SLEE > JSR 22 – JAIN SLEE > JSR 240 JAIN is an enabling set of Java APIs to develop and deploy service driven network applications and services. ~2005

What is JAIN SLEE? (cont.) JSLEE - low latency and high throughput application server for event processing

Basic Concepts Every component type is a Deployable Unit (DU) Concurrency control is implemented by the environment, not the application. JSLEE is event driven and knows producer consumer relationships.

Basic Concepts (cont.) JSR 22 was finished in 03 Mar – defines Service  Resource API interface JSR 240 was finished in 14 Jul – defines Service  Resource Adaptor interface

Basic Concepts Resource Adaptor

External resources are represented in SLEE by Resource Adaptors(RA) RA adapts an external resource for use by services in the SLEE System level component Incoming flow (external resource -> SLEE): modeled as events Outgoing flow (SLEE -> external resource): modeled as method invocations on objects provided by the RA RA submits events via a 'SleeEndpoint'; SLEE routes the events to 0 or more SBBs. A "plugin" adapts a network protocol to JSLEE event based communication.

Basic Concepts Activity/ActivityContext

An Activity is a Java interface that represents a conversation with another system. Commonly Activities model Sessions, Dialogs or Protocol Request / Response pairs Activities are in the resource domain Events are delivered on Activities. Events are routed to SBB that are interested in them Activity ==> Event ==> SBB Each Activity has an ActivityContext. JSLEE does not define the API for an Activity; the Resource Adaptor provides its own APIs.

Activity /ActivityContext (cont.) An Activity object resides within the resource domain. An Activity Context resides in the SLEE domain to represent an underlying Activity object in the resource domain.

Activity /ActivityContext (cont.) An ActivityContext can be in 3 states: – Active – Ending – Invalid The lifecycle state of an ActivityContext is transactional.

Basic Concepts Events

Events represents some occurence of significants. Events originate from a number of places: external places, SLEE, other services SLEE services are triggered by events and process events Events are Deployable Units, having: name, vendor, version. The act of passing an event from its source to its destination is termed "Event Routing" in JSLEE.

Basic Concepts Services

Service is a deployment artifact defined by a Service 'deployment descriptor' that is deployed in the SLEE. Service is a collection of one or more SBBs. One of the SBBs is the 'Root SBB'. A service instance consists of one or more SBB instances of the type of SBB in the Service. SBB instances in the same Service may process events concurrently.

Basic Concepts SBB

SBB stands for Service Building Blocks. An SBB component defines: – event types received and generated by the SBB component – Per-instance state is stored in CMP(Container Managed Persistent) fields that the SLEE manages – Event handler methods. – Local interface methods: defines the operations of the SBB component that may be invoked sync. – Child relations: an SBB component may be composed of 0 or more child SBB components. – Shareable state: SBB defines the state that it may share with the other components as a set of Activity Context properties.

SBB (cont.) An SBB’s component identity uniquely identifies an SBB component: sbb-name + sbb-vendor + sbb-version The SbbID class defines the interface of a Java object that encapsulates an SBB’s component identity. The SBB local interface must extend the javax.slee.SbbLocalObject interface. The SBB abstract class is mandatory and implements the javax.slee.Sbb interface. SBB methods: – Event handler methods – Local interface methods – Life cycle callback methods – An sbbExceptionThrown callback method – An sbbRolledBack callback method – Initial event selector methods

SBB (cont.) An SBB object is an instance of the SLEE generated class that extends the SBB abstract class The SLEE creates and manages a pool of SBB objects. It can receive and fire events, receive synchronous method invocations, and access and update the persistent state of the SBB entity. SBB interfaces and classes naming convention: – SBB abstract class  Sbb – SBB Activity Context Interface interface  SbbActivityContextInterface – SBB local interface  SbbLocalObject

SBB (cont.) The HelloSleeWorldSbb implements the javax.slee.Sbb inteface.

SBB (cont.) The SBB definition is needed for SLEE vendor application server. It contains the abstract SBB class and the events that the SBB is interested in.

SBB (cont.) The deployable unit contains the service xml file that contains the metadata.

Basic Concepts Deployable Unit

Deployable unit A deployable unit is a Jar file that can be installed in the SLEE. A deployable unit may contain Services, SBB jar files, event jar files, Profile Specification jar files, resource adaptor type jar files, resource adaptor jar files, and library jar files. Each of these jar files contain the Java class files and the deployment descriptors of one or more of these components.

Basic Concepts Profiles

Provisioned data required by the SBB to perform its function. E.g. configuration data or per subscriber data. For each Profile Specification, the Profile Specification Developer provides the following parts: – A profile CMP interface – An optional Profile Local Interface The Profile Specification Developer may provide an optional Profile Local interface. This interface declares the methods that should be visible to SLEE Components such as SBBs, Resource Adaptors, or other Profile Specifications.

Basic Concepts Usage Parameters

A usage parameter is a parameter that can be updated by an object in the SLEE to provide usage infomation. It is accessible by the Administrator through the management interface of the SLEE. Each usage parameter is addressed by a hierarchically scoped name: – Notification source name component: identifies the SLEE entity such as an SBB, Profile Table or RA entity. – Usage parameter set name component: identifies a usage parameter set accssible by the notification source. – Usage parameter name component: is the lowest-level scoped name and identifies a usage parameter by the notification source name component.

SBB Lifecycle Does Not Exist state The SBB object does not exist. It may not have been created or it may have been deleted. Pooled state The SBB object exists but is not assigned to any particular SBB entity. Ready state The SBB object in the Ready state is assigned to an SBB entity. It is ready to receive events

Facilities Facilities are standard functional components provided by the SLEE

Facilities (cont.) The SLEE specification defines the following standard Facilities: – Timer Facility for initiating periodic actions – Alarm Facility Used by SBBs, RA, Profiles to request the SLEE to raise or clear alarms. – Trace Facility Generates trace messages intended for consumtion by external management clients. – Activity Context Naming Facility Provides a global flat namespace for naming Activity Contexts – Profile Facility Allows SBBs to obtain the ProfileTable object or ProfileTableActivity object for a specified ProfileTable. – Event Lookup Facility Used by RA to obtain information about the event types installed in the SLEE. – Service Lookup Facility Used by RA to obtain information about the types of events a Service installed in the SLEE may receive.

Management The SLEE specification provides management capabilities for deployable units, Services, Resource Adaptors, Profile Tables, Profiles, the Alarm Facility, and the Trace Facility. A management client manages the SLEE by interacting with a set of SLEE specification defined MBean objects, as defined by the Java Management Extension (JMX) specification. The SLEE Mbean interfaces are Mbeans interfaces defined by the SLEE specification; thise interfaces are defined in the javax.slee.management package. Example Mbean interfaces: SleeManagementMBean, ServiceManagementMBean, ServiceUsageMBnea, AlarmMBean, TraceMBean, ResourceManagementMBean, ProfileTableUsageMBean,etc.

Management (cont.) Requirements of any management client that accesses the SLEE Mbean objects: – Client may only reference a SLEE MBean object by its Object Name. – Client can only invoke a SLEE MBean object through a local or remote MBean Server. There are two approaches to implementing a custom SLEE management client. – implement the client as a MLet MBean. – implement a SLEE management client using the JMX Remote API. The requirements of a management client MLet MBean are: – it can be implemented as any type of MBean supported by the JMX specification. – should implement the javax.management.MBeanRegistration interface.

Management (cont.) There are lots of MBean objects that provide the external management interface of the SLEE.

Resource Adaptor Resources are entities that represent and interact with other systems outside the SLEE, such as network devices, protocol stacks,databases, directories, etc. Resource adaptors adapt particular resources to the requirements of the SLEE. Resource adaptor receives messages from external sources and submits them as events to the SLEE. The SLEE Resource Adaptor architecture consists of APIs which are implemented by the SLEE: – Resource adaptor type Defines the API and a contract that SBB use to interact with the Resource – Resource adaptor Implementation of one or more resource adaptor types. – Resource adaptor entity Represents the mapping within the SLEE of a particular resource as adapted by a RA. Multiple resource adaptor entities may be created from a single RA. – Resource adaptor object RA objects are Java objects that the SLEE uses to interact with RA entities. – SLEE Endpoint Integrace used by a RA object to start Activities, fire Events on Activities and end Activities.

Resource Adaptor (cont.)  Meta model of the Resource Adaptor architecture

Resource Adaptor (cont.) A resource adaptor entity can be in one the following 3 operational states: – Inactive The RA entity is ready to be activated. – Active The RA adaptor entity has been activated. – Stopping The RA entity is being deactivated.

Resource Adaptor (cont.) Resource adaptor class requirements: – RA class must be defined in a named package. – class must implement javax.slee.resource.ResourceAdaptor interface – class must be defined as public and cannot be abstract or final. – class must have a public no-argument constructor Resource adaptor object lifecycle: – Unconfigured state – Inactive state – Active state – Stopping state

Transactions All SLEEs must implement the transactional semantics defined in this specification. All transactions are isolated from each other at the serializable isolation level. The SLEE starts a transaction prior to a SLEE originated invocation sequence. A resource adaptor object may also start and commit or rollback transactions for its own use.

Transactions A transaction may be in one of the following states: – Active: Transaction is typically created and initialized prior to the SLEE originated invocation sequence. – Committing On successful completion of SLEE originated invocation sequence the transaction transitions from Active to Committing state. – Committed Transition enters in this state when a heuristic has likely been applied. – Marked for Rollback Extension of the transaction life cycle provided by the SLEE. – Rolling Back A transaction in this state is in the process of rolling back. – Rolled Back Tra.nsaction has been aborted

SLEE Vendors There are 2 SLEE vendors: 1.Mobicents 2.Rhino from OpenCloud Mobicents is an Open Source VoIP Platform written in Java to help create, deploy, manage services and applications integrating voice, video and data across a range of IP and legacy communications networks. OpenCloud Rhino Telecom Application Server is the world-leading converged carrier-grade Telecom Application Server (TAS). Rhino Telecoms Application Server complies with both Java telecom application server standards – JAIN SLEE (JSLEE) and SIP Servlet.

Mobicents SLEE Mobicents can be installed on Tomcat or Jboss. The Mobicents managements can be found at

Mobicents SLEE (cont.) The JAIN SLEE specification includes an API for interaction with JAIN SLEE container. External applications can connect via interface javax.slee.connection.SleeConnectionFactory and fire events. JAIN SLEE provides two different implementations of the API, one for access in the same JVM, another for remote access.

Mobicents SLEE (cont.) Mobicents JSLEE Twiddle is command line tool, based on JBoss JMX. Mobicents JSLEE Twiddle acts on base of command and operation. Command supports various operations. Operation is aware of specific resource that needs to be called and how it should be accessed to perform certain task.

Mobicents SLEE (cont.) twiddle.sh [options] [command_arguments] slee command interacts with javax.slee.management:name=SleeManagement

Mobicents Diameter Base RA

Diameter Base Resource Adaptor Type is defined by Mobicents team as part of effort to standardize RA Types. Diameter Base Type defines the following Activities: – AuthClientSessionActivity: client side of Base Authentication session. Abort-Session-Request (ASR) and Re-Auth-Request (RAR) messages are received in this Activity – AuthServerSessionActivity: represents server side of Base Authentication session. – AccountingClientSessionActivity: represents client side of Base Accounting session. Accounting-Request (ACR) messages can be created and sent in this Activity. – AccountingServerSessionActivity: represents server side of Base Accounting session. Accounting-Request(ACR) messages are received in this Activity. – DiameterActvity: represents a generic Diameter session

Diameter Base RA (cont.) Events received on Authorization Client Activity : SessionTerminationRequest, AbortSessionAnswer, ReAuthAnswer, ErrorAnswer, AbortSessionRequest, SessionTerminationAnswer, ReAuthRequest, ErrorAnswer. Events received on Accounting Server Activity: AccountingRequest Events received on Accounting Client Activity: AccountingAnswer, ErrorAnswer. Events received on Generic Diameter Activity: ExtensionDiameterMessage, ErrorAnswer, CapabilitiesExchangeRequest, CapabilitiesExchangeAnswer, DeviceWatchdogRequest, DeviceWatchdogAnswer, DisconnectPeerRequest, DisconnectPeerAnswer. The Mobicents Diameter Base Resource Adaptor SBB Interface provides SBBs with access to the Diameter objects required for creating and sending messages using the interface DiameterProvider.

Conclusions JAIN SLEE is used in the telephony. For telephony, data and wireless communications networks the API brings: – Service portability – Network independe – Open development SLEE can be used to interface with other application servers and services.

Bibliography JAIN SLEE (JSLEE) 1.1 Specification, Final Release Mobicents User Guide