Name of Presentation Red Hat Presenter Sochi ,  Russia D e cem ber 201 1 Mobicents JAIN SLEE
 
1.1  JAIN SLEE: Introduction <ul><li>Low latency and high throughput application/service environment for event processing ...
1 .2  JBCP  JAIN SLEE 2. x :  Overview <ul><li>JAIN SLEE 1.1 </li></ul><ul><li>JBoss EAP 5 </li></ul><ul><li>High Availabi...
 
1.3  Tools <ul><li>JBoss AS JMX Console </li></ul><ul><li>GWT Management Console </li></ul><ul><li>JBoss Operations Networ...
1.4  Development Tools <ul><li>Eclipse SLEE Plugin </li></ul><ul><li>Apache Maven2 Plugins, Repositories, Dependency Manag...
1.5  Resource Adaptors <ul><ul><li>JAIN SIP (with Early Dialog Failover) </li></ul></ul><ul><ul><li>(Apache) HTTP Client <...
1.6  Application  Enablers <ul><li>Reusable components (SBBs), which provide high level and easy to use interfaces </li></...
1 .7  Added Value <ul><li>Remote SLEE Connection Tool (Remote J ava EE  event firing into SLEE) ‏ </li></ul><ul><li>Media ...
 
2 .1  A chievements <ul><li>Mobicents SLEE 2.x </li></ul><ul><ul><li>Smooth Cluster Management (e.g. add/remove nodes) </l...
2 .2  Shortcomings <ul><li>Mobicents 3.x Slow Progress </li></ul><ul><ul><li>JBoss AS7 Late Release  </li></ul></ul><ul><u...
 
