+ All Categories
Home > Documents > N(i)2 technical architecture 2.0 (v1 1)

N(i)2 technical architecture 2.0 (v1 1)

Date post: 22-May-2015
Category:
Upload: kvz
View: 469 times
Download: 0 times
Share this document with a friend
Popular Tags:
65
9 February 2006 The N(i) 2 Suite Technical Architecture Partner Training
Transcript
Page 1: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

The N(i)2 SuiteTechnical Architecture

Partner Training

Page 2: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 2

Outline

N(i)2 Technical Architecture> Overview

> Strategy

> Components

> Deployment

N(i)2 CMDB Platform> Object Model

> Workflow

> Meta-data

> Reconciliation

> Spatial/Location

> Admin

> License

> Content

> Discovery

> L10n, i18n

N(i)2 Interface

> Scripting / Default Values

> API

Conclusion

Page 3: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

Technical Architecture

Page 4: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 4

Overview

Open, Standard and Scalable> Java2 & XML technologies

> OSS/J-like API and Web Services for interoperability

> Multi-tier client architecture

Simple, Straightforward, Maintainable> Proven architectural design patterns

> Component-based

> Plug-and-play modules (cartridges)

Configurable> XML-based Model-Driven Architecture for object model definition and business workflow processes

> Workflow / Business rules engine

Page 5: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 5

Strategy

Component-based architecture> Do not reinvent the wheel strategy

> Reuse and leverage

3rd party components> J2EE 2.0 Application Server like JBoss (free) or BEA WebLogic (commercial product)

> JDBC compliant database (PostgreSQL, Oracle 10g)

> Graphical / Geographical data support (PostGIS, Oracle Spatial)

> Workflow engine for the “Business Process Automation”

> …

Page 6: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 6

Components

Application-tier> OSS/J like API

Web-tier> JSF (Java Server Faces) / JSP

> XML/XSL

Thin-Client> *ML based: HTML/DHTML/Javascript/SVG

Rich-Client> Swing-based UI Framework

> Java Web Start for automatic update

Page 7: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 7

Server Components

``

J2EEJ2EEApplication ServerApplication Server

J2EE ContainerJ2EE Container

Functional ModuleFunctional Module Session BeansOSS/JFacade

Session BeansOSS/JFacade

Web ContainerWeb Container

JDBC, LDAP, JDO, EJB, JCA …

DataSource

DataSource

Web Client

Java Client

EAI Client

RMI-IIOP

XML

Web Services

JSPServlets

JSPServlets

EntitiesEntities

Functional ModulesFunctional Modules

EntitiesEntitiesEntities BeansEntities Beans

LDAPLDAPRDBMSRDBMS

GISGIS

HTTP*ML

EntitiesEntitiesEntitiesEntitiesHibernate

Entities

HibernateEntities

Page 8: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 8

Swing FrameworkSwing Framework

ActionAction

I18NI18N

BrowserBrowser

……

BrokerBroker

Rich Client Components

Java 2 (Swing) and JavaWebStart enabled for automatic updates.

Workflow FrameworkWorkflow Framework

Workflow EngineWorkflow Engine

JavaFunctionProviderLibrary

JavaFunctionProviderLibrary

Bean ShellScript

FunctionProviderLibrary

Bean ShellScript

FunctionProviderLibrary

XMLConfig

FileXML

ConfigFile

Proxy FrameworkProxy Framework

JVTJVTHTTPHTTP QueryQuery

event

Page 9: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 9

Web Client Architecture

``

J2EE Application ServerJ2EE Application Server

J2EE ContainerJ2EE Container

JVTSession

Bean

JVTSession

Bean

Web ContainerWeb Container

Web ClientJSPJSF

JSPJSF

HTTP*ML

FormBeans

FormBeans

ActionsActions

BusinessLogic

BusinessLogic

PersistencePersistence

Based on JSF (MVC)Based on JSF (MVC)AJAX enabled clientAJAX enabled client

Page 10: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 10

Typical Deployment Architecture

ClientsClients Application ServerApplication Server Database ServerDatabase Server

RMI (over IP) Oracle ; OCI (TCP)

Hardware Configuration• Intel P4 equivalent (min 2.4Ghz)• Min 512 KB RAM

Software• JRE 1.5• Windows 2000, XP or Linux

Hardware Configuration• Min Intel P4 equivalent (min 2.4 Ghz)• Min 2 GB RAM

