I'm writing an app that should perform tests, and it will run on a couple different servers. If a test fails on one machine, all the others should try running the same tests. If all/most fail, the test is considered failed, otherwise it succeeded.
I'm having a tough time figuring out exactly what I should do. Initially I planned on just inserting the test results into a db, and all the machines would use a remote db. That doesn't help me at all with notifying the other machines when they should run a test.
Now what I've been thinking is that I can create a services layer, and have all the testing apps run through that. They run the tests, send the results to the services layer, and then if any of those are failures, the services layer notifies the rest of the machines what test they should perform.
I think that would work...I could use either RMI or Web Services for that services layer (all the standalone apps are in Java). What do you guys think?
Your strategy seems very normal and intuitive. The choice of communication methods to send test messages to your distributed test objects really depends on your team's expertise, and the cost of maintaining this testing tool.
If your team and you normally use J2EE, JMS or WebServices are a possible solutions. In the past, I've used quite a bit of RMI (without j2ee), it works well, but can be a pain to set up, especially if you use activation.
It's just me doing this, as a personal project. I'm only a college student doing this on the side.
I don't have much experience with any of those technologies. I'm sure I could learn any of them easily enough...it's just knowing which would be the best to go with. Any advice on which to use? I'm open for anything.
I'd imagine that RMI would be the fastest, simply because it's native to Java. Not sure on that though. Thanks for the reply, and I'd appreciate any advice on which direction to head.