Subject: [NGO] OO-ish-ness: Super models and meta models

From: Phil Shafer <[email-masked]>
Date: Tue, 29 Apr 2008 14:09:55 -0400

Can we work on identifying the features of OO/class/meta-models
that we need to incorporate into YANG?  Does anyone have something
they want to propose?

Thanks,
 Phil
_______________________________________________
NGO mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/ngo

---

From: Andy Bierman <[email-masked]>
Date: Tue, 29 Apr 2008 11:36:11 -0700

> that we need to incorporate into YANG?  Does anyone have something

I propose that the meta-model is simply a collection of conceptual
modules, like in the SNMP/SMIv2 world.   (i.e., no OO at all).
Modules can add to other modules (via augment), but never take
anything away from a module, or in any way change the 'contract'
embodied in a module definition.  I think this is what YANG
already specifies, so I do not have any additional text to propose.

I hope major proposals are presented as I-Ds instead of bits
at a time on a mailing list.

>  Phil

Andy

---

From: Phil Shafer <[email-masked]>
Date: Tue, 29 Apr 2008 14:47:58 -0400

>at a time on a mailing list.

Is anyone out there working on such I-Ds?

In a perfect world, we could wait for I-Ds to appear, but I'm hoping
to get some sort of discussion going now to give us non-OO-ish types
a clue as to what requirements exist that aren't being met by YANG.

Thanks,
 Phil

---

From: Jon Saperia <[email-masked]>
Date: Tue, 29 Apr 2008 14:52:28 -0400

Phill,

this is an interesting topic,  Can you write one or two lines more  
about what you mean please?

/jon

---

From: Andy Bierman <[email-masked]>
Date: Tue, 29 Apr 2008 12:04:20 -0700

> Is anyone out there working on such I-Ds?

I don't know.

> a clue as to what requirements exist that aren't being met by YANG.

Agreed. Email vs. I-D is not that important I guess,
but rather the completeness of the proposal.

Andy

---

From: Phil Shafer <[email-masked]>
Date: Tue, 29 Apr 2008 15:17:17 -0400

>about what you mean please?

At the last IETF, there were some expressions that YANG was great
but lacked "meta-model" features that would give it the OO-ness
that it needs.  I don't see this, since we are not working in an
OO world.

(By this, I mean that there aren't object-ids trafficed between the
client and server, nor are there objects referenced in RPCs.  NETCONF
works in XML hierarchies, and YANG follows that model, which is why
there's nothing OO about it.)

I understand that many applications are written using OO tools, but
this doesn't reflect in the content carried thru NETCONF, so I have
a hard time seeing what OO-ish constructs need to be expressed within
a YANG module.

For example, at the OPS office hours, Randy mentioned that "class"
gives a clue to the application that it's dealing with something
more heavy-weight that needs special handling.  My response was
that this sounds like a presentation issue, and should probably be
solved with a extention/statement that says "this is a heavy-weight
thing".  Different applications may have different views on what
"heavy-weight" means or how to represent it.

So I'm looking to understand what OO adds and where it needs to add it.
(Yes, I understand the value of OO design principles, I just don't
understand where they dovetail into our data modeling language.)
So what does YANG need and how will it impact the data organization,
the operations, and the transport of that data and operations?

Thanks,
 Phil

---

From: Jon Saperia <[email-masked]>
Date: Tue, 29 Apr 2008 16:06:03 -0400

This is a conversation that, in my view, is worthwhile.  Thanks for  
the clarification.

In my ideal world, the objects that move between the managed device  
and the management system are of the same general type, e.g. real OO  
objects.  That is NOT TO SAY that such an approach is what I suggest  
here.  it is a just a starting point for discussion.  Here are some  
interesting questions to ponder:

What are the specific problems to be solved/addressed by adding more  
meta model constructs to the language?
What are the characteristics of an OO environment that are relevant:
Inheritance (lets not talk about multiple inheritance)?
Other OO characteristics that this group knows or can read in any  
manual (e.g., information hiding)?
The ability to have associations and containment (you already have  
some of this). Generalization e.,g an interface, then an IP interface,  
and Ethernet interface, etc.
To what degree, if any are people willing to make more complex  the  
language/models for these properties, once identified?

Ideally, I would like to build a model of a router from a  
configuration and state perspective where the NMS has a class  
hierarchy (they all do and they are all proprietary - what a  
shock) :-) into which pieces of a NETCONF configuration could be  
loaded.   If we could agree on a meta model that would greatly aid the  
NMS side, but does not, in my view help people who are going to read  
the XML directly. I will point out that many organizations have tried  
and failed to create models that have been widely deployed and used.   
DMTF is one such example.  What is promising in this discussion is  
that you are not attempting to boil the entire ocean.  You are going  
to stop at some reasonably high level (or so I think).  Is this what  
you are thinking about?