Software• Jboss 4.0.3 SP1 Application Server• JDK 1.5• Windows Server 2003

Hardware Configuration• Min Intel P4 equivalent (min 2.4 Ghz)• Min 2 GB RAM

Software• Windows Server 2003• Oracle 10g (Ni2 Instance)

Page 11: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

The N(i)2 CMDB Platform

Page 12: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 12

The CMDB Platform

CMDB

Physical (Active & Passive elements, Structures)Logical (Circuits, Facilities, Services, Software)

Financial (Cost, TCO, Service Fee,…)Contractual (Support, Maintenance, License, …)

…..

CMDB

Physical (Active & Passive elements, Structures)Logical (Circuits, Facilities, Services, Software)

Financial (Cost, TCO, Service Fee,…)Contractual (Support, Maintenance, License, …)

…..

LocationEngine

LocationEngine

Workflow/RulesEngine

Workflow/RulesEngine Query

Engine

QueryEngineProfile

Management

ProfileManagement IMAC

Management

IMACManagement

ReconciliationEngine

ReconciliationEngine Meta-Data

Management

Meta-DataManagementPersistence

Management

PersistenceManagement

TabularViews

TabularViews Graphical

Views

GraphicalViews

MapViews

MapViews

SpaceViews

SpaceViews

NetworkViews

NetworkViewsTree

Views

TreeViews

ApplicationFunctions

&Processes

ApplicationFunctions

&Processes View

Any DataSource

Any DataSource

Model

Controller

Page 13: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 13

Object Model

The object model is defined in terms of:

> Objects definition (attributes, default/range values, rules)

> Associations definition (A-Z objects, attributes, rules, default values)

<Objects.xml file>

<property.xml file>

> Customization principles (Meta-Data)

Page 14: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

Workflow

Page 15: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 15

Concepts ; Rule-Based Workflow

N(i)2 uses a rule-based workflow engine in order to apply the best solution for a specific businessfunction by providing and selecting the best available combination of data thanks to businessrules.

Ex:> N(i)2 will suggest the appropriate network asset for connecting specific networks connections

Assist and suggest the user to perform a task

Page 16: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 16

Concepts

The framework is founded on following principles/patterns

> Swing Actions: In a typical GUI, an action can work behind the scenes to provide the logic for abutton, menu item, or toolbar item.

> Broker: Is the heart of the Swing Framework. It handles the interaction with workflow and the events.It also keeps reference of all the major UI components (like tree, desktop, user, ..).

> Model-View-Controller pattern (MVC): divides an interactive application into three components.– It contains the core functionality and data.– Views display information to the user.– Controllers handle user input. Views and controllers together comprise the user interface.– A change-propagation mechanism ensures consistency between the user interface and the model.

> Workflow Engine: All the interactions between (to complete)

> Proxy: Handles the interactions with the server.

Page 17: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 17

Workflows Samples

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE workflow PUBLIC "-//OpenSymphonyGroup//DTD OSWorkflow 2.7//EN""http://www.opensymphony.com/osworkflow/workflow_2_7.dtd"><workflow>

<initial-actions> ...</initial-actions><steps>...</steps>

</workflow>

Page 18: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 18

Steps and Actions

A step is simply a workflow position.> As a simple workflow progresses, it moves from one step to another

Actions specify the transitions that can take place within a particular step.> An action can often result in a change of step

A workflow status is a string that describes the status of a workflow within a particular step

<action id="1" name="Start Workflow"><results>

<unconditional-result old-status="Finished" status="Queued" step="1"/></results>

</action>

Page 19: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 19

The First Step

<step id="1" name="First Draft"><actions>

<action id="1" name="Start First Draft"><results>

<unconditional-result old-status="Finished" status="Underway" step="1"/></results>

</action><action id="2" name="Finish First Draft">

<results><unconditional-result old-status="Finished" status="Queued" step="2"/>

</results></action>

</actions></step><step id="2" name="finished" />

Page 20: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 20

Condition

<action id="1" name="Start First Draft"><action id="1" name="Start First Draft"><restrict<restrict--to>to>

<conditions><conditions><condition type="class"><condition type="class">

<<argarg name="name="class.nameclass.name">">com.opensymphony.workflow.util.StatusConditioncom.opensymphony.workflow.util.StatusCondition

</</argarg>><<argarg name="status">Queued</name="status">Queued</argarg>>

