ANISE (Architectural Notions in Service Engineering)

See the download page to obtain this program

Description

ANISE describes telecommunications services in an abstract and architectural manner. See the ANISE web page for details of publications. This collection of scripts and files provides:

The numerous examples may be most helpful for guidance on how to write ANISE, ANGEN or ANTEST descriptions. The constructs in these languages correspond to macros defined in the M4 scripts. Each macro is preceded by a comment explaining how to use it and what it does. This may be helpful, especially for constructs that are not actually used in the examples.

The ANISE toolset consists of a number of tools written by the author, but also exploits a number of other generally available tools. The overall architecture of the toolset is as follows:

Usage

Here are some examples of how to use the tools. The normal interface is via the angen command. This takes a list of options and a list of feature descriptions to combine and validate. The first feature must be the base description - generally POTS (Plain Old Telephone Service). Other features are combined with this and then validated according to the defined tests.

The following will combine POTS with ABD (Abbreviated Dialling) and validate the resulting description:

  angen pots abd

The following will combine POTS with all the available feature descriptions and provide a trace of its activities. Note that there certain constraints must be respected as the order in which features are applied.

  angen -t pots abd acb cfbl ccbs cnd cw dr one ocs cfu tcs

This call of angen will produce output like the following. See Validating Architectural Feature Descriptions using LOTOS for an explanation of what the warnings and output messages mean.

  Making ANISE file "serv.anise":

  Warning - Ignored "Respond" Prefix in CCBS that overlaps:
    Prefix in ACB

  Warning - Ignored "RingBack" Prefix in CCBS that overlaps:
    Prefix in ACB

  Warning - Ignored "Select" Prefix in CW that overlaps:
    Prefix in CCBS

  Warning - Allowed overlapping changes of "rings":
    Fill in TCS
    Fill in CND
    Fill in DR

  Warning - Allowed overlapping changes of "dials":
    Fill in ONE
    Fill in OCS
    Fill in CFU
    Fill in ABD

  Warning - Allowed overlapping changes of "checks_busy":
    Fill in CW
    Fill in CCBS
    Fill in ACB
    Fill in CFBL

  Making ANISE test file "serv.antest":

  Making LOTOS file "serv.lot":

  Declaring Seize
  Declaring Dial
  Declaring Ring
  Declaring Silence
  Declaring Answer
  Declaring Speak
  Declaring Clear1
  Declaring Clear2
  Declaring Respond
  Declaring Select
  Declaring Recall
  Declaring Clear3
  Declaring CallWaitClear
  Declaring CallWait
  Declaring Dialling
  Declaring Answering
  Declaring Ringing
  Declaring Call
  Declaring RingBack
  Declaring Profiles
  Declaring MaxCalls
  Declaring Specification

  Executing LOTOS tests:

  Testing ABD Normal Call ...           Pass            3 succ  0 fail  4.5 secs
  Testing ABD Abbreviated Number ...    Pass            3 succ  0 fail  1.5 secs
  Testing ABD Abbreviated Unknown ...   Pass            3 succ  0 fail  1.1 secs
  Testing ACB Normal Call ...           Pass            3 succ  0 fail  2.7 secs
  Testing ACB Called Free ...           Pass           14 succ  0 fail  8.1 secs
  Testing ACB Caller Free ...           Pass            2 succ  0 fail  2.5 secs
  Testing ACB Caller Busy Incoming ...  Pass           14 succ  0 fail  9.3 secs
  Testing ACB Caller Busy Outgoing ...  Pass           14 succ  0 fail  9.3 secs
  Testing CFBL Normal Call ...          Pass            3 succ  0 fail  1.5 secs
  Testing CFBL Forward 1 ...            Pass            9 succ  0 fail  3.5 secs
  Testing CFBL Forward 2 ...            Pass            9 succ  0 fail  5.3 secs
  Testing CFBL Optional Forward 2 ...   Pass            9 succ  0 fail  3.6 secs
  Testing CCBS Normal Call ...          Pass            3 succ  0 fail  2.7 secs
  Testing CCBS Called Free ...          Pass           14 succ  0 fail  8.4 secs
  Testing CCBS Caller Free ...          Pass            2 succ  0 fail  2.7 secs
  Testing CCBS Caller Busy Incoming ... Pass           14 succ  0 fail  9.7 secs
  Testing CCBS Caller Busy Outgoing ... Pass           14 succ  0 fail  9.5 secs
  Testing CND Normal Call ...           Pass            3 succ  0 fail  1.5 secs
  Testing CND Delivered Number ...      Pass            3 succ  0 fail  1.4 secs
  Testing CW Normal Call ...            Pass            3 succ  0 fail  1.5 secs
  Testing CW No Waiting ...             Pass            3 succ  0 fail  1.5 secs
  Testing CW First Defers ...           Pass           18 succ  0 fail  6.5 secs
  Testing CW Second Defers ...          Pass            6 succ  0 fail  4.3 secs
  Testing CW Called Hangs Up ...        Pass           12 succ  0 fail  4.9 secs
  Testing CW Called Rejects ...         Pass           10 succ  0 fail  7.0 secs
  Testing CW Called Cancels ...         Pass           12 succ  0 fail  5.7 secs
  Testing CW Called Swaps ...           Pass            9 succ  0 fail 10.8 secs
  Testing CW Originator Swaps ...       Pass            9 succ  0 fail 11.0 secs
  Testing DR Normal Call ...            Pass            3 succ  0 fail  1.5 secs
  Testing DR Ring Pattern 1 ...         Pass            3 succ  0 fail  1.5 secs
  Testing DR Ring Pattern 2 ...         Pass            3 succ  0 fail  1.3 secs
  Testing DR Ring Pattern 3 ...         Pass            3 succ  0 fail  1.6 secs
  Testing ONE Normal Call ...           Pass            3 succ  0 fail  1.5 secs
  Testing ONE One Number ...            Pass            3 succ  0 fail  1.5 secs
  Testing OCS Normal Call ...           Pass            3 succ  0 fail  1.5 secs
  Testing OCS Screened Number ...       Pass            3 succ  0 fail  1.1 secs
  Testing OCS Screened All ...          Pass            3 succ  0 fail  1.1 secs
  Testing CFU Normal Call ...           Pass            3 succ  0 fail  1.5 secs
  Testing CFU Forward 1 ...             Pass            3 succ  0 fail  1.5 secs
  Testing CFU Forward 2 ...             Pass            3 succ  0 fail  1.5 secs
  Testing TCS Normal Call ...           Pass            3 succ  0 fail  1.5 secs
  Testing TCS Screened Number ...       Pass            6 succ  0 fail  1.2 secs
  Testing TCS Screened All ...          Pass            6 succ  0 fail  1.3 secs
  Testing POTS Invalid Number ...       Pass            3 succ  0 fail  1.1 secs
  Testing POTS Both Clear ...           Pass            3 succ  0 fail  1.5 secs
  Testing POTS Alternate Speech ...     Pass            6 succ  0 fail  2.0 secs
  Testing POTS Interleaved Speech ...   Pass            6 succ  0 fail  3.5 secs
  Testing POTS Multiple Attempts ...    Pass            6 succ  0 fail  6.7 secs
  Testing POTS Call Self ...            Pass            3 succ  0 fail  1.1 secs
  Testing POTS Call Busy ...            Pass          102 succ  0 fail  1.1 mins
  Testing POTS Interdependent Calls ... Pass          102 succ  0 fail  2.4 mins
  Testing POTS Independent Calls ...    Pass          120 succ  0 fail  4.2 mins

