Sunday, October 7, 2007

Integration Technologies in Practice

The following is based on what I have seen and experienced.

Point-to-Point using Sockets
  • Generally seen with legacy systems that have been in existence for a while.
  • Typically these communicate over an ASCII text based protocol
  • Over time you end up with a plethora of such brittle point-to-point interfaces, which are tricky to manage and to modify. (Integration Spaghetti)
  • There also exist variations of interfaces that are quite similar in nature and in intent.
  • Each interface builds it own failure recovery mechanism
  • Some of these interfaces are synchronous in design but are functionally asynchronous.

RMI or RMI/IIOP
  • Suitable when both the Service Provider and the Consumers are implemented in Java
  • RMI being a binary protocol makes it easier to transport large amounts of data
  • I wouldn't use it for large-scale deployments, as it gets tricky to manage resources like RMI Service Threads
  • It requires a registry, to access a service reference. There is another way of accessing RMI service, without using a registry, by using reference objects. In my view, going through the registry is the easier route
  • Firewall issues around ports being enabled. RMI over HTTP attempts to work around that issue
  • RMI activation framework helps increase availability of RMI Services, and helps better manage resources on the server

Object Serialization over HTTP
  • Service providers and consumers interact by serializing binary objects over HTTP.
  • Leverages the scalability and availability of standard HTTP servers like Apache.
  • Leverages the ubiquity and firewall-friendly nature of the HTTP protocol
  • Suitable when both the Service Provider and the Consumers are implemented in Java
  • Being a binary protocol makes it easier to transport large amounts of data

Integration using MOM
  • Publish/Subscribe
    • Pub/Sub is a highly advertised feature of MOMs.
    • In my view, this model fits in a world where the subscribers are highly dynamic.
    • If you have a high number of subscribers, pay careful attention to how messages a published over the network. Multicast reduces the latency in publishing, and has a lower network impact.
  • Point-to-Point
    • Things to watch out for are: Queue Depth, Sequence of Messages, Message Correlation, Duration in Queue and Message Expiration.
    • Pro-active monitoring and management of the dead-letter queue.

Web Services
  • These are typically accessed over HTTP, which is a synchronous protocol. This introduces Availability Coupling between the Service Provider and the Consumers.
  • The better way to communicate is by exchanging documents.
  • Stick to industry standard XML schemas
  • Authentication and Authorization is a tricky problem to solve
  • There is some value in attempting to solve the Service Versioning issue, by following the same approach as that for Component Versioning
  • The plethora of WS standards reminds me what happened with CORBA. In the end, only a handful of standards remained standing, and the vendors ended up implementing only those standards.
  • Then you have the whole set of arguments around REST vs. Web Services.

Enterprise Service Bus (ESB)
  • It is an attempt to emulate (conceptually) within the middleware world, what the computer hardware vendors ended up doing, to solve their integration issues.
  • The typical value-add of such products are: Protocol Transformation, Process Orchestration/Choreography, Monitoring & Management, Service Versioning, SLA management, etc

1 comments:

grand.master03 said...

I really like your blog...

architects in bangalore as modern architectural firm working asarchitects in bangalore know more about Green eco architectural designs are reusable materials, green designs etc.. ..… Create an Eco friendly Green design… Save Earth.. interior designers in Bangalore as of natural materials interior designers in Bangalore with almost modern concepts architects in bangalore eco friendly architectural solutions for architects in bangalore Carbon Footprint is a measure of the impact human activities have on the environment in terms of the amount of greenhouse gases produced, measured interior designers in bangalore