SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
The N(i)2 Suite
Technical Architecture
   Partner Training




          9 February 2006
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


© N(i)2 CONFIDENTIAL                                   9 February 2006         2
Technical Architecture




              9 February 2006
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




© N(i)2 CONFIDENTIAL                                      9 February 2006                                            4
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”
                   >   …




© N(i)2 CONFIDENTIAL                                        9 February 2006                                        5
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




© N(i)2 CONFIDENTIAL                                   9 February 2006            6
Server Components



                                                                                                                    Java Client
                                                                                                   RMI-IIOP
                                    J2EE Container                           Web Container
                                     J2EE Container                           Web Container

                                                   Session Beans                     JSP
                                                    Session Beans                     JSP
                           Functional Module
                                                      OSS/J                        Servlets
                            Functional Module
                                                        OSS/J                       Servlets         HTTP
                       Functional Modules                                                                               Web Client
                        Functional Modules            Facade                                         *ML
                                                       Facade
                                                         `
                                                             `
                                                                                   J2EE
                                                                             Application Server    Web Services
                          Entities                   Entities
                                                 Hibernate                                                              EAI Client
                         Entities                   Entities
                   Entities Entities
                            Beans
                          Entities
                                                      Entities
                                                  Hibernate
                                                     Entities
                       Entities Beans             Entities
                                                   Entities



                                               JDBC, LDAP, JDO, EJB, JCA …




                                                                  Data
                       LDAP        RDBMS            GIS            Data
                        LDAP        RDBMS            GIS         Source
                                                                  Source




© N(i)2 CONFIDENTIAL                                             9 February 2006                                                     7

                                                                                                                  XML
Rich Client Components



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




                                                                            Workflow Engine
                                                                           Workflow Engine




                                                                                           Bean Shell
                                     event

                                                                 Java                     Bean Shell
                                                                                             Script
                                                                Java             XML        Script
                                                               Function         XML
                                                                                Config      Function
                                                              Function
                                                               Provider        Config     Function
                                                              Provider           File       Provider
                                                                Library         File       Provider
                                                                                             Library
                                                               Library                     Library

                        Action    Browser
                       Action    Browser
                                                                         Workflow Framework
                                              Broker
                                             Broker

                         I18N       …                                                          JVT
                       I18N        …                            HTTP             Query
                                                               HTTP             Query         JVT


                          Swing Framework                                 Proxy Framework



© N(i)2 CONFIDENTIAL                                   9 February 2006                                  8
Web Client Architecture




                           J2EE Container                   Web Container
                            J2EE Container                   Web Container

                        Business
                         Business                                      JSP            HTTP
                         Logic                                          JSP                     Web Client
                          Logic         JVT                            JSF            *ML
                                         JVT                            JSF
                                      Session
                                       Session           Actions
                                       Bean    `          Actions
                                        Bean     `
                       Persistence
                        Persistence                                    Form
                                                                        Form
                                                                       Beans
                                                                        Beans


                                                                                      Based on JSF (MVC)
                                      J2EE Application Server                         AJAX enabled client




© N(i)2 CONFIDENTIAL                                 9 February 2006                                     9
Typical Deployment Architecture




        Clients                                       Application Server                                    Database Server




                                 RMI (over IP)                                      Oracle ; OCI (TCP)




Hardware Configuration                           Hardware Configuration                          Hardware Configuration
• Intel P4 equivalent (min 2.4                   • Min Intel P4 equivalent (min 2.4 Ghz)         • Min Intel P4 equivalent (min 2.4 Ghz)
Ghz)                                             • Min 2 GB RAM                                  • Min 2 GB RAM
• Min 512 KB RAM
                                                  Software                                       Software
Software                                         • Jboss 4.0.3 SP1 Application Server            • Windows Server 2003
• JRE 1.5                                        • JDK 1.5                                       • Oracle 10g (Ni2 Instance)
• Windows 2000, XP or Linux                      • Windows Server 2003




© N(i)2 CONFIDENTIAL                                     9 February 2006                                                            10
The N(i)2 CMDB Platform




               9 February 2006
The CMDB Platform




                                                                         Tabular Space Graphical
                                            Application                   Tabular Space Graphical
                                             Application                  Views   Views  Views
                                            Functions                      Views   Views  Views
                                             Functions
                                                 &
                                                  &
                                            Processes
                                             Processes                       Tree
                                                                               Tree
                                                                             Views
                                                                                       Map
                                                                                        Map
                                                                                      Views
                                                                                             Network
                                                                                              Network
                                                                                              Views
                                                                                                           View
       Controller                                                             Views    Views   Views




                                   Workflow/Rules      Profile            IMAC                Query
                                    Workflow/Rules      Profile             IMAC               Query
                                      Engine         Management         Management            Engine
                                        Engine        Management         Management            Engine


                                                               CMDB
                                                                CMDB
                                            Physical (Active & Passive elements, Structures)
                                             Physical (Active & Passive elements, Structures)
                                             Logical (Circuits, Facilities, Services, Software)
                                              Logical (Circuits, Facilities, Services, Software)
                                                                                                         Model
                                                 Financial (Cost, TCO, Service Fee,…)
                                                  Financial (Cost, TCO, Service Fee,…)
                                            Contractual (Support, Maintenance, License, …)
                                              Contractual (Support, Maintenance, License, …)
                                                                    …..
                                                                       …..

                       Any Data     Persistence      Reconciliation          Location       Meta-Data
                        Any Data     Persistence      Reconciliation          Location       Meta-Data
                        Source      Management          Engine                Engine       Management
                         Source      Management          Engine                Engine       Management



© N(i)2 CONFIDENTIAL                                       9 February 2006                                          12
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)




© N(i)2 CONFIDENTIAL                                  9 February 2006                                   13
Workflow




 9 February 2006
Concepts ; Rule-Based Workflow



        N(i)2 uses a rule-based workflow engine in order to apply the best solution for a specific business
        function by providing and selecting the best available combination of data thanks to business
        rules.
        Ex:
                   >   N(i)2 will suggest the appropriate network asset for connecting specific networks connections


        Assist and suggest the user to perform a task




© N(i)2 CONFIDENTIAL                                      9 February 2006                                              15
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 a
                       button, 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.




© N(i)2 CONFIDENTIAL                                         9 February 2006                                                16
Workflows Samples




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




© N(i)2 CONFIDENTIAL                           9 February 2006                           17
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>




© N(i)2 CONFIDENTIAL                                      9 February 2006                                   18
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" />




© N(i)2 CONFIDENTIAL                              9 February 2006                                   19
Condition




          <action id="1" name="Start First Draft">
             <restrict-to>
             <restrict-
                 <conditions>
                       <condition type="class">
                        <arg name="class.name">
                             name="class.name">
                          com.opensymphony.workflow.util.StatusCondition
                        </arg>
                        </arg>
                        <arg name="status">Queued</arg>
                             name="status">Queued</arg>
                       </condition>
                 </conditions>
             </restrict-to>
             </restrict-
             <results>
                 <unconditional-result old-status="Finished" status="Underway" step="1"/>
                 <unconditional-       old-
             </results>
          </action>




© N(i)2 CONFIDENTIAL                              9 February 2006                           20
Functions



        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




       <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>

© N(i)2 CONFIDENTIAL                                              9 February 2006                                                                 21
Reconciliation




      9 February 2006
Reconciliation Engine - Concepts




                                 Survey                                  Plans
                                                                                    Excel, ERP, CRM

                                             Reconciliation
 Auto-discovery
                                                                                  Databases




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

            >    Allows rapid initial load
            >    Maintains accuracy


© N(i)2 CONFIDENTIAL                            9 February 2006                                       23
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)




© N(i)2 CONFIDENTIAL                                         9 February 2006                                  24
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




© N(i)2 CONFIDENTIAL                                          9 February 2006                                  25
Reconciliation (Import) Process -Strategy



  Data Source                  Data Source                      N(i)2 Reconciliation Module                                           N(i)2 Server
    Provider
                           ASCII
                            ASCII
                             ASCII
                                             Excel
                                              Excel
                                                Excel
                               transform
