Java RMI: Remote Method Invocation - allows remote computers to access remote methods of a Java application (registry holds stub that allows server and client to establish communication)
RMI: useful as true oop. But bad as: security concerns, relies on compatible java JVMs on both sides, firewall issues, only java
HTTP: request - response. headers and name-value pairs
REST is built on HTTP
SOAP: data encoded in XML
SOAP: headers just about stating where want to get to and what want to do, all data in XML
REST operations: GET (read), POST (create), PUT(update), DELETE
PUT should be indempotent (if same operation is performed on the same object, the same result is returned) (ie. sending the same update name command twice, won't be any different than only once)
SOAP vs REST
Tight coupling: server/client implementations are very dependant on each other
Loose coupling: generic operations that return as much (including "excess" data as could possibly be needed)
names of methods do not appear in calls, so can only have one method for any given set of parameters
SOAP WSDL: automatically generates XML descriptions for the server function based on Java
WSDL allows objects to be "sent" by noting what data an object has, and reassembling an object once it reaches the server.
WSDL gets object variables from the set and get methods it sees, so these are always necessary
Since code is not sent over SOAP, any methods other than setters and getters on an object will not be recreated on the client(/server)
Bean: a class that does not do anything more than represent an object (no methods other than getters/setters), have an empty constructor, private fields
POJO: plain old java object. All beans are POJOs but not all POJOs are beans