AutonomIQ™ Technology Overview
June 2005
By Dr. George Vanecek, Jr.
UXComm Objectives
 Create a service management middleware,
based on
 A generalized and extensible protocol
mediation and translation and API
abstraction mechanism, to
 Configure, control, monitor, and provision
networked service assets, and
 Address heterogeneity, interoperability, and
change in the service assets.
UXComm Solution
 Create an engine that
 Is very small by providing minimal built-in
functionality
 Is O.S. independent
 Is powerful by extending its support
capabilities on demand
 Offers a self-describing service views of
native services
 Can support an agent architecture
Service Request/Response
CLIENT
or
AGENT AGENT
Service Request
with Reference to a
Service Specification
XML/HTML
Response
Download
Server
Service Specification,
Adaptors,
and
Required Libraries4
1
2
3
Service Request
Execution
HTTP/S
Holds for requests over other protocols such as SNMP or CLI over Telnet.
IA2 Engine
Applications as Collection of Services
Workflow
Manager
CLI (Telnet) Web (HTTP)
Persistent
Store
Event
Manager
SNMP
Manager
WMI
Client
HPI
Client
SNMP
Agent
Example Application Service
 IA2 Engine
executes services
and facilitates
communication
between services
via
service requests
IA2 Engine
(Java)
Service Specification
(XDS written in XDL)
Service Request
(XSR)
Service Execution Environment
Service Request
Service Definition
(Interface)
Service Implementation
Shared Libraries
External APIs, Protocols, O.S.s, Applications
Adaptor Actions
XDL: eXtensible Design Language
Is a meta-language for authoring the service
specifications (XDS’s)
Decomposes a complex service into a
hierarchy or groups of logical sub-services
Offers a natural encoding of pre/post actions
associated with each sub-service
Is compiled by the engine (not interpreted)
Allows imports of engine extensions by
loading adaptors and share libraries/stacks
Example Specification and Request
Cisco IOS
Specification
Request to
Install a tar file
XDS Example (as XML)
<xds id=“…” …>
<node name=“demo”
xmlns:io=“/adapter/IOAdapter.jar”>
<args> …Arguments… </args>
<subnodes>
<node name=“createHelloWorld” …>
<args>…Arguments… </args>
<do>
<io:open file=“path”/>
<io:write string=“hello world”/> …
<io:close/>
</do>
</node>
…Other Commands…
</subnodes>
</node>
</xds>
demo
createHelloWorld …
Script Programs
 All command are
supplied by adaptors
 Commands are simple
or structured
 Use typed arguments
 Support exchange of
POJO’s
Engine Adaptor
 Collection of related commands
 Written in Java (Bundled as JAR files)
 Designed to extend the engine’s run-time
support
 Optionally provide access to reusable libraries
and stacks
 Loaded when some XDS requires them
 Support drag & drop visual editing of XDS
scripts in IDE
 Adaptor commands are engine co-agents:
 Self-parsing from XDS XML file
 Self-printing to the XDS XML file
Example Script
Note:
IOS XDS
implemented as
CLI over Telnet
with
 IO
 Expect
 FCLang
 Exception
adaptors.
Using AIQ Adaptors
XDS
<node name … xmlns:an=“URL”>
<do>
…
<an:some-action arg1=“…” arg2=“…”/>
…
</do>
Adaptor
Loader/Cache
Load
Adaptor
class SomeAction
extends XDSAction
{
String arg1;
String arg2;
exec(…) { }
printXML(…){ }
parse(…) { }
}
Instantiate
Action
Execute
Name
XDS Structure
Arguments
(name,type,default)
Pre
Actions
Post
Actions
Exception Handlers
Program
based on actions
from imported
adaptors
Adaptor/Library Imports
 An XDS node represents a sub-service
