Discussions

Performance and scalability: Is RMI over Internet a bad idea or a good idea?

  1. I want to use RMI over Internet to visit the middle-tier of my application server.

    But someone told me HTTP has better performance, and this info frustrated me.

    Could anyone tell me the true answer, which way to the middle-tier is better over Internet ?
    1. direct RMI call
    2. HTTP call, and bypassing the web layer
  2. i guess u want to make a RMI call over the internet from lets say a applet running within a browser. to make that RMI call ur browser needs to support RMI/IIOP. and its not a great idea to do that, since M$ has already announced no support for such things in Windows XP. that should definitely discourage u. also with RMI u get into all other issues like firewall/proxy etc.

    i dont know which one has better performance HTTP-RMI Tunneling or RMI over internet, never benchmarked n compared these systems. but my guess is the RMI system will be faster.

    but then the choice of technology and which one is better over the other entirely depends on the resources and kind of application u wanna implement.

    kapil
  3. Thank you for your answer.

    I want to use a stand-alone Java application to access the remote service provided by an Application Server.

    Do you know any successful internet rmi application ?
  4. SOAP might be a better solution. Since it's XML over HTTP
    there is no firewall issue.

    Pranab
  5. check out on XML-RPC. i believe it has a lot of promise.


    vijay
  6. As a general rule - a bad idea.
    RMI creates a lot of network-traffic.
    Unless you know all your users have a high-speed Internet connection, it's not the way to go.

    And I agree with others answering this question:
    You might encounter Firewall problems.

    Either use SOAP or write your own protcol specifically for your needs (serialized objects...).
    Minimizing network traffic is the trick.

    I know of only one large-scale attempt to do this - and it failed.
  7. Thank you all for answers.

    But I am still confused.

    >RMI creates a lot of network-traffic.
    Will RMI consume more bandwidth than SOAP?

    In this site's resource section, there was a article named "When is SOAP a good idea in a project" (http://www.theserverside.com/resources/article.jsp?l=SOAP-And-EJB), and the author said :
    SOAP will consume more bandwidth on the pipe than RMI/IIOP.
    This goes without saying. It is XML based so it is going to be much larger than a binary marshalling like CDR or XDR.

    >You might encounter Firewall problems.
    I know the issue, but it wont occur in our evironment.