I spent last few months working over an interesting scenario where there was a requirement of
1. Getting rates from various carriers (FedEx, UPS)
2. Booking a shipment etc.
I short using the APIs exposed by various carriers and use it so that
the proposed system may consume the information uniformly.
Following is a brief commentary on how WCF was used to make the system highly scalable (both horizontally and vertically) .
the high level architecture looked like:-
The interesting part of architecture was that each carrier used a
common interface. Hence the consumer of the exposed service was only
bothered about dealing with a standard set of entities without worrying
about the complexities involved in calling and consuming APIs of each
We deployed the services on TCP(using configurations) and exposed the
common interface to the client (which in our case can be WEB
application or Windows service) along with a ProxyHelper class which
creates channels on demand and keep it in cache (Dictionary) for
Even the Data layer was exposed as WCF service.
By exposing each layer as WebService we made sure the architecture is
highly configurable and scalable without comprimising on other aspect.
Another interesting part was reading EDI (Electronic Document
interface) which i will be blogging soon in my next series of blogs.