\subsection{Hierarchical Resource Management}

Today's network only allows applications to have very limited input in the
decision process of resource allocation. The network allocates
resources either on a per packet basis (datagram network) or on a per
traffic stream basis (Virtual Circuit Network), there is no such a
concept that an application has multiple traffic streams and wants to
coordinate them inside the network. 

In our framework of application-aware networks, sophisticated services
and applications that consist of many simultaneously active traffic
streams will want to achieve
application-specific or service-specific goals of optimality
by having application/service specific resource
management policies for their virtual resources.  Since
there are multiple service providers sharing the same physical
resource, multiple types of services and applications supported by one
service provider, and multiple number of traffic streams in one
application, it is important that resources are managed in a
hierarchical and dynamic fashion so that resource management policies
for all entities (resource owner, service providers, organization, 
applications) can be accommodated simultaneously.


\begin{figure}
\centerline{
\psfig{file=entityHierarch.eps}
}
\caption{An Example Resource Management Hierarchy}
\label{fig:hierarchy}
\end{figure}

To see this, consider the example shown in Figure~\ref{fig:hierarchy}.
where there is a hierarchy that specifies the resource management
policies of different entities sharing the physical link resource.  In
the hierarchy, the root node represents the physical link resource and
leaf nodes represent the finest granularity entities (either
individual traffic stream such as Distinguished Lecture Video or
traffic aggegrate like Provider 2's best-effort traffic) managed by
the policy.  Interior nodes represent virtual resources that are
managed by entities such as service providers, organizations,
applications.  In the example, there are two service providers
dynamically share one 155 Mbps link.  Service Provider 2 supports the
IETF intserv QoS model (guaranteed and controlled load) for individual
traffic streams, while a more sophisticated Service Provider 1
supports organization-based QoS where the organizations and
applications can specify the dynamic sharing relationship among its
traffic streams. 

There are several noteworthy points. First, this hierarchy in
Figure~ref{hierarchy} expresses the resource management policies of
all the involved entities that  include the owner of the physical resource
(link), service providers (1 and 2), organizations (CMU and University
of Pittsburgh), and applications (Distributed Simulation). 
Secondly, the hierarchy guarantees a minimum share of the physical resource to
certain entities. This minimum share can be viewed as a virtual resource 
that can be further allocated according to a policy specified by the
corresponding entity. For example, the Network Testbed entity allocates the
20 Mbps virtual link resource to two leaf entities: vBNS and CAIRN. 
In addition, the hierarchy specifies a {\em dynamic} rather than a 
{\em static} sharing relationship. Not only will an entity  receive its 
minimum guaranteed share of service, but also it can compete for
excess resources that are allocated to other entities but are not currently
being used. The policy of sharing the excess resource is governed by
the resource sharing hierarchy. For example, if the aggegrate bandwidth of 
controlled load traffic served by
 Provider B is less than 10 Mbps during certain
period, the best-effort traffic served by Provider B will have a higher
priority to use the extra resource if it has enough demand.
Finally,  the hierarchy allows the co-existence of competitive and 
cooperative sharing. For example, in a Distributed Simulation application,
there are potentially many audio streams traversing the same link,
however, it is unlikely that there are more than a couple of audio streams
that are active simultaneously. Rather than making a separate reservation
for each audio stream, the Distributed Simulation application makes one
reservation and lets all its audio streams {\em cooperatively} share the
same virtual resource.  Similarly, rather than making reservation for each
traffic stream, Provider B lets all controlled load
traffic to share the same 40 Mbps virtual resource to exploit 
statistical multiplexing. However, it is possible that instantaneous
aggegrate rate of Provider B controlled load traffic far exceed 40 Mbps and
the aggegrate rate of Provider B traffic exceed its allocated 85 Mbps 
bandwidth. Since Provider A and Provider B are {\em competitively} sharing
the physical resource, if Provider A needs all its resource during this
period, only the performance of Provider B's traffic will be affected.




The hierarchical framework provides a composable "language" that
allows resource owner, service providers, organizations, 
and application each specify
their own subgraph.  Since different portions of the graph will be
specified at different times, certain constraints need to be imposed
to ensure that a global scheduling instance can be constructed that
satisfies the requirements of entities. With the constraints, each
entity (owner, service providers, organization, application) should be able to
specify their resource management policies independently. Each
subgraph can be modified if the modification will not affect the
performance commitments to other entities. The modification may be
triggered by events that happen in multiple time scales.  A key
requirement for such a specification framework is that it should be
possible to generate a scheduling instance to realize all the
specified resource allocation policies.  We have developed two
hierarchical scheduling algorithms, 
Hierarchical Packet Fair Queueing~\cite{BennettZhang96b}
and Hierarchical Fair Service Curve~\cite{StoicaZhangNg97}, that can
support hierarchical resource allocation policies specified using
service curves~\cite{Rene-framework}
