<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->

<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-betts-netmod-framework-data-schema-uml-03" ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <title abbrev="Data Schema from UML Model">Framework for Deriving Interface Data Schema
    from UML Information Models</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Malcolm Betts" initials="M." role="editor"
            surname="Betts">
      <organization>ZTE</organization>

      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city></city>

          <region></region>

          <code></code>

          <country>Canada</country>
        </postal>

        <phone>+1 678 534 2542</phone>

        <email>malcolm.betts@zte.com.cn</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

	    <!-- Another author who claims to be an editor -->

    <author fullname="Nigel Davis" initials="N." role="editor"
            surname="Davis">
      <organization>Ciena</organization>

      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city></city>

          <region></region>

          <code></code>

          <country>UK</country>
        </postal>

        <phone></phone>

        <email>ndavis@ciena.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

	    <!-- Another author who claims to be an editor -->

    <author fullname="Kam Lam" initials="K." role="editor"
            surname="Lam">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city></city>

          <region></region>

          <code></code>

          <country>USA</country>
        </postal>

        <phone>+1 732 331 3476</phone>

        <email>kam.lam@nokia.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Eve Varma" initials="E." role="editor"
            surname="Varma">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city></city>

          <region></region>

          <code></code>

          <country>USA</country>
        </postal>

        <phone></phone>

        <email>eve.varma@nokia.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>	
	
	    <!-- Another author who claims to be an editor -->

    <author fullname="Bernd Zeuner" initials="B." role="editor"
            surname="Zeuner">
      <organization>Deutsche Telekom</organization>

      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city></city>

          <region></region>

          <code></code>

          <country>Germany</country>
        </postal>

        <phone>+49 6151 58 12086</phone>

        <email>b.zeuner@telekom.de</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

	    <!-- Another author who claims to be an editor -->

    <author fullname="Scott Mansfield" initials="S." role="editor"
            surname="Mansfield">
      <organization>Ericsson</organization>

      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city></city>

          <region></region>

          <code></code>

          <country>USA</country>
        </postal>

        <phone>+1 724 931 9316</phone>

        <email>scott.mansfield@ericsson.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

	    <!-- Another author who claims to be an editor -->

    <author fullname="Paul Doolan" initials="P." role="editor"
            surname="Doolan">
      <organization>Coriant</organization>

      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city></city>

          <region></region>

          <code></code>

          <country>Germany</country>
        </postal>

        <phone>+1 972 357 5822</phone>

        <email>paul.doolan@coriant.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>	
	
    <date month="March" year="2016" />

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
         in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>Netmod Working Group</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>Information Model</keyword>
	
	<keyword>Data Schema</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This draft describes a framework for how purpose and protocol specific   
	  interfaces can be systematically derived from an underlying 
	  common information model, focusing upon the networking and forwarding 
	  domain.  The benefit of using such an approach in interface 
	  specification development is to promote convergence, interoperability, 
	  and efficiency.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">

 <t>Interface specifications are often generated as point solutions 
	  where the designer codes a particular interface from domain 
	  (problem space) concepts that may not be explicitly captured, 
	  may be defined using localized terminology that is subject to 
	  ambiguity in interpretation, and is highly focused on a particular 
	  use-case/application.  The designer typically provides a representation 
	  of the interface schema in the form of a data schema <xref
      target="RFC3444"> </xref>(i.e., data structures conveyed over 
	  the interface), which only exposes the view of the domain 
	  relevant at that specific interface.  As this data schema 
	  is a simple statement of the particular interface, it solely 
	  describes relationships relevant to the specific realization, 
	  having no inherent relationship to other interfaces in the system. 
	  </t>
	  
<t>Approaching the development of interface specifications on a per 
	  use-case/application basis tends to promote unnecessary variety 
	  through a proliferation of similar interfaces, resulting in unnecessary 
	  divergences that limit interoperability. It also risks confusion of 
	  representational artifacts with fundamental characteristics of the 
	  information to be conveyed across the interface. There is also a risk that 
	  conflicting representations of the same information may be generated. Finally, as each such 
	  interface appears to stand alone, it thereby fails to capture relationships 
	  with other aspects of the same (or different) domains that are not explicitly 
	  needed for the interface.</t>