</condition></condition></conditions></conditions>

</restrict</restrict--to>to><results><results>

<unconditional<unconditional--result oldresult old--status="Finished" status="Underway" step="1"/>status="Finished" status="Underway" step="1"/></results></results>

</action></action>

Page 21: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 21

Functions

<action id="1" name="Start First Draft"><pre-functions>

<function type="class"><arg name="class.name">com.opensymphony.workflow.util.Caller</arg>

</function></pre-functions><results>

<unconditional-result old-status="Finished" status="Underway"step="1" owner="${caller}"/>

</results></action>

Functions are a powerful feature of OSWorkflow:> A function is a unit of work that can be performed during a workflow transition—that does not affect the workflow itself

Functions can also add variables to the current context:> A variable is a named object that is made available to the workflow and can be referenced later on by other functions or

scripts

Page 22: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

Reconciliation

Page 23: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 23

Reconciliation Engine - Concepts

The N(i)2 Suite leverages multiple sources of information to reconcile them with the inventory

> Allows rapid initial load

> Maintains accuracy

ReconciliationAuto-discovery

Survey Plans

Databases

Excel, ERP, CRM

Page 24: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 24

Reconciliation Engine - Features

Ability to reconcile any (multiple) data source> XML, Excel Sheet, DB, API,

Ability to support import and export processes

Ability to define the scope (filter) of the data to import or export> Per Catalog /Categories/Sub-Categories

> Per object types or instances

> Per objects attribute values (types or instances)

Ability to define the rules for import/export> Data Structure / Types

> Instances and related associations (rules)

> Timestamps / Attribute values

> Matching rules (concatenation / combination of fields, formulas)

Page 25: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 25

Reconciliation Engine - Features

Ability to use the reconciliation engine from the Admin Module> Visual edition of the reconciliation process

Ability to schedule periodical import/export> Reconciliation Templates

Page 26: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 26

Reconciliation (Import) Process -Strategy

N(i)N(i)2 Reconciliation ModuleReconciliation Module N(i)N(i)2 ServerServer

The N(i)2

Solution

E-NRMMeta-Data

Model

JVT SessionAuto-Discovery

Tool

Survey

ExternalSystem

(API or DB)

Data SourceData SourceProviderProvider

Data SourceData Source

ASCIIASCIIASCIIExcelExcelExcel

XMLXML

XMLinput

DBDB

N(i)2 Export

transform

store

Queries

XMLXMLJavaBeans

Meta-DataandData

MappingProcess

-Rule-based

Engine

RulesRules

Rules

ReconciliationTools

Query/Update/Createinput

Page 27: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 27

Reconciliation (Export) Process

Meta-DataandData

MappingProcess

-Rule-based

Engine

N(i)N(i)2 Reconciliation ModuleReconciliation Module N(i)N(i)2 ServerServer

The N(i)2

Solution

E-NRMMeta-Data

Model

JVT Session

Rules

XMLXML

XML

RulesRules

Data OutputsData Outputs

Query/Get

Export

Queries

Page 28: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 28

Rules engine> Drools is an "augmented implementation of Charles Forgy's Rete algorithm tailored for the

Java language.“

Principle : Evaluation of Rules based-on> Agenda (Set of “working objects”)

> Arguments

> Priority (Silent)

> Conditions

If a Rule matches its criterion, its consequence is executed. The consequence canmodify the Agenda and thus the Rules will be re-evaluated. The process continues untilno Rule can executed.

Technologies – Rules Engine

Page 29: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 29

Before the Rule can be evaluated, the Agenda needs first to be filled up with the data toreconcile.

The Agenda contains JavaBeans or DOM tree

> XML documents are transformed into DOM tree. In the Rules, simple ‘XQueries’ are used.

> JDBC sources are transformed into JavaBeans

> In some cases, no transformation is necessary like in Auto-discovery scenarios,JavaBeans are directly put in the Agenda.

Technologies – Rules Engine

Page 30: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 30

The way the Rules are written depends on the type of information contained in theAgenda.

> In order to simplify them, it’s very important to analyze and – in some cases- transform theinformation that will be put in the ‘Agenda’ .

> If the Rules are easier, they will be more maintainable.

> There is a trade-of between transforming the data and simplifying the rules: ‘If the job isdone before the Drools, why using Drools?’

Technologies - How to write rules

Page 31: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

Spatial and Location

