Thanks Chathuri for your input. I started with OrchestratorData as system table 
and followed the hierarchy of ConfigurationResource table.  After discussing 
use cases in detail in last one week hangout, I think we need relationship to 
work with ExperimentData. It will be a good idea to use the experiment 
hierarchy to maintain consistency of data. It will use existing API methods to 
provide access to user experiment data objects.  I will update the wiki.

I thought of using orchestrator_ID to maintain uniqueness but experimentid is 
unique in the system so i just let this for future use. I am thinking of 
dropping this as it adds some confusion.  

Thanks
Raminder

On Jan 16, 2014, at 11:08 AM, Chathuri Wimalasena <kamalas...@gmail.com> wrote:

> Hi Raman, 
> 
> I was looking in to OrchestratorDataResource object and I would like to 
> suggest some improvements to it. 
> 
> As described in [1], registry was designed according to a hierarchy. When 
> implementing the registry resource layer, we tried to keep the same 
> hierarchy. If you look into Resource interface, you will see there are 
> several methods such as create, remove, get, save etc. All these methods 
> (except for save) should be implemented to the child resources of a specific 
> resource. For example, if you are trying to implement ExperimentDataResource 
> class, create method will create all the children that can be created after 
> experiment data resource. In the similar manner, if you implement get method 
> for ExperimentDataResource, it will retrieve all the child resources that can 
> be retrieved with the availability of ExperimentDataResource. Save method 
> will save the resource object into the database.
> 
> So when you implement the OrchestratorDataResource, all the create, get, 
> remove methods need to be implemented for the child objects that can be 
> generated with the availability of OrchestratorDataResource object. If you 
> want to retrieve OrchestratorDataResource object itself, you have to 
> implement that on it's parent object (in this case, it may be the 
> GatewayResource). I see that you implemented all the methods needed for 
> Orchestrator inside the same resource class. I will move those methods to 
> GatewayResource class. 
> 
> We will need to update the wiki documentation to have a comprehensive 
> description of the implementation later in order to avoid the confusion. 
> 
> BTW, just curious, why do we need an auto increment field for orchestrator_ID 
> while setting experiment_id as the primary key ? 
> 
> Thanks and Regards,
> Chathuri
> 
> [1] 
> https://cwiki.apache.org/confluence/display/AIRAVATA/Registry+Data+Structure+Guide
>  

Reply via email to