an asl apetizer

Upload: robinson-asirvatham

Post on 07-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/4/2019 An ASL Apetizer

    1/17

  • 8/4/2019 An ASL Apetizer

    2/17

    Overview

    What is ASL?

    What can I do with ASL?

    Demo

  • 8/4/2019 An ASL Apetizer

    3/17

    What is ASL?

    Adapter Scripting Language

    Not a general purpose language

    Limited I/O (no user interaction) No library support

    The native scripting language of InCharge

  • 8/4/2019 An ASL Apetizer

    4/17

    Unique Strengths of ASL

    A Parser Makes it easy to parse files of any format

    As powerful as regular expressions but easier to

    read! Can connect two InCharge processes Many built in connections are implemented in ASL

    Embedded in all of the InCharge binaries Runs inside of an InCharge server

    Always available in any InCharge environment

  • 8/4/2019 An ASL Apetizer

    5/17

    InCharge Binary

    What are the InCharge binaries?

    sm_server SAMIP AM/PM

    NPM

    sm_adapter

    Trap Adapter

    Syslog Adapter

    EMOM Adapter

    sm_trapd

    brstart Broker

  • 8/4/2019 An ASL Apetizer

    6/17

    InCharge Binary

    What are the InCharge binaries?

    sm_server

    sm_adapter

    sm_trapd

    brstart

    PlatformBinary

  • 8/4/2019 An ASL Apetizer

    7/17

    A Peek Inside.

    Client API

    Server API

    ModelModelModel

    ReposASLInterpreter

    Correlation

    Engine

    ASL Threads

    sm_whatever

  • 8/4/2019 An ASL Apetizer

    8/17

    What can ASL do?

  • 8/4/2019 An ASL Apetizer

    9/17

    Interact with a remote repository

    Client API

    Server API

    Repos

    sm_whateverrouters = getInstances(Router);foreach r (routers) {

    rObj = object(Router, r);}

    Client

    Server

    sm_adapter s REMOTE_SERVER

  • 8/4/2019 An ASL Apetizer

    10/17

    Interact with the local repository

    Client API

    Server API

    Repos

    sm_whateverrouters = self->getInstances(Router);foreach r (routers) {

    rObj = self->object(Router, r);}

    sm_adapter

  • 8/4/2019 An ASL Apetizer

    11/17

    Subscribe to Topology and/or Events

    Client API

    Server API

    Repos

    sm_whateverSTART {

    timeStamp : integer fs

    NOTIFY fs

    class : word fs

    instance : word fs

    event : word fs

    conf : integer fs

    }Client

    Server

    sm_adapter -subscribe=.*::.*::.*/pae

  • 8/4/2019 An ASL Apetizer

    12/17

    Read/Parse a file

    Client API

    Server API

    Repos

    sm_whatever

    START {h : wordc : word..eol

    } do {adp->addPending(h,c,Read from file);

    }

    plan_r.afnoc.mil poe

    fluid.gnt.mil poe

    essence.brk.mil poe

    sm_adapter --file=jdr.txt

  • 8/4/2019 An ASL Apetizer

    13/17

    Write to a file

    Client API

    Server API

    Repos

    sm_whateverfo = create(ACT_File, myFileObj);Fo->fileName = myAdapter.log;

    foreach n (getInstances(Node) {

    obj = object(n);

    fo->writeln(obj->CreatonClass.\t.n);}

    Router gw1-i-fw-001

    Host im2-i-fms-001

    sm_adapter m sm_actions

  • 8/4/2019 An ASL Apetizer

    14/17

    Launch other ASL threads

    Client API

    Server API

    Repos

    sm_whateverdrv = create(GA_Driver, myDrv);drv->ReadsRulesFrom = create(GA_RuleSet, myRules);

    drv->ReadsRulesFrom->fileName=foo.asl;

    drv->start();

  • 8/4/2019 An ASL Apetizer

    15/17

    Demo

  • 8/4/2019 An ASL Apetizer

    16/17

    Summary

    We now know what is ASL

    We now know what can ASL do

    We have seen code examples More questions.?

  • 8/4/2019 An ASL Apetizer

    17/17

    For Further Information

    ASL Reference Guide

    asl_ref.pdf

    Found in products doc/pdf directory