<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?rfc strict="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-yuan-cats-middle-ware-facility-01" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.0 -->
  <!-- ***** FRONT MATTER ***** -->

    <front>
    <title abbrev="Middle Ware Facilities">Middle Ware Facilities for CATS</title>
    <seriesInfo name="Internet-Draft" value="draft-yuan-cats-middle-ware-facility-01"/>
    <author fullname="Dongyu Yuan" initials="D" surname="Yuan">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street>No.50 Software Avenue</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210012</code>
          <country>China</country>
        </postal>
        <phone/>
        <email>yuan.dongyu@zte.com.cn</email>
      </address>
    </author>
    <author fullname="Fenlin Zhou" initials="F" surname="Zhou">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street>No.50 Software Avenue</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210012</code>
          <country>China</country>
        </postal>
        <phone/>
        <email>zhou.fenlin@zte.com.cn</email>
      </address>
    </author>
    <date day="3" month="Jan" year="2024"/>
    <area>RTGWG</area>
    <workgroup>CATS</workgroup>
    <keyword>Middle Ware Facilities for CATS</keyword>
    <abstract>
      <t>This draft proposes a method to perceive and process the running status of computing
                resources by introducing a logical Middle Ware facility, aiming to avoid directly
                reflecting continuous and dynamic computing resource status in the network domain,
                match service requirements and instance conditions, and ultimately achieve computing
                aware traffic steering and be applicable to various possible scheduling
                strategies.</t>
    </abstract>
  </front>
  <!-- ***** MIDDLE MATTER ***** -->

    <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>With computing resources continuously migrating to edges, services residing
                distributedly turn to be delivered in a dynamic way. More fine-grained scheduling
                strategies awaring of service SLA requirements and current computing status are
                urgently required.</t>
      <t>A framework to fulfill computing status aware traffic steering and services
                provisioning is illustrated in related works, <xref target="I-D.ldbc-cats-framework" format="default"/> for instance. Since a learning procedure to collect the
                information of network conditions and computing status is the premise to properly
                steer the traffic, a concise and effective learning and processing scheme is
                required.</t>
      <t>Unlike the collection of network attributes, a learning procedure of computing status
                has its unique characteristics, features and objectives which proposes incremental
                requirements:</t>
      <ol spacing="normal" type="1"><li>
          <t>Compared to relatively stable network capabilities, network topologies for
                        instance, the variation of the status of computing resources is quite
                        dynamic as illustrated in <xref target="I-D.huang-cats-two-segment-routing" format="default"/>. It is unwise to exert the dynamicity of the
                        computing status or the distribution of computing resources directly on the
                        network.</t>
        </li>
        <li>
          <t>Attributes to describe network status and conditions are relatively simple
                        and explicit while massive metadata of computing status is heterogeneous and
                        pluralistic. Various computing related services may correlate with different
                        attributes of computing resources. A computing information description
                        method is studied in <xref target="I-D.du-cats-computing-modeling-description" format="default"/>.
                        Furthermore, a method to evaluate the performance of a service instance
                        based on computing modelling is also associated with the specific service
                        and an applied scheduling strategy, and thus is correspondingly required.</t>
        </li>
        <li>
          <t>Metadata collected from the network domain and service instances located in
                        distributed sites share both identical attributes and different dimensional
                        properties. The values of identical attributes should be analyzed in an
                        accumulative manner while attributes with different dimensions should be
                        unified processed determined by specific scheduling strategies.</t>
        </li>
        <li>
          <t>Overly detailed or micro metadata collected from service instances located
                        in distributed sites lack direct interpretation semantics by a network
                        domain. It is suggested to provide simple and specific indications for the
                        network to follow.</t>
        </li>
      </ol>
      <t>Currently, the perception and detection of computing resources can be commonly
                achieved by several schemes partly listed as follows:</t>
      <ul spacing="normal">
        <li>
          <t>Prometheus, as an open-source system monitoring and alerting toolkit, is able
                        to collect and store metrics as time series data. Prometheus metrics
                        include various aspects, metrics collected from Kubernetes API Server and
                        kubelet for instance. These metrics include typical information like node
                        capacity, pod scheduling duration and pods in queue which can reflect the
                        detailed conditions of CPU, memory, queue, delay, etc. However, Prometheus
                        is designed and deployed for monitoring and visualization and can not
                        satisfy the mentioned requirements.</t>
        </li>
        <li>
          <t>A DNS and GSLB scheme or CLB may apply a "Health Check" mechanism to detect
                        whether a server is valid. Specific methods may be implemented through TCP,
                        UDP and HTTP. A round-robin or weighted selection strategy may be further
                        introduced and applied to provide and provision the required service.
                        However, the results through a detection is relatively coarse-granular which
                        lack the ability to evaluate the performance for services.</t>
        </li>
        <li>
          <t>In some impressive work and studies, it is also proposed to extend IGP or BGP
                        to carry the information of computing resources, aiming to be compatible
                        with the current IP routing network. To be noticed, it is worth considering
                        that overly utilization of L3 protocols may exert extra burden on the
                        network and may not adapt well with highly computing resource sensitive
                        services and future circumstances.</t>
        </li>
      </ul>
      <t>Thus, this draft proposes a computing resources perception and processing method
                based on a logical Middle Ware facility to solve the mentioned problems and to
                satisfy the corresponding requirements.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD
                NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are
                to be interpreted as described in BCP 14 <xref target="RFC2119" format="default"/>
        <xref target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as
                shown here.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>
          <t>SLA: Service Level Agreements</t>
        </li>
        <li>
          <t>DNS: Domain Name System</t>
        </li>
        <li>
          <t>GSLB: Global Server Load Balance</t>
        </li>
        <li>
          <t>CLB: Cloud Load Balancer</t>
        </li>
        <li>
          <t>IGP: Interior Gateway Protocol</t>
        </li>
        <li>
          <t>BGP: Border Gateway Protocol</t>
        </li>
        <li>
          <t>SNMP: Simple Network Management Protocol</t>
        </li>
        <li>
          <t>FTP: File Transfer Protocol</t>
        </li>
        <li>
          <t>PCEP: Path Computation Element Communication Protocol</t>
        </li>
        <li>
          <t>OAM: Operation, Administration and Maintenance</t>
        </li>
        <li>
          <t>DB-Agent: Agent of a database</t>
        </li>
        <li>
          <t>BE: Best Effort</t>
        </li>
        <li>
          <t>TE: Traffic Engineering</t>
        </li>
      </ul>
    </section>
    <section numbered="true" toc="default">
      <name>Framework</name>
      <t>According to the requirements of computing status perception analyzed in the previous
                sections, a framework of metadata collection and processing based on Middle Ware
                Facilities is proposed.</t>
      <figure>
        <name>Framework of Metadata Collection Based on a Middle Ware</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

                   +-------------+
         +---------| Middle Ware |--------+
         |         +-------------+        |
         |                                |
         |                                |
         |                                |
 Network Attributes      Network Attributes+Computing Status
         |                       |               |
         |                       |               |
         |                       |               |
    +----------+             +-------+           |
    | Network  |             |Service|           |
    |Controller|             | Agent |           |
    +----------+             +-------+           |
         |                       |               |
         |                    -------            |
         |                   (       )       +-------+
         |                 (           )     |Service|
         |            +---(  Instances  )    | Agent |
 (---------------)    |    (           )     +-------+