Auto-Discovery
     Tool

                                                                          Meta-Data
     Survey                                XML                               and
                                            XML
                                             XML                             Data




                                                                                                                       JVT Session
                       input                            input              Mapping               Query/Update/Create                           The N(i)2
                                                                           Process                                                              Solution
     External                                XML
                                              XML
                                                                               -
                                                Java
     System                                    Beans                      Rule-based
   (API or DB)                                                             Engine




                                                                                                                                     Queries
   N(i)2 Export
                                                e




                                                                                                                                                            E-NRM
                                            stor




                                                                Reconciliation                                                                             Meta-Data
                                                                                         Rules
                                                                   Tools                                                                                     Model
                                                                                            Rules
                                                                                               Rules

                                           DB
                                            DB
© N(i)2 CONFIDENTIAL                                                   9 February 2006                                                                           26
Reconciliation (Export) Process




        Data Outputs            N(i)2 Reconciliation Module                                    N(i)2 Server




                                      Meta-Data
                                         and




                                                                                JVT Session
                                         Data
                                                                    Query/Get                           The N(i)2
           XML                         Mapping
            XML        Export                                                                            Solution
              XML                      Process
                                           -
                                      Rule-based




                                                                                              Queries
                                       Engine
                                                                                                                     E-NRM
                                                                                                                    Meta-Data
                                                      Rules                                                           Model
                                                         Rules
                                                            Rules




© N(i)2 CONFIDENTIAL                9 February 2006                                                                       27
Technologies – Rules Engine




     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 can
     modify the Agenda and thus the Rules will be re-evaluated. The process continues until
     no Rule can executed.




© N(i)2 CONFIDENTIAL                                        9 February 2006                                        28
Technologies – Rules Engine




       Before the Rule can be evaluated, the Agenda needs first to be filled up with the data to
       reconcile.
       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.




© N(i)2 CONFIDENTIAL                                      9 February 2006                                       29
Technologies - How to write rules




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


               >       In order to simplify them, it’s very important to analyze and – in some cases- transform the
                       information 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 is
                       done before the Drools, why using Drools?’




© N(i)2 CONFIDENTIAL                                          9 February 2006                                         30
Spatial and Location




            9 February 2006
Implementation ; GIS Architecture




                                                                                                                   GIS-enable
                                                                                                                    GIS-enable
                                                                                                                       DB
                                                                                                                        DB
                                                                                                                 (Oracle Spatial
                                                                                                                  (Oracle Spatial
                                                                                                                  or PostGIS)
                                                                        OpenGIS Server (GeoServer)                  or PostGIS)
                                                                         OpenGIS Server (GeoServer)
                                                                             WFS
                                              GML                             WFS
                                Location
                                 Location                                                         Datastore
                                 Space                                                              Datastore
                                  Space                                               SLD         Interfaces        GIS files
                                 Views                                                 SLD          Interfaces       GIS files
                                  Views                           WMS               Rendering                      (MIF, SHP)
                                                                                                                       GIS files
                                                                                                                       GIS files
                                            GIF/PNG/JPEG           WMS               Rendering
                                                                                     Engine
                                                                                                                    (MIF, SHP)
                                                                                                                         GIS files
                                                                                                                     (MIF, SHP)
                                                                                                                      (MIF, SHP)
                                                                                      Engine                           (MIF, SHP)

                         Java Swing
                          Java Swing                                           J2EE Server
                                                                                J2EE Server

                                                                                                                    GIS files
                                                                                                                     GIS files
                                                                                                                   (MIF, SHP)
                                                                                                                       GIS files
                                                                                                                    (MIF,SLD
                                                                                                                           SHP)
                                                                                                                     (MIF,SLDSHP)
                                                                                                                          files
                                                                                                                            files



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

  © N(i)2 CONFIDENTIAL                                     9 February 2006                                               32
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”




© N(i)2 CONFIDENTIAL                                           9 February 2006                                33
Meta-Data




  9 February 2006
Concepts ; Model Driven Architecture



 Fully customizable application models                                                         Meta-Data
                                                                                                Meta-Data
                                                                                                 (XML)
           >       enabling fast and iterative development                                        (XML)



 Modeling of …
           >       Application modules and functions                                          Object Model
                                                                                               Object Model
                                                                                                 (J2EE)
           >       User Interface Layout                                                           (J2EE)

           >       User Profiling (users, roles, rights)
           >       Objects definition (attributes, default/range values, rules)
           >       Associations definition (A-Z objects, attributes, rules, default values)
                                                                                              Persistence
                                                                                               Persistence
           >       Rendering rules                                                            Model (Any)
                                                                                               Model (Any)
           >       Workflow processes
           >       Deployment process : Cartridges and deployable unit (client tier, web
                   tier, application tier, persistence tier)




© N(i)2 CONFIDENTIAL                                         9 February 2006                                  35
Concepts: Model Driven Architecture


                                                                                                          Application Developer

                                                                                             Java Interfaces           Compilation
   Business                        Framework Developer                                            Public
                                                                                                   Public
                                                                                             XVT Interfaces
                                                                                                Interfaces
                                                                                                                       & Deployment
                                                                                                  Interfaces
                                                                                            & JVT Interfaces
   Modeler                                                                                      Templates
                                                                                                  Templates
                                                                                             XML Schemas
                                                                                                   XSD
                                                                                                     XSD
 Application                                 Application                        Code
  Application
  Business
   Application
   Business
   Models                                    Development                      Generation
                                                                                             Java Classes
                                                                                                                       Compilation
                                                                                                                       & Deployment
    Business
    Models
    XML
     Models                                   Kit Engine                                     XVT & JVT
                                                                                             Implementation
                                                                                             Session Beans
     XSD
   (XSD?)                                                                                     Implementation     Java Classes
       XSD                                                                                      Templates
                                                                                             Entity Beans
                                                                                                 Templates
                                                                                                                 XVT & JVT
                                                                                                                 Implementation
                                                                                                                 Session Beans
                                                                                                                                           Application
                                                                                             Value XSD
                                                                                                   Objects
                                                                                                    XSD
                                                                                               SQL DD
                                                                                                                  Implementation
                                                                                                                    Templates
                                                                                                                 Entity Beans
                                                                                                                      Templates
                                                                                                                 Value XSD
                                                                                                                       Objects
                                                                                                                                             Server
                                                                                                                        XSD
    Visual                    Public           Implementation     Deployment
                                                                                                                   SQL DD


     Tool                       Public
                             Interfaces
                                 Public
                              Interfaces
                             Templates
                                                 Templates
                                                Implementation
                                                 Implementation
                                                    XSL
                                                                  Templates
                                                                   Deployment
                                                                    Deployment
                                                                     XSL                      Deployment
                                Interfaces        Templates         Templates                 Deployment                   Compilation
                              Templates
                                XSL                 Templates
                                                   XML               Templates
                                                                     XML                       Deployment                  & Deployment
    Web Browser                Templates
                                 XSD
                               XML
                                                     XSD
                                                      XSD             XSD
                                                                       XSD
                                                                                                Deployment
                                                                                               Descriptor
                                                                                                Templates
                                   XSD                                                           Templates
                                                                                                WDSL
                                                                                                   XSD
                                                                                                    XSD
                                                                                                               Hand-coded implementation
                                                                                                                based on generated code
                                                                                                                       skeletons
                                                  User Interfaces
                           Open to any             User Interfaces
                                                    Templates
                                                    User Interfaces                         UI Components
                                                     Templates                               UI Components
                           other templates            XML                                    JavaComponents
                                                                                              UI Beans,          UI Components
                                                      Templates                                Java Beans,
                                                                                                Java Beans,
                                                                                             JSP Servlets
                                                                                                                  UI Components
                                                                                                                   UI Components
                                                                                                                  Java Beans,
                                                                                                                    Java Beans,
                                                                                                                                               UI
                                                                                               JSP Servlets          Java Beans,
                                                                                                                  JSP Servlets
                                                                                                JSP Servlets        JSP Servlets
                                                                                                                     JSP Servlets          Frameworks