XDS, XWS
Specifications
IA2 Engine
AutonomIQ Engine Architecture
O.S. + Hardware
JVM
XDL Compiler
XSR Interpreter
XDS Cache
Adaptor Cache
SNMP
IPMI
HPIJDBC
Telnet
WakeOnLAN
HTTP/S SBLIM
WMI
SOAP
CIM
XML
Applications
Adaptor/Lib Repository
<xsr ref=“http://xds.uxcomm.com/dsp/workflows/provisionBlade.xws”>
<provisionBlade tmip=“10.10.10.4” tmport=“6964” …/>
</xsr>
Service
Requests
…
XML Repository
HTTP
HTTP
HTTP
Engine Execution Layers
Stack
Component
Specialization
Adaptor
Interface
Java
Component
Specification
Workflows
Application
XDS
XWS
Projects
Application
Specification
Java Threads
Task Thread
Management
Workflow Interface
Workflow Scheduler
Discovery
Fail-over Provisioning
On-Demand Asset Tracking (OAT)
SNMP Agent
SNMP Interface
SNMP
Manager/Handler
SNMP Stack
OAT Master/Agents
Request
Driven
Loading
Examples
Only
Adaptor
AIQ IDE:
The Integrated Development
and Execution Environment
Building Application Services
1. Using IDE, author services
 Create low-level service specifications
(to control legacy components)
 SNMP, IPMI, WMI, Cisco IOS, …
 Create application component service specifications
(to add new components)
 Workflow Manager, Persistence Store, Event Handler,
Event Monitor, …
 Create application service specifications
(using low-level/application components)
 Internet Gateway, Download Server, ATCA NMS…
1. Optionally Build UI
2. Deploy Agent (Engine with Front-End such as HTTP or
CLI)
 With access to service specifications and support files.
IDE: Key Components
Manage
Projects
Service
Requests
Editor
Service Requests
Execute/Trace/Debug
Manage
Adaptors
XDS Editor
Script
Editor
IDE: Support Dialogs
Manage
IDE Add-ons
Monitor Threads
Edit IDE
Properties
Profiler
Heap Monitor
IDE: XDS Editor Support
Adaptor
Chooser
Expression
Editor
IDE: Workflow Editing
Workflow
Editor
Task
Wizard
Graphical
Viewer
IDE: HTML/Request Wizard
HTML Wizard
Wizard Interface
HTML Text
Editor
Web Browser
Preview and
Execution
IDE: Documentation Support
Integrated
Web
Browser
Component
Pane
Help
XDSDoc
Viewer
IDE: Request Support
XSR Debugger
Breakpoints
And
Single Step
Execution
Example AIQ Adaptors:
SNMP, CLI
SNMP Adaptor and Service
 Versions v1, v2c, v3
 Manager
 Agent
 SNMPv2 USM and VACM
 Trap/Inform Handler
 Proxy Forwarder
 MIB
 Table Support
 MIB Parser for SMIv1 and
SMIv2
 Programmable MIB
queries
CLI Adaptor and Service
 Telnet/SSH protocols
 User-based Access Control
 Command history
 Command-line editing (e.g., Emacs)
 Built-in commands
(e.g., help, up)
 XDS programmable
 Input Syntax
 XML or Text Output
Syntax (via XSLT)
 Multiple-session capable
 XSR interoperable
AIQ SDK:
The Service Development Kit
AIQ SDK: Service Development Kit
 Engine and agent run-time support.
 Set of adaptors and required libraries
 IDE for
 Authoring service specifications
 Authoring simple HTML UIs
 Authoring and execution service requests
 Support for
 Authoring new AIQ Adaptors (given JAPI)
 Documentation
 Sample Adaptor source code
 Sample Projects with support files
SDK: Included Adaptors
 Admin Agent administration
 Array Array data structure
 CLID CLI Server
 Exception Exception handling
 Expect I/O pattern filter
 FCLang Flow control and variable support
 IO File I/O, sockets, and process support
 Log Logging
 RegExp Regular Expressions
 System Thread, timers, and synchronization
 Table Hash table data structure
 HTTPD Web server
 JDBC SQL
 SNMP SNMP v1, v2c and v3 agent, manager, mib
 XML XML parser and DOM
 Workflow Workflow execution and management
AIQ Agent Run-time Requirements
 JVM
 Supports J2ME CDC 1.1 with base adaptor set
(J2SE 1.3).
 J2SE 1.4 with full adaptor set
 Disk Requirements
 AIQ engine 256K
 Support libraries <2M (e.g. XML parser, JSSE)
 Base adaptor set <1M
 Memory Requirements
 Minimum 16Mb
Summary: What this all means is that
 The IA2 engine supports a
reconfigurable agent architecture for
creating new domain specific parsers
and execution environments (XDS’s)
for various classes of service requests
(XSR’s).
Summary
 Universal eXtensible Communicator
 Ergo, UXComm

