You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by "Julia (JIRA)" <ji...@apache.org> on 2014/11/25 04:31:13 UTC

[jira] [Created] (REEF-50) Creating driver config for .Net clients

Julia created REEF-50:
-------------------------

             Summary: Creating driver config for .Net clients 
                 Key: REEF-50
                 URL: https://issues.apache.org/jira/browse/REEF-50
             Project: REEF
          Issue Type: Improvement
            Reporter: Julia


Issue  description:
Currently, for .Net clients to submit a job through REST API, they have to write C# client, and launch Java bridge client to generate driver.config with clr arguments. It requires .NET clients to have java installed at their machine and run java program. We are looking for a solution that can generate driver.config using C# without involve java code from client side. 

Proposed solution:
1.Create javadriver.config with java bridge Launch and JobClient without C# arguments in the configuration

2.Serialize java class hierarchy and save it into a file

3.Write a C# tool for C# client to generate driver.config 
a.Deserialize javadriver.config with java class hierarchy
b.Bind clr arguments such as memory, submission directory, globalfiles, etc to the deserialized Configuration
c.Serialize the new configuration into driver.config

4.That’s it! Client just needs to run the tool with his clr arguments, he will get driver.config for him to submit the job with rest API. 

Notes:
1.Most java JobClient classes, handlers, configuration settings are relatively stable. We can modify the bridge JobClient little bit (use a flag for example) to generate  javadriver.config without CLR config data. This javadriver.config can be shipped as part of the NuGet. If we change any classes in java bridge JobClient at development time, we need to regenerate this javadriver.config  file and the java class hierarchy, and package them into the NuGet.

2.Most of the CLR parameters are optional in driver config. We can leave them unbind at Java side. Then bind them at .Net side. The only one is DRIVER_IDENTIFIER that is a required parameter. One possible way is to change it to optional. In the C# tool, if client doesn’t supply it, we can assign a default value to it. 




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)