Difference between revisions of "SmartExecutor"

From Gcube Wiki
Jump to: navigation, search
Line 1: Line 1:
The SmartExecutor acts as a container for '''gCube tasks''', i.e. functionally unconstrained bodies of code that lack a network interface but can be deployed into the service and executed through its interface. In particular, gCube tasks are designed, packaged, and deployed as ''plugins'' of the SmartExecutor service.  
+
The SmartExecutor service allows to execute "gCube Tasks". Each instance of the SmartExecutor service can run the "gCube Tasks" related to the plugins available on such an instance.
 +
 
 +
Each instance of the SmartExecutor service publishes descriptive information about the co-deployed plugins.
 +
 
  
An instance of the SmartExecutor publishes descriptive information about the co-deployed plugins, can execute them on demand on behalf of clients.
 
 
Clients may interact with the Executor service through a library of high-level facilities that subsumes standard service stubs to simplify the discovery of available tasks in those instances.
 
Clients may interact with the Executor service through a library of high-level facilities that subsumes standard service stubs to simplify the discovery of available tasks in those instances.
 
Each client can request to execute a Task or getting informations about the state of their execution.
 
Each client can request to execute a Task or getting informations about the state of their execution.
  
The SmartExecutor uses a ServiceEndpoint with Category: VREManagement and Name: SmartExecutor to publish information regarding the co-deployed plugins and their own infroamtion.
+
== General Information ==
  
=== Design ===
 
  
  
=== Sample Usage ===
+
== Plugins ==
 +
The SmartExecutor uses a ServiceEndpoint with Category: VREManagement and Name: SmartExecutor to publish information regarding the co-deployed plugins and their own information.
 +
 
 +
 
 +
 
 +
 
 +
== SmartExecutor interaction ==
  
 
The SmartExecutor service provides a client library to simplify the following procedures:
 
The SmartExecutor service provides a client library to simplify the following procedures:
Line 18: Line 25:
 
* monitor the execution of the running task.
 
* monitor the execution of the running task.
  
==== Launching Tasks ====
+
=== Instance Discovery ===
  
  
 
+
=== Launching Tasks ===
==== Best Effort and Known Endpoints ====  
+
  
  
Line 28: Line 34:
  
  
==== Monitoring Tasks ====
+
=== Monitor Task Execution ===
  
=== Plugin Development ===
+
 
 +
== Plugin Development ==
  
 
SmartExecutor plugins may have arbitrary size and dependencies but '''must''' include the following components:
 
SmartExecutor plugins may have arbitrary size and dependencies but '''must''' include the following components:
  
 
*  
 
*  
 
 
*  
 
*  
 
 
*  
 
*  
 
  
  
 
== Tasks ==
 
== Tasks ==
  
'''Note:''' Tasks are instantiated by the Executor and thus must have have a zero-argument constructor.
+
'''Note:''' Plugins are instantiated by the Executor and thus must have have a zero-argument constructor.
 
+
== Contexts ==
+
 
+
== Plugin Profiles ==
+
  
  

Revision as of 12:19, 19 October 2015

The SmartExecutor service allows to execute "gCube Tasks". Each instance of the SmartExecutor service can run the "gCube Tasks" related to the plugins available on such an instance.

Each instance of the SmartExecutor service publishes descriptive information about the co-deployed plugins.


Clients may interact with the Executor service through a library of high-level facilities that subsumes standard service stubs to simplify the discovery of available tasks in those instances. Each client can request to execute a Task or getting informations about the state of their execution.

General Information

Plugins

The SmartExecutor uses a ServiceEndpoint with Category: VREManagement and Name: SmartExecutor to publish information regarding the co-deployed plugins and their own information.



SmartExecutor interaction

The SmartExecutor service provides a client library to simplify the following procedures:

  • discover service instances that can execute the target task. This requires interaction with the Information System.
  • launch the execution of the task with one the discovered instances.
  • monitor the execution of the running task.

Instance Discovery

Launching Tasks

Task Inputs

Monitor Task Execution

Plugin Development

SmartExecutor plugins may have arbitrary size and dependencies but must include the following components:


Tasks

Note: Plugins are instantiated by the Executor and thus must have have a zero-argument constructor.


Development Environment and Testing

This [Eclipse project] may be used to kick-off plugin development and testing.