UXComm: Universal XML Communicator, an Agent Architecture

  • 1.
    AutonomIQ™ Technology Overview June2005 By Dr. George Vanecek, Jr.
  • 2.
    UXComm Objectives  Createa service management middleware, based on  A generalized and extensible protocol mediation and translation and API abstraction mechanism, to  Configure, control, monitor, and provision networked service assets, and  Address heterogeneity, interoperability, and change in the service assets.
  • 3.
    UXComm Solution  Createan engine that  Is very small by providing minimal built-in functionality  Is O.S. independent  Is powerful by extending its support capabilities on demand  Offers a self-describing service views of native services  Can support an agent architecture
  • 4.
    Service Request/Response CLIENT or AGENT AGENT ServiceRequest with Reference to a Service Specification XML/HTML Response Download Server Service Specification, Adaptors, and Required Libraries4 1 2 3 Service Request Execution HTTP/S Holds for requests over other protocols such as SNMP or CLI over Telnet.
  • 5.
    IA2 Engine Applications asCollection of Services Workflow Manager CLI (Telnet) Web (HTTP) Persistent Store Event Manager SNMP Manager WMI Client HPI Client SNMP Agent Example Application Service  IA2 Engine executes services and facilitates communication between services via service requests
  • 6.
    IA2 Engine (Java) Service Specification (XDSwritten in XDL) Service Request (XSR) Service Execution Environment Service Request Service Definition (Interface) Service Implementation Shared Libraries External APIs, Protocols, O.S.s, Applications Adaptor Actions
  • 7.
    XDL: eXtensible DesignLanguage Is a meta-language for authoring the service specifications (XDS’s) Decomposes a complex service into a hierarchy or groups of logical sub-services Offers a natural encoding of pre/post actions associated with each sub-service Is compiled by the engine (not interpreted) Allows imports of engine extensions by loading adaptors and share libraries/stacks
  • 8.
    Example Specification andRequest Cisco IOS Specification Request to Install a tar file
  • 9.
    XDS Example (asXML) <xds id=“…” …> <node name=“demo” xmlns:io=“/adapter/IOAdapter.jar”> <args> …Arguments… </args> <subnodes> <node name=“createHelloWorld” …> <args>…Arguments… </args> <do> <io:open file=“path”/> <io:write string=“hello world”/> … <io:close/> </do> </node> …Other Commands… </subnodes> </node> </xds> demo createHelloWorld …
  • 10.
    Script Programs  Allcommand are supplied by adaptors  Commands are simple or structured  Use typed arguments  Support exchange of POJO’s
  • 11.
    Engine Adaptor  Collectionof related commands  Written in Java (Bundled as JAR files)  Designed to extend the engine’s run-time support  Optionally provide access to reusable libraries and stacks  Loaded when some XDS requires them  Support drag & drop visual editing of XDS scripts in IDE  Adaptor commands are engine co-agents:  Self-parsing from XDS XML file  Self-printing to the XDS XML file
  • 12.
    Example Script Note: IOS XDS implementedas CLI over Telnet with  IO  Expect  FCLang  Exception adaptors.
  • 13.
    Using AIQ Adaptors XDS <nodename … xmlns:an=“URL”> <do> … <an:some-action arg1=“…” arg2=“…”/> … </do> Adaptor Loader/Cache Load Adaptor class SomeAction extends XDSAction { String arg1; String arg2; exec(…) { } printXML(…){ } parse(…) { } } Instantiate Action Execute
  • 14.
    Name XDS Structure Arguments (name,type,default) Pre Actions Post Actions Exception Handlers Program basedon actions from imported adaptors Adaptor/Library Imports  An XDS node represents a sub-service
  • 15.
    XDS, XWS Specifications IA2 Engine AutonomIQEngine Architecture O.S. + Hardware JVM XDL Compiler XSR Interpreter XDS Cache Adaptor Cache SNMP IPMI HPIJDBC Telnet WakeOnLAN HTTP/S SBLIM WMI SOAP CIM XML Applications Adaptor/Lib Repository <xsr ref=“http://xds.uxcomm.com/dsp/workflows/provisionBlade.xws”> <provisionBlade tmip=“10.10.10.4” tmport=“6964” …/> </xsr> Service Requests … XML Repository HTTP HTTP HTTP
  • 16.
    Engine Execution Layers Stack Component Specialization Adaptor Interface Java Component Specification Workflows Application XDS XWS Projects Application Specification JavaThreads Task Thread Management Workflow Interface Workflow Scheduler Discovery Fail-over Provisioning On-Demand Asset Tracking (OAT) SNMP Agent SNMP Interface SNMP Manager/Handler SNMP Stack OAT Master/Agents Request Driven Loading Examples Only Adaptor
  • 17.
    AIQ IDE: The IntegratedDevelopment and Execution Environment
  • 18.
    Building Application Services 1.Using IDE, author services  Create low-level service specifications (to control legacy components)  SNMP, IPMI, WMI, Cisco IOS, …  Create application component service specifications (to add new components)  Workflow Manager, Persistence Store, Event Handler, Event Monitor, …  Create application service specifications (using low-level/application components)  Internet Gateway, Download Server, ATCA NMS… 1. Optionally Build UI 2. Deploy Agent (Engine with Front-End such as HTTP or CLI)  With access to service specifications and support files.
  • 19.
    IDE: Key Components Manage Projects Service Requests Editor ServiceRequests Execute/Trace/Debug Manage Adaptors XDS Editor Script Editor
  • 20.
    IDE: Support Dialogs Manage IDEAdd-ons Monitor Threads Edit IDE Properties Profiler Heap Monitor
  • 21.
    IDE: XDS EditorSupport Adaptor Chooser Expression Editor
  • 22.
  • 23.
    IDE: HTML/Request Wizard HTMLWizard Wizard Interface HTML Text Editor Web Browser Preview and Execution
  • 24.
  • 25.
    IDE: Request Support XSRDebugger Breakpoints And Single Step Execution
  • 26.
  • 27.
    SNMP Adaptor andService  Versions v1, v2c, v3  Manager  Agent  SNMPv2 USM and VACM  Trap/Inform Handler  Proxy Forwarder  MIB  Table Support  MIB Parser for SMIv1 and SMIv2  Programmable MIB queries
  • 28.
    CLI Adaptor andService  Telnet/SSH protocols  User-based Access Control  Command history  Command-line editing (e.g., Emacs)  Built-in commands (e.g., help, up)  XDS programmable  Input Syntax  XML or Text Output Syntax (via XSLT)  Multiple-session capable  XSR interoperable
  • 29.
    AIQ SDK: The ServiceDevelopment Kit
  • 30.
    AIQ SDK: ServiceDevelopment Kit  Engine and agent run-time support.  Set of adaptors and required libraries  IDE for  Authoring service specifications  Authoring simple HTML UIs  Authoring and execution service requests  Support for  Authoring new AIQ Adaptors (given JAPI)  Documentation  Sample Adaptor source code  Sample Projects with support files
  • 31.
    SDK: Included Adaptors Admin Agent administration  Array Array data structure  CLID CLI Server  Exception Exception handling  Expect I/O pattern filter  FCLang Flow control and variable support  IO File I/O, sockets, and process support  Log Logging  RegExp Regular Expressions  System Thread, timers, and synchronization  Table Hash table data structure  HTTPD Web server  JDBC SQL  SNMP SNMP v1, v2c and v3 agent, manager, mib  XML XML parser and DOM  Workflow Workflow execution and management
  • 32.
    AIQ Agent Run-timeRequirements  JVM  Supports J2ME CDC 1.1 with base adaptor set (J2SE 1.3).  J2SE 1.4 with full adaptor set  Disk Requirements  AIQ engine 256K  Support libraries <2M (e.g. XML parser, JSSE)  Base adaptor set <1M  Memory Requirements  Minimum 16Mb
  • 33.
    Summary: What thisall means is that  The IA2 engine supports a reconfigurable agent architecture for creating new domain specific parsers and execution environments (XDS’s) for various classes of service requests (XSR’s).
  • 34.
    Summary  Universal eXtensibleCommunicator  Ergo, UXComm

Editor's Notes

  • #3 Original ASPO/AONet UXDriver used as model (direction setter).
  • #4 Capture the notion that the engine is modular, extensible dialect maker. Instead of a platform that tries to create a majority solution based on a majority rule, it uses a minimal, individual custom…
  • #19 Low-level service definitions