|
Role(s):
Service Provider
Component(s):
Semantic Resource Lifecycle Manager
Enhanced Resource Allocator
License:
LGPL
Usage Instructions
Installation
Software Installation
Semantic Enhanced Resource Allocator Toolkit
API
Usage
Instructions
The
Semantically-Enhanced Resource Allocator (SERA) toolkit groups the
components which are in charge of allocating the resources available
in a SP, taking into account the different technical requirements of
the costumer tasks as well as the SP business parameters. It is
capable to infer the resource allocation decisions evaluating a set
of scheduling rules over the semantic descriptions of tasks,
resources and customers which provides an extensible interoperable
and efficient scheduling.
The SERA toolkit is
composed by SRLM which is in charge of the customer task management
and resource identification and the ERA which checks the
availability of resources and schedules the execution on those
resources. The Job execution and monitoring in the different
resources is achieved combining SERA with Job Scheduler or
Virtualized Resource Management and Monitoring for submitting the
jobs and with the Notification Support to receive the job execution
notifications (see Resource Management Framework Installation
manual)
A SERA user or external
software has to perform a set of actions in order to submit a job.
First, the user has to check the availability of resources. Then if
the SERA toolkit has found enough resources it provides the user a
temporal reservation which has to be committed by the user. Finally,
the user submits the job which is going to be executed according to
the accepted reservation.
Semantic Enhanced
Resource Allocator Installation
Installation Requirements
The Semantically
Enhanced Resource Allocation Toolkit is built for the Linux OS and
Java 1.5+. The installation process also requires the Maven 2 build
manager which downloads all the required libraries to build the
toolkit. Therefore, it requires internet access with the outbound
connexions allowed.
Deployment Tips
The minimum
infrastructure to deploy the SERA
toolkit is a single computer with all the prerequisites installed.
However, if the number of jobs managed by the SERA is too big and it
produces memory problems, we recommend the distribution of the SERA
deployment across different computers. Following bullet points will
show deployment and installation prerequisites. All of them
are depicted in Figure 36 which shows the fully distributed deployment of
the SERA Toolkit
Issues to
consider for the deployment:
·All
components are always necessary.
·There
are no grouping restrictions. Components can be deployed together on
a single machine as well as in different machines which can be
reachable through the internet.
·Deployment
on single machine is recommended to speed up the interaction if the
number of concurrent semantic descriptions is not too big (thousand
descriptions)
·Distributed
deployment is recommended if there is memory shortage

