Marshaling, Searlizing, Desearlizing in webservice
===

I am using webservices for connecting the android app with server side using ksoap2 library. The problem is that despite of reading various related stuff, I am still confused about the terms marshaling, searlizing, desearlizing etc. 
What is actually the difference between them? and why we need to do it. I just know that it is related to webserivces only and it is basically done for passing or returning values from webservices. Why we actually need them and how we actually searlize or desearlize the stuff or webserver itself gives us this functionality??? We need to write code for marshaling or searlization at client side or in webservice itself? Is there anyway that we don't have to do this and call a webservice in such a way that no need to searlize or desearlize the stuff or alternatively any library that we can include in the project to do it automatically? Please guide