from the book "Enterprise Software Architecture And Design"
REMOTE PROCEDURE CALL
Using RPC an application is able to use a resource on a remote server as on a local. The application does not need to distinguish between the use of local and remote resources. In reality matters are more complicated.
Problems:
1) Weak specification
2) Tight coupling
3) Error handling (*)
4) Routing on the network layer
(*) It’s not a problem in LANs, where network failures are relatively infrequent.
MESSAGE-ORIENTED MIDDLEWARE
RPC has been used successfully in LAN, in WAN message-oriented has seen broader acceptance.
Problems
1) High cost, the use of such tools for enterprise application integration (EAI) is normally for large enterprises.
2) А vendor-specific solutions. The need to define application logic in a vendor-specific language such as a work flow language is also regarded as a barrier to entry of the use of such systems. Work in business process modeling (BPM) has been addressing some of these issues, defining industry standards such as WS-BPEL and Business Process Modeling Notation (BPMN).
WEB SERVICES AND SERVICE-ORIENTED ARCHITECTURE (SOA)
In its original manifestation, Web services can be viewed as an RPC stack defined with the HTTP Web protocol as its transfer protocol.
Problems
1) WS-Addressing for end-to-end message routing, WS-ReliableMessaging and WS-Transaction for reliability, WS-Security and WS-Policy for security, as well as WS-BPEL for business process automation. The complexity introduced by these standards, and to some extent already present in the SOAP and WSDL languages themselves, has led to a backlash in much of the software community.
Reaction against the complexity of the WS-* stack has led to widespread adoption of so-called “RESTful” Web services. Many APIs originally developed as SOAP-based Web services, for example providing programmatic access to Yahoo and Google services, have been replaced by RESTful interfaces.
2) Apparently independent services may access shared resources and inadequate provision for specifying and handling this may give rise to phenomena such as deadlock
3) Quality of service is another important facet of service interfaces
The advantages of SOA
1) Merging software services that were developed in isolation for separate applications and re-using it
2) Invoking services through their APIs allows one implementation to be replaced by another, allowing systems to be upgraded on a component-by-component basis
3) The modular structure of SOA supports “agile” application development
To cancel disadvantages of SOA via Web services use the enterprise service bus
CLOUD COMPUTING
What is the motivation for cloud computing?
1) To enable the outsourcing of IT operations such as email and document editing to third parties
2) Economies of scale in building computer and networking environments
3) Flexibility in choosing the location of physical resources
4) Being able to dynamically increase the provisioning of computing resources
Successful example: batch processing of large data sets based on frameworks for automatic parallelization of the processing over a cluster of virtual server instances