Web services is a Service Oriented Architecture implementation.
But, can we say that CORBA, RMI and the Java EE platform are also an implementation of SOA开发者_StackOverflow中文版?
If you say that SOA means WS-* standards, then the answer is "no".
But if SOA means distributed components communicating using an agreed-upon protocol, then the answer is yes, you can think of CORBA, RMI, and Java EE as SOA. (My advice is to drop the "2" - it's been out of the picture for a long time. Please refer to it as Java EE unless you want to appear out-of-date.)
Even web services have at least two flavors: SOAP and REST. You might also include XML-RCP.
The difference in all cases is the choice of protocol.
SOAP uses its own XML request/response idiom over HTTP.
REST is straight HTTP - GET, POST, URL for every request.
CORBA uses an OMG standard protocol. Interoperability between ORBs, and different bindings for each language, used to be a big problem. It's been so long since I've used CORBA that I have no idea of the current state of the art. I don't know anyone who uses CORBA anymore. From my vantage point, it's a failed, dead technology.
RMI is the Java-only answer to CORBA. All endpoints must be implemented in Java and speak RMI.
Java EE uses RMI as the underpinnings of EJBs.
Simple and open win: that's why HTTP-based protocols are growing in popularity.
yes. WS-* is one of the mostly used ways in which SOA is implemented.
精彩评论