Running      Artifact
Software                           Not yet implemented                        Implemented
    © N(i)2 CONFIDENTIAL                                              9 February 2006                                                           36
Concepts: Workflow Configuration




© N(i)2 CONFIDENTIAL   9 February 2006                         37
Admin




9 February 2006
Admin



         The three main concepts are:


                   >   The identification restricts the usage of the application to users that have an id and a
                       password. This is represented by the EndUser category (only one EndUser
                       subcategory) and the IsIdentifiedBy association.
                   >   The rights are the list of privileges that can be checked by the system to give access
                       or restrict the access to a function. The end users will not be able to modify this
                       information.
                   >   The roles are used to bind some rights to an end user. The HasPermission
                       association binds some rights and/or roles to an endUser or to a role. In other words, a
                       role is a set of rights and/or other roles. And some roles can be assigned to an
                       endUser as well as individual rights.




© N(i)2 CONFIDENTIAL                                 9 February 2006                                         39
Admin




© N(i)2 CONFIDENTIAL   9 February 2006       40
License Management




           9 February 2006
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




© N(i)2 CONFIDENTIAL                                9 February 2006                                      42
Content Management




           9 February 2006
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 file
                       system 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 scalability
                       and less latency
                   >   Centralize repository: all documents are stored in a same secure place (easy to backup, security
                       access, 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




© N(i)2 CONFIDENTIAL                                      9 February 2006                                                  44
Discovery




 9 February 2006
Discovery Architecture



    Discovery Engine                         Reconciliation Engine                                                   N(i)2 Server

     Remote Windows
     Registry Access



              WMI




                                                                                                       JVT Session
                                    input   Drools Rules Engine               Query/Update/Create                       The N(i)2
                                                                                                                         Solution
             SNMP


                                              Laptops
             ICMP                           Reconciliation                                                                           E-NRM
                                               Rules                                                                                Meta-Data
                                                  Associations
                                                                                                                                      Model
               List IP addresses,                Reconciliation
                 Sub networks                       Rules
                                                       Servers
                      to scan                       Reconciliation
                                                        Rules




© N(i)2 CONFIDENTIAL                                        9 February 2006                                                                     46
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




© N(i)2 CONFIDENTIAL                                            9 February 2006                                                           47
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 95
                        and 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, ….




© N(i)2 CONFIDENTIAL                                                   9 February 2006                                                                    48
WMI


        Windows Management Instrumentation (WMI) is the Microsoft implementation of Web-Based
        Enterprise Management (WBEM)
                   >   WBEM is an DMTF industry initiative to develop a standard technology for accessing management
                       information 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 a
                           WBEM option install. A later, more comprehensive, version (WMI CORE 1.5 (Windows
                           95/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 available
                           from http://www.microsoft.com/downloads.
© N(i)2 CONFIDENTIAL                                     9 February 2006                                               49
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:Ni2DocsBusinessModelingRequirementsDiscoveryni2_auto_discovery_WMI.ppt




© N(i)2 CONFIDENTIAL                                            9 February 2006                                           50
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:
                       SOFTWAREMicrosoftWindowsCurrentVersionUninstall




© N(i)2 CONFIDENTIAL                                            9 February 2006                        51
Discovery Process



        Discovery Process

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


                   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 on
                      Drools rules, the information is reconcile with the N(i)2 server.




© N(i)2 CONFIDENTIAL                                               9 February 2006                                                                 52
Summary


                   Protocols     Operating System                      Security                Information
                                    Supported                                                  Discovered



                       ICMP             ALL                         Rely on TCP/IP        Very basic: host alive
                                                                 protocol and firewalls          or not



                       WMI     All Windows platform              The host needs to be     Based on the WBEM
                               (NT, 98 and 95 need                in a trusted domain
                                specific driver to be               name. User with
                                     installed)                     specific privilege
                                                                         required
            Remote Windows     All Windows platform              The host needs to be     Access the registry to
             Registry Access   (NT, 98 and 95 need a              in a trusted domain     discover the installed
                                driver to be installed)             name. User with             software
                                                                    specific privilege
                                                                         required
                       SNMP    Unix, Windows, MAC                Handle by the SNMP          The discovered
                                 OS X, Printers,                  implementations.        information depends
                                    Router, etc                                           on the MIBs available
                                                                                               for the host
© N(i)2 CONFIDENTIAL                           9 February 2006                                               53
L10n, i18n




  9 February 2006
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 and
                           country code)


                   >   Resource Bundle
                         – Properties files retrieve base on the current Locale


                                    MessagesBundle.properties
                                    MessagesBundle_en.properties
                                    MessagesBundle_en_US.properties
                                    MessagesBundle_fr_FR.properties


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




© N(i)2 CONFIDENTIAL                                       9 February 2006                                                  55
API Overview




     9 February 2006
Client Scripting and Default Values


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


        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 an
                       attribute of a specified category. This means that everywhere in the application, when an instance of
                       the specified category will be created, this default value will be used, except if it was overridden by
                       the following ones.
                   >   Secondly, default values can be set at the resource type level. These default values are optional
                       formulas that can be set in order to override the default values that were set at the category level. If
                       no 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 be
                       instantiated in the inventory. These default values, if specified, override the default values that are
                       set at the resource type or at the category level.
                   >   Finally, some workflows (not implemented) allow overriding all the default values described here
                       above just for the time of the workflows execution.




© N(i)2 CONFIDENTIAL                                       9 February 2006                                                       57
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 always
        respect the beanshell specifications.


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




© N(i)2 CONFIDENTIAL                          9 February 2006                                    58
API Strategy



                                        Billing, Customer Care, Revenue Assurance, …
        Business                          Billing, Customer Care, Revenue Assurance, …
                                              Billing, Customer Care, Revenue Assurance, …
       Management
          Layer
                                        Web
                               OSS/J              Java       XML
                                       Service
3rd party                                                                      OSS/J

                                                                                                Network
                                                                                                  Network
                                                                                               Management
                                                                             Web Service               Network
                                                                                                     Network
                                                                                                Management
        Network                      N(i)22Suite
                                     N(i) Suite                                                  System
                                                                                                  ManagementAsset
                                                                                                  Inventory or
                                                                                                   System
       Management                                                                                    Management
                                                                                                     System
          Layer         CMDB
                        CMDB
                                                                              Java/XML                 System
                                                                                                       (CMDB)
                                                                                LDAP
                               WMI     SNMP      XML     OSS/J


                                                                         Network Element Management System
        Element
       Management
          Layer                        Network                           Network                 Network
                                         Network                           Network                 Network
                                       Element
                                           Network                       Element
                                                                             Network             Element
                                                                                                     Network
                                         Element                           Element                 Element
 © N(i)2 CONFIDENTIAL
                                           Element     9 February 2006
                                                                             Element                 Element    59
API Model Architecture



                                                                     N(i)2 2
                                                                       N(i)
                                                                   JVT Core
                                                                    JVT Core
                                                                  Session Bean
                                                                   Session Bean
                         Ni2Proxy               RMI
                          Ni2Proxy               RMI                   N(i)2 2
                                                                        N(i)
                                                                    JVT Query
                                                                     JVT Query
                                                                   Session Bean
                                                                    Session Bean
                       The N(i)2 2
                                 Client
                        The N(i) Client
                                            Web Services               Object
                                             Web Services               Object
                                                                       Model
                                                                        Model
                         Any client
                          Any client
                                                                   The N(i)2 2
                                                                             Server
                                                                    The N(i) Server




  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 CONFIDENTIAL                           9 February 2006                                 60
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




© N(i)2 CONFIDENTIAL                                   9 February 2006                       61
Perl Integration


                                                                     N(i)2 2
                                                                      N(i)
                                                                  JVT Core
                                                                   JVT Core
                                                                 Session Bean
                                                                  Session Bean
                         Ni2Proxy                RMI
                          Ni2Proxy                RMI                N(i)2 2
                                                                      N(i)
                                                                  JVT Query
                                                                   JVT Query
                                                                 Session Bean
                                                                  Session Bean
                            Perl
                             Perl
                                                                     Object
                                                                      Object
                                                                     Model
                                                                      Model


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



        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();
        }


© N(i)2 CONFIDENTIAL                           9 February 2006                                 62
Conclusion




  9 February 2006
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




© N(i)2 CONFIDENTIAL                                     9 February 2006                                                64
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)