(                 )---+     -----------          |
(     Network     )         Cloud  Site       -------
(                 )---+                      (       )
 (---------------)    |                    (           )
                      +-------------------(  Instances  )
                                           (           )
                                            -----------
                                            Cloud  Site

                                               ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <t>A Middle Ware proposed here is a logical facility that has the knowledge of the
                computing status and network conditions, and thus the ability to process them.
                Considering the specific physical implementation, Middle Wares can be mapped to
                multiple physical entities or combinations of them. The involving entities may
                include a network controller, a superior orchestrator, a distributed database,
                distributed devices, an introduced application monitoring system, constructed
                service agents, etc. Logical modules of a Middle Ware are organized and defined as
                follows:</t>
      <figure>
        <name>Inner Modules in a Middle Ware</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

                  |                  |  NorthBound      |
                  |                  |  Interface       |
+-------------------------------------------------------------------------+
|                 |                                     |
|          +--------------+     Middle Ware     +--------------+          |
|          | Service      |                     | Scheduling   |          |
|          | Registration |---------------------| Strategy     |          |
|          | & Management |                     | Configuration|          |
|          +--------------+                     +--------------+          |
|                 |          +---------------+          |                 |
|                 +----------| ORChestration |----------+                 |
|                            +---------------+                            |
|                                    |                     Other Modules: |
|                              +-----------+               OAM,AI,...     |
|                              | Network & |                              |
|         +--------------------| Computing |--------------------+         |
|         |                +---| Status    |---+                |         |
|         |                |   | DataBase  |   |                |         |
|         |                |   +-----------+   |                |         |
|         |                |                   |                |         |
| +---------------+  +-----------+       +-----------+  +---------------+ |
| | Network       |  | Network   |       | Computing |  | Computing     | |
| | Configuration |  | Status    |       | Status    |  | Configuration | |
| | & Control     |  | Collector |       | Collector |  | & Control     | |
| |               |  |           |       |           |  |               | |
| |  +---------+  |  |+---------+|       |+---------+|  |  +---------+  | |
| |  | Protocol|  |  || Protocol||       || Protocol||  |  | Protocol|  | |
| |  | Service |  |  || Service ||       || Service ||  |  | Service |  | |
| |  +---------+  |  |+---------+|       |+---------+|  |  +---------+  | |
| +---------------+  +-----------+       +-----------+  +---------------+ |
|         |                |                   |                |         |
+-------------------------------------------------------------------------+
          |                |     SouthBound    |                |
       (--------------------)    Interface    (--------------------)
      (                      )               (                      )
     (                        )             (                        )
     (        Network         )-------------(         Service        )
     (        Domain          )-------------(         Domain         )
     (                        )             (                        )
      (                      )               (                      )
       (--------------------)                 (--------------------)

                                               ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <t>The logical modules and components are designed with the following respective
                functions and abilities:</t>
      <ul spacing="normal">
        <li>
          <t>NSC (Network Status Collector): NSC collects network status through a
                        Protocol Service including telemetry, SNMP, BGP, etc.</t>
        </li>
        <li>
          <t>CSC (Computing Status Collector): CSC collects the status of computing
                        resources through a Protocol Service including FTP, gRPC, RESTful, etc. An
                        application monitoring system may be deployed and corresponding interfaces
                        may be introduced and required to be designed.</t>
        </li>
        <li>
          <t>NCC (Network Configuration and Control): NCC publishes network configuration
                        including SRv6 policies and other information through PCEP and BGP for
                        instance.</t>
        </li>
        <li>
          <t>CCC (Computing Configuration and Control): CCC publishes computing related
                        configuration information and participates in the process of resources
                        deployment and scaling.</t>
        </li>
        <li>
          <t>NCSDB (Network and Computing Status DataBase): NCSDB stores the collection of
                        metadata of network and computing status informed by NSC and CSC
                        respectively and further integrates relevant information. The meta
                        information is arranged in a hierarchical form for further lookup.</t>
        </li>
        <li>
          <t>SRM (Service Registration and Management): Computing related services
                        required by service clients are registered at SRM with corresponding service
                        requirements including both network and computing attributes. Evaluation
                        methods mapped to services are configured at SRM. SRM may communicates with
                        outer components to receive relevant information.</t>
        </li>
        <li>
          <t>SSC (Scheduling Strategy and Configuration): SSC processes specified services
                        scheduling strategies. It gets configuration from the administration plane
                        through a NorthBound Interface. SSC also correlates with SRM which may
                        influence the configured evaluation methods.</t>
        </li>
        <li>
          <t>ORC (ORChestration): With the registered evaluation scheme and configured
                        scheduling strategies, ORC applies corresponding functions to calculate the
                        metadata stored in NCSDB. The performance of service instances are evaluated
                        and appropriate entries are selected and further distributed to NCC.</t>
        </li>
        <li>
          <t>There may be other possible logical modules in a Middle Ware, including OAM,
                        AI, Portal, etc.</t>
        </li>
      </ul>
      <t>With the functions defined, the workflow in the control plane to fulfill computing
                aware traffic engineering and service routing is described as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t>SRM fulfills service subscription. Corresponding variable and controllable
                        service metadata modeling methods are registered and configured through the
                        NorthBound Interface, or a local or injected configuration profile.</t>
        </li>
        <li>
          <t>SSC implements scheduling strategies configuration. SRM and SSC jointly
                        determine specific evaluation methods for registered services.</t>
        </li>
        <li>
          <t>NSC and CSC collect the network and computing status with respective Protocol
                        Service modules. NSC and CSC may communicate with network controllers and
                        distributed or centralized service agents among multiple sites.</t>
        </li>
        <li>
          <t>NCSDB organizes the metadata collected by NSC and CSC in a hierarchical
                        manner for further process.</t>
        </li>
        <li>
          <t>ORC processes the metadata stored in NCSDB with respective evaluation methods
                        determined by SRM and SSC, and then generates corresponding entries. The
                        results are further distributed to NCC and CCC.</t>
        </li>
        <li>
          <t>NCC ultimately distributes the entries and configurations to the underlay
                        network with its Protocol Service module.</t>
        </li>
      </ol>
      <t>Referring to <xref target="I-D.ldbc-cats-framework" format="default"/> and <xref target="I-D.yao-cats-ps-usecases" format="default"/>, incremental
                requirements are proposed cats framework according to this draft:</t>
      <ul spacing="normal">
        <li>
          <t>"R6 MUST realize means for rate control for distributing of metrics." Thus,
                        specific logical modules SHOULD be introduced to preprocess running
                        computing status before being distributed to the network.</t>
        </li>
        <li>
          <t>"R4: MUST include network metrics." "R5 MUST provide mechanisms to distribute
                        the metrics." Thus, specific logical modules SHOULD be introduced to record
                        the information of network capabilities and computing resources.</t>
        </li>
        <li>
          <t>"R8: there MUST exist flexibility in term of metrics definition and
                        utilization for the selection of service instance." "R9: MUST set up metric
                        information that can be understood by CATS components." Thus, specific
                        logical modules SHOULD be introduced to organize and manage service
                        requirements and scheduling strategies.</t>
        </li>
      </ul>
      <t>NSC and NCC mentioned before are relatively similar or identical to the current
                subfunctions of a network controller, and thus will not be further discussed in this
                draft while the detailed design of the functions with SRM, SSC, NCSDB and ORC are
                illustrated as Part 1 to 3 in the following sections.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Part 1: Service Registration and Modelling Configuration at SRM and SSC</name>
      <t>Service clients propose service requests and get responses including corresponding
                service identifications issued by the administration plane. For instance, a Service
                ID to represent a globally unique service semantic identification is defined in <xref target="I-D.ma-intarea-identification-header-of-san" format="default"/>.
                With the issued Service IDs, the information of constraints and sensitive attributes
                should be considered to generate corresponding modelling and evaluation methods for
                each service represented by a Service ID. The generation patterns of the modeling
                methods include but are not limited to:</t>
      <ul spacing="normal">
        <li>
          <t>Perform configuration directly by administrators by Portal operations or
                        through NBI.</t>
        </li>
        <li>
          <t>Read a pre-prepared local or a distributed configuration profile through NBI.</t>
        </li>
      </ul>
      <t>The metadata of network and computing status can be concluded as following typical
                scheduling attributes:</t>
      <ul spacing="normal">
        <li>
          <t>Experience attributes, end-to-end delay, jitter and packet loss for instance,
                        which influence the quality of experience.</t>
        </li>
        <li>
          <t>Cost attributes consist of economic cost, energy consumption, etc.</t>
        </li>
        <li>
          <t>Resource attributes consist of load of CPUs, load of the network, etc.</t>
        </li>
      </ul>
      <t>According to the mentioned scheduling attributes, typical scheduling strategies
                performed can be concluded as:</t>
      <ul spacing="normal">
        <li>
          <t>Experience first: optimize the quality of experience.</t>
        </li>
        <li>
          <t>Cost first: optimize the cost attributes while guarantee the thresholds of
                        experience attributes.</t>
        </li>
        <li>
          <t>Resource first: optimize the resource attributes while guarantee the
                        thresholds of experience attributes and cost attributes.</t>
        </li>
      </ul>
      <t>Based on specified scheduling strategies, corresponding evaluation methods are
                determined. With the metadata calculated through specific functions, a most
                appropriate instance or all satisfied instances can be identified. Then, a preferred
                or balanced strategy can be performed which select a single entry or a set of
                entries to distribute.</t>
      <figure>
        <name>Service Registration and Modelling Configuration</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

