Dang good question... I'm a little fuzzy on parts of this myself, but I'll take a stab at it.
Browsing through the various entries on Wikipedia for them... it looks like Processing was first, using a simplified version of Java for programming and GUI. Wiring derived from the Processing IDE, and uses C/C++ to access hardware. Arduino appears to be essentially Wiring specific to a particular hardware platform.
So... it looks like Arduino would be what you want for communicating with hardware, and Processing as an option if you want to create a GUI interface for it (although other options such as C++/QT or Python/QT also exist).
Hopefully someone more experience can chime in and correct any more heinous errors in the above... ;)