3. Task assignment to the cluster nodes. In this
step, the vertices of the data flow graph, i.e.
computational tasks (derived from the simple
services) are assigned to the concrete cluster
nodes, see figure 3 (c). We would like to
emphasize, this is not a typical scheduling
problem, see (El-Rewini, 1994): the tasks need
to be executed concurrently and none of them
can be delayed – this is a usual requirement for
on-line processing and is more similar to
variable sized bin packing problem (Haouari,
2009). The above node assignment can be
optimized according to the different criteria, e.g.
minimizing the number of partially used nodes
(defragmentation), minimizing network load or
the delay of the scenario processing.
4. Scenario startup. In this step, the computational
tasks of the respective simple services are
started up on the cluster nodes according to the
given assignment. The task identifiers are
generated and distributed. The proper data
streams are connected and the communication is
initialized. Each task consists of one or more
processes/threads, whose execution is managed
directly by the operating system of the related
node, see figure 3 (d).
5. Scenario monitoring. During the scenario
execution, the platform will monitor the running
tasks: processor load, memory usage,
multimedia, event and plain data streams' flow.
The above procedures are used for continuous
collecting and verification of quality related
meta-data related to the particular services.
6. Scenario shutdown. In this last step, the
platform is responsible for the correct
finalization of all computational tasks executed
with the scenario. During this time, all related
processes and threads are finished, the
associated resources are freed, the multimedia
streams are closed, and the proper information
messages are sent to the client.
The next layer of the proposed model is involved in
execution of the simple services, which are
responsible for selection of the proper algorithm
depending on the requested quality parameters
defined by user. Afterwards, the multimedia stream
distribution to the computational tasks is established.
For the sake of minimizing network load, the RTSP
(Schulzrinne, 1998) protocol with the optional
multicast (Savola, 2008) will be used.
The next layer contains the computational tasks,
which are the implementation of the concrete stream
analysis algorithms. They use the libraries provided
by the platform, being embedded into the framework
supporting the cooperation with other components of
the platform, such as storage or an event server. We
can perceive the framework as a template, which
already includes common elements used by the
algorithm implementation, e.g. an image frame
iterator for a video stream (Krawczyk, 2010), see
figure 4. This layer is responsible for task
distribution and requested resource acquisition:
nodes and processors. We use a typical launcher for
these purposes, however it needs to consider
additional qualities of service policies, e.g. delays to
start of the task.
algorithm
algorithm
program
program
framework
framework
computation
task
computation
task
implementation
linking
Figure 4: Development of a computation task.
The process/thread layer enables execution of the
computational tasks. They can use typical
mechanisms of concurrency and parallelism. The
platform supports POSIX (The Open Group, 1997)
threads and other similar mechanisms (i.e.
semaphores, mutex etc.) provided by the underlying
operating system.
3 THE SOFTWARE
ARCHITECTURE
The proposed processing model was implemented as
KASKADA platform, below we present the software
components. Figure 6 contains the domain model of
KASKADA obtained by the requirements' analysis.
From the user’s point of view the main goal of the
platform is to provide the webservices in SOA
(Krafzig, 2004) architecture. They will be
responsible for execution of the complex service
scenarios using simple services. The example
sequential diagram of the scenario execution is
presented in figure 5.
Both service types, i.e. simple and complex ones,
are going to be deployed on the same JEE
application server, we consider to use a Tomcat web
container for this purpose. They will utilize SOAP
(W3C, 2007a) technologies over HTTP(S) (W3C,
1999) protocol, in case of synchronous remote calls,
and a queue system, i.e. ActiveMQ (Apache
Software Foundation, 2010) for asynchronous
SIGMAP 2010 - International Conference on Signal Processing and Multimedia Applications
28