Thinking About Services
Web Services are coming! There is no doubt about it. The next generation of software will implement the Web as seamlessly as older applications implement the methods and functions that are compiled into a single executable. In the future, everything will be connected. All the time. It had better be!
If not, services will not be available, resulting in a lack of functionality. It's a risky game to play, but the reward is great. Many of the issues we face today will be gone, by design. Updates will be easy. Services will be updated one-by-one on the server and, as long as the interface doesn't change and the developer didn't introduce bugs that crash the server, everything will work smoothly. No distribution headaches, no hassle. We already have similar scenarios with regular Web applications.
Web services will allow the developer to use services that are already available and proven to work. Most likely, those services will perform better than the same functionality implemented as part of a larger application, simply because the party providing the service will see it as its main business rather than a small part of something much bigger.
Of course, the developer is also giving up some control. Although this is a tough step at first, I'm convinced that it is an important step to take. It's the kind of step that must be taken sooner or later in every field of technology. Take cars, for instance. In the early days, a driver also had to be somewhat of a mechanic. But with modern cars, even mechanics can't do much to fix parts, and usually just exchange parts or even entire modules. This would have been a very hard sell to early drivers, who expected to fix their cars every other day. From their point of view, not being able to fix the car themselves meant having an average uptime of two days.
Obviously, this isn't the case today. The last problem I had with my car was a dead battery, and that was quite some time ago (it happened on my seldom-used ten-year-old Jeep). Although I don't doubt that other people are not so lucky (some cars still come with a toolbox), the bottom line is that we don't need as much control as the early pioneers. But, remember: we are still the modern-day pioneers as far as software development goes.
So, who is going to take us through this possibly painful transition? Microsoft says they will, but it will really come down to each and every developer who provides Web Services. Now, that's a scary thought! Perhaps it's just me, or perhaps it's the use of the word "services," but I am amazed that Microsoft uses "service" as the term of choice. "Web Methods" or ".NET Functions" would have made more sense to me, because the word "service" sparks mainly negative flashbacks. How much good service have you received lately?
I need to be careful to not to go overboard here. After all, I have only one page for this editorial, but I could write books on the subject. I recently signed up for Internet access. Dialup? No way! After all, this is the year 2000! Who still wants to dial up? And, considering that Houston is one of the largest cities in the US, and is in Compaq's back yard, fast access should be a snap. With this basic assumption, I set out to get a T1 line for the office and a DSL connection for home. Boy, was I wrong!
I contacted a company that claimed to be Houston's number one ISP. Let's just say it was one of those 3-letter companies with a ".NET" at the end. I was told that DSL was widely available in my area (I'm sparing you some details here) and that I could get it within 30 days. Great! Before the 30 days were up, a technician arrived to install the required hardware. I was pleased. Although I had done some wiring on my own and didn't remember it as one of the best moments in my life, the technician decided that my wiring was good and he wanted to use it if I didn't mind. Of course, I didn't mind (I started to build up a little pride). Everything seemed to be going smoothly up to that point, and I was amazed.
When the technician left, however, I had a little white box with an outlet on my wall, and nothing more. No further instructions, no router, no high-speed access. Luckily, this wasn't a problem, since I'm computer-literate. I just yelled long enough and loudly enough to eventually get the router that had been originally promised, hooked up the system myself, and finally got it all up and running just a few short weeks after the initial install. I was still amazed! Amazed about how the regular home user would have done it...
But luckily, I got it to work by pressing on past the initial experience with that service-impaired company. Then, about a month after I got the system running, it stopped. Just like that. I browsed the web, hit a link, and all of a sudden, the web was gone. It must have disappeared from the face of the earth, since the service provider claimed it wasn't their fault.
Over the next few weeks, I must have rebooted my system at least 50 times at the request of the "service" representative currently on the phone. At the same time, I must have trained at least half of their staff. I don't think they were even aware of that futuristic operating system called "Windows 2000."
Eventually, I convinced them that the problem was not on my end. After all, how could I have possibly messed up the network settings on three computers at the same time? (At one point a technician seriously suggested that the most plausible explanation for my problem was that 3 network cards all blew at the same instant!)
When I was finally able to get a technician onsite, he determined that my wiring was the problem. Since the original installation was long finished, I wasn't eligible for new wires ("they" wouldn't allow them to do that). Of course not! What was I thinking? Also, the wiring between my house and the next hub was messed up, but I had to fix my internal wiring problem first.
I got my wiring sorted out just before heading to Europe for a month. Before I left, I made sure the phone company would fix the problem before I got back. And no, I didn't really expect it would be that easy, but I still wasn't prepared for what happened!
One month later, back in Houston, I found my system the same way I had left it. I called my provider to check the status of my problem. "What problem?" That was not the answer I was expecting! While I was gone, they apparently had lost all data associated with my case. Naively, I assumed that we could just reestablish the trouble ticket where we had left off. Of course, it wasn't that easy. After all, "they" wouldn't allow them to do that (who are "they" anyway?). So we had to go through several more weeks of rebooting and sending technicians again.
What amazed me throughout this process was that all of the people I talked to were totally unqualified. They didn't know how to configure IP addresses, or even how to look them up. No matter who I talked to, they were always the "wrong" people, even though their co-workers had connected me to them. There simply were no "right" people on staff there. But, I was lucky because the guys were nice and tried to help me anyway, even though "they" wouldn't want them to do that. Interesting...
Eventually, I got back up and running. At the time I'm writing this, it has been 6 weeks without a problem (and counting). Are you wondering what happened to our T1 line (or what DIDN'T happen)? That story is much too long for an editorial. Those of you who follow our online message board may already know what I'm talking about. If you don't, you can still go there and find those old messages.
So, these kinds of stories come to my mind when someone uses the word "service." I sure hope Web Services will work much better. As an optimist, I have high hopes. After all, Web Services take out the human factor to a large extent. One can invoke a Web Service and get an answer without being put on hold (at least, not for 40 minutes) or having to deal with an under-trained (or, more likely, an untrained) individual. It's almost like no one is in charge. There is no "they". I'm sold on the idea! After all, the very same concept keeps the Internet going...