<t>This draft describes a framework for how a protocol specific data schema 
    and the encoding used for the interface can be systematically 
	derived from an underlying common information model, focusing 
	upon the networking and forwarding domain.  The benefit of using 
	such an approach in the development of interface specifications is to promote 
	convergence, interoperability, and efficiency.</t>


      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in <xref
        target="RFC2119">RFC 2119</xref>.</t>
      </section>
    </section>

    <section anchor="basic_concepts" title="Basic Concepts">
      <t>An information model condenses domain knowledge and insights to provide 
	  a representation of its essential concepts, structures, and 
	  inter-relationships.  In capturing domain understanding, such a model offers 
	  a coherent and consistent terminology and structure, expresses the 
	  semantics of the domain, and interrelates all relevant aspects of the 
	  domain.  It enables a consistent expression of information that improves 
	  interoperability between software components at interfaces derived from it. A "good" 
	  information model should capture domain best practices, and be designed 
	  to support domain variety as well as extensibility and evolution.  
	  Examples of domains include networking and forwarding, storage, etc.  
	  A common industry information model is the assembly of all domain 
	  information models, which inter-relate at "touch points". 
	  Note that a common industry information model should not be interpreted 
	  as being a monolithic entity; in particular, a modular structure 
	  is essential to allow for extensibility.</t>

      <t>There may be several relevant views of any particular domain, 
	  depending upon the perspective of the viewer, all of which are 
	  interrelated and involve subsets of the information model, and none 
	  of which contradict each other. (It should be noted that one 
	  view provides the information model representation of the overall domain.)   
	  To form a particular (purpose-specific) view, some elements of the model may be pruned.  
	  Additionally, for efficiency, some systematic refactoring of the 
	  information model may also occur.</t>	  

      <t>In this draft, the term data schema is used in the context of either: 
	  (i) a specific protocol that is used to implement a purpose specific 
	  interface, or (ii) a programming language that is used to invoke a 
	  purpose specific API. Note that it is possible to map directly from 
	  the purpose specific information model to interface encoding.</t>

      <t>While a purpose specific interface/API is not a simple direct 
	  encoding of the information model of the overall domain, it is by 
	  its nature based on a relevant view of the information model of the domain  
	  (i.e., a purpose specific information model view).
	  It must be completely and consistently traceable to this view and 
	  should use the associated domain terminology. Depending on its 
	  application, a particular view may lead to a number of encoded 
	  forms at various types of interfaces/APIs.  The information model 
	  does not dictate the encoded form, which will depend upon such 
	  factors as necessary capability, interaction style, and programming 
	  language.</t>	  
    </section>

    <section anchor="info_modeling" title="Information Modeling">
      <t>This section introduces the Unified Modeling Language (UML), 
	  which has been used to model application structure, behavior, 
	  and architecture (in addition to business process and data structure).  
	  It also provides references to existing and ongoing work on 
	  standard information models based on UML.</t>
	  
	    <section anchor="unified_modeling_language" title="Unified Modeling Language">
      <t>The information model is expressed in terms of the Unified 
	  Modeling Language (UML) <xref
        target="OMG_UML"></xref>, which was developed by 
	  the Object Management Group.  It is a general-purpose modeling 
	  language in the field of software engineering. In 2000 the 
	  Unified Modeling Language was also accepted by the International 
	  Organization for Standardization (ISO) as an approved ISO 
	  standard <xref
        target="ISO_IEC_UML"></xref>. UML may be used in four ways:</t>

	<t><list style="symbols">
          <t>To define a set of objects (instantiated classes that, 
		  if organized, describe a data model)</t>

          <t>As an information model</t>
		  
		  <t>As a metamodel (used to create an information model)</t>
		  
		  <t>As a meta-metamodel</t>
		  
        </list></t>

	<t>UML defines a number of basic model elements (UML artifacts), 
	such as object classes, attributes, associations, interfaces, 
	operations, operation parameters, data types, etc. In order to 
	assure a consistent and harmonized modelling approach, and to ensure uniformity 
	in the application of UML to a problem domain, a subset of the basic model 
	artifacts should be selected according to guidelines for creating an 
	information model expressed in UML <xref
        target="ONF_TR-514"></xref>. 
	The guidelines are generic; i.e., they are not specific to any particular 
	domain that the information model is addressing, nor are they restricted to any particular 
	protocol interface data schema. A UML information model may be created 
	using Open Source UML tools; guidelines to be taken into account during 
	the creation of a UML information model for the Open Source tool Papyrus 
	have been developed in <xref
        target="ONF_TR-515"></xref>.</t>	
		
       </section>

    <section anchor="standard_UML_Info_Models" title="Standard UML Information Model">
      <t>Information models expressed in UML, primarily focused upon the 
	  networking and forwarding domain, have been, and are in the 
	  process of being, developed in ITU-T, TM Forum, NGMN, 
	  3GPP, MEF, ONF, and others.</t>
	  
	  <t>ONF has defined the Core Model fragment of the 
	  ONF Common Information Model (ONF-CIM). 
	  The ONF Core Model <xref
        target="ONF_TR-512"></xref> provides 
	  a representation of data plane resources 
	  for the purpose of management-control and 
	  is independent of specific data plane technology. 
	  The Core Model can be augmented to 
	  provide data plane technology specific representation.</t>
	  
      <t>ITU-T Recommendations are focused on understanding the 
	  telecommunications problem space and developing information 
	  models addressing network and network element considerations. 
	  Some examples of available standard ITU-T information models 
	  relevant to the networking and forwarding domain include:
	  <list style="symbols">
          <t>ITU-T G.874.1 (2012), Optical transport network: 
		  Protocol-neutral management information model for 
		  the network element view <xref target="ITU-T_G.874.1"></xref></t>

          <t>ITU-T G.8052/Y.1346 (2013), Protocol-neutral 
		  management information model for the Ethernet 
		  Transport capable network element <xref target="ITU-T_G.8052"></xref></t>
		  
		  <t>ITU-T G.8152/Y.1375, 
		  Protocol-neutral management information model for 
		  the MPLS-TP network element <xref target="ITU-T_G.8152"></xref></t>
		  
		  <t>ITU-T G.7711, Generic protocol-neutral management Information Model for 
		  transport resources <xref target="ITU-T_G.7711"></xref></t>
        </list> 
		
	  <list style="">
          <t>Note that ONF and ITU-T have adopted the same Core Model in <xref
        target="ONF_TR-512"></xref> and <xref target="ITU-T_G.7711"></xref>.</t> 
        </list> 				
		
	  </t>
	  
	  <t>The above information models are developed from 
	  ITU-T Recommendations that define the respective 
	  transport technology functional models and management 
	  requirements.</t>
	  
	  <t>The TM Forum community has likewise developed extensive 
	  models of the same space from the network level management 
	  perspective <xref target="TMF_MTNM"></xref> 
	  <xref target="TMF_MTOSI"></xref> <xref target="TMF_TR225"></xref>. 
	  The basis for all functions 
	  made available to the network level management is defined in 
	  the protocol-neutral network element level management work done 
	  in ITU-T. Its models thus complement the ITU-T information 
	  models. In further collaboration with 3GPP, considerable joint 
	  effort has been devoted to develop a consistent and coherent 
	  approach to that space.</t>
	  
	  <t>The NGMN has published a document called Next Generation 
	  Converged Operations Requirements (NGCOR) <xref target="NGMN_NGCOR"></xref>, 
	  with the expressed purpose of taking these requirements into account 
	  when converged management interfaces for mobile and fixed networks 
	  are being standardized in the SDOs. 
	  An ongoing collaboration called the Multi-SDO Project on 
	  Converged Management is taking care that the requirements are considered 
	  during the specification of new interfaces. It includes 
	  participants from ETSI, NGMN, TMF, 3GPP, and other SDOs,
	  equipment vendors, OS vendors and service providers.</t>
	  
    </section>	   
  
    </section>

    <section title="From UML IM to Data Schema Definition">
      <t>This section outlines the overall structure of a modular and 
	  evolvable common information model and how purpose specific IM views 
	  and data schema may be derived from it <xref
        target="ONF_TR-513"></xref>. </t>


     <section title="Methodology Overview">
    		
	  
	  <t>As illustrated in Figure 1 below, the common information model 
	  is comprised of a library of model 
	  artifacts (objects, attributes, and associations) 
	  organized into a number of information model 
	  fragments (sub-modules), to facilitate the independent development of 
	  technology and application specific extensions.  
	  The Core Model fragment refers to information model 
	  artifacts that are intended for use by multiple applications 
	  and/or forwarding technologies. For purposes of navigability, the Core
      Model fragment is further sub-structured into modules 
	  (further discussed in Section 4.1).  
	  The forwarding technology specific model fragment refers 
	  to technology specific extensions; e.g., for OTN, 
	  Ethernet, SDH, etc.   The application specific fragment 
	  refers to extensions for supporting particular applications.   
	  </t>

      <figure align="center" anchor="methodology">
        <preamble></preamble>

        <artwork align="left"><![CDATA[
+-------------+
|   Common    |
| Information |
|    Model    |
|    (CIM)    |
|+-----------+|
||Core Model ||
|| Fragment  ||
||* module-1 ||
||* module-2 ||
||* ...      ||
||* ...      || 
||* module-n ||         +----------+     +---------+     +---------+
|+-----------+|         |          | Map |Interface| Map |Interface|
|+-----------+|         |   View   |---+\| 1 data  |---+\|    1    |
||Forwarding ||-------\ |    of    |---+/| schema  |---+/|encoding |
||specific   ||Prune/  \|   CIM    |     +---------+     +---------+
||fragment   ||refactor/|  for a   | 
|+-----------+|-------/ |particular|        Map          +---------+
|+-----------+|     .   | purpose  |-------------------+\|Interface|
||Compute    ||     .   |          |-------------------+/|    2    |
||specific   ||-------\ +----------+|  .              .  |encoding |
||fragment   ||Prune/  \ +--.--.----+| .              .  +---------+
|+-----------+|refactor/  +-.--.-----+|.              .
|     .       |-------/     .  .       .              .
|     .       |       .     .  .       .              .
|     .       |        .    .  .       .              .
|+-----------+|         .   .  .        .             .
||Storage    ||.         .  .  .         .            .
||specific   || .         . .  .          .           .
||Fragment   ||  .         ..  .           .          .
|+-----------+|   .         .  .            .         .
|             |    .        .. .             .        .
+-------------+     .       . ..              .       .
            .  .     .     .   .               .      .
            .   .     .   .    ..               .     .
            .    .     . .     . .               .    .
+-----------.-----.-----.------.--.---------------.---.------------
|Guidelines .      .   . .     .   .               .  .            \
|           .       . .   .    .    .               +------------  |
|+-----------  +-------   +-------  +-----------   +------------\\ |
|| Model     \ |Use of \  |Papyrus\ | Common    \  | Interfac    |||
|| structure | | UML   |  |GitHub | | process   |  | specific    |+|
|+-----------+ +-------+  +-------+ +-----------+  +-------------+ |
+------------------------------------------------------------------+

            ]]></artwork>

        <postamble>High-level common information model structure and 
		methodology for deriving 
		interface protocol specific data schema/interface  
		encodings</postamble>
      </figure>
	  
	  <t>The following subsections provide further elaboration 
	  of the high-level methodology introduced above.</t>

	  
     </section>
	  
      <section title="Common Information Model">
        <t>As introduced earlier, a common information model includes the 
		objects/packages, their properties (represented as attributes), 
		and their relationships, etc. that are necessary to describe the 
		domain for the applications being developed.  
		It will be necessary to continually expand and refine 
		the common model over time as new forwarding technologies, 
		capabilities and applications are encompassed and new 
		insights are gained.  To allow these extensions to be 
		made in a seamless manner, the common information model 
		is structured into a number of model fragments. 
		This modelling approach enables application specific and 
		forwarding plane technology specific extensions to be developed 
		independently.</t>

        <t>Note that upon recognizing that some part(s) of the 
		common information model needs to be augmented or changed, 
		these should be clearly identified using model lifecycle stereotypes 
		(e.g., experimental, preliminary, obsolete) to ensure ongoing compatibility 
		and to ease migration.  The use of these stereotypes is described 
		in the UML modeling guidelines <xref target="ONF_TR-514"></xref>.</t>		
		
     <section title="Core Model fragment">
	      <t>The core model fragment is itself further sub-structured into modules, 
		  each addressing a specific topic to allow for easier navigation.  
		  Currently, these consist of a core network module and a 
		  core foundation module <xref target="I-D.lam-topology"></xref>.</t>  
		
		  <t><list style="symbols">
          <t>The core network module consists of artifacts that model the essential network 
		  aspects that are neutral to the forwarding technology of the network.  
		  This module currently encompasses Topology, Termination, and Forwarding subsets 
		  of the core network module.</t>

          <t>The core foundation module defines the artifacts for referencing entities, 
		  so that communications about an entity can take place.</t>
        </list></t>
     </section>
	 
     <section title="Forwarding plane technology specific or application specific model
      Fragments">
	      <t>These fragments contain the artifacts (objects, attributes and associations) 
		  that relate solely the specific technology or application.  
		  In some cases an application or forwarding technology addition will also 
		  require enhancement of the core model fragment.</t>  
	  
     </section>		
		
      </section>	  

      <section title="Common Information Model View for a Specific Purpose">
        <t>The next step is the development of a purpose specific 
		information model view, which is a true subset of the 
		common information model.  To provide maximal reuse, the purpose 
		specific view is developed in two steps: (1) pruning and refactoring 
		to provide a purpose specific information model of the network to 
		be managed, where only those artefacts that represent the 
		capabilities that are both in scope and supported are included, 
		and (2)defining the access rights for the various groups of 
		users that will manage that network. Pruning and refactoring provides 
		a purpose specific information model that represents the capabilities 
		of the network of interest.  The definition of access rights provides 
		the ability to limit the actions that can be taken by the various 
		user groups that will use that information model.</t>
		  <t><list style="symbols">
 
 		     <t>Pruning to remove the objects/packages/attributes 
		  that are not required.<list style="hanging" hangIndent="2">
             <t hangText="-">Selecting the required object classes from 
			 the common IM (all mandatory attributes and 
			 packages must be included)</t>
			 <t hangText="-">Selecting the required conditional packages 
			 and optional attributes (note that, where appropriate,
			 conditional packages and optional attributes may be 
			 declared mandatory in the purpose specific IM)</t>
			 <t hangText="-">Removing any optional associations that are 
			 not required</t>
             </list></t>
		  
 		     <t>Refactoring to reduce association flexibility, such as:<list style="hanging" hangIndent="2">
             <t hangText="-">Reducing multiplicity (e.g., from [1..*] to [1]).
			 When this results in a composition association of 
			 multiplicity [1] between a subordinate and superior object class, 
			 they can be combined into a single object class by moving the 
			 attributes of the superior class into the subordinate class.</t>
			 <t hangText="-">Where possible, reducing the depth of the 
			 inheritance (i.e., combining object classes by moving the 
			 attributes of the super class into the subclass).</t>
			 <t hangText="-">Adding reverse navigation, if useful for the client.
			 The common IM only supports navigation from a subordinate object class 
			 to a superior object class. This allows new subordinate object classes 
			 to be added without any impact on the superior object class. 
			 In a network specific implementation it is frequently useful to be 
			 able to navigate the relationship between superior and subordinate 
			 object classes in both directions.</t>
             <t hangText="-">Constraining attribute definitions. This can be done 
			 by reducing legal value ranges, defining which (if any) attributes 
			 should be read only (for all users), and/or defining constraints 
			 between attributes.</t>
             </list></t>		  

 		     <t>Definition of access rights<list style="hanging" hangIndent="2">
			 <t>If only one group will use the network specific IM then 
			 this step is not required. If more than one group will use 
			 the network specific IM this optional step provides a profile 
			 for each user group to:</t>
             <t hangText="-">Convert some attributes defined as read/write 
			 in the network specific IM to read only</t>
			 <t hangText="-">Remove the right to create/delete some or all object instances</t>
             </list></t>
		  

			 
        </list></t>
      </section>	  	  

      <section title="Data Schema">
        <t>A data schema (DS) is constructed by mapping 
		of the purpose specific information model view into the DS together 
		with the operations patterns from the common information model 
		to provide  the interface protocol specific operations 
		and notifications. The operations should include data 
		structures taken directly from the purpose specific 
		information model view with no further adjustment.
		(Note that it is possible to map directly from the purpose specific 
		information model to interface encoding).</t>
		
        <t>The development of the data schema should consider 
		the following:</t>		
		  <t><list style="symbols">

 		     <t>The operations should act on the information 
		  in a way consistent with the modeled object 
		  lifecycle interdependency rules.<list style="hanging" hangIndent="2">
             <t hangText="-">Instance lifecycle dependencies to 
			 ensure sensible interface operation 
			 structuring and interface flow rules</t>
			 <t hangText="-">Usage of transaction approach style of 
			 interface to account for lifecycle dependencies 
			 of the model</t>
             </list></t>

          <t>The operations should abide the attribute 
		  properties.  Read only attributes (except those which are 
		  defined as setByCreate) should not 		  
		  be included in data related to creation of an 
		  object (e.g., not in createData) or in a specification 
		  of a desired object structure outcome.</t>
		  
          <t>Usage of attribute value ranges, etc. to allow "effort" 
		  statement, optionality and negotiation to be 
		  supported by the interface.</t>	  
		  		  
        </list></t>
      </section>	  		  

     <section title="Interface encoding">
	      <t>This step encodes the purpose specific data schema or 
		  purpose specific information model into either a specific protocol 
		  that is used to implement a purpose specific interface or; 
		  a programming language that is used to invoke a purpose specific API. 
		  If the interface is encoded directly from the purpose specific 
		  information model then the interface operations must be added as 
		  described above.</t>  
	  
     </section>
	  
	  
    </section>

     <section title="Translation from UML">
	      <t>Applying the methodology outlined in Section 4, protocol-specific 
		  interface data schema/encodings may be derived from existing, 
		  and emerging, standard UML information models addressing the 
		  forwarding and networking domains (e.g., <xref target="ITU-T_G.7711"></xref>, 
		  <xref target="ITU-T_G.874.1">G.874.1</xref>).</t>  

	      <t>In order to assure a consistent and valid data modelling 
		  language representation that enables maximum interoperability, 
		  translation guidelines from UML information models to data 
		  schema/interface encodings are required.  A set of translation 
		  rules also assists in development of automated tooling.</t>

		  <t>Guidelines are currently under development for translation 
		  of data modeled with UML to YANG including mapping of object classes, 
		  attributes, data types, associations, interfaces, operations 
		  and operation parameters, notifications, and 
		  lifecycle <xref target="I-D.mansfield-uml"></xref>.</t>

		  <t>It should be noted that the concept of deriving 
		  protocol-specific modules from UML information models is 
		  not new (e.g., <xref target="MEF_38">MEF 38</xref> 
		  and <xref target="MEF_39">MEF 39</xref> provide 
		  YANG modules derived from UML information models 
		  <xref target="ITU-T_G.8052">G.8052</xref> 
		  and <xref target="MEF_7.1">MEF 7.1</xref> for 
		  Service OAM Fault and Performance Monitoring, respectively.).  
		  What is new is the concept of an open, modular, evolvable 
		  common information model, coupled with an associated suite of 
		  essential guidelines (e.g., UML, Open Source tooling, 
		  translation, etc.), for realizing a coherent set of solution modules.</t>	  
		  
		  
     </section>	
	
    <section anchor="Summary" title="Summary">
      <t>
	  This draft describes a modular and scalable approach for 
	  systematically deriving purpose and protocol specific interfaces 
	  from an underlying common information model, focusing upon the networking 
	  and forwarding domain. Building upon an underlying common information 
	  modeling description of network resources (functionality, capabilities, 
	  flexibility) is a key enabler to convergence and interoperability. 
	  It is also future proof in the sense that the emergence of new protocols 
	  becomes solely a non-disruptive mapping issue.  
	  It should be noted that not all domains require development 
	  of information model prior to solutions development; the domains 
	  where this is of greatest benefit involve networking domains requiring 
	  support for an enhanced level of control and network programmability.
      </t>

    </section>
	
	
    <section anchor="Acknowledgements" title="Acknowledgements">
      <t></t>

    </section>

    <!-- Possibly a 'Contributors' section ... -->
	
    <section title="Contributors">

        <figure align='left'>	  
	  <artwork><![CDATA[
            Dave Hood
            Ericsson
            USA
            email dave.hood@ericsson.com
	
	  ]]></artwork>
      </figure>
	  
    </section>	
	
    <section anchor="IANA" title="IANA Considerations">
      <t>This memo includes no request to IANA.</t>

    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This informational document only describes a framework for 
	  deriving interface data schema from UML Information Models.  
	  As such, security concerns are out of the scope of this document.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
	  &RFC2119;
	  
	<?rfc include="reference.RFC.3444" ?>


	  
	  
	  
   </references>
   
    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->


      <!-- A reference written by by an organization not a person. -->

      <reference anchor="OMG_UML">
        <front>
          <title>OMG Unified Modelling Language (UML), Infrastructure, Version 2.4.1</title>	  
          <author>
            <organization>OMG</organization>
          </author>
          <date year="2011" />
        </front>
      </reference>

      <reference anchor="ISO_IEC_UML">
        <front>
          <title>ISO/IEC 19505-1:2012 - Information technology - Object 
		  Management Group Unified Modeling Language (OMG UML) - Part 1: 
		  Infrastructure. Iso.org.2012-04-20. Retrieved 2014-04-10</title>
          <author>
            <organization>ISO/IEC</organization>
          </author>
          <date year="2012" />
        </front>
      </reference>

      <reference anchor="ITU-T_G.874.1"
                 target="http://www.itu.int/rec/T-REC-G.874.1/en">
        <front>
          <title>ITU-T G.874.1 (2012), Optical transport network: 
		  Protocol-neutral management information model for the 
		  network element view </title>
          <author>
            <organization>ITU-T</organization>
          </author>
          <date year="2012" />
        </front>
      </reference>
	
	  <reference anchor="ITU-T_G.8052"
                 target="http://www.itu.int/rec/T-REC-G.8052/en">
        <front>
          <title>ITU-T G.8052/Y.1346 (2013), Protocol-neutral 
		  management information model for the Ethernet 
		  Transport capable network element</title>
          <author>
            <organization>ITU-T</organization>
          </author>
          <date year="2013" />
        </front>
      </reference>
	
	 <reference anchor="ITU-T_G.8152"
                 target="">
        <front>
          <title>ITU-T G.8152/Y.1375 (draft in progress), 
		  Protocol-neutral management information model for 
		  the MPLS-TP network element</title>
          <author>
            <organization>ITU-T</organization>
          </author>
          <date year="201x" />
        </front>
      </reference>
	
	 <reference anchor="MEF_7.1"
                 target="http://www.metroethernetforum.org/Assets/Technical_Specifications/PDF/MEF7.1.pdf">
        <front>
          <title>Carrier Ethernet Management Information Model 
		  [superseded by MEF 7.2, which supports additional sets 
		  of service attributes defined in recent MEF specifications]</title>
          <author>
            <organization>MEF</organization>
          </author>
          <date year="2009" />
        </front>
      </reference>
	
	<reference anchor="MEF_38"
                 target="http://www.metroethernetforum.org/Assets/Technical_Specifications/PDF/MEF_38.pdf">
        <front>
          <title>Service OAM Fault Management YANG Modules</title>
          <author>
            <organization>MEF</organization>
          </author>
          <date year="2012" />
        </front>
      </reference>
	
	<reference anchor="MEF_39"
                 target="http://www.metroethernetforum.org/Assets/Technical_Specifications/PDF/MEF_39.pdf">
        <front>
          <title>Service OAM Performance Monitoring YANG Module</title>
          <author>
            <organization>MEF</organization>
          </author>
          <date year="2012" />
        </front>
      </reference>
	
	<reference anchor="TMF_MTNM"
                 target="http://www.tmforum.org/MTNM/1689/www.tmforum.org/DownloadCenter/7549/home.html#mtnm">
        <front>
          <title>TM Forum Multi Technology Network Management, Release 3.5</title>
          <author>
            <organization>TM Forum</organization>
          </author>
          <date year="2009" />
        </front>
      </reference>

	<reference anchor="TMF_MTOSI"
                 target="http://www.tmforum.org/MTNM/1689/www.tmforum.org/DownloadCenter/7549/home.html#mtosi">
        <front>
          <title>TM Forum Multi Technology OS Interface, Release 3.0</title>
          <author>
            <organization>TM Forum</organization>
          </author>
          <date year="2012" />
        </front>
      </reference>

	<reference anchor="TMF_TR225"
                 target="">
        <front>
          <title>TM Forum TR225, Logical Resource: Network Function Model</title>
          <author>
            <organization>TM Forum</organization>
          </author>
          <date year="2014" />
        </front>
      </reference>
	  
	<reference anchor="NGMN_NGCOR"
                 target="http://www.ngmn.org/uploads/media/NGMN_Next_Generation_Converged_Operations_Requirements_-_Final_Deliverable.pdf">
        <front>
          <title>Next Generation Converged Operations Requirements (NGCOR)</title>
          <author>
            <organization>NGMN Alliance</organization>
          </author>
          <date year="2013" />
        </front>
      </reference>
	  
	<reference anchor="ITU-T_G.7711"
                 target="">
        <front>
          <title>Generic protocol-neutral management Information Model for transport network resources</title>
          <author>
            <organization>ITU-T</organization>
          </author>
          <date year="2015" />
        </front>
      </reference>
  
	<reference anchor="ONF_TR-512"
                 target="https://www.opennetworking.org/images/stories/downloads/sdn-resources/technical-reports/ONF-CIM_Core_Model_base_document_1.1.pdf">
        <front>
          <title>TR-512 Core Information Model 1.1</title>
          <author>
            <organization>ONF</organization>
          </author>
          <date year="2015" />
        </front>
      </reference>	  
		  
	<reference anchor="ONF_TR-513"
                 target="https://www.opennetworking.org/images/stories/downloads/sdn-resources/technical-reports/Common_Information_Model_CIM_Overview_1.pdf">
        <front>
          <title>TR-513 Common Information Model Overview 1.1</title>
          <author>
            <organization>ONF</organization>
          </author>
          <date year="2015" />
        </front>
      </reference>	  
	
	  
	<reference anchor="ONF_TR-514"
                 target="https://www.opennetworking.org/images/stories/downloads/sdn-resources/technical-reports/UML_Modeling_Guidelines_Version_1-1.pdf">
        <front>
          <title>TR-514 UML Modeling Guidelines 1.1</title>
          <author>
            <organization>ONF</organization>
          </author>
          <date year="2015" />
        </front>
      </reference>	  
	  
	  
	<reference anchor="ONF_TR-515"
                 target="https://www.opennetworking.org/images/stories/downloads/sdn-resources/technical-reports/Papyrus_Guidelines_1.1-1.pdf">
        <front>
          <title>TR-515 Papyrus Guidelines 1.1</title>
          <author>
            <organization>ONF</organization>
          </author>
          <date year="2015" />
        </front>
      </reference>	  
	  
			  
	<reference anchor="I-D.lam-topology"
                 target="https://datatracker.ietf.org/doc/draft-lam-teas-usage-info-model-net-topology/">
        <front>
          <title>Usage of IM for network topology to support TE Topology YANG Module Development</title>  
          <author initials="K" surname="Lam">
            <organization></organization>
          </author>	
          <author initials="E" surname="Varma">
            <organization></organization>
          </author>	
          <author initials="P" surname="Doolan">
            <organization></organization>
          </author>
          <author initials="N" surname="Davis">
            <organization></organization>
          </author>
          <author initials="B" surname="Zeuner">
            <organization></organization>
          </author>
          <author initials="M" surname="Betts">
            <organization></organization>
          </author>
          <author initials="I" surname="Busi">
            <organization></organization>
          </author>
          <author initials="S" surname="Mansfield">
            <organization></organization>
          </author>		  
		  
          <date year="2015" />
        </front>
      </reference>

	<reference anchor="I-D.mansfield-uml"
                 target="http://datatracker.ietf.org/doc/draft-mansfield-netmod-uml-to-yang/">
        <front>
          <title>Guidelines for Translation of UML Information Model to YANG Data Model</title>  
          <author initials="S" surname="Mansfield">
            <organization></organization>
          </author>	
          <author initials="B" surname="Zeuner">
            <organization></organization>
          </author>	
          <author initials="N" surname="Davis">
            <organization></organization>
          </author>
          <author initials="Y" surname="Yun">
            <organization></organization>
          </author>
          <author initials="Y" surname="Tochio">
            <organization></organization>
          </author>
          <author initials="K" surname="Lam">
            <organization></organization>
          </author>
          <author initials="E" surname="Varma">
            <organization></organization>
          </author>	  
		  
          <date year="2016" />
        </front>
      </reference>
	  
	  
    </references>	
	

	
    <section anchor="app-additional" title="Additional Stuff">
      <t>TBD</t>
    </section>

    <!-- Change Log

v00 2006-03-15  EBD   Initial version

v01 2006-04-03  EBD   Moved PI location back to position 1 -
                      v3.1 of XMLmind is better with them at this location.
v02 2007-03-07  AH    removed extraneous nested_list attribute,
                      other minor corrections
v03 2007-03-09  EBD   Added comments on null IANA sections and fixed heading capitalization.
                      Modified comments around figure to reflect non-implementation of
                      figure indent control.  Put in reference using anchor="DOMINATION".
                      Fixed up the date specification comments to reflect current truth.
v04 2007-03-09 AH     Major changes: shortened discussion of PIs,
                      added discussion of rfc include.
v05 2007-03-10 EBD    Added preamble to C program example to tell about ABNF and alternative 
                      images. Removed meta-characters from comments (causes problems).  -->
  </back>
</rfc>
