9 February 2006
The N(i)2 SuiteTechnical Architecture
Partner Training
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
9 February 2006
Technical Architecture
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
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”
> …
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
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
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
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
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)
9 February 2006
The N(i)2 CMDB Platform
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
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)
9 February 2006
Workflow
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
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.
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>
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>
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" />
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>
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
9 February 2006
Reconciliation
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
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)
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
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
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
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
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
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
9 February 2006
Spatial and Location
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
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”
9 February 2006
Meta-Data
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)
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
9 February 2006© N(i)2 CONFIDENTIAL 37
Concepts: Workflow Configuration
9 February 2006
Admin
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.
9 February 2006© N(i)2 CONFIDENTIAL 40
Admin
9 February 2006
License Management
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
9 February 2006
Content Management
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
9 February 2006
Discovery
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
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
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, ….
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.
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
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
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.
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
9 February 2006
L10n, i18n
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
9 February 2006
API Overview
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.
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.
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
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
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
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
9 February 2006
Conclusion
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
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)