© N(i)2 CONFIDENTIAL                                   9 February 2006               65

Más contenido relacionado

La actualidad más candente

Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgArun Gupta
 
Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012Zubair Ali
 
XEO Framework - TDose 2011
XEO Framework - TDose 2011XEO Framework - TDose 2011
XEO Framework - TDose 2011Pedro
 
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDI
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDIBeyond the Basics: An Overview of User LifeCycle and Managing Users with TDI
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDIStuart McIntyre
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGArun Gupta
 
Summer training java
Summer training javaSummer training java
Summer training javaArshit Rai
 
Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7Arun Gupta
 
02.egovFrame Development Environment training book
02.egovFrame Development Environment training book02.egovFrame Development Environment training book
02.egovFrame Development Environment training bookChuong Nguyen
 
GlassFish REST Administration Backend
GlassFish REST Administration BackendGlassFish REST Administration Backend
GlassFish REST Administration BackendArun Gupta
 
TDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationArun Gupta
 
The Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudThe Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudArun Gupta
 
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012Arun Gupta
 
Development of web apps based on JSF (TU Vienna)
Development of web apps based on JSF (TU Vienna)Development of web apps based on JSF (TU Vienna)
Development of web apps based on JSF (TU Vienna)blahap
 
SOA/SCA FraScAti
SOA/SCA FraScAtiSOA/SCA FraScAti
SOA/SCA FraScAtiInria
 
Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Arun Gupta
 
Java EE Technical Keynote - JavaOne India 2011
Java EE Technical Keynote - JavaOne India 2011Java EE Technical Keynote - JavaOne India 2011
Java EE Technical Keynote - JavaOne India 2011Arun Gupta
 
Pure Ejb Within An Agile Context
Pure Ejb Within An Agile ContextPure Ejb Within An Agile Context
Pure Ejb Within An Agile ContextNoam Bunder
 
04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment WorkshopChuong Nguyen
 

La actualidad más candente (20)

Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
 
Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012Forms11 presentation at ssuet 05 sep-2012
Forms11 presentation at ssuet 05 sep-2012
 
XEO Framework - TDose 2011
XEO Framework - TDose 2011XEO Framework - TDose 2011
XEO Framework - TDose 2011
 
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDI
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDIBeyond the Basics: An Overview of User LifeCycle and Managing Users with TDI
Beyond the Basics: An Overview of User LifeCycle and Managing Users with TDI
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
 
Summer training java
Summer training javaSummer training java
Summer training java
 
Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7Java Summit Chennai: Java EE 7
Java Summit Chennai: Java EE 7
 
02.egovFrame Development Environment training book
02.egovFrame Development Environment training book02.egovFrame Development Environment training book
02.egovFrame Development Environment training book
 
GlassFish REST Administration Backend
GlassFish REST Administration BackendGlassFish REST Administration Backend
GlassFish REST Administration Backend
 
TDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE ApplicationTDC 2011: OSGi-enabled Java EE Application
TDC 2011: OSGi-enabled Java EE Application
 
The Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the CloudThe Java EE 7 Platform: Developing for the Cloud
The Java EE 7 Platform: Developing for the Cloud
 
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
 
Development of web apps based on JSF (TU Vienna)
Development of web apps based on JSF (TU Vienna)Development of web apps based on JSF (TU Vienna)
Development of web apps based on JSF (TU Vienna)
 
SOA/SCA FraScAti
SOA/SCA FraScAtiSOA/SCA FraScAti
SOA/SCA FraScAti
 
Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)Unit 07: Design Patterns and Frameworks (3/3)
Unit 07: Design Patterns and Frameworks (3/3)
 
Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6Understanding the nuts & bolts of Java EE 6
Understanding the nuts & bolts of Java EE 6
 
Java EE Technical Keynote - JavaOne India 2011
Java EE Technical Keynote - JavaOne India 2011Java EE Technical Keynote - JavaOne India 2011
Java EE Technical Keynote - JavaOne India 2011
 
Pure Ejb Within An Agile Context
Pure Ejb Within An Agile ContextPure Ejb Within An Agile Context
Pure Ejb Within An Agile Context
 
Java EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolioJava EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolio
 
04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop04.egovFrame Runtime Environment Workshop
04.egovFrame Runtime Environment Workshop
 

Destacado

Technical Portfolio- Environmental Building Hygiene
Technical Portfolio- Environmental Building HygieneTechnical Portfolio- Environmental Building Hygiene
Technical Portfolio- Environmental Building HygieneJoseph Burley
 
Building Your Portfolio
Building Your PortfolioBuilding Your Portfolio
Building Your PortfolioRachel Peters
 
Socsig Frye Clohesy Presentation
Socsig Frye Clohesy PresentationSocsig Frye Clohesy Presentation
Socsig Frye Clohesy PresentationAlan Frye
 
Bio - CV En Jean-Pol Castus 2015 06 16
Bio - CV En Jean-Pol Castus 2015 06 16Bio - CV En Jean-Pol Castus 2015 06 16
Bio - CV En Jean-Pol Castus 2015 06 16Jean-Pol Castus
 
Technical portfolio 15 opteng no backlink
Technical portfolio 15 opteng no backlinkTechnical portfolio 15 opteng no backlink
Technical portfolio 15 opteng no backlinkJames
 
Technical analysis by charts
Technical analysis by chartsTechnical analysis by charts
Technical analysis by chartsSreeram Nishanth
 
Architectural technologist & cad technician portfolio
Architectural technologist & cad technician portfolioArchitectural technologist & cad technician portfolio
Architectural technologist & cad technician portfolioAdrian Navarro
 
Architectural Design Portfolio
 Architectural Design Portfolio Architectural Design Portfolio
Architectural Design PortfolioAlessia Valenza
 
CBDI SAE Togaf V1 21072008
CBDI SAE Togaf V1 21072008CBDI SAE Togaf V1 21072008
CBDI SAE Togaf V1 21072008SOA Process
 
Prefabricated hempcrete specification and installation manual 2016 by studi...
Prefabricated hempcrete specification and installation manual 2016   by studi...Prefabricated hempcrete specification and installation manual 2016   by studi...
Prefabricated hempcrete specification and installation manual 2016 by studi...Jaye Tan
 
Engineering Design Technology Portfolio
Engineering Design Technology PortfolioEngineering Design Technology Portfolio
Engineering Design Technology PortfolioPatrick Redmond
 
Adrian Navarro Architectural Technologist Portfolio
Adrian Navarro Architectural Technologist PortfolioAdrian Navarro Architectural Technologist Portfolio
Adrian Navarro Architectural Technologist PortfolioAdrian Navarro
 
Security analysis (technical) and portfolio management
Security analysis (technical) and portfolio managementSecurity analysis (technical) and portfolio management
Security analysis (technical) and portfolio managementHarish Khan
 
An introduction to architecture and architects
An introduction to architecture and architectsAn introduction to architecture and architects
An introduction to architecture and architectswweinmeyer79
 
Enterprise Architecture & Project Portfolio Management 1/2
Enterprise Architecture & Project Portfolio Management 1/2Enterprise Architecture & Project Portfolio Management 1/2
Enterprise Architecture & Project Portfolio Management 1/2Jean Gehring
 
Architecture Portfolio Ashley Davis
Architecture Portfolio Ashley DavisArchitecture Portfolio Ashley Davis
Architecture Portfolio Ashley DavisAshley Davis
 
