7/03/2012

Designing and Developing Interoperable Services


SOAP
  • SOAP is a simple XML-based protocol to let applications exchange information over HTTP.
  • Specification for exchanging structured information in the implementation of Web Services in computer networks.
  • Why SOAP?
    ·        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.

Tools used to implement CORBA:
JAVA RMI/ RPC/ JAX RPC

ESB
Mechanism that manages access to applications and services (especially legacy versions) to present a single, simple, and consistent interface to end-users via Web- or forms-based client-side front ends


Why ESB?
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.

Tools used to implement ESB:
TIBCO) ActiveMatrix™ Service Bus, Oracle Enterprise Service Bus, Microsoft BizTalk Server,  IBM WebSphere ESB, Boss ESB


Traditional File Transfer
Transmitting files over a computer network like the Internet
There are 2 types of file transfers:
  • Pull-based file transfers where the receiver initiates a file transmission request
  • Push-based file transfers where the sender initiates a file transmission request.


Why FTP?
  • FTP has built-in error checking, and can restart transfers from the point of failure. HTTP doesn't have these.

Disadvantages:
  • Encryption of data is not done in FTP.
  • Anonymous FTP allows users to access the server without authentication; Extra security steps to prevent  server exploits
  • Encryption of data is not done in FTP.
 Tools used to implement FTP:
Windows ftp/ Java FTP Client / SFTP Clients







No comments:

dzone.com