Software Installation
Prerequisites
The Semantically
Enhanced Resource Allocation requires the installation of the
Semantic Binding Service and Metadata Service from the Ontokit which
can be found in the OntoGrid
project web site.Moreover, it requires the installation of the
Jade Agent Platform 3.5
This platform must be installed in the SRLM and ERA Server. The SRLM
Server also requires the installation of the Apache Tomcat Server in
order to host the SRLM Service.
Installation
The SERA toolkit is
distributed in two different packages: the binaries with an
installer and the source code. The following paragraphs describe the
steps for installing the toolkit from both distributions.
A.
From the installer
The SERA binary
distribution consists on a Debian Package which can be installed
using the dpkg and the apt-get commands with the installation
options. Once the “SERA.deb” installer has been downloaded from the
website invoke the following commands to proceed with the
installation.
$>dpkg -i SERA.deb
$>apt-get install
You can find more
information about the dpkg and apt-get commands in the manuals for
managing Debian packages
B.
From the sources
The compilation process
is driven by the Maven build manager. It is in charge of downloading
the dependent libraries and compiling all the source code. The whole
toolkit is contained in the SERA folder of the subversion. The
different subfolders contain the components, services, client APIs
and common libraries of the toolkit. To compile the whole toolkit we
only have to execute the maven build manager within SERA folder as
the following:
$>cd SERA
$SERA> mvn install
If the compilation
process successfully finish, a wars folder will be created.
It will contain a war file with the whole toolkit. It must be
installed in the webapps folder of the Tomcat Server
$>cd wars
$wars> cp
SrlmWsit.war $CATALINA_HOME\webapps
Finally, you have to
indicate the location of the Ontokit location editing the smr
properties stored in the sera.properties file. It is
located in a user defined folder specified with the environment
variable SERA_HOME. By default this variable is set in /usr/brein/SERA
Semantic Enhanced Resource
Allocator Toolkit API
SRLM Job Management Interface
|
Method |
Boolean availability checkAvailability(String
SLAID, String JobDescription) |
|
Arguments |
String SLAID
- Identifier of the SLA attached to this job
String JobDescription
- A xml which describes the job requirements with a SLA schema |
|
Return Value[s] |
Boolean availability
- Returns true if there are available resources for the job
constraints, otherwise, returns false. |
|
Description |
This method check if there are
enough resources to compute a Job. If there are enough
resources it makes a preliminary reservation. |
|
Method |
String executionEPR acceptReservation(String SLAID) |
|
Arguments |
String SLAID
- Identifier of the SLA attached to this job |
|
Return Value[s] |
String executionEPR -
Returns the EPR where the job or a service has to be executed
if the reservation has been successfully accepted. Otherwise,
returns null. |
|
Description |
This method accepts the reservation produced by the
checkAvailability method. |
|
Method |
Boolean result cancelReservation(String SLAID) |
|
Arguments |
String SLAID
- Identifier of the SLA attached to this job |
|
Return Value[s] |
Boolean result -
Returns true if the reservation has been successfully
cancelled. Otherwise, returns false. |
|
Description |
This method cancels the reservation produced by the
checkAvailability method. |
|
Method |
String jobID submitJob(String SLAID) |
|
Arguments |
.String
SLAID
- Identifier of the SLA attached to this job |
|
Return Value[s] |
String jobID
- Returns the identifier of the submitted job. Returns a null
JobID when there was a problem with the job submission. |
|
Description |
Method to invoke the job submission. It will confirm the
preliminary reservation, schedule the job and run it on the
assigned resources. |
|
Method |
Boolean result cancelJob(String SLAID) |
|
Arguments |
String SLAID
- Identifier of the SLA attached to this job |
|
Return Value[s] |
Boolean result -
Returns true if the job has been successfully cancelled.
Otherwise, returns false. |
|
Description |
This method cancels and destroys a job. |
|
Method |
String jobInfo getInfo(String
SLAID) |
|
Arguments
|
String SLAID
- Identifier of the SLA attached to this job |
|
Return Value[s] |
String
jobInfo
- Information of the submitted job |
|
Description |
Method to get the information of a Job |
|
Method |
String status getStatus(String
jobID) |
|
Arguments
|
String jobID
- Identifier of the submitted job |
|
Return Value[s] |
String
status - Status of the submitted job |
|
Description |
Method to get the status of a Job |
As a special job
submission the SERA user can also add new services to the SP
Infrastructure combining the SRLM Job Management Interface (Table 11) with the SRLM Service Interface described in xx.
Other configuration parameters for the service deployment (the
deployment scripts, container location, etc.) can be changed in the
deployment.properties file located in the SERA_HOME
location.
|
Method |
String deployApplicationService
(String
SLAID, String ServiceName, String Location
) |
|
Arguments |
String
SLAID
-
SLA identifier used during reservation.
A Null value of this value can means the service has been
already deploy and it is only needed to register.
String
ServiceName
-
Name will be used in the SLA agreements to identify a resource
request for this service.
String
Location
-
Location of the file where the service implementation can
be found. If slaId is null this service has to indicate the
deployed service epr. |
|
Return Value[s] |
String
ServiceID
- Service identifier |
|
Description |
This method adds a new application service to the SP
Infrastructure. |
|
Method |
void removeApplicationService
(String
serviceID)
|
|
Arguments |
String
servicerID
-
Identifier of a service previously registered with the SERA
toolkit. |
|
Description |
This method remove an application service from the SP
Infrastructure |
Additionally, the
toolkit also offers through the SRLM an interface to add and remove
resource manager where the jobs can be allocated. It describes the
way to add and remove the different resources nodes.
Table 12 - SLRM Resource
Interface
|
Method |
void nodeUp
(String
nodeID) |
|
Arguments |
String
nodeID
- Node identifier which follows the template type-Node_FQDN. |
|
Description |
This method adds a resource to be used by the SERA toolkit. |
|
Method |
void nodeDown
(String
nodeID) |
|
Arguments |
String
nodeID
- Node identifier which follows the template type-Node_FQDN. |
|
Description |
This method remove a resource from the SERA toolkit |
|
Method |
List<String> getNodes
() |
|
Return Value[s] |
List<String>
Node Identifiers with a URI format type://rm_adress:rm_port |
|
Description |
This method gives all the nodes registered in the SERA toolkit |
|