I had wanted to do this post for a long time now, but never actually got down to typing it out.
(Note: Some of the stuff I talk about here are outcomes of some discussions I have had over a few months time with many people)
The Tech community is well known to have a hype cycle for everything (I suppose it is true for a few other industries too, but I personally beleive we are the best). One of the things in the hype mode over the last year has been this stuff that is called SOA. The web is full of people talking about how SOA can actually change the whole way we develop applications (Paradigm shift, is a word that is usally always linked to a hype cycle).
So the idea is overtime everything you would want to do with a computer, would be written up as a service and you just buy different services and patch up an application in a jiffy. Sound good and attractive to the CIO. The only problem is that the services are not yet out there and writing a good service is such a pain in the worng place that few people even attempt it. Anyone remember what components were supposed to do. The interface that was supposed to be a contract stuff. Does this not sound very similar? Except that now you have different protocol underneath (SOAP instead of COM, so it is no longer MS alone hype, but the whole industry can join in). How much reuse has COM given us? What is the difference now?
The other stuff is about the term SOA itself. What does Architecture have to do with Service Orientation? To my mind, the major step toward SO, is that you decide on a Interface and a Messaging format and go ahead and do whatever you have been doing. So this is more of a issue that each programmer has to work on, rather than the Architect. It is like OO to my mind and nothing to do with Architecture at all. The only decision the Architect really makes is to use SO and maybe a little bit in the Service Interface design part. A lot of work on the message strucutre etc are usually made by the programmer and this is the most crucial part if you want reuse.
I also do not buy the argument that each service has to be autonomous etc. In a real business scenario, any part of the application cannot be autonomous. Worst case you need to depend on a external part called the Database server. So if the DB server fails the service fails. Also if the data is bad(What if I fire a few random Updates from ISQL), the service fails. So where is autonomy here?
That does not mean I am against SO. If you do it right, SO can improve reuse and interoperability. But I dont see too much of that happening. I only see people use SOA as miracle cure for everything under the sun.
So if you want go the service oriented way, first start training the programmers. Those are the guys who will have to do the most work to get your applications Service Oriented.
As I mentioned in my previous post, I had gone to the IDC to meet one of my old friends and after some talk we just moved over to the coffee machine to get a coffee. There he introduced me to one of his collegues in the team called Venkat. So we were just chatting and he mentioned that he used to work in the SQL 2005 team before he moved to the this team and I mentioned that we had done some extensive work on it and that I had actually posted some problems with calling web services from managed stored procs.
And he said, he was the guy who had actually replied to that bug report and suggested the work around that we had to use to get it to work with Beta 1 of SQL 2005...
Think about it.. I visit the IDC for the first time and the first employee (besides my friend) I meet there is someone to whom I had talked to over mail before!!!!
I went to Hyderabad yesterday to attend the VS launch there. Spent a few hours with my friend Ajay, who works for Microsoft, at the IDC before going to the launch. I could get some time to spend with Sriram and Aarthi, two people who help run the Chennai and Coimbatore Student Chapters. Both of them now work at MS Hyderabad. I was able to dazzle them showing a demo of VB Refactor support, with the help of Jani (MS DPE). (And if someone from DevExpress does read this blog, guys you rock with Refactor)
Hyderabad also had a rapid growth due to IT in the last few years, similar to Bangalore. Though Hyderabad is a more recent entrant into the IT industry attraction fray. Since I had just visited and suffered the unrestricted growth of Bangalore a few days back, it was easy to compare Hyderabad with Bangalore.
At first looks both seem to have small Airports that are bursting at the seams and having difficulties handling the sudden spurt in passenger traffic.
Hyderabad also seem to have narrow roads, with slow traffic, though not as bad as Bangalore. But one heartening factor was that I was seeing a lot of road expansion work going on. So looks like the local government is learning from Bangalores mistakes and taking the pains to make sure that they do not repeat them.
Hmm.. Lets see how it is after another 2-3 years. Though one thing to keep in mind is that Hyderabad seems to have cooled off as the hottest IT destination after the change of government 2 years back.
I find that the 5-10 minutes just before going to sleep, is the time when I get the most interesting ideas to blog about. It is this time when sleep is not yet there, but the lights are off and you know you are going to have a good sleep coming. The mind seems to be in the best of shape at that time.
The problem of course is that, I rarely remember my brilliant ideas in the morning, when I get down to writing a post. Of course, sometime I do remember parts of stuff I thought of, but then the flow that I had the night before seems to be missing. The post that I start writing seems to be, not as wonderful as I visualized just before I fell asleep. I am sure that I must have missed some important point that I had in mind..
I have grown so used to typing that I now find it very very difficult to actually write anything other than my signature. So keeping a pad near the bed to write down my thoughts is not an option.
So that only option left, if I want to really get my wonderful ideas out into the world wide web, is to take my Laptop with me. Well, most prob, that would get my laptop broken, if not by my daughter, then surely by my wife..:-)
It has been a wonderful week. I had gone down to Bangalore to attend the VS 2005 and SQL 2005 launch there by Bill G. It was an enjoyable event as My company(Polaris) was on the top of the list of Indian ISVs Bill mentioned during the event. It was very nice to see all the hard work over the last 1 year, actually being appreciated on stage, but none other than Bill G.
I actually was planning to then go over to the Developer Launch too and meet up with the local DPE team and other MVPs. But the state of Banglaore roads and the traffic made sure that I lost out on that. I always thought we in Chennai had bad road, but now I see that our roads are wonderful compared to the experience in Bangalore.
Also got to spend some time with my friend Madhu, who took me out for dinner and spent quite sometime catching up on old times..:-)
Hmm. better performance at a lower price?? A very difficult to beat combination. As I am planning to get a new computer in the next 3-4 months, I suppose I need to start checking my options, instead of just going for the latest Pentium??
Looks like AMD is having a wonderful 2005. Their sales figures have been very good this year. Dell seems to have started stocking AMD CPUs now. And they have beaten Intel hollow on performance.
If you are working on ASP.NET now and want to get to speed quickly to ASP.NET 2.0, then this may be a good book to try. This book from O'Reilly is not aimed at new ASP.NET developers, but rather people who just want to learn the new ASP.NET 2.0 features.
The book is an very easy read and cleanly written, covering most of the new ASP.NET 2.0 features like Master Pages, Themes, Web Parts etc. It contains a lot of pictures and screenshots and is written in a single step at a time format. This means you can actually code as you read the book and learn the new features. Another advantage is this style is that if you are just interested in a particular feature, you can just skip to that chapter and read through without any difficulty.
But this approach also has its disadvantages. It can sometimes seem too long and it takes quite a few steps to actually get to the meat of the stuff. So if you are the impatient kind, you may find this book a bit too slow. And I personally do not find the margin notes very useful, but I suppose preferences vary.
Some of these are of course dependent on whether you use the specific processes that these Addins support. E.g. The TestDriven Addin is useful only if you use TDD and WSContract Addin if you are interested in Contract First Web Service Development.
But still worth a read, you may find one that really makes your life easier. And each of those are anyway free...:-)