Portfolio - Architectural - Student Works
Portfolio - Architectural - Student WorksPortfolio - Architectural - Student Works
Portfolio - Architectural - Student Worksguestc4eb100
 
Cryptzone AppGate Technical Architecture
Cryptzone AppGate Technical ArchitectureCryptzone AppGate Technical Architecture
Cryptzone AppGate Technical ArchitectureCryptzone
 

Destacado (19)

Technical Portfolio- Environmental Building Hygiene
Technical Portfolio- Environmental Building HygieneTechnical Portfolio- Environmental Building Hygiene
Technical Portfolio- Environmental Building Hygiene
 
Building Your Portfolio
Building Your PortfolioBuilding Your Portfolio
Building Your Portfolio
 
Socsig Frye Clohesy Presentation
Socsig Frye Clohesy PresentationSocsig Frye Clohesy Presentation
Socsig Frye Clohesy Presentation
 
Bio - CV En Jean-Pol Castus 2015 06 16
Bio - CV En Jean-Pol Castus 2015 06 16Bio - CV En Jean-Pol Castus 2015 06 16
Bio - CV En Jean-Pol Castus 2015 06 16
 
Technical portfolio 15 opteng no backlink
Technical portfolio 15 opteng no backlinkTechnical portfolio 15 opteng no backlink
Technical portfolio 15 opteng no backlink
 
Technical analysis by charts
Technical analysis by chartsTechnical analysis by charts
Technical analysis by charts
 
Architectural technologist & cad technician portfolio
Architectural technologist & cad technician portfolioArchitectural technologist & cad technician portfolio
Architectural technologist & cad technician portfolio
 
Architectural Design Portfolio
 Architectural Design Portfolio Architectural Design Portfolio
Architectural Design Portfolio
 
CBDI SAE Togaf V1 21072008
CBDI SAE Togaf V1 21072008CBDI SAE Togaf V1 21072008
CBDI SAE Togaf V1 21072008
 
Prefabricated hempcrete specification and installation manual 2016 by studi...
Prefabricated hempcrete specification and installation manual 2016   by studi...Prefabricated hempcrete specification and installation manual 2016   by studi...
Prefabricated hempcrete specification and installation manual 2016 by studi...
 
Engineering Design Technology Portfolio
Engineering Design Technology PortfolioEngineering Design Technology Portfolio
Engineering Design Technology Portfolio
 
Adrian Navarro Architectural Technologist Portfolio
Adrian Navarro Architectural Technologist PortfolioAdrian Navarro Architectural Technologist Portfolio
Adrian Navarro Architectural Technologist Portfolio
 
Security analysis (technical) and portfolio management
Security analysis (technical) and portfolio managementSecurity analysis (technical) and portfolio management
Security analysis (technical) and portfolio management
 
An introduction to architecture and architects
An introduction to architecture and architectsAn introduction to architecture and architects
An introduction to architecture and architects
 
Enterprise Architecture & Project Portfolio Management 1/2
Enterprise Architecture & Project Portfolio Management 1/2Enterprise Architecture & Project Portfolio Management 1/2
Enterprise Architecture & Project Portfolio Management 1/2
 
ARCHITECTURE PG PORTFOLIO
ARCHITECTURE PG PORTFOLIOARCHITECTURE PG PORTFOLIO
ARCHITECTURE PG PORTFOLIO
 
Architecture Portfolio Ashley Davis
Architecture Portfolio Ashley DavisArchitecture Portfolio Ashley Davis
Architecture Portfolio Ashley Davis
 
Portfolio - Architectural - Student Works
Portfolio - Architectural - Student WorksPortfolio - Architectural - Student Works
Portfolio - Architectural - Student Works
 
Cryptzone AppGate Technical Architecture
Cryptzone AppGate Technical ArchitectureCryptzone AppGate Technical Architecture
Cryptzone AppGate Technical Architecture
 

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

Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overviewsbobde
 
Oracle - Programatica2010
Oracle - Programatica2010Oracle - Programatica2010
Oracle - Programatica2010Agora Group
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopArun Gupta
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewEugene Bogaart
 
Session 1 Tp1
Session 1 Tp1Session 1 Tp1
Session 1 Tp1phanleson
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stackALDAN3
 
Oracle ADF Overview
Oracle ADF OverviewOracle ADF Overview
Oracle ADF OverviewBahaa Farouk
 
JEE Course - JEE Overview
JEE Course - JEE  OverviewJEE Course - JEE  Overview
JEE Course - JEE Overviewodedns
 
Java Ide Day 2008 - Presentation on JDeveloper by Paolo Ramasso
Java Ide Day 2008 - Presentation on JDeveloper by Paolo RamassoJava Ide Day 2008 - Presentation on JDeveloper by Paolo Ramasso
Java Ide Day 2008 - Presentation on JDeveloper by Paolo RamassoJUG Genova
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpromanojdhir
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpromanojdhir
 
Introduction to java ee
Introduction to java eeIntroduction to java ee
Introduction to java eeRanjan Kumar
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Futureelliando dias
 
Java Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web ApplicationJava Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web ApplicationIMC Institute
 
Enterprise application developement
Enterprise application developementEnterprise application developement
Enterprise application developementArchana Jha
 

Similar a N(i)2 technical architecture 2.0 (v1 1) (20)

Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overview
 
Oracle - Programatica2010
Oracle - Programatica2010Oracle - Programatica2010
Oracle - Programatica2010
 
Java EE 6
Java EE 6Java EE 6
Java EE 6
 
Spark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 WorkshopSpark IT 2011 - Java EE 6 Workshop
Spark IT 2011 - Java EE 6 Workshop
 
Java Enterprise Edition 6 Overview
Java Enterprise Edition 6 OverviewJava Enterprise Edition 6 Overview
Java Enterprise Edition 6 Overview
 
Ejb and jsp
Ejb and jspEjb and jsp
Ejb and jsp
 
Session 1 Tp1
Session 1 Tp1Session 1 Tp1
Session 1 Tp1
 
J2EE day 1
J2EE day 1J2EE day 1
J2EE day 1
 
Ejbandjsp 200119145750
Ejbandjsp 200119145750Ejbandjsp 200119145750
Ejbandjsp 200119145750
 
WebBee rapid web app development teck stack
WebBee rapid web app development teck stackWebBee rapid web app development teck stack
WebBee rapid web app development teck stack
 
Oracle ADF Overview
Oracle ADF OverviewOracle ADF Overview
Oracle ADF Overview
 
JEE Course - JEE Overview
JEE Course - JEE  OverviewJEE Course - JEE  Overview
JEE Course - JEE Overview
 
Java Ide Day 2008 - Presentation on JDeveloper by Paolo Ramasso
Java Ide Day 2008 - Presentation on JDeveloper by Paolo RamassoJava Ide Day 2008 - Presentation on JDeveloper by Paolo Ramasso
Java Ide Day 2008 - Presentation on JDeveloper by Paolo Ramasso
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpro
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpro
 
Introduction to java ee
Introduction to java eeIntroduction to java ee
Introduction to java ee
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
 
Java Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web ApplicationJava Web Programming [1/9] : Introduction to Web Application
Java Web Programming [1/9] : Introduction to Web Application
 
Enterprise application developement
Enterprise application developementEnterprise application developement
Enterprise application developement
 
Java J2EE
Java J2EEJava J2EE
Java J2EE
 

Más de kvz

Устройство ротации кондиционеров и вентиляции УРКВ-2
Устройство ротации кондиционеров и вентиляции УРКВ-2Устройство ротации кондиционеров и вентиляции УРКВ-2
Устройство ротации кондиционеров и вентиляции УРКВ-2kvz
 
Зарядное устройство TecMate Optimate 6
 Зарядное устройство TecMate Optimate 6 Зарядное устройство TecMate Optimate 6
Зарядное устройство TecMate Optimate 6kvz
 
