<?xml version="1.0" encoding="us-ascii"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"[
<!ENTITY RFC6256 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6256.xml">
<!ENTITY RFC4838 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4838.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3416 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3416.xml">
<!ENTITY RFC6241 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6241.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<?rfc compact="no" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>

<rfc category="info" ipr="trust200902" docName="draft-birrane-dtn-ama-01" obsoletes="" updates="" submissionType="IETF" xml:lang="en">

<!-- ***** 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="AMA">Asynchronous Management Architecture</title>
    <author fullname="Edward J. Birrane" initials="E.B." surname="Birrane">
      <organization>Johns Hopkins Applied Physics Laboratory</organization>
      <address>
        <email>Edward.Birrane@jhuapl.edu</email>
      </address>
    </author>
    <date year="2015" />
    <!-- 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>Delay-Tolerant Networking</workgroup>
    <keyword>DTN</keyword>
    <keyword>Network Management</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 document describes the motivation, desirable properties, system model, 
      	roles/responsibilities, and component models associated with an 
         asynchronous management architecture (AMA)
      	suitable for providing application-level network management services in a challenged networking
      	environment. Challenged networks are those that require fault protection, configuration,
         and performance reporting while unable to provide human-in-the-loop operations
      	centers with synchronous feedback in the context of administrative sessions. In such
      	a context, networks must exhibit behavior that is both deterministic and autonomous
      	while maintaining compatibility with existing network management protocols and 
      	operational concepts.		 	 		
      </t>
    </abstract>
  
  </front>
 
   
  <middle>
    <section title="Introduction" toc="default">
      <t>
         This document presents an Asynchronous Management Architecture (The AMA) providing 
         application-layer network management services over links where delivery
         delays prevent timely communications between a network operator and a
         managed device. These delays may be caused by long signal propagations
         or frequent link disruptions (such as described in <xref target="RFC4838"/>)
         or by non-environmental delay drivers such as unavailability of network operators, 
         administrative delays, or delays caused by quality-of-service prioritizations and
         service-level agreements.
      </t>
               
      <section title="Purpose" toc="default">
      	 <t>
            This document describes the motivation, rationale, desirable properties, 
            and roles/responsibilities associated with an asynchronous management architecture (AMA)
            suitable for providing network management services in a challenged networking
            environment. These descriptions should be of sufficient specificity such that
            an implementing Network Management Protocol (NMP) conformant with this architecture
            will operate successfully in a challenged networking environment.     
         </t>       	
      	 <t>
             An AMA is necessary as the assumptions inherent to the architecture and design
             of synchronous management tools and techniques fail in challenged network
             scenarios. Absent an asynchronous management approach, network operators must either
             adapt to scaling outages of common network management functionality or, more often,
             must invest time and resources to evolve a challenged network
             into a well-connected, low-latency network. In some cases such evolution is
             merely a costly way to over-resource a network. In other cases, such evolution is 
         	 impossible given physical limitations
             imposed by signal propagation delays, power, transmission technologies, and other
             phenomena. The ability to asynchronously manage asynchronous networks
             enables the large-scale deployment of such networks providing both enhanced
             technical capabilities and reduced deployment and operations costs.  
           
             This document presents six sections that, together, describe an AMA suitable for
             enterprise management of asynchronous networks: motivation, service definitions, desirable
             properties, roles/responsibilities, system model, and logical component model.
             The purpose of each section is as follows.
           
        
             <list hangIndent="8" style="symbols">
               <t>
               	Motivation - Synchronous management protocols operate using a series of implied assumptions
                  regarding the bi-directional exchange of information in the context of a
                  management session. Further, many such tools also pre-suppose a human-in-the-loop
                  operations model. A description of common network management functions and how
                  synchronous mechanisms fail to provide these functions in an asynchronous network
                  motivates and distinguishes this work from current management approaches.
               </t>

               <t>
               	Service Definitions - A working definition of network management services for asynchronous networks provides
                  the terminology, scope, and impact of the AMA. Where practical, these definitions
                  follow from network management definitions for synchronous networks.  
               </t>
                
               <t> 
                  Desirable Properties - desirable properties capture core architectural principles such that any 
                  network management protocol (NMP) which adheres to these properties may
                  be considered an asynchronous network management protocol (AMP). These
                  properties are the basis for the system model, roles, and components that
                  comprise the AMA.     
               </t>

               <t> 
               	Roles and Responsibilities - The identification of the roles of logical actors in the AMA and their 
                  associated responsibilities provide the
                  context for discussing how network management services interact in the context of
                  a system model.   
               </t>
                
               <t> 
               	System Model - The AMA system model describes significant data flows amongst the various defined
                  actor roles. These flows capture how the AMA system works to provide asynchronous
                  network management services in accordance with defined desirable properties. 
               </t>

               <t>
                	Logical Component Model - The description of the AMA is completed by the description of key 
                  logical components that should exist in any physical instantiation of an
                  AMP. Notably, physical instantiations are not required to follows, exactly,
                  this model but should provide traceability to this model.      
               </t>
                                                                               
             </list>
          </t>    
      </section>
      
      <section title="Scope" toc="default">
         <t>
            It is assumed that any challenged network where network management would be
            usefully applied support basic services such as naming, addressing, security,
            fragmentation, and traditional network/session layer functions. Therefore, these
            items are not covered in this architectural document.
         </t>
         <t>
            While likely that a challenged network will interface with a non-challenged network,
            this architecture does not address the concept of network management compatibility
            with traditional, non-challenged network management approaches. Implementing NMPs
            conformant with this architecture should examine compatibility with existing approaches
            as part of supporting nodes acting as gateways between network types.    
         </t>
      </section>
      
      <section title="Requirements Language" toc="default">
        <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" pageno="false" format="default">RFC 2119</xref>.</t>
      </section>
    </section>
 
    <section title="Terminology" toc="default">
      <t>
         This section identifies those terms critical to understanding the
         proper operation of the AMA. Whenever possible, these terms align in
         both word selection and meaning with their analogs from other management
         protocols. 
        
         <list hangIndent="8" style="symbols">
            <t>Actor - A software service running on either managed or managing devices for the 
               purpose of implementing management protocols between such devices.  
               Actors may implement the "Manager" role, "Agent" role, or both.
            </t>
            <t>Agent Role (or Agent) - The role associated with a managed device, responsible for reporting 
               performance data, enforcing administrative policies, and accepting/performing 
               actions. Agents exchange information with Managers operating either on
               the same device or on a remote managing device.
            </t>
            <t>Asynchronous Management Protocol (AMP) - A Network Management Protocol (NMP) that functions as designed in the
            	absence of reliable, session-based communications amongst nodes in a network.
            </t>                        
            <t>Application Data Model (ADM) - The set of predefined data definitions, reports, literals, operations, and
               controls given to an Actor to manage a particular application 
               or protocol. Actors support multiple ADMs, one for each
               application/protocol being managed.  
            </t>
            <t>Atomic Data - Globally unique, managed data definitions, similar to those defined 
               in a Management Information Base (MIB), whose definition does not change 
               based on the configuration of an Actor. Atomic data comprise the 
               "lingua franca" within the AMA. NMPs operate either directly on
               atomic data or on data derived from atomic data. Atomic data are specified
               in Application Data Models (ADMs). 
            </t>
            <t>Computed Data - Data items that are computed dynamically by an Actor from some
               combination of Atomic Data and other Computed Data. Computed data definitions
               are specified in both Application Data Models (ADMs) and tactically as part of per-network
            	configurations.
            </t>
            <t>Controls - Operations that may be undertaken by an Actor to change the behavior, 
               configuration, or state of an application or protocol managed by an NMP.
            	Controls are specified in Application Data Models (ADMs).
            </t>
            <t>Literals - Constant definitions and other magic numbers used in the evaluation of
            	the state of Agents in the network. Literals are specified in 
            	both Application Data Models (ADMs) and tactically as part of per-network 
            	configurations.
            </t>
            <t>Macros - A named, ordered collection of controls. Macro definitions are specified in 
            	both Application Data Models (ADMs) and tactically as part of per-network 
            	configurations.
            </t>
            <t>Managed Item Definition (MID) - A parameterized structure used to uniquely identify all data and
               control definitions within an NMP. 
            </t>
            <t>Manager - A role associated with a managing device responsible for configuring 
               the behavior of, and receiving/processing/visualizing information 
               from, Agents. Managers interact with one or more Agents located on 
               the same device and/or on remote devices in the network.
            </t>
            <t>Network Management Protocol (NMP) - An application-layer protocol used to manage the data, controls, and 
            	other items necessary for configuration, monitoring, and administration
            	of applications and protocols on a node in a network. NMPs in this
            	context do not manage the physical or data link layers of a networking
            	stack. They may, however, assist in the configuration of software-defined
            	radios.
             </t>           
             <t>Operator - The enumeration and specification of a mathematical function used to 
             	calculate computed data definitions and construct expressions to 
             	calculate spacecraft state. Operators are specified in Application
             	Data Models (ADMs).
             </t>
             <t>Report - A named, ordered collection of data items gathered by one or more 
               Agents and provided to one or more Managers. Reports are specified 
            	in Application Data Models (ADMs) and tactically as part of per-network
            	configurations.
             </t>
             <t>Rule - A unit of autonomous specification that provides a stimulus-response 
             	relationship between time/state on an Agent and the Controls to be 
             	run as a result of that time/state. 
             </t>
                          
         </list>
      </t>
   </section>
    
   <section title="Motivation" toc="default">
      <t>
         The characteristics of challenged networks, to include those networks
         challenged by administrative or policy delays, do not conform to several 
         assumptions made by current network management approaches.  These 
         assumptions include high-rate, high-available data, round-trip data
         exchange, and operator-in-the-loop operation. The inability of current
         approaches to provide network management services in a challenged
         network motivate the need for a new network management architecture
         focused on asynchronous, open-loop, autonomous control of network 
         components.
      </t>
      <section title="Challenged Networks" toc="default">
         <t>  
            A growing variety of link-challenged networks support 
            packetization to increase data communications reliability without
            otherwise guaranteeing a simultaneous end-to-end path.
            Examples of such networks include Mobile Ad-Hoc Networks (MANets),
            Vehicular Ad-Hoc Networks (VANets), space-terrestrial internetworks,
            and heterogeneous networking overlays. Links in such networks
            are often unavailable due to attenuations, propagation
            delays, occultation, and other limitations imposed by energy and 
            mass considerations. Data communications in such networks rely on
            store-and-forward and other queueing strategies to wait for the
            connectivity necessary to usefully advance a packet along its 
            route.
         </t>
         <t>
         	Similarly, there also exist well-resourced networks that
         	incur high message delivery delays due to non-environmental
         	limitations. For example, networks whose operations centers are
         	understaffed or where data volume and management
         	requirements exceed the real-time cognitive load of operators or
         	the associated operations console software support. Also, networks
         	where policy prevents certain data
         	users from utilizing existing bandwidth also create delayed and
         	disrupted environments that create administratively controlled periods
         	of no communication.  
         </t>
         <t> 
            Regardless of the reason, during periods of no communications nodes must rely on  
            fault-management and other autonomous mechanisms to ensure the safe
            operation of the node and its ability to usefully re-join the
            network at a later time. In cases of sparsely-populated networks, 
            there may never be a practical concept of "the connected network" as
            most nodes may be disconnected most of the time. In such environments,
            defining a network in terms of instantaneous connectivity becomes
            impractical or impossible.  
         </t>
         <t>
            Specifically, challenged networks exhibit the following properties
            that may violate assumptions built into current approaches to
            network management.
            <list style="symbols">
               <t>Links may be uni-directional.</t>
               <t>Bi-directional links may have asymmetric rates.</t>
               <t>No end-to-end path is guaranteed to exist at any given time between any two nodes.</t>
               <t>Round-trip communications between any two nodes within any given time window may be impossible.</t>
            </list>
         </t>
      </section>
      
      <section title="Current Management Approaches" toc="default">
         <t>
            Network management in non-challenged networks provides mechanisms for 
            communicating locally-collected data from Agents to 
            associated Managers, typically using a "pull" mechanism 
            where data must be explicitly requested in order to be transmitted.
         </t>
         <t>    
            A near ubiquitous method for management in non-challenged networks today is the 
            Simple Network Management Protocol (SNMP) <xref target="RFC3416"/>.
            SNMP utilizes a 
            request/response model to set and retrieve data values such as host 
            identifiers, link utilizations, error rates, counters, etc., 
            between application software on Agents and Managers.  Data may be directly 
            sampled or consolidated into representative statistics.  
            Additionally, SNMP supports a model for asynchronous notification 
            messages, called traps, based on predefined triggering events.  
            Thus, Managers can query Agents for status information, 
            send new configurations, and be informed when 
            specific events have occurred.  Traps and 
            query-able data are defined in one or more Managed Information 
            Bases (MIBs) which define the information for a particular data 
            standard, protocol, device, or application.
         </t>
         <t> 
            In challenged networks, the request/response method of data 
            collection is neither efficient nor, at times, possible as it relies
            on sessions, round-trip latency, message retransmission, and ordered 
            delivery.  Adaptive modifications to SNMP to
            support challenged networks would alter the basic
            function of the protocol (data models, control flows, and syntax)
            so as to be functionally incompatible with existing SNMP 
            installations. While a standard for networking, extending SNMP 
            into this new domain is no more plausible than extending 
            IP routing protocols into this domain.
         </t>
         <t>
            The Network Configuration Protocol (NETCONF) provides  
            device-level configuration capabilities <xref target="RFC6241"/>.  
            so as to replace vendor-specific command line interface (CLI) 
            configuration software.  The XML-based protocol provides a remote 
            procedure call (RPC) syntax such that any exposed functionality on an Agent 
            can be exercised via a software application interface.  NETCONF 
            places no specific functional requirements or constraints on the 
            capabilities of the Agent, which makes it a very flexible tool 
            for configuring a homogeneous network of devices.  However, NETCONF 
            does place specific constraints on any underlying transport 
            protocol: namely, a long-lived, reliable, low-latency sequenced 
            data delivery session.  This is a fundamental requirement given 
            the RPC-nature of the operating concept, and it is unsustainable 
            in a challenged network.            
         </t>
      </section>
     
      <section title="Limitations of Current Approaches" toc="default">
         <t>
            Ultimately, management approaches that rely on timely data exchange, such as those 
            that rely on negotiated sessions or other synchronized acknowledgment, 
            do not function in challenged network environments. Familiar examples
            of TCP/IP based management via closed-loop, synchronous 
            messaging does not work when network disruptions increase in frequency 
            and severity. While no protocol delivers data in the absence of a 
            networking link, protocols that eliminate or drastically reduce overhead 
            and end-point coordination require smaller transmission windows and 
            continue to function when confronted with scaling delays and disruptions 
            in the network.              
         </t> 
         <t>
            Just as the concept of a loosely-confederated set of nodes changes 
            the definition of a network, it also changes the operational concept 
            of what it means to manage a network. When a network stops being a
            single entity exhibiting a single behavior, "network management"
            becomes large-scale "node management". Individual nodes must share
            the burden of implementing desirable behavior without reliance
            on a single oracle of configuration or other coordinating function
            such as an operator-in-the-loop.               
         </t>    
         
      </section>

   </section>     

   <section title="Service Definitions" toc="default">
      <t>
      	This section identifies the type of services that must exist between
      	Managers and Agents within an AMA. These services include configuration, 
         reporting, parameterized control, and administration. 
      </t>
      <section title="Configuration" toc="default">
         <t> 
            Configuration services update local information held by
            an Agent as it relates to managed applications and protocols. Such
         	information refers to the data necessary to configure behavior 
         	in response to state and time changes on these devices. The local 
         	information configured through these services includes the data 
         	definitions from Application Data Models (ADMs), the specification
         	of parameters associated with these models, and tactical data
         	definitions defined by operators in the network. 
         </t>      
         <t>         	
            New configurations received by a node must be validated to 
            ensure that they do not conflict with other configurations at 
            the node, or prevent the node from effectively working with 
            other nodes in its region. In challenged networks there may not be 
            sufficient time to prevent an erroneous or stale configuration 
            from harming the flow of data through the network.  
         </t>
         <t>
            Examples of configuration service behavior include the following.
            <list style="symbols">
               <t>Creating a new datum as a function of other well-known data: <vspace /> (A + B = C).</t>
               <t>Creating a new report as a unique, ordered collection of known data: <vspace /> (R1 = {A, B, C}).</t>
               <t>Storing pre-defined, parameterized responses to potential future conditions: <vspace /> (IF X > 3 THEN RUN_CMD[PARM1]).</t>
            </list>
         </t>        
      </section>   
        
      <section title="Reporting" toc="default">
         <t> 
            Reporting services collect state information from an Agent,
            such as performance information, and send this information to one
            or more Managers. The term "reporting" is used in place of the 
            term "monitoring" as challenged networks cannot support closed-loop 
         	monitoring. Reports received by an Agent provide best-effort 
         	information to Managers.            
         </t>
         <t>
            Since a Manager is not actively "monitoring" an Agent, the 
         	Agent must make its own determination on when
            to send what reports based on its own local time
            and state information. Agents should produce reports of varying
            fidelity and with varying frequency based on thresholds and other
            information set as part of configuration services.
         </t>
         <t>
            Examples of reporting service behavior include the following.
            <list style="symbols">
               <t>Generate report R1 every hour (time-based production).</t>
               <t>Generate report R2 when X > 3 (state-based production).</t>
            </list>
         </t>         
      </section> 

      <section title="Parameterized Control" toc="default">
         <t> 
            Control services provide mechanisms for an Agent to change
            its behavior using pre-defined, pre-configured responses from a Manager. 
            By setting autonomous actions on Agents, Managers can "manage" the node 
         	asynchronously during periods of
            no communication. Agents must understand a finite set of 
            pre-programmed functions related to the protocols and applications
            managed on the device. As such, controls comprise the basic autonomy 
            mechanism within the AMA. 
         </t>
         <t>
            Similar to reporting services, controls are run based on the Agent's notion 
         	of time and state in accordance with directives
            provided by configuration services. 
         </t>
         <t>
            Examples of potential control service behavior include the following.
            <list style="symbols">
               <t>Updating local routing information based on instantaneous link analysis.</t>
               <t>Managing storage on the device to enforce quotas.</t>
               <t>Applying or modifying local security policy.</t>
            </list>
         </t>
      </section>         
      
      <section title="Administration" toc="default">
         <t> 
            Administration services enforce the potentially complex
            mapping of configuration, reporting, and control services amongst
            Agents and Managers in the network. Fine-grained access control
            specifying which Managers may apply which services to which Agents 
            may be necessary in networks dealing with multiple administrative
            entities or overlay networks crossing multiple administrative 
            boundaries. Whitelists, blacklists, shared keys, PKI, or other 
            schemes may be used for this purpose.
         </t>     
         <t>
            Examples of administration service behavior include the following.
            <list style="symbols">
               <t>Agent A1 only sends reports for protocol X to Manager M1.</t>
               <t>Agent A2 only accepts a configurations for application Y from Managers M2 and M3.</t>
               <t>Agent A3 accepts services from any Manager providing the proper authentication token.</t>
            </list>
         </t>                     
      </section>
   </section> 
        
   <section title="Desirable Properties" toc="default">     
      <t>
      	As discussed, realizing necessary service definitions given the characteristics of 
      	challenged networks cannot be performed using current network management approaches
      	and operational concepts. This section describes those desirable properties of
      	an AMA that enable the implementation of service definitions in such networks.
      	These properties include open-loop, intelligent push, asynchronous mechanisms that
         can scale as message delivery delays scale. Ultimately, a useful AMA MUST 
         be built around the following five design principles.  
		</t>
		
		<section title="Intelligent Push of Information" toc="default">
      	<t> 
         	Pull management mechanisms require that a Manager send a query 
            to an Agent and then wait for the response to that query. This
            practice both implies a control-session between entities and increases
            the overall message traffic in the network. Challenged networks cannot
            guarantee timely roundtrip data-exchange and, in extreme cases, are
            comprised solely of uni-directional links. Therefore, pull mechanisms
            must be avoided in favor of push mechanisms.
     		</t>
         <t>
            Push mechanisms, in this context, refer to Agents making their own
            determinations relating to the information that should be sent to 
            Managers. Such mechanisms do not require round-trip communications
            as Managers do not request each reporting instance;
            Managers need only request once, in advance, that information be produced
            in accordance with a pre-determined schedule or in response to a pre-defined
            state on the Agent. In this was information is "pushed" from Agents to 
            Managers and the push is "intelligent" because it is based on some
            internal evaluation performed by the Agent.	
         </t>						
		</section>
		
		<section title="Minimize Message Size Not Node Processing" toc="default">
      	<t> 
       		Protocol designers must balance message size versus message processing time at
            sending and receiving nodes. Verbose representations of data simplify node
            processing whereas compact representations require additional activities 
            to generate/parse the compacted message. There is no asynchronous management 
            advantage to minimizing node processing time in a challenged network. 
            However, there is a significant advantage to smaller message sizes in such networks.    
            Compact messages require smaller periods of viable transmission for 
            communication, incur less re-transmission cost, and consume less 
            resources when persistently stored en-route in the network. AMPs
            should minimize PDUs whenever practical,
            to include packing and unpacking binary data, variable-length fields,
            and pre-configured data definitions.    
         </t>			
		</section>
		
		<section title="Specific Data Identification" toc="default">
      	<t>
         	Elements within the management system must be uniquely identifiable so
            that they can be individually manipulated. Identification schemes that
            are relative to system configuration make data exchange between
            Agents and Managers difficult as
            system configurations may change faster than nodes can communicate. 
            For example, SNMP-managed systems often approximate associative array lookups by 
            (1) querying a list of known array keys, (2) making
            a key-index map, and (3) then querying a specific index into the array based 
            on that map. Ignoring the inefficiency of two pull requests, this 
            mechanism fails when the Agent changes its key-index mapping
            between the first and second query. AMPs must find a way
            to uniquely identify such data that does not rely on system configuration,
            perhaps through parameterization of the initial query.
         </t> 				
		</section>
		
		<section title="Custom, Tactical Data Definition" toc="default">
         <t>
            Tactical definition of new data from existing data (such as through
            data fusion, averaging, sampling, or other mechanisms) provides the
            ability to communicate desired information in as compact a form as
            possible. Specifically, an Agent should not be required to
            transmit a large data set for a Manager that only wishes to
            calculate a smaller, inferred data set. The Agent should calculate
            the smaller data set on its own and transmit that instead. Since 
            the identification of these smaller data sets is likely both tactical 
            and in the context of a specific network deployment, AMPs must provide
            a mechanism for their definition. 
         </t>				
		</section>
		
		<section title="Autonomous Operation" toc="default">
         <t> 
            AMA network functions must be achievable using only knowledge local to 
            the Agent. Performance data production, reconfiguration, and other activity
            must be autonomously evaluated and implemented by the impacted node. 
            Managers, rather than directing an Agent, configure the
            autonomy engine of the Agent to take its own action under the
            appropriate conditions in accordance with the Agent's notion of
            local state and time.     
         </t>						
		</section>
   </section>
  
   
   <section title="Roles and Responsibilities" toc="default"> 
   	<t>
      	By definition, Agents reside on managed devices and Managers reside on 
         managing devices. This section describes
      	how these roles participate in the network management
      	functions outlined in the prior section. 
      </t>
 
      <section title="Agent Responsibilities" toc="default">
      	<t hangText="Agent Responsibilities">
         	<list hangIndent="8" style="hanging">
            	<t hangText="Application Data Model (ADM) Support"> <vspace blankLines="0" />
            		Agents MUST collect all data, execute all controls, and provide
            		all reports and operations required by each ADM which the Agent claims 
            		to support. Agents MUST enumerated supported ADMs so that Managers in 
            		a network understands what information is understood by that Agent.
            	</t>
            	
         		<t hangText="Local Data Collection"><vspace blankLines="0" />
               	Agents MUST collect from local firmware (or other on-board mechanisms)
         			and report all atomic data defined in all ADMs 
         			for which they have been configured. 
               </t>
                                 
               <t hangText="Autonomous Control"><vspace blankLines="0" />
                  Agents MUST determine, without Manager intervention, whether 
                  a configured control should be invoked. Agents MUST
                  periodically evaluate the conditions associated with
                  configured controls and invoke those controls based on local
                  state. Agents MAY also invoke controls on other devices for which
               	they act as proxy.
               </t>
              
               <t hangText="User Data Definition"><vspace blankLines="0" />
                  Agents MUST provide mechanisms for operators in the network to
               	use configuration services to create customized data, reports,
               	macro definitions and other information specific to a particular
               	operator need in the context of a specific network or network
               	use-case. Agents MUST allow for the creation, listing, and
               	removal of such data definitions in accordance with whatever
               	security models are deployed within the particular network.
               	<vspace blankLines="1" />
               	Where applicable, Agents MUST verify the validity of custom
               	data definitions when they are configured and respond in
               	a way consistent with the logging/error-handling policies
               	of the Agent and the network.
               </t>
             
               <t hangText="Autonomous Reporting"><vspace blankLines="0" /> 
                  Agents MUST determine, without Manager intervention, whether and
               	when to populate and transmit a given data report targeted to
               	one or more Managers in the network. 
               </t>
            
               <t hangText="Consolidate Messages"><vspace blankLines="0" />
                  Agents SHOULD produce as few messages as possible when sending information.
                  For example, rather than sending multiple report messages to a
                  Manager, an Agent SHOULD prefer to send a single message
                  containing multiple reports.
               </t>
         
               <t hangText="Regional Proxy"><vspace blankLines="0" />
                  Agents MAY perform any of their responsibilities on behalf of other network nodes
                  that, themselves, do not have an Agent.  In such a
                  configuration, the Agent acts as a proxy for these
                  other network nodes.
               </t>
            </list>
         </t>
   	
   	</section>
      
   	<section title="Manager Responsibilities" toc="default">
         <t hangText="Manager Responsibilities">
            <list hangIndent="8" style="hanging">
               <t hangText="Agent/ADM Mapping"><vspace blankLines="0" />
        	      	Managers MUST understand what ADMs are supported by the various Agents with
                  which they communicate. Managers SHOULD NOT attempt to
                  request, invoke, or refer to ADM information for ADMs
                  unsupported by an agent.
               </t>
        
               <t hangText="Data Collection"><vspace blankLines="0" />
                  Managers MUST receive
                  information from Agents by asynchronously configuring the
                  production of data reports and then waiting for, and
                  collecting, responses from Agents over time. Managers MAY
                  try to detect conditions where Agent information has not 
               	been received within operationally relevant timespans and
               	react in accordance with network policy.
               </t>
               
               <t hangText="Custom Definitions"><vspace blankLines="0" /> 
                  Managers SHOULD provide the ability to define custom data and report
                  definitions. Any defined custom definitions MUST be
                  transmitted to appropriate Agents and these definitions MUST
                  be remembered to interpret the reporting of these custom
                  values from Agents in the future.
               </t>
               
               <t hangText="Data Translation"><vspace blankLines="0" /> 
                  Managers SHOULD
                  provide some interface to other network management
                  protocols, such as the SNMP. Managers MAY accomplish this by
                  accumulating a repository of push-data from high-latency parts
                  of the network from which data may be pulled by low-latency
                  parts of the network.
               </t>
               
               <t hangText="Data Fusion"><vspace blankLines="0" /> 
                  Managers MAY support the
                  fusion of data from multiple Agents with the purpose of
                  transmitting fused data results to other Managers within the
                  network. Managers MAY receive fused reports from other
                  managers pursuant to appropriate security and administrative
                  configurations.
               </t>
            </list>
      	</t>	   		
   	</section> 

   </section>
    
       
   <section title="System Model" toc="default">
  		<t>
  			This section describes the notional data flows and control
  			flows that illustrate how Managers and Agents within an AMA
  			cooperate to perform network management services.
  		</t>
      
      <section title="Data Flows" toc="default">
        <t>
           The AMA identifies three significant data flows: control
           flows from Managers to Agents, reports flows from Agents to Managers,
           and fusion reports from Managers to other Managers. These data flows
           are illustrated in <xref target="system_overview" pageno="false" format="default" />.
        </t>
        <figure align="center" anchor="system_overview" title="" suppress-title="false" alt="" width="" height="">
          <preamble>AMA Data Flows</preamble>
          <artwork align="center" xml:space="preserve" name="" type="" alt="" width="" height="">    
 +---------+       +------------------------+      +---------+        
 | Node A  |       |         Node B         |      |  Node C |
 |         |       |                        |      |         |
 |+-------+|       |+-------+      +-------+|      |+-------+|
 ||       ||=====&gt;&gt;||Manager|====&gt;&gt;|       ||====&gt;&gt;||       ||
 ||       ||&lt;&lt;=====||   B   |&lt;&lt;====|Agent B||&lt;&lt;====||       ||
 ||       ||       |+--++---+      +-------+|      ||Manager||
 || Agent ||       +---||-------------------+      ||   C   ||              
 ||   A   ||           ||                          ||       ||
 ||       ||&lt;&lt;=========||==========================||       ||
 ||       ||===========++========================&gt;&gt;||       ||
 |+-------+|                                       |+-------+|
 +---------+                                       +---------+
             </artwork>
        </figure>
        <t>
         In this data flow, the Agent on node A receives
         configurations from Managers on nodes B and C, and replies with
         reports back to these Managers. Similarly, the Agent on node B
         interacts with the local Manager on node B and the remote Manager on
         node C. Finally, the Manager on node B may fuse data reports received
         from Agents at nodes A and B and send these fused reports back to the
         Manager on node C.
        <vspace blankLines="0" />
         From this figure it is clear that there exist many-to-many relationships amongst
         Managers, amongst Agents, and between Agents and Managers. Note that
         Agents and Managers are roles, not necessarily differing software
         applications. Node A may represent a single software application
         fulfilling only the Agent role, whereas node B may have a single
         software application fulfilling both the Agent and Manager roles. The
         specifics of how these roles are realized is an implementation matter.
        </t>
      </section>
      
      <section title="Control Flow by Role" toc="default">
        <t>
           This section describes three common configurations of Agents
           and Managers and the flow of messages between them. These
           configurations involve local and remote management and data fusion.
        </t>
        
        <section title="Notation" toc="default">
          <t> The notation outlined in <xref target="ctrl_macros" pageno="false" format="default" /> 
          describes the types of control messages exchanged 
          between Agents and Managers.</t>
          <texttable anchor="ctrl_macros" title="Terminology" suppress-title="false" align="center" style="full">
            <ttcol align="center" width="20%">Term</ttcol>
            <ttcol align="center" width="80%">Definition</ttcol>
            <ttcol align="center" width="20%">Example</ttcol>
            <c>AD#</c>
            <c>Atomic data definition, from ADM.</c>
            <c>AD1</c>
            <c>CD#</c>
            <c>Custom data definition.</c>
            <c>CD1 = AD1 + CD0.</c>
            <c>DEF([ACL], ID,EXPR)</c>
            <c>Define id from expression. Allow managers
            in access control list (ACL) to request this id.</c>
            <c>DEF([*], CD1, AD1 + AD2)</c>
            <c>PROD(P,ID)</c>
            <c>Produce ID according to predicate 
            P. P may be a time period (1s) or an expression (AD1 &gt; 10).</c>
            <c>PROD(1s, AD1)</c>
            <c>RPT(ID)</c>
            <c>A report identified by ID.</c>
            <c>RPT(AD1)</c>
          </texttable>
        </section>
        
        <section title="Serialized Management" toc="default">
          <t>This is a nominal configuration of network management where a
          Manager interacts with a set of Agents. The control flows for this are
          outlined in <xref target="serial_mgmt_ctrl_flow" pageno="false" format="default" />.</t>
          <figure align="center" anchor="serial_mgmt_ctrl_flow" title="" suppress-title="false" alt="" width="" height="">
            <preamble>Serialized Management Control Flow</preamble>
            <artwork align="center" xml:space="preserve" name="" type="" alt="" width="" height="">    
 +----------+            +---------+           +---------+              
 |  Manager |            | Agent A |           | Agent B |
 +----+-----+            +----+----+           +----+----+
      |                       |                     |
      |-----PROD(1s, AD1)----&gt;|                     |(Step 1)
      |----------------------------PROD(1s, AD1)---&gt;|                    
      |                       |                     |
      |                       |                     |
      |&lt;-------RPT(AD1)-------|                     |(Step 2)
      |&lt;-----------------------------RPT(AD1)-------|
      |                       |                     |
      |                       |                     |
      |&lt;-------RPT(AD1)-------|                     |
      |&lt;-----------------------------RPT(AD1)-------|
      |                       |                     |
      |                       |                     |
      |&lt;-------RPT(AD1)-------|                     |
      |&lt;-----------------------------RPT(AD1)-------|
      |                       |                     |
                 </artwork>
            <postamble>In a simple network, a Manager interacts with multiple
            Agents.</postamble>
          </figure>
          <t>
            In this figure, the Manager configures Agents A and B to produce
            atomic data AD1 every second in (Step 1). At some point in the future,
            upon receiving and configuring this message, Agents A and B then
            build a report containing AD1 and send those reports back to the
            Manager in (Step 2).
          </t>
        </section>
        
        <section title="Multiplexed Management" toc="default">
          <t>
            Networks spanning multiple administrative domains may require
            multiple Managers (for example, one per domain). When a
            Manager defines custom reports/data to an Agent, that definition may
            be tagged with an access control list (ACL) to limit what other
            managers will be privy to this information. Managers in such
            networks SHOULD synchronize with those other Managers granted access
            to their custom data definitions. When Agents generate messages,
            they MUST only send messages to Managers according to these ACLs, if
            present. The control flows in this scenario are outlined in 
            <xref target="multi_mgmt_ctrl_flow" pageno="false" format="default" />.
         </t>
          <figure align="center" anchor="multi_mgmt_ctrl_flow" title="" suppress-title="false" alt="" width="" height="">
            <preamble>Multiplexed Management Control Flow</preamble>
            <artwork align="center" xml:space="preserve" name="" type="" alt="" width="" height="">    
 +-----------+            +-------+            +-----------+              
 | Manager A |            | Agent |            | Manager B |
 +-----+-----+            +---+---+            +-----+-----+
       |                      |                      |
       |--DEF(A,CD1,AD1*2)---&gt;|&lt;--DEF(B, CD2, AD2*2)-|(Step 1)
       |                      |                      |
       |---PROD(1s, CD1)-----&gt;|&lt;---PROD(1s, CD2)-----|(Step 2)
       |                      |                      |
       |&lt;-------RPT(CD1)------|                      |(Step 3)
       |                      |--------RPT(CD2)-----&gt;|
       |&lt;-------RPT(CD1)------|                      |
       |                      |--------RPT(CD2)-----&gt;|
       |                      |                      |
       |                      |&lt;---PROD(1s, CD1)-----|(Step 4)
       |                      |                      |
       |                      |--ERR(CD1 no perm.)--&gt;|   
       |                      |                      |
       |--DEF(*,CD3,AD3*3)---&gt;|                      |(Step 5)
       |                      |                      |
       |---PROD(1s, CD3)-----&gt;|                      |(Step 6)
       |                      |                      |
       |                      |&lt;---PROD(1s, CD3)-----|
       |                      |                      |
       |&lt;-------RPT(CD3)------|--------RPT(CD3)-----&gt;|(Step 7)
       |&lt;-------RPT(CD1)------|                      |
       |                      |--------RPT(CD2)-----&gt;|
       |&lt;-------RPT(CD3)------|--------RPT(CD3)-----&gt;|
       |&lt;-------RPT(CD1)------|                      |
       |                      |--------RPT(CD2)-----&gt;|
                 </artwork>
            <postamble>Complex networks require multiple Managers interfacing
            with Agents.</postamble>
          </figure>
 
          <t>
            In more complex networks, Managers may choose to define custom
            reports and data definitions, and Agents may need to accept such
            definitions from multiple Managers. Custom data
            definitions may include an ACL that describes who may query and
            otherwise understand the custom definition. In (Step 1), Manager A
            defines CD1 only for A while Manager B defines CD2 only for B.
            Managers may, then, request the production of reports containing
            these custom definitions, as shown in (Step 2). Agents produce 
            different data for different Managers in accordance
            with configured production rules, as shown in (Step 3). If a Manager
            requests an operation, such as a production rule, for a custom data
            definition for which the Manager has no permissions, a response
            consistent with the configured logging policy on the Agent should be
            implemented, as shown in (Step 4). Alternatively, as shown in (Step 5), a
            Manager may define custom data with no restrictions allowing all
            other Managers to request and use this definition. This allows all
            Managers to request the production of reports containing this
            definition, shown in (Step 6) and have all Managers receive this and
            other data going forward, as shown in (Step 7).
         </t>
        </section>
        
        <section title="Data Fusion" toc="default">
          <t>
            In some networks, Agents do not individually transmit
            their data to a Manager, preferring instead to fuse reporting data
            with local nodes prior to transmission. This approach reduces the
            number and size of messages in the network and reduces overall
            transmission energy expenditure. DTNMP supports fusion of NM reports
            by co-locating Agents and Managers on nodes and offloading
            fusion activities to the Manager. This process is illustrated in
            <xref target="fusion_ctrl_flow" pageno="false" format="default" />.
          </t>
          <figure align="center" anchor="fusion_ctrl_flow" title="" suppress-title="false" alt="" width="" height="">
            <preamble>Data Fusion Control Flow</preamble>
            <artwork align="center" xml:space="preserve" name="" type="" alt="" width="" height="">    
 +-----------+        +-----------+      +---------+      +---------+               
 | Manager A |        | Manager B |      | Agent B |      | Agent C |
 +---+-------+        +-----+-----+      +----+----+      +----+----+
     |                      |                 |                |
     |--DEF(A,CD0,AD1+AD2)-&gt;|                 |                |(Step 1)
     |--PROD(AD1&amp;AD2, CD0)-&gt;|                 |                |
     |                      |                 |                |
     |                      |--PROD(1s,AD1)--&gt;|                |(Step 2)
     |                      |-------------------PROD(1s, AD2)-&gt;|
     |                      |                 |                |
     |                      |&lt;---RPT(AD1)-----|                |(Step 3)
     |                      |&lt;-------------------RPT(AD2)------|
     |                      |                 |                |
     |&lt;-----RPT(A,CD0)------|                 |                |(Step 4)
     |                      |                 |                |
                 </artwork>
            <postamble>Data fusion occurs amongst Managers in the
            network.</postamble>
          </figure>
          <t>
            In this example, Manager A requires the production of a computed
            data set, CD0, from node B, as shown in (Step 1). The manager role
            understands what data is available from what agents in the subnetwork
            local to B, understanding that AD1 is available locally and AD2 is
            available remotely. Production messages are produced in (Step 2) and data
            collected in (Step 3). This allows the manager at node B to fuse the
            collected data reports into CD0 and return it in (Step 4). While a
            trivial example, the mechanism of associating fusion with the
            manager function rather than the agent function scales with fusion
            complexity, though it is important to reiterate that agent and
            manager designations are roles, not individual software components.
            There may be a single software application running on node B
            implementing both Manager B and Agent B roles.
          </t>
        </section>
      </section>
    </section>
    
    <section title="Logical Data Model" toc="default">
      <t>
         This section enumerates the different kinds of information present in
      	an asynchronously-managed network and describes how this information
      	should be communicated in the context of an ADM.
      </t>

      <section title="Data Representation" toc="default">
      	
      	<section title="Types" toc="default">
         	<t>
         		The AMA notionally supports four basic
          		types of information: Data, Controls, Literals, and Operators: 
         		
         		<list hangIndent="8" style="hanging">
         			<t hangText="Value">
         				Values consist of information collected by an Agent
              			and reported to Managers. This includes
              			definitions from an ADM, derived
              			values as configured from Managers, and reports which are
              			collections of data elements.
         			</t>
         			<t hangText="Controls">
         				Controls consist of actions that may be
              			invoked on Agents and Managers to change behavior in
              			response to some external event (such as local state changes or
              			time). Controls include application-specific functions
              			specified as part of an ADM and macros which are collections of
              			these controls. 
         			</t>
         			<t hangText="Literals">
         				Literals are constant numerical values
              			that may be used in the evaluation of expressions and predicates.
         			</t>
         			<t hangText="Operators">
         				Operators are those mathematical
              			functions that operate on series of Data and Literals, such as
              			addition, subtraction, multiplication, and division.
         			</t>
         		</list>
         	</t>
        </section>
        
        <section title="Classification" toc="default">
         	<t>
         		The AMA notionally defines three data classifications that
         		describe the origins and multiplicity of data types within
         		the system. These classifications are atomic, computed, and
         		collection.
         		
         		<list hangIndent="8" style="hanging">
         			<t hangText="Atomic"><vspace blankLines="0" />
         				The Atomic classification contains those data types
              			that are directly specified by an ADM and not otherwise
         				derived from other identified data. Atomic data is, therefore,
         				not subject to change. Atomic component identifiers 
         				MUST be unique and SHOULD be managed by a 
              			registration authority, perhaps similar to the mechanisms used to
              			assign Object Identifiers (OIDs).  
         			</t>
         			<t hangText="Computed"><vspace blankLines="0" />
         				The Computed classification contains those data types
              			whose definition is computed from some operation applied to
         				one or more pieces of data. Computed data items may be formally
         				specified in an ADM (and therefore not subject to change) or
         				may be defined by users/operators within a system and therefore
         				subject to change in accordance with configuration services. Specifically,
							the definition of a computed
              			component MAY be dynamically defined by Managers and
              			communicated to one or more Agents in a network. The 
              			definition of a computed component may include other computed
              			components or other atomic components. The identifier of a 
              			computed component is not guaranteed to be universally unique
              			but MUST be unique within the context of a particular network
              			or internetwork.
         			</t>
         			<t hangText="Collection"><vspace blankLines="0" />
         				The Collection classification represents a set of information, including
         				atomic data, computed data, and other collections. 
         			</t>
         		</list>
         	</t>
        	</section>
      </section>
      
      <section title="Data Model" toc="default">
      	<t>
        		Each component of the DTNMP data model can be identified as a
         	combination of type and category, as illustrated in <xref target="model_ref" pageno="false" format="default" />. 
         	In this table type/category combinations that
         	are unsupported are listed as N/A. Specifically, DTNMP does not
         	support user-defined controls, constants, or operations; any value
         	that specifies action on an agent MUST be pre-configured as part of
         	an ADM.
         </t>
         <texttable anchor="model_ref" title="" suppress-title="false" align="center" style="full">
          	<ttcol align="center" />
           	<ttcol align="center">Data</ttcol>
           	<ttcol align="center">Action</ttcol>
           	<ttcol align="center">Literals</ttcol>
           	<ttcol align="center">Operator</ttcol>
           	<c>Atomic</c>
           	<c>Primitive Value</c>
           	<c>Control</c>
           	<c>Literal</c>
           	<c>Operator</c>
           	<c>Computed</c>
           	<c>Computed Value</c>
           	<c>Rule</c>
           	<c>N/A</c>
           	<c>N/A</c>
           	<c>Collection</c>
           	<c>Report</c>
           	<c>Macro</c>
           	<c>N/A</c>
           	<c>N/A</c>
         </texttable>
         
			<t>
				The eight elements of the AMA logical data model are described as follows.
			</t>
			
			<section title="Primitive Values, Computed Values, and Reports" toc="default">
				<t>
					Fundamental to any performance reporting function is the ability to
					measure the state of value on the Agent. Measurement may be accomplished 
					through direct sampling of hardware, query against in-situ data stores, or
					other mechanisms that provide the initial quantification of state.
				</t>
				<t>
					Primitive values serve as the "lingua franca" of the management system: 
					the unit of information that cannot be otherwise created. As such, this
					information serves as the basis for any user-defined (computed) values
					in the system.  
				</t>
				<t>
					AMPs MAY consider the concept of the confidence of the primitive value
					as a function of time. For example, to understand at which point a
					measurement should be considered stale and need to be re-measured before
					acting on the associated data. For example, one approach to mitigate 
					this concern is to measure values on-demand. Another
					approach is to populate a centralized data store of values and refresh
					that data store according to some pre-defined period.  
				</t>
				<t>
					While primitives provide the full, raw set of information available to 
					Managers and Agents there is a performance optimization to pre-computed
					re-used combinations of these values. Computing new values as a function
					of measured values simplifies operator specifications and prevents
					Agent implementations from continuously re-calculating the same value
					each time it is used in a given time period. 
				</t>
				<t>
					For example, consider a sensor node which wishes to report a temperature
					averaged over the past 10 measurements. An Agent may either transmit
					all 10 measurements to a Manager, or calculate locally the average
					measurement and transmit the "fused" data. Clearly, the decision to
					reduce data volume is highly coupled to the nature of the science and
					the resources of the network. For this reason, the ability to define
					custom computations per deployment is necessary. 
				</t>
				
				<t>
					Periodically, or in accordance with local state changes, Agents must
					collect a series of measured values and computed values and communicate
					them back to Managers.  This ordered collection of value information is 
					noted in this architecture as a "report". In support of hierarchical 
					definitions, reports may, themselves, contain other reports. It would be
					incumbent on an AMP implementation to guard against circular reference
					in report definitions.  
				</t>
			</section>

			<section title="Controls and Macros" toc="default">
				<t>
					Just as traditional network management approaches provide well-known
					identifiers for values, the AMA must provide a similar service for
					taking action on a node. Whereas several low-latency, high-availability approaches
					in networks can use approaches such as remote procedure calls (RPCs),
					challenged networks cannot provide a similar function - Managers cannot
					be in the processing loop of an Agent when the Agent is not in communication
					with the Manager.
				</t>
				
				<t>
					Controls in a system are the combination of a well-known operation that 
					can be taken by an Agent as well as any parameters that are necessary
					for the proper execution of that function. For specific applications or
					protocols a control specification (as a series of opcodes) can be
					published such that any implementing AMP accepts these opcodes and
					understands that sending the opcodes to an Agent supporting the application
					or protocol will properly execute the associated function. Parameters to
					such functions are provided in real-time by either Managers requesting
					that a control be run, pre-configured, or auto-populated by the Agent in-situ.
				</t>
				
				<t>
					Often, a series of controls must be executed in concert to achieve a particular
					function, especially when controls represent more primitive operations for a 
					particular application/protocol. In such scenarios, an ordered collection of
					controls can be specified as a "macro". In support of the hierarchical build-up of
					functionality, macros may, themselves, contain other macros, through it would be
					incumbent on an AMP implementation to guard against excessive recursion or other 
					resource-intensive nesting.  
				</t>
			</section>
			
			<section title="Rules" toc="default">
				<t>
					Stimulus-response autonomy systems provide a 
					way to pre-configure responses to anticipated events. Such
					a mapping from responses to events is advantageous in a challenged
					network for a variety of reasons, as listed below. 
					
         		<list hangIndent="8" style="symbols">
         			<t>
         				Distributed Operation - The concept of pre-configuration 
         				allows the Agent to operate without regular contact with
         				Managers in the system. Configuration opportunities will
         				be sporadic in any challenged network making bootstrapping
         				of the system difficult, but this is a fundamental problem in
         				any network scenario and any autonomy approach.
        				</t>
        				<t>
        					Deterministic Behavior - Where the mapping of stimulus to
        					response is stable, the behavior of the Agent to a variety 
        					of in-situ state also remains stable. This stable behavior is
        					necessary in critical operational systems where the actions 
        					of a platform must be well understood even in the absence of
        					an operator in the loop.
        				</t>
        				<t>
        					Engine-Based Behavior - Several operational systems are unable
        					to deploy "mobile code" based solutions due to network
        					bandwidth, memory or processor loading, or security concerns. The
        					benefit of engine-based approaches is that the configuration inputs
        					to the engine can be flexible without incurring a set of 
        					problematic requirements or concerns. 
        				</t>
        			</list>
 				</t>
 				
 				<t>
 					The logical unit of stimulus-response autonomy proposed in the AMA
 					is a "rule" of the form: <vspace /> 
 						
 					IF stimulus THEN response <vspace /> 
 					
 					Where the set of such rules, when evaluated in some prioritized
 					sequence, provides the full set of autonomous behavior for an Agent. 	
 					Stimulus in such a system would either be a function of relative time,
 					absolute time, or some mathematical expression comprising one or
 					more values (measurement values or computed values). 
 						
 				</t>
 					
 				<t>
 					Notably, in such a system, stimuli and responses from multiple applications
 					and protocols may be combined to provide an expressive capability. 
 				</t>
			</section>
			
			<section title="Operators and Literals" toc="default">
				<t>
					The act of computing values or evaluating the expressions that
				   comprise a stimulus in a rule both require applying 
				   mathematical operations to data known to the management system.
				</t>
				<t>
				   Operators in the AMA represent enumerated mathematical operations
				   applied to primitive and computed data in the AMA for the purpose
				   of creating new values. Operations may be simple binary operations
				   such as "A + B" or more complex functions such as sin(A) or
				   avg(A,B,C,D).
				</t>
				<t>
				   Literals represent pre-configured constants in the AMA, such as
				   well-known mathematical numbers (e.g., PI, E), or other useful
				   data such as Epoch times. Literals also represent asserted
				   primitive values used in expressions. For example, considering
				   the expression (A = B + 10), A would be a computed value, B would
				   be either computed value or a primitive value, + would be an
				   operator, and 10 would be a literal.
				</t>
			</section>
			

		</section>
      
      <section title="Application Data Model" toc="default">
      	<t>
      		Application data models (ADMs) specify the data
			   associated with a particular application/protocol.  The purpose of
   			the ADM is to provide a guaranteed interface for the management of an
   			application or protocol independent of the nuances
   			of its software implementation.  In this respect, the ADM is
   			conceptually similar to the Managed Information Base (MIB) used by
   			SNMP, but contains additional information relating to command opcodes
   			and more expressive syntax for automated behavior.		
      	</t>
      	<t>
      	   Within the AMA, an ADM MUST define all well-known items necessary 
      	   to manage the specific application or protocol. This includes the
      	   definitions of primitive values, measured values, reports,
      	   controls, macros, rules, literals, and operators.         	    
      	</t>
      </section>
      
   </section>
       
   <section anchor="IANA" title="IANA Considerations" toc="default">
   	<t>
			At this time, this protocol has no fields registered by IANA.
	  	</t>
   </section>
   
   <section anchor="Security" title="Security Considerations" toc="default">
      <t>
         Security within an AMA MUST exist in two layers: transport layer
         security and access control.
      </t>
      
      <t>
         Transport-layer security addresses the questions of authentication,
         integrity, and confidentiality associated with the transport of
         messages between and amongst Managers and Agents in the AMA. This 
         security is applied before any particular Actor in the system 
         receives data and, therefore, is outside of the scope of this document.
      </t>
      
      <t>Finer grain application security is done via ACLs which are defined
      via configuration messages and implementation specific.</t>
    </section>
  </middle>
  
  <!--  *****BACK MATTER ***** -->
  <back>
    <!-- -<references title="Normative References">
      
     
    </references> -->
  
  <references title="Informative References">
   &RFC3416;
   &RFC2119;
   &RFC6241;
     
   <reference anchor="RFC4838">
      <front>
         <title>Delay-Tolerant Networking Architecture</title>
         <author initials="V." surname="Cerf" fullname="V. Cerf"/>
         <author initials="S." surname="Burleigh" fullname="S. Burleigh"/>
         <author initials="A." surname="Hooke" fullname="A. Hooke"/>
         <author initials="L." surname="Torgerson" fullname="L. Torgerson"/>
         <author initials="R." surname="Durst" fullname="R. Durst"/>
         <author initials="K." surname="Scott" fullname="K. Scott"/>
         <author initials="K." surname="Fall" fullname="K. Fall"/>
         <author initials="H." surname="Weiss" fullname="H. Weiss"/>
         <date year="2007" month="April" />
      </front>
      <seriesInfo name="RFC" value="4838" />
      <format type="TXT" octets="89265" target="http://www.rfc-editor.org/rfc/rfc4838.txt" />
   </reference>
     
   <reference anchor="BIRRANE1">
      <front>
         <title>
            Management of Disruption-Tolerant Networks: A Systems Engineering 
            Approach
         </title>
         <author initials="E.B." surname="Birrane"/>
         <author initials="R.C." surname="Cole"/>
         <date year="2010"/>
      </front>     
   </reference>
   
   <reference anchor="BIRRANE2">
      <front>
         <title>
            Defining Tolerance: Impacts of Delay and Disruption when Managing 
            Challenged Networks
         </title>
         <author initials="E.B." surname="Birrane"/>
         <author initials="S.B." surname="Burleigh"/>
         <author initials="V.C." surname="Cerf"/>
         <date year="2011" />
      </front>
    </reference>
      
    <reference anchor="BIRRANE3">
      <front>
         <title>
            Delay-Tolerant Network Management: The Definition and Exchange of
            Infrastructure Information in High Delay Environments
         </title>
         <author initials="E.B." surname="Birrane"/>
          <author initials="H.K." surname="Kruse"/>
          <date year="2011" />
        </front>
      </reference> 
            
    <?rfc include="reference.I-D.draft-irtf-dtnrg-dtnmp-01"?>
      
  </references>
  
  </back>
</rfc>