+----------------+------------------+------------------+-----+
|                |    Service ID1   |    Service ID2   | ... |
+----------------+------------------+------------------+-----+
|End-to-end Delay|      <50ms       |      <100ms      |     |
+----------------+------------------+------------------+-----+
|     Jitter     |                  |       <15ms      |     |
+----------------+------------------+------------------+-----+
|      Loss      |      <0.1%       |                  |     |
+----------------+------------------+------------------+-----+
|     ......     |                  |                  |     |
+----------------+------------------+------------------+-----+
|    CPU Cores   |                  |        >6C       |     |
+----------------+------------------+------------------+-----+
|      Load      |       <80%       |                  |     |
+----------------+------------------+------------------+-----+
|     ......     |                  |                  |     |
+----------------+------------------+------------------+-----+
|                |  Resource first  | Experience first |     |
|    Metric=     |                  |                  |     |
|   Function()   | Function1(Delay, | Function2(Delay, |     |
|                |    Loss,Load)    |   Jitter,CPU)    |     |
+----------------+------------------+------------------+-----+

                       ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <t>As shown above, a typical evaluation and modelling method is displayed and a function
                to calculate a metric value can be defined as follows. A to F are preliminary
                functions to process metadata while Function1() and Function2() are evaluation
                functions.</t>
      <figure>
        <name>Service Registration and Modelling Configuration</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

       A(Delay)             B(Loss)              C(Load)
       ^                    ^                    ^
       |                    |                    |
    MAX|     +----       MAX|     +----       MAX+       +----
       |     |              |     |              |      /
       |     |              |     |              |     /
    MIN+-----+           MIN+-----+           MIN|----+
       |                    |                    |
       +------------->      +------------->      +------------->
             50      Delay       0.1%     Loss       40% 80%   Load

                            MAX,if max{A(Delay),B(Loss)}=MAX,