Page 32: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 32

J2EE ServerJ2EE Server

OpenGIS Server (GeoServer)OpenGIS Server (GeoServer)

Implementation ; GIS Architecture

GIS-enableDB

(Oracle Spatialor PostGIS)

GIS-enableDB

(Oracle Spatialor PostGIS)

WFSWFS

WMSWMS

Java SwingJava Swing

GIF/PNG/JPEG

GML

GIS files(MIF, SHP)

GIS files(MIF, SHP)GIS files

(MIF, SHP)

GIS files(MIF, SHP)GIS files

(MIF, SHP)

GIS files(MIF, SHP)

LocationSpaceViews

LocationSpaceViews

Images (GIF/PNG/JPEG) will be used to provide background maps or imagesGeometry Features (GML) will be used to provide managed entities representations (selection able feature)

SLDRendering

Engine

SLDRendering

Engine

DatastoreInterfaces

DatastoreInterfaces

GIS files(MIF, SHP)

GIS files(MIF, SHP)GIS files

(MIF, SHP)

GIS files(MIF, SHP)SLD

files

SLDfiles

Page 33: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 33

Concepts ; Location enable system

N(i)2 solution is not a GIS or CAD application> Background maps and symbols are ‘graphical’ views.

> Symbols are associated with resources

> Network, schematic and model views are generated on demand

> Background maps are accessed trough standard API’s

> Network database format is “open” (Oracle SDO)

To render or localize an object, N(i)2 uses the necessary rendering / localization rendering “service”

Page 34: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

Meta-Data

Page 35: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 35

Concepts ; Model Driven Architecture

Fully customizable application models> enabling fast and iterative development

Modeling of …> Application modules and functions

> User Interface Layout

> User Profiling (users, roles, rights)

> Objects definition (attributes, default/range values, rules)

> Associations definition (A-Z objects, attributes, rules, default values)

> Rendering rules

> Workflow processes

> Deployment process : Cartridges and deployable unit (client tier, webtier, application tier, persistence tier)

Meta-Data(XML)

Meta-Data(XML)

Object Model(J2EE)

Object Model(J2EE)

PersistenceModel (Any)

PersistenceModel (Any)

Page 36: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 36

Concepts: Model Driven Architecture

RunningSoftware

Artifact Not yet implemented Implemented

Compilation& Deployment

ApplicationServer

UIFrameworks

UI ComponentsJava Beans,JSP Servlets

UI ComponentsJava Beans,JSP Servlets

UI ComponentsJava Beans,JSP Servlets

DeploymentTemplates

XSD

DeploymentTemplates

XSD

DeploymentDeploymentDescriptor

WDSL

ImplementationTemplates

XSD

ImplementationTemplates

XSD

Java ClassesXVT & JVTSession BeansEntity Beans

Value ObjectsSQL DD

PublicInterfacesTemplates

XSD

PublicInterfacesTemplates

XSD

Java InterfacesXVT Interfaces

& JVT InterfacesXML Schemas

Application DeveloperApplication Developer

UI ComponentsJava Beans,JSP Servlets

UI ComponentsJava Beans,JSP Servlets

UI ComponentsJava Beans,JSP Servlets

Hand-coded implementationbased on generated code

skeletons

ImplementationTemplates

XSD

ImplementationTemplates

XSD

Java ClassesXVT & JVTSession BeansEntity Beans

Value ObjectsSQL DD

Compilation& Deployment

Compilation& Deployment

ApplicationBusinessModels

XSD

ApplicationBusinessModels

XSD

ApplicationBusinessModelsXML

(XSD?)

BusinessBusinessModelerModeler

Web Browser

VisualTool

CodeGeneration

ImplementationTemplates

XSD

ImplementationTemplates

XSD

ImplementationTemplates

XSLXML

PublicInterfacesTemplates

XSD

PublicInterfacesTemplates

XSD

PublicInterfacesTemplates

XSLXML

User InterfacesTemplates

User InterfacesTemplates

User InterfacesTemplates

XMLOpen to anyother templates

ApplicationDevelopment

Kit Engine

DeploymentTemplates

XSD

DeploymentTemplates

XSD

DeploymentTemplates

XSLXML

Framework DeveloperFramework Developer

Page 37: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 37

Concepts: Workflow Configuration

Page 38: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

Admin

Page 39: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 39

Admin

The three main concepts are:

