What is the difference between the RMI Service Exporter and the HttpInvoker?
I know that the RMI uses RMI as underlying communication technology and the invoker standard http post. Any other differences worth noting?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
RMI is a standard Java technology, portable in principle. You can easily interact with other Java applications.
Spring HTTP invoker is a proprietary technology. They, just like RMI, use Java serialization, but use standard HTTP protocol as the underlying network layer. On one hand this is less portable as you are limited to other Spring applications. On the other hand using standard HTTP protocol might be viewed as more portable, compared to binary RMI protocol.
Choose:
RMI if you need portability across Java applications
HTTP invoker if you need transparent network transport, working nicely with firewalls, etc.
SOAP/REST web services if your API should work across different platforms/clients and it needs to work using standard HTTP protocol
Thrift or protobuf if you need efficient and portable binary protocol