Closed

.NET/Mono NodeController

This project received 9 bids from talented freelancers with an average bid price of $521 USD.

Get free quotes for a project like this
Employer working
Skills Required
Project Budget
$250 - $750 USD
Total Bids
9
Project Description

AppliedAlgo is a number crunching platform (scheduler/load balancing, with bunch of builtin ETL commands) geared specifically for number crunching. JobController is the core - it distributes to NodeController running on each machine in server farm.

All that NodeController does is:
a. Report periodically to JobController host statistics (CPU Usage/Memory usage and Disk activity) - it's based on this JobController determines if it should route work to a connected node.
NodeController does this by invoking WCF interface (SSL over wsHttpBinding) on JobController

b. JobController dispatch a job to NodeController by calling WCF Interface (SSL over wsHttpBinding) hosted by [url removed, login to view]
When NodeController receives a job/request, it simply kick off the job via Dos Command Prompt.

Node Controller host WCF interface (WsHttpBinding/SSL) contains only two operations:
[ServiceContract()]
[ServiceKnownType(typeof(ExecutionResult))]
public interface INodeControllerService
{
[OperationContract()]
void Run(string Command, string Argument, string HomeDirectory); --> Kick off another exe via command prompt (Need to run on both Windows & Linux)

[OperationContract()]
void KillNode(); --> JobController call this method to exit/kill the NodeController instance
}

Currently NodeController only runs on 64 bit Windows. We need someone to:
1. Rewrite NodeController with (C#/Mono/Console Application), so NodeController can run on Linux box as well.
a. Note please be careful path in Windows/Linux different
b. No change to JobController or any other modules in Applied Algo ETL Suite, only NodeController need be rewritten.
c. We'd like WCF interface started programmatically.
ATTN:
* SSL - If you're using SSL certificate, then SecMode = [url removed, login to view] + ClientCredentialType=None.
* Further, If your JobController is pointing at a self-signed SSL certificate (Detail how to create SSL on Windows refer to Installation Guide on [url removed, login to view]), CLIENT-SIDE need to add following. Otherwise, client will not be able to connect to WCF server on error "Could not establish trust relationship for the SSL/TLS secure channel with authority"
REF: [url removed, login to view]
[url removed, login to view] = SecMode;
[url removed, login to view] = ClientCredentialType;

ControllerUrl = new Uri(RenderedUrl); // Url $PORT$ should be configurable

WcfControllerInterface = new ServiceHost(
typeof([url removed, login to view]),
ControllerUrl);

[url removed, login to view]([url removed, login to view], [url removed, login to view]);

[url removed, login to view](
typeof([url removed, login to view]),
WsBinding,
""
);

ThrottleBehavior = new ServiceThrottlingBehavior();
[url removed, login to view] = [url removed, login to view];
...
[url removed, login to view](ThrottleBehavior);
SvcBehavior = new ServiceMetadataBehavior();
[url removed, login to view] = true;
[url removed, login to view](SvcBehavior);
[url removed, login to view]();

2. Preparation of vm with Linux Fedora, with NodeController (and test SSL cert) that you write installed as proof/testing
[You'd need download AppliedAlgo ETL Suite]
3. Full Source Code and Documentation on preparation the vm/testing (We have .NET developers, need somebody Linux)
Need more detail, please ask. Thanks

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online