Function1(Delay,Loss,Load)={
                            C(Load),others.

       D(Delay)             E(Jitter)            F(Cores)
       ^                    ^                    ^
       |                    |                    |
    MAX|       +----     MAX|       +----     MAX+----+
       |      /             |      /             |     \
       |     /              |     /              |      \
    MIN+----+            MIN+----+            MIN|       +----
       |                    |                    |
       +------------->      +------------->      +------------->
           20  100   Delay       5  15    Jitter      6  12    Cores

                             MAX,if max{D(Delay),E(Jitter),F(Cores)}=MAX,
Function2(Delay,Jitter,CPU)={
                             Average[D(Delay),E(Jitter),F(Cores)],others.

                       ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <t>The design of functions also correlate with the semantics of the calculated metric
                value. As indicated above, if any requirement registered with the services is not
                satisfied, the end-to-end delay reaches 100ms in Function2() for instance, the
                overall function value reaches MAX which indicates that the corresponding entry
                fails to satisfy the service SLA represented by Service ID2. Also, a smaller metric
                value represents the better performance. Therefore, according to a simple metric,
                the performance of instances can be easily displayed.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Part 2: Computing Status Collection and Updates at NCSDB</name>
      <t>Based on a set of overall subscribed services and the configured respective sensitive
                attributes of each service in the set, a set of attributes that require status
                updates collection is summarized. CSC then queries or subscribes to the service
                agents responsible for meta information collection at each cloud sites.</t>
      <t>Due to the varying sensitivity and tolerance of different services to changes in
                computing status, as well as the differentiated priorities among various
                services, their requirements for metadata collection and update frequency differ
                from one another. The frequency of collecting a type of meta information should be
                greater than the maximum among the overall requirements.</t>
      <t>With the metadata collected by CSC, the information is further organized and stored
                in NCSDB. A distributed database is introduced here as a sample physical entity
                which fulfills the functions of a corresponding logical module. A distributed
                database has the advantages of advanced performance, high availability and simple
                extensibility. It is highly partitionable and allows horizontal scaling which
                satisfies the practical scenarios of large scale of service instances. Also, both
                keys and values can be anything from simple objects to complex compound objects, and
                thus heterogeneous computing resources can be described and stored.</t>
      <t>As shown below, the status of computing resources is modeled as a collection of
                key-value pairs.</t>
      <figure>
        <name>Status Table of Computing Resources</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

                                       (------)
                                    ---        ---
                                  ( +------------+ )
                                   (| Instance 1 |)
               +---------+         (+------------+)
               |   PE1   |--------( +------------+ )
               +---------+        ( | Instance 2 | )
                                   (+------------+)
                                    --------------
                                     Cloud Site 1

                                       (------)
                                    ---        ---
                                   (+------------+)
                                  ( | Instance 3 | )
                                  ( +------------+ )
               +---------+        ( +------------+ )
               |   PE2   |---------(| Instance 4 |)
               +---------+         (+------------+)
                                  ( +------------+ )
                                  ( | Instance 5 | )
                                   (+------------+)
                                    --------------
                                     Cloud Site 2

+----+------------+---------+-----------------------------------+
| ID |  Instance  | Gateway |    Computing Status Index(1-n)    |
+----+------------+---------+-----------+-----------+-----------+
| 01 | Instance 1 |   PE1   |   CPU 1   | Memory  1 |   O/I 1   |
+----+------------+---------+-----------+-----------+-----------+
| 01 | Instance 4 |   PE2   |   CPU 4   | Memory  4 |   O/I 4   |
+----+------------+---------+-----------+-----------+-----------+
| 01 | Instance 5 |   PE2   |   CPU 5   | Memory  5 |   O/I 5   |
+----+------------+---------+-----------+-----------+-----------+
| 02 | Instance 2 |   PE1   |   CPU 2   | Memory  2 |   O/I 2   |
+----+------------+---------+-----------+-----------+-----------+
| 02 | Instance 3 |   PE2   |   CPU 3   | Memory  3 |   O/I 3   |
+----+------------+---------+-----------+-----------+-----------+

                       ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <t>With the introduction of a distributed database, the data of the computing resources
                can be stored in hierarchically organized directories. A typical form to obtain
                interested information is described as below:</t>
      <ul spacing="normal">
        <li>
          <t>/service ID/service instance</t>
        </li>
        <li>
          <t>/service ID/service instance/Gateway</t>
        </li>
        <li>
          <t>/service ID/service instance/CPU Load</t>
        </li>
        <li>
          <t>/service ID/service instance/Memory Remains</t>
        </li>
      </ul>
      <t>NCSDB can also enable incremental functions. For instance, a pub-sub scheme and a
                'Watch' mechanism can be introduced to fulfill service OAM and service protection.</t>
      <figure>
        <name>A 'Watch' Mechanism Applied for a Distributed Database</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

+-------------------------+
|    Involved Modules     |
+-------------------------+
+-------------------------+               +-----------------------+
|+-------------+          |               |          +-----------+|
||Network      |          |               |          | Computing ||
||Configuration|          |               |          | Status    ||
||& Control    |+--------+|               |+--------+| Collector ||
|| +---------+ ||DB-Agent|| +-----------+ ||DB-Agent||+---------+||
|| | Protocol| |+--------+| | Network & | |+--------+|| Protocol|||
|| | Service | |          | | Computing | |          || Service |||
|| +---------+ |          | | Status    | |          |+---------+||
|+-------------+          | | Database  | |          +-----------+|
+-------------------------+ +-----------+ +-----------------------+
       |            |             |              |           |
       |            | Watch       |              |           |
       |            | prefix      |              |           |
       |            |------------>|              |           |
       |            |             |              |           |
       |            |             |<-------------|           |
       |            |             | Write        |           |
       |            |             | (/Service    |           |
       |            |<------------| Instance 1/  |           |
       |            | Notify      | CPU Load 70) |           |
       |            | updates     |              |           |
       |            |             |              |           |
       |            |             |              |           |
       | Notify     |             |              |           |
       | updates    |             |              |           |
       |<-----------|             |              |           |
       |            |             |              |           |

                       ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <t>The procedure of learning and processing updated computing resource status is
                described as follows:</t>
      <ul spacing="normal">
        <li>
          <t>The CPU load of the container or VM reaches the threshold 70% and the updated
                        status is then written into the database in a key-value scheme after being
                        collected by CSC.</t>
        </li>
        <li>
          <t>Relevant modules, NCC for instance, subscribe the information by watching the
                        prefix of the key-value pair.</t>
        </li>
        <li>
          <t>Learning the CPU load reaches 70%, the service routing entries are updated or
                        regenerated and a recalculation is performed at the control plane.</t>
        </li>
      </ul>
    </section>
    <section numbered="true" toc="default">
      <name>Part 3: Metadata Processing and Calculation at ORC</name>
      <t>The Middle Ware processes the matadata collected from the network domain and
                multiple cloud sites at ORC which follows the following procedures:</t>
      <figure>
        <name>End-to-end Delay</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

End-to-End Delay=Delay1+Delay2+Delay3+Delay4

                 Delay1
   +-----------+         +---------+
   +Ingress  PE+---------+Egress PE|
   +-----------+         +----+----+
                              |
                              | Delay2
                              |
                          ----+-----
                         (  +-+--+  )
                        (   | LB |   )
                        (   +-+--+   )
                      (       |Delay3  )
                     (    +---+----+    )
                      (   |Instance|   )
                      (   +--------+   )
                       (    Delay4    )
                        --------------
                          Cloud Site

                       ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
      <ul spacing="normal">
        <li>
          <t>For instances which provides certain set of services with corresponding
                        network paths, ORC integrates the collected metadata of the same class. For
                        instance, as shown above, the unidirectional end-to-end delay consists of
                        segmented network latency Delay1, Delay2, Delay3 and process delay Delay4
                        caused by possible queue backlog and logical processing.</t>
        </li>
        <li>
          <t>For a specific service, ORC identifies and filters out the sensitive
                        attributes from the integrated attributes as the input variables for a
                        corresponding function registed at SRM and SSC.</t>
        </li>
        <li>
          <t>For a service instance and all possible network forwarding paths that
                        reach it, ORC calculates its ability to provide a specific type of service
                        in conjunction with a TE policy or BE path, and represents it as a single
                        metric value.</t>
        </li>
        <li>
          <t>According to the designated semantics of metrics, ORC evaluates the validity
                        and performance of every entries, further selects appropriate entries to
                        inform and to distribute to NCC and ultimately work in the forwarding plane
                        of computing aware network devices.</t>
        </li>
      </ul>
      <figure>
        <name>Entries in the Control Plane and the Forwarding Plane</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[

 Service ID1  Instance1  SRv6 Policy1  Metric=15
 Service ID1  Instance3     BE Path    Metric=30
 Service ID1  Instance2  SRv6 Policy2  Metric=10
 Service ID2  Instance4  SRv6 Policy3  Metric=25
 Service ID2  Instance5  SRv6 Policy4  Metric=20
 Service ID2  Instance6     BE Path    Metric=30

                  Control Plane
-------------------------------------------------
                 Forwarding Plane

    +-------------+-----------+--------------+
    |    Index    | Next  Hop |  Interface   |
    +-------------+---------------------------
    | Service ID1 | Instance2 | SRv6 Policy2 |
    +-------------+-----------+--------------+
    | Service ID2 | Instance5 | SRv6 Policy4 |
    +-------------+-----------+--------------+

                       ]]></artwork>
      </figure>
      <t keepWithPrevious="true"/>
    </section>
    <section numbered="true" toc="default">
      <name>Conclusion</name>
      <t>With the forementioned logical functions and modules designed in a Middle Ware,
                incremental requirements raised by a learning process of computing status can be
                satisfied:</t>
      <ul spacing="normal">
        <li>
          <t>The dynamicity of running computing status can be restrained and controlled
                        at CSC, NCSDB and ORC.</t>
        </li>
        <li>
          <t>Service instances are able to be evaluated by registered and configured
                        methods in a differentiated manner. SRM and SSC are capable of adjusting
                        scheduling strategies and switching evaluation methods.</t>
        </li>
        <li>
          <t>Identical metadata can be processed in an accumulative manner while
                        attributes of different dimensions are integrated by the registered
                        evaluation methods.</t>
        </li>
        <li>
          <t>Metadata is not exposed directly but converted into simple metric values.
                        With properly designed semantics of a metric value, appropriate entries can
                        be simply determined.</t>
        </li>
      </ul>
    </section>
    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>TBA.</t>
    </section>
    <section anchor="Acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>TBA.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>TBA.</t>
    </section>
  </middle>
  <!--  *****BACK MATTER ***** -->

    <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="I-D.ldbc-cats-framework" target="https://datatracker.ietf.org/doc/html/draft-ldbc-cats-framework-04" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.ldbc-cats-framework.xml">
        <front>
          <title>A Framework for Computing-Aware Traffic Steering (CATS)</title>
          <author fullname="Cheng Li" initials="C." surname="Li">
            <organization>Huawei Technologies</organization>
          </author>
          <author fullname="Zongpeng Du" initials="Z." surname="Du">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
            <organization>Orange</organization>
          </author>
          <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
            <organization>Telefonica</organization>
          </author>
          <author fullname="John Drake" initials="J." surname="Drake">
            <organization>Juniper Networks, Inc.</organization>
          </author>
          <author fullname="Daniel Huang" initials="D." surname="Huang">
            <organization>ZTE</organization>
          </author>
          <author fullname="Gyan Mishra" initials="G. S." surname="Mishra">
            <organization>Verizon Inc.</organization>
          </author>
          <date day="8" month="December" year="2023"/>
          <abstract>
            <t>This document describes a framework for Computing-Aware Traffic Steering (CATS). Particularly, the document identifies a set of CATS components, describes their interactions, and exemplifies the workflow of the control and data planes.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ldbc-cats-framework-04"/>
      </reference>
      <reference anchor="I-D.huang-cats-two-segment-routing" target="https://datatracker.ietf.org/doc/html/draft-huang-cats-two-segment-routing-01" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.huang-cats-two-segment-routing.xml">
        <front>
          <title>Hierarchical segment routing solution of CATS</title>
          <author fullname="Daniel Huang" initials="D." surname="Huang">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="Zongpeng Du" initials="Z." surname="Du">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Chen Zhang" initials="C." surname="Zhang">
            <organization>Purple Moutain Laborotary</organization>
          </author>
          <date day="5" month="September" year="2023"/>
          <abstract>
            <t>CATS (Computing Aware Traffic Steering) is designed to enable the routing network to be aware of computing status thus deliver the service flow accordingly. Nevertheless, computing and networking is quite different in terms of resource granularity as well as its status stability. It would gain significant benefits to accommodate the computing status to that of networking by employing a hierarchical computing routing segment scheme. The network- accommodated computing status could be maintained at remote CATS nodes while the rest could reside at local CATS nodes. By enabling the network to schedule and route computing services in a compatible way with the current IP routing network, CATS would bring benefits to the industry by both efficiently pooling the computing resources and rendering services through perspective of converged networking and computing.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-huang-cats-two-segment-routing-01"/>
      </reference>
      <reference anchor="I-D.du-cats-computing-modeling-description" target="https://datatracker.ietf.org/doc/html/draft-du-cats-computing-modeling-description-02" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.du-cats-computing-modeling-description.xml">
        <front>
          <title>Computing Information Description in Computing-Aware Traffic Steering</title>
          <author fullname="Zongpeng Du" initials="Z." surname="Du">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Yuexia Fu" initials="Y." surname="Fu">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Cheng Li" initials="C." surname="Li">
            <organization>Huawei Technologies</organization>
          </author>
          <author fullname="Daniel Huang" initials="D." surname="Huang">
            <organization>ZTE</organization>
          </author>
          <author fullname="Zhihua Fu" initials="Z." surname="Fu">
            <organization>New H3C Technologies</organization>
          </author>
          <date day="23" month="October" year="2023"/>
          <abstract>
            <t>This document describes the considerations and the potential architecture of the computing information that needs to be notified into the network in Computing-Aware Traffic Steering (CATS).</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-du-cats-computing-modeling-description-02"/>
      </reference>
      <reference anchor="I-D.yao-cats-ps-usecases" target="https://datatracker.ietf.org/doc/html/draft-yao-cats-ps-usecases-03" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.yao-cats-ps-usecases.xml">
        <front>
          <title>Computing-Aware Traffic Steering (CATS) Problem Statement, Use Cases, and Requirements</title>
          <author fullname="Kehan Yao" initials="K." surname="Yao">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Dirk Trossen" initials="D." surname="Trossen">
            <organization>Huawei Technologies</organization>
          </author>
          <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
            <organization>Orange</organization>
          </author>
          <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
            <organization>Telefonica</organization>
          </author>
          <author fullname="Hang Shi" initials="H." surname="Shi">
            <organization>Huawei Technologies</organization>
          </author>
          <author fullname="Yizhou Li" initials="Y." surname="Li">
            <organization>Huawei Technologies</organization>
          </author>
          <author fullname="Shuai Zhang" initials="S." surname="Zhang">
            <organization>China Unicom</organization>
          </author>
          <date day="30" month="June" year="2023"/>
          <abstract>
            <t>Distributed computing is a tool that service providers can use to achieve better service response time and optimized energy consumption. In such a distributed computing environment, providing services by utilizing computing resources hosted in various computing facilities aids support of services such as computationally intensive and delay sensitive services. Ideally, compute services are balanced across servers and network resources to enable higher throughput and lower response times. To achieve this, the choice of server and network resources should consider metrics that are oriented towards compute capabilities and resources instead of simply dispatching the service requests in a static way or optimizing solely on connectivity metrics. The process of selecting servers or service instance locations, and of directing traffic to them on chosen network resources is called "Computing-Aware Traffic Steering" (CATS). This document provides the problem statement and the typical scenarios for CATS, which shows the necessity of considering more factors when steering traffic to the appropriate computing resource to best meet the customer's expectations and deliver the requested service.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-yao-cats-ps-usecases-03"/>
      </reference>
      <reference anchor="I-D.ma-intarea-identification-header-of-san" target="https://datatracker.ietf.org/doc/html/draft-ma-intarea-identification-header-of-san-01" xml:base="https://bib.ietf.org/public/rfc/bibxml-ids/reference.I-D.ma-intarea-identification-header-of-san.xml">
        <front>
          <title>Service Identification Header of Service Aware Network</title>
          <author fullname="Liwei Ma" initials="L." surname="Ma">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="付华楷" initials="" surname="付华楷">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="Fenlin Zhou" initials="F." surname="Zhou">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="lihesong" initials="" surname="lihesong">
            <organization>ZTE Corporation</organization>
          </author>
          <author fullname="Dong Yang" initials="D." surname="Yang">
            <organization>Beijing Jiaotong University</organization>
          </author>
          <date day="4" month="May" year="2023"/>
          <abstract>
            <t>As the cloud and computing migrates to edges further away from the traditional centered cloud, the services residing at the distributed cloud start to be delivered in such a ubiquitous and dynamic way. That it is challenging to the ongoing routing and interconnecting scheme under which host address is the global networking identification. This draft proposes a service identification which is designed to be treated both as a service routable ID and an interface to the service requirements as well as service-associated cloud resources. A SAN header which including the service identification is illustrated and specified.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ma-intarea-identification-header-of-san-01"/>
      </reference>
    </references>
  </back>
</rfc>