> The identification restricts the usage of the application to users that have an id and apassword. This is represented by the EndUser category (only one EndUsersubcategory) and the IsIdentifiedBy association.

> The rights are the list of privileges that can be checked by the system to give accessor restrict the access to a function. The end users will not be able to modify thisinformation.

> The roles are used to bind some rights to an end user. The HasPermissionassociation binds some rights and/or roles to an endUser or to a role. In other words, arole is a set of rights and/or other roles. And some roles can be assigned to anendUser as well as individual rights.

Page 40: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 40

Admin

Page 41: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

License Management

Page 42: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 42

License Management

The licenses are attributed by> Modules and

> Catalogs

Each module or catalog license has an expiration date and signature

All signatures are generated based on PKI algorithm

The server verifies if a module or a catalog is accessible based on:> The MAC address: the server MAC address and the MAC address contained in the

license file must be the same

> Module or catalog expiration date

> The license content integrity: MAC address, module/catalog names, expiration dates,signatures

Page 43: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

Content Management

Page 44: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 44

Content Management

Slide is used as content repository. It’s open source framework. Its features are:

> Full WebDAV Support

> Easy to access to documents through http protocol

> Basic DeltaV WebDAV Versioning Support

> Support for a variety of backend systems for storing the content including different databases and filesystem storage

> Transactions and Locking for data integrity

> Flexible control over permissions at a per file level via support for the WebDAV ACL

> DASL support for any backend, extensible for using backends search capabilities for higher scalabilityand less latency

> Centralize repository: all documents are stored in a same secure place (easy to backup, securityaccess, the document history can be tracked)

> Binding support

> Simple installation as .war deployment

> 'ready-to-run' in JBoss

> A fully featured WebDAV client library and command line client

Page 45: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

Discovery

Page 46: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 46

Discovery Architecture

Drools Rules Engine

Reconciliation EngineReconciliation Engine

LaptopsReconciliation

Rules

input

AssociationsReconciliation

RulesServersReconciliation

Rules

N(i)2 ServerN(i)2 Server

Query/Update/Create The N(i)2Solution

E-NRMMeta-Data

Model

JVT Session

Remote WindowsRegistry Access

Discovery EngineDiscovery Engine

WMI

SNMP

ICMP

List IP addresses,Sub networks

to scan

Page 47: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 47

Discovery Architecture

The Architecture is composed of three main components

> Discovery Engine. Three different protocols can be used:– SNMP: allow access to SNMP server and collect MIB information. SNMP4J is used (http://www.snmp4j.org/).– WMI: allow access to WMI Microsoft Windows machines. Bridge Java-COM is used to send select statement to

WMI machine.– Remote Windows Registry Access. Bridge Java-COM is used to access remotely the registry. This one is only

used to discover the installed software on the remote host.

> Reconciliation Engine– Rule Engines and expert systems are a great way to collect complex decision-making logic and work with data sets

too large for humans to effectively use. Rule engines can make decisions based on hundreds of thousands of facts,quickly, reliably and repeatedly

– Avoid hard coded rules, possibly replicated throughout the application within if/then blocks.– Help to answer to fast changing data-driven applications– Help to provide solution for complex reconciliation that are too complex, voluminous for traditional software

architectures– Use the rules engine just like adding any other Java class. Extensive Java library.– Drools Rules Engine is used (http://www.drools.org/)

> N(i)2 Server– Use to collect, search, create, update and delete information

Page 48: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 48

SNMP

The leading industry standard protocol for enterprise networks.

References> http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.htm

> http://www.snmplink.org/

> Available in Version 1, Version 2. Version 3 is new

Availability> Most of the IP devices are providing SNMP agents (Unix, Windows, or IP)

> Windows ;Requires Windows NT®, Windows® 2000 or Windows XP; the Microsoft SNMP extension agent also runs on Windows 95and Windows 98, and Microsoft® Windows® Millennium Edition clients.

Security> Uses “community string” to identify a group to which hosts running the SNMP service belong. it provides some security and context for

agents receiving requests and initiating traps

Functions> Managed devices are monitored and controlled using four basic SNMP commands: read, write, trap, and traversal operations.

Data Model> The SNMPv1 and SNMPv2C schema is called the Structure of Management Information (SMI), and is packaged as Management

Information Base (MIB) files.

> SNMP uses a schema to define objects. The schema is different from the schema used in WMI

> Can be used to discover and monitor details such as software, heat dissipation, power, uptime, ….

Page 49: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 49

WMI

Windows Management Instrumentation (WMI) is the Microsoft implementation of Web-BasedEnterprise Management (WBEM)

> WBEM is an DMTF industry initiative to develop a standard technology for accessing managementinformation in an enterprise environment.

> WMI uses the Common Information Model (CIM) industry standard to represent systems,applications, networks, devices, and other managed components.

References> http://www.dmtf.org/standards/wbem/

> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_reference.asp

Availability> WMI is pre-installed in Windows Server 2003, Windows XP, Windows Me, and Windows 2000

> Windows® NT Workstation 4.0 SP4 and later:

> WMI is available through "Add/Remove Windows components" in the Control Panel, as aWBEM option install. A later, more comprehensive, version (WMI CORE 1.5 (Windows95/98/NT 4.0)) is available from http://www.microsoft.com/downloads.

> Windows® 98/95

> Windows Management Instrumentation (WMI) CORE 1.5 (Windows 95/98/NT 4.0) is availablefrom http://www.microsoft.com/downloads.

Page 50: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 50

Remote Windows Registry Access

Security> Strong security model based on Microsoft credentials

– Domain – Username – Password

> WMI requires a Domain Controller to scan remote Windows workstation

> If this is an issue � Agent to deploy on clients in order to collect / send info to the service

Functions> Object model / Set of API that manipulates WMI Classes

Data Model> WMI Classes (DMTF) Object model / Set of API that manipulates WMI Classes

> Can be used to discover and monitor details such as software, power, uptime heat dissipation, ….

Details> C:\Ni2Docs\BusinessModeling\Requirements\Discovery\ni2_auto_discovery_WMI.ppt

Page 51: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 51

Remote Windows Registry Access

Through WMI, it’s possible to have access to the entire registry of the remote host:

> WMI Object to connect to: WbemScripting.SWbemLocator> All entries at the following path are collected:

SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Page 52: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 52

Discovery Process

Discovery Process

1. A list of IP addresses, sub-networks to scan with the different protocols to use (WMI, SNMP, RemoteRegistry)

2. For each host:a) The host is pinged, if successful, go to step a), else the nothing is sent to the reconciliation.b) WMI login is sent to the hosts, if successful, the information is collected then go step c), if not go step d)c) Remote login to host registry is sent. If successful, the information is collected then all the information collected in

b) et c) is sent to the reconciliation. If not the information collected in b) is sent to the reconciliation.d) SNMP request is sent to the host. If successful, the information is collected then sent to the reconciliation

3. The information collected during the step 2 is sent to the reconciliations. Base onDrools rules, the information is reconcile with the N(i)2 server.

Page 53: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 53

Summary

The discoveredinformation dependson the MIBs available

for the host

Handle by the SNMPimplementations.

Unix, Windows, MACOS X, Printers,

Router, etc

SNMP

Access the registry todiscover the installed

software

The host needs to bein a trusted domain

name. User withspecific privilege

required

All Windows platform

(NT, 98 and 95 need adriver to be installed)

Remote Windows

Registry Access

Based on the WBEMThe host needs to bein a trusted domain

name. User withspecific privilege

required

All Windows platform

(NT, 98 and 95 needspecific driver to be

installed)

WMI

Very basic: host aliveor not

Rely on TCP/IPprotocol and firewalls

ALLICMP

InformationDiscovered

SecurityOperating SystemSupported

Protocols

Page 54: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

L10n, i18n

Page 55: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 55

L10n, i18n

I18N and L10N are based on the Java concept

> Locale

– political, cultural, and region-specific elements (in Java, expressed as a language code andcountry code)

> Resource Bundle

– Properties files retrieve base on the current Locale

> All the strings are externalized to the resource bundles using key/value. The key replace the string incode and the translated value is set in the corresponding property bundle.

MessagesBundle.propertiesMessagesBundle_en.propertiesMessagesBundle_en_US.propertiesMessagesBundle_fr_FR.properties

Page 56: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

API Overview

Page 57: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 57

Client Scripting and Default Values

Default values are formulas that are used to generate initial values for fields of newly createdinstances

There are four places where default values can be set:

> First of all, default values can be set at the metadata level. The default value is then attached to anattribute of a specified category. This means that everywhere in the application, when an instance ofthe specified category will be created, this default value will be used, except if it was overridden bythe following ones.

