Buddhike's Weblog

Where am I heading to?

Just thought about catching up my missing posts while trying to adjust my self in the blanket (It’s pouring in Colombo) ;-).

Every time I think about WCF and future of connected systems, I tend to compare it with the present and think why I should make the move.

So recently I was thinking about ES (Enterprise Services) and the coming years. I’m sure it’s hard to find an enterprise system today which does not consume ES. In fact I’m one of the early adaptors to this technology and I’m still in love with it because it made my life a bliss whenever I wanted scalable, reliable, high performance distributed system. Besides I have (actually “had”) a dogged believe that all the business logic – middleware services should reside in ES.

But with the WCF this dogged believe has become less relevant today. To the point I’d like to discuss several interesting things. However, bare in mind that when I say “ES does not”, “ES cannot” I’m not trying to send ES to the trash can. I’m rather trying to express my *personal* view of the potential problems in ES and why I’d rate for the new technology (WCF in particular) which is striving to take its place in the distributed systems arena.

First thing hits my mind is the interoperability. We have already started talking about this (since ASMX I believe). We wanted to get rid of those hacks we used to interop with other systems (yes, some are based on XML but still they are just XML ;-)). ES does not provide this expected level of interoperability where as WCF naturally supports all WS, WS-* stuff. Surprisingly, it also provides greater interoperability by being able to communicate with exiting ES based systems, Java (RMI) or even those so called hacky POX based systems. 

Second thing: ES does not support crossing NATs, firewalls and multiple intermediaries. Though the multiple intermediaries are not very common in mainstream applications today, I’m sure the things will change in the future. (I’m really looking forward to see more SOAP routers in production systems ;-)). However, with WCF we have no boundaries in terms of end to end communication.

Next; I’ve seen many systems using ES to make transactional runtime components. While it is nice to have transactional components (TCs); the real problem comes when you do not really need distributed transactions (i.e. when talking to single transactional data source). ES adds the overhead of DTC even when there’s no need for it but still it’s inevitable because we need TCs. In the next few years I believe people will eventually forget about ES for this matter as System.Transactions namespace got a whole bunch of features for transaction loving freaks.

Finally, does component load balancing (the only way to load balance in ES/COM+) brings us everything we need to scale our solution? I don’t believe so. I want NLB. So once again I’m voting for WCF.

It’s your turn now to share you thoughts ;-)

Posted: Oct 18 2005, 08:40 PM by Buddhike | with no comments
Filed under: ,

Comments

No Comments