axs
TRANSCRIPT
-
8/6/2019 AXS
1/18
All Rights Reserved Alcatel-Lucent 2006, #####
AXS Overall architecture
-
8/6/2019 AXS
2/18
All Rights Reserved Alcatel-Lucent 2006, #####
Build on standard infrastructure
JBOSS
AXS
MySql
Eclipse RCP
AXS
RMI
Node
Solaris 10(Linux/Windows)
Windows(Linux/Solaris)
JVM 1.5
JDBC
SNMP
JVM 1.5
JMS
-
8/6/2019 AXS
3/18
All Rights Reserved Alcatel-Lucent 2006, #####
Platform services
Server side functional blocks
SNMPruntime
Platform
Apps
Node 1
nodeplugin
Alarms Sec &Lic
Inventory Backup
SW Download
Templates
NElist
Logging
-
8/6/2019 AXS
4/18
All Rights Reserved Alcatel-Lucent 2006, #####
Application container based
Software engine to deliver applicationsBuild in support for:
component deployment
component wiring component management
distributed transactions
embedded security
resource pooling
component deployment
component wiring extensions
views
editors
embedded help
reporting
Server Client
-
8/6/2019 AXS
5/18
All Rights Reserved Alcatel-Lucent 2006, #####
Component strategy
SOAA component will publish some services
the contract is expressed as a Java API
the service is registered in the JMX server which provides remoting andlookup 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
-
8/6/2019 AXS
6/18
All Rights Reserved Alcatel-Lucent 2006, #####
JBOSS + 3rd party libraries
JMX: the management extensions for Java. It provides a convenient way to expose plain Javaobjects for remote clients. Since JMX provides meta data on the object it exposes, genericclients 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 nicelyacross 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 providestandard support for pooling, monitoring etc.
On top of JBOSS we have added some important libraries:
Hibernate: ORM mapping layer.
y
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
-
8/6/2019 AXS
7/18
All Rights Reserved Alcatel-Lucent 2006, #####
-
8/6/2019 AXS
8/18
All Rights Reserved Alcatel-Lucent 2006, #####
AxS PlatformOur 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.
-
8/6/2019 AXS
9/18
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, ..)
-
8/6/2019 AXS
10/18
All Rights Reserved Alcatel-Lucent 2006, #####
VAP Implementation strategy
Server sideImplement your application as a POJOUse 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
-
8/6/2019 AXS
11/18
All Rights Reserved Alcatel-Lucent 2006, #####
-
8/6/2019 AXS
12/18
All Rights Reserved Alcatel-Lucent 2006, #####
Reference application architecture
-
8/6/2019 AXS
13/18
All Rights Reserved Alcatel-Lucent 2006, #####
Managed Objects
-
8/6/2019 AXS
14/18
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
-
8/6/2019 AXS
15/18
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 metadataHibernateMObject
wrapper around hibernate POJOs
-
8/6/2019 AXS
16/18
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
-
8/6/2019 AXS
17/18
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)
-
8/6/2019 AXS
18/18
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