08-10-2005, 08:14 AM | #1 (permalink) |
Guest
|
[Java] Agent based system
Hi,
I'm looking at making a system that will operate as a bunch of different 'agents'. Each agent will do a specific task. There might be one or a hundred of each specific type of agents. They might talk to one another in order to decide what to do next. So, how can I control the creation of these agents? What I mean is, I want each one to run as a separate Java application. Yes, they could each be a thread, but I figure that would take up a lot of memory if there were thousands of them. I also want the system to be able to operate over more than one computer at a time, so want each agent to be as autonomous as possible. Secondly, any ideas on how to get the agents to talk to one another? There are some nice TCP/IP routines in Java, but I'm not sure if there's not something that might be better. Remember, I want thousands of these things running, so don't want to swamp the network with lots of inter-agent talk if I can get away with it. |
08-10-2005, 11:05 AM | #2 (permalink) |
Darth Papa
Location: Yonder
|
This sounds like a job for web services, either over SOAP or XML-RPC. I suppose Java can DO those, but the Java-ness isn't what's central to the implementation. The thing you should be focussing on is the interaction design, not the application architecture. Many-many web services can run on one server, so in most cases you'll have "agents" making LOCAL web service requests.
If it were I, I'd write them in Perl. There are existing SOAP implementations in Perl that wrap your code and handle the web-service business for you. Maybe there are things like that in Java too, I wouldn't know. What do you plan to DO with these "agents"? What's the point of the system? |
08-10-2005, 11:10 AM | #3 (permalink) |
Guest
|
It's to process a LOT of incoming data received in files that are placed in directories, or sent to it via a kind of queing system.
I'm not interested in having any kind of front end at all at the moment. I just want to crunch a lot of data, and be able to crunch it using a lot of different machines at the same time. Kind of like the SETI@Home idea. What is SOAP and XML-RPC? |
08-10-2005, 01:51 PM | #4 (permalink) |
Insane
Location: Vermont
|
I would say you should use a mix of SOAP and XMl to for moving your data from point to point but let Java do the data processing.
I've tried getting the java agents to work in the past and unless there's been a lot of progress made, I'd avoid them. Just setup a client server / peer system. Have 1 server that basically is just the index of the rest of the system. Then have how ever many nodes do the processing and send updates to the server. You may even want a second server that handles the distribution of the data. |
Tags |
agent, based, java, system |
|
|