> Secondly, default values can be set at the resource type level. These default values are optionalformulas that can be set in order to override the default values that were set at the category level. Ifno default value is set at the object type level, then the category’s one will be used.

> Thirdly, default values can be set at the template level. They will be used when a template will beinstantiated in the inventory. These default values, if specified, override the default values that areset at the resource type or at the category level.

> Finally, some workflows (not implemented) allow overriding all the default values described hereabove just for the time of the workflows execution.

Page 58: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 58

Client Scripting and Default Values

All the default values are beanshell scripts (www.beanshell.org)

This means that the content of the default values described here above must alwaysrespect the beanshell specifications.

The value returned by the script is the value that will be set as initial value in theobject instance field.

Page 59: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 59

API Strategy

N(i)2 SuiteN(i)2 Suite

BusinessBusinessManagementManagement

LayerLayer

NetworkNetworkManagementManagement

LayerLayer

ElementElementManagementManagement

LayerLayer

NetworkManagement

System

OSS/JOSS/J

Web ServiceWeb Service

Java/XMLJava/XML

NetworkElementNetwork

ElementNetworkElement

Billing, Customer Care, Revenue Assurance, …

Network Element Management System

NetworkElementNetwork

ElementNetworkElement

NetworkElementNetwork

ElementNetworkElement

SNMPSNMP

NetworkManagement

SystemNetwork

ManagementSystem

Billing, Customer Care, Revenue Assurance, …Billing, Customer Care, Revenue Assurance, …

XMLXML

OSS/JOSS/J WebWebServiceService JavaJava

NetworkInventory or Asset

ManagementSystem(CMDB)

OSS/JOSS/J

XMLXML

LDAPLDAP

CMDBCMDB

3rd party

WMIWMI

Page 60: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 60

API Model Architecture

The N(i)2 ServerThe N(i)2 Server

Web ServicesWeb Services

RMIRMI

N(i)2

JVT CoreSession Bean

N(i)2

JVT CoreSession Bean

ObjectModel

ObjectModel

Any clientAny client

The N(i)2 ClientThe N(i)2 Client

Ni2ProxyNi2Proxy

N(i)2 Proxy = Java API to easily access information on the server (core or queries)

N(i)2 JVT Core Session Bean = Low-Level Java API

N(i)2 JVT Query Session Bean = Query API, give access to all queries

N(i)2

JVT QuerySession Bean

N(i)2

JVT QuerySession Bean

Page 61: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 61

API – JVT Session

Promote standard interoperable “business” interfaces to interact with external systems

The N(i)2 framework is open and technology independent

It supports OSS/J interfaces design guidelines

OSS/J like framework> J2EE based

> ‘State of the art’ J2EE patterns

> Meta-data framework

> Extensible, distributed and scalable

Page 62: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 62

Perl use Inline: Java to interact with Ni2Proxy

use Inline Java => 'STUDY',STUDY => ['com.ni2.test.JVTNi2Proxy'];

sub new {return JVTNi2Bridge::com::ni2::test::JVTNi2Proxy->new();

}

Perl Integration

The N(i)2 ServerThe N(i)2 Server

RMIRMI

N(i)2

JVT CoreSession Bean

N(i)2

JVT CoreSession Bean

ObjectModel

ObjectModel

PerlPerl

Ni2ProxyNi2ProxyN(i)2

JVT QuerySession Bean

N(i)2

JVT QuerySession Bean

Page 63: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006

Conclusion

Page 64: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 64

Conclusion

Ability to easily migrate iteratively existing inventory (CMDB)> Through XML-based meta-data

> Rule-based information model enabling iterative data collection

> Configurable reconciliation module based on a rule engine

Ability to provide customers with simple and intuitive business functionality> Simplified and automated “Service Provider” type of business functionalities

> Easy and straightforward user interface and assisted business processes

> Transparent and automated object graphical rendering and (geo)-positioning system of resources

Page 65: N(i)2 technical architecture 2.0 (v1 1)

9 February 2006© N(i)2 CONFIDENTIAL 65

Conclusion

Ability to cope rapidly with requirements changes> Easy customizable business models

Ability to let customers tailor the application> Straightforward visual-based meta-data

> Flexible user interfaces

Ability to interface with different applications> Service-based architecture with Java and XML API’s

> Support of standards network protocols (SNMP, TL1)


Recommended