Grid Computing and Java

I couldn't seem to find a similar question.

I am currently looking at the best solution to solve the grid computing problem.

Setting:

  • I have a server / client situation where clients are [usually dumb from most boolean] and receive instructions from the server
  • Have an authorization request
  • Clients return information about the task execution speed (task complexity is determined by the task type)
  • Clients get the most suitable task for their previous job (the best clients get the worst problems)

Ultimately, the requirements will be as follows:

  • The client fingerprint should be small and standalone - I can't have a client that needs lots to install and configure
  • The client should be able to grab new jobs and job times from the server (it would be nice to have a grid scale for new issues [and new issues will be propagated by the server] that are introduced)
  • I need to have an authentication level (doesn't have to be complex or match an existing ldap) [simpler requirement: clients can register for a new "membership" and access] (I'm not sure if RMI's strengths lie here)
  • Clients will be able to work from the Internet, and not in a networked environment
    • What does it mean to encrypt the requested results

I am currently using webservices to communicate between clients and server. All information and results are returned to the hosting server (J2EE).

My question is, is there a grid that meets all / most of these requirements and is open source?

I'm not interested in making a cloud because most of these tasks are small but very frequent (once a day, but the task may be easy, but does maintenance).

All the code for this system is in Java.

+2


source to share


3 answers


You can explore space architectures , and in particular Jini and Javaspaces . What is Jeanie? It is essentially RMI with a custom detection engine. You ask the Java interface developer, and the Jini engine discovers the current services that implement that interface and dynamically informs them of service.

In short, you have to write work items into the space. The grid nodes will be configured to read data in a transaction from space. Each mesh node takes a work item, processes it, and writes the result back to that space (or some other space). The redistributable node can keep track of the results that are written back (and .or for your predicted result timings as you requested).



Everything is Java, and will scale linearly. Since it is Jini, mesh nodes can dynamically load their classes from an HTTP server and therefore you can propagate code updates trivially.

+3


source


Look at Grid Beans



+1


source


BOINC sounds like it will work for your problem, although you will have to port java for your clients. This, and it may be overkill for you.

0


source







All Articles