angen generates the files serv.anise (combined descriptions) and serv.antest (combined tests). The options for angen are:

-h
summarise the command usage (help)
-i
combine the ANISE descriptions but do not generate or validate LOTOS (interactive)
-m N
specify the number of megabytes to be set aside for bit-state hashing during validation (memory)
-t
print explanatory output as the tools run (trace)

After angen has combined the descriptions it calls the anise translator that can also be called directly with file.anise as its argument. The result is a LOTOS file file.lot.

After anise has been run, angen calls antest to translate the tests, combine them with the anise output, and run the tests. The result is an updated LOTOS file file.lot that integrates the service and test specifications. antest can also be called with file.antest as its argument and the following options:

-h
summarise the command usage (help)
-i
prompt if tests have already been integrated and do not run tests (interactive)
-m N
specify the number of megabytes to be set aside for bit-state hashing during validation (memory)

Installation

Other Software

Note that the ANISE distribution is not complete in itself. It is necessary to have or obtain the following:

Although the ANISE toolset uses some specialised implementation languages, it is not necessary to be familiar with them in order to use the tools. However any attempt to understand or change what is going on will need detailed knowledge of these languages.

Distribution Files

Note that the ANISE tools are currently in prototype form. Although they perform as described in the papers, there are significant aspects to be completed or improved. The author also intends to completely re-implement the tools. The tools are supplied as a tar archive that unpacks to the following four sub-directories.

Sub-Directory bin

This sub-directory contains the executable programs. Note that it must be in the shell's search path ($PATH).

FilenameContents
angenmain interface to generate and test descriptions
anisetranslator from ANISE descriptions to LOTOS
antesttranslator from ANTEST descriptions to LOTOS

Sub-Directory doc

This sub-directory contains a little documentation beyond what is published in papers.

FilenameContents
README.htmlthis explanatory file
test.*LaTeX notes about the examples
TODOa list of things to be considered by the author

Sub-Directory ex

This sub-directory contains example descriptions and tests of a variety of features. Execute angen in this sub-directory.

FilenameContents
abd.*Abbreviated Dialling
acb.*Automatic Call Back
all.*Feature Combination Tests
ccbs.*Call Completion to Busy Subscriber
cfbl.*Call Forwarding on Busy Line
cfu.*Call Forwarding Unconditional
cnd.*Calling Number Delivery
cw.*Call Waiting
dr.*Distinctive Ring
ocs.*Outgoing Call Screening
one.*One Number
pots.*Plain Old Telephone Service (base ANISE description)
serv.*result of ANISE generation (and associated TOPO files)
test.*various tests (of interest to the author only)
tcs.*Terminating Call Screening
*.angenANGEN files
*.antestANTEST files
*.ctxTOPO context file
*.lotLOTOS file

Sub-Directory m4

This sub-directory contains the m4 scripts that support the translations. Note that it must be in M4's search path ($M4PATH).

FilenameContents
anise.m4ANISE translator general facilities
anise_comb_gen.m4ANISE translator generic feature combinations
anise_comb_tel.m4ANISE translator telephony feature combinations
anise_feat.m4ANISE translator feature processes
anise_gen.m4ANGEN translator
anise_prim_int.m4ANISE translator internal definitions for service primitives
anise_prim_par.m4ANISE translator service primitive parameters
anise_prim_queue.m4ANISE translator service primitive queues
anise_prim_type.m4ANISE translator service primitive types
anise_prof.m4ANISE translator user profiles
anise_test.m4ANTEST translator

Assumptions

The interpretation what telecommunications services and features mean varies from network to network. The author has tended towards British Telecom rather than, say, the BellCore definitions. The following lists some specific issues that arose during the development of ANISE.

Call Diversion

Ring Back

Licence

ANISE is free software, distributed under the GNU Public License Version 2. You may re-distribute this software provided you preserve this README file. The contents of this package may be used freely for non-commercial purposes provided this README file and copyright notices are retained. Copyright remains with the author. No warranties are given as to the accuracy or suitability of this package.

History

Version 1.0: First public version, Ken Turner, 20th August 1998


Up one level to LOTOS Utilities

Web Ken Turner Home   Email    Search Search Web Pages

Last Update: 1st November 2010
URL: http://www.cs.stir.ac.uk/~kjt/software/lotos/anise.html