Преобразователь напряжения 12/220 Орион 60, 70, 90
Преобразователь напряжения 12/220 Орион 60, 70, 90Преобразователь напряжения 12/220 Орион 60, 70, 90
Преобразователь напряжения 12/220 Орион 60, 70, 90kvz
 
Optimate pro8 - инструкция по эксплуатации
Optimate pro8 - инструкция по эксплуатацииOptimate pro8 - инструкция по эксплуатации
Optimate pro8 - инструкция по эксплуатацииkvz
 
Зарядные устройства Кулон 707a, 715a
Зарядные устройства Кулон 707a, 715aЗарядные устройства Кулон 707a, 715a
Зарядные устройства Кулон 707a, 715akvz
 
Зимняя адаптация кондиционера ЭРКО-02
Зимняя адаптация кондиционера ЭРКО-02Зимняя адаптация кондиционера ЭРКО-02
Зимняя адаптация кондиционера ЭРКО-02kvz
 
Сезонный переключатель СП-102
Сезонный переключатель СП-102Сезонный переключатель СП-102
Сезонный переключатель СП-102kvz
 
Автоматическое зарядное устройство Кулон 405 - инструкция по эксплуатации
Автоматическое зарядное устройство Кулон 405 - инструкция по эксплуатацииАвтоматическое зарядное устройство Кулон 405 - инструкция по эксплуатации
Автоматическое зарядное устройство Кулон 405 - инструкция по эксплуатацииkvz
 
Nanoflair autolack manual
Nanoflair autolack manualNanoflair autolack manual
Nanoflair autolack manualkvz
 
Зарядно-пусковое устройство Сонар 209
Зарядно-пусковое устройство Сонар 209Зарядно-пусковое устройство Сонар 209
Зарядно-пусковое устройство Сонар 209kvz
 
Ni2 demo april07
Ni2 demo april07Ni2 demo april07
Ni2 demo april07kvz
 
Incident management user guide v.2.5
Incident management user guide v.2.5Incident management user guide v.2.5
Incident management user guide v.2.5kvz
 
Ni2 Suite installation guide
Ni2 Suite installation guideNi2 Suite installation guide
Ni2 Suite installation guidekvz
 
Nc 500 1
Nc 500 1Nc 500 1
Nc 500 1kvz
 
Sonar201
Sonar201Sonar201
Sonar201kvz
 
Epko
EpkoEpko
Epkokvz
 
паспорт кулон 305
паспорт кулон 305паспорт кулон 305
паспорт кулон 305kvz
 
Rotation unit 380
Rotation unit 380Rotation unit 380
Rotation unit 380kvz
 
Yuasa motorcycle battery guide
Yuasa motorcycle battery guideYuasa motorcycle battery guide
Yuasa motorcycle battery guidekvz
 
БУСЭП-01 Блок управления электроподогревом двигателя
БУСЭП-01 Блок управления электроподогревом двигателяБУСЭП-01 Блок управления электроподогревом двигателя
БУСЭП-01 Блок управления электроподогревом двигателяkvz
 

Más de kvz (20)

Устройство ротации кондиционеров и вентиляции УРКВ-2
Устройство ротации кондиционеров и вентиляции УРКВ-2Устройство ротации кондиционеров и вентиляции УРКВ-2
Устройство ротации кондиционеров и вентиляции УРКВ-2
 
Зарядное устройство TecMate Optimate 6
 Зарядное устройство TecMate Optimate 6 Зарядное устройство TecMate Optimate 6
Зарядное устройство TecMate Optimate 6
 
Преобразователь напряжения 12/220 Орион 60, 70, 90
Преобразователь напряжения 12/220 Орион 60, 70, 90Преобразователь напряжения 12/220 Орион 60, 70, 90
Преобразователь напряжения 12/220 Орион 60, 70, 90
 
Optimate pro8 - инструкция по эксплуатации
Optimate pro8 - инструкция по эксплуатацииOptimate pro8 - инструкция по эксплуатации
Optimate pro8 - инструкция по эксплуатации
 
Зарядные устройства Кулон 707a, 715a
Зарядные устройства Кулон 707a, 715aЗарядные устройства Кулон 707a, 715a
Зарядные устройства Кулон 707a, 715a
 
Зимняя адаптация кондиционера ЭРКО-02
Зимняя адаптация кондиционера ЭРКО-02Зимняя адаптация кондиционера ЭРКО-02
Зимняя адаптация кондиционера ЭРКО-02
 
Сезонный переключатель СП-102
Сезонный переключатель СП-102Сезонный переключатель СП-102
Сезонный переключатель СП-102
 
Автоматическое зарядное устройство Кулон 405 - инструкция по эксплуатации
Автоматическое зарядное устройство Кулон 405 - инструкция по эксплуатацииАвтоматическое зарядное устройство Кулон 405 - инструкция по эксплуатации
Автоматическое зарядное устройство Кулон 405 - инструкция по эксплуатации
 
Nanoflair autolack manual
Nanoflair autolack manualNanoflair autolack manual
Nanoflair autolack manual
 
Зарядно-пусковое устройство Сонар 209
Зарядно-пусковое устройство Сонар 209Зарядно-пусковое устройство Сонар 209
Зарядно-пусковое устройство Сонар 209
 
Ni2 demo april07
Ni2 demo april07Ni2 demo april07
Ni2 demo april07
 
Incident management user guide v.2.5
Incident management user guide v.2.5Incident management user guide v.2.5
Incident management user guide v.2.5
 
Ni2 Suite installation guide
Ni2 Suite installation guideNi2 Suite installation guide
Ni2 Suite installation guide
 
Nc 500 1
Nc 500 1Nc 500 1
Nc 500 1
 
Sonar201
Sonar201Sonar201
Sonar201
 
Epko
EpkoEpko
Epko
 
паспорт кулон 305
паспорт кулон 305паспорт кулон 305
паспорт кулон 305
 
Rotation unit 380
Rotation unit 380Rotation unit 380
Rotation unit 380
 
Yuasa motorcycle battery guide
Yuasa motorcycle battery guideYuasa motorcycle battery guide
Yuasa motorcycle battery guide
 
