34
AutonomIQ™ Technology Overview June 2005 By Dr. George Vanecek, Jr.

UXComm: Universal XML Communicator, an Agent Architecture

Embed Size (px)

DESCRIPTION

In 2000, I along with a small group of software professionals set out to create a universal device/system-agnostic communication and control system that would allow any system or device to reconfigure and retool itself to adopt to changes in the environment. We also wanted to define a meta-language that would allow each device to be self-describing and self-configuring. We embedded the engine in Cisco IOS kernel but aside from creating the most versatile remote control system, we also managed to blow a huge hole in the network infrastructure security, effectively killing the effort.

Citation preview

Page 1: UXComm: Universal XML Communicator, an Agent Architecture

AutonomIQ™ Technology OverviewJune 2005

By Dr. George Vanecek, Jr.

Page 2: UXComm: Universal XML Communicator, an Agent Architecture

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.

Page 3: UXComm: Universal XML Communicator, an Agent Architecture

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

Page 4: UXComm: Universal XML Communicator, an Agent Architecture

Service Request/Response

CLIENTor

AGENT AGENT

Service Requestwith Reference to a Service Specification

XML/HTMLResponse

DownloadServer

Service Specification,Adaptors,

andRequired Libraries4

12

3

Service RequestExecution

HTTP/S

Holds for requests over other protocols such as SNMP or CLI over Telnet.

Page 5: UXComm: Universal XML Communicator, an Agent Architecture

IA2 Engine

Applications as Collection of Services

WorkflowManager

CLI (Telnet) Web (HTTP)

PersistentStore

EventManager

SNMPManager

WMIClient

HPIClient

SNMPAgent

Example Application Service

IA2 Engine executes servicesand facilitates communication between services viaservice requests

Page 6: UXComm: Universal XML Communicator, an Agent Architecture

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

Page 7: UXComm: Universal XML Communicator, an Agent Architecture

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

Page 8: UXComm: Universal XML Communicator, an Agent Architecture

Example Specification and RequestCisco IOSSpecification

Request toInstall a tar file

Page 9: UXComm: Universal XML Communicator, an Agent Architecture

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 …

Page 10: UXComm: Universal XML Communicator, an Agent Architecture

Script Programs

All command are supplied by adaptors

Commands are simple or structured

Use typed arguments Support exchange of

POJO’s

Page 11: UXComm: Universal XML Communicator, an Agent Architecture

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

Page 12: UXComm: Universal XML Communicator, an Agent Architecture

Example ScriptNote:IOS XDS implemented as CLI over Telnet with

IO Expect FCLang Exception

adaptors.

Page 13: UXComm: Universal XML Communicator, an Agent Architecture

Using AIQ Adaptors

XDS<node name … xmlns:an=“URL”><do> … <an:some-action arg1=“…” arg2=“…”/> …</do>

AdaptorLoader/Cache

Load Adaptor

class SomeAction extends XDSAction{ String arg1; String arg2;

exec(…) { } printXML(…){ } parse(…) { } }

InstantiateAction

Execute

Page 14: UXComm: Universal XML Communicator, an Agent Architecture

Name

XDS Structure

Arguments(name,type,default)

PreActions

PostActions

Exception Handlers

Programbased on actions

from imported adaptors

Adaptor/Library Imports

An XDS node represents a sub-service

Page 15: UXComm: Universal XML Communicator, an Agent Architecture

XDS, XWSSpecifications

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>

ServiceRequests

XML Repository

HTTPHTTP

HTTP

Page 16: UXComm: Universal XML Communicator, an Agent Architecture

Engine Execution Layers

Stack

ComponentSpecialization

AdaptorInterface

Java

ComponentSpecification

Workflows

Application

XDS

XWS

Projects

ApplicationSpecification

Java Threads

Task Thread Management

Workflow Interface

Workflow Scheduler

DiscoveryFail-over Provisioning

On-Demand Asset Tracking (OAT)

SNMP Agent

SNMP Interface

SNMPManager/Handler

SNMP Stack

OAT Master/Agents

RequestDrivenLoading

ExamplesOnly

Adaptor

Page 17: UXComm: Universal XML Communicator, an Agent Architecture

AIQ IDE:The Integrated Development and Execution Environment

Page 18: UXComm: Universal XML Communicator, an Agent Architecture

Building Application Services1. 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 UI2. Deploy Agent (Engine with Front-End such as HTTP or

CLI) With access to service specifications and support files.

Page 19: UXComm: Universal XML Communicator, an Agent Architecture

IDE: Key Components

ManageProjects

ServiceRequests

Editor

Service RequestsExecute/Trace/Debug

ManageAdaptors

XDS Editor

ScriptEditor

Page 20: UXComm: Universal XML Communicator, an Agent Architecture

IDE: Support Dialogs

ManageIDE Add-ons

Monitor Threads

Edit IDEProperties

Profiler

Heap Monitor

Page 21: UXComm: Universal XML Communicator, an Agent Architecture

IDE: XDS Editor SupportAdaptorChooser

ExpressionEditor

Page 22: UXComm: Universal XML Communicator, an Agent Architecture

IDE: Workflow EditingWorkflow

EditorTask

WizardGraphicalViewer

Page 23: UXComm: Universal XML Communicator, an Agent Architecture

IDE: HTML/Request WizardHTML Wizard

Wizard Interface

HTML TextEditor

Web BrowserPreview andExecution

Page 24: UXComm: Universal XML Communicator, an Agent Architecture

IDE: Documentation Support

IntegratedWeb

Browser

ComponentPaneHelp

XDSDocViewer

Page 25: UXComm: Universal XML Communicator, an Agent Architecture

IDE: Request Support

XSR Debugger

BreakpointsAnd

Single StepExecution

Page 26: UXComm: Universal XML Communicator, an Agent Architecture

Example AIQ Adaptors:SNMP, CLI

Page 27: UXComm: Universal XML Communicator, an Agent Architecture

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

Page 28: UXComm: Universal XML Communicator, an Agent Architecture

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

Page 29: UXComm: Universal XML Communicator, an Agent Architecture

AIQ SDK:The Service Development Kit

Page 30: UXComm: Universal XML Communicator, an Agent Architecture

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

Page 31: UXComm: Universal XML Communicator, an Agent Architecture

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

Page 32: UXComm: Universal XML Communicator, an Agent Architecture

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

Page 33: UXComm: Universal XML Communicator, an Agent Architecture

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

Page 34: UXComm: Universal XML Communicator, an Agent Architecture

Summary Universal eXtensible Communicator Ergo, UXComm