A Grid-based Infrastructure to Support
Multimedia Content Distribution
Giovanni Novelli, Giuseppe Pappalardo, Corrado Santoro, Emiliano Tramontana
Dipartimento di Matematica e Informatica
Universita’ di Catania, Viale A. Doria, 6 - 95125 Catania, Italy
pappalardo, santoro, firstname.lastname@example.org
ABSTRACT the user with high quality-of-service (QoS). This is generally
achieved by means of several servers, geographically placed
This paper proposes a software architecture able to realise a
at far edges of the network, which hold replicas of the data:
Content Distribution Network (CDN), for multimedia data,
once a client sends a request to obtain e.g. a document,
by means of a Grid computing environment. The key as-
the request is automatically redirected to the nearest replica
pect of the proposed approach is exploiting the computa-
server to the client, thus providing a high response time
tional power of a Grid not only to store replicas of the same
and the best possible quality of service. Supporting such a
multimedia content, but also to perform on-the-ﬂy transcod-
kind of operations implies a proper software infrastructure
ing, when the requesting client is using a player that cannot
able to manage replicas and determine client-replica server
handle the original ﬁle format.
distance [9, 8, 5, 11].
The proposed software infrastructure, which exploits the
While a high QoS is important for fetching any sort of
Globus Grid services, is able on one hand to identify the stor-
data, it becomes a mandatory feature when the data being
age element, holding the replica, which is the nearest to the
transferred is a multimedia content, such as video or audio.
client (if such a replica exists); and on the other hand, when
In this case, the QoS parameters are not only related to the
the requested ﬁle is encoded with a scheme that the player
ability of the content network to delivery data in order to
cannot support, the infrastructure selects the computing ele-
ensure a smooth play at client side, but also to the possibil-
ment which is “best suited”—i.e. has enough computational
ity of providing a content that the client’s player is able to
power—to perform on-the-ﬂy transcoding, thus providing
decode and reproduce. In fact, a large number of multime-
data to the user with the requested format. This selection
dia formats and encoding schemes exist, most of them are
is based on proper metrics that aim at minimising latencies
standardized but some are still proprietary, so that they re-
in order to increase the quality-of-service for the user.
quire their own ad hoc players or codecs. This means that,
it could be the case that a multimedia content cannot be
Categories and Subject Descriptors played because the player or the codec does not support its
D.1.3 [Programming Techniques]: Concurrent Program- format.
ming—Distributed Programming; C.2.4 [Computer-Com- To solve this problem, two main solutions could be en-
munication Networks]: Distributed Systems—Distributed visaged: (i) to publish, in the CDN, several ﬁles featuring
Applications the same content encoded using diﬀerent schemes; or (ii) to
provide the CDN with a mechanism to perform on-the-ﬂy
General Terms transcoding from the format of the ﬁle stored in the servers
to the format that can be understood by the player. Indeed
Measurement, Performance, Design, Experimentation.
these solutions are tied to each other, because, once a ﬁle
has been transcoded for a player P , the resulting data can
Keywords be also stored onto the CDN, in order to be ready to be
delivered when the same player requests the same content.
Content Distribution Networks, Grids, Quality-of-Service,
This means that, in the long time, solution (ii) incorporates
Multimedia Streaming and Transcoding
also solution (i).
To make this possible, traditional CDN software infras-
tructures do not suﬃce: they are, in fact, data-centric and
Content Distribution Networks (CDN) [13, 15, 14, 12] are
thus focused on data distribution and replication, while, in
a kind of distributed systems designed to provide data to
our case, a high computation power is also needed for on-
the-ﬂy transcoding. Such features are instead provided by
Grid computing environments : thanks to the ability of
managing and oﬀering a huge amount of storage space and
Permission to make digital or hard copies of all or part of this work for
CPU power, a Grid can be used not only to store and pro-
personal or classroom use is granted without fee provided that copies are
not made or distributed for proﬁt or commercial advantage and that copies vide multimedia contents, but also to perform server-side
bear this notice and the full citation on the ﬁrst page. To copy otherwise, to on-line adaptation of streaming, in order to satisfy at best
republish, to post on servers or to redistribute to lists, requires prior speciﬁc
the QoS parameters requested by the user.
permission and/or a fee.
With this scenario in mind, this paper describes an infras-
UPGRADE-CN’07, June 26, 2007, Monterey, California, USA.
Copyright 2007 ACM 978-1-59593-718-6/07/0006 ...$5.00.
tructure able to realise a multimedia distribution network Our software infrastructure for multimedia provisioning
by means of a Grid environment. A software architecture is interacts with these components to reach its objective, as
proposed, able to integrate with standard Grid middlewares illustrated in-depth in the following Sections.
and services, thus making it possible content replication and
on-the-ﬂy transcoding and storing. The key aspect, as in a 3. USING A GRID AS A CDN
traditional CDN, is the ability of trying to provide contents
Given the reference architecture above, in order to make
with the best possible QoS. This is achieved by means of
it able to behave like a CDN to perform multimedia provi-
some components that are able to determine not only the
sioning, we have to map into this new environment the in-
Grid host, holding the desired content, which is the near-
teraction steps that are traditionally performed in a CDN.
est to the client, but also, when transcoding is needed, the
So, let us recall the operations made in a CDN when a user
Grid node able to provide the necessary power to perform
asks for a content:
the operation on-the-ﬂy, as required.
The paper is structured as follows. Section 2 describes 1. The user sends a request to a “reference server”, called
the reference architecture of a Grid environment and high- origin server.
lights how the various Grid components can be used for our
2. The origin server determines the replica server which
purposes. Section 3 illustrate the basic working schema of
holds the requested data and is the nearest to the
our solution. Section 4 presents our software infrastructure
to perform multimedia content providing and transcoding.
Section 5 reports some performance evaluations. Finally, 3. Once a replica server is determined, the origin server
Section 6 ends up the paper with our conclusions. redirects the client’s request to it.
2. GRID REFERENCE INFRASTRUCTURE 4. The contacted replica server elaborates the request and
provides the client with the desired data.
Typically, within the Grid environment a large amount of
computational and storage resources are available to users. In our environment, content provisioning is performed by
As found e.g. in many European projects, as EGEE, Tri- the Grid, so operations 2–4 will be performed by one or
GRID or COMETA , computing resources have a spe- more SEs, CEs and WNs; the “reference server” is instead
cialised role according to their characteristics. As depicted something that should be placed between the user and the
in Figure 1, a Grid is basically composed of several nodes, in- Grid, thus holding the credentials to perform access to the
terconnected to one another and distributed geographically. Grid itself and use the resources. To this aim, we consider
Each node features a host providing a large amount of stor- the presence of a new host, that we call Grid Interface (GI),
age space, which is called Storage Element (SE); many hosts acting as a gateway between the user and the Grid world;
that have the task of executing applications, called Worker it is interfaced to the user by means of e.g. web technology,
Nodes (WN); and another host which performs as applica- CORBA, Web Services, etc., depending on the type of the
tion scheduling coordinator, which is called Computing El- provisioning system that we intend to use. This host is
ement (CE). People that want to use the Grid, can log into therefore seen by the user as e.g. a web server, while, from
it, send their commands and receive results, by means of the Grid point of view, it behaves like a UI.
another host called User Interface (UI) [4, 6]. In such an environment, the sequence of operations for
Finally, a system called Resource Broker (RB) is able to multimedia provisioning can be summarised as follows.
deal with user requests, by ﬁnding the storage element host-
1. The user sends a request for a multimedia content to
ing the required resources (e.g. one or more data ﬁles) or
the GI; such a request does not hold only the name
the computing element with suﬃcient resources to execute a
of the content but also a speciﬁcation of the capabil-
submitted application. In general, this relies on distributed
ities of the player, e.g. supported encoding formats,
repositories that store, in suitable indexes, the information
on the ﬁles of the various SEs, the resources available in the
2. The GI, by means of suitable Grid services illustrated
To enable the above functionalities, a software infrastruc-
in the following Section, searches for the SE, holding
ture — i.e. a middleware — is obviously needed. The Globus
the desired content, which is the nearest to the client—
Toolkit (GT)  is one of the most widespread set of li-
if such a content exists.
braries used to build middlewares for Grid environments;
it is strongly based on the Web Service paradigm and pro- 3. If the content exists but it is not in the format required
vides support to access and monitor computing and data by the client, it needs to be transcoded; to this aim, the
resources, enforce security, etc. The main components of GI prepares a “transcoding job” to be sent to the Grid
GT are: for execution. We suppose that the code of such a job
is extracted from a local library, holding the program
• Globus Security Infrastructure (GSI), which controls
codes for performing transcoding from/to many well-
and enforce user access and resource usage;
known encoding formats.1
• Monitoring and Discovery Systems (MDS), which pro-
4. A CE is selected to run the job, by using a criteria
vides the repositories holding information on data and
that ensures the CE has suﬃcient resources to permit
resource availability on the various nodes;
• Globus Resource Allocation Manager (GRAM), which 1
Sometimes the “transcoding job” is already available on a
takes care of allocating resources, on a node, for a job host and needs just to start processing a content (see next
to be executed. Section for details).
Worker Nodes Worker Nodes
Storage Element Storage Element
VA LINUX VA LINUX
Computing Element Computing Element
Grid Node Grid Node
User Interface Resource Broker
Storage Element Storage Element
VA LINUX VA LINUX
Computing Element Computing Element
Grid Node Grid Node
Figure 1: A typical Grid environment
5. The transcoding job is started: the transcoded content chosen CE (this choice can be performed on the basis of
is sent to both the client and a SE, in order to be stored some settings, automatically by the GRAM). Once the ap-
for a future request of the same type. plication is within the CE, this chooses an idle host that
ﬁnally executes the application. Note that hosts, providing
6. The code of the transcoding program is “cached” into services, passing the applications along and communicating
the CE, so that it is ready to be executed if another replies, as well as executing applications are often geograph-
multimedia content has to be transformed in the same ically distributed on a wide area, therefore the propagation
way. delay can be long.
Due to the passages involved for allocating an application,
As the reader can notice, all of these operations need to the corresponding necessary processing, the network delays,
be “highly responsive”, otherwise the presence of latencies and the ratio between the number of applications and the
can provoke undesired delays that the user can experience, available resources, allocation time can be long (typically, a
so that an acceptable QoS cannot be provided. To this aim, few seconds). Moreover, there is no guarantee for an upper
the software infrastructure proposed in this paper, which is bound of allocation delay.
detailed in the following Section, has to take into account For employing a Globus infrastructure to run responsive
not only the proper management of distribution of content applications, e.g. those accepting user inputs for showing a
but also the prompt execution of the transcoding code. transcoded multimedia content on the UI, we need to prop-
erly use resources. I.e. the resource has to be “immediately”
4. AN INFRASTRUCTURE ENABLING available to the user that asks for a given content. For
this purpose an estimated amount of resources should be re-
CONTENT DISTRIBUTION IN A GRID
served and allocated before user requests. Estimation can be
achieved by considering the statistic on provided throughput
4.1 Responsive Applications on Globus and amount of requests per minute. As a result, the delays
Generally, the time necessary for an application to start due to reservation and allocation can be absorbed before the
running on Globus and then accepting inputs from users can application is actually needed in running. Of course, the
be longer than the time needed for the same application to amount of resources allocated beforehand should be low, to
start and accept inputs when running on the user’s personal avoid wasting them, and run-time adaptation of estimation
host. In the following, we analyse what are the main issues and then reservation and allocation is employed to match
that have to be tackled to make this time shorter, so as to the actual amount of requests.
provide Globus users with means to eﬀectively run interact- In order to make it available to clients, a multimedia
ing and responsive applications. content is initially spread, in several formats, on diﬀerent
Typically, an application needing to run on a host, within sites (SEs). I.e. in a preliminary phase multimedia con-
Globus, has to be sent to a resource allocation manager tents are transferred into available Grid hosts. Moreover, a
(GRAM) of a certain site (i.e. a group of CEs and SEs). given number of CEs are asked to reserve and allocate sev-
Then the allocation manager sends the application to the
user interface supporting services computing and storage elements
3.1: ﬁnd content
TraM 4.4: send content
4.2, 4.6: state update
2: ask content 3.2: ask available Transcoders
4.1: send initiate command
GI 4.3: ask content
5: ﬁnd free CEs
5.2: allocate CE
1: play request SE2
5.3: send Transcoder
3.3, 5.1: look up distances
5.4: delay update
Figure 2: Interactions between services supporting transcoding
eral instances of some Transcoder applications, each able to the initiation command to it, and transfer the necessary in-
perform a certain type of multimedia conversion. When a put data.
Transcoder begin executing, it contacts a repository, named To minimise latencies for sending commands and data, it
THub (for Transcoder Hub), to communicate its location is worth considering the location of both Transcoder s and
and to measure the communication delay between its loca- stored contents (in several compatible formats). For this,
tion and THub in the current scenario. This value is then several Grid services are set up to: ﬁnd the location of idle
stored by THub. Transcoder s, ﬁnd the location of compatible multimedia for-
The communication delay, called “distance”, is measured mats, select the pair that minimise latencies, and send the
as the number of seconds necessary to deliver 100Mb across initiation command to the Transcoder.
two end points, thus it takes into account both the available
4.2 A Content Distribution Architecture
bandwidth and the latency, i.e. the physical space that has
to be crossed. Measures between each two pairs of known The main components of the distributed architecture we
sites are performed as the ﬁrst operation when a Transcoder employ for the purpose of eﬃciently distributing multime-
starts running and stored into THub. dia content are depicted in Figure 2, where their mutual
Of course, a caching policy is used for THub data so as to interactions are also sketched. They are:
avoid having to perform measures too frequently.
• CoT, the Content T racer
Moreover, each Transcoder query THub for the position
of other Transcoder s, so as to measure the communication
• TraM, the Transcoder M onitor
delay between each other. The latter measure is useful when
having to transfer a multimedia content previously produced • CET, the C omputing E lement T racer
by a Transcoder or stored on a SE local to the same Grid
node as the CE. Once this phase is over, i.e. THub has been • TraS, the Transcoder S elector.
informed about all the communication delays between all the
The task entrusted to CoT is to ﬁnd a SE holding the ap-
running Transcoder s, then each Transcoder waits for one of
propriate format of the content requested by a user, and
two types of “commands”.
provide its location (cf. Figure 2, interactions 1, 2 and 3.1).
The ﬁrst type of command is initiation. This provides,
For this purpose, CoT implements a repository exploiting
along with itself, the location of the original content to be
GRIS, the Grid Resource Information Service made avail-
transcoded and the parameters for the processing, thus mak-
able by Globus within the Monitoring and Discovery Service
ing the processing begin. Once the original content data
(MDS) . Thanks to GRIS, the information managed by
have been transferred to the CE, Transcoder sends the trans-
CoT gets refreshed whenever new contents, and the associ-
formed content to the user, in the output format required,
ated formats, are added, removed, relocated, etc. (cf. Fig-
while processing chunk of original data, until reaching the
ure 2, (4.5)). In the current implementation, for the sake of
end of these data. Then Transcoder goes back to the wait-
simplicity, CoT runs on the same nodes hosting MDS.
ing state. The second type of command is termination. This
The TraM, or Transcoder M onitor, component traces the
allows Transcoder s to properly end execution and so free
available Transcoder instances and their types. Initially,
their hosts. Whether to terminate a Transcoder depends on
several Transcoder instances are started on all the available
the rate of requests that are currently arriving and on the
CEs, but, as transcoding requests are issued and served,
number of idle Transcoder s.
some of these may get overloaded to the point that further
As a result of the described resource provisioning, when a
requests would better be refused. A list of the CEs actually
user asks for content transcoding, the time needed to start
available for transcoding is maintained by TraM, on the ba-
working for the request, so as to provide the initial results,
sis of notiﬁcations from the CEs (cf. Figure 2, (4.2, 4.6)),
consists just of the time taken to select a Transcoder, send
and is returned on request (cf. Figure 2, (3.2)).
GI TraS CoT TraM THub CET SE
ask content ﬁnd content
look up distances
ﬁnd free CEs
look up distances
send initiate command
Figure 3: Sequence diagram for activating services supporting transcoding
The CET, or CE Tracer, component is intended to mon- up the “distance” between any applicable pair of hosts (3.3),
itor CEs from the point of view of availability and CPU by querying THub.
load/remaining capacity. Like CoT, also CET relies on the Note that not all CEs are appropriate for running the
GRIS information services, initially, to obtain information Transcoder for a given user request. For, the associated
concerning the worker nodes within each CE, in terms of transcoding computation might be excessive for the combi-
number and hardware proﬁle (CPU and available RAM). nation of a given CE’s hardware proﬁle and workload. To
Moreover, CET polls GRIS in order to know the job queue decide whether the CE is appropriate, we need to assess the
length on each CE; this activity is carried out periodically computational cost of a request. For this purpose, we de-
in the background, with respect to user queries, and the re- termine, as explained in Section 5, a function returning an
sulting information cached locally; thus most queries do not estimate of the time necessary to transcode video content in
incur in the penalty of being passed along to GRIS. a standard setting, in terms of the video’s parameters.
When it is determined (by querying TraM, interaction Thus, TraS will minimise, for i, j ranging over the appli-
(3.2)) that known CEs are overloaded, so that no more re- cable sets of SEi , CEj , the sum
quests should be directed to already running Transcoder s,
d(SEi , CEj ) + d(CEj , U I)
CET will be requested (interaction (5)) to provide the ad-
dresses of CEs whose hosts are idle or lightly loaded. Fur- and the selected SEi , CEj will be taken, respectively, as
ther on, CET will be told which of these CEs has been se- the storage host whence multimedia content will be loaded
lected for transcoding (5.2) and requested to allocate on it from and the CE where the transcoding application to be
a Transcoder application, for later use (5.3). employed will run. Figure 2, shows a situation where these
The critical task of choosing the most appropriate CE, and SE2 and CE1 have been selected.
among those known to CET, is entrusted to TraS, the Trans- Multimedia content transformation and delivery is initi-
coder S elector. It will do so by striving to keep network ated by TraS by dispatching a command to the selected CE
latencies to a minimum, so as to optimise the overall time (e.g. CE1 , cf. (4.1) in Figure 2).
elapsing between the request of multimedia content and its Transcoder will react by performing the following sequence
provision in adapted form. Latencies are assumed to be of actions:
proportional to the sum of the following “distances”:
1. it informs TraM that its state has changed (4.2), from
available to busy;
1. the “distance” d(SE, CE) between the SE where the
needed content is stored and the CE where the em- 2. it retrieves the requested multimedia content from SE2
ployed Transcoder runs; (4.3);
2. the “distance” d(CE, U I) between the noted CE and 3. it processes the content and passes the result directly
the involved user interface. to the requesting user’s terminal;
In order to estimate how these distances range over available 4. as an optimisation, in view of further requests, the
SEs and CEs, TraS queries CoT for SEs holding the desired transformed content can be cached to an available SE
content (3.1) and CeT for the CEs (5). Moreover, it looks (4.4)
5. the availability of this new content is published by in-
Table 2: Transcoding time.
forming CoT (4.5);
content frames size MPEG4 MJPEG h263p rv10
chinese 1– 50 0.27 87 79 107 110
6. once it is done, Transcoder notiﬁes TraM that its state
51–100 1.51 181 156 179 181
is now idle (4.6).
101–150 1.25 182 139 180 183
151–200 1.35 191 148 189 188
5. RESOURCE REQUIREMENT wr 1– 50 2.28 247 212 244 238
51–100 1.69 204 180 200 206
ESTIMATION 101–150 1.76 204 186 205 202
The user player’s capabilities aﬀect the activities that are 151–200 1.55 193 170 193 194
cartoon 1– 60 1.76 240 240 230 250
performed by the infrastructure to serve the user request.
61–120 1.64 280 260 300 290
When multimedia transcoding is needed, an a priori reser-
121–180 3.32 380 340 370 380
vation of bandwidth and computational power in Grid hosts
181–240 4.10 470 400 450 450
is required. The number of hosts that will be reserved to dhl 1– 60 8.00 935 894 901 891
run the Transcoder application depends on the necessary 61– 120 6.77 853 738 835 842
processing. A single host suﬃces when the estimated time 121– 180 6.64 808 733 815 806
181– 240 8.95 956 905 953 923
needed to sequentially transcode the content results in an
output rate that is more than the rate ensuring that the
content can be played smoothly. If the output rate is lower,
then a parallel transcoding activity is organised. In this
hosts is the minimum natural number greater than the ratio
case, the initial multimedia content is fragmented and each
between transformation and processing time.
chunk is processed by a task on a dedicated host.
As for the bandwidth, the amount needed is computed
To perform such an estimation of the transcoding work-
in a similar way. Indeed, the requirement here is to ensure
load, we have processed several videos having diﬀerent res-
a readily data transfer from a disk to the selected CE that
olutions, and reported the results in Tables 1 and 2. We
will perform transcoding, and from the CE to the user. This
observed that processing time is mainly related with the
bandwidth is determined by using the ratio between size (in
frame resolution and the size in bytes of the frames to be
bytes) of the content and its length (in seconds). However,
processed. I.e. for the same video, having e.g. a resolution of
this is an approximation (that will be improved in our future
320x240 pixels, the processing time is almost proportional
work) since the amount of bytes per frame are not constant
to the size (in bytes) of the JPEG frame that has to be
for the whole video.
Table 1: Sample videos.
This paper has described a software infrastructure to use a
content source resolution length (s) size (MB)
Grid as a content distribution network for multimedia data.
chinese AVI 320x191 152 20.3
The aim is to exploit the computational and storage power
wr AVI 320x240 14 1.0
of a Grid to provide the user with a content with the best
cartoon AVI 480x272 115 7.6
dhl AVI 640x480 43 17.7 quality-of-service parameters. Such parameters are related
not only to the prompt streaming of the multimedia content,
that ensures a smooth play at client side, but also to the
Table 2 reports, for several videos (whose characteristics ability of providing the data with the format that can be
are found in Table 1), the time in milliseconds needed to understood by the player. In fact, an on-the-ﬂy transcoding
convert from AVI to MPEG, MJPEG, h263p and rv10 (see activity is organized when the infrastructure detects that
the 4 right-most columns, respectively) several chunks of the a content could not be properly decoded by the requesting
content, lasting 2 seconds each and having 50 or 60 frames, player.
as indicated in the column frames. Transcoding is performed An accurate analysis and evaluation of the proposed in-
from the set of frames (each stored as a JPEG ﬁle), whose frastructure is under way by means of a simulation environ-
overall size in megabytes is indicated in the size column. ment. We are using GridSim , a Java toolkit simulating
As explained in Section 4.2, selecting an adequate CE for a Grid system and oﬀering support, in terms of classes, for
a given transcoding task presupposes the ability to estimate emulating CEs, SEs, Virtual Organisations, etc. The aim
the time it will take in the setting of interest. This estimate is to use the techniques presented in Section 5 to assess the
can be derived from experimental data sets like those shown response time of a Grid environment when the proposed soft-
in Tables 1 and 2. What we need is a function to estimate ware infrastructure is deployed and a large number of users
the time needed to transcode a multimedia content into a send requests to access multimedia contents.
speciﬁc format; it is the trend function calculated according Initial experiments have been performed for a Grid envi-
to the values stored in a database of observed times. The ronment having 64 CEs and a maximum latency value equal
resulting trend function takes as input the resolution and to 8 milliseconds between any two hosts, when 100 requests
frame size as parameters and returns the estimated time. are sent simultaneously for the same content that is initially
The estimation function is then used to calculate the num- stored on only one SE. The results have shown that in the
ber of hosts needed for a transcoding task; to this aim, we average the time necessary to allocate a Transcoder, using
compare the estimated transformation time and the length the strategy implemented by TraS, is about one third that
in seconds of the processed video. When transformation required with a naive strategy, while the average stream-
time is greater than processing time, we must use more than ing time is about one ﬁfth. More extensive experiments are
one host for the transformation and the number of needed under way.
7. ACKNOWLEDGMENTS  M. J. Freedman, E. Freudenthal, and D. Mazi`res.
Democratizing Content Publication with Coral. In
This work has been supported by the QUASAR PRIN
Proc. of 1st USENIX/ACM Symposium on Networked
project funded by MIUR, the Italian Ministry of University
Systems Design and Implementation (NSDI’04), San
Francisco, California, March 2004.
It has also been supported by the TriGrid VL project, on
 F. Gagliardi, B. Jones, M. Reale, and S. Burke.
which more information is available at http://www.trigrid.it,
European DataGrid Project: Experiences of Deploying
funded by Regione Sicilia.
a Large Scale Testbed for E-science Applications.
It makes use of results produced by the PI2S2 Project
Lecture Notes in Computer Science, 2459, 2002.
managed by the Consorzio COMETA, a project co-funded
 Grid Computing and Distributed Systems (GRIDS)
by MIUR within the Piano Operativo Nazionale “Ricerca
Laboratory. GridSim: A Grid Simulation Toolkit for
Scientiﬁca, Sviluppo Tecnologico, Alta Formazione” (PON
Resource Modelling and Application Scheduling for
2000-2006). More information is available at the web sites
Parallel and Distributed Computing, 2005.
http://www.pi2s2.it and http://www.consorzio-cometa.it.
 M. Hofmann and L. R. Beaumont. Content
Networking. Morgan Kaufmann, 2005.
 K. Czajkowski, S. Fitzgerald, I. Foster, and
 G. Pierre and M. van Steen. Globule: a Collaborative
C. Kesselman. Grid information services for
Content Delivery Network. IEEE Communications
distributed resource sharing. In Proceedings of the
Magazine, 44(8):127–133, August 2006.
10th IEEE Symposium On High Performance
 The Globus Alliance. Home page and publications,
Distributed Computing, 2001.
 EGEE Project. Enabling Grids for E-sciencE, 2007.
 L. Wang, K. Park, R. Pang, V. Pai, and L. Peterson.
Reliability and Security in the CoDeeN Content
 I. Foster and C. Kesselman, editors. The Grid (2nd
Distribution Network. In Proc. of USENIX 1994
Edition): Blueprint for a New Computing
Annual Technical Conference, Boston, MA, June 2004.
Infrastructure. Morgan Kaufmann, 2004.
 WWW. http://www.akamai.com, 2007.
 I. Foster, C. Kesselman, J. Nick, and S. Tuecke. The
 WWW. http://www.coralcdn.org/, 2007.
Physiology of the Grid: An Open Grid Services
 WWW. http://www.mirror-image.com, 2007.
Architecture for Distributed Systems Integration. In
 WWW. http://www.web-caching.com/cdns.html,
Open Grid Service Infrastructure WG, Global Grid
Forum, June 22 2002.