In search of Transparent Services : jax-rpc, WSIF, Axis, jax-ws

How can I access a local java class or a soap representation of it at run time with out using any stubs. Assuming I have the interface of the class and the domain objects for it.

Need you help. What is a good approach for accessing java interfaces remotely and in a transparent fashion?

What is a good approach for accessing java interfaces remotely? The answer seems too obvious. Use EJB session beans, or web services or RMI. is that the best way? Could I not use dynamic proxies and not use any client side or serverside skeletons and stubs? Can I not do this by not generating any thing? Would some one recommend WSIF to do this? What else is out there?

Phrased differently, if I have a jar file that contains an interface and the domain objects that support that interface, can I access one of its implementations that is sitting on a remote machine using a dynamic proxy. The protocol can be SOAP or EJB or just a plain homegrown over http for that matter.

Stated differently, if I were to implement a service layer using plain java interfaces and implementations, can I break that layer apart at deployment time with out involving any compile time changes. Such an option will give me the ability to multi-tier an application with very little fan fare. Programmers need even not know about SOAP or EJB etc.

For instance WSIF (web services invocation framework) seem to advertise a functionality that is similar in intent. But someone expereienced with WSIT comment on whether all you need is interfaces and domain objects? Also WSDL seem to be necessary for WSIF to work. Can it work with out any xml artifacts and assume a certain SOAP implementation and provide a dynamic proxy for it.

I am hoping someone out there looked into this before and I would like to hear from them. Either you can post the answer here or if you don't have an account, could you email me your opinion? My email is "satya at".

Thanks in advance for considering this.