3 . 1   Smooth Service Upgrade <ul><li>SLEE standard management interfaces includes an operation to deactivate and activat...
3 . 2   Persistent RA Entity Management <ul><li>Users may use the deploy-config.xml to define Resource Adaptor Entity and ...
3 . 3   Fault Tolerant RA Timer // ra code retrieving the timer, configuring it and submiting a task public void setFaultT...
3 . 4   ChildRelation Extension <ul><li>Extension to JAIN SLEE 1.1, introduces the org.mobicents.slee.ChildRelationExt int...
3 . 5   SbbLocalObject Extension <ul><li>Extension to JAIN SLEE 1.1, introduces the org.mobicents.slee.SbbLocalObjectExt i...
3 . 6   JDBC  Resource Adaptor <ul><li>Allows efficient interaction with JDBC Datasources </li></ul><ul><li>Asynchronous e...
3 . 7   REST Client Application Enabler (1) <ul><li>Allows SLEE applications to integrate logic for easy interaction with ...
3 . 7   REST Client Application Enabler (2) /**   * Event handler for the service activation event.   * @param event   * @...
3.8  EclipSLEE 2.0 <ul><li>Updated Eclipse Plugin for Mobicents JAIN SLEE 2.x, which targets experienced developers too! <...
3 . 9   SLEE Management Console <ul><li>The new Web Console, based on the old GWT console lost in Mobicents JAIN SLEE 1.x ...
 
4 .1  Roadmap <ul><li>2.6.0.FINAL (15 th  Dec 2011) </li></ul><ul><ul><li>JSR 309 Resource Adaptor & Demo Application BETA...
4 . 2   W hat about 3.x? <ul><li>AS7 difficult to extend </li></ul><ul><li>Distributed mode Memory Caches too “young” (Inf...
Thanks!
Upcoming SlideShare
Loading in …5
×

Mobicents JSLEE progress and roadmap - Mobicents Summit 2011

1,167 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,167
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
20
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Mobicents JSLEE progress and roadmap - Mobicents Summit 2011

  1. 1. Name of Presentation Red Hat Presenter Sochi , Russia D e cem ber 201 1 Mobicents JAIN SLEE
  2. 3. 1.1 JAIN SLEE: Introduction <ul><li>Low latency and high throughput application/service environment for event processing </li></ul><ul><li>Designed for stringent requirements of core network signalling application, and to support scalability and availability through clustering </li></ul><ul><li>The environment provides common behaviour to all services: </li></ul><ul><ul><li>Managing component life-cycle (install/activate/deactivate/uninstall,…) </li></ul></ul><ul><ul><li>Generating traces & alarms, managing resources, user statistics; </li></ul></ul><ul><ul><li>Common behaviour is not re-developed for each and every service, the service developer only cares about service logic </li></ul></ul><ul><li>The necessity to introduce SLEE as a standard: </li></ul><ul><ul><li>Components cannot be reused / dependency on vendor </li></ul></ul><ul><ul><li>Components developed / deployed on one proprietary SLEE can't communicate with components developed/deployed in other proprietary SLEE </li></ul></ul>JAIN SLEE is the standardized JAVA SLEE
  3. 4. 1 .2 JBCP JAIN SLEE 2. x : Overview <ul><li>JAIN SLEE 1.1 </li></ul><ul><li>JBoss EAP 5 </li></ul><ul><li>High Availability + Fault Tolerance with JBoss Cache 3.x </li></ul><ul><ul><li>High Performance (1100+ SIP UAS cps in a low class server) ‏ </li></ul></ul><ul><ul><li>Low Latency </li></ul></ul><ul><ul><li>Fault Tolerant Resource Adaptor API </li></ul></ul><ul><li>JAIN SLEE 1.1 Profiles Mapped to JPA on Hibernate </li></ul><ul><ul><li>Full control on how the data is persisted / loaded </li></ul></ul><ul><li>Management beyond JMX (Web Console, Twiddle CLI, JBoss ON Plugin) </li></ul><ul><li>Misc Features </li></ul><ul><ul><li>Congesture Control </li></ul></ul><ul><ul><li>Event Router Statistics </li></ul></ul><ul><ul><li>Simplified Logging Configuration </li></ul></ul><ul><ul><li>JAIN SLEE 1.1 Extensions </li></ul></ul>
  4. 6. 1.3 Tools <ul><li>JBoss AS JMX Console </li></ul><ul><li>GWT Management Console </li></ul><ul><li>JBoss Operations Network Console </li></ul><ul><li>Twiddle Command Line Interface </li></ul>
  5. 7. 1.4 Development Tools <ul><li>Eclipse SLEE Plugin </li></ul><ul><li>Apache Maven2 Plugins, Repositories, Dependency Management , Archetypes </li></ul><ul><li>Apache Ant Scripts </li></ul>
  6. 8. 1.5 Resource Adaptors <ul><ul><li>JAIN SIP (with Early Dialog Failover) </li></ul></ul><ul><ul><li>(Apache) HTTP Client </li></ul></ul><ul><ul><li>HTTP Servlet (requests on a specific servlet are transformed in JSLEE events) </li></ul></ul><ul><ul><li>JAIN MGCP </li></ul></ul><ul><ul><li>XCAP Client (proprietary API) ‏ </li></ul></ul><ul><ul><li>XMPP Component & Client (Extended Smack API) ‏ </li></ul></ul><ul><ul><li>Diameter Base, Sh Client, Sh Server, CCA, Rf, Ro, Cx/Dx, Gq, Gx, Rx </li></ul></ul><ul><ul><li>SMPP v5 </li></ul></ul><ul><ul><li>JCC </li></ul></ul><ul><ul><li>MAP </li></ul></ul><ul><ul><li>JDBC </li></ul></ul><ul><ul><li>TFTP Server </li></ul></ul>
  7. 9. 1.6 Application Enablers <ul><li>Reusable components (SBBs), which provide high level and easy to use interfaces </li></ul><ul><ul><li>HSS Client </li></ul></ul><ul><ul><li>REST Client </li></ul></ul><ul><ul><li>SIP Event Publication Client </li></ul></ul><ul><ul><li>SIP Event Subscription Client </li></ul></ul><ul><ul><li>XDM Client </li></ul></ul>
  8. 10. 1 .7 Added Value <ul><li>Remote SLEE Connection Tool (Remote J ava EE event firing into SLEE) ‏ </li></ul><ul><li>Media Server 2.x </li></ul><ul><li>SIP Load Balancer </li></ul><ul><li>Fault Tolerant Diameter Stack </li></ul><ul><li>SS7 Framework </li></ul>
  9. 12. 2 .1 A chievements <ul><li>Mobicents SLEE 2.x </li></ul><ul><ul><li>Smooth Cluster Management (e.g. add/remove nodes) </li></ul></ul><ul><ul><li>Zero Downtime Service Upgrades </li></ul></ul><ul><ul><li>30% Performance Increase (compared with 2.2) ‏ </li></ul></ul><ul><ul><li>ChildRelationExt & SbbLocalObjectExt (JAIN SLEE 1.1 Extensions) </li></ul></ul><ul><ul><li>5 New Resource Adaptors + 1 New Application Enabler </li></ul></ul><ul><ul><li>EclipSLEE 2.x </li></ul></ul><ul><li>6 Releases </li></ul><ul><ul><li>50+ Major Features Developed </li></ul></ul><ul><ul><li>100+ Minor Features & Fixes </li></ul></ul><ul><li>Around 7000 Downloads </li></ul><ul><ul><li>2010/11 to 2011/11 </li></ul></ul>
  10. 13. 2 .2 Shortcomings <ul><li>Mobicents 3.x Slow Progress </li></ul><ul><ul><li>JBoss AS7 Late Release </li></ul></ul><ul><ul><li>JBoss Infinispan not ready for primetime </li></ul></ul><ul><li>Code Contributions </li></ul><ul><ul><li>Almost null </li></ul></ul><ul><ul><li>Weak developer documentation does not helps </li></ul></ul><ul><li>RHQ/JON Console </li></ul><ul><ul><li>UI Limitations </li></ul></ul><ul><ul><li>Weak Performance </li></ul></ul><ul><ul><li>Not ready to run </li></ul></ul>
  11. 15. 3 . 1 Smooth Service Upgrade <ul><li>SLEE standard management interfaces includes an operation to deactivate and activate 2 services in a single step </li></ul><ul><ul><li>Services are not active at same time </li></ul></ul><ul><ul><li>Services are not inactive at same time </li></ul></ul><ul><li>Supported also by Persistent File Deployer </li></ul><ul><ul><li>When activating a service, if there is currently a service with same ID, but different version, then smooth upgrade is performed </li></ul></ul>
  12. 16. 3 . 2 Persistent RA Entity Management <ul><li>Users may use the deploy-config.xml to define Resource Adaptor Entity and Resource Adaptor Links </li></ul><ul><li>When installing/uninstalling a Resource Adaptor, SLEE reads a deploy-config.xml file in its deploy directory, searching for additional RA Entities or Links related to the RA, to be created/removed </li></ul><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <deploy-config> <ra-entity resource-adaptor-id=&quot;ResourceAdaptorID[name=JainSipResourceAdaptor,vendor=net.java.slee.sip,version=1.2]&quot; entity-name=&quot;SipRA&quot;> <properties> <property name=&quot;javax.sip.PORT&quot; type=&quot;java.lang.Integer&quot; value=&quot;5070&quot; /> <property name=&quot;org.mobicents.ha.javax.sip.BALANCERS&quot; type=&quot;java.lang.String&quot; value=&quot;10.34.0.1:5065&quot; /> </properties> <ra-link name=&quot;SipRA&quot; /> </ra-entity> </deploy-config>
  13. 17. 3 . 3 Fault Tolerant RA Timer // ra code retrieving the timer, configuring it and submiting a task public void setFaultTolerantResourceAdaptorContext( FaultTolerantResourceAdaptorContext<SipActivityHandle, String> context) { FaultTolerantTimer timer = context.getFaultTolerantTimer(); timer.config(new FaultTolerantTimerTaskFactoryImpl(this), 4); FaultTolerantTimerTaskDataImpl data = new FaultTolerantTimerTaskDataImpl(&quot;xyz&quot;); FaultTolerantTimerTaskImpl task = new FaultTolerantTimerTaskImpl(this, data); timer.schedule(task, 30, TimeUnit.SECONDS); } <ul><li>The standard Resource Adaptor Context provides a java.util.Timer, which can be used by the Resource Adaptor to schedule the execution of tasks </li></ul><ul><li>The Fault Tolerant Resource Adaptor Context provides org.mobicents.slee.resource.cluster.FaultTolerantTimer, an alternative scheduler which is able to fail over tasks scheduled. </li></ul><ul><ul><li>Interface similar to JDK's ScheduledExecutorService, with a few changes to allow a proper interaction in a cluster environment </li></ul></ul>
  14. 18. 3 . 4 ChildRelation Extension <ul><li>Extension to JAIN SLEE 1.1, introduces the org.mobicents.slee.ChildRelationExt interface, which extends javax.slee.ChildRelation with methods to create and retrieve SBB entities by name. </li></ul>package javax.slee; public interface ChildRelation extends Collection { public SbbLocalObject create() throws CreateException, TransactionRequiredLocalException, SLEEException; } package org.mobicents.slee; public interface ChildRelationExt extends ChildRelation { public SbbLocalObjectExt create(String name) throws CreateException, TransactionRequiredLocalException, SLEEException; public SbbLocalObjectExt get(String name) throws TransactionRequiredLocalException, SLEEException; }
  15. 19. 3 . 5 SbbLocalObject Extension <ul><li>Extension to JAIN SLEE 1.1, introduces the org.mobicents.slee.SbbLocalObjectExt interface, which extends javax.slee.SbbLocalObject with methods to retrieve the parent SBB, if any, and to also retrieve information such as the child name, and the parent child relation name. </li></ul>public interface SbbLocalObject { public boolean isIdentical(SbbLocalObject obj) throws TransactionRequiredLocalException, SLEEException; public void setSbbPriority(byte priority) throws TransactionRequiredLocalException, NoSuchObjectLocalException, SLEEException; public byte getSbbPriority() throws TransactionRequiredLocalException, NoSuchObjectLocalException, SLEEException; public void remove() throws TransactionRequiredLocalException, TransactionRolledbackLocalException, SLEEException; } public interface SbbLocalObjectExt extends SbbLocalObject { public String getChildRelation() throws TransactionRequiredLocalException, SLEEException; public String getName() throws NoSuchObjectLocalException, TransactionRequiredLocalException, SLEEException; public SbbLocalObjectExt getParent() throws NoSuchObjectLocalException, TransactionRequiredLocalException, SLEEException; }
  16. 20. 3 . 6 JDBC Resource Adaptor <ul><li>Allows efficient interaction with JDBC Datasources </li></ul><ul><li>Asynchronous execution of JDBC statements, using RA ’ s own thread pool </li></ul><ul><li>Applications provides not only the logic used to interact with JDBC, but also the result SLEE event </li></ul><ul><ul><li>… w hich means that applications become truly event oriented, as everything else in SLEE </li></ul></ul>// build task SimpleJdbcTask task = new SimpleJdbcTask() { @Override public Object executeSimple(JdbcTaskContext context) { try { Connection connection = context.getConnection(); PreparedStatement preparedStatement = connection .prepareStatement(&quot;INSERT INTO TestTable VALUES(?)&quot;); preparedStatement.setString(1, &quot;Mobicents&quot;); return true; } catch (Exception e) { tracer.severe(&quot;faile to execute task&quot;, e); return false; } } }; // requests execution of the task on the jdbc activity jdbcActivity.execute(task); public void onSimpleJdbcTaskResultEvent( SimpleJdbcTaskResultEvent event, ActivityContextInterface aci) { tracer.info(&quot;Received a SimpleJdbcTaskResultEvent,” + task = “ + event.getTask() + &quot;, result object = &quot; + event.getResult()); }
  17. 21. 3 . 7 REST Client Application Enabler (1) <ul><li>Allows SLEE applications to integrate logic for easy interaction with REST web services </li></ul><ul><li>Hides the complexity of dealing with HTTP Client Resource Adaptor </li></ul><ul><li>Relies on Signpost API to handle OAuth authentication and authorization procedures </li></ul>
  18. 22. 3 . 7 REST Client Application Enabler (2) /** * Event handler for the service activation event. * @param event * @param aci */ public void onServiceStartedEvent(ServiceStartedEvent event, ActivityContextInterface aci) { tracer.info(&quot;Mobicents SLEE REST Client Enabler Example service activation.&quot;); try { RESTClientEnablerChild child = (RESTClientEnablerChild) getChildRelation() .create(ChildRelationExt.DEFAULT_CHILD_NAME); String uri = twitterStatusUpdateBaseURI + URLEncoder.encode( &quot;Mobicents SLEE REST Client Application Enabler Example ACTIVATED - &quot; + new Date(), &quot;UTF-8&quot;); RESTClientEnablerRequest request = new RESTClientEnablerRequest( RESTClientEnablerRequest.Type.POST, uri) .setOAuthConsumer(consumer); child.execute(request); } catch (Exception e) { tracer.severe(&quot;failed to post service activation to twitter&quot;, e); } } @Override public void onResponse(RESTClientEnablerChildSbbLocalObject child, RESTClientEnablerResponse response) { // process the rest service response // … }
  19. 23. 3.8 EclipSLEE 2.0 <ul><li>Updated Eclipse Plugin for Mobicents JAIN SLEE 2.x, which targets experienced developers too! </li></ul><ul><li>Fully supports JAIN SLEE 1.1 Components </li></ul><ul><ul><li>EclipSLEE 1.x.y created a mix of SLEE 1.0 and SLEE 1.1 components </li></ul></ul><ul><li>Fully supports the Mobicents JAIN SLEE 1.1 Extensions </li></ul><ul><li>Create projects using Maven structure as currently used in Mobicents developed components and examples </li></ul><ul><li>Easy to integrate the Resource Adaptors and Application Enablers bundled in Mobicents JAIN SLEE distribution </li></ul><ul><li>Easy build and deployment/undeployment by using the Eclipse M2 support </li></ul>
  20. 24. 3 . 9 SLEE Management Console <ul><li>The new Web Console, based on the old GWT console lost in Mobicents JAIN SLEE 1.x </li></ul><ul><li>Pre-deployed in Mobicents JAIN SLEE </li></ul><ul><li>Much faster and simple interface, compared with JON console </li></ul>
  21. 26. 4 .1 Roadmap <ul><li>2.6.0.FINAL (15 th Dec 2011) </li></ul><ul><ul><li>JSR 309 Resource Adaptor & Demo Application BETA </li></ul></ul><ul><ul><li>GWT Management Console </li></ul></ul><ul><ul><li>EclipSLEE 2.0 FINAL </li></ul></ul><ul><ul><li>Persistent RA Entity Management </li></ul></ul><ul><ul><li>SIP JDBC Registrar Example Application </li></ul></ul><ul><li>2.7.0.FINAL (31 st Mar 2012) </li></ul><ul><ul><li>SNMP Monitoring (Traces, Alarms, Usage Stats) </li></ul></ul><ul><ul><li>SS7 Demo Application </li></ul></ul><ul><ul><li>SS7 CAP Resource Adaptor </li></ul></ul><ul><li>2.8.0.FINAL (31 st Jun 201 2 ) </li></ul><ul><ul><li>Enhanced Sync Cluster Replication </li></ul></ul><ul><ul><li>Clustered Usage Stats </li></ul></ul><ul><ul><li>XMPP Server Resource Adaptor </li></ul></ul>
  22. 27. 4 . 2 W hat about 3.x? <ul><li>AS7 difficult to extend </li></ul><ul><li>Distributed mode Memory Caches too “young” (Infinispan, Hazelcast, etc.) </li></ul><ul><li>JAIN SLEE specification revision about to begin </li></ul><ul><li>Short on SLEE developers </li></ul>
  23. 28. Thanks!

×