schmidt@informatik.
haw-hamburg.de
Module Development using Spectrum
> Specific Applications
> General Concept Overview
> Development Details
schmidt@informatik.
haw-hamburg.de
Specific Applications
Everything is based on MIBs …
>
A
specific device may combine a (unique) collection of known MIBs>
An
application may provide specific functions on a known MIB>
A new,
specific MIB may be added to the NMS and introduce newfunctional entities, subject to application programming
⇒ A need for continuous development of extensions/ new functions for a NMS
schmidt@informatik.
haw-hamburg.de
Aspects of Developments
> New MIB
– Provides new managed Objects and OIDs – Gives rise to new application
> New Device
– Requires modelling of type and (new) functions – Needs discoverable identification
– May combine common and new applications
> New Application
– Provides processing of objects: polling/setting, views, events … – May implement new device-specific or core functions
schmidt@informatik.
haw-hamburg.de
Implementation Requirements
A NMS needs to identify/implement the concepts of new entities:
> A device is a contactable entity, implementing a specific information model (MIBs), associating general and specific applications
> Devices are of different types (e.g. routers, switches, hosts …)
> A device carries specific sub-entities, e.g. interfaces of common or specific type, associated with specific functions
> Devices share a semantic of individual information and of interaction
> Devices (partly) share applications and functions
⇒ An oo analogue could serve as promising approach
schmidt@informatik.
haw-hamburg.de
Device Concepts by Inheritance
schmidt@informatik.
haw-hamburg.de
Spectrum Concepts
Spectrum implements an oo information model within a relational meta- database:
> The ‘classes’ are called Model Types
> Models, the ‘objects’, are instances of Model Types
> ‘Methods’ and ‘parameters’ are
– attributes representing MIB variables and internal data + logic – functions on attributes, processing their semantic
– named relations, representing specific interactions of models
– meta-rules comprise a relations, representing how it is applied (as SPO triples)
> ‘Interfaces’ are built from MIBs and internal attribute groups
> There is full (multiple) inheritance
schmidt@informatik.
haw-hamburg.de
Conceptual Data Model
schmidt@informatik.
haw-hamburg.de
Model Type Attribute Inheritance
schmidt@informatik.
haw-hamburg.de
Model Type Attribute Hierarchy
schmidt@informatik.
haw-hamburg.de
Building Models by Inheritance
schmidt@informatik.
haw-hamburg.de
Relations & Meta-Rules
> Define a relation Contains
> Contains consists of the rules
Country Contains Building Building Contains Floor Floor Contains Room
> Spectrum can do inference: Country Contains Room
> Spectrum can ‘understand’: Room is in Floor is in Building is in Country
> Other predefined relations: collects, haspart, is_adjacent_to, links_with, manages, provides, connects_to, …
> Can define own relations and rules
schmidt@informatik.
haw-hamburg.de
Implementing on Spectrum
Command Line Interface:
> Implement operational scripts I/O – Interfaces:
> Communicate with other application Modelling tools:
> Configure new management modules, extend existing functions
Spectrograph:
> Define/configure new views/applications Corba API:
> Develop new/extend client applications
schmidt@informatik.
haw-hamburg.de
Easy Modelling:
Device Model Type Development
1. Start from GnSNMPDev
2. Import MIB ⇒ MIB attributes known
3. Derive device ⇒ Discoverable device model type with standard attributes
4. Configure device model type specific views
⇒
device specific structure for model type
5. Configure application views ⇒ specific views available
Device Model Type Derivation
schmidt@informatik.
haw-hamburg.de
schmidt@informatik.
haw-hamburg.de
The Steps of Application Model Type Development
1. Import MIB ⇒ MIB known as independent MIB model type 2. Derive application ⇒ Discoverable, empty application
model type
3. Initialise SpectroGraph standard views
⇒ default application framework for model type 4. Configure model type specific view structure
⇒ application specific menus for model type 5. Configure application views ⇒ specific views available 6. Add device specific functions
7. Add traps, events, alarms
Application Model Type Derivation
schmidt@informatik.
haw-hamburg.de
schmidt@informatik.
haw-hamburg.de
Derivation Points
schmidt@informatik.
haw-hamburg.de
Example
> Develop an application model type for the device IPhone
with private MIB IPhoneMIB of vendor IPhoneInc
> The device brings ‘virtual voice ports’ as new kinds of
interfaces
schmidt@informatik.
haw-hamburg.de
1. Import MIB
> Stop SpectroServer!
> Use model type editor to identify derivation point GnSNMPMibDerPt
> Generate new Model: IPhoneMIB
> Import MIB by providing the correct SMI root-path,
private.enterprise (1.3.6.1.4.1) in our example
schmidt@informatik.
haw-hamburg.de
Model Type Editor:
Model
Derivation
schmidt@informatik.
haw-hamburg.de
Model Type Editor: Attribute View
schmidt@informatik.
haw-hamburg.de
2. Derive Application Model
> Use model type editor to identify derivation point GnSNMPAppDerPt
> Generate new Model: IPhoneApp
> Identify discovery attribute (mandatory, unique, simple) from MIB: e.g. IPhoneLabel
> Put Attribute ID (of IPhoneLabel) as value of default_attr
> Mark model as Instantiable
schmidt@informatik.
haw-hamburg.de
MTE Attribute Identifikation
schmidt@informatik.
haw-hamburg.de
3. Initialize SpectroGraph’s Standard Views
> SpectroGraph uses simple text files for configuration
> Initial files are produced by the script mmbuild:
– change to <SpectrumHome>/SG-Tools
– run sh mmbuild –f –i <baseModelType>
<modelType> <modelTypeVendor>
i.e. … GnSNMPAppDerPt IPhoneApp IPhoneInc
> Starting Server and Graph
will allow to discover:
schmidt@informatik.
haw-hamburg.de
4. Configure Application View Structure
To add sub menus edit IIB-files produced previously
– change to <SpectrumHome>/SG-Support/CsIib/IPhoneapp
– edit file GnApDr.AIBase, see
– First line: menu entry with click zone on icon – Second line: only menu entry
– Menu entry follows syntax
GoGibNW( <Menu Name>, GENERIC, <GIB File>)
schmidt@informatik.
haw-hamburg.de
5. Configure Specific Views
To configure specific views place/edit GIB-files
– stay in <SpectrumHome>/SG-Support/CsGib/IPhoneapp
– copy default file CsPerform.30, to <my-menue-file>.30
– start SpectroGraph
– navigate down new menu entry and edit view – Design your application by
Edit → New ….
schmidt@informatik.
haw-hamburg.de
Visualisation: Fields & Graphs
schmidt@informatik.
haw-hamburg.de
Complex Graphs
schmidt@informatik.
haw-hamburg.de
Graph Attribute Dialogs
schmidt@informatik.
haw-hamburg.de
5.a Tables
Full graphical editing of tables is not supported …
… to insert/design a table:
– From GIB-view editing select table type, e.g.
Edit → New Non-attribute Field → Sorted Table
– Define basic table graphical attributes and the name of the table description file IPhoneApp/<mytable>.GTb
– Get default table description file by, e.g., copying
<SpectrumHome>/SG-Support/CsGib/SNMP2_Agent/CsTCPConTb.GTb To <SpectrumHome>/SG-Support/CsGib/IPhoneapp/<mytable>.GTb
schmidt@informatik.
haw-hamburg.de
Table Column Descriptors
Edit table descriptor file and define columns
– Select table column extension type (value processing) – Use attribute browser to find out attribute handles
schmidt@informatik.
haw-hamburg.de
Attribute Browser
schmidt@informatik.
haw-hamburg.de
6. Add Device Specific Functions
Our sample application supports new virtual voice interfaces (with index voiceIfIndex and state voiceIfState):
> Go back to Model Type Editor and add Base Model Types
GnDevIODerPt and GnPortUI_MF to IPhoneApp
> Define the basic port attributes/handles:
– voiceIfIndex → portIndex_Attr
– “GnInvMd” → altPibPrefix (construct ‘invisible’ Board) – “3d000a” → portGroupdMth (generic Board handle, to
provide haspart-relation) – voiceIfState → status_Attr
> Define port stati and colors in statusEnum_VTC as
“0,down,121,1,up,123”
> Now an operational interface board is defined (including views)
schmidt@informatik.
haw-hamburg.de
7. Traps, Events, Alarms
Spectrum operates traps on a 3-layer mapping:
Alerts (traps) → Events (intern. notification object) → Alarms AlertMap:
with
Events are processed according to Event Display File:
<eventcode> E <eventseverity> <processing parameters>
Example for Alarm:
<eventcode> E <eventseverity> A <alarmseverity>, <alarmcause>
Many other (conditional) event processing options ….
schmidt@informatik.
haw-hamburg.de
schmidt@informatik.
haw-hamburg.de
Developing new
Clients & Core Functions
> New Clients
– Program in C++ to extend SpectroGraph
– Program in Java to extend Web application OneClick – Develop own specific client
> New Core Functions
– Implement new types, model types, relations, inferences … to support new kinds of applications
– Extend core libraries (through Corba API) to add corresponding kernel functions – Examples: SNMPv3, IPv6-native mgmt., …
> This is so called Level 2 Programming …
schmidt@informatik.
haw-hamburg.de
Common Acronyms
> PIB: Perspective Information Block (PIB), a PIB file maps a model type to a IIB file for a specific view type (Topology, Location …), so SpectroGRAPH knows which icon is appropriate for any given model type.
> IIB: Icon Information Block, files defining the appearance of an icon. They contain information about the icon size, background image on the icon, and the sub-icons contained within the primary icon. CsIib files also contain the submenu picks available for the icon, and what actions or views launch from these submenu picks.
> GIB: Graphical Information Block, GIB files are related to a particular model type and are contained in a sub-directory of the GIB directory that is named for the model type.
– The files with a .30 extension define the contents of a particular GIB view.
– Files with a .GTb extension define tables that are present in a GIB view.
> TIB: Table Information Block, defined in .GTb – Files
> GnSNMPAppDerPt: Generic SNMP Application Derivation Point
schmidt@informatik.
haw-hamburg.de
Reading:
ªAprisma: SPECTRUM Concepts Guide
ªAprisma: Generic SNMP Device Management User Guide and Toolkit ª Aprisma: GIB Editor User’s Guide