Are you using Spring? There are many remoting options in Spring Framework for this. You can use the HttpInvoker since both sides are Java.
Mark, Thanks for the suggestion. I have plans to rewrite this remoting layer using Spring's http invoker.
But The question here is whether service layer need to maintain its own DTOs and pass it client or
do we need to use DTO's that is given by DAO layer ( these complicated and composite FAT DTO's , we cannot change this

)
do you think Jason is best alternative too.? or using spring http invoker solves this problem too?
You can just use XML to communicate.
Kengkaj, Yes I am afraid of over head and big data sizes. Also we may not stick to one schema because our domain is too big
and different clients has different needs.
I will look in to Jason more.
Thank you for your time.