Angel \”Java\” Lopez on Blog

May 22, 2010

Distributed AjSharp: a roadmap

Last weekend, I added distributed features to my open source interpreter AjSharp. I wrote about them in:

Distributed AjSharp: First Steps

In these days, I wrote more code to support distributed running of an AjSharp application. It’s a work in progress. In this post, I want to write down the list of features that I like to have (some of these points are implemented in the trunk, but I should review, test and post about them):

- Start a local host in an address

- Connect to a remote host by address

- Connect to a remote host and send the address of another (local or remote) host (register the new host in the remote host)

- Execute a local callback when a remote host sends a the address of a host to my local host (OnRegisterHost).

- Send a local defined command to a remote host and execute it in the remote host.

- Send a local defined expression to a remote host and evaluate it in the remote host, returning the new value.

- Send a local defined function, subroutine, to a remote host, send its parameters, and evaluate the function/subroutine in the remote host.

- Send a text to a remote host, parse and execute it as a command.

- Send a text to a remote host, parse and evaluate it as an expression, returning a value.

- Send the local file content to a remote host, parse and execute it.

- Get a list of local host register in the current machine

- Get a list of remote host in the current machine

- Set a remote variable, sending a local evaluated value

- Send a copy of a DynamicObject to remote host (I should resolve what happens when the DynamicObject has an associated class)

- Send an object reference of a DynamicObject to remote host, to use there as a proxy to the original object still residing in local host.

- Send a copy of an agent to a remote host, and start it.

- Export a local file with source code to the remote host, to use in Include(“…”) commands to execute in remote host.

- Export a local assembly to remote host (I should decide if I need this feature)

Machine is a base object that keeps the global environment (Machine.Current.Environment), with the name/values of global variables, class definitions, global functions, etc. Host is the object that exposes a machine to other hosts.

Another point:

- A proof-of-concept sample application: a distributed web crawler, or a distributed genetic algorithm.

Add all these features to go routines, futures, channels, and agents, and we have an interesting soup.

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

1 Comment »

  1. [...] Distribuido: un Roadmap Distributed AjSharp: a Roadmap AjSharp Distribuido: Primeros pasos Distributed AjSharp: First [...]

    Pingback by Servidor y Cliente en AjSharp Distribuido - Angel "Java" Lopez — June 14, 2010 @ 10:09 am


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

The Shocking Blue Green Theme. Create a free website or blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 57 other followers

%d bloggers like this: