12 February 2013

Remote development vs. remote debugging

Remote debugging (on a server)

Remote debugging is not rocket science (unless you are debugging remotely on a spacecraft or something like that!). I am confident any experienced developer, who has worked with different application / container servers, is familiar with remote debugging and at least tried it once.
Each developer might have his/her own definition of what exactly remote debugging is. What I mean by remote debugging on a server (which is a loosely used term here) is to debug the compiled code on the server.
The steps to achieve this goal (for a Java based application) are as follow: a developer compiles and runs the source code on his/her local machine, while just runs the compiled code on the server (or another JVM). Then, by using breakpoints in source code on his/her own local machine he/she can step into the source code and debug it on the server. Remote debugging will map the compiled code to the source code on developer's local machine and he/she can control the debug process. You can find more about remote debugging in the following references:

Remote development (on a server)

It might sound similar to remote debugging but Remote development is a different story. Remote development might happen on a Java server (e.g. Tomcat, Apache or JBoss) or on an standalone JVM. A developer typically uses this technique to develop code on a better machine than his/hers, or for any other concern such as developing on a certified machine (for security reasons). Whatever the objective is, you can achieve your goal of remote debugging using Remote System Explorer in Eclipse. This plugin is built-in in eclipse if you get the latest JavaEE version of Eclipse (i.e. as of now Juno).