[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference azur::mcc

Title:DECmcc user notes file. Does not replace IPMT.
Notice:Use IPMT for problems. Newsletter location in note 6187
Moderator:TAEC::BEROUD
Created:Mon Aug 21 1989
Last Modified:Wed Jun 04 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:6497
Total number of notes:27359

615.0. "Question on AM/FM and dispatch tables" by TENERE::FLAUW () Fri Jan 11 1991 05:41


I am a little confused with the AM/FM terminology and their respective use
of access and function dispatch tables.

Let's take an example. I want to build a Management Module managing an
entity class, let's call it Troy. This Troy entity class is not linked to a
true physical object, but is modeling some information. My MM will provide
primitive services (create, set/show, getevent,...) on all Troy objects,
but some of these services require my MM to call another FM.

My understanding so far, for AM and FM is that an AM can only use services
from other AMs, therefore if my management module require the service of an
FM, it is automagically an FM. 
  
In what dispatch table should the primitives services of the Troy object
class be registered ?  I would think access dispatch tables.

Does a FM need to register all its services in the function dispatch table
or does it need to register the primitive services in the access dispatch
table and only the value-added services (if there is any) in the function
dispatch table.
      
Thanks and regards,

Marc.

T.RTitleUserPersonal
Name
DateLines
615.1Need more infoTOOK::SWISTJim Swist LKG2-2/T2 DTN 226-7102Fri Jan 11 1991 08:3814
    If you are doing primitive services in your AM, why do you need to call
    an FM?   Sounds like you have some structuring/laying problems that
    need to be looked at.
    
    The whole idea of AMs is to normalize the view of managed objects such
    that they all respond to a similar set of primitives.  That way the
    generic FMs we supply (alarms, control, historian, etc) will
    automatically support your entity class simply by enrolling your AM.
    
    If you implement your primitives at FM level, you will not be able to
    access them from our generic FMs.
    
    
    
615.2Some more infoTENERE::FLAUWFri Jan 11 1991 09:1022
RE: .1

Jim,

The entity class I have in mind, as I said in my previous note, is not a 
physical object. It is more like a virtual support object, a little bit like 
the domain object. Some of the services might be fullfilled by accessing a MIR 
repository, but I may need to call other FMs to fullfill some of the primitive 
services.

According to the SRM 1.1 (2.5.1 page 19), AM to FM call is not allowed. 
Therefore, my MM will be an FM. But, still according to the SRM (2.3.3 page 14), 
primitive services should used the access dispatch tables and I fully understand 
the rationale behind that. 

Do you systematicaly put primitive services in the access dispatch tables and 
value-added services in the function dispatch tables ? It seems so from reading 
the SRM, but in that case, how do you decide what service is a primitive one 
and what service is a value-added one ?
   

Marc.
615.3Alarms can utilize FM services... Alarms can utilize FM services... DFLAT::PLOUFFEJerryFri Jan 11 1991 17:0437
>    If you implement your primitives at FM level, you will not be able to
>    access them from our generic FMs.

   Jim, this is NOT true at least in one case.  The Alarms FM utilizes the MCC 
   CALL_FUNCTION to get the data necessary to evaluate a rule expression:

     CALL_FUNCTION (SHOW...) or CALL_FUNCTION (GETEVENT...)

   Since the Control FM enrolls all primitive AM services in the FM dispatch
   table, this strategy works fine.  That is, if no other FM can service the
   request, then the Control FM will redirect the call to a CALL_ACCESS function
   which will access the AM dispatch table to complete the service request.

   Thus, Alarms can be used to alarm on data available from either an FM or AM.
   Alarms on statistics (available from the PA FM) is proof that this works!

   I don't personally know how the other generic FMs that we provide work.  
   Maybe the appropriate PLs could provide this info?

> That way ... support your entity class simply by enrolling your AM.

   I don't mean to seem overly picky, but I just wanted to say something about 
   the phrase "simply by enrolling your AM".

   It seems that we (engineering in general) tend to over-simplify just how 
   simple this is.  Please remember that not all "generic" FM services are 
   available just by "simply enrolling your AM".  Regrettably, you may also
   have to AUGMENT the MCC data dictionary with the MSL definitions of the 
   generic function which you wish to utilize (e.g., Historian, Export).  Not
   all generic FMs require this, but some do.  I do not mean to pick on these
   FMs, but AM developers should be aware of exactly what needs to be done
   to take advantage of our generic FMs and we shouldn't trivialize (or hide)
   the steps involved.

                                                                      - Jerry

   P.S. - Jim: Forgive me for using your note to jump on a mini-soapbox! ;)
615.4notif does same as alarmsGOSTE::CALLANDERTue Jan 15 1991 13:578
    The notification FM also does the same thing as alarms. By making
    use of the control FM the notification functions always make a call
    function for requesting event information. By doing this we don't
    have to make any descisions about who (am or fm) supplies the service,
    if the getevent command we are looking for is not in the FM table
    then control passes it along for us.
    
    
615.5BARREL::LEMMONThu Jan 17 1991 09:243
The iconic map also only does a CALL_FUNCTION.  

/Jim
615.6AM/FM? Who cares if it is useful?TOOK::CAREYFri Jan 18 1991 20:4940
    
    RE:.2
    
    There isn't much difference between what an AM does and what an FM
    does.  Sometimes it is obvious that you are providing value-added
    functions only, and sometimes it is obvious that you are providing
    primitive management for a new entity only.
    
    More often the line is somewhat blurred.  The Alarms FM for instance,
    clearly provides value added services to any entity.  Yet it can be
    argued that an alarm Rule is an entity, and is managed with primitive
    operations such as CREATE, DELETE, ENABLE, and DISABLE which act on
    this rule "entity".  I don't have any problem with the current state of
    the Alarms FM, because it does its job quite well.  It just may be that
    it does some functions we expect an AM to do, and some functions that
    we expect an FM to do.
    
    I don't think that users are ever going to care what we call the
    modules.  What's important is that DECmcc and its module extensions
    provide the services that network managers need to control their
    networks, and that the tools we construct from it are easy to use and
    effective.
    
    As you get further into the management modelling of your "virtual
    support object" you may find that what you are dealing with is clearly
    an AM.  You may find that it actually has components of both that can
    be clearly divided so that you end up with an AM and an FM.  Or you
    might find that it works best when thought of as an FM.
    
    In any case, if our users have to care about the type of module it is,
    then we've made some serious mistakes.  I think that we want them to
    care about what it does to make their life simpler.
    
    So see how it fits in, and if there's a problem, you can change the
    name later!
    
    -Jim Carey
    
    
    
615.7fictitious entities have been done beforeNAC::ENGLANDMon Jan 28 1991 00:0910
    Re: .0:  2 years ago, I wrote a Repeater AM which sounds similar 
    in concept to what you described.  It was a "protocol-less" or
    "fictitious" AM because it didn't really talk to real repeaters,
    it just remembered what you told it about repeaters.  This function
    was derived from the old etherNIM product.  I don't know what
    happened to it, but there didn't seem to be any real reason why 
    you couldn't write your s/w as an AM.  I'm not taking sides on this,
    just providing a data point :->
    
    ben