RMI to SOAP conversion

From: Sudeep Chandran <novicedeveloper_at_REDIFFMAIL.COM>
Date: Wed, 15 May 2002 01:37:16 -0600

Dear techies,

I have an existing RMI Server which I would like to convert to Web Service .
and I found hurdles all the way. Any help in this regard will be much appreciated.

I used JAX-RPC and also tried GLUE from

1) RMI allows me to transport *data* as well as *behaviour* , SOAP doesnt.
  I have a lot of user defined types for which I have to write Serializers/
  Deserializers. To avoid that I have written Java Bean wrappers over
  all User Defined types.Am wondering if this will interoperate with
  Apache AXIS and other implementations?

  By Default JAX-RPC uses 'SOAP section 5 encoding style' can
  I plug in some other encoding style such as OMGs XMI ( I dont have
  the need , jus curious)

2) Some of the functions that I want to expose as a web service accepts
  interfaces. Am stuck on this. I see that XML Schema defines a construct
  called *abstract* in section 4.7 . and I tried a tool named GLUE which
  generated WSDL files automatically for my functions that accepts interfaces
  and it declared those types as *abstract=true* . But am not clear on that c
  can some one shed some light please. The BIG question is *How Do I expose
  a function that accepts interfaces as arguments as a web Service? *

3) My RMI Server allows *Notifications* to be sent to the client.(sort of
  call back). Dunno how to do the same using JAX-RPC?
  Or rather can I use JAX-RPC to implements call backs. Or should I use
  JAXM to do that? ( I havent used JAXM..dont even know that its used for such

  Section 2.4.4 of WSDL Specification talks about *Notification Operation*
  How can I realise that thru java ? Or Rather how would I declare My function
  such that xrpcc (or that matter any other tool) generates WSDL with a
  notification operation .

  ( Perhaps I can use Multipart MIME to push notifications to the client,
    but dunno how to implement them )

    The Scenario is as follows

- RMI Client calls a AmInterestedInReceivingUpdates(ClientRef ) function of the server
- The Server Stores the Clients (RemoteReference) in a data structure
- Whenever an update occurs at the server side the server uses the RemoteReference to
  invoke the *handleUpdate()* function of the client

How do I do this using SOAP/JAX-RPC or AXIS or any other?

Thanks and Regards
Sudeep Chandran

The Lesson that I have learnt is if the same species in different planets
communicate they can exchange both *data and behaviour* . If Different species in
different planets communicate they can exchange only *data* .