БУСЭП-01 Блок управления электроподогревом двигателя
БУСЭП-01 Блок управления электроподогревом двигателяБУСЭП-01 Блок управления электроподогревом двигателя
БУСЭП-01 Блок управления электроподогревом двигателя
 

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

  • 1. The N(i)2 Suite Technical Architecture Partner Training 9 February 2006
  • 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 © N(i)2 CONFIDENTIAL 9 February 2006 2
  • 3. Technical Architecture 9 February 2006
  • 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 © N(i)2 CONFIDENTIAL 9 February 2006 4
  • 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” > … © N(i)2 CONFIDENTIAL 9 February 2006 5
  • 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 © N(i)2 CONFIDENTIAL 9 February 2006 6
  • 7. Server Components Java Client RMI-IIOP J2EE Container Web Container J2EE Container Web Container Session Beans JSP Session Beans JSP Functional Module OSS/J Servlets Functional Module OSS/J Servlets HTTP Functional Modules Web Client Functional Modules Facade *ML Facade ` ` J2EE Application Server Web Services Entities Entities Hibernate EAI Client Entities Entities Entities Entities Beans Entities Entities Hibernate Entities Entities Beans Entities Entities JDBC, LDAP, JDO, EJB, JCA … Data LDAP RDBMS GIS Data LDAP RDBMS GIS Source Source © N(i)2 CONFIDENTIAL 9 February 2006 7 XML
  • 8. Rich Client Components Java 2 (Swing) and JavaWebStart enabled for automatic updates. Workflow Engine Workflow Engine Bean Shell event Java Bean Shell Script Java XML Script Function XML Config Function Function Provider Config Function Provider File Provider Library File Provider Library Library Library Action Browser Action Browser Workflow Framework Broker Broker I18N … JVT I18N … HTTP Query HTTP Query JVT Swing Framework Proxy Framework © N(i)2 CONFIDENTIAL 9 February 2006 8
  • 9. Web Client Architecture J2EE Container Web Container J2EE Container Web Container Business Business JSP HTTP Logic JSP Web Client Logic JVT JSF *ML JVT JSF Session Session Actions Bean ` Actions Bean ` Persistence Persistence Form Form Beans Beans Based on JSF (MVC) J2EE Application Server AJAX enabled client © N(i)2 CONFIDENTIAL 9 February 2006 9
  • 10. Typical Deployment Architecture Clients Application Server Database Server RMI (over IP) Oracle ; OCI (TCP) Hardware Configuration Hardware Configuration Hardware Configuration • Intel P4 equivalent (min 2.4 • Min Intel P4 equivalent (min 2.4 Ghz) • Min Intel P4 equivalent (min 2.4 Ghz) Ghz) • Min 2 GB RAM • Min 2 GB RAM • Min 512 KB RAM Software Software Software • Jboss 4.0.3 SP1 Application Server • Windows Server 2003 • JRE 1.5 • JDK 1.5 • Oracle 10g (Ni2 Instance) • Windows 2000, XP or Linux • Windows Server 2003 © N(i)2 CONFIDENTIAL 9 February 2006 10
  • 11. The N(i)2 CMDB Platform 9 February 2006
  • 12. The CMDB Platform Tabular Space Graphical Application Tabular Space Graphical Application Views Views Views Functions Views Views Views Functions & & Processes Processes Tree Tree Views Map Map Views Network Network Views View Controller Views Views Views Workflow/Rules Profile IMAC Query Workflow/Rules Profile IMAC Query Engine Management Management Engine Engine Management Management Engine CMDB CMDB Physical (Active & Passive elements, Structures) Physical (Active & Passive elements, Structures) Logical (Circuits, Facilities, Services, Software) Logical (Circuits, Facilities, Services, Software) Model Financial (Cost, TCO, Service Fee,…) Financial (Cost, TCO, Service Fee,…) Contractual (Support, Maintenance, License, …) Contractual (Support, Maintenance, License, …) ….. ….. Any Data Persistence Reconciliation Location Meta-Data Any Data Persistence Reconciliation Location Meta-Data Source Management Engine Engine Management Source Management Engine Engine Management © N(i)2 CONFIDENTIAL 9 February 2006 12
  • 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) © N(i)2 CONFIDENTIAL 9 February 2006 13
  • 15. Concepts ; Rule-Based Workflow N(i)2 uses a rule-based workflow engine in order to apply the best solution for a specific business function by providing and selecting the best available combination of data thanks to business rules. Ex: > N(i)2 will suggest the appropriate network asset for connecting specific networks connections Assist and suggest the user to perform a task © N(i)2 CONFIDENTIAL 9 February 2006 15
  • 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 a button, 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. © N(i)2 CONFIDENTIAL 9 February 2006 16
  • 17. Workflows Samples <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.7//EN" "http://www.opensymphony.com/osworkflow/workflow_2_7.dtd"> <workflow> <initial-actions> ... </initial-actions> <steps> ... </steps> </workflow> © N(i)2 CONFIDENTIAL 9 February 2006 17
  • 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> © N(i)2 CONFIDENTIAL 9 February 2006 18
  • 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" /> © N(i)2 CONFIDENTIAL 9 February 2006 19
  • 20. Condition <action id="1" name="Start First Draft"> <restrict-to> <restrict- <conditions> <condition type="class"> <arg name="class.name"> name="class.name"> com.opensymphony.workflow.util.StatusCondition </arg> </arg> <arg name="status">Queued</arg> name="status">Queued</arg> </condition> </conditions> </restrict-to> </restrict- <results> <unconditional-result old-status="Finished" status="Underway" step="1"/> <unconditional- old- </results> </action> © N(i)2 CONFIDENTIAL 9 February 2006 20
  • 21. Functions 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 <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> © N(i)2 CONFIDENTIAL 9 February 2006 21
  • 22. Reconciliation 9 February 2006
  • 23. Reconciliation Engine - Concepts Survey Plans Excel, ERP, CRM Reconciliation Auto-discovery Databases The N(i)2 Suite leverages multiple sources of information to reconcile them with the inventory > Allows rapid initial load > Maintains accuracy © N(i)2 CONFIDENTIAL 9 February 2006 23
  • 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) © N(i)2 CONFIDENTIAL 9 February 2006 24
  • 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 © N(i)2 CONFIDENTIAL 9 February 2006 25
  • 26. Reconciliation (Import) Process -Strategy Data Source Data Source N(i)2 Reconciliation Module N(i)2 Server Provider ASCII ASCII ASCII Excel Excel Excel transform Auto-Discovery Tool Meta-Data Survey XML and XML XML Data JVT Session input input Mapping Query/Update/Create The N(i)2 Process Solution External XML XML - Java System Beans Rule-based (API or DB) Engine Queries N(i)2 Export e E-NRM stor Reconciliation Meta-Data Rules Tools Model Rules Rules DB DB © N(i)2 CONFIDENTIAL 9 February 2006 26
  • 27. Reconciliation (Export) Process Data Outputs N(i)2 Reconciliation Module N(i)2 Server Meta-Data and JVT Session Data Query/Get The N(i)2 XML Mapping XML Export Solution XML Process - Rule-based Queries Engine E-NRM Meta-Data Rules Model Rules Rules © N(i)2 CONFIDENTIAL 9 February 2006 27
  • 28. Technologies – Rules Engine 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 can modify the Agenda and thus the Rules will be re-evaluated. The process continues until no Rule can executed. © N(i)2 CONFIDENTIAL 9 February 2006 28
  • 29. Technologies – Rules Engine Before the Rule can be evaluated, the Agenda needs first to be filled up with the data to reconcile. 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. © N(i)2 CONFIDENTIAL 9 February 2006 29
  • 30. Technologies - How to write rules The way the Rules are written depends on the type of information contained in the Agenda. > In order to simplify them, it’s very important to analyze and – in some cases- transform the information 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 is done before the Drools, why using Drools?’ © N(i)2 CONFIDENTIAL 9 February 2006 30
  • 31. Spatial and Location 9 February 2006
  • 32. Implementation ; GIS Architecture GIS-enable GIS-enable DB DB (Oracle Spatial (Oracle Spatial or PostGIS) OpenGIS Server (GeoServer) or PostGIS) OpenGIS Server (GeoServer) WFS GML WFS Location Location Datastore Space Datastore Space SLD Interfaces GIS files Views SLD Interfaces GIS files Views WMS Rendering (MIF, SHP) GIS files GIS files GIF/PNG/JPEG WMS Rendering Engine (MIF, SHP) GIS files (MIF, SHP) (MIF, SHP) Engine (MIF, SHP) Java Swing Java Swing J2EE Server J2EE Server GIS files GIS files (MIF, SHP) GIS files (MIF,SLD SHP) (MIF,SLDSHP) files files Images (GIF/PNG/JPEG) will be used to provide background maps or images Geometry Features (GML) will be used to provide managed entities representations (selection able feature) © N(i)2 CONFIDENTIAL 9 February 2006 32
  • 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” © N(i)2 CONFIDENTIAL 9 February 2006 33
  • 34. Meta-Data 9 February 2006
  • 35. Concepts ; Model Driven Architecture Fully customizable application models Meta-Data Meta-Data (XML) > enabling fast and iterative development (XML) Modeling of … > Application modules and functions Object Model Object Model (J2EE) > User Interface Layout (J2EE) > User Profiling (users, roles, rights) > Objects definition (attributes, default/range values, rules) > Associations definition (A-Z objects, attributes, rules, default values) Persistence Persistence > Rendering rules Model (Any) Model (Any) > Workflow processes > Deployment process : Cartridges and deployable unit (client tier, web tier, application tier, persistence tier) © N(i)2 CONFIDENTIAL 9 February 2006 35
  • 36. Concepts: Model Driven Architecture Application Developer Java Interfaces Compilation Business Framework Developer Public Public XVT Interfaces Interfaces & Deployment Interfaces & JVT Interfaces Modeler Templates Templates XML Schemas XSD XSD Application Application Code Application Business Application Business Models Development Generation Java Classes Compilation & Deployment Business Models XML Models Kit Engine XVT & JVT Implementation Session Beans XSD (XSD?) Implementation Java Classes XSD Templates Entity Beans Templates XVT & JVT Implementation Session Beans Application Value XSD Objects XSD SQL DD Implementation Templates Entity Beans Templates Value XSD Objects Server XSD Visual Public Implementation Deployment SQL DD Tool Public Interfaces Public Interfaces Templates Templates Implementation Implementation XSL Templates Deployment Deployment XSL Deployment Interfaces Templates Templates Deployment Compilation Templates XSL Templates XML Templates XML Deployment & Deployment Web Browser Templates XSD XML XSD XSD XSD XSD Deployment Descriptor Templates XSD Templates WDSL XSD XSD Hand-coded implementation based on generated code skeletons User Interfaces Open to any User Interfaces Templates User Interfaces UI Components Templates UI Components other templates XML JavaComponents UI Beans, UI Components Templates Java Beans, Java Beans, JSP Servlets UI Components UI Components Java Beans, Java Beans, UI JSP Servlets Java Beans, JSP Servlets JSP Servlets JSP Servlets JSP Servlets Frameworks Running Artifact Software Not yet implemented Implemented © N(i)2 CONFIDENTIAL 9 February 2006 36
  • 37. Concepts: Workflow Configuration © N(i)2 CONFIDENTIAL 9 February 2006 37
  • 39. Admin The three main concepts are: > The identification restricts the usage of the application to users that have an id and a password. This is represented by the EndUser category (only one EndUser subcategory) and the IsIdentifiedBy association. > The rights are the list of privileges that can be checked by the system to give access or restrict the access to a function. The end users will not be able to modify this information. > The roles are used to bind some rights to an end user. The HasPermission association binds some rights and/or roles to an endUser or to a role. In other words, a role is a set of rights and/or other roles. And some roles can be assigned to an endUser as well as individual rights. © N(i)2 CONFIDENTIAL 9 February 2006 39
  • 40. Admin © N(i)2 CONFIDENTIAL 9 February 2006 40
  • 41. License Management 9 February 2006
  • 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 © N(i)2 CONFIDENTIAL 9 February 2006 42
  • 43. Content Management 9 February 2006
  • 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 file system 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 scalability and less latency > Centralize repository: all documents are stored in a same secure place (easy to backup, security access, 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 © N(i)2 CONFIDENTIAL 9 February 2006 44
  • 46. Discovery Architecture Discovery Engine Reconciliation Engine N(i)2 Server Remote Windows Registry Access WMI JVT Session input Drools Rules Engine Query/Update/Create The N(i)2 Solution SNMP Laptops ICMP Reconciliation E-NRM Rules Meta-Data Associations Model List IP addresses, Reconciliation Sub networks Rules Servers to scan Reconciliation Rules © N(i)2 CONFIDENTIAL 9 February 2006 46
  • 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 © N(i)2 CONFIDENTIAL 9 February 2006 47
  • 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 95 and 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, …. © N(i)2 CONFIDENTIAL 9 February 2006 48
  • 49. WMI Windows Management Instrumentation (WMI) is the Microsoft implementation of Web-Based Enterprise Management (WBEM) > WBEM is an DMTF industry initiative to develop a standard technology for accessing management information 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 a WBEM option install. A later, more comprehensive, version (WMI CORE 1.5 (Windows 95/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 available from http://www.microsoft.com/downloads. © N(i)2 CONFIDENTIAL 9 February 2006 49
  • 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:Ni2DocsBusinessModelingRequirementsDiscoveryni2_auto_discovery_WMI.ppt © N(i)2 CONFIDENTIAL 9 February 2006 50
  • 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: SOFTWAREMicrosoftWindowsCurrentVersionUninstall © N(i)2 CONFIDENTIAL 9 February 2006 51
  • 52. Discovery Process Discovery Process 1. A list of IP addresses, sub-networks to scan with the different protocols to use (WMI, SNMP, Remote Registry) 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 on Drools rules, the information is reconcile with the N(i)2 server. © N(i)2 CONFIDENTIAL 9 February 2006 52
  • 53. Summary Protocols Operating System Security Information Supported Discovered ICMP ALL Rely on TCP/IP Very basic: host alive protocol and firewalls or not WMI All Windows platform The host needs to be Based on the WBEM (NT, 98 and 95 need in a trusted domain specific driver to be name. User with installed) specific privilege required Remote Windows All Windows platform The host needs to be Access the registry to Registry Access (NT, 98 and 95 need a in a trusted domain discover the installed driver to be installed) name. User with software specific privilege required SNMP Unix, Windows, MAC Handle by the SNMP The discovered OS X, Printers, implementations. information depends Router, etc on the MIBs available for the host © N(i)2 CONFIDENTIAL 9 February 2006 53
  • 54. L10n, i18n 9 February 2006
  • 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 and country code) > Resource Bundle – Properties files retrieve base on the current Locale MessagesBundle.properties MessagesBundle_en.properties MessagesBundle_en_US.properties MessagesBundle_fr_FR.properties > All the strings are externalized to the resource bundles using key/value. The key replace the string in code and the translated value is set in the corresponding property bundle. © N(i)2 CONFIDENTIAL 9 February 2006 55
  • 56. API Overview 9 February 2006
  • 57. Client Scripting and Default Values Default values are formulas that are used to generate initial values for fields of newly created instances 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 an attribute of a specified category. This means that everywhere in the application, when an instance of the specified category will be created, this default value will be used, except if it was overridden by the following ones. > Secondly, default values can be set at the resource type level. These default values are optional formulas that can be set in order to override the default values that were set at the category level. If no 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 be instantiated in the inventory. These default values, if specified, override the default values that are set at the resource type or at the category level. > Finally, some workflows (not implemented) allow overriding all the default values described here above just for the time of the workflows execution. © N(i)2 CONFIDENTIAL 9 February 2006 57
  • 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 always respect the beanshell specifications. The value returned by the script is the value that will be set as initial value in the object instance field. © N(i)2 CONFIDENTIAL 9 February 2006 58
  • 59. API Strategy Billing, Customer Care, Revenue Assurance, … Business Billing, Customer Care, Revenue Assurance, … Billing, Customer Care, Revenue Assurance, … Management Layer Web OSS/J Java XML Service 3rd party OSS/J Network Network Management Web Service Network Network Management Network N(i)22Suite N(i) Suite System ManagementAsset Inventory or System Management Management System Layer CMDB CMDB Java/XML System (CMDB) LDAP WMI SNMP XML OSS/J Network Element Management System Element Management Layer Network Network Network Network Network Network Element Network Element Network Element Network Element Element Element © N(i)2 CONFIDENTIAL Element 9 February 2006 Element Element 59
  • 60. API Model Architecture N(i)2 2 N(i) JVT Core JVT Core Session Bean Session Bean Ni2Proxy RMI Ni2Proxy RMI N(i)2 2 N(i) JVT Query JVT Query Session Bean Session Bean The N(i)2 2 Client The N(i) Client Web Services Object Web Services Object Model Model Any client Any client The N(i)2 2 Server The N(i) Server 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 CONFIDENTIAL 9 February 2006 60
  • 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 © N(i)2 CONFIDENTIAL 9 February 2006 61
  • 62. Perl Integration N(i)2 2 N(i) JVT Core JVT Core Session Bean Session Bean Ni2Proxy RMI Ni2Proxy RMI N(i)2 2 N(i) JVT Query JVT Query Session Bean Session Bean Perl Perl Object Object Model Model The N(i)2 2 Server The N(i) Server 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(); } © N(i)2 CONFIDENTIAL 9 February 2006 62
  • 63. Conclusion 9 February 2006
  • 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 © N(i)2 CONFIDENTIAL 9 February 2006 64
  • 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) © N(i)2 CONFIDENTIAL 9 February 2006 65