You are on page 1of 18

AXS Overall architecture

All Rights Reserved Alcatel-Lucent 2006, #####

Build on standard infrastructure

Eclipse RCP JMS AXS RMI JVM 1.5

JBOSS AXS SNMP JVM 1.5 JDBC MySql Node

Windows (Linux/Solaris)

Solaris 10 (Linux/Windows)

All Rights Reserved Alcatel-Lucent 2006, #####

Server side functional blocks

Apps

Inventory

Backup SW Download

Templates

Platform

SNMP runtime

node plugin

Alarms

Sec & Lic

NE list

Loggi ng

Platform services

Node 1

All Rights Reserved Alcatel-Lucent 2006, #####

Application container based Software engine to deliver applications Build in support for:
Server Client

 component deployment  component wiring  component management  distributed transactions  embedded security  resource pooling 

 component deployment  component wiring  extensions  views  editors  embedded help  reporting 

All Rights Reserved Alcatel-Lucent 2006, #####

Component strategy SOA A component will publish some services  the contract is expressed as a Java API  the service is registered in the JMX server which provides remoting and lookup mechanism The component will provide an implementation of those APIs  as much as possible plain Java
Spring is used for exporting a plain Java implementation to JMX

 Spring is used for injection of dependencies  Spring is used for integration with platform services: TX, lookups, The component can be deployed in the application server  packaged as a JBoss service archive  common Service Mbean which will bootstrap plugin through Spring

All Rights Reserved Alcatel-Lucent 2006, #####

JBOSS + 3rd party libraries  JMX: the management extensions for Java. It provides a convenient way to expose plain Java
objects for remote clients. Since JMX provides meta data on the object it exposes, generic clients can be written. The JBOSS distribution contains a web based client, the JMX-console which is very convenient for debugging.

  

JAAS: security standard for JAVA. JBOSS ensures that the session of client propagates nicely
across the technologies (JMX, JMX, ...)

JMS: reliable messaging server. Integrates with JTA, the distributed transaction managed. This
means you can have one transaction which spans multiple transaction aware resources.

JCA: connector support. We have added a connector for SNMP. The connectors provide
standard support for pooling, monitoring etc. On top of JBOSS we have added some important libraries:


y

Hibernate: ORM mapping layer. SNMP4J: SNMP stack. Hot deployment:


code libraries can be dynamically added and removed from the runtime

 

Cluster support: services can be distributed across multiple nodes

All Rights Reserved Alcatel-Lucent 2006, #####

All Rights Reserved Alcatel-Lucent 2006, #####

AxS Platform
Our core classes for node support Support classes for the development of value added applications This package is not hot deployable. So it should be stable over time and as thin as possible.

Node Plugin
A node plugin contains all the code which is required to managed a given node type and version

Value Added Applications


A value added application can be hot deployed. For some applications adaptations to the node models are needed, these adaptations are also separate deployment units.

All Rights Reserved Alcatel-Lucent 2006, #####

Basic EML MObject


life cycle methods with meta data (create, destroy and getCreateMetaData) attribute related methods with meta data (getAttribute, setAttribute, getAttributeNames,...) relation related methods with meta data (getRelationTotype, getRelationMetadata, ..)

All Rights Reserved Alcatel-Lucent 2006, #####

VAP Implementation strategy  Server side


Implement your application as a POJO Use EJB3 (Hibernate) annotations for persistence Send events using the eventBroadcaster utility class. Package your application in a SAR file. Inject all dependencies (db connection, JMS, ...) using Spring Export your service to JMX using the Spring exporter. Provide transaction demarcation using spring AOP

 Client Side
Create a new isolated RCP plugin Choose in which feature this plugin fit's best

All Rights Reserved Alcatel-Lucent 2006, #####

All Rights Reserved Alcatel-Lucent 2006, #####

Reference application architecture

All Rights Reserved Alcatel-Lucent 2006, #####

Managed Objects

All Rights Reserved Alcatel-Lucent 2006, #####

Managed Objects! Some observations  a node has many objects  writing custom code to model this is expensive  writing custom code for the GUI is expensive Solution is to have all those objects implement the Mobject interface  (get/set)Attribute(s)  create/delete  event support (same transparent translation to JMS for remote clients)  extensive metadata on
attributes: read/write, types, ranges, enabledExpressions, create strategy typemetadata: friendly names, security

All Rights Reserved Alcatel-Lucent 2006, #####

Implementing managed objects SNMPMObject  generic implementation which is configured through xml files to represent different objects ReflectionMObject  wrapper around a POJOs  uses annotations for extra metadata HibernateMObject  wrapper around hibernate POJOs

All Rights Reserved Alcatel-Lucent 2006, #####

Dispatcher Dispatcher  findMObject(String name)  registerMObject(String name, Mobject mobject) Interceptors  interceptors can be added on the dispatcher level  interceptors can be added on a per mobject basis

All Rights Reserved Alcatel-Lucent 2006, #####

Generic interceptors Security  will check declarative security on the TypeMetaData and enfore it Logging  debug logging to log4j Exception wrapping  wraps leaking exceptions (non MObjectExceptions)

All Rights Reserved Alcatel-Lucent 2006, #####

Eclipse RCP Main concepts are:  product  features  plugins RCP has good support for:  extension points  views  wiring based on the selected object

All Rights Reserved Alcatel-Lucent 2006, #####

You might also like