·SOAP provides
a way to communicate between applications running on different operating
systems, with different technologies and programming languages.

·HTTP is supported by all Internet browsers and
servers.

Disadvantages

·Because of the verbose XML format, SOAP
can be considerably slower than competing middleware technologies
such as CORBA.

Tools used to implement SOAP:

Apache Axis/ JAX
WS/ JAXB

REST

REST-style architectures consist of clients and servers. Clients initiate requests to
servers; servers process requests and return appropriate responses.
Requests and responses are built around the transfer of representations of
resources.

Why REST?

REST permits many different data formats where as SOAP
only permits XML.

REST reads can be cached, SOAP
based reads cannot be cached.

An application can interact with a resource by
knowing two things: the identifier of the resource and the action
required—it does not need to know whether there are caches, proxies,
gateways, firewalls, tunnels, or anything else between it and the server
actually holding the information.

The application does, however, need to understand the
format of the information (representation) returned, which is typically an
HTML,
XML
or JSON
document of some kind, although it may be an image, plain text, or any
other content.

Tools used to implement REST:

JAX
RS

CORBA

CORBA enables separate pieces of software written in
different languages and running on different computers to work with each other
like a single application or set of services

Why CORBA?

CORBA is an open, standard solution for distributed
object systems. You can use CORBA to describe your enterprise system in
object-oriented terms, regardless of the platforms and technologies used
to implement its different parts. CORBA objects communicate directly
across a network using standard protocols, regardless of the programming
languages used to create objects or the operating systems and platforms on
which the objects run.

Disadvantages:

CORBA uses raw TCP/IP
connections in order to transmit data. However, if the client is behind a very
restrictive firewall that only allows HTTP
connections to the outside through port 80, communication may be
impossible, unless the proxy server in question allows the HTTP CONNECT method or SOCKS
connections as well.

The
requests can be filtered at the ESB layer and based on the implemented Routing
Rules they can be forwarded to the desired Web Service URLs. This routing can
either be content-based or header-based.

ESB
infrastructure forms another layer between the client and the actual Web
Services and all such tasks are performed at ESB layer, which makes the
implementation far more maintainable and stable.

Disadvantages:

ESB may become a single point of failure. If the ESB
is down, no communication between clients and services can take place.

The extra level of indirection may result